fiat_crypto/
p256_32.rs

1//! Autogenerated: 'src/ExtractionOCaml/word_by_word_montgomery' --lang Rust --inline p256 32 '2^256 - 2^224 + 2^192 + 2^96 - 1' mul square add sub opp from_montgomery to_montgomery nonzero selectznz to_bytes from_bytes one msat divstep divstep_precomp
2//! curve description: p256
3//! machine_wordsize = 32 (from "32")
4//! requested operations: mul, square, add, sub, opp, from_montgomery, to_montgomery, nonzero, selectznz, to_bytes, from_bytes, one, msat, divstep, divstep_precomp
5//! m = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff (from "2^256 - 2^224 + 2^192 + 2^96 - 1")
6//!
7//! NOTE: In addition to the bounds specified above each function, all
8//!   functions synthesized for this Montgomery arithmetic require the
9//!   input to be strictly less than the prime modulus (m), and also
10//!   require the input to be in the unique saturated representation.
11//!   All functions also ensure that these two properties are true of
12//!   return values.
13//!
14//! Computed values:
15//!   eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224)
16//!   bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248)
17//!   twos_complement_eval z = let x1 := z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) in
18//!                            if x1 & (2^256-1) < 2^255 then x1 & (2^256-1) else (x1 & (2^256-1)) - 2^256
19
20#![allow(unused_parens)]
21#![allow(non_camel_case_types)]
22
23/// Since `Index` and `IndexMut` aren't callable in `const` contexts yet, this helper type helps unify
24/// arrays and user-defined array-wrapper types into a single type which can be indexed in `const`
25/// contexts. Once `const trait`s are stabilized this type can go away
26struct IndexConst<T: ?Sized>(T);
27
28impl<'a, T, const N: usize> IndexConst<&'a [T; N]> {
29    #[inline(always)]
30    #[allow(unused)]
31    const fn index(self, i: usize) -> &'a T {
32        &self.0[i]
33    }
34}
35impl<'a, 'b, T, const N: usize> IndexConst<&'a mut &'b mut [T; N]> {
36    #[inline(always)]
37    #[allow(unused)]
38    const fn index_mut(self, i: usize) -> &'a mut T {
39        &mut self.0[i]
40    }
41}
42
43/** fiat_p256_u1 represents values of 1 bits, stored in one byte. */
44pub type fiat_p256_u1 = u8;
45/** fiat_p256_i1 represents values of 1 bits, stored in one byte. */
46pub type fiat_p256_i1 = i8;
47/** fiat_p256_u2 represents values of 2 bits, stored in one byte. */
48pub type fiat_p256_u2 = u8;
49/** fiat_p256_i2 represents values of 2 bits, stored in one byte. */
50pub type fiat_p256_i2 = i8;
51
52/** The type fiat_p256_montgomery_domain_field_element is a field element in the Montgomery domain. */
53/** Bounds: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] */
54#[derive(Clone, Copy)]
55pub struct fiat_p256_montgomery_domain_field_element(pub [u32; 8]);
56
57impl core::ops::Index<usize> for fiat_p256_montgomery_domain_field_element {
58    type Output = u32;
59    #[inline]
60    fn index(&self, index: usize) -> &Self::Output {
61        &self.0[index]
62    }
63}
64
65impl core::ops::IndexMut<usize> for fiat_p256_montgomery_domain_field_element {
66    #[inline]
67    fn index_mut(&mut self, index: usize) -> &mut Self::Output {
68        &mut self.0[index]
69    }
70}
71
72impl<'a> IndexConst<&'a fiat_p256_montgomery_domain_field_element> {
73    #[allow(unused)]
74    #[inline(always)]
75    const fn index(self, i: usize) -> &'a u32 {
76        &self.0.0[i]
77    }
78}
79
80impl<'a, 'b> IndexConst<&'a mut &'b mut fiat_p256_montgomery_domain_field_element> {
81    #[allow(unused)]
82    #[inline(always)]
83    const fn index_mut(self, i: usize) -> &'a mut u32 {
84        &mut self.0.0[i]
85    }
86}
87
88/** The type fiat_p256_non_montgomery_domain_field_element is a field element NOT in the Montgomery domain. */
89/** Bounds: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] */
90#[derive(Clone, Copy)]
91pub struct fiat_p256_non_montgomery_domain_field_element(pub [u32; 8]);
92
93impl core::ops::Index<usize> for fiat_p256_non_montgomery_domain_field_element {
94    type Output = u32;
95    #[inline]
96    fn index(&self, index: usize) -> &Self::Output {
97        &self.0[index]
98    }
99}
100
101impl core::ops::IndexMut<usize> for fiat_p256_non_montgomery_domain_field_element {
102    #[inline]
103    fn index_mut(&mut self, index: usize) -> &mut Self::Output {
104        &mut self.0[index]
105    }
106}
107
108impl<'a> IndexConst<&'a fiat_p256_non_montgomery_domain_field_element> {
109    #[allow(unused)]
110    #[inline(always)]
111    const fn index(self, i: usize) -> &'a u32 {
112        &self.0.0[i]
113    }
114}
115
116impl<'a, 'b> IndexConst<&'a mut &'b mut fiat_p256_non_montgomery_domain_field_element> {
117    #[allow(unused)]
118    #[inline(always)]
119    const fn index_mut(self, i: usize) -> &'a mut u32 {
120        &mut self.0.0[i]
121    }
122}
123
124
125/// The function fiat_p256_addcarryx_u32 is an addition with carry.
126///
127/// Postconditions:
128///   out1 = (arg1 + arg2 + arg3) mod 2^32
129///   out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋
130///
131/// Input Bounds:
132///   arg1: [0x0 ~> 0x1]
133///   arg2: [0x0 ~> 0xffffffff]
134///   arg3: [0x0 ~> 0xffffffff]
135/// Output Bounds:
136///   out1: [0x0 ~> 0xffffffff]
137///   out2: [0x0 ~> 0x1]
138#[inline]
139pub const fn fiat_p256_addcarryx_u32(out1: &mut u32, out2: &mut fiat_p256_u1, arg1: fiat_p256_u1, arg2: u32, arg3: u32) {
140  let x1: u64 = (((arg1 as u64) + (arg2 as u64)) + (arg3 as u64));
141  let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
142  let x3: fiat_p256_u1 = ((x1 >> 32) as fiat_p256_u1);
143  *out1 = x2;
144  *out2 = x3;
145}
146
147/// The function fiat_p256_subborrowx_u32 is a subtraction with borrow.
148///
149/// Postconditions:
150///   out1 = (-arg1 + arg2 + -arg3) mod 2^32
151///   out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋
152///
153/// Input Bounds:
154///   arg1: [0x0 ~> 0x1]
155///   arg2: [0x0 ~> 0xffffffff]
156///   arg3: [0x0 ~> 0xffffffff]
157/// Output Bounds:
158///   out1: [0x0 ~> 0xffffffff]
159///   out2: [0x0 ~> 0x1]
160#[inline]
161pub const fn fiat_p256_subborrowx_u32(out1: &mut u32, out2: &mut fiat_p256_u1, arg1: fiat_p256_u1, arg2: u32, arg3: u32) {
162  let x1: i64 = (((arg2 as i64) - (arg1 as i64)) - (arg3 as i64));
163  let x2: fiat_p256_i1 = ((x1 >> 32) as fiat_p256_i1);
164  let x3: u32 = ((x1 & (0xffffffff as i64)) as u32);
165  *out1 = x3;
166  *out2 = (((0x0 as fiat_p256_i2) - (x2 as fiat_p256_i2)) as fiat_p256_u1);
167}
168
169/// The function fiat_p256_mulx_u32 is a multiplication, returning the full double-width result.
170///
171/// Postconditions:
172///   out1 = (arg1 * arg2) mod 2^32
173///   out2 = ⌊arg1 * arg2 / 2^32⌋
174///
175/// Input Bounds:
176///   arg1: [0x0 ~> 0xffffffff]
177///   arg2: [0x0 ~> 0xffffffff]
178/// Output Bounds:
179///   out1: [0x0 ~> 0xffffffff]
180///   out2: [0x0 ~> 0xffffffff]
181#[inline]
182pub const fn fiat_p256_mulx_u32(out1: &mut u32, out2: &mut u32, arg1: u32, arg2: u32) {
183  let x1: u64 = ((arg1 as u64) * (arg2 as u64));
184  let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
185  let x3: u32 = ((x1 >> 32) as u32);
186  *out1 = x2;
187  *out2 = x3;
188}
189
190/// The function fiat_p256_cmovznz_u32 is a single-word conditional move.
191///
192/// Postconditions:
193///   out1 = (if arg1 = 0 then arg2 else arg3)
194///
195/// Input Bounds:
196///   arg1: [0x0 ~> 0x1]
197///   arg2: [0x0 ~> 0xffffffff]
198///   arg3: [0x0 ~> 0xffffffff]
199/// Output Bounds:
200///   out1: [0x0 ~> 0xffffffff]
201#[inline]
202pub const fn fiat_p256_cmovznz_u32(out1: &mut u32, arg1: fiat_p256_u1, arg2: u32, arg3: u32) {
203  let x1: fiat_p256_u1 = (!(!arg1));
204  let x2: u32 = ((((((0x0 as fiat_p256_i2) - (x1 as fiat_p256_i2)) as fiat_p256_i1) as i64) & (0xffffffff as i64)) as u32);
205  let x3: u32 = ((x2 & arg3) | ((!x2) & arg2));
206  *out1 = x3;
207}
208
209/// The function fiat_p256_mul multiplies two field elements in the Montgomery domain.
210///
211/// Preconditions:
212///   0 ≤ eval arg1 < m
213///   0 ≤ eval arg2 < m
214/// Postconditions:
215///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
216///   0 ≤ eval out1 < m
217///
218#[inline]
219pub const fn fiat_p256_mul(mut out1: &mut fiat_p256_montgomery_domain_field_element, arg1: &fiat_p256_montgomery_domain_field_element, arg2: &fiat_p256_montgomery_domain_field_element) {
220  let x1: u32 = (*IndexConst(arg1).index(1));
221  let x2: u32 = (*IndexConst(arg1).index(2));
222  let x3: u32 = (*IndexConst(arg1).index(3));
223  let x4: u32 = (*IndexConst(arg1).index(4));
224  let x5: u32 = (*IndexConst(arg1).index(5));
225  let x6: u32 = (*IndexConst(arg1).index(6));
226  let x7: u32 = (*IndexConst(arg1).index(7));
227  let x8: u32 = (*IndexConst(arg1).index(0));
228  let mut x9: u32 = 0;
229  let mut x10: u32 = 0;
230  fiat_p256_mulx_u32(&mut x9, &mut x10, x8, (*IndexConst(arg2).index(7)));
231  let mut x11: u32 = 0;
232  let mut x12: u32 = 0;
233  fiat_p256_mulx_u32(&mut x11, &mut x12, x8, (*IndexConst(arg2).index(6)));
234  let mut x13: u32 = 0;
235  let mut x14: u32 = 0;
236  fiat_p256_mulx_u32(&mut x13, &mut x14, x8, (*IndexConst(arg2).index(5)));
237  let mut x15: u32 = 0;
238  let mut x16: u32 = 0;
239  fiat_p256_mulx_u32(&mut x15, &mut x16, x8, (*IndexConst(arg2).index(4)));
240  let mut x17: u32 = 0;
241  let mut x18: u32 = 0;
242  fiat_p256_mulx_u32(&mut x17, &mut x18, x8, (*IndexConst(arg2).index(3)));
243  let mut x19: u32 = 0;
244  let mut x20: u32 = 0;
245  fiat_p256_mulx_u32(&mut x19, &mut x20, x8, (*IndexConst(arg2).index(2)));
246  let mut x21: u32 = 0;
247  let mut x22: u32 = 0;
248  fiat_p256_mulx_u32(&mut x21, &mut x22, x8, (*IndexConst(arg2).index(1)));
249  let mut x23: u32 = 0;
250  let mut x24: u32 = 0;
251  fiat_p256_mulx_u32(&mut x23, &mut x24, x8, (*IndexConst(arg2).index(0)));
252  let mut x25: u32 = 0;
253  let mut x26: fiat_p256_u1 = 0;
254  fiat_p256_addcarryx_u32(&mut x25, &mut x26, 0x0, x24, x21);
255  let mut x27: u32 = 0;
256  let mut x28: fiat_p256_u1 = 0;
257  fiat_p256_addcarryx_u32(&mut x27, &mut x28, x26, x22, x19);
258  let mut x29: u32 = 0;
259  let mut x30: fiat_p256_u1 = 0;
260  fiat_p256_addcarryx_u32(&mut x29, &mut x30, x28, x20, x17);
261  let mut x31: u32 = 0;
262  let mut x32: fiat_p256_u1 = 0;
263  fiat_p256_addcarryx_u32(&mut x31, &mut x32, x30, x18, x15);
264  let mut x33: u32 = 0;
265  let mut x34: fiat_p256_u1 = 0;
266  fiat_p256_addcarryx_u32(&mut x33, &mut x34, x32, x16, x13);
267  let mut x35: u32 = 0;
268  let mut x36: fiat_p256_u1 = 0;
269  fiat_p256_addcarryx_u32(&mut x35, &mut x36, x34, x14, x11);
270  let mut x37: u32 = 0;
271  let mut x38: fiat_p256_u1 = 0;
272  fiat_p256_addcarryx_u32(&mut x37, &mut x38, x36, x12, x9);
273  let x39: u32 = ((x38 as u32) + x10);
274  let mut x40: u32 = 0;
275  let mut x41: u32 = 0;
276  fiat_p256_mulx_u32(&mut x40, &mut x41, x23, 0xffffffff);
277  let mut x42: u32 = 0;
278  let mut x43: u32 = 0;
279  fiat_p256_mulx_u32(&mut x42, &mut x43, x23, 0xffffffff);
280  let mut x44: u32 = 0;
281  let mut x45: u32 = 0;
282  fiat_p256_mulx_u32(&mut x44, &mut x45, x23, 0xffffffff);
283  let mut x46: u32 = 0;
284  let mut x47: u32 = 0;
285  fiat_p256_mulx_u32(&mut x46, &mut x47, x23, 0xffffffff);
286  let mut x48: u32 = 0;
287  let mut x49: fiat_p256_u1 = 0;
288  fiat_p256_addcarryx_u32(&mut x48, &mut x49, 0x0, x47, x44);
289  let mut x50: u32 = 0;
290  let mut x51: fiat_p256_u1 = 0;
291  fiat_p256_addcarryx_u32(&mut x50, &mut x51, x49, x45, x42);
292  let x52: u32 = ((x51 as u32) + x43);
293  let mut x53: u32 = 0;
294  let mut x54: fiat_p256_u1 = 0;
295  fiat_p256_addcarryx_u32(&mut x53, &mut x54, 0x0, x23, x46);
296  let mut x55: u32 = 0;
297  let mut x56: fiat_p256_u1 = 0;
298  fiat_p256_addcarryx_u32(&mut x55, &mut x56, x54, x25, x48);
299  let mut x57: u32 = 0;
300  let mut x58: fiat_p256_u1 = 0;
301  fiat_p256_addcarryx_u32(&mut x57, &mut x58, x56, x27, x50);
302  let mut x59: u32 = 0;
303  let mut x60: fiat_p256_u1 = 0;
304  fiat_p256_addcarryx_u32(&mut x59, &mut x60, x58, x29, x52);
305  let mut x61: u32 = 0;
306  let mut x62: fiat_p256_u1 = 0;
307  fiat_p256_addcarryx_u32(&mut x61, &mut x62, x60, x31, (0x0 as u32));
308  let mut x63: u32 = 0;
309  let mut x64: fiat_p256_u1 = 0;
310  fiat_p256_addcarryx_u32(&mut x63, &mut x64, x62, x33, (0x0 as u32));
311  let mut x65: u32 = 0;
312  let mut x66: fiat_p256_u1 = 0;
313  fiat_p256_addcarryx_u32(&mut x65, &mut x66, x64, x35, x23);
314  let mut x67: u32 = 0;
315  let mut x68: fiat_p256_u1 = 0;
316  fiat_p256_addcarryx_u32(&mut x67, &mut x68, x66, x37, x40);
317  let mut x69: u32 = 0;
318  let mut x70: fiat_p256_u1 = 0;
319  fiat_p256_addcarryx_u32(&mut x69, &mut x70, x68, x39, x41);
320  let mut x71: u32 = 0;
321  let mut x72: u32 = 0;
322  fiat_p256_mulx_u32(&mut x71, &mut x72, x1, (*IndexConst(arg2).index(7)));
323  let mut x73: u32 = 0;
324  let mut x74: u32 = 0;
325  fiat_p256_mulx_u32(&mut x73, &mut x74, x1, (*IndexConst(arg2).index(6)));
326  let mut x75: u32 = 0;
327  let mut x76: u32 = 0;
328  fiat_p256_mulx_u32(&mut x75, &mut x76, x1, (*IndexConst(arg2).index(5)));
329  let mut x77: u32 = 0;
330  let mut x78: u32 = 0;
331  fiat_p256_mulx_u32(&mut x77, &mut x78, x1, (*IndexConst(arg2).index(4)));
332  let mut x79: u32 = 0;
333  let mut x80: u32 = 0;
334  fiat_p256_mulx_u32(&mut x79, &mut x80, x1, (*IndexConst(arg2).index(3)));
335  let mut x81: u32 = 0;
336  let mut x82: u32 = 0;
337  fiat_p256_mulx_u32(&mut x81, &mut x82, x1, (*IndexConst(arg2).index(2)));
338  let mut x83: u32 = 0;
339  let mut x84: u32 = 0;
340  fiat_p256_mulx_u32(&mut x83, &mut x84, x1, (*IndexConst(arg2).index(1)));
341  let mut x85: u32 = 0;
342  let mut x86: u32 = 0;
343  fiat_p256_mulx_u32(&mut x85, &mut x86, x1, (*IndexConst(arg2).index(0)));
344  let mut x87: u32 = 0;
345  let mut x88: fiat_p256_u1 = 0;
346  fiat_p256_addcarryx_u32(&mut x87, &mut x88, 0x0, x86, x83);
347  let mut x89: u32 = 0;
348  let mut x90: fiat_p256_u1 = 0;
349  fiat_p256_addcarryx_u32(&mut x89, &mut x90, x88, x84, x81);
350  let mut x91: u32 = 0;
351  let mut x92: fiat_p256_u1 = 0;
352  fiat_p256_addcarryx_u32(&mut x91, &mut x92, x90, x82, x79);
353  let mut x93: u32 = 0;
354  let mut x94: fiat_p256_u1 = 0;
355  fiat_p256_addcarryx_u32(&mut x93, &mut x94, x92, x80, x77);
356  let mut x95: u32 = 0;
357  let mut x96: fiat_p256_u1 = 0;
358  fiat_p256_addcarryx_u32(&mut x95, &mut x96, x94, x78, x75);
359  let mut x97: u32 = 0;
360  let mut x98: fiat_p256_u1 = 0;
361  fiat_p256_addcarryx_u32(&mut x97, &mut x98, x96, x76, x73);
362  let mut x99: u32 = 0;
363  let mut x100: fiat_p256_u1 = 0;
364  fiat_p256_addcarryx_u32(&mut x99, &mut x100, x98, x74, x71);
365  let x101: u32 = ((x100 as u32) + x72);
366  let mut x102: u32 = 0;
367  let mut x103: fiat_p256_u1 = 0;
368  fiat_p256_addcarryx_u32(&mut x102, &mut x103, 0x0, x55, x85);
369  let mut x104: u32 = 0;
370  let mut x105: fiat_p256_u1 = 0;
371  fiat_p256_addcarryx_u32(&mut x104, &mut x105, x103, x57, x87);
372  let mut x106: u32 = 0;
373  let mut x107: fiat_p256_u1 = 0;
374  fiat_p256_addcarryx_u32(&mut x106, &mut x107, x105, x59, x89);
375  let mut x108: u32 = 0;
376  let mut x109: fiat_p256_u1 = 0;
377  fiat_p256_addcarryx_u32(&mut x108, &mut x109, x107, x61, x91);
378  let mut x110: u32 = 0;
379  let mut x111: fiat_p256_u1 = 0;
380  fiat_p256_addcarryx_u32(&mut x110, &mut x111, x109, x63, x93);
381  let mut x112: u32 = 0;
382  let mut x113: fiat_p256_u1 = 0;
383  fiat_p256_addcarryx_u32(&mut x112, &mut x113, x111, x65, x95);
384  let mut x114: u32 = 0;
385  let mut x115: fiat_p256_u1 = 0;
386  fiat_p256_addcarryx_u32(&mut x114, &mut x115, x113, x67, x97);
387  let mut x116: u32 = 0;
388  let mut x117: fiat_p256_u1 = 0;
389  fiat_p256_addcarryx_u32(&mut x116, &mut x117, x115, x69, x99);
390  let mut x118: u32 = 0;
391  let mut x119: fiat_p256_u1 = 0;
392  fiat_p256_addcarryx_u32(&mut x118, &mut x119, x117, (x70 as u32), x101);
393  let mut x120: u32 = 0;
394  let mut x121: u32 = 0;
395  fiat_p256_mulx_u32(&mut x120, &mut x121, x102, 0xffffffff);
396  let mut x122: u32 = 0;
397  let mut x123: u32 = 0;
398  fiat_p256_mulx_u32(&mut x122, &mut x123, x102, 0xffffffff);
399  let mut x124: u32 = 0;
400  let mut x125: u32 = 0;
401  fiat_p256_mulx_u32(&mut x124, &mut x125, x102, 0xffffffff);
402  let mut x126: u32 = 0;
403  let mut x127: u32 = 0;
404  fiat_p256_mulx_u32(&mut x126, &mut x127, x102, 0xffffffff);
405  let mut x128: u32 = 0;
406  let mut x129: fiat_p256_u1 = 0;
407  fiat_p256_addcarryx_u32(&mut x128, &mut x129, 0x0, x127, x124);
408  let mut x130: u32 = 0;
409  let mut x131: fiat_p256_u1 = 0;
410  fiat_p256_addcarryx_u32(&mut x130, &mut x131, x129, x125, x122);
411  let x132: u32 = ((x131 as u32) + x123);
412  let mut x133: u32 = 0;
413  let mut x134: fiat_p256_u1 = 0;
414  fiat_p256_addcarryx_u32(&mut x133, &mut x134, 0x0, x102, x126);
415  let mut x135: u32 = 0;
416  let mut x136: fiat_p256_u1 = 0;
417  fiat_p256_addcarryx_u32(&mut x135, &mut x136, x134, x104, x128);
418  let mut x137: u32 = 0;
419  let mut x138: fiat_p256_u1 = 0;
420  fiat_p256_addcarryx_u32(&mut x137, &mut x138, x136, x106, x130);
421  let mut x139: u32 = 0;
422  let mut x140: fiat_p256_u1 = 0;
423  fiat_p256_addcarryx_u32(&mut x139, &mut x140, x138, x108, x132);
424  let mut x141: u32 = 0;
425  let mut x142: fiat_p256_u1 = 0;
426  fiat_p256_addcarryx_u32(&mut x141, &mut x142, x140, x110, (0x0 as u32));
427  let mut x143: u32 = 0;
428  let mut x144: fiat_p256_u1 = 0;
429  fiat_p256_addcarryx_u32(&mut x143, &mut x144, x142, x112, (0x0 as u32));
430  let mut x145: u32 = 0;
431  let mut x146: fiat_p256_u1 = 0;
432  fiat_p256_addcarryx_u32(&mut x145, &mut x146, x144, x114, x102);
433  let mut x147: u32 = 0;
434  let mut x148: fiat_p256_u1 = 0;
435  fiat_p256_addcarryx_u32(&mut x147, &mut x148, x146, x116, x120);
436  let mut x149: u32 = 0;
437  let mut x150: fiat_p256_u1 = 0;
438  fiat_p256_addcarryx_u32(&mut x149, &mut x150, x148, x118, x121);
439  let x151: u32 = ((x150 as u32) + (x119 as u32));
440  let mut x152: u32 = 0;
441  let mut x153: u32 = 0;
442  fiat_p256_mulx_u32(&mut x152, &mut x153, x2, (*IndexConst(arg2).index(7)));
443  let mut x154: u32 = 0;
444  let mut x155: u32 = 0;
445  fiat_p256_mulx_u32(&mut x154, &mut x155, x2, (*IndexConst(arg2).index(6)));
446  let mut x156: u32 = 0;
447  let mut x157: u32 = 0;
448  fiat_p256_mulx_u32(&mut x156, &mut x157, x2, (*IndexConst(arg2).index(5)));
449  let mut x158: u32 = 0;
450  let mut x159: u32 = 0;
451  fiat_p256_mulx_u32(&mut x158, &mut x159, x2, (*IndexConst(arg2).index(4)));
452  let mut x160: u32 = 0;
453  let mut x161: u32 = 0;
454  fiat_p256_mulx_u32(&mut x160, &mut x161, x2, (*IndexConst(arg2).index(3)));
455  let mut x162: u32 = 0;
456  let mut x163: u32 = 0;
457  fiat_p256_mulx_u32(&mut x162, &mut x163, x2, (*IndexConst(arg2).index(2)));
458  let mut x164: u32 = 0;
459  let mut x165: u32 = 0;
460  fiat_p256_mulx_u32(&mut x164, &mut x165, x2, (*IndexConst(arg2).index(1)));
461  let mut x166: u32 = 0;
462  let mut x167: u32 = 0;
463  fiat_p256_mulx_u32(&mut x166, &mut x167, x2, (*IndexConst(arg2).index(0)));
464  let mut x168: u32 = 0;
465  let mut x169: fiat_p256_u1 = 0;
466  fiat_p256_addcarryx_u32(&mut x168, &mut x169, 0x0, x167, x164);
467  let mut x170: u32 = 0;
468  let mut x171: fiat_p256_u1 = 0;
469  fiat_p256_addcarryx_u32(&mut x170, &mut x171, x169, x165, x162);
470  let mut x172: u32 = 0;
471  let mut x173: fiat_p256_u1 = 0;
472  fiat_p256_addcarryx_u32(&mut x172, &mut x173, x171, x163, x160);
473  let mut x174: u32 = 0;
474  let mut x175: fiat_p256_u1 = 0;
475  fiat_p256_addcarryx_u32(&mut x174, &mut x175, x173, x161, x158);
476  let mut x176: u32 = 0;
477  let mut x177: fiat_p256_u1 = 0;
478  fiat_p256_addcarryx_u32(&mut x176, &mut x177, x175, x159, x156);
479  let mut x178: u32 = 0;
480  let mut x179: fiat_p256_u1 = 0;
481  fiat_p256_addcarryx_u32(&mut x178, &mut x179, x177, x157, x154);
482  let mut x180: u32 = 0;
483  let mut x181: fiat_p256_u1 = 0;
484  fiat_p256_addcarryx_u32(&mut x180, &mut x181, x179, x155, x152);
485  let x182: u32 = ((x181 as u32) + x153);
486  let mut x183: u32 = 0;
487  let mut x184: fiat_p256_u1 = 0;
488  fiat_p256_addcarryx_u32(&mut x183, &mut x184, 0x0, x135, x166);
489  let mut x185: u32 = 0;
490  let mut x186: fiat_p256_u1 = 0;
491  fiat_p256_addcarryx_u32(&mut x185, &mut x186, x184, x137, x168);
492  let mut x187: u32 = 0;
493  let mut x188: fiat_p256_u1 = 0;
494  fiat_p256_addcarryx_u32(&mut x187, &mut x188, x186, x139, x170);
495  let mut x189: u32 = 0;
496  let mut x190: fiat_p256_u1 = 0;
497  fiat_p256_addcarryx_u32(&mut x189, &mut x190, x188, x141, x172);
498  let mut x191: u32 = 0;
499  let mut x192: fiat_p256_u1 = 0;
500  fiat_p256_addcarryx_u32(&mut x191, &mut x192, x190, x143, x174);
501  let mut x193: u32 = 0;
502  let mut x194: fiat_p256_u1 = 0;
503  fiat_p256_addcarryx_u32(&mut x193, &mut x194, x192, x145, x176);
504  let mut x195: u32 = 0;
505  let mut x196: fiat_p256_u1 = 0;
506  fiat_p256_addcarryx_u32(&mut x195, &mut x196, x194, x147, x178);
507  let mut x197: u32 = 0;
508  let mut x198: fiat_p256_u1 = 0;
509  fiat_p256_addcarryx_u32(&mut x197, &mut x198, x196, x149, x180);
510  let mut x199: u32 = 0;
511  let mut x200: fiat_p256_u1 = 0;
512  fiat_p256_addcarryx_u32(&mut x199, &mut x200, x198, x151, x182);
513  let mut x201: u32 = 0;
514  let mut x202: u32 = 0;
515  fiat_p256_mulx_u32(&mut x201, &mut x202, x183, 0xffffffff);
516  let mut x203: u32 = 0;
517  let mut x204: u32 = 0;
518  fiat_p256_mulx_u32(&mut x203, &mut x204, x183, 0xffffffff);
519  let mut x205: u32 = 0;
520  let mut x206: u32 = 0;
521  fiat_p256_mulx_u32(&mut x205, &mut x206, x183, 0xffffffff);
522  let mut x207: u32 = 0;
523  let mut x208: u32 = 0;
524  fiat_p256_mulx_u32(&mut x207, &mut x208, x183, 0xffffffff);
525  let mut x209: u32 = 0;
526  let mut x210: fiat_p256_u1 = 0;
527  fiat_p256_addcarryx_u32(&mut x209, &mut x210, 0x0, x208, x205);
528  let mut x211: u32 = 0;
529  let mut x212: fiat_p256_u1 = 0;
530  fiat_p256_addcarryx_u32(&mut x211, &mut x212, x210, x206, x203);
531  let x213: u32 = ((x212 as u32) + x204);
532  let mut x214: u32 = 0;
533  let mut x215: fiat_p256_u1 = 0;
534  fiat_p256_addcarryx_u32(&mut x214, &mut x215, 0x0, x183, x207);
535  let mut x216: u32 = 0;
536  let mut x217: fiat_p256_u1 = 0;
537  fiat_p256_addcarryx_u32(&mut x216, &mut x217, x215, x185, x209);
538  let mut x218: u32 = 0;
539  let mut x219: fiat_p256_u1 = 0;
540  fiat_p256_addcarryx_u32(&mut x218, &mut x219, x217, x187, x211);
541  let mut x220: u32 = 0;
542  let mut x221: fiat_p256_u1 = 0;
543  fiat_p256_addcarryx_u32(&mut x220, &mut x221, x219, x189, x213);
544  let mut x222: u32 = 0;
545  let mut x223: fiat_p256_u1 = 0;
546  fiat_p256_addcarryx_u32(&mut x222, &mut x223, x221, x191, (0x0 as u32));
547  let mut x224: u32 = 0;
548  let mut x225: fiat_p256_u1 = 0;
549  fiat_p256_addcarryx_u32(&mut x224, &mut x225, x223, x193, (0x0 as u32));
550  let mut x226: u32 = 0;
551  let mut x227: fiat_p256_u1 = 0;
552  fiat_p256_addcarryx_u32(&mut x226, &mut x227, x225, x195, x183);
553  let mut x228: u32 = 0;
554  let mut x229: fiat_p256_u1 = 0;
555  fiat_p256_addcarryx_u32(&mut x228, &mut x229, x227, x197, x201);
556  let mut x230: u32 = 0;
557  let mut x231: fiat_p256_u1 = 0;
558  fiat_p256_addcarryx_u32(&mut x230, &mut x231, x229, x199, x202);
559  let x232: u32 = ((x231 as u32) + (x200 as u32));
560  let mut x233: u32 = 0;
561  let mut x234: u32 = 0;
562  fiat_p256_mulx_u32(&mut x233, &mut x234, x3, (*IndexConst(arg2).index(7)));
563  let mut x235: u32 = 0;
564  let mut x236: u32 = 0;
565  fiat_p256_mulx_u32(&mut x235, &mut x236, x3, (*IndexConst(arg2).index(6)));
566  let mut x237: u32 = 0;
567  let mut x238: u32 = 0;
568  fiat_p256_mulx_u32(&mut x237, &mut x238, x3, (*IndexConst(arg2).index(5)));
569  let mut x239: u32 = 0;
570  let mut x240: u32 = 0;
571  fiat_p256_mulx_u32(&mut x239, &mut x240, x3, (*IndexConst(arg2).index(4)));
572  let mut x241: u32 = 0;
573  let mut x242: u32 = 0;
574  fiat_p256_mulx_u32(&mut x241, &mut x242, x3, (*IndexConst(arg2).index(3)));
575  let mut x243: u32 = 0;
576  let mut x244: u32 = 0;
577  fiat_p256_mulx_u32(&mut x243, &mut x244, x3, (*IndexConst(arg2).index(2)));
578  let mut x245: u32 = 0;
579  let mut x246: u32 = 0;
580  fiat_p256_mulx_u32(&mut x245, &mut x246, x3, (*IndexConst(arg2).index(1)));
581  let mut x247: u32 = 0;
582  let mut x248: u32 = 0;
583  fiat_p256_mulx_u32(&mut x247, &mut x248, x3, (*IndexConst(arg2).index(0)));
584  let mut x249: u32 = 0;
585  let mut x250: fiat_p256_u1 = 0;
586  fiat_p256_addcarryx_u32(&mut x249, &mut x250, 0x0, x248, x245);
587  let mut x251: u32 = 0;
588  let mut x252: fiat_p256_u1 = 0;
589  fiat_p256_addcarryx_u32(&mut x251, &mut x252, x250, x246, x243);
590  let mut x253: u32 = 0;
591  let mut x254: fiat_p256_u1 = 0;
592  fiat_p256_addcarryx_u32(&mut x253, &mut x254, x252, x244, x241);
593  let mut x255: u32 = 0;
594  let mut x256: fiat_p256_u1 = 0;
595  fiat_p256_addcarryx_u32(&mut x255, &mut x256, x254, x242, x239);
596  let mut x257: u32 = 0;
597  let mut x258: fiat_p256_u1 = 0;
598  fiat_p256_addcarryx_u32(&mut x257, &mut x258, x256, x240, x237);
599  let mut x259: u32 = 0;
600  let mut x260: fiat_p256_u1 = 0;
601  fiat_p256_addcarryx_u32(&mut x259, &mut x260, x258, x238, x235);
602  let mut x261: u32 = 0;
603  let mut x262: fiat_p256_u1 = 0;
604  fiat_p256_addcarryx_u32(&mut x261, &mut x262, x260, x236, x233);
605  let x263: u32 = ((x262 as u32) + x234);
606  let mut x264: u32 = 0;
607  let mut x265: fiat_p256_u1 = 0;
608  fiat_p256_addcarryx_u32(&mut x264, &mut x265, 0x0, x216, x247);
609  let mut x266: u32 = 0;
610  let mut x267: fiat_p256_u1 = 0;
611  fiat_p256_addcarryx_u32(&mut x266, &mut x267, x265, x218, x249);
612  let mut x268: u32 = 0;
613  let mut x269: fiat_p256_u1 = 0;
614  fiat_p256_addcarryx_u32(&mut x268, &mut x269, x267, x220, x251);
615  let mut x270: u32 = 0;
616  let mut x271: fiat_p256_u1 = 0;
617  fiat_p256_addcarryx_u32(&mut x270, &mut x271, x269, x222, x253);
618  let mut x272: u32 = 0;
619  let mut x273: fiat_p256_u1 = 0;
620  fiat_p256_addcarryx_u32(&mut x272, &mut x273, x271, x224, x255);
621  let mut x274: u32 = 0;
622  let mut x275: fiat_p256_u1 = 0;
623  fiat_p256_addcarryx_u32(&mut x274, &mut x275, x273, x226, x257);
624  let mut x276: u32 = 0;
625  let mut x277: fiat_p256_u1 = 0;
626  fiat_p256_addcarryx_u32(&mut x276, &mut x277, x275, x228, x259);
627  let mut x278: u32 = 0;
628  let mut x279: fiat_p256_u1 = 0;
629  fiat_p256_addcarryx_u32(&mut x278, &mut x279, x277, x230, x261);
630  let mut x280: u32 = 0;
631  let mut x281: fiat_p256_u1 = 0;
632  fiat_p256_addcarryx_u32(&mut x280, &mut x281, x279, x232, x263);
633  let mut x282: u32 = 0;
634  let mut x283: u32 = 0;
635  fiat_p256_mulx_u32(&mut x282, &mut x283, x264, 0xffffffff);
636  let mut x284: u32 = 0;
637  let mut x285: u32 = 0;
638  fiat_p256_mulx_u32(&mut x284, &mut x285, x264, 0xffffffff);
639  let mut x286: u32 = 0;
640  let mut x287: u32 = 0;
641  fiat_p256_mulx_u32(&mut x286, &mut x287, x264, 0xffffffff);
642  let mut x288: u32 = 0;
643  let mut x289: u32 = 0;
644  fiat_p256_mulx_u32(&mut x288, &mut x289, x264, 0xffffffff);
645  let mut x290: u32 = 0;
646  let mut x291: fiat_p256_u1 = 0;
647  fiat_p256_addcarryx_u32(&mut x290, &mut x291, 0x0, x289, x286);
648  let mut x292: u32 = 0;
649  let mut x293: fiat_p256_u1 = 0;
650  fiat_p256_addcarryx_u32(&mut x292, &mut x293, x291, x287, x284);
651  let x294: u32 = ((x293 as u32) + x285);
652  let mut x295: u32 = 0;
653  let mut x296: fiat_p256_u1 = 0;
654  fiat_p256_addcarryx_u32(&mut x295, &mut x296, 0x0, x264, x288);
655  let mut x297: u32 = 0;
656  let mut x298: fiat_p256_u1 = 0;
657  fiat_p256_addcarryx_u32(&mut x297, &mut x298, x296, x266, x290);
658  let mut x299: u32 = 0;
659  let mut x300: fiat_p256_u1 = 0;
660  fiat_p256_addcarryx_u32(&mut x299, &mut x300, x298, x268, x292);
661  let mut x301: u32 = 0;
662  let mut x302: fiat_p256_u1 = 0;
663  fiat_p256_addcarryx_u32(&mut x301, &mut x302, x300, x270, x294);
664  let mut x303: u32 = 0;
665  let mut x304: fiat_p256_u1 = 0;
666  fiat_p256_addcarryx_u32(&mut x303, &mut x304, x302, x272, (0x0 as u32));
667  let mut x305: u32 = 0;
668  let mut x306: fiat_p256_u1 = 0;
669  fiat_p256_addcarryx_u32(&mut x305, &mut x306, x304, x274, (0x0 as u32));
670  let mut x307: u32 = 0;
671  let mut x308: fiat_p256_u1 = 0;
672  fiat_p256_addcarryx_u32(&mut x307, &mut x308, x306, x276, x264);
673  let mut x309: u32 = 0;
674  let mut x310: fiat_p256_u1 = 0;
675  fiat_p256_addcarryx_u32(&mut x309, &mut x310, x308, x278, x282);
676  let mut x311: u32 = 0;
677  let mut x312: fiat_p256_u1 = 0;
678  fiat_p256_addcarryx_u32(&mut x311, &mut x312, x310, x280, x283);
679  let x313: u32 = ((x312 as u32) + (x281 as u32));
680  let mut x314: u32 = 0;
681  let mut x315: u32 = 0;
682  fiat_p256_mulx_u32(&mut x314, &mut x315, x4, (*IndexConst(arg2).index(7)));
683  let mut x316: u32 = 0;
684  let mut x317: u32 = 0;
685  fiat_p256_mulx_u32(&mut x316, &mut x317, x4, (*IndexConst(arg2).index(6)));
686  let mut x318: u32 = 0;
687  let mut x319: u32 = 0;
688  fiat_p256_mulx_u32(&mut x318, &mut x319, x4, (*IndexConst(arg2).index(5)));
689  let mut x320: u32 = 0;
690  let mut x321: u32 = 0;
691  fiat_p256_mulx_u32(&mut x320, &mut x321, x4, (*IndexConst(arg2).index(4)));
692  let mut x322: u32 = 0;
693  let mut x323: u32 = 0;
694  fiat_p256_mulx_u32(&mut x322, &mut x323, x4, (*IndexConst(arg2).index(3)));
695  let mut x324: u32 = 0;
696  let mut x325: u32 = 0;
697  fiat_p256_mulx_u32(&mut x324, &mut x325, x4, (*IndexConst(arg2).index(2)));
698  let mut x326: u32 = 0;
699  let mut x327: u32 = 0;
700  fiat_p256_mulx_u32(&mut x326, &mut x327, x4, (*IndexConst(arg2).index(1)));
701  let mut x328: u32 = 0;
702  let mut x329: u32 = 0;
703  fiat_p256_mulx_u32(&mut x328, &mut x329, x4, (*IndexConst(arg2).index(0)));
704  let mut x330: u32 = 0;
705  let mut x331: fiat_p256_u1 = 0;
706  fiat_p256_addcarryx_u32(&mut x330, &mut x331, 0x0, x329, x326);
707  let mut x332: u32 = 0;
708  let mut x333: fiat_p256_u1 = 0;
709  fiat_p256_addcarryx_u32(&mut x332, &mut x333, x331, x327, x324);
710  let mut x334: u32 = 0;
711  let mut x335: fiat_p256_u1 = 0;
712  fiat_p256_addcarryx_u32(&mut x334, &mut x335, x333, x325, x322);
713  let mut x336: u32 = 0;
714  let mut x337: fiat_p256_u1 = 0;
715  fiat_p256_addcarryx_u32(&mut x336, &mut x337, x335, x323, x320);
716  let mut x338: u32 = 0;
717  let mut x339: fiat_p256_u1 = 0;
718  fiat_p256_addcarryx_u32(&mut x338, &mut x339, x337, x321, x318);
719  let mut x340: u32 = 0;
720  let mut x341: fiat_p256_u1 = 0;
721  fiat_p256_addcarryx_u32(&mut x340, &mut x341, x339, x319, x316);
722  let mut x342: u32 = 0;
723  let mut x343: fiat_p256_u1 = 0;
724  fiat_p256_addcarryx_u32(&mut x342, &mut x343, x341, x317, x314);
725  let x344: u32 = ((x343 as u32) + x315);
726  let mut x345: u32 = 0;
727  let mut x346: fiat_p256_u1 = 0;
728  fiat_p256_addcarryx_u32(&mut x345, &mut x346, 0x0, x297, x328);
729  let mut x347: u32 = 0;
730  let mut x348: fiat_p256_u1 = 0;
731  fiat_p256_addcarryx_u32(&mut x347, &mut x348, x346, x299, x330);
732  let mut x349: u32 = 0;
733  let mut x350: fiat_p256_u1 = 0;
734  fiat_p256_addcarryx_u32(&mut x349, &mut x350, x348, x301, x332);
735  let mut x351: u32 = 0;
736  let mut x352: fiat_p256_u1 = 0;
737  fiat_p256_addcarryx_u32(&mut x351, &mut x352, x350, x303, x334);
738  let mut x353: u32 = 0;
739  let mut x354: fiat_p256_u1 = 0;
740  fiat_p256_addcarryx_u32(&mut x353, &mut x354, x352, x305, x336);
741  let mut x355: u32 = 0;
742  let mut x356: fiat_p256_u1 = 0;
743  fiat_p256_addcarryx_u32(&mut x355, &mut x356, x354, x307, x338);
744  let mut x357: u32 = 0;
745  let mut x358: fiat_p256_u1 = 0;
746  fiat_p256_addcarryx_u32(&mut x357, &mut x358, x356, x309, x340);
747  let mut x359: u32 = 0;
748  let mut x360: fiat_p256_u1 = 0;
749  fiat_p256_addcarryx_u32(&mut x359, &mut x360, x358, x311, x342);
750  let mut x361: u32 = 0;
751  let mut x362: fiat_p256_u1 = 0;
752  fiat_p256_addcarryx_u32(&mut x361, &mut x362, x360, x313, x344);
753  let mut x363: u32 = 0;
754  let mut x364: u32 = 0;
755  fiat_p256_mulx_u32(&mut x363, &mut x364, x345, 0xffffffff);
756  let mut x365: u32 = 0;
757  let mut x366: u32 = 0;
758  fiat_p256_mulx_u32(&mut x365, &mut x366, x345, 0xffffffff);
759  let mut x367: u32 = 0;
760  let mut x368: u32 = 0;
761  fiat_p256_mulx_u32(&mut x367, &mut x368, x345, 0xffffffff);
762  let mut x369: u32 = 0;
763  let mut x370: u32 = 0;
764  fiat_p256_mulx_u32(&mut x369, &mut x370, x345, 0xffffffff);
765  let mut x371: u32 = 0;
766  let mut x372: fiat_p256_u1 = 0;
767  fiat_p256_addcarryx_u32(&mut x371, &mut x372, 0x0, x370, x367);
768  let mut x373: u32 = 0;
769  let mut x374: fiat_p256_u1 = 0;
770  fiat_p256_addcarryx_u32(&mut x373, &mut x374, x372, x368, x365);
771  let x375: u32 = ((x374 as u32) + x366);
772  let mut x376: u32 = 0;
773  let mut x377: fiat_p256_u1 = 0;
774  fiat_p256_addcarryx_u32(&mut x376, &mut x377, 0x0, x345, x369);
775  let mut x378: u32 = 0;
776  let mut x379: fiat_p256_u1 = 0;
777  fiat_p256_addcarryx_u32(&mut x378, &mut x379, x377, x347, x371);
778  let mut x380: u32 = 0;
779  let mut x381: fiat_p256_u1 = 0;
780  fiat_p256_addcarryx_u32(&mut x380, &mut x381, x379, x349, x373);
781  let mut x382: u32 = 0;
782  let mut x383: fiat_p256_u1 = 0;
783  fiat_p256_addcarryx_u32(&mut x382, &mut x383, x381, x351, x375);
784  let mut x384: u32 = 0;
785  let mut x385: fiat_p256_u1 = 0;
786  fiat_p256_addcarryx_u32(&mut x384, &mut x385, x383, x353, (0x0 as u32));
787  let mut x386: u32 = 0;
788  let mut x387: fiat_p256_u1 = 0;
789  fiat_p256_addcarryx_u32(&mut x386, &mut x387, x385, x355, (0x0 as u32));
790  let mut x388: u32 = 0;
791  let mut x389: fiat_p256_u1 = 0;
792  fiat_p256_addcarryx_u32(&mut x388, &mut x389, x387, x357, x345);
793  let mut x390: u32 = 0;
794  let mut x391: fiat_p256_u1 = 0;
795  fiat_p256_addcarryx_u32(&mut x390, &mut x391, x389, x359, x363);
796  let mut x392: u32 = 0;
797  let mut x393: fiat_p256_u1 = 0;
798  fiat_p256_addcarryx_u32(&mut x392, &mut x393, x391, x361, x364);
799  let x394: u32 = ((x393 as u32) + (x362 as u32));
800  let mut x395: u32 = 0;
801  let mut x396: u32 = 0;
802  fiat_p256_mulx_u32(&mut x395, &mut x396, x5, (*IndexConst(arg2).index(7)));
803  let mut x397: u32 = 0;
804  let mut x398: u32 = 0;
805  fiat_p256_mulx_u32(&mut x397, &mut x398, x5, (*IndexConst(arg2).index(6)));
806  let mut x399: u32 = 0;
807  let mut x400: u32 = 0;
808  fiat_p256_mulx_u32(&mut x399, &mut x400, x5, (*IndexConst(arg2).index(5)));
809  let mut x401: u32 = 0;
810  let mut x402: u32 = 0;
811  fiat_p256_mulx_u32(&mut x401, &mut x402, x5, (*IndexConst(arg2).index(4)));
812  let mut x403: u32 = 0;
813  let mut x404: u32 = 0;
814  fiat_p256_mulx_u32(&mut x403, &mut x404, x5, (*IndexConst(arg2).index(3)));
815  let mut x405: u32 = 0;
816  let mut x406: u32 = 0;
817  fiat_p256_mulx_u32(&mut x405, &mut x406, x5, (*IndexConst(arg2).index(2)));
818  let mut x407: u32 = 0;
819  let mut x408: u32 = 0;
820  fiat_p256_mulx_u32(&mut x407, &mut x408, x5, (*IndexConst(arg2).index(1)));
821  let mut x409: u32 = 0;
822  let mut x410: u32 = 0;
823  fiat_p256_mulx_u32(&mut x409, &mut x410, x5, (*IndexConst(arg2).index(0)));
824  let mut x411: u32 = 0;
825  let mut x412: fiat_p256_u1 = 0;
826  fiat_p256_addcarryx_u32(&mut x411, &mut x412, 0x0, x410, x407);
827  let mut x413: u32 = 0;
828  let mut x414: fiat_p256_u1 = 0;
829  fiat_p256_addcarryx_u32(&mut x413, &mut x414, x412, x408, x405);
830  let mut x415: u32 = 0;
831  let mut x416: fiat_p256_u1 = 0;
832  fiat_p256_addcarryx_u32(&mut x415, &mut x416, x414, x406, x403);
833  let mut x417: u32 = 0;
834  let mut x418: fiat_p256_u1 = 0;
835  fiat_p256_addcarryx_u32(&mut x417, &mut x418, x416, x404, x401);
836  let mut x419: u32 = 0;
837  let mut x420: fiat_p256_u1 = 0;
838  fiat_p256_addcarryx_u32(&mut x419, &mut x420, x418, x402, x399);
839  let mut x421: u32 = 0;
840  let mut x422: fiat_p256_u1 = 0;
841  fiat_p256_addcarryx_u32(&mut x421, &mut x422, x420, x400, x397);
842  let mut x423: u32 = 0;
843  let mut x424: fiat_p256_u1 = 0;
844  fiat_p256_addcarryx_u32(&mut x423, &mut x424, x422, x398, x395);
845  let x425: u32 = ((x424 as u32) + x396);
846  let mut x426: u32 = 0;
847  let mut x427: fiat_p256_u1 = 0;
848  fiat_p256_addcarryx_u32(&mut x426, &mut x427, 0x0, x378, x409);
849  let mut x428: u32 = 0;
850  let mut x429: fiat_p256_u1 = 0;
851  fiat_p256_addcarryx_u32(&mut x428, &mut x429, x427, x380, x411);
852  let mut x430: u32 = 0;
853  let mut x431: fiat_p256_u1 = 0;
854  fiat_p256_addcarryx_u32(&mut x430, &mut x431, x429, x382, x413);
855  let mut x432: u32 = 0;
856  let mut x433: fiat_p256_u1 = 0;
857  fiat_p256_addcarryx_u32(&mut x432, &mut x433, x431, x384, x415);
858  let mut x434: u32 = 0;
859  let mut x435: fiat_p256_u1 = 0;
860  fiat_p256_addcarryx_u32(&mut x434, &mut x435, x433, x386, x417);
861  let mut x436: u32 = 0;
862  let mut x437: fiat_p256_u1 = 0;
863  fiat_p256_addcarryx_u32(&mut x436, &mut x437, x435, x388, x419);
864  let mut x438: u32 = 0;
865  let mut x439: fiat_p256_u1 = 0;
866  fiat_p256_addcarryx_u32(&mut x438, &mut x439, x437, x390, x421);
867  let mut x440: u32 = 0;
868  let mut x441: fiat_p256_u1 = 0;
869  fiat_p256_addcarryx_u32(&mut x440, &mut x441, x439, x392, x423);
870  let mut x442: u32 = 0;
871  let mut x443: fiat_p256_u1 = 0;
872  fiat_p256_addcarryx_u32(&mut x442, &mut x443, x441, x394, x425);
873  let mut x444: u32 = 0;
874  let mut x445: u32 = 0;
875  fiat_p256_mulx_u32(&mut x444, &mut x445, x426, 0xffffffff);
876  let mut x446: u32 = 0;
877  let mut x447: u32 = 0;
878  fiat_p256_mulx_u32(&mut x446, &mut x447, x426, 0xffffffff);
879  let mut x448: u32 = 0;
880  let mut x449: u32 = 0;
881  fiat_p256_mulx_u32(&mut x448, &mut x449, x426, 0xffffffff);
882  let mut x450: u32 = 0;
883  let mut x451: u32 = 0;
884  fiat_p256_mulx_u32(&mut x450, &mut x451, x426, 0xffffffff);
885  let mut x452: u32 = 0;
886  let mut x453: fiat_p256_u1 = 0;
887  fiat_p256_addcarryx_u32(&mut x452, &mut x453, 0x0, x451, x448);
888  let mut x454: u32 = 0;
889  let mut x455: fiat_p256_u1 = 0;
890  fiat_p256_addcarryx_u32(&mut x454, &mut x455, x453, x449, x446);
891  let x456: u32 = ((x455 as u32) + x447);
892  let mut x457: u32 = 0;
893  let mut x458: fiat_p256_u1 = 0;
894  fiat_p256_addcarryx_u32(&mut x457, &mut x458, 0x0, x426, x450);
895  let mut x459: u32 = 0;
896  let mut x460: fiat_p256_u1 = 0;
897  fiat_p256_addcarryx_u32(&mut x459, &mut x460, x458, x428, x452);
898  let mut x461: u32 = 0;
899  let mut x462: fiat_p256_u1 = 0;
900  fiat_p256_addcarryx_u32(&mut x461, &mut x462, x460, x430, x454);
901  let mut x463: u32 = 0;
902  let mut x464: fiat_p256_u1 = 0;
903  fiat_p256_addcarryx_u32(&mut x463, &mut x464, x462, x432, x456);
904  let mut x465: u32 = 0;
905  let mut x466: fiat_p256_u1 = 0;
906  fiat_p256_addcarryx_u32(&mut x465, &mut x466, x464, x434, (0x0 as u32));
907  let mut x467: u32 = 0;
908  let mut x468: fiat_p256_u1 = 0;
909  fiat_p256_addcarryx_u32(&mut x467, &mut x468, x466, x436, (0x0 as u32));
910  let mut x469: u32 = 0;
911  let mut x470: fiat_p256_u1 = 0;
912  fiat_p256_addcarryx_u32(&mut x469, &mut x470, x468, x438, x426);
913  let mut x471: u32 = 0;
914  let mut x472: fiat_p256_u1 = 0;
915  fiat_p256_addcarryx_u32(&mut x471, &mut x472, x470, x440, x444);
916  let mut x473: u32 = 0;
917  let mut x474: fiat_p256_u1 = 0;
918  fiat_p256_addcarryx_u32(&mut x473, &mut x474, x472, x442, x445);
919  let x475: u32 = ((x474 as u32) + (x443 as u32));
920  let mut x476: u32 = 0;
921  let mut x477: u32 = 0;
922  fiat_p256_mulx_u32(&mut x476, &mut x477, x6, (*IndexConst(arg2).index(7)));
923  let mut x478: u32 = 0;
924  let mut x479: u32 = 0;
925  fiat_p256_mulx_u32(&mut x478, &mut x479, x6, (*IndexConst(arg2).index(6)));
926  let mut x480: u32 = 0;
927  let mut x481: u32 = 0;
928  fiat_p256_mulx_u32(&mut x480, &mut x481, x6, (*IndexConst(arg2).index(5)));
929  let mut x482: u32 = 0;
930  let mut x483: u32 = 0;
931  fiat_p256_mulx_u32(&mut x482, &mut x483, x6, (*IndexConst(arg2).index(4)));
932  let mut x484: u32 = 0;
933  let mut x485: u32 = 0;
934  fiat_p256_mulx_u32(&mut x484, &mut x485, x6, (*IndexConst(arg2).index(3)));
935  let mut x486: u32 = 0;
936  let mut x487: u32 = 0;
937  fiat_p256_mulx_u32(&mut x486, &mut x487, x6, (*IndexConst(arg2).index(2)));
938  let mut x488: u32 = 0;
939  let mut x489: u32 = 0;
940  fiat_p256_mulx_u32(&mut x488, &mut x489, x6, (*IndexConst(arg2).index(1)));
941  let mut x490: u32 = 0;
942  let mut x491: u32 = 0;
943  fiat_p256_mulx_u32(&mut x490, &mut x491, x6, (*IndexConst(arg2).index(0)));
944  let mut x492: u32 = 0;
945  let mut x493: fiat_p256_u1 = 0;
946  fiat_p256_addcarryx_u32(&mut x492, &mut x493, 0x0, x491, x488);
947  let mut x494: u32 = 0;
948  let mut x495: fiat_p256_u1 = 0;
949  fiat_p256_addcarryx_u32(&mut x494, &mut x495, x493, x489, x486);
950  let mut x496: u32 = 0;
951  let mut x497: fiat_p256_u1 = 0;
952  fiat_p256_addcarryx_u32(&mut x496, &mut x497, x495, x487, x484);
953  let mut x498: u32 = 0;
954  let mut x499: fiat_p256_u1 = 0;
955  fiat_p256_addcarryx_u32(&mut x498, &mut x499, x497, x485, x482);
956  let mut x500: u32 = 0;
957  let mut x501: fiat_p256_u1 = 0;
958  fiat_p256_addcarryx_u32(&mut x500, &mut x501, x499, x483, x480);
959  let mut x502: u32 = 0;
960  let mut x503: fiat_p256_u1 = 0;
961  fiat_p256_addcarryx_u32(&mut x502, &mut x503, x501, x481, x478);
962  let mut x504: u32 = 0;
963  let mut x505: fiat_p256_u1 = 0;
964  fiat_p256_addcarryx_u32(&mut x504, &mut x505, x503, x479, x476);
965  let x506: u32 = ((x505 as u32) + x477);
966  let mut x507: u32 = 0;
967  let mut x508: fiat_p256_u1 = 0;
968  fiat_p256_addcarryx_u32(&mut x507, &mut x508, 0x0, x459, x490);
969  let mut x509: u32 = 0;
970  let mut x510: fiat_p256_u1 = 0;
971  fiat_p256_addcarryx_u32(&mut x509, &mut x510, x508, x461, x492);
972  let mut x511: u32 = 0;
973  let mut x512: fiat_p256_u1 = 0;
974  fiat_p256_addcarryx_u32(&mut x511, &mut x512, x510, x463, x494);
975  let mut x513: u32 = 0;
976  let mut x514: fiat_p256_u1 = 0;
977  fiat_p256_addcarryx_u32(&mut x513, &mut x514, x512, x465, x496);
978  let mut x515: u32 = 0;
979  let mut x516: fiat_p256_u1 = 0;
980  fiat_p256_addcarryx_u32(&mut x515, &mut x516, x514, x467, x498);
981  let mut x517: u32 = 0;
982  let mut x518: fiat_p256_u1 = 0;
983  fiat_p256_addcarryx_u32(&mut x517, &mut x518, x516, x469, x500);
984  let mut x519: u32 = 0;
985  let mut x520: fiat_p256_u1 = 0;
986  fiat_p256_addcarryx_u32(&mut x519, &mut x520, x518, x471, x502);
987  let mut x521: u32 = 0;
988  let mut x522: fiat_p256_u1 = 0;
989  fiat_p256_addcarryx_u32(&mut x521, &mut x522, x520, x473, x504);
990  let mut x523: u32 = 0;
991  let mut x524: fiat_p256_u1 = 0;
992  fiat_p256_addcarryx_u32(&mut x523, &mut x524, x522, x475, x506);
993  let mut x525: u32 = 0;
994  let mut x526: u32 = 0;
995  fiat_p256_mulx_u32(&mut x525, &mut x526, x507, 0xffffffff);
996  let mut x527: u32 = 0;
997  let mut x528: u32 = 0;
998  fiat_p256_mulx_u32(&mut x527, &mut x528, x507, 0xffffffff);
999  let mut x529: u32 = 0;
1000  let mut x530: u32 = 0;
1001  fiat_p256_mulx_u32(&mut x529, &mut x530, x507, 0xffffffff);
1002  let mut x531: u32 = 0;
1003  let mut x532: u32 = 0;
1004  fiat_p256_mulx_u32(&mut x531, &mut x532, x507, 0xffffffff);
1005  let mut x533: u32 = 0;
1006  let mut x534: fiat_p256_u1 = 0;
1007  fiat_p256_addcarryx_u32(&mut x533, &mut x534, 0x0, x532, x529);
1008  let mut x535: u32 = 0;
1009  let mut x536: fiat_p256_u1 = 0;
1010  fiat_p256_addcarryx_u32(&mut x535, &mut x536, x534, x530, x527);
1011  let x537: u32 = ((x536 as u32) + x528);
1012  let mut x538: u32 = 0;
1013  let mut x539: fiat_p256_u1 = 0;
1014  fiat_p256_addcarryx_u32(&mut x538, &mut x539, 0x0, x507, x531);
1015  let mut x540: u32 = 0;
1016  let mut x541: fiat_p256_u1 = 0;
1017  fiat_p256_addcarryx_u32(&mut x540, &mut x541, x539, x509, x533);
1018  let mut x542: u32 = 0;
1019  let mut x543: fiat_p256_u1 = 0;
1020  fiat_p256_addcarryx_u32(&mut x542, &mut x543, x541, x511, x535);
1021  let mut x544: u32 = 0;
1022  let mut x545: fiat_p256_u1 = 0;
1023  fiat_p256_addcarryx_u32(&mut x544, &mut x545, x543, x513, x537);
1024  let mut x546: u32 = 0;
1025  let mut x547: fiat_p256_u1 = 0;
1026  fiat_p256_addcarryx_u32(&mut x546, &mut x547, x545, x515, (0x0 as u32));
1027  let mut x548: u32 = 0;
1028  let mut x549: fiat_p256_u1 = 0;
1029  fiat_p256_addcarryx_u32(&mut x548, &mut x549, x547, x517, (0x0 as u32));
1030  let mut x550: u32 = 0;
1031  let mut x551: fiat_p256_u1 = 0;
1032  fiat_p256_addcarryx_u32(&mut x550, &mut x551, x549, x519, x507);
1033  let mut x552: u32 = 0;
1034  let mut x553: fiat_p256_u1 = 0;
1035  fiat_p256_addcarryx_u32(&mut x552, &mut x553, x551, x521, x525);
1036  let mut x554: u32 = 0;
1037  let mut x555: fiat_p256_u1 = 0;
1038  fiat_p256_addcarryx_u32(&mut x554, &mut x555, x553, x523, x526);
1039  let x556: u32 = ((x555 as u32) + (x524 as u32));
1040  let mut x557: u32 = 0;
1041  let mut x558: u32 = 0;
1042  fiat_p256_mulx_u32(&mut x557, &mut x558, x7, (*IndexConst(arg2).index(7)));
1043  let mut x559: u32 = 0;
1044  let mut x560: u32 = 0;
1045  fiat_p256_mulx_u32(&mut x559, &mut x560, x7, (*IndexConst(arg2).index(6)));
1046  let mut x561: u32 = 0;
1047  let mut x562: u32 = 0;
1048  fiat_p256_mulx_u32(&mut x561, &mut x562, x7, (*IndexConst(arg2).index(5)));
1049  let mut x563: u32 = 0;
1050  let mut x564: u32 = 0;
1051  fiat_p256_mulx_u32(&mut x563, &mut x564, x7, (*IndexConst(arg2).index(4)));
1052  let mut x565: u32 = 0;
1053  let mut x566: u32 = 0;
1054  fiat_p256_mulx_u32(&mut x565, &mut x566, x7, (*IndexConst(arg2).index(3)));
1055  let mut x567: u32 = 0;
1056  let mut x568: u32 = 0;
1057  fiat_p256_mulx_u32(&mut x567, &mut x568, x7, (*IndexConst(arg2).index(2)));
1058  let mut x569: u32 = 0;
1059  let mut x570: u32 = 0;
1060  fiat_p256_mulx_u32(&mut x569, &mut x570, x7, (*IndexConst(arg2).index(1)));
1061  let mut x571: u32 = 0;
1062  let mut x572: u32 = 0;
1063  fiat_p256_mulx_u32(&mut x571, &mut x572, x7, (*IndexConst(arg2).index(0)));
1064  let mut x573: u32 = 0;
1065  let mut x574: fiat_p256_u1 = 0;
1066  fiat_p256_addcarryx_u32(&mut x573, &mut x574, 0x0, x572, x569);
1067  let mut x575: u32 = 0;
1068  let mut x576: fiat_p256_u1 = 0;
1069  fiat_p256_addcarryx_u32(&mut x575, &mut x576, x574, x570, x567);
1070  let mut x577: u32 = 0;
1071  let mut x578: fiat_p256_u1 = 0;
1072  fiat_p256_addcarryx_u32(&mut x577, &mut x578, x576, x568, x565);
1073  let mut x579: u32 = 0;
1074  let mut x580: fiat_p256_u1 = 0;
1075  fiat_p256_addcarryx_u32(&mut x579, &mut x580, x578, x566, x563);
1076  let mut x581: u32 = 0;
1077  let mut x582: fiat_p256_u1 = 0;
1078  fiat_p256_addcarryx_u32(&mut x581, &mut x582, x580, x564, x561);
1079  let mut x583: u32 = 0;
1080  let mut x584: fiat_p256_u1 = 0;
1081  fiat_p256_addcarryx_u32(&mut x583, &mut x584, x582, x562, x559);
1082  let mut x585: u32 = 0;
1083  let mut x586: fiat_p256_u1 = 0;
1084  fiat_p256_addcarryx_u32(&mut x585, &mut x586, x584, x560, x557);
1085  let x587: u32 = ((x586 as u32) + x558);
1086  let mut x588: u32 = 0;
1087  let mut x589: fiat_p256_u1 = 0;
1088  fiat_p256_addcarryx_u32(&mut x588, &mut x589, 0x0, x540, x571);
1089  let mut x590: u32 = 0;
1090  let mut x591: fiat_p256_u1 = 0;
1091  fiat_p256_addcarryx_u32(&mut x590, &mut x591, x589, x542, x573);
1092  let mut x592: u32 = 0;
1093  let mut x593: fiat_p256_u1 = 0;
1094  fiat_p256_addcarryx_u32(&mut x592, &mut x593, x591, x544, x575);
1095  let mut x594: u32 = 0;
1096  let mut x595: fiat_p256_u1 = 0;
1097  fiat_p256_addcarryx_u32(&mut x594, &mut x595, x593, x546, x577);
1098  let mut x596: u32 = 0;
1099  let mut x597: fiat_p256_u1 = 0;
1100  fiat_p256_addcarryx_u32(&mut x596, &mut x597, x595, x548, x579);
1101  let mut x598: u32 = 0;
1102  let mut x599: fiat_p256_u1 = 0;
1103  fiat_p256_addcarryx_u32(&mut x598, &mut x599, x597, x550, x581);
1104  let mut x600: u32 = 0;
1105  let mut x601: fiat_p256_u1 = 0;
1106  fiat_p256_addcarryx_u32(&mut x600, &mut x601, x599, x552, x583);
1107  let mut x602: u32 = 0;
1108  let mut x603: fiat_p256_u1 = 0;
1109  fiat_p256_addcarryx_u32(&mut x602, &mut x603, x601, x554, x585);
1110  let mut x604: u32 = 0;
1111  let mut x605: fiat_p256_u1 = 0;
1112  fiat_p256_addcarryx_u32(&mut x604, &mut x605, x603, x556, x587);
1113  let mut x606: u32 = 0;
1114  let mut x607: u32 = 0;
1115  fiat_p256_mulx_u32(&mut x606, &mut x607, x588, 0xffffffff);
1116  let mut x608: u32 = 0;
1117  let mut x609: u32 = 0;
1118  fiat_p256_mulx_u32(&mut x608, &mut x609, x588, 0xffffffff);
1119  let mut x610: u32 = 0;
1120  let mut x611: u32 = 0;
1121  fiat_p256_mulx_u32(&mut x610, &mut x611, x588, 0xffffffff);
1122  let mut x612: u32 = 0;
1123  let mut x613: u32 = 0;
1124  fiat_p256_mulx_u32(&mut x612, &mut x613, x588, 0xffffffff);
1125  let mut x614: u32 = 0;
1126  let mut x615: fiat_p256_u1 = 0;
1127  fiat_p256_addcarryx_u32(&mut x614, &mut x615, 0x0, x613, x610);
1128  let mut x616: u32 = 0;
1129  let mut x617: fiat_p256_u1 = 0;
1130  fiat_p256_addcarryx_u32(&mut x616, &mut x617, x615, x611, x608);
1131  let x618: u32 = ((x617 as u32) + x609);
1132  let mut x619: u32 = 0;
1133  let mut x620: fiat_p256_u1 = 0;
1134  fiat_p256_addcarryx_u32(&mut x619, &mut x620, 0x0, x588, x612);
1135  let mut x621: u32 = 0;
1136  let mut x622: fiat_p256_u1 = 0;
1137  fiat_p256_addcarryx_u32(&mut x621, &mut x622, x620, x590, x614);
1138  let mut x623: u32 = 0;
1139  let mut x624: fiat_p256_u1 = 0;
1140  fiat_p256_addcarryx_u32(&mut x623, &mut x624, x622, x592, x616);
1141  let mut x625: u32 = 0;
1142  let mut x626: fiat_p256_u1 = 0;
1143  fiat_p256_addcarryx_u32(&mut x625, &mut x626, x624, x594, x618);
1144  let mut x627: u32 = 0;
1145  let mut x628: fiat_p256_u1 = 0;
1146  fiat_p256_addcarryx_u32(&mut x627, &mut x628, x626, x596, (0x0 as u32));
1147  let mut x629: u32 = 0;
1148  let mut x630: fiat_p256_u1 = 0;
1149  fiat_p256_addcarryx_u32(&mut x629, &mut x630, x628, x598, (0x0 as u32));
1150  let mut x631: u32 = 0;
1151  let mut x632: fiat_p256_u1 = 0;
1152  fiat_p256_addcarryx_u32(&mut x631, &mut x632, x630, x600, x588);
1153  let mut x633: u32 = 0;
1154  let mut x634: fiat_p256_u1 = 0;
1155  fiat_p256_addcarryx_u32(&mut x633, &mut x634, x632, x602, x606);
1156  let mut x635: u32 = 0;
1157  let mut x636: fiat_p256_u1 = 0;
1158  fiat_p256_addcarryx_u32(&mut x635, &mut x636, x634, x604, x607);
1159  let x637: u32 = ((x636 as u32) + (x605 as u32));
1160  let mut x638: u32 = 0;
1161  let mut x639: fiat_p256_u1 = 0;
1162  fiat_p256_subborrowx_u32(&mut x638, &mut x639, 0x0, x621, 0xffffffff);
1163  let mut x640: u32 = 0;
1164  let mut x641: fiat_p256_u1 = 0;
1165  fiat_p256_subborrowx_u32(&mut x640, &mut x641, x639, x623, 0xffffffff);
1166  let mut x642: u32 = 0;
1167  let mut x643: fiat_p256_u1 = 0;
1168  fiat_p256_subborrowx_u32(&mut x642, &mut x643, x641, x625, 0xffffffff);
1169  let mut x644: u32 = 0;
1170  let mut x645: fiat_p256_u1 = 0;
1171  fiat_p256_subborrowx_u32(&mut x644, &mut x645, x643, x627, (0x0 as u32));
1172  let mut x646: u32 = 0;
1173  let mut x647: fiat_p256_u1 = 0;
1174  fiat_p256_subborrowx_u32(&mut x646, &mut x647, x645, x629, (0x0 as u32));
1175  let mut x648: u32 = 0;
1176  let mut x649: fiat_p256_u1 = 0;
1177  fiat_p256_subborrowx_u32(&mut x648, &mut x649, x647, x631, (0x0 as u32));
1178  let mut x650: u32 = 0;
1179  let mut x651: fiat_p256_u1 = 0;
1180  fiat_p256_subborrowx_u32(&mut x650, &mut x651, x649, x633, (0x1 as u32));
1181  let mut x652: u32 = 0;
1182  let mut x653: fiat_p256_u1 = 0;
1183  fiat_p256_subborrowx_u32(&mut x652, &mut x653, x651, x635, 0xffffffff);
1184  let mut x654: u32 = 0;
1185  let mut x655: fiat_p256_u1 = 0;
1186  fiat_p256_subborrowx_u32(&mut x654, &mut x655, x653, x637, (0x0 as u32));
1187  let mut x656: u32 = 0;
1188  fiat_p256_cmovznz_u32(&mut x656, x655, x638, x621);
1189  let mut x657: u32 = 0;
1190  fiat_p256_cmovznz_u32(&mut x657, x655, x640, x623);
1191  let mut x658: u32 = 0;
1192  fiat_p256_cmovznz_u32(&mut x658, x655, x642, x625);
1193  let mut x659: u32 = 0;
1194  fiat_p256_cmovznz_u32(&mut x659, x655, x644, x627);
1195  let mut x660: u32 = 0;
1196  fiat_p256_cmovznz_u32(&mut x660, x655, x646, x629);
1197  let mut x661: u32 = 0;
1198  fiat_p256_cmovznz_u32(&mut x661, x655, x648, x631);
1199  let mut x662: u32 = 0;
1200  fiat_p256_cmovznz_u32(&mut x662, x655, x650, x633);
1201  let mut x663: u32 = 0;
1202  fiat_p256_cmovznz_u32(&mut x663, x655, x652, x635);
1203  *IndexConst(&mut out1).index_mut(0) = x656;
1204  *IndexConst(&mut out1).index_mut(1) = x657;
1205  *IndexConst(&mut out1).index_mut(2) = x658;
1206  *IndexConst(&mut out1).index_mut(3) = x659;
1207  *IndexConst(&mut out1).index_mut(4) = x660;
1208  *IndexConst(&mut out1).index_mut(5) = x661;
1209  *IndexConst(&mut out1).index_mut(6) = x662;
1210  *IndexConst(&mut out1).index_mut(7) = x663;
1211}
1212
1213/// The function fiat_p256_square squares a field element in the Montgomery domain.
1214///
1215/// Preconditions:
1216///   0 ≤ eval arg1 < m
1217/// Postconditions:
1218///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
1219///   0 ≤ eval out1 < m
1220///
1221#[inline]
1222pub const fn fiat_p256_square(mut out1: &mut fiat_p256_montgomery_domain_field_element, arg1: &fiat_p256_montgomery_domain_field_element) {
1223  let x1: u32 = (*IndexConst(arg1).index(1));
1224  let x2: u32 = (*IndexConst(arg1).index(2));
1225  let x3: u32 = (*IndexConst(arg1).index(3));
1226  let x4: u32 = (*IndexConst(arg1).index(4));
1227  let x5: u32 = (*IndexConst(arg1).index(5));
1228  let x6: u32 = (*IndexConst(arg1).index(6));
1229  let x7: u32 = (*IndexConst(arg1).index(7));
1230  let x8: u32 = (*IndexConst(arg1).index(0));
1231  let mut x9: u32 = 0;
1232  let mut x10: u32 = 0;
1233  fiat_p256_mulx_u32(&mut x9, &mut x10, x8, (*IndexConst(arg1).index(7)));
1234  let mut x11: u32 = 0;
1235  let mut x12: u32 = 0;
1236  fiat_p256_mulx_u32(&mut x11, &mut x12, x8, (*IndexConst(arg1).index(6)));
1237  let mut x13: u32 = 0;
1238  let mut x14: u32 = 0;
1239  fiat_p256_mulx_u32(&mut x13, &mut x14, x8, (*IndexConst(arg1).index(5)));
1240  let mut x15: u32 = 0;
1241  let mut x16: u32 = 0;
1242  fiat_p256_mulx_u32(&mut x15, &mut x16, x8, (*IndexConst(arg1).index(4)));
1243  let mut x17: u32 = 0;
1244  let mut x18: u32 = 0;
1245  fiat_p256_mulx_u32(&mut x17, &mut x18, x8, (*IndexConst(arg1).index(3)));
1246  let mut x19: u32 = 0;
1247  let mut x20: u32 = 0;
1248  fiat_p256_mulx_u32(&mut x19, &mut x20, x8, (*IndexConst(arg1).index(2)));
1249  let mut x21: u32 = 0;
1250  let mut x22: u32 = 0;
1251  fiat_p256_mulx_u32(&mut x21, &mut x22, x8, (*IndexConst(arg1).index(1)));
1252  let mut x23: u32 = 0;
1253  let mut x24: u32 = 0;
1254  fiat_p256_mulx_u32(&mut x23, &mut x24, x8, (*IndexConst(arg1).index(0)));
1255  let mut x25: u32 = 0;
1256  let mut x26: fiat_p256_u1 = 0;
1257  fiat_p256_addcarryx_u32(&mut x25, &mut x26, 0x0, x24, x21);
1258  let mut x27: u32 = 0;
1259  let mut x28: fiat_p256_u1 = 0;
1260  fiat_p256_addcarryx_u32(&mut x27, &mut x28, x26, x22, x19);
1261  let mut x29: u32 = 0;
1262  let mut x30: fiat_p256_u1 = 0;
1263  fiat_p256_addcarryx_u32(&mut x29, &mut x30, x28, x20, x17);
1264  let mut x31: u32 = 0;
1265  let mut x32: fiat_p256_u1 = 0;
1266  fiat_p256_addcarryx_u32(&mut x31, &mut x32, x30, x18, x15);
1267  let mut x33: u32 = 0;
1268  let mut x34: fiat_p256_u1 = 0;
1269  fiat_p256_addcarryx_u32(&mut x33, &mut x34, x32, x16, x13);
1270  let mut x35: u32 = 0;
1271  let mut x36: fiat_p256_u1 = 0;
1272  fiat_p256_addcarryx_u32(&mut x35, &mut x36, x34, x14, x11);
1273  let mut x37: u32 = 0;
1274  let mut x38: fiat_p256_u1 = 0;
1275  fiat_p256_addcarryx_u32(&mut x37, &mut x38, x36, x12, x9);
1276  let x39: u32 = ((x38 as u32) + x10);
1277  let mut x40: u32 = 0;
1278  let mut x41: u32 = 0;
1279  fiat_p256_mulx_u32(&mut x40, &mut x41, x23, 0xffffffff);
1280  let mut x42: u32 = 0;
1281  let mut x43: u32 = 0;
1282  fiat_p256_mulx_u32(&mut x42, &mut x43, x23, 0xffffffff);
1283  let mut x44: u32 = 0;
1284  let mut x45: u32 = 0;
1285  fiat_p256_mulx_u32(&mut x44, &mut x45, x23, 0xffffffff);
1286  let mut x46: u32 = 0;
1287  let mut x47: u32 = 0;
1288  fiat_p256_mulx_u32(&mut x46, &mut x47, x23, 0xffffffff);
1289  let mut x48: u32 = 0;
1290  let mut x49: fiat_p256_u1 = 0;
1291  fiat_p256_addcarryx_u32(&mut x48, &mut x49, 0x0, x47, x44);
1292  let mut x50: u32 = 0;
1293  let mut x51: fiat_p256_u1 = 0;
1294  fiat_p256_addcarryx_u32(&mut x50, &mut x51, x49, x45, x42);
1295  let x52: u32 = ((x51 as u32) + x43);
1296  let mut x53: u32 = 0;
1297  let mut x54: fiat_p256_u1 = 0;
1298  fiat_p256_addcarryx_u32(&mut x53, &mut x54, 0x0, x23, x46);
1299  let mut x55: u32 = 0;
1300  let mut x56: fiat_p256_u1 = 0;
1301  fiat_p256_addcarryx_u32(&mut x55, &mut x56, x54, x25, x48);
1302  let mut x57: u32 = 0;
1303  let mut x58: fiat_p256_u1 = 0;
1304  fiat_p256_addcarryx_u32(&mut x57, &mut x58, x56, x27, x50);
1305  let mut x59: u32 = 0;
1306  let mut x60: fiat_p256_u1 = 0;
1307  fiat_p256_addcarryx_u32(&mut x59, &mut x60, x58, x29, x52);
1308  let mut x61: u32 = 0;
1309  let mut x62: fiat_p256_u1 = 0;
1310  fiat_p256_addcarryx_u32(&mut x61, &mut x62, x60, x31, (0x0 as u32));
1311  let mut x63: u32 = 0;
1312  let mut x64: fiat_p256_u1 = 0;
1313  fiat_p256_addcarryx_u32(&mut x63, &mut x64, x62, x33, (0x0 as u32));
1314  let mut x65: u32 = 0;
1315  let mut x66: fiat_p256_u1 = 0;
1316  fiat_p256_addcarryx_u32(&mut x65, &mut x66, x64, x35, x23);
1317  let mut x67: u32 = 0;
1318  let mut x68: fiat_p256_u1 = 0;
1319  fiat_p256_addcarryx_u32(&mut x67, &mut x68, x66, x37, x40);
1320  let mut x69: u32 = 0;
1321  let mut x70: fiat_p256_u1 = 0;
1322  fiat_p256_addcarryx_u32(&mut x69, &mut x70, x68, x39, x41);
1323  let mut x71: u32 = 0;
1324  let mut x72: u32 = 0;
1325  fiat_p256_mulx_u32(&mut x71, &mut x72, x1, (*IndexConst(arg1).index(7)));
1326  let mut x73: u32 = 0;
1327  let mut x74: u32 = 0;
1328  fiat_p256_mulx_u32(&mut x73, &mut x74, x1, (*IndexConst(arg1).index(6)));
1329  let mut x75: u32 = 0;
1330  let mut x76: u32 = 0;
1331  fiat_p256_mulx_u32(&mut x75, &mut x76, x1, (*IndexConst(arg1).index(5)));
1332  let mut x77: u32 = 0;
1333  let mut x78: u32 = 0;
1334  fiat_p256_mulx_u32(&mut x77, &mut x78, x1, (*IndexConst(arg1).index(4)));
1335  let mut x79: u32 = 0;
1336  let mut x80: u32 = 0;
1337  fiat_p256_mulx_u32(&mut x79, &mut x80, x1, (*IndexConst(arg1).index(3)));
1338  let mut x81: u32 = 0;
1339  let mut x82: u32 = 0;
1340  fiat_p256_mulx_u32(&mut x81, &mut x82, x1, (*IndexConst(arg1).index(2)));
1341  let mut x83: u32 = 0;
1342  let mut x84: u32 = 0;
1343  fiat_p256_mulx_u32(&mut x83, &mut x84, x1, (*IndexConst(arg1).index(1)));
1344  let mut x85: u32 = 0;
1345  let mut x86: u32 = 0;
1346  fiat_p256_mulx_u32(&mut x85, &mut x86, x1, (*IndexConst(arg1).index(0)));
1347  let mut x87: u32 = 0;
1348  let mut x88: fiat_p256_u1 = 0;
1349  fiat_p256_addcarryx_u32(&mut x87, &mut x88, 0x0, x86, x83);
1350  let mut x89: u32 = 0;
1351  let mut x90: fiat_p256_u1 = 0;
1352  fiat_p256_addcarryx_u32(&mut x89, &mut x90, x88, x84, x81);
1353  let mut x91: u32 = 0;
1354  let mut x92: fiat_p256_u1 = 0;
1355  fiat_p256_addcarryx_u32(&mut x91, &mut x92, x90, x82, x79);
1356  let mut x93: u32 = 0;
1357  let mut x94: fiat_p256_u1 = 0;
1358  fiat_p256_addcarryx_u32(&mut x93, &mut x94, x92, x80, x77);
1359  let mut x95: u32 = 0;
1360  let mut x96: fiat_p256_u1 = 0;
1361  fiat_p256_addcarryx_u32(&mut x95, &mut x96, x94, x78, x75);
1362  let mut x97: u32 = 0;
1363  let mut x98: fiat_p256_u1 = 0;
1364  fiat_p256_addcarryx_u32(&mut x97, &mut x98, x96, x76, x73);
1365  let mut x99: u32 = 0;
1366  let mut x100: fiat_p256_u1 = 0;
1367  fiat_p256_addcarryx_u32(&mut x99, &mut x100, x98, x74, x71);
1368  let x101: u32 = ((x100 as u32) + x72);
1369  let mut x102: u32 = 0;
1370  let mut x103: fiat_p256_u1 = 0;
1371  fiat_p256_addcarryx_u32(&mut x102, &mut x103, 0x0, x55, x85);
1372  let mut x104: u32 = 0;
1373  let mut x105: fiat_p256_u1 = 0;
1374  fiat_p256_addcarryx_u32(&mut x104, &mut x105, x103, x57, x87);
1375  let mut x106: u32 = 0;
1376  let mut x107: fiat_p256_u1 = 0;
1377  fiat_p256_addcarryx_u32(&mut x106, &mut x107, x105, x59, x89);
1378  let mut x108: u32 = 0;
1379  let mut x109: fiat_p256_u1 = 0;
1380  fiat_p256_addcarryx_u32(&mut x108, &mut x109, x107, x61, x91);
1381  let mut x110: u32 = 0;
1382  let mut x111: fiat_p256_u1 = 0;
1383  fiat_p256_addcarryx_u32(&mut x110, &mut x111, x109, x63, x93);
1384  let mut x112: u32 = 0;
1385  let mut x113: fiat_p256_u1 = 0;
1386  fiat_p256_addcarryx_u32(&mut x112, &mut x113, x111, x65, x95);
1387  let mut x114: u32 = 0;
1388  let mut x115: fiat_p256_u1 = 0;
1389  fiat_p256_addcarryx_u32(&mut x114, &mut x115, x113, x67, x97);
1390  let mut x116: u32 = 0;
1391  let mut x117: fiat_p256_u1 = 0;
1392  fiat_p256_addcarryx_u32(&mut x116, &mut x117, x115, x69, x99);
1393  let mut x118: u32 = 0;
1394  let mut x119: fiat_p256_u1 = 0;
1395  fiat_p256_addcarryx_u32(&mut x118, &mut x119, x117, (x70 as u32), x101);
1396  let mut x120: u32 = 0;
1397  let mut x121: u32 = 0;
1398  fiat_p256_mulx_u32(&mut x120, &mut x121, x102, 0xffffffff);
1399  let mut x122: u32 = 0;
1400  let mut x123: u32 = 0;
1401  fiat_p256_mulx_u32(&mut x122, &mut x123, x102, 0xffffffff);
1402  let mut x124: u32 = 0;
1403  let mut x125: u32 = 0;
1404  fiat_p256_mulx_u32(&mut x124, &mut x125, x102, 0xffffffff);
1405  let mut x126: u32 = 0;
1406  let mut x127: u32 = 0;
1407  fiat_p256_mulx_u32(&mut x126, &mut x127, x102, 0xffffffff);
1408  let mut x128: u32 = 0;
1409  let mut x129: fiat_p256_u1 = 0;
1410  fiat_p256_addcarryx_u32(&mut x128, &mut x129, 0x0, x127, x124);
1411  let mut x130: u32 = 0;
1412  let mut x131: fiat_p256_u1 = 0;
1413  fiat_p256_addcarryx_u32(&mut x130, &mut x131, x129, x125, x122);
1414  let x132: u32 = ((x131 as u32) + x123);
1415  let mut x133: u32 = 0;
1416  let mut x134: fiat_p256_u1 = 0;
1417  fiat_p256_addcarryx_u32(&mut x133, &mut x134, 0x0, x102, x126);
1418  let mut x135: u32 = 0;
1419  let mut x136: fiat_p256_u1 = 0;
1420  fiat_p256_addcarryx_u32(&mut x135, &mut x136, x134, x104, x128);
1421  let mut x137: u32 = 0;
1422  let mut x138: fiat_p256_u1 = 0;
1423  fiat_p256_addcarryx_u32(&mut x137, &mut x138, x136, x106, x130);
1424  let mut x139: u32 = 0;
1425  let mut x140: fiat_p256_u1 = 0;
1426  fiat_p256_addcarryx_u32(&mut x139, &mut x140, x138, x108, x132);
1427  let mut x141: u32 = 0;
1428  let mut x142: fiat_p256_u1 = 0;
1429  fiat_p256_addcarryx_u32(&mut x141, &mut x142, x140, x110, (0x0 as u32));
1430  let mut x143: u32 = 0;
1431  let mut x144: fiat_p256_u1 = 0;
1432  fiat_p256_addcarryx_u32(&mut x143, &mut x144, x142, x112, (0x0 as u32));
1433  let mut x145: u32 = 0;
1434  let mut x146: fiat_p256_u1 = 0;
1435  fiat_p256_addcarryx_u32(&mut x145, &mut x146, x144, x114, x102);
1436  let mut x147: u32 = 0;
1437  let mut x148: fiat_p256_u1 = 0;
1438  fiat_p256_addcarryx_u32(&mut x147, &mut x148, x146, x116, x120);
1439  let mut x149: u32 = 0;
1440  let mut x150: fiat_p256_u1 = 0;
1441  fiat_p256_addcarryx_u32(&mut x149, &mut x150, x148, x118, x121);
1442  let x151: u32 = ((x150 as u32) + (x119 as u32));
1443  let mut x152: u32 = 0;
1444  let mut x153: u32 = 0;
1445  fiat_p256_mulx_u32(&mut x152, &mut x153, x2, (*IndexConst(arg1).index(7)));
1446  let mut x154: u32 = 0;
1447  let mut x155: u32 = 0;
1448  fiat_p256_mulx_u32(&mut x154, &mut x155, x2, (*IndexConst(arg1).index(6)));
1449  let mut x156: u32 = 0;
1450  let mut x157: u32 = 0;
1451  fiat_p256_mulx_u32(&mut x156, &mut x157, x2, (*IndexConst(arg1).index(5)));
1452  let mut x158: u32 = 0;
1453  let mut x159: u32 = 0;
1454  fiat_p256_mulx_u32(&mut x158, &mut x159, x2, (*IndexConst(arg1).index(4)));
1455  let mut x160: u32 = 0;
1456  let mut x161: u32 = 0;
1457  fiat_p256_mulx_u32(&mut x160, &mut x161, x2, (*IndexConst(arg1).index(3)));
1458  let mut x162: u32 = 0;
1459  let mut x163: u32 = 0;
1460  fiat_p256_mulx_u32(&mut x162, &mut x163, x2, (*IndexConst(arg1).index(2)));
1461  let mut x164: u32 = 0;
1462  let mut x165: u32 = 0;
1463  fiat_p256_mulx_u32(&mut x164, &mut x165, x2, (*IndexConst(arg1).index(1)));
1464  let mut x166: u32 = 0;
1465  let mut x167: u32 = 0;
1466  fiat_p256_mulx_u32(&mut x166, &mut x167, x2, (*IndexConst(arg1).index(0)));
1467  let mut x168: u32 = 0;
1468  let mut x169: fiat_p256_u1 = 0;
1469  fiat_p256_addcarryx_u32(&mut x168, &mut x169, 0x0, x167, x164);
1470  let mut x170: u32 = 0;
1471  let mut x171: fiat_p256_u1 = 0;
1472  fiat_p256_addcarryx_u32(&mut x170, &mut x171, x169, x165, x162);
1473  let mut x172: u32 = 0;
1474  let mut x173: fiat_p256_u1 = 0;
1475  fiat_p256_addcarryx_u32(&mut x172, &mut x173, x171, x163, x160);
1476  let mut x174: u32 = 0;
1477  let mut x175: fiat_p256_u1 = 0;
1478  fiat_p256_addcarryx_u32(&mut x174, &mut x175, x173, x161, x158);
1479  let mut x176: u32 = 0;
1480  let mut x177: fiat_p256_u1 = 0;
1481  fiat_p256_addcarryx_u32(&mut x176, &mut x177, x175, x159, x156);
1482  let mut x178: u32 = 0;
1483  let mut x179: fiat_p256_u1 = 0;
1484  fiat_p256_addcarryx_u32(&mut x178, &mut x179, x177, x157, x154);
1485  let mut x180: u32 = 0;
1486  let mut x181: fiat_p256_u1 = 0;
1487  fiat_p256_addcarryx_u32(&mut x180, &mut x181, x179, x155, x152);
1488  let x182: u32 = ((x181 as u32) + x153);
1489  let mut x183: u32 = 0;
1490  let mut x184: fiat_p256_u1 = 0;
1491  fiat_p256_addcarryx_u32(&mut x183, &mut x184, 0x0, x135, x166);
1492  let mut x185: u32 = 0;
1493  let mut x186: fiat_p256_u1 = 0;
1494  fiat_p256_addcarryx_u32(&mut x185, &mut x186, x184, x137, x168);
1495  let mut x187: u32 = 0;
1496  let mut x188: fiat_p256_u1 = 0;
1497  fiat_p256_addcarryx_u32(&mut x187, &mut x188, x186, x139, x170);
1498  let mut x189: u32 = 0;
1499  let mut x190: fiat_p256_u1 = 0;
1500  fiat_p256_addcarryx_u32(&mut x189, &mut x190, x188, x141, x172);
1501  let mut x191: u32 = 0;
1502  let mut x192: fiat_p256_u1 = 0;
1503  fiat_p256_addcarryx_u32(&mut x191, &mut x192, x190, x143, x174);
1504  let mut x193: u32 = 0;
1505  let mut x194: fiat_p256_u1 = 0;
1506  fiat_p256_addcarryx_u32(&mut x193, &mut x194, x192, x145, x176);
1507  let mut x195: u32 = 0;
1508  let mut x196: fiat_p256_u1 = 0;
1509  fiat_p256_addcarryx_u32(&mut x195, &mut x196, x194, x147, x178);
1510  let mut x197: u32 = 0;
1511  let mut x198: fiat_p256_u1 = 0;
1512  fiat_p256_addcarryx_u32(&mut x197, &mut x198, x196, x149, x180);
1513  let mut x199: u32 = 0;
1514  let mut x200: fiat_p256_u1 = 0;
1515  fiat_p256_addcarryx_u32(&mut x199, &mut x200, x198, x151, x182);
1516  let mut x201: u32 = 0;
1517  let mut x202: u32 = 0;
1518  fiat_p256_mulx_u32(&mut x201, &mut x202, x183, 0xffffffff);
1519  let mut x203: u32 = 0;
1520  let mut x204: u32 = 0;
1521  fiat_p256_mulx_u32(&mut x203, &mut x204, x183, 0xffffffff);
1522  let mut x205: u32 = 0;
1523  let mut x206: u32 = 0;
1524  fiat_p256_mulx_u32(&mut x205, &mut x206, x183, 0xffffffff);
1525  let mut x207: u32 = 0;
1526  let mut x208: u32 = 0;
1527  fiat_p256_mulx_u32(&mut x207, &mut x208, x183, 0xffffffff);
1528  let mut x209: u32 = 0;
1529  let mut x210: fiat_p256_u1 = 0;
1530  fiat_p256_addcarryx_u32(&mut x209, &mut x210, 0x0, x208, x205);
1531  let mut x211: u32 = 0;
1532  let mut x212: fiat_p256_u1 = 0;
1533  fiat_p256_addcarryx_u32(&mut x211, &mut x212, x210, x206, x203);
1534  let x213: u32 = ((x212 as u32) + x204);
1535  let mut x214: u32 = 0;
1536  let mut x215: fiat_p256_u1 = 0;
1537  fiat_p256_addcarryx_u32(&mut x214, &mut x215, 0x0, x183, x207);
1538  let mut x216: u32 = 0;
1539  let mut x217: fiat_p256_u1 = 0;
1540  fiat_p256_addcarryx_u32(&mut x216, &mut x217, x215, x185, x209);
1541  let mut x218: u32 = 0;
1542  let mut x219: fiat_p256_u1 = 0;
1543  fiat_p256_addcarryx_u32(&mut x218, &mut x219, x217, x187, x211);
1544  let mut x220: u32 = 0;
1545  let mut x221: fiat_p256_u1 = 0;
1546  fiat_p256_addcarryx_u32(&mut x220, &mut x221, x219, x189, x213);
1547  let mut x222: u32 = 0;
1548  let mut x223: fiat_p256_u1 = 0;
1549  fiat_p256_addcarryx_u32(&mut x222, &mut x223, x221, x191, (0x0 as u32));
1550  let mut x224: u32 = 0;
1551  let mut x225: fiat_p256_u1 = 0;
1552  fiat_p256_addcarryx_u32(&mut x224, &mut x225, x223, x193, (0x0 as u32));
1553  let mut x226: u32 = 0;
1554  let mut x227: fiat_p256_u1 = 0;
1555  fiat_p256_addcarryx_u32(&mut x226, &mut x227, x225, x195, x183);
1556  let mut x228: u32 = 0;
1557  let mut x229: fiat_p256_u1 = 0;
1558  fiat_p256_addcarryx_u32(&mut x228, &mut x229, x227, x197, x201);
1559  let mut x230: u32 = 0;
1560  let mut x231: fiat_p256_u1 = 0;
1561  fiat_p256_addcarryx_u32(&mut x230, &mut x231, x229, x199, x202);
1562  let x232: u32 = ((x231 as u32) + (x200 as u32));
1563  let mut x233: u32 = 0;
1564  let mut x234: u32 = 0;
1565  fiat_p256_mulx_u32(&mut x233, &mut x234, x3, (*IndexConst(arg1).index(7)));
1566  let mut x235: u32 = 0;
1567  let mut x236: u32 = 0;
1568  fiat_p256_mulx_u32(&mut x235, &mut x236, x3, (*IndexConst(arg1).index(6)));
1569  let mut x237: u32 = 0;
1570  let mut x238: u32 = 0;
1571  fiat_p256_mulx_u32(&mut x237, &mut x238, x3, (*IndexConst(arg1).index(5)));
1572  let mut x239: u32 = 0;
1573  let mut x240: u32 = 0;
1574  fiat_p256_mulx_u32(&mut x239, &mut x240, x3, (*IndexConst(arg1).index(4)));
1575  let mut x241: u32 = 0;
1576  let mut x242: u32 = 0;
1577  fiat_p256_mulx_u32(&mut x241, &mut x242, x3, (*IndexConst(arg1).index(3)));
1578  let mut x243: u32 = 0;
1579  let mut x244: u32 = 0;
1580  fiat_p256_mulx_u32(&mut x243, &mut x244, x3, (*IndexConst(arg1).index(2)));
1581  let mut x245: u32 = 0;
1582  let mut x246: u32 = 0;
1583  fiat_p256_mulx_u32(&mut x245, &mut x246, x3, (*IndexConst(arg1).index(1)));
1584  let mut x247: u32 = 0;
1585  let mut x248: u32 = 0;
1586  fiat_p256_mulx_u32(&mut x247, &mut x248, x3, (*IndexConst(arg1).index(0)));
1587  let mut x249: u32 = 0;
1588  let mut x250: fiat_p256_u1 = 0;
1589  fiat_p256_addcarryx_u32(&mut x249, &mut x250, 0x0, x248, x245);
1590  let mut x251: u32 = 0;
1591  let mut x252: fiat_p256_u1 = 0;
1592  fiat_p256_addcarryx_u32(&mut x251, &mut x252, x250, x246, x243);
1593  let mut x253: u32 = 0;
1594  let mut x254: fiat_p256_u1 = 0;
1595  fiat_p256_addcarryx_u32(&mut x253, &mut x254, x252, x244, x241);
1596  let mut x255: u32 = 0;
1597  let mut x256: fiat_p256_u1 = 0;
1598  fiat_p256_addcarryx_u32(&mut x255, &mut x256, x254, x242, x239);
1599  let mut x257: u32 = 0;
1600  let mut x258: fiat_p256_u1 = 0;
1601  fiat_p256_addcarryx_u32(&mut x257, &mut x258, x256, x240, x237);
1602  let mut x259: u32 = 0;
1603  let mut x260: fiat_p256_u1 = 0;
1604  fiat_p256_addcarryx_u32(&mut x259, &mut x260, x258, x238, x235);
1605  let mut x261: u32 = 0;
1606  let mut x262: fiat_p256_u1 = 0;
1607  fiat_p256_addcarryx_u32(&mut x261, &mut x262, x260, x236, x233);
1608  let x263: u32 = ((x262 as u32) + x234);
1609  let mut x264: u32 = 0;
1610  let mut x265: fiat_p256_u1 = 0;
1611  fiat_p256_addcarryx_u32(&mut x264, &mut x265, 0x0, x216, x247);
1612  let mut x266: u32 = 0;
1613  let mut x267: fiat_p256_u1 = 0;
1614  fiat_p256_addcarryx_u32(&mut x266, &mut x267, x265, x218, x249);
1615  let mut x268: u32 = 0;
1616  let mut x269: fiat_p256_u1 = 0;
1617  fiat_p256_addcarryx_u32(&mut x268, &mut x269, x267, x220, x251);
1618  let mut x270: u32 = 0;
1619  let mut x271: fiat_p256_u1 = 0;
1620  fiat_p256_addcarryx_u32(&mut x270, &mut x271, x269, x222, x253);
1621  let mut x272: u32 = 0;
1622  let mut x273: fiat_p256_u1 = 0;
1623  fiat_p256_addcarryx_u32(&mut x272, &mut x273, x271, x224, x255);
1624  let mut x274: u32 = 0;
1625  let mut x275: fiat_p256_u1 = 0;
1626  fiat_p256_addcarryx_u32(&mut x274, &mut x275, x273, x226, x257);
1627  let mut x276: u32 = 0;
1628  let mut x277: fiat_p256_u1 = 0;
1629  fiat_p256_addcarryx_u32(&mut x276, &mut x277, x275, x228, x259);
1630  let mut x278: u32 = 0;
1631  let mut x279: fiat_p256_u1 = 0;
1632  fiat_p256_addcarryx_u32(&mut x278, &mut x279, x277, x230, x261);
1633  let mut x280: u32 = 0;
1634  let mut x281: fiat_p256_u1 = 0;
1635  fiat_p256_addcarryx_u32(&mut x280, &mut x281, x279, x232, x263);
1636  let mut x282: u32 = 0;
1637  let mut x283: u32 = 0;
1638  fiat_p256_mulx_u32(&mut x282, &mut x283, x264, 0xffffffff);
1639  let mut x284: u32 = 0;
1640  let mut x285: u32 = 0;
1641  fiat_p256_mulx_u32(&mut x284, &mut x285, x264, 0xffffffff);
1642  let mut x286: u32 = 0;
1643  let mut x287: u32 = 0;
1644  fiat_p256_mulx_u32(&mut x286, &mut x287, x264, 0xffffffff);
1645  let mut x288: u32 = 0;
1646  let mut x289: u32 = 0;
1647  fiat_p256_mulx_u32(&mut x288, &mut x289, x264, 0xffffffff);
1648  let mut x290: u32 = 0;
1649  let mut x291: fiat_p256_u1 = 0;
1650  fiat_p256_addcarryx_u32(&mut x290, &mut x291, 0x0, x289, x286);
1651  let mut x292: u32 = 0;
1652  let mut x293: fiat_p256_u1 = 0;
1653  fiat_p256_addcarryx_u32(&mut x292, &mut x293, x291, x287, x284);
1654  let x294: u32 = ((x293 as u32) + x285);
1655  let mut x295: u32 = 0;
1656  let mut x296: fiat_p256_u1 = 0;
1657  fiat_p256_addcarryx_u32(&mut x295, &mut x296, 0x0, x264, x288);
1658  let mut x297: u32 = 0;
1659  let mut x298: fiat_p256_u1 = 0;
1660  fiat_p256_addcarryx_u32(&mut x297, &mut x298, x296, x266, x290);
1661  let mut x299: u32 = 0;
1662  let mut x300: fiat_p256_u1 = 0;
1663  fiat_p256_addcarryx_u32(&mut x299, &mut x300, x298, x268, x292);
1664  let mut x301: u32 = 0;
1665  let mut x302: fiat_p256_u1 = 0;
1666  fiat_p256_addcarryx_u32(&mut x301, &mut x302, x300, x270, x294);
1667  let mut x303: u32 = 0;
1668  let mut x304: fiat_p256_u1 = 0;
1669  fiat_p256_addcarryx_u32(&mut x303, &mut x304, x302, x272, (0x0 as u32));
1670  let mut x305: u32 = 0;
1671  let mut x306: fiat_p256_u1 = 0;
1672  fiat_p256_addcarryx_u32(&mut x305, &mut x306, x304, x274, (0x0 as u32));
1673  let mut x307: u32 = 0;
1674  let mut x308: fiat_p256_u1 = 0;
1675  fiat_p256_addcarryx_u32(&mut x307, &mut x308, x306, x276, x264);
1676  let mut x309: u32 = 0;
1677  let mut x310: fiat_p256_u1 = 0;
1678  fiat_p256_addcarryx_u32(&mut x309, &mut x310, x308, x278, x282);
1679  let mut x311: u32 = 0;
1680  let mut x312: fiat_p256_u1 = 0;
1681  fiat_p256_addcarryx_u32(&mut x311, &mut x312, x310, x280, x283);
1682  let x313: u32 = ((x312 as u32) + (x281 as u32));
1683  let mut x314: u32 = 0;
1684  let mut x315: u32 = 0;
1685  fiat_p256_mulx_u32(&mut x314, &mut x315, x4, (*IndexConst(arg1).index(7)));
1686  let mut x316: u32 = 0;
1687  let mut x317: u32 = 0;
1688  fiat_p256_mulx_u32(&mut x316, &mut x317, x4, (*IndexConst(arg1).index(6)));
1689  let mut x318: u32 = 0;
1690  let mut x319: u32 = 0;
1691  fiat_p256_mulx_u32(&mut x318, &mut x319, x4, (*IndexConst(arg1).index(5)));
1692  let mut x320: u32 = 0;
1693  let mut x321: u32 = 0;
1694  fiat_p256_mulx_u32(&mut x320, &mut x321, x4, (*IndexConst(arg1).index(4)));
1695  let mut x322: u32 = 0;
1696  let mut x323: u32 = 0;
1697  fiat_p256_mulx_u32(&mut x322, &mut x323, x4, (*IndexConst(arg1).index(3)));
1698  let mut x324: u32 = 0;
1699  let mut x325: u32 = 0;
1700  fiat_p256_mulx_u32(&mut x324, &mut x325, x4, (*IndexConst(arg1).index(2)));
1701  let mut x326: u32 = 0;
1702  let mut x327: u32 = 0;
1703  fiat_p256_mulx_u32(&mut x326, &mut x327, x4, (*IndexConst(arg1).index(1)));
1704  let mut x328: u32 = 0;
1705  let mut x329: u32 = 0;
1706  fiat_p256_mulx_u32(&mut x328, &mut x329, x4, (*IndexConst(arg1).index(0)));
1707  let mut x330: u32 = 0;
1708  let mut x331: fiat_p256_u1 = 0;
1709  fiat_p256_addcarryx_u32(&mut x330, &mut x331, 0x0, x329, x326);
1710  let mut x332: u32 = 0;
1711  let mut x333: fiat_p256_u1 = 0;
1712  fiat_p256_addcarryx_u32(&mut x332, &mut x333, x331, x327, x324);
1713  let mut x334: u32 = 0;
1714  let mut x335: fiat_p256_u1 = 0;
1715  fiat_p256_addcarryx_u32(&mut x334, &mut x335, x333, x325, x322);
1716  let mut x336: u32 = 0;
1717  let mut x337: fiat_p256_u1 = 0;
1718  fiat_p256_addcarryx_u32(&mut x336, &mut x337, x335, x323, x320);
1719  let mut x338: u32 = 0;
1720  let mut x339: fiat_p256_u1 = 0;
1721  fiat_p256_addcarryx_u32(&mut x338, &mut x339, x337, x321, x318);
1722  let mut x340: u32 = 0;
1723  let mut x341: fiat_p256_u1 = 0;
1724  fiat_p256_addcarryx_u32(&mut x340, &mut x341, x339, x319, x316);
1725  let mut x342: u32 = 0;
1726  let mut x343: fiat_p256_u1 = 0;
1727  fiat_p256_addcarryx_u32(&mut x342, &mut x343, x341, x317, x314);
1728  let x344: u32 = ((x343 as u32) + x315);
1729  let mut x345: u32 = 0;
1730  let mut x346: fiat_p256_u1 = 0;
1731  fiat_p256_addcarryx_u32(&mut x345, &mut x346, 0x0, x297, x328);
1732  let mut x347: u32 = 0;
1733  let mut x348: fiat_p256_u1 = 0;
1734  fiat_p256_addcarryx_u32(&mut x347, &mut x348, x346, x299, x330);
1735  let mut x349: u32 = 0;
1736  let mut x350: fiat_p256_u1 = 0;
1737  fiat_p256_addcarryx_u32(&mut x349, &mut x350, x348, x301, x332);
1738  let mut x351: u32 = 0;
1739  let mut x352: fiat_p256_u1 = 0;
1740  fiat_p256_addcarryx_u32(&mut x351, &mut x352, x350, x303, x334);
1741  let mut x353: u32 = 0;
1742  let mut x354: fiat_p256_u1 = 0;
1743  fiat_p256_addcarryx_u32(&mut x353, &mut x354, x352, x305, x336);
1744  let mut x355: u32 = 0;
1745  let mut x356: fiat_p256_u1 = 0;
1746  fiat_p256_addcarryx_u32(&mut x355, &mut x356, x354, x307, x338);
1747  let mut x357: u32 = 0;
1748  let mut x358: fiat_p256_u1 = 0;
1749  fiat_p256_addcarryx_u32(&mut x357, &mut x358, x356, x309, x340);
1750  let mut x359: u32 = 0;
1751  let mut x360: fiat_p256_u1 = 0;
1752  fiat_p256_addcarryx_u32(&mut x359, &mut x360, x358, x311, x342);
1753  let mut x361: u32 = 0;
1754  let mut x362: fiat_p256_u1 = 0;
1755  fiat_p256_addcarryx_u32(&mut x361, &mut x362, x360, x313, x344);
1756  let mut x363: u32 = 0;
1757  let mut x364: u32 = 0;
1758  fiat_p256_mulx_u32(&mut x363, &mut x364, x345, 0xffffffff);
1759  let mut x365: u32 = 0;
1760  let mut x366: u32 = 0;
1761  fiat_p256_mulx_u32(&mut x365, &mut x366, x345, 0xffffffff);
1762  let mut x367: u32 = 0;
1763  let mut x368: u32 = 0;
1764  fiat_p256_mulx_u32(&mut x367, &mut x368, x345, 0xffffffff);
1765  let mut x369: u32 = 0;
1766  let mut x370: u32 = 0;
1767  fiat_p256_mulx_u32(&mut x369, &mut x370, x345, 0xffffffff);
1768  let mut x371: u32 = 0;
1769  let mut x372: fiat_p256_u1 = 0;
1770  fiat_p256_addcarryx_u32(&mut x371, &mut x372, 0x0, x370, x367);
1771  let mut x373: u32 = 0;
1772  let mut x374: fiat_p256_u1 = 0;
1773  fiat_p256_addcarryx_u32(&mut x373, &mut x374, x372, x368, x365);
1774  let x375: u32 = ((x374 as u32) + x366);
1775  let mut x376: u32 = 0;
1776  let mut x377: fiat_p256_u1 = 0;
1777  fiat_p256_addcarryx_u32(&mut x376, &mut x377, 0x0, x345, x369);
1778  let mut x378: u32 = 0;
1779  let mut x379: fiat_p256_u1 = 0;
1780  fiat_p256_addcarryx_u32(&mut x378, &mut x379, x377, x347, x371);
1781  let mut x380: u32 = 0;
1782  let mut x381: fiat_p256_u1 = 0;
1783  fiat_p256_addcarryx_u32(&mut x380, &mut x381, x379, x349, x373);
1784  let mut x382: u32 = 0;
1785  let mut x383: fiat_p256_u1 = 0;
1786  fiat_p256_addcarryx_u32(&mut x382, &mut x383, x381, x351, x375);
1787  let mut x384: u32 = 0;
1788  let mut x385: fiat_p256_u1 = 0;
1789  fiat_p256_addcarryx_u32(&mut x384, &mut x385, x383, x353, (0x0 as u32));
1790  let mut x386: u32 = 0;
1791  let mut x387: fiat_p256_u1 = 0;
1792  fiat_p256_addcarryx_u32(&mut x386, &mut x387, x385, x355, (0x0 as u32));
1793  let mut x388: u32 = 0;
1794  let mut x389: fiat_p256_u1 = 0;
1795  fiat_p256_addcarryx_u32(&mut x388, &mut x389, x387, x357, x345);
1796  let mut x390: u32 = 0;
1797  let mut x391: fiat_p256_u1 = 0;
1798  fiat_p256_addcarryx_u32(&mut x390, &mut x391, x389, x359, x363);
1799  let mut x392: u32 = 0;
1800  let mut x393: fiat_p256_u1 = 0;
1801  fiat_p256_addcarryx_u32(&mut x392, &mut x393, x391, x361, x364);
1802  let x394: u32 = ((x393 as u32) + (x362 as u32));
1803  let mut x395: u32 = 0;
1804  let mut x396: u32 = 0;
1805  fiat_p256_mulx_u32(&mut x395, &mut x396, x5, (*IndexConst(arg1).index(7)));
1806  let mut x397: u32 = 0;
1807  let mut x398: u32 = 0;
1808  fiat_p256_mulx_u32(&mut x397, &mut x398, x5, (*IndexConst(arg1).index(6)));
1809  let mut x399: u32 = 0;
1810  let mut x400: u32 = 0;
1811  fiat_p256_mulx_u32(&mut x399, &mut x400, x5, (*IndexConst(arg1).index(5)));
1812  let mut x401: u32 = 0;
1813  let mut x402: u32 = 0;
1814  fiat_p256_mulx_u32(&mut x401, &mut x402, x5, (*IndexConst(arg1).index(4)));
1815  let mut x403: u32 = 0;
1816  let mut x404: u32 = 0;
1817  fiat_p256_mulx_u32(&mut x403, &mut x404, x5, (*IndexConst(arg1).index(3)));
1818  let mut x405: u32 = 0;
1819  let mut x406: u32 = 0;
1820  fiat_p256_mulx_u32(&mut x405, &mut x406, x5, (*IndexConst(arg1).index(2)));
1821  let mut x407: u32 = 0;
1822  let mut x408: u32 = 0;
1823  fiat_p256_mulx_u32(&mut x407, &mut x408, x5, (*IndexConst(arg1).index(1)));
1824  let mut x409: u32 = 0;
1825  let mut x410: u32 = 0;
1826  fiat_p256_mulx_u32(&mut x409, &mut x410, x5, (*IndexConst(arg1).index(0)));
1827  let mut x411: u32 = 0;
1828  let mut x412: fiat_p256_u1 = 0;
1829  fiat_p256_addcarryx_u32(&mut x411, &mut x412, 0x0, x410, x407);
1830  let mut x413: u32 = 0;
1831  let mut x414: fiat_p256_u1 = 0;
1832  fiat_p256_addcarryx_u32(&mut x413, &mut x414, x412, x408, x405);
1833  let mut x415: u32 = 0;
1834  let mut x416: fiat_p256_u1 = 0;
1835  fiat_p256_addcarryx_u32(&mut x415, &mut x416, x414, x406, x403);
1836  let mut x417: u32 = 0;
1837  let mut x418: fiat_p256_u1 = 0;
1838  fiat_p256_addcarryx_u32(&mut x417, &mut x418, x416, x404, x401);
1839  let mut x419: u32 = 0;
1840  let mut x420: fiat_p256_u1 = 0;
1841  fiat_p256_addcarryx_u32(&mut x419, &mut x420, x418, x402, x399);
1842  let mut x421: u32 = 0;
1843  let mut x422: fiat_p256_u1 = 0;
1844  fiat_p256_addcarryx_u32(&mut x421, &mut x422, x420, x400, x397);
1845  let mut x423: u32 = 0;
1846  let mut x424: fiat_p256_u1 = 0;
1847  fiat_p256_addcarryx_u32(&mut x423, &mut x424, x422, x398, x395);
1848  let x425: u32 = ((x424 as u32) + x396);
1849  let mut x426: u32 = 0;
1850  let mut x427: fiat_p256_u1 = 0;
1851  fiat_p256_addcarryx_u32(&mut x426, &mut x427, 0x0, x378, x409);
1852  let mut x428: u32 = 0;
1853  let mut x429: fiat_p256_u1 = 0;
1854  fiat_p256_addcarryx_u32(&mut x428, &mut x429, x427, x380, x411);
1855  let mut x430: u32 = 0;
1856  let mut x431: fiat_p256_u1 = 0;
1857  fiat_p256_addcarryx_u32(&mut x430, &mut x431, x429, x382, x413);
1858  let mut x432: u32 = 0;
1859  let mut x433: fiat_p256_u1 = 0;
1860  fiat_p256_addcarryx_u32(&mut x432, &mut x433, x431, x384, x415);
1861  let mut x434: u32 = 0;
1862  let mut x435: fiat_p256_u1 = 0;
1863  fiat_p256_addcarryx_u32(&mut x434, &mut x435, x433, x386, x417);
1864  let mut x436: u32 = 0;
1865  let mut x437: fiat_p256_u1 = 0;
1866  fiat_p256_addcarryx_u32(&mut x436, &mut x437, x435, x388, x419);
1867  let mut x438: u32 = 0;
1868  let mut x439: fiat_p256_u1 = 0;
1869  fiat_p256_addcarryx_u32(&mut x438, &mut x439, x437, x390, x421);
1870  let mut x440: u32 = 0;
1871  let mut x441: fiat_p256_u1 = 0;
1872  fiat_p256_addcarryx_u32(&mut x440, &mut x441, x439, x392, x423);
1873  let mut x442: u32 = 0;
1874  let mut x443: fiat_p256_u1 = 0;
1875  fiat_p256_addcarryx_u32(&mut x442, &mut x443, x441, x394, x425);
1876  let mut x444: u32 = 0;
1877  let mut x445: u32 = 0;
1878  fiat_p256_mulx_u32(&mut x444, &mut x445, x426, 0xffffffff);
1879  let mut x446: u32 = 0;
1880  let mut x447: u32 = 0;
1881  fiat_p256_mulx_u32(&mut x446, &mut x447, x426, 0xffffffff);
1882  let mut x448: u32 = 0;
1883  let mut x449: u32 = 0;
1884  fiat_p256_mulx_u32(&mut x448, &mut x449, x426, 0xffffffff);
1885  let mut x450: u32 = 0;
1886  let mut x451: u32 = 0;
1887  fiat_p256_mulx_u32(&mut x450, &mut x451, x426, 0xffffffff);
1888  let mut x452: u32 = 0;
1889  let mut x453: fiat_p256_u1 = 0;
1890  fiat_p256_addcarryx_u32(&mut x452, &mut x453, 0x0, x451, x448);
1891  let mut x454: u32 = 0;
1892  let mut x455: fiat_p256_u1 = 0;
1893  fiat_p256_addcarryx_u32(&mut x454, &mut x455, x453, x449, x446);
1894  let x456: u32 = ((x455 as u32) + x447);
1895  let mut x457: u32 = 0;
1896  let mut x458: fiat_p256_u1 = 0;
1897  fiat_p256_addcarryx_u32(&mut x457, &mut x458, 0x0, x426, x450);
1898  let mut x459: u32 = 0;
1899  let mut x460: fiat_p256_u1 = 0;
1900  fiat_p256_addcarryx_u32(&mut x459, &mut x460, x458, x428, x452);
1901  let mut x461: u32 = 0;
1902  let mut x462: fiat_p256_u1 = 0;
1903  fiat_p256_addcarryx_u32(&mut x461, &mut x462, x460, x430, x454);
1904  let mut x463: u32 = 0;
1905  let mut x464: fiat_p256_u1 = 0;
1906  fiat_p256_addcarryx_u32(&mut x463, &mut x464, x462, x432, x456);
1907  let mut x465: u32 = 0;
1908  let mut x466: fiat_p256_u1 = 0;
1909  fiat_p256_addcarryx_u32(&mut x465, &mut x466, x464, x434, (0x0 as u32));
1910  let mut x467: u32 = 0;
1911  let mut x468: fiat_p256_u1 = 0;
1912  fiat_p256_addcarryx_u32(&mut x467, &mut x468, x466, x436, (0x0 as u32));
1913  let mut x469: u32 = 0;
1914  let mut x470: fiat_p256_u1 = 0;
1915  fiat_p256_addcarryx_u32(&mut x469, &mut x470, x468, x438, x426);
1916  let mut x471: u32 = 0;
1917  let mut x472: fiat_p256_u1 = 0;
1918  fiat_p256_addcarryx_u32(&mut x471, &mut x472, x470, x440, x444);
1919  let mut x473: u32 = 0;
1920  let mut x474: fiat_p256_u1 = 0;
1921  fiat_p256_addcarryx_u32(&mut x473, &mut x474, x472, x442, x445);
1922  let x475: u32 = ((x474 as u32) + (x443 as u32));
1923  let mut x476: u32 = 0;
1924  let mut x477: u32 = 0;
1925  fiat_p256_mulx_u32(&mut x476, &mut x477, x6, (*IndexConst(arg1).index(7)));
1926  let mut x478: u32 = 0;
1927  let mut x479: u32 = 0;
1928  fiat_p256_mulx_u32(&mut x478, &mut x479, x6, (*IndexConst(arg1).index(6)));
1929  let mut x480: u32 = 0;
1930  let mut x481: u32 = 0;
1931  fiat_p256_mulx_u32(&mut x480, &mut x481, x6, (*IndexConst(arg1).index(5)));
1932  let mut x482: u32 = 0;
1933  let mut x483: u32 = 0;
1934  fiat_p256_mulx_u32(&mut x482, &mut x483, x6, (*IndexConst(arg1).index(4)));
1935  let mut x484: u32 = 0;
1936  let mut x485: u32 = 0;
1937  fiat_p256_mulx_u32(&mut x484, &mut x485, x6, (*IndexConst(arg1).index(3)));
1938  let mut x486: u32 = 0;
1939  let mut x487: u32 = 0;
1940  fiat_p256_mulx_u32(&mut x486, &mut x487, x6, (*IndexConst(arg1).index(2)));
1941  let mut x488: u32 = 0;
1942  let mut x489: u32 = 0;
1943  fiat_p256_mulx_u32(&mut x488, &mut x489, x6, (*IndexConst(arg1).index(1)));
1944  let mut x490: u32 = 0;
1945  let mut x491: u32 = 0;
1946  fiat_p256_mulx_u32(&mut x490, &mut x491, x6, (*IndexConst(arg1).index(0)));
1947  let mut x492: u32 = 0;
1948  let mut x493: fiat_p256_u1 = 0;
1949  fiat_p256_addcarryx_u32(&mut x492, &mut x493, 0x0, x491, x488);
1950  let mut x494: u32 = 0;
1951  let mut x495: fiat_p256_u1 = 0;
1952  fiat_p256_addcarryx_u32(&mut x494, &mut x495, x493, x489, x486);
1953  let mut x496: u32 = 0;
1954  let mut x497: fiat_p256_u1 = 0;
1955  fiat_p256_addcarryx_u32(&mut x496, &mut x497, x495, x487, x484);
1956  let mut x498: u32 = 0;
1957  let mut x499: fiat_p256_u1 = 0;
1958  fiat_p256_addcarryx_u32(&mut x498, &mut x499, x497, x485, x482);
1959  let mut x500: u32 = 0;
1960  let mut x501: fiat_p256_u1 = 0;
1961  fiat_p256_addcarryx_u32(&mut x500, &mut x501, x499, x483, x480);
1962  let mut x502: u32 = 0;
1963  let mut x503: fiat_p256_u1 = 0;
1964  fiat_p256_addcarryx_u32(&mut x502, &mut x503, x501, x481, x478);
1965  let mut x504: u32 = 0;
1966  let mut x505: fiat_p256_u1 = 0;
1967  fiat_p256_addcarryx_u32(&mut x504, &mut x505, x503, x479, x476);
1968  let x506: u32 = ((x505 as u32) + x477);
1969  let mut x507: u32 = 0;
1970  let mut x508: fiat_p256_u1 = 0;
1971  fiat_p256_addcarryx_u32(&mut x507, &mut x508, 0x0, x459, x490);
1972  let mut x509: u32 = 0;
1973  let mut x510: fiat_p256_u1 = 0;
1974  fiat_p256_addcarryx_u32(&mut x509, &mut x510, x508, x461, x492);
1975  let mut x511: u32 = 0;
1976  let mut x512: fiat_p256_u1 = 0;
1977  fiat_p256_addcarryx_u32(&mut x511, &mut x512, x510, x463, x494);
1978  let mut x513: u32 = 0;
1979  let mut x514: fiat_p256_u1 = 0;
1980  fiat_p256_addcarryx_u32(&mut x513, &mut x514, x512, x465, x496);
1981  let mut x515: u32 = 0;
1982  let mut x516: fiat_p256_u1 = 0;
1983  fiat_p256_addcarryx_u32(&mut x515, &mut x516, x514, x467, x498);
1984  let mut x517: u32 = 0;
1985  let mut x518: fiat_p256_u1 = 0;
1986  fiat_p256_addcarryx_u32(&mut x517, &mut x518, x516, x469, x500);
1987  let mut x519: u32 = 0;
1988  let mut x520: fiat_p256_u1 = 0;
1989  fiat_p256_addcarryx_u32(&mut x519, &mut x520, x518, x471, x502);
1990  let mut x521: u32 = 0;
1991  let mut x522: fiat_p256_u1 = 0;
1992  fiat_p256_addcarryx_u32(&mut x521, &mut x522, x520, x473, x504);
1993  let mut x523: u32 = 0;
1994  let mut x524: fiat_p256_u1 = 0;
1995  fiat_p256_addcarryx_u32(&mut x523, &mut x524, x522, x475, x506);
1996  let mut x525: u32 = 0;
1997  let mut x526: u32 = 0;
1998  fiat_p256_mulx_u32(&mut x525, &mut x526, x507, 0xffffffff);
1999  let mut x527: u32 = 0;
2000  let mut x528: u32 = 0;
2001  fiat_p256_mulx_u32(&mut x527, &mut x528, x507, 0xffffffff);
2002  let mut x529: u32 = 0;
2003  let mut x530: u32 = 0;
2004  fiat_p256_mulx_u32(&mut x529, &mut x530, x507, 0xffffffff);
2005  let mut x531: u32 = 0;
2006  let mut x532: u32 = 0;
2007  fiat_p256_mulx_u32(&mut x531, &mut x532, x507, 0xffffffff);
2008  let mut x533: u32 = 0;
2009  let mut x534: fiat_p256_u1 = 0;
2010  fiat_p256_addcarryx_u32(&mut x533, &mut x534, 0x0, x532, x529);
2011  let mut x535: u32 = 0;
2012  let mut x536: fiat_p256_u1 = 0;
2013  fiat_p256_addcarryx_u32(&mut x535, &mut x536, x534, x530, x527);
2014  let x537: u32 = ((x536 as u32) + x528);
2015  let mut x538: u32 = 0;
2016  let mut x539: fiat_p256_u1 = 0;
2017  fiat_p256_addcarryx_u32(&mut x538, &mut x539, 0x0, x507, x531);
2018  let mut x540: u32 = 0;
2019  let mut x541: fiat_p256_u1 = 0;
2020  fiat_p256_addcarryx_u32(&mut x540, &mut x541, x539, x509, x533);
2021  let mut x542: u32 = 0;
2022  let mut x543: fiat_p256_u1 = 0;
2023  fiat_p256_addcarryx_u32(&mut x542, &mut x543, x541, x511, x535);
2024  let mut x544: u32 = 0;
2025  let mut x545: fiat_p256_u1 = 0;
2026  fiat_p256_addcarryx_u32(&mut x544, &mut x545, x543, x513, x537);
2027  let mut x546: u32 = 0;
2028  let mut x547: fiat_p256_u1 = 0;
2029  fiat_p256_addcarryx_u32(&mut x546, &mut x547, x545, x515, (0x0 as u32));
2030  let mut x548: u32 = 0;
2031  let mut x549: fiat_p256_u1 = 0;
2032  fiat_p256_addcarryx_u32(&mut x548, &mut x549, x547, x517, (0x0 as u32));
2033  let mut x550: u32 = 0;
2034  let mut x551: fiat_p256_u1 = 0;
2035  fiat_p256_addcarryx_u32(&mut x550, &mut x551, x549, x519, x507);
2036  let mut x552: u32 = 0;
2037  let mut x553: fiat_p256_u1 = 0;
2038  fiat_p256_addcarryx_u32(&mut x552, &mut x553, x551, x521, x525);
2039  let mut x554: u32 = 0;
2040  let mut x555: fiat_p256_u1 = 0;
2041  fiat_p256_addcarryx_u32(&mut x554, &mut x555, x553, x523, x526);
2042  let x556: u32 = ((x555 as u32) + (x524 as u32));
2043  let mut x557: u32 = 0;
2044  let mut x558: u32 = 0;
2045  fiat_p256_mulx_u32(&mut x557, &mut x558, x7, (*IndexConst(arg1).index(7)));
2046  let mut x559: u32 = 0;
2047  let mut x560: u32 = 0;
2048  fiat_p256_mulx_u32(&mut x559, &mut x560, x7, (*IndexConst(arg1).index(6)));
2049  let mut x561: u32 = 0;
2050  let mut x562: u32 = 0;
2051  fiat_p256_mulx_u32(&mut x561, &mut x562, x7, (*IndexConst(arg1).index(5)));
2052  let mut x563: u32 = 0;
2053  let mut x564: u32 = 0;
2054  fiat_p256_mulx_u32(&mut x563, &mut x564, x7, (*IndexConst(arg1).index(4)));
2055  let mut x565: u32 = 0;
2056  let mut x566: u32 = 0;
2057  fiat_p256_mulx_u32(&mut x565, &mut x566, x7, (*IndexConst(arg1).index(3)));
2058  let mut x567: u32 = 0;
2059  let mut x568: u32 = 0;
2060  fiat_p256_mulx_u32(&mut x567, &mut x568, x7, (*IndexConst(arg1).index(2)));
2061  let mut x569: u32 = 0;
2062  let mut x570: u32 = 0;
2063  fiat_p256_mulx_u32(&mut x569, &mut x570, x7, (*IndexConst(arg1).index(1)));
2064  let mut x571: u32 = 0;
2065  let mut x572: u32 = 0;
2066  fiat_p256_mulx_u32(&mut x571, &mut x572, x7, (*IndexConst(arg1).index(0)));
2067  let mut x573: u32 = 0;
2068  let mut x574: fiat_p256_u1 = 0;
2069  fiat_p256_addcarryx_u32(&mut x573, &mut x574, 0x0, x572, x569);
2070  let mut x575: u32 = 0;
2071  let mut x576: fiat_p256_u1 = 0;
2072  fiat_p256_addcarryx_u32(&mut x575, &mut x576, x574, x570, x567);
2073  let mut x577: u32 = 0;
2074  let mut x578: fiat_p256_u1 = 0;
2075  fiat_p256_addcarryx_u32(&mut x577, &mut x578, x576, x568, x565);
2076  let mut x579: u32 = 0;
2077  let mut x580: fiat_p256_u1 = 0;
2078  fiat_p256_addcarryx_u32(&mut x579, &mut x580, x578, x566, x563);
2079  let mut x581: u32 = 0;
2080  let mut x582: fiat_p256_u1 = 0;
2081  fiat_p256_addcarryx_u32(&mut x581, &mut x582, x580, x564, x561);
2082  let mut x583: u32 = 0;
2083  let mut x584: fiat_p256_u1 = 0;
2084  fiat_p256_addcarryx_u32(&mut x583, &mut x584, x582, x562, x559);
2085  let mut x585: u32 = 0;
2086  let mut x586: fiat_p256_u1 = 0;
2087  fiat_p256_addcarryx_u32(&mut x585, &mut x586, x584, x560, x557);
2088  let x587: u32 = ((x586 as u32) + x558);
2089  let mut x588: u32 = 0;
2090  let mut x589: fiat_p256_u1 = 0;
2091  fiat_p256_addcarryx_u32(&mut x588, &mut x589, 0x0, x540, x571);
2092  let mut x590: u32 = 0;
2093  let mut x591: fiat_p256_u1 = 0;
2094  fiat_p256_addcarryx_u32(&mut x590, &mut x591, x589, x542, x573);
2095  let mut x592: u32 = 0;
2096  let mut x593: fiat_p256_u1 = 0;
2097  fiat_p256_addcarryx_u32(&mut x592, &mut x593, x591, x544, x575);
2098  let mut x594: u32 = 0;
2099  let mut x595: fiat_p256_u1 = 0;
2100  fiat_p256_addcarryx_u32(&mut x594, &mut x595, x593, x546, x577);
2101  let mut x596: u32 = 0;
2102  let mut x597: fiat_p256_u1 = 0;
2103  fiat_p256_addcarryx_u32(&mut x596, &mut x597, x595, x548, x579);
2104  let mut x598: u32 = 0;
2105  let mut x599: fiat_p256_u1 = 0;
2106  fiat_p256_addcarryx_u32(&mut x598, &mut x599, x597, x550, x581);
2107  let mut x600: u32 = 0;
2108  let mut x601: fiat_p256_u1 = 0;
2109  fiat_p256_addcarryx_u32(&mut x600, &mut x601, x599, x552, x583);
2110  let mut x602: u32 = 0;
2111  let mut x603: fiat_p256_u1 = 0;
2112  fiat_p256_addcarryx_u32(&mut x602, &mut x603, x601, x554, x585);
2113  let mut x604: u32 = 0;
2114  let mut x605: fiat_p256_u1 = 0;
2115  fiat_p256_addcarryx_u32(&mut x604, &mut x605, x603, x556, x587);
2116  let mut x606: u32 = 0;
2117  let mut x607: u32 = 0;
2118  fiat_p256_mulx_u32(&mut x606, &mut x607, x588, 0xffffffff);
2119  let mut x608: u32 = 0;
2120  let mut x609: u32 = 0;
2121  fiat_p256_mulx_u32(&mut x608, &mut x609, x588, 0xffffffff);
2122  let mut x610: u32 = 0;
2123  let mut x611: u32 = 0;
2124  fiat_p256_mulx_u32(&mut x610, &mut x611, x588, 0xffffffff);
2125  let mut x612: u32 = 0;
2126  let mut x613: u32 = 0;
2127  fiat_p256_mulx_u32(&mut x612, &mut x613, x588, 0xffffffff);
2128  let mut x614: u32 = 0;
2129  let mut x615: fiat_p256_u1 = 0;
2130  fiat_p256_addcarryx_u32(&mut x614, &mut x615, 0x0, x613, x610);
2131  let mut x616: u32 = 0;
2132  let mut x617: fiat_p256_u1 = 0;
2133  fiat_p256_addcarryx_u32(&mut x616, &mut x617, x615, x611, x608);
2134  let x618: u32 = ((x617 as u32) + x609);
2135  let mut x619: u32 = 0;
2136  let mut x620: fiat_p256_u1 = 0;
2137  fiat_p256_addcarryx_u32(&mut x619, &mut x620, 0x0, x588, x612);
2138  let mut x621: u32 = 0;
2139  let mut x622: fiat_p256_u1 = 0;
2140  fiat_p256_addcarryx_u32(&mut x621, &mut x622, x620, x590, x614);
2141  let mut x623: u32 = 0;
2142  let mut x624: fiat_p256_u1 = 0;
2143  fiat_p256_addcarryx_u32(&mut x623, &mut x624, x622, x592, x616);
2144  let mut x625: u32 = 0;
2145  let mut x626: fiat_p256_u1 = 0;
2146  fiat_p256_addcarryx_u32(&mut x625, &mut x626, x624, x594, x618);
2147  let mut x627: u32 = 0;
2148  let mut x628: fiat_p256_u1 = 0;
2149  fiat_p256_addcarryx_u32(&mut x627, &mut x628, x626, x596, (0x0 as u32));
2150  let mut x629: u32 = 0;
2151  let mut x630: fiat_p256_u1 = 0;
2152  fiat_p256_addcarryx_u32(&mut x629, &mut x630, x628, x598, (0x0 as u32));
2153  let mut x631: u32 = 0;
2154  let mut x632: fiat_p256_u1 = 0;
2155  fiat_p256_addcarryx_u32(&mut x631, &mut x632, x630, x600, x588);
2156  let mut x633: u32 = 0;
2157  let mut x634: fiat_p256_u1 = 0;
2158  fiat_p256_addcarryx_u32(&mut x633, &mut x634, x632, x602, x606);
2159  let mut x635: u32 = 0;
2160  let mut x636: fiat_p256_u1 = 0;
2161  fiat_p256_addcarryx_u32(&mut x635, &mut x636, x634, x604, x607);
2162  let x637: u32 = ((x636 as u32) + (x605 as u32));
2163  let mut x638: u32 = 0;
2164  let mut x639: fiat_p256_u1 = 0;
2165  fiat_p256_subborrowx_u32(&mut x638, &mut x639, 0x0, x621, 0xffffffff);
2166  let mut x640: u32 = 0;
2167  let mut x641: fiat_p256_u1 = 0;
2168  fiat_p256_subborrowx_u32(&mut x640, &mut x641, x639, x623, 0xffffffff);
2169  let mut x642: u32 = 0;
2170  let mut x643: fiat_p256_u1 = 0;
2171  fiat_p256_subborrowx_u32(&mut x642, &mut x643, x641, x625, 0xffffffff);
2172  let mut x644: u32 = 0;
2173  let mut x645: fiat_p256_u1 = 0;
2174  fiat_p256_subborrowx_u32(&mut x644, &mut x645, x643, x627, (0x0 as u32));
2175  let mut x646: u32 = 0;
2176  let mut x647: fiat_p256_u1 = 0;
2177  fiat_p256_subborrowx_u32(&mut x646, &mut x647, x645, x629, (0x0 as u32));
2178  let mut x648: u32 = 0;
2179  let mut x649: fiat_p256_u1 = 0;
2180  fiat_p256_subborrowx_u32(&mut x648, &mut x649, x647, x631, (0x0 as u32));
2181  let mut x650: u32 = 0;
2182  let mut x651: fiat_p256_u1 = 0;
2183  fiat_p256_subborrowx_u32(&mut x650, &mut x651, x649, x633, (0x1 as u32));
2184  let mut x652: u32 = 0;
2185  let mut x653: fiat_p256_u1 = 0;
2186  fiat_p256_subborrowx_u32(&mut x652, &mut x653, x651, x635, 0xffffffff);
2187  let mut x654: u32 = 0;
2188  let mut x655: fiat_p256_u1 = 0;
2189  fiat_p256_subborrowx_u32(&mut x654, &mut x655, x653, x637, (0x0 as u32));
2190  let mut x656: u32 = 0;
2191  fiat_p256_cmovznz_u32(&mut x656, x655, x638, x621);
2192  let mut x657: u32 = 0;
2193  fiat_p256_cmovznz_u32(&mut x657, x655, x640, x623);
2194  let mut x658: u32 = 0;
2195  fiat_p256_cmovznz_u32(&mut x658, x655, x642, x625);
2196  let mut x659: u32 = 0;
2197  fiat_p256_cmovznz_u32(&mut x659, x655, x644, x627);
2198  let mut x660: u32 = 0;
2199  fiat_p256_cmovznz_u32(&mut x660, x655, x646, x629);
2200  let mut x661: u32 = 0;
2201  fiat_p256_cmovznz_u32(&mut x661, x655, x648, x631);
2202  let mut x662: u32 = 0;
2203  fiat_p256_cmovznz_u32(&mut x662, x655, x650, x633);
2204  let mut x663: u32 = 0;
2205  fiat_p256_cmovznz_u32(&mut x663, x655, x652, x635);
2206  *IndexConst(&mut out1).index_mut(0) = x656;
2207  *IndexConst(&mut out1).index_mut(1) = x657;
2208  *IndexConst(&mut out1).index_mut(2) = x658;
2209  *IndexConst(&mut out1).index_mut(3) = x659;
2210  *IndexConst(&mut out1).index_mut(4) = x660;
2211  *IndexConst(&mut out1).index_mut(5) = x661;
2212  *IndexConst(&mut out1).index_mut(6) = x662;
2213  *IndexConst(&mut out1).index_mut(7) = x663;
2214}
2215
2216/// The function fiat_p256_add adds two field elements in the Montgomery domain.
2217///
2218/// Preconditions:
2219///   0 ≤ eval arg1 < m
2220///   0 ≤ eval arg2 < m
2221/// Postconditions:
2222///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
2223///   0 ≤ eval out1 < m
2224///
2225#[inline]
2226pub const fn fiat_p256_add(mut out1: &mut fiat_p256_montgomery_domain_field_element, arg1: &fiat_p256_montgomery_domain_field_element, arg2: &fiat_p256_montgomery_domain_field_element) {
2227  let mut x1: u32 = 0;
2228  let mut x2: fiat_p256_u1 = 0;
2229  fiat_p256_addcarryx_u32(&mut x1, &mut x2, 0x0, (*IndexConst(arg1).index(0)), (*IndexConst(arg2).index(0)));
2230  let mut x3: u32 = 0;
2231  let mut x4: fiat_p256_u1 = 0;
2232  fiat_p256_addcarryx_u32(&mut x3, &mut x4, x2, (*IndexConst(arg1).index(1)), (*IndexConst(arg2).index(1)));
2233  let mut x5: u32 = 0;
2234  let mut x6: fiat_p256_u1 = 0;
2235  fiat_p256_addcarryx_u32(&mut x5, &mut x6, x4, (*IndexConst(arg1).index(2)), (*IndexConst(arg2).index(2)));
2236  let mut x7: u32 = 0;
2237  let mut x8: fiat_p256_u1 = 0;
2238  fiat_p256_addcarryx_u32(&mut x7, &mut x8, x6, (*IndexConst(arg1).index(3)), (*IndexConst(arg2).index(3)));
2239  let mut x9: u32 = 0;
2240  let mut x10: fiat_p256_u1 = 0;
2241  fiat_p256_addcarryx_u32(&mut x9, &mut x10, x8, (*IndexConst(arg1).index(4)), (*IndexConst(arg2).index(4)));
2242  let mut x11: u32 = 0;
2243  let mut x12: fiat_p256_u1 = 0;
2244  fiat_p256_addcarryx_u32(&mut x11, &mut x12, x10, (*IndexConst(arg1).index(5)), (*IndexConst(arg2).index(5)));
2245  let mut x13: u32 = 0;
2246  let mut x14: fiat_p256_u1 = 0;
2247  fiat_p256_addcarryx_u32(&mut x13, &mut x14, x12, (*IndexConst(arg1).index(6)), (*IndexConst(arg2).index(6)));
2248  let mut x15: u32 = 0;
2249  let mut x16: fiat_p256_u1 = 0;
2250  fiat_p256_addcarryx_u32(&mut x15, &mut x16, x14, (*IndexConst(arg1).index(7)), (*IndexConst(arg2).index(7)));
2251  let mut x17: u32 = 0;
2252  let mut x18: fiat_p256_u1 = 0;
2253  fiat_p256_subborrowx_u32(&mut x17, &mut x18, 0x0, x1, 0xffffffff);
2254  let mut x19: u32 = 0;
2255  let mut x20: fiat_p256_u1 = 0;
2256  fiat_p256_subborrowx_u32(&mut x19, &mut x20, x18, x3, 0xffffffff);
2257  let mut x21: u32 = 0;
2258  let mut x22: fiat_p256_u1 = 0;
2259  fiat_p256_subborrowx_u32(&mut x21, &mut x22, x20, x5, 0xffffffff);
2260  let mut x23: u32 = 0;
2261  let mut x24: fiat_p256_u1 = 0;
2262  fiat_p256_subborrowx_u32(&mut x23, &mut x24, x22, x7, (0x0 as u32));
2263  let mut x25: u32 = 0;
2264  let mut x26: fiat_p256_u1 = 0;
2265  fiat_p256_subborrowx_u32(&mut x25, &mut x26, x24, x9, (0x0 as u32));
2266  let mut x27: u32 = 0;
2267  let mut x28: fiat_p256_u1 = 0;
2268  fiat_p256_subborrowx_u32(&mut x27, &mut x28, x26, x11, (0x0 as u32));
2269  let mut x29: u32 = 0;
2270  let mut x30: fiat_p256_u1 = 0;
2271  fiat_p256_subborrowx_u32(&mut x29, &mut x30, x28, x13, (0x1 as u32));
2272  let mut x31: u32 = 0;
2273  let mut x32: fiat_p256_u1 = 0;
2274  fiat_p256_subborrowx_u32(&mut x31, &mut x32, x30, x15, 0xffffffff);
2275  let mut x33: u32 = 0;
2276  let mut x34: fiat_p256_u1 = 0;
2277  fiat_p256_subborrowx_u32(&mut x33, &mut x34, x32, (x16 as u32), (0x0 as u32));
2278  let mut x35: u32 = 0;
2279  fiat_p256_cmovznz_u32(&mut x35, x34, x17, x1);
2280  let mut x36: u32 = 0;
2281  fiat_p256_cmovznz_u32(&mut x36, x34, x19, x3);
2282  let mut x37: u32 = 0;
2283  fiat_p256_cmovznz_u32(&mut x37, x34, x21, x5);
2284  let mut x38: u32 = 0;
2285  fiat_p256_cmovznz_u32(&mut x38, x34, x23, x7);
2286  let mut x39: u32 = 0;
2287  fiat_p256_cmovznz_u32(&mut x39, x34, x25, x9);
2288  let mut x40: u32 = 0;
2289  fiat_p256_cmovznz_u32(&mut x40, x34, x27, x11);
2290  let mut x41: u32 = 0;
2291  fiat_p256_cmovznz_u32(&mut x41, x34, x29, x13);
2292  let mut x42: u32 = 0;
2293  fiat_p256_cmovznz_u32(&mut x42, x34, x31, x15);
2294  *IndexConst(&mut out1).index_mut(0) = x35;
2295  *IndexConst(&mut out1).index_mut(1) = x36;
2296  *IndexConst(&mut out1).index_mut(2) = x37;
2297  *IndexConst(&mut out1).index_mut(3) = x38;
2298  *IndexConst(&mut out1).index_mut(4) = x39;
2299  *IndexConst(&mut out1).index_mut(5) = x40;
2300  *IndexConst(&mut out1).index_mut(6) = x41;
2301  *IndexConst(&mut out1).index_mut(7) = x42;
2302}
2303
2304/// The function fiat_p256_sub subtracts two field elements in the Montgomery domain.
2305///
2306/// Preconditions:
2307///   0 ≤ eval arg1 < m
2308///   0 ≤ eval arg2 < m
2309/// Postconditions:
2310///   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
2311///   0 ≤ eval out1 < m
2312///
2313#[inline]
2314pub const fn fiat_p256_sub(mut out1: &mut fiat_p256_montgomery_domain_field_element, arg1: &fiat_p256_montgomery_domain_field_element, arg2: &fiat_p256_montgomery_domain_field_element) {
2315  let mut x1: u32 = 0;
2316  let mut x2: fiat_p256_u1 = 0;
2317  fiat_p256_subborrowx_u32(&mut x1, &mut x2, 0x0, (*IndexConst(arg1).index(0)), (*IndexConst(arg2).index(0)));
2318  let mut x3: u32 = 0;
2319  let mut x4: fiat_p256_u1 = 0;
2320  fiat_p256_subborrowx_u32(&mut x3, &mut x4, x2, (*IndexConst(arg1).index(1)), (*IndexConst(arg2).index(1)));
2321  let mut x5: u32 = 0;
2322  let mut x6: fiat_p256_u1 = 0;
2323  fiat_p256_subborrowx_u32(&mut x5, &mut x6, x4, (*IndexConst(arg1).index(2)), (*IndexConst(arg2).index(2)));
2324  let mut x7: u32 = 0;
2325  let mut x8: fiat_p256_u1 = 0;
2326  fiat_p256_subborrowx_u32(&mut x7, &mut x8, x6, (*IndexConst(arg1).index(3)), (*IndexConst(arg2).index(3)));
2327  let mut x9: u32 = 0;
2328  let mut x10: fiat_p256_u1 = 0;
2329  fiat_p256_subborrowx_u32(&mut x9, &mut x10, x8, (*IndexConst(arg1).index(4)), (*IndexConst(arg2).index(4)));
2330  let mut x11: u32 = 0;
2331  let mut x12: fiat_p256_u1 = 0;
2332  fiat_p256_subborrowx_u32(&mut x11, &mut x12, x10, (*IndexConst(arg1).index(5)), (*IndexConst(arg2).index(5)));
2333  let mut x13: u32 = 0;
2334  let mut x14: fiat_p256_u1 = 0;
2335  fiat_p256_subborrowx_u32(&mut x13, &mut x14, x12, (*IndexConst(arg1).index(6)), (*IndexConst(arg2).index(6)));
2336  let mut x15: u32 = 0;
2337  let mut x16: fiat_p256_u1 = 0;
2338  fiat_p256_subborrowx_u32(&mut x15, &mut x16, x14, (*IndexConst(arg1).index(7)), (*IndexConst(arg2).index(7)));
2339  let mut x17: u32 = 0;
2340  fiat_p256_cmovznz_u32(&mut x17, x16, (0x0 as u32), 0xffffffff);
2341  let mut x18: u32 = 0;
2342  let mut x19: fiat_p256_u1 = 0;
2343  fiat_p256_addcarryx_u32(&mut x18, &mut x19, 0x0, x1, x17);
2344  let mut x20: u32 = 0;
2345  let mut x21: fiat_p256_u1 = 0;
2346  fiat_p256_addcarryx_u32(&mut x20, &mut x21, x19, x3, x17);
2347  let mut x22: u32 = 0;
2348  let mut x23: fiat_p256_u1 = 0;
2349  fiat_p256_addcarryx_u32(&mut x22, &mut x23, x21, x5, x17);
2350  let mut x24: u32 = 0;
2351  let mut x25: fiat_p256_u1 = 0;
2352  fiat_p256_addcarryx_u32(&mut x24, &mut x25, x23, x7, (0x0 as u32));
2353  let mut x26: u32 = 0;
2354  let mut x27: fiat_p256_u1 = 0;
2355  fiat_p256_addcarryx_u32(&mut x26, &mut x27, x25, x9, (0x0 as u32));
2356  let mut x28: u32 = 0;
2357  let mut x29: fiat_p256_u1 = 0;
2358  fiat_p256_addcarryx_u32(&mut x28, &mut x29, x27, x11, (0x0 as u32));
2359  let mut x30: u32 = 0;
2360  let mut x31: fiat_p256_u1 = 0;
2361  fiat_p256_addcarryx_u32(&mut x30, &mut x31, x29, x13, (((x17 & (0x1 as u32)) as fiat_p256_u1) as u32));
2362  let mut x32: u32 = 0;
2363  let mut x33: fiat_p256_u1 = 0;
2364  fiat_p256_addcarryx_u32(&mut x32, &mut x33, x31, x15, x17);
2365  *IndexConst(&mut out1).index_mut(0) = x18;
2366  *IndexConst(&mut out1).index_mut(1) = x20;
2367  *IndexConst(&mut out1).index_mut(2) = x22;
2368  *IndexConst(&mut out1).index_mut(3) = x24;
2369  *IndexConst(&mut out1).index_mut(4) = x26;
2370  *IndexConst(&mut out1).index_mut(5) = x28;
2371  *IndexConst(&mut out1).index_mut(6) = x30;
2372  *IndexConst(&mut out1).index_mut(7) = x32;
2373}
2374
2375/// The function fiat_p256_opp negates a field element in the Montgomery domain.
2376///
2377/// Preconditions:
2378///   0 ≤ eval arg1 < m
2379/// Postconditions:
2380///   eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
2381///   0 ≤ eval out1 < m
2382///
2383#[inline]
2384pub const fn fiat_p256_opp(mut out1: &mut fiat_p256_montgomery_domain_field_element, arg1: &fiat_p256_montgomery_domain_field_element) {
2385  let mut x1: u32 = 0;
2386  let mut x2: fiat_p256_u1 = 0;
2387  fiat_p256_subborrowx_u32(&mut x1, &mut x2, 0x0, (0x0 as u32), (*IndexConst(arg1).index(0)));
2388  let mut x3: u32 = 0;
2389  let mut x4: fiat_p256_u1 = 0;
2390  fiat_p256_subborrowx_u32(&mut x3, &mut x4, x2, (0x0 as u32), (*IndexConst(arg1).index(1)));
2391  let mut x5: u32 = 0;
2392  let mut x6: fiat_p256_u1 = 0;
2393  fiat_p256_subborrowx_u32(&mut x5, &mut x6, x4, (0x0 as u32), (*IndexConst(arg1).index(2)));
2394  let mut x7: u32 = 0;
2395  let mut x8: fiat_p256_u1 = 0;
2396  fiat_p256_subborrowx_u32(&mut x7, &mut x8, x6, (0x0 as u32), (*IndexConst(arg1).index(3)));
2397  let mut x9: u32 = 0;
2398  let mut x10: fiat_p256_u1 = 0;
2399  fiat_p256_subborrowx_u32(&mut x9, &mut x10, x8, (0x0 as u32), (*IndexConst(arg1).index(4)));
2400  let mut x11: u32 = 0;
2401  let mut x12: fiat_p256_u1 = 0;
2402  fiat_p256_subborrowx_u32(&mut x11, &mut x12, x10, (0x0 as u32), (*IndexConst(arg1).index(5)));
2403  let mut x13: u32 = 0;
2404  let mut x14: fiat_p256_u1 = 0;
2405  fiat_p256_subborrowx_u32(&mut x13, &mut x14, x12, (0x0 as u32), (*IndexConst(arg1).index(6)));
2406  let mut x15: u32 = 0;
2407  let mut x16: fiat_p256_u1 = 0;
2408  fiat_p256_subborrowx_u32(&mut x15, &mut x16, x14, (0x0 as u32), (*IndexConst(arg1).index(7)));
2409  let mut x17: u32 = 0;
2410  fiat_p256_cmovznz_u32(&mut x17, x16, (0x0 as u32), 0xffffffff);
2411  let mut x18: u32 = 0;
2412  let mut x19: fiat_p256_u1 = 0;
2413  fiat_p256_addcarryx_u32(&mut x18, &mut x19, 0x0, x1, x17);
2414  let mut x20: u32 = 0;
2415  let mut x21: fiat_p256_u1 = 0;
2416  fiat_p256_addcarryx_u32(&mut x20, &mut x21, x19, x3, x17);
2417  let mut x22: u32 = 0;
2418  let mut x23: fiat_p256_u1 = 0;
2419  fiat_p256_addcarryx_u32(&mut x22, &mut x23, x21, x5, x17);
2420  let mut x24: u32 = 0;
2421  let mut x25: fiat_p256_u1 = 0;
2422  fiat_p256_addcarryx_u32(&mut x24, &mut x25, x23, x7, (0x0 as u32));
2423  let mut x26: u32 = 0;
2424  let mut x27: fiat_p256_u1 = 0;
2425  fiat_p256_addcarryx_u32(&mut x26, &mut x27, x25, x9, (0x0 as u32));
2426  let mut x28: u32 = 0;
2427  let mut x29: fiat_p256_u1 = 0;
2428  fiat_p256_addcarryx_u32(&mut x28, &mut x29, x27, x11, (0x0 as u32));
2429  let mut x30: u32 = 0;
2430  let mut x31: fiat_p256_u1 = 0;
2431  fiat_p256_addcarryx_u32(&mut x30, &mut x31, x29, x13, (((x17 & (0x1 as u32)) as fiat_p256_u1) as u32));
2432  let mut x32: u32 = 0;
2433  let mut x33: fiat_p256_u1 = 0;
2434  fiat_p256_addcarryx_u32(&mut x32, &mut x33, x31, x15, x17);
2435  *IndexConst(&mut out1).index_mut(0) = x18;
2436  *IndexConst(&mut out1).index_mut(1) = x20;
2437  *IndexConst(&mut out1).index_mut(2) = x22;
2438  *IndexConst(&mut out1).index_mut(3) = x24;
2439  *IndexConst(&mut out1).index_mut(4) = x26;
2440  *IndexConst(&mut out1).index_mut(5) = x28;
2441  *IndexConst(&mut out1).index_mut(6) = x30;
2442  *IndexConst(&mut out1).index_mut(7) = x32;
2443}
2444
2445/// The function fiat_p256_from_montgomery translates a field element out of the Montgomery domain.
2446///
2447/// Preconditions:
2448///   0 ≤ eval arg1 < m
2449/// Postconditions:
2450///   eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m
2451///   0 ≤ eval out1 < m
2452///
2453#[inline]
2454pub const fn fiat_p256_from_montgomery(mut out1: &mut fiat_p256_non_montgomery_domain_field_element, arg1: &fiat_p256_montgomery_domain_field_element) {
2455  let x1: u32 = (*IndexConst(arg1).index(0));
2456  let mut x2: u32 = 0;
2457  let mut x3: u32 = 0;
2458  fiat_p256_mulx_u32(&mut x2, &mut x3, x1, 0xffffffff);
2459  let mut x4: u32 = 0;
2460  let mut x5: u32 = 0;
2461  fiat_p256_mulx_u32(&mut x4, &mut x5, x1, 0xffffffff);
2462  let mut x6: u32 = 0;
2463  let mut x7: u32 = 0;
2464  fiat_p256_mulx_u32(&mut x6, &mut x7, x1, 0xffffffff);
2465  let mut x8: u32 = 0;
2466  let mut x9: u32 = 0;
2467  fiat_p256_mulx_u32(&mut x8, &mut x9, x1, 0xffffffff);
2468  let mut x10: u32 = 0;
2469  let mut x11: fiat_p256_u1 = 0;
2470  fiat_p256_addcarryx_u32(&mut x10, &mut x11, 0x0, x9, x6);
2471  let mut x12: u32 = 0;
2472  let mut x13: fiat_p256_u1 = 0;
2473  fiat_p256_addcarryx_u32(&mut x12, &mut x13, x11, x7, x4);
2474  let mut x14: u32 = 0;
2475  let mut x15: fiat_p256_u1 = 0;
2476  fiat_p256_addcarryx_u32(&mut x14, &mut x15, 0x0, x1, x8);
2477  let mut x16: u32 = 0;
2478  let mut x17: fiat_p256_u1 = 0;
2479  fiat_p256_addcarryx_u32(&mut x16, &mut x17, x15, (0x0 as u32), x10);
2480  let mut x18: u32 = 0;
2481  let mut x19: fiat_p256_u1 = 0;
2482  fiat_p256_addcarryx_u32(&mut x18, &mut x19, x17, (0x0 as u32), x12);
2483  let mut x20: u32 = 0;
2484  let mut x21: fiat_p256_u1 = 0;
2485  fiat_p256_addcarryx_u32(&mut x20, &mut x21, x19, (0x0 as u32), ((x13 as u32) + x5));
2486  let mut x22: u32 = 0;
2487  let mut x23: fiat_p256_u1 = 0;
2488  fiat_p256_addcarryx_u32(&mut x22, &mut x23, 0x0, x16, (*IndexConst(arg1).index(1)));
2489  let mut x24: u32 = 0;
2490  let mut x25: fiat_p256_u1 = 0;
2491  fiat_p256_addcarryx_u32(&mut x24, &mut x25, x23, x18, (0x0 as u32));
2492  let mut x26: u32 = 0;
2493  let mut x27: fiat_p256_u1 = 0;
2494  fiat_p256_addcarryx_u32(&mut x26, &mut x27, x25, x20, (0x0 as u32));
2495  let mut x28: u32 = 0;
2496  let mut x29: u32 = 0;
2497  fiat_p256_mulx_u32(&mut x28, &mut x29, x22, 0xffffffff);
2498  let mut x30: u32 = 0;
2499  let mut x31: u32 = 0;
2500  fiat_p256_mulx_u32(&mut x30, &mut x31, x22, 0xffffffff);
2501  let mut x32: u32 = 0;
2502  let mut x33: u32 = 0;
2503  fiat_p256_mulx_u32(&mut x32, &mut x33, x22, 0xffffffff);
2504  let mut x34: u32 = 0;
2505  let mut x35: u32 = 0;
2506  fiat_p256_mulx_u32(&mut x34, &mut x35, x22, 0xffffffff);
2507  let mut x36: u32 = 0;
2508  let mut x37: fiat_p256_u1 = 0;
2509  fiat_p256_addcarryx_u32(&mut x36, &mut x37, 0x0, x35, x32);
2510  let mut x38: u32 = 0;
2511  let mut x39: fiat_p256_u1 = 0;
2512  fiat_p256_addcarryx_u32(&mut x38, &mut x39, x37, x33, x30);
2513  let mut x40: u32 = 0;
2514  let mut x41: fiat_p256_u1 = 0;
2515  fiat_p256_addcarryx_u32(&mut x40, &mut x41, 0x0, x22, x34);
2516  let mut x42: u32 = 0;
2517  let mut x43: fiat_p256_u1 = 0;
2518  fiat_p256_addcarryx_u32(&mut x42, &mut x43, x41, x24, x36);
2519  let mut x44: u32 = 0;
2520  let mut x45: fiat_p256_u1 = 0;
2521  fiat_p256_addcarryx_u32(&mut x44, &mut x45, x43, x26, x38);
2522  let mut x46: u32 = 0;
2523  let mut x47: fiat_p256_u1 = 0;
2524  fiat_p256_addcarryx_u32(&mut x46, &mut x47, x45, ((x27 as u32) + (x21 as u32)), ((x39 as u32) + x31));
2525  let mut x48: u32 = 0;
2526  let mut x49: fiat_p256_u1 = 0;
2527  fiat_p256_addcarryx_u32(&mut x48, &mut x49, 0x0, x2, x22);
2528  let mut x50: u32 = 0;
2529  let mut x51: fiat_p256_u1 = 0;
2530  fiat_p256_addcarryx_u32(&mut x50, &mut x51, x49, x3, x28);
2531  let mut x52: u32 = 0;
2532  let mut x53: fiat_p256_u1 = 0;
2533  fiat_p256_addcarryx_u32(&mut x52, &mut x53, 0x0, x42, (*IndexConst(arg1).index(2)));
2534  let mut x54: u32 = 0;
2535  let mut x55: fiat_p256_u1 = 0;
2536  fiat_p256_addcarryx_u32(&mut x54, &mut x55, x53, x44, (0x0 as u32));
2537  let mut x56: u32 = 0;
2538  let mut x57: fiat_p256_u1 = 0;
2539  fiat_p256_addcarryx_u32(&mut x56, &mut x57, x55, x46, (0x0 as u32));
2540  let mut x58: u32 = 0;
2541  let mut x59: u32 = 0;
2542  fiat_p256_mulx_u32(&mut x58, &mut x59, x52, 0xffffffff);
2543  let mut x60: u32 = 0;
2544  let mut x61: u32 = 0;
2545  fiat_p256_mulx_u32(&mut x60, &mut x61, x52, 0xffffffff);
2546  let mut x62: u32 = 0;
2547  let mut x63: u32 = 0;
2548  fiat_p256_mulx_u32(&mut x62, &mut x63, x52, 0xffffffff);
2549  let mut x64: u32 = 0;
2550  let mut x65: u32 = 0;
2551  fiat_p256_mulx_u32(&mut x64, &mut x65, x52, 0xffffffff);
2552  let mut x66: u32 = 0;
2553  let mut x67: fiat_p256_u1 = 0;
2554  fiat_p256_addcarryx_u32(&mut x66, &mut x67, 0x0, x65, x62);
2555  let mut x68: u32 = 0;
2556  let mut x69: fiat_p256_u1 = 0;
2557  fiat_p256_addcarryx_u32(&mut x68, &mut x69, x67, x63, x60);
2558  let mut x70: u32 = 0;
2559  let mut x71: fiat_p256_u1 = 0;
2560  fiat_p256_addcarryx_u32(&mut x70, &mut x71, 0x0, x52, x64);
2561  let mut x72: u32 = 0;
2562  let mut x73: fiat_p256_u1 = 0;
2563  fiat_p256_addcarryx_u32(&mut x72, &mut x73, x71, x54, x66);
2564  let mut x74: u32 = 0;
2565  let mut x75: fiat_p256_u1 = 0;
2566  fiat_p256_addcarryx_u32(&mut x74, &mut x75, x73, x56, x68);
2567  let mut x76: u32 = 0;
2568  let mut x77: fiat_p256_u1 = 0;
2569  fiat_p256_addcarryx_u32(&mut x76, &mut x77, x75, ((x57 as u32) + (x47 as u32)), ((x69 as u32) + x61));
2570  let mut x78: u32 = 0;
2571  let mut x79: fiat_p256_u1 = 0;
2572  fiat_p256_addcarryx_u32(&mut x78, &mut x79, x77, x1, (0x0 as u32));
2573  let mut x80: u32 = 0;
2574  let mut x81: fiat_p256_u1 = 0;
2575  fiat_p256_addcarryx_u32(&mut x80, &mut x81, x79, x48, (0x0 as u32));
2576  let mut x82: u32 = 0;
2577  let mut x83: fiat_p256_u1 = 0;
2578  fiat_p256_addcarryx_u32(&mut x82, &mut x83, x81, x50, x52);
2579  let mut x84: u32 = 0;
2580  let mut x85: fiat_p256_u1 = 0;
2581  fiat_p256_addcarryx_u32(&mut x84, &mut x85, x83, ((x51 as u32) + x29), x58);
2582  let mut x86: u32 = 0;
2583  let mut x87: fiat_p256_u1 = 0;
2584  fiat_p256_addcarryx_u32(&mut x86, &mut x87, 0x0, x72, (*IndexConst(arg1).index(3)));
2585  let mut x88: u32 = 0;
2586  let mut x89: fiat_p256_u1 = 0;
2587  fiat_p256_addcarryx_u32(&mut x88, &mut x89, x87, x74, (0x0 as u32));
2588  let mut x90: u32 = 0;
2589  let mut x91: fiat_p256_u1 = 0;
2590  fiat_p256_addcarryx_u32(&mut x90, &mut x91, x89, x76, (0x0 as u32));
2591  let mut x92: u32 = 0;
2592  let mut x93: fiat_p256_u1 = 0;
2593  fiat_p256_addcarryx_u32(&mut x92, &mut x93, x91, x78, (0x0 as u32));
2594  let mut x94: u32 = 0;
2595  let mut x95: fiat_p256_u1 = 0;
2596  fiat_p256_addcarryx_u32(&mut x94, &mut x95, x93, x80, (0x0 as u32));
2597  let mut x96: u32 = 0;
2598  let mut x97: fiat_p256_u1 = 0;
2599  fiat_p256_addcarryx_u32(&mut x96, &mut x97, x95, x82, (0x0 as u32));
2600  let mut x98: u32 = 0;
2601  let mut x99: fiat_p256_u1 = 0;
2602  fiat_p256_addcarryx_u32(&mut x98, &mut x99, x97, x84, (0x0 as u32));
2603  let mut x100: u32 = 0;
2604  let mut x101: fiat_p256_u1 = 0;
2605  fiat_p256_addcarryx_u32(&mut x100, &mut x101, x99, ((x85 as u32) + x59), (0x0 as u32));
2606  let mut x102: u32 = 0;
2607  let mut x103: u32 = 0;
2608  fiat_p256_mulx_u32(&mut x102, &mut x103, x86, 0xffffffff);
2609  let mut x104: u32 = 0;
2610  let mut x105: u32 = 0;
2611  fiat_p256_mulx_u32(&mut x104, &mut x105, x86, 0xffffffff);
2612  let mut x106: u32 = 0;
2613  let mut x107: u32 = 0;
2614  fiat_p256_mulx_u32(&mut x106, &mut x107, x86, 0xffffffff);
2615  let mut x108: u32 = 0;
2616  let mut x109: u32 = 0;
2617  fiat_p256_mulx_u32(&mut x108, &mut x109, x86, 0xffffffff);
2618  let mut x110: u32 = 0;
2619  let mut x111: fiat_p256_u1 = 0;
2620  fiat_p256_addcarryx_u32(&mut x110, &mut x111, 0x0, x109, x106);
2621  let mut x112: u32 = 0;
2622  let mut x113: fiat_p256_u1 = 0;
2623  fiat_p256_addcarryx_u32(&mut x112, &mut x113, x111, x107, x104);
2624  let mut x114: u32 = 0;
2625  let mut x115: fiat_p256_u1 = 0;
2626  fiat_p256_addcarryx_u32(&mut x114, &mut x115, 0x0, x86, x108);
2627  let mut x116: u32 = 0;
2628  let mut x117: fiat_p256_u1 = 0;
2629  fiat_p256_addcarryx_u32(&mut x116, &mut x117, x115, x88, x110);
2630  let mut x118: u32 = 0;
2631  let mut x119: fiat_p256_u1 = 0;
2632  fiat_p256_addcarryx_u32(&mut x118, &mut x119, x117, x90, x112);
2633  let mut x120: u32 = 0;
2634  let mut x121: fiat_p256_u1 = 0;
2635  fiat_p256_addcarryx_u32(&mut x120, &mut x121, x119, x92, ((x113 as u32) + x105));
2636  let mut x122: u32 = 0;
2637  let mut x123: fiat_p256_u1 = 0;
2638  fiat_p256_addcarryx_u32(&mut x122, &mut x123, x121, x94, (0x0 as u32));
2639  let mut x124: u32 = 0;
2640  let mut x125: fiat_p256_u1 = 0;
2641  fiat_p256_addcarryx_u32(&mut x124, &mut x125, x123, x96, (0x0 as u32));
2642  let mut x126: u32 = 0;
2643  let mut x127: fiat_p256_u1 = 0;
2644  fiat_p256_addcarryx_u32(&mut x126, &mut x127, x125, x98, x86);
2645  let mut x128: u32 = 0;
2646  let mut x129: fiat_p256_u1 = 0;
2647  fiat_p256_addcarryx_u32(&mut x128, &mut x129, x127, x100, x102);
2648  let mut x130: u32 = 0;
2649  let mut x131: fiat_p256_u1 = 0;
2650  fiat_p256_addcarryx_u32(&mut x130, &mut x131, x129, (x101 as u32), x103);
2651  let mut x132: u32 = 0;
2652  let mut x133: fiat_p256_u1 = 0;
2653  fiat_p256_addcarryx_u32(&mut x132, &mut x133, 0x0, x116, (*IndexConst(arg1).index(4)));
2654  let mut x134: u32 = 0;
2655  let mut x135: fiat_p256_u1 = 0;
2656  fiat_p256_addcarryx_u32(&mut x134, &mut x135, x133, x118, (0x0 as u32));
2657  let mut x136: u32 = 0;
2658  let mut x137: fiat_p256_u1 = 0;
2659  fiat_p256_addcarryx_u32(&mut x136, &mut x137, x135, x120, (0x0 as u32));
2660  let mut x138: u32 = 0;
2661  let mut x139: fiat_p256_u1 = 0;
2662  fiat_p256_addcarryx_u32(&mut x138, &mut x139, x137, x122, (0x0 as u32));
2663  let mut x140: u32 = 0;
2664  let mut x141: fiat_p256_u1 = 0;
2665  fiat_p256_addcarryx_u32(&mut x140, &mut x141, x139, x124, (0x0 as u32));
2666  let mut x142: u32 = 0;
2667  let mut x143: fiat_p256_u1 = 0;
2668  fiat_p256_addcarryx_u32(&mut x142, &mut x143, x141, x126, (0x0 as u32));
2669  let mut x144: u32 = 0;
2670  let mut x145: fiat_p256_u1 = 0;
2671  fiat_p256_addcarryx_u32(&mut x144, &mut x145, x143, x128, (0x0 as u32));
2672  let mut x146: u32 = 0;
2673  let mut x147: fiat_p256_u1 = 0;
2674  fiat_p256_addcarryx_u32(&mut x146, &mut x147, x145, x130, (0x0 as u32));
2675  let mut x148: u32 = 0;
2676  let mut x149: u32 = 0;
2677  fiat_p256_mulx_u32(&mut x148, &mut x149, x132, 0xffffffff);
2678  let mut x150: u32 = 0;
2679  let mut x151: u32 = 0;
2680  fiat_p256_mulx_u32(&mut x150, &mut x151, x132, 0xffffffff);
2681  let mut x152: u32 = 0;
2682  let mut x153: u32 = 0;
2683  fiat_p256_mulx_u32(&mut x152, &mut x153, x132, 0xffffffff);
2684  let mut x154: u32 = 0;
2685  let mut x155: u32 = 0;
2686  fiat_p256_mulx_u32(&mut x154, &mut x155, x132, 0xffffffff);
2687  let mut x156: u32 = 0;
2688  let mut x157: fiat_p256_u1 = 0;
2689  fiat_p256_addcarryx_u32(&mut x156, &mut x157, 0x0, x155, x152);
2690  let mut x158: u32 = 0;
2691  let mut x159: fiat_p256_u1 = 0;
2692  fiat_p256_addcarryx_u32(&mut x158, &mut x159, x157, x153, x150);
2693  let mut x160: u32 = 0;
2694  let mut x161: fiat_p256_u1 = 0;
2695  fiat_p256_addcarryx_u32(&mut x160, &mut x161, 0x0, x132, x154);
2696  let mut x162: u32 = 0;
2697  let mut x163: fiat_p256_u1 = 0;
2698  fiat_p256_addcarryx_u32(&mut x162, &mut x163, x161, x134, x156);
2699  let mut x164: u32 = 0;
2700  let mut x165: fiat_p256_u1 = 0;
2701  fiat_p256_addcarryx_u32(&mut x164, &mut x165, x163, x136, x158);
2702  let mut x166: u32 = 0;
2703  let mut x167: fiat_p256_u1 = 0;
2704  fiat_p256_addcarryx_u32(&mut x166, &mut x167, x165, x138, ((x159 as u32) + x151));
2705  let mut x168: u32 = 0;
2706  let mut x169: fiat_p256_u1 = 0;
2707  fiat_p256_addcarryx_u32(&mut x168, &mut x169, x167, x140, (0x0 as u32));
2708  let mut x170: u32 = 0;
2709  let mut x171: fiat_p256_u1 = 0;
2710  fiat_p256_addcarryx_u32(&mut x170, &mut x171, x169, x142, (0x0 as u32));
2711  let mut x172: u32 = 0;
2712  let mut x173: fiat_p256_u1 = 0;
2713  fiat_p256_addcarryx_u32(&mut x172, &mut x173, x171, x144, x132);
2714  let mut x174: u32 = 0;
2715  let mut x175: fiat_p256_u1 = 0;
2716  fiat_p256_addcarryx_u32(&mut x174, &mut x175, x173, x146, x148);
2717  let mut x176: u32 = 0;
2718  let mut x177: fiat_p256_u1 = 0;
2719  fiat_p256_addcarryx_u32(&mut x176, &mut x177, x175, ((x147 as u32) + (x131 as u32)), x149);
2720  let mut x178: u32 = 0;
2721  let mut x179: fiat_p256_u1 = 0;
2722  fiat_p256_addcarryx_u32(&mut x178, &mut x179, 0x0, x162, (*IndexConst(arg1).index(5)));
2723  let mut x180: u32 = 0;
2724  let mut x181: fiat_p256_u1 = 0;
2725  fiat_p256_addcarryx_u32(&mut x180, &mut x181, x179, x164, (0x0 as u32));
2726  let mut x182: u32 = 0;
2727  let mut x183: fiat_p256_u1 = 0;
2728  fiat_p256_addcarryx_u32(&mut x182, &mut x183, x181, x166, (0x0 as u32));
2729  let mut x184: u32 = 0;
2730  let mut x185: fiat_p256_u1 = 0;
2731  fiat_p256_addcarryx_u32(&mut x184, &mut x185, x183, x168, (0x0 as u32));
2732  let mut x186: u32 = 0;
2733  let mut x187: fiat_p256_u1 = 0;
2734  fiat_p256_addcarryx_u32(&mut x186, &mut x187, x185, x170, (0x0 as u32));
2735  let mut x188: u32 = 0;
2736  let mut x189: fiat_p256_u1 = 0;
2737  fiat_p256_addcarryx_u32(&mut x188, &mut x189, x187, x172, (0x0 as u32));
2738  let mut x190: u32 = 0;
2739  let mut x191: fiat_p256_u1 = 0;
2740  fiat_p256_addcarryx_u32(&mut x190, &mut x191, x189, x174, (0x0 as u32));
2741  let mut x192: u32 = 0;
2742  let mut x193: fiat_p256_u1 = 0;
2743  fiat_p256_addcarryx_u32(&mut x192, &mut x193, x191, x176, (0x0 as u32));
2744  let mut x194: u32 = 0;
2745  let mut x195: u32 = 0;
2746  fiat_p256_mulx_u32(&mut x194, &mut x195, x178, 0xffffffff);
2747  let mut x196: u32 = 0;
2748  let mut x197: u32 = 0;
2749  fiat_p256_mulx_u32(&mut x196, &mut x197, x178, 0xffffffff);
2750  let mut x198: u32 = 0;
2751  let mut x199: u32 = 0;
2752  fiat_p256_mulx_u32(&mut x198, &mut x199, x178, 0xffffffff);
2753  let mut x200: u32 = 0;
2754  let mut x201: u32 = 0;
2755  fiat_p256_mulx_u32(&mut x200, &mut x201, x178, 0xffffffff);
2756  let mut x202: u32 = 0;
2757  let mut x203: fiat_p256_u1 = 0;
2758  fiat_p256_addcarryx_u32(&mut x202, &mut x203, 0x0, x201, x198);
2759  let mut x204: u32 = 0;
2760  let mut x205: fiat_p256_u1 = 0;
2761  fiat_p256_addcarryx_u32(&mut x204, &mut x205, x203, x199, x196);
2762  let mut x206: u32 = 0;
2763  let mut x207: fiat_p256_u1 = 0;
2764  fiat_p256_addcarryx_u32(&mut x206, &mut x207, 0x0, x178, x200);
2765  let mut x208: u32 = 0;
2766  let mut x209: fiat_p256_u1 = 0;
2767  fiat_p256_addcarryx_u32(&mut x208, &mut x209, x207, x180, x202);
2768  let mut x210: u32 = 0;
2769  let mut x211: fiat_p256_u1 = 0;
2770  fiat_p256_addcarryx_u32(&mut x210, &mut x211, x209, x182, x204);
2771  let mut x212: u32 = 0;
2772  let mut x213: fiat_p256_u1 = 0;
2773  fiat_p256_addcarryx_u32(&mut x212, &mut x213, x211, x184, ((x205 as u32) + x197));
2774  let mut x214: u32 = 0;
2775  let mut x215: fiat_p256_u1 = 0;
2776  fiat_p256_addcarryx_u32(&mut x214, &mut x215, x213, x186, (0x0 as u32));
2777  let mut x216: u32 = 0;
2778  let mut x217: fiat_p256_u1 = 0;
2779  fiat_p256_addcarryx_u32(&mut x216, &mut x217, x215, x188, (0x0 as u32));
2780  let mut x218: u32 = 0;
2781  let mut x219: fiat_p256_u1 = 0;
2782  fiat_p256_addcarryx_u32(&mut x218, &mut x219, x217, x190, x178);
2783  let mut x220: u32 = 0;
2784  let mut x221: fiat_p256_u1 = 0;
2785  fiat_p256_addcarryx_u32(&mut x220, &mut x221, x219, x192, x194);
2786  let mut x222: u32 = 0;
2787  let mut x223: fiat_p256_u1 = 0;
2788  fiat_p256_addcarryx_u32(&mut x222, &mut x223, x221, ((x193 as u32) + (x177 as u32)), x195);
2789  let mut x224: u32 = 0;
2790  let mut x225: fiat_p256_u1 = 0;
2791  fiat_p256_addcarryx_u32(&mut x224, &mut x225, 0x0, x208, (*IndexConst(arg1).index(6)));
2792  let mut x226: u32 = 0;
2793  let mut x227: fiat_p256_u1 = 0;
2794  fiat_p256_addcarryx_u32(&mut x226, &mut x227, x225, x210, (0x0 as u32));
2795  let mut x228: u32 = 0;
2796  let mut x229: fiat_p256_u1 = 0;
2797  fiat_p256_addcarryx_u32(&mut x228, &mut x229, x227, x212, (0x0 as u32));
2798  let mut x230: u32 = 0;
2799  let mut x231: fiat_p256_u1 = 0;
2800  fiat_p256_addcarryx_u32(&mut x230, &mut x231, x229, x214, (0x0 as u32));
2801  let mut x232: u32 = 0;
2802  let mut x233: fiat_p256_u1 = 0;
2803  fiat_p256_addcarryx_u32(&mut x232, &mut x233, x231, x216, (0x0 as u32));
2804  let mut x234: u32 = 0;
2805  let mut x235: fiat_p256_u1 = 0;
2806  fiat_p256_addcarryx_u32(&mut x234, &mut x235, x233, x218, (0x0 as u32));
2807  let mut x236: u32 = 0;
2808  let mut x237: fiat_p256_u1 = 0;
2809  fiat_p256_addcarryx_u32(&mut x236, &mut x237, x235, x220, (0x0 as u32));
2810  let mut x238: u32 = 0;
2811  let mut x239: fiat_p256_u1 = 0;
2812  fiat_p256_addcarryx_u32(&mut x238, &mut x239, x237, x222, (0x0 as u32));
2813  let mut x240: u32 = 0;
2814  let mut x241: u32 = 0;
2815  fiat_p256_mulx_u32(&mut x240, &mut x241, x224, 0xffffffff);
2816  let mut x242: u32 = 0;
2817  let mut x243: u32 = 0;
2818  fiat_p256_mulx_u32(&mut x242, &mut x243, x224, 0xffffffff);
2819  let mut x244: u32 = 0;
2820  let mut x245: u32 = 0;
2821  fiat_p256_mulx_u32(&mut x244, &mut x245, x224, 0xffffffff);
2822  let mut x246: u32 = 0;
2823  let mut x247: u32 = 0;
2824  fiat_p256_mulx_u32(&mut x246, &mut x247, x224, 0xffffffff);
2825  let mut x248: u32 = 0;
2826  let mut x249: fiat_p256_u1 = 0;
2827  fiat_p256_addcarryx_u32(&mut x248, &mut x249, 0x0, x247, x244);
2828  let mut x250: u32 = 0;
2829  let mut x251: fiat_p256_u1 = 0;
2830  fiat_p256_addcarryx_u32(&mut x250, &mut x251, x249, x245, x242);
2831  let mut x252: u32 = 0;
2832  let mut x253: fiat_p256_u1 = 0;
2833  fiat_p256_addcarryx_u32(&mut x252, &mut x253, 0x0, x224, x246);
2834  let mut x254: u32 = 0;
2835  let mut x255: fiat_p256_u1 = 0;
2836  fiat_p256_addcarryx_u32(&mut x254, &mut x255, x253, x226, x248);
2837  let mut x256: u32 = 0;
2838  let mut x257: fiat_p256_u1 = 0;
2839  fiat_p256_addcarryx_u32(&mut x256, &mut x257, x255, x228, x250);
2840  let mut x258: u32 = 0;
2841  let mut x259: fiat_p256_u1 = 0;
2842  fiat_p256_addcarryx_u32(&mut x258, &mut x259, x257, x230, ((x251 as u32) + x243));
2843  let mut x260: u32 = 0;
2844  let mut x261: fiat_p256_u1 = 0;
2845  fiat_p256_addcarryx_u32(&mut x260, &mut x261, x259, x232, (0x0 as u32));
2846  let mut x262: u32 = 0;
2847  let mut x263: fiat_p256_u1 = 0;
2848  fiat_p256_addcarryx_u32(&mut x262, &mut x263, x261, x234, (0x0 as u32));
2849  let mut x264: u32 = 0;
2850  let mut x265: fiat_p256_u1 = 0;
2851  fiat_p256_addcarryx_u32(&mut x264, &mut x265, x263, x236, x224);
2852  let mut x266: u32 = 0;
2853  let mut x267: fiat_p256_u1 = 0;
2854  fiat_p256_addcarryx_u32(&mut x266, &mut x267, x265, x238, x240);
2855  let mut x268: u32 = 0;
2856  let mut x269: fiat_p256_u1 = 0;
2857  fiat_p256_addcarryx_u32(&mut x268, &mut x269, x267, ((x239 as u32) + (x223 as u32)), x241);
2858  let mut x270: u32 = 0;
2859  let mut x271: fiat_p256_u1 = 0;
2860  fiat_p256_addcarryx_u32(&mut x270, &mut x271, 0x0, x254, (*IndexConst(arg1).index(7)));
2861  let mut x272: u32 = 0;
2862  let mut x273: fiat_p256_u1 = 0;
2863  fiat_p256_addcarryx_u32(&mut x272, &mut x273, x271, x256, (0x0 as u32));
2864  let mut x274: u32 = 0;
2865  let mut x275: fiat_p256_u1 = 0;
2866  fiat_p256_addcarryx_u32(&mut x274, &mut x275, x273, x258, (0x0 as u32));
2867  let mut x276: u32 = 0;
2868  let mut x277: fiat_p256_u1 = 0;
2869  fiat_p256_addcarryx_u32(&mut x276, &mut x277, x275, x260, (0x0 as u32));
2870  let mut x278: u32 = 0;
2871  let mut x279: fiat_p256_u1 = 0;
2872  fiat_p256_addcarryx_u32(&mut x278, &mut x279, x277, x262, (0x0 as u32));
2873  let mut x280: u32 = 0;
2874  let mut x281: fiat_p256_u1 = 0;
2875  fiat_p256_addcarryx_u32(&mut x280, &mut x281, x279, x264, (0x0 as u32));
2876  let mut x282: u32 = 0;
2877  let mut x283: fiat_p256_u1 = 0;
2878  fiat_p256_addcarryx_u32(&mut x282, &mut x283, x281, x266, (0x0 as u32));
2879  let mut x284: u32 = 0;
2880  let mut x285: fiat_p256_u1 = 0;
2881  fiat_p256_addcarryx_u32(&mut x284, &mut x285, x283, x268, (0x0 as u32));
2882  let mut x286: u32 = 0;
2883  let mut x287: u32 = 0;
2884  fiat_p256_mulx_u32(&mut x286, &mut x287, x270, 0xffffffff);
2885  let mut x288: u32 = 0;
2886  let mut x289: u32 = 0;
2887  fiat_p256_mulx_u32(&mut x288, &mut x289, x270, 0xffffffff);
2888  let mut x290: u32 = 0;
2889  let mut x291: u32 = 0;
2890  fiat_p256_mulx_u32(&mut x290, &mut x291, x270, 0xffffffff);
2891  let mut x292: u32 = 0;
2892  let mut x293: u32 = 0;
2893  fiat_p256_mulx_u32(&mut x292, &mut x293, x270, 0xffffffff);
2894  let mut x294: u32 = 0;
2895  let mut x295: fiat_p256_u1 = 0;
2896  fiat_p256_addcarryx_u32(&mut x294, &mut x295, 0x0, x293, x290);
2897  let mut x296: u32 = 0;
2898  let mut x297: fiat_p256_u1 = 0;
2899  fiat_p256_addcarryx_u32(&mut x296, &mut x297, x295, x291, x288);
2900  let mut x298: u32 = 0;
2901  let mut x299: fiat_p256_u1 = 0;
2902  fiat_p256_addcarryx_u32(&mut x298, &mut x299, 0x0, x270, x292);
2903  let mut x300: u32 = 0;
2904  let mut x301: fiat_p256_u1 = 0;
2905  fiat_p256_addcarryx_u32(&mut x300, &mut x301, x299, x272, x294);
2906  let mut x302: u32 = 0;
2907  let mut x303: fiat_p256_u1 = 0;
2908  fiat_p256_addcarryx_u32(&mut x302, &mut x303, x301, x274, x296);
2909  let mut x304: u32 = 0;
2910  let mut x305: fiat_p256_u1 = 0;
2911  fiat_p256_addcarryx_u32(&mut x304, &mut x305, x303, x276, ((x297 as u32) + x289));
2912  let mut x306: u32 = 0;
2913  let mut x307: fiat_p256_u1 = 0;
2914  fiat_p256_addcarryx_u32(&mut x306, &mut x307, x305, x278, (0x0 as u32));
2915  let mut x308: u32 = 0;
2916  let mut x309: fiat_p256_u1 = 0;
2917  fiat_p256_addcarryx_u32(&mut x308, &mut x309, x307, x280, (0x0 as u32));
2918  let mut x310: u32 = 0;
2919  let mut x311: fiat_p256_u1 = 0;
2920  fiat_p256_addcarryx_u32(&mut x310, &mut x311, x309, x282, x270);
2921  let mut x312: u32 = 0;
2922  let mut x313: fiat_p256_u1 = 0;
2923  fiat_p256_addcarryx_u32(&mut x312, &mut x313, x311, x284, x286);
2924  let mut x314: u32 = 0;
2925  let mut x315: fiat_p256_u1 = 0;
2926  fiat_p256_addcarryx_u32(&mut x314, &mut x315, x313, ((x285 as u32) + (x269 as u32)), x287);
2927  let mut x316: u32 = 0;
2928  let mut x317: fiat_p256_u1 = 0;
2929  fiat_p256_subborrowx_u32(&mut x316, &mut x317, 0x0, x300, 0xffffffff);
2930  let mut x318: u32 = 0;
2931  let mut x319: fiat_p256_u1 = 0;
2932  fiat_p256_subborrowx_u32(&mut x318, &mut x319, x317, x302, 0xffffffff);
2933  let mut x320: u32 = 0;
2934  let mut x321: fiat_p256_u1 = 0;
2935  fiat_p256_subborrowx_u32(&mut x320, &mut x321, x319, x304, 0xffffffff);
2936  let mut x322: u32 = 0;
2937  let mut x323: fiat_p256_u1 = 0;
2938  fiat_p256_subborrowx_u32(&mut x322, &mut x323, x321, x306, (0x0 as u32));
2939  let mut x324: u32 = 0;
2940  let mut x325: fiat_p256_u1 = 0;
2941  fiat_p256_subborrowx_u32(&mut x324, &mut x325, x323, x308, (0x0 as u32));
2942  let mut x326: u32 = 0;
2943  let mut x327: fiat_p256_u1 = 0;
2944  fiat_p256_subborrowx_u32(&mut x326, &mut x327, x325, x310, (0x0 as u32));
2945  let mut x328: u32 = 0;
2946  let mut x329: fiat_p256_u1 = 0;
2947  fiat_p256_subborrowx_u32(&mut x328, &mut x329, x327, x312, (0x1 as u32));
2948  let mut x330: u32 = 0;
2949  let mut x331: fiat_p256_u1 = 0;
2950  fiat_p256_subborrowx_u32(&mut x330, &mut x331, x329, x314, 0xffffffff);
2951  let mut x332: u32 = 0;
2952  let mut x333: fiat_p256_u1 = 0;
2953  fiat_p256_subborrowx_u32(&mut x332, &mut x333, x331, (x315 as u32), (0x0 as u32));
2954  let mut x334: u32 = 0;
2955  fiat_p256_cmovznz_u32(&mut x334, x333, x316, x300);
2956  let mut x335: u32 = 0;
2957  fiat_p256_cmovznz_u32(&mut x335, x333, x318, x302);
2958  let mut x336: u32 = 0;
2959  fiat_p256_cmovznz_u32(&mut x336, x333, x320, x304);
2960  let mut x337: u32 = 0;
2961  fiat_p256_cmovznz_u32(&mut x337, x333, x322, x306);
2962  let mut x338: u32 = 0;
2963  fiat_p256_cmovznz_u32(&mut x338, x333, x324, x308);
2964  let mut x339: u32 = 0;
2965  fiat_p256_cmovznz_u32(&mut x339, x333, x326, x310);
2966  let mut x340: u32 = 0;
2967  fiat_p256_cmovznz_u32(&mut x340, x333, x328, x312);
2968  let mut x341: u32 = 0;
2969  fiat_p256_cmovznz_u32(&mut x341, x333, x330, x314);
2970  *IndexConst(&mut out1).index_mut(0) = x334;
2971  *IndexConst(&mut out1).index_mut(1) = x335;
2972  *IndexConst(&mut out1).index_mut(2) = x336;
2973  *IndexConst(&mut out1).index_mut(3) = x337;
2974  *IndexConst(&mut out1).index_mut(4) = x338;
2975  *IndexConst(&mut out1).index_mut(5) = x339;
2976  *IndexConst(&mut out1).index_mut(6) = x340;
2977  *IndexConst(&mut out1).index_mut(7) = x341;
2978}
2979
2980/// The function fiat_p256_to_montgomery translates a field element into the Montgomery domain.
2981///
2982/// Preconditions:
2983///   0 ≤ eval arg1 < m
2984/// Postconditions:
2985///   eval (from_montgomery out1) mod m = eval arg1 mod m
2986///   0 ≤ eval out1 < m
2987///
2988#[inline]
2989pub const fn fiat_p256_to_montgomery(mut out1: &mut fiat_p256_montgomery_domain_field_element, arg1: &fiat_p256_non_montgomery_domain_field_element) {
2990  let x1: u32 = (*IndexConst(arg1).index(1));
2991  let x2: u32 = (*IndexConst(arg1).index(2));
2992  let x3: u32 = (*IndexConst(arg1).index(3));
2993  let x4: u32 = (*IndexConst(arg1).index(4));
2994  let x5: u32 = (*IndexConst(arg1).index(5));
2995  let x6: u32 = (*IndexConst(arg1).index(6));
2996  let x7: u32 = (*IndexConst(arg1).index(7));
2997  let x8: u32 = (*IndexConst(arg1).index(0));
2998  let mut x9: u32 = 0;
2999  let mut x10: u32 = 0;
3000  fiat_p256_mulx_u32(&mut x9, &mut x10, x8, 0x4);
3001  let mut x11: u32 = 0;
3002  let mut x12: u32 = 0;
3003  fiat_p256_mulx_u32(&mut x11, &mut x12, x8, 0xfffffffd);
3004  let mut x13: u32 = 0;
3005  let mut x14: u32 = 0;
3006  fiat_p256_mulx_u32(&mut x13, &mut x14, x8, 0xffffffff);
3007  let mut x15: u32 = 0;
3008  let mut x16: u32 = 0;
3009  fiat_p256_mulx_u32(&mut x15, &mut x16, x8, 0xfffffffe);
3010  let mut x17: u32 = 0;
3011  let mut x18: u32 = 0;
3012  fiat_p256_mulx_u32(&mut x17, &mut x18, x8, 0xfffffffb);
3013  let mut x19: u32 = 0;
3014  let mut x20: u32 = 0;
3015  fiat_p256_mulx_u32(&mut x19, &mut x20, x8, 0xffffffff);
3016  let mut x21: u32 = 0;
3017  let mut x22: u32 = 0;
3018  fiat_p256_mulx_u32(&mut x21, &mut x22, x8, 0x3);
3019  let mut x23: u32 = 0;
3020  let mut x24: fiat_p256_u1 = 0;
3021  fiat_p256_addcarryx_u32(&mut x23, &mut x24, 0x0, x20, x17);
3022  let mut x25: u32 = 0;
3023  let mut x26: fiat_p256_u1 = 0;
3024  fiat_p256_addcarryx_u32(&mut x25, &mut x26, x24, x18, x15);
3025  let mut x27: u32 = 0;
3026  let mut x28: fiat_p256_u1 = 0;
3027  fiat_p256_addcarryx_u32(&mut x27, &mut x28, x26, x16, x13);
3028  let mut x29: u32 = 0;
3029  let mut x30: fiat_p256_u1 = 0;
3030  fiat_p256_addcarryx_u32(&mut x29, &mut x30, x28, x14, x11);
3031  let mut x31: u32 = 0;
3032  let mut x32: fiat_p256_u1 = 0;
3033  fiat_p256_addcarryx_u32(&mut x31, &mut x32, x30, x12, x9);
3034  let mut x33: u32 = 0;
3035  let mut x34: u32 = 0;
3036  fiat_p256_mulx_u32(&mut x33, &mut x34, x21, 0xffffffff);
3037  let mut x35: u32 = 0;
3038  let mut x36: u32 = 0;
3039  fiat_p256_mulx_u32(&mut x35, &mut x36, x21, 0xffffffff);
3040  let mut x37: u32 = 0;
3041  let mut x38: u32 = 0;
3042  fiat_p256_mulx_u32(&mut x37, &mut x38, x21, 0xffffffff);
3043  let mut x39: u32 = 0;
3044  let mut x40: u32 = 0;
3045  fiat_p256_mulx_u32(&mut x39, &mut x40, x21, 0xffffffff);
3046  let mut x41: u32 = 0;
3047  let mut x42: fiat_p256_u1 = 0;
3048  fiat_p256_addcarryx_u32(&mut x41, &mut x42, 0x0, x40, x37);
3049  let mut x43: u32 = 0;
3050  let mut x44: fiat_p256_u1 = 0;
3051  fiat_p256_addcarryx_u32(&mut x43, &mut x44, x42, x38, x35);
3052  let mut x45: u32 = 0;
3053  let mut x46: fiat_p256_u1 = 0;
3054  fiat_p256_addcarryx_u32(&mut x45, &mut x46, 0x0, x21, x39);
3055  let mut x47: u32 = 0;
3056  let mut x48: fiat_p256_u1 = 0;
3057  fiat_p256_addcarryx_u32(&mut x47, &mut x48, x46, x22, x41);
3058  let mut x49: u32 = 0;
3059  let mut x50: fiat_p256_u1 = 0;
3060  fiat_p256_addcarryx_u32(&mut x49, &mut x50, x48, x19, x43);
3061  let mut x51: u32 = 0;
3062  let mut x52: fiat_p256_u1 = 0;
3063  fiat_p256_addcarryx_u32(&mut x51, &mut x52, x50, x23, ((x44 as u32) + x36));
3064  let mut x53: u32 = 0;
3065  let mut x54: fiat_p256_u1 = 0;
3066  fiat_p256_addcarryx_u32(&mut x53, &mut x54, x52, x25, (0x0 as u32));
3067  let mut x55: u32 = 0;
3068  let mut x56: fiat_p256_u1 = 0;
3069  fiat_p256_addcarryx_u32(&mut x55, &mut x56, x54, x27, (0x0 as u32));
3070  let mut x57: u32 = 0;
3071  let mut x58: fiat_p256_u1 = 0;
3072  fiat_p256_addcarryx_u32(&mut x57, &mut x58, x56, x29, x21);
3073  let mut x59: u32 = 0;
3074  let mut x60: fiat_p256_u1 = 0;
3075  fiat_p256_addcarryx_u32(&mut x59, &mut x60, x58, x31, x33);
3076  let mut x61: u32 = 0;
3077  let mut x62: fiat_p256_u1 = 0;
3078  fiat_p256_addcarryx_u32(&mut x61, &mut x62, x60, ((x32 as u32) + x10), x34);
3079  let mut x63: u32 = 0;
3080  let mut x64: u32 = 0;
3081  fiat_p256_mulx_u32(&mut x63, &mut x64, x1, 0x4);
3082  let mut x65: u32 = 0;
3083  let mut x66: u32 = 0;
3084  fiat_p256_mulx_u32(&mut x65, &mut x66, x1, 0xfffffffd);
3085  let mut x67: u32 = 0;
3086  let mut x68: u32 = 0;
3087  fiat_p256_mulx_u32(&mut x67, &mut x68, x1, 0xffffffff);
3088  let mut x69: u32 = 0;
3089  let mut x70: u32 = 0;
3090  fiat_p256_mulx_u32(&mut x69, &mut x70, x1, 0xfffffffe);
3091  let mut x71: u32 = 0;
3092  let mut x72: u32 = 0;
3093  fiat_p256_mulx_u32(&mut x71, &mut x72, x1, 0xfffffffb);
3094  let mut x73: u32 = 0;
3095  let mut x74: u32 = 0;
3096  fiat_p256_mulx_u32(&mut x73, &mut x74, x1, 0xffffffff);
3097  let mut x75: u32 = 0;
3098  let mut x76: u32 = 0;
3099  fiat_p256_mulx_u32(&mut x75, &mut x76, x1, 0x3);
3100  let mut x77: u32 = 0;
3101  let mut x78: fiat_p256_u1 = 0;
3102  fiat_p256_addcarryx_u32(&mut x77, &mut x78, 0x0, x74, x71);
3103  let mut x79: u32 = 0;
3104  let mut x80: fiat_p256_u1 = 0;
3105  fiat_p256_addcarryx_u32(&mut x79, &mut x80, x78, x72, x69);
3106  let mut x81: u32 = 0;
3107  let mut x82: fiat_p256_u1 = 0;
3108  fiat_p256_addcarryx_u32(&mut x81, &mut x82, x80, x70, x67);
3109  let mut x83: u32 = 0;
3110  let mut x84: fiat_p256_u1 = 0;
3111  fiat_p256_addcarryx_u32(&mut x83, &mut x84, x82, x68, x65);
3112  let mut x85: u32 = 0;
3113  let mut x86: fiat_p256_u1 = 0;
3114  fiat_p256_addcarryx_u32(&mut x85, &mut x86, x84, x66, x63);
3115  let mut x87: u32 = 0;
3116  let mut x88: fiat_p256_u1 = 0;
3117  fiat_p256_addcarryx_u32(&mut x87, &mut x88, 0x0, x47, x75);
3118  let mut x89: u32 = 0;
3119  let mut x90: fiat_p256_u1 = 0;
3120  fiat_p256_addcarryx_u32(&mut x89, &mut x90, x88, x49, x76);
3121  let mut x91: u32 = 0;
3122  let mut x92: fiat_p256_u1 = 0;
3123  fiat_p256_addcarryx_u32(&mut x91, &mut x92, x90, x51, x73);
3124  let mut x93: u32 = 0;
3125  let mut x94: fiat_p256_u1 = 0;
3126  fiat_p256_addcarryx_u32(&mut x93, &mut x94, x92, x53, x77);
3127  let mut x95: u32 = 0;
3128  let mut x96: fiat_p256_u1 = 0;
3129  fiat_p256_addcarryx_u32(&mut x95, &mut x96, x94, x55, x79);
3130  let mut x97: u32 = 0;
3131  let mut x98: fiat_p256_u1 = 0;
3132  fiat_p256_addcarryx_u32(&mut x97, &mut x98, x96, x57, x81);
3133  let mut x99: u32 = 0;
3134  let mut x100: fiat_p256_u1 = 0;
3135  fiat_p256_addcarryx_u32(&mut x99, &mut x100, x98, x59, x83);
3136  let mut x101: u32 = 0;
3137  let mut x102: fiat_p256_u1 = 0;
3138  fiat_p256_addcarryx_u32(&mut x101, &mut x102, x100, x61, x85);
3139  let mut x103: u32 = 0;
3140  let mut x104: u32 = 0;
3141  fiat_p256_mulx_u32(&mut x103, &mut x104, x87, 0xffffffff);
3142  let mut x105: u32 = 0;
3143  let mut x106: u32 = 0;
3144  fiat_p256_mulx_u32(&mut x105, &mut x106, x87, 0xffffffff);
3145  let mut x107: u32 = 0;
3146  let mut x108: u32 = 0;
3147  fiat_p256_mulx_u32(&mut x107, &mut x108, x87, 0xffffffff);
3148  let mut x109: u32 = 0;
3149  let mut x110: u32 = 0;
3150  fiat_p256_mulx_u32(&mut x109, &mut x110, x87, 0xffffffff);
3151  let mut x111: u32 = 0;
3152  let mut x112: fiat_p256_u1 = 0;
3153  fiat_p256_addcarryx_u32(&mut x111, &mut x112, 0x0, x110, x107);
3154  let mut x113: u32 = 0;
3155  let mut x114: fiat_p256_u1 = 0;
3156  fiat_p256_addcarryx_u32(&mut x113, &mut x114, x112, x108, x105);
3157  let mut x115: u32 = 0;
3158  let mut x116: fiat_p256_u1 = 0;
3159  fiat_p256_addcarryx_u32(&mut x115, &mut x116, 0x0, x87, x109);
3160  let mut x117: u32 = 0;
3161  let mut x118: fiat_p256_u1 = 0;
3162  fiat_p256_addcarryx_u32(&mut x117, &mut x118, x116, x89, x111);
3163  let mut x119: u32 = 0;
3164  let mut x120: fiat_p256_u1 = 0;
3165  fiat_p256_addcarryx_u32(&mut x119, &mut x120, x118, x91, x113);
3166  let mut x121: u32 = 0;
3167  let mut x122: fiat_p256_u1 = 0;
3168  fiat_p256_addcarryx_u32(&mut x121, &mut x122, x120, x93, ((x114 as u32) + x106));
3169  let mut x123: u32 = 0;
3170  let mut x124: fiat_p256_u1 = 0;
3171  fiat_p256_addcarryx_u32(&mut x123, &mut x124, x122, x95, (0x0 as u32));
3172  let mut x125: u32 = 0;
3173  let mut x126: fiat_p256_u1 = 0;
3174  fiat_p256_addcarryx_u32(&mut x125, &mut x126, x124, x97, (0x0 as u32));
3175  let mut x127: u32 = 0;
3176  let mut x128: fiat_p256_u1 = 0;
3177  fiat_p256_addcarryx_u32(&mut x127, &mut x128, x126, x99, x87);
3178  let mut x129: u32 = 0;
3179  let mut x130: fiat_p256_u1 = 0;
3180  fiat_p256_addcarryx_u32(&mut x129, &mut x130, x128, x101, x103);
3181  let mut x131: u32 = 0;
3182  let mut x132: fiat_p256_u1 = 0;
3183  fiat_p256_addcarryx_u32(&mut x131, &mut x132, x130, (((x102 as u32) + (x62 as u32)) + ((x86 as u32) + x64)), x104);
3184  let mut x133: u32 = 0;
3185  let mut x134: u32 = 0;
3186  fiat_p256_mulx_u32(&mut x133, &mut x134, x2, 0x4);
3187  let mut x135: u32 = 0;
3188  let mut x136: u32 = 0;
3189  fiat_p256_mulx_u32(&mut x135, &mut x136, x2, 0xfffffffd);
3190  let mut x137: u32 = 0;
3191  let mut x138: u32 = 0;
3192  fiat_p256_mulx_u32(&mut x137, &mut x138, x2, 0xffffffff);
3193  let mut x139: u32 = 0;
3194  let mut x140: u32 = 0;
3195  fiat_p256_mulx_u32(&mut x139, &mut x140, x2, 0xfffffffe);
3196  let mut x141: u32 = 0;
3197  let mut x142: u32 = 0;
3198  fiat_p256_mulx_u32(&mut x141, &mut x142, x2, 0xfffffffb);
3199  let mut x143: u32 = 0;
3200  let mut x144: u32 = 0;
3201  fiat_p256_mulx_u32(&mut x143, &mut x144, x2, 0xffffffff);
3202  let mut x145: u32 = 0;
3203  let mut x146: u32 = 0;
3204  fiat_p256_mulx_u32(&mut x145, &mut x146, x2, 0x3);
3205  let mut x147: u32 = 0;
3206  let mut x148: fiat_p256_u1 = 0;
3207  fiat_p256_addcarryx_u32(&mut x147, &mut x148, 0x0, x144, x141);
3208  let mut x149: u32 = 0;
3209  let mut x150: fiat_p256_u1 = 0;
3210  fiat_p256_addcarryx_u32(&mut x149, &mut x150, x148, x142, x139);
3211  let mut x151: u32 = 0;
3212  let mut x152: fiat_p256_u1 = 0;
3213  fiat_p256_addcarryx_u32(&mut x151, &mut x152, x150, x140, x137);
3214  let mut x153: u32 = 0;
3215  let mut x154: fiat_p256_u1 = 0;
3216  fiat_p256_addcarryx_u32(&mut x153, &mut x154, x152, x138, x135);
3217  let mut x155: u32 = 0;
3218  let mut x156: fiat_p256_u1 = 0;
3219  fiat_p256_addcarryx_u32(&mut x155, &mut x156, x154, x136, x133);
3220  let mut x157: u32 = 0;
3221  let mut x158: fiat_p256_u1 = 0;
3222  fiat_p256_addcarryx_u32(&mut x157, &mut x158, 0x0, x117, x145);
3223  let mut x159: u32 = 0;
3224  let mut x160: fiat_p256_u1 = 0;
3225  fiat_p256_addcarryx_u32(&mut x159, &mut x160, x158, x119, x146);
3226  let mut x161: u32 = 0;
3227  let mut x162: fiat_p256_u1 = 0;
3228  fiat_p256_addcarryx_u32(&mut x161, &mut x162, x160, x121, x143);
3229  let mut x163: u32 = 0;
3230  let mut x164: fiat_p256_u1 = 0;
3231  fiat_p256_addcarryx_u32(&mut x163, &mut x164, x162, x123, x147);
3232  let mut x165: u32 = 0;
3233  let mut x166: fiat_p256_u1 = 0;
3234  fiat_p256_addcarryx_u32(&mut x165, &mut x166, x164, x125, x149);
3235  let mut x167: u32 = 0;
3236  let mut x168: fiat_p256_u1 = 0;
3237  fiat_p256_addcarryx_u32(&mut x167, &mut x168, x166, x127, x151);
3238  let mut x169: u32 = 0;
3239  let mut x170: fiat_p256_u1 = 0;
3240  fiat_p256_addcarryx_u32(&mut x169, &mut x170, x168, x129, x153);
3241  let mut x171: u32 = 0;
3242  let mut x172: fiat_p256_u1 = 0;
3243  fiat_p256_addcarryx_u32(&mut x171, &mut x172, x170, x131, x155);
3244  let mut x173: u32 = 0;
3245  let mut x174: u32 = 0;
3246  fiat_p256_mulx_u32(&mut x173, &mut x174, x157, 0xffffffff);
3247  let mut x175: u32 = 0;
3248  let mut x176: u32 = 0;
3249  fiat_p256_mulx_u32(&mut x175, &mut x176, x157, 0xffffffff);
3250  let mut x177: u32 = 0;
3251  let mut x178: u32 = 0;
3252  fiat_p256_mulx_u32(&mut x177, &mut x178, x157, 0xffffffff);
3253  let mut x179: u32 = 0;
3254  let mut x180: u32 = 0;
3255  fiat_p256_mulx_u32(&mut x179, &mut x180, x157, 0xffffffff);
3256  let mut x181: u32 = 0;
3257  let mut x182: fiat_p256_u1 = 0;
3258  fiat_p256_addcarryx_u32(&mut x181, &mut x182, 0x0, x180, x177);
3259  let mut x183: u32 = 0;
3260  let mut x184: fiat_p256_u1 = 0;
3261  fiat_p256_addcarryx_u32(&mut x183, &mut x184, x182, x178, x175);
3262  let mut x185: u32 = 0;
3263  let mut x186: fiat_p256_u1 = 0;
3264  fiat_p256_addcarryx_u32(&mut x185, &mut x186, 0x0, x157, x179);
3265  let mut x187: u32 = 0;
3266  let mut x188: fiat_p256_u1 = 0;
3267  fiat_p256_addcarryx_u32(&mut x187, &mut x188, x186, x159, x181);
3268  let mut x189: u32 = 0;
3269  let mut x190: fiat_p256_u1 = 0;
3270  fiat_p256_addcarryx_u32(&mut x189, &mut x190, x188, x161, x183);
3271  let mut x191: u32 = 0;
3272  let mut x192: fiat_p256_u1 = 0;
3273  fiat_p256_addcarryx_u32(&mut x191, &mut x192, x190, x163, ((x184 as u32) + x176));
3274  let mut x193: u32 = 0;
3275  let mut x194: fiat_p256_u1 = 0;
3276  fiat_p256_addcarryx_u32(&mut x193, &mut x194, x192, x165, (0x0 as u32));
3277  let mut x195: u32 = 0;
3278  let mut x196: fiat_p256_u1 = 0;
3279  fiat_p256_addcarryx_u32(&mut x195, &mut x196, x194, x167, (0x0 as u32));
3280  let mut x197: u32 = 0;
3281  let mut x198: fiat_p256_u1 = 0;
3282  fiat_p256_addcarryx_u32(&mut x197, &mut x198, x196, x169, x157);
3283  let mut x199: u32 = 0;
3284  let mut x200: fiat_p256_u1 = 0;
3285  fiat_p256_addcarryx_u32(&mut x199, &mut x200, x198, x171, x173);
3286  let mut x201: u32 = 0;
3287  let mut x202: fiat_p256_u1 = 0;
3288  fiat_p256_addcarryx_u32(&mut x201, &mut x202, x200, (((x172 as u32) + (x132 as u32)) + ((x156 as u32) + x134)), x174);
3289  let mut x203: u32 = 0;
3290  let mut x204: u32 = 0;
3291  fiat_p256_mulx_u32(&mut x203, &mut x204, x3, 0x4);
3292  let mut x205: u32 = 0;
3293  let mut x206: u32 = 0;
3294  fiat_p256_mulx_u32(&mut x205, &mut x206, x3, 0xfffffffd);
3295  let mut x207: u32 = 0;
3296  let mut x208: u32 = 0;
3297  fiat_p256_mulx_u32(&mut x207, &mut x208, x3, 0xffffffff);
3298  let mut x209: u32 = 0;
3299  let mut x210: u32 = 0;
3300  fiat_p256_mulx_u32(&mut x209, &mut x210, x3, 0xfffffffe);
3301  let mut x211: u32 = 0;
3302  let mut x212: u32 = 0;
3303  fiat_p256_mulx_u32(&mut x211, &mut x212, x3, 0xfffffffb);
3304  let mut x213: u32 = 0;
3305  let mut x214: u32 = 0;
3306  fiat_p256_mulx_u32(&mut x213, &mut x214, x3, 0xffffffff);
3307  let mut x215: u32 = 0;
3308  let mut x216: u32 = 0;
3309  fiat_p256_mulx_u32(&mut x215, &mut x216, x3, 0x3);
3310  let mut x217: u32 = 0;
3311  let mut x218: fiat_p256_u1 = 0;
3312  fiat_p256_addcarryx_u32(&mut x217, &mut x218, 0x0, x214, x211);
3313  let mut x219: u32 = 0;
3314  let mut x220: fiat_p256_u1 = 0;
3315  fiat_p256_addcarryx_u32(&mut x219, &mut x220, x218, x212, x209);
3316  let mut x221: u32 = 0;
3317  let mut x222: fiat_p256_u1 = 0;
3318  fiat_p256_addcarryx_u32(&mut x221, &mut x222, x220, x210, x207);
3319  let mut x223: u32 = 0;
3320  let mut x224: fiat_p256_u1 = 0;
3321  fiat_p256_addcarryx_u32(&mut x223, &mut x224, x222, x208, x205);
3322  let mut x225: u32 = 0;
3323  let mut x226: fiat_p256_u1 = 0;
3324  fiat_p256_addcarryx_u32(&mut x225, &mut x226, x224, x206, x203);
3325  let mut x227: u32 = 0;
3326  let mut x228: fiat_p256_u1 = 0;
3327  fiat_p256_addcarryx_u32(&mut x227, &mut x228, 0x0, x187, x215);
3328  let mut x229: u32 = 0;
3329  let mut x230: fiat_p256_u1 = 0;
3330  fiat_p256_addcarryx_u32(&mut x229, &mut x230, x228, x189, x216);
3331  let mut x231: u32 = 0;
3332  let mut x232: fiat_p256_u1 = 0;
3333  fiat_p256_addcarryx_u32(&mut x231, &mut x232, x230, x191, x213);
3334  let mut x233: u32 = 0;
3335  let mut x234: fiat_p256_u1 = 0;
3336  fiat_p256_addcarryx_u32(&mut x233, &mut x234, x232, x193, x217);
3337  let mut x235: u32 = 0;
3338  let mut x236: fiat_p256_u1 = 0;
3339  fiat_p256_addcarryx_u32(&mut x235, &mut x236, x234, x195, x219);
3340  let mut x237: u32 = 0;
3341  let mut x238: fiat_p256_u1 = 0;
3342  fiat_p256_addcarryx_u32(&mut x237, &mut x238, x236, x197, x221);
3343  let mut x239: u32 = 0;
3344  let mut x240: fiat_p256_u1 = 0;
3345  fiat_p256_addcarryx_u32(&mut x239, &mut x240, x238, x199, x223);
3346  let mut x241: u32 = 0;
3347  let mut x242: fiat_p256_u1 = 0;
3348  fiat_p256_addcarryx_u32(&mut x241, &mut x242, x240, x201, x225);
3349  let mut x243: u32 = 0;
3350  let mut x244: u32 = 0;
3351  fiat_p256_mulx_u32(&mut x243, &mut x244, x227, 0xffffffff);
3352  let mut x245: u32 = 0;
3353  let mut x246: u32 = 0;
3354  fiat_p256_mulx_u32(&mut x245, &mut x246, x227, 0xffffffff);
3355  let mut x247: u32 = 0;
3356  let mut x248: u32 = 0;
3357  fiat_p256_mulx_u32(&mut x247, &mut x248, x227, 0xffffffff);
3358  let mut x249: u32 = 0;
3359  let mut x250: u32 = 0;
3360  fiat_p256_mulx_u32(&mut x249, &mut x250, x227, 0xffffffff);
3361  let mut x251: u32 = 0;
3362  let mut x252: fiat_p256_u1 = 0;
3363  fiat_p256_addcarryx_u32(&mut x251, &mut x252, 0x0, x250, x247);
3364  let mut x253: u32 = 0;
3365  let mut x254: fiat_p256_u1 = 0;
3366  fiat_p256_addcarryx_u32(&mut x253, &mut x254, x252, x248, x245);
3367  let mut x255: u32 = 0;
3368  let mut x256: fiat_p256_u1 = 0;
3369  fiat_p256_addcarryx_u32(&mut x255, &mut x256, 0x0, x227, x249);
3370  let mut x257: u32 = 0;
3371  let mut x258: fiat_p256_u1 = 0;
3372  fiat_p256_addcarryx_u32(&mut x257, &mut x258, x256, x229, x251);
3373  let mut x259: u32 = 0;
3374  let mut x260: fiat_p256_u1 = 0;
3375  fiat_p256_addcarryx_u32(&mut x259, &mut x260, x258, x231, x253);
3376  let mut x261: u32 = 0;
3377  let mut x262: fiat_p256_u1 = 0;
3378  fiat_p256_addcarryx_u32(&mut x261, &mut x262, x260, x233, ((x254 as u32) + x246));
3379  let mut x263: u32 = 0;
3380  let mut x264: fiat_p256_u1 = 0;
3381  fiat_p256_addcarryx_u32(&mut x263, &mut x264, x262, x235, (0x0 as u32));
3382  let mut x265: u32 = 0;
3383  let mut x266: fiat_p256_u1 = 0;
3384  fiat_p256_addcarryx_u32(&mut x265, &mut x266, x264, x237, (0x0 as u32));
3385  let mut x267: u32 = 0;
3386  let mut x268: fiat_p256_u1 = 0;
3387  fiat_p256_addcarryx_u32(&mut x267, &mut x268, x266, x239, x227);
3388  let mut x269: u32 = 0;
3389  let mut x270: fiat_p256_u1 = 0;
3390  fiat_p256_addcarryx_u32(&mut x269, &mut x270, x268, x241, x243);
3391  let mut x271: u32 = 0;
3392  let mut x272: fiat_p256_u1 = 0;
3393  fiat_p256_addcarryx_u32(&mut x271, &mut x272, x270, (((x242 as u32) + (x202 as u32)) + ((x226 as u32) + x204)), x244);
3394  let mut x273: u32 = 0;
3395  let mut x274: u32 = 0;
3396  fiat_p256_mulx_u32(&mut x273, &mut x274, x4, 0x4);
3397  let mut x275: u32 = 0;
3398  let mut x276: u32 = 0;
3399  fiat_p256_mulx_u32(&mut x275, &mut x276, x4, 0xfffffffd);
3400  let mut x277: u32 = 0;
3401  let mut x278: u32 = 0;
3402  fiat_p256_mulx_u32(&mut x277, &mut x278, x4, 0xffffffff);
3403  let mut x279: u32 = 0;
3404  let mut x280: u32 = 0;
3405  fiat_p256_mulx_u32(&mut x279, &mut x280, x4, 0xfffffffe);
3406  let mut x281: u32 = 0;
3407  let mut x282: u32 = 0;
3408  fiat_p256_mulx_u32(&mut x281, &mut x282, x4, 0xfffffffb);
3409  let mut x283: u32 = 0;
3410  let mut x284: u32 = 0;
3411  fiat_p256_mulx_u32(&mut x283, &mut x284, x4, 0xffffffff);
3412  let mut x285: u32 = 0;
3413  let mut x286: u32 = 0;
3414  fiat_p256_mulx_u32(&mut x285, &mut x286, x4, 0x3);
3415  let mut x287: u32 = 0;
3416  let mut x288: fiat_p256_u1 = 0;
3417  fiat_p256_addcarryx_u32(&mut x287, &mut x288, 0x0, x284, x281);
3418  let mut x289: u32 = 0;
3419  let mut x290: fiat_p256_u1 = 0;
3420  fiat_p256_addcarryx_u32(&mut x289, &mut x290, x288, x282, x279);
3421  let mut x291: u32 = 0;
3422  let mut x292: fiat_p256_u1 = 0;
3423  fiat_p256_addcarryx_u32(&mut x291, &mut x292, x290, x280, x277);
3424  let mut x293: u32 = 0;
3425  let mut x294: fiat_p256_u1 = 0;
3426  fiat_p256_addcarryx_u32(&mut x293, &mut x294, x292, x278, x275);
3427  let mut x295: u32 = 0;
3428  let mut x296: fiat_p256_u1 = 0;
3429  fiat_p256_addcarryx_u32(&mut x295, &mut x296, x294, x276, x273);
3430  let mut x297: u32 = 0;
3431  let mut x298: fiat_p256_u1 = 0;
3432  fiat_p256_addcarryx_u32(&mut x297, &mut x298, 0x0, x257, x285);
3433  let mut x299: u32 = 0;
3434  let mut x300: fiat_p256_u1 = 0;
3435  fiat_p256_addcarryx_u32(&mut x299, &mut x300, x298, x259, x286);
3436  let mut x301: u32 = 0;
3437  let mut x302: fiat_p256_u1 = 0;
3438  fiat_p256_addcarryx_u32(&mut x301, &mut x302, x300, x261, x283);
3439  let mut x303: u32 = 0;
3440  let mut x304: fiat_p256_u1 = 0;
3441  fiat_p256_addcarryx_u32(&mut x303, &mut x304, x302, x263, x287);
3442  let mut x305: u32 = 0;
3443  let mut x306: fiat_p256_u1 = 0;
3444  fiat_p256_addcarryx_u32(&mut x305, &mut x306, x304, x265, x289);
3445  let mut x307: u32 = 0;
3446  let mut x308: fiat_p256_u1 = 0;
3447  fiat_p256_addcarryx_u32(&mut x307, &mut x308, x306, x267, x291);
3448  let mut x309: u32 = 0;
3449  let mut x310: fiat_p256_u1 = 0;
3450  fiat_p256_addcarryx_u32(&mut x309, &mut x310, x308, x269, x293);
3451  let mut x311: u32 = 0;
3452  let mut x312: fiat_p256_u1 = 0;
3453  fiat_p256_addcarryx_u32(&mut x311, &mut x312, x310, x271, x295);
3454  let mut x313: u32 = 0;
3455  let mut x314: u32 = 0;
3456  fiat_p256_mulx_u32(&mut x313, &mut x314, x297, 0xffffffff);
3457  let mut x315: u32 = 0;
3458  let mut x316: u32 = 0;
3459  fiat_p256_mulx_u32(&mut x315, &mut x316, x297, 0xffffffff);
3460  let mut x317: u32 = 0;
3461  let mut x318: u32 = 0;
3462  fiat_p256_mulx_u32(&mut x317, &mut x318, x297, 0xffffffff);
3463  let mut x319: u32 = 0;
3464  let mut x320: u32 = 0;
3465  fiat_p256_mulx_u32(&mut x319, &mut x320, x297, 0xffffffff);
3466  let mut x321: u32 = 0;
3467  let mut x322: fiat_p256_u1 = 0;
3468  fiat_p256_addcarryx_u32(&mut x321, &mut x322, 0x0, x320, x317);
3469  let mut x323: u32 = 0;
3470  let mut x324: fiat_p256_u1 = 0;
3471  fiat_p256_addcarryx_u32(&mut x323, &mut x324, x322, x318, x315);
3472  let mut x325: u32 = 0;
3473  let mut x326: fiat_p256_u1 = 0;
3474  fiat_p256_addcarryx_u32(&mut x325, &mut x326, 0x0, x297, x319);
3475  let mut x327: u32 = 0;
3476  let mut x328: fiat_p256_u1 = 0;
3477  fiat_p256_addcarryx_u32(&mut x327, &mut x328, x326, x299, x321);
3478  let mut x329: u32 = 0;
3479  let mut x330: fiat_p256_u1 = 0;
3480  fiat_p256_addcarryx_u32(&mut x329, &mut x330, x328, x301, x323);
3481  let mut x331: u32 = 0;
3482  let mut x332: fiat_p256_u1 = 0;
3483  fiat_p256_addcarryx_u32(&mut x331, &mut x332, x330, x303, ((x324 as u32) + x316));
3484  let mut x333: u32 = 0;
3485  let mut x334: fiat_p256_u1 = 0;
3486  fiat_p256_addcarryx_u32(&mut x333, &mut x334, x332, x305, (0x0 as u32));
3487  let mut x335: u32 = 0;
3488  let mut x336: fiat_p256_u1 = 0;
3489  fiat_p256_addcarryx_u32(&mut x335, &mut x336, x334, x307, (0x0 as u32));
3490  let mut x337: u32 = 0;
3491  let mut x338: fiat_p256_u1 = 0;
3492  fiat_p256_addcarryx_u32(&mut x337, &mut x338, x336, x309, x297);
3493  let mut x339: u32 = 0;
3494  let mut x340: fiat_p256_u1 = 0;
3495  fiat_p256_addcarryx_u32(&mut x339, &mut x340, x338, x311, x313);
3496  let mut x341: u32 = 0;
3497  let mut x342: fiat_p256_u1 = 0;
3498  fiat_p256_addcarryx_u32(&mut x341, &mut x342, x340, (((x312 as u32) + (x272 as u32)) + ((x296 as u32) + x274)), x314);
3499  let mut x343: u32 = 0;
3500  let mut x344: u32 = 0;
3501  fiat_p256_mulx_u32(&mut x343, &mut x344, x5, 0x4);
3502  let mut x345: u32 = 0;
3503  let mut x346: u32 = 0;
3504  fiat_p256_mulx_u32(&mut x345, &mut x346, x5, 0xfffffffd);
3505  let mut x347: u32 = 0;
3506  let mut x348: u32 = 0;
3507  fiat_p256_mulx_u32(&mut x347, &mut x348, x5, 0xffffffff);
3508  let mut x349: u32 = 0;
3509  let mut x350: u32 = 0;
3510  fiat_p256_mulx_u32(&mut x349, &mut x350, x5, 0xfffffffe);
3511  let mut x351: u32 = 0;
3512  let mut x352: u32 = 0;
3513  fiat_p256_mulx_u32(&mut x351, &mut x352, x5, 0xfffffffb);
3514  let mut x353: u32 = 0;
3515  let mut x354: u32 = 0;
3516  fiat_p256_mulx_u32(&mut x353, &mut x354, x5, 0xffffffff);
3517  let mut x355: u32 = 0;
3518  let mut x356: u32 = 0;
3519  fiat_p256_mulx_u32(&mut x355, &mut x356, x5, 0x3);
3520  let mut x357: u32 = 0;
3521  let mut x358: fiat_p256_u1 = 0;
3522  fiat_p256_addcarryx_u32(&mut x357, &mut x358, 0x0, x354, x351);
3523  let mut x359: u32 = 0;
3524  let mut x360: fiat_p256_u1 = 0;
3525  fiat_p256_addcarryx_u32(&mut x359, &mut x360, x358, x352, x349);
3526  let mut x361: u32 = 0;
3527  let mut x362: fiat_p256_u1 = 0;
3528  fiat_p256_addcarryx_u32(&mut x361, &mut x362, x360, x350, x347);
3529  let mut x363: u32 = 0;
3530  let mut x364: fiat_p256_u1 = 0;
3531  fiat_p256_addcarryx_u32(&mut x363, &mut x364, x362, x348, x345);
3532  let mut x365: u32 = 0;
3533  let mut x366: fiat_p256_u1 = 0;
3534  fiat_p256_addcarryx_u32(&mut x365, &mut x366, x364, x346, x343);
3535  let mut x367: u32 = 0;
3536  let mut x368: fiat_p256_u1 = 0;
3537  fiat_p256_addcarryx_u32(&mut x367, &mut x368, 0x0, x327, x355);
3538  let mut x369: u32 = 0;
3539  let mut x370: fiat_p256_u1 = 0;
3540  fiat_p256_addcarryx_u32(&mut x369, &mut x370, x368, x329, x356);
3541  let mut x371: u32 = 0;
3542  let mut x372: fiat_p256_u1 = 0;
3543  fiat_p256_addcarryx_u32(&mut x371, &mut x372, x370, x331, x353);
3544  let mut x373: u32 = 0;
3545  let mut x374: fiat_p256_u1 = 0;
3546  fiat_p256_addcarryx_u32(&mut x373, &mut x374, x372, x333, x357);
3547  let mut x375: u32 = 0;
3548  let mut x376: fiat_p256_u1 = 0;
3549  fiat_p256_addcarryx_u32(&mut x375, &mut x376, x374, x335, x359);
3550  let mut x377: u32 = 0;
3551  let mut x378: fiat_p256_u1 = 0;
3552  fiat_p256_addcarryx_u32(&mut x377, &mut x378, x376, x337, x361);
3553  let mut x379: u32 = 0;
3554  let mut x380: fiat_p256_u1 = 0;
3555  fiat_p256_addcarryx_u32(&mut x379, &mut x380, x378, x339, x363);
3556  let mut x381: u32 = 0;
3557  let mut x382: fiat_p256_u1 = 0;
3558  fiat_p256_addcarryx_u32(&mut x381, &mut x382, x380, x341, x365);
3559  let mut x383: u32 = 0;
3560  let mut x384: u32 = 0;
3561  fiat_p256_mulx_u32(&mut x383, &mut x384, x367, 0xffffffff);
3562  let mut x385: u32 = 0;
3563  let mut x386: u32 = 0;
3564  fiat_p256_mulx_u32(&mut x385, &mut x386, x367, 0xffffffff);
3565  let mut x387: u32 = 0;
3566  let mut x388: u32 = 0;
3567  fiat_p256_mulx_u32(&mut x387, &mut x388, x367, 0xffffffff);
3568  let mut x389: u32 = 0;
3569  let mut x390: u32 = 0;
3570  fiat_p256_mulx_u32(&mut x389, &mut x390, x367, 0xffffffff);
3571  let mut x391: u32 = 0;
3572  let mut x392: fiat_p256_u1 = 0;
3573  fiat_p256_addcarryx_u32(&mut x391, &mut x392, 0x0, x390, x387);
3574  let mut x393: u32 = 0;
3575  let mut x394: fiat_p256_u1 = 0;
3576  fiat_p256_addcarryx_u32(&mut x393, &mut x394, x392, x388, x385);
3577  let mut x395: u32 = 0;
3578  let mut x396: fiat_p256_u1 = 0;
3579  fiat_p256_addcarryx_u32(&mut x395, &mut x396, 0x0, x367, x389);
3580  let mut x397: u32 = 0;
3581  let mut x398: fiat_p256_u1 = 0;
3582  fiat_p256_addcarryx_u32(&mut x397, &mut x398, x396, x369, x391);
3583  let mut x399: u32 = 0;
3584  let mut x400: fiat_p256_u1 = 0;
3585  fiat_p256_addcarryx_u32(&mut x399, &mut x400, x398, x371, x393);
3586  let mut x401: u32 = 0;
3587  let mut x402: fiat_p256_u1 = 0;
3588  fiat_p256_addcarryx_u32(&mut x401, &mut x402, x400, x373, ((x394 as u32) + x386));
3589  let mut x403: u32 = 0;
3590  let mut x404: fiat_p256_u1 = 0;
3591  fiat_p256_addcarryx_u32(&mut x403, &mut x404, x402, x375, (0x0 as u32));
3592  let mut x405: u32 = 0;
3593  let mut x406: fiat_p256_u1 = 0;
3594  fiat_p256_addcarryx_u32(&mut x405, &mut x406, x404, x377, (0x0 as u32));
3595  let mut x407: u32 = 0;
3596  let mut x408: fiat_p256_u1 = 0;
3597  fiat_p256_addcarryx_u32(&mut x407, &mut x408, x406, x379, x367);
3598  let mut x409: u32 = 0;
3599  let mut x410: fiat_p256_u1 = 0;
3600  fiat_p256_addcarryx_u32(&mut x409, &mut x410, x408, x381, x383);
3601  let mut x411: u32 = 0;
3602  let mut x412: fiat_p256_u1 = 0;
3603  fiat_p256_addcarryx_u32(&mut x411, &mut x412, x410, (((x382 as u32) + (x342 as u32)) + ((x366 as u32) + x344)), x384);
3604  let mut x413: u32 = 0;
3605  let mut x414: u32 = 0;
3606  fiat_p256_mulx_u32(&mut x413, &mut x414, x6, 0x4);
3607  let mut x415: u32 = 0;
3608  let mut x416: u32 = 0;
3609  fiat_p256_mulx_u32(&mut x415, &mut x416, x6, 0xfffffffd);
3610  let mut x417: u32 = 0;
3611  let mut x418: u32 = 0;
3612  fiat_p256_mulx_u32(&mut x417, &mut x418, x6, 0xffffffff);
3613  let mut x419: u32 = 0;
3614  let mut x420: u32 = 0;
3615  fiat_p256_mulx_u32(&mut x419, &mut x420, x6, 0xfffffffe);
3616  let mut x421: u32 = 0;
3617  let mut x422: u32 = 0;
3618  fiat_p256_mulx_u32(&mut x421, &mut x422, x6, 0xfffffffb);
3619  let mut x423: u32 = 0;
3620  let mut x424: u32 = 0;
3621  fiat_p256_mulx_u32(&mut x423, &mut x424, x6, 0xffffffff);
3622  let mut x425: u32 = 0;
3623  let mut x426: u32 = 0;
3624  fiat_p256_mulx_u32(&mut x425, &mut x426, x6, 0x3);
3625  let mut x427: u32 = 0;
3626  let mut x428: fiat_p256_u1 = 0;
3627  fiat_p256_addcarryx_u32(&mut x427, &mut x428, 0x0, x424, x421);
3628  let mut x429: u32 = 0;
3629  let mut x430: fiat_p256_u1 = 0;
3630  fiat_p256_addcarryx_u32(&mut x429, &mut x430, x428, x422, x419);
3631  let mut x431: u32 = 0;
3632  let mut x432: fiat_p256_u1 = 0;
3633  fiat_p256_addcarryx_u32(&mut x431, &mut x432, x430, x420, x417);
3634  let mut x433: u32 = 0;
3635  let mut x434: fiat_p256_u1 = 0;
3636  fiat_p256_addcarryx_u32(&mut x433, &mut x434, x432, x418, x415);
3637  let mut x435: u32 = 0;
3638  let mut x436: fiat_p256_u1 = 0;
3639  fiat_p256_addcarryx_u32(&mut x435, &mut x436, x434, x416, x413);
3640  let mut x437: u32 = 0;
3641  let mut x438: fiat_p256_u1 = 0;
3642  fiat_p256_addcarryx_u32(&mut x437, &mut x438, 0x0, x397, x425);
3643  let mut x439: u32 = 0;
3644  let mut x440: fiat_p256_u1 = 0;
3645  fiat_p256_addcarryx_u32(&mut x439, &mut x440, x438, x399, x426);
3646  let mut x441: u32 = 0;
3647  let mut x442: fiat_p256_u1 = 0;
3648  fiat_p256_addcarryx_u32(&mut x441, &mut x442, x440, x401, x423);
3649  let mut x443: u32 = 0;
3650  let mut x444: fiat_p256_u1 = 0;
3651  fiat_p256_addcarryx_u32(&mut x443, &mut x444, x442, x403, x427);
3652  let mut x445: u32 = 0;
3653  let mut x446: fiat_p256_u1 = 0;
3654  fiat_p256_addcarryx_u32(&mut x445, &mut x446, x444, x405, x429);
3655  let mut x447: u32 = 0;
3656  let mut x448: fiat_p256_u1 = 0;
3657  fiat_p256_addcarryx_u32(&mut x447, &mut x448, x446, x407, x431);
3658  let mut x449: u32 = 0;
3659  let mut x450: fiat_p256_u1 = 0;
3660  fiat_p256_addcarryx_u32(&mut x449, &mut x450, x448, x409, x433);
3661  let mut x451: u32 = 0;
3662  let mut x452: fiat_p256_u1 = 0;
3663  fiat_p256_addcarryx_u32(&mut x451, &mut x452, x450, x411, x435);
3664  let mut x453: u32 = 0;
3665  let mut x454: u32 = 0;
3666  fiat_p256_mulx_u32(&mut x453, &mut x454, x437, 0xffffffff);
3667  let mut x455: u32 = 0;
3668  let mut x456: u32 = 0;
3669  fiat_p256_mulx_u32(&mut x455, &mut x456, x437, 0xffffffff);
3670  let mut x457: u32 = 0;
3671  let mut x458: u32 = 0;
3672  fiat_p256_mulx_u32(&mut x457, &mut x458, x437, 0xffffffff);
3673  let mut x459: u32 = 0;
3674  let mut x460: u32 = 0;
3675  fiat_p256_mulx_u32(&mut x459, &mut x460, x437, 0xffffffff);
3676  let mut x461: u32 = 0;
3677  let mut x462: fiat_p256_u1 = 0;
3678  fiat_p256_addcarryx_u32(&mut x461, &mut x462, 0x0, x460, x457);
3679  let mut x463: u32 = 0;
3680  let mut x464: fiat_p256_u1 = 0;
3681  fiat_p256_addcarryx_u32(&mut x463, &mut x464, x462, x458, x455);
3682  let mut x465: u32 = 0;
3683  let mut x466: fiat_p256_u1 = 0;
3684  fiat_p256_addcarryx_u32(&mut x465, &mut x466, 0x0, x437, x459);
3685  let mut x467: u32 = 0;
3686  let mut x468: fiat_p256_u1 = 0;
3687  fiat_p256_addcarryx_u32(&mut x467, &mut x468, x466, x439, x461);
3688  let mut x469: u32 = 0;
3689  let mut x470: fiat_p256_u1 = 0;
3690  fiat_p256_addcarryx_u32(&mut x469, &mut x470, x468, x441, x463);
3691  let mut x471: u32 = 0;
3692  let mut x472: fiat_p256_u1 = 0;
3693  fiat_p256_addcarryx_u32(&mut x471, &mut x472, x470, x443, ((x464 as u32) + x456));
3694  let mut x473: u32 = 0;
3695  let mut x474: fiat_p256_u1 = 0;
3696  fiat_p256_addcarryx_u32(&mut x473, &mut x474, x472, x445, (0x0 as u32));
3697  let mut x475: u32 = 0;
3698  let mut x476: fiat_p256_u1 = 0;
3699  fiat_p256_addcarryx_u32(&mut x475, &mut x476, x474, x447, (0x0 as u32));
3700  let mut x477: u32 = 0;
3701  let mut x478: fiat_p256_u1 = 0;
3702  fiat_p256_addcarryx_u32(&mut x477, &mut x478, x476, x449, x437);
3703  let mut x479: u32 = 0;
3704  let mut x480: fiat_p256_u1 = 0;
3705  fiat_p256_addcarryx_u32(&mut x479, &mut x480, x478, x451, x453);
3706  let mut x481: u32 = 0;
3707  let mut x482: fiat_p256_u1 = 0;
3708  fiat_p256_addcarryx_u32(&mut x481, &mut x482, x480, (((x452 as u32) + (x412 as u32)) + ((x436 as u32) + x414)), x454);
3709  let mut x483: u32 = 0;
3710  let mut x484: u32 = 0;
3711  fiat_p256_mulx_u32(&mut x483, &mut x484, x7, 0x4);
3712  let mut x485: u32 = 0;
3713  let mut x486: u32 = 0;
3714  fiat_p256_mulx_u32(&mut x485, &mut x486, x7, 0xfffffffd);
3715  let mut x487: u32 = 0;
3716  let mut x488: u32 = 0;
3717  fiat_p256_mulx_u32(&mut x487, &mut x488, x7, 0xffffffff);
3718  let mut x489: u32 = 0;
3719  let mut x490: u32 = 0;
3720  fiat_p256_mulx_u32(&mut x489, &mut x490, x7, 0xfffffffe);
3721  let mut x491: u32 = 0;
3722  let mut x492: u32 = 0;
3723  fiat_p256_mulx_u32(&mut x491, &mut x492, x7, 0xfffffffb);
3724  let mut x493: u32 = 0;
3725  let mut x494: u32 = 0;
3726  fiat_p256_mulx_u32(&mut x493, &mut x494, x7, 0xffffffff);
3727  let mut x495: u32 = 0;
3728  let mut x496: u32 = 0;
3729  fiat_p256_mulx_u32(&mut x495, &mut x496, x7, 0x3);
3730  let mut x497: u32 = 0;
3731  let mut x498: fiat_p256_u1 = 0;
3732  fiat_p256_addcarryx_u32(&mut x497, &mut x498, 0x0, x494, x491);
3733  let mut x499: u32 = 0;
3734  let mut x500: fiat_p256_u1 = 0;
3735  fiat_p256_addcarryx_u32(&mut x499, &mut x500, x498, x492, x489);
3736  let mut x501: u32 = 0;
3737  let mut x502: fiat_p256_u1 = 0;
3738  fiat_p256_addcarryx_u32(&mut x501, &mut x502, x500, x490, x487);
3739  let mut x503: u32 = 0;
3740  let mut x504: fiat_p256_u1 = 0;
3741  fiat_p256_addcarryx_u32(&mut x503, &mut x504, x502, x488, x485);
3742  let mut x505: u32 = 0;
3743  let mut x506: fiat_p256_u1 = 0;
3744  fiat_p256_addcarryx_u32(&mut x505, &mut x506, x504, x486, x483);
3745  let mut x507: u32 = 0;
3746  let mut x508: fiat_p256_u1 = 0;
3747  fiat_p256_addcarryx_u32(&mut x507, &mut x508, 0x0, x467, x495);
3748  let mut x509: u32 = 0;
3749  let mut x510: fiat_p256_u1 = 0;
3750  fiat_p256_addcarryx_u32(&mut x509, &mut x510, x508, x469, x496);
3751  let mut x511: u32 = 0;
3752  let mut x512: fiat_p256_u1 = 0;
3753  fiat_p256_addcarryx_u32(&mut x511, &mut x512, x510, x471, x493);
3754  let mut x513: u32 = 0;
3755  let mut x514: fiat_p256_u1 = 0;
3756  fiat_p256_addcarryx_u32(&mut x513, &mut x514, x512, x473, x497);
3757  let mut x515: u32 = 0;
3758  let mut x516: fiat_p256_u1 = 0;
3759  fiat_p256_addcarryx_u32(&mut x515, &mut x516, x514, x475, x499);
3760  let mut x517: u32 = 0;
3761  let mut x518: fiat_p256_u1 = 0;
3762  fiat_p256_addcarryx_u32(&mut x517, &mut x518, x516, x477, x501);
3763  let mut x519: u32 = 0;
3764  let mut x520: fiat_p256_u1 = 0;
3765  fiat_p256_addcarryx_u32(&mut x519, &mut x520, x518, x479, x503);
3766  let mut x521: u32 = 0;
3767  let mut x522: fiat_p256_u1 = 0;
3768  fiat_p256_addcarryx_u32(&mut x521, &mut x522, x520, x481, x505);
3769  let mut x523: u32 = 0;
3770  let mut x524: u32 = 0;
3771  fiat_p256_mulx_u32(&mut x523, &mut x524, x507, 0xffffffff);
3772  let mut x525: u32 = 0;
3773  let mut x526: u32 = 0;
3774  fiat_p256_mulx_u32(&mut x525, &mut x526, x507, 0xffffffff);
3775  let mut x527: u32 = 0;
3776  let mut x528: u32 = 0;
3777  fiat_p256_mulx_u32(&mut x527, &mut x528, x507, 0xffffffff);
3778  let mut x529: u32 = 0;
3779  let mut x530: u32 = 0;
3780  fiat_p256_mulx_u32(&mut x529, &mut x530, x507, 0xffffffff);
3781  let mut x531: u32 = 0;
3782  let mut x532: fiat_p256_u1 = 0;
3783  fiat_p256_addcarryx_u32(&mut x531, &mut x532, 0x0, x530, x527);
3784  let mut x533: u32 = 0;
3785  let mut x534: fiat_p256_u1 = 0;
3786  fiat_p256_addcarryx_u32(&mut x533, &mut x534, x532, x528, x525);
3787  let mut x535: u32 = 0;
3788  let mut x536: fiat_p256_u1 = 0;
3789  fiat_p256_addcarryx_u32(&mut x535, &mut x536, 0x0, x507, x529);
3790  let mut x537: u32 = 0;
3791  let mut x538: fiat_p256_u1 = 0;
3792  fiat_p256_addcarryx_u32(&mut x537, &mut x538, x536, x509, x531);
3793  let mut x539: u32 = 0;
3794  let mut x540: fiat_p256_u1 = 0;
3795  fiat_p256_addcarryx_u32(&mut x539, &mut x540, x538, x511, x533);
3796  let mut x541: u32 = 0;
3797  let mut x542: fiat_p256_u1 = 0;
3798  fiat_p256_addcarryx_u32(&mut x541, &mut x542, x540, x513, ((x534 as u32) + x526));
3799  let mut x543: u32 = 0;
3800  let mut x544: fiat_p256_u1 = 0;
3801  fiat_p256_addcarryx_u32(&mut x543, &mut x544, x542, x515, (0x0 as u32));
3802  let mut x545: u32 = 0;
3803  let mut x546: fiat_p256_u1 = 0;
3804  fiat_p256_addcarryx_u32(&mut x545, &mut x546, x544, x517, (0x0 as u32));
3805  let mut x547: u32 = 0;
3806  let mut x548: fiat_p256_u1 = 0;
3807  fiat_p256_addcarryx_u32(&mut x547, &mut x548, x546, x519, x507);
3808  let mut x549: u32 = 0;
3809  let mut x550: fiat_p256_u1 = 0;
3810  fiat_p256_addcarryx_u32(&mut x549, &mut x550, x548, x521, x523);
3811  let mut x551: u32 = 0;
3812  let mut x552: fiat_p256_u1 = 0;
3813  fiat_p256_addcarryx_u32(&mut x551, &mut x552, x550, (((x522 as u32) + (x482 as u32)) + ((x506 as u32) + x484)), x524);
3814  let mut x553: u32 = 0;
3815  let mut x554: fiat_p256_u1 = 0;
3816  fiat_p256_subborrowx_u32(&mut x553, &mut x554, 0x0, x537, 0xffffffff);
3817  let mut x555: u32 = 0;
3818  let mut x556: fiat_p256_u1 = 0;
3819  fiat_p256_subborrowx_u32(&mut x555, &mut x556, x554, x539, 0xffffffff);
3820  let mut x557: u32 = 0;
3821  let mut x558: fiat_p256_u1 = 0;
3822  fiat_p256_subborrowx_u32(&mut x557, &mut x558, x556, x541, 0xffffffff);
3823  let mut x559: u32 = 0;
3824  let mut x560: fiat_p256_u1 = 0;
3825  fiat_p256_subborrowx_u32(&mut x559, &mut x560, x558, x543, (0x0 as u32));
3826  let mut x561: u32 = 0;
3827  let mut x562: fiat_p256_u1 = 0;
3828  fiat_p256_subborrowx_u32(&mut x561, &mut x562, x560, x545, (0x0 as u32));
3829  let mut x563: u32 = 0;
3830  let mut x564: fiat_p256_u1 = 0;
3831  fiat_p256_subborrowx_u32(&mut x563, &mut x564, x562, x547, (0x0 as u32));
3832  let mut x565: u32 = 0;
3833  let mut x566: fiat_p256_u1 = 0;
3834  fiat_p256_subborrowx_u32(&mut x565, &mut x566, x564, x549, (0x1 as u32));
3835  let mut x567: u32 = 0;
3836  let mut x568: fiat_p256_u1 = 0;
3837  fiat_p256_subborrowx_u32(&mut x567, &mut x568, x566, x551, 0xffffffff);
3838  let mut x569: u32 = 0;
3839  let mut x570: fiat_p256_u1 = 0;
3840  fiat_p256_subborrowx_u32(&mut x569, &mut x570, x568, (x552 as u32), (0x0 as u32));
3841  let mut x571: u32 = 0;
3842  fiat_p256_cmovznz_u32(&mut x571, x570, x553, x537);
3843  let mut x572: u32 = 0;
3844  fiat_p256_cmovznz_u32(&mut x572, x570, x555, x539);
3845  let mut x573: u32 = 0;
3846  fiat_p256_cmovznz_u32(&mut x573, x570, x557, x541);
3847  let mut x574: u32 = 0;
3848  fiat_p256_cmovznz_u32(&mut x574, x570, x559, x543);
3849  let mut x575: u32 = 0;
3850  fiat_p256_cmovznz_u32(&mut x575, x570, x561, x545);
3851  let mut x576: u32 = 0;
3852  fiat_p256_cmovznz_u32(&mut x576, x570, x563, x547);
3853  let mut x577: u32 = 0;
3854  fiat_p256_cmovznz_u32(&mut x577, x570, x565, x549);
3855  let mut x578: u32 = 0;
3856  fiat_p256_cmovznz_u32(&mut x578, x570, x567, x551);
3857  *IndexConst(&mut out1).index_mut(0) = x571;
3858  *IndexConst(&mut out1).index_mut(1) = x572;
3859  *IndexConst(&mut out1).index_mut(2) = x573;
3860  *IndexConst(&mut out1).index_mut(3) = x574;
3861  *IndexConst(&mut out1).index_mut(4) = x575;
3862  *IndexConst(&mut out1).index_mut(5) = x576;
3863  *IndexConst(&mut out1).index_mut(6) = x577;
3864  *IndexConst(&mut out1).index_mut(7) = x578;
3865}
3866
3867/// The function fiat_p256_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise.
3868///
3869/// Preconditions:
3870///   0 ≤ eval arg1 < m
3871/// Postconditions:
3872///   out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0
3873///
3874/// Input Bounds:
3875///   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3876/// Output Bounds:
3877///   out1: [0x0 ~> 0xffffffff]
3878#[inline]
3879pub const fn fiat_p256_nonzero(out1: &mut u32, arg1: &[u32; 8]) {
3880  let x1: u32 = ((*IndexConst(arg1).index(0)) | ((*IndexConst(arg1).index(1)) | ((*IndexConst(arg1).index(2)) | ((*IndexConst(arg1).index(3)) | ((*IndexConst(arg1).index(4)) | ((*IndexConst(arg1).index(5)) | ((*IndexConst(arg1).index(6)) | (*IndexConst(arg1).index(7)))))))));
3881  *out1 = x1;
3882}
3883
3884/// The function fiat_p256_selectznz is a multi-limb conditional select.
3885///
3886/// Postconditions:
3887///   out1 = (if arg1 = 0 then arg2 else arg3)
3888///
3889/// Input Bounds:
3890///   arg1: [0x0 ~> 0x1]
3891///   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3892///   arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3893/// Output Bounds:
3894///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3895#[inline]
3896pub const fn fiat_p256_selectznz(mut out1: &mut [u32; 8], arg1: fiat_p256_u1, arg2: &[u32; 8], arg3: &[u32; 8]) {
3897  let mut x1: u32 = 0;
3898  fiat_p256_cmovznz_u32(&mut x1, arg1, (*IndexConst(arg2).index(0)), (*IndexConst(arg3).index(0)));
3899  let mut x2: u32 = 0;
3900  fiat_p256_cmovznz_u32(&mut x2, arg1, (*IndexConst(arg2).index(1)), (*IndexConst(arg3).index(1)));
3901  let mut x3: u32 = 0;
3902  fiat_p256_cmovznz_u32(&mut x3, arg1, (*IndexConst(arg2).index(2)), (*IndexConst(arg3).index(2)));
3903  let mut x4: u32 = 0;
3904  fiat_p256_cmovznz_u32(&mut x4, arg1, (*IndexConst(arg2).index(3)), (*IndexConst(arg3).index(3)));
3905  let mut x5: u32 = 0;
3906  fiat_p256_cmovznz_u32(&mut x5, arg1, (*IndexConst(arg2).index(4)), (*IndexConst(arg3).index(4)));
3907  let mut x6: u32 = 0;
3908  fiat_p256_cmovznz_u32(&mut x6, arg1, (*IndexConst(arg2).index(5)), (*IndexConst(arg3).index(5)));
3909  let mut x7: u32 = 0;
3910  fiat_p256_cmovznz_u32(&mut x7, arg1, (*IndexConst(arg2).index(6)), (*IndexConst(arg3).index(6)));
3911  let mut x8: u32 = 0;
3912  fiat_p256_cmovznz_u32(&mut x8, arg1, (*IndexConst(arg2).index(7)), (*IndexConst(arg3).index(7)));
3913  *IndexConst(&mut out1).index_mut(0) = x1;
3914  *IndexConst(&mut out1).index_mut(1) = x2;
3915  *IndexConst(&mut out1).index_mut(2) = x3;
3916  *IndexConst(&mut out1).index_mut(3) = x4;
3917  *IndexConst(&mut out1).index_mut(4) = x5;
3918  *IndexConst(&mut out1).index_mut(5) = x6;
3919  *IndexConst(&mut out1).index_mut(6) = x7;
3920  *IndexConst(&mut out1).index_mut(7) = x8;
3921}
3922
3923/// The function fiat_p256_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order.
3924///
3925/// Preconditions:
3926///   0 ≤ eval arg1 < m
3927/// Postconditions:
3928///   out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31]
3929///
3930/// Input Bounds:
3931///   arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
3932/// Output Bounds:
3933///   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]]
3934#[inline]
3935pub const fn fiat_p256_to_bytes(mut out1: &mut [u8; 32], arg1: &[u32; 8]) {
3936  let x1: u32 = (*IndexConst(arg1).index(7));
3937  let x2: u32 = (*IndexConst(arg1).index(6));
3938  let x3: u32 = (*IndexConst(arg1).index(5));
3939  let x4: u32 = (*IndexConst(arg1).index(4));
3940  let x5: u32 = (*IndexConst(arg1).index(3));
3941  let x6: u32 = (*IndexConst(arg1).index(2));
3942  let x7: u32 = (*IndexConst(arg1).index(1));
3943  let x8: u32 = (*IndexConst(arg1).index(0));
3944  let x9: u8 = ((x8 & (0xff as u32)) as u8);
3945  let x10: u32 = (x8 >> 8);
3946  let x11: u8 = ((x10 & (0xff as u32)) as u8);
3947  let x12: u32 = (x10 >> 8);
3948  let x13: u8 = ((x12 & (0xff as u32)) as u8);
3949  let x14: u8 = ((x12 >> 8) as u8);
3950  let x15: u8 = ((x7 & (0xff as u32)) as u8);
3951  let x16: u32 = (x7 >> 8);
3952  let x17: u8 = ((x16 & (0xff as u32)) as u8);
3953  let x18: u32 = (x16 >> 8);
3954  let x19: u8 = ((x18 & (0xff as u32)) as u8);
3955  let x20: u8 = ((x18 >> 8) as u8);
3956  let x21: u8 = ((x6 & (0xff as u32)) as u8);
3957  let x22: u32 = (x6 >> 8);
3958  let x23: u8 = ((x22 & (0xff as u32)) as u8);
3959  let x24: u32 = (x22 >> 8);
3960  let x25: u8 = ((x24 & (0xff as u32)) as u8);
3961  let x26: u8 = ((x24 >> 8) as u8);
3962  let x27: u8 = ((x5 & (0xff as u32)) as u8);
3963  let x28: u32 = (x5 >> 8);
3964  let x29: u8 = ((x28 & (0xff as u32)) as u8);
3965  let x30: u32 = (x28 >> 8);
3966  let x31: u8 = ((x30 & (0xff as u32)) as u8);
3967  let x32: u8 = ((x30 >> 8) as u8);
3968  let x33: u8 = ((x4 & (0xff as u32)) as u8);
3969  let x34: u32 = (x4 >> 8);
3970  let x35: u8 = ((x34 & (0xff as u32)) as u8);
3971  let x36: u32 = (x34 >> 8);
3972  let x37: u8 = ((x36 & (0xff as u32)) as u8);
3973  let x38: u8 = ((x36 >> 8) as u8);
3974  let x39: u8 = ((x3 & (0xff as u32)) as u8);
3975  let x40: u32 = (x3 >> 8);
3976  let x41: u8 = ((x40 & (0xff as u32)) as u8);
3977  let x42: u32 = (x40 >> 8);
3978  let x43: u8 = ((x42 & (0xff as u32)) as u8);
3979  let x44: u8 = ((x42 >> 8) as u8);
3980  let x45: u8 = ((x2 & (0xff as u32)) as u8);
3981  let x46: u32 = (x2 >> 8);
3982  let x47: u8 = ((x46 & (0xff as u32)) as u8);
3983  let x48: u32 = (x46 >> 8);
3984  let x49: u8 = ((x48 & (0xff as u32)) as u8);
3985  let x50: u8 = ((x48 >> 8) as u8);
3986  let x51: u8 = ((x1 & (0xff as u32)) as u8);
3987  let x52: u32 = (x1 >> 8);
3988  let x53: u8 = ((x52 & (0xff as u32)) as u8);
3989  let x54: u32 = (x52 >> 8);
3990  let x55: u8 = ((x54 & (0xff as u32)) as u8);
3991  let x56: u8 = ((x54 >> 8) as u8);
3992  *IndexConst(&mut out1).index_mut(0) = x9;
3993  *IndexConst(&mut out1).index_mut(1) = x11;
3994  *IndexConst(&mut out1).index_mut(2) = x13;
3995  *IndexConst(&mut out1).index_mut(3) = x14;
3996  *IndexConst(&mut out1).index_mut(4) = x15;
3997  *IndexConst(&mut out1).index_mut(5) = x17;
3998  *IndexConst(&mut out1).index_mut(6) = x19;
3999  *IndexConst(&mut out1).index_mut(7) = x20;
4000  *IndexConst(&mut out1).index_mut(8) = x21;
4001  *IndexConst(&mut out1).index_mut(9) = x23;
4002  *IndexConst(&mut out1).index_mut(10) = x25;
4003  *IndexConst(&mut out1).index_mut(11) = x26;
4004  *IndexConst(&mut out1).index_mut(12) = x27;
4005  *IndexConst(&mut out1).index_mut(13) = x29;
4006  *IndexConst(&mut out1).index_mut(14) = x31;
4007  *IndexConst(&mut out1).index_mut(15) = x32;
4008  *IndexConst(&mut out1).index_mut(16) = x33;
4009  *IndexConst(&mut out1).index_mut(17) = x35;
4010  *IndexConst(&mut out1).index_mut(18) = x37;
4011  *IndexConst(&mut out1).index_mut(19) = x38;
4012  *IndexConst(&mut out1).index_mut(20) = x39;
4013  *IndexConst(&mut out1).index_mut(21) = x41;
4014  *IndexConst(&mut out1).index_mut(22) = x43;
4015  *IndexConst(&mut out1).index_mut(23) = x44;
4016  *IndexConst(&mut out1).index_mut(24) = x45;
4017  *IndexConst(&mut out1).index_mut(25) = x47;
4018  *IndexConst(&mut out1).index_mut(26) = x49;
4019  *IndexConst(&mut out1).index_mut(27) = x50;
4020  *IndexConst(&mut out1).index_mut(28) = x51;
4021  *IndexConst(&mut out1).index_mut(29) = x53;
4022  *IndexConst(&mut out1).index_mut(30) = x55;
4023  *IndexConst(&mut out1).index_mut(31) = x56;
4024}
4025
4026/// The function fiat_p256_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order.
4027///
4028/// Preconditions:
4029///   0 ≤ bytes_eval arg1 < m
4030/// Postconditions:
4031///   eval out1 mod m = bytes_eval arg1 mod m
4032///   0 ≤ eval out1 < m
4033///
4034/// Input Bounds:
4035///   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]]
4036/// Output Bounds:
4037///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4038#[inline]
4039pub const fn fiat_p256_from_bytes(mut out1: &mut [u32; 8], arg1: &[u8; 32]) {
4040  let x1: u32 = (((*IndexConst(arg1).index(31)) as u32) << 24);
4041  let x2: u32 = (((*IndexConst(arg1).index(30)) as u32) << 16);
4042  let x3: u32 = (((*IndexConst(arg1).index(29)) as u32) << 8);
4043  let x4: u8 = (*IndexConst(arg1).index(28));
4044  let x5: u32 = (((*IndexConst(arg1).index(27)) as u32) << 24);
4045  let x6: u32 = (((*IndexConst(arg1).index(26)) as u32) << 16);
4046  let x7: u32 = (((*IndexConst(arg1).index(25)) as u32) << 8);
4047  let x8: u8 = (*IndexConst(arg1).index(24));
4048  let x9: u32 = (((*IndexConst(arg1).index(23)) as u32) << 24);
4049  let x10: u32 = (((*IndexConst(arg1).index(22)) as u32) << 16);
4050  let x11: u32 = (((*IndexConst(arg1).index(21)) as u32) << 8);
4051  let x12: u8 = (*IndexConst(arg1).index(20));
4052  let x13: u32 = (((*IndexConst(arg1).index(19)) as u32) << 24);
4053  let x14: u32 = (((*IndexConst(arg1).index(18)) as u32) << 16);
4054  let x15: u32 = (((*IndexConst(arg1).index(17)) as u32) << 8);
4055  let x16: u8 = (*IndexConst(arg1).index(16));
4056  let x17: u32 = (((*IndexConst(arg1).index(15)) as u32) << 24);
4057  let x18: u32 = (((*IndexConst(arg1).index(14)) as u32) << 16);
4058  let x19: u32 = (((*IndexConst(arg1).index(13)) as u32) << 8);
4059  let x20: u8 = (*IndexConst(arg1).index(12));
4060  let x21: u32 = (((*IndexConst(arg1).index(11)) as u32) << 24);
4061  let x22: u32 = (((*IndexConst(arg1).index(10)) as u32) << 16);
4062  let x23: u32 = (((*IndexConst(arg1).index(9)) as u32) << 8);
4063  let x24: u8 = (*IndexConst(arg1).index(8));
4064  let x25: u32 = (((*IndexConst(arg1).index(7)) as u32) << 24);
4065  let x26: u32 = (((*IndexConst(arg1).index(6)) as u32) << 16);
4066  let x27: u32 = (((*IndexConst(arg1).index(5)) as u32) << 8);
4067  let x28: u8 = (*IndexConst(arg1).index(4));
4068  let x29: u32 = (((*IndexConst(arg1).index(3)) as u32) << 24);
4069  let x30: u32 = (((*IndexConst(arg1).index(2)) as u32) << 16);
4070  let x31: u32 = (((*IndexConst(arg1).index(1)) as u32) << 8);
4071  let x32: u8 = (*IndexConst(arg1).index(0));
4072  let x33: u32 = (x31 + (x32 as u32));
4073  let x34: u32 = (x30 + x33);
4074  let x35: u32 = (x29 + x34);
4075  let x36: u32 = (x27 + (x28 as u32));
4076  let x37: u32 = (x26 + x36);
4077  let x38: u32 = (x25 + x37);
4078  let x39: u32 = (x23 + (x24 as u32));
4079  let x40: u32 = (x22 + x39);
4080  let x41: u32 = (x21 + x40);
4081  let x42: u32 = (x19 + (x20 as u32));
4082  let x43: u32 = (x18 + x42);
4083  let x44: u32 = (x17 + x43);
4084  let x45: u32 = (x15 + (x16 as u32));
4085  let x46: u32 = (x14 + x45);
4086  let x47: u32 = (x13 + x46);
4087  let x48: u32 = (x11 + (x12 as u32));
4088  let x49: u32 = (x10 + x48);
4089  let x50: u32 = (x9 + x49);
4090  let x51: u32 = (x7 + (x8 as u32));
4091  let x52: u32 = (x6 + x51);
4092  let x53: u32 = (x5 + x52);
4093  let x54: u32 = (x3 + (x4 as u32));
4094  let x55: u32 = (x2 + x54);
4095  let x56: u32 = (x1 + x55);
4096  *IndexConst(&mut out1).index_mut(0) = x35;
4097  *IndexConst(&mut out1).index_mut(1) = x38;
4098  *IndexConst(&mut out1).index_mut(2) = x41;
4099  *IndexConst(&mut out1).index_mut(3) = x44;
4100  *IndexConst(&mut out1).index_mut(4) = x47;
4101  *IndexConst(&mut out1).index_mut(5) = x50;
4102  *IndexConst(&mut out1).index_mut(6) = x53;
4103  *IndexConst(&mut out1).index_mut(7) = x56;
4104}
4105
4106/// The function fiat_p256_set_one returns the field element one in the Montgomery domain.
4107///
4108/// Postconditions:
4109///   eval (from_montgomery out1) mod m = 1 mod m
4110///   0 ≤ eval out1 < m
4111///
4112#[inline]
4113pub const fn fiat_p256_set_one(mut out1: &mut fiat_p256_montgomery_domain_field_element) {
4114  *IndexConst(&mut out1).index_mut(0) = (0x1 as u32);
4115  *IndexConst(&mut out1).index_mut(1) = (0x0 as u32);
4116  *IndexConst(&mut out1).index_mut(2) = (0x0 as u32);
4117  *IndexConst(&mut out1).index_mut(3) = 0xffffffff;
4118  *IndexConst(&mut out1).index_mut(4) = 0xffffffff;
4119  *IndexConst(&mut out1).index_mut(5) = 0xffffffff;
4120  *IndexConst(&mut out1).index_mut(6) = 0xfffffffe;
4121  *IndexConst(&mut out1).index_mut(7) = (0x0 as u32);
4122}
4123
4124/// The function fiat_p256_msat returns the saturated representation of the prime modulus.
4125///
4126/// Postconditions:
4127///   twos_complement_eval out1 = m
4128///   0 ≤ eval out1 < m
4129///
4130/// Output Bounds:
4131///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4132#[inline]
4133pub const fn fiat_p256_msat(mut out1: &mut [u32; 9]) {
4134  *IndexConst(&mut out1).index_mut(0) = 0xffffffff;
4135  *IndexConst(&mut out1).index_mut(1) = 0xffffffff;
4136  *IndexConst(&mut out1).index_mut(2) = 0xffffffff;
4137  *IndexConst(&mut out1).index_mut(3) = (0x0 as u32);
4138  *IndexConst(&mut out1).index_mut(4) = (0x0 as u32);
4139  *IndexConst(&mut out1).index_mut(5) = (0x0 as u32);
4140  *IndexConst(&mut out1).index_mut(6) = (0x1 as u32);
4141  *IndexConst(&mut out1).index_mut(7) = 0xffffffff;
4142  *IndexConst(&mut out1).index_mut(8) = (0x0 as u32);
4143}
4144
4145/// The function fiat_p256_divstep computes a divstep.
4146///
4147/// Preconditions:
4148///   0 ≤ eval arg4 < m
4149///   0 ≤ eval arg5 < m
4150/// Postconditions:
4151///   out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)
4152///   twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)
4153///   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⌋)
4154///   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)
4155///   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)
4156///   0 ≤ eval out5 < m
4157///   0 ≤ eval out5 < m
4158///   0 ≤ eval out2 < m
4159///   0 ≤ eval out3 < m
4160///
4161/// Input Bounds:
4162///   arg1: [0x0 ~> 0xffffffff]
4163///   arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4164///   arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4165///   arg4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4166///   arg5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4167/// Output Bounds:
4168///   out1: [0x0 ~> 0xffffffff]
4169///   out2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4170///   out3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4171///   out4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4172///   out5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4173#[inline]
4174pub const fn fiat_p256_divstep(out1: &mut u32, mut out2: &mut [u32; 9], mut out3: &mut [u32; 9], mut out4: &mut [u32; 8], mut out5: &mut [u32; 8], arg1: u32, arg2: &[u32; 9], arg3: &[u32; 9], arg4: &[u32; 8], arg5: &[u32; 8]) {
4175  let mut x1: u32 = 0;
4176  let mut x2: fiat_p256_u1 = 0;
4177  fiat_p256_addcarryx_u32(&mut x1, &mut x2, 0x0, (!arg1), (0x1 as u32));
4178  let x3: fiat_p256_u1 = (((x1 >> 31) as fiat_p256_u1) & (((*IndexConst(arg3).index(0)) & (0x1 as u32)) as fiat_p256_u1));
4179  let mut x4: u32 = 0;
4180  let mut x5: fiat_p256_u1 = 0;
4181  fiat_p256_addcarryx_u32(&mut x4, &mut x5, 0x0, (!arg1), (0x1 as u32));
4182  let mut x6: u32 = 0;
4183  fiat_p256_cmovznz_u32(&mut x6, x3, arg1, x4);
4184  let mut x7: u32 = 0;
4185  fiat_p256_cmovznz_u32(&mut x7, x3, (*IndexConst(arg2).index(0)), (*IndexConst(arg3).index(0)));
4186  let mut x8: u32 = 0;
4187  fiat_p256_cmovznz_u32(&mut x8, x3, (*IndexConst(arg2).index(1)), (*IndexConst(arg3).index(1)));
4188  let mut x9: u32 = 0;
4189  fiat_p256_cmovznz_u32(&mut x9, x3, (*IndexConst(arg2).index(2)), (*IndexConst(arg3).index(2)));
4190  let mut x10: u32 = 0;
4191  fiat_p256_cmovznz_u32(&mut x10, x3, (*IndexConst(arg2).index(3)), (*IndexConst(arg3).index(3)));
4192  let mut x11: u32 = 0;
4193  fiat_p256_cmovznz_u32(&mut x11, x3, (*IndexConst(arg2).index(4)), (*IndexConst(arg3).index(4)));
4194  let mut x12: u32 = 0;
4195  fiat_p256_cmovznz_u32(&mut x12, x3, (*IndexConst(arg2).index(5)), (*IndexConst(arg3).index(5)));
4196  let mut x13: u32 = 0;
4197  fiat_p256_cmovznz_u32(&mut x13, x3, (*IndexConst(arg2).index(6)), (*IndexConst(arg3).index(6)));
4198  let mut x14: u32 = 0;
4199  fiat_p256_cmovznz_u32(&mut x14, x3, (*IndexConst(arg2).index(7)), (*IndexConst(arg3).index(7)));
4200  let mut x15: u32 = 0;
4201  fiat_p256_cmovznz_u32(&mut x15, x3, (*IndexConst(arg2).index(8)), (*IndexConst(arg3).index(8)));
4202  let mut x16: u32 = 0;
4203  let mut x17: fiat_p256_u1 = 0;
4204  fiat_p256_addcarryx_u32(&mut x16, &mut x17, 0x0, (0x1 as u32), (!(*IndexConst(arg2).index(0))));
4205  let mut x18: u32 = 0;
4206  let mut x19: fiat_p256_u1 = 0;
4207  fiat_p256_addcarryx_u32(&mut x18, &mut x19, x17, (0x0 as u32), (!(*IndexConst(arg2).index(1))));
4208  let mut x20: u32 = 0;
4209  let mut x21: fiat_p256_u1 = 0;
4210  fiat_p256_addcarryx_u32(&mut x20, &mut x21, x19, (0x0 as u32), (!(*IndexConst(arg2).index(2))));
4211  let mut x22: u32 = 0;
4212  let mut x23: fiat_p256_u1 = 0;
4213  fiat_p256_addcarryx_u32(&mut x22, &mut x23, x21, (0x0 as u32), (!(*IndexConst(arg2).index(3))));
4214  let mut x24: u32 = 0;
4215  let mut x25: fiat_p256_u1 = 0;
4216  fiat_p256_addcarryx_u32(&mut x24, &mut x25, x23, (0x0 as u32), (!(*IndexConst(arg2).index(4))));
4217  let mut x26: u32 = 0;
4218  let mut x27: fiat_p256_u1 = 0;
4219  fiat_p256_addcarryx_u32(&mut x26, &mut x27, x25, (0x0 as u32), (!(*IndexConst(arg2).index(5))));
4220  let mut x28: u32 = 0;
4221  let mut x29: fiat_p256_u1 = 0;
4222  fiat_p256_addcarryx_u32(&mut x28, &mut x29, x27, (0x0 as u32), (!(*IndexConst(arg2).index(6))));
4223  let mut x30: u32 = 0;
4224  let mut x31: fiat_p256_u1 = 0;
4225  fiat_p256_addcarryx_u32(&mut x30, &mut x31, x29, (0x0 as u32), (!(*IndexConst(arg2).index(7))));
4226  let mut x32: u32 = 0;
4227  let mut x33: fiat_p256_u1 = 0;
4228  fiat_p256_addcarryx_u32(&mut x32, &mut x33, x31, (0x0 as u32), (!(*IndexConst(arg2).index(8))));
4229  let mut x34: u32 = 0;
4230  fiat_p256_cmovznz_u32(&mut x34, x3, (*IndexConst(arg3).index(0)), x16);
4231  let mut x35: u32 = 0;
4232  fiat_p256_cmovznz_u32(&mut x35, x3, (*IndexConst(arg3).index(1)), x18);
4233  let mut x36: u32 = 0;
4234  fiat_p256_cmovznz_u32(&mut x36, x3, (*IndexConst(arg3).index(2)), x20);
4235  let mut x37: u32 = 0;
4236  fiat_p256_cmovznz_u32(&mut x37, x3, (*IndexConst(arg3).index(3)), x22);
4237  let mut x38: u32 = 0;
4238  fiat_p256_cmovznz_u32(&mut x38, x3, (*IndexConst(arg3).index(4)), x24);
4239  let mut x39: u32 = 0;
4240  fiat_p256_cmovznz_u32(&mut x39, x3, (*IndexConst(arg3).index(5)), x26);
4241  let mut x40: u32 = 0;
4242  fiat_p256_cmovznz_u32(&mut x40, x3, (*IndexConst(arg3).index(6)), x28);
4243  let mut x41: u32 = 0;
4244  fiat_p256_cmovznz_u32(&mut x41, x3, (*IndexConst(arg3).index(7)), x30);
4245  let mut x42: u32 = 0;
4246  fiat_p256_cmovznz_u32(&mut x42, x3, (*IndexConst(arg3).index(8)), x32);
4247  let mut x43: u32 = 0;
4248  fiat_p256_cmovznz_u32(&mut x43, x3, (*IndexConst(arg4).index(0)), (*IndexConst(arg5).index(0)));
4249  let mut x44: u32 = 0;
4250  fiat_p256_cmovznz_u32(&mut x44, x3, (*IndexConst(arg4).index(1)), (*IndexConst(arg5).index(1)));
4251  let mut x45: u32 = 0;
4252  fiat_p256_cmovznz_u32(&mut x45, x3, (*IndexConst(arg4).index(2)), (*IndexConst(arg5).index(2)));
4253  let mut x46: u32 = 0;
4254  fiat_p256_cmovznz_u32(&mut x46, x3, (*IndexConst(arg4).index(3)), (*IndexConst(arg5).index(3)));
4255  let mut x47: u32 = 0;
4256  fiat_p256_cmovznz_u32(&mut x47, x3, (*IndexConst(arg4).index(4)), (*IndexConst(arg5).index(4)));
4257  let mut x48: u32 = 0;
4258  fiat_p256_cmovznz_u32(&mut x48, x3, (*IndexConst(arg4).index(5)), (*IndexConst(arg5).index(5)));
4259  let mut x49: u32 = 0;
4260  fiat_p256_cmovznz_u32(&mut x49, x3, (*IndexConst(arg4).index(6)), (*IndexConst(arg5).index(6)));
4261  let mut x50: u32 = 0;
4262  fiat_p256_cmovznz_u32(&mut x50, x3, (*IndexConst(arg4).index(7)), (*IndexConst(arg5).index(7)));
4263  let mut x51: u32 = 0;
4264  let mut x52: fiat_p256_u1 = 0;
4265  fiat_p256_addcarryx_u32(&mut x51, &mut x52, 0x0, x43, x43);
4266  let mut x53: u32 = 0;
4267  let mut x54: fiat_p256_u1 = 0;
4268  fiat_p256_addcarryx_u32(&mut x53, &mut x54, x52, x44, x44);
4269  let mut x55: u32 = 0;
4270  let mut x56: fiat_p256_u1 = 0;
4271  fiat_p256_addcarryx_u32(&mut x55, &mut x56, x54, x45, x45);
4272  let mut x57: u32 = 0;
4273  let mut x58: fiat_p256_u1 = 0;
4274  fiat_p256_addcarryx_u32(&mut x57, &mut x58, x56, x46, x46);
4275  let mut x59: u32 = 0;
4276  let mut x60: fiat_p256_u1 = 0;
4277  fiat_p256_addcarryx_u32(&mut x59, &mut x60, x58, x47, x47);
4278  let mut x61: u32 = 0;
4279  let mut x62: fiat_p256_u1 = 0;
4280  fiat_p256_addcarryx_u32(&mut x61, &mut x62, x60, x48, x48);
4281  let mut x63: u32 = 0;
4282  let mut x64: fiat_p256_u1 = 0;
4283  fiat_p256_addcarryx_u32(&mut x63, &mut x64, x62, x49, x49);
4284  let mut x65: u32 = 0;
4285  let mut x66: fiat_p256_u1 = 0;
4286  fiat_p256_addcarryx_u32(&mut x65, &mut x66, x64, x50, x50);
4287  let mut x67: u32 = 0;
4288  let mut x68: fiat_p256_u1 = 0;
4289  fiat_p256_subborrowx_u32(&mut x67, &mut x68, 0x0, x51, 0xffffffff);
4290  let mut x69: u32 = 0;
4291  let mut x70: fiat_p256_u1 = 0;
4292  fiat_p256_subborrowx_u32(&mut x69, &mut x70, x68, x53, 0xffffffff);
4293  let mut x71: u32 = 0;
4294  let mut x72: fiat_p256_u1 = 0;
4295  fiat_p256_subborrowx_u32(&mut x71, &mut x72, x70, x55, 0xffffffff);
4296  let mut x73: u32 = 0;
4297  let mut x74: fiat_p256_u1 = 0;
4298  fiat_p256_subborrowx_u32(&mut x73, &mut x74, x72, x57, (0x0 as u32));
4299  let mut x75: u32 = 0;
4300  let mut x76: fiat_p256_u1 = 0;
4301  fiat_p256_subborrowx_u32(&mut x75, &mut x76, x74, x59, (0x0 as u32));
4302  let mut x77: u32 = 0;
4303  let mut x78: fiat_p256_u1 = 0;
4304  fiat_p256_subborrowx_u32(&mut x77, &mut x78, x76, x61, (0x0 as u32));
4305  let mut x79: u32 = 0;
4306  let mut x80: fiat_p256_u1 = 0;
4307  fiat_p256_subborrowx_u32(&mut x79, &mut x80, x78, x63, (0x1 as u32));
4308  let mut x81: u32 = 0;
4309  let mut x82: fiat_p256_u1 = 0;
4310  fiat_p256_subborrowx_u32(&mut x81, &mut x82, x80, x65, 0xffffffff);
4311  let mut x83: u32 = 0;
4312  let mut x84: fiat_p256_u1 = 0;
4313  fiat_p256_subborrowx_u32(&mut x83, &mut x84, x82, (x66 as u32), (0x0 as u32));
4314  let x85: u32 = (*IndexConst(arg4).index(7));
4315  let x86: u32 = (*IndexConst(arg4).index(6));
4316  let x87: u32 = (*IndexConst(arg4).index(5));
4317  let x88: u32 = (*IndexConst(arg4).index(4));
4318  let x89: u32 = (*IndexConst(arg4).index(3));
4319  let x90: u32 = (*IndexConst(arg4).index(2));
4320  let x91: u32 = (*IndexConst(arg4).index(1));
4321  let x92: u32 = (*IndexConst(arg4).index(0));
4322  let mut x93: u32 = 0;
4323  let mut x94: fiat_p256_u1 = 0;
4324  fiat_p256_subborrowx_u32(&mut x93, &mut x94, 0x0, (0x0 as u32), x92);
4325  let mut x95: u32 = 0;
4326  let mut x96: fiat_p256_u1 = 0;
4327  fiat_p256_subborrowx_u32(&mut x95, &mut x96, x94, (0x0 as u32), x91);
4328  let mut x97: u32 = 0;
4329  let mut x98: fiat_p256_u1 = 0;
4330  fiat_p256_subborrowx_u32(&mut x97, &mut x98, x96, (0x0 as u32), x90);
4331  let mut x99: u32 = 0;
4332  let mut x100: fiat_p256_u1 = 0;
4333  fiat_p256_subborrowx_u32(&mut x99, &mut x100, x98, (0x0 as u32), x89);
4334  let mut x101: u32 = 0;
4335  let mut x102: fiat_p256_u1 = 0;
4336  fiat_p256_subborrowx_u32(&mut x101, &mut x102, x100, (0x0 as u32), x88);
4337  let mut x103: u32 = 0;
4338  let mut x104: fiat_p256_u1 = 0;
4339  fiat_p256_subborrowx_u32(&mut x103, &mut x104, x102, (0x0 as u32), x87);
4340  let mut x105: u32 = 0;
4341  let mut x106: fiat_p256_u1 = 0;
4342  fiat_p256_subborrowx_u32(&mut x105, &mut x106, x104, (0x0 as u32), x86);
4343  let mut x107: u32 = 0;
4344  let mut x108: fiat_p256_u1 = 0;
4345  fiat_p256_subborrowx_u32(&mut x107, &mut x108, x106, (0x0 as u32), x85);
4346  let mut x109: u32 = 0;
4347  fiat_p256_cmovznz_u32(&mut x109, x108, (0x0 as u32), 0xffffffff);
4348  let mut x110: u32 = 0;
4349  let mut x111: fiat_p256_u1 = 0;
4350  fiat_p256_addcarryx_u32(&mut x110, &mut x111, 0x0, x93, x109);
4351  let mut x112: u32 = 0;
4352  let mut x113: fiat_p256_u1 = 0;
4353  fiat_p256_addcarryx_u32(&mut x112, &mut x113, x111, x95, x109);
4354  let mut x114: u32 = 0;
4355  let mut x115: fiat_p256_u1 = 0;
4356  fiat_p256_addcarryx_u32(&mut x114, &mut x115, x113, x97, x109);
4357  let mut x116: u32 = 0;
4358  let mut x117: fiat_p256_u1 = 0;
4359  fiat_p256_addcarryx_u32(&mut x116, &mut x117, x115, x99, (0x0 as u32));
4360  let mut x118: u32 = 0;
4361  let mut x119: fiat_p256_u1 = 0;
4362  fiat_p256_addcarryx_u32(&mut x118, &mut x119, x117, x101, (0x0 as u32));
4363  let mut x120: u32 = 0;
4364  let mut x121: fiat_p256_u1 = 0;
4365  fiat_p256_addcarryx_u32(&mut x120, &mut x121, x119, x103, (0x0 as u32));
4366  let mut x122: u32 = 0;
4367  let mut x123: fiat_p256_u1 = 0;
4368  fiat_p256_addcarryx_u32(&mut x122, &mut x123, x121, x105, (((x109 & (0x1 as u32)) as fiat_p256_u1) as u32));
4369  let mut x124: u32 = 0;
4370  let mut x125: fiat_p256_u1 = 0;
4371  fiat_p256_addcarryx_u32(&mut x124, &mut x125, x123, x107, x109);
4372  let mut x126: u32 = 0;
4373  fiat_p256_cmovznz_u32(&mut x126, x3, (*IndexConst(arg5).index(0)), x110);
4374  let mut x127: u32 = 0;
4375  fiat_p256_cmovznz_u32(&mut x127, x3, (*IndexConst(arg5).index(1)), x112);
4376  let mut x128: u32 = 0;
4377  fiat_p256_cmovznz_u32(&mut x128, x3, (*IndexConst(arg5).index(2)), x114);
4378  let mut x129: u32 = 0;
4379  fiat_p256_cmovznz_u32(&mut x129, x3, (*IndexConst(arg5).index(3)), x116);
4380  let mut x130: u32 = 0;
4381  fiat_p256_cmovznz_u32(&mut x130, x3, (*IndexConst(arg5).index(4)), x118);
4382  let mut x131: u32 = 0;
4383  fiat_p256_cmovznz_u32(&mut x131, x3, (*IndexConst(arg5).index(5)), x120);
4384  let mut x132: u32 = 0;
4385  fiat_p256_cmovznz_u32(&mut x132, x3, (*IndexConst(arg5).index(6)), x122);
4386  let mut x133: u32 = 0;
4387  fiat_p256_cmovznz_u32(&mut x133, x3, (*IndexConst(arg5).index(7)), x124);
4388  let x134: fiat_p256_u1 = ((x34 & (0x1 as u32)) as fiat_p256_u1);
4389  let mut x135: u32 = 0;
4390  fiat_p256_cmovznz_u32(&mut x135, x134, (0x0 as u32), x7);
4391  let mut x136: u32 = 0;
4392  fiat_p256_cmovznz_u32(&mut x136, x134, (0x0 as u32), x8);
4393  let mut x137: u32 = 0;
4394  fiat_p256_cmovznz_u32(&mut x137, x134, (0x0 as u32), x9);
4395  let mut x138: u32 = 0;
4396  fiat_p256_cmovznz_u32(&mut x138, x134, (0x0 as u32), x10);
4397  let mut x139: u32 = 0;
4398  fiat_p256_cmovznz_u32(&mut x139, x134, (0x0 as u32), x11);
4399  let mut x140: u32 = 0;
4400  fiat_p256_cmovznz_u32(&mut x140, x134, (0x0 as u32), x12);
4401  let mut x141: u32 = 0;
4402  fiat_p256_cmovznz_u32(&mut x141, x134, (0x0 as u32), x13);
4403  let mut x142: u32 = 0;
4404  fiat_p256_cmovznz_u32(&mut x142, x134, (0x0 as u32), x14);
4405  let mut x143: u32 = 0;
4406  fiat_p256_cmovznz_u32(&mut x143, x134, (0x0 as u32), x15);
4407  let mut x144: u32 = 0;
4408  let mut x145: fiat_p256_u1 = 0;
4409  fiat_p256_addcarryx_u32(&mut x144, &mut x145, 0x0, x34, x135);
4410  let mut x146: u32 = 0;
4411  let mut x147: fiat_p256_u1 = 0;
4412  fiat_p256_addcarryx_u32(&mut x146, &mut x147, x145, x35, x136);
4413  let mut x148: u32 = 0;
4414  let mut x149: fiat_p256_u1 = 0;
4415  fiat_p256_addcarryx_u32(&mut x148, &mut x149, x147, x36, x137);
4416  let mut x150: u32 = 0;
4417  let mut x151: fiat_p256_u1 = 0;
4418  fiat_p256_addcarryx_u32(&mut x150, &mut x151, x149, x37, x138);
4419  let mut x152: u32 = 0;
4420  let mut x153: fiat_p256_u1 = 0;
4421  fiat_p256_addcarryx_u32(&mut x152, &mut x153, x151, x38, x139);
4422  let mut x154: u32 = 0;
4423  let mut x155: fiat_p256_u1 = 0;
4424  fiat_p256_addcarryx_u32(&mut x154, &mut x155, x153, x39, x140);
4425  let mut x156: u32 = 0;
4426  let mut x157: fiat_p256_u1 = 0;
4427  fiat_p256_addcarryx_u32(&mut x156, &mut x157, x155, x40, x141);
4428  let mut x158: u32 = 0;
4429  let mut x159: fiat_p256_u1 = 0;
4430  fiat_p256_addcarryx_u32(&mut x158, &mut x159, x157, x41, x142);
4431  let mut x160: u32 = 0;
4432  let mut x161: fiat_p256_u1 = 0;
4433  fiat_p256_addcarryx_u32(&mut x160, &mut x161, x159, x42, x143);
4434  let mut x162: u32 = 0;
4435  fiat_p256_cmovznz_u32(&mut x162, x134, (0x0 as u32), x43);
4436  let mut x163: u32 = 0;
4437  fiat_p256_cmovznz_u32(&mut x163, x134, (0x0 as u32), x44);
4438  let mut x164: u32 = 0;
4439  fiat_p256_cmovznz_u32(&mut x164, x134, (0x0 as u32), x45);
4440  let mut x165: u32 = 0;
4441  fiat_p256_cmovznz_u32(&mut x165, x134, (0x0 as u32), x46);
4442  let mut x166: u32 = 0;
4443  fiat_p256_cmovznz_u32(&mut x166, x134, (0x0 as u32), x47);
4444  let mut x167: u32 = 0;
4445  fiat_p256_cmovznz_u32(&mut x167, x134, (0x0 as u32), x48);
4446  let mut x168: u32 = 0;
4447  fiat_p256_cmovznz_u32(&mut x168, x134, (0x0 as u32), x49);
4448  let mut x169: u32 = 0;
4449  fiat_p256_cmovznz_u32(&mut x169, x134, (0x0 as u32), x50);
4450  let mut x170: u32 = 0;
4451  let mut x171: fiat_p256_u1 = 0;
4452  fiat_p256_addcarryx_u32(&mut x170, &mut x171, 0x0, x126, x162);
4453  let mut x172: u32 = 0;
4454  let mut x173: fiat_p256_u1 = 0;
4455  fiat_p256_addcarryx_u32(&mut x172, &mut x173, x171, x127, x163);
4456  let mut x174: u32 = 0;
4457  let mut x175: fiat_p256_u1 = 0;
4458  fiat_p256_addcarryx_u32(&mut x174, &mut x175, x173, x128, x164);
4459  let mut x176: u32 = 0;
4460  let mut x177: fiat_p256_u1 = 0;
4461  fiat_p256_addcarryx_u32(&mut x176, &mut x177, x175, x129, x165);
4462  let mut x178: u32 = 0;
4463  let mut x179: fiat_p256_u1 = 0;
4464  fiat_p256_addcarryx_u32(&mut x178, &mut x179, x177, x130, x166);
4465  let mut x180: u32 = 0;
4466  let mut x181: fiat_p256_u1 = 0;
4467  fiat_p256_addcarryx_u32(&mut x180, &mut x181, x179, x131, x167);
4468  let mut x182: u32 = 0;
4469  let mut x183: fiat_p256_u1 = 0;
4470  fiat_p256_addcarryx_u32(&mut x182, &mut x183, x181, x132, x168);
4471  let mut x184: u32 = 0;
4472  let mut x185: fiat_p256_u1 = 0;
4473  fiat_p256_addcarryx_u32(&mut x184, &mut x185, x183, x133, x169);
4474  let mut x186: u32 = 0;
4475  let mut x187: fiat_p256_u1 = 0;
4476  fiat_p256_subborrowx_u32(&mut x186, &mut x187, 0x0, x170, 0xffffffff);
4477  let mut x188: u32 = 0;
4478  let mut x189: fiat_p256_u1 = 0;
4479  fiat_p256_subborrowx_u32(&mut x188, &mut x189, x187, x172, 0xffffffff);
4480  let mut x190: u32 = 0;
4481  let mut x191: fiat_p256_u1 = 0;
4482  fiat_p256_subborrowx_u32(&mut x190, &mut x191, x189, x174, 0xffffffff);
4483  let mut x192: u32 = 0;
4484  let mut x193: fiat_p256_u1 = 0;
4485  fiat_p256_subborrowx_u32(&mut x192, &mut x193, x191, x176, (0x0 as u32));
4486  let mut x194: u32 = 0;
4487  let mut x195: fiat_p256_u1 = 0;
4488  fiat_p256_subborrowx_u32(&mut x194, &mut x195, x193, x178, (0x0 as u32));
4489  let mut x196: u32 = 0;
4490  let mut x197: fiat_p256_u1 = 0;
4491  fiat_p256_subborrowx_u32(&mut x196, &mut x197, x195, x180, (0x0 as u32));
4492  let mut x198: u32 = 0;
4493  let mut x199: fiat_p256_u1 = 0;
4494  fiat_p256_subborrowx_u32(&mut x198, &mut x199, x197, x182, (0x1 as u32));
4495  let mut x200: u32 = 0;
4496  let mut x201: fiat_p256_u1 = 0;
4497  fiat_p256_subborrowx_u32(&mut x200, &mut x201, x199, x184, 0xffffffff);
4498  let mut x202: u32 = 0;
4499  let mut x203: fiat_p256_u1 = 0;
4500  fiat_p256_subborrowx_u32(&mut x202, &mut x203, x201, (x185 as u32), (0x0 as u32));
4501  let mut x204: u32 = 0;
4502  let mut x205: fiat_p256_u1 = 0;
4503  fiat_p256_addcarryx_u32(&mut x204, &mut x205, 0x0, x6, (0x1 as u32));
4504  let x206: u32 = ((x144 >> 1) | ((x146 << 31) & 0xffffffff));
4505  let x207: u32 = ((x146 >> 1) | ((x148 << 31) & 0xffffffff));
4506  let x208: u32 = ((x148 >> 1) | ((x150 << 31) & 0xffffffff));
4507  let x209: u32 = ((x150 >> 1) | ((x152 << 31) & 0xffffffff));
4508  let x210: u32 = ((x152 >> 1) | ((x154 << 31) & 0xffffffff));
4509  let x211: u32 = ((x154 >> 1) | ((x156 << 31) & 0xffffffff));
4510  let x212: u32 = ((x156 >> 1) | ((x158 << 31) & 0xffffffff));
4511  let x213: u32 = ((x158 >> 1) | ((x160 << 31) & 0xffffffff));
4512  let x214: u32 = ((x160 & 0x80000000) | (x160 >> 1));
4513  let mut x215: u32 = 0;
4514  fiat_p256_cmovznz_u32(&mut x215, x84, x67, x51);
4515  let mut x216: u32 = 0;
4516  fiat_p256_cmovznz_u32(&mut x216, x84, x69, x53);
4517  let mut x217: u32 = 0;
4518  fiat_p256_cmovznz_u32(&mut x217, x84, x71, x55);
4519  let mut x218: u32 = 0;
4520  fiat_p256_cmovznz_u32(&mut x218, x84, x73, x57);
4521  let mut x219: u32 = 0;
4522  fiat_p256_cmovznz_u32(&mut x219, x84, x75, x59);
4523  let mut x220: u32 = 0;
4524  fiat_p256_cmovznz_u32(&mut x220, x84, x77, x61);
4525  let mut x221: u32 = 0;
4526  fiat_p256_cmovznz_u32(&mut x221, x84, x79, x63);
4527  let mut x222: u32 = 0;
4528  fiat_p256_cmovznz_u32(&mut x222, x84, x81, x65);
4529  let mut x223: u32 = 0;
4530  fiat_p256_cmovznz_u32(&mut x223, x203, x186, x170);
4531  let mut x224: u32 = 0;
4532  fiat_p256_cmovznz_u32(&mut x224, x203, x188, x172);
4533  let mut x225: u32 = 0;
4534  fiat_p256_cmovznz_u32(&mut x225, x203, x190, x174);
4535  let mut x226: u32 = 0;
4536  fiat_p256_cmovznz_u32(&mut x226, x203, x192, x176);
4537  let mut x227: u32 = 0;
4538  fiat_p256_cmovznz_u32(&mut x227, x203, x194, x178);
4539  let mut x228: u32 = 0;
4540  fiat_p256_cmovznz_u32(&mut x228, x203, x196, x180);
4541  let mut x229: u32 = 0;
4542  fiat_p256_cmovznz_u32(&mut x229, x203, x198, x182);
4543  let mut x230: u32 = 0;
4544  fiat_p256_cmovznz_u32(&mut x230, x203, x200, x184);
4545  *out1 = x204;
4546  *IndexConst(&mut out2).index_mut(0) = x7;
4547  *IndexConst(&mut out2).index_mut(1) = x8;
4548  *IndexConst(&mut out2).index_mut(2) = x9;
4549  *IndexConst(&mut out2).index_mut(3) = x10;
4550  *IndexConst(&mut out2).index_mut(4) = x11;
4551  *IndexConst(&mut out2).index_mut(5) = x12;
4552  *IndexConst(&mut out2).index_mut(6) = x13;
4553  *IndexConst(&mut out2).index_mut(7) = x14;
4554  *IndexConst(&mut out2).index_mut(8) = x15;
4555  *IndexConst(&mut out3).index_mut(0) = x206;
4556  *IndexConst(&mut out3).index_mut(1) = x207;
4557  *IndexConst(&mut out3).index_mut(2) = x208;
4558  *IndexConst(&mut out3).index_mut(3) = x209;
4559  *IndexConst(&mut out3).index_mut(4) = x210;
4560  *IndexConst(&mut out3).index_mut(5) = x211;
4561  *IndexConst(&mut out3).index_mut(6) = x212;
4562  *IndexConst(&mut out3).index_mut(7) = x213;
4563  *IndexConst(&mut out3).index_mut(8) = x214;
4564  *IndexConst(&mut out4).index_mut(0) = x215;
4565  *IndexConst(&mut out4).index_mut(1) = x216;
4566  *IndexConst(&mut out4).index_mut(2) = x217;
4567  *IndexConst(&mut out4).index_mut(3) = x218;
4568  *IndexConst(&mut out4).index_mut(4) = x219;
4569  *IndexConst(&mut out4).index_mut(5) = x220;
4570  *IndexConst(&mut out4).index_mut(6) = x221;
4571  *IndexConst(&mut out4).index_mut(7) = x222;
4572  *IndexConst(&mut out5).index_mut(0) = x223;
4573  *IndexConst(&mut out5).index_mut(1) = x224;
4574  *IndexConst(&mut out5).index_mut(2) = x225;
4575  *IndexConst(&mut out5).index_mut(3) = x226;
4576  *IndexConst(&mut out5).index_mut(4) = x227;
4577  *IndexConst(&mut out5).index_mut(5) = x228;
4578  *IndexConst(&mut out5).index_mut(6) = x229;
4579  *IndexConst(&mut out5).index_mut(7) = x230;
4580}
4581
4582/// The function fiat_p256_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form).
4583///
4584/// Postconditions:
4585///   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⌋)
4586///   0 ≤ eval out1 < m
4587///
4588/// Output Bounds:
4589///   out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]
4590#[inline]
4591pub const fn fiat_p256_divstep_precomp(mut out1: &mut [u32; 8]) {
4592  *IndexConst(&mut out1).index_mut(0) = 0xb8000000;
4593  *IndexConst(&mut out1).index_mut(1) = 0x67ffffff;
4594  *IndexConst(&mut out1).index_mut(2) = 0x38000000;
4595  *IndexConst(&mut out1).index_mut(3) = 0xc0000000;
4596  *IndexConst(&mut out1).index_mut(4) = 0x7fffffff;
4597  *IndexConst(&mut out1).index_mut(5) = 0xd8000000;
4598  *IndexConst(&mut out1).index_mut(6) = 0xffffffff;
4599  *IndexConst(&mut out1).index_mut(7) = 0x2fffffff;
4600}