decaf377/fields/fp/u32/
fiat.rs

1//! Autogenerated: './fiat-crypto' word-by-word-montgomery --lang Rust fp 32 258664426012969094010652733694893533536393512754914660539884262666720468348340822774968888139573360124440321458177 --no-prefix-fiat --public-type-case PascalCase --private-type-case PascalCase
2//! curve description: fp
3//! machine_wordsize = 32 (from "32")
4//! requested operations: (all)
5//! m = 0x1ae3a4617c510eac63b05c06ca1493b1a22d9f300f5138f1ef3622fba094800170b5d44300000008508c00000000001 (from "258664426012969094010652733694893533536393512754914660539884262666720468348340822774968888139573360124440321458177")
6//!
7//! NOTE: In addition to the bounds specified above each function, all
8//!   functions synthesized for this Montgomery arithmetic require the
9//!   input to be strictly less than the prime modulus (m), and also
10//!   require the input to be in the unique saturated representation.
11//!   All functions also ensure that these two properties are true of
12//!   return values.
13//!
14//! Computed values:
15//!   eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160)
16//!   bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178)
17//!   twos_complement_eval z = let x1 := z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160) in
18//!                            if x1 & (2^384-1) < 2^383 then x1 & (2^384-1) else (x1 & (2^384-1)) - 2^384
19
20#![allow(unused_parens)]
21#![allow(non_camel_case_types)]
22
23/** FpU1 represents values of 1 bits, stored in one byte. */
24pub type FpU1 = u8;
25/** FpI1 represents values of 1 bits, stored in one byte. */
26pub type FpI1 = i8;
27/** FpU2 represents values of 2 bits, stored in one byte. */
28pub type FpU2 = u8;
29/** FpI2 represents values of 2 bits, stored in one byte. */
30pub type FpI2 = i8;
31
32/** The type FpMontgomeryDomainFieldElement is a field element in the Montgomery domain. */
33/** Bounds: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] */
34#[derive(Clone, Copy)]
35pub struct FpMontgomeryDomainFieldElement(pub [u32; 12]);
36
37impl core::ops::Index<usize> for FpMontgomeryDomainFieldElement {
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 FpMontgomeryDomainFieldElement {
46    #[inline]
47    fn index_mut(&mut self, index: usize) -> &mut Self::Output {
48        &mut self.0[index]
49    }
50}
51
52/** The type FpNonMontgomeryDomainFieldElement is a field element NOT in the Montgomery domain. */
53/** Bounds: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] */
54#[derive(Clone, Copy)]
55pub struct FpNonMontgomeryDomainFieldElement(pub [u32; 12]);
56
57impl core::ops::Index<usize> for FpNonMontgomeryDomainFieldElement {
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 FpNonMontgomeryDomainFieldElement {
66    #[inline]
67    fn index_mut(&mut self, index: usize) -> &mut Self::Output {
68        &mut self.0[index]
69    }
70}
71
72/// The function fp_addcarryx_u32 is an addition with carry.
73///
74/// Postconditions:
75///   out1 = (arg1 + arg2 + arg3) mod 2^32
76///   out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋
77///
78/// Input Bounds:
79///   arg1: [0x0 ~> 0x1]
80///   arg2: [0x0 ~> 0xffffffff]
81///   arg3: [0x0 ~> 0xffffffff]
82/// Output Bounds:
83///   out1: [0x0 ~> 0xffffffff]
84///   out2: [0x0 ~> 0x1]
85pub fn fp_addcarryx_u32(out1: &mut u32, out2: &mut FpU1, arg1: FpU1, 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: FpU1 = ((x1 >> 32) as FpU1);
89    *out1 = x2;
90    *out2 = x3;
91}
92
93/// The function fp_subborrowx_u32 is a subtraction with borrow.
94///
95/// Postconditions:
96///   out1 = (-arg1 + arg2 + -arg3) mod 2^32
97///   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋
98///
99/// Input Bounds:
100///   arg1: [0x0 ~> 0x1]
101///   arg2: [0x0 ~> 0xffffffff]
102///   arg3: [0x0 ~> 0xffffffff]
103/// Output Bounds:
104///   out1: [0x0 ~> 0xffffffff]
105///   out2: [0x0 ~> 0x1]
106pub fn fp_subborrowx_u32(out1: &mut u32, out2: &mut FpU1, arg1: FpU1, arg2: u32, arg3: u32) {
107    let x1: i64 = (((arg2 as i64) - (arg1 as i64)) - (arg3 as i64));
108    let x2: FpI1 = ((x1 >> 32) as FpI1);
109    let x3: u32 = ((x1 & (0xffffffff as i64)) as u32);
110    *out1 = x3;
111    *out2 = (((0x0 as FpI2) - (x2 as FpI2)) as FpU1);
112}
113
114/// The function fp_mulx_u32 is a multiplication, returning the full double-width result.
115///
116/// Postconditions:
117///   out1 = (arg1 * arg2) mod 2^32
118///   out2 = ⌊arg1 * arg2 / 2^32⌋
119///
120/// Input Bounds:
121///   arg1: [0x0 ~> 0xffffffff]
122///   arg2: [0x0 ~> 0xffffffff]
123/// Output Bounds:
124///   out1: [0x0 ~> 0xffffffff]
125///   out2: [0x0 ~> 0xffffffff]
126pub fn fp_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
134/// The function fp_cmovznz_u32 is a single-word conditional move.
135///
136/// Postconditions:
137///   out1 = (if arg1 = 0 then arg2 else arg3)
138///
139/// Input Bounds:
140///   arg1: [0x0 ~> 0x1]
141///   arg2: [0x0 ~> 0xffffffff]
142///   arg3: [0x0 ~> 0xffffffff]
143/// Output Bounds:
144///   out1: [0x0 ~> 0xffffffff]
145pub fn fp_cmovznz_u32(out1: &mut u32, arg1: FpU1, arg2: u32, arg3: u32) {
146    let x1: FpU1 = (!(!arg1));
147    let x2: u32 =
148        ((((((0x0 as FpI2) - (x1 as FpI2)) as FpI1) as i64) & (0xffffffff as i64)) as u32);
149    let x3: u32 = ((x2 & arg3) | ((!x2) & arg2));
150    *out1 = x3;
151}
152
153/// The function fp_mul multiplies two field elements in the Montgomery domain.
154///
155/// Preconditions:
156///   0 ≤ eval arg1 < m
157///   0 ≤ eval arg2 < m
158/// Postconditions:
159///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
160///   0 ≤ eval out1 < m
161///
162pub fn fp_mul(
163    out1: &mut FpMontgomeryDomainFieldElement,
164    arg1: &FpMontgomeryDomainFieldElement,
165    arg2: &FpMontgomeryDomainFieldElement,
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[8]);
175    let x9: u32 = (arg1[9]);
176    let x10: u32 = (arg1[10]);
177    let x11: u32 = (arg1[11]);
178    let x12: u32 = (arg1[0]);
179    let mut x13: u32 = 0;
180    let mut x14: u32 = 0;
181    fp_mulx_u32(&mut x13, &mut x14, x12, (arg2[11]));
182    let mut x15: u32 = 0;
183    let mut x16: u32 = 0;
184    fp_mulx_u32(&mut x15, &mut x16, x12, (arg2[10]));
185    let mut x17: u32 = 0;
186    let mut x18: u32 = 0;
187    fp_mulx_u32(&mut x17, &mut x18, x12, (arg2[9]));
188    let mut x19: u32 = 0;
189    let mut x20: u32 = 0;
190    fp_mulx_u32(&mut x19, &mut x20, x12, (arg2[8]));
191    let mut x21: u32 = 0;
192    let mut x22: u32 = 0;
193    fp_mulx_u32(&mut x21, &mut x22, x12, (arg2[7]));
194    let mut x23: u32 = 0;
195    let mut x24: u32 = 0;
196    fp_mulx_u32(&mut x23, &mut x24, x12, (arg2[6]));
197    let mut x25: u32 = 0;
198    let mut x26: u32 = 0;
199    fp_mulx_u32(&mut x25, &mut x26, x12, (arg2[5]));
200    let mut x27: u32 = 0;
201    let mut x28: u32 = 0;
202    fp_mulx_u32(&mut x27, &mut x28, x12, (arg2[4]));
203    let mut x29: u32 = 0;
204    let mut x30: u32 = 0;
205    fp_mulx_u32(&mut x29, &mut x30, x12, (arg2[3]));
206    let mut x31: u32 = 0;
207    let mut x32: u32 = 0;
208    fp_mulx_u32(&mut x31, &mut x32, x12, (arg2[2]));
209    let mut x33: u32 = 0;
210    let mut x34: u32 = 0;
211    fp_mulx_u32(&mut x33, &mut x34, x12, (arg2[1]));
212    let mut x35: u32 = 0;
213    let mut x36: u32 = 0;
214    fp_mulx_u32(&mut x35, &mut x36, x12, (arg2[0]));
215    let mut x37: u32 = 0;
216    let mut x38: FpU1 = 0;
217    fp_addcarryx_u32(&mut x37, &mut x38, 0x0, x36, x33);
218    let mut x39: u32 = 0;
219    let mut x40: FpU1 = 0;
220    fp_addcarryx_u32(&mut x39, &mut x40, x38, x34, x31);
221    let mut x41: u32 = 0;
222    let mut x42: FpU1 = 0;
223    fp_addcarryx_u32(&mut x41, &mut x42, x40, x32, x29);
224    let mut x43: u32 = 0;
225    let mut x44: FpU1 = 0;
226    fp_addcarryx_u32(&mut x43, &mut x44, x42, x30, x27);
227    let mut x45: u32 = 0;
228    let mut x46: FpU1 = 0;
229    fp_addcarryx_u32(&mut x45, &mut x46, x44, x28, x25);
230    let mut x47: u32 = 0;
231    let mut x48: FpU1 = 0;
232    fp_addcarryx_u32(&mut x47, &mut x48, x46, x26, x23);
233    let mut x49: u32 = 0;
234    let mut x50: FpU1 = 0;
235    fp_addcarryx_u32(&mut x49, &mut x50, x48, x24, x21);
236    let mut x51: u32 = 0;
237    let mut x52: FpU1 = 0;
238    fp_addcarryx_u32(&mut x51, &mut x52, x50, x22, x19);
239    let mut x53: u32 = 0;
240    let mut x54: FpU1 = 0;
241    fp_addcarryx_u32(&mut x53, &mut x54, x52, x20, x17);
242    let mut x55: u32 = 0;
243    let mut x56: FpU1 = 0;
244    fp_addcarryx_u32(&mut x55, &mut x56, x54, x18, x15);
245    let mut x57: u32 = 0;
246    let mut x58: FpU1 = 0;
247    fp_addcarryx_u32(&mut x57, &mut x58, x56, x16, x13);
248    let x59: u32 = ((x58 as u32) + x14);
249    let mut x60: u32 = 0;
250    let mut x61: u32 = 0;
251    fp_mulx_u32(&mut x60, &mut x61, x35, 0xffffffff);
252    let mut x62: u32 = 0;
253    let mut x63: u32 = 0;
254    fp_mulx_u32(&mut x62, &mut x63, x60, 0x1ae3a46);
255    let mut x64: u32 = 0;
256    let mut x65: u32 = 0;
257    fp_mulx_u32(&mut x64, &mut x65, x60, 0x17c510ea);
258    let mut x66: u32 = 0;
259    let mut x67: u32 = 0;
260    fp_mulx_u32(&mut x66, &mut x67, x60, 0xc63b05c0);
261    let mut x68: u32 = 0;
262    let mut x69: u32 = 0;
263    fp_mulx_u32(&mut x68, &mut x69, x60, 0x6ca1493b);
264    let mut x70: u32 = 0;
265    let mut x71: u32 = 0;
266    fp_mulx_u32(&mut x70, &mut x71, x60, 0x1a22d9f3);
267    let mut x72: u32 = 0;
268    let mut x73: u32 = 0;
269    fp_mulx_u32(&mut x72, &mut x73, x60, 0xf5138f);
270    let mut x74: u32 = 0;
271    let mut x75: u32 = 0;
272    fp_mulx_u32(&mut x74, &mut x75, x60, 0x1ef3622f);
273    let mut x76: u32 = 0;
274    let mut x77: u32 = 0;
275    fp_mulx_u32(&mut x76, &mut x77, x60, 0xba094800);
276    let mut x78: u32 = 0;
277    let mut x79: u32 = 0;
278    fp_mulx_u32(&mut x78, &mut x79, x60, 0x170b5d44);
279    let mut x80: u32 = 0;
280    let mut x81: u32 = 0;
281    fp_mulx_u32(&mut x80, &mut x81, x60, 0x30000000);
282    let mut x82: u32 = 0;
283    let mut x83: u32 = 0;
284    fp_mulx_u32(&mut x82, &mut x83, x60, 0x8508c000);
285    let mut x84: u32 = 0;
286    let mut x85: FpU1 = 0;
287    fp_addcarryx_u32(&mut x84, &mut x85, 0x0, x83, x80);
288    let mut x86: u32 = 0;
289    let mut x87: FpU1 = 0;
290    fp_addcarryx_u32(&mut x86, &mut x87, x85, x81, x78);
291    let mut x88: u32 = 0;
292    let mut x89: FpU1 = 0;
293    fp_addcarryx_u32(&mut x88, &mut x89, x87, x79, x76);
294    let mut x90: u32 = 0;
295    let mut x91: FpU1 = 0;
296    fp_addcarryx_u32(&mut x90, &mut x91, x89, x77, x74);
297    let mut x92: u32 = 0;
298    let mut x93: FpU1 = 0;
299    fp_addcarryx_u32(&mut x92, &mut x93, x91, x75, x72);
300    let mut x94: u32 = 0;
301    let mut x95: FpU1 = 0;
302    fp_addcarryx_u32(&mut x94, &mut x95, x93, x73, x70);
303    let mut x96: u32 = 0;
304    let mut x97: FpU1 = 0;
305    fp_addcarryx_u32(&mut x96, &mut x97, x95, x71, x68);
306    let mut x98: u32 = 0;
307    let mut x99: FpU1 = 0;
308    fp_addcarryx_u32(&mut x98, &mut x99, x97, x69, x66);
309    let mut x100: u32 = 0;
310    let mut x101: FpU1 = 0;
311    fp_addcarryx_u32(&mut x100, &mut x101, x99, x67, x64);
312    let mut x102: u32 = 0;
313    let mut x103: FpU1 = 0;
314    fp_addcarryx_u32(&mut x102, &mut x103, x101, x65, x62);
315    let x104: u32 = ((x103 as u32) + x63);
316    let mut x105: u32 = 0;
317    let mut x106: FpU1 = 0;
318    fp_addcarryx_u32(&mut x105, &mut x106, 0x0, x35, x60);
319    let mut x107: u32 = 0;
320    let mut x108: FpU1 = 0;
321    fp_addcarryx_u32(&mut x107, &mut x108, x106, x37, x82);
322    let mut x109: u32 = 0;
323    let mut x110: FpU1 = 0;
324    fp_addcarryx_u32(&mut x109, &mut x110, x108, x39, x84);
325    let mut x111: u32 = 0;
326    let mut x112: FpU1 = 0;
327    fp_addcarryx_u32(&mut x111, &mut x112, x110, x41, x86);
328    let mut x113: u32 = 0;
329    let mut x114: FpU1 = 0;
330    fp_addcarryx_u32(&mut x113, &mut x114, x112, x43, x88);
331    let mut x115: u32 = 0;
332    let mut x116: FpU1 = 0;
333    fp_addcarryx_u32(&mut x115, &mut x116, x114, x45, x90);
334    let mut x117: u32 = 0;
335    let mut x118: FpU1 = 0;
336    fp_addcarryx_u32(&mut x117, &mut x118, x116, x47, x92);
337    let mut x119: u32 = 0;
338    let mut x120: FpU1 = 0;
339    fp_addcarryx_u32(&mut x119, &mut x120, x118, x49, x94);
340    let mut x121: u32 = 0;
341    let mut x122: FpU1 = 0;
342    fp_addcarryx_u32(&mut x121, &mut x122, x120, x51, x96);
343    let mut x123: u32 = 0;
344    let mut x124: FpU1 = 0;
345    fp_addcarryx_u32(&mut x123, &mut x124, x122, x53, x98);
346    let mut x125: u32 = 0;
347    let mut x126: FpU1 = 0;
348    fp_addcarryx_u32(&mut x125, &mut x126, x124, x55, x100);
349    let mut x127: u32 = 0;
350    let mut x128: FpU1 = 0;
351    fp_addcarryx_u32(&mut x127, &mut x128, x126, x57, x102);
352    let mut x129: u32 = 0;
353    let mut x130: FpU1 = 0;
354    fp_addcarryx_u32(&mut x129, &mut x130, x128, x59, x104);
355    let mut x131: u32 = 0;
356    let mut x132: u32 = 0;
357    fp_mulx_u32(&mut x131, &mut x132, x1, (arg2[11]));
358    let mut x133: u32 = 0;
359    let mut x134: u32 = 0;
360    fp_mulx_u32(&mut x133, &mut x134, x1, (arg2[10]));
361    let mut x135: u32 = 0;
362    let mut x136: u32 = 0;
363    fp_mulx_u32(&mut x135, &mut x136, x1, (arg2[9]));
364    let mut x137: u32 = 0;
365    let mut x138: u32 = 0;
366    fp_mulx_u32(&mut x137, &mut x138, x1, (arg2[8]));
367    let mut x139: u32 = 0;
368    let mut x140: u32 = 0;
369    fp_mulx_u32(&mut x139, &mut x140, x1, (arg2[7]));
370    let mut x141: u32 = 0;
371    let mut x142: u32 = 0;
372    fp_mulx_u32(&mut x141, &mut x142, x1, (arg2[6]));
373    let mut x143: u32 = 0;
374    let mut x144: u32 = 0;
375    fp_mulx_u32(&mut x143, &mut x144, x1, (arg2[5]));
376    let mut x145: u32 = 0;
377    let mut x146: u32 = 0;
378    fp_mulx_u32(&mut x145, &mut x146, x1, (arg2[4]));
379    let mut x147: u32 = 0;
380    let mut x148: u32 = 0;
381    fp_mulx_u32(&mut x147, &mut x148, x1, (arg2[3]));
382    let mut x149: u32 = 0;
383    let mut x150: u32 = 0;
384    fp_mulx_u32(&mut x149, &mut x150, x1, (arg2[2]));
385    let mut x151: u32 = 0;
386    let mut x152: u32 = 0;
387    fp_mulx_u32(&mut x151, &mut x152, x1, (arg2[1]));
388    let mut x153: u32 = 0;
389    let mut x154: u32 = 0;
390    fp_mulx_u32(&mut x153, &mut x154, x1, (arg2[0]));
391    let mut x155: u32 = 0;
392    let mut x156: FpU1 = 0;
393    fp_addcarryx_u32(&mut x155, &mut x156, 0x0, x154, x151);
394    let mut x157: u32 = 0;
395    let mut x158: FpU1 = 0;
396    fp_addcarryx_u32(&mut x157, &mut x158, x156, x152, x149);
397    let mut x159: u32 = 0;
398    let mut x160: FpU1 = 0;
399    fp_addcarryx_u32(&mut x159, &mut x160, x158, x150, x147);
400    let mut x161: u32 = 0;
401    let mut x162: FpU1 = 0;
402    fp_addcarryx_u32(&mut x161, &mut x162, x160, x148, x145);
403    let mut x163: u32 = 0;
404    let mut x164: FpU1 = 0;
405    fp_addcarryx_u32(&mut x163, &mut x164, x162, x146, x143);
406    let mut x165: u32 = 0;
407    let mut x166: FpU1 = 0;
408    fp_addcarryx_u32(&mut x165, &mut x166, x164, x144, x141);
409    let mut x167: u32 = 0;
410    let mut x168: FpU1 = 0;
411    fp_addcarryx_u32(&mut x167, &mut x168, x166, x142, x139);
412    let mut x169: u32 = 0;
413    let mut x170: FpU1 = 0;
414    fp_addcarryx_u32(&mut x169, &mut x170, x168, x140, x137);
415    let mut x171: u32 = 0;
416    let mut x172: FpU1 = 0;
417    fp_addcarryx_u32(&mut x171, &mut x172, x170, x138, x135);
418    let mut x173: u32 = 0;
419    let mut x174: FpU1 = 0;
420    fp_addcarryx_u32(&mut x173, &mut x174, x172, x136, x133);
421    let mut x175: u32 = 0;
422    let mut x176: FpU1 = 0;
423    fp_addcarryx_u32(&mut x175, &mut x176, x174, x134, x131);
424    let x177: u32 = ((x176 as u32) + x132);
425    let mut x178: u32 = 0;
426    let mut x179: FpU1 = 0;
427    fp_addcarryx_u32(&mut x178, &mut x179, 0x0, x107, x153);
428    let mut x180: u32 = 0;
429    let mut x181: FpU1 = 0;
430    fp_addcarryx_u32(&mut x180, &mut x181, x179, x109, x155);
431    let mut x182: u32 = 0;
432    let mut x183: FpU1 = 0;
433    fp_addcarryx_u32(&mut x182, &mut x183, x181, x111, x157);
434    let mut x184: u32 = 0;
435    let mut x185: FpU1 = 0;
436    fp_addcarryx_u32(&mut x184, &mut x185, x183, x113, x159);
437    let mut x186: u32 = 0;
438    let mut x187: FpU1 = 0;
439    fp_addcarryx_u32(&mut x186, &mut x187, x185, x115, x161);
440    let mut x188: u32 = 0;
441    let mut x189: FpU1 = 0;
442    fp_addcarryx_u32(&mut x188, &mut x189, x187, x117, x163);
443    let mut x190: u32 = 0;
444    let mut x191: FpU1 = 0;
445    fp_addcarryx_u32(&mut x190, &mut x191, x189, x119, x165);
446    let mut x192: u32 = 0;
447    let mut x193: FpU1 = 0;
448    fp_addcarryx_u32(&mut x192, &mut x193, x191, x121, x167);
449    let mut x194: u32 = 0;
450    let mut x195: FpU1 = 0;
451    fp_addcarryx_u32(&mut x194, &mut x195, x193, x123, x169);
452    let mut x196: u32 = 0;
453    let mut x197: FpU1 = 0;
454    fp_addcarryx_u32(&mut x196, &mut x197, x195, x125, x171);
455    let mut x198: u32 = 0;
456    let mut x199: FpU1 = 0;
457    fp_addcarryx_u32(&mut x198, &mut x199, x197, x127, x173);
458    let mut x200: u32 = 0;
459    let mut x201: FpU1 = 0;
460    fp_addcarryx_u32(&mut x200, &mut x201, x199, x129, x175);
461    let mut x202: u32 = 0;
462    let mut x203: FpU1 = 0;
463    fp_addcarryx_u32(&mut x202, &mut x203, x201, (x130 as u32), x177);
464    let mut x204: u32 = 0;
465    let mut x205: u32 = 0;
466    fp_mulx_u32(&mut x204, &mut x205, x178, 0xffffffff);
467    let mut x206: u32 = 0;
468    let mut x207: u32 = 0;
469    fp_mulx_u32(&mut x206, &mut x207, x204, 0x1ae3a46);
470    let mut x208: u32 = 0;
471    let mut x209: u32 = 0;
472    fp_mulx_u32(&mut x208, &mut x209, x204, 0x17c510ea);
473    let mut x210: u32 = 0;
474    let mut x211: u32 = 0;
475    fp_mulx_u32(&mut x210, &mut x211, x204, 0xc63b05c0);
476    let mut x212: u32 = 0;
477    let mut x213: u32 = 0;
478    fp_mulx_u32(&mut x212, &mut x213, x204, 0x6ca1493b);
479    let mut x214: u32 = 0;
480    let mut x215: u32 = 0;
481    fp_mulx_u32(&mut x214, &mut x215, x204, 0x1a22d9f3);
482    let mut x216: u32 = 0;
483    let mut x217: u32 = 0;
484    fp_mulx_u32(&mut x216, &mut x217, x204, 0xf5138f);
485    let mut x218: u32 = 0;
486    let mut x219: u32 = 0;
487    fp_mulx_u32(&mut x218, &mut x219, x204, 0x1ef3622f);
488    let mut x220: u32 = 0;
489    let mut x221: u32 = 0;
490    fp_mulx_u32(&mut x220, &mut x221, x204, 0xba094800);
491    let mut x222: u32 = 0;
492    let mut x223: u32 = 0;
493    fp_mulx_u32(&mut x222, &mut x223, x204, 0x170b5d44);
494    let mut x224: u32 = 0;
495    let mut x225: u32 = 0;
496    fp_mulx_u32(&mut x224, &mut x225, x204, 0x30000000);
497    let mut x226: u32 = 0;
498    let mut x227: u32 = 0;
499    fp_mulx_u32(&mut x226, &mut x227, x204, 0x8508c000);
500    let mut x228: u32 = 0;
501    let mut x229: FpU1 = 0;
502    fp_addcarryx_u32(&mut x228, &mut x229, 0x0, x227, x224);
503    let mut x230: u32 = 0;
504    let mut x231: FpU1 = 0;
505    fp_addcarryx_u32(&mut x230, &mut x231, x229, x225, x222);
506    let mut x232: u32 = 0;
507    let mut x233: FpU1 = 0;
508    fp_addcarryx_u32(&mut x232, &mut x233, x231, x223, x220);
509    let mut x234: u32 = 0;
510    let mut x235: FpU1 = 0;
511    fp_addcarryx_u32(&mut x234, &mut x235, x233, x221, x218);
512    let mut x236: u32 = 0;
513    let mut x237: FpU1 = 0;
514    fp_addcarryx_u32(&mut x236, &mut x237, x235, x219, x216);
515    let mut x238: u32 = 0;
516    let mut x239: FpU1 = 0;
517    fp_addcarryx_u32(&mut x238, &mut x239, x237, x217, x214);
518    let mut x240: u32 = 0;
519    let mut x241: FpU1 = 0;
520    fp_addcarryx_u32(&mut x240, &mut x241, x239, x215, x212);
521    let mut x242: u32 = 0;
522    let mut x243: FpU1 = 0;
523    fp_addcarryx_u32(&mut x242, &mut x243, x241, x213, x210);
524    let mut x244: u32 = 0;
525    let mut x245: FpU1 = 0;
526    fp_addcarryx_u32(&mut x244, &mut x245, x243, x211, x208);
527    let mut x246: u32 = 0;
528    let mut x247: FpU1 = 0;
529    fp_addcarryx_u32(&mut x246, &mut x247, x245, x209, x206);
530    let x248: u32 = ((x247 as u32) + x207);
531    let mut x249: u32 = 0;
532    let mut x250: FpU1 = 0;
533    fp_addcarryx_u32(&mut x249, &mut x250, 0x0, x178, x204);
534    let mut x251: u32 = 0;
535    let mut x252: FpU1 = 0;
536    fp_addcarryx_u32(&mut x251, &mut x252, x250, x180, x226);
537    let mut x253: u32 = 0;
538    let mut x254: FpU1 = 0;
539    fp_addcarryx_u32(&mut x253, &mut x254, x252, x182, x228);
540    let mut x255: u32 = 0;
541    let mut x256: FpU1 = 0;
542    fp_addcarryx_u32(&mut x255, &mut x256, x254, x184, x230);
543    let mut x257: u32 = 0;
544    let mut x258: FpU1 = 0;
545    fp_addcarryx_u32(&mut x257, &mut x258, x256, x186, x232);
546    let mut x259: u32 = 0;
547    let mut x260: FpU1 = 0;
548    fp_addcarryx_u32(&mut x259, &mut x260, x258, x188, x234);
549    let mut x261: u32 = 0;
550    let mut x262: FpU1 = 0;
551    fp_addcarryx_u32(&mut x261, &mut x262, x260, x190, x236);
552    let mut x263: u32 = 0;
553    let mut x264: FpU1 = 0;
554    fp_addcarryx_u32(&mut x263, &mut x264, x262, x192, x238);
555    let mut x265: u32 = 0;
556    let mut x266: FpU1 = 0;
557    fp_addcarryx_u32(&mut x265, &mut x266, x264, x194, x240);
558    let mut x267: u32 = 0;
559    let mut x268: FpU1 = 0;
560    fp_addcarryx_u32(&mut x267, &mut x268, x266, x196, x242);
561    let mut x269: u32 = 0;
562    let mut x270: FpU1 = 0;
563    fp_addcarryx_u32(&mut x269, &mut x270, x268, x198, x244);
564    let mut x271: u32 = 0;
565    let mut x272: FpU1 = 0;
566    fp_addcarryx_u32(&mut x271, &mut x272, x270, x200, x246);
567    let mut x273: u32 = 0;
568    let mut x274: FpU1 = 0;
569    fp_addcarryx_u32(&mut x273, &mut x274, x272, x202, x248);
570    let x275: u32 = ((x274 as u32) + (x203 as u32));
571    let mut x276: u32 = 0;
572    let mut x277: u32 = 0;
573    fp_mulx_u32(&mut x276, &mut x277, x2, (arg2[11]));
574    let mut x278: u32 = 0;
575    let mut x279: u32 = 0;
576    fp_mulx_u32(&mut x278, &mut x279, x2, (arg2[10]));
577    let mut x280: u32 = 0;
578    let mut x281: u32 = 0;
579    fp_mulx_u32(&mut x280, &mut x281, x2, (arg2[9]));
580    let mut x282: u32 = 0;
581    let mut x283: u32 = 0;
582    fp_mulx_u32(&mut x282, &mut x283, x2, (arg2[8]));
583    let mut x284: u32 = 0;
584    let mut x285: u32 = 0;
585    fp_mulx_u32(&mut x284, &mut x285, x2, (arg2[7]));
586    let mut x286: u32 = 0;
587    let mut x287: u32 = 0;
588    fp_mulx_u32(&mut x286, &mut x287, x2, (arg2[6]));
589    let mut x288: u32 = 0;
590    let mut x289: u32 = 0;
591    fp_mulx_u32(&mut x288, &mut x289, x2, (arg2[5]));
592    let mut x290: u32 = 0;
593    let mut x291: u32 = 0;
594    fp_mulx_u32(&mut x290, &mut x291, x2, (arg2[4]));
595    let mut x292: u32 = 0;
596    let mut x293: u32 = 0;
597    fp_mulx_u32(&mut x292, &mut x293, x2, (arg2[3]));
598    let mut x294: u32 = 0;
599    let mut x295: u32 = 0;
600    fp_mulx_u32(&mut x294, &mut x295, x2, (arg2[2]));
601    let mut x296: u32 = 0;
602    let mut x297: u32 = 0;
603    fp_mulx_u32(&mut x296, &mut x297, x2, (arg2[1]));
604    let mut x298: u32 = 0;
605    let mut x299: u32 = 0;
606    fp_mulx_u32(&mut x298, &mut x299, x2, (arg2[0]));
607    let mut x300: u32 = 0;
608    let mut x301: FpU1 = 0;
609    fp_addcarryx_u32(&mut x300, &mut x301, 0x0, x299, x296);
610    let mut x302: u32 = 0;
611    let mut x303: FpU1 = 0;
612    fp_addcarryx_u32(&mut x302, &mut x303, x301, x297, x294);
613    let mut x304: u32 = 0;
614    let mut x305: FpU1 = 0;
615    fp_addcarryx_u32(&mut x304, &mut x305, x303, x295, x292);
616    let mut x306: u32 = 0;
617    let mut x307: FpU1 = 0;
618    fp_addcarryx_u32(&mut x306, &mut x307, x305, x293, x290);
619    let mut x308: u32 = 0;
620    let mut x309: FpU1 = 0;
621    fp_addcarryx_u32(&mut x308, &mut x309, x307, x291, x288);
622    let mut x310: u32 = 0;
623    let mut x311: FpU1 = 0;
624    fp_addcarryx_u32(&mut x310, &mut x311, x309, x289, x286);
625    let mut x312: u32 = 0;
626    let mut x313: FpU1 = 0;
627    fp_addcarryx_u32(&mut x312, &mut x313, x311, x287, x284);
628    let mut x314: u32 = 0;
629    let mut x315: FpU1 = 0;
630    fp_addcarryx_u32(&mut x314, &mut x315, x313, x285, x282);
631    let mut x316: u32 = 0;
632    let mut x317: FpU1 = 0;
633    fp_addcarryx_u32(&mut x316, &mut x317, x315, x283, x280);
634    let mut x318: u32 = 0;
635    let mut x319: FpU1 = 0;
636    fp_addcarryx_u32(&mut x318, &mut x319, x317, x281, x278);
637    let mut x320: u32 = 0;
638    let mut x321: FpU1 = 0;
639    fp_addcarryx_u32(&mut x320, &mut x321, x319, x279, x276);
640    let x322: u32 = ((x321 as u32) + x277);
641    let mut x323: u32 = 0;
642    let mut x324: FpU1 = 0;
643    fp_addcarryx_u32(&mut x323, &mut x324, 0x0, x251, x298);
644    let mut x325: u32 = 0;
645    let mut x326: FpU1 = 0;
646    fp_addcarryx_u32(&mut x325, &mut x326, x324, x253, x300);
647    let mut x327: u32 = 0;
648    let mut x328: FpU1 = 0;
649    fp_addcarryx_u32(&mut x327, &mut x328, x326, x255, x302);
650    let mut x329: u32 = 0;
651    let mut x330: FpU1 = 0;
652    fp_addcarryx_u32(&mut x329, &mut x330, x328, x257, x304);
653    let mut x331: u32 = 0;
654    let mut x332: FpU1 = 0;
655    fp_addcarryx_u32(&mut x331, &mut x332, x330, x259, x306);
656    let mut x333: u32 = 0;
657    let mut x334: FpU1 = 0;
658    fp_addcarryx_u32(&mut x333, &mut x334, x332, x261, x308);
659    let mut x335: u32 = 0;
660    let mut x336: FpU1 = 0;
661    fp_addcarryx_u32(&mut x335, &mut x336, x334, x263, x310);
662    let mut x337: u32 = 0;
663    let mut x338: FpU1 = 0;
664    fp_addcarryx_u32(&mut x337, &mut x338, x336, x265, x312);
665    let mut x339: u32 = 0;
666    let mut x340: FpU1 = 0;
667    fp_addcarryx_u32(&mut x339, &mut x340, x338, x267, x314);
668    let mut x341: u32 = 0;
669    let mut x342: FpU1 = 0;
670    fp_addcarryx_u32(&mut x341, &mut x342, x340, x269, x316);
671    let mut x343: u32 = 0;
672    let mut x344: FpU1 = 0;
673    fp_addcarryx_u32(&mut x343, &mut x344, x342, x271, x318);
674    let mut x345: u32 = 0;
675    let mut x346: FpU1 = 0;
676    fp_addcarryx_u32(&mut x345, &mut x346, x344, x273, x320);
677    let mut x347: u32 = 0;
678    let mut x348: FpU1 = 0;
679    fp_addcarryx_u32(&mut x347, &mut x348, x346, x275, x322);
680    let mut x349: u32 = 0;
681    let mut x350: u32 = 0;
682    fp_mulx_u32(&mut x349, &mut x350, x323, 0xffffffff);
683    let mut x351: u32 = 0;
684    let mut x352: u32 = 0;
685    fp_mulx_u32(&mut x351, &mut x352, x349, 0x1ae3a46);
686    let mut x353: u32 = 0;
687    let mut x354: u32 = 0;
688    fp_mulx_u32(&mut x353, &mut x354, x349, 0x17c510ea);
689    let mut x355: u32 = 0;
690    let mut x356: u32 = 0;
691    fp_mulx_u32(&mut x355, &mut x356, x349, 0xc63b05c0);
692    let mut x357: u32 = 0;
693    let mut x358: u32 = 0;
694    fp_mulx_u32(&mut x357, &mut x358, x349, 0x6ca1493b);
695    let mut x359: u32 = 0;
696    let mut x360: u32 = 0;
697    fp_mulx_u32(&mut x359, &mut x360, x349, 0x1a22d9f3);
698    let mut x361: u32 = 0;
699    let mut x362: u32 = 0;
700    fp_mulx_u32(&mut x361, &mut x362, x349, 0xf5138f);
701    let mut x363: u32 = 0;
702    let mut x364: u32 = 0;
703    fp_mulx_u32(&mut x363, &mut x364, x349, 0x1ef3622f);
704    let mut x365: u32 = 0;
705    let mut x366: u32 = 0;
706    fp_mulx_u32(&mut x365, &mut x366, x349, 0xba094800);
707    let mut x367: u32 = 0;
708    let mut x368: u32 = 0;
709    fp_mulx_u32(&mut x367, &mut x368, x349, 0x170b5d44);
710    let mut x369: u32 = 0;
711    let mut x370: u32 = 0;
712    fp_mulx_u32(&mut x369, &mut x370, x349, 0x30000000);
713    let mut x371: u32 = 0;
714    let mut x372: u32 = 0;
715    fp_mulx_u32(&mut x371, &mut x372, x349, 0x8508c000);
716    let mut x373: u32 = 0;
717    let mut x374: FpU1 = 0;
718    fp_addcarryx_u32(&mut x373, &mut x374, 0x0, x372, x369);
719    let mut x375: u32 = 0;
720    let mut x376: FpU1 = 0;
721    fp_addcarryx_u32(&mut x375, &mut x376, x374, x370, x367);
722    let mut x377: u32 = 0;
723    let mut x378: FpU1 = 0;
724    fp_addcarryx_u32(&mut x377, &mut x378, x376, x368, x365);
725    let mut x379: u32 = 0;
726    let mut x380: FpU1 = 0;
727    fp_addcarryx_u32(&mut x379, &mut x380, x378, x366, x363);
728    let mut x381: u32 = 0;
729    let mut x382: FpU1 = 0;
730    fp_addcarryx_u32(&mut x381, &mut x382, x380, x364, x361);
731    let mut x383: u32 = 0;
732    let mut x384: FpU1 = 0;
733    fp_addcarryx_u32(&mut x383, &mut x384, x382, x362, x359);
734    let mut x385: u32 = 0;
735    let mut x386: FpU1 = 0;
736    fp_addcarryx_u32(&mut x385, &mut x386, x384, x360, x357);
737    let mut x387: u32 = 0;
738    let mut x388: FpU1 = 0;
739    fp_addcarryx_u32(&mut x387, &mut x388, x386, x358, x355);
740    let mut x389: u32 = 0;
741    let mut x390: FpU1 = 0;
742    fp_addcarryx_u32(&mut x389, &mut x390, x388, x356, x353);
743    let mut x391: u32 = 0;
744    let mut x392: FpU1 = 0;
745    fp_addcarryx_u32(&mut x391, &mut x392, x390, x354, x351);
746    let x393: u32 = ((x392 as u32) + x352);
747    let mut x394: u32 = 0;
748    let mut x395: FpU1 = 0;
749    fp_addcarryx_u32(&mut x394, &mut x395, 0x0, x323, x349);
750    let mut x396: u32 = 0;
751    let mut x397: FpU1 = 0;
752    fp_addcarryx_u32(&mut x396, &mut x397, x395, x325, x371);
753    let mut x398: u32 = 0;
754    let mut x399: FpU1 = 0;
755    fp_addcarryx_u32(&mut x398, &mut x399, x397, x327, x373);
756    let mut x400: u32 = 0;
757    let mut x401: FpU1 = 0;
758    fp_addcarryx_u32(&mut x400, &mut x401, x399, x329, x375);
759    let mut x402: u32 = 0;
760    let mut x403: FpU1 = 0;
761    fp_addcarryx_u32(&mut x402, &mut x403, x401, x331, x377);
762    let mut x404: u32 = 0;
763    let mut x405: FpU1 = 0;
764    fp_addcarryx_u32(&mut x404, &mut x405, x403, x333, x379);
765    let mut x406: u32 = 0;
766    let mut x407: FpU1 = 0;
767    fp_addcarryx_u32(&mut x406, &mut x407, x405, x335, x381);
768    let mut x408: u32 = 0;
769    let mut x409: FpU1 = 0;
770    fp_addcarryx_u32(&mut x408, &mut x409, x407, x337, x383);
771    let mut x410: u32 = 0;
772    let mut x411: FpU1 = 0;
773    fp_addcarryx_u32(&mut x410, &mut x411, x409, x339, x385);
774    let mut x412: u32 = 0;
775    let mut x413: FpU1 = 0;
776    fp_addcarryx_u32(&mut x412, &mut x413, x411, x341, x387);
777    let mut x414: u32 = 0;
778    let mut x415: FpU1 = 0;
779    fp_addcarryx_u32(&mut x414, &mut x415, x413, x343, x389);
780    let mut x416: u32 = 0;
781    let mut x417: FpU1 = 0;
782    fp_addcarryx_u32(&mut x416, &mut x417, x415, x345, x391);
783    let mut x418: u32 = 0;
784    let mut x419: FpU1 = 0;
785    fp_addcarryx_u32(&mut x418, &mut x419, x417, x347, x393);
786    let x420: u32 = ((x419 as u32) + (x348 as u32));
787    let mut x421: u32 = 0;
788    let mut x422: u32 = 0;
789    fp_mulx_u32(&mut x421, &mut x422, x3, (arg2[11]));
790    let mut x423: u32 = 0;
791    let mut x424: u32 = 0;
792    fp_mulx_u32(&mut x423, &mut x424, x3, (arg2[10]));
793    let mut x425: u32 = 0;
794    let mut x426: u32 = 0;
795    fp_mulx_u32(&mut x425, &mut x426, x3, (arg2[9]));
796    let mut x427: u32 = 0;
797    let mut x428: u32 = 0;
798    fp_mulx_u32(&mut x427, &mut x428, x3, (arg2[8]));
799    let mut x429: u32 = 0;
800    let mut x430: u32 = 0;
801    fp_mulx_u32(&mut x429, &mut x430, x3, (arg2[7]));
802    let mut x431: u32 = 0;
803    let mut x432: u32 = 0;
804    fp_mulx_u32(&mut x431, &mut x432, x3, (arg2[6]));
805    let mut x433: u32 = 0;
806    let mut x434: u32 = 0;
807    fp_mulx_u32(&mut x433, &mut x434, x3, (arg2[5]));
808    let mut x435: u32 = 0;
809    let mut x436: u32 = 0;
810    fp_mulx_u32(&mut x435, &mut x436, x3, (arg2[4]));
811    let mut x437: u32 = 0;
812    let mut x438: u32 = 0;
813    fp_mulx_u32(&mut x437, &mut x438, x3, (arg2[3]));
814    let mut x439: u32 = 0;
815    let mut x440: u32 = 0;
816    fp_mulx_u32(&mut x439, &mut x440, x3, (arg2[2]));
817    let mut x441: u32 = 0;
818    let mut x442: u32 = 0;
819    fp_mulx_u32(&mut x441, &mut x442, x3, (arg2[1]));
820    let mut x443: u32 = 0;
821    let mut x444: u32 = 0;
822    fp_mulx_u32(&mut x443, &mut x444, x3, (arg2[0]));
823    let mut x445: u32 = 0;
824    let mut x446: FpU1 = 0;
825    fp_addcarryx_u32(&mut x445, &mut x446, 0x0, x444, x441);
826    let mut x447: u32 = 0;
827    let mut x448: FpU1 = 0;
828    fp_addcarryx_u32(&mut x447, &mut x448, x446, x442, x439);
829    let mut x449: u32 = 0;
830    let mut x450: FpU1 = 0;
831    fp_addcarryx_u32(&mut x449, &mut x450, x448, x440, x437);
832    let mut x451: u32 = 0;
833    let mut x452: FpU1 = 0;
834    fp_addcarryx_u32(&mut x451, &mut x452, x450, x438, x435);
835    let mut x453: u32 = 0;
836    let mut x454: FpU1 = 0;
837    fp_addcarryx_u32(&mut x453, &mut x454, x452, x436, x433);
838    let mut x455: u32 = 0;
839    let mut x456: FpU1 = 0;
840    fp_addcarryx_u32(&mut x455, &mut x456, x454, x434, x431);
841    let mut x457: u32 = 0;
842    let mut x458: FpU1 = 0;
843    fp_addcarryx_u32(&mut x457, &mut x458, x456, x432, x429);
844    let mut x459: u32 = 0;
845    let mut x460: FpU1 = 0;
846    fp_addcarryx_u32(&mut x459, &mut x460, x458, x430, x427);
847    let mut x461: u32 = 0;
848    let mut x462: FpU1 = 0;
849    fp_addcarryx_u32(&mut x461, &mut x462, x460, x428, x425);
850    let mut x463: u32 = 0;
851    let mut x464: FpU1 = 0;
852    fp_addcarryx_u32(&mut x463, &mut x464, x462, x426, x423);
853    let mut x465: u32 = 0;
854    let mut x466: FpU1 = 0;
855    fp_addcarryx_u32(&mut x465, &mut x466, x464, x424, x421);
856    let x467: u32 = ((x466 as u32) + x422);
857    let mut x468: u32 = 0;
858    let mut x469: FpU1 = 0;
859    fp_addcarryx_u32(&mut x468, &mut x469, 0x0, x396, x443);
860    let mut x470: u32 = 0;
861    let mut x471: FpU1 = 0;
862    fp_addcarryx_u32(&mut x470, &mut x471, x469, x398, x445);
863    let mut x472: u32 = 0;
864    let mut x473: FpU1 = 0;
865    fp_addcarryx_u32(&mut x472, &mut x473, x471, x400, x447);
866    let mut x474: u32 = 0;
867    let mut x475: FpU1 = 0;
868    fp_addcarryx_u32(&mut x474, &mut x475, x473, x402, x449);
869    let mut x476: u32 = 0;
870    let mut x477: FpU1 = 0;
871    fp_addcarryx_u32(&mut x476, &mut x477, x475, x404, x451);
872    let mut x478: u32 = 0;
873    let mut x479: FpU1 = 0;
874    fp_addcarryx_u32(&mut x478, &mut x479, x477, x406, x453);
875    let mut x480: u32 = 0;
876    let mut x481: FpU1 = 0;
877    fp_addcarryx_u32(&mut x480, &mut x481, x479, x408, x455);
878    let mut x482: u32 = 0;
879    let mut x483: FpU1 = 0;
880    fp_addcarryx_u32(&mut x482, &mut x483, x481, x410, x457);
881    let mut x484: u32 = 0;
882    let mut x485: FpU1 = 0;
883    fp_addcarryx_u32(&mut x484, &mut x485, x483, x412, x459);
884    let mut x486: u32 = 0;
885    let mut x487: FpU1 = 0;
886    fp_addcarryx_u32(&mut x486, &mut x487, x485, x414, x461);
887    let mut x488: u32 = 0;
888    let mut x489: FpU1 = 0;
889    fp_addcarryx_u32(&mut x488, &mut x489, x487, x416, x463);
890    let mut x490: u32 = 0;
891    let mut x491: FpU1 = 0;
892    fp_addcarryx_u32(&mut x490, &mut x491, x489, x418, x465);
893    let mut x492: u32 = 0;
894    let mut x493: FpU1 = 0;
895    fp_addcarryx_u32(&mut x492, &mut x493, x491, x420, x467);
896    let mut x494: u32 = 0;
897    let mut x495: u32 = 0;
898    fp_mulx_u32(&mut x494, &mut x495, x468, 0xffffffff);
899    let mut x496: u32 = 0;
900    let mut x497: u32 = 0;
901    fp_mulx_u32(&mut x496, &mut x497, x494, 0x1ae3a46);
902    let mut x498: u32 = 0;
903    let mut x499: u32 = 0;
904    fp_mulx_u32(&mut x498, &mut x499, x494, 0x17c510ea);
905    let mut x500: u32 = 0;
906    let mut x501: u32 = 0;
907    fp_mulx_u32(&mut x500, &mut x501, x494, 0xc63b05c0);
908    let mut x502: u32 = 0;
909    let mut x503: u32 = 0;
910    fp_mulx_u32(&mut x502, &mut x503, x494, 0x6ca1493b);
911    let mut x504: u32 = 0;
912    let mut x505: u32 = 0;
913    fp_mulx_u32(&mut x504, &mut x505, x494, 0x1a22d9f3);
914    let mut x506: u32 = 0;
915    let mut x507: u32 = 0;
916    fp_mulx_u32(&mut x506, &mut x507, x494, 0xf5138f);
917    let mut x508: u32 = 0;
918    let mut x509: u32 = 0;
919    fp_mulx_u32(&mut x508, &mut x509, x494, 0x1ef3622f);
920    let mut x510: u32 = 0;
921    let mut x511: u32 = 0;
922    fp_mulx_u32(&mut x510, &mut x511, x494, 0xba094800);
923    let mut x512: u32 = 0;
924    let mut x513: u32 = 0;
925    fp_mulx_u32(&mut x512, &mut x513, x494, 0x170b5d44);
926    let mut x514: u32 = 0;
927    let mut x515: u32 = 0;
928    fp_mulx_u32(&mut x514, &mut x515, x494, 0x30000000);
929    let mut x516: u32 = 0;
930    let mut x517: u32 = 0;
931    fp_mulx_u32(&mut x516, &mut x517, x494, 0x8508c000);
932    let mut x518: u32 = 0;
933    let mut x519: FpU1 = 0;
934    fp_addcarryx_u32(&mut x518, &mut x519, 0x0, x517, x514);
935    let mut x520: u32 = 0;
936    let mut x521: FpU1 = 0;
937    fp_addcarryx_u32(&mut x520, &mut x521, x519, x515, x512);
938    let mut x522: u32 = 0;
939    let mut x523: FpU1 = 0;
940    fp_addcarryx_u32(&mut x522, &mut x523, x521, x513, x510);
941    let mut x524: u32 = 0;
942    let mut x525: FpU1 = 0;
943    fp_addcarryx_u32(&mut x524, &mut x525, x523, x511, x508);
944    let mut x526: u32 = 0;
945    let mut x527: FpU1 = 0;
946    fp_addcarryx_u32(&mut x526, &mut x527, x525, x509, x506);
947    let mut x528: u32 = 0;
948    let mut x529: FpU1 = 0;
949    fp_addcarryx_u32(&mut x528, &mut x529, x527, x507, x504);
950    let mut x530: u32 = 0;
951    let mut x531: FpU1 = 0;
952    fp_addcarryx_u32(&mut x530, &mut x531, x529, x505, x502);
953    let mut x532: u32 = 0;
954    let mut x533: FpU1 = 0;
955    fp_addcarryx_u32(&mut x532, &mut x533, x531, x503, x500);
956    let mut x534: u32 = 0;
957    let mut x535: FpU1 = 0;
958    fp_addcarryx_u32(&mut x534, &mut x535, x533, x501, x498);
959    let mut x536: u32 = 0;
960    let mut x537: FpU1 = 0;
961    fp_addcarryx_u32(&mut x536, &mut x537, x535, x499, x496);
962    let x538: u32 = ((x537 as u32) + x497);
963    let mut x539: u32 = 0;
964    let mut x540: FpU1 = 0;
965    fp_addcarryx_u32(&mut x539, &mut x540, 0x0, x468, x494);
966    let mut x541: u32 = 0;
967    let mut x542: FpU1 = 0;
968    fp_addcarryx_u32(&mut x541, &mut x542, x540, x470, x516);
969    let mut x543: u32 = 0;
970    let mut x544: FpU1 = 0;
971    fp_addcarryx_u32(&mut x543, &mut x544, x542, x472, x518);
972    let mut x545: u32 = 0;
973    let mut x546: FpU1 = 0;
974    fp_addcarryx_u32(&mut x545, &mut x546, x544, x474, x520);
975    let mut x547: u32 = 0;
976    let mut x548: FpU1 = 0;
977    fp_addcarryx_u32(&mut x547, &mut x548, x546, x476, x522);
978    let mut x549: u32 = 0;
979    let mut x550: FpU1 = 0;
980    fp_addcarryx_u32(&mut x549, &mut x550, x548, x478, x524);
981    let mut x551: u32 = 0;
982    let mut x552: FpU1 = 0;
983    fp_addcarryx_u32(&mut x551, &mut x552, x550, x480, x526);
984    let mut x553: u32 = 0;
985    let mut x554: FpU1 = 0;
986    fp_addcarryx_u32(&mut x553, &mut x554, x552, x482, x528);
987    let mut x555: u32 = 0;
988    let mut x556: FpU1 = 0;
989    fp_addcarryx_u32(&mut x555, &mut x556, x554, x484, x530);
990    let mut x557: u32 = 0;
991    let mut x558: FpU1 = 0;
992    fp_addcarryx_u32(&mut x557, &mut x558, x556, x486, x532);
993    let mut x559: u32 = 0;
994    let mut x560: FpU1 = 0;
995    fp_addcarryx_u32(&mut x559, &mut x560, x558, x488, x534);
996    let mut x561: u32 = 0;
997    let mut x562: FpU1 = 0;
998    fp_addcarryx_u32(&mut x561, &mut x562, x560, x490, x536);
999    let mut x563: u32 = 0;
1000    let mut x564: FpU1 = 0;
1001    fp_addcarryx_u32(&mut x563, &mut x564, x562, x492, x538);
1002    let x565: u32 = ((x564 as u32) + (x493 as u32));
1003    let mut x566: u32 = 0;
1004    let mut x567: u32 = 0;
1005    fp_mulx_u32(&mut x566, &mut x567, x4, (arg2[11]));
1006    let mut x568: u32 = 0;
1007    let mut x569: u32 = 0;
1008    fp_mulx_u32(&mut x568, &mut x569, x4, (arg2[10]));
1009    let mut x570: u32 = 0;
1010    let mut x571: u32 = 0;
1011    fp_mulx_u32(&mut x570, &mut x571, x4, (arg2[9]));
1012    let mut x572: u32 = 0;
1013    let mut x573: u32 = 0;
1014    fp_mulx_u32(&mut x572, &mut x573, x4, (arg2[8]));
1015    let mut x574: u32 = 0;
1016    let mut x575: u32 = 0;
1017    fp_mulx_u32(&mut x574, &mut x575, x4, (arg2[7]));
1018    let mut x576: u32 = 0;
1019    let mut x577: u32 = 0;
1020    fp_mulx_u32(&mut x576, &mut x577, x4, (arg2[6]));
1021    let mut x578: u32 = 0;
1022    let mut x579: u32 = 0;
1023    fp_mulx_u32(&mut x578, &mut x579, x4, (arg2[5]));
1024    let mut x580: u32 = 0;
1025    let mut x581: u32 = 0;
1026    fp_mulx_u32(&mut x580, &mut x581, x4, (arg2[4]));
1027    let mut x582: u32 = 0;
1028    let mut x583: u32 = 0;
1029    fp_mulx_u32(&mut x582, &mut x583, x4, (arg2[3]));
1030    let mut x584: u32 = 0;
1031    let mut x585: u32 = 0;
1032    fp_mulx_u32(&mut x584, &mut x585, x4, (arg2[2]));
1033    let mut x586: u32 = 0;
1034    let mut x587: u32 = 0;
1035    fp_mulx_u32(&mut x586, &mut x587, x4, (arg2[1]));
1036    let mut x588: u32 = 0;
1037    let mut x589: u32 = 0;
1038    fp_mulx_u32(&mut x588, &mut x589, x4, (arg2[0]));
1039    let mut x590: u32 = 0;
1040    let mut x591: FpU1 = 0;
1041    fp_addcarryx_u32(&mut x590, &mut x591, 0x0, x589, x586);
1042    let mut x592: u32 = 0;
1043    let mut x593: FpU1 = 0;
1044    fp_addcarryx_u32(&mut x592, &mut x593, x591, x587, x584);
1045    let mut x594: u32 = 0;
1046    let mut x595: FpU1 = 0;
1047    fp_addcarryx_u32(&mut x594, &mut x595, x593, x585, x582);
1048    let mut x596: u32 = 0;
1049    let mut x597: FpU1 = 0;
1050    fp_addcarryx_u32(&mut x596, &mut x597, x595, x583, x580);
1051    let mut x598: u32 = 0;
1052    let mut x599: FpU1 = 0;
1053    fp_addcarryx_u32(&mut x598, &mut x599, x597, x581, x578);
1054    let mut x600: u32 = 0;
1055    let mut x601: FpU1 = 0;
1056    fp_addcarryx_u32(&mut x600, &mut x601, x599, x579, x576);
1057    let mut x602: u32 = 0;
1058    let mut x603: FpU1 = 0;
1059    fp_addcarryx_u32(&mut x602, &mut x603, x601, x577, x574);
1060    let mut x604: u32 = 0;
1061    let mut x605: FpU1 = 0;
1062    fp_addcarryx_u32(&mut x604, &mut x605, x603, x575, x572);
1063    let mut x606: u32 = 0;
1064    let mut x607: FpU1 = 0;
1065    fp_addcarryx_u32(&mut x606, &mut x607, x605, x573, x570);
1066    let mut x608: u32 = 0;
1067    let mut x609: FpU1 = 0;
1068    fp_addcarryx_u32(&mut x608, &mut x609, x607, x571, x568);
1069    let mut x610: u32 = 0;
1070    let mut x611: FpU1 = 0;
1071    fp_addcarryx_u32(&mut x610, &mut x611, x609, x569, x566);
1072    let x612: u32 = ((x611 as u32) + x567);
1073    let mut x613: u32 = 0;
1074    let mut x614: FpU1 = 0;
1075    fp_addcarryx_u32(&mut x613, &mut x614, 0x0, x541, x588);
1076    let mut x615: u32 = 0;
1077    let mut x616: FpU1 = 0;
1078    fp_addcarryx_u32(&mut x615, &mut x616, x614, x543, x590);
1079    let mut x617: u32 = 0;
1080    let mut x618: FpU1 = 0;
1081    fp_addcarryx_u32(&mut x617, &mut x618, x616, x545, x592);
1082    let mut x619: u32 = 0;
1083    let mut x620: FpU1 = 0;
1084    fp_addcarryx_u32(&mut x619, &mut x620, x618, x547, x594);
1085    let mut x621: u32 = 0;
1086    let mut x622: FpU1 = 0;
1087    fp_addcarryx_u32(&mut x621, &mut x622, x620, x549, x596);
1088    let mut x623: u32 = 0;
1089    let mut x624: FpU1 = 0;
1090    fp_addcarryx_u32(&mut x623, &mut x624, x622, x551, x598);
1091    let mut x625: u32 = 0;
1092    let mut x626: FpU1 = 0;
1093    fp_addcarryx_u32(&mut x625, &mut x626, x624, x553, x600);
1094    let mut x627: u32 = 0;
1095    let mut x628: FpU1 = 0;
1096    fp_addcarryx_u32(&mut x627, &mut x628, x626, x555, x602);
1097    let mut x629: u32 = 0;
1098    let mut x630: FpU1 = 0;
1099    fp_addcarryx_u32(&mut x629, &mut x630, x628, x557, x604);
1100    let mut x631: u32 = 0;
1101    let mut x632: FpU1 = 0;
1102    fp_addcarryx_u32(&mut x631, &mut x632, x630, x559, x606);
1103    let mut x633: u32 = 0;
1104    let mut x634: FpU1 = 0;
1105    fp_addcarryx_u32(&mut x633, &mut x634, x632, x561, x608);
1106    let mut x635: u32 = 0;
1107    let mut x636: FpU1 = 0;
1108    fp_addcarryx_u32(&mut x635, &mut x636, x634, x563, x610);
1109    let mut x637: u32 = 0;
1110    let mut x638: FpU1 = 0;
1111    fp_addcarryx_u32(&mut x637, &mut x638, x636, x565, x612);
1112    let mut x639: u32 = 0;
1113    let mut x640: u32 = 0;
1114    fp_mulx_u32(&mut x639, &mut x640, x613, 0xffffffff);
1115    let mut x641: u32 = 0;
1116    let mut x642: u32 = 0;
1117    fp_mulx_u32(&mut x641, &mut x642, x639, 0x1ae3a46);
1118    let mut x643: u32 = 0;
1119    let mut x644: u32 = 0;
1120    fp_mulx_u32(&mut x643, &mut x644, x639, 0x17c510ea);
1121    let mut x645: u32 = 0;
1122    let mut x646: u32 = 0;
1123    fp_mulx_u32(&mut x645, &mut x646, x639, 0xc63b05c0);
1124    let mut x647: u32 = 0;
1125    let mut x648: u32 = 0;
1126    fp_mulx_u32(&mut x647, &mut x648, x639, 0x6ca1493b);
1127    let mut x649: u32 = 0;
1128    let mut x650: u32 = 0;
1129    fp_mulx_u32(&mut x649, &mut x650, x639, 0x1a22d9f3);
1130    let mut x651: u32 = 0;
1131    let mut x652: u32 = 0;
1132    fp_mulx_u32(&mut x651, &mut x652, x639, 0xf5138f);
1133    let mut x653: u32 = 0;
1134    let mut x654: u32 = 0;
1135    fp_mulx_u32(&mut x653, &mut x654, x639, 0x1ef3622f);
1136    let mut x655: u32 = 0;
1137    let mut x656: u32 = 0;
1138    fp_mulx_u32(&mut x655, &mut x656, x639, 0xba094800);
1139    let mut x657: u32 = 0;
1140    let mut x658: u32 = 0;
1141    fp_mulx_u32(&mut x657, &mut x658, x639, 0x170b5d44);
1142    let mut x659: u32 = 0;
1143    let mut x660: u32 = 0;
1144    fp_mulx_u32(&mut x659, &mut x660, x639, 0x30000000);
1145    let mut x661: u32 = 0;
1146    let mut x662: u32 = 0;
1147    fp_mulx_u32(&mut x661, &mut x662, x639, 0x8508c000);
1148    let mut x663: u32 = 0;
1149    let mut x664: FpU1 = 0;
1150    fp_addcarryx_u32(&mut x663, &mut x664, 0x0, x662, x659);
1151    let mut x665: u32 = 0;
1152    let mut x666: FpU1 = 0;
1153    fp_addcarryx_u32(&mut x665, &mut x666, x664, x660, x657);
1154    let mut x667: u32 = 0;
1155    let mut x668: FpU1 = 0;
1156    fp_addcarryx_u32(&mut x667, &mut x668, x666, x658, x655);
1157    let mut x669: u32 = 0;
1158    let mut x670: FpU1 = 0;
1159    fp_addcarryx_u32(&mut x669, &mut x670, x668, x656, x653);
1160    let mut x671: u32 = 0;
1161    let mut x672: FpU1 = 0;
1162    fp_addcarryx_u32(&mut x671, &mut x672, x670, x654, x651);
1163    let mut x673: u32 = 0;
1164    let mut x674: FpU1 = 0;
1165    fp_addcarryx_u32(&mut x673, &mut x674, x672, x652, x649);
1166    let mut x675: u32 = 0;
1167    let mut x676: FpU1 = 0;
1168    fp_addcarryx_u32(&mut x675, &mut x676, x674, x650, x647);
1169    let mut x677: u32 = 0;
1170    let mut x678: FpU1 = 0;
1171    fp_addcarryx_u32(&mut x677, &mut x678, x676, x648, x645);
1172    let mut x679: u32 = 0;
1173    let mut x680: FpU1 = 0;
1174    fp_addcarryx_u32(&mut x679, &mut x680, x678, x646, x643);
1175    let mut x681: u32 = 0;
1176    let mut x682: FpU1 = 0;
1177    fp_addcarryx_u32(&mut x681, &mut x682, x680, x644, x641);
1178    let x683: u32 = ((x682 as u32) + x642);
1179    let mut x684: u32 = 0;
1180    let mut x685: FpU1 = 0;
1181    fp_addcarryx_u32(&mut x684, &mut x685, 0x0, x613, x639);
1182    let mut x686: u32 = 0;
1183    let mut x687: FpU1 = 0;
1184    fp_addcarryx_u32(&mut x686, &mut x687, x685, x615, x661);
1185    let mut x688: u32 = 0;
1186    let mut x689: FpU1 = 0;
1187    fp_addcarryx_u32(&mut x688, &mut x689, x687, x617, x663);
1188    let mut x690: u32 = 0;
1189    let mut x691: FpU1 = 0;
1190    fp_addcarryx_u32(&mut x690, &mut x691, x689, x619, x665);
1191    let mut x692: u32 = 0;
1192    let mut x693: FpU1 = 0;
1193    fp_addcarryx_u32(&mut x692, &mut x693, x691, x621, x667);
1194    let mut x694: u32 = 0;
1195    let mut x695: FpU1 = 0;
1196    fp_addcarryx_u32(&mut x694, &mut x695, x693, x623, x669);
1197    let mut x696: u32 = 0;
1198    let mut x697: FpU1 = 0;
1199    fp_addcarryx_u32(&mut x696, &mut x697, x695, x625, x671);
1200    let mut x698: u32 = 0;
1201    let mut x699: FpU1 = 0;
1202    fp_addcarryx_u32(&mut x698, &mut x699, x697, x627, x673);
1203    let mut x700: u32 = 0;
1204    let mut x701: FpU1 = 0;
1205    fp_addcarryx_u32(&mut x700, &mut x701, x699, x629, x675);
1206    let mut x702: u32 = 0;
1207    let mut x703: FpU1 = 0;
1208    fp_addcarryx_u32(&mut x702, &mut x703, x701, x631, x677);
1209    let mut x704: u32 = 0;
1210    let mut x705: FpU1 = 0;
1211    fp_addcarryx_u32(&mut x704, &mut x705, x703, x633, x679);
1212    let mut x706: u32 = 0;
1213    let mut x707: FpU1 = 0;
1214    fp_addcarryx_u32(&mut x706, &mut x707, x705, x635, x681);
1215    let mut x708: u32 = 0;
1216    let mut x709: FpU1 = 0;
1217    fp_addcarryx_u32(&mut x708, &mut x709, x707, x637, x683);
1218    let x710: u32 = ((x709 as u32) + (x638 as u32));
1219    let mut x711: u32 = 0;
1220    let mut x712: u32 = 0;
1221    fp_mulx_u32(&mut x711, &mut x712, x5, (arg2[11]));
1222    let mut x713: u32 = 0;
1223    let mut x714: u32 = 0;
1224    fp_mulx_u32(&mut x713, &mut x714, x5, (arg2[10]));
1225    let mut x715: u32 = 0;
1226    let mut x716: u32 = 0;
1227    fp_mulx_u32(&mut x715, &mut x716, x5, (arg2[9]));
1228    let mut x717: u32 = 0;
1229    let mut x718: u32 = 0;
1230    fp_mulx_u32(&mut x717, &mut x718, x5, (arg2[8]));
1231    let mut x719: u32 = 0;
1232    let mut x720: u32 = 0;
1233    fp_mulx_u32(&mut x719, &mut x720, x5, (arg2[7]));
1234    let mut x721: u32 = 0;
1235    let mut x722: u32 = 0;
1236    fp_mulx_u32(&mut x721, &mut x722, x5, (arg2[6]));
1237    let mut x723: u32 = 0;
1238    let mut x724: u32 = 0;
1239    fp_mulx_u32(&mut x723, &mut x724, x5, (arg2[5]));
1240    let mut x725: u32 = 0;
1241    let mut x726: u32 = 0;
1242    fp_mulx_u32(&mut x725, &mut x726, x5, (arg2[4]));
1243    let mut x727: u32 = 0;
1244    let mut x728: u32 = 0;
1245    fp_mulx_u32(&mut x727, &mut x728, x5, (arg2[3]));
1246    let mut x729: u32 = 0;
1247    let mut x730: u32 = 0;
1248    fp_mulx_u32(&mut x729, &mut x730, x5, (arg2[2]));
1249    let mut x731: u32 = 0;
1250    let mut x732: u32 = 0;
1251    fp_mulx_u32(&mut x731, &mut x732, x5, (arg2[1]));
1252    let mut x733: u32 = 0;
1253    let mut x734: u32 = 0;
1254    fp_mulx_u32(&mut x733, &mut x734, x5, (arg2[0]));
1255    let mut x735: u32 = 0;
1256    let mut x736: FpU1 = 0;
1257    fp_addcarryx_u32(&mut x735, &mut x736, 0x0, x734, x731);
1258    let mut x737: u32 = 0;
1259    let mut x738: FpU1 = 0;
1260    fp_addcarryx_u32(&mut x737, &mut x738, x736, x732, x729);
1261    let mut x739: u32 = 0;
1262    let mut x740: FpU1 = 0;
1263    fp_addcarryx_u32(&mut x739, &mut x740, x738, x730, x727);
1264    let mut x741: u32 = 0;
1265    let mut x742: FpU1 = 0;
1266    fp_addcarryx_u32(&mut x741, &mut x742, x740, x728, x725);
1267    let mut x743: u32 = 0;
1268    let mut x744: FpU1 = 0;
1269    fp_addcarryx_u32(&mut x743, &mut x744, x742, x726, x723);
1270    let mut x745: u32 = 0;
1271    let mut x746: FpU1 = 0;
1272    fp_addcarryx_u32(&mut x745, &mut x746, x744, x724, x721);
1273    let mut x747: u32 = 0;
1274    let mut x748: FpU1 = 0;
1275    fp_addcarryx_u32(&mut x747, &mut x748, x746, x722, x719);
1276    let mut x749: u32 = 0;
1277    let mut x750: FpU1 = 0;
1278    fp_addcarryx_u32(&mut x749, &mut x750, x748, x720, x717);
1279    let mut x751: u32 = 0;
1280    let mut x752: FpU1 = 0;
1281    fp_addcarryx_u32(&mut x751, &mut x752, x750, x718, x715);
1282    let mut x753: u32 = 0;
1283    let mut x754: FpU1 = 0;
1284    fp_addcarryx_u32(&mut x753, &mut x754, x752, x716, x713);
1285    let mut x755: u32 = 0;
1286    let mut x756: FpU1 = 0;
1287    fp_addcarryx_u32(&mut x755, &mut x756, x754, x714, x711);
1288    let x757: u32 = ((x756 as u32) + x712);
1289    let mut x758: u32 = 0;
1290    let mut x759: FpU1 = 0;
1291    fp_addcarryx_u32(&mut x758, &mut x759, 0x0, x686, x733);
1292    let mut x760: u32 = 0;
1293    let mut x761: FpU1 = 0;
1294    fp_addcarryx_u32(&mut x760, &mut x761, x759, x688, x735);
1295    let mut x762: u32 = 0;
1296    let mut x763: FpU1 = 0;
1297    fp_addcarryx_u32(&mut x762, &mut x763, x761, x690, x737);
1298    let mut x764: u32 = 0;
1299    let mut x765: FpU1 = 0;
1300    fp_addcarryx_u32(&mut x764, &mut x765, x763, x692, x739);
1301    let mut x766: u32 = 0;
1302    let mut x767: FpU1 = 0;
1303    fp_addcarryx_u32(&mut x766, &mut x767, x765, x694, x741);
1304    let mut x768: u32 = 0;
1305    let mut x769: FpU1 = 0;
1306    fp_addcarryx_u32(&mut x768, &mut x769, x767, x696, x743);
1307    let mut x770: u32 = 0;
1308    let mut x771: FpU1 = 0;
1309    fp_addcarryx_u32(&mut x770, &mut x771, x769, x698, x745);
1310    let mut x772: u32 = 0;
1311    let mut x773: FpU1 = 0;
1312    fp_addcarryx_u32(&mut x772, &mut x773, x771, x700, x747);
1313    let mut x774: u32 = 0;
1314    let mut x775: FpU1 = 0;
1315    fp_addcarryx_u32(&mut x774, &mut x775, x773, x702, x749);
1316    let mut x776: u32 = 0;
1317    let mut x777: FpU1 = 0;
1318    fp_addcarryx_u32(&mut x776, &mut x777, x775, x704, x751);
1319    let mut x778: u32 = 0;
1320    let mut x779: FpU1 = 0;
1321    fp_addcarryx_u32(&mut x778, &mut x779, x777, x706, x753);
1322    let mut x780: u32 = 0;
1323    let mut x781: FpU1 = 0;
1324    fp_addcarryx_u32(&mut x780, &mut x781, x779, x708, x755);
1325    let mut x782: u32 = 0;
1326    let mut x783: FpU1 = 0;
1327    fp_addcarryx_u32(&mut x782, &mut x783, x781, x710, x757);
1328    let mut x784: u32 = 0;
1329    let mut x785: u32 = 0;
1330    fp_mulx_u32(&mut x784, &mut x785, x758, 0xffffffff);
1331    let mut x786: u32 = 0;
1332    let mut x787: u32 = 0;
1333    fp_mulx_u32(&mut x786, &mut x787, x784, 0x1ae3a46);
1334    let mut x788: u32 = 0;
1335    let mut x789: u32 = 0;
1336    fp_mulx_u32(&mut x788, &mut x789, x784, 0x17c510ea);
1337    let mut x790: u32 = 0;
1338    let mut x791: u32 = 0;
1339    fp_mulx_u32(&mut x790, &mut x791, x784, 0xc63b05c0);
1340    let mut x792: u32 = 0;
1341    let mut x793: u32 = 0;
1342    fp_mulx_u32(&mut x792, &mut x793, x784, 0x6ca1493b);
1343    let mut x794: u32 = 0;
1344    let mut x795: u32 = 0;
1345    fp_mulx_u32(&mut x794, &mut x795, x784, 0x1a22d9f3);
1346    let mut x796: u32 = 0;
1347    let mut x797: u32 = 0;
1348    fp_mulx_u32(&mut x796, &mut x797, x784, 0xf5138f);
1349    let mut x798: u32 = 0;
1350    let mut x799: u32 = 0;
1351    fp_mulx_u32(&mut x798, &mut x799, x784, 0x1ef3622f);
1352    let mut x800: u32 = 0;
1353    let mut x801: u32 = 0;
1354    fp_mulx_u32(&mut x800, &mut x801, x784, 0xba094800);
1355    let mut x802: u32 = 0;
1356    let mut x803: u32 = 0;
1357    fp_mulx_u32(&mut x802, &mut x803, x784, 0x170b5d44);
1358    let mut x804: u32 = 0;
1359    let mut x805: u32 = 0;
1360    fp_mulx_u32(&mut x804, &mut x805, x784, 0x30000000);
1361    let mut x806: u32 = 0;
1362    let mut x807: u32 = 0;
1363    fp_mulx_u32(&mut x806, &mut x807, x784, 0x8508c000);
1364    let mut x808: u32 = 0;
1365    let mut x809: FpU1 = 0;
1366    fp_addcarryx_u32(&mut x808, &mut x809, 0x0, x807, x804);
1367    let mut x810: u32 = 0;
1368    let mut x811: FpU1 = 0;
1369    fp_addcarryx_u32(&mut x810, &mut x811, x809, x805, x802);
1370    let mut x812: u32 = 0;
1371    let mut x813: FpU1 = 0;
1372    fp_addcarryx_u32(&mut x812, &mut x813, x811, x803, x800);
1373    let mut x814: u32 = 0;
1374    let mut x815: FpU1 = 0;
1375    fp_addcarryx_u32(&mut x814, &mut x815, x813, x801, x798);
1376    let mut x816: u32 = 0;
1377    let mut x817: FpU1 = 0;
1378    fp_addcarryx_u32(&mut x816, &mut x817, x815, x799, x796);
1379    let mut x818: u32 = 0;
1380    let mut x819: FpU1 = 0;
1381    fp_addcarryx_u32(&mut x818, &mut x819, x817, x797, x794);
1382    let mut x820: u32 = 0;
1383    let mut x821: FpU1 = 0;
1384    fp_addcarryx_u32(&mut x820, &mut x821, x819, x795, x792);
1385    let mut x822: u32 = 0;
1386    let mut x823: FpU1 = 0;
1387    fp_addcarryx_u32(&mut x822, &mut x823, x821, x793, x790);
1388    let mut x824: u32 = 0;
1389    let mut x825: FpU1 = 0;
1390    fp_addcarryx_u32(&mut x824, &mut x825, x823, x791, x788);
1391    let mut x826: u32 = 0;
1392    let mut x827: FpU1 = 0;
1393    fp_addcarryx_u32(&mut x826, &mut x827, x825, x789, x786);
1394    let x828: u32 = ((x827 as u32) + x787);
1395    let mut x829: u32 = 0;
1396    let mut x830: FpU1 = 0;
1397    fp_addcarryx_u32(&mut x829, &mut x830, 0x0, x758, x784);
1398    let mut x831: u32 = 0;
1399    let mut x832: FpU1 = 0;
1400    fp_addcarryx_u32(&mut x831, &mut x832, x830, x760, x806);
1401    let mut x833: u32 = 0;
1402    let mut x834: FpU1 = 0;
1403    fp_addcarryx_u32(&mut x833, &mut x834, x832, x762, x808);
1404    let mut x835: u32 = 0;
1405    let mut x836: FpU1 = 0;
1406    fp_addcarryx_u32(&mut x835, &mut x836, x834, x764, x810);
1407    let mut x837: u32 = 0;
1408    let mut x838: FpU1 = 0;
1409    fp_addcarryx_u32(&mut x837, &mut x838, x836, x766, x812);
1410    let mut x839: u32 = 0;
1411    let mut x840: FpU1 = 0;
1412    fp_addcarryx_u32(&mut x839, &mut x840, x838, x768, x814);
1413    let mut x841: u32 = 0;
1414    let mut x842: FpU1 = 0;
1415    fp_addcarryx_u32(&mut x841, &mut x842, x840, x770, x816);
1416    let mut x843: u32 = 0;
1417    let mut x844: FpU1 = 0;
1418    fp_addcarryx_u32(&mut x843, &mut x844, x842, x772, x818);
1419    let mut x845: u32 = 0;
1420    let mut x846: FpU1 = 0;
1421    fp_addcarryx_u32(&mut x845, &mut x846, x844, x774, x820);
1422    let mut x847: u32 = 0;
1423    let mut x848: FpU1 = 0;
1424    fp_addcarryx_u32(&mut x847, &mut x848, x846, x776, x822);
1425    let mut x849: u32 = 0;
1426    let mut x850: FpU1 = 0;
1427    fp_addcarryx_u32(&mut x849, &mut x850, x848, x778, x824);
1428    let mut x851: u32 = 0;
1429    let mut x852: FpU1 = 0;
1430    fp_addcarryx_u32(&mut x851, &mut x852, x850, x780, x826);
1431    let mut x853: u32 = 0;
1432    let mut x854: FpU1 = 0;
1433    fp_addcarryx_u32(&mut x853, &mut x854, x852, x782, x828);
1434    let x855: u32 = ((x854 as u32) + (x783 as u32));
1435    let mut x856: u32 = 0;
1436    let mut x857: u32 = 0;
1437    fp_mulx_u32(&mut x856, &mut x857, x6, (arg2[11]));
1438    let mut x858: u32 = 0;
1439    let mut x859: u32 = 0;
1440    fp_mulx_u32(&mut x858, &mut x859, x6, (arg2[10]));
1441    let mut x860: u32 = 0;
1442    let mut x861: u32 = 0;
1443    fp_mulx_u32(&mut x860, &mut x861, x6, (arg2[9]));
1444    let mut x862: u32 = 0;
1445    let mut x863: u32 = 0;
1446    fp_mulx_u32(&mut x862, &mut x863, x6, (arg2[8]));
1447    let mut x864: u32 = 0;
1448    let mut x865: u32 = 0;
1449    fp_mulx_u32(&mut x864, &mut x865, x6, (arg2[7]));
1450    let mut x866: u32 = 0;
1451    let mut x867: u32 = 0;
1452    fp_mulx_u32(&mut x866, &mut x867, x6, (arg2[6]));
1453    let mut x868: u32 = 0;
1454    let mut x869: u32 = 0;
1455    fp_mulx_u32(&mut x868, &mut x869, x6, (arg2[5]));
1456    let mut x870: u32 = 0;
1457    let mut x871: u32 = 0;
1458    fp_mulx_u32(&mut x870, &mut x871, x6, (arg2[4]));
1459    let mut x872: u32 = 0;
1460    let mut x873: u32 = 0;
1461    fp_mulx_u32(&mut x872, &mut x873, x6, (arg2[3]));
1462    let mut x874: u32 = 0;
1463    let mut x875: u32 = 0;
1464    fp_mulx_u32(&mut x874, &mut x875, x6, (arg2[2]));
1465    let mut x876: u32 = 0;
1466    let mut x877: u32 = 0;
1467    fp_mulx_u32(&mut x876, &mut x877, x6, (arg2[1]));
1468    let mut x878: u32 = 0;
1469    let mut x879: u32 = 0;
1470    fp_mulx_u32(&mut x878, &mut x879, x6, (arg2[0]));
1471    let mut x880: u32 = 0;
1472    let mut x881: FpU1 = 0;
1473    fp_addcarryx_u32(&mut x880, &mut x881, 0x0, x879, x876);
1474    let mut x882: u32 = 0;
1475    let mut x883: FpU1 = 0;
1476    fp_addcarryx_u32(&mut x882, &mut x883, x881, x877, x874);
1477    let mut x884: u32 = 0;
1478    let mut x885: FpU1 = 0;
1479    fp_addcarryx_u32(&mut x884, &mut x885, x883, x875, x872);
1480    let mut x886: u32 = 0;
1481    let mut x887: FpU1 = 0;
1482    fp_addcarryx_u32(&mut x886, &mut x887, x885, x873, x870);
1483    let mut x888: u32 = 0;
1484    let mut x889: FpU1 = 0;
1485    fp_addcarryx_u32(&mut x888, &mut x889, x887, x871, x868);
1486    let mut x890: u32 = 0;
1487    let mut x891: FpU1 = 0;
1488    fp_addcarryx_u32(&mut x890, &mut x891, x889, x869, x866);
1489    let mut x892: u32 = 0;
1490    let mut x893: FpU1 = 0;
1491    fp_addcarryx_u32(&mut x892, &mut x893, x891, x867, x864);
1492    let mut x894: u32 = 0;
1493    let mut x895: FpU1 = 0;
1494    fp_addcarryx_u32(&mut x894, &mut x895, x893, x865, x862);
1495    let mut x896: u32 = 0;
1496    let mut x897: FpU1 = 0;
1497    fp_addcarryx_u32(&mut x896, &mut x897, x895, x863, x860);
1498    let mut x898: u32 = 0;
1499    let mut x899: FpU1 = 0;
1500    fp_addcarryx_u32(&mut x898, &mut x899, x897, x861, x858);
1501    let mut x900: u32 = 0;
1502    let mut x901: FpU1 = 0;
1503    fp_addcarryx_u32(&mut x900, &mut x901, x899, x859, x856);
1504    let x902: u32 = ((x901 as u32) + x857);
1505    let mut x903: u32 = 0;
1506    let mut x904: FpU1 = 0;
1507    fp_addcarryx_u32(&mut x903, &mut x904, 0x0, x831, x878);
1508    let mut x905: u32 = 0;
1509    let mut x906: FpU1 = 0;
1510    fp_addcarryx_u32(&mut x905, &mut x906, x904, x833, x880);
1511    let mut x907: u32 = 0;
1512    let mut x908: FpU1 = 0;
1513    fp_addcarryx_u32(&mut x907, &mut x908, x906, x835, x882);
1514    let mut x909: u32 = 0;
1515    let mut x910: FpU1 = 0;
1516    fp_addcarryx_u32(&mut x909, &mut x910, x908, x837, x884);
1517    let mut x911: u32 = 0;
1518    let mut x912: FpU1 = 0;
1519    fp_addcarryx_u32(&mut x911, &mut x912, x910, x839, x886);
1520    let mut x913: u32 = 0;
1521    let mut x914: FpU1 = 0;
1522    fp_addcarryx_u32(&mut x913, &mut x914, x912, x841, x888);
1523    let mut x915: u32 = 0;
1524    let mut x916: FpU1 = 0;
1525    fp_addcarryx_u32(&mut x915, &mut x916, x914, x843, x890);
1526    let mut x917: u32 = 0;
1527    let mut x918: FpU1 = 0;
1528    fp_addcarryx_u32(&mut x917, &mut x918, x916, x845, x892);
1529    let mut x919: u32 = 0;
1530    let mut x920: FpU1 = 0;
1531    fp_addcarryx_u32(&mut x919, &mut x920, x918, x847, x894);
1532    let mut x921: u32 = 0;
1533    let mut x922: FpU1 = 0;
1534    fp_addcarryx_u32(&mut x921, &mut x922, x920, x849, x896);
1535    let mut x923: u32 = 0;
1536    let mut x924: FpU1 = 0;
1537    fp_addcarryx_u32(&mut x923, &mut x924, x922, x851, x898);
1538    let mut x925: u32 = 0;
1539    let mut x926: FpU1 = 0;
1540    fp_addcarryx_u32(&mut x925, &mut x926, x924, x853, x900);
1541    let mut x927: u32 = 0;
1542    let mut x928: FpU1 = 0;
1543    fp_addcarryx_u32(&mut x927, &mut x928, x926, x855, x902);
1544    let mut x929: u32 = 0;
1545    let mut x930: u32 = 0;
1546    fp_mulx_u32(&mut x929, &mut x930, x903, 0xffffffff);
1547    let mut x931: u32 = 0;
1548    let mut x932: u32 = 0;
1549    fp_mulx_u32(&mut x931, &mut x932, x929, 0x1ae3a46);
1550    let mut x933: u32 = 0;
1551    let mut x934: u32 = 0;
1552    fp_mulx_u32(&mut x933, &mut x934, x929, 0x17c510ea);
1553    let mut x935: u32 = 0;
1554    let mut x936: u32 = 0;
1555    fp_mulx_u32(&mut x935, &mut x936, x929, 0xc63b05c0);
1556    let mut x937: u32 = 0;
1557    let mut x938: u32 = 0;
1558    fp_mulx_u32(&mut x937, &mut x938, x929, 0x6ca1493b);
1559    let mut x939: u32 = 0;
1560    let mut x940: u32 = 0;
1561    fp_mulx_u32(&mut x939, &mut x940, x929, 0x1a22d9f3);
1562    let mut x941: u32 = 0;
1563    let mut x942: u32 = 0;
1564    fp_mulx_u32(&mut x941, &mut x942, x929, 0xf5138f);
1565    let mut x943: u32 = 0;
1566    let mut x944: u32 = 0;
1567    fp_mulx_u32(&mut x943, &mut x944, x929, 0x1ef3622f);
1568    let mut x945: u32 = 0;
1569    let mut x946: u32 = 0;
1570    fp_mulx_u32(&mut x945, &mut x946, x929, 0xba094800);
1571    let mut x947: u32 = 0;
1572    let mut x948: u32 = 0;
1573    fp_mulx_u32(&mut x947, &mut x948, x929, 0x170b5d44);
1574    let mut x949: u32 = 0;
1575    let mut x950: u32 = 0;
1576    fp_mulx_u32(&mut x949, &mut x950, x929, 0x30000000);
1577    let mut x951: u32 = 0;
1578    let mut x952: u32 = 0;
1579    fp_mulx_u32(&mut x951, &mut x952, x929, 0x8508c000);
1580    let mut x953: u32 = 0;
1581    let mut x954: FpU1 = 0;
1582    fp_addcarryx_u32(&mut x953, &mut x954, 0x0, x952, x949);
1583    let mut x955: u32 = 0;
1584    let mut x956: FpU1 = 0;
1585    fp_addcarryx_u32(&mut x955, &mut x956, x954, x950, x947);
1586    let mut x957: u32 = 0;
1587    let mut x958: FpU1 = 0;
1588    fp_addcarryx_u32(&mut x957, &mut x958, x956, x948, x945);
1589    let mut x959: u32 = 0;
1590    let mut x960: FpU1 = 0;
1591    fp_addcarryx_u32(&mut x959, &mut x960, x958, x946, x943);
1592    let mut x961: u32 = 0;
1593    let mut x962: FpU1 = 0;
1594    fp_addcarryx_u32(&mut x961, &mut x962, x960, x944, x941);
1595    let mut x963: u32 = 0;
1596    let mut x964: FpU1 = 0;
1597    fp_addcarryx_u32(&mut x963, &mut x964, x962, x942, x939);
1598    let mut x965: u32 = 0;
1599    let mut x966: FpU1 = 0;
1600    fp_addcarryx_u32(&mut x965, &mut x966, x964, x940, x937);
1601    let mut x967: u32 = 0;
1602    let mut x968: FpU1 = 0;
1603    fp_addcarryx_u32(&mut x967, &mut x968, x966, x938, x935);
1604    let mut x969: u32 = 0;
1605    let mut x970: FpU1 = 0;
1606    fp_addcarryx_u32(&mut x969, &mut x970, x968, x936, x933);
1607    let mut x971: u32 = 0;
1608    let mut x972: FpU1 = 0;
1609    fp_addcarryx_u32(&mut x971, &mut x972, x970, x934, x931);
1610    let x973: u32 = ((x972 as u32) + x932);
1611    let mut x974: u32 = 0;
1612    let mut x975: FpU1 = 0;
1613    fp_addcarryx_u32(&mut x974, &mut x975, 0x0, x903, x929);
1614    let mut x976: u32 = 0;
1615    let mut x977: FpU1 = 0;
1616    fp_addcarryx_u32(&mut x976, &mut x977, x975, x905, x951);
1617    let mut x978: u32 = 0;
1618    let mut x979: FpU1 = 0;
1619    fp_addcarryx_u32(&mut x978, &mut x979, x977, x907, x953);
1620    let mut x980: u32 = 0;
1621    let mut x981: FpU1 = 0;
1622    fp_addcarryx_u32(&mut x980, &mut x981, x979, x909, x955);
1623    let mut x982: u32 = 0;
1624    let mut x983: FpU1 = 0;
1625    fp_addcarryx_u32(&mut x982, &mut x983, x981, x911, x957);
1626    let mut x984: u32 = 0;
1627    let mut x985: FpU1 = 0;
1628    fp_addcarryx_u32(&mut x984, &mut x985, x983, x913, x959);
1629    let mut x986: u32 = 0;
1630    let mut x987: FpU1 = 0;
1631    fp_addcarryx_u32(&mut x986, &mut x987, x985, x915, x961);
1632    let mut x988: u32 = 0;
1633    let mut x989: FpU1 = 0;
1634    fp_addcarryx_u32(&mut x988, &mut x989, x987, x917, x963);
1635    let mut x990: u32 = 0;
1636    let mut x991: FpU1 = 0;
1637    fp_addcarryx_u32(&mut x990, &mut x991, x989, x919, x965);
1638    let mut x992: u32 = 0;
1639    let mut x993: FpU1 = 0;
1640    fp_addcarryx_u32(&mut x992, &mut x993, x991, x921, x967);
1641    let mut x994: u32 = 0;
1642    let mut x995: FpU1 = 0;
1643    fp_addcarryx_u32(&mut x994, &mut x995, x993, x923, x969);
1644    let mut x996: u32 = 0;
1645    let mut x997: FpU1 = 0;
1646    fp_addcarryx_u32(&mut x996, &mut x997, x995, x925, x971);
1647    let mut x998: u32 = 0;
1648    let mut x999: FpU1 = 0;
1649    fp_addcarryx_u32(&mut x998, &mut x999, x997, x927, x973);
1650    let x1000: u32 = ((x999 as u32) + (x928 as u32));
1651    let mut x1001: u32 = 0;
1652    let mut x1002: u32 = 0;
1653    fp_mulx_u32(&mut x1001, &mut x1002, x7, (arg2[11]));
1654    let mut x1003: u32 = 0;
1655    let mut x1004: u32 = 0;
1656    fp_mulx_u32(&mut x1003, &mut x1004, x7, (arg2[10]));
1657    let mut x1005: u32 = 0;
1658    let mut x1006: u32 = 0;
1659    fp_mulx_u32(&mut x1005, &mut x1006, x7, (arg2[9]));
1660    let mut x1007: u32 = 0;
1661    let mut x1008: u32 = 0;
1662    fp_mulx_u32(&mut x1007, &mut x1008, x7, (arg2[8]));
1663    let mut x1009: u32 = 0;
1664    let mut x1010: u32 = 0;
1665    fp_mulx_u32(&mut x1009, &mut x1010, x7, (arg2[7]));
1666    let mut x1011: u32 = 0;
1667    let mut x1012: u32 = 0;
1668    fp_mulx_u32(&mut x1011, &mut x1012, x7, (arg2[6]));
1669    let mut x1013: u32 = 0;
1670    let mut x1014: u32 = 0;
1671    fp_mulx_u32(&mut x1013, &mut x1014, x7, (arg2[5]));
1672    let mut x1015: u32 = 0;
1673    let mut x1016: u32 = 0;
1674    fp_mulx_u32(&mut x1015, &mut x1016, x7, (arg2[4]));
1675    let mut x1017: u32 = 0;
1676    let mut x1018: u32 = 0;
1677    fp_mulx_u32(&mut x1017, &mut x1018, x7, (arg2[3]));
1678    let mut x1019: u32 = 0;
1679    let mut x1020: u32 = 0;
1680    fp_mulx_u32(&mut x1019, &mut x1020, x7, (arg2[2]));
1681    let mut x1021: u32 = 0;
1682    let mut x1022: u32 = 0;
1683    fp_mulx_u32(&mut x1021, &mut x1022, x7, (arg2[1]));
1684    let mut x1023: u32 = 0;
1685    let mut x1024: u32 = 0;
1686    fp_mulx_u32(&mut x1023, &mut x1024, x7, (arg2[0]));
1687    let mut x1025: u32 = 0;
1688    let mut x1026: FpU1 = 0;
1689    fp_addcarryx_u32(&mut x1025, &mut x1026, 0x0, x1024, x1021);
1690    let mut x1027: u32 = 0;
1691    let mut x1028: FpU1 = 0;
1692    fp_addcarryx_u32(&mut x1027, &mut x1028, x1026, x1022, x1019);
1693    let mut x1029: u32 = 0;
1694    let mut x1030: FpU1 = 0;
1695    fp_addcarryx_u32(&mut x1029, &mut x1030, x1028, x1020, x1017);
1696    let mut x1031: u32 = 0;
1697    let mut x1032: FpU1 = 0;
1698    fp_addcarryx_u32(&mut x1031, &mut x1032, x1030, x1018, x1015);
1699    let mut x1033: u32 = 0;
1700    let mut x1034: FpU1 = 0;
1701    fp_addcarryx_u32(&mut x1033, &mut x1034, x1032, x1016, x1013);
1702    let mut x1035: u32 = 0;
1703    let mut x1036: FpU1 = 0;
1704    fp_addcarryx_u32(&mut x1035, &mut x1036, x1034, x1014, x1011);
1705    let mut x1037: u32 = 0;
1706    let mut x1038: FpU1 = 0;
1707    fp_addcarryx_u32(&mut x1037, &mut x1038, x1036, x1012, x1009);
1708    let mut x1039: u32 = 0;
1709    let mut x1040: FpU1 = 0;
1710    fp_addcarryx_u32(&mut x1039, &mut x1040, x1038, x1010, x1007);
1711    let mut x1041: u32 = 0;
1712    let mut x1042: FpU1 = 0;
1713    fp_addcarryx_u32(&mut x1041, &mut x1042, x1040, x1008, x1005);
1714    let mut x1043: u32 = 0;
1715    let mut x1044: FpU1 = 0;
1716    fp_addcarryx_u32(&mut x1043, &mut x1044, x1042, x1006, x1003);
1717    let mut x1045: u32 = 0;
1718    let mut x1046: FpU1 = 0;
1719    fp_addcarryx_u32(&mut x1045, &mut x1046, x1044, x1004, x1001);
1720    let x1047: u32 = ((x1046 as u32) + x1002);
1721    let mut x1048: u32 = 0;
1722    let mut x1049: FpU1 = 0;
1723    fp_addcarryx_u32(&mut x1048, &mut x1049, 0x0, x976, x1023);
1724    let mut x1050: u32 = 0;
1725    let mut x1051: FpU1 = 0;
1726    fp_addcarryx_u32(&mut x1050, &mut x1051, x1049, x978, x1025);
1727    let mut x1052: u32 = 0;
1728    let mut x1053: FpU1 = 0;
1729    fp_addcarryx_u32(&mut x1052, &mut x1053, x1051, x980, x1027);
1730    let mut x1054: u32 = 0;
1731    let mut x1055: FpU1 = 0;
1732    fp_addcarryx_u32(&mut x1054, &mut x1055, x1053, x982, x1029);
1733    let mut x1056: u32 = 0;
1734    let mut x1057: FpU1 = 0;
1735    fp_addcarryx_u32(&mut x1056, &mut x1057, x1055, x984, x1031);
1736    let mut x1058: u32 = 0;
1737    let mut x1059: FpU1 = 0;
1738    fp_addcarryx_u32(&mut x1058, &mut x1059, x1057, x986, x1033);
1739    let mut x1060: u32 = 0;
1740    let mut x1061: FpU1 = 0;
1741    fp_addcarryx_u32(&mut x1060, &mut x1061, x1059, x988, x1035);
1742    let mut x1062: u32 = 0;
1743    let mut x1063: FpU1 = 0;
1744    fp_addcarryx_u32(&mut x1062, &mut x1063, x1061, x990, x1037);
1745    let mut x1064: u32 = 0;
1746    let mut x1065: FpU1 = 0;
1747    fp_addcarryx_u32(&mut x1064, &mut x1065, x1063, x992, x1039);
1748    let mut x1066: u32 = 0;
1749    let mut x1067: FpU1 = 0;
1750    fp_addcarryx_u32(&mut x1066, &mut x1067, x1065, x994, x1041);
1751    let mut x1068: u32 = 0;
1752    let mut x1069: FpU1 = 0;
1753    fp_addcarryx_u32(&mut x1068, &mut x1069, x1067, x996, x1043);
1754    let mut x1070: u32 = 0;
1755    let mut x1071: FpU1 = 0;
1756    fp_addcarryx_u32(&mut x1070, &mut x1071, x1069, x998, x1045);
1757    let mut x1072: u32 = 0;
1758    let mut x1073: FpU1 = 0;
1759    fp_addcarryx_u32(&mut x1072, &mut x1073, x1071, x1000, x1047);
1760    let mut x1074: u32 = 0;
1761    let mut x1075: u32 = 0;
1762    fp_mulx_u32(&mut x1074, &mut x1075, x1048, 0xffffffff);
1763    let mut x1076: u32 = 0;
1764    let mut x1077: u32 = 0;
1765    fp_mulx_u32(&mut x1076, &mut x1077, x1074, 0x1ae3a46);
1766    let mut x1078: u32 = 0;
1767    let mut x1079: u32 = 0;
1768    fp_mulx_u32(&mut x1078, &mut x1079, x1074, 0x17c510ea);
1769    let mut x1080: u32 = 0;
1770    let mut x1081: u32 = 0;
1771    fp_mulx_u32(&mut x1080, &mut x1081, x1074, 0xc63b05c0);
1772    let mut x1082: u32 = 0;
1773    let mut x1083: u32 = 0;
1774    fp_mulx_u32(&mut x1082, &mut x1083, x1074, 0x6ca1493b);
1775    let mut x1084: u32 = 0;
1776    let mut x1085: u32 = 0;
1777    fp_mulx_u32(&mut x1084, &mut x1085, x1074, 0x1a22d9f3);
1778    let mut x1086: u32 = 0;
1779    let mut x1087: u32 = 0;
1780    fp_mulx_u32(&mut x1086, &mut x1087, x1074, 0xf5138f);
1781    let mut x1088: u32 = 0;
1782    let mut x1089: u32 = 0;
1783    fp_mulx_u32(&mut x1088, &mut x1089, x1074, 0x1ef3622f);
1784    let mut x1090: u32 = 0;
1785    let mut x1091: u32 = 0;
1786    fp_mulx_u32(&mut x1090, &mut x1091, x1074, 0xba094800);
1787    let mut x1092: u32 = 0;
1788    let mut x1093: u32 = 0;
1789    fp_mulx_u32(&mut x1092, &mut x1093, x1074, 0x170b5d44);
1790    let mut x1094: u32 = 0;
1791    let mut x1095: u32 = 0;
1792    fp_mulx_u32(&mut x1094, &mut x1095, x1074, 0x30000000);
1793    let mut x1096: u32 = 0;
1794    let mut x1097: u32 = 0;
1795    fp_mulx_u32(&mut x1096, &mut x1097, x1074, 0x8508c000);
1796    let mut x1098: u32 = 0;
1797    let mut x1099: FpU1 = 0;
1798    fp_addcarryx_u32(&mut x1098, &mut x1099, 0x0, x1097, x1094);
1799    let mut x1100: u32 = 0;
1800    let mut x1101: FpU1 = 0;
1801    fp_addcarryx_u32(&mut x1100, &mut x1101, x1099, x1095, x1092);
1802    let mut x1102: u32 = 0;
1803    let mut x1103: FpU1 = 0;
1804    fp_addcarryx_u32(&mut x1102, &mut x1103, x1101, x1093, x1090);
1805    let mut x1104: u32 = 0;
1806    let mut x1105: FpU1 = 0;
1807    fp_addcarryx_u32(&mut x1104, &mut x1105, x1103, x1091, x1088);
1808    let mut x1106: u32 = 0;
1809    let mut x1107: FpU1 = 0;
1810    fp_addcarryx_u32(&mut x1106, &mut x1107, x1105, x1089, x1086);
1811    let mut x1108: u32 = 0;
1812    let mut x1109: FpU1 = 0;
1813    fp_addcarryx_u32(&mut x1108, &mut x1109, x1107, x1087, x1084);
1814    let mut x1110: u32 = 0;
1815    let mut x1111: FpU1 = 0;
1816    fp_addcarryx_u32(&mut x1110, &mut x1111, x1109, x1085, x1082);
1817    let mut x1112: u32 = 0;
1818    let mut x1113: FpU1 = 0;
1819    fp_addcarryx_u32(&mut x1112, &mut x1113, x1111, x1083, x1080);
1820    let mut x1114: u32 = 0;
1821    let mut x1115: FpU1 = 0;
1822    fp_addcarryx_u32(&mut x1114, &mut x1115, x1113, x1081, x1078);
1823    let mut x1116: u32 = 0;
1824    let mut x1117: FpU1 = 0;
1825    fp_addcarryx_u32(&mut x1116, &mut x1117, x1115, x1079, x1076);
1826    let x1118: u32 = ((x1117 as u32) + x1077);
1827    let mut x1119: u32 = 0;
1828    let mut x1120: FpU1 = 0;
1829    fp_addcarryx_u32(&mut x1119, &mut x1120, 0x0, x1048, x1074);
1830    let mut x1121: u32 = 0;
1831    let mut x1122: FpU1 = 0;
1832    fp_addcarryx_u32(&mut x1121, &mut x1122, x1120, x1050, x1096);
1833    let mut x1123: u32 = 0;
1834    let mut x1124: FpU1 = 0;
1835    fp_addcarryx_u32(&mut x1123, &mut x1124, x1122, x1052, x1098);
1836    let mut x1125: u32 = 0;
1837    let mut x1126: FpU1 = 0;
1838    fp_addcarryx_u32(&mut x1125, &mut x1126, x1124, x1054, x1100);
1839    let mut x1127: u32 = 0;
1840    let mut x1128: FpU1 = 0;
1841    fp_addcarryx_u32(&mut x1127, &mut x1128, x1126, x1056, x1102);
1842    let mut x1129: u32 = 0;
1843    let mut x1130: FpU1 = 0;
1844    fp_addcarryx_u32(&mut x1129, &mut x1130, x1128, x1058, x1104);
1845    let mut x1131: u32 = 0;
1846    let mut x1132: FpU1 = 0;
1847    fp_addcarryx_u32(&mut x1131, &mut x1132, x1130, x1060, x1106);
1848    let mut x1133: u32 = 0;
1849    let mut x1134: FpU1 = 0;
1850    fp_addcarryx_u32(&mut x1133, &mut x1134, x1132, x1062, x1108);
1851    let mut x1135: u32 = 0;
1852    let mut x1136: FpU1 = 0;
1853    fp_addcarryx_u32(&mut x1135, &mut x1136, x1134, x1064, x1110);
1854    let mut x1137: u32 = 0;
1855    let mut x1138: FpU1 = 0;
1856    fp_addcarryx_u32(&mut x1137, &mut x1138, x1136, x1066, x1112);
1857    let mut x1139: u32 = 0;
1858    let mut x1140: FpU1 = 0;
1859    fp_addcarryx_u32(&mut x1139, &mut x1140, x1138, x1068, x1114);
1860    let mut x1141: u32 = 0;
1861    let mut x1142: FpU1 = 0;
1862    fp_addcarryx_u32(&mut x1141, &mut x1142, x1140, x1070, x1116);
1863    let mut x1143: u32 = 0;
1864    let mut x1144: FpU1 = 0;
1865    fp_addcarryx_u32(&mut x1143, &mut x1144, x1142, x1072, x1118);
1866    let x1145: u32 = ((x1144 as u32) + (x1073 as u32));
1867    let mut x1146: u32 = 0;
1868    let mut x1147: u32 = 0;
1869    fp_mulx_u32(&mut x1146, &mut x1147, x8, (arg2[11]));
1870    let mut x1148: u32 = 0;
1871    let mut x1149: u32 = 0;
1872    fp_mulx_u32(&mut x1148, &mut x1149, x8, (arg2[10]));
1873    let mut x1150: u32 = 0;
1874    let mut x1151: u32 = 0;
1875    fp_mulx_u32(&mut x1150, &mut x1151, x8, (arg2[9]));
1876    let mut x1152: u32 = 0;
1877    let mut x1153: u32 = 0;
1878    fp_mulx_u32(&mut x1152, &mut x1153, x8, (arg2[8]));
1879    let mut x1154: u32 = 0;
1880    let mut x1155: u32 = 0;
1881    fp_mulx_u32(&mut x1154, &mut x1155, x8, (arg2[7]));
1882    let mut x1156: u32 = 0;
1883    let mut x1157: u32 = 0;
1884    fp_mulx_u32(&mut x1156, &mut x1157, x8, (arg2[6]));
1885    let mut x1158: u32 = 0;
1886    let mut x1159: u32 = 0;
1887    fp_mulx_u32(&mut x1158, &mut x1159, x8, (arg2[5]));
1888    let mut x1160: u32 = 0;
1889    let mut x1161: u32 = 0;
1890    fp_mulx_u32(&mut x1160, &mut x1161, x8, (arg2[4]));
1891    let mut x1162: u32 = 0;
1892    let mut x1163: u32 = 0;
1893    fp_mulx_u32(&mut x1162, &mut x1163, x8, (arg2[3]));
1894    let mut x1164: u32 = 0;
1895    let mut x1165: u32 = 0;
1896    fp_mulx_u32(&mut x1164, &mut x1165, x8, (arg2[2]));
1897    let mut x1166: u32 = 0;
1898    let mut x1167: u32 = 0;
1899    fp_mulx_u32(&mut x1166, &mut x1167, x8, (arg2[1]));
1900    let mut x1168: u32 = 0;
1901    let mut x1169: u32 = 0;
1902    fp_mulx_u32(&mut x1168, &mut x1169, x8, (arg2[0]));
1903    let mut x1170: u32 = 0;
1904    let mut x1171: FpU1 = 0;
1905    fp_addcarryx_u32(&mut x1170, &mut x1171, 0x0, x1169, x1166);
1906    let mut x1172: u32 = 0;
1907    let mut x1173: FpU1 = 0;
1908    fp_addcarryx_u32(&mut x1172, &mut x1173, x1171, x1167, x1164);
1909    let mut x1174: u32 = 0;
1910    let mut x1175: FpU1 = 0;
1911    fp_addcarryx_u32(&mut x1174, &mut x1175, x1173, x1165, x1162);
1912    let mut x1176: u32 = 0;
1913    let mut x1177: FpU1 = 0;
1914    fp_addcarryx_u32(&mut x1176, &mut x1177, x1175, x1163, x1160);
1915    let mut x1178: u32 = 0;
1916    let mut x1179: FpU1 = 0;
1917    fp_addcarryx_u32(&mut x1178, &mut x1179, x1177, x1161, x1158);
1918    let mut x1180: u32 = 0;
1919    let mut x1181: FpU1 = 0;
1920    fp_addcarryx_u32(&mut x1180, &mut x1181, x1179, x1159, x1156);
1921    let mut x1182: u32 = 0;
1922    let mut x1183: FpU1 = 0;
1923    fp_addcarryx_u32(&mut x1182, &mut x1183, x1181, x1157, x1154);
1924    let mut x1184: u32 = 0;
1925    let mut x1185: FpU1 = 0;
1926    fp_addcarryx_u32(&mut x1184, &mut x1185, x1183, x1155, x1152);
1927    let mut x1186: u32 = 0;
1928    let mut x1187: FpU1 = 0;
1929    fp_addcarryx_u32(&mut x1186, &mut x1187, x1185, x1153, x1150);
1930    let mut x1188: u32 = 0;
1931    let mut x1189: FpU1 = 0;
1932    fp_addcarryx_u32(&mut x1188, &mut x1189, x1187, x1151, x1148);
1933    let mut x1190: u32 = 0;
1934    let mut x1191: FpU1 = 0;
1935    fp_addcarryx_u32(&mut x1190, &mut x1191, x1189, x1149, x1146);
1936    let x1192: u32 = ((x1191 as u32) + x1147);
1937    let mut x1193: u32 = 0;
1938    let mut x1194: FpU1 = 0;
1939    fp_addcarryx_u32(&mut x1193, &mut x1194, 0x0, x1121, x1168);
1940    let mut x1195: u32 = 0;
1941    let mut x1196: FpU1 = 0;
1942    fp_addcarryx_u32(&mut x1195, &mut x1196, x1194, x1123, x1170);
1943    let mut x1197: u32 = 0;
1944    let mut x1198: FpU1 = 0;
1945    fp_addcarryx_u32(&mut x1197, &mut x1198, x1196, x1125, x1172);
1946    let mut x1199: u32 = 0;
1947    let mut x1200: FpU1 = 0;
1948    fp_addcarryx_u32(&mut x1199, &mut x1200, x1198, x1127, x1174);
1949    let mut x1201: u32 = 0;
1950    let mut x1202: FpU1 = 0;
1951    fp_addcarryx_u32(&mut x1201, &mut x1202, x1200, x1129, x1176);
1952    let mut x1203: u32 = 0;
1953    let mut x1204: FpU1 = 0;
1954    fp_addcarryx_u32(&mut x1203, &mut x1204, x1202, x1131, x1178);
1955    let mut x1205: u32 = 0;
1956    let mut x1206: FpU1 = 0;
1957    fp_addcarryx_u32(&mut x1205, &mut x1206, x1204, x1133, x1180);
1958    let mut x1207: u32 = 0;
1959    let mut x1208: FpU1 = 0;
1960    fp_addcarryx_u32(&mut x1207, &mut x1208, x1206, x1135, x1182);
1961    let mut x1209: u32 = 0;
1962    let mut x1210: FpU1 = 0;
1963    fp_addcarryx_u32(&mut x1209, &mut x1210, x1208, x1137, x1184);
1964    let mut x1211: u32 = 0;
1965    let mut x1212: FpU1 = 0;
1966    fp_addcarryx_u32(&mut x1211, &mut x1212, x1210, x1139, x1186);
1967    let mut x1213: u32 = 0;
1968    let mut x1214: FpU1 = 0;
1969    fp_addcarryx_u32(&mut x1213, &mut x1214, x1212, x1141, x1188);
1970    let mut x1215: u32 = 0;
1971    let mut x1216: FpU1 = 0;
1972    fp_addcarryx_u32(&mut x1215, &mut x1216, x1214, x1143, x1190);
1973    let mut x1217: u32 = 0;
1974    let mut x1218: FpU1 = 0;
1975    fp_addcarryx_u32(&mut x1217, &mut x1218, x1216, x1145, x1192);
1976    let mut x1219: u32 = 0;
1977    let mut x1220: u32 = 0;
1978    fp_mulx_u32(&mut x1219, &mut x1220, x1193, 0xffffffff);
1979    let mut x1221: u32 = 0;
1980    let mut x1222: u32 = 0;
1981    fp_mulx_u32(&mut x1221, &mut x1222, x1219, 0x1ae3a46);
1982    let mut x1223: u32 = 0;
1983    let mut x1224: u32 = 0;
1984    fp_mulx_u32(&mut x1223, &mut x1224, x1219, 0x17c510ea);
1985    let mut x1225: u32 = 0;
1986    let mut x1226: u32 = 0;
1987    fp_mulx_u32(&mut x1225, &mut x1226, x1219, 0xc63b05c0);
1988    let mut x1227: u32 = 0;
1989    let mut x1228: u32 = 0;
1990    fp_mulx_u32(&mut x1227, &mut x1228, x1219, 0x6ca1493b);
1991    let mut x1229: u32 = 0;
1992    let mut x1230: u32 = 0;
1993    fp_mulx_u32(&mut x1229, &mut x1230, x1219, 0x1a22d9f3);
1994    let mut x1231: u32 = 0;
1995    let mut x1232: u32 = 0;
1996    fp_mulx_u32(&mut x1231, &mut x1232, x1219, 0xf5138f);
1997    let mut x1233: u32 = 0;
1998    let mut x1234: u32 = 0;
1999    fp_mulx_u32(&mut x1233, &mut x1234, x1219, 0x1ef3622f);
2000    let mut x1235: u32 = 0;
2001    let mut x1236: u32 = 0;
2002    fp_mulx_u32(&mut x1235, &mut x1236, x1219, 0xba094800);
2003    let mut x1237: u32 = 0;
2004    let mut x1238: u32 = 0;
2005    fp_mulx_u32(&mut x1237, &mut x1238, x1219, 0x170b5d44);
2006    let mut x1239: u32 = 0;
2007    let mut x1240: u32 = 0;
2008    fp_mulx_u32(&mut x1239, &mut x1240, x1219, 0x30000000);
2009    let mut x1241: u32 = 0;
2010    let mut x1242: u32 = 0;
2011    fp_mulx_u32(&mut x1241, &mut x1242, x1219, 0x8508c000);
2012    let mut x1243: u32 = 0;
2013    let mut x1244: FpU1 = 0;
2014    fp_addcarryx_u32(&mut x1243, &mut x1244, 0x0, x1242, x1239);
2015    let mut x1245: u32 = 0;
2016    let mut x1246: FpU1 = 0;
2017    fp_addcarryx_u32(&mut x1245, &mut x1246, x1244, x1240, x1237);
2018    let mut x1247: u32 = 0;
2019    let mut x1248: FpU1 = 0;
2020    fp_addcarryx_u32(&mut x1247, &mut x1248, x1246, x1238, x1235);
2021    let mut x1249: u32 = 0;
2022    let mut x1250: FpU1 = 0;
2023    fp_addcarryx_u32(&mut x1249, &mut x1250, x1248, x1236, x1233);
2024    let mut x1251: u32 = 0;
2025    let mut x1252: FpU1 = 0;
2026    fp_addcarryx_u32(&mut x1251, &mut x1252, x1250, x1234, x1231);
2027    let mut x1253: u32 = 0;
2028    let mut x1254: FpU1 = 0;
2029    fp_addcarryx_u32(&mut x1253, &mut x1254, x1252, x1232, x1229);
2030    let mut x1255: u32 = 0;
2031    let mut x1256: FpU1 = 0;
2032    fp_addcarryx_u32(&mut x1255, &mut x1256, x1254, x1230, x1227);
2033    let mut x1257: u32 = 0;
2034    let mut x1258: FpU1 = 0;
2035    fp_addcarryx_u32(&mut x1257, &mut x1258, x1256, x1228, x1225);
2036    let mut x1259: u32 = 0;
2037    let mut x1260: FpU1 = 0;
2038    fp_addcarryx_u32(&mut x1259, &mut x1260, x1258, x1226, x1223);
2039    let mut x1261: u32 = 0;
2040    let mut x1262: FpU1 = 0;
2041    fp_addcarryx_u32(&mut x1261, &mut x1262, x1260, x1224, x1221);
2042    let x1263: u32 = ((x1262 as u32) + x1222);
2043    let mut x1264: u32 = 0;
2044    let mut x1265: FpU1 = 0;
2045    fp_addcarryx_u32(&mut x1264, &mut x1265, 0x0, x1193, x1219);
2046    let mut x1266: u32 = 0;
2047    let mut x1267: FpU1 = 0;
2048    fp_addcarryx_u32(&mut x1266, &mut x1267, x1265, x1195, x1241);
2049    let mut x1268: u32 = 0;
2050    let mut x1269: FpU1 = 0;
2051    fp_addcarryx_u32(&mut x1268, &mut x1269, x1267, x1197, x1243);
2052    let mut x1270: u32 = 0;
2053    let mut x1271: FpU1 = 0;
2054    fp_addcarryx_u32(&mut x1270, &mut x1271, x1269, x1199, x1245);
2055    let mut x1272: u32 = 0;
2056    let mut x1273: FpU1 = 0;
2057    fp_addcarryx_u32(&mut x1272, &mut x1273, x1271, x1201, x1247);
2058    let mut x1274: u32 = 0;
2059    let mut x1275: FpU1 = 0;
2060    fp_addcarryx_u32(&mut x1274, &mut x1275, x1273, x1203, x1249);
2061    let mut x1276: u32 = 0;
2062    let mut x1277: FpU1 = 0;
2063    fp_addcarryx_u32(&mut x1276, &mut x1277, x1275, x1205, x1251);
2064    let mut x1278: u32 = 0;
2065    let mut x1279: FpU1 = 0;
2066    fp_addcarryx_u32(&mut x1278, &mut x1279, x1277, x1207, x1253);
2067    let mut x1280: u32 = 0;
2068    let mut x1281: FpU1 = 0;
2069    fp_addcarryx_u32(&mut x1280, &mut x1281, x1279, x1209, x1255);
2070    let mut x1282: u32 = 0;
2071    let mut x1283: FpU1 = 0;
2072    fp_addcarryx_u32(&mut x1282, &mut x1283, x1281, x1211, x1257);
2073    let mut x1284: u32 = 0;
2074    let mut x1285: FpU1 = 0;
2075    fp_addcarryx_u32(&mut x1284, &mut x1285, x1283, x1213, x1259);
2076    let mut x1286: u32 = 0;
2077    let mut x1287: FpU1 = 0;
2078    fp_addcarryx_u32(&mut x1286, &mut x1287, x1285, x1215, x1261);
2079    let mut x1288: u32 = 0;
2080    let mut x1289: FpU1 = 0;
2081    fp_addcarryx_u32(&mut x1288, &mut x1289, x1287, x1217, x1263);
2082    let x1290: u32 = ((x1289 as u32) + (x1218 as u32));
2083    let mut x1291: u32 = 0;
2084    let mut x1292: u32 = 0;
2085    fp_mulx_u32(&mut x1291, &mut x1292, x9, (arg2[11]));
2086    let mut x1293: u32 = 0;
2087    let mut x1294: u32 = 0;
2088    fp_mulx_u32(&mut x1293, &mut x1294, x9, (arg2[10]));
2089    let mut x1295: u32 = 0;
2090    let mut x1296: u32 = 0;
2091    fp_mulx_u32(&mut x1295, &mut x1296, x9, (arg2[9]));
2092    let mut x1297: u32 = 0;
2093    let mut x1298: u32 = 0;
2094    fp_mulx_u32(&mut x1297, &mut x1298, x9, (arg2[8]));
2095    let mut x1299: u32 = 0;
2096    let mut x1300: u32 = 0;
2097    fp_mulx_u32(&mut x1299, &mut x1300, x9, (arg2[7]));
2098    let mut x1301: u32 = 0;
2099    let mut x1302: u32 = 0;
2100    fp_mulx_u32(&mut x1301, &mut x1302, x9, (arg2[6]));
2101    let mut x1303: u32 = 0;
2102    let mut x1304: u32 = 0;
2103    fp_mulx_u32(&mut x1303, &mut x1304, x9, (arg2[5]));
2104    let mut x1305: u32 = 0;
2105    let mut x1306: u32 = 0;
2106    fp_mulx_u32(&mut x1305, &mut x1306, x9, (arg2[4]));
2107    let mut x1307: u32 = 0;
2108    let mut x1308: u32 = 0;
2109    fp_mulx_u32(&mut x1307, &mut x1308, x9, (arg2[3]));
2110    let mut x1309: u32 = 0;
2111    let mut x1310: u32 = 0;
2112    fp_mulx_u32(&mut x1309, &mut x1310, x9, (arg2[2]));
2113    let mut x1311: u32 = 0;
2114    let mut x1312: u32 = 0;
2115    fp_mulx_u32(&mut x1311, &mut x1312, x9, (arg2[1]));
2116    let mut x1313: u32 = 0;
2117    let mut x1314: u32 = 0;
2118    fp_mulx_u32(&mut x1313, &mut x1314, x9, (arg2[0]));
2119    let mut x1315: u32 = 0;
2120    let mut x1316: FpU1 = 0;
2121    fp_addcarryx_u32(&mut x1315, &mut x1316, 0x0, x1314, x1311);
2122    let mut x1317: u32 = 0;
2123    let mut x1318: FpU1 = 0;
2124    fp_addcarryx_u32(&mut x1317, &mut x1318, x1316, x1312, x1309);
2125    let mut x1319: u32 = 0;
2126    let mut x1320: FpU1 = 0;
2127    fp_addcarryx_u32(&mut x1319, &mut x1320, x1318, x1310, x1307);
2128    let mut x1321: u32 = 0;
2129    let mut x1322: FpU1 = 0;
2130    fp_addcarryx_u32(&mut x1321, &mut x1322, x1320, x1308, x1305);
2131    let mut x1323: u32 = 0;
2132    let mut x1324: FpU1 = 0;
2133    fp_addcarryx_u32(&mut x1323, &mut x1324, x1322, x1306, x1303);
2134    let mut x1325: u32 = 0;
2135    let mut x1326: FpU1 = 0;
2136    fp_addcarryx_u32(&mut x1325, &mut x1326, x1324, x1304, x1301);
2137    let mut x1327: u32 = 0;
2138    let mut x1328: FpU1 = 0;
2139    fp_addcarryx_u32(&mut x1327, &mut x1328, x1326, x1302, x1299);
2140    let mut x1329: u32 = 0;
2141    let mut x1330: FpU1 = 0;
2142    fp_addcarryx_u32(&mut x1329, &mut x1330, x1328, x1300, x1297);
2143    let mut x1331: u32 = 0;
2144    let mut x1332: FpU1 = 0;
2145    fp_addcarryx_u32(&mut x1331, &mut x1332, x1330, x1298, x1295);
2146    let mut x1333: u32 = 0;
2147    let mut x1334: FpU1 = 0;
2148    fp_addcarryx_u32(&mut x1333, &mut x1334, x1332, x1296, x1293);
2149    let mut x1335: u32 = 0;
2150    let mut x1336: FpU1 = 0;
2151    fp_addcarryx_u32(&mut x1335, &mut x1336, x1334, x1294, x1291);
2152    let x1337: u32 = ((x1336 as u32) + x1292);
2153    let mut x1338: u32 = 0;
2154    let mut x1339: FpU1 = 0;
2155    fp_addcarryx_u32(&mut x1338, &mut x1339, 0x0, x1266, x1313);
2156    let mut x1340: u32 = 0;
2157    let mut x1341: FpU1 = 0;
2158    fp_addcarryx_u32(&mut x1340, &mut x1341, x1339, x1268, x1315);
2159    let mut x1342: u32 = 0;
2160    let mut x1343: FpU1 = 0;
2161    fp_addcarryx_u32(&mut x1342, &mut x1343, x1341, x1270, x1317);
2162    let mut x1344: u32 = 0;
2163    let mut x1345: FpU1 = 0;
2164    fp_addcarryx_u32(&mut x1344, &mut x1345, x1343, x1272, x1319);
2165    let mut x1346: u32 = 0;
2166    let mut x1347: FpU1 = 0;
2167    fp_addcarryx_u32(&mut x1346, &mut x1347, x1345, x1274, x1321);
2168    let mut x1348: u32 = 0;
2169    let mut x1349: FpU1 = 0;
2170    fp_addcarryx_u32(&mut x1348, &mut x1349, x1347, x1276, x1323);
2171    let mut x1350: u32 = 0;
2172    let mut x1351: FpU1 = 0;
2173    fp_addcarryx_u32(&mut x1350, &mut x1351, x1349, x1278, x1325);
2174    let mut x1352: u32 = 0;
2175    let mut x1353: FpU1 = 0;
2176    fp_addcarryx_u32(&mut x1352, &mut x1353, x1351, x1280, x1327);
2177    let mut x1354: u32 = 0;
2178    let mut x1355: FpU1 = 0;
2179    fp_addcarryx_u32(&mut x1354, &mut x1355, x1353, x1282, x1329);
2180    let mut x1356: u32 = 0;
2181    let mut x1357: FpU1 = 0;
2182    fp_addcarryx_u32(&mut x1356, &mut x1357, x1355, x1284, x1331);
2183    let mut x1358: u32 = 0;
2184    let mut x1359: FpU1 = 0;
2185    fp_addcarryx_u32(&mut x1358, &mut x1359, x1357, x1286, x1333);
2186    let mut x1360: u32 = 0;
2187    let mut x1361: FpU1 = 0;
2188    fp_addcarryx_u32(&mut x1360, &mut x1361, x1359, x1288, x1335);
2189    let mut x1362: u32 = 0;
2190    let mut x1363: FpU1 = 0;
2191    fp_addcarryx_u32(&mut x1362, &mut x1363, x1361, x1290, x1337);
2192    let mut x1364: u32 = 0;
2193    let mut x1365: u32 = 0;
2194    fp_mulx_u32(&mut x1364, &mut x1365, x1338, 0xffffffff);
2195    let mut x1366: u32 = 0;
2196    let mut x1367: u32 = 0;
2197    fp_mulx_u32(&mut x1366, &mut x1367, x1364, 0x1ae3a46);
2198    let mut x1368: u32 = 0;
2199    let mut x1369: u32 = 0;
2200    fp_mulx_u32(&mut x1368, &mut x1369, x1364, 0x17c510ea);
2201    let mut x1370: u32 = 0;
2202    let mut x1371: u32 = 0;
2203    fp_mulx_u32(&mut x1370, &mut x1371, x1364, 0xc63b05c0);
2204    let mut x1372: u32 = 0;
2205    let mut x1373: u32 = 0;
2206    fp_mulx_u32(&mut x1372, &mut x1373, x1364, 0x6ca1493b);
2207    let mut x1374: u32 = 0;
2208    let mut x1375: u32 = 0;
2209    fp_mulx_u32(&mut x1374, &mut x1375, x1364, 0x1a22d9f3);
2210    let mut x1376: u32 = 0;
2211    let mut x1377: u32 = 0;
2212    fp_mulx_u32(&mut x1376, &mut x1377, x1364, 0xf5138f);
2213    let mut x1378: u32 = 0;
2214    let mut x1379: u32 = 0;
2215    fp_mulx_u32(&mut x1378, &mut x1379, x1364, 0x1ef3622f);
2216    let mut x1380: u32 = 0;
2217    let mut x1381: u32 = 0;
2218    fp_mulx_u32(&mut x1380, &mut x1381, x1364, 0xba094800);
2219    let mut x1382: u32 = 0;
2220    let mut x1383: u32 = 0;
2221    fp_mulx_u32(&mut x1382, &mut x1383, x1364, 0x170b5d44);
2222    let mut x1384: u32 = 0;
2223    let mut x1385: u32 = 0;
2224    fp_mulx_u32(&mut x1384, &mut x1385, x1364, 0x30000000);
2225    let mut x1386: u32 = 0;
2226    let mut x1387: u32 = 0;
2227    fp_mulx_u32(&mut x1386, &mut x1387, x1364, 0x8508c000);
2228    let mut x1388: u32 = 0;
2229    let mut x1389: FpU1 = 0;
2230    fp_addcarryx_u32(&mut x1388, &mut x1389, 0x0, x1387, x1384);
2231    let mut x1390: u32 = 0;
2232    let mut x1391: FpU1 = 0;
2233    fp_addcarryx_u32(&mut x1390, &mut x1391, x1389, x1385, x1382);
2234    let mut x1392: u32 = 0;
2235    let mut x1393: FpU1 = 0;
2236    fp_addcarryx_u32(&mut x1392, &mut x1393, x1391, x1383, x1380);
2237    let mut x1394: u32 = 0;
2238    let mut x1395: FpU1 = 0;
2239    fp_addcarryx_u32(&mut x1394, &mut x1395, x1393, x1381, x1378);
2240    let mut x1396: u32 = 0;
2241    let mut x1397: FpU1 = 0;
2242    fp_addcarryx_u32(&mut x1396, &mut x1397, x1395, x1379, x1376);
2243    let mut x1398: u32 = 0;
2244    let mut x1399: FpU1 = 0;
2245    fp_addcarryx_u32(&mut x1398, &mut x1399, x1397, x1377, x1374);
2246    let mut x1400: u32 = 0;
2247    let mut x1401: FpU1 = 0;
2248    fp_addcarryx_u32(&mut x1400, &mut x1401, x1399, x1375, x1372);
2249    let mut x1402: u32 = 0;
2250    let mut x1403: FpU1 = 0;
2251    fp_addcarryx_u32(&mut x1402, &mut x1403, x1401, x1373, x1370);
2252    let mut x1404: u32 = 0;
2253    let mut x1405: FpU1 = 0;
2254    fp_addcarryx_u32(&mut x1404, &mut x1405, x1403, x1371, x1368);
2255    let mut x1406: u32 = 0;
2256    let mut x1407: FpU1 = 0;
2257    fp_addcarryx_u32(&mut x1406, &mut x1407, x1405, x1369, x1366);
2258    let x1408: u32 = ((x1407 as u32) + x1367);
2259    let mut x1409: u32 = 0;
2260    let mut x1410: FpU1 = 0;
2261    fp_addcarryx_u32(&mut x1409, &mut x1410, 0x0, x1338, x1364);
2262    let mut x1411: u32 = 0;
2263    let mut x1412: FpU1 = 0;
2264    fp_addcarryx_u32(&mut x1411, &mut x1412, x1410, x1340, x1386);
2265    let mut x1413: u32 = 0;
2266    let mut x1414: FpU1 = 0;
2267    fp_addcarryx_u32(&mut x1413, &mut x1414, x1412, x1342, x1388);
2268    let mut x1415: u32 = 0;
2269    let mut x1416: FpU1 = 0;
2270    fp_addcarryx_u32(&mut x1415, &mut x1416, x1414, x1344, x1390);
2271    let mut x1417: u32 = 0;
2272    let mut x1418: FpU1 = 0;
2273    fp_addcarryx_u32(&mut x1417, &mut x1418, x1416, x1346, x1392);
2274    let mut x1419: u32 = 0;
2275    let mut x1420: FpU1 = 0;
2276    fp_addcarryx_u32(&mut x1419, &mut x1420, x1418, x1348, x1394);
2277    let mut x1421: u32 = 0;
2278    let mut x1422: FpU1 = 0;
2279    fp_addcarryx_u32(&mut x1421, &mut x1422, x1420, x1350, x1396);
2280    let mut x1423: u32 = 0;
2281    let mut x1424: FpU1 = 0;
2282    fp_addcarryx_u32(&mut x1423, &mut x1424, x1422, x1352, x1398);
2283    let mut x1425: u32 = 0;
2284    let mut x1426: FpU1 = 0;
2285    fp_addcarryx_u32(&mut x1425, &mut x1426, x1424, x1354, x1400);
2286    let mut x1427: u32 = 0;
2287    let mut x1428: FpU1 = 0;
2288    fp_addcarryx_u32(&mut x1427, &mut x1428, x1426, x1356, x1402);
2289    let mut x1429: u32 = 0;
2290    let mut x1430: FpU1 = 0;
2291    fp_addcarryx_u32(&mut x1429, &mut x1430, x1428, x1358, x1404);
2292    let mut x1431: u32 = 0;
2293    let mut x1432: FpU1 = 0;
2294    fp_addcarryx_u32(&mut x1431, &mut x1432, x1430, x1360, x1406);
2295    let mut x1433: u32 = 0;
2296    let mut x1434: FpU1 = 0;
2297    fp_addcarryx_u32(&mut x1433, &mut x1434, x1432, x1362, x1408);
2298    let x1435: u32 = ((x1434 as u32) + (x1363 as u32));
2299    let mut x1436: u32 = 0;
2300    let mut x1437: u32 = 0;
2301    fp_mulx_u32(&mut x1436, &mut x1437, x10, (arg2[11]));
2302    let mut x1438: u32 = 0;
2303    let mut x1439: u32 = 0;
2304    fp_mulx_u32(&mut x1438, &mut x1439, x10, (arg2[10]));
2305    let mut x1440: u32 = 0;
2306    let mut x1441: u32 = 0;
2307    fp_mulx_u32(&mut x1440, &mut x1441, x10, (arg2[9]));
2308    let mut x1442: u32 = 0;
2309    let mut x1443: u32 = 0;
2310    fp_mulx_u32(&mut x1442, &mut x1443, x10, (arg2[8]));
2311    let mut x1444: u32 = 0;
2312    let mut x1445: u32 = 0;
2313    fp_mulx_u32(&mut x1444, &mut x1445, x10, (arg2[7]));
2314    let mut x1446: u32 = 0;
2315    let mut x1447: u32 = 0;
2316    fp_mulx_u32(&mut x1446, &mut x1447, x10, (arg2[6]));
2317    let mut x1448: u32 = 0;
2318    let mut x1449: u32 = 0;
2319    fp_mulx_u32(&mut x1448, &mut x1449, x10, (arg2[5]));
2320    let mut x1450: u32 = 0;
2321    let mut x1451: u32 = 0;
2322    fp_mulx_u32(&mut x1450, &mut x1451, x10, (arg2[4]));
2323    let mut x1452: u32 = 0;
2324    let mut x1453: u32 = 0;
2325    fp_mulx_u32(&mut x1452, &mut x1453, x10, (arg2[3]));
2326    let mut x1454: u32 = 0;
2327    let mut x1455: u32 = 0;
2328    fp_mulx_u32(&mut x1454, &mut x1455, x10, (arg2[2]));
2329    let mut x1456: u32 = 0;
2330    let mut x1457: u32 = 0;
2331    fp_mulx_u32(&mut x1456, &mut x1457, x10, (arg2[1]));
2332    let mut x1458: u32 = 0;
2333    let mut x1459: u32 = 0;
2334    fp_mulx_u32(&mut x1458, &mut x1459, x10, (arg2[0]));
2335    let mut x1460: u32 = 0;
2336    let mut x1461: FpU1 = 0;
2337    fp_addcarryx_u32(&mut x1460, &mut x1461, 0x0, x1459, x1456);
2338    let mut x1462: u32 = 0;
2339    let mut x1463: FpU1 = 0;
2340    fp_addcarryx_u32(&mut x1462, &mut x1463, x1461, x1457, x1454);
2341    let mut x1464: u32 = 0;
2342    let mut x1465: FpU1 = 0;
2343    fp_addcarryx_u32(&mut x1464, &mut x1465, x1463, x1455, x1452);
2344    let mut x1466: u32 = 0;
2345    let mut x1467: FpU1 = 0;
2346    fp_addcarryx_u32(&mut x1466, &mut x1467, x1465, x1453, x1450);
2347    let mut x1468: u32 = 0;
2348    let mut x1469: FpU1 = 0;
2349    fp_addcarryx_u32(&mut x1468, &mut x1469, x1467, x1451, x1448);
2350    let mut x1470: u32 = 0;
2351    let mut x1471: FpU1 = 0;
2352    fp_addcarryx_u32(&mut x1470, &mut x1471, x1469, x1449, x1446);
2353    let mut x1472: u32 = 0;
2354    let mut x1473: FpU1 = 0;
2355    fp_addcarryx_u32(&mut x1472, &mut x1473, x1471, x1447, x1444);
2356    let mut x1474: u32 = 0;
2357    let mut x1475: FpU1 = 0;
2358    fp_addcarryx_u32(&mut x1474, &mut x1475, x1473, x1445, x1442);
2359    let mut x1476: u32 = 0;
2360    let mut x1477: FpU1 = 0;
2361    fp_addcarryx_u32(&mut x1476, &mut x1477, x1475, x1443, x1440);
2362    let mut x1478: u32 = 0;
2363    let mut x1479: FpU1 = 0;
2364    fp_addcarryx_u32(&mut x1478, &mut x1479, x1477, x1441, x1438);
2365    let mut x1480: u32 = 0;
2366    let mut x1481: FpU1 = 0;
2367    fp_addcarryx_u32(&mut x1480, &mut x1481, x1479, x1439, x1436);
2368    let x1482: u32 = ((x1481 as u32) + x1437);
2369    let mut x1483: u32 = 0;
2370    let mut x1484: FpU1 = 0;
2371    fp_addcarryx_u32(&mut x1483, &mut x1484, 0x0, x1411, x1458);
2372    let mut x1485: u32 = 0;
2373    let mut x1486: FpU1 = 0;
2374    fp_addcarryx_u32(&mut x1485, &mut x1486, x1484, x1413, x1460);
2375    let mut x1487: u32 = 0;
2376    let mut x1488: FpU1 = 0;
2377    fp_addcarryx_u32(&mut x1487, &mut x1488, x1486, x1415, x1462);
2378    let mut x1489: u32 = 0;
2379    let mut x1490: FpU1 = 0;
2380    fp_addcarryx_u32(&mut x1489, &mut x1490, x1488, x1417, x1464);
2381    let mut x1491: u32 = 0;
2382    let mut x1492: FpU1 = 0;
2383    fp_addcarryx_u32(&mut x1491, &mut x1492, x1490, x1419, x1466);
2384    let mut x1493: u32 = 0;
2385    let mut x1494: FpU1 = 0;
2386    fp_addcarryx_u32(&mut x1493, &mut x1494, x1492, x1421, x1468);
2387    let mut x1495: u32 = 0;
2388    let mut x1496: FpU1 = 0;
2389    fp_addcarryx_u32(&mut x1495, &mut x1496, x1494, x1423, x1470);
2390    let mut x1497: u32 = 0;
2391    let mut x1498: FpU1 = 0;
2392    fp_addcarryx_u32(&mut x1497, &mut x1498, x1496, x1425, x1472);
2393    let mut x1499: u32 = 0;
2394    let mut x1500: FpU1 = 0;
2395    fp_addcarryx_u32(&mut x1499, &mut x1500, x1498, x1427, x1474);
2396    let mut x1501: u32 = 0;
2397    let mut x1502: FpU1 = 0;
2398    fp_addcarryx_u32(&mut x1501, &mut x1502, x1500, x1429, x1476);
2399    let mut x1503: u32 = 0;
2400    let mut x1504: FpU1 = 0;
2401    fp_addcarryx_u32(&mut x1503, &mut x1504, x1502, x1431, x1478);
2402    let mut x1505: u32 = 0;
2403    let mut x1506: FpU1 = 0;
2404    fp_addcarryx_u32(&mut x1505, &mut x1506, x1504, x1433, x1480);
2405    let mut x1507: u32 = 0;
2406    let mut x1508: FpU1 = 0;
2407    fp_addcarryx_u32(&mut x1507, &mut x1508, x1506, x1435, x1482);
2408    let mut x1509: u32 = 0;
2409    let mut x1510: u32 = 0;
2410    fp_mulx_u32(&mut x1509, &mut x1510, x1483, 0xffffffff);
2411    let mut x1511: u32 = 0;
2412    let mut x1512: u32 = 0;
2413    fp_mulx_u32(&mut x1511, &mut x1512, x1509, 0x1ae3a46);
2414    let mut x1513: u32 = 0;
2415    let mut x1514: u32 = 0;
2416    fp_mulx_u32(&mut x1513, &mut x1514, x1509, 0x17c510ea);
2417    let mut x1515: u32 = 0;
2418    let mut x1516: u32 = 0;
2419    fp_mulx_u32(&mut x1515, &mut x1516, x1509, 0xc63b05c0);
2420    let mut x1517: u32 = 0;
2421    let mut x1518: u32 = 0;
2422    fp_mulx_u32(&mut x1517, &mut x1518, x1509, 0x6ca1493b);
2423    let mut x1519: u32 = 0;
2424    let mut x1520: u32 = 0;
2425    fp_mulx_u32(&mut x1519, &mut x1520, x1509, 0x1a22d9f3);
2426    let mut x1521: u32 = 0;
2427    let mut x1522: u32 = 0;
2428    fp_mulx_u32(&mut x1521, &mut x1522, x1509, 0xf5138f);
2429    let mut x1523: u32 = 0;
2430    let mut x1524: u32 = 0;
2431    fp_mulx_u32(&mut x1523, &mut x1524, x1509, 0x1ef3622f);
2432    let mut x1525: u32 = 0;
2433    let mut x1526: u32 = 0;
2434    fp_mulx_u32(&mut x1525, &mut x1526, x1509, 0xba094800);
2435    let mut x1527: u32 = 0;
2436    let mut x1528: u32 = 0;
2437    fp_mulx_u32(&mut x1527, &mut x1528, x1509, 0x170b5d44);
2438    let mut x1529: u32 = 0;
2439    let mut x1530: u32 = 0;
2440    fp_mulx_u32(&mut x1529, &mut x1530, x1509, 0x30000000);
2441    let mut x1531: u32 = 0;
2442    let mut x1532: u32 = 0;
2443    fp_mulx_u32(&mut x1531, &mut x1532, x1509, 0x8508c000);
2444    let mut x1533: u32 = 0;
2445    let mut x1534: FpU1 = 0;
2446    fp_addcarryx_u32(&mut x1533, &mut x1534, 0x0, x1532, x1529);
2447    let mut x1535: u32 = 0;
2448    let mut x1536: FpU1 = 0;
2449    fp_addcarryx_u32(&mut x1535, &mut x1536, x1534, x1530, x1527);
2450    let mut x1537: u32 = 0;
2451    let mut x1538: FpU1 = 0;
2452    fp_addcarryx_u32(&mut x1537, &mut x1538, x1536, x1528, x1525);
2453    let mut x1539: u32 = 0;
2454    let mut x1540: FpU1 = 0;
2455    fp_addcarryx_u32(&mut x1539, &mut x1540, x1538, x1526, x1523);
2456    let mut x1541: u32 = 0;
2457    let mut x1542: FpU1 = 0;
2458    fp_addcarryx_u32(&mut x1541, &mut x1542, x1540, x1524, x1521);
2459    let mut x1543: u32 = 0;
2460    let mut x1544: FpU1 = 0;
2461    fp_addcarryx_u32(&mut x1543, &mut x1544, x1542, x1522, x1519);
2462    let mut x1545: u32 = 0;
2463    let mut x1546: FpU1 = 0;
2464    fp_addcarryx_u32(&mut x1545, &mut x1546, x1544, x1520, x1517);
2465    let mut x1547: u32 = 0;
2466    let mut x1548: FpU1 = 0;
2467    fp_addcarryx_u32(&mut x1547, &mut x1548, x1546, x1518, x1515);
2468    let mut x1549: u32 = 0;
2469    let mut x1550: FpU1 = 0;
2470    fp_addcarryx_u32(&mut x1549, &mut x1550, x1548, x1516, x1513);
2471    let mut x1551: u32 = 0;
2472    let mut x1552: FpU1 = 0;
2473    fp_addcarryx_u32(&mut x1551, &mut x1552, x1550, x1514, x1511);
2474    let x1553: u32 = ((x1552 as u32) + x1512);
2475    let mut x1554: u32 = 0;
2476    let mut x1555: FpU1 = 0;
2477    fp_addcarryx_u32(&mut x1554, &mut x1555, 0x0, x1483, x1509);
2478    let mut x1556: u32 = 0;
2479    let mut x1557: FpU1 = 0;
2480    fp_addcarryx_u32(&mut x1556, &mut x1557, x1555, x1485, x1531);
2481    let mut x1558: u32 = 0;
2482    let mut x1559: FpU1 = 0;
2483    fp_addcarryx_u32(&mut x1558, &mut x1559, x1557, x1487, x1533);
2484    let mut x1560: u32 = 0;
2485    let mut x1561: FpU1 = 0;
2486    fp_addcarryx_u32(&mut x1560, &mut x1561, x1559, x1489, x1535);
2487    let mut x1562: u32 = 0;
2488    let mut x1563: FpU1 = 0;
2489    fp_addcarryx_u32(&mut x1562, &mut x1563, x1561, x1491, x1537);
2490    let mut x1564: u32 = 0;
2491    let mut x1565: FpU1 = 0;
2492    fp_addcarryx_u32(&mut x1564, &mut x1565, x1563, x1493, x1539);
2493    let mut x1566: u32 = 0;
2494    let mut x1567: FpU1 = 0;
2495    fp_addcarryx_u32(&mut x1566, &mut x1567, x1565, x1495, x1541);
2496    let mut x1568: u32 = 0;
2497    let mut x1569: FpU1 = 0;
2498    fp_addcarryx_u32(&mut x1568, &mut x1569, x1567, x1497, x1543);
2499    let mut x1570: u32 = 0;
2500    let mut x1571: FpU1 = 0;
2501    fp_addcarryx_u32(&mut x1570, &mut x1571, x1569, x1499, x1545);
2502    let mut x1572: u32 = 0;
2503    let mut x1573: FpU1 = 0;
2504    fp_addcarryx_u32(&mut x1572, &mut x1573, x1571, x1501, x1547);
2505    let mut x1574: u32 = 0;
2506    let mut x1575: FpU1 = 0;
2507    fp_addcarryx_u32(&mut x1574, &mut x1575, x1573, x1503, x1549);
2508    let mut x1576: u32 = 0;
2509    let mut x1577: FpU1 = 0;
2510    fp_addcarryx_u32(&mut x1576, &mut x1577, x1575, x1505, x1551);
2511    let mut x1578: u32 = 0;
2512    let mut x1579: FpU1 = 0;
2513    fp_addcarryx_u32(&mut x1578, &mut x1579, x1577, x1507, x1553);
2514    let x1580: u32 = ((x1579 as u32) + (x1508 as u32));
2515    let mut x1581: u32 = 0;
2516    let mut x1582: u32 = 0;
2517    fp_mulx_u32(&mut x1581, &mut x1582, x11, (arg2[11]));
2518    let mut x1583: u32 = 0;
2519    let mut x1584: u32 = 0;
2520    fp_mulx_u32(&mut x1583, &mut x1584, x11, (arg2[10]));
2521    let mut x1585: u32 = 0;
2522    let mut x1586: u32 = 0;
2523    fp_mulx_u32(&mut x1585, &mut x1586, x11, (arg2[9]));
2524    let mut x1587: u32 = 0;
2525    let mut x1588: u32 = 0;
2526    fp_mulx_u32(&mut x1587, &mut x1588, x11, (arg2[8]));
2527    let mut x1589: u32 = 0;
2528    let mut x1590: u32 = 0;
2529    fp_mulx_u32(&mut x1589, &mut x1590, x11, (arg2[7]));
2530    let mut x1591: u32 = 0;
2531    let mut x1592: u32 = 0;
2532    fp_mulx_u32(&mut x1591, &mut x1592, x11, (arg2[6]));
2533    let mut x1593: u32 = 0;
2534    let mut x1594: u32 = 0;
2535    fp_mulx_u32(&mut x1593, &mut x1594, x11, (arg2[5]));
2536    let mut x1595: u32 = 0;
2537    let mut x1596: u32 = 0;
2538    fp_mulx_u32(&mut x1595, &mut x1596, x11, (arg2[4]));
2539    let mut x1597: u32 = 0;
2540    let mut x1598: u32 = 0;
2541    fp_mulx_u32(&mut x1597, &mut x1598, x11, (arg2[3]));
2542    let mut x1599: u32 = 0;
2543    let mut x1600: u32 = 0;
2544    fp_mulx_u32(&mut x1599, &mut x1600, x11, (arg2[2]));
2545    let mut x1601: u32 = 0;
2546    let mut x1602: u32 = 0;
2547    fp_mulx_u32(&mut x1601, &mut x1602, x11, (arg2[1]));
2548    let mut x1603: u32 = 0;
2549    let mut x1604: u32 = 0;
2550    fp_mulx_u32(&mut x1603, &mut x1604, x11, (arg2[0]));
2551    let mut x1605: u32 = 0;
2552    let mut x1606: FpU1 = 0;
2553    fp_addcarryx_u32(&mut x1605, &mut x1606, 0x0, x1604, x1601);
2554    let mut x1607: u32 = 0;
2555    let mut x1608: FpU1 = 0;
2556    fp_addcarryx_u32(&mut x1607, &mut x1608, x1606, x1602, x1599);
2557    let mut x1609: u32 = 0;
2558    let mut x1610: FpU1 = 0;
2559    fp_addcarryx_u32(&mut x1609, &mut x1610, x1608, x1600, x1597);
2560    let mut x1611: u32 = 0;
2561    let mut x1612: FpU1 = 0;
2562    fp_addcarryx_u32(&mut x1611, &mut x1612, x1610, x1598, x1595);
2563    let mut x1613: u32 = 0;
2564    let mut x1614: FpU1 = 0;
2565    fp_addcarryx_u32(&mut x1613, &mut x1614, x1612, x1596, x1593);
2566    let mut x1615: u32 = 0;
2567    let mut x1616: FpU1 = 0;
2568    fp_addcarryx_u32(&mut x1615, &mut x1616, x1614, x1594, x1591);
2569    let mut x1617: u32 = 0;
2570    let mut x1618: FpU1 = 0;
2571    fp_addcarryx_u32(&mut x1617, &mut x1618, x1616, x1592, x1589);
2572    let mut x1619: u32 = 0;
2573    let mut x1620: FpU1 = 0;
2574    fp_addcarryx_u32(&mut x1619, &mut x1620, x1618, x1590, x1587);
2575    let mut x1621: u32 = 0;
2576    let mut x1622: FpU1 = 0;
2577    fp_addcarryx_u32(&mut x1621, &mut x1622, x1620, x1588, x1585);
2578    let mut x1623: u32 = 0;
2579    let mut x1624: FpU1 = 0;
2580    fp_addcarryx_u32(&mut x1623, &mut x1624, x1622, x1586, x1583);
2581    let mut x1625: u32 = 0;
2582    let mut x1626: FpU1 = 0;
2583    fp_addcarryx_u32(&mut x1625, &mut x1626, x1624, x1584, x1581);
2584    let x1627: u32 = ((x1626 as u32) + x1582);
2585    let mut x1628: u32 = 0;
2586    let mut x1629: FpU1 = 0;
2587    fp_addcarryx_u32(&mut x1628, &mut x1629, 0x0, x1556, x1603);
2588    let mut x1630: u32 = 0;
2589    let mut x1631: FpU1 = 0;
2590    fp_addcarryx_u32(&mut x1630, &mut x1631, x1629, x1558, x1605);
2591    let mut x1632: u32 = 0;
2592    let mut x1633: FpU1 = 0;
2593    fp_addcarryx_u32(&mut x1632, &mut x1633, x1631, x1560, x1607);
2594    let mut x1634: u32 = 0;
2595    let mut x1635: FpU1 = 0;
2596    fp_addcarryx_u32(&mut x1634, &mut x1635, x1633, x1562, x1609);
2597    let mut x1636: u32 = 0;
2598    let mut x1637: FpU1 = 0;
2599    fp_addcarryx_u32(&mut x1636, &mut x1637, x1635, x1564, x1611);
2600    let mut x1638: u32 = 0;
2601    let mut x1639: FpU1 = 0;
2602    fp_addcarryx_u32(&mut x1638, &mut x1639, x1637, x1566, x1613);
2603    let mut x1640: u32 = 0;
2604    let mut x1641: FpU1 = 0;
2605    fp_addcarryx_u32(&mut x1640, &mut x1641, x1639, x1568, x1615);
2606    let mut x1642: u32 = 0;
2607    let mut x1643: FpU1 = 0;
2608    fp_addcarryx_u32(&mut x1642, &mut x1643, x1641, x1570, x1617);
2609    let mut x1644: u32 = 0;
2610    let mut x1645: FpU1 = 0;
2611    fp_addcarryx_u32(&mut x1644, &mut x1645, x1643, x1572, x1619);
2612    let mut x1646: u32 = 0;
2613    let mut x1647: FpU1 = 0;
2614    fp_addcarryx_u32(&mut x1646, &mut x1647, x1645, x1574, x1621);
2615    let mut x1648: u32 = 0;
2616    let mut x1649: FpU1 = 0;
2617    fp_addcarryx_u32(&mut x1648, &mut x1649, x1647, x1576, x1623);
2618    let mut x1650: u32 = 0;
2619    let mut x1651: FpU1 = 0;
2620    fp_addcarryx_u32(&mut x1650, &mut x1651, x1649, x1578, x1625);
2621    let mut x1652: u32 = 0;
2622    let mut x1653: FpU1 = 0;
2623    fp_addcarryx_u32(&mut x1652, &mut x1653, x1651, x1580, x1627);
2624    let mut x1654: u32 = 0;
2625    let mut x1655: u32 = 0;
2626    fp_mulx_u32(&mut x1654, &mut x1655, x1628, 0xffffffff);
2627    let mut x1656: u32 = 0;
2628    let mut x1657: u32 = 0;
2629    fp_mulx_u32(&mut x1656, &mut x1657, x1654, 0x1ae3a46);
2630    let mut x1658: u32 = 0;
2631    let mut x1659: u32 = 0;
2632    fp_mulx_u32(&mut x1658, &mut x1659, x1654, 0x17c510ea);
2633    let mut x1660: u32 = 0;
2634    let mut x1661: u32 = 0;
2635    fp_mulx_u32(&mut x1660, &mut x1661, x1654, 0xc63b05c0);
2636    let mut x1662: u32 = 0;
2637    let mut x1663: u32 = 0;
2638    fp_mulx_u32(&mut x1662, &mut x1663, x1654, 0x6ca1493b);
2639    let mut x1664: u32 = 0;
2640    let mut x1665: u32 = 0;
2641    fp_mulx_u32(&mut x1664, &mut x1665, x1654, 0x1a22d9f3);
2642    let mut x1666: u32 = 0;
2643    let mut x1667: u32 = 0;
2644    fp_mulx_u32(&mut x1666, &mut x1667, x1654, 0xf5138f);
2645    let mut x1668: u32 = 0;
2646    let mut x1669: u32 = 0;
2647    fp_mulx_u32(&mut x1668, &mut x1669, x1654, 0x1ef3622f);
2648    let mut x1670: u32 = 0;
2649    let mut x1671: u32 = 0;
2650    fp_mulx_u32(&mut x1670, &mut x1671, x1654, 0xba094800);
2651    let mut x1672: u32 = 0;
2652    let mut x1673: u32 = 0;
2653    fp_mulx_u32(&mut x1672, &mut x1673, x1654, 0x170b5d44);
2654    let mut x1674: u32 = 0;
2655    let mut x1675: u32 = 0;
2656    fp_mulx_u32(&mut x1674, &mut x1675, x1654, 0x30000000);
2657    let mut x1676: u32 = 0;
2658    let mut x1677: u32 = 0;
2659    fp_mulx_u32(&mut x1676, &mut x1677, x1654, 0x8508c000);
2660    let mut x1678: u32 = 0;
2661    let mut x1679: FpU1 = 0;
2662    fp_addcarryx_u32(&mut x1678, &mut x1679, 0x0, x1677, x1674);
2663    let mut x1680: u32 = 0;
2664    let mut x1681: FpU1 = 0;
2665    fp_addcarryx_u32(&mut x1680, &mut x1681, x1679, x1675, x1672);
2666    let mut x1682: u32 = 0;
2667    let mut x1683: FpU1 = 0;
2668    fp_addcarryx_u32(&mut x1682, &mut x1683, x1681, x1673, x1670);
2669    let mut x1684: u32 = 0;
2670    let mut x1685: FpU1 = 0;
2671    fp_addcarryx_u32(&mut x1684, &mut x1685, x1683, x1671, x1668);
2672    let mut x1686: u32 = 0;
2673    let mut x1687: FpU1 = 0;
2674    fp_addcarryx_u32(&mut x1686, &mut x1687, x1685, x1669, x1666);
2675    let mut x1688: u32 = 0;
2676    let mut x1689: FpU1 = 0;
2677    fp_addcarryx_u32(&mut x1688, &mut x1689, x1687, x1667, x1664);
2678    let mut x1690: u32 = 0;
2679    let mut x1691: FpU1 = 0;
2680    fp_addcarryx_u32(&mut x1690, &mut x1691, x1689, x1665, x1662);
2681    let mut x1692: u32 = 0;
2682    let mut x1693: FpU1 = 0;
2683    fp_addcarryx_u32(&mut x1692, &mut x1693, x1691, x1663, x1660);
2684    let mut x1694: u32 = 0;
2685    let mut x1695: FpU1 = 0;
2686    fp_addcarryx_u32(&mut x1694, &mut x1695, x1693, x1661, x1658);
2687    let mut x1696: u32 = 0;
2688    let mut x1697: FpU1 = 0;
2689    fp_addcarryx_u32(&mut x1696, &mut x1697, x1695, x1659, x1656);
2690    let x1698: u32 = ((x1697 as u32) + x1657);
2691    let mut x1699: u32 = 0;
2692    let mut x1700: FpU1 = 0;
2693    fp_addcarryx_u32(&mut x1699, &mut x1700, 0x0, x1628, x1654);
2694    let mut x1701: u32 = 0;
2695    let mut x1702: FpU1 = 0;
2696    fp_addcarryx_u32(&mut x1701, &mut x1702, x1700, x1630, x1676);
2697    let mut x1703: u32 = 0;
2698    let mut x1704: FpU1 = 0;
2699    fp_addcarryx_u32(&mut x1703, &mut x1704, x1702, x1632, x1678);
2700    let mut x1705: u32 = 0;
2701    let mut x1706: FpU1 = 0;
2702    fp_addcarryx_u32(&mut x1705, &mut x1706, x1704, x1634, x1680);
2703    let mut x1707: u32 = 0;
2704    let mut x1708: FpU1 = 0;
2705    fp_addcarryx_u32(&mut x1707, &mut x1708, x1706, x1636, x1682);
2706    let mut x1709: u32 = 0;
2707    let mut x1710: FpU1 = 0;
2708    fp_addcarryx_u32(&mut x1709, &mut x1710, x1708, x1638, x1684);
2709    let mut x1711: u32 = 0;
2710    let mut x1712: FpU1 = 0;
2711    fp_addcarryx_u32(&mut x1711, &mut x1712, x1710, x1640, x1686);
2712    let mut x1713: u32 = 0;
2713    let mut x1714: FpU1 = 0;
2714    fp_addcarryx_u32(&mut x1713, &mut x1714, x1712, x1642, x1688);
2715    let mut x1715: u32 = 0;
2716    let mut x1716: FpU1 = 0;
2717    fp_addcarryx_u32(&mut x1715, &mut x1716, x1714, x1644, x1690);
2718    let mut x1717: u32 = 0;
2719    let mut x1718: FpU1 = 0;
2720    fp_addcarryx_u32(&mut x1717, &mut x1718, x1716, x1646, x1692);
2721    let mut x1719: u32 = 0;
2722    let mut x1720: FpU1 = 0;
2723    fp_addcarryx_u32(&mut x1719, &mut x1720, x1718, x1648, x1694);
2724    let mut x1721: u32 = 0;
2725    let mut x1722: FpU1 = 0;
2726    fp_addcarryx_u32(&mut x1721, &mut x1722, x1720, x1650, x1696);
2727    let mut x1723: u32 = 0;
2728    let mut x1724: FpU1 = 0;
2729    fp_addcarryx_u32(&mut x1723, &mut x1724, x1722, x1652, x1698);
2730    let x1725: u32 = ((x1724 as u32) + (x1653 as u32));
2731    let mut x1726: u32 = 0;
2732    let mut x1727: FpU1 = 0;
2733    fp_subborrowx_u32(&mut x1726, &mut x1727, 0x0, x1701, (0x1 as u32));
2734    let mut x1728: u32 = 0;
2735    let mut x1729: FpU1 = 0;
2736    fp_subborrowx_u32(&mut x1728, &mut x1729, x1727, x1703, 0x8508c000);
2737    let mut x1730: u32 = 0;
2738    let mut x1731: FpU1 = 0;
2739    fp_subborrowx_u32(&mut x1730, &mut x1731, x1729, x1705, 0x30000000);
2740    let mut x1732: u32 = 0;
2741    let mut x1733: FpU1 = 0;
2742    fp_subborrowx_u32(&mut x1732, &mut x1733, x1731, x1707, 0x170b5d44);
2743    let mut x1734: u32 = 0;
2744    let mut x1735: FpU1 = 0;
2745    fp_subborrowx_u32(&mut x1734, &mut x1735, x1733, x1709, 0xba094800);
2746    let mut x1736: u32 = 0;
2747    let mut x1737: FpU1 = 0;
2748    fp_subborrowx_u32(&mut x1736, &mut x1737, x1735, x1711, 0x1ef3622f);
2749    let mut x1738: u32 = 0;
2750    let mut x1739: FpU1 = 0;
2751    fp_subborrowx_u32(&mut x1738, &mut x1739, x1737, x1713, 0xf5138f);
2752    let mut x1740: u32 = 0;
2753    let mut x1741: FpU1 = 0;
2754    fp_subborrowx_u32(&mut x1740, &mut x1741, x1739, x1715, 0x1a22d9f3);
2755    let mut x1742: u32 = 0;
2756    let mut x1743: FpU1 = 0;
2757    fp_subborrowx_u32(&mut x1742, &mut x1743, x1741, x1717, 0x6ca1493b);
2758    let mut x1744: u32 = 0;
2759    let mut x1745: FpU1 = 0;
2760    fp_subborrowx_u32(&mut x1744, &mut x1745, x1743, x1719, 0xc63b05c0);
2761    let mut x1746: u32 = 0;
2762    let mut x1747: FpU1 = 0;
2763    fp_subborrowx_u32(&mut x1746, &mut x1747, x1745, x1721, 0x17c510ea);
2764    let mut x1748: u32 = 0;
2765    let mut x1749: FpU1 = 0;
2766    fp_subborrowx_u32(&mut x1748, &mut x1749, x1747, x1723, 0x1ae3a46);
2767    let mut x1750: u32 = 0;
2768    let mut x1751: FpU1 = 0;
2769    fp_subborrowx_u32(&mut x1750, &mut x1751, x1749, x1725, (0x0 as u32));
2770    let mut x1752: u32 = 0;
2771    fp_cmovznz_u32(&mut x1752, x1751, x1726, x1701);
2772    let mut x1753: u32 = 0;
2773    fp_cmovznz_u32(&mut x1753, x1751, x1728, x1703);
2774    let mut x1754: u32 = 0;
2775    fp_cmovznz_u32(&mut x1754, x1751, x1730, x1705);
2776    let mut x1755: u32 = 0;
2777    fp_cmovznz_u32(&mut x1755, x1751, x1732, x1707);
2778    let mut x1756: u32 = 0;
2779    fp_cmovznz_u32(&mut x1756, x1751, x1734, x1709);
2780    let mut x1757: u32 = 0;
2781    fp_cmovznz_u32(&mut x1757, x1751, x1736, x1711);
2782    let mut x1758: u32 = 0;
2783    fp_cmovznz_u32(&mut x1758, x1751, x1738, x1713);
2784    let mut x1759: u32 = 0;
2785    fp_cmovznz_u32(&mut x1759, x1751, x1740, x1715);
2786    let mut x1760: u32 = 0;
2787    fp_cmovznz_u32(&mut x1760, x1751, x1742, x1717);
2788    let mut x1761: u32 = 0;
2789    fp_cmovznz_u32(&mut x1761, x1751, x1744, x1719);
2790    let mut x1762: u32 = 0;
2791    fp_cmovznz_u32(&mut x1762, x1751, x1746, x1721);
2792    let mut x1763: u32 = 0;
2793    fp_cmovznz_u32(&mut x1763, x1751, x1748, x1723);
2794    out1[0] = x1752;
2795    out1[1] = x1753;
2796    out1[2] = x1754;
2797    out1[3] = x1755;
2798    out1[4] = x1756;
2799    out1[5] = x1757;
2800    out1[6] = x1758;
2801    out1[7] = x1759;
2802    out1[8] = x1760;
2803    out1[9] = x1761;
2804    out1[10] = x1762;
2805    out1[11] = x1763;
2806}
2807
2808/// The function fp_square squares a field element in the Montgomery domain.
2809///
2810/// Preconditions:
2811///   0 ≤ eval arg1 < m
2812/// Postconditions:
2813///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
2814///   0 ≤ eval out1 < m
2815///
2816pub fn fp_square(out1: &mut FpMontgomeryDomainFieldElement, arg1: &FpMontgomeryDomainFieldElement) {
2817    let x1: u32 = (arg1[1]);
2818    let x2: u32 = (arg1[2]);
2819    let x3: u32 = (arg1[3]);
2820    let x4: u32 = (arg1[4]);
2821    let x5: u32 = (arg1[5]);
2822    let x6: u32 = (arg1[6]);
2823    let x7: u32 = (arg1[7]);
2824    let x8: u32 = (arg1[8]);
2825    let x9: u32 = (arg1[9]);
2826    let x10: u32 = (arg1[10]);
2827    let x11: u32 = (arg1[11]);
2828    let x12: u32 = (arg1[0]);
2829    let mut x13: u32 = 0;
2830    let mut x14: u32 = 0;
2831    fp_mulx_u32(&mut x13, &mut x14, x12, (arg1[11]));
2832    let mut x15: u32 = 0;
2833    let mut x16: u32 = 0;
2834    fp_mulx_u32(&mut x15, &mut x16, x12, (arg1[10]));
2835    let mut x17: u32 = 0;
2836    let mut x18: u32 = 0;
2837    fp_mulx_u32(&mut x17, &mut x18, x12, (arg1[9]));
2838    let mut x19: u32 = 0;
2839    let mut x20: u32 = 0;
2840    fp_mulx_u32(&mut x19, &mut x20, x12, (arg1[8]));
2841    let mut x21: u32 = 0;
2842    let mut x22: u32 = 0;
2843    fp_mulx_u32(&mut x21, &mut x22, x12, (arg1[7]));
2844    let mut x23: u32 = 0;
2845    let mut x24: u32 = 0;
2846    fp_mulx_u32(&mut x23, &mut x24, x12, (arg1[6]));
2847    let mut x25: u32 = 0;
2848    let mut x26: u32 = 0;
2849    fp_mulx_u32(&mut x25, &mut x26, x12, (arg1[5]));
2850    let mut x27: u32 = 0;
2851    let mut x28: u32 = 0;
2852    fp_mulx_u32(&mut x27, &mut x28, x12, (arg1[4]));
2853    let mut x29: u32 = 0;
2854    let mut x30: u32 = 0;
2855    fp_mulx_u32(&mut x29, &mut x30, x12, (arg1[3]));
2856    let mut x31: u32 = 0;
2857    let mut x32: u32 = 0;
2858    fp_mulx_u32(&mut x31, &mut x32, x12, (arg1[2]));
2859    let mut x33: u32 = 0;
2860    let mut x34: u32 = 0;
2861    fp_mulx_u32(&mut x33, &mut x34, x12, (arg1[1]));
2862    let mut x35: u32 = 0;
2863    let mut x36: u32 = 0;
2864    fp_mulx_u32(&mut x35, &mut x36, x12, (arg1[0]));
2865    let mut x37: u32 = 0;
2866    let mut x38: FpU1 = 0;
2867    fp_addcarryx_u32(&mut x37, &mut x38, 0x0, x36, x33);
2868    let mut x39: u32 = 0;
2869    let mut x40: FpU1 = 0;
2870    fp_addcarryx_u32(&mut x39, &mut x40, x38, x34, x31);
2871    let mut x41: u32 = 0;
2872    let mut x42: FpU1 = 0;
2873    fp_addcarryx_u32(&mut x41, &mut x42, x40, x32, x29);
2874    let mut x43: u32 = 0;
2875    let mut x44: FpU1 = 0;
2876    fp_addcarryx_u32(&mut x43, &mut x44, x42, x30, x27);
2877    let mut x45: u32 = 0;
2878    let mut x46: FpU1 = 0;
2879    fp_addcarryx_u32(&mut x45, &mut x46, x44, x28, x25);
2880    let mut x47: u32 = 0;
2881    let mut x48: FpU1 = 0;
2882    fp_addcarryx_u32(&mut x47, &mut x48, x46, x26, x23);
2883    let mut x49: u32 = 0;
2884    let mut x50: FpU1 = 0;
2885    fp_addcarryx_u32(&mut x49, &mut x50, x48, x24, x21);
2886    let mut x51: u32 = 0;
2887    let mut x52: FpU1 = 0;
2888    fp_addcarryx_u32(&mut x51, &mut x52, x50, x22, x19);
2889    let mut x53: u32 = 0;
2890    let mut x54: FpU1 = 0;
2891    fp_addcarryx_u32(&mut x53, &mut x54, x52, x20, x17);
2892    let mut x55: u32 = 0;
2893    let mut x56: FpU1 = 0;
2894    fp_addcarryx_u32(&mut x55, &mut x56, x54, x18, x15);
2895    let mut x57: u32 = 0;
2896    let mut x58: FpU1 = 0;
2897    fp_addcarryx_u32(&mut x57, &mut x58, x56, x16, x13);
2898    let x59: u32 = ((x58 as u32) + x14);
2899    let mut x60: u32 = 0;
2900    let mut x61: u32 = 0;
2901    fp_mulx_u32(&mut x60, &mut x61, x35, 0xffffffff);
2902    let mut x62: u32 = 0;
2903    let mut x63: u32 = 0;
2904    fp_mulx_u32(&mut x62, &mut x63, x60, 0x1ae3a46);
2905    let mut x64: u32 = 0;
2906    let mut x65: u32 = 0;
2907    fp_mulx_u32(&mut x64, &mut x65, x60, 0x17c510ea);
2908    let mut x66: u32 = 0;
2909    let mut x67: u32 = 0;
2910    fp_mulx_u32(&mut x66, &mut x67, x60, 0xc63b05c0);
2911    let mut x68: u32 = 0;
2912    let mut x69: u32 = 0;
2913    fp_mulx_u32(&mut x68, &mut x69, x60, 0x6ca1493b);
2914    let mut x70: u32 = 0;
2915    let mut x71: u32 = 0;
2916    fp_mulx_u32(&mut x70, &mut x71, x60, 0x1a22d9f3);
2917    let mut x72: u32 = 0;
2918    let mut x73: u32 = 0;
2919    fp_mulx_u32(&mut x72, &mut x73, x60, 0xf5138f);
2920    let mut x74: u32 = 0;
2921    let mut x75: u32 = 0;
2922    fp_mulx_u32(&mut x74, &mut x75, x60, 0x1ef3622f);
2923    let mut x76: u32 = 0;
2924    let mut x77: u32 = 0;
2925    fp_mulx_u32(&mut x76, &mut x77, x60, 0xba094800);
2926    let mut x78: u32 = 0;
2927    let mut x79: u32 = 0;
2928    fp_mulx_u32(&mut x78, &mut x79, x60, 0x170b5d44);
2929    let mut x80: u32 = 0;
2930    let mut x81: u32 = 0;
2931    fp_mulx_u32(&mut x80, &mut x81, x60, 0x30000000);
2932    let mut x82: u32 = 0;
2933    let mut x83: u32 = 0;
2934    fp_mulx_u32(&mut x82, &mut x83, x60, 0x8508c000);
2935    let mut x84: u32 = 0;
2936    let mut x85: FpU1 = 0;
2937    fp_addcarryx_u32(&mut x84, &mut x85, 0x0, x83, x80);
2938    let mut x86: u32 = 0;
2939    let mut x87: FpU1 = 0;
2940    fp_addcarryx_u32(&mut x86, &mut x87, x85, x81, x78);
2941    let mut x88: u32 = 0;
2942    let mut x89: FpU1 = 0;
2943    fp_addcarryx_u32(&mut x88, &mut x89, x87, x79, x76);
2944    let mut x90: u32 = 0;
2945    let mut x91: FpU1 = 0;
2946    fp_addcarryx_u32(&mut x90, &mut x91, x89, x77, x74);
2947    let mut x92: u32 = 0;
2948    let mut x93: FpU1 = 0;
2949    fp_addcarryx_u32(&mut x92, &mut x93, x91, x75, x72);
2950    let mut x94: u32 = 0;
2951    let mut x95: FpU1 = 0;
2952    fp_addcarryx_u32(&mut x94, &mut x95, x93, x73, x70);
2953    let mut x96: u32 = 0;
2954    let mut x97: FpU1 = 0;
2955    fp_addcarryx_u32(&mut x96, &mut x97, x95, x71, x68);
2956    let mut x98: u32 = 0;
2957    let mut x99: FpU1 = 0;
2958    fp_addcarryx_u32(&mut x98, &mut x99, x97, x69, x66);
2959    let mut x100: u32 = 0;
2960    let mut x101: FpU1 = 0;
2961    fp_addcarryx_u32(&mut x100, &mut x101, x99, x67, x64);
2962    let mut x102: u32 = 0;
2963    let mut x103: FpU1 = 0;
2964    fp_addcarryx_u32(&mut x102, &mut x103, x101, x65, x62);
2965    let x104: u32 = ((x103 as u32) + x63);
2966    let mut x105: u32 = 0;
2967    let mut x106: FpU1 = 0;
2968    fp_addcarryx_u32(&mut x105, &mut x106, 0x0, x35, x60);
2969    let mut x107: u32 = 0;
2970    let mut x108: FpU1 = 0;
2971    fp_addcarryx_u32(&mut x107, &mut x108, x106, x37, x82);
2972    let mut x109: u32 = 0;
2973    let mut x110: FpU1 = 0;
2974    fp_addcarryx_u32(&mut x109, &mut x110, x108, x39, x84);
2975    let mut x111: u32 = 0;
2976    let mut x112: FpU1 = 0;
2977    fp_addcarryx_u32(&mut x111, &mut x112, x110, x41, x86);
2978    let mut x113: u32 = 0;
2979    let mut x114: FpU1 = 0;
2980    fp_addcarryx_u32(&mut x113, &mut x114, x112, x43, x88);
2981    let mut x115: u32 = 0;
2982    let mut x116: FpU1 = 0;
2983    fp_addcarryx_u32(&mut x115, &mut x116, x114, x45, x90);
2984    let mut x117: u32 = 0;
2985    let mut x118: FpU1 = 0;
2986    fp_addcarryx_u32(&mut x117, &mut x118, x116, x47, x92);
2987    let mut x119: u32 = 0;
2988    let mut x120: FpU1 = 0;
2989    fp_addcarryx_u32(&mut x119, &mut x120, x118, x49, x94);
2990    let mut x121: u32 = 0;
2991    let mut x122: FpU1 = 0;
2992    fp_addcarryx_u32(&mut x121, &mut x122, x120, x51, x96);
2993    let mut x123: u32 = 0;
2994    let mut x124: FpU1 = 0;
2995    fp_addcarryx_u32(&mut x123, &mut x124, x122, x53, x98);
2996    let mut x125: u32 = 0;
2997    let mut x126: FpU1 = 0;
2998    fp_addcarryx_u32(&mut x125, &mut x126, x124, x55, x100);
2999    let mut x127: u32 = 0;
3000    let mut x128: FpU1 = 0;
3001    fp_addcarryx_u32(&mut x127, &mut x128, x126, x57, x102);
3002    let mut x129: u32 = 0;
3003    let mut x130: FpU1 = 0;
3004    fp_addcarryx_u32(&mut x129, &mut x130, x128, x59, x104);
3005    let mut x131: u32 = 0;
3006    let mut x132: u32 = 0;
3007    fp_mulx_u32(&mut x131, &mut x132, x1, (arg1[11]));
3008    let mut x133: u32 = 0;
3009    let mut x134: u32 = 0;
3010    fp_mulx_u32(&mut x133, &mut x134, x1, (arg1[10]));
3011    let mut x135: u32 = 0;
3012    let mut x136: u32 = 0;
3013    fp_mulx_u32(&mut x135, &mut x136, x1, (arg1[9]));
3014    let mut x137: u32 = 0;
3015    let mut x138: u32 = 0;
3016    fp_mulx_u32(&mut x137, &mut x138, x1, (arg1[8]));
3017    let mut x139: u32 = 0;
3018    let mut x140: u32 = 0;
3019    fp_mulx_u32(&mut x139, &mut x140, x1, (arg1[7]));
3020    let mut x141: u32 = 0;
3021    let mut x142: u32 = 0;
3022    fp_mulx_u32(&mut x141, &mut x142, x1, (arg1[6]));
3023    let mut x143: u32 = 0;
3024    let mut x144: u32 = 0;
3025    fp_mulx_u32(&mut x143, &mut x144, x1, (arg1[5]));
3026    let mut x145: u32 = 0;
3027    let mut x146: u32 = 0;
3028    fp_mulx_u32(&mut x145, &mut x146, x1, (arg1[4]));
3029    let mut x147: u32 = 0;
3030    let mut x148: u32 = 0;
3031    fp_mulx_u32(&mut x147, &mut x148, x1, (arg1[3]));
3032    let mut x149: u32 = 0;
3033    let mut x150: u32 = 0;
3034    fp_mulx_u32(&mut x149, &mut x150, x1, (arg1[2]));
3035    let mut x151: u32 = 0;
3036    let mut x152: u32 = 0;
3037    fp_mulx_u32(&mut x151, &mut x152, x1, (arg1[1]));
3038    let mut x153: u32 = 0;
3039    let mut x154: u32 = 0;
3040    fp_mulx_u32(&mut x153, &mut x154, x1, (arg1[0]));
3041    let mut x155: u32 = 0;
3042    let mut x156: FpU1 = 0;
3043    fp_addcarryx_u32(&mut x155, &mut x156, 0x0, x154, x151);
3044    let mut x157: u32 = 0;
3045    let mut x158: FpU1 = 0;
3046    fp_addcarryx_u32(&mut x157, &mut x158, x156, x152, x149);
3047    let mut x159: u32 = 0;
3048    let mut x160: FpU1 = 0;
3049    fp_addcarryx_u32(&mut x159, &mut x160, x158, x150, x147);
3050    let mut x161: u32 = 0;
3051    let mut x162: FpU1 = 0;
3052    fp_addcarryx_u32(&mut x161, &mut x162, x160, x148, x145);
3053    let mut x163: u32 = 0;
3054    let mut x164: FpU1 = 0;
3055    fp_addcarryx_u32(&mut x163, &mut x164, x162, x146, x143);
3056    let mut x165: u32 = 0;
3057    let mut x166: FpU1 = 0;
3058    fp_addcarryx_u32(&mut x165, &mut x166, x164, x144, x141);
3059    let mut x167: u32 = 0;
3060    let mut x168: FpU1 = 0;
3061    fp_addcarryx_u32(&mut x167, &mut x168, x166, x142, x139);
3062    let mut x169: u32 = 0;
3063    let mut x170: FpU1 = 0;
3064    fp_addcarryx_u32(&mut x169, &mut x170, x168, x140, x137);
3065    let mut x171: u32 = 0;
3066    let mut x172: FpU1 = 0;
3067    fp_addcarryx_u32(&mut x171, &mut x172, x170, x138, x135);
3068    let mut x173: u32 = 0;
3069    let mut x174: FpU1 = 0;
3070    fp_addcarryx_u32(&mut x173, &mut x174, x172, x136, x133);
3071    let mut x175: u32 = 0;
3072    let mut x176: FpU1 = 0;
3073    fp_addcarryx_u32(&mut x175, &mut x176, x174, x134, x131);
3074    let x177: u32 = ((x176 as u32) + x132);
3075    let mut x178: u32 = 0;
3076    let mut x179: FpU1 = 0;
3077    fp_addcarryx_u32(&mut x178, &mut x179, 0x0, x107, x153);
3078    let mut x180: u32 = 0;
3079    let mut x181: FpU1 = 0;
3080    fp_addcarryx_u32(&mut x180, &mut x181, x179, x109, x155);
3081    let mut x182: u32 = 0;
3082    let mut x183: FpU1 = 0;
3083    fp_addcarryx_u32(&mut x182, &mut x183, x181, x111, x157);
3084    let mut x184: u32 = 0;
3085    let mut x185: FpU1 = 0;
3086    fp_addcarryx_u32(&mut x184, &mut x185, x183, x113, x159);
3087    let mut x186: u32 = 0;
3088    let mut x187: FpU1 = 0;
3089    fp_addcarryx_u32(&mut x186, &mut x187, x185, x115, x161);
3090    let mut x188: u32 = 0;
3091    let mut x189: FpU1 = 0;
3092    fp_addcarryx_u32(&mut x188, &mut x189, x187, x117, x163);
3093    let mut x190: u32 = 0;
3094    let mut x191: FpU1 = 0;
3095    fp_addcarryx_u32(&mut x190, &mut x191, x189, x119, x165);
3096    let mut x192: u32 = 0;
3097    let mut x193: FpU1 = 0;
3098    fp_addcarryx_u32(&mut x192, &mut x193, x191, x121, x167);
3099    let mut x194: u32 = 0;
3100    let mut x195: FpU1 = 0;
3101    fp_addcarryx_u32(&mut x194, &mut x195, x193, x123, x169);
3102    let mut x196: u32 = 0;
3103    let mut x197: FpU1 = 0;
3104    fp_addcarryx_u32(&mut x196, &mut x197, x195, x125, x171);
3105    let mut x198: u32 = 0;
3106    let mut x199: FpU1 = 0;
3107    fp_addcarryx_u32(&mut x198, &mut x199, x197, x127, x173);
3108    let mut x200: u32 = 0;
3109    let mut x201: FpU1 = 0;
3110    fp_addcarryx_u32(&mut x200, &mut x201, x199, x129, x175);
3111    let mut x202: u32 = 0;
3112    let mut x203: FpU1 = 0;
3113    fp_addcarryx_u32(&mut x202, &mut x203, x201, (x130 as u32), x177);
3114    let mut x204: u32 = 0;
3115    let mut x205: u32 = 0;
3116    fp_mulx_u32(&mut x204, &mut x205, x178, 0xffffffff);
3117    let mut x206: u32 = 0;
3118    let mut x207: u32 = 0;
3119    fp_mulx_u32(&mut x206, &mut x207, x204, 0x1ae3a46);
3120    let mut x208: u32 = 0;
3121    let mut x209: u32 = 0;
3122    fp_mulx_u32(&mut x208, &mut x209, x204, 0x17c510ea);
3123    let mut x210: u32 = 0;
3124    let mut x211: u32 = 0;
3125    fp_mulx_u32(&mut x210, &mut x211, x204, 0xc63b05c0);
3126    let mut x212: u32 = 0;
3127    let mut x213: u32 = 0;
3128    fp_mulx_u32(&mut x212, &mut x213, x204, 0x6ca1493b);
3129    let mut x214: u32 = 0;
3130    let mut x215: u32 = 0;
3131    fp_mulx_u32(&mut x214, &mut x215, x204, 0x1a22d9f3);
3132    let mut x216: u32 = 0;
3133    let mut x217: u32 = 0;
3134    fp_mulx_u32(&mut x216, &mut x217, x204, 0xf5138f);
3135    let mut x218: u32 = 0;
3136    let mut x219: u32 = 0;
3137    fp_mulx_u32(&mut x218, &mut x219, x204, 0x1ef3622f);
3138    let mut x220: u32 = 0;
3139    let mut x221: u32 = 0;
3140    fp_mulx_u32(&mut x220, &mut x221, x204, 0xba094800);
3141    let mut x222: u32 = 0;
3142    let mut x223: u32 = 0;
3143    fp_mulx_u32(&mut x222, &mut x223, x204, 0x170b5d44);
3144    let mut x224: u32 = 0;
3145    let mut x225: u32 = 0;
3146    fp_mulx_u32(&mut x224, &mut x225, x204, 0x30000000);
3147    let mut x226: u32 = 0;
3148    let mut x227: u32 = 0;
3149    fp_mulx_u32(&mut x226, &mut x227, x204, 0x8508c000);
3150    let mut x228: u32 = 0;
3151    let mut x229: FpU1 = 0;
3152    fp_addcarryx_u32(&mut x228, &mut x229, 0x0, x227, x224);
3153    let mut x230: u32 = 0;
3154    let mut x231: FpU1 = 0;
3155    fp_addcarryx_u32(&mut x230, &mut x231, x229, x225, x222);
3156    let mut x232: u32 = 0;
3157    let mut x233: FpU1 = 0;
3158    fp_addcarryx_u32(&mut x232, &mut x233, x231, x223, x220);
3159    let mut x234: u32 = 0;
3160    let mut x235: FpU1 = 0;
3161    fp_addcarryx_u32(&mut x234, &mut x235, x233, x221, x218);
3162    let mut x236: u32 = 0;
3163    let mut x237: FpU1 = 0;
3164    fp_addcarryx_u32(&mut x236, &mut x237, x235, x219, x216);
3165    let mut x238: u32 = 0;
3166    let mut x239: FpU1 = 0;
3167    fp_addcarryx_u32(&mut x238, &mut x239, x237, x217, x214);
3168    let mut x240: u32 = 0;
3169    let mut x241: FpU1 = 0;
3170    fp_addcarryx_u32(&mut x240, &mut x241, x239, x215, x212);
3171    let mut x242: u32 = 0;
3172    let mut x243: FpU1 = 0;
3173    fp_addcarryx_u32(&mut x242, &mut x243, x241, x213, x210);
3174    let mut x244: u32 = 0;
3175    let mut x245: FpU1 = 0;
3176    fp_addcarryx_u32(&mut x244, &mut x245, x243, x211, x208);
3177    let mut x246: u32 = 0;
3178    let mut x247: FpU1 = 0;
3179    fp_addcarryx_u32(&mut x246, &mut x247, x245, x209, x206);
3180    let x248: u32 = ((x247 as u32) + x207);
3181    let mut x249: u32 = 0;
3182    let mut x250: FpU1 = 0;
3183    fp_addcarryx_u32(&mut x249, &mut x250, 0x0, x178, x204);
3184    let mut x251: u32 = 0;
3185    let mut x252: FpU1 = 0;
3186    fp_addcarryx_u32(&mut x251, &mut x252, x250, x180, x226);
3187    let mut x253: u32 = 0;
3188    let mut x254: FpU1 = 0;
3189    fp_addcarryx_u32(&mut x253, &mut x254, x252, x182, x228);
3190    let mut x255: u32 = 0;
3191    let mut x256: FpU1 = 0;
3192    fp_addcarryx_u32(&mut x255, &mut x256, x254, x184, x230);
3193    let mut x257: u32 = 0;
3194    let mut x258: FpU1 = 0;
3195    fp_addcarryx_u32(&mut x257, &mut x258, x256, x186, x232);
3196    let mut x259: u32 = 0;
3197    let mut x260: FpU1 = 0;
3198    fp_addcarryx_u32(&mut x259, &mut x260, x258, x188, x234);
3199    let mut x261: u32 = 0;
3200    let mut x262: FpU1 = 0;
3201    fp_addcarryx_u32(&mut x261, &mut x262, x260, x190, x236);
3202    let mut x263: u32 = 0;
3203    let mut x264: FpU1 = 0;
3204    fp_addcarryx_u32(&mut x263, &mut x264, x262, x192, x238);
3205    let mut x265: u32 = 0;
3206    let mut x266: FpU1 = 0;
3207    fp_addcarryx_u32(&mut x265, &mut x266, x264, x194, x240);
3208    let mut x267: u32 = 0;
3209    let mut x268: FpU1 = 0;
3210    fp_addcarryx_u32(&mut x267, &mut x268, x266, x196, x242);
3211    let mut x269: u32 = 0;
3212    let mut x270: FpU1 = 0;
3213    fp_addcarryx_u32(&mut x269, &mut x270, x268, x198, x244);
3214    let mut x271: u32 = 0;
3215    let mut x272: FpU1 = 0;
3216    fp_addcarryx_u32(&mut x271, &mut x272, x270, x200, x246);
3217    let mut x273: u32 = 0;
3218    let mut x274: FpU1 = 0;
3219    fp_addcarryx_u32(&mut x273, &mut x274, x272, x202, x248);
3220    let x275: u32 = ((x274 as u32) + (x203 as u32));
3221    let mut x276: u32 = 0;
3222    let mut x277: u32 = 0;
3223    fp_mulx_u32(&mut x276, &mut x277, x2, (arg1[11]));
3224    let mut x278: u32 = 0;
3225    let mut x279: u32 = 0;
3226    fp_mulx_u32(&mut x278, &mut x279, x2, (arg1[10]));
3227    let mut x280: u32 = 0;
3228    let mut x281: u32 = 0;
3229    fp_mulx_u32(&mut x280, &mut x281, x2, (arg1[9]));
3230    let mut x282: u32 = 0;
3231    let mut x283: u32 = 0;
3232    fp_mulx_u32(&mut x282, &mut x283, x2, (arg1[8]));
3233    let mut x284: u32 = 0;
3234    let mut x285: u32 = 0;
3235    fp_mulx_u32(&mut x284, &mut x285, x2, (arg1[7]));
3236    let mut x286: u32 = 0;
3237    let mut x287: u32 = 0;
3238    fp_mulx_u32(&mut x286, &mut x287, x2, (arg1[6]));
3239    let mut x288: u32 = 0;
3240    let mut x289: u32 = 0;
3241    fp_mulx_u32(&mut x288, &mut x289, x2, (arg1[5]));
3242    let mut x290: u32 = 0;
3243    let mut x291: u32 = 0;
3244    fp_mulx_u32(&mut x290, &mut x291, x2, (arg1[4]));
3245    let mut x292: u32 = 0;
3246    let mut x293: u32 = 0;
3247    fp_mulx_u32(&mut x292, &mut x293, x2, (arg1[3]));
3248    let mut x294: u32 = 0;
3249    let mut x295: u32 = 0;
3250    fp_mulx_u32(&mut x294, &mut x295, x2, (arg1[2]));
3251    let mut x296: u32 = 0;
3252    let mut x297: u32 = 0;
3253    fp_mulx_u32(&mut x296, &mut x297, x2, (arg1[1]));
3254    let mut x298: u32 = 0;
3255    let mut x299: u32 = 0;
3256    fp_mulx_u32(&mut x298, &mut x299, x2, (arg1[0]));
3257    let mut x300: u32 = 0;
3258    let mut x301: FpU1 = 0;
3259    fp_addcarryx_u32(&mut x300, &mut x301, 0x0, x299, x296);
3260    let mut x302: u32 = 0;
3261    let mut x303: FpU1 = 0;
3262    fp_addcarryx_u32(&mut x302, &mut x303, x301, x297, x294);
3263    let mut x304: u32 = 0;
3264    let mut x305: FpU1 = 0;
3265    fp_addcarryx_u32(&mut x304, &mut x305, x303, x295, x292);
3266    let mut x306: u32 = 0;
3267    let mut x307: FpU1 = 0;
3268    fp_addcarryx_u32(&mut x306, &mut x307, x305, x293, x290);
3269    let mut x308: u32 = 0;
3270    let mut x309: FpU1 = 0;
3271    fp_addcarryx_u32(&mut x308, &mut x309, x307, x291, x288);
3272    let mut x310: u32 = 0;
3273    let mut x311: FpU1 = 0;
3274    fp_addcarryx_u32(&mut x310, &mut x311, x309, x289, x286);
3275    let mut x312: u32 = 0;
3276    let mut x313: FpU1 = 0;
3277    fp_addcarryx_u32(&mut x312, &mut x313, x311, x287, x284);
3278    let mut x314: u32 = 0;
3279    let mut x315: FpU1 = 0;
3280    fp_addcarryx_u32(&mut x314, &mut x315, x313, x285, x282);
3281    let mut x316: u32 = 0;
3282    let mut x317: FpU1 = 0;
3283    fp_addcarryx_u32(&mut x316, &mut x317, x315, x283, x280);
3284    let mut x318: u32 = 0;
3285    let mut x319: FpU1 = 0;
3286    fp_addcarryx_u32(&mut x318, &mut x319, x317, x281, x278);
3287    let mut x320: u32 = 0;
3288    let mut x321: FpU1 = 0;
3289    fp_addcarryx_u32(&mut x320, &mut x321, x319, x279, x276);
3290    let x322: u32 = ((x321 as u32) + x277);
3291    let mut x323: u32 = 0;
3292    let mut x324: FpU1 = 0;
3293    fp_addcarryx_u32(&mut x323, &mut x324, 0x0, x251, x298);
3294    let mut x325: u32 = 0;
3295    let mut x326: FpU1 = 0;
3296    fp_addcarryx_u32(&mut x325, &mut x326, x324, x253, x300);
3297    let mut x327: u32 = 0;
3298    let mut x328: FpU1 = 0;
3299    fp_addcarryx_u32(&mut x327, &mut x328, x326, x255, x302);
3300    let mut x329: u32 = 0;
3301    let mut x330: FpU1 = 0;
3302    fp_addcarryx_u32(&mut x329, &mut x330, x328, x257, x304);
3303    let mut x331: u32 = 0;
3304    let mut x332: FpU1 = 0;
3305    fp_addcarryx_u32(&mut x331, &mut x332, x330, x259, x306);
3306    let mut x333: u32 = 0;
3307    let mut x334: FpU1 = 0;
3308    fp_addcarryx_u32(&mut x333, &mut x334, x332, x261, x308);
3309    let mut x335: u32 = 0;
3310    let mut x336: FpU1 = 0;
3311    fp_addcarryx_u32(&mut x335, &mut x336, x334, x263, x310);
3312    let mut x337: u32 = 0;
3313    let mut x338: FpU1 = 0;
3314    fp_addcarryx_u32(&mut x337, &mut x338, x336, x265, x312);
3315    let mut x339: u32 = 0;
3316    let mut x340: FpU1 = 0;
3317    fp_addcarryx_u32(&mut x339, &mut x340, x338, x267, x314);
3318    let mut x341: u32 = 0;
3319    let mut x342: FpU1 = 0;
3320    fp_addcarryx_u32(&mut x341, &mut x342, x340, x269, x316);
3321    let mut x343: u32 = 0;
3322    let mut x344: FpU1 = 0;
3323    fp_addcarryx_u32(&mut x343, &mut x344, x342, x271, x318);
3324    let mut x345: u32 = 0;
3325    let mut x346: FpU1 = 0;
3326    fp_addcarryx_u32(&mut x345, &mut x346, x344, x273, x320);
3327    let mut x347: u32 = 0;
3328    let mut x348: FpU1 = 0;
3329    fp_addcarryx_u32(&mut x347, &mut x348, x346, x275, x322);
3330    let mut x349: u32 = 0;
3331    let mut x350: u32 = 0;
3332    fp_mulx_u32(&mut x349, &mut x350, x323, 0xffffffff);
3333    let mut x351: u32 = 0;
3334    let mut x352: u32 = 0;
3335    fp_mulx_u32(&mut x351, &mut x352, x349, 0x1ae3a46);
3336    let mut x353: u32 = 0;
3337    let mut x354: u32 = 0;
3338    fp_mulx_u32(&mut x353, &mut x354, x349, 0x17c510ea);
3339    let mut x355: u32 = 0;
3340    let mut x356: u32 = 0;
3341    fp_mulx_u32(&mut x355, &mut x356, x349, 0xc63b05c0);
3342    let mut x357: u32 = 0;
3343    let mut x358: u32 = 0;
3344    fp_mulx_u32(&mut x357, &mut x358, x349, 0x6ca1493b);
3345    let mut x359: u32 = 0;
3346    let mut x360: u32 = 0;
3347    fp_mulx_u32(&mut x359, &mut x360, x349, 0x1a22d9f3);
3348    let mut x361: u32 = 0;
3349    let mut x362: u32 = 0;
3350    fp_mulx_u32(&mut x361, &mut x362, x349, 0xf5138f);
3351    let mut x363: u32 = 0;
3352    let mut x364: u32 = 0;
3353    fp_mulx_u32(&mut x363, &mut x364, x349, 0x1ef3622f);
3354    let mut x365: u32 = 0;
3355    let mut x366: u32 = 0;
3356    fp_mulx_u32(&mut x365, &mut x366, x349, 0xba094800);
3357    let mut x367: u32 = 0;
3358    let mut x368: u32 = 0;
3359    fp_mulx_u32(&mut x367, &mut x368, x349, 0x170b5d44);
3360    let mut x369: u32 = 0;
3361    let mut x370: u32 = 0;
3362    fp_mulx_u32(&mut x369, &mut x370, x349, 0x30000000);
3363    let mut x371: u32 = 0;
3364    let mut x372: u32 = 0;
3365    fp_mulx_u32(&mut x371, &mut x372, x349, 0x8508c000);
3366    let mut x373: u32 = 0;
3367    let mut x374: FpU1 = 0;
3368    fp_addcarryx_u32(&mut x373, &mut x374, 0x0, x372, x369);
3369    let mut x375: u32 = 0;
3370    let mut x376: FpU1 = 0;
3371    fp_addcarryx_u32(&mut x375, &mut x376, x374, x370, x367);
3372    let mut x377: u32 = 0;
3373    let mut x378: FpU1 = 0;
3374    fp_addcarryx_u32(&mut x377, &mut x378, x376, x368, x365);
3375    let mut x379: u32 = 0;
3376    let mut x380: FpU1 = 0;
3377    fp_addcarryx_u32(&mut x379, &mut x380, x378, x366, x363);
3378    let mut x381: u32 = 0;
3379    let mut x382: FpU1 = 0;
3380    fp_addcarryx_u32(&mut x381, &mut x382, x380, x364, x361);
3381    let mut x383: u32 = 0;
3382    let mut x384: FpU1 = 0;
3383    fp_addcarryx_u32(&mut x383, &mut x384, x382, x362, x359);
3384    let mut x385: u32 = 0;
3385    let mut x386: FpU1 = 0;
3386    fp_addcarryx_u32(&mut x385, &mut x386, x384, x360, x357);
3387    let mut x387: u32 = 0;
3388    let mut x388: FpU1 = 0;
3389    fp_addcarryx_u32(&mut x387, &mut x388, x386, x358, x355);
3390    let mut x389: u32 = 0;
3391    let mut x390: FpU1 = 0;
3392    fp_addcarryx_u32(&mut x389, &mut x390, x388, x356, x353);
3393    let mut x391: u32 = 0;
3394    let mut x392: FpU1 = 0;
3395    fp_addcarryx_u32(&mut x391, &mut x392, x390, x354, x351);
3396    let x393: u32 = ((x392 as u32) + x352);
3397    let mut x394: u32 = 0;
3398    let mut x395: FpU1 = 0;
3399    fp_addcarryx_u32(&mut x394, &mut x395, 0x0, x323, x349);
3400    let mut x396: u32 = 0;
3401    let mut x397: FpU1 = 0;
3402    fp_addcarryx_u32(&mut x396, &mut x397, x395, x325, x371);
3403    let mut x398: u32 = 0;
3404    let mut x399: FpU1 = 0;
3405    fp_addcarryx_u32(&mut x398, &mut x399, x397, x327, x373);
3406    let mut x400: u32 = 0;
3407    let mut x401: FpU1 = 0;
3408    fp_addcarryx_u32(&mut x400, &mut x401, x399, x329, x375);
3409    let mut x402: u32 = 0;
3410    let mut x403: FpU1 = 0;
3411    fp_addcarryx_u32(&mut x402, &mut x403, x401, x331, x377);
3412    let mut x404: u32 = 0;
3413    let mut x405: FpU1 = 0;
3414    fp_addcarryx_u32(&mut x404, &mut x405, x403, x333, x379);
3415    let mut x406: u32 = 0;
3416    let mut x407: FpU1 = 0;
3417    fp_addcarryx_u32(&mut x406, &mut x407, x405, x335, x381);
3418    let mut x408: u32 = 0;
3419    let mut x409: FpU1 = 0;
3420    fp_addcarryx_u32(&mut x408, &mut x409, x407, x337, x383);
3421    let mut x410: u32 = 0;
3422    let mut x411: FpU1 = 0;
3423    fp_addcarryx_u32(&mut x410, &mut x411, x409, x339, x385);
3424    let mut x412: u32 = 0;
3425    let mut x413: FpU1 = 0;
3426    fp_addcarryx_u32(&mut x412, &mut x413, x411, x341, x387);
3427    let mut x414: u32 = 0;
3428    let mut x415: FpU1 = 0;
3429    fp_addcarryx_u32(&mut x414, &mut x415, x413, x343, x389);
3430    let mut x416: u32 = 0;
3431    let mut x417: FpU1 = 0;
3432    fp_addcarryx_u32(&mut x416, &mut x417, x415, x345, x391);
3433    let mut x418: u32 = 0;
3434    let mut x419: FpU1 = 0;
3435    fp_addcarryx_u32(&mut x418, &mut x419, x417, x347, x393);
3436    let x420: u32 = ((x419 as u32) + (x348 as u32));
3437    let mut x421: u32 = 0;
3438    let mut x422: u32 = 0;
3439    fp_mulx_u32(&mut x421, &mut x422, x3, (arg1[11]));
3440    let mut x423: u32 = 0;
3441    let mut x424: u32 = 0;
3442    fp_mulx_u32(&mut x423, &mut x424, x3, (arg1[10]));
3443    let mut x425: u32 = 0;
3444    let mut x426: u32 = 0;
3445    fp_mulx_u32(&mut x425, &mut x426, x3, (arg1[9]));
3446    let mut x427: u32 = 0;
3447    let mut x428: u32 = 0;
3448    fp_mulx_u32(&mut x427, &mut x428, x3, (arg1[8]));
3449    let mut x429: u32 = 0;
3450    let mut x430: u32 = 0;
3451    fp_mulx_u32(&mut x429, &mut x430, x3, (arg1[7]));
3452    let mut x431: u32 = 0;
3453    let mut x432: u32 = 0;
3454    fp_mulx_u32(&mut x431, &mut x432, x3, (arg1[6]));
3455    let mut x433: u32 = 0;
3456    let mut x434: u32 = 0;
3457    fp_mulx_u32(&mut x433, &mut x434, x3, (arg1[5]));
3458    let mut x435: u32 = 0;
3459    let mut x436: u32 = 0;
3460    fp_mulx_u32(&mut x435, &mut x436, x3, (arg1[4]));
3461    let mut x437: u32 = 0;
3462    let mut x438: u32 = 0;
3463    fp_mulx_u32(&mut x437, &mut x438, x3, (arg1[3]));
3464    let mut x439: u32 = 0;
3465    let mut x440: u32 = 0;
3466    fp_mulx_u32(&mut x439, &mut x440, x3, (arg1[2]));
3467    let mut x441: u32 = 0;
3468    let mut x442: u32 = 0;
3469    fp_mulx_u32(&mut x441, &mut x442, x3, (arg1[1]));
3470    let mut x443: u32 = 0;
3471    let mut x444: u32 = 0;
3472    fp_mulx_u32(&mut x443, &mut x444, x3, (arg1[0]));
3473    let mut x445: u32 = 0;
3474    let mut x446: FpU1 = 0;
3475    fp_addcarryx_u32(&mut x445, &mut x446, 0x0, x444, x441);
3476    let mut x447: u32 = 0;
3477    let mut x448: FpU1 = 0;
3478    fp_addcarryx_u32(&mut x447, &mut x448, x446, x442, x439);
3479    let mut x449: u32 = 0;
3480    let mut x450: FpU1 = 0;
3481    fp_addcarryx_u32(&mut x449, &mut x450, x448, x440, x437);
3482    let mut x451: u32 = 0;
3483    let mut x452: FpU1 = 0;
3484    fp_addcarryx_u32(&mut x451, &mut x452, x450, x438, x435);
3485    let mut x453: u32 = 0;
3486    let mut x454: FpU1 = 0;
3487    fp_addcarryx_u32(&mut x453, &mut x454, x452, x436, x433);
3488    let mut x455: u32 = 0;
3489    let mut x456: FpU1 = 0;
3490    fp_addcarryx_u32(&mut x455, &mut x456, x454, x434, x431);
3491    let mut x457: u32 = 0;
3492    let mut x458: FpU1 = 0;
3493    fp_addcarryx_u32(&mut x457, &mut x458, x456, x432, x429);
3494    let mut x459: u32 = 0;
3495    let mut x460: FpU1 = 0;
3496    fp_addcarryx_u32(&mut x459, &mut x460, x458, x430, x427);
3497    let mut x461: u32 = 0;
3498    let mut x462: FpU1 = 0;
3499    fp_addcarryx_u32(&mut x461, &mut x462, x460, x428, x425);
3500    let mut x463: u32 = 0;
3501    let mut x464: FpU1 = 0;
3502    fp_addcarryx_u32(&mut x463, &mut x464, x462, x426, x423);
3503    let mut x465: u32 = 0;
3504    let mut x466: FpU1 = 0;
3505    fp_addcarryx_u32(&mut x465, &mut x466, x464, x424, x421);
3506    let x467: u32 = ((x466 as u32) + x422);
3507    let mut x468: u32 = 0;
3508    let mut x469: FpU1 = 0;
3509    fp_addcarryx_u32(&mut x468, &mut x469, 0x0, x396, x443);
3510    let mut x470: u32 = 0;
3511    let mut x471: FpU1 = 0;
3512    fp_addcarryx_u32(&mut x470, &mut x471, x469, x398, x445);
3513    let mut x472: u32 = 0;
3514    let mut x473: FpU1 = 0;
3515    fp_addcarryx_u32(&mut x472, &mut x473, x471, x400, x447);
3516    let mut x474: u32 = 0;
3517    let mut x475: FpU1 = 0;
3518    fp_addcarryx_u32(&mut x474, &mut x475, x473, x402, x449);
3519    let mut x476: u32 = 0;
3520    let mut x477: FpU1 = 0;
3521    fp_addcarryx_u32(&mut x476, &mut x477, x475, x404, x451);
3522    let mut x478: u32 = 0;
3523    let mut x479: FpU1 = 0;
3524    fp_addcarryx_u32(&mut x478, &mut x479, x477, x406, x453);
3525    let mut x480: u32 = 0;
3526    let mut x481: FpU1 = 0;
3527    fp_addcarryx_u32(&mut x480, &mut x481, x479, x408, x455);
3528    let mut x482: u32 = 0;
3529    let mut x483: FpU1 = 0;
3530    fp_addcarryx_u32(&mut x482, &mut x483, x481, x410, x457);
3531    let mut x484: u32 = 0;
3532    let mut x485: FpU1 = 0;
3533    fp_addcarryx_u32(&mut x484, &mut x485, x483, x412, x459);
3534    let mut x486: u32 = 0;
3535    let mut x487: FpU1 = 0;
3536    fp_addcarryx_u32(&mut x486, &mut x487, x485, x414, x461);
3537    let mut x488: u32 = 0;
3538    let mut x489: FpU1 = 0;
3539    fp_addcarryx_u32(&mut x488, &mut x489, x487, x416, x463);
3540    let mut x490: u32 = 0;
3541    let mut x491: FpU1 = 0;
3542    fp_addcarryx_u32(&mut x490, &mut x491, x489, x418, x465);
3543    let mut x492: u32 = 0;
3544    let mut x493: FpU1 = 0;
3545    fp_addcarryx_u32(&mut x492, &mut x493, x491, x420, x467);
3546    let mut x494: u32 = 0;
3547    let mut x495: u32 = 0;
3548    fp_mulx_u32(&mut x494, &mut x495, x468, 0xffffffff);
3549    let mut x496: u32 = 0;
3550    let mut x497: u32 = 0;
3551    fp_mulx_u32(&mut x496, &mut x497, x494, 0x1ae3a46);
3552    let mut x498: u32 = 0;
3553    let mut x499: u32 = 0;
3554    fp_mulx_u32(&mut x498, &mut x499, x494, 0x17c510ea);
3555    let mut x500: u32 = 0;
3556    let mut x501: u32 = 0;
3557    fp_mulx_u32(&mut x500, &mut x501, x494, 0xc63b05c0);
3558    let mut x502: u32 = 0;
3559    let mut x503: u32 = 0;
3560    fp_mulx_u32(&mut x502, &mut x503, x494, 0x6ca1493b);
3561    let mut x504: u32 = 0;
3562    let mut x505: u32 = 0;
3563    fp_mulx_u32(&mut x504, &mut x505, x494, 0x1a22d9f3);
3564    let mut x506: u32 = 0;
3565    let mut x507: u32 = 0;
3566    fp_mulx_u32(&mut x506, &mut x507, x494, 0xf5138f);
3567    let mut x508: u32 = 0;
3568    let mut x509: u32 = 0;
3569    fp_mulx_u32(&mut x508, &mut x509, x494, 0x1ef3622f);
3570    let mut x510: u32 = 0;
3571    let mut x511: u32 = 0;
3572    fp_mulx_u32(&mut x510, &mut x511, x494, 0xba094800);
3573    let mut x512: u32 = 0;
3574    let mut x513: u32 = 0;
3575    fp_mulx_u32(&mut x512, &mut x513, x494, 0x170b5d44);
3576    let mut x514: u32 = 0;
3577    let mut x515: u32 = 0;
3578    fp_mulx_u32(&mut x514, &mut x515, x494, 0x30000000);
3579    let mut x516: u32 = 0;
3580    let mut x517: u32 = 0;
3581    fp_mulx_u32(&mut x516, &mut x517, x494, 0x8508c000);
3582    let mut x518: u32 = 0;
3583    let mut x519: FpU1 = 0;
3584    fp_addcarryx_u32(&mut x518, &mut x519, 0x0, x517, x514);
3585    let mut x520: u32 = 0;
3586    let mut x521: FpU1 = 0;
3587    fp_addcarryx_u32(&mut x520, &mut x521, x519, x515, x512);
3588    let mut x522: u32 = 0;
3589    let mut x523: FpU1 = 0;
3590    fp_addcarryx_u32(&mut x522, &mut x523, x521, x513, x510);
3591    let mut x524: u32 = 0;
3592    let mut x525: FpU1 = 0;
3593    fp_addcarryx_u32(&mut x524, &mut x525, x523, x511, x508);
3594    let mut x526: u32 = 0;
3595    let mut x527: FpU1 = 0;
3596    fp_addcarryx_u32(&mut x526, &mut x527, x525, x509, x506);
3597    let mut x528: u32 = 0;
3598    let mut x529: FpU1 = 0;
3599    fp_addcarryx_u32(&mut x528, &mut x529, x527, x507, x504);
3600    let mut x530: u32 = 0;
3601    let mut x531: FpU1 = 0;
3602    fp_addcarryx_u32(&mut x530, &mut x531, x529, x505, x502);
3603    let mut x532: u32 = 0;
3604    let mut x533: FpU1 = 0;
3605    fp_addcarryx_u32(&mut x532, &mut x533, x531, x503, x500);
3606    let mut x534: u32 = 0;
3607    let mut x535: FpU1 = 0;
3608    fp_addcarryx_u32(&mut x534, &mut x535, x533, x501, x498);
3609    let mut x536: u32 = 0;
3610    let mut x537: FpU1 = 0;
3611    fp_addcarryx_u32(&mut x536, &mut x537, x535, x499, x496);
3612    let x538: u32 = ((x537 as u32) + x497);
3613    let mut x539: u32 = 0;
3614    let mut x540: FpU1 = 0;
3615    fp_addcarryx_u32(&mut x539, &mut x540, 0x0, x468, x494);
3616    let mut x541: u32 = 0;
3617    let mut x542: FpU1 = 0;
3618    fp_addcarryx_u32(&mut x541, &mut x542, x540, x470, x516);
3619    let mut x543: u32 = 0;
3620    let mut x544: FpU1 = 0;
3621    fp_addcarryx_u32(&mut x543, &mut x544, x542, x472, x518);
3622    let mut x545: u32 = 0;
3623    let mut x546: FpU1 = 0;
3624    fp_addcarryx_u32(&mut x545, &mut x546, x544, x474, x520);
3625    let mut x547: u32 = 0;
3626    let mut x548: FpU1 = 0;
3627    fp_addcarryx_u32(&mut x547, &mut x548, x546, x476, x522);
3628    let mut x549: u32 = 0;
3629    let mut x550: FpU1 = 0;
3630    fp_addcarryx_u32(&mut x549, &mut x550, x548, x478, x524);
3631    let mut x551: u32 = 0;
3632    let mut x552: FpU1 = 0;
3633    fp_addcarryx_u32(&mut x551, &mut x552, x550, x480, x526);
3634    let mut x553: u32 = 0;
3635    let mut x554: FpU1 = 0;
3636    fp_addcarryx_u32(&mut x553, &mut x554, x552, x482, x528);
3637    let mut x555: u32 = 0;
3638    let mut x556: FpU1 = 0;
3639    fp_addcarryx_u32(&mut x555, &mut x556, x554, x484, x530);
3640    let mut x557: u32 = 0;
3641    let mut x558: FpU1 = 0;
3642    fp_addcarryx_u32(&mut x557, &mut x558, x556, x486, x532);
3643    let mut x559: u32 = 0;
3644    let mut x560: FpU1 = 0;
3645    fp_addcarryx_u32(&mut x559, &mut x560, x558, x488, x534);
3646    let mut x561: u32 = 0;
3647    let mut x562: FpU1 = 0;
3648    fp_addcarryx_u32(&mut x561, &mut x562, x560, x490, x536);
3649    let mut x563: u32 = 0;
3650    let mut x564: FpU1 = 0;
3651    fp_addcarryx_u32(&mut x563, &mut x564, x562, x492, x538);
3652    let x565: u32 = ((x564 as u32) + (x493 as u32));
3653    let mut x566: u32 = 0;
3654    let mut x567: u32 = 0;
3655    fp_mulx_u32(&mut x566, &mut x567, x4, (arg1[11]));
3656    let mut x568: u32 = 0;
3657    let mut x569: u32 = 0;
3658    fp_mulx_u32(&mut x568, &mut x569, x4, (arg1[10]));
3659    let mut x570: u32 = 0;
3660    let mut x571: u32 = 0;
3661    fp_mulx_u32(&mut x570, &mut x571, x4, (arg1[9]));
3662    let mut x572: u32 = 0;
3663    let mut x573: u32 = 0;
3664    fp_mulx_u32(&mut x572, &mut x573, x4, (arg1[8]));
3665    let mut x574: u32 = 0;
3666    let mut x575: u32 = 0;
3667    fp_mulx_u32(&mut x574, &mut x575, x4, (arg1[7]));
3668    let mut x576: u32 = 0;
3669    let mut x577: u32 = 0;
3670    fp_mulx_u32(&mut x576, &mut x577, x4, (arg1[6]));
3671    let mut x578: u32 = 0;
3672    let mut x579: u32 = 0;
3673    fp_mulx_u32(&mut x578, &mut x579, x4, (arg1[5]));
3674    let mut x580: u32 = 0;
3675    let mut x581: u32 = 0;
3676    fp_mulx_u32(&mut x580, &mut x581, x4, (arg1[4]));
3677    let mut x582: u32 = 0;
3678    let mut x583: u32 = 0;
3679    fp_mulx_u32(&mut x582, &mut x583, x4, (arg1[3]));
3680    let mut x584: u32 = 0;
3681    let mut x585: u32 = 0;
3682    fp_mulx_u32(&mut x584, &mut x585, x4, (arg1[2]));
3683    let mut x586: u32 = 0;
3684    let mut x587: u32 = 0;
3685    fp_mulx_u32(&mut x586, &mut x587, x4, (arg1[1]));
3686    let mut x588: u32 = 0;
3687    let mut x589: u32 = 0;
3688    fp_mulx_u32(&mut x588, &mut x589, x4, (arg1[0]));
3689    let mut x590: u32 = 0;
3690    let mut x591: FpU1 = 0;
3691    fp_addcarryx_u32(&mut x590, &mut x591, 0x0, x589, x586);
3692    let mut x592: u32 = 0;
3693    let mut x593: FpU1 = 0;
3694    fp_addcarryx_u32(&mut x592, &mut x593, x591, x587, x584);
3695    let mut x594: u32 = 0;
3696    let mut x595: FpU1 = 0;
3697    fp_addcarryx_u32(&mut x594, &mut x595, x593, x585, x582);
3698    let mut x596: u32 = 0;
3699    let mut x597: FpU1 = 0;
3700    fp_addcarryx_u32(&mut x596, &mut x597, x595, x583, x580);
3701    let mut x598: u32 = 0;
3702    let mut x599: FpU1 = 0;
3703    fp_addcarryx_u32(&mut x598, &mut x599, x597, x581, x578);
3704    let mut x600: u32 = 0;
3705    let mut x601: FpU1 = 0;
3706    fp_addcarryx_u32(&mut x600, &mut x601, x599, x579, x576);
3707    let mut x602: u32 = 0;
3708    let mut x603: FpU1 = 0;
3709    fp_addcarryx_u32(&mut x602, &mut x603, x601, x577, x574);
3710    let mut x604: u32 = 0;
3711    let mut x605: FpU1 = 0;
3712    fp_addcarryx_u32(&mut x604, &mut x605, x603, x575, x572);
3713    let mut x606: u32 = 0;
3714    let mut x607: FpU1 = 0;
3715    fp_addcarryx_u32(&mut x606, &mut x607, x605, x573, x570);
3716    let mut x608: u32 = 0;
3717    let mut x609: FpU1 = 0;
3718    fp_addcarryx_u32(&mut x608, &mut x609, x607, x571, x568);
3719    let mut x610: u32 = 0;
3720    let mut x611: FpU1 = 0;
3721    fp_addcarryx_u32(&mut x610, &mut x611, x609, x569, x566);
3722    let x612: u32 = ((x611 as u32) + x567);
3723    let mut x613: u32 = 0;
3724    let mut x614: FpU1 = 0;
3725    fp_addcarryx_u32(&mut x613, &mut x614, 0x0, x541, x588);
3726    let mut x615: u32 = 0;
3727    let mut x616: FpU1 = 0;
3728    fp_addcarryx_u32(&mut x615, &mut x616, x614, x543, x590);
3729    let mut x617: u32 = 0;
3730    let mut x618: FpU1 = 0;
3731    fp_addcarryx_u32(&mut x617, &mut x618, x616, x545, x592);
3732    let mut x619: u32 = 0;
3733    let mut x620: FpU1 = 0;
3734    fp_addcarryx_u32(&mut x619, &mut x620, x618, x547, x594);
3735    let mut x621: u32 = 0;
3736    let mut x622: FpU1 = 0;
3737    fp_addcarryx_u32(&mut x621, &mut x622, x620, x549, x596);
3738    let mut x623: u32 = 0;
3739    let mut x624: FpU1 = 0;
3740    fp_addcarryx_u32(&mut x623, &mut x624, x622, x551, x598);
3741    let mut x625: u32 = 0;
3742    let mut x626: FpU1 = 0;
3743    fp_addcarryx_u32(&mut x625, &mut x626, x624, x553, x600);
3744    let mut x627: u32 = 0;
3745    let mut x628: FpU1 = 0;
3746    fp_addcarryx_u32(&mut x627, &mut x628, x626, x555, x602);
3747    let mut x629: u32 = 0;
3748    let mut x630: FpU1 = 0;
3749    fp_addcarryx_u32(&mut x629, &mut x630, x628, x557, x604);
3750    let mut x631: u32 = 0;
3751    let mut x632: FpU1 = 0;
3752    fp_addcarryx_u32(&mut x631, &mut x632, x630, x559, x606);
3753    let mut x633: u32 = 0;
3754    let mut x634: FpU1 = 0;
3755    fp_addcarryx_u32(&mut x633, &mut x634, x632, x561, x608);
3756    let mut x635: u32 = 0;
3757    let mut x636: FpU1 = 0;
3758    fp_addcarryx_u32(&mut x635, &mut x636, x634, x563, x610);
3759    let mut x637: u32 = 0;
3760    let mut x638: FpU1 = 0;
3761    fp_addcarryx_u32(&mut x637, &mut x638, x636, x565, x612);
3762    let mut x639: u32 = 0;
3763    let mut x640: u32 = 0;
3764    fp_mulx_u32(&mut x639, &mut x640, x613, 0xffffffff);
3765    let mut x641: u32 = 0;
3766    let mut x642: u32 = 0;
3767    fp_mulx_u32(&mut x641, &mut x642, x639, 0x1ae3a46);
3768    let mut x643: u32 = 0;
3769    let mut x644: u32 = 0;
3770    fp_mulx_u32(&mut x643, &mut x644, x639, 0x17c510ea);
3771    let mut x645: u32 = 0;
3772    let mut x646: u32 = 0;
3773    fp_mulx_u32(&mut x645, &mut x646, x639, 0xc63b05c0);
3774    let mut x647: u32 = 0;
3775    let mut x648: u32 = 0;
3776    fp_mulx_u32(&mut x647, &mut x648, x639, 0x6ca1493b);
3777    let mut x649: u32 = 0;
3778    let mut x650: u32 = 0;
3779    fp_mulx_u32(&mut x649, &mut x650, x639, 0x1a22d9f3);
3780    let mut x651: u32 = 0;
3781    let mut x652: u32 = 0;
3782    fp_mulx_u32(&mut x651, &mut x652, x639, 0xf5138f);
3783    let mut x653: u32 = 0;
3784    let mut x654: u32 = 0;
3785    fp_mulx_u32(&mut x653, &mut x654, x639, 0x1ef3622f);
3786    let mut x655: u32 = 0;
3787    let mut x656: u32 = 0;
3788    fp_mulx_u32(&mut x655, &mut x656, x639, 0xba094800);
3789    let mut x657: u32 = 0;
3790    let mut x658: u32 = 0;
3791    fp_mulx_u32(&mut x657, &mut x658, x639, 0x170b5d44);
3792    let mut x659: u32 = 0;
3793    let mut x660: u32 = 0;
3794    fp_mulx_u32(&mut x659, &mut x660, x639, 0x30000000);
3795    let mut x661: u32 = 0;
3796    let mut x662: u32 = 0;
3797    fp_mulx_u32(&mut x661, &mut x662, x639, 0x8508c000);
3798    let mut x663: u32 = 0;
3799    let mut x664: FpU1 = 0;
3800    fp_addcarryx_u32(&mut x663, &mut x664, 0x0, x662, x659);
3801    let mut x665: u32 = 0;
3802    let mut x666: FpU1 = 0;
3803    fp_addcarryx_u32(&mut x665, &mut x666, x664, x660, x657);
3804    let mut x667: u32 = 0;
3805    let mut x668: FpU1 = 0;
3806    fp_addcarryx_u32(&mut x667, &mut x668, x666, x658, x655);
3807    let mut x669: u32 = 0;
3808    let mut x670: FpU1 = 0;
3809    fp_addcarryx_u32(&mut x669, &mut x670, x668, x656, x653);
3810    let mut x671: u32 = 0;
3811    let mut x672: FpU1 = 0;
3812    fp_addcarryx_u32(&mut x671, &mut x672, x670, x654, x651);
3813    let mut x673: u32 = 0;
3814    let mut x674: FpU1 = 0;
3815    fp_addcarryx_u32(&mut x673, &mut x674, x672, x652, x649);
3816    let mut x675: u32 = 0;
3817    let mut x676: FpU1 = 0;
3818    fp_addcarryx_u32(&mut x675, &mut x676, x674, x650, x647);
3819    let mut x677: u32 = 0;
3820    let mut x678: FpU1 = 0;
3821    fp_addcarryx_u32(&mut x677, &mut x678, x676, x648, x645);
3822    let mut x679: u32 = 0;
3823    let mut x680: FpU1 = 0;
3824    fp_addcarryx_u32(&mut x679, &mut x680, x678, x646, x643);
3825    let mut x681: u32 = 0;
3826    let mut x682: FpU1 = 0;
3827    fp_addcarryx_u32(&mut x681, &mut x682, x680, x644, x641);
3828    let x683: u32 = ((x682 as u32) + x642);
3829    let mut x684: u32 = 0;
3830    let mut x685: FpU1 = 0;
3831    fp_addcarryx_u32(&mut x684, &mut x685, 0x0, x613, x639);
3832    let mut x686: u32 = 0;
3833    let mut x687: FpU1 = 0;
3834    fp_addcarryx_u32(&mut x686, &mut x687, x685, x615, x661);
3835    let mut x688: u32 = 0;
3836    let mut x689: FpU1 = 0;
3837    fp_addcarryx_u32(&mut x688, &mut x689, x687, x617, x663);
3838    let mut x690: u32 = 0;
3839    let mut x691: FpU1 = 0;
3840    fp_addcarryx_u32(&mut x690, &mut x691, x689, x619, x665);
3841    let mut x692: u32 = 0;
3842    let mut x693: FpU1 = 0;
3843    fp_addcarryx_u32(&mut x692, &mut x693, x691, x621, x667);
3844    let mut x694: u32 = 0;
3845    let mut x695: FpU1 = 0;
3846    fp_addcarryx_u32(&mut x694, &mut x695, x693, x623, x669);
3847    let mut x696: u32 = 0;
3848    let mut x697: FpU1 = 0;
3849    fp_addcarryx_u32(&mut x696, &mut x697, x695, x625, x671);
3850    let mut x698: u32 = 0;
3851    let mut x699: FpU1 = 0;
3852    fp_addcarryx_u32(&mut x698, &mut x699, x697, x627, x673);
3853    let mut x700: u32 = 0;
3854    let mut x701: FpU1 = 0;
3855    fp_addcarryx_u32(&mut x700, &mut x701, x699, x629, x675);
3856    let mut x702: u32 = 0;
3857    let mut x703: FpU1 = 0;
3858    fp_addcarryx_u32(&mut x702, &mut x703, x701, x631, x677);
3859    let mut x704: u32 = 0;
3860    let mut x705: FpU1 = 0;
3861    fp_addcarryx_u32(&mut x704, &mut x705, x703, x633, x679);
3862    let mut x706: u32 = 0;
3863    let mut x707: FpU1 = 0;
3864    fp_addcarryx_u32(&mut x706, &mut x707, x705, x635, x681);
3865    let mut x708: u32 = 0;
3866    let mut x709: FpU1 = 0;
3867    fp_addcarryx_u32(&mut x708, &mut x709, x707, x637, x683);
3868    let x710: u32 = ((x709 as u32) + (x638 as u32));
3869    let mut x711: u32 = 0;
3870    let mut x712: u32 = 0;
3871    fp_mulx_u32(&mut x711, &mut x712, x5, (arg1[11]));
3872    let mut x713: u32 = 0;
3873    let mut x714: u32 = 0;
3874    fp_mulx_u32(&mut x713, &mut x714, x5, (arg1[10]));
3875    let mut x715: u32 = 0;
3876    let mut x716: u32 = 0;
3877    fp_mulx_u32(&mut x715, &mut x716, x5, (arg1[9]));
3878    let mut x717: u32 = 0;
3879    let mut x718: u32 = 0;
3880    fp_mulx_u32(&mut x717, &mut x718, x5, (arg1[8]));
3881    let mut x719: u32 = 0;
3882    let mut x720: u32 = 0;
3883    fp_mulx_u32(&mut x719, &mut x720, x5, (arg1[7]));
3884    let mut x721: u32 = 0;
3885    let mut x722: u32 = 0;
3886    fp_mulx_u32(&mut x721, &mut x722, x5, (arg1[6]));
3887    let mut x723: u32 = 0;
3888    let mut x724: u32 = 0;
3889    fp_mulx_u32(&mut x723, &mut x724, x5, (arg1[5]));
3890    let mut x725: u32 = 0;
3891    let mut x726: u32 = 0;
3892    fp_mulx_u32(&mut x725, &mut x726, x5, (arg1[4]));
3893    let mut x727: u32 = 0;
3894    let mut x728: u32 = 0;
3895    fp_mulx_u32(&mut x727, &mut x728, x5, (arg1[3]));
3896    let mut x729: u32 = 0;
3897    let mut x730: u32 = 0;
3898    fp_mulx_u32(&mut x729, &mut x730, x5, (arg1[2]));
3899    let mut x731: u32 = 0;
3900    let mut x732: u32 = 0;
3901    fp_mulx_u32(&mut x731, &mut x732, x5, (arg1[1]));
3902    let mut x733: u32 = 0;
3903    let mut x734: u32 = 0;
3904    fp_mulx_u32(&mut x733, &mut x734, x5, (arg1[0]));
3905    let mut x735: u32 = 0;
3906    let mut x736: FpU1 = 0;
3907    fp_addcarryx_u32(&mut x735, &mut x736, 0x0, x734, x731);
3908    let mut x737: u32 = 0;
3909    let mut x738: FpU1 = 0;
3910    fp_addcarryx_u32(&mut x737, &mut x738, x736, x732, x729);
3911    let mut x739: u32 = 0;
3912    let mut x740: FpU1 = 0;
3913    fp_addcarryx_u32(&mut x739, &mut x740, x738, x730, x727);
3914    let mut x741: u32 = 0;
3915    let mut x742: FpU1 = 0;
3916    fp_addcarryx_u32(&mut x741, &mut x742, x740, x728, x725);
3917    let mut x743: u32 = 0;
3918    let mut x744: FpU1 = 0;
3919    fp_addcarryx_u32(&mut x743, &mut x744, x742, x726, x723);
3920    let mut x745: u32 = 0;
3921    let mut x746: FpU1 = 0;
3922    fp_addcarryx_u32(&mut x745, &mut x746, x744, x724, x721);
3923    let mut x747: u32 = 0;
3924    let mut x748: FpU1 = 0;
3925    fp_addcarryx_u32(&mut x747, &mut x748, x746, x722, x719);
3926    let mut x749: u32 = 0;
3927    let mut x750: FpU1 = 0;
3928    fp_addcarryx_u32(&mut x749, &mut x750, x748, x720, x717);
3929    let mut x751: u32 = 0;
3930    let mut x752: FpU1 = 0;
3931    fp_addcarryx_u32(&mut x751, &mut x752, x750, x718, x715);
3932    let mut x753: u32 = 0;
3933    let mut x754: FpU1 = 0;
3934    fp_addcarryx_u32(&mut x753, &mut x754, x752, x716, x713);
3935    let mut x755: u32 = 0;
3936    let mut x756: FpU1 = 0;
3937    fp_addcarryx_u32(&mut x755, &mut x756, x754, x714, x711);
3938    let x757: u32 = ((x756 as u32) + x712);
3939    let mut x758: u32 = 0;
3940    let mut x759: FpU1 = 0;
3941    fp_addcarryx_u32(&mut x758, &mut x759, 0x0, x686, x733);
3942    let mut x760: u32 = 0;
3943    let mut x761: FpU1 = 0;
3944    fp_addcarryx_u32(&mut x760, &mut x761, x759, x688, x735);
3945    let mut x762: u32 = 0;
3946    let mut x763: FpU1 = 0;
3947    fp_addcarryx_u32(&mut x762, &mut x763, x761, x690, x737);
3948    let mut x764: u32 = 0;
3949    let mut x765: FpU1 = 0;
3950    fp_addcarryx_u32(&mut x764, &mut x765, x763, x692, x739);
3951    let mut x766: u32 = 0;
3952    let mut x767: FpU1 = 0;
3953    fp_addcarryx_u32(&mut x766, &mut x767, x765, x694, x741);
3954    let mut x768: u32 = 0;
3955    let mut x769: FpU1 = 0;
3956    fp_addcarryx_u32(&mut x768, &mut x769, x767, x696, x743);
3957    let mut x770: u32 = 0;
3958    let mut x771: FpU1 = 0;
3959    fp_addcarryx_u32(&mut x770, &mut x771, x769, x698, x745);
3960    let mut x772: u32 = 0;
3961    let mut x773: FpU1 = 0;
3962    fp_addcarryx_u32(&mut x772, &mut x773, x771, x700, x747);
3963    let mut x774: u32 = 0;
3964    let mut x775: FpU1 = 0;
3965    fp_addcarryx_u32(&mut x774, &mut x775, x773, x702, x749);
3966    let mut x776: u32 = 0;
3967    let mut x777: FpU1 = 0;
3968    fp_addcarryx_u32(&mut x776, &mut x777, x775, x704, x751);
3969    let mut x778: u32 = 0;
3970    let mut x779: FpU1 = 0;
3971    fp_addcarryx_u32(&mut x778, &mut x779, x777, x706, x753);
3972    let mut x780: u32 = 0;
3973    let mut x781: FpU1 = 0;
3974    fp_addcarryx_u32(&mut x780, &mut x781, x779, x708, x755);
3975    let mut x782: u32 = 0;
3976    let mut x783: FpU1 = 0;
3977    fp_addcarryx_u32(&mut x782, &mut x783, x781, x710, x757);
3978    let mut x784: u32 = 0;
3979    let mut x785: u32 = 0;
3980    fp_mulx_u32(&mut x784, &mut x785, x758, 0xffffffff);
3981    let mut x786: u32 = 0;
3982    let mut x787: u32 = 0;
3983    fp_mulx_u32(&mut x786, &mut x787, x784, 0x1ae3a46);
3984    let mut x788: u32 = 0;
3985    let mut x789: u32 = 0;
3986    fp_mulx_u32(&mut x788, &mut x789, x784, 0x17c510ea);
3987    let mut x790: u32 = 0;
3988    let mut x791: u32 = 0;
3989    fp_mulx_u32(&mut x790, &mut x791, x784, 0xc63b05c0);
3990    let mut x792: u32 = 0;
3991    let mut x793: u32 = 0;
3992    fp_mulx_u32(&mut x792, &mut x793, x784, 0x6ca1493b);
3993    let mut x794: u32 = 0;
3994    let mut x795: u32 = 0;
3995    fp_mulx_u32(&mut x794, &mut x795, x784, 0x1a22d9f3);
3996    let mut x796: u32 = 0;
3997    let mut x797: u32 = 0;
3998    fp_mulx_u32(&mut x796, &mut x797, x784, 0xf5138f);
3999    let mut x798: u32 = 0;
4000    let mut x799: u32 = 0;
4001    fp_mulx_u32(&mut x798, &mut x799, x784, 0x1ef3622f);
4002    let mut x800: u32 = 0;
4003    let mut x801: u32 = 0;
4004    fp_mulx_u32(&mut x800, &mut x801, x784, 0xba094800);
4005    let mut x802: u32 = 0;
4006    let mut x803: u32 = 0;
4007    fp_mulx_u32(&mut x802, &mut x803, x784, 0x170b5d44);
4008    let mut x804: u32 = 0;
4009    let mut x805: u32 = 0;
4010    fp_mulx_u32(&mut x804, &mut x805, x784, 0x30000000);
4011    let mut x806: u32 = 0;
4012    let mut x807: u32 = 0;
4013    fp_mulx_u32(&mut x806, &mut x807, x784, 0x8508c000);
4014    let mut x808: u32 = 0;
4015    let mut x809: FpU1 = 0;
4016    fp_addcarryx_u32(&mut x808, &mut x809, 0x0, x807, x804);
4017    let mut x810: u32 = 0;
4018    let mut x811: FpU1 = 0;
4019    fp_addcarryx_u32(&mut x810, &mut x811, x809, x805, x802);
4020    let mut x812: u32 = 0;
4021    let mut x813: FpU1 = 0;
4022    fp_addcarryx_u32(&mut x812, &mut x813, x811, x803, x800);
4023    let mut x814: u32 = 0;
4024    let mut x815: FpU1 = 0;
4025    fp_addcarryx_u32(&mut x814, &mut x815, x813, x801, x798);
4026    let mut x816: u32 = 0;
4027    let mut x817: FpU1 = 0;
4028    fp_addcarryx_u32(&mut x816, &mut x817, x815, x799, x796);
4029    let mut x818: u32 = 0;
4030    let mut x819: FpU1 = 0;
4031    fp_addcarryx_u32(&mut x818, &mut x819, x817, x797, x794);
4032    let mut x820: u32 = 0;
4033    let mut x821: FpU1 = 0;
4034    fp_addcarryx_u32(&mut x820, &mut x821, x819, x795, x792);
4035    let mut x822: u32 = 0;
4036    let mut x823: FpU1 = 0;
4037    fp_addcarryx_u32(&mut x822, &mut x823, x821, x793, x790);
4038    let mut x824: u32 = 0;
4039    let mut x825: FpU1 = 0;
4040    fp_addcarryx_u32(&mut x824, &mut x825, x823, x791, x788);
4041    let mut x826: u32 = 0;
4042    let mut x827: FpU1 = 0;
4043    fp_addcarryx_u32(&mut x826, &mut x827, x825, x789, x786);
4044    let x828: u32 = ((x827 as u32) + x787);
4045    let mut x829: u32 = 0;
4046    let mut x830: FpU1 = 0;
4047    fp_addcarryx_u32(&mut x829, &mut x830, 0x0, x758, x784);
4048    let mut x831: u32 = 0;
4049    let mut x832: FpU1 = 0;
4050    fp_addcarryx_u32(&mut x831, &mut x832, x830, x760, x806);
4051    let mut x833: u32 = 0;
4052    let mut x834: FpU1 = 0;
4053    fp_addcarryx_u32(&mut x833, &mut x834, x832, x762, x808);
4054    let mut x835: u32 = 0;
4055    let mut x836: FpU1 = 0;
4056    fp_addcarryx_u32(&mut x835, &mut x836, x834, x764, x810);
4057    let mut x837: u32 = 0;
4058    let mut x838: FpU1 = 0;
4059    fp_addcarryx_u32(&mut x837, &mut x838, x836, x766, x812);
4060    let mut x839: u32 = 0;
4061    let mut x840: FpU1 = 0;
4062    fp_addcarryx_u32(&mut x839, &mut x840, x838, x768, x814);
4063    let mut x841: u32 = 0;
4064    let mut x842: FpU1 = 0;
4065    fp_addcarryx_u32(&mut x841, &mut x842, x840, x770, x816);
4066    let mut x843: u32 = 0;
4067    let mut x844: FpU1 = 0;
4068    fp_addcarryx_u32(&mut x843, &mut x844, x842, x772, x818);
4069    let mut x845: u32 = 0;
4070    let mut x846: FpU1 = 0;
4071    fp_addcarryx_u32(&mut x845, &mut x846, x844, x774, x820);
4072    let mut x847: u32 = 0;
4073    let mut x848: FpU1 = 0;
4074    fp_addcarryx_u32(&mut x847, &mut x848, x846, x776, x822);
4075    let mut x849: u32 = 0;
4076    let mut x850: FpU1 = 0;
4077    fp_addcarryx_u32(&mut x849, &mut x850, x848, x778, x824);
4078    let mut x851: u32 = 0;
4079    let mut x852: FpU1 = 0;
4080    fp_addcarryx_u32(&mut x851, &mut x852, x850, x780, x826);
4081    let mut x853: u32 = 0;
4082    let mut x854: FpU1 = 0;
4083    fp_addcarryx_u32(&mut x853, &mut x854, x852, x782, x828);
4084    let x855: u32 = ((x854 as u32) + (x783 as u32));
4085    let mut x856: u32 = 0;
4086    let mut x857: u32 = 0;
4087    fp_mulx_u32(&mut x856, &mut x857, x6, (arg1[11]));
4088    let mut x858: u32 = 0;
4089    let mut x859: u32 = 0;
4090    fp_mulx_u32(&mut x858, &mut x859, x6, (arg1[10]));
4091    let mut x860: u32 = 0;
4092    let mut x861: u32 = 0;
4093    fp_mulx_u32(&mut x860, &mut x861, x6, (arg1[9]));
4094    let mut x862: u32 = 0;
4095    let mut x863: u32 = 0;
4096    fp_mulx_u32(&mut x862, &mut x863, x6, (arg1[8]));
4097    let mut x864: u32 = 0;
4098    let mut x865: u32 = 0;
4099    fp_mulx_u32(&mut x864, &mut x865, x6, (arg1[7]));
4100    let mut x866: u32 = 0;
4101    let mut x867: u32 = 0;
4102    fp_mulx_u32(&mut x866, &mut x867, x6, (arg1[6]));
4103    let mut x868: u32 = 0;
4104    let mut x869: u32 = 0;
4105    fp_mulx_u32(&mut x868, &mut x869, x6, (arg1[5]));
4106    let mut x870: u32 = 0;
4107    let mut x871: u32 = 0;
4108    fp_mulx_u32(&mut x870, &mut x871, x6, (arg1[4]));
4109    let mut x872: u32 = 0;
4110    let mut x873: u32 = 0;
4111    fp_mulx_u32(&mut x872, &mut x873, x6, (arg1[3]));
4112    let mut x874: u32 = 0;
4113    let mut x875: u32 = 0;
4114    fp_mulx_u32(&mut x874, &mut x875, x6, (arg1[2]));
4115    let mut x876: u32 = 0;
4116    let mut x877: u32 = 0;
4117    fp_mulx_u32(&mut x876, &mut x877, x6, (arg1[1]));
4118    let mut x878: u32 = 0;
4119    let mut x879: u32 = 0;
4120    fp_mulx_u32(&mut x878, &mut x879, x6, (arg1[0]));
4121    let mut x880: u32 = 0;
4122    let mut x881: FpU1 = 0;
4123    fp_addcarryx_u32(&mut x880, &mut x881, 0x0, x879, x876);
4124    let mut x882: u32 = 0;
4125    let mut x883: FpU1 = 0;
4126    fp_addcarryx_u32(&mut x882, &mut x883, x881, x877, x874);
4127    let mut x884: u32 = 0;
4128    let mut x885: FpU1 = 0;
4129    fp_addcarryx_u32(&mut x884, &mut x885, x883, x875, x872);
4130    let mut x886: u32 = 0;
4131    let mut x887: FpU1 = 0;
4132    fp_addcarryx_u32(&mut x886, &mut x887, x885, x873, x870);
4133    let mut x888: u32 = 0;
4134    let mut x889: FpU1 = 0;
4135    fp_addcarryx_u32(&mut x888, &mut x889, x887, x871, x868);
4136    let mut x890: u32 = 0;
4137    let mut x891: FpU1 = 0;
4138    fp_addcarryx_u32(&mut x890, &mut x891, x889, x869, x866);
4139    let mut x892: u32 = 0;
4140    let mut x893: FpU1 = 0;
4141    fp_addcarryx_u32(&mut x892, &mut x893, x891, x867, x864);
4142    let mut x894: u32 = 0;
4143    let mut x895: FpU1 = 0;
4144    fp_addcarryx_u32(&mut x894, &mut x895, x893, x865, x862);
4145    let mut x896: u32 = 0;
4146    let mut x897: FpU1 = 0;
4147    fp_addcarryx_u32(&mut x896, &mut x897, x895, x863, x860);
4148    let mut x898: u32 = 0;
4149    let mut x899: FpU1 = 0;
4150    fp_addcarryx_u32(&mut x898, &mut x899, x897, x861, x858);
4151    let mut x900: u32 = 0;
4152    let mut x901: FpU1 = 0;
4153    fp_addcarryx_u32(&mut x900, &mut x901, x899, x859, x856);
4154    let x902: u32 = ((x901 as u32) + x857);
4155    let mut x903: u32 = 0;
4156    let mut x904: FpU1 = 0;
4157    fp_addcarryx_u32(&mut x903, &mut x904, 0x0, x831, x878);
4158    let mut x905: u32 = 0;
4159    let mut x906: FpU1 = 0;
4160    fp_addcarryx_u32(&mut x905, &mut x906, x904, x833, x880);
4161    let mut x907: u32 = 0;
4162    let mut x908: FpU1 = 0;
4163    fp_addcarryx_u32(&mut x907, &mut x908, x906, x835, x882);
4164    let mut x909: u32 = 0;
4165    let mut x910: FpU1 = 0;
4166    fp_addcarryx_u32(&mut x909, &mut x910, x908, x837, x884);
4167    let mut x911: u32 = 0;
4168    let mut x912: FpU1 = 0;
4169    fp_addcarryx_u32(&mut x911, &mut x912, x910, x839, x886);
4170    let mut x913: u32 = 0;
4171    let mut x914: FpU1 = 0;
4172    fp_addcarryx_u32(&mut x913, &mut x914, x912, x841, x888);
4173    let mut x915: u32 = 0;
4174    let mut x916: FpU1 = 0;
4175    fp_addcarryx_u32(&mut x915, &mut x916, x914, x843, x890);
4176    let mut x917: u32 = 0;
4177    let mut x918: FpU1 = 0;
4178    fp_addcarryx_u32(&mut x917, &mut x918, x916, x845, x892);
4179    let mut x919: u32 = 0;
4180    let mut x920: FpU1 = 0;
4181    fp_addcarryx_u32(&mut x919, &mut x920, x918, x847, x894);
4182    let mut x921: u32 = 0;
4183    let mut x922: FpU1 = 0;
4184    fp_addcarryx_u32(&mut x921, &mut x922, x920, x849, x896);
4185    let mut x923: u32 = 0;
4186    let mut x924: FpU1 = 0;
4187    fp_addcarryx_u32(&mut x923, &mut x924, x922, x851, x898);
4188    let mut x925: u32 = 0;
4189    let mut x926: FpU1 = 0;
4190    fp_addcarryx_u32(&mut x925, &mut x926, x924, x853, x900);
4191    let mut x927: u32 = 0;
4192    let mut x928: FpU1 = 0;
4193    fp_addcarryx_u32(&mut x927, &mut x928, x926, x855, x902);
4194    let mut x929: u32 = 0;
4195    let mut x930: u32 = 0;
4196    fp_mulx_u32(&mut x929, &mut x930, x903, 0xffffffff);
4197    let mut x931: u32 = 0;
4198    let mut x932: u32 = 0;
4199    fp_mulx_u32(&mut x931, &mut x932, x929, 0x1ae3a46);
4200    let mut x933: u32 = 0;
4201    let mut x934: u32 = 0;
4202    fp_mulx_u32(&mut x933, &mut x934, x929, 0x17c510ea);
4203    let mut x935: u32 = 0;
4204    let mut x936: u32 = 0;
4205    fp_mulx_u32(&mut x935, &mut x936, x929, 0xc63b05c0);
4206    let mut x937: u32 = 0;
4207    let mut x938: u32 = 0;
4208    fp_mulx_u32(&mut x937, &mut x938, x929, 0x6ca1493b);
4209    let mut x939: u32 = 0;
4210    let mut x940: u32 = 0;
4211    fp_mulx_u32(&mut x939, &mut x940, x929, 0x1a22d9f3);
4212    let mut x941: u32 = 0;
4213    let mut x942: u32 = 0;
4214    fp_mulx_u32(&mut x941, &mut x942, x929, 0xf5138f);
4215    let mut x943: u32 = 0;
4216    let mut x944: u32 = 0;
4217    fp_mulx_u32(&mut x943, &mut x944, x929, 0x1ef3622f);
4218    let mut x945: u32 = 0;
4219    let mut x946: u32 = 0;
4220    fp_mulx_u32(&mut x945, &mut x946, x929, 0xba094800);
4221    let mut x947: u32 = 0;
4222    let mut x948: u32 = 0;
4223    fp_mulx_u32(&mut x947, &mut x948, x929, 0x170b5d44);
4224    let mut x949: u32 = 0;
4225    let mut x950: u32 = 0;
4226    fp_mulx_u32(&mut x949, &mut x950, x929, 0x30000000);
4227    let mut x951: u32 = 0;
4228    let mut x952: u32 = 0;
4229    fp_mulx_u32(&mut x951, &mut x952, x929, 0x8508c000);
4230    let mut x953: u32 = 0;
4231    let mut x954: FpU1 = 0;
4232    fp_addcarryx_u32(&mut x953, &mut x954, 0x0, x952, x949);
4233    let mut x955: u32 = 0;
4234    let mut x956: FpU1 = 0;
4235    fp_addcarryx_u32(&mut x955, &mut x956, x954, x950, x947);
4236    let mut x957: u32 = 0;
4237    let mut x958: FpU1 = 0;
4238    fp_addcarryx_u32(&mut x957, &mut x958, x956, x948, x945);
4239    let mut x959: u32 = 0;
4240    let mut x960: FpU1 = 0;
4241    fp_addcarryx_u32(&mut x959, &mut x960, x958, x946, x943);
4242    let mut x961: u32 = 0;
4243    let mut x962: FpU1 = 0;
4244    fp_addcarryx_u32(&mut x961, &mut x962, x960, x944, x941);
4245    let mut x963: u32 = 0;
4246    let mut x964: FpU1 = 0;
4247    fp_addcarryx_u32(&mut x963, &mut x964, x962, x942, x939);
4248    let mut x965: u32 = 0;
4249    let mut x966: FpU1 = 0;
4250    fp_addcarryx_u32(&mut x965, &mut x966, x964, x940, x937);
4251    let mut x967: u32 = 0;
4252    let mut x968: FpU1 = 0;
4253    fp_addcarryx_u32(&mut x967, &mut x968, x966, x938, x935);
4254    let mut x969: u32 = 0;
4255    let mut x970: FpU1 = 0;
4256    fp_addcarryx_u32(&mut x969, &mut x970, x968, x936, x933);
4257    let mut x971: u32 = 0;
4258    let mut x972: FpU1 = 0;
4259    fp_addcarryx_u32(&mut x971, &mut x972, x970, x934, x931);
4260    let x973: u32 = ((x972 as u32) + x932);
4261    let mut x974: u32 = 0;
4262    let mut x975: FpU1 = 0;
4263    fp_addcarryx_u32(&mut x974, &mut x975, 0x0, x903, x929);
4264    let mut x976: u32 = 0;
4265    let mut x977: FpU1 = 0;
4266    fp_addcarryx_u32(&mut x976, &mut x977, x975, x905, x951);
4267    let mut x978: u32 = 0;
4268    let mut x979: FpU1 = 0;
4269    fp_addcarryx_u32(&mut x978, &mut x979, x977, x907, x953);
4270    let mut x980: u32 = 0;
4271    let mut x981: FpU1 = 0;
4272    fp_addcarryx_u32(&mut x980, &mut x981, x979, x909, x955);
4273    let mut x982: u32 = 0;
4274    let mut x983: FpU1 = 0;
4275    fp_addcarryx_u32(&mut x982, &mut x983, x981, x911, x957);
4276    let mut x984: u32 = 0;
4277    let mut x985: FpU1 = 0;
4278    fp_addcarryx_u32(&mut x984, &mut x985, x983, x913, x959);
4279    let mut x986: u32 = 0;
4280    let mut x987: FpU1 = 0;
4281    fp_addcarryx_u32(&mut x986, &mut x987, x985, x915, x961);
4282    let mut x988: u32 = 0;
4283    let mut x989: FpU1 = 0;
4284    fp_addcarryx_u32(&mut x988, &mut x989, x987, x917, x963);
4285    let mut x990: u32 = 0;
4286    let mut x991: FpU1 = 0;
4287    fp_addcarryx_u32(&mut x990, &mut x991, x989, x919, x965);
4288    let mut x992: u32 = 0;
4289    let mut x993: FpU1 = 0;
4290    fp_addcarryx_u32(&mut x992, &mut x993, x991, x921, x967);
4291    let mut x994: u32 = 0;
4292    let mut x995: FpU1 = 0;
4293    fp_addcarryx_u32(&mut x994, &mut x995, x993, x923, x969);
4294    let mut x996: u32 = 0;
4295    let mut x997: FpU1 = 0;
4296    fp_addcarryx_u32(&mut x996, &mut x997, x995, x925, x971);
4297    let mut x998: u32 = 0;
4298    let mut x999: FpU1 = 0;
4299    fp_addcarryx_u32(&mut x998, &mut x999, x997, x927, x973);
4300    let x1000: u32 = ((x999 as u32) + (x928 as u32));
4301    let mut x1001: u32 = 0;
4302    let mut x1002: u32 = 0;
4303    fp_mulx_u32(&mut x1001, &mut x1002, x7, (arg1[11]));
4304    let mut x1003: u32 = 0;
4305    let mut x1004: u32 = 0;
4306    fp_mulx_u32(&mut x1003, &mut x1004, x7, (arg1[10]));
4307    let mut x1005: u32 = 0;
4308    let mut x1006: u32 = 0;
4309    fp_mulx_u32(&mut x1005, &mut x1006, x7, (arg1[9]));
4310    let mut x1007: u32 = 0;
4311    let mut x1008: u32 = 0;
4312    fp_mulx_u32(&mut x1007, &mut x1008, x7, (arg1[8]));
4313    let mut x1009: u32 = 0;
4314    let mut x1010: u32 = 0;
4315    fp_mulx_u32(&mut x1009, &mut x1010, x7, (arg1[7]));
4316    let mut x1011: u32 = 0;
4317    let mut x1012: u32 = 0;
4318    fp_mulx_u32(&mut x1011, &mut x1012, x7, (arg1[6]));
4319    let mut x1013: u32 = 0;
4320    let mut x1014: u32 = 0;
4321    fp_mulx_u32(&mut x1013, &mut x1014, x7, (arg1[5]));
4322    let mut x1015: u32 = 0;
4323    let mut x1016: u32 = 0;
4324    fp_mulx_u32(&mut x1015, &mut x1016, x7, (arg1[4]));
4325    let mut x1017: u32 = 0;
4326    let mut x1018: u32 = 0;
4327    fp_mulx_u32(&mut x1017, &mut x1018, x7, (arg1[3]));
4328    let mut x1019: u32 = 0;
4329    let mut x1020: u32 = 0;
4330    fp_mulx_u32(&mut x1019, &mut x1020, x7, (arg1[2]));
4331    let mut x1021: u32 = 0;
4332    let mut x1022: u32 = 0;
4333    fp_mulx_u32(&mut x1021, &mut x1022, x7, (arg1[1]));
4334    let mut x1023: u32 = 0;
4335    let mut x1024: u32 = 0;
4336    fp_mulx_u32(&mut x1023, &mut x1024, x7, (arg1[0]));
4337    let mut x1025: u32 = 0;
4338    let mut x1026: FpU1 = 0;
4339    fp_addcarryx_u32(&mut x1025, &mut x1026, 0x0, x1024, x1021);
4340    let mut x1027: u32 = 0;
4341    let mut x1028: FpU1 = 0;
4342    fp_addcarryx_u32(&mut x1027, &mut x1028, x1026, x1022, x1019);
4343    let mut x1029: u32 = 0;
4344    let mut x1030: FpU1 = 0;
4345    fp_addcarryx_u32(&mut x1029, &mut x1030, x1028, x1020, x1017);
4346    let mut x1031: u32 = 0;
4347    let mut x1032: FpU1 = 0;
4348    fp_addcarryx_u32(&mut x1031, &mut x1032, x1030, x1018, x1015);
4349    let mut x1033: u32 = 0;
4350    let mut x1034: FpU1 = 0;
4351    fp_addcarryx_u32(&mut x1033, &mut x1034, x1032, x1016, x1013);
4352    let mut x1035: u32 = 0;
4353    let mut x1036: FpU1 = 0;
4354    fp_addcarryx_u32(&mut x1035, &mut x1036, x1034, x1014, x1011);
4355    let mut x1037: u32 = 0;
4356    let mut x1038: FpU1 = 0;
4357    fp_addcarryx_u32(&mut x1037, &mut x1038, x1036, x1012, x1009);
4358    let mut x1039: u32 = 0;
4359    let mut x1040: FpU1 = 0;
4360    fp_addcarryx_u32(&mut x1039, &mut x1040, x1038, x1010, x1007);
4361    let mut x1041: u32 = 0;
4362    let mut x1042: FpU1 = 0;
4363    fp_addcarryx_u32(&mut x1041, &mut x1042, x1040, x1008, x1005);
4364    let mut x1043: u32 = 0;
4365    let mut x1044: FpU1 = 0;
4366    fp_addcarryx_u32(&mut x1043, &mut x1044, x1042, x1006, x1003);
4367    let mut x1045: u32 = 0;
4368    let mut x1046: FpU1 = 0;
4369    fp_addcarryx_u32(&mut x1045, &mut x1046, x1044, x1004, x1001);
4370    let x1047: u32 = ((x1046 as u32) + x1002);
4371    let mut x1048: u32 = 0;
4372    let mut x1049: FpU1 = 0;
4373    fp_addcarryx_u32(&mut x1048, &mut x1049, 0x0, x976, x1023);
4374    let mut x1050: u32 = 0;
4375    let mut x1051: FpU1 = 0;
4376    fp_addcarryx_u32(&mut x1050, &mut x1051, x1049, x978, x1025);
4377    let mut x1052: u32 = 0;
4378    let mut x1053: FpU1 = 0;
4379    fp_addcarryx_u32(&mut x1052, &mut x1053, x1051, x980, x1027);
4380    let mut x1054: u32 = 0;
4381    let mut x1055: FpU1 = 0;
4382    fp_addcarryx_u32(&mut x1054, &mut x1055, x1053, x982, x1029);
4383    let mut x1056: u32 = 0;
4384    let mut x1057: FpU1 = 0;
4385    fp_addcarryx_u32(&mut x1056, &mut x1057, x1055, x984, x1031);
4386    let mut x1058: u32 = 0;
4387    let mut x1059: FpU1 = 0;
4388    fp_addcarryx_u32(&mut x1058, &mut x1059, x1057, x986, x1033);
4389    let mut x1060: u32 = 0;
4390    let mut x1061: FpU1 = 0;
4391    fp_addcarryx_u32(&mut x1060, &mut x1061, x1059, x988, x1035);
4392    let mut x1062: u32 = 0;
4393    let mut x1063: FpU1 = 0;
4394    fp_addcarryx_u32(&mut x1062, &mut x1063, x1061, x990, x1037);
4395    let mut x1064: u32 = 0;
4396    let mut x1065: FpU1 = 0;
4397    fp_addcarryx_u32(&mut x1064, &mut x1065, x1063, x992, x1039);
4398    let mut x1066: u32 = 0;
4399    let mut x1067: FpU1 = 0;
4400    fp_addcarryx_u32(&mut x1066, &mut x1067, x1065, x994, x1041);
4401    let mut x1068: u32 = 0;
4402    let mut x1069: FpU1 = 0;
4403    fp_addcarryx_u32(&mut x1068, &mut x1069, x1067, x996, x1043);
4404    let mut x1070: u32 = 0;
4405    let mut x1071: FpU1 = 0;
4406    fp_addcarryx_u32(&mut x1070, &mut x1071, x1069, x998, x1045);
4407    let mut x1072: u32 = 0;
4408    let mut x1073: FpU1 = 0;
4409    fp_addcarryx_u32(&mut x1072, &mut x1073, x1071, x1000, x1047);
4410    let mut x1074: u32 = 0;
4411    let mut x1075: u32 = 0;
4412    fp_mulx_u32(&mut x1074, &mut x1075, x1048, 0xffffffff);
4413    let mut x1076: u32 = 0;
4414    let mut x1077: u32 = 0;
4415    fp_mulx_u32(&mut x1076, &mut x1077, x1074, 0x1ae3a46);
4416    let mut x1078: u32 = 0;
4417    let mut x1079: u32 = 0;
4418    fp_mulx_u32(&mut x1078, &mut x1079, x1074, 0x17c510ea);
4419    let mut x1080: u32 = 0;
4420    let mut x1081: u32 = 0;
4421    fp_mulx_u32(&mut x1080, &mut x1081, x1074, 0xc63b05c0);
4422    let mut x1082: u32 = 0;
4423    let mut x1083: u32 = 0;
4424    fp_mulx_u32(&mut x1082, &mut x1083, x1074, 0x6ca1493b);
4425    let mut x1084: u32 = 0;
4426    let mut x1085: u32 = 0;
4427    fp_mulx_u32(&mut x1084, &mut x1085, x1074, 0x1a22d9f3);
4428    let mut x1086: u32 = 0;
4429    let mut x1087: u32 = 0;
4430    fp_mulx_u32(&mut x1086, &mut x1087, x1074, 0xf5138f);
4431    let mut x1088: u32 = 0;
4432    let mut x1089: u32 = 0;
4433    fp_mulx_u32(&mut x1088, &mut x1089, x1074, 0x1ef3622f);
4434    let mut x1090: u32 = 0;
4435    let mut x1091: u32 = 0;
4436    fp_mulx_u32(&mut x1090, &mut x1091, x1074, 0xba094800);
4437    let mut x1092: u32 = 0;
4438    let mut x1093: u32 = 0;
4439    fp_mulx_u32(&mut x1092, &mut x1093, x1074, 0x170b5d44);
4440    let mut x1094: u32 = 0;
4441    let mut x1095: u32 = 0;
4442    fp_mulx_u32(&mut x1094, &mut x1095, x1074, 0x30000000);
4443    let mut x1096: u32 = 0;
4444    let mut x1097: u32 = 0;
4445    fp_mulx_u32(&mut x1096, &mut x1097, x1074, 0x8508c000);
4446    let mut x1098: u32 = 0;
4447    let mut x1099: FpU1 = 0;
4448    fp_addcarryx_u32(&mut x1098, &mut x1099, 0x0, x1097, x1094);
4449    let mut x1100: u32 = 0;
4450    let mut x1101: FpU1 = 0;
4451    fp_addcarryx_u32(&mut x1100, &mut x1101, x1099, x1095, x1092);
4452    let mut x1102: u32 = 0;
4453    let mut x1103: FpU1 = 0;
4454    fp_addcarryx_u32(&mut x1102, &mut x1103, x1101, x1093, x1090);
4455    let mut x1104: u32 = 0;
4456    let mut x1105: FpU1 = 0;
4457    fp_addcarryx_u32(&mut x1104, &mut x1105, x1103, x1091, x1088);
4458    let mut x1106: u32 = 0;
4459    let mut x1107: FpU1 = 0;
4460    fp_addcarryx_u32(&mut x1106, &mut x1107, x1105, x1089, x1086);
4461    let mut x1108: u32 = 0;
4462    let mut x1109: FpU1 = 0;
4463    fp_addcarryx_u32(&mut x1108, &mut x1109, x1107, x1087, x1084);
4464    let mut x1110: u32 = 0;
4465    let mut x1111: FpU1 = 0;
4466    fp_addcarryx_u32(&mut x1110, &mut x1111, x1109, x1085, x1082);
4467    let mut x1112: u32 = 0;
4468    let mut x1113: FpU1 = 0;
4469    fp_addcarryx_u32(&mut x1112, &mut x1113, x1111, x1083, x1080);
4470    let mut x1114: u32 = 0;
4471    let mut x1115: FpU1 = 0;
4472    fp_addcarryx_u32(&mut x1114, &mut x1115, x1113, x1081, x1078);
4473    let mut x1116: u32 = 0;
4474    let mut x1117: FpU1 = 0;
4475    fp_addcarryx_u32(&mut x1116, &mut x1117, x1115, x1079, x1076);
4476    let x1118: u32 = ((x1117 as u32) + x1077);
4477    let mut x1119: u32 = 0;
4478    let mut x1120: FpU1 = 0;
4479    fp_addcarryx_u32(&mut x1119, &mut x1120, 0x0, x1048, x1074);
4480    let mut x1121: u32 = 0;
4481    let mut x1122: FpU1 = 0;
4482    fp_addcarryx_u32(&mut x1121, &mut x1122, x1120, x1050, x1096);
4483    let mut x1123: u32 = 0;
4484    let mut x1124: FpU1 = 0;
4485    fp_addcarryx_u32(&mut x1123, &mut x1124, x1122, x1052, x1098);
4486    let mut x1125: u32 = 0;
4487    let mut x1126: FpU1 = 0;
4488    fp_addcarryx_u32(&mut x1125, &mut x1126, x1124, x1054, x1100);
4489    let mut x1127: u32 = 0;
4490    let mut x1128: FpU1 = 0;
4491    fp_addcarryx_u32(&mut x1127, &mut x1128, x1126, x1056, x1102);
4492    let mut x1129: u32 = 0;
4493    let mut x1130: FpU1 = 0;
4494    fp_addcarryx_u32(&mut x1129, &mut x1130, x1128, x1058, x1104);
4495    let mut x1131: u32 = 0;
4496    let mut x1132: FpU1 = 0;
4497    fp_addcarryx_u32(&mut x1131, &mut x1132, x1130, x1060, x1106);
4498    let mut x1133: u32 = 0;
4499    let mut x1134: FpU1 = 0;
4500    fp_addcarryx_u32(&mut x1133, &mut x1134, x1132, x1062, x1108);
4501    let mut x1135: u32 = 0;
4502    let mut x1136: FpU1 = 0;
4503    fp_addcarryx_u32(&mut x1135, &mut x1136, x1134, x1064, x1110);
4504    let mut x1137: u32 = 0;
4505    let mut x1138: FpU1 = 0;
4506    fp_addcarryx_u32(&mut x1137, &mut x1138, x1136, x1066, x1112);
4507    let mut x1139: u32 = 0;
4508    let mut x1140: FpU1 = 0;
4509    fp_addcarryx_u32(&mut x1139, &mut x1140, x1138, x1068, x1114);
4510    let mut x1141: u32 = 0;
4511    let mut x1142: FpU1 = 0;
4512    fp_addcarryx_u32(&mut x1141, &mut x1142, x1140, x1070, x1116);
4513    let mut x1143: u32 = 0;
4514    let mut x1144: FpU1 = 0;
4515    fp_addcarryx_u32(&mut x1143, &mut x1144, x1142, x1072, x1118);
4516    let x1145: u32 = ((x1144 as u32) + (x1073 as u32));
4517    let mut x1146: u32 = 0;
4518    let mut x1147: u32 = 0;
4519    fp_mulx_u32(&mut x1146, &mut x1147, x8, (arg1[11]));
4520    let mut x1148: u32 = 0;
4521    let mut x1149: u32 = 0;
4522    fp_mulx_u32(&mut x1148, &mut x1149, x8, (arg1[10]));
4523    let mut x1150: u32 = 0;
4524    let mut x1151: u32 = 0;
4525    fp_mulx_u32(&mut x1150, &mut x1151, x8, (arg1[9]));
4526    let mut x1152: u32 = 0;
4527    let mut x1153: u32 = 0;
4528    fp_mulx_u32(&mut x1152, &mut x1153, x8, (arg1[8]));
4529    let mut x1154: u32 = 0;
4530    let mut x1155: u32 = 0;
4531    fp_mulx_u32(&mut x1154, &mut x1155, x8, (arg1[7]));
4532    let mut x1156: u32 = 0;
4533    let mut x1157: u32 = 0;
4534    fp_mulx_u32(&mut x1156, &mut x1157, x8, (arg1[6]));
4535    let mut x1158: u32 = 0;
4536    let mut x1159: u32 = 0;
4537    fp_mulx_u32(&mut x1158, &mut x1159, x8, (arg1[5]));
4538    let mut x1160: u32 = 0;
4539    let mut x1161: u32 = 0;
4540    fp_mulx_u32(&mut x1160, &mut x1161, x8, (arg1[4]));
4541    let mut x1162: u32 = 0;
4542    let mut x1163: u32 = 0;
4543    fp_mulx_u32(&mut x1162, &mut x1163, x8, (arg1[3]));
4544    let mut x1164: u32 = 0;
4545    let mut x1165: u32 = 0;
4546    fp_mulx_u32(&mut x1164, &mut x1165, x8, (arg1[2]));
4547    let mut x1166: u32 = 0;
4548    let mut x1167: u32 = 0;
4549    fp_mulx_u32(&mut x1166, &mut x1167, x8, (arg1[1]));
4550    let mut x1168: u32 = 0;
4551    let mut x1169: u32 = 0;
4552    fp_mulx_u32(&mut x1168, &mut x1169, x8, (arg1[0]));
4553    let mut x1170: u32 = 0;
4554    let mut x1171: FpU1 = 0;
4555    fp_addcarryx_u32(&mut x1170, &mut x1171, 0x0, x1169, x1166);
4556    let mut x1172: u32 = 0;
4557    let mut x1173: FpU1 = 0;
4558    fp_addcarryx_u32(&mut x1172, &mut x1173, x1171, x1167, x1164);
4559    let mut x1174: u32 = 0;
4560    let mut x1175: FpU1 = 0;
4561    fp_addcarryx_u32(&mut x1174, &mut x1175, x1173, x1165, x1162);
4562    let mut x1176: u32 = 0;
4563    let mut x1177: FpU1 = 0;
4564    fp_addcarryx_u32(&mut x1176, &mut x1177, x1175, x1163, x1160);
4565    let mut x1178: u32 = 0;
4566    let mut x1179: FpU1 = 0;
4567    fp_addcarryx_u32(&mut x1178, &mut x1179, x1177, x1161, x1158);
4568    let mut x1180: u32 = 0;
4569    let mut x1181: FpU1 = 0;
4570    fp_addcarryx_u32(&mut x1180, &mut x1181, x1179, x1159, x1156);
4571    let mut x1182: u32 = 0;
4572    let mut x1183: FpU1 = 0;
4573    fp_addcarryx_u32(&mut x1182, &mut x1183, x1181, x1157, x1154);
4574    let mut x1184: u32 = 0;
4575    let mut x1185: FpU1 = 0;
4576    fp_addcarryx_u32(&mut x1184, &mut x1185, x1183, x1155, x1152);
4577    let mut x1186: u32 = 0;
4578    let mut x1187: FpU1 = 0;
4579    fp_addcarryx_u32(&mut x1186, &mut x1187, x1185, x1153, x1150);
4580    let mut x1188: u32 = 0;
4581    let mut x1189: FpU1 = 0;
4582    fp_addcarryx_u32(&mut x1188, &mut x1189, x1187, x1151, x1148);
4583    let mut x1190: u32 = 0;
4584    let mut x1191: FpU1 = 0;
4585    fp_addcarryx_u32(&mut x1190, &mut x1191, x1189, x1149, x1146);
4586    let x1192: u32 = ((x1191 as u32) + x1147);
4587    let mut x1193: u32 = 0;
4588    let mut x1194: FpU1 = 0;
4589    fp_addcarryx_u32(&mut x1193, &mut x1194, 0x0, x1121, x1168);
4590    let mut x1195: u32 = 0;
4591    let mut x1196: FpU1 = 0;
4592    fp_addcarryx_u32(&mut x1195, &mut x1196, x1194, x1123, x1170);
4593    let mut x1197: u32 = 0;
4594    let mut x1198: FpU1 = 0;
4595    fp_addcarryx_u32(&mut x1197, &mut x1198, x1196, x1125, x1172);
4596    let mut x1199: u32 = 0;
4597    let mut x1200: FpU1 = 0;
4598    fp_addcarryx_u32(&mut x1199, &mut x1200, x1198, x1127, x1174);
4599    let mut x1201: u32 = 0;
4600    let mut x1202: FpU1 = 0;
4601    fp_addcarryx_u32(&mut x1201, &mut x1202, x1200, x1129, x1176);
4602    let mut x1203: u32 = 0;
4603    let mut x1204: FpU1 = 0;
4604    fp_addcarryx_u32(&mut x1203, &mut x1204, x1202, x1131, x1178);
4605    let mut x1205: u32 = 0;
4606    let mut x1206: FpU1 = 0;
4607    fp_addcarryx_u32(&mut x1205, &mut x1206, x1204, x1133, x1180);
4608    let mut x1207: u32 = 0;
4609    let mut x1208: FpU1 = 0;
4610    fp_addcarryx_u32(&mut x1207, &mut x1208, x1206, x1135, x1182);
4611    let mut x1209: u32 = 0;
4612    let mut x1210: FpU1 = 0;
4613    fp_addcarryx_u32(&mut x1209, &mut x1210, x1208, x1137, x1184);
4614    let mut x1211: u32 = 0;
4615    let mut x1212: FpU1 = 0;
4616    fp_addcarryx_u32(&mut x1211, &mut x1212, x1210, x1139, x1186);
4617    let mut x1213: u32 = 0;
4618    let mut x1214: FpU1 = 0;
4619    fp_addcarryx_u32(&mut x1213, &mut x1214, x1212, x1141, x1188);
4620    let mut x1215: u32 = 0;
4621    let mut x1216: FpU1 = 0;
4622    fp_addcarryx_u32(&mut x1215, &mut x1216, x1214, x1143, x1190);
4623    let mut x1217: u32 = 0;
4624    let mut x1218: FpU1 = 0;
4625    fp_addcarryx_u32(&mut x1217, &mut x1218, x1216, x1145, x1192);
4626    let mut x1219: u32 = 0;
4627    let mut x1220: u32 = 0;
4628    fp_mulx_u32(&mut x1219, &mut x1220, x1193, 0xffffffff);
4629    let mut x1221: u32 = 0;
4630    let mut x1222: u32 = 0;
4631    fp_mulx_u32(&mut x1221, &mut x1222, x1219, 0x1ae3a46);
4632    let mut x1223: u32 = 0;
4633    let mut x1224: u32 = 0;
4634    fp_mulx_u32(&mut x1223, &mut x1224, x1219, 0x17c510ea);
4635    let mut x1225: u32 = 0;
4636    let mut x1226: u32 = 0;
4637    fp_mulx_u32(&mut x1225, &mut x1226, x1219, 0xc63b05c0);
4638    let mut x1227: u32 = 0;
4639    let mut x1228: u32 = 0;
4640    fp_mulx_u32(&mut x1227, &mut x1228, x1219, 0x6ca1493b);
4641    let mut x1229: u32 = 0;
4642    let mut x1230: u32 = 0;
4643    fp_mulx_u32(&mut x1229, &mut x1230, x1219, 0x1a22d9f3);
4644    let mut x1231: u32 = 0;
4645    let mut x1232: u32 = 0;
4646    fp_mulx_u32(&mut x1231, &mut x1232, x1219, 0xf5138f);
4647    let mut x1233: u32 = 0;
4648    let mut x1234: u32 = 0;
4649    fp_mulx_u32(&mut x1233, &mut x1234, x1219, 0x1ef3622f);
4650    let mut x1235: u32 = 0;
4651    let mut x1236: u32 = 0;
4652    fp_mulx_u32(&mut x1235, &mut x1236, x1219, 0xba094800);
4653    let mut x1237: u32 = 0;
4654    let mut x1238: u32 = 0;
4655    fp_mulx_u32(&mut x1237, &mut x1238, x1219, 0x170b5d44);
4656    let mut x1239: u32 = 0;
4657    let mut x1240: u32 = 0;
4658    fp_mulx_u32(&mut x1239, &mut x1240, x1219, 0x30000000);
4659    let mut x1241: u32 = 0;
4660    let mut x1242: u32 = 0;
4661    fp_mulx_u32(&mut x1241, &mut x1242, x1219, 0x8508c000);
4662    let mut x1243: u32 = 0;
4663    let mut x1244: FpU1 = 0;
4664    fp_addcarryx_u32(&mut x1243, &mut x1244, 0x0, x1242, x1239);
4665    let mut x1245: u32 = 0;
4666    let mut x1246: FpU1 = 0;
4667    fp_addcarryx_u32(&mut x1245, &mut x1246, x1244, x1240, x1237);
4668    let mut x1247: u32 = 0;
4669    let mut x1248: FpU1 = 0;
4670    fp_addcarryx_u32(&mut x1247, &mut x1248, x1246, x1238, x1235);
4671    let mut x1249: u32 = 0;
4672    let mut x1250: FpU1 = 0;
4673    fp_addcarryx_u32(&mut x1249, &mut x1250, x1248, x1236, x1233);
4674    let mut x1251: u32 = 0;
4675    let mut x1252: FpU1 = 0;
4676    fp_addcarryx_u32(&mut x1251, &mut x1252, x1250, x1234, x1231);
4677    let mut x1253: u32 = 0;
4678    let mut x1254: FpU1 = 0;
4679    fp_addcarryx_u32(&mut x1253, &mut x1254, x1252, x1232, x1229);
4680    let mut x1255: u32 = 0;
4681    let mut x1256: FpU1 = 0;
4682    fp_addcarryx_u32(&mut x1255, &mut x1256, x1254, x1230, x1227);
4683    let mut x1257: u32 = 0;
4684    let mut x1258: FpU1 = 0;
4685    fp_addcarryx_u32(&mut x1257, &mut x1258, x1256, x1228, x1225);
4686    let mut x1259: u32 = 0;
4687    let mut x1260: FpU1 = 0;
4688    fp_addcarryx_u32(&mut x1259, &mut x1260, x1258, x1226, x1223);
4689    let mut x1261: u32 = 0;
4690    let mut x1262: FpU1 = 0;
4691    fp_addcarryx_u32(&mut x1261, &mut x1262, x1260, x1224, x1221);
4692    let x1263: u32 = ((x1262 as u32) + x1222);
4693    let mut x1264: u32 = 0;
4694    let mut x1265: FpU1 = 0;
4695    fp_addcarryx_u32(&mut x1264, &mut x1265, 0x0, x1193, x1219);
4696    let mut x1266: u32 = 0;
4697    let mut x1267: FpU1 = 0;
4698    fp_addcarryx_u32(&mut x1266, &mut x1267, x1265, x1195, x1241);
4699    let mut x1268: u32 = 0;
4700    let mut x1269: FpU1 = 0;
4701    fp_addcarryx_u32(&mut x1268, &mut x1269, x1267, x1197, x1243);
4702    let mut x1270: u32 = 0;
4703    let mut x1271: FpU1 = 0;
4704    fp_addcarryx_u32(&mut x1270, &mut x1271, x1269, x1199, x1245);
4705    let mut x1272: u32 = 0;
4706    let mut x1273: FpU1 = 0;
4707    fp_addcarryx_u32(&mut x1272, &mut x1273, x1271, x1201, x1247);
4708    let mut x1274: u32 = 0;
4709    let mut x1275: FpU1 = 0;
4710    fp_addcarryx_u32(&mut x1274, &mut x1275, x1273, x1203, x1249);
4711    let mut x1276: u32 = 0;
4712    let mut x1277: FpU1 = 0;
4713    fp_addcarryx_u32(&mut x1276, &mut x1277, x1275, x1205, x1251);
4714    let mut x1278: u32 = 0;
4715    let mut x1279: FpU1 = 0;
4716    fp_addcarryx_u32(&mut x1278, &mut x1279, x1277, x1207, x1253);
4717    let mut x1280: u32 = 0;
4718    let mut x1281: FpU1 = 0;
4719    fp_addcarryx_u32(&mut x1280, &mut x1281, x1279, x1209, x1255);
4720    let mut x1282: u32 = 0;
4721    let mut x1283: FpU1 = 0;
4722    fp_addcarryx_u32(&mut x1282, &mut x1283, x1281, x1211, x1257);
4723    let mut x1284: u32 = 0;
4724    let mut x1285: FpU1 = 0;
4725    fp_addcarryx_u32(&mut x1284, &mut x1285, x1283, x1213, x1259);
4726    let mut x1286: u32 = 0;
4727    let mut x1287: FpU1 = 0;
4728    fp_addcarryx_u32(&mut x1286, &mut x1287, x1285, x1215, x1261);
4729    let mut x1288: u32 = 0;
4730    let mut x1289: FpU1 = 0;
4731    fp_addcarryx_u32(&mut x1288, &mut x1289, x1287, x1217, x1263);
4732    let x1290: u32 = ((x1289 as u32) + (x1218 as u32));
4733    let mut x1291: u32 = 0;
4734    let mut x1292: u32 = 0;
4735    fp_mulx_u32(&mut x1291, &mut x1292, x9, (arg1[11]));
4736    let mut x1293: u32 = 0;
4737    let mut x1294: u32 = 0;
4738    fp_mulx_u32(&mut x1293, &mut x1294, x9, (arg1[10]));
4739    let mut x1295: u32 = 0;
4740    let mut x1296: u32 = 0;
4741    fp_mulx_u32(&mut x1295, &mut x1296, x9, (arg1[9]));
4742    let mut x1297: u32 = 0;
4743    let mut x1298: u32 = 0;
4744    fp_mulx_u32(&mut x1297, &mut x1298, x9, (arg1[8]));
4745    let mut x1299: u32 = 0;
4746    let mut x1300: u32 = 0;
4747    fp_mulx_u32(&mut x1299, &mut x1300, x9, (arg1[7]));
4748    let mut x1301: u32 = 0;
4749    let mut x1302: u32 = 0;
4750    fp_mulx_u32(&mut x1301, &mut x1302, x9, (arg1[6]));
4751    let mut x1303: u32 = 0;
4752    let mut x1304: u32 = 0;
4753    fp_mulx_u32(&mut x1303, &mut x1304, x9, (arg1[5]));
4754    let mut x1305: u32 = 0;
4755    let mut x1306: u32 = 0;
4756    fp_mulx_u32(&mut x1305, &mut x1306, x9, (arg1[4]));
4757    let mut x1307: u32 = 0;
4758    let mut x1308: u32 = 0;
4759    fp_mulx_u32(&mut x1307, &mut x1308, x9, (arg1[3]));
4760    let mut x1309: u32 = 0;
4761    let mut x1310: u32 = 0;
4762    fp_mulx_u32(&mut x1309, &mut x1310, x9, (arg1[2]));
4763    let mut x1311: u32 = 0;
4764    let mut x1312: u32 = 0;
4765    fp_mulx_u32(&mut x1311, &mut x1312, x9, (arg1[1]));
4766    let mut x1313: u32 = 0;
4767    let mut x1314: u32 = 0;
4768    fp_mulx_u32(&mut x1313, &mut x1314, x9, (arg1[0]));
4769    let mut x1315: u32 = 0;
4770    let mut x1316: FpU1 = 0;
4771    fp_addcarryx_u32(&mut x1315, &mut x1316, 0x0, x1314, x1311);
4772    let mut x1317: u32 = 0;
4773    let mut x1318: FpU1 = 0;
4774    fp_addcarryx_u32(&mut x1317, &mut x1318, x1316, x1312, x1309);
4775    let mut x1319: u32 = 0;
4776    let mut x1320: FpU1 = 0;
4777    fp_addcarryx_u32(&mut x1319, &mut x1320, x1318, x1310, x1307);
4778    let mut x1321: u32 = 0;
4779    let mut x1322: FpU1 = 0;
4780    fp_addcarryx_u32(&mut x1321, &mut x1322, x1320, x1308, x1305);
4781    let mut x1323: u32 = 0;
4782    let mut x1324: FpU1 = 0;
4783    fp_addcarryx_u32(&mut x1323, &mut x1324, x1322, x1306, x1303);
4784    let mut x1325: u32 = 0;
4785    let mut x1326: FpU1 = 0;
4786    fp_addcarryx_u32(&mut x1325, &mut x1326, x1324, x1304, x1301);
4787    let mut x1327: u32 = 0;
4788    let mut x1328: FpU1 = 0;
4789    fp_addcarryx_u32(&mut x1327, &mut x1328, x1326, x1302, x1299);
4790    let mut x1329: u32 = 0;
4791    let mut x1330: FpU1 = 0;
4792    fp_addcarryx_u32(&mut x1329, &mut x1330, x1328, x1300, x1297);
4793    let mut x1331: u32 = 0;
4794    let mut x1332: FpU1 = 0;
4795    fp_addcarryx_u32(&mut x1331, &mut x1332, x1330, x1298, x1295);
4796    let mut x1333: u32 = 0;
4797    let mut x1334: FpU1 = 0;
4798    fp_addcarryx_u32(&mut x1333, &mut x1334, x1332, x1296, x1293);
4799    let mut x1335: u32 = 0;
4800    let mut x1336: FpU1 = 0;
4801    fp_addcarryx_u32(&mut x1335, &mut x1336, x1334, x1294, x1291);
4802    let x1337: u32 = ((x1336 as u32) + x1292);
4803    let mut x1338: u32 = 0;
4804    let mut x1339: FpU1 = 0;
4805    fp_addcarryx_u32(&mut x1338, &mut x1339, 0x0, x1266, x1313);
4806    let mut x1340: u32 = 0;
4807    let mut x1341: FpU1 = 0;
4808    fp_addcarryx_u32(&mut x1340, &mut x1341, x1339, x1268, x1315);
4809    let mut x1342: u32 = 0;
4810    let mut x1343: FpU1 = 0;
4811    fp_addcarryx_u32(&mut x1342, &mut x1343, x1341, x1270, x1317);
4812    let mut x1344: u32 = 0;
4813    let mut x1345: FpU1 = 0;
4814    fp_addcarryx_u32(&mut x1344, &mut x1345, x1343, x1272, x1319);
4815    let mut x1346: u32 = 0;
4816    let mut x1347: FpU1 = 0;
4817    fp_addcarryx_u32(&mut x1346, &mut x1347, x1345, x1274, x1321);
4818    let mut x1348: u32 = 0;
4819    let mut x1349: FpU1 = 0;
4820    fp_addcarryx_u32(&mut x1348, &mut x1349, x1347, x1276, x1323);
4821    let mut x1350: u32 = 0;
4822    let mut x1351: FpU1 = 0;
4823    fp_addcarryx_u32(&mut x1350, &mut x1351, x1349, x1278, x1325);
4824    let mut x1352: u32 = 0;
4825    let mut x1353: FpU1 = 0;
4826    fp_addcarryx_u32(&mut x1352, &mut x1353, x1351, x1280, x1327);
4827    let mut x1354: u32 = 0;
4828    let mut x1355: FpU1 = 0;
4829    fp_addcarryx_u32(&mut x1354, &mut x1355, x1353, x1282, x1329);
4830    let mut x1356: u32 = 0;
4831    let mut x1357: FpU1 = 0;
4832    fp_addcarryx_u32(&mut x1356, &mut x1357, x1355, x1284, x1331);
4833    let mut x1358: u32 = 0;
4834    let mut x1359: FpU1 = 0;
4835    fp_addcarryx_u32(&mut x1358, &mut x1359, x1357, x1286, x1333);
4836    let mut x1360: u32 = 0;
4837    let mut x1361: FpU1 = 0;
4838    fp_addcarryx_u32(&mut x1360, &mut x1361, x1359, x1288, x1335);
4839    let mut x1362: u32 = 0;
4840    let mut x1363: FpU1 = 0;
4841    fp_addcarryx_u32(&mut x1362, &mut x1363, x1361, x1290, x1337);
4842    let mut x1364: u32 = 0;
4843    let mut x1365: u32 = 0;
4844    fp_mulx_u32(&mut x1364, &mut x1365, x1338, 0xffffffff);
4845    let mut x1366: u32 = 0;
4846    let mut x1367: u32 = 0;
4847    fp_mulx_u32(&mut x1366, &mut x1367, x1364, 0x1ae3a46);
4848    let mut x1368: u32 = 0;
4849    let mut x1369: u32 = 0;
4850    fp_mulx_u32(&mut x1368, &mut x1369, x1364, 0x17c510ea);
4851    let mut x1370: u32 = 0;
4852    let mut x1371: u32 = 0;
4853    fp_mulx_u32(&mut x1370, &mut x1371, x1364, 0xc63b05c0);
4854    let mut x1372: u32 = 0;
4855    let mut x1373: u32 = 0;
4856    fp_mulx_u32(&mut x1372, &mut x1373, x1364, 0x6ca1493b);
4857    let mut x1374: u32 = 0;
4858    let mut x1375: u32 = 0;
4859    fp_mulx_u32(&mut x1374, &mut x1375, x1364, 0x1a22d9f3);
4860    let mut x1376: u32 = 0;
4861    let mut x1377: u32 = 0;
4862    fp_mulx_u32(&mut x1376, &mut x1377, x1364, 0xf5138f);
4863    let mut x1378: u32 = 0;
4864    let mut x1379: u32 = 0;
4865    fp_mulx_u32(&mut x1378, &mut x1379, x1364, 0x1ef3622f);
4866    let mut x1380: u32 = 0;
4867    let mut x1381: u32 = 0;
4868    fp_mulx_u32(&mut x1380, &mut x1381, x1364, 0xba094800);
4869    let mut x1382: u32 = 0;
4870    let mut x1383: u32 = 0;
4871    fp_mulx_u32(&mut x1382, &mut x1383, x1364, 0x170b5d44);
4872    let mut x1384: u32 = 0;
4873    let mut x1385: u32 = 0;
4874    fp_mulx_u32(&mut x1384, &mut x1385, x1364, 0x30000000);
4875    let mut x1386: u32 = 0;
4876    let mut x1387: u32 = 0;
4877    fp_mulx_u32(&mut x1386, &mut x1387, x1364, 0x8508c000);
4878    let mut x1388: u32 = 0;
4879    let mut x1389: FpU1 = 0;
4880    fp_addcarryx_u32(&mut x1388, &mut x1389, 0x0, x1387, x1384);
4881    let mut x1390: u32 = 0;
4882    let mut x1391: FpU1 = 0;
4883    fp_addcarryx_u32(&mut x1390, &mut x1391, x1389, x1385, x1382);
4884    let mut x1392: u32 = 0;
4885    let mut x1393: FpU1 = 0;
4886    fp_addcarryx_u32(&mut x1392, &mut x1393, x1391, x1383, x1380);
4887    let mut x1394: u32 = 0;
4888    let mut x1395: FpU1 = 0;
4889    fp_addcarryx_u32(&mut x1394, &mut x1395, x1393, x1381, x1378);
4890    let mut x1396: u32 = 0;
4891    let mut x1397: FpU1 = 0;
4892    fp_addcarryx_u32(&mut x1396, &mut x1397, x1395, x1379, x1376);
4893    let mut x1398: u32 = 0;
4894    let mut x1399: FpU1 = 0;
4895    fp_addcarryx_u32(&mut x1398, &mut x1399, x1397, x1377, x1374);
4896    let mut x1400: u32 = 0;
4897    let mut x1401: FpU1 = 0;
4898    fp_addcarryx_u32(&mut x1400, &mut x1401, x1399, x1375, x1372);
4899    let mut x1402: u32 = 0;
4900    let mut x1403: FpU1 = 0;
4901    fp_addcarryx_u32(&mut x1402, &mut x1403, x1401, x1373, x1370);
4902    let mut x1404: u32 = 0;
4903    let mut x1405: FpU1 = 0;
4904    fp_addcarryx_u32(&mut x1404, &mut x1405, x1403, x1371, x1368);
4905    let mut x1406: u32 = 0;
4906    let mut x1407: FpU1 = 0;
4907    fp_addcarryx_u32(&mut x1406, &mut x1407, x1405, x1369, x1366);
4908    let x1408: u32 = ((x1407 as u32) + x1367);
4909    let mut x1409: u32 = 0;
4910    let mut x1410: FpU1 = 0;
4911    fp_addcarryx_u32(&mut x1409, &mut x1410, 0x0, x1338, x1364);
4912    let mut x1411: u32 = 0;
4913    let mut x1412: FpU1 = 0;
4914    fp_addcarryx_u32(&mut x1411, &mut x1412, x1410, x1340, x1386);
4915    let mut x1413: u32 = 0;
4916    let mut x1414: FpU1 = 0;
4917    fp_addcarryx_u32(&mut x1413, &mut x1414, x1412, x1342, x1388);
4918    let mut x1415: u32 = 0;
4919    let mut x1416: FpU1 = 0;
4920    fp_addcarryx_u32(&mut x1415, &mut x1416, x1414, x1344, x1390);
4921    let mut x1417: u32 = 0;
4922    let mut x1418: FpU1 = 0;
4923    fp_addcarryx_u32(&mut x1417, &mut x1418, x1416, x1346, x1392);
4924    let mut x1419: u32 = 0;
4925    let mut x1420: FpU1 = 0;
4926    fp_addcarryx_u32(&mut x1419, &mut x1420, x1418, x1348, x1394);
4927    let mut x1421: u32 = 0;
4928    let mut x1422: FpU1 = 0;
4929    fp_addcarryx_u32(&mut x1421, &mut x1422, x1420, x1350, x1396);
4930    let mut x1423: u32 = 0;
4931    let mut x1424: FpU1 = 0;
4932    fp_addcarryx_u32(&mut x1423, &mut x1424, x1422, x1352, x1398);
4933    let mut x1425: u32 = 0;
4934    let mut x1426: FpU1 = 0;
4935    fp_addcarryx_u32(&mut x1425, &mut x1426, x1424, x1354, x1400);
4936    let mut x1427: u32 = 0;
4937    let mut x1428: FpU1 = 0;
4938    fp_addcarryx_u32(&mut x1427, &mut x1428, x1426, x1356, x1402);
4939    let mut x1429: u32 = 0;
4940    let mut x1430: FpU1 = 0;
4941    fp_addcarryx_u32(&mut x1429, &mut x1430, x1428, x1358, x1404);
4942    let mut x1431: u32 = 0;
4943    let mut x1432: FpU1 = 0;
4944    fp_addcarryx_u32(&mut x1431, &mut x1432, x1430, x1360, x1406);
4945    let mut x1433: u32 = 0;
4946    let mut x1434: FpU1 = 0;
4947    fp_addcarryx_u32(&mut x1433, &mut x1434, x1432, x1362, x1408);
4948    let x1435: u32 = ((x1434 as u32) + (x1363 as u32));
4949    let mut x1436: u32 = 0;
4950    let mut x1437: u32 = 0;
4951    fp_mulx_u32(&mut x1436, &mut x1437, x10, (arg1[11]));
4952    let mut x1438: u32 = 0;
4953    let mut x1439: u32 = 0;
4954    fp_mulx_u32(&mut x1438, &mut x1439, x10, (arg1[10]));
4955    let mut x1440: u32 = 0;
4956    let mut x1441: u32 = 0;
4957    fp_mulx_u32(&mut x1440, &mut x1441, x10, (arg1[9]));
4958    let mut x1442: u32 = 0;
4959    let mut x1443: u32 = 0;
4960    fp_mulx_u32(&mut x1442, &mut x1443, x10, (arg1[8]));
4961    let mut x1444: u32 = 0;
4962    let mut x1445: u32 = 0;
4963    fp_mulx_u32(&mut x1444, &mut x1445, x10, (arg1[7]));
4964    let mut x1446: u32 = 0;
4965    let mut x1447: u32 = 0;
4966    fp_mulx_u32(&mut x1446, &mut x1447, x10, (arg1[6]));
4967    let mut x1448: u32 = 0;
4968    let mut x1449: u32 = 0;
4969    fp_mulx_u32(&mut x1448, &mut x1449, x10, (arg1[5]));
4970    let mut x1450: u32 = 0;
4971    let mut x1451: u32 = 0;
4972    fp_mulx_u32(&mut x1450, &mut x1451, x10, (arg1[4]));
4973    let mut x1452: u32 = 0;
4974    let mut x1453: u32 = 0;
4975    fp_mulx_u32(&mut x1452, &mut x1453, x10, (arg1[3]));
4976    let mut x1454: u32 = 0;
4977    let mut x1455: u32 = 0;
4978    fp_mulx_u32(&mut x1454, &mut x1455, x10, (arg1[2]));
4979    let mut x1456: u32 = 0;
4980    let mut x1457: u32 = 0;
4981    fp_mulx_u32(&mut x1456, &mut x1457, x10, (arg1[1]));
4982    let mut x1458: u32 = 0;
4983    let mut x1459: u32 = 0;
4984    fp_mulx_u32(&mut x1458, &mut x1459, x10, (arg1[0]));
4985    let mut x1460: u32 = 0;
4986    let mut x1461: FpU1 = 0;
4987    fp_addcarryx_u32(&mut x1460, &mut x1461, 0x0, x1459, x1456);
4988    let mut x1462: u32 = 0;
4989    let mut x1463: FpU1 = 0;
4990    fp_addcarryx_u32(&mut x1462, &mut x1463, x1461, x1457, x1454);
4991    let mut x1464: u32 = 0;
4992    let mut x1465: FpU1 = 0;
4993    fp_addcarryx_u32(&mut x1464, &mut x1465, x1463, x1455, x1452);
4994    let mut x1466: u32 = 0;
4995    let mut x1467: FpU1 = 0;
4996    fp_addcarryx_u32(&mut x1466, &mut x1467, x1465, x1453, x1450);
4997    let mut x1468: u32 = 0;
4998    let mut x1469: FpU1 = 0;
4999    fp_addcarryx_u32(&mut x1468, &mut x1469, x1467, x1451, x1448);
5000    let mut x1470: u32 = 0;
5001    let mut x1471: FpU1 = 0;
5002    fp_addcarryx_u32(&mut x1470, &mut x1471, x1469, x1449, x1446);
5003    let mut x1472: u32 = 0;
5004    let mut x1473: FpU1 = 0;
5005    fp_addcarryx_u32(&mut x1472, &mut x1473, x1471, x1447, x1444);
5006    let mut x1474: u32 = 0;
5007    let mut x1475: FpU1 = 0;
5008    fp_addcarryx_u32(&mut x1474, &mut x1475, x1473, x1445, x1442);
5009    let mut x1476: u32 = 0;
5010    let mut x1477: FpU1 = 0;
5011    fp_addcarryx_u32(&mut x1476, &mut x1477, x1475, x1443, x1440);
5012    let mut x1478: u32 = 0;
5013    let mut x1479: FpU1 = 0;
5014    fp_addcarryx_u32(&mut x1478, &mut x1479, x1477, x1441, x1438);
5015    let mut x1480: u32 = 0;
5016    let mut x1481: FpU1 = 0;
5017    fp_addcarryx_u32(&mut x1480, &mut x1481, x1479, x1439, x1436);
5018    let x1482: u32 = ((x1481 as u32) + x1437);
5019    let mut x1483: u32 = 0;
5020    let mut x1484: FpU1 = 0;
5021    fp_addcarryx_u32(&mut x1483, &mut x1484, 0x0, x1411, x1458);
5022    let mut x1485: u32 = 0;
5023    let mut x1486: FpU1 = 0;
5024    fp_addcarryx_u32(&mut x1485, &mut x1486, x1484, x1413, x1460);
5025    let mut x1487: u32 = 0;
5026    let mut x1488: FpU1 = 0;
5027    fp_addcarryx_u32(&mut x1487, &mut x1488, x1486, x1415, x1462);
5028    let mut x1489: u32 = 0;
5029    let mut x1490: FpU1 = 0;
5030    fp_addcarryx_u32(&mut x1489, &mut x1490, x1488, x1417, x1464);
5031    let mut x1491: u32 = 0;
5032    let mut x1492: FpU1 = 0;
5033    fp_addcarryx_u32(&mut x1491, &mut x1492, x1490, x1419, x1466);
5034    let mut x1493: u32 = 0;
5035    let mut x1494: FpU1 = 0;
5036    fp_addcarryx_u32(&mut x1493, &mut x1494, x1492, x1421, x1468);
5037    let mut x1495: u32 = 0;
5038    let mut x1496: FpU1 = 0;
5039    fp_addcarryx_u32(&mut x1495, &mut x1496, x1494, x1423, x1470);
5040    let mut x1497: u32 = 0;
5041    let mut x1498: FpU1 = 0;
5042    fp_addcarryx_u32(&mut x1497, &mut x1498, x1496, x1425, x1472);
5043    let mut x1499: u32 = 0;
5044    let mut x1500: FpU1 = 0;
5045    fp_addcarryx_u32(&mut x1499, &mut x1500, x1498, x1427, x1474);
5046    let mut x1501: u32 = 0;
5047    let mut x1502: FpU1 = 0;
5048    fp_addcarryx_u32(&mut x1501, &mut x1502, x1500, x1429, x1476);
5049    let mut x1503: u32 = 0;
5050    let mut x1504: FpU1 = 0;
5051    fp_addcarryx_u32(&mut x1503, &mut x1504, x1502, x1431, x1478);
5052    let mut x1505: u32 = 0;
5053    let mut x1506: FpU1 = 0;
5054    fp_addcarryx_u32(&mut x1505, &mut x1506, x1504, x1433, x1480);
5055    let mut x1507: u32 = 0;
5056    let mut x1508: FpU1 = 0;
5057    fp_addcarryx_u32(&mut x1507, &mut x1508, x1506, x1435, x1482);
5058    let mut x1509: u32 = 0;
5059    let mut x1510: u32 = 0;
5060    fp_mulx_u32(&mut x1509, &mut x1510, x1483, 0xffffffff);
5061    let mut x1511: u32 = 0;
5062    let mut x1512: u32 = 0;
5063    fp_mulx_u32(&mut x1511, &mut x1512, x1509, 0x1ae3a46);
5064    let mut x1513: u32 = 0;
5065    let mut x1514: u32 = 0;
5066    fp_mulx_u32(&mut x1513, &mut x1514, x1509, 0x17c510ea);
5067    let mut x1515: u32 = 0;
5068    let mut x1516: u32 = 0;
5069    fp_mulx_u32(&mut x1515, &mut x1516, x1509, 0xc63b05c0);
5070    let mut x1517: u32 = 0;
5071    let mut x1518: u32 = 0;
5072    fp_mulx_u32(&mut x1517, &mut x1518, x1509, 0x6ca1493b);
5073    let mut x1519: u32 = 0;
5074    let mut x1520: u32 = 0;
5075    fp_mulx_u32(&mut x1519, &mut x1520, x1509, 0x1a22d9f3);
5076    let mut x1521: u32 = 0;
5077    let mut x1522: u32 = 0;
5078    fp_mulx_u32(&mut x1521, &mut x1522, x1509, 0xf5138f);
5079    let mut x1523: u32 = 0;
5080    let mut x1524: u32 = 0;
5081    fp_mulx_u32(&mut x1523, &mut x1524, x1509, 0x1ef3622f);
5082    let mut x1525: u32 = 0;
5083    let mut x1526: u32 = 0;
5084    fp_mulx_u32(&mut x1525, &mut x1526, x1509, 0xba094800);
5085    let mut x1527: u32 = 0;
5086    let mut x1528: u32 = 0;
5087    fp_mulx_u32(&mut x1527, &mut x1528, x1509, 0x170b5d44);
5088    let mut x1529: u32 = 0;
5089    let mut x1530: u32 = 0;
5090    fp_mulx_u32(&mut x1529, &mut x1530, x1509, 0x30000000);
5091    let mut x1531: u32 = 0;
5092    let mut x1532: u32 = 0;
5093    fp_mulx_u32(&mut x1531, &mut x1532, x1509, 0x8508c000);
5094    let mut x1533: u32 = 0;
5095    let mut x1534: FpU1 = 0;
5096    fp_addcarryx_u32(&mut x1533, &mut x1534, 0x0, x1532, x1529);
5097    let mut x1535: u32 = 0;
5098    let mut x1536: FpU1 = 0;
5099    fp_addcarryx_u32(&mut x1535, &mut x1536, x1534, x1530, x1527);
5100    let mut x1537: u32 = 0;
5101    let mut x1538: FpU1 = 0;
5102    fp_addcarryx_u32(&mut x1537, &mut x1538, x1536, x1528, x1525);
5103    let mut x1539: u32 = 0;
5104    let mut x1540: FpU1 = 0;
5105    fp_addcarryx_u32(&mut x1539, &mut x1540, x1538, x1526, x1523);
5106    let mut x1541: u32 = 0;
5107    let mut x1542: FpU1 = 0;
5108    fp_addcarryx_u32(&mut x1541, &mut x1542, x1540, x1524, x1521);
5109    let mut x1543: u32 = 0;
5110    let mut x1544: FpU1 = 0;
5111    fp_addcarryx_u32(&mut x1543, &mut x1544, x1542, x1522, x1519);
5112    let mut x1545: u32 = 0;
5113    let mut x1546: FpU1 = 0;
5114    fp_addcarryx_u32(&mut x1545, &mut x1546, x1544, x1520, x1517);
5115    let mut x1547: u32 = 0;
5116    let mut x1548: FpU1 = 0;
5117    fp_addcarryx_u32(&mut x1547, &mut x1548, x1546, x1518, x1515);
5118    let mut x1549: u32 = 0;
5119    let mut x1550: FpU1 = 0;
5120    fp_addcarryx_u32(&mut x1549, &mut x1550, x1548, x1516, x1513);
5121    let mut x1551: u32 = 0;
5122    let mut x1552: FpU1 = 0;
5123    fp_addcarryx_u32(&mut x1551, &mut x1552, x1550, x1514, x1511);
5124    let x1553: u32 = ((x1552 as u32) + x1512);
5125    let mut x1554: u32 = 0;
5126    let mut x1555: FpU1 = 0;
5127    fp_addcarryx_u32(&mut x1554, &mut x1555, 0x0, x1483, x1509);
5128    let mut x1556: u32 = 0;
5129    let mut x1557: FpU1 = 0;
5130    fp_addcarryx_u32(&mut x1556, &mut x1557, x1555, x1485, x1531);
5131    let mut x1558: u32 = 0;
5132    let mut x1559: FpU1 = 0;
5133    fp_addcarryx_u32(&mut x1558, &mut x1559, x1557, x1487, x1533);
5134    let mut x1560: u32 = 0;
5135    let mut x1561: FpU1 = 0;
5136    fp_addcarryx_u32(&mut x1560, &mut x1561, x1559, x1489, x1535);
5137    let mut x1562: u32 = 0;
5138    let mut x1563: FpU1 = 0;
5139    fp_addcarryx_u32(&mut x1562, &mut x1563, x1561, x1491, x1537);
5140    let mut x1564: u32 = 0;
5141    let mut x1565: FpU1 = 0;
5142    fp_addcarryx_u32(&mut x1564, &mut x1565, x1563, x1493, x1539);
5143    let mut x1566: u32 = 0;
5144    let mut x1567: FpU1 = 0;
5145    fp_addcarryx_u32(&mut x1566, &mut x1567, x1565, x1495, x1541);
5146    let mut x1568: u32 = 0;
5147    let mut x1569: FpU1 = 0;
5148    fp_addcarryx_u32(&mut x1568, &mut x1569, x1567, x1497, x1543);
5149    let mut x1570: u32 = 0;
5150    let mut x1571: FpU1 = 0;
5151    fp_addcarryx_u32(&mut x1570, &mut x1571, x1569, x1499, x1545);
5152    let mut x1572: u32 = 0;
5153    let mut x1573: FpU1 = 0;
5154    fp_addcarryx_u32(&mut x1572, &mut x1573, x1571, x1501, x1547);
5155    let mut x1574: u32 = 0;
5156    let mut x1575: FpU1 = 0;
5157    fp_addcarryx_u32(&mut x1574, &mut x1575, x1573, x1503, x1549);
5158    let mut x1576: u32 = 0;
5159    let mut x1577: FpU1 = 0;
5160    fp_addcarryx_u32(&mut x1576, &mut x1577, x1575, x1505, x1551);
5161    let mut x1578: u32 = 0;
5162    let mut x1579: FpU1 = 0;
5163    fp_addcarryx_u32(&mut x1578, &mut x1579, x1577, x1507, x1553);
5164    let x1580: u32 = ((x1579 as u32) + (x1508 as u32));
5165    let mut x1581: u32 = 0;
5166    let mut x1582: u32 = 0;
5167    fp_mulx_u32(&mut x1581, &mut x1582, x11, (arg1[11]));
5168    let mut x1583: u32 = 0;
5169    let mut x1584: u32 = 0;
5170    fp_mulx_u32(&mut x1583, &mut x1584, x11, (arg1[10]));
5171    let mut x1585: u32 = 0;
5172    let mut x1586: u32 = 0;
5173    fp_mulx_u32(&mut x1585, &mut x1586, x11, (arg1[9]));
5174    let mut x1587: u32 = 0;
5175    let mut x1588: u32 = 0;
5176    fp_mulx_u32(&mut x1587, &mut x1588, x11, (arg1[8]));
5177    let mut x1589: u32 = 0;
5178    let mut x1590: u32 = 0;
5179    fp_mulx_u32(&mut x1589, &mut x1590, x11, (arg1[7]));
5180    let mut x1591: u32 = 0;
5181    let mut x1592: u32 = 0;
5182    fp_mulx_u32(&mut x1591, &mut x1592, x11, (arg1[6]));
5183    let mut x1593: u32 = 0;
5184    let mut x1594: u32 = 0;
5185    fp_mulx_u32(&mut x1593, &mut x1594, x11, (arg1[5]));
5186    let mut x1595: u32 = 0;
5187    let mut x1596: u32 = 0;
5188    fp_mulx_u32(&mut x1595, &mut x1596, x11, (arg1[4]));
5189    let mut x1597: u32 = 0;
5190    let mut x1598: u32 = 0;
5191    fp_mulx_u32(&mut x1597, &mut x1598, x11, (arg1[3]));
5192    let mut x1599: u32 = 0;
5193    let mut x1600: u32 = 0;
5194    fp_mulx_u32(&mut x1599, &mut x1600, x11, (arg1[2]));
5195    let mut x1601: u32 = 0;
5196    let mut x1602: u32 = 0;
5197    fp_mulx_u32(&mut x1601, &mut x1602, x11, (arg1[1]));
5198    let mut x1603: u32 = 0;
5199    let mut x1604: u32 = 0;
5200    fp_mulx_u32(&mut x1603, &mut x1604, x11, (arg1[0]));
5201    let mut x1605: u32 = 0;
5202    let mut x1606: FpU1 = 0;
5203    fp_addcarryx_u32(&mut x1605, &mut x1606, 0x0, x1604, x1601);
5204    let mut x1607: u32 = 0;
5205    let mut x1608: FpU1 = 0;
5206    fp_addcarryx_u32(&mut x1607, &mut x1608, x1606, x1602, x1599);
5207    let mut x1609: u32 = 0;
5208    let mut x1610: FpU1 = 0;
5209    fp_addcarryx_u32(&mut x1609, &mut x1610, x1608, x1600, x1597);
5210    let mut x1611: u32 = 0;
5211    let mut x1612: FpU1 = 0;
5212    fp_addcarryx_u32(&mut x1611, &mut x1612, x1610, x1598, x1595);
5213    let mut x1613: u32 = 0;
5214    let mut x1614: FpU1 = 0;
5215    fp_addcarryx_u32(&mut x1613, &mut x1614, x1612, x1596, x1593);
5216    let mut x1615: u32 = 0;
5217    let mut x1616: FpU1 = 0;
5218    fp_addcarryx_u32(&mut x1615, &mut x1616, x1614, x1594, x1591);
5219    let mut x1617: u32 = 0;
5220    let mut x1618: FpU1 = 0;
5221    fp_addcarryx_u32(&mut x1617, &mut x1618, x1616, x1592, x1589);
5222    let mut x1619: u32 = 0;
5223    let mut x1620: FpU1 = 0;
5224    fp_addcarryx_u32(&mut x1619, &mut x1620, x1618, x1590, x1587);
5225    let mut x1621: u32 = 0;
5226    let mut x1622: FpU1 = 0;
5227    fp_addcarryx_u32(&mut x1621, &mut x1622, x1620, x1588, x1585);
5228    let mut x1623: u32 = 0;
5229    let mut x1624: FpU1 = 0;
5230    fp_addcarryx_u32(&mut x1623, &mut x1624, x1622, x1586, x1583);
5231    let mut x1625: u32 = 0;
5232    let mut x1626: FpU1 = 0;
5233    fp_addcarryx_u32(&mut x1625, &mut x1626, x1624, x1584, x1581);
5234    let x1627: u32 = ((x1626 as u32) + x1582);
5235    let mut x1628: u32 = 0;
5236    let mut x1629: FpU1 = 0;
5237    fp_addcarryx_u32(&mut x1628, &mut x1629, 0x0, x1556, x1603);
5238    let mut x1630: u32 = 0;
5239    let mut x1631: FpU1 = 0;
5240    fp_addcarryx_u32(&mut x1630, &mut x1631, x1629, x1558, x1605);
5241    let mut x1632: u32 = 0;
5242    let mut x1633: FpU1 = 0;
5243    fp_addcarryx_u32(&mut x1632, &mut x1633, x1631, x1560, x1607);
5244    let mut x1634: u32 = 0;
5245    let mut x1635: FpU1 = 0;
5246    fp_addcarryx_u32(&mut x1634, &mut x1635, x1633, x1562, x1609);
5247    let mut x1636: u32 = 0;
5248    let mut x1637: FpU1 = 0;
5249    fp_addcarryx_u32(&mut x1636, &mut x1637, x1635, x1564, x1611);
5250    let mut x1638: u32 = 0;
5251    let mut x1639: FpU1 = 0;
5252    fp_addcarryx_u32(&mut x1638, &mut x1639, x1637, x1566, x1613);
5253    let mut x1640: u32 = 0;
5254    let mut x1641: FpU1 = 0;
5255    fp_addcarryx_u32(&mut x1640, &mut x1641, x1639, x1568, x1615);
5256    let mut x1642: u32 = 0;
5257    let mut x1643: FpU1 = 0;
5258    fp_addcarryx_u32(&mut x1642, &mut x1643, x1641, x1570, x1617);
5259    let mut x1644: u32 = 0;
5260    let mut x1645: FpU1 = 0;
5261    fp_addcarryx_u32(&mut x1644, &mut x1645, x1643, x1572, x1619);
5262    let mut x1646: u32 = 0;
5263    let mut x1647: FpU1 = 0;
5264    fp_addcarryx_u32(&mut x1646, &mut x1647, x1645, x1574, x1621);
5265    let mut x1648: u32 = 0;
5266    let mut x1649: FpU1 = 0;
5267    fp_addcarryx_u32(&mut x1648, &mut x1649, x1647, x1576, x1623);
5268    let mut x1650: u32 = 0;
5269    let mut x1651: FpU1 = 0;
5270    fp_addcarryx_u32(&mut x1650, &mut x1651, x1649, x1578, x1625);
5271    let mut x1652: u32 = 0;
5272    let mut x1653: FpU1 = 0;
5273    fp_addcarryx_u32(&mut x1652, &mut x1653, x1651, x1580, x1627);
5274    let mut x1654: u32 = 0;
5275    let mut x1655: u32 = 0;
5276    fp_mulx_u32(&mut x1654, &mut x1655, x1628, 0xffffffff);
5277    let mut x1656: u32 = 0;
5278    let mut x1657: u32 = 0;
5279    fp_mulx_u32(&mut x1656, &mut x1657, x1654, 0x1ae3a46);
5280    let mut x1658: u32 = 0;
5281    let mut x1659: u32 = 0;
5282    fp_mulx_u32(&mut x1658, &mut x1659, x1654, 0x17c510ea);
5283    let mut x1660: u32 = 0;
5284    let mut x1661: u32 = 0;
5285    fp_mulx_u32(&mut x1660, &mut x1661, x1654, 0xc63b05c0);
5286    let mut x1662: u32 = 0;
5287    let mut x1663: u32 = 0;
5288    fp_mulx_u32(&mut x1662, &mut x1663, x1654, 0x6ca1493b);
5289    let mut x1664: u32 = 0;
5290    let mut x1665: u32 = 0;
5291    fp_mulx_u32(&mut x1664, &mut x1665, x1654, 0x1a22d9f3);
5292    let mut x1666: u32 = 0;
5293    let mut x1667: u32 = 0;
5294    fp_mulx_u32(&mut x1666, &mut x1667, x1654, 0xf5138f);
5295    let mut x1668: u32 = 0;
5296    let mut x1669: u32 = 0;
5297    fp_mulx_u32(&mut x1668, &mut x1669, x1654, 0x1ef3622f);
5298    let mut x1670: u32 = 0;
5299    let mut x1671: u32 = 0;
5300    fp_mulx_u32(&mut x1670, &mut x1671, x1654, 0xba094800);
5301    let mut x1672: u32 = 0;
5302    let mut x1673: u32 = 0;
5303    fp_mulx_u32(&mut x1672, &mut x1673, x1654, 0x170b5d44);
5304    let mut x1674: u32 = 0;
5305    let mut x1675: u32 = 0;
5306    fp_mulx_u32(&mut x1674, &mut x1675, x1654, 0x30000000);
5307    let mut x1676: u32 = 0;
5308    let mut x1677: u32 = 0;
5309    fp_mulx_u32(&mut x1676, &mut x1677, x1654, 0x8508c000);
5310    let mut x1678: u32 = 0;
5311    let mut x1679: FpU1 = 0;
5312    fp_addcarryx_u32(&mut x1678, &mut x1679, 0x0, x1677, x1674);
5313    let mut x1680: u32 = 0;
5314    let mut x1681: FpU1 = 0;
5315    fp_addcarryx_u32(&mut x1680, &mut x1681, x1679, x1675, x1672);
5316    let mut x1682: u32 = 0;
5317    let mut x1683: FpU1 = 0;
5318    fp_addcarryx_u32(&mut x1682, &mut x1683, x1681, x1673, x1670);
5319    let mut x1684: u32 = 0;
5320    let mut x1685: FpU1 = 0;
5321    fp_addcarryx_u32(&mut x1684, &mut x1685, x1683, x1671, x1668);
5322    let mut x1686: u32 = 0;
5323    let mut x1687: FpU1 = 0;
5324    fp_addcarryx_u32(&mut x1686, &mut x1687, x1685, x1669, x1666);
5325    let mut x1688: u32 = 0;
5326    let mut x1689: FpU1 = 0;
5327    fp_addcarryx_u32(&mut x1688, &mut x1689, x1687, x1667, x1664);
5328    let mut x1690: u32 = 0;
5329    let mut x1691: FpU1 = 0;
5330    fp_addcarryx_u32(&mut x1690, &mut x1691, x1689, x1665, x1662);
5331    let mut x1692: u32 = 0;
5332    let mut x1693: FpU1 = 0;
5333    fp_addcarryx_u32(&mut x1692, &mut x1693, x1691, x1663, x1660);
5334    let mut x1694: u32 = 0;
5335    let mut x1695: FpU1 = 0;
5336    fp_addcarryx_u32(&mut x1694, &mut x1695, x1693, x1661, x1658);
5337    let mut x1696: u32 = 0;
5338    let mut x1697: FpU1 = 0;
5339    fp_addcarryx_u32(&mut x1696, &mut x1697, x1695, x1659, x1656);
5340    let x1698: u32 = ((x1697 as u32) + x1657);
5341    let mut x1699: u32 = 0;
5342    let mut x1700: FpU1 = 0;
5343    fp_addcarryx_u32(&mut x1699, &mut x1700, 0x0, x1628, x1654);
5344    let mut x1701: u32 = 0;
5345    let mut x1702: FpU1 = 0;
5346    fp_addcarryx_u32(&mut x1701, &mut x1702, x1700, x1630, x1676);
5347    let mut x1703: u32 = 0;
5348    let mut x1704: FpU1 = 0;
5349    fp_addcarryx_u32(&mut x1703, &mut x1704, x1702, x1632, x1678);
5350    let mut x1705: u32 = 0;
5351    let mut x1706: FpU1 = 0;
5352    fp_addcarryx_u32(&mut x1705, &mut x1706, x1704, x1634, x1680);
5353    let mut x1707: u32 = 0;
5354    let mut x1708: FpU1 = 0;
5355    fp_addcarryx_u32(&mut x1707, &mut x1708, x1706, x1636, x1682);
5356    let mut x1709: u32 = 0;
5357    let mut x1710: FpU1 = 0;
5358    fp_addcarryx_u32(&mut x1709, &mut x1710, x1708, x1638, x1684);
5359    let mut x1711: u32 = 0;
5360    let mut x1712: FpU1 = 0;
5361    fp_addcarryx_u32(&mut x1711, &mut x1712, x1710, x1640, x1686);
5362    let mut x1713: u32 = 0;
5363    let mut x1714: FpU1 = 0;
5364    fp_addcarryx_u32(&mut x1713, &mut x1714, x1712, x1642, x1688);
5365    let mut x1715: u32 = 0;
5366    let mut x1716: FpU1 = 0;
5367    fp_addcarryx_u32(&mut x1715, &mut x1716, x1714, x1644, x1690);
5368    let mut x1717: u32 = 0;
5369    let mut x1718: FpU1 = 0;
5370    fp_addcarryx_u32(&mut x1717, &mut x1718, x1716, x1646, x1692);
5371    let mut x1719: u32 = 0;
5372    let mut x1720: FpU1 = 0;
5373    fp_addcarryx_u32(&mut x1719, &mut x1720, x1718, x1648, x1694);
5374    let mut x1721: u32 = 0;
5375    let mut x1722: FpU1 = 0;
5376    fp_addcarryx_u32(&mut x1721, &mut x1722, x1720, x1650, x1696);
5377    let mut x1723: u32 = 0;
5378    let mut x1724: FpU1 = 0;
5379    fp_addcarryx_u32(&mut x1723, &mut x1724, x1722, x1652, x1698);
5380    let x1725: u32 = ((x1724 as u32) + (x1653 as u32));
5381    let mut x1726: u32 = 0;
5382    let mut x1727: FpU1 = 0;
5383    fp_subborrowx_u32(&mut x1726, &mut x1727, 0x0, x1701, (0x1 as u32));
5384    let mut x1728: u32 = 0;
5385    let mut x1729: FpU1 = 0;
5386    fp_subborrowx_u32(&mut x1728, &mut x1729, x1727, x1703, 0x8508c000);
5387    let mut x1730: u32 = 0;
5388    let mut x1731: FpU1 = 0;
5389    fp_subborrowx_u32(&mut x1730, &mut x1731, x1729, x1705, 0x30000000);
5390    let mut x1732: u32 = 0;
5391    let mut x1733: FpU1 = 0;
5392    fp_subborrowx_u32(&mut x1732, &mut x1733, x1731, x1707, 0x170b5d44);
5393    let mut x1734: u32 = 0;
5394    let mut x1735: FpU1 = 0;
5395    fp_subborrowx_u32(&mut x1734, &mut x1735, x1733, x1709, 0xba094800);
5396    let mut x1736: u32 = 0;
5397    let mut x1737: FpU1 = 0;
5398    fp_subborrowx_u32(&mut x1736, &mut x1737, x1735, x1711, 0x1ef3622f);
5399    let mut x1738: u32 = 0;
5400    let mut x1739: FpU1 = 0;
5401    fp_subborrowx_u32(&mut x1738, &mut x1739, x1737, x1713, 0xf5138f);
5402    let mut x1740: u32 = 0;
5403    let mut x1741: FpU1 = 0;
5404    fp_subborrowx_u32(&mut x1740, &mut x1741, x1739, x1715, 0x1a22d9f3);
5405    let mut x1742: u32 = 0;
5406    let mut x1743: FpU1 = 0;
5407    fp_subborrowx_u32(&mut x1742, &mut x1743, x1741, x1717, 0x6ca1493b);
5408    let mut x1744: u32 = 0;
5409    let mut x1745: FpU1 = 0;
5410    fp_subborrowx_u32(&mut x1744, &mut x1745, x1743, x1719, 0xc63b05c0);
5411    let mut x1746: u32 = 0;
5412    let mut x1747: FpU1 = 0;
5413    fp_subborrowx_u32(&mut x1746, &mut x1747, x1745, x1721, 0x17c510ea);
5414    let mut x1748: u32 = 0;
5415    let mut x1749: FpU1 = 0;
5416    fp_subborrowx_u32(&mut x1748, &mut x1749, x1747, x1723, 0x1ae3a46);
5417    let mut x1750: u32 = 0;
5418    let mut x1751: FpU1 = 0;
5419    fp_subborrowx_u32(&mut x1750, &mut x1751, x1749, x1725, (0x0 as u32));
5420    let mut x1752: u32 = 0;
5421    fp_cmovznz_u32(&mut x1752, x1751, x1726, x1701);
5422    let mut x1753: u32 = 0;
5423    fp_cmovznz_u32(&mut x1753, x1751, x1728, x1703);
5424    let mut x1754: u32 = 0;
5425    fp_cmovznz_u32(&mut x1754, x1751, x1730, x1705);
5426    let mut x1755: u32 = 0;
5427    fp_cmovznz_u32(&mut x1755, x1751, x1732, x1707);
5428    let mut x1756: u32 = 0;
5429    fp_cmovznz_u32(&mut x1756, x1751, x1734, x1709);
5430    let mut x1757: u32 = 0;
5431    fp_cmovznz_u32(&mut x1757, x1751, x1736, x1711);
5432    let mut x1758: u32 = 0;
5433    fp_cmovznz_u32(&mut x1758, x1751, x1738, x1713);
5434    let mut x1759: u32 = 0;
5435    fp_cmovznz_u32(&mut x1759, x1751, x1740, x1715);
5436    let mut x1760: u32 = 0;
5437    fp_cmovznz_u32(&mut x1760, x1751, x1742, x1717);
5438    let mut x1761: u32 = 0;
5439    fp_cmovznz_u32(&mut x1761, x1751, x1744, x1719);
5440    let mut x1762: u32 = 0;
5441    fp_cmovznz_u32(&mut x1762, x1751, x1746, x1721);
5442    let mut x1763: u32 = 0;
5443    fp_cmovznz_u32(&mut x1763, x1751, x1748, x1723);
5444    out1[0] = x1752;
5445    out1[1] = x1753;
5446    out1[2] = x1754;
5447    out1[3] = x1755;
5448    out1[4] = x1756;
5449    out1[5] = x1757;
5450    out1[6] = x1758;
5451    out1[7] = x1759;
5452    out1[8] = x1760;
5453    out1[9] = x1761;
5454    out1[10] = x1762;
5455    out1[11] = x1763;
5456}
5457
5458/// The function fp_add adds two field elements in the Montgomery domain.
5459///
5460/// Preconditions:
5461///   0 ≤ eval arg1 < m
5462///   0 ≤ eval arg2 < m
5463/// Postconditions:
5464///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
5465///   0 ≤ eval out1 < m
5466///
5467pub fn fp_add(
5468    out1: &mut FpMontgomeryDomainFieldElement,
5469    arg1: &FpMontgomeryDomainFieldElement,
5470    arg2: &FpMontgomeryDomainFieldElement,
5471) {
5472    let mut x1: u32 = 0;
5473    let mut x2: FpU1 = 0;
5474    fp_addcarryx_u32(&mut x1, &mut x2, 0x0, (arg1[0]), (arg2[0]));
5475    let mut x3: u32 = 0;
5476    let mut x4: FpU1 = 0;
5477    fp_addcarryx_u32(&mut x3, &mut x4, x2, (arg1[1]), (arg2[1]));
5478    let mut x5: u32 = 0;
5479    let mut x6: FpU1 = 0;
5480    fp_addcarryx_u32(&mut x5, &mut x6, x4, (arg1[2]), (arg2[2]));
5481    let mut x7: u32 = 0;
5482    let mut x8: FpU1 = 0;
5483    fp_addcarryx_u32(&mut x7, &mut x8, x6, (arg1[3]), (arg2[3]));
5484    let mut x9: u32 = 0;
5485    let mut x10: FpU1 = 0;
5486    fp_addcarryx_u32(&mut x9, &mut x10, x8, (arg1[4]), (arg2[4]));
5487    let mut x11: u32 = 0;
5488    let mut x12: FpU1 = 0;
5489    fp_addcarryx_u32(&mut x11, &mut x12, x10, (arg1[5]), (arg2[5]));
5490    let mut x13: u32 = 0;
5491    let mut x14: FpU1 = 0;
5492    fp_addcarryx_u32(&mut x13, &mut x14, x12, (arg1[6]), (arg2[6]));
5493    let mut x15: u32 = 0;
5494    let mut x16: FpU1 = 0;
5495    fp_addcarryx_u32(&mut x15, &mut x16, x14, (arg1[7]), (arg2[7]));
5496    let mut x17: u32 = 0;
5497    let mut x18: FpU1 = 0;
5498    fp_addcarryx_u32(&mut x17, &mut x18, x16, (arg1[8]), (arg2[8]));
5499    let mut x19: u32 = 0;
5500    let mut x20: FpU1 = 0;
5501    fp_addcarryx_u32(&mut x19, &mut x20, x18, (arg1[9]), (arg2[9]));
5502    let mut x21: u32 = 0;
5503    let mut x22: FpU1 = 0;
5504    fp_addcarryx_u32(&mut x21, &mut x22, x20, (arg1[10]), (arg2[10]));
5505    let mut x23: u32 = 0;
5506    let mut x24: FpU1 = 0;
5507    fp_addcarryx_u32(&mut x23, &mut x24, x22, (arg1[11]), (arg2[11]));
5508    let mut x25: u32 = 0;
5509    let mut x26: FpU1 = 0;
5510    fp_subborrowx_u32(&mut x25, &mut x26, 0x0, x1, (0x1 as u32));
5511    let mut x27: u32 = 0;
5512    let mut x28: FpU1 = 0;
5513    fp_subborrowx_u32(&mut x27, &mut x28, x26, x3, 0x8508c000);
5514    let mut x29: u32 = 0;
5515    let mut x30: FpU1 = 0;
5516    fp_subborrowx_u32(&mut x29, &mut x30, x28, x5, 0x30000000);
5517    let mut x31: u32 = 0;
5518    let mut x32: FpU1 = 0;
5519    fp_subborrowx_u32(&mut x31, &mut x32, x30, x7, 0x170b5d44);
5520    let mut x33: u32 = 0;
5521    let mut x34: FpU1 = 0;
5522    fp_subborrowx_u32(&mut x33, &mut x34, x32, x9, 0xba094800);
5523    let mut x35: u32 = 0;
5524    let mut x36: FpU1 = 0;
5525    fp_subborrowx_u32(&mut x35, &mut x36, x34, x11, 0x1ef3622f);
5526    let mut x37: u32 = 0;
5527    let mut x38: FpU1 = 0;
5528    fp_subborrowx_u32(&mut x37, &mut x38, x36, x13, 0xf5138f);
5529    let mut x39: u32 = 0;
5530    let mut x40: FpU1 = 0;
5531    fp_subborrowx_u32(&mut x39, &mut x40, x38, x15, 0x1a22d9f3);
5532    let mut x41: u32 = 0;
5533    let mut x42: FpU1 = 0;
5534    fp_subborrowx_u32(&mut x41, &mut x42, x40, x17, 0x6ca1493b);
5535    let mut x43: u32 = 0;
5536    let mut x44: FpU1 = 0;
5537    fp_subborrowx_u32(&mut x43, &mut x44, x42, x19, 0xc63b05c0);
5538    let mut x45: u32 = 0;
5539    let mut x46: FpU1 = 0;
5540    fp_subborrowx_u32(&mut x45, &mut x46, x44, x21, 0x17c510ea);
5541    let mut x47: u32 = 0;
5542    let mut x48: FpU1 = 0;
5543    fp_subborrowx_u32(&mut x47, &mut x48, x46, x23, 0x1ae3a46);
5544    let mut x49: u32 = 0;
5545    let mut x50: FpU1 = 0;
5546    fp_subborrowx_u32(&mut x49, &mut x50, x48, (x24 as u32), (0x0 as u32));
5547    let mut x51: u32 = 0;
5548    fp_cmovznz_u32(&mut x51, x50, x25, x1);
5549    let mut x52: u32 = 0;
5550    fp_cmovznz_u32(&mut x52, x50, x27, x3);
5551    let mut x53: u32 = 0;
5552    fp_cmovznz_u32(&mut x53, x50, x29, x5);
5553    let mut x54: u32 = 0;
5554    fp_cmovznz_u32(&mut x54, x50, x31, x7);
5555    let mut x55: u32 = 0;
5556    fp_cmovznz_u32(&mut x55, x50, x33, x9);
5557    let mut x56: u32 = 0;
5558    fp_cmovznz_u32(&mut x56, x50, x35, x11);
5559    let mut x57: u32 = 0;
5560    fp_cmovznz_u32(&mut x57, x50, x37, x13);
5561    let mut x58: u32 = 0;
5562    fp_cmovznz_u32(&mut x58, x50, x39, x15);
5563    let mut x59: u32 = 0;
5564    fp_cmovznz_u32(&mut x59, x50, x41, x17);
5565    let mut x60: u32 = 0;
5566    fp_cmovznz_u32(&mut x60, x50, x43, x19);
5567    let mut x61: u32 = 0;
5568    fp_cmovznz_u32(&mut x61, x50, x45, x21);
5569    let mut x62: u32 = 0;
5570    fp_cmovznz_u32(&mut x62, x50, x47, x23);
5571    out1[0] = x51;
5572    out1[1] = x52;
5573    out1[2] = x53;
5574    out1[3] = x54;
5575    out1[4] = x55;
5576    out1[5] = x56;
5577    out1[6] = x57;
5578    out1[7] = x58;
5579    out1[8] = x59;
5580    out1[9] = x60;
5581    out1[10] = x61;
5582    out1[11] = x62;
5583}
5584
5585/// The function fp_sub subtracts two field elements in the Montgomery domain.
5586///
5587/// Preconditions:
5588///   0 ≤ eval arg1 < m
5589///   0 ≤ eval arg2 < m
5590/// Postconditions:
5591///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
5592///   0 ≤ eval out1 < m
5593///
5594pub fn fp_sub(
5595    out1: &mut FpMontgomeryDomainFieldElement,
5596    arg1: &FpMontgomeryDomainFieldElement,
5597    arg2: &FpMontgomeryDomainFieldElement,
5598) {
5599    let mut x1: u32 = 0;
5600    let mut x2: FpU1 = 0;
5601    fp_subborrowx_u32(&mut x1, &mut x2, 0x0, (arg1[0]), (arg2[0]));
5602    let mut x3: u32 = 0;
5603    let mut x4: FpU1 = 0;
5604    fp_subborrowx_u32(&mut x3, &mut x4, x2, (arg1[1]), (arg2[1]));
5605    let mut x5: u32 = 0;
5606    let mut x6: FpU1 = 0;
5607    fp_subborrowx_u32(&mut x5, &mut x6, x4, (arg1[2]), (arg2[2]));
5608    let mut x7: u32 = 0;
5609    let mut x8: FpU1 = 0;
5610    fp_subborrowx_u32(&mut x7, &mut x8, x6, (arg1[3]), (arg2[3]));
5611    let mut x9: u32 = 0;
5612    let mut x10: FpU1 = 0;
5613    fp_subborrowx_u32(&mut x9, &mut x10, x8, (arg1[4]), (arg2[4]));
5614    let mut x11: u32 = 0;
5615    let mut x12: FpU1 = 0;
5616    fp_subborrowx_u32(&mut x11, &mut x12, x10, (arg1[5]), (arg2[5]));
5617    let mut x13: u32 = 0;
5618    let mut x14: FpU1 = 0;
5619    fp_subborrowx_u32(&mut x13, &mut x14, x12, (arg1[6]), (arg2[6]));
5620    let mut x15: u32 = 0;
5621    let mut x16: FpU1 = 0;
5622    fp_subborrowx_u32(&mut x15, &mut x16, x14, (arg1[7]), (arg2[7]));
5623    let mut x17: u32 = 0;
5624    let mut x18: FpU1 = 0;
5625    fp_subborrowx_u32(&mut x17, &mut x18, x16, (arg1[8]), (arg2[8]));
5626    let mut x19: u32 = 0;
5627    let mut x20: FpU1 = 0;
5628    fp_subborrowx_u32(&mut x19, &mut x20, x18, (arg1[9]), (arg2[9]));
5629    let mut x21: u32 = 0;
5630    let mut x22: FpU1 = 0;
5631    fp_subborrowx_u32(&mut x21, &mut x22, x20, (arg1[10]), (arg2[10]));
5632    let mut x23: u32 = 0;
5633    let mut x24: FpU1 = 0;
5634    fp_subborrowx_u32(&mut x23, &mut x24, x22, (arg1[11]), (arg2[11]));
5635    let mut x25: u32 = 0;
5636    fp_cmovznz_u32(&mut x25, x24, (0x0 as u32), 0xffffffff);
5637    let mut x26: u32 = 0;
5638    let mut x27: FpU1 = 0;
5639    fp_addcarryx_u32(
5640        &mut x26,
5641        &mut x27,
5642        0x0,
5643        x1,
5644        (((x25 & (0x1 as u32)) as FpU1) as u32),
5645    );
5646    let mut x28: u32 = 0;
5647    let mut x29: FpU1 = 0;
5648    fp_addcarryx_u32(&mut x28, &mut x29, x27, x3, (x25 & 0x8508c000));
5649    let mut x30: u32 = 0;
5650    let mut x31: FpU1 = 0;
5651    fp_addcarryx_u32(&mut x30, &mut x31, x29, x5, (x25 & 0x30000000));
5652    let mut x32: u32 = 0;
5653    let mut x33: FpU1 = 0;
5654    fp_addcarryx_u32(&mut x32, &mut x33, x31, x7, (x25 & 0x170b5d44));
5655    let mut x34: u32 = 0;
5656    let mut x35: FpU1 = 0;
5657    fp_addcarryx_u32(&mut x34, &mut x35, x33, x9, (x25 & 0xba094800));
5658    let mut x36: u32 = 0;
5659    let mut x37: FpU1 = 0;
5660    fp_addcarryx_u32(&mut x36, &mut x37, x35, x11, (x25 & 0x1ef3622f));
5661    let mut x38: u32 = 0;
5662    let mut x39: FpU1 = 0;
5663    fp_addcarryx_u32(&mut x38, &mut x39, x37, x13, (x25 & 0xf5138f));
5664    let mut x40: u32 = 0;
5665    let mut x41: FpU1 = 0;
5666    fp_addcarryx_u32(&mut x40, &mut x41, x39, x15, (x25 & 0x1a22d9f3));
5667    let mut x42: u32 = 0;
5668    let mut x43: FpU1 = 0;
5669    fp_addcarryx_u32(&mut x42, &mut x43, x41, x17, (x25 & 0x6ca1493b));
5670    let mut x44: u32 = 0;
5671    let mut x45: FpU1 = 0;
5672    fp_addcarryx_u32(&mut x44, &mut x45, x43, x19, (x25 & 0xc63b05c0));
5673    let mut x46: u32 = 0;
5674    let mut x47: FpU1 = 0;
5675    fp_addcarryx_u32(&mut x46, &mut x47, x45, x21, (x25 & 0x17c510ea));
5676    let mut x48: u32 = 0;
5677    let mut x49: FpU1 = 0;
5678    fp_addcarryx_u32(&mut x48, &mut x49, x47, x23, (x25 & 0x1ae3a46));
5679    out1[0] = x26;
5680    out1[1] = x28;
5681    out1[2] = x30;
5682    out1[3] = x32;
5683    out1[4] = x34;
5684    out1[5] = x36;
5685    out1[6] = x38;
5686    out1[7] = x40;
5687    out1[8] = x42;
5688    out1[9] = x44;
5689    out1[10] = x46;
5690    out1[11] = x48;
5691}
5692
5693/// The function fp_opp negates a field element in the Montgomery domain.
5694///
5695/// Preconditions:
5696///   0 ≤ eval arg1 < m
5697/// Postconditions:
5698///   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
5699///   0 ≤ eval out1 < m
5700///
5701pub fn fp_opp(out1: &mut FpMontgomeryDomainFieldElement, arg1: &FpMontgomeryDomainFieldElement) {
5702    let mut x1: u32 = 0;
5703    let mut x2: FpU1 = 0;
5704    fp_subborrowx_u32(&mut x1, &mut x2, 0x0, (0x0 as u32), (arg1[0]));
5705    let mut x3: u32 = 0;
5706    let mut x4: FpU1 = 0;
5707    fp_subborrowx_u32(&mut x3, &mut x4, x2, (0x0 as u32), (arg1[1]));
5708    let mut x5: u32 = 0;
5709    let mut x6: FpU1 = 0;
5710    fp_subborrowx_u32(&mut x5, &mut x6, x4, (0x0 as u32), (arg1[2]));
5711    let mut x7: u32 = 0;
5712    let mut x8: FpU1 = 0;
5713    fp_subborrowx_u32(&mut x7, &mut x8, x6, (0x0 as u32), (arg1[3]));
5714    let mut x9: u32 = 0;
5715    let mut x10: FpU1 = 0;
5716    fp_subborrowx_u32(&mut x9, &mut x10, x8, (0x0 as u32), (arg1[4]));
5717    let mut x11: u32 = 0;
5718    let mut x12: FpU1 = 0;
5719    fp_subborrowx_u32(&mut x11, &mut x12, x10, (0x0 as u32), (arg1[5]));
5720    let mut x13: u32 = 0;
5721    let mut x14: FpU1 = 0;
5722    fp_subborrowx_u32(&mut x13, &mut x14, x12, (0x0 as u32), (arg1[6]));
5723    let mut x15: u32 = 0;
5724    let mut x16: FpU1 = 0;
5725    fp_subborrowx_u32(&mut x15, &mut x16, x14, (0x0 as u32), (arg1[7]));
5726    let mut x17: u32 = 0;
5727    let mut x18: FpU1 = 0;
5728    fp_subborrowx_u32(&mut x17, &mut x18, x16, (0x0 as u32), (arg1[8]));
5729    let mut x19: u32 = 0;
5730    let mut x20: FpU1 = 0;
5731    fp_subborrowx_u32(&mut x19, &mut x20, x18, (0x0 as u32), (arg1[9]));
5732    let mut x21: u32 = 0;
5733    let mut x22: FpU1 = 0;
5734    fp_subborrowx_u32(&mut x21, &mut x22, x20, (0x0 as u32), (arg1[10]));
5735    let mut x23: u32 = 0;
5736    let mut x24: FpU1 = 0;
5737    fp_subborrowx_u32(&mut x23, &mut x24, x22, (0x0 as u32), (arg1[11]));
5738    let mut x25: u32 = 0;
5739    fp_cmovznz_u32(&mut x25, x24, (0x0 as u32), 0xffffffff);
5740    let mut x26: u32 = 0;
5741    let mut x27: FpU1 = 0;
5742    fp_addcarryx_u32(
5743        &mut x26,
5744        &mut x27,
5745        0x0,
5746        x1,
5747        (((x25 & (0x1 as u32)) as FpU1) as u32),
5748    );
5749    let mut x28: u32 = 0;
5750    let mut x29: FpU1 = 0;
5751    fp_addcarryx_u32(&mut x28, &mut x29, x27, x3, (x25 & 0x8508c000));
5752    let mut x30: u32 = 0;
5753    let mut x31: FpU1 = 0;
5754    fp_addcarryx_u32(&mut x30, &mut x31, x29, x5, (x25 & 0x30000000));
5755    let mut x32: u32 = 0;
5756    let mut x33: FpU1 = 0;
5757    fp_addcarryx_u32(&mut x32, &mut x33, x31, x7, (x25 & 0x170b5d44));
5758    let mut x34: u32 = 0;
5759    let mut x35: FpU1 = 0;
5760    fp_addcarryx_u32(&mut x34, &mut x35, x33, x9, (x25 & 0xba094800));
5761    let mut x36: u32 = 0;
5762    let mut x37: FpU1 = 0;
5763    fp_addcarryx_u32(&mut x36, &mut x37, x35, x11, (x25 & 0x1ef3622f));
5764    let mut x38: u32 = 0;
5765    let mut x39: FpU1 = 0;
5766    fp_addcarryx_u32(&mut x38, &mut x39, x37, x13, (x25 & 0xf5138f));
5767    let mut x40: u32 = 0;
5768    let mut x41: FpU1 = 0;
5769    fp_addcarryx_u32(&mut x40, &mut x41, x39, x15, (x25 & 0x1a22d9f3));
5770    let mut x42: u32 = 0;
5771    let mut x43: FpU1 = 0;
5772    fp_addcarryx_u32(&mut x42, &mut x43, x41, x17, (x25 & 0x6ca1493b));
5773    let mut x44: u32 = 0;
5774    let mut x45: FpU1 = 0;
5775    fp_addcarryx_u32(&mut x44, &mut x45, x43, x19, (x25 & 0xc63b05c0));
5776    let mut x46: u32 = 0;
5777    let mut x47: FpU1 = 0;
5778    fp_addcarryx_u32(&mut x46, &mut x47, x45, x21, (x25 & 0x17c510ea));
5779    let mut x48: u32 = 0;
5780    let mut x49: FpU1 = 0;
5781    fp_addcarryx_u32(&mut x48, &mut x49, x47, x23, (x25 & 0x1ae3a46));
5782    out1[0] = x26;
5783    out1[1] = x28;
5784    out1[2] = x30;
5785    out1[3] = x32;
5786    out1[4] = x34;
5787    out1[5] = x36;
5788    out1[6] = x38;
5789    out1[7] = x40;
5790    out1[8] = x42;
5791    out1[9] = x44;
5792    out1[10] = x46;
5793    out1[11] = x48;
5794}
5795
5796/// The function fp_from_montgomery translates a field element out of the Montgomery domain.
5797///
5798/// Preconditions:
5799///   0 ≤ eval arg1 < m
5800/// Postconditions:
5801///   eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^12) mod m
5802///   0 ≤ eval out1 < m
5803///
5804pub fn fp_from_montgomery(
5805    out1: &mut FpNonMontgomeryDomainFieldElement,
5806    arg1: &FpMontgomeryDomainFieldElement,
5807) {
5808    let x1: u32 = (arg1[0]);
5809    let mut x2: u32 = 0;
5810    let mut x3: u32 = 0;
5811    fp_mulx_u32(&mut x2, &mut x3, x1, 0xffffffff);
5812    let mut x4: u32 = 0;
5813    let mut x5: u32 = 0;
5814    fp_mulx_u32(&mut x4, &mut x5, x2, 0x1ae3a46);
5815    let mut x6: u32 = 0;
5816    let mut x7: u32 = 0;
5817    fp_mulx_u32(&mut x6, &mut x7, x2, 0x17c510ea);
5818    let mut x8: u32 = 0;
5819    let mut x9: u32 = 0;
5820    fp_mulx_u32(&mut x8, &mut x9, x2, 0xc63b05c0);
5821    let mut x10: u32 = 0;
5822    let mut x11: u32 = 0;
5823    fp_mulx_u32(&mut x10, &mut x11, x2, 0x6ca1493b);
5824    let mut x12: u32 = 0;
5825    let mut x13: u32 = 0;
5826    fp_mulx_u32(&mut x12, &mut x13, x2, 0x1a22d9f3);
5827    let mut x14: u32 = 0;
5828    let mut x15: u32 = 0;
5829    fp_mulx_u32(&mut x14, &mut x15, x2, 0xf5138f);
5830    let mut x16: u32 = 0;
5831    let mut x17: u32 = 0;
5832    fp_mulx_u32(&mut x16, &mut x17, x2, 0x1ef3622f);
5833    let mut x18: u32 = 0;
5834    let mut x19: u32 = 0;
5835    fp_mulx_u32(&mut x18, &mut x19, x2, 0xba094800);
5836    let mut x20: u32 = 0;
5837    let mut x21: u32 = 0;
5838    fp_mulx_u32(&mut x20, &mut x21, x2, 0x170b5d44);
5839    let mut x22: u32 = 0;
5840    let mut x23: u32 = 0;
5841    fp_mulx_u32(&mut x22, &mut x23, x2, 0x30000000);
5842    let mut x24: u32 = 0;
5843    let mut x25: u32 = 0;
5844    fp_mulx_u32(&mut x24, &mut x25, x2, 0x8508c000);
5845    let mut x26: u32 = 0;
5846    let mut x27: FpU1 = 0;
5847    fp_addcarryx_u32(&mut x26, &mut x27, 0x0, x25, x22);
5848    let mut x28: u32 = 0;
5849    let mut x29: FpU1 = 0;
5850    fp_addcarryx_u32(&mut x28, &mut x29, x27, x23, x20);
5851    let mut x30: u32 = 0;
5852    let mut x31: FpU1 = 0;
5853    fp_addcarryx_u32(&mut x30, &mut x31, x29, x21, x18);
5854    let mut x32: u32 = 0;
5855    let mut x33: FpU1 = 0;
5856    fp_addcarryx_u32(&mut x32, &mut x33, x31, x19, x16);
5857    let mut x34: u32 = 0;
5858    let mut x35: FpU1 = 0;
5859    fp_addcarryx_u32(&mut x34, &mut x35, x33, x17, x14);
5860    let mut x36: u32 = 0;
5861    let mut x37: FpU1 = 0;
5862    fp_addcarryx_u32(&mut x36, &mut x37, x35, x15, x12);
5863    let mut x38: u32 = 0;
5864    let mut x39: FpU1 = 0;
5865    fp_addcarryx_u32(&mut x38, &mut x39, x37, x13, x10);
5866    let mut x40: u32 = 0;
5867    let mut x41: FpU1 = 0;
5868    fp_addcarryx_u32(&mut x40, &mut x41, x39, x11, x8);
5869    let mut x42: u32 = 0;
5870    let mut x43: FpU1 = 0;
5871    fp_addcarryx_u32(&mut x42, &mut x43, x41, x9, x6);
5872    let mut x44: u32 = 0;
5873    let mut x45: FpU1 = 0;
5874    fp_addcarryx_u32(&mut x44, &mut x45, x43, x7, x4);
5875    let mut x46: u32 = 0;
5876    let mut x47: FpU1 = 0;
5877    fp_addcarryx_u32(&mut x46, &mut x47, 0x0, x1, x2);
5878    let mut x48: u32 = 0;
5879    let mut x49: FpU1 = 0;
5880    fp_addcarryx_u32(&mut x48, &mut x49, x47, (0x0 as u32), x24);
5881    let mut x50: u32 = 0;
5882    let mut x51: FpU1 = 0;
5883    fp_addcarryx_u32(&mut x50, &mut x51, x49, (0x0 as u32), x26);
5884    let mut x52: u32 = 0;
5885    let mut x53: FpU1 = 0;
5886    fp_addcarryx_u32(&mut x52, &mut x53, x51, (0x0 as u32), x28);
5887    let mut x54: u32 = 0;
5888    let mut x55: FpU1 = 0;
5889    fp_addcarryx_u32(&mut x54, &mut x55, x53, (0x0 as u32), x30);
5890    let mut x56: u32 = 0;
5891    let mut x57: FpU1 = 0;
5892    fp_addcarryx_u32(&mut x56, &mut x57, x55, (0x0 as u32), x32);
5893    let mut x58: u32 = 0;
5894    let mut x59: FpU1 = 0;
5895    fp_addcarryx_u32(&mut x58, &mut x59, x57, (0x0 as u32), x34);
5896    let mut x60: u32 = 0;
5897    let mut x61: FpU1 = 0;
5898    fp_addcarryx_u32(&mut x60, &mut x61, x59, (0x0 as u32), x36);
5899    let mut x62: u32 = 0;
5900    let mut x63: FpU1 = 0;
5901    fp_addcarryx_u32(&mut x62, &mut x63, x61, (0x0 as u32), x38);
5902    let mut x64: u32 = 0;
5903    let mut x65: FpU1 = 0;
5904    fp_addcarryx_u32(&mut x64, &mut x65, x63, (0x0 as u32), x40);
5905    let mut x66: u32 = 0;
5906    let mut x67: FpU1 = 0;
5907    fp_addcarryx_u32(&mut x66, &mut x67, x65, (0x0 as u32), x42);
5908    let mut x68: u32 = 0;
5909    let mut x69: FpU1 = 0;
5910    fp_addcarryx_u32(&mut x68, &mut x69, x67, (0x0 as u32), x44);
5911    let mut x70: u32 = 0;
5912    let mut x71: FpU1 = 0;
5913    fp_addcarryx_u32(&mut x70, &mut x71, 0x0, x48, (arg1[1]));
5914    let mut x72: u32 = 0;
5915    let mut x73: FpU1 = 0;
5916    fp_addcarryx_u32(&mut x72, &mut x73, x71, x50, (0x0 as u32));
5917    let mut x74: u32 = 0;
5918    let mut x75: FpU1 = 0;
5919    fp_addcarryx_u32(&mut x74, &mut x75, x73, x52, (0x0 as u32));
5920    let mut x76: u32 = 0;
5921    let mut x77: FpU1 = 0;
5922    fp_addcarryx_u32(&mut x76, &mut x77, x75, x54, (0x0 as u32));
5923    let mut x78: u32 = 0;
5924    let mut x79: FpU1 = 0;
5925    fp_addcarryx_u32(&mut x78, &mut x79, x77, x56, (0x0 as u32));
5926    let mut x80: u32 = 0;
5927    let mut x81: FpU1 = 0;
5928    fp_addcarryx_u32(&mut x80, &mut x81, x79, x58, (0x0 as u32));
5929    let mut x82: u32 = 0;
5930    let mut x83: FpU1 = 0;
5931    fp_addcarryx_u32(&mut x82, &mut x83, x81, x60, (0x0 as u32));
5932    let mut x84: u32 = 0;
5933    let mut x85: FpU1 = 0;
5934    fp_addcarryx_u32(&mut x84, &mut x85, x83, x62, (0x0 as u32));
5935    let mut x86: u32 = 0;
5936    let mut x87: FpU1 = 0;
5937    fp_addcarryx_u32(&mut x86, &mut x87, x85, x64, (0x0 as u32));
5938    let mut x88: u32 = 0;
5939    let mut x89: FpU1 = 0;
5940    fp_addcarryx_u32(&mut x88, &mut x89, x87, x66, (0x0 as u32));
5941    let mut x90: u32 = 0;
5942    let mut x91: FpU1 = 0;
5943    fp_addcarryx_u32(&mut x90, &mut x91, x89, x68, (0x0 as u32));
5944    let mut x92: u32 = 0;
5945    let mut x93: u32 = 0;
5946    fp_mulx_u32(&mut x92, &mut x93, x70, 0xffffffff);
5947    let mut x94: u32 = 0;
5948    let mut x95: u32 = 0;
5949    fp_mulx_u32(&mut x94, &mut x95, x92, 0x1ae3a46);
5950    let mut x96: u32 = 0;
5951    let mut x97: u32 = 0;
5952    fp_mulx_u32(&mut x96, &mut x97, x92, 0x17c510ea);
5953    let mut x98: u32 = 0;
5954    let mut x99: u32 = 0;
5955    fp_mulx_u32(&mut x98, &mut x99, x92, 0xc63b05c0);
5956    let mut x100: u32 = 0;
5957    let mut x101: u32 = 0;
5958    fp_mulx_u32(&mut x100, &mut x101, x92, 0x6ca1493b);
5959    let mut x102: u32 = 0;
5960    let mut x103: u32 = 0;
5961    fp_mulx_u32(&mut x102, &mut x103, x92, 0x1a22d9f3);
5962    let mut x104: u32 = 0;
5963    let mut x105: u32 = 0;
5964    fp_mulx_u32(&mut x104, &mut x105, x92, 0xf5138f);
5965    let mut x106: u32 = 0;
5966    let mut x107: u32 = 0;
5967    fp_mulx_u32(&mut x106, &mut x107, x92, 0x1ef3622f);
5968    let mut x108: u32 = 0;
5969    let mut x109: u32 = 0;
5970    fp_mulx_u32(&mut x108, &mut x109, x92, 0xba094800);
5971    let mut x110: u32 = 0;
5972    let mut x111: u32 = 0;
5973    fp_mulx_u32(&mut x110, &mut x111, x92, 0x170b5d44);
5974    let mut x112: u32 = 0;
5975    let mut x113: u32 = 0;
5976    fp_mulx_u32(&mut x112, &mut x113, x92, 0x30000000);
5977    let mut x114: u32 = 0;
5978    let mut x115: u32 = 0;
5979    fp_mulx_u32(&mut x114, &mut x115, x92, 0x8508c000);
5980    let mut x116: u32 = 0;
5981    let mut x117: FpU1 = 0;
5982    fp_addcarryx_u32(&mut x116, &mut x117, 0x0, x115, x112);
5983    let mut x118: u32 = 0;
5984    let mut x119: FpU1 = 0;
5985    fp_addcarryx_u32(&mut x118, &mut x119, x117, x113, x110);
5986    let mut x120: u32 = 0;
5987    let mut x121: FpU1 = 0;
5988    fp_addcarryx_u32(&mut x120, &mut x121, x119, x111, x108);
5989    let mut x122: u32 = 0;
5990    let mut x123: FpU1 = 0;
5991    fp_addcarryx_u32(&mut x122, &mut x123, x121, x109, x106);
5992    let mut x124: u32 = 0;
5993    let mut x125: FpU1 = 0;
5994    fp_addcarryx_u32(&mut x124, &mut x125, x123, x107, x104);
5995    let mut x126: u32 = 0;
5996    let mut x127: FpU1 = 0;
5997    fp_addcarryx_u32(&mut x126, &mut x127, x125, x105, x102);
5998    let mut x128: u32 = 0;
5999    let mut x129: FpU1 = 0;
6000    fp_addcarryx_u32(&mut x128, &mut x129, x127, x103, x100);
6001    let mut x130: u32 = 0;
6002    let mut x131: FpU1 = 0;
6003    fp_addcarryx_u32(&mut x130, &mut x131, x129, x101, x98);
6004    let mut x132: u32 = 0;
6005    let mut x133: FpU1 = 0;
6006    fp_addcarryx_u32(&mut x132, &mut x133, x131, x99, x96);
6007    let mut x134: u32 = 0;
6008    let mut x135: FpU1 = 0;
6009    fp_addcarryx_u32(&mut x134, &mut x135, x133, x97, x94);
6010    let mut x136: u32 = 0;
6011    let mut x137: FpU1 = 0;
6012    fp_addcarryx_u32(&mut x136, &mut x137, 0x0, x70, x92);
6013    let mut x138: u32 = 0;
6014    let mut x139: FpU1 = 0;
6015    fp_addcarryx_u32(&mut x138, &mut x139, x137, x72, x114);
6016    let mut x140: u32 = 0;
6017    let mut x141: FpU1 = 0;
6018    fp_addcarryx_u32(&mut x140, &mut x141, x139, x74, x116);
6019    let mut x142: u32 = 0;
6020    let mut x143: FpU1 = 0;
6021    fp_addcarryx_u32(&mut x142, &mut x143, x141, x76, x118);
6022    let mut x144: u32 = 0;
6023    let mut x145: FpU1 = 0;
6024    fp_addcarryx_u32(&mut x144, &mut x145, x143, x78, x120);
6025    let mut x146: u32 = 0;
6026    let mut x147: FpU1 = 0;
6027    fp_addcarryx_u32(&mut x146, &mut x147, x145, x80, x122);
6028    let mut x148: u32 = 0;
6029    let mut x149: FpU1 = 0;
6030    fp_addcarryx_u32(&mut x148, &mut x149, x147, x82, x124);
6031    let mut x150: u32 = 0;
6032    let mut x151: FpU1 = 0;
6033    fp_addcarryx_u32(&mut x150, &mut x151, x149, x84, x126);
6034    let mut x152: u32 = 0;
6035    let mut x153: FpU1 = 0;
6036    fp_addcarryx_u32(&mut x152, &mut x153, x151, x86, x128);
6037    let mut x154: u32 = 0;
6038    let mut x155: FpU1 = 0;
6039    fp_addcarryx_u32(&mut x154, &mut x155, x153, x88, x130);
6040    let mut x156: u32 = 0;
6041    let mut x157: FpU1 = 0;
6042    fp_addcarryx_u32(&mut x156, &mut x157, x155, x90, x132);
6043    let mut x158: u32 = 0;
6044    let mut x159: FpU1 = 0;
6045    fp_addcarryx_u32(
6046        &mut x158,
6047        &mut x159,
6048        x157,
6049        ((x91 as u32) + ((x69 as u32) + ((x45 as u32) + x5))),
6050        x134,
6051    );
6052    let mut x160: u32 = 0;
6053    let mut x161: FpU1 = 0;
6054    fp_addcarryx_u32(&mut x160, &mut x161, 0x0, x138, (arg1[2]));
6055    let mut x162: u32 = 0;
6056    let mut x163: FpU1 = 0;
6057    fp_addcarryx_u32(&mut x162, &mut x163, x161, x140, (0x0 as u32));
6058    let mut x164: u32 = 0;
6059    let mut x165: FpU1 = 0;
6060    fp_addcarryx_u32(&mut x164, &mut x165, x163, x142, (0x0 as u32));
6061    let mut x166: u32 = 0;
6062    let mut x167: FpU1 = 0;
6063    fp_addcarryx_u32(&mut x166, &mut x167, x165, x144, (0x0 as u32));
6064    let mut x168: u32 = 0;
6065    let mut x169: FpU1 = 0;
6066    fp_addcarryx_u32(&mut x168, &mut x169, x167, x146, (0x0 as u32));
6067    let mut x170: u32 = 0;
6068    let mut x171: FpU1 = 0;
6069    fp_addcarryx_u32(&mut x170, &mut x171, x169, x148, (0x0 as u32));
6070    let mut x172: u32 = 0;
6071    let mut x173: FpU1 = 0;
6072    fp_addcarryx_u32(&mut x172, &mut x173, x171, x150, (0x0 as u32));
6073    let mut x174: u32 = 0;
6074    let mut x175: FpU1 = 0;
6075    fp_addcarryx_u32(&mut x174, &mut x175, x173, x152, (0x0 as u32));
6076    let mut x176: u32 = 0;
6077    let mut x177: FpU1 = 0;
6078    fp_addcarryx_u32(&mut x176, &mut x177, x175, x154, (0x0 as u32));
6079    let mut x178: u32 = 0;
6080    let mut x179: FpU1 = 0;
6081    fp_addcarryx_u32(&mut x178, &mut x179, x177, x156, (0x0 as u32));
6082    let mut x180: u32 = 0;
6083    let mut x181: FpU1 = 0;
6084    fp_addcarryx_u32(&mut x180, &mut x181, x179, x158, (0x0 as u32));
6085    let mut x182: u32 = 0;
6086    let mut x183: u32 = 0;
6087    fp_mulx_u32(&mut x182, &mut x183, x160, 0xffffffff);
6088    let mut x184: u32 = 0;
6089    let mut x185: u32 = 0;
6090    fp_mulx_u32(&mut x184, &mut x185, x182, 0x1ae3a46);
6091    let mut x186: u32 = 0;
6092    let mut x187: u32 = 0;
6093    fp_mulx_u32(&mut x186, &mut x187, x182, 0x17c510ea);
6094    let mut x188: u32 = 0;
6095    let mut x189: u32 = 0;
6096    fp_mulx_u32(&mut x188, &mut x189, x182, 0xc63b05c0);
6097    let mut x190: u32 = 0;
6098    let mut x191: u32 = 0;
6099    fp_mulx_u32(&mut x190, &mut x191, x182, 0x6ca1493b);
6100    let mut x192: u32 = 0;
6101    let mut x193: u32 = 0;
6102    fp_mulx_u32(&mut x192, &mut x193, x182, 0x1a22d9f3);
6103    let mut x194: u32 = 0;
6104    let mut x195: u32 = 0;
6105    fp_mulx_u32(&mut x194, &mut x195, x182, 0xf5138f);
6106    let mut x196: u32 = 0;
6107    let mut x197: u32 = 0;
6108    fp_mulx_u32(&mut x196, &mut x197, x182, 0x1ef3622f);
6109    let mut x198: u32 = 0;
6110    let mut x199: u32 = 0;
6111    fp_mulx_u32(&mut x198, &mut x199, x182, 0xba094800);
6112    let mut x200: u32 = 0;
6113    let mut x201: u32 = 0;
6114    fp_mulx_u32(&mut x200, &mut x201, x182, 0x170b5d44);
6115    let mut x202: u32 = 0;
6116    let mut x203: u32 = 0;
6117    fp_mulx_u32(&mut x202, &mut x203, x182, 0x30000000);
6118    let mut x204: u32 = 0;
6119    let mut x205: u32 = 0;
6120    fp_mulx_u32(&mut x204, &mut x205, x182, 0x8508c000);
6121    let mut x206: u32 = 0;
6122    let mut x207: FpU1 = 0;
6123    fp_addcarryx_u32(&mut x206, &mut x207, 0x0, x205, x202);
6124    let mut x208: u32 = 0;
6125    let mut x209: FpU1 = 0;
6126    fp_addcarryx_u32(&mut x208, &mut x209, x207, x203, x200);
6127    let mut x210: u32 = 0;
6128    let mut x211: FpU1 = 0;
6129    fp_addcarryx_u32(&mut x210, &mut x211, x209, x201, x198);
6130    let mut x212: u32 = 0;
6131    let mut x213: FpU1 = 0;
6132    fp_addcarryx_u32(&mut x212, &mut x213, x211, x199, x196);
6133    let mut x214: u32 = 0;
6134    let mut x215: FpU1 = 0;
6135    fp_addcarryx_u32(&mut x214, &mut x215, x213, x197, x194);
6136    let mut x216: u32 = 0;
6137    let mut x217: FpU1 = 0;
6138    fp_addcarryx_u32(&mut x216, &mut x217, x215, x195, x192);
6139    let mut x218: u32 = 0;
6140    let mut x219: FpU1 = 0;
6141    fp_addcarryx_u32(&mut x218, &mut x219, x217, x193, x190);
6142    let mut x220: u32 = 0;
6143    let mut x221: FpU1 = 0;
6144    fp_addcarryx_u32(&mut x220, &mut x221, x219, x191, x188);
6145    let mut x222: u32 = 0;
6146    let mut x223: FpU1 = 0;
6147    fp_addcarryx_u32(&mut x222, &mut x223, x221, x189, x186);
6148    let mut x224: u32 = 0;
6149    let mut x225: FpU1 = 0;
6150    fp_addcarryx_u32(&mut x224, &mut x225, x223, x187, x184);
6151    let mut x226: u32 = 0;
6152    let mut x227: FpU1 = 0;
6153    fp_addcarryx_u32(&mut x226, &mut x227, 0x0, x160, x182);
6154    let mut x228: u32 = 0;
6155    let mut x229: FpU1 = 0;
6156    fp_addcarryx_u32(&mut x228, &mut x229, x227, x162, x204);
6157    let mut x230: u32 = 0;
6158    let mut x231: FpU1 = 0;
6159    fp_addcarryx_u32(&mut x230, &mut x231, x229, x164, x206);
6160    let mut x232: u32 = 0;
6161    let mut x233: FpU1 = 0;
6162    fp_addcarryx_u32(&mut x232, &mut x233, x231, x166, x208);
6163    let mut x234: u32 = 0;
6164    let mut x235: FpU1 = 0;
6165    fp_addcarryx_u32(&mut x234, &mut x235, x233, x168, x210);
6166    let mut x236: u32 = 0;
6167    let mut x237: FpU1 = 0;
6168    fp_addcarryx_u32(&mut x236, &mut x237, x235, x170, x212);
6169    let mut x238: u32 = 0;
6170    let mut x239: FpU1 = 0;
6171    fp_addcarryx_u32(&mut x238, &mut x239, x237, x172, x214);
6172    let mut x240: u32 = 0;
6173    let mut x241: FpU1 = 0;
6174    fp_addcarryx_u32(&mut x240, &mut x241, x239, x174, x216);
6175    let mut x242: u32 = 0;
6176    let mut x243: FpU1 = 0;
6177    fp_addcarryx_u32(&mut x242, &mut x243, x241, x176, x218);
6178    let mut x244: u32 = 0;
6179    let mut x245: FpU1 = 0;
6180    fp_addcarryx_u32(&mut x244, &mut x245, x243, x178, x220);
6181    let mut x246: u32 = 0;
6182    let mut x247: FpU1 = 0;
6183    fp_addcarryx_u32(&mut x246, &mut x247, x245, x180, x222);
6184    let mut x248: u32 = 0;
6185    let mut x249: FpU1 = 0;
6186    fp_addcarryx_u32(
6187        &mut x248,
6188        &mut x249,
6189        x247,
6190        ((x181 as u32) + ((x159 as u32) + ((x135 as u32) + x95))),
6191        x224,
6192    );
6193    let mut x250: u32 = 0;
6194    let mut x251: FpU1 = 0;
6195    fp_addcarryx_u32(&mut x250, &mut x251, 0x0, x228, (arg1[3]));
6196    let mut x252: u32 = 0;
6197    let mut x253: FpU1 = 0;
6198    fp_addcarryx_u32(&mut x252, &mut x253, x251, x230, (0x0 as u32));
6199    let mut x254: u32 = 0;
6200    let mut x255: FpU1 = 0;
6201    fp_addcarryx_u32(&mut x254, &mut x255, x253, x232, (0x0 as u32));
6202    let mut x256: u32 = 0;
6203    let mut x257: FpU1 = 0;
6204    fp_addcarryx_u32(&mut x256, &mut x257, x255, x234, (0x0 as u32));
6205    let mut x258: u32 = 0;
6206    let mut x259: FpU1 = 0;
6207    fp_addcarryx_u32(&mut x258, &mut x259, x257, x236, (0x0 as u32));
6208    let mut x260: u32 = 0;
6209    let mut x261: FpU1 = 0;
6210    fp_addcarryx_u32(&mut x260, &mut x261, x259, x238, (0x0 as u32));
6211    let mut x262: u32 = 0;
6212    let mut x263: FpU1 = 0;
6213    fp_addcarryx_u32(&mut x262, &mut x263, x261, x240, (0x0 as u32));
6214    let mut x264: u32 = 0;
6215    let mut x265: FpU1 = 0;
6216    fp_addcarryx_u32(&mut x264, &mut x265, x263, x242, (0x0 as u32));
6217    let mut x266: u32 = 0;
6218    let mut x267: FpU1 = 0;
6219    fp_addcarryx_u32(&mut x266, &mut x267, x265, x244, (0x0 as u32));
6220    let mut x268: u32 = 0;
6221    let mut x269: FpU1 = 0;
6222    fp_addcarryx_u32(&mut x268, &mut x269, x267, x246, (0x0 as u32));
6223    let mut x270: u32 = 0;
6224    let mut x271: FpU1 = 0;
6225    fp_addcarryx_u32(&mut x270, &mut x271, x269, x248, (0x0 as u32));
6226    let mut x272: u32 = 0;
6227    let mut x273: u32 = 0;
6228    fp_mulx_u32(&mut x272, &mut x273, x250, 0xffffffff);
6229    let mut x274: u32 = 0;
6230    let mut x275: u32 = 0;
6231    fp_mulx_u32(&mut x274, &mut x275, x272, 0x1ae3a46);
6232    let mut x276: u32 = 0;
6233    let mut x277: u32 = 0;
6234    fp_mulx_u32(&mut x276, &mut x277, x272, 0x17c510ea);
6235    let mut x278: u32 = 0;
6236    let mut x279: u32 = 0;
6237    fp_mulx_u32(&mut x278, &mut x279, x272, 0xc63b05c0);
6238    let mut x280: u32 = 0;
6239    let mut x281: u32 = 0;
6240    fp_mulx_u32(&mut x280, &mut x281, x272, 0x6ca1493b);
6241    let mut x282: u32 = 0;
6242    let mut x283: u32 = 0;
6243    fp_mulx_u32(&mut x282, &mut x283, x272, 0x1a22d9f3);
6244    let mut x284: u32 = 0;
6245    let mut x285: u32 = 0;
6246    fp_mulx_u32(&mut x284, &mut x285, x272, 0xf5138f);
6247    let mut x286: u32 = 0;
6248    let mut x287: u32 = 0;
6249    fp_mulx_u32(&mut x286, &mut x287, x272, 0x1ef3622f);
6250    let mut x288: u32 = 0;
6251    let mut x289: u32 = 0;
6252    fp_mulx_u32(&mut x288, &mut x289, x272, 0xba094800);
6253    let mut x290: u32 = 0;
6254    let mut x291: u32 = 0;
6255    fp_mulx_u32(&mut x290, &mut x291, x272, 0x170b5d44);
6256    let mut x292: u32 = 0;
6257    let mut x293: u32 = 0;
6258    fp_mulx_u32(&mut x292, &mut x293, x272, 0x30000000);
6259    let mut x294: u32 = 0;
6260    let mut x295: u32 = 0;
6261    fp_mulx_u32(&mut x294, &mut x295, x272, 0x8508c000);
6262    let mut x296: u32 = 0;
6263    let mut x297: FpU1 = 0;
6264    fp_addcarryx_u32(&mut x296, &mut x297, 0x0, x295, x292);
6265    let mut x298: u32 = 0;
6266    let mut x299: FpU1 = 0;
6267    fp_addcarryx_u32(&mut x298, &mut x299, x297, x293, x290);
6268    let mut x300: u32 = 0;
6269    let mut x301: FpU1 = 0;
6270    fp_addcarryx_u32(&mut x300, &mut x301, x299, x291, x288);
6271    let mut x302: u32 = 0;
6272    let mut x303: FpU1 = 0;
6273    fp_addcarryx_u32(&mut x302, &mut x303, x301, x289, x286);
6274    let mut x304: u32 = 0;
6275    let mut x305: FpU1 = 0;
6276    fp_addcarryx_u32(&mut x304, &mut x305, x303, x287, x284);
6277    let mut x306: u32 = 0;
6278    let mut x307: FpU1 = 0;
6279    fp_addcarryx_u32(&mut x306, &mut x307, x305, x285, x282);
6280    let mut x308: u32 = 0;
6281    let mut x309: FpU1 = 0;
6282    fp_addcarryx_u32(&mut x308, &mut x309, x307, x283, x280);
6283    let mut x310: u32 = 0;
6284    let mut x311: FpU1 = 0;
6285    fp_addcarryx_u32(&mut x310, &mut x311, x309, x281, x278);
6286    let mut x312: u32 = 0;
6287    let mut x313: FpU1 = 0;
6288    fp_addcarryx_u32(&mut x312, &mut x313, x311, x279, x276);
6289    let mut x314: u32 = 0;
6290    let mut x315: FpU1 = 0;
6291    fp_addcarryx_u32(&mut x314, &mut x315, x313, x277, x274);
6292    let mut x316: u32 = 0;
6293    let mut x317: FpU1 = 0;
6294    fp_addcarryx_u32(&mut x316, &mut x317, 0x0, x250, x272);
6295    let mut x318: u32 = 0;
6296    let mut x319: FpU1 = 0;
6297    fp_addcarryx_u32(&mut x318, &mut x319, x317, x252, x294);
6298    let mut x320: u32 = 0;
6299    let mut x321: FpU1 = 0;
6300    fp_addcarryx_u32(&mut x320, &mut x321, x319, x254, x296);
6301    let mut x322: u32 = 0;
6302    let mut x323: FpU1 = 0;
6303    fp_addcarryx_u32(&mut x322, &mut x323, x321, x256, x298);
6304    let mut x324: u32 = 0;
6305    let mut x325: FpU1 = 0;
6306    fp_addcarryx_u32(&mut x324, &mut x325, x323, x258, x300);
6307    let mut x326: u32 = 0;
6308    let mut x327: FpU1 = 0;
6309    fp_addcarryx_u32(&mut x326, &mut x327, x325, x260, x302);
6310    let mut x328: u32 = 0;
6311    let mut x329: FpU1 = 0;
6312    fp_addcarryx_u32(&mut x328, &mut x329, x327, x262, x304);
6313    let mut x330: u32 = 0;
6314    let mut x331: FpU1 = 0;
6315    fp_addcarryx_u32(&mut x330, &mut x331, x329, x264, x306);
6316    let mut x332: u32 = 0;
6317    let mut x333: FpU1 = 0;
6318    fp_addcarryx_u32(&mut x332, &mut x333, x331, x266, x308);
6319    let mut x334: u32 = 0;
6320    let mut x335: FpU1 = 0;
6321    fp_addcarryx_u32(&mut x334, &mut x335, x333, x268, x310);
6322    let mut x336: u32 = 0;
6323    let mut x337: FpU1 = 0;
6324    fp_addcarryx_u32(&mut x336, &mut x337, x335, x270, x312);
6325    let mut x338: u32 = 0;
6326    let mut x339: FpU1 = 0;
6327    fp_addcarryx_u32(
6328        &mut x338,
6329        &mut x339,
6330        x337,
6331        ((x271 as u32) + ((x249 as u32) + ((x225 as u32) + x185))),
6332        x314,
6333    );
6334    let mut x340: u32 = 0;
6335    let mut x341: FpU1 = 0;
6336    fp_addcarryx_u32(&mut x340, &mut x341, 0x0, x318, (arg1[4]));
6337    let mut x342: u32 = 0;
6338    let mut x343: FpU1 = 0;
6339    fp_addcarryx_u32(&mut x342, &mut x343, x341, x320, (0x0 as u32));
6340    let mut x344: u32 = 0;
6341    let mut x345: FpU1 = 0;
6342    fp_addcarryx_u32(&mut x344, &mut x345, x343, x322, (0x0 as u32));
6343    let mut x346: u32 = 0;
6344    let mut x347: FpU1 = 0;
6345    fp_addcarryx_u32(&mut x346, &mut x347, x345, x324, (0x0 as u32));
6346    let mut x348: u32 = 0;
6347    let mut x349: FpU1 = 0;
6348    fp_addcarryx_u32(&mut x348, &mut x349, x347, x326, (0x0 as u32));
6349    let mut x350: u32 = 0;
6350    let mut x351: FpU1 = 0;
6351    fp_addcarryx_u32(&mut x350, &mut x351, x349, x328, (0x0 as u32));
6352    let mut x352: u32 = 0;
6353    let mut x353: FpU1 = 0;
6354    fp_addcarryx_u32(&mut x352, &mut x353, x351, x330, (0x0 as u32));
6355    let mut x354: u32 = 0;
6356    let mut x355: FpU1 = 0;
6357    fp_addcarryx_u32(&mut x354, &mut x355, x353, x332, (0x0 as u32));
6358    let mut x356: u32 = 0;
6359    let mut x357: FpU1 = 0;
6360    fp_addcarryx_u32(&mut x356, &mut x357, x355, x334, (0x0 as u32));
6361    let mut x358: u32 = 0;
6362    let mut x359: FpU1 = 0;
6363    fp_addcarryx_u32(&mut x358, &mut x359, x357, x336, (0x0 as u32));
6364    let mut x360: u32 = 0;
6365    let mut x361: FpU1 = 0;
6366    fp_addcarryx_u32(&mut x360, &mut x361, x359, x338, (0x0 as u32));
6367    let mut x362: u32 = 0;
6368    let mut x363: u32 = 0;
6369    fp_mulx_u32(&mut x362, &mut x363, x340, 0xffffffff);
6370    let mut x364: u32 = 0;
6371    let mut x365: u32 = 0;
6372    fp_mulx_u32(&mut x364, &mut x365, x362, 0x1ae3a46);
6373    let mut x366: u32 = 0;
6374    let mut x367: u32 = 0;
6375    fp_mulx_u32(&mut x366, &mut x367, x362, 0x17c510ea);
6376    let mut x368: u32 = 0;
6377    let mut x369: u32 = 0;
6378    fp_mulx_u32(&mut x368, &mut x369, x362, 0xc63b05c0);
6379    let mut x370: u32 = 0;
6380    let mut x371: u32 = 0;
6381    fp_mulx_u32(&mut x370, &mut x371, x362, 0x6ca1493b);
6382    let mut x372: u32 = 0;
6383    let mut x373: u32 = 0;
6384    fp_mulx_u32(&mut x372, &mut x373, x362, 0x1a22d9f3);
6385    let mut x374: u32 = 0;
6386    let mut x375: u32 = 0;
6387    fp_mulx_u32(&mut x374, &mut x375, x362, 0xf5138f);
6388    let mut x376: u32 = 0;
6389    let mut x377: u32 = 0;
6390    fp_mulx_u32(&mut x376, &mut x377, x362, 0x1ef3622f);
6391    let mut x378: u32 = 0;
6392    let mut x379: u32 = 0;
6393    fp_mulx_u32(&mut x378, &mut x379, x362, 0xba094800);
6394    let mut x380: u32 = 0;
6395    let mut x381: u32 = 0;
6396    fp_mulx_u32(&mut x380, &mut x381, x362, 0x170b5d44);
6397    let mut x382: u32 = 0;
6398    let mut x383: u32 = 0;
6399    fp_mulx_u32(&mut x382, &mut x383, x362, 0x30000000);
6400    let mut x384: u32 = 0;
6401    let mut x385: u32 = 0;
6402    fp_mulx_u32(&mut x384, &mut x385, x362, 0x8508c000);
6403    let mut x386: u32 = 0;
6404    let mut x387: FpU1 = 0;
6405    fp_addcarryx_u32(&mut x386, &mut x387, 0x0, x385, x382);
6406    let mut x388: u32 = 0;
6407    let mut x389: FpU1 = 0;
6408    fp_addcarryx_u32(&mut x388, &mut x389, x387, x383, x380);
6409    let mut x390: u32 = 0;
6410    let mut x391: FpU1 = 0;
6411    fp_addcarryx_u32(&mut x390, &mut x391, x389, x381, x378);
6412    let mut x392: u32 = 0;
6413    let mut x393: FpU1 = 0;
6414    fp_addcarryx_u32(&mut x392, &mut x393, x391, x379, x376);
6415    let mut x394: u32 = 0;
6416    let mut x395: FpU1 = 0;
6417    fp_addcarryx_u32(&mut x394, &mut x395, x393, x377, x374);
6418    let mut x396: u32 = 0;
6419    let mut x397: FpU1 = 0;
6420    fp_addcarryx_u32(&mut x396, &mut x397, x395, x375, x372);
6421    let mut x398: u32 = 0;
6422    let mut x399: FpU1 = 0;
6423    fp_addcarryx_u32(&mut x398, &mut x399, x397, x373, x370);
6424    let mut x400: u32 = 0;
6425    let mut x401: FpU1 = 0;
6426    fp_addcarryx_u32(&mut x400, &mut x401, x399, x371, x368);
6427    let mut x402: u32 = 0;
6428    let mut x403: FpU1 = 0;
6429    fp_addcarryx_u32(&mut x402, &mut x403, x401, x369, x366);
6430    let mut x404: u32 = 0;
6431    let mut x405: FpU1 = 0;
6432    fp_addcarryx_u32(&mut x404, &mut x405, x403, x367, x364);
6433    let mut x406: u32 = 0;
6434    let mut x407: FpU1 = 0;
6435    fp_addcarryx_u32(&mut x406, &mut x407, 0x0, x340, x362);
6436    let mut x408: u32 = 0;
6437    let mut x409: FpU1 = 0;
6438    fp_addcarryx_u32(&mut x408, &mut x409, x407, x342, x384);
6439    let mut x410: u32 = 0;
6440    let mut x411: FpU1 = 0;
6441    fp_addcarryx_u32(&mut x410, &mut x411, x409, x344, x386);
6442    let mut x412: u32 = 0;
6443    let mut x413: FpU1 = 0;
6444    fp_addcarryx_u32(&mut x412, &mut x413, x411, x346, x388);
6445    let mut x414: u32 = 0;
6446    let mut x415: FpU1 = 0;
6447    fp_addcarryx_u32(&mut x414, &mut x415, x413, x348, x390);
6448    let mut x416: u32 = 0;
6449    let mut x417: FpU1 = 0;
6450    fp_addcarryx_u32(&mut x416, &mut x417, x415, x350, x392);
6451    let mut x418: u32 = 0;
6452    let mut x419: FpU1 = 0;
6453    fp_addcarryx_u32(&mut x418, &mut x419, x417, x352, x394);
6454    let mut x420: u32 = 0;
6455    let mut x421: FpU1 = 0;
6456    fp_addcarryx_u32(&mut x420, &mut x421, x419, x354, x396);
6457    let mut x422: u32 = 0;
6458    let mut x423: FpU1 = 0;
6459    fp_addcarryx_u32(&mut x422, &mut x423, x421, x356, x398);
6460    let mut x424: u32 = 0;
6461    let mut x425: FpU1 = 0;
6462    fp_addcarryx_u32(&mut x424, &mut x425, x423, x358, x400);
6463    let mut x426: u32 = 0;
6464    let mut x427: FpU1 = 0;
6465    fp_addcarryx_u32(&mut x426, &mut x427, x425, x360, x402);
6466    let mut x428: u32 = 0;
6467    let mut x429: FpU1 = 0;
6468    fp_addcarryx_u32(
6469        &mut x428,
6470        &mut x429,
6471        x427,
6472        ((x361 as u32) + ((x339 as u32) + ((x315 as u32) + x275))),
6473        x404,
6474    );
6475    let mut x430: u32 = 0;
6476    let mut x431: FpU1 = 0;
6477    fp_addcarryx_u32(&mut x430, &mut x431, 0x0, x408, (arg1[5]));
6478    let mut x432: u32 = 0;
6479    let mut x433: FpU1 = 0;
6480    fp_addcarryx_u32(&mut x432, &mut x433, x431, x410, (0x0 as u32));
6481    let mut x434: u32 = 0;
6482    let mut x435: FpU1 = 0;
6483    fp_addcarryx_u32(&mut x434, &mut x435, x433, x412, (0x0 as u32));
6484    let mut x436: u32 = 0;
6485    let mut x437: FpU1 = 0;
6486    fp_addcarryx_u32(&mut x436, &mut x437, x435, x414, (0x0 as u32));
6487    let mut x438: u32 = 0;
6488    let mut x439: FpU1 = 0;
6489    fp_addcarryx_u32(&mut x438, &mut x439, x437, x416, (0x0 as u32));
6490    let mut x440: u32 = 0;
6491    let mut x441: FpU1 = 0;
6492    fp_addcarryx_u32(&mut x440, &mut x441, x439, x418, (0x0 as u32));
6493    let mut x442: u32 = 0;
6494    let mut x443: FpU1 = 0;
6495    fp_addcarryx_u32(&mut x442, &mut x443, x441, x420, (0x0 as u32));
6496    let mut x444: u32 = 0;
6497    let mut x445: FpU1 = 0;
6498    fp_addcarryx_u32(&mut x444, &mut x445, x443, x422, (0x0 as u32));
6499    let mut x446: u32 = 0;
6500    let mut x447: FpU1 = 0;
6501    fp_addcarryx_u32(&mut x446, &mut x447, x445, x424, (0x0 as u32));
6502    let mut x448: u32 = 0;
6503    let mut x449: FpU1 = 0;
6504    fp_addcarryx_u32(&mut x448, &mut x449, x447, x426, (0x0 as u32));
6505    let mut x450: u32 = 0;
6506    let mut x451: FpU1 = 0;
6507    fp_addcarryx_u32(&mut x450, &mut x451, x449, x428, (0x0 as u32));
6508    let mut x452: u32 = 0;
6509    let mut x453: u32 = 0;
6510    fp_mulx_u32(&mut x452, &mut x453, x430, 0xffffffff);
6511    let mut x454: u32 = 0;
6512    let mut x455: u32 = 0;
6513    fp_mulx_u32(&mut x454, &mut x455, x452, 0x1ae3a46);
6514    let mut x456: u32 = 0;
6515    let mut x457: u32 = 0;
6516    fp_mulx_u32(&mut x456, &mut x457, x452, 0x17c510ea);
6517    let mut x458: u32 = 0;
6518    let mut x459: u32 = 0;
6519    fp_mulx_u32(&mut x458, &mut x459, x452, 0xc63b05c0);
6520    let mut x460: u32 = 0;
6521    let mut x461: u32 = 0;
6522    fp_mulx_u32(&mut x460, &mut x461, x452, 0x6ca1493b);
6523    let mut x462: u32 = 0;
6524    let mut x463: u32 = 0;
6525    fp_mulx_u32(&mut x462, &mut x463, x452, 0x1a22d9f3);
6526    let mut x464: u32 = 0;
6527    let mut x465: u32 = 0;
6528    fp_mulx_u32(&mut x464, &mut x465, x452, 0xf5138f);
6529    let mut x466: u32 = 0;
6530    let mut x467: u32 = 0;
6531    fp_mulx_u32(&mut x466, &mut x467, x452, 0x1ef3622f);
6532    let mut x468: u32 = 0;
6533    let mut x469: u32 = 0;
6534    fp_mulx_u32(&mut x468, &mut x469, x452, 0xba094800);
6535    let mut x470: u32 = 0;
6536    let mut x471: u32 = 0;
6537    fp_mulx_u32(&mut x470, &mut x471, x452, 0x170b5d44);
6538    let mut x472: u32 = 0;
6539    let mut x473: u32 = 0;
6540    fp_mulx_u32(&mut x472, &mut x473, x452, 0x30000000);
6541    let mut x474: u32 = 0;
6542    let mut x475: u32 = 0;
6543    fp_mulx_u32(&mut x474, &mut x475, x452, 0x8508c000);
6544    let mut x476: u32 = 0;
6545    let mut x477: FpU1 = 0;
6546    fp_addcarryx_u32(&mut x476, &mut x477, 0x0, x475, x472);
6547    let mut x478: u32 = 0;
6548    let mut x479: FpU1 = 0;
6549    fp_addcarryx_u32(&mut x478, &mut x479, x477, x473, x470);
6550    let mut x480: u32 = 0;
6551    let mut x481: FpU1 = 0;
6552    fp_addcarryx_u32(&mut x480, &mut x481, x479, x471, x468);
6553    let mut x482: u32 = 0;
6554    let mut x483: FpU1 = 0;
6555    fp_addcarryx_u32(&mut x482, &mut x483, x481, x469, x466);
6556    let mut x484: u32 = 0;
6557    let mut x485: FpU1 = 0;
6558    fp_addcarryx_u32(&mut x484, &mut x485, x483, x467, x464);
6559    let mut x486: u32 = 0;
6560    let mut x487: FpU1 = 0;
6561    fp_addcarryx_u32(&mut x486, &mut x487, x485, x465, x462);
6562    let mut x488: u32 = 0;
6563    let mut x489: FpU1 = 0;
6564    fp_addcarryx_u32(&mut x488, &mut x489, x487, x463, x460);
6565    let mut x490: u32 = 0;
6566    let mut x491: FpU1 = 0;
6567    fp_addcarryx_u32(&mut x490, &mut x491, x489, x461, x458);
6568    let mut x492: u32 = 0;
6569    let mut x493: FpU1 = 0;
6570    fp_addcarryx_u32(&mut x492, &mut x493, x491, x459, x456);
6571    let mut x494: u32 = 0;
6572    let mut x495: FpU1 = 0;
6573    fp_addcarryx_u32(&mut x494, &mut x495, x493, x457, x454);
6574    let mut x496: u32 = 0;
6575    let mut x497: FpU1 = 0;
6576    fp_addcarryx_u32(&mut x496, &mut x497, 0x0, x430, x452);
6577    let mut x498: u32 = 0;
6578    let mut x499: FpU1 = 0;
6579    fp_addcarryx_u32(&mut x498, &mut x499, x497, x432, x474);
6580    let mut x500: u32 = 0;
6581    let mut x501: FpU1 = 0;
6582    fp_addcarryx_u32(&mut x500, &mut x501, x499, x434, x476);
6583    let mut x502: u32 = 0;
6584    let mut x503: FpU1 = 0;
6585    fp_addcarryx_u32(&mut x502, &mut x503, x501, x436, x478);
6586    let mut x504: u32 = 0;
6587    let mut x505: FpU1 = 0;
6588    fp_addcarryx_u32(&mut x504, &mut x505, x503, x438, x480);
6589    let mut x506: u32 = 0;
6590    let mut x507: FpU1 = 0;
6591    fp_addcarryx_u32(&mut x506, &mut x507, x505, x440, x482);
6592    let mut x508: u32 = 0;
6593    let mut x509: FpU1 = 0;
6594    fp_addcarryx_u32(&mut x508, &mut x509, x507, x442, x484);
6595    let mut x510: u32 = 0;
6596    let mut x511: FpU1 = 0;
6597    fp_addcarryx_u32(&mut x510, &mut x511, x509, x444, x486);
6598    let mut x512: u32 = 0;
6599    let mut x513: FpU1 = 0;
6600    fp_addcarryx_u32(&mut x512, &mut x513, x511, x446, x488);
6601    let mut x514: u32 = 0;
6602    let mut x515: FpU1 = 0;
6603    fp_addcarryx_u32(&mut x514, &mut x515, x513, x448, x490);
6604    let mut x516: u32 = 0;
6605    let mut x517: FpU1 = 0;
6606    fp_addcarryx_u32(&mut x516, &mut x517, x515, x450, x492);
6607    let mut x518: u32 = 0;
6608    let mut x519: FpU1 = 0;
6609    fp_addcarryx_u32(
6610        &mut x518,
6611        &mut x519,
6612        x517,
6613        ((x451 as u32) + ((x429 as u32) + ((x405 as u32) + x365))),
6614        x494,
6615    );
6616    let mut x520: u32 = 0;
6617    let mut x521: FpU1 = 0;
6618    fp_addcarryx_u32(&mut x520, &mut x521, 0x0, x498, (arg1[6]));
6619    let mut x522: u32 = 0;
6620    let mut x523: FpU1 = 0;
6621    fp_addcarryx_u32(&mut x522, &mut x523, x521, x500, (0x0 as u32));
6622    let mut x524: u32 = 0;
6623    let mut x525: FpU1 = 0;
6624    fp_addcarryx_u32(&mut x524, &mut x525, x523, x502, (0x0 as u32));
6625    let mut x526: u32 = 0;
6626    let mut x527: FpU1 = 0;
6627    fp_addcarryx_u32(&mut x526, &mut x527, x525, x504, (0x0 as u32));
6628    let mut x528: u32 = 0;
6629    let mut x529: FpU1 = 0;
6630    fp_addcarryx_u32(&mut x528, &mut x529, x527, x506, (0x0 as u32));
6631    let mut x530: u32 = 0;
6632    let mut x531: FpU1 = 0;
6633    fp_addcarryx_u32(&mut x530, &mut x531, x529, x508, (0x0 as u32));
6634    let mut x532: u32 = 0;
6635    let mut x533: FpU1 = 0;
6636    fp_addcarryx_u32(&mut x532, &mut x533, x531, x510, (0x0 as u32));
6637    let mut x534: u32 = 0;
6638    let mut x535: FpU1 = 0;
6639    fp_addcarryx_u32(&mut x534, &mut x535, x533, x512, (0x0 as u32));
6640    let mut x536: u32 = 0;
6641    let mut x537: FpU1 = 0;
6642    fp_addcarryx_u32(&mut x536, &mut x537, x535, x514, (0x0 as u32));
6643    let mut x538: u32 = 0;
6644    let mut x539: FpU1 = 0;
6645    fp_addcarryx_u32(&mut x538, &mut x539, x537, x516, (0x0 as u32));
6646    let mut x540: u32 = 0;
6647    let mut x541: FpU1 = 0;
6648    fp_addcarryx_u32(&mut x540, &mut x541, x539, x518, (0x0 as u32));
6649    let mut x542: u32 = 0;
6650    let mut x543: u32 = 0;
6651    fp_mulx_u32(&mut x542, &mut x543, x520, 0xffffffff);
6652    let mut x544: u32 = 0;
6653    let mut x545: u32 = 0;
6654    fp_mulx_u32(&mut x544, &mut x545, x542, 0x1ae3a46);
6655    let mut x546: u32 = 0;
6656    let mut x547: u32 = 0;
6657    fp_mulx_u32(&mut x546, &mut x547, x542, 0x17c510ea);
6658    let mut x548: u32 = 0;
6659    let mut x549: u32 = 0;
6660    fp_mulx_u32(&mut x548, &mut x549, x542, 0xc63b05c0);
6661    let mut x550: u32 = 0;
6662    let mut x551: u32 = 0;
6663    fp_mulx_u32(&mut x550, &mut x551, x542, 0x6ca1493b);
6664    let mut x552: u32 = 0;
6665    let mut x553: u32 = 0;
6666    fp_mulx_u32(&mut x552, &mut x553, x542, 0x1a22d9f3);
6667    let mut x554: u32 = 0;
6668    let mut x555: u32 = 0;
6669    fp_mulx_u32(&mut x554, &mut x555, x542, 0xf5138f);
6670    let mut x556: u32 = 0;
6671    let mut x557: u32 = 0;
6672    fp_mulx_u32(&mut x556, &mut x557, x542, 0x1ef3622f);
6673    let mut x558: u32 = 0;
6674    let mut x559: u32 = 0;
6675    fp_mulx_u32(&mut x558, &mut x559, x542, 0xba094800);
6676    let mut x560: u32 = 0;
6677    let mut x561: u32 = 0;
6678    fp_mulx_u32(&mut x560, &mut x561, x542, 0x170b5d44);
6679    let mut x562: u32 = 0;
6680    let mut x563: u32 = 0;
6681    fp_mulx_u32(&mut x562, &mut x563, x542, 0x30000000);
6682    let mut x564: u32 = 0;
6683    let mut x565: u32 = 0;
6684    fp_mulx_u32(&mut x564, &mut x565, x542, 0x8508c000);
6685    let mut x566: u32 = 0;
6686    let mut x567: FpU1 = 0;
6687    fp_addcarryx_u32(&mut x566, &mut x567, 0x0, x565, x562);
6688    let mut x568: u32 = 0;
6689    let mut x569: FpU1 = 0;
6690    fp_addcarryx_u32(&mut x568, &mut x569, x567, x563, x560);
6691    let mut x570: u32 = 0;
6692    let mut x571: FpU1 = 0;
6693    fp_addcarryx_u32(&mut x570, &mut x571, x569, x561, x558);
6694    let mut x572: u32 = 0;
6695    let mut x573: FpU1 = 0;
6696    fp_addcarryx_u32(&mut x572, &mut x573, x571, x559, x556);
6697    let mut x574: u32 = 0;
6698    let mut x575: FpU1 = 0;
6699    fp_addcarryx_u32(&mut x574, &mut x575, x573, x557, x554);
6700    let mut x576: u32 = 0;
6701    let mut x577: FpU1 = 0;
6702    fp_addcarryx_u32(&mut x576, &mut x577, x575, x555, x552);
6703    let mut x578: u32 = 0;
6704    let mut x579: FpU1 = 0;
6705    fp_addcarryx_u32(&mut x578, &mut x579, x577, x553, x550);
6706    let mut x580: u32 = 0;
6707    let mut x581: FpU1 = 0;
6708    fp_addcarryx_u32(&mut x580, &mut x581, x579, x551, x548);
6709    let mut x582: u32 = 0;
6710    let mut x583: FpU1 = 0;
6711    fp_addcarryx_u32(&mut x582, &mut x583, x581, x549, x546);
6712    let mut x584: u32 = 0;
6713    let mut x585: FpU1 = 0;
6714    fp_addcarryx_u32(&mut x584, &mut x585, x583, x547, x544);
6715    let mut x586: u32 = 0;
6716    let mut x587: FpU1 = 0;
6717    fp_addcarryx_u32(&mut x586, &mut x587, 0x0, x520, x542);
6718    let mut x588: u32 = 0;
6719    let mut x589: FpU1 = 0;
6720    fp_addcarryx_u32(&mut x588, &mut x589, x587, x522, x564);
6721    let mut x590: u32 = 0;
6722    let mut x591: FpU1 = 0;
6723    fp_addcarryx_u32(&mut x590, &mut x591, x589, x524, x566);
6724    let mut x592: u32 = 0;
6725    let mut x593: FpU1 = 0;
6726    fp_addcarryx_u32(&mut x592, &mut x593, x591, x526, x568);
6727    let mut x594: u32 = 0;
6728    let mut x595: FpU1 = 0;
6729    fp_addcarryx_u32(&mut x594, &mut x595, x593, x528, x570);
6730    let mut x596: u32 = 0;
6731    let mut x597: FpU1 = 0;
6732    fp_addcarryx_u32(&mut x596, &mut x597, x595, x530, x572);
6733    let mut x598: u32 = 0;
6734    let mut x599: FpU1 = 0;
6735    fp_addcarryx_u32(&mut x598, &mut x599, x597, x532, x574);
6736    let mut x600: u32 = 0;
6737    let mut x601: FpU1 = 0;
6738    fp_addcarryx_u32(&mut x600, &mut x601, x599, x534, x576);
6739    let mut x602: u32 = 0;
6740    let mut x603: FpU1 = 0;
6741    fp_addcarryx_u32(&mut x602, &mut x603, x601, x536, x578);
6742    let mut x604: u32 = 0;
6743    let mut x605: FpU1 = 0;
6744    fp_addcarryx_u32(&mut x604, &mut x605, x603, x538, x580);
6745    let mut x606: u32 = 0;
6746    let mut x607: FpU1 = 0;
6747    fp_addcarryx_u32(&mut x606, &mut x607, x605, x540, x582);
6748    let mut x608: u32 = 0;
6749    let mut x609: FpU1 = 0;
6750    fp_addcarryx_u32(
6751        &mut x608,
6752        &mut x609,
6753        x607,
6754        ((x541 as u32) + ((x519 as u32) + ((x495 as u32) + x455))),
6755        x584,
6756    );
6757    let mut x610: u32 = 0;
6758    let mut x611: FpU1 = 0;
6759    fp_addcarryx_u32(&mut x610, &mut x611, 0x0, x588, (arg1[7]));
6760    let mut x612: u32 = 0;
6761    let mut x613: FpU1 = 0;
6762    fp_addcarryx_u32(&mut x612, &mut x613, x611, x590, (0x0 as u32));
6763    let mut x614: u32 = 0;
6764    let mut x615: FpU1 = 0;
6765    fp_addcarryx_u32(&mut x614, &mut x615, x613, x592, (0x0 as u32));
6766    let mut x616: u32 = 0;
6767    let mut x617: FpU1 = 0;
6768    fp_addcarryx_u32(&mut x616, &mut x617, x615, x594, (0x0 as u32));
6769    let mut x618: u32 = 0;
6770    let mut x619: FpU1 = 0;
6771    fp_addcarryx_u32(&mut x618, &mut x619, x617, x596, (0x0 as u32));
6772    let mut x620: u32 = 0;
6773    let mut x621: FpU1 = 0;
6774    fp_addcarryx_u32(&mut x620, &mut x621, x619, x598, (0x0 as u32));
6775    let mut x622: u32 = 0;
6776    let mut x623: FpU1 = 0;
6777    fp_addcarryx_u32(&mut x622, &mut x623, x621, x600, (0x0 as u32));
6778    let mut x624: u32 = 0;
6779    let mut x625: FpU1 = 0;
6780    fp_addcarryx_u32(&mut x624, &mut x625, x623, x602, (0x0 as u32));
6781    let mut x626: u32 = 0;
6782    let mut x627: FpU1 = 0;
6783    fp_addcarryx_u32(&mut x626, &mut x627, x625, x604, (0x0 as u32));
6784    let mut x628: u32 = 0;
6785    let mut x629: FpU1 = 0;
6786    fp_addcarryx_u32(&mut x628, &mut x629, x627, x606, (0x0 as u32));
6787    let mut x630: u32 = 0;
6788    let mut x631: FpU1 = 0;
6789    fp_addcarryx_u32(&mut x630, &mut x631, x629, x608, (0x0 as u32));
6790    let mut x632: u32 = 0;
6791    let mut x633: u32 = 0;
6792    fp_mulx_u32(&mut x632, &mut x633, x610, 0xffffffff);
6793    let mut x634: u32 = 0;
6794    let mut x635: u32 = 0;
6795    fp_mulx_u32(&mut x634, &mut x635, x632, 0x1ae3a46);
6796    let mut x636: u32 = 0;
6797    let mut x637: u32 = 0;
6798    fp_mulx_u32(&mut x636, &mut x637, x632, 0x17c510ea);
6799    let mut x638: u32 = 0;
6800    let mut x639: u32 = 0;
6801    fp_mulx_u32(&mut x638, &mut x639, x632, 0xc63b05c0);
6802    let mut x640: u32 = 0;
6803    let mut x641: u32 = 0;
6804    fp_mulx_u32(&mut x640, &mut x641, x632, 0x6ca1493b);
6805    let mut x642: u32 = 0;
6806    let mut x643: u32 = 0;
6807    fp_mulx_u32(&mut x642, &mut x643, x632, 0x1a22d9f3);
6808    let mut x644: u32 = 0;
6809    let mut x645: u32 = 0;
6810    fp_mulx_u32(&mut x644, &mut x645, x632, 0xf5138f);
6811    let mut x646: u32 = 0;
6812    let mut x647: u32 = 0;
6813    fp_mulx_u32(&mut x646, &mut x647, x632, 0x1ef3622f);
6814    let mut x648: u32 = 0;
6815    let mut x649: u32 = 0;
6816    fp_mulx_u32(&mut x648, &mut x649, x632, 0xba094800);
6817    let mut x650: u32 = 0;
6818    let mut x651: u32 = 0;
6819    fp_mulx_u32(&mut x650, &mut x651, x632, 0x170b5d44);
6820    let mut x652: u32 = 0;
6821    let mut x653: u32 = 0;
6822    fp_mulx_u32(&mut x652, &mut x653, x632, 0x30000000);
6823    let mut x654: u32 = 0;
6824    let mut x655: u32 = 0;
6825    fp_mulx_u32(&mut x654, &mut x655, x632, 0x8508c000);
6826    let mut x656: u32 = 0;
6827    let mut x657: FpU1 = 0;
6828    fp_addcarryx_u32(&mut x656, &mut x657, 0x0, x655, x652);
6829    let mut x658: u32 = 0;
6830    let mut x659: FpU1 = 0;
6831    fp_addcarryx_u32(&mut x658, &mut x659, x657, x653, x650);
6832    let mut x660: u32 = 0;
6833    let mut x661: FpU1 = 0;
6834    fp_addcarryx_u32(&mut x660, &mut x661, x659, x651, x648);
6835    let mut x662: u32 = 0;
6836    let mut x663: FpU1 = 0;
6837    fp_addcarryx_u32(&mut x662, &mut x663, x661, x649, x646);
6838    let mut x664: u32 = 0;
6839    let mut x665: FpU1 = 0;
6840    fp_addcarryx_u32(&mut x664, &mut x665, x663, x647, x644);
6841    let mut x666: u32 = 0;
6842    let mut x667: FpU1 = 0;
6843    fp_addcarryx_u32(&mut x666, &mut x667, x665, x645, x642);
6844    let mut x668: u32 = 0;
6845    let mut x669: FpU1 = 0;
6846    fp_addcarryx_u32(&mut x668, &mut x669, x667, x643, x640);
6847    let mut x670: u32 = 0;
6848    let mut x671: FpU1 = 0;
6849    fp_addcarryx_u32(&mut x670, &mut x671, x669, x641, x638);
6850    let mut x672: u32 = 0;
6851    let mut x673: FpU1 = 0;
6852    fp_addcarryx_u32(&mut x672, &mut x673, x671, x639, x636);
6853    let mut x674: u32 = 0;
6854    let mut x675: FpU1 = 0;
6855    fp_addcarryx_u32(&mut x674, &mut x675, x673, x637, x634);
6856    let mut x676: u32 = 0;
6857    let mut x677: FpU1 = 0;
6858    fp_addcarryx_u32(&mut x676, &mut x677, 0x0, x610, x632);
6859    let mut x678: u32 = 0;
6860    let mut x679: FpU1 = 0;
6861    fp_addcarryx_u32(&mut x678, &mut x679, x677, x612, x654);
6862    let mut x680: u32 = 0;
6863    let mut x681: FpU1 = 0;
6864    fp_addcarryx_u32(&mut x680, &mut x681, x679, x614, x656);
6865    let mut x682: u32 = 0;
6866    let mut x683: FpU1 = 0;
6867    fp_addcarryx_u32(&mut x682, &mut x683, x681, x616, x658);
6868    let mut x684: u32 = 0;
6869    let mut x685: FpU1 = 0;
6870    fp_addcarryx_u32(&mut x684, &mut x685, x683, x618, x660);
6871    let mut x686: u32 = 0;
6872    let mut x687: FpU1 = 0;
6873    fp_addcarryx_u32(&mut x686, &mut x687, x685, x620, x662);
6874    let mut x688: u32 = 0;
6875    let mut x689: FpU1 = 0;
6876    fp_addcarryx_u32(&mut x688, &mut x689, x687, x622, x664);
6877    let mut x690: u32 = 0;
6878    let mut x691: FpU1 = 0;
6879    fp_addcarryx_u32(&mut x690, &mut x691, x689, x624, x666);
6880    let mut x692: u32 = 0;
6881    let mut x693: FpU1 = 0;
6882    fp_addcarryx_u32(&mut x692, &mut x693, x691, x626, x668);
6883    let mut x694: u32 = 0;
6884    let mut x695: FpU1 = 0;
6885    fp_addcarryx_u32(&mut x694, &mut x695, x693, x628, x670);
6886    let mut x696: u32 = 0;
6887    let mut x697: FpU1 = 0;
6888    fp_addcarryx_u32(&mut x696, &mut x697, x695, x630, x672);
6889    let mut x698: u32 = 0;
6890    let mut x699: FpU1 = 0;
6891    fp_addcarryx_u32(
6892        &mut x698,
6893        &mut x699,
6894        x697,
6895        ((x631 as u32) + ((x609 as u32) + ((x585 as u32) + x545))),
6896        x674,
6897    );
6898    let mut x700: u32 = 0;
6899    let mut x701: FpU1 = 0;
6900    fp_addcarryx_u32(&mut x700, &mut x701, 0x0, x678, (arg1[8]));
6901    let mut x702: u32 = 0;
6902    let mut x703: FpU1 = 0;
6903    fp_addcarryx_u32(&mut x702, &mut x703, x701, x680, (0x0 as u32));
6904    let mut x704: u32 = 0;
6905    let mut x705: FpU1 = 0;
6906    fp_addcarryx_u32(&mut x704, &mut x705, x703, x682, (0x0 as u32));
6907    let mut x706: u32 = 0;
6908    let mut x707: FpU1 = 0;
6909    fp_addcarryx_u32(&mut x706, &mut x707, x705, x684, (0x0 as u32));
6910    let mut x708: u32 = 0;
6911    let mut x709: FpU1 = 0;
6912    fp_addcarryx_u32(&mut x708, &mut x709, x707, x686, (0x0 as u32));
6913    let mut x710: u32 = 0;
6914    let mut x711: FpU1 = 0;
6915    fp_addcarryx_u32(&mut x710, &mut x711, x709, x688, (0x0 as u32));
6916    let mut x712: u32 = 0;
6917    let mut x713: FpU1 = 0;
6918    fp_addcarryx_u32(&mut x712, &mut x713, x711, x690, (0x0 as u32));
6919    let mut x714: u32 = 0;
6920    let mut x715: FpU1 = 0;
6921    fp_addcarryx_u32(&mut x714, &mut x715, x713, x692, (0x0 as u32));
6922    let mut x716: u32 = 0;
6923    let mut x717: FpU1 = 0;
6924    fp_addcarryx_u32(&mut x716, &mut x717, x715, x694, (0x0 as u32));
6925    let mut x718: u32 = 0;
6926    let mut x719: FpU1 = 0;
6927    fp_addcarryx_u32(&mut x718, &mut x719, x717, x696, (0x0 as u32));
6928    let mut x720: u32 = 0;
6929    let mut x721: FpU1 = 0;
6930    fp_addcarryx_u32(&mut x720, &mut x721, x719, x698, (0x0 as u32));
6931    let mut x722: u32 = 0;
6932    let mut x723: u32 = 0;
6933    fp_mulx_u32(&mut x722, &mut x723, x700, 0xffffffff);
6934    let mut x724: u32 = 0;
6935    let mut x725: u32 = 0;
6936    fp_mulx_u32(&mut x724, &mut x725, x722, 0x1ae3a46);
6937    let mut x726: u32 = 0;
6938    let mut x727: u32 = 0;
6939    fp_mulx_u32(&mut x726, &mut x727, x722, 0x17c510ea);
6940    let mut x728: u32 = 0;
6941    let mut x729: u32 = 0;
6942    fp_mulx_u32(&mut x728, &mut x729, x722, 0xc63b05c0);
6943    let mut x730: u32 = 0;
6944    let mut x731: u32 = 0;
6945    fp_mulx_u32(&mut x730, &mut x731, x722, 0x6ca1493b);
6946    let mut x732: u32 = 0;
6947    let mut x733: u32 = 0;
6948    fp_mulx_u32(&mut x732, &mut x733, x722, 0x1a22d9f3);
6949    let mut x734: u32 = 0;
6950    let mut x735: u32 = 0;
6951    fp_mulx_u32(&mut x734, &mut x735, x722, 0xf5138f);
6952    let mut x736: u32 = 0;
6953    let mut x737: u32 = 0;
6954    fp_mulx_u32(&mut x736, &mut x737, x722, 0x1ef3622f);
6955    let mut x738: u32 = 0;
6956    let mut x739: u32 = 0;
6957    fp_mulx_u32(&mut x738, &mut x739, x722, 0xba094800);
6958    let mut x740: u32 = 0;
6959    let mut x741: u32 = 0;
6960    fp_mulx_u32(&mut x740, &mut x741, x722, 0x170b5d44);
6961    let mut x742: u32 = 0;
6962    let mut x743: u32 = 0;
6963    fp_mulx_u32(&mut x742, &mut x743, x722, 0x30000000);
6964    let mut x744: u32 = 0;
6965    let mut x745: u32 = 0;
6966    fp_mulx_u32(&mut x744, &mut x745, x722, 0x8508c000);
6967    let mut x746: u32 = 0;
6968    let mut x747: FpU1 = 0;
6969    fp_addcarryx_u32(&mut x746, &mut x747, 0x0, x745, x742);
6970    let mut x748: u32 = 0;
6971    let mut x749: FpU1 = 0;
6972    fp_addcarryx_u32(&mut x748, &mut x749, x747, x743, x740);
6973    let mut x750: u32 = 0;
6974    let mut x751: FpU1 = 0;
6975    fp_addcarryx_u32(&mut x750, &mut x751, x749, x741, x738);
6976    let mut x752: u32 = 0;
6977    let mut x753: FpU1 = 0;
6978    fp_addcarryx_u32(&mut x752, &mut x753, x751, x739, x736);
6979    let mut x754: u32 = 0;
6980    let mut x755: FpU1 = 0;
6981    fp_addcarryx_u32(&mut x754, &mut x755, x753, x737, x734);
6982    let mut x756: u32 = 0;
6983    let mut x757: FpU1 = 0;
6984    fp_addcarryx_u32(&mut x756, &mut x757, x755, x735, x732);
6985    let mut x758: u32 = 0;
6986    let mut x759: FpU1 = 0;
6987    fp_addcarryx_u32(&mut x758, &mut x759, x757, x733, x730);
6988    let mut x760: u32 = 0;
6989    let mut x761: FpU1 = 0;
6990    fp_addcarryx_u32(&mut x760, &mut x761, x759, x731, x728);
6991    let mut x762: u32 = 0;
6992    let mut x763: FpU1 = 0;
6993    fp_addcarryx_u32(&mut x762, &mut x763, x761, x729, x726);
6994    let mut x764: u32 = 0;
6995    let mut x765: FpU1 = 0;
6996    fp_addcarryx_u32(&mut x764, &mut x765, x763, x727, x724);
6997    let mut x766: u32 = 0;
6998    let mut x767: FpU1 = 0;
6999    fp_addcarryx_u32(&mut x766, &mut x767, 0x0, x700, x722);
7000    let mut x768: u32 = 0;
7001    let mut x769: FpU1 = 0;
7002    fp_addcarryx_u32(&mut x768, &mut x769, x767, x702, x744);
7003    let mut x770: u32 = 0;
7004    let mut x771: FpU1 = 0;
7005    fp_addcarryx_u32(&mut x770, &mut x771, x769, x704, x746);
7006    let mut x772: u32 = 0;
7007    let mut x773: FpU1 = 0;
7008    fp_addcarryx_u32(&mut x772, &mut x773, x771, x706, x748);
7009    let mut x774: u32 = 0;
7010    let mut x775: FpU1 = 0;
7011    fp_addcarryx_u32(&mut x774, &mut x775, x773, x708, x750);
7012    let mut x776: u32 = 0;
7013    let mut x777: FpU1 = 0;
7014    fp_addcarryx_u32(&mut x776, &mut x777, x775, x710, x752);
7015    let mut x778: u32 = 0;
7016    let mut x779: FpU1 = 0;
7017    fp_addcarryx_u32(&mut x778, &mut x779, x777, x712, x754);
7018    let mut x780: u32 = 0;
7019    let mut x781: FpU1 = 0;
7020    fp_addcarryx_u32(&mut x780, &mut x781, x779, x714, x756);
7021    let mut x782: u32 = 0;
7022    let mut x783: FpU1 = 0;
7023    fp_addcarryx_u32(&mut x782, &mut x783, x781, x716, x758);
7024    let mut x784: u32 = 0;
7025    let mut x785: FpU1 = 0;
7026    fp_addcarryx_u32(&mut x784, &mut x785, x783, x718, x760);
7027    let mut x786: u32 = 0;
7028    let mut x787: FpU1 = 0;
7029    fp_addcarryx_u32(&mut x786, &mut x787, x785, x720, x762);
7030    let mut x788: u32 = 0;
7031    let mut x789: FpU1 = 0;
7032    fp_addcarryx_u32(
7033        &mut x788,
7034        &mut x789,
7035        x787,
7036        ((x721 as u32) + ((x699 as u32) + ((x675 as u32) + x635))),
7037        x764,
7038    );
7039    let mut x790: u32 = 0;
7040    let mut x791: FpU1 = 0;
7041    fp_addcarryx_u32(&mut x790, &mut x791, 0x0, x768, (arg1[9]));
7042    let mut x792: u32 = 0;
7043    let mut x793: FpU1 = 0;
7044    fp_addcarryx_u32(&mut x792, &mut x793, x791, x770, (0x0 as u32));
7045    let mut x794: u32 = 0;
7046    let mut x795: FpU1 = 0;
7047    fp_addcarryx_u32(&mut x794, &mut x795, x793, x772, (0x0 as u32));
7048    let mut x796: u32 = 0;
7049    let mut x797: FpU1 = 0;
7050    fp_addcarryx_u32(&mut x796, &mut x797, x795, x774, (0x0 as u32));
7051    let mut x798: u32 = 0;
7052    let mut x799: FpU1 = 0;
7053    fp_addcarryx_u32(&mut x798, &mut x799, x797, x776, (0x0 as u32));
7054    let mut x800: u32 = 0;
7055    let mut x801: FpU1 = 0;
7056    fp_addcarryx_u32(&mut x800, &mut x801, x799, x778, (0x0 as u32));
7057    let mut x802: u32 = 0;
7058    let mut x803: FpU1 = 0;
7059    fp_addcarryx_u32(&mut x802, &mut x803, x801, x780, (0x0 as u32));
7060    let mut x804: u32 = 0;
7061    let mut x805: FpU1 = 0;
7062    fp_addcarryx_u32(&mut x804, &mut x805, x803, x782, (0x0 as u32));
7063    let mut x806: u32 = 0;
7064    let mut x807: FpU1 = 0;
7065    fp_addcarryx_u32(&mut x806, &mut x807, x805, x784, (0x0 as u32));
7066    let mut x808: u32 = 0;
7067    let mut x809: FpU1 = 0;
7068    fp_addcarryx_u32(&mut x808, &mut x809, x807, x786, (0x0 as u32));
7069    let mut x810: u32 = 0;
7070    let mut x811: FpU1 = 0;
7071    fp_addcarryx_u32(&mut x810, &mut x811, x809, x788, (0x0 as u32));
7072    let mut x812: u32 = 0;
7073    let mut x813: u32 = 0;
7074    fp_mulx_u32(&mut x812, &mut x813, x790, 0xffffffff);
7075    let mut x814: u32 = 0;
7076    let mut x815: u32 = 0;
7077    fp_mulx_u32(&mut x814, &mut x815, x812, 0x1ae3a46);
7078    let mut x816: u32 = 0;
7079    let mut x817: u32 = 0;
7080    fp_mulx_u32(&mut x816, &mut x817, x812, 0x17c510ea);
7081    let mut x818: u32 = 0;
7082    let mut x819: u32 = 0;
7083    fp_mulx_u32(&mut x818, &mut x819, x812, 0xc63b05c0);
7084    let mut x820: u32 = 0;
7085    let mut x821: u32 = 0;
7086    fp_mulx_u32(&mut x820, &mut x821, x812, 0x6ca1493b);
7087    let mut x822: u32 = 0;
7088    let mut x823: u32 = 0;
7089    fp_mulx_u32(&mut x822, &mut x823, x812, 0x1a22d9f3);
7090    let mut x824: u32 = 0;
7091    let mut x825: u32 = 0;
7092    fp_mulx_u32(&mut x824, &mut x825, x812, 0xf5138f);
7093    let mut x826: u32 = 0;
7094    let mut x827: u32 = 0;
7095    fp_mulx_u32(&mut x826, &mut x827, x812, 0x1ef3622f);
7096    let mut x828: u32 = 0;
7097    let mut x829: u32 = 0;
7098    fp_mulx_u32(&mut x828, &mut x829, x812, 0xba094800);
7099    let mut x830: u32 = 0;
7100    let mut x831: u32 = 0;
7101    fp_mulx_u32(&mut x830, &mut x831, x812, 0x170b5d44);
7102    let mut x832: u32 = 0;
7103    let mut x833: u32 = 0;
7104    fp_mulx_u32(&mut x832, &mut x833, x812, 0x30000000);
7105    let mut x834: u32 = 0;
7106    let mut x835: u32 = 0;
7107    fp_mulx_u32(&mut x834, &mut x835, x812, 0x8508c000);
7108    let mut x836: u32 = 0;
7109    let mut x837: FpU1 = 0;
7110    fp_addcarryx_u32(&mut x836, &mut x837, 0x0, x835, x832);
7111    let mut x838: u32 = 0;
7112    let mut x839: FpU1 = 0;
7113    fp_addcarryx_u32(&mut x838, &mut x839, x837, x833, x830);
7114    let mut x840: u32 = 0;
7115    let mut x841: FpU1 = 0;
7116    fp_addcarryx_u32(&mut x840, &mut x841, x839, x831, x828);
7117    let mut x842: u32 = 0;
7118    let mut x843: FpU1 = 0;
7119    fp_addcarryx_u32(&mut x842, &mut x843, x841, x829, x826);
7120    let mut x844: u32 = 0;
7121    let mut x845: FpU1 = 0;
7122    fp_addcarryx_u32(&mut x844, &mut x845, x843, x827, x824);
7123    let mut x846: u32 = 0;
7124    let mut x847: FpU1 = 0;
7125    fp_addcarryx_u32(&mut x846, &mut x847, x845, x825, x822);
7126    let mut x848: u32 = 0;
7127    let mut x849: FpU1 = 0;
7128    fp_addcarryx_u32(&mut x848, &mut x849, x847, x823, x820);
7129    let mut x850: u32 = 0;
7130    let mut x851: FpU1 = 0;
7131    fp_addcarryx_u32(&mut x850, &mut x851, x849, x821, x818);
7132    let mut x852: u32 = 0;
7133    let mut x853: FpU1 = 0;
7134    fp_addcarryx_u32(&mut x852, &mut x853, x851, x819, x816);
7135    let mut x854: u32 = 0;
7136    let mut x855: FpU1 = 0;
7137    fp_addcarryx_u32(&mut x854, &mut x855, x853, x817, x814);
7138    let mut x856: u32 = 0;
7139    let mut x857: FpU1 = 0;
7140    fp_addcarryx_u32(&mut x856, &mut x857, 0x0, x790, x812);
7141    let mut x858: u32 = 0;
7142    let mut x859: FpU1 = 0;
7143    fp_addcarryx_u32(&mut x858, &mut x859, x857, x792, x834);
7144    let mut x860: u32 = 0;
7145    let mut x861: FpU1 = 0;
7146    fp_addcarryx_u32(&mut x860, &mut x861, x859, x794, x836);
7147    let mut x862: u32 = 0;
7148    let mut x863: FpU1 = 0;
7149    fp_addcarryx_u32(&mut x862, &mut x863, x861, x796, x838);
7150    let mut x864: u32 = 0;
7151    let mut x865: FpU1 = 0;
7152    fp_addcarryx_u32(&mut x864, &mut x865, x863, x798, x840);
7153    let mut x866: u32 = 0;
7154    let mut x867: FpU1 = 0;
7155    fp_addcarryx_u32(&mut x866, &mut x867, x865, x800, x842);
7156    let mut x868: u32 = 0;
7157    let mut x869: FpU1 = 0;
7158    fp_addcarryx_u32(&mut x868, &mut x869, x867, x802, x844);
7159    let mut x870: u32 = 0;
7160    let mut x871: FpU1 = 0;
7161    fp_addcarryx_u32(&mut x870, &mut x871, x869, x804, x846);
7162    let mut x872: u32 = 0;
7163    let mut x873: FpU1 = 0;
7164    fp_addcarryx_u32(&mut x872, &mut x873, x871, x806, x848);
7165    let mut x874: u32 = 0;
7166    let mut x875: FpU1 = 0;
7167    fp_addcarryx_u32(&mut x874, &mut x875, x873, x808, x850);
7168    let mut x876: u32 = 0;
7169    let mut x877: FpU1 = 0;
7170    fp_addcarryx_u32(&mut x876, &mut x877, x875, x810, x852);
7171    let mut x878: u32 = 0;
7172    let mut x879: FpU1 = 0;
7173    fp_addcarryx_u32(
7174        &mut x878,
7175        &mut x879,
7176        x877,
7177        ((x811 as u32) + ((x789 as u32) + ((x765 as u32) + x725))),
7178        x854,
7179    );
7180    let mut x880: u32 = 0;
7181    let mut x881: FpU1 = 0;
7182    fp_addcarryx_u32(&mut x880, &mut x881, 0x0, x858, (arg1[10]));
7183    let mut x882: u32 = 0;
7184    let mut x883: FpU1 = 0;
7185    fp_addcarryx_u32(&mut x882, &mut x883, x881, x860, (0x0 as u32));
7186    let mut x884: u32 = 0;
7187    let mut x885: FpU1 = 0;
7188    fp_addcarryx_u32(&mut x884, &mut x885, x883, x862, (0x0 as u32));
7189    let mut x886: u32 = 0;
7190    let mut x887: FpU1 = 0;
7191    fp_addcarryx_u32(&mut x886, &mut x887, x885, x864, (0x0 as u32));
7192    let mut x888: u32 = 0;
7193    let mut x889: FpU1 = 0;
7194    fp_addcarryx_u32(&mut x888, &mut x889, x887, x866, (0x0 as u32));
7195    let mut x890: u32 = 0;
7196    let mut x891: FpU1 = 0;
7197    fp_addcarryx_u32(&mut x890, &mut x891, x889, x868, (0x0 as u32));
7198    let mut x892: u32 = 0;
7199    let mut x893: FpU1 = 0;
7200    fp_addcarryx_u32(&mut x892, &mut x893, x891, x870, (0x0 as u32));
7201    let mut x894: u32 = 0;
7202    let mut x895: FpU1 = 0;
7203    fp_addcarryx_u32(&mut x894, &mut x895, x893, x872, (0x0 as u32));
7204    let mut x896: u32 = 0;
7205    let mut x897: FpU1 = 0;
7206    fp_addcarryx_u32(&mut x896, &mut x897, x895, x874, (0x0 as u32));
7207    let mut x898: u32 = 0;
7208    let mut x899: FpU1 = 0;
7209    fp_addcarryx_u32(&mut x898, &mut x899, x897, x876, (0x0 as u32));
7210    let mut x900: u32 = 0;
7211    let mut x901: FpU1 = 0;
7212    fp_addcarryx_u32(&mut x900, &mut x901, x899, x878, (0x0 as u32));
7213    let mut x902: u32 = 0;
7214    let mut x903: u32 = 0;
7215    fp_mulx_u32(&mut x902, &mut x903, x880, 0xffffffff);
7216    let mut x904: u32 = 0;
7217    let mut x905: u32 = 0;
7218    fp_mulx_u32(&mut x904, &mut x905, x902, 0x1ae3a46);
7219    let mut x906: u32 = 0;
7220    let mut x907: u32 = 0;
7221    fp_mulx_u32(&mut x906, &mut x907, x902, 0x17c510ea);
7222    let mut x908: u32 = 0;
7223    let mut x909: u32 = 0;
7224    fp_mulx_u32(&mut x908, &mut x909, x902, 0xc63b05c0);
7225    let mut x910: u32 = 0;
7226    let mut x911: u32 = 0;
7227    fp_mulx_u32(&mut x910, &mut x911, x902, 0x6ca1493b);
7228    let mut x912: u32 = 0;
7229    let mut x913: u32 = 0;
7230    fp_mulx_u32(&mut x912, &mut x913, x902, 0x1a22d9f3);
7231    let mut x914: u32 = 0;
7232    let mut x915: u32 = 0;
7233    fp_mulx_u32(&mut x914, &mut x915, x902, 0xf5138f);
7234    let mut x916: u32 = 0;
7235    let mut x917: u32 = 0;
7236    fp_mulx_u32(&mut x916, &mut x917, x902, 0x1ef3622f);
7237    let mut x918: u32 = 0;
7238    let mut x919: u32 = 0;
7239    fp_mulx_u32(&mut x918, &mut x919, x902, 0xba094800);
7240    let mut x920: u32 = 0;
7241    let mut x921: u32 = 0;
7242    fp_mulx_u32(&mut x920, &mut x921, x902, 0x170b5d44);
7243    let mut x922: u32 = 0;
7244    let mut x923: u32 = 0;
7245    fp_mulx_u32(&mut x922, &mut x923, x902, 0x30000000);
7246    let mut x924: u32 = 0;
7247    let mut x925: u32 = 0;
7248    fp_mulx_u32(&mut x924, &mut x925, x902, 0x8508c000);
7249    let mut x926: u32 = 0;
7250    let mut x927: FpU1 = 0;
7251    fp_addcarryx_u32(&mut x926, &mut x927, 0x0, x925, x922);
7252    let mut x928: u32 = 0;
7253    let mut x929: FpU1 = 0;
7254    fp_addcarryx_u32(&mut x928, &mut x929, x927, x923, x920);
7255    let mut x930: u32 = 0;
7256    let mut x931: FpU1 = 0;
7257    fp_addcarryx_u32(&mut x930, &mut x931, x929, x921, x918);
7258    let mut x932: u32 = 0;
7259    let mut x933: FpU1 = 0;
7260    fp_addcarryx_u32(&mut x932, &mut x933, x931, x919, x916);
7261    let mut x934: u32 = 0;
7262    let mut x935: FpU1 = 0;
7263    fp_addcarryx_u32(&mut x934, &mut x935, x933, x917, x914);
7264    let mut x936: u32 = 0;
7265    let mut x937: FpU1 = 0;
7266    fp_addcarryx_u32(&mut x936, &mut x937, x935, x915, x912);
7267    let mut x938: u32 = 0;
7268    let mut x939: FpU1 = 0;
7269    fp_addcarryx_u32(&mut x938, &mut x939, x937, x913, x910);
7270    let mut x940: u32 = 0;
7271    let mut x941: FpU1 = 0;
7272    fp_addcarryx_u32(&mut x940, &mut x941, x939, x911, x908);
7273    let mut x942: u32 = 0;
7274    let mut x943: FpU1 = 0;
7275    fp_addcarryx_u32(&mut x942, &mut x943, x941, x909, x906);
7276    let mut x944: u32 = 0;
7277    let mut x945: FpU1 = 0;
7278    fp_addcarryx_u32(&mut x944, &mut x945, x943, x907, x904);
7279    let mut x946: u32 = 0;
7280    let mut x947: FpU1 = 0;
7281    fp_addcarryx_u32(&mut x946, &mut x947, 0x0, x880, x902);
7282    let mut x948: u32 = 0;
7283    let mut x949: FpU1 = 0;
7284    fp_addcarryx_u32(&mut x948, &mut x949, x947, x882, x924);
7285    let mut x950: u32 = 0;
7286    let mut x951: FpU1 = 0;
7287    fp_addcarryx_u32(&mut x950, &mut x951, x949, x884, x926);
7288    let mut x952: u32 = 0;
7289    let mut x953: FpU1 = 0;
7290    fp_addcarryx_u32(&mut x952, &mut x953, x951, x886, x928);
7291    let mut x954: u32 = 0;
7292    let mut x955: FpU1 = 0;
7293    fp_addcarryx_u32(&mut x954, &mut x955, x953, x888, x930);
7294    let mut x956: u32 = 0;
7295    let mut x957: FpU1 = 0;
7296    fp_addcarryx_u32(&mut x956, &mut x957, x955, x890, x932);
7297    let mut x958: u32 = 0;
7298    let mut x959: FpU1 = 0;
7299    fp_addcarryx_u32(&mut x958, &mut x959, x957, x892, x934);
7300    let mut x960: u32 = 0;
7301    let mut x961: FpU1 = 0;
7302    fp_addcarryx_u32(&mut x960, &mut x961, x959, x894, x936);
7303    let mut x962: u32 = 0;
7304    let mut x963: FpU1 = 0;
7305    fp_addcarryx_u32(&mut x962, &mut x963, x961, x896, x938);
7306    let mut x964: u32 = 0;
7307    let mut x965: FpU1 = 0;
7308    fp_addcarryx_u32(&mut x964, &mut x965, x963, x898, x940);
7309    let mut x966: u32 = 0;
7310    let mut x967: FpU1 = 0;
7311    fp_addcarryx_u32(&mut x966, &mut x967, x965, x900, x942);
7312    let mut x968: u32 = 0;
7313    let mut x969: FpU1 = 0;
7314    fp_addcarryx_u32(
7315        &mut x968,
7316        &mut x969,
7317        x967,
7318        ((x901 as u32) + ((x879 as u32) + ((x855 as u32) + x815))),
7319        x944,
7320    );
7321    let mut x970: u32 = 0;
7322    let mut x971: FpU1 = 0;
7323    fp_addcarryx_u32(&mut x970, &mut x971, 0x0, x948, (arg1[11]));
7324    let mut x972: u32 = 0;
7325    let mut x973: FpU1 = 0;
7326    fp_addcarryx_u32(&mut x972, &mut x973, x971, x950, (0x0 as u32));
7327    let mut x974: u32 = 0;
7328    let mut x975: FpU1 = 0;
7329    fp_addcarryx_u32(&mut x974, &mut x975, x973, x952, (0x0 as u32));
7330    let mut x976: u32 = 0;
7331    let mut x977: FpU1 = 0;
7332    fp_addcarryx_u32(&mut x976, &mut x977, x975, x954, (0x0 as u32));
7333    let mut x978: u32 = 0;
7334    let mut x979: FpU1 = 0;
7335    fp_addcarryx_u32(&mut x978, &mut x979, x977, x956, (0x0 as u32));
7336    let mut x980: u32 = 0;
7337    let mut x981: FpU1 = 0;
7338    fp_addcarryx_u32(&mut x980, &mut x981, x979, x958, (0x0 as u32));
7339    let mut x982: u32 = 0;
7340    let mut x983: FpU1 = 0;
7341    fp_addcarryx_u32(&mut x982, &mut x983, x981, x960, (0x0 as u32));
7342    let mut x984: u32 = 0;
7343    let mut x985: FpU1 = 0;
7344    fp_addcarryx_u32(&mut x984, &mut x985, x983, x962, (0x0 as u32));
7345    let mut x986: u32 = 0;
7346    let mut x987: FpU1 = 0;
7347    fp_addcarryx_u32(&mut x986, &mut x987, x985, x964, (0x0 as u32));
7348    let mut x988: u32 = 0;
7349    let mut x989: FpU1 = 0;
7350    fp_addcarryx_u32(&mut x988, &mut x989, x987, x966, (0x0 as u32));
7351    let mut x990: u32 = 0;
7352    let mut x991: FpU1 = 0;
7353    fp_addcarryx_u32(&mut x990, &mut x991, x989, x968, (0x0 as u32));
7354    let mut x992: u32 = 0;
7355    let mut x993: u32 = 0;
7356    fp_mulx_u32(&mut x992, &mut x993, x970, 0xffffffff);
7357    let mut x994: u32 = 0;
7358    let mut x995: u32 = 0;
7359    fp_mulx_u32(&mut x994, &mut x995, x992, 0x1ae3a46);
7360    let mut x996: u32 = 0;
7361    let mut x997: u32 = 0;
7362    fp_mulx_u32(&mut x996, &mut x997, x992, 0x17c510ea);
7363    let mut x998: u32 = 0;
7364    let mut x999: u32 = 0;
7365    fp_mulx_u32(&mut x998, &mut x999, x992, 0xc63b05c0);
7366    let mut x1000: u32 = 0;
7367    let mut x1001: u32 = 0;
7368    fp_mulx_u32(&mut x1000, &mut x1001, x992, 0x6ca1493b);
7369    let mut x1002: u32 = 0;
7370    let mut x1003: u32 = 0;
7371    fp_mulx_u32(&mut x1002, &mut x1003, x992, 0x1a22d9f3);
7372    let mut x1004: u32 = 0;
7373    let mut x1005: u32 = 0;
7374    fp_mulx_u32(&mut x1004, &mut x1005, x992, 0xf5138f);
7375    let mut x1006: u32 = 0;
7376    let mut x1007: u32 = 0;
7377    fp_mulx_u32(&mut x1006, &mut x1007, x992, 0x1ef3622f);
7378    let mut x1008: u32 = 0;
7379    let mut x1009: u32 = 0;
7380    fp_mulx_u32(&mut x1008, &mut x1009, x992, 0xba094800);
7381    let mut x1010: u32 = 0;
7382    let mut x1011: u32 = 0;
7383    fp_mulx_u32(&mut x1010, &mut x1011, x992, 0x170b5d44);
7384    let mut x1012: u32 = 0;
7385    let mut x1013: u32 = 0;
7386    fp_mulx_u32(&mut x1012, &mut x1013, x992, 0x30000000);
7387    let mut x1014: u32 = 0;
7388    let mut x1015: u32 = 0;
7389    fp_mulx_u32(&mut x1014, &mut x1015, x992, 0x8508c000);
7390    let mut x1016: u32 = 0;
7391    let mut x1017: FpU1 = 0;
7392    fp_addcarryx_u32(&mut x1016, &mut x1017, 0x0, x1015, x1012);
7393    let mut x1018: u32 = 0;
7394    let mut x1019: FpU1 = 0;
7395    fp_addcarryx_u32(&mut x1018, &mut x1019, x1017, x1013, x1010);
7396    let mut x1020: u32 = 0;
7397    let mut x1021: FpU1 = 0;
7398    fp_addcarryx_u32(&mut x1020, &mut x1021, x1019, x1011, x1008);
7399    let mut x1022: u32 = 0;
7400    let mut x1023: FpU1 = 0;
7401    fp_addcarryx_u32(&mut x1022, &mut x1023, x1021, x1009, x1006);
7402    let mut x1024: u32 = 0;
7403    let mut x1025: FpU1 = 0;
7404    fp_addcarryx_u32(&mut x1024, &mut x1025, x1023, x1007, x1004);
7405    let mut x1026: u32 = 0;
7406    let mut x1027: FpU1 = 0;
7407    fp_addcarryx_u32(&mut x1026, &mut x1027, x1025, x1005, x1002);
7408    let mut x1028: u32 = 0;
7409    let mut x1029: FpU1 = 0;
7410    fp_addcarryx_u32(&mut x1028, &mut x1029, x1027, x1003, x1000);
7411    let mut x1030: u32 = 0;
7412    let mut x1031: FpU1 = 0;
7413    fp_addcarryx_u32(&mut x1030, &mut x1031, x1029, x1001, x998);
7414    let mut x1032: u32 = 0;
7415    let mut x1033: FpU1 = 0;
7416    fp_addcarryx_u32(&mut x1032, &mut x1033, x1031, x999, x996);
7417    let mut x1034: u32 = 0;
7418    let mut x1035: FpU1 = 0;
7419    fp_addcarryx_u32(&mut x1034, &mut x1035, x1033, x997, x994);
7420    let mut x1036: u32 = 0;
7421    let mut x1037: FpU1 = 0;
7422    fp_addcarryx_u32(&mut x1036, &mut x1037, 0x0, x970, x992);
7423    let mut x1038: u32 = 0;
7424    let mut x1039: FpU1 = 0;
7425    fp_addcarryx_u32(&mut x1038, &mut x1039, x1037, x972, x1014);
7426    let mut x1040: u32 = 0;
7427    let mut x1041: FpU1 = 0;
7428    fp_addcarryx_u32(&mut x1040, &mut x1041, x1039, x974, x1016);
7429    let mut x1042: u32 = 0;
7430    let mut x1043: FpU1 = 0;
7431    fp_addcarryx_u32(&mut x1042, &mut x1043, x1041, x976, x1018);
7432    let mut x1044: u32 = 0;
7433    let mut x1045: FpU1 = 0;
7434    fp_addcarryx_u32(&mut x1044, &mut x1045, x1043, x978, x1020);
7435    let mut x1046: u32 = 0;
7436    let mut x1047: FpU1 = 0;
7437    fp_addcarryx_u32(&mut x1046, &mut x1047, x1045, x980, x1022);
7438    let mut x1048: u32 = 0;
7439    let mut x1049: FpU1 = 0;
7440    fp_addcarryx_u32(&mut x1048, &mut x1049, x1047, x982, x1024);
7441    let mut x1050: u32 = 0;
7442    let mut x1051: FpU1 = 0;
7443    fp_addcarryx_u32(&mut x1050, &mut x1051, x1049, x984, x1026);
7444    let mut x1052: u32 = 0;
7445    let mut x1053: FpU1 = 0;
7446    fp_addcarryx_u32(&mut x1052, &mut x1053, x1051, x986, x1028);
7447    let mut x1054: u32 = 0;
7448    let mut x1055: FpU1 = 0;
7449    fp_addcarryx_u32(&mut x1054, &mut x1055, x1053, x988, x1030);
7450    let mut x1056: u32 = 0;
7451    let mut x1057: FpU1 = 0;
7452    fp_addcarryx_u32(&mut x1056, &mut x1057, x1055, x990, x1032);
7453    let mut x1058: u32 = 0;
7454    let mut x1059: FpU1 = 0;
7455    fp_addcarryx_u32(
7456        &mut x1058,
7457        &mut x1059,
7458        x1057,
7459        ((x991 as u32) + ((x969 as u32) + ((x945 as u32) + x905))),
7460        x1034,
7461    );
7462    let x1060: u32 = ((x1059 as u32) + ((x1035 as u32) + x995));
7463    let mut x1061: u32 = 0;
7464    let mut x1062: FpU1 = 0;
7465    fp_subborrowx_u32(&mut x1061, &mut x1062, 0x0, x1038, (0x1 as u32));
7466    let mut x1063: u32 = 0;
7467    let mut x1064: FpU1 = 0;
7468    fp_subborrowx_u32(&mut x1063, &mut x1064, x1062, x1040, 0x8508c000);
7469    let mut x1065: u32 = 0;
7470    let mut x1066: FpU1 = 0;
7471    fp_subborrowx_u32(&mut x1065, &mut x1066, x1064, x1042, 0x30000000);
7472    let mut x1067: u32 = 0;
7473    let mut x1068: FpU1 = 0;
7474    fp_subborrowx_u32(&mut x1067, &mut x1068, x1066, x1044, 0x170b5d44);
7475    let mut x1069: u32 = 0;
7476    let mut x1070: FpU1 = 0;
7477    fp_subborrowx_u32(&mut x1069, &mut x1070, x1068, x1046, 0xba094800);
7478    let mut x1071: u32 = 0;
7479    let mut x1072: FpU1 = 0;
7480    fp_subborrowx_u32(&mut x1071, &mut x1072, x1070, x1048, 0x1ef3622f);
7481    let mut x1073: u32 = 0;
7482    let mut x1074: FpU1 = 0;
7483    fp_subborrowx_u32(&mut x1073, &mut x1074, x1072, x1050, 0xf5138f);
7484    let mut x1075: u32 = 0;
7485    let mut x1076: FpU1 = 0;
7486    fp_subborrowx_u32(&mut x1075, &mut x1076, x1074, x1052, 0x1a22d9f3);
7487    let mut x1077: u32 = 0;
7488    let mut x1078: FpU1 = 0;
7489    fp_subborrowx_u32(&mut x1077, &mut x1078, x1076, x1054, 0x6ca1493b);
7490    let mut x1079: u32 = 0;
7491    let mut x1080: FpU1 = 0;
7492    fp_subborrowx_u32(&mut x1079, &mut x1080, x1078, x1056, 0xc63b05c0);
7493    let mut x1081: u32 = 0;
7494    let mut x1082: FpU1 = 0;
7495    fp_subborrowx_u32(&mut x1081, &mut x1082, x1080, x1058, 0x17c510ea);
7496    let mut x1083: u32 = 0;
7497    let mut x1084: FpU1 = 0;
7498    fp_subborrowx_u32(&mut x1083, &mut x1084, x1082, x1060, 0x1ae3a46);
7499    let mut x1085: u32 = 0;
7500    let mut x1086: FpU1 = 0;
7501    fp_subborrowx_u32(&mut x1085, &mut x1086, x1084, (0x0 as u32), (0x0 as u32));
7502    let mut x1087: u32 = 0;
7503    fp_cmovznz_u32(&mut x1087, x1086, x1061, x1038);
7504    let mut x1088: u32 = 0;
7505    fp_cmovznz_u32(&mut x1088, x1086, x1063, x1040);
7506    let mut x1089: u32 = 0;
7507    fp_cmovznz_u32(&mut x1089, x1086, x1065, x1042);
7508    let mut x1090: u32 = 0;
7509    fp_cmovznz_u32(&mut x1090, x1086, x1067, x1044);
7510    let mut x1091: u32 = 0;
7511    fp_cmovznz_u32(&mut x1091, x1086, x1069, x1046);
7512    let mut x1092: u32 = 0;
7513    fp_cmovznz_u32(&mut x1092, x1086, x1071, x1048);
7514    let mut x1093: u32 = 0;
7515    fp_cmovznz_u32(&mut x1093, x1086, x1073, x1050);
7516    let mut x1094: u32 = 0;
7517    fp_cmovznz_u32(&mut x1094, x1086, x1075, x1052);
7518    let mut x1095: u32 = 0;
7519    fp_cmovznz_u32(&mut x1095, x1086, x1077, x1054);
7520    let mut x1096: u32 = 0;
7521    fp_cmovznz_u32(&mut x1096, x1086, x1079, x1056);
7522    let mut x1097: u32 = 0;
7523    fp_cmovznz_u32(&mut x1097, x1086, x1081, x1058);
7524    let mut x1098: u32 = 0;
7525    fp_cmovznz_u32(&mut x1098, x1086, x1083, x1060);
7526    out1[0] = x1087;
7527    out1[1] = x1088;
7528    out1[2] = x1089;
7529    out1[3] = x1090;
7530    out1[4] = x1091;
7531    out1[5] = x1092;
7532    out1[6] = x1093;
7533    out1[7] = x1094;
7534    out1[8] = x1095;
7535    out1[9] = x1096;
7536    out1[10] = x1097;
7537    out1[11] = x1098;
7538}
7539
7540/// The function fp_to_montgomery translates a field element into the Montgomery domain.
7541///
7542/// Preconditions:
7543///   0 ≤ eval arg1 < m
7544/// Postconditions:
7545///   eval (from_montgomery out1) mod m = eval arg1 mod m
7546///   0 ≤ eval out1 < m
7547///
7548pub fn fp_to_montgomery(
7549    out1: &mut FpMontgomeryDomainFieldElement,
7550    arg1: &FpNonMontgomeryDomainFieldElement,
7551) {
7552    let x1: u32 = (arg1[1]);
7553    let x2: u32 = (arg1[2]);
7554    let x3: u32 = (arg1[3]);
7555    let x4: u32 = (arg1[4]);
7556    let x5: u32 = (arg1[5]);
7557    let x6: u32 = (arg1[6]);
7558    let x7: u32 = (arg1[7]);
7559    let x8: u32 = (arg1[8]);
7560    let x9: u32 = (arg1[9]);
7561    let x10: u32 = (arg1[10]);
7562    let x11: u32 = (arg1[11]);
7563    let x12: u32 = (arg1[0]);
7564    let mut x13: u32 = 0;
7565    let mut x14: u32 = 0;
7566    fp_mulx_u32(&mut x13, &mut x14, x12, 0x6dfccb);
7567    let mut x15: u32 = 0;
7568    let mut x16: u32 = 0;
7569    fp_mulx_u32(&mut x15, &mut x16, x12, 0x1e914b88);
7570    let mut x17: u32 = 0;
7571    let mut x18: u32 = 0;
7572    fp_mulx_u32(&mut x17, &mut x18, x12, 0x837e92f0);
7573    let mut x19: u32 = 0;
7574    let mut x20: u32 = 0;
7575    fp_mulx_u32(&mut x19, &mut x20, x12, 0x41790bf9);
7576    let mut x21: u32 = 0;
7577    let mut x22: u32 = 0;
7578    fp_mulx_u32(&mut x21, &mut x22, x12, 0xbfdf7d03);
7579    let mut x23: u32 = 0;
7580    let mut x24: u32 = 0;
7581    fp_mulx_u32(&mut x23, &mut x24, x12, 0x827dc3ac);
7582    let mut x25: u32 = 0;
7583    let mut x26: u32 = 0;
7584    fp_mulx_u32(&mut x25, &mut x26, x12, 0x22a5f111);
7585    let mut x27: u32 = 0;
7586    let mut x28: u32 = 0;
7587    fp_mulx_u32(&mut x27, &mut x28, x12, 0x62d6b46d);
7588    let mut x29: u32 = 0;
7589    let mut x30: u32 = 0;
7590    fp_mulx_u32(&mut x29, &mut x30, x12, 0x329fcaa);
7591    let mut x31: u32 = 0;
7592    let mut x32: u32 = 0;
7593    fp_mulx_u32(&mut x31, &mut x32, x12, 0xb00431b1);
7594    let mut x33: u32 = 0;
7595    let mut x34: u32 = 0;
7596    fp_mulx_u32(&mut x33, &mut x34, x12, 0xb786686c);
7597    let mut x35: u32 = 0;
7598    let mut x36: u32 = 0;
7599    fp_mulx_u32(&mut x35, &mut x36, x12, 0x9400cd22);
7600    let mut x37: u32 = 0;
7601    let mut x38: FpU1 = 0;
7602    fp_addcarryx_u32(&mut x37, &mut x38, 0x0, x36, x33);
7603    let mut x39: u32 = 0;
7604    let mut x40: FpU1 = 0;
7605    fp_addcarryx_u32(&mut x39, &mut x40, x38, x34, x31);
7606    let mut x41: u32 = 0;
7607    let mut x42: FpU1 = 0;
7608    fp_addcarryx_u32(&mut x41, &mut x42, x40, x32, x29);
7609    let mut x43: u32 = 0;
7610    let mut x44: FpU1 = 0;
7611    fp_addcarryx_u32(&mut x43, &mut x44, x42, x30, x27);
7612    let mut x45: u32 = 0;
7613    let mut x46: FpU1 = 0;
7614    fp_addcarryx_u32(&mut x45, &mut x46, x44, x28, x25);
7615    let mut x47: u32 = 0;
7616    let mut x48: FpU1 = 0;
7617    fp_addcarryx_u32(&mut x47, &mut x48, x46, x26, x23);
7618    let mut x49: u32 = 0;
7619    let mut x50: FpU1 = 0;
7620    fp_addcarryx_u32(&mut x49, &mut x50, x48, x24, x21);
7621    let mut x51: u32 = 0;
7622    let mut x52: FpU1 = 0;
7623    fp_addcarryx_u32(&mut x51, &mut x52, x50, x22, x19);
7624    let mut x53: u32 = 0;
7625    let mut x54: FpU1 = 0;
7626    fp_addcarryx_u32(&mut x53, &mut x54, x52, x20, x17);
7627    let mut x55: u32 = 0;
7628    let mut x56: FpU1 = 0;
7629    fp_addcarryx_u32(&mut x55, &mut x56, x54, x18, x15);
7630    let mut x57: u32 = 0;
7631    let mut x58: FpU1 = 0;
7632    fp_addcarryx_u32(&mut x57, &mut x58, x56, x16, x13);
7633    let mut x59: u32 = 0;
7634    let mut x60: u32 = 0;
7635    fp_mulx_u32(&mut x59, &mut x60, x35, 0xffffffff);
7636    let mut x61: u32 = 0;
7637    let mut x62: u32 = 0;
7638    fp_mulx_u32(&mut x61, &mut x62, x59, 0x1ae3a46);
7639    let mut x63: u32 = 0;
7640    let mut x64: u32 = 0;
7641    fp_mulx_u32(&mut x63, &mut x64, x59, 0x17c510ea);
7642    let mut x65: u32 = 0;
7643    let mut x66: u32 = 0;
7644    fp_mulx_u32(&mut x65, &mut x66, x59, 0xc63b05c0);
7645    let mut x67: u32 = 0;
7646    let mut x68: u32 = 0;
7647    fp_mulx_u32(&mut x67, &mut x68, x59, 0x6ca1493b);
7648    let mut x69: u32 = 0;
7649    let mut x70: u32 = 0;
7650    fp_mulx_u32(&mut x69, &mut x70, x59, 0x1a22d9f3);
7651    let mut x71: u32 = 0;
7652    let mut x72: u32 = 0;
7653    fp_mulx_u32(&mut x71, &mut x72, x59, 0xf5138f);
7654    let mut x73: u32 = 0;
7655    let mut x74: u32 = 0;
7656    fp_mulx_u32(&mut x73, &mut x74, x59, 0x1ef3622f);
7657    let mut x75: u32 = 0;
7658    let mut x76: u32 = 0;
7659    fp_mulx_u32(&mut x75, &mut x76, x59, 0xba094800);
7660    let mut x77: u32 = 0;
7661    let mut x78: u32 = 0;
7662    fp_mulx_u32(&mut x77, &mut x78, x59, 0x170b5d44);
7663    let mut x79: u32 = 0;
7664    let mut x80: u32 = 0;
7665    fp_mulx_u32(&mut x79, &mut x80, x59, 0x30000000);
7666    let mut x81: u32 = 0;
7667    let mut x82: u32 = 0;
7668    fp_mulx_u32(&mut x81, &mut x82, x59, 0x8508c000);
7669    let mut x83: u32 = 0;
7670    let mut x84: FpU1 = 0;
7671    fp_addcarryx_u32(&mut x83, &mut x84, 0x0, x82, x79);
7672    let mut x85: u32 = 0;
7673    let mut x86: FpU1 = 0;
7674    fp_addcarryx_u32(&mut x85, &mut x86, x84, x80, x77);
7675    let mut x87: u32 = 0;
7676    let mut x88: FpU1 = 0;
7677    fp_addcarryx_u32(&mut x87, &mut x88, x86, x78, x75);
7678    let mut x89: u32 = 0;
7679    let mut x90: FpU1 = 0;
7680    fp_addcarryx_u32(&mut x89, &mut x90, x88, x76, x73);
7681    let mut x91: u32 = 0;
7682    let mut x92: FpU1 = 0;
7683    fp_addcarryx_u32(&mut x91, &mut x92, x90, x74, x71);
7684    let mut x93: u32 = 0;
7685    let mut x94: FpU1 = 0;
7686    fp_addcarryx_u32(&mut x93, &mut x94, x92, x72, x69);
7687    let mut x95: u32 = 0;
7688    let mut x96: FpU1 = 0;
7689    fp_addcarryx_u32(&mut x95, &mut x96, x94, x70, x67);
7690    let mut x97: u32 = 0;
7691    let mut x98: FpU1 = 0;
7692    fp_addcarryx_u32(&mut x97, &mut x98, x96, x68, x65);
7693    let mut x99: u32 = 0;
7694    let mut x100: FpU1 = 0;
7695    fp_addcarryx_u32(&mut x99, &mut x100, x98, x66, x63);
7696    let mut x101: u32 = 0;
7697    let mut x102: FpU1 = 0;
7698    fp_addcarryx_u32(&mut x101, &mut x102, x100, x64, x61);
7699    let mut x103: u32 = 0;
7700    let mut x104: FpU1 = 0;
7701    fp_addcarryx_u32(&mut x103, &mut x104, 0x0, x35, x59);
7702    let mut x105: u32 = 0;
7703    let mut x106: FpU1 = 0;
7704    fp_addcarryx_u32(&mut x105, &mut x106, x104, x37, x81);
7705    let mut x107: u32 = 0;
7706    let mut x108: FpU1 = 0;
7707    fp_addcarryx_u32(&mut x107, &mut x108, x106, x39, x83);
7708    let mut x109: u32 = 0;
7709    let mut x110: FpU1 = 0;
7710    fp_addcarryx_u32(&mut x109, &mut x110, x108, x41, x85);
7711    let mut x111: u32 = 0;
7712    let mut x112: FpU1 = 0;
7713    fp_addcarryx_u32(&mut x111, &mut x112, x110, x43, x87);
7714    let mut x113: u32 = 0;
7715    let mut x114: FpU1 = 0;
7716    fp_addcarryx_u32(&mut x113, &mut x114, x112, x45, x89);
7717    let mut x115: u32 = 0;
7718    let mut x116: FpU1 = 0;
7719    fp_addcarryx_u32(&mut x115, &mut x116, x114, x47, x91);
7720    let mut x117: u32 = 0;
7721    let mut x118: FpU1 = 0;
7722    fp_addcarryx_u32(&mut x117, &mut x118, x116, x49, x93);
7723    let mut x119: u32 = 0;
7724    let mut x120: FpU1 = 0;
7725    fp_addcarryx_u32(&mut x119, &mut x120, x118, x51, x95);
7726    let mut x121: u32 = 0;
7727    let mut x122: FpU1 = 0;
7728    fp_addcarryx_u32(&mut x121, &mut x122, x120, x53, x97);
7729    let mut x123: u32 = 0;
7730    let mut x124: FpU1 = 0;
7731    fp_addcarryx_u32(&mut x123, &mut x124, x122, x55, x99);
7732    let mut x125: u32 = 0;
7733    let mut x126: FpU1 = 0;
7734    fp_addcarryx_u32(&mut x125, &mut x126, x124, x57, x101);
7735    let mut x127: u32 = 0;
7736    let mut x128: u32 = 0;
7737    fp_mulx_u32(&mut x127, &mut x128, x1, 0x6dfccb);
7738    let mut x129: u32 = 0;
7739    let mut x130: u32 = 0;
7740    fp_mulx_u32(&mut x129, &mut x130, x1, 0x1e914b88);
7741    let mut x131: u32 = 0;
7742    let mut x132: u32 = 0;
7743    fp_mulx_u32(&mut x131, &mut x132, x1, 0x837e92f0);
7744    let mut x133: u32 = 0;
7745    let mut x134: u32 = 0;
7746    fp_mulx_u32(&mut x133, &mut x134, x1, 0x41790bf9);
7747    let mut x135: u32 = 0;
7748    let mut x136: u32 = 0;
7749    fp_mulx_u32(&mut x135, &mut x136, x1, 0xbfdf7d03);
7750    let mut x137: u32 = 0;
7751    let mut x138: u32 = 0;
7752    fp_mulx_u32(&mut x137, &mut x138, x1, 0x827dc3ac);
7753    let mut x139: u32 = 0;
7754    let mut x140: u32 = 0;
7755    fp_mulx_u32(&mut x139, &mut x140, x1, 0x22a5f111);
7756    let mut x141: u32 = 0;
7757    let mut x142: u32 = 0;
7758    fp_mulx_u32(&mut x141, &mut x142, x1, 0x62d6b46d);
7759    let mut x143: u32 = 0;
7760    let mut x144: u32 = 0;
7761    fp_mulx_u32(&mut x143, &mut x144, x1, 0x329fcaa);
7762    let mut x145: u32 = 0;
7763    let mut x146: u32 = 0;
7764    fp_mulx_u32(&mut x145, &mut x146, x1, 0xb00431b1);
7765    let mut x147: u32 = 0;
7766    let mut x148: u32 = 0;
7767    fp_mulx_u32(&mut x147, &mut x148, x1, 0xb786686c);
7768    let mut x149: u32 = 0;
7769    let mut x150: u32 = 0;
7770    fp_mulx_u32(&mut x149, &mut x150, x1, 0x9400cd22);
7771    let mut x151: u32 = 0;
7772    let mut x152: FpU1 = 0;
7773    fp_addcarryx_u32(&mut x151, &mut x152, 0x0, x150, x147);
7774    let mut x153: u32 = 0;
7775    let mut x154: FpU1 = 0;
7776    fp_addcarryx_u32(&mut x153, &mut x154, x152, x148, x145);
7777    let mut x155: u32 = 0;
7778    let mut x156: FpU1 = 0;
7779    fp_addcarryx_u32(&mut x155, &mut x156, x154, x146, x143);
7780    let mut x157: u32 = 0;
7781    let mut x158: FpU1 = 0;
7782    fp_addcarryx_u32(&mut x157, &mut x158, x156, x144, x141);
7783    let mut x159: u32 = 0;
7784    let mut x160: FpU1 = 0;
7785    fp_addcarryx_u32(&mut x159, &mut x160, x158, x142, x139);
7786    let mut x161: u32 = 0;
7787    let mut x162: FpU1 = 0;
7788    fp_addcarryx_u32(&mut x161, &mut x162, x160, x140, x137);
7789    let mut x163: u32 = 0;
7790    let mut x164: FpU1 = 0;
7791    fp_addcarryx_u32(&mut x163, &mut x164, x162, x138, x135);
7792    let mut x165: u32 = 0;
7793    let mut x166: FpU1 = 0;
7794    fp_addcarryx_u32(&mut x165, &mut x166, x164, x136, x133);
7795    let mut x167: u32 = 0;
7796    let mut x168: FpU1 = 0;
7797    fp_addcarryx_u32(&mut x167, &mut x168, x166, x134, x131);
7798    let mut x169: u32 = 0;
7799    let mut x170: FpU1 = 0;
7800    fp_addcarryx_u32(&mut x169, &mut x170, x168, x132, x129);
7801    let mut x171: u32 = 0;
7802    let mut x172: FpU1 = 0;
7803    fp_addcarryx_u32(&mut x171, &mut x172, x170, x130, x127);
7804    let mut x173: u32 = 0;
7805    let mut x174: FpU1 = 0;
7806    fp_addcarryx_u32(&mut x173, &mut x174, 0x0, x105, x149);
7807    let mut x175: u32 = 0;
7808    let mut x176: FpU1 = 0;
7809    fp_addcarryx_u32(&mut x175, &mut x176, x174, x107, x151);
7810    let mut x177: u32 = 0;
7811    let mut x178: FpU1 = 0;
7812    fp_addcarryx_u32(&mut x177, &mut x178, x176, x109, x153);
7813    let mut x179: u32 = 0;
7814    let mut x180: FpU1 = 0;
7815    fp_addcarryx_u32(&mut x179, &mut x180, x178, x111, x155);
7816    let mut x181: u32 = 0;
7817    let mut x182: FpU1 = 0;
7818    fp_addcarryx_u32(&mut x181, &mut x182, x180, x113, x157);
7819    let mut x183: u32 = 0;
7820    let mut x184: FpU1 = 0;
7821    fp_addcarryx_u32(&mut x183, &mut x184, x182, x115, x159);
7822    let mut x185: u32 = 0;
7823    let mut x186: FpU1 = 0;
7824    fp_addcarryx_u32(&mut x185, &mut x186, x184, x117, x161);
7825    let mut x187: u32 = 0;
7826    let mut x188: FpU1 = 0;
7827    fp_addcarryx_u32(&mut x187, &mut x188, x186, x119, x163);
7828    let mut x189: u32 = 0;
7829    let mut x190: FpU1 = 0;
7830    fp_addcarryx_u32(&mut x189, &mut x190, x188, x121, x165);
7831    let mut x191: u32 = 0;
7832    let mut x192: FpU1 = 0;
7833    fp_addcarryx_u32(&mut x191, &mut x192, x190, x123, x167);
7834    let mut x193: u32 = 0;
7835    let mut x194: FpU1 = 0;
7836    fp_addcarryx_u32(&mut x193, &mut x194, x192, x125, x169);
7837    let mut x195: u32 = 0;
7838    let mut x196: FpU1 = 0;
7839    fp_addcarryx_u32(
7840        &mut x195,
7841        &mut x196,
7842        x194,
7843        (((x126 as u32) + ((x58 as u32) + x14)) + ((x102 as u32) + x62)),
7844        x171,
7845    );
7846    let mut x197: u32 = 0;
7847    let mut x198: u32 = 0;
7848    fp_mulx_u32(&mut x197, &mut x198, x173, 0xffffffff);
7849    let mut x199: u32 = 0;
7850    let mut x200: u32 = 0;
7851    fp_mulx_u32(&mut x199, &mut x200, x197, 0x1ae3a46);
7852    let mut x201: u32 = 0;
7853    let mut x202: u32 = 0;
7854    fp_mulx_u32(&mut x201, &mut x202, x197, 0x17c510ea);
7855    let mut x203: u32 = 0;
7856    let mut x204: u32 = 0;
7857    fp_mulx_u32(&mut x203, &mut x204, x197, 0xc63b05c0);
7858    let mut x205: u32 = 0;
7859    let mut x206: u32 = 0;
7860    fp_mulx_u32(&mut x205, &mut x206, x197, 0x6ca1493b);
7861    let mut x207: u32 = 0;
7862    let mut x208: u32 = 0;
7863    fp_mulx_u32(&mut x207, &mut x208, x197, 0x1a22d9f3);
7864    let mut x209: u32 = 0;
7865    let mut x210: u32 = 0;
7866    fp_mulx_u32(&mut x209, &mut x210, x197, 0xf5138f);
7867    let mut x211: u32 = 0;
7868    let mut x212: u32 = 0;
7869    fp_mulx_u32(&mut x211, &mut x212, x197, 0x1ef3622f);
7870    let mut x213: u32 = 0;
7871    let mut x214: u32 = 0;
7872    fp_mulx_u32(&mut x213, &mut x214, x197, 0xba094800);
7873    let mut x215: u32 = 0;
7874    let mut x216: u32 = 0;
7875    fp_mulx_u32(&mut x215, &mut x216, x197, 0x170b5d44);
7876    let mut x217: u32 = 0;
7877    let mut x218: u32 = 0;
7878    fp_mulx_u32(&mut x217, &mut x218, x197, 0x30000000);
7879    let mut x219: u32 = 0;
7880    let mut x220: u32 = 0;
7881    fp_mulx_u32(&mut x219, &mut x220, x197, 0x8508c000);
7882    let mut x221: u32 = 0;
7883    let mut x222: FpU1 = 0;
7884    fp_addcarryx_u32(&mut x221, &mut x222, 0x0, x220, x217);
7885    let mut x223: u32 = 0;
7886    let mut x224: FpU1 = 0;
7887    fp_addcarryx_u32(&mut x223, &mut x224, x222, x218, x215);
7888    let mut x225: u32 = 0;
7889    let mut x226: FpU1 = 0;
7890    fp_addcarryx_u32(&mut x225, &mut x226, x224, x216, x213);
7891    let mut x227: u32 = 0;
7892    let mut x228: FpU1 = 0;
7893    fp_addcarryx_u32(&mut x227, &mut x228, x226, x214, x211);
7894    let mut x229: u32 = 0;
7895    let mut x230: FpU1 = 0;
7896    fp_addcarryx_u32(&mut x229, &mut x230, x228, x212, x209);
7897    let mut x231: u32 = 0;
7898    let mut x232: FpU1 = 0;
7899    fp_addcarryx_u32(&mut x231, &mut x232, x230, x210, x207);
7900    let mut x233: u32 = 0;
7901    let mut x234: FpU1 = 0;
7902    fp_addcarryx_u32(&mut x233, &mut x234, x232, x208, x205);
7903    let mut x235: u32 = 0;
7904    let mut x236: FpU1 = 0;
7905    fp_addcarryx_u32(&mut x235, &mut x236, x234, x206, x203);
7906    let mut x237: u32 = 0;
7907    let mut x238: FpU1 = 0;
7908    fp_addcarryx_u32(&mut x237, &mut x238, x236, x204, x201);
7909    let mut x239: u32 = 0;
7910    let mut x240: FpU1 = 0;
7911    fp_addcarryx_u32(&mut x239, &mut x240, x238, x202, x199);
7912    let mut x241: u32 = 0;
7913    let mut x242: FpU1 = 0;
7914    fp_addcarryx_u32(&mut x241, &mut x242, 0x0, x173, x197);
7915    let mut x243: u32 = 0;
7916    let mut x244: FpU1 = 0;
7917    fp_addcarryx_u32(&mut x243, &mut x244, x242, x175, x219);
7918    let mut x245: u32 = 0;
7919    let mut x246: FpU1 = 0;
7920    fp_addcarryx_u32(&mut x245, &mut x246, x244, x177, x221);
7921    let mut x247: u32 = 0;
7922    let mut x248: FpU1 = 0;
7923    fp_addcarryx_u32(&mut x247, &mut x248, x246, x179, x223);
7924    let mut x249: u32 = 0;
7925    let mut x250: FpU1 = 0;
7926    fp_addcarryx_u32(&mut x249, &mut x250, x248, x181, x225);
7927    let mut x251: u32 = 0;
7928    let mut x252: FpU1 = 0;
7929    fp_addcarryx_u32(&mut x251, &mut x252, x250, x183, x227);
7930    let mut x253: u32 = 0;
7931    let mut x254: FpU1 = 0;
7932    fp_addcarryx_u32(&mut x253, &mut x254, x252, x185, x229);
7933    let mut x255: u32 = 0;
7934    let mut x256: FpU1 = 0;
7935    fp_addcarryx_u32(&mut x255, &mut x256, x254, x187, x231);
7936    let mut x257: u32 = 0;
7937    let mut x258: FpU1 = 0;
7938    fp_addcarryx_u32(&mut x257, &mut x258, x256, x189, x233);
7939    let mut x259: u32 = 0;
7940    let mut x260: FpU1 = 0;
7941    fp_addcarryx_u32(&mut x259, &mut x260, x258, x191, x235);
7942    let mut x261: u32 = 0;
7943    let mut x262: FpU1 = 0;
7944    fp_addcarryx_u32(&mut x261, &mut x262, x260, x193, x237);
7945    let mut x263: u32 = 0;
7946    let mut x264: FpU1 = 0;
7947    fp_addcarryx_u32(&mut x263, &mut x264, x262, x195, x239);
7948    let mut x265: u32 = 0;
7949    let mut x266: u32 = 0;
7950    fp_mulx_u32(&mut x265, &mut x266, x2, 0x6dfccb);
7951    let mut x267: u32 = 0;
7952    let mut x268: u32 = 0;
7953    fp_mulx_u32(&mut x267, &mut x268, x2, 0x1e914b88);
7954    let mut x269: u32 = 0;
7955    let mut x270: u32 = 0;
7956    fp_mulx_u32(&mut x269, &mut x270, x2, 0x837e92f0);
7957    let mut x271: u32 = 0;
7958    let mut x272: u32 = 0;
7959    fp_mulx_u32(&mut x271, &mut x272, x2, 0x41790bf9);
7960    let mut x273: u32 = 0;
7961    let mut x274: u32 = 0;
7962    fp_mulx_u32(&mut x273, &mut x274, x2, 0xbfdf7d03);
7963    let mut x275: u32 = 0;
7964    let mut x276: u32 = 0;
7965    fp_mulx_u32(&mut x275, &mut x276, x2, 0x827dc3ac);
7966    let mut x277: u32 = 0;
7967    let mut x278: u32 = 0;
7968    fp_mulx_u32(&mut x277, &mut x278, x2, 0x22a5f111);
7969    let mut x279: u32 = 0;
7970    let mut x280: u32 = 0;
7971    fp_mulx_u32(&mut x279, &mut x280, x2, 0x62d6b46d);
7972    let mut x281: u32 = 0;
7973    let mut x282: u32 = 0;
7974    fp_mulx_u32(&mut x281, &mut x282, x2, 0x329fcaa);
7975    let mut x283: u32 = 0;
7976    let mut x284: u32 = 0;
7977    fp_mulx_u32(&mut x283, &mut x284, x2, 0xb00431b1);
7978    let mut x285: u32 = 0;
7979    let mut x286: u32 = 0;
7980    fp_mulx_u32(&mut x285, &mut x286, x2, 0xb786686c);
7981    let mut x287: u32 = 0;
7982    let mut x288: u32 = 0;
7983    fp_mulx_u32(&mut x287, &mut x288, x2, 0x9400cd22);
7984    let mut x289: u32 = 0;
7985    let mut x290: FpU1 = 0;
7986    fp_addcarryx_u32(&mut x289, &mut x290, 0x0, x288, x285);
7987    let mut x291: u32 = 0;
7988    let mut x292: FpU1 = 0;
7989    fp_addcarryx_u32(&mut x291, &mut x292, x290, x286, x283);
7990    let mut x293: u32 = 0;
7991    let mut x294: FpU1 = 0;
7992    fp_addcarryx_u32(&mut x293, &mut x294, x292, x284, x281);
7993    let mut x295: u32 = 0;
7994    let mut x296: FpU1 = 0;
7995    fp_addcarryx_u32(&mut x295, &mut x296, x294, x282, x279);
7996    let mut x297: u32 = 0;
7997    let mut x298: FpU1 = 0;
7998    fp_addcarryx_u32(&mut x297, &mut x298, x296, x280, x277);
7999    let mut x299: u32 = 0;
8000    let mut x300: FpU1 = 0;
8001    fp_addcarryx_u32(&mut x299, &mut x300, x298, x278, x275);
8002    let mut x301: u32 = 0;
8003    let mut x302: FpU1 = 0;
8004    fp_addcarryx_u32(&mut x301, &mut x302, x300, x276, x273);
8005    let mut x303: u32 = 0;
8006    let mut x304: FpU1 = 0;
8007    fp_addcarryx_u32(&mut x303, &mut x304, x302, x274, x271);
8008    let mut x305: u32 = 0;
8009    let mut x306: FpU1 = 0;
8010    fp_addcarryx_u32(&mut x305, &mut x306, x304, x272, x269);
8011    let mut x307: u32 = 0;
8012    let mut x308: FpU1 = 0;
8013    fp_addcarryx_u32(&mut x307, &mut x308, x306, x270, x267);
8014    let mut x309: u32 = 0;
8015    let mut x310: FpU1 = 0;
8016    fp_addcarryx_u32(&mut x309, &mut x310, x308, x268, x265);
8017    let mut x311: u32 = 0;
8018    let mut x312: FpU1 = 0;
8019    fp_addcarryx_u32(&mut x311, &mut x312, 0x0, x243, x287);
8020    let mut x313: u32 = 0;
8021    let mut x314: FpU1 = 0;
8022    fp_addcarryx_u32(&mut x313, &mut x314, x312, x245, x289);
8023    let mut x315: u32 = 0;
8024    let mut x316: FpU1 = 0;
8025    fp_addcarryx_u32(&mut x315, &mut x316, x314, x247, x291);
8026    let mut x317: u32 = 0;
8027    let mut x318: FpU1 = 0;
8028    fp_addcarryx_u32(&mut x317, &mut x318, x316, x249, x293);
8029    let mut x319: u32 = 0;
8030    let mut x320: FpU1 = 0;
8031    fp_addcarryx_u32(&mut x319, &mut x320, x318, x251, x295);
8032    let mut x321: u32 = 0;
8033    let mut x322: FpU1 = 0;
8034    fp_addcarryx_u32(&mut x321, &mut x322, x320, x253, x297);
8035    let mut x323: u32 = 0;
8036    let mut x324: FpU1 = 0;
8037    fp_addcarryx_u32(&mut x323, &mut x324, x322, x255, x299);
8038    let mut x325: u32 = 0;
8039    let mut x326: FpU1 = 0;
8040    fp_addcarryx_u32(&mut x325, &mut x326, x324, x257, x301);
8041    let mut x327: u32 = 0;
8042    let mut x328: FpU1 = 0;
8043    fp_addcarryx_u32(&mut x327, &mut x328, x326, x259, x303);
8044    let mut x329: u32 = 0;
8045    let mut x330: FpU1 = 0;
8046    fp_addcarryx_u32(&mut x329, &mut x330, x328, x261, x305);
8047    let mut x331: u32 = 0;
8048    let mut x332: FpU1 = 0;
8049    fp_addcarryx_u32(&mut x331, &mut x332, x330, x263, x307);
8050    let mut x333: u32 = 0;
8051    let mut x334: FpU1 = 0;
8052    fp_addcarryx_u32(
8053        &mut x333,
8054        &mut x334,
8055        x332,
8056        (((x264 as u32) + ((x196 as u32) + ((x172 as u32) + x128))) + ((x240 as u32) + x200)),
8057        x309,
8058    );
8059    let mut x335: u32 = 0;
8060    let mut x336: u32 = 0;
8061    fp_mulx_u32(&mut x335, &mut x336, x311, 0xffffffff);
8062    let mut x337: u32 = 0;
8063    let mut x338: u32 = 0;
8064    fp_mulx_u32(&mut x337, &mut x338, x335, 0x1ae3a46);
8065    let mut x339: u32 = 0;
8066    let mut x340: u32 = 0;
8067    fp_mulx_u32(&mut x339, &mut x340, x335, 0x17c510ea);
8068    let mut x341: u32 = 0;
8069    let mut x342: u32 = 0;
8070    fp_mulx_u32(&mut x341, &mut x342, x335, 0xc63b05c0);
8071    let mut x343: u32 = 0;
8072    let mut x344: u32 = 0;
8073    fp_mulx_u32(&mut x343, &mut x344, x335, 0x6ca1493b);
8074    let mut x345: u32 = 0;
8075    let mut x346: u32 = 0;
8076    fp_mulx_u32(&mut x345, &mut x346, x335, 0x1a22d9f3);
8077    let mut x347: u32 = 0;
8078    let mut x348: u32 = 0;
8079    fp_mulx_u32(&mut x347, &mut x348, x335, 0xf5138f);
8080    let mut x349: u32 = 0;
8081    let mut x350: u32 = 0;
8082    fp_mulx_u32(&mut x349, &mut x350, x335, 0x1ef3622f);
8083    let mut x351: u32 = 0;
8084    let mut x352: u32 = 0;
8085    fp_mulx_u32(&mut x351, &mut x352, x335, 0xba094800);
8086    let mut x353: u32 = 0;
8087    let mut x354: u32 = 0;
8088    fp_mulx_u32(&mut x353, &mut x354, x335, 0x170b5d44);
8089    let mut x355: u32 = 0;
8090    let mut x356: u32 = 0;
8091    fp_mulx_u32(&mut x355, &mut x356, x335, 0x30000000);
8092    let mut x357: u32 = 0;
8093    let mut x358: u32 = 0;
8094    fp_mulx_u32(&mut x357, &mut x358, x335, 0x8508c000);
8095    let mut x359: u32 = 0;
8096    let mut x360: FpU1 = 0;
8097    fp_addcarryx_u32(&mut x359, &mut x360, 0x0, x358, x355);
8098    let mut x361: u32 = 0;
8099    let mut x362: FpU1 = 0;
8100    fp_addcarryx_u32(&mut x361, &mut x362, x360, x356, x353);
8101    let mut x363: u32 = 0;
8102    let mut x364: FpU1 = 0;
8103    fp_addcarryx_u32(&mut x363, &mut x364, x362, x354, x351);
8104    let mut x365: u32 = 0;
8105    let mut x366: FpU1 = 0;
8106    fp_addcarryx_u32(&mut x365, &mut x366, x364, x352, x349);
8107    let mut x367: u32 = 0;
8108    let mut x368: FpU1 = 0;
8109    fp_addcarryx_u32(&mut x367, &mut x368, x366, x350, x347);
8110    let mut x369: u32 = 0;
8111    let mut x370: FpU1 = 0;
8112    fp_addcarryx_u32(&mut x369, &mut x370, x368, x348, x345);
8113    let mut x371: u32 = 0;
8114    let mut x372: FpU1 = 0;
8115    fp_addcarryx_u32(&mut x371, &mut x372, x370, x346, x343);
8116    let mut x373: u32 = 0;
8117    let mut x374: FpU1 = 0;
8118    fp_addcarryx_u32(&mut x373, &mut x374, x372, x344, x341);
8119    let mut x375: u32 = 0;
8120    let mut x376: FpU1 = 0;
8121    fp_addcarryx_u32(&mut x375, &mut x376, x374, x342, x339);
8122    let mut x377: u32 = 0;
8123    let mut x378: FpU1 = 0;
8124    fp_addcarryx_u32(&mut x377, &mut x378, x376, x340, x337);
8125    let mut x379: u32 = 0;
8126    let mut x380: FpU1 = 0;
8127    fp_addcarryx_u32(&mut x379, &mut x380, 0x0, x311, x335);
8128    let mut x381: u32 = 0;
8129    let mut x382: FpU1 = 0;
8130    fp_addcarryx_u32(&mut x381, &mut x382, x380, x313, x357);
8131    let mut x383: u32 = 0;
8132    let mut x384: FpU1 = 0;
8133    fp_addcarryx_u32(&mut x383, &mut x384, x382, x315, x359);
8134    let mut x385: u32 = 0;
8135    let mut x386: FpU1 = 0;
8136    fp_addcarryx_u32(&mut x385, &mut x386, x384, x317, x361);
8137    let mut x387: u32 = 0;
8138    let mut x388: FpU1 = 0;
8139    fp_addcarryx_u32(&mut x387, &mut x388, x386, x319, x363);
8140    let mut x389: u32 = 0;
8141    let mut x390: FpU1 = 0;
8142    fp_addcarryx_u32(&mut x389, &mut x390, x388, x321, x365);
8143    let mut x391: u32 = 0;
8144    let mut x392: FpU1 = 0;
8145    fp_addcarryx_u32(&mut x391, &mut x392, x390, x323, x367);
8146    let mut x393: u32 = 0;
8147    let mut x394: FpU1 = 0;
8148    fp_addcarryx_u32(&mut x393, &mut x394, x392, x325, x369);
8149    let mut x395: u32 = 0;
8150    let mut x396: FpU1 = 0;
8151    fp_addcarryx_u32(&mut x395, &mut x396, x394, x327, x371);
8152    let mut x397: u32 = 0;
8153    let mut x398: FpU1 = 0;
8154    fp_addcarryx_u32(&mut x397, &mut x398, x396, x329, x373);
8155    let mut x399: u32 = 0;
8156    let mut x400: FpU1 = 0;
8157    fp_addcarryx_u32(&mut x399, &mut x400, x398, x331, x375);
8158    let mut x401: u32 = 0;
8159    let mut x402: FpU1 = 0;
8160    fp_addcarryx_u32(&mut x401, &mut x402, x400, x333, x377);
8161    let mut x403: u32 = 0;
8162    let mut x404: u32 = 0;
8163    fp_mulx_u32(&mut x403, &mut x404, x3, 0x6dfccb);
8164    let mut x405: u32 = 0;
8165    let mut x406: u32 = 0;
8166    fp_mulx_u32(&mut x405, &mut x406, x3, 0x1e914b88);
8167    let mut x407: u32 = 0;
8168    let mut x408: u32 = 0;
8169    fp_mulx_u32(&mut x407, &mut x408, x3, 0x837e92f0);
8170    let mut x409: u32 = 0;
8171    let mut x410: u32 = 0;
8172    fp_mulx_u32(&mut x409, &mut x410, x3, 0x41790bf9);
8173    let mut x411: u32 = 0;
8174    let mut x412: u32 = 0;
8175    fp_mulx_u32(&mut x411, &mut x412, x3, 0xbfdf7d03);
8176    let mut x413: u32 = 0;
8177    let mut x414: u32 = 0;
8178    fp_mulx_u32(&mut x413, &mut x414, x3, 0x827dc3ac);
8179    let mut x415: u32 = 0;
8180    let mut x416: u32 = 0;
8181    fp_mulx_u32(&mut x415, &mut x416, x3, 0x22a5f111);
8182    let mut x417: u32 = 0;
8183    let mut x418: u32 = 0;
8184    fp_mulx_u32(&mut x417, &mut x418, x3, 0x62d6b46d);
8185    let mut x419: u32 = 0;
8186    let mut x420: u32 = 0;
8187    fp_mulx_u32(&mut x419, &mut x420, x3, 0x329fcaa);
8188    let mut x421: u32 = 0;
8189    let mut x422: u32 = 0;
8190    fp_mulx_u32(&mut x421, &mut x422, x3, 0xb00431b1);
8191    let mut x423: u32 = 0;
8192    let mut x424: u32 = 0;
8193    fp_mulx_u32(&mut x423, &mut x424, x3, 0xb786686c);
8194    let mut x425: u32 = 0;
8195    let mut x426: u32 = 0;
8196    fp_mulx_u32(&mut x425, &mut x426, x3, 0x9400cd22);
8197    let mut x427: u32 = 0;
8198    let mut x428: FpU1 = 0;
8199    fp_addcarryx_u32(&mut x427, &mut x428, 0x0, x426, x423);
8200    let mut x429: u32 = 0;
8201    let mut x430: FpU1 = 0;
8202    fp_addcarryx_u32(&mut x429, &mut x430, x428, x424, x421);
8203    let mut x431: u32 = 0;
8204    let mut x432: FpU1 = 0;
8205    fp_addcarryx_u32(&mut x431, &mut x432, x430, x422, x419);
8206    let mut x433: u32 = 0;
8207    let mut x434: FpU1 = 0;
8208    fp_addcarryx_u32(&mut x433, &mut x434, x432, x420, x417);
8209    let mut x435: u32 = 0;
8210    let mut x436: FpU1 = 0;
8211    fp_addcarryx_u32(&mut x435, &mut x436, x434, x418, x415);
8212    let mut x437: u32 = 0;
8213    let mut x438: FpU1 = 0;
8214    fp_addcarryx_u32(&mut x437, &mut x438, x436, x416, x413);
8215    let mut x439: u32 = 0;
8216    let mut x440: FpU1 = 0;
8217    fp_addcarryx_u32(&mut x439, &mut x440, x438, x414, x411);
8218    let mut x441: u32 = 0;
8219    let mut x442: FpU1 = 0;
8220    fp_addcarryx_u32(&mut x441, &mut x442, x440, x412, x409);
8221    let mut x443: u32 = 0;
8222    let mut x444: FpU1 = 0;
8223    fp_addcarryx_u32(&mut x443, &mut x444, x442, x410, x407);
8224    let mut x445: u32 = 0;
8225    let mut x446: FpU1 = 0;
8226    fp_addcarryx_u32(&mut x445, &mut x446, x444, x408, x405);
8227    let mut x447: u32 = 0;
8228    let mut x448: FpU1 = 0;
8229    fp_addcarryx_u32(&mut x447, &mut x448, x446, x406, x403);
8230    let mut x449: u32 = 0;
8231    let mut x450: FpU1 = 0;
8232    fp_addcarryx_u32(&mut x449, &mut x450, 0x0, x381, x425);
8233    let mut x451: u32 = 0;
8234    let mut x452: FpU1 = 0;
8235    fp_addcarryx_u32(&mut x451, &mut x452, x450, x383, x427);
8236    let mut x453: u32 = 0;
8237    let mut x454: FpU1 = 0;
8238    fp_addcarryx_u32(&mut x453, &mut x454, x452, x385, x429);
8239    let mut x455: u32 = 0;
8240    let mut x456: FpU1 = 0;
8241    fp_addcarryx_u32(&mut x455, &mut x456, x454, x387, x431);
8242    let mut x457: u32 = 0;
8243    let mut x458: FpU1 = 0;
8244    fp_addcarryx_u32(&mut x457, &mut x458, x456, x389, x433);
8245    let mut x459: u32 = 0;
8246    let mut x460: FpU1 = 0;
8247    fp_addcarryx_u32(&mut x459, &mut x460, x458, x391, x435);
8248    let mut x461: u32 = 0;
8249    let mut x462: FpU1 = 0;
8250    fp_addcarryx_u32(&mut x461, &mut x462, x460, x393, x437);
8251    let mut x463: u32 = 0;
8252    let mut x464: FpU1 = 0;
8253    fp_addcarryx_u32(&mut x463, &mut x464, x462, x395, x439);
8254    let mut x465: u32 = 0;
8255    let mut x466: FpU1 = 0;
8256    fp_addcarryx_u32(&mut x465, &mut x466, x464, x397, x441);
8257    let mut x467: u32 = 0;
8258    let mut x468: FpU1 = 0;
8259    fp_addcarryx_u32(&mut x467, &mut x468, x466, x399, x443);
8260    let mut x469: u32 = 0;
8261    let mut x470: FpU1 = 0;
8262    fp_addcarryx_u32(&mut x469, &mut x470, x468, x401, x445);
8263    let mut x471: u32 = 0;
8264    let mut x472: FpU1 = 0;
8265    fp_addcarryx_u32(
8266        &mut x471,
8267        &mut x472,
8268        x470,
8269        (((x402 as u32) + ((x334 as u32) + ((x310 as u32) + x266))) + ((x378 as u32) + x338)),
8270        x447,
8271    );
8272    let mut x473: u32 = 0;
8273    let mut x474: u32 = 0;
8274    fp_mulx_u32(&mut x473, &mut x474, x449, 0xffffffff);
8275    let mut x475: u32 = 0;
8276    let mut x476: u32 = 0;
8277    fp_mulx_u32(&mut x475, &mut x476, x473, 0x1ae3a46);
8278    let mut x477: u32 = 0;
8279    let mut x478: u32 = 0;
8280    fp_mulx_u32(&mut x477, &mut x478, x473, 0x17c510ea);
8281    let mut x479: u32 = 0;
8282    let mut x480: u32 = 0;
8283    fp_mulx_u32(&mut x479, &mut x480, x473, 0xc63b05c0);
8284    let mut x481: u32 = 0;
8285    let mut x482: u32 = 0;
8286    fp_mulx_u32(&mut x481, &mut x482, x473, 0x6ca1493b);
8287    let mut x483: u32 = 0;
8288    let mut x484: u32 = 0;
8289    fp_mulx_u32(&mut x483, &mut x484, x473, 0x1a22d9f3);
8290    let mut x485: u32 = 0;
8291    let mut x486: u32 = 0;
8292    fp_mulx_u32(&mut x485, &mut x486, x473, 0xf5138f);
8293    let mut x487: u32 = 0;
8294    let mut x488: u32 = 0;
8295    fp_mulx_u32(&mut x487, &mut x488, x473, 0x1ef3622f);
8296    let mut x489: u32 = 0;
8297    let mut x490: u32 = 0;
8298    fp_mulx_u32(&mut x489, &mut x490, x473, 0xba094800);
8299    let mut x491: u32 = 0;
8300    let mut x492: u32 = 0;
8301    fp_mulx_u32(&mut x491, &mut x492, x473, 0x170b5d44);
8302    let mut x493: u32 = 0;
8303    let mut x494: u32 = 0;
8304    fp_mulx_u32(&mut x493, &mut x494, x473, 0x30000000);
8305    let mut x495: u32 = 0;
8306    let mut x496: u32 = 0;
8307    fp_mulx_u32(&mut x495, &mut x496, x473, 0x8508c000);
8308    let mut x497: u32 = 0;
8309    let mut x498: FpU1 = 0;
8310    fp_addcarryx_u32(&mut x497, &mut x498, 0x0, x496, x493);
8311    let mut x499: u32 = 0;
8312    let mut x500: FpU1 = 0;
8313    fp_addcarryx_u32(&mut x499, &mut x500, x498, x494, x491);
8314    let mut x501: u32 = 0;
8315    let mut x502: FpU1 = 0;
8316    fp_addcarryx_u32(&mut x501, &mut x502, x500, x492, x489);
8317    let mut x503: u32 = 0;
8318    let mut x504: FpU1 = 0;
8319    fp_addcarryx_u32(&mut x503, &mut x504, x502, x490, x487);
8320    let mut x505: u32 = 0;
8321    let mut x506: FpU1 = 0;
8322    fp_addcarryx_u32(&mut x505, &mut x506, x504, x488, x485);
8323    let mut x507: u32 = 0;
8324    let mut x508: FpU1 = 0;
8325    fp_addcarryx_u32(&mut x507, &mut x508, x506, x486, x483);
8326    let mut x509: u32 = 0;
8327    let mut x510: FpU1 = 0;
8328    fp_addcarryx_u32(&mut x509, &mut x510, x508, x484, x481);
8329    let mut x511: u32 = 0;
8330    let mut x512: FpU1 = 0;
8331    fp_addcarryx_u32(&mut x511, &mut x512, x510, x482, x479);
8332    let mut x513: u32 = 0;
8333    let mut x514: FpU1 = 0;
8334    fp_addcarryx_u32(&mut x513, &mut x514, x512, x480, x477);
8335    let mut x515: u32 = 0;
8336    let mut x516: FpU1 = 0;
8337    fp_addcarryx_u32(&mut x515, &mut x516, x514, x478, x475);
8338    let mut x517: u32 = 0;
8339    let mut x518: FpU1 = 0;
8340    fp_addcarryx_u32(&mut x517, &mut x518, 0x0, x449, x473);
8341    let mut x519: u32 = 0;
8342    let mut x520: FpU1 = 0;
8343    fp_addcarryx_u32(&mut x519, &mut x520, x518, x451, x495);
8344    let mut x521: u32 = 0;
8345    let mut x522: FpU1 = 0;
8346    fp_addcarryx_u32(&mut x521, &mut x522, x520, x453, x497);
8347    let mut x523: u32 = 0;
8348    let mut x524: FpU1 = 0;
8349    fp_addcarryx_u32(&mut x523, &mut x524, x522, x455, x499);
8350    let mut x525: u32 = 0;
8351    let mut x526: FpU1 = 0;
8352    fp_addcarryx_u32(&mut x525, &mut x526, x524, x457, x501);
8353    let mut x527: u32 = 0;
8354    let mut x528: FpU1 = 0;
8355    fp_addcarryx_u32(&mut x527, &mut x528, x526, x459, x503);
8356    let mut x529: u32 = 0;
8357    let mut x530: FpU1 = 0;
8358    fp_addcarryx_u32(&mut x529, &mut x530, x528, x461, x505);
8359    let mut x531: u32 = 0;
8360    let mut x532: FpU1 = 0;
8361    fp_addcarryx_u32(&mut x531, &mut x532, x530, x463, x507);
8362    let mut x533: u32 = 0;
8363    let mut x534: FpU1 = 0;
8364    fp_addcarryx_u32(&mut x533, &mut x534, x532, x465, x509);
8365    let mut x535: u32 = 0;
8366    let mut x536: FpU1 = 0;
8367    fp_addcarryx_u32(&mut x535, &mut x536, x534, x467, x511);
8368    let mut x537: u32 = 0;
8369    let mut x538: FpU1 = 0;
8370    fp_addcarryx_u32(&mut x537, &mut x538, x536, x469, x513);
8371    let mut x539: u32 = 0;
8372    let mut x540: FpU1 = 0;
8373    fp_addcarryx_u32(&mut x539, &mut x540, x538, x471, x515);
8374    let mut x541: u32 = 0;
8375    let mut x542: u32 = 0;
8376    fp_mulx_u32(&mut x541, &mut x542, x4, 0x6dfccb);
8377    let mut x543: u32 = 0;
8378    let mut x544: u32 = 0;
8379    fp_mulx_u32(&mut x543, &mut x544, x4, 0x1e914b88);
8380    let mut x545: u32 = 0;
8381    let mut x546: u32 = 0;
8382    fp_mulx_u32(&mut x545, &mut x546, x4, 0x837e92f0);
8383    let mut x547: u32 = 0;
8384    let mut x548: u32 = 0;
8385    fp_mulx_u32(&mut x547, &mut x548, x4, 0x41790bf9);
8386    let mut x549: u32 = 0;
8387    let mut x550: u32 = 0;
8388    fp_mulx_u32(&mut x549, &mut x550, x4, 0xbfdf7d03);
8389    let mut x551: u32 = 0;
8390    let mut x552: u32 = 0;
8391    fp_mulx_u32(&mut x551, &mut x552, x4, 0x827dc3ac);
8392    let mut x553: u32 = 0;
8393    let mut x554: u32 = 0;
8394    fp_mulx_u32(&mut x553, &mut x554, x4, 0x22a5f111);
8395    let mut x555: u32 = 0;
8396    let mut x556: u32 = 0;
8397    fp_mulx_u32(&mut x555, &mut x556, x4, 0x62d6b46d);
8398    let mut x557: u32 = 0;
8399    let mut x558: u32 = 0;
8400    fp_mulx_u32(&mut x557, &mut x558, x4, 0x329fcaa);
8401    let mut x559: u32 = 0;
8402    let mut x560: u32 = 0;
8403    fp_mulx_u32(&mut x559, &mut x560, x4, 0xb00431b1);
8404    let mut x561: u32 = 0;
8405    let mut x562: u32 = 0;
8406    fp_mulx_u32(&mut x561, &mut x562, x4, 0xb786686c);
8407    let mut x563: u32 = 0;
8408    let mut x564: u32 = 0;
8409    fp_mulx_u32(&mut x563, &mut x564, x4, 0x9400cd22);
8410    let mut x565: u32 = 0;
8411    let mut x566: FpU1 = 0;
8412    fp_addcarryx_u32(&mut x565, &mut x566, 0x0, x564, x561);
8413    let mut x567: u32 = 0;
8414    let mut x568: FpU1 = 0;
8415    fp_addcarryx_u32(&mut x567, &mut x568, x566, x562, x559);
8416    let mut x569: u32 = 0;
8417    let mut x570: FpU1 = 0;
8418    fp_addcarryx_u32(&mut x569, &mut x570, x568, x560, x557);
8419    let mut x571: u32 = 0;
8420    let mut x572: FpU1 = 0;
8421    fp_addcarryx_u32(&mut x571, &mut x572, x570, x558, x555);
8422    let mut x573: u32 = 0;
8423    let mut x574: FpU1 = 0;
8424    fp_addcarryx_u32(&mut x573, &mut x574, x572, x556, x553);
8425    let mut x575: u32 = 0;
8426    let mut x576: FpU1 = 0;
8427    fp_addcarryx_u32(&mut x575, &mut x576, x574, x554, x551);
8428    let mut x577: u32 = 0;
8429    let mut x578: FpU1 = 0;
8430    fp_addcarryx_u32(&mut x577, &mut x578, x576, x552, x549);
8431    let mut x579: u32 = 0;
8432    let mut x580: FpU1 = 0;
8433    fp_addcarryx_u32(&mut x579, &mut x580, x578, x550, x547);
8434    let mut x581: u32 = 0;
8435    let mut x582: FpU1 = 0;
8436    fp_addcarryx_u32(&mut x581, &mut x582, x580, x548, x545);
8437    let mut x583: u32 = 0;
8438    let mut x584: FpU1 = 0;
8439    fp_addcarryx_u32(&mut x583, &mut x584, x582, x546, x543);
8440    let mut x585: u32 = 0;
8441    let mut x586: FpU1 = 0;
8442    fp_addcarryx_u32(&mut x585, &mut x586, x584, x544, x541);
8443    let mut x587: u32 = 0;
8444    let mut x588: FpU1 = 0;
8445    fp_addcarryx_u32(&mut x587, &mut x588, 0x0, x519, x563);
8446    let mut x589: u32 = 0;
8447    let mut x590: FpU1 = 0;
8448    fp_addcarryx_u32(&mut x589, &mut x590, x588, x521, x565);
8449    let mut x591: u32 = 0;
8450    let mut x592: FpU1 = 0;
8451    fp_addcarryx_u32(&mut x591, &mut x592, x590, x523, x567);
8452    let mut x593: u32 = 0;
8453    let mut x594: FpU1 = 0;
8454    fp_addcarryx_u32(&mut x593, &mut x594, x592, x525, x569);
8455    let mut x595: u32 = 0;
8456    let mut x596: FpU1 = 0;
8457    fp_addcarryx_u32(&mut x595, &mut x596, x594, x527, x571);
8458    let mut x597: u32 = 0;
8459    let mut x598: FpU1 = 0;
8460    fp_addcarryx_u32(&mut x597, &mut x598, x596, x529, x573);
8461    let mut x599: u32 = 0;
8462    let mut x600: FpU1 = 0;
8463    fp_addcarryx_u32(&mut x599, &mut x600, x598, x531, x575);
8464    let mut x601: u32 = 0;
8465    let mut x602: FpU1 = 0;
8466    fp_addcarryx_u32(&mut x601, &mut x602, x600, x533, x577);
8467    let mut x603: u32 = 0;
8468    let mut x604: FpU1 = 0;
8469    fp_addcarryx_u32(&mut x603, &mut x604, x602, x535, x579);
8470    let mut x605: u32 = 0;
8471    let mut x606: FpU1 = 0;
8472    fp_addcarryx_u32(&mut x605, &mut x606, x604, x537, x581);
8473    let mut x607: u32 = 0;
8474    let mut x608: FpU1 = 0;
8475    fp_addcarryx_u32(&mut x607, &mut x608, x606, x539, x583);
8476    let mut x609: u32 = 0;
8477    let mut x610: FpU1 = 0;
8478    fp_addcarryx_u32(
8479        &mut x609,
8480        &mut x610,
8481        x608,
8482        (((x540 as u32) + ((x472 as u32) + ((x448 as u32) + x404))) + ((x516 as u32) + x476)),
8483        x585,
8484    );
8485    let mut x611: u32 = 0;
8486    let mut x612: u32 = 0;
8487    fp_mulx_u32(&mut x611, &mut x612, x587, 0xffffffff);
8488    let mut x613: u32 = 0;
8489    let mut x614: u32 = 0;
8490    fp_mulx_u32(&mut x613, &mut x614, x611, 0x1ae3a46);
8491    let mut x615: u32 = 0;
8492    let mut x616: u32 = 0;
8493    fp_mulx_u32(&mut x615, &mut x616, x611, 0x17c510ea);
8494    let mut x617: u32 = 0;
8495    let mut x618: u32 = 0;
8496    fp_mulx_u32(&mut x617, &mut x618, x611, 0xc63b05c0);
8497    let mut x619: u32 = 0;
8498    let mut x620: u32 = 0;
8499    fp_mulx_u32(&mut x619, &mut x620, x611, 0x6ca1493b);
8500    let mut x621: u32 = 0;
8501    let mut x622: u32 = 0;
8502    fp_mulx_u32(&mut x621, &mut x622, x611, 0x1a22d9f3);
8503    let mut x623: u32 = 0;
8504    let mut x624: u32 = 0;
8505    fp_mulx_u32(&mut x623, &mut x624, x611, 0xf5138f);
8506    let mut x625: u32 = 0;
8507    let mut x626: u32 = 0;
8508    fp_mulx_u32(&mut x625, &mut x626, x611, 0x1ef3622f);
8509    let mut x627: u32 = 0;
8510    let mut x628: u32 = 0;
8511    fp_mulx_u32(&mut x627, &mut x628, x611, 0xba094800);
8512    let mut x629: u32 = 0;
8513    let mut x630: u32 = 0;
8514    fp_mulx_u32(&mut x629, &mut x630, x611, 0x170b5d44);
8515    let mut x631: u32 = 0;
8516    let mut x632: u32 = 0;
8517    fp_mulx_u32(&mut x631, &mut x632, x611, 0x30000000);
8518    let mut x633: u32 = 0;
8519    let mut x634: u32 = 0;
8520    fp_mulx_u32(&mut x633, &mut x634, x611, 0x8508c000);
8521    let mut x635: u32 = 0;
8522    let mut x636: FpU1 = 0;
8523    fp_addcarryx_u32(&mut x635, &mut x636, 0x0, x634, x631);
8524    let mut x637: u32 = 0;
8525    let mut x638: FpU1 = 0;
8526    fp_addcarryx_u32(&mut x637, &mut x638, x636, x632, x629);
8527    let mut x639: u32 = 0;
8528    let mut x640: FpU1 = 0;
8529    fp_addcarryx_u32(&mut x639, &mut x640, x638, x630, x627);
8530    let mut x641: u32 = 0;
8531    let mut x642: FpU1 = 0;
8532    fp_addcarryx_u32(&mut x641, &mut x642, x640, x628, x625);
8533    let mut x643: u32 = 0;
8534    let mut x644: FpU1 = 0;
8535    fp_addcarryx_u32(&mut x643, &mut x644, x642, x626, x623);
8536    let mut x645: u32 = 0;
8537    let mut x646: FpU1 = 0;
8538    fp_addcarryx_u32(&mut x645, &mut x646, x644, x624, x621);
8539    let mut x647: u32 = 0;
8540    let mut x648: FpU1 = 0;
8541    fp_addcarryx_u32(&mut x647, &mut x648, x646, x622, x619);
8542    let mut x649: u32 = 0;
8543    let mut x650: FpU1 = 0;
8544    fp_addcarryx_u32(&mut x649, &mut x650, x648, x620, x617);
8545    let mut x651: u32 = 0;
8546    let mut x652: FpU1 = 0;
8547    fp_addcarryx_u32(&mut x651, &mut x652, x650, x618, x615);
8548    let mut x653: u32 = 0;
8549    let mut x654: FpU1 = 0;
8550    fp_addcarryx_u32(&mut x653, &mut x654, x652, x616, x613);
8551    let mut x655: u32 = 0;
8552    let mut x656: FpU1 = 0;
8553    fp_addcarryx_u32(&mut x655, &mut x656, 0x0, x587, x611);
8554    let mut x657: u32 = 0;
8555    let mut x658: FpU1 = 0;
8556    fp_addcarryx_u32(&mut x657, &mut x658, x656, x589, x633);
8557    let mut x659: u32 = 0;
8558    let mut x660: FpU1 = 0;
8559    fp_addcarryx_u32(&mut x659, &mut x660, x658, x591, x635);
8560    let mut x661: u32 = 0;
8561    let mut x662: FpU1 = 0;
8562    fp_addcarryx_u32(&mut x661, &mut x662, x660, x593, x637);
8563    let mut x663: u32 = 0;
8564    let mut x664: FpU1 = 0;
8565    fp_addcarryx_u32(&mut x663, &mut x664, x662, x595, x639);
8566    let mut x665: u32 = 0;
8567    let mut x666: FpU1 = 0;
8568    fp_addcarryx_u32(&mut x665, &mut x666, x664, x597, x641);
8569    let mut x667: u32 = 0;
8570    let mut x668: FpU1 = 0;
8571    fp_addcarryx_u32(&mut x667, &mut x668, x666, x599, x643);
8572    let mut x669: u32 = 0;
8573    let mut x670: FpU1 = 0;
8574    fp_addcarryx_u32(&mut x669, &mut x670, x668, x601, x645);
8575    let mut x671: u32 = 0;
8576    let mut x672: FpU1 = 0;
8577    fp_addcarryx_u32(&mut x671, &mut x672, x670, x603, x647);
8578    let mut x673: u32 = 0;
8579    let mut x674: FpU1 = 0;
8580    fp_addcarryx_u32(&mut x673, &mut x674, x672, x605, x649);
8581    let mut x675: u32 = 0;
8582    let mut x676: FpU1 = 0;
8583    fp_addcarryx_u32(&mut x675, &mut x676, x674, x607, x651);
8584    let mut x677: u32 = 0;
8585    let mut x678: FpU1 = 0;
8586    fp_addcarryx_u32(&mut x677, &mut x678, x676, x609, x653);
8587    let mut x679: u32 = 0;
8588    let mut x680: u32 = 0;
8589    fp_mulx_u32(&mut x679, &mut x680, x5, 0x6dfccb);
8590    let mut x681: u32 = 0;
8591    let mut x682: u32 = 0;
8592    fp_mulx_u32(&mut x681, &mut x682, x5, 0x1e914b88);
8593    let mut x683: u32 = 0;
8594    let mut x684: u32 = 0;
8595    fp_mulx_u32(&mut x683, &mut x684, x5, 0x837e92f0);
8596    let mut x685: u32 = 0;
8597    let mut x686: u32 = 0;
8598    fp_mulx_u32(&mut x685, &mut x686, x5, 0x41790bf9);
8599    let mut x687: u32 = 0;
8600    let mut x688: u32 = 0;
8601    fp_mulx_u32(&mut x687, &mut x688, x5, 0xbfdf7d03);
8602    let mut x689: u32 = 0;
8603    let mut x690: u32 = 0;
8604    fp_mulx_u32(&mut x689, &mut x690, x5, 0x827dc3ac);
8605    let mut x691: u32 = 0;
8606    let mut x692: u32 = 0;
8607    fp_mulx_u32(&mut x691, &mut x692, x5, 0x22a5f111);
8608    let mut x693: u32 = 0;
8609    let mut x694: u32 = 0;
8610    fp_mulx_u32(&mut x693, &mut x694, x5, 0x62d6b46d);
8611    let mut x695: u32 = 0;
8612    let mut x696: u32 = 0;
8613    fp_mulx_u32(&mut x695, &mut x696, x5, 0x329fcaa);
8614    let mut x697: u32 = 0;
8615    let mut x698: u32 = 0;
8616    fp_mulx_u32(&mut x697, &mut x698, x5, 0xb00431b1);
8617    let mut x699: u32 = 0;
8618    let mut x700: u32 = 0;
8619    fp_mulx_u32(&mut x699, &mut x700, x5, 0xb786686c);
8620    let mut x701: u32 = 0;
8621    let mut x702: u32 = 0;
8622    fp_mulx_u32(&mut x701, &mut x702, x5, 0x9400cd22);
8623    let mut x703: u32 = 0;
8624    let mut x704: FpU1 = 0;
8625    fp_addcarryx_u32(&mut x703, &mut x704, 0x0, x702, x699);
8626    let mut x705: u32 = 0;
8627    let mut x706: FpU1 = 0;
8628    fp_addcarryx_u32(&mut x705, &mut x706, x704, x700, x697);
8629    let mut x707: u32 = 0;
8630    let mut x708: FpU1 = 0;
8631    fp_addcarryx_u32(&mut x707, &mut x708, x706, x698, x695);
8632    let mut x709: u32 = 0;
8633    let mut x710: FpU1 = 0;
8634    fp_addcarryx_u32(&mut x709, &mut x710, x708, x696, x693);
8635    let mut x711: u32 = 0;
8636    let mut x712: FpU1 = 0;
8637    fp_addcarryx_u32(&mut x711, &mut x712, x710, x694, x691);
8638    let mut x713: u32 = 0;
8639    let mut x714: FpU1 = 0;
8640    fp_addcarryx_u32(&mut x713, &mut x714, x712, x692, x689);
8641    let mut x715: u32 = 0;
8642    let mut x716: FpU1 = 0;
8643    fp_addcarryx_u32(&mut x715, &mut x716, x714, x690, x687);
8644    let mut x717: u32 = 0;
8645    let mut x718: FpU1 = 0;
8646    fp_addcarryx_u32(&mut x717, &mut x718, x716, x688, x685);
8647    let mut x719: u32 = 0;
8648    let mut x720: FpU1 = 0;
8649    fp_addcarryx_u32(&mut x719, &mut x720, x718, x686, x683);
8650    let mut x721: u32 = 0;
8651    let mut x722: FpU1 = 0;
8652    fp_addcarryx_u32(&mut x721, &mut x722, x720, x684, x681);
8653    let mut x723: u32 = 0;
8654    let mut x724: FpU1 = 0;
8655    fp_addcarryx_u32(&mut x723, &mut x724, x722, x682, x679);
8656    let mut x725: u32 = 0;
8657    let mut x726: FpU1 = 0;
8658    fp_addcarryx_u32(&mut x725, &mut x726, 0x0, x657, x701);
8659    let mut x727: u32 = 0;
8660    let mut x728: FpU1 = 0;
8661    fp_addcarryx_u32(&mut x727, &mut x728, x726, x659, x703);
8662    let mut x729: u32 = 0;
8663    let mut x730: FpU1 = 0;
8664    fp_addcarryx_u32(&mut x729, &mut x730, x728, x661, x705);
8665    let mut x731: u32 = 0;
8666    let mut x732: FpU1 = 0;
8667    fp_addcarryx_u32(&mut x731, &mut x732, x730, x663, x707);
8668    let mut x733: u32 = 0;
8669    let mut x734: FpU1 = 0;
8670    fp_addcarryx_u32(&mut x733, &mut x734, x732, x665, x709);
8671    let mut x735: u32 = 0;
8672    let mut x736: FpU1 = 0;
8673    fp_addcarryx_u32(&mut x735, &mut x736, x734, x667, x711);
8674    let mut x737: u32 = 0;
8675    let mut x738: FpU1 = 0;
8676    fp_addcarryx_u32(&mut x737, &mut x738, x736, x669, x713);
8677    let mut x739: u32 = 0;
8678    let mut x740: FpU1 = 0;
8679    fp_addcarryx_u32(&mut x739, &mut x740, x738, x671, x715);
8680    let mut x741: u32 = 0;
8681    let mut x742: FpU1 = 0;
8682    fp_addcarryx_u32(&mut x741, &mut x742, x740, x673, x717);
8683    let mut x743: u32 = 0;
8684    let mut x744: FpU1 = 0;
8685    fp_addcarryx_u32(&mut x743, &mut x744, x742, x675, x719);
8686    let mut x745: u32 = 0;
8687    let mut x746: FpU1 = 0;
8688    fp_addcarryx_u32(&mut x745, &mut x746, x744, x677, x721);
8689    let mut x747: u32 = 0;
8690    let mut x748: FpU1 = 0;
8691    fp_addcarryx_u32(
8692        &mut x747,
8693        &mut x748,
8694        x746,
8695        (((x678 as u32) + ((x610 as u32) + ((x586 as u32) + x542))) + ((x654 as u32) + x614)),
8696        x723,
8697    );
8698    let mut x749: u32 = 0;
8699    let mut x750: u32 = 0;
8700    fp_mulx_u32(&mut x749, &mut x750, x725, 0xffffffff);
8701    let mut x751: u32 = 0;
8702    let mut x752: u32 = 0;
8703    fp_mulx_u32(&mut x751, &mut x752, x749, 0x1ae3a46);
8704    let mut x753: u32 = 0;
8705    let mut x754: u32 = 0;
8706    fp_mulx_u32(&mut x753, &mut x754, x749, 0x17c510ea);
8707    let mut x755: u32 = 0;
8708    let mut x756: u32 = 0;
8709    fp_mulx_u32(&mut x755, &mut x756, x749, 0xc63b05c0);
8710    let mut x757: u32 = 0;
8711    let mut x758: u32 = 0;
8712    fp_mulx_u32(&mut x757, &mut x758, x749, 0x6ca1493b);
8713    let mut x759: u32 = 0;
8714    let mut x760: u32 = 0;
8715    fp_mulx_u32(&mut x759, &mut x760, x749, 0x1a22d9f3);
8716    let mut x761: u32 = 0;
8717    let mut x762: u32 = 0;
8718    fp_mulx_u32(&mut x761, &mut x762, x749, 0xf5138f);
8719    let mut x763: u32 = 0;
8720    let mut x764: u32 = 0;
8721    fp_mulx_u32(&mut x763, &mut x764, x749, 0x1ef3622f);
8722    let mut x765: u32 = 0;
8723    let mut x766: u32 = 0;
8724    fp_mulx_u32(&mut x765, &mut x766, x749, 0xba094800);
8725    let mut x767: u32 = 0;
8726    let mut x768: u32 = 0;
8727    fp_mulx_u32(&mut x767, &mut x768, x749, 0x170b5d44);
8728    let mut x769: u32 = 0;
8729    let mut x770: u32 = 0;
8730    fp_mulx_u32(&mut x769, &mut x770, x749, 0x30000000);
8731    let mut x771: u32 = 0;
8732    let mut x772: u32 = 0;
8733    fp_mulx_u32(&mut x771, &mut x772, x749, 0x8508c000);
8734    let mut x773: u32 = 0;
8735    let mut x774: FpU1 = 0;
8736    fp_addcarryx_u32(&mut x773, &mut x774, 0x0, x772, x769);
8737    let mut x775: u32 = 0;
8738    let mut x776: FpU1 = 0;
8739    fp_addcarryx_u32(&mut x775, &mut x776, x774, x770, x767);
8740    let mut x777: u32 = 0;
8741    let mut x778: FpU1 = 0;
8742    fp_addcarryx_u32(&mut x777, &mut x778, x776, x768, x765);
8743    let mut x779: u32 = 0;
8744    let mut x780: FpU1 = 0;
8745    fp_addcarryx_u32(&mut x779, &mut x780, x778, x766, x763);
8746    let mut x781: u32 = 0;
8747    let mut x782: FpU1 = 0;
8748    fp_addcarryx_u32(&mut x781, &mut x782, x780, x764, x761);
8749    let mut x783: u32 = 0;
8750    let mut x784: FpU1 = 0;
8751    fp_addcarryx_u32(&mut x783, &mut x784, x782, x762, x759);
8752    let mut x785: u32 = 0;
8753    let mut x786: FpU1 = 0;
8754    fp_addcarryx_u32(&mut x785, &mut x786, x784, x760, x757);
8755    let mut x787: u32 = 0;
8756    let mut x788: FpU1 = 0;
8757    fp_addcarryx_u32(&mut x787, &mut x788, x786, x758, x755);
8758    let mut x789: u32 = 0;
8759    let mut x790: FpU1 = 0;
8760    fp_addcarryx_u32(&mut x789, &mut x790, x788, x756, x753);
8761    let mut x791: u32 = 0;
8762    let mut x792: FpU1 = 0;
8763    fp_addcarryx_u32(&mut x791, &mut x792, x790, x754, x751);
8764    let mut x793: u32 = 0;
8765    let mut x794: FpU1 = 0;
8766    fp_addcarryx_u32(&mut x793, &mut x794, 0x0, x725, x749);
8767    let mut x795: u32 = 0;
8768    let mut x796: FpU1 = 0;
8769    fp_addcarryx_u32(&mut x795, &mut x796, x794, x727, x771);
8770    let mut x797: u32 = 0;
8771    let mut x798: FpU1 = 0;
8772    fp_addcarryx_u32(&mut x797, &mut x798, x796, x729, x773);
8773    let mut x799: u32 = 0;
8774    let mut x800: FpU1 = 0;
8775    fp_addcarryx_u32(&mut x799, &mut x800, x798, x731, x775);
8776    let mut x801: u32 = 0;
8777    let mut x802: FpU1 = 0;
8778    fp_addcarryx_u32(&mut x801, &mut x802, x800, x733, x777);
8779    let mut x803: u32 = 0;
8780    let mut x804: FpU1 = 0;
8781    fp_addcarryx_u32(&mut x803, &mut x804, x802, x735, x779);
8782    let mut x805: u32 = 0;
8783    let mut x806: FpU1 = 0;
8784    fp_addcarryx_u32(&mut x805, &mut x806, x804, x737, x781);
8785    let mut x807: u32 = 0;
8786    let mut x808: FpU1 = 0;
8787    fp_addcarryx_u32(&mut x807, &mut x808, x806, x739, x783);
8788    let mut x809: u32 = 0;
8789    let mut x810: FpU1 = 0;
8790    fp_addcarryx_u32(&mut x809, &mut x810, x808, x741, x785);
8791    let mut x811: u32 = 0;
8792    let mut x812: FpU1 = 0;
8793    fp_addcarryx_u32(&mut x811, &mut x812, x810, x743, x787);
8794    let mut x813: u32 = 0;
8795    let mut x814: FpU1 = 0;
8796    fp_addcarryx_u32(&mut x813, &mut x814, x812, x745, x789);
8797    let mut x815: u32 = 0;
8798    let mut x816: FpU1 = 0;
8799    fp_addcarryx_u32(&mut x815, &mut x816, x814, x747, x791);
8800    let mut x817: u32 = 0;
8801    let mut x818: u32 = 0;
8802    fp_mulx_u32(&mut x817, &mut x818, x6, 0x6dfccb);
8803    let mut x819: u32 = 0;
8804    let mut x820: u32 = 0;
8805    fp_mulx_u32(&mut x819, &mut x820, x6, 0x1e914b88);
8806    let mut x821: u32 = 0;
8807    let mut x822: u32 = 0;
8808    fp_mulx_u32(&mut x821, &mut x822, x6, 0x837e92f0);
8809    let mut x823: u32 = 0;
8810    let mut x824: u32 = 0;
8811    fp_mulx_u32(&mut x823, &mut x824, x6, 0x41790bf9);
8812    let mut x825: u32 = 0;
8813    let mut x826: u32 = 0;
8814    fp_mulx_u32(&mut x825, &mut x826, x6, 0xbfdf7d03);
8815    let mut x827: u32 = 0;
8816    let mut x828: u32 = 0;
8817    fp_mulx_u32(&mut x827, &mut x828, x6, 0x827dc3ac);
8818    let mut x829: u32 = 0;
8819    let mut x830: u32 = 0;
8820    fp_mulx_u32(&mut x829, &mut x830, x6, 0x22a5f111);
8821    let mut x831: u32 = 0;
8822    let mut x832: u32 = 0;
8823    fp_mulx_u32(&mut x831, &mut x832, x6, 0x62d6b46d);
8824    let mut x833: u32 = 0;
8825    let mut x834: u32 = 0;
8826    fp_mulx_u32(&mut x833, &mut x834, x6, 0x329fcaa);
8827    let mut x835: u32 = 0;
8828    let mut x836: u32 = 0;
8829    fp_mulx_u32(&mut x835, &mut x836, x6, 0xb00431b1);
8830    let mut x837: u32 = 0;
8831    let mut x838: u32 = 0;
8832    fp_mulx_u32(&mut x837, &mut x838, x6, 0xb786686c);
8833    let mut x839: u32 = 0;
8834    let mut x840: u32 = 0;
8835    fp_mulx_u32(&mut x839, &mut x840, x6, 0x9400cd22);
8836    let mut x841: u32 = 0;
8837    let mut x842: FpU1 = 0;
8838    fp_addcarryx_u32(&mut x841, &mut x842, 0x0, x840, x837);
8839    let mut x843: u32 = 0;
8840    let mut x844: FpU1 = 0;
8841    fp_addcarryx_u32(&mut x843, &mut x844, x842, x838, x835);
8842    let mut x845: u32 = 0;
8843    let mut x846: FpU1 = 0;
8844    fp_addcarryx_u32(&mut x845, &mut x846, x844, x836, x833);
8845    let mut x847: u32 = 0;
8846    let mut x848: FpU1 = 0;
8847    fp_addcarryx_u32(&mut x847, &mut x848, x846, x834, x831);
8848    let mut x849: u32 = 0;
8849    let mut x850: FpU1 = 0;
8850    fp_addcarryx_u32(&mut x849, &mut x850, x848, x832, x829);
8851    let mut x851: u32 = 0;
8852    let mut x852: FpU1 = 0;
8853    fp_addcarryx_u32(&mut x851, &mut x852, x850, x830, x827);
8854    let mut x853: u32 = 0;
8855    let mut x854: FpU1 = 0;
8856    fp_addcarryx_u32(&mut x853, &mut x854, x852, x828, x825);
8857    let mut x855: u32 = 0;
8858    let mut x856: FpU1 = 0;
8859    fp_addcarryx_u32(&mut x855, &mut x856, x854, x826, x823);
8860    let mut x857: u32 = 0;
8861    let mut x858: FpU1 = 0;
8862    fp_addcarryx_u32(&mut x857, &mut x858, x856, x824, x821);
8863    let mut x859: u32 = 0;
8864    let mut x860: FpU1 = 0;
8865    fp_addcarryx_u32(&mut x859, &mut x860, x858, x822, x819);
8866    let mut x861: u32 = 0;
8867    let mut x862: FpU1 = 0;
8868    fp_addcarryx_u32(&mut x861, &mut x862, x860, x820, x817);
8869    let mut x863: u32 = 0;
8870    let mut x864: FpU1 = 0;
8871    fp_addcarryx_u32(&mut x863, &mut x864, 0x0, x795, x839);
8872    let mut x865: u32 = 0;
8873    let mut x866: FpU1 = 0;
8874    fp_addcarryx_u32(&mut x865, &mut x866, x864, x797, x841);
8875    let mut x867: u32 = 0;
8876    let mut x868: FpU1 = 0;
8877    fp_addcarryx_u32(&mut x867, &mut x868, x866, x799, x843);
8878    let mut x869: u32 = 0;
8879    let mut x870: FpU1 = 0;
8880    fp_addcarryx_u32(&mut x869, &mut x870, x868, x801, x845);
8881    let mut x871: u32 = 0;
8882    let mut x872: FpU1 = 0;
8883    fp_addcarryx_u32(&mut x871, &mut x872, x870, x803, x847);
8884    let mut x873: u32 = 0;
8885    let mut x874: FpU1 = 0;
8886    fp_addcarryx_u32(&mut x873, &mut x874, x872, x805, x849);
8887    let mut x875: u32 = 0;
8888    let mut x876: FpU1 = 0;
8889    fp_addcarryx_u32(&mut x875, &mut x876, x874, x807, x851);
8890    let mut x877: u32 = 0;
8891    let mut x878: FpU1 = 0;
8892    fp_addcarryx_u32(&mut x877, &mut x878, x876, x809, x853);
8893    let mut x879: u32 = 0;
8894    let mut x880: FpU1 = 0;
8895    fp_addcarryx_u32(&mut x879, &mut x880, x878, x811, x855);
8896    let mut x881: u32 = 0;
8897    let mut x882: FpU1 = 0;
8898    fp_addcarryx_u32(&mut x881, &mut x882, x880, x813, x857);
8899    let mut x883: u32 = 0;
8900    let mut x884: FpU1 = 0;
8901    fp_addcarryx_u32(&mut x883, &mut x884, x882, x815, x859);
8902    let mut x885: u32 = 0;
8903    let mut x886: FpU1 = 0;
8904    fp_addcarryx_u32(
8905        &mut x885,
8906        &mut x886,
8907        x884,
8908        (((x816 as u32) + ((x748 as u32) + ((x724 as u32) + x680))) + ((x792 as u32) + x752)),
8909        x861,
8910    );
8911    let mut x887: u32 = 0;
8912    let mut x888: u32 = 0;
8913    fp_mulx_u32(&mut x887, &mut x888, x863, 0xffffffff);
8914    let mut x889: u32 = 0;
8915    let mut x890: u32 = 0;
8916    fp_mulx_u32(&mut x889, &mut x890, x887, 0x1ae3a46);
8917    let mut x891: u32 = 0;
8918    let mut x892: u32 = 0;
8919    fp_mulx_u32(&mut x891, &mut x892, x887, 0x17c510ea);
8920    let mut x893: u32 = 0;
8921    let mut x894: u32 = 0;
8922    fp_mulx_u32(&mut x893, &mut x894, x887, 0xc63b05c0);
8923    let mut x895: u32 = 0;
8924    let mut x896: u32 = 0;
8925    fp_mulx_u32(&mut x895, &mut x896, x887, 0x6ca1493b);
8926    let mut x897: u32 = 0;
8927    let mut x898: u32 = 0;
8928    fp_mulx_u32(&mut x897, &mut x898, x887, 0x1a22d9f3);
8929    let mut x899: u32 = 0;
8930    let mut x900: u32 = 0;
8931    fp_mulx_u32(&mut x899, &mut x900, x887, 0xf5138f);
8932    let mut x901: u32 = 0;
8933    let mut x902: u32 = 0;
8934    fp_mulx_u32(&mut x901, &mut x902, x887, 0x1ef3622f);
8935    let mut x903: u32 = 0;
8936    let mut x904: u32 = 0;
8937    fp_mulx_u32(&mut x903, &mut x904, x887, 0xba094800);
8938    let mut x905: u32 = 0;
8939    let mut x906: u32 = 0;
8940    fp_mulx_u32(&mut x905, &mut x906, x887, 0x170b5d44);
8941    let mut x907: u32 = 0;
8942    let mut x908: u32 = 0;
8943    fp_mulx_u32(&mut x907, &mut x908, x887, 0x30000000);
8944    let mut x909: u32 = 0;
8945    let mut x910: u32 = 0;
8946    fp_mulx_u32(&mut x909, &mut x910, x887, 0x8508c000);
8947    let mut x911: u32 = 0;
8948    let mut x912: FpU1 = 0;
8949    fp_addcarryx_u32(&mut x911, &mut x912, 0x0, x910, x907);
8950    let mut x913: u32 = 0;
8951    let mut x914: FpU1 = 0;
8952    fp_addcarryx_u32(&mut x913, &mut x914, x912, x908, x905);
8953    let mut x915: u32 = 0;
8954    let mut x916: FpU1 = 0;
8955    fp_addcarryx_u32(&mut x915, &mut x916, x914, x906, x903);
8956    let mut x917: u32 = 0;
8957    let mut x918: FpU1 = 0;
8958    fp_addcarryx_u32(&mut x917, &mut x918, x916, x904, x901);
8959    let mut x919: u32 = 0;
8960    let mut x920: FpU1 = 0;
8961    fp_addcarryx_u32(&mut x919, &mut x920, x918, x902, x899);
8962    let mut x921: u32 = 0;
8963    let mut x922: FpU1 = 0;
8964    fp_addcarryx_u32(&mut x921, &mut x922, x920, x900, x897);
8965    let mut x923: u32 = 0;
8966    let mut x924: FpU1 = 0;
8967    fp_addcarryx_u32(&mut x923, &mut x924, x922, x898, x895);
8968    let mut x925: u32 = 0;
8969    let mut x926: FpU1 = 0;
8970    fp_addcarryx_u32(&mut x925, &mut x926, x924, x896, x893);
8971    let mut x927: u32 = 0;
8972    let mut x928: FpU1 = 0;
8973    fp_addcarryx_u32(&mut x927, &mut x928, x926, x894, x891);
8974    let mut x929: u32 = 0;
8975    let mut x930: FpU1 = 0;
8976    fp_addcarryx_u32(&mut x929, &mut x930, x928, x892, x889);
8977    let mut x931: u32 = 0;
8978    let mut x932: FpU1 = 0;
8979    fp_addcarryx_u32(&mut x931, &mut x932, 0x0, x863, x887);
8980    let mut x933: u32 = 0;
8981    let mut x934: FpU1 = 0;
8982    fp_addcarryx_u32(&mut x933, &mut x934, x932, x865, x909);
8983    let mut x935: u32 = 0;
8984    let mut x936: FpU1 = 0;
8985    fp_addcarryx_u32(&mut x935, &mut x936, x934, x867, x911);
8986    let mut x937: u32 = 0;
8987    let mut x938: FpU1 = 0;
8988    fp_addcarryx_u32(&mut x937, &mut x938, x936, x869, x913);
8989    let mut x939: u32 = 0;
8990    let mut x940: FpU1 = 0;
8991    fp_addcarryx_u32(&mut x939, &mut x940, x938, x871, x915);
8992    let mut x941: u32 = 0;
8993    let mut x942: FpU1 = 0;
8994    fp_addcarryx_u32(&mut x941, &mut x942, x940, x873, x917);
8995    let mut x943: u32 = 0;
8996    let mut x944: FpU1 = 0;
8997    fp_addcarryx_u32(&mut x943, &mut x944, x942, x875, x919);
8998    let mut x945: u32 = 0;
8999    let mut x946: FpU1 = 0;
9000    fp_addcarryx_u32(&mut x945, &mut x946, x944, x877, x921);
9001    let mut x947: u32 = 0;
9002    let mut x948: FpU1 = 0;
9003    fp_addcarryx_u32(&mut x947, &mut x948, x946, x879, x923);
9004    let mut x949: u32 = 0;
9005    let mut x950: FpU1 = 0;
9006    fp_addcarryx_u32(&mut x949, &mut x950, x948, x881, x925);
9007    let mut x951: u32 = 0;
9008    let mut x952: FpU1 = 0;
9009    fp_addcarryx_u32(&mut x951, &mut x952, x950, x883, x927);
9010    let mut x953: u32 = 0;
9011    let mut x954: FpU1 = 0;
9012    fp_addcarryx_u32(&mut x953, &mut x954, x952, x885, x929);
9013    let mut x955: u32 = 0;
9014    let mut x956: u32 = 0;
9015    fp_mulx_u32(&mut x955, &mut x956, x7, 0x6dfccb);
9016    let mut x957: u32 = 0;
9017    let mut x958: u32 = 0;
9018    fp_mulx_u32(&mut x957, &mut x958, x7, 0x1e914b88);
9019    let mut x959: u32 = 0;
9020    let mut x960: u32 = 0;
9021    fp_mulx_u32(&mut x959, &mut x960, x7, 0x837e92f0);
9022    let mut x961: u32 = 0;
9023    let mut x962: u32 = 0;
9024    fp_mulx_u32(&mut x961, &mut x962, x7, 0x41790bf9);
9025    let mut x963: u32 = 0;
9026    let mut x964: u32 = 0;
9027    fp_mulx_u32(&mut x963, &mut x964, x7, 0xbfdf7d03);
9028    let mut x965: u32 = 0;
9029    let mut x966: u32 = 0;
9030    fp_mulx_u32(&mut x965, &mut x966, x7, 0x827dc3ac);
9031    let mut x967: u32 = 0;
9032    let mut x968: u32 = 0;
9033    fp_mulx_u32(&mut x967, &mut x968, x7, 0x22a5f111);
9034    let mut x969: u32 = 0;
9035    let mut x970: u32 = 0;
9036    fp_mulx_u32(&mut x969, &mut x970, x7, 0x62d6b46d);
9037    let mut x971: u32 = 0;
9038    let mut x972: u32 = 0;
9039    fp_mulx_u32(&mut x971, &mut x972, x7, 0x329fcaa);
9040    let mut x973: u32 = 0;
9041    let mut x974: u32 = 0;
9042    fp_mulx_u32(&mut x973, &mut x974, x7, 0xb00431b1);
9043    let mut x975: u32 = 0;
9044    let mut x976: u32 = 0;
9045    fp_mulx_u32(&mut x975, &mut x976, x7, 0xb786686c);
9046    let mut x977: u32 = 0;
9047    let mut x978: u32 = 0;
9048    fp_mulx_u32(&mut x977, &mut x978, x7, 0x9400cd22);
9049    let mut x979: u32 = 0;
9050    let mut x980: FpU1 = 0;
9051    fp_addcarryx_u32(&mut x979, &mut x980, 0x0, x978, x975);
9052    let mut x981: u32 = 0;
9053    let mut x982: FpU1 = 0;
9054    fp_addcarryx_u32(&mut x981, &mut x982, x980, x976, x973);
9055    let mut x983: u32 = 0;
9056    let mut x984: FpU1 = 0;
9057    fp_addcarryx_u32(&mut x983, &mut x984, x982, x974, x971);
9058    let mut x985: u32 = 0;
9059    let mut x986: FpU1 = 0;
9060    fp_addcarryx_u32(&mut x985, &mut x986, x984, x972, x969);
9061    let mut x987: u32 = 0;
9062    let mut x988: FpU1 = 0;
9063    fp_addcarryx_u32(&mut x987, &mut x988, x986, x970, x967);
9064    let mut x989: u32 = 0;
9065    let mut x990: FpU1 = 0;
9066    fp_addcarryx_u32(&mut x989, &mut x990, x988, x968, x965);
9067    let mut x991: u32 = 0;
9068    let mut x992: FpU1 = 0;
9069    fp_addcarryx_u32(&mut x991, &mut x992, x990, x966, x963);
9070    let mut x993: u32 = 0;
9071    let mut x994: FpU1 = 0;
9072    fp_addcarryx_u32(&mut x993, &mut x994, x992, x964, x961);
9073    let mut x995: u32 = 0;
9074    let mut x996: FpU1 = 0;
9075    fp_addcarryx_u32(&mut x995, &mut x996, x994, x962, x959);
9076    let mut x997: u32 = 0;
9077    let mut x998: FpU1 = 0;
9078    fp_addcarryx_u32(&mut x997, &mut x998, x996, x960, x957);
9079    let mut x999: u32 = 0;
9080    let mut x1000: FpU1 = 0;
9081    fp_addcarryx_u32(&mut x999, &mut x1000, x998, x958, x955);
9082    let mut x1001: u32 = 0;
9083    let mut x1002: FpU1 = 0;
9084    fp_addcarryx_u32(&mut x1001, &mut x1002, 0x0, x933, x977);
9085    let mut x1003: u32 = 0;
9086    let mut x1004: FpU1 = 0;
9087    fp_addcarryx_u32(&mut x1003, &mut x1004, x1002, x935, x979);
9088    let mut x1005: u32 = 0;
9089    let mut x1006: FpU1 = 0;
9090    fp_addcarryx_u32(&mut x1005, &mut x1006, x1004, x937, x981);
9091    let mut x1007: u32 = 0;
9092    let mut x1008: FpU1 = 0;
9093    fp_addcarryx_u32(&mut x1007, &mut x1008, x1006, x939, x983);
9094    let mut x1009: u32 = 0;
9095    let mut x1010: FpU1 = 0;
9096    fp_addcarryx_u32(&mut x1009, &mut x1010, x1008, x941, x985);
9097    let mut x1011: u32 = 0;
9098    let mut x1012: FpU1 = 0;
9099    fp_addcarryx_u32(&mut x1011, &mut x1012, x1010, x943, x987);
9100    let mut x1013: u32 = 0;
9101    let mut x1014: FpU1 = 0;
9102    fp_addcarryx_u32(&mut x1013, &mut x1014, x1012, x945, x989);
9103    let mut x1015: u32 = 0;
9104    let mut x1016: FpU1 = 0;
9105    fp_addcarryx_u32(&mut x1015, &mut x1016, x1014, x947, x991);
9106    let mut x1017: u32 = 0;
9107    let mut x1018: FpU1 = 0;
9108    fp_addcarryx_u32(&mut x1017, &mut x1018, x1016, x949, x993);
9109    let mut x1019: u32 = 0;
9110    let mut x1020: FpU1 = 0;
9111    fp_addcarryx_u32(&mut x1019, &mut x1020, x1018, x951, x995);
9112    let mut x1021: u32 = 0;
9113    let mut x1022: FpU1 = 0;
9114    fp_addcarryx_u32(&mut x1021, &mut x1022, x1020, x953, x997);
9115    let mut x1023: u32 = 0;
9116    let mut x1024: FpU1 = 0;
9117    fp_addcarryx_u32(
9118        &mut x1023,
9119        &mut x1024,
9120        x1022,
9121        (((x954 as u32) + ((x886 as u32) + ((x862 as u32) + x818))) + ((x930 as u32) + x890)),
9122        x999,
9123    );
9124    let mut x1025: u32 = 0;
9125    let mut x1026: u32 = 0;
9126    fp_mulx_u32(&mut x1025, &mut x1026, x1001, 0xffffffff);
9127    let mut x1027: u32 = 0;
9128    let mut x1028: u32 = 0;
9129    fp_mulx_u32(&mut x1027, &mut x1028, x1025, 0x1ae3a46);
9130    let mut x1029: u32 = 0;
9131    let mut x1030: u32 = 0;
9132    fp_mulx_u32(&mut x1029, &mut x1030, x1025, 0x17c510ea);
9133    let mut x1031: u32 = 0;
9134    let mut x1032: u32 = 0;
9135    fp_mulx_u32(&mut x1031, &mut x1032, x1025, 0xc63b05c0);
9136    let mut x1033: u32 = 0;
9137    let mut x1034: u32 = 0;
9138    fp_mulx_u32(&mut x1033, &mut x1034, x1025, 0x6ca1493b);
9139    let mut x1035: u32 = 0;
9140    let mut x1036: u32 = 0;
9141    fp_mulx_u32(&mut x1035, &mut x1036, x1025, 0x1a22d9f3);
9142    let mut x1037: u32 = 0;
9143    let mut x1038: u32 = 0;
9144    fp_mulx_u32(&mut x1037, &mut x1038, x1025, 0xf5138f);
9145    let mut x1039: u32 = 0;
9146    let mut x1040: u32 = 0;
9147    fp_mulx_u32(&mut x1039, &mut x1040, x1025, 0x1ef3622f);
9148    let mut x1041: u32 = 0;
9149    let mut x1042: u32 = 0;
9150    fp_mulx_u32(&mut x1041, &mut x1042, x1025, 0xba094800);
9151    let mut x1043: u32 = 0;
9152    let mut x1044: u32 = 0;
9153    fp_mulx_u32(&mut x1043, &mut x1044, x1025, 0x170b5d44);
9154    let mut x1045: u32 = 0;
9155    let mut x1046: u32 = 0;
9156    fp_mulx_u32(&mut x1045, &mut x1046, x1025, 0x30000000);
9157    let mut x1047: u32 = 0;
9158    let mut x1048: u32 = 0;
9159    fp_mulx_u32(&mut x1047, &mut x1048, x1025, 0x8508c000);
9160    let mut x1049: u32 = 0;
9161    let mut x1050: FpU1 = 0;
9162    fp_addcarryx_u32(&mut x1049, &mut x1050, 0x0, x1048, x1045);
9163    let mut x1051: u32 = 0;
9164    let mut x1052: FpU1 = 0;
9165    fp_addcarryx_u32(&mut x1051, &mut x1052, x1050, x1046, x1043);
9166    let mut x1053: u32 = 0;
9167    let mut x1054: FpU1 = 0;
9168    fp_addcarryx_u32(&mut x1053, &mut x1054, x1052, x1044, x1041);
9169    let mut x1055: u32 = 0;
9170    let mut x1056: FpU1 = 0;
9171    fp_addcarryx_u32(&mut x1055, &mut x1056, x1054, x1042, x1039);
9172    let mut x1057: u32 = 0;
9173    let mut x1058: FpU1 = 0;
9174    fp_addcarryx_u32(&mut x1057, &mut x1058, x1056, x1040, x1037);
9175    let mut x1059: u32 = 0;
9176    let mut x1060: FpU1 = 0;
9177    fp_addcarryx_u32(&mut x1059, &mut x1060, x1058, x1038, x1035);
9178    let mut x1061: u32 = 0;
9179    let mut x1062: FpU1 = 0;
9180    fp_addcarryx_u32(&mut x1061, &mut x1062, x1060, x1036, x1033);
9181    let mut x1063: u32 = 0;
9182    let mut x1064: FpU1 = 0;
9183    fp_addcarryx_u32(&mut x1063, &mut x1064, x1062, x1034, x1031);
9184    let mut x1065: u32 = 0;
9185    let mut x1066: FpU1 = 0;
9186    fp_addcarryx_u32(&mut x1065, &mut x1066, x1064, x1032, x1029);
9187    let mut x1067: u32 = 0;
9188    let mut x1068: FpU1 = 0;
9189    fp_addcarryx_u32(&mut x1067, &mut x1068, x1066, x1030, x1027);
9190    let mut x1069: u32 = 0;
9191    let mut x1070: FpU1 = 0;
9192    fp_addcarryx_u32(&mut x1069, &mut x1070, 0x0, x1001, x1025);
9193    let mut x1071: u32 = 0;
9194    let mut x1072: FpU1 = 0;
9195    fp_addcarryx_u32(&mut x1071, &mut x1072, x1070, x1003, x1047);
9196    let mut x1073: u32 = 0;
9197    let mut x1074: FpU1 = 0;
9198    fp_addcarryx_u32(&mut x1073, &mut x1074, x1072, x1005, x1049);
9199    let mut x1075: u32 = 0;
9200    let mut x1076: FpU1 = 0;
9201    fp_addcarryx_u32(&mut x1075, &mut x1076, x1074, x1007, x1051);
9202    let mut x1077: u32 = 0;
9203    let mut x1078: FpU1 = 0;
9204    fp_addcarryx_u32(&mut x1077, &mut x1078, x1076, x1009, x1053);
9205    let mut x1079: u32 = 0;
9206    let mut x1080: FpU1 = 0;
9207    fp_addcarryx_u32(&mut x1079, &mut x1080, x1078, x1011, x1055);
9208    let mut x1081: u32 = 0;
9209    let mut x1082: FpU1 = 0;
9210    fp_addcarryx_u32(&mut x1081, &mut x1082, x1080, x1013, x1057);
9211    let mut x1083: u32 = 0;
9212    let mut x1084: FpU1 = 0;
9213    fp_addcarryx_u32(&mut x1083, &mut x1084, x1082, x1015, x1059);
9214    let mut x1085: u32 = 0;
9215    let mut x1086: FpU1 = 0;
9216    fp_addcarryx_u32(&mut x1085, &mut x1086, x1084, x1017, x1061);
9217    let mut x1087: u32 = 0;
9218    let mut x1088: FpU1 = 0;
9219    fp_addcarryx_u32(&mut x1087, &mut x1088, x1086, x1019, x1063);
9220    let mut x1089: u32 = 0;
9221    let mut x1090: FpU1 = 0;
9222    fp_addcarryx_u32(&mut x1089, &mut x1090, x1088, x1021, x1065);
9223    let mut x1091: u32 = 0;
9224    let mut x1092: FpU1 = 0;
9225    fp_addcarryx_u32(&mut x1091, &mut x1092, x1090, x1023, x1067);
9226    let mut x1093: u32 = 0;
9227    let mut x1094: u32 = 0;
9228    fp_mulx_u32(&mut x1093, &mut x1094, x8, 0x6dfccb);
9229    let mut x1095: u32 = 0;
9230    let mut x1096: u32 = 0;
9231    fp_mulx_u32(&mut x1095, &mut x1096, x8, 0x1e914b88);
9232    let mut x1097: u32 = 0;
9233    let mut x1098: u32 = 0;
9234    fp_mulx_u32(&mut x1097, &mut x1098, x8, 0x837e92f0);
9235    let mut x1099: u32 = 0;
9236    let mut x1100: u32 = 0;
9237    fp_mulx_u32(&mut x1099, &mut x1100, x8, 0x41790bf9);
9238    let mut x1101: u32 = 0;
9239    let mut x1102: u32 = 0;
9240    fp_mulx_u32(&mut x1101, &mut x1102, x8, 0xbfdf7d03);
9241    let mut x1103: u32 = 0;
9242    let mut x1104: u32 = 0;
9243    fp_mulx_u32(&mut x1103, &mut x1104, x8, 0x827dc3ac);
9244    let mut x1105: u32 = 0;
9245    let mut x1106: u32 = 0;
9246    fp_mulx_u32(&mut x1105, &mut x1106, x8, 0x22a5f111);
9247    let mut x1107: u32 = 0;
9248    let mut x1108: u32 = 0;
9249    fp_mulx_u32(&mut x1107, &mut x1108, x8, 0x62d6b46d);
9250    let mut x1109: u32 = 0;
9251    let mut x1110: u32 = 0;
9252    fp_mulx_u32(&mut x1109, &mut x1110, x8, 0x329fcaa);
9253    let mut x1111: u32 = 0;
9254    let mut x1112: u32 = 0;
9255    fp_mulx_u32(&mut x1111, &mut x1112, x8, 0xb00431b1);
9256    let mut x1113: u32 = 0;
9257    let mut x1114: u32 = 0;
9258    fp_mulx_u32(&mut x1113, &mut x1114, x8, 0xb786686c);
9259    let mut x1115: u32 = 0;
9260    let mut x1116: u32 = 0;
9261    fp_mulx_u32(&mut x1115, &mut x1116, x8, 0x9400cd22);
9262    let mut x1117: u32 = 0;
9263    let mut x1118: FpU1 = 0;
9264    fp_addcarryx_u32(&mut x1117, &mut x1118, 0x0, x1116, x1113);
9265    let mut x1119: u32 = 0;
9266    let mut x1120: FpU1 = 0;
9267    fp_addcarryx_u32(&mut x1119, &mut x1120, x1118, x1114, x1111);
9268    let mut x1121: u32 = 0;
9269    let mut x1122: FpU1 = 0;
9270    fp_addcarryx_u32(&mut x1121, &mut x1122, x1120, x1112, x1109);
9271    let mut x1123: u32 = 0;
9272    let mut x1124: FpU1 = 0;
9273    fp_addcarryx_u32(&mut x1123, &mut x1124, x1122, x1110, x1107);
9274    let mut x1125: u32 = 0;
9275    let mut x1126: FpU1 = 0;
9276    fp_addcarryx_u32(&mut x1125, &mut x1126, x1124, x1108, x1105);
9277    let mut x1127: u32 = 0;
9278    let mut x1128: FpU1 = 0;
9279    fp_addcarryx_u32(&mut x1127, &mut x1128, x1126, x1106, x1103);
9280    let mut x1129: u32 = 0;
9281    let mut x1130: FpU1 = 0;
9282    fp_addcarryx_u32(&mut x1129, &mut x1130, x1128, x1104, x1101);
9283    let mut x1131: u32 = 0;
9284    let mut x1132: FpU1 = 0;
9285    fp_addcarryx_u32(&mut x1131, &mut x1132, x1130, x1102, x1099);
9286    let mut x1133: u32 = 0;
9287    let mut x1134: FpU1 = 0;
9288    fp_addcarryx_u32(&mut x1133, &mut x1134, x1132, x1100, x1097);
9289    let mut x1135: u32 = 0;
9290    let mut x1136: FpU1 = 0;
9291    fp_addcarryx_u32(&mut x1135, &mut x1136, x1134, x1098, x1095);
9292    let mut x1137: u32 = 0;
9293    let mut x1138: FpU1 = 0;
9294    fp_addcarryx_u32(&mut x1137, &mut x1138, x1136, x1096, x1093);
9295    let mut x1139: u32 = 0;
9296    let mut x1140: FpU1 = 0;
9297    fp_addcarryx_u32(&mut x1139, &mut x1140, 0x0, x1071, x1115);
9298    let mut x1141: u32 = 0;
9299    let mut x1142: FpU1 = 0;
9300    fp_addcarryx_u32(&mut x1141, &mut x1142, x1140, x1073, x1117);
9301    let mut x1143: u32 = 0;
9302    let mut x1144: FpU1 = 0;
9303    fp_addcarryx_u32(&mut x1143, &mut x1144, x1142, x1075, x1119);
9304    let mut x1145: u32 = 0;
9305    let mut x1146: FpU1 = 0;
9306    fp_addcarryx_u32(&mut x1145, &mut x1146, x1144, x1077, x1121);
9307    let mut x1147: u32 = 0;
9308    let mut x1148: FpU1 = 0;
9309    fp_addcarryx_u32(&mut x1147, &mut x1148, x1146, x1079, x1123);
9310    let mut x1149: u32 = 0;
9311    let mut x1150: FpU1 = 0;
9312    fp_addcarryx_u32(&mut x1149, &mut x1150, x1148, x1081, x1125);
9313    let mut x1151: u32 = 0;
9314    let mut x1152: FpU1 = 0;
9315    fp_addcarryx_u32(&mut x1151, &mut x1152, x1150, x1083, x1127);
9316    let mut x1153: u32 = 0;
9317    let mut x1154: FpU1 = 0;
9318    fp_addcarryx_u32(&mut x1153, &mut x1154, x1152, x1085, x1129);
9319    let mut x1155: u32 = 0;
9320    let mut x1156: FpU1 = 0;
9321    fp_addcarryx_u32(&mut x1155, &mut x1156, x1154, x1087, x1131);
9322    let mut x1157: u32 = 0;
9323    let mut x1158: FpU1 = 0;
9324    fp_addcarryx_u32(&mut x1157, &mut x1158, x1156, x1089, x1133);
9325    let mut x1159: u32 = 0;
9326    let mut x1160: FpU1 = 0;
9327    fp_addcarryx_u32(&mut x1159, &mut x1160, x1158, x1091, x1135);
9328    let mut x1161: u32 = 0;
9329    let mut x1162: FpU1 = 0;
9330    fp_addcarryx_u32(
9331        &mut x1161,
9332        &mut x1162,
9333        x1160,
9334        (((x1092 as u32) + ((x1024 as u32) + ((x1000 as u32) + x956))) + ((x1068 as u32) + x1028)),
9335        x1137,
9336    );
9337    let mut x1163: u32 = 0;
9338    let mut x1164: u32 = 0;
9339    fp_mulx_u32(&mut x1163, &mut x1164, x1139, 0xffffffff);
9340    let mut x1165: u32 = 0;
9341    let mut x1166: u32 = 0;
9342    fp_mulx_u32(&mut x1165, &mut x1166, x1163, 0x1ae3a46);
9343    let mut x1167: u32 = 0;
9344    let mut x1168: u32 = 0;
9345    fp_mulx_u32(&mut x1167, &mut x1168, x1163, 0x17c510ea);
9346    let mut x1169: u32 = 0;
9347    let mut x1170: u32 = 0;
9348    fp_mulx_u32(&mut x1169, &mut x1170, x1163, 0xc63b05c0);
9349    let mut x1171: u32 = 0;
9350    let mut x1172: u32 = 0;
9351    fp_mulx_u32(&mut x1171, &mut x1172, x1163, 0x6ca1493b);
9352    let mut x1173: u32 = 0;
9353    let mut x1174: u32 = 0;
9354    fp_mulx_u32(&mut x1173, &mut x1174, x1163, 0x1a22d9f3);
9355    let mut x1175: u32 = 0;
9356    let mut x1176: u32 = 0;
9357    fp_mulx_u32(&mut x1175, &mut x1176, x1163, 0xf5138f);
9358    let mut x1177: u32 = 0;
9359    let mut x1178: u32 = 0;
9360    fp_mulx_u32(&mut x1177, &mut x1178, x1163, 0x1ef3622f);
9361    let mut x1179: u32 = 0;
9362    let mut x1180: u32 = 0;
9363    fp_mulx_u32(&mut x1179, &mut x1180, x1163, 0xba094800);
9364    let mut x1181: u32 = 0;
9365    let mut x1182: u32 = 0;
9366    fp_mulx_u32(&mut x1181, &mut x1182, x1163, 0x170b5d44);
9367    let mut x1183: u32 = 0;
9368    let mut x1184: u32 = 0;
9369    fp_mulx_u32(&mut x1183, &mut x1184, x1163, 0x30000000);
9370    let mut x1185: u32 = 0;
9371    let mut x1186: u32 = 0;
9372    fp_mulx_u32(&mut x1185, &mut x1186, x1163, 0x8508c000);
9373    let mut x1187: u32 = 0;
9374    let mut x1188: FpU1 = 0;
9375    fp_addcarryx_u32(&mut x1187, &mut x1188, 0x0, x1186, x1183);
9376    let mut x1189: u32 = 0;
9377    let mut x1190: FpU1 = 0;
9378    fp_addcarryx_u32(&mut x1189, &mut x1190, x1188, x1184, x1181);
9379    let mut x1191: u32 = 0;
9380    let mut x1192: FpU1 = 0;
9381    fp_addcarryx_u32(&mut x1191, &mut x1192, x1190, x1182, x1179);
9382    let mut x1193: u32 = 0;
9383    let mut x1194: FpU1 = 0;
9384    fp_addcarryx_u32(&mut x1193, &mut x1194, x1192, x1180, x1177);
9385    let mut x1195: u32 = 0;
9386    let mut x1196: FpU1 = 0;
9387    fp_addcarryx_u32(&mut x1195, &mut x1196, x1194, x1178, x1175);
9388    let mut x1197: u32 = 0;
9389    let mut x1198: FpU1 = 0;
9390    fp_addcarryx_u32(&mut x1197, &mut x1198, x1196, x1176, x1173);
9391    let mut x1199: u32 = 0;
9392    let mut x1200: FpU1 = 0;
9393    fp_addcarryx_u32(&mut x1199, &mut x1200, x1198, x1174, x1171);
9394    let mut x1201: u32 = 0;
9395    let mut x1202: FpU1 = 0;
9396    fp_addcarryx_u32(&mut x1201, &mut x1202, x1200, x1172, x1169);
9397    let mut x1203: u32 = 0;
9398    let mut x1204: FpU1 = 0;
9399    fp_addcarryx_u32(&mut x1203, &mut x1204, x1202, x1170, x1167);
9400    let mut x1205: u32 = 0;
9401    let mut x1206: FpU1 = 0;
9402    fp_addcarryx_u32(&mut x1205, &mut x1206, x1204, x1168, x1165);
9403    let mut x1207: u32 = 0;
9404    let mut x1208: FpU1 = 0;
9405    fp_addcarryx_u32(&mut x1207, &mut x1208, 0x0, x1139, x1163);
9406    let mut x1209: u32 = 0;
9407    let mut x1210: FpU1 = 0;
9408    fp_addcarryx_u32(&mut x1209, &mut x1210, x1208, x1141, x1185);
9409    let mut x1211: u32 = 0;
9410    let mut x1212: FpU1 = 0;
9411    fp_addcarryx_u32(&mut x1211, &mut x1212, x1210, x1143, x1187);
9412    let mut x1213: u32 = 0;
9413    let mut x1214: FpU1 = 0;
9414    fp_addcarryx_u32(&mut x1213, &mut x1214, x1212, x1145, x1189);
9415    let mut x1215: u32 = 0;
9416    let mut x1216: FpU1 = 0;
9417    fp_addcarryx_u32(&mut x1215, &mut x1216, x1214, x1147, x1191);
9418    let mut x1217: u32 = 0;
9419    let mut x1218: FpU1 = 0;
9420    fp_addcarryx_u32(&mut x1217, &mut x1218, x1216, x1149, x1193);
9421    let mut x1219: u32 = 0;
9422    let mut x1220: FpU1 = 0;
9423    fp_addcarryx_u32(&mut x1219, &mut x1220, x1218, x1151, x1195);
9424    let mut x1221: u32 = 0;
9425    let mut x1222: FpU1 = 0;
9426    fp_addcarryx_u32(&mut x1221, &mut x1222, x1220, x1153, x1197);
9427    let mut x1223: u32 = 0;
9428    let mut x1224: FpU1 = 0;
9429    fp_addcarryx_u32(&mut x1223, &mut x1224, x1222, x1155, x1199);
9430    let mut x1225: u32 = 0;
9431    let mut x1226: FpU1 = 0;
9432    fp_addcarryx_u32(&mut x1225, &mut x1226, x1224, x1157, x1201);
9433    let mut x1227: u32 = 0;
9434    let mut x1228: FpU1 = 0;
9435    fp_addcarryx_u32(&mut x1227, &mut x1228, x1226, x1159, x1203);
9436    let mut x1229: u32 = 0;
9437    let mut x1230: FpU1 = 0;
9438    fp_addcarryx_u32(&mut x1229, &mut x1230, x1228, x1161, x1205);
9439    let mut x1231: u32 = 0;
9440    let mut x1232: u32 = 0;
9441    fp_mulx_u32(&mut x1231, &mut x1232, x9, 0x6dfccb);
9442    let mut x1233: u32 = 0;
9443    let mut x1234: u32 = 0;
9444    fp_mulx_u32(&mut x1233, &mut x1234, x9, 0x1e914b88);
9445    let mut x1235: u32 = 0;
9446    let mut x1236: u32 = 0;
9447    fp_mulx_u32(&mut x1235, &mut x1236, x9, 0x837e92f0);
9448    let mut x1237: u32 = 0;
9449    let mut x1238: u32 = 0;
9450    fp_mulx_u32(&mut x1237, &mut x1238, x9, 0x41790bf9);
9451    let mut x1239: u32 = 0;
9452    let mut x1240: u32 = 0;
9453    fp_mulx_u32(&mut x1239, &mut x1240, x9, 0xbfdf7d03);
9454    let mut x1241: u32 = 0;
9455    let mut x1242: u32 = 0;
9456    fp_mulx_u32(&mut x1241, &mut x1242, x9, 0x827dc3ac);
9457    let mut x1243: u32 = 0;
9458    let mut x1244: u32 = 0;
9459    fp_mulx_u32(&mut x1243, &mut x1244, x9, 0x22a5f111);
9460    let mut x1245: u32 = 0;
9461    let mut x1246: u32 = 0;
9462    fp_mulx_u32(&mut x1245, &mut x1246, x9, 0x62d6b46d);
9463    let mut x1247: u32 = 0;
9464    let mut x1248: u32 = 0;
9465    fp_mulx_u32(&mut x1247, &mut x1248, x9, 0x329fcaa);
9466    let mut x1249: u32 = 0;
9467    let mut x1250: u32 = 0;
9468    fp_mulx_u32(&mut x1249, &mut x1250, x9, 0xb00431b1);
9469    let mut x1251: u32 = 0;
9470    let mut x1252: u32 = 0;
9471    fp_mulx_u32(&mut x1251, &mut x1252, x9, 0xb786686c);
9472    let mut x1253: u32 = 0;
9473    let mut x1254: u32 = 0;
9474    fp_mulx_u32(&mut x1253, &mut x1254, x9, 0x9400cd22);
9475    let mut x1255: u32 = 0;
9476    let mut x1256: FpU1 = 0;
9477    fp_addcarryx_u32(&mut x1255, &mut x1256, 0x0, x1254, x1251);
9478    let mut x1257: u32 = 0;
9479    let mut x1258: FpU1 = 0;
9480    fp_addcarryx_u32(&mut x1257, &mut x1258, x1256, x1252, x1249);
9481    let mut x1259: u32 = 0;
9482    let mut x1260: FpU1 = 0;
9483    fp_addcarryx_u32(&mut x1259, &mut x1260, x1258, x1250, x1247);
9484    let mut x1261: u32 = 0;
9485    let mut x1262: FpU1 = 0;
9486    fp_addcarryx_u32(&mut x1261, &mut x1262, x1260, x1248, x1245);
9487    let mut x1263: u32 = 0;
9488    let mut x1264: FpU1 = 0;
9489    fp_addcarryx_u32(&mut x1263, &mut x1264, x1262, x1246, x1243);
9490    let mut x1265: u32 = 0;
9491    let mut x1266: FpU1 = 0;
9492    fp_addcarryx_u32(&mut x1265, &mut x1266, x1264, x1244, x1241);
9493    let mut x1267: u32 = 0;
9494    let mut x1268: FpU1 = 0;
9495    fp_addcarryx_u32(&mut x1267, &mut x1268, x1266, x1242, x1239);
9496    let mut x1269: u32 = 0;
9497    let mut x1270: FpU1 = 0;
9498    fp_addcarryx_u32(&mut x1269, &mut x1270, x1268, x1240, x1237);
9499    let mut x1271: u32 = 0;
9500    let mut x1272: FpU1 = 0;
9501    fp_addcarryx_u32(&mut x1271, &mut x1272, x1270, x1238, x1235);
9502    let mut x1273: u32 = 0;
9503    let mut x1274: FpU1 = 0;
9504    fp_addcarryx_u32(&mut x1273, &mut x1274, x1272, x1236, x1233);
9505    let mut x1275: u32 = 0;
9506    let mut x1276: FpU1 = 0;
9507    fp_addcarryx_u32(&mut x1275, &mut x1276, x1274, x1234, x1231);
9508    let mut x1277: u32 = 0;
9509    let mut x1278: FpU1 = 0;
9510    fp_addcarryx_u32(&mut x1277, &mut x1278, 0x0, x1209, x1253);
9511    let mut x1279: u32 = 0;
9512    let mut x1280: FpU1 = 0;
9513    fp_addcarryx_u32(&mut x1279, &mut x1280, x1278, x1211, x1255);
9514    let mut x1281: u32 = 0;
9515    let mut x1282: FpU1 = 0;
9516    fp_addcarryx_u32(&mut x1281, &mut x1282, x1280, x1213, x1257);
9517    let mut x1283: u32 = 0;
9518    let mut x1284: FpU1 = 0;
9519    fp_addcarryx_u32(&mut x1283, &mut x1284, x1282, x1215, x1259);
9520    let mut x1285: u32 = 0;
9521    let mut x1286: FpU1 = 0;
9522    fp_addcarryx_u32(&mut x1285, &mut x1286, x1284, x1217, x1261);
9523    let mut x1287: u32 = 0;
9524    let mut x1288: FpU1 = 0;
9525    fp_addcarryx_u32(&mut x1287, &mut x1288, x1286, x1219, x1263);
9526    let mut x1289: u32 = 0;
9527    let mut x1290: FpU1 = 0;
9528    fp_addcarryx_u32(&mut x1289, &mut x1290, x1288, x1221, x1265);
9529    let mut x1291: u32 = 0;
9530    let mut x1292: FpU1 = 0;
9531    fp_addcarryx_u32(&mut x1291, &mut x1292, x1290, x1223, x1267);
9532    let mut x1293: u32 = 0;
9533    let mut x1294: FpU1 = 0;
9534    fp_addcarryx_u32(&mut x1293, &mut x1294, x1292, x1225, x1269);
9535    let mut x1295: u32 = 0;
9536    let mut x1296: FpU1 = 0;
9537    fp_addcarryx_u32(&mut x1295, &mut x1296, x1294, x1227, x1271);
9538    let mut x1297: u32 = 0;
9539    let mut x1298: FpU1 = 0;
9540    fp_addcarryx_u32(&mut x1297, &mut x1298, x1296, x1229, x1273);
9541    let mut x1299: u32 = 0;
9542    let mut x1300: FpU1 = 0;
9543    fp_addcarryx_u32(
9544        &mut x1299,
9545        &mut x1300,
9546        x1298,
9547        (((x1230 as u32) + ((x1162 as u32) + ((x1138 as u32) + x1094))) + ((x1206 as u32) + x1166)),
9548        x1275,
9549    );
9550    let mut x1301: u32 = 0;
9551    let mut x1302: u32 = 0;
9552    fp_mulx_u32(&mut x1301, &mut x1302, x1277, 0xffffffff);
9553    let mut x1303: u32 = 0;
9554    let mut x1304: u32 = 0;
9555    fp_mulx_u32(&mut x1303, &mut x1304, x1301, 0x1ae3a46);
9556    let mut x1305: u32 = 0;
9557    let mut x1306: u32 = 0;
9558    fp_mulx_u32(&mut x1305, &mut x1306, x1301, 0x17c510ea);
9559    let mut x1307: u32 = 0;
9560    let mut x1308: u32 = 0;
9561    fp_mulx_u32(&mut x1307, &mut x1308, x1301, 0xc63b05c0);
9562    let mut x1309: u32 = 0;
9563    let mut x1310: u32 = 0;
9564    fp_mulx_u32(&mut x1309, &mut x1310, x1301, 0x6ca1493b);
9565    let mut x1311: u32 = 0;
9566    let mut x1312: u32 = 0;
9567    fp_mulx_u32(&mut x1311, &mut x1312, x1301, 0x1a22d9f3);
9568    let mut x1313: u32 = 0;
9569    let mut x1314: u32 = 0;
9570    fp_mulx_u32(&mut x1313, &mut x1314, x1301, 0xf5138f);
9571    let mut x1315: u32 = 0;
9572    let mut x1316: u32 = 0;
9573    fp_mulx_u32(&mut x1315, &mut x1316, x1301, 0x1ef3622f);
9574    let mut x1317: u32 = 0;
9575    let mut x1318: u32 = 0;
9576    fp_mulx_u32(&mut x1317, &mut x1318, x1301, 0xba094800);
9577    let mut x1319: u32 = 0;
9578    let mut x1320: u32 = 0;
9579    fp_mulx_u32(&mut x1319, &mut x1320, x1301, 0x170b5d44);
9580    let mut x1321: u32 = 0;
9581    let mut x1322: u32 = 0;
9582    fp_mulx_u32(&mut x1321, &mut x1322, x1301, 0x30000000);
9583    let mut x1323: u32 = 0;
9584    let mut x1324: u32 = 0;
9585    fp_mulx_u32(&mut x1323, &mut x1324, x1301, 0x8508c000);
9586    let mut x1325: u32 = 0;
9587    let mut x1326: FpU1 = 0;
9588    fp_addcarryx_u32(&mut x1325, &mut x1326, 0x0, x1324, x1321);
9589    let mut x1327: u32 = 0;
9590    let mut x1328: FpU1 = 0;
9591    fp_addcarryx_u32(&mut x1327, &mut x1328, x1326, x1322, x1319);
9592    let mut x1329: u32 = 0;
9593    let mut x1330: FpU1 = 0;
9594    fp_addcarryx_u32(&mut x1329, &mut x1330, x1328, x1320, x1317);
9595    let mut x1331: u32 = 0;
9596    let mut x1332: FpU1 = 0;
9597    fp_addcarryx_u32(&mut x1331, &mut x1332, x1330, x1318, x1315);
9598    let mut x1333: u32 = 0;
9599    let mut x1334: FpU1 = 0;
9600    fp_addcarryx_u32(&mut x1333, &mut x1334, x1332, x1316, x1313);
9601    let mut x1335: u32 = 0;
9602    let mut x1336: FpU1 = 0;
9603    fp_addcarryx_u32(&mut x1335, &mut x1336, x1334, x1314, x1311);
9604    let mut x1337: u32 = 0;
9605    let mut x1338: FpU1 = 0;
9606    fp_addcarryx_u32(&mut x1337, &mut x1338, x1336, x1312, x1309);
9607    let mut x1339: u32 = 0;
9608    let mut x1340: FpU1 = 0;
9609    fp_addcarryx_u32(&mut x1339, &mut x1340, x1338, x1310, x1307);
9610    let mut x1341: u32 = 0;
9611    let mut x1342: FpU1 = 0;
9612    fp_addcarryx_u32(&mut x1341, &mut x1342, x1340, x1308, x1305);
9613    let mut x1343: u32 = 0;
9614    let mut x1344: FpU1 = 0;
9615    fp_addcarryx_u32(&mut x1343, &mut x1344, x1342, x1306, x1303);
9616    let mut x1345: u32 = 0;
9617    let mut x1346: FpU1 = 0;
9618    fp_addcarryx_u32(&mut x1345, &mut x1346, 0x0, x1277, x1301);
9619    let mut x1347: u32 = 0;
9620    let mut x1348: FpU1 = 0;
9621    fp_addcarryx_u32(&mut x1347, &mut x1348, x1346, x1279, x1323);
9622    let mut x1349: u32 = 0;
9623    let mut x1350: FpU1 = 0;
9624    fp_addcarryx_u32(&mut x1349, &mut x1350, x1348, x1281, x1325);
9625    let mut x1351: u32 = 0;
9626    let mut x1352: FpU1 = 0;
9627    fp_addcarryx_u32(&mut x1351, &mut x1352, x1350, x1283, x1327);
9628    let mut x1353: u32 = 0;
9629    let mut x1354: FpU1 = 0;
9630    fp_addcarryx_u32(&mut x1353, &mut x1354, x1352, x1285, x1329);
9631    let mut x1355: u32 = 0;
9632    let mut x1356: FpU1 = 0;
9633    fp_addcarryx_u32(&mut x1355, &mut x1356, x1354, x1287, x1331);
9634    let mut x1357: u32 = 0;
9635    let mut x1358: FpU1 = 0;
9636    fp_addcarryx_u32(&mut x1357, &mut x1358, x1356, x1289, x1333);
9637    let mut x1359: u32 = 0;
9638    let mut x1360: FpU1 = 0;
9639    fp_addcarryx_u32(&mut x1359, &mut x1360, x1358, x1291, x1335);
9640    let mut x1361: u32 = 0;
9641    let mut x1362: FpU1 = 0;
9642    fp_addcarryx_u32(&mut x1361, &mut x1362, x1360, x1293, x1337);
9643    let mut x1363: u32 = 0;
9644    let mut x1364: FpU1 = 0;
9645    fp_addcarryx_u32(&mut x1363, &mut x1364, x1362, x1295, x1339);
9646    let mut x1365: u32 = 0;
9647    let mut x1366: FpU1 = 0;
9648    fp_addcarryx_u32(&mut x1365, &mut x1366, x1364, x1297, x1341);
9649    let mut x1367: u32 = 0;
9650    let mut x1368: FpU1 = 0;
9651    fp_addcarryx_u32(&mut x1367, &mut x1368, x1366, x1299, x1343);
9652    let mut x1369: u32 = 0;
9653    let mut x1370: u32 = 0;
9654    fp_mulx_u32(&mut x1369, &mut x1370, x10, 0x6dfccb);
9655    let mut x1371: u32 = 0;
9656    let mut x1372: u32 = 0;
9657    fp_mulx_u32(&mut x1371, &mut x1372, x10, 0x1e914b88);
9658    let mut x1373: u32 = 0;
9659    let mut x1374: u32 = 0;
9660    fp_mulx_u32(&mut x1373, &mut x1374, x10, 0x837e92f0);
9661    let mut x1375: u32 = 0;
9662    let mut x1376: u32 = 0;
9663    fp_mulx_u32(&mut x1375, &mut x1376, x10, 0x41790bf9);
9664    let mut x1377: u32 = 0;
9665    let mut x1378: u32 = 0;
9666    fp_mulx_u32(&mut x1377, &mut x1378, x10, 0xbfdf7d03);
9667    let mut x1379: u32 = 0;
9668    let mut x1380: u32 = 0;
9669    fp_mulx_u32(&mut x1379, &mut x1380, x10, 0x827dc3ac);
9670    let mut x1381: u32 = 0;
9671    let mut x1382: u32 = 0;
9672    fp_mulx_u32(&mut x1381, &mut x1382, x10, 0x22a5f111);
9673    let mut x1383: u32 = 0;
9674    let mut x1384: u32 = 0;
9675    fp_mulx_u32(&mut x1383, &mut x1384, x10, 0x62d6b46d);
9676    let mut x1385: u32 = 0;
9677    let mut x1386: u32 = 0;
9678    fp_mulx_u32(&mut x1385, &mut x1386, x10, 0x329fcaa);
9679    let mut x1387: u32 = 0;
9680    let mut x1388: u32 = 0;
9681    fp_mulx_u32(&mut x1387, &mut x1388, x10, 0xb00431b1);
9682    let mut x1389: u32 = 0;
9683    let mut x1390: u32 = 0;
9684    fp_mulx_u32(&mut x1389, &mut x1390, x10, 0xb786686c);
9685    let mut x1391: u32 = 0;
9686    let mut x1392: u32 = 0;
9687    fp_mulx_u32(&mut x1391, &mut x1392, x10, 0x9400cd22);
9688    let mut x1393: u32 = 0;
9689    let mut x1394: FpU1 = 0;
9690    fp_addcarryx_u32(&mut x1393, &mut x1394, 0x0, x1392, x1389);
9691    let mut x1395: u32 = 0;
9692    let mut x1396: FpU1 = 0;
9693    fp_addcarryx_u32(&mut x1395, &mut x1396, x1394, x1390, x1387);
9694    let mut x1397: u32 = 0;
9695    let mut x1398: FpU1 = 0;
9696    fp_addcarryx_u32(&mut x1397, &mut x1398, x1396, x1388, x1385);
9697    let mut x1399: u32 = 0;
9698    let mut x1400: FpU1 = 0;
9699    fp_addcarryx_u32(&mut x1399, &mut x1400, x1398, x1386, x1383);
9700    let mut x1401: u32 = 0;
9701    let mut x1402: FpU1 = 0;
9702    fp_addcarryx_u32(&mut x1401, &mut x1402, x1400, x1384, x1381);
9703    let mut x1403: u32 = 0;
9704    let mut x1404: FpU1 = 0;
9705    fp_addcarryx_u32(&mut x1403, &mut x1404, x1402, x1382, x1379);
9706    let mut x1405: u32 = 0;
9707    let mut x1406: FpU1 = 0;
9708    fp_addcarryx_u32(&mut x1405, &mut x1406, x1404, x1380, x1377);
9709    let mut x1407: u32 = 0;
9710    let mut x1408: FpU1 = 0;
9711    fp_addcarryx_u32(&mut x1407, &mut x1408, x1406, x1378, x1375);
9712    let mut x1409: u32 = 0;
9713    let mut x1410: FpU1 = 0;
9714    fp_addcarryx_u32(&mut x1409, &mut x1410, x1408, x1376, x1373);
9715    let mut x1411: u32 = 0;
9716    let mut x1412: FpU1 = 0;
9717    fp_addcarryx_u32(&mut x1411, &mut x1412, x1410, x1374, x1371);
9718    let mut x1413: u32 = 0;
9719    let mut x1414: FpU1 = 0;
9720    fp_addcarryx_u32(&mut x1413, &mut x1414, x1412, x1372, x1369);
9721    let mut x1415: u32 = 0;
9722    let mut x1416: FpU1 = 0;
9723    fp_addcarryx_u32(&mut x1415, &mut x1416, 0x0, x1347, x1391);
9724    let mut x1417: u32 = 0;
9725    let mut x1418: FpU1 = 0;
9726    fp_addcarryx_u32(&mut x1417, &mut x1418, x1416, x1349, x1393);
9727    let mut x1419: u32 = 0;
9728    let mut x1420: FpU1 = 0;
9729    fp_addcarryx_u32(&mut x1419, &mut x1420, x1418, x1351, x1395);
9730    let mut x1421: u32 = 0;
9731    let mut x1422: FpU1 = 0;
9732    fp_addcarryx_u32(&mut x1421, &mut x1422, x1420, x1353, x1397);
9733    let mut x1423: u32 = 0;
9734    let mut x1424: FpU1 = 0;
9735    fp_addcarryx_u32(&mut x1423, &mut x1424, x1422, x1355, x1399);
9736    let mut x1425: u32 = 0;
9737    let mut x1426: FpU1 = 0;
9738    fp_addcarryx_u32(&mut x1425, &mut x1426, x1424, x1357, x1401);
9739    let mut x1427: u32 = 0;
9740    let mut x1428: FpU1 = 0;
9741    fp_addcarryx_u32(&mut x1427, &mut x1428, x1426, x1359, x1403);
9742    let mut x1429: u32 = 0;
9743    let mut x1430: FpU1 = 0;
9744    fp_addcarryx_u32(&mut x1429, &mut x1430, x1428, x1361, x1405);
9745    let mut x1431: u32 = 0;
9746    let mut x1432: FpU1 = 0;
9747    fp_addcarryx_u32(&mut x1431, &mut x1432, x1430, x1363, x1407);
9748    let mut x1433: u32 = 0;
9749    let mut x1434: FpU1 = 0;
9750    fp_addcarryx_u32(&mut x1433, &mut x1434, x1432, x1365, x1409);
9751    let mut x1435: u32 = 0;
9752    let mut x1436: FpU1 = 0;
9753    fp_addcarryx_u32(&mut x1435, &mut x1436, x1434, x1367, x1411);
9754    let mut x1437: u32 = 0;
9755    let mut x1438: FpU1 = 0;
9756    fp_addcarryx_u32(
9757        &mut x1437,
9758        &mut x1438,
9759        x1436,
9760        (((x1368 as u32) + ((x1300 as u32) + ((x1276 as u32) + x1232))) + ((x1344 as u32) + x1304)),
9761        x1413,
9762    );
9763    let mut x1439: u32 = 0;
9764    let mut x1440: u32 = 0;
9765    fp_mulx_u32(&mut x1439, &mut x1440, x1415, 0xffffffff);
9766    let mut x1441: u32 = 0;
9767    let mut x1442: u32 = 0;
9768    fp_mulx_u32(&mut x1441, &mut x1442, x1439, 0x1ae3a46);
9769    let mut x1443: u32 = 0;
9770    let mut x1444: u32 = 0;
9771    fp_mulx_u32(&mut x1443, &mut x1444, x1439, 0x17c510ea);
9772    let mut x1445: u32 = 0;
9773    let mut x1446: u32 = 0;
9774    fp_mulx_u32(&mut x1445, &mut x1446, x1439, 0xc63b05c0);
9775    let mut x1447: u32 = 0;
9776    let mut x1448: u32 = 0;
9777    fp_mulx_u32(&mut x1447, &mut x1448, x1439, 0x6ca1493b);
9778    let mut x1449: u32 = 0;
9779    let mut x1450: u32 = 0;
9780    fp_mulx_u32(&mut x1449, &mut x1450, x1439, 0x1a22d9f3);
9781    let mut x1451: u32 = 0;
9782    let mut x1452: u32 = 0;
9783    fp_mulx_u32(&mut x1451, &mut x1452, x1439, 0xf5138f);
9784    let mut x1453: u32 = 0;
9785    let mut x1454: u32 = 0;
9786    fp_mulx_u32(&mut x1453, &mut x1454, x1439, 0x1ef3622f);
9787    let mut x1455: u32 = 0;
9788    let mut x1456: u32 = 0;
9789    fp_mulx_u32(&mut x1455, &mut x1456, x1439, 0xba094800);
9790    let mut x1457: u32 = 0;
9791    let mut x1458: u32 = 0;
9792    fp_mulx_u32(&mut x1457, &mut x1458, x1439, 0x170b5d44);
9793    let mut x1459: u32 = 0;
9794    let mut x1460: u32 = 0;
9795    fp_mulx_u32(&mut x1459, &mut x1460, x1439, 0x30000000);
9796    let mut x1461: u32 = 0;
9797    let mut x1462: u32 = 0;
9798    fp_mulx_u32(&mut x1461, &mut x1462, x1439, 0x8508c000);
9799    let mut x1463: u32 = 0;
9800    let mut x1464: FpU1 = 0;
9801    fp_addcarryx_u32(&mut x1463, &mut x1464, 0x0, x1462, x1459);
9802    let mut x1465: u32 = 0;
9803    let mut x1466: FpU1 = 0;
9804    fp_addcarryx_u32(&mut x1465, &mut x1466, x1464, x1460, x1457);
9805    let mut x1467: u32 = 0;
9806    let mut x1468: FpU1 = 0;
9807    fp_addcarryx_u32(&mut x1467, &mut x1468, x1466, x1458, x1455);
9808    let mut x1469: u32 = 0;
9809    let mut x1470: FpU1 = 0;
9810    fp_addcarryx_u32(&mut x1469, &mut x1470, x1468, x1456, x1453);
9811    let mut x1471: u32 = 0;
9812    let mut x1472: FpU1 = 0;
9813    fp_addcarryx_u32(&mut x1471, &mut x1472, x1470, x1454, x1451);
9814    let mut x1473: u32 = 0;
9815    let mut x1474: FpU1 = 0;
9816    fp_addcarryx_u32(&mut x1473, &mut x1474, x1472, x1452, x1449);
9817    let mut x1475: u32 = 0;
9818    let mut x1476: FpU1 = 0;
9819    fp_addcarryx_u32(&mut x1475, &mut x1476, x1474, x1450, x1447);
9820    let mut x1477: u32 = 0;
9821    let mut x1478: FpU1 = 0;
9822    fp_addcarryx_u32(&mut x1477, &mut x1478, x1476, x1448, x1445);
9823    let mut x1479: u32 = 0;
9824    let mut x1480: FpU1 = 0;
9825    fp_addcarryx_u32(&mut x1479, &mut x1480, x1478, x1446, x1443);
9826    let mut x1481: u32 = 0;
9827    let mut x1482: FpU1 = 0;
9828    fp_addcarryx_u32(&mut x1481, &mut x1482, x1480, x1444, x1441);
9829    let mut x1483: u32 = 0;
9830    let mut x1484: FpU1 = 0;
9831    fp_addcarryx_u32(&mut x1483, &mut x1484, 0x0, x1415, x1439);
9832    let mut x1485: u32 = 0;
9833    let mut x1486: FpU1 = 0;
9834    fp_addcarryx_u32(&mut x1485, &mut x1486, x1484, x1417, x1461);
9835    let mut x1487: u32 = 0;
9836    let mut x1488: FpU1 = 0;
9837    fp_addcarryx_u32(&mut x1487, &mut x1488, x1486, x1419, x1463);
9838    let mut x1489: u32 = 0;
9839    let mut x1490: FpU1 = 0;
9840    fp_addcarryx_u32(&mut x1489, &mut x1490, x1488, x1421, x1465);
9841    let mut x1491: u32 = 0;
9842    let mut x1492: FpU1 = 0;
9843    fp_addcarryx_u32(&mut x1491, &mut x1492, x1490, x1423, x1467);
9844    let mut x1493: u32 = 0;
9845    let mut x1494: FpU1 = 0;
9846    fp_addcarryx_u32(&mut x1493, &mut x1494, x1492, x1425, x1469);
9847    let mut x1495: u32 = 0;
9848    let mut x1496: FpU1 = 0;
9849    fp_addcarryx_u32(&mut x1495, &mut x1496, x1494, x1427, x1471);
9850    let mut x1497: u32 = 0;
9851    let mut x1498: FpU1 = 0;
9852    fp_addcarryx_u32(&mut x1497, &mut x1498, x1496, x1429, x1473);
9853    let mut x1499: u32 = 0;
9854    let mut x1500: FpU1 = 0;
9855    fp_addcarryx_u32(&mut x1499, &mut x1500, x1498, x1431, x1475);
9856    let mut x1501: u32 = 0;
9857    let mut x1502: FpU1 = 0;
9858    fp_addcarryx_u32(&mut x1501, &mut x1502, x1500, x1433, x1477);
9859    let mut x1503: u32 = 0;
9860    let mut x1504: FpU1 = 0;
9861    fp_addcarryx_u32(&mut x1503, &mut x1504, x1502, x1435, x1479);
9862    let mut x1505: u32 = 0;
9863    let mut x1506: FpU1 = 0;
9864    fp_addcarryx_u32(&mut x1505, &mut x1506, x1504, x1437, x1481);
9865    let mut x1507: u32 = 0;
9866    let mut x1508: u32 = 0;
9867    fp_mulx_u32(&mut x1507, &mut x1508, x11, 0x6dfccb);
9868    let mut x1509: u32 = 0;
9869    let mut x1510: u32 = 0;
9870    fp_mulx_u32(&mut x1509, &mut x1510, x11, 0x1e914b88);
9871    let mut x1511: u32 = 0;
9872    let mut x1512: u32 = 0;
9873    fp_mulx_u32(&mut x1511, &mut x1512, x11, 0x837e92f0);
9874    let mut x1513: u32 = 0;
9875    let mut x1514: u32 = 0;
9876    fp_mulx_u32(&mut x1513, &mut x1514, x11, 0x41790bf9);
9877    let mut x1515: u32 = 0;
9878    let mut x1516: u32 = 0;
9879    fp_mulx_u32(&mut x1515, &mut x1516, x11, 0xbfdf7d03);
9880    let mut x1517: u32 = 0;
9881    let mut x1518: u32 = 0;
9882    fp_mulx_u32(&mut x1517, &mut x1518, x11, 0x827dc3ac);
9883    let mut x1519: u32 = 0;
9884    let mut x1520: u32 = 0;
9885    fp_mulx_u32(&mut x1519, &mut x1520, x11, 0x22a5f111);
9886    let mut x1521: u32 = 0;
9887    let mut x1522: u32 = 0;
9888    fp_mulx_u32(&mut x1521, &mut x1522, x11, 0x62d6b46d);
9889    let mut x1523: u32 = 0;
9890    let mut x1524: u32 = 0;
9891    fp_mulx_u32(&mut x1523, &mut x1524, x11, 0x329fcaa);
9892    let mut x1525: u32 = 0;
9893    let mut x1526: u32 = 0;
9894    fp_mulx_u32(&mut x1525, &mut x1526, x11, 0xb00431b1);
9895    let mut x1527: u32 = 0;
9896    let mut x1528: u32 = 0;
9897    fp_mulx_u32(&mut x1527, &mut x1528, x11, 0xb786686c);
9898    let mut x1529: u32 = 0;
9899    let mut x1530: u32 = 0;
9900    fp_mulx_u32(&mut x1529, &mut x1530, x11, 0x9400cd22);
9901    let mut x1531: u32 = 0;
9902    let mut x1532: FpU1 = 0;
9903    fp_addcarryx_u32(&mut x1531, &mut x1532, 0x0, x1530, x1527);
9904    let mut x1533: u32 = 0;
9905    let mut x1534: FpU1 = 0;
9906    fp_addcarryx_u32(&mut x1533, &mut x1534, x1532, x1528, x1525);
9907    let mut x1535: u32 = 0;
9908    let mut x1536: FpU1 = 0;
9909    fp_addcarryx_u32(&mut x1535, &mut x1536, x1534, x1526, x1523);
9910    let mut x1537: u32 = 0;
9911    let mut x1538: FpU1 = 0;
9912    fp_addcarryx_u32(&mut x1537, &mut x1538, x1536, x1524, x1521);
9913    let mut x1539: u32 = 0;
9914    let mut x1540: FpU1 = 0;
9915    fp_addcarryx_u32(&mut x1539, &mut x1540, x1538, x1522, x1519);
9916    let mut x1541: u32 = 0;
9917    let mut x1542: FpU1 = 0;
9918    fp_addcarryx_u32(&mut x1541, &mut x1542, x1540, x1520, x1517);
9919    let mut x1543: u32 = 0;
9920    let mut x1544: FpU1 = 0;
9921    fp_addcarryx_u32(&mut x1543, &mut x1544, x1542, x1518, x1515);
9922    let mut x1545: u32 = 0;
9923    let mut x1546: FpU1 = 0;
9924    fp_addcarryx_u32(&mut x1545, &mut x1546, x1544, x1516, x1513);
9925    let mut x1547: u32 = 0;
9926    let mut x1548: FpU1 = 0;
9927    fp_addcarryx_u32(&mut x1547, &mut x1548, x1546, x1514, x1511);
9928    let mut x1549: u32 = 0;
9929    let mut x1550: FpU1 = 0;
9930    fp_addcarryx_u32(&mut x1549, &mut x1550, x1548, x1512, x1509);
9931    let mut x1551: u32 = 0;
9932    let mut x1552: FpU1 = 0;
9933    fp_addcarryx_u32(&mut x1551, &mut x1552, x1550, x1510, x1507);
9934    let mut x1553: u32 = 0;
9935    let mut x1554: FpU1 = 0;
9936    fp_addcarryx_u32(&mut x1553, &mut x1554, 0x0, x1485, x1529);
9937    let mut x1555: u32 = 0;
9938    let mut x1556: FpU1 = 0;
9939    fp_addcarryx_u32(&mut x1555, &mut x1556, x1554, x1487, x1531);
9940    let mut x1557: u32 = 0;
9941    let mut x1558: FpU1 = 0;
9942    fp_addcarryx_u32(&mut x1557, &mut x1558, x1556, x1489, x1533);
9943    let mut x1559: u32 = 0;
9944    let mut x1560: FpU1 = 0;
9945    fp_addcarryx_u32(&mut x1559, &mut x1560, x1558, x1491, x1535);
9946    let mut x1561: u32 = 0;
9947    let mut x1562: FpU1 = 0;
9948    fp_addcarryx_u32(&mut x1561, &mut x1562, x1560, x1493, x1537);
9949    let mut x1563: u32 = 0;
9950    let mut x1564: FpU1 = 0;
9951    fp_addcarryx_u32(&mut x1563, &mut x1564, x1562, x1495, x1539);
9952    let mut x1565: u32 = 0;
9953    let mut x1566: FpU1 = 0;
9954    fp_addcarryx_u32(&mut x1565, &mut x1566, x1564, x1497, x1541);
9955    let mut x1567: u32 = 0;
9956    let mut x1568: FpU1 = 0;
9957    fp_addcarryx_u32(&mut x1567, &mut x1568, x1566, x1499, x1543);
9958    let mut x1569: u32 = 0;
9959    let mut x1570: FpU1 = 0;
9960    fp_addcarryx_u32(&mut x1569, &mut x1570, x1568, x1501, x1545);
9961    let mut x1571: u32 = 0;
9962    let mut x1572: FpU1 = 0;
9963    fp_addcarryx_u32(&mut x1571, &mut x1572, x1570, x1503, x1547);
9964    let mut x1573: u32 = 0;
9965    let mut x1574: FpU1 = 0;
9966    fp_addcarryx_u32(&mut x1573, &mut x1574, x1572, x1505, x1549);
9967    let mut x1575: u32 = 0;
9968    let mut x1576: FpU1 = 0;
9969    fp_addcarryx_u32(
9970        &mut x1575,
9971        &mut x1576,
9972        x1574,
9973        (((x1506 as u32) + ((x1438 as u32) + ((x1414 as u32) + x1370))) + ((x1482 as u32) + x1442)),
9974        x1551,
9975    );
9976    let mut x1577: u32 = 0;
9977    let mut x1578: u32 = 0;
9978    fp_mulx_u32(&mut x1577, &mut x1578, x1553, 0xffffffff);
9979    let mut x1579: u32 = 0;
9980    let mut x1580: u32 = 0;
9981    fp_mulx_u32(&mut x1579, &mut x1580, x1577, 0x1ae3a46);
9982    let mut x1581: u32 = 0;
9983    let mut x1582: u32 = 0;
9984    fp_mulx_u32(&mut x1581, &mut x1582, x1577, 0x17c510ea);
9985    let mut x1583: u32 = 0;
9986    let mut x1584: u32 = 0;
9987    fp_mulx_u32(&mut x1583, &mut x1584, x1577, 0xc63b05c0);
9988    let mut x1585: u32 = 0;
9989    let mut x1586: u32 = 0;
9990    fp_mulx_u32(&mut x1585, &mut x1586, x1577, 0x6ca1493b);
9991    let mut x1587: u32 = 0;
9992    let mut x1588: u32 = 0;
9993    fp_mulx_u32(&mut x1587, &mut x1588, x1577, 0x1a22d9f3);
9994    let mut x1589: u32 = 0;
9995    let mut x1590: u32 = 0;
9996    fp_mulx_u32(&mut x1589, &mut x1590, x1577, 0xf5138f);
9997    let mut x1591: u32 = 0;
9998    let mut x1592: u32 = 0;
9999    fp_mulx_u32(&mut x1591, &mut x1592, x1577, 0x1ef3622f);
10000    let mut x1593: u32 = 0;
10001    let mut x1594: u32 = 0;
10002    fp_mulx_u32(&mut x1593, &mut x1594, x1577, 0xba094800);
10003    let mut x1595: u32 = 0;
10004    let mut x1596: u32 = 0;
10005    fp_mulx_u32(&mut x1595, &mut x1596, x1577, 0x170b5d44);
10006    let mut x1597: u32 = 0;
10007    let mut x1598: u32 = 0;
10008    fp_mulx_u32(&mut x1597, &mut x1598, x1577, 0x30000000);
10009    let mut x1599: u32 = 0;
10010    let mut x1600: u32 = 0;
10011    fp_mulx_u32(&mut x1599, &mut x1600, x1577, 0x8508c000);
10012    let mut x1601: u32 = 0;
10013    let mut x1602: FpU1 = 0;
10014    fp_addcarryx_u32(&mut x1601, &mut x1602, 0x0, x1600, x1597);
10015    let mut x1603: u32 = 0;
10016    let mut x1604: FpU1 = 0;
10017    fp_addcarryx_u32(&mut x1603, &mut x1604, x1602, x1598, x1595);
10018    let mut x1605: u32 = 0;
10019    let mut x1606: FpU1 = 0;
10020    fp_addcarryx_u32(&mut x1605, &mut x1606, x1604, x1596, x1593);
10021    let mut x1607: u32 = 0;
10022    let mut x1608: FpU1 = 0;
10023    fp_addcarryx_u32(&mut x1607, &mut x1608, x1606, x1594, x1591);
10024    let mut x1609: u32 = 0;
10025    let mut x1610: FpU1 = 0;
10026    fp_addcarryx_u32(&mut x1609, &mut x1610, x1608, x1592, x1589);
10027    let mut x1611: u32 = 0;
10028    let mut x1612: FpU1 = 0;
10029    fp_addcarryx_u32(&mut x1611, &mut x1612, x1610, x1590, x1587);
10030    let mut x1613: u32 = 0;
10031    let mut x1614: FpU1 = 0;
10032    fp_addcarryx_u32(&mut x1613, &mut x1614, x1612, x1588, x1585);
10033    let mut x1615: u32 = 0;
10034    let mut x1616: FpU1 = 0;
10035    fp_addcarryx_u32(&mut x1615, &mut x1616, x1614, x1586, x1583);
10036    let mut x1617: u32 = 0;
10037    let mut x1618: FpU1 = 0;
10038    fp_addcarryx_u32(&mut x1617, &mut x1618, x1616, x1584, x1581);
10039    let mut x1619: u32 = 0;
10040    let mut x1620: FpU1 = 0;
10041    fp_addcarryx_u32(&mut x1619, &mut x1620, x1618, x1582, x1579);
10042    let mut x1621: u32 = 0;
10043    let mut x1622: FpU1 = 0;
10044    fp_addcarryx_u32(&mut x1621, &mut x1622, 0x0, x1553, x1577);
10045    let mut x1623: u32 = 0;
10046    let mut x1624: FpU1 = 0;
10047    fp_addcarryx_u32(&mut x1623, &mut x1624, x1622, x1555, x1599);
10048    let mut x1625: u32 = 0;
10049    let mut x1626: FpU1 = 0;
10050    fp_addcarryx_u32(&mut x1625, &mut x1626, x1624, x1557, x1601);
10051    let mut x1627: u32 = 0;
10052    let mut x1628: FpU1 = 0;
10053    fp_addcarryx_u32(&mut x1627, &mut x1628, x1626, x1559, x1603);
10054    let mut x1629: u32 = 0;
10055    let mut x1630: FpU1 = 0;
10056    fp_addcarryx_u32(&mut x1629, &mut x1630, x1628, x1561, x1605);
10057    let mut x1631: u32 = 0;
10058    let mut x1632: FpU1 = 0;
10059    fp_addcarryx_u32(&mut x1631, &mut x1632, x1630, x1563, x1607);
10060    let mut x1633: u32 = 0;
10061    let mut x1634: FpU1 = 0;
10062    fp_addcarryx_u32(&mut x1633, &mut x1634, x1632, x1565, x1609);
10063    let mut x1635: u32 = 0;
10064    let mut x1636: FpU1 = 0;
10065    fp_addcarryx_u32(&mut x1635, &mut x1636, x1634, x1567, x1611);
10066    let mut x1637: u32 = 0;
10067    let mut x1638: FpU1 = 0;
10068    fp_addcarryx_u32(&mut x1637, &mut x1638, x1636, x1569, x1613);
10069    let mut x1639: u32 = 0;
10070    let mut x1640: FpU1 = 0;
10071    fp_addcarryx_u32(&mut x1639, &mut x1640, x1638, x1571, x1615);
10072    let mut x1641: u32 = 0;
10073    let mut x1642: FpU1 = 0;
10074    fp_addcarryx_u32(&mut x1641, &mut x1642, x1640, x1573, x1617);
10075    let mut x1643: u32 = 0;
10076    let mut x1644: FpU1 = 0;
10077    fp_addcarryx_u32(&mut x1643, &mut x1644, x1642, x1575, x1619);
10078    let x1645: u32 =
10079        (((x1644 as u32) + ((x1576 as u32) + ((x1552 as u32) + x1508))) + ((x1620 as u32) + x1580));
10080    let mut x1646: u32 = 0;
10081    let mut x1647: FpU1 = 0;
10082    fp_subborrowx_u32(&mut x1646, &mut x1647, 0x0, x1623, (0x1 as u32));
10083    let mut x1648: u32 = 0;
10084    let mut x1649: FpU1 = 0;
10085    fp_subborrowx_u32(&mut x1648, &mut x1649, x1647, x1625, 0x8508c000);
10086    let mut x1650: u32 = 0;
10087    let mut x1651: FpU1 = 0;
10088    fp_subborrowx_u32(&mut x1650, &mut x1651, x1649, x1627, 0x30000000);
10089    let mut x1652: u32 = 0;
10090    let mut x1653: FpU1 = 0;
10091    fp_subborrowx_u32(&mut x1652, &mut x1653, x1651, x1629, 0x170b5d44);
10092    let mut x1654: u32 = 0;
10093    let mut x1655: FpU1 = 0;
10094    fp_subborrowx_u32(&mut x1654, &mut x1655, x1653, x1631, 0xba094800);
10095    let mut x1656: u32 = 0;
10096    let mut x1657: FpU1 = 0;
10097    fp_subborrowx_u32(&mut x1656, &mut x1657, x1655, x1633, 0x1ef3622f);
10098    let mut x1658: u32 = 0;
10099    let mut x1659: FpU1 = 0;
10100    fp_subborrowx_u32(&mut x1658, &mut x1659, x1657, x1635, 0xf5138f);
10101    let mut x1660: u32 = 0;
10102    let mut x1661: FpU1 = 0;
10103    fp_subborrowx_u32(&mut x1660, &mut x1661, x1659, x1637, 0x1a22d9f3);
10104    let mut x1662: u32 = 0;
10105    let mut x1663: FpU1 = 0;
10106    fp_subborrowx_u32(&mut x1662, &mut x1663, x1661, x1639, 0x6ca1493b);
10107    let mut x1664: u32 = 0;
10108    let mut x1665: FpU1 = 0;
10109    fp_subborrowx_u32(&mut x1664, &mut x1665, x1663, x1641, 0xc63b05c0);
10110    let mut x1666: u32 = 0;
10111    let mut x1667: FpU1 = 0;
10112    fp_subborrowx_u32(&mut x1666, &mut x1667, x1665, x1643, 0x17c510ea);
10113    let mut x1668: u32 = 0;
10114    let mut x1669: FpU1 = 0;
10115    fp_subborrowx_u32(&mut x1668, &mut x1669, x1667, x1645, 0x1ae3a46);
10116    let mut x1670: u32 = 0;
10117    let mut x1671: FpU1 = 0;
10118    fp_subborrowx_u32(&mut x1670, &mut x1671, x1669, (0x0 as u32), (0x0 as u32));
10119    let mut x1672: u32 = 0;
10120    fp_cmovznz_u32(&mut x1672, x1671, x1646, x1623);
10121    let mut x1673: u32 = 0;
10122    fp_cmovznz_u32(&mut x1673, x1671, x1648, x1625);
10123    let mut x1674: u32 = 0;
10124    fp_cmovznz_u32(&mut x1674, x1671, x1650, x1627);
10125    let mut x1675: u32 = 0;
10126    fp_cmovznz_u32(&mut x1675, x1671, x1652, x1629);
10127    let mut x1676: u32 = 0;
10128    fp_cmovznz_u32(&mut x1676, x1671, x1654, x1631);
10129    let mut x1677: u32 = 0;
10130    fp_cmovznz_u32(&mut x1677, x1671, x1656, x1633);
10131    let mut x1678: u32 = 0;
10132    fp_cmovznz_u32(&mut x1678, x1671, x1658, x1635);
10133    let mut x1679: u32 = 0;
10134    fp_cmovznz_u32(&mut x1679, x1671, x1660, x1637);
10135    let mut x1680: u32 = 0;
10136    fp_cmovznz_u32(&mut x1680, x1671, x1662, x1639);
10137    let mut x1681: u32 = 0;
10138    fp_cmovznz_u32(&mut x1681, x1671, x1664, x1641);
10139    let mut x1682: u32 = 0;
10140    fp_cmovznz_u32(&mut x1682, x1671, x1666, x1643);
10141    let mut x1683: u32 = 0;
10142    fp_cmovznz_u32(&mut x1683, x1671, x1668, x1645);
10143    out1[0] = x1672;
10144    out1[1] = x1673;
10145    out1[2] = x1674;
10146    out1[3] = x1675;
10147    out1[4] = x1676;
10148    out1[5] = x1677;
10149    out1[6] = x1678;
10150    out1[7] = x1679;
10151    out1[8] = x1680;
10152    out1[9] = x1681;
10153    out1[10] = x1682;
10154    out1[11] = x1683;
10155}
10156
10157/// The function fp_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
10158///
10159/// Preconditions:
10160///   0 ≤ eval arg1 < m
10161/// Postconditions:
10162///   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
10163///
10164/// Input Bounds:
10165///   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10166/// Output Bounds:
10167///   out1: [0x0 ~> 0xffffffff]
10168pub fn fp_nonzero(out1: &mut u32, arg1: &[u32; 12]) {
10169    let x1: u32 = ((arg1[0])
10170        | ((arg1[1])
10171            | ((arg1[2])
10172                | ((arg1[3])
10173                    | ((arg1[4])
10174                        | ((arg1[5])
10175                            | ((arg1[6])
10176                                | ((arg1[7])
10177                                    | ((arg1[8]) | ((arg1[9]) | ((arg1[10]) | (arg1[11]))))))))))));
10178    *out1 = x1;
10179}
10180
10181/// The function fp_selectznz is a multi-limb conditional select.
10182///
10183/// Postconditions:
10184///   out1 = (if arg1 = 0 then arg2 else arg3)
10185///
10186/// Input Bounds:
10187///   arg1: [0x0 ~> 0x1]
10188///   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10189///   arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10190/// Output Bounds:
10191///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10192pub fn fp_selectznz(out1: &mut [u32; 12], arg1: FpU1, arg2: &[u32; 12], arg3: &[u32; 12]) {
10193    let mut x1: u32 = 0;
10194    fp_cmovznz_u32(&mut x1, arg1, (arg2[0]), (arg3[0]));
10195    let mut x2: u32 = 0;
10196    fp_cmovznz_u32(&mut x2, arg1, (arg2[1]), (arg3[1]));
10197    let mut x3: u32 = 0;
10198    fp_cmovznz_u32(&mut x3, arg1, (arg2[2]), (arg3[2]));
10199    let mut x4: u32 = 0;
10200    fp_cmovznz_u32(&mut x4, arg1, (arg2[3]), (arg3[3]));
10201    let mut x5: u32 = 0;
10202    fp_cmovznz_u32(&mut x5, arg1, (arg2[4]), (arg3[4]));
10203    let mut x6: u32 = 0;
10204    fp_cmovznz_u32(&mut x6, arg1, (arg2[5]), (arg3[5]));
10205    let mut x7: u32 = 0;
10206    fp_cmovznz_u32(&mut x7, arg1, (arg2[6]), (arg3[6]));
10207    let mut x8: u32 = 0;
10208    fp_cmovznz_u32(&mut x8, arg1, (arg2[7]), (arg3[7]));
10209    let mut x9: u32 = 0;
10210    fp_cmovznz_u32(&mut x9, arg1, (arg2[8]), (arg3[8]));
10211    let mut x10: u32 = 0;
10212    fp_cmovznz_u32(&mut x10, arg1, (arg2[9]), (arg3[9]));
10213    let mut x11: u32 = 0;
10214    fp_cmovznz_u32(&mut x11, arg1, (arg2[10]), (arg3[10]));
10215    let mut x12: u32 = 0;
10216    fp_cmovznz_u32(&mut x12, arg1, (arg2[11]), (arg3[11]));
10217    out1[0] = x1;
10218    out1[1] = x2;
10219    out1[2] = x3;
10220    out1[3] = x4;
10221    out1[4] = x5;
10222    out1[5] = x6;
10223    out1[6] = x7;
10224    out1[7] = x8;
10225    out1[8] = x9;
10226    out1[9] = x10;
10227    out1[10] = x11;
10228    out1[11] = x12;
10229}
10230
10231/// The function fp_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order.
10232///
10233/// Preconditions:
10234///   0 ≤ eval arg1 < m
10235/// Postconditions:
10236///   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..47]
10237///
10238/// Input Bounds:
10239///   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0x1ffffff]]
10240/// Output Bounds:
10241///   out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
10242pub fn fp_to_bytes(out1: &mut [u8; 48], arg1: &[u32; 12]) {
10243    let x1: u32 = (arg1[11]);
10244    let x2: u32 = (arg1[10]);
10245    let x3: u32 = (arg1[9]);
10246    let x4: u32 = (arg1[8]);
10247    let x5: u32 = (arg1[7]);
10248    let x6: u32 = (arg1[6]);
10249    let x7: u32 = (arg1[5]);
10250    let x8: u32 = (arg1[4]);
10251    let x9: u32 = (arg1[3]);
10252    let x10: u32 = (arg1[2]);
10253    let x11: u32 = (arg1[1]);
10254    let x12: u32 = (arg1[0]);
10255    let x13: u8 = ((x12 & (0xff as u32)) as u8);
10256    let x14: u32 = (x12 >> 8);
10257    let x15: u8 = ((x14 & (0xff as u32)) as u8);
10258    let x16: u32 = (x14 >> 8);
10259    let x17: u8 = ((x16 & (0xff as u32)) as u8);
10260    let x18: u8 = ((x16 >> 8) as u8);
10261    let x19: u8 = ((x11 & (0xff as u32)) as u8);
10262    let x20: u32 = (x11 >> 8);
10263    let x21: u8 = ((x20 & (0xff as u32)) as u8);
10264    let x22: u32 = (x20 >> 8);
10265    let x23: u8 = ((x22 & (0xff as u32)) as u8);
10266    let x24: u8 = ((x22 >> 8) as u8);
10267    let x25: u8 = ((x10 & (0xff as u32)) as u8);
10268    let x26: u32 = (x10 >> 8);
10269    let x27: u8 = ((x26 & (0xff as u32)) as u8);
10270    let x28: u32 = (x26 >> 8);
10271    let x29: u8 = ((x28 & (0xff as u32)) as u8);
10272    let x30: u8 = ((x28 >> 8) as u8);
10273    let x31: u8 = ((x9 & (0xff as u32)) as u8);
10274    let x32: u32 = (x9 >> 8);
10275    let x33: u8 = ((x32 & (0xff as u32)) as u8);
10276    let x34: u32 = (x32 >> 8);
10277    let x35: u8 = ((x34 & (0xff as u32)) as u8);
10278    let x36: u8 = ((x34 >> 8) as u8);
10279    let x37: u8 = ((x8 & (0xff as u32)) as u8);
10280    let x38: u32 = (x8 >> 8);
10281    let x39: u8 = ((x38 & (0xff as u32)) as u8);
10282    let x40: u32 = (x38 >> 8);
10283    let x41: u8 = ((x40 & (0xff as u32)) as u8);
10284    let x42: u8 = ((x40 >> 8) as u8);
10285    let x43: u8 = ((x7 & (0xff as u32)) as u8);
10286    let x44: u32 = (x7 >> 8);
10287    let x45: u8 = ((x44 & (0xff as u32)) as u8);
10288    let x46: u32 = (x44 >> 8);
10289    let x47: u8 = ((x46 & (0xff as u32)) as u8);
10290    let x48: u8 = ((x46 >> 8) as u8);
10291    let x49: u8 = ((x6 & (0xff as u32)) as u8);
10292    let x50: u32 = (x6 >> 8);
10293    let x51: u8 = ((x50 & (0xff as u32)) as u8);
10294    let x52: u32 = (x50 >> 8);
10295    let x53: u8 = ((x52 & (0xff as u32)) as u8);
10296    let x54: u8 = ((x52 >> 8) as u8);
10297    let x55: u8 = ((x5 & (0xff as u32)) as u8);
10298    let x56: u32 = (x5 >> 8);
10299    let x57: u8 = ((x56 & (0xff as u32)) as u8);
10300    let x58: u32 = (x56 >> 8);
10301    let x59: u8 = ((x58 & (0xff as u32)) as u8);
10302    let x60: u8 = ((x58 >> 8) as u8);
10303    let x61: u8 = ((x4 & (0xff as u32)) as u8);
10304    let x62: u32 = (x4 >> 8);
10305    let x63: u8 = ((x62 & (0xff as u32)) as u8);
10306    let x64: u32 = (x62 >> 8);
10307    let x65: u8 = ((x64 & (0xff as u32)) as u8);
10308    let x66: u8 = ((x64 >> 8) as u8);
10309    let x67: u8 = ((x3 & (0xff as u32)) as u8);
10310    let x68: u32 = (x3 >> 8);
10311    let x69: u8 = ((x68 & (0xff as u32)) as u8);
10312    let x70: u32 = (x68 >> 8);
10313    let x71: u8 = ((x70 & (0xff as u32)) as u8);
10314    let x72: u8 = ((x70 >> 8) as u8);
10315    let x73: u8 = ((x2 & (0xff as u32)) as u8);
10316    let x74: u32 = (x2 >> 8);
10317    let x75: u8 = ((x74 & (0xff as u32)) as u8);
10318    let x76: u32 = (x74 >> 8);
10319    let x77: u8 = ((x76 & (0xff as u32)) as u8);
10320    let x78: u8 = ((x76 >> 8) as u8);
10321    let x79: u8 = ((x1 & (0xff as u32)) as u8);
10322    let x80: u32 = (x1 >> 8);
10323    let x81: u8 = ((x80 & (0xff as u32)) as u8);
10324    let x82: u32 = (x80 >> 8);
10325    let x83: u8 = ((x82 & (0xff as u32)) as u8);
10326    let x84: FpU1 = ((x82 >> 8) as FpU1);
10327    out1[0] = x13;
10328    out1[1] = x15;
10329    out1[2] = x17;
10330    out1[3] = x18;
10331    out1[4] = x19;
10332    out1[5] = x21;
10333    out1[6] = x23;
10334    out1[7] = x24;
10335    out1[8] = x25;
10336    out1[9] = x27;
10337    out1[10] = x29;
10338    out1[11] = x30;
10339    out1[12] = x31;
10340    out1[13] = x33;
10341    out1[14] = x35;
10342    out1[15] = x36;
10343    out1[16] = x37;
10344    out1[17] = x39;
10345    out1[18] = x41;
10346    out1[19] = x42;
10347    out1[20] = x43;
10348    out1[21] = x45;
10349    out1[22] = x47;
10350    out1[23] = x48;
10351    out1[24] = x49;
10352    out1[25] = x51;
10353    out1[26] = x53;
10354    out1[27] = x54;
10355    out1[28] = x55;
10356    out1[29] = x57;
10357    out1[30] = x59;
10358    out1[31] = x60;
10359    out1[32] = x61;
10360    out1[33] = x63;
10361    out1[34] = x65;
10362    out1[35] = x66;
10363    out1[36] = x67;
10364    out1[37] = x69;
10365    out1[38] = x71;
10366    out1[39] = x72;
10367    out1[40] = x73;
10368    out1[41] = x75;
10369    out1[42] = x77;
10370    out1[43] = x78;
10371    out1[44] = x79;
10372    out1[45] = x81;
10373    out1[46] = x83;
10374    out1[47] = (x84 as u8);
10375}
10376
10377/// The function fp_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order.
10378///
10379/// Preconditions:
10380///   0 ≤ bytes_eval arg1 < m
10381/// Postconditions:
10382///   eval out1 mod m = bytes_eval arg1 mod m
10383///   0 ≤ eval out1 < m
10384///
10385/// Input Bounds:
10386///   arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
10387/// Output Bounds:
10388///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0x1ffffff]]
10389pub fn fp_from_bytes(out1: &mut [u32; 12], arg1: &[u8; 48]) {
10390    let x1: u32 = ((((arg1[47]) as FpU1) as u32) << 24);
10391    let x2: u32 = (((arg1[46]) as u32) << 16);
10392    let x3: u32 = (((arg1[45]) as u32) << 8);
10393    let x4: u8 = (arg1[44]);
10394    let x5: u32 = (((arg1[43]) as u32) << 24);
10395    let x6: u32 = (((arg1[42]) as u32) << 16);
10396    let x7: u32 = (((arg1[41]) as u32) << 8);
10397    let x8: u8 = (arg1[40]);
10398    let x9: u32 = (((arg1[39]) as u32) << 24);
10399    let x10: u32 = (((arg1[38]) as u32) << 16);
10400    let x11: u32 = (((arg1[37]) as u32) << 8);
10401    let x12: u8 = (arg1[36]);
10402    let x13: u32 = (((arg1[35]) as u32) << 24);
10403    let x14: u32 = (((arg1[34]) as u32) << 16);
10404    let x15: u32 = (((arg1[33]) as u32) << 8);
10405    let x16: u8 = (arg1[32]);
10406    let x17: u32 = (((arg1[31]) as u32) << 24);
10407    let x18: u32 = (((arg1[30]) as u32) << 16);
10408    let x19: u32 = (((arg1[29]) as u32) << 8);
10409    let x20: u8 = (arg1[28]);
10410    let x21: u32 = (((arg1[27]) as u32) << 24);
10411    let x22: u32 = (((arg1[26]) as u32) << 16);
10412    let x23: u32 = (((arg1[25]) as u32) << 8);
10413    let x24: u8 = (arg1[24]);
10414    let x25: u32 = (((arg1[23]) as u32) << 24);
10415    let x26: u32 = (((arg1[22]) as u32) << 16);
10416    let x27: u32 = (((arg1[21]) as u32) << 8);
10417    let x28: u8 = (arg1[20]);
10418    let x29: u32 = (((arg1[19]) as u32) << 24);
10419    let x30: u32 = (((arg1[18]) as u32) << 16);
10420    let x31: u32 = (((arg1[17]) as u32) << 8);
10421    let x32: u8 = (arg1[16]);
10422    let x33: u32 = (((arg1[15]) as u32) << 24);
10423    let x34: u32 = (((arg1[14]) as u32) << 16);
10424    let x35: u32 = (((arg1[13]) as u32) << 8);
10425    let x36: u8 = (arg1[12]);
10426    let x37: u32 = (((arg1[11]) as u32) << 24);
10427    let x38: u32 = (((arg1[10]) as u32) << 16);
10428    let x39: u32 = (((arg1[9]) as u32) << 8);
10429    let x40: u8 = (arg1[8]);
10430    let x41: u32 = (((arg1[7]) as u32) << 24);
10431    let x42: u32 = (((arg1[6]) as u32) << 16);
10432    let x43: u32 = (((arg1[5]) as u32) << 8);
10433    let x44: u8 = (arg1[4]);
10434    let x45: u32 = (((arg1[3]) as u32) << 24);
10435    let x46: u32 = (((arg1[2]) as u32) << 16);
10436    let x47: u32 = (((arg1[1]) as u32) << 8);
10437    let x48: u8 = (arg1[0]);
10438    let x49: u32 = (x47 + (x48 as u32));
10439    let x50: u32 = (x46 + x49);
10440    let x51: u32 = (x45 + x50);
10441    let x52: u32 = (x43 + (x44 as u32));
10442    let x53: u32 = (x42 + x52);
10443    let x54: u32 = (x41 + x53);
10444    let x55: u32 = (x39 + (x40 as u32));
10445    let x56: u32 = (x38 + x55);
10446    let x57: u32 = (x37 + x56);
10447    let x58: u32 = (x35 + (x36 as u32));
10448    let x59: u32 = (x34 + x58);
10449    let x60: u32 = (x33 + x59);
10450    let x61: u32 = (x31 + (x32 as u32));
10451    let x62: u32 = (x30 + x61);
10452    let x63: u32 = (x29 + x62);
10453    let x64: u32 = (x27 + (x28 as u32));
10454    let x65: u32 = (x26 + x64);
10455    let x66: u32 = (x25 + x65);
10456    let x67: u32 = (x23 + (x24 as u32));
10457    let x68: u32 = (x22 + x67);
10458    let x69: u32 = (x21 + x68);
10459    let x70: u32 = (x19 + (x20 as u32));
10460    let x71: u32 = (x18 + x70);
10461    let x72: u32 = (x17 + x71);
10462    let x73: u32 = (x15 + (x16 as u32));
10463    let x74: u32 = (x14 + x73);
10464    let x75: u32 = (x13 + x74);
10465    let x76: u32 = (x11 + (x12 as u32));
10466    let x77: u32 = (x10 + x76);
10467    let x78: u32 = (x9 + x77);
10468    let x79: u32 = (x7 + (x8 as u32));
10469    let x80: u32 = (x6 + x79);
10470    let x81: u32 = (x5 + x80);
10471    let x82: u32 = (x3 + (x4 as u32));
10472    let x83: u32 = (x2 + x82);
10473    let x84: u32 = (x1 + x83);
10474    out1[0] = x51;
10475    out1[1] = x54;
10476    out1[2] = x57;
10477    out1[3] = x60;
10478    out1[4] = x63;
10479    out1[5] = x66;
10480    out1[6] = x69;
10481    out1[7] = x72;
10482    out1[8] = x75;
10483    out1[9] = x78;
10484    out1[10] = x81;
10485    out1[11] = x84;
10486}
10487
10488/// The function fp_set_one returns the field element one in the Montgomery domain.
10489///
10490/// Postconditions:
10491///   eval (from_montgomery out1) mod m = 1 mod m
10492///   0 ≤ eval out1 < m
10493///
10494pub fn fp_set_one(out1: &mut FpMontgomeryDomainFieldElement) {
10495    out1[0] = 0xffffff68;
10496    out1[1] = 0x2cdffff;
10497    out1[2] = 0x7fffffb1;
10498    out1[3] = 0x51409f83;
10499    out1[4] = 0x8a7d3ff2;
10500    out1[5] = 0x9f7db3a9;
10501    out1[6] = 0x6e7c6305;
10502    out1[7] = 0x7b4e97b7;
10503    out1[8] = 0x803c84e8;
10504    out1[9] = 0x4cf495bf;
10505    out1[10] = 0xe2fdf49a;
10506    out1[11] = 0x8d6661;
10507}
10508
10509/// The function fp_msat returns the saturated representation of the prime modulus.
10510///
10511/// Postconditions:
10512///   twos_complement_eval out1 = m
10513///   0 ≤ eval out1 < m
10514///
10515/// Output Bounds:
10516///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10517pub fn fp_msat(out1: &mut [u32; 13]) {
10518    out1[0] = (0x1 as u32);
10519    out1[1] = 0x8508c000;
10520    out1[2] = 0x30000000;
10521    out1[3] = 0x170b5d44;
10522    out1[4] = 0xba094800;
10523    out1[5] = 0x1ef3622f;
10524    out1[6] = 0xf5138f;
10525    out1[7] = 0x1a22d9f3;
10526    out1[8] = 0x6ca1493b;
10527    out1[9] = 0xc63b05c0;
10528    out1[10] = 0x17c510ea;
10529    out1[11] = 0x1ae3a46;
10530    out1[12] = (0x0 as u32);
10531}
10532
10533/// The function fp_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form).
10534///
10535/// Postconditions:
10536///   eval (from_montgomery out1) = ⌊(m - 1) / 2⌋^(if ⌊log2 m⌋ + 1 < 46 then ⌊(49 * (⌊log2 m⌋ + 1) + 80) / 17⌋ else ⌊(49 * (⌊log2 m⌋ + 1) + 57) / 17⌋)
10537///   0 ≤ eval out1 < m
10538///
10539/// Output Bounds:
10540///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10541pub fn fp_divstep_precomp(out1: &mut [u32; 12]) {
10542    out1[0] = 0x2eebc317;
10543    out1[1] = 0xeb11183b;
10544    out1[2] = 0xfce381c0;
10545    out1[3] = 0x447e9167;
10546    out1[4] = 0xe1b8e754;
10547    out1[5] = 0xd3d82e38;
10548    out1[6] = 0x7643f061;
10549    out1[7] = 0xa29ef9d4;
10550    out1[8] = 0xaf8a8f8e;
10551    out1[9] = 0x10aa1869;
10552    out1[10] = 0xbb6d9e65;
10553    out1[11] = 0xb5d780;
10554}
10555
10556/// The function fp_divstep computes a divstep.
10557///
10558/// Preconditions:
10559///   0 ≤ eval arg4 < m
10560///   0 ≤ eval arg5 < m
10561/// Postconditions:
10562///   out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)
10563///   twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)
10564///   twos_complement_eval out3 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then ⌊(twos_complement_eval arg3 - twos_complement_eval arg2) / 2⌋ else ⌊(twos_complement_eval arg3 + (twos_complement_eval arg3 mod 2) * twos_complement_eval arg2) / 2⌋)
10565///   eval (from_montgomery out4) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (2 * eval (from_montgomery arg5)) mod m else (2 * eval (from_montgomery arg4)) mod m)
10566///   eval (from_montgomery out5) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (eval (from_montgomery arg4) - eval (from_montgomery arg4)) mod m else (eval (from_montgomery arg5) + (twos_complement_eval arg3 mod 2) * eval (from_montgomery arg4)) mod m)
10567///   0 ≤ eval out5 < m
10568///   0 ≤ eval out5 < m
10569///   0 ≤ eval out2 < m
10570///   0 ≤ eval out3 < m
10571///
10572/// Input Bounds:
10573///   arg1: [0x0 ~> 0xffffffff]
10574///   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10575///   arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10576///   arg4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10577///   arg5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10578/// Output Bounds:
10579///   out1: [0x0 ~> 0xffffffff]
10580///   out2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10581///   out3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10582///   out4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10583///   out5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
10584pub fn fp_divstep(
10585    out1: &mut u32,
10586    out2: &mut [u32; 13],
10587    out3: &mut [u32; 13],
10588    out4: &mut [u32; 12],
10589    out5: &mut [u32; 12],
10590    arg1: u32,
10591    arg2: &[u32; 13],
10592    arg3: &[u32; 13],
10593    arg4: &[u32; 12],
10594    arg5: &[u32; 12],
10595) {
10596    let mut x1: u32 = 0;
10597    let mut x2: FpU1 = 0;
10598    fp_addcarryx_u32(&mut x1, &mut x2, 0x0, (!arg1), (0x1 as u32));
10599    let x3: FpU1 = (((x1 >> 31) as FpU1) & (((arg3[0]) & (0x1 as u32)) as FpU1));
10600    let mut x4: u32 = 0;
10601    let mut x5: FpU1 = 0;
10602    fp_addcarryx_u32(&mut x4, &mut x5, 0x0, (!arg1), (0x1 as u32));
10603    let mut x6: u32 = 0;
10604    fp_cmovznz_u32(&mut x6, x3, arg1, x4);
10605    let mut x7: u32 = 0;
10606    fp_cmovznz_u32(&mut x7, x3, (arg2[0]), (arg3[0]));
10607    let mut x8: u32 = 0;
10608    fp_cmovznz_u32(&mut x8, x3, (arg2[1]), (arg3[1]));
10609    let mut x9: u32 = 0;
10610    fp_cmovznz_u32(&mut x9, x3, (arg2[2]), (arg3[2]));
10611    let mut x10: u32 = 0;
10612    fp_cmovznz_u32(&mut x10, x3, (arg2[3]), (arg3[3]));
10613    let mut x11: u32 = 0;
10614    fp_cmovznz_u32(&mut x11, x3, (arg2[4]), (arg3[4]));
10615    let mut x12: u32 = 0;
10616    fp_cmovznz_u32(&mut x12, x3, (arg2[5]), (arg3[5]));
10617    let mut x13: u32 = 0;
10618    fp_cmovznz_u32(&mut x13, x3, (arg2[6]), (arg3[6]));
10619    let mut x14: u32 = 0;
10620    fp_cmovznz_u32(&mut x14, x3, (arg2[7]), (arg3[7]));
10621    let mut x15: u32 = 0;
10622    fp_cmovznz_u32(&mut x15, x3, (arg2[8]), (arg3[8]));
10623    let mut x16: u32 = 0;
10624    fp_cmovznz_u32(&mut x16, x3, (arg2[9]), (arg3[9]));
10625    let mut x17: u32 = 0;
10626    fp_cmovznz_u32(&mut x17, x3, (arg2[10]), (arg3[10]));
10627    let mut x18: u32 = 0;
10628    fp_cmovznz_u32(&mut x18, x3, (arg2[11]), (arg3[11]));
10629    let mut x19: u32 = 0;
10630    fp_cmovznz_u32(&mut x19, x3, (arg2[12]), (arg3[12]));
10631    let mut x20: u32 = 0;
10632    let mut x21: FpU1 = 0;
10633    fp_addcarryx_u32(&mut x20, &mut x21, 0x0, (0x1 as u32), (!(arg2[0])));
10634    let mut x22: u32 = 0;
10635    let mut x23: FpU1 = 0;
10636    fp_addcarryx_u32(&mut x22, &mut x23, x21, (0x0 as u32), (!(arg2[1])));
10637    let mut x24: u32 = 0;
10638    let mut x25: FpU1 = 0;
10639    fp_addcarryx_u32(&mut x24, &mut x25, x23, (0x0 as u32), (!(arg2[2])));
10640    let mut x26: u32 = 0;
10641    let mut x27: FpU1 = 0;
10642    fp_addcarryx_u32(&mut x26, &mut x27, x25, (0x0 as u32), (!(arg2[3])));
10643    let mut x28: u32 = 0;
10644    let mut x29: FpU1 = 0;
10645    fp_addcarryx_u32(&mut x28, &mut x29, x27, (0x0 as u32), (!(arg2[4])));
10646    let mut x30: u32 = 0;
10647    let mut x31: FpU1 = 0;
10648    fp_addcarryx_u32(&mut x30, &mut x31, x29, (0x0 as u32), (!(arg2[5])));
10649    let mut x32: u32 = 0;
10650    let mut x33: FpU1 = 0;
10651    fp_addcarryx_u32(&mut x32, &mut x33, x31, (0x0 as u32), (!(arg2[6])));
10652    let mut x34: u32 = 0;
10653    let mut x35: FpU1 = 0;
10654    fp_addcarryx_u32(&mut x34, &mut x35, x33, (0x0 as u32), (!(arg2[7])));
10655    let mut x36: u32 = 0;
10656    let mut x37: FpU1 = 0;
10657    fp_addcarryx_u32(&mut x36, &mut x37, x35, (0x0 as u32), (!(arg2[8])));
10658    let mut x38: u32 = 0;
10659    let mut x39: FpU1 = 0;
10660    fp_addcarryx_u32(&mut x38, &mut x39, x37, (0x0 as u32), (!(arg2[9])));
10661    let mut x40: u32 = 0;
10662    let mut x41: FpU1 = 0;
10663    fp_addcarryx_u32(&mut x40, &mut x41, x39, (0x0 as u32), (!(arg2[10])));
10664    let mut x42: u32 = 0;
10665    let mut x43: FpU1 = 0;
10666    fp_addcarryx_u32(&mut x42, &mut x43, x41, (0x0 as u32), (!(arg2[11])));
10667    let mut x44: u32 = 0;
10668    let mut x45: FpU1 = 0;
10669    fp_addcarryx_u32(&mut x44, &mut x45, x43, (0x0 as u32), (!(arg2[12])));
10670    let mut x46: u32 = 0;
10671    fp_cmovznz_u32(&mut x46, x3, (arg3[0]), x20);
10672    let mut x47: u32 = 0;
10673    fp_cmovznz_u32(&mut x47, x3, (arg3[1]), x22);
10674    let mut x48: u32 = 0;
10675    fp_cmovznz_u32(&mut x48, x3, (arg3[2]), x24);
10676    let mut x49: u32 = 0;
10677    fp_cmovznz_u32(&mut x49, x3, (arg3[3]), x26);
10678    let mut x50: u32 = 0;
10679    fp_cmovznz_u32(&mut x50, x3, (arg3[4]), x28);
10680    let mut x51: u32 = 0;
10681    fp_cmovznz_u32(&mut x51, x3, (arg3[5]), x30);
10682    let mut x52: u32 = 0;
10683    fp_cmovznz_u32(&mut x52, x3, (arg3[6]), x32);
10684    let mut x53: u32 = 0;
10685    fp_cmovznz_u32(&mut x53, x3, (arg3[7]), x34);
10686    let mut x54: u32 = 0;
10687    fp_cmovznz_u32(&mut x54, x3, (arg3[8]), x36);
10688    let mut x55: u32 = 0;
10689    fp_cmovznz_u32(&mut x55, x3, (arg3[9]), x38);
10690    let mut x56: u32 = 0;
10691    fp_cmovznz_u32(&mut x56, x3, (arg3[10]), x40);
10692    let mut x57: u32 = 0;
10693    fp_cmovznz_u32(&mut x57, x3, (arg3[11]), x42);
10694    let mut x58: u32 = 0;
10695    fp_cmovznz_u32(&mut x58, x3, (arg3[12]), x44);
10696    let mut x59: u32 = 0;
10697    fp_cmovznz_u32(&mut x59, x3, (arg4[0]), (arg5[0]));
10698    let mut x60: u32 = 0;
10699    fp_cmovznz_u32(&mut x60, x3, (arg4[1]), (arg5[1]));
10700    let mut x61: u32 = 0;
10701    fp_cmovznz_u32(&mut x61, x3, (arg4[2]), (arg5[2]));
10702    let mut x62: u32 = 0;
10703    fp_cmovznz_u32(&mut x62, x3, (arg4[3]), (arg5[3]));
10704    let mut x63: u32 = 0;
10705    fp_cmovznz_u32(&mut x63, x3, (arg4[4]), (arg5[4]));
10706    let mut x64: u32 = 0;
10707    fp_cmovznz_u32(&mut x64, x3, (arg4[5]), (arg5[5]));
10708    let mut x65: u32 = 0;
10709    fp_cmovznz_u32(&mut x65, x3, (arg4[6]), (arg5[6]));
10710    let mut x66: u32 = 0;
10711    fp_cmovznz_u32(&mut x66, x3, (arg4[7]), (arg5[7]));
10712    let mut x67: u32 = 0;
10713    fp_cmovznz_u32(&mut x67, x3, (arg4[8]), (arg5[8]));
10714    let mut x68: u32 = 0;
10715    fp_cmovznz_u32(&mut x68, x3, (arg4[9]), (arg5[9]));
10716    let mut x69: u32 = 0;
10717    fp_cmovznz_u32(&mut x69, x3, (arg4[10]), (arg5[10]));
10718    let mut x70: u32 = 0;
10719    fp_cmovznz_u32(&mut x70, x3, (arg4[11]), (arg5[11]));
10720    let mut x71: u32 = 0;
10721    let mut x72: FpU1 = 0;
10722    fp_addcarryx_u32(&mut x71, &mut x72, 0x0, x59, x59);
10723    let mut x73: u32 = 0;
10724    let mut x74: FpU1 = 0;
10725    fp_addcarryx_u32(&mut x73, &mut x74, x72, x60, x60);
10726    let mut x75: u32 = 0;
10727    let mut x76: FpU1 = 0;
10728    fp_addcarryx_u32(&mut x75, &mut x76, x74, x61, x61);
10729    let mut x77: u32 = 0;
10730    let mut x78: FpU1 = 0;
10731    fp_addcarryx_u32(&mut x77, &mut x78, x76, x62, x62);
10732    let mut x79: u32 = 0;
10733    let mut x80: FpU1 = 0;
10734    fp_addcarryx_u32(&mut x79, &mut x80, x78, x63, x63);
10735    let mut x81: u32 = 0;
10736    let mut x82: FpU1 = 0;
10737    fp_addcarryx_u32(&mut x81, &mut x82, x80, x64, x64);
10738    let mut x83: u32 = 0;
10739    let mut x84: FpU1 = 0;
10740    fp_addcarryx_u32(&mut x83, &mut x84, x82, x65, x65);
10741    let mut x85: u32 = 0;
10742    let mut x86: FpU1 = 0;
10743    fp_addcarryx_u32(&mut x85, &mut x86, x84, x66, x66);
10744    let mut x87: u32 = 0;
10745    let mut x88: FpU1 = 0;
10746    fp_addcarryx_u32(&mut x87, &mut x88, x86, x67, x67);
10747    let mut x89: u32 = 0;
10748    let mut x90: FpU1 = 0;
10749    fp_addcarryx_u32(&mut x89, &mut x90, x88, x68, x68);
10750    let mut x91: u32 = 0;
10751    let mut x92: FpU1 = 0;
10752    fp_addcarryx_u32(&mut x91, &mut x92, x90, x69, x69);
10753    let mut x93: u32 = 0;
10754    let mut x94: FpU1 = 0;
10755    fp_addcarryx_u32(&mut x93, &mut x94, x92, x70, x70);
10756    let mut x95: u32 = 0;
10757    let mut x96: FpU1 = 0;
10758    fp_subborrowx_u32(&mut x95, &mut x96, 0x0, x71, (0x1 as u32));
10759    let mut x97: u32 = 0;
10760    let mut x98: FpU1 = 0;
10761    fp_subborrowx_u32(&mut x97, &mut x98, x96, x73, 0x8508c000);
10762    let mut x99: u32 = 0;
10763    let mut x100: FpU1 = 0;
10764    fp_subborrowx_u32(&mut x99, &mut x100, x98, x75, 0x30000000);
10765    let mut x101: u32 = 0;
10766    let mut x102: FpU1 = 0;
10767    fp_subborrowx_u32(&mut x101, &mut x102, x100, x77, 0x170b5d44);
10768    let mut x103: u32 = 0;
10769    let mut x104: FpU1 = 0;
10770    fp_subborrowx_u32(&mut x103, &mut x104, x102, x79, 0xba094800);
10771    let mut x105: u32 = 0;
10772    let mut x106: FpU1 = 0;
10773    fp_subborrowx_u32(&mut x105, &mut x106, x104, x81, 0x1ef3622f);
10774    let mut x107: u32 = 0;
10775    let mut x108: FpU1 = 0;
10776    fp_subborrowx_u32(&mut x107, &mut x108, x106, x83, 0xf5138f);
10777    let mut x109: u32 = 0;
10778    let mut x110: FpU1 = 0;
10779    fp_subborrowx_u32(&mut x109, &mut x110, x108, x85, 0x1a22d9f3);
10780    let mut x111: u32 = 0;
10781    let mut x112: FpU1 = 0;
10782    fp_subborrowx_u32(&mut x111, &mut x112, x110, x87, 0x6ca1493b);
10783    let mut x113: u32 = 0;
10784    let mut x114: FpU1 = 0;
10785    fp_subborrowx_u32(&mut x113, &mut x114, x112, x89, 0xc63b05c0);
10786    let mut x115: u32 = 0;
10787    let mut x116: FpU1 = 0;
10788    fp_subborrowx_u32(&mut x115, &mut x116, x114, x91, 0x17c510ea);
10789    let mut x117: u32 = 0;
10790    let mut x118: FpU1 = 0;
10791    fp_subborrowx_u32(&mut x117, &mut x118, x116, x93, 0x1ae3a46);
10792    let mut x119: u32 = 0;
10793    let mut x120: FpU1 = 0;
10794    fp_subborrowx_u32(&mut x119, &mut x120, x118, (x94 as u32), (0x0 as u32));
10795    let x121: u32 = (arg4[11]);
10796    let x122: u32 = (arg4[10]);
10797    let x123: u32 = (arg4[9]);
10798    let x124: u32 = (arg4[8]);
10799    let x125: u32 = (arg4[7]);
10800    let x126: u32 = (arg4[6]);
10801    let x127: u32 = (arg4[5]);
10802    let x128: u32 = (arg4[4]);
10803    let x129: u32 = (arg4[3]);
10804    let x130: u32 = (arg4[2]);
10805    let x131: u32 = (arg4[1]);
10806    let x132: u32 = (arg4[0]);
10807    let mut x133: u32 = 0;
10808    let mut x134: FpU1 = 0;
10809    fp_subborrowx_u32(&mut x133, &mut x134, 0x0, (0x0 as u32), x132);
10810    let mut x135: u32 = 0;
10811    let mut x136: FpU1 = 0;
10812    fp_subborrowx_u32(&mut x135, &mut x136, x134, (0x0 as u32), x131);
10813    let mut x137: u32 = 0;
10814    let mut x138: FpU1 = 0;
10815    fp_subborrowx_u32(&mut x137, &mut x138, x136, (0x0 as u32), x130);
10816    let mut x139: u32 = 0;
10817    let mut x140: FpU1 = 0;
10818    fp_subborrowx_u32(&mut x139, &mut x140, x138, (0x0 as u32), x129);
10819    let mut x141: u32 = 0;
10820    let mut x142: FpU1 = 0;
10821    fp_subborrowx_u32(&mut x141, &mut x142, x140, (0x0 as u32), x128);
10822    let mut x143: u32 = 0;
10823    let mut x144: FpU1 = 0;
10824    fp_subborrowx_u32(&mut x143, &mut x144, x142, (0x0 as u32), x127);
10825    let mut x145: u32 = 0;
10826    let mut x146: FpU1 = 0;
10827    fp_subborrowx_u32(&mut x145, &mut x146, x144, (0x0 as u32), x126);
10828    let mut x147: u32 = 0;
10829    let mut x148: FpU1 = 0;
10830    fp_subborrowx_u32(&mut x147, &mut x148, x146, (0x0 as u32), x125);
10831    let mut x149: u32 = 0;
10832    let mut x150: FpU1 = 0;
10833    fp_subborrowx_u32(&mut x149, &mut x150, x148, (0x0 as u32), x124);
10834    let mut x151: u32 = 0;
10835    let mut x152: FpU1 = 0;
10836    fp_subborrowx_u32(&mut x151, &mut x152, x150, (0x0 as u32), x123);
10837    let mut x153: u32 = 0;
10838    let mut x154: FpU1 = 0;
10839    fp_subborrowx_u32(&mut x153, &mut x154, x152, (0x0 as u32), x122);
10840    let mut x155: u32 = 0;
10841    let mut x156: FpU1 = 0;
10842    fp_subborrowx_u32(&mut x155, &mut x156, x154, (0x0 as u32), x121);
10843    let mut x157: u32 = 0;
10844    fp_cmovznz_u32(&mut x157, x156, (0x0 as u32), 0xffffffff);
10845    let mut x158: u32 = 0;
10846    let mut x159: FpU1 = 0;
10847    fp_addcarryx_u32(
10848        &mut x158,
10849        &mut x159,
10850        0x0,
10851        x133,
10852        (((x157 & (0x1 as u32)) as FpU1) as u32),
10853    );
10854    let mut x160: u32 = 0;
10855    let mut x161: FpU1 = 0;
10856    fp_addcarryx_u32(&mut x160, &mut x161, x159, x135, (x157 & 0x8508c000));
10857    let mut x162: u32 = 0;
10858    let mut x163: FpU1 = 0;
10859    fp_addcarryx_u32(&mut x162, &mut x163, x161, x137, (x157 & 0x30000000));
10860    let mut x164: u32 = 0;
10861    let mut x165: FpU1 = 0;
10862    fp_addcarryx_u32(&mut x164, &mut x165, x163, x139, (x157 & 0x170b5d44));
10863    let mut x166: u32 = 0;
10864    let mut x167: FpU1 = 0;
10865    fp_addcarryx_u32(&mut x166, &mut x167, x165, x141, (x157 & 0xba094800));
10866    let mut x168: u32 = 0;
10867    let mut x169: FpU1 = 0;
10868    fp_addcarryx_u32(&mut x168, &mut x169, x167, x143, (x157 & 0x1ef3622f));
10869    let mut x170: u32 = 0;
10870    let mut x171: FpU1 = 0;
10871    fp_addcarryx_u32(&mut x170, &mut x171, x169, x145, (x157 & 0xf5138f));
10872    let mut x172: u32 = 0;
10873    let mut x173: FpU1 = 0;
10874    fp_addcarryx_u32(&mut x172, &mut x173, x171, x147, (x157 & 0x1a22d9f3));
10875    let mut x174: u32 = 0;
10876    let mut x175: FpU1 = 0;
10877    fp_addcarryx_u32(&mut x174, &mut x175, x173, x149, (x157 & 0x6ca1493b));
10878    let mut x176: u32 = 0;
10879    let mut x177: FpU1 = 0;
10880    fp_addcarryx_u32(&mut x176, &mut x177, x175, x151, (x157 & 0xc63b05c0));
10881    let mut x178: u32 = 0;
10882    let mut x179: FpU1 = 0;
10883    fp_addcarryx_u32(&mut x178, &mut x179, x177, x153, (x157 & 0x17c510ea));
10884    let mut x180: u32 = 0;
10885    let mut x181: FpU1 = 0;
10886    fp_addcarryx_u32(&mut x180, &mut x181, x179, x155, (x157 & 0x1ae3a46));
10887    let mut x182: u32 = 0;
10888    fp_cmovznz_u32(&mut x182, x3, (arg5[0]), x158);
10889    let mut x183: u32 = 0;
10890    fp_cmovznz_u32(&mut x183, x3, (arg5[1]), x160);
10891    let mut x184: u32 = 0;
10892    fp_cmovznz_u32(&mut x184, x3, (arg5[2]), x162);
10893    let mut x185: u32 = 0;
10894    fp_cmovznz_u32(&mut x185, x3, (arg5[3]), x164);
10895    let mut x186: u32 = 0;
10896    fp_cmovznz_u32(&mut x186, x3, (arg5[4]), x166);
10897    let mut x187: u32 = 0;
10898    fp_cmovznz_u32(&mut x187, x3, (arg5[5]), x168);
10899    let mut x188: u32 = 0;
10900    fp_cmovznz_u32(&mut x188, x3, (arg5[6]), x170);
10901    let mut x189: u32 = 0;
10902    fp_cmovznz_u32(&mut x189, x3, (arg5[7]), x172);
10903    let mut x190: u32 = 0;
10904    fp_cmovznz_u32(&mut x190, x3, (arg5[8]), x174);
10905    let mut x191: u32 = 0;
10906    fp_cmovznz_u32(&mut x191, x3, (arg5[9]), x176);
10907    let mut x192: u32 = 0;
10908    fp_cmovznz_u32(&mut x192, x3, (arg5[10]), x178);
10909    let mut x193: u32 = 0;
10910    fp_cmovznz_u32(&mut x193, x3, (arg5[11]), x180);
10911    let x194: FpU1 = ((x46 & (0x1 as u32)) as FpU1);
10912    let mut x195: u32 = 0;
10913    fp_cmovznz_u32(&mut x195, x194, (0x0 as u32), x7);
10914    let mut x196: u32 = 0;
10915    fp_cmovznz_u32(&mut x196, x194, (0x0 as u32), x8);
10916    let mut x197: u32 = 0;
10917    fp_cmovznz_u32(&mut x197, x194, (0x0 as u32), x9);
10918    let mut x198: u32 = 0;
10919    fp_cmovznz_u32(&mut x198, x194, (0x0 as u32), x10);
10920    let mut x199: u32 = 0;
10921    fp_cmovznz_u32(&mut x199, x194, (0x0 as u32), x11);
10922    let mut x200: u32 = 0;
10923    fp_cmovznz_u32(&mut x200, x194, (0x0 as u32), x12);
10924    let mut x201: u32 = 0;
10925    fp_cmovznz_u32(&mut x201, x194, (0x0 as u32), x13);
10926    let mut x202: u32 = 0;
10927    fp_cmovznz_u32(&mut x202, x194, (0x0 as u32), x14);
10928    let mut x203: u32 = 0;
10929    fp_cmovznz_u32(&mut x203, x194, (0x0 as u32), x15);
10930    let mut x204: u32 = 0;
10931    fp_cmovznz_u32(&mut x204, x194, (0x0 as u32), x16);
10932    let mut x205: u32 = 0;
10933    fp_cmovznz_u32(&mut x205, x194, (0x0 as u32), x17);
10934    let mut x206: u32 = 0;
10935    fp_cmovznz_u32(&mut x206, x194, (0x0 as u32), x18);
10936    let mut x207: u32 = 0;
10937    fp_cmovznz_u32(&mut x207, x194, (0x0 as u32), x19);
10938    let mut x208: u32 = 0;
10939    let mut x209: FpU1 = 0;
10940    fp_addcarryx_u32(&mut x208, &mut x209, 0x0, x46, x195);
10941    let mut x210: u32 = 0;
10942    let mut x211: FpU1 = 0;
10943    fp_addcarryx_u32(&mut x210, &mut x211, x209, x47, x196);
10944    let mut x212: u32 = 0;
10945    let mut x213: FpU1 = 0;
10946    fp_addcarryx_u32(&mut x212, &mut x213, x211, x48, x197);
10947    let mut x214: u32 = 0;
10948    let mut x215: FpU1 = 0;
10949    fp_addcarryx_u32(&mut x214, &mut x215, x213, x49, x198);
10950    let mut x216: u32 = 0;
10951    let mut x217: FpU1 = 0;
10952    fp_addcarryx_u32(&mut x216, &mut x217, x215, x50, x199);
10953    let mut x218: u32 = 0;
10954    let mut x219: FpU1 = 0;
10955    fp_addcarryx_u32(&mut x218, &mut x219, x217, x51, x200);
10956    let mut x220: u32 = 0;
10957    let mut x221: FpU1 = 0;
10958    fp_addcarryx_u32(&mut x220, &mut x221, x219, x52, x201);
10959    let mut x222: u32 = 0;
10960    let mut x223: FpU1 = 0;
10961    fp_addcarryx_u32(&mut x222, &mut x223, x221, x53, x202);
10962    let mut x224: u32 = 0;
10963    let mut x225: FpU1 = 0;
10964    fp_addcarryx_u32(&mut x224, &mut x225, x223, x54, x203);
10965    let mut x226: u32 = 0;
10966    let mut x227: FpU1 = 0;
10967    fp_addcarryx_u32(&mut x226, &mut x227, x225, x55, x204);
10968    let mut x228: u32 = 0;
10969    let mut x229: FpU1 = 0;
10970    fp_addcarryx_u32(&mut x228, &mut x229, x227, x56, x205);
10971    let mut x230: u32 = 0;
10972    let mut x231: FpU1 = 0;
10973    fp_addcarryx_u32(&mut x230, &mut x231, x229, x57, x206);
10974    let mut x232: u32 = 0;
10975    let mut x233: FpU1 = 0;
10976    fp_addcarryx_u32(&mut x232, &mut x233, x231, x58, x207);
10977    let mut x234: u32 = 0;
10978    fp_cmovznz_u32(&mut x234, x194, (0x0 as u32), x59);
10979    let mut x235: u32 = 0;
10980    fp_cmovznz_u32(&mut x235, x194, (0x0 as u32), x60);
10981    let mut x236: u32 = 0;
10982    fp_cmovznz_u32(&mut x236, x194, (0x0 as u32), x61);
10983    let mut x237: u32 = 0;
10984    fp_cmovznz_u32(&mut x237, x194, (0x0 as u32), x62);
10985    let mut x238: u32 = 0;
10986    fp_cmovznz_u32(&mut x238, x194, (0x0 as u32), x63);
10987    let mut x239: u32 = 0;
10988    fp_cmovznz_u32(&mut x239, x194, (0x0 as u32), x64);
10989    let mut x240: u32 = 0;
10990    fp_cmovznz_u32(&mut x240, x194, (0x0 as u32), x65);
10991    let mut x241: u32 = 0;
10992    fp_cmovznz_u32(&mut x241, x194, (0x0 as u32), x66);
10993    let mut x242: u32 = 0;
10994    fp_cmovznz_u32(&mut x242, x194, (0x0 as u32), x67);
10995    let mut x243: u32 = 0;
10996    fp_cmovznz_u32(&mut x243, x194, (0x0 as u32), x68);
10997    let mut x244: u32 = 0;
10998    fp_cmovznz_u32(&mut x244, x194, (0x0 as u32), x69);
10999    let mut x245: u32 = 0;
11000    fp_cmovznz_u32(&mut x245, x194, (0x0 as u32), x70);
11001    let mut x246: u32 = 0;
11002    let mut x247: FpU1 = 0;
11003    fp_addcarryx_u32(&mut x246, &mut x247, 0x0, x182, x234);
11004    let mut x248: u32 = 0;
11005    let mut x249: FpU1 = 0;
11006    fp_addcarryx_u32(&mut x248, &mut x249, x247, x183, x235);
11007    let mut x250: u32 = 0;
11008    let mut x251: FpU1 = 0;
11009    fp_addcarryx_u32(&mut x250, &mut x251, x249, x184, x236);
11010    let mut x252: u32 = 0;
11011    let mut x253: FpU1 = 0;
11012    fp_addcarryx_u32(&mut x252, &mut x253, x251, x185, x237);
11013    let mut x254: u32 = 0;
11014    let mut x255: FpU1 = 0;
11015    fp_addcarryx_u32(&mut x254, &mut x255, x253, x186, x238);
11016    let mut x256: u32 = 0;
11017    let mut x257: FpU1 = 0;
11018    fp_addcarryx_u32(&mut x256, &mut x257, x255, x187, x239);
11019    let mut x258: u32 = 0;
11020    let mut x259: FpU1 = 0;
11021    fp_addcarryx_u32(&mut x258, &mut x259, x257, x188, x240);
11022    let mut x260: u32 = 0;
11023    let mut x261: FpU1 = 0;
11024    fp_addcarryx_u32(&mut x260, &mut x261, x259, x189, x241);
11025    let mut x262: u32 = 0;
11026    let mut x263: FpU1 = 0;
11027    fp_addcarryx_u32(&mut x262, &mut x263, x261, x190, x242);
11028    let mut x264: u32 = 0;
11029    let mut x265: FpU1 = 0;
11030    fp_addcarryx_u32(&mut x264, &mut x265, x263, x191, x243);
11031    let mut x266: u32 = 0;
11032    let mut x267: FpU1 = 0;
11033    fp_addcarryx_u32(&mut x266, &mut x267, x265, x192, x244);
11034    let mut x268: u32 = 0;
11035    let mut x269: FpU1 = 0;
11036    fp_addcarryx_u32(&mut x268, &mut x269, x267, x193, x245);
11037    let mut x270: u32 = 0;
11038    let mut x271: FpU1 = 0;
11039    fp_subborrowx_u32(&mut x270, &mut x271, 0x0, x246, (0x1 as u32));
11040    let mut x272: u32 = 0;
11041    let mut x273: FpU1 = 0;
11042    fp_subborrowx_u32(&mut x272, &mut x273, x271, x248, 0x8508c000);
11043    let mut x274: u32 = 0;
11044    let mut x275: FpU1 = 0;
11045    fp_subborrowx_u32(&mut x274, &mut x275, x273, x250, 0x30000000);
11046    let mut x276: u32 = 0;
11047    let mut x277: FpU1 = 0;
11048    fp_subborrowx_u32(&mut x276, &mut x277, x275, x252, 0x170b5d44);
11049    let mut x278: u32 = 0;
11050    let mut x279: FpU1 = 0;
11051    fp_subborrowx_u32(&mut x278, &mut x279, x277, x254, 0xba094800);
11052    let mut x280: u32 = 0;
11053    let mut x281: FpU1 = 0;
11054    fp_subborrowx_u32(&mut x280, &mut x281, x279, x256, 0x1ef3622f);
11055    let mut x282: u32 = 0;
11056    let mut x283: FpU1 = 0;
11057    fp_subborrowx_u32(&mut x282, &mut x283, x281, x258, 0xf5138f);
11058    let mut x284: u32 = 0;
11059    let mut x285: FpU1 = 0;
11060    fp_subborrowx_u32(&mut x284, &mut x285, x283, x260, 0x1a22d9f3);
11061    let mut x286: u32 = 0;
11062    let mut x287: FpU1 = 0;
11063    fp_subborrowx_u32(&mut x286, &mut x287, x285, x262, 0x6ca1493b);
11064    let mut x288: u32 = 0;
11065    let mut x289: FpU1 = 0;
11066    fp_subborrowx_u32(&mut x288, &mut x289, x287, x264, 0xc63b05c0);
11067    let mut x290: u32 = 0;
11068    let mut x291: FpU1 = 0;
11069    fp_subborrowx_u32(&mut x290, &mut x291, x289, x266, 0x17c510ea);
11070    let mut x292: u32 = 0;
11071    let mut x293: FpU1 = 0;
11072    fp_subborrowx_u32(&mut x292, &mut x293, x291, x268, 0x1ae3a46);
11073    let mut x294: u32 = 0;
11074    let mut x295: FpU1 = 0;
11075    fp_subborrowx_u32(&mut x294, &mut x295, x293, (x269 as u32), (0x0 as u32));
11076    let mut x296: u32 = 0;
11077    let mut x297: FpU1 = 0;
11078    fp_addcarryx_u32(&mut x296, &mut x297, 0x0, x6, (0x1 as u32));
11079    let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
11080    let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
11081    let x300: u32 = ((x212 >> 1) | ((x214 << 31) & 0xffffffff));
11082    let x301: u32 = ((x214 >> 1) | ((x216 << 31) & 0xffffffff));
11083    let x302: u32 = ((x216 >> 1) | ((x218 << 31) & 0xffffffff));
11084    let x303: u32 = ((x218 >> 1) | ((x220 << 31) & 0xffffffff));
11085    let x304: u32 = ((x220 >> 1) | ((x222 << 31) & 0xffffffff));
11086    let x305: u32 = ((x222 >> 1) | ((x224 << 31) & 0xffffffff));
11087    let x306: u32 = ((x224 >> 1) | ((x226 << 31) & 0xffffffff));
11088    let x307: u32 = ((x226 >> 1) | ((x228 << 31) & 0xffffffff));
11089    let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
11090    let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
11091    let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
11092    let mut x311: u32 = 0;
11093    fp_cmovznz_u32(&mut x311, x120, x95, x71);
11094    let mut x312: u32 = 0;
11095    fp_cmovznz_u32(&mut x312, x120, x97, x73);
11096    let mut x313: u32 = 0;
11097    fp_cmovznz_u32(&mut x313, x120, x99, x75);
11098    let mut x314: u32 = 0;
11099    fp_cmovznz_u32(&mut x314, x120, x101, x77);
11100    let mut x315: u32 = 0;
11101    fp_cmovznz_u32(&mut x315, x120, x103, x79);
11102    let mut x316: u32 = 0;
11103    fp_cmovznz_u32(&mut x316, x120, x105, x81);
11104    let mut x317: u32 = 0;
11105    fp_cmovznz_u32(&mut x317, x120, x107, x83);
11106    let mut x318: u32 = 0;
11107    fp_cmovznz_u32(&mut x318, x120, x109, x85);
11108    let mut x319: u32 = 0;
11109    fp_cmovznz_u32(&mut x319, x120, x111, x87);
11110    let mut x320: u32 = 0;
11111    fp_cmovznz_u32(&mut x320, x120, x113, x89);
11112    let mut x321: u32 = 0;
11113    fp_cmovznz_u32(&mut x321, x120, x115, x91);
11114    let mut x322: u32 = 0;
11115    fp_cmovznz_u32(&mut x322, x120, x117, x93);
11116    let mut x323: u32 = 0;
11117    fp_cmovznz_u32(&mut x323, x295, x270, x246);
11118    let mut x324: u32 = 0;
11119    fp_cmovznz_u32(&mut x324, x295, x272, x248);
11120    let mut x325: u32 = 0;
11121    fp_cmovznz_u32(&mut x325, x295, x274, x250);
11122    let mut x326: u32 = 0;
11123    fp_cmovznz_u32(&mut x326, x295, x276, x252);
11124    let mut x327: u32 = 0;
11125    fp_cmovznz_u32(&mut x327, x295, x278, x254);
11126    let mut x328: u32 = 0;
11127    fp_cmovznz_u32(&mut x328, x295, x280, x256);
11128    let mut x329: u32 = 0;
11129    fp_cmovznz_u32(&mut x329, x295, x282, x258);
11130    let mut x330: u32 = 0;
11131    fp_cmovznz_u32(&mut x330, x295, x284, x260);
11132    let mut x331: u32 = 0;
11133    fp_cmovznz_u32(&mut x331, x295, x286, x262);
11134    let mut x332: u32 = 0;
11135    fp_cmovznz_u32(&mut x332, x295, x288, x264);
11136    let mut x333: u32 = 0;
11137    fp_cmovznz_u32(&mut x333, x295, x290, x266);
11138    let mut x334: u32 = 0;
11139    fp_cmovznz_u32(&mut x334, x295, x292, x268);
11140    *out1 = x296;
11141    out2[0] = x7;
11142    out2[1] = x8;
11143    out2[2] = x9;
11144    out2[3] = x10;
11145    out2[4] = x11;
11146    out2[5] = x12;
11147    out2[6] = x13;
11148    out2[7] = x14;
11149    out2[8] = x15;
11150    out2[9] = x16;
11151    out2[10] = x17;
11152    out2[11] = x18;
11153    out2[12] = x19;
11154    out3[0] = x298;
11155    out3[1] = x299;
11156    out3[2] = x300;
11157    out3[3] = x301;
11158    out3[4] = x302;
11159    out3[5] = x303;
11160    out3[6] = x304;
11161    out3[7] = x305;
11162    out3[8] = x306;
11163    out3[9] = x307;
11164    out3[10] = x308;
11165    out3[11] = x309;
11166    out3[12] = x310;
11167    out4[0] = x311;
11168    out4[1] = x312;
11169    out4[2] = x313;
11170    out4[3] = x314;
11171    out4[4] = x315;
11172    out4[5] = x316;
11173    out4[6] = x317;
11174    out4[7] = x318;
11175    out4[8] = x319;
11176    out4[9] = x320;
11177    out4[10] = x321;
11178    out4[11] = x322;
11179    out5[0] = x323;
11180    out5[1] = x324;
11181    out5[2] = x325;
11182    out5[3] = x326;
11183    out5[4] = x327;
11184    out5[5] = x328;
11185    out5[6] = x329;
11186    out5[7] = x330;
11187    out5[8] = x331;
11188    out5[9] = x332;
11189    out5[10] = x333;
11190    out5[11] = x334;
11191}