1#![allow(unused_parens)]
21#![allow(non_camel_case_types)]
22
23pub type FqU1 = u8;
25pub type FqI1 = i8;
27pub type FqU2 = u8;
29pub type FqI2 = i8;
31
32#[derive(Clone, Copy)]
35pub struct FqMontgomeryDomainFieldElement(pub [u32; 8]);
36
37impl core::ops::Index<usize> for FqMontgomeryDomainFieldElement {
38 type Output = u32;
39 #[inline]
40 fn index(&self, index: usize) -> &Self::Output {
41 &self.0[index]
42 }
43}
44
45impl core::ops::IndexMut<usize> for FqMontgomeryDomainFieldElement {
46 #[inline]
47 fn index_mut(&mut self, index: usize) -> &mut Self::Output {
48 &mut self.0[index]
49 }
50}
51
52#[derive(Clone, Copy)]
55pub struct FqNonMontgomeryDomainFieldElement(pub [u32; 8]);
56
57impl core::ops::Index<usize> for FqNonMontgomeryDomainFieldElement {
58 type Output = u32;
59 #[inline]
60 fn index(&self, index: usize) -> &Self::Output {
61 &self.0[index]
62 }
63}
64
65impl core::ops::IndexMut<usize> for FqNonMontgomeryDomainFieldElement {
66 #[inline]
67 fn index_mut(&mut self, index: usize) -> &mut Self::Output {
68 &mut self.0[index]
69 }
70}
71
72pub fn fq_addcarryx_u32(out1: &mut u32, out2: &mut FqU1, arg1: FqU1, arg2: u32, arg3: u32) {
86 let x1: u64 = (((arg1 as u64) + (arg2 as u64)) + (arg3 as u64));
87 let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
88 let x3: FqU1 = ((x1 >> 32) as FqU1);
89 *out1 = x2;
90 *out2 = x3;
91}
92
93pub fn fq_subborrowx_u32(out1: &mut u32, out2: &mut FqU1, arg1: FqU1, arg2: u32, arg3: u32) {
107 let x1: i64 = (((arg2 as i64) - (arg1 as i64)) - (arg3 as i64));
108 let x2: FqI1 = ((x1 >> 32) as FqI1);
109 let x3: u32 = ((x1 & (0xffffffff as i64)) as u32);
110 *out1 = x3;
111 *out2 = (((0x0 as FqI2) - (x2 as FqI2)) as FqU1);
112}
113
114pub fn fq_mulx_u32(out1: &mut u32, out2: &mut u32, arg1: u32, arg2: u32) {
127 let x1: u64 = ((arg1 as u64) * (arg2 as u64));
128 let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
129 let x3: u32 = ((x1 >> 32) as u32);
130 *out1 = x2;
131 *out2 = x3;
132}
133
134pub fn fq_cmovznz_u32(out1: &mut u32, arg1: FqU1, arg2: u32, arg3: u32) {
146 let x1: FqU1 = (!(!arg1));
147 let x2: u32 =
148 ((((((0x0 as FqI2) - (x1 as FqI2)) as FqI1) as i64) & (0xffffffff as i64)) as u32);
149 let x3: u32 = ((x2 & arg3) | ((!x2) & arg2));
150 *out1 = x3;
151}
152
153pub fn fq_mul(
163 out1: &mut FqMontgomeryDomainFieldElement,
164 arg1: &FqMontgomeryDomainFieldElement,
165 arg2: &FqMontgomeryDomainFieldElement,
166) {
167 let x1: u32 = (arg1[1]);
168 let x2: u32 = (arg1[2]);
169 let x3: u32 = (arg1[3]);
170 let x4: u32 = (arg1[4]);
171 let x5: u32 = (arg1[5]);
172 let x6: u32 = (arg1[6]);
173 let x7: u32 = (arg1[7]);
174 let x8: u32 = (arg1[0]);
175 let mut x9: u32 = 0;
176 let mut x10: u32 = 0;
177 fq_mulx_u32(&mut x9, &mut x10, x8, (arg2[7]));
178 let mut x11: u32 = 0;
179 let mut x12: u32 = 0;
180 fq_mulx_u32(&mut x11, &mut x12, x8, (arg2[6]));
181 let mut x13: u32 = 0;
182 let mut x14: u32 = 0;
183 fq_mulx_u32(&mut x13, &mut x14, x8, (arg2[5]));
184 let mut x15: u32 = 0;
185 let mut x16: u32 = 0;
186 fq_mulx_u32(&mut x15, &mut x16, x8, (arg2[4]));
187 let mut x17: u32 = 0;
188 let mut x18: u32 = 0;
189 fq_mulx_u32(&mut x17, &mut x18, x8, (arg2[3]));
190 let mut x19: u32 = 0;
191 let mut x20: u32 = 0;
192 fq_mulx_u32(&mut x19, &mut x20, x8, (arg2[2]));
193 let mut x21: u32 = 0;
194 let mut x22: u32 = 0;
195 fq_mulx_u32(&mut x21, &mut x22, x8, (arg2[1]));
196 let mut x23: u32 = 0;
197 let mut x24: u32 = 0;
198 fq_mulx_u32(&mut x23, &mut x24, x8, (arg2[0]));
199 let mut x25: u32 = 0;
200 let mut x26: FqU1 = 0;
201 fq_addcarryx_u32(&mut x25, &mut x26, 0x0, x24, x21);
202 let mut x27: u32 = 0;
203 let mut x28: FqU1 = 0;
204 fq_addcarryx_u32(&mut x27, &mut x28, x26, x22, x19);
205 let mut x29: u32 = 0;
206 let mut x30: FqU1 = 0;
207 fq_addcarryx_u32(&mut x29, &mut x30, x28, x20, x17);
208 let mut x31: u32 = 0;
209 let mut x32: FqU1 = 0;
210 fq_addcarryx_u32(&mut x31, &mut x32, x30, x18, x15);
211 let mut x33: u32 = 0;
212 let mut x34: FqU1 = 0;
213 fq_addcarryx_u32(&mut x33, &mut x34, x32, x16, x13);
214 let mut x35: u32 = 0;
215 let mut x36: FqU1 = 0;
216 fq_addcarryx_u32(&mut x35, &mut x36, x34, x14, x11);
217 let mut x37: u32 = 0;
218 let mut x38: FqU1 = 0;
219 fq_addcarryx_u32(&mut x37, &mut x38, x36, x12, x9);
220 let x39: u32 = ((x38 as u32) + x10);
221 let mut x40: u32 = 0;
222 let mut x41: u32 = 0;
223 fq_mulx_u32(&mut x40, &mut x41, x23, 0xffffffff);
224 let mut x42: u32 = 0;
225 let mut x43: u32 = 0;
226 fq_mulx_u32(&mut x42, &mut x43, x40, 0x12ab655e);
227 let mut x44: u32 = 0;
228 let mut x45: u32 = 0;
229 fq_mulx_u32(&mut x44, &mut x45, x40, 0x9a2ca556);
230 let mut x46: u32 = 0;
231 let mut x47: u32 = 0;
232 fq_mulx_u32(&mut x46, &mut x47, x40, 0x60b44d1e);
233 let mut x48: u32 = 0;
234 let mut x49: u32 = 0;
235 fq_mulx_u32(&mut x48, &mut x49, x40, 0x5c37b001);
236 let mut x50: u32 = 0;
237 let mut x51: u32 = 0;
238 fq_mulx_u32(&mut x50, &mut x51, x40, 0x59aa76fe);
239 let mut x52: u32 = 0;
240 let mut x53: u32 = 0;
241 fq_mulx_u32(&mut x52, &mut x53, x40, 0xd0000001);
242 let mut x54: u32 = 0;
243 let mut x55: u32 = 0;
244 fq_mulx_u32(&mut x54, &mut x55, x40, 0xa118000);
245 let mut x56: u32 = 0;
246 let mut x57: FqU1 = 0;
247 fq_addcarryx_u32(&mut x56, &mut x57, 0x0, x55, x52);
248 let mut x58: u32 = 0;
249 let mut x59: FqU1 = 0;
250 fq_addcarryx_u32(&mut x58, &mut x59, x57, x53, x50);
251 let mut x60: u32 = 0;
252 let mut x61: FqU1 = 0;
253 fq_addcarryx_u32(&mut x60, &mut x61, x59, x51, x48);
254 let mut x62: u32 = 0;
255 let mut x63: FqU1 = 0;
256 fq_addcarryx_u32(&mut x62, &mut x63, x61, x49, x46);
257 let mut x64: u32 = 0;
258 let mut x65: FqU1 = 0;
259 fq_addcarryx_u32(&mut x64, &mut x65, x63, x47, x44);
260 let mut x66: u32 = 0;
261 let mut x67: FqU1 = 0;
262 fq_addcarryx_u32(&mut x66, &mut x67, x65, x45, x42);
263 let x68: u32 = ((x67 as u32) + x43);
264 let mut x69: u32 = 0;
265 let mut x70: FqU1 = 0;
266 fq_addcarryx_u32(&mut x69, &mut x70, 0x0, x23, x40);
267 let mut x71: u32 = 0;
268 let mut x72: FqU1 = 0;
269 fq_addcarryx_u32(&mut x71, &mut x72, x70, x25, x54);
270 let mut x73: u32 = 0;
271 let mut x74: FqU1 = 0;
272 fq_addcarryx_u32(&mut x73, &mut x74, x72, x27, x56);
273 let mut x75: u32 = 0;
274 let mut x76: FqU1 = 0;
275 fq_addcarryx_u32(&mut x75, &mut x76, x74, x29, x58);
276 let mut x77: u32 = 0;
277 let mut x78: FqU1 = 0;
278 fq_addcarryx_u32(&mut x77, &mut x78, x76, x31, x60);
279 let mut x79: u32 = 0;
280 let mut x80: FqU1 = 0;
281 fq_addcarryx_u32(&mut x79, &mut x80, x78, x33, x62);
282 let mut x81: u32 = 0;
283 let mut x82: FqU1 = 0;
284 fq_addcarryx_u32(&mut x81, &mut x82, x80, x35, x64);
285 let mut x83: u32 = 0;
286 let mut x84: FqU1 = 0;
287 fq_addcarryx_u32(&mut x83, &mut x84, x82, x37, x66);
288 let mut x85: u32 = 0;
289 let mut x86: FqU1 = 0;
290 fq_addcarryx_u32(&mut x85, &mut x86, x84, x39, x68);
291 let mut x87: u32 = 0;
292 let mut x88: u32 = 0;
293 fq_mulx_u32(&mut x87, &mut x88, x1, (arg2[7]));
294 let mut x89: u32 = 0;
295 let mut x90: u32 = 0;
296 fq_mulx_u32(&mut x89, &mut x90, x1, (arg2[6]));
297 let mut x91: u32 = 0;
298 let mut x92: u32 = 0;
299 fq_mulx_u32(&mut x91, &mut x92, x1, (arg2[5]));
300 let mut x93: u32 = 0;
301 let mut x94: u32 = 0;
302 fq_mulx_u32(&mut x93, &mut x94, x1, (arg2[4]));
303 let mut x95: u32 = 0;
304 let mut x96: u32 = 0;
305 fq_mulx_u32(&mut x95, &mut x96, x1, (arg2[3]));
306 let mut x97: u32 = 0;
307 let mut x98: u32 = 0;
308 fq_mulx_u32(&mut x97, &mut x98, x1, (arg2[2]));
309 let mut x99: u32 = 0;
310 let mut x100: u32 = 0;
311 fq_mulx_u32(&mut x99, &mut x100, x1, (arg2[1]));
312 let mut x101: u32 = 0;
313 let mut x102: u32 = 0;
314 fq_mulx_u32(&mut x101, &mut x102, x1, (arg2[0]));
315 let mut x103: u32 = 0;
316 let mut x104: FqU1 = 0;
317 fq_addcarryx_u32(&mut x103, &mut x104, 0x0, x102, x99);
318 let mut x105: u32 = 0;
319 let mut x106: FqU1 = 0;
320 fq_addcarryx_u32(&mut x105, &mut x106, x104, x100, x97);
321 let mut x107: u32 = 0;
322 let mut x108: FqU1 = 0;
323 fq_addcarryx_u32(&mut x107, &mut x108, x106, x98, x95);
324 let mut x109: u32 = 0;
325 let mut x110: FqU1 = 0;
326 fq_addcarryx_u32(&mut x109, &mut x110, x108, x96, x93);
327 let mut x111: u32 = 0;
328 let mut x112: FqU1 = 0;
329 fq_addcarryx_u32(&mut x111, &mut x112, x110, x94, x91);
330 let mut x113: u32 = 0;
331 let mut x114: FqU1 = 0;
332 fq_addcarryx_u32(&mut x113, &mut x114, x112, x92, x89);
333 let mut x115: u32 = 0;
334 let mut x116: FqU1 = 0;
335 fq_addcarryx_u32(&mut x115, &mut x116, x114, x90, x87);
336 let x117: u32 = ((x116 as u32) + x88);
337 let mut x118: u32 = 0;
338 let mut x119: FqU1 = 0;
339 fq_addcarryx_u32(&mut x118, &mut x119, 0x0, x71, x101);
340 let mut x120: u32 = 0;
341 let mut x121: FqU1 = 0;
342 fq_addcarryx_u32(&mut x120, &mut x121, x119, x73, x103);
343 let mut x122: u32 = 0;
344 let mut x123: FqU1 = 0;
345 fq_addcarryx_u32(&mut x122, &mut x123, x121, x75, x105);
346 let mut x124: u32 = 0;
347 let mut x125: FqU1 = 0;
348 fq_addcarryx_u32(&mut x124, &mut x125, x123, x77, x107);
349 let mut x126: u32 = 0;
350 let mut x127: FqU1 = 0;
351 fq_addcarryx_u32(&mut x126, &mut x127, x125, x79, x109);
352 let mut x128: u32 = 0;
353 let mut x129: FqU1 = 0;
354 fq_addcarryx_u32(&mut x128, &mut x129, x127, x81, x111);
355 let mut x130: u32 = 0;
356 let mut x131: FqU1 = 0;
357 fq_addcarryx_u32(&mut x130, &mut x131, x129, x83, x113);
358 let mut x132: u32 = 0;
359 let mut x133: FqU1 = 0;
360 fq_addcarryx_u32(&mut x132, &mut x133, x131, x85, x115);
361 let mut x134: u32 = 0;
362 let mut x135: FqU1 = 0;
363 fq_addcarryx_u32(&mut x134, &mut x135, x133, (x86 as u32), x117);
364 let mut x136: u32 = 0;
365 let mut x137: u32 = 0;
366 fq_mulx_u32(&mut x136, &mut x137, x118, 0xffffffff);
367 let mut x138: u32 = 0;
368 let mut x139: u32 = 0;
369 fq_mulx_u32(&mut x138, &mut x139, x136, 0x12ab655e);
370 let mut x140: u32 = 0;
371 let mut x141: u32 = 0;
372 fq_mulx_u32(&mut x140, &mut x141, x136, 0x9a2ca556);
373 let mut x142: u32 = 0;
374 let mut x143: u32 = 0;
375 fq_mulx_u32(&mut x142, &mut x143, x136, 0x60b44d1e);
376 let mut x144: u32 = 0;
377 let mut x145: u32 = 0;
378 fq_mulx_u32(&mut x144, &mut x145, x136, 0x5c37b001);
379 let mut x146: u32 = 0;
380 let mut x147: u32 = 0;
381 fq_mulx_u32(&mut x146, &mut x147, x136, 0x59aa76fe);
382 let mut x148: u32 = 0;
383 let mut x149: u32 = 0;
384 fq_mulx_u32(&mut x148, &mut x149, x136, 0xd0000001);
385 let mut x150: u32 = 0;
386 let mut x151: u32 = 0;
387 fq_mulx_u32(&mut x150, &mut x151, x136, 0xa118000);
388 let mut x152: u32 = 0;
389 let mut x153: FqU1 = 0;
390 fq_addcarryx_u32(&mut x152, &mut x153, 0x0, x151, x148);
391 let mut x154: u32 = 0;
392 let mut x155: FqU1 = 0;
393 fq_addcarryx_u32(&mut x154, &mut x155, x153, x149, x146);
394 let mut x156: u32 = 0;
395 let mut x157: FqU1 = 0;
396 fq_addcarryx_u32(&mut x156, &mut x157, x155, x147, x144);
397 let mut x158: u32 = 0;
398 let mut x159: FqU1 = 0;
399 fq_addcarryx_u32(&mut x158, &mut x159, x157, x145, x142);
400 let mut x160: u32 = 0;
401 let mut x161: FqU1 = 0;
402 fq_addcarryx_u32(&mut x160, &mut x161, x159, x143, x140);
403 let mut x162: u32 = 0;
404 let mut x163: FqU1 = 0;
405 fq_addcarryx_u32(&mut x162, &mut x163, x161, x141, x138);
406 let x164: u32 = ((x163 as u32) + x139);
407 let mut x165: u32 = 0;
408 let mut x166: FqU1 = 0;
409 fq_addcarryx_u32(&mut x165, &mut x166, 0x0, x118, x136);
410 let mut x167: u32 = 0;
411 let mut x168: FqU1 = 0;
412 fq_addcarryx_u32(&mut x167, &mut x168, x166, x120, x150);
413 let mut x169: u32 = 0;
414 let mut x170: FqU1 = 0;
415 fq_addcarryx_u32(&mut x169, &mut x170, x168, x122, x152);
416 let mut x171: u32 = 0;
417 let mut x172: FqU1 = 0;
418 fq_addcarryx_u32(&mut x171, &mut x172, x170, x124, x154);
419 let mut x173: u32 = 0;
420 let mut x174: FqU1 = 0;
421 fq_addcarryx_u32(&mut x173, &mut x174, x172, x126, x156);
422 let mut x175: u32 = 0;
423 let mut x176: FqU1 = 0;
424 fq_addcarryx_u32(&mut x175, &mut x176, x174, x128, x158);
425 let mut x177: u32 = 0;
426 let mut x178: FqU1 = 0;
427 fq_addcarryx_u32(&mut x177, &mut x178, x176, x130, x160);
428 let mut x179: u32 = 0;
429 let mut x180: FqU1 = 0;
430 fq_addcarryx_u32(&mut x179, &mut x180, x178, x132, x162);
431 let mut x181: u32 = 0;
432 let mut x182: FqU1 = 0;
433 fq_addcarryx_u32(&mut x181, &mut x182, x180, x134, x164);
434 let x183: u32 = ((x182 as u32) + (x135 as u32));
435 let mut x184: u32 = 0;
436 let mut x185: u32 = 0;
437 fq_mulx_u32(&mut x184, &mut x185, x2, (arg2[7]));
438 let mut x186: u32 = 0;
439 let mut x187: u32 = 0;
440 fq_mulx_u32(&mut x186, &mut x187, x2, (arg2[6]));
441 let mut x188: u32 = 0;
442 let mut x189: u32 = 0;
443 fq_mulx_u32(&mut x188, &mut x189, x2, (arg2[5]));
444 let mut x190: u32 = 0;
445 let mut x191: u32 = 0;
446 fq_mulx_u32(&mut x190, &mut x191, x2, (arg2[4]));
447 let mut x192: u32 = 0;
448 let mut x193: u32 = 0;
449 fq_mulx_u32(&mut x192, &mut x193, x2, (arg2[3]));
450 let mut x194: u32 = 0;
451 let mut x195: u32 = 0;
452 fq_mulx_u32(&mut x194, &mut x195, x2, (arg2[2]));
453 let mut x196: u32 = 0;
454 let mut x197: u32 = 0;
455 fq_mulx_u32(&mut x196, &mut x197, x2, (arg2[1]));
456 let mut x198: u32 = 0;
457 let mut x199: u32 = 0;
458 fq_mulx_u32(&mut x198, &mut x199, x2, (arg2[0]));
459 let mut x200: u32 = 0;
460 let mut x201: FqU1 = 0;
461 fq_addcarryx_u32(&mut x200, &mut x201, 0x0, x199, x196);
462 let mut x202: u32 = 0;
463 let mut x203: FqU1 = 0;
464 fq_addcarryx_u32(&mut x202, &mut x203, x201, x197, x194);
465 let mut x204: u32 = 0;
466 let mut x205: FqU1 = 0;
467 fq_addcarryx_u32(&mut x204, &mut x205, x203, x195, x192);
468 let mut x206: u32 = 0;
469 let mut x207: FqU1 = 0;
470 fq_addcarryx_u32(&mut x206, &mut x207, x205, x193, x190);
471 let mut x208: u32 = 0;
472 let mut x209: FqU1 = 0;
473 fq_addcarryx_u32(&mut x208, &mut x209, x207, x191, x188);
474 let mut x210: u32 = 0;
475 let mut x211: FqU1 = 0;
476 fq_addcarryx_u32(&mut x210, &mut x211, x209, x189, x186);
477 let mut x212: u32 = 0;
478 let mut x213: FqU1 = 0;
479 fq_addcarryx_u32(&mut x212, &mut x213, x211, x187, x184);
480 let x214: u32 = ((x213 as u32) + x185);
481 let mut x215: u32 = 0;
482 let mut x216: FqU1 = 0;
483 fq_addcarryx_u32(&mut x215, &mut x216, 0x0, x167, x198);
484 let mut x217: u32 = 0;
485 let mut x218: FqU1 = 0;
486 fq_addcarryx_u32(&mut x217, &mut x218, x216, x169, x200);
487 let mut x219: u32 = 0;
488 let mut x220: FqU1 = 0;
489 fq_addcarryx_u32(&mut x219, &mut x220, x218, x171, x202);
490 let mut x221: u32 = 0;
491 let mut x222: FqU1 = 0;
492 fq_addcarryx_u32(&mut x221, &mut x222, x220, x173, x204);
493 let mut x223: u32 = 0;
494 let mut x224: FqU1 = 0;
495 fq_addcarryx_u32(&mut x223, &mut x224, x222, x175, x206);
496 let mut x225: u32 = 0;
497 let mut x226: FqU1 = 0;
498 fq_addcarryx_u32(&mut x225, &mut x226, x224, x177, x208);
499 let mut x227: u32 = 0;
500 let mut x228: FqU1 = 0;
501 fq_addcarryx_u32(&mut x227, &mut x228, x226, x179, x210);
502 let mut x229: u32 = 0;
503 let mut x230: FqU1 = 0;
504 fq_addcarryx_u32(&mut x229, &mut x230, x228, x181, x212);
505 let mut x231: u32 = 0;
506 let mut x232: FqU1 = 0;
507 fq_addcarryx_u32(&mut x231, &mut x232, x230, x183, x214);
508 let mut x233: u32 = 0;
509 let mut x234: u32 = 0;
510 fq_mulx_u32(&mut x233, &mut x234, x215, 0xffffffff);
511 let mut x235: u32 = 0;
512 let mut x236: u32 = 0;
513 fq_mulx_u32(&mut x235, &mut x236, x233, 0x12ab655e);
514 let mut x237: u32 = 0;
515 let mut x238: u32 = 0;
516 fq_mulx_u32(&mut x237, &mut x238, x233, 0x9a2ca556);
517 let mut x239: u32 = 0;
518 let mut x240: u32 = 0;
519 fq_mulx_u32(&mut x239, &mut x240, x233, 0x60b44d1e);
520 let mut x241: u32 = 0;
521 let mut x242: u32 = 0;
522 fq_mulx_u32(&mut x241, &mut x242, x233, 0x5c37b001);
523 let mut x243: u32 = 0;
524 let mut x244: u32 = 0;
525 fq_mulx_u32(&mut x243, &mut x244, x233, 0x59aa76fe);
526 let mut x245: u32 = 0;
527 let mut x246: u32 = 0;
528 fq_mulx_u32(&mut x245, &mut x246, x233, 0xd0000001);
529 let mut x247: u32 = 0;
530 let mut x248: u32 = 0;
531 fq_mulx_u32(&mut x247, &mut x248, x233, 0xa118000);
532 let mut x249: u32 = 0;
533 let mut x250: FqU1 = 0;
534 fq_addcarryx_u32(&mut x249, &mut x250, 0x0, x248, x245);
535 let mut x251: u32 = 0;
536 let mut x252: FqU1 = 0;
537 fq_addcarryx_u32(&mut x251, &mut x252, x250, x246, x243);
538 let mut x253: u32 = 0;
539 let mut x254: FqU1 = 0;
540 fq_addcarryx_u32(&mut x253, &mut x254, x252, x244, x241);
541 let mut x255: u32 = 0;
542 let mut x256: FqU1 = 0;
543 fq_addcarryx_u32(&mut x255, &mut x256, x254, x242, x239);
544 let mut x257: u32 = 0;
545 let mut x258: FqU1 = 0;
546 fq_addcarryx_u32(&mut x257, &mut x258, x256, x240, x237);
547 let mut x259: u32 = 0;
548 let mut x260: FqU1 = 0;
549 fq_addcarryx_u32(&mut x259, &mut x260, x258, x238, x235);
550 let x261: u32 = ((x260 as u32) + x236);
551 let mut x262: u32 = 0;
552 let mut x263: FqU1 = 0;
553 fq_addcarryx_u32(&mut x262, &mut x263, 0x0, x215, x233);
554 let mut x264: u32 = 0;
555 let mut x265: FqU1 = 0;
556 fq_addcarryx_u32(&mut x264, &mut x265, x263, x217, x247);
557 let mut x266: u32 = 0;
558 let mut x267: FqU1 = 0;
559 fq_addcarryx_u32(&mut x266, &mut x267, x265, x219, x249);
560 let mut x268: u32 = 0;
561 let mut x269: FqU1 = 0;
562 fq_addcarryx_u32(&mut x268, &mut x269, x267, x221, x251);
563 let mut x270: u32 = 0;
564 let mut x271: FqU1 = 0;
565 fq_addcarryx_u32(&mut x270, &mut x271, x269, x223, x253);
566 let mut x272: u32 = 0;
567 let mut x273: FqU1 = 0;
568 fq_addcarryx_u32(&mut x272, &mut x273, x271, x225, x255);
569 let mut x274: u32 = 0;
570 let mut x275: FqU1 = 0;
571 fq_addcarryx_u32(&mut x274, &mut x275, x273, x227, x257);
572 let mut x276: u32 = 0;
573 let mut x277: FqU1 = 0;
574 fq_addcarryx_u32(&mut x276, &mut x277, x275, x229, x259);
575 let mut x278: u32 = 0;
576 let mut x279: FqU1 = 0;
577 fq_addcarryx_u32(&mut x278, &mut x279, x277, x231, x261);
578 let x280: u32 = ((x279 as u32) + (x232 as u32));
579 let mut x281: u32 = 0;
580 let mut x282: u32 = 0;
581 fq_mulx_u32(&mut x281, &mut x282, x3, (arg2[7]));
582 let mut x283: u32 = 0;
583 let mut x284: u32 = 0;
584 fq_mulx_u32(&mut x283, &mut x284, x3, (arg2[6]));
585 let mut x285: u32 = 0;
586 let mut x286: u32 = 0;
587 fq_mulx_u32(&mut x285, &mut x286, x3, (arg2[5]));
588 let mut x287: u32 = 0;
589 let mut x288: u32 = 0;
590 fq_mulx_u32(&mut x287, &mut x288, x3, (arg2[4]));
591 let mut x289: u32 = 0;
592 let mut x290: u32 = 0;
593 fq_mulx_u32(&mut x289, &mut x290, x3, (arg2[3]));
594 let mut x291: u32 = 0;
595 let mut x292: u32 = 0;
596 fq_mulx_u32(&mut x291, &mut x292, x3, (arg2[2]));
597 let mut x293: u32 = 0;
598 let mut x294: u32 = 0;
599 fq_mulx_u32(&mut x293, &mut x294, x3, (arg2[1]));
600 let mut x295: u32 = 0;
601 let mut x296: u32 = 0;
602 fq_mulx_u32(&mut x295, &mut x296, x3, (arg2[0]));
603 let mut x297: u32 = 0;
604 let mut x298: FqU1 = 0;
605 fq_addcarryx_u32(&mut x297, &mut x298, 0x0, x296, x293);
606 let mut x299: u32 = 0;
607 let mut x300: FqU1 = 0;
608 fq_addcarryx_u32(&mut x299, &mut x300, x298, x294, x291);
609 let mut x301: u32 = 0;
610 let mut x302: FqU1 = 0;
611 fq_addcarryx_u32(&mut x301, &mut x302, x300, x292, x289);
612 let mut x303: u32 = 0;
613 let mut x304: FqU1 = 0;
614 fq_addcarryx_u32(&mut x303, &mut x304, x302, x290, x287);
615 let mut x305: u32 = 0;
616 let mut x306: FqU1 = 0;
617 fq_addcarryx_u32(&mut x305, &mut x306, x304, x288, x285);
618 let mut x307: u32 = 0;
619 let mut x308: FqU1 = 0;
620 fq_addcarryx_u32(&mut x307, &mut x308, x306, x286, x283);
621 let mut x309: u32 = 0;
622 let mut x310: FqU1 = 0;
623 fq_addcarryx_u32(&mut x309, &mut x310, x308, x284, x281);
624 let x311: u32 = ((x310 as u32) + x282);
625 let mut x312: u32 = 0;
626 let mut x313: FqU1 = 0;
627 fq_addcarryx_u32(&mut x312, &mut x313, 0x0, x264, x295);
628 let mut x314: u32 = 0;
629 let mut x315: FqU1 = 0;
630 fq_addcarryx_u32(&mut x314, &mut x315, x313, x266, x297);
631 let mut x316: u32 = 0;
632 let mut x317: FqU1 = 0;
633 fq_addcarryx_u32(&mut x316, &mut x317, x315, x268, x299);
634 let mut x318: u32 = 0;
635 let mut x319: FqU1 = 0;
636 fq_addcarryx_u32(&mut x318, &mut x319, x317, x270, x301);
637 let mut x320: u32 = 0;
638 let mut x321: FqU1 = 0;
639 fq_addcarryx_u32(&mut x320, &mut x321, x319, x272, x303);
640 let mut x322: u32 = 0;
641 let mut x323: FqU1 = 0;
642 fq_addcarryx_u32(&mut x322, &mut x323, x321, x274, x305);
643 let mut x324: u32 = 0;
644 let mut x325: FqU1 = 0;
645 fq_addcarryx_u32(&mut x324, &mut x325, x323, x276, x307);
646 let mut x326: u32 = 0;
647 let mut x327: FqU1 = 0;
648 fq_addcarryx_u32(&mut x326, &mut x327, x325, x278, x309);
649 let mut x328: u32 = 0;
650 let mut x329: FqU1 = 0;
651 fq_addcarryx_u32(&mut x328, &mut x329, x327, x280, x311);
652 let mut x330: u32 = 0;
653 let mut x331: u32 = 0;
654 fq_mulx_u32(&mut x330, &mut x331, x312, 0xffffffff);
655 let mut x332: u32 = 0;
656 let mut x333: u32 = 0;
657 fq_mulx_u32(&mut x332, &mut x333, x330, 0x12ab655e);
658 let mut x334: u32 = 0;
659 let mut x335: u32 = 0;
660 fq_mulx_u32(&mut x334, &mut x335, x330, 0x9a2ca556);
661 let mut x336: u32 = 0;
662 let mut x337: u32 = 0;
663 fq_mulx_u32(&mut x336, &mut x337, x330, 0x60b44d1e);
664 let mut x338: u32 = 0;
665 let mut x339: u32 = 0;
666 fq_mulx_u32(&mut x338, &mut x339, x330, 0x5c37b001);
667 let mut x340: u32 = 0;
668 let mut x341: u32 = 0;
669 fq_mulx_u32(&mut x340, &mut x341, x330, 0x59aa76fe);
670 let mut x342: u32 = 0;
671 let mut x343: u32 = 0;
672 fq_mulx_u32(&mut x342, &mut x343, x330, 0xd0000001);
673 let mut x344: u32 = 0;
674 let mut x345: u32 = 0;
675 fq_mulx_u32(&mut x344, &mut x345, x330, 0xa118000);
676 let mut x346: u32 = 0;
677 let mut x347: FqU1 = 0;
678 fq_addcarryx_u32(&mut x346, &mut x347, 0x0, x345, x342);
679 let mut x348: u32 = 0;
680 let mut x349: FqU1 = 0;
681 fq_addcarryx_u32(&mut x348, &mut x349, x347, x343, x340);
682 let mut x350: u32 = 0;
683 let mut x351: FqU1 = 0;
684 fq_addcarryx_u32(&mut x350, &mut x351, x349, x341, x338);
685 let mut x352: u32 = 0;
686 let mut x353: FqU1 = 0;
687 fq_addcarryx_u32(&mut x352, &mut x353, x351, x339, x336);
688 let mut x354: u32 = 0;
689 let mut x355: FqU1 = 0;
690 fq_addcarryx_u32(&mut x354, &mut x355, x353, x337, x334);
691 let mut x356: u32 = 0;
692 let mut x357: FqU1 = 0;
693 fq_addcarryx_u32(&mut x356, &mut x357, x355, x335, x332);
694 let x358: u32 = ((x357 as u32) + x333);
695 let mut x359: u32 = 0;
696 let mut x360: FqU1 = 0;
697 fq_addcarryx_u32(&mut x359, &mut x360, 0x0, x312, x330);
698 let mut x361: u32 = 0;
699 let mut x362: FqU1 = 0;
700 fq_addcarryx_u32(&mut x361, &mut x362, x360, x314, x344);
701 let mut x363: u32 = 0;
702 let mut x364: FqU1 = 0;
703 fq_addcarryx_u32(&mut x363, &mut x364, x362, x316, x346);
704 let mut x365: u32 = 0;
705 let mut x366: FqU1 = 0;
706 fq_addcarryx_u32(&mut x365, &mut x366, x364, x318, x348);
707 let mut x367: u32 = 0;
708 let mut x368: FqU1 = 0;
709 fq_addcarryx_u32(&mut x367, &mut x368, x366, x320, x350);
710 let mut x369: u32 = 0;
711 let mut x370: FqU1 = 0;
712 fq_addcarryx_u32(&mut x369, &mut x370, x368, x322, x352);
713 let mut x371: u32 = 0;
714 let mut x372: FqU1 = 0;
715 fq_addcarryx_u32(&mut x371, &mut x372, x370, x324, x354);
716 let mut x373: u32 = 0;
717 let mut x374: FqU1 = 0;
718 fq_addcarryx_u32(&mut x373, &mut x374, x372, x326, x356);
719 let mut x375: u32 = 0;
720 let mut x376: FqU1 = 0;
721 fq_addcarryx_u32(&mut x375, &mut x376, x374, x328, x358);
722 let x377: u32 = ((x376 as u32) + (x329 as u32));
723 let mut x378: u32 = 0;
724 let mut x379: u32 = 0;
725 fq_mulx_u32(&mut x378, &mut x379, x4, (arg2[7]));
726 let mut x380: u32 = 0;
727 let mut x381: u32 = 0;
728 fq_mulx_u32(&mut x380, &mut x381, x4, (arg2[6]));
729 let mut x382: u32 = 0;
730 let mut x383: u32 = 0;
731 fq_mulx_u32(&mut x382, &mut x383, x4, (arg2[5]));
732 let mut x384: u32 = 0;
733 let mut x385: u32 = 0;
734 fq_mulx_u32(&mut x384, &mut x385, x4, (arg2[4]));
735 let mut x386: u32 = 0;
736 let mut x387: u32 = 0;
737 fq_mulx_u32(&mut x386, &mut x387, x4, (arg2[3]));
738 let mut x388: u32 = 0;
739 let mut x389: u32 = 0;
740 fq_mulx_u32(&mut x388, &mut x389, x4, (arg2[2]));
741 let mut x390: u32 = 0;
742 let mut x391: u32 = 0;
743 fq_mulx_u32(&mut x390, &mut x391, x4, (arg2[1]));
744 let mut x392: u32 = 0;
745 let mut x393: u32 = 0;
746 fq_mulx_u32(&mut x392, &mut x393, x4, (arg2[0]));
747 let mut x394: u32 = 0;
748 let mut x395: FqU1 = 0;
749 fq_addcarryx_u32(&mut x394, &mut x395, 0x0, x393, x390);
750 let mut x396: u32 = 0;
751 let mut x397: FqU1 = 0;
752 fq_addcarryx_u32(&mut x396, &mut x397, x395, x391, x388);
753 let mut x398: u32 = 0;
754 let mut x399: FqU1 = 0;
755 fq_addcarryx_u32(&mut x398, &mut x399, x397, x389, x386);
756 let mut x400: u32 = 0;
757 let mut x401: FqU1 = 0;
758 fq_addcarryx_u32(&mut x400, &mut x401, x399, x387, x384);
759 let mut x402: u32 = 0;
760 let mut x403: FqU1 = 0;
761 fq_addcarryx_u32(&mut x402, &mut x403, x401, x385, x382);
762 let mut x404: u32 = 0;
763 let mut x405: FqU1 = 0;
764 fq_addcarryx_u32(&mut x404, &mut x405, x403, x383, x380);
765 let mut x406: u32 = 0;
766 let mut x407: FqU1 = 0;
767 fq_addcarryx_u32(&mut x406, &mut x407, x405, x381, x378);
768 let x408: u32 = ((x407 as u32) + x379);
769 let mut x409: u32 = 0;
770 let mut x410: FqU1 = 0;
771 fq_addcarryx_u32(&mut x409, &mut x410, 0x0, x361, x392);
772 let mut x411: u32 = 0;
773 let mut x412: FqU1 = 0;
774 fq_addcarryx_u32(&mut x411, &mut x412, x410, x363, x394);
775 let mut x413: u32 = 0;
776 let mut x414: FqU1 = 0;
777 fq_addcarryx_u32(&mut x413, &mut x414, x412, x365, x396);
778 let mut x415: u32 = 0;
779 let mut x416: FqU1 = 0;
780 fq_addcarryx_u32(&mut x415, &mut x416, x414, x367, x398);
781 let mut x417: u32 = 0;
782 let mut x418: FqU1 = 0;
783 fq_addcarryx_u32(&mut x417, &mut x418, x416, x369, x400);
784 let mut x419: u32 = 0;
785 let mut x420: FqU1 = 0;
786 fq_addcarryx_u32(&mut x419, &mut x420, x418, x371, x402);
787 let mut x421: u32 = 0;
788 let mut x422: FqU1 = 0;
789 fq_addcarryx_u32(&mut x421, &mut x422, x420, x373, x404);
790 let mut x423: u32 = 0;
791 let mut x424: FqU1 = 0;
792 fq_addcarryx_u32(&mut x423, &mut x424, x422, x375, x406);
793 let mut x425: u32 = 0;
794 let mut x426: FqU1 = 0;
795 fq_addcarryx_u32(&mut x425, &mut x426, x424, x377, x408);
796 let mut x427: u32 = 0;
797 let mut x428: u32 = 0;
798 fq_mulx_u32(&mut x427, &mut x428, x409, 0xffffffff);
799 let mut x429: u32 = 0;
800 let mut x430: u32 = 0;
801 fq_mulx_u32(&mut x429, &mut x430, x427, 0x12ab655e);
802 let mut x431: u32 = 0;
803 let mut x432: u32 = 0;
804 fq_mulx_u32(&mut x431, &mut x432, x427, 0x9a2ca556);
805 let mut x433: u32 = 0;
806 let mut x434: u32 = 0;
807 fq_mulx_u32(&mut x433, &mut x434, x427, 0x60b44d1e);
808 let mut x435: u32 = 0;
809 let mut x436: u32 = 0;
810 fq_mulx_u32(&mut x435, &mut x436, x427, 0x5c37b001);
811 let mut x437: u32 = 0;
812 let mut x438: u32 = 0;
813 fq_mulx_u32(&mut x437, &mut x438, x427, 0x59aa76fe);
814 let mut x439: u32 = 0;
815 let mut x440: u32 = 0;
816 fq_mulx_u32(&mut x439, &mut x440, x427, 0xd0000001);
817 let mut x441: u32 = 0;
818 let mut x442: u32 = 0;
819 fq_mulx_u32(&mut x441, &mut x442, x427, 0xa118000);
820 let mut x443: u32 = 0;
821 let mut x444: FqU1 = 0;
822 fq_addcarryx_u32(&mut x443, &mut x444, 0x0, x442, x439);
823 let mut x445: u32 = 0;
824 let mut x446: FqU1 = 0;
825 fq_addcarryx_u32(&mut x445, &mut x446, x444, x440, x437);
826 let mut x447: u32 = 0;
827 let mut x448: FqU1 = 0;
828 fq_addcarryx_u32(&mut x447, &mut x448, x446, x438, x435);
829 let mut x449: u32 = 0;
830 let mut x450: FqU1 = 0;
831 fq_addcarryx_u32(&mut x449, &mut x450, x448, x436, x433);
832 let mut x451: u32 = 0;
833 let mut x452: FqU1 = 0;
834 fq_addcarryx_u32(&mut x451, &mut x452, x450, x434, x431);
835 let mut x453: u32 = 0;
836 let mut x454: FqU1 = 0;
837 fq_addcarryx_u32(&mut x453, &mut x454, x452, x432, x429);
838 let x455: u32 = ((x454 as u32) + x430);
839 let mut x456: u32 = 0;
840 let mut x457: FqU1 = 0;
841 fq_addcarryx_u32(&mut x456, &mut x457, 0x0, x409, x427);
842 let mut x458: u32 = 0;
843 let mut x459: FqU1 = 0;
844 fq_addcarryx_u32(&mut x458, &mut x459, x457, x411, x441);
845 let mut x460: u32 = 0;
846 let mut x461: FqU1 = 0;
847 fq_addcarryx_u32(&mut x460, &mut x461, x459, x413, x443);
848 let mut x462: u32 = 0;
849 let mut x463: FqU1 = 0;
850 fq_addcarryx_u32(&mut x462, &mut x463, x461, x415, x445);
851 let mut x464: u32 = 0;
852 let mut x465: FqU1 = 0;
853 fq_addcarryx_u32(&mut x464, &mut x465, x463, x417, x447);
854 let mut x466: u32 = 0;
855 let mut x467: FqU1 = 0;
856 fq_addcarryx_u32(&mut x466, &mut x467, x465, x419, x449);
857 let mut x468: u32 = 0;
858 let mut x469: FqU1 = 0;
859 fq_addcarryx_u32(&mut x468, &mut x469, x467, x421, x451);
860 let mut x470: u32 = 0;
861 let mut x471: FqU1 = 0;
862 fq_addcarryx_u32(&mut x470, &mut x471, x469, x423, x453);
863 let mut x472: u32 = 0;
864 let mut x473: FqU1 = 0;
865 fq_addcarryx_u32(&mut x472, &mut x473, x471, x425, x455);
866 let x474: u32 = ((x473 as u32) + (x426 as u32));
867 let mut x475: u32 = 0;
868 let mut x476: u32 = 0;
869 fq_mulx_u32(&mut x475, &mut x476, x5, (arg2[7]));
870 let mut x477: u32 = 0;
871 let mut x478: u32 = 0;
872 fq_mulx_u32(&mut x477, &mut x478, x5, (arg2[6]));
873 let mut x479: u32 = 0;
874 let mut x480: u32 = 0;
875 fq_mulx_u32(&mut x479, &mut x480, x5, (arg2[5]));
876 let mut x481: u32 = 0;
877 let mut x482: u32 = 0;
878 fq_mulx_u32(&mut x481, &mut x482, x5, (arg2[4]));
879 let mut x483: u32 = 0;
880 let mut x484: u32 = 0;
881 fq_mulx_u32(&mut x483, &mut x484, x5, (arg2[3]));
882 let mut x485: u32 = 0;
883 let mut x486: u32 = 0;
884 fq_mulx_u32(&mut x485, &mut x486, x5, (arg2[2]));
885 let mut x487: u32 = 0;
886 let mut x488: u32 = 0;
887 fq_mulx_u32(&mut x487, &mut x488, x5, (arg2[1]));
888 let mut x489: u32 = 0;
889 let mut x490: u32 = 0;
890 fq_mulx_u32(&mut x489, &mut x490, x5, (arg2[0]));
891 let mut x491: u32 = 0;
892 let mut x492: FqU1 = 0;
893 fq_addcarryx_u32(&mut x491, &mut x492, 0x0, x490, x487);
894 let mut x493: u32 = 0;
895 let mut x494: FqU1 = 0;
896 fq_addcarryx_u32(&mut x493, &mut x494, x492, x488, x485);
897 let mut x495: u32 = 0;
898 let mut x496: FqU1 = 0;
899 fq_addcarryx_u32(&mut x495, &mut x496, x494, x486, x483);
900 let mut x497: u32 = 0;
901 let mut x498: FqU1 = 0;
902 fq_addcarryx_u32(&mut x497, &mut x498, x496, x484, x481);
903 let mut x499: u32 = 0;
904 let mut x500: FqU1 = 0;
905 fq_addcarryx_u32(&mut x499, &mut x500, x498, x482, x479);
906 let mut x501: u32 = 0;
907 let mut x502: FqU1 = 0;
908 fq_addcarryx_u32(&mut x501, &mut x502, x500, x480, x477);
909 let mut x503: u32 = 0;
910 let mut x504: FqU1 = 0;
911 fq_addcarryx_u32(&mut x503, &mut x504, x502, x478, x475);
912 let x505: u32 = ((x504 as u32) + x476);
913 let mut x506: u32 = 0;
914 let mut x507: FqU1 = 0;
915 fq_addcarryx_u32(&mut x506, &mut x507, 0x0, x458, x489);
916 let mut x508: u32 = 0;
917 let mut x509: FqU1 = 0;
918 fq_addcarryx_u32(&mut x508, &mut x509, x507, x460, x491);
919 let mut x510: u32 = 0;
920 let mut x511: FqU1 = 0;
921 fq_addcarryx_u32(&mut x510, &mut x511, x509, x462, x493);
922 let mut x512: u32 = 0;
923 let mut x513: FqU1 = 0;
924 fq_addcarryx_u32(&mut x512, &mut x513, x511, x464, x495);
925 let mut x514: u32 = 0;
926 let mut x515: FqU1 = 0;
927 fq_addcarryx_u32(&mut x514, &mut x515, x513, x466, x497);
928 let mut x516: u32 = 0;
929 let mut x517: FqU1 = 0;
930 fq_addcarryx_u32(&mut x516, &mut x517, x515, x468, x499);
931 let mut x518: u32 = 0;
932 let mut x519: FqU1 = 0;
933 fq_addcarryx_u32(&mut x518, &mut x519, x517, x470, x501);
934 let mut x520: u32 = 0;
935 let mut x521: FqU1 = 0;
936 fq_addcarryx_u32(&mut x520, &mut x521, x519, x472, x503);
937 let mut x522: u32 = 0;
938 let mut x523: FqU1 = 0;
939 fq_addcarryx_u32(&mut x522, &mut x523, x521, x474, x505);
940 let mut x524: u32 = 0;
941 let mut x525: u32 = 0;
942 fq_mulx_u32(&mut x524, &mut x525, x506, 0xffffffff);
943 let mut x526: u32 = 0;
944 let mut x527: u32 = 0;
945 fq_mulx_u32(&mut x526, &mut x527, x524, 0x12ab655e);
946 let mut x528: u32 = 0;
947 let mut x529: u32 = 0;
948 fq_mulx_u32(&mut x528, &mut x529, x524, 0x9a2ca556);
949 let mut x530: u32 = 0;
950 let mut x531: u32 = 0;
951 fq_mulx_u32(&mut x530, &mut x531, x524, 0x60b44d1e);
952 let mut x532: u32 = 0;
953 let mut x533: u32 = 0;
954 fq_mulx_u32(&mut x532, &mut x533, x524, 0x5c37b001);
955 let mut x534: u32 = 0;
956 let mut x535: u32 = 0;
957 fq_mulx_u32(&mut x534, &mut x535, x524, 0x59aa76fe);
958 let mut x536: u32 = 0;
959 let mut x537: u32 = 0;
960 fq_mulx_u32(&mut x536, &mut x537, x524, 0xd0000001);
961 let mut x538: u32 = 0;
962 let mut x539: u32 = 0;
963 fq_mulx_u32(&mut x538, &mut x539, x524, 0xa118000);
964 let mut x540: u32 = 0;
965 let mut x541: FqU1 = 0;
966 fq_addcarryx_u32(&mut x540, &mut x541, 0x0, x539, x536);
967 let mut x542: u32 = 0;
968 let mut x543: FqU1 = 0;
969 fq_addcarryx_u32(&mut x542, &mut x543, x541, x537, x534);
970 let mut x544: u32 = 0;
971 let mut x545: FqU1 = 0;
972 fq_addcarryx_u32(&mut x544, &mut x545, x543, x535, x532);
973 let mut x546: u32 = 0;
974 let mut x547: FqU1 = 0;
975 fq_addcarryx_u32(&mut x546, &mut x547, x545, x533, x530);
976 let mut x548: u32 = 0;
977 let mut x549: FqU1 = 0;
978 fq_addcarryx_u32(&mut x548, &mut x549, x547, x531, x528);
979 let mut x550: u32 = 0;
980 let mut x551: FqU1 = 0;
981 fq_addcarryx_u32(&mut x550, &mut x551, x549, x529, x526);
982 let x552: u32 = ((x551 as u32) + x527);
983 let mut x553: u32 = 0;
984 let mut x554: FqU1 = 0;
985 fq_addcarryx_u32(&mut x553, &mut x554, 0x0, x506, x524);
986 let mut x555: u32 = 0;
987 let mut x556: FqU1 = 0;
988 fq_addcarryx_u32(&mut x555, &mut x556, x554, x508, x538);
989 let mut x557: u32 = 0;
990 let mut x558: FqU1 = 0;
991 fq_addcarryx_u32(&mut x557, &mut x558, x556, x510, x540);
992 let mut x559: u32 = 0;
993 let mut x560: FqU1 = 0;
994 fq_addcarryx_u32(&mut x559, &mut x560, x558, x512, x542);
995 let mut x561: u32 = 0;
996 let mut x562: FqU1 = 0;
997 fq_addcarryx_u32(&mut x561, &mut x562, x560, x514, x544);
998 let mut x563: u32 = 0;
999 let mut x564: FqU1 = 0;
1000 fq_addcarryx_u32(&mut x563, &mut x564, x562, x516, x546);
1001 let mut x565: u32 = 0;
1002 let mut x566: FqU1 = 0;
1003 fq_addcarryx_u32(&mut x565, &mut x566, x564, x518, x548);
1004 let mut x567: u32 = 0;
1005 let mut x568: FqU1 = 0;
1006 fq_addcarryx_u32(&mut x567, &mut x568, x566, x520, x550);
1007 let mut x569: u32 = 0;
1008 let mut x570: FqU1 = 0;
1009 fq_addcarryx_u32(&mut x569, &mut x570, x568, x522, x552);
1010 let x571: u32 = ((x570 as u32) + (x523 as u32));
1011 let mut x572: u32 = 0;
1012 let mut x573: u32 = 0;
1013 fq_mulx_u32(&mut x572, &mut x573, x6, (arg2[7]));
1014 let mut x574: u32 = 0;
1015 let mut x575: u32 = 0;
1016 fq_mulx_u32(&mut x574, &mut x575, x6, (arg2[6]));
1017 let mut x576: u32 = 0;
1018 let mut x577: u32 = 0;
1019 fq_mulx_u32(&mut x576, &mut x577, x6, (arg2[5]));
1020 let mut x578: u32 = 0;
1021 let mut x579: u32 = 0;
1022 fq_mulx_u32(&mut x578, &mut x579, x6, (arg2[4]));
1023 let mut x580: u32 = 0;
1024 let mut x581: u32 = 0;
1025 fq_mulx_u32(&mut x580, &mut x581, x6, (arg2[3]));
1026 let mut x582: u32 = 0;
1027 let mut x583: u32 = 0;
1028 fq_mulx_u32(&mut x582, &mut x583, x6, (arg2[2]));
1029 let mut x584: u32 = 0;
1030 let mut x585: u32 = 0;
1031 fq_mulx_u32(&mut x584, &mut x585, x6, (arg2[1]));
1032 let mut x586: u32 = 0;
1033 let mut x587: u32 = 0;
1034 fq_mulx_u32(&mut x586, &mut x587, x6, (arg2[0]));
1035 let mut x588: u32 = 0;
1036 let mut x589: FqU1 = 0;
1037 fq_addcarryx_u32(&mut x588, &mut x589, 0x0, x587, x584);
1038 let mut x590: u32 = 0;
1039 let mut x591: FqU1 = 0;
1040 fq_addcarryx_u32(&mut x590, &mut x591, x589, x585, x582);
1041 let mut x592: u32 = 0;
1042 let mut x593: FqU1 = 0;
1043 fq_addcarryx_u32(&mut x592, &mut x593, x591, x583, x580);
1044 let mut x594: u32 = 0;
1045 let mut x595: FqU1 = 0;
1046 fq_addcarryx_u32(&mut x594, &mut x595, x593, x581, x578);
1047 let mut x596: u32 = 0;
1048 let mut x597: FqU1 = 0;
1049 fq_addcarryx_u32(&mut x596, &mut x597, x595, x579, x576);
1050 let mut x598: u32 = 0;
1051 let mut x599: FqU1 = 0;
1052 fq_addcarryx_u32(&mut x598, &mut x599, x597, x577, x574);
1053 let mut x600: u32 = 0;
1054 let mut x601: FqU1 = 0;
1055 fq_addcarryx_u32(&mut x600, &mut x601, x599, x575, x572);
1056 let x602: u32 = ((x601 as u32) + x573);
1057 let mut x603: u32 = 0;
1058 let mut x604: FqU1 = 0;
1059 fq_addcarryx_u32(&mut x603, &mut x604, 0x0, x555, x586);
1060 let mut x605: u32 = 0;
1061 let mut x606: FqU1 = 0;
1062 fq_addcarryx_u32(&mut x605, &mut x606, x604, x557, x588);
1063 let mut x607: u32 = 0;
1064 let mut x608: FqU1 = 0;
1065 fq_addcarryx_u32(&mut x607, &mut x608, x606, x559, x590);
1066 let mut x609: u32 = 0;
1067 let mut x610: FqU1 = 0;
1068 fq_addcarryx_u32(&mut x609, &mut x610, x608, x561, x592);
1069 let mut x611: u32 = 0;
1070 let mut x612: FqU1 = 0;
1071 fq_addcarryx_u32(&mut x611, &mut x612, x610, x563, x594);
1072 let mut x613: u32 = 0;
1073 let mut x614: FqU1 = 0;
1074 fq_addcarryx_u32(&mut x613, &mut x614, x612, x565, x596);
1075 let mut x615: u32 = 0;
1076 let mut x616: FqU1 = 0;
1077 fq_addcarryx_u32(&mut x615, &mut x616, x614, x567, x598);
1078 let mut x617: u32 = 0;
1079 let mut x618: FqU1 = 0;
1080 fq_addcarryx_u32(&mut x617, &mut x618, x616, x569, x600);
1081 let mut x619: u32 = 0;
1082 let mut x620: FqU1 = 0;
1083 fq_addcarryx_u32(&mut x619, &mut x620, x618, x571, x602);
1084 let mut x621: u32 = 0;
1085 let mut x622: u32 = 0;
1086 fq_mulx_u32(&mut x621, &mut x622, x603, 0xffffffff);
1087 let mut x623: u32 = 0;
1088 let mut x624: u32 = 0;
1089 fq_mulx_u32(&mut x623, &mut x624, x621, 0x12ab655e);
1090 let mut x625: u32 = 0;
1091 let mut x626: u32 = 0;
1092 fq_mulx_u32(&mut x625, &mut x626, x621, 0x9a2ca556);
1093 let mut x627: u32 = 0;
1094 let mut x628: u32 = 0;
1095 fq_mulx_u32(&mut x627, &mut x628, x621, 0x60b44d1e);
1096 let mut x629: u32 = 0;
1097 let mut x630: u32 = 0;
1098 fq_mulx_u32(&mut x629, &mut x630, x621, 0x5c37b001);
1099 let mut x631: u32 = 0;
1100 let mut x632: u32 = 0;
1101 fq_mulx_u32(&mut x631, &mut x632, x621, 0x59aa76fe);
1102 let mut x633: u32 = 0;
1103 let mut x634: u32 = 0;
1104 fq_mulx_u32(&mut x633, &mut x634, x621, 0xd0000001);
1105 let mut x635: u32 = 0;
1106 let mut x636: u32 = 0;
1107 fq_mulx_u32(&mut x635, &mut x636, x621, 0xa118000);
1108 let mut x637: u32 = 0;
1109 let mut x638: FqU1 = 0;
1110 fq_addcarryx_u32(&mut x637, &mut x638, 0x0, x636, x633);
1111 let mut x639: u32 = 0;
1112 let mut x640: FqU1 = 0;
1113 fq_addcarryx_u32(&mut x639, &mut x640, x638, x634, x631);
1114 let mut x641: u32 = 0;
1115 let mut x642: FqU1 = 0;
1116 fq_addcarryx_u32(&mut x641, &mut x642, x640, x632, x629);
1117 let mut x643: u32 = 0;
1118 let mut x644: FqU1 = 0;
1119 fq_addcarryx_u32(&mut x643, &mut x644, x642, x630, x627);
1120 let mut x645: u32 = 0;
1121 let mut x646: FqU1 = 0;
1122 fq_addcarryx_u32(&mut x645, &mut x646, x644, x628, x625);
1123 let mut x647: u32 = 0;
1124 let mut x648: FqU1 = 0;
1125 fq_addcarryx_u32(&mut x647, &mut x648, x646, x626, x623);
1126 let x649: u32 = ((x648 as u32) + x624);
1127 let mut x650: u32 = 0;
1128 let mut x651: FqU1 = 0;
1129 fq_addcarryx_u32(&mut x650, &mut x651, 0x0, x603, x621);
1130 let mut x652: u32 = 0;
1131 let mut x653: FqU1 = 0;
1132 fq_addcarryx_u32(&mut x652, &mut x653, x651, x605, x635);
1133 let mut x654: u32 = 0;
1134 let mut x655: FqU1 = 0;
1135 fq_addcarryx_u32(&mut x654, &mut x655, x653, x607, x637);
1136 let mut x656: u32 = 0;
1137 let mut x657: FqU1 = 0;
1138 fq_addcarryx_u32(&mut x656, &mut x657, x655, x609, x639);
1139 let mut x658: u32 = 0;
1140 let mut x659: FqU1 = 0;
1141 fq_addcarryx_u32(&mut x658, &mut x659, x657, x611, x641);
1142 let mut x660: u32 = 0;
1143 let mut x661: FqU1 = 0;
1144 fq_addcarryx_u32(&mut x660, &mut x661, x659, x613, x643);
1145 let mut x662: u32 = 0;
1146 let mut x663: FqU1 = 0;
1147 fq_addcarryx_u32(&mut x662, &mut x663, x661, x615, x645);
1148 let mut x664: u32 = 0;
1149 let mut x665: FqU1 = 0;
1150 fq_addcarryx_u32(&mut x664, &mut x665, x663, x617, x647);
1151 let mut x666: u32 = 0;
1152 let mut x667: FqU1 = 0;
1153 fq_addcarryx_u32(&mut x666, &mut x667, x665, x619, x649);
1154 let x668: u32 = ((x667 as u32) + (x620 as u32));
1155 let mut x669: u32 = 0;
1156 let mut x670: u32 = 0;
1157 fq_mulx_u32(&mut x669, &mut x670, x7, (arg2[7]));
1158 let mut x671: u32 = 0;
1159 let mut x672: u32 = 0;
1160 fq_mulx_u32(&mut x671, &mut x672, x7, (arg2[6]));
1161 let mut x673: u32 = 0;
1162 let mut x674: u32 = 0;
1163 fq_mulx_u32(&mut x673, &mut x674, x7, (arg2[5]));
1164 let mut x675: u32 = 0;
1165 let mut x676: u32 = 0;
1166 fq_mulx_u32(&mut x675, &mut x676, x7, (arg2[4]));
1167 let mut x677: u32 = 0;
1168 let mut x678: u32 = 0;
1169 fq_mulx_u32(&mut x677, &mut x678, x7, (arg2[3]));
1170 let mut x679: u32 = 0;
1171 let mut x680: u32 = 0;
1172 fq_mulx_u32(&mut x679, &mut x680, x7, (arg2[2]));
1173 let mut x681: u32 = 0;
1174 let mut x682: u32 = 0;
1175 fq_mulx_u32(&mut x681, &mut x682, x7, (arg2[1]));
1176 let mut x683: u32 = 0;
1177 let mut x684: u32 = 0;
1178 fq_mulx_u32(&mut x683, &mut x684, x7, (arg2[0]));
1179 let mut x685: u32 = 0;
1180 let mut x686: FqU1 = 0;
1181 fq_addcarryx_u32(&mut x685, &mut x686, 0x0, x684, x681);
1182 let mut x687: u32 = 0;
1183 let mut x688: FqU1 = 0;
1184 fq_addcarryx_u32(&mut x687, &mut x688, x686, x682, x679);
1185 let mut x689: u32 = 0;
1186 let mut x690: FqU1 = 0;
1187 fq_addcarryx_u32(&mut x689, &mut x690, x688, x680, x677);
1188 let mut x691: u32 = 0;
1189 let mut x692: FqU1 = 0;
1190 fq_addcarryx_u32(&mut x691, &mut x692, x690, x678, x675);
1191 let mut x693: u32 = 0;
1192 let mut x694: FqU1 = 0;
1193 fq_addcarryx_u32(&mut x693, &mut x694, x692, x676, x673);
1194 let mut x695: u32 = 0;
1195 let mut x696: FqU1 = 0;
1196 fq_addcarryx_u32(&mut x695, &mut x696, x694, x674, x671);
1197 let mut x697: u32 = 0;
1198 let mut x698: FqU1 = 0;
1199 fq_addcarryx_u32(&mut x697, &mut x698, x696, x672, x669);
1200 let x699: u32 = ((x698 as u32) + x670);
1201 let mut x700: u32 = 0;
1202 let mut x701: FqU1 = 0;
1203 fq_addcarryx_u32(&mut x700, &mut x701, 0x0, x652, x683);
1204 let mut x702: u32 = 0;
1205 let mut x703: FqU1 = 0;
1206 fq_addcarryx_u32(&mut x702, &mut x703, x701, x654, x685);
1207 let mut x704: u32 = 0;
1208 let mut x705: FqU1 = 0;
1209 fq_addcarryx_u32(&mut x704, &mut x705, x703, x656, x687);
1210 let mut x706: u32 = 0;
1211 let mut x707: FqU1 = 0;
1212 fq_addcarryx_u32(&mut x706, &mut x707, x705, x658, x689);
1213 let mut x708: u32 = 0;
1214 let mut x709: FqU1 = 0;
1215 fq_addcarryx_u32(&mut x708, &mut x709, x707, x660, x691);
1216 let mut x710: u32 = 0;
1217 let mut x711: FqU1 = 0;
1218 fq_addcarryx_u32(&mut x710, &mut x711, x709, x662, x693);
1219 let mut x712: u32 = 0;
1220 let mut x713: FqU1 = 0;
1221 fq_addcarryx_u32(&mut x712, &mut x713, x711, x664, x695);
1222 let mut x714: u32 = 0;
1223 let mut x715: FqU1 = 0;
1224 fq_addcarryx_u32(&mut x714, &mut x715, x713, x666, x697);
1225 let mut x716: u32 = 0;
1226 let mut x717: FqU1 = 0;
1227 fq_addcarryx_u32(&mut x716, &mut x717, x715, x668, x699);
1228 let mut x718: u32 = 0;
1229 let mut x719: u32 = 0;
1230 fq_mulx_u32(&mut x718, &mut x719, x700, 0xffffffff);
1231 let mut x720: u32 = 0;
1232 let mut x721: u32 = 0;
1233 fq_mulx_u32(&mut x720, &mut x721, x718, 0x12ab655e);
1234 let mut x722: u32 = 0;
1235 let mut x723: u32 = 0;
1236 fq_mulx_u32(&mut x722, &mut x723, x718, 0x9a2ca556);
1237 let mut x724: u32 = 0;
1238 let mut x725: u32 = 0;
1239 fq_mulx_u32(&mut x724, &mut x725, x718, 0x60b44d1e);
1240 let mut x726: u32 = 0;
1241 let mut x727: u32 = 0;
1242 fq_mulx_u32(&mut x726, &mut x727, x718, 0x5c37b001);
1243 let mut x728: u32 = 0;
1244 let mut x729: u32 = 0;
1245 fq_mulx_u32(&mut x728, &mut x729, x718, 0x59aa76fe);
1246 let mut x730: u32 = 0;
1247 let mut x731: u32 = 0;
1248 fq_mulx_u32(&mut x730, &mut x731, x718, 0xd0000001);
1249 let mut x732: u32 = 0;
1250 let mut x733: u32 = 0;
1251 fq_mulx_u32(&mut x732, &mut x733, x718, 0xa118000);
1252 let mut x734: u32 = 0;
1253 let mut x735: FqU1 = 0;
1254 fq_addcarryx_u32(&mut x734, &mut x735, 0x0, x733, x730);
1255 let mut x736: u32 = 0;
1256 let mut x737: FqU1 = 0;
1257 fq_addcarryx_u32(&mut x736, &mut x737, x735, x731, x728);
1258 let mut x738: u32 = 0;
1259 let mut x739: FqU1 = 0;
1260 fq_addcarryx_u32(&mut x738, &mut x739, x737, x729, x726);
1261 let mut x740: u32 = 0;
1262 let mut x741: FqU1 = 0;
1263 fq_addcarryx_u32(&mut x740, &mut x741, x739, x727, x724);
1264 let mut x742: u32 = 0;
1265 let mut x743: FqU1 = 0;
1266 fq_addcarryx_u32(&mut x742, &mut x743, x741, x725, x722);
1267 let mut x744: u32 = 0;
1268 let mut x745: FqU1 = 0;
1269 fq_addcarryx_u32(&mut x744, &mut x745, x743, x723, x720);
1270 let x746: u32 = ((x745 as u32) + x721);
1271 let mut x747: u32 = 0;
1272 let mut x748: FqU1 = 0;
1273 fq_addcarryx_u32(&mut x747, &mut x748, 0x0, x700, x718);
1274 let mut x749: u32 = 0;
1275 let mut x750: FqU1 = 0;
1276 fq_addcarryx_u32(&mut x749, &mut x750, x748, x702, x732);
1277 let mut x751: u32 = 0;
1278 let mut x752: FqU1 = 0;
1279 fq_addcarryx_u32(&mut x751, &mut x752, x750, x704, x734);
1280 let mut x753: u32 = 0;
1281 let mut x754: FqU1 = 0;
1282 fq_addcarryx_u32(&mut x753, &mut x754, x752, x706, x736);
1283 let mut x755: u32 = 0;
1284 let mut x756: FqU1 = 0;
1285 fq_addcarryx_u32(&mut x755, &mut x756, x754, x708, x738);
1286 let mut x757: u32 = 0;
1287 let mut x758: FqU1 = 0;
1288 fq_addcarryx_u32(&mut x757, &mut x758, x756, x710, x740);
1289 let mut x759: u32 = 0;
1290 let mut x760: FqU1 = 0;
1291 fq_addcarryx_u32(&mut x759, &mut x760, x758, x712, x742);
1292 let mut x761: u32 = 0;
1293 let mut x762: FqU1 = 0;
1294 fq_addcarryx_u32(&mut x761, &mut x762, x760, x714, x744);
1295 let mut x763: u32 = 0;
1296 let mut x764: FqU1 = 0;
1297 fq_addcarryx_u32(&mut x763, &mut x764, x762, x716, x746);
1298 let x765: u32 = ((x764 as u32) + (x717 as u32));
1299 let mut x766: u32 = 0;
1300 let mut x767: FqU1 = 0;
1301 fq_subborrowx_u32(&mut x766, &mut x767, 0x0, x749, (0x1 as u32));
1302 let mut x768: u32 = 0;
1303 let mut x769: FqU1 = 0;
1304 fq_subborrowx_u32(&mut x768, &mut x769, x767, x751, 0xa118000);
1305 let mut x770: u32 = 0;
1306 let mut x771: FqU1 = 0;
1307 fq_subborrowx_u32(&mut x770, &mut x771, x769, x753, 0xd0000001);
1308 let mut x772: u32 = 0;
1309 let mut x773: FqU1 = 0;
1310 fq_subborrowx_u32(&mut x772, &mut x773, x771, x755, 0x59aa76fe);
1311 let mut x774: u32 = 0;
1312 let mut x775: FqU1 = 0;
1313 fq_subborrowx_u32(&mut x774, &mut x775, x773, x757, 0x5c37b001);
1314 let mut x776: u32 = 0;
1315 let mut x777: FqU1 = 0;
1316 fq_subborrowx_u32(&mut x776, &mut x777, x775, x759, 0x60b44d1e);
1317 let mut x778: u32 = 0;
1318 let mut x779: FqU1 = 0;
1319 fq_subborrowx_u32(&mut x778, &mut x779, x777, x761, 0x9a2ca556);
1320 let mut x780: u32 = 0;
1321 let mut x781: FqU1 = 0;
1322 fq_subborrowx_u32(&mut x780, &mut x781, x779, x763, 0x12ab655e);
1323 let mut x782: u32 = 0;
1324 let mut x783: FqU1 = 0;
1325 fq_subborrowx_u32(&mut x782, &mut x783, x781, x765, (0x0 as u32));
1326 let mut x784: u32 = 0;
1327 fq_cmovznz_u32(&mut x784, x783, x766, x749);
1328 let mut x785: u32 = 0;
1329 fq_cmovznz_u32(&mut x785, x783, x768, x751);
1330 let mut x786: u32 = 0;
1331 fq_cmovznz_u32(&mut x786, x783, x770, x753);
1332 let mut x787: u32 = 0;
1333 fq_cmovznz_u32(&mut x787, x783, x772, x755);
1334 let mut x788: u32 = 0;
1335 fq_cmovznz_u32(&mut x788, x783, x774, x757);
1336 let mut x789: u32 = 0;
1337 fq_cmovznz_u32(&mut x789, x783, x776, x759);
1338 let mut x790: u32 = 0;
1339 fq_cmovznz_u32(&mut x790, x783, x778, x761);
1340 let mut x791: u32 = 0;
1341 fq_cmovznz_u32(&mut x791, x783, x780, x763);
1342 out1[0] = x784;
1343 out1[1] = x785;
1344 out1[2] = x786;
1345 out1[3] = x787;
1346 out1[4] = x788;
1347 out1[5] = x789;
1348 out1[6] = x790;
1349 out1[7] = x791;
1350}
1351
1352pub fn fq_square(out1: &mut FqMontgomeryDomainFieldElement, arg1: &FqMontgomeryDomainFieldElement) {
1361 let x1: u32 = (arg1[1]);
1362 let x2: u32 = (arg1[2]);
1363 let x3: u32 = (arg1[3]);
1364 let x4: u32 = (arg1[4]);
1365 let x5: u32 = (arg1[5]);
1366 let x6: u32 = (arg1[6]);
1367 let x7: u32 = (arg1[7]);
1368 let x8: u32 = (arg1[0]);
1369 let mut x9: u32 = 0;
1370 let mut x10: u32 = 0;
1371 fq_mulx_u32(&mut x9, &mut x10, x8, (arg1[7]));
1372 let mut x11: u32 = 0;
1373 let mut x12: u32 = 0;
1374 fq_mulx_u32(&mut x11, &mut x12, x8, (arg1[6]));
1375 let mut x13: u32 = 0;
1376 let mut x14: u32 = 0;
1377 fq_mulx_u32(&mut x13, &mut x14, x8, (arg1[5]));
1378 let mut x15: u32 = 0;
1379 let mut x16: u32 = 0;
1380 fq_mulx_u32(&mut x15, &mut x16, x8, (arg1[4]));
1381 let mut x17: u32 = 0;
1382 let mut x18: u32 = 0;
1383 fq_mulx_u32(&mut x17, &mut x18, x8, (arg1[3]));
1384 let mut x19: u32 = 0;
1385 let mut x20: u32 = 0;
1386 fq_mulx_u32(&mut x19, &mut x20, x8, (arg1[2]));
1387 let mut x21: u32 = 0;
1388 let mut x22: u32 = 0;
1389 fq_mulx_u32(&mut x21, &mut x22, x8, (arg1[1]));
1390 let mut x23: u32 = 0;
1391 let mut x24: u32 = 0;
1392 fq_mulx_u32(&mut x23, &mut x24, x8, (arg1[0]));
1393 let mut x25: u32 = 0;
1394 let mut x26: FqU1 = 0;
1395 fq_addcarryx_u32(&mut x25, &mut x26, 0x0, x24, x21);
1396 let mut x27: u32 = 0;
1397 let mut x28: FqU1 = 0;
1398 fq_addcarryx_u32(&mut x27, &mut x28, x26, x22, x19);
1399 let mut x29: u32 = 0;
1400 let mut x30: FqU1 = 0;
1401 fq_addcarryx_u32(&mut x29, &mut x30, x28, x20, x17);
1402 let mut x31: u32 = 0;
1403 let mut x32: FqU1 = 0;
1404 fq_addcarryx_u32(&mut x31, &mut x32, x30, x18, x15);
1405 let mut x33: u32 = 0;
1406 let mut x34: FqU1 = 0;
1407 fq_addcarryx_u32(&mut x33, &mut x34, x32, x16, x13);
1408 let mut x35: u32 = 0;
1409 let mut x36: FqU1 = 0;
1410 fq_addcarryx_u32(&mut x35, &mut x36, x34, x14, x11);
1411 let mut x37: u32 = 0;
1412 let mut x38: FqU1 = 0;
1413 fq_addcarryx_u32(&mut x37, &mut x38, x36, x12, x9);
1414 let x39: u32 = ((x38 as u32) + x10);
1415 let mut x40: u32 = 0;
1416 let mut x41: u32 = 0;
1417 fq_mulx_u32(&mut x40, &mut x41, x23, 0xffffffff);
1418 let mut x42: u32 = 0;
1419 let mut x43: u32 = 0;
1420 fq_mulx_u32(&mut x42, &mut x43, x40, 0x12ab655e);
1421 let mut x44: u32 = 0;
1422 let mut x45: u32 = 0;
1423 fq_mulx_u32(&mut x44, &mut x45, x40, 0x9a2ca556);
1424 let mut x46: u32 = 0;
1425 let mut x47: u32 = 0;
1426 fq_mulx_u32(&mut x46, &mut x47, x40, 0x60b44d1e);
1427 let mut x48: u32 = 0;
1428 let mut x49: u32 = 0;
1429 fq_mulx_u32(&mut x48, &mut x49, x40, 0x5c37b001);
1430 let mut x50: u32 = 0;
1431 let mut x51: u32 = 0;
1432 fq_mulx_u32(&mut x50, &mut x51, x40, 0x59aa76fe);
1433 let mut x52: u32 = 0;
1434 let mut x53: u32 = 0;
1435 fq_mulx_u32(&mut x52, &mut x53, x40, 0xd0000001);
1436 let mut x54: u32 = 0;
1437 let mut x55: u32 = 0;
1438 fq_mulx_u32(&mut x54, &mut x55, x40, 0xa118000);
1439 let mut x56: u32 = 0;
1440 let mut x57: FqU1 = 0;
1441 fq_addcarryx_u32(&mut x56, &mut x57, 0x0, x55, x52);
1442 let mut x58: u32 = 0;
1443 let mut x59: FqU1 = 0;
1444 fq_addcarryx_u32(&mut x58, &mut x59, x57, x53, x50);
1445 let mut x60: u32 = 0;
1446 let mut x61: FqU1 = 0;
1447 fq_addcarryx_u32(&mut x60, &mut x61, x59, x51, x48);
1448 let mut x62: u32 = 0;
1449 let mut x63: FqU1 = 0;
1450 fq_addcarryx_u32(&mut x62, &mut x63, x61, x49, x46);
1451 let mut x64: u32 = 0;
1452 let mut x65: FqU1 = 0;
1453 fq_addcarryx_u32(&mut x64, &mut x65, x63, x47, x44);
1454 let mut x66: u32 = 0;
1455 let mut x67: FqU1 = 0;
1456 fq_addcarryx_u32(&mut x66, &mut x67, x65, x45, x42);
1457 let x68: u32 = ((x67 as u32) + x43);
1458 let mut x69: u32 = 0;
1459 let mut x70: FqU1 = 0;
1460 fq_addcarryx_u32(&mut x69, &mut x70, 0x0, x23, x40);
1461 let mut x71: u32 = 0;
1462 let mut x72: FqU1 = 0;
1463 fq_addcarryx_u32(&mut x71, &mut x72, x70, x25, x54);
1464 let mut x73: u32 = 0;
1465 let mut x74: FqU1 = 0;
1466 fq_addcarryx_u32(&mut x73, &mut x74, x72, x27, x56);
1467 let mut x75: u32 = 0;
1468 let mut x76: FqU1 = 0;
1469 fq_addcarryx_u32(&mut x75, &mut x76, x74, x29, x58);
1470 let mut x77: u32 = 0;
1471 let mut x78: FqU1 = 0;
1472 fq_addcarryx_u32(&mut x77, &mut x78, x76, x31, x60);
1473 let mut x79: u32 = 0;
1474 let mut x80: FqU1 = 0;
1475 fq_addcarryx_u32(&mut x79, &mut x80, x78, x33, x62);
1476 let mut x81: u32 = 0;
1477 let mut x82: FqU1 = 0;
1478 fq_addcarryx_u32(&mut x81, &mut x82, x80, x35, x64);
1479 let mut x83: u32 = 0;
1480 let mut x84: FqU1 = 0;
1481 fq_addcarryx_u32(&mut x83, &mut x84, x82, x37, x66);
1482 let mut x85: u32 = 0;
1483 let mut x86: FqU1 = 0;
1484 fq_addcarryx_u32(&mut x85, &mut x86, x84, x39, x68);
1485 let mut x87: u32 = 0;
1486 let mut x88: u32 = 0;
1487 fq_mulx_u32(&mut x87, &mut x88, x1, (arg1[7]));
1488 let mut x89: u32 = 0;
1489 let mut x90: u32 = 0;
1490 fq_mulx_u32(&mut x89, &mut x90, x1, (arg1[6]));
1491 let mut x91: u32 = 0;
1492 let mut x92: u32 = 0;
1493 fq_mulx_u32(&mut x91, &mut x92, x1, (arg1[5]));
1494 let mut x93: u32 = 0;
1495 let mut x94: u32 = 0;
1496 fq_mulx_u32(&mut x93, &mut x94, x1, (arg1[4]));
1497 let mut x95: u32 = 0;
1498 let mut x96: u32 = 0;
1499 fq_mulx_u32(&mut x95, &mut x96, x1, (arg1[3]));
1500 let mut x97: u32 = 0;
1501 let mut x98: u32 = 0;
1502 fq_mulx_u32(&mut x97, &mut x98, x1, (arg1[2]));
1503 let mut x99: u32 = 0;
1504 let mut x100: u32 = 0;
1505 fq_mulx_u32(&mut x99, &mut x100, x1, (arg1[1]));
1506 let mut x101: u32 = 0;
1507 let mut x102: u32 = 0;
1508 fq_mulx_u32(&mut x101, &mut x102, x1, (arg1[0]));
1509 let mut x103: u32 = 0;
1510 let mut x104: FqU1 = 0;
1511 fq_addcarryx_u32(&mut x103, &mut x104, 0x0, x102, x99);
1512 let mut x105: u32 = 0;
1513 let mut x106: FqU1 = 0;
1514 fq_addcarryx_u32(&mut x105, &mut x106, x104, x100, x97);
1515 let mut x107: u32 = 0;
1516 let mut x108: FqU1 = 0;
1517 fq_addcarryx_u32(&mut x107, &mut x108, x106, x98, x95);
1518 let mut x109: u32 = 0;
1519 let mut x110: FqU1 = 0;
1520 fq_addcarryx_u32(&mut x109, &mut x110, x108, x96, x93);
1521 let mut x111: u32 = 0;
1522 let mut x112: FqU1 = 0;
1523 fq_addcarryx_u32(&mut x111, &mut x112, x110, x94, x91);
1524 let mut x113: u32 = 0;
1525 let mut x114: FqU1 = 0;
1526 fq_addcarryx_u32(&mut x113, &mut x114, x112, x92, x89);
1527 let mut x115: u32 = 0;
1528 let mut x116: FqU1 = 0;
1529 fq_addcarryx_u32(&mut x115, &mut x116, x114, x90, x87);
1530 let x117: u32 = ((x116 as u32) + x88);
1531 let mut x118: u32 = 0;
1532 let mut x119: FqU1 = 0;
1533 fq_addcarryx_u32(&mut x118, &mut x119, 0x0, x71, x101);
1534 let mut x120: u32 = 0;
1535 let mut x121: FqU1 = 0;
1536 fq_addcarryx_u32(&mut x120, &mut x121, x119, x73, x103);
1537 let mut x122: u32 = 0;
1538 let mut x123: FqU1 = 0;
1539 fq_addcarryx_u32(&mut x122, &mut x123, x121, x75, x105);
1540 let mut x124: u32 = 0;
1541 let mut x125: FqU1 = 0;
1542 fq_addcarryx_u32(&mut x124, &mut x125, x123, x77, x107);
1543 let mut x126: u32 = 0;
1544 let mut x127: FqU1 = 0;
1545 fq_addcarryx_u32(&mut x126, &mut x127, x125, x79, x109);
1546 let mut x128: u32 = 0;
1547 let mut x129: FqU1 = 0;
1548 fq_addcarryx_u32(&mut x128, &mut x129, x127, x81, x111);
1549 let mut x130: u32 = 0;
1550 let mut x131: FqU1 = 0;
1551 fq_addcarryx_u32(&mut x130, &mut x131, x129, x83, x113);
1552 let mut x132: u32 = 0;
1553 let mut x133: FqU1 = 0;
1554 fq_addcarryx_u32(&mut x132, &mut x133, x131, x85, x115);
1555 let mut x134: u32 = 0;
1556 let mut x135: FqU1 = 0;
1557 fq_addcarryx_u32(&mut x134, &mut x135, x133, (x86 as u32), x117);
1558 let mut x136: u32 = 0;
1559 let mut x137: u32 = 0;
1560 fq_mulx_u32(&mut x136, &mut x137, x118, 0xffffffff);
1561 let mut x138: u32 = 0;
1562 let mut x139: u32 = 0;
1563 fq_mulx_u32(&mut x138, &mut x139, x136, 0x12ab655e);
1564 let mut x140: u32 = 0;
1565 let mut x141: u32 = 0;
1566 fq_mulx_u32(&mut x140, &mut x141, x136, 0x9a2ca556);
1567 let mut x142: u32 = 0;
1568 let mut x143: u32 = 0;
1569 fq_mulx_u32(&mut x142, &mut x143, x136, 0x60b44d1e);
1570 let mut x144: u32 = 0;
1571 let mut x145: u32 = 0;
1572 fq_mulx_u32(&mut x144, &mut x145, x136, 0x5c37b001);
1573 let mut x146: u32 = 0;
1574 let mut x147: u32 = 0;
1575 fq_mulx_u32(&mut x146, &mut x147, x136, 0x59aa76fe);
1576 let mut x148: u32 = 0;
1577 let mut x149: u32 = 0;
1578 fq_mulx_u32(&mut x148, &mut x149, x136, 0xd0000001);
1579 let mut x150: u32 = 0;
1580 let mut x151: u32 = 0;
1581 fq_mulx_u32(&mut x150, &mut x151, x136, 0xa118000);
1582 let mut x152: u32 = 0;
1583 let mut x153: FqU1 = 0;
1584 fq_addcarryx_u32(&mut x152, &mut x153, 0x0, x151, x148);
1585 let mut x154: u32 = 0;
1586 let mut x155: FqU1 = 0;
1587 fq_addcarryx_u32(&mut x154, &mut x155, x153, x149, x146);
1588 let mut x156: u32 = 0;
1589 let mut x157: FqU1 = 0;
1590 fq_addcarryx_u32(&mut x156, &mut x157, x155, x147, x144);
1591 let mut x158: u32 = 0;
1592 let mut x159: FqU1 = 0;
1593 fq_addcarryx_u32(&mut x158, &mut x159, x157, x145, x142);
1594 let mut x160: u32 = 0;
1595 let mut x161: FqU1 = 0;
1596 fq_addcarryx_u32(&mut x160, &mut x161, x159, x143, x140);
1597 let mut x162: u32 = 0;
1598 let mut x163: FqU1 = 0;
1599 fq_addcarryx_u32(&mut x162, &mut x163, x161, x141, x138);
1600 let x164: u32 = ((x163 as u32) + x139);
1601 let mut x165: u32 = 0;
1602 let mut x166: FqU1 = 0;
1603 fq_addcarryx_u32(&mut x165, &mut x166, 0x0, x118, x136);
1604 let mut x167: u32 = 0;
1605 let mut x168: FqU1 = 0;
1606 fq_addcarryx_u32(&mut x167, &mut x168, x166, x120, x150);
1607 let mut x169: u32 = 0;
1608 let mut x170: FqU1 = 0;
1609 fq_addcarryx_u32(&mut x169, &mut x170, x168, x122, x152);
1610 let mut x171: u32 = 0;
1611 let mut x172: FqU1 = 0;
1612 fq_addcarryx_u32(&mut x171, &mut x172, x170, x124, x154);
1613 let mut x173: u32 = 0;
1614 let mut x174: FqU1 = 0;
1615 fq_addcarryx_u32(&mut x173, &mut x174, x172, x126, x156);
1616 let mut x175: u32 = 0;
1617 let mut x176: FqU1 = 0;
1618 fq_addcarryx_u32(&mut x175, &mut x176, x174, x128, x158);
1619 let mut x177: u32 = 0;
1620 let mut x178: FqU1 = 0;
1621 fq_addcarryx_u32(&mut x177, &mut x178, x176, x130, x160);
1622 let mut x179: u32 = 0;
1623 let mut x180: FqU1 = 0;
1624 fq_addcarryx_u32(&mut x179, &mut x180, x178, x132, x162);
1625 let mut x181: u32 = 0;
1626 let mut x182: FqU1 = 0;
1627 fq_addcarryx_u32(&mut x181, &mut x182, x180, x134, x164);
1628 let x183: u32 = ((x182 as u32) + (x135 as u32));
1629 let mut x184: u32 = 0;
1630 let mut x185: u32 = 0;
1631 fq_mulx_u32(&mut x184, &mut x185, x2, (arg1[7]));
1632 let mut x186: u32 = 0;
1633 let mut x187: u32 = 0;
1634 fq_mulx_u32(&mut x186, &mut x187, x2, (arg1[6]));
1635 let mut x188: u32 = 0;
1636 let mut x189: u32 = 0;
1637 fq_mulx_u32(&mut x188, &mut x189, x2, (arg1[5]));
1638 let mut x190: u32 = 0;
1639 let mut x191: u32 = 0;
1640 fq_mulx_u32(&mut x190, &mut x191, x2, (arg1[4]));
1641 let mut x192: u32 = 0;
1642 let mut x193: u32 = 0;
1643 fq_mulx_u32(&mut x192, &mut x193, x2, (arg1[3]));
1644 let mut x194: u32 = 0;
1645 let mut x195: u32 = 0;
1646 fq_mulx_u32(&mut x194, &mut x195, x2, (arg1[2]));
1647 let mut x196: u32 = 0;
1648 let mut x197: u32 = 0;
1649 fq_mulx_u32(&mut x196, &mut x197, x2, (arg1[1]));
1650 let mut x198: u32 = 0;
1651 let mut x199: u32 = 0;
1652 fq_mulx_u32(&mut x198, &mut x199, x2, (arg1[0]));
1653 let mut x200: u32 = 0;
1654 let mut x201: FqU1 = 0;
1655 fq_addcarryx_u32(&mut x200, &mut x201, 0x0, x199, x196);
1656 let mut x202: u32 = 0;
1657 let mut x203: FqU1 = 0;
1658 fq_addcarryx_u32(&mut x202, &mut x203, x201, x197, x194);
1659 let mut x204: u32 = 0;
1660 let mut x205: FqU1 = 0;
1661 fq_addcarryx_u32(&mut x204, &mut x205, x203, x195, x192);
1662 let mut x206: u32 = 0;
1663 let mut x207: FqU1 = 0;
1664 fq_addcarryx_u32(&mut x206, &mut x207, x205, x193, x190);
1665 let mut x208: u32 = 0;
1666 let mut x209: FqU1 = 0;
1667 fq_addcarryx_u32(&mut x208, &mut x209, x207, x191, x188);
1668 let mut x210: u32 = 0;
1669 let mut x211: FqU1 = 0;
1670 fq_addcarryx_u32(&mut x210, &mut x211, x209, x189, x186);
1671 let mut x212: u32 = 0;
1672 let mut x213: FqU1 = 0;
1673 fq_addcarryx_u32(&mut x212, &mut x213, x211, x187, x184);
1674 let x214: u32 = ((x213 as u32) + x185);
1675 let mut x215: u32 = 0;
1676 let mut x216: FqU1 = 0;
1677 fq_addcarryx_u32(&mut x215, &mut x216, 0x0, x167, x198);
1678 let mut x217: u32 = 0;
1679 let mut x218: FqU1 = 0;
1680 fq_addcarryx_u32(&mut x217, &mut x218, x216, x169, x200);
1681 let mut x219: u32 = 0;
1682 let mut x220: FqU1 = 0;
1683 fq_addcarryx_u32(&mut x219, &mut x220, x218, x171, x202);
1684 let mut x221: u32 = 0;
1685 let mut x222: FqU1 = 0;
1686 fq_addcarryx_u32(&mut x221, &mut x222, x220, x173, x204);
1687 let mut x223: u32 = 0;
1688 let mut x224: FqU1 = 0;
1689 fq_addcarryx_u32(&mut x223, &mut x224, x222, x175, x206);
1690 let mut x225: u32 = 0;
1691 let mut x226: FqU1 = 0;
1692 fq_addcarryx_u32(&mut x225, &mut x226, x224, x177, x208);
1693 let mut x227: u32 = 0;
1694 let mut x228: FqU1 = 0;
1695 fq_addcarryx_u32(&mut x227, &mut x228, x226, x179, x210);
1696 let mut x229: u32 = 0;
1697 let mut x230: FqU1 = 0;
1698 fq_addcarryx_u32(&mut x229, &mut x230, x228, x181, x212);
1699 let mut x231: u32 = 0;
1700 let mut x232: FqU1 = 0;
1701 fq_addcarryx_u32(&mut x231, &mut x232, x230, x183, x214);
1702 let mut x233: u32 = 0;
1703 let mut x234: u32 = 0;
1704 fq_mulx_u32(&mut x233, &mut x234, x215, 0xffffffff);
1705 let mut x235: u32 = 0;
1706 let mut x236: u32 = 0;
1707 fq_mulx_u32(&mut x235, &mut x236, x233, 0x12ab655e);
1708 let mut x237: u32 = 0;
1709 let mut x238: u32 = 0;
1710 fq_mulx_u32(&mut x237, &mut x238, x233, 0x9a2ca556);
1711 let mut x239: u32 = 0;
1712 let mut x240: u32 = 0;
1713 fq_mulx_u32(&mut x239, &mut x240, x233, 0x60b44d1e);
1714 let mut x241: u32 = 0;
1715 let mut x242: u32 = 0;
1716 fq_mulx_u32(&mut x241, &mut x242, x233, 0x5c37b001);
1717 let mut x243: u32 = 0;
1718 let mut x244: u32 = 0;
1719 fq_mulx_u32(&mut x243, &mut x244, x233, 0x59aa76fe);
1720 let mut x245: u32 = 0;
1721 let mut x246: u32 = 0;
1722 fq_mulx_u32(&mut x245, &mut x246, x233, 0xd0000001);
1723 let mut x247: u32 = 0;
1724 let mut x248: u32 = 0;
1725 fq_mulx_u32(&mut x247, &mut x248, x233, 0xa118000);
1726 let mut x249: u32 = 0;
1727 let mut x250: FqU1 = 0;
1728 fq_addcarryx_u32(&mut x249, &mut x250, 0x0, x248, x245);
1729 let mut x251: u32 = 0;
1730 let mut x252: FqU1 = 0;
1731 fq_addcarryx_u32(&mut x251, &mut x252, x250, x246, x243);
1732 let mut x253: u32 = 0;
1733 let mut x254: FqU1 = 0;
1734 fq_addcarryx_u32(&mut x253, &mut x254, x252, x244, x241);
1735 let mut x255: u32 = 0;
1736 let mut x256: FqU1 = 0;
1737 fq_addcarryx_u32(&mut x255, &mut x256, x254, x242, x239);
1738 let mut x257: u32 = 0;
1739 let mut x258: FqU1 = 0;
1740 fq_addcarryx_u32(&mut x257, &mut x258, x256, x240, x237);
1741 let mut x259: u32 = 0;
1742 let mut x260: FqU1 = 0;
1743 fq_addcarryx_u32(&mut x259, &mut x260, x258, x238, x235);
1744 let x261: u32 = ((x260 as u32) + x236);
1745 let mut x262: u32 = 0;
1746 let mut x263: FqU1 = 0;
1747 fq_addcarryx_u32(&mut x262, &mut x263, 0x0, x215, x233);
1748 let mut x264: u32 = 0;
1749 let mut x265: FqU1 = 0;
1750 fq_addcarryx_u32(&mut x264, &mut x265, x263, x217, x247);
1751 let mut x266: u32 = 0;
1752 let mut x267: FqU1 = 0;
1753 fq_addcarryx_u32(&mut x266, &mut x267, x265, x219, x249);
1754 let mut x268: u32 = 0;
1755 let mut x269: FqU1 = 0;
1756 fq_addcarryx_u32(&mut x268, &mut x269, x267, x221, x251);
1757 let mut x270: u32 = 0;
1758 let mut x271: FqU1 = 0;
1759 fq_addcarryx_u32(&mut x270, &mut x271, x269, x223, x253);
1760 let mut x272: u32 = 0;
1761 let mut x273: FqU1 = 0;
1762 fq_addcarryx_u32(&mut x272, &mut x273, x271, x225, x255);
1763 let mut x274: u32 = 0;
1764 let mut x275: FqU1 = 0;
1765 fq_addcarryx_u32(&mut x274, &mut x275, x273, x227, x257);
1766 let mut x276: u32 = 0;
1767 let mut x277: FqU1 = 0;
1768 fq_addcarryx_u32(&mut x276, &mut x277, x275, x229, x259);
1769 let mut x278: u32 = 0;
1770 let mut x279: FqU1 = 0;
1771 fq_addcarryx_u32(&mut x278, &mut x279, x277, x231, x261);
1772 let x280: u32 = ((x279 as u32) + (x232 as u32));
1773 let mut x281: u32 = 0;
1774 let mut x282: u32 = 0;
1775 fq_mulx_u32(&mut x281, &mut x282, x3, (arg1[7]));
1776 let mut x283: u32 = 0;
1777 let mut x284: u32 = 0;
1778 fq_mulx_u32(&mut x283, &mut x284, x3, (arg1[6]));
1779 let mut x285: u32 = 0;
1780 let mut x286: u32 = 0;
1781 fq_mulx_u32(&mut x285, &mut x286, x3, (arg1[5]));
1782 let mut x287: u32 = 0;
1783 let mut x288: u32 = 0;
1784 fq_mulx_u32(&mut x287, &mut x288, x3, (arg1[4]));
1785 let mut x289: u32 = 0;
1786 let mut x290: u32 = 0;
1787 fq_mulx_u32(&mut x289, &mut x290, x3, (arg1[3]));
1788 let mut x291: u32 = 0;
1789 let mut x292: u32 = 0;
1790 fq_mulx_u32(&mut x291, &mut x292, x3, (arg1[2]));
1791 let mut x293: u32 = 0;
1792 let mut x294: u32 = 0;
1793 fq_mulx_u32(&mut x293, &mut x294, x3, (arg1[1]));
1794 let mut x295: u32 = 0;
1795 let mut x296: u32 = 0;
1796 fq_mulx_u32(&mut x295, &mut x296, x3, (arg1[0]));
1797 let mut x297: u32 = 0;
1798 let mut x298: FqU1 = 0;
1799 fq_addcarryx_u32(&mut x297, &mut x298, 0x0, x296, x293);
1800 let mut x299: u32 = 0;
1801 let mut x300: FqU1 = 0;
1802 fq_addcarryx_u32(&mut x299, &mut x300, x298, x294, x291);
1803 let mut x301: u32 = 0;
1804 let mut x302: FqU1 = 0;
1805 fq_addcarryx_u32(&mut x301, &mut x302, x300, x292, x289);
1806 let mut x303: u32 = 0;
1807 let mut x304: FqU1 = 0;
1808 fq_addcarryx_u32(&mut x303, &mut x304, x302, x290, x287);
1809 let mut x305: u32 = 0;
1810 let mut x306: FqU1 = 0;
1811 fq_addcarryx_u32(&mut x305, &mut x306, x304, x288, x285);
1812 let mut x307: u32 = 0;
1813 let mut x308: FqU1 = 0;
1814 fq_addcarryx_u32(&mut x307, &mut x308, x306, x286, x283);
1815 let mut x309: u32 = 0;
1816 let mut x310: FqU1 = 0;
1817 fq_addcarryx_u32(&mut x309, &mut x310, x308, x284, x281);
1818 let x311: u32 = ((x310 as u32) + x282);
1819 let mut x312: u32 = 0;
1820 let mut x313: FqU1 = 0;
1821 fq_addcarryx_u32(&mut x312, &mut x313, 0x0, x264, x295);
1822 let mut x314: u32 = 0;
1823 let mut x315: FqU1 = 0;
1824 fq_addcarryx_u32(&mut x314, &mut x315, x313, x266, x297);
1825 let mut x316: u32 = 0;
1826 let mut x317: FqU1 = 0;
1827 fq_addcarryx_u32(&mut x316, &mut x317, x315, x268, x299);
1828 let mut x318: u32 = 0;
1829 let mut x319: FqU1 = 0;
1830 fq_addcarryx_u32(&mut x318, &mut x319, x317, x270, x301);
1831 let mut x320: u32 = 0;
1832 let mut x321: FqU1 = 0;
1833 fq_addcarryx_u32(&mut x320, &mut x321, x319, x272, x303);
1834 let mut x322: u32 = 0;
1835 let mut x323: FqU1 = 0;
1836 fq_addcarryx_u32(&mut x322, &mut x323, x321, x274, x305);
1837 let mut x324: u32 = 0;
1838 let mut x325: FqU1 = 0;
1839 fq_addcarryx_u32(&mut x324, &mut x325, x323, x276, x307);
1840 let mut x326: u32 = 0;
1841 let mut x327: FqU1 = 0;
1842 fq_addcarryx_u32(&mut x326, &mut x327, x325, x278, x309);
1843 let mut x328: u32 = 0;
1844 let mut x329: FqU1 = 0;
1845 fq_addcarryx_u32(&mut x328, &mut x329, x327, x280, x311);
1846 let mut x330: u32 = 0;
1847 let mut x331: u32 = 0;
1848 fq_mulx_u32(&mut x330, &mut x331, x312, 0xffffffff);
1849 let mut x332: u32 = 0;
1850 let mut x333: u32 = 0;
1851 fq_mulx_u32(&mut x332, &mut x333, x330, 0x12ab655e);
1852 let mut x334: u32 = 0;
1853 let mut x335: u32 = 0;
1854 fq_mulx_u32(&mut x334, &mut x335, x330, 0x9a2ca556);
1855 let mut x336: u32 = 0;
1856 let mut x337: u32 = 0;
1857 fq_mulx_u32(&mut x336, &mut x337, x330, 0x60b44d1e);
1858 let mut x338: u32 = 0;
1859 let mut x339: u32 = 0;
1860 fq_mulx_u32(&mut x338, &mut x339, x330, 0x5c37b001);
1861 let mut x340: u32 = 0;
1862 let mut x341: u32 = 0;
1863 fq_mulx_u32(&mut x340, &mut x341, x330, 0x59aa76fe);
1864 let mut x342: u32 = 0;
1865 let mut x343: u32 = 0;
1866 fq_mulx_u32(&mut x342, &mut x343, x330, 0xd0000001);
1867 let mut x344: u32 = 0;
1868 let mut x345: u32 = 0;
1869 fq_mulx_u32(&mut x344, &mut x345, x330, 0xa118000);
1870 let mut x346: u32 = 0;
1871 let mut x347: FqU1 = 0;
1872 fq_addcarryx_u32(&mut x346, &mut x347, 0x0, x345, x342);
1873 let mut x348: u32 = 0;
1874 let mut x349: FqU1 = 0;
1875 fq_addcarryx_u32(&mut x348, &mut x349, x347, x343, x340);
1876 let mut x350: u32 = 0;
1877 let mut x351: FqU1 = 0;
1878 fq_addcarryx_u32(&mut x350, &mut x351, x349, x341, x338);
1879 let mut x352: u32 = 0;
1880 let mut x353: FqU1 = 0;
1881 fq_addcarryx_u32(&mut x352, &mut x353, x351, x339, x336);
1882 let mut x354: u32 = 0;
1883 let mut x355: FqU1 = 0;
1884 fq_addcarryx_u32(&mut x354, &mut x355, x353, x337, x334);
1885 let mut x356: u32 = 0;
1886 let mut x357: FqU1 = 0;
1887 fq_addcarryx_u32(&mut x356, &mut x357, x355, x335, x332);
1888 let x358: u32 = ((x357 as u32) + x333);
1889 let mut x359: u32 = 0;
1890 let mut x360: FqU1 = 0;
1891 fq_addcarryx_u32(&mut x359, &mut x360, 0x0, x312, x330);
1892 let mut x361: u32 = 0;
1893 let mut x362: FqU1 = 0;
1894 fq_addcarryx_u32(&mut x361, &mut x362, x360, x314, x344);
1895 let mut x363: u32 = 0;
1896 let mut x364: FqU1 = 0;
1897 fq_addcarryx_u32(&mut x363, &mut x364, x362, x316, x346);
1898 let mut x365: u32 = 0;
1899 let mut x366: FqU1 = 0;
1900 fq_addcarryx_u32(&mut x365, &mut x366, x364, x318, x348);
1901 let mut x367: u32 = 0;
1902 let mut x368: FqU1 = 0;
1903 fq_addcarryx_u32(&mut x367, &mut x368, x366, x320, x350);
1904 let mut x369: u32 = 0;
1905 let mut x370: FqU1 = 0;
1906 fq_addcarryx_u32(&mut x369, &mut x370, x368, x322, x352);
1907 let mut x371: u32 = 0;
1908 let mut x372: FqU1 = 0;
1909 fq_addcarryx_u32(&mut x371, &mut x372, x370, x324, x354);
1910 let mut x373: u32 = 0;
1911 let mut x374: FqU1 = 0;
1912 fq_addcarryx_u32(&mut x373, &mut x374, x372, x326, x356);
1913 let mut x375: u32 = 0;
1914 let mut x376: FqU1 = 0;
1915 fq_addcarryx_u32(&mut x375, &mut x376, x374, x328, x358);
1916 let x377: u32 = ((x376 as u32) + (x329 as u32));
1917 let mut x378: u32 = 0;
1918 let mut x379: u32 = 0;
1919 fq_mulx_u32(&mut x378, &mut x379, x4, (arg1[7]));
1920 let mut x380: u32 = 0;
1921 let mut x381: u32 = 0;
1922 fq_mulx_u32(&mut x380, &mut x381, x4, (arg1[6]));
1923 let mut x382: u32 = 0;
1924 let mut x383: u32 = 0;
1925 fq_mulx_u32(&mut x382, &mut x383, x4, (arg1[5]));
1926 let mut x384: u32 = 0;
1927 let mut x385: u32 = 0;
1928 fq_mulx_u32(&mut x384, &mut x385, x4, (arg1[4]));
1929 let mut x386: u32 = 0;
1930 let mut x387: u32 = 0;
1931 fq_mulx_u32(&mut x386, &mut x387, x4, (arg1[3]));
1932 let mut x388: u32 = 0;
1933 let mut x389: u32 = 0;
1934 fq_mulx_u32(&mut x388, &mut x389, x4, (arg1[2]));
1935 let mut x390: u32 = 0;
1936 let mut x391: u32 = 0;
1937 fq_mulx_u32(&mut x390, &mut x391, x4, (arg1[1]));
1938 let mut x392: u32 = 0;
1939 let mut x393: u32 = 0;
1940 fq_mulx_u32(&mut x392, &mut x393, x4, (arg1[0]));
1941 let mut x394: u32 = 0;
1942 let mut x395: FqU1 = 0;
1943 fq_addcarryx_u32(&mut x394, &mut x395, 0x0, x393, x390);
1944 let mut x396: u32 = 0;
1945 let mut x397: FqU1 = 0;
1946 fq_addcarryx_u32(&mut x396, &mut x397, x395, x391, x388);
1947 let mut x398: u32 = 0;
1948 let mut x399: FqU1 = 0;
1949 fq_addcarryx_u32(&mut x398, &mut x399, x397, x389, x386);
1950 let mut x400: u32 = 0;
1951 let mut x401: FqU1 = 0;
1952 fq_addcarryx_u32(&mut x400, &mut x401, x399, x387, x384);
1953 let mut x402: u32 = 0;
1954 let mut x403: FqU1 = 0;
1955 fq_addcarryx_u32(&mut x402, &mut x403, x401, x385, x382);
1956 let mut x404: u32 = 0;
1957 let mut x405: FqU1 = 0;
1958 fq_addcarryx_u32(&mut x404, &mut x405, x403, x383, x380);
1959 let mut x406: u32 = 0;
1960 let mut x407: FqU1 = 0;
1961 fq_addcarryx_u32(&mut x406, &mut x407, x405, x381, x378);
1962 let x408: u32 = ((x407 as u32) + x379);
1963 let mut x409: u32 = 0;
1964 let mut x410: FqU1 = 0;
1965 fq_addcarryx_u32(&mut x409, &mut x410, 0x0, x361, x392);
1966 let mut x411: u32 = 0;
1967 let mut x412: FqU1 = 0;
1968 fq_addcarryx_u32(&mut x411, &mut x412, x410, x363, x394);
1969 let mut x413: u32 = 0;
1970 let mut x414: FqU1 = 0;
1971 fq_addcarryx_u32(&mut x413, &mut x414, x412, x365, x396);
1972 let mut x415: u32 = 0;
1973 let mut x416: FqU1 = 0;
1974 fq_addcarryx_u32(&mut x415, &mut x416, x414, x367, x398);
1975 let mut x417: u32 = 0;
1976 let mut x418: FqU1 = 0;
1977 fq_addcarryx_u32(&mut x417, &mut x418, x416, x369, x400);
1978 let mut x419: u32 = 0;
1979 let mut x420: FqU1 = 0;
1980 fq_addcarryx_u32(&mut x419, &mut x420, x418, x371, x402);
1981 let mut x421: u32 = 0;
1982 let mut x422: FqU1 = 0;
1983 fq_addcarryx_u32(&mut x421, &mut x422, x420, x373, x404);
1984 let mut x423: u32 = 0;
1985 let mut x424: FqU1 = 0;
1986 fq_addcarryx_u32(&mut x423, &mut x424, x422, x375, x406);
1987 let mut x425: u32 = 0;
1988 let mut x426: FqU1 = 0;
1989 fq_addcarryx_u32(&mut x425, &mut x426, x424, x377, x408);
1990 let mut x427: u32 = 0;
1991 let mut x428: u32 = 0;
1992 fq_mulx_u32(&mut x427, &mut x428, x409, 0xffffffff);
1993 let mut x429: u32 = 0;
1994 let mut x430: u32 = 0;
1995 fq_mulx_u32(&mut x429, &mut x430, x427, 0x12ab655e);
1996 let mut x431: u32 = 0;
1997 let mut x432: u32 = 0;
1998 fq_mulx_u32(&mut x431, &mut x432, x427, 0x9a2ca556);
1999 let mut x433: u32 = 0;
2000 let mut x434: u32 = 0;
2001 fq_mulx_u32(&mut x433, &mut x434, x427, 0x60b44d1e);
2002 let mut x435: u32 = 0;
2003 let mut x436: u32 = 0;
2004 fq_mulx_u32(&mut x435, &mut x436, x427, 0x5c37b001);
2005 let mut x437: u32 = 0;
2006 let mut x438: u32 = 0;
2007 fq_mulx_u32(&mut x437, &mut x438, x427, 0x59aa76fe);
2008 let mut x439: u32 = 0;
2009 let mut x440: u32 = 0;
2010 fq_mulx_u32(&mut x439, &mut x440, x427, 0xd0000001);
2011 let mut x441: u32 = 0;
2012 let mut x442: u32 = 0;
2013 fq_mulx_u32(&mut x441, &mut x442, x427, 0xa118000);
2014 let mut x443: u32 = 0;
2015 let mut x444: FqU1 = 0;
2016 fq_addcarryx_u32(&mut x443, &mut x444, 0x0, x442, x439);
2017 let mut x445: u32 = 0;
2018 let mut x446: FqU1 = 0;
2019 fq_addcarryx_u32(&mut x445, &mut x446, x444, x440, x437);
2020 let mut x447: u32 = 0;
2021 let mut x448: FqU1 = 0;
2022 fq_addcarryx_u32(&mut x447, &mut x448, x446, x438, x435);
2023 let mut x449: u32 = 0;
2024 let mut x450: FqU1 = 0;
2025 fq_addcarryx_u32(&mut x449, &mut x450, x448, x436, x433);
2026 let mut x451: u32 = 0;
2027 let mut x452: FqU1 = 0;
2028 fq_addcarryx_u32(&mut x451, &mut x452, x450, x434, x431);
2029 let mut x453: u32 = 0;
2030 let mut x454: FqU1 = 0;
2031 fq_addcarryx_u32(&mut x453, &mut x454, x452, x432, x429);
2032 let x455: u32 = ((x454 as u32) + x430);
2033 let mut x456: u32 = 0;
2034 let mut x457: FqU1 = 0;
2035 fq_addcarryx_u32(&mut x456, &mut x457, 0x0, x409, x427);
2036 let mut x458: u32 = 0;
2037 let mut x459: FqU1 = 0;
2038 fq_addcarryx_u32(&mut x458, &mut x459, x457, x411, x441);
2039 let mut x460: u32 = 0;
2040 let mut x461: FqU1 = 0;
2041 fq_addcarryx_u32(&mut x460, &mut x461, x459, x413, x443);
2042 let mut x462: u32 = 0;
2043 let mut x463: FqU1 = 0;
2044 fq_addcarryx_u32(&mut x462, &mut x463, x461, x415, x445);
2045 let mut x464: u32 = 0;
2046 let mut x465: FqU1 = 0;
2047 fq_addcarryx_u32(&mut x464, &mut x465, x463, x417, x447);
2048 let mut x466: u32 = 0;
2049 let mut x467: FqU1 = 0;
2050 fq_addcarryx_u32(&mut x466, &mut x467, x465, x419, x449);
2051 let mut x468: u32 = 0;
2052 let mut x469: FqU1 = 0;
2053 fq_addcarryx_u32(&mut x468, &mut x469, x467, x421, x451);
2054 let mut x470: u32 = 0;
2055 let mut x471: FqU1 = 0;
2056 fq_addcarryx_u32(&mut x470, &mut x471, x469, x423, x453);
2057 let mut x472: u32 = 0;
2058 let mut x473: FqU1 = 0;
2059 fq_addcarryx_u32(&mut x472, &mut x473, x471, x425, x455);
2060 let x474: u32 = ((x473 as u32) + (x426 as u32));
2061 let mut x475: u32 = 0;
2062 let mut x476: u32 = 0;
2063 fq_mulx_u32(&mut x475, &mut x476, x5, (arg1[7]));
2064 let mut x477: u32 = 0;
2065 let mut x478: u32 = 0;
2066 fq_mulx_u32(&mut x477, &mut x478, x5, (arg1[6]));
2067 let mut x479: u32 = 0;
2068 let mut x480: u32 = 0;
2069 fq_mulx_u32(&mut x479, &mut x480, x5, (arg1[5]));
2070 let mut x481: u32 = 0;
2071 let mut x482: u32 = 0;
2072 fq_mulx_u32(&mut x481, &mut x482, x5, (arg1[4]));
2073 let mut x483: u32 = 0;
2074 let mut x484: u32 = 0;
2075 fq_mulx_u32(&mut x483, &mut x484, x5, (arg1[3]));
2076 let mut x485: u32 = 0;
2077 let mut x486: u32 = 0;
2078 fq_mulx_u32(&mut x485, &mut x486, x5, (arg1[2]));
2079 let mut x487: u32 = 0;
2080 let mut x488: u32 = 0;
2081 fq_mulx_u32(&mut x487, &mut x488, x5, (arg1[1]));
2082 let mut x489: u32 = 0;
2083 let mut x490: u32 = 0;
2084 fq_mulx_u32(&mut x489, &mut x490, x5, (arg1[0]));
2085 let mut x491: u32 = 0;
2086 let mut x492: FqU1 = 0;
2087 fq_addcarryx_u32(&mut x491, &mut x492, 0x0, x490, x487);
2088 let mut x493: u32 = 0;
2089 let mut x494: FqU1 = 0;
2090 fq_addcarryx_u32(&mut x493, &mut x494, x492, x488, x485);
2091 let mut x495: u32 = 0;
2092 let mut x496: FqU1 = 0;
2093 fq_addcarryx_u32(&mut x495, &mut x496, x494, x486, x483);
2094 let mut x497: u32 = 0;
2095 let mut x498: FqU1 = 0;
2096 fq_addcarryx_u32(&mut x497, &mut x498, x496, x484, x481);
2097 let mut x499: u32 = 0;
2098 let mut x500: FqU1 = 0;
2099 fq_addcarryx_u32(&mut x499, &mut x500, x498, x482, x479);
2100 let mut x501: u32 = 0;
2101 let mut x502: FqU1 = 0;
2102 fq_addcarryx_u32(&mut x501, &mut x502, x500, x480, x477);
2103 let mut x503: u32 = 0;
2104 let mut x504: FqU1 = 0;
2105 fq_addcarryx_u32(&mut x503, &mut x504, x502, x478, x475);
2106 let x505: u32 = ((x504 as u32) + x476);
2107 let mut x506: u32 = 0;
2108 let mut x507: FqU1 = 0;
2109 fq_addcarryx_u32(&mut x506, &mut x507, 0x0, x458, x489);
2110 let mut x508: u32 = 0;
2111 let mut x509: FqU1 = 0;
2112 fq_addcarryx_u32(&mut x508, &mut x509, x507, x460, x491);
2113 let mut x510: u32 = 0;
2114 let mut x511: FqU1 = 0;
2115 fq_addcarryx_u32(&mut x510, &mut x511, x509, x462, x493);
2116 let mut x512: u32 = 0;
2117 let mut x513: FqU1 = 0;
2118 fq_addcarryx_u32(&mut x512, &mut x513, x511, x464, x495);
2119 let mut x514: u32 = 0;
2120 let mut x515: FqU1 = 0;
2121 fq_addcarryx_u32(&mut x514, &mut x515, x513, x466, x497);
2122 let mut x516: u32 = 0;
2123 let mut x517: FqU1 = 0;
2124 fq_addcarryx_u32(&mut x516, &mut x517, x515, x468, x499);
2125 let mut x518: u32 = 0;
2126 let mut x519: FqU1 = 0;
2127 fq_addcarryx_u32(&mut x518, &mut x519, x517, x470, x501);
2128 let mut x520: u32 = 0;
2129 let mut x521: FqU1 = 0;
2130 fq_addcarryx_u32(&mut x520, &mut x521, x519, x472, x503);
2131 let mut x522: u32 = 0;
2132 let mut x523: FqU1 = 0;
2133 fq_addcarryx_u32(&mut x522, &mut x523, x521, x474, x505);
2134 let mut x524: u32 = 0;
2135 let mut x525: u32 = 0;
2136 fq_mulx_u32(&mut x524, &mut x525, x506, 0xffffffff);
2137 let mut x526: u32 = 0;
2138 let mut x527: u32 = 0;
2139 fq_mulx_u32(&mut x526, &mut x527, x524, 0x12ab655e);
2140 let mut x528: u32 = 0;
2141 let mut x529: u32 = 0;
2142 fq_mulx_u32(&mut x528, &mut x529, x524, 0x9a2ca556);
2143 let mut x530: u32 = 0;
2144 let mut x531: u32 = 0;
2145 fq_mulx_u32(&mut x530, &mut x531, x524, 0x60b44d1e);
2146 let mut x532: u32 = 0;
2147 let mut x533: u32 = 0;
2148 fq_mulx_u32(&mut x532, &mut x533, x524, 0x5c37b001);
2149 let mut x534: u32 = 0;
2150 let mut x535: u32 = 0;
2151 fq_mulx_u32(&mut x534, &mut x535, x524, 0x59aa76fe);
2152 let mut x536: u32 = 0;
2153 let mut x537: u32 = 0;
2154 fq_mulx_u32(&mut x536, &mut x537, x524, 0xd0000001);
2155 let mut x538: u32 = 0;
2156 let mut x539: u32 = 0;
2157 fq_mulx_u32(&mut x538, &mut x539, x524, 0xa118000);
2158 let mut x540: u32 = 0;
2159 let mut x541: FqU1 = 0;
2160 fq_addcarryx_u32(&mut x540, &mut x541, 0x0, x539, x536);
2161 let mut x542: u32 = 0;
2162 let mut x543: FqU1 = 0;
2163 fq_addcarryx_u32(&mut x542, &mut x543, x541, x537, x534);
2164 let mut x544: u32 = 0;
2165 let mut x545: FqU1 = 0;
2166 fq_addcarryx_u32(&mut x544, &mut x545, x543, x535, x532);
2167 let mut x546: u32 = 0;
2168 let mut x547: FqU1 = 0;
2169 fq_addcarryx_u32(&mut x546, &mut x547, x545, x533, x530);
2170 let mut x548: u32 = 0;
2171 let mut x549: FqU1 = 0;
2172 fq_addcarryx_u32(&mut x548, &mut x549, x547, x531, x528);
2173 let mut x550: u32 = 0;
2174 let mut x551: FqU1 = 0;
2175 fq_addcarryx_u32(&mut x550, &mut x551, x549, x529, x526);
2176 let x552: u32 = ((x551 as u32) + x527);
2177 let mut x553: u32 = 0;
2178 let mut x554: FqU1 = 0;
2179 fq_addcarryx_u32(&mut x553, &mut x554, 0x0, x506, x524);
2180 let mut x555: u32 = 0;
2181 let mut x556: FqU1 = 0;
2182 fq_addcarryx_u32(&mut x555, &mut x556, x554, x508, x538);
2183 let mut x557: u32 = 0;
2184 let mut x558: FqU1 = 0;
2185 fq_addcarryx_u32(&mut x557, &mut x558, x556, x510, x540);
2186 let mut x559: u32 = 0;
2187 let mut x560: FqU1 = 0;
2188 fq_addcarryx_u32(&mut x559, &mut x560, x558, x512, x542);
2189 let mut x561: u32 = 0;
2190 let mut x562: FqU1 = 0;
2191 fq_addcarryx_u32(&mut x561, &mut x562, x560, x514, x544);
2192 let mut x563: u32 = 0;
2193 let mut x564: FqU1 = 0;
2194 fq_addcarryx_u32(&mut x563, &mut x564, x562, x516, x546);
2195 let mut x565: u32 = 0;
2196 let mut x566: FqU1 = 0;
2197 fq_addcarryx_u32(&mut x565, &mut x566, x564, x518, x548);
2198 let mut x567: u32 = 0;
2199 let mut x568: FqU1 = 0;
2200 fq_addcarryx_u32(&mut x567, &mut x568, x566, x520, x550);
2201 let mut x569: u32 = 0;
2202 let mut x570: FqU1 = 0;
2203 fq_addcarryx_u32(&mut x569, &mut x570, x568, x522, x552);
2204 let x571: u32 = ((x570 as u32) + (x523 as u32));
2205 let mut x572: u32 = 0;
2206 let mut x573: u32 = 0;
2207 fq_mulx_u32(&mut x572, &mut x573, x6, (arg1[7]));
2208 let mut x574: u32 = 0;
2209 let mut x575: u32 = 0;
2210 fq_mulx_u32(&mut x574, &mut x575, x6, (arg1[6]));
2211 let mut x576: u32 = 0;
2212 let mut x577: u32 = 0;
2213 fq_mulx_u32(&mut x576, &mut x577, x6, (arg1[5]));
2214 let mut x578: u32 = 0;
2215 let mut x579: u32 = 0;
2216 fq_mulx_u32(&mut x578, &mut x579, x6, (arg1[4]));
2217 let mut x580: u32 = 0;
2218 let mut x581: u32 = 0;
2219 fq_mulx_u32(&mut x580, &mut x581, x6, (arg1[3]));
2220 let mut x582: u32 = 0;
2221 let mut x583: u32 = 0;
2222 fq_mulx_u32(&mut x582, &mut x583, x6, (arg1[2]));
2223 let mut x584: u32 = 0;
2224 let mut x585: u32 = 0;
2225 fq_mulx_u32(&mut x584, &mut x585, x6, (arg1[1]));
2226 let mut x586: u32 = 0;
2227 let mut x587: u32 = 0;
2228 fq_mulx_u32(&mut x586, &mut x587, x6, (arg1[0]));
2229 let mut x588: u32 = 0;
2230 let mut x589: FqU1 = 0;
2231 fq_addcarryx_u32(&mut x588, &mut x589, 0x0, x587, x584);
2232 let mut x590: u32 = 0;
2233 let mut x591: FqU1 = 0;
2234 fq_addcarryx_u32(&mut x590, &mut x591, x589, x585, x582);
2235 let mut x592: u32 = 0;
2236 let mut x593: FqU1 = 0;
2237 fq_addcarryx_u32(&mut x592, &mut x593, x591, x583, x580);
2238 let mut x594: u32 = 0;
2239 let mut x595: FqU1 = 0;
2240 fq_addcarryx_u32(&mut x594, &mut x595, x593, x581, x578);
2241 let mut x596: u32 = 0;
2242 let mut x597: FqU1 = 0;
2243 fq_addcarryx_u32(&mut x596, &mut x597, x595, x579, x576);
2244 let mut x598: u32 = 0;
2245 let mut x599: FqU1 = 0;
2246 fq_addcarryx_u32(&mut x598, &mut x599, x597, x577, x574);
2247 let mut x600: u32 = 0;
2248 let mut x601: FqU1 = 0;
2249 fq_addcarryx_u32(&mut x600, &mut x601, x599, x575, x572);
2250 let x602: u32 = ((x601 as u32) + x573);
2251 let mut x603: u32 = 0;
2252 let mut x604: FqU1 = 0;
2253 fq_addcarryx_u32(&mut x603, &mut x604, 0x0, x555, x586);
2254 let mut x605: u32 = 0;
2255 let mut x606: FqU1 = 0;
2256 fq_addcarryx_u32(&mut x605, &mut x606, x604, x557, x588);
2257 let mut x607: u32 = 0;
2258 let mut x608: FqU1 = 0;
2259 fq_addcarryx_u32(&mut x607, &mut x608, x606, x559, x590);
2260 let mut x609: u32 = 0;
2261 let mut x610: FqU1 = 0;
2262 fq_addcarryx_u32(&mut x609, &mut x610, x608, x561, x592);
2263 let mut x611: u32 = 0;
2264 let mut x612: FqU1 = 0;
2265 fq_addcarryx_u32(&mut x611, &mut x612, x610, x563, x594);
2266 let mut x613: u32 = 0;
2267 let mut x614: FqU1 = 0;
2268 fq_addcarryx_u32(&mut x613, &mut x614, x612, x565, x596);
2269 let mut x615: u32 = 0;
2270 let mut x616: FqU1 = 0;
2271 fq_addcarryx_u32(&mut x615, &mut x616, x614, x567, x598);
2272 let mut x617: u32 = 0;
2273 let mut x618: FqU1 = 0;
2274 fq_addcarryx_u32(&mut x617, &mut x618, x616, x569, x600);
2275 let mut x619: u32 = 0;
2276 let mut x620: FqU1 = 0;
2277 fq_addcarryx_u32(&mut x619, &mut x620, x618, x571, x602);
2278 let mut x621: u32 = 0;
2279 let mut x622: u32 = 0;
2280 fq_mulx_u32(&mut x621, &mut x622, x603, 0xffffffff);
2281 let mut x623: u32 = 0;
2282 let mut x624: u32 = 0;
2283 fq_mulx_u32(&mut x623, &mut x624, x621, 0x12ab655e);
2284 let mut x625: u32 = 0;
2285 let mut x626: u32 = 0;
2286 fq_mulx_u32(&mut x625, &mut x626, x621, 0x9a2ca556);
2287 let mut x627: u32 = 0;
2288 let mut x628: u32 = 0;
2289 fq_mulx_u32(&mut x627, &mut x628, x621, 0x60b44d1e);
2290 let mut x629: u32 = 0;
2291 let mut x630: u32 = 0;
2292 fq_mulx_u32(&mut x629, &mut x630, x621, 0x5c37b001);
2293 let mut x631: u32 = 0;
2294 let mut x632: u32 = 0;
2295 fq_mulx_u32(&mut x631, &mut x632, x621, 0x59aa76fe);
2296 let mut x633: u32 = 0;
2297 let mut x634: u32 = 0;
2298 fq_mulx_u32(&mut x633, &mut x634, x621, 0xd0000001);
2299 let mut x635: u32 = 0;
2300 let mut x636: u32 = 0;
2301 fq_mulx_u32(&mut x635, &mut x636, x621, 0xa118000);
2302 let mut x637: u32 = 0;
2303 let mut x638: FqU1 = 0;
2304 fq_addcarryx_u32(&mut x637, &mut x638, 0x0, x636, x633);
2305 let mut x639: u32 = 0;
2306 let mut x640: FqU1 = 0;
2307 fq_addcarryx_u32(&mut x639, &mut x640, x638, x634, x631);
2308 let mut x641: u32 = 0;
2309 let mut x642: FqU1 = 0;
2310 fq_addcarryx_u32(&mut x641, &mut x642, x640, x632, x629);
2311 let mut x643: u32 = 0;
2312 let mut x644: FqU1 = 0;
2313 fq_addcarryx_u32(&mut x643, &mut x644, x642, x630, x627);
2314 let mut x645: u32 = 0;
2315 let mut x646: FqU1 = 0;
2316 fq_addcarryx_u32(&mut x645, &mut x646, x644, x628, x625);
2317 let mut x647: u32 = 0;
2318 let mut x648: FqU1 = 0;
2319 fq_addcarryx_u32(&mut x647, &mut x648, x646, x626, x623);
2320 let x649: u32 = ((x648 as u32) + x624);
2321 let mut x650: u32 = 0;
2322 let mut x651: FqU1 = 0;
2323 fq_addcarryx_u32(&mut x650, &mut x651, 0x0, x603, x621);
2324 let mut x652: u32 = 0;
2325 let mut x653: FqU1 = 0;
2326 fq_addcarryx_u32(&mut x652, &mut x653, x651, x605, x635);
2327 let mut x654: u32 = 0;
2328 let mut x655: FqU1 = 0;
2329 fq_addcarryx_u32(&mut x654, &mut x655, x653, x607, x637);
2330 let mut x656: u32 = 0;
2331 let mut x657: FqU1 = 0;
2332 fq_addcarryx_u32(&mut x656, &mut x657, x655, x609, x639);
2333 let mut x658: u32 = 0;
2334 let mut x659: FqU1 = 0;
2335 fq_addcarryx_u32(&mut x658, &mut x659, x657, x611, x641);
2336 let mut x660: u32 = 0;
2337 let mut x661: FqU1 = 0;
2338 fq_addcarryx_u32(&mut x660, &mut x661, x659, x613, x643);
2339 let mut x662: u32 = 0;
2340 let mut x663: FqU1 = 0;
2341 fq_addcarryx_u32(&mut x662, &mut x663, x661, x615, x645);
2342 let mut x664: u32 = 0;
2343 let mut x665: FqU1 = 0;
2344 fq_addcarryx_u32(&mut x664, &mut x665, x663, x617, x647);
2345 let mut x666: u32 = 0;
2346 let mut x667: FqU1 = 0;
2347 fq_addcarryx_u32(&mut x666, &mut x667, x665, x619, x649);
2348 let x668: u32 = ((x667 as u32) + (x620 as u32));
2349 let mut x669: u32 = 0;
2350 let mut x670: u32 = 0;
2351 fq_mulx_u32(&mut x669, &mut x670, x7, (arg1[7]));
2352 let mut x671: u32 = 0;
2353 let mut x672: u32 = 0;
2354 fq_mulx_u32(&mut x671, &mut x672, x7, (arg1[6]));
2355 let mut x673: u32 = 0;
2356 let mut x674: u32 = 0;
2357 fq_mulx_u32(&mut x673, &mut x674, x7, (arg1[5]));
2358 let mut x675: u32 = 0;
2359 let mut x676: u32 = 0;
2360 fq_mulx_u32(&mut x675, &mut x676, x7, (arg1[4]));
2361 let mut x677: u32 = 0;
2362 let mut x678: u32 = 0;
2363 fq_mulx_u32(&mut x677, &mut x678, x7, (arg1[3]));
2364 let mut x679: u32 = 0;
2365 let mut x680: u32 = 0;
2366 fq_mulx_u32(&mut x679, &mut x680, x7, (arg1[2]));
2367 let mut x681: u32 = 0;
2368 let mut x682: u32 = 0;
2369 fq_mulx_u32(&mut x681, &mut x682, x7, (arg1[1]));
2370 let mut x683: u32 = 0;
2371 let mut x684: u32 = 0;
2372 fq_mulx_u32(&mut x683, &mut x684, x7, (arg1[0]));
2373 let mut x685: u32 = 0;
2374 let mut x686: FqU1 = 0;
2375 fq_addcarryx_u32(&mut x685, &mut x686, 0x0, x684, x681);
2376 let mut x687: u32 = 0;
2377 let mut x688: FqU1 = 0;
2378 fq_addcarryx_u32(&mut x687, &mut x688, x686, x682, x679);
2379 let mut x689: u32 = 0;
2380 let mut x690: FqU1 = 0;
2381 fq_addcarryx_u32(&mut x689, &mut x690, x688, x680, x677);
2382 let mut x691: u32 = 0;
2383 let mut x692: FqU1 = 0;
2384 fq_addcarryx_u32(&mut x691, &mut x692, x690, x678, x675);
2385 let mut x693: u32 = 0;
2386 let mut x694: FqU1 = 0;
2387 fq_addcarryx_u32(&mut x693, &mut x694, x692, x676, x673);
2388 let mut x695: u32 = 0;
2389 let mut x696: FqU1 = 0;
2390 fq_addcarryx_u32(&mut x695, &mut x696, x694, x674, x671);
2391 let mut x697: u32 = 0;
2392 let mut x698: FqU1 = 0;
2393 fq_addcarryx_u32(&mut x697, &mut x698, x696, x672, x669);
2394 let x699: u32 = ((x698 as u32) + x670);
2395 let mut x700: u32 = 0;
2396 let mut x701: FqU1 = 0;
2397 fq_addcarryx_u32(&mut x700, &mut x701, 0x0, x652, x683);
2398 let mut x702: u32 = 0;
2399 let mut x703: FqU1 = 0;
2400 fq_addcarryx_u32(&mut x702, &mut x703, x701, x654, x685);
2401 let mut x704: u32 = 0;
2402 let mut x705: FqU1 = 0;
2403 fq_addcarryx_u32(&mut x704, &mut x705, x703, x656, x687);
2404 let mut x706: u32 = 0;
2405 let mut x707: FqU1 = 0;
2406 fq_addcarryx_u32(&mut x706, &mut x707, x705, x658, x689);
2407 let mut x708: u32 = 0;
2408 let mut x709: FqU1 = 0;
2409 fq_addcarryx_u32(&mut x708, &mut x709, x707, x660, x691);
2410 let mut x710: u32 = 0;
2411 let mut x711: FqU1 = 0;
2412 fq_addcarryx_u32(&mut x710, &mut x711, x709, x662, x693);
2413 let mut x712: u32 = 0;
2414 let mut x713: FqU1 = 0;
2415 fq_addcarryx_u32(&mut x712, &mut x713, x711, x664, x695);
2416 let mut x714: u32 = 0;
2417 let mut x715: FqU1 = 0;
2418 fq_addcarryx_u32(&mut x714, &mut x715, x713, x666, x697);
2419 let mut x716: u32 = 0;
2420 let mut x717: FqU1 = 0;
2421 fq_addcarryx_u32(&mut x716, &mut x717, x715, x668, x699);
2422 let mut x718: u32 = 0;
2423 let mut x719: u32 = 0;
2424 fq_mulx_u32(&mut x718, &mut x719, x700, 0xffffffff);
2425 let mut x720: u32 = 0;
2426 let mut x721: u32 = 0;
2427 fq_mulx_u32(&mut x720, &mut x721, x718, 0x12ab655e);
2428 let mut x722: u32 = 0;
2429 let mut x723: u32 = 0;
2430 fq_mulx_u32(&mut x722, &mut x723, x718, 0x9a2ca556);
2431 let mut x724: u32 = 0;
2432 let mut x725: u32 = 0;
2433 fq_mulx_u32(&mut x724, &mut x725, x718, 0x60b44d1e);
2434 let mut x726: u32 = 0;
2435 let mut x727: u32 = 0;
2436 fq_mulx_u32(&mut x726, &mut x727, x718, 0x5c37b001);
2437 let mut x728: u32 = 0;
2438 let mut x729: u32 = 0;
2439 fq_mulx_u32(&mut x728, &mut x729, x718, 0x59aa76fe);
2440 let mut x730: u32 = 0;
2441 let mut x731: u32 = 0;
2442 fq_mulx_u32(&mut x730, &mut x731, x718, 0xd0000001);
2443 let mut x732: u32 = 0;
2444 let mut x733: u32 = 0;
2445 fq_mulx_u32(&mut x732, &mut x733, x718, 0xa118000);
2446 let mut x734: u32 = 0;
2447 let mut x735: FqU1 = 0;
2448 fq_addcarryx_u32(&mut x734, &mut x735, 0x0, x733, x730);
2449 let mut x736: u32 = 0;
2450 let mut x737: FqU1 = 0;
2451 fq_addcarryx_u32(&mut x736, &mut x737, x735, x731, x728);
2452 let mut x738: u32 = 0;
2453 let mut x739: FqU1 = 0;
2454 fq_addcarryx_u32(&mut x738, &mut x739, x737, x729, x726);
2455 let mut x740: u32 = 0;
2456 let mut x741: FqU1 = 0;
2457 fq_addcarryx_u32(&mut x740, &mut x741, x739, x727, x724);
2458 let mut x742: u32 = 0;
2459 let mut x743: FqU1 = 0;
2460 fq_addcarryx_u32(&mut x742, &mut x743, x741, x725, x722);
2461 let mut x744: u32 = 0;
2462 let mut x745: FqU1 = 0;
2463 fq_addcarryx_u32(&mut x744, &mut x745, x743, x723, x720);
2464 let x746: u32 = ((x745 as u32) + x721);
2465 let mut x747: u32 = 0;
2466 let mut x748: FqU1 = 0;
2467 fq_addcarryx_u32(&mut x747, &mut x748, 0x0, x700, x718);
2468 let mut x749: u32 = 0;
2469 let mut x750: FqU1 = 0;
2470 fq_addcarryx_u32(&mut x749, &mut x750, x748, x702, x732);
2471 let mut x751: u32 = 0;
2472 let mut x752: FqU1 = 0;
2473 fq_addcarryx_u32(&mut x751, &mut x752, x750, x704, x734);
2474 let mut x753: u32 = 0;
2475 let mut x754: FqU1 = 0;
2476 fq_addcarryx_u32(&mut x753, &mut x754, x752, x706, x736);
2477 let mut x755: u32 = 0;
2478 let mut x756: FqU1 = 0;
2479 fq_addcarryx_u32(&mut x755, &mut x756, x754, x708, x738);
2480 let mut x757: u32 = 0;
2481 let mut x758: FqU1 = 0;
2482 fq_addcarryx_u32(&mut x757, &mut x758, x756, x710, x740);
2483 let mut x759: u32 = 0;
2484 let mut x760: FqU1 = 0;
2485 fq_addcarryx_u32(&mut x759, &mut x760, x758, x712, x742);
2486 let mut x761: u32 = 0;
2487 let mut x762: FqU1 = 0;
2488 fq_addcarryx_u32(&mut x761, &mut x762, x760, x714, x744);
2489 let mut x763: u32 = 0;
2490 let mut x764: FqU1 = 0;
2491 fq_addcarryx_u32(&mut x763, &mut x764, x762, x716, x746);
2492 let x765: u32 = ((x764 as u32) + (x717 as u32));
2493 let mut x766: u32 = 0;
2494 let mut x767: FqU1 = 0;
2495 fq_subborrowx_u32(&mut x766, &mut x767, 0x0, x749, (0x1 as u32));
2496 let mut x768: u32 = 0;
2497 let mut x769: FqU1 = 0;
2498 fq_subborrowx_u32(&mut x768, &mut x769, x767, x751, 0xa118000);
2499 let mut x770: u32 = 0;
2500 let mut x771: FqU1 = 0;
2501 fq_subborrowx_u32(&mut x770, &mut x771, x769, x753, 0xd0000001);
2502 let mut x772: u32 = 0;
2503 let mut x773: FqU1 = 0;
2504 fq_subborrowx_u32(&mut x772, &mut x773, x771, x755, 0x59aa76fe);
2505 let mut x774: u32 = 0;
2506 let mut x775: FqU1 = 0;
2507 fq_subborrowx_u32(&mut x774, &mut x775, x773, x757, 0x5c37b001);
2508 let mut x776: u32 = 0;
2509 let mut x777: FqU1 = 0;
2510 fq_subborrowx_u32(&mut x776, &mut x777, x775, x759, 0x60b44d1e);
2511 let mut x778: u32 = 0;
2512 let mut x779: FqU1 = 0;
2513 fq_subborrowx_u32(&mut x778, &mut x779, x777, x761, 0x9a2ca556);
2514 let mut x780: u32 = 0;
2515 let mut x781: FqU1 = 0;
2516 fq_subborrowx_u32(&mut x780, &mut x781, x779, x763, 0x12ab655e);
2517 let mut x782: u32 = 0;
2518 let mut x783: FqU1 = 0;
2519 fq_subborrowx_u32(&mut x782, &mut x783, x781, x765, (0x0 as u32));
2520 let mut x784: u32 = 0;
2521 fq_cmovznz_u32(&mut x784, x783, x766, x749);
2522 let mut x785: u32 = 0;
2523 fq_cmovznz_u32(&mut x785, x783, x768, x751);
2524 let mut x786: u32 = 0;
2525 fq_cmovznz_u32(&mut x786, x783, x770, x753);
2526 let mut x787: u32 = 0;
2527 fq_cmovznz_u32(&mut x787, x783, x772, x755);
2528 let mut x788: u32 = 0;
2529 fq_cmovznz_u32(&mut x788, x783, x774, x757);
2530 let mut x789: u32 = 0;
2531 fq_cmovznz_u32(&mut x789, x783, x776, x759);
2532 let mut x790: u32 = 0;
2533 fq_cmovznz_u32(&mut x790, x783, x778, x761);
2534 let mut x791: u32 = 0;
2535 fq_cmovznz_u32(&mut x791, x783, x780, x763);
2536 out1[0] = x784;
2537 out1[1] = x785;
2538 out1[2] = x786;
2539 out1[3] = x787;
2540 out1[4] = x788;
2541 out1[5] = x789;
2542 out1[6] = x790;
2543 out1[7] = x791;
2544}
2545
2546pub fn fq_add(
2556 out1: &mut FqMontgomeryDomainFieldElement,
2557 arg1: &FqMontgomeryDomainFieldElement,
2558 arg2: &FqMontgomeryDomainFieldElement,
2559) {
2560 let mut x1: u32 = 0;
2561 let mut x2: FqU1 = 0;
2562 fq_addcarryx_u32(&mut x1, &mut x2, 0x0, (arg1[0]), (arg2[0]));
2563 let mut x3: u32 = 0;
2564 let mut x4: FqU1 = 0;
2565 fq_addcarryx_u32(&mut x3, &mut x4, x2, (arg1[1]), (arg2[1]));
2566 let mut x5: u32 = 0;
2567 let mut x6: FqU1 = 0;
2568 fq_addcarryx_u32(&mut x5, &mut x6, x4, (arg1[2]), (arg2[2]));
2569 let mut x7: u32 = 0;
2570 let mut x8: FqU1 = 0;
2571 fq_addcarryx_u32(&mut x7, &mut x8, x6, (arg1[3]), (arg2[3]));
2572 let mut x9: u32 = 0;
2573 let mut x10: FqU1 = 0;
2574 fq_addcarryx_u32(&mut x9, &mut x10, x8, (arg1[4]), (arg2[4]));
2575 let mut x11: u32 = 0;
2576 let mut x12: FqU1 = 0;
2577 fq_addcarryx_u32(&mut x11, &mut x12, x10, (arg1[5]), (arg2[5]));
2578 let mut x13: u32 = 0;
2579 let mut x14: FqU1 = 0;
2580 fq_addcarryx_u32(&mut x13, &mut x14, x12, (arg1[6]), (arg2[6]));
2581 let mut x15: u32 = 0;
2582 let mut x16: FqU1 = 0;
2583 fq_addcarryx_u32(&mut x15, &mut x16, x14, (arg1[7]), (arg2[7]));
2584 let mut x17: u32 = 0;
2585 let mut x18: FqU1 = 0;
2586 fq_subborrowx_u32(&mut x17, &mut x18, 0x0, x1, (0x1 as u32));
2587 let mut x19: u32 = 0;
2588 let mut x20: FqU1 = 0;
2589 fq_subborrowx_u32(&mut x19, &mut x20, x18, x3, 0xa118000);
2590 let mut x21: u32 = 0;
2591 let mut x22: FqU1 = 0;
2592 fq_subborrowx_u32(&mut x21, &mut x22, x20, x5, 0xd0000001);
2593 let mut x23: u32 = 0;
2594 let mut x24: FqU1 = 0;
2595 fq_subborrowx_u32(&mut x23, &mut x24, x22, x7, 0x59aa76fe);
2596 let mut x25: u32 = 0;
2597 let mut x26: FqU1 = 0;
2598 fq_subborrowx_u32(&mut x25, &mut x26, x24, x9, 0x5c37b001);
2599 let mut x27: u32 = 0;
2600 let mut x28: FqU1 = 0;
2601 fq_subborrowx_u32(&mut x27, &mut x28, x26, x11, 0x60b44d1e);
2602 let mut x29: u32 = 0;
2603 let mut x30: FqU1 = 0;
2604 fq_subborrowx_u32(&mut x29, &mut x30, x28, x13, 0x9a2ca556);
2605 let mut x31: u32 = 0;
2606 let mut x32: FqU1 = 0;
2607 fq_subborrowx_u32(&mut x31, &mut x32, x30, x15, 0x12ab655e);
2608 let mut x33: u32 = 0;
2609 let mut x34: FqU1 = 0;
2610 fq_subborrowx_u32(&mut x33, &mut x34, x32, (x16 as u32), (0x0 as u32));
2611 let mut x35: u32 = 0;
2612 fq_cmovznz_u32(&mut x35, x34, x17, x1);
2613 let mut x36: u32 = 0;
2614 fq_cmovznz_u32(&mut x36, x34, x19, x3);
2615 let mut x37: u32 = 0;
2616 fq_cmovznz_u32(&mut x37, x34, x21, x5);
2617 let mut x38: u32 = 0;
2618 fq_cmovznz_u32(&mut x38, x34, x23, x7);
2619 let mut x39: u32 = 0;
2620 fq_cmovznz_u32(&mut x39, x34, x25, x9);
2621 let mut x40: u32 = 0;
2622 fq_cmovznz_u32(&mut x40, x34, x27, x11);
2623 let mut x41: u32 = 0;
2624 fq_cmovznz_u32(&mut x41, x34, x29, x13);
2625 let mut x42: u32 = 0;
2626 fq_cmovznz_u32(&mut x42, x34, x31, x15);
2627 out1[0] = x35;
2628 out1[1] = x36;
2629 out1[2] = x37;
2630 out1[3] = x38;
2631 out1[4] = x39;
2632 out1[5] = x40;
2633 out1[6] = x41;
2634 out1[7] = x42;
2635}
2636
2637pub fn fq_sub(
2647 out1: &mut FqMontgomeryDomainFieldElement,
2648 arg1: &FqMontgomeryDomainFieldElement,
2649 arg2: &FqMontgomeryDomainFieldElement,
2650) {
2651 let mut x1: u32 = 0;
2652 let mut x2: FqU1 = 0;
2653 fq_subborrowx_u32(&mut x1, &mut x2, 0x0, (arg1[0]), (arg2[0]));
2654 let mut x3: u32 = 0;
2655 let mut x4: FqU1 = 0;
2656 fq_subborrowx_u32(&mut x3, &mut x4, x2, (arg1[1]), (arg2[1]));
2657 let mut x5: u32 = 0;
2658 let mut x6: FqU1 = 0;
2659 fq_subborrowx_u32(&mut x5, &mut x6, x4, (arg1[2]), (arg2[2]));
2660 let mut x7: u32 = 0;
2661 let mut x8: FqU1 = 0;
2662 fq_subborrowx_u32(&mut x7, &mut x8, x6, (arg1[3]), (arg2[3]));
2663 let mut x9: u32 = 0;
2664 let mut x10: FqU1 = 0;
2665 fq_subborrowx_u32(&mut x9, &mut x10, x8, (arg1[4]), (arg2[4]));
2666 let mut x11: u32 = 0;
2667 let mut x12: FqU1 = 0;
2668 fq_subborrowx_u32(&mut x11, &mut x12, x10, (arg1[5]), (arg2[5]));
2669 let mut x13: u32 = 0;
2670 let mut x14: FqU1 = 0;
2671 fq_subborrowx_u32(&mut x13, &mut x14, x12, (arg1[6]), (arg2[6]));
2672 let mut x15: u32 = 0;
2673 let mut x16: FqU1 = 0;
2674 fq_subborrowx_u32(&mut x15, &mut x16, x14, (arg1[7]), (arg2[7]));
2675 let mut x17: u32 = 0;
2676 fq_cmovznz_u32(&mut x17, x16, (0x0 as u32), 0xffffffff);
2677 let mut x18: u32 = 0;
2678 let mut x19: FqU1 = 0;
2679 fq_addcarryx_u32(
2680 &mut x18,
2681 &mut x19,
2682 0x0,
2683 x1,
2684 (((x17 & (0x1 as u32)) as FqU1) as u32),
2685 );
2686 let mut x20: u32 = 0;
2687 let mut x21: FqU1 = 0;
2688 fq_addcarryx_u32(&mut x20, &mut x21, x19, x3, (x17 & 0xa118000));
2689 let mut x22: u32 = 0;
2690 let mut x23: FqU1 = 0;
2691 fq_addcarryx_u32(&mut x22, &mut x23, x21, x5, (x17 & 0xd0000001));
2692 let mut x24: u32 = 0;
2693 let mut x25: FqU1 = 0;
2694 fq_addcarryx_u32(&mut x24, &mut x25, x23, x7, (x17 & 0x59aa76fe));
2695 let mut x26: u32 = 0;
2696 let mut x27: FqU1 = 0;
2697 fq_addcarryx_u32(&mut x26, &mut x27, x25, x9, (x17 & 0x5c37b001));
2698 let mut x28: u32 = 0;
2699 let mut x29: FqU1 = 0;
2700 fq_addcarryx_u32(&mut x28, &mut x29, x27, x11, (x17 & 0x60b44d1e));
2701 let mut x30: u32 = 0;
2702 let mut x31: FqU1 = 0;
2703 fq_addcarryx_u32(&mut x30, &mut x31, x29, x13, (x17 & 0x9a2ca556));
2704 let mut x32: u32 = 0;
2705 let mut x33: FqU1 = 0;
2706 fq_addcarryx_u32(&mut x32, &mut x33, x31, x15, (x17 & 0x12ab655e));
2707 out1[0] = x18;
2708 out1[1] = x20;
2709 out1[2] = x22;
2710 out1[3] = x24;
2711 out1[4] = x26;
2712 out1[5] = x28;
2713 out1[6] = x30;
2714 out1[7] = x32;
2715}
2716
2717pub fn fq_opp(out1: &mut FqMontgomeryDomainFieldElement, arg1: &FqMontgomeryDomainFieldElement) {
2726 let mut x1: u32 = 0;
2727 let mut x2: FqU1 = 0;
2728 fq_subborrowx_u32(&mut x1, &mut x2, 0x0, (0x0 as u32), (arg1[0]));
2729 let mut x3: u32 = 0;
2730 let mut x4: FqU1 = 0;
2731 fq_subborrowx_u32(&mut x3, &mut x4, x2, (0x0 as u32), (arg1[1]));
2732 let mut x5: u32 = 0;
2733 let mut x6: FqU1 = 0;
2734 fq_subborrowx_u32(&mut x5, &mut x6, x4, (0x0 as u32), (arg1[2]));
2735 let mut x7: u32 = 0;
2736 let mut x8: FqU1 = 0;
2737 fq_subborrowx_u32(&mut x7, &mut x8, x6, (0x0 as u32), (arg1[3]));
2738 let mut x9: u32 = 0;
2739 let mut x10: FqU1 = 0;
2740 fq_subborrowx_u32(&mut x9, &mut x10, x8, (0x0 as u32), (arg1[4]));
2741 let mut x11: u32 = 0;
2742 let mut x12: FqU1 = 0;
2743 fq_subborrowx_u32(&mut x11, &mut x12, x10, (0x0 as u32), (arg1[5]));
2744 let mut x13: u32 = 0;
2745 let mut x14: FqU1 = 0;
2746 fq_subborrowx_u32(&mut x13, &mut x14, x12, (0x0 as u32), (arg1[6]));
2747 let mut x15: u32 = 0;
2748 let mut x16: FqU1 = 0;
2749 fq_subborrowx_u32(&mut x15, &mut x16, x14, (0x0 as u32), (arg1[7]));
2750 let mut x17: u32 = 0;
2751 fq_cmovznz_u32(&mut x17, x16, (0x0 as u32), 0xffffffff);
2752 let mut x18: u32 = 0;
2753 let mut x19: FqU1 = 0;
2754 fq_addcarryx_u32(
2755 &mut x18,
2756 &mut x19,
2757 0x0,
2758 x1,
2759 (((x17 & (0x1 as u32)) as FqU1) as u32),
2760 );
2761 let mut x20: u32 = 0;
2762 let mut x21: FqU1 = 0;
2763 fq_addcarryx_u32(&mut x20, &mut x21, x19, x3, (x17 & 0xa118000));
2764 let mut x22: u32 = 0;
2765 let mut x23: FqU1 = 0;
2766 fq_addcarryx_u32(&mut x22, &mut x23, x21, x5, (x17 & 0xd0000001));
2767 let mut x24: u32 = 0;
2768 let mut x25: FqU1 = 0;
2769 fq_addcarryx_u32(&mut x24, &mut x25, x23, x7, (x17 & 0x59aa76fe));
2770 let mut x26: u32 = 0;
2771 let mut x27: FqU1 = 0;
2772 fq_addcarryx_u32(&mut x26, &mut x27, x25, x9, (x17 & 0x5c37b001));
2773 let mut x28: u32 = 0;
2774 let mut x29: FqU1 = 0;
2775 fq_addcarryx_u32(&mut x28, &mut x29, x27, x11, (x17 & 0x60b44d1e));
2776 let mut x30: u32 = 0;
2777 let mut x31: FqU1 = 0;
2778 fq_addcarryx_u32(&mut x30, &mut x31, x29, x13, (x17 & 0x9a2ca556));
2779 let mut x32: u32 = 0;
2780 let mut x33: FqU1 = 0;
2781 fq_addcarryx_u32(&mut x32, &mut x33, x31, x15, (x17 & 0x12ab655e));
2782 out1[0] = x18;
2783 out1[1] = x20;
2784 out1[2] = x22;
2785 out1[3] = x24;
2786 out1[4] = x26;
2787 out1[5] = x28;
2788 out1[6] = x30;
2789 out1[7] = x32;
2790}
2791
2792pub fn fq_from_montgomery(
2801 out1: &mut FqNonMontgomeryDomainFieldElement,
2802 arg1: &FqMontgomeryDomainFieldElement,
2803) {
2804 let x1: u32 = (arg1[0]);
2805 let mut x2: u32 = 0;
2806 let mut x3: u32 = 0;
2807 fq_mulx_u32(&mut x2, &mut x3, x1, 0xffffffff);
2808 let mut x4: u32 = 0;
2809 let mut x5: u32 = 0;
2810 fq_mulx_u32(&mut x4, &mut x5, x2, 0x12ab655e);
2811 let mut x6: u32 = 0;
2812 let mut x7: u32 = 0;
2813 fq_mulx_u32(&mut x6, &mut x7, x2, 0x9a2ca556);
2814 let mut x8: u32 = 0;
2815 let mut x9: u32 = 0;
2816 fq_mulx_u32(&mut x8, &mut x9, x2, 0x60b44d1e);
2817 let mut x10: u32 = 0;
2818 let mut x11: u32 = 0;
2819 fq_mulx_u32(&mut x10, &mut x11, x2, 0x5c37b001);
2820 let mut x12: u32 = 0;
2821 let mut x13: u32 = 0;
2822 fq_mulx_u32(&mut x12, &mut x13, x2, 0x59aa76fe);
2823 let mut x14: u32 = 0;
2824 let mut x15: u32 = 0;
2825 fq_mulx_u32(&mut x14, &mut x15, x2, 0xd0000001);
2826 let mut x16: u32 = 0;
2827 let mut x17: u32 = 0;
2828 fq_mulx_u32(&mut x16, &mut x17, x2, 0xa118000);
2829 let mut x18: u32 = 0;
2830 let mut x19: FqU1 = 0;
2831 fq_addcarryx_u32(&mut x18, &mut x19, 0x0, x17, x14);
2832 let mut x20: u32 = 0;
2833 let mut x21: FqU1 = 0;
2834 fq_addcarryx_u32(&mut x20, &mut x21, x19, x15, x12);
2835 let mut x22: u32 = 0;
2836 let mut x23: FqU1 = 0;
2837 fq_addcarryx_u32(&mut x22, &mut x23, x21, x13, x10);
2838 let mut x24: u32 = 0;
2839 let mut x25: FqU1 = 0;
2840 fq_addcarryx_u32(&mut x24, &mut x25, x23, x11, x8);
2841 let mut x26: u32 = 0;
2842 let mut x27: FqU1 = 0;
2843 fq_addcarryx_u32(&mut x26, &mut x27, x25, x9, x6);
2844 let mut x28: u32 = 0;
2845 let mut x29: FqU1 = 0;
2846 fq_addcarryx_u32(&mut x28, &mut x29, x27, x7, x4);
2847 let mut x30: u32 = 0;
2848 let mut x31: FqU1 = 0;
2849 fq_addcarryx_u32(&mut x30, &mut x31, 0x0, x1, x2);
2850 let mut x32: u32 = 0;
2851 let mut x33: FqU1 = 0;
2852 fq_addcarryx_u32(&mut x32, &mut x33, x31, (0x0 as u32), x16);
2853 let mut x34: u32 = 0;
2854 let mut x35: FqU1 = 0;
2855 fq_addcarryx_u32(&mut x34, &mut x35, x33, (0x0 as u32), x18);
2856 let mut x36: u32 = 0;
2857 let mut x37: FqU1 = 0;
2858 fq_addcarryx_u32(&mut x36, &mut x37, x35, (0x0 as u32), x20);
2859 let mut x38: u32 = 0;
2860 let mut x39: FqU1 = 0;
2861 fq_addcarryx_u32(&mut x38, &mut x39, x37, (0x0 as u32), x22);
2862 let mut x40: u32 = 0;
2863 let mut x41: FqU1 = 0;
2864 fq_addcarryx_u32(&mut x40, &mut x41, x39, (0x0 as u32), x24);
2865 let mut x42: u32 = 0;
2866 let mut x43: FqU1 = 0;
2867 fq_addcarryx_u32(&mut x42, &mut x43, x41, (0x0 as u32), x26);
2868 let mut x44: u32 = 0;
2869 let mut x45: FqU1 = 0;
2870 fq_addcarryx_u32(&mut x44, &mut x45, x43, (0x0 as u32), x28);
2871 let mut x46: u32 = 0;
2872 let mut x47: FqU1 = 0;
2873 fq_addcarryx_u32(&mut x46, &mut x47, 0x0, x32, (arg1[1]));
2874 let mut x48: u32 = 0;
2875 let mut x49: FqU1 = 0;
2876 fq_addcarryx_u32(&mut x48, &mut x49, x47, x34, (0x0 as u32));
2877 let mut x50: u32 = 0;
2878 let mut x51: FqU1 = 0;
2879 fq_addcarryx_u32(&mut x50, &mut x51, x49, x36, (0x0 as u32));
2880 let mut x52: u32 = 0;
2881 let mut x53: FqU1 = 0;
2882 fq_addcarryx_u32(&mut x52, &mut x53, x51, x38, (0x0 as u32));
2883 let mut x54: u32 = 0;
2884 let mut x55: FqU1 = 0;
2885 fq_addcarryx_u32(&mut x54, &mut x55, x53, x40, (0x0 as u32));
2886 let mut x56: u32 = 0;
2887 let mut x57: FqU1 = 0;
2888 fq_addcarryx_u32(&mut x56, &mut x57, x55, x42, (0x0 as u32));
2889 let mut x58: u32 = 0;
2890 let mut x59: FqU1 = 0;
2891 fq_addcarryx_u32(&mut x58, &mut x59, x57, x44, (0x0 as u32));
2892 let mut x60: u32 = 0;
2893 let mut x61: u32 = 0;
2894 fq_mulx_u32(&mut x60, &mut x61, x46, 0xffffffff);
2895 let mut x62: u32 = 0;
2896 let mut x63: u32 = 0;
2897 fq_mulx_u32(&mut x62, &mut x63, x60, 0x12ab655e);
2898 let mut x64: u32 = 0;
2899 let mut x65: u32 = 0;
2900 fq_mulx_u32(&mut x64, &mut x65, x60, 0x9a2ca556);
2901 let mut x66: u32 = 0;
2902 let mut x67: u32 = 0;
2903 fq_mulx_u32(&mut x66, &mut x67, x60, 0x60b44d1e);
2904 let mut x68: u32 = 0;
2905 let mut x69: u32 = 0;
2906 fq_mulx_u32(&mut x68, &mut x69, x60, 0x5c37b001);
2907 let mut x70: u32 = 0;
2908 let mut x71: u32 = 0;
2909 fq_mulx_u32(&mut x70, &mut x71, x60, 0x59aa76fe);
2910 let mut x72: u32 = 0;
2911 let mut x73: u32 = 0;
2912 fq_mulx_u32(&mut x72, &mut x73, x60, 0xd0000001);
2913 let mut x74: u32 = 0;
2914 let mut x75: u32 = 0;
2915 fq_mulx_u32(&mut x74, &mut x75, x60, 0xa118000);
2916 let mut x76: u32 = 0;
2917 let mut x77: FqU1 = 0;
2918 fq_addcarryx_u32(&mut x76, &mut x77, 0x0, x75, x72);
2919 let mut x78: u32 = 0;
2920 let mut x79: FqU1 = 0;
2921 fq_addcarryx_u32(&mut x78, &mut x79, x77, x73, x70);
2922 let mut x80: u32 = 0;
2923 let mut x81: FqU1 = 0;
2924 fq_addcarryx_u32(&mut x80, &mut x81, x79, x71, x68);
2925 let mut x82: u32 = 0;
2926 let mut x83: FqU1 = 0;
2927 fq_addcarryx_u32(&mut x82, &mut x83, x81, x69, x66);
2928 let mut x84: u32 = 0;
2929 let mut x85: FqU1 = 0;
2930 fq_addcarryx_u32(&mut x84, &mut x85, x83, x67, x64);
2931 let mut x86: u32 = 0;
2932 let mut x87: FqU1 = 0;
2933 fq_addcarryx_u32(&mut x86, &mut x87, x85, x65, x62);
2934 let mut x88: u32 = 0;
2935 let mut x89: FqU1 = 0;
2936 fq_addcarryx_u32(&mut x88, &mut x89, 0x0, x46, x60);
2937 let mut x90: u32 = 0;
2938 let mut x91: FqU1 = 0;
2939 fq_addcarryx_u32(&mut x90, &mut x91, x89, x48, x74);
2940 let mut x92: u32 = 0;
2941 let mut x93: FqU1 = 0;
2942 fq_addcarryx_u32(&mut x92, &mut x93, x91, x50, x76);
2943 let mut x94: u32 = 0;
2944 let mut x95: FqU1 = 0;
2945 fq_addcarryx_u32(&mut x94, &mut x95, x93, x52, x78);
2946 let mut x96: u32 = 0;
2947 let mut x97: FqU1 = 0;
2948 fq_addcarryx_u32(&mut x96, &mut x97, x95, x54, x80);
2949 let mut x98: u32 = 0;
2950 let mut x99: FqU1 = 0;
2951 fq_addcarryx_u32(&mut x98, &mut x99, x97, x56, x82);
2952 let mut x100: u32 = 0;
2953 let mut x101: FqU1 = 0;
2954 fq_addcarryx_u32(&mut x100, &mut x101, x99, x58, x84);
2955 let mut x102: u32 = 0;
2956 let mut x103: FqU1 = 0;
2957 fq_addcarryx_u32(
2958 &mut x102,
2959 &mut x103,
2960 x101,
2961 ((x59 as u32) + ((x45 as u32) + ((x29 as u32) + x5))),
2962 x86,
2963 );
2964 let mut x104: u32 = 0;
2965 let mut x105: FqU1 = 0;
2966 fq_addcarryx_u32(&mut x104, &mut x105, 0x0, x90, (arg1[2]));
2967 let mut x106: u32 = 0;
2968 let mut x107: FqU1 = 0;
2969 fq_addcarryx_u32(&mut x106, &mut x107, x105, x92, (0x0 as u32));
2970 let mut x108: u32 = 0;
2971 let mut x109: FqU1 = 0;
2972 fq_addcarryx_u32(&mut x108, &mut x109, x107, x94, (0x0 as u32));
2973 let mut x110: u32 = 0;
2974 let mut x111: FqU1 = 0;
2975 fq_addcarryx_u32(&mut x110, &mut x111, x109, x96, (0x0 as u32));
2976 let mut x112: u32 = 0;
2977 let mut x113: FqU1 = 0;
2978 fq_addcarryx_u32(&mut x112, &mut x113, x111, x98, (0x0 as u32));
2979 let mut x114: u32 = 0;
2980 let mut x115: FqU1 = 0;
2981 fq_addcarryx_u32(&mut x114, &mut x115, x113, x100, (0x0 as u32));
2982 let mut x116: u32 = 0;
2983 let mut x117: FqU1 = 0;
2984 fq_addcarryx_u32(&mut x116, &mut x117, x115, x102, (0x0 as u32));
2985 let mut x118: u32 = 0;
2986 let mut x119: u32 = 0;
2987 fq_mulx_u32(&mut x118, &mut x119, x104, 0xffffffff);
2988 let mut x120: u32 = 0;
2989 let mut x121: u32 = 0;
2990 fq_mulx_u32(&mut x120, &mut x121, x118, 0x12ab655e);
2991 let mut x122: u32 = 0;
2992 let mut x123: u32 = 0;
2993 fq_mulx_u32(&mut x122, &mut x123, x118, 0x9a2ca556);
2994 let mut x124: u32 = 0;
2995 let mut x125: u32 = 0;
2996 fq_mulx_u32(&mut x124, &mut x125, x118, 0x60b44d1e);
2997 let mut x126: u32 = 0;
2998 let mut x127: u32 = 0;
2999 fq_mulx_u32(&mut x126, &mut x127, x118, 0x5c37b001);
3000 let mut x128: u32 = 0;
3001 let mut x129: u32 = 0;
3002 fq_mulx_u32(&mut x128, &mut x129, x118, 0x59aa76fe);
3003 let mut x130: u32 = 0;
3004 let mut x131: u32 = 0;
3005 fq_mulx_u32(&mut x130, &mut x131, x118, 0xd0000001);
3006 let mut x132: u32 = 0;
3007 let mut x133: u32 = 0;
3008 fq_mulx_u32(&mut x132, &mut x133, x118, 0xa118000);
3009 let mut x134: u32 = 0;
3010 let mut x135: FqU1 = 0;
3011 fq_addcarryx_u32(&mut x134, &mut x135, 0x0, x133, x130);
3012 let mut x136: u32 = 0;
3013 let mut x137: FqU1 = 0;
3014 fq_addcarryx_u32(&mut x136, &mut x137, x135, x131, x128);
3015 let mut x138: u32 = 0;
3016 let mut x139: FqU1 = 0;
3017 fq_addcarryx_u32(&mut x138, &mut x139, x137, x129, x126);
3018 let mut x140: u32 = 0;
3019 let mut x141: FqU1 = 0;
3020 fq_addcarryx_u32(&mut x140, &mut x141, x139, x127, x124);
3021 let mut x142: u32 = 0;
3022 let mut x143: FqU1 = 0;
3023 fq_addcarryx_u32(&mut x142, &mut x143, x141, x125, x122);
3024 let mut x144: u32 = 0;
3025 let mut x145: FqU1 = 0;
3026 fq_addcarryx_u32(&mut x144, &mut x145, x143, x123, x120);
3027 let mut x146: u32 = 0;
3028 let mut x147: FqU1 = 0;
3029 fq_addcarryx_u32(&mut x146, &mut x147, 0x0, x104, x118);
3030 let mut x148: u32 = 0;
3031 let mut x149: FqU1 = 0;
3032 fq_addcarryx_u32(&mut x148, &mut x149, x147, x106, x132);
3033 let mut x150: u32 = 0;
3034 let mut x151: FqU1 = 0;
3035 fq_addcarryx_u32(&mut x150, &mut x151, x149, x108, x134);
3036 let mut x152: u32 = 0;
3037 let mut x153: FqU1 = 0;
3038 fq_addcarryx_u32(&mut x152, &mut x153, x151, x110, x136);
3039 let mut x154: u32 = 0;
3040 let mut x155: FqU1 = 0;
3041 fq_addcarryx_u32(&mut x154, &mut x155, x153, x112, x138);
3042 let mut x156: u32 = 0;
3043 let mut x157: FqU1 = 0;
3044 fq_addcarryx_u32(&mut x156, &mut x157, x155, x114, x140);
3045 let mut x158: u32 = 0;
3046 let mut x159: FqU1 = 0;
3047 fq_addcarryx_u32(&mut x158, &mut x159, x157, x116, x142);
3048 let mut x160: u32 = 0;
3049 let mut x161: FqU1 = 0;
3050 fq_addcarryx_u32(
3051 &mut x160,
3052 &mut x161,
3053 x159,
3054 ((x117 as u32) + ((x103 as u32) + ((x87 as u32) + x63))),
3055 x144,
3056 );
3057 let mut x162: u32 = 0;
3058 let mut x163: FqU1 = 0;
3059 fq_addcarryx_u32(&mut x162, &mut x163, 0x0, x148, (arg1[3]));
3060 let mut x164: u32 = 0;
3061 let mut x165: FqU1 = 0;
3062 fq_addcarryx_u32(&mut x164, &mut x165, x163, x150, (0x0 as u32));
3063 let mut x166: u32 = 0;
3064 let mut x167: FqU1 = 0;
3065 fq_addcarryx_u32(&mut x166, &mut x167, x165, x152, (0x0 as u32));
3066 let mut x168: u32 = 0;
3067 let mut x169: FqU1 = 0;
3068 fq_addcarryx_u32(&mut x168, &mut x169, x167, x154, (0x0 as u32));
3069 let mut x170: u32 = 0;
3070 let mut x171: FqU1 = 0;
3071 fq_addcarryx_u32(&mut x170, &mut x171, x169, x156, (0x0 as u32));
3072 let mut x172: u32 = 0;
3073 let mut x173: FqU1 = 0;
3074 fq_addcarryx_u32(&mut x172, &mut x173, x171, x158, (0x0 as u32));
3075 let mut x174: u32 = 0;
3076 let mut x175: FqU1 = 0;
3077 fq_addcarryx_u32(&mut x174, &mut x175, x173, x160, (0x0 as u32));
3078 let mut x176: u32 = 0;
3079 let mut x177: u32 = 0;
3080 fq_mulx_u32(&mut x176, &mut x177, x162, 0xffffffff);
3081 let mut x178: u32 = 0;
3082 let mut x179: u32 = 0;
3083 fq_mulx_u32(&mut x178, &mut x179, x176, 0x12ab655e);
3084 let mut x180: u32 = 0;
3085 let mut x181: u32 = 0;
3086 fq_mulx_u32(&mut x180, &mut x181, x176, 0x9a2ca556);
3087 let mut x182: u32 = 0;
3088 let mut x183: u32 = 0;
3089 fq_mulx_u32(&mut x182, &mut x183, x176, 0x60b44d1e);
3090 let mut x184: u32 = 0;
3091 let mut x185: u32 = 0;
3092 fq_mulx_u32(&mut x184, &mut x185, x176, 0x5c37b001);
3093 let mut x186: u32 = 0;
3094 let mut x187: u32 = 0;
3095 fq_mulx_u32(&mut x186, &mut x187, x176, 0x59aa76fe);
3096 let mut x188: u32 = 0;
3097 let mut x189: u32 = 0;
3098 fq_mulx_u32(&mut x188, &mut x189, x176, 0xd0000001);
3099 let mut x190: u32 = 0;
3100 let mut x191: u32 = 0;
3101 fq_mulx_u32(&mut x190, &mut x191, x176, 0xa118000);
3102 let mut x192: u32 = 0;
3103 let mut x193: FqU1 = 0;
3104 fq_addcarryx_u32(&mut x192, &mut x193, 0x0, x191, x188);
3105 let mut x194: u32 = 0;
3106 let mut x195: FqU1 = 0;
3107 fq_addcarryx_u32(&mut x194, &mut x195, x193, x189, x186);
3108 let mut x196: u32 = 0;
3109 let mut x197: FqU1 = 0;
3110 fq_addcarryx_u32(&mut x196, &mut x197, x195, x187, x184);
3111 let mut x198: u32 = 0;
3112 let mut x199: FqU1 = 0;
3113 fq_addcarryx_u32(&mut x198, &mut x199, x197, x185, x182);
3114 let mut x200: u32 = 0;
3115 let mut x201: FqU1 = 0;
3116 fq_addcarryx_u32(&mut x200, &mut x201, x199, x183, x180);
3117 let mut x202: u32 = 0;
3118 let mut x203: FqU1 = 0;
3119 fq_addcarryx_u32(&mut x202, &mut x203, x201, x181, x178);
3120 let mut x204: u32 = 0;
3121 let mut x205: FqU1 = 0;
3122 fq_addcarryx_u32(&mut x204, &mut x205, 0x0, x162, x176);
3123 let mut x206: u32 = 0;
3124 let mut x207: FqU1 = 0;
3125 fq_addcarryx_u32(&mut x206, &mut x207, x205, x164, x190);
3126 let mut x208: u32 = 0;
3127 let mut x209: FqU1 = 0;
3128 fq_addcarryx_u32(&mut x208, &mut x209, x207, x166, x192);
3129 let mut x210: u32 = 0;
3130 let mut x211: FqU1 = 0;
3131 fq_addcarryx_u32(&mut x210, &mut x211, x209, x168, x194);
3132 let mut x212: u32 = 0;
3133 let mut x213: FqU1 = 0;
3134 fq_addcarryx_u32(&mut x212, &mut x213, x211, x170, x196);
3135 let mut x214: u32 = 0;
3136 let mut x215: FqU1 = 0;
3137 fq_addcarryx_u32(&mut x214, &mut x215, x213, x172, x198);
3138 let mut x216: u32 = 0;
3139 let mut x217: FqU1 = 0;
3140 fq_addcarryx_u32(&mut x216, &mut x217, x215, x174, x200);
3141 let mut x218: u32 = 0;
3142 let mut x219: FqU1 = 0;
3143 fq_addcarryx_u32(
3144 &mut x218,
3145 &mut x219,
3146 x217,
3147 ((x175 as u32) + ((x161 as u32) + ((x145 as u32) + x121))),
3148 x202,
3149 );
3150 let mut x220: u32 = 0;
3151 let mut x221: FqU1 = 0;
3152 fq_addcarryx_u32(&mut x220, &mut x221, 0x0, x206, (arg1[4]));
3153 let mut x222: u32 = 0;
3154 let mut x223: FqU1 = 0;
3155 fq_addcarryx_u32(&mut x222, &mut x223, x221, x208, (0x0 as u32));
3156 let mut x224: u32 = 0;
3157 let mut x225: FqU1 = 0;
3158 fq_addcarryx_u32(&mut x224, &mut x225, x223, x210, (0x0 as u32));
3159 let mut x226: u32 = 0;
3160 let mut x227: FqU1 = 0;
3161 fq_addcarryx_u32(&mut x226, &mut x227, x225, x212, (0x0 as u32));
3162 let mut x228: u32 = 0;
3163 let mut x229: FqU1 = 0;
3164 fq_addcarryx_u32(&mut x228, &mut x229, x227, x214, (0x0 as u32));
3165 let mut x230: u32 = 0;
3166 let mut x231: FqU1 = 0;
3167 fq_addcarryx_u32(&mut x230, &mut x231, x229, x216, (0x0 as u32));
3168 let mut x232: u32 = 0;
3169 let mut x233: FqU1 = 0;
3170 fq_addcarryx_u32(&mut x232, &mut x233, x231, x218, (0x0 as u32));
3171 let mut x234: u32 = 0;
3172 let mut x235: u32 = 0;
3173 fq_mulx_u32(&mut x234, &mut x235, x220, 0xffffffff);
3174 let mut x236: u32 = 0;
3175 let mut x237: u32 = 0;
3176 fq_mulx_u32(&mut x236, &mut x237, x234, 0x12ab655e);
3177 let mut x238: u32 = 0;
3178 let mut x239: u32 = 0;
3179 fq_mulx_u32(&mut x238, &mut x239, x234, 0x9a2ca556);
3180 let mut x240: u32 = 0;
3181 let mut x241: u32 = 0;
3182 fq_mulx_u32(&mut x240, &mut x241, x234, 0x60b44d1e);
3183 let mut x242: u32 = 0;
3184 let mut x243: u32 = 0;
3185 fq_mulx_u32(&mut x242, &mut x243, x234, 0x5c37b001);
3186 let mut x244: u32 = 0;
3187 let mut x245: u32 = 0;
3188 fq_mulx_u32(&mut x244, &mut x245, x234, 0x59aa76fe);
3189 let mut x246: u32 = 0;
3190 let mut x247: u32 = 0;
3191 fq_mulx_u32(&mut x246, &mut x247, x234, 0xd0000001);
3192 let mut x248: u32 = 0;
3193 let mut x249: u32 = 0;
3194 fq_mulx_u32(&mut x248, &mut x249, x234, 0xa118000);
3195 let mut x250: u32 = 0;
3196 let mut x251: FqU1 = 0;
3197 fq_addcarryx_u32(&mut x250, &mut x251, 0x0, x249, x246);
3198 let mut x252: u32 = 0;
3199 let mut x253: FqU1 = 0;
3200 fq_addcarryx_u32(&mut x252, &mut x253, x251, x247, x244);
3201 let mut x254: u32 = 0;
3202 let mut x255: FqU1 = 0;
3203 fq_addcarryx_u32(&mut x254, &mut x255, x253, x245, x242);
3204 let mut x256: u32 = 0;
3205 let mut x257: FqU1 = 0;
3206 fq_addcarryx_u32(&mut x256, &mut x257, x255, x243, x240);
3207 let mut x258: u32 = 0;
3208 let mut x259: FqU1 = 0;
3209 fq_addcarryx_u32(&mut x258, &mut x259, x257, x241, x238);
3210 let mut x260: u32 = 0;
3211 let mut x261: FqU1 = 0;
3212 fq_addcarryx_u32(&mut x260, &mut x261, x259, x239, x236);
3213 let mut x262: u32 = 0;
3214 let mut x263: FqU1 = 0;
3215 fq_addcarryx_u32(&mut x262, &mut x263, 0x0, x220, x234);
3216 let mut x264: u32 = 0;
3217 let mut x265: FqU1 = 0;
3218 fq_addcarryx_u32(&mut x264, &mut x265, x263, x222, x248);
3219 let mut x266: u32 = 0;
3220 let mut x267: FqU1 = 0;
3221 fq_addcarryx_u32(&mut x266, &mut x267, x265, x224, x250);
3222 let mut x268: u32 = 0;
3223 let mut x269: FqU1 = 0;
3224 fq_addcarryx_u32(&mut x268, &mut x269, x267, x226, x252);
3225 let mut x270: u32 = 0;
3226 let mut x271: FqU1 = 0;
3227 fq_addcarryx_u32(&mut x270, &mut x271, x269, x228, x254);
3228 let mut x272: u32 = 0;
3229 let mut x273: FqU1 = 0;
3230 fq_addcarryx_u32(&mut x272, &mut x273, x271, x230, x256);
3231 let mut x274: u32 = 0;
3232 let mut x275: FqU1 = 0;
3233 fq_addcarryx_u32(&mut x274, &mut x275, x273, x232, x258);
3234 let mut x276: u32 = 0;
3235 let mut x277: FqU1 = 0;
3236 fq_addcarryx_u32(
3237 &mut x276,
3238 &mut x277,
3239 x275,
3240 ((x233 as u32) + ((x219 as u32) + ((x203 as u32) + x179))),
3241 x260,
3242 );
3243 let mut x278: u32 = 0;
3244 let mut x279: FqU1 = 0;
3245 fq_addcarryx_u32(&mut x278, &mut x279, 0x0, x264, (arg1[5]));
3246 let mut x280: u32 = 0;
3247 let mut x281: FqU1 = 0;
3248 fq_addcarryx_u32(&mut x280, &mut x281, x279, x266, (0x0 as u32));
3249 let mut x282: u32 = 0;
3250 let mut x283: FqU1 = 0;
3251 fq_addcarryx_u32(&mut x282, &mut x283, x281, x268, (0x0 as u32));
3252 let mut x284: u32 = 0;
3253 let mut x285: FqU1 = 0;
3254 fq_addcarryx_u32(&mut x284, &mut x285, x283, x270, (0x0 as u32));
3255 let mut x286: u32 = 0;
3256 let mut x287: FqU1 = 0;
3257 fq_addcarryx_u32(&mut x286, &mut x287, x285, x272, (0x0 as u32));
3258 let mut x288: u32 = 0;
3259 let mut x289: FqU1 = 0;
3260 fq_addcarryx_u32(&mut x288, &mut x289, x287, x274, (0x0 as u32));
3261 let mut x290: u32 = 0;
3262 let mut x291: FqU1 = 0;
3263 fq_addcarryx_u32(&mut x290, &mut x291, x289, x276, (0x0 as u32));
3264 let mut x292: u32 = 0;
3265 let mut x293: u32 = 0;
3266 fq_mulx_u32(&mut x292, &mut x293, x278, 0xffffffff);
3267 let mut x294: u32 = 0;
3268 let mut x295: u32 = 0;
3269 fq_mulx_u32(&mut x294, &mut x295, x292, 0x12ab655e);
3270 let mut x296: u32 = 0;
3271 let mut x297: u32 = 0;
3272 fq_mulx_u32(&mut x296, &mut x297, x292, 0x9a2ca556);
3273 let mut x298: u32 = 0;
3274 let mut x299: u32 = 0;
3275 fq_mulx_u32(&mut x298, &mut x299, x292, 0x60b44d1e);
3276 let mut x300: u32 = 0;
3277 let mut x301: u32 = 0;
3278 fq_mulx_u32(&mut x300, &mut x301, x292, 0x5c37b001);
3279 let mut x302: u32 = 0;
3280 let mut x303: u32 = 0;
3281 fq_mulx_u32(&mut x302, &mut x303, x292, 0x59aa76fe);
3282 let mut x304: u32 = 0;
3283 let mut x305: u32 = 0;
3284 fq_mulx_u32(&mut x304, &mut x305, x292, 0xd0000001);
3285 let mut x306: u32 = 0;
3286 let mut x307: u32 = 0;
3287 fq_mulx_u32(&mut x306, &mut x307, x292, 0xa118000);
3288 let mut x308: u32 = 0;
3289 let mut x309: FqU1 = 0;
3290 fq_addcarryx_u32(&mut x308, &mut x309, 0x0, x307, x304);
3291 let mut x310: u32 = 0;
3292 let mut x311: FqU1 = 0;
3293 fq_addcarryx_u32(&mut x310, &mut x311, x309, x305, x302);
3294 let mut x312: u32 = 0;
3295 let mut x313: FqU1 = 0;
3296 fq_addcarryx_u32(&mut x312, &mut x313, x311, x303, x300);
3297 let mut x314: u32 = 0;
3298 let mut x315: FqU1 = 0;
3299 fq_addcarryx_u32(&mut x314, &mut x315, x313, x301, x298);
3300 let mut x316: u32 = 0;
3301 let mut x317: FqU1 = 0;
3302 fq_addcarryx_u32(&mut x316, &mut x317, x315, x299, x296);
3303 let mut x318: u32 = 0;
3304 let mut x319: FqU1 = 0;
3305 fq_addcarryx_u32(&mut x318, &mut x319, x317, x297, x294);
3306 let mut x320: u32 = 0;
3307 let mut x321: FqU1 = 0;
3308 fq_addcarryx_u32(&mut x320, &mut x321, 0x0, x278, x292);
3309 let mut x322: u32 = 0;
3310 let mut x323: FqU1 = 0;
3311 fq_addcarryx_u32(&mut x322, &mut x323, x321, x280, x306);
3312 let mut x324: u32 = 0;
3313 let mut x325: FqU1 = 0;
3314 fq_addcarryx_u32(&mut x324, &mut x325, x323, x282, x308);
3315 let mut x326: u32 = 0;
3316 let mut x327: FqU1 = 0;
3317 fq_addcarryx_u32(&mut x326, &mut x327, x325, x284, x310);
3318 let mut x328: u32 = 0;
3319 let mut x329: FqU1 = 0;
3320 fq_addcarryx_u32(&mut x328, &mut x329, x327, x286, x312);
3321 let mut x330: u32 = 0;
3322 let mut x331: FqU1 = 0;
3323 fq_addcarryx_u32(&mut x330, &mut x331, x329, x288, x314);
3324 let mut x332: u32 = 0;
3325 let mut x333: FqU1 = 0;
3326 fq_addcarryx_u32(&mut x332, &mut x333, x331, x290, x316);
3327 let mut x334: u32 = 0;
3328 let mut x335: FqU1 = 0;
3329 fq_addcarryx_u32(
3330 &mut x334,
3331 &mut x335,
3332 x333,
3333 ((x291 as u32) + ((x277 as u32) + ((x261 as u32) + x237))),
3334 x318,
3335 );
3336 let mut x336: u32 = 0;
3337 let mut x337: FqU1 = 0;
3338 fq_addcarryx_u32(&mut x336, &mut x337, 0x0, x322, (arg1[6]));
3339 let mut x338: u32 = 0;
3340 let mut x339: FqU1 = 0;
3341 fq_addcarryx_u32(&mut x338, &mut x339, x337, x324, (0x0 as u32));
3342 let mut x340: u32 = 0;
3343 let mut x341: FqU1 = 0;
3344 fq_addcarryx_u32(&mut x340, &mut x341, x339, x326, (0x0 as u32));
3345 let mut x342: u32 = 0;
3346 let mut x343: FqU1 = 0;
3347 fq_addcarryx_u32(&mut x342, &mut x343, x341, x328, (0x0 as u32));
3348 let mut x344: u32 = 0;
3349 let mut x345: FqU1 = 0;
3350 fq_addcarryx_u32(&mut x344, &mut x345, x343, x330, (0x0 as u32));
3351 let mut x346: u32 = 0;
3352 let mut x347: FqU1 = 0;
3353 fq_addcarryx_u32(&mut x346, &mut x347, x345, x332, (0x0 as u32));
3354 let mut x348: u32 = 0;
3355 let mut x349: FqU1 = 0;
3356 fq_addcarryx_u32(&mut x348, &mut x349, x347, x334, (0x0 as u32));
3357 let mut x350: u32 = 0;
3358 let mut x351: u32 = 0;
3359 fq_mulx_u32(&mut x350, &mut x351, x336, 0xffffffff);
3360 let mut x352: u32 = 0;
3361 let mut x353: u32 = 0;
3362 fq_mulx_u32(&mut x352, &mut x353, x350, 0x12ab655e);
3363 let mut x354: u32 = 0;
3364 let mut x355: u32 = 0;
3365 fq_mulx_u32(&mut x354, &mut x355, x350, 0x9a2ca556);
3366 let mut x356: u32 = 0;
3367 let mut x357: u32 = 0;
3368 fq_mulx_u32(&mut x356, &mut x357, x350, 0x60b44d1e);
3369 let mut x358: u32 = 0;
3370 let mut x359: u32 = 0;
3371 fq_mulx_u32(&mut x358, &mut x359, x350, 0x5c37b001);
3372 let mut x360: u32 = 0;
3373 let mut x361: u32 = 0;
3374 fq_mulx_u32(&mut x360, &mut x361, x350, 0x59aa76fe);
3375 let mut x362: u32 = 0;
3376 let mut x363: u32 = 0;
3377 fq_mulx_u32(&mut x362, &mut x363, x350, 0xd0000001);
3378 let mut x364: u32 = 0;
3379 let mut x365: u32 = 0;
3380 fq_mulx_u32(&mut x364, &mut x365, x350, 0xa118000);
3381 let mut x366: u32 = 0;
3382 let mut x367: FqU1 = 0;
3383 fq_addcarryx_u32(&mut x366, &mut x367, 0x0, x365, x362);
3384 let mut x368: u32 = 0;
3385 let mut x369: FqU1 = 0;
3386 fq_addcarryx_u32(&mut x368, &mut x369, x367, x363, x360);
3387 let mut x370: u32 = 0;
3388 let mut x371: FqU1 = 0;
3389 fq_addcarryx_u32(&mut x370, &mut x371, x369, x361, x358);
3390 let mut x372: u32 = 0;
3391 let mut x373: FqU1 = 0;
3392 fq_addcarryx_u32(&mut x372, &mut x373, x371, x359, x356);
3393 let mut x374: u32 = 0;
3394 let mut x375: FqU1 = 0;
3395 fq_addcarryx_u32(&mut x374, &mut x375, x373, x357, x354);
3396 let mut x376: u32 = 0;
3397 let mut x377: FqU1 = 0;
3398 fq_addcarryx_u32(&mut x376, &mut x377, x375, x355, x352);
3399 let mut x378: u32 = 0;
3400 let mut x379: FqU1 = 0;
3401 fq_addcarryx_u32(&mut x378, &mut x379, 0x0, x336, x350);
3402 let mut x380: u32 = 0;
3403 let mut x381: FqU1 = 0;
3404 fq_addcarryx_u32(&mut x380, &mut x381, x379, x338, x364);
3405 let mut x382: u32 = 0;
3406 let mut x383: FqU1 = 0;
3407 fq_addcarryx_u32(&mut x382, &mut x383, x381, x340, x366);
3408 let mut x384: u32 = 0;
3409 let mut x385: FqU1 = 0;
3410 fq_addcarryx_u32(&mut x384, &mut x385, x383, x342, x368);
3411 let mut x386: u32 = 0;
3412 let mut x387: FqU1 = 0;
3413 fq_addcarryx_u32(&mut x386, &mut x387, x385, x344, x370);
3414 let mut x388: u32 = 0;
3415 let mut x389: FqU1 = 0;
3416 fq_addcarryx_u32(&mut x388, &mut x389, x387, x346, x372);
3417 let mut x390: u32 = 0;
3418 let mut x391: FqU1 = 0;
3419 fq_addcarryx_u32(&mut x390, &mut x391, x389, x348, x374);
3420 let mut x392: u32 = 0;
3421 let mut x393: FqU1 = 0;
3422 fq_addcarryx_u32(
3423 &mut x392,
3424 &mut x393,
3425 x391,
3426 ((x349 as u32) + ((x335 as u32) + ((x319 as u32) + x295))),
3427 x376,
3428 );
3429 let mut x394: u32 = 0;
3430 let mut x395: FqU1 = 0;
3431 fq_addcarryx_u32(&mut x394, &mut x395, 0x0, x380, (arg1[7]));
3432 let mut x396: u32 = 0;
3433 let mut x397: FqU1 = 0;
3434 fq_addcarryx_u32(&mut x396, &mut x397, x395, x382, (0x0 as u32));
3435 let mut x398: u32 = 0;
3436 let mut x399: FqU1 = 0;
3437 fq_addcarryx_u32(&mut x398, &mut x399, x397, x384, (0x0 as u32));
3438 let mut x400: u32 = 0;
3439 let mut x401: FqU1 = 0;
3440 fq_addcarryx_u32(&mut x400, &mut x401, x399, x386, (0x0 as u32));
3441 let mut x402: u32 = 0;
3442 let mut x403: FqU1 = 0;
3443 fq_addcarryx_u32(&mut x402, &mut x403, x401, x388, (0x0 as u32));
3444 let mut x404: u32 = 0;
3445 let mut x405: FqU1 = 0;
3446 fq_addcarryx_u32(&mut x404, &mut x405, x403, x390, (0x0 as u32));
3447 let mut x406: u32 = 0;
3448 let mut x407: FqU1 = 0;
3449 fq_addcarryx_u32(&mut x406, &mut x407, x405, x392, (0x0 as u32));
3450 let mut x408: u32 = 0;
3451 let mut x409: u32 = 0;
3452 fq_mulx_u32(&mut x408, &mut x409, x394, 0xffffffff);
3453 let mut x410: u32 = 0;
3454 let mut x411: u32 = 0;
3455 fq_mulx_u32(&mut x410, &mut x411, x408, 0x12ab655e);
3456 let mut x412: u32 = 0;
3457 let mut x413: u32 = 0;
3458 fq_mulx_u32(&mut x412, &mut x413, x408, 0x9a2ca556);
3459 let mut x414: u32 = 0;
3460 let mut x415: u32 = 0;
3461 fq_mulx_u32(&mut x414, &mut x415, x408, 0x60b44d1e);
3462 let mut x416: u32 = 0;
3463 let mut x417: u32 = 0;
3464 fq_mulx_u32(&mut x416, &mut x417, x408, 0x5c37b001);
3465 let mut x418: u32 = 0;
3466 let mut x419: u32 = 0;
3467 fq_mulx_u32(&mut x418, &mut x419, x408, 0x59aa76fe);
3468 let mut x420: u32 = 0;
3469 let mut x421: u32 = 0;
3470 fq_mulx_u32(&mut x420, &mut x421, x408, 0xd0000001);
3471 let mut x422: u32 = 0;
3472 let mut x423: u32 = 0;
3473 fq_mulx_u32(&mut x422, &mut x423, x408, 0xa118000);
3474 let mut x424: u32 = 0;
3475 let mut x425: FqU1 = 0;
3476 fq_addcarryx_u32(&mut x424, &mut x425, 0x0, x423, x420);
3477 let mut x426: u32 = 0;
3478 let mut x427: FqU1 = 0;
3479 fq_addcarryx_u32(&mut x426, &mut x427, x425, x421, x418);
3480 let mut x428: u32 = 0;
3481 let mut x429: FqU1 = 0;
3482 fq_addcarryx_u32(&mut x428, &mut x429, x427, x419, x416);
3483 let mut x430: u32 = 0;
3484 let mut x431: FqU1 = 0;
3485 fq_addcarryx_u32(&mut x430, &mut x431, x429, x417, x414);
3486 let mut x432: u32 = 0;
3487 let mut x433: FqU1 = 0;
3488 fq_addcarryx_u32(&mut x432, &mut x433, x431, x415, x412);
3489 let mut x434: u32 = 0;
3490 let mut x435: FqU1 = 0;
3491 fq_addcarryx_u32(&mut x434, &mut x435, x433, x413, x410);
3492 let mut x436: u32 = 0;
3493 let mut x437: FqU1 = 0;
3494 fq_addcarryx_u32(&mut x436, &mut x437, 0x0, x394, x408);
3495 let mut x438: u32 = 0;
3496 let mut x439: FqU1 = 0;
3497 fq_addcarryx_u32(&mut x438, &mut x439, x437, x396, x422);
3498 let mut x440: u32 = 0;
3499 let mut x441: FqU1 = 0;
3500 fq_addcarryx_u32(&mut x440, &mut x441, x439, x398, x424);
3501 let mut x442: u32 = 0;
3502 let mut x443: FqU1 = 0;
3503 fq_addcarryx_u32(&mut x442, &mut x443, x441, x400, x426);
3504 let mut x444: u32 = 0;
3505 let mut x445: FqU1 = 0;
3506 fq_addcarryx_u32(&mut x444, &mut x445, x443, x402, x428);
3507 let mut x446: u32 = 0;
3508 let mut x447: FqU1 = 0;
3509 fq_addcarryx_u32(&mut x446, &mut x447, x445, x404, x430);
3510 let mut x448: u32 = 0;
3511 let mut x449: FqU1 = 0;
3512 fq_addcarryx_u32(&mut x448, &mut x449, x447, x406, x432);
3513 let mut x450: u32 = 0;
3514 let mut x451: FqU1 = 0;
3515 fq_addcarryx_u32(
3516 &mut x450,
3517 &mut x451,
3518 x449,
3519 ((x407 as u32) + ((x393 as u32) + ((x377 as u32) + x353))),
3520 x434,
3521 );
3522 let x452: u32 = ((x451 as u32) + ((x435 as u32) + x411));
3523 let mut x453: u32 = 0;
3524 let mut x454: FqU1 = 0;
3525 fq_subborrowx_u32(&mut x453, &mut x454, 0x0, x438, (0x1 as u32));
3526 let mut x455: u32 = 0;
3527 let mut x456: FqU1 = 0;
3528 fq_subborrowx_u32(&mut x455, &mut x456, x454, x440, 0xa118000);
3529 let mut x457: u32 = 0;
3530 let mut x458: FqU1 = 0;
3531 fq_subborrowx_u32(&mut x457, &mut x458, x456, x442, 0xd0000001);
3532 let mut x459: u32 = 0;
3533 let mut x460: FqU1 = 0;
3534 fq_subborrowx_u32(&mut x459, &mut x460, x458, x444, 0x59aa76fe);
3535 let mut x461: u32 = 0;
3536 let mut x462: FqU1 = 0;
3537 fq_subborrowx_u32(&mut x461, &mut x462, x460, x446, 0x5c37b001);
3538 let mut x463: u32 = 0;
3539 let mut x464: FqU1 = 0;
3540 fq_subborrowx_u32(&mut x463, &mut x464, x462, x448, 0x60b44d1e);
3541 let mut x465: u32 = 0;
3542 let mut x466: FqU1 = 0;
3543 fq_subborrowx_u32(&mut x465, &mut x466, x464, x450, 0x9a2ca556);
3544 let mut x467: u32 = 0;
3545 let mut x468: FqU1 = 0;
3546 fq_subborrowx_u32(&mut x467, &mut x468, x466, x452, 0x12ab655e);
3547 let mut x469: u32 = 0;
3548 let mut x470: FqU1 = 0;
3549 fq_subborrowx_u32(&mut x469, &mut x470, x468, (0x0 as u32), (0x0 as u32));
3550 let mut x471: u32 = 0;
3551 fq_cmovznz_u32(&mut x471, x470, x453, x438);
3552 let mut x472: u32 = 0;
3553 fq_cmovznz_u32(&mut x472, x470, x455, x440);
3554 let mut x473: u32 = 0;
3555 fq_cmovznz_u32(&mut x473, x470, x457, x442);
3556 let mut x474: u32 = 0;
3557 fq_cmovznz_u32(&mut x474, x470, x459, x444);
3558 let mut x475: u32 = 0;
3559 fq_cmovznz_u32(&mut x475, x470, x461, x446);
3560 let mut x476: u32 = 0;
3561 fq_cmovznz_u32(&mut x476, x470, x463, x448);
3562 let mut x477: u32 = 0;
3563 fq_cmovznz_u32(&mut x477, x470, x465, x450);
3564 let mut x478: u32 = 0;
3565 fq_cmovznz_u32(&mut x478, x470, x467, x452);
3566 out1[0] = x471;
3567 out1[1] = x472;
3568 out1[2] = x473;
3569 out1[3] = x474;
3570 out1[4] = x475;
3571 out1[5] = x476;
3572 out1[6] = x477;
3573 out1[7] = x478;
3574}
3575
3576pub fn fq_to_montgomery(
3585 out1: &mut FqMontgomeryDomainFieldElement,
3586 arg1: &FqNonMontgomeryDomainFieldElement,
3587) {
3588 let x1: u32 = (arg1[1]);
3589 let x2: u32 = (arg1[2]);
3590 let x3: u32 = (arg1[3]);
3591 let x4: u32 = (arg1[4]);
3592 let x5: u32 = (arg1[5]);
3593 let x6: u32 = (arg1[6]);
3594 let x7: u32 = (arg1[7]);
3595 let x8: u32 = (arg1[0]);
3596 let mut x9: u32 = 0;
3597 let mut x10: u32 = 0;
3598 fq_mulx_u32(&mut x9, &mut x10, x8, 0x11fdae7);
3599 let mut x11: u32 = 0;
3600 let mut x12: u32 = 0;
3601 fq_mulx_u32(&mut x11, &mut x12, x8, 0xeff1c939);
3602 let mut x13: u32 = 0;
3603 let mut x14: u32 = 0;
3604 fq_mulx_u32(&mut x13, &mut x14, x8, 0xa7cc008f);
3605 let mut x15: u32 = 0;
3606 let mut x16: u32 = 0;
3607 fq_mulx_u32(&mut x15, &mut x16, x8, 0xe5dc8593);
3608 let mut x17: u32 = 0;
3609 let mut x18: u32 = 0;
3610 fq_mulx_u32(&mut x17, &mut x18, x8, 0xcc2c27b5);
3611 let mut x19: u32 = 0;
3612 let mut x20: u32 = 0;
3613 fq_mulx_u32(&mut x19, &mut x20, x8, 0x8860591f);
3614 let mut x21: u32 = 0;
3615 let mut x22: u32 = 0;
3616 fq_mulx_u32(&mut x21, &mut x22, x8, 0x25d577ba);
3617 let mut x23: u32 = 0;
3618 let mut x24: u32 = 0;
3619 fq_mulx_u32(&mut x23, &mut x24, x8, 0xb861857b);
3620 let mut x25: u32 = 0;
3621 let mut x26: FqU1 = 0;
3622 fq_addcarryx_u32(&mut x25, &mut x26, 0x0, x24, x21);
3623 let mut x27: u32 = 0;
3624 let mut x28: FqU1 = 0;
3625 fq_addcarryx_u32(&mut x27, &mut x28, x26, x22, x19);
3626 let mut x29: u32 = 0;
3627 let mut x30: FqU1 = 0;
3628 fq_addcarryx_u32(&mut x29, &mut x30, x28, x20, x17);
3629 let mut x31: u32 = 0;
3630 let mut x32: FqU1 = 0;
3631 fq_addcarryx_u32(&mut x31, &mut x32, x30, x18, x15);
3632 let mut x33: u32 = 0;
3633 let mut x34: FqU1 = 0;
3634 fq_addcarryx_u32(&mut x33, &mut x34, x32, x16, x13);
3635 let mut x35: u32 = 0;
3636 let mut x36: FqU1 = 0;
3637 fq_addcarryx_u32(&mut x35, &mut x36, x34, x14, x11);
3638 let mut x37: u32 = 0;
3639 let mut x38: FqU1 = 0;
3640 fq_addcarryx_u32(&mut x37, &mut x38, x36, x12, x9);
3641 let mut x39: u32 = 0;
3642 let mut x40: u32 = 0;
3643 fq_mulx_u32(&mut x39, &mut x40, x23, 0xffffffff);
3644 let mut x41: u32 = 0;
3645 let mut x42: u32 = 0;
3646 fq_mulx_u32(&mut x41, &mut x42, x39, 0x12ab655e);
3647 let mut x43: u32 = 0;
3648 let mut x44: u32 = 0;
3649 fq_mulx_u32(&mut x43, &mut x44, x39, 0x9a2ca556);
3650 let mut x45: u32 = 0;
3651 let mut x46: u32 = 0;
3652 fq_mulx_u32(&mut x45, &mut x46, x39, 0x60b44d1e);
3653 let mut x47: u32 = 0;
3654 let mut x48: u32 = 0;
3655 fq_mulx_u32(&mut x47, &mut x48, x39, 0x5c37b001);
3656 let mut x49: u32 = 0;
3657 let mut x50: u32 = 0;
3658 fq_mulx_u32(&mut x49, &mut x50, x39, 0x59aa76fe);
3659 let mut x51: u32 = 0;
3660 let mut x52: u32 = 0;
3661 fq_mulx_u32(&mut x51, &mut x52, x39, 0xd0000001);
3662 let mut x53: u32 = 0;
3663 let mut x54: u32 = 0;
3664 fq_mulx_u32(&mut x53, &mut x54, x39, 0xa118000);
3665 let mut x55: u32 = 0;
3666 let mut x56: FqU1 = 0;
3667 fq_addcarryx_u32(&mut x55, &mut x56, 0x0, x54, x51);
3668 let mut x57: u32 = 0;
3669 let mut x58: FqU1 = 0;
3670 fq_addcarryx_u32(&mut x57, &mut x58, x56, x52, x49);
3671 let mut x59: u32 = 0;
3672 let mut x60: FqU1 = 0;
3673 fq_addcarryx_u32(&mut x59, &mut x60, x58, x50, x47);
3674 let mut x61: u32 = 0;
3675 let mut x62: FqU1 = 0;
3676 fq_addcarryx_u32(&mut x61, &mut x62, x60, x48, x45);
3677 let mut x63: u32 = 0;
3678 let mut x64: FqU1 = 0;
3679 fq_addcarryx_u32(&mut x63, &mut x64, x62, x46, x43);
3680 let mut x65: u32 = 0;
3681 let mut x66: FqU1 = 0;
3682 fq_addcarryx_u32(&mut x65, &mut x66, x64, x44, x41);
3683 let mut x67: u32 = 0;
3684 let mut x68: FqU1 = 0;
3685 fq_addcarryx_u32(&mut x67, &mut x68, 0x0, x23, x39);
3686 let mut x69: u32 = 0;
3687 let mut x70: FqU1 = 0;
3688 fq_addcarryx_u32(&mut x69, &mut x70, x68, x25, x53);
3689 let mut x71: u32 = 0;
3690 let mut x72: FqU1 = 0;
3691 fq_addcarryx_u32(&mut x71, &mut x72, x70, x27, x55);
3692 let mut x73: u32 = 0;
3693 let mut x74: FqU1 = 0;
3694 fq_addcarryx_u32(&mut x73, &mut x74, x72, x29, x57);
3695 let mut x75: u32 = 0;
3696 let mut x76: FqU1 = 0;
3697 fq_addcarryx_u32(&mut x75, &mut x76, x74, x31, x59);
3698 let mut x77: u32 = 0;
3699 let mut x78: FqU1 = 0;
3700 fq_addcarryx_u32(&mut x77, &mut x78, x76, x33, x61);
3701 let mut x79: u32 = 0;
3702 let mut x80: FqU1 = 0;
3703 fq_addcarryx_u32(&mut x79, &mut x80, x78, x35, x63);
3704 let mut x81: u32 = 0;
3705 let mut x82: FqU1 = 0;
3706 fq_addcarryx_u32(&mut x81, &mut x82, x80, x37, x65);
3707 let mut x83: u32 = 0;
3708 let mut x84: u32 = 0;
3709 fq_mulx_u32(&mut x83, &mut x84, x1, 0x11fdae7);
3710 let mut x85: u32 = 0;
3711 let mut x86: u32 = 0;
3712 fq_mulx_u32(&mut x85, &mut x86, x1, 0xeff1c939);
3713 let mut x87: u32 = 0;
3714 let mut x88: u32 = 0;
3715 fq_mulx_u32(&mut x87, &mut x88, x1, 0xa7cc008f);
3716 let mut x89: u32 = 0;
3717 let mut x90: u32 = 0;
3718 fq_mulx_u32(&mut x89, &mut x90, x1, 0xe5dc8593);
3719 let mut x91: u32 = 0;
3720 let mut x92: u32 = 0;
3721 fq_mulx_u32(&mut x91, &mut x92, x1, 0xcc2c27b5);
3722 let mut x93: u32 = 0;
3723 let mut x94: u32 = 0;
3724 fq_mulx_u32(&mut x93, &mut x94, x1, 0x8860591f);
3725 let mut x95: u32 = 0;
3726 let mut x96: u32 = 0;
3727 fq_mulx_u32(&mut x95, &mut x96, x1, 0x25d577ba);
3728 let mut x97: u32 = 0;
3729 let mut x98: u32 = 0;
3730 fq_mulx_u32(&mut x97, &mut x98, x1, 0xb861857b);
3731 let mut x99: u32 = 0;
3732 let mut x100: FqU1 = 0;
3733 fq_addcarryx_u32(&mut x99, &mut x100, 0x0, x98, x95);
3734 let mut x101: u32 = 0;
3735 let mut x102: FqU1 = 0;
3736 fq_addcarryx_u32(&mut x101, &mut x102, x100, x96, x93);
3737 let mut x103: u32 = 0;
3738 let mut x104: FqU1 = 0;
3739 fq_addcarryx_u32(&mut x103, &mut x104, x102, x94, x91);
3740 let mut x105: u32 = 0;
3741 let mut x106: FqU1 = 0;
3742 fq_addcarryx_u32(&mut x105, &mut x106, x104, x92, x89);
3743 let mut x107: u32 = 0;
3744 let mut x108: FqU1 = 0;
3745 fq_addcarryx_u32(&mut x107, &mut x108, x106, x90, x87);
3746 let mut x109: u32 = 0;
3747 let mut x110: FqU1 = 0;
3748 fq_addcarryx_u32(&mut x109, &mut x110, x108, x88, x85);
3749 let mut x111: u32 = 0;
3750 let mut x112: FqU1 = 0;
3751 fq_addcarryx_u32(&mut x111, &mut x112, x110, x86, x83);
3752 let mut x113: u32 = 0;
3753 let mut x114: FqU1 = 0;
3754 fq_addcarryx_u32(&mut x113, &mut x114, 0x0, x69, x97);
3755 let mut x115: u32 = 0;
3756 let mut x116: FqU1 = 0;
3757 fq_addcarryx_u32(&mut x115, &mut x116, x114, x71, x99);
3758 let mut x117: u32 = 0;
3759 let mut x118: FqU1 = 0;
3760 fq_addcarryx_u32(&mut x117, &mut x118, x116, x73, x101);
3761 let mut x119: u32 = 0;
3762 let mut x120: FqU1 = 0;
3763 fq_addcarryx_u32(&mut x119, &mut x120, x118, x75, x103);
3764 let mut x121: u32 = 0;
3765 let mut x122: FqU1 = 0;
3766 fq_addcarryx_u32(&mut x121, &mut x122, x120, x77, x105);
3767 let mut x123: u32 = 0;
3768 let mut x124: FqU1 = 0;
3769 fq_addcarryx_u32(&mut x123, &mut x124, x122, x79, x107);
3770 let mut x125: u32 = 0;
3771 let mut x126: FqU1 = 0;
3772 fq_addcarryx_u32(&mut x125, &mut x126, x124, x81, x109);
3773 let mut x127: u32 = 0;
3774 let mut x128: FqU1 = 0;
3775 fq_addcarryx_u32(
3776 &mut x127,
3777 &mut x128,
3778 x126,
3779 (((x82 as u32) + ((x38 as u32) + x10)) + ((x66 as u32) + x42)),
3780 x111,
3781 );
3782 let mut x129: u32 = 0;
3783 let mut x130: u32 = 0;
3784 fq_mulx_u32(&mut x129, &mut x130, x113, 0xffffffff);
3785 let mut x131: u32 = 0;
3786 let mut x132: u32 = 0;
3787 fq_mulx_u32(&mut x131, &mut x132, x129, 0x12ab655e);
3788 let mut x133: u32 = 0;
3789 let mut x134: u32 = 0;
3790 fq_mulx_u32(&mut x133, &mut x134, x129, 0x9a2ca556);
3791 let mut x135: u32 = 0;
3792 let mut x136: u32 = 0;
3793 fq_mulx_u32(&mut x135, &mut x136, x129, 0x60b44d1e);
3794 let mut x137: u32 = 0;
3795 let mut x138: u32 = 0;
3796 fq_mulx_u32(&mut x137, &mut x138, x129, 0x5c37b001);
3797 let mut x139: u32 = 0;
3798 let mut x140: u32 = 0;
3799 fq_mulx_u32(&mut x139, &mut x140, x129, 0x59aa76fe);
3800 let mut x141: u32 = 0;
3801 let mut x142: u32 = 0;
3802 fq_mulx_u32(&mut x141, &mut x142, x129, 0xd0000001);
3803 let mut x143: u32 = 0;
3804 let mut x144: u32 = 0;
3805 fq_mulx_u32(&mut x143, &mut x144, x129, 0xa118000);
3806 let mut x145: u32 = 0;
3807 let mut x146: FqU1 = 0;
3808 fq_addcarryx_u32(&mut x145, &mut x146, 0x0, x144, x141);
3809 let mut x147: u32 = 0;
3810 let mut x148: FqU1 = 0;
3811 fq_addcarryx_u32(&mut x147, &mut x148, x146, x142, x139);
3812 let mut x149: u32 = 0;
3813 let mut x150: FqU1 = 0;
3814 fq_addcarryx_u32(&mut x149, &mut x150, x148, x140, x137);
3815 let mut x151: u32 = 0;
3816 let mut x152: FqU1 = 0;
3817 fq_addcarryx_u32(&mut x151, &mut x152, x150, x138, x135);
3818 let mut x153: u32 = 0;
3819 let mut x154: FqU1 = 0;
3820 fq_addcarryx_u32(&mut x153, &mut x154, x152, x136, x133);
3821 let mut x155: u32 = 0;
3822 let mut x156: FqU1 = 0;
3823 fq_addcarryx_u32(&mut x155, &mut x156, x154, x134, x131);
3824 let mut x157: u32 = 0;
3825 let mut x158: FqU1 = 0;
3826 fq_addcarryx_u32(&mut x157, &mut x158, 0x0, x113, x129);
3827 let mut x159: u32 = 0;
3828 let mut x160: FqU1 = 0;
3829 fq_addcarryx_u32(&mut x159, &mut x160, x158, x115, x143);
3830 let mut x161: u32 = 0;
3831 let mut x162: FqU1 = 0;
3832 fq_addcarryx_u32(&mut x161, &mut x162, x160, x117, x145);
3833 let mut x163: u32 = 0;
3834 let mut x164: FqU1 = 0;
3835 fq_addcarryx_u32(&mut x163, &mut x164, x162, x119, x147);
3836 let mut x165: u32 = 0;
3837 let mut x166: FqU1 = 0;
3838 fq_addcarryx_u32(&mut x165, &mut x166, x164, x121, x149);
3839 let mut x167: u32 = 0;
3840 let mut x168: FqU1 = 0;
3841 fq_addcarryx_u32(&mut x167, &mut x168, x166, x123, x151);
3842 let mut x169: u32 = 0;
3843 let mut x170: FqU1 = 0;
3844 fq_addcarryx_u32(&mut x169, &mut x170, x168, x125, x153);
3845 let mut x171: u32 = 0;
3846 let mut x172: FqU1 = 0;
3847 fq_addcarryx_u32(&mut x171, &mut x172, x170, x127, x155);
3848 let mut x173: u32 = 0;
3849 let mut x174: u32 = 0;
3850 fq_mulx_u32(&mut x173, &mut x174, x2, 0x11fdae7);
3851 let mut x175: u32 = 0;
3852 let mut x176: u32 = 0;
3853 fq_mulx_u32(&mut x175, &mut x176, x2, 0xeff1c939);
3854 let mut x177: u32 = 0;
3855 let mut x178: u32 = 0;
3856 fq_mulx_u32(&mut x177, &mut x178, x2, 0xa7cc008f);
3857 let mut x179: u32 = 0;
3858 let mut x180: u32 = 0;
3859 fq_mulx_u32(&mut x179, &mut x180, x2, 0xe5dc8593);
3860 let mut x181: u32 = 0;
3861 let mut x182: u32 = 0;
3862 fq_mulx_u32(&mut x181, &mut x182, x2, 0xcc2c27b5);
3863 let mut x183: u32 = 0;
3864 let mut x184: u32 = 0;
3865 fq_mulx_u32(&mut x183, &mut x184, x2, 0x8860591f);
3866 let mut x185: u32 = 0;
3867 let mut x186: u32 = 0;
3868 fq_mulx_u32(&mut x185, &mut x186, x2, 0x25d577ba);
3869 let mut x187: u32 = 0;
3870 let mut x188: u32 = 0;
3871 fq_mulx_u32(&mut x187, &mut x188, x2, 0xb861857b);
3872 let mut x189: u32 = 0;
3873 let mut x190: FqU1 = 0;
3874 fq_addcarryx_u32(&mut x189, &mut x190, 0x0, x188, x185);
3875 let mut x191: u32 = 0;
3876 let mut x192: FqU1 = 0;
3877 fq_addcarryx_u32(&mut x191, &mut x192, x190, x186, x183);
3878 let mut x193: u32 = 0;
3879 let mut x194: FqU1 = 0;
3880 fq_addcarryx_u32(&mut x193, &mut x194, x192, x184, x181);
3881 let mut x195: u32 = 0;
3882 let mut x196: FqU1 = 0;
3883 fq_addcarryx_u32(&mut x195, &mut x196, x194, x182, x179);
3884 let mut x197: u32 = 0;
3885 let mut x198: FqU1 = 0;
3886 fq_addcarryx_u32(&mut x197, &mut x198, x196, x180, x177);
3887 let mut x199: u32 = 0;
3888 let mut x200: FqU1 = 0;
3889 fq_addcarryx_u32(&mut x199, &mut x200, x198, x178, x175);
3890 let mut x201: u32 = 0;
3891 let mut x202: FqU1 = 0;
3892 fq_addcarryx_u32(&mut x201, &mut x202, x200, x176, x173);
3893 let mut x203: u32 = 0;
3894 let mut x204: FqU1 = 0;
3895 fq_addcarryx_u32(&mut x203, &mut x204, 0x0, x159, x187);
3896 let mut x205: u32 = 0;
3897 let mut x206: FqU1 = 0;
3898 fq_addcarryx_u32(&mut x205, &mut x206, x204, x161, x189);
3899 let mut x207: u32 = 0;
3900 let mut x208: FqU1 = 0;
3901 fq_addcarryx_u32(&mut x207, &mut x208, x206, x163, x191);
3902 let mut x209: u32 = 0;
3903 let mut x210: FqU1 = 0;
3904 fq_addcarryx_u32(&mut x209, &mut x210, x208, x165, x193);
3905 let mut x211: u32 = 0;
3906 let mut x212: FqU1 = 0;
3907 fq_addcarryx_u32(&mut x211, &mut x212, x210, x167, x195);
3908 let mut x213: u32 = 0;
3909 let mut x214: FqU1 = 0;
3910 fq_addcarryx_u32(&mut x213, &mut x214, x212, x169, x197);
3911 let mut x215: u32 = 0;
3912 let mut x216: FqU1 = 0;
3913 fq_addcarryx_u32(&mut x215, &mut x216, x214, x171, x199);
3914 let mut x217: u32 = 0;
3915 let mut x218: FqU1 = 0;
3916 fq_addcarryx_u32(
3917 &mut x217,
3918 &mut x218,
3919 x216,
3920 (((x172 as u32) + ((x128 as u32) + ((x112 as u32) + x84))) + ((x156 as u32) + x132)),
3921 x201,
3922 );
3923 let mut x219: u32 = 0;
3924 let mut x220: u32 = 0;
3925 fq_mulx_u32(&mut x219, &mut x220, x203, 0xffffffff);
3926 let mut x221: u32 = 0;
3927 let mut x222: u32 = 0;
3928 fq_mulx_u32(&mut x221, &mut x222, x219, 0x12ab655e);
3929 let mut x223: u32 = 0;
3930 let mut x224: u32 = 0;
3931 fq_mulx_u32(&mut x223, &mut x224, x219, 0x9a2ca556);
3932 let mut x225: u32 = 0;
3933 let mut x226: u32 = 0;
3934 fq_mulx_u32(&mut x225, &mut x226, x219, 0x60b44d1e);
3935 let mut x227: u32 = 0;
3936 let mut x228: u32 = 0;
3937 fq_mulx_u32(&mut x227, &mut x228, x219, 0x5c37b001);
3938 let mut x229: u32 = 0;
3939 let mut x230: u32 = 0;
3940 fq_mulx_u32(&mut x229, &mut x230, x219, 0x59aa76fe);
3941 let mut x231: u32 = 0;
3942 let mut x232: u32 = 0;
3943 fq_mulx_u32(&mut x231, &mut x232, x219, 0xd0000001);
3944 let mut x233: u32 = 0;
3945 let mut x234: u32 = 0;
3946 fq_mulx_u32(&mut x233, &mut x234, x219, 0xa118000);
3947 let mut x235: u32 = 0;
3948 let mut x236: FqU1 = 0;
3949 fq_addcarryx_u32(&mut x235, &mut x236, 0x0, x234, x231);
3950 let mut x237: u32 = 0;
3951 let mut x238: FqU1 = 0;
3952 fq_addcarryx_u32(&mut x237, &mut x238, x236, x232, x229);
3953 let mut x239: u32 = 0;
3954 let mut x240: FqU1 = 0;
3955 fq_addcarryx_u32(&mut x239, &mut x240, x238, x230, x227);
3956 let mut x241: u32 = 0;
3957 let mut x242: FqU1 = 0;
3958 fq_addcarryx_u32(&mut x241, &mut x242, x240, x228, x225);
3959 let mut x243: u32 = 0;
3960 let mut x244: FqU1 = 0;
3961 fq_addcarryx_u32(&mut x243, &mut x244, x242, x226, x223);
3962 let mut x245: u32 = 0;
3963 let mut x246: FqU1 = 0;
3964 fq_addcarryx_u32(&mut x245, &mut x246, x244, x224, x221);
3965 let mut x247: u32 = 0;
3966 let mut x248: FqU1 = 0;
3967 fq_addcarryx_u32(&mut x247, &mut x248, 0x0, x203, x219);
3968 let mut x249: u32 = 0;
3969 let mut x250: FqU1 = 0;
3970 fq_addcarryx_u32(&mut x249, &mut x250, x248, x205, x233);
3971 let mut x251: u32 = 0;
3972 let mut x252: FqU1 = 0;
3973 fq_addcarryx_u32(&mut x251, &mut x252, x250, x207, x235);
3974 let mut x253: u32 = 0;
3975 let mut x254: FqU1 = 0;
3976 fq_addcarryx_u32(&mut x253, &mut x254, x252, x209, x237);
3977 let mut x255: u32 = 0;
3978 let mut x256: FqU1 = 0;
3979 fq_addcarryx_u32(&mut x255, &mut x256, x254, x211, x239);
3980 let mut x257: u32 = 0;
3981 let mut x258: FqU1 = 0;
3982 fq_addcarryx_u32(&mut x257, &mut x258, x256, x213, x241);
3983 let mut x259: u32 = 0;
3984 let mut x260: FqU1 = 0;
3985 fq_addcarryx_u32(&mut x259, &mut x260, x258, x215, x243);
3986 let mut x261: u32 = 0;
3987 let mut x262: FqU1 = 0;
3988 fq_addcarryx_u32(&mut x261, &mut x262, x260, x217, x245);
3989 let mut x263: u32 = 0;
3990 let mut x264: u32 = 0;
3991 fq_mulx_u32(&mut x263, &mut x264, x3, 0x11fdae7);
3992 let mut x265: u32 = 0;
3993 let mut x266: u32 = 0;
3994 fq_mulx_u32(&mut x265, &mut x266, x3, 0xeff1c939);
3995 let mut x267: u32 = 0;
3996 let mut x268: u32 = 0;
3997 fq_mulx_u32(&mut x267, &mut x268, x3, 0xa7cc008f);
3998 let mut x269: u32 = 0;
3999 let mut x270: u32 = 0;
4000 fq_mulx_u32(&mut x269, &mut x270, x3, 0xe5dc8593);
4001 let mut x271: u32 = 0;
4002 let mut x272: u32 = 0;
4003 fq_mulx_u32(&mut x271, &mut x272, x3, 0xcc2c27b5);
4004 let mut x273: u32 = 0;
4005 let mut x274: u32 = 0;
4006 fq_mulx_u32(&mut x273, &mut x274, x3, 0x8860591f);
4007 let mut x275: u32 = 0;
4008 let mut x276: u32 = 0;
4009 fq_mulx_u32(&mut x275, &mut x276, x3, 0x25d577ba);
4010 let mut x277: u32 = 0;
4011 let mut x278: u32 = 0;
4012 fq_mulx_u32(&mut x277, &mut x278, x3, 0xb861857b);
4013 let mut x279: u32 = 0;
4014 let mut x280: FqU1 = 0;
4015 fq_addcarryx_u32(&mut x279, &mut x280, 0x0, x278, x275);
4016 let mut x281: u32 = 0;
4017 let mut x282: FqU1 = 0;
4018 fq_addcarryx_u32(&mut x281, &mut x282, x280, x276, x273);
4019 let mut x283: u32 = 0;
4020 let mut x284: FqU1 = 0;
4021 fq_addcarryx_u32(&mut x283, &mut x284, x282, x274, x271);
4022 let mut x285: u32 = 0;
4023 let mut x286: FqU1 = 0;
4024 fq_addcarryx_u32(&mut x285, &mut x286, x284, x272, x269);
4025 let mut x287: u32 = 0;
4026 let mut x288: FqU1 = 0;
4027 fq_addcarryx_u32(&mut x287, &mut x288, x286, x270, x267);
4028 let mut x289: u32 = 0;
4029 let mut x290: FqU1 = 0;
4030 fq_addcarryx_u32(&mut x289, &mut x290, x288, x268, x265);
4031 let mut x291: u32 = 0;
4032 let mut x292: FqU1 = 0;
4033 fq_addcarryx_u32(&mut x291, &mut x292, x290, x266, x263);
4034 let mut x293: u32 = 0;
4035 let mut x294: FqU1 = 0;
4036 fq_addcarryx_u32(&mut x293, &mut x294, 0x0, x249, x277);
4037 let mut x295: u32 = 0;
4038 let mut x296: FqU1 = 0;
4039 fq_addcarryx_u32(&mut x295, &mut x296, x294, x251, x279);
4040 let mut x297: u32 = 0;
4041 let mut x298: FqU1 = 0;
4042 fq_addcarryx_u32(&mut x297, &mut x298, x296, x253, x281);
4043 let mut x299: u32 = 0;
4044 let mut x300: FqU1 = 0;
4045 fq_addcarryx_u32(&mut x299, &mut x300, x298, x255, x283);
4046 let mut x301: u32 = 0;
4047 let mut x302: FqU1 = 0;
4048 fq_addcarryx_u32(&mut x301, &mut x302, x300, x257, x285);
4049 let mut x303: u32 = 0;
4050 let mut x304: FqU1 = 0;
4051 fq_addcarryx_u32(&mut x303, &mut x304, x302, x259, x287);
4052 let mut x305: u32 = 0;
4053 let mut x306: FqU1 = 0;
4054 fq_addcarryx_u32(&mut x305, &mut x306, x304, x261, x289);
4055 let mut x307: u32 = 0;
4056 let mut x308: FqU1 = 0;
4057 fq_addcarryx_u32(
4058 &mut x307,
4059 &mut x308,
4060 x306,
4061 (((x262 as u32) + ((x218 as u32) + ((x202 as u32) + x174))) + ((x246 as u32) + x222)),
4062 x291,
4063 );
4064 let mut x309: u32 = 0;
4065 let mut x310: u32 = 0;
4066 fq_mulx_u32(&mut x309, &mut x310, x293, 0xffffffff);
4067 let mut x311: u32 = 0;
4068 let mut x312: u32 = 0;
4069 fq_mulx_u32(&mut x311, &mut x312, x309, 0x12ab655e);
4070 let mut x313: u32 = 0;
4071 let mut x314: u32 = 0;
4072 fq_mulx_u32(&mut x313, &mut x314, x309, 0x9a2ca556);
4073 let mut x315: u32 = 0;
4074 let mut x316: u32 = 0;
4075 fq_mulx_u32(&mut x315, &mut x316, x309, 0x60b44d1e);
4076 let mut x317: u32 = 0;
4077 let mut x318: u32 = 0;
4078 fq_mulx_u32(&mut x317, &mut x318, x309, 0x5c37b001);
4079 let mut x319: u32 = 0;
4080 let mut x320: u32 = 0;
4081 fq_mulx_u32(&mut x319, &mut x320, x309, 0x59aa76fe);
4082 let mut x321: u32 = 0;
4083 let mut x322: u32 = 0;
4084 fq_mulx_u32(&mut x321, &mut x322, x309, 0xd0000001);
4085 let mut x323: u32 = 0;
4086 let mut x324: u32 = 0;
4087 fq_mulx_u32(&mut x323, &mut x324, x309, 0xa118000);
4088 let mut x325: u32 = 0;
4089 let mut x326: FqU1 = 0;
4090 fq_addcarryx_u32(&mut x325, &mut x326, 0x0, x324, x321);
4091 let mut x327: u32 = 0;
4092 let mut x328: FqU1 = 0;
4093 fq_addcarryx_u32(&mut x327, &mut x328, x326, x322, x319);
4094 let mut x329: u32 = 0;
4095 let mut x330: FqU1 = 0;
4096 fq_addcarryx_u32(&mut x329, &mut x330, x328, x320, x317);
4097 let mut x331: u32 = 0;
4098 let mut x332: FqU1 = 0;
4099 fq_addcarryx_u32(&mut x331, &mut x332, x330, x318, x315);
4100 let mut x333: u32 = 0;
4101 let mut x334: FqU1 = 0;
4102 fq_addcarryx_u32(&mut x333, &mut x334, x332, x316, x313);
4103 let mut x335: u32 = 0;
4104 let mut x336: FqU1 = 0;
4105 fq_addcarryx_u32(&mut x335, &mut x336, x334, x314, x311);
4106 let mut x337: u32 = 0;
4107 let mut x338: FqU1 = 0;
4108 fq_addcarryx_u32(&mut x337, &mut x338, 0x0, x293, x309);
4109 let mut x339: u32 = 0;
4110 let mut x340: FqU1 = 0;
4111 fq_addcarryx_u32(&mut x339, &mut x340, x338, x295, x323);
4112 let mut x341: u32 = 0;
4113 let mut x342: FqU1 = 0;
4114 fq_addcarryx_u32(&mut x341, &mut x342, x340, x297, x325);
4115 let mut x343: u32 = 0;
4116 let mut x344: FqU1 = 0;
4117 fq_addcarryx_u32(&mut x343, &mut x344, x342, x299, x327);
4118 let mut x345: u32 = 0;
4119 let mut x346: FqU1 = 0;
4120 fq_addcarryx_u32(&mut x345, &mut x346, x344, x301, x329);
4121 let mut x347: u32 = 0;
4122 let mut x348: FqU1 = 0;
4123 fq_addcarryx_u32(&mut x347, &mut x348, x346, x303, x331);
4124 let mut x349: u32 = 0;
4125 let mut x350: FqU1 = 0;
4126 fq_addcarryx_u32(&mut x349, &mut x350, x348, x305, x333);
4127 let mut x351: u32 = 0;
4128 let mut x352: FqU1 = 0;
4129 fq_addcarryx_u32(&mut x351, &mut x352, x350, x307, x335);
4130 let mut x353: u32 = 0;
4131 let mut x354: u32 = 0;
4132 fq_mulx_u32(&mut x353, &mut x354, x4, 0x11fdae7);
4133 let mut x355: u32 = 0;
4134 let mut x356: u32 = 0;
4135 fq_mulx_u32(&mut x355, &mut x356, x4, 0xeff1c939);
4136 let mut x357: u32 = 0;
4137 let mut x358: u32 = 0;
4138 fq_mulx_u32(&mut x357, &mut x358, x4, 0xa7cc008f);
4139 let mut x359: u32 = 0;
4140 let mut x360: u32 = 0;
4141 fq_mulx_u32(&mut x359, &mut x360, x4, 0xe5dc8593);
4142 let mut x361: u32 = 0;
4143 let mut x362: u32 = 0;
4144 fq_mulx_u32(&mut x361, &mut x362, x4, 0xcc2c27b5);
4145 let mut x363: u32 = 0;
4146 let mut x364: u32 = 0;
4147 fq_mulx_u32(&mut x363, &mut x364, x4, 0x8860591f);
4148 let mut x365: u32 = 0;
4149 let mut x366: u32 = 0;
4150 fq_mulx_u32(&mut x365, &mut x366, x4, 0x25d577ba);
4151 let mut x367: u32 = 0;
4152 let mut x368: u32 = 0;
4153 fq_mulx_u32(&mut x367, &mut x368, x4, 0xb861857b);
4154 let mut x369: u32 = 0;
4155 let mut x370: FqU1 = 0;
4156 fq_addcarryx_u32(&mut x369, &mut x370, 0x0, x368, x365);
4157 let mut x371: u32 = 0;
4158 let mut x372: FqU1 = 0;
4159 fq_addcarryx_u32(&mut x371, &mut x372, x370, x366, x363);
4160 let mut x373: u32 = 0;
4161 let mut x374: FqU1 = 0;
4162 fq_addcarryx_u32(&mut x373, &mut x374, x372, x364, x361);
4163 let mut x375: u32 = 0;
4164 let mut x376: FqU1 = 0;
4165 fq_addcarryx_u32(&mut x375, &mut x376, x374, x362, x359);
4166 let mut x377: u32 = 0;
4167 let mut x378: FqU1 = 0;
4168 fq_addcarryx_u32(&mut x377, &mut x378, x376, x360, x357);
4169 let mut x379: u32 = 0;
4170 let mut x380: FqU1 = 0;
4171 fq_addcarryx_u32(&mut x379, &mut x380, x378, x358, x355);
4172 let mut x381: u32 = 0;
4173 let mut x382: FqU1 = 0;
4174 fq_addcarryx_u32(&mut x381, &mut x382, x380, x356, x353);
4175 let mut x383: u32 = 0;
4176 let mut x384: FqU1 = 0;
4177 fq_addcarryx_u32(&mut x383, &mut x384, 0x0, x339, x367);
4178 let mut x385: u32 = 0;
4179 let mut x386: FqU1 = 0;
4180 fq_addcarryx_u32(&mut x385, &mut x386, x384, x341, x369);
4181 let mut x387: u32 = 0;
4182 let mut x388: FqU1 = 0;
4183 fq_addcarryx_u32(&mut x387, &mut x388, x386, x343, x371);
4184 let mut x389: u32 = 0;
4185 let mut x390: FqU1 = 0;
4186 fq_addcarryx_u32(&mut x389, &mut x390, x388, x345, x373);
4187 let mut x391: u32 = 0;
4188 let mut x392: FqU1 = 0;
4189 fq_addcarryx_u32(&mut x391, &mut x392, x390, x347, x375);
4190 let mut x393: u32 = 0;
4191 let mut x394: FqU1 = 0;
4192 fq_addcarryx_u32(&mut x393, &mut x394, x392, x349, x377);
4193 let mut x395: u32 = 0;
4194 let mut x396: FqU1 = 0;
4195 fq_addcarryx_u32(&mut x395, &mut x396, x394, x351, x379);
4196 let mut x397: u32 = 0;
4197 let mut x398: FqU1 = 0;
4198 fq_addcarryx_u32(
4199 &mut x397,
4200 &mut x398,
4201 x396,
4202 (((x352 as u32) + ((x308 as u32) + ((x292 as u32) + x264))) + ((x336 as u32) + x312)),
4203 x381,
4204 );
4205 let mut x399: u32 = 0;
4206 let mut x400: u32 = 0;
4207 fq_mulx_u32(&mut x399, &mut x400, x383, 0xffffffff);
4208 let mut x401: u32 = 0;
4209 let mut x402: u32 = 0;
4210 fq_mulx_u32(&mut x401, &mut x402, x399, 0x12ab655e);
4211 let mut x403: u32 = 0;
4212 let mut x404: u32 = 0;
4213 fq_mulx_u32(&mut x403, &mut x404, x399, 0x9a2ca556);
4214 let mut x405: u32 = 0;
4215 let mut x406: u32 = 0;
4216 fq_mulx_u32(&mut x405, &mut x406, x399, 0x60b44d1e);
4217 let mut x407: u32 = 0;
4218 let mut x408: u32 = 0;
4219 fq_mulx_u32(&mut x407, &mut x408, x399, 0x5c37b001);
4220 let mut x409: u32 = 0;
4221 let mut x410: u32 = 0;
4222 fq_mulx_u32(&mut x409, &mut x410, x399, 0x59aa76fe);
4223 let mut x411: u32 = 0;
4224 let mut x412: u32 = 0;
4225 fq_mulx_u32(&mut x411, &mut x412, x399, 0xd0000001);
4226 let mut x413: u32 = 0;
4227 let mut x414: u32 = 0;
4228 fq_mulx_u32(&mut x413, &mut x414, x399, 0xa118000);
4229 let mut x415: u32 = 0;
4230 let mut x416: FqU1 = 0;
4231 fq_addcarryx_u32(&mut x415, &mut x416, 0x0, x414, x411);
4232 let mut x417: u32 = 0;
4233 let mut x418: FqU1 = 0;
4234 fq_addcarryx_u32(&mut x417, &mut x418, x416, x412, x409);
4235 let mut x419: u32 = 0;
4236 let mut x420: FqU1 = 0;
4237 fq_addcarryx_u32(&mut x419, &mut x420, x418, x410, x407);
4238 let mut x421: u32 = 0;
4239 let mut x422: FqU1 = 0;
4240 fq_addcarryx_u32(&mut x421, &mut x422, x420, x408, x405);
4241 let mut x423: u32 = 0;
4242 let mut x424: FqU1 = 0;
4243 fq_addcarryx_u32(&mut x423, &mut x424, x422, x406, x403);
4244 let mut x425: u32 = 0;
4245 let mut x426: FqU1 = 0;
4246 fq_addcarryx_u32(&mut x425, &mut x426, x424, x404, x401);
4247 let mut x427: u32 = 0;
4248 let mut x428: FqU1 = 0;
4249 fq_addcarryx_u32(&mut x427, &mut x428, 0x0, x383, x399);
4250 let mut x429: u32 = 0;
4251 let mut x430: FqU1 = 0;
4252 fq_addcarryx_u32(&mut x429, &mut x430, x428, x385, x413);
4253 let mut x431: u32 = 0;
4254 let mut x432: FqU1 = 0;
4255 fq_addcarryx_u32(&mut x431, &mut x432, x430, x387, x415);
4256 let mut x433: u32 = 0;
4257 let mut x434: FqU1 = 0;
4258 fq_addcarryx_u32(&mut x433, &mut x434, x432, x389, x417);
4259 let mut x435: u32 = 0;
4260 let mut x436: FqU1 = 0;
4261 fq_addcarryx_u32(&mut x435, &mut x436, x434, x391, x419);
4262 let mut x437: u32 = 0;
4263 let mut x438: FqU1 = 0;
4264 fq_addcarryx_u32(&mut x437, &mut x438, x436, x393, x421);
4265 let mut x439: u32 = 0;
4266 let mut x440: FqU1 = 0;
4267 fq_addcarryx_u32(&mut x439, &mut x440, x438, x395, x423);
4268 let mut x441: u32 = 0;
4269 let mut x442: FqU1 = 0;
4270 fq_addcarryx_u32(&mut x441, &mut x442, x440, x397, x425);
4271 let mut x443: u32 = 0;
4272 let mut x444: u32 = 0;
4273 fq_mulx_u32(&mut x443, &mut x444, x5, 0x11fdae7);
4274 let mut x445: u32 = 0;
4275 let mut x446: u32 = 0;
4276 fq_mulx_u32(&mut x445, &mut x446, x5, 0xeff1c939);
4277 let mut x447: u32 = 0;
4278 let mut x448: u32 = 0;
4279 fq_mulx_u32(&mut x447, &mut x448, x5, 0xa7cc008f);
4280 let mut x449: u32 = 0;
4281 let mut x450: u32 = 0;
4282 fq_mulx_u32(&mut x449, &mut x450, x5, 0xe5dc8593);
4283 let mut x451: u32 = 0;
4284 let mut x452: u32 = 0;
4285 fq_mulx_u32(&mut x451, &mut x452, x5, 0xcc2c27b5);
4286 let mut x453: u32 = 0;
4287 let mut x454: u32 = 0;
4288 fq_mulx_u32(&mut x453, &mut x454, x5, 0x8860591f);
4289 let mut x455: u32 = 0;
4290 let mut x456: u32 = 0;
4291 fq_mulx_u32(&mut x455, &mut x456, x5, 0x25d577ba);
4292 let mut x457: u32 = 0;
4293 let mut x458: u32 = 0;
4294 fq_mulx_u32(&mut x457, &mut x458, x5, 0xb861857b);
4295 let mut x459: u32 = 0;
4296 let mut x460: FqU1 = 0;
4297 fq_addcarryx_u32(&mut x459, &mut x460, 0x0, x458, x455);
4298 let mut x461: u32 = 0;
4299 let mut x462: FqU1 = 0;
4300 fq_addcarryx_u32(&mut x461, &mut x462, x460, x456, x453);
4301 let mut x463: u32 = 0;
4302 let mut x464: FqU1 = 0;
4303 fq_addcarryx_u32(&mut x463, &mut x464, x462, x454, x451);
4304 let mut x465: u32 = 0;
4305 let mut x466: FqU1 = 0;
4306 fq_addcarryx_u32(&mut x465, &mut x466, x464, x452, x449);
4307 let mut x467: u32 = 0;
4308 let mut x468: FqU1 = 0;
4309 fq_addcarryx_u32(&mut x467, &mut x468, x466, x450, x447);
4310 let mut x469: u32 = 0;
4311 let mut x470: FqU1 = 0;
4312 fq_addcarryx_u32(&mut x469, &mut x470, x468, x448, x445);
4313 let mut x471: u32 = 0;
4314 let mut x472: FqU1 = 0;
4315 fq_addcarryx_u32(&mut x471, &mut x472, x470, x446, x443);
4316 let mut x473: u32 = 0;
4317 let mut x474: FqU1 = 0;
4318 fq_addcarryx_u32(&mut x473, &mut x474, 0x0, x429, x457);
4319 let mut x475: u32 = 0;
4320 let mut x476: FqU1 = 0;
4321 fq_addcarryx_u32(&mut x475, &mut x476, x474, x431, x459);
4322 let mut x477: u32 = 0;
4323 let mut x478: FqU1 = 0;
4324 fq_addcarryx_u32(&mut x477, &mut x478, x476, x433, x461);
4325 let mut x479: u32 = 0;
4326 let mut x480: FqU1 = 0;
4327 fq_addcarryx_u32(&mut x479, &mut x480, x478, x435, x463);
4328 let mut x481: u32 = 0;
4329 let mut x482: FqU1 = 0;
4330 fq_addcarryx_u32(&mut x481, &mut x482, x480, x437, x465);
4331 let mut x483: u32 = 0;
4332 let mut x484: FqU1 = 0;
4333 fq_addcarryx_u32(&mut x483, &mut x484, x482, x439, x467);
4334 let mut x485: u32 = 0;
4335 let mut x486: FqU1 = 0;
4336 fq_addcarryx_u32(&mut x485, &mut x486, x484, x441, x469);
4337 let mut x487: u32 = 0;
4338 let mut x488: FqU1 = 0;
4339 fq_addcarryx_u32(
4340 &mut x487,
4341 &mut x488,
4342 x486,
4343 (((x442 as u32) + ((x398 as u32) + ((x382 as u32) + x354))) + ((x426 as u32) + x402)),
4344 x471,
4345 );
4346 let mut x489: u32 = 0;
4347 let mut x490: u32 = 0;
4348 fq_mulx_u32(&mut x489, &mut x490, x473, 0xffffffff);
4349 let mut x491: u32 = 0;
4350 let mut x492: u32 = 0;
4351 fq_mulx_u32(&mut x491, &mut x492, x489, 0x12ab655e);
4352 let mut x493: u32 = 0;
4353 let mut x494: u32 = 0;
4354 fq_mulx_u32(&mut x493, &mut x494, x489, 0x9a2ca556);
4355 let mut x495: u32 = 0;
4356 let mut x496: u32 = 0;
4357 fq_mulx_u32(&mut x495, &mut x496, x489, 0x60b44d1e);
4358 let mut x497: u32 = 0;
4359 let mut x498: u32 = 0;
4360 fq_mulx_u32(&mut x497, &mut x498, x489, 0x5c37b001);
4361 let mut x499: u32 = 0;
4362 let mut x500: u32 = 0;
4363 fq_mulx_u32(&mut x499, &mut x500, x489, 0x59aa76fe);
4364 let mut x501: u32 = 0;
4365 let mut x502: u32 = 0;
4366 fq_mulx_u32(&mut x501, &mut x502, x489, 0xd0000001);
4367 let mut x503: u32 = 0;
4368 let mut x504: u32 = 0;
4369 fq_mulx_u32(&mut x503, &mut x504, x489, 0xa118000);
4370 let mut x505: u32 = 0;
4371 let mut x506: FqU1 = 0;
4372 fq_addcarryx_u32(&mut x505, &mut x506, 0x0, x504, x501);
4373 let mut x507: u32 = 0;
4374 let mut x508: FqU1 = 0;
4375 fq_addcarryx_u32(&mut x507, &mut x508, x506, x502, x499);
4376 let mut x509: u32 = 0;
4377 let mut x510: FqU1 = 0;
4378 fq_addcarryx_u32(&mut x509, &mut x510, x508, x500, x497);
4379 let mut x511: u32 = 0;
4380 let mut x512: FqU1 = 0;
4381 fq_addcarryx_u32(&mut x511, &mut x512, x510, x498, x495);
4382 let mut x513: u32 = 0;
4383 let mut x514: FqU1 = 0;
4384 fq_addcarryx_u32(&mut x513, &mut x514, x512, x496, x493);
4385 let mut x515: u32 = 0;
4386 let mut x516: FqU1 = 0;
4387 fq_addcarryx_u32(&mut x515, &mut x516, x514, x494, x491);
4388 let mut x517: u32 = 0;
4389 let mut x518: FqU1 = 0;
4390 fq_addcarryx_u32(&mut x517, &mut x518, 0x0, x473, x489);
4391 let mut x519: u32 = 0;
4392 let mut x520: FqU1 = 0;
4393 fq_addcarryx_u32(&mut x519, &mut x520, x518, x475, x503);
4394 let mut x521: u32 = 0;
4395 let mut x522: FqU1 = 0;
4396 fq_addcarryx_u32(&mut x521, &mut x522, x520, x477, x505);
4397 let mut x523: u32 = 0;
4398 let mut x524: FqU1 = 0;
4399 fq_addcarryx_u32(&mut x523, &mut x524, x522, x479, x507);
4400 let mut x525: u32 = 0;
4401 let mut x526: FqU1 = 0;
4402 fq_addcarryx_u32(&mut x525, &mut x526, x524, x481, x509);
4403 let mut x527: u32 = 0;
4404 let mut x528: FqU1 = 0;
4405 fq_addcarryx_u32(&mut x527, &mut x528, x526, x483, x511);
4406 let mut x529: u32 = 0;
4407 let mut x530: FqU1 = 0;
4408 fq_addcarryx_u32(&mut x529, &mut x530, x528, x485, x513);
4409 let mut x531: u32 = 0;
4410 let mut x532: FqU1 = 0;
4411 fq_addcarryx_u32(&mut x531, &mut x532, x530, x487, x515);
4412 let mut x533: u32 = 0;
4413 let mut x534: u32 = 0;
4414 fq_mulx_u32(&mut x533, &mut x534, x6, 0x11fdae7);
4415 let mut x535: u32 = 0;
4416 let mut x536: u32 = 0;
4417 fq_mulx_u32(&mut x535, &mut x536, x6, 0xeff1c939);
4418 let mut x537: u32 = 0;
4419 let mut x538: u32 = 0;
4420 fq_mulx_u32(&mut x537, &mut x538, x6, 0xa7cc008f);
4421 let mut x539: u32 = 0;
4422 let mut x540: u32 = 0;
4423 fq_mulx_u32(&mut x539, &mut x540, x6, 0xe5dc8593);
4424 let mut x541: u32 = 0;
4425 let mut x542: u32 = 0;
4426 fq_mulx_u32(&mut x541, &mut x542, x6, 0xcc2c27b5);
4427 let mut x543: u32 = 0;
4428 let mut x544: u32 = 0;
4429 fq_mulx_u32(&mut x543, &mut x544, x6, 0x8860591f);
4430 let mut x545: u32 = 0;
4431 let mut x546: u32 = 0;
4432 fq_mulx_u32(&mut x545, &mut x546, x6, 0x25d577ba);
4433 let mut x547: u32 = 0;
4434 let mut x548: u32 = 0;
4435 fq_mulx_u32(&mut x547, &mut x548, x6, 0xb861857b);
4436 let mut x549: u32 = 0;
4437 let mut x550: FqU1 = 0;
4438 fq_addcarryx_u32(&mut x549, &mut x550, 0x0, x548, x545);
4439 let mut x551: u32 = 0;
4440 let mut x552: FqU1 = 0;
4441 fq_addcarryx_u32(&mut x551, &mut x552, x550, x546, x543);
4442 let mut x553: u32 = 0;
4443 let mut x554: FqU1 = 0;
4444 fq_addcarryx_u32(&mut x553, &mut x554, x552, x544, x541);
4445 let mut x555: u32 = 0;
4446 let mut x556: FqU1 = 0;
4447 fq_addcarryx_u32(&mut x555, &mut x556, x554, x542, x539);
4448 let mut x557: u32 = 0;
4449 let mut x558: FqU1 = 0;
4450 fq_addcarryx_u32(&mut x557, &mut x558, x556, x540, x537);
4451 let mut x559: u32 = 0;
4452 let mut x560: FqU1 = 0;
4453 fq_addcarryx_u32(&mut x559, &mut x560, x558, x538, x535);
4454 let mut x561: u32 = 0;
4455 let mut x562: FqU1 = 0;
4456 fq_addcarryx_u32(&mut x561, &mut x562, x560, x536, x533);
4457 let mut x563: u32 = 0;
4458 let mut x564: FqU1 = 0;
4459 fq_addcarryx_u32(&mut x563, &mut x564, 0x0, x519, x547);
4460 let mut x565: u32 = 0;
4461 let mut x566: FqU1 = 0;
4462 fq_addcarryx_u32(&mut x565, &mut x566, x564, x521, x549);
4463 let mut x567: u32 = 0;
4464 let mut x568: FqU1 = 0;
4465 fq_addcarryx_u32(&mut x567, &mut x568, x566, x523, x551);
4466 let mut x569: u32 = 0;
4467 let mut x570: FqU1 = 0;
4468 fq_addcarryx_u32(&mut x569, &mut x570, x568, x525, x553);
4469 let mut x571: u32 = 0;
4470 let mut x572: FqU1 = 0;
4471 fq_addcarryx_u32(&mut x571, &mut x572, x570, x527, x555);
4472 let mut x573: u32 = 0;
4473 let mut x574: FqU1 = 0;
4474 fq_addcarryx_u32(&mut x573, &mut x574, x572, x529, x557);
4475 let mut x575: u32 = 0;
4476 let mut x576: FqU1 = 0;
4477 fq_addcarryx_u32(&mut x575, &mut x576, x574, x531, x559);
4478 let mut x577: u32 = 0;
4479 let mut x578: FqU1 = 0;
4480 fq_addcarryx_u32(
4481 &mut x577,
4482 &mut x578,
4483 x576,
4484 (((x532 as u32) + ((x488 as u32) + ((x472 as u32) + x444))) + ((x516 as u32) + x492)),
4485 x561,
4486 );
4487 let mut x579: u32 = 0;
4488 let mut x580: u32 = 0;
4489 fq_mulx_u32(&mut x579, &mut x580, x563, 0xffffffff);
4490 let mut x581: u32 = 0;
4491 let mut x582: u32 = 0;
4492 fq_mulx_u32(&mut x581, &mut x582, x579, 0x12ab655e);
4493 let mut x583: u32 = 0;
4494 let mut x584: u32 = 0;
4495 fq_mulx_u32(&mut x583, &mut x584, x579, 0x9a2ca556);
4496 let mut x585: u32 = 0;
4497 let mut x586: u32 = 0;
4498 fq_mulx_u32(&mut x585, &mut x586, x579, 0x60b44d1e);
4499 let mut x587: u32 = 0;
4500 let mut x588: u32 = 0;
4501 fq_mulx_u32(&mut x587, &mut x588, x579, 0x5c37b001);
4502 let mut x589: u32 = 0;
4503 let mut x590: u32 = 0;
4504 fq_mulx_u32(&mut x589, &mut x590, x579, 0x59aa76fe);
4505 let mut x591: u32 = 0;
4506 let mut x592: u32 = 0;
4507 fq_mulx_u32(&mut x591, &mut x592, x579, 0xd0000001);
4508 let mut x593: u32 = 0;
4509 let mut x594: u32 = 0;
4510 fq_mulx_u32(&mut x593, &mut x594, x579, 0xa118000);
4511 let mut x595: u32 = 0;
4512 let mut x596: FqU1 = 0;
4513 fq_addcarryx_u32(&mut x595, &mut x596, 0x0, x594, x591);
4514 let mut x597: u32 = 0;
4515 let mut x598: FqU1 = 0;
4516 fq_addcarryx_u32(&mut x597, &mut x598, x596, x592, x589);
4517 let mut x599: u32 = 0;
4518 let mut x600: FqU1 = 0;
4519 fq_addcarryx_u32(&mut x599, &mut x600, x598, x590, x587);
4520 let mut x601: u32 = 0;
4521 let mut x602: FqU1 = 0;
4522 fq_addcarryx_u32(&mut x601, &mut x602, x600, x588, x585);
4523 let mut x603: u32 = 0;
4524 let mut x604: FqU1 = 0;
4525 fq_addcarryx_u32(&mut x603, &mut x604, x602, x586, x583);
4526 let mut x605: u32 = 0;
4527 let mut x606: FqU1 = 0;
4528 fq_addcarryx_u32(&mut x605, &mut x606, x604, x584, x581);
4529 let mut x607: u32 = 0;
4530 let mut x608: FqU1 = 0;
4531 fq_addcarryx_u32(&mut x607, &mut x608, 0x0, x563, x579);
4532 let mut x609: u32 = 0;
4533 let mut x610: FqU1 = 0;
4534 fq_addcarryx_u32(&mut x609, &mut x610, x608, x565, x593);
4535 let mut x611: u32 = 0;
4536 let mut x612: FqU1 = 0;
4537 fq_addcarryx_u32(&mut x611, &mut x612, x610, x567, x595);
4538 let mut x613: u32 = 0;
4539 let mut x614: FqU1 = 0;
4540 fq_addcarryx_u32(&mut x613, &mut x614, x612, x569, x597);
4541 let mut x615: u32 = 0;
4542 let mut x616: FqU1 = 0;
4543 fq_addcarryx_u32(&mut x615, &mut x616, x614, x571, x599);
4544 let mut x617: u32 = 0;
4545 let mut x618: FqU1 = 0;
4546 fq_addcarryx_u32(&mut x617, &mut x618, x616, x573, x601);
4547 let mut x619: u32 = 0;
4548 let mut x620: FqU1 = 0;
4549 fq_addcarryx_u32(&mut x619, &mut x620, x618, x575, x603);
4550 let mut x621: u32 = 0;
4551 let mut x622: FqU1 = 0;
4552 fq_addcarryx_u32(&mut x621, &mut x622, x620, x577, x605);
4553 let mut x623: u32 = 0;
4554 let mut x624: u32 = 0;
4555 fq_mulx_u32(&mut x623, &mut x624, x7, 0x11fdae7);
4556 let mut x625: u32 = 0;
4557 let mut x626: u32 = 0;
4558 fq_mulx_u32(&mut x625, &mut x626, x7, 0xeff1c939);
4559 let mut x627: u32 = 0;
4560 let mut x628: u32 = 0;
4561 fq_mulx_u32(&mut x627, &mut x628, x7, 0xa7cc008f);
4562 let mut x629: u32 = 0;
4563 let mut x630: u32 = 0;
4564 fq_mulx_u32(&mut x629, &mut x630, x7, 0xe5dc8593);
4565 let mut x631: u32 = 0;
4566 let mut x632: u32 = 0;
4567 fq_mulx_u32(&mut x631, &mut x632, x7, 0xcc2c27b5);
4568 let mut x633: u32 = 0;
4569 let mut x634: u32 = 0;
4570 fq_mulx_u32(&mut x633, &mut x634, x7, 0x8860591f);
4571 let mut x635: u32 = 0;
4572 let mut x636: u32 = 0;
4573 fq_mulx_u32(&mut x635, &mut x636, x7, 0x25d577ba);
4574 let mut x637: u32 = 0;
4575 let mut x638: u32 = 0;
4576 fq_mulx_u32(&mut x637, &mut x638, x7, 0xb861857b);
4577 let mut x639: u32 = 0;
4578 let mut x640: FqU1 = 0;
4579 fq_addcarryx_u32(&mut x639, &mut x640, 0x0, x638, x635);
4580 let mut x641: u32 = 0;
4581 let mut x642: FqU1 = 0;
4582 fq_addcarryx_u32(&mut x641, &mut x642, x640, x636, x633);
4583 let mut x643: u32 = 0;
4584 let mut x644: FqU1 = 0;
4585 fq_addcarryx_u32(&mut x643, &mut x644, x642, x634, x631);
4586 let mut x645: u32 = 0;
4587 let mut x646: FqU1 = 0;
4588 fq_addcarryx_u32(&mut x645, &mut x646, x644, x632, x629);
4589 let mut x647: u32 = 0;
4590 let mut x648: FqU1 = 0;
4591 fq_addcarryx_u32(&mut x647, &mut x648, x646, x630, x627);
4592 let mut x649: u32 = 0;
4593 let mut x650: FqU1 = 0;
4594 fq_addcarryx_u32(&mut x649, &mut x650, x648, x628, x625);
4595 let mut x651: u32 = 0;
4596 let mut x652: FqU1 = 0;
4597 fq_addcarryx_u32(&mut x651, &mut x652, x650, x626, x623);
4598 let mut x653: u32 = 0;
4599 let mut x654: FqU1 = 0;
4600 fq_addcarryx_u32(&mut x653, &mut x654, 0x0, x609, x637);
4601 let mut x655: u32 = 0;
4602 let mut x656: FqU1 = 0;
4603 fq_addcarryx_u32(&mut x655, &mut x656, x654, x611, x639);
4604 let mut x657: u32 = 0;
4605 let mut x658: FqU1 = 0;
4606 fq_addcarryx_u32(&mut x657, &mut x658, x656, x613, x641);
4607 let mut x659: u32 = 0;
4608 let mut x660: FqU1 = 0;
4609 fq_addcarryx_u32(&mut x659, &mut x660, x658, x615, x643);
4610 let mut x661: u32 = 0;
4611 let mut x662: FqU1 = 0;
4612 fq_addcarryx_u32(&mut x661, &mut x662, x660, x617, x645);
4613 let mut x663: u32 = 0;
4614 let mut x664: FqU1 = 0;
4615 fq_addcarryx_u32(&mut x663, &mut x664, x662, x619, x647);
4616 let mut x665: u32 = 0;
4617 let mut x666: FqU1 = 0;
4618 fq_addcarryx_u32(&mut x665, &mut x666, x664, x621, x649);
4619 let mut x667: u32 = 0;
4620 let mut x668: FqU1 = 0;
4621 fq_addcarryx_u32(
4622 &mut x667,
4623 &mut x668,
4624 x666,
4625 (((x622 as u32) + ((x578 as u32) + ((x562 as u32) + x534))) + ((x606 as u32) + x582)),
4626 x651,
4627 );
4628 let mut x669: u32 = 0;
4629 let mut x670: u32 = 0;
4630 fq_mulx_u32(&mut x669, &mut x670, x653, 0xffffffff);
4631 let mut x671: u32 = 0;
4632 let mut x672: u32 = 0;
4633 fq_mulx_u32(&mut x671, &mut x672, x669, 0x12ab655e);
4634 let mut x673: u32 = 0;
4635 let mut x674: u32 = 0;
4636 fq_mulx_u32(&mut x673, &mut x674, x669, 0x9a2ca556);
4637 let mut x675: u32 = 0;
4638 let mut x676: u32 = 0;
4639 fq_mulx_u32(&mut x675, &mut x676, x669, 0x60b44d1e);
4640 let mut x677: u32 = 0;
4641 let mut x678: u32 = 0;
4642 fq_mulx_u32(&mut x677, &mut x678, x669, 0x5c37b001);
4643 let mut x679: u32 = 0;
4644 let mut x680: u32 = 0;
4645 fq_mulx_u32(&mut x679, &mut x680, x669, 0x59aa76fe);
4646 let mut x681: u32 = 0;
4647 let mut x682: u32 = 0;
4648 fq_mulx_u32(&mut x681, &mut x682, x669, 0xd0000001);
4649 let mut x683: u32 = 0;
4650 let mut x684: u32 = 0;
4651 fq_mulx_u32(&mut x683, &mut x684, x669, 0xa118000);
4652 let mut x685: u32 = 0;
4653 let mut x686: FqU1 = 0;
4654 fq_addcarryx_u32(&mut x685, &mut x686, 0x0, x684, x681);
4655 let mut x687: u32 = 0;
4656 let mut x688: FqU1 = 0;
4657 fq_addcarryx_u32(&mut x687, &mut x688, x686, x682, x679);
4658 let mut x689: u32 = 0;
4659 let mut x690: FqU1 = 0;
4660 fq_addcarryx_u32(&mut x689, &mut x690, x688, x680, x677);
4661 let mut x691: u32 = 0;
4662 let mut x692: FqU1 = 0;
4663 fq_addcarryx_u32(&mut x691, &mut x692, x690, x678, x675);
4664 let mut x693: u32 = 0;
4665 let mut x694: FqU1 = 0;
4666 fq_addcarryx_u32(&mut x693, &mut x694, x692, x676, x673);
4667 let mut x695: u32 = 0;
4668 let mut x696: FqU1 = 0;
4669 fq_addcarryx_u32(&mut x695, &mut x696, x694, x674, x671);
4670 let mut x697: u32 = 0;
4671 let mut x698: FqU1 = 0;
4672 fq_addcarryx_u32(&mut x697, &mut x698, 0x0, x653, x669);
4673 let mut x699: u32 = 0;
4674 let mut x700: FqU1 = 0;
4675 fq_addcarryx_u32(&mut x699, &mut x700, x698, x655, x683);
4676 let mut x701: u32 = 0;
4677 let mut x702: FqU1 = 0;
4678 fq_addcarryx_u32(&mut x701, &mut x702, x700, x657, x685);
4679 let mut x703: u32 = 0;
4680 let mut x704: FqU1 = 0;
4681 fq_addcarryx_u32(&mut x703, &mut x704, x702, x659, x687);
4682 let mut x705: u32 = 0;
4683 let mut x706: FqU1 = 0;
4684 fq_addcarryx_u32(&mut x705, &mut x706, x704, x661, x689);
4685 let mut x707: u32 = 0;
4686 let mut x708: FqU1 = 0;
4687 fq_addcarryx_u32(&mut x707, &mut x708, x706, x663, x691);
4688 let mut x709: u32 = 0;
4689 let mut x710: FqU1 = 0;
4690 fq_addcarryx_u32(&mut x709, &mut x710, x708, x665, x693);
4691 let mut x711: u32 = 0;
4692 let mut x712: FqU1 = 0;
4693 fq_addcarryx_u32(&mut x711, &mut x712, x710, x667, x695);
4694 let x713: u32 =
4695 (((x712 as u32) + ((x668 as u32) + ((x652 as u32) + x624))) + ((x696 as u32) + x672));
4696 let mut x714: u32 = 0;
4697 let mut x715: FqU1 = 0;
4698 fq_subborrowx_u32(&mut x714, &mut x715, 0x0, x699, (0x1 as u32));
4699 let mut x716: u32 = 0;
4700 let mut x717: FqU1 = 0;
4701 fq_subborrowx_u32(&mut x716, &mut x717, x715, x701, 0xa118000);
4702 let mut x718: u32 = 0;
4703 let mut x719: FqU1 = 0;
4704 fq_subborrowx_u32(&mut x718, &mut x719, x717, x703, 0xd0000001);
4705 let mut x720: u32 = 0;
4706 let mut x721: FqU1 = 0;
4707 fq_subborrowx_u32(&mut x720, &mut x721, x719, x705, 0x59aa76fe);
4708 let mut x722: u32 = 0;
4709 let mut x723: FqU1 = 0;
4710 fq_subborrowx_u32(&mut x722, &mut x723, x721, x707, 0x5c37b001);
4711 let mut x724: u32 = 0;
4712 let mut x725: FqU1 = 0;
4713 fq_subborrowx_u32(&mut x724, &mut x725, x723, x709, 0x60b44d1e);
4714 let mut x726: u32 = 0;
4715 let mut x727: FqU1 = 0;
4716 fq_subborrowx_u32(&mut x726, &mut x727, x725, x711, 0x9a2ca556);
4717 let mut x728: u32 = 0;
4718 let mut x729: FqU1 = 0;
4719 fq_subborrowx_u32(&mut x728, &mut x729, x727, x713, 0x12ab655e);
4720 let mut x730: u32 = 0;
4721 let mut x731: FqU1 = 0;
4722 fq_subborrowx_u32(&mut x730, &mut x731, x729, (0x0 as u32), (0x0 as u32));
4723 let mut x732: u32 = 0;
4724 fq_cmovznz_u32(&mut x732, x731, x714, x699);
4725 let mut x733: u32 = 0;
4726 fq_cmovznz_u32(&mut x733, x731, x716, x701);
4727 let mut x734: u32 = 0;
4728 fq_cmovznz_u32(&mut x734, x731, x718, x703);
4729 let mut x735: u32 = 0;
4730 fq_cmovznz_u32(&mut x735, x731, x720, x705);
4731 let mut x736: u32 = 0;
4732 fq_cmovznz_u32(&mut x736, x731, x722, x707);
4733 let mut x737: u32 = 0;
4734 fq_cmovznz_u32(&mut x737, x731, x724, x709);
4735 let mut x738: u32 = 0;
4736 fq_cmovznz_u32(&mut x738, x731, x726, x711);
4737 let mut x739: u32 = 0;
4738 fq_cmovznz_u32(&mut x739, x731, x728, x713);
4739 out1[0] = x732;
4740 out1[1] = x733;
4741 out1[2] = x734;
4742 out1[3] = x735;
4743 out1[4] = x736;
4744 out1[5] = x737;
4745 out1[6] = x738;
4746 out1[7] = x739;
4747}
4748
4749pub fn fq_nonzero(out1: &mut u32, arg1: &[u32; 8]) {
4761 let x1: u32 = ((arg1[0])
4762 | ((arg1[1])
4763 | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | ((arg1[5]) | ((arg1[6]) | (arg1[7]))))))));
4764 *out1 = x1;
4765}
4766
4767pub fn fq_selectznz(out1: &mut [u32; 8], arg1: FqU1, arg2: &[u32; 8], arg3: &[u32; 8]) {
4779 let mut x1: u32 = 0;
4780 fq_cmovznz_u32(&mut x1, arg1, (arg2[0]), (arg3[0]));
4781 let mut x2: u32 = 0;
4782 fq_cmovznz_u32(&mut x2, arg1, (arg2[1]), (arg3[1]));
4783 let mut x3: u32 = 0;
4784 fq_cmovznz_u32(&mut x3, arg1, (arg2[2]), (arg3[2]));
4785 let mut x4: u32 = 0;
4786 fq_cmovznz_u32(&mut x4, arg1, (arg2[3]), (arg3[3]));
4787 let mut x5: u32 = 0;
4788 fq_cmovznz_u32(&mut x5, arg1, (arg2[4]), (arg3[4]));
4789 let mut x6: u32 = 0;
4790 fq_cmovznz_u32(&mut x6, arg1, (arg2[5]), (arg3[5]));
4791 let mut x7: u32 = 0;
4792 fq_cmovznz_u32(&mut x7, arg1, (arg2[6]), (arg3[6]));
4793 let mut x8: u32 = 0;
4794 fq_cmovznz_u32(&mut x8, arg1, (arg2[7]), (arg3[7]));
4795 out1[0] = x1;
4796 out1[1] = x2;
4797 out1[2] = x3;
4798 out1[3] = x4;
4799 out1[4] = x5;
4800 out1[5] = x6;
4801 out1[6] = x7;
4802 out1[7] = x8;
4803}
4804
4805pub fn fq_to_bytes(out1: &mut [u8; 32], arg1: &[u32; 8]) {
4817 let x1: u32 = (arg1[7]);
4818 let x2: u32 = (arg1[6]);
4819 let x3: u32 = (arg1[5]);
4820 let x4: u32 = (arg1[4]);
4821 let x5: u32 = (arg1[3]);
4822 let x6: u32 = (arg1[2]);
4823 let x7: u32 = (arg1[1]);
4824 let x8: u32 = (arg1[0]);
4825 let x9: u8 = ((x8 & (0xff as u32)) as u8);
4826 let x10: u32 = (x8 >> 8);
4827 let x11: u8 = ((x10 & (0xff as u32)) as u8);
4828 let x12: u32 = (x10 >> 8);
4829 let x13: u8 = ((x12 & (0xff as u32)) as u8);
4830 let x14: u8 = ((x12 >> 8) as u8);
4831 let x15: u8 = ((x7 & (0xff as u32)) as u8);
4832 let x16: u32 = (x7 >> 8);
4833 let x17: u8 = ((x16 & (0xff as u32)) as u8);
4834 let x18: u32 = (x16 >> 8);
4835 let x19: u8 = ((x18 & (0xff as u32)) as u8);
4836 let x20: u8 = ((x18 >> 8) as u8);
4837 let x21: u8 = ((x6 & (0xff as u32)) as u8);
4838 let x22: u32 = (x6 >> 8);
4839 let x23: u8 = ((x22 & (0xff as u32)) as u8);
4840 let x24: u32 = (x22 >> 8);
4841 let x25: u8 = ((x24 & (0xff as u32)) as u8);
4842 let x26: u8 = ((x24 >> 8) as u8);
4843 let x27: u8 = ((x5 & (0xff as u32)) as u8);
4844 let x28: u32 = (x5 >> 8);
4845 let x29: u8 = ((x28 & (0xff as u32)) as u8);
4846 let x30: u32 = (x28 >> 8);
4847 let x31: u8 = ((x30 & (0xff as u32)) as u8);
4848 let x32: u8 = ((x30 >> 8) as u8);
4849 let x33: u8 = ((x4 & (0xff as u32)) as u8);
4850 let x34: u32 = (x4 >> 8);
4851 let x35: u8 = ((x34 & (0xff as u32)) as u8);
4852 let x36: u32 = (x34 >> 8);
4853 let x37: u8 = ((x36 & (0xff as u32)) as u8);
4854 let x38: u8 = ((x36 >> 8) as u8);
4855 let x39: u8 = ((x3 & (0xff as u32)) as u8);
4856 let x40: u32 = (x3 >> 8);
4857 let x41: u8 = ((x40 & (0xff as u32)) as u8);
4858 let x42: u32 = (x40 >> 8);
4859 let x43: u8 = ((x42 & (0xff as u32)) as u8);
4860 let x44: u8 = ((x42 >> 8) as u8);
4861 let x45: u8 = ((x2 & (0xff as u32)) as u8);
4862 let x46: u32 = (x2 >> 8);
4863 let x47: u8 = ((x46 & (0xff as u32)) as u8);
4864 let x48: u32 = (x46 >> 8);
4865 let x49: u8 = ((x48 & (0xff as u32)) as u8);
4866 let x50: u8 = ((x48 >> 8) as u8);
4867 let x51: u8 = ((x1 & (0xff as u32)) as u8);
4868 let x52: u32 = (x1 >> 8);
4869 let x53: u8 = ((x52 & (0xff as u32)) as u8);
4870 let x54: u32 = (x52 >> 8);
4871 let x55: u8 = ((x54 & (0xff as u32)) as u8);
4872 let x56: u8 = ((x54 >> 8) as u8);
4873 out1[0] = x9;
4874 out1[1] = x11;
4875 out1[2] = x13;
4876 out1[3] = x14;
4877 out1[4] = x15;
4878 out1[5] = x17;
4879 out1[6] = x19;
4880 out1[7] = x20;
4881 out1[8] = x21;
4882 out1[9] = x23;
4883 out1[10] = x25;
4884 out1[11] = x26;
4885 out1[12] = x27;
4886 out1[13] = x29;
4887 out1[14] = x31;
4888 out1[15] = x32;
4889 out1[16] = x33;
4890 out1[17] = x35;
4891 out1[18] = x37;
4892 out1[19] = x38;
4893 out1[20] = x39;
4894 out1[21] = x41;
4895 out1[22] = x43;
4896 out1[23] = x44;
4897 out1[24] = x45;
4898 out1[25] = x47;
4899 out1[26] = x49;
4900 out1[27] = x50;
4901 out1[28] = x51;
4902 out1[29] = x53;
4903 out1[30] = x55;
4904 out1[31] = x56;
4905}
4906
4907pub fn fq_from_bytes(out1: &mut [u32; 8], arg1: &[u8; 32]) {
4920 let x1: u32 = (((arg1[31]) as u32) << 24);
4921 let x2: u32 = (((arg1[30]) as u32) << 16);
4922 let x3: u32 = (((arg1[29]) as u32) << 8);
4923 let x4: u8 = (arg1[28]);
4924 let x5: u32 = (((arg1[27]) as u32) << 24);
4925 let x6: u32 = (((arg1[26]) as u32) << 16);
4926 let x7: u32 = (((arg1[25]) as u32) << 8);
4927 let x8: u8 = (arg1[24]);
4928 let x9: u32 = (((arg1[23]) as u32) << 24);
4929 let x10: u32 = (((arg1[22]) as u32) << 16);
4930 let x11: u32 = (((arg1[21]) as u32) << 8);
4931 let x12: u8 = (arg1[20]);
4932 let x13: u32 = (((arg1[19]) as u32) << 24);
4933 let x14: u32 = (((arg1[18]) as u32) << 16);
4934 let x15: u32 = (((arg1[17]) as u32) << 8);
4935 let x16: u8 = (arg1[16]);
4936 let x17: u32 = (((arg1[15]) as u32) << 24);
4937 let x18: u32 = (((arg1[14]) as u32) << 16);
4938 let x19: u32 = (((arg1[13]) as u32) << 8);
4939 let x20: u8 = (arg1[12]);
4940 let x21: u32 = (((arg1[11]) as u32) << 24);
4941 let x22: u32 = (((arg1[10]) as u32) << 16);
4942 let x23: u32 = (((arg1[9]) as u32) << 8);
4943 let x24: u8 = (arg1[8]);
4944 let x25: u32 = (((arg1[7]) as u32) << 24);
4945 let x26: u32 = (((arg1[6]) as u32) << 16);
4946 let x27: u32 = (((arg1[5]) as u32) << 8);
4947 let x28: u8 = (arg1[4]);
4948 let x29: u32 = (((arg1[3]) as u32) << 24);
4949 let x30: u32 = (((arg1[2]) as u32) << 16);
4950 let x31: u32 = (((arg1[1]) as u32) << 8);
4951 let x32: u8 = (arg1[0]);
4952 let x33: u32 = (x31 + (x32 as u32));
4953 let x34: u32 = (x30 + x33);
4954 let x35: u32 = (x29 + x34);
4955 let x36: u32 = (x27 + (x28 as u32));
4956 let x37: u32 = (x26 + x36);
4957 let x38: u32 = (x25 + x37);
4958 let x39: u32 = (x23 + (x24 as u32));
4959 let x40: u32 = (x22 + x39);
4960 let x41: u32 = (x21 + x40);
4961 let x42: u32 = (x19 + (x20 as u32));
4962 let x43: u32 = (x18 + x42);
4963 let x44: u32 = (x17 + x43);
4964 let x45: u32 = (x15 + (x16 as u32));
4965 let x46: u32 = (x14 + x45);
4966 let x47: u32 = (x13 + x46);
4967 let x48: u32 = (x11 + (x12 as u32));
4968 let x49: u32 = (x10 + x48);
4969 let x50: u32 = (x9 + x49);
4970 let x51: u32 = (x7 + (x8 as u32));
4971 let x52: u32 = (x6 + x51);
4972 let x53: u32 = (x5 + x52);
4973 let x54: u32 = (x3 + (x4 as u32));
4974 let x55: u32 = (x2 + x54);
4975 let x56: u32 = (x1 + x55);
4976 out1[0] = x35;
4977 out1[1] = x38;
4978 out1[2] = x41;
4979 out1[3] = x44;
4980 out1[4] = x47;
4981 out1[5] = x50;
4982 out1[6] = x53;
4983 out1[7] = x56;
4984}
4985
4986pub fn fq_set_one(out1: &mut FqMontgomeryDomainFieldElement) {
4993 out1[0] = 0xfffffff3;
4994 out1[1] = 0x7d1c7fff;
4995 out1[2] = 0x6ffffff2;
4996 out1[3] = 0x7257f50f;
4997 out1[4] = 0x512c0fee;
4998 out1[5] = 0x16d81575;
4999 out1[6] = 0x2bbb9a9d;
5000 out1[7] = 0xd4bda32;
5001}
5002
5003pub fn fq_msat(out1: &mut [u32; 9]) {
5012 out1[0] = (0x1 as u32);
5013 out1[1] = 0xa118000;
5014 out1[2] = 0xd0000001;
5015 out1[3] = 0x59aa76fe;
5016 out1[4] = 0x5c37b001;
5017 out1[5] = 0x60b44d1e;
5018 out1[6] = 0x9a2ca556;
5019 out1[7] = 0x12ab655e;
5020 out1[8] = (0x0 as u32);
5021}
5022
5023pub fn fq_divstep_precomp(out1: &mut [u32; 8]) {
5032 out1[0] = 0xb566adb8;
5033 out1[1] = 0x71a88a38;
5034 out1[2] = 0xd16832cf;
5035 out1[3] = 0xedffbafe;
5036 out1[4] = 0x2dacce53;
5037 out1[5] = 0x737b5ac8;
5038 out1[6] = 0x41687434;
5039 out1[7] = 0x1050943e;
5040}
5041
5042pub fn fq_divstep(
5071 out1: &mut u32,
5072 out2: &mut [u32; 9],
5073 out3: &mut [u32; 9],
5074 out4: &mut [u32; 8],
5075 out5: &mut [u32; 8],
5076 arg1: u32,
5077 arg2: &[u32; 9],
5078 arg3: &[u32; 9],
5079 arg4: &[u32; 8],
5080 arg5: &[u32; 8],
5081) {
5082 let mut x1: u32 = 0;
5083 let mut x2: FqU1 = 0;
5084 fq_addcarryx_u32(&mut x1, &mut x2, 0x0, (!arg1), (0x1 as u32));
5085 let x3: FqU1 = (((x1 >> 31) as FqU1) & (((arg3[0]) & (0x1 as u32)) as FqU1));
5086 let mut x4: u32 = 0;
5087 let mut x5: FqU1 = 0;
5088 fq_addcarryx_u32(&mut x4, &mut x5, 0x0, (!arg1), (0x1 as u32));
5089 let mut x6: u32 = 0;
5090 fq_cmovznz_u32(&mut x6, x3, arg1, x4);
5091 let mut x7: u32 = 0;
5092 fq_cmovznz_u32(&mut x7, x3, (arg2[0]), (arg3[0]));
5093 let mut x8: u32 = 0;
5094 fq_cmovznz_u32(&mut x8, x3, (arg2[1]), (arg3[1]));
5095 let mut x9: u32 = 0;
5096 fq_cmovznz_u32(&mut x9, x3, (arg2[2]), (arg3[2]));
5097 let mut x10: u32 = 0;
5098 fq_cmovznz_u32(&mut x10, x3, (arg2[3]), (arg3[3]));
5099 let mut x11: u32 = 0;
5100 fq_cmovznz_u32(&mut x11, x3, (arg2[4]), (arg3[4]));
5101 let mut x12: u32 = 0;
5102 fq_cmovznz_u32(&mut x12, x3, (arg2[5]), (arg3[5]));
5103 let mut x13: u32 = 0;
5104 fq_cmovznz_u32(&mut x13, x3, (arg2[6]), (arg3[6]));
5105 let mut x14: u32 = 0;
5106 fq_cmovznz_u32(&mut x14, x3, (arg2[7]), (arg3[7]));
5107 let mut x15: u32 = 0;
5108 fq_cmovznz_u32(&mut x15, x3, (arg2[8]), (arg3[8]));
5109 let mut x16: u32 = 0;
5110 let mut x17: FqU1 = 0;
5111 fq_addcarryx_u32(&mut x16, &mut x17, 0x0, (0x1 as u32), (!(arg2[0])));
5112 let mut x18: u32 = 0;
5113 let mut x19: FqU1 = 0;
5114 fq_addcarryx_u32(&mut x18, &mut x19, x17, (0x0 as u32), (!(arg2[1])));
5115 let mut x20: u32 = 0;
5116 let mut x21: FqU1 = 0;
5117 fq_addcarryx_u32(&mut x20, &mut x21, x19, (0x0 as u32), (!(arg2[2])));
5118 let mut x22: u32 = 0;
5119 let mut x23: FqU1 = 0;
5120 fq_addcarryx_u32(&mut x22, &mut x23, x21, (0x0 as u32), (!(arg2[3])));
5121 let mut x24: u32 = 0;
5122 let mut x25: FqU1 = 0;
5123 fq_addcarryx_u32(&mut x24, &mut x25, x23, (0x0 as u32), (!(arg2[4])));
5124 let mut x26: u32 = 0;
5125 let mut x27: FqU1 = 0;
5126 fq_addcarryx_u32(&mut x26, &mut x27, x25, (0x0 as u32), (!(arg2[5])));
5127 let mut x28: u32 = 0;
5128 let mut x29: FqU1 = 0;
5129 fq_addcarryx_u32(&mut x28, &mut x29, x27, (0x0 as u32), (!(arg2[6])));
5130 let mut x30: u32 = 0;
5131 let mut x31: FqU1 = 0;
5132 fq_addcarryx_u32(&mut x30, &mut x31, x29, (0x0 as u32), (!(arg2[7])));
5133 let mut x32: u32 = 0;
5134 let mut x33: FqU1 = 0;
5135 fq_addcarryx_u32(&mut x32, &mut x33, x31, (0x0 as u32), (!(arg2[8])));
5136 let mut x34: u32 = 0;
5137 fq_cmovznz_u32(&mut x34, x3, (arg3[0]), x16);
5138 let mut x35: u32 = 0;
5139 fq_cmovznz_u32(&mut x35, x3, (arg3[1]), x18);
5140 let mut x36: u32 = 0;
5141 fq_cmovznz_u32(&mut x36, x3, (arg3[2]), x20);
5142 let mut x37: u32 = 0;
5143 fq_cmovznz_u32(&mut x37, x3, (arg3[3]), x22);
5144 let mut x38: u32 = 0;
5145 fq_cmovznz_u32(&mut x38, x3, (arg3[4]), x24);
5146 let mut x39: u32 = 0;
5147 fq_cmovznz_u32(&mut x39, x3, (arg3[5]), x26);
5148 let mut x40: u32 = 0;
5149 fq_cmovznz_u32(&mut x40, x3, (arg3[6]), x28);
5150 let mut x41: u32 = 0;
5151 fq_cmovznz_u32(&mut x41, x3, (arg3[7]), x30);
5152 let mut x42: u32 = 0;
5153 fq_cmovznz_u32(&mut x42, x3, (arg3[8]), x32);
5154 let mut x43: u32 = 0;
5155 fq_cmovznz_u32(&mut x43, x3, (arg4[0]), (arg5[0]));
5156 let mut x44: u32 = 0;
5157 fq_cmovznz_u32(&mut x44, x3, (arg4[1]), (arg5[1]));
5158 let mut x45: u32 = 0;
5159 fq_cmovznz_u32(&mut x45, x3, (arg4[2]), (arg5[2]));
5160 let mut x46: u32 = 0;
5161 fq_cmovznz_u32(&mut x46, x3, (arg4[3]), (arg5[3]));
5162 let mut x47: u32 = 0;
5163 fq_cmovznz_u32(&mut x47, x3, (arg4[4]), (arg5[4]));
5164 let mut x48: u32 = 0;
5165 fq_cmovznz_u32(&mut x48, x3, (arg4[5]), (arg5[5]));
5166 let mut x49: u32 = 0;
5167 fq_cmovznz_u32(&mut x49, x3, (arg4[6]), (arg5[6]));
5168 let mut x50: u32 = 0;
5169 fq_cmovznz_u32(&mut x50, x3, (arg4[7]), (arg5[7]));
5170 let mut x51: u32 = 0;
5171 let mut x52: FqU1 = 0;
5172 fq_addcarryx_u32(&mut x51, &mut x52, 0x0, x43, x43);
5173 let mut x53: u32 = 0;
5174 let mut x54: FqU1 = 0;
5175 fq_addcarryx_u32(&mut x53, &mut x54, x52, x44, x44);
5176 let mut x55: u32 = 0;
5177 let mut x56: FqU1 = 0;
5178 fq_addcarryx_u32(&mut x55, &mut x56, x54, x45, x45);
5179 let mut x57: u32 = 0;
5180 let mut x58: FqU1 = 0;
5181 fq_addcarryx_u32(&mut x57, &mut x58, x56, x46, x46);
5182 let mut x59: u32 = 0;
5183 let mut x60: FqU1 = 0;
5184 fq_addcarryx_u32(&mut x59, &mut x60, x58, x47, x47);
5185 let mut x61: u32 = 0;
5186 let mut x62: FqU1 = 0;
5187 fq_addcarryx_u32(&mut x61, &mut x62, x60, x48, x48);
5188 let mut x63: u32 = 0;
5189 let mut x64: FqU1 = 0;
5190 fq_addcarryx_u32(&mut x63, &mut x64, x62, x49, x49);
5191 let mut x65: u32 = 0;
5192 let mut x66: FqU1 = 0;
5193 fq_addcarryx_u32(&mut x65, &mut x66, x64, x50, x50);
5194 let mut x67: u32 = 0;
5195 let mut x68: FqU1 = 0;
5196 fq_subborrowx_u32(&mut x67, &mut x68, 0x0, x51, (0x1 as u32));
5197 let mut x69: u32 = 0;
5198 let mut x70: FqU1 = 0;
5199 fq_subborrowx_u32(&mut x69, &mut x70, x68, x53, 0xa118000);
5200 let mut x71: u32 = 0;
5201 let mut x72: FqU1 = 0;
5202 fq_subborrowx_u32(&mut x71, &mut x72, x70, x55, 0xd0000001);
5203 let mut x73: u32 = 0;
5204 let mut x74: FqU1 = 0;
5205 fq_subborrowx_u32(&mut x73, &mut x74, x72, x57, 0x59aa76fe);
5206 let mut x75: u32 = 0;
5207 let mut x76: FqU1 = 0;
5208 fq_subborrowx_u32(&mut x75, &mut x76, x74, x59, 0x5c37b001);
5209 let mut x77: u32 = 0;
5210 let mut x78: FqU1 = 0;
5211 fq_subborrowx_u32(&mut x77, &mut x78, x76, x61, 0x60b44d1e);
5212 let mut x79: u32 = 0;
5213 let mut x80: FqU1 = 0;
5214 fq_subborrowx_u32(&mut x79, &mut x80, x78, x63, 0x9a2ca556);
5215 let mut x81: u32 = 0;
5216 let mut x82: FqU1 = 0;
5217 fq_subborrowx_u32(&mut x81, &mut x82, x80, x65, 0x12ab655e);
5218 let mut x83: u32 = 0;
5219 let mut x84: FqU1 = 0;
5220 fq_subborrowx_u32(&mut x83, &mut x84, x82, (x66 as u32), (0x0 as u32));
5221 let x85: u32 = (arg4[7]);
5222 let x86: u32 = (arg4[6]);
5223 let x87: u32 = (arg4[5]);
5224 let x88: u32 = (arg4[4]);
5225 let x89: u32 = (arg4[3]);
5226 let x90: u32 = (arg4[2]);
5227 let x91: u32 = (arg4[1]);
5228 let x92: u32 = (arg4[0]);
5229 let mut x93: u32 = 0;
5230 let mut x94: FqU1 = 0;
5231 fq_subborrowx_u32(&mut x93, &mut x94, 0x0, (0x0 as u32), x92);
5232 let mut x95: u32 = 0;
5233 let mut x96: FqU1 = 0;
5234 fq_subborrowx_u32(&mut x95, &mut x96, x94, (0x0 as u32), x91);
5235 let mut x97: u32 = 0;
5236 let mut x98: FqU1 = 0;
5237 fq_subborrowx_u32(&mut x97, &mut x98, x96, (0x0 as u32), x90);
5238 let mut x99: u32 = 0;
5239 let mut x100: FqU1 = 0;
5240 fq_subborrowx_u32(&mut x99, &mut x100, x98, (0x0 as u32), x89);
5241 let mut x101: u32 = 0;
5242 let mut x102: FqU1 = 0;
5243 fq_subborrowx_u32(&mut x101, &mut x102, x100, (0x0 as u32), x88);
5244 let mut x103: u32 = 0;
5245 let mut x104: FqU1 = 0;
5246 fq_subborrowx_u32(&mut x103, &mut x104, x102, (0x0 as u32), x87);
5247 let mut x105: u32 = 0;
5248 let mut x106: FqU1 = 0;
5249 fq_subborrowx_u32(&mut x105, &mut x106, x104, (0x0 as u32), x86);
5250 let mut x107: u32 = 0;
5251 let mut x108: FqU1 = 0;
5252 fq_subborrowx_u32(&mut x107, &mut x108, x106, (0x0 as u32), x85);
5253 let mut x109: u32 = 0;
5254 fq_cmovznz_u32(&mut x109, x108, (0x0 as u32), 0xffffffff);
5255 let mut x110: u32 = 0;
5256 let mut x111: FqU1 = 0;
5257 fq_addcarryx_u32(
5258 &mut x110,
5259 &mut x111,
5260 0x0,
5261 x93,
5262 (((x109 & (0x1 as u32)) as FqU1) as u32),
5263 );
5264 let mut x112: u32 = 0;
5265 let mut x113: FqU1 = 0;
5266 fq_addcarryx_u32(&mut x112, &mut x113, x111, x95, (x109 & 0xa118000));
5267 let mut x114: u32 = 0;
5268 let mut x115: FqU1 = 0;
5269 fq_addcarryx_u32(&mut x114, &mut x115, x113, x97, (x109 & 0xd0000001));
5270 let mut x116: u32 = 0;
5271 let mut x117: FqU1 = 0;
5272 fq_addcarryx_u32(&mut x116, &mut x117, x115, x99, (x109 & 0x59aa76fe));
5273 let mut x118: u32 = 0;
5274 let mut x119: FqU1 = 0;
5275 fq_addcarryx_u32(&mut x118, &mut x119, x117, x101, (x109 & 0x5c37b001));
5276 let mut x120: u32 = 0;
5277 let mut x121: FqU1 = 0;
5278 fq_addcarryx_u32(&mut x120, &mut x121, x119, x103, (x109 & 0x60b44d1e));
5279 let mut x122: u32 = 0;
5280 let mut x123: FqU1 = 0;
5281 fq_addcarryx_u32(&mut x122, &mut x123, x121, x105, (x109 & 0x9a2ca556));
5282 let mut x124: u32 = 0;
5283 let mut x125: FqU1 = 0;
5284 fq_addcarryx_u32(&mut x124, &mut x125, x123, x107, (x109 & 0x12ab655e));
5285 let mut x126: u32 = 0;
5286 fq_cmovznz_u32(&mut x126, x3, (arg5[0]), x110);
5287 let mut x127: u32 = 0;
5288 fq_cmovznz_u32(&mut x127, x3, (arg5[1]), x112);
5289 let mut x128: u32 = 0;
5290 fq_cmovznz_u32(&mut x128, x3, (arg5[2]), x114);
5291 let mut x129: u32 = 0;
5292 fq_cmovznz_u32(&mut x129, x3, (arg5[3]), x116);
5293 let mut x130: u32 = 0;
5294 fq_cmovznz_u32(&mut x130, x3, (arg5[4]), x118);
5295 let mut x131: u32 = 0;
5296 fq_cmovznz_u32(&mut x131, x3, (arg5[5]), x120);
5297 let mut x132: u32 = 0;
5298 fq_cmovznz_u32(&mut x132, x3, (arg5[6]), x122);
5299 let mut x133: u32 = 0;
5300 fq_cmovznz_u32(&mut x133, x3, (arg5[7]), x124);
5301 let x134: FqU1 = ((x34 & (0x1 as u32)) as FqU1);
5302 let mut x135: u32 = 0;
5303 fq_cmovznz_u32(&mut x135, x134, (0x0 as u32), x7);
5304 let mut x136: u32 = 0;
5305 fq_cmovznz_u32(&mut x136, x134, (0x0 as u32), x8);
5306 let mut x137: u32 = 0;
5307 fq_cmovznz_u32(&mut x137, x134, (0x0 as u32), x9);
5308 let mut x138: u32 = 0;
5309 fq_cmovznz_u32(&mut x138, x134, (0x0 as u32), x10);
5310 let mut x139: u32 = 0;
5311 fq_cmovznz_u32(&mut x139, x134, (0x0 as u32), x11);
5312 let mut x140: u32 = 0;
5313 fq_cmovznz_u32(&mut x140, x134, (0x0 as u32), x12);
5314 let mut x141: u32 = 0;
5315 fq_cmovznz_u32(&mut x141, x134, (0x0 as u32), x13);
5316 let mut x142: u32 = 0;
5317 fq_cmovznz_u32(&mut x142, x134, (0x0 as u32), x14);
5318 let mut x143: u32 = 0;
5319 fq_cmovznz_u32(&mut x143, x134, (0x0 as u32), x15);
5320 let mut x144: u32 = 0;
5321 let mut x145: FqU1 = 0;
5322 fq_addcarryx_u32(&mut x144, &mut x145, 0x0, x34, x135);
5323 let mut x146: u32 = 0;
5324 let mut x147: FqU1 = 0;
5325 fq_addcarryx_u32(&mut x146, &mut x147, x145, x35, x136);
5326 let mut x148: u32 = 0;
5327 let mut x149: FqU1 = 0;
5328 fq_addcarryx_u32(&mut x148, &mut x149, x147, x36, x137);
5329 let mut x150: u32 = 0;
5330 let mut x151: FqU1 = 0;
5331 fq_addcarryx_u32(&mut x150, &mut x151, x149, x37, x138);
5332 let mut x152: u32 = 0;
5333 let mut x153: FqU1 = 0;
5334 fq_addcarryx_u32(&mut x152, &mut x153, x151, x38, x139);
5335 let mut x154: u32 = 0;
5336 let mut x155: FqU1 = 0;
5337 fq_addcarryx_u32(&mut x154, &mut x155, x153, x39, x140);
5338 let mut x156: u32 = 0;
5339 let mut x157: FqU1 = 0;
5340 fq_addcarryx_u32(&mut x156, &mut x157, x155, x40, x141);
5341 let mut x158: u32 = 0;
5342 let mut x159: FqU1 = 0;
5343 fq_addcarryx_u32(&mut x158, &mut x159, x157, x41, x142);
5344 let mut x160: u32 = 0;
5345 let mut x161: FqU1 = 0;
5346 fq_addcarryx_u32(&mut x160, &mut x161, x159, x42, x143);
5347 let mut x162: u32 = 0;
5348 fq_cmovznz_u32(&mut x162, x134, (0x0 as u32), x43);
5349 let mut x163: u32 = 0;
5350 fq_cmovznz_u32(&mut x163, x134, (0x0 as u32), x44);
5351 let mut x164: u32 = 0;
5352 fq_cmovznz_u32(&mut x164, x134, (0x0 as u32), x45);
5353 let mut x165: u32 = 0;
5354 fq_cmovznz_u32(&mut x165, x134, (0x0 as u32), x46);
5355 let mut x166: u32 = 0;
5356 fq_cmovznz_u32(&mut x166, x134, (0x0 as u32), x47);
5357 let mut x167: u32 = 0;
5358 fq_cmovznz_u32(&mut x167, x134, (0x0 as u32), x48);
5359 let mut x168: u32 = 0;
5360 fq_cmovznz_u32(&mut x168, x134, (0x0 as u32), x49);
5361 let mut x169: u32 = 0;
5362 fq_cmovznz_u32(&mut x169, x134, (0x0 as u32), x50);
5363 let mut x170: u32 = 0;
5364 let mut x171: FqU1 = 0;
5365 fq_addcarryx_u32(&mut x170, &mut x171, 0x0, x126, x162);
5366 let mut x172: u32 = 0;
5367 let mut x173: FqU1 = 0;
5368 fq_addcarryx_u32(&mut x172, &mut x173, x171, x127, x163);
5369 let mut x174: u32 = 0;
5370 let mut x175: FqU1 = 0;
5371 fq_addcarryx_u32(&mut x174, &mut x175, x173, x128, x164);
5372 let mut x176: u32 = 0;
5373 let mut x177: FqU1 = 0;
5374 fq_addcarryx_u32(&mut x176, &mut x177, x175, x129, x165);
5375 let mut x178: u32 = 0;
5376 let mut x179: FqU1 = 0;
5377 fq_addcarryx_u32(&mut x178, &mut x179, x177, x130, x166);
5378 let mut x180: u32 = 0;
5379 let mut x181: FqU1 = 0;
5380 fq_addcarryx_u32(&mut x180, &mut x181, x179, x131, x167);
5381 let mut x182: u32 = 0;
5382 let mut x183: FqU1 = 0;
5383 fq_addcarryx_u32(&mut x182, &mut x183, x181, x132, x168);
5384 let mut x184: u32 = 0;
5385 let mut x185: FqU1 = 0;
5386 fq_addcarryx_u32(&mut x184, &mut x185, x183, x133, x169);
5387 let mut x186: u32 = 0;
5388 let mut x187: FqU1 = 0;
5389 fq_subborrowx_u32(&mut x186, &mut x187, 0x0, x170, (0x1 as u32));
5390 let mut x188: u32 = 0;
5391 let mut x189: FqU1 = 0;
5392 fq_subborrowx_u32(&mut x188, &mut x189, x187, x172, 0xa118000);
5393 let mut x190: u32 = 0;
5394 let mut x191: FqU1 = 0;
5395 fq_subborrowx_u32(&mut x190, &mut x191, x189, x174, 0xd0000001);
5396 let mut x192: u32 = 0;
5397 let mut x193: FqU1 = 0;
5398 fq_subborrowx_u32(&mut x192, &mut x193, x191, x176, 0x59aa76fe);
5399 let mut x194: u32 = 0;
5400 let mut x195: FqU1 = 0;
5401 fq_subborrowx_u32(&mut x194, &mut x195, x193, x178, 0x5c37b001);
5402 let mut x196: u32 = 0;
5403 let mut x197: FqU1 = 0;
5404 fq_subborrowx_u32(&mut x196, &mut x197, x195, x180, 0x60b44d1e);
5405 let mut x198: u32 = 0;
5406 let mut x199: FqU1 = 0;
5407 fq_subborrowx_u32(&mut x198, &mut x199, x197, x182, 0x9a2ca556);
5408 let mut x200: u32 = 0;
5409 let mut x201: FqU1 = 0;
5410 fq_subborrowx_u32(&mut x200, &mut x201, x199, x184, 0x12ab655e);
5411 let mut x202: u32 = 0;
5412 let mut x203: FqU1 = 0;
5413 fq_subborrowx_u32(&mut x202, &mut x203, x201, (x185 as u32), (0x0 as u32));
5414 let mut x204: u32 = 0;
5415 let mut x205: FqU1 = 0;
5416 fq_addcarryx_u32(&mut x204, &mut x205, 0x0, x6, (0x1 as u32));
5417 let x206: u32 = ((x144 >> 1) | ((x146 << 31) & 0xffffffff));
5418 let x207: u32 = ((x146 >> 1) | ((x148 << 31) & 0xffffffff));
5419 let x208: u32 = ((x148 >> 1) | ((x150 << 31) & 0xffffffff));
5420 let x209: u32 = ((x150 >> 1) | ((x152 << 31) & 0xffffffff));
5421 let x210: u32 = ((x152 >> 1) | ((x154 << 31) & 0xffffffff));
5422 let x211: u32 = ((x154 >> 1) | ((x156 << 31) & 0xffffffff));
5423 let x212: u32 = ((x156 >> 1) | ((x158 << 31) & 0xffffffff));
5424 let x213: u32 = ((x158 >> 1) | ((x160 << 31) & 0xffffffff));
5425 let x214: u32 = ((x160 & 0x80000000) | (x160 >> 1));
5426 let mut x215: u32 = 0;
5427 fq_cmovznz_u32(&mut x215, x84, x67, x51);
5428 let mut x216: u32 = 0;
5429 fq_cmovznz_u32(&mut x216, x84, x69, x53);
5430 let mut x217: u32 = 0;
5431 fq_cmovznz_u32(&mut x217, x84, x71, x55);
5432 let mut x218: u32 = 0;
5433 fq_cmovznz_u32(&mut x218, x84, x73, x57);
5434 let mut x219: u32 = 0;
5435 fq_cmovznz_u32(&mut x219, x84, x75, x59);
5436 let mut x220: u32 = 0;
5437 fq_cmovznz_u32(&mut x220, x84, x77, x61);
5438 let mut x221: u32 = 0;
5439 fq_cmovznz_u32(&mut x221, x84, x79, x63);
5440 let mut x222: u32 = 0;
5441 fq_cmovznz_u32(&mut x222, x84, x81, x65);
5442 let mut x223: u32 = 0;
5443 fq_cmovznz_u32(&mut x223, x203, x186, x170);
5444 let mut x224: u32 = 0;
5445 fq_cmovznz_u32(&mut x224, x203, x188, x172);
5446 let mut x225: u32 = 0;
5447 fq_cmovznz_u32(&mut x225, x203, x190, x174);
5448 let mut x226: u32 = 0;
5449 fq_cmovznz_u32(&mut x226, x203, x192, x176);
5450 let mut x227: u32 = 0;
5451 fq_cmovznz_u32(&mut x227, x203, x194, x178);
5452 let mut x228: u32 = 0;
5453 fq_cmovznz_u32(&mut x228, x203, x196, x180);
5454 let mut x229: u32 = 0;
5455 fq_cmovznz_u32(&mut x229, x203, x198, x182);
5456 let mut x230: u32 = 0;
5457 fq_cmovznz_u32(&mut x230, x203, x200, x184);
5458 *out1 = x204;
5459 out2[0] = x7;
5460 out2[1] = x8;
5461 out2[2] = x9;
5462 out2[3] = x10;
5463 out2[4] = x11;
5464 out2[5] = x12;
5465 out2[6] = x13;
5466 out2[7] = x14;
5467 out2[8] = x15;
5468 out3[0] = x206;
5469 out3[1] = x207;
5470 out3[2] = x208;
5471 out3[3] = x209;
5472 out3[4] = x210;
5473 out3[5] = x211;
5474 out3[6] = x212;
5475 out3[7] = x213;
5476 out3[8] = x214;
5477 out4[0] = x215;
5478 out4[1] = x216;
5479 out4[2] = x217;
5480 out4[3] = x218;
5481 out4[4] = x219;
5482 out4[5] = x220;
5483 out4[6] = x221;
5484 out4[7] = x222;
5485 out5[0] = x223;
5486 out5[1] = x224;
5487 out5[2] = x225;
5488 out5[3] = x226;
5489 out5[4] = x227;
5490 out5[5] = x228;
5491 out5[6] = x229;
5492 out5[7] = x230;
5493}