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}