1#![doc = " fiat-crypto output postprocessed by fiat-constify: <https://github.com/rustcrypto/utils>"]
2#![doc = " Autogenerated: './word_by_word_montgomery' --lang Rust --inline p521_scalar 64 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"]
3#![doc = " curve description: p521_scalar"]
4#![doc = " machine_wordsize = 64 (from \"64\")"]
5#![doc = " requested operations: (all)"]
6#![doc = " m = 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409 (from \"0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409\")"]
7#![doc = ""]
8#![doc = " NOTE: In addition to the bounds specified above each function, all"]
9#![doc = "   functions synthesized for this Montgomery arithmetic require the"]
10#![doc = "   input to be strictly less than the prime modulus (m), and also"]
11#![doc = "   require the input to be in the unique saturated representation."]
12#![doc = "   All functions also ensure that these two properties are true of"]
13#![doc = "   return values."]
14#![doc = ""]
15#![doc = " Computed values:"]
16#![doc = "   eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) + (z[8] << 2^9)"]
17#![doc = "   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) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) + (z[64] << 2^9) + (z[65] << 0x208)"]
18#![doc = "   twos_complement_eval z = let x1 := z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) + (z[8] << 2^9) in"]
19#![doc = "                            if x1 & (2^576-1) < 2^575 then x1 & (2^576-1) else (x1 & (2^576-1)) - 2^576"]
20#![allow(unused_parens)]
21#![allow(non_camel_case_types)]
22#![allow(
23    clippy::identity_op,
24    clippy::unnecessary_cast,
25    dead_code,
26    rustdoc::broken_intra_doc_links,
27    unused_assignments,
28    unused_mut,
29    unused_variables
30)]
31pub type fiat_p521_scalar_u1 = u8;
32pub type fiat_p521_scalar_i1 = i8;
33pub type fiat_p521_scalar_u2 = u8;
34pub type fiat_p521_scalar_i2 = i8;
35pub type fiat_p521_scalar_montgomery_domain_field_element = [u64; 9];
36pub type fiat_p521_scalar_non_montgomery_domain_field_element = [u64; 9];
37#[doc = " The function fiat_p521_scalar_addcarryx_u64 is an addition with carry."]
38#[doc = ""]
39#[doc = " Postconditions:"]
40#[doc = "   out1 = (arg1 + arg2 + arg3) mod 2^64"]
41#[doc = "   out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋"]
42#[doc = ""]
43#[doc = " Input Bounds:"]
44#[doc = "   arg1: [0x0 ~> 0x1]"]
45#[doc = "   arg2: [0x0 ~> 0xffffffffffffffff]"]
46#[doc = "   arg3: [0x0 ~> 0xffffffffffffffff]"]
47#[doc = " Output Bounds:"]
48#[doc = "   out1: [0x0 ~> 0xffffffffffffffff]"]
49#[doc = "   out2: [0x0 ~> 0x1]"]
50#[inline]
51pub const fn fiat_p521_scalar_addcarryx_u64(
52    arg1: fiat_p521_scalar_u1,
53    arg2: u64,
54    arg3: u64,
55) -> (u64, fiat_p521_scalar_u1) {
56    let mut out1: u64 = 0;
57    let mut out2: fiat_p521_scalar_u1 = 0;
58    let x1: u128 = (((arg1 as u128) + (arg2 as u128)) + (arg3 as u128));
59    let x2: u64 = ((x1 & (0xffffffffffffffff as u128)) as u64);
60    let x3: fiat_p521_scalar_u1 = ((x1 >> 64) as fiat_p521_scalar_u1);
61    out1 = x2;
62    out2 = x3;
63    (out1, out2)
64}
65#[doc = " The function fiat_p521_scalar_subborrowx_u64 is a subtraction with borrow."]
66#[doc = ""]
67#[doc = " Postconditions:"]
68#[doc = "   out1 = (-arg1 + arg2 + -arg3) mod 2^64"]
69#[doc = "   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋"]
70#[doc = ""]
71#[doc = " Input Bounds:"]
72#[doc = "   arg1: [0x0 ~> 0x1]"]
73#[doc = "   arg2: [0x0 ~> 0xffffffffffffffff]"]
74#[doc = "   arg3: [0x0 ~> 0xffffffffffffffff]"]
75#[doc = " Output Bounds:"]
76#[doc = "   out1: [0x0 ~> 0xffffffffffffffff]"]
77#[doc = "   out2: [0x0 ~> 0x1]"]
78#[inline]
79pub const fn fiat_p521_scalar_subborrowx_u64(
80    arg1: fiat_p521_scalar_u1,
81    arg2: u64,
82    arg3: u64,
83) -> (u64, fiat_p521_scalar_u1) {
84    let mut out1: u64 = 0;
85    let mut out2: fiat_p521_scalar_u1 = 0;
86    let x1: i128 = (((arg2 as i128) - (arg1 as i128)) - (arg3 as i128));
87    let x2: fiat_p521_scalar_i1 = ((x1 >> 64) as fiat_p521_scalar_i1);
88    let x3: u64 = ((x1 & (0xffffffffffffffff as i128)) as u64);
89    out1 = x3;
90    out2 = (((0x0 as fiat_p521_scalar_i2) - (x2 as fiat_p521_scalar_i2)) as fiat_p521_scalar_u1);
91    (out1, out2)
92}
93#[doc = " The function fiat_p521_scalar_mulx_u64 is a multiplication, returning the full double-width result."]
94#[doc = ""]
95#[doc = " Postconditions:"]
96#[doc = "   out1 = (arg1 * arg2) mod 2^64"]
97#[doc = "   out2 = ⌊arg1 * arg2 / 2^64⌋"]
98#[doc = ""]
99#[doc = " Input Bounds:"]
100#[doc = "   arg1: [0x0 ~> 0xffffffffffffffff]"]
101#[doc = "   arg2: [0x0 ~> 0xffffffffffffffff]"]
102#[doc = " Output Bounds:"]
103#[doc = "   out1: [0x0 ~> 0xffffffffffffffff]"]
104#[doc = "   out2: [0x0 ~> 0xffffffffffffffff]"]
105#[inline]
106pub const fn fiat_p521_scalar_mulx_u64(arg1: u64, arg2: u64) -> (u64, u64) {
107    let mut out1: u64 = 0;
108    let mut out2: u64 = 0;
109    let x1: u128 = ((arg1 as u128) * (arg2 as u128));
110    let x2: u64 = ((x1 & (0xffffffffffffffff as u128)) as u64);
111    let x3: u64 = ((x1 >> 64) as u64);
112    out1 = x2;
113    out2 = x3;
114    (out1, out2)
115}
116#[doc = " The function fiat_p521_scalar_cmovznz_u64 is a single-word conditional move."]
117#[doc = ""]
118#[doc = " Postconditions:"]
119#[doc = "   out1 = (if arg1 = 0 then arg2 else arg3)"]
120#[doc = ""]
121#[doc = " Input Bounds:"]
122#[doc = "   arg1: [0x0 ~> 0x1]"]
123#[doc = "   arg2: [0x0 ~> 0xffffffffffffffff]"]
124#[doc = "   arg3: [0x0 ~> 0xffffffffffffffff]"]
125#[doc = " Output Bounds:"]
126#[doc = "   out1: [0x0 ~> 0xffffffffffffffff]"]
127#[inline]
128pub const fn fiat_p521_scalar_cmovznz_u64(arg1: fiat_p521_scalar_u1, arg2: u64, arg3: u64) -> u64 {
129    let mut out1: u64 = 0;
130    let x1: fiat_p521_scalar_u1 = (!(!arg1));
131    let x2: u64 = ((((((0x0 as fiat_p521_scalar_i2) - (x1 as fiat_p521_scalar_i2))
132        as fiat_p521_scalar_i1) as i128)
133        & (0xffffffffffffffff as i128)) as u64);
134    let x3: u64 = ((x2 & arg3) | ((!x2) & arg2));
135    out1 = x3;
136    out1
137}
138#[doc = " The function fiat_p521_scalar_mul multiplies two field elements in the Montgomery domain."]
139#[doc = ""]
140#[doc = " Preconditions:"]
141#[doc = "   0 ≤ eval arg1 < m"]
142#[doc = "   0 ≤ eval arg2 < m"]
143#[doc = " Postconditions:"]
144#[doc = "   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m"]
145#[doc = "   0 ≤ eval out1 < m"]
146#[doc = ""]
147#[inline]
148pub const fn fiat_p521_scalar_mul(
149    arg1: &fiat_p521_scalar_montgomery_domain_field_element,
150    arg2: &fiat_p521_scalar_montgomery_domain_field_element,
151) -> fiat_p521_scalar_montgomery_domain_field_element {
152    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
153    let x1: u64 = (arg1[1]);
154    let x2: u64 = (arg1[2]);
155    let x3: u64 = (arg1[3]);
156    let x4: u64 = (arg1[4]);
157    let x5: u64 = (arg1[5]);
158    let x6: u64 = (arg1[6]);
159    let x7: u64 = (arg1[7]);
160    let x8: u64 = (arg1[8]);
161    let x9: u64 = (arg1[0]);
162    let mut x10: u64 = 0;
163    let mut x11: u64 = 0;
164    let (x10, x11) = fiat_p521_scalar_mulx_u64(x9, (arg2[8]));
165    let mut x12: u64 = 0;
166    let mut x13: u64 = 0;
167    let (x12, x13) = fiat_p521_scalar_mulx_u64(x9, (arg2[7]));
168    let mut x14: u64 = 0;
169    let mut x15: u64 = 0;
170    let (x14, x15) = fiat_p521_scalar_mulx_u64(x9, (arg2[6]));
171    let mut x16: u64 = 0;
172    let mut x17: u64 = 0;
173    let (x16, x17) = fiat_p521_scalar_mulx_u64(x9, (arg2[5]));
174    let mut x18: u64 = 0;
175    let mut x19: u64 = 0;
176    let (x18, x19) = fiat_p521_scalar_mulx_u64(x9, (arg2[4]));
177    let mut x20: u64 = 0;
178    let mut x21: u64 = 0;
179    let (x20, x21) = fiat_p521_scalar_mulx_u64(x9, (arg2[3]));
180    let mut x22: u64 = 0;
181    let mut x23: u64 = 0;
182    let (x22, x23) = fiat_p521_scalar_mulx_u64(x9, (arg2[2]));
183    let mut x24: u64 = 0;
184    let mut x25: u64 = 0;
185    let (x24, x25) = fiat_p521_scalar_mulx_u64(x9, (arg2[1]));
186    let mut x26: u64 = 0;
187    let mut x27: u64 = 0;
188    let (x26, x27) = fiat_p521_scalar_mulx_u64(x9, (arg2[0]));
189    let mut x28: u64 = 0;
190    let mut x29: fiat_p521_scalar_u1 = 0;
191    let (x28, x29) = fiat_p521_scalar_addcarryx_u64(0x0, x27, x24);
192    let mut x30: u64 = 0;
193    let mut x31: fiat_p521_scalar_u1 = 0;
194    let (x30, x31) = fiat_p521_scalar_addcarryx_u64(x29, x25, x22);
195    let mut x32: u64 = 0;
196    let mut x33: fiat_p521_scalar_u1 = 0;
197    let (x32, x33) = fiat_p521_scalar_addcarryx_u64(x31, x23, x20);
198    let mut x34: u64 = 0;
199    let mut x35: fiat_p521_scalar_u1 = 0;
200    let (x34, x35) = fiat_p521_scalar_addcarryx_u64(x33, x21, x18);
201    let mut x36: u64 = 0;
202    let mut x37: fiat_p521_scalar_u1 = 0;
203    let (x36, x37) = fiat_p521_scalar_addcarryx_u64(x35, x19, x16);
204    let mut x38: u64 = 0;
205    let mut x39: fiat_p521_scalar_u1 = 0;
206    let (x38, x39) = fiat_p521_scalar_addcarryx_u64(x37, x17, x14);
207    let mut x40: u64 = 0;
208    let mut x41: fiat_p521_scalar_u1 = 0;
209    let (x40, x41) = fiat_p521_scalar_addcarryx_u64(x39, x15, x12);
210    let mut x42: u64 = 0;
211    let mut x43: fiat_p521_scalar_u1 = 0;
212    let (x42, x43) = fiat_p521_scalar_addcarryx_u64(x41, x13, x10);
213    let x44: u64 = ((x43 as u64) + x11);
214    let mut x45: u64 = 0;
215    let mut x46: u64 = 0;
216    let (x45, x46) = fiat_p521_scalar_mulx_u64(x26, 0x1d2f5ccd79a995c7);
217    let mut x47: u64 = 0;
218    let mut x48: u64 = 0;
219    let (x47, x48) = fiat_p521_scalar_mulx_u64(x45, 0x1ff);
220    let mut x49: u64 = 0;
221    let mut x50: u64 = 0;
222    let (x49, x50) = fiat_p521_scalar_mulx_u64(x45, 0xffffffffffffffff);
223    let mut x51: u64 = 0;
224    let mut x52: u64 = 0;
225    let (x51, x52) = fiat_p521_scalar_mulx_u64(x45, 0xffffffffffffffff);
226    let mut x53: u64 = 0;
227    let mut x54: u64 = 0;
228    let (x53, x54) = fiat_p521_scalar_mulx_u64(x45, 0xffffffffffffffff);
229    let mut x55: u64 = 0;
230    let mut x56: u64 = 0;
231    let (x55, x56) = fiat_p521_scalar_mulx_u64(x45, 0xfffffffffffffffa);
232    let mut x57: u64 = 0;
233    let mut x58: u64 = 0;
234    let (x57, x58) = fiat_p521_scalar_mulx_u64(x45, 0x51868783bf2f966b);
235    let mut x59: u64 = 0;
236    let mut x60: u64 = 0;
237    let (x59, x60) = fiat_p521_scalar_mulx_u64(x45, 0x7fcc0148f709a5d0);
238    let mut x61: u64 = 0;
239    let mut x62: u64 = 0;
240    let (x61, x62) = fiat_p521_scalar_mulx_u64(x45, 0x3bb5c9b8899c47ae);
241    let mut x63: u64 = 0;
242    let mut x64: u64 = 0;
243    let (x63, x64) = fiat_p521_scalar_mulx_u64(x45, 0xbb6fb71e91386409);
244    let mut x65: u64 = 0;
245    let mut x66: fiat_p521_scalar_u1 = 0;
246    let (x65, x66) = fiat_p521_scalar_addcarryx_u64(0x0, x64, x61);
247    let mut x67: u64 = 0;
248    let mut x68: fiat_p521_scalar_u1 = 0;
249    let (x67, x68) = fiat_p521_scalar_addcarryx_u64(x66, x62, x59);
250    let mut x69: u64 = 0;
251    let mut x70: fiat_p521_scalar_u1 = 0;
252    let (x69, x70) = fiat_p521_scalar_addcarryx_u64(x68, x60, x57);
253    let mut x71: u64 = 0;
254    let mut x72: fiat_p521_scalar_u1 = 0;
255    let (x71, x72) = fiat_p521_scalar_addcarryx_u64(x70, x58, x55);
256    let mut x73: u64 = 0;
257    let mut x74: fiat_p521_scalar_u1 = 0;
258    let (x73, x74) = fiat_p521_scalar_addcarryx_u64(x72, x56, x53);
259    let mut x75: u64 = 0;
260    let mut x76: fiat_p521_scalar_u1 = 0;
261    let (x75, x76) = fiat_p521_scalar_addcarryx_u64(x74, x54, x51);
262    let mut x77: u64 = 0;
263    let mut x78: fiat_p521_scalar_u1 = 0;
264    let (x77, x78) = fiat_p521_scalar_addcarryx_u64(x76, x52, x49);
265    let mut x79: u64 = 0;
266    let mut x80: fiat_p521_scalar_u1 = 0;
267    let (x79, x80) = fiat_p521_scalar_addcarryx_u64(x78, x50, x47);
268    let x81: u64 = ((x80 as u64) + x48);
269    let mut x82: u64 = 0;
270    let mut x83: fiat_p521_scalar_u1 = 0;
271    let (x82, x83) = fiat_p521_scalar_addcarryx_u64(0x0, x26, x63);
272    let mut x84: u64 = 0;
273    let mut x85: fiat_p521_scalar_u1 = 0;
274    let (x84, x85) = fiat_p521_scalar_addcarryx_u64(x83, x28, x65);
275    let mut x86: u64 = 0;
276    let mut x87: fiat_p521_scalar_u1 = 0;
277    let (x86, x87) = fiat_p521_scalar_addcarryx_u64(x85, x30, x67);
278    let mut x88: u64 = 0;
279    let mut x89: fiat_p521_scalar_u1 = 0;
280    let (x88, x89) = fiat_p521_scalar_addcarryx_u64(x87, x32, x69);
281    let mut x90: u64 = 0;
282    let mut x91: fiat_p521_scalar_u1 = 0;
283    let (x90, x91) = fiat_p521_scalar_addcarryx_u64(x89, x34, x71);
284    let mut x92: u64 = 0;
285    let mut x93: fiat_p521_scalar_u1 = 0;
286    let (x92, x93) = fiat_p521_scalar_addcarryx_u64(x91, x36, x73);
287    let mut x94: u64 = 0;
288    let mut x95: fiat_p521_scalar_u1 = 0;
289    let (x94, x95) = fiat_p521_scalar_addcarryx_u64(x93, x38, x75);
290    let mut x96: u64 = 0;
291    let mut x97: fiat_p521_scalar_u1 = 0;
292    let (x96, x97) = fiat_p521_scalar_addcarryx_u64(x95, x40, x77);
293    let mut x98: u64 = 0;
294    let mut x99: fiat_p521_scalar_u1 = 0;
295    let (x98, x99) = fiat_p521_scalar_addcarryx_u64(x97, x42, x79);
296    let mut x100: u64 = 0;
297    let mut x101: fiat_p521_scalar_u1 = 0;
298    let (x100, x101) = fiat_p521_scalar_addcarryx_u64(x99, x44, x81);
299    let mut x102: u64 = 0;
300    let mut x103: u64 = 0;
301    let (x102, x103) = fiat_p521_scalar_mulx_u64(x1, (arg2[8]));
302    let mut x104: u64 = 0;
303    let mut x105: u64 = 0;
304    let (x104, x105) = fiat_p521_scalar_mulx_u64(x1, (arg2[7]));
305    let mut x106: u64 = 0;
306    let mut x107: u64 = 0;
307    let (x106, x107) = fiat_p521_scalar_mulx_u64(x1, (arg2[6]));
308    let mut x108: u64 = 0;
309    let mut x109: u64 = 0;
310    let (x108, x109) = fiat_p521_scalar_mulx_u64(x1, (arg2[5]));
311    let mut x110: u64 = 0;
312    let mut x111: u64 = 0;
313    let (x110, x111) = fiat_p521_scalar_mulx_u64(x1, (arg2[4]));
314    let mut x112: u64 = 0;
315    let mut x113: u64 = 0;
316    let (x112, x113) = fiat_p521_scalar_mulx_u64(x1, (arg2[3]));
317    let mut x114: u64 = 0;
318    let mut x115: u64 = 0;
319    let (x114, x115) = fiat_p521_scalar_mulx_u64(x1, (arg2[2]));
320    let mut x116: u64 = 0;
321    let mut x117: u64 = 0;
322    let (x116, x117) = fiat_p521_scalar_mulx_u64(x1, (arg2[1]));
323    let mut x118: u64 = 0;
324    let mut x119: u64 = 0;
325    let (x118, x119) = fiat_p521_scalar_mulx_u64(x1, (arg2[0]));
326    let mut x120: u64 = 0;
327    let mut x121: fiat_p521_scalar_u1 = 0;
328    let (x120, x121) = fiat_p521_scalar_addcarryx_u64(0x0, x119, x116);
329    let mut x122: u64 = 0;
330    let mut x123: fiat_p521_scalar_u1 = 0;
331    let (x122, x123) = fiat_p521_scalar_addcarryx_u64(x121, x117, x114);
332    let mut x124: u64 = 0;
333    let mut x125: fiat_p521_scalar_u1 = 0;
334    let (x124, x125) = fiat_p521_scalar_addcarryx_u64(x123, x115, x112);
335    let mut x126: u64 = 0;
336    let mut x127: fiat_p521_scalar_u1 = 0;
337    let (x126, x127) = fiat_p521_scalar_addcarryx_u64(x125, x113, x110);
338    let mut x128: u64 = 0;
339    let mut x129: fiat_p521_scalar_u1 = 0;
340    let (x128, x129) = fiat_p521_scalar_addcarryx_u64(x127, x111, x108);
341    let mut x130: u64 = 0;
342    let mut x131: fiat_p521_scalar_u1 = 0;
343    let (x130, x131) = fiat_p521_scalar_addcarryx_u64(x129, x109, x106);
344    let mut x132: u64 = 0;
345    let mut x133: fiat_p521_scalar_u1 = 0;
346    let (x132, x133) = fiat_p521_scalar_addcarryx_u64(x131, x107, x104);
347    let mut x134: u64 = 0;
348    let mut x135: fiat_p521_scalar_u1 = 0;
349    let (x134, x135) = fiat_p521_scalar_addcarryx_u64(x133, x105, x102);
350    let x136: u64 = ((x135 as u64) + x103);
351    let mut x137: u64 = 0;
352    let mut x138: fiat_p521_scalar_u1 = 0;
353    let (x137, x138) = fiat_p521_scalar_addcarryx_u64(0x0, x84, x118);
354    let mut x139: u64 = 0;
355    let mut x140: fiat_p521_scalar_u1 = 0;
356    let (x139, x140) = fiat_p521_scalar_addcarryx_u64(x138, x86, x120);
357    let mut x141: u64 = 0;
358    let mut x142: fiat_p521_scalar_u1 = 0;
359    let (x141, x142) = fiat_p521_scalar_addcarryx_u64(x140, x88, x122);
360    let mut x143: u64 = 0;
361    let mut x144: fiat_p521_scalar_u1 = 0;
362    let (x143, x144) = fiat_p521_scalar_addcarryx_u64(x142, x90, x124);
363    let mut x145: u64 = 0;
364    let mut x146: fiat_p521_scalar_u1 = 0;
365    let (x145, x146) = fiat_p521_scalar_addcarryx_u64(x144, x92, x126);
366    let mut x147: u64 = 0;
367    let mut x148: fiat_p521_scalar_u1 = 0;
368    let (x147, x148) = fiat_p521_scalar_addcarryx_u64(x146, x94, x128);
369    let mut x149: u64 = 0;
370    let mut x150: fiat_p521_scalar_u1 = 0;
371    let (x149, x150) = fiat_p521_scalar_addcarryx_u64(x148, x96, x130);
372    let mut x151: u64 = 0;
373    let mut x152: fiat_p521_scalar_u1 = 0;
374    let (x151, x152) = fiat_p521_scalar_addcarryx_u64(x150, x98, x132);
375    let mut x153: u64 = 0;
376    let mut x154: fiat_p521_scalar_u1 = 0;
377    let (x153, x154) = fiat_p521_scalar_addcarryx_u64(x152, x100, x134);
378    let mut x155: u64 = 0;
379    let mut x156: fiat_p521_scalar_u1 = 0;
380    let (x155, x156) = fiat_p521_scalar_addcarryx_u64(x154, (x101 as u64), x136);
381    let mut x157: u64 = 0;
382    let mut x158: u64 = 0;
383    let (x157, x158) = fiat_p521_scalar_mulx_u64(x137, 0x1d2f5ccd79a995c7);
384    let mut x159: u64 = 0;
385    let mut x160: u64 = 0;
386    let (x159, x160) = fiat_p521_scalar_mulx_u64(x157, 0x1ff);
387    let mut x161: u64 = 0;
388    let mut x162: u64 = 0;
389    let (x161, x162) = fiat_p521_scalar_mulx_u64(x157, 0xffffffffffffffff);
390    let mut x163: u64 = 0;
391    let mut x164: u64 = 0;
392    let (x163, x164) = fiat_p521_scalar_mulx_u64(x157, 0xffffffffffffffff);
393    let mut x165: u64 = 0;
394    let mut x166: u64 = 0;
395    let (x165, x166) = fiat_p521_scalar_mulx_u64(x157, 0xffffffffffffffff);
396    let mut x167: u64 = 0;
397    let mut x168: u64 = 0;
398    let (x167, x168) = fiat_p521_scalar_mulx_u64(x157, 0xfffffffffffffffa);
399    let mut x169: u64 = 0;
400    let mut x170: u64 = 0;
401    let (x169, x170) = fiat_p521_scalar_mulx_u64(x157, 0x51868783bf2f966b);
402    let mut x171: u64 = 0;
403    let mut x172: u64 = 0;
404    let (x171, x172) = fiat_p521_scalar_mulx_u64(x157, 0x7fcc0148f709a5d0);
405    let mut x173: u64 = 0;
406    let mut x174: u64 = 0;
407    let (x173, x174) = fiat_p521_scalar_mulx_u64(x157, 0x3bb5c9b8899c47ae);
408    let mut x175: u64 = 0;
409    let mut x176: u64 = 0;
410    let (x175, x176) = fiat_p521_scalar_mulx_u64(x157, 0xbb6fb71e91386409);
411    let mut x177: u64 = 0;
412    let mut x178: fiat_p521_scalar_u1 = 0;
413    let (x177, x178) = fiat_p521_scalar_addcarryx_u64(0x0, x176, x173);
414    let mut x179: u64 = 0;
415    let mut x180: fiat_p521_scalar_u1 = 0;
416    let (x179, x180) = fiat_p521_scalar_addcarryx_u64(x178, x174, x171);
417    let mut x181: u64 = 0;
418    let mut x182: fiat_p521_scalar_u1 = 0;
419    let (x181, x182) = fiat_p521_scalar_addcarryx_u64(x180, x172, x169);
420    let mut x183: u64 = 0;
421    let mut x184: fiat_p521_scalar_u1 = 0;
422    let (x183, x184) = fiat_p521_scalar_addcarryx_u64(x182, x170, x167);
423    let mut x185: u64 = 0;
424    let mut x186: fiat_p521_scalar_u1 = 0;
425    let (x185, x186) = fiat_p521_scalar_addcarryx_u64(x184, x168, x165);
426    let mut x187: u64 = 0;
427    let mut x188: fiat_p521_scalar_u1 = 0;
428    let (x187, x188) = fiat_p521_scalar_addcarryx_u64(x186, x166, x163);
429    let mut x189: u64 = 0;
430    let mut x190: fiat_p521_scalar_u1 = 0;
431    let (x189, x190) = fiat_p521_scalar_addcarryx_u64(x188, x164, x161);
432    let mut x191: u64 = 0;
433    let mut x192: fiat_p521_scalar_u1 = 0;
434    let (x191, x192) = fiat_p521_scalar_addcarryx_u64(x190, x162, x159);
435    let x193: u64 = ((x192 as u64) + x160);
436    let mut x194: u64 = 0;
437    let mut x195: fiat_p521_scalar_u1 = 0;
438    let (x194, x195) = fiat_p521_scalar_addcarryx_u64(0x0, x137, x175);
439    let mut x196: u64 = 0;
440    let mut x197: fiat_p521_scalar_u1 = 0;
441    let (x196, x197) = fiat_p521_scalar_addcarryx_u64(x195, x139, x177);
442    let mut x198: u64 = 0;
443    let mut x199: fiat_p521_scalar_u1 = 0;
444    let (x198, x199) = fiat_p521_scalar_addcarryx_u64(x197, x141, x179);
445    let mut x200: u64 = 0;
446    let mut x201: fiat_p521_scalar_u1 = 0;
447    let (x200, x201) = fiat_p521_scalar_addcarryx_u64(x199, x143, x181);
448    let mut x202: u64 = 0;
449    let mut x203: fiat_p521_scalar_u1 = 0;
450    let (x202, x203) = fiat_p521_scalar_addcarryx_u64(x201, x145, x183);
451    let mut x204: u64 = 0;
452    let mut x205: fiat_p521_scalar_u1 = 0;
453    let (x204, x205) = fiat_p521_scalar_addcarryx_u64(x203, x147, x185);
454    let mut x206: u64 = 0;
455    let mut x207: fiat_p521_scalar_u1 = 0;
456    let (x206, x207) = fiat_p521_scalar_addcarryx_u64(x205, x149, x187);
457    let mut x208: u64 = 0;
458    let mut x209: fiat_p521_scalar_u1 = 0;
459    let (x208, x209) = fiat_p521_scalar_addcarryx_u64(x207, x151, x189);
460    let mut x210: u64 = 0;
461    let mut x211: fiat_p521_scalar_u1 = 0;
462    let (x210, x211) = fiat_p521_scalar_addcarryx_u64(x209, x153, x191);
463    let mut x212: u64 = 0;
464    let mut x213: fiat_p521_scalar_u1 = 0;
465    let (x212, x213) = fiat_p521_scalar_addcarryx_u64(x211, x155, x193);
466    let x214: u64 = ((x213 as u64) + (x156 as u64));
467    let mut x215: u64 = 0;
468    let mut x216: u64 = 0;
469    let (x215, x216) = fiat_p521_scalar_mulx_u64(x2, (arg2[8]));
470    let mut x217: u64 = 0;
471    let mut x218: u64 = 0;
472    let (x217, x218) = fiat_p521_scalar_mulx_u64(x2, (arg2[7]));
473    let mut x219: u64 = 0;
474    let mut x220: u64 = 0;
475    let (x219, x220) = fiat_p521_scalar_mulx_u64(x2, (arg2[6]));
476    let mut x221: u64 = 0;
477    let mut x222: u64 = 0;
478    let (x221, x222) = fiat_p521_scalar_mulx_u64(x2, (arg2[5]));
479    let mut x223: u64 = 0;
480    let mut x224: u64 = 0;
481    let (x223, x224) = fiat_p521_scalar_mulx_u64(x2, (arg2[4]));
482    let mut x225: u64 = 0;
483    let mut x226: u64 = 0;
484    let (x225, x226) = fiat_p521_scalar_mulx_u64(x2, (arg2[3]));
485    let mut x227: u64 = 0;
486    let mut x228: u64 = 0;
487    let (x227, x228) = fiat_p521_scalar_mulx_u64(x2, (arg2[2]));
488    let mut x229: u64 = 0;
489    let mut x230: u64 = 0;
490    let (x229, x230) = fiat_p521_scalar_mulx_u64(x2, (arg2[1]));
491    let mut x231: u64 = 0;
492    let mut x232: u64 = 0;
493    let (x231, x232) = fiat_p521_scalar_mulx_u64(x2, (arg2[0]));
494    let mut x233: u64 = 0;
495    let mut x234: fiat_p521_scalar_u1 = 0;
496    let (x233, x234) = fiat_p521_scalar_addcarryx_u64(0x0, x232, x229);
497    let mut x235: u64 = 0;
498    let mut x236: fiat_p521_scalar_u1 = 0;
499    let (x235, x236) = fiat_p521_scalar_addcarryx_u64(x234, x230, x227);
500    let mut x237: u64 = 0;
501    let mut x238: fiat_p521_scalar_u1 = 0;
502    let (x237, x238) = fiat_p521_scalar_addcarryx_u64(x236, x228, x225);
503    let mut x239: u64 = 0;
504    let mut x240: fiat_p521_scalar_u1 = 0;
505    let (x239, x240) = fiat_p521_scalar_addcarryx_u64(x238, x226, x223);
506    let mut x241: u64 = 0;
507    let mut x242: fiat_p521_scalar_u1 = 0;
508    let (x241, x242) = fiat_p521_scalar_addcarryx_u64(x240, x224, x221);
509    let mut x243: u64 = 0;
510    let mut x244: fiat_p521_scalar_u1 = 0;
511    let (x243, x244) = fiat_p521_scalar_addcarryx_u64(x242, x222, x219);
512    let mut x245: u64 = 0;
513    let mut x246: fiat_p521_scalar_u1 = 0;
514    let (x245, x246) = fiat_p521_scalar_addcarryx_u64(x244, x220, x217);
515    let mut x247: u64 = 0;
516    let mut x248: fiat_p521_scalar_u1 = 0;
517    let (x247, x248) = fiat_p521_scalar_addcarryx_u64(x246, x218, x215);
518    let x249: u64 = ((x248 as u64) + x216);
519    let mut x250: u64 = 0;
520    let mut x251: fiat_p521_scalar_u1 = 0;
521    let (x250, x251) = fiat_p521_scalar_addcarryx_u64(0x0, x196, x231);
522    let mut x252: u64 = 0;
523    let mut x253: fiat_p521_scalar_u1 = 0;
524    let (x252, x253) = fiat_p521_scalar_addcarryx_u64(x251, x198, x233);
525    let mut x254: u64 = 0;
526    let mut x255: fiat_p521_scalar_u1 = 0;
527    let (x254, x255) = fiat_p521_scalar_addcarryx_u64(x253, x200, x235);
528    let mut x256: u64 = 0;
529    let mut x257: fiat_p521_scalar_u1 = 0;
530    let (x256, x257) = fiat_p521_scalar_addcarryx_u64(x255, x202, x237);
531    let mut x258: u64 = 0;
532    let mut x259: fiat_p521_scalar_u1 = 0;
533    let (x258, x259) = fiat_p521_scalar_addcarryx_u64(x257, x204, x239);
534    let mut x260: u64 = 0;
535    let mut x261: fiat_p521_scalar_u1 = 0;
536    let (x260, x261) = fiat_p521_scalar_addcarryx_u64(x259, x206, x241);
537    let mut x262: u64 = 0;
538    let mut x263: fiat_p521_scalar_u1 = 0;
539    let (x262, x263) = fiat_p521_scalar_addcarryx_u64(x261, x208, x243);
540    let mut x264: u64 = 0;
541    let mut x265: fiat_p521_scalar_u1 = 0;
542    let (x264, x265) = fiat_p521_scalar_addcarryx_u64(x263, x210, x245);
543    let mut x266: u64 = 0;
544    let mut x267: fiat_p521_scalar_u1 = 0;
545    let (x266, x267) = fiat_p521_scalar_addcarryx_u64(x265, x212, x247);
546    let mut x268: u64 = 0;
547    let mut x269: fiat_p521_scalar_u1 = 0;
548    let (x268, x269) = fiat_p521_scalar_addcarryx_u64(x267, x214, x249);
549    let mut x270: u64 = 0;
550    let mut x271: u64 = 0;
551    let (x270, x271) = fiat_p521_scalar_mulx_u64(x250, 0x1d2f5ccd79a995c7);
552    let mut x272: u64 = 0;
553    let mut x273: u64 = 0;
554    let (x272, x273) = fiat_p521_scalar_mulx_u64(x270, 0x1ff);
555    let mut x274: u64 = 0;
556    let mut x275: u64 = 0;
557    let (x274, x275) = fiat_p521_scalar_mulx_u64(x270, 0xffffffffffffffff);
558    let mut x276: u64 = 0;
559    let mut x277: u64 = 0;
560    let (x276, x277) = fiat_p521_scalar_mulx_u64(x270, 0xffffffffffffffff);
561    let mut x278: u64 = 0;
562    let mut x279: u64 = 0;
563    let (x278, x279) = fiat_p521_scalar_mulx_u64(x270, 0xffffffffffffffff);
564    let mut x280: u64 = 0;
565    let mut x281: u64 = 0;
566    let (x280, x281) = fiat_p521_scalar_mulx_u64(x270, 0xfffffffffffffffa);
567    let mut x282: u64 = 0;
568    let mut x283: u64 = 0;
569    let (x282, x283) = fiat_p521_scalar_mulx_u64(x270, 0x51868783bf2f966b);
570    let mut x284: u64 = 0;
571    let mut x285: u64 = 0;
572    let (x284, x285) = fiat_p521_scalar_mulx_u64(x270, 0x7fcc0148f709a5d0);
573    let mut x286: u64 = 0;
574    let mut x287: u64 = 0;
575    let (x286, x287) = fiat_p521_scalar_mulx_u64(x270, 0x3bb5c9b8899c47ae);
576    let mut x288: u64 = 0;
577    let mut x289: u64 = 0;
578    let (x288, x289) = fiat_p521_scalar_mulx_u64(x270, 0xbb6fb71e91386409);
579    let mut x290: u64 = 0;
580    let mut x291: fiat_p521_scalar_u1 = 0;
581    let (x290, x291) = fiat_p521_scalar_addcarryx_u64(0x0, x289, x286);
582    let mut x292: u64 = 0;
583    let mut x293: fiat_p521_scalar_u1 = 0;
584    let (x292, x293) = fiat_p521_scalar_addcarryx_u64(x291, x287, x284);
585    let mut x294: u64 = 0;
586    let mut x295: fiat_p521_scalar_u1 = 0;
587    let (x294, x295) = fiat_p521_scalar_addcarryx_u64(x293, x285, x282);
588    let mut x296: u64 = 0;
589    let mut x297: fiat_p521_scalar_u1 = 0;
590    let (x296, x297) = fiat_p521_scalar_addcarryx_u64(x295, x283, x280);
591    let mut x298: u64 = 0;
592    let mut x299: fiat_p521_scalar_u1 = 0;
593    let (x298, x299) = fiat_p521_scalar_addcarryx_u64(x297, x281, x278);
594    let mut x300: u64 = 0;
595    let mut x301: fiat_p521_scalar_u1 = 0;
596    let (x300, x301) = fiat_p521_scalar_addcarryx_u64(x299, x279, x276);
597    let mut x302: u64 = 0;
598    let mut x303: fiat_p521_scalar_u1 = 0;
599    let (x302, x303) = fiat_p521_scalar_addcarryx_u64(x301, x277, x274);
600    let mut x304: u64 = 0;
601    let mut x305: fiat_p521_scalar_u1 = 0;
602    let (x304, x305) = fiat_p521_scalar_addcarryx_u64(x303, x275, x272);
603    let x306: u64 = ((x305 as u64) + x273);
604    let mut x307: u64 = 0;
605    let mut x308: fiat_p521_scalar_u1 = 0;
606    let (x307, x308) = fiat_p521_scalar_addcarryx_u64(0x0, x250, x288);
607    let mut x309: u64 = 0;
608    let mut x310: fiat_p521_scalar_u1 = 0;
609    let (x309, x310) = fiat_p521_scalar_addcarryx_u64(x308, x252, x290);
610    let mut x311: u64 = 0;
611    let mut x312: fiat_p521_scalar_u1 = 0;
612    let (x311, x312) = fiat_p521_scalar_addcarryx_u64(x310, x254, x292);
613    let mut x313: u64 = 0;
614    let mut x314: fiat_p521_scalar_u1 = 0;
615    let (x313, x314) = fiat_p521_scalar_addcarryx_u64(x312, x256, x294);
616    let mut x315: u64 = 0;
617    let mut x316: fiat_p521_scalar_u1 = 0;
618    let (x315, x316) = fiat_p521_scalar_addcarryx_u64(x314, x258, x296);
619    let mut x317: u64 = 0;
620    let mut x318: fiat_p521_scalar_u1 = 0;
621    let (x317, x318) = fiat_p521_scalar_addcarryx_u64(x316, x260, x298);
622    let mut x319: u64 = 0;
623    let mut x320: fiat_p521_scalar_u1 = 0;
624    let (x319, x320) = fiat_p521_scalar_addcarryx_u64(x318, x262, x300);
625    let mut x321: u64 = 0;
626    let mut x322: fiat_p521_scalar_u1 = 0;
627    let (x321, x322) = fiat_p521_scalar_addcarryx_u64(x320, x264, x302);
628    let mut x323: u64 = 0;
629    let mut x324: fiat_p521_scalar_u1 = 0;
630    let (x323, x324) = fiat_p521_scalar_addcarryx_u64(x322, x266, x304);
631    let mut x325: u64 = 0;
632    let mut x326: fiat_p521_scalar_u1 = 0;
633    let (x325, x326) = fiat_p521_scalar_addcarryx_u64(x324, x268, x306);
634    let x327: u64 = ((x326 as u64) + (x269 as u64));
635    let mut x328: u64 = 0;
636    let mut x329: u64 = 0;
637    let (x328, x329) = fiat_p521_scalar_mulx_u64(x3, (arg2[8]));
638    let mut x330: u64 = 0;
639    let mut x331: u64 = 0;
640    let (x330, x331) = fiat_p521_scalar_mulx_u64(x3, (arg2[7]));
641    let mut x332: u64 = 0;
642    let mut x333: u64 = 0;
643    let (x332, x333) = fiat_p521_scalar_mulx_u64(x3, (arg2[6]));
644    let mut x334: u64 = 0;
645    let mut x335: u64 = 0;
646    let (x334, x335) = fiat_p521_scalar_mulx_u64(x3, (arg2[5]));
647    let mut x336: u64 = 0;
648    let mut x337: u64 = 0;
649    let (x336, x337) = fiat_p521_scalar_mulx_u64(x3, (arg2[4]));
650    let mut x338: u64 = 0;
651    let mut x339: u64 = 0;
652    let (x338, x339) = fiat_p521_scalar_mulx_u64(x3, (arg2[3]));
653    let mut x340: u64 = 0;
654    let mut x341: u64 = 0;
655    let (x340, x341) = fiat_p521_scalar_mulx_u64(x3, (arg2[2]));
656    let mut x342: u64 = 0;
657    let mut x343: u64 = 0;
658    let (x342, x343) = fiat_p521_scalar_mulx_u64(x3, (arg2[1]));
659    let mut x344: u64 = 0;
660    let mut x345: u64 = 0;
661    let (x344, x345) = fiat_p521_scalar_mulx_u64(x3, (arg2[0]));
662    let mut x346: u64 = 0;
663    let mut x347: fiat_p521_scalar_u1 = 0;
664    let (x346, x347) = fiat_p521_scalar_addcarryx_u64(0x0, x345, x342);
665    let mut x348: u64 = 0;
666    let mut x349: fiat_p521_scalar_u1 = 0;
667    let (x348, x349) = fiat_p521_scalar_addcarryx_u64(x347, x343, x340);
668    let mut x350: u64 = 0;
669    let mut x351: fiat_p521_scalar_u1 = 0;
670    let (x350, x351) = fiat_p521_scalar_addcarryx_u64(x349, x341, x338);
671    let mut x352: u64 = 0;
672    let mut x353: fiat_p521_scalar_u1 = 0;
673    let (x352, x353) = fiat_p521_scalar_addcarryx_u64(x351, x339, x336);
674    let mut x354: u64 = 0;
675    let mut x355: fiat_p521_scalar_u1 = 0;
676    let (x354, x355) = fiat_p521_scalar_addcarryx_u64(x353, x337, x334);
677    let mut x356: u64 = 0;
678    let mut x357: fiat_p521_scalar_u1 = 0;
679    let (x356, x357) = fiat_p521_scalar_addcarryx_u64(x355, x335, x332);
680    let mut x358: u64 = 0;
681    let mut x359: fiat_p521_scalar_u1 = 0;
682    let (x358, x359) = fiat_p521_scalar_addcarryx_u64(x357, x333, x330);
683    let mut x360: u64 = 0;
684    let mut x361: fiat_p521_scalar_u1 = 0;
685    let (x360, x361) = fiat_p521_scalar_addcarryx_u64(x359, x331, x328);
686    let x362: u64 = ((x361 as u64) + x329);
687    let mut x363: u64 = 0;
688    let mut x364: fiat_p521_scalar_u1 = 0;
689    let (x363, x364) = fiat_p521_scalar_addcarryx_u64(0x0, x309, x344);
690    let mut x365: u64 = 0;
691    let mut x366: fiat_p521_scalar_u1 = 0;
692    let (x365, x366) = fiat_p521_scalar_addcarryx_u64(x364, x311, x346);
693    let mut x367: u64 = 0;
694    let mut x368: fiat_p521_scalar_u1 = 0;
695    let (x367, x368) = fiat_p521_scalar_addcarryx_u64(x366, x313, x348);
696    let mut x369: u64 = 0;
697    let mut x370: fiat_p521_scalar_u1 = 0;
698    let (x369, x370) = fiat_p521_scalar_addcarryx_u64(x368, x315, x350);
699    let mut x371: u64 = 0;
700    let mut x372: fiat_p521_scalar_u1 = 0;
701    let (x371, x372) = fiat_p521_scalar_addcarryx_u64(x370, x317, x352);
702    let mut x373: u64 = 0;
703    let mut x374: fiat_p521_scalar_u1 = 0;
704    let (x373, x374) = fiat_p521_scalar_addcarryx_u64(x372, x319, x354);
705    let mut x375: u64 = 0;
706    let mut x376: fiat_p521_scalar_u1 = 0;
707    let (x375, x376) = fiat_p521_scalar_addcarryx_u64(x374, x321, x356);
708    let mut x377: u64 = 0;
709    let mut x378: fiat_p521_scalar_u1 = 0;
710    let (x377, x378) = fiat_p521_scalar_addcarryx_u64(x376, x323, x358);
711    let mut x379: u64 = 0;
712    let mut x380: fiat_p521_scalar_u1 = 0;
713    let (x379, x380) = fiat_p521_scalar_addcarryx_u64(x378, x325, x360);
714    let mut x381: u64 = 0;
715    let mut x382: fiat_p521_scalar_u1 = 0;
716    let (x381, x382) = fiat_p521_scalar_addcarryx_u64(x380, x327, x362);
717    let mut x383: u64 = 0;
718    let mut x384: u64 = 0;
719    let (x383, x384) = fiat_p521_scalar_mulx_u64(x363, 0x1d2f5ccd79a995c7);
720    let mut x385: u64 = 0;
721    let mut x386: u64 = 0;
722    let (x385, x386) = fiat_p521_scalar_mulx_u64(x383, 0x1ff);
723    let mut x387: u64 = 0;
724    let mut x388: u64 = 0;
725    let (x387, x388) = fiat_p521_scalar_mulx_u64(x383, 0xffffffffffffffff);
726    let mut x389: u64 = 0;
727    let mut x390: u64 = 0;
728    let (x389, x390) = fiat_p521_scalar_mulx_u64(x383, 0xffffffffffffffff);
729    let mut x391: u64 = 0;
730    let mut x392: u64 = 0;
731    let (x391, x392) = fiat_p521_scalar_mulx_u64(x383, 0xffffffffffffffff);
732    let mut x393: u64 = 0;
733    let mut x394: u64 = 0;
734    let (x393, x394) = fiat_p521_scalar_mulx_u64(x383, 0xfffffffffffffffa);
735    let mut x395: u64 = 0;
736    let mut x396: u64 = 0;
737    let (x395, x396) = fiat_p521_scalar_mulx_u64(x383, 0x51868783bf2f966b);
738    let mut x397: u64 = 0;
739    let mut x398: u64 = 0;
740    let (x397, x398) = fiat_p521_scalar_mulx_u64(x383, 0x7fcc0148f709a5d0);
741    let mut x399: u64 = 0;
742    let mut x400: u64 = 0;
743    let (x399, x400) = fiat_p521_scalar_mulx_u64(x383, 0x3bb5c9b8899c47ae);
744    let mut x401: u64 = 0;
745    let mut x402: u64 = 0;
746    let (x401, x402) = fiat_p521_scalar_mulx_u64(x383, 0xbb6fb71e91386409);
747    let mut x403: u64 = 0;
748    let mut x404: fiat_p521_scalar_u1 = 0;
749    let (x403, x404) = fiat_p521_scalar_addcarryx_u64(0x0, x402, x399);
750    let mut x405: u64 = 0;
751    let mut x406: fiat_p521_scalar_u1 = 0;
752    let (x405, x406) = fiat_p521_scalar_addcarryx_u64(x404, x400, x397);
753    let mut x407: u64 = 0;
754    let mut x408: fiat_p521_scalar_u1 = 0;
755    let (x407, x408) = fiat_p521_scalar_addcarryx_u64(x406, x398, x395);
756    let mut x409: u64 = 0;
757    let mut x410: fiat_p521_scalar_u1 = 0;
758    let (x409, x410) = fiat_p521_scalar_addcarryx_u64(x408, x396, x393);
759    let mut x411: u64 = 0;
760    let mut x412: fiat_p521_scalar_u1 = 0;
761    let (x411, x412) = fiat_p521_scalar_addcarryx_u64(x410, x394, x391);
762    let mut x413: u64 = 0;
763    let mut x414: fiat_p521_scalar_u1 = 0;
764    let (x413, x414) = fiat_p521_scalar_addcarryx_u64(x412, x392, x389);
765    let mut x415: u64 = 0;
766    let mut x416: fiat_p521_scalar_u1 = 0;
767    let (x415, x416) = fiat_p521_scalar_addcarryx_u64(x414, x390, x387);
768    let mut x417: u64 = 0;
769    let mut x418: fiat_p521_scalar_u1 = 0;
770    let (x417, x418) = fiat_p521_scalar_addcarryx_u64(x416, x388, x385);
771    let x419: u64 = ((x418 as u64) + x386);
772    let mut x420: u64 = 0;
773    let mut x421: fiat_p521_scalar_u1 = 0;
774    let (x420, x421) = fiat_p521_scalar_addcarryx_u64(0x0, x363, x401);
775    let mut x422: u64 = 0;
776    let mut x423: fiat_p521_scalar_u1 = 0;
777    let (x422, x423) = fiat_p521_scalar_addcarryx_u64(x421, x365, x403);
778    let mut x424: u64 = 0;
779    let mut x425: fiat_p521_scalar_u1 = 0;
780    let (x424, x425) = fiat_p521_scalar_addcarryx_u64(x423, x367, x405);
781    let mut x426: u64 = 0;
782    let mut x427: fiat_p521_scalar_u1 = 0;
783    let (x426, x427) = fiat_p521_scalar_addcarryx_u64(x425, x369, x407);
784    let mut x428: u64 = 0;
785    let mut x429: fiat_p521_scalar_u1 = 0;
786    let (x428, x429) = fiat_p521_scalar_addcarryx_u64(x427, x371, x409);
787    let mut x430: u64 = 0;
788    let mut x431: fiat_p521_scalar_u1 = 0;
789    let (x430, x431) = fiat_p521_scalar_addcarryx_u64(x429, x373, x411);
790    let mut x432: u64 = 0;
791    let mut x433: fiat_p521_scalar_u1 = 0;
792    let (x432, x433) = fiat_p521_scalar_addcarryx_u64(x431, x375, x413);
793    let mut x434: u64 = 0;
794    let mut x435: fiat_p521_scalar_u1 = 0;
795    let (x434, x435) = fiat_p521_scalar_addcarryx_u64(x433, x377, x415);
796    let mut x436: u64 = 0;
797    let mut x437: fiat_p521_scalar_u1 = 0;
798    let (x436, x437) = fiat_p521_scalar_addcarryx_u64(x435, x379, x417);
799    let mut x438: u64 = 0;
800    let mut x439: fiat_p521_scalar_u1 = 0;
801    let (x438, x439) = fiat_p521_scalar_addcarryx_u64(x437, x381, x419);
802    let x440: u64 = ((x439 as u64) + (x382 as u64));
803    let mut x441: u64 = 0;
804    let mut x442: u64 = 0;
805    let (x441, x442) = fiat_p521_scalar_mulx_u64(x4, (arg2[8]));
806    let mut x443: u64 = 0;
807    let mut x444: u64 = 0;
808    let (x443, x444) = fiat_p521_scalar_mulx_u64(x4, (arg2[7]));
809    let mut x445: u64 = 0;
810    let mut x446: u64 = 0;
811    let (x445, x446) = fiat_p521_scalar_mulx_u64(x4, (arg2[6]));
812    let mut x447: u64 = 0;
813    let mut x448: u64 = 0;
814    let (x447, x448) = fiat_p521_scalar_mulx_u64(x4, (arg2[5]));
815    let mut x449: u64 = 0;
816    let mut x450: u64 = 0;
817    let (x449, x450) = fiat_p521_scalar_mulx_u64(x4, (arg2[4]));
818    let mut x451: u64 = 0;
819    let mut x452: u64 = 0;
820    let (x451, x452) = fiat_p521_scalar_mulx_u64(x4, (arg2[3]));
821    let mut x453: u64 = 0;
822    let mut x454: u64 = 0;
823    let (x453, x454) = fiat_p521_scalar_mulx_u64(x4, (arg2[2]));
824    let mut x455: u64 = 0;
825    let mut x456: u64 = 0;
826    let (x455, x456) = fiat_p521_scalar_mulx_u64(x4, (arg2[1]));
827    let mut x457: u64 = 0;
828    let mut x458: u64 = 0;
829    let (x457, x458) = fiat_p521_scalar_mulx_u64(x4, (arg2[0]));
830    let mut x459: u64 = 0;
831    let mut x460: fiat_p521_scalar_u1 = 0;
832    let (x459, x460) = fiat_p521_scalar_addcarryx_u64(0x0, x458, x455);
833    let mut x461: u64 = 0;
834    let mut x462: fiat_p521_scalar_u1 = 0;
835    let (x461, x462) = fiat_p521_scalar_addcarryx_u64(x460, x456, x453);
836    let mut x463: u64 = 0;
837    let mut x464: fiat_p521_scalar_u1 = 0;
838    let (x463, x464) = fiat_p521_scalar_addcarryx_u64(x462, x454, x451);
839    let mut x465: u64 = 0;
840    let mut x466: fiat_p521_scalar_u1 = 0;
841    let (x465, x466) = fiat_p521_scalar_addcarryx_u64(x464, x452, x449);
842    let mut x467: u64 = 0;
843    let mut x468: fiat_p521_scalar_u1 = 0;
844    let (x467, x468) = fiat_p521_scalar_addcarryx_u64(x466, x450, x447);
845    let mut x469: u64 = 0;
846    let mut x470: fiat_p521_scalar_u1 = 0;
847    let (x469, x470) = fiat_p521_scalar_addcarryx_u64(x468, x448, x445);
848    let mut x471: u64 = 0;
849    let mut x472: fiat_p521_scalar_u1 = 0;
850    let (x471, x472) = fiat_p521_scalar_addcarryx_u64(x470, x446, x443);
851    let mut x473: u64 = 0;
852    let mut x474: fiat_p521_scalar_u1 = 0;
853    let (x473, x474) = fiat_p521_scalar_addcarryx_u64(x472, x444, x441);
854    let x475: u64 = ((x474 as u64) + x442);
855    let mut x476: u64 = 0;
856    let mut x477: fiat_p521_scalar_u1 = 0;
857    let (x476, x477) = fiat_p521_scalar_addcarryx_u64(0x0, x422, x457);
858    let mut x478: u64 = 0;
859    let mut x479: fiat_p521_scalar_u1 = 0;
860    let (x478, x479) = fiat_p521_scalar_addcarryx_u64(x477, x424, x459);
861    let mut x480: u64 = 0;
862    let mut x481: fiat_p521_scalar_u1 = 0;
863    let (x480, x481) = fiat_p521_scalar_addcarryx_u64(x479, x426, x461);
864    let mut x482: u64 = 0;
865    let mut x483: fiat_p521_scalar_u1 = 0;
866    let (x482, x483) = fiat_p521_scalar_addcarryx_u64(x481, x428, x463);
867    let mut x484: u64 = 0;
868    let mut x485: fiat_p521_scalar_u1 = 0;
869    let (x484, x485) = fiat_p521_scalar_addcarryx_u64(x483, x430, x465);
870    let mut x486: u64 = 0;
871    let mut x487: fiat_p521_scalar_u1 = 0;
872    let (x486, x487) = fiat_p521_scalar_addcarryx_u64(x485, x432, x467);
873    let mut x488: u64 = 0;
874    let mut x489: fiat_p521_scalar_u1 = 0;
875    let (x488, x489) = fiat_p521_scalar_addcarryx_u64(x487, x434, x469);
876    let mut x490: u64 = 0;
877    let mut x491: fiat_p521_scalar_u1 = 0;
878    let (x490, x491) = fiat_p521_scalar_addcarryx_u64(x489, x436, x471);
879    let mut x492: u64 = 0;
880    let mut x493: fiat_p521_scalar_u1 = 0;
881    let (x492, x493) = fiat_p521_scalar_addcarryx_u64(x491, x438, x473);
882    let mut x494: u64 = 0;
883    let mut x495: fiat_p521_scalar_u1 = 0;
884    let (x494, x495) = fiat_p521_scalar_addcarryx_u64(x493, x440, x475);
885    let mut x496: u64 = 0;
886    let mut x497: u64 = 0;
887    let (x496, x497) = fiat_p521_scalar_mulx_u64(x476, 0x1d2f5ccd79a995c7);
888    let mut x498: u64 = 0;
889    let mut x499: u64 = 0;
890    let (x498, x499) = fiat_p521_scalar_mulx_u64(x496, 0x1ff);
891    let mut x500: u64 = 0;
892    let mut x501: u64 = 0;
893    let (x500, x501) = fiat_p521_scalar_mulx_u64(x496, 0xffffffffffffffff);
894    let mut x502: u64 = 0;
895    let mut x503: u64 = 0;
896    let (x502, x503) = fiat_p521_scalar_mulx_u64(x496, 0xffffffffffffffff);
897    let mut x504: u64 = 0;
898    let mut x505: u64 = 0;
899    let (x504, x505) = fiat_p521_scalar_mulx_u64(x496, 0xffffffffffffffff);
900    let mut x506: u64 = 0;
901    let mut x507: u64 = 0;
902    let (x506, x507) = fiat_p521_scalar_mulx_u64(x496, 0xfffffffffffffffa);
903    let mut x508: u64 = 0;
904    let mut x509: u64 = 0;
905    let (x508, x509) = fiat_p521_scalar_mulx_u64(x496, 0x51868783bf2f966b);
906    let mut x510: u64 = 0;
907    let mut x511: u64 = 0;
908    let (x510, x511) = fiat_p521_scalar_mulx_u64(x496, 0x7fcc0148f709a5d0);
909    let mut x512: u64 = 0;
910    let mut x513: u64 = 0;
911    let (x512, x513) = fiat_p521_scalar_mulx_u64(x496, 0x3bb5c9b8899c47ae);
912    let mut x514: u64 = 0;
913    let mut x515: u64 = 0;
914    let (x514, x515) = fiat_p521_scalar_mulx_u64(x496, 0xbb6fb71e91386409);
915    let mut x516: u64 = 0;
916    let mut x517: fiat_p521_scalar_u1 = 0;
917    let (x516, x517) = fiat_p521_scalar_addcarryx_u64(0x0, x515, x512);
918    let mut x518: u64 = 0;
919    let mut x519: fiat_p521_scalar_u1 = 0;
920    let (x518, x519) = fiat_p521_scalar_addcarryx_u64(x517, x513, x510);
921    let mut x520: u64 = 0;
922    let mut x521: fiat_p521_scalar_u1 = 0;
923    let (x520, x521) = fiat_p521_scalar_addcarryx_u64(x519, x511, x508);
924    let mut x522: u64 = 0;
925    let mut x523: fiat_p521_scalar_u1 = 0;
926    let (x522, x523) = fiat_p521_scalar_addcarryx_u64(x521, x509, x506);
927    let mut x524: u64 = 0;
928    let mut x525: fiat_p521_scalar_u1 = 0;
929    let (x524, x525) = fiat_p521_scalar_addcarryx_u64(x523, x507, x504);
930    let mut x526: u64 = 0;
931    let mut x527: fiat_p521_scalar_u1 = 0;
932    let (x526, x527) = fiat_p521_scalar_addcarryx_u64(x525, x505, x502);
933    let mut x528: u64 = 0;
934    let mut x529: fiat_p521_scalar_u1 = 0;
935    let (x528, x529) = fiat_p521_scalar_addcarryx_u64(x527, x503, x500);
936    let mut x530: u64 = 0;
937    let mut x531: fiat_p521_scalar_u1 = 0;
938    let (x530, x531) = fiat_p521_scalar_addcarryx_u64(x529, x501, x498);
939    let x532: u64 = ((x531 as u64) + x499);
940    let mut x533: u64 = 0;
941    let mut x534: fiat_p521_scalar_u1 = 0;
942    let (x533, x534) = fiat_p521_scalar_addcarryx_u64(0x0, x476, x514);
943    let mut x535: u64 = 0;
944    let mut x536: fiat_p521_scalar_u1 = 0;
945    let (x535, x536) = fiat_p521_scalar_addcarryx_u64(x534, x478, x516);
946    let mut x537: u64 = 0;
947    let mut x538: fiat_p521_scalar_u1 = 0;
948    let (x537, x538) = fiat_p521_scalar_addcarryx_u64(x536, x480, x518);
949    let mut x539: u64 = 0;
950    let mut x540: fiat_p521_scalar_u1 = 0;
951    let (x539, x540) = fiat_p521_scalar_addcarryx_u64(x538, x482, x520);
952    let mut x541: u64 = 0;
953    let mut x542: fiat_p521_scalar_u1 = 0;
954    let (x541, x542) = fiat_p521_scalar_addcarryx_u64(x540, x484, x522);
955    let mut x543: u64 = 0;
956    let mut x544: fiat_p521_scalar_u1 = 0;
957    let (x543, x544) = fiat_p521_scalar_addcarryx_u64(x542, x486, x524);
958    let mut x545: u64 = 0;
959    let mut x546: fiat_p521_scalar_u1 = 0;
960    let (x545, x546) = fiat_p521_scalar_addcarryx_u64(x544, x488, x526);
961    let mut x547: u64 = 0;
962    let mut x548: fiat_p521_scalar_u1 = 0;
963    let (x547, x548) = fiat_p521_scalar_addcarryx_u64(x546, x490, x528);
964    let mut x549: u64 = 0;
965    let mut x550: fiat_p521_scalar_u1 = 0;
966    let (x549, x550) = fiat_p521_scalar_addcarryx_u64(x548, x492, x530);
967    let mut x551: u64 = 0;
968    let mut x552: fiat_p521_scalar_u1 = 0;
969    let (x551, x552) = fiat_p521_scalar_addcarryx_u64(x550, x494, x532);
970    let x553: u64 = ((x552 as u64) + (x495 as u64));
971    let mut x554: u64 = 0;
972    let mut x555: u64 = 0;
973    let (x554, x555) = fiat_p521_scalar_mulx_u64(x5, (arg2[8]));
974    let mut x556: u64 = 0;
975    let mut x557: u64 = 0;
976    let (x556, x557) = fiat_p521_scalar_mulx_u64(x5, (arg2[7]));
977    let mut x558: u64 = 0;
978    let mut x559: u64 = 0;
979    let (x558, x559) = fiat_p521_scalar_mulx_u64(x5, (arg2[6]));
980    let mut x560: u64 = 0;
981    let mut x561: u64 = 0;
982    let (x560, x561) = fiat_p521_scalar_mulx_u64(x5, (arg2[5]));
983    let mut x562: u64 = 0;
984    let mut x563: u64 = 0;
985    let (x562, x563) = fiat_p521_scalar_mulx_u64(x5, (arg2[4]));
986    let mut x564: u64 = 0;
987    let mut x565: u64 = 0;
988    let (x564, x565) = fiat_p521_scalar_mulx_u64(x5, (arg2[3]));
989    let mut x566: u64 = 0;
990    let mut x567: u64 = 0;
991    let (x566, x567) = fiat_p521_scalar_mulx_u64(x5, (arg2[2]));
992    let mut x568: u64 = 0;
993    let mut x569: u64 = 0;
994    let (x568, x569) = fiat_p521_scalar_mulx_u64(x5, (arg2[1]));
995    let mut x570: u64 = 0;
996    let mut x571: u64 = 0;
997    let (x570, x571) = fiat_p521_scalar_mulx_u64(x5, (arg2[0]));
998    let mut x572: u64 = 0;
999    let mut x573: fiat_p521_scalar_u1 = 0;
1000    let (x572, x573) = fiat_p521_scalar_addcarryx_u64(0x0, x571, x568);
1001    let mut x574: u64 = 0;
1002    let mut x575: fiat_p521_scalar_u1 = 0;
1003    let (x574, x575) = fiat_p521_scalar_addcarryx_u64(x573, x569, x566);
1004    let mut x576: u64 = 0;
1005    let mut x577: fiat_p521_scalar_u1 = 0;
1006    let (x576, x577) = fiat_p521_scalar_addcarryx_u64(x575, x567, x564);
1007    let mut x578: u64 = 0;
1008    let mut x579: fiat_p521_scalar_u1 = 0;
1009    let (x578, x579) = fiat_p521_scalar_addcarryx_u64(x577, x565, x562);
1010    let mut x580: u64 = 0;
1011    let mut x581: fiat_p521_scalar_u1 = 0;
1012    let (x580, x581) = fiat_p521_scalar_addcarryx_u64(x579, x563, x560);
1013    let mut x582: u64 = 0;
1014    let mut x583: fiat_p521_scalar_u1 = 0;
1015    let (x582, x583) = fiat_p521_scalar_addcarryx_u64(x581, x561, x558);
1016    let mut x584: u64 = 0;
1017    let mut x585: fiat_p521_scalar_u1 = 0;
1018    let (x584, x585) = fiat_p521_scalar_addcarryx_u64(x583, x559, x556);
1019    let mut x586: u64 = 0;
1020    let mut x587: fiat_p521_scalar_u1 = 0;
1021    let (x586, x587) = fiat_p521_scalar_addcarryx_u64(x585, x557, x554);
1022    let x588: u64 = ((x587 as u64) + x555);
1023    let mut x589: u64 = 0;
1024    let mut x590: fiat_p521_scalar_u1 = 0;
1025    let (x589, x590) = fiat_p521_scalar_addcarryx_u64(0x0, x535, x570);
1026    let mut x591: u64 = 0;
1027    let mut x592: fiat_p521_scalar_u1 = 0;
1028    let (x591, x592) = fiat_p521_scalar_addcarryx_u64(x590, x537, x572);
1029    let mut x593: u64 = 0;
1030    let mut x594: fiat_p521_scalar_u1 = 0;
1031    let (x593, x594) = fiat_p521_scalar_addcarryx_u64(x592, x539, x574);
1032    let mut x595: u64 = 0;
1033    let mut x596: fiat_p521_scalar_u1 = 0;
1034    let (x595, x596) = fiat_p521_scalar_addcarryx_u64(x594, x541, x576);
1035    let mut x597: u64 = 0;
1036    let mut x598: fiat_p521_scalar_u1 = 0;
1037    let (x597, x598) = fiat_p521_scalar_addcarryx_u64(x596, x543, x578);
1038    let mut x599: u64 = 0;
1039    let mut x600: fiat_p521_scalar_u1 = 0;
1040    let (x599, x600) = fiat_p521_scalar_addcarryx_u64(x598, x545, x580);
1041    let mut x601: u64 = 0;
1042    let mut x602: fiat_p521_scalar_u1 = 0;
1043    let (x601, x602) = fiat_p521_scalar_addcarryx_u64(x600, x547, x582);
1044    let mut x603: u64 = 0;
1045    let mut x604: fiat_p521_scalar_u1 = 0;
1046    let (x603, x604) = fiat_p521_scalar_addcarryx_u64(x602, x549, x584);
1047    let mut x605: u64 = 0;
1048    let mut x606: fiat_p521_scalar_u1 = 0;
1049    let (x605, x606) = fiat_p521_scalar_addcarryx_u64(x604, x551, x586);
1050    let mut x607: u64 = 0;
1051    let mut x608: fiat_p521_scalar_u1 = 0;
1052    let (x607, x608) = fiat_p521_scalar_addcarryx_u64(x606, x553, x588);
1053    let mut x609: u64 = 0;
1054    let mut x610: u64 = 0;
1055    let (x609, x610) = fiat_p521_scalar_mulx_u64(x589, 0x1d2f5ccd79a995c7);
1056    let mut x611: u64 = 0;
1057    let mut x612: u64 = 0;
1058    let (x611, x612) = fiat_p521_scalar_mulx_u64(x609, 0x1ff);
1059    let mut x613: u64 = 0;
1060    let mut x614: u64 = 0;
1061    let (x613, x614) = fiat_p521_scalar_mulx_u64(x609, 0xffffffffffffffff);
1062    let mut x615: u64 = 0;
1063    let mut x616: u64 = 0;
1064    let (x615, x616) = fiat_p521_scalar_mulx_u64(x609, 0xffffffffffffffff);
1065    let mut x617: u64 = 0;
1066    let mut x618: u64 = 0;
1067    let (x617, x618) = fiat_p521_scalar_mulx_u64(x609, 0xffffffffffffffff);
1068    let mut x619: u64 = 0;
1069    let mut x620: u64 = 0;
1070    let (x619, x620) = fiat_p521_scalar_mulx_u64(x609, 0xfffffffffffffffa);
1071    let mut x621: u64 = 0;
1072    let mut x622: u64 = 0;
1073    let (x621, x622) = fiat_p521_scalar_mulx_u64(x609, 0x51868783bf2f966b);
1074    let mut x623: u64 = 0;
1075    let mut x624: u64 = 0;
1076    let (x623, x624) = fiat_p521_scalar_mulx_u64(x609, 0x7fcc0148f709a5d0);
1077    let mut x625: u64 = 0;
1078    let mut x626: u64 = 0;
1079    let (x625, x626) = fiat_p521_scalar_mulx_u64(x609, 0x3bb5c9b8899c47ae);
1080    let mut x627: u64 = 0;
1081    let mut x628: u64 = 0;
1082    let (x627, x628) = fiat_p521_scalar_mulx_u64(x609, 0xbb6fb71e91386409);
1083    let mut x629: u64 = 0;
1084    let mut x630: fiat_p521_scalar_u1 = 0;
1085    let (x629, x630) = fiat_p521_scalar_addcarryx_u64(0x0, x628, x625);
1086    let mut x631: u64 = 0;
1087    let mut x632: fiat_p521_scalar_u1 = 0;
1088    let (x631, x632) = fiat_p521_scalar_addcarryx_u64(x630, x626, x623);
1089    let mut x633: u64 = 0;
1090    let mut x634: fiat_p521_scalar_u1 = 0;
1091    let (x633, x634) = fiat_p521_scalar_addcarryx_u64(x632, x624, x621);
1092    let mut x635: u64 = 0;
1093    let mut x636: fiat_p521_scalar_u1 = 0;
1094    let (x635, x636) = fiat_p521_scalar_addcarryx_u64(x634, x622, x619);
1095    let mut x637: u64 = 0;
1096    let mut x638: fiat_p521_scalar_u1 = 0;
1097    let (x637, x638) = fiat_p521_scalar_addcarryx_u64(x636, x620, x617);
1098    let mut x639: u64 = 0;
1099    let mut x640: fiat_p521_scalar_u1 = 0;
1100    let (x639, x640) = fiat_p521_scalar_addcarryx_u64(x638, x618, x615);
1101    let mut x641: u64 = 0;
1102    let mut x642: fiat_p521_scalar_u1 = 0;
1103    let (x641, x642) = fiat_p521_scalar_addcarryx_u64(x640, x616, x613);
1104    let mut x643: u64 = 0;
1105    let mut x644: fiat_p521_scalar_u1 = 0;
1106    let (x643, x644) = fiat_p521_scalar_addcarryx_u64(x642, x614, x611);
1107    let x645: u64 = ((x644 as u64) + x612);
1108    let mut x646: u64 = 0;
1109    let mut x647: fiat_p521_scalar_u1 = 0;
1110    let (x646, x647) = fiat_p521_scalar_addcarryx_u64(0x0, x589, x627);
1111    let mut x648: u64 = 0;
1112    let mut x649: fiat_p521_scalar_u1 = 0;
1113    let (x648, x649) = fiat_p521_scalar_addcarryx_u64(x647, x591, x629);
1114    let mut x650: u64 = 0;
1115    let mut x651: fiat_p521_scalar_u1 = 0;
1116    let (x650, x651) = fiat_p521_scalar_addcarryx_u64(x649, x593, x631);
1117    let mut x652: u64 = 0;
1118    let mut x653: fiat_p521_scalar_u1 = 0;
1119    let (x652, x653) = fiat_p521_scalar_addcarryx_u64(x651, x595, x633);
1120    let mut x654: u64 = 0;
1121    let mut x655: fiat_p521_scalar_u1 = 0;
1122    let (x654, x655) = fiat_p521_scalar_addcarryx_u64(x653, x597, x635);
1123    let mut x656: u64 = 0;
1124    let mut x657: fiat_p521_scalar_u1 = 0;
1125    let (x656, x657) = fiat_p521_scalar_addcarryx_u64(x655, x599, x637);
1126    let mut x658: u64 = 0;
1127    let mut x659: fiat_p521_scalar_u1 = 0;
1128    let (x658, x659) = fiat_p521_scalar_addcarryx_u64(x657, x601, x639);
1129    let mut x660: u64 = 0;
1130    let mut x661: fiat_p521_scalar_u1 = 0;
1131    let (x660, x661) = fiat_p521_scalar_addcarryx_u64(x659, x603, x641);
1132    let mut x662: u64 = 0;
1133    let mut x663: fiat_p521_scalar_u1 = 0;
1134    let (x662, x663) = fiat_p521_scalar_addcarryx_u64(x661, x605, x643);
1135    let mut x664: u64 = 0;
1136    let mut x665: fiat_p521_scalar_u1 = 0;
1137    let (x664, x665) = fiat_p521_scalar_addcarryx_u64(x663, x607, x645);
1138    let x666: u64 = ((x665 as u64) + (x608 as u64));
1139    let mut x667: u64 = 0;
1140    let mut x668: u64 = 0;
1141    let (x667, x668) = fiat_p521_scalar_mulx_u64(x6, (arg2[8]));
1142    let mut x669: u64 = 0;
1143    let mut x670: u64 = 0;
1144    let (x669, x670) = fiat_p521_scalar_mulx_u64(x6, (arg2[7]));
1145    let mut x671: u64 = 0;
1146    let mut x672: u64 = 0;
1147    let (x671, x672) = fiat_p521_scalar_mulx_u64(x6, (arg2[6]));
1148    let mut x673: u64 = 0;
1149    let mut x674: u64 = 0;
1150    let (x673, x674) = fiat_p521_scalar_mulx_u64(x6, (arg2[5]));
1151    let mut x675: u64 = 0;
1152    let mut x676: u64 = 0;
1153    let (x675, x676) = fiat_p521_scalar_mulx_u64(x6, (arg2[4]));
1154    let mut x677: u64 = 0;
1155    let mut x678: u64 = 0;
1156    let (x677, x678) = fiat_p521_scalar_mulx_u64(x6, (arg2[3]));
1157    let mut x679: u64 = 0;
1158    let mut x680: u64 = 0;
1159    let (x679, x680) = fiat_p521_scalar_mulx_u64(x6, (arg2[2]));
1160    let mut x681: u64 = 0;
1161    let mut x682: u64 = 0;
1162    let (x681, x682) = fiat_p521_scalar_mulx_u64(x6, (arg2[1]));
1163    let mut x683: u64 = 0;
1164    let mut x684: u64 = 0;
1165    let (x683, x684) = fiat_p521_scalar_mulx_u64(x6, (arg2[0]));
1166    let mut x685: u64 = 0;
1167    let mut x686: fiat_p521_scalar_u1 = 0;
1168    let (x685, x686) = fiat_p521_scalar_addcarryx_u64(0x0, x684, x681);
1169    let mut x687: u64 = 0;
1170    let mut x688: fiat_p521_scalar_u1 = 0;
1171    let (x687, x688) = fiat_p521_scalar_addcarryx_u64(x686, x682, x679);
1172    let mut x689: u64 = 0;
1173    let mut x690: fiat_p521_scalar_u1 = 0;
1174    let (x689, x690) = fiat_p521_scalar_addcarryx_u64(x688, x680, x677);
1175    let mut x691: u64 = 0;
1176    let mut x692: fiat_p521_scalar_u1 = 0;
1177    let (x691, x692) = fiat_p521_scalar_addcarryx_u64(x690, x678, x675);
1178    let mut x693: u64 = 0;
1179    let mut x694: fiat_p521_scalar_u1 = 0;
1180    let (x693, x694) = fiat_p521_scalar_addcarryx_u64(x692, x676, x673);
1181    let mut x695: u64 = 0;
1182    let mut x696: fiat_p521_scalar_u1 = 0;
1183    let (x695, x696) = fiat_p521_scalar_addcarryx_u64(x694, x674, x671);
1184    let mut x697: u64 = 0;
1185    let mut x698: fiat_p521_scalar_u1 = 0;
1186    let (x697, x698) = fiat_p521_scalar_addcarryx_u64(x696, x672, x669);
1187    let mut x699: u64 = 0;
1188    let mut x700: fiat_p521_scalar_u1 = 0;
1189    let (x699, x700) = fiat_p521_scalar_addcarryx_u64(x698, x670, x667);
1190    let x701: u64 = ((x700 as u64) + x668);
1191    let mut x702: u64 = 0;
1192    let mut x703: fiat_p521_scalar_u1 = 0;
1193    let (x702, x703) = fiat_p521_scalar_addcarryx_u64(0x0, x648, x683);
1194    let mut x704: u64 = 0;
1195    let mut x705: fiat_p521_scalar_u1 = 0;
1196    let (x704, x705) = fiat_p521_scalar_addcarryx_u64(x703, x650, x685);
1197    let mut x706: u64 = 0;
1198    let mut x707: fiat_p521_scalar_u1 = 0;
1199    let (x706, x707) = fiat_p521_scalar_addcarryx_u64(x705, x652, x687);
1200    let mut x708: u64 = 0;
1201    let mut x709: fiat_p521_scalar_u1 = 0;
1202    let (x708, x709) = fiat_p521_scalar_addcarryx_u64(x707, x654, x689);
1203    let mut x710: u64 = 0;
1204    let mut x711: fiat_p521_scalar_u1 = 0;
1205    let (x710, x711) = fiat_p521_scalar_addcarryx_u64(x709, x656, x691);
1206    let mut x712: u64 = 0;
1207    let mut x713: fiat_p521_scalar_u1 = 0;
1208    let (x712, x713) = fiat_p521_scalar_addcarryx_u64(x711, x658, x693);
1209    let mut x714: u64 = 0;
1210    let mut x715: fiat_p521_scalar_u1 = 0;
1211    let (x714, x715) = fiat_p521_scalar_addcarryx_u64(x713, x660, x695);
1212    let mut x716: u64 = 0;
1213    let mut x717: fiat_p521_scalar_u1 = 0;
1214    let (x716, x717) = fiat_p521_scalar_addcarryx_u64(x715, x662, x697);
1215    let mut x718: u64 = 0;
1216    let mut x719: fiat_p521_scalar_u1 = 0;
1217    let (x718, x719) = fiat_p521_scalar_addcarryx_u64(x717, x664, x699);
1218    let mut x720: u64 = 0;
1219    let mut x721: fiat_p521_scalar_u1 = 0;
1220    let (x720, x721) = fiat_p521_scalar_addcarryx_u64(x719, x666, x701);
1221    let mut x722: u64 = 0;
1222    let mut x723: u64 = 0;
1223    let (x722, x723) = fiat_p521_scalar_mulx_u64(x702, 0x1d2f5ccd79a995c7);
1224    let mut x724: u64 = 0;
1225    let mut x725: u64 = 0;
1226    let (x724, x725) = fiat_p521_scalar_mulx_u64(x722, 0x1ff);
1227    let mut x726: u64 = 0;
1228    let mut x727: u64 = 0;
1229    let (x726, x727) = fiat_p521_scalar_mulx_u64(x722, 0xffffffffffffffff);
1230    let mut x728: u64 = 0;
1231    let mut x729: u64 = 0;
1232    let (x728, x729) = fiat_p521_scalar_mulx_u64(x722, 0xffffffffffffffff);
1233    let mut x730: u64 = 0;
1234    let mut x731: u64 = 0;
1235    let (x730, x731) = fiat_p521_scalar_mulx_u64(x722, 0xffffffffffffffff);
1236    let mut x732: u64 = 0;
1237    let mut x733: u64 = 0;
1238    let (x732, x733) = fiat_p521_scalar_mulx_u64(x722, 0xfffffffffffffffa);
1239    let mut x734: u64 = 0;
1240    let mut x735: u64 = 0;
1241    let (x734, x735) = fiat_p521_scalar_mulx_u64(x722, 0x51868783bf2f966b);
1242    let mut x736: u64 = 0;
1243    let mut x737: u64 = 0;
1244    let (x736, x737) = fiat_p521_scalar_mulx_u64(x722, 0x7fcc0148f709a5d0);
1245    let mut x738: u64 = 0;
1246    let mut x739: u64 = 0;
1247    let (x738, x739) = fiat_p521_scalar_mulx_u64(x722, 0x3bb5c9b8899c47ae);
1248    let mut x740: u64 = 0;
1249    let mut x741: u64 = 0;
1250    let (x740, x741) = fiat_p521_scalar_mulx_u64(x722, 0xbb6fb71e91386409);
1251    let mut x742: u64 = 0;
1252    let mut x743: fiat_p521_scalar_u1 = 0;
1253    let (x742, x743) = fiat_p521_scalar_addcarryx_u64(0x0, x741, x738);
1254    let mut x744: u64 = 0;
1255    let mut x745: fiat_p521_scalar_u1 = 0;
1256    let (x744, x745) = fiat_p521_scalar_addcarryx_u64(x743, x739, x736);
1257    let mut x746: u64 = 0;
1258    let mut x747: fiat_p521_scalar_u1 = 0;
1259    let (x746, x747) = fiat_p521_scalar_addcarryx_u64(x745, x737, x734);
1260    let mut x748: u64 = 0;
1261    let mut x749: fiat_p521_scalar_u1 = 0;
1262    let (x748, x749) = fiat_p521_scalar_addcarryx_u64(x747, x735, x732);
1263    let mut x750: u64 = 0;
1264    let mut x751: fiat_p521_scalar_u1 = 0;
1265    let (x750, x751) = fiat_p521_scalar_addcarryx_u64(x749, x733, x730);
1266    let mut x752: u64 = 0;
1267    let mut x753: fiat_p521_scalar_u1 = 0;
1268    let (x752, x753) = fiat_p521_scalar_addcarryx_u64(x751, x731, x728);
1269    let mut x754: u64 = 0;
1270    let mut x755: fiat_p521_scalar_u1 = 0;
1271    let (x754, x755) = fiat_p521_scalar_addcarryx_u64(x753, x729, x726);
1272    let mut x756: u64 = 0;
1273    let mut x757: fiat_p521_scalar_u1 = 0;
1274    let (x756, x757) = fiat_p521_scalar_addcarryx_u64(x755, x727, x724);
1275    let x758: u64 = ((x757 as u64) + x725);
1276    let mut x759: u64 = 0;
1277    let mut x760: fiat_p521_scalar_u1 = 0;
1278    let (x759, x760) = fiat_p521_scalar_addcarryx_u64(0x0, x702, x740);
1279    let mut x761: u64 = 0;
1280    let mut x762: fiat_p521_scalar_u1 = 0;
1281    let (x761, x762) = fiat_p521_scalar_addcarryx_u64(x760, x704, x742);
1282    let mut x763: u64 = 0;
1283    let mut x764: fiat_p521_scalar_u1 = 0;
1284    let (x763, x764) = fiat_p521_scalar_addcarryx_u64(x762, x706, x744);
1285    let mut x765: u64 = 0;
1286    let mut x766: fiat_p521_scalar_u1 = 0;
1287    let (x765, x766) = fiat_p521_scalar_addcarryx_u64(x764, x708, x746);
1288    let mut x767: u64 = 0;
1289    let mut x768: fiat_p521_scalar_u1 = 0;
1290    let (x767, x768) = fiat_p521_scalar_addcarryx_u64(x766, x710, x748);
1291    let mut x769: u64 = 0;
1292    let mut x770: fiat_p521_scalar_u1 = 0;
1293    let (x769, x770) = fiat_p521_scalar_addcarryx_u64(x768, x712, x750);
1294    let mut x771: u64 = 0;
1295    let mut x772: fiat_p521_scalar_u1 = 0;
1296    let (x771, x772) = fiat_p521_scalar_addcarryx_u64(x770, x714, x752);
1297    let mut x773: u64 = 0;
1298    let mut x774: fiat_p521_scalar_u1 = 0;
1299    let (x773, x774) = fiat_p521_scalar_addcarryx_u64(x772, x716, x754);
1300    let mut x775: u64 = 0;
1301    let mut x776: fiat_p521_scalar_u1 = 0;
1302    let (x775, x776) = fiat_p521_scalar_addcarryx_u64(x774, x718, x756);
1303    let mut x777: u64 = 0;
1304    let mut x778: fiat_p521_scalar_u1 = 0;
1305    let (x777, x778) = fiat_p521_scalar_addcarryx_u64(x776, x720, x758);
1306    let x779: u64 = ((x778 as u64) + (x721 as u64));
1307    let mut x780: u64 = 0;
1308    let mut x781: u64 = 0;
1309    let (x780, x781) = fiat_p521_scalar_mulx_u64(x7, (arg2[8]));
1310    let mut x782: u64 = 0;
1311    let mut x783: u64 = 0;
1312    let (x782, x783) = fiat_p521_scalar_mulx_u64(x7, (arg2[7]));
1313    let mut x784: u64 = 0;
1314    let mut x785: u64 = 0;
1315    let (x784, x785) = fiat_p521_scalar_mulx_u64(x7, (arg2[6]));
1316    let mut x786: u64 = 0;
1317    let mut x787: u64 = 0;
1318    let (x786, x787) = fiat_p521_scalar_mulx_u64(x7, (arg2[5]));
1319    let mut x788: u64 = 0;
1320    let mut x789: u64 = 0;
1321    let (x788, x789) = fiat_p521_scalar_mulx_u64(x7, (arg2[4]));
1322    let mut x790: u64 = 0;
1323    let mut x791: u64 = 0;
1324    let (x790, x791) = fiat_p521_scalar_mulx_u64(x7, (arg2[3]));
1325    let mut x792: u64 = 0;
1326    let mut x793: u64 = 0;
1327    let (x792, x793) = fiat_p521_scalar_mulx_u64(x7, (arg2[2]));
1328    let mut x794: u64 = 0;
1329    let mut x795: u64 = 0;
1330    let (x794, x795) = fiat_p521_scalar_mulx_u64(x7, (arg2[1]));
1331    let mut x796: u64 = 0;
1332    let mut x797: u64 = 0;
1333    let (x796, x797) = fiat_p521_scalar_mulx_u64(x7, (arg2[0]));
1334    let mut x798: u64 = 0;
1335    let mut x799: fiat_p521_scalar_u1 = 0;
1336    let (x798, x799) = fiat_p521_scalar_addcarryx_u64(0x0, x797, x794);
1337    let mut x800: u64 = 0;
1338    let mut x801: fiat_p521_scalar_u1 = 0;
1339    let (x800, x801) = fiat_p521_scalar_addcarryx_u64(x799, x795, x792);
1340    let mut x802: u64 = 0;
1341    let mut x803: fiat_p521_scalar_u1 = 0;
1342    let (x802, x803) = fiat_p521_scalar_addcarryx_u64(x801, x793, x790);
1343    let mut x804: u64 = 0;
1344    let mut x805: fiat_p521_scalar_u1 = 0;
1345    let (x804, x805) = fiat_p521_scalar_addcarryx_u64(x803, x791, x788);
1346    let mut x806: u64 = 0;
1347    let mut x807: fiat_p521_scalar_u1 = 0;
1348    let (x806, x807) = fiat_p521_scalar_addcarryx_u64(x805, x789, x786);
1349    let mut x808: u64 = 0;
1350    let mut x809: fiat_p521_scalar_u1 = 0;
1351    let (x808, x809) = fiat_p521_scalar_addcarryx_u64(x807, x787, x784);
1352    let mut x810: u64 = 0;
1353    let mut x811: fiat_p521_scalar_u1 = 0;
1354    let (x810, x811) = fiat_p521_scalar_addcarryx_u64(x809, x785, x782);
1355    let mut x812: u64 = 0;
1356    let mut x813: fiat_p521_scalar_u1 = 0;
1357    let (x812, x813) = fiat_p521_scalar_addcarryx_u64(x811, x783, x780);
1358    let x814: u64 = ((x813 as u64) + x781);
1359    let mut x815: u64 = 0;
1360    let mut x816: fiat_p521_scalar_u1 = 0;
1361    let (x815, x816) = fiat_p521_scalar_addcarryx_u64(0x0, x761, x796);
1362    let mut x817: u64 = 0;
1363    let mut x818: fiat_p521_scalar_u1 = 0;
1364    let (x817, x818) = fiat_p521_scalar_addcarryx_u64(x816, x763, x798);
1365    let mut x819: u64 = 0;
1366    let mut x820: fiat_p521_scalar_u1 = 0;
1367    let (x819, x820) = fiat_p521_scalar_addcarryx_u64(x818, x765, x800);
1368    let mut x821: u64 = 0;
1369    let mut x822: fiat_p521_scalar_u1 = 0;
1370    let (x821, x822) = fiat_p521_scalar_addcarryx_u64(x820, x767, x802);
1371    let mut x823: u64 = 0;
1372    let mut x824: fiat_p521_scalar_u1 = 0;
1373    let (x823, x824) = fiat_p521_scalar_addcarryx_u64(x822, x769, x804);
1374    let mut x825: u64 = 0;
1375    let mut x826: fiat_p521_scalar_u1 = 0;
1376    let (x825, x826) = fiat_p521_scalar_addcarryx_u64(x824, x771, x806);
1377    let mut x827: u64 = 0;
1378    let mut x828: fiat_p521_scalar_u1 = 0;
1379    let (x827, x828) = fiat_p521_scalar_addcarryx_u64(x826, x773, x808);
1380    let mut x829: u64 = 0;
1381    let mut x830: fiat_p521_scalar_u1 = 0;
1382    let (x829, x830) = fiat_p521_scalar_addcarryx_u64(x828, x775, x810);
1383    let mut x831: u64 = 0;
1384    let mut x832: fiat_p521_scalar_u1 = 0;
1385    let (x831, x832) = fiat_p521_scalar_addcarryx_u64(x830, x777, x812);
1386    let mut x833: u64 = 0;
1387    let mut x834: fiat_p521_scalar_u1 = 0;
1388    let (x833, x834) = fiat_p521_scalar_addcarryx_u64(x832, x779, x814);
1389    let mut x835: u64 = 0;
1390    let mut x836: u64 = 0;
1391    let (x835, x836) = fiat_p521_scalar_mulx_u64(x815, 0x1d2f5ccd79a995c7);
1392    let mut x837: u64 = 0;
1393    let mut x838: u64 = 0;
1394    let (x837, x838) = fiat_p521_scalar_mulx_u64(x835, 0x1ff);
1395    let mut x839: u64 = 0;
1396    let mut x840: u64 = 0;
1397    let (x839, x840) = fiat_p521_scalar_mulx_u64(x835, 0xffffffffffffffff);
1398    let mut x841: u64 = 0;
1399    let mut x842: u64 = 0;
1400    let (x841, x842) = fiat_p521_scalar_mulx_u64(x835, 0xffffffffffffffff);
1401    let mut x843: u64 = 0;
1402    let mut x844: u64 = 0;
1403    let (x843, x844) = fiat_p521_scalar_mulx_u64(x835, 0xffffffffffffffff);
1404    let mut x845: u64 = 0;
1405    let mut x846: u64 = 0;
1406    let (x845, x846) = fiat_p521_scalar_mulx_u64(x835, 0xfffffffffffffffa);
1407    let mut x847: u64 = 0;
1408    let mut x848: u64 = 0;
1409    let (x847, x848) = fiat_p521_scalar_mulx_u64(x835, 0x51868783bf2f966b);
1410    let mut x849: u64 = 0;
1411    let mut x850: u64 = 0;
1412    let (x849, x850) = fiat_p521_scalar_mulx_u64(x835, 0x7fcc0148f709a5d0);
1413    let mut x851: u64 = 0;
1414    let mut x852: u64 = 0;
1415    let (x851, x852) = fiat_p521_scalar_mulx_u64(x835, 0x3bb5c9b8899c47ae);
1416    let mut x853: u64 = 0;
1417    let mut x854: u64 = 0;
1418    let (x853, x854) = fiat_p521_scalar_mulx_u64(x835, 0xbb6fb71e91386409);
1419    let mut x855: u64 = 0;
1420    let mut x856: fiat_p521_scalar_u1 = 0;
1421    let (x855, x856) = fiat_p521_scalar_addcarryx_u64(0x0, x854, x851);
1422    let mut x857: u64 = 0;
1423    let mut x858: fiat_p521_scalar_u1 = 0;
1424    let (x857, x858) = fiat_p521_scalar_addcarryx_u64(x856, x852, x849);
1425    let mut x859: u64 = 0;
1426    let mut x860: fiat_p521_scalar_u1 = 0;
1427    let (x859, x860) = fiat_p521_scalar_addcarryx_u64(x858, x850, x847);
1428    let mut x861: u64 = 0;
1429    let mut x862: fiat_p521_scalar_u1 = 0;
1430    let (x861, x862) = fiat_p521_scalar_addcarryx_u64(x860, x848, x845);
1431    let mut x863: u64 = 0;
1432    let mut x864: fiat_p521_scalar_u1 = 0;
1433    let (x863, x864) = fiat_p521_scalar_addcarryx_u64(x862, x846, x843);
1434    let mut x865: u64 = 0;
1435    let mut x866: fiat_p521_scalar_u1 = 0;
1436    let (x865, x866) = fiat_p521_scalar_addcarryx_u64(x864, x844, x841);
1437    let mut x867: u64 = 0;
1438    let mut x868: fiat_p521_scalar_u1 = 0;
1439    let (x867, x868) = fiat_p521_scalar_addcarryx_u64(x866, x842, x839);
1440    let mut x869: u64 = 0;
1441    let mut x870: fiat_p521_scalar_u1 = 0;
1442    let (x869, x870) = fiat_p521_scalar_addcarryx_u64(x868, x840, x837);
1443    let x871: u64 = ((x870 as u64) + x838);
1444    let mut x872: u64 = 0;
1445    let mut x873: fiat_p521_scalar_u1 = 0;
1446    let (x872, x873) = fiat_p521_scalar_addcarryx_u64(0x0, x815, x853);
1447    let mut x874: u64 = 0;
1448    let mut x875: fiat_p521_scalar_u1 = 0;
1449    let (x874, x875) = fiat_p521_scalar_addcarryx_u64(x873, x817, x855);
1450    let mut x876: u64 = 0;
1451    let mut x877: fiat_p521_scalar_u1 = 0;
1452    let (x876, x877) = fiat_p521_scalar_addcarryx_u64(x875, x819, x857);
1453    let mut x878: u64 = 0;
1454    let mut x879: fiat_p521_scalar_u1 = 0;
1455    let (x878, x879) = fiat_p521_scalar_addcarryx_u64(x877, x821, x859);
1456    let mut x880: u64 = 0;
1457    let mut x881: fiat_p521_scalar_u1 = 0;
1458    let (x880, x881) = fiat_p521_scalar_addcarryx_u64(x879, x823, x861);
1459    let mut x882: u64 = 0;
1460    let mut x883: fiat_p521_scalar_u1 = 0;
1461    let (x882, x883) = fiat_p521_scalar_addcarryx_u64(x881, x825, x863);
1462    let mut x884: u64 = 0;
1463    let mut x885: fiat_p521_scalar_u1 = 0;
1464    let (x884, x885) = fiat_p521_scalar_addcarryx_u64(x883, x827, x865);
1465    let mut x886: u64 = 0;
1466    let mut x887: fiat_p521_scalar_u1 = 0;
1467    let (x886, x887) = fiat_p521_scalar_addcarryx_u64(x885, x829, x867);
1468    let mut x888: u64 = 0;
1469    let mut x889: fiat_p521_scalar_u1 = 0;
1470    let (x888, x889) = fiat_p521_scalar_addcarryx_u64(x887, x831, x869);
1471    let mut x890: u64 = 0;
1472    let mut x891: fiat_p521_scalar_u1 = 0;
1473    let (x890, x891) = fiat_p521_scalar_addcarryx_u64(x889, x833, x871);
1474    let x892: u64 = ((x891 as u64) + (x834 as u64));
1475    let mut x893: u64 = 0;
1476    let mut x894: u64 = 0;
1477    let (x893, x894) = fiat_p521_scalar_mulx_u64(x8, (arg2[8]));
1478    let mut x895: u64 = 0;
1479    let mut x896: u64 = 0;
1480    let (x895, x896) = fiat_p521_scalar_mulx_u64(x8, (arg2[7]));
1481    let mut x897: u64 = 0;
1482    let mut x898: u64 = 0;
1483    let (x897, x898) = fiat_p521_scalar_mulx_u64(x8, (arg2[6]));
1484    let mut x899: u64 = 0;
1485    let mut x900: u64 = 0;
1486    let (x899, x900) = fiat_p521_scalar_mulx_u64(x8, (arg2[5]));
1487    let mut x901: u64 = 0;
1488    let mut x902: u64 = 0;
1489    let (x901, x902) = fiat_p521_scalar_mulx_u64(x8, (arg2[4]));
1490    let mut x903: u64 = 0;
1491    let mut x904: u64 = 0;
1492    let (x903, x904) = fiat_p521_scalar_mulx_u64(x8, (arg2[3]));
1493    let mut x905: u64 = 0;
1494    let mut x906: u64 = 0;
1495    let (x905, x906) = fiat_p521_scalar_mulx_u64(x8, (arg2[2]));
1496    let mut x907: u64 = 0;
1497    let mut x908: u64 = 0;
1498    let (x907, x908) = fiat_p521_scalar_mulx_u64(x8, (arg2[1]));
1499    let mut x909: u64 = 0;
1500    let mut x910: u64 = 0;
1501    let (x909, x910) = fiat_p521_scalar_mulx_u64(x8, (arg2[0]));
1502    let mut x911: u64 = 0;
1503    let mut x912: fiat_p521_scalar_u1 = 0;
1504    let (x911, x912) = fiat_p521_scalar_addcarryx_u64(0x0, x910, x907);
1505    let mut x913: u64 = 0;
1506    let mut x914: fiat_p521_scalar_u1 = 0;
1507    let (x913, x914) = fiat_p521_scalar_addcarryx_u64(x912, x908, x905);
1508    let mut x915: u64 = 0;
1509    let mut x916: fiat_p521_scalar_u1 = 0;
1510    let (x915, x916) = fiat_p521_scalar_addcarryx_u64(x914, x906, x903);
1511    let mut x917: u64 = 0;
1512    let mut x918: fiat_p521_scalar_u1 = 0;
1513    let (x917, x918) = fiat_p521_scalar_addcarryx_u64(x916, x904, x901);
1514    let mut x919: u64 = 0;
1515    let mut x920: fiat_p521_scalar_u1 = 0;
1516    let (x919, x920) = fiat_p521_scalar_addcarryx_u64(x918, x902, x899);
1517    let mut x921: u64 = 0;
1518    let mut x922: fiat_p521_scalar_u1 = 0;
1519    let (x921, x922) = fiat_p521_scalar_addcarryx_u64(x920, x900, x897);
1520    let mut x923: u64 = 0;
1521    let mut x924: fiat_p521_scalar_u1 = 0;
1522    let (x923, x924) = fiat_p521_scalar_addcarryx_u64(x922, x898, x895);
1523    let mut x925: u64 = 0;
1524    let mut x926: fiat_p521_scalar_u1 = 0;
1525    let (x925, x926) = fiat_p521_scalar_addcarryx_u64(x924, x896, x893);
1526    let x927: u64 = ((x926 as u64) + x894);
1527    let mut x928: u64 = 0;
1528    let mut x929: fiat_p521_scalar_u1 = 0;
1529    let (x928, x929) = fiat_p521_scalar_addcarryx_u64(0x0, x874, x909);
1530    let mut x930: u64 = 0;
1531    let mut x931: fiat_p521_scalar_u1 = 0;
1532    let (x930, x931) = fiat_p521_scalar_addcarryx_u64(x929, x876, x911);
1533    let mut x932: u64 = 0;
1534    let mut x933: fiat_p521_scalar_u1 = 0;
1535    let (x932, x933) = fiat_p521_scalar_addcarryx_u64(x931, x878, x913);
1536    let mut x934: u64 = 0;
1537    let mut x935: fiat_p521_scalar_u1 = 0;
1538    let (x934, x935) = fiat_p521_scalar_addcarryx_u64(x933, x880, x915);
1539    let mut x936: u64 = 0;
1540    let mut x937: fiat_p521_scalar_u1 = 0;
1541    let (x936, x937) = fiat_p521_scalar_addcarryx_u64(x935, x882, x917);
1542    let mut x938: u64 = 0;
1543    let mut x939: fiat_p521_scalar_u1 = 0;
1544    let (x938, x939) = fiat_p521_scalar_addcarryx_u64(x937, x884, x919);
1545    let mut x940: u64 = 0;
1546    let mut x941: fiat_p521_scalar_u1 = 0;
1547    let (x940, x941) = fiat_p521_scalar_addcarryx_u64(x939, x886, x921);
1548    let mut x942: u64 = 0;
1549    let mut x943: fiat_p521_scalar_u1 = 0;
1550    let (x942, x943) = fiat_p521_scalar_addcarryx_u64(x941, x888, x923);
1551    let mut x944: u64 = 0;
1552    let mut x945: fiat_p521_scalar_u1 = 0;
1553    let (x944, x945) = fiat_p521_scalar_addcarryx_u64(x943, x890, x925);
1554    let mut x946: u64 = 0;
1555    let mut x947: fiat_p521_scalar_u1 = 0;
1556    let (x946, x947) = fiat_p521_scalar_addcarryx_u64(x945, x892, x927);
1557    let mut x948: u64 = 0;
1558    let mut x949: u64 = 0;
1559    let (x948, x949) = fiat_p521_scalar_mulx_u64(x928, 0x1d2f5ccd79a995c7);
1560    let mut x950: u64 = 0;
1561    let mut x951: u64 = 0;
1562    let (x950, x951) = fiat_p521_scalar_mulx_u64(x948, 0x1ff);
1563    let mut x952: u64 = 0;
1564    let mut x953: u64 = 0;
1565    let (x952, x953) = fiat_p521_scalar_mulx_u64(x948, 0xffffffffffffffff);
1566    let mut x954: u64 = 0;
1567    let mut x955: u64 = 0;
1568    let (x954, x955) = fiat_p521_scalar_mulx_u64(x948, 0xffffffffffffffff);
1569    let mut x956: u64 = 0;
1570    let mut x957: u64 = 0;
1571    let (x956, x957) = fiat_p521_scalar_mulx_u64(x948, 0xffffffffffffffff);
1572    let mut x958: u64 = 0;
1573    let mut x959: u64 = 0;
1574    let (x958, x959) = fiat_p521_scalar_mulx_u64(x948, 0xfffffffffffffffa);
1575    let mut x960: u64 = 0;
1576    let mut x961: u64 = 0;
1577    let (x960, x961) = fiat_p521_scalar_mulx_u64(x948, 0x51868783bf2f966b);
1578    let mut x962: u64 = 0;
1579    let mut x963: u64 = 0;
1580    let (x962, x963) = fiat_p521_scalar_mulx_u64(x948, 0x7fcc0148f709a5d0);
1581    let mut x964: u64 = 0;
1582    let mut x965: u64 = 0;
1583    let (x964, x965) = fiat_p521_scalar_mulx_u64(x948, 0x3bb5c9b8899c47ae);
1584    let mut x966: u64 = 0;
1585    let mut x967: u64 = 0;
1586    let (x966, x967) = fiat_p521_scalar_mulx_u64(x948, 0xbb6fb71e91386409);
1587    let mut x968: u64 = 0;
1588    let mut x969: fiat_p521_scalar_u1 = 0;
1589    let (x968, x969) = fiat_p521_scalar_addcarryx_u64(0x0, x967, x964);
1590    let mut x970: u64 = 0;
1591    let mut x971: fiat_p521_scalar_u1 = 0;
1592    let (x970, x971) = fiat_p521_scalar_addcarryx_u64(x969, x965, x962);
1593    let mut x972: u64 = 0;
1594    let mut x973: fiat_p521_scalar_u1 = 0;
1595    let (x972, x973) = fiat_p521_scalar_addcarryx_u64(x971, x963, x960);
1596    let mut x974: u64 = 0;
1597    let mut x975: fiat_p521_scalar_u1 = 0;
1598    let (x974, x975) = fiat_p521_scalar_addcarryx_u64(x973, x961, x958);
1599    let mut x976: u64 = 0;
1600    let mut x977: fiat_p521_scalar_u1 = 0;
1601    let (x976, x977) = fiat_p521_scalar_addcarryx_u64(x975, x959, x956);
1602    let mut x978: u64 = 0;
1603    let mut x979: fiat_p521_scalar_u1 = 0;
1604    let (x978, x979) = fiat_p521_scalar_addcarryx_u64(x977, x957, x954);
1605    let mut x980: u64 = 0;
1606    let mut x981: fiat_p521_scalar_u1 = 0;
1607    let (x980, x981) = fiat_p521_scalar_addcarryx_u64(x979, x955, x952);
1608    let mut x982: u64 = 0;
1609    let mut x983: fiat_p521_scalar_u1 = 0;
1610    let (x982, x983) = fiat_p521_scalar_addcarryx_u64(x981, x953, x950);
1611    let x984: u64 = ((x983 as u64) + x951);
1612    let mut x985: u64 = 0;
1613    let mut x986: fiat_p521_scalar_u1 = 0;
1614    let (x985, x986) = fiat_p521_scalar_addcarryx_u64(0x0, x928, x966);
1615    let mut x987: u64 = 0;
1616    let mut x988: fiat_p521_scalar_u1 = 0;
1617    let (x987, x988) = fiat_p521_scalar_addcarryx_u64(x986, x930, x968);
1618    let mut x989: u64 = 0;
1619    let mut x990: fiat_p521_scalar_u1 = 0;
1620    let (x989, x990) = fiat_p521_scalar_addcarryx_u64(x988, x932, x970);
1621    let mut x991: u64 = 0;
1622    let mut x992: fiat_p521_scalar_u1 = 0;
1623    let (x991, x992) = fiat_p521_scalar_addcarryx_u64(x990, x934, x972);
1624    let mut x993: u64 = 0;
1625    let mut x994: fiat_p521_scalar_u1 = 0;
1626    let (x993, x994) = fiat_p521_scalar_addcarryx_u64(x992, x936, x974);
1627    let mut x995: u64 = 0;
1628    let mut x996: fiat_p521_scalar_u1 = 0;
1629    let (x995, x996) = fiat_p521_scalar_addcarryx_u64(x994, x938, x976);
1630    let mut x997: u64 = 0;
1631    let mut x998: fiat_p521_scalar_u1 = 0;
1632    let (x997, x998) = fiat_p521_scalar_addcarryx_u64(x996, x940, x978);
1633    let mut x999: u64 = 0;
1634    let mut x1000: fiat_p521_scalar_u1 = 0;
1635    let (x999, x1000) = fiat_p521_scalar_addcarryx_u64(x998, x942, x980);
1636    let mut x1001: u64 = 0;
1637    let mut x1002: fiat_p521_scalar_u1 = 0;
1638    let (x1001, x1002) = fiat_p521_scalar_addcarryx_u64(x1000, x944, x982);
1639    let mut x1003: u64 = 0;
1640    let mut x1004: fiat_p521_scalar_u1 = 0;
1641    let (x1003, x1004) = fiat_p521_scalar_addcarryx_u64(x1002, x946, x984);
1642    let x1005: u64 = ((x1004 as u64) + (x947 as u64));
1643    let mut x1006: u64 = 0;
1644    let mut x1007: fiat_p521_scalar_u1 = 0;
1645    let (x1006, x1007) = fiat_p521_scalar_subborrowx_u64(0x0, x987, 0xbb6fb71e91386409);
1646    let mut x1008: u64 = 0;
1647    let mut x1009: fiat_p521_scalar_u1 = 0;
1648    let (x1008, x1009) = fiat_p521_scalar_subborrowx_u64(x1007, x989, 0x3bb5c9b8899c47ae);
1649    let mut x1010: u64 = 0;
1650    let mut x1011: fiat_p521_scalar_u1 = 0;
1651    let (x1010, x1011) = fiat_p521_scalar_subborrowx_u64(x1009, x991, 0x7fcc0148f709a5d0);
1652    let mut x1012: u64 = 0;
1653    let mut x1013: fiat_p521_scalar_u1 = 0;
1654    let (x1012, x1013) = fiat_p521_scalar_subborrowx_u64(x1011, x993, 0x51868783bf2f966b);
1655    let mut x1014: u64 = 0;
1656    let mut x1015: fiat_p521_scalar_u1 = 0;
1657    let (x1014, x1015) = fiat_p521_scalar_subborrowx_u64(x1013, x995, 0xfffffffffffffffa);
1658    let mut x1016: u64 = 0;
1659    let mut x1017: fiat_p521_scalar_u1 = 0;
1660    let (x1016, x1017) = fiat_p521_scalar_subborrowx_u64(x1015, x997, 0xffffffffffffffff);
1661    let mut x1018: u64 = 0;
1662    let mut x1019: fiat_p521_scalar_u1 = 0;
1663    let (x1018, x1019) = fiat_p521_scalar_subborrowx_u64(x1017, x999, 0xffffffffffffffff);
1664    let mut x1020: u64 = 0;
1665    let mut x1021: fiat_p521_scalar_u1 = 0;
1666    let (x1020, x1021) = fiat_p521_scalar_subborrowx_u64(x1019, x1001, 0xffffffffffffffff);
1667    let mut x1022: u64 = 0;
1668    let mut x1023: fiat_p521_scalar_u1 = 0;
1669    let (x1022, x1023) = fiat_p521_scalar_subborrowx_u64(x1021, x1003, 0x1ff);
1670    let mut x1024: u64 = 0;
1671    let mut x1025: fiat_p521_scalar_u1 = 0;
1672    let (x1024, x1025) = fiat_p521_scalar_subborrowx_u64(x1023, x1005, (0x0 as u64));
1673    let mut x1026: u64 = 0;
1674    let (x1026) = fiat_p521_scalar_cmovznz_u64(x1025, x1006, x987);
1675    let mut x1027: u64 = 0;
1676    let (x1027) = fiat_p521_scalar_cmovznz_u64(x1025, x1008, x989);
1677    let mut x1028: u64 = 0;
1678    let (x1028) = fiat_p521_scalar_cmovznz_u64(x1025, x1010, x991);
1679    let mut x1029: u64 = 0;
1680    let (x1029) = fiat_p521_scalar_cmovznz_u64(x1025, x1012, x993);
1681    let mut x1030: u64 = 0;
1682    let (x1030) = fiat_p521_scalar_cmovznz_u64(x1025, x1014, x995);
1683    let mut x1031: u64 = 0;
1684    let (x1031) = fiat_p521_scalar_cmovznz_u64(x1025, x1016, x997);
1685    let mut x1032: u64 = 0;
1686    let (x1032) = fiat_p521_scalar_cmovznz_u64(x1025, x1018, x999);
1687    let mut x1033: u64 = 0;
1688    let (x1033) = fiat_p521_scalar_cmovznz_u64(x1025, x1020, x1001);
1689    let mut x1034: u64 = 0;
1690    let (x1034) = fiat_p521_scalar_cmovznz_u64(x1025, x1022, x1003);
1691    out1[0] = x1026;
1692    out1[1] = x1027;
1693    out1[2] = x1028;
1694    out1[3] = x1029;
1695    out1[4] = x1030;
1696    out1[5] = x1031;
1697    out1[6] = x1032;
1698    out1[7] = x1033;
1699    out1[8] = x1034;
1700    out1
1701}
1702#[doc = " The function fiat_p521_scalar_square squares a field element in the Montgomery domain."]
1703#[doc = ""]
1704#[doc = " Preconditions:"]
1705#[doc = "   0 ≤ eval arg1 < m"]
1706#[doc = " Postconditions:"]
1707#[doc = "   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m"]
1708#[doc = "   0 ≤ eval out1 < m"]
1709#[doc = ""]
1710#[inline]
1711pub const fn fiat_p521_scalar_square(
1712    arg1: &fiat_p521_scalar_montgomery_domain_field_element,
1713) -> fiat_p521_scalar_montgomery_domain_field_element {
1714    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
1715    let x1: u64 = (arg1[1]);
1716    let x2: u64 = (arg1[2]);
1717    let x3: u64 = (arg1[3]);
1718    let x4: u64 = (arg1[4]);
1719    let x5: u64 = (arg1[5]);
1720    let x6: u64 = (arg1[6]);
1721    let x7: u64 = (arg1[7]);
1722    let x8: u64 = (arg1[8]);
1723    let x9: u64 = (arg1[0]);
1724    let mut x10: u64 = 0;
1725    let mut x11: u64 = 0;
1726    let (x10, x11) = fiat_p521_scalar_mulx_u64(x9, (arg1[8]));
1727    let mut x12: u64 = 0;
1728    let mut x13: u64 = 0;
1729    let (x12, x13) = fiat_p521_scalar_mulx_u64(x9, (arg1[7]));
1730    let mut x14: u64 = 0;
1731    let mut x15: u64 = 0;
1732    let (x14, x15) = fiat_p521_scalar_mulx_u64(x9, (arg1[6]));
1733    let mut x16: u64 = 0;
1734    let mut x17: u64 = 0;
1735    let (x16, x17) = fiat_p521_scalar_mulx_u64(x9, (arg1[5]));
1736    let mut x18: u64 = 0;
1737    let mut x19: u64 = 0;
1738    let (x18, x19) = fiat_p521_scalar_mulx_u64(x9, (arg1[4]));
1739    let mut x20: u64 = 0;
1740    let mut x21: u64 = 0;
1741    let (x20, x21) = fiat_p521_scalar_mulx_u64(x9, (arg1[3]));
1742    let mut x22: u64 = 0;
1743    let mut x23: u64 = 0;
1744    let (x22, x23) = fiat_p521_scalar_mulx_u64(x9, (arg1[2]));
1745    let mut x24: u64 = 0;
1746    let mut x25: u64 = 0;
1747    let (x24, x25) = fiat_p521_scalar_mulx_u64(x9, (arg1[1]));
1748    let mut x26: u64 = 0;
1749    let mut x27: u64 = 0;
1750    let (x26, x27) = fiat_p521_scalar_mulx_u64(x9, (arg1[0]));
1751    let mut x28: u64 = 0;
1752    let mut x29: fiat_p521_scalar_u1 = 0;
1753    let (x28, x29) = fiat_p521_scalar_addcarryx_u64(0x0, x27, x24);
1754    let mut x30: u64 = 0;
1755    let mut x31: fiat_p521_scalar_u1 = 0;
1756    let (x30, x31) = fiat_p521_scalar_addcarryx_u64(x29, x25, x22);
1757    let mut x32: u64 = 0;
1758    let mut x33: fiat_p521_scalar_u1 = 0;
1759    let (x32, x33) = fiat_p521_scalar_addcarryx_u64(x31, x23, x20);
1760    let mut x34: u64 = 0;
1761    let mut x35: fiat_p521_scalar_u1 = 0;
1762    let (x34, x35) = fiat_p521_scalar_addcarryx_u64(x33, x21, x18);
1763    let mut x36: u64 = 0;
1764    let mut x37: fiat_p521_scalar_u1 = 0;
1765    let (x36, x37) = fiat_p521_scalar_addcarryx_u64(x35, x19, x16);
1766    let mut x38: u64 = 0;
1767    let mut x39: fiat_p521_scalar_u1 = 0;
1768    let (x38, x39) = fiat_p521_scalar_addcarryx_u64(x37, x17, x14);
1769    let mut x40: u64 = 0;
1770    let mut x41: fiat_p521_scalar_u1 = 0;
1771    let (x40, x41) = fiat_p521_scalar_addcarryx_u64(x39, x15, x12);
1772    let mut x42: u64 = 0;
1773    let mut x43: fiat_p521_scalar_u1 = 0;
1774    let (x42, x43) = fiat_p521_scalar_addcarryx_u64(x41, x13, x10);
1775    let x44: u64 = ((x43 as u64) + x11);
1776    let mut x45: u64 = 0;
1777    let mut x46: u64 = 0;
1778    let (x45, x46) = fiat_p521_scalar_mulx_u64(x26, 0x1d2f5ccd79a995c7);
1779    let mut x47: u64 = 0;
1780    let mut x48: u64 = 0;
1781    let (x47, x48) = fiat_p521_scalar_mulx_u64(x45, 0x1ff);
1782    let mut x49: u64 = 0;
1783    let mut x50: u64 = 0;
1784    let (x49, x50) = fiat_p521_scalar_mulx_u64(x45, 0xffffffffffffffff);
1785    let mut x51: u64 = 0;
1786    let mut x52: u64 = 0;
1787    let (x51, x52) = fiat_p521_scalar_mulx_u64(x45, 0xffffffffffffffff);
1788    let mut x53: u64 = 0;
1789    let mut x54: u64 = 0;
1790    let (x53, x54) = fiat_p521_scalar_mulx_u64(x45, 0xffffffffffffffff);
1791    let mut x55: u64 = 0;
1792    let mut x56: u64 = 0;
1793    let (x55, x56) = fiat_p521_scalar_mulx_u64(x45, 0xfffffffffffffffa);
1794    let mut x57: u64 = 0;
1795    let mut x58: u64 = 0;
1796    let (x57, x58) = fiat_p521_scalar_mulx_u64(x45, 0x51868783bf2f966b);
1797    let mut x59: u64 = 0;
1798    let mut x60: u64 = 0;
1799    let (x59, x60) = fiat_p521_scalar_mulx_u64(x45, 0x7fcc0148f709a5d0);
1800    let mut x61: u64 = 0;
1801    let mut x62: u64 = 0;
1802    let (x61, x62) = fiat_p521_scalar_mulx_u64(x45, 0x3bb5c9b8899c47ae);
1803    let mut x63: u64 = 0;
1804    let mut x64: u64 = 0;
1805    let (x63, x64) = fiat_p521_scalar_mulx_u64(x45, 0xbb6fb71e91386409);
1806    let mut x65: u64 = 0;
1807    let mut x66: fiat_p521_scalar_u1 = 0;
1808    let (x65, x66) = fiat_p521_scalar_addcarryx_u64(0x0, x64, x61);
1809    let mut x67: u64 = 0;
1810    let mut x68: fiat_p521_scalar_u1 = 0;
1811    let (x67, x68) = fiat_p521_scalar_addcarryx_u64(x66, x62, x59);
1812    let mut x69: u64 = 0;
1813    let mut x70: fiat_p521_scalar_u1 = 0;
1814    let (x69, x70) = fiat_p521_scalar_addcarryx_u64(x68, x60, x57);
1815    let mut x71: u64 = 0;
1816    let mut x72: fiat_p521_scalar_u1 = 0;
1817    let (x71, x72) = fiat_p521_scalar_addcarryx_u64(x70, x58, x55);
1818    let mut x73: u64 = 0;
1819    let mut x74: fiat_p521_scalar_u1 = 0;
1820    let (x73, x74) = fiat_p521_scalar_addcarryx_u64(x72, x56, x53);
1821    let mut x75: u64 = 0;
1822    let mut x76: fiat_p521_scalar_u1 = 0;
1823    let (x75, x76) = fiat_p521_scalar_addcarryx_u64(x74, x54, x51);
1824    let mut x77: u64 = 0;
1825    let mut x78: fiat_p521_scalar_u1 = 0;
1826    let (x77, x78) = fiat_p521_scalar_addcarryx_u64(x76, x52, x49);
1827    let mut x79: u64 = 0;
1828    let mut x80: fiat_p521_scalar_u1 = 0;
1829    let (x79, x80) = fiat_p521_scalar_addcarryx_u64(x78, x50, x47);
1830    let x81: u64 = ((x80 as u64) + x48);
1831    let mut x82: u64 = 0;
1832    let mut x83: fiat_p521_scalar_u1 = 0;
1833    let (x82, x83) = fiat_p521_scalar_addcarryx_u64(0x0, x26, x63);
1834    let mut x84: u64 = 0;
1835    let mut x85: fiat_p521_scalar_u1 = 0;
1836    let (x84, x85) = fiat_p521_scalar_addcarryx_u64(x83, x28, x65);
1837    let mut x86: u64 = 0;
1838    let mut x87: fiat_p521_scalar_u1 = 0;
1839    let (x86, x87) = fiat_p521_scalar_addcarryx_u64(x85, x30, x67);
1840    let mut x88: u64 = 0;
1841    let mut x89: fiat_p521_scalar_u1 = 0;
1842    let (x88, x89) = fiat_p521_scalar_addcarryx_u64(x87, x32, x69);
1843    let mut x90: u64 = 0;
1844    let mut x91: fiat_p521_scalar_u1 = 0;
1845    let (x90, x91) = fiat_p521_scalar_addcarryx_u64(x89, x34, x71);
1846    let mut x92: u64 = 0;
1847    let mut x93: fiat_p521_scalar_u1 = 0;
1848    let (x92, x93) = fiat_p521_scalar_addcarryx_u64(x91, x36, x73);
1849    let mut x94: u64 = 0;
1850    let mut x95: fiat_p521_scalar_u1 = 0;
1851    let (x94, x95) = fiat_p521_scalar_addcarryx_u64(x93, x38, x75);
1852    let mut x96: u64 = 0;
1853    let mut x97: fiat_p521_scalar_u1 = 0;
1854    let (x96, x97) = fiat_p521_scalar_addcarryx_u64(x95, x40, x77);
1855    let mut x98: u64 = 0;
1856    let mut x99: fiat_p521_scalar_u1 = 0;
1857    let (x98, x99) = fiat_p521_scalar_addcarryx_u64(x97, x42, x79);
1858    let mut x100: u64 = 0;
1859    let mut x101: fiat_p521_scalar_u1 = 0;
1860    let (x100, x101) = fiat_p521_scalar_addcarryx_u64(x99, x44, x81);
1861    let mut x102: u64 = 0;
1862    let mut x103: u64 = 0;
1863    let (x102, x103) = fiat_p521_scalar_mulx_u64(x1, (arg1[8]));
1864    let mut x104: u64 = 0;
1865    let mut x105: u64 = 0;
1866    let (x104, x105) = fiat_p521_scalar_mulx_u64(x1, (arg1[7]));
1867    let mut x106: u64 = 0;
1868    let mut x107: u64 = 0;
1869    let (x106, x107) = fiat_p521_scalar_mulx_u64(x1, (arg1[6]));
1870    let mut x108: u64 = 0;
1871    let mut x109: u64 = 0;
1872    let (x108, x109) = fiat_p521_scalar_mulx_u64(x1, (arg1[5]));
1873    let mut x110: u64 = 0;
1874    let mut x111: u64 = 0;
1875    let (x110, x111) = fiat_p521_scalar_mulx_u64(x1, (arg1[4]));
1876    let mut x112: u64 = 0;
1877    let mut x113: u64 = 0;
1878    let (x112, x113) = fiat_p521_scalar_mulx_u64(x1, (arg1[3]));
1879    let mut x114: u64 = 0;
1880    let mut x115: u64 = 0;
1881    let (x114, x115) = fiat_p521_scalar_mulx_u64(x1, (arg1[2]));
1882    let mut x116: u64 = 0;
1883    let mut x117: u64 = 0;
1884    let (x116, x117) = fiat_p521_scalar_mulx_u64(x1, (arg1[1]));
1885    let mut x118: u64 = 0;
1886    let mut x119: u64 = 0;
1887    let (x118, x119) = fiat_p521_scalar_mulx_u64(x1, (arg1[0]));
1888    let mut x120: u64 = 0;
1889    let mut x121: fiat_p521_scalar_u1 = 0;
1890    let (x120, x121) = fiat_p521_scalar_addcarryx_u64(0x0, x119, x116);
1891    let mut x122: u64 = 0;
1892    let mut x123: fiat_p521_scalar_u1 = 0;
1893    let (x122, x123) = fiat_p521_scalar_addcarryx_u64(x121, x117, x114);
1894    let mut x124: u64 = 0;
1895    let mut x125: fiat_p521_scalar_u1 = 0;
1896    let (x124, x125) = fiat_p521_scalar_addcarryx_u64(x123, x115, x112);
1897    let mut x126: u64 = 0;
1898    let mut x127: fiat_p521_scalar_u1 = 0;
1899    let (x126, x127) = fiat_p521_scalar_addcarryx_u64(x125, x113, x110);
1900    let mut x128: u64 = 0;
1901    let mut x129: fiat_p521_scalar_u1 = 0;
1902    let (x128, x129) = fiat_p521_scalar_addcarryx_u64(x127, x111, x108);
1903    let mut x130: u64 = 0;
1904    let mut x131: fiat_p521_scalar_u1 = 0;
1905    let (x130, x131) = fiat_p521_scalar_addcarryx_u64(x129, x109, x106);
1906    let mut x132: u64 = 0;
1907    let mut x133: fiat_p521_scalar_u1 = 0;
1908    let (x132, x133) = fiat_p521_scalar_addcarryx_u64(x131, x107, x104);
1909    let mut x134: u64 = 0;
1910    let mut x135: fiat_p521_scalar_u1 = 0;
1911    let (x134, x135) = fiat_p521_scalar_addcarryx_u64(x133, x105, x102);
1912    let x136: u64 = ((x135 as u64) + x103);
1913    let mut x137: u64 = 0;
1914    let mut x138: fiat_p521_scalar_u1 = 0;
1915    let (x137, x138) = fiat_p521_scalar_addcarryx_u64(0x0, x84, x118);
1916    let mut x139: u64 = 0;
1917    let mut x140: fiat_p521_scalar_u1 = 0;
1918    let (x139, x140) = fiat_p521_scalar_addcarryx_u64(x138, x86, x120);
1919    let mut x141: u64 = 0;
1920    let mut x142: fiat_p521_scalar_u1 = 0;
1921    let (x141, x142) = fiat_p521_scalar_addcarryx_u64(x140, x88, x122);
1922    let mut x143: u64 = 0;
1923    let mut x144: fiat_p521_scalar_u1 = 0;
1924    let (x143, x144) = fiat_p521_scalar_addcarryx_u64(x142, x90, x124);
1925    let mut x145: u64 = 0;
1926    let mut x146: fiat_p521_scalar_u1 = 0;
1927    let (x145, x146) = fiat_p521_scalar_addcarryx_u64(x144, x92, x126);
1928    let mut x147: u64 = 0;
1929    let mut x148: fiat_p521_scalar_u1 = 0;
1930    let (x147, x148) = fiat_p521_scalar_addcarryx_u64(x146, x94, x128);
1931    let mut x149: u64 = 0;
1932    let mut x150: fiat_p521_scalar_u1 = 0;
1933    let (x149, x150) = fiat_p521_scalar_addcarryx_u64(x148, x96, x130);
1934    let mut x151: u64 = 0;
1935    let mut x152: fiat_p521_scalar_u1 = 0;
1936    let (x151, x152) = fiat_p521_scalar_addcarryx_u64(x150, x98, x132);
1937    let mut x153: u64 = 0;
1938    let mut x154: fiat_p521_scalar_u1 = 0;
1939    let (x153, x154) = fiat_p521_scalar_addcarryx_u64(x152, x100, x134);
1940    let mut x155: u64 = 0;
1941    let mut x156: fiat_p521_scalar_u1 = 0;
1942    let (x155, x156) = fiat_p521_scalar_addcarryx_u64(x154, (x101 as u64), x136);
1943    let mut x157: u64 = 0;
1944    let mut x158: u64 = 0;
1945    let (x157, x158) = fiat_p521_scalar_mulx_u64(x137, 0x1d2f5ccd79a995c7);
1946    let mut x159: u64 = 0;
1947    let mut x160: u64 = 0;
1948    let (x159, x160) = fiat_p521_scalar_mulx_u64(x157, 0x1ff);
1949    let mut x161: u64 = 0;
1950    let mut x162: u64 = 0;
1951    let (x161, x162) = fiat_p521_scalar_mulx_u64(x157, 0xffffffffffffffff);
1952    let mut x163: u64 = 0;
1953    let mut x164: u64 = 0;
1954    let (x163, x164) = fiat_p521_scalar_mulx_u64(x157, 0xffffffffffffffff);
1955    let mut x165: u64 = 0;
1956    let mut x166: u64 = 0;
1957    let (x165, x166) = fiat_p521_scalar_mulx_u64(x157, 0xffffffffffffffff);
1958    let mut x167: u64 = 0;
1959    let mut x168: u64 = 0;
1960    let (x167, x168) = fiat_p521_scalar_mulx_u64(x157, 0xfffffffffffffffa);
1961    let mut x169: u64 = 0;
1962    let mut x170: u64 = 0;
1963    let (x169, x170) = fiat_p521_scalar_mulx_u64(x157, 0x51868783bf2f966b);
1964    let mut x171: u64 = 0;
1965    let mut x172: u64 = 0;
1966    let (x171, x172) = fiat_p521_scalar_mulx_u64(x157, 0x7fcc0148f709a5d0);
1967    let mut x173: u64 = 0;
1968    let mut x174: u64 = 0;
1969    let (x173, x174) = fiat_p521_scalar_mulx_u64(x157, 0x3bb5c9b8899c47ae);
1970    let mut x175: u64 = 0;
1971    let mut x176: u64 = 0;
1972    let (x175, x176) = fiat_p521_scalar_mulx_u64(x157, 0xbb6fb71e91386409);
1973    let mut x177: u64 = 0;
1974    let mut x178: fiat_p521_scalar_u1 = 0;
1975    let (x177, x178) = fiat_p521_scalar_addcarryx_u64(0x0, x176, x173);
1976    let mut x179: u64 = 0;
1977    let mut x180: fiat_p521_scalar_u1 = 0;
1978    let (x179, x180) = fiat_p521_scalar_addcarryx_u64(x178, x174, x171);
1979    let mut x181: u64 = 0;
1980    let mut x182: fiat_p521_scalar_u1 = 0;
1981    let (x181, x182) = fiat_p521_scalar_addcarryx_u64(x180, x172, x169);
1982    let mut x183: u64 = 0;
1983    let mut x184: fiat_p521_scalar_u1 = 0;
1984    let (x183, x184) = fiat_p521_scalar_addcarryx_u64(x182, x170, x167);
1985    let mut x185: u64 = 0;
1986    let mut x186: fiat_p521_scalar_u1 = 0;
1987    let (x185, x186) = fiat_p521_scalar_addcarryx_u64(x184, x168, x165);
1988    let mut x187: u64 = 0;
1989    let mut x188: fiat_p521_scalar_u1 = 0;
1990    let (x187, x188) = fiat_p521_scalar_addcarryx_u64(x186, x166, x163);
1991    let mut x189: u64 = 0;
1992    let mut x190: fiat_p521_scalar_u1 = 0;
1993    let (x189, x190) = fiat_p521_scalar_addcarryx_u64(x188, x164, x161);
1994    let mut x191: u64 = 0;
1995    let mut x192: fiat_p521_scalar_u1 = 0;
1996    let (x191, x192) = fiat_p521_scalar_addcarryx_u64(x190, x162, x159);
1997    let x193: u64 = ((x192 as u64) + x160);
1998    let mut x194: u64 = 0;
1999    let mut x195: fiat_p521_scalar_u1 = 0;
2000    let (x194, x195) = fiat_p521_scalar_addcarryx_u64(0x0, x137, x175);
2001    let mut x196: u64 = 0;
2002    let mut x197: fiat_p521_scalar_u1 = 0;
2003    let (x196, x197) = fiat_p521_scalar_addcarryx_u64(x195, x139, x177);
2004    let mut x198: u64 = 0;
2005    let mut x199: fiat_p521_scalar_u1 = 0;
2006    let (x198, x199) = fiat_p521_scalar_addcarryx_u64(x197, x141, x179);
2007    let mut x200: u64 = 0;
2008    let mut x201: fiat_p521_scalar_u1 = 0;
2009    let (x200, x201) = fiat_p521_scalar_addcarryx_u64(x199, x143, x181);
2010    let mut x202: u64 = 0;
2011    let mut x203: fiat_p521_scalar_u1 = 0;
2012    let (x202, x203) = fiat_p521_scalar_addcarryx_u64(x201, x145, x183);
2013    let mut x204: u64 = 0;
2014    let mut x205: fiat_p521_scalar_u1 = 0;
2015    let (x204, x205) = fiat_p521_scalar_addcarryx_u64(x203, x147, x185);
2016    let mut x206: u64 = 0;
2017    let mut x207: fiat_p521_scalar_u1 = 0;
2018    let (x206, x207) = fiat_p521_scalar_addcarryx_u64(x205, x149, x187);
2019    let mut x208: u64 = 0;
2020    let mut x209: fiat_p521_scalar_u1 = 0;
2021    let (x208, x209) = fiat_p521_scalar_addcarryx_u64(x207, x151, x189);
2022    let mut x210: u64 = 0;
2023    let mut x211: fiat_p521_scalar_u1 = 0;
2024    let (x210, x211) = fiat_p521_scalar_addcarryx_u64(x209, x153, x191);
2025    let mut x212: u64 = 0;
2026    let mut x213: fiat_p521_scalar_u1 = 0;
2027    let (x212, x213) = fiat_p521_scalar_addcarryx_u64(x211, x155, x193);
2028    let x214: u64 = ((x213 as u64) + (x156 as u64));
2029    let mut x215: u64 = 0;
2030    let mut x216: u64 = 0;
2031    let (x215, x216) = fiat_p521_scalar_mulx_u64(x2, (arg1[8]));
2032    let mut x217: u64 = 0;
2033    let mut x218: u64 = 0;
2034    let (x217, x218) = fiat_p521_scalar_mulx_u64(x2, (arg1[7]));
2035    let mut x219: u64 = 0;
2036    let mut x220: u64 = 0;
2037    let (x219, x220) = fiat_p521_scalar_mulx_u64(x2, (arg1[6]));
2038    let mut x221: u64 = 0;
2039    let mut x222: u64 = 0;
2040    let (x221, x222) = fiat_p521_scalar_mulx_u64(x2, (arg1[5]));
2041    let mut x223: u64 = 0;
2042    let mut x224: u64 = 0;
2043    let (x223, x224) = fiat_p521_scalar_mulx_u64(x2, (arg1[4]));
2044    let mut x225: u64 = 0;
2045    let mut x226: u64 = 0;
2046    let (x225, x226) = fiat_p521_scalar_mulx_u64(x2, (arg1[3]));
2047    let mut x227: u64 = 0;
2048    let mut x228: u64 = 0;
2049    let (x227, x228) = fiat_p521_scalar_mulx_u64(x2, (arg1[2]));
2050    let mut x229: u64 = 0;
2051    let mut x230: u64 = 0;
2052    let (x229, x230) = fiat_p521_scalar_mulx_u64(x2, (arg1[1]));
2053    let mut x231: u64 = 0;
2054    let mut x232: u64 = 0;
2055    let (x231, x232) = fiat_p521_scalar_mulx_u64(x2, (arg1[0]));
2056    let mut x233: u64 = 0;
2057    let mut x234: fiat_p521_scalar_u1 = 0;
2058    let (x233, x234) = fiat_p521_scalar_addcarryx_u64(0x0, x232, x229);
2059    let mut x235: u64 = 0;
2060    let mut x236: fiat_p521_scalar_u1 = 0;
2061    let (x235, x236) = fiat_p521_scalar_addcarryx_u64(x234, x230, x227);
2062    let mut x237: u64 = 0;
2063    let mut x238: fiat_p521_scalar_u1 = 0;
2064    let (x237, x238) = fiat_p521_scalar_addcarryx_u64(x236, x228, x225);
2065    let mut x239: u64 = 0;
2066    let mut x240: fiat_p521_scalar_u1 = 0;
2067    let (x239, x240) = fiat_p521_scalar_addcarryx_u64(x238, x226, x223);
2068    let mut x241: u64 = 0;
2069    let mut x242: fiat_p521_scalar_u1 = 0;
2070    let (x241, x242) = fiat_p521_scalar_addcarryx_u64(x240, x224, x221);
2071    let mut x243: u64 = 0;
2072    let mut x244: fiat_p521_scalar_u1 = 0;
2073    let (x243, x244) = fiat_p521_scalar_addcarryx_u64(x242, x222, x219);
2074    let mut x245: u64 = 0;
2075    let mut x246: fiat_p521_scalar_u1 = 0;
2076    let (x245, x246) = fiat_p521_scalar_addcarryx_u64(x244, x220, x217);
2077    let mut x247: u64 = 0;
2078    let mut x248: fiat_p521_scalar_u1 = 0;
2079    let (x247, x248) = fiat_p521_scalar_addcarryx_u64(x246, x218, x215);
2080    let x249: u64 = ((x248 as u64) + x216);
2081    let mut x250: u64 = 0;
2082    let mut x251: fiat_p521_scalar_u1 = 0;
2083    let (x250, x251) = fiat_p521_scalar_addcarryx_u64(0x0, x196, x231);
2084    let mut x252: u64 = 0;
2085    let mut x253: fiat_p521_scalar_u1 = 0;
2086    let (x252, x253) = fiat_p521_scalar_addcarryx_u64(x251, x198, x233);
2087    let mut x254: u64 = 0;
2088    let mut x255: fiat_p521_scalar_u1 = 0;
2089    let (x254, x255) = fiat_p521_scalar_addcarryx_u64(x253, x200, x235);
2090    let mut x256: u64 = 0;
2091    let mut x257: fiat_p521_scalar_u1 = 0;
2092    let (x256, x257) = fiat_p521_scalar_addcarryx_u64(x255, x202, x237);
2093    let mut x258: u64 = 0;
2094    let mut x259: fiat_p521_scalar_u1 = 0;
2095    let (x258, x259) = fiat_p521_scalar_addcarryx_u64(x257, x204, x239);
2096    let mut x260: u64 = 0;
2097    let mut x261: fiat_p521_scalar_u1 = 0;
2098    let (x260, x261) = fiat_p521_scalar_addcarryx_u64(x259, x206, x241);
2099    let mut x262: u64 = 0;
2100    let mut x263: fiat_p521_scalar_u1 = 0;
2101    let (x262, x263) = fiat_p521_scalar_addcarryx_u64(x261, x208, x243);
2102    let mut x264: u64 = 0;
2103    let mut x265: fiat_p521_scalar_u1 = 0;
2104    let (x264, x265) = fiat_p521_scalar_addcarryx_u64(x263, x210, x245);
2105    let mut x266: u64 = 0;
2106    let mut x267: fiat_p521_scalar_u1 = 0;
2107    let (x266, x267) = fiat_p521_scalar_addcarryx_u64(x265, x212, x247);
2108    let mut x268: u64 = 0;
2109    let mut x269: fiat_p521_scalar_u1 = 0;
2110    let (x268, x269) = fiat_p521_scalar_addcarryx_u64(x267, x214, x249);
2111    let mut x270: u64 = 0;
2112    let mut x271: u64 = 0;
2113    let (x270, x271) = fiat_p521_scalar_mulx_u64(x250, 0x1d2f5ccd79a995c7);
2114    let mut x272: u64 = 0;
2115    let mut x273: u64 = 0;
2116    let (x272, x273) = fiat_p521_scalar_mulx_u64(x270, 0x1ff);
2117    let mut x274: u64 = 0;
2118    let mut x275: u64 = 0;
2119    let (x274, x275) = fiat_p521_scalar_mulx_u64(x270, 0xffffffffffffffff);
2120    let mut x276: u64 = 0;
2121    let mut x277: u64 = 0;
2122    let (x276, x277) = fiat_p521_scalar_mulx_u64(x270, 0xffffffffffffffff);
2123    let mut x278: u64 = 0;
2124    let mut x279: u64 = 0;
2125    let (x278, x279) = fiat_p521_scalar_mulx_u64(x270, 0xffffffffffffffff);
2126    let mut x280: u64 = 0;
2127    let mut x281: u64 = 0;
2128    let (x280, x281) = fiat_p521_scalar_mulx_u64(x270, 0xfffffffffffffffa);
2129    let mut x282: u64 = 0;
2130    let mut x283: u64 = 0;
2131    let (x282, x283) = fiat_p521_scalar_mulx_u64(x270, 0x51868783bf2f966b);
2132    let mut x284: u64 = 0;
2133    let mut x285: u64 = 0;
2134    let (x284, x285) = fiat_p521_scalar_mulx_u64(x270, 0x7fcc0148f709a5d0);
2135    let mut x286: u64 = 0;
2136    let mut x287: u64 = 0;
2137    let (x286, x287) = fiat_p521_scalar_mulx_u64(x270, 0x3bb5c9b8899c47ae);
2138    let mut x288: u64 = 0;
2139    let mut x289: u64 = 0;
2140    let (x288, x289) = fiat_p521_scalar_mulx_u64(x270, 0xbb6fb71e91386409);
2141    let mut x290: u64 = 0;
2142    let mut x291: fiat_p521_scalar_u1 = 0;
2143    let (x290, x291) = fiat_p521_scalar_addcarryx_u64(0x0, x289, x286);
2144    let mut x292: u64 = 0;
2145    let mut x293: fiat_p521_scalar_u1 = 0;
2146    let (x292, x293) = fiat_p521_scalar_addcarryx_u64(x291, x287, x284);
2147    let mut x294: u64 = 0;
2148    let mut x295: fiat_p521_scalar_u1 = 0;
2149    let (x294, x295) = fiat_p521_scalar_addcarryx_u64(x293, x285, x282);
2150    let mut x296: u64 = 0;
2151    let mut x297: fiat_p521_scalar_u1 = 0;
2152    let (x296, x297) = fiat_p521_scalar_addcarryx_u64(x295, x283, x280);
2153    let mut x298: u64 = 0;
2154    let mut x299: fiat_p521_scalar_u1 = 0;
2155    let (x298, x299) = fiat_p521_scalar_addcarryx_u64(x297, x281, x278);
2156    let mut x300: u64 = 0;
2157    let mut x301: fiat_p521_scalar_u1 = 0;
2158    let (x300, x301) = fiat_p521_scalar_addcarryx_u64(x299, x279, x276);
2159    let mut x302: u64 = 0;
2160    let mut x303: fiat_p521_scalar_u1 = 0;
2161    let (x302, x303) = fiat_p521_scalar_addcarryx_u64(x301, x277, x274);
2162    let mut x304: u64 = 0;
2163    let mut x305: fiat_p521_scalar_u1 = 0;
2164    let (x304, x305) = fiat_p521_scalar_addcarryx_u64(x303, x275, x272);
2165    let x306: u64 = ((x305 as u64) + x273);
2166    let mut x307: u64 = 0;
2167    let mut x308: fiat_p521_scalar_u1 = 0;
2168    let (x307, x308) = fiat_p521_scalar_addcarryx_u64(0x0, x250, x288);
2169    let mut x309: u64 = 0;
2170    let mut x310: fiat_p521_scalar_u1 = 0;
2171    let (x309, x310) = fiat_p521_scalar_addcarryx_u64(x308, x252, x290);
2172    let mut x311: u64 = 0;
2173    let mut x312: fiat_p521_scalar_u1 = 0;
2174    let (x311, x312) = fiat_p521_scalar_addcarryx_u64(x310, x254, x292);
2175    let mut x313: u64 = 0;
2176    let mut x314: fiat_p521_scalar_u1 = 0;
2177    let (x313, x314) = fiat_p521_scalar_addcarryx_u64(x312, x256, x294);
2178    let mut x315: u64 = 0;
2179    let mut x316: fiat_p521_scalar_u1 = 0;
2180    let (x315, x316) = fiat_p521_scalar_addcarryx_u64(x314, x258, x296);
2181    let mut x317: u64 = 0;
2182    let mut x318: fiat_p521_scalar_u1 = 0;
2183    let (x317, x318) = fiat_p521_scalar_addcarryx_u64(x316, x260, x298);
2184    let mut x319: u64 = 0;
2185    let mut x320: fiat_p521_scalar_u1 = 0;
2186    let (x319, x320) = fiat_p521_scalar_addcarryx_u64(x318, x262, x300);
2187    let mut x321: u64 = 0;
2188    let mut x322: fiat_p521_scalar_u1 = 0;
2189    let (x321, x322) = fiat_p521_scalar_addcarryx_u64(x320, x264, x302);
2190    let mut x323: u64 = 0;
2191    let mut x324: fiat_p521_scalar_u1 = 0;
2192    let (x323, x324) = fiat_p521_scalar_addcarryx_u64(x322, x266, x304);
2193    let mut x325: u64 = 0;
2194    let mut x326: fiat_p521_scalar_u1 = 0;
2195    let (x325, x326) = fiat_p521_scalar_addcarryx_u64(x324, x268, x306);
2196    let x327: u64 = ((x326 as u64) + (x269 as u64));
2197    let mut x328: u64 = 0;
2198    let mut x329: u64 = 0;
2199    let (x328, x329) = fiat_p521_scalar_mulx_u64(x3, (arg1[8]));
2200    let mut x330: u64 = 0;
2201    let mut x331: u64 = 0;
2202    let (x330, x331) = fiat_p521_scalar_mulx_u64(x3, (arg1[7]));
2203    let mut x332: u64 = 0;
2204    let mut x333: u64 = 0;
2205    let (x332, x333) = fiat_p521_scalar_mulx_u64(x3, (arg1[6]));
2206    let mut x334: u64 = 0;
2207    let mut x335: u64 = 0;
2208    let (x334, x335) = fiat_p521_scalar_mulx_u64(x3, (arg1[5]));
2209    let mut x336: u64 = 0;
2210    let mut x337: u64 = 0;
2211    let (x336, x337) = fiat_p521_scalar_mulx_u64(x3, (arg1[4]));
2212    let mut x338: u64 = 0;
2213    let mut x339: u64 = 0;
2214    let (x338, x339) = fiat_p521_scalar_mulx_u64(x3, (arg1[3]));
2215    let mut x340: u64 = 0;
2216    let mut x341: u64 = 0;
2217    let (x340, x341) = fiat_p521_scalar_mulx_u64(x3, (arg1[2]));
2218    let mut x342: u64 = 0;
2219    let mut x343: u64 = 0;
2220    let (x342, x343) = fiat_p521_scalar_mulx_u64(x3, (arg1[1]));
2221    let mut x344: u64 = 0;
2222    let mut x345: u64 = 0;
2223    let (x344, x345) = fiat_p521_scalar_mulx_u64(x3, (arg1[0]));
2224    let mut x346: u64 = 0;
2225    let mut x347: fiat_p521_scalar_u1 = 0;
2226    let (x346, x347) = fiat_p521_scalar_addcarryx_u64(0x0, x345, x342);
2227    let mut x348: u64 = 0;
2228    let mut x349: fiat_p521_scalar_u1 = 0;
2229    let (x348, x349) = fiat_p521_scalar_addcarryx_u64(x347, x343, x340);
2230    let mut x350: u64 = 0;
2231    let mut x351: fiat_p521_scalar_u1 = 0;
2232    let (x350, x351) = fiat_p521_scalar_addcarryx_u64(x349, x341, x338);
2233    let mut x352: u64 = 0;
2234    let mut x353: fiat_p521_scalar_u1 = 0;
2235    let (x352, x353) = fiat_p521_scalar_addcarryx_u64(x351, x339, x336);
2236    let mut x354: u64 = 0;
2237    let mut x355: fiat_p521_scalar_u1 = 0;
2238    let (x354, x355) = fiat_p521_scalar_addcarryx_u64(x353, x337, x334);
2239    let mut x356: u64 = 0;
2240    let mut x357: fiat_p521_scalar_u1 = 0;
2241    let (x356, x357) = fiat_p521_scalar_addcarryx_u64(x355, x335, x332);
2242    let mut x358: u64 = 0;
2243    let mut x359: fiat_p521_scalar_u1 = 0;
2244    let (x358, x359) = fiat_p521_scalar_addcarryx_u64(x357, x333, x330);
2245    let mut x360: u64 = 0;
2246    let mut x361: fiat_p521_scalar_u1 = 0;
2247    let (x360, x361) = fiat_p521_scalar_addcarryx_u64(x359, x331, x328);
2248    let x362: u64 = ((x361 as u64) + x329);
2249    let mut x363: u64 = 0;
2250    let mut x364: fiat_p521_scalar_u1 = 0;
2251    let (x363, x364) = fiat_p521_scalar_addcarryx_u64(0x0, x309, x344);
2252    let mut x365: u64 = 0;
2253    let mut x366: fiat_p521_scalar_u1 = 0;
2254    let (x365, x366) = fiat_p521_scalar_addcarryx_u64(x364, x311, x346);
2255    let mut x367: u64 = 0;
2256    let mut x368: fiat_p521_scalar_u1 = 0;
2257    let (x367, x368) = fiat_p521_scalar_addcarryx_u64(x366, x313, x348);
2258    let mut x369: u64 = 0;
2259    let mut x370: fiat_p521_scalar_u1 = 0;
2260    let (x369, x370) = fiat_p521_scalar_addcarryx_u64(x368, x315, x350);
2261    let mut x371: u64 = 0;
2262    let mut x372: fiat_p521_scalar_u1 = 0;
2263    let (x371, x372) = fiat_p521_scalar_addcarryx_u64(x370, x317, x352);
2264    let mut x373: u64 = 0;
2265    let mut x374: fiat_p521_scalar_u1 = 0;
2266    let (x373, x374) = fiat_p521_scalar_addcarryx_u64(x372, x319, x354);
2267    let mut x375: u64 = 0;
2268    let mut x376: fiat_p521_scalar_u1 = 0;
2269    let (x375, x376) = fiat_p521_scalar_addcarryx_u64(x374, x321, x356);
2270    let mut x377: u64 = 0;
2271    let mut x378: fiat_p521_scalar_u1 = 0;
2272    let (x377, x378) = fiat_p521_scalar_addcarryx_u64(x376, x323, x358);
2273    let mut x379: u64 = 0;
2274    let mut x380: fiat_p521_scalar_u1 = 0;
2275    let (x379, x380) = fiat_p521_scalar_addcarryx_u64(x378, x325, x360);
2276    let mut x381: u64 = 0;
2277    let mut x382: fiat_p521_scalar_u1 = 0;
2278    let (x381, x382) = fiat_p521_scalar_addcarryx_u64(x380, x327, x362);
2279    let mut x383: u64 = 0;
2280    let mut x384: u64 = 0;
2281    let (x383, x384) = fiat_p521_scalar_mulx_u64(x363, 0x1d2f5ccd79a995c7);
2282    let mut x385: u64 = 0;
2283    let mut x386: u64 = 0;
2284    let (x385, x386) = fiat_p521_scalar_mulx_u64(x383, 0x1ff);
2285    let mut x387: u64 = 0;
2286    let mut x388: u64 = 0;
2287    let (x387, x388) = fiat_p521_scalar_mulx_u64(x383, 0xffffffffffffffff);
2288    let mut x389: u64 = 0;
2289    let mut x390: u64 = 0;
2290    let (x389, x390) = fiat_p521_scalar_mulx_u64(x383, 0xffffffffffffffff);
2291    let mut x391: u64 = 0;
2292    let mut x392: u64 = 0;
2293    let (x391, x392) = fiat_p521_scalar_mulx_u64(x383, 0xffffffffffffffff);
2294    let mut x393: u64 = 0;
2295    let mut x394: u64 = 0;
2296    let (x393, x394) = fiat_p521_scalar_mulx_u64(x383, 0xfffffffffffffffa);
2297    let mut x395: u64 = 0;
2298    let mut x396: u64 = 0;
2299    let (x395, x396) = fiat_p521_scalar_mulx_u64(x383, 0x51868783bf2f966b);
2300    let mut x397: u64 = 0;
2301    let mut x398: u64 = 0;
2302    let (x397, x398) = fiat_p521_scalar_mulx_u64(x383, 0x7fcc0148f709a5d0);
2303    let mut x399: u64 = 0;
2304    let mut x400: u64 = 0;
2305    let (x399, x400) = fiat_p521_scalar_mulx_u64(x383, 0x3bb5c9b8899c47ae);
2306    let mut x401: u64 = 0;
2307    let mut x402: u64 = 0;
2308    let (x401, x402) = fiat_p521_scalar_mulx_u64(x383, 0xbb6fb71e91386409);
2309    let mut x403: u64 = 0;
2310    let mut x404: fiat_p521_scalar_u1 = 0;
2311    let (x403, x404) = fiat_p521_scalar_addcarryx_u64(0x0, x402, x399);
2312    let mut x405: u64 = 0;
2313    let mut x406: fiat_p521_scalar_u1 = 0;
2314    let (x405, x406) = fiat_p521_scalar_addcarryx_u64(x404, x400, x397);
2315    let mut x407: u64 = 0;
2316    let mut x408: fiat_p521_scalar_u1 = 0;
2317    let (x407, x408) = fiat_p521_scalar_addcarryx_u64(x406, x398, x395);
2318    let mut x409: u64 = 0;
2319    let mut x410: fiat_p521_scalar_u1 = 0;
2320    let (x409, x410) = fiat_p521_scalar_addcarryx_u64(x408, x396, x393);
2321    let mut x411: u64 = 0;
2322    let mut x412: fiat_p521_scalar_u1 = 0;
2323    let (x411, x412) = fiat_p521_scalar_addcarryx_u64(x410, x394, x391);
2324    let mut x413: u64 = 0;
2325    let mut x414: fiat_p521_scalar_u1 = 0;
2326    let (x413, x414) = fiat_p521_scalar_addcarryx_u64(x412, x392, x389);
2327    let mut x415: u64 = 0;
2328    let mut x416: fiat_p521_scalar_u1 = 0;
2329    let (x415, x416) = fiat_p521_scalar_addcarryx_u64(x414, x390, x387);
2330    let mut x417: u64 = 0;
2331    let mut x418: fiat_p521_scalar_u1 = 0;
2332    let (x417, x418) = fiat_p521_scalar_addcarryx_u64(x416, x388, x385);
2333    let x419: u64 = ((x418 as u64) + x386);
2334    let mut x420: u64 = 0;
2335    let mut x421: fiat_p521_scalar_u1 = 0;
2336    let (x420, x421) = fiat_p521_scalar_addcarryx_u64(0x0, x363, x401);
2337    let mut x422: u64 = 0;
2338    let mut x423: fiat_p521_scalar_u1 = 0;
2339    let (x422, x423) = fiat_p521_scalar_addcarryx_u64(x421, x365, x403);
2340    let mut x424: u64 = 0;
2341    let mut x425: fiat_p521_scalar_u1 = 0;
2342    let (x424, x425) = fiat_p521_scalar_addcarryx_u64(x423, x367, x405);
2343    let mut x426: u64 = 0;
2344    let mut x427: fiat_p521_scalar_u1 = 0;
2345    let (x426, x427) = fiat_p521_scalar_addcarryx_u64(x425, x369, x407);
2346    let mut x428: u64 = 0;
2347    let mut x429: fiat_p521_scalar_u1 = 0;
2348    let (x428, x429) = fiat_p521_scalar_addcarryx_u64(x427, x371, x409);
2349    let mut x430: u64 = 0;
2350    let mut x431: fiat_p521_scalar_u1 = 0;
2351    let (x430, x431) = fiat_p521_scalar_addcarryx_u64(x429, x373, x411);
2352    let mut x432: u64 = 0;
2353    let mut x433: fiat_p521_scalar_u1 = 0;
2354    let (x432, x433) = fiat_p521_scalar_addcarryx_u64(x431, x375, x413);
2355    let mut x434: u64 = 0;
2356    let mut x435: fiat_p521_scalar_u1 = 0;
2357    let (x434, x435) = fiat_p521_scalar_addcarryx_u64(x433, x377, x415);
2358    let mut x436: u64 = 0;
2359    let mut x437: fiat_p521_scalar_u1 = 0;
2360    let (x436, x437) = fiat_p521_scalar_addcarryx_u64(x435, x379, x417);
2361    let mut x438: u64 = 0;
2362    let mut x439: fiat_p521_scalar_u1 = 0;
2363    let (x438, x439) = fiat_p521_scalar_addcarryx_u64(x437, x381, x419);
2364    let x440: u64 = ((x439 as u64) + (x382 as u64));
2365    let mut x441: u64 = 0;
2366    let mut x442: u64 = 0;
2367    let (x441, x442) = fiat_p521_scalar_mulx_u64(x4, (arg1[8]));
2368    let mut x443: u64 = 0;
2369    let mut x444: u64 = 0;
2370    let (x443, x444) = fiat_p521_scalar_mulx_u64(x4, (arg1[7]));
2371    let mut x445: u64 = 0;
2372    let mut x446: u64 = 0;
2373    let (x445, x446) = fiat_p521_scalar_mulx_u64(x4, (arg1[6]));
2374    let mut x447: u64 = 0;
2375    let mut x448: u64 = 0;
2376    let (x447, x448) = fiat_p521_scalar_mulx_u64(x4, (arg1[5]));
2377    let mut x449: u64 = 0;
2378    let mut x450: u64 = 0;
2379    let (x449, x450) = fiat_p521_scalar_mulx_u64(x4, (arg1[4]));
2380    let mut x451: u64 = 0;
2381    let mut x452: u64 = 0;
2382    let (x451, x452) = fiat_p521_scalar_mulx_u64(x4, (arg1[3]));
2383    let mut x453: u64 = 0;
2384    let mut x454: u64 = 0;
2385    let (x453, x454) = fiat_p521_scalar_mulx_u64(x4, (arg1[2]));
2386    let mut x455: u64 = 0;
2387    let mut x456: u64 = 0;
2388    let (x455, x456) = fiat_p521_scalar_mulx_u64(x4, (arg1[1]));
2389    let mut x457: u64 = 0;
2390    let mut x458: u64 = 0;
2391    let (x457, x458) = fiat_p521_scalar_mulx_u64(x4, (arg1[0]));
2392    let mut x459: u64 = 0;
2393    let mut x460: fiat_p521_scalar_u1 = 0;
2394    let (x459, x460) = fiat_p521_scalar_addcarryx_u64(0x0, x458, x455);
2395    let mut x461: u64 = 0;
2396    let mut x462: fiat_p521_scalar_u1 = 0;
2397    let (x461, x462) = fiat_p521_scalar_addcarryx_u64(x460, x456, x453);
2398    let mut x463: u64 = 0;
2399    let mut x464: fiat_p521_scalar_u1 = 0;
2400    let (x463, x464) = fiat_p521_scalar_addcarryx_u64(x462, x454, x451);
2401    let mut x465: u64 = 0;
2402    let mut x466: fiat_p521_scalar_u1 = 0;
2403    let (x465, x466) = fiat_p521_scalar_addcarryx_u64(x464, x452, x449);
2404    let mut x467: u64 = 0;
2405    let mut x468: fiat_p521_scalar_u1 = 0;
2406    let (x467, x468) = fiat_p521_scalar_addcarryx_u64(x466, x450, x447);
2407    let mut x469: u64 = 0;
2408    let mut x470: fiat_p521_scalar_u1 = 0;
2409    let (x469, x470) = fiat_p521_scalar_addcarryx_u64(x468, x448, x445);
2410    let mut x471: u64 = 0;
2411    let mut x472: fiat_p521_scalar_u1 = 0;
2412    let (x471, x472) = fiat_p521_scalar_addcarryx_u64(x470, x446, x443);
2413    let mut x473: u64 = 0;
2414    let mut x474: fiat_p521_scalar_u1 = 0;
2415    let (x473, x474) = fiat_p521_scalar_addcarryx_u64(x472, x444, x441);
2416    let x475: u64 = ((x474 as u64) + x442);
2417    let mut x476: u64 = 0;
2418    let mut x477: fiat_p521_scalar_u1 = 0;
2419    let (x476, x477) = fiat_p521_scalar_addcarryx_u64(0x0, x422, x457);
2420    let mut x478: u64 = 0;
2421    let mut x479: fiat_p521_scalar_u1 = 0;
2422    let (x478, x479) = fiat_p521_scalar_addcarryx_u64(x477, x424, x459);
2423    let mut x480: u64 = 0;
2424    let mut x481: fiat_p521_scalar_u1 = 0;
2425    let (x480, x481) = fiat_p521_scalar_addcarryx_u64(x479, x426, x461);
2426    let mut x482: u64 = 0;
2427    let mut x483: fiat_p521_scalar_u1 = 0;
2428    let (x482, x483) = fiat_p521_scalar_addcarryx_u64(x481, x428, x463);
2429    let mut x484: u64 = 0;
2430    let mut x485: fiat_p521_scalar_u1 = 0;
2431    let (x484, x485) = fiat_p521_scalar_addcarryx_u64(x483, x430, x465);
2432    let mut x486: u64 = 0;
2433    let mut x487: fiat_p521_scalar_u1 = 0;
2434    let (x486, x487) = fiat_p521_scalar_addcarryx_u64(x485, x432, x467);
2435    let mut x488: u64 = 0;
2436    let mut x489: fiat_p521_scalar_u1 = 0;
2437    let (x488, x489) = fiat_p521_scalar_addcarryx_u64(x487, x434, x469);
2438    let mut x490: u64 = 0;
2439    let mut x491: fiat_p521_scalar_u1 = 0;
2440    let (x490, x491) = fiat_p521_scalar_addcarryx_u64(x489, x436, x471);
2441    let mut x492: u64 = 0;
2442    let mut x493: fiat_p521_scalar_u1 = 0;
2443    let (x492, x493) = fiat_p521_scalar_addcarryx_u64(x491, x438, x473);
2444    let mut x494: u64 = 0;
2445    let mut x495: fiat_p521_scalar_u1 = 0;
2446    let (x494, x495) = fiat_p521_scalar_addcarryx_u64(x493, x440, x475);
2447    let mut x496: u64 = 0;
2448    let mut x497: u64 = 0;
2449    let (x496, x497) = fiat_p521_scalar_mulx_u64(x476, 0x1d2f5ccd79a995c7);
2450    let mut x498: u64 = 0;
2451    let mut x499: u64 = 0;
2452    let (x498, x499) = fiat_p521_scalar_mulx_u64(x496, 0x1ff);
2453    let mut x500: u64 = 0;
2454    let mut x501: u64 = 0;
2455    let (x500, x501) = fiat_p521_scalar_mulx_u64(x496, 0xffffffffffffffff);
2456    let mut x502: u64 = 0;
2457    let mut x503: u64 = 0;
2458    let (x502, x503) = fiat_p521_scalar_mulx_u64(x496, 0xffffffffffffffff);
2459    let mut x504: u64 = 0;
2460    let mut x505: u64 = 0;
2461    let (x504, x505) = fiat_p521_scalar_mulx_u64(x496, 0xffffffffffffffff);
2462    let mut x506: u64 = 0;
2463    let mut x507: u64 = 0;
2464    let (x506, x507) = fiat_p521_scalar_mulx_u64(x496, 0xfffffffffffffffa);
2465    let mut x508: u64 = 0;
2466    let mut x509: u64 = 0;
2467    let (x508, x509) = fiat_p521_scalar_mulx_u64(x496, 0x51868783bf2f966b);
2468    let mut x510: u64 = 0;
2469    let mut x511: u64 = 0;
2470    let (x510, x511) = fiat_p521_scalar_mulx_u64(x496, 0x7fcc0148f709a5d0);
2471    let mut x512: u64 = 0;
2472    let mut x513: u64 = 0;
2473    let (x512, x513) = fiat_p521_scalar_mulx_u64(x496, 0x3bb5c9b8899c47ae);
2474    let mut x514: u64 = 0;
2475    let mut x515: u64 = 0;
2476    let (x514, x515) = fiat_p521_scalar_mulx_u64(x496, 0xbb6fb71e91386409);
2477    let mut x516: u64 = 0;
2478    let mut x517: fiat_p521_scalar_u1 = 0;
2479    let (x516, x517) = fiat_p521_scalar_addcarryx_u64(0x0, x515, x512);
2480    let mut x518: u64 = 0;
2481    let mut x519: fiat_p521_scalar_u1 = 0;
2482    let (x518, x519) = fiat_p521_scalar_addcarryx_u64(x517, x513, x510);
2483    let mut x520: u64 = 0;
2484    let mut x521: fiat_p521_scalar_u1 = 0;
2485    let (x520, x521) = fiat_p521_scalar_addcarryx_u64(x519, x511, x508);
2486    let mut x522: u64 = 0;
2487    let mut x523: fiat_p521_scalar_u1 = 0;
2488    let (x522, x523) = fiat_p521_scalar_addcarryx_u64(x521, x509, x506);
2489    let mut x524: u64 = 0;
2490    let mut x525: fiat_p521_scalar_u1 = 0;
2491    let (x524, x525) = fiat_p521_scalar_addcarryx_u64(x523, x507, x504);
2492    let mut x526: u64 = 0;
2493    let mut x527: fiat_p521_scalar_u1 = 0;
2494    let (x526, x527) = fiat_p521_scalar_addcarryx_u64(x525, x505, x502);
2495    let mut x528: u64 = 0;
2496    let mut x529: fiat_p521_scalar_u1 = 0;
2497    let (x528, x529) = fiat_p521_scalar_addcarryx_u64(x527, x503, x500);
2498    let mut x530: u64 = 0;
2499    let mut x531: fiat_p521_scalar_u1 = 0;
2500    let (x530, x531) = fiat_p521_scalar_addcarryx_u64(x529, x501, x498);
2501    let x532: u64 = ((x531 as u64) + x499);
2502    let mut x533: u64 = 0;
2503    let mut x534: fiat_p521_scalar_u1 = 0;
2504    let (x533, x534) = fiat_p521_scalar_addcarryx_u64(0x0, x476, x514);
2505    let mut x535: u64 = 0;
2506    let mut x536: fiat_p521_scalar_u1 = 0;
2507    let (x535, x536) = fiat_p521_scalar_addcarryx_u64(x534, x478, x516);
2508    let mut x537: u64 = 0;
2509    let mut x538: fiat_p521_scalar_u1 = 0;
2510    let (x537, x538) = fiat_p521_scalar_addcarryx_u64(x536, x480, x518);
2511    let mut x539: u64 = 0;
2512    let mut x540: fiat_p521_scalar_u1 = 0;
2513    let (x539, x540) = fiat_p521_scalar_addcarryx_u64(x538, x482, x520);
2514    let mut x541: u64 = 0;
2515    let mut x542: fiat_p521_scalar_u1 = 0;
2516    let (x541, x542) = fiat_p521_scalar_addcarryx_u64(x540, x484, x522);
2517    let mut x543: u64 = 0;
2518    let mut x544: fiat_p521_scalar_u1 = 0;
2519    let (x543, x544) = fiat_p521_scalar_addcarryx_u64(x542, x486, x524);
2520    let mut x545: u64 = 0;
2521    let mut x546: fiat_p521_scalar_u1 = 0;
2522    let (x545, x546) = fiat_p521_scalar_addcarryx_u64(x544, x488, x526);
2523    let mut x547: u64 = 0;
2524    let mut x548: fiat_p521_scalar_u1 = 0;
2525    let (x547, x548) = fiat_p521_scalar_addcarryx_u64(x546, x490, x528);
2526    let mut x549: u64 = 0;
2527    let mut x550: fiat_p521_scalar_u1 = 0;
2528    let (x549, x550) = fiat_p521_scalar_addcarryx_u64(x548, x492, x530);
2529    let mut x551: u64 = 0;
2530    let mut x552: fiat_p521_scalar_u1 = 0;
2531    let (x551, x552) = fiat_p521_scalar_addcarryx_u64(x550, x494, x532);
2532    let x553: u64 = ((x552 as u64) + (x495 as u64));
2533    let mut x554: u64 = 0;
2534    let mut x555: u64 = 0;
2535    let (x554, x555) = fiat_p521_scalar_mulx_u64(x5, (arg1[8]));
2536    let mut x556: u64 = 0;
2537    let mut x557: u64 = 0;
2538    let (x556, x557) = fiat_p521_scalar_mulx_u64(x5, (arg1[7]));
2539    let mut x558: u64 = 0;
2540    let mut x559: u64 = 0;
2541    let (x558, x559) = fiat_p521_scalar_mulx_u64(x5, (arg1[6]));
2542    let mut x560: u64 = 0;
2543    let mut x561: u64 = 0;
2544    let (x560, x561) = fiat_p521_scalar_mulx_u64(x5, (arg1[5]));
2545    let mut x562: u64 = 0;
2546    let mut x563: u64 = 0;
2547    let (x562, x563) = fiat_p521_scalar_mulx_u64(x5, (arg1[4]));
2548    let mut x564: u64 = 0;
2549    let mut x565: u64 = 0;
2550    let (x564, x565) = fiat_p521_scalar_mulx_u64(x5, (arg1[3]));
2551    let mut x566: u64 = 0;
2552    let mut x567: u64 = 0;
2553    let (x566, x567) = fiat_p521_scalar_mulx_u64(x5, (arg1[2]));
2554    let mut x568: u64 = 0;
2555    let mut x569: u64 = 0;
2556    let (x568, x569) = fiat_p521_scalar_mulx_u64(x5, (arg1[1]));
2557    let mut x570: u64 = 0;
2558    let mut x571: u64 = 0;
2559    let (x570, x571) = fiat_p521_scalar_mulx_u64(x5, (arg1[0]));
2560    let mut x572: u64 = 0;
2561    let mut x573: fiat_p521_scalar_u1 = 0;
2562    let (x572, x573) = fiat_p521_scalar_addcarryx_u64(0x0, x571, x568);
2563    let mut x574: u64 = 0;
2564    let mut x575: fiat_p521_scalar_u1 = 0;
2565    let (x574, x575) = fiat_p521_scalar_addcarryx_u64(x573, x569, x566);
2566    let mut x576: u64 = 0;
2567    let mut x577: fiat_p521_scalar_u1 = 0;
2568    let (x576, x577) = fiat_p521_scalar_addcarryx_u64(x575, x567, x564);
2569    let mut x578: u64 = 0;
2570    let mut x579: fiat_p521_scalar_u1 = 0;
2571    let (x578, x579) = fiat_p521_scalar_addcarryx_u64(x577, x565, x562);
2572    let mut x580: u64 = 0;
2573    let mut x581: fiat_p521_scalar_u1 = 0;
2574    let (x580, x581) = fiat_p521_scalar_addcarryx_u64(x579, x563, x560);
2575    let mut x582: u64 = 0;
2576    let mut x583: fiat_p521_scalar_u1 = 0;
2577    let (x582, x583) = fiat_p521_scalar_addcarryx_u64(x581, x561, x558);
2578    let mut x584: u64 = 0;
2579    let mut x585: fiat_p521_scalar_u1 = 0;
2580    let (x584, x585) = fiat_p521_scalar_addcarryx_u64(x583, x559, x556);
2581    let mut x586: u64 = 0;
2582    let mut x587: fiat_p521_scalar_u1 = 0;
2583    let (x586, x587) = fiat_p521_scalar_addcarryx_u64(x585, x557, x554);
2584    let x588: u64 = ((x587 as u64) + x555);
2585    let mut x589: u64 = 0;
2586    let mut x590: fiat_p521_scalar_u1 = 0;
2587    let (x589, x590) = fiat_p521_scalar_addcarryx_u64(0x0, x535, x570);
2588    let mut x591: u64 = 0;
2589    let mut x592: fiat_p521_scalar_u1 = 0;
2590    let (x591, x592) = fiat_p521_scalar_addcarryx_u64(x590, x537, x572);
2591    let mut x593: u64 = 0;
2592    let mut x594: fiat_p521_scalar_u1 = 0;
2593    let (x593, x594) = fiat_p521_scalar_addcarryx_u64(x592, x539, x574);
2594    let mut x595: u64 = 0;
2595    let mut x596: fiat_p521_scalar_u1 = 0;
2596    let (x595, x596) = fiat_p521_scalar_addcarryx_u64(x594, x541, x576);
2597    let mut x597: u64 = 0;
2598    let mut x598: fiat_p521_scalar_u1 = 0;
2599    let (x597, x598) = fiat_p521_scalar_addcarryx_u64(x596, x543, x578);
2600    let mut x599: u64 = 0;
2601    let mut x600: fiat_p521_scalar_u1 = 0;
2602    let (x599, x600) = fiat_p521_scalar_addcarryx_u64(x598, x545, x580);
2603    let mut x601: u64 = 0;
2604    let mut x602: fiat_p521_scalar_u1 = 0;
2605    let (x601, x602) = fiat_p521_scalar_addcarryx_u64(x600, x547, x582);
2606    let mut x603: u64 = 0;
2607    let mut x604: fiat_p521_scalar_u1 = 0;
2608    let (x603, x604) = fiat_p521_scalar_addcarryx_u64(x602, x549, x584);
2609    let mut x605: u64 = 0;
2610    let mut x606: fiat_p521_scalar_u1 = 0;
2611    let (x605, x606) = fiat_p521_scalar_addcarryx_u64(x604, x551, x586);
2612    let mut x607: u64 = 0;
2613    let mut x608: fiat_p521_scalar_u1 = 0;
2614    let (x607, x608) = fiat_p521_scalar_addcarryx_u64(x606, x553, x588);
2615    let mut x609: u64 = 0;
2616    let mut x610: u64 = 0;
2617    let (x609, x610) = fiat_p521_scalar_mulx_u64(x589, 0x1d2f5ccd79a995c7);
2618    let mut x611: u64 = 0;
2619    let mut x612: u64 = 0;
2620    let (x611, x612) = fiat_p521_scalar_mulx_u64(x609, 0x1ff);
2621    let mut x613: u64 = 0;
2622    let mut x614: u64 = 0;
2623    let (x613, x614) = fiat_p521_scalar_mulx_u64(x609, 0xffffffffffffffff);
2624    let mut x615: u64 = 0;
2625    let mut x616: u64 = 0;
2626    let (x615, x616) = fiat_p521_scalar_mulx_u64(x609, 0xffffffffffffffff);
2627    let mut x617: u64 = 0;
2628    let mut x618: u64 = 0;
2629    let (x617, x618) = fiat_p521_scalar_mulx_u64(x609, 0xffffffffffffffff);
2630    let mut x619: u64 = 0;
2631    let mut x620: u64 = 0;
2632    let (x619, x620) = fiat_p521_scalar_mulx_u64(x609, 0xfffffffffffffffa);
2633    let mut x621: u64 = 0;
2634    let mut x622: u64 = 0;
2635    let (x621, x622) = fiat_p521_scalar_mulx_u64(x609, 0x51868783bf2f966b);
2636    let mut x623: u64 = 0;
2637    let mut x624: u64 = 0;
2638    let (x623, x624) = fiat_p521_scalar_mulx_u64(x609, 0x7fcc0148f709a5d0);
2639    let mut x625: u64 = 0;
2640    let mut x626: u64 = 0;
2641    let (x625, x626) = fiat_p521_scalar_mulx_u64(x609, 0x3bb5c9b8899c47ae);
2642    let mut x627: u64 = 0;
2643    let mut x628: u64 = 0;
2644    let (x627, x628) = fiat_p521_scalar_mulx_u64(x609, 0xbb6fb71e91386409);
2645    let mut x629: u64 = 0;
2646    let mut x630: fiat_p521_scalar_u1 = 0;
2647    let (x629, x630) = fiat_p521_scalar_addcarryx_u64(0x0, x628, x625);
2648    let mut x631: u64 = 0;
2649    let mut x632: fiat_p521_scalar_u1 = 0;
2650    let (x631, x632) = fiat_p521_scalar_addcarryx_u64(x630, x626, x623);
2651    let mut x633: u64 = 0;
2652    let mut x634: fiat_p521_scalar_u1 = 0;
2653    let (x633, x634) = fiat_p521_scalar_addcarryx_u64(x632, x624, x621);
2654    let mut x635: u64 = 0;
2655    let mut x636: fiat_p521_scalar_u1 = 0;
2656    let (x635, x636) = fiat_p521_scalar_addcarryx_u64(x634, x622, x619);
2657    let mut x637: u64 = 0;
2658    let mut x638: fiat_p521_scalar_u1 = 0;
2659    let (x637, x638) = fiat_p521_scalar_addcarryx_u64(x636, x620, x617);
2660    let mut x639: u64 = 0;
2661    let mut x640: fiat_p521_scalar_u1 = 0;
2662    let (x639, x640) = fiat_p521_scalar_addcarryx_u64(x638, x618, x615);
2663    let mut x641: u64 = 0;
2664    let mut x642: fiat_p521_scalar_u1 = 0;
2665    let (x641, x642) = fiat_p521_scalar_addcarryx_u64(x640, x616, x613);
2666    let mut x643: u64 = 0;
2667    let mut x644: fiat_p521_scalar_u1 = 0;
2668    let (x643, x644) = fiat_p521_scalar_addcarryx_u64(x642, x614, x611);
2669    let x645: u64 = ((x644 as u64) + x612);
2670    let mut x646: u64 = 0;
2671    let mut x647: fiat_p521_scalar_u1 = 0;
2672    let (x646, x647) = fiat_p521_scalar_addcarryx_u64(0x0, x589, x627);
2673    let mut x648: u64 = 0;
2674    let mut x649: fiat_p521_scalar_u1 = 0;
2675    let (x648, x649) = fiat_p521_scalar_addcarryx_u64(x647, x591, x629);
2676    let mut x650: u64 = 0;
2677    let mut x651: fiat_p521_scalar_u1 = 0;
2678    let (x650, x651) = fiat_p521_scalar_addcarryx_u64(x649, x593, x631);
2679    let mut x652: u64 = 0;
2680    let mut x653: fiat_p521_scalar_u1 = 0;
2681    let (x652, x653) = fiat_p521_scalar_addcarryx_u64(x651, x595, x633);
2682    let mut x654: u64 = 0;
2683    let mut x655: fiat_p521_scalar_u1 = 0;
2684    let (x654, x655) = fiat_p521_scalar_addcarryx_u64(x653, x597, x635);
2685    let mut x656: u64 = 0;
2686    let mut x657: fiat_p521_scalar_u1 = 0;
2687    let (x656, x657) = fiat_p521_scalar_addcarryx_u64(x655, x599, x637);
2688    let mut x658: u64 = 0;
2689    let mut x659: fiat_p521_scalar_u1 = 0;
2690    let (x658, x659) = fiat_p521_scalar_addcarryx_u64(x657, x601, x639);
2691    let mut x660: u64 = 0;
2692    let mut x661: fiat_p521_scalar_u1 = 0;
2693    let (x660, x661) = fiat_p521_scalar_addcarryx_u64(x659, x603, x641);
2694    let mut x662: u64 = 0;
2695    let mut x663: fiat_p521_scalar_u1 = 0;
2696    let (x662, x663) = fiat_p521_scalar_addcarryx_u64(x661, x605, x643);
2697    let mut x664: u64 = 0;
2698    let mut x665: fiat_p521_scalar_u1 = 0;
2699    let (x664, x665) = fiat_p521_scalar_addcarryx_u64(x663, x607, x645);
2700    let x666: u64 = ((x665 as u64) + (x608 as u64));
2701    let mut x667: u64 = 0;
2702    let mut x668: u64 = 0;
2703    let (x667, x668) = fiat_p521_scalar_mulx_u64(x6, (arg1[8]));
2704    let mut x669: u64 = 0;
2705    let mut x670: u64 = 0;
2706    let (x669, x670) = fiat_p521_scalar_mulx_u64(x6, (arg1[7]));
2707    let mut x671: u64 = 0;
2708    let mut x672: u64 = 0;
2709    let (x671, x672) = fiat_p521_scalar_mulx_u64(x6, (arg1[6]));
2710    let mut x673: u64 = 0;
2711    let mut x674: u64 = 0;
2712    let (x673, x674) = fiat_p521_scalar_mulx_u64(x6, (arg1[5]));
2713    let mut x675: u64 = 0;
2714    let mut x676: u64 = 0;
2715    let (x675, x676) = fiat_p521_scalar_mulx_u64(x6, (arg1[4]));
2716    let mut x677: u64 = 0;
2717    let mut x678: u64 = 0;
2718    let (x677, x678) = fiat_p521_scalar_mulx_u64(x6, (arg1[3]));
2719    let mut x679: u64 = 0;
2720    let mut x680: u64 = 0;
2721    let (x679, x680) = fiat_p521_scalar_mulx_u64(x6, (arg1[2]));
2722    let mut x681: u64 = 0;
2723    let mut x682: u64 = 0;
2724    let (x681, x682) = fiat_p521_scalar_mulx_u64(x6, (arg1[1]));
2725    let mut x683: u64 = 0;
2726    let mut x684: u64 = 0;
2727    let (x683, x684) = fiat_p521_scalar_mulx_u64(x6, (arg1[0]));
2728    let mut x685: u64 = 0;
2729    let mut x686: fiat_p521_scalar_u1 = 0;
2730    let (x685, x686) = fiat_p521_scalar_addcarryx_u64(0x0, x684, x681);
2731    let mut x687: u64 = 0;
2732    let mut x688: fiat_p521_scalar_u1 = 0;
2733    let (x687, x688) = fiat_p521_scalar_addcarryx_u64(x686, x682, x679);
2734    let mut x689: u64 = 0;
2735    let mut x690: fiat_p521_scalar_u1 = 0;
2736    let (x689, x690) = fiat_p521_scalar_addcarryx_u64(x688, x680, x677);
2737    let mut x691: u64 = 0;
2738    let mut x692: fiat_p521_scalar_u1 = 0;
2739    let (x691, x692) = fiat_p521_scalar_addcarryx_u64(x690, x678, x675);
2740    let mut x693: u64 = 0;
2741    let mut x694: fiat_p521_scalar_u1 = 0;
2742    let (x693, x694) = fiat_p521_scalar_addcarryx_u64(x692, x676, x673);
2743    let mut x695: u64 = 0;
2744    let mut x696: fiat_p521_scalar_u1 = 0;
2745    let (x695, x696) = fiat_p521_scalar_addcarryx_u64(x694, x674, x671);
2746    let mut x697: u64 = 0;
2747    let mut x698: fiat_p521_scalar_u1 = 0;
2748    let (x697, x698) = fiat_p521_scalar_addcarryx_u64(x696, x672, x669);
2749    let mut x699: u64 = 0;
2750    let mut x700: fiat_p521_scalar_u1 = 0;
2751    let (x699, x700) = fiat_p521_scalar_addcarryx_u64(x698, x670, x667);
2752    let x701: u64 = ((x700 as u64) + x668);
2753    let mut x702: u64 = 0;
2754    let mut x703: fiat_p521_scalar_u1 = 0;
2755    let (x702, x703) = fiat_p521_scalar_addcarryx_u64(0x0, x648, x683);
2756    let mut x704: u64 = 0;
2757    let mut x705: fiat_p521_scalar_u1 = 0;
2758    let (x704, x705) = fiat_p521_scalar_addcarryx_u64(x703, x650, x685);
2759    let mut x706: u64 = 0;
2760    let mut x707: fiat_p521_scalar_u1 = 0;
2761    let (x706, x707) = fiat_p521_scalar_addcarryx_u64(x705, x652, x687);
2762    let mut x708: u64 = 0;
2763    let mut x709: fiat_p521_scalar_u1 = 0;
2764    let (x708, x709) = fiat_p521_scalar_addcarryx_u64(x707, x654, x689);
2765    let mut x710: u64 = 0;
2766    let mut x711: fiat_p521_scalar_u1 = 0;
2767    let (x710, x711) = fiat_p521_scalar_addcarryx_u64(x709, x656, x691);
2768    let mut x712: u64 = 0;
2769    let mut x713: fiat_p521_scalar_u1 = 0;
2770    let (x712, x713) = fiat_p521_scalar_addcarryx_u64(x711, x658, x693);
2771    let mut x714: u64 = 0;
2772    let mut x715: fiat_p521_scalar_u1 = 0;
2773    let (x714, x715) = fiat_p521_scalar_addcarryx_u64(x713, x660, x695);
2774    let mut x716: u64 = 0;
2775    let mut x717: fiat_p521_scalar_u1 = 0;
2776    let (x716, x717) = fiat_p521_scalar_addcarryx_u64(x715, x662, x697);
2777    let mut x718: u64 = 0;
2778    let mut x719: fiat_p521_scalar_u1 = 0;
2779    let (x718, x719) = fiat_p521_scalar_addcarryx_u64(x717, x664, x699);
2780    let mut x720: u64 = 0;
2781    let mut x721: fiat_p521_scalar_u1 = 0;
2782    let (x720, x721) = fiat_p521_scalar_addcarryx_u64(x719, x666, x701);
2783    let mut x722: u64 = 0;
2784    let mut x723: u64 = 0;
2785    let (x722, x723) = fiat_p521_scalar_mulx_u64(x702, 0x1d2f5ccd79a995c7);
2786    let mut x724: u64 = 0;
2787    let mut x725: u64 = 0;
2788    let (x724, x725) = fiat_p521_scalar_mulx_u64(x722, 0x1ff);
2789    let mut x726: u64 = 0;
2790    let mut x727: u64 = 0;
2791    let (x726, x727) = fiat_p521_scalar_mulx_u64(x722, 0xffffffffffffffff);
2792    let mut x728: u64 = 0;
2793    let mut x729: u64 = 0;
2794    let (x728, x729) = fiat_p521_scalar_mulx_u64(x722, 0xffffffffffffffff);
2795    let mut x730: u64 = 0;
2796    let mut x731: u64 = 0;
2797    let (x730, x731) = fiat_p521_scalar_mulx_u64(x722, 0xffffffffffffffff);
2798    let mut x732: u64 = 0;
2799    let mut x733: u64 = 0;
2800    let (x732, x733) = fiat_p521_scalar_mulx_u64(x722, 0xfffffffffffffffa);
2801    let mut x734: u64 = 0;
2802    let mut x735: u64 = 0;
2803    let (x734, x735) = fiat_p521_scalar_mulx_u64(x722, 0x51868783bf2f966b);
2804    let mut x736: u64 = 0;
2805    let mut x737: u64 = 0;
2806    let (x736, x737) = fiat_p521_scalar_mulx_u64(x722, 0x7fcc0148f709a5d0);
2807    let mut x738: u64 = 0;
2808    let mut x739: u64 = 0;
2809    let (x738, x739) = fiat_p521_scalar_mulx_u64(x722, 0x3bb5c9b8899c47ae);
2810    let mut x740: u64 = 0;
2811    let mut x741: u64 = 0;
2812    let (x740, x741) = fiat_p521_scalar_mulx_u64(x722, 0xbb6fb71e91386409);
2813    let mut x742: u64 = 0;
2814    let mut x743: fiat_p521_scalar_u1 = 0;
2815    let (x742, x743) = fiat_p521_scalar_addcarryx_u64(0x0, x741, x738);
2816    let mut x744: u64 = 0;
2817    let mut x745: fiat_p521_scalar_u1 = 0;
2818    let (x744, x745) = fiat_p521_scalar_addcarryx_u64(x743, x739, x736);
2819    let mut x746: u64 = 0;
2820    let mut x747: fiat_p521_scalar_u1 = 0;
2821    let (x746, x747) = fiat_p521_scalar_addcarryx_u64(x745, x737, x734);
2822    let mut x748: u64 = 0;
2823    let mut x749: fiat_p521_scalar_u1 = 0;
2824    let (x748, x749) = fiat_p521_scalar_addcarryx_u64(x747, x735, x732);
2825    let mut x750: u64 = 0;
2826    let mut x751: fiat_p521_scalar_u1 = 0;
2827    let (x750, x751) = fiat_p521_scalar_addcarryx_u64(x749, x733, x730);
2828    let mut x752: u64 = 0;
2829    let mut x753: fiat_p521_scalar_u1 = 0;
2830    let (x752, x753) = fiat_p521_scalar_addcarryx_u64(x751, x731, x728);
2831    let mut x754: u64 = 0;
2832    let mut x755: fiat_p521_scalar_u1 = 0;
2833    let (x754, x755) = fiat_p521_scalar_addcarryx_u64(x753, x729, x726);
2834    let mut x756: u64 = 0;
2835    let mut x757: fiat_p521_scalar_u1 = 0;
2836    let (x756, x757) = fiat_p521_scalar_addcarryx_u64(x755, x727, x724);
2837    let x758: u64 = ((x757 as u64) + x725);
2838    let mut x759: u64 = 0;
2839    let mut x760: fiat_p521_scalar_u1 = 0;
2840    let (x759, x760) = fiat_p521_scalar_addcarryx_u64(0x0, x702, x740);
2841    let mut x761: u64 = 0;
2842    let mut x762: fiat_p521_scalar_u1 = 0;
2843    let (x761, x762) = fiat_p521_scalar_addcarryx_u64(x760, x704, x742);
2844    let mut x763: u64 = 0;
2845    let mut x764: fiat_p521_scalar_u1 = 0;
2846    let (x763, x764) = fiat_p521_scalar_addcarryx_u64(x762, x706, x744);
2847    let mut x765: u64 = 0;
2848    let mut x766: fiat_p521_scalar_u1 = 0;
2849    let (x765, x766) = fiat_p521_scalar_addcarryx_u64(x764, x708, x746);
2850    let mut x767: u64 = 0;
2851    let mut x768: fiat_p521_scalar_u1 = 0;
2852    let (x767, x768) = fiat_p521_scalar_addcarryx_u64(x766, x710, x748);
2853    let mut x769: u64 = 0;
2854    let mut x770: fiat_p521_scalar_u1 = 0;
2855    let (x769, x770) = fiat_p521_scalar_addcarryx_u64(x768, x712, x750);
2856    let mut x771: u64 = 0;
2857    let mut x772: fiat_p521_scalar_u1 = 0;
2858    let (x771, x772) = fiat_p521_scalar_addcarryx_u64(x770, x714, x752);
2859    let mut x773: u64 = 0;
2860    let mut x774: fiat_p521_scalar_u1 = 0;
2861    let (x773, x774) = fiat_p521_scalar_addcarryx_u64(x772, x716, x754);
2862    let mut x775: u64 = 0;
2863    let mut x776: fiat_p521_scalar_u1 = 0;
2864    let (x775, x776) = fiat_p521_scalar_addcarryx_u64(x774, x718, x756);
2865    let mut x777: u64 = 0;
2866    let mut x778: fiat_p521_scalar_u1 = 0;
2867    let (x777, x778) = fiat_p521_scalar_addcarryx_u64(x776, x720, x758);
2868    let x779: u64 = ((x778 as u64) + (x721 as u64));
2869    let mut x780: u64 = 0;
2870    let mut x781: u64 = 0;
2871    let (x780, x781) = fiat_p521_scalar_mulx_u64(x7, (arg1[8]));
2872    let mut x782: u64 = 0;
2873    let mut x783: u64 = 0;
2874    let (x782, x783) = fiat_p521_scalar_mulx_u64(x7, (arg1[7]));
2875    let mut x784: u64 = 0;
2876    let mut x785: u64 = 0;
2877    let (x784, x785) = fiat_p521_scalar_mulx_u64(x7, (arg1[6]));
2878    let mut x786: u64 = 0;
2879    let mut x787: u64 = 0;
2880    let (x786, x787) = fiat_p521_scalar_mulx_u64(x7, (arg1[5]));
2881    let mut x788: u64 = 0;
2882    let mut x789: u64 = 0;
2883    let (x788, x789) = fiat_p521_scalar_mulx_u64(x7, (arg1[4]));
2884    let mut x790: u64 = 0;
2885    let mut x791: u64 = 0;
2886    let (x790, x791) = fiat_p521_scalar_mulx_u64(x7, (arg1[3]));
2887    let mut x792: u64 = 0;
2888    let mut x793: u64 = 0;
2889    let (x792, x793) = fiat_p521_scalar_mulx_u64(x7, (arg1[2]));
2890    let mut x794: u64 = 0;
2891    let mut x795: u64 = 0;
2892    let (x794, x795) = fiat_p521_scalar_mulx_u64(x7, (arg1[1]));
2893    let mut x796: u64 = 0;
2894    let mut x797: u64 = 0;
2895    let (x796, x797) = fiat_p521_scalar_mulx_u64(x7, (arg1[0]));
2896    let mut x798: u64 = 0;
2897    let mut x799: fiat_p521_scalar_u1 = 0;
2898    let (x798, x799) = fiat_p521_scalar_addcarryx_u64(0x0, x797, x794);
2899    let mut x800: u64 = 0;
2900    let mut x801: fiat_p521_scalar_u1 = 0;
2901    let (x800, x801) = fiat_p521_scalar_addcarryx_u64(x799, x795, x792);
2902    let mut x802: u64 = 0;
2903    let mut x803: fiat_p521_scalar_u1 = 0;
2904    let (x802, x803) = fiat_p521_scalar_addcarryx_u64(x801, x793, x790);
2905    let mut x804: u64 = 0;
2906    let mut x805: fiat_p521_scalar_u1 = 0;
2907    let (x804, x805) = fiat_p521_scalar_addcarryx_u64(x803, x791, x788);
2908    let mut x806: u64 = 0;
2909    let mut x807: fiat_p521_scalar_u1 = 0;
2910    let (x806, x807) = fiat_p521_scalar_addcarryx_u64(x805, x789, x786);
2911    let mut x808: u64 = 0;
2912    let mut x809: fiat_p521_scalar_u1 = 0;
2913    let (x808, x809) = fiat_p521_scalar_addcarryx_u64(x807, x787, x784);
2914    let mut x810: u64 = 0;
2915    let mut x811: fiat_p521_scalar_u1 = 0;
2916    let (x810, x811) = fiat_p521_scalar_addcarryx_u64(x809, x785, x782);
2917    let mut x812: u64 = 0;
2918    let mut x813: fiat_p521_scalar_u1 = 0;
2919    let (x812, x813) = fiat_p521_scalar_addcarryx_u64(x811, x783, x780);
2920    let x814: u64 = ((x813 as u64) + x781);
2921    let mut x815: u64 = 0;
2922    let mut x816: fiat_p521_scalar_u1 = 0;
2923    let (x815, x816) = fiat_p521_scalar_addcarryx_u64(0x0, x761, x796);
2924    let mut x817: u64 = 0;
2925    let mut x818: fiat_p521_scalar_u1 = 0;
2926    let (x817, x818) = fiat_p521_scalar_addcarryx_u64(x816, x763, x798);
2927    let mut x819: u64 = 0;
2928    let mut x820: fiat_p521_scalar_u1 = 0;
2929    let (x819, x820) = fiat_p521_scalar_addcarryx_u64(x818, x765, x800);
2930    let mut x821: u64 = 0;
2931    let mut x822: fiat_p521_scalar_u1 = 0;
2932    let (x821, x822) = fiat_p521_scalar_addcarryx_u64(x820, x767, x802);
2933    let mut x823: u64 = 0;
2934    let mut x824: fiat_p521_scalar_u1 = 0;
2935    let (x823, x824) = fiat_p521_scalar_addcarryx_u64(x822, x769, x804);
2936    let mut x825: u64 = 0;
2937    let mut x826: fiat_p521_scalar_u1 = 0;
2938    let (x825, x826) = fiat_p521_scalar_addcarryx_u64(x824, x771, x806);
2939    let mut x827: u64 = 0;
2940    let mut x828: fiat_p521_scalar_u1 = 0;
2941    let (x827, x828) = fiat_p521_scalar_addcarryx_u64(x826, x773, x808);
2942    let mut x829: u64 = 0;
2943    let mut x830: fiat_p521_scalar_u1 = 0;
2944    let (x829, x830) = fiat_p521_scalar_addcarryx_u64(x828, x775, x810);
2945    let mut x831: u64 = 0;
2946    let mut x832: fiat_p521_scalar_u1 = 0;
2947    let (x831, x832) = fiat_p521_scalar_addcarryx_u64(x830, x777, x812);
2948    let mut x833: u64 = 0;
2949    let mut x834: fiat_p521_scalar_u1 = 0;
2950    let (x833, x834) = fiat_p521_scalar_addcarryx_u64(x832, x779, x814);
2951    let mut x835: u64 = 0;
2952    let mut x836: u64 = 0;
2953    let (x835, x836) = fiat_p521_scalar_mulx_u64(x815, 0x1d2f5ccd79a995c7);
2954    let mut x837: u64 = 0;
2955    let mut x838: u64 = 0;
2956    let (x837, x838) = fiat_p521_scalar_mulx_u64(x835, 0x1ff);
2957    let mut x839: u64 = 0;
2958    let mut x840: u64 = 0;
2959    let (x839, x840) = fiat_p521_scalar_mulx_u64(x835, 0xffffffffffffffff);
2960    let mut x841: u64 = 0;
2961    let mut x842: u64 = 0;
2962    let (x841, x842) = fiat_p521_scalar_mulx_u64(x835, 0xffffffffffffffff);
2963    let mut x843: u64 = 0;
2964    let mut x844: u64 = 0;
2965    let (x843, x844) = fiat_p521_scalar_mulx_u64(x835, 0xffffffffffffffff);
2966    let mut x845: u64 = 0;
2967    let mut x846: u64 = 0;
2968    let (x845, x846) = fiat_p521_scalar_mulx_u64(x835, 0xfffffffffffffffa);
2969    let mut x847: u64 = 0;
2970    let mut x848: u64 = 0;
2971    let (x847, x848) = fiat_p521_scalar_mulx_u64(x835, 0x51868783bf2f966b);
2972    let mut x849: u64 = 0;
2973    let mut x850: u64 = 0;
2974    let (x849, x850) = fiat_p521_scalar_mulx_u64(x835, 0x7fcc0148f709a5d0);
2975    let mut x851: u64 = 0;
2976    let mut x852: u64 = 0;
2977    let (x851, x852) = fiat_p521_scalar_mulx_u64(x835, 0x3bb5c9b8899c47ae);
2978    let mut x853: u64 = 0;
2979    let mut x854: u64 = 0;
2980    let (x853, x854) = fiat_p521_scalar_mulx_u64(x835, 0xbb6fb71e91386409);
2981    let mut x855: u64 = 0;
2982    let mut x856: fiat_p521_scalar_u1 = 0;
2983    let (x855, x856) = fiat_p521_scalar_addcarryx_u64(0x0, x854, x851);
2984    let mut x857: u64 = 0;
2985    let mut x858: fiat_p521_scalar_u1 = 0;
2986    let (x857, x858) = fiat_p521_scalar_addcarryx_u64(x856, x852, x849);
2987    let mut x859: u64 = 0;
2988    let mut x860: fiat_p521_scalar_u1 = 0;
2989    let (x859, x860) = fiat_p521_scalar_addcarryx_u64(x858, x850, x847);
2990    let mut x861: u64 = 0;
2991    let mut x862: fiat_p521_scalar_u1 = 0;
2992    let (x861, x862) = fiat_p521_scalar_addcarryx_u64(x860, x848, x845);
2993    let mut x863: u64 = 0;
2994    let mut x864: fiat_p521_scalar_u1 = 0;
2995    let (x863, x864) = fiat_p521_scalar_addcarryx_u64(x862, x846, x843);
2996    let mut x865: u64 = 0;
2997    let mut x866: fiat_p521_scalar_u1 = 0;
2998    let (x865, x866) = fiat_p521_scalar_addcarryx_u64(x864, x844, x841);
2999    let mut x867: u64 = 0;
3000    let mut x868: fiat_p521_scalar_u1 = 0;
3001    let (x867, x868) = fiat_p521_scalar_addcarryx_u64(x866, x842, x839);
3002    let mut x869: u64 = 0;
3003    let mut x870: fiat_p521_scalar_u1 = 0;
3004    let (x869, x870) = fiat_p521_scalar_addcarryx_u64(x868, x840, x837);
3005    let x871: u64 = ((x870 as u64) + x838);
3006    let mut x872: u64 = 0;
3007    let mut x873: fiat_p521_scalar_u1 = 0;
3008    let (x872, x873) = fiat_p521_scalar_addcarryx_u64(0x0, x815, x853);
3009    let mut x874: u64 = 0;
3010    let mut x875: fiat_p521_scalar_u1 = 0;
3011    let (x874, x875) = fiat_p521_scalar_addcarryx_u64(x873, x817, x855);
3012    let mut x876: u64 = 0;
3013    let mut x877: fiat_p521_scalar_u1 = 0;
3014    let (x876, x877) = fiat_p521_scalar_addcarryx_u64(x875, x819, x857);
3015    let mut x878: u64 = 0;
3016    let mut x879: fiat_p521_scalar_u1 = 0;
3017    let (x878, x879) = fiat_p521_scalar_addcarryx_u64(x877, x821, x859);
3018    let mut x880: u64 = 0;
3019    let mut x881: fiat_p521_scalar_u1 = 0;
3020    let (x880, x881) = fiat_p521_scalar_addcarryx_u64(x879, x823, x861);
3021    let mut x882: u64 = 0;
3022    let mut x883: fiat_p521_scalar_u1 = 0;
3023    let (x882, x883) = fiat_p521_scalar_addcarryx_u64(x881, x825, x863);
3024    let mut x884: u64 = 0;
3025    let mut x885: fiat_p521_scalar_u1 = 0;
3026    let (x884, x885) = fiat_p521_scalar_addcarryx_u64(x883, x827, x865);
3027    let mut x886: u64 = 0;
3028    let mut x887: fiat_p521_scalar_u1 = 0;
3029    let (x886, x887) = fiat_p521_scalar_addcarryx_u64(x885, x829, x867);
3030    let mut x888: u64 = 0;
3031    let mut x889: fiat_p521_scalar_u1 = 0;
3032    let (x888, x889) = fiat_p521_scalar_addcarryx_u64(x887, x831, x869);
3033    let mut x890: u64 = 0;
3034    let mut x891: fiat_p521_scalar_u1 = 0;
3035    let (x890, x891) = fiat_p521_scalar_addcarryx_u64(x889, x833, x871);
3036    let x892: u64 = ((x891 as u64) + (x834 as u64));
3037    let mut x893: u64 = 0;
3038    let mut x894: u64 = 0;
3039    let (x893, x894) = fiat_p521_scalar_mulx_u64(x8, (arg1[8]));
3040    let mut x895: u64 = 0;
3041    let mut x896: u64 = 0;
3042    let (x895, x896) = fiat_p521_scalar_mulx_u64(x8, (arg1[7]));
3043    let mut x897: u64 = 0;
3044    let mut x898: u64 = 0;
3045    let (x897, x898) = fiat_p521_scalar_mulx_u64(x8, (arg1[6]));
3046    let mut x899: u64 = 0;
3047    let mut x900: u64 = 0;
3048    let (x899, x900) = fiat_p521_scalar_mulx_u64(x8, (arg1[5]));
3049    let mut x901: u64 = 0;
3050    let mut x902: u64 = 0;
3051    let (x901, x902) = fiat_p521_scalar_mulx_u64(x8, (arg1[4]));
3052    let mut x903: u64 = 0;
3053    let mut x904: u64 = 0;
3054    let (x903, x904) = fiat_p521_scalar_mulx_u64(x8, (arg1[3]));
3055    let mut x905: u64 = 0;
3056    let mut x906: u64 = 0;
3057    let (x905, x906) = fiat_p521_scalar_mulx_u64(x8, (arg1[2]));
3058    let mut x907: u64 = 0;
3059    let mut x908: u64 = 0;
3060    let (x907, x908) = fiat_p521_scalar_mulx_u64(x8, (arg1[1]));
3061    let mut x909: u64 = 0;
3062    let mut x910: u64 = 0;
3063    let (x909, x910) = fiat_p521_scalar_mulx_u64(x8, (arg1[0]));
3064    let mut x911: u64 = 0;
3065    let mut x912: fiat_p521_scalar_u1 = 0;
3066    let (x911, x912) = fiat_p521_scalar_addcarryx_u64(0x0, x910, x907);
3067    let mut x913: u64 = 0;
3068    let mut x914: fiat_p521_scalar_u1 = 0;
3069    let (x913, x914) = fiat_p521_scalar_addcarryx_u64(x912, x908, x905);
3070    let mut x915: u64 = 0;
3071    let mut x916: fiat_p521_scalar_u1 = 0;
3072    let (x915, x916) = fiat_p521_scalar_addcarryx_u64(x914, x906, x903);
3073    let mut x917: u64 = 0;
3074    let mut x918: fiat_p521_scalar_u1 = 0;
3075    let (x917, x918) = fiat_p521_scalar_addcarryx_u64(x916, x904, x901);
3076    let mut x919: u64 = 0;
3077    let mut x920: fiat_p521_scalar_u1 = 0;
3078    let (x919, x920) = fiat_p521_scalar_addcarryx_u64(x918, x902, x899);
3079    let mut x921: u64 = 0;
3080    let mut x922: fiat_p521_scalar_u1 = 0;
3081    let (x921, x922) = fiat_p521_scalar_addcarryx_u64(x920, x900, x897);
3082    let mut x923: u64 = 0;
3083    let mut x924: fiat_p521_scalar_u1 = 0;
3084    let (x923, x924) = fiat_p521_scalar_addcarryx_u64(x922, x898, x895);
3085    let mut x925: u64 = 0;
3086    let mut x926: fiat_p521_scalar_u1 = 0;
3087    let (x925, x926) = fiat_p521_scalar_addcarryx_u64(x924, x896, x893);
3088    let x927: u64 = ((x926 as u64) + x894);
3089    let mut x928: u64 = 0;
3090    let mut x929: fiat_p521_scalar_u1 = 0;
3091    let (x928, x929) = fiat_p521_scalar_addcarryx_u64(0x0, x874, x909);
3092    let mut x930: u64 = 0;
3093    let mut x931: fiat_p521_scalar_u1 = 0;
3094    let (x930, x931) = fiat_p521_scalar_addcarryx_u64(x929, x876, x911);
3095    let mut x932: u64 = 0;
3096    let mut x933: fiat_p521_scalar_u1 = 0;
3097    let (x932, x933) = fiat_p521_scalar_addcarryx_u64(x931, x878, x913);
3098    let mut x934: u64 = 0;
3099    let mut x935: fiat_p521_scalar_u1 = 0;
3100    let (x934, x935) = fiat_p521_scalar_addcarryx_u64(x933, x880, x915);
3101    let mut x936: u64 = 0;
3102    let mut x937: fiat_p521_scalar_u1 = 0;
3103    let (x936, x937) = fiat_p521_scalar_addcarryx_u64(x935, x882, x917);
3104    let mut x938: u64 = 0;
3105    let mut x939: fiat_p521_scalar_u1 = 0;
3106    let (x938, x939) = fiat_p521_scalar_addcarryx_u64(x937, x884, x919);
3107    let mut x940: u64 = 0;
3108    let mut x941: fiat_p521_scalar_u1 = 0;
3109    let (x940, x941) = fiat_p521_scalar_addcarryx_u64(x939, x886, x921);
3110    let mut x942: u64 = 0;
3111    let mut x943: fiat_p521_scalar_u1 = 0;
3112    let (x942, x943) = fiat_p521_scalar_addcarryx_u64(x941, x888, x923);
3113    let mut x944: u64 = 0;
3114    let mut x945: fiat_p521_scalar_u1 = 0;
3115    let (x944, x945) = fiat_p521_scalar_addcarryx_u64(x943, x890, x925);
3116    let mut x946: u64 = 0;
3117    let mut x947: fiat_p521_scalar_u1 = 0;
3118    let (x946, x947) = fiat_p521_scalar_addcarryx_u64(x945, x892, x927);
3119    let mut x948: u64 = 0;
3120    let mut x949: u64 = 0;
3121    let (x948, x949) = fiat_p521_scalar_mulx_u64(x928, 0x1d2f5ccd79a995c7);
3122    let mut x950: u64 = 0;
3123    let mut x951: u64 = 0;
3124    let (x950, x951) = fiat_p521_scalar_mulx_u64(x948, 0x1ff);
3125    let mut x952: u64 = 0;
3126    let mut x953: u64 = 0;
3127    let (x952, x953) = fiat_p521_scalar_mulx_u64(x948, 0xffffffffffffffff);
3128    let mut x954: u64 = 0;
3129    let mut x955: u64 = 0;
3130    let (x954, x955) = fiat_p521_scalar_mulx_u64(x948, 0xffffffffffffffff);
3131    let mut x956: u64 = 0;
3132    let mut x957: u64 = 0;
3133    let (x956, x957) = fiat_p521_scalar_mulx_u64(x948, 0xffffffffffffffff);
3134    let mut x958: u64 = 0;
3135    let mut x959: u64 = 0;
3136    let (x958, x959) = fiat_p521_scalar_mulx_u64(x948, 0xfffffffffffffffa);
3137    let mut x960: u64 = 0;
3138    let mut x961: u64 = 0;
3139    let (x960, x961) = fiat_p521_scalar_mulx_u64(x948, 0x51868783bf2f966b);
3140    let mut x962: u64 = 0;
3141    let mut x963: u64 = 0;
3142    let (x962, x963) = fiat_p521_scalar_mulx_u64(x948, 0x7fcc0148f709a5d0);
3143    let mut x964: u64 = 0;
3144    let mut x965: u64 = 0;
3145    let (x964, x965) = fiat_p521_scalar_mulx_u64(x948, 0x3bb5c9b8899c47ae);
3146    let mut x966: u64 = 0;
3147    let mut x967: u64 = 0;
3148    let (x966, x967) = fiat_p521_scalar_mulx_u64(x948, 0xbb6fb71e91386409);
3149    let mut x968: u64 = 0;
3150    let mut x969: fiat_p521_scalar_u1 = 0;
3151    let (x968, x969) = fiat_p521_scalar_addcarryx_u64(0x0, x967, x964);
3152    let mut x970: u64 = 0;
3153    let mut x971: fiat_p521_scalar_u1 = 0;
3154    let (x970, x971) = fiat_p521_scalar_addcarryx_u64(x969, x965, x962);
3155    let mut x972: u64 = 0;
3156    let mut x973: fiat_p521_scalar_u1 = 0;
3157    let (x972, x973) = fiat_p521_scalar_addcarryx_u64(x971, x963, x960);
3158    let mut x974: u64 = 0;
3159    let mut x975: fiat_p521_scalar_u1 = 0;
3160    let (x974, x975) = fiat_p521_scalar_addcarryx_u64(x973, x961, x958);
3161    let mut x976: u64 = 0;
3162    let mut x977: fiat_p521_scalar_u1 = 0;
3163    let (x976, x977) = fiat_p521_scalar_addcarryx_u64(x975, x959, x956);
3164    let mut x978: u64 = 0;
3165    let mut x979: fiat_p521_scalar_u1 = 0;
3166    let (x978, x979) = fiat_p521_scalar_addcarryx_u64(x977, x957, x954);
3167    let mut x980: u64 = 0;
3168    let mut x981: fiat_p521_scalar_u1 = 0;
3169    let (x980, x981) = fiat_p521_scalar_addcarryx_u64(x979, x955, x952);
3170    let mut x982: u64 = 0;
3171    let mut x983: fiat_p521_scalar_u1 = 0;
3172    let (x982, x983) = fiat_p521_scalar_addcarryx_u64(x981, x953, x950);
3173    let x984: u64 = ((x983 as u64) + x951);
3174    let mut x985: u64 = 0;
3175    let mut x986: fiat_p521_scalar_u1 = 0;
3176    let (x985, x986) = fiat_p521_scalar_addcarryx_u64(0x0, x928, x966);
3177    let mut x987: u64 = 0;
3178    let mut x988: fiat_p521_scalar_u1 = 0;
3179    let (x987, x988) = fiat_p521_scalar_addcarryx_u64(x986, x930, x968);
3180    let mut x989: u64 = 0;
3181    let mut x990: fiat_p521_scalar_u1 = 0;
3182    let (x989, x990) = fiat_p521_scalar_addcarryx_u64(x988, x932, x970);
3183    let mut x991: u64 = 0;
3184    let mut x992: fiat_p521_scalar_u1 = 0;
3185    let (x991, x992) = fiat_p521_scalar_addcarryx_u64(x990, x934, x972);
3186    let mut x993: u64 = 0;
3187    let mut x994: fiat_p521_scalar_u1 = 0;
3188    let (x993, x994) = fiat_p521_scalar_addcarryx_u64(x992, x936, x974);
3189    let mut x995: u64 = 0;
3190    let mut x996: fiat_p521_scalar_u1 = 0;
3191    let (x995, x996) = fiat_p521_scalar_addcarryx_u64(x994, x938, x976);
3192    let mut x997: u64 = 0;
3193    let mut x998: fiat_p521_scalar_u1 = 0;
3194    let (x997, x998) = fiat_p521_scalar_addcarryx_u64(x996, x940, x978);
3195    let mut x999: u64 = 0;
3196    let mut x1000: fiat_p521_scalar_u1 = 0;
3197    let (x999, x1000) = fiat_p521_scalar_addcarryx_u64(x998, x942, x980);
3198    let mut x1001: u64 = 0;
3199    let mut x1002: fiat_p521_scalar_u1 = 0;
3200    let (x1001, x1002) = fiat_p521_scalar_addcarryx_u64(x1000, x944, x982);
3201    let mut x1003: u64 = 0;
3202    let mut x1004: fiat_p521_scalar_u1 = 0;
3203    let (x1003, x1004) = fiat_p521_scalar_addcarryx_u64(x1002, x946, x984);
3204    let x1005: u64 = ((x1004 as u64) + (x947 as u64));
3205    let mut x1006: u64 = 0;
3206    let mut x1007: fiat_p521_scalar_u1 = 0;
3207    let (x1006, x1007) = fiat_p521_scalar_subborrowx_u64(0x0, x987, 0xbb6fb71e91386409);
3208    let mut x1008: u64 = 0;
3209    let mut x1009: fiat_p521_scalar_u1 = 0;
3210    let (x1008, x1009) = fiat_p521_scalar_subborrowx_u64(x1007, x989, 0x3bb5c9b8899c47ae);
3211    let mut x1010: u64 = 0;
3212    let mut x1011: fiat_p521_scalar_u1 = 0;
3213    let (x1010, x1011) = fiat_p521_scalar_subborrowx_u64(x1009, x991, 0x7fcc0148f709a5d0);
3214    let mut x1012: u64 = 0;
3215    let mut x1013: fiat_p521_scalar_u1 = 0;
3216    let (x1012, x1013) = fiat_p521_scalar_subborrowx_u64(x1011, x993, 0x51868783bf2f966b);
3217    let mut x1014: u64 = 0;
3218    let mut x1015: fiat_p521_scalar_u1 = 0;
3219    let (x1014, x1015) = fiat_p521_scalar_subborrowx_u64(x1013, x995, 0xfffffffffffffffa);
3220    let mut x1016: u64 = 0;
3221    let mut x1017: fiat_p521_scalar_u1 = 0;
3222    let (x1016, x1017) = fiat_p521_scalar_subborrowx_u64(x1015, x997, 0xffffffffffffffff);
3223    let mut x1018: u64 = 0;
3224    let mut x1019: fiat_p521_scalar_u1 = 0;
3225    let (x1018, x1019) = fiat_p521_scalar_subborrowx_u64(x1017, x999, 0xffffffffffffffff);
3226    let mut x1020: u64 = 0;
3227    let mut x1021: fiat_p521_scalar_u1 = 0;
3228    let (x1020, x1021) = fiat_p521_scalar_subborrowx_u64(x1019, x1001, 0xffffffffffffffff);
3229    let mut x1022: u64 = 0;
3230    let mut x1023: fiat_p521_scalar_u1 = 0;
3231    let (x1022, x1023) = fiat_p521_scalar_subborrowx_u64(x1021, x1003, 0x1ff);
3232    let mut x1024: u64 = 0;
3233    let mut x1025: fiat_p521_scalar_u1 = 0;
3234    let (x1024, x1025) = fiat_p521_scalar_subborrowx_u64(x1023, x1005, (0x0 as u64));
3235    let mut x1026: u64 = 0;
3236    let (x1026) = fiat_p521_scalar_cmovznz_u64(x1025, x1006, x987);
3237    let mut x1027: u64 = 0;
3238    let (x1027) = fiat_p521_scalar_cmovznz_u64(x1025, x1008, x989);
3239    let mut x1028: u64 = 0;
3240    let (x1028) = fiat_p521_scalar_cmovznz_u64(x1025, x1010, x991);
3241    let mut x1029: u64 = 0;
3242    let (x1029) = fiat_p521_scalar_cmovznz_u64(x1025, x1012, x993);
3243    let mut x1030: u64 = 0;
3244    let (x1030) = fiat_p521_scalar_cmovznz_u64(x1025, x1014, x995);
3245    let mut x1031: u64 = 0;
3246    let (x1031) = fiat_p521_scalar_cmovznz_u64(x1025, x1016, x997);
3247    let mut x1032: u64 = 0;
3248    let (x1032) = fiat_p521_scalar_cmovznz_u64(x1025, x1018, x999);
3249    let mut x1033: u64 = 0;
3250    let (x1033) = fiat_p521_scalar_cmovznz_u64(x1025, x1020, x1001);
3251    let mut x1034: u64 = 0;
3252    let (x1034) = fiat_p521_scalar_cmovznz_u64(x1025, x1022, x1003);
3253    out1[0] = x1026;
3254    out1[1] = x1027;
3255    out1[2] = x1028;
3256    out1[3] = x1029;
3257    out1[4] = x1030;
3258    out1[5] = x1031;
3259    out1[6] = x1032;
3260    out1[7] = x1033;
3261    out1[8] = x1034;
3262    out1
3263}
3264#[doc = " The function fiat_p521_scalar_add adds two field elements in the Montgomery domain."]
3265#[doc = ""]
3266#[doc = " Preconditions:"]
3267#[doc = "   0 ≤ eval arg1 < m"]
3268#[doc = "   0 ≤ eval arg2 < m"]
3269#[doc = " Postconditions:"]
3270#[doc = "   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m"]
3271#[doc = "   0 ≤ eval out1 < m"]
3272#[doc = ""]
3273#[inline]
3274pub const fn fiat_p521_scalar_add(
3275    arg1: &fiat_p521_scalar_montgomery_domain_field_element,
3276    arg2: &fiat_p521_scalar_montgomery_domain_field_element,
3277) -> fiat_p521_scalar_montgomery_domain_field_element {
3278    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
3279    let mut x1: u64 = 0;
3280    let mut x2: fiat_p521_scalar_u1 = 0;
3281    let (x1, x2) = fiat_p521_scalar_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
3282    let mut x3: u64 = 0;
3283    let mut x4: fiat_p521_scalar_u1 = 0;
3284    let (x3, x4) = fiat_p521_scalar_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
3285    let mut x5: u64 = 0;
3286    let mut x6: fiat_p521_scalar_u1 = 0;
3287    let (x5, x6) = fiat_p521_scalar_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
3288    let mut x7: u64 = 0;
3289    let mut x8: fiat_p521_scalar_u1 = 0;
3290    let (x7, x8) = fiat_p521_scalar_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
3291    let mut x9: u64 = 0;
3292    let mut x10: fiat_p521_scalar_u1 = 0;
3293    let (x9, x10) = fiat_p521_scalar_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
3294    let mut x11: u64 = 0;
3295    let mut x12: fiat_p521_scalar_u1 = 0;
3296    let (x11, x12) = fiat_p521_scalar_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
3297    let mut x13: u64 = 0;
3298    let mut x14: fiat_p521_scalar_u1 = 0;
3299    let (x13, x14) = fiat_p521_scalar_addcarryx_u64(x12, (arg1[6]), (arg2[6]));
3300    let mut x15: u64 = 0;
3301    let mut x16: fiat_p521_scalar_u1 = 0;
3302    let (x15, x16) = fiat_p521_scalar_addcarryx_u64(x14, (arg1[7]), (arg2[7]));
3303    let mut x17: u64 = 0;
3304    let mut x18: fiat_p521_scalar_u1 = 0;
3305    let (x17, x18) = fiat_p521_scalar_addcarryx_u64(x16, (arg1[8]), (arg2[8]));
3306    let mut x19: u64 = 0;
3307    let mut x20: fiat_p521_scalar_u1 = 0;
3308    let (x19, x20) = fiat_p521_scalar_subborrowx_u64(0x0, x1, 0xbb6fb71e91386409);
3309    let mut x21: u64 = 0;
3310    let mut x22: fiat_p521_scalar_u1 = 0;
3311    let (x21, x22) = fiat_p521_scalar_subborrowx_u64(x20, x3, 0x3bb5c9b8899c47ae);
3312    let mut x23: u64 = 0;
3313    let mut x24: fiat_p521_scalar_u1 = 0;
3314    let (x23, x24) = fiat_p521_scalar_subborrowx_u64(x22, x5, 0x7fcc0148f709a5d0);
3315    let mut x25: u64 = 0;
3316    let mut x26: fiat_p521_scalar_u1 = 0;
3317    let (x25, x26) = fiat_p521_scalar_subborrowx_u64(x24, x7, 0x51868783bf2f966b);
3318    let mut x27: u64 = 0;
3319    let mut x28: fiat_p521_scalar_u1 = 0;
3320    let (x27, x28) = fiat_p521_scalar_subborrowx_u64(x26, x9, 0xfffffffffffffffa);
3321    let mut x29: u64 = 0;
3322    let mut x30: fiat_p521_scalar_u1 = 0;
3323    let (x29, x30) = fiat_p521_scalar_subborrowx_u64(x28, x11, 0xffffffffffffffff);
3324    let mut x31: u64 = 0;
3325    let mut x32: fiat_p521_scalar_u1 = 0;
3326    let (x31, x32) = fiat_p521_scalar_subborrowx_u64(x30, x13, 0xffffffffffffffff);
3327    let mut x33: u64 = 0;
3328    let mut x34: fiat_p521_scalar_u1 = 0;
3329    let (x33, x34) = fiat_p521_scalar_subborrowx_u64(x32, x15, 0xffffffffffffffff);
3330    let mut x35: u64 = 0;
3331    let mut x36: fiat_p521_scalar_u1 = 0;
3332    let (x35, x36) = fiat_p521_scalar_subborrowx_u64(x34, x17, 0x1ff);
3333    let mut x37: u64 = 0;
3334    let mut x38: fiat_p521_scalar_u1 = 0;
3335    let (x37, x38) = fiat_p521_scalar_subborrowx_u64(x36, (x18 as u64), (0x0 as u64));
3336    let mut x39: u64 = 0;
3337    let (x39) = fiat_p521_scalar_cmovznz_u64(x38, x19, x1);
3338    let mut x40: u64 = 0;
3339    let (x40) = fiat_p521_scalar_cmovznz_u64(x38, x21, x3);
3340    let mut x41: u64 = 0;
3341    let (x41) = fiat_p521_scalar_cmovznz_u64(x38, x23, x5);
3342    let mut x42: u64 = 0;
3343    let (x42) = fiat_p521_scalar_cmovznz_u64(x38, x25, x7);
3344    let mut x43: u64 = 0;
3345    let (x43) = fiat_p521_scalar_cmovznz_u64(x38, x27, x9);
3346    let mut x44: u64 = 0;
3347    let (x44) = fiat_p521_scalar_cmovznz_u64(x38, x29, x11);
3348    let mut x45: u64 = 0;
3349    let (x45) = fiat_p521_scalar_cmovznz_u64(x38, x31, x13);
3350    let mut x46: u64 = 0;
3351    let (x46) = fiat_p521_scalar_cmovznz_u64(x38, x33, x15);
3352    let mut x47: u64 = 0;
3353    let (x47) = fiat_p521_scalar_cmovznz_u64(x38, x35, x17);
3354    out1[0] = x39;
3355    out1[1] = x40;
3356    out1[2] = x41;
3357    out1[3] = x42;
3358    out1[4] = x43;
3359    out1[5] = x44;
3360    out1[6] = x45;
3361    out1[7] = x46;
3362    out1[8] = x47;
3363    out1
3364}
3365#[doc = " The function fiat_p521_scalar_sub subtracts two field elements in the Montgomery domain."]
3366#[doc = ""]
3367#[doc = " Preconditions:"]
3368#[doc = "   0 ≤ eval arg1 < m"]
3369#[doc = "   0 ≤ eval arg2 < m"]
3370#[doc = " Postconditions:"]
3371#[doc = "   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m"]
3372#[doc = "   0 ≤ eval out1 < m"]
3373#[doc = ""]
3374#[inline]
3375pub const fn fiat_p521_scalar_sub(
3376    arg1: &fiat_p521_scalar_montgomery_domain_field_element,
3377    arg2: &fiat_p521_scalar_montgomery_domain_field_element,
3378) -> fiat_p521_scalar_montgomery_domain_field_element {
3379    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
3380    let mut x1: u64 = 0;
3381    let mut x2: fiat_p521_scalar_u1 = 0;
3382    let (x1, x2) = fiat_p521_scalar_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
3383    let mut x3: u64 = 0;
3384    let mut x4: fiat_p521_scalar_u1 = 0;
3385    let (x3, x4) = fiat_p521_scalar_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
3386    let mut x5: u64 = 0;
3387    let mut x6: fiat_p521_scalar_u1 = 0;
3388    let (x5, x6) = fiat_p521_scalar_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
3389    let mut x7: u64 = 0;
3390    let mut x8: fiat_p521_scalar_u1 = 0;
3391    let (x7, x8) = fiat_p521_scalar_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
3392    let mut x9: u64 = 0;
3393    let mut x10: fiat_p521_scalar_u1 = 0;
3394    let (x9, x10) = fiat_p521_scalar_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
3395    let mut x11: u64 = 0;
3396    let mut x12: fiat_p521_scalar_u1 = 0;
3397    let (x11, x12) = fiat_p521_scalar_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
3398    let mut x13: u64 = 0;
3399    let mut x14: fiat_p521_scalar_u1 = 0;
3400    let (x13, x14) = fiat_p521_scalar_subborrowx_u64(x12, (arg1[6]), (arg2[6]));
3401    let mut x15: u64 = 0;
3402    let mut x16: fiat_p521_scalar_u1 = 0;
3403    let (x15, x16) = fiat_p521_scalar_subborrowx_u64(x14, (arg1[7]), (arg2[7]));
3404    let mut x17: u64 = 0;
3405    let mut x18: fiat_p521_scalar_u1 = 0;
3406    let (x17, x18) = fiat_p521_scalar_subborrowx_u64(x16, (arg1[8]), (arg2[8]));
3407    let mut x19: u64 = 0;
3408    let (x19) = fiat_p521_scalar_cmovznz_u64(x18, (0x0 as u64), 0xffffffffffffffff);
3409    let mut x20: u64 = 0;
3410    let mut x21: fiat_p521_scalar_u1 = 0;
3411    let (x20, x21) = fiat_p521_scalar_addcarryx_u64(0x0, x1, (x19 & 0xbb6fb71e91386409));
3412    let mut x22: u64 = 0;
3413    let mut x23: fiat_p521_scalar_u1 = 0;
3414    let (x22, x23) = fiat_p521_scalar_addcarryx_u64(x21, x3, (x19 & 0x3bb5c9b8899c47ae));
3415    let mut x24: u64 = 0;
3416    let mut x25: fiat_p521_scalar_u1 = 0;
3417    let (x24, x25) = fiat_p521_scalar_addcarryx_u64(x23, x5, (x19 & 0x7fcc0148f709a5d0));
3418    let mut x26: u64 = 0;
3419    let mut x27: fiat_p521_scalar_u1 = 0;
3420    let (x26, x27) = fiat_p521_scalar_addcarryx_u64(x25, x7, (x19 & 0x51868783bf2f966b));
3421    let mut x28: u64 = 0;
3422    let mut x29: fiat_p521_scalar_u1 = 0;
3423    let (x28, x29) = fiat_p521_scalar_addcarryx_u64(x27, x9, (x19 & 0xfffffffffffffffa));
3424    let mut x30: u64 = 0;
3425    let mut x31: fiat_p521_scalar_u1 = 0;
3426    let (x30, x31) = fiat_p521_scalar_addcarryx_u64(x29, x11, x19);
3427    let mut x32: u64 = 0;
3428    let mut x33: fiat_p521_scalar_u1 = 0;
3429    let (x32, x33) = fiat_p521_scalar_addcarryx_u64(x31, x13, x19);
3430    let mut x34: u64 = 0;
3431    let mut x35: fiat_p521_scalar_u1 = 0;
3432    let (x34, x35) = fiat_p521_scalar_addcarryx_u64(x33, x15, x19);
3433    let mut x36: u64 = 0;
3434    let mut x37: fiat_p521_scalar_u1 = 0;
3435    let (x36, x37) = fiat_p521_scalar_addcarryx_u64(x35, x17, (x19 & 0x1ff));
3436    out1[0] = x20;
3437    out1[1] = x22;
3438    out1[2] = x24;
3439    out1[3] = x26;
3440    out1[4] = x28;
3441    out1[5] = x30;
3442    out1[6] = x32;
3443    out1[7] = x34;
3444    out1[8] = x36;
3445    out1
3446}
3447#[doc = " The function fiat_p521_scalar_opp negates a field element in the Montgomery domain."]
3448#[doc = ""]
3449#[doc = " Preconditions:"]
3450#[doc = "   0 ≤ eval arg1 < m"]
3451#[doc = " Postconditions:"]
3452#[doc = "   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m"]
3453#[doc = "   0 ≤ eval out1 < m"]
3454#[doc = ""]
3455#[inline]
3456pub const fn fiat_p521_scalar_opp(
3457    arg1: &fiat_p521_scalar_montgomery_domain_field_element,
3458) -> fiat_p521_scalar_montgomery_domain_field_element {
3459    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
3460    let mut x1: u64 = 0;
3461    let mut x2: fiat_p521_scalar_u1 = 0;
3462    let (x1, x2) = fiat_p521_scalar_subborrowx_u64(0x0, (0x0 as u64), (arg1[0]));
3463    let mut x3: u64 = 0;
3464    let mut x4: fiat_p521_scalar_u1 = 0;
3465    let (x3, x4) = fiat_p521_scalar_subborrowx_u64(x2, (0x0 as u64), (arg1[1]));
3466    let mut x5: u64 = 0;
3467    let mut x6: fiat_p521_scalar_u1 = 0;
3468    let (x5, x6) = fiat_p521_scalar_subborrowx_u64(x4, (0x0 as u64), (arg1[2]));
3469    let mut x7: u64 = 0;
3470    let mut x8: fiat_p521_scalar_u1 = 0;
3471    let (x7, x8) = fiat_p521_scalar_subborrowx_u64(x6, (0x0 as u64), (arg1[3]));
3472    let mut x9: u64 = 0;
3473    let mut x10: fiat_p521_scalar_u1 = 0;
3474    let (x9, x10) = fiat_p521_scalar_subborrowx_u64(x8, (0x0 as u64), (arg1[4]));
3475    let mut x11: u64 = 0;
3476    let mut x12: fiat_p521_scalar_u1 = 0;
3477    let (x11, x12) = fiat_p521_scalar_subborrowx_u64(x10, (0x0 as u64), (arg1[5]));
3478    let mut x13: u64 = 0;
3479    let mut x14: fiat_p521_scalar_u1 = 0;
3480    let (x13, x14) = fiat_p521_scalar_subborrowx_u64(x12, (0x0 as u64), (arg1[6]));
3481    let mut x15: u64 = 0;
3482    let mut x16: fiat_p521_scalar_u1 = 0;
3483    let (x15, x16) = fiat_p521_scalar_subborrowx_u64(x14, (0x0 as u64), (arg1[7]));
3484    let mut x17: u64 = 0;
3485    let mut x18: fiat_p521_scalar_u1 = 0;
3486    let (x17, x18) = fiat_p521_scalar_subborrowx_u64(x16, (0x0 as u64), (arg1[8]));
3487    let mut x19: u64 = 0;
3488    let (x19) = fiat_p521_scalar_cmovznz_u64(x18, (0x0 as u64), 0xffffffffffffffff);
3489    let mut x20: u64 = 0;
3490    let mut x21: fiat_p521_scalar_u1 = 0;
3491    let (x20, x21) = fiat_p521_scalar_addcarryx_u64(0x0, x1, (x19 & 0xbb6fb71e91386409));
3492    let mut x22: u64 = 0;
3493    let mut x23: fiat_p521_scalar_u1 = 0;
3494    let (x22, x23) = fiat_p521_scalar_addcarryx_u64(x21, x3, (x19 & 0x3bb5c9b8899c47ae));
3495    let mut x24: u64 = 0;
3496    let mut x25: fiat_p521_scalar_u1 = 0;
3497    let (x24, x25) = fiat_p521_scalar_addcarryx_u64(x23, x5, (x19 & 0x7fcc0148f709a5d0));
3498    let mut x26: u64 = 0;
3499    let mut x27: fiat_p521_scalar_u1 = 0;
3500    let (x26, x27) = fiat_p521_scalar_addcarryx_u64(x25, x7, (x19 & 0x51868783bf2f966b));
3501    let mut x28: u64 = 0;
3502    let mut x29: fiat_p521_scalar_u1 = 0;
3503    let (x28, x29) = fiat_p521_scalar_addcarryx_u64(x27, x9, (x19 & 0xfffffffffffffffa));
3504    let mut x30: u64 = 0;
3505    let mut x31: fiat_p521_scalar_u1 = 0;
3506    let (x30, x31) = fiat_p521_scalar_addcarryx_u64(x29, x11, x19);
3507    let mut x32: u64 = 0;
3508    let mut x33: fiat_p521_scalar_u1 = 0;
3509    let (x32, x33) = fiat_p521_scalar_addcarryx_u64(x31, x13, x19);
3510    let mut x34: u64 = 0;
3511    let mut x35: fiat_p521_scalar_u1 = 0;
3512    let (x34, x35) = fiat_p521_scalar_addcarryx_u64(x33, x15, x19);
3513    let mut x36: u64 = 0;
3514    let mut x37: fiat_p521_scalar_u1 = 0;
3515    let (x36, x37) = fiat_p521_scalar_addcarryx_u64(x35, x17, (x19 & 0x1ff));
3516    out1[0] = x20;
3517    out1[1] = x22;
3518    out1[2] = x24;
3519    out1[3] = x26;
3520    out1[4] = x28;
3521    out1[5] = x30;
3522    out1[6] = x32;
3523    out1[7] = x34;
3524    out1[8] = x36;
3525    out1
3526}
3527#[doc = " The function fiat_p521_scalar_from_montgomery translates a field element out of the Montgomery domain."]
3528#[doc = ""]
3529#[doc = " Preconditions:"]
3530#[doc = "   0 ≤ eval arg1 < m"]
3531#[doc = " Postconditions:"]
3532#[doc = "   eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^9) mod m"]
3533#[doc = "   0 ≤ eval out1 < m"]
3534#[doc = ""]
3535#[inline]
3536pub const fn fiat_p521_scalar_from_montgomery(
3537    arg1: &fiat_p521_scalar_montgomery_domain_field_element,
3538) -> fiat_p521_scalar_non_montgomery_domain_field_element {
3539    let mut out1: fiat_p521_scalar_non_montgomery_domain_field_element = [0; 9];
3540    let x1: u64 = (arg1[0]);
3541    let mut x2: u64 = 0;
3542    let mut x3: u64 = 0;
3543    let (x2, x3) = fiat_p521_scalar_mulx_u64(x1, 0x1d2f5ccd79a995c7);
3544    let mut x4: u64 = 0;
3545    let mut x5: u64 = 0;
3546    let (x4, x5) = fiat_p521_scalar_mulx_u64(x2, 0x1ff);
3547    let mut x6: u64 = 0;
3548    let mut x7: u64 = 0;
3549    let (x6, x7) = fiat_p521_scalar_mulx_u64(x2, 0xffffffffffffffff);
3550    let mut x8: u64 = 0;
3551    let mut x9: u64 = 0;
3552    let (x8, x9) = fiat_p521_scalar_mulx_u64(x2, 0xffffffffffffffff);
3553    let mut x10: u64 = 0;
3554    let mut x11: u64 = 0;
3555    let (x10, x11) = fiat_p521_scalar_mulx_u64(x2, 0xffffffffffffffff);
3556    let mut x12: u64 = 0;
3557    let mut x13: u64 = 0;
3558    let (x12, x13) = fiat_p521_scalar_mulx_u64(x2, 0xfffffffffffffffa);
3559    let mut x14: u64 = 0;
3560    let mut x15: u64 = 0;
3561    let (x14, x15) = fiat_p521_scalar_mulx_u64(x2, 0x51868783bf2f966b);
3562    let mut x16: u64 = 0;
3563    let mut x17: u64 = 0;
3564    let (x16, x17) = fiat_p521_scalar_mulx_u64(x2, 0x7fcc0148f709a5d0);
3565    let mut x18: u64 = 0;
3566    let mut x19: u64 = 0;
3567    let (x18, x19) = fiat_p521_scalar_mulx_u64(x2, 0x3bb5c9b8899c47ae);
3568    let mut x20: u64 = 0;
3569    let mut x21: u64 = 0;
3570    let (x20, x21) = fiat_p521_scalar_mulx_u64(x2, 0xbb6fb71e91386409);
3571    let mut x22: u64 = 0;
3572    let mut x23: fiat_p521_scalar_u1 = 0;
3573    let (x22, x23) = fiat_p521_scalar_addcarryx_u64(0x0, x21, x18);
3574    let mut x24: u64 = 0;
3575    let mut x25: fiat_p521_scalar_u1 = 0;
3576    let (x24, x25) = fiat_p521_scalar_addcarryx_u64(x23, x19, x16);
3577    let mut x26: u64 = 0;
3578    let mut x27: fiat_p521_scalar_u1 = 0;
3579    let (x26, x27) = fiat_p521_scalar_addcarryx_u64(x25, x17, x14);
3580    let mut x28: u64 = 0;
3581    let mut x29: fiat_p521_scalar_u1 = 0;
3582    let (x28, x29) = fiat_p521_scalar_addcarryx_u64(x27, x15, x12);
3583    let mut x30: u64 = 0;
3584    let mut x31: fiat_p521_scalar_u1 = 0;
3585    let (x30, x31) = fiat_p521_scalar_addcarryx_u64(x29, x13, x10);
3586    let mut x32: u64 = 0;
3587    let mut x33: fiat_p521_scalar_u1 = 0;
3588    let (x32, x33) = fiat_p521_scalar_addcarryx_u64(x31, x11, x8);
3589    let mut x34: u64 = 0;
3590    let mut x35: fiat_p521_scalar_u1 = 0;
3591    let (x34, x35) = fiat_p521_scalar_addcarryx_u64(x33, x9, x6);
3592    let mut x36: u64 = 0;
3593    let mut x37: fiat_p521_scalar_u1 = 0;
3594    let (x36, x37) = fiat_p521_scalar_addcarryx_u64(x35, x7, x4);
3595    let mut x38: u64 = 0;
3596    let mut x39: fiat_p521_scalar_u1 = 0;
3597    let (x38, x39) = fiat_p521_scalar_addcarryx_u64(0x0, x1, x20);
3598    let mut x40: u64 = 0;
3599    let mut x41: fiat_p521_scalar_u1 = 0;
3600    let (x40, x41) = fiat_p521_scalar_addcarryx_u64(x39, (0x0 as u64), x22);
3601    let mut x42: u64 = 0;
3602    let mut x43: fiat_p521_scalar_u1 = 0;
3603    let (x42, x43) = fiat_p521_scalar_addcarryx_u64(x41, (0x0 as u64), x24);
3604    let mut x44: u64 = 0;
3605    let mut x45: fiat_p521_scalar_u1 = 0;
3606    let (x44, x45) = fiat_p521_scalar_addcarryx_u64(x43, (0x0 as u64), x26);
3607    let mut x46: u64 = 0;
3608    let mut x47: fiat_p521_scalar_u1 = 0;
3609    let (x46, x47) = fiat_p521_scalar_addcarryx_u64(x45, (0x0 as u64), x28);
3610    let mut x48: u64 = 0;
3611    let mut x49: fiat_p521_scalar_u1 = 0;
3612    let (x48, x49) = fiat_p521_scalar_addcarryx_u64(x47, (0x0 as u64), x30);
3613    let mut x50: u64 = 0;
3614    let mut x51: fiat_p521_scalar_u1 = 0;
3615    let (x50, x51) = fiat_p521_scalar_addcarryx_u64(x49, (0x0 as u64), x32);
3616    let mut x52: u64 = 0;
3617    let mut x53: fiat_p521_scalar_u1 = 0;
3618    let (x52, x53) = fiat_p521_scalar_addcarryx_u64(x51, (0x0 as u64), x34);
3619    let mut x54: u64 = 0;
3620    let mut x55: fiat_p521_scalar_u1 = 0;
3621    let (x54, x55) = fiat_p521_scalar_addcarryx_u64(x53, (0x0 as u64), x36);
3622    let mut x56: u64 = 0;
3623    let mut x57: fiat_p521_scalar_u1 = 0;
3624    let (x56, x57) = fiat_p521_scalar_addcarryx_u64(0x0, x40, (arg1[1]));
3625    let mut x58: u64 = 0;
3626    let mut x59: fiat_p521_scalar_u1 = 0;
3627    let (x58, x59) = fiat_p521_scalar_addcarryx_u64(x57, x42, (0x0 as u64));
3628    let mut x60: u64 = 0;
3629    let mut x61: fiat_p521_scalar_u1 = 0;
3630    let (x60, x61) = fiat_p521_scalar_addcarryx_u64(x59, x44, (0x0 as u64));
3631    let mut x62: u64 = 0;
3632    let mut x63: fiat_p521_scalar_u1 = 0;
3633    let (x62, x63) = fiat_p521_scalar_addcarryx_u64(x61, x46, (0x0 as u64));
3634    let mut x64: u64 = 0;
3635    let mut x65: fiat_p521_scalar_u1 = 0;
3636    let (x64, x65) = fiat_p521_scalar_addcarryx_u64(x63, x48, (0x0 as u64));
3637    let mut x66: u64 = 0;
3638    let mut x67: fiat_p521_scalar_u1 = 0;
3639    let (x66, x67) = fiat_p521_scalar_addcarryx_u64(x65, x50, (0x0 as u64));
3640    let mut x68: u64 = 0;
3641    let mut x69: fiat_p521_scalar_u1 = 0;
3642    let (x68, x69) = fiat_p521_scalar_addcarryx_u64(x67, x52, (0x0 as u64));
3643    let mut x70: u64 = 0;
3644    let mut x71: fiat_p521_scalar_u1 = 0;
3645    let (x70, x71) = fiat_p521_scalar_addcarryx_u64(x69, x54, (0x0 as u64));
3646    let mut x72: u64 = 0;
3647    let mut x73: u64 = 0;
3648    let (x72, x73) = fiat_p521_scalar_mulx_u64(x56, 0x1d2f5ccd79a995c7);
3649    let mut x74: u64 = 0;
3650    let mut x75: u64 = 0;
3651    let (x74, x75) = fiat_p521_scalar_mulx_u64(x72, 0x1ff);
3652    let mut x76: u64 = 0;
3653    let mut x77: u64 = 0;
3654    let (x76, x77) = fiat_p521_scalar_mulx_u64(x72, 0xffffffffffffffff);
3655    let mut x78: u64 = 0;
3656    let mut x79: u64 = 0;
3657    let (x78, x79) = fiat_p521_scalar_mulx_u64(x72, 0xffffffffffffffff);
3658    let mut x80: u64 = 0;
3659    let mut x81: u64 = 0;
3660    let (x80, x81) = fiat_p521_scalar_mulx_u64(x72, 0xffffffffffffffff);
3661    let mut x82: u64 = 0;
3662    let mut x83: u64 = 0;
3663    let (x82, x83) = fiat_p521_scalar_mulx_u64(x72, 0xfffffffffffffffa);
3664    let mut x84: u64 = 0;
3665    let mut x85: u64 = 0;
3666    let (x84, x85) = fiat_p521_scalar_mulx_u64(x72, 0x51868783bf2f966b);
3667    let mut x86: u64 = 0;
3668    let mut x87: u64 = 0;
3669    let (x86, x87) = fiat_p521_scalar_mulx_u64(x72, 0x7fcc0148f709a5d0);
3670    let mut x88: u64 = 0;
3671    let mut x89: u64 = 0;
3672    let (x88, x89) = fiat_p521_scalar_mulx_u64(x72, 0x3bb5c9b8899c47ae);
3673    let mut x90: u64 = 0;
3674    let mut x91: u64 = 0;
3675    let (x90, x91) = fiat_p521_scalar_mulx_u64(x72, 0xbb6fb71e91386409);
3676    let mut x92: u64 = 0;
3677    let mut x93: fiat_p521_scalar_u1 = 0;
3678    let (x92, x93) = fiat_p521_scalar_addcarryx_u64(0x0, x91, x88);
3679    let mut x94: u64 = 0;
3680    let mut x95: fiat_p521_scalar_u1 = 0;
3681    let (x94, x95) = fiat_p521_scalar_addcarryx_u64(x93, x89, x86);
3682    let mut x96: u64 = 0;
3683    let mut x97: fiat_p521_scalar_u1 = 0;
3684    let (x96, x97) = fiat_p521_scalar_addcarryx_u64(x95, x87, x84);
3685    let mut x98: u64 = 0;
3686    let mut x99: fiat_p521_scalar_u1 = 0;
3687    let (x98, x99) = fiat_p521_scalar_addcarryx_u64(x97, x85, x82);
3688    let mut x100: u64 = 0;
3689    let mut x101: fiat_p521_scalar_u1 = 0;
3690    let (x100, x101) = fiat_p521_scalar_addcarryx_u64(x99, x83, x80);
3691    let mut x102: u64 = 0;
3692    let mut x103: fiat_p521_scalar_u1 = 0;
3693    let (x102, x103) = fiat_p521_scalar_addcarryx_u64(x101, x81, x78);
3694    let mut x104: u64 = 0;
3695    let mut x105: fiat_p521_scalar_u1 = 0;
3696    let (x104, x105) = fiat_p521_scalar_addcarryx_u64(x103, x79, x76);
3697    let mut x106: u64 = 0;
3698    let mut x107: fiat_p521_scalar_u1 = 0;
3699    let (x106, x107) = fiat_p521_scalar_addcarryx_u64(x105, x77, x74);
3700    let mut x108: u64 = 0;
3701    let mut x109: fiat_p521_scalar_u1 = 0;
3702    let (x108, x109) = fiat_p521_scalar_addcarryx_u64(0x0, x56, x90);
3703    let mut x110: u64 = 0;
3704    let mut x111: fiat_p521_scalar_u1 = 0;
3705    let (x110, x111) = fiat_p521_scalar_addcarryx_u64(x109, x58, x92);
3706    let mut x112: u64 = 0;
3707    let mut x113: fiat_p521_scalar_u1 = 0;
3708    let (x112, x113) = fiat_p521_scalar_addcarryx_u64(x111, x60, x94);
3709    let mut x114: u64 = 0;
3710    let mut x115: fiat_p521_scalar_u1 = 0;
3711    let (x114, x115) = fiat_p521_scalar_addcarryx_u64(x113, x62, x96);
3712    let mut x116: u64 = 0;
3713    let mut x117: fiat_p521_scalar_u1 = 0;
3714    let (x116, x117) = fiat_p521_scalar_addcarryx_u64(x115, x64, x98);
3715    let mut x118: u64 = 0;
3716    let mut x119: fiat_p521_scalar_u1 = 0;
3717    let (x118, x119) = fiat_p521_scalar_addcarryx_u64(x117, x66, x100);
3718    let mut x120: u64 = 0;
3719    let mut x121: fiat_p521_scalar_u1 = 0;
3720    let (x120, x121) = fiat_p521_scalar_addcarryx_u64(x119, x68, x102);
3721    let mut x122: u64 = 0;
3722    let mut x123: fiat_p521_scalar_u1 = 0;
3723    let (x122, x123) = fiat_p521_scalar_addcarryx_u64(x121, x70, x104);
3724    let mut x124: u64 = 0;
3725    let mut x125: fiat_p521_scalar_u1 = 0;
3726    let (x124, x125) = fiat_p521_scalar_addcarryx_u64(
3727        x123,
3728        ((x71 as u64) + ((x55 as u64) + ((x37 as u64) + x5))),
3729        x106,
3730    );
3731    let mut x126: u64 = 0;
3732    let mut x127: fiat_p521_scalar_u1 = 0;
3733    let (x126, x127) = fiat_p521_scalar_addcarryx_u64(0x0, x110, (arg1[2]));
3734    let mut x128: u64 = 0;
3735    let mut x129: fiat_p521_scalar_u1 = 0;
3736    let (x128, x129) = fiat_p521_scalar_addcarryx_u64(x127, x112, (0x0 as u64));
3737    let mut x130: u64 = 0;
3738    let mut x131: fiat_p521_scalar_u1 = 0;
3739    let (x130, x131) = fiat_p521_scalar_addcarryx_u64(x129, x114, (0x0 as u64));
3740    let mut x132: u64 = 0;
3741    let mut x133: fiat_p521_scalar_u1 = 0;
3742    let (x132, x133) = fiat_p521_scalar_addcarryx_u64(x131, x116, (0x0 as u64));
3743    let mut x134: u64 = 0;
3744    let mut x135: fiat_p521_scalar_u1 = 0;
3745    let (x134, x135) = fiat_p521_scalar_addcarryx_u64(x133, x118, (0x0 as u64));
3746    let mut x136: u64 = 0;
3747    let mut x137: fiat_p521_scalar_u1 = 0;
3748    let (x136, x137) = fiat_p521_scalar_addcarryx_u64(x135, x120, (0x0 as u64));
3749    let mut x138: u64 = 0;
3750    let mut x139: fiat_p521_scalar_u1 = 0;
3751    let (x138, x139) = fiat_p521_scalar_addcarryx_u64(x137, x122, (0x0 as u64));
3752    let mut x140: u64 = 0;
3753    let mut x141: fiat_p521_scalar_u1 = 0;
3754    let (x140, x141) = fiat_p521_scalar_addcarryx_u64(x139, x124, (0x0 as u64));
3755    let mut x142: u64 = 0;
3756    let mut x143: u64 = 0;
3757    let (x142, x143) = fiat_p521_scalar_mulx_u64(x126, 0x1d2f5ccd79a995c7);
3758    let mut x144: u64 = 0;
3759    let mut x145: u64 = 0;
3760    let (x144, x145) = fiat_p521_scalar_mulx_u64(x142, 0x1ff);
3761    let mut x146: u64 = 0;
3762    let mut x147: u64 = 0;
3763    let (x146, x147) = fiat_p521_scalar_mulx_u64(x142, 0xffffffffffffffff);
3764    let mut x148: u64 = 0;
3765    let mut x149: u64 = 0;
3766    let (x148, x149) = fiat_p521_scalar_mulx_u64(x142, 0xffffffffffffffff);
3767    let mut x150: u64 = 0;
3768    let mut x151: u64 = 0;
3769    let (x150, x151) = fiat_p521_scalar_mulx_u64(x142, 0xffffffffffffffff);
3770    let mut x152: u64 = 0;
3771    let mut x153: u64 = 0;
3772    let (x152, x153) = fiat_p521_scalar_mulx_u64(x142, 0xfffffffffffffffa);
3773    let mut x154: u64 = 0;
3774    let mut x155: u64 = 0;
3775    let (x154, x155) = fiat_p521_scalar_mulx_u64(x142, 0x51868783bf2f966b);
3776    let mut x156: u64 = 0;
3777    let mut x157: u64 = 0;
3778    let (x156, x157) = fiat_p521_scalar_mulx_u64(x142, 0x7fcc0148f709a5d0);
3779    let mut x158: u64 = 0;
3780    let mut x159: u64 = 0;
3781    let (x158, x159) = fiat_p521_scalar_mulx_u64(x142, 0x3bb5c9b8899c47ae);
3782    let mut x160: u64 = 0;
3783    let mut x161: u64 = 0;
3784    let (x160, x161) = fiat_p521_scalar_mulx_u64(x142, 0xbb6fb71e91386409);
3785    let mut x162: u64 = 0;
3786    let mut x163: fiat_p521_scalar_u1 = 0;
3787    let (x162, x163) = fiat_p521_scalar_addcarryx_u64(0x0, x161, x158);
3788    let mut x164: u64 = 0;
3789    let mut x165: fiat_p521_scalar_u1 = 0;
3790    let (x164, x165) = fiat_p521_scalar_addcarryx_u64(x163, x159, x156);
3791    let mut x166: u64 = 0;
3792    let mut x167: fiat_p521_scalar_u1 = 0;
3793    let (x166, x167) = fiat_p521_scalar_addcarryx_u64(x165, x157, x154);
3794    let mut x168: u64 = 0;
3795    let mut x169: fiat_p521_scalar_u1 = 0;
3796    let (x168, x169) = fiat_p521_scalar_addcarryx_u64(x167, x155, x152);
3797    let mut x170: u64 = 0;
3798    let mut x171: fiat_p521_scalar_u1 = 0;
3799    let (x170, x171) = fiat_p521_scalar_addcarryx_u64(x169, x153, x150);
3800    let mut x172: u64 = 0;
3801    let mut x173: fiat_p521_scalar_u1 = 0;
3802    let (x172, x173) = fiat_p521_scalar_addcarryx_u64(x171, x151, x148);
3803    let mut x174: u64 = 0;
3804    let mut x175: fiat_p521_scalar_u1 = 0;
3805    let (x174, x175) = fiat_p521_scalar_addcarryx_u64(x173, x149, x146);
3806    let mut x176: u64 = 0;
3807    let mut x177: fiat_p521_scalar_u1 = 0;
3808    let (x176, x177) = fiat_p521_scalar_addcarryx_u64(x175, x147, x144);
3809    let mut x178: u64 = 0;
3810    let mut x179: fiat_p521_scalar_u1 = 0;
3811    let (x178, x179) = fiat_p521_scalar_addcarryx_u64(0x0, x126, x160);
3812    let mut x180: u64 = 0;
3813    let mut x181: fiat_p521_scalar_u1 = 0;
3814    let (x180, x181) = fiat_p521_scalar_addcarryx_u64(x179, x128, x162);
3815    let mut x182: u64 = 0;
3816    let mut x183: fiat_p521_scalar_u1 = 0;
3817    let (x182, x183) = fiat_p521_scalar_addcarryx_u64(x181, x130, x164);
3818    let mut x184: u64 = 0;
3819    let mut x185: fiat_p521_scalar_u1 = 0;
3820    let (x184, x185) = fiat_p521_scalar_addcarryx_u64(x183, x132, x166);
3821    let mut x186: u64 = 0;
3822    let mut x187: fiat_p521_scalar_u1 = 0;
3823    let (x186, x187) = fiat_p521_scalar_addcarryx_u64(x185, x134, x168);
3824    let mut x188: u64 = 0;
3825    let mut x189: fiat_p521_scalar_u1 = 0;
3826    let (x188, x189) = fiat_p521_scalar_addcarryx_u64(x187, x136, x170);
3827    let mut x190: u64 = 0;
3828    let mut x191: fiat_p521_scalar_u1 = 0;
3829    let (x190, x191) = fiat_p521_scalar_addcarryx_u64(x189, x138, x172);
3830    let mut x192: u64 = 0;
3831    let mut x193: fiat_p521_scalar_u1 = 0;
3832    let (x192, x193) = fiat_p521_scalar_addcarryx_u64(x191, x140, x174);
3833    let mut x194: u64 = 0;
3834    let mut x195: fiat_p521_scalar_u1 = 0;
3835    let (x194, x195) = fiat_p521_scalar_addcarryx_u64(
3836        x193,
3837        ((x141 as u64) + ((x125 as u64) + ((x107 as u64) + x75))),
3838        x176,
3839    );
3840    let mut x196: u64 = 0;
3841    let mut x197: fiat_p521_scalar_u1 = 0;
3842    let (x196, x197) = fiat_p521_scalar_addcarryx_u64(0x0, x180, (arg1[3]));
3843    let mut x198: u64 = 0;
3844    let mut x199: fiat_p521_scalar_u1 = 0;
3845    let (x198, x199) = fiat_p521_scalar_addcarryx_u64(x197, x182, (0x0 as u64));
3846    let mut x200: u64 = 0;
3847    let mut x201: fiat_p521_scalar_u1 = 0;
3848    let (x200, x201) = fiat_p521_scalar_addcarryx_u64(x199, x184, (0x0 as u64));
3849    let mut x202: u64 = 0;
3850    let mut x203: fiat_p521_scalar_u1 = 0;
3851    let (x202, x203) = fiat_p521_scalar_addcarryx_u64(x201, x186, (0x0 as u64));
3852    let mut x204: u64 = 0;
3853    let mut x205: fiat_p521_scalar_u1 = 0;
3854    let (x204, x205) = fiat_p521_scalar_addcarryx_u64(x203, x188, (0x0 as u64));
3855    let mut x206: u64 = 0;
3856    let mut x207: fiat_p521_scalar_u1 = 0;
3857    let (x206, x207) = fiat_p521_scalar_addcarryx_u64(x205, x190, (0x0 as u64));
3858    let mut x208: u64 = 0;
3859    let mut x209: fiat_p521_scalar_u1 = 0;
3860    let (x208, x209) = fiat_p521_scalar_addcarryx_u64(x207, x192, (0x0 as u64));
3861    let mut x210: u64 = 0;
3862    let mut x211: fiat_p521_scalar_u1 = 0;
3863    let (x210, x211) = fiat_p521_scalar_addcarryx_u64(x209, x194, (0x0 as u64));
3864    let mut x212: u64 = 0;
3865    let mut x213: u64 = 0;
3866    let (x212, x213) = fiat_p521_scalar_mulx_u64(x196, 0x1d2f5ccd79a995c7);
3867    let mut x214: u64 = 0;
3868    let mut x215: u64 = 0;
3869    let (x214, x215) = fiat_p521_scalar_mulx_u64(x212, 0x1ff);
3870    let mut x216: u64 = 0;
3871    let mut x217: u64 = 0;
3872    let (x216, x217) = fiat_p521_scalar_mulx_u64(x212, 0xffffffffffffffff);
3873    let mut x218: u64 = 0;
3874    let mut x219: u64 = 0;
3875    let (x218, x219) = fiat_p521_scalar_mulx_u64(x212, 0xffffffffffffffff);
3876    let mut x220: u64 = 0;
3877    let mut x221: u64 = 0;
3878    let (x220, x221) = fiat_p521_scalar_mulx_u64(x212, 0xffffffffffffffff);
3879    let mut x222: u64 = 0;
3880    let mut x223: u64 = 0;
3881    let (x222, x223) = fiat_p521_scalar_mulx_u64(x212, 0xfffffffffffffffa);
3882    let mut x224: u64 = 0;
3883    let mut x225: u64 = 0;
3884    let (x224, x225) = fiat_p521_scalar_mulx_u64(x212, 0x51868783bf2f966b);
3885    let mut x226: u64 = 0;
3886    let mut x227: u64 = 0;
3887    let (x226, x227) = fiat_p521_scalar_mulx_u64(x212, 0x7fcc0148f709a5d0);
3888    let mut x228: u64 = 0;
3889    let mut x229: u64 = 0;
3890    let (x228, x229) = fiat_p521_scalar_mulx_u64(x212, 0x3bb5c9b8899c47ae);
3891    let mut x230: u64 = 0;
3892    let mut x231: u64 = 0;
3893    let (x230, x231) = fiat_p521_scalar_mulx_u64(x212, 0xbb6fb71e91386409);
3894    let mut x232: u64 = 0;
3895    let mut x233: fiat_p521_scalar_u1 = 0;
3896    let (x232, x233) = fiat_p521_scalar_addcarryx_u64(0x0, x231, x228);
3897    let mut x234: u64 = 0;
3898    let mut x235: fiat_p521_scalar_u1 = 0;
3899    let (x234, x235) = fiat_p521_scalar_addcarryx_u64(x233, x229, x226);
3900    let mut x236: u64 = 0;
3901    let mut x237: fiat_p521_scalar_u1 = 0;
3902    let (x236, x237) = fiat_p521_scalar_addcarryx_u64(x235, x227, x224);
3903    let mut x238: u64 = 0;
3904    let mut x239: fiat_p521_scalar_u1 = 0;
3905    let (x238, x239) = fiat_p521_scalar_addcarryx_u64(x237, x225, x222);
3906    let mut x240: u64 = 0;
3907    let mut x241: fiat_p521_scalar_u1 = 0;
3908    let (x240, x241) = fiat_p521_scalar_addcarryx_u64(x239, x223, x220);
3909    let mut x242: u64 = 0;
3910    let mut x243: fiat_p521_scalar_u1 = 0;
3911    let (x242, x243) = fiat_p521_scalar_addcarryx_u64(x241, x221, x218);
3912    let mut x244: u64 = 0;
3913    let mut x245: fiat_p521_scalar_u1 = 0;
3914    let (x244, x245) = fiat_p521_scalar_addcarryx_u64(x243, x219, x216);
3915    let mut x246: u64 = 0;
3916    let mut x247: fiat_p521_scalar_u1 = 0;
3917    let (x246, x247) = fiat_p521_scalar_addcarryx_u64(x245, x217, x214);
3918    let mut x248: u64 = 0;
3919    let mut x249: fiat_p521_scalar_u1 = 0;
3920    let (x248, x249) = fiat_p521_scalar_addcarryx_u64(0x0, x196, x230);
3921    let mut x250: u64 = 0;
3922    let mut x251: fiat_p521_scalar_u1 = 0;
3923    let (x250, x251) = fiat_p521_scalar_addcarryx_u64(x249, x198, x232);
3924    let mut x252: u64 = 0;
3925    let mut x253: fiat_p521_scalar_u1 = 0;
3926    let (x252, x253) = fiat_p521_scalar_addcarryx_u64(x251, x200, x234);
3927    let mut x254: u64 = 0;
3928    let mut x255: fiat_p521_scalar_u1 = 0;
3929    let (x254, x255) = fiat_p521_scalar_addcarryx_u64(x253, x202, x236);
3930    let mut x256: u64 = 0;
3931    let mut x257: fiat_p521_scalar_u1 = 0;
3932    let (x256, x257) = fiat_p521_scalar_addcarryx_u64(x255, x204, x238);
3933    let mut x258: u64 = 0;
3934    let mut x259: fiat_p521_scalar_u1 = 0;
3935    let (x258, x259) = fiat_p521_scalar_addcarryx_u64(x257, x206, x240);
3936    let mut x260: u64 = 0;
3937    let mut x261: fiat_p521_scalar_u1 = 0;
3938    let (x260, x261) = fiat_p521_scalar_addcarryx_u64(x259, x208, x242);
3939    let mut x262: u64 = 0;
3940    let mut x263: fiat_p521_scalar_u1 = 0;
3941    let (x262, x263) = fiat_p521_scalar_addcarryx_u64(x261, x210, x244);
3942    let mut x264: u64 = 0;
3943    let mut x265: fiat_p521_scalar_u1 = 0;
3944    let (x264, x265) = fiat_p521_scalar_addcarryx_u64(
3945        x263,
3946        ((x211 as u64) + ((x195 as u64) + ((x177 as u64) + x145))),
3947        x246,
3948    );
3949    let mut x266: u64 = 0;
3950    let mut x267: fiat_p521_scalar_u1 = 0;
3951    let (x266, x267) = fiat_p521_scalar_addcarryx_u64(0x0, x250, (arg1[4]));
3952    let mut x268: u64 = 0;
3953    let mut x269: fiat_p521_scalar_u1 = 0;
3954    let (x268, x269) = fiat_p521_scalar_addcarryx_u64(x267, x252, (0x0 as u64));
3955    let mut x270: u64 = 0;
3956    let mut x271: fiat_p521_scalar_u1 = 0;
3957    let (x270, x271) = fiat_p521_scalar_addcarryx_u64(x269, x254, (0x0 as u64));
3958    let mut x272: u64 = 0;
3959    let mut x273: fiat_p521_scalar_u1 = 0;
3960    let (x272, x273) = fiat_p521_scalar_addcarryx_u64(x271, x256, (0x0 as u64));
3961    let mut x274: u64 = 0;
3962    let mut x275: fiat_p521_scalar_u1 = 0;
3963    let (x274, x275) = fiat_p521_scalar_addcarryx_u64(x273, x258, (0x0 as u64));
3964    let mut x276: u64 = 0;
3965    let mut x277: fiat_p521_scalar_u1 = 0;
3966    let (x276, x277) = fiat_p521_scalar_addcarryx_u64(x275, x260, (0x0 as u64));
3967    let mut x278: u64 = 0;
3968    let mut x279: fiat_p521_scalar_u1 = 0;
3969    let (x278, x279) = fiat_p521_scalar_addcarryx_u64(x277, x262, (0x0 as u64));
3970    let mut x280: u64 = 0;
3971    let mut x281: fiat_p521_scalar_u1 = 0;
3972    let (x280, x281) = fiat_p521_scalar_addcarryx_u64(x279, x264, (0x0 as u64));
3973    let mut x282: u64 = 0;
3974    let mut x283: u64 = 0;
3975    let (x282, x283) = fiat_p521_scalar_mulx_u64(x266, 0x1d2f5ccd79a995c7);
3976    let mut x284: u64 = 0;
3977    let mut x285: u64 = 0;
3978    let (x284, x285) = fiat_p521_scalar_mulx_u64(x282, 0x1ff);
3979    let mut x286: u64 = 0;
3980    let mut x287: u64 = 0;
3981    let (x286, x287) = fiat_p521_scalar_mulx_u64(x282, 0xffffffffffffffff);
3982    let mut x288: u64 = 0;
3983    let mut x289: u64 = 0;
3984    let (x288, x289) = fiat_p521_scalar_mulx_u64(x282, 0xffffffffffffffff);
3985    let mut x290: u64 = 0;
3986    let mut x291: u64 = 0;
3987    let (x290, x291) = fiat_p521_scalar_mulx_u64(x282, 0xffffffffffffffff);
3988    let mut x292: u64 = 0;
3989    let mut x293: u64 = 0;
3990    let (x292, x293) = fiat_p521_scalar_mulx_u64(x282, 0xfffffffffffffffa);
3991    let mut x294: u64 = 0;
3992    let mut x295: u64 = 0;
3993    let (x294, x295) = fiat_p521_scalar_mulx_u64(x282, 0x51868783bf2f966b);
3994    let mut x296: u64 = 0;
3995    let mut x297: u64 = 0;
3996    let (x296, x297) = fiat_p521_scalar_mulx_u64(x282, 0x7fcc0148f709a5d0);
3997    let mut x298: u64 = 0;
3998    let mut x299: u64 = 0;
3999    let (x298, x299) = fiat_p521_scalar_mulx_u64(x282, 0x3bb5c9b8899c47ae);
4000    let mut x300: u64 = 0;
4001    let mut x301: u64 = 0;
4002    let (x300, x301) = fiat_p521_scalar_mulx_u64(x282, 0xbb6fb71e91386409);
4003    let mut x302: u64 = 0;
4004    let mut x303: fiat_p521_scalar_u1 = 0;
4005    let (x302, x303) = fiat_p521_scalar_addcarryx_u64(0x0, x301, x298);
4006    let mut x304: u64 = 0;
4007    let mut x305: fiat_p521_scalar_u1 = 0;
4008    let (x304, x305) = fiat_p521_scalar_addcarryx_u64(x303, x299, x296);
4009    let mut x306: u64 = 0;
4010    let mut x307: fiat_p521_scalar_u1 = 0;
4011    let (x306, x307) = fiat_p521_scalar_addcarryx_u64(x305, x297, x294);
4012    let mut x308: u64 = 0;
4013    let mut x309: fiat_p521_scalar_u1 = 0;
4014    let (x308, x309) = fiat_p521_scalar_addcarryx_u64(x307, x295, x292);
4015    let mut x310: u64 = 0;
4016    let mut x311: fiat_p521_scalar_u1 = 0;
4017    let (x310, x311) = fiat_p521_scalar_addcarryx_u64(x309, x293, x290);
4018    let mut x312: u64 = 0;
4019    let mut x313: fiat_p521_scalar_u1 = 0;
4020    let (x312, x313) = fiat_p521_scalar_addcarryx_u64(x311, x291, x288);
4021    let mut x314: u64 = 0;
4022    let mut x315: fiat_p521_scalar_u1 = 0;
4023    let (x314, x315) = fiat_p521_scalar_addcarryx_u64(x313, x289, x286);
4024    let mut x316: u64 = 0;
4025    let mut x317: fiat_p521_scalar_u1 = 0;
4026    let (x316, x317) = fiat_p521_scalar_addcarryx_u64(x315, x287, x284);
4027    let mut x318: u64 = 0;
4028    let mut x319: fiat_p521_scalar_u1 = 0;
4029    let (x318, x319) = fiat_p521_scalar_addcarryx_u64(0x0, x266, x300);
4030    let mut x320: u64 = 0;
4031    let mut x321: fiat_p521_scalar_u1 = 0;
4032    let (x320, x321) = fiat_p521_scalar_addcarryx_u64(x319, x268, x302);
4033    let mut x322: u64 = 0;
4034    let mut x323: fiat_p521_scalar_u1 = 0;
4035    let (x322, x323) = fiat_p521_scalar_addcarryx_u64(x321, x270, x304);
4036    let mut x324: u64 = 0;
4037    let mut x325: fiat_p521_scalar_u1 = 0;
4038    let (x324, x325) = fiat_p521_scalar_addcarryx_u64(x323, x272, x306);
4039    let mut x326: u64 = 0;
4040    let mut x327: fiat_p521_scalar_u1 = 0;
4041    let (x326, x327) = fiat_p521_scalar_addcarryx_u64(x325, x274, x308);
4042    let mut x328: u64 = 0;
4043    let mut x329: fiat_p521_scalar_u1 = 0;
4044    let (x328, x329) = fiat_p521_scalar_addcarryx_u64(x327, x276, x310);
4045    let mut x330: u64 = 0;
4046    let mut x331: fiat_p521_scalar_u1 = 0;
4047    let (x330, x331) = fiat_p521_scalar_addcarryx_u64(x329, x278, x312);
4048    let mut x332: u64 = 0;
4049    let mut x333: fiat_p521_scalar_u1 = 0;
4050    let (x332, x333) = fiat_p521_scalar_addcarryx_u64(x331, x280, x314);
4051    let mut x334: u64 = 0;
4052    let mut x335: fiat_p521_scalar_u1 = 0;
4053    let (x334, x335) = fiat_p521_scalar_addcarryx_u64(
4054        x333,
4055        ((x281 as u64) + ((x265 as u64) + ((x247 as u64) + x215))),
4056        x316,
4057    );
4058    let mut x336: u64 = 0;
4059    let mut x337: fiat_p521_scalar_u1 = 0;
4060    let (x336, x337) = fiat_p521_scalar_addcarryx_u64(0x0, x320, (arg1[5]));
4061    let mut x338: u64 = 0;
4062    let mut x339: fiat_p521_scalar_u1 = 0;
4063    let (x338, x339) = fiat_p521_scalar_addcarryx_u64(x337, x322, (0x0 as u64));
4064    let mut x340: u64 = 0;
4065    let mut x341: fiat_p521_scalar_u1 = 0;
4066    let (x340, x341) = fiat_p521_scalar_addcarryx_u64(x339, x324, (0x0 as u64));
4067    let mut x342: u64 = 0;
4068    let mut x343: fiat_p521_scalar_u1 = 0;
4069    let (x342, x343) = fiat_p521_scalar_addcarryx_u64(x341, x326, (0x0 as u64));
4070    let mut x344: u64 = 0;
4071    let mut x345: fiat_p521_scalar_u1 = 0;
4072    let (x344, x345) = fiat_p521_scalar_addcarryx_u64(x343, x328, (0x0 as u64));
4073    let mut x346: u64 = 0;
4074    let mut x347: fiat_p521_scalar_u1 = 0;
4075    let (x346, x347) = fiat_p521_scalar_addcarryx_u64(x345, x330, (0x0 as u64));
4076    let mut x348: u64 = 0;
4077    let mut x349: fiat_p521_scalar_u1 = 0;
4078    let (x348, x349) = fiat_p521_scalar_addcarryx_u64(x347, x332, (0x0 as u64));
4079    let mut x350: u64 = 0;
4080    let mut x351: fiat_p521_scalar_u1 = 0;
4081    let (x350, x351) = fiat_p521_scalar_addcarryx_u64(x349, x334, (0x0 as u64));
4082    let mut x352: u64 = 0;
4083    let mut x353: u64 = 0;
4084    let (x352, x353) = fiat_p521_scalar_mulx_u64(x336, 0x1d2f5ccd79a995c7);
4085    let mut x354: u64 = 0;
4086    let mut x355: u64 = 0;
4087    let (x354, x355) = fiat_p521_scalar_mulx_u64(x352, 0x1ff);
4088    let mut x356: u64 = 0;
4089    let mut x357: u64 = 0;
4090    let (x356, x357) = fiat_p521_scalar_mulx_u64(x352, 0xffffffffffffffff);
4091    let mut x358: u64 = 0;
4092    let mut x359: u64 = 0;
4093    let (x358, x359) = fiat_p521_scalar_mulx_u64(x352, 0xffffffffffffffff);
4094    let mut x360: u64 = 0;
4095    let mut x361: u64 = 0;
4096    let (x360, x361) = fiat_p521_scalar_mulx_u64(x352, 0xffffffffffffffff);
4097    let mut x362: u64 = 0;
4098    let mut x363: u64 = 0;
4099    let (x362, x363) = fiat_p521_scalar_mulx_u64(x352, 0xfffffffffffffffa);
4100    let mut x364: u64 = 0;
4101    let mut x365: u64 = 0;
4102    let (x364, x365) = fiat_p521_scalar_mulx_u64(x352, 0x51868783bf2f966b);
4103    let mut x366: u64 = 0;
4104    let mut x367: u64 = 0;
4105    let (x366, x367) = fiat_p521_scalar_mulx_u64(x352, 0x7fcc0148f709a5d0);
4106    let mut x368: u64 = 0;
4107    let mut x369: u64 = 0;
4108    let (x368, x369) = fiat_p521_scalar_mulx_u64(x352, 0x3bb5c9b8899c47ae);
4109    let mut x370: u64 = 0;
4110    let mut x371: u64 = 0;
4111    let (x370, x371) = fiat_p521_scalar_mulx_u64(x352, 0xbb6fb71e91386409);
4112    let mut x372: u64 = 0;
4113    let mut x373: fiat_p521_scalar_u1 = 0;
4114    let (x372, x373) = fiat_p521_scalar_addcarryx_u64(0x0, x371, x368);
4115    let mut x374: u64 = 0;
4116    let mut x375: fiat_p521_scalar_u1 = 0;
4117    let (x374, x375) = fiat_p521_scalar_addcarryx_u64(x373, x369, x366);
4118    let mut x376: u64 = 0;
4119    let mut x377: fiat_p521_scalar_u1 = 0;
4120    let (x376, x377) = fiat_p521_scalar_addcarryx_u64(x375, x367, x364);
4121    let mut x378: u64 = 0;
4122    let mut x379: fiat_p521_scalar_u1 = 0;
4123    let (x378, x379) = fiat_p521_scalar_addcarryx_u64(x377, x365, x362);
4124    let mut x380: u64 = 0;
4125    let mut x381: fiat_p521_scalar_u1 = 0;
4126    let (x380, x381) = fiat_p521_scalar_addcarryx_u64(x379, x363, x360);
4127    let mut x382: u64 = 0;
4128    let mut x383: fiat_p521_scalar_u1 = 0;
4129    let (x382, x383) = fiat_p521_scalar_addcarryx_u64(x381, x361, x358);
4130    let mut x384: u64 = 0;
4131    let mut x385: fiat_p521_scalar_u1 = 0;
4132    let (x384, x385) = fiat_p521_scalar_addcarryx_u64(x383, x359, x356);
4133    let mut x386: u64 = 0;
4134    let mut x387: fiat_p521_scalar_u1 = 0;
4135    let (x386, x387) = fiat_p521_scalar_addcarryx_u64(x385, x357, x354);
4136    let mut x388: u64 = 0;
4137    let mut x389: fiat_p521_scalar_u1 = 0;
4138    let (x388, x389) = fiat_p521_scalar_addcarryx_u64(0x0, x336, x370);
4139    let mut x390: u64 = 0;
4140    let mut x391: fiat_p521_scalar_u1 = 0;
4141    let (x390, x391) = fiat_p521_scalar_addcarryx_u64(x389, x338, x372);
4142    let mut x392: u64 = 0;
4143    let mut x393: fiat_p521_scalar_u1 = 0;
4144    let (x392, x393) = fiat_p521_scalar_addcarryx_u64(x391, x340, x374);
4145    let mut x394: u64 = 0;
4146    let mut x395: fiat_p521_scalar_u1 = 0;
4147    let (x394, x395) = fiat_p521_scalar_addcarryx_u64(x393, x342, x376);
4148    let mut x396: u64 = 0;
4149    let mut x397: fiat_p521_scalar_u1 = 0;
4150    let (x396, x397) = fiat_p521_scalar_addcarryx_u64(x395, x344, x378);
4151    let mut x398: u64 = 0;
4152    let mut x399: fiat_p521_scalar_u1 = 0;
4153    let (x398, x399) = fiat_p521_scalar_addcarryx_u64(x397, x346, x380);
4154    let mut x400: u64 = 0;
4155    let mut x401: fiat_p521_scalar_u1 = 0;
4156    let (x400, x401) = fiat_p521_scalar_addcarryx_u64(x399, x348, x382);
4157    let mut x402: u64 = 0;
4158    let mut x403: fiat_p521_scalar_u1 = 0;
4159    let (x402, x403) = fiat_p521_scalar_addcarryx_u64(x401, x350, x384);
4160    let mut x404: u64 = 0;
4161    let mut x405: fiat_p521_scalar_u1 = 0;
4162    let (x404, x405) = fiat_p521_scalar_addcarryx_u64(
4163        x403,
4164        ((x351 as u64) + ((x335 as u64) + ((x317 as u64) + x285))),
4165        x386,
4166    );
4167    let mut x406: u64 = 0;
4168    let mut x407: fiat_p521_scalar_u1 = 0;
4169    let (x406, x407) = fiat_p521_scalar_addcarryx_u64(0x0, x390, (arg1[6]));
4170    let mut x408: u64 = 0;
4171    let mut x409: fiat_p521_scalar_u1 = 0;
4172    let (x408, x409) = fiat_p521_scalar_addcarryx_u64(x407, x392, (0x0 as u64));
4173    let mut x410: u64 = 0;
4174    let mut x411: fiat_p521_scalar_u1 = 0;
4175    let (x410, x411) = fiat_p521_scalar_addcarryx_u64(x409, x394, (0x0 as u64));
4176    let mut x412: u64 = 0;
4177    let mut x413: fiat_p521_scalar_u1 = 0;
4178    let (x412, x413) = fiat_p521_scalar_addcarryx_u64(x411, x396, (0x0 as u64));
4179    let mut x414: u64 = 0;
4180    let mut x415: fiat_p521_scalar_u1 = 0;
4181    let (x414, x415) = fiat_p521_scalar_addcarryx_u64(x413, x398, (0x0 as u64));
4182    let mut x416: u64 = 0;
4183    let mut x417: fiat_p521_scalar_u1 = 0;
4184    let (x416, x417) = fiat_p521_scalar_addcarryx_u64(x415, x400, (0x0 as u64));
4185    let mut x418: u64 = 0;
4186    let mut x419: fiat_p521_scalar_u1 = 0;
4187    let (x418, x419) = fiat_p521_scalar_addcarryx_u64(x417, x402, (0x0 as u64));
4188    let mut x420: u64 = 0;
4189    let mut x421: fiat_p521_scalar_u1 = 0;
4190    let (x420, x421) = fiat_p521_scalar_addcarryx_u64(x419, x404, (0x0 as u64));
4191    let mut x422: u64 = 0;
4192    let mut x423: u64 = 0;
4193    let (x422, x423) = fiat_p521_scalar_mulx_u64(x406, 0x1d2f5ccd79a995c7);
4194    let mut x424: u64 = 0;
4195    let mut x425: u64 = 0;
4196    let (x424, x425) = fiat_p521_scalar_mulx_u64(x422, 0x1ff);
4197    let mut x426: u64 = 0;
4198    let mut x427: u64 = 0;
4199    let (x426, x427) = fiat_p521_scalar_mulx_u64(x422, 0xffffffffffffffff);
4200    let mut x428: u64 = 0;
4201    let mut x429: u64 = 0;
4202    let (x428, x429) = fiat_p521_scalar_mulx_u64(x422, 0xffffffffffffffff);
4203    let mut x430: u64 = 0;
4204    let mut x431: u64 = 0;
4205    let (x430, x431) = fiat_p521_scalar_mulx_u64(x422, 0xffffffffffffffff);
4206    let mut x432: u64 = 0;
4207    let mut x433: u64 = 0;
4208    let (x432, x433) = fiat_p521_scalar_mulx_u64(x422, 0xfffffffffffffffa);
4209    let mut x434: u64 = 0;
4210    let mut x435: u64 = 0;
4211    let (x434, x435) = fiat_p521_scalar_mulx_u64(x422, 0x51868783bf2f966b);
4212    let mut x436: u64 = 0;
4213    let mut x437: u64 = 0;
4214    let (x436, x437) = fiat_p521_scalar_mulx_u64(x422, 0x7fcc0148f709a5d0);
4215    let mut x438: u64 = 0;
4216    let mut x439: u64 = 0;
4217    let (x438, x439) = fiat_p521_scalar_mulx_u64(x422, 0x3bb5c9b8899c47ae);
4218    let mut x440: u64 = 0;
4219    let mut x441: u64 = 0;
4220    let (x440, x441) = fiat_p521_scalar_mulx_u64(x422, 0xbb6fb71e91386409);
4221    let mut x442: u64 = 0;
4222    let mut x443: fiat_p521_scalar_u1 = 0;
4223    let (x442, x443) = fiat_p521_scalar_addcarryx_u64(0x0, x441, x438);
4224    let mut x444: u64 = 0;
4225    let mut x445: fiat_p521_scalar_u1 = 0;
4226    let (x444, x445) = fiat_p521_scalar_addcarryx_u64(x443, x439, x436);
4227    let mut x446: u64 = 0;
4228    let mut x447: fiat_p521_scalar_u1 = 0;
4229    let (x446, x447) = fiat_p521_scalar_addcarryx_u64(x445, x437, x434);
4230    let mut x448: u64 = 0;
4231    let mut x449: fiat_p521_scalar_u1 = 0;
4232    let (x448, x449) = fiat_p521_scalar_addcarryx_u64(x447, x435, x432);
4233    let mut x450: u64 = 0;
4234    let mut x451: fiat_p521_scalar_u1 = 0;
4235    let (x450, x451) = fiat_p521_scalar_addcarryx_u64(x449, x433, x430);
4236    let mut x452: u64 = 0;
4237    let mut x453: fiat_p521_scalar_u1 = 0;
4238    let (x452, x453) = fiat_p521_scalar_addcarryx_u64(x451, x431, x428);
4239    let mut x454: u64 = 0;
4240    let mut x455: fiat_p521_scalar_u1 = 0;
4241    let (x454, x455) = fiat_p521_scalar_addcarryx_u64(x453, x429, x426);
4242    let mut x456: u64 = 0;
4243    let mut x457: fiat_p521_scalar_u1 = 0;
4244    let (x456, x457) = fiat_p521_scalar_addcarryx_u64(x455, x427, x424);
4245    let mut x458: u64 = 0;
4246    let mut x459: fiat_p521_scalar_u1 = 0;
4247    let (x458, x459) = fiat_p521_scalar_addcarryx_u64(0x0, x406, x440);
4248    let mut x460: u64 = 0;
4249    let mut x461: fiat_p521_scalar_u1 = 0;
4250    let (x460, x461) = fiat_p521_scalar_addcarryx_u64(x459, x408, x442);
4251    let mut x462: u64 = 0;
4252    let mut x463: fiat_p521_scalar_u1 = 0;
4253    let (x462, x463) = fiat_p521_scalar_addcarryx_u64(x461, x410, x444);
4254    let mut x464: u64 = 0;
4255    let mut x465: fiat_p521_scalar_u1 = 0;
4256    let (x464, x465) = fiat_p521_scalar_addcarryx_u64(x463, x412, x446);
4257    let mut x466: u64 = 0;
4258    let mut x467: fiat_p521_scalar_u1 = 0;
4259    let (x466, x467) = fiat_p521_scalar_addcarryx_u64(x465, x414, x448);
4260    let mut x468: u64 = 0;
4261    let mut x469: fiat_p521_scalar_u1 = 0;
4262    let (x468, x469) = fiat_p521_scalar_addcarryx_u64(x467, x416, x450);
4263    let mut x470: u64 = 0;
4264    let mut x471: fiat_p521_scalar_u1 = 0;
4265    let (x470, x471) = fiat_p521_scalar_addcarryx_u64(x469, x418, x452);
4266    let mut x472: u64 = 0;
4267    let mut x473: fiat_p521_scalar_u1 = 0;
4268    let (x472, x473) = fiat_p521_scalar_addcarryx_u64(x471, x420, x454);
4269    let mut x474: u64 = 0;
4270    let mut x475: fiat_p521_scalar_u1 = 0;
4271    let (x474, x475) = fiat_p521_scalar_addcarryx_u64(
4272        x473,
4273        ((x421 as u64) + ((x405 as u64) + ((x387 as u64) + x355))),
4274        x456,
4275    );
4276    let mut x476: u64 = 0;
4277    let mut x477: fiat_p521_scalar_u1 = 0;
4278    let (x476, x477) = fiat_p521_scalar_addcarryx_u64(0x0, x460, (arg1[7]));
4279    let mut x478: u64 = 0;
4280    let mut x479: fiat_p521_scalar_u1 = 0;
4281    let (x478, x479) = fiat_p521_scalar_addcarryx_u64(x477, x462, (0x0 as u64));
4282    let mut x480: u64 = 0;
4283    let mut x481: fiat_p521_scalar_u1 = 0;
4284    let (x480, x481) = fiat_p521_scalar_addcarryx_u64(x479, x464, (0x0 as u64));
4285    let mut x482: u64 = 0;
4286    let mut x483: fiat_p521_scalar_u1 = 0;
4287    let (x482, x483) = fiat_p521_scalar_addcarryx_u64(x481, x466, (0x0 as u64));
4288    let mut x484: u64 = 0;
4289    let mut x485: fiat_p521_scalar_u1 = 0;
4290    let (x484, x485) = fiat_p521_scalar_addcarryx_u64(x483, x468, (0x0 as u64));
4291    let mut x486: u64 = 0;
4292    let mut x487: fiat_p521_scalar_u1 = 0;
4293    let (x486, x487) = fiat_p521_scalar_addcarryx_u64(x485, x470, (0x0 as u64));
4294    let mut x488: u64 = 0;
4295    let mut x489: fiat_p521_scalar_u1 = 0;
4296    let (x488, x489) = fiat_p521_scalar_addcarryx_u64(x487, x472, (0x0 as u64));
4297    let mut x490: u64 = 0;
4298    let mut x491: fiat_p521_scalar_u1 = 0;
4299    let (x490, x491) = fiat_p521_scalar_addcarryx_u64(x489, x474, (0x0 as u64));
4300    let mut x492: u64 = 0;
4301    let mut x493: u64 = 0;
4302    let (x492, x493) = fiat_p521_scalar_mulx_u64(x476, 0x1d2f5ccd79a995c7);
4303    let mut x494: u64 = 0;
4304    let mut x495: u64 = 0;
4305    let (x494, x495) = fiat_p521_scalar_mulx_u64(x492, 0x1ff);
4306    let mut x496: u64 = 0;
4307    let mut x497: u64 = 0;
4308    let (x496, x497) = fiat_p521_scalar_mulx_u64(x492, 0xffffffffffffffff);
4309    let mut x498: u64 = 0;
4310    let mut x499: u64 = 0;
4311    let (x498, x499) = fiat_p521_scalar_mulx_u64(x492, 0xffffffffffffffff);
4312    let mut x500: u64 = 0;
4313    let mut x501: u64 = 0;
4314    let (x500, x501) = fiat_p521_scalar_mulx_u64(x492, 0xffffffffffffffff);
4315    let mut x502: u64 = 0;
4316    let mut x503: u64 = 0;
4317    let (x502, x503) = fiat_p521_scalar_mulx_u64(x492, 0xfffffffffffffffa);
4318    let mut x504: u64 = 0;
4319    let mut x505: u64 = 0;
4320    let (x504, x505) = fiat_p521_scalar_mulx_u64(x492, 0x51868783bf2f966b);
4321    let mut x506: u64 = 0;
4322    let mut x507: u64 = 0;
4323    let (x506, x507) = fiat_p521_scalar_mulx_u64(x492, 0x7fcc0148f709a5d0);
4324    let mut x508: u64 = 0;
4325    let mut x509: u64 = 0;
4326    let (x508, x509) = fiat_p521_scalar_mulx_u64(x492, 0x3bb5c9b8899c47ae);
4327    let mut x510: u64 = 0;
4328    let mut x511: u64 = 0;
4329    let (x510, x511) = fiat_p521_scalar_mulx_u64(x492, 0xbb6fb71e91386409);
4330    let mut x512: u64 = 0;
4331    let mut x513: fiat_p521_scalar_u1 = 0;
4332    let (x512, x513) = fiat_p521_scalar_addcarryx_u64(0x0, x511, x508);
4333    let mut x514: u64 = 0;
4334    let mut x515: fiat_p521_scalar_u1 = 0;
4335    let (x514, x515) = fiat_p521_scalar_addcarryx_u64(x513, x509, x506);
4336    let mut x516: u64 = 0;
4337    let mut x517: fiat_p521_scalar_u1 = 0;
4338    let (x516, x517) = fiat_p521_scalar_addcarryx_u64(x515, x507, x504);
4339    let mut x518: u64 = 0;
4340    let mut x519: fiat_p521_scalar_u1 = 0;
4341    let (x518, x519) = fiat_p521_scalar_addcarryx_u64(x517, x505, x502);
4342    let mut x520: u64 = 0;
4343    let mut x521: fiat_p521_scalar_u1 = 0;
4344    let (x520, x521) = fiat_p521_scalar_addcarryx_u64(x519, x503, x500);
4345    let mut x522: u64 = 0;
4346    let mut x523: fiat_p521_scalar_u1 = 0;
4347    let (x522, x523) = fiat_p521_scalar_addcarryx_u64(x521, x501, x498);
4348    let mut x524: u64 = 0;
4349    let mut x525: fiat_p521_scalar_u1 = 0;
4350    let (x524, x525) = fiat_p521_scalar_addcarryx_u64(x523, x499, x496);
4351    let mut x526: u64 = 0;
4352    let mut x527: fiat_p521_scalar_u1 = 0;
4353    let (x526, x527) = fiat_p521_scalar_addcarryx_u64(x525, x497, x494);
4354    let mut x528: u64 = 0;
4355    let mut x529: fiat_p521_scalar_u1 = 0;
4356    let (x528, x529) = fiat_p521_scalar_addcarryx_u64(0x0, x476, x510);
4357    let mut x530: u64 = 0;
4358    let mut x531: fiat_p521_scalar_u1 = 0;
4359    let (x530, x531) = fiat_p521_scalar_addcarryx_u64(x529, x478, x512);
4360    let mut x532: u64 = 0;
4361    let mut x533: fiat_p521_scalar_u1 = 0;
4362    let (x532, x533) = fiat_p521_scalar_addcarryx_u64(x531, x480, x514);
4363    let mut x534: u64 = 0;
4364    let mut x535: fiat_p521_scalar_u1 = 0;
4365    let (x534, x535) = fiat_p521_scalar_addcarryx_u64(x533, x482, x516);
4366    let mut x536: u64 = 0;
4367    let mut x537: fiat_p521_scalar_u1 = 0;
4368    let (x536, x537) = fiat_p521_scalar_addcarryx_u64(x535, x484, x518);
4369    let mut x538: u64 = 0;
4370    let mut x539: fiat_p521_scalar_u1 = 0;
4371    let (x538, x539) = fiat_p521_scalar_addcarryx_u64(x537, x486, x520);
4372    let mut x540: u64 = 0;
4373    let mut x541: fiat_p521_scalar_u1 = 0;
4374    let (x540, x541) = fiat_p521_scalar_addcarryx_u64(x539, x488, x522);
4375    let mut x542: u64 = 0;
4376    let mut x543: fiat_p521_scalar_u1 = 0;
4377    let (x542, x543) = fiat_p521_scalar_addcarryx_u64(x541, x490, x524);
4378    let mut x544: u64 = 0;
4379    let mut x545: fiat_p521_scalar_u1 = 0;
4380    let (x544, x545) = fiat_p521_scalar_addcarryx_u64(
4381        x543,
4382        ((x491 as u64) + ((x475 as u64) + ((x457 as u64) + x425))),
4383        x526,
4384    );
4385    let mut x546: u64 = 0;
4386    let mut x547: fiat_p521_scalar_u1 = 0;
4387    let (x546, x547) = fiat_p521_scalar_addcarryx_u64(0x0, x530, (arg1[8]));
4388    let mut x548: u64 = 0;
4389    let mut x549: fiat_p521_scalar_u1 = 0;
4390    let (x548, x549) = fiat_p521_scalar_addcarryx_u64(x547, x532, (0x0 as u64));
4391    let mut x550: u64 = 0;
4392    let mut x551: fiat_p521_scalar_u1 = 0;
4393    let (x550, x551) = fiat_p521_scalar_addcarryx_u64(x549, x534, (0x0 as u64));
4394    let mut x552: u64 = 0;
4395    let mut x553: fiat_p521_scalar_u1 = 0;
4396    let (x552, x553) = fiat_p521_scalar_addcarryx_u64(x551, x536, (0x0 as u64));
4397    let mut x554: u64 = 0;
4398    let mut x555: fiat_p521_scalar_u1 = 0;
4399    let (x554, x555) = fiat_p521_scalar_addcarryx_u64(x553, x538, (0x0 as u64));
4400    let mut x556: u64 = 0;
4401    let mut x557: fiat_p521_scalar_u1 = 0;
4402    let (x556, x557) = fiat_p521_scalar_addcarryx_u64(x555, x540, (0x0 as u64));
4403    let mut x558: u64 = 0;
4404    let mut x559: fiat_p521_scalar_u1 = 0;
4405    let (x558, x559) = fiat_p521_scalar_addcarryx_u64(x557, x542, (0x0 as u64));
4406    let mut x560: u64 = 0;
4407    let mut x561: fiat_p521_scalar_u1 = 0;
4408    let (x560, x561) = fiat_p521_scalar_addcarryx_u64(x559, x544, (0x0 as u64));
4409    let mut x562: u64 = 0;
4410    let mut x563: u64 = 0;
4411    let (x562, x563) = fiat_p521_scalar_mulx_u64(x546, 0x1d2f5ccd79a995c7);
4412    let mut x564: u64 = 0;
4413    let mut x565: u64 = 0;
4414    let (x564, x565) = fiat_p521_scalar_mulx_u64(x562, 0x1ff);
4415    let mut x566: u64 = 0;
4416    let mut x567: u64 = 0;
4417    let (x566, x567) = fiat_p521_scalar_mulx_u64(x562, 0xffffffffffffffff);
4418    let mut x568: u64 = 0;
4419    let mut x569: u64 = 0;
4420    let (x568, x569) = fiat_p521_scalar_mulx_u64(x562, 0xffffffffffffffff);
4421    let mut x570: u64 = 0;
4422    let mut x571: u64 = 0;
4423    let (x570, x571) = fiat_p521_scalar_mulx_u64(x562, 0xffffffffffffffff);
4424    let mut x572: u64 = 0;
4425    let mut x573: u64 = 0;
4426    let (x572, x573) = fiat_p521_scalar_mulx_u64(x562, 0xfffffffffffffffa);
4427    let mut x574: u64 = 0;
4428    let mut x575: u64 = 0;
4429    let (x574, x575) = fiat_p521_scalar_mulx_u64(x562, 0x51868783bf2f966b);
4430    let mut x576: u64 = 0;
4431    let mut x577: u64 = 0;
4432    let (x576, x577) = fiat_p521_scalar_mulx_u64(x562, 0x7fcc0148f709a5d0);
4433    let mut x578: u64 = 0;
4434    let mut x579: u64 = 0;
4435    let (x578, x579) = fiat_p521_scalar_mulx_u64(x562, 0x3bb5c9b8899c47ae);
4436    let mut x580: u64 = 0;
4437    let mut x581: u64 = 0;
4438    let (x580, x581) = fiat_p521_scalar_mulx_u64(x562, 0xbb6fb71e91386409);
4439    let mut x582: u64 = 0;
4440    let mut x583: fiat_p521_scalar_u1 = 0;
4441    let (x582, x583) = fiat_p521_scalar_addcarryx_u64(0x0, x581, x578);
4442    let mut x584: u64 = 0;
4443    let mut x585: fiat_p521_scalar_u1 = 0;
4444    let (x584, x585) = fiat_p521_scalar_addcarryx_u64(x583, x579, x576);
4445    let mut x586: u64 = 0;
4446    let mut x587: fiat_p521_scalar_u1 = 0;
4447    let (x586, x587) = fiat_p521_scalar_addcarryx_u64(x585, x577, x574);
4448    let mut x588: u64 = 0;
4449    let mut x589: fiat_p521_scalar_u1 = 0;
4450    let (x588, x589) = fiat_p521_scalar_addcarryx_u64(x587, x575, x572);
4451    let mut x590: u64 = 0;
4452    let mut x591: fiat_p521_scalar_u1 = 0;
4453    let (x590, x591) = fiat_p521_scalar_addcarryx_u64(x589, x573, x570);
4454    let mut x592: u64 = 0;
4455    let mut x593: fiat_p521_scalar_u1 = 0;
4456    let (x592, x593) = fiat_p521_scalar_addcarryx_u64(x591, x571, x568);
4457    let mut x594: u64 = 0;
4458    let mut x595: fiat_p521_scalar_u1 = 0;
4459    let (x594, x595) = fiat_p521_scalar_addcarryx_u64(x593, x569, x566);
4460    let mut x596: u64 = 0;
4461    let mut x597: fiat_p521_scalar_u1 = 0;
4462    let (x596, x597) = fiat_p521_scalar_addcarryx_u64(x595, x567, x564);
4463    let mut x598: u64 = 0;
4464    let mut x599: fiat_p521_scalar_u1 = 0;
4465    let (x598, x599) = fiat_p521_scalar_addcarryx_u64(0x0, x546, x580);
4466    let mut x600: u64 = 0;
4467    let mut x601: fiat_p521_scalar_u1 = 0;
4468    let (x600, x601) = fiat_p521_scalar_addcarryx_u64(x599, x548, x582);
4469    let mut x602: u64 = 0;
4470    let mut x603: fiat_p521_scalar_u1 = 0;
4471    let (x602, x603) = fiat_p521_scalar_addcarryx_u64(x601, x550, x584);
4472    let mut x604: u64 = 0;
4473    let mut x605: fiat_p521_scalar_u1 = 0;
4474    let (x604, x605) = fiat_p521_scalar_addcarryx_u64(x603, x552, x586);
4475    let mut x606: u64 = 0;
4476    let mut x607: fiat_p521_scalar_u1 = 0;
4477    let (x606, x607) = fiat_p521_scalar_addcarryx_u64(x605, x554, x588);
4478    let mut x608: u64 = 0;
4479    let mut x609: fiat_p521_scalar_u1 = 0;
4480    let (x608, x609) = fiat_p521_scalar_addcarryx_u64(x607, x556, x590);
4481    let mut x610: u64 = 0;
4482    let mut x611: fiat_p521_scalar_u1 = 0;
4483    let (x610, x611) = fiat_p521_scalar_addcarryx_u64(x609, x558, x592);
4484    let mut x612: u64 = 0;
4485    let mut x613: fiat_p521_scalar_u1 = 0;
4486    let (x612, x613) = fiat_p521_scalar_addcarryx_u64(x611, x560, x594);
4487    let mut x614: u64 = 0;
4488    let mut x615: fiat_p521_scalar_u1 = 0;
4489    let (x614, x615) = fiat_p521_scalar_addcarryx_u64(
4490        x613,
4491        ((x561 as u64) + ((x545 as u64) + ((x527 as u64) + x495))),
4492        x596,
4493    );
4494    let x616: u64 = ((x615 as u64) + ((x597 as u64) + x565));
4495    let mut x617: u64 = 0;
4496    let mut x618: fiat_p521_scalar_u1 = 0;
4497    let (x617, x618) = fiat_p521_scalar_subborrowx_u64(0x0, x600, 0xbb6fb71e91386409);
4498    let mut x619: u64 = 0;
4499    let mut x620: fiat_p521_scalar_u1 = 0;
4500    let (x619, x620) = fiat_p521_scalar_subborrowx_u64(x618, x602, 0x3bb5c9b8899c47ae);
4501    let mut x621: u64 = 0;
4502    let mut x622: fiat_p521_scalar_u1 = 0;
4503    let (x621, x622) = fiat_p521_scalar_subborrowx_u64(x620, x604, 0x7fcc0148f709a5d0);
4504    let mut x623: u64 = 0;
4505    let mut x624: fiat_p521_scalar_u1 = 0;
4506    let (x623, x624) = fiat_p521_scalar_subborrowx_u64(x622, x606, 0x51868783bf2f966b);
4507    let mut x625: u64 = 0;
4508    let mut x626: fiat_p521_scalar_u1 = 0;
4509    let (x625, x626) = fiat_p521_scalar_subborrowx_u64(x624, x608, 0xfffffffffffffffa);
4510    let mut x627: u64 = 0;
4511    let mut x628: fiat_p521_scalar_u1 = 0;
4512    let (x627, x628) = fiat_p521_scalar_subborrowx_u64(x626, x610, 0xffffffffffffffff);
4513    let mut x629: u64 = 0;
4514    let mut x630: fiat_p521_scalar_u1 = 0;
4515    let (x629, x630) = fiat_p521_scalar_subborrowx_u64(x628, x612, 0xffffffffffffffff);
4516    let mut x631: u64 = 0;
4517    let mut x632: fiat_p521_scalar_u1 = 0;
4518    let (x631, x632) = fiat_p521_scalar_subborrowx_u64(x630, x614, 0xffffffffffffffff);
4519    let mut x633: u64 = 0;
4520    let mut x634: fiat_p521_scalar_u1 = 0;
4521    let (x633, x634) = fiat_p521_scalar_subborrowx_u64(x632, x616, 0x1ff);
4522    let mut x635: u64 = 0;
4523    let mut x636: fiat_p521_scalar_u1 = 0;
4524    let (x635, x636) = fiat_p521_scalar_subborrowx_u64(x634, (0x0 as u64), (0x0 as u64));
4525    let mut x637: u64 = 0;
4526    let (x637) = fiat_p521_scalar_cmovznz_u64(x636, x617, x600);
4527    let mut x638: u64 = 0;
4528    let (x638) = fiat_p521_scalar_cmovznz_u64(x636, x619, x602);
4529    let mut x639: u64 = 0;
4530    let (x639) = fiat_p521_scalar_cmovznz_u64(x636, x621, x604);
4531    let mut x640: u64 = 0;
4532    let (x640) = fiat_p521_scalar_cmovznz_u64(x636, x623, x606);
4533    let mut x641: u64 = 0;
4534    let (x641) = fiat_p521_scalar_cmovznz_u64(x636, x625, x608);
4535    let mut x642: u64 = 0;
4536    let (x642) = fiat_p521_scalar_cmovznz_u64(x636, x627, x610);
4537    let mut x643: u64 = 0;
4538    let (x643) = fiat_p521_scalar_cmovznz_u64(x636, x629, x612);
4539    let mut x644: u64 = 0;
4540    let (x644) = fiat_p521_scalar_cmovznz_u64(x636, x631, x614);
4541    let mut x645: u64 = 0;
4542    let (x645) = fiat_p521_scalar_cmovznz_u64(x636, x633, x616);
4543    out1[0] = x637;
4544    out1[1] = x638;
4545    out1[2] = x639;
4546    out1[3] = x640;
4547    out1[4] = x641;
4548    out1[5] = x642;
4549    out1[6] = x643;
4550    out1[7] = x644;
4551    out1[8] = x645;
4552    out1
4553}
4554#[doc = " The function fiat_p521_scalar_to_montgomery translates a field element into the Montgomery domain."]
4555#[doc = ""]
4556#[doc = " Preconditions:"]
4557#[doc = "   0 ≤ eval arg1 < m"]
4558#[doc = " Postconditions:"]
4559#[doc = "   eval (from_montgomery out1) mod m = eval arg1 mod m"]
4560#[doc = "   0 ≤ eval out1 < m"]
4561#[doc = ""]
4562#[inline]
4563pub const fn fiat_p521_scalar_to_montgomery(
4564    arg1: &fiat_p521_scalar_non_montgomery_domain_field_element,
4565) -> fiat_p521_scalar_montgomery_domain_field_element {
4566    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
4567    let x1: u64 = (arg1[1]);
4568    let x2: u64 = (arg1[2]);
4569    let x3: u64 = (arg1[3]);
4570    let x4: u64 = (arg1[4]);
4571    let x5: u64 = (arg1[5]);
4572    let x6: u64 = (arg1[6]);
4573    let x7: u64 = (arg1[7]);
4574    let x8: u64 = (arg1[8]);
4575    let x9: u64 = (arg1[0]);
4576    let mut x10: u64 = 0;
4577    let mut x11: u64 = 0;
4578    let (x10, x11) = fiat_p521_scalar_mulx_u64(x9, 0x3d);
4579    let mut x12: u64 = 0;
4580    let mut x13: u64 = 0;
4581    let (x12, x13) = fiat_p521_scalar_mulx_u64(x9, 0x2d8e03d1492d0d45);
4582    let mut x14: u64 = 0;
4583    let mut x15: u64 = 0;
4584    let (x14, x15) = fiat_p521_scalar_mulx_u64(x9, 0x5bcc6d61a8e567bc);
4585    let mut x16: u64 = 0;
4586    let mut x17: u64 = 0;
4587    let (x16, x17) = fiat_p521_scalar_mulx_u64(x9, 0xcff3d142b7756e3e);
4588    let mut x18: u64 = 0;
4589    let mut x19: u64 = 0;
4590    let (x18, x19) = fiat_p521_scalar_mulx_u64(x9, 0xdd6e23d82e49c7db);
4591    let mut x20: u64 = 0;
4592    let mut x21: u64 = 0;
4593    let (x20, x21) = fiat_p521_scalar_mulx_u64(x9, 0xd3721ef557f75e06);
4594    let mut x22: u64 = 0;
4595    let mut x23: u64 = 0;
4596    let (x22, x23) = fiat_p521_scalar_mulx_u64(x9, 0x12a78d38794573ff);
4597    let mut x24: u64 = 0;
4598    let mut x25: u64 = 0;
4599    let (x24, x25) = fiat_p521_scalar_mulx_u64(x9, 0xf707badce5547ea3);
4600    let mut x26: u64 = 0;
4601    let mut x27: u64 = 0;
4602    let (x26, x27) = fiat_p521_scalar_mulx_u64(x9, 0x137cd04dcf15dd04);
4603    let mut x28: u64 = 0;
4604    let mut x29: fiat_p521_scalar_u1 = 0;
4605    let (x28, x29) = fiat_p521_scalar_addcarryx_u64(0x0, x27, x24);
4606    let mut x30: u64 = 0;
4607    let mut x31: fiat_p521_scalar_u1 = 0;
4608    let (x30, x31) = fiat_p521_scalar_addcarryx_u64(x29, x25, x22);
4609    let mut x32: u64 = 0;
4610    let mut x33: fiat_p521_scalar_u1 = 0;
4611    let (x32, x33) = fiat_p521_scalar_addcarryx_u64(x31, x23, x20);
4612    let mut x34: u64 = 0;
4613    let mut x35: fiat_p521_scalar_u1 = 0;
4614    let (x34, x35) = fiat_p521_scalar_addcarryx_u64(x33, x21, x18);
4615    let mut x36: u64 = 0;
4616    let mut x37: fiat_p521_scalar_u1 = 0;
4617    let (x36, x37) = fiat_p521_scalar_addcarryx_u64(x35, x19, x16);
4618    let mut x38: u64 = 0;
4619    let mut x39: fiat_p521_scalar_u1 = 0;
4620    let (x38, x39) = fiat_p521_scalar_addcarryx_u64(x37, x17, x14);
4621    let mut x40: u64 = 0;
4622    let mut x41: fiat_p521_scalar_u1 = 0;
4623    let (x40, x41) = fiat_p521_scalar_addcarryx_u64(x39, x15, x12);
4624    let mut x42: u64 = 0;
4625    let mut x43: fiat_p521_scalar_u1 = 0;
4626    let (x42, x43) = fiat_p521_scalar_addcarryx_u64(x41, x13, x10);
4627    let mut x44: u64 = 0;
4628    let mut x45: u64 = 0;
4629    let (x44, x45) = fiat_p521_scalar_mulx_u64(x26, 0x1d2f5ccd79a995c7);
4630    let mut x46: u64 = 0;
4631    let mut x47: u64 = 0;
4632    let (x46, x47) = fiat_p521_scalar_mulx_u64(x44, 0x1ff);
4633    let mut x48: u64 = 0;
4634    let mut x49: u64 = 0;
4635    let (x48, x49) = fiat_p521_scalar_mulx_u64(x44, 0xffffffffffffffff);
4636    let mut x50: u64 = 0;
4637    let mut x51: u64 = 0;
4638    let (x50, x51) = fiat_p521_scalar_mulx_u64(x44, 0xffffffffffffffff);
4639    let mut x52: u64 = 0;
4640    let mut x53: u64 = 0;
4641    let (x52, x53) = fiat_p521_scalar_mulx_u64(x44, 0xffffffffffffffff);
4642    let mut x54: u64 = 0;
4643    let mut x55: u64 = 0;
4644    let (x54, x55) = fiat_p521_scalar_mulx_u64(x44, 0xfffffffffffffffa);
4645    let mut x56: u64 = 0;
4646    let mut x57: u64 = 0;
4647    let (x56, x57) = fiat_p521_scalar_mulx_u64(x44, 0x51868783bf2f966b);
4648    let mut x58: u64 = 0;
4649    let mut x59: u64 = 0;
4650    let (x58, x59) = fiat_p521_scalar_mulx_u64(x44, 0x7fcc0148f709a5d0);
4651    let mut x60: u64 = 0;
4652    let mut x61: u64 = 0;
4653    let (x60, x61) = fiat_p521_scalar_mulx_u64(x44, 0x3bb5c9b8899c47ae);
4654    let mut x62: u64 = 0;
4655    let mut x63: u64 = 0;
4656    let (x62, x63) = fiat_p521_scalar_mulx_u64(x44, 0xbb6fb71e91386409);
4657    let mut x64: u64 = 0;
4658    let mut x65: fiat_p521_scalar_u1 = 0;
4659    let (x64, x65) = fiat_p521_scalar_addcarryx_u64(0x0, x63, x60);
4660    let mut x66: u64 = 0;
4661    let mut x67: fiat_p521_scalar_u1 = 0;
4662    let (x66, x67) = fiat_p521_scalar_addcarryx_u64(x65, x61, x58);
4663    let mut x68: u64 = 0;
4664    let mut x69: fiat_p521_scalar_u1 = 0;
4665    let (x68, x69) = fiat_p521_scalar_addcarryx_u64(x67, x59, x56);
4666    let mut x70: u64 = 0;
4667    let mut x71: fiat_p521_scalar_u1 = 0;
4668    let (x70, x71) = fiat_p521_scalar_addcarryx_u64(x69, x57, x54);
4669    let mut x72: u64 = 0;
4670    let mut x73: fiat_p521_scalar_u1 = 0;
4671    let (x72, x73) = fiat_p521_scalar_addcarryx_u64(x71, x55, x52);
4672    let mut x74: u64 = 0;
4673    let mut x75: fiat_p521_scalar_u1 = 0;
4674    let (x74, x75) = fiat_p521_scalar_addcarryx_u64(x73, x53, x50);
4675    let mut x76: u64 = 0;
4676    let mut x77: fiat_p521_scalar_u1 = 0;
4677    let (x76, x77) = fiat_p521_scalar_addcarryx_u64(x75, x51, x48);
4678    let mut x78: u64 = 0;
4679    let mut x79: fiat_p521_scalar_u1 = 0;
4680    let (x78, x79) = fiat_p521_scalar_addcarryx_u64(x77, x49, x46);
4681    let mut x80: u64 = 0;
4682    let mut x81: fiat_p521_scalar_u1 = 0;
4683    let (x80, x81) = fiat_p521_scalar_addcarryx_u64(0x0, x26, x62);
4684    let mut x82: u64 = 0;
4685    let mut x83: fiat_p521_scalar_u1 = 0;
4686    let (x82, x83) = fiat_p521_scalar_addcarryx_u64(x81, x28, x64);
4687    let mut x84: u64 = 0;
4688    let mut x85: fiat_p521_scalar_u1 = 0;
4689    let (x84, x85) = fiat_p521_scalar_addcarryx_u64(x83, x30, x66);
4690    let mut x86: u64 = 0;
4691    let mut x87: fiat_p521_scalar_u1 = 0;
4692    let (x86, x87) = fiat_p521_scalar_addcarryx_u64(x85, x32, x68);
4693    let mut x88: u64 = 0;
4694    let mut x89: fiat_p521_scalar_u1 = 0;
4695    let (x88, x89) = fiat_p521_scalar_addcarryx_u64(x87, x34, x70);
4696    let mut x90: u64 = 0;
4697    let mut x91: fiat_p521_scalar_u1 = 0;
4698    let (x90, x91) = fiat_p521_scalar_addcarryx_u64(x89, x36, x72);
4699    let mut x92: u64 = 0;
4700    let mut x93: fiat_p521_scalar_u1 = 0;
4701    let (x92, x93) = fiat_p521_scalar_addcarryx_u64(x91, x38, x74);
4702    let mut x94: u64 = 0;
4703    let mut x95: fiat_p521_scalar_u1 = 0;
4704    let (x94, x95) = fiat_p521_scalar_addcarryx_u64(x93, x40, x76);
4705    let mut x96: u64 = 0;
4706    let mut x97: fiat_p521_scalar_u1 = 0;
4707    let (x96, x97) = fiat_p521_scalar_addcarryx_u64(x95, x42, x78);
4708    let mut x98: u64 = 0;
4709    let mut x99: u64 = 0;
4710    let (x98, x99) = fiat_p521_scalar_mulx_u64(x1, 0x3d);
4711    let mut x100: u64 = 0;
4712    let mut x101: u64 = 0;
4713    let (x100, x101) = fiat_p521_scalar_mulx_u64(x1, 0x2d8e03d1492d0d45);
4714    let mut x102: u64 = 0;
4715    let mut x103: u64 = 0;
4716    let (x102, x103) = fiat_p521_scalar_mulx_u64(x1, 0x5bcc6d61a8e567bc);
4717    let mut x104: u64 = 0;
4718    let mut x105: u64 = 0;
4719    let (x104, x105) = fiat_p521_scalar_mulx_u64(x1, 0xcff3d142b7756e3e);
4720    let mut x106: u64 = 0;
4721    let mut x107: u64 = 0;
4722    let (x106, x107) = fiat_p521_scalar_mulx_u64(x1, 0xdd6e23d82e49c7db);
4723    let mut x108: u64 = 0;
4724    let mut x109: u64 = 0;
4725    let (x108, x109) = fiat_p521_scalar_mulx_u64(x1, 0xd3721ef557f75e06);
4726    let mut x110: u64 = 0;
4727    let mut x111: u64 = 0;
4728    let (x110, x111) = fiat_p521_scalar_mulx_u64(x1, 0x12a78d38794573ff);
4729    let mut x112: u64 = 0;
4730    let mut x113: u64 = 0;
4731    let (x112, x113) = fiat_p521_scalar_mulx_u64(x1, 0xf707badce5547ea3);
4732    let mut x114: u64 = 0;
4733    let mut x115: u64 = 0;
4734    let (x114, x115) = fiat_p521_scalar_mulx_u64(x1, 0x137cd04dcf15dd04);
4735    let mut x116: u64 = 0;
4736    let mut x117: fiat_p521_scalar_u1 = 0;
4737    let (x116, x117) = fiat_p521_scalar_addcarryx_u64(0x0, x115, x112);
4738    let mut x118: u64 = 0;
4739    let mut x119: fiat_p521_scalar_u1 = 0;
4740    let (x118, x119) = fiat_p521_scalar_addcarryx_u64(x117, x113, x110);
4741    let mut x120: u64 = 0;
4742    let mut x121: fiat_p521_scalar_u1 = 0;
4743    let (x120, x121) = fiat_p521_scalar_addcarryx_u64(x119, x111, x108);
4744    let mut x122: u64 = 0;
4745    let mut x123: fiat_p521_scalar_u1 = 0;
4746    let (x122, x123) = fiat_p521_scalar_addcarryx_u64(x121, x109, x106);
4747    let mut x124: u64 = 0;
4748    let mut x125: fiat_p521_scalar_u1 = 0;
4749    let (x124, x125) = fiat_p521_scalar_addcarryx_u64(x123, x107, x104);
4750    let mut x126: u64 = 0;
4751    let mut x127: fiat_p521_scalar_u1 = 0;
4752    let (x126, x127) = fiat_p521_scalar_addcarryx_u64(x125, x105, x102);
4753    let mut x128: u64 = 0;
4754    let mut x129: fiat_p521_scalar_u1 = 0;
4755    let (x128, x129) = fiat_p521_scalar_addcarryx_u64(x127, x103, x100);
4756    let mut x130: u64 = 0;
4757    let mut x131: fiat_p521_scalar_u1 = 0;
4758    let (x130, x131) = fiat_p521_scalar_addcarryx_u64(x129, x101, x98);
4759    let mut x132: u64 = 0;
4760    let mut x133: fiat_p521_scalar_u1 = 0;
4761    let (x132, x133) = fiat_p521_scalar_addcarryx_u64(0x0, x82, x114);
4762    let mut x134: u64 = 0;
4763    let mut x135: fiat_p521_scalar_u1 = 0;
4764    let (x134, x135) = fiat_p521_scalar_addcarryx_u64(x133, x84, x116);
4765    let mut x136: u64 = 0;
4766    let mut x137: fiat_p521_scalar_u1 = 0;
4767    let (x136, x137) = fiat_p521_scalar_addcarryx_u64(x135, x86, x118);
4768    let mut x138: u64 = 0;
4769    let mut x139: fiat_p521_scalar_u1 = 0;
4770    let (x138, x139) = fiat_p521_scalar_addcarryx_u64(x137, x88, x120);
4771    let mut x140: u64 = 0;
4772    let mut x141: fiat_p521_scalar_u1 = 0;
4773    let (x140, x141) = fiat_p521_scalar_addcarryx_u64(x139, x90, x122);
4774    let mut x142: u64 = 0;
4775    let mut x143: fiat_p521_scalar_u1 = 0;
4776    let (x142, x143) = fiat_p521_scalar_addcarryx_u64(x141, x92, x124);
4777    let mut x144: u64 = 0;
4778    let mut x145: fiat_p521_scalar_u1 = 0;
4779    let (x144, x145) = fiat_p521_scalar_addcarryx_u64(x143, x94, x126);
4780    let mut x146: u64 = 0;
4781    let mut x147: fiat_p521_scalar_u1 = 0;
4782    let (x146, x147) = fiat_p521_scalar_addcarryx_u64(x145, x96, x128);
4783    let mut x148: u64 = 0;
4784    let mut x149: fiat_p521_scalar_u1 = 0;
4785    let (x148, x149) = fiat_p521_scalar_addcarryx_u64(
4786        x147,
4787        (((x97 as u64) + ((x43 as u64) + x11)) + ((x79 as u64) + x47)),
4788        x130,
4789    );
4790    let mut x150: u64 = 0;
4791    let mut x151: u64 = 0;
4792    let (x150, x151) = fiat_p521_scalar_mulx_u64(x132, 0x1d2f5ccd79a995c7);
4793    let mut x152: u64 = 0;
4794    let mut x153: u64 = 0;
4795    let (x152, x153) = fiat_p521_scalar_mulx_u64(x150, 0x1ff);
4796    let mut x154: u64 = 0;
4797    let mut x155: u64 = 0;
4798    let (x154, x155) = fiat_p521_scalar_mulx_u64(x150, 0xffffffffffffffff);
4799    let mut x156: u64 = 0;
4800    let mut x157: u64 = 0;
4801    let (x156, x157) = fiat_p521_scalar_mulx_u64(x150, 0xffffffffffffffff);
4802    let mut x158: u64 = 0;
4803    let mut x159: u64 = 0;
4804    let (x158, x159) = fiat_p521_scalar_mulx_u64(x150, 0xffffffffffffffff);
4805    let mut x160: u64 = 0;
4806    let mut x161: u64 = 0;
4807    let (x160, x161) = fiat_p521_scalar_mulx_u64(x150, 0xfffffffffffffffa);
4808    let mut x162: u64 = 0;
4809    let mut x163: u64 = 0;
4810    let (x162, x163) = fiat_p521_scalar_mulx_u64(x150, 0x51868783bf2f966b);
4811    let mut x164: u64 = 0;
4812    let mut x165: u64 = 0;
4813    let (x164, x165) = fiat_p521_scalar_mulx_u64(x150, 0x7fcc0148f709a5d0);
4814    let mut x166: u64 = 0;
4815    let mut x167: u64 = 0;
4816    let (x166, x167) = fiat_p521_scalar_mulx_u64(x150, 0x3bb5c9b8899c47ae);
4817    let mut x168: u64 = 0;
4818    let mut x169: u64 = 0;
4819    let (x168, x169) = fiat_p521_scalar_mulx_u64(x150, 0xbb6fb71e91386409);
4820    let mut x170: u64 = 0;
4821    let mut x171: fiat_p521_scalar_u1 = 0;
4822    let (x170, x171) = fiat_p521_scalar_addcarryx_u64(0x0, x169, x166);
4823    let mut x172: u64 = 0;
4824    let mut x173: fiat_p521_scalar_u1 = 0;
4825    let (x172, x173) = fiat_p521_scalar_addcarryx_u64(x171, x167, x164);
4826    let mut x174: u64 = 0;
4827    let mut x175: fiat_p521_scalar_u1 = 0;
4828    let (x174, x175) = fiat_p521_scalar_addcarryx_u64(x173, x165, x162);
4829    let mut x176: u64 = 0;
4830    let mut x177: fiat_p521_scalar_u1 = 0;
4831    let (x176, x177) = fiat_p521_scalar_addcarryx_u64(x175, x163, x160);
4832    let mut x178: u64 = 0;
4833    let mut x179: fiat_p521_scalar_u1 = 0;
4834    let (x178, x179) = fiat_p521_scalar_addcarryx_u64(x177, x161, x158);
4835    let mut x180: u64 = 0;
4836    let mut x181: fiat_p521_scalar_u1 = 0;
4837    let (x180, x181) = fiat_p521_scalar_addcarryx_u64(x179, x159, x156);
4838    let mut x182: u64 = 0;
4839    let mut x183: fiat_p521_scalar_u1 = 0;
4840    let (x182, x183) = fiat_p521_scalar_addcarryx_u64(x181, x157, x154);
4841    let mut x184: u64 = 0;
4842    let mut x185: fiat_p521_scalar_u1 = 0;
4843    let (x184, x185) = fiat_p521_scalar_addcarryx_u64(x183, x155, x152);
4844    let mut x186: u64 = 0;
4845    let mut x187: fiat_p521_scalar_u1 = 0;
4846    let (x186, x187) = fiat_p521_scalar_addcarryx_u64(0x0, x132, x168);
4847    let mut x188: u64 = 0;
4848    let mut x189: fiat_p521_scalar_u1 = 0;
4849    let (x188, x189) = fiat_p521_scalar_addcarryx_u64(x187, x134, x170);
4850    let mut x190: u64 = 0;
4851    let mut x191: fiat_p521_scalar_u1 = 0;
4852    let (x190, x191) = fiat_p521_scalar_addcarryx_u64(x189, x136, x172);
4853    let mut x192: u64 = 0;
4854    let mut x193: fiat_p521_scalar_u1 = 0;
4855    let (x192, x193) = fiat_p521_scalar_addcarryx_u64(x191, x138, x174);
4856    let mut x194: u64 = 0;
4857    let mut x195: fiat_p521_scalar_u1 = 0;
4858    let (x194, x195) = fiat_p521_scalar_addcarryx_u64(x193, x140, x176);
4859    let mut x196: u64 = 0;
4860    let mut x197: fiat_p521_scalar_u1 = 0;
4861    let (x196, x197) = fiat_p521_scalar_addcarryx_u64(x195, x142, x178);
4862    let mut x198: u64 = 0;
4863    let mut x199: fiat_p521_scalar_u1 = 0;
4864    let (x198, x199) = fiat_p521_scalar_addcarryx_u64(x197, x144, x180);
4865    let mut x200: u64 = 0;
4866    let mut x201: fiat_p521_scalar_u1 = 0;
4867    let (x200, x201) = fiat_p521_scalar_addcarryx_u64(x199, x146, x182);
4868    let mut x202: u64 = 0;
4869    let mut x203: fiat_p521_scalar_u1 = 0;
4870    let (x202, x203) = fiat_p521_scalar_addcarryx_u64(x201, x148, x184);
4871    let mut x204: u64 = 0;
4872    let mut x205: u64 = 0;
4873    let (x204, x205) = fiat_p521_scalar_mulx_u64(x2, 0x3d);
4874    let mut x206: u64 = 0;
4875    let mut x207: u64 = 0;
4876    let (x206, x207) = fiat_p521_scalar_mulx_u64(x2, 0x2d8e03d1492d0d45);
4877    let mut x208: u64 = 0;
4878    let mut x209: u64 = 0;
4879    let (x208, x209) = fiat_p521_scalar_mulx_u64(x2, 0x5bcc6d61a8e567bc);
4880    let mut x210: u64 = 0;
4881    let mut x211: u64 = 0;
4882    let (x210, x211) = fiat_p521_scalar_mulx_u64(x2, 0xcff3d142b7756e3e);
4883    let mut x212: u64 = 0;
4884    let mut x213: u64 = 0;
4885    let (x212, x213) = fiat_p521_scalar_mulx_u64(x2, 0xdd6e23d82e49c7db);
4886    let mut x214: u64 = 0;
4887    let mut x215: u64 = 0;
4888    let (x214, x215) = fiat_p521_scalar_mulx_u64(x2, 0xd3721ef557f75e06);
4889    let mut x216: u64 = 0;
4890    let mut x217: u64 = 0;
4891    let (x216, x217) = fiat_p521_scalar_mulx_u64(x2, 0x12a78d38794573ff);
4892    let mut x218: u64 = 0;
4893    let mut x219: u64 = 0;
4894    let (x218, x219) = fiat_p521_scalar_mulx_u64(x2, 0xf707badce5547ea3);
4895    let mut x220: u64 = 0;
4896    let mut x221: u64 = 0;
4897    let (x220, x221) = fiat_p521_scalar_mulx_u64(x2, 0x137cd04dcf15dd04);
4898    let mut x222: u64 = 0;
4899    let mut x223: fiat_p521_scalar_u1 = 0;
4900    let (x222, x223) = fiat_p521_scalar_addcarryx_u64(0x0, x221, x218);
4901    let mut x224: u64 = 0;
4902    let mut x225: fiat_p521_scalar_u1 = 0;
4903    let (x224, x225) = fiat_p521_scalar_addcarryx_u64(x223, x219, x216);
4904    let mut x226: u64 = 0;
4905    let mut x227: fiat_p521_scalar_u1 = 0;
4906    let (x226, x227) = fiat_p521_scalar_addcarryx_u64(x225, x217, x214);
4907    let mut x228: u64 = 0;
4908    let mut x229: fiat_p521_scalar_u1 = 0;
4909    let (x228, x229) = fiat_p521_scalar_addcarryx_u64(x227, x215, x212);
4910    let mut x230: u64 = 0;
4911    let mut x231: fiat_p521_scalar_u1 = 0;
4912    let (x230, x231) = fiat_p521_scalar_addcarryx_u64(x229, x213, x210);
4913    let mut x232: u64 = 0;
4914    let mut x233: fiat_p521_scalar_u1 = 0;
4915    let (x232, x233) = fiat_p521_scalar_addcarryx_u64(x231, x211, x208);
4916    let mut x234: u64 = 0;
4917    let mut x235: fiat_p521_scalar_u1 = 0;
4918    let (x234, x235) = fiat_p521_scalar_addcarryx_u64(x233, x209, x206);
4919    let mut x236: u64 = 0;
4920    let mut x237: fiat_p521_scalar_u1 = 0;
4921    let (x236, x237) = fiat_p521_scalar_addcarryx_u64(x235, x207, x204);
4922    let mut x238: u64 = 0;
4923    let mut x239: fiat_p521_scalar_u1 = 0;
4924    let (x238, x239) = fiat_p521_scalar_addcarryx_u64(0x0, x188, x220);
4925    let mut x240: u64 = 0;
4926    let mut x241: fiat_p521_scalar_u1 = 0;
4927    let (x240, x241) = fiat_p521_scalar_addcarryx_u64(x239, x190, x222);
4928    let mut x242: u64 = 0;
4929    let mut x243: fiat_p521_scalar_u1 = 0;
4930    let (x242, x243) = fiat_p521_scalar_addcarryx_u64(x241, x192, x224);
4931    let mut x244: u64 = 0;
4932    let mut x245: fiat_p521_scalar_u1 = 0;
4933    let (x244, x245) = fiat_p521_scalar_addcarryx_u64(x243, x194, x226);
4934    let mut x246: u64 = 0;
4935    let mut x247: fiat_p521_scalar_u1 = 0;
4936    let (x246, x247) = fiat_p521_scalar_addcarryx_u64(x245, x196, x228);
4937    let mut x248: u64 = 0;
4938    let mut x249: fiat_p521_scalar_u1 = 0;
4939    let (x248, x249) = fiat_p521_scalar_addcarryx_u64(x247, x198, x230);
4940    let mut x250: u64 = 0;
4941    let mut x251: fiat_p521_scalar_u1 = 0;
4942    let (x250, x251) = fiat_p521_scalar_addcarryx_u64(x249, x200, x232);
4943    let mut x252: u64 = 0;
4944    let mut x253: fiat_p521_scalar_u1 = 0;
4945    let (x252, x253) = fiat_p521_scalar_addcarryx_u64(x251, x202, x234);
4946    let mut x254: u64 = 0;
4947    let mut x255: fiat_p521_scalar_u1 = 0;
4948    let (x254, x255) = fiat_p521_scalar_addcarryx_u64(
4949        x253,
4950        (((x203 as u64) + ((x149 as u64) + ((x131 as u64) + x99))) + ((x185 as u64) + x153)),
4951        x236,
4952    );
4953    let mut x256: u64 = 0;
4954    let mut x257: u64 = 0;
4955    let (x256, x257) = fiat_p521_scalar_mulx_u64(x238, 0x1d2f5ccd79a995c7);
4956    let mut x258: u64 = 0;
4957    let mut x259: u64 = 0;
4958    let (x258, x259) = fiat_p521_scalar_mulx_u64(x256, 0x1ff);
4959    let mut x260: u64 = 0;
4960    let mut x261: u64 = 0;
4961    let (x260, x261) = fiat_p521_scalar_mulx_u64(x256, 0xffffffffffffffff);
4962    let mut x262: u64 = 0;
4963    let mut x263: u64 = 0;
4964    let (x262, x263) = fiat_p521_scalar_mulx_u64(x256, 0xffffffffffffffff);
4965    let mut x264: u64 = 0;
4966    let mut x265: u64 = 0;
4967    let (x264, x265) = fiat_p521_scalar_mulx_u64(x256, 0xffffffffffffffff);
4968    let mut x266: u64 = 0;
4969    let mut x267: u64 = 0;
4970    let (x266, x267) = fiat_p521_scalar_mulx_u64(x256, 0xfffffffffffffffa);
4971    let mut x268: u64 = 0;
4972    let mut x269: u64 = 0;
4973    let (x268, x269) = fiat_p521_scalar_mulx_u64(x256, 0x51868783bf2f966b);
4974    let mut x270: u64 = 0;
4975    let mut x271: u64 = 0;
4976    let (x270, x271) = fiat_p521_scalar_mulx_u64(x256, 0x7fcc0148f709a5d0);
4977    let mut x272: u64 = 0;
4978    let mut x273: u64 = 0;
4979    let (x272, x273) = fiat_p521_scalar_mulx_u64(x256, 0x3bb5c9b8899c47ae);
4980    let mut x274: u64 = 0;
4981    let mut x275: u64 = 0;
4982    let (x274, x275) = fiat_p521_scalar_mulx_u64(x256, 0xbb6fb71e91386409);
4983    let mut x276: u64 = 0;
4984    let mut x277: fiat_p521_scalar_u1 = 0;
4985    let (x276, x277) = fiat_p521_scalar_addcarryx_u64(0x0, x275, x272);
4986    let mut x278: u64 = 0;
4987    let mut x279: fiat_p521_scalar_u1 = 0;
4988    let (x278, x279) = fiat_p521_scalar_addcarryx_u64(x277, x273, x270);
4989    let mut x280: u64 = 0;
4990    let mut x281: fiat_p521_scalar_u1 = 0;
4991    let (x280, x281) = fiat_p521_scalar_addcarryx_u64(x279, x271, x268);
4992    let mut x282: u64 = 0;
4993    let mut x283: fiat_p521_scalar_u1 = 0;
4994    let (x282, x283) = fiat_p521_scalar_addcarryx_u64(x281, x269, x266);
4995    let mut x284: u64 = 0;
4996    let mut x285: fiat_p521_scalar_u1 = 0;
4997    let (x284, x285) = fiat_p521_scalar_addcarryx_u64(x283, x267, x264);
4998    let mut x286: u64 = 0;
4999    let mut x287: fiat_p521_scalar_u1 = 0;
5000    let (x286, x287) = fiat_p521_scalar_addcarryx_u64(x285, x265, x262);
5001    let mut x288: u64 = 0;
5002    let mut x289: fiat_p521_scalar_u1 = 0;
5003    let (x288, x289) = fiat_p521_scalar_addcarryx_u64(x287, x263, x260);
5004    let mut x290: u64 = 0;
5005    let mut x291: fiat_p521_scalar_u1 = 0;
5006    let (x290, x291) = fiat_p521_scalar_addcarryx_u64(x289, x261, x258);
5007    let mut x292: u64 = 0;
5008    let mut x293: fiat_p521_scalar_u1 = 0;
5009    let (x292, x293) = fiat_p521_scalar_addcarryx_u64(0x0, x238, x274);
5010    let mut x294: u64 = 0;
5011    let mut x295: fiat_p521_scalar_u1 = 0;
5012    let (x294, x295) = fiat_p521_scalar_addcarryx_u64(x293, x240, x276);
5013    let mut x296: u64 = 0;
5014    let mut x297: fiat_p521_scalar_u1 = 0;
5015    let (x296, x297) = fiat_p521_scalar_addcarryx_u64(x295, x242, x278);
5016    let mut x298: u64 = 0;
5017    let mut x299: fiat_p521_scalar_u1 = 0;
5018    let (x298, x299) = fiat_p521_scalar_addcarryx_u64(x297, x244, x280);
5019    let mut x300: u64 = 0;
5020    let mut x301: fiat_p521_scalar_u1 = 0;
5021    let (x300, x301) = fiat_p521_scalar_addcarryx_u64(x299, x246, x282);
5022    let mut x302: u64 = 0;
5023    let mut x303: fiat_p521_scalar_u1 = 0;
5024    let (x302, x303) = fiat_p521_scalar_addcarryx_u64(x301, x248, x284);
5025    let mut x304: u64 = 0;
5026    let mut x305: fiat_p521_scalar_u1 = 0;
5027    let (x304, x305) = fiat_p521_scalar_addcarryx_u64(x303, x250, x286);
5028    let mut x306: u64 = 0;
5029    let mut x307: fiat_p521_scalar_u1 = 0;
5030    let (x306, x307) = fiat_p521_scalar_addcarryx_u64(x305, x252, x288);
5031    let mut x308: u64 = 0;
5032    let mut x309: fiat_p521_scalar_u1 = 0;
5033    let (x308, x309) = fiat_p521_scalar_addcarryx_u64(x307, x254, x290);
5034    let mut x310: u64 = 0;
5035    let mut x311: u64 = 0;
5036    let (x310, x311) = fiat_p521_scalar_mulx_u64(x3, 0x3d);
5037    let mut x312: u64 = 0;
5038    let mut x313: u64 = 0;
5039    let (x312, x313) = fiat_p521_scalar_mulx_u64(x3, 0x2d8e03d1492d0d45);
5040    let mut x314: u64 = 0;
5041    let mut x315: u64 = 0;
5042    let (x314, x315) = fiat_p521_scalar_mulx_u64(x3, 0x5bcc6d61a8e567bc);
5043    let mut x316: u64 = 0;
5044    let mut x317: u64 = 0;
5045    let (x316, x317) = fiat_p521_scalar_mulx_u64(x3, 0xcff3d142b7756e3e);
5046    let mut x318: u64 = 0;
5047    let mut x319: u64 = 0;
5048    let (x318, x319) = fiat_p521_scalar_mulx_u64(x3, 0xdd6e23d82e49c7db);
5049    let mut x320: u64 = 0;
5050    let mut x321: u64 = 0;
5051    let (x320, x321) = fiat_p521_scalar_mulx_u64(x3, 0xd3721ef557f75e06);
5052    let mut x322: u64 = 0;
5053    let mut x323: u64 = 0;
5054    let (x322, x323) = fiat_p521_scalar_mulx_u64(x3, 0x12a78d38794573ff);
5055    let mut x324: u64 = 0;
5056    let mut x325: u64 = 0;
5057    let (x324, x325) = fiat_p521_scalar_mulx_u64(x3, 0xf707badce5547ea3);
5058    let mut x326: u64 = 0;
5059    let mut x327: u64 = 0;
5060    let (x326, x327) = fiat_p521_scalar_mulx_u64(x3, 0x137cd04dcf15dd04);
5061    let mut x328: u64 = 0;
5062    let mut x329: fiat_p521_scalar_u1 = 0;
5063    let (x328, x329) = fiat_p521_scalar_addcarryx_u64(0x0, x327, x324);
5064    let mut x330: u64 = 0;
5065    let mut x331: fiat_p521_scalar_u1 = 0;
5066    let (x330, x331) = fiat_p521_scalar_addcarryx_u64(x329, x325, x322);
5067    let mut x332: u64 = 0;
5068    let mut x333: fiat_p521_scalar_u1 = 0;
5069    let (x332, x333) = fiat_p521_scalar_addcarryx_u64(x331, x323, x320);
5070    let mut x334: u64 = 0;
5071    let mut x335: fiat_p521_scalar_u1 = 0;
5072    let (x334, x335) = fiat_p521_scalar_addcarryx_u64(x333, x321, x318);
5073    let mut x336: u64 = 0;
5074    let mut x337: fiat_p521_scalar_u1 = 0;
5075    let (x336, x337) = fiat_p521_scalar_addcarryx_u64(x335, x319, x316);
5076    let mut x338: u64 = 0;
5077    let mut x339: fiat_p521_scalar_u1 = 0;
5078    let (x338, x339) = fiat_p521_scalar_addcarryx_u64(x337, x317, x314);
5079    let mut x340: u64 = 0;
5080    let mut x341: fiat_p521_scalar_u1 = 0;
5081    let (x340, x341) = fiat_p521_scalar_addcarryx_u64(x339, x315, x312);
5082    let mut x342: u64 = 0;
5083    let mut x343: fiat_p521_scalar_u1 = 0;
5084    let (x342, x343) = fiat_p521_scalar_addcarryx_u64(x341, x313, x310);
5085    let mut x344: u64 = 0;
5086    let mut x345: fiat_p521_scalar_u1 = 0;
5087    let (x344, x345) = fiat_p521_scalar_addcarryx_u64(0x0, x294, x326);
5088    let mut x346: u64 = 0;
5089    let mut x347: fiat_p521_scalar_u1 = 0;
5090    let (x346, x347) = fiat_p521_scalar_addcarryx_u64(x345, x296, x328);
5091    let mut x348: u64 = 0;
5092    let mut x349: fiat_p521_scalar_u1 = 0;
5093    let (x348, x349) = fiat_p521_scalar_addcarryx_u64(x347, x298, x330);
5094    let mut x350: u64 = 0;
5095    let mut x351: fiat_p521_scalar_u1 = 0;
5096    let (x350, x351) = fiat_p521_scalar_addcarryx_u64(x349, x300, x332);
5097    let mut x352: u64 = 0;
5098    let mut x353: fiat_p521_scalar_u1 = 0;
5099    let (x352, x353) = fiat_p521_scalar_addcarryx_u64(x351, x302, x334);
5100    let mut x354: u64 = 0;
5101    let mut x355: fiat_p521_scalar_u1 = 0;
5102    let (x354, x355) = fiat_p521_scalar_addcarryx_u64(x353, x304, x336);
5103    let mut x356: u64 = 0;
5104    let mut x357: fiat_p521_scalar_u1 = 0;
5105    let (x356, x357) = fiat_p521_scalar_addcarryx_u64(x355, x306, x338);
5106    let mut x358: u64 = 0;
5107    let mut x359: fiat_p521_scalar_u1 = 0;
5108    let (x358, x359) = fiat_p521_scalar_addcarryx_u64(x357, x308, x340);
5109    let mut x360: u64 = 0;
5110    let mut x361: fiat_p521_scalar_u1 = 0;
5111    let (x360, x361) = fiat_p521_scalar_addcarryx_u64(
5112        x359,
5113        (((x309 as u64) + ((x255 as u64) + ((x237 as u64) + x205))) + ((x291 as u64) + x259)),
5114        x342,
5115    );
5116    let mut x362: u64 = 0;
5117    let mut x363: u64 = 0;
5118    let (x362, x363) = fiat_p521_scalar_mulx_u64(x344, 0x1d2f5ccd79a995c7);
5119    let mut x364: u64 = 0;
5120    let mut x365: u64 = 0;
5121    let (x364, x365) = fiat_p521_scalar_mulx_u64(x362, 0x1ff);
5122    let mut x366: u64 = 0;
5123    let mut x367: u64 = 0;
5124    let (x366, x367) = fiat_p521_scalar_mulx_u64(x362, 0xffffffffffffffff);
5125    let mut x368: u64 = 0;
5126    let mut x369: u64 = 0;
5127    let (x368, x369) = fiat_p521_scalar_mulx_u64(x362, 0xffffffffffffffff);
5128    let mut x370: u64 = 0;
5129    let mut x371: u64 = 0;
5130    let (x370, x371) = fiat_p521_scalar_mulx_u64(x362, 0xffffffffffffffff);
5131    let mut x372: u64 = 0;
5132    let mut x373: u64 = 0;
5133    let (x372, x373) = fiat_p521_scalar_mulx_u64(x362, 0xfffffffffffffffa);
5134    let mut x374: u64 = 0;
5135    let mut x375: u64 = 0;
5136    let (x374, x375) = fiat_p521_scalar_mulx_u64(x362, 0x51868783bf2f966b);
5137    let mut x376: u64 = 0;
5138    let mut x377: u64 = 0;
5139    let (x376, x377) = fiat_p521_scalar_mulx_u64(x362, 0x7fcc0148f709a5d0);
5140    let mut x378: u64 = 0;
5141    let mut x379: u64 = 0;
5142    let (x378, x379) = fiat_p521_scalar_mulx_u64(x362, 0x3bb5c9b8899c47ae);
5143    let mut x380: u64 = 0;
5144    let mut x381: u64 = 0;
5145    let (x380, x381) = fiat_p521_scalar_mulx_u64(x362, 0xbb6fb71e91386409);
5146    let mut x382: u64 = 0;
5147    let mut x383: fiat_p521_scalar_u1 = 0;
5148    let (x382, x383) = fiat_p521_scalar_addcarryx_u64(0x0, x381, x378);
5149    let mut x384: u64 = 0;
5150    let mut x385: fiat_p521_scalar_u1 = 0;
5151    let (x384, x385) = fiat_p521_scalar_addcarryx_u64(x383, x379, x376);
5152    let mut x386: u64 = 0;
5153    let mut x387: fiat_p521_scalar_u1 = 0;
5154    let (x386, x387) = fiat_p521_scalar_addcarryx_u64(x385, x377, x374);
5155    let mut x388: u64 = 0;
5156    let mut x389: fiat_p521_scalar_u1 = 0;
5157    let (x388, x389) = fiat_p521_scalar_addcarryx_u64(x387, x375, x372);
5158    let mut x390: u64 = 0;
5159    let mut x391: fiat_p521_scalar_u1 = 0;
5160    let (x390, x391) = fiat_p521_scalar_addcarryx_u64(x389, x373, x370);
5161    let mut x392: u64 = 0;
5162    let mut x393: fiat_p521_scalar_u1 = 0;
5163    let (x392, x393) = fiat_p521_scalar_addcarryx_u64(x391, x371, x368);
5164    let mut x394: u64 = 0;
5165    let mut x395: fiat_p521_scalar_u1 = 0;
5166    let (x394, x395) = fiat_p521_scalar_addcarryx_u64(x393, x369, x366);
5167    let mut x396: u64 = 0;
5168    let mut x397: fiat_p521_scalar_u1 = 0;
5169    let (x396, x397) = fiat_p521_scalar_addcarryx_u64(x395, x367, x364);
5170    let mut x398: u64 = 0;
5171    let mut x399: fiat_p521_scalar_u1 = 0;
5172    let (x398, x399) = fiat_p521_scalar_addcarryx_u64(0x0, x344, x380);
5173    let mut x400: u64 = 0;
5174    let mut x401: fiat_p521_scalar_u1 = 0;
5175    let (x400, x401) = fiat_p521_scalar_addcarryx_u64(x399, x346, x382);
5176    let mut x402: u64 = 0;
5177    let mut x403: fiat_p521_scalar_u1 = 0;
5178    let (x402, x403) = fiat_p521_scalar_addcarryx_u64(x401, x348, x384);
5179    let mut x404: u64 = 0;
5180    let mut x405: fiat_p521_scalar_u1 = 0;
5181    let (x404, x405) = fiat_p521_scalar_addcarryx_u64(x403, x350, x386);
5182    let mut x406: u64 = 0;
5183    let mut x407: fiat_p521_scalar_u1 = 0;
5184    let (x406, x407) = fiat_p521_scalar_addcarryx_u64(x405, x352, x388);
5185    let mut x408: u64 = 0;
5186    let mut x409: fiat_p521_scalar_u1 = 0;
5187    let (x408, x409) = fiat_p521_scalar_addcarryx_u64(x407, x354, x390);
5188    let mut x410: u64 = 0;
5189    let mut x411: fiat_p521_scalar_u1 = 0;
5190    let (x410, x411) = fiat_p521_scalar_addcarryx_u64(x409, x356, x392);
5191    let mut x412: u64 = 0;
5192    let mut x413: fiat_p521_scalar_u1 = 0;
5193    let (x412, x413) = fiat_p521_scalar_addcarryx_u64(x411, x358, x394);
5194    let mut x414: u64 = 0;
5195    let mut x415: fiat_p521_scalar_u1 = 0;
5196    let (x414, x415) = fiat_p521_scalar_addcarryx_u64(x413, x360, x396);
5197    let mut x416: u64 = 0;
5198    let mut x417: u64 = 0;
5199    let (x416, x417) = fiat_p521_scalar_mulx_u64(x4, 0x3d);
5200    let mut x418: u64 = 0;
5201    let mut x419: u64 = 0;
5202    let (x418, x419) = fiat_p521_scalar_mulx_u64(x4, 0x2d8e03d1492d0d45);
5203    let mut x420: u64 = 0;
5204    let mut x421: u64 = 0;
5205    let (x420, x421) = fiat_p521_scalar_mulx_u64(x4, 0x5bcc6d61a8e567bc);
5206    let mut x422: u64 = 0;
5207    let mut x423: u64 = 0;
5208    let (x422, x423) = fiat_p521_scalar_mulx_u64(x4, 0xcff3d142b7756e3e);
5209    let mut x424: u64 = 0;
5210    let mut x425: u64 = 0;
5211    let (x424, x425) = fiat_p521_scalar_mulx_u64(x4, 0xdd6e23d82e49c7db);
5212    let mut x426: u64 = 0;
5213    let mut x427: u64 = 0;
5214    let (x426, x427) = fiat_p521_scalar_mulx_u64(x4, 0xd3721ef557f75e06);
5215    let mut x428: u64 = 0;
5216    let mut x429: u64 = 0;
5217    let (x428, x429) = fiat_p521_scalar_mulx_u64(x4, 0x12a78d38794573ff);
5218    let mut x430: u64 = 0;
5219    let mut x431: u64 = 0;
5220    let (x430, x431) = fiat_p521_scalar_mulx_u64(x4, 0xf707badce5547ea3);
5221    let mut x432: u64 = 0;
5222    let mut x433: u64 = 0;
5223    let (x432, x433) = fiat_p521_scalar_mulx_u64(x4, 0x137cd04dcf15dd04);
5224    let mut x434: u64 = 0;
5225    let mut x435: fiat_p521_scalar_u1 = 0;
5226    let (x434, x435) = fiat_p521_scalar_addcarryx_u64(0x0, x433, x430);
5227    let mut x436: u64 = 0;
5228    let mut x437: fiat_p521_scalar_u1 = 0;
5229    let (x436, x437) = fiat_p521_scalar_addcarryx_u64(x435, x431, x428);
5230    let mut x438: u64 = 0;
5231    let mut x439: fiat_p521_scalar_u1 = 0;
5232    let (x438, x439) = fiat_p521_scalar_addcarryx_u64(x437, x429, x426);
5233    let mut x440: u64 = 0;
5234    let mut x441: fiat_p521_scalar_u1 = 0;
5235    let (x440, x441) = fiat_p521_scalar_addcarryx_u64(x439, x427, x424);
5236    let mut x442: u64 = 0;
5237    let mut x443: fiat_p521_scalar_u1 = 0;
5238    let (x442, x443) = fiat_p521_scalar_addcarryx_u64(x441, x425, x422);
5239    let mut x444: u64 = 0;
5240    let mut x445: fiat_p521_scalar_u1 = 0;
5241    let (x444, x445) = fiat_p521_scalar_addcarryx_u64(x443, x423, x420);
5242    let mut x446: u64 = 0;
5243    let mut x447: fiat_p521_scalar_u1 = 0;
5244    let (x446, x447) = fiat_p521_scalar_addcarryx_u64(x445, x421, x418);
5245    let mut x448: u64 = 0;
5246    let mut x449: fiat_p521_scalar_u1 = 0;
5247    let (x448, x449) = fiat_p521_scalar_addcarryx_u64(x447, x419, x416);
5248    let mut x450: u64 = 0;
5249    let mut x451: fiat_p521_scalar_u1 = 0;
5250    let (x450, x451) = fiat_p521_scalar_addcarryx_u64(0x0, x400, x432);
5251    let mut x452: u64 = 0;
5252    let mut x453: fiat_p521_scalar_u1 = 0;
5253    let (x452, x453) = fiat_p521_scalar_addcarryx_u64(x451, x402, x434);
5254    let mut x454: u64 = 0;
5255    let mut x455: fiat_p521_scalar_u1 = 0;
5256    let (x454, x455) = fiat_p521_scalar_addcarryx_u64(x453, x404, x436);
5257    let mut x456: u64 = 0;
5258    let mut x457: fiat_p521_scalar_u1 = 0;
5259    let (x456, x457) = fiat_p521_scalar_addcarryx_u64(x455, x406, x438);
5260    let mut x458: u64 = 0;
5261    let mut x459: fiat_p521_scalar_u1 = 0;
5262    let (x458, x459) = fiat_p521_scalar_addcarryx_u64(x457, x408, x440);
5263    let mut x460: u64 = 0;
5264    let mut x461: fiat_p521_scalar_u1 = 0;
5265    let (x460, x461) = fiat_p521_scalar_addcarryx_u64(x459, x410, x442);
5266    let mut x462: u64 = 0;
5267    let mut x463: fiat_p521_scalar_u1 = 0;
5268    let (x462, x463) = fiat_p521_scalar_addcarryx_u64(x461, x412, x444);
5269    let mut x464: u64 = 0;
5270    let mut x465: fiat_p521_scalar_u1 = 0;
5271    let (x464, x465) = fiat_p521_scalar_addcarryx_u64(x463, x414, x446);
5272    let mut x466: u64 = 0;
5273    let mut x467: fiat_p521_scalar_u1 = 0;
5274    let (x466, x467) = fiat_p521_scalar_addcarryx_u64(
5275        x465,
5276        (((x415 as u64) + ((x361 as u64) + ((x343 as u64) + x311))) + ((x397 as u64) + x365)),
5277        x448,
5278    );
5279    let mut x468: u64 = 0;
5280    let mut x469: u64 = 0;
5281    let (x468, x469) = fiat_p521_scalar_mulx_u64(x450, 0x1d2f5ccd79a995c7);
5282    let mut x470: u64 = 0;
5283    let mut x471: u64 = 0;
5284    let (x470, x471) = fiat_p521_scalar_mulx_u64(x468, 0x1ff);
5285    let mut x472: u64 = 0;
5286    let mut x473: u64 = 0;
5287    let (x472, x473) = fiat_p521_scalar_mulx_u64(x468, 0xffffffffffffffff);
5288    let mut x474: u64 = 0;
5289    let mut x475: u64 = 0;
5290    let (x474, x475) = fiat_p521_scalar_mulx_u64(x468, 0xffffffffffffffff);
5291    let mut x476: u64 = 0;
5292    let mut x477: u64 = 0;
5293    let (x476, x477) = fiat_p521_scalar_mulx_u64(x468, 0xffffffffffffffff);
5294    let mut x478: u64 = 0;
5295    let mut x479: u64 = 0;
5296    let (x478, x479) = fiat_p521_scalar_mulx_u64(x468, 0xfffffffffffffffa);
5297    let mut x480: u64 = 0;
5298    let mut x481: u64 = 0;
5299    let (x480, x481) = fiat_p521_scalar_mulx_u64(x468, 0x51868783bf2f966b);
5300    let mut x482: u64 = 0;
5301    let mut x483: u64 = 0;
5302    let (x482, x483) = fiat_p521_scalar_mulx_u64(x468, 0x7fcc0148f709a5d0);
5303    let mut x484: u64 = 0;
5304    let mut x485: u64 = 0;
5305    let (x484, x485) = fiat_p521_scalar_mulx_u64(x468, 0x3bb5c9b8899c47ae);
5306    let mut x486: u64 = 0;
5307    let mut x487: u64 = 0;
5308    let (x486, x487) = fiat_p521_scalar_mulx_u64(x468, 0xbb6fb71e91386409);
5309    let mut x488: u64 = 0;
5310    let mut x489: fiat_p521_scalar_u1 = 0;
5311    let (x488, x489) = fiat_p521_scalar_addcarryx_u64(0x0, x487, x484);
5312    let mut x490: u64 = 0;
5313    let mut x491: fiat_p521_scalar_u1 = 0;
5314    let (x490, x491) = fiat_p521_scalar_addcarryx_u64(x489, x485, x482);
5315    let mut x492: u64 = 0;
5316    let mut x493: fiat_p521_scalar_u1 = 0;
5317    let (x492, x493) = fiat_p521_scalar_addcarryx_u64(x491, x483, x480);
5318    let mut x494: u64 = 0;
5319    let mut x495: fiat_p521_scalar_u1 = 0;
5320    let (x494, x495) = fiat_p521_scalar_addcarryx_u64(x493, x481, x478);
5321    let mut x496: u64 = 0;
5322    let mut x497: fiat_p521_scalar_u1 = 0;
5323    let (x496, x497) = fiat_p521_scalar_addcarryx_u64(x495, x479, x476);
5324    let mut x498: u64 = 0;
5325    let mut x499: fiat_p521_scalar_u1 = 0;
5326    let (x498, x499) = fiat_p521_scalar_addcarryx_u64(x497, x477, x474);
5327    let mut x500: u64 = 0;
5328    let mut x501: fiat_p521_scalar_u1 = 0;
5329    let (x500, x501) = fiat_p521_scalar_addcarryx_u64(x499, x475, x472);
5330    let mut x502: u64 = 0;
5331    let mut x503: fiat_p521_scalar_u1 = 0;
5332    let (x502, x503) = fiat_p521_scalar_addcarryx_u64(x501, x473, x470);
5333    let mut x504: u64 = 0;
5334    let mut x505: fiat_p521_scalar_u1 = 0;
5335    let (x504, x505) = fiat_p521_scalar_addcarryx_u64(0x0, x450, x486);
5336    let mut x506: u64 = 0;
5337    let mut x507: fiat_p521_scalar_u1 = 0;
5338    let (x506, x507) = fiat_p521_scalar_addcarryx_u64(x505, x452, x488);
5339    let mut x508: u64 = 0;
5340    let mut x509: fiat_p521_scalar_u1 = 0;
5341    let (x508, x509) = fiat_p521_scalar_addcarryx_u64(x507, x454, x490);
5342    let mut x510: u64 = 0;
5343    let mut x511: fiat_p521_scalar_u1 = 0;
5344    let (x510, x511) = fiat_p521_scalar_addcarryx_u64(x509, x456, x492);
5345    let mut x512: u64 = 0;
5346    let mut x513: fiat_p521_scalar_u1 = 0;
5347    let (x512, x513) = fiat_p521_scalar_addcarryx_u64(x511, x458, x494);
5348    let mut x514: u64 = 0;
5349    let mut x515: fiat_p521_scalar_u1 = 0;
5350    let (x514, x515) = fiat_p521_scalar_addcarryx_u64(x513, x460, x496);
5351    let mut x516: u64 = 0;
5352    let mut x517: fiat_p521_scalar_u1 = 0;
5353    let (x516, x517) = fiat_p521_scalar_addcarryx_u64(x515, x462, x498);
5354    let mut x518: u64 = 0;
5355    let mut x519: fiat_p521_scalar_u1 = 0;
5356    let (x518, x519) = fiat_p521_scalar_addcarryx_u64(x517, x464, x500);
5357    let mut x520: u64 = 0;
5358    let mut x521: fiat_p521_scalar_u1 = 0;
5359    let (x520, x521) = fiat_p521_scalar_addcarryx_u64(x519, x466, x502);
5360    let mut x522: u64 = 0;
5361    let mut x523: u64 = 0;
5362    let (x522, x523) = fiat_p521_scalar_mulx_u64(x5, 0x3d);
5363    let mut x524: u64 = 0;
5364    let mut x525: u64 = 0;
5365    let (x524, x525) = fiat_p521_scalar_mulx_u64(x5, 0x2d8e03d1492d0d45);
5366    let mut x526: u64 = 0;
5367    let mut x527: u64 = 0;
5368    let (x526, x527) = fiat_p521_scalar_mulx_u64(x5, 0x5bcc6d61a8e567bc);
5369    let mut x528: u64 = 0;
5370    let mut x529: u64 = 0;
5371    let (x528, x529) = fiat_p521_scalar_mulx_u64(x5, 0xcff3d142b7756e3e);
5372    let mut x530: u64 = 0;
5373    let mut x531: u64 = 0;
5374    let (x530, x531) = fiat_p521_scalar_mulx_u64(x5, 0xdd6e23d82e49c7db);
5375    let mut x532: u64 = 0;
5376    let mut x533: u64 = 0;
5377    let (x532, x533) = fiat_p521_scalar_mulx_u64(x5, 0xd3721ef557f75e06);
5378    let mut x534: u64 = 0;
5379    let mut x535: u64 = 0;
5380    let (x534, x535) = fiat_p521_scalar_mulx_u64(x5, 0x12a78d38794573ff);
5381    let mut x536: u64 = 0;
5382    let mut x537: u64 = 0;
5383    let (x536, x537) = fiat_p521_scalar_mulx_u64(x5, 0xf707badce5547ea3);
5384    let mut x538: u64 = 0;
5385    let mut x539: u64 = 0;
5386    let (x538, x539) = fiat_p521_scalar_mulx_u64(x5, 0x137cd04dcf15dd04);
5387    let mut x540: u64 = 0;
5388    let mut x541: fiat_p521_scalar_u1 = 0;
5389    let (x540, x541) = fiat_p521_scalar_addcarryx_u64(0x0, x539, x536);
5390    let mut x542: u64 = 0;
5391    let mut x543: fiat_p521_scalar_u1 = 0;
5392    let (x542, x543) = fiat_p521_scalar_addcarryx_u64(x541, x537, x534);
5393    let mut x544: u64 = 0;
5394    let mut x545: fiat_p521_scalar_u1 = 0;
5395    let (x544, x545) = fiat_p521_scalar_addcarryx_u64(x543, x535, x532);
5396    let mut x546: u64 = 0;
5397    let mut x547: fiat_p521_scalar_u1 = 0;
5398    let (x546, x547) = fiat_p521_scalar_addcarryx_u64(x545, x533, x530);
5399    let mut x548: u64 = 0;
5400    let mut x549: fiat_p521_scalar_u1 = 0;
5401    let (x548, x549) = fiat_p521_scalar_addcarryx_u64(x547, x531, x528);
5402    let mut x550: u64 = 0;
5403    let mut x551: fiat_p521_scalar_u1 = 0;
5404    let (x550, x551) = fiat_p521_scalar_addcarryx_u64(x549, x529, x526);
5405    let mut x552: u64 = 0;
5406    let mut x553: fiat_p521_scalar_u1 = 0;
5407    let (x552, x553) = fiat_p521_scalar_addcarryx_u64(x551, x527, x524);
5408    let mut x554: u64 = 0;
5409    let mut x555: fiat_p521_scalar_u1 = 0;
5410    let (x554, x555) = fiat_p521_scalar_addcarryx_u64(x553, x525, x522);
5411    let mut x556: u64 = 0;
5412    let mut x557: fiat_p521_scalar_u1 = 0;
5413    let (x556, x557) = fiat_p521_scalar_addcarryx_u64(0x0, x506, x538);
5414    let mut x558: u64 = 0;
5415    let mut x559: fiat_p521_scalar_u1 = 0;
5416    let (x558, x559) = fiat_p521_scalar_addcarryx_u64(x557, x508, x540);
5417    let mut x560: u64 = 0;
5418    let mut x561: fiat_p521_scalar_u1 = 0;
5419    let (x560, x561) = fiat_p521_scalar_addcarryx_u64(x559, x510, x542);
5420    let mut x562: u64 = 0;
5421    let mut x563: fiat_p521_scalar_u1 = 0;
5422    let (x562, x563) = fiat_p521_scalar_addcarryx_u64(x561, x512, x544);
5423    let mut x564: u64 = 0;
5424    let mut x565: fiat_p521_scalar_u1 = 0;
5425    let (x564, x565) = fiat_p521_scalar_addcarryx_u64(x563, x514, x546);
5426    let mut x566: u64 = 0;
5427    let mut x567: fiat_p521_scalar_u1 = 0;
5428    let (x566, x567) = fiat_p521_scalar_addcarryx_u64(x565, x516, x548);
5429    let mut x568: u64 = 0;
5430    let mut x569: fiat_p521_scalar_u1 = 0;
5431    let (x568, x569) = fiat_p521_scalar_addcarryx_u64(x567, x518, x550);
5432    let mut x570: u64 = 0;
5433    let mut x571: fiat_p521_scalar_u1 = 0;
5434    let (x570, x571) = fiat_p521_scalar_addcarryx_u64(x569, x520, x552);
5435    let mut x572: u64 = 0;
5436    let mut x573: fiat_p521_scalar_u1 = 0;
5437    let (x572, x573) = fiat_p521_scalar_addcarryx_u64(
5438        x571,
5439        (((x521 as u64) + ((x467 as u64) + ((x449 as u64) + x417))) + ((x503 as u64) + x471)),
5440        x554,
5441    );
5442    let mut x574: u64 = 0;
5443    let mut x575: u64 = 0;
5444    let (x574, x575) = fiat_p521_scalar_mulx_u64(x556, 0x1d2f5ccd79a995c7);
5445    let mut x576: u64 = 0;
5446    let mut x577: u64 = 0;
5447    let (x576, x577) = fiat_p521_scalar_mulx_u64(x574, 0x1ff);
5448    let mut x578: u64 = 0;
5449    let mut x579: u64 = 0;
5450    let (x578, x579) = fiat_p521_scalar_mulx_u64(x574, 0xffffffffffffffff);
5451    let mut x580: u64 = 0;
5452    let mut x581: u64 = 0;
5453    let (x580, x581) = fiat_p521_scalar_mulx_u64(x574, 0xffffffffffffffff);
5454    let mut x582: u64 = 0;
5455    let mut x583: u64 = 0;
5456    let (x582, x583) = fiat_p521_scalar_mulx_u64(x574, 0xffffffffffffffff);
5457    let mut x584: u64 = 0;
5458    let mut x585: u64 = 0;
5459    let (x584, x585) = fiat_p521_scalar_mulx_u64(x574, 0xfffffffffffffffa);
5460    let mut x586: u64 = 0;
5461    let mut x587: u64 = 0;
5462    let (x586, x587) = fiat_p521_scalar_mulx_u64(x574, 0x51868783bf2f966b);
5463    let mut x588: u64 = 0;
5464    let mut x589: u64 = 0;
5465    let (x588, x589) = fiat_p521_scalar_mulx_u64(x574, 0x7fcc0148f709a5d0);
5466    let mut x590: u64 = 0;
5467    let mut x591: u64 = 0;
5468    let (x590, x591) = fiat_p521_scalar_mulx_u64(x574, 0x3bb5c9b8899c47ae);
5469    let mut x592: u64 = 0;
5470    let mut x593: u64 = 0;
5471    let (x592, x593) = fiat_p521_scalar_mulx_u64(x574, 0xbb6fb71e91386409);
5472    let mut x594: u64 = 0;
5473    let mut x595: fiat_p521_scalar_u1 = 0;
5474    let (x594, x595) = fiat_p521_scalar_addcarryx_u64(0x0, x593, x590);
5475    let mut x596: u64 = 0;
5476    let mut x597: fiat_p521_scalar_u1 = 0;
5477    let (x596, x597) = fiat_p521_scalar_addcarryx_u64(x595, x591, x588);
5478    let mut x598: u64 = 0;
5479    let mut x599: fiat_p521_scalar_u1 = 0;
5480    let (x598, x599) = fiat_p521_scalar_addcarryx_u64(x597, x589, x586);
5481    let mut x600: u64 = 0;
5482    let mut x601: fiat_p521_scalar_u1 = 0;
5483    let (x600, x601) = fiat_p521_scalar_addcarryx_u64(x599, x587, x584);
5484    let mut x602: u64 = 0;
5485    let mut x603: fiat_p521_scalar_u1 = 0;
5486    let (x602, x603) = fiat_p521_scalar_addcarryx_u64(x601, x585, x582);
5487    let mut x604: u64 = 0;
5488    let mut x605: fiat_p521_scalar_u1 = 0;
5489    let (x604, x605) = fiat_p521_scalar_addcarryx_u64(x603, x583, x580);
5490    let mut x606: u64 = 0;
5491    let mut x607: fiat_p521_scalar_u1 = 0;
5492    let (x606, x607) = fiat_p521_scalar_addcarryx_u64(x605, x581, x578);
5493    let mut x608: u64 = 0;
5494    let mut x609: fiat_p521_scalar_u1 = 0;
5495    let (x608, x609) = fiat_p521_scalar_addcarryx_u64(x607, x579, x576);
5496    let mut x610: u64 = 0;
5497    let mut x611: fiat_p521_scalar_u1 = 0;
5498    let (x610, x611) = fiat_p521_scalar_addcarryx_u64(0x0, x556, x592);
5499    let mut x612: u64 = 0;
5500    let mut x613: fiat_p521_scalar_u1 = 0;
5501    let (x612, x613) = fiat_p521_scalar_addcarryx_u64(x611, x558, x594);
5502    let mut x614: u64 = 0;
5503    let mut x615: fiat_p521_scalar_u1 = 0;
5504    let (x614, x615) = fiat_p521_scalar_addcarryx_u64(x613, x560, x596);
5505    let mut x616: u64 = 0;
5506    let mut x617: fiat_p521_scalar_u1 = 0;
5507    let (x616, x617) = fiat_p521_scalar_addcarryx_u64(x615, x562, x598);
5508    let mut x618: u64 = 0;
5509    let mut x619: fiat_p521_scalar_u1 = 0;
5510    let (x618, x619) = fiat_p521_scalar_addcarryx_u64(x617, x564, x600);
5511    let mut x620: u64 = 0;
5512    let mut x621: fiat_p521_scalar_u1 = 0;
5513    let (x620, x621) = fiat_p521_scalar_addcarryx_u64(x619, x566, x602);
5514    let mut x622: u64 = 0;
5515    let mut x623: fiat_p521_scalar_u1 = 0;
5516    let (x622, x623) = fiat_p521_scalar_addcarryx_u64(x621, x568, x604);
5517    let mut x624: u64 = 0;
5518    let mut x625: fiat_p521_scalar_u1 = 0;
5519    let (x624, x625) = fiat_p521_scalar_addcarryx_u64(x623, x570, x606);
5520    let mut x626: u64 = 0;
5521    let mut x627: fiat_p521_scalar_u1 = 0;
5522    let (x626, x627) = fiat_p521_scalar_addcarryx_u64(x625, x572, x608);
5523    let mut x628: u64 = 0;
5524    let mut x629: u64 = 0;
5525    let (x628, x629) = fiat_p521_scalar_mulx_u64(x6, 0x3d);
5526    let mut x630: u64 = 0;
5527    let mut x631: u64 = 0;
5528    let (x630, x631) = fiat_p521_scalar_mulx_u64(x6, 0x2d8e03d1492d0d45);
5529    let mut x632: u64 = 0;
5530    let mut x633: u64 = 0;
5531    let (x632, x633) = fiat_p521_scalar_mulx_u64(x6, 0x5bcc6d61a8e567bc);
5532    let mut x634: u64 = 0;
5533    let mut x635: u64 = 0;
5534    let (x634, x635) = fiat_p521_scalar_mulx_u64(x6, 0xcff3d142b7756e3e);
5535    let mut x636: u64 = 0;
5536    let mut x637: u64 = 0;
5537    let (x636, x637) = fiat_p521_scalar_mulx_u64(x6, 0xdd6e23d82e49c7db);
5538    let mut x638: u64 = 0;
5539    let mut x639: u64 = 0;
5540    let (x638, x639) = fiat_p521_scalar_mulx_u64(x6, 0xd3721ef557f75e06);
5541    let mut x640: u64 = 0;
5542    let mut x641: u64 = 0;
5543    let (x640, x641) = fiat_p521_scalar_mulx_u64(x6, 0x12a78d38794573ff);
5544    let mut x642: u64 = 0;
5545    let mut x643: u64 = 0;
5546    let (x642, x643) = fiat_p521_scalar_mulx_u64(x6, 0xf707badce5547ea3);
5547    let mut x644: u64 = 0;
5548    let mut x645: u64 = 0;
5549    let (x644, x645) = fiat_p521_scalar_mulx_u64(x6, 0x137cd04dcf15dd04);
5550    let mut x646: u64 = 0;
5551    let mut x647: fiat_p521_scalar_u1 = 0;
5552    let (x646, x647) = fiat_p521_scalar_addcarryx_u64(0x0, x645, x642);
5553    let mut x648: u64 = 0;
5554    let mut x649: fiat_p521_scalar_u1 = 0;
5555    let (x648, x649) = fiat_p521_scalar_addcarryx_u64(x647, x643, x640);
5556    let mut x650: u64 = 0;
5557    let mut x651: fiat_p521_scalar_u1 = 0;
5558    let (x650, x651) = fiat_p521_scalar_addcarryx_u64(x649, x641, x638);
5559    let mut x652: u64 = 0;
5560    let mut x653: fiat_p521_scalar_u1 = 0;
5561    let (x652, x653) = fiat_p521_scalar_addcarryx_u64(x651, x639, x636);
5562    let mut x654: u64 = 0;
5563    let mut x655: fiat_p521_scalar_u1 = 0;
5564    let (x654, x655) = fiat_p521_scalar_addcarryx_u64(x653, x637, x634);
5565    let mut x656: u64 = 0;
5566    let mut x657: fiat_p521_scalar_u1 = 0;
5567    let (x656, x657) = fiat_p521_scalar_addcarryx_u64(x655, x635, x632);
5568    let mut x658: u64 = 0;
5569    let mut x659: fiat_p521_scalar_u1 = 0;
5570    let (x658, x659) = fiat_p521_scalar_addcarryx_u64(x657, x633, x630);
5571    let mut x660: u64 = 0;
5572    let mut x661: fiat_p521_scalar_u1 = 0;
5573    let (x660, x661) = fiat_p521_scalar_addcarryx_u64(x659, x631, x628);
5574    let mut x662: u64 = 0;
5575    let mut x663: fiat_p521_scalar_u1 = 0;
5576    let (x662, x663) = fiat_p521_scalar_addcarryx_u64(0x0, x612, x644);
5577    let mut x664: u64 = 0;
5578    let mut x665: fiat_p521_scalar_u1 = 0;
5579    let (x664, x665) = fiat_p521_scalar_addcarryx_u64(x663, x614, x646);
5580    let mut x666: u64 = 0;
5581    let mut x667: fiat_p521_scalar_u1 = 0;
5582    let (x666, x667) = fiat_p521_scalar_addcarryx_u64(x665, x616, x648);
5583    let mut x668: u64 = 0;
5584    let mut x669: fiat_p521_scalar_u1 = 0;
5585    let (x668, x669) = fiat_p521_scalar_addcarryx_u64(x667, x618, x650);
5586    let mut x670: u64 = 0;
5587    let mut x671: fiat_p521_scalar_u1 = 0;
5588    let (x670, x671) = fiat_p521_scalar_addcarryx_u64(x669, x620, x652);
5589    let mut x672: u64 = 0;
5590    let mut x673: fiat_p521_scalar_u1 = 0;
5591    let (x672, x673) = fiat_p521_scalar_addcarryx_u64(x671, x622, x654);
5592    let mut x674: u64 = 0;
5593    let mut x675: fiat_p521_scalar_u1 = 0;
5594    let (x674, x675) = fiat_p521_scalar_addcarryx_u64(x673, x624, x656);
5595    let mut x676: u64 = 0;
5596    let mut x677: fiat_p521_scalar_u1 = 0;
5597    let (x676, x677) = fiat_p521_scalar_addcarryx_u64(x675, x626, x658);
5598    let mut x678: u64 = 0;
5599    let mut x679: fiat_p521_scalar_u1 = 0;
5600    let (x678, x679) = fiat_p521_scalar_addcarryx_u64(
5601        x677,
5602        (((x627 as u64) + ((x573 as u64) + ((x555 as u64) + x523))) + ((x609 as u64) + x577)),
5603        x660,
5604    );
5605    let mut x680: u64 = 0;
5606    let mut x681: u64 = 0;
5607    let (x680, x681) = fiat_p521_scalar_mulx_u64(x662, 0x1d2f5ccd79a995c7);
5608    let mut x682: u64 = 0;
5609    let mut x683: u64 = 0;
5610    let (x682, x683) = fiat_p521_scalar_mulx_u64(x680, 0x1ff);
5611    let mut x684: u64 = 0;
5612    let mut x685: u64 = 0;
5613    let (x684, x685) = fiat_p521_scalar_mulx_u64(x680, 0xffffffffffffffff);
5614    let mut x686: u64 = 0;
5615    let mut x687: u64 = 0;
5616    let (x686, x687) = fiat_p521_scalar_mulx_u64(x680, 0xffffffffffffffff);
5617    let mut x688: u64 = 0;
5618    let mut x689: u64 = 0;
5619    let (x688, x689) = fiat_p521_scalar_mulx_u64(x680, 0xffffffffffffffff);
5620    let mut x690: u64 = 0;
5621    let mut x691: u64 = 0;
5622    let (x690, x691) = fiat_p521_scalar_mulx_u64(x680, 0xfffffffffffffffa);
5623    let mut x692: u64 = 0;
5624    let mut x693: u64 = 0;
5625    let (x692, x693) = fiat_p521_scalar_mulx_u64(x680, 0x51868783bf2f966b);
5626    let mut x694: u64 = 0;
5627    let mut x695: u64 = 0;
5628    let (x694, x695) = fiat_p521_scalar_mulx_u64(x680, 0x7fcc0148f709a5d0);
5629    let mut x696: u64 = 0;
5630    let mut x697: u64 = 0;
5631    let (x696, x697) = fiat_p521_scalar_mulx_u64(x680, 0x3bb5c9b8899c47ae);
5632    let mut x698: u64 = 0;
5633    let mut x699: u64 = 0;
5634    let (x698, x699) = fiat_p521_scalar_mulx_u64(x680, 0xbb6fb71e91386409);
5635    let mut x700: u64 = 0;
5636    let mut x701: fiat_p521_scalar_u1 = 0;
5637    let (x700, x701) = fiat_p521_scalar_addcarryx_u64(0x0, x699, x696);
5638    let mut x702: u64 = 0;
5639    let mut x703: fiat_p521_scalar_u1 = 0;
5640    let (x702, x703) = fiat_p521_scalar_addcarryx_u64(x701, x697, x694);
5641    let mut x704: u64 = 0;
5642    let mut x705: fiat_p521_scalar_u1 = 0;
5643    let (x704, x705) = fiat_p521_scalar_addcarryx_u64(x703, x695, x692);
5644    let mut x706: u64 = 0;
5645    let mut x707: fiat_p521_scalar_u1 = 0;
5646    let (x706, x707) = fiat_p521_scalar_addcarryx_u64(x705, x693, x690);
5647    let mut x708: u64 = 0;
5648    let mut x709: fiat_p521_scalar_u1 = 0;
5649    let (x708, x709) = fiat_p521_scalar_addcarryx_u64(x707, x691, x688);
5650    let mut x710: u64 = 0;
5651    let mut x711: fiat_p521_scalar_u1 = 0;
5652    let (x710, x711) = fiat_p521_scalar_addcarryx_u64(x709, x689, x686);
5653    let mut x712: u64 = 0;
5654    let mut x713: fiat_p521_scalar_u1 = 0;
5655    let (x712, x713) = fiat_p521_scalar_addcarryx_u64(x711, x687, x684);
5656    let mut x714: u64 = 0;
5657    let mut x715: fiat_p521_scalar_u1 = 0;
5658    let (x714, x715) = fiat_p521_scalar_addcarryx_u64(x713, x685, x682);
5659    let mut x716: u64 = 0;
5660    let mut x717: fiat_p521_scalar_u1 = 0;
5661    let (x716, x717) = fiat_p521_scalar_addcarryx_u64(0x0, x662, x698);
5662    let mut x718: u64 = 0;
5663    let mut x719: fiat_p521_scalar_u1 = 0;
5664    let (x718, x719) = fiat_p521_scalar_addcarryx_u64(x717, x664, x700);
5665    let mut x720: u64 = 0;
5666    let mut x721: fiat_p521_scalar_u1 = 0;
5667    let (x720, x721) = fiat_p521_scalar_addcarryx_u64(x719, x666, x702);
5668    let mut x722: u64 = 0;
5669    let mut x723: fiat_p521_scalar_u1 = 0;
5670    let (x722, x723) = fiat_p521_scalar_addcarryx_u64(x721, x668, x704);
5671    let mut x724: u64 = 0;
5672    let mut x725: fiat_p521_scalar_u1 = 0;
5673    let (x724, x725) = fiat_p521_scalar_addcarryx_u64(x723, x670, x706);
5674    let mut x726: u64 = 0;
5675    let mut x727: fiat_p521_scalar_u1 = 0;
5676    let (x726, x727) = fiat_p521_scalar_addcarryx_u64(x725, x672, x708);
5677    let mut x728: u64 = 0;
5678    let mut x729: fiat_p521_scalar_u1 = 0;
5679    let (x728, x729) = fiat_p521_scalar_addcarryx_u64(x727, x674, x710);
5680    let mut x730: u64 = 0;
5681    let mut x731: fiat_p521_scalar_u1 = 0;
5682    let (x730, x731) = fiat_p521_scalar_addcarryx_u64(x729, x676, x712);
5683    let mut x732: u64 = 0;
5684    let mut x733: fiat_p521_scalar_u1 = 0;
5685    let (x732, x733) = fiat_p521_scalar_addcarryx_u64(x731, x678, x714);
5686    let mut x734: u64 = 0;
5687    let mut x735: u64 = 0;
5688    let (x734, x735) = fiat_p521_scalar_mulx_u64(x7, 0x3d);
5689    let mut x736: u64 = 0;
5690    let mut x737: u64 = 0;
5691    let (x736, x737) = fiat_p521_scalar_mulx_u64(x7, 0x2d8e03d1492d0d45);
5692    let mut x738: u64 = 0;
5693    let mut x739: u64 = 0;
5694    let (x738, x739) = fiat_p521_scalar_mulx_u64(x7, 0x5bcc6d61a8e567bc);
5695    let mut x740: u64 = 0;
5696    let mut x741: u64 = 0;
5697    let (x740, x741) = fiat_p521_scalar_mulx_u64(x7, 0xcff3d142b7756e3e);
5698    let mut x742: u64 = 0;
5699    let mut x743: u64 = 0;
5700    let (x742, x743) = fiat_p521_scalar_mulx_u64(x7, 0xdd6e23d82e49c7db);
5701    let mut x744: u64 = 0;
5702    let mut x745: u64 = 0;
5703    let (x744, x745) = fiat_p521_scalar_mulx_u64(x7, 0xd3721ef557f75e06);
5704    let mut x746: u64 = 0;
5705    let mut x747: u64 = 0;
5706    let (x746, x747) = fiat_p521_scalar_mulx_u64(x7, 0x12a78d38794573ff);
5707    let mut x748: u64 = 0;
5708    let mut x749: u64 = 0;
5709    let (x748, x749) = fiat_p521_scalar_mulx_u64(x7, 0xf707badce5547ea3);
5710    let mut x750: u64 = 0;
5711    let mut x751: u64 = 0;
5712    let (x750, x751) = fiat_p521_scalar_mulx_u64(x7, 0x137cd04dcf15dd04);
5713    let mut x752: u64 = 0;
5714    let mut x753: fiat_p521_scalar_u1 = 0;
5715    let (x752, x753) = fiat_p521_scalar_addcarryx_u64(0x0, x751, x748);
5716    let mut x754: u64 = 0;
5717    let mut x755: fiat_p521_scalar_u1 = 0;
5718    let (x754, x755) = fiat_p521_scalar_addcarryx_u64(x753, x749, x746);
5719    let mut x756: u64 = 0;
5720    let mut x757: fiat_p521_scalar_u1 = 0;
5721    let (x756, x757) = fiat_p521_scalar_addcarryx_u64(x755, x747, x744);
5722    let mut x758: u64 = 0;
5723    let mut x759: fiat_p521_scalar_u1 = 0;
5724    let (x758, x759) = fiat_p521_scalar_addcarryx_u64(x757, x745, x742);
5725    let mut x760: u64 = 0;
5726    let mut x761: fiat_p521_scalar_u1 = 0;
5727    let (x760, x761) = fiat_p521_scalar_addcarryx_u64(x759, x743, x740);
5728    let mut x762: u64 = 0;
5729    let mut x763: fiat_p521_scalar_u1 = 0;
5730    let (x762, x763) = fiat_p521_scalar_addcarryx_u64(x761, x741, x738);
5731    let mut x764: u64 = 0;
5732    let mut x765: fiat_p521_scalar_u1 = 0;
5733    let (x764, x765) = fiat_p521_scalar_addcarryx_u64(x763, x739, x736);
5734    let mut x766: u64 = 0;
5735    let mut x767: fiat_p521_scalar_u1 = 0;
5736    let (x766, x767) = fiat_p521_scalar_addcarryx_u64(x765, x737, x734);
5737    let mut x768: u64 = 0;
5738    let mut x769: fiat_p521_scalar_u1 = 0;
5739    let (x768, x769) = fiat_p521_scalar_addcarryx_u64(0x0, x718, x750);
5740    let mut x770: u64 = 0;
5741    let mut x771: fiat_p521_scalar_u1 = 0;
5742    let (x770, x771) = fiat_p521_scalar_addcarryx_u64(x769, x720, x752);
5743    let mut x772: u64 = 0;
5744    let mut x773: fiat_p521_scalar_u1 = 0;
5745    let (x772, x773) = fiat_p521_scalar_addcarryx_u64(x771, x722, x754);
5746    let mut x774: u64 = 0;
5747    let mut x775: fiat_p521_scalar_u1 = 0;
5748    let (x774, x775) = fiat_p521_scalar_addcarryx_u64(x773, x724, x756);
5749    let mut x776: u64 = 0;
5750    let mut x777: fiat_p521_scalar_u1 = 0;
5751    let (x776, x777) = fiat_p521_scalar_addcarryx_u64(x775, x726, x758);
5752    let mut x778: u64 = 0;
5753    let mut x779: fiat_p521_scalar_u1 = 0;
5754    let (x778, x779) = fiat_p521_scalar_addcarryx_u64(x777, x728, x760);
5755    let mut x780: u64 = 0;
5756    let mut x781: fiat_p521_scalar_u1 = 0;
5757    let (x780, x781) = fiat_p521_scalar_addcarryx_u64(x779, x730, x762);
5758    let mut x782: u64 = 0;
5759    let mut x783: fiat_p521_scalar_u1 = 0;
5760    let (x782, x783) = fiat_p521_scalar_addcarryx_u64(x781, x732, x764);
5761    let mut x784: u64 = 0;
5762    let mut x785: fiat_p521_scalar_u1 = 0;
5763    let (x784, x785) = fiat_p521_scalar_addcarryx_u64(
5764        x783,
5765        (((x733 as u64) + ((x679 as u64) + ((x661 as u64) + x629))) + ((x715 as u64) + x683)),
5766        x766,
5767    );
5768    let mut x786: u64 = 0;
5769    let mut x787: u64 = 0;
5770    let (x786, x787) = fiat_p521_scalar_mulx_u64(x768, 0x1d2f5ccd79a995c7);
5771    let mut x788: u64 = 0;
5772    let mut x789: u64 = 0;
5773    let (x788, x789) = fiat_p521_scalar_mulx_u64(x786, 0x1ff);
5774    let mut x790: u64 = 0;
5775    let mut x791: u64 = 0;
5776    let (x790, x791) = fiat_p521_scalar_mulx_u64(x786, 0xffffffffffffffff);
5777    let mut x792: u64 = 0;
5778    let mut x793: u64 = 0;
5779    let (x792, x793) = fiat_p521_scalar_mulx_u64(x786, 0xffffffffffffffff);
5780    let mut x794: u64 = 0;
5781    let mut x795: u64 = 0;
5782    let (x794, x795) = fiat_p521_scalar_mulx_u64(x786, 0xffffffffffffffff);
5783    let mut x796: u64 = 0;
5784    let mut x797: u64 = 0;
5785    let (x796, x797) = fiat_p521_scalar_mulx_u64(x786, 0xfffffffffffffffa);
5786    let mut x798: u64 = 0;
5787    let mut x799: u64 = 0;
5788    let (x798, x799) = fiat_p521_scalar_mulx_u64(x786, 0x51868783bf2f966b);
5789    let mut x800: u64 = 0;
5790    let mut x801: u64 = 0;
5791    let (x800, x801) = fiat_p521_scalar_mulx_u64(x786, 0x7fcc0148f709a5d0);
5792    let mut x802: u64 = 0;
5793    let mut x803: u64 = 0;
5794    let (x802, x803) = fiat_p521_scalar_mulx_u64(x786, 0x3bb5c9b8899c47ae);
5795    let mut x804: u64 = 0;
5796    let mut x805: u64 = 0;
5797    let (x804, x805) = fiat_p521_scalar_mulx_u64(x786, 0xbb6fb71e91386409);
5798    let mut x806: u64 = 0;
5799    let mut x807: fiat_p521_scalar_u1 = 0;
5800    let (x806, x807) = fiat_p521_scalar_addcarryx_u64(0x0, x805, x802);
5801    let mut x808: u64 = 0;
5802    let mut x809: fiat_p521_scalar_u1 = 0;
5803    let (x808, x809) = fiat_p521_scalar_addcarryx_u64(x807, x803, x800);
5804    let mut x810: u64 = 0;
5805    let mut x811: fiat_p521_scalar_u1 = 0;
5806    let (x810, x811) = fiat_p521_scalar_addcarryx_u64(x809, x801, x798);
5807    let mut x812: u64 = 0;
5808    let mut x813: fiat_p521_scalar_u1 = 0;
5809    let (x812, x813) = fiat_p521_scalar_addcarryx_u64(x811, x799, x796);
5810    let mut x814: u64 = 0;
5811    let mut x815: fiat_p521_scalar_u1 = 0;
5812    let (x814, x815) = fiat_p521_scalar_addcarryx_u64(x813, x797, x794);
5813    let mut x816: u64 = 0;
5814    let mut x817: fiat_p521_scalar_u1 = 0;
5815    let (x816, x817) = fiat_p521_scalar_addcarryx_u64(x815, x795, x792);
5816    let mut x818: u64 = 0;
5817    let mut x819: fiat_p521_scalar_u1 = 0;
5818    let (x818, x819) = fiat_p521_scalar_addcarryx_u64(x817, x793, x790);
5819    let mut x820: u64 = 0;
5820    let mut x821: fiat_p521_scalar_u1 = 0;
5821    let (x820, x821) = fiat_p521_scalar_addcarryx_u64(x819, x791, x788);
5822    let mut x822: u64 = 0;
5823    let mut x823: fiat_p521_scalar_u1 = 0;
5824    let (x822, x823) = fiat_p521_scalar_addcarryx_u64(0x0, x768, x804);
5825    let mut x824: u64 = 0;
5826    let mut x825: fiat_p521_scalar_u1 = 0;
5827    let (x824, x825) = fiat_p521_scalar_addcarryx_u64(x823, x770, x806);
5828    let mut x826: u64 = 0;
5829    let mut x827: fiat_p521_scalar_u1 = 0;
5830    let (x826, x827) = fiat_p521_scalar_addcarryx_u64(x825, x772, x808);
5831    let mut x828: u64 = 0;
5832    let mut x829: fiat_p521_scalar_u1 = 0;
5833    let (x828, x829) = fiat_p521_scalar_addcarryx_u64(x827, x774, x810);
5834    let mut x830: u64 = 0;
5835    let mut x831: fiat_p521_scalar_u1 = 0;
5836    let (x830, x831) = fiat_p521_scalar_addcarryx_u64(x829, x776, x812);
5837    let mut x832: u64 = 0;
5838    let mut x833: fiat_p521_scalar_u1 = 0;
5839    let (x832, x833) = fiat_p521_scalar_addcarryx_u64(x831, x778, x814);
5840    let mut x834: u64 = 0;
5841    let mut x835: fiat_p521_scalar_u1 = 0;
5842    let (x834, x835) = fiat_p521_scalar_addcarryx_u64(x833, x780, x816);
5843    let mut x836: u64 = 0;
5844    let mut x837: fiat_p521_scalar_u1 = 0;
5845    let (x836, x837) = fiat_p521_scalar_addcarryx_u64(x835, x782, x818);
5846    let mut x838: u64 = 0;
5847    let mut x839: fiat_p521_scalar_u1 = 0;
5848    let (x838, x839) = fiat_p521_scalar_addcarryx_u64(x837, x784, x820);
5849    let mut x840: u64 = 0;
5850    let mut x841: u64 = 0;
5851    let (x840, x841) = fiat_p521_scalar_mulx_u64(x8, 0x3d);
5852    let mut x842: u64 = 0;
5853    let mut x843: u64 = 0;
5854    let (x842, x843) = fiat_p521_scalar_mulx_u64(x8, 0x2d8e03d1492d0d45);
5855    let mut x844: u64 = 0;
5856    let mut x845: u64 = 0;
5857    let (x844, x845) = fiat_p521_scalar_mulx_u64(x8, 0x5bcc6d61a8e567bc);
5858    let mut x846: u64 = 0;
5859    let mut x847: u64 = 0;
5860    let (x846, x847) = fiat_p521_scalar_mulx_u64(x8, 0xcff3d142b7756e3e);
5861    let mut x848: u64 = 0;
5862    let mut x849: u64 = 0;
5863    let (x848, x849) = fiat_p521_scalar_mulx_u64(x8, 0xdd6e23d82e49c7db);
5864    let mut x850: u64 = 0;
5865    let mut x851: u64 = 0;
5866    let (x850, x851) = fiat_p521_scalar_mulx_u64(x8, 0xd3721ef557f75e06);
5867    let mut x852: u64 = 0;
5868    let mut x853: u64 = 0;
5869    let (x852, x853) = fiat_p521_scalar_mulx_u64(x8, 0x12a78d38794573ff);
5870    let mut x854: u64 = 0;
5871    let mut x855: u64 = 0;
5872    let (x854, x855) = fiat_p521_scalar_mulx_u64(x8, 0xf707badce5547ea3);
5873    let mut x856: u64 = 0;
5874    let mut x857: u64 = 0;
5875    let (x856, x857) = fiat_p521_scalar_mulx_u64(x8, 0x137cd04dcf15dd04);
5876    let mut x858: u64 = 0;
5877    let mut x859: fiat_p521_scalar_u1 = 0;
5878    let (x858, x859) = fiat_p521_scalar_addcarryx_u64(0x0, x857, x854);
5879    let mut x860: u64 = 0;
5880    let mut x861: fiat_p521_scalar_u1 = 0;
5881    let (x860, x861) = fiat_p521_scalar_addcarryx_u64(x859, x855, x852);
5882    let mut x862: u64 = 0;
5883    let mut x863: fiat_p521_scalar_u1 = 0;
5884    let (x862, x863) = fiat_p521_scalar_addcarryx_u64(x861, x853, x850);
5885    let mut x864: u64 = 0;
5886    let mut x865: fiat_p521_scalar_u1 = 0;
5887    let (x864, x865) = fiat_p521_scalar_addcarryx_u64(x863, x851, x848);
5888    let mut x866: u64 = 0;
5889    let mut x867: fiat_p521_scalar_u1 = 0;
5890    let (x866, x867) = fiat_p521_scalar_addcarryx_u64(x865, x849, x846);
5891    let mut x868: u64 = 0;
5892    let mut x869: fiat_p521_scalar_u1 = 0;
5893    let (x868, x869) = fiat_p521_scalar_addcarryx_u64(x867, x847, x844);
5894    let mut x870: u64 = 0;
5895    let mut x871: fiat_p521_scalar_u1 = 0;
5896    let (x870, x871) = fiat_p521_scalar_addcarryx_u64(x869, x845, x842);
5897    let mut x872: u64 = 0;
5898    let mut x873: fiat_p521_scalar_u1 = 0;
5899    let (x872, x873) = fiat_p521_scalar_addcarryx_u64(x871, x843, x840);
5900    let mut x874: u64 = 0;
5901    let mut x875: fiat_p521_scalar_u1 = 0;
5902    let (x874, x875) = fiat_p521_scalar_addcarryx_u64(0x0, x824, x856);
5903    let mut x876: u64 = 0;
5904    let mut x877: fiat_p521_scalar_u1 = 0;
5905    let (x876, x877) = fiat_p521_scalar_addcarryx_u64(x875, x826, x858);
5906    let mut x878: u64 = 0;
5907    let mut x879: fiat_p521_scalar_u1 = 0;
5908    let (x878, x879) = fiat_p521_scalar_addcarryx_u64(x877, x828, x860);
5909    let mut x880: u64 = 0;
5910    let mut x881: fiat_p521_scalar_u1 = 0;
5911    let (x880, x881) = fiat_p521_scalar_addcarryx_u64(x879, x830, x862);
5912    let mut x882: u64 = 0;
5913    let mut x883: fiat_p521_scalar_u1 = 0;
5914    let (x882, x883) = fiat_p521_scalar_addcarryx_u64(x881, x832, x864);
5915    let mut x884: u64 = 0;
5916    let mut x885: fiat_p521_scalar_u1 = 0;
5917    let (x884, x885) = fiat_p521_scalar_addcarryx_u64(x883, x834, x866);
5918    let mut x886: u64 = 0;
5919    let mut x887: fiat_p521_scalar_u1 = 0;
5920    let (x886, x887) = fiat_p521_scalar_addcarryx_u64(x885, x836, x868);
5921    let mut x888: u64 = 0;
5922    let mut x889: fiat_p521_scalar_u1 = 0;
5923    let (x888, x889) = fiat_p521_scalar_addcarryx_u64(x887, x838, x870);
5924    let mut x890: u64 = 0;
5925    let mut x891: fiat_p521_scalar_u1 = 0;
5926    let (x890, x891) = fiat_p521_scalar_addcarryx_u64(
5927        x889,
5928        (((x839 as u64) + ((x785 as u64) + ((x767 as u64) + x735))) + ((x821 as u64) + x789)),
5929        x872,
5930    );
5931    let mut x892: u64 = 0;
5932    let mut x893: u64 = 0;
5933    let (x892, x893) = fiat_p521_scalar_mulx_u64(x874, 0x1d2f5ccd79a995c7);
5934    let mut x894: u64 = 0;
5935    let mut x895: u64 = 0;
5936    let (x894, x895) = fiat_p521_scalar_mulx_u64(x892, 0x1ff);
5937    let mut x896: u64 = 0;
5938    let mut x897: u64 = 0;
5939    let (x896, x897) = fiat_p521_scalar_mulx_u64(x892, 0xffffffffffffffff);
5940    let mut x898: u64 = 0;
5941    let mut x899: u64 = 0;
5942    let (x898, x899) = fiat_p521_scalar_mulx_u64(x892, 0xffffffffffffffff);
5943    let mut x900: u64 = 0;
5944    let mut x901: u64 = 0;
5945    let (x900, x901) = fiat_p521_scalar_mulx_u64(x892, 0xffffffffffffffff);
5946    let mut x902: u64 = 0;
5947    let mut x903: u64 = 0;
5948    let (x902, x903) = fiat_p521_scalar_mulx_u64(x892, 0xfffffffffffffffa);
5949    let mut x904: u64 = 0;
5950    let mut x905: u64 = 0;
5951    let (x904, x905) = fiat_p521_scalar_mulx_u64(x892, 0x51868783bf2f966b);
5952    let mut x906: u64 = 0;
5953    let mut x907: u64 = 0;
5954    let (x906, x907) = fiat_p521_scalar_mulx_u64(x892, 0x7fcc0148f709a5d0);
5955    let mut x908: u64 = 0;
5956    let mut x909: u64 = 0;
5957    let (x908, x909) = fiat_p521_scalar_mulx_u64(x892, 0x3bb5c9b8899c47ae);
5958    let mut x910: u64 = 0;
5959    let mut x911: u64 = 0;
5960    let (x910, x911) = fiat_p521_scalar_mulx_u64(x892, 0xbb6fb71e91386409);
5961    let mut x912: u64 = 0;
5962    let mut x913: fiat_p521_scalar_u1 = 0;
5963    let (x912, x913) = fiat_p521_scalar_addcarryx_u64(0x0, x911, x908);
5964    let mut x914: u64 = 0;
5965    let mut x915: fiat_p521_scalar_u1 = 0;
5966    let (x914, x915) = fiat_p521_scalar_addcarryx_u64(x913, x909, x906);
5967    let mut x916: u64 = 0;
5968    let mut x917: fiat_p521_scalar_u1 = 0;
5969    let (x916, x917) = fiat_p521_scalar_addcarryx_u64(x915, x907, x904);
5970    let mut x918: u64 = 0;
5971    let mut x919: fiat_p521_scalar_u1 = 0;
5972    let (x918, x919) = fiat_p521_scalar_addcarryx_u64(x917, x905, x902);
5973    let mut x920: u64 = 0;
5974    let mut x921: fiat_p521_scalar_u1 = 0;
5975    let (x920, x921) = fiat_p521_scalar_addcarryx_u64(x919, x903, x900);
5976    let mut x922: u64 = 0;
5977    let mut x923: fiat_p521_scalar_u1 = 0;
5978    let (x922, x923) = fiat_p521_scalar_addcarryx_u64(x921, x901, x898);
5979    let mut x924: u64 = 0;
5980    let mut x925: fiat_p521_scalar_u1 = 0;
5981    let (x924, x925) = fiat_p521_scalar_addcarryx_u64(x923, x899, x896);
5982    let mut x926: u64 = 0;
5983    let mut x927: fiat_p521_scalar_u1 = 0;
5984    let (x926, x927) = fiat_p521_scalar_addcarryx_u64(x925, x897, x894);
5985    let mut x928: u64 = 0;
5986    let mut x929: fiat_p521_scalar_u1 = 0;
5987    let (x928, x929) = fiat_p521_scalar_addcarryx_u64(0x0, x874, x910);
5988    let mut x930: u64 = 0;
5989    let mut x931: fiat_p521_scalar_u1 = 0;
5990    let (x930, x931) = fiat_p521_scalar_addcarryx_u64(x929, x876, x912);
5991    let mut x932: u64 = 0;
5992    let mut x933: fiat_p521_scalar_u1 = 0;
5993    let (x932, x933) = fiat_p521_scalar_addcarryx_u64(x931, x878, x914);
5994    let mut x934: u64 = 0;
5995    let mut x935: fiat_p521_scalar_u1 = 0;
5996    let (x934, x935) = fiat_p521_scalar_addcarryx_u64(x933, x880, x916);
5997    let mut x936: u64 = 0;
5998    let mut x937: fiat_p521_scalar_u1 = 0;
5999    let (x936, x937) = fiat_p521_scalar_addcarryx_u64(x935, x882, x918);
6000    let mut x938: u64 = 0;
6001    let mut x939: fiat_p521_scalar_u1 = 0;
6002    let (x938, x939) = fiat_p521_scalar_addcarryx_u64(x937, x884, x920);
6003    let mut x940: u64 = 0;
6004    let mut x941: fiat_p521_scalar_u1 = 0;
6005    let (x940, x941) = fiat_p521_scalar_addcarryx_u64(x939, x886, x922);
6006    let mut x942: u64 = 0;
6007    let mut x943: fiat_p521_scalar_u1 = 0;
6008    let (x942, x943) = fiat_p521_scalar_addcarryx_u64(x941, x888, x924);
6009    let mut x944: u64 = 0;
6010    let mut x945: fiat_p521_scalar_u1 = 0;
6011    let (x944, x945) = fiat_p521_scalar_addcarryx_u64(x943, x890, x926);
6012    let x946: u64 =
6013        (((x945 as u64) + ((x891 as u64) + ((x873 as u64) + x841))) + ((x927 as u64) + x895));
6014    let mut x947: u64 = 0;
6015    let mut x948: fiat_p521_scalar_u1 = 0;
6016    let (x947, x948) = fiat_p521_scalar_subborrowx_u64(0x0, x930, 0xbb6fb71e91386409);
6017    let mut x949: u64 = 0;
6018    let mut x950: fiat_p521_scalar_u1 = 0;
6019    let (x949, x950) = fiat_p521_scalar_subborrowx_u64(x948, x932, 0x3bb5c9b8899c47ae);
6020    let mut x951: u64 = 0;
6021    let mut x952: fiat_p521_scalar_u1 = 0;
6022    let (x951, x952) = fiat_p521_scalar_subborrowx_u64(x950, x934, 0x7fcc0148f709a5d0);
6023    let mut x953: u64 = 0;
6024    let mut x954: fiat_p521_scalar_u1 = 0;
6025    let (x953, x954) = fiat_p521_scalar_subborrowx_u64(x952, x936, 0x51868783bf2f966b);
6026    let mut x955: u64 = 0;
6027    let mut x956: fiat_p521_scalar_u1 = 0;
6028    let (x955, x956) = fiat_p521_scalar_subborrowx_u64(x954, x938, 0xfffffffffffffffa);
6029    let mut x957: u64 = 0;
6030    let mut x958: fiat_p521_scalar_u1 = 0;
6031    let (x957, x958) = fiat_p521_scalar_subborrowx_u64(x956, x940, 0xffffffffffffffff);
6032    let mut x959: u64 = 0;
6033    let mut x960: fiat_p521_scalar_u1 = 0;
6034    let (x959, x960) = fiat_p521_scalar_subborrowx_u64(x958, x942, 0xffffffffffffffff);
6035    let mut x961: u64 = 0;
6036    let mut x962: fiat_p521_scalar_u1 = 0;
6037    let (x961, x962) = fiat_p521_scalar_subborrowx_u64(x960, x944, 0xffffffffffffffff);
6038    let mut x963: u64 = 0;
6039    let mut x964: fiat_p521_scalar_u1 = 0;
6040    let (x963, x964) = fiat_p521_scalar_subborrowx_u64(x962, x946, 0x1ff);
6041    let mut x965: u64 = 0;
6042    let mut x966: fiat_p521_scalar_u1 = 0;
6043    let (x965, x966) = fiat_p521_scalar_subborrowx_u64(x964, (0x0 as u64), (0x0 as u64));
6044    let mut x967: u64 = 0;
6045    let (x967) = fiat_p521_scalar_cmovznz_u64(x966, x947, x930);
6046    let mut x968: u64 = 0;
6047    let (x968) = fiat_p521_scalar_cmovznz_u64(x966, x949, x932);
6048    let mut x969: u64 = 0;
6049    let (x969) = fiat_p521_scalar_cmovznz_u64(x966, x951, x934);
6050    let mut x970: u64 = 0;
6051    let (x970) = fiat_p521_scalar_cmovznz_u64(x966, x953, x936);
6052    let mut x971: u64 = 0;
6053    let (x971) = fiat_p521_scalar_cmovznz_u64(x966, x955, x938);
6054    let mut x972: u64 = 0;
6055    let (x972) = fiat_p521_scalar_cmovznz_u64(x966, x957, x940);
6056    let mut x973: u64 = 0;
6057    let (x973) = fiat_p521_scalar_cmovznz_u64(x966, x959, x942);
6058    let mut x974: u64 = 0;
6059    let (x974) = fiat_p521_scalar_cmovznz_u64(x966, x961, x944);
6060    let mut x975: u64 = 0;
6061    let (x975) = fiat_p521_scalar_cmovznz_u64(x966, x963, x946);
6062    out1[0] = x967;
6063    out1[1] = x968;
6064    out1[2] = x969;
6065    out1[3] = x970;
6066    out1[4] = x971;
6067    out1[5] = x972;
6068    out1[6] = x973;
6069    out1[7] = x974;
6070    out1[8] = x975;
6071    out1
6072}
6073#[doc = " The function fiat_p521_scalar_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise."]
6074#[doc = ""]
6075#[doc = " Preconditions:"]
6076#[doc = "   0 ≤ eval arg1 < m"]
6077#[doc = " Postconditions:"]
6078#[doc = "   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0"]
6079#[doc = ""]
6080#[doc = " Input Bounds:"]
6081#[doc = "   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6082#[doc = " Output Bounds:"]
6083#[doc = "   out1: [0x0 ~> 0xffffffffffffffff]"]
6084#[inline]
6085pub const fn fiat_p521_scalar_nonzero(arg1: &[u64; 9]) -> u64 {
6086    let mut out1: u64 = 0;
6087    let x1: u64 = ((arg1[0])
6088        | ((arg1[1])
6089            | ((arg1[2])
6090                | ((arg1[3])
6091                    | ((arg1[4]) | ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (arg1[8])))))))));
6092    out1 = x1;
6093    out1
6094}
6095#[doc = " The function fiat_p521_scalar_selectznz is a multi-limb conditional select."]
6096#[doc = ""]
6097#[doc = " Postconditions:"]
6098#[doc = "   out1 = (if arg1 = 0 then arg2 else arg3)"]
6099#[doc = ""]
6100#[doc = " Input Bounds:"]
6101#[doc = "   arg1: [0x0 ~> 0x1]"]
6102#[doc = "   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6103#[doc = "   arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6104#[doc = " Output Bounds:"]
6105#[doc = "   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6106#[inline]
6107pub const fn fiat_p521_scalar_selectznz(
6108    arg1: fiat_p521_scalar_u1,
6109    arg2: &[u64; 9],
6110    arg3: &[u64; 9],
6111) -> [u64; 9] {
6112    let mut out1: [u64; 9] = [0; 9];
6113    let mut x1: u64 = 0;
6114    let (x1) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
6115    let mut x2: u64 = 0;
6116    let (x2) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
6117    let mut x3: u64 = 0;
6118    let (x3) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
6119    let mut x4: u64 = 0;
6120    let (x4) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
6121    let mut x5: u64 = 0;
6122    let (x5) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
6123    let mut x6: u64 = 0;
6124    let (x6) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
6125    let mut x7: u64 = 0;
6126    let (x7) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[6]), (arg3[6]));
6127    let mut x8: u64 = 0;
6128    let (x8) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[7]), (arg3[7]));
6129    let mut x9: u64 = 0;
6130    let (x9) = fiat_p521_scalar_cmovznz_u64(arg1, (arg2[8]), (arg3[8]));
6131    out1[0] = x1;
6132    out1[1] = x2;
6133    out1[2] = x3;
6134    out1[3] = x4;
6135    out1[4] = x5;
6136    out1[5] = x6;
6137    out1[6] = x7;
6138    out1[7] = x8;
6139    out1[8] = x9;
6140    out1
6141}
6142#[doc = " The function fiat_p521_scalar_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order."]
6143#[doc = ""]
6144#[doc = " Preconditions:"]
6145#[doc = "   0 ≤ eval arg1 < m"]
6146#[doc = " Postconditions:"]
6147#[doc = "   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..65]"]
6148#[doc = ""]
6149#[doc = " Input Bounds:"]
6150#[doc = "   arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1ff]]"]
6151#[doc = " Output Bounds:"]
6152#[doc = "   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 ~> 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]]"]
6153#[inline]
6154pub const fn fiat_p521_scalar_to_bytes(arg1: &[u64; 9]) -> [u8; 66] {
6155    let mut out1: [u8; 66] = [0; 66];
6156    let x1: u64 = (arg1[8]);
6157    let x2: u64 = (arg1[7]);
6158    let x3: u64 = (arg1[6]);
6159    let x4: u64 = (arg1[5]);
6160    let x5: u64 = (arg1[4]);
6161    let x6: u64 = (arg1[3]);
6162    let x7: u64 = (arg1[2]);
6163    let x8: u64 = (arg1[1]);
6164    let x9: u64 = (arg1[0]);
6165    let x10: u8 = ((x9 & (0xff as u64)) as u8);
6166    let x11: u64 = (x9 >> 8);
6167    let x12: u8 = ((x11 & (0xff as u64)) as u8);
6168    let x13: u64 = (x11 >> 8);
6169    let x14: u8 = ((x13 & (0xff as u64)) as u8);
6170    let x15: u64 = (x13 >> 8);
6171    let x16: u8 = ((x15 & (0xff as u64)) as u8);
6172    let x17: u64 = (x15 >> 8);
6173    let x18: u8 = ((x17 & (0xff as u64)) as u8);
6174    let x19: u64 = (x17 >> 8);
6175    let x20: u8 = ((x19 & (0xff as u64)) as u8);
6176    let x21: u64 = (x19 >> 8);
6177    let x22: u8 = ((x21 & (0xff as u64)) as u8);
6178    let x23: u8 = ((x21 >> 8) as u8);
6179    let x24: u8 = ((x8 & (0xff as u64)) as u8);
6180    let x25: u64 = (x8 >> 8);
6181    let x26: u8 = ((x25 & (0xff as u64)) as u8);
6182    let x27: u64 = (x25 >> 8);
6183    let x28: u8 = ((x27 & (0xff as u64)) as u8);
6184    let x29: u64 = (x27 >> 8);
6185    let x30: u8 = ((x29 & (0xff as u64)) as u8);
6186    let x31: u64 = (x29 >> 8);
6187    let x32: u8 = ((x31 & (0xff as u64)) as u8);
6188    let x33: u64 = (x31 >> 8);
6189    let x34: u8 = ((x33 & (0xff as u64)) as u8);
6190    let x35: u64 = (x33 >> 8);
6191    let x36: u8 = ((x35 & (0xff as u64)) as u8);
6192    let x37: u8 = ((x35 >> 8) as u8);
6193    let x38: u8 = ((x7 & (0xff as u64)) as u8);
6194    let x39: u64 = (x7 >> 8);
6195    let x40: u8 = ((x39 & (0xff as u64)) as u8);
6196    let x41: u64 = (x39 >> 8);
6197    let x42: u8 = ((x41 & (0xff as u64)) as u8);
6198    let x43: u64 = (x41 >> 8);
6199    let x44: u8 = ((x43 & (0xff as u64)) as u8);
6200    let x45: u64 = (x43 >> 8);
6201    let x46: u8 = ((x45 & (0xff as u64)) as u8);
6202    let x47: u64 = (x45 >> 8);
6203    let x48: u8 = ((x47 & (0xff as u64)) as u8);
6204    let x49: u64 = (x47 >> 8);
6205    let x50: u8 = ((x49 & (0xff as u64)) as u8);
6206    let x51: u8 = ((x49 >> 8) as u8);
6207    let x52: u8 = ((x6 & (0xff as u64)) as u8);
6208    let x53: u64 = (x6 >> 8);
6209    let x54: u8 = ((x53 & (0xff as u64)) as u8);
6210    let x55: u64 = (x53 >> 8);
6211    let x56: u8 = ((x55 & (0xff as u64)) as u8);
6212    let x57: u64 = (x55 >> 8);
6213    let x58: u8 = ((x57 & (0xff as u64)) as u8);
6214    let x59: u64 = (x57 >> 8);
6215    let x60: u8 = ((x59 & (0xff as u64)) as u8);
6216    let x61: u64 = (x59 >> 8);
6217    let x62: u8 = ((x61 & (0xff as u64)) as u8);
6218    let x63: u64 = (x61 >> 8);
6219    let x64: u8 = ((x63 & (0xff as u64)) as u8);
6220    let x65: u8 = ((x63 >> 8) as u8);
6221    let x66: u8 = ((x5 & (0xff as u64)) as u8);
6222    let x67: u64 = (x5 >> 8);
6223    let x68: u8 = ((x67 & (0xff as u64)) as u8);
6224    let x69: u64 = (x67 >> 8);
6225    let x70: u8 = ((x69 & (0xff as u64)) as u8);
6226    let x71: u64 = (x69 >> 8);
6227    let x72: u8 = ((x71 & (0xff as u64)) as u8);
6228    let x73: u64 = (x71 >> 8);
6229    let x74: u8 = ((x73 & (0xff as u64)) as u8);
6230    let x75: u64 = (x73 >> 8);
6231    let x76: u8 = ((x75 & (0xff as u64)) as u8);
6232    let x77: u64 = (x75 >> 8);
6233    let x78: u8 = ((x77 & (0xff as u64)) as u8);
6234    let x79: u8 = ((x77 >> 8) as u8);
6235    let x80: u8 = ((x4 & (0xff as u64)) as u8);
6236    let x81: u64 = (x4 >> 8);
6237    let x82: u8 = ((x81 & (0xff as u64)) as u8);
6238    let x83: u64 = (x81 >> 8);
6239    let x84: u8 = ((x83 & (0xff as u64)) as u8);
6240    let x85: u64 = (x83 >> 8);
6241    let x86: u8 = ((x85 & (0xff as u64)) as u8);
6242    let x87: u64 = (x85 >> 8);
6243    let x88: u8 = ((x87 & (0xff as u64)) as u8);
6244    let x89: u64 = (x87 >> 8);
6245    let x90: u8 = ((x89 & (0xff as u64)) as u8);
6246    let x91: u64 = (x89 >> 8);
6247    let x92: u8 = ((x91 & (0xff as u64)) as u8);
6248    let x93: u8 = ((x91 >> 8) as u8);
6249    let x94: u8 = ((x3 & (0xff as u64)) as u8);
6250    let x95: u64 = (x3 >> 8);
6251    let x96: u8 = ((x95 & (0xff as u64)) as u8);
6252    let x97: u64 = (x95 >> 8);
6253    let x98: u8 = ((x97 & (0xff as u64)) as u8);
6254    let x99: u64 = (x97 >> 8);
6255    let x100: u8 = ((x99 & (0xff as u64)) as u8);
6256    let x101: u64 = (x99 >> 8);
6257    let x102: u8 = ((x101 & (0xff as u64)) as u8);
6258    let x103: u64 = (x101 >> 8);
6259    let x104: u8 = ((x103 & (0xff as u64)) as u8);
6260    let x105: u64 = (x103 >> 8);
6261    let x106: u8 = ((x105 & (0xff as u64)) as u8);
6262    let x107: u8 = ((x105 >> 8) as u8);
6263    let x108: u8 = ((x2 & (0xff as u64)) as u8);
6264    let x109: u64 = (x2 >> 8);
6265    let x110: u8 = ((x109 & (0xff as u64)) as u8);
6266    let x111: u64 = (x109 >> 8);
6267    let x112: u8 = ((x111 & (0xff as u64)) as u8);
6268    let x113: u64 = (x111 >> 8);
6269    let x114: u8 = ((x113 & (0xff as u64)) as u8);
6270    let x115: u64 = (x113 >> 8);
6271    let x116: u8 = ((x115 & (0xff as u64)) as u8);
6272    let x117: u64 = (x115 >> 8);
6273    let x118: u8 = ((x117 & (0xff as u64)) as u8);
6274    let x119: u64 = (x117 >> 8);
6275    let x120: u8 = ((x119 & (0xff as u64)) as u8);
6276    let x121: u8 = ((x119 >> 8) as u8);
6277    let x122: u8 = ((x1 & (0xff as u64)) as u8);
6278    let x123: fiat_p521_scalar_u1 = ((x1 >> 8) as fiat_p521_scalar_u1);
6279    out1[0] = x10;
6280    out1[1] = x12;
6281    out1[2] = x14;
6282    out1[3] = x16;
6283    out1[4] = x18;
6284    out1[5] = x20;
6285    out1[6] = x22;
6286    out1[7] = x23;
6287    out1[8] = x24;
6288    out1[9] = x26;
6289    out1[10] = x28;
6290    out1[11] = x30;
6291    out1[12] = x32;
6292    out1[13] = x34;
6293    out1[14] = x36;
6294    out1[15] = x37;
6295    out1[16] = x38;
6296    out1[17] = x40;
6297    out1[18] = x42;
6298    out1[19] = x44;
6299    out1[20] = x46;
6300    out1[21] = x48;
6301    out1[22] = x50;
6302    out1[23] = x51;
6303    out1[24] = x52;
6304    out1[25] = x54;
6305    out1[26] = x56;
6306    out1[27] = x58;
6307    out1[28] = x60;
6308    out1[29] = x62;
6309    out1[30] = x64;
6310    out1[31] = x65;
6311    out1[32] = x66;
6312    out1[33] = x68;
6313    out1[34] = x70;
6314    out1[35] = x72;
6315    out1[36] = x74;
6316    out1[37] = x76;
6317    out1[38] = x78;
6318    out1[39] = x79;
6319    out1[40] = x80;
6320    out1[41] = x82;
6321    out1[42] = x84;
6322    out1[43] = x86;
6323    out1[44] = x88;
6324    out1[45] = x90;
6325    out1[46] = x92;
6326    out1[47] = x93;
6327    out1[48] = x94;
6328    out1[49] = x96;
6329    out1[50] = x98;
6330    out1[51] = x100;
6331    out1[52] = x102;
6332    out1[53] = x104;
6333    out1[54] = x106;
6334    out1[55] = x107;
6335    out1[56] = x108;
6336    out1[57] = x110;
6337    out1[58] = x112;
6338    out1[59] = x114;
6339    out1[60] = x116;
6340    out1[61] = x118;
6341    out1[62] = x120;
6342    out1[63] = x121;
6343    out1[64] = x122;
6344    out1[65] = (x123 as u8);
6345    out1
6346}
6347#[doc = " The function fiat_p521_scalar_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order."]
6348#[doc = ""]
6349#[doc = " Preconditions:"]
6350#[doc = "   0 ≤ bytes_eval arg1 < m"]
6351#[doc = " Postconditions:"]
6352#[doc = "   eval out1 mod m = bytes_eval arg1 mod m"]
6353#[doc = "   0 ≤ eval out1 < m"]
6354#[doc = ""]
6355#[doc = " Input Bounds:"]
6356#[doc = "   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 ~> 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]]"]
6357#[doc = " Output Bounds:"]
6358#[doc = "   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1ff]]"]
6359#[inline]
6360pub const fn fiat_p521_scalar_from_bytes(arg1: &[u8; 66]) -> [u64; 9] {
6361    let mut out1: [u64; 9] = [0; 9];
6362    let x1: u64 = ((((arg1[65]) as fiat_p521_scalar_u1) as u64) << 8);
6363    let x2: u8 = (arg1[64]);
6364    let x3: u64 = (((arg1[63]) as u64) << 56);
6365    let x4: u64 = (((arg1[62]) as u64) << 48);
6366    let x5: u64 = (((arg1[61]) as u64) << 40);
6367    let x6: u64 = (((arg1[60]) as u64) << 32);
6368    let x7: u64 = (((arg1[59]) as u64) << 24);
6369    let x8: u64 = (((arg1[58]) as u64) << 16);
6370    let x9: u64 = (((arg1[57]) as u64) << 8);
6371    let x10: u8 = (arg1[56]);
6372    let x11: u64 = (((arg1[55]) as u64) << 56);
6373    let x12: u64 = (((arg1[54]) as u64) << 48);
6374    let x13: u64 = (((arg1[53]) as u64) << 40);
6375    let x14: u64 = (((arg1[52]) as u64) << 32);
6376    let x15: u64 = (((arg1[51]) as u64) << 24);
6377    let x16: u64 = (((arg1[50]) as u64) << 16);
6378    let x17: u64 = (((arg1[49]) as u64) << 8);
6379    let x18: u8 = (arg1[48]);
6380    let x19: u64 = (((arg1[47]) as u64) << 56);
6381    let x20: u64 = (((arg1[46]) as u64) << 48);
6382    let x21: u64 = (((arg1[45]) as u64) << 40);
6383    let x22: u64 = (((arg1[44]) as u64) << 32);
6384    let x23: u64 = (((arg1[43]) as u64) << 24);
6385    let x24: u64 = (((arg1[42]) as u64) << 16);
6386    let x25: u64 = (((arg1[41]) as u64) << 8);
6387    let x26: u8 = (arg1[40]);
6388    let x27: u64 = (((arg1[39]) as u64) << 56);
6389    let x28: u64 = (((arg1[38]) as u64) << 48);
6390    let x29: u64 = (((arg1[37]) as u64) << 40);
6391    let x30: u64 = (((arg1[36]) as u64) << 32);
6392    let x31: u64 = (((arg1[35]) as u64) << 24);
6393    let x32: u64 = (((arg1[34]) as u64) << 16);
6394    let x33: u64 = (((arg1[33]) as u64) << 8);
6395    let x34: u8 = (arg1[32]);
6396    let x35: u64 = (((arg1[31]) as u64) << 56);
6397    let x36: u64 = (((arg1[30]) as u64) << 48);
6398    let x37: u64 = (((arg1[29]) as u64) << 40);
6399    let x38: u64 = (((arg1[28]) as u64) << 32);
6400    let x39: u64 = (((arg1[27]) as u64) << 24);
6401    let x40: u64 = (((arg1[26]) as u64) << 16);
6402    let x41: u64 = (((arg1[25]) as u64) << 8);
6403    let x42: u8 = (arg1[24]);
6404    let x43: u64 = (((arg1[23]) as u64) << 56);
6405    let x44: u64 = (((arg1[22]) as u64) << 48);
6406    let x45: u64 = (((arg1[21]) as u64) << 40);
6407    let x46: u64 = (((arg1[20]) as u64) << 32);
6408    let x47: u64 = (((arg1[19]) as u64) << 24);
6409    let x48: u64 = (((arg1[18]) as u64) << 16);
6410    let x49: u64 = (((arg1[17]) as u64) << 8);
6411    let x50: u8 = (arg1[16]);
6412    let x51: u64 = (((arg1[15]) as u64) << 56);
6413    let x52: u64 = (((arg1[14]) as u64) << 48);
6414    let x53: u64 = (((arg1[13]) as u64) << 40);
6415    let x54: u64 = (((arg1[12]) as u64) << 32);
6416    let x55: u64 = (((arg1[11]) as u64) << 24);
6417    let x56: u64 = (((arg1[10]) as u64) << 16);
6418    let x57: u64 = (((arg1[9]) as u64) << 8);
6419    let x58: u8 = (arg1[8]);
6420    let x59: u64 = (((arg1[7]) as u64) << 56);
6421    let x60: u64 = (((arg1[6]) as u64) << 48);
6422    let x61: u64 = (((arg1[5]) as u64) << 40);
6423    let x62: u64 = (((arg1[4]) as u64) << 32);
6424    let x63: u64 = (((arg1[3]) as u64) << 24);
6425    let x64: u64 = (((arg1[2]) as u64) << 16);
6426    let x65: u64 = (((arg1[1]) as u64) << 8);
6427    let x66: u8 = (arg1[0]);
6428    let x67: u64 = (x65 + (x66 as u64));
6429    let x68: u64 = (x64 + x67);
6430    let x69: u64 = (x63 + x68);
6431    let x70: u64 = (x62 + x69);
6432    let x71: u64 = (x61 + x70);
6433    let x72: u64 = (x60 + x71);
6434    let x73: u64 = (x59 + x72);
6435    let x74: u64 = (x57 + (x58 as u64));
6436    let x75: u64 = (x56 + x74);
6437    let x76: u64 = (x55 + x75);
6438    let x77: u64 = (x54 + x76);
6439    let x78: u64 = (x53 + x77);
6440    let x79: u64 = (x52 + x78);
6441    let x80: u64 = (x51 + x79);
6442    let x81: u64 = (x49 + (x50 as u64));
6443    let x82: u64 = (x48 + x81);
6444    let x83: u64 = (x47 + x82);
6445    let x84: u64 = (x46 + x83);
6446    let x85: u64 = (x45 + x84);
6447    let x86: u64 = (x44 + x85);
6448    let x87: u64 = (x43 + x86);
6449    let x88: u64 = (x41 + (x42 as u64));
6450    let x89: u64 = (x40 + x88);
6451    let x90: u64 = (x39 + x89);
6452    let x91: u64 = (x38 + x90);
6453    let x92: u64 = (x37 + x91);
6454    let x93: u64 = (x36 + x92);
6455    let x94: u64 = (x35 + x93);
6456    let x95: u64 = (x33 + (x34 as u64));
6457    let x96: u64 = (x32 + x95);
6458    let x97: u64 = (x31 + x96);
6459    let x98: u64 = (x30 + x97);
6460    let x99: u64 = (x29 + x98);
6461    let x100: u64 = (x28 + x99);
6462    let x101: u64 = (x27 + x100);
6463    let x102: u64 = (x25 + (x26 as u64));
6464    let x103: u64 = (x24 + x102);
6465    let x104: u64 = (x23 + x103);
6466    let x105: u64 = (x22 + x104);
6467    let x106: u64 = (x21 + x105);
6468    let x107: u64 = (x20 + x106);
6469    let x108: u64 = (x19 + x107);
6470    let x109: u64 = (x17 + (x18 as u64));
6471    let x110: u64 = (x16 + x109);
6472    let x111: u64 = (x15 + x110);
6473    let x112: u64 = (x14 + x111);
6474    let x113: u64 = (x13 + x112);
6475    let x114: u64 = (x12 + x113);
6476    let x115: u64 = (x11 + x114);
6477    let x116: u64 = (x9 + (x10 as u64));
6478    let x117: u64 = (x8 + x116);
6479    let x118: u64 = (x7 + x117);
6480    let x119: u64 = (x6 + x118);
6481    let x120: u64 = (x5 + x119);
6482    let x121: u64 = (x4 + x120);
6483    let x122: u64 = (x3 + x121);
6484    let x123: u64 = (x1 + (x2 as u64));
6485    out1[0] = x73;
6486    out1[1] = x80;
6487    out1[2] = x87;
6488    out1[3] = x94;
6489    out1[4] = x101;
6490    out1[5] = x108;
6491    out1[6] = x115;
6492    out1[7] = x122;
6493    out1[8] = x123;
6494    out1
6495}
6496#[doc = " The function fiat_p521_scalar_set_one returns the field element one in the Montgomery domain."]
6497#[doc = ""]
6498#[doc = " Postconditions:"]
6499#[doc = "   eval (from_montgomery out1) mod m = 1 mod m"]
6500#[doc = "   0 ≤ eval out1 < m"]
6501#[doc = ""]
6502#[inline]
6503pub const fn fiat_p521_scalar_set_one() -> fiat_p521_scalar_montgomery_domain_field_element {
6504    let mut out1: fiat_p521_scalar_montgomery_domain_field_element = [0; 9];
6505    out1[0] = 0xfb80000000000000;
6506    out1[1] = 0x28a2482470b763cd;
6507    out1[2] = 0x17e2251b23bb31dc;
6508    out1[3] = 0xca4019ff5b847b2d;
6509    out1[4] = 0x2d73cbc3e206834;
6510    out1[5] = (0x0 as u64);
6511    out1[6] = (0x0 as u64);
6512    out1[7] = (0x0 as u64);
6513    out1[8] = (0x0 as u64);
6514    out1
6515}
6516#[doc = " The function fiat_p521_scalar_msat returns the saturated representation of the prime modulus."]
6517#[doc = ""]
6518#[doc = " Postconditions:"]
6519#[doc = "   twos_complement_eval out1 = m"]
6520#[doc = "   0 ≤ eval out1 < m"]
6521#[doc = ""]
6522#[doc = " Output Bounds:"]
6523#[doc = "   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6524#[inline]
6525pub const fn fiat_p521_scalar_msat() -> [u64; 10] {
6526    let mut out1: [u64; 10] = [0; 10];
6527    out1[0] = 0xbb6fb71e91386409;
6528    out1[1] = 0x3bb5c9b8899c47ae;
6529    out1[2] = 0x7fcc0148f709a5d0;
6530    out1[3] = 0x51868783bf2f966b;
6531    out1[4] = 0xfffffffffffffffa;
6532    out1[5] = 0xffffffffffffffff;
6533    out1[6] = 0xffffffffffffffff;
6534    out1[7] = 0xffffffffffffffff;
6535    out1[8] = 0x1ff;
6536    out1[9] = (0x0 as u64);
6537    out1
6538}
6539#[doc = " The function fiat_p521_scalar_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form)."]
6540#[doc = ""]
6541#[doc = " Postconditions:"]
6542#[doc = "   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⌋)"]
6543#[doc = "   0 ≤ eval out1 < m"]
6544#[doc = ""]
6545#[doc = " Output Bounds:"]
6546#[doc = "   out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6547#[inline]
6548pub const fn fiat_p521_scalar_divstep_precomp() -> [u64; 9] {
6549    let mut out1: [u64; 9] = [0; 9];
6550    out1[0] = 0x7b27a0cb33d1884b;
6551    out1[1] = 0x9ef6cb011f2467d8;
6552    out1[2] = 0x5fbc88e1d6e7fce;
6553    out1[3] = 0xb08222d0fe97e1dc;
6554    out1[4] = 0x1624870c44df3fce;
6555    out1[5] = 0xb7f07b8eedbce602;
6556    out1[6] = 0x62da93cf721f63bc;
6557    out1[7] = 0xafd209c16c4f0d20;
6558    out1[8] = 0x1c7;
6559    out1
6560}
6561#[doc = " The function fiat_p521_scalar_divstep computes a divstep."]
6562#[doc = ""]
6563#[doc = " Preconditions:"]
6564#[doc = "   0 ≤ eval arg4 < m"]
6565#[doc = "   0 ≤ eval arg5 < m"]
6566#[doc = " Postconditions:"]
6567#[doc = "   out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)"]
6568#[doc = "   twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)"]
6569#[doc = "   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⌋)"]
6570#[doc = "   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)"]
6571#[doc = "   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)"]
6572#[doc = "   0 ≤ eval out5 < m"]
6573#[doc = "   0 ≤ eval out5 < m"]
6574#[doc = "   0 ≤ eval out2 < m"]
6575#[doc = "   0 ≤ eval out3 < m"]
6576#[doc = ""]
6577#[doc = " Input Bounds:"]
6578#[doc = "   arg1: [0x0 ~> 0xffffffffffffffff]"]
6579#[doc = "   arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6580#[doc = "   arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6581#[doc = "   arg4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6582#[doc = "   arg5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6583#[doc = " Output Bounds:"]
6584#[doc = "   out1: [0x0 ~> 0xffffffffffffffff]"]
6585#[doc = "   out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6586#[doc = "   out3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6587#[doc = "   out4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6588#[doc = "   out5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
6589#[inline]
6590pub const fn fiat_p521_scalar_divstep(
6591    arg1: u64,
6592    arg2: &[u64; 10],
6593    arg3: &[u64; 10],
6594    arg4: &[u64; 9],
6595    arg5: &[u64; 9],
6596) -> (u64, [u64; 10], [u64; 10], [u64; 9], [u64; 9]) {
6597    let mut out1: u64 = 0;
6598    let mut out2: [u64; 10] = [0; 10];
6599    let mut out3: [u64; 10] = [0; 10];
6600    let mut out4: [u64; 9] = [0; 9];
6601    let mut out5: [u64; 9] = [0; 9];
6602    let mut x1: u64 = 0;
6603    let mut x2: fiat_p521_scalar_u1 = 0;
6604    let (x1, x2) = fiat_p521_scalar_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
6605    let x3: fiat_p521_scalar_u1 =
6606        (((x1 >> 63) as fiat_p521_scalar_u1) & (((arg3[0]) & (0x1 as u64)) as fiat_p521_scalar_u1));
6607    let mut x4: u64 = 0;
6608    let mut x5: fiat_p521_scalar_u1 = 0;
6609    let (x4, x5) = fiat_p521_scalar_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
6610    let mut x6: u64 = 0;
6611    let (x6) = fiat_p521_scalar_cmovznz_u64(x3, arg1, x4);
6612    let mut x7: u64 = 0;
6613    let (x7) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
6614    let mut x8: u64 = 0;
6615    let (x8) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
6616    let mut x9: u64 = 0;
6617    let (x9) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
6618    let mut x10: u64 = 0;
6619    let (x10) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
6620    let mut x11: u64 = 0;
6621    let (x11) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
6622    let mut x12: u64 = 0;
6623    let (x12) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
6624    let mut x13: u64 = 0;
6625    let (x13) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
6626    let mut x14: u64 = 0;
6627    let (x14) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[7]), (arg3[7]));
6628    let mut x15: u64 = 0;
6629    let (x15) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[8]), (arg3[8]));
6630    let mut x16: u64 = 0;
6631    let (x16) = fiat_p521_scalar_cmovznz_u64(x3, (arg2[9]), (arg3[9]));
6632    let mut x17: u64 = 0;
6633    let mut x18: fiat_p521_scalar_u1 = 0;
6634    let (x17, x18) = fiat_p521_scalar_addcarryx_u64(0x0, (0x1 as u64), (!(arg2[0])));
6635    let mut x19: u64 = 0;
6636    let mut x20: fiat_p521_scalar_u1 = 0;
6637    let (x19, x20) = fiat_p521_scalar_addcarryx_u64(x18, (0x0 as u64), (!(arg2[1])));
6638    let mut x21: u64 = 0;
6639    let mut x22: fiat_p521_scalar_u1 = 0;
6640    let (x21, x22) = fiat_p521_scalar_addcarryx_u64(x20, (0x0 as u64), (!(arg2[2])));
6641    let mut x23: u64 = 0;
6642    let mut x24: fiat_p521_scalar_u1 = 0;
6643    let (x23, x24) = fiat_p521_scalar_addcarryx_u64(x22, (0x0 as u64), (!(arg2[3])));
6644    let mut x25: u64 = 0;
6645    let mut x26: fiat_p521_scalar_u1 = 0;
6646    let (x25, x26) = fiat_p521_scalar_addcarryx_u64(x24, (0x0 as u64), (!(arg2[4])));
6647    let mut x27: u64 = 0;
6648    let mut x28: fiat_p521_scalar_u1 = 0;
6649    let (x27, x28) = fiat_p521_scalar_addcarryx_u64(x26, (0x0 as u64), (!(arg2[5])));
6650    let mut x29: u64 = 0;
6651    let mut x30: fiat_p521_scalar_u1 = 0;
6652    let (x29, x30) = fiat_p521_scalar_addcarryx_u64(x28, (0x0 as u64), (!(arg2[6])));
6653    let mut x31: u64 = 0;
6654    let mut x32: fiat_p521_scalar_u1 = 0;
6655    let (x31, x32) = fiat_p521_scalar_addcarryx_u64(x30, (0x0 as u64), (!(arg2[7])));
6656    let mut x33: u64 = 0;
6657    let mut x34: fiat_p521_scalar_u1 = 0;
6658    let (x33, x34) = fiat_p521_scalar_addcarryx_u64(x32, (0x0 as u64), (!(arg2[8])));
6659    let mut x35: u64 = 0;
6660    let mut x36: fiat_p521_scalar_u1 = 0;
6661    let (x35, x36) = fiat_p521_scalar_addcarryx_u64(x34, (0x0 as u64), (!(arg2[9])));
6662    let mut x37: u64 = 0;
6663    let (x37) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[0]), x17);
6664    let mut x38: u64 = 0;
6665    let (x38) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[1]), x19);
6666    let mut x39: u64 = 0;
6667    let (x39) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[2]), x21);
6668    let mut x40: u64 = 0;
6669    let (x40) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[3]), x23);
6670    let mut x41: u64 = 0;
6671    let (x41) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[4]), x25);
6672    let mut x42: u64 = 0;
6673    let (x42) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[5]), x27);
6674    let mut x43: u64 = 0;
6675    let (x43) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[6]), x29);
6676    let mut x44: u64 = 0;
6677    let (x44) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[7]), x31);
6678    let mut x45: u64 = 0;
6679    let (x45) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[8]), x33);
6680    let mut x46: u64 = 0;
6681    let (x46) = fiat_p521_scalar_cmovznz_u64(x3, (arg3[9]), x35);
6682    let mut x47: u64 = 0;
6683    let (x47) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
6684    let mut x48: u64 = 0;
6685    let (x48) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
6686    let mut x49: u64 = 0;
6687    let (x49) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
6688    let mut x50: u64 = 0;
6689    let (x50) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
6690    let mut x51: u64 = 0;
6691    let (x51) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
6692    let mut x52: u64 = 0;
6693    let (x52) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
6694    let mut x53: u64 = 0;
6695    let (x53) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[6]), (arg5[6]));
6696    let mut x54: u64 = 0;
6697    let (x54) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[7]), (arg5[7]));
6698    let mut x55: u64 = 0;
6699    let (x55) = fiat_p521_scalar_cmovznz_u64(x3, (arg4[8]), (arg5[8]));
6700    let mut x56: u64 = 0;
6701    let mut x57: fiat_p521_scalar_u1 = 0;
6702    let (x56, x57) = fiat_p521_scalar_addcarryx_u64(0x0, x47, x47);
6703    let mut x58: u64 = 0;
6704    let mut x59: fiat_p521_scalar_u1 = 0;
6705    let (x58, x59) = fiat_p521_scalar_addcarryx_u64(x57, x48, x48);
6706    let mut x60: u64 = 0;
6707    let mut x61: fiat_p521_scalar_u1 = 0;
6708    let (x60, x61) = fiat_p521_scalar_addcarryx_u64(x59, x49, x49);
6709    let mut x62: u64 = 0;
6710    let mut x63: fiat_p521_scalar_u1 = 0;
6711    let (x62, x63) = fiat_p521_scalar_addcarryx_u64(x61, x50, x50);
6712    let mut x64: u64 = 0;
6713    let mut x65: fiat_p521_scalar_u1 = 0;
6714    let (x64, x65) = fiat_p521_scalar_addcarryx_u64(x63, x51, x51);
6715    let mut x66: u64 = 0;
6716    let mut x67: fiat_p521_scalar_u1 = 0;
6717    let (x66, x67) = fiat_p521_scalar_addcarryx_u64(x65, x52, x52);
6718    let mut x68: u64 = 0;
6719    let mut x69: fiat_p521_scalar_u1 = 0;
6720    let (x68, x69) = fiat_p521_scalar_addcarryx_u64(x67, x53, x53);
6721    let mut x70: u64 = 0;
6722    let mut x71: fiat_p521_scalar_u1 = 0;
6723    let (x70, x71) = fiat_p521_scalar_addcarryx_u64(x69, x54, x54);
6724    let mut x72: u64 = 0;
6725    let mut x73: fiat_p521_scalar_u1 = 0;
6726    let (x72, x73) = fiat_p521_scalar_addcarryx_u64(x71, x55, x55);
6727    let mut x74: u64 = 0;
6728    let mut x75: fiat_p521_scalar_u1 = 0;
6729    let (x74, x75) = fiat_p521_scalar_subborrowx_u64(0x0, x56, 0xbb6fb71e91386409);
6730    let mut x76: u64 = 0;
6731    let mut x77: fiat_p521_scalar_u1 = 0;
6732    let (x76, x77) = fiat_p521_scalar_subborrowx_u64(x75, x58, 0x3bb5c9b8899c47ae);
6733    let mut x78: u64 = 0;
6734    let mut x79: fiat_p521_scalar_u1 = 0;
6735    let (x78, x79) = fiat_p521_scalar_subborrowx_u64(x77, x60, 0x7fcc0148f709a5d0);
6736    let mut x80: u64 = 0;
6737    let mut x81: fiat_p521_scalar_u1 = 0;
6738    let (x80, x81) = fiat_p521_scalar_subborrowx_u64(x79, x62, 0x51868783bf2f966b);
6739    let mut x82: u64 = 0;
6740    let mut x83: fiat_p521_scalar_u1 = 0;
6741    let (x82, x83) = fiat_p521_scalar_subborrowx_u64(x81, x64, 0xfffffffffffffffa);
6742    let mut x84: u64 = 0;
6743    let mut x85: fiat_p521_scalar_u1 = 0;
6744    let (x84, x85) = fiat_p521_scalar_subborrowx_u64(x83, x66, 0xffffffffffffffff);
6745    let mut x86: u64 = 0;
6746    let mut x87: fiat_p521_scalar_u1 = 0;
6747    let (x86, x87) = fiat_p521_scalar_subborrowx_u64(x85, x68, 0xffffffffffffffff);
6748    let mut x88: u64 = 0;
6749    let mut x89: fiat_p521_scalar_u1 = 0;
6750    let (x88, x89) = fiat_p521_scalar_subborrowx_u64(x87, x70, 0xffffffffffffffff);
6751    let mut x90: u64 = 0;
6752    let mut x91: fiat_p521_scalar_u1 = 0;
6753    let (x90, x91) = fiat_p521_scalar_subborrowx_u64(x89, x72, 0x1ff);
6754    let mut x92: u64 = 0;
6755    let mut x93: fiat_p521_scalar_u1 = 0;
6756    let (x92, x93) = fiat_p521_scalar_subborrowx_u64(x91, (x73 as u64), (0x0 as u64));
6757    let x94: u64 = (arg4[8]);
6758    let x95: u64 = (arg4[7]);
6759    let x96: u64 = (arg4[6]);
6760    let x97: u64 = (arg4[5]);
6761    let x98: u64 = (arg4[4]);
6762    let x99: u64 = (arg4[3]);
6763    let x100: u64 = (arg4[2]);
6764    let x101: u64 = (arg4[1]);
6765    let x102: u64 = (arg4[0]);
6766    let mut x103: u64 = 0;
6767    let mut x104: fiat_p521_scalar_u1 = 0;
6768    let (x103, x104) = fiat_p521_scalar_subborrowx_u64(0x0, (0x0 as u64), x102);
6769    let mut x105: u64 = 0;
6770    let mut x106: fiat_p521_scalar_u1 = 0;
6771    let (x105, x106) = fiat_p521_scalar_subborrowx_u64(x104, (0x0 as u64), x101);
6772    let mut x107: u64 = 0;
6773    let mut x108: fiat_p521_scalar_u1 = 0;
6774    let (x107, x108) = fiat_p521_scalar_subborrowx_u64(x106, (0x0 as u64), x100);
6775    let mut x109: u64 = 0;
6776    let mut x110: fiat_p521_scalar_u1 = 0;
6777    let (x109, x110) = fiat_p521_scalar_subborrowx_u64(x108, (0x0 as u64), x99);
6778    let mut x111: u64 = 0;
6779    let mut x112: fiat_p521_scalar_u1 = 0;
6780    let (x111, x112) = fiat_p521_scalar_subborrowx_u64(x110, (0x0 as u64), x98);
6781    let mut x113: u64 = 0;
6782    let mut x114: fiat_p521_scalar_u1 = 0;
6783    let (x113, x114) = fiat_p521_scalar_subborrowx_u64(x112, (0x0 as u64), x97);
6784    let mut x115: u64 = 0;
6785    let mut x116: fiat_p521_scalar_u1 = 0;
6786    let (x115, x116) = fiat_p521_scalar_subborrowx_u64(x114, (0x0 as u64), x96);
6787    let mut x117: u64 = 0;
6788    let mut x118: fiat_p521_scalar_u1 = 0;
6789    let (x117, x118) = fiat_p521_scalar_subborrowx_u64(x116, (0x0 as u64), x95);
6790    let mut x119: u64 = 0;
6791    let mut x120: fiat_p521_scalar_u1 = 0;
6792    let (x119, x120) = fiat_p521_scalar_subborrowx_u64(x118, (0x0 as u64), x94);
6793    let mut x121: u64 = 0;
6794    let (x121) = fiat_p521_scalar_cmovznz_u64(x120, (0x0 as u64), 0xffffffffffffffff);
6795    let mut x122: u64 = 0;
6796    let mut x123: fiat_p521_scalar_u1 = 0;
6797    let (x122, x123) = fiat_p521_scalar_addcarryx_u64(0x0, x103, (x121 & 0xbb6fb71e91386409));
6798    let mut x124: u64 = 0;
6799    let mut x125: fiat_p521_scalar_u1 = 0;
6800    let (x124, x125) = fiat_p521_scalar_addcarryx_u64(x123, x105, (x121 & 0x3bb5c9b8899c47ae));
6801    let mut x126: u64 = 0;
6802    let mut x127: fiat_p521_scalar_u1 = 0;
6803    let (x126, x127) = fiat_p521_scalar_addcarryx_u64(x125, x107, (x121 & 0x7fcc0148f709a5d0));
6804    let mut x128: u64 = 0;
6805    let mut x129: fiat_p521_scalar_u1 = 0;
6806    let (x128, x129) = fiat_p521_scalar_addcarryx_u64(x127, x109, (x121 & 0x51868783bf2f966b));
6807    let mut x130: u64 = 0;
6808    let mut x131: fiat_p521_scalar_u1 = 0;
6809    let (x130, x131) = fiat_p521_scalar_addcarryx_u64(x129, x111, (x121 & 0xfffffffffffffffa));
6810    let mut x132: u64 = 0;
6811    let mut x133: fiat_p521_scalar_u1 = 0;
6812    let (x132, x133) = fiat_p521_scalar_addcarryx_u64(x131, x113, x121);
6813    let mut x134: u64 = 0;
6814    let mut x135: fiat_p521_scalar_u1 = 0;
6815    let (x134, x135) = fiat_p521_scalar_addcarryx_u64(x133, x115, x121);
6816    let mut x136: u64 = 0;
6817    let mut x137: fiat_p521_scalar_u1 = 0;
6818    let (x136, x137) = fiat_p521_scalar_addcarryx_u64(x135, x117, x121);
6819    let mut x138: u64 = 0;
6820    let mut x139: fiat_p521_scalar_u1 = 0;
6821    let (x138, x139) = fiat_p521_scalar_addcarryx_u64(x137, x119, (x121 & 0x1ff));
6822    let mut x140: u64 = 0;
6823    let (x140) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[0]), x122);
6824    let mut x141: u64 = 0;
6825    let (x141) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[1]), x124);
6826    let mut x142: u64 = 0;
6827    let (x142) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[2]), x126);
6828    let mut x143: u64 = 0;
6829    let (x143) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[3]), x128);
6830    let mut x144: u64 = 0;
6831    let (x144) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[4]), x130);
6832    let mut x145: u64 = 0;
6833    let (x145) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[5]), x132);
6834    let mut x146: u64 = 0;
6835    let (x146) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[6]), x134);
6836    let mut x147: u64 = 0;
6837    let (x147) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[7]), x136);
6838    let mut x148: u64 = 0;
6839    let (x148) = fiat_p521_scalar_cmovznz_u64(x3, (arg5[8]), x138);
6840    let x149: fiat_p521_scalar_u1 = ((x37 & (0x1 as u64)) as fiat_p521_scalar_u1);
6841    let mut x150: u64 = 0;
6842    let (x150) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x7);
6843    let mut x151: u64 = 0;
6844    let (x151) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x8);
6845    let mut x152: u64 = 0;
6846    let (x152) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x9);
6847    let mut x153: u64 = 0;
6848    let (x153) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x10);
6849    let mut x154: u64 = 0;
6850    let (x154) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x11);
6851    let mut x155: u64 = 0;
6852    let (x155) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x12);
6853    let mut x156: u64 = 0;
6854    let (x156) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x13);
6855    let mut x157: u64 = 0;
6856    let (x157) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x14);
6857    let mut x158: u64 = 0;
6858    let (x158) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x15);
6859    let mut x159: u64 = 0;
6860    let (x159) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x16);
6861    let mut x160: u64 = 0;
6862    let mut x161: fiat_p521_scalar_u1 = 0;
6863    let (x160, x161) = fiat_p521_scalar_addcarryx_u64(0x0, x37, x150);
6864    let mut x162: u64 = 0;
6865    let mut x163: fiat_p521_scalar_u1 = 0;
6866    let (x162, x163) = fiat_p521_scalar_addcarryx_u64(x161, x38, x151);
6867    let mut x164: u64 = 0;
6868    let mut x165: fiat_p521_scalar_u1 = 0;
6869    let (x164, x165) = fiat_p521_scalar_addcarryx_u64(x163, x39, x152);
6870    let mut x166: u64 = 0;
6871    let mut x167: fiat_p521_scalar_u1 = 0;
6872    let (x166, x167) = fiat_p521_scalar_addcarryx_u64(x165, x40, x153);
6873    let mut x168: u64 = 0;
6874    let mut x169: fiat_p521_scalar_u1 = 0;
6875    let (x168, x169) = fiat_p521_scalar_addcarryx_u64(x167, x41, x154);
6876    let mut x170: u64 = 0;
6877    let mut x171: fiat_p521_scalar_u1 = 0;
6878    let (x170, x171) = fiat_p521_scalar_addcarryx_u64(x169, x42, x155);
6879    let mut x172: u64 = 0;
6880    let mut x173: fiat_p521_scalar_u1 = 0;
6881    let (x172, x173) = fiat_p521_scalar_addcarryx_u64(x171, x43, x156);
6882    let mut x174: u64 = 0;
6883    let mut x175: fiat_p521_scalar_u1 = 0;
6884    let (x174, x175) = fiat_p521_scalar_addcarryx_u64(x173, x44, x157);
6885    let mut x176: u64 = 0;
6886    let mut x177: fiat_p521_scalar_u1 = 0;
6887    let (x176, x177) = fiat_p521_scalar_addcarryx_u64(x175, x45, x158);
6888    let mut x178: u64 = 0;
6889    let mut x179: fiat_p521_scalar_u1 = 0;
6890    let (x178, x179) = fiat_p521_scalar_addcarryx_u64(x177, x46, x159);
6891    let mut x180: u64 = 0;
6892    let (x180) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x47);
6893    let mut x181: u64 = 0;
6894    let (x181) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x48);
6895    let mut x182: u64 = 0;
6896    let (x182) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x49);
6897    let mut x183: u64 = 0;
6898    let (x183) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x50);
6899    let mut x184: u64 = 0;
6900    let (x184) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x51);
6901    let mut x185: u64 = 0;
6902    let (x185) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x52);
6903    let mut x186: u64 = 0;
6904    let (x186) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x53);
6905    let mut x187: u64 = 0;
6906    let (x187) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x54);
6907    let mut x188: u64 = 0;
6908    let (x188) = fiat_p521_scalar_cmovznz_u64(x149, (0x0 as u64), x55);
6909    let mut x189: u64 = 0;
6910    let mut x190: fiat_p521_scalar_u1 = 0;
6911    let (x189, x190) = fiat_p521_scalar_addcarryx_u64(0x0, x140, x180);
6912    let mut x191: u64 = 0;
6913    let mut x192: fiat_p521_scalar_u1 = 0;
6914    let (x191, x192) = fiat_p521_scalar_addcarryx_u64(x190, x141, x181);
6915    let mut x193: u64 = 0;
6916    let mut x194: fiat_p521_scalar_u1 = 0;
6917    let (x193, x194) = fiat_p521_scalar_addcarryx_u64(x192, x142, x182);
6918    let mut x195: u64 = 0;
6919    let mut x196: fiat_p521_scalar_u1 = 0;
6920    let (x195, x196) = fiat_p521_scalar_addcarryx_u64(x194, x143, x183);
6921    let mut x197: u64 = 0;
6922    let mut x198: fiat_p521_scalar_u1 = 0;
6923    let (x197, x198) = fiat_p521_scalar_addcarryx_u64(x196, x144, x184);
6924    let mut x199: u64 = 0;
6925    let mut x200: fiat_p521_scalar_u1 = 0;
6926    let (x199, x200) = fiat_p521_scalar_addcarryx_u64(x198, x145, x185);
6927    let mut x201: u64 = 0;
6928    let mut x202: fiat_p521_scalar_u1 = 0;
6929    let (x201, x202) = fiat_p521_scalar_addcarryx_u64(x200, x146, x186);
6930    let mut x203: u64 = 0;
6931    let mut x204: fiat_p521_scalar_u1 = 0;
6932    let (x203, x204) = fiat_p521_scalar_addcarryx_u64(x202, x147, x187);
6933    let mut x205: u64 = 0;
6934    let mut x206: fiat_p521_scalar_u1 = 0;
6935    let (x205, x206) = fiat_p521_scalar_addcarryx_u64(x204, x148, x188);
6936    let mut x207: u64 = 0;
6937    let mut x208: fiat_p521_scalar_u1 = 0;
6938    let (x207, x208) = fiat_p521_scalar_subborrowx_u64(0x0, x189, 0xbb6fb71e91386409);
6939    let mut x209: u64 = 0;
6940    let mut x210: fiat_p521_scalar_u1 = 0;
6941    let (x209, x210) = fiat_p521_scalar_subborrowx_u64(x208, x191, 0x3bb5c9b8899c47ae);
6942    let mut x211: u64 = 0;
6943    let mut x212: fiat_p521_scalar_u1 = 0;
6944    let (x211, x212) = fiat_p521_scalar_subborrowx_u64(x210, x193, 0x7fcc0148f709a5d0);
6945    let mut x213: u64 = 0;
6946    let mut x214: fiat_p521_scalar_u1 = 0;
6947    let (x213, x214) = fiat_p521_scalar_subborrowx_u64(x212, x195, 0x51868783bf2f966b);
6948    let mut x215: u64 = 0;
6949    let mut x216: fiat_p521_scalar_u1 = 0;
6950    let (x215, x216) = fiat_p521_scalar_subborrowx_u64(x214, x197, 0xfffffffffffffffa);
6951    let mut x217: u64 = 0;
6952    let mut x218: fiat_p521_scalar_u1 = 0;
6953    let (x217, x218) = fiat_p521_scalar_subborrowx_u64(x216, x199, 0xffffffffffffffff);
6954    let mut x219: u64 = 0;
6955    let mut x220: fiat_p521_scalar_u1 = 0;
6956    let (x219, x220) = fiat_p521_scalar_subborrowx_u64(x218, x201, 0xffffffffffffffff);
6957    let mut x221: u64 = 0;
6958    let mut x222: fiat_p521_scalar_u1 = 0;
6959    let (x221, x222) = fiat_p521_scalar_subborrowx_u64(x220, x203, 0xffffffffffffffff);
6960    let mut x223: u64 = 0;
6961    let mut x224: fiat_p521_scalar_u1 = 0;
6962    let (x223, x224) = fiat_p521_scalar_subborrowx_u64(x222, x205, 0x1ff);
6963    let mut x225: u64 = 0;
6964    let mut x226: fiat_p521_scalar_u1 = 0;
6965    let (x225, x226) = fiat_p521_scalar_subborrowx_u64(x224, (x206 as u64), (0x0 as u64));
6966    let mut x227: u64 = 0;
6967    let mut x228: fiat_p521_scalar_u1 = 0;
6968    let (x227, x228) = fiat_p521_scalar_addcarryx_u64(0x0, x6, (0x1 as u64));
6969    let x229: u64 = ((x160 >> 1) | ((x162 << 63) & 0xffffffffffffffff));
6970    let x230: u64 = ((x162 >> 1) | ((x164 << 63) & 0xffffffffffffffff));
6971    let x231: u64 = ((x164 >> 1) | ((x166 << 63) & 0xffffffffffffffff));
6972    let x232: u64 = ((x166 >> 1) | ((x168 << 63) & 0xffffffffffffffff));
6973    let x233: u64 = ((x168 >> 1) | ((x170 << 63) & 0xffffffffffffffff));
6974    let x234: u64 = ((x170 >> 1) | ((x172 << 63) & 0xffffffffffffffff));
6975    let x235: u64 = ((x172 >> 1) | ((x174 << 63) & 0xffffffffffffffff));
6976    let x236: u64 = ((x174 >> 1) | ((x176 << 63) & 0xffffffffffffffff));
6977    let x237: u64 = ((x176 >> 1) | ((x178 << 63) & 0xffffffffffffffff));
6978    let x238: u64 = ((x178 & 0x8000000000000000) | (x178 >> 1));
6979    let mut x239: u64 = 0;
6980    let (x239) = fiat_p521_scalar_cmovznz_u64(x93, x74, x56);
6981    let mut x240: u64 = 0;
6982    let (x240) = fiat_p521_scalar_cmovznz_u64(x93, x76, x58);
6983    let mut x241: u64 = 0;
6984    let (x241) = fiat_p521_scalar_cmovznz_u64(x93, x78, x60);
6985    let mut x242: u64 = 0;
6986    let (x242) = fiat_p521_scalar_cmovznz_u64(x93, x80, x62);
6987    let mut x243: u64 = 0;
6988    let (x243) = fiat_p521_scalar_cmovznz_u64(x93, x82, x64);
6989    let mut x244: u64 = 0;
6990    let (x244) = fiat_p521_scalar_cmovznz_u64(x93, x84, x66);
6991    let mut x245: u64 = 0;
6992    let (x245) = fiat_p521_scalar_cmovznz_u64(x93, x86, x68);
6993    let mut x246: u64 = 0;
6994    let (x246) = fiat_p521_scalar_cmovznz_u64(x93, x88, x70);
6995    let mut x247: u64 = 0;
6996    let (x247) = fiat_p521_scalar_cmovznz_u64(x93, x90, x72);
6997    let mut x248: u64 = 0;
6998    let (x248) = fiat_p521_scalar_cmovznz_u64(x226, x207, x189);
6999    let mut x249: u64 = 0;
7000    let (x249) = fiat_p521_scalar_cmovznz_u64(x226, x209, x191);
7001    let mut x250: u64 = 0;
7002    let (x250) = fiat_p521_scalar_cmovznz_u64(x226, x211, x193);
7003    let mut x251: u64 = 0;
7004    let (x251) = fiat_p521_scalar_cmovznz_u64(x226, x213, x195);
7005    let mut x252: u64 = 0;
7006    let (x252) = fiat_p521_scalar_cmovznz_u64(x226, x215, x197);
7007    let mut x253: u64 = 0;
7008    let (x253) = fiat_p521_scalar_cmovznz_u64(x226, x217, x199);
7009    let mut x254: u64 = 0;
7010    let (x254) = fiat_p521_scalar_cmovznz_u64(x226, x219, x201);
7011    let mut x255: u64 = 0;
7012    let (x255) = fiat_p521_scalar_cmovznz_u64(x226, x221, x203);
7013    let mut x256: u64 = 0;
7014    let (x256) = fiat_p521_scalar_cmovznz_u64(x226, x223, x205);
7015    out1 = x227;
7016    out2[0] = x7;
7017    out2[1] = x8;
7018    out2[2] = x9;
7019    out2[3] = x10;
7020    out2[4] = x11;
7021    out2[5] = x12;
7022    out2[6] = x13;
7023    out2[7] = x14;
7024    out2[8] = x15;
7025    out2[9] = x16;
7026    out3[0] = x229;
7027    out3[1] = x230;
7028    out3[2] = x231;
7029    out3[3] = x232;
7030    out3[4] = x233;
7031    out3[5] = x234;
7032    out3[6] = x235;
7033    out3[7] = x236;
7034    out3[8] = x237;
7035    out3[9] = x238;
7036    out4[0] = x239;
7037    out4[1] = x240;
7038    out4[2] = x241;
7039    out4[3] = x242;
7040    out4[4] = x243;
7041    out4[5] = x244;
7042    out4[6] = x245;
7043    out4[7] = x246;
7044    out4[8] = x247;
7045    out5[0] = x248;
7046    out5[1] = x249;
7047    out5[2] = x250;
7048    out5[3] = x251;
7049    out5[4] = x252;
7050    out5[5] = x253;
7051    out5[6] = x254;
7052    out5[7] = x255;
7053    out5[8] = x256;
7054    (out1, out2, out3, out4, out5)
7055}