smesh_lol_web_common_crypto_chacha20.mjs raw
1 // Package smesh.lol/web/common/crypto/chacha20
2 // Generated by MoxieJS — Moxie JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 // Package-level variables
7
8 export function init() {
9 return;
10 }
11
12 export function HChaCha20(key, nonce) {
13 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82, $t82_83, $t83_84, $t84_85, $t85_86, $t86_87, $t87_88, $t88_89;
14 let $block = 0;
15 while (true) {
16 switch ($block) {
17 case 0: {
18 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
19 $t0_1.$set($rt.builtin.cloneValue(key));
20 $t1_2 = { $value: $rt.builtin.makeSlice(16, 16, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
21 $t1_2.$set($rt.builtin.cloneValue(nonce));
22 $t2_3 = { $value: $rt.builtin.makeSlice(16, 16, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
23 $t3_4 = $t2_3.$get().addr(0);
24 $t3_4.$set(1634760805);
25 $t4_5 = $t2_3.$get().addr(1);
26 $t4_5.$set(857760878);
27 $t5_6 = $t2_3.$get().addr(2);
28 $t5_6.$set(2036477234);
29 $t6_7 = $t2_3.$get().addr(3);
30 $t6_7.$set(1797285236);
31 $t7_8 = $rt.builtin.sliceSlice($t0_1.$get(), 0, 4, undefined);
32 $t8_9 = le32($t7_8);
33 $t9_10 = $t2_3.$get().addr(4);
34 $t9_10.$set($t8_9);
35 $t10_11 = $rt.builtin.sliceSlice($t0_1.$get(), 4, 8, undefined);
36 $t11_12 = le32($t10_11);
37 $t12_13 = $t2_3.$get().addr(5);
38 $t12_13.$set($t11_12);
39 $t13_14 = $rt.builtin.sliceSlice($t0_1.$get(), 8, 12, undefined);
40 $t14_15 = le32($t13_14);
41 $t15_16 = $t2_3.$get().addr(6);
42 $t15_16.$set($t14_15);
43 $t16_17 = $rt.builtin.sliceSlice($t0_1.$get(), 12, 16, undefined);
44 $t17_18 = le32($t16_17);
45 $t18_19 = $t2_3.$get().addr(7);
46 $t18_19.$set($t17_18);
47 $t19_20 = $rt.builtin.sliceSlice($t0_1.$get(), 16, 20, undefined);
48 $t20_21 = le32($t19_20);
49 $t21_22 = $t2_3.$get().addr(8);
50 $t21_22.$set($t20_21);
51 $t22_23 = $rt.builtin.sliceSlice($t0_1.$get(), 20, 24, undefined);
52 $t23_24 = le32($t22_23);
53 $t24_25 = $t2_3.$get().addr(9);
54 $t24_25.$set($t23_24);
55 $t25_26 = $rt.builtin.sliceSlice($t0_1.$get(), 24, 28, undefined);
56 $t26_27 = le32($t25_26);
57 $t27_28 = $t2_3.$get().addr(10);
58 $t27_28.$set($t26_27);
59 $t28_29 = $rt.builtin.sliceSlice($t0_1.$get(), 28, 32, undefined);
60 $t29_30 = le32($t28_29);
61 $t30_31 = $t2_3.$get().addr(11);
62 $t30_31.$set($t29_30);
63 $t31_32 = $rt.builtin.sliceSlice($t1_2.$get(), 0, 4, undefined);
64 $t32_33 = le32($t31_32);
65 $t33_34 = $t2_3.$get().addr(12);
66 $t33_34.$set($t32_33);
67 $t34_35 = $rt.builtin.sliceSlice($t1_2.$get(), 4, 8, undefined);
68 $t35_36 = le32($t34_35);
69 $t36_37 = $t2_3.$get().addr(13);
70 $t36_37.$set($t35_36);
71 $t37_38 = $rt.builtin.sliceSlice($t1_2.$get(), 8, 12, undefined);
72 $t38_39 = le32($t37_38);
73 $t39_40 = $t2_3.$get().addr(14);
74 $t39_40.$set($t38_39);
75 $t40_41 = $rt.builtin.sliceSlice($t1_2.$get(), 12, 16, undefined);
76 $t41_42 = le32($t40_41);
77 $t42_43 = $t2_3.$get().addr(15);
78 $t42_43.$set($t41_42);
79 $t43_44 = (0 < 10);
80 if ($t43_44) {
81 $t44_45 = 0;
82 $block = 1; break;
83 }
84 else {
85 $block = 2; break;
86 }
87 break;
88 }
89 case 1: {
90 $t45_46 = qr($t2_3, 0, 4, 8, 12);
91 $t46_47 = qr($t2_3, 1, 5, 9, 13);
92 $t47_48 = qr($t2_3, 2, 6, 10, 14);
93 $t48_49 = qr($t2_3, 3, 7, 11, 15);
94 $t49_50 = qr($t2_3, 0, 5, 10, 15);
95 $t50_51 = qr($t2_3, 1, 6, 11, 12);
96 $t51_52 = qr($t2_3, 2, 7, 8, 13);
97 $t52_53 = qr($t2_3, 3, 4, 9, 14);
98 $t53_54 = ($t44_45 + 1);
99 $t54_55 = ($t53_54 < 10);
100 if ($t54_55) {
101 $t44_45 = $t53_54;
102 $block = 1; break;
103 }
104 else {
105 $block = 2; break;
106 }
107 break;
108 }
109 case 2: {
110 $t55_56 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
111 $t56_57 = $rt.builtin.sliceSlice($t55_56.$get(), 0, 4, undefined);
112 $t57_58 = $t2_3.$get().addr(0);
113 $t58_59 = $t57_58.$get();
114 $t59_60 = put32($t56_57, $t58_59);
115 $t60_61 = $rt.builtin.sliceSlice($t55_56.$get(), 4, 8, undefined);
116 $t61_62 = $t2_3.$get().addr(1);
117 $t62_63 = $t61_62.$get();
118 $t63_64 = put32($t60_61, $t62_63);
119 $t64_65 = $rt.builtin.sliceSlice($t55_56.$get(), 8, 12, undefined);
120 $t65_66 = $t2_3.$get().addr(2);
121 $t66_67 = $t65_66.$get();
122 $t67_68 = put32($t64_65, $t66_67);
123 $t68_69 = $rt.builtin.sliceSlice($t55_56.$get(), 12, 16, undefined);
124 $t69_70 = $t2_3.$get().addr(3);
125 $t70_71 = $t69_70.$get();
126 $t71_72 = put32($t68_69, $t70_71);
127 $t72_73 = $rt.builtin.sliceSlice($t55_56.$get(), 16, 20, undefined);
128 $t73_74 = $t2_3.$get().addr(12);
129 $t74_75 = $t73_74.$get();
130 $t75_76 = put32($t72_73, $t74_75);
131 $t76_77 = $rt.builtin.sliceSlice($t55_56.$get(), 20, 24, undefined);
132 $t77_78 = $t2_3.$get().addr(13);
133 $t78_79 = $t77_78.$get();
134 $t79_80 = put32($t76_77, $t78_79);
135 $t80_81 = $rt.builtin.sliceSlice($t55_56.$get(), 24, 28, undefined);
136 $t81_82 = $t2_3.$get().addr(14);
137 $t82_83 = $t81_82.$get();
138 $t83_84 = put32($t80_81, $t82_83);
139 $t84_85 = $rt.builtin.sliceSlice($t55_56.$get(), 28, 32, undefined);
140 $t85_86 = $t2_3.$get().addr(15);
141 $t86_87 = $t85_86.$get();
142 $t87_88 = put32($t84_85, $t86_87);
143 $t88_89 = $t55_56.$get();
144 return $t88_89;
145 break;
146 }
147 }
148 }
149 }
150
151 export function XORAt(key, nonce, counter, data) {
152 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68;
153 let $block = 0;
154 while (true) {
155 switch ($block) {
156 case 0: {
157 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
158 $t0_1.$set($rt.builtin.cloneValue(key));
159 $t1_2 = { $value: $rt.builtin.makeSlice(12, 12, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
160 $t1_2.$set($rt.builtin.cloneValue(nonce));
161 $t2_3 = $rt.builtin.len(data);
162 $t3_4 = $rt.builtin.makeSlice($t2_3, $t2_3, 0);
163 $t4_5 = { $value: $rt.builtin.makeSlice(16, 16, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
164 $t5_6 = $t4_5.$get().addr(0);
165 $t5_6.$set(1634760805);
166 $t6_7 = $t4_5.$get().addr(1);
167 $t6_7.$set(857760878);
168 $t7_8 = $t4_5.$get().addr(2);
169 $t7_8.$set(2036477234);
170 $t8_9 = $t4_5.$get().addr(3);
171 $t8_9.$set(1797285236);
172 $t9_10 = $rt.builtin.sliceSlice($t0_1.$get(), 0, 4, undefined);
173 $t10_11 = le32($t9_10);
174 $t11_12 = $t4_5.$get().addr(4);
175 $t11_12.$set($t10_11);
176 $t12_13 = $rt.builtin.sliceSlice($t0_1.$get(), 4, 8, undefined);
177 $t13_14 = le32($t12_13);
178 $t14_15 = $t4_5.$get().addr(5);
179 $t14_15.$set($t13_14);
180 $t15_16 = $rt.builtin.sliceSlice($t0_1.$get(), 8, 12, undefined);
181 $t16_17 = le32($t15_16);
182 $t17_18 = $t4_5.$get().addr(6);
183 $t17_18.$set($t16_17);
184 $t18_19 = $rt.builtin.sliceSlice($t0_1.$get(), 12, 16, undefined);
185 $t19_20 = le32($t18_19);
186 $t20_21 = $t4_5.$get().addr(7);
187 $t20_21.$set($t19_20);
188 $t21_22 = $rt.builtin.sliceSlice($t0_1.$get(), 16, 20, undefined);
189 $t22_23 = le32($t21_22);
190 $t23_24 = $t4_5.$get().addr(8);
191 $t23_24.$set($t22_23);
192 $t24_25 = $rt.builtin.sliceSlice($t0_1.$get(), 20, 24, undefined);
193 $t25_26 = le32($t24_25);
194 $t26_27 = $t4_5.$get().addr(9);
195 $t26_27.$set($t25_26);
196 $t27_28 = $rt.builtin.sliceSlice($t0_1.$get(), 24, 28, undefined);
197 $t28_29 = le32($t27_28);
198 $t29_30 = $t4_5.$get().addr(10);
199 $t29_30.$set($t28_29);
200 $t30_31 = $rt.builtin.sliceSlice($t0_1.$get(), 28, 32, undefined);
201 $t31_32 = le32($t30_31);
202 $t32_33 = $t4_5.$get().addr(11);
203 $t32_33.$set($t31_32);
204 $t33_34 = $t4_5.$get().addr(12);
205 $t33_34.$set(counter);
206 $t34_35 = $rt.builtin.sliceSlice($t1_2.$get(), 0, 4, undefined);
207 $t35_36 = le32($t34_35);
208 $t36_37 = $t4_5.$get().addr(13);
209 $t36_37.$set($t35_36);
210 $t37_38 = $rt.builtin.sliceSlice($t1_2.$get(), 4, 8, undefined);
211 $t38_39 = le32($t37_38);
212 $t39_40 = $t4_5.$get().addr(14);
213 $t39_40.$set($t38_39);
214 $t40_41 = $rt.builtin.sliceSlice($t1_2.$get(), 8, 12, undefined);
215 $t41_42 = le32($t40_41);
216 $t42_43 = $t4_5.$get().addr(15);
217 $t42_43.$set($t41_42);
218 $t53_54 = 0;
219 $block = 3; break;
220 break;
221 }
222 case 1: {
223 $t43_44 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
224 $t44_45 = blockFn($t4_5, $t43_44);
225 $t45_46 = $t4_5.$get().addr(12);
226 $t46_47 = $t45_46.$get();
227 $t47_48 = (($t46_47 + 1) >>> 0);
228 $t48_49 = $t4_5.$get().addr(12);
229 $t48_49.$set($t47_48);
230 $t49_50 = $rt.builtin.len(data);
231 $t50_51 = ($t49_50 - $t53_54);
232 $t51_52 = Math.min($t50_51, 64);
233 $t52_53 = (0 < $t51_52);
234 if ($t52_53) {
235 $t56_57 = 0;
236 $block = 4; break;
237 }
238 else {
239 $block = 5; break;
240 }
241 break;
242 }
243 case 2: {
244 return $t3_4;
245 break;
246 }
247 case 3: {
248 $t54_55 = $rt.builtin.len(data);
249 $t55_56 = ($t53_54 < $t54_55);
250 if ($t55_56) {
251 $block = 1; break;
252 }
253 else {
254 $block = 2; break;
255 }
256 break;
257 }
258 case 4: {
259 $t57_58 = ($t53_54 + $t56_57);
260 $t58_59 = ($t53_54 + $t56_57);
261 $t59_60 = data.addr($t58_59);
262 $t60_61 = $t59_60.$get();
263 $t61_62 = $t43_44.$get().addr($t56_57);
264 $t62_63 = $t61_62.$get();
265 $t63_64 = ($t60_61 ^ $t62_63);
266 $t64_65 = $t3_4.addr($t57_58);
267 $t64_65.$set($t63_64);
268 $t65_66 = ($t56_57 + 1);
269 $t66_67 = ($t65_66 < $t51_52);
270 if ($t66_67) {
271 $t56_57 = $t65_66;
272 $block = 4; break;
273 }
274 else {
275 $block = 5; break;
276 }
277 break;
278 }
279 case 5: {
280 $t67_68 = ($t53_54 + $t51_52);
281 $t53_54 = $t67_68;
282 $block = 3; break;
283 break;
284 }
285 }
286 }
287 }
288
289 export function XOR(key, nonce, data) {
290 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68;
291 let $block = 0;
292 while (true) {
293 switch ($block) {
294 case 0: {
295 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
296 $t0_1.$set($rt.builtin.cloneValue(key));
297 $t1_2 = { $value: $rt.builtin.makeSlice(12, 12, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
298 $t1_2.$set($rt.builtin.cloneValue(nonce));
299 $t2_3 = $rt.builtin.len(data);
300 $t3_4 = $rt.builtin.makeSlice($t2_3, $t2_3, 0);
301 $t4_5 = { $value: $rt.builtin.makeSlice(16, 16, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
302 $t5_6 = $t4_5.$get().addr(0);
303 $t5_6.$set(1634760805);
304 $t6_7 = $t4_5.$get().addr(1);
305 $t6_7.$set(857760878);
306 $t7_8 = $t4_5.$get().addr(2);
307 $t7_8.$set(2036477234);
308 $t8_9 = $t4_5.$get().addr(3);
309 $t8_9.$set(1797285236);
310 $t9_10 = $rt.builtin.sliceSlice($t0_1.$get(), 0, 4, undefined);
311 $t10_11 = le32($t9_10);
312 $t11_12 = $t4_5.$get().addr(4);
313 $t11_12.$set($t10_11);
314 $t12_13 = $rt.builtin.sliceSlice($t0_1.$get(), 4, 8, undefined);
315 $t13_14 = le32($t12_13);
316 $t14_15 = $t4_5.$get().addr(5);
317 $t14_15.$set($t13_14);
318 $t15_16 = $rt.builtin.sliceSlice($t0_1.$get(), 8, 12, undefined);
319 $t16_17 = le32($t15_16);
320 $t17_18 = $t4_5.$get().addr(6);
321 $t17_18.$set($t16_17);
322 $t18_19 = $rt.builtin.sliceSlice($t0_1.$get(), 12, 16, undefined);
323 $t19_20 = le32($t18_19);
324 $t20_21 = $t4_5.$get().addr(7);
325 $t20_21.$set($t19_20);
326 $t21_22 = $rt.builtin.sliceSlice($t0_1.$get(), 16, 20, undefined);
327 $t22_23 = le32($t21_22);
328 $t23_24 = $t4_5.$get().addr(8);
329 $t23_24.$set($t22_23);
330 $t24_25 = $rt.builtin.sliceSlice($t0_1.$get(), 20, 24, undefined);
331 $t25_26 = le32($t24_25);
332 $t26_27 = $t4_5.$get().addr(9);
333 $t26_27.$set($t25_26);
334 $t27_28 = $rt.builtin.sliceSlice($t0_1.$get(), 24, 28, undefined);
335 $t28_29 = le32($t27_28);
336 $t29_30 = $t4_5.$get().addr(10);
337 $t29_30.$set($t28_29);
338 $t30_31 = $rt.builtin.sliceSlice($t0_1.$get(), 28, 32, undefined);
339 $t31_32 = le32($t30_31);
340 $t32_33 = $t4_5.$get().addr(11);
341 $t32_33.$set($t31_32);
342 $t33_34 = $t4_5.$get().addr(12);
343 $t33_34.$set(0);
344 $t34_35 = $rt.builtin.sliceSlice($t1_2.$get(), 0, 4, undefined);
345 $t35_36 = le32($t34_35);
346 $t36_37 = $t4_5.$get().addr(13);
347 $t36_37.$set($t35_36);
348 $t37_38 = $rt.builtin.sliceSlice($t1_2.$get(), 4, 8, undefined);
349 $t38_39 = le32($t37_38);
350 $t39_40 = $t4_5.$get().addr(14);
351 $t39_40.$set($t38_39);
352 $t40_41 = $rt.builtin.sliceSlice($t1_2.$get(), 8, 12, undefined);
353 $t41_42 = le32($t40_41);
354 $t42_43 = $t4_5.$get().addr(15);
355 $t42_43.$set($t41_42);
356 $t53_54 = 0;
357 $block = 3; break;
358 break;
359 }
360 case 1: {
361 $t43_44 = { $value: $rt.builtin.makeSlice(64, 64, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
362 $t44_45 = blockFn($t4_5, $t43_44);
363 $t45_46 = $t4_5.$get().addr(12);
364 $t46_47 = $t45_46.$get();
365 $t47_48 = (($t46_47 + 1) >>> 0);
366 $t48_49 = $t4_5.$get().addr(12);
367 $t48_49.$set($t47_48);
368 $t49_50 = $rt.builtin.len(data);
369 $t50_51 = ($t49_50 - $t53_54);
370 $t51_52 = Math.min($t50_51, 64);
371 $t52_53 = (0 < $t51_52);
372 if ($t52_53) {
373 $t56_57 = 0;
374 $block = 4; break;
375 }
376 else {
377 $block = 5; break;
378 }
379 break;
380 }
381 case 2: {
382 return $t3_4;
383 break;
384 }
385 case 3: {
386 $t54_55 = $rt.builtin.len(data);
387 $t55_56 = ($t53_54 < $t54_55);
388 if ($t55_56) {
389 $block = 1; break;
390 }
391 else {
392 $block = 2; break;
393 }
394 break;
395 }
396 case 4: {
397 $t57_58 = ($t53_54 + $t56_57);
398 $t58_59 = ($t53_54 + $t56_57);
399 $t59_60 = data.addr($t58_59);
400 $t60_61 = $t59_60.$get();
401 $t61_62 = $t43_44.$get().addr($t56_57);
402 $t62_63 = $t61_62.$get();
403 $t63_64 = ($t60_61 ^ $t62_63);
404 $t64_65 = $t3_4.addr($t57_58);
405 $t64_65.$set($t63_64);
406 $t65_66 = ($t56_57 + 1);
407 $t66_67 = ($t65_66 < $t51_52);
408 if ($t66_67) {
409 $t56_57 = $t65_66;
410 $block = 4; break;
411 }
412 else {
413 $block = 5; break;
414 }
415 break;
416 }
417 case 5: {
418 $t67_68 = ($t53_54 + $t51_52);
419 $t53_54 = $t67_68;
420 $block = 3; break;
421 break;
422 }
423 }
424 }
425 }
426
427 export function blockFn(state, out) {
428 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43;
429 let $block = 0;
430 while (true) {
431 switch ($block) {
432 case 0: {
433 $t0_1 = { $value: $rt.builtin.makeSlice(16, 16, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
434 $t1_2 = $rt.builtin.sliceSlice($t0_1.$get(), undefined, undefined, undefined);
435 $t2_3 = $rt.builtin.sliceSlice(state.$get(), undefined, undefined, undefined);
436 $t3_4 = $rt.builtin.copy($t1_2, $t2_3);
437 $t4_5 = (0 < 10);
438 if ($t4_5) {
439 $t5_6 = 0;
440 $block = 1; break;
441 }
442 else {
443 $block = 2; break;
444 }
445 break;
446 }
447 case 1: {
448 $t6_7 = qr($t0_1, 0, 4, 8, 12);
449 $t7_8 = qr($t0_1, 1, 5, 9, 13);
450 $t8_9 = qr($t0_1, 2, 6, 10, 14);
451 $t9_10 = qr($t0_1, 3, 7, 11, 15);
452 $t10_11 = qr($t0_1, 0, 5, 10, 15);
453 $t11_12 = qr($t0_1, 1, 6, 11, 12);
454 $t12_13 = qr($t0_1, 2, 7, 8, 13);
455 $t13_14 = qr($t0_1, 3, 4, 9, 14);
456 $t14_15 = ($t5_6 + 1);
457 $t15_16 = ($t14_15 < 10);
458 if ($t15_16) {
459 $t5_6 = $t14_15;
460 $block = 1; break;
461 }
462 else {
463 $block = 2; break;
464 }
465 break;
466 }
467 case 2: {
468 $t16_17 = (0 < 16);
469 if ($t16_17) {
470 $t17_18 = 0;
471 $block = 3; break;
472 }
473 else {
474 $block = 4; break;
475 }
476 break;
477 }
478 case 3: {
479 $t18_19 = $t0_1.$get().addr($t17_18);
480 $t19_20 = $t18_19.$get();
481 $t20_21 = state.$get().addr($t17_18);
482 $t21_22 = $t20_21.$get();
483 $t22_23 = (($t19_20 + $t21_22) >>> 0);
484 $t23_24 = ($t17_18 * 4);
485 $t24_25 = ($t22_23 & 0xFF);
486 $t25_26 = out.$get().addr($t23_24);
487 $t25_26.$set($t24_25);
488 $t26_27 = ($t17_18 * 4);
489 $t27_28 = ($t26_27 + 1);
490 $t28_29 = ($t22_23 >>> 8);
491 $t29_30 = ($t28_29 & 0xFF);
492 $t30_31 = out.$get().addr($t27_28);
493 $t30_31.$set($t29_30);
494 $t31_32 = ($t17_18 * 4);
495 $t32_33 = ($t31_32 + 2);
496 $t33_34 = ($t22_23 >>> 16);
497 $t34_35 = ($t33_34 & 0xFF);
498 $t35_36 = out.$get().addr($t32_33);
499 $t35_36.$set($t34_35);
500 $t36_37 = ($t17_18 * 4);
501 $t37_38 = ($t36_37 + 3);
502 $t38_39 = ($t22_23 >>> 24);
503 $t39_40 = ($t38_39 & 0xFF);
504 $t40_41 = out.$get().addr($t37_38);
505 $t40_41.$set($t39_40);
506 $t41_42 = ($t17_18 + 1);
507 $t42_43 = ($t41_42 < 16);
508 if ($t42_43) {
509 $t17_18 = $t41_42;
510 $block = 3; break;
511 }
512 else {
513 $block = 4; break;
514 }
515 break;
516 }
517 case 4: {
518 return;
519 break;
520 }
521 }
522 }
523 }
524
525 export function qr(s, a, b, c, d) {
526 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80;
527 $t0_1 = s.$get().addr(b);
528 $t1_2 = $t0_1.$get();
529 $t2_3 = s.$get().addr(a);
530 $t3_4 = $t2_3.$get();
531 $t4_5 = (($t3_4 + $t1_2) >>> 0);
532 $t5_6 = s.$get().addr(a);
533 $t5_6.$set($t4_5);
534 $t6_7 = s.$get().addr(a);
535 $t7_8 = $t6_7.$get();
536 $t8_9 = s.$get().addr(d);
537 $t9_10 = $t8_9.$get();
538 $t10_11 = (($t9_10 ^ $t7_8) >>> 0);
539 $t11_12 = s.$get().addr(d);
540 $t11_12.$set($t10_11);
541 $t12_13 = s.$get().addr(d);
542 $t13_14 = $t12_13.$get();
543 $t14_15 = (($t13_14 << 16) >>> 0);
544 $t15_16 = s.$get().addr(d);
545 $t16_17 = $t15_16.$get();
546 $t17_18 = ($t16_17 >>> 16);
547 $t18_19 = (($t14_15 + $t17_18) >>> 0);
548 $t19_20 = s.$get().addr(d);
549 $t19_20.$set($t18_19);
550 $t20_21 = s.$get().addr(d);
551 $t21_22 = $t20_21.$get();
552 $t22_23 = s.$get().addr(c);
553 $t23_24 = $t22_23.$get();
554 $t24_25 = (($t23_24 + $t21_22) >>> 0);
555 $t25_26 = s.$get().addr(c);
556 $t25_26.$set($t24_25);
557 $t26_27 = s.$get().addr(c);
558 $t27_28 = $t26_27.$get();
559 $t28_29 = s.$get().addr(b);
560 $t29_30 = $t28_29.$get();
561 $t30_31 = (($t29_30 ^ $t27_28) >>> 0);
562 $t31_32 = s.$get().addr(b);
563 $t31_32.$set($t30_31);
564 $t32_33 = s.$get().addr(b);
565 $t33_34 = $t32_33.$get();
566 $t34_35 = (($t33_34 << 12) >>> 0);
567 $t35_36 = s.$get().addr(b);
568 $t36_37 = $t35_36.$get();
569 $t37_38 = ($t36_37 >>> 20);
570 $t38_39 = (($t34_35 + $t37_38) >>> 0);
571 $t39_40 = s.$get().addr(b);
572 $t39_40.$set($t38_39);
573 $t40_41 = s.$get().addr(b);
574 $t41_42 = $t40_41.$get();
575 $t42_43 = s.$get().addr(a);
576 $t43_44 = $t42_43.$get();
577 $t44_45 = (($t43_44 + $t41_42) >>> 0);
578 $t45_46 = s.$get().addr(a);
579 $t45_46.$set($t44_45);
580 $t46_47 = s.$get().addr(a);
581 $t47_48 = $t46_47.$get();
582 $t48_49 = s.$get().addr(d);
583 $t49_50 = $t48_49.$get();
584 $t50_51 = (($t49_50 ^ $t47_48) >>> 0);
585 $t51_52 = s.$get().addr(d);
586 $t51_52.$set($t50_51);
587 $t52_53 = s.$get().addr(d);
588 $t53_54 = $t52_53.$get();
589 $t54_55 = (($t53_54 << 8) >>> 0);
590 $t55_56 = s.$get().addr(d);
591 $t56_57 = $t55_56.$get();
592 $t57_58 = ($t56_57 >>> 24);
593 $t58_59 = (($t54_55 + $t57_58) >>> 0);
594 $t59_60 = s.$get().addr(d);
595 $t59_60.$set($t58_59);
596 $t60_61 = s.$get().addr(d);
597 $t61_62 = $t60_61.$get();
598 $t62_63 = s.$get().addr(c);
599 $t63_64 = $t62_63.$get();
600 $t64_65 = (($t63_64 + $t61_62) >>> 0);
601 $t65_66 = s.$get().addr(c);
602 $t65_66.$set($t64_65);
603 $t66_67 = s.$get().addr(c);
604 $t67_68 = $t66_67.$get();
605 $t68_69 = s.$get().addr(b);
606 $t69_70 = $t68_69.$get();
607 $t70_71 = (($t69_70 ^ $t67_68) >>> 0);
608 $t71_72 = s.$get().addr(b);
609 $t71_72.$set($t70_71);
610 $t72_73 = s.$get().addr(b);
611 $t73_74 = $t72_73.$get();
612 $t74_75 = (($t73_74 << 7) >>> 0);
613 $t75_76 = s.$get().addr(b);
614 $t76_77 = $t75_76.$get();
615 $t77_78 = ($t76_77 >>> 25);
616 $t78_79 = (($t74_75 + $t77_78) >>> 0);
617 $t79_80 = s.$get().addr(b);
618 $t79_80.$set($t78_79);
619 return;
620 }
621
622 export function le32(b) {
623 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18;
624 $t0_1 = b.addr(0);
625 $t1_2 = $t0_1.$get();
626 $t2_3 = ($t1_2 >>> 0);
627 $t3_4 = b.addr(1);
628 $t4_5 = $t3_4.$get();
629 $t5_6 = ($t4_5 >>> 0);
630 $t6_7 = (($t5_6 << 8) >>> 0);
631 $t7_8 = (($t2_3 + $t6_7) >>> 0);
632 $t8_9 = b.addr(2);
633 $t9_10 = $t8_9.$get();
634 $t10_11 = ($t9_10 >>> 0);
635 $t11_12 = (($t10_11 << 16) >>> 0);
636 $t12_13 = (($t7_8 + $t11_12) >>> 0);
637 $t13_14 = b.addr(3);
638 $t14_15 = $t13_14.$get();
639 $t15_16 = ($t14_15 >>> 0);
640 $t16_17 = (($t15_16 << 24) >>> 0);
641 $t17_18 = (($t12_13 + $t16_17) >>> 0);
642 return $t17_18;
643 }
644
645 export function put32(b, v) {
646 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11;
647 $t0_1 = (v & 0xFF);
648 $t1_2 = b.addr(0);
649 $t1_2.$set($t0_1);
650 $t2_3 = (v >>> 8);
651 $t3_4 = ($t2_3 & 0xFF);
652 $t4_5 = b.addr(1);
653 $t4_5.$set($t3_4);
654 $t5_6 = (v >>> 16);
655 $t6_7 = ($t5_6 & 0xFF);
656 $t7_8 = b.addr(2);
657 $t7_8.$set($t6_7);
658 $t8_9 = (v >>> 24);
659 $t9_10 = ($t8_9 & 0xFF);
660 $t10_11 = b.addr(3);
661 $t10_11.$set($t9_10);
662 return;
663 }
664
665 export function __moxie_concat(a, b) {
666 let $t0_1;
667 $t0_1 = $rt.types.makeInterface('string', '__moxie_concat: compiler failed to intercept');
668 $rt.runtime.panic($t0_1);
669 }
670
671 export function __moxie_eq(a, b) {
672 let $t0_1;
673 $t0_1 = $rt.types.makeInterface('string', '__moxie_eq: compiler failed to intercept');
674 $rt.runtime.panic($t0_1);
675 }
676
677 export function __moxie_lt(a, b) {
678 let $t0_1;
679 $t0_1 = $rt.types.makeInterface('string', '__moxie_lt: compiler failed to intercept');
680 $rt.runtime.panic($t0_1);
681 }
682
683 export function __moxie_secalloc(n) {
684 let $t0_1;
685 $t0_1 = $rt.types.makeInterface('string', '__moxie_secalloc: compiler failed to intercept');
686 $rt.runtime.panic($t0_1);
687 }
688
689