diff mbox series

[meta-lts-mixins,kirkstone/rust] rust: Fix DEBUG build segfault with p384 crate on Rust <= 1.85.1

Message ID 20250709072014.1978605-1-Yash.Shinde@windriver.com
State New
Headers show
Series [meta-lts-mixins,kirkstone/rust] rust: Fix DEBUG build segfault with p384 crate on Rust <= 1.85.1 | expand

Commit Message

Yash Shinde July 9, 2025, 7:20 a.m. UTC
From: Yash Shinde <Yash.Shinde@windriver.com>

Backport a fix to address a segmentation fault in DEBUG builds when compiling
the `p384` crate v0.13.0. The issue results in a stack overflow and SIGSEGV during compilation:

error: rustc interrupted by SIGSEGV, printing backtrace

TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-wrs-linux-gnueabi/cargo/1.85.1-r0/recipe-sysroot-native/usr/bin/../lib/librustc_driver-9603b88fd542d97b.so(+0x1f43519) [0x7f9749cf6519]

note: rustc unexpectedly overflowed its stack! this is a bug
note: maximum backtrace depth reached, frames may have been lost
note: we would appreciate a report at https://github.com/rust-lang/rust
    Building [=================>       ] 255/351: maybe-async, curl-sys(bui...
error: could not compile `p384` (lib)

This segfault is caused by the unused mut fiat-crypto variables in p384 crate v0.13.0,.
Rust v1.85.1 is vulnerable to this segfault since,the
issue is resolved in p384 v0.13.1, included in Rust v1.86.0 and later.

https://github.com/RustCrypto/elliptic-curves/commit/7652c5842cde60acc1e739ebbba34614cb158f8b

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
---
 recipes-devtools/rust/files/p384_crate.patch | 25901 +++++++++++++++++
 recipes-devtools/rust/rust-source.inc        |     1 +
 2 files changed, 25902 insertions(+)
 create mode 100644 recipes-devtools/rust/files/p384_crate.patch

Comments

Randy MacLeod July 9, 2025, 2:01 p.m. UTC | #1
On 2025-07-09 3:20 a.m., Yash.Shinde@windriver.com wrote:
> From: Yash Shinde<Yash.Shinde@windriver.com>
>
> Backport a fix to address a segmentation fault in DEBUG builds when compiling\

No, too much of a change.


Sorry that I wasn't clear, I wanted you to provide the two line
change that changed the debug build into a release build.

Scott,

Will you take that?


At some point, we'd update to a version of rust that has this fix - 
1.86, right Yash?

../Randy

> the `p384` crate v0.13.0. The issue results in a stack overflow and SIGSEGV during compilation:
>
> error: rustc interrupted by SIGSEGV, printing backtrace
>
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-wrs-linux-gnueabi/cargo/1.85.1-r0/recipe-sysroot-native/usr/bin/../lib/librustc_driver-9603b88fd542d97b.so(+0x1f43519) [0x7f9749cf6519]
>
> note: rustc unexpectedly overflowed its stack! this is a bug
> note: maximum backtrace depth reached, frames may have been lost
> note: we would appreciate a report athttps://github.com/rust-lang/rust
>      Building [=================>       ] 255/351: maybe-async, curl-sys(bui...
> error: could not compile `p384` (lib)
>
> This segfault is caused by the unused mut fiat-crypto variables in p384 crate v0.13.0,.
> Rust v1.85.1 is vulnerable to this segfault since,the
> issue is resolved in p384 v0.13.1, included in Rust v1.86.0 and later.
>
> https://github.com/RustCrypto/elliptic-curves/commit/7652c5842cde60acc1e739ebbba34614cb158f8b
>
> Signed-off-by: Yash Shinde<Yash.Shinde@windriver.com>
> ---
>   recipes-devtools/rust/files/p384_crate.patch | 25901 +++++++++++++++++
>   recipes-devtools/rust/rust-source.inc        |     1 +
>   2 files changed, 25902 insertions(+)
>   create mode 100644 recipes-devtools/rust/files/p384_crate.patch
>
> diff --git a/recipes-devtools/rust/files/p384_crate.patch b/recipes-devtools/rust/files/p384_crate.patch
> new file mode 100644
> index 0000000..51c1838
> --- /dev/null
> +++ b/recipes-devtools/rust/files/p384_crate.patch
> @@ -0,0 +1,25901 @@
> +Add "[ignore]" tags to the failing unit tests to
> +ignore them during rust oe-selftest.
> +
> +Upstream-Status: Inappropriate [OE testing specific]
> +
> +Signed-off-by: Yash Shinde<Yash.Shinde@windriver.com>
> +commit 7652c5842cde60acc1e739ebbba34614cb158f8b
> +Author: Brent Lewis<coder0xff@gmail.com>
> +Date:   Wed Mar 13 14:06:35 2024 -0700
> +
> +    p384: remove unused fiat-crypto variables (#1035)
> +
> +    Uses fiat-constify from RustCrypto/utils#1057 to regen field backends
> +
> +    Closes #1034
> +
> +diff --git a/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs b/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs
> +index bfe8100..ff6b302 100644
> +--- a/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs
> ++++ b/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs
> +@@ -160,2476 +160,856 @@ pub const fn fiat_p384_mul(
> +     let x10: u32 = (arg1[10]);
> +     let x11: u32 = (arg1[11]);
> +     let x12: u32 = (arg1[0]);
> +-    let mut x13: u32 = 0;
> +-    let mut x14: u32 = 0;
> +     let (x13, x14) = fiat_p384_mulx_u32(x12, (arg2[11]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: u32 = 0;
> +     let (x15, x16) = fiat_p384_mulx_u32(x12, (arg2[10]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: u32 = 0;
> +     let (x17, x18) = fiat_p384_mulx_u32(x12, (arg2[9]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: u32 = 0;
> +     let (x19, x20) = fiat_p384_mulx_u32(x12, (arg2[8]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: u32 = 0;
> +     let (x21, x22) = fiat_p384_mulx_u32(x12, (arg2[7]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: u32 = 0;
> +     let (x23, x24) = fiat_p384_mulx_u32(x12, (arg2[6]));
> +-    let mut x25: u32 = 0;
> +-    let mut x26: u32 = 0;
> +     let (x25, x26) = fiat_p384_mulx_u32(x12, (arg2[5]));
> +-    let mut x27: u32 = 0;
> +-    let mut x28: u32 = 0;
> +     let (x27, x28) = fiat_p384_mulx_u32(x12, (arg2[4]));
> +-    let mut x29: u32 = 0;
> +-    let mut x30: u32 = 0;
> +     let (x29, x30) = fiat_p384_mulx_u32(x12, (arg2[3]));
> +-    let mut x31: u32 = 0;
> +-    let mut x32: u32 = 0;
> +     let (x31, x32) = fiat_p384_mulx_u32(x12, (arg2[2]));
> +-    let mut x33: u32 = 0;
> +-    let mut x34: u32 = 0;
> +     let (x33, x34) = fiat_p384_mulx_u32(x12, (arg2[1]));
> +-    let mut x35: u32 = 0;
> +-    let mut x36: u32 = 0;
> +     let (x35, x36) = fiat_p384_mulx_u32(x12, (arg2[0]));
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_u1 = 0;
> +     let (x37, x38) = fiat_p384_addcarryx_u32(0x0, x36, x33);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_u1 = 0;
> +     let (x39, x40) = fiat_p384_addcarryx_u32(x38, x34, x31);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_u1 = 0;
> +     let (x41, x42) = fiat_p384_addcarryx_u32(x40, x32, x29);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_u1 = 0;
> +     let (x43, x44) = fiat_p384_addcarryx_u32(x42, x30, x27);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_u1 = 0;
> +     let (x45, x46) = fiat_p384_addcarryx_u32(x44, x28, x25);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_u1 = 0;
> +     let (x47, x48) = fiat_p384_addcarryx_u32(x46, x26, x23);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_u1 = 0;
> +     let (x49, x50) = fiat_p384_addcarryx_u32(x48, x24, x21);
> +-    let mut x51: u32 = 0;
> +-    let mut x52: fiat_p384_u1 = 0;
> +     let (x51, x52) = fiat_p384_addcarryx_u32(x50, x22, x19);
> +-    let mut x53: u32 = 0;
> +-    let mut x54: fiat_p384_u1 = 0;
> +     let (x53, x54) = fiat_p384_addcarryx_u32(x52, x20, x17);
> +-    let mut x55: u32 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_addcarryx_u32(x54, x18, x15);
> +-    let mut x57: u32 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_addcarryx_u32(x56, x16, x13);
> +     let x59: u32 = ((x58 as u32) + x14);
> +-    let mut x60: u32 = 0;
> +-    let mut x61: u32 = 0;
> +     let (x60, x61) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x62: u32 = 0;
> +-    let mut x63: u32 = 0;
> +     let (x62, x63) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x64: u32 = 0;
> +-    let mut x65: u32 = 0;
> +     let (x64, x65) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x66: u32 = 0;
> +-    let mut x67: u32 = 0;
> +     let (x66, x67) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x68: u32 = 0;
> +-    let mut x69: u32 = 0;
> +     let (x68, x69) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x70: u32 = 0;
> +-    let mut x71: u32 = 0;
> +     let (x70, x71) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x72: u32 = 0;
> +-    let mut x73: u32 = 0;
> +     let (x72, x73) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x74: u32 = 0;
> +-    let mut x75: u32 = 0;
> +     let (x74, x75) = fiat_p384_mulx_u32(x35, 0xfffffffe);
> +-    let mut x76: u32 = 0;
> +-    let mut x77: u32 = 0;
> +     let (x76, x77) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x78: u32 = 0;
> +-    let mut x79: u32 = 0;
> +     let (x78, x79) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x80: u32 = 0;
> +-    let mut x81: fiat_p384_u1 = 0;
> +     let (x80, x81) = fiat_p384_addcarryx_u32(0x0, x77, x74);
> +-    let mut x82: u32 = 0;
> +-    let mut x83: fiat_p384_u1 = 0;
> +     let (x82, x83) = fiat_p384_addcarryx_u32(x81, x75, x72);
> +-    let mut x84: u32 = 0;
> +-    let mut x85: fiat_p384_u1 = 0;
> +     let (x84, x85) = fiat_p384_addcarryx_u32(x83, x73, x70);
> +-    let mut x86: u32 = 0;
> +-    let mut x87: fiat_p384_u1 = 0;
> +     let (x86, x87) = fiat_p384_addcarryx_u32(x85, x71, x68);
> +-    let mut x88: u32 = 0;
> +-    let mut x89: fiat_p384_u1 = 0;
> +     let (x88, x89) = fiat_p384_addcarryx_u32(x87, x69, x66);
> +-    let mut x90: u32 = 0;
> +-    let mut x91: fiat_p384_u1 = 0;
> +     let (x90, x91) = fiat_p384_addcarryx_u32(x89, x67, x64);
> +-    let mut x92: u32 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u32(x91, x65, x62);
> +-    let mut x94: u32 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u32(x93, x63, x60);
> +     let x96: u32 = ((x95 as u32) + x61);
> +-    let mut x97: u32 = 0;
> +-    let mut x98: fiat_p384_u1 = 0;
> +     let (x97, x98) = fiat_p384_addcarryx_u32(0x0, x35, x78);
> +-    let mut x99: u32 = 0;
> +-    let mut x100: fiat_p384_u1 = 0;
> +     let (x99, x100) = fiat_p384_addcarryx_u32(x98, x37, x79);
> +-    let mut x101: u32 = 0;
> +-    let mut x102: fiat_p384_u1 = 0;
> +     let (x101, x102) = fiat_p384_addcarryx_u32(x100, x39, (0x0 as u32));
> +-    let mut x103: u32 = 0;
> +-    let mut x104: fiat_p384_u1 = 0;
> +     let (x103, x104) = fiat_p384_addcarryx_u32(x102, x41, x76);
> +-    let mut x105: u32 = 0;
> +-    let mut x106: fiat_p384_u1 = 0;
> +     let (x105, x106) = fiat_p384_addcarryx_u32(x104, x43, x80);
> +-    let mut x107: u32 = 0;
> +-    let mut x108: fiat_p384_u1 = 0;
> +     let (x107, x108) = fiat_p384_addcarryx_u32(x106, x45, x82);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_u1 = 0;
> +     let (x109, x110) = fiat_p384_addcarryx_u32(x108, x47, x84);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_u1 = 0;
> +     let (x111, x112) = fiat_p384_addcarryx_u32(x110, x49, x86);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_u1 = 0;
> +     let (x113, x114) = fiat_p384_addcarryx_u32(x112, x51, x88);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_u1 = 0;
> +     let (x115, x116) = fiat_p384_addcarryx_u32(x114, x53, x90);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_u1 = 0;
> +     let (x117, x118) = fiat_p384_addcarryx_u32(x116, x55, x92);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_u1 = 0;
> +     let (x119, x120) = fiat_p384_addcarryx_u32(x118, x57, x94);
> +-    let mut x121: u32 = 0;
> +-    let mut x122: fiat_p384_u1 = 0;
> +     let (x121, x122) = fiat_p384_addcarryx_u32(x120, x59, x96);
> +-    let mut x123: u32 = 0;
> +-    let mut x124: u32 = 0;
> +     let (x123, x124) = fiat_p384_mulx_u32(x1, (arg2[11]));
> +-    let mut x125: u32 = 0;
> +-    let mut x126: u32 = 0;
> +     let (x125, x126) = fiat_p384_mulx_u32(x1, (arg2[10]));
> +-    let mut x127: u32 = 0;
> +-    let mut x128: u32 = 0;
> +     let (x127, x128) = fiat_p384_mulx_u32(x1, (arg2[9]));
> +-    let mut x129: u32 = 0;
> +-    let mut x130: u32 = 0;
> +     let (x129, x130) = fiat_p384_mulx_u32(x1, (arg2[8]));
> +-    let mut x131: u32 = 0;
> +-    let mut x132: u32 = 0;
> +     let (x131, x132) = fiat_p384_mulx_u32(x1, (arg2[7]));
> +-    let mut x133: u32 = 0;
> +-    let mut x134: u32 = 0;
> +     let (x133, x134) = fiat_p384_mulx_u32(x1, (arg2[6]));
> +-    let mut x135: u32 = 0;
> +-    let mut x136: u32 = 0;
> +     let (x135, x136) = fiat_p384_mulx_u32(x1, (arg2[5]));
> +-    let mut x137: u32 = 0;
> +-    let mut x138: u32 = 0;
> +     let (x137, x138) = fiat_p384_mulx_u32(x1, (arg2[4]));
> +-    let mut x139: u32 = 0;
> +-    let mut x140: u32 = 0;
> +     let (x139, x140) = fiat_p384_mulx_u32(x1, (arg2[3]));
> +-    let mut x141: u32 = 0;
> +-    let mut x142: u32 = 0;
> +     let (x141, x142) = fiat_p384_mulx_u32(x1, (arg2[2]));
> +-    let mut x143: u32 = 0;
> +-    let mut x144: u32 = 0;
> +     let (x143, x144) = fiat_p384_mulx_u32(x1, (arg2[1]));
> +-    let mut x145: u32 = 0;
> +-    let mut x146: u32 = 0;
> +     let (x145, x146) = fiat_p384_mulx_u32(x1, (arg2[0]));
> +-    let mut x147: u32 = 0;
> +-    let mut x148: fiat_p384_u1 = 0;
> +     let (x147, x148) = fiat_p384_addcarryx_u32(0x0, x146, x143);
> +-    let mut x149: u32 = 0;
> +-    let mut x150: fiat_p384_u1 = 0;
> +     let (x149, x150) = fiat_p384_addcarryx_u32(x148, x144, x141);
> +-    let mut x151: u32 = 0;
> +-    let mut x152: fiat_p384_u1 = 0;
> +     let (x151, x152) = fiat_p384_addcarryx_u32(x150, x142, x139);
> +-    let mut x153: u32 = 0;
> +-    let mut x154: fiat_p384_u1 = 0;
> +     let (x153, x154) = fiat_p384_addcarryx_u32(x152, x140, x137);
> +-    let mut x155: u32 = 0;
> +-    let mut x156: fiat_p384_u1 = 0;
> +     let (x155, x156) = fiat_p384_addcarryx_u32(x154, x138, x135);
> +-    let mut x157: u32 = 0;
> +-    let mut x158: fiat_p384_u1 = 0;
> +     let (x157, x158) = fiat_p384_addcarryx_u32(x156, x136, x133);
> +-    let mut x159: u32 = 0;
> +-    let mut x160: fiat_p384_u1 = 0;
> +     let (x159, x160) = fiat_p384_addcarryx_u32(x158, x134, x131);
> +-    let mut x161: u32 = 0;
> +-    let mut x162: fiat_p384_u1 = 0;
> +     let (x161, x162) = fiat_p384_addcarryx_u32(x160, x132, x129);
> +-    let mut x163: u32 = 0;
> +-    let mut x164: fiat_p384_u1 = 0;
> +     let (x163, x164) = fiat_p384_addcarryx_u32(x162, x130, x127);
> +-    let mut x165: u32 = 0;
> +-    let mut x166: fiat_p384_u1 = 0;
> +     let (x165, x166) = fiat_p384_addcarryx_u32(x164, x128, x125);
> +-    let mut x167: u32 = 0;
> +-    let mut x168: fiat_p384_u1 = 0;
> +     let (x167, x168) = fiat_p384_addcarryx_u32(x166, x126, x123);
> +     let x169: u32 = ((x168 as u32) + x124);
> +-    let mut x170: u32 = 0;
> +-    let mut x171: fiat_p384_u1 = 0;
> +     let (x170, x171) = fiat_p384_addcarryx_u32(0x0, x99, x145);
> +-    let mut x172: u32 = 0;
> +-    let mut x173: fiat_p384_u1 = 0;
> +     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x101, x147);
> +-    let mut x174: u32 = 0;
> +-    let mut x175: fiat_p384_u1 = 0;
> +     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x103, x149);
> +-    let mut x176: u32 = 0;
> +-    let mut x177: fiat_p384_u1 = 0;
> +     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x105, x151);
> +-    let mut x178: u32 = 0;
> +-    let mut x179: fiat_p384_u1 = 0;
> +     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x107, x153);
> +-    let mut x180: u32 = 0;
> +-    let mut x181: fiat_p384_u1 = 0;
> +     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x109, x155);
> +-    let mut x182: u32 = 0;
> +-    let mut x183: fiat_p384_u1 = 0;
> +     let (x182, x183) = fiat_p384_addcarryx_u32(x181, x111, x157);
> +-    let mut x184: u32 = 0;
> +-    let mut x185: fiat_p384_u1 = 0;
> +     let (x184, x185) = fiat_p384_addcarryx_u32(x183, x113, x159);
> +-    let mut x186: u32 = 0;
> +-    let mut x187: fiat_p384_u1 = 0;
> +     let (x186, x187) = fiat_p384_addcarryx_u32(x185, x115, x161);
> +-    let mut x188: u32 = 0;
> +-    let mut x189: fiat_p384_u1 = 0;
> +     let (x188, x189) = fiat_p384_addcarryx_u32(x187, x117, x163);
> +-    let mut x190: u32 = 0;
> +-    let mut x191: fiat_p384_u1 = 0;
> +     let (x190, x191) = fiat_p384_addcarryx_u32(x189, x119, x165);
> +-    let mut x192: u32 = 0;
> +-    let mut x193: fiat_p384_u1 = 0;
> +     let (x192, x193) = fiat_p384_addcarryx_u32(x191, x121, x167);
> +-    let mut x194: u32 = 0;
> +-    let mut x195: fiat_p384_u1 = 0;
> +     let (x194, x195) = fiat_p384_addcarryx_u32(x193, (x122 as u32), x169);
> +-    let mut x196: u32 = 0;
> +-    let mut x197: u32 = 0;
> +     let (x196, x197) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x198: u32 = 0;
> +-    let mut x199: u32 = 0;
> +     let (x198, x199) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x200: u32 = 0;
> +-    let mut x201: u32 = 0;
> +     let (x200, x201) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x202: u32 = 0;
> +-    let mut x203: u32 = 0;
> +     let (x202, x203) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x204: u32 = 0;
> +-    let mut x205: u32 = 0;
> +     let (x204, x205) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x206: u32 = 0;
> +-    let mut x207: u32 = 0;
> +     let (x206, x207) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: u32 = 0;
> +     let (x208, x209) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: u32 = 0;
> +     let (x210, x211) = fiat_p384_mulx_u32(x170, 0xfffffffe);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: u32 = 0;
> +     let (x212, x213) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: u32 = 0;
> +     let (x214, x215) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: fiat_p384_u1 = 0;
> +     let (x216, x217) = fiat_p384_addcarryx_u32(0x0, x213, x210);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: fiat_p384_u1 = 0;
> +     let (x218, x219) = fiat_p384_addcarryx_u32(x217, x211, x208);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: fiat_p384_u1 = 0;
> +     let (x220, x221) = fiat_p384_addcarryx_u32(x219, x209, x206);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: fiat_p384_u1 = 0;
> +     let (x222, x223) = fiat_p384_addcarryx_u32(x221, x207, x204);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: fiat_p384_u1 = 0;
> +     let (x224, x225) = fiat_p384_addcarryx_u32(x223, x205, x202);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: fiat_p384_u1 = 0;
> +     let (x226, x227) = fiat_p384_addcarryx_u32(x225, x203, x200);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: fiat_p384_u1 = 0;
> +     let (x228, x229) = fiat_p384_addcarryx_u32(x227, x201, x198);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: fiat_p384_u1 = 0;
> +     let (x230, x231) = fiat_p384_addcarryx_u32(x229, x199, x196);
> +     let x232: u32 = ((x231 as u32) + x197);
> +-    let mut x233: u32 = 0;
> +-    let mut x234: fiat_p384_u1 = 0;
> +     let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x170, x214);
> +-    let mut x235: u32 = 0;
> +-    let mut x236: fiat_p384_u1 = 0;
> +     let (x235, x236) = fiat_p384_addcarryx_u32(x234, x172, x215);
> +-    let mut x237: u32 = 0;
> +-    let mut x238: fiat_p384_u1 = 0;
> +     let (x237, x238) = fiat_p384_addcarryx_u32(x236, x174, (0x0 as u32));
> +-    let mut x239: u32 = 0;
> +-    let mut x240: fiat_p384_u1 = 0;
> +     let (x239, x240) = fiat_p384_addcarryx_u32(x238, x176, x212);
> +-    let mut x241: u32 = 0;
> +-    let mut x242: fiat_p384_u1 = 0;
> +     let (x241, x242) = fiat_p384_addcarryx_u32(x240, x178, x216);
> +-    let mut x243: u32 = 0;
> +-    let mut x244: fiat_p384_u1 = 0;
> +     let (x243, x244) = fiat_p384_addcarryx_u32(x242, x180, x218);
> +-    let mut x245: u32 = 0;
> +-    let mut x246: fiat_p384_u1 = 0;
> +     let (x245, x246) = fiat_p384_addcarryx_u32(x244, x182, x220);
> +-    let mut x247: u32 = 0;
> +-    let mut x248: fiat_p384_u1 = 0;
> +     let (x247, x248) = fiat_p384_addcarryx_u32(x246, x184, x222);
> +-    let mut x249: u32 = 0;
> +-    let mut x250: fiat_p384_u1 = 0;
> +     let (x249, x250) = fiat_p384_addcarryx_u32(x248, x186, x224);
> +-    let mut x251: u32 = 0;
> +-    let mut x252: fiat_p384_u1 = 0;
> +     let (x251, x252) = fiat_p384_addcarryx_u32(x250, x188, x226);
> +-    let mut x253: u32 = 0;
> +-    let mut x254: fiat_p384_u1 = 0;
> +     let (x253, x254) = fiat_p384_addcarryx_u32(x252, x190, x228);
> +-    let mut x255: u32 = 0;
> +-    let mut x256: fiat_p384_u1 = 0;
> +     let (x255, x256) = fiat_p384_addcarryx_u32(x254, x192, x230);
> +-    let mut x257: u32 = 0;
> +-    let mut x258: fiat_p384_u1 = 0;
> +     let (x257, x258) = fiat_p384_addcarryx_u32(x256, x194, x232);
> +     let x259: u32 = ((x258 as u32) + (x195 as u32));
> +-    let mut x260: u32 = 0;
> +-    let mut x261: u32 = 0;
> +     let (x260, x261) = fiat_p384_mulx_u32(x2, (arg2[11]));
> +-    let mut x262: u32 = 0;
> +-    let mut x263: u32 = 0;
> +     let (x262, x263) = fiat_p384_mulx_u32(x2, (arg2[10]));
> +-    let mut x264: u32 = 0;
> +-    let mut x265: u32 = 0;
> +     let (x264, x265) = fiat_p384_mulx_u32(x2, (arg2[9]));
> +-    let mut x266: u32 = 0;
> +-    let mut x267: u32 = 0;
> +     let (x266, x267) = fiat_p384_mulx_u32(x2, (arg2[8]));
> +-    let mut x268: u32 = 0;
> +-    let mut x269: u32 = 0;
> +     let (x268, x269) = fiat_p384_mulx_u32(x2, (arg2[7]));
> +-    let mut x270: u32 = 0;
> +-    let mut x271: u32 = 0;
> +     let (x270, x271) = fiat_p384_mulx_u32(x2, (arg2[6]));
> +-    let mut x272: u32 = 0;
> +-    let mut x273: u32 = 0;
> +     let (x272, x273) = fiat_p384_mulx_u32(x2, (arg2[5]));
> +-    let mut x274: u32 = 0;
> +-    let mut x275: u32 = 0;
> +     let (x274, x275) = fiat_p384_mulx_u32(x2, (arg2[4]));
> +-    let mut x276: u32 = 0;
> +-    let mut x277: u32 = 0;
> +     let (x276, x277) = fiat_p384_mulx_u32(x2, (arg2[3]));
> +-    let mut x278: u32 = 0;
> +-    let mut x279: u32 = 0;
> +     let (x278, x279) = fiat_p384_mulx_u32(x2, (arg2[2]));
> +-    let mut x280: u32 = 0;
> +-    let mut x281: u32 = 0;
> +     let (x280, x281) = fiat_p384_mulx_u32(x2, (arg2[1]));
> +-    let mut x282: u32 = 0;
> +-    let mut x283: u32 = 0;
> +     let (x282, x283) = fiat_p384_mulx_u32(x2, (arg2[0]));
> +-    let mut x284: u32 = 0;
> +-    let mut x285: fiat_p384_u1 = 0;
> +     let (x284, x285) = fiat_p384_addcarryx_u32(0x0, x283, x280);
> +-    let mut x286: u32 = 0;
> +-    let mut x287: fiat_p384_u1 = 0;
> +     let (x286, x287) = fiat_p384_addcarryx_u32(x285, x281, x278);
> +-    let mut x288: u32 = 0;
> +-    let mut x289: fiat_p384_u1 = 0;
> +     let (x288, x289) = fiat_p384_addcarryx_u32(x287, x279, x276);
> +-    let mut x290: u32 = 0;
> +-    let mut x291: fiat_p384_u1 = 0;
> +     let (x290, x291) = fiat_p384_addcarryx_u32(x289, x277, x274);
> +-    let mut x292: u32 = 0;
> +-    let mut x293: fiat_p384_u1 = 0;
> +     let (x292, x293) = fiat_p384_addcarryx_u32(x291, x275, x272);
> +-    let mut x294: u32 = 0;
> +-    let mut x295: fiat_p384_u1 = 0;
> +     let (x294, x295) = fiat_p384_addcarryx_u32(x293, x273, x270);
> +-    let mut x296: u32 = 0;
> +-    let mut x297: fiat_p384_u1 = 0;
> +     let (x296, x297) = fiat_p384_addcarryx_u32(x295, x271, x268);
> +-    let mut x298: u32 = 0;
> +-    let mut x299: fiat_p384_u1 = 0;
> +     let (x298, x299) = fiat_p384_addcarryx_u32(x297, x269, x266);
> +-    let mut x300: u32 = 0;
> +-    let mut x301: fiat_p384_u1 = 0;
> +     let (x300, x301) = fiat_p384_addcarryx_u32(x299, x267, x264);
> +-    let mut x302: u32 = 0;
> +-    let mut x303: fiat_p384_u1 = 0;
> +     let (x302, x303) = fiat_p384_addcarryx_u32(x301, x265, x262);
> +-    let mut x304: u32 = 0;
> +-    let mut x305: fiat_p384_u1 = 0;
> +     let (x304, x305) = fiat_p384_addcarryx_u32(x303, x263, x260);
> +     let x306: u32 = ((x305 as u32) + x261);
> +-    let mut x307: u32 = 0;
> +-    let mut x308: fiat_p384_u1 = 0;
> +     let (x307, x308) = fiat_p384_addcarryx_u32(0x0, x235, x282);
> +-    let mut x309: u32 = 0;
> +-    let mut x310: fiat_p384_u1 = 0;
> +     let (x309, x310) = fiat_p384_addcarryx_u32(x308, x237, x284);
> +-    let mut x311: u32 = 0;
> +-    let mut x312: fiat_p384_u1 = 0;
> +     let (x311, x312) = fiat_p384_addcarryx_u32(x310, x239, x286);
> +-    let mut x313: u32 = 0;
> +-    let mut x314: fiat_p384_u1 = 0;
> +     let (x313, x314) = fiat_p384_addcarryx_u32(x312, x241, x288);
> +-    let mut x315: u32 = 0;
> +-    let mut x316: fiat_p384_u1 = 0;
> +     let (x315, x316) = fiat_p384_addcarryx_u32(x314, x243, x290);
> +-    let mut x317: u32 = 0;
> +-    let mut x318: fiat_p384_u1 = 0;
> +     let (x317, x318) = fiat_p384_addcarryx_u32(x316, x245, x292);
> +-    let mut x319: u32 = 0;
> +-    let mut x320: fiat_p384_u1 = 0;
> +     let (x319, x320) = fiat_p384_addcarryx_u32(x318, x247, x294);
> +-    let mut x321: u32 = 0;
> +-    let mut x322: fiat_p384_u1 = 0;
> +     let (x321, x322) = fiat_p384_addcarryx_u32(x320, x249, x296);
> +-    let mut x323: u32 = 0;
> +-    let mut x324: fiat_p384_u1 = 0;
> +     let (x323, x324) = fiat_p384_addcarryx_u32(x322, x251, x298);
> +-    let mut x325: u32 = 0;
> +-    let mut x326: fiat_p384_u1 = 0;
> +     let (x325, x326) = fiat_p384_addcarryx_u32(x324, x253, x300);
> +-    let mut x327: u32 = 0;
> +-    let mut x328: fiat_p384_u1 = 0;
> +     let (x327, x328) = fiat_p384_addcarryx_u32(x326, x255, x302);
> +-    let mut x329: u32 = 0;
> +-    let mut x330: fiat_p384_u1 = 0;
> +     let (x329, x330) = fiat_p384_addcarryx_u32(x328, x257, x304);
> +-    let mut x331: u32 = 0;
> +-    let mut x332: fiat_p384_u1 = 0;
> +     let (x331, x332) = fiat_p384_addcarryx_u32(x330, x259, x306);
> +-    let mut x333: u32 = 0;
> +-    let mut x334: u32 = 0;
> +     let (x333, x334) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x335: u32 = 0;
> +-    let mut x336: u32 = 0;
> +     let (x335, x336) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x337: u32 = 0;
> +-    let mut x338: u32 = 0;
> +     let (x337, x338) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x339: u32 = 0;
> +-    let mut x340: u32 = 0;
> +     let (x339, x340) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x341: u32 = 0;
> +-    let mut x342: u32 = 0;
> +     let (x341, x342) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x343: u32 = 0;
> +-    let mut x344: u32 = 0;
> +     let (x343, x344) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x345: u32 = 0;
> +-    let mut x346: u32 = 0;
> +     let (x345, x346) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x347: u32 = 0;
> +-    let mut x348: u32 = 0;
> +     let (x347, x348) = fiat_p384_mulx_u32(x307, 0xfffffffe);
> +-    let mut x349: u32 = 0;
> +-    let mut x350: u32 = 0;
> +     let (x349, x350) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x351: u32 = 0;
> +-    let mut x352: u32 = 0;
> +     let (x351, x352) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x353: u32 = 0;
> +-    let mut x354: fiat_p384_u1 = 0;
> +     let (x353, x354) = fiat_p384_addcarryx_u32(0x0, x350, x347);
> +-    let mut x355: u32 = 0;
> +-    let mut x356: fiat_p384_u1 = 0;
> +     let (x355, x356) = fiat_p384_addcarryx_u32(x354, x348, x345);
> +-    let mut x357: u32 = 0;
> +-    let mut x358: fiat_p384_u1 = 0;
> +     let (x357, x358) = fiat_p384_addcarryx_u32(x356, x346, x343);
> +-    let mut x359: u32 = 0;
> +-    let mut x360: fiat_p384_u1 = 0;
> +     let (x359, x360) = fiat_p384_addcarryx_u32(x358, x344, x341);
> +-    let mut x361: u32 = 0;
> +-    let mut x362: fiat_p384_u1 = 0;
> +     let (x361, x362) = fiat_p384_addcarryx_u32(x360, x342, x339);
> +-    let mut x363: u32 = 0;
> +-    let mut x364: fiat_p384_u1 = 0;
> +     let (x363, x364) = fiat_p384_addcarryx_u32(x362, x340, x337);
> +-    let mut x365: u32 = 0;
> +-    let mut x366: fiat_p384_u1 = 0;
> +     let (x365, x366) = fiat_p384_addcarryx_u32(x364, x338, x335);
> +-    let mut x367: u32 = 0;
> +-    let mut x368: fiat_p384_u1 = 0;
> +     let (x367, x368) = fiat_p384_addcarryx_u32(x366, x336, x333);
> +     let x369: u32 = ((x368 as u32) + x334);
> +-    let mut x370: u32 = 0;
> +-    let mut x371: fiat_p384_u1 = 0;
> +     let (x370, x371) = fiat_p384_addcarryx_u32(0x0, x307, x351);
> +-    let mut x372: u32 = 0;
> +-    let mut x373: fiat_p384_u1 = 0;
> +     let (x372, x373) = fiat_p384_addcarryx_u32(x371, x309, x352);
> +-    let mut x374: u32 = 0;
> +-    let mut x375: fiat_p384_u1 = 0;
> +     let (x374, x375) = fiat_p384_addcarryx_u32(x373, x311, (0x0 as u32));
> +-    let mut x376: u32 = 0;
> +-    let mut x377: fiat_p384_u1 = 0;
> +     let (x376, x377) = fiat_p384_addcarryx_u32(x375, x313, x349);
> +-    let mut x378: u32 = 0;
> +-    let mut x379: fiat_p384_u1 = 0;
> +     let (x378, x379) = fiat_p384_addcarryx_u32(x377, x315, x353);
> +-    let mut x380: u32 = 0;
> +-    let mut x381: fiat_p384_u1 = 0;
> +     let (x380, x381) = fiat_p384_addcarryx_u32(x379, x317, x355);
> +-    let mut x382: u32 = 0;
> +-    let mut x383: fiat_p384_u1 = 0;
> +     let (x382, x383) = fiat_p384_addcarryx_u32(x381, x319, x357);
> +-    let mut x384: u32 = 0;
> +-    let mut x385: fiat_p384_u1 = 0;
> +     let (x384, x385) = fiat_p384_addcarryx_u32(x383, x321, x359);
> +-    let mut x386: u32 = 0;
> +-    let mut x387: fiat_p384_u1 = 0;
> +     let (x386, x387) = fiat_p384_addcarryx_u32(x385, x323, x361);
> +-    let mut x388: u32 = 0;
> +-    let mut x389: fiat_p384_u1 = 0;
> +     let (x388, x389) = fiat_p384_addcarryx_u32(x387, x325, x363);
> +-    let mut x390: u32 = 0;
> +-    let mut x391: fiat_p384_u1 = 0;
> +     let (x390, x391) = fiat_p384_addcarryx_u32(x389, x327, x365);
> +-    let mut x392: u32 = 0;
> +-    let mut x393: fiat_p384_u1 = 0;
> +     let (x392, x393) = fiat_p384_addcarryx_u32(x391, x329, x367);
> +-    let mut x394: u32 = 0;
> +-    let mut x395: fiat_p384_u1 = 0;
> +     let (x394, x395) = fiat_p384_addcarryx_u32(x393, x331, x369);
> +     let x396: u32 = ((x395 as u32) + (x332 as u32));
> +-    let mut x397: u32 = 0;
> +-    let mut x398: u32 = 0;
> +     let (x397, x398) = fiat_p384_mulx_u32(x3, (arg2[11]));
> +-    let mut x399: u32 = 0;
> +-    let mut x400: u32 = 0;
> +     let (x399, x400) = fiat_p384_mulx_u32(x3, (arg2[10]));
> +-    let mut x401: u32 = 0;
> +-    let mut x402: u32 = 0;
> +     let (x401, x402) = fiat_p384_mulx_u32(x3, (arg2[9]));
> +-    let mut x403: u32 = 0;
> +-    let mut x404: u32 = 0;
> +     let (x403, x404) = fiat_p384_mulx_u32(x3, (arg2[8]));
> +-    let mut x405: u32 = 0;
> +-    let mut x406: u32 = 0;
> +     let (x405, x406) = fiat_p384_mulx_u32(x3, (arg2[7]));
> +-    let mut x407: u32 = 0;
> +-    let mut x408: u32 = 0;
> +     let (x407, x408) = fiat_p384_mulx_u32(x3, (arg2[6]));
> +-    let mut x409: u32 = 0;
> +-    let mut x410: u32 = 0;
> +     let (x409, x410) = fiat_p384_mulx_u32(x3, (arg2[5]));
> +-    let mut x411: u32 = 0;
> +-    let mut x412: u32 = 0;
> +     let (x411, x412) = fiat_p384_mulx_u32(x3, (arg2[4]));
> +-    let mut x413: u32 = 0;
> +-    let mut x414: u32 = 0;
> +     let (x413, x414) = fiat_p384_mulx_u32(x3, (arg2[3]));
> +-    let mut x415: u32 = 0;
> +-    let mut x416: u32 = 0;
> +     let (x415, x416) = fiat_p384_mulx_u32(x3, (arg2[2]));
> +-    let mut x417: u32 = 0;
> +-    let mut x418: u32 = 0;
> +     let (x417, x418) = fiat_p384_mulx_u32(x3, (arg2[1]));
> +-    let mut x419: u32 = 0;
> +-    let mut x420: u32 = 0;
> +     let (x419, x420) = fiat_p384_mulx_u32(x3, (arg2[0]));
> +-    let mut x421: u32 = 0;
> +-    let mut x422: fiat_p384_u1 = 0;
> +     let (x421, x422) = fiat_p384_addcarryx_u32(0x0, x420, x417);
> +-    let mut x423: u32 = 0;
> +-    let mut x424: fiat_p384_u1 = 0;
> +     let (x423, x424) = fiat_p384_addcarryx_u32(x422, x418, x415);
> +-    let mut x425: u32 = 0;
> +-    let mut x426: fiat_p384_u1 = 0;
> +     let (x425, x426) = fiat_p384_addcarryx_u32(x424, x416, x413);
> +-    let mut x427: u32 = 0;
> +-    let mut x428: fiat_p384_u1 = 0;
> +     let (x427, x428) = fiat_p384_addcarryx_u32(x426, x414, x411);
> +-    let mut x429: u32 = 0;
> +-    let mut x430: fiat_p384_u1 = 0;
> +     let (x429, x430) = fiat_p384_addcarryx_u32(x428, x412, x409);
> +-    let mut x431: u32 = 0;
> +-    let mut x432: fiat_p384_u1 = 0;
> +     let (x431, x432) = fiat_p384_addcarryx_u32(x430, x410, x407);
> +-    let mut x433: u32 = 0;
> +-    let mut x434: fiat_p384_u1 = 0;
> +     let (x433, x434) = fiat_p384_addcarryx_u32(x432, x408, x405);
> +-    let mut x435: u32 = 0;
> +-    let mut x436: fiat_p384_u1 = 0;
> +     let (x435, x436) = fiat_p384_addcarryx_u32(x434, x406, x403);
> +-    let mut x437: u32 = 0;
> +-    let mut x438: fiat_p384_u1 = 0;
> +     let (x437, x438) = fiat_p384_addcarryx_u32(x436, x404, x401);
> +-    let mut x439: u32 = 0;
> +-    let mut x440: fiat_p384_u1 = 0;
> +     let (x439, x440) = fiat_p384_addcarryx_u32(x438, x402, x399);
> +-    let mut x441: u32 = 0;
> +-    let mut x442: fiat_p384_u1 = 0;
> +     let (x441, x442) = fiat_p384_addcarryx_u32(x440, x400, x397);
> +     let x443: u32 = ((x442 as u32) + x398);
> +-    let mut x444: u32 = 0;
> +-    let mut x445: fiat_p384_u1 = 0;
> +     let (x444, x445) = fiat_p384_addcarryx_u32(0x0, x372, x419);
> +-    let mut x446: u32 = 0;
> +-    let mut x447: fiat_p384_u1 = 0;
> +     let (x446, x447) = fiat_p384_addcarryx_u32(x445, x374, x421);
> +-    let mut x448: u32 = 0;
> +-    let mut x449: fiat_p384_u1 = 0;
> +     let (x448, x449) = fiat_p384_addcarryx_u32(x447, x376, x423);
> +-    let mut x450: u32 = 0;
> +-    let mut x451: fiat_p384_u1 = 0;
> +     let (x450, x451) = fiat_p384_addcarryx_u32(x449, x378, x425);
> +-    let mut x452: u32 = 0;
> +-    let mut x453: fiat_p384_u1 = 0;
> +     let (x452, x453) = fiat_p384_addcarryx_u32(x451, x380, x427);
> +-    let mut x454: u32 = 0;
> +-    let mut x455: fiat_p384_u1 = 0;
> +     let (x454, x455) = fiat_p384_addcarryx_u32(x453, x382, x429);
> +-    let mut x456: u32 = 0;
> +-    let mut x457: fiat_p384_u1 = 0;
> +     let (x456, x457) = fiat_p384_addcarryx_u32(x455, x384, x431);
> +-    let mut x458: u32 = 0;
> +-    let mut x459: fiat_p384_u1 = 0;
> +     let (x458, x459) = fiat_p384_addcarryx_u32(x457, x386, x433);
> +-    let mut x460: u32 = 0;
> +-    let mut x461: fiat_p384_u1 = 0;
> +     let (x460, x461) = fiat_p384_addcarryx_u32(x459, x388, x435);
> +-    let mut x462: u32 = 0;
> +-    let mut x463: fiat_p384_u1 = 0;
> +     let (x462, x463) = fiat_p384_addcarryx_u32(x461, x390, x437);
> +-    let mut x464: u32 = 0;
> +-    let mut x465: fiat_p384_u1 = 0;
> +     let (x464, x465) = fiat_p384_addcarryx_u32(x463, x392, x439);
> +-    let mut x466: u32 = 0;
> +-    let mut x467: fiat_p384_u1 = 0;
> +     let (x466, x467) = fiat_p384_addcarryx_u32(x465, x394, x441);
> +-    let mut x468: u32 = 0;
> +-    let mut x469: fiat_p384_u1 = 0;
> +     let (x468, x469) = fiat_p384_addcarryx_u32(x467, x396, x443);
> +-    let mut x470: u32 = 0;
> +-    let mut x471: u32 = 0;
> +     let (x470, x471) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x472: u32 = 0;
> +-    let mut x473: u32 = 0;
> +     let (x472, x473) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x474: u32 = 0;
> +-    let mut x475: u32 = 0;
> +     let (x474, x475) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x476: u32 = 0;
> +-    let mut x477: u32 = 0;
> +     let (x476, x477) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x478: u32 = 0;
> +-    let mut x479: u32 = 0;
> +     let (x478, x479) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x480: u32 = 0;
> +-    let mut x481: u32 = 0;
> +     let (x480, x481) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x482: u32 = 0;
> +-    let mut x483: u32 = 0;
> +     let (x482, x483) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x484: u32 = 0;
> +-    let mut x485: u32 = 0;
> +     let (x484, x485) = fiat_p384_mulx_u32(x444, 0xfffffffe);
> +-    let mut x486: u32 = 0;
> +-    let mut x487: u32 = 0;
> +     let (x486, x487) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x488: u32 = 0;
> +-    let mut x489: u32 = 0;
> +     let (x488, x489) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x490: u32 = 0;
> +-    let mut x491: fiat_p384_u1 = 0;
> +     let (x490, x491) = fiat_p384_addcarryx_u32(0x0, x487, x484);
> +-    let mut x492: u32 = 0;
> +-    let mut x493: fiat_p384_u1 = 0;
> +     let (x492, x493) = fiat_p384_addcarryx_u32(x491, x485, x482);
> +-    let mut x494: u32 = 0;
> +-    let mut x495: fiat_p384_u1 = 0;
> +     let (x494, x495) = fiat_p384_addcarryx_u32(x493, x483, x480);
> +-    let mut x496: u32 = 0;
> +-    let mut x497: fiat_p384_u1 = 0;
> +     let (x496, x497) = fiat_p384_addcarryx_u32(x495, x481, x478);
> +-    let mut x498: u32 = 0;
> +-    let mut x499: fiat_p384_u1 = 0;
> +     let (x498, x499) = fiat_p384_addcarryx_u32(x497, x479, x476);
> +-    let mut x500: u32 = 0;
> +-    let mut x501: fiat_p384_u1 = 0;
> +     let (x500, x501) = fiat_p384_addcarryx_u32(x499, x477, x474);
> +-    let mut x502: u32 = 0;
> +-    let mut x503: fiat_p384_u1 = 0;
> +     let (x502, x503) = fiat_p384_addcarryx_u32(x501, x475, x472);
> +-    let mut x504: u32 = 0;
> +-    let mut x505: fiat_p384_u1 = 0;
> +     let (x504, x505) = fiat_p384_addcarryx_u32(x503, x473, x470);
> +     let x506: u32 = ((x505 as u32) + x471);
> +-    let mut x507: u32 = 0;
> +-    let mut x508: fiat_p384_u1 = 0;
> +     let (x507, x508) = fiat_p384_addcarryx_u32(0x0, x444, x488);
> +-    let mut x509: u32 = 0;
> +-    let mut x510: fiat_p384_u1 = 0;
> +     let (x509, x510) = fiat_p384_addcarryx_u32(x508, x446, x489);
> +-    let mut x511: u32 = 0;
> +-    let mut x512: fiat_p384_u1 = 0;
> +     let (x511, x512) = fiat_p384_addcarryx_u32(x510, x448, (0x0 as u32));
> +-    let mut x513: u32 = 0;
> +-    let mut x514: fiat_p384_u1 = 0;
> +     let (x513, x514) = fiat_p384_addcarryx_u32(x512, x450, x486);
> +-    let mut x515: u32 = 0;
> +-    let mut x516: fiat_p384_u1 = 0;
> +     let (x515, x516) = fiat_p384_addcarryx_u32(x514, x452, x490);
> +-    let mut x517: u32 = 0;
> +-    let mut x518: fiat_p384_u1 = 0;
> +     let (x517, x518) = fiat_p384_addcarryx_u32(x516, x454, x492);
> +-    let mut x519: u32 = 0;
> +-    let mut x520: fiat_p384_u1 = 0;
> +     let (x519, x520) = fiat_p384_addcarryx_u32(x518, x456, x494);
> +-    let mut x521: u32 = 0;
> +-    let mut x522: fiat_p384_u1 = 0;
> +     let (x521, x522) = fiat_p384_addcarryx_u32(x520, x458, x496);
> +-    let mut x523: u32 = 0;
> +-    let mut x524: fiat_p384_u1 = 0;
> +     let (x523, x524) = fiat_p384_addcarryx_u32(x522, x460, x498);
> +-    let mut x525: u32 = 0;
> +-    let mut x526: fiat_p384_u1 = 0;
> +     let (x525, x526) = fiat_p384_addcarryx_u32(x524, x462, x500);
> +-    let mut x527: u32 = 0;
> +-    let mut x528: fiat_p384_u1 = 0;
> +     let (x527, x528) = fiat_p384_addcarryx_u32(x526, x464, x502);
> +-    let mut x529: u32 = 0;
> +-    let mut x530: fiat_p384_u1 = 0;
> +     let (x529, x530) = fiat_p384_addcarryx_u32(x528, x466, x504);
> +-    let mut x531: u32 = 0;
> +-    let mut x532: fiat_p384_u1 = 0;
> +     let (x531, x532) = fiat_p384_addcarryx_u32(x530, x468, x506);
> +     let x533: u32 = ((x532 as u32) + (x469 as u32));
> +-    let mut x534: u32 = 0;
> +-    let mut x535: u32 = 0;
> +     let (x534, x535) = fiat_p384_mulx_u32(x4, (arg2[11]));
> +-    let mut x536: u32 = 0;
> +-    let mut x537: u32 = 0;
> +     let (x536, x537) = fiat_p384_mulx_u32(x4, (arg2[10]));
> +-    let mut x538: u32 = 0;
> +-    let mut x539: u32 = 0;
> +     let (x538, x539) = fiat_p384_mulx_u32(x4, (arg2[9]));
> +-    let mut x540: u32 = 0;
> +-    let mut x541: u32 = 0;
> +     let (x540, x541) = fiat_p384_mulx_u32(x4, (arg2[8]));
> +-    let mut x542: u32 = 0;
> +-    let mut x543: u32 = 0;
> +     let (x542, x543) = fiat_p384_mulx_u32(x4, (arg2[7]));
> +-    let mut x544: u32 = 0;
> +-    let mut x545: u32 = 0;
> +     let (x544, x545) = fiat_p384_mulx_u32(x4, (arg2[6]));
> +-    let mut x546: u32 = 0;
> +-    let mut x547: u32 = 0;
> +     let (x546, x547) = fiat_p384_mulx_u32(x4, (arg2[5]));
> +-    let mut x548: u32 = 0;
> +-    let mut x549: u32 = 0;
> +     let (x548, x549) = fiat_p384_mulx_u32(x4, (arg2[4]));
> +-    let mut x550: u32 = 0;
> +-    let mut x551: u32 = 0;
> +     let (x550, x551) = fiat_p384_mulx_u32(x4, (arg2[3]));
> +-    let mut x552: u32 = 0;
> +-    let mut x553: u32 = 0;
> +     let (x552, x553) = fiat_p384_mulx_u32(x4, (arg2[2]));
> +-    let mut x554: u32 = 0;
> +-    let mut x555: u32 = 0;
> +     let (x554, x555) = fiat_p384_mulx_u32(x4, (arg2[1]));
> +-    let mut x556: u32 = 0;
> +-    let mut x557: u32 = 0;
> +     let (x556, x557) = fiat_p384_mulx_u32(x4, (arg2[0]));
> +-    let mut x558: u32 = 0;
> +-    let mut x559: fiat_p384_u1 = 0;
> +     let (x558, x559) = fiat_p384_addcarryx_u32(0x0, x557, x554);
> +-    let mut x560: u32 = 0;
> +-    let mut x561: fiat_p384_u1 = 0;
> +     let (x560, x561) = fiat_p384_addcarryx_u32(x559, x555, x552);
> +-    let mut x562: u32 = 0;
> +-    let mut x563: fiat_p384_u1 = 0;
> +     let (x562, x563) = fiat_p384_addcarryx_u32(x561, x553, x550);
> +-    let mut x564: u32 = 0;
> +-    let mut x565: fiat_p384_u1 = 0;
> +     let (x564, x565) = fiat_p384_addcarryx_u32(x563, x551, x548);
> +-    let mut x566: u32 = 0;
> +-    let mut x567: fiat_p384_u1 = 0;
> +     let (x566, x567) = fiat_p384_addcarryx_u32(x565, x549, x546);
> +-    let mut x568: u32 = 0;
> +-    let mut x569: fiat_p384_u1 = 0;
> +     let (x568, x569) = fiat_p384_addcarryx_u32(x567, x547, x544);
> +-    let mut x570: u32 = 0;
> +-    let mut x571: fiat_p384_u1 = 0;
> +     let (x570, x571) = fiat_p384_addcarryx_u32(x569, x545, x542);
> +-    let mut x572: u32 = 0;
> +-    let mut x573: fiat_p384_u1 = 0;
> +     let (x572, x573) = fiat_p384_addcarryx_u32(x571, x543, x540);
> +-    let mut x574: u32 = 0;
> +-    let mut x575: fiat_p384_u1 = 0;
> +     let (x574, x575) = fiat_p384_addcarryx_u32(x573, x541, x538);
> +-    let mut x576: u32 = 0;
> +-    let mut x577: fiat_p384_u1 = 0;
> +     let (x576, x577) = fiat_p384_addcarryx_u32(x575, x539, x536);
> +-    let mut x578: u32 = 0;
> +-    let mut x579: fiat_p384_u1 = 0;
> +     let (x578, x579) = fiat_p384_addcarryx_u32(x577, x537, x534);
> +     let x580: u32 = ((x579 as u32) + x535);
> +-    let mut x581: u32 = 0;
> +-    let mut x582: fiat_p384_u1 = 0;
> +     let (x581, x582) = fiat_p384_addcarryx_u32(0x0, x509, x556);
> +-    let mut x583: u32 = 0;
> +-    let mut x584: fiat_p384_u1 = 0;
> +     let (x583, x584) = fiat_p384_addcarryx_u32(x582, x511, x558);
> +-    let mut x585: u32 = 0;
> +-    let mut x586: fiat_p384_u1 = 0;
> +     let (x585, x586) = fiat_p384_addcarryx_u32(x584, x513, x560);
> +-    let mut x587: u32 = 0;
> +-    let mut x588: fiat_p384_u1 = 0;
> +     let (x587, x588) = fiat_p384_addcarryx_u32(x586, x515, x562);
> +-    let mut x589: u32 = 0;
> +-    let mut x590: fiat_p384_u1 = 0;
> +     let (x589, x590) = fiat_p384_addcarryx_u32(x588, x517, x564);
> +-    let mut x591: u32 = 0;
> +-    let mut x592: fiat_p384_u1 = 0;
> +     let (x591, x592) = fiat_p384_addcarryx_u32(x590, x519, x566);
> +-    let mut x593: u32 = 0;
> +-    let mut x594: fiat_p384_u1 = 0;
> +     let (x593, x594) = fiat_p384_addcarryx_u32(x592, x521, x568);
> +-    let mut x595: u32 = 0;
> +-    let mut x596: fiat_p384_u1 = 0;
> +     let (x595, x596) = fiat_p384_addcarryx_u32(x594, x523, x570);
> +-    let mut x597: u32 = 0;
> +-    let mut x598: fiat_p384_u1 = 0;
> +     let (x597, x598) = fiat_p384_addcarryx_u32(x596, x525, x572);
> +-    let mut x599: u32 = 0;
> +-    let mut x600: fiat_p384_u1 = 0;
> +     let (x599, x600) = fiat_p384_addcarryx_u32(x598, x527, x574);
> +-    let mut x601: u32 = 0;
> +-    let mut x602: fiat_p384_u1 = 0;
> +     let (x601, x602) = fiat_p384_addcarryx_u32(x600, x529, x576);
> +-    let mut x603: u32 = 0;
> +-    let mut x604: fiat_p384_u1 = 0;
> +     let (x603, x604) = fiat_p384_addcarryx_u32(x602, x531, x578);
> +-    let mut x605: u32 = 0;
> +-    let mut x606: fiat_p384_u1 = 0;
> +     let (x605, x606) = fiat_p384_addcarryx_u32(x604, x533, x580);
> +-    let mut x607: u32 = 0;
> +-    let mut x608: u32 = 0;
> +     let (x607, x608) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x609: u32 = 0;
> +-    let mut x610: u32 = 0;
> +     let (x609, x610) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x611: u32 = 0;
> +-    let mut x612: u32 = 0;
> +     let (x611, x612) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x613: u32 = 0;
> +-    let mut x614: u32 = 0;
> +     let (x613, x614) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x615: u32 = 0;
> +-    let mut x616: u32 = 0;
> +     let (x615, x616) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x617: u32 = 0;
> +-    let mut x618: u32 = 0;
> +     let (x617, x618) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x619: u32 = 0;
> +-    let mut x620: u32 = 0;
> +     let (x619, x620) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x621: u32 = 0;
> +-    let mut x622: u32 = 0;
> +     let (x621, x622) = fiat_p384_mulx_u32(x581, 0xfffffffe);
> +-    let mut x623: u32 = 0;
> +-    let mut x624: u32 = 0;
> +     let (x623, x624) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x625: u32 = 0;
> +-    let mut x626: u32 = 0;
> +     let (x625, x626) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x627: u32 = 0;
> +-    let mut x628: fiat_p384_u1 = 0;
> +     let (x627, x628) = fiat_p384_addcarryx_u32(0x0, x624, x621);
> +-    let mut x629: u32 = 0;
> +-    let mut x630: fiat_p384_u1 = 0;
> +     let (x629, x630) = fiat_p384_addcarryx_u32(x628, x622, x619);
> +-    let mut x631: u32 = 0;
> +-    let mut x632: fiat_p384_u1 = 0;
> +     let (x631, x632) = fiat_p384_addcarryx_u32(x630, x620, x617);
> +-    let mut x633: u32 = 0;
> +-    let mut x634: fiat_p384_u1 = 0;
> +     let (x633, x634) = fiat_p384_addcarryx_u32(x632, x618, x615);
> +-    let mut x635: u32 = 0;
> +-    let mut x636: fiat_p384_u1 = 0;
> +     let (x635, x636) = fiat_p384_addcarryx_u32(x634, x616, x613);
> +-    let mut x637: u32 = 0;
> +-    let mut x638: fiat_p384_u1 = 0;
> +     let (x637, x638) = fiat_p384_addcarryx_u32(x636, x614, x611);
> +-    let mut x639: u32 = 0;
> +-    let mut x640: fiat_p384_u1 = 0;
> +     let (x639, x640) = fiat_p384_addcarryx_u32(x638, x612, x609);
> +-    let mut x641: u32 = 0;
> +-    let mut x642: fiat_p384_u1 = 0;
> +     let (x641, x642) = fiat_p384_addcarryx_u32(x640, x610, x607);
> +     let x643: u32 = ((x642 as u32) + x608);
> +-    let mut x644: u32 = 0;
> +-    let mut x645: fiat_p384_u1 = 0;
> +     let (x644, x645) = fiat_p384_addcarryx_u32(0x0, x581, x625);
> +-    let mut x646: u32 = 0;
> +-    let mut x647: fiat_p384_u1 = 0;
> +     let (x646, x647) = fiat_p384_addcarryx_u32(x645, x583, x626);
> +-    let mut x648: u32 = 0;
> +-    let mut x649: fiat_p384_u1 = 0;
> +     let (x648, x649) = fiat_p384_addcarryx_u32(x647, x585, (0x0 as u32));
> +-    let mut x650: u32 = 0;
> +-    let mut x651: fiat_p384_u1 = 0;
> +     let (x650, x651) = fiat_p384_addcarryx_u32(x649, x587, x623);
> +-    let mut x652: u32 = 0;
> +-    let mut x653: fiat_p384_u1 = 0;
> +     let (x652, x653) = fiat_p384_addcarryx_u32(x651, x589, x627);
> +-    let mut x654: u32 = 0;
> +-    let mut x655: fiat_p384_u1 = 0;
> +     let (x654, x655) = fiat_p384_addcarryx_u32(x653, x591, x629);
> +-    let mut x656: u32 = 0;
> +-    let mut x657: fiat_p384_u1 = 0;
> +     let (x656, x657) = fiat_p384_addcarryx_u32(x655, x593, x631);
> +-    let mut x658: u32 = 0;
> +-    let mut x659: fiat_p384_u1 = 0;
> +     let (x658, x659) = fiat_p384_addcarryx_u32(x657, x595, x633);
> +-    let mut x660: u32 = 0;
> +-    let mut x661: fiat_p384_u1 = 0;
> +     let (x660, x661) = fiat_p384_addcarryx_u32(x659, x597, x635);
> +-    let mut x662: u32 = 0;
> +-    let mut x663: fiat_p384_u1 = 0;
> +     let (x662, x663) = fiat_p384_addcarryx_u32(x661, x599, x637);
> +-    let mut x664: u32 = 0;
> +-    let mut x665: fiat_p384_u1 = 0;
> +     let (x664, x665) = fiat_p384_addcarryx_u32(x663, x601, x639);
> +-    let mut x666: u32 = 0;
> +-    let mut x667: fiat_p384_u1 = 0;
> +     let (x666, x667) = fiat_p384_addcarryx_u32(x665, x603, x641);
> +-    let mut x668: u32 = 0;
> +-    let mut x669: fiat_p384_u1 = 0;
> +     let (x668, x669) = fiat_p384_addcarryx_u32(x667, x605, x643);
> +     let x670: u32 = ((x669 as u32) + (x606 as u32));
> +-    let mut x671: u32 = 0;
> +-    let mut x672: u32 = 0;
> +     let (x671, x672) = fiat_p384_mulx_u32(x5, (arg2[11]));
> +-    let mut x673: u32 = 0;
> +-    let mut x674: u32 = 0;
> +     let (x673, x674) = fiat_p384_mulx_u32(x5, (arg2[10]));
> +-    let mut x675: u32 = 0;
> +-    let mut x676: u32 = 0;
> +     let (x675, x676) = fiat_p384_mulx_u32(x5, (arg2[9]));
> +-    let mut x677: u32 = 0;
> +-    let mut x678: u32 = 0;
> +     let (x677, x678) = fiat_p384_mulx_u32(x5, (arg2[8]));
> +-    let mut x679: u32 = 0;
> +-    let mut x680: u32 = 0;
> +     let (x679, x680) = fiat_p384_mulx_u32(x5, (arg2[7]));
> +-    let mut x681: u32 = 0;
> +-    let mut x682: u32 = 0;
> +     let (x681, x682) = fiat_p384_mulx_u32(x5, (arg2[6]));
> +-    let mut x683: u32 = 0;
> +-    let mut x684: u32 = 0;
> +     let (x683, x684) = fiat_p384_mulx_u32(x5, (arg2[5]));
> +-    let mut x685: u32 = 0;
> +-    let mut x686: u32 = 0;
> +     let (x685, x686) = fiat_p384_mulx_u32(x5, (arg2[4]));
> +-    let mut x687: u32 = 0;
> +-    let mut x688: u32 = 0;
> +     let (x687, x688) = fiat_p384_mulx_u32(x5, (arg2[3]));
> +-    let mut x689: u32 = 0;
> +-    let mut x690: u32 = 0;
> +     let (x689, x690) = fiat_p384_mulx_u32(x5, (arg2[2]));
> +-    let mut x691: u32 = 0;
> +-    let mut x692: u32 = 0;
> +     let (x691, x692) = fiat_p384_mulx_u32(x5, (arg2[1]));
> +-    let mut x693: u32 = 0;
> +-    let mut x694: u32 = 0;
> +     let (x693, x694) = fiat_p384_mulx_u32(x5, (arg2[0]));
> +-    let mut x695: u32 = 0;
> +-    let mut x696: fiat_p384_u1 = 0;
> +     let (x695, x696) = fiat_p384_addcarryx_u32(0x0, x694, x691);
> +-    let mut x697: u32 = 0;
> +-    let mut x698: fiat_p384_u1 = 0;
> +     let (x697, x698) = fiat_p384_addcarryx_u32(x696, x692, x689);
> +-    let mut x699: u32 = 0;
> +-    let mut x700: fiat_p384_u1 = 0;
> +     let (x699, x700) = fiat_p384_addcarryx_u32(x698, x690, x687);
> +-    let mut x701: u32 = 0;
> +-    let mut x702: fiat_p384_u1 = 0;
> +     let (x701, x702) = fiat_p384_addcarryx_u32(x700, x688, x685);
> +-    let mut x703: u32 = 0;
> +-    let mut x704: fiat_p384_u1 = 0;
> +     let (x703, x704) = fiat_p384_addcarryx_u32(x702, x686, x683);
> +-    let mut x705: u32 = 0;
> +-    let mut x706: fiat_p384_u1 = 0;
> +     let (x705, x706) = fiat_p384_addcarryx_u32(x704, x684, x681);
> +-    let mut x707: u32 = 0;
> +-    let mut x708: fiat_p384_u1 = 0;
> +     let (x707, x708) = fiat_p384_addcarryx_u32(x706, x682, x679);
> +-    let mut x709: u32 = 0;
> +-    let mut x710: fiat_p384_u1 = 0;
> +     let (x709, x710) = fiat_p384_addcarryx_u32(x708, x680, x677);
> +-    let mut x711: u32 = 0;
> +-    let mut x712: fiat_p384_u1 = 0;
> +     let (x711, x712) = fiat_p384_addcarryx_u32(x710, x678, x675);
> +-    let mut x713: u32 = 0;
> +-    let mut x714: fiat_p384_u1 = 0;
> +     let (x713, x714) = fiat_p384_addcarryx_u32(x712, x676, x673);
> +-    let mut x715: u32 = 0;
> +-    let mut x716: fiat_p384_u1 = 0;
> +     let (x715, x716) = fiat_p384_addcarryx_u32(x714, x674, x671);
> +     let x717: u32 = ((x716 as u32) + x672);
> +-    let mut x718: u32 = 0;
> +-    let mut x719: fiat_p384_u1 = 0;
> +     let (x718, x719) = fiat_p384_addcarryx_u32(0x0, x646, x693);
> +-    let mut x720: u32 = 0;
> +-    let mut x721: fiat_p384_u1 = 0;
> +     let (x720, x721) = fiat_p384_addcarryx_u32(x719, x648, x695);
> +-    let mut x722: u32 = 0;
> +-    let mut x723: fiat_p384_u1 = 0;
> +     let (x722, x723) = fiat_p384_addcarryx_u32(x721, x650, x697);
> +-    let mut x724: u32 = 0;
> +-    let mut x725: fiat_p384_u1 = 0;
> +     let (x724, x725) = fiat_p384_addcarryx_u32(x723, x652, x699);
> +-    let mut x726: u32 = 0;
> +-    let mut x727: fiat_p384_u1 = 0;
> +     let (x726, x727) = fiat_p384_addcarryx_u32(x725, x654, x701);
> +-    let mut x728: u32 = 0;
> +-    let mut x729: fiat_p384_u1 = 0;
> +     let (x728, x729) = fiat_p384_addcarryx_u32(x727, x656, x703);
> +-    let mut x730: u32 = 0;
> +-    let mut x731: fiat_p384_u1 = 0;
> +     let (x730, x731) = fiat_p384_addcarryx_u32(x729, x658, x705);
> +-    let mut x732: u32 = 0;
> +-    let mut x733: fiat_p384_u1 = 0;
> +     let (x732, x733) = fiat_p384_addcarryx_u32(x731, x660, x707);
> +-    let mut x734: u32 = 0;
> +-    let mut x735: fiat_p384_u1 = 0;
> +     let (x734, x735) = fiat_p384_addcarryx_u32(x733, x662, x709);
> +-    let mut x736: u32 = 0;
> +-    let mut x737: fiat_p384_u1 = 0;
> +     let (x736, x737) = fiat_p384_addcarryx_u32(x735, x664, x711);
> +-    let mut x738: u32 = 0;
> +-    let mut x739: fiat_p384_u1 = 0;
> +     let (x738, x739) = fiat_p384_addcarryx_u32(x737, x666, x713);
> +-    let mut x740: u32 = 0;
> +-    let mut x741: fiat_p384_u1 = 0;
> +     let (x740, x741) = fiat_p384_addcarryx_u32(x739, x668, x715);
> +-    let mut x742: u32 = 0;
> +-    let mut x743: fiat_p384_u1 = 0;
> +     let (x742, x743) = fiat_p384_addcarryx_u32(x741, x670, x717);
> +-    let mut x744: u32 = 0;
> +-    let mut x745: u32 = 0;
> +     let (x744, x745) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x746: u32 = 0;
> +-    let mut x747: u32 = 0;
> +     let (x746, x747) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x748: u32 = 0;
> +-    let mut x749: u32 = 0;
> +     let (x748, x749) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x750: u32 = 0;
> +-    let mut x751: u32 = 0;
> +     let (x750, x751) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x752: u32 = 0;
> +-    let mut x753: u32 = 0;
> +     let (x752, x753) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x754: u32 = 0;
> +-    let mut x755: u32 = 0;
> +     let (x754, x755) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x756: u32 = 0;
> +-    let mut x757: u32 = 0;
> +     let (x756, x757) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x758: u32 = 0;
> +-    let mut x759: u32 = 0;
> +     let (x758, x759) = fiat_p384_mulx_u32(x718, 0xfffffffe);
> +-    let mut x760: u32 = 0;
> +-    let mut x761: u32 = 0;
> +     let (x760, x761) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x762: u32 = 0;
> +-    let mut x763: u32 = 0;
> +     let (x762, x763) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x764: u32 = 0;
> +-    let mut x765: fiat_p384_u1 = 0;
> +     let (x764, x765) = fiat_p384_addcarryx_u32(0x0, x761, x758);
> +-    let mut x766: u32 = 0;
> +-    let mut x767: fiat_p384_u1 = 0;
> +     let (x766, x767) = fiat_p384_addcarryx_u32(x765, x759, x756);
> +-    let mut x768: u32 = 0;
> +-    let mut x769: fiat_p384_u1 = 0;
> +     let (x768, x769) = fiat_p384_addcarryx_u32(x767, x757, x754);
> +-    let mut x770: u32 = 0;
> +-    let mut x771: fiat_p384_u1 = 0;
> +     let (x770, x771) = fiat_p384_addcarryx_u32(x769, x755, x752);
> +-    let mut x772: u32 = 0;
> +-    let mut x773: fiat_p384_u1 = 0;
> +     let (x772, x773) = fiat_p384_addcarryx_u32(x771, x753, x750);
> +-    let mut x774: u32 = 0;
> +-    let mut x775: fiat_p384_u1 = 0;
> +     let (x774, x775) = fiat_p384_addcarryx_u32(x773, x751, x748);
> +-    let mut x776: u32 = 0;
> +-    let mut x777: fiat_p384_u1 = 0;
> +     let (x776, x777) = fiat_p384_addcarryx_u32(x775, x749, x746);
> +-    let mut x778: u32 = 0;
> +-    let mut x779: fiat_p384_u1 = 0;
> +     let (x778, x779) = fiat_p384_addcarryx_u32(x777, x747, x744);
> +     let x780: u32 = ((x779 as u32) + x745);
> +-    let mut x781: u32 = 0;
> +-    let mut x782: fiat_p384_u1 = 0;
> +     let (x781, x782) = fiat_p384_addcarryx_u32(0x0, x718, x762);
> +-    let mut x783: u32 = 0;
> +-    let mut x784: fiat_p384_u1 = 0;
> +     let (x783, x784) = fiat_p384_addcarryx_u32(x782, x720, x763);
> +-    let mut x785: u32 = 0;
> +-    let mut x786: fiat_p384_u1 = 0;
> +     let (x785, x786) = fiat_p384_addcarryx_u32(x784, x722, (0x0 as u32));
> +-    let mut x787: u32 = 0;
> +-    let mut x788: fiat_p384_u1 = 0;
> +     let (x787, x788) = fiat_p384_addcarryx_u32(x786, x724, x760);
> +-    let mut x789: u32 = 0;
> +-    let mut x790: fiat_p384_u1 = 0;
> +     let (x789, x790) = fiat_p384_addcarryx_u32(x788, x726, x764);
> +-    let mut x791: u32 = 0;
> +-    let mut x792: fiat_p384_u1 = 0;
> +     let (x791, x792) = fiat_p384_addcarryx_u32(x790, x728, x766);
> +-    let mut x793: u32 = 0;
> +-    let mut x794: fiat_p384_u1 = 0;
> +     let (x793, x794) = fiat_p384_addcarryx_u32(x792, x730, x768);
> +-    let mut x795: u32 = 0;
> +-    let mut x796: fiat_p384_u1 = 0;
> +     let (x795, x796) = fiat_p384_addcarryx_u32(x794, x732, x770);
> +-    let mut x797: u32 = 0;
> +-    let mut x798: fiat_p384_u1 = 0;
> +     let (x797, x798) = fiat_p384_addcarryx_u32(x796, x734, x772);
> +-    let mut x799: u32 = 0;
> +-    let mut x800: fiat_p384_u1 = 0;
> +     let (x799, x800) = fiat_p384_addcarryx_u32(x798, x736, x774);
> +-    let mut x801: u32 = 0;
> +-    let mut x802: fiat_p384_u1 = 0;
> +     let (x801, x802) = fiat_p384_addcarryx_u32(x800, x738, x776);
> +-    let mut x803: u32 = 0;
> +-    let mut x804: fiat_p384_u1 = 0;
> +     let (x803, x804) = fiat_p384_addcarryx_u32(x802, x740, x778);
> +-    let mut x805: u32 = 0;
> +-    let mut x806: fiat_p384_u1 = 0;
> +     let (x805, x806) = fiat_p384_addcarryx_u32(x804, x742, x780);
> +     let x807: u32 = ((x806 as u32) + (x743 as u32));
> +-    let mut x808: u32 = 0;
> +-    let mut x809: u32 = 0;
> +     let (x808, x809) = fiat_p384_mulx_u32(x6, (arg2[11]));
> +-    let mut x810: u32 = 0;
> +-    let mut x811: u32 = 0;
> +     let (x810, x811) = fiat_p384_mulx_u32(x6, (arg2[10]));
> +-    let mut x812: u32 = 0;
> +-    let mut x813: u32 = 0;
> +     let (x812, x813) = fiat_p384_mulx_u32(x6, (arg2[9]));
> +-    let mut x814: u32 = 0;
> +-    let mut x815: u32 = 0;
> +     let (x814, x815) = fiat_p384_mulx_u32(x6, (arg2[8]));
> +-    let mut x816: u32 = 0;
> +-    let mut x817: u32 = 0;
> +     let (x816, x817) = fiat_p384_mulx_u32(x6, (arg2[7]));
> +-    let mut x818: u32 = 0;
> +-    let mut x819: u32 = 0;
> +     let (x818, x819) = fiat_p384_mulx_u32(x6, (arg2[6]));
> +-    let mut x820: u32 = 0;
> +-    let mut x821: u32 = 0;
> +     let (x820, x821) = fiat_p384_mulx_u32(x6, (arg2[5]));
> +-    let mut x822: u32 = 0;
> +-    let mut x823: u32 = 0;
> +     let (x822, x823) = fiat_p384_mulx_u32(x6, (arg2[4]));
> +-    let mut x824: u32 = 0;
> +-    let mut x825: u32 = 0;
> +     let (x824, x825) = fiat_p384_mulx_u32(x6, (arg2[3]));
> +-    let mut x826: u32 = 0;
> +-    let mut x827: u32 = 0;
> +     let (x826, x827) = fiat_p384_mulx_u32(x6, (arg2[2]));
> +-    let mut x828: u32 = 0;
> +-    let mut x829: u32 = 0;
> +     let (x828, x829) = fiat_p384_mulx_u32(x6, (arg2[1]));
> +-    let mut x830: u32 = 0;
> +-    let mut x831: u32 = 0;
> +     let (x830, x831) = fiat_p384_mulx_u32(x6, (arg2[0]));
> +-    let mut x832: u32 = 0;
> +-    let mut x833: fiat_p384_u1 = 0;
> +     let (x832, x833) = fiat_p384_addcarryx_u32(0x0, x831, x828);
> +-    let mut x834: u32 = 0;
> +-    let mut x835: fiat_p384_u1 = 0;
> +     let (x834, x835) = fiat_p384_addcarryx_u32(x833, x829, x826);
> +-    let mut x836: u32 = 0;
> +-    let mut x837: fiat_p384_u1 = 0;
> +     let (x836, x837) = fiat_p384_addcarryx_u32(x835, x827, x824);
> +-    let mut x838: u32 = 0;
> +-    let mut x839: fiat_p384_u1 = 0;
> +     let (x838, x839) = fiat_p384_addcarryx_u32(x837, x825, x822);
> +-    let mut x840: u32 = 0;
> +-    let mut x841: fiat_p384_u1 = 0;
> +     let (x840, x841) = fiat_p384_addcarryx_u32(x839, x823, x820);
> +-    let mut x842: u32 = 0;
> +-    let mut x843: fiat_p384_u1 = 0;
> +     let (x842, x843) = fiat_p384_addcarryx_u32(x841, x821, x818);
> +-    let mut x844: u32 = 0;
> +-    let mut x845: fiat_p384_u1 = 0;
> +     let (x844, x845) = fiat_p384_addcarryx_u32(x843, x819, x816);
> +-    let mut x846: u32 = 0;
> +-    let mut x847: fiat_p384_u1 = 0;
> +     let (x846, x847) = fiat_p384_addcarryx_u32(x845, x817, x814);
> +-    let mut x848: u32 = 0;
> +-    let mut x849: fiat_p384_u1 = 0;
> +     let (x848, x849) = fiat_p384_addcarryx_u32(x847, x815, x812);
> +-    let mut x850: u32 = 0;
> +-    let mut x851: fiat_p384_u1 = 0;
> +     let (x850, x851) = fiat_p384_addcarryx_u32(x849, x813, x810);
> +-    let mut x852: u32 = 0;
> +-    let mut x853: fiat_p384_u1 = 0;
> +     let (x852, x853) = fiat_p384_addcarryx_u32(x851, x811, x808);
> +     let x854: u32 = ((x853 as u32) + x809);
> +-    let mut x855: u32 = 0;
> +-    let mut x856: fiat_p384_u1 = 0;
> +     let (x855, x856) = fiat_p384_addcarryx_u32(0x0, x783, x830);
> +-    let mut x857: u32 = 0;
> +-    let mut x858: fiat_p384_u1 = 0;
> +     let (x857, x858) = fiat_p384_addcarryx_u32(x856, x785, x832);
> +-    let mut x859: u32 = 0;
> +-    let mut x860: fiat_p384_u1 = 0;
> +     let (x859, x860) = fiat_p384_addcarryx_u32(x858, x787, x834);
> +-    let mut x861: u32 = 0;
> +-    let mut x862: fiat_p384_u1 = 0;
> +     let (x861, x862) = fiat_p384_addcarryx_u32(x860, x789, x836);
> +-    let mut x863: u32 = 0;
> +-    let mut x864: fiat_p384_u1 = 0;
> +     let (x863, x864) = fiat_p384_addcarryx_u32(x862, x791, x838);
> +-    let mut x865: u32 = 0;
> +-    let mut x866: fiat_p384_u1 = 0;
> +     let (x865, x866) = fiat_p384_addcarryx_u32(x864, x793, x840);
> +-    let mut x867: u32 = 0;
> +-    let mut x868: fiat_p384_u1 = 0;
> +     let (x867, x868) = fiat_p384_addcarryx_u32(x866, x795, x842);
> +-    let mut x869: u32 = 0;
> +-    let mut x870: fiat_p384_u1 = 0;
> +     let (x869, x870) = fiat_p384_addcarryx_u32(x868, x797, x844);
> +-    let mut x871: u32 = 0;
> +-    let mut x872: fiat_p384_u1 = 0;
> +     let (x871, x872) = fiat_p384_addcarryx_u32(x870, x799, x846);
> +-    let mut x873: u32 = 0;
> +-    let mut x874: fiat_p384_u1 = 0;
> +     let (x873, x874) = fiat_p384_addcarryx_u32(x872, x801, x848);
> +-    let mut x875: u32 = 0;
> +-    let mut x876: fiat_p384_u1 = 0;
> +     let (x875, x876) = fiat_p384_addcarryx_u32(x874, x803, x850);
> +-    let mut x877: u32 = 0;
> +-    let mut x878: fiat_p384_u1 = 0;
> +     let (x877, x878) = fiat_p384_addcarryx_u32(x876, x805, x852);
> +-    let mut x879: u32 = 0;
> +-    let mut x880: fiat_p384_u1 = 0;
> +     let (x879, x880) = fiat_p384_addcarryx_u32(x878, x807, x854);
> +-    let mut x881: u32 = 0;
> +-    let mut x882: u32 = 0;
> +     let (x881, x882) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x883: u32 = 0;
> +-    let mut x884: u32 = 0;
> +     let (x883, x884) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x885: u32 = 0;
> +-    let mut x886: u32 = 0;
> +     let (x885, x886) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x887: u32 = 0;
> +-    let mut x888: u32 = 0;
> +     let (x887, x888) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x889: u32 = 0;
> +-    let mut x890: u32 = 0;
> +     let (x889, x890) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x891: u32 = 0;
> +-    let mut x892: u32 = 0;
> +     let (x891, x892) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x893: u32 = 0;
> +-    let mut x894: u32 = 0;
> +     let (x893, x894) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x895: u32 = 0;
> +-    let mut x896: u32 = 0;
> +     let (x895, x896) = fiat_p384_mulx_u32(x855, 0xfffffffe);
> +-    let mut x897: u32 = 0;
> +-    let mut x898: u32 = 0;
> +     let (x897, x898) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x899: u32 = 0;
> +-    let mut x900: u32 = 0;
> +     let (x899, x900) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x901: u32 = 0;
> +-    let mut x902: fiat_p384_u1 = 0;
> +     let (x901, x902) = fiat_p384_addcarryx_u32(0x0, x898, x895);
> +-    let mut x903: u32 = 0;
> +-    let mut x904: fiat_p384_u1 = 0;
> +     let (x903, x904) = fiat_p384_addcarryx_u32(x902, x896, x893);
> +-    let mut x905: u32 = 0;
> +-    let mut x906: fiat_p384_u1 = 0;
> +     let (x905, x906) = fiat_p384_addcarryx_u32(x904, x894, x891);
> +-    let mut x907: u32 = 0;
> +-    let mut x908: fiat_p384_u1 = 0;
> +     let (x907, x908) = fiat_p384_addcarryx_u32(x906, x892, x889);
> +-    let mut x909: u32 = 0;
> +-    let mut x910: fiat_p384_u1 = 0;
> +     let (x909, x910) = fiat_p384_addcarryx_u32(x908, x890, x887);
> +-    let mut x911: u32 = 0;
> +-    let mut x912: fiat_p384_u1 = 0;
> +     let (x911, x912) = fiat_p384_addcarryx_u32(x910, x888, x885);
> +-    let mut x913: u32 = 0;
> +-    let mut x914: fiat_p384_u1 = 0;
> +     let (x913, x914) = fiat_p384_addcarryx_u32(x912, x886, x883);
> +-    let mut x915: u32 = 0;
> +-    let mut x916: fiat_p384_u1 = 0;
> +     let (x915, x916) = fiat_p384_addcarryx_u32(x914, x884, x881);
> +     let x917: u32 = ((x916 as u32) + x882);
> +-    let mut x918: u32 = 0;
> +-    let mut x919: fiat_p384_u1 = 0;
> +     let (x918, x919) = fiat_p384_addcarryx_u32(0x0, x855, x899);
> +-    let mut x920: u32 = 0;
> +-    let mut x921: fiat_p384_u1 = 0;
> +     let (x920, x921) = fiat_p384_addcarryx_u32(x919, x857, x900);
> +-    let mut x922: u32 = 0;
> +-    let mut x923: fiat_p384_u1 = 0;
> +     let (x922, x923) = fiat_p384_addcarryx_u32(x921, x859, (0x0 as u32));
> +-    let mut x924: u32 = 0;
> +-    let mut x925: fiat_p384_u1 = 0;
> +     let (x924, x925) = fiat_p384_addcarryx_u32(x923, x861, x897);
> +-    let mut x926: u32 = 0;
> +-    let mut x927: fiat_p384_u1 = 0;
> +     let (x926, x927) = fiat_p384_addcarryx_u32(x925, x863, x901);
> +-    let mut x928: u32 = 0;
> +-    let mut x929: fiat_p384_u1 = 0;
> +     let (x928, x929) = fiat_p384_addcarryx_u32(x927, x865, x903);
> +-    let mut x930: u32 = 0;
> +-    let mut x931: fiat_p384_u1 = 0;
> +     let (x930, x931) = fiat_p384_addcarryx_u32(x929, x867, x905);
> +-    let mut x932: u32 = 0;
> +-    let mut x933: fiat_p384_u1 = 0;
> +     let (x932, x933) = fiat_p384_addcarryx_u32(x931, x869, x907);
> +-    let mut x934: u32 = 0;
> +-    let mut x935: fiat_p384_u1 = 0;
> +     let (x934, x935) = fiat_p384_addcarryx_u32(x933, x871, x909);
> +-    let mut x936: u32 = 0;
> +-    let mut x937: fiat_p384_u1 = 0;
> +     let (x936, x937) = fiat_p384_addcarryx_u32(x935, x873, x911);
> +-    let mut x938: u32 = 0;
> +-    let mut x939: fiat_p384_u1 = 0;
> +     let (x938, x939) = fiat_p384_addcarryx_u32(x937, x875, x913);
> +-    let mut x940: u32 = 0;
> +-    let mut x941: fiat_p384_u1 = 0;
> +     let (x940, x941) = fiat_p384_addcarryx_u32(x939, x877, x915);
> +-    let mut x942: u32 = 0;
> +-    let mut x943: fiat_p384_u1 = 0;
> +     let (x942, x943) = fiat_p384_addcarryx_u32(x941, x879, x917);
> +     let x944: u32 = ((x943 as u32) + (x880 as u32));
> +-    let mut x945: u32 = 0;
> +-    let mut x946: u32 = 0;
> +     let (x945, x946) = fiat_p384_mulx_u32(x7, (arg2[11]));
> +-    let mut x947: u32 = 0;
> +-    let mut x948: u32 = 0;
> +     let (x947, x948) = fiat_p384_mulx_u32(x7, (arg2[10]));
> +-    let mut x949: u32 = 0;
> +-    let mut x950: u32 = 0;
> +     let (x949, x950) = fiat_p384_mulx_u32(x7, (arg2[9]));
> +-    let mut x951: u32 = 0;
> +-    let mut x952: u32 = 0;
> +     let (x951, x952) = fiat_p384_mulx_u32(x7, (arg2[8]));
> +-    let mut x953: u32 = 0;
> +-    let mut x954: u32 = 0;
> +     let (x953, x954) = fiat_p384_mulx_u32(x7, (arg2[7]));
> +-    let mut x955: u32 = 0;
> +-    let mut x956: u32 = 0;
> +     let (x955, x956) = fiat_p384_mulx_u32(x7, (arg2[6]));
> +-    let mut x957: u32 = 0;
> +-    let mut x958: u32 = 0;
> +     let (x957, x958) = fiat_p384_mulx_u32(x7, (arg2[5]));
> +-    let mut x959: u32 = 0;
> +-    let mut x960: u32 = 0;
> +     let (x959, x960) = fiat_p384_mulx_u32(x7, (arg2[4]));
> +-    let mut x961: u32 = 0;
> +-    let mut x962: u32 = 0;
> +     let (x961, x962) = fiat_p384_mulx_u32(x7, (arg2[3]));
> +-    let mut x963: u32 = 0;
> +-    let mut x964: u32 = 0;
> +     let (x963, x964) = fiat_p384_mulx_u32(x7, (arg2[2]));
> +-    let mut x965: u32 = 0;
> +-    let mut x966: u32 = 0;
> +     let (x965, x966) = fiat_p384_mulx_u32(x7, (arg2[1]));
> +-    let mut x967: u32 = 0;
> +-    let mut x968: u32 = 0;
> +     let (x967, x968) = fiat_p384_mulx_u32(x7, (arg2[0]));
> +-    let mut x969: u32 = 0;
> +-    let mut x970: fiat_p384_u1 = 0;
> +     let (x969, x970) = fiat_p384_addcarryx_u32(0x0, x968, x965);
> +-    let mut x971: u32 = 0;
> +-    let mut x972: fiat_p384_u1 = 0;
> +     let (x971, x972) = fiat_p384_addcarryx_u32(x970, x966, x963);
> +-    let mut x973: u32 = 0;
> +-    let mut x974: fiat_p384_u1 = 0;
> +     let (x973, x974) = fiat_p384_addcarryx_u32(x972, x964, x961);
> +-    let mut x975: u32 = 0;
> +-    let mut x976: fiat_p384_u1 = 0;
> +     let (x975, x976) = fiat_p384_addcarryx_u32(x974, x962, x959);
> +-    let mut x977: u32 = 0;
> +-    let mut x978: fiat_p384_u1 = 0;
> +     let (x977, x978) = fiat_p384_addcarryx_u32(x976, x960, x957);
> +-    let mut x979: u32 = 0;
> +-    let mut x980: fiat_p384_u1 = 0;
> +     let (x979, x980) = fiat_p384_addcarryx_u32(x978, x958, x955);
> +-    let mut x981: u32 = 0;
> +-    let mut x982: fiat_p384_u1 = 0;
> +     let (x981, x982) = fiat_p384_addcarryx_u32(x980, x956, x953);
> +-    let mut x983: u32 = 0;
> +-    let mut x984: fiat_p384_u1 = 0;
> +     let (x983, x984) = fiat_p384_addcarryx_u32(x982, x954, x951);
> +-    let mut x985: u32 = 0;
> +-    let mut x986: fiat_p384_u1 = 0;
> +     let (x985, x986) = fiat_p384_addcarryx_u32(x984, x952, x949);
> +-    let mut x987: u32 = 0;
> +-    let mut x988: fiat_p384_u1 = 0;
> +     let (x987, x988) = fiat_p384_addcarryx_u32(x986, x950, x947);
> +-    let mut x989: u32 = 0;
> +-    let mut x990: fiat_p384_u1 = 0;
> +     let (x989, x990) = fiat_p384_addcarryx_u32(x988, x948, x945);
> +     let x991: u32 = ((x990 as u32) + x946);
> +-    let mut x992: u32 = 0;
> +-    let mut x993: fiat_p384_u1 = 0;
> +     let (x992, x993) = fiat_p384_addcarryx_u32(0x0, x920, x967);
> +-    let mut x994: u32 = 0;
> +-    let mut x995: fiat_p384_u1 = 0;
> +     let (x994, x995) = fiat_p384_addcarryx_u32(x993, x922, x969);
> +-    let mut x996: u32 = 0;
> +-    let mut x997: fiat_p384_u1 = 0;
> +     let (x996, x997) = fiat_p384_addcarryx_u32(x995, x924, x971);
> +-    let mut x998: u32 = 0;
> +-    let mut x999: fiat_p384_u1 = 0;
> +     let (x998, x999) = fiat_p384_addcarryx_u32(x997, x926, x973);
> +-    let mut x1000: u32 = 0;
> +-    let mut x1001: fiat_p384_u1 = 0;
> +     let (x1000, x1001) = fiat_p384_addcarryx_u32(x999, x928, x975);
> +-    let mut x1002: u32 = 0;
> +-    let mut x1003: fiat_p384_u1 = 0;
> +     let (x1002, x1003) = fiat_p384_addcarryx_u32(x1001, x930, x977);
> +-    let mut x1004: u32 = 0;
> +-    let mut x1005: fiat_p384_u1 = 0;
> +     let (x1004, x1005) = fiat_p384_addcarryx_u32(x1003, x932, x979);
> +-    let mut x1006: u32 = 0;
> +-    let mut x1007: fiat_p384_u1 = 0;
> +     let (x1006, x1007) = fiat_p384_addcarryx_u32(x1005, x934, x981);
> +-    let mut x1008: u32 = 0;
> +-    let mut x1009: fiat_p384_u1 = 0;
> +     let (x1008, x1009) = fiat_p384_addcarryx_u32(x1007, x936, x983);
> +-    let mut x1010: u32 = 0;
> +-    let mut x1011: fiat_p384_u1 = 0;
> +     let (x1010, x1011) = fiat_p384_addcarryx_u32(x1009, x938, x985);
> +-    let mut x1012: u32 = 0;
> +-    let mut x1013: fiat_p384_u1 = 0;
> +     let (x1012, x1013) = fiat_p384_addcarryx_u32(x1011, x940, x987);
> +-    let mut x1014: u32 = 0;
> +-    let mut x1015: fiat_p384_u1 = 0;
> +     let (x1014, x1015) = fiat_p384_addcarryx_u32(x1013, x942, x989);
> +-    let mut x1016: u32 = 0;
> +-    let mut x1017: fiat_p384_u1 = 0;
> +     let (x1016, x1017) = fiat_p384_addcarryx_u32(x1015, x944, x991);
> +-    let mut x1018: u32 = 0;
> +-    let mut x1019: u32 = 0;
> +     let (x1018, x1019) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1020: u32 = 0;
> +-    let mut x1021: u32 = 0;
> +     let (x1020, x1021) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1022: u32 = 0;
> +-    let mut x1023: u32 = 0;
> +     let (x1022, x1023) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1024: u32 = 0;
> +-    let mut x1025: u32 = 0;
> +     let (x1024, x1025) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1026: u32 = 0;
> +-    let mut x1027: u32 = 0;
> +     let (x1026, x1027) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1028: u32 = 0;
> +-    let mut x1029: u32 = 0;
> +     let (x1028, x1029) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1030: u32 = 0;
> +-    let mut x1031: u32 = 0;
> +     let (x1030, x1031) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1032: u32 = 0;
> +-    let mut x1033: u32 = 0;
> +     let (x1032, x1033) = fiat_p384_mulx_u32(x992, 0xfffffffe);
> +-    let mut x1034: u32 = 0;
> +-    let mut x1035: u32 = 0;
> +     let (x1034, x1035) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1036: u32 = 0;
> +-    let mut x1037: u32 = 0;
> +     let (x1036, x1037) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1038: u32 = 0;
> +-    let mut x1039: fiat_p384_u1 = 0;
> +     let (x1038, x1039) = fiat_p384_addcarryx_u32(0x0, x1035, x1032);
> +-    let mut x1040: u32 = 0;
> +-    let mut x1041: fiat_p384_u1 = 0;
> +     let (x1040, x1041) = fiat_p384_addcarryx_u32(x1039, x1033, x1030);
> +-    let mut x1042: u32 = 0;
> +-    let mut x1043: fiat_p384_u1 = 0;
> +     let (x1042, x1043) = fiat_p384_addcarryx_u32(x1041, x1031, x1028);
> +-    let mut x1044: u32 = 0;
> +-    let mut x1045: fiat_p384_u1 = 0;
> +     let (x1044, x1045) = fiat_p384_addcarryx_u32(x1043, x1029, x1026);
> +-    let mut x1046: u32 = 0;
> +-    let mut x1047: fiat_p384_u1 = 0;
> +     let (x1046, x1047) = fiat_p384_addcarryx_u32(x1045, x1027, x1024);
> +-    let mut x1048: u32 = 0;
> +-    let mut x1049: fiat_p384_u1 = 0;
> +     let (x1048, x1049) = fiat_p384_addcarryx_u32(x1047, x1025, x1022);
> +-    let mut x1050: u32 = 0;
> +-    let mut x1051: fiat_p384_u1 = 0;
> +     let (x1050, x1051) = fiat_p384_addcarryx_u32(x1049, x1023, x1020);
> +-    let mut x1052: u32 = 0;
> +-    let mut x1053: fiat_p384_u1 = 0;
> +     let (x1052, x1053) = fiat_p384_addcarryx_u32(x1051, x1021, x1018);
> +     let x1054: u32 = ((x1053 as u32) + x1019);
> +-    let mut x1055: u32 = 0;
> +-    let mut x1056: fiat_p384_u1 = 0;
> +     let (x1055, x1056) = fiat_p384_addcarryx_u32(0x0, x992, x1036);
> +-    let mut x1057: u32 = 0;
> +-    let mut x1058: fiat_p384_u1 = 0;
> +     let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x994, x1037);
> +-    let mut x1059: u32 = 0;
> +-    let mut x1060: fiat_p384_u1 = 0;
> +     let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x996, (0x0 as u32));
> +-    let mut x1061: u32 = 0;
> +-    let mut x1062: fiat_p384_u1 = 0;
> +     let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x998, x1034);
> +-    let mut x1063: u32 = 0;
> +-    let mut x1064: fiat_p384_u1 = 0;
> +     let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1000, x1038);
> +-    let mut x1065: u32 = 0;
> +-    let mut x1066: fiat_p384_u1 = 0;
> +     let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1002, x1040);
> +-    let mut x1067: u32 = 0;
> +-    let mut x1068: fiat_p384_u1 = 0;
> +     let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1004, x1042);
> +-    let mut x1069: u32 = 0;
> +-    let mut x1070: fiat_p384_u1 = 0;
> +     let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1006, x1044);
> +-    let mut x1071: u32 = 0;
> +-    let mut x1072: fiat_p384_u1 = 0;
> +     let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1008, x1046);
> +-    let mut x1073: u32 = 0;
> +-    let mut x1074: fiat_p384_u1 = 0;
> +     let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1010, x1048);
> +-    let mut x1075: u32 = 0;
> +-    let mut x1076: fiat_p384_u1 = 0;
> +     let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1012, x1050);
> +-    let mut x1077: u32 = 0;
> +-    let mut x1078: fiat_p384_u1 = 0;
> +     let (x1077, x1078) = fiat_p384_addcarryx_u32(x1076, x1014, x1052);
> +-    let mut x1079: u32 = 0;
> +-    let mut x1080: fiat_p384_u1 = 0;
> +     let (x1079, x1080) = fiat_p384_addcarryx_u32(x1078, x1016, x1054);
> +     let x1081: u32 = ((x1080 as u32) + (x1017 as u32));
> +-    let mut x1082: u32 = 0;
> +-    let mut x1083: u32 = 0;
> +     let (x1082, x1083) = fiat_p384_mulx_u32(x8, (arg2[11]));
> +-    let mut x1084: u32 = 0;
> +-    let mut x1085: u32 = 0;
> +     let (x1084, x1085) = fiat_p384_mulx_u32(x8, (arg2[10]));
> +-    let mut x1086: u32 = 0;
> +-    let mut x1087: u32 = 0;
> +     let (x1086, x1087) = fiat_p384_mulx_u32(x8, (arg2[9]));
> +-    let mut x1088: u32 = 0;
> +-    let mut x1089: u32 = 0;
> +     let (x1088, x1089) = fiat_p384_mulx_u32(x8, (arg2[8]));
> +-    let mut x1090: u32 = 0;
> +-    let mut x1091: u32 = 0;
> +     let (x1090, x1091) = fiat_p384_mulx_u32(x8, (arg2[7]));
> +-    let mut x1092: u32 = 0;
> +-    let mut x1093: u32 = 0;
> +     let (x1092, x1093) = fiat_p384_mulx_u32(x8, (arg2[6]));
> +-    let mut x1094: u32 = 0;
> +-    let mut x1095: u32 = 0;
> +     let (x1094, x1095) = fiat_p384_mulx_u32(x8, (arg2[5]));
> +-    let mut x1096: u32 = 0;
> +-    let mut x1097: u32 = 0;
> +     let (x1096, x1097) = fiat_p384_mulx_u32(x8, (arg2[4]));
> +-    let mut x1098: u32 = 0;
> +-    let mut x1099: u32 = 0;
> +     let (x1098, x1099) = fiat_p384_mulx_u32(x8, (arg2[3]));
> +-    let mut x1100: u32 = 0;
> +-    let mut x1101: u32 = 0;
> +     let (x1100, x1101) = fiat_p384_mulx_u32(x8, (arg2[2]));
> +-    let mut x1102: u32 = 0;
> +-    let mut x1103: u32 = 0;
> +     let (x1102, x1103) = fiat_p384_mulx_u32(x8, (arg2[1]));
> +-    let mut x1104: u32 = 0;
> +-    let mut x1105: u32 = 0;
> +     let (x1104, x1105) = fiat_p384_mulx_u32(x8, (arg2[0]));
> +-    let mut x1106: u32 = 0;
> +-    let mut x1107: fiat_p384_u1 = 0;
> +     let (x1106, x1107) = fiat_p384_addcarryx_u32(0x0, x1105, x1102);
> +-    let mut x1108: u32 = 0;
> +-    let mut x1109: fiat_p384_u1 = 0;
> +     let (x1108, x1109) = fiat_p384_addcarryx_u32(x1107, x1103, x1100);
> +-    let mut x1110: u32 = 0;
> +-    let mut x1111: fiat_p384_u1 = 0;
> +     let (x1110, x1111) = fiat_p384_addcarryx_u32(x1109, x1101, x1098);
> +-    let mut x1112: u32 = 0;
> +-    let mut x1113: fiat_p384_u1 = 0;
> +     let (x1112, x1113) = fiat_p384_addcarryx_u32(x1111, x1099, x1096);
> +-    let mut x1114: u32 = 0;
> +-    let mut x1115: fiat_p384_u1 = 0;
> +     let (x1114, x1115) = fiat_p384_addcarryx_u32(x1113, x1097, x1094);
> +-    let mut x1116: u32 = 0;
> +-    let mut x1117: fiat_p384_u1 = 0;
> +     let (x1116, x1117) = fiat_p384_addcarryx_u32(x1115, x1095, x1092);
> +-    let mut x1118: u32 = 0;
> +-    let mut x1119: fiat_p384_u1 = 0;
> +     let (x1118, x1119) = fiat_p384_addcarryx_u32(x1117, x1093, x1090);
> +-    let mut x1120: u32 = 0;
> +-    let mut x1121: fiat_p384_u1 = 0;
> +     let (x1120, x1121) = fiat_p384_addcarryx_u32(x1119, x1091, x1088);
> +-    let mut x1122: u32 = 0;
> +-    let mut x1123: fiat_p384_u1 = 0;
> +     let (x1122, x1123) = fiat_p384_addcarryx_u32(x1121, x1089, x1086);
> +-    let mut x1124: u32 = 0;
> +-    let mut x1125: fiat_p384_u1 = 0;
> +     let (x1124, x1125) = fiat_p384_addcarryx_u32(x1123, x1087, x1084);
> +-    let mut x1126: u32 = 0;
> +-    let mut x1127: fiat_p384_u1 = 0;
> +     let (x1126, x1127) = fiat_p384_addcarryx_u32(x1125, x1085, x1082);
> +     let x1128: u32 = ((x1127 as u32) + x1083);
> +-    let mut x1129: u32 = 0;
> +-    let mut x1130: fiat_p384_u1 = 0;
> +     let (x1129, x1130) = fiat_p384_addcarryx_u32(0x0, x1057, x1104);
> +-    let mut x1131: u32 = 0;
> +-    let mut x1132: fiat_p384_u1 = 0;
> +     let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1059, x1106);
> +-    let mut x1133: u32 = 0;
> +-    let mut x1134: fiat_p384_u1 = 0;
> +     let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1061, x1108);
> +-    let mut x1135: u32 = 0;
> +-    let mut x1136: fiat_p384_u1 = 0;
> +     let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1063, x1110);
> +-    let mut x1137: u32 = 0;
> +-    let mut x1138: fiat_p384_u1 = 0;
> +     let (x1137, x1138) = fiat_p384_addcarryx_u32(x1136, x1065, x1112);
> +-    let mut x1139: u32 = 0;
> +-    let mut x1140: fiat_p384_u1 = 0;
> +     let (x1139, x1140) = fiat_p384_addcarryx_u32(x1138, x1067, x1114);
> +-    let mut x1141: u32 = 0;
> +-    let mut x1142: fiat_p384_u1 = 0;
> +     let (x1141, x1142) = fiat_p384_addcarryx_u32(x1140, x1069, x1116);
> +-    let mut x1143: u32 = 0;
> +-    let mut x1144: fiat_p384_u1 = 0;
> +     let (x1143, x1144) = fiat_p384_addcarryx_u32(x1142, x1071, x1118);
> +-    let mut x1145: u32 = 0;
> +-    let mut x1146: fiat_p384_u1 = 0;
> +     let (x1145, x1146) = fiat_p384_addcarryx_u32(x1144, x1073, x1120);
> +-    let mut x1147: u32 = 0;
> +-    let mut x1148: fiat_p384_u1 = 0;
> +     let (x1147, x1148) = fiat_p384_addcarryx_u32(x1146, x1075, x1122);
> +-    let mut x1149: u32 = 0;
> +-    let mut x1150: fiat_p384_u1 = 0;
> +     let (x1149, x1150) = fiat_p384_addcarryx_u32(x1148, x1077, x1124);
> +-    let mut x1151: u32 = 0;
> +-    let mut x1152: fiat_p384_u1 = 0;
> +     let (x1151, x1152) = fiat_p384_addcarryx_u32(x1150, x1079, x1126);
> +-    let mut x1153: u32 = 0;
> +-    let mut x1154: fiat_p384_u1 = 0;
> +     let (x1153, x1154) = fiat_p384_addcarryx_u32(x1152, x1081, x1128);
> +-    let mut x1155: u32 = 0;
> +-    let mut x1156: u32 = 0;
> +     let (x1155, x1156) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1157: u32 = 0;
> +-    let mut x1158: u32 = 0;
> +     let (x1157, x1158) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1159: u32 = 0;
> +-    let mut x1160: u32 = 0;
> +     let (x1159, x1160) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1161: u32 = 0;
> +-    let mut x1162: u32 = 0;
> +     let (x1161, x1162) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1163: u32 = 0;
> +-    let mut x1164: u32 = 0;
> +     let (x1163, x1164) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1165: u32 = 0;
> +-    let mut x1166: u32 = 0;
> +     let (x1165, x1166) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1167: u32 = 0;
> +-    let mut x1168: u32 = 0;
> +     let (x1167, x1168) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1169: u32 = 0;
> +-    let mut x1170: u32 = 0;
> +     let (x1169, x1170) = fiat_p384_mulx_u32(x1129, 0xfffffffe);
> +-    let mut x1171: u32 = 0;
> +-    let mut x1172: u32 = 0;
> +     let (x1171, x1172) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1173: u32 = 0;
> +-    let mut x1174: u32 = 0;
> +     let (x1173, x1174) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1175: u32 = 0;
> +-    let mut x1176: fiat_p384_u1 = 0;
> +     let (x1175, x1176) = fiat_p384_addcarryx_u32(0x0, x1172, x1169);
> +-    let mut x1177: u32 = 0;
> +-    let mut x1178: fiat_p384_u1 = 0;
> +     let (x1177, x1178) = fiat_p384_addcarryx_u32(x1176, x1170, x1167);
> +-    let mut x1179: u32 = 0;
> +-    let mut x1180: fiat_p384_u1 = 0;
> +     let (x1179, x1180) = fiat_p384_addcarryx_u32(x1178, x1168, x1165);
> +-    let mut x1181: u32 = 0;
> +-    let mut x1182: fiat_p384_u1 = 0;
> +     let (x1181, x1182) = fiat_p384_addcarryx_u32(x1180, x1166, x1163);
> +-    let mut x1183: u32 = 0;
> +-    let mut x1184: fiat_p384_u1 = 0;
> +     let (x1183, x1184) = fiat_p384_addcarryx_u32(x1182, x1164, x1161);
> +-    let mut x1185: u32 = 0;
> +-    let mut x1186: fiat_p384_u1 = 0;
> +     let (x1185, x1186) = fiat_p384_addcarryx_u32(x1184, x1162, x1159);
> +-    let mut x1187: u32 = 0;
> +-    let mut x1188: fiat_p384_u1 = 0;
> +     let (x1187, x1188) = fiat_p384_addcarryx_u32(x1186, x1160, x1157);
> +-    let mut x1189: u32 = 0;
> +-    let mut x1190: fiat_p384_u1 = 0;
> +     let (x1189, x1190) = fiat_p384_addcarryx_u32(x1188, x1158, x1155);
> +     let x1191: u32 = ((x1190 as u32) + x1156);
> +-    let mut x1192: u32 = 0;
> +-    let mut x1193: fiat_p384_u1 = 0;
> +     let (x1192, x1193) = fiat_p384_addcarryx_u32(0x0, x1129, x1173);
> +-    let mut x1194: u32 = 0;
> +-    let mut x1195: fiat_p384_u1 = 0;
> +     let (x1194, x1195) = fiat_p384_addcarryx_u32(x1193, x1131, x1174);
> +-    let mut x1196: u32 = 0;
> +-    let mut x1197: fiat_p384_u1 = 0;
> +     let (x1196, x1197) = fiat_p384_addcarryx_u32(x1195, x1133, (0x0 as u32));
> +-    let mut x1198: u32 = 0;
> +-    let mut x1199: fiat_p384_u1 = 0;
> +     let (x1198, x1199) = fiat_p384_addcarryx_u32(x1197, x1135, x1171);
> +-    let mut x1200: u32 = 0;
> +-    let mut x1201: fiat_p384_u1 = 0;
> +     let (x1200, x1201) = fiat_p384_addcarryx_u32(x1199, x1137, x1175);
> +-    let mut x1202: u32 = 0;
> +-    let mut x1203: fiat_p384_u1 = 0;
> +     let (x1202, x1203) = fiat_p384_addcarryx_u32(x1201, x1139, x1177);
> +-    let mut x1204: u32 = 0;
> +-    let mut x1205: fiat_p384_u1 = 0;
> +     let (x1204, x1205) = fiat_p384_addcarryx_u32(x1203, x1141, x1179);
> +-    let mut x1206: u32 = 0;
> +-    let mut x1207: fiat_p384_u1 = 0;
> +     let (x1206, x1207) = fiat_p384_addcarryx_u32(x1205, x1143, x1181);
> +-    let mut x1208: u32 = 0;
> +-    let mut x1209: fiat_p384_u1 = 0;
> +     let (x1208, x1209) = fiat_p384_addcarryx_u32(x1207, x1145, x1183);
> +-    let mut x1210: u32 = 0;
> +-    let mut x1211: fiat_p384_u1 = 0;
> +     let (x1210, x1211) = fiat_p384_addcarryx_u32(x1209, x1147, x1185);
> +-    let mut x1212: u32 = 0;
> +-    let mut x1213: fiat_p384_u1 = 0;
> +     let (x1212, x1213) = fiat_p384_addcarryx_u32(x1211, x1149, x1187);
> +-    let mut x1214: u32 = 0;
> +-    let mut x1215: fiat_p384_u1 = 0;
> +     let (x1214, x1215) = fiat_p384_addcarryx_u32(x1213, x1151, x1189);
> +-    let mut x1216: u32 = 0;
> +-    let mut x1217: fiat_p384_u1 = 0;
> +     let (x1216, x1217) = fiat_p384_addcarryx_u32(x1215, x1153, x1191);
> +     let x1218: u32 = ((x1217 as u32) + (x1154 as u32));
> +-    let mut x1219: u32 = 0;
> +-    let mut x1220: u32 = 0;
> +     let (x1219, x1220) = fiat_p384_mulx_u32(x9, (arg2[11]));
> +-    let mut x1221: u32 = 0;
> +-    let mut x1222: u32 = 0;
> +     let (x1221, x1222) = fiat_p384_mulx_u32(x9, (arg2[10]));
> +-    let mut x1223: u32 = 0;
> +-    let mut x1224: u32 = 0;
> +     let (x1223, x1224) = fiat_p384_mulx_u32(x9, (arg2[9]));
> +-    let mut x1225: u32 = 0;
> +-    let mut x1226: u32 = 0;
> +     let (x1225, x1226) = fiat_p384_mulx_u32(x9, (arg2[8]));
> +-    let mut x1227: u32 = 0;
> +-    let mut x1228: u32 = 0;
> +     let (x1227, x1228) = fiat_p384_mulx_u32(x9, (arg2[7]));
> +-    let mut x1229: u32 = 0;
> +-    let mut x1230: u32 = 0;
> +     let (x1229, x1230) = fiat_p384_mulx_u32(x9, (arg2[6]));
> +-    let mut x1231: u32 = 0;
> +-    let mut x1232: u32 = 0;
> +     let (x1231, x1232) = fiat_p384_mulx_u32(x9, (arg2[5]));
> +-    let mut x1233: u32 = 0;
> +-    let mut x1234: u32 = 0;
> +     let (x1233, x1234) = fiat_p384_mulx_u32(x9, (arg2[4]));
> +-    let mut x1235: u32 = 0;
> +-    let mut x1236: u32 = 0;
> +     let (x1235, x1236) = fiat_p384_mulx_u32(x9, (arg2[3]));
> +-    let mut x1237: u32 = 0;
> +-    let mut x1238: u32 = 0;
> +     let (x1237, x1238) = fiat_p384_mulx_u32(x9, (arg2[2]));
> +-    let mut x1239: u32 = 0;
> +-    let mut x1240: u32 = 0;
> +     let (x1239, x1240) = fiat_p384_mulx_u32(x9, (arg2[1]));
> +-    let mut x1241: u32 = 0;
> +-    let mut x1242: u32 = 0;
> +     let (x1241, x1242) = fiat_p384_mulx_u32(x9, (arg2[0]));
> +-    let mut x1243: u32 = 0;
> +-    let mut x1244: fiat_p384_u1 = 0;
> +     let (x1243, x1244) = fiat_p384_addcarryx_u32(0x0, x1242, x1239);
> +-    let mut x1245: u32 = 0;
> +-    let mut x1246: fiat_p384_u1 = 0;
> +     let (x1245, x1246) = fiat_p384_addcarryx_u32(x1244, x1240, x1237);
> +-    let mut x1247: u32 = 0;
> +-    let mut x1248: fiat_p384_u1 = 0;
> +     let (x1247, x1248) = fiat_p384_addcarryx_u32(x1246, x1238, x1235);
> +-    let mut x1249: u32 = 0;
> +-    let mut x1250: fiat_p384_u1 = 0;
> +     let (x1249, x1250) = fiat_p384_addcarryx_u32(x1248, x1236, x1233);
> +-    let mut x1251: u32 = 0;
> +-    let mut x1252: fiat_p384_u1 = 0;
> +     let (x1251, x1252) = fiat_p384_addcarryx_u32(x1250, x1234, x1231);
> +-    let mut x1253: u32 = 0;
> +-    let mut x1254: fiat_p384_u1 = 0;
> +     let (x1253, x1254) = fiat_p384_addcarryx_u32(x1252, x1232, x1229);
> +-    let mut x1255: u32 = 0;
> +-    let mut x1256: fiat_p384_u1 = 0;
> +     let (x1255, x1256) = fiat_p384_addcarryx_u32(x1254, x1230, x1227);
> +-    let mut x1257: u32 = 0;
> +-    let mut x1258: fiat_p384_u1 = 0;
> +     let (x1257, x1258) = fiat_p384_addcarryx_u32(x1256, x1228, x1225);
> +-    let mut x1259: u32 = 0;
> +-    let mut x1260: fiat_p384_u1 = 0;
> +     let (x1259, x1260) = fiat_p384_addcarryx_u32(x1258, x1226, x1223);
> +-    let mut x1261: u32 = 0;
> +-    let mut x1262: fiat_p384_u1 = 0;
> +     let (x1261, x1262) = fiat_p384_addcarryx_u32(x1260, x1224, x1221);
> +-    let mut x1263: u32 = 0;
> +-    let mut x1264: fiat_p384_u1 = 0;
> +     let (x1263, x1264) = fiat_p384_addcarryx_u32(x1262, x1222, x1219);
> +     let x1265: u32 = ((x1264 as u32) + x1220);
> +-    let mut x1266: u32 = 0;
> +-    let mut x1267: fiat_p384_u1 = 0;
> +     let (x1266, x1267) = fiat_p384_addcarryx_u32(0x0, x1194, x1241);
> +-    let mut x1268: u32 = 0;
> +-    let mut x1269: fiat_p384_u1 = 0;
> +     let (x1268, x1269) = fiat_p384_addcarryx_u32(x1267, x1196, x1243);
> +-    let mut x1270: u32 = 0;
> +-    let mut x1271: fiat_p384_u1 = 0;
> +     let (x1270, x1271) = fiat_p384_addcarryx_u32(x1269, x1198, x1245);
> +-    let mut x1272: u32 = 0;
> +-    let mut x1273: fiat_p384_u1 = 0;
> +     let (x1272, x1273) = fiat_p384_addcarryx_u32(x1271, x1200, x1247);
> +-    let mut x1274: u32 = 0;
> +-    let mut x1275: fiat_p384_u1 = 0;
> +     let (x1274, x1275) = fiat_p384_addcarryx_u32(x1273, x1202, x1249);
> +-    let mut x1276: u32 = 0;
> +-    let mut x1277: fiat_p384_u1 = 0;
> +     let (x1276, x1277) = fiat_p384_addcarryx_u32(x1275, x1204, x1251);
> +-    let mut x1278: u32 = 0;
> +-    let mut x1279: fiat_p384_u1 = 0;
> +     let (x1278, x1279) = fiat_p384_addcarryx_u32(x1277, x1206, x1253);
> +-    let mut x1280: u32 = 0;
> +-    let mut x1281: fiat_p384_u1 = 0;
> +     let (x1280, x1281) = fiat_p384_addcarryx_u32(x1279, x1208, x1255);
> +-    let mut x1282: u32 = 0;
> +-    let mut x1283: fiat_p384_u1 = 0;
> +     let (x1282, x1283) = fiat_p384_addcarryx_u32(x1281, x1210, x1257);
> +-    let mut x1284: u32 = 0;
> +-    let mut x1285: fiat_p384_u1 = 0;
> +     let (x1284, x1285) = fiat_p384_addcarryx_u32(x1283, x1212, x1259);
> +-    let mut x1286: u32 = 0;
> +-    let mut x1287: fiat_p384_u1 = 0;
> +     let (x1286, x1287) = fiat_p384_addcarryx_u32(x1285, x1214, x1261);
> +-    let mut x1288: u32 = 0;
> +-    let mut x1289: fiat_p384_u1 = 0;
> +     let (x1288, x1289) = fiat_p384_addcarryx_u32(x1287, x1216, x1263);
> +-    let mut x1290: u32 = 0;
> +-    let mut x1291: fiat_p384_u1 = 0;
> +     let (x1290, x1291) = fiat_p384_addcarryx_u32(x1289, x1218, x1265);
> +-    let mut x1292: u32 = 0;
> +-    let mut x1293: u32 = 0;
> +     let (x1292, x1293) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1294: u32 = 0;
> +-    let mut x1295: u32 = 0;
> +     let (x1294, x1295) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1296: u32 = 0;
> +-    let mut x1297: u32 = 0;
> +     let (x1296, x1297) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1298: u32 = 0;
> +-    let mut x1299: u32 = 0;
> +     let (x1298, x1299) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1300: u32 = 0;
> +-    let mut x1301: u32 = 0;
> +     let (x1300, x1301) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1302: u32 = 0;
> +-    let mut x1303: u32 = 0;
> +     let (x1302, x1303) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1304: u32 = 0;
> +-    let mut x1305: u32 = 0;
> +     let (x1304, x1305) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1306: u32 = 0;
> +-    let mut x1307: u32 = 0;
> +     let (x1306, x1307) = fiat_p384_mulx_u32(x1266, 0xfffffffe);
> +-    let mut x1308: u32 = 0;
> +-    let mut x1309: u32 = 0;
> +     let (x1308, x1309) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1310: u32 = 0;
> +-    let mut x1311: u32 = 0;
> +     let (x1310, x1311) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1312: u32 = 0;
> +-    let mut x1313: fiat_p384_u1 = 0;
> +     let (x1312, x1313) = fiat_p384_addcarryx_u32(0x0, x1309, x1306);
> +-    let mut x1314: u32 = 0;
> +-    let mut x1315: fiat_p384_u1 = 0;
> +     let (x1314, x1315) = fiat_p384_addcarryx_u32(x1313, x1307, x1304);
> +-    let mut x1316: u32 = 0;
> +-    let mut x1317: fiat_p384_u1 = 0;
> +     let (x1316, x1317) = fiat_p384_addcarryx_u32(x1315, x1305, x1302);
> +-    let mut x1318: u32 = 0;
> +-    let mut x1319: fiat_p384_u1 = 0;
> +     let (x1318, x1319) = fiat_p384_addcarryx_u32(x1317, x1303, x1300);
> +-    let mut x1320: u32 = 0;
> +-    let mut x1321: fiat_p384_u1 = 0;
> +     let (x1320, x1321) = fiat_p384_addcarryx_u32(x1319, x1301, x1298);
> +-    let mut x1322: u32 = 0;
> +-    let mut x1323: fiat_p384_u1 = 0;
> +     let (x1322, x1323) = fiat_p384_addcarryx_u32(x1321, x1299, x1296);
> +-    let mut x1324: u32 = 0;
> +-    let mut x1325: fiat_p384_u1 = 0;
> +     let (x1324, x1325) = fiat_p384_addcarryx_u32(x1323, x1297, x1294);
> +-    let mut x1326: u32 = 0;
> +-    let mut x1327: fiat_p384_u1 = 0;
> +     let (x1326, x1327) = fiat_p384_addcarryx_u32(x1325, x1295, x1292);
> +     let x1328: u32 = ((x1327 as u32) + x1293);
> +-    let mut x1329: u32 = 0;
> +-    let mut x1330: fiat_p384_u1 = 0;
> +     let (x1329, x1330) = fiat_p384_addcarryx_u32(0x0, x1266, x1310);
> +-    let mut x1331: u32 = 0;
> +-    let mut x1332: fiat_p384_u1 = 0;
> +     let (x1331, x1332) = fiat_p384_addcarryx_u32(x1330, x1268, x1311);
> +-    let mut x1333: u32 = 0;
> +-    let mut x1334: fiat_p384_u1 = 0;
> +     let (x1333, x1334) = fiat_p384_addcarryx_u32(x1332, x1270, (0x0 as u32));
> +-    let mut x1335: u32 = 0;
> +-    let mut x1336: fiat_p384_u1 = 0;
> +     let (x1335, x1336) = fiat_p384_addcarryx_u32(x1334, x1272, x1308);
> +-    let mut x1337: u32 = 0;
> +-    let mut x1338: fiat_p384_u1 = 0;
> +     let (x1337, x1338) = fiat_p384_addcarryx_u32(x1336, x1274, x1312);
> +-    let mut x1339: u32 = 0;
> +-    let mut x1340: fiat_p384_u1 = 0;
> +     let (x1339, x1340) = fiat_p384_addcarryx_u32(x1338, x1276, x1314);
> +-    let mut x1341: u32 = 0;
> +-    let mut x1342: fiat_p384_u1 = 0;
> +     let (x1341, x1342) = fiat_p384_addcarryx_u32(x1340, x1278, x1316);
> +-    let mut x1343: u32 = 0;
> +-    let mut x1344: fiat_p384_u1 = 0;
> +     let (x1343, x1344) = fiat_p384_addcarryx_u32(x1342, x1280, x1318);
> +-    let mut x1345: u32 = 0;
> +-    let mut x1346: fiat_p384_u1 = 0;
> +     let (x1345, x1346) = fiat_p384_addcarryx_u32(x1344, x1282, x1320);
> +-    let mut x1347: u32 = 0;
> +-    let mut x1348: fiat_p384_u1 = 0;
> +     let (x1347, x1348) = fiat_p384_addcarryx_u32(x1346, x1284, x1322);
> +-    let mut x1349: u32 = 0;
> +-    let mut x1350: fiat_p384_u1 = 0;
> +     let (x1349, x1350) = fiat_p384_addcarryx_u32(x1348, x1286, x1324);
> +-    let mut x1351: u32 = 0;
> +-    let mut x1352: fiat_p384_u1 = 0;
> +     let (x1351, x1352) = fiat_p384_addcarryx_u32(x1350, x1288, x1326);
> +-    let mut x1353: u32 = 0;
> +-    let mut x1354: fiat_p384_u1 = 0;
> +     let (x1353, x1354) = fiat_p384_addcarryx_u32(x1352, x1290, x1328);
> +     let x1355: u32 = ((x1354 as u32) + (x1291 as u32));
> +-    let mut x1356: u32 = 0;
> +-    let mut x1357: u32 = 0;
> +     let (x1356, x1357) = fiat_p384_mulx_u32(x10, (arg2[11]));
> +-    let mut x1358: u32 = 0;
> +-    let mut x1359: u32 = 0;
> +     let (x1358, x1359) = fiat_p384_mulx_u32(x10, (arg2[10]));
> +-    let mut x1360: u32 = 0;
> +-    let mut x1361: u32 = 0;
> +     let (x1360, x1361) = fiat_p384_mulx_u32(x10, (arg2[9]));
> +-    let mut x1362: u32 = 0;
> +-    let mut x1363: u32 = 0;
> +     let (x1362, x1363) = fiat_p384_mulx_u32(x10, (arg2[8]));
> +-    let mut x1364: u32 = 0;
> +-    let mut x1365: u32 = 0;
> +     let (x1364, x1365) = fiat_p384_mulx_u32(x10, (arg2[7]));
> +-    let mut x1366: u32 = 0;
> +-    let mut x1367: u32 = 0;
> +     let (x1366, x1367) = fiat_p384_mulx_u32(x10, (arg2[6]));
> +-    let mut x1368: u32 = 0;
> +-    let mut x1369: u32 = 0;
> +     let (x1368, x1369) = fiat_p384_mulx_u32(x10, (arg2[5]));
> +-    let mut x1370: u32 = 0;
> +-    let mut x1371: u32 = 0;
> +     let (x1370, x1371) = fiat_p384_mulx_u32(x10, (arg2[4]));
> +-    let mut x1372: u32 = 0;
> +-    let mut x1373: u32 = 0;
> +     let (x1372, x1373) = fiat_p384_mulx_u32(x10, (arg2[3]));
> +-    let mut x1374: u32 = 0;
> +-    let mut x1375: u32 = 0;
> +     let (x1374, x1375) = fiat_p384_mulx_u32(x10, (arg2[2]));
> +-    let mut x1376: u32 = 0;
> +-    let mut x1377: u32 = 0;
> +     let (x1376, x1377) = fiat_p384_mulx_u32(x10, (arg2[1]));
> +-    let mut x1378: u32 = 0;
> +-    let mut x1379: u32 = 0;
> +     let (x1378, x1379) = fiat_p384_mulx_u32(x10, (arg2[0]));
> +-    let mut x1380: u32 = 0;
> +-    let mut x1381: fiat_p384_u1 = 0;
> +     let (x1380, x1381) = fiat_p384_addcarryx_u32(0x0, x1379, x1376);
> +-    let mut x1382: u32 = 0;
> +-    let mut x1383: fiat_p384_u1 = 0;
> +     let (x1382, x1383) = fiat_p384_addcarryx_u32(x1381, x1377, x1374);
> +-    let mut x1384: u32 = 0;
> +-    let mut x1385: fiat_p384_u1 = 0;
> +     let (x1384, x1385) = fiat_p384_addcarryx_u32(x1383, x1375, x1372);
> +-    let mut x1386: u32 = 0;
> +-    let mut x1387: fiat_p384_u1 = 0;
> +     let (x1386, x1387) = fiat_p384_addcarryx_u32(x1385, x1373, x1370);
> +-    let mut x1388: u32 = 0;
> +-    let mut x1389: fiat_p384_u1 = 0;
> +     let (x1388, x1389) = fiat_p384_addcarryx_u32(x1387, x1371, x1368);
> +-    let mut x1390: u32 = 0;
> +-    let mut x1391: fiat_p384_u1 = 0;
> +     let (x1390, x1391) = fiat_p384_addcarryx_u32(x1389, x1369, x1366);
> +-    let mut x1392: u32 = 0;
> +-    let mut x1393: fiat_p384_u1 = 0;
> +     let (x1392, x1393) = fiat_p384_addcarryx_u32(x1391, x1367, x1364);
> +-    let mut x1394: u32 = 0;
> +-    let mut x1395: fiat_p384_u1 = 0;
> +     let (x1394, x1395) = fiat_p384_addcarryx_u32(x1393, x1365, x1362);
> +-    let mut x1396: u32 = 0;
> +-    let mut x1397: fiat_p384_u1 = 0;
> +     let (x1396, x1397) = fiat_p384_addcarryx_u32(x1395, x1363, x1360);
> +-    let mut x1398: u32 = 0;
> +-    let mut x1399: fiat_p384_u1 = 0;
> +     let (x1398, x1399) = fiat_p384_addcarryx_u32(x1397, x1361, x1358);
> +-    let mut x1400: u32 = 0;
> +-    let mut x1401: fiat_p384_u1 = 0;
> +     let (x1400, x1401) = fiat_p384_addcarryx_u32(x1399, x1359, x1356);
> +     let x1402: u32 = ((x1401 as u32) + x1357);
> +-    let mut x1403: u32 = 0;
> +-    let mut x1404: fiat_p384_u1 = 0;
> +     let (x1403, x1404) = fiat_p384_addcarryx_u32(0x0, x1331, x1378);
> +-    let mut x1405: u32 = 0;
> +-    let mut x1406: fiat_p384_u1 = 0;
> +     let (x1405, x1406) = fiat_p384_addcarryx_u32(x1404, x1333, x1380);
> +-    let mut x1407: u32 = 0;
> +-    let mut x1408: fiat_p384_u1 = 0;
> +     let (x1407, x1408) = fiat_p384_addcarryx_u32(x1406, x1335, x1382);
> +-    let mut x1409: u32 = 0;
> +-    let mut x1410: fiat_p384_u1 = 0;
> +     let (x1409, x1410) = fiat_p384_addcarryx_u32(x1408, x1337, x1384);
> +-    let mut x1411: u32 = 0;
> +-    let mut x1412: fiat_p384_u1 = 0;
> +     let (x1411, x1412) = fiat_p384_addcarryx_u32(x1410, x1339, x1386);
> +-    let mut x1413: u32 = 0;
> +-    let mut x1414: fiat_p384_u1 = 0;
> +     let (x1413, x1414) = fiat_p384_addcarryx_u32(x1412, x1341, x1388);
> +-    let mut x1415: u32 = 0;
> +-    let mut x1416: fiat_p384_u1 = 0;
> +     let (x1415, x1416) = fiat_p384_addcarryx_u32(x1414, x1343, x1390);
> +-    let mut x1417: u32 = 0;
> +-    let mut x1418: fiat_p384_u1 = 0;
> +     let (x1417, x1418) = fiat_p384_addcarryx_u32(x1416, x1345, x1392);
> +-    let mut x1419: u32 = 0;
> +-    let mut x1420: fiat_p384_u1 = 0;
> +     let (x1419, x1420) = fiat_p384_addcarryx_u32(x1418, x1347, x1394);
> +-    let mut x1421: u32 = 0;
> +-    let mut x1422: fiat_p384_u1 = 0;
> +     let (x1421, x1422) = fiat_p384_addcarryx_u32(x1420, x1349, x1396);
> +-    let mut x1423: u32 = 0;
> +-    let mut x1424: fiat_p384_u1 = 0;
> +     let (x1423, x1424) = fiat_p384_addcarryx_u32(x1422, x1351, x1398);
> +-    let mut x1425: u32 = 0;
> +-    let mut x1426: fiat_p384_u1 = 0;
> +     let (x1425, x1426) = fiat_p384_addcarryx_u32(x1424, x1353, x1400);
> +-    let mut x1427: u32 = 0;
> +-    let mut x1428: fiat_p384_u1 = 0;
> +     let (x1427, x1428) = fiat_p384_addcarryx_u32(x1426, x1355, x1402);
> +-    let mut x1429: u32 = 0;
> +-    let mut x1430: u32 = 0;
> +     let (x1429, x1430) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1431: u32 = 0;
> +-    let mut x1432: u32 = 0;
> +     let (x1431, x1432) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1433: u32 = 0;
> +-    let mut x1434: u32 = 0;
> +     let (x1433, x1434) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1435: u32 = 0;
> +-    let mut x1436: u32 = 0;
> +     let (x1435, x1436) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1437: u32 = 0;
> +-    let mut x1438: u32 = 0;
> +     let (x1437, x1438) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1439: u32 = 0;
> +-    let mut x1440: u32 = 0;
> +     let (x1439, x1440) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1441: u32 = 0;
> +-    let mut x1442: u32 = 0;
> +     let (x1441, x1442) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1443: u32 = 0;
> +-    let mut x1444: u32 = 0;
> +     let (x1443, x1444) = fiat_p384_mulx_u32(x1403, 0xfffffffe);
> +-    let mut x1445: u32 = 0;
> +-    let mut x1446: u32 = 0;
> +     let (x1445, x1446) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1447: u32 = 0;
> +-    let mut x1448: u32 = 0;
> +     let (x1447, x1448) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1449: u32 = 0;
> +-    let mut x1450: fiat_p384_u1 = 0;
> +     let (x1449, x1450) = fiat_p384_addcarryx_u32(0x0, x1446, x1443);
> +-    let mut x1451: u32 = 0;
> +-    let mut x1452: fiat_p384_u1 = 0;
> +     let (x1451, x1452) = fiat_p384_addcarryx_u32(x1450, x1444, x1441);
> +-    let mut x1453: u32 = 0;
> +-    let mut x1454: fiat_p384_u1 = 0;
> +     let (x1453, x1454) = fiat_p384_addcarryx_u32(x1452, x1442, x1439);
> +-    let mut x1455: u32 = 0;
> +-    let mut x1456: fiat_p384_u1 = 0;
> +     let (x1455, x1456) = fiat_p384_addcarryx_u32(x1454, x1440, x1437);
> +-    let mut x1457: u32 = 0;
> +-    let mut x1458: fiat_p384_u1 = 0;
> +     let (x1457, x1458) = fiat_p384_addcarryx_u32(x1456, x1438, x1435);
> +-    let mut x1459: u32 = 0;
> +-    let mut x1460: fiat_p384_u1 = 0;
> +     let (x1459, x1460) = fiat_p384_addcarryx_u32(x1458, x1436, x1433);
> +-    let mut x1461: u32 = 0;
> +-    let mut x1462: fiat_p384_u1 = 0;
> +     let (x1461, x1462) = fiat_p384_addcarryx_u32(x1460, x1434, x1431);
> +-    let mut x1463: u32 = 0;
> +-    let mut x1464: fiat_p384_u1 = 0;
> +     let (x1463, x1464) = fiat_p384_addcarryx_u32(x1462, x1432, x1429);
> +     let x1465: u32 = ((x1464 as u32) + x1430);
> +-    let mut x1466: u32 = 0;
> +-    let mut x1467: fiat_p384_u1 = 0;
> +     let (x1466, x1467) = fiat_p384_addcarryx_u32(0x0, x1403, x1447);
> +-    let mut x1468: u32 = 0;
> +-    let mut x1469: fiat_p384_u1 = 0;
> +     let (x1468, x1469) = fiat_p384_addcarryx_u32(x1467, x1405, x1448);
> +-    let mut x1470: u32 = 0;
> +-    let mut x1471: fiat_p384_u1 = 0;
> +     let (x1470, x1471) = fiat_p384_addcarryx_u32(x1469, x1407, (0x0 as u32));
> +-    let mut x1472: u32 = 0;
> +-    let mut x1473: fiat_p384_u1 = 0;
> +     let (x1472, x1473) = fiat_p384_addcarryx_u32(x1471, x1409, x1445);
> +-    let mut x1474: u32 = 0;
> +-    let mut x1475: fiat_p384_u1 = 0;
> +     let (x1474, x1475) = fiat_p384_addcarryx_u32(x1473, x1411, x1449);
> +-    let mut x1476: u32 = 0;
> +-    let mut x1477: fiat_p384_u1 = 0;
> +     let (x1476, x1477) = fiat_p384_addcarryx_u32(x1475, x1413, x1451);
> +-    let mut x1478: u32 = 0;
> +-    let mut x1479: fiat_p384_u1 = 0;
> +     let (x1478, x1479) = fiat_p384_addcarryx_u32(x1477, x1415, x1453);
> +-    let mut x1480: u32 = 0;
> +-    let mut x1481: fiat_p384_u1 = 0;
> +     let (x1480, x1481) = fiat_p384_addcarryx_u32(x1479, x1417, x1455);
> +-    let mut x1482: u32 = 0;
> +-    let mut x1483: fiat_p384_u1 = 0;
> +     let (x1482, x1483) = fiat_p384_addcarryx_u32(x1481, x1419, x1457);
> +-    let mut x1484: u32 = 0;
> +-    let mut x1485: fiat_p384_u1 = 0;
> +     let (x1484, x1485) = fiat_p384_addcarryx_u32(x1483, x1421, x1459);
> +-    let mut x1486: u32 = 0;
> +-    let mut x1487: fiat_p384_u1 = 0;
> +     let (x1486, x1487) = fiat_p384_addcarryx_u32(x1485, x1423, x1461);
> +-    let mut x1488: u32 = 0;
> +-    let mut x1489: fiat_p384_u1 = 0;
> +     let (x1488, x1489) = fiat_p384_addcarryx_u32(x1487, x1425, x1463);
> +-    let mut x1490: u32 = 0;
> +-    let mut x1491: fiat_p384_u1 = 0;
> +     let (x1490, x1491) = fiat_p384_addcarryx_u32(x1489, x1427, x1465);
> +     let x1492: u32 = ((x1491 as u32) + (x1428 as u32));
> +-    let mut x1493: u32 = 0;
> +-    let mut x1494: u32 = 0;
> +     let (x1493, x1494) = fiat_p384_mulx_u32(x11, (arg2[11]));
> +-    let mut x1495: u32 = 0;
> +-    let mut x1496: u32 = 0;
> +     let (x1495, x1496) = fiat_p384_mulx_u32(x11, (arg2[10]));
> +-    let mut x1497: u32 = 0;
> +-    let mut x1498: u32 = 0;
> +     let (x1497, x1498) = fiat_p384_mulx_u32(x11, (arg2[9]));
> +-    let mut x1499: u32 = 0;
> +-    let mut x1500: u32 = 0;
> +     let (x1499, x1500) = fiat_p384_mulx_u32(x11, (arg2[8]));
> +-    let mut x1501: u32 = 0;
> +-    let mut x1502: u32 = 0;
> +     let (x1501, x1502) = fiat_p384_mulx_u32(x11, (arg2[7]));
> +-    let mut x1503: u32 = 0;
> +-    let mut x1504: u32 = 0;
> +     let (x1503, x1504) = fiat_p384_mulx_u32(x11, (arg2[6]));
> +-    let mut x1505: u32 = 0;
> +-    let mut x1506: u32 = 0;
> +     let (x1505, x1506) = fiat_p384_mulx_u32(x11, (arg2[5]));
> +-    let mut x1507: u32 = 0;
> +-    let mut x1508: u32 = 0;
> +     let (x1507, x1508) = fiat_p384_mulx_u32(x11, (arg2[4]));
> +-    let mut x1509: u32 = 0;
> +-    let mut x1510: u32 = 0;
> +     let (x1509, x1510) = fiat_p384_mulx_u32(x11, (arg2[3]));
> +-    let mut x1511: u32 = 0;
> +-    let mut x1512: u32 = 0;
> +     let (x1511, x1512) = fiat_p384_mulx_u32(x11, (arg2[2]));
> +-    let mut x1513: u32 = 0;
> +-    let mut x1514: u32 = 0;
> +     let (x1513, x1514) = fiat_p384_mulx_u32(x11, (arg2[1]));
> +-    let mut x1515: u32 = 0;
> +-    let mut x1516: u32 = 0;
> +     let (x1515, x1516) = fiat_p384_mulx_u32(x11, (arg2[0]));
> +-    let mut x1517: u32 = 0;
> +-    let mut x1518: fiat_p384_u1 = 0;
> +     let (x1517, x1518) = fiat_p384_addcarryx_u32(0x0, x1516, x1513);
> +-    let mut x1519: u32 = 0;
> +-    let mut x1520: fiat_p384_u1 = 0;
> +     let (x1519, x1520) = fiat_p384_addcarryx_u32(x1518, x1514, x1511);
> +-    let mut x1521: u32 = 0;
> +-    let mut x1522: fiat_p384_u1 = 0;
> +     let (x1521, x1522) = fiat_p384_addcarryx_u32(x1520, x1512, x1509);
> +-    let mut x1523: u32 = 0;
> +-    let mut x1524: fiat_p384_u1 = 0;
> +     let (x1523, x1524) = fiat_p384_addcarryx_u32(x1522, x1510, x1507);
> +-    let mut x1525: u32 = 0;
> +-    let mut x1526: fiat_p384_u1 = 0;
> +     let (x1525, x1526) = fiat_p384_addcarryx_u32(x1524, x1508, x1505);
> +-    let mut x1527: u32 = 0;
> +-    let mut x1528: fiat_p384_u1 = 0;
> +     let (x1527, x1528) = fiat_p384_addcarryx_u32(x1526, x1506, x1503);
> +-    let mut x1529: u32 = 0;
> +-    let mut x1530: fiat_p384_u1 = 0;
> +     let (x1529, x1530) = fiat_p384_addcarryx_u32(x1528, x1504, x1501);
> +-    let mut x1531: u32 = 0;
> +-    let mut x1532: fiat_p384_u1 = 0;
> +     let (x1531, x1532) = fiat_p384_addcarryx_u32(x1530, x1502, x1499);
> +-    let mut x1533: u32 = 0;
> +-    let mut x1534: fiat_p384_u1 = 0;
> +     let (x1533, x1534) = fiat_p384_addcarryx_u32(x1532, x1500, x1497);
> +-    let mut x1535: u32 = 0;
> +-    let mut x1536: fiat_p384_u1 = 0;
> +     let (x1535, x1536) = fiat_p384_addcarryx_u32(x1534, x1498, x1495);
> +-    let mut x1537: u32 = 0;
> +-    let mut x1538: fiat_p384_u1 = 0;
> +     let (x1537, x1538) = fiat_p384_addcarryx_u32(x1536, x1496, x1493);
> +     let x1539: u32 = ((x1538 as u32) + x1494);
> +-    let mut x1540: u32 = 0;
> +-    let mut x1541: fiat_p384_u1 = 0;
> +     let (x1540, x1541) = fiat_p384_addcarryx_u32(0x0, x1468, x1515);
> +-    let mut x1542: u32 = 0;
> +-    let mut x1543: fiat_p384_u1 = 0;
> +     let (x1542, x1543) = fiat_p384_addcarryx_u32(x1541, x1470, x1517);
> +-    let mut x1544: u32 = 0;
> +-    let mut x1545: fiat_p384_u1 = 0;
> +     let (x1544, x1545) = fiat_p384_addcarryx_u32(x1543, x1472, x1519);
> +-    let mut x1546: u32 = 0;
> +-    let mut x1547: fiat_p384_u1 = 0;
> +     let (x1546, x1547) = fiat_p384_addcarryx_u32(x1545, x1474, x1521);
> +-    let mut x1548: u32 = 0;
> +-    let mut x1549: fiat_p384_u1 = 0;
> +     let (x1548, x1549) = fiat_p384_addcarryx_u32(x1547, x1476, x1523);
> +-    let mut x1550: u32 = 0;
> +-    let mut x1551: fiat_p384_u1 = 0;
> +     let (x1550, x1551) = fiat_p384_addcarryx_u32(x1549, x1478, x1525);
> +-    let mut x1552: u32 = 0;
> +-    let mut x1553: fiat_p384_u1 = 0;
> +     let (x1552, x1553) = fiat_p384_addcarryx_u32(x1551, x1480, x1527);
> +-    let mut x1554: u32 = 0;
> +-    let mut x1555: fiat_p384_u1 = 0;
> +     let (x1554, x1555) = fiat_p384_addcarryx_u32(x1553, x1482, x1529);
> +-    let mut x1556: u32 = 0;
> +-    let mut x1557: fiat_p384_u1 = 0;
> +     let (x1556, x1557) = fiat_p384_addcarryx_u32(x1555, x1484, x1531);
> +-    let mut x1558: u32 = 0;
> +-    let mut x1559: fiat_p384_u1 = 0;
> +     let (x1558, x1559) = fiat_p384_addcarryx_u32(x1557, x1486, x1533);
> +-    let mut x1560: u32 = 0;
> +-    let mut x1561: fiat_p384_u1 = 0;
> +     let (x1560, x1561) = fiat_p384_addcarryx_u32(x1559, x1488, x1535);
> +-    let mut x1562: u32 = 0;
> +-    let mut x1563: fiat_p384_u1 = 0;
> +     let (x1562, x1563) = fiat_p384_addcarryx_u32(x1561, x1490, x1537);
> +-    let mut x1564: u32 = 0;
> +-    let mut x1565: fiat_p384_u1 = 0;
> +     let (x1564, x1565) = fiat_p384_addcarryx_u32(x1563, x1492, x1539);
> +-    let mut x1566: u32 = 0;
> +-    let mut x1567: u32 = 0;
> +     let (x1566, x1567) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1568: u32 = 0;
> +-    let mut x1569: u32 = 0;
> +     let (x1568, x1569) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1570: u32 = 0;
> +-    let mut x1571: u32 = 0;
> +     let (x1570, x1571) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1572: u32 = 0;
> +-    let mut x1573: u32 = 0;
> +     let (x1572, x1573) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1574: u32 = 0;
> +-    let mut x1575: u32 = 0;
> +     let (x1574, x1575) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1576: u32 = 0;
> +-    let mut x1577: u32 = 0;
> +     let (x1576, x1577) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1578: u32 = 0;
> +-    let mut x1579: u32 = 0;
> +     let (x1578, x1579) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1580: u32 = 0;
> +-    let mut x1581: u32 = 0;
> +     let (x1580, x1581) = fiat_p384_mulx_u32(x1540, 0xfffffffe);
> +-    let mut x1582: u32 = 0;
> +-    let mut x1583: u32 = 0;
> +     let (x1582, x1583) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1584: u32 = 0;
> +-    let mut x1585: u32 = 0;
> +     let (x1584, x1585) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1586: u32 = 0;
> +-    let mut x1587: fiat_p384_u1 = 0;
> +     let (x1586, x1587) = fiat_p384_addcarryx_u32(0x0, x1583, x1580);
> +-    let mut x1588: u32 = 0;
> +-    let mut x1589: fiat_p384_u1 = 0;
> +     let (x1588, x1589) = fiat_p384_addcarryx_u32(x1587, x1581, x1578);
> +-    let mut x1590: u32 = 0;
> +-    let mut x1591: fiat_p384_u1 = 0;
> +     let (x1590, x1591) = fiat_p384_addcarryx_u32(x1589, x1579, x1576);
> +-    let mut x1592: u32 = 0;
> +-    let mut x1593: fiat_p384_u1 = 0;
> +     let (x1592, x1593) = fiat_p384_addcarryx_u32(x1591, x1577, x1574);
> +-    let mut x1594: u32 = 0;
> +-    let mut x1595: fiat_p384_u1 = 0;
> +     let (x1594, x1595) = fiat_p384_addcarryx_u32(x1593, x1575, x1572);
> +-    let mut x1596: u32 = 0;
> +-    let mut x1597: fiat_p384_u1 = 0;
> +     let (x1596, x1597) = fiat_p384_addcarryx_u32(x1595, x1573, x1570);
> +-    let mut x1598: u32 = 0;
> +-    let mut x1599: fiat_p384_u1 = 0;
> +     let (x1598, x1599) = fiat_p384_addcarryx_u32(x1597, x1571, x1568);
> +-    let mut x1600: u32 = 0;
> +-    let mut x1601: fiat_p384_u1 = 0;
> +     let (x1600, x1601) = fiat_p384_addcarryx_u32(x1599, x1569, x1566);
> +     let x1602: u32 = ((x1601 as u32) + x1567);
> +-    let mut x1603: u32 = 0;
> +-    let mut x1604: fiat_p384_u1 = 0;
> +     let (x1603, x1604) = fiat_p384_addcarryx_u32(0x0, x1540, x1584);
> +-    let mut x1605: u32 = 0;
> +-    let mut x1606: fiat_p384_u1 = 0;
> +     let (x1605, x1606) = fiat_p384_addcarryx_u32(x1604, x1542, x1585);
> +-    let mut x1607: u32 = 0;
> +-    let mut x1608: fiat_p384_u1 = 0;
> +     let (x1607, x1608) = fiat_p384_addcarryx_u32(x1606, x1544, (0x0 as u32));
> +-    let mut x1609: u32 = 0;
> +-    let mut x1610: fiat_p384_u1 = 0;
> +     let (x1609, x1610) = fiat_p384_addcarryx_u32(x1608, x1546, x1582);
> +-    let mut x1611: u32 = 0;
> +-    let mut x1612: fiat_p384_u1 = 0;
> +     let (x1611, x1612) = fiat_p384_addcarryx_u32(x1610, x1548, x1586);
> +-    let mut x1613: u32 = 0;
> +-    let mut x1614: fiat_p384_u1 = 0;
> +     let (x1613, x1614) = fiat_p384_addcarryx_u32(x1612, x1550, x1588);
> +-    let mut x1615: u32 = 0;
> +-    let mut x1616: fiat_p384_u1 = 0;
> +     let (x1615, x1616) = fiat_p384_addcarryx_u32(x1614, x1552, x1590);
> +-    let mut x1617: u32 = 0;
> +-    let mut x1618: fiat_p384_u1 = 0;
> +     let (x1617, x1618) = fiat_p384_addcarryx_u32(x1616, x1554, x1592);
> +-    let mut x1619: u32 = 0;
> +-    let mut x1620: fiat_p384_u1 = 0;
> +     let (x1619, x1620) = fiat_p384_addcarryx_u32(x1618, x1556, x1594);
> +-    let mut x1621: u32 = 0;
> +-    let mut x1622: fiat_p384_u1 = 0;
> +     let (x1621, x1622) = fiat_p384_addcarryx_u32(x1620, x1558, x1596);
> +-    let mut x1623: u32 = 0;
> +-    let mut x1624: fiat_p384_u1 = 0;
> +     let (x1623, x1624) = fiat_p384_addcarryx_u32(x1622, x1560, x1598);
> +-    let mut x1625: u32 = 0;
> +-    let mut x1626: fiat_p384_u1 = 0;
> +     let (x1625, x1626) = fiat_p384_addcarryx_u32(x1624, x1562, x1600);
> +-    let mut x1627: u32 = 0;
> +-    let mut x1628: fiat_p384_u1 = 0;
> +     let (x1627, x1628) = fiat_p384_addcarryx_u32(x1626, x1564, x1602);
> +     let x1629: u32 = ((x1628 as u32) + (x1565 as u32));
> +-    let mut x1630: u32 = 0;
> +-    let mut x1631: fiat_p384_u1 = 0;
> +     let (x1630, x1631) = fiat_p384_subborrowx_u32(0x0, x1605, 0xffffffff);
> +-    let mut x1632: u32 = 0;
> +-    let mut x1633: fiat_p384_u1 = 0;
> +     let (x1632, x1633) = fiat_p384_subborrowx_u32(x1631, x1607, (0x0 as u32));
> +-    let mut x1634: u32 = 0;
> +-    let mut x1635: fiat_p384_u1 = 0;
> +     let (x1634, x1635) = fiat_p384_subborrowx_u32(x1633, x1609, (0x0 as u32));
> +-    let mut x1636: u32 = 0;
> +-    let mut x1637: fiat_p384_u1 = 0;
> +     let (x1636, x1637) = fiat_p384_subborrowx_u32(x1635, x1611, 0xffffffff);
> +-    let mut x1638: u32 = 0;
> +-    let mut x1639: fiat_p384_u1 = 0;
> +     let (x1638, x1639) = fiat_p384_subborrowx_u32(x1637, x1613, 0xfffffffe);
> +-    let mut x1640: u32 = 0;
> +-    let mut x1641: fiat_p384_u1 = 0;
> +     let (x1640, x1641) = fiat_p384_subborrowx_u32(x1639, x1615, 0xffffffff);
> +-    let mut x1642: u32 = 0;
> +-    let mut x1643: fiat_p384_u1 = 0;
> +     let (x1642, x1643) = fiat_p384_subborrowx_u32(x1641, x1617, 0xffffffff);
> +-    let mut x1644: u32 = 0;
> +-    let mut x1645: fiat_p384_u1 = 0;
> +     let (x1644, x1645) = fiat_p384_subborrowx_u32(x1643, x1619, 0xffffffff);
> +-    let mut x1646: u32 = 0;
> +-    let mut x1647: fiat_p384_u1 = 0;
> +     let (x1646, x1647) = fiat_p384_subborrowx_u32(x1645, x1621, 0xffffffff);
> +-    let mut x1648: u32 = 0;
> +-    let mut x1649: fiat_p384_u1 = 0;
> +     let (x1648, x1649) = fiat_p384_subborrowx_u32(x1647, x1623, 0xffffffff);
> +-    let mut x1650: u32 = 0;
> +-    let mut x1651: fiat_p384_u1 = 0;
> +     let (x1650, x1651) = fiat_p384_subborrowx_u32(x1649, x1625, 0xffffffff);
> +-    let mut x1652: u32 = 0;
> +-    let mut x1653: fiat_p384_u1 = 0;
> +     let (x1652, x1653) = fiat_p384_subborrowx_u32(x1651, x1627, 0xffffffff);
> +-    let mut x1654: u32 = 0;
> +-    let mut x1655: fiat_p384_u1 = 0;
> +     let (x1654, x1655) = fiat_p384_subborrowx_u32(x1653, x1629, (0x0 as u32));
> +-    let mut x1656: u32 = 0;
> +     let (x1656) = fiat_p384_cmovznz_u32(x1655, x1630, x1605);
> +-    let mut x1657: u32 = 0;
> +     let (x1657) = fiat_p384_cmovznz_u32(x1655, x1632, x1607);
> +-    let mut x1658: u32 = 0;
> +     let (x1658) = fiat_p384_cmovznz_u32(x1655, x1634, x1609);
> +-    let mut x1659: u32 = 0;
> +     let (x1659) = fiat_p384_cmovznz_u32(x1655, x1636, x1611);
> +-    let mut x1660: u32 = 0;
> +     let (x1660) = fiat_p384_cmovznz_u32(x1655, x1638, x1613);
> +-    let mut x1661: u32 = 0;
> +     let (x1661) = fiat_p384_cmovznz_u32(x1655, x1640, x1615);
> +-    let mut x1662: u32 = 0;
> +     let (x1662) = fiat_p384_cmovznz_u32(x1655, x1642, x1617);
> +-    let mut x1663: u32 = 0;
> +     let (x1663) = fiat_p384_cmovznz_u32(x1655, x1644, x1619);
> +-    let mut x1664: u32 = 0;
> +     let (x1664) = fiat_p384_cmovznz_u32(x1655, x1646, x1621);
> +-    let mut x1665: u32 = 0;
> +     let (x1665) = fiat_p384_cmovznz_u32(x1655, x1648, x1623);
> +-    let mut x1666: u32 = 0;
> +     let (x1666) = fiat_p384_cmovznz_u32(x1655, x1650, x1625);
> +-    let mut x1667: u32 = 0;
> +     let (x1667) = fiat_p384_cmovznz_u32(x1655, x1652, x1627);
> +     out1[0] = x1656;
> +     out1[1] = x1657;
> +@@ -2670,2476 +1050,856 @@ pub const fn fiat_p384_square(
> +     let x10: u32 = (arg1[10]);
> +     let x11: u32 = (arg1[11]);
> +     let x12: u32 = (arg1[0]);
> +-    let mut x13: u32 = 0;
> +-    let mut x14: u32 = 0;
> +     let (x13, x14) = fiat_p384_mulx_u32(x12, (arg1[11]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: u32 = 0;
> +     let (x15, x16) = fiat_p384_mulx_u32(x12, (arg1[10]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: u32 = 0;
> +     let (x17, x18) = fiat_p384_mulx_u32(x12, (arg1[9]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: u32 = 0;
> +     let (x19, x20) = fiat_p384_mulx_u32(x12, (arg1[8]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: u32 = 0;
> +     let (x21, x22) = fiat_p384_mulx_u32(x12, (arg1[7]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: u32 = 0;
> +     let (x23, x24) = fiat_p384_mulx_u32(x12, (arg1[6]));
> +-    let mut x25: u32 = 0;
> +-    let mut x26: u32 = 0;
> +     let (x25, x26) = fiat_p384_mulx_u32(x12, (arg1[5]));
> +-    let mut x27: u32 = 0;
> +-    let mut x28: u32 = 0;
> +     let (x27, x28) = fiat_p384_mulx_u32(x12, (arg1[4]));
> +-    let mut x29: u32 = 0;
> +-    let mut x30: u32 = 0;
> +     let (x29, x30) = fiat_p384_mulx_u32(x12, (arg1[3]));
> +-    let mut x31: u32 = 0;
> +-    let mut x32: u32 = 0;
> +     let (x31, x32) = fiat_p384_mulx_u32(x12, (arg1[2]));
> +-    let mut x33: u32 = 0;
> +-    let mut x34: u32 = 0;
> +     let (x33, x34) = fiat_p384_mulx_u32(x12, (arg1[1]));
> +-    let mut x35: u32 = 0;
> +-    let mut x36: u32 = 0;
> +     let (x35, x36) = fiat_p384_mulx_u32(x12, (arg1[0]));
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_u1 = 0;
> +     let (x37, x38) = fiat_p384_addcarryx_u32(0x0, x36, x33);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_u1 = 0;
> +     let (x39, x40) = fiat_p384_addcarryx_u32(x38, x34, x31);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_u1 = 0;
> +     let (x41, x42) = fiat_p384_addcarryx_u32(x40, x32, x29);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_u1 = 0;
> +     let (x43, x44) = fiat_p384_addcarryx_u32(x42, x30, x27);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_u1 = 0;
> +     let (x45, x46) = fiat_p384_addcarryx_u32(x44, x28, x25);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_u1 = 0;
> +     let (x47, x48) = fiat_p384_addcarryx_u32(x46, x26, x23);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_u1 = 0;
> +     let (x49, x50) = fiat_p384_addcarryx_u32(x48, x24, x21);
> +-    let mut x51: u32 = 0;
> +-    let mut x52: fiat_p384_u1 = 0;
> +     let (x51, x52) = fiat_p384_addcarryx_u32(x50, x22, x19);
> +-    let mut x53: u32 = 0;
> +-    let mut x54: fiat_p384_u1 = 0;
> +     let (x53, x54) = fiat_p384_addcarryx_u32(x52, x20, x17);
> +-    let mut x55: u32 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_addcarryx_u32(x54, x18, x15);
> +-    let mut x57: u32 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_addcarryx_u32(x56, x16, x13);
> +     let x59: u32 = ((x58 as u32) + x14);
> +-    let mut x60: u32 = 0;
> +-    let mut x61: u32 = 0;
> +     let (x60, x61) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x62: u32 = 0;
> +-    let mut x63: u32 = 0;
> +     let (x62, x63) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x64: u32 = 0;
> +-    let mut x65: u32 = 0;
> +     let (x64, x65) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x66: u32 = 0;
> +-    let mut x67: u32 = 0;
> +     let (x66, x67) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x68: u32 = 0;
> +-    let mut x69: u32 = 0;
> +     let (x68, x69) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x70: u32 = 0;
> +-    let mut x71: u32 = 0;
> +     let (x70, x71) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x72: u32 = 0;
> +-    let mut x73: u32 = 0;
> +     let (x72, x73) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x74: u32 = 0;
> +-    let mut x75: u32 = 0;
> +     let (x74, x75) = fiat_p384_mulx_u32(x35, 0xfffffffe);
> +-    let mut x76: u32 = 0;
> +-    let mut x77: u32 = 0;
> +     let (x76, x77) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x78: u32 = 0;
> +-    let mut x79: u32 = 0;
> +     let (x78, x79) = fiat_p384_mulx_u32(x35, 0xffffffff);
> +-    let mut x80: u32 = 0;
> +-    let mut x81: fiat_p384_u1 = 0;
> +     let (x80, x81) = fiat_p384_addcarryx_u32(0x0, x77, x74);
> +-    let mut x82: u32 = 0;
> +-    let mut x83: fiat_p384_u1 = 0;
> +     let (x82, x83) = fiat_p384_addcarryx_u32(x81, x75, x72);
> +-    let mut x84: u32 = 0;
> +-    let mut x85: fiat_p384_u1 = 0;
> +     let (x84, x85) = fiat_p384_addcarryx_u32(x83, x73, x70);
> +-    let mut x86: u32 = 0;
> +-    let mut x87: fiat_p384_u1 = 0;
> +     let (x86, x87) = fiat_p384_addcarryx_u32(x85, x71, x68);
> +-    let mut x88: u32 = 0;
> +-    let mut x89: fiat_p384_u1 = 0;
> +     let (x88, x89) = fiat_p384_addcarryx_u32(x87, x69, x66);
> +-    let mut x90: u32 = 0;
> +-    let mut x91: fiat_p384_u1 = 0;
> +     let (x90, x91) = fiat_p384_addcarryx_u32(x89, x67, x64);
> +-    let mut x92: u32 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u32(x91, x65, x62);
> +-    let mut x94: u32 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u32(x93, x63, x60);
> +     let x96: u32 = ((x95 as u32) + x61);
> +-    let mut x97: u32 = 0;
> +-    let mut x98: fiat_p384_u1 = 0;
> +     let (x97, x98) = fiat_p384_addcarryx_u32(0x0, x35, x78);
> +-    let mut x99: u32 = 0;
> +-    let mut x100: fiat_p384_u1 = 0;
> +     let (x99, x100) = fiat_p384_addcarryx_u32(x98, x37, x79);
> +-    let mut x101: u32 = 0;
> +-    let mut x102: fiat_p384_u1 = 0;
> +     let (x101, x102) = fiat_p384_addcarryx_u32(x100, x39, (0x0 as u32));
> +-    let mut x103: u32 = 0;
> +-    let mut x104: fiat_p384_u1 = 0;
> +     let (x103, x104) = fiat_p384_addcarryx_u32(x102, x41, x76);
> +-    let mut x105: u32 = 0;
> +-    let mut x106: fiat_p384_u1 = 0;
> +     let (x105, x106) = fiat_p384_addcarryx_u32(x104, x43, x80);
> +-    let mut x107: u32 = 0;
> +-    let mut x108: fiat_p384_u1 = 0;
> +     let (x107, x108) = fiat_p384_addcarryx_u32(x106, x45, x82);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_u1 = 0;
> +     let (x109, x110) = fiat_p384_addcarryx_u32(x108, x47, x84);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_u1 = 0;
> +     let (x111, x112) = fiat_p384_addcarryx_u32(x110, x49, x86);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_u1 = 0;
> +     let (x113, x114) = fiat_p384_addcarryx_u32(x112, x51, x88);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_u1 = 0;
> +     let (x115, x116) = fiat_p384_addcarryx_u32(x114, x53, x90);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_u1 = 0;
> +     let (x117, x118) = fiat_p384_addcarryx_u32(x116, x55, x92);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_u1 = 0;
> +     let (x119, x120) = fiat_p384_addcarryx_u32(x118, x57, x94);
> +-    let mut x121: u32 = 0;
> +-    let mut x122: fiat_p384_u1 = 0;
> +     let (x121, x122) = fiat_p384_addcarryx_u32(x120, x59, x96);
> +-    let mut x123: u32 = 0;
> +-    let mut x124: u32 = 0;
> +     let (x123, x124) = fiat_p384_mulx_u32(x1, (arg1[11]));
> +-    let mut x125: u32 = 0;
> +-    let mut x126: u32 = 0;
> +     let (x125, x126) = fiat_p384_mulx_u32(x1, (arg1[10]));
> +-    let mut x127: u32 = 0;
> +-    let mut x128: u32 = 0;
> +     let (x127, x128) = fiat_p384_mulx_u32(x1, (arg1[9]));
> +-    let mut x129: u32 = 0;
> +-    let mut x130: u32 = 0;
> +     let (x129, x130) = fiat_p384_mulx_u32(x1, (arg1[8]));
> +-    let mut x131: u32 = 0;
> +-    let mut x132: u32 = 0;
> +     let (x131, x132) = fiat_p384_mulx_u32(x1, (arg1[7]));
> +-    let mut x133: u32 = 0;
> +-    let mut x134: u32 = 0;
> +     let (x133, x134) = fiat_p384_mulx_u32(x1, (arg1[6]));
> +-    let mut x135: u32 = 0;
> +-    let mut x136: u32 = 0;
> +     let (x135, x136) = fiat_p384_mulx_u32(x1, (arg1[5]));
> +-    let mut x137: u32 = 0;
> +-    let mut x138: u32 = 0;
> +     let (x137, x138) = fiat_p384_mulx_u32(x1, (arg1[4]));
> +-    let mut x139: u32 = 0;
> +-    let mut x140: u32 = 0;
> +     let (x139, x140) = fiat_p384_mulx_u32(x1, (arg1[3]));
> +-    let mut x141: u32 = 0;
> +-    let mut x142: u32 = 0;
> +     let (x141, x142) = fiat_p384_mulx_u32(x1, (arg1[2]));
> +-    let mut x143: u32 = 0;
> +-    let mut x144: u32 = 0;
> +     let (x143, x144) = fiat_p384_mulx_u32(x1, (arg1[1]));
> +-    let mut x145: u32 = 0;
> +-    let mut x146: u32 = 0;
> +     let (x145, x146) = fiat_p384_mulx_u32(x1, (arg1[0]));
> +-    let mut x147: u32 = 0;
> +-    let mut x148: fiat_p384_u1 = 0;
> +     let (x147, x148) = fiat_p384_addcarryx_u32(0x0, x146, x143);
> +-    let mut x149: u32 = 0;
> +-    let mut x150: fiat_p384_u1 = 0;
> +     let (x149, x150) = fiat_p384_addcarryx_u32(x148, x144, x141);
> +-    let mut x151: u32 = 0;
> +-    let mut x152: fiat_p384_u1 = 0;
> +     let (x151, x152) = fiat_p384_addcarryx_u32(x150, x142, x139);
> +-    let mut x153: u32 = 0;
> +-    let mut x154: fiat_p384_u1 = 0;
> +     let (x153, x154) = fiat_p384_addcarryx_u32(x152, x140, x137);
> +-    let mut x155: u32 = 0;
> +-    let mut x156: fiat_p384_u1 = 0;
> +     let (x155, x156) = fiat_p384_addcarryx_u32(x154, x138, x135);
> +-    let mut x157: u32 = 0;
> +-    let mut x158: fiat_p384_u1 = 0;
> +     let (x157, x158) = fiat_p384_addcarryx_u32(x156, x136, x133);
> +-    let mut x159: u32 = 0;
> +-    let mut x160: fiat_p384_u1 = 0;
> +     let (x159, x160) = fiat_p384_addcarryx_u32(x158, x134, x131);
> +-    let mut x161: u32 = 0;
> +-    let mut x162: fiat_p384_u1 = 0;
> +     let (x161, x162) = fiat_p384_addcarryx_u32(x160, x132, x129);
> +-    let mut x163: u32 = 0;
> +-    let mut x164: fiat_p384_u1 = 0;
> +     let (x163, x164) = fiat_p384_addcarryx_u32(x162, x130, x127);
> +-    let mut x165: u32 = 0;
> +-    let mut x166: fiat_p384_u1 = 0;
> +     let (x165, x166) = fiat_p384_addcarryx_u32(x164, x128, x125);
> +-    let mut x167: u32 = 0;
> +-    let mut x168: fiat_p384_u1 = 0;
> +     let (x167, x168) = fiat_p384_addcarryx_u32(x166, x126, x123);
> +     let x169: u32 = ((x168 as u32) + x124);
> +-    let mut x170: u32 = 0;
> +-    let mut x171: fiat_p384_u1 = 0;
> +     let (x170, x171) = fiat_p384_addcarryx_u32(0x0, x99, x145);
> +-    let mut x172: u32 = 0;
> +-    let mut x173: fiat_p384_u1 = 0;
> +     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x101, x147);
> +-    let mut x174: u32 = 0;
> +-    let mut x175: fiat_p384_u1 = 0;
> +     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x103, x149);
> +-    let mut x176: u32 = 0;
> +-    let mut x177: fiat_p384_u1 = 0;
> +     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x105, x151);
> +-    let mut x178: u32 = 0;
> +-    let mut x179: fiat_p384_u1 = 0;
> +     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x107, x153);
> +-    let mut x180: u32 = 0;
> +-    let mut x181: fiat_p384_u1 = 0;
> +     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x109, x155);
> +-    let mut x182: u32 = 0;
> +-    let mut x183: fiat_p384_u1 = 0;
> +     let (x182, x183) = fiat_p384_addcarryx_u32(x181, x111, x157);
> +-    let mut x184: u32 = 0;
> +-    let mut x185: fiat_p384_u1 = 0;
> +     let (x184, x185) = fiat_p384_addcarryx_u32(x183, x113, x159);
> +-    let mut x186: u32 = 0;
> +-    let mut x187: fiat_p384_u1 = 0;
> +     let (x186, x187) = fiat_p384_addcarryx_u32(x185, x115, x161);
> +-    let mut x188: u32 = 0;
> +-    let mut x189: fiat_p384_u1 = 0;
> +     let (x188, x189) = fiat_p384_addcarryx_u32(x187, x117, x163);
> +-    let mut x190: u32 = 0;
> +-    let mut x191: fiat_p384_u1 = 0;
> +     let (x190, x191) = fiat_p384_addcarryx_u32(x189, x119, x165);
> +-    let mut x192: u32 = 0;
> +-    let mut x193: fiat_p384_u1 = 0;
> +     let (x192, x193) = fiat_p384_addcarryx_u32(x191, x121, x167);
> +-    let mut x194: u32 = 0;
> +-    let mut x195: fiat_p384_u1 = 0;
> +     let (x194, x195) = fiat_p384_addcarryx_u32(x193, (x122 as u32), x169);
> +-    let mut x196: u32 = 0;
> +-    let mut x197: u32 = 0;
> +     let (x196, x197) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x198: u32 = 0;
> +-    let mut x199: u32 = 0;
> +     let (x198, x199) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x200: u32 = 0;
> +-    let mut x201: u32 = 0;
> +     let (x200, x201) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x202: u32 = 0;
> +-    let mut x203: u32 = 0;
> +     let (x202, x203) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x204: u32 = 0;
> +-    let mut x205: u32 = 0;
> +     let (x204, x205) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x206: u32 = 0;
> +-    let mut x207: u32 = 0;
> +     let (x206, x207) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: u32 = 0;
> +     let (x208, x209) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: u32 = 0;
> +     let (x210, x211) = fiat_p384_mulx_u32(x170, 0xfffffffe);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: u32 = 0;
> +     let (x212, x213) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: u32 = 0;
> +     let (x214, x215) = fiat_p384_mulx_u32(x170, 0xffffffff);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: fiat_p384_u1 = 0;
> +     let (x216, x217) = fiat_p384_addcarryx_u32(0x0, x213, x210);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: fiat_p384_u1 = 0;
> +     let (x218, x219) = fiat_p384_addcarryx_u32(x217, x211, x208);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: fiat_p384_u1 = 0;
> +     let (x220, x221) = fiat_p384_addcarryx_u32(x219, x209, x206);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: fiat_p384_u1 = 0;
> +     let (x222, x223) = fiat_p384_addcarryx_u32(x221, x207, x204);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: fiat_p384_u1 = 0;
> +     let (x224, x225) = fiat_p384_addcarryx_u32(x223, x205, x202);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: fiat_p384_u1 = 0;
> +     let (x226, x227) = fiat_p384_addcarryx_u32(x225, x203, x200);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: fiat_p384_u1 = 0;
> +     let (x228, x229) = fiat_p384_addcarryx_u32(x227, x201, x198);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: fiat_p384_u1 = 0;
> +     let (x230, x231) = fiat_p384_addcarryx_u32(x229, x199, x196);
> +     let x232: u32 = ((x231 as u32) + x197);
> +-    let mut x233: u32 = 0;
> +-    let mut x234: fiat_p384_u1 = 0;
> +     let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x170, x214);
> +-    let mut x235: u32 = 0;
> +-    let mut x236: fiat_p384_u1 = 0;
> +     let (x235, x236) = fiat_p384_addcarryx_u32(x234, x172, x215);
> +-    let mut x237: u32 = 0;
> +-    let mut x238: fiat_p384_u1 = 0;
> +     let (x237, x238) = fiat_p384_addcarryx_u32(x236, x174, (0x0 as u32));
> +-    let mut x239: u32 = 0;
> +-    let mut x240: fiat_p384_u1 = 0;
> +     let (x239, x240) = fiat_p384_addcarryx_u32(x238, x176, x212);
> +-    let mut x241: u32 = 0;
> +-    let mut x242: fiat_p384_u1 = 0;
> +     let (x241, x242) = fiat_p384_addcarryx_u32(x240, x178, x216);
> +-    let mut x243: u32 = 0;
> +-    let mut x244: fiat_p384_u1 = 0;
> +     let (x243, x244) = fiat_p384_addcarryx_u32(x242, x180, x218);
> +-    let mut x245: u32 = 0;
> +-    let mut x246: fiat_p384_u1 = 0;
> +     let (x245, x246) = fiat_p384_addcarryx_u32(x244, x182, x220);
> +-    let mut x247: u32 = 0;
> +-    let mut x248: fiat_p384_u1 = 0;
> +     let (x247, x248) = fiat_p384_addcarryx_u32(x246, x184, x222);
> +-    let mut x249: u32 = 0;
> +-    let mut x250: fiat_p384_u1 = 0;
> +     let (x249, x250) = fiat_p384_addcarryx_u32(x248, x186, x224);
> +-    let mut x251: u32 = 0;
> +-    let mut x252: fiat_p384_u1 = 0;
> +     let (x251, x252) = fiat_p384_addcarryx_u32(x250, x188, x226);
> +-    let mut x253: u32 = 0;
> +-    let mut x254: fiat_p384_u1 = 0;
> +     let (x253, x254) = fiat_p384_addcarryx_u32(x252, x190, x228);
> +-    let mut x255: u32 = 0;
> +-    let mut x256: fiat_p384_u1 = 0;
> +     let (x255, x256) = fiat_p384_addcarryx_u32(x254, x192, x230);
> +-    let mut x257: u32 = 0;
> +-    let mut x258: fiat_p384_u1 = 0;
> +     let (x257, x258) = fiat_p384_addcarryx_u32(x256, x194, x232);
> +     let x259: u32 = ((x258 as u32) + (x195 as u32));
> +-    let mut x260: u32 = 0;
> +-    let mut x261: u32 = 0;
> +     let (x260, x261) = fiat_p384_mulx_u32(x2, (arg1[11]));
> +-    let mut x262: u32 = 0;
> +-    let mut x263: u32 = 0;
> +     let (x262, x263) = fiat_p384_mulx_u32(x2, (arg1[10]));
> +-    let mut x264: u32 = 0;
> +-    let mut x265: u32 = 0;
> +     let (x264, x265) = fiat_p384_mulx_u32(x2, (arg1[9]));
> +-    let mut x266: u32 = 0;
> +-    let mut x267: u32 = 0;
> +     let (x266, x267) = fiat_p384_mulx_u32(x2, (arg1[8]));
> +-    let mut x268: u32 = 0;
> +-    let mut x269: u32 = 0;
> +     let (x268, x269) = fiat_p384_mulx_u32(x2, (arg1[7]));
> +-    let mut x270: u32 = 0;
> +-    let mut x271: u32 = 0;
> +     let (x270, x271) = fiat_p384_mulx_u32(x2, (arg1[6]));
> +-    let mut x272: u32 = 0;
> +-    let mut x273: u32 = 0;
> +     let (x272, x273) = fiat_p384_mulx_u32(x2, (arg1[5]));
> +-    let mut x274: u32 = 0;
> +-    let mut x275: u32 = 0;
> +     let (x274, x275) = fiat_p384_mulx_u32(x2, (arg1[4]));
> +-    let mut x276: u32 = 0;
> +-    let mut x277: u32 = 0;
> +     let (x276, x277) = fiat_p384_mulx_u32(x2, (arg1[3]));
> +-    let mut x278: u32 = 0;
> +-    let mut x279: u32 = 0;
> +     let (x278, x279) = fiat_p384_mulx_u32(x2, (arg1[2]));
> +-    let mut x280: u32 = 0;
> +-    let mut x281: u32 = 0;
> +     let (x280, x281) = fiat_p384_mulx_u32(x2, (arg1[1]));
> +-    let mut x282: u32 = 0;
> +-    let mut x283: u32 = 0;
> +     let (x282, x283) = fiat_p384_mulx_u32(x2, (arg1[0]));
> +-    let mut x284: u32 = 0;
> +-    let mut x285: fiat_p384_u1 = 0;
> +     let (x284, x285) = fiat_p384_addcarryx_u32(0x0, x283, x280);
> +-    let mut x286: u32 = 0;
> +-    let mut x287: fiat_p384_u1 = 0;
> +     let (x286, x287) = fiat_p384_addcarryx_u32(x285, x281, x278);
> +-    let mut x288: u32 = 0;
> +-    let mut x289: fiat_p384_u1 = 0;
> +     let (x288, x289) = fiat_p384_addcarryx_u32(x287, x279, x276);
> +-    let mut x290: u32 = 0;
> +-    let mut x291: fiat_p384_u1 = 0;
> +     let (x290, x291) = fiat_p384_addcarryx_u32(x289, x277, x274);
> +-    let mut x292: u32 = 0;
> +-    let mut x293: fiat_p384_u1 = 0;
> +     let (x292, x293) = fiat_p384_addcarryx_u32(x291, x275, x272);
> +-    let mut x294: u32 = 0;
> +-    let mut x295: fiat_p384_u1 = 0;
> +     let (x294, x295) = fiat_p384_addcarryx_u32(x293, x273, x270);
> +-    let mut x296: u32 = 0;
> +-    let mut x297: fiat_p384_u1 = 0;
> +     let (x296, x297) = fiat_p384_addcarryx_u32(x295, x271, x268);
> +-    let mut x298: u32 = 0;
> +-    let mut x299: fiat_p384_u1 = 0;
> +     let (x298, x299) = fiat_p384_addcarryx_u32(x297, x269, x266);
> +-    let mut x300: u32 = 0;
> +-    let mut x301: fiat_p384_u1 = 0;
> +     let (x300, x301) = fiat_p384_addcarryx_u32(x299, x267, x264);
> +-    let mut x302: u32 = 0;
> +-    let mut x303: fiat_p384_u1 = 0;
> +     let (x302, x303) = fiat_p384_addcarryx_u32(x301, x265, x262);
> +-    let mut x304: u32 = 0;
> +-    let mut x305: fiat_p384_u1 = 0;
> +     let (x304, x305) = fiat_p384_addcarryx_u32(x303, x263, x260);
> +     let x306: u32 = ((x305 as u32) + x261);
> +-    let mut x307: u32 = 0;
> +-    let mut x308: fiat_p384_u1 = 0;
> +     let (x307, x308) = fiat_p384_addcarryx_u32(0x0, x235, x282);
> +-    let mut x309: u32 = 0;
> +-    let mut x310: fiat_p384_u1 = 0;
> +     let (x309, x310) = fiat_p384_addcarryx_u32(x308, x237, x284);
> +-    let mut x311: u32 = 0;
> +-    let mut x312: fiat_p384_u1 = 0;
> +     let (x311, x312) = fiat_p384_addcarryx_u32(x310, x239, x286);
> +-    let mut x313: u32 = 0;
> +-    let mut x314: fiat_p384_u1 = 0;
> +     let (x313, x314) = fiat_p384_addcarryx_u32(x312, x241, x288);
> +-    let mut x315: u32 = 0;
> +-    let mut x316: fiat_p384_u1 = 0;
> +     let (x315, x316) = fiat_p384_addcarryx_u32(x314, x243, x290);
> +-    let mut x317: u32 = 0;
> +-    let mut x318: fiat_p384_u1 = 0;
> +     let (x317, x318) = fiat_p384_addcarryx_u32(x316, x245, x292);
> +-    let mut x319: u32 = 0;
> +-    let mut x320: fiat_p384_u1 = 0;
> +     let (x319, x320) = fiat_p384_addcarryx_u32(x318, x247, x294);
> +-    let mut x321: u32 = 0;
> +-    let mut x322: fiat_p384_u1 = 0;
> +     let (x321, x322) = fiat_p384_addcarryx_u32(x320, x249, x296);
> +-    let mut x323: u32 = 0;
> +-    let mut x324: fiat_p384_u1 = 0;
> +     let (x323, x324) = fiat_p384_addcarryx_u32(x322, x251, x298);
> +-    let mut x325: u32 = 0;
> +-    let mut x326: fiat_p384_u1 = 0;
> +     let (x325, x326) = fiat_p384_addcarryx_u32(x324, x253, x300);
> +-    let mut x327: u32 = 0;
> +-    let mut x328: fiat_p384_u1 = 0;
> +     let (x327, x328) = fiat_p384_addcarryx_u32(x326, x255, x302);
> +-    let mut x329: u32 = 0;
> +-    let mut x330: fiat_p384_u1 = 0;
> +     let (x329, x330) = fiat_p384_addcarryx_u32(x328, x257, x304);
> +-    let mut x331: u32 = 0;
> +-    let mut x332: fiat_p384_u1 = 0;
> +     let (x331, x332) = fiat_p384_addcarryx_u32(x330, x259, x306);
> +-    let mut x333: u32 = 0;
> +-    let mut x334: u32 = 0;
> +     let (x333, x334) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x335: u32 = 0;
> +-    let mut x336: u32 = 0;
> +     let (x335, x336) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x337: u32 = 0;
> +-    let mut x338: u32 = 0;
> +     let (x337, x338) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x339: u32 = 0;
> +-    let mut x340: u32 = 0;
> +     let (x339, x340) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x341: u32 = 0;
> +-    let mut x342: u32 = 0;
> +     let (x341, x342) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x343: u32 = 0;
> +-    let mut x344: u32 = 0;
> +     let (x343, x344) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x345: u32 = 0;
> +-    let mut x346: u32 = 0;
> +     let (x345, x346) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x347: u32 = 0;
> +-    let mut x348: u32 = 0;
> +     let (x347, x348) = fiat_p384_mulx_u32(x307, 0xfffffffe);
> +-    let mut x349: u32 = 0;
> +-    let mut x350: u32 = 0;
> +     let (x349, x350) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x351: u32 = 0;
> +-    let mut x352: u32 = 0;
> +     let (x351, x352) = fiat_p384_mulx_u32(x307, 0xffffffff);
> +-    let mut x353: u32 = 0;
> +-    let mut x354: fiat_p384_u1 = 0;
> +     let (x353, x354) = fiat_p384_addcarryx_u32(0x0, x350, x347);
> +-    let mut x355: u32 = 0;
> +-    let mut x356: fiat_p384_u1 = 0;
> +     let (x355, x356) = fiat_p384_addcarryx_u32(x354, x348, x345);
> +-    let mut x357: u32 = 0;
> +-    let mut x358: fiat_p384_u1 = 0;
> +     let (x357, x358) = fiat_p384_addcarryx_u32(x356, x346, x343);
> +-    let mut x359: u32 = 0;
> +-    let mut x360: fiat_p384_u1 = 0;
> +     let (x359, x360) = fiat_p384_addcarryx_u32(x358, x344, x341);
> +-    let mut x361: u32 = 0;
> +-    let mut x362: fiat_p384_u1 = 0;
> +     let (x361, x362) = fiat_p384_addcarryx_u32(x360, x342, x339);
> +-    let mut x363: u32 = 0;
> +-    let mut x364: fiat_p384_u1 = 0;
> +     let (x363, x364) = fiat_p384_addcarryx_u32(x362, x340, x337);
> +-    let mut x365: u32 = 0;
> +-    let mut x366: fiat_p384_u1 = 0;
> +     let (x365, x366) = fiat_p384_addcarryx_u32(x364, x338, x335);
> +-    let mut x367: u32 = 0;
> +-    let mut x368: fiat_p384_u1 = 0;
> +     let (x367, x368) = fiat_p384_addcarryx_u32(x366, x336, x333);
> +     let x369: u32 = ((x368 as u32) + x334);
> +-    let mut x370: u32 = 0;
> +-    let mut x371: fiat_p384_u1 = 0;
> +     let (x370, x371) = fiat_p384_addcarryx_u32(0x0, x307, x351);
> +-    let mut x372: u32 = 0;
> +-    let mut x373: fiat_p384_u1 = 0;
> +     let (x372, x373) = fiat_p384_addcarryx_u32(x371, x309, x352);
> +-    let mut x374: u32 = 0;
> +-    let mut x375: fiat_p384_u1 = 0;
> +     let (x374, x375) = fiat_p384_addcarryx_u32(x373, x311, (0x0 as u32));
> +-    let mut x376: u32 = 0;
> +-    let mut x377: fiat_p384_u1 = 0;
> +     let (x376, x377) = fiat_p384_addcarryx_u32(x375, x313, x349);
> +-    let mut x378: u32 = 0;
> +-    let mut x379: fiat_p384_u1 = 0;
> +     let (x378, x379) = fiat_p384_addcarryx_u32(x377, x315, x353);
> +-    let mut x380: u32 = 0;
> +-    let mut x381: fiat_p384_u1 = 0;
> +     let (x380, x381) = fiat_p384_addcarryx_u32(x379, x317, x355);
> +-    let mut x382: u32 = 0;
> +-    let mut x383: fiat_p384_u1 = 0;
> +     let (x382, x383) = fiat_p384_addcarryx_u32(x381, x319, x357);
> +-    let mut x384: u32 = 0;
> +-    let mut x385: fiat_p384_u1 = 0;
> +     let (x384, x385) = fiat_p384_addcarryx_u32(x383, x321, x359);
> +-    let mut x386: u32 = 0;
> +-    let mut x387: fiat_p384_u1 = 0;
> +     let (x386, x387) = fiat_p384_addcarryx_u32(x385, x323, x361);
> +-    let mut x388: u32 = 0;
> +-    let mut x389: fiat_p384_u1 = 0;
> +     let (x388, x389) = fiat_p384_addcarryx_u32(x387, x325, x363);
> +-    let mut x390: u32 = 0;
> +-    let mut x391: fiat_p384_u1 = 0;
> +     let (x390, x391) = fiat_p384_addcarryx_u32(x389, x327, x365);
> +-    let mut x392: u32 = 0;
> +-    let mut x393: fiat_p384_u1 = 0;
> +     let (x392, x393) = fiat_p384_addcarryx_u32(x391, x329, x367);
> +-    let mut x394: u32 = 0;
> +-    let mut x395: fiat_p384_u1 = 0;
> +     let (x394, x395) = fiat_p384_addcarryx_u32(x393, x331, x369);
> +     let x396: u32 = ((x395 as u32) + (x332 as u32));
> +-    let mut x397: u32 = 0;
> +-    let mut x398: u32 = 0;
> +     let (x397, x398) = fiat_p384_mulx_u32(x3, (arg1[11]));
> +-    let mut x399: u32 = 0;
> +-    let mut x400: u32 = 0;
> +     let (x399, x400) = fiat_p384_mulx_u32(x3, (arg1[10]));
> +-    let mut x401: u32 = 0;
> +-    let mut x402: u32 = 0;
> +     let (x401, x402) = fiat_p384_mulx_u32(x3, (arg1[9]));
> +-    let mut x403: u32 = 0;
> +-    let mut x404: u32 = 0;
> +     let (x403, x404) = fiat_p384_mulx_u32(x3, (arg1[8]));
> +-    let mut x405: u32 = 0;
> +-    let mut x406: u32 = 0;
> +     let (x405, x406) = fiat_p384_mulx_u32(x3, (arg1[7]));
> +-    let mut x407: u32 = 0;
> +-    let mut x408: u32 = 0;
> +     let (x407, x408) = fiat_p384_mulx_u32(x3, (arg1[6]));
> +-    let mut x409: u32 = 0;
> +-    let mut x410: u32 = 0;
> +     let (x409, x410) = fiat_p384_mulx_u32(x3, (arg1[5]));
> +-    let mut x411: u32 = 0;
> +-    let mut x412: u32 = 0;
> +     let (x411, x412) = fiat_p384_mulx_u32(x3, (arg1[4]));
> +-    let mut x413: u32 = 0;
> +-    let mut x414: u32 = 0;
> +     let (x413, x414) = fiat_p384_mulx_u32(x3, (arg1[3]));
> +-    let mut x415: u32 = 0;
> +-    let mut x416: u32 = 0;
> +     let (x415, x416) = fiat_p384_mulx_u32(x3, (arg1[2]));
> +-    let mut x417: u32 = 0;
> +-    let mut x418: u32 = 0;
> +     let (x417, x418) = fiat_p384_mulx_u32(x3, (arg1[1]));
> +-    let mut x419: u32 = 0;
> +-    let mut x420: u32 = 0;
> +     let (x419, x420) = fiat_p384_mulx_u32(x3, (arg1[0]));
> +-    let mut x421: u32 = 0;
> +-    let mut x422: fiat_p384_u1 = 0;
> +     let (x421, x422) = fiat_p384_addcarryx_u32(0x0, x420, x417);
> +-    let mut x423: u32 = 0;
> +-    let mut x424: fiat_p384_u1 = 0;
> +     let (x423, x424) = fiat_p384_addcarryx_u32(x422, x418, x415);
> +-    let mut x425: u32 = 0;
> +-    let mut x426: fiat_p384_u1 = 0;
> +     let (x425, x426) = fiat_p384_addcarryx_u32(x424, x416, x413);
> +-    let mut x427: u32 = 0;
> +-    let mut x428: fiat_p384_u1 = 0;
> +     let (x427, x428) = fiat_p384_addcarryx_u32(x426, x414, x411);
> +-    let mut x429: u32 = 0;
> +-    let mut x430: fiat_p384_u1 = 0;
> +     let (x429, x430) = fiat_p384_addcarryx_u32(x428, x412, x409);
> +-    let mut x431: u32 = 0;
> +-    let mut x432: fiat_p384_u1 = 0;
> +     let (x431, x432) = fiat_p384_addcarryx_u32(x430, x410, x407);
> +-    let mut x433: u32 = 0;
> +-    let mut x434: fiat_p384_u1 = 0;
> +     let (x433, x434) = fiat_p384_addcarryx_u32(x432, x408, x405);
> +-    let mut x435: u32 = 0;
> +-    let mut x436: fiat_p384_u1 = 0;
> +     let (x435, x436) = fiat_p384_addcarryx_u32(x434, x406, x403);
> +-    let mut x437: u32 = 0;
> +-    let mut x438: fiat_p384_u1 = 0;
> +     let (x437, x438) = fiat_p384_addcarryx_u32(x436, x404, x401);
> +-    let mut x439: u32 = 0;
> +-    let mut x440: fiat_p384_u1 = 0;
> +     let (x439, x440) = fiat_p384_addcarryx_u32(x438, x402, x399);
> +-    let mut x441: u32 = 0;
> +-    let mut x442: fiat_p384_u1 = 0;
> +     let (x441, x442) = fiat_p384_addcarryx_u32(x440, x400, x397);
> +     let x443: u32 = ((x442 as u32) + x398);
> +-    let mut x444: u32 = 0;
> +-    let mut x445: fiat_p384_u1 = 0;
> +     let (x444, x445) = fiat_p384_addcarryx_u32(0x0, x372, x419);
> +-    let mut x446: u32 = 0;
> +-    let mut x447: fiat_p384_u1 = 0;
> +     let (x446, x447) = fiat_p384_addcarryx_u32(x445, x374, x421);
> +-    let mut x448: u32 = 0;
> +-    let mut x449: fiat_p384_u1 = 0;
> +     let (x448, x449) = fiat_p384_addcarryx_u32(x447, x376, x423);
> +-    let mut x450: u32 = 0;
> +-    let mut x451: fiat_p384_u1 = 0;
> +     let (x450, x451) = fiat_p384_addcarryx_u32(x449, x378, x425);
> +-    let mut x452: u32 = 0;
> +-    let mut x453: fiat_p384_u1 = 0;
> +     let (x452, x453) = fiat_p384_addcarryx_u32(x451, x380, x427);
> +-    let mut x454: u32 = 0;
> +-    let mut x455: fiat_p384_u1 = 0;
> +     let (x454, x455) = fiat_p384_addcarryx_u32(x453, x382, x429);
> +-    let mut x456: u32 = 0;
> +-    let mut x457: fiat_p384_u1 = 0;
> +     let (x456, x457) = fiat_p384_addcarryx_u32(x455, x384, x431);
> +-    let mut x458: u32 = 0;
> +-    let mut x459: fiat_p384_u1 = 0;
> +     let (x458, x459) = fiat_p384_addcarryx_u32(x457, x386, x433);
> +-    let mut x460: u32 = 0;
> +-    let mut x461: fiat_p384_u1 = 0;
> +     let (x460, x461) = fiat_p384_addcarryx_u32(x459, x388, x435);
> +-    let mut x462: u32 = 0;
> +-    let mut x463: fiat_p384_u1 = 0;
> +     let (x462, x463) = fiat_p384_addcarryx_u32(x461, x390, x437);
> +-    let mut x464: u32 = 0;
> +-    let mut x465: fiat_p384_u1 = 0;
> +     let (x464, x465) = fiat_p384_addcarryx_u32(x463, x392, x439);
> +-    let mut x466: u32 = 0;
> +-    let mut x467: fiat_p384_u1 = 0;
> +     let (x466, x467) = fiat_p384_addcarryx_u32(x465, x394, x441);
> +-    let mut x468: u32 = 0;
> +-    let mut x469: fiat_p384_u1 = 0;
> +     let (x468, x469) = fiat_p384_addcarryx_u32(x467, x396, x443);
> +-    let mut x470: u32 = 0;
> +-    let mut x471: u32 = 0;
> +     let (x470, x471) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x472: u32 = 0;
> +-    let mut x473: u32 = 0;
> +     let (x472, x473) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x474: u32 = 0;
> +-    let mut x475: u32 = 0;
> +     let (x474, x475) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x476: u32 = 0;
> +-    let mut x477: u32 = 0;
> +     let (x476, x477) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x478: u32 = 0;
> +-    let mut x479: u32 = 0;
> +     let (x478, x479) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x480: u32 = 0;
> +-    let mut x481: u32 = 0;
> +     let (x480, x481) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x482: u32 = 0;
> +-    let mut x483: u32 = 0;
> +     let (x482, x483) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x484: u32 = 0;
> +-    let mut x485: u32 = 0;
> +     let (x484, x485) = fiat_p384_mulx_u32(x444, 0xfffffffe);
> +-    let mut x486: u32 = 0;
> +-    let mut x487: u32 = 0;
> +     let (x486, x487) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x488: u32 = 0;
> +-    let mut x489: u32 = 0;
> +     let (x488, x489) = fiat_p384_mulx_u32(x444, 0xffffffff);
> +-    let mut x490: u32 = 0;
> +-    let mut x491: fiat_p384_u1 = 0;
> +     let (x490, x491) = fiat_p384_addcarryx_u32(0x0, x487, x484);
> +-    let mut x492: u32 = 0;
> +-    let mut x493: fiat_p384_u1 = 0;
> +     let (x492, x493) = fiat_p384_addcarryx_u32(x491, x485, x482);
> +-    let mut x494: u32 = 0;
> +-    let mut x495: fiat_p384_u1 = 0;
> +     let (x494, x495) = fiat_p384_addcarryx_u32(x493, x483, x480);
> +-    let mut x496: u32 = 0;
> +-    let mut x497: fiat_p384_u1 = 0;
> +     let (x496, x497) = fiat_p384_addcarryx_u32(x495, x481, x478);
> +-    let mut x498: u32 = 0;
> +-    let mut x499: fiat_p384_u1 = 0;
> +     let (x498, x499) = fiat_p384_addcarryx_u32(x497, x479, x476);
> +-    let mut x500: u32 = 0;
> +-    let mut x501: fiat_p384_u1 = 0;
> +     let (x500, x501) = fiat_p384_addcarryx_u32(x499, x477, x474);
> +-    let mut x502: u32 = 0;
> +-    let mut x503: fiat_p384_u1 = 0;
> +     let (x502, x503) = fiat_p384_addcarryx_u32(x501, x475, x472);
> +-    let mut x504: u32 = 0;
> +-    let mut x505: fiat_p384_u1 = 0;
> +     let (x504, x505) = fiat_p384_addcarryx_u32(x503, x473, x470);
> +     let x506: u32 = ((x505 as u32) + x471);
> +-    let mut x507: u32 = 0;
> +-    let mut x508: fiat_p384_u1 = 0;
> +     let (x507, x508) = fiat_p384_addcarryx_u32(0x0, x444, x488);
> +-    let mut x509: u32 = 0;
> +-    let mut x510: fiat_p384_u1 = 0;
> +     let (x509, x510) = fiat_p384_addcarryx_u32(x508, x446, x489);
> +-    let mut x511: u32 = 0;
> +-    let mut x512: fiat_p384_u1 = 0;
> +     let (x511, x512) = fiat_p384_addcarryx_u32(x510, x448, (0x0 as u32));
> +-    let mut x513: u32 = 0;
> +-    let mut x514: fiat_p384_u1 = 0;
> +     let (x513, x514) = fiat_p384_addcarryx_u32(x512, x450, x486);
> +-    let mut x515: u32 = 0;
> +-    let mut x516: fiat_p384_u1 = 0;
> +     let (x515, x516) = fiat_p384_addcarryx_u32(x514, x452, x490);
> +-    let mut x517: u32 = 0;
> +-    let mut x518: fiat_p384_u1 = 0;
> +     let (x517, x518) = fiat_p384_addcarryx_u32(x516, x454, x492);
> +-    let mut x519: u32 = 0;
> +-    let mut x520: fiat_p384_u1 = 0;
> +     let (x519, x520) = fiat_p384_addcarryx_u32(x518, x456, x494);
> +-    let mut x521: u32 = 0;
> +-    let mut x522: fiat_p384_u1 = 0;
> +     let (x521, x522) = fiat_p384_addcarryx_u32(x520, x458, x496);
> +-    let mut x523: u32 = 0;
> +-    let mut x524: fiat_p384_u1 = 0;
> +     let (x523, x524) = fiat_p384_addcarryx_u32(x522, x460, x498);
> +-    let mut x525: u32 = 0;
> +-    let mut x526: fiat_p384_u1 = 0;
> +     let (x525, x526) = fiat_p384_addcarryx_u32(x524, x462, x500);
> +-    let mut x527: u32 = 0;
> +-    let mut x528: fiat_p384_u1 = 0;
> +     let (x527, x528) = fiat_p384_addcarryx_u32(x526, x464, x502);
> +-    let mut x529: u32 = 0;
> +-    let mut x530: fiat_p384_u1 = 0;
> +     let (x529, x530) = fiat_p384_addcarryx_u32(x528, x466, x504);
> +-    let mut x531: u32 = 0;
> +-    let mut x532: fiat_p384_u1 = 0;
> +     let (x531, x532) = fiat_p384_addcarryx_u32(x530, x468, x506);
> +     let x533: u32 = ((x532 as u32) + (x469 as u32));
> +-    let mut x534: u32 = 0;
> +-    let mut x535: u32 = 0;
> +     let (x534, x535) = fiat_p384_mulx_u32(x4, (arg1[11]));
> +-    let mut x536: u32 = 0;
> +-    let mut x537: u32 = 0;
> +     let (x536, x537) = fiat_p384_mulx_u32(x4, (arg1[10]));
> +-    let mut x538: u32 = 0;
> +-    let mut x539: u32 = 0;
> +     let (x538, x539) = fiat_p384_mulx_u32(x4, (arg1[9]));
> +-    let mut x540: u32 = 0;
> +-    let mut x541: u32 = 0;
> +     let (x540, x541) = fiat_p384_mulx_u32(x4, (arg1[8]));
> +-    let mut x542: u32 = 0;
> +-    let mut x543: u32 = 0;
> +     let (x542, x543) = fiat_p384_mulx_u32(x4, (arg1[7]));
> +-    let mut x544: u32 = 0;
> +-    let mut x545: u32 = 0;
> +     let (x544, x545) = fiat_p384_mulx_u32(x4, (arg1[6]));
> +-    let mut x546: u32 = 0;
> +-    let mut x547: u32 = 0;
> +     let (x546, x547) = fiat_p384_mulx_u32(x4, (arg1[5]));
> +-    let mut x548: u32 = 0;
> +-    let mut x549: u32 = 0;
> +     let (x548, x549) = fiat_p384_mulx_u32(x4, (arg1[4]));
> +-    let mut x550: u32 = 0;
> +-    let mut x551: u32 = 0;
> +     let (x550, x551) = fiat_p384_mulx_u32(x4, (arg1[3]));
> +-    let mut x552: u32 = 0;
> +-    let mut x553: u32 = 0;
> +     let (x552, x553) = fiat_p384_mulx_u32(x4, (arg1[2]));
> +-    let mut x554: u32 = 0;
> +-    let mut x555: u32 = 0;
> +     let (x554, x555) = fiat_p384_mulx_u32(x4, (arg1[1]));
> +-    let mut x556: u32 = 0;
> +-    let mut x557: u32 = 0;
> +     let (x556, x557) = fiat_p384_mulx_u32(x4, (arg1[0]));
> +-    let mut x558: u32 = 0;
> +-    let mut x559: fiat_p384_u1 = 0;
> +     let (x558, x559) = fiat_p384_addcarryx_u32(0x0, x557, x554);
> +-    let mut x560: u32 = 0;
> +-    let mut x561: fiat_p384_u1 = 0;
> +     let (x560, x561) = fiat_p384_addcarryx_u32(x559, x555, x552);
> +-    let mut x562: u32 = 0;
> +-    let mut x563: fiat_p384_u1 = 0;
> +     let (x562, x563) = fiat_p384_addcarryx_u32(x561, x553, x550);
> +-    let mut x564: u32 = 0;
> +-    let mut x565: fiat_p384_u1 = 0;
> +     let (x564, x565) = fiat_p384_addcarryx_u32(x563, x551, x548);
> +-    let mut x566: u32 = 0;
> +-    let mut x567: fiat_p384_u1 = 0;
> +     let (x566, x567) = fiat_p384_addcarryx_u32(x565, x549, x546);
> +-    let mut x568: u32 = 0;
> +-    let mut x569: fiat_p384_u1 = 0;
> +     let (x568, x569) = fiat_p384_addcarryx_u32(x567, x547, x544);
> +-    let mut x570: u32 = 0;
> +-    let mut x571: fiat_p384_u1 = 0;
> +     let (x570, x571) = fiat_p384_addcarryx_u32(x569, x545, x542);
> +-    let mut x572: u32 = 0;
> +-    let mut x573: fiat_p384_u1 = 0;
> +     let (x572, x573) = fiat_p384_addcarryx_u32(x571, x543, x540);
> +-    let mut x574: u32 = 0;
> +-    let mut x575: fiat_p384_u1 = 0;
> +     let (x574, x575) = fiat_p384_addcarryx_u32(x573, x541, x538);
> +-    let mut x576: u32 = 0;
> +-    let mut x577: fiat_p384_u1 = 0;
> +     let (x576, x577) = fiat_p384_addcarryx_u32(x575, x539, x536);
> +-    let mut x578: u32 = 0;
> +-    let mut x579: fiat_p384_u1 = 0;
> +     let (x578, x579) = fiat_p384_addcarryx_u32(x577, x537, x534);
> +     let x580: u32 = ((x579 as u32) + x535);
> +-    let mut x581: u32 = 0;
> +-    let mut x582: fiat_p384_u1 = 0;
> +     let (x581, x582) = fiat_p384_addcarryx_u32(0x0, x509, x556);
> +-    let mut x583: u32 = 0;
> +-    let mut x584: fiat_p384_u1 = 0;
> +     let (x583, x584) = fiat_p384_addcarryx_u32(x582, x511, x558);
> +-    let mut x585: u32 = 0;
> +-    let mut x586: fiat_p384_u1 = 0;
> +     let (x585, x586) = fiat_p384_addcarryx_u32(x584, x513, x560);
> +-    let mut x587: u32 = 0;
> +-    let mut x588: fiat_p384_u1 = 0;
> +     let (x587, x588) = fiat_p384_addcarryx_u32(x586, x515, x562);
> +-    let mut x589: u32 = 0;
> +-    let mut x590: fiat_p384_u1 = 0;
> +     let (x589, x590) = fiat_p384_addcarryx_u32(x588, x517, x564);
> +-    let mut x591: u32 = 0;
> +-    let mut x592: fiat_p384_u1 = 0;
> +     let (x591, x592) = fiat_p384_addcarryx_u32(x590, x519, x566);
> +-    let mut x593: u32 = 0;
> +-    let mut x594: fiat_p384_u1 = 0;
> +     let (x593, x594) = fiat_p384_addcarryx_u32(x592, x521, x568);
> +-    let mut x595: u32 = 0;
> +-    let mut x596: fiat_p384_u1 = 0;
> +     let (x595, x596) = fiat_p384_addcarryx_u32(x594, x523, x570);
> +-    let mut x597: u32 = 0;
> +-    let mut x598: fiat_p384_u1 = 0;
> +     let (x597, x598) = fiat_p384_addcarryx_u32(x596, x525, x572);
> +-    let mut x599: u32 = 0;
> +-    let mut x600: fiat_p384_u1 = 0;
> +     let (x599, x600) = fiat_p384_addcarryx_u32(x598, x527, x574);
> +-    let mut x601: u32 = 0;
> +-    let mut x602: fiat_p384_u1 = 0;
> +     let (x601, x602) = fiat_p384_addcarryx_u32(x600, x529, x576);
> +-    let mut x603: u32 = 0;
> +-    let mut x604: fiat_p384_u1 = 0;
> +     let (x603, x604) = fiat_p384_addcarryx_u32(x602, x531, x578);
> +-    let mut x605: u32 = 0;
> +-    let mut x606: fiat_p384_u1 = 0;
> +     let (x605, x606) = fiat_p384_addcarryx_u32(x604, x533, x580);
> +-    let mut x607: u32 = 0;
> +-    let mut x608: u32 = 0;
> +     let (x607, x608) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x609: u32 = 0;
> +-    let mut x610: u32 = 0;
> +     let (x609, x610) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x611: u32 = 0;
> +-    let mut x612: u32 = 0;
> +     let (x611, x612) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x613: u32 = 0;
> +-    let mut x614: u32 = 0;
> +     let (x613, x614) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x615: u32 = 0;
> +-    let mut x616: u32 = 0;
> +     let (x615, x616) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x617: u32 = 0;
> +-    let mut x618: u32 = 0;
> +     let (x617, x618) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x619: u32 = 0;
> +-    let mut x620: u32 = 0;
> +     let (x619, x620) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x621: u32 = 0;
> +-    let mut x622: u32 = 0;
> +     let (x621, x622) = fiat_p384_mulx_u32(x581, 0xfffffffe);
> +-    let mut x623: u32 = 0;
> +-    let mut x624: u32 = 0;
> +     let (x623, x624) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x625: u32 = 0;
> +-    let mut x626: u32 = 0;
> +     let (x625, x626) = fiat_p384_mulx_u32(x581, 0xffffffff);
> +-    let mut x627: u32 = 0;
> +-    let mut x628: fiat_p384_u1 = 0;
> +     let (x627, x628) = fiat_p384_addcarryx_u32(0x0, x624, x621);
> +-    let mut x629: u32 = 0;
> +-    let mut x630: fiat_p384_u1 = 0;
> +     let (x629, x630) = fiat_p384_addcarryx_u32(x628, x622, x619);
> +-    let mut x631: u32 = 0;
> +-    let mut x632: fiat_p384_u1 = 0;
> +     let (x631, x632) = fiat_p384_addcarryx_u32(x630, x620, x617);
> +-    let mut x633: u32 = 0;
> +-    let mut x634: fiat_p384_u1 = 0;
> +     let (x633, x634) = fiat_p384_addcarryx_u32(x632, x618, x615);
> +-    let mut x635: u32 = 0;
> +-    let mut x636: fiat_p384_u1 = 0;
> +     let (x635, x636) = fiat_p384_addcarryx_u32(x634, x616, x613);
> +-    let mut x637: u32 = 0;
> +-    let mut x638: fiat_p384_u1 = 0;
> +     let (x637, x638) = fiat_p384_addcarryx_u32(x636, x614, x611);
> +-    let mut x639: u32 = 0;
> +-    let mut x640: fiat_p384_u1 = 0;
> +     let (x639, x640) = fiat_p384_addcarryx_u32(x638, x612, x609);
> +-    let mut x641: u32 = 0;
> +-    let mut x642: fiat_p384_u1 = 0;
> +     let (x641, x642) = fiat_p384_addcarryx_u32(x640, x610, x607);
> +     let x643: u32 = ((x642 as u32) + x608);
> +-    let mut x644: u32 = 0;
> +-    let mut x645: fiat_p384_u1 = 0;
> +     let (x644, x645) = fiat_p384_addcarryx_u32(0x0, x581, x625);
> +-    let mut x646: u32 = 0;
> +-    let mut x647: fiat_p384_u1 = 0;
> +     let (x646, x647) = fiat_p384_addcarryx_u32(x645, x583, x626);
> +-    let mut x648: u32 = 0;
> +-    let mut x649: fiat_p384_u1 = 0;
> +     let (x648, x649) = fiat_p384_addcarryx_u32(x647, x585, (0x0 as u32));
> +-    let mut x650: u32 = 0;
> +-    let mut x651: fiat_p384_u1 = 0;
> +     let (x650, x651) = fiat_p384_addcarryx_u32(x649, x587, x623);
> +-    let mut x652: u32 = 0;
> +-    let mut x653: fiat_p384_u1 = 0;
> +     let (x652, x653) = fiat_p384_addcarryx_u32(x651, x589, x627);
> +-    let mut x654: u32 = 0;
> +-    let mut x655: fiat_p384_u1 = 0;
> +     let (x654, x655) = fiat_p384_addcarryx_u32(x653, x591, x629);
> +-    let mut x656: u32 = 0;
> +-    let mut x657: fiat_p384_u1 = 0;
> +     let (x656, x657) = fiat_p384_addcarryx_u32(x655, x593, x631);
> +-    let mut x658: u32 = 0;
> +-    let mut x659: fiat_p384_u1 = 0;
> +     let (x658, x659) = fiat_p384_addcarryx_u32(x657, x595, x633);
> +-    let mut x660: u32 = 0;
> +-    let mut x661: fiat_p384_u1 = 0;
> +     let (x660, x661) = fiat_p384_addcarryx_u32(x659, x597, x635);
> +-    let mut x662: u32 = 0;
> +-    let mut x663: fiat_p384_u1 = 0;
> +     let (x662, x663) = fiat_p384_addcarryx_u32(x661, x599, x637);
> +-    let mut x664: u32 = 0;
> +-    let mut x665: fiat_p384_u1 = 0;
> +     let (x664, x665) = fiat_p384_addcarryx_u32(x663, x601, x639);
> +-    let mut x666: u32 = 0;
> +-    let mut x667: fiat_p384_u1 = 0;
> +     let (x666, x667) = fiat_p384_addcarryx_u32(x665, x603, x641);
> +-    let mut x668: u32 = 0;
> +-    let mut x669: fiat_p384_u1 = 0;
> +     let (x668, x669) = fiat_p384_addcarryx_u32(x667, x605, x643);
> +     let x670: u32 = ((x669 as u32) + (x606 as u32));
> +-    let mut x671: u32 = 0;
> +-    let mut x672: u32 = 0;
> +     let (x671, x672) = fiat_p384_mulx_u32(x5, (arg1[11]));
> +-    let mut x673: u32 = 0;
> +-    let mut x674: u32 = 0;
> +     let (x673, x674) = fiat_p384_mulx_u32(x5, (arg1[10]));
> +-    let mut x675: u32 = 0;
> +-    let mut x676: u32 = 0;
> +     let (x675, x676) = fiat_p384_mulx_u32(x5, (arg1[9]));
> +-    let mut x677: u32 = 0;
> +-    let mut x678: u32 = 0;
> +     let (x677, x678) = fiat_p384_mulx_u32(x5, (arg1[8]));
> +-    let mut x679: u32 = 0;
> +-    let mut x680: u32 = 0;
> +     let (x679, x680) = fiat_p384_mulx_u32(x5, (arg1[7]));
> +-    let mut x681: u32 = 0;
> +-    let mut x682: u32 = 0;
> +     let (x681, x682) = fiat_p384_mulx_u32(x5, (arg1[6]));
> +-    let mut x683: u32 = 0;
> +-    let mut x684: u32 = 0;
> +     let (x683, x684) = fiat_p384_mulx_u32(x5, (arg1[5]));
> +-    let mut x685: u32 = 0;
> +-    let mut x686: u32 = 0;
> +     let (x685, x686) = fiat_p384_mulx_u32(x5, (arg1[4]));
> +-    let mut x687: u32 = 0;
> +-    let mut x688: u32 = 0;
> +     let (x687, x688) = fiat_p384_mulx_u32(x5, (arg1[3]));
> +-    let mut x689: u32 = 0;
> +-    let mut x690: u32 = 0;
> +     let (x689, x690) = fiat_p384_mulx_u32(x5, (arg1[2]));
> +-    let mut x691: u32 = 0;
> +-    let mut x692: u32 = 0;
> +     let (x691, x692) = fiat_p384_mulx_u32(x5, (arg1[1]));
> +-    let mut x693: u32 = 0;
> +-    let mut x694: u32 = 0;
> +     let (x693, x694) = fiat_p384_mulx_u32(x5, (arg1[0]));
> +-    let mut x695: u32 = 0;
> +-    let mut x696: fiat_p384_u1 = 0;
> +     let (x695, x696) = fiat_p384_addcarryx_u32(0x0, x694, x691);
> +-    let mut x697: u32 = 0;
> +-    let mut x698: fiat_p384_u1 = 0;
> +     let (x697, x698) = fiat_p384_addcarryx_u32(x696, x692, x689);
> +-    let mut x699: u32 = 0;
> +-    let mut x700: fiat_p384_u1 = 0;
> +     let (x699, x700) = fiat_p384_addcarryx_u32(x698, x690, x687);
> +-    let mut x701: u32 = 0;
> +-    let mut x702: fiat_p384_u1 = 0;
> +     let (x701, x702) = fiat_p384_addcarryx_u32(x700, x688, x685);
> +-    let mut x703: u32 = 0;
> +-    let mut x704: fiat_p384_u1 = 0;
> +     let (x703, x704) = fiat_p384_addcarryx_u32(x702, x686, x683);
> +-    let mut x705: u32 = 0;
> +-    let mut x706: fiat_p384_u1 = 0;
> +     let (x705, x706) = fiat_p384_addcarryx_u32(x704, x684, x681);
> +-    let mut x707: u32 = 0;
> +-    let mut x708: fiat_p384_u1 = 0;
> +     let (x707, x708) = fiat_p384_addcarryx_u32(x706, x682, x679);
> +-    let mut x709: u32 = 0;
> +-    let mut x710: fiat_p384_u1 = 0;
> +     let (x709, x710) = fiat_p384_addcarryx_u32(x708, x680, x677);
> +-    let mut x711: u32 = 0;
> +-    let mut x712: fiat_p384_u1 = 0;
> +     let (x711, x712) = fiat_p384_addcarryx_u32(x710, x678, x675);
> +-    let mut x713: u32 = 0;
> +-    let mut x714: fiat_p384_u1 = 0;
> +     let (x713, x714) = fiat_p384_addcarryx_u32(x712, x676, x673);
> +-    let mut x715: u32 = 0;
> +-    let mut x716: fiat_p384_u1 = 0;
> +     let (x715, x716) = fiat_p384_addcarryx_u32(x714, x674, x671);
> +     let x717: u32 = ((x716 as u32) + x672);
> +-    let mut x718: u32 = 0;
> +-    let mut x719: fiat_p384_u1 = 0;
> +     let (x718, x719) = fiat_p384_addcarryx_u32(0x0, x646, x693);
> +-    let mut x720: u32 = 0;
> +-    let mut x721: fiat_p384_u1 = 0;
> +     let (x720, x721) = fiat_p384_addcarryx_u32(x719, x648, x695);
> +-    let mut x722: u32 = 0;
> +-    let mut x723: fiat_p384_u1 = 0;
> +     let (x722, x723) = fiat_p384_addcarryx_u32(x721, x650, x697);
> +-    let mut x724: u32 = 0;
> +-    let mut x725: fiat_p384_u1 = 0;
> +     let (x724, x725) = fiat_p384_addcarryx_u32(x723, x652, x699);
> +-    let mut x726: u32 = 0;
> +-    let mut x727: fiat_p384_u1 = 0;
> +     let (x726, x727) = fiat_p384_addcarryx_u32(x725, x654, x701);
> +-    let mut x728: u32 = 0;
> +-    let mut x729: fiat_p384_u1 = 0;
> +     let (x728, x729) = fiat_p384_addcarryx_u32(x727, x656, x703);
> +-    let mut x730: u32 = 0;
> +-    let mut x731: fiat_p384_u1 = 0;
> +     let (x730, x731) = fiat_p384_addcarryx_u32(x729, x658, x705);
> +-    let mut x732: u32 = 0;
> +-    let mut x733: fiat_p384_u1 = 0;
> +     let (x732, x733) = fiat_p384_addcarryx_u32(x731, x660, x707);
> +-    let mut x734: u32 = 0;
> +-    let mut x735: fiat_p384_u1 = 0;
> +     let (x734, x735) = fiat_p384_addcarryx_u32(x733, x662, x709);
> +-    let mut x736: u32 = 0;
> +-    let mut x737: fiat_p384_u1 = 0;
> +     let (x736, x737) = fiat_p384_addcarryx_u32(x735, x664, x711);
> +-    let mut x738: u32 = 0;
> +-    let mut x739: fiat_p384_u1 = 0;
> +     let (x738, x739) = fiat_p384_addcarryx_u32(x737, x666, x713);
> +-    let mut x740: u32 = 0;
> +-    let mut x741: fiat_p384_u1 = 0;
> +     let (x740, x741) = fiat_p384_addcarryx_u32(x739, x668, x715);
> +-    let mut x742: u32 = 0;
> +-    let mut x743: fiat_p384_u1 = 0;
> +     let (x742, x743) = fiat_p384_addcarryx_u32(x741, x670, x717);
> +-    let mut x744: u32 = 0;
> +-    let mut x745: u32 = 0;
> +     let (x744, x745) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x746: u32 = 0;
> +-    let mut x747: u32 = 0;
> +     let (x746, x747) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x748: u32 = 0;
> +-    let mut x749: u32 = 0;
> +     let (x748, x749) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x750: u32 = 0;
> +-    let mut x751: u32 = 0;
> +     let (x750, x751) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x752: u32 = 0;
> +-    let mut x753: u32 = 0;
> +     let (x752, x753) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x754: u32 = 0;
> +-    let mut x755: u32 = 0;
> +     let (x754, x755) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x756: u32 = 0;
> +-    let mut x757: u32 = 0;
> +     let (x756, x757) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x758: u32 = 0;
> +-    let mut x759: u32 = 0;
> +     let (x758, x759) = fiat_p384_mulx_u32(x718, 0xfffffffe);
> +-    let mut x760: u32 = 0;
> +-    let mut x761: u32 = 0;
> +     let (x760, x761) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x762: u32 = 0;
> +-    let mut x763: u32 = 0;
> +     let (x762, x763) = fiat_p384_mulx_u32(x718, 0xffffffff);
> +-    let mut x764: u32 = 0;
> +-    let mut x765: fiat_p384_u1 = 0;
> +     let (x764, x765) = fiat_p384_addcarryx_u32(0x0, x761, x758);
> +-    let mut x766: u32 = 0;
> +-    let mut x767: fiat_p384_u1 = 0;
> +     let (x766, x767) = fiat_p384_addcarryx_u32(x765, x759, x756);
> +-    let mut x768: u32 = 0;
> +-    let mut x769: fiat_p384_u1 = 0;
> +     let (x768, x769) = fiat_p384_addcarryx_u32(x767, x757, x754);
> +-    let mut x770: u32 = 0;
> +-    let mut x771: fiat_p384_u1 = 0;
> +     let (x770, x771) = fiat_p384_addcarryx_u32(x769, x755, x752);
> +-    let mut x772: u32 = 0;
> +-    let mut x773: fiat_p384_u1 = 0;
> +     let (x772, x773) = fiat_p384_addcarryx_u32(x771, x753, x750);
> +-    let mut x774: u32 = 0;
> +-    let mut x775: fiat_p384_u1 = 0;
> +     let (x774, x775) = fiat_p384_addcarryx_u32(x773, x751, x748);
> +-    let mut x776: u32 = 0;
> +-    let mut x777: fiat_p384_u1 = 0;
> +     let (x776, x777) = fiat_p384_addcarryx_u32(x775, x749, x746);
> +-    let mut x778: u32 = 0;
> +-    let mut x779: fiat_p384_u1 = 0;
> +     let (x778, x779) = fiat_p384_addcarryx_u32(x777, x747, x744);
> +     let x780: u32 = ((x779 as u32) + x745);
> +-    let mut x781: u32 = 0;
> +-    let mut x782: fiat_p384_u1 = 0;
> +     let (x781, x782) = fiat_p384_addcarryx_u32(0x0, x718, x762);
> +-    let mut x783: u32 = 0;
> +-    let mut x784: fiat_p384_u1 = 0;
> +     let (x783, x784) = fiat_p384_addcarryx_u32(x782, x720, x763);
> +-    let mut x785: u32 = 0;
> +-    let mut x786: fiat_p384_u1 = 0;
> +     let (x785, x786) = fiat_p384_addcarryx_u32(x784, x722, (0x0 as u32));
> +-    let mut x787: u32 = 0;
> +-    let mut x788: fiat_p384_u1 = 0;
> +     let (x787, x788) = fiat_p384_addcarryx_u32(x786, x724, x760);
> +-    let mut x789: u32 = 0;
> +-    let mut x790: fiat_p384_u1 = 0;
> +     let (x789, x790) = fiat_p384_addcarryx_u32(x788, x726, x764);
> +-    let mut x791: u32 = 0;
> +-    let mut x792: fiat_p384_u1 = 0;
> +     let (x791, x792) = fiat_p384_addcarryx_u32(x790, x728, x766);
> +-    let mut x793: u32 = 0;
> +-    let mut x794: fiat_p384_u1 = 0;
> +     let (x793, x794) = fiat_p384_addcarryx_u32(x792, x730, x768);
> +-    let mut x795: u32 = 0;
> +-    let mut x796: fiat_p384_u1 = 0;
> +     let (x795, x796) = fiat_p384_addcarryx_u32(x794, x732, x770);
> +-    let mut x797: u32 = 0;
> +-    let mut x798: fiat_p384_u1 = 0;
> +     let (x797, x798) = fiat_p384_addcarryx_u32(x796, x734, x772);
> +-    let mut x799: u32 = 0;
> +-    let mut x800: fiat_p384_u1 = 0;
> +     let (x799, x800) = fiat_p384_addcarryx_u32(x798, x736, x774);
> +-    let mut x801: u32 = 0;
> +-    let mut x802: fiat_p384_u1 = 0;
> +     let (x801, x802) = fiat_p384_addcarryx_u32(x800, x738, x776);
> +-    let mut x803: u32 = 0;
> +-    let mut x804: fiat_p384_u1 = 0;
> +     let (x803, x804) = fiat_p384_addcarryx_u32(x802, x740, x778);
> +-    let mut x805: u32 = 0;
> +-    let mut x806: fiat_p384_u1 = 0;
> +     let (x805, x806) = fiat_p384_addcarryx_u32(x804, x742, x780);
> +     let x807: u32 = ((x806 as u32) + (x743 as u32));
> +-    let mut x808: u32 = 0;
> +-    let mut x809: u32 = 0;
> +     let (x808, x809) = fiat_p384_mulx_u32(x6, (arg1[11]));
> +-    let mut x810: u32 = 0;
> +-    let mut x811: u32 = 0;
> +     let (x810, x811) = fiat_p384_mulx_u32(x6, (arg1[10]));
> +-    let mut x812: u32 = 0;
> +-    let mut x813: u32 = 0;
> +     let (x812, x813) = fiat_p384_mulx_u32(x6, (arg1[9]));
> +-    let mut x814: u32 = 0;
> +-    let mut x815: u32 = 0;
> +     let (x814, x815) = fiat_p384_mulx_u32(x6, (arg1[8]));
> +-    let mut x816: u32 = 0;
> +-    let mut x817: u32 = 0;
> +     let (x816, x817) = fiat_p384_mulx_u32(x6, (arg1[7]));
> +-    let mut x818: u32 = 0;
> +-    let mut x819: u32 = 0;
> +     let (x818, x819) = fiat_p384_mulx_u32(x6, (arg1[6]));
> +-    let mut x820: u32 = 0;
> +-    let mut x821: u32 = 0;
> +     let (x820, x821) = fiat_p384_mulx_u32(x6, (arg1[5]));
> +-    let mut x822: u32 = 0;
> +-    let mut x823: u32 = 0;
> +     let (x822, x823) = fiat_p384_mulx_u32(x6, (arg1[4]));
> +-    let mut x824: u32 = 0;
> +-    let mut x825: u32 = 0;
> +     let (x824, x825) = fiat_p384_mulx_u32(x6, (arg1[3]));
> +-    let mut x826: u32 = 0;
> +-    let mut x827: u32 = 0;
> +     let (x826, x827) = fiat_p384_mulx_u32(x6, (arg1[2]));
> +-    let mut x828: u32 = 0;
> +-    let mut x829: u32 = 0;
> +     let (x828, x829) = fiat_p384_mulx_u32(x6, (arg1[1]));
> +-    let mut x830: u32 = 0;
> +-    let mut x831: u32 = 0;
> +     let (x830, x831) = fiat_p384_mulx_u32(x6, (arg1[0]));
> +-    let mut x832: u32 = 0;
> +-    let mut x833: fiat_p384_u1 = 0;
> +     let (x832, x833) = fiat_p384_addcarryx_u32(0x0, x831, x828);
> +-    let mut x834: u32 = 0;
> +-    let mut x835: fiat_p384_u1 = 0;
> +     let (x834, x835) = fiat_p384_addcarryx_u32(x833, x829, x826);
> +-    let mut x836: u32 = 0;
> +-    let mut x837: fiat_p384_u1 = 0;
> +     let (x836, x837) = fiat_p384_addcarryx_u32(x835, x827, x824);
> +-    let mut x838: u32 = 0;
> +-    let mut x839: fiat_p384_u1 = 0;
> +     let (x838, x839) = fiat_p384_addcarryx_u32(x837, x825, x822);
> +-    let mut x840: u32 = 0;
> +-    let mut x841: fiat_p384_u1 = 0;
> +     let (x840, x841) = fiat_p384_addcarryx_u32(x839, x823, x820);
> +-    let mut x842: u32 = 0;
> +-    let mut x843: fiat_p384_u1 = 0;
> +     let (x842, x843) = fiat_p384_addcarryx_u32(x841, x821, x818);
> +-    let mut x844: u32 = 0;
> +-    let mut x845: fiat_p384_u1 = 0;
> +     let (x844, x845) = fiat_p384_addcarryx_u32(x843, x819, x816);
> +-    let mut x846: u32 = 0;
> +-    let mut x847: fiat_p384_u1 = 0;
> +     let (x846, x847) = fiat_p384_addcarryx_u32(x845, x817, x814);
> +-    let mut x848: u32 = 0;
> +-    let mut x849: fiat_p384_u1 = 0;
> +     let (x848, x849) = fiat_p384_addcarryx_u32(x847, x815, x812);
> +-    let mut x850: u32 = 0;
> +-    let mut x851: fiat_p384_u1 = 0;
> +     let (x850, x851) = fiat_p384_addcarryx_u32(x849, x813, x810);
> +-    let mut x852: u32 = 0;
> +-    let mut x853: fiat_p384_u1 = 0;
> +     let (x852, x853) = fiat_p384_addcarryx_u32(x851, x811, x808);
> +     let x854: u32 = ((x853 as u32) + x809);
> +-    let mut x855: u32 = 0;
> +-    let mut x856: fiat_p384_u1 = 0;
> +     let (x855, x856) = fiat_p384_addcarryx_u32(0x0, x783, x830);
> +-    let mut x857: u32 = 0;
> +-    let mut x858: fiat_p384_u1 = 0;
> +     let (x857, x858) = fiat_p384_addcarryx_u32(x856, x785, x832);
> +-    let mut x859: u32 = 0;
> +-    let mut x860: fiat_p384_u1 = 0;
> +     let (x859, x860) = fiat_p384_addcarryx_u32(x858, x787, x834);
> +-    let mut x861: u32 = 0;
> +-    let mut x862: fiat_p384_u1 = 0;
> +     let (x861, x862) = fiat_p384_addcarryx_u32(x860, x789, x836);
> +-    let mut x863: u32 = 0;
> +-    let mut x864: fiat_p384_u1 = 0;
> +     let (x863, x864) = fiat_p384_addcarryx_u32(x862, x791, x838);
> +-    let mut x865: u32 = 0;
> +-    let mut x866: fiat_p384_u1 = 0;
> +     let (x865, x866) = fiat_p384_addcarryx_u32(x864, x793, x840);
> +-    let mut x867: u32 = 0;
> +-    let mut x868: fiat_p384_u1 = 0;
> +     let (x867, x868) = fiat_p384_addcarryx_u32(x866, x795, x842);
> +-    let mut x869: u32 = 0;
> +-    let mut x870: fiat_p384_u1 = 0;
> +     let (x869, x870) = fiat_p384_addcarryx_u32(x868, x797, x844);
> +-    let mut x871: u32 = 0;
> +-    let mut x872: fiat_p384_u1 = 0;
> +     let (x871, x872) = fiat_p384_addcarryx_u32(x870, x799, x846);
> +-    let mut x873: u32 = 0;
> +-    let mut x874: fiat_p384_u1 = 0;
> +     let (x873, x874) = fiat_p384_addcarryx_u32(x872, x801, x848);
> +-    let mut x875: u32 = 0;
> +-    let mut x876: fiat_p384_u1 = 0;
> +     let (x875, x876) = fiat_p384_addcarryx_u32(x874, x803, x850);
> +-    let mut x877: u32 = 0;
> +-    let mut x878: fiat_p384_u1 = 0;
> +     let (x877, x878) = fiat_p384_addcarryx_u32(x876, x805, x852);
> +-    let mut x879: u32 = 0;
> +-    let mut x880: fiat_p384_u1 = 0;
> +     let (x879, x880) = fiat_p384_addcarryx_u32(x878, x807, x854);
> +-    let mut x881: u32 = 0;
> +-    let mut x882: u32 = 0;
> +     let (x881, x882) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x883: u32 = 0;
> +-    let mut x884: u32 = 0;
> +     let (x883, x884) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x885: u32 = 0;
> +-    let mut x886: u32 = 0;
> +     let (x885, x886) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x887: u32 = 0;
> +-    let mut x888: u32 = 0;
> +     let (x887, x888) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x889: u32 = 0;
> +-    let mut x890: u32 = 0;
> +     let (x889, x890) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x891: u32 = 0;
> +-    let mut x892: u32 = 0;
> +     let (x891, x892) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x893: u32 = 0;
> +-    let mut x894: u32 = 0;
> +     let (x893, x894) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x895: u32 = 0;
> +-    let mut x896: u32 = 0;
> +     let (x895, x896) = fiat_p384_mulx_u32(x855, 0xfffffffe);
> +-    let mut x897: u32 = 0;
> +-    let mut x898: u32 = 0;
> +     let (x897, x898) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x899: u32 = 0;
> +-    let mut x900: u32 = 0;
> +     let (x899, x900) = fiat_p384_mulx_u32(x855, 0xffffffff);
> +-    let mut x901: u32 = 0;
> +-    let mut x902: fiat_p384_u1 = 0;
> +     let (x901, x902) = fiat_p384_addcarryx_u32(0x0, x898, x895);
> +-    let mut x903: u32 = 0;
> +-    let mut x904: fiat_p384_u1 = 0;
> +     let (x903, x904) = fiat_p384_addcarryx_u32(x902, x896, x893);
> +-    let mut x905: u32 = 0;
> +-    let mut x906: fiat_p384_u1 = 0;
> +     let (x905, x906) = fiat_p384_addcarryx_u32(x904, x894, x891);
> +-    let mut x907: u32 = 0;
> +-    let mut x908: fiat_p384_u1 = 0;
> +     let (x907, x908) = fiat_p384_addcarryx_u32(x906, x892, x889);
> +-    let mut x909: u32 = 0;
> +-    let mut x910: fiat_p384_u1 = 0;
> +     let (x909, x910) = fiat_p384_addcarryx_u32(x908, x890, x887);
> +-    let mut x911: u32 = 0;
> +-    let mut x912: fiat_p384_u1 = 0;
> +     let (x911, x912) = fiat_p384_addcarryx_u32(x910, x888, x885);
> +-    let mut x913: u32 = 0;
> +-    let mut x914: fiat_p384_u1 = 0;
> +     let (x913, x914) = fiat_p384_addcarryx_u32(x912, x886, x883);
> +-    let mut x915: u32 = 0;
> +-    let mut x916: fiat_p384_u1 = 0;
> +     let (x915, x916) = fiat_p384_addcarryx_u32(x914, x884, x881);
> +     let x917: u32 = ((x916 as u32) + x882);
> +-    let mut x918: u32 = 0;
> +-    let mut x919: fiat_p384_u1 = 0;
> +     let (x918, x919) = fiat_p384_addcarryx_u32(0x0, x855, x899);
> +-    let mut x920: u32 = 0;
> +-    let mut x921: fiat_p384_u1 = 0;
> +     let (x920, x921) = fiat_p384_addcarryx_u32(x919, x857, x900);
> +-    let mut x922: u32 = 0;
> +-    let mut x923: fiat_p384_u1 = 0;
> +     let (x922, x923) = fiat_p384_addcarryx_u32(x921, x859, (0x0 as u32));
> +-    let mut x924: u32 = 0;
> +-    let mut x925: fiat_p384_u1 = 0;
> +     let (x924, x925) = fiat_p384_addcarryx_u32(x923, x861, x897);
> +-    let mut x926: u32 = 0;
> +-    let mut x927: fiat_p384_u1 = 0;
> +     let (x926, x927) = fiat_p384_addcarryx_u32(x925, x863, x901);
> +-    let mut x928: u32 = 0;
> +-    let mut x929: fiat_p384_u1 = 0;
> +     let (x928, x929) = fiat_p384_addcarryx_u32(x927, x865, x903);
> +-    let mut x930: u32 = 0;
> +-    let mut x931: fiat_p384_u1 = 0;
> +     let (x930, x931) = fiat_p384_addcarryx_u32(x929, x867, x905);
> +-    let mut x932: u32 = 0;
> +-    let mut x933: fiat_p384_u1 = 0;
> +     let (x932, x933) = fiat_p384_addcarryx_u32(x931, x869, x907);
> +-    let mut x934: u32 = 0;
> +-    let mut x935: fiat_p384_u1 = 0;
> +     let (x934, x935) = fiat_p384_addcarryx_u32(x933, x871, x909);
> +-    let mut x936: u32 = 0;
> +-    let mut x937: fiat_p384_u1 = 0;
> +     let (x936, x937) = fiat_p384_addcarryx_u32(x935, x873, x911);
> +-    let mut x938: u32 = 0;
> +-    let mut x939: fiat_p384_u1 = 0;
> +     let (x938, x939) = fiat_p384_addcarryx_u32(x937, x875, x913);
> +-    let mut x940: u32 = 0;
> +-    let mut x941: fiat_p384_u1 = 0;
> +     let (x940, x941) = fiat_p384_addcarryx_u32(x939, x877, x915);
> +-    let mut x942: u32 = 0;
> +-    let mut x943: fiat_p384_u1 = 0;
> +     let (x942, x943) = fiat_p384_addcarryx_u32(x941, x879, x917);
> +     let x944: u32 = ((x943 as u32) + (x880 as u32));
> +-    let mut x945: u32 = 0;
> +-    let mut x946: u32 = 0;
> +     let (x945, x946) = fiat_p384_mulx_u32(x7, (arg1[11]));
> +-    let mut x947: u32 = 0;
> +-    let mut x948: u32 = 0;
> +     let (x947, x948) = fiat_p384_mulx_u32(x7, (arg1[10]));
> +-    let mut x949: u32 = 0;
> +-    let mut x950: u32 = 0;
> +     let (x949, x950) = fiat_p384_mulx_u32(x7, (arg1[9]));
> +-    let mut x951: u32 = 0;
> +-    let mut x952: u32 = 0;
> +     let (x951, x952) = fiat_p384_mulx_u32(x7, (arg1[8]));
> +-    let mut x953: u32 = 0;
> +-    let mut x954: u32 = 0;
> +     let (x953, x954) = fiat_p384_mulx_u32(x7, (arg1[7]));
> +-    let mut x955: u32 = 0;
> +-    let mut x956: u32 = 0;
> +     let (x955, x956) = fiat_p384_mulx_u32(x7, (arg1[6]));
> +-    let mut x957: u32 = 0;
> +-    let mut x958: u32 = 0;
> +     let (x957, x958) = fiat_p384_mulx_u32(x7, (arg1[5]));
> +-    let mut x959: u32 = 0;
> +-    let mut x960: u32 = 0;
> +     let (x959, x960) = fiat_p384_mulx_u32(x7, (arg1[4]));
> +-    let mut x961: u32 = 0;
> +-    let mut x962: u32 = 0;
> +     let (x961, x962) = fiat_p384_mulx_u32(x7, (arg1[3]));
> +-    let mut x963: u32 = 0;
> +-    let mut x964: u32 = 0;
> +     let (x963, x964) = fiat_p384_mulx_u32(x7, (arg1[2]));
> +-    let mut x965: u32 = 0;
> +-    let mut x966: u32 = 0;
> +     let (x965, x966) = fiat_p384_mulx_u32(x7, (arg1[1]));
> +-    let mut x967: u32 = 0;
> +-    let mut x968: u32 = 0;
> +     let (x967, x968) = fiat_p384_mulx_u32(x7, (arg1[0]));
> +-    let mut x969: u32 = 0;
> +-    let mut x970: fiat_p384_u1 = 0;
> +     let (x969, x970) = fiat_p384_addcarryx_u32(0x0, x968, x965);
> +-    let mut x971: u32 = 0;
> +-    let mut x972: fiat_p384_u1 = 0;
> +     let (x971, x972) = fiat_p384_addcarryx_u32(x970, x966, x963);
> +-    let mut x973: u32 = 0;
> +-    let mut x974: fiat_p384_u1 = 0;
> +     let (x973, x974) = fiat_p384_addcarryx_u32(x972, x964, x961);
> +-    let mut x975: u32 = 0;
> +-    let mut x976: fiat_p384_u1 = 0;
> +     let (x975, x976) = fiat_p384_addcarryx_u32(x974, x962, x959);
> +-    let mut x977: u32 = 0;
> +-    let mut x978: fiat_p384_u1 = 0;
> +     let (x977, x978) = fiat_p384_addcarryx_u32(x976, x960, x957);
> +-    let mut x979: u32 = 0;
> +-    let mut x980: fiat_p384_u1 = 0;
> +     let (x979, x980) = fiat_p384_addcarryx_u32(x978, x958, x955);
> +-    let mut x981: u32 = 0;
> +-    let mut x982: fiat_p384_u1 = 0;
> +     let (x981, x982) = fiat_p384_addcarryx_u32(x980, x956, x953);
> +-    let mut x983: u32 = 0;
> +-    let mut x984: fiat_p384_u1 = 0;
> +     let (x983, x984) = fiat_p384_addcarryx_u32(x982, x954, x951);
> +-    let mut x985: u32 = 0;
> +-    let mut x986: fiat_p384_u1 = 0;
> +     let (x985, x986) = fiat_p384_addcarryx_u32(x984, x952, x949);
> +-    let mut x987: u32 = 0;
> +-    let mut x988: fiat_p384_u1 = 0;
> +     let (x987, x988) = fiat_p384_addcarryx_u32(x986, x950, x947);
> +-    let mut x989: u32 = 0;
> +-    let mut x990: fiat_p384_u1 = 0;
> +     let (x989, x990) = fiat_p384_addcarryx_u32(x988, x948, x945);
> +     let x991: u32 = ((x990 as u32) + x946);
> +-    let mut x992: u32 = 0;
> +-    let mut x993: fiat_p384_u1 = 0;
> +     let (x992, x993) = fiat_p384_addcarryx_u32(0x0, x920, x967);
> +-    let mut x994: u32 = 0;
> +-    let mut x995: fiat_p384_u1 = 0;
> +     let (x994, x995) = fiat_p384_addcarryx_u32(x993, x922, x969);
> +-    let mut x996: u32 = 0;
> +-    let mut x997: fiat_p384_u1 = 0;
> +     let (x996, x997) = fiat_p384_addcarryx_u32(x995, x924, x971);
> +-    let mut x998: u32 = 0;
> +-    let mut x999: fiat_p384_u1 = 0;
> +     let (x998, x999) = fiat_p384_addcarryx_u32(x997, x926, x973);
> +-    let mut x1000: u32 = 0;
> +-    let mut x1001: fiat_p384_u1 = 0;
> +     let (x1000, x1001) = fiat_p384_addcarryx_u32(x999, x928, x975);
> +-    let mut x1002: u32 = 0;
> +-    let mut x1003: fiat_p384_u1 = 0;
> +     let (x1002, x1003) = fiat_p384_addcarryx_u32(x1001, x930, x977);
> +-    let mut x1004: u32 = 0;
> +-    let mut x1005: fiat_p384_u1 = 0;
> +     let (x1004, x1005) = fiat_p384_addcarryx_u32(x1003, x932, x979);
> +-    let mut x1006: u32 = 0;
> +-    let mut x1007: fiat_p384_u1 = 0;
> +     let (x1006, x1007) = fiat_p384_addcarryx_u32(x1005, x934, x981);
> +-    let mut x1008: u32 = 0;
> +-    let mut x1009: fiat_p384_u1 = 0;
> +     let (x1008, x1009) = fiat_p384_addcarryx_u32(x1007, x936, x983);
> +-    let mut x1010: u32 = 0;
> +-    let mut x1011: fiat_p384_u1 = 0;
> +     let (x1010, x1011) = fiat_p384_addcarryx_u32(x1009, x938, x985);
> +-    let mut x1012: u32 = 0;
> +-    let mut x1013: fiat_p384_u1 = 0;
> +     let (x1012, x1013) = fiat_p384_addcarryx_u32(x1011, x940, x987);
> +-    let mut x1014: u32 = 0;
> +-    let mut x1015: fiat_p384_u1 = 0;
> +     let (x1014, x1015) = fiat_p384_addcarryx_u32(x1013, x942, x989);
> +-    let mut x1016: u32 = 0;
> +-    let mut x1017: fiat_p384_u1 = 0;
> +     let (x1016, x1017) = fiat_p384_addcarryx_u32(x1015, x944, x991);
> +-    let mut x1018: u32 = 0;
> +-    let mut x1019: u32 = 0;
> +     let (x1018, x1019) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1020: u32 = 0;
> +-    let mut x1021: u32 = 0;
> +     let (x1020, x1021) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1022: u32 = 0;
> +-    let mut x1023: u32 = 0;
> +     let (x1022, x1023) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1024: u32 = 0;
> +-    let mut x1025: u32 = 0;
> +     let (x1024, x1025) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1026: u32 = 0;
> +-    let mut x1027: u32 = 0;
> +     let (x1026, x1027) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1028: u32 = 0;
> +-    let mut x1029: u32 = 0;
> +     let (x1028, x1029) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1030: u32 = 0;
> +-    let mut x1031: u32 = 0;
> +     let (x1030, x1031) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1032: u32 = 0;
> +-    let mut x1033: u32 = 0;
> +     let (x1032, x1033) = fiat_p384_mulx_u32(x992, 0xfffffffe);
> +-    let mut x1034: u32 = 0;
> +-    let mut x1035: u32 = 0;
> +     let (x1034, x1035) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1036: u32 = 0;
> +-    let mut x1037: u32 = 0;
> +     let (x1036, x1037) = fiat_p384_mulx_u32(x992, 0xffffffff);
> +-    let mut x1038: u32 = 0;
> +-    let mut x1039: fiat_p384_u1 = 0;
> +     let (x1038, x1039) = fiat_p384_addcarryx_u32(0x0, x1035, x1032);
> +-    let mut x1040: u32 = 0;
> +-    let mut x1041: fiat_p384_u1 = 0;
> +     let (x1040, x1041) = fiat_p384_addcarryx_u32(x1039, x1033, x1030);
> +-    let mut x1042: u32 = 0;
> +-    let mut x1043: fiat_p384_u1 = 0;
> +     let (x1042, x1043) = fiat_p384_addcarryx_u32(x1041, x1031, x1028);
> +-    let mut x1044: u32 = 0;
> +-    let mut x1045: fiat_p384_u1 = 0;
> +     let (x1044, x1045) = fiat_p384_addcarryx_u32(x1043, x1029, x1026);
> +-    let mut x1046: u32 = 0;
> +-    let mut x1047: fiat_p384_u1 = 0;
> +     let (x1046, x1047) = fiat_p384_addcarryx_u32(x1045, x1027, x1024);
> +-    let mut x1048: u32 = 0;
> +-    let mut x1049: fiat_p384_u1 = 0;
> +     let (x1048, x1049) = fiat_p384_addcarryx_u32(x1047, x1025, x1022);
> +-    let mut x1050: u32 = 0;
> +-    let mut x1051: fiat_p384_u1 = 0;
> +     let (x1050, x1051) = fiat_p384_addcarryx_u32(x1049, x1023, x1020);
> +-    let mut x1052: u32 = 0;
> +-    let mut x1053: fiat_p384_u1 = 0;
> +     let (x1052, x1053) = fiat_p384_addcarryx_u32(x1051, x1021, x1018);
> +     let x1054: u32 = ((x1053 as u32) + x1019);
> +-    let mut x1055: u32 = 0;
> +-    let mut x1056: fiat_p384_u1 = 0;
> +     let (x1055, x1056) = fiat_p384_addcarryx_u32(0x0, x992, x1036);
> +-    let mut x1057: u32 = 0;
> +-    let mut x1058: fiat_p384_u1 = 0;
> +     let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x994, x1037);
> +-    let mut x1059: u32 = 0;
> +-    let mut x1060: fiat_p384_u1 = 0;
> +     let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x996, (0x0 as u32));
> +-    let mut x1061: u32 = 0;
> +-    let mut x1062: fiat_p384_u1 = 0;
> +     let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x998, x1034);
> +-    let mut x1063: u32 = 0;
> +-    let mut x1064: fiat_p384_u1 = 0;
> +     let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1000, x1038);
> +-    let mut x1065: u32 = 0;
> +-    let mut x1066: fiat_p384_u1 = 0;
> +     let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1002, x1040);
> +-    let mut x1067: u32 = 0;
> +-    let mut x1068: fiat_p384_u1 = 0;
> +     let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1004, x1042);
> +-    let mut x1069: u32 = 0;
> +-    let mut x1070: fiat_p384_u1 = 0;
> +     let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1006, x1044);
> +-    let mut x1071: u32 = 0;
> +-    let mut x1072: fiat_p384_u1 = 0;
> +     let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1008, x1046);
> +-    let mut x1073: u32 = 0;
> +-    let mut x1074: fiat_p384_u1 = 0;
> +     let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1010, x1048);
> +-    let mut x1075: u32 = 0;
> +-    let mut x1076: fiat_p384_u1 = 0;
> +     let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1012, x1050);
> +-    let mut x1077: u32 = 0;
> +-    let mut x1078: fiat_p384_u1 = 0;
> +     let (x1077, x1078) = fiat_p384_addcarryx_u32(x1076, x1014, x1052);
> +-    let mut x1079: u32 = 0;
> +-    let mut x1080: fiat_p384_u1 = 0;
> +     let (x1079, x1080) = fiat_p384_addcarryx_u32(x1078, x1016, x1054);
> +     let x1081: u32 = ((x1080 as u32) + (x1017 as u32));
> +-    let mut x1082: u32 = 0;
> +-    let mut x1083: u32 = 0;
> +     let (x1082, x1083) = fiat_p384_mulx_u32(x8, (arg1[11]));
> +-    let mut x1084: u32 = 0;
> +-    let mut x1085: u32 = 0;
> +     let (x1084, x1085) = fiat_p384_mulx_u32(x8, (arg1[10]));
> +-    let mut x1086: u32 = 0;
> +-    let mut x1087: u32 = 0;
> +     let (x1086, x1087) = fiat_p384_mulx_u32(x8, (arg1[9]));
> +-    let mut x1088: u32 = 0;
> +-    let mut x1089: u32 = 0;
> +     let (x1088, x1089) = fiat_p384_mulx_u32(x8, (arg1[8]));
> +-    let mut x1090: u32 = 0;
> +-    let mut x1091: u32 = 0;
> +     let (x1090, x1091) = fiat_p384_mulx_u32(x8, (arg1[7]));
> +-    let mut x1092: u32 = 0;
> +-    let mut x1093: u32 = 0;
> +     let (x1092, x1093) = fiat_p384_mulx_u32(x8, (arg1[6]));
> +-    let mut x1094: u32 = 0;
> +-    let mut x1095: u32 = 0;
> +     let (x1094, x1095) = fiat_p384_mulx_u32(x8, (arg1[5]));
> +-    let mut x1096: u32 = 0;
> +-    let mut x1097: u32 = 0;
> +     let (x1096, x1097) = fiat_p384_mulx_u32(x8, (arg1[4]));
> +-    let mut x1098: u32 = 0;
> +-    let mut x1099: u32 = 0;
> +     let (x1098, x1099) = fiat_p384_mulx_u32(x8, (arg1[3]));
> +-    let mut x1100: u32 = 0;
> +-    let mut x1101: u32 = 0;
> +     let (x1100, x1101) = fiat_p384_mulx_u32(x8, (arg1[2]));
> +-    let mut x1102: u32 = 0;
> +-    let mut x1103: u32 = 0;
> +     let (x1102, x1103) = fiat_p384_mulx_u32(x8, (arg1[1]));
> +-    let mut x1104: u32 = 0;
> +-    let mut x1105: u32 = 0;
> +     let (x1104, x1105) = fiat_p384_mulx_u32(x8, (arg1[0]));
> +-    let mut x1106: u32 = 0;
> +-    let mut x1107: fiat_p384_u1 = 0;
> +     let (x1106, x1107) = fiat_p384_addcarryx_u32(0x0, x1105, x1102);
> +-    let mut x1108: u32 = 0;
> +-    let mut x1109: fiat_p384_u1 = 0;
> +     let (x1108, x1109) = fiat_p384_addcarryx_u32(x1107, x1103, x1100);
> +-    let mut x1110: u32 = 0;
> +-    let mut x1111: fiat_p384_u1 = 0;
> +     let (x1110, x1111) = fiat_p384_addcarryx_u32(x1109, x1101, x1098);
> +-    let mut x1112: u32 = 0;
> +-    let mut x1113: fiat_p384_u1 = 0;
> +     let (x1112, x1113) = fiat_p384_addcarryx_u32(x1111, x1099, x1096);
> +-    let mut x1114: u32 = 0;
> +-    let mut x1115: fiat_p384_u1 = 0;
> +     let (x1114, x1115) = fiat_p384_addcarryx_u32(x1113, x1097, x1094);
> +-    let mut x1116: u32 = 0;
> +-    let mut x1117: fiat_p384_u1 = 0;
> +     let (x1116, x1117) = fiat_p384_addcarryx_u32(x1115, x1095, x1092);
> +-    let mut x1118: u32 = 0;
> +-    let mut x1119: fiat_p384_u1 = 0;
> +     let (x1118, x1119) = fiat_p384_addcarryx_u32(x1117, x1093, x1090);
> +-    let mut x1120: u32 = 0;
> +-    let mut x1121: fiat_p384_u1 = 0;
> +     let (x1120, x1121) = fiat_p384_addcarryx_u32(x1119, x1091, x1088);
> +-    let mut x1122: u32 = 0;
> +-    let mut x1123: fiat_p384_u1 = 0;
> +     let (x1122, x1123) = fiat_p384_addcarryx_u32(x1121, x1089, x1086);
> +-    let mut x1124: u32 = 0;
> +-    let mut x1125: fiat_p384_u1 = 0;
> +     let (x1124, x1125) = fiat_p384_addcarryx_u32(x1123, x1087, x1084);
> +-    let mut x1126: u32 = 0;
> +-    let mut x1127: fiat_p384_u1 = 0;
> +     let (x1126, x1127) = fiat_p384_addcarryx_u32(x1125, x1085, x1082);
> +     let x1128: u32 = ((x1127 as u32) + x1083);
> +-    let mut x1129: u32 = 0;
> +-    let mut x1130: fiat_p384_u1 = 0;
> +     let (x1129, x1130) = fiat_p384_addcarryx_u32(0x0, x1057, x1104);
> +-    let mut x1131: u32 = 0;
> +-    let mut x1132: fiat_p384_u1 = 0;
> +     let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1059, x1106);
> +-    let mut x1133: u32 = 0;
> +-    let mut x1134: fiat_p384_u1 = 0;
> +     let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1061, x1108);
> +-    let mut x1135: u32 = 0;
> +-    let mut x1136: fiat_p384_u1 = 0;
> +     let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1063, x1110);
> +-    let mut x1137: u32 = 0;
> +-    let mut x1138: fiat_p384_u1 = 0;
> +     let (x1137, x1138) = fiat_p384_addcarryx_u32(x1136, x1065, x1112);
> +-    let mut x1139: u32 = 0;
> +-    let mut x1140: fiat_p384_u1 = 0;
> +     let (x1139, x1140) = fiat_p384_addcarryx_u32(x1138, x1067, x1114);
> +-    let mut x1141: u32 = 0;
> +-    let mut x1142: fiat_p384_u1 = 0;
> +     let (x1141, x1142) = fiat_p384_addcarryx_u32(x1140, x1069, x1116);
> +-    let mut x1143: u32 = 0;
> +-    let mut x1144: fiat_p384_u1 = 0;
> +     let (x1143, x1144) = fiat_p384_addcarryx_u32(x1142, x1071, x1118);
> +-    let mut x1145: u32 = 0;
> +-    let mut x1146: fiat_p384_u1 = 0;
> +     let (x1145, x1146) = fiat_p384_addcarryx_u32(x1144, x1073, x1120);
> +-    let mut x1147: u32 = 0;
> +-    let mut x1148: fiat_p384_u1 = 0;
> +     let (x1147, x1148) = fiat_p384_addcarryx_u32(x1146, x1075, x1122);
> +-    let mut x1149: u32 = 0;
> +-    let mut x1150: fiat_p384_u1 = 0;
> +     let (x1149, x1150) = fiat_p384_addcarryx_u32(x1148, x1077, x1124);
> +-    let mut x1151: u32 = 0;
> +-    let mut x1152: fiat_p384_u1 = 0;
> +     let (x1151, x1152) = fiat_p384_addcarryx_u32(x1150, x1079, x1126);
> +-    let mut x1153: u32 = 0;
> +-    let mut x1154: fiat_p384_u1 = 0;
> +     let (x1153, x1154) = fiat_p384_addcarryx_u32(x1152, x1081, x1128);
> +-    let mut x1155: u32 = 0;
> +-    let mut x1156: u32 = 0;
> +     let (x1155, x1156) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1157: u32 = 0;
> +-    let mut x1158: u32 = 0;
> +     let (x1157, x1158) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1159: u32 = 0;
> +-    let mut x1160: u32 = 0;
> +     let (x1159, x1160) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1161: u32 = 0;
> +-    let mut x1162: u32 = 0;
> +     let (x1161, x1162) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1163: u32 = 0;
> +-    let mut x1164: u32 = 0;
> +     let (x1163, x1164) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1165: u32 = 0;
> +-    let mut x1166: u32 = 0;
> +     let (x1165, x1166) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1167: u32 = 0;
> +-    let mut x1168: u32 = 0;
> +     let (x1167, x1168) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1169: u32 = 0;
> +-    let mut x1170: u32 = 0;
> +     let (x1169, x1170) = fiat_p384_mulx_u32(x1129, 0xfffffffe);
> +-    let mut x1171: u32 = 0;
> +-    let mut x1172: u32 = 0;
> +     let (x1171, x1172) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1173: u32 = 0;
> +-    let mut x1174: u32 = 0;
> +     let (x1173, x1174) = fiat_p384_mulx_u32(x1129, 0xffffffff);
> +-    let mut x1175: u32 = 0;
> +-    let mut x1176: fiat_p384_u1 = 0;
> +     let (x1175, x1176) = fiat_p384_addcarryx_u32(0x0, x1172, x1169);
> +-    let mut x1177: u32 = 0;
> +-    let mut x1178: fiat_p384_u1 = 0;
> +     let (x1177, x1178) = fiat_p384_addcarryx_u32(x1176, x1170, x1167);
> +-    let mut x1179: u32 = 0;
> +-    let mut x1180: fiat_p384_u1 = 0;
> +     let (x1179, x1180) = fiat_p384_addcarryx_u32(x1178, x1168, x1165);
> +-    let mut x1181: u32 = 0;
> +-    let mut x1182: fiat_p384_u1 = 0;
> +     let (x1181, x1182) = fiat_p384_addcarryx_u32(x1180, x1166, x1163);
> +-    let mut x1183: u32 = 0;
> +-    let mut x1184: fiat_p384_u1 = 0;
> +     let (x1183, x1184) = fiat_p384_addcarryx_u32(x1182, x1164, x1161);
> +-    let mut x1185: u32 = 0;
> +-    let mut x1186: fiat_p384_u1 = 0;
> +     let (x1185, x1186) = fiat_p384_addcarryx_u32(x1184, x1162, x1159);
> +-    let mut x1187: u32 = 0;
> +-    let mut x1188: fiat_p384_u1 = 0;
> +     let (x1187, x1188) = fiat_p384_addcarryx_u32(x1186, x1160, x1157);
> +-    let mut x1189: u32 = 0;
> +-    let mut x1190: fiat_p384_u1 = 0;
> +     let (x1189, x1190) = fiat_p384_addcarryx_u32(x1188, x1158, x1155);
> +     let x1191: u32 = ((x1190 as u32) + x1156);
> +-    let mut x1192: u32 = 0;
> +-    let mut x1193: fiat_p384_u1 = 0;
> +     let (x1192, x1193) = fiat_p384_addcarryx_u32(0x0, x1129, x1173);
> +-    let mut x1194: u32 = 0;
> +-    let mut x1195: fiat_p384_u1 = 0;
> +     let (x1194, x1195) = fiat_p384_addcarryx_u32(x1193, x1131, x1174);
> +-    let mut x1196: u32 = 0;
> +-    let mut x1197: fiat_p384_u1 = 0;
> +     let (x1196, x1197) = fiat_p384_addcarryx_u32(x1195, x1133, (0x0 as u32));
> +-    let mut x1198: u32 = 0;
> +-    let mut x1199: fiat_p384_u1 = 0;
> +     let (x1198, x1199) = fiat_p384_addcarryx_u32(x1197, x1135, x1171);
> +-    let mut x1200: u32 = 0;
> +-    let mut x1201: fiat_p384_u1 = 0;
> +     let (x1200, x1201) = fiat_p384_addcarryx_u32(x1199, x1137, x1175);
> +-    let mut x1202: u32 = 0;
> +-    let mut x1203: fiat_p384_u1 = 0;
> +     let (x1202, x1203) = fiat_p384_addcarryx_u32(x1201, x1139, x1177);
> +-    let mut x1204: u32 = 0;
> +-    let mut x1205: fiat_p384_u1 = 0;
> +     let (x1204, x1205) = fiat_p384_addcarryx_u32(x1203, x1141, x1179);
> +-    let mut x1206: u32 = 0;
> +-    let mut x1207: fiat_p384_u1 = 0;
> +     let (x1206, x1207) = fiat_p384_addcarryx_u32(x1205, x1143, x1181);
> +-    let mut x1208: u32 = 0;
> +-    let mut x1209: fiat_p384_u1 = 0;
> +     let (x1208, x1209) = fiat_p384_addcarryx_u32(x1207, x1145, x1183);
> +-    let mut x1210: u32 = 0;
> +-    let mut x1211: fiat_p384_u1 = 0;
> +     let (x1210, x1211) = fiat_p384_addcarryx_u32(x1209, x1147, x1185);
> +-    let mut x1212: u32 = 0;
> +-    let mut x1213: fiat_p384_u1 = 0;
> +     let (x1212, x1213) = fiat_p384_addcarryx_u32(x1211, x1149, x1187);
> +-    let mut x1214: u32 = 0;
> +-    let mut x1215: fiat_p384_u1 = 0;
> +     let (x1214, x1215) = fiat_p384_addcarryx_u32(x1213, x1151, x1189);
> +-    let mut x1216: u32 = 0;
> +-    let mut x1217: fiat_p384_u1 = 0;
> +     let (x1216, x1217) = fiat_p384_addcarryx_u32(x1215, x1153, x1191);
> +     let x1218: u32 = ((x1217 as u32) + (x1154 as u32));
> +-    let mut x1219: u32 = 0;
> +-    let mut x1220: u32 = 0;
> +     let (x1219, x1220) = fiat_p384_mulx_u32(x9, (arg1[11]));
> +-    let mut x1221: u32 = 0;
> +-    let mut x1222: u32 = 0;
> +     let (x1221, x1222) = fiat_p384_mulx_u32(x9, (arg1[10]));
> +-    let mut x1223: u32 = 0;
> +-    let mut x1224: u32 = 0;
> +     let (x1223, x1224) = fiat_p384_mulx_u32(x9, (arg1[9]));
> +-    let mut x1225: u32 = 0;
> +-    let mut x1226: u32 = 0;
> +     let (x1225, x1226) = fiat_p384_mulx_u32(x9, (arg1[8]));
> +-    let mut x1227: u32 = 0;
> +-    let mut x1228: u32 = 0;
> +     let (x1227, x1228) = fiat_p384_mulx_u32(x9, (arg1[7]));
> +-    let mut x1229: u32 = 0;
> +-    let mut x1230: u32 = 0;
> +     let (x1229, x1230) = fiat_p384_mulx_u32(x9, (arg1[6]));
> +-    let mut x1231: u32 = 0;
> +-    let mut x1232: u32 = 0;
> +     let (x1231, x1232) = fiat_p384_mulx_u32(x9, (arg1[5]));
> +-    let mut x1233: u32 = 0;
> +-    let mut x1234: u32 = 0;
> +     let (x1233, x1234) = fiat_p384_mulx_u32(x9, (arg1[4]));
> +-    let mut x1235: u32 = 0;
> +-    let mut x1236: u32 = 0;
> +     let (x1235, x1236) = fiat_p384_mulx_u32(x9, (arg1[3]));
> +-    let mut x1237: u32 = 0;
> +-    let mut x1238: u32 = 0;
> +     let (x1237, x1238) = fiat_p384_mulx_u32(x9, (arg1[2]));
> +-    let mut x1239: u32 = 0;
> +-    let mut x1240: u32 = 0;
> +     let (x1239, x1240) = fiat_p384_mulx_u32(x9, (arg1[1]));
> +-    let mut x1241: u32 = 0;
> +-    let mut x1242: u32 = 0;
> +     let (x1241, x1242) = fiat_p384_mulx_u32(x9, (arg1[0]));
> +-    let mut x1243: u32 = 0;
> +-    let mut x1244: fiat_p384_u1 = 0;
> +     let (x1243, x1244) = fiat_p384_addcarryx_u32(0x0, x1242, x1239);
> +-    let mut x1245: u32 = 0;
> +-    let mut x1246: fiat_p384_u1 = 0;
> +     let (x1245, x1246) = fiat_p384_addcarryx_u32(x1244, x1240, x1237);
> +-    let mut x1247: u32 = 0;
> +-    let mut x1248: fiat_p384_u1 = 0;
> +     let (x1247, x1248) = fiat_p384_addcarryx_u32(x1246, x1238, x1235);
> +-    let mut x1249: u32 = 0;
> +-    let mut x1250: fiat_p384_u1 = 0;
> +     let (x1249, x1250) = fiat_p384_addcarryx_u32(x1248, x1236, x1233);
> +-    let mut x1251: u32 = 0;
> +-    let mut x1252: fiat_p384_u1 = 0;
> +     let (x1251, x1252) = fiat_p384_addcarryx_u32(x1250, x1234, x1231);
> +-    let mut x1253: u32 = 0;
> +-    let mut x1254: fiat_p384_u1 = 0;
> +     let (x1253, x1254) = fiat_p384_addcarryx_u32(x1252, x1232, x1229);
> +-    let mut x1255: u32 = 0;
> +-    let mut x1256: fiat_p384_u1 = 0;
> +     let (x1255, x1256) = fiat_p384_addcarryx_u32(x1254, x1230, x1227);
> +-    let mut x1257: u32 = 0;
> +-    let mut x1258: fiat_p384_u1 = 0;
> +     let (x1257, x1258) = fiat_p384_addcarryx_u32(x1256, x1228, x1225);
> +-    let mut x1259: u32 = 0;
> +-    let mut x1260: fiat_p384_u1 = 0;
> +     let (x1259, x1260) = fiat_p384_addcarryx_u32(x1258, x1226, x1223);
> +-    let mut x1261: u32 = 0;
> +-    let mut x1262: fiat_p384_u1 = 0;
> +     let (x1261, x1262) = fiat_p384_addcarryx_u32(x1260, x1224, x1221);
> +-    let mut x1263: u32 = 0;
> +-    let mut x1264: fiat_p384_u1 = 0;
> +     let (x1263, x1264) = fiat_p384_addcarryx_u32(x1262, x1222, x1219);
> +     let x1265: u32 = ((x1264 as u32) + x1220);
> +-    let mut x1266: u32 = 0;
> +-    let mut x1267: fiat_p384_u1 = 0;
> +     let (x1266, x1267) = fiat_p384_addcarryx_u32(0x0, x1194, x1241);
> +-    let mut x1268: u32 = 0;
> +-    let mut x1269: fiat_p384_u1 = 0;
> +     let (x1268, x1269) = fiat_p384_addcarryx_u32(x1267, x1196, x1243);
> +-    let mut x1270: u32 = 0;
> +-    let mut x1271: fiat_p384_u1 = 0;
> +     let (x1270, x1271) = fiat_p384_addcarryx_u32(x1269, x1198, x1245);
> +-    let mut x1272: u32 = 0;
> +-    let mut x1273: fiat_p384_u1 = 0;
> +     let (x1272, x1273) = fiat_p384_addcarryx_u32(x1271, x1200, x1247);
> +-    let mut x1274: u32 = 0;
> +-    let mut x1275: fiat_p384_u1 = 0;
> +     let (x1274, x1275) = fiat_p384_addcarryx_u32(x1273, x1202, x1249);
> +-    let mut x1276: u32 = 0;
> +-    let mut x1277: fiat_p384_u1 = 0;
> +     let (x1276, x1277) = fiat_p384_addcarryx_u32(x1275, x1204, x1251);
> +-    let mut x1278: u32 = 0;
> +-    let mut x1279: fiat_p384_u1 = 0;
> +     let (x1278, x1279) = fiat_p384_addcarryx_u32(x1277, x1206, x1253);
> +-    let mut x1280: u32 = 0;
> +-    let mut x1281: fiat_p384_u1 = 0;
> +     let (x1280, x1281) = fiat_p384_addcarryx_u32(x1279, x1208, x1255);
> +-    let mut x1282: u32 = 0;
> +-    let mut x1283: fiat_p384_u1 = 0;
> +     let (x1282, x1283) = fiat_p384_addcarryx_u32(x1281, x1210, x1257);
> +-    let mut x1284: u32 = 0;
> +-    let mut x1285: fiat_p384_u1 = 0;
> +     let (x1284, x1285) = fiat_p384_addcarryx_u32(x1283, x1212, x1259);
> +-    let mut x1286: u32 = 0;
> +-    let mut x1287: fiat_p384_u1 = 0;
> +     let (x1286, x1287) = fiat_p384_addcarryx_u32(x1285, x1214, x1261);
> +-    let mut x1288: u32 = 0;
> +-    let mut x1289: fiat_p384_u1 = 0;
> +     let (x1288, x1289) = fiat_p384_addcarryx_u32(x1287, x1216, x1263);
> +-    let mut x1290: u32 = 0;
> +-    let mut x1291: fiat_p384_u1 = 0;
> +     let (x1290, x1291) = fiat_p384_addcarryx_u32(x1289, x1218, x1265);
> +-    let mut x1292: u32 = 0;
> +-    let mut x1293: u32 = 0;
> +     let (x1292, x1293) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1294: u32 = 0;
> +-    let mut x1295: u32 = 0;
> +     let (x1294, x1295) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1296: u32 = 0;
> +-    let mut x1297: u32 = 0;
> +     let (x1296, x1297) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1298: u32 = 0;
> +-    let mut x1299: u32 = 0;
> +     let (x1298, x1299) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1300: u32 = 0;
> +-    let mut x1301: u32 = 0;
> +     let (x1300, x1301) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1302: u32 = 0;
> +-    let mut x1303: u32 = 0;
> +     let (x1302, x1303) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1304: u32 = 0;
> +-    let mut x1305: u32 = 0;
> +     let (x1304, x1305) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1306: u32 = 0;
> +-    let mut x1307: u32 = 0;
> +     let (x1306, x1307) = fiat_p384_mulx_u32(x1266, 0xfffffffe);
> +-    let mut x1308: u32 = 0;
> +-    let mut x1309: u32 = 0;
> +     let (x1308, x1309) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1310: u32 = 0;
> +-    let mut x1311: u32 = 0;
> +     let (x1310, x1311) = fiat_p384_mulx_u32(x1266, 0xffffffff);
> +-    let mut x1312: u32 = 0;
> +-    let mut x1313: fiat_p384_u1 = 0;
> +     let (x1312, x1313) = fiat_p384_addcarryx_u32(0x0, x1309, x1306);
> +-    let mut x1314: u32 = 0;
> +-    let mut x1315: fiat_p384_u1 = 0;
> +     let (x1314, x1315) = fiat_p384_addcarryx_u32(x1313, x1307, x1304);
> +-    let mut x1316: u32 = 0;
> +-    let mut x1317: fiat_p384_u1 = 0;
> +     let (x1316, x1317) = fiat_p384_addcarryx_u32(x1315, x1305, x1302);
> +-    let mut x1318: u32 = 0;
> +-    let mut x1319: fiat_p384_u1 = 0;
> +     let (x1318, x1319) = fiat_p384_addcarryx_u32(x1317, x1303, x1300);
> +-    let mut x1320: u32 = 0;
> +-    let mut x1321: fiat_p384_u1 = 0;
> +     let (x1320, x1321) = fiat_p384_addcarryx_u32(x1319, x1301, x1298);
> +-    let mut x1322: u32 = 0;
> +-    let mut x1323: fiat_p384_u1 = 0;
> +     let (x1322, x1323) = fiat_p384_addcarryx_u32(x1321, x1299, x1296);
> +-    let mut x1324: u32 = 0;
> +-    let mut x1325: fiat_p384_u1 = 0;
> +     let (x1324, x1325) = fiat_p384_addcarryx_u32(x1323, x1297, x1294);
> +-    let mut x1326: u32 = 0;
> +-    let mut x1327: fiat_p384_u1 = 0;
> +     let (x1326, x1327) = fiat_p384_addcarryx_u32(x1325, x1295, x1292);
> +     let x1328: u32 = ((x1327 as u32) + x1293);
> +-    let mut x1329: u32 = 0;
> +-    let mut x1330: fiat_p384_u1 = 0;
> +     let (x1329, x1330) = fiat_p384_addcarryx_u32(0x0, x1266, x1310);
> +-    let mut x1331: u32 = 0;
> +-    let mut x1332: fiat_p384_u1 = 0;
> +     let (x1331, x1332) = fiat_p384_addcarryx_u32(x1330, x1268, x1311);
> +-    let mut x1333: u32 = 0;
> +-    let mut x1334: fiat_p384_u1 = 0;
> +     let (x1333, x1334) = fiat_p384_addcarryx_u32(x1332, x1270, (0x0 as u32));
> +-    let mut x1335: u32 = 0;
> +-    let mut x1336: fiat_p384_u1 = 0;
> +     let (x1335, x1336) = fiat_p384_addcarryx_u32(x1334, x1272, x1308);
> +-    let mut x1337: u32 = 0;
> +-    let mut x1338: fiat_p384_u1 = 0;
> +     let (x1337, x1338) = fiat_p384_addcarryx_u32(x1336, x1274, x1312);
> +-    let mut x1339: u32 = 0;
> +-    let mut x1340: fiat_p384_u1 = 0;
> +     let (x1339, x1340) = fiat_p384_addcarryx_u32(x1338, x1276, x1314);
> +-    let mut x1341: u32 = 0;
> +-    let mut x1342: fiat_p384_u1 = 0;
> +     let (x1341, x1342) = fiat_p384_addcarryx_u32(x1340, x1278, x1316);
> +-    let mut x1343: u32 = 0;
> +-    let mut x1344: fiat_p384_u1 = 0;
> +     let (x1343, x1344) = fiat_p384_addcarryx_u32(x1342, x1280, x1318);
> +-    let mut x1345: u32 = 0;
> +-    let mut x1346: fiat_p384_u1 = 0;
> +     let (x1345, x1346) = fiat_p384_addcarryx_u32(x1344, x1282, x1320);
> +-    let mut x1347: u32 = 0;
> +-    let mut x1348: fiat_p384_u1 = 0;
> +     let (x1347, x1348) = fiat_p384_addcarryx_u32(x1346, x1284, x1322);
> +-    let mut x1349: u32 = 0;
> +-    let mut x1350: fiat_p384_u1 = 0;
> +     let (x1349, x1350) = fiat_p384_addcarryx_u32(x1348, x1286, x1324);
> +-    let mut x1351: u32 = 0;
> +-    let mut x1352: fiat_p384_u1 = 0;
> +     let (x1351, x1352) = fiat_p384_addcarryx_u32(x1350, x1288, x1326);
> +-    let mut x1353: u32 = 0;
> +-    let mut x1354: fiat_p384_u1 = 0;
> +     let (x1353, x1354) = fiat_p384_addcarryx_u32(x1352, x1290, x1328);
> +     let x1355: u32 = ((x1354 as u32) + (x1291 as u32));
> +-    let mut x1356: u32 = 0;
> +-    let mut x1357: u32 = 0;
> +     let (x1356, x1357) = fiat_p384_mulx_u32(x10, (arg1[11]));
> +-    let mut x1358: u32 = 0;
> +-    let mut x1359: u32 = 0;
> +     let (x1358, x1359) = fiat_p384_mulx_u32(x10, (arg1[10]));
> +-    let mut x1360: u32 = 0;
> +-    let mut x1361: u32 = 0;
> +     let (x1360, x1361) = fiat_p384_mulx_u32(x10, (arg1[9]));
> +-    let mut x1362: u32 = 0;
> +-    let mut x1363: u32 = 0;
> +     let (x1362, x1363) = fiat_p384_mulx_u32(x10, (arg1[8]));
> +-    let mut x1364: u32 = 0;
> +-    let mut x1365: u32 = 0;
> +     let (x1364, x1365) = fiat_p384_mulx_u32(x10, (arg1[7]));
> +-    let mut x1366: u32 = 0;
> +-    let mut x1367: u32 = 0;
> +     let (x1366, x1367) = fiat_p384_mulx_u32(x10, (arg1[6]));
> +-    let mut x1368: u32 = 0;
> +-    let mut x1369: u32 = 0;
> +     let (x1368, x1369) = fiat_p384_mulx_u32(x10, (arg1[5]));
> +-    let mut x1370: u32 = 0;
> +-    let mut x1371: u32 = 0;
> +     let (x1370, x1371) = fiat_p384_mulx_u32(x10, (arg1[4]));
> +-    let mut x1372: u32 = 0;
> +-    let mut x1373: u32 = 0;
> +     let (x1372, x1373) = fiat_p384_mulx_u32(x10, (arg1[3]));
> +-    let mut x1374: u32 = 0;
> +-    let mut x1375: u32 = 0;
> +     let (x1374, x1375) = fiat_p384_mulx_u32(x10, (arg1[2]));
> +-    let mut x1376: u32 = 0;
> +-    let mut x1377: u32 = 0;
> +     let (x1376, x1377) = fiat_p384_mulx_u32(x10, (arg1[1]));
> +-    let mut x1378: u32 = 0;
> +-    let mut x1379: u32 = 0;
> +     let (x1378, x1379) = fiat_p384_mulx_u32(x10, (arg1[0]));
> +-    let mut x1380: u32 = 0;
> +-    let mut x1381: fiat_p384_u1 = 0;
> +     let (x1380, x1381) = fiat_p384_addcarryx_u32(0x0, x1379, x1376);
> +-    let mut x1382: u32 = 0;
> +-    let mut x1383: fiat_p384_u1 = 0;
> +     let (x1382, x1383) = fiat_p384_addcarryx_u32(x1381, x1377, x1374);
> +-    let mut x1384: u32 = 0;
> +-    let mut x1385: fiat_p384_u1 = 0;
> +     let (x1384, x1385) = fiat_p384_addcarryx_u32(x1383, x1375, x1372);
> +-    let mut x1386: u32 = 0;
> +-    let mut x1387: fiat_p384_u1 = 0;
> +     let (x1386, x1387) = fiat_p384_addcarryx_u32(x1385, x1373, x1370);
> +-    let mut x1388: u32 = 0;
> +-    let mut x1389: fiat_p384_u1 = 0;
> +     let (x1388, x1389) = fiat_p384_addcarryx_u32(x1387, x1371, x1368);
> +-    let mut x1390: u32 = 0;
> +-    let mut x1391: fiat_p384_u1 = 0;
> +     let (x1390, x1391) = fiat_p384_addcarryx_u32(x1389, x1369, x1366);
> +-    let mut x1392: u32 = 0;
> +-    let mut x1393: fiat_p384_u1 = 0;
> +     let (x1392, x1393) = fiat_p384_addcarryx_u32(x1391, x1367, x1364);
> +-    let mut x1394: u32 = 0;
> +-    let mut x1395: fiat_p384_u1 = 0;
> +     let (x1394, x1395) = fiat_p384_addcarryx_u32(x1393, x1365, x1362);
> +-    let mut x1396: u32 = 0;
> +-    let mut x1397: fiat_p384_u1 = 0;
> +     let (x1396, x1397) = fiat_p384_addcarryx_u32(x1395, x1363, x1360);
> +-    let mut x1398: u32 = 0;
> +-    let mut x1399: fiat_p384_u1 = 0;
> +     let (x1398, x1399) = fiat_p384_addcarryx_u32(x1397, x1361, x1358);
> +-    let mut x1400: u32 = 0;
> +-    let mut x1401: fiat_p384_u1 = 0;
> +     let (x1400, x1401) = fiat_p384_addcarryx_u32(x1399, x1359, x1356);
> +     let x1402: u32 = ((x1401 as u32) + x1357);
> +-    let mut x1403: u32 = 0;
> +-    let mut x1404: fiat_p384_u1 = 0;
> +     let (x1403, x1404) = fiat_p384_addcarryx_u32(0x0, x1331, x1378);
> +-    let mut x1405: u32 = 0;
> +-    let mut x1406: fiat_p384_u1 = 0;
> +     let (x1405, x1406) = fiat_p384_addcarryx_u32(x1404, x1333, x1380);
> +-    let mut x1407: u32 = 0;
> +-    let mut x1408: fiat_p384_u1 = 0;
> +     let (x1407, x1408) = fiat_p384_addcarryx_u32(x1406, x1335, x1382);
> +-    let mut x1409: u32 = 0;
> +-    let mut x1410: fiat_p384_u1 = 0;
> +     let (x1409, x1410) = fiat_p384_addcarryx_u32(x1408, x1337, x1384);
> +-    let mut x1411: u32 = 0;
> +-    let mut x1412: fiat_p384_u1 = 0;
> +     let (x1411, x1412) = fiat_p384_addcarryx_u32(x1410, x1339, x1386);
> +-    let mut x1413: u32 = 0;
> +-    let mut x1414: fiat_p384_u1 = 0;
> +     let (x1413, x1414) = fiat_p384_addcarryx_u32(x1412, x1341, x1388);
> +-    let mut x1415: u32 = 0;
> +-    let mut x1416: fiat_p384_u1 = 0;
> +     let (x1415, x1416) = fiat_p384_addcarryx_u32(x1414, x1343, x1390);
> +-    let mut x1417: u32 = 0;
> +-    let mut x1418: fiat_p384_u1 = 0;
> +     let (x1417, x1418) = fiat_p384_addcarryx_u32(x1416, x1345, x1392);
> +-    let mut x1419: u32 = 0;
> +-    let mut x1420: fiat_p384_u1 = 0;
> +     let (x1419, x1420) = fiat_p384_addcarryx_u32(x1418, x1347, x1394);
> +-    let mut x1421: u32 = 0;
> +-    let mut x1422: fiat_p384_u1 = 0;
> +     let (x1421, x1422) = fiat_p384_addcarryx_u32(x1420, x1349, x1396);
> +-    let mut x1423: u32 = 0;
> +-    let mut x1424: fiat_p384_u1 = 0;
> +     let (x1423, x1424) = fiat_p384_addcarryx_u32(x1422, x1351, x1398);
> +-    let mut x1425: u32 = 0;
> +-    let mut x1426: fiat_p384_u1 = 0;
> +     let (x1425, x1426) = fiat_p384_addcarryx_u32(x1424, x1353, x1400);
> +-    let mut x1427: u32 = 0;
> +-    let mut x1428: fiat_p384_u1 = 0;
> +     let (x1427, x1428) = fiat_p384_addcarryx_u32(x1426, x1355, x1402);
> +-    let mut x1429: u32 = 0;
> +-    let mut x1430: u32 = 0;
> +     let (x1429, x1430) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1431: u32 = 0;
> +-    let mut x1432: u32 = 0;
> +     let (x1431, x1432) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1433: u32 = 0;
> +-    let mut x1434: u32 = 0;
> +     let (x1433, x1434) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1435: u32 = 0;
> +-    let mut x1436: u32 = 0;
> +     let (x1435, x1436) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1437: u32 = 0;
> +-    let mut x1438: u32 = 0;
> +     let (x1437, x1438) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1439: u32 = 0;
> +-    let mut x1440: u32 = 0;
> +     let (x1439, x1440) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1441: u32 = 0;
> +-    let mut x1442: u32 = 0;
> +     let (x1441, x1442) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1443: u32 = 0;
> +-    let mut x1444: u32 = 0;
> +     let (x1443, x1444) = fiat_p384_mulx_u32(x1403, 0xfffffffe);
> +-    let mut x1445: u32 = 0;
> +-    let mut x1446: u32 = 0;
> +     let (x1445, x1446) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1447: u32 = 0;
> +-    let mut x1448: u32 = 0;
> +     let (x1447, x1448) = fiat_p384_mulx_u32(x1403, 0xffffffff);
> +-    let mut x1449: u32 = 0;
> +-    let mut x1450: fiat_p384_u1 = 0;
> +     let (x1449, x1450) = fiat_p384_addcarryx_u32(0x0, x1446, x1443);
> +-    let mut x1451: u32 = 0;
> +-    let mut x1452: fiat_p384_u1 = 0;
> +     let (x1451, x1452) = fiat_p384_addcarryx_u32(x1450, x1444, x1441);
> +-    let mut x1453: u32 = 0;
> +-    let mut x1454: fiat_p384_u1 = 0;
> +     let (x1453, x1454) = fiat_p384_addcarryx_u32(x1452, x1442, x1439);
> +-    let mut x1455: u32 = 0;
> +-    let mut x1456: fiat_p384_u1 = 0;
> +     let (x1455, x1456) = fiat_p384_addcarryx_u32(x1454, x1440, x1437);
> +-    let mut x1457: u32 = 0;
> +-    let mut x1458: fiat_p384_u1 = 0;
> +     let (x1457, x1458) = fiat_p384_addcarryx_u32(x1456, x1438, x1435);
> +-    let mut x1459: u32 = 0;
> +-    let mut x1460: fiat_p384_u1 = 0;
> +     let (x1459, x1460) = fiat_p384_addcarryx_u32(x1458, x1436, x1433);
> +-    let mut x1461: u32 = 0;
> +-    let mut x1462: fiat_p384_u1 = 0;
> +     let (x1461, x1462) = fiat_p384_addcarryx_u32(x1460, x1434, x1431);
> +-    let mut x1463: u32 = 0;
> +-    let mut x1464: fiat_p384_u1 = 0;
> +     let (x1463, x1464) = fiat_p384_addcarryx_u32(x1462, x1432, x1429);
> +     let x1465: u32 = ((x1464 as u32) + x1430);
> +-    let mut x1466: u32 = 0;
> +-    let mut x1467: fiat_p384_u1 = 0;
> +     let (x1466, x1467) = fiat_p384_addcarryx_u32(0x0, x1403, x1447);
> +-    let mut x1468: u32 = 0;
> +-    let mut x1469: fiat_p384_u1 = 0;
> +     let (x1468, x1469) = fiat_p384_addcarryx_u32(x1467, x1405, x1448);
> +-    let mut x1470: u32 = 0;
> +-    let mut x1471: fiat_p384_u1 = 0;
> +     let (x1470, x1471) = fiat_p384_addcarryx_u32(x1469, x1407, (0x0 as u32));
> +-    let mut x1472: u32 = 0;
> +-    let mut x1473: fiat_p384_u1 = 0;
> +     let (x1472, x1473) = fiat_p384_addcarryx_u32(x1471, x1409, x1445);
> +-    let mut x1474: u32 = 0;
> +-    let mut x1475: fiat_p384_u1 = 0;
> +     let (x1474, x1475) = fiat_p384_addcarryx_u32(x1473, x1411, x1449);
> +-    let mut x1476: u32 = 0;
> +-    let mut x1477: fiat_p384_u1 = 0;
> +     let (x1476, x1477) = fiat_p384_addcarryx_u32(x1475, x1413, x1451);
> +-    let mut x1478: u32 = 0;
> +-    let mut x1479: fiat_p384_u1 = 0;
> +     let (x1478, x1479) = fiat_p384_addcarryx_u32(x1477, x1415, x1453);
> +-    let mut x1480: u32 = 0;
> +-    let mut x1481: fiat_p384_u1 = 0;
> +     let (x1480, x1481) = fiat_p384_addcarryx_u32(x1479, x1417, x1455);
> +-    let mut x1482: u32 = 0;
> +-    let mut x1483: fiat_p384_u1 = 0;
> +     let (x1482, x1483) = fiat_p384_addcarryx_u32(x1481, x1419, x1457);
> +-    let mut x1484: u32 = 0;
> +-    let mut x1485: fiat_p384_u1 = 0;
> +     let (x1484, x1485) = fiat_p384_addcarryx_u32(x1483, x1421, x1459);
> +-    let mut x1486: u32 = 0;
> +-    let mut x1487: fiat_p384_u1 = 0;
> +     let (x1486, x1487) = fiat_p384_addcarryx_u32(x1485, x1423, x1461);
> +-    let mut x1488: u32 = 0;
> +-    let mut x1489: fiat_p384_u1 = 0;
> +     let (x1488, x1489) = fiat_p384_addcarryx_u32(x1487, x1425, x1463);
> +-    let mut x1490: u32 = 0;
> +-    let mut x1491: fiat_p384_u1 = 0;
> +     let (x1490, x1491) = fiat_p384_addcarryx_u32(x1489, x1427, x1465);
> +     let x1492: u32 = ((x1491 as u32) + (x1428 as u32));
> +-    let mut x1493: u32 = 0;
> +-    let mut x1494: u32 = 0;
> +     let (x1493, x1494) = fiat_p384_mulx_u32(x11, (arg1[11]));
> +-    let mut x1495: u32 = 0;
> +-    let mut x1496: u32 = 0;
> +     let (x1495, x1496) = fiat_p384_mulx_u32(x11, (arg1[10]));
> +-    let mut x1497: u32 = 0;
> +-    let mut x1498: u32 = 0;
> +     let (x1497, x1498) = fiat_p384_mulx_u32(x11, (arg1[9]));
> +-    let mut x1499: u32 = 0;
> +-    let mut x1500: u32 = 0;
> +     let (x1499, x1500) = fiat_p384_mulx_u32(x11, (arg1[8]));
> +-    let mut x1501: u32 = 0;
> +-    let mut x1502: u32 = 0;
> +     let (x1501, x1502) = fiat_p384_mulx_u32(x11, (arg1[7]));
> +-    let mut x1503: u32 = 0;
> +-    let mut x1504: u32 = 0;
> +     let (x1503, x1504) = fiat_p384_mulx_u32(x11, (arg1[6]));
> +-    let mut x1505: u32 = 0;
> +-    let mut x1506: u32 = 0;
> +     let (x1505, x1506) = fiat_p384_mulx_u32(x11, (arg1[5]));
> +-    let mut x1507: u32 = 0;
> +-    let mut x1508: u32 = 0;
> +     let (x1507, x1508) = fiat_p384_mulx_u32(x11, (arg1[4]));
> +-    let mut x1509: u32 = 0;
> +-    let mut x1510: u32 = 0;
> +     let (x1509, x1510) = fiat_p384_mulx_u32(x11, (arg1[3]));
> +-    let mut x1511: u32 = 0;
> +-    let mut x1512: u32 = 0;
> +     let (x1511, x1512) = fiat_p384_mulx_u32(x11, (arg1[2]));
> +-    let mut x1513: u32 = 0;
> +-    let mut x1514: u32 = 0;
> +     let (x1513, x1514) = fiat_p384_mulx_u32(x11, (arg1[1]));
> +-    let mut x1515: u32 = 0;
> +-    let mut x1516: u32 = 0;
> +     let (x1515, x1516) = fiat_p384_mulx_u32(x11, (arg1[0]));
> +-    let mut x1517: u32 = 0;
> +-    let mut x1518: fiat_p384_u1 = 0;
> +     let (x1517, x1518) = fiat_p384_addcarryx_u32(0x0, x1516, x1513);
> +-    let mut x1519: u32 = 0;
> +-    let mut x1520: fiat_p384_u1 = 0;
> +     let (x1519, x1520) = fiat_p384_addcarryx_u32(x1518, x1514, x1511);
> +-    let mut x1521: u32 = 0;
> +-    let mut x1522: fiat_p384_u1 = 0;
> +     let (x1521, x1522) = fiat_p384_addcarryx_u32(x1520, x1512, x1509);
> +-    let mut x1523: u32 = 0;
> +-    let mut x1524: fiat_p384_u1 = 0;
> +     let (x1523, x1524) = fiat_p384_addcarryx_u32(x1522, x1510, x1507);
> +-    let mut x1525: u32 = 0;
> +-    let mut x1526: fiat_p384_u1 = 0;
> +     let (x1525, x1526) = fiat_p384_addcarryx_u32(x1524, x1508, x1505);
> +-    let mut x1527: u32 = 0;
> +-    let mut x1528: fiat_p384_u1 = 0;
> +     let (x1527, x1528) = fiat_p384_addcarryx_u32(x1526, x1506, x1503);
> +-    let mut x1529: u32 = 0;
> +-    let mut x1530: fiat_p384_u1 = 0;
> +     let (x1529, x1530) = fiat_p384_addcarryx_u32(x1528, x1504, x1501);
> +-    let mut x1531: u32 = 0;
> +-    let mut x1532: fiat_p384_u1 = 0;
> +     let (x1531, x1532) = fiat_p384_addcarryx_u32(x1530, x1502, x1499);
> +-    let mut x1533: u32 = 0;
> +-    let mut x1534: fiat_p384_u1 = 0;
> +     let (x1533, x1534) = fiat_p384_addcarryx_u32(x1532, x1500, x1497);
> +-    let mut x1535: u32 = 0;
> +-    let mut x1536: fiat_p384_u1 = 0;
> +     let (x1535, x1536) = fiat_p384_addcarryx_u32(x1534, x1498, x1495);
> +-    let mut x1537: u32 = 0;
> +-    let mut x1538: fiat_p384_u1 = 0;
> +     let (x1537, x1538) = fiat_p384_addcarryx_u32(x1536, x1496, x1493);
> +     let x1539: u32 = ((x1538 as u32) + x1494);
> +-    let mut x1540: u32 = 0;
> +-    let mut x1541: fiat_p384_u1 = 0;
> +     let (x1540, x1541) = fiat_p384_addcarryx_u32(0x0, x1468, x1515);
> +-    let mut x1542: u32 = 0;
> +-    let mut x1543: fiat_p384_u1 = 0;
> +     let (x1542, x1543) = fiat_p384_addcarryx_u32(x1541, x1470, x1517);
> +-    let mut x1544: u32 = 0;
> +-    let mut x1545: fiat_p384_u1 = 0;
> +     let (x1544, x1545) = fiat_p384_addcarryx_u32(x1543, x1472, x1519);
> +-    let mut x1546: u32 = 0;
> +-    let mut x1547: fiat_p384_u1 = 0;
> +     let (x1546, x1547) = fiat_p384_addcarryx_u32(x1545, x1474, x1521);
> +-    let mut x1548: u32 = 0;
> +-    let mut x1549: fiat_p384_u1 = 0;
> +     let (x1548, x1549) = fiat_p384_addcarryx_u32(x1547, x1476, x1523);
> +-    let mut x1550: u32 = 0;
> +-    let mut x1551: fiat_p384_u1 = 0;
> +     let (x1550, x1551) = fiat_p384_addcarryx_u32(x1549, x1478, x1525);
> +-    let mut x1552: u32 = 0;
> +-    let mut x1553: fiat_p384_u1 = 0;
> +     let (x1552, x1553) = fiat_p384_addcarryx_u32(x1551, x1480, x1527);
> +-    let mut x1554: u32 = 0;
> +-    let mut x1555: fiat_p384_u1 = 0;
> +     let (x1554, x1555) = fiat_p384_addcarryx_u32(x1553, x1482, x1529);
> +-    let mut x1556: u32 = 0;
> +-    let mut x1557: fiat_p384_u1 = 0;
> +     let (x1556, x1557) = fiat_p384_addcarryx_u32(x1555, x1484, x1531);
> +-    let mut x1558: u32 = 0;
> +-    let mut x1559: fiat_p384_u1 = 0;
> +     let (x1558, x1559) = fiat_p384_addcarryx_u32(x1557, x1486, x1533);
> +-    let mut x1560: u32 = 0;
> +-    let mut x1561: fiat_p384_u1 = 0;
> +     let (x1560, x1561) = fiat_p384_addcarryx_u32(x1559, x1488, x1535);
> +-    let mut x1562: u32 = 0;
> +-    let mut x1563: fiat_p384_u1 = 0;
> +     let (x1562, x1563) = fiat_p384_addcarryx_u32(x1561, x1490, x1537);
> +-    let mut x1564: u32 = 0;
> +-    let mut x1565: fiat_p384_u1 = 0;
> +     let (x1564, x1565) = fiat_p384_addcarryx_u32(x1563, x1492, x1539);
> +-    let mut x1566: u32 = 0;
> +-    let mut x1567: u32 = 0;
> +     let (x1566, x1567) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1568: u32 = 0;
> +-    let mut x1569: u32 = 0;
> +     let (x1568, x1569) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1570: u32 = 0;
> +-    let mut x1571: u32 = 0;
> +     let (x1570, x1571) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1572: u32 = 0;
> +-    let mut x1573: u32 = 0;
> +     let (x1572, x1573) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1574: u32 = 0;
> +-    let mut x1575: u32 = 0;
> +     let (x1574, x1575) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1576: u32 = 0;
> +-    let mut x1577: u32 = 0;
> +     let (x1576, x1577) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1578: u32 = 0;
> +-    let mut x1579: u32 = 0;
> +     let (x1578, x1579) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1580: u32 = 0;
> +-    let mut x1581: u32 = 0;
> +     let (x1580, x1581) = fiat_p384_mulx_u32(x1540, 0xfffffffe);
> +-    let mut x1582: u32 = 0;
> +-    let mut x1583: u32 = 0;
> +     let (x1582, x1583) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1584: u32 = 0;
> +-    let mut x1585: u32 = 0;
> +     let (x1584, x1585) = fiat_p384_mulx_u32(x1540, 0xffffffff);
> +-    let mut x1586: u32 = 0;
> +-    let mut x1587: fiat_p384_u1 = 0;
> +     let (x1586, x1587) = fiat_p384_addcarryx_u32(0x0, x1583, x1580);
> +-    let mut x1588: u32 = 0;
> +-    let mut x1589: fiat_p384_u1 = 0;
> +     let (x1588, x1589) = fiat_p384_addcarryx_u32(x1587, x1581, x1578);
> +-    let mut x1590: u32 = 0;
> +-    let mut x1591: fiat_p384_u1 = 0;
> +     let (x1590, x1591) = fiat_p384_addcarryx_u32(x1589, x1579, x1576);
> +-    let mut x1592: u32 = 0;
> +-    let mut x1593: fiat_p384_u1 = 0;
> +     let (x1592, x1593) = fiat_p384_addcarryx_u32(x1591, x1577, x1574);
> +-    let mut x1594: u32 = 0;
> +-    let mut x1595: fiat_p384_u1 = 0;
> +     let (x1594, x1595) = fiat_p384_addcarryx_u32(x1593, x1575, x1572);
> +-    let mut x1596: u32 = 0;
> +-    let mut x1597: fiat_p384_u1 = 0;
> +     let (x1596, x1597) = fiat_p384_addcarryx_u32(x1595, x1573, x1570);
> +-    let mut x1598: u32 = 0;
> +-    let mut x1599: fiat_p384_u1 = 0;
> +     let (x1598, x1599) = fiat_p384_addcarryx_u32(x1597, x1571, x1568);
> +-    let mut x1600: u32 = 0;
> +-    let mut x1601: fiat_p384_u1 = 0;
> +     let (x1600, x1601) = fiat_p384_addcarryx_u32(x1599, x1569, x1566);
> +     let x1602: u32 = ((x1601 as u32) + x1567);
> +-    let mut x1603: u32 = 0;
> +-    let mut x1604: fiat_p384_u1 = 0;
> +     let (x1603, x1604) = fiat_p384_addcarryx_u32(0x0, x1540, x1584);
> +-    let mut x1605: u32 = 0;
> +-    let mut x1606: fiat_p384_u1 = 0;
> +     let (x1605, x1606) = fiat_p384_addcarryx_u32(x1604, x1542, x1585);
> +-    let mut x1607: u32 = 0;
> +-    let mut x1608: fiat_p384_u1 = 0;
> +     let (x1607, x1608) = fiat_p384_addcarryx_u32(x1606, x1544, (0x0 as u32));
> +-    let mut x1609: u32 = 0;
> +-    let mut x1610: fiat_p384_u1 = 0;
> +     let (x1609, x1610) = fiat_p384_addcarryx_u32(x1608, x1546, x1582);
> +-    let mut x1611: u32 = 0;
> +-    let mut x1612: fiat_p384_u1 = 0;
> +     let (x1611, x1612) = fiat_p384_addcarryx_u32(x1610, x1548, x1586);
> +-    let mut x1613: u32 = 0;
> +-    let mut x1614: fiat_p384_u1 = 0;
> +     let (x1613, x1614) = fiat_p384_addcarryx_u32(x1612, x1550, x1588);
> +-    let mut x1615: u32 = 0;
> +-    let mut x1616: fiat_p384_u1 = 0;
> +     let (x1615, x1616) = fiat_p384_addcarryx_u32(x1614, x1552, x1590);
> +-    let mut x1617: u32 = 0;
> +-    let mut x1618: fiat_p384_u1 = 0;
> +     let (x1617, x1618) = fiat_p384_addcarryx_u32(x1616, x1554, x1592);
> +-    let mut x1619: u32 = 0;
> +-    let mut x1620: fiat_p384_u1 = 0;
> +     let (x1619, x1620) = fiat_p384_addcarryx_u32(x1618, x1556, x1594);
> +-    let mut x1621: u32 = 0;
> +-    let mut x1622: fiat_p384_u1 = 0;
> +     let (x1621, x1622) = fiat_p384_addcarryx_u32(x1620, x1558, x1596);
> +-    let mut x1623: u32 = 0;
> +-    let mut x1624: fiat_p384_u1 = 0;
> +     let (x1623, x1624) = fiat_p384_addcarryx_u32(x1622, x1560, x1598);
> +-    let mut x1625: u32 = 0;
> +-    let mut x1626: fiat_p384_u1 = 0;
> +     let (x1625, x1626) = fiat_p384_addcarryx_u32(x1624, x1562, x1600);
> +-    let mut x1627: u32 = 0;
> +-    let mut x1628: fiat_p384_u1 = 0;
> +     let (x1627, x1628) = fiat_p384_addcarryx_u32(x1626, x1564, x1602);
> +     let x1629: u32 = ((x1628 as u32) + (x1565 as u32));
> +-    let mut x1630: u32 = 0;
> +-    let mut x1631: fiat_p384_u1 = 0;
> +     let (x1630, x1631) = fiat_p384_subborrowx_u32(0x0, x1605, 0xffffffff);
> +-    let mut x1632: u32 = 0;
> +-    let mut x1633: fiat_p384_u1 = 0;
> +     let (x1632, x1633) = fiat_p384_subborrowx_u32(x1631, x1607, (0x0 as u32));
> +-    let mut x1634: u32 = 0;
> +-    let mut x1635: fiat_p384_u1 = 0;
> +     let (x1634, x1635) = fiat_p384_subborrowx_u32(x1633, x1609, (0x0 as u32));
> +-    let mut x1636: u32 = 0;
> +-    let mut x1637: fiat_p384_u1 = 0;
> +     let (x1636, x1637) = fiat_p384_subborrowx_u32(x1635, x1611, 0xffffffff);
> +-    let mut x1638: u32 = 0;
> +-    let mut x1639: fiat_p384_u1 = 0;
> +     let (x1638, x1639) = fiat_p384_subborrowx_u32(x1637, x1613, 0xfffffffe);
> +-    let mut x1640: u32 = 0;
> +-    let mut x1641: fiat_p384_u1 = 0;
> +     let (x1640, x1641) = fiat_p384_subborrowx_u32(x1639, x1615, 0xffffffff);
> +-    let mut x1642: u32 = 0;
> +-    let mut x1643: fiat_p384_u1 = 0;
> +     let (x1642, x1643) = fiat_p384_subborrowx_u32(x1641, x1617, 0xffffffff);
> +-    let mut x1644: u32 = 0;
> +-    let mut x1645: fiat_p384_u1 = 0;
> +     let (x1644, x1645) = fiat_p384_subborrowx_u32(x1643, x1619, 0xffffffff);
> +-    let mut x1646: u32 = 0;
> +-    let mut x1647: fiat_p384_u1 = 0;
> +     let (x1646, x1647) = fiat_p384_subborrowx_u32(x1645, x1621, 0xffffffff);
> +-    let mut x1648: u32 = 0;
> +-    let mut x1649: fiat_p384_u1 = 0;
> +     let (x1648, x1649) = fiat_p384_subborrowx_u32(x1647, x1623, 0xffffffff);
> +-    let mut x1650: u32 = 0;
> +-    let mut x1651: fiat_p384_u1 = 0;
> +     let (x1650, x1651) = fiat_p384_subborrowx_u32(x1649, x1625, 0xffffffff);
> +-    let mut x1652: u32 = 0;
> +-    let mut x1653: fiat_p384_u1 = 0;
> +     let (x1652, x1653) = fiat_p384_subborrowx_u32(x1651, x1627, 0xffffffff);
> +-    let mut x1654: u32 = 0;
> +-    let mut x1655: fiat_p384_u1 = 0;
> +     let (x1654, x1655) = fiat_p384_subborrowx_u32(x1653, x1629, (0x0 as u32));
> +-    let mut x1656: u32 = 0;
> +     let (x1656) = fiat_p384_cmovznz_u32(x1655, x1630, x1605);
> +-    let mut x1657: u32 = 0;
> +     let (x1657) = fiat_p384_cmovznz_u32(x1655, x1632, x1607);
> +-    let mut x1658: u32 = 0;
> +     let (x1658) = fiat_p384_cmovznz_u32(x1655, x1634, x1609);
> +-    let mut x1659: u32 = 0;
> +     let (x1659) = fiat_p384_cmovznz_u32(x1655, x1636, x1611);
> +-    let mut x1660: u32 = 0;
> +     let (x1660) = fiat_p384_cmovznz_u32(x1655, x1638, x1613);
> +-    let mut x1661: u32 = 0;
> +     let (x1661) = fiat_p384_cmovznz_u32(x1655, x1640, x1615);
> +-    let mut x1662: u32 = 0;
> +     let (x1662) = fiat_p384_cmovznz_u32(x1655, x1642, x1617);
> +-    let mut x1663: u32 = 0;
> +     let (x1663) = fiat_p384_cmovznz_u32(x1655, x1644, x1619);
> +-    let mut x1664: u32 = 0;
> +     let (x1664) = fiat_p384_cmovznz_u32(x1655, x1646, x1621);
> +-    let mut x1665: u32 = 0;
> +     let (x1665) = fiat_p384_cmovznz_u32(x1655, x1648, x1623);
> +-    let mut x1666: u32 = 0;
> +     let (x1666) = fiat_p384_cmovznz_u32(x1655, x1650, x1625);
> +-    let mut x1667: u32 = 0;
> +     let (x1667) = fiat_p384_cmovznz_u32(x1655, x1652, x1627);
> +     out1[0] = x1656;
> +     out1[1] = x1657;
> +@@ -5170,104 +1930,42 @@ pub const fn fiat_p384_add(
> +     arg2: &fiat_p384_montgomery_domain_field_element,
> + ) -> fiat_p384_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_addcarryx_u32(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u32 = 0;
> +-    let mut x4: fiat_p384_u1 = 0;
> +     let (x3, x4) = fiat_p384_addcarryx_u32(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u32 = 0;
> +-    let mut x6: fiat_p384_u1 = 0;
> +     let (x5, x6) = fiat_p384_addcarryx_u32(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u32 = 0;
> +-    let mut x8: fiat_p384_u1 = 0;
> +     let (x7, x8) = fiat_p384_addcarryx_u32(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u32 = 0;
> +-    let mut x10: fiat_p384_u1 = 0;
> +     let (x9, x10) = fiat_p384_addcarryx_u32(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u32 = 0;
> +-    let mut x12: fiat_p384_u1 = 0;
> +     let (x11, x12) = fiat_p384_addcarryx_u32(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u32 = 0;
> +-    let mut x14: fiat_p384_u1 = 0;
> +     let (x13, x14) = fiat_p384_addcarryx_u32(x12, (arg1[6]), (arg2[6]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: fiat_p384_u1 = 0;
> +     let (x15, x16) = fiat_p384_addcarryx_u32(x14, (arg1[7]), (arg2[7]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: fiat_p384_u1 = 0;
> +     let (x17, x18) = fiat_p384_addcarryx_u32(x16, (arg1[8]), (arg2[8]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_addcarryx_u32(x18, (arg1[9]), (arg2[9]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_addcarryx_u32(x20, (arg1[10]), (arg2[10]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: fiat_p384_u1 = 0;
> +     let (x23, x24) = fiat_p384_addcarryx_u32(x22, (arg1[11]), (arg2[11]));
> +-    let mut x25: u32 = 0;
> +-    let mut x26: fiat_p384_u1 = 0;
> +     let (x25, x26) = fiat_p384_subborrowx_u32(0x0, x1, 0xffffffff);
> +-    let mut x27: u32 = 0;
> +-    let mut x28: fiat_p384_u1 = 0;
> +     let (x27, x28) = fiat_p384_subborrowx_u32(x26, x3, (0x0 as u32));
> +-    let mut x29: u32 = 0;
> +-    let mut x30: fiat_p384_u1 = 0;
> +     let (x29, x30) = fiat_p384_subborrowx_u32(x28, x5, (0x0 as u32));
> +-    let mut x31: u32 = 0;
> +-    let mut x32: fiat_p384_u1 = 0;
> +     let (x31, x32) = fiat_p384_subborrowx_u32(x30, x7, 0xffffffff);
> +-    let mut x33: u32 = 0;
> +-    let mut x34: fiat_p384_u1 = 0;
> +     let (x33, x34) = fiat_p384_subborrowx_u32(x32, x9, 0xfffffffe);
> +-    let mut x35: u32 = 0;
> +-    let mut x36: fiat_p384_u1 = 0;
> +     let (x35, x36) = fiat_p384_subborrowx_u32(x34, x11, 0xffffffff);
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_u1 = 0;
> +     let (x37, x38) = fiat_p384_subborrowx_u32(x36, x13, 0xffffffff);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_u1 = 0;
> +     let (x39, x40) = fiat_p384_subborrowx_u32(x38, x15, 0xffffffff);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_u1 = 0;
> +     let (x41, x42) = fiat_p384_subborrowx_u32(x40, x17, 0xffffffff);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_u1 = 0;
> +     let (x43, x44) = fiat_p384_subborrowx_u32(x42, x19, 0xffffffff);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_u1 = 0;
> +     let (x45, x46) = fiat_p384_subborrowx_u32(x44, x21, 0xffffffff);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_u1 = 0;
> +     let (x47, x48) = fiat_p384_subborrowx_u32(x46, x23, 0xffffffff);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_u1 = 0;
> +     let (x49, x50) = fiat_p384_subborrowx_u32(x48, (x24 as u32), (0x0 as u32));
> +-    let mut x51: u32 = 0;
> +     let (x51) = fiat_p384_cmovznz_u32(x50, x25, x1);
> +-    let mut x52: u32 = 0;
> +     let (x52) = fiat_p384_cmovznz_u32(x50, x27, x3);
> +-    let mut x53: u32 = 0;
> +     let (x53) = fiat_p384_cmovznz_u32(x50, x29, x5);
> +-    let mut x54: u32 = 0;
> +     let (x54) = fiat_p384_cmovznz_u32(x50, x31, x7);
> +-    let mut x55: u32 = 0;
> +     let (x55) = fiat_p384_cmovznz_u32(x50, x33, x9);
> +-    let mut x56: u32 = 0;
> +     let (x56) = fiat_p384_cmovznz_u32(x50, x35, x11);
> +-    let mut x57: u32 = 0;
> +     let (x57) = fiat_p384_cmovznz_u32(x50, x37, x13);
> +-    let mut x58: u32 = 0;
> +     let (x58) = fiat_p384_cmovznz_u32(x50, x39, x15);
> +-    let mut x59: u32 = 0;
> +     let (x59) = fiat_p384_cmovznz_u32(x50, x41, x17);
> +-    let mut x60: u32 = 0;
> +     let (x60) = fiat_p384_cmovznz_u32(x50, x43, x19);
> +-    let mut x61: u32 = 0;
> +     let (x61) = fiat_p384_cmovznz_u32(x50, x45, x21);
> +-    let mut x62: u32 = 0;
> +     let (x62) = fiat_p384_cmovznz_u32(x50, x47, x23);
> +     out1[0] = x51;
> +     out1[1] = x52;
> +@@ -5298,79 +1996,30 @@ pub const fn fiat_p384_sub(
> +     arg2: &fiat_p384_montgomery_domain_field_element,
> + ) -> fiat_p384_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_subborrowx_u32(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u32 = 0;
> +-    let mut x4: fiat_p384_u1 = 0;
> +     let (x3, x4) = fiat_p384_subborrowx_u32(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u32 = 0;
> +-    let mut x6: fiat_p384_u1 = 0;
> +     let (x5, x6) = fiat_p384_subborrowx_u32(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u32 = 0;
> +-    let mut x8: fiat_p384_u1 = 0;
> +     let (x7, x8) = fiat_p384_subborrowx_u32(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u32 = 0;
> +-    let mut x10: fiat_p384_u1 = 0;
> +     let (x9, x10) = fiat_p384_subborrowx_u32(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u32 = 0;
> +-    let mut x12: fiat_p384_u1 = 0;
> +     let (x11, x12) = fiat_p384_subborrowx_u32(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u32 = 0;
> +-    let mut x14: fiat_p384_u1 = 0;
> +     let (x13, x14) = fiat_p384_subborrowx_u32(x12, (arg1[6]), (arg2[6]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: fiat_p384_u1 = 0;
> +     let (x15, x16) = fiat_p384_subborrowx_u32(x14, (arg1[7]), (arg2[7]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: fiat_p384_u1 = 0;
> +     let (x17, x18) = fiat_p384_subborrowx_u32(x16, (arg1[8]), (arg2[8]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_subborrowx_u32(x18, (arg1[9]), (arg2[9]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_subborrowx_u32(x20, (arg1[10]), (arg2[10]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: fiat_p384_u1 = 0;
> +     let (x23, x24) = fiat_p384_subborrowx_u32(x22, (arg1[11]), (arg2[11]));
> +-    let mut x25: u32 = 0;
> +     let (x25) = fiat_p384_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_u1 = 0;
> +     let (x26, x27) = fiat_p384_addcarryx_u32(0x0, x1, x25);
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_u1 = 0;
> +     let (x28, x29) = fiat_p384_addcarryx_u32(x27, x3, (0x0 as u32));
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_u1 = 0;
> +     let (x30, x31) = fiat_p384_addcarryx_u32(x29, x5, (0x0 as u32));
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_u1 = 0;
> +     let (x32, x33) = fiat_p384_addcarryx_u32(x31, x7, x25);
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_u1 = 0;
> +     let (x34, x35) = fiat_p384_addcarryx_u32(x33, x9, (x25 & 0xfffffffe));
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_u1 = 0;
> +     let (x36, x37) = fiat_p384_addcarryx_u32(x35, x11, x25);
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_u1 = 0;
> +     let (x38, x39) = fiat_p384_addcarryx_u32(x37, x13, x25);
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_u1 = 0;
> +     let (x40, x41) = fiat_p384_addcarryx_u32(x39, x15, x25);
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_u1 = 0;
> +     let (x42, x43) = fiat_p384_addcarryx_u32(x41, x17, x25);
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_u1 = 0;
> +     let (x44, x45) = fiat_p384_addcarryx_u32(x43, x19, x25);
> +-    let mut x46: u32 = 0;
> +-    let mut x47: fiat_p384_u1 = 0;
> +     let (x46, x47) = fiat_p384_addcarryx_u32(x45, x21, x25);
> +-    let mut x48: u32 = 0;
> +-    let mut x49: fiat_p384_u1 = 0;
> +     let (x48, x49) = fiat_p384_addcarryx_u32(x47, x23, x25);
> +     out1[0] = x26;
> +     out1[1] = x28;
> +@@ -5399,79 +2048,30 @@ pub const fn fiat_p384_opp(
> +     arg1: &fiat_p384_montgomery_domain_field_element,
> + ) -> fiat_p384_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_subborrowx_u32(0x0, (0x0 as u32), (arg1[0]));
> +-    let mut x3: u32 = 0;
> +-    let mut x4: fiat_p384_u1 = 0;
> +     let (x3, x4) = fiat_p384_subborrowx_u32(x2, (0x0 as u32), (arg1[1]));
> +-    let mut x5: u32 = 0;
> +-    let mut x6: fiat_p384_u1 = 0;
> +     let (x5, x6) = fiat_p384_subborrowx_u32(x4, (0x0 as u32), (arg1[2]));
> +-    let mut x7: u32 = 0;
> +-    let mut x8: fiat_p384_u1 = 0;
> +     let (x7, x8) = fiat_p384_subborrowx_u32(x6, (0x0 as u32), (arg1[3]));
> +-    let mut x9: u32 = 0;
> +-    let mut x10: fiat_p384_u1 = 0;
> +     let (x9, x10) = fiat_p384_subborrowx_u32(x8, (0x0 as u32), (arg1[4]));
> +-    let mut x11: u32 = 0;
> +-    let mut x12: fiat_p384_u1 = 0;
> +     let (x11, x12) = fiat_p384_subborrowx_u32(x10, (0x0 as u32), (arg1[5]));
> +-    let mut x13: u32 = 0;
> +-    let mut x14: fiat_p384_u1 = 0;
> +     let (x13, x14) = fiat_p384_subborrowx_u32(x12, (0x0 as u32), (arg1[6]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: fiat_p384_u1 = 0;
> +     let (x15, x16) = fiat_p384_subborrowx_u32(x14, (0x0 as u32), (arg1[7]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: fiat_p384_u1 = 0;
> +     let (x17, x18) = fiat_p384_subborrowx_u32(x16, (0x0 as u32), (arg1[8]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_subborrowx_u32(x18, (0x0 as u32), (arg1[9]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_subborrowx_u32(x20, (0x0 as u32), (arg1[10]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: fiat_p384_u1 = 0;
> +     let (x23, x24) = fiat_p384_subborrowx_u32(x22, (0x0 as u32), (arg1[11]));
> +-    let mut x25: u32 = 0;
> +     let (x25) = fiat_p384_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_u1 = 0;
> +     let (x26, x27) = fiat_p384_addcarryx_u32(0x0, x1, x25);
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_u1 = 0;
> +     let (x28, x29) = fiat_p384_addcarryx_u32(x27, x3, (0x0 as u32));
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_u1 = 0;
> +     let (x30, x31) = fiat_p384_addcarryx_u32(x29, x5, (0x0 as u32));
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_u1 = 0;
> +     let (x32, x33) = fiat_p384_addcarryx_u32(x31, x7, x25);
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_u1 = 0;
> +     let (x34, x35) = fiat_p384_addcarryx_u32(x33, x9, (x25 & 0xfffffffe));
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_u1 = 0;
> +     let (x36, x37) = fiat_p384_addcarryx_u32(x35, x11, x25);
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_u1 = 0;
> +     let (x38, x39) = fiat_p384_addcarryx_u32(x37, x13, x25);
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_u1 = 0;
> +     let (x40, x41) = fiat_p384_addcarryx_u32(x39, x15, x25);
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_u1 = 0;
> +     let (x42, x43) = fiat_p384_addcarryx_u32(x41, x17, x25);
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_u1 = 0;
> +     let (x44, x45) = fiat_p384_addcarryx_u32(x43, x19, x25);
> +-    let mut x46: u32 = 0;
> +-    let mut x47: fiat_p384_u1 = 0;
> +     let (x46, x47) = fiat_p384_addcarryx_u32(x45, x21, x25);
> +-    let mut x48: u32 = 0;
> +-    let mut x49: fiat_p384_u1 = 0;
> +     let (x48, x49) = fiat_p384_addcarryx_u32(x47, x23, x25);
> +     out1[0] = x26;
> +     out1[1] = x28;
> +@@ -5501,1551 +2101,551 @@ pub const fn fiat_p384_from_montgomery(
> + ) -> fiat_p384_non_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_non_montgomery_domain_field_element = [0; 12];
> +     let x1: u32 = (arg1[0]);
> +-    let mut x2: u32 = 0;
> +-    let mut x3: u32 = 0;
> +     let (x2, x3) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x4: u32 = 0;
> +-    let mut x5: u32 = 0;
> +     let (x4, x5) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x6: u32 = 0;
> +-    let mut x7: u32 = 0;
> +     let (x6, x7) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x8: u32 = 0;
> +-    let mut x9: u32 = 0;
> +     let (x8, x9) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x10: u32 = 0;
> +-    let mut x11: u32 = 0;
> +     let (x10, x11) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x12: u32 = 0;
> +-    let mut x13: u32 = 0;
> +     let (x12, x13) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x14: u32 = 0;
> +-    let mut x15: u32 = 0;
> +     let (x14, x15) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x16: u32 = 0;
> +-    let mut x17: u32 = 0;
> +     let (x16, x17) = fiat_p384_mulx_u32(x1, 0xfffffffe);
> +-    let mut x18: u32 = 0;
> +-    let mut x19: u32 = 0;
> +     let (x18, x19) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x20: u32 = 0;
> +-    let mut x21: u32 = 0;
> +     let (x20, x21) = fiat_p384_mulx_u32(x1, 0xffffffff);
> +-    let mut x22: u32 = 0;
> +-    let mut x23: fiat_p384_u1 = 0;
> +     let (x22, x23) = fiat_p384_addcarryx_u32(0x0, x19, x16);
> +-    let mut x24: u32 = 0;
> +-    let mut x25: fiat_p384_u1 = 0;
> +     let (x24, x25) = fiat_p384_addcarryx_u32(x23, x17, x14);
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_u1 = 0;
> +     let (x26, x27) = fiat_p384_addcarryx_u32(x25, x15, x12);
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_u1 = 0;
> +     let (x28, x29) = fiat_p384_addcarryx_u32(x27, x13, x10);
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_u1 = 0;
> +     let (x30, x31) = fiat_p384_addcarryx_u32(x29, x11, x8);
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_u1 = 0;
> +     let (x32, x33) = fiat_p384_addcarryx_u32(x31, x9, x6);
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_u1 = 0;
> +     let (x34, x35) = fiat_p384_addcarryx_u32(x33, x7, x4);
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_u1 = 0;
> +     let (x36, x37) = fiat_p384_addcarryx_u32(x35, x5, x2);
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_u1 = 0;
> +     let (x38, x39) = fiat_p384_addcarryx_u32(0x0, x1, x20);
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_u1 = 0;
> +     let (x40, x41) = fiat_p384_addcarryx_u32(0x0, ((x39 as u32) + x21), (arg1[1]));
> +-    let mut x42: u32 = 0;
> +-    let mut x43: u32 = 0;
> +     let (x42, x43) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x44: u32 = 0;
> +-    let mut x45: u32 = 0;
> +     let (x44, x45) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x46: u32 = 0;
> +-    let mut x47: u32 = 0;
> +     let (x46, x47) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x48: u32 = 0;
> +-    let mut x49: u32 = 0;
> +     let (x48, x49) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x50: u32 = 0;
> +-    let mut x51: u32 = 0;
> +     let (x50, x51) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x52: u32 = 0;
> +-    let mut x53: u32 = 0;
> +     let (x52, x53) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x54: u32 = 0;
> +-    let mut x55: u32 = 0;
> +     let (x54, x55) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x56: u32 = 0;
> +-    let mut x57: u32 = 0;
> +     let (x56, x57) = fiat_p384_mulx_u32(x40, 0xfffffffe);
> +-    let mut x58: u32 = 0;
> +-    let mut x59: u32 = 0;
> +     let (x58, x59) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x60: u32 = 0;
> +-    let mut x61: u32 = 0;
> +     let (x60, x61) = fiat_p384_mulx_u32(x40, 0xffffffff);
> +-    let mut x62: u32 = 0;
> +-    let mut x63: fiat_p384_u1 = 0;
> +     let (x62, x63) = fiat_p384_addcarryx_u32(0x0, x59, x56);
> +-    let mut x64: u32 = 0;
> +-    let mut x65: fiat_p384_u1 = 0;
> +     let (x64, x65) = fiat_p384_addcarryx_u32(x63, x57, x54);
> +-    let mut x66: u32 = 0;
> +-    let mut x67: fiat_p384_u1 = 0;
> +     let (x66, x67) = fiat_p384_addcarryx_u32(x65, x55, x52);
> +-    let mut x68: u32 = 0;
> +-    let mut x69: fiat_p384_u1 = 0;
> +     let (x68, x69) = fiat_p384_addcarryx_u32(x67, x53, x50);
> +-    let mut x70: u32 = 0;
> +-    let mut x71: fiat_p384_u1 = 0;
> +     let (x70, x71) = fiat_p384_addcarryx_u32(x69, x51, x48);
> +-    let mut x72: u32 = 0;
> +-    let mut x73: fiat_p384_u1 = 0;
> +     let (x72, x73) = fiat_p384_addcarryx_u32(x71, x49, x46);
> +-    let mut x74: u32 = 0;
> +-    let mut x75: fiat_p384_u1 = 0;
> +     let (x74, x75) = fiat_p384_addcarryx_u32(x73, x47, x44);
> +-    let mut x76: u32 = 0;
> +-    let mut x77: fiat_p384_u1 = 0;
> +     let (x76, x77) = fiat_p384_addcarryx_u32(x75, x45, x42);
> +-    let mut x78: u32 = 0;
> +-    let mut x79: fiat_p384_u1 = 0;
> +     let (x78, x79) = fiat_p384_addcarryx_u32(0x0, x40, x60);
> +-    let mut x80: u32 = 0;
> +-    let mut x81: fiat_p384_u1 = 0;
> +     let (x80, x81) = fiat_p384_addcarryx_u32(x79, (x41 as u32), x61);
> +-    let mut x82: u32 = 0;
> +-    let mut x83: fiat_p384_u1 = 0;
> +     let (x82, x83) = fiat_p384_addcarryx_u32(x81, x18, (0x0 as u32));
> +-    let mut x84: u32 = 0;
> +-    let mut x85: fiat_p384_u1 = 0;
> +     let (x84, x85) = fiat_p384_addcarryx_u32(x83, x22, x58);
> +-    let mut x86: u32 = 0;
> +-    let mut x87: fiat_p384_u1 = 0;
> +     let (x86, x87) = fiat_p384_addcarryx_u32(x85, x24, x62);
> +-    let mut x88: u32 = 0;
> +-    let mut x89: fiat_p384_u1 = 0;
> +     let (x88, x89) = fiat_p384_addcarryx_u32(x87, x26, x64);
> +-    let mut x90: u32 = 0;
> +-    let mut x91: fiat_p384_u1 = 0;
> +     let (x90, x91) = fiat_p384_addcarryx_u32(x89, x28, x66);
> +-    let mut x92: u32 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u32(x91, x30, x68);
> +-    let mut x94: u32 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u32(x93, x32, x70);
> +-    let mut x96: u32 = 0;
> +-    let mut x97: fiat_p384_u1 = 0;
> +     let (x96, x97) = fiat_p384_addcarryx_u32(x95, x34, x72);
> +-    let mut x98: u32 = 0;
> +-    let mut x99: fiat_p384_u1 = 0;
> +     let (x98, x99) = fiat_p384_addcarryx_u32(x97, x36, x74);
> +-    let mut x100: u32 = 0;
> +-    let mut x101: fiat_p384_u1 = 0;
> +     let (x100, x101) = fiat_p384_addcarryx_u32(x99, ((x37 as u32) + x3), x76);
> +-    let mut x102: u32 = 0;
> +-    let mut x103: fiat_p384_u1 = 0;
> +     let (x102, x103) = fiat_p384_addcarryx_u32(x101, (0x0 as u32), ((x77 as u32) + x43));
> +-    let mut x104: u32 = 0;
> +-    let mut x105: fiat_p384_u1 = 0;
> +     let (x104, x105) = fiat_p384_addcarryx_u32(0x0, x80, (arg1[2]));
> +-    let mut x106: u32 = 0;
> +-    let mut x107: fiat_p384_u1 = 0;
> +     let (x106, x107) = fiat_p384_addcarryx_u32(x105, x82, (0x0 as u32));
> +-    let mut x108: u32 = 0;
> +-    let mut x109: fiat_p384_u1 = 0;
> +     let (x108, x109) = fiat_p384_addcarryx_u32(x107, x84, (0x0 as u32));
> +-    let mut x110: u32 = 0;
> +-    let mut x111: fiat_p384_u1 = 0;
> +     let (x110, x111) = fiat_p384_addcarryx_u32(x109, x86, (0x0 as u32));
> +-    let mut x112: u32 = 0;
> +-    let mut x113: fiat_p384_u1 = 0;
> +     let (x112, x113) = fiat_p384_addcarryx_u32(x111, x88, (0x0 as u32));
> +-    let mut x114: u32 = 0;
> +-    let mut x115: fiat_p384_u1 = 0;
> +     let (x114, x115) = fiat_p384_addcarryx_u32(x113, x90, (0x0 as u32));
> +-    let mut x116: u32 = 0;
> +-    let mut x117: fiat_p384_u1 = 0;
> +     let (x116, x117) = fiat_p384_addcarryx_u32(x115, x92, (0x0 as u32));
> +-    let mut x118: u32 = 0;
> +-    let mut x119: fiat_p384_u1 = 0;
> +     let (x118, x119) = fiat_p384_addcarryx_u32(x117, x94, (0x0 as u32));
> +-    let mut x120: u32 = 0;
> +-    let mut x121: fiat_p384_u1 = 0;
> +     let (x120, x121) = fiat_p384_addcarryx_u32(x119, x96, (0x0 as u32));
> +-    let mut x122: u32 = 0;
> +-    let mut x123: fiat_p384_u1 = 0;
> +     let (x122, x123) = fiat_p384_addcarryx_u32(x121, x98, (0x0 as u32));
> +-    let mut x124: u32 = 0;
> +-    let mut x125: fiat_p384_u1 = 0;
> +     let (x124, x125) = fiat_p384_addcarryx_u32(x123, x100, (0x0 as u32));
> +-    let mut x126: u32 = 0;
> +-    let mut x127: fiat_p384_u1 = 0;
> +     let (x126, x127) = fiat_p384_addcarryx_u32(x125, x102, (0x0 as u32));
> +-    let mut x128: u32 = 0;
> +-    let mut x129: u32 = 0;
> +     let (x128, x129) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x130: u32 = 0;
> +-    let mut x131: u32 = 0;
> +     let (x130, x131) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x132: u32 = 0;
> +-    let mut x133: u32 = 0;
> +     let (x132, x133) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x134: u32 = 0;
> +-    let mut x135: u32 = 0;
> +     let (x134, x135) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x136: u32 = 0;
> +-    let mut x137: u32 = 0;
> +     let (x136, x137) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x138: u32 = 0;
> +-    let mut x139: u32 = 0;
> +     let (x138, x139) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x140: u32 = 0;
> +-    let mut x141: u32 = 0;
> +     let (x140, x141) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x142: u32 = 0;
> +-    let mut x143: u32 = 0;
> +     let (x142, x143) = fiat_p384_mulx_u32(x104, 0xfffffffe);
> +-    let mut x144: u32 = 0;
> +-    let mut x145: u32 = 0;
> +     let (x144, x145) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x146: u32 = 0;
> +-    let mut x147: u32 = 0;
> +     let (x146, x147) = fiat_p384_mulx_u32(x104, 0xffffffff);
> +-    let mut x148: u32 = 0;
> +-    let mut x149: fiat_p384_u1 = 0;
> +     let (x148, x149) = fiat_p384_addcarryx_u32(0x0, x145, x142);
> +-    let mut x150: u32 = 0;
> +-    let mut x151: fiat_p384_u1 = 0;
> +     let (x150, x151) = fiat_p384_addcarryx_u32(x149, x143, x140);
> +-    let mut x152: u32 = 0;
> +-    let mut x153: fiat_p384_u1 = 0;
> +     let (x152, x153) = fiat_p384_addcarryx_u32(x151, x141, x138);
> +-    let mut x154: u32 = 0;
> +-    let mut x155: fiat_p384_u1 = 0;
> +     let (x154, x155) = fiat_p384_addcarryx_u32(x153, x139, x136);
> +-    let mut x156: u32 = 0;
> +-    let mut x157: fiat_p384_u1 = 0;
> +     let (x156, x157) = fiat_p384_addcarryx_u32(x155, x137, x134);
> +-    let mut x158: u32 = 0;
> +-    let mut x159: fiat_p384_u1 = 0;
> +     let (x158, x159) = fiat_p384_addcarryx_u32(x157, x135, x132);
> +-    let mut x160: u32 = 0;
> +-    let mut x161: fiat_p384_u1 = 0;
> +     let (x160, x161) = fiat_p384_addcarryx_u32(x159, x133, x130);
> +-    let mut x162: u32 = 0;
> +-    let mut x163: fiat_p384_u1 = 0;
> +     let (x162, x163) = fiat_p384_addcarryx_u32(x161, x131, x128);
> +-    let mut x164: u32 = 0;
> +-    let mut x165: fiat_p384_u1 = 0;
> +     let (x164, x165) = fiat_p384_addcarryx_u32(0x0, x104, x146);
> +-    let mut x166: u32 = 0;
> +-    let mut x167: fiat_p384_u1 = 0;
> +     let (x166, x167) = fiat_p384_addcarryx_u32(x165, x106, x147);
> +-    let mut x168: u32 = 0;
> +-    let mut x169: fiat_p384_u1 = 0;
> +     let (x168, x169) = fiat_p384_addcarryx_u32(x167, x108, (0x0 as u32));
> +-    let mut x170: u32 = 0;
> +-    let mut x171: fiat_p384_u1 = 0;
> +     let (x170, x171) = fiat_p384_addcarryx_u32(x169, x110, x144);
> +-    let mut x172: u32 = 0;
> +-    let mut x173: fiat_p384_u1 = 0;
> +     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x112, x148);
> +-    let mut x174: u32 = 0;
> +-    let mut x175: fiat_p384_u1 = 0;
> +     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x114, x150);
> +-    let mut x176: u32 = 0;
> +-    let mut x177: fiat_p384_u1 = 0;
> +     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x116, x152);
> +-    let mut x178: u32 = 0;
> +-    let mut x179: fiat_p384_u1 = 0;
> +     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x118, x154);
> +-    let mut x180: u32 = 0;
> +-    let mut x181: fiat_p384_u1 = 0;
> +     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x120, x156);
> +-    let mut x182: u32 = 0;
> +-    let mut x183: fiat_p384_u1 = 0;
> +     let (x182, x183) = fiat_p384_addcarryx_u32(x181, x122, x158);
> +-    let mut x184: u32 = 0;
> +-    let mut x185: fiat_p384_u1 = 0;
> +     let (x184, x185) = fiat_p384_addcarryx_u32(x183, x124, x160);
> +-    let mut x186: u32 = 0;
> +-    let mut x187: fiat_p384_u1 = 0;
> +     let (x186, x187) = fiat_p384_addcarryx_u32(x185, x126, x162);
> +-    let mut x188: u32 = 0;
> +-    let mut x189: fiat_p384_u1 = 0;
> +     let (x188, x189) = fiat_p384_addcarryx_u32(
> +         x187,
> +         ((x127 as u32) + (x103 as u32)),
> +         ((x163 as u32) + x129),
> +     );
> +-    let mut x190: u32 = 0;
> +-    let mut x191: fiat_p384_u1 = 0;
> +     let (x190, x191) = fiat_p384_addcarryx_u32(0x0, x166, (arg1[3]));
> +-    let mut x192: u32 = 0;
> +-    let mut x193: fiat_p384_u1 = 0;
> +     let (x192, x193) = fiat_p384_addcarryx_u32(x191, x168, (0x0 as u32));
> +-    let mut x194: u32 = 0;
> +-    let mut x195: fiat_p384_u1 = 0;
> +     let (x194, x195) = fiat_p384_addcarryx_u32(x193, x170, (0x0 as u32));
> +-    let mut x196: u32 = 0;
> +-    let mut x197: fiat_p384_u1 = 0;
> +     let (x196, x197) = fiat_p384_addcarryx_u32(x195, x172, (0x0 as u32));
> +-    let mut x198: u32 = 0;
> +-    let mut x199: fiat_p384_u1 = 0;
> +     let (x198, x199) = fiat_p384_addcarryx_u32(x197, x174, (0x0 as u32));
> +-    let mut x200: u32 = 0;
> +-    let mut x201: fiat_p384_u1 = 0;
> +     let (x200, x201) = fiat_p384_addcarryx_u32(x199, x176, (0x0 as u32));
> +-    let mut x202: u32 = 0;
> +-    let mut x203: fiat_p384_u1 = 0;
> +     let (x202, x203) = fiat_p384_addcarryx_u32(x201, x178, (0x0 as u32));
> +-    let mut x204: u32 = 0;
> +-    let mut x205: fiat_p384_u1 = 0;
> +     let (x204, x205) = fiat_p384_addcarryx_u32(x203, x180, (0x0 as u32));
> +-    let mut x206: u32 = 0;
> +-    let mut x207: fiat_p384_u1 = 0;
> +     let (x206, x207) = fiat_p384_addcarryx_u32(x205, x182, (0x0 as u32));
> +-    let mut x208: u32 = 0;
> +-    let mut x209: fiat_p384_u1 = 0;
> +     let (x208, x209) = fiat_p384_addcarryx_u32(x207, x184, (0x0 as u32));
> +-    let mut x210: u32 = 0;
> +-    let mut x211: fiat_p384_u1 = 0;
> +     let (x210, x211) = fiat_p384_addcarryx_u32(x209, x186, (0x0 as u32));
> +-    let mut x212: u32 = 0;
> +-    let mut x213: fiat_p384_u1 = 0;
> +     let (x212, x213) = fiat_p384_addcarryx_u32(x211, x188, (0x0 as u32));
> +-    let mut x214: u32 = 0;
> +-    let mut x215: u32 = 0;
> +     let (x214, x215) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: u32 = 0;
> +     let (x216, x217) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: u32 = 0;
> +     let (x218, x219) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: u32 = 0;
> +     let (x220, x221) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: u32 = 0;
> +     let (x222, x223) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: u32 = 0;
> +     let (x224, x225) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: u32 = 0;
> +     let (x226, x227) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: u32 = 0;
> +     let (x228, x229) = fiat_p384_mulx_u32(x190, 0xfffffffe);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: u32 = 0;
> +     let (x230, x231) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x232: u32 = 0;
> +-    let mut x233: u32 = 0;
> +     let (x232, x233) = fiat_p384_mulx_u32(x190, 0xffffffff);
> +-    let mut x234: u32 = 0;
> +-    let mut x235: fiat_p384_u1 = 0;
> +     let (x234, x235) = fiat_p384_addcarryx_u32(0x0, x231, x228);
> +-    let mut x236: u32 = 0;
> +-    let mut x237: fiat_p384_u1 = 0;
> +     let (x236, x237) = fiat_p384_addcarryx_u32(x235, x229, x226);
> +-    let mut x238: u32 = 0;
> +-    let mut x239: fiat_p384_u1 = 0;
> +     let (x238, x239) = fiat_p384_addcarryx_u32(x237, x227, x224);
> +-    let mut x240: u32 = 0;
> +-    let mut x241: fiat_p384_u1 = 0;
> +     let (x240, x241) = fiat_p384_addcarryx_u32(x239, x225, x222);
> +-    let mut x242: u32 = 0;
> +-    let mut x243: fiat_p384_u1 = 0;
> +     let (x242, x243) = fiat_p384_addcarryx_u32(x241, x223, x220);
> +-    let mut x244: u32 = 0;
> +-    let mut x245: fiat_p384_u1 = 0;
> +     let (x244, x245) = fiat_p384_addcarryx_u32(x243, x221, x218);
> +-    let mut x246: u32 = 0;
> +-    let mut x247: fiat_p384_u1 = 0;
> +     let (x246, x247) = fiat_p384_addcarryx_u32(x245, x219, x216);
> +-    let mut x248: u32 = 0;
> +-    let mut x249: fiat_p384_u1 = 0;
> +     let (x248, x249) = fiat_p384_addcarryx_u32(x247, x217, x214);
> +-    let mut x250: u32 = 0;
> +-    let mut x251: fiat_p384_u1 = 0;
> +     let (x250, x251) = fiat_p384_addcarryx_u32(0x0, x190, x232);
> +-    let mut x252: u32 = 0;
> +-    let mut x253: fiat_p384_u1 = 0;
> +     let (x252, x253) = fiat_p384_addcarryx_u32(x251, x192, x233);
> +-    let mut x254: u32 = 0;
> +-    let mut x255: fiat_p384_u1 = 0;
> +     let (x254, x255) = fiat_p384_addcarryx_u32(x253, x194, (0x0 as u32));
> +-    let mut x256: u32 = 0;
> +-    let mut x257: fiat_p384_u1 = 0;
> +     let (x256, x257) = fiat_p384_addcarryx_u32(x255, x196, x230);
> +-    let mut x258: u32 = 0;
> +-    let mut x259: fiat_p384_u1 = 0;
> +     let (x258, x259) = fiat_p384_addcarryx_u32(x257, x198, x234);
> +-    let mut x260: u32 = 0;
> +-    let mut x261: fiat_p384_u1 = 0;
> +     let (x260, x261) = fiat_p384_addcarryx_u32(x259, x200, x236);
> +-    let mut x262: u32 = 0;
> +-    let mut x263: fiat_p384_u1 = 0;
> +     let (x262, x263) = fiat_p384_addcarryx_u32(x261, x202, x238);
> +-    let mut x264: u32 = 0;
> +-    let mut x265: fiat_p384_u1 = 0;
> +     let (x264, x265) = fiat_p384_addcarryx_u32(x263, x204, x240);
> +-    let mut x266: u32 = 0;
> +-    let mut x267: fiat_p384_u1 = 0;
> +     let (x266, x267) = fiat_p384_addcarryx_u32(x265, x206, x242);
> +-    let mut x268: u32 = 0;
> +-    let mut x269: fiat_p384_u1 = 0;
> +     let (x268, x269) = fiat_p384_addcarryx_u32(x267, x208, x244);
> +-    let mut x270: u32 = 0;
> +-    let mut x271: fiat_p384_u1 = 0;
> +     let (x270, x271) = fiat_p384_addcarryx_u32(x269, x210, x246);
> +-    let mut x272: u32 = 0;
> +-    let mut x273: fiat_p384_u1 = 0;
> +     let (x272, x273) = fiat_p384_addcarryx_u32(x271, x212, x248);
> +-    let mut x274: u32 = 0;
> +-    let mut x275: fiat_p384_u1 = 0;
> +     let (x274, x275) = fiat_p384_addcarryx_u32(
> +         x273,
> +         ((x213 as u32) + (x189 as u32)),
> +         ((x249 as u32) + x215),
> +     );
> +-    let mut x276: u32 = 0;
> +-    let mut x277: fiat_p384_u1 = 0;
> +     let (x276, x277) = fiat_p384_addcarryx_u32(0x0, x252, (arg1[4]));
> +-    let mut x278: u32 = 0;
> +-    let mut x279: fiat_p384_u1 = 0;
> +     let (x278, x279) = fiat_p384_addcarryx_u32(x277, x254, (0x0 as u32));
> +-    let mut x280: u32 = 0;
> +-    let mut x281: fiat_p384_u1 = 0;
> +     let (x280, x281) = fiat_p384_addcarryx_u32(x279, x256, (0x0 as u32));
> +-    let mut x282: u32 = 0;
> +-    let mut x283: fiat_p384_u1 = 0;
> +     let (x282, x283) = fiat_p384_addcarryx_u32(x281, x258, (0x0 as u32));
> +-    let mut x284: u32 = 0;
> +-    let mut x285: fiat_p384_u1 = 0;
> +     let (x284, x285) = fiat_p384_addcarryx_u32(x283, x260, (0x0 as u32));
> +-    let mut x286: u32 = 0;
> +-    let mut x287: fiat_p384_u1 = 0;
> +     let (x286, x287) = fiat_p384_addcarryx_u32(x285, x262, (0x0 as u32));
> +-    let mut x288: u32 = 0;
> +-    let mut x289: fiat_p384_u1 = 0;
> +     let (x288, x289) = fiat_p384_addcarryx_u32(x287, x264, (0x0 as u32));
> +-    let mut x290: u32 = 0;
> +-    let mut x291: fiat_p384_u1 = 0;
> +     let (x290, x291) = fiat_p384_addcarryx_u32(x289, x266, (0x0 as u32));
> +-    let mut x292: u32 = 0;
> +-    let mut x293: fiat_p384_u1 = 0;
> +     let (x292, x293) = fiat_p384_addcarryx_u32(x291, x268, (0x0 as u32));
> +-    let mut x294: u32 = 0;
> +-    let mut x295: fiat_p384_u1 = 0;
> +     let (x294, x295) = fiat_p384_addcarryx_u32(x293, x270, (0x0 as u32));
> +-    let mut x296: u32 = 0;
> +-    let mut x297: fiat_p384_u1 = 0;
> +     let (x296, x297) = fiat_p384_addcarryx_u32(x295, x272, (0x0 as u32));
> +-    let mut x298: u32 = 0;
> +-    let mut x299: fiat_p384_u1 = 0;
> +     let (x298, x299) = fiat_p384_addcarryx_u32(x297, x274, (0x0 as u32));
> +-    let mut x300: u32 = 0;
> +-    let mut x301: u32 = 0;
> +     let (x300, x301) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x302: u32 = 0;
> +-    let mut x303: u32 = 0;
> +     let (x302, x303) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x304: u32 = 0;
> +-    let mut x305: u32 = 0;
> +     let (x304, x305) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x306: u32 = 0;
> +-    let mut x307: u32 = 0;
> +     let (x306, x307) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x308: u32 = 0;
> +-    let mut x309: u32 = 0;
> +     let (x308, x309) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x310: u32 = 0;
> +-    let mut x311: u32 = 0;
> +     let (x310, x311) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x312: u32 = 0;
> +-    let mut x313: u32 = 0;
> +     let (x312, x313) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x314: u32 = 0;
> +-    let mut x315: u32 = 0;
> +     let (x314, x315) = fiat_p384_mulx_u32(x276, 0xfffffffe);
> +-    let mut x316: u32 = 0;
> +-    let mut x317: u32 = 0;
> +     let (x316, x317) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x318: u32 = 0;
> +-    let mut x319: u32 = 0;
> +     let (x318, x319) = fiat_p384_mulx_u32(x276, 0xffffffff);
> +-    let mut x320: u32 = 0;
> +-    let mut x321: fiat_p384_u1 = 0;
> +     let (x320, x321) = fiat_p384_addcarryx_u32(0x0, x317, x314);
> +-    let mut x322: u32 = 0;
> +-    let mut x323: fiat_p384_u1 = 0;
> +     let (x322, x323) = fiat_p384_addcarryx_u32(x321, x315, x312);
> +-    let mut x324: u32 = 0;
> +-    let mut x325: fiat_p384_u1 = 0;
> +     let (x324, x325) = fiat_p384_addcarryx_u32(x323, x313, x310);
> +-    let mut x326: u32 = 0;
> +-    let mut x327: fiat_p384_u1 = 0;
> +     let (x326, x327) = fiat_p384_addcarryx_u32(x325, x311, x308);
> +-    let mut x328: u32 = 0;
> +-    let mut x329: fiat_p384_u1 = 0;
> +     let (x328, x329) = fiat_p384_addcarryx_u32(x327, x309, x306);
> +-    let mut x330: u32 = 0;
> +-    let mut x331: fiat_p384_u1 = 0;
> +     let (x330, x331) = fiat_p384_addcarryx_u32(x329, x307, x304);
> +-    let mut x332: u32 = 0;
> +-    let mut x333: fiat_p384_u1 = 0;
> +     let (x332, x333) = fiat_p384_addcarryx_u32(x331, x305, x302);
> +-    let mut x334: u32 = 0;
> +-    let mut x335: fiat_p384_u1 = 0;
> +     let (x334, x335) = fiat_p384_addcarryx_u32(x333, x303, x300);
> +-    let mut x336: u32 = 0;
> +-    let mut x337: fiat_p384_u1 = 0;
> +     let (x336, x337) = fiat_p384_addcarryx_u32(0x0, x276, x318);
> +-    let mut x338: u32 = 0;
> +-    let mut x339: fiat_p384_u1 = 0;
> +     let (x338, x339) = fiat_p384_addcarryx_u32(x337, x278, x319);
> +-    let mut x340: u32 = 0;
> +-    let mut x341: fiat_p384_u1 = 0;
> +     let (x340, x341) = fiat_p384_addcarryx_u32(x339, x280, (0x0 as u32));
> +-    let mut x342: u32 = 0;
> +-    let mut x343: fiat_p384_u1 = 0;
> +     let (x342, x343) = fiat_p384_addcarryx_u32(x341, x282, x316);
> +-    let mut x344: u32 = 0;
> +-    let mut x345: fiat_p384_u1 = 0;
> +     let (x344, x345) = fiat_p384_addcarryx_u32(x343, x284, x320);
> +-    let mut x346: u32 = 0;
> +-    let mut x347: fiat_p384_u1 = 0;
> +     let (x346, x347) = fiat_p384_addcarryx_u32(x345, x286, x322);
> +-    let mut x348: u32 = 0;
> +-    let mut x349: fiat_p384_u1 = 0;
> +     let (x348, x349) = fiat_p384_addcarryx_u32(x347, x288, x324);
> +-    let mut x350: u32 = 0;
> +-    let mut x351: fiat_p384_u1 = 0;
> +     let (x350, x351) = fiat_p384_addcarryx_u32(x349, x290, x326);
> +-    let mut x352: u32 = 0;
> +-    let mut x353: fiat_p384_u1 = 0;
> +     let (x352, x353) = fiat_p384_addcarryx_u32(x351, x292, x328);
> +-    let mut x354: u32 = 0;
> +-    let mut x355: fiat_p384_u1 = 0;
> +     let (x354, x355) = fiat_p384_addcarryx_u32(x353, x294, x330);
> +-    let mut x356: u32 = 0;
> +-    let mut x357: fiat_p384_u1 = 0;
> +     let (x356, x357) = fiat_p384_addcarryx_u32(x355, x296, x332);
> +-    let mut x358: u32 = 0;
> +-    let mut x359: fiat_p384_u1 = 0;
> +     let (x358, x359) = fiat_p384_addcarryx_u32(x357, x298, x334);
> +-    let mut x360: u32 = 0;
> +-    let mut x361: fiat_p384_u1 = 0;
> +     let (x360, x361) = fiat_p384_addcarryx_u32(
> +         x359,
> +         ((x299 as u32) + (x275 as u32)),
> +         ((x335 as u32) + x301),
> +     );
> +-    let mut x362: u32 = 0;
> +-    let mut x363: fiat_p384_u1 = 0;
> +     let (x362, x363) = fiat_p384_addcarryx_u32(0x0, x338, (arg1[5]));
> +-    let mut x364: u32 = 0;
> +-    let mut x365: fiat_p384_u1 = 0;
> +     let (x364, x365) = fiat_p384_addcarryx_u32(x363, x340, (0x0 as u32));
> +-    let mut x366: u32 = 0;
> +-    let mut x367: fiat_p384_u1 = 0;
> +     let (x366, x367) = fiat_p384_addcarryx_u32(x365, x342, (0x0 as u32));
> +-    let mut x368: u32 = 0;
> +-    let mut x369: fiat_p384_u1 = 0;
> +     let (x368, x369) = fiat_p384_addcarryx_u32(x367, x344, (0x0 as u32));
> +-    let mut x370: u32 = 0;
> +-    let mut x371: fiat_p384_u1 = 0;
> +     let (x370, x371) = fiat_p384_addcarryx_u32(x369, x346, (0x0 as u32));
> +-    let mut x372: u32 = 0;
> +-    let mut x373: fiat_p384_u1 = 0;
> +     let (x372, x373) = fiat_p384_addcarryx_u32(x371, x348, (0x0 as u32));
> +-    let mut x374: u32 = 0;
> +-    let mut x375: fiat_p384_u1 = 0;
> +     let (x374, x375) = fiat_p384_addcarryx_u32(x373, x350, (0x0 as u32));
> +-    let mut x376: u32 = 0;
> +-    let mut x377: fiat_p384_u1 = 0;
> +     let (x376, x377) = fiat_p384_addcarryx_u32(x375, x352, (0x0 as u32));
> +-    let mut x378: u32 = 0;
> +-    let mut x379: fiat_p384_u1 = 0;
> +     let (x378, x379) = fiat_p384_addcarryx_u32(x377, x354, (0x0 as u32));
> +-    let mut x380: u32 = 0;
> +-    let mut x381: fiat_p384_u1 = 0;
> +     let (x380, x381) = fiat_p384_addcarryx_u32(x379, x356, (0x0 as u32));
> +-    let mut x382: u32 = 0;
> +-    let mut x383: fiat_p384_u1 = 0;
> +     let (x382, x383) = fiat_p384_addcarryx_u32(x381, x358, (0x0 as u32));
> +-    let mut x384: u32 = 0;
> +-    let mut x385: fiat_p384_u1 = 0;
> +     let (x384, x385) = fiat_p384_addcarryx_u32(x383, x360, (0x0 as u32));
> +-    let mut x386: u32 = 0;
> +-    let mut x387: u32 = 0;
> +     let (x386, x387) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x388: u32 = 0;
> +-    let mut x389: u32 = 0;
> +     let (x388, x389) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x390: u32 = 0;
> +-    let mut x391: u32 = 0;
> +     let (x390, x391) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x392: u32 = 0;
> +-    let mut x393: u32 = 0;
> +     let (x392, x393) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x394: u32 = 0;
> +-    let mut x395: u32 = 0;
> +     let (x394, x395) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x396: u32 = 0;
> +-    let mut x397: u32 = 0;
> +     let (x396, x397) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x398: u32 = 0;
> +-    let mut x399: u32 = 0;
> +     let (x398, x399) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x400: u32 = 0;
> +-    let mut x401: u32 = 0;
> +     let (x400, x401) = fiat_p384_mulx_u32(x362, 0xfffffffe);
> +-    let mut x402: u32 = 0;
> +-    let mut x403: u32 = 0;
> +     let (x402, x403) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x404: u32 = 0;
> +-    let mut x405: u32 = 0;
> +     let (x404, x405) = fiat_p384_mulx_u32(x362, 0xffffffff);
> +-    let mut x406: u32 = 0;
> +-    let mut x407: fiat_p384_u1 = 0;
> +     let (x406, x407) = fiat_p384_addcarryx_u32(0x0, x403, x400);
> +-    let mut x408: u32 = 0;
> +-    let mut x409: fiat_p384_u1 = 0;
> +     let (x408, x409) = fiat_p384_addcarryx_u32(x407, x401, x398);
> +-    let mut x410: u32 = 0;
> +-    let mut x411: fiat_p384_u1 = 0;
> +     let (x410, x411) = fiat_p384_addcarryx_u32(x409, x399, x396);
> +-    let mut x412: u32 = 0;
> +-    let mut x413: fiat_p384_u1 = 0;
> +     let (x412, x413) = fiat_p384_addcarryx_u32(x411, x397, x394);
> +-    let mut x414: u32 = 0;
> +-    let mut x415: fiat_p384_u1 = 0;
> +     let (x414, x415) = fiat_p384_addcarryx_u32(x413, x395, x392);
> +-    let mut x416: u32 = 0;
> +-    let mut x417: fiat_p384_u1 = 0;
> +     let (x416, x417) = fiat_p384_addcarryx_u32(x415, x393, x390);
> +-    let mut x418: u32 = 0;
> +-    let mut x419: fiat_p384_u1 = 0;
> +     let (x418, x419) = fiat_p384_addcarryx_u32(x417, x391, x388);
> +-    let mut x420: u32 = 0;
> +-    let mut x421: fiat_p384_u1 = 0;
> +     let (x420, x421) = fiat_p384_addcarryx_u32(x419, x389, x386);
> +-    let mut x422: u32 = 0;
> +-    let mut x423: fiat_p384_u1 = 0;
> +     let (x422, x423) = fiat_p384_addcarryx_u32(0x0, x362, x404);
> +-    let mut x424: u32 = 0;
> +-    let mut x425: fiat_p384_u1 = 0;
> +     let (x424, x425) = fiat_p384_addcarryx_u32(x423, x364, x405);
> +-    let mut x426: u32 = 0;
> +-    let mut x427: fiat_p384_u1 = 0;
> +     let (x426, x427) = fiat_p384_addcarryx_u32(x425, x366, (0x0 as u32));
> +-    let mut x428: u32 = 0;
> +-    let mut x429: fiat_p384_u1 = 0;
> +     let (x428, x429) = fiat_p384_addcarryx_u32(x427, x368, x402);
> +-    let mut x430: u32 = 0;
> +-    let mut x431: fiat_p384_u1 = 0;
> +     let (x430, x431) = fiat_p384_addcarryx_u32(x429, x370, x406);
> +-    let mut x432: u32 = 0;
> +-    let mut x433: fiat_p384_u1 = 0;
> +     let (x432, x433) = fiat_p384_addcarryx_u32(x431, x372, x408);
> +-    let mut x434: u32 = 0;
> +-    let mut x435: fiat_p384_u1 = 0;
> +     let (x434, x435) = fiat_p384_addcarryx_u32(x433, x374, x410);
> +-    let mut x436: u32 = 0;
> +-    let mut x437: fiat_p384_u1 = 0;
> +     let (x436, x437) = fiat_p384_addcarryx_u32(x435, x376, x412);
> +-    let mut x438: u32 = 0;
> +-    let mut x439: fiat_p384_u1 = 0;
> +     let (x438, x439) = fiat_p384_addcarryx_u32(x437, x378, x414);
> +-    let mut x440: u32 = 0;
> +-    let mut x441: fiat_p384_u1 = 0;
> +     let (x440, x441) = fiat_p384_addcarryx_u32(x439, x380, x416);
> +-    let mut x442: u32 = 0;
> +-    let mut x443: fiat_p384_u1 = 0;
> +     let (x442, x443) = fiat_p384_addcarryx_u32(x441, x382, x418);
> +-    let mut x444: u32 = 0;
> +-    let mut x445: fiat_p384_u1 = 0;
> +     let (x444, x445) = fiat_p384_addcarryx_u32(x443, x384, x420);
> +-    let mut x446: u32 = 0;
> +-    let mut x447: fiat_p384_u1 = 0;
> +     let (x446, x447) = fiat_p384_addcarryx_u32(
> +         x445,
> +         ((x385 as u32) + (x361 as u32)),
> +         ((x421 as u32) + x387),
> +     );
> +-    let mut x448: u32 = 0;
> +-    let mut x449: fiat_p384_u1 = 0;
> +     let (x448, x449) = fiat_p384_addcarryx_u32(0x0, x424, (arg1[6]));
> +-    let mut x450: u32 = 0;
> +-    let mut x451: fiat_p384_u1 = 0;
> +     let (x450, x451) = fiat_p384_addcarryx_u32(x449, x426, (0x0 as u32));
> +-    let mut x452: u32 = 0;
> +-    let mut x453: fiat_p384_u1 = 0;
> +     let (x452, x453) = fiat_p384_addcarryx_u32(x451, x428, (0x0 as u32));
> +-    let mut x454: u32 = 0;
> +-    let mut x455: fiat_p384_u1 = 0;
> +     let (x454, x455) = fiat_p384_addcarryx_u32(x453, x430, (0x0 as u32));
> +-    let mut x456: u32 = 0;
> +-    let mut x457: fiat_p384_u1 = 0;
> +     let (x456, x457) = fiat_p384_addcarryx_u32(x455, x432, (0x0 as u32));
> +-    let mut x458: u32 = 0;
> +-    let mut x459: fiat_p384_u1 = 0;
> +     let (x458, x459) = fiat_p384_addcarryx_u32(x457, x434, (0x0 as u32));
> +-    let mut x460: u32 = 0;
> +-    let mut x461: fiat_p384_u1 = 0;
> +     let (x460, x461) = fiat_p384_addcarryx_u32(x459, x436, (0x0 as u32));
> +-    let mut x462: u32 = 0;
> +-    let mut x463: fiat_p384_u1 = 0;
> +     let (x462, x463) = fiat_p384_addcarryx_u32(x461, x438, (0x0 as u32));
> +-    let mut x464: u32 = 0;
> +-    let mut x465: fiat_p384_u1 = 0;
> +     let (x464, x465) = fiat_p384_addcarryx_u32(x463, x440, (0x0 as u32));
> +-    let mut x466: u32 = 0;
> +-    let mut x467: fiat_p384_u1 = 0;
> +     let (x466, x467) = fiat_p384_addcarryx_u32(x465, x442, (0x0 as u32));
> +-    let mut x468: u32 = 0;
> +-    let mut x469: fiat_p384_u1 = 0;
> +     let (x468, x469) = fiat_p384_addcarryx_u32(x467, x444, (0x0 as u32));
> +-    let mut x470: u32 = 0;
> +-    let mut x471: fiat_p384_u1 = 0;
> +     let (x470, x471) = fiat_p384_addcarryx_u32(x469, x446, (0x0 as u32));
> +-    let mut x472: u32 = 0;
> +-    let mut x473: u32 = 0;
> +     let (x472, x473) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x474: u32 = 0;
> +-    let mut x475: u32 = 0;
> +     let (x474, x475) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x476: u32 = 0;
> +-    let mut x477: u32 = 0;
> +     let (x476, x477) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x478: u32 = 0;
> +-    let mut x479: u32 = 0;
> +     let (x478, x479) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x480: u32 = 0;
> +-    let mut x481: u32 = 0;
> +     let (x480, x481) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x482: u32 = 0;
> +-    let mut x483: u32 = 0;
> +     let (x482, x483) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x484: u32 = 0;
> +-    let mut x485: u32 = 0;
> +     let (x484, x485) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x486: u32 = 0;
> +-    let mut x487: u32 = 0;
> +     let (x486, x487) = fiat_p384_mulx_u32(x448, 0xfffffffe);
> +-    let mut x488: u32 = 0;
> +-    let mut x489: u32 = 0;
> +     let (x488, x489) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x490: u32 = 0;
> +-    let mut x491: u32 = 0;
> +     let (x490, x491) = fiat_p384_mulx_u32(x448, 0xffffffff);
> +-    let mut x492: u32 = 0;
> +-    let mut x493: fiat_p384_u1 = 0;
> +     let (x492, x493) = fiat_p384_addcarryx_u32(0x0, x489, x486);
> +-    let mut x494: u32 = 0;
> +-    let mut x495: fiat_p384_u1 = 0;
> +     let (x494, x495) = fiat_p384_addcarryx_u32(x493, x487, x484);
> +-    let mut x496: u32 = 0;
> +-    let mut x497: fiat_p384_u1 = 0;
> +     let (x496, x497) = fiat_p384_addcarryx_u32(x495, x485, x482);
> +-    let mut x498: u32 = 0;
> +-    let mut x499: fiat_p384_u1 = 0;
> +     let (x498, x499) = fiat_p384_addcarryx_u32(x497, x483, x480);
> +-    let mut x500: u32 = 0;
> +-    let mut x501: fiat_p384_u1 = 0;
> +     let (x500, x501) = fiat_p384_addcarryx_u32(x499, x481, x478);
> +-    let mut x502: u32 = 0;
> +-    let mut x503: fiat_p384_u1 = 0;
> +     let (x502, x503) = fiat_p384_addcarryx_u32(x501, x479, x476);
> +-    let mut x504: u32 = 0;
> +-    let mut x505: fiat_p384_u1 = 0;
> +     let (x504, x505) = fiat_p384_addcarryx_u32(x503, x477, x474);
> +-    let mut x506: u32 = 0;
> +-    let mut x507: fiat_p384_u1 = 0;
> +     let (x506, x507) = fiat_p384_addcarryx_u32(x505, x475, x472);
> +-    let mut x508: u32 = 0;
> +-    let mut x509: fiat_p384_u1 = 0;
> +     let (x508, x509) = fiat_p384_addcarryx_u32(0x0, x448, x490);
> +-    let mut x510: u32 = 0;
> +-    let mut x511: fiat_p384_u1 = 0;
> +     let (x510, x511) = fiat_p384_addcarryx_u32(x509, x450, x491);
> +-    let mut x512: u32 = 0;
> +-    let mut x513: fiat_p384_u1 = 0;
> +     let (x512, x513) = fiat_p384_addcarryx_u32(x511, x452, (0x0 as u32));
> +-    let mut x514: u32 = 0;
> +-    let mut x515: fiat_p384_u1 = 0;
> +     let (x514, x515) = fiat_p384_addcarryx_u32(x513, x454, x488);
> +-    let mut x516: u32 = 0;
> +-    let mut x517: fiat_p384_u1 = 0;
> +     let (x516, x517) = fiat_p384_addcarryx_u32(x515, x456, x492);
> +-    let mut x518: u32 = 0;
> +-    let mut x519: fiat_p384_u1 = 0;
> +     let (x518, x519) = fiat_p384_addcarryx_u32(x517, x458, x494);
> +-    let mut x520: u32 = 0;
> +-    let mut x521: fiat_p384_u1 = 0;
> +     let (x520, x521) = fiat_p384_addcarryx_u32(x519, x460, x496);
> +-    let mut x522: u32 = 0;
> +-    let mut x523: fiat_p384_u1 = 0;
> +     let (x522, x523) = fiat_p384_addcarryx_u32(x521, x462, x498);
> +-    let mut x524: u32 = 0;
> +-    let mut x525: fiat_p384_u1 = 0;
> +     let (x524, x525) = fiat_p384_addcarryx_u32(x523, x464, x500);
> +-    let mut x526: u32 = 0;
> +-    let mut x527: fiat_p384_u1 = 0;
> +     let (x526, x527) = fiat_p384_addcarryx_u32(x525, x466, x502);
> +-    let mut x528: u32 = 0;
> +-    let mut x529: fiat_p384_u1 = 0;
> +     let (x528, x529) = fiat_p384_addcarryx_u32(x527, x468, x504);
> +-    let mut x530: u32 = 0;
> +-    let mut x531: fiat_p384_u1 = 0;
> +     let (x530, x531) = fiat_p384_addcarryx_u32(x529, x470, x506);
> +-    let mut x532: u32 = 0;
> +-    let mut x533: fiat_p384_u1 = 0;
> +     let (x532, x533) = fiat_p384_addcarryx_u32(
> +         x531,
> +         ((x471 as u32) + (x447 as u32)),
> +         ((x507 as u32) + x473),
> +     );
> +-    let mut x534: u32 = 0;
> +-    let mut x535: fiat_p384_u1 = 0;
> +     let (x534, x535) = fiat_p384_addcarryx_u32(0x0, x510, (arg1[7]));
> +-    let mut x536: u32 = 0;
> +-    let mut x537: fiat_p384_u1 = 0;
> +     let (x536, x537) = fiat_p384_addcarryx_u32(x535, x512, (0x0 as u32));
> +-    let mut x538: u32 = 0;
> +-    let mut x539: fiat_p384_u1 = 0;
> +     let (x538, x539) = fiat_p384_addcarryx_u32(x537, x514, (0x0 as u32));
> +-    let mut x540: u32 = 0;
> +-    let mut x541: fiat_p384_u1 = 0;
> +     let (x540, x541) = fiat_p384_addcarryx_u32(x539, x516, (0x0 as u32));
> +-    let mut x542: u32 = 0;
> +-    let mut x543: fiat_p384_u1 = 0;
> +     let (x542, x543) = fiat_p384_addcarryx_u32(x541, x518, (0x0 as u32));
> +-    let mut x544: u32 = 0;
> +-    let mut x545: fiat_p384_u1 = 0;
> +     let (x544, x545) = fiat_p384_addcarryx_u32(x543, x520, (0x0 as u32));
> +-    let mut x546: u32 = 0;
> +-    let mut x547: fiat_p384_u1 = 0;
> +     let (x546, x547) = fiat_p384_addcarryx_u32(x545, x522, (0x0 as u32));
> +-    let mut x548: u32 = 0;
> +-    let mut x549: fiat_p384_u1 = 0;
> +     let (x548, x549) = fiat_p384_addcarryx_u32(x547, x524, (0x0 as u32));
> +-    let mut x550: u32 = 0;
> +-    let mut x551: fiat_p384_u1 = 0;
> +     let (x550, x551) = fiat_p384_addcarryx_u32(x549, x526, (0x0 as u32));
> +-    let mut x552: u32 = 0;
> +-    let mut x553: fiat_p384_u1 = 0;
> +     let (x552, x553) = fiat_p384_addcarryx_u32(x551, x528, (0x0 as u32));
> +-    let mut x554: u32 = 0;
> +-    let mut x555: fiat_p384_u1 = 0;
> +     let (x554, x555) = fiat_p384_addcarryx_u32(x553, x530, (0x0 as u32));
> +-    let mut x556: u32 = 0;
> +-    let mut x557: fiat_p384_u1 = 0;
> +     let (x556, x557) = fiat_p384_addcarryx_u32(x555, x532, (0x0 as u32));
> +-    let mut x558: u32 = 0;
> +-    let mut x559: u32 = 0;
> +     let (x558, x559) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x560: u32 = 0;
> +-    let mut x561: u32 = 0;
> +     let (x560, x561) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x562: u32 = 0;
> +-    let mut x563: u32 = 0;
> +     let (x562, x563) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x564: u32 = 0;
> +-    let mut x565: u32 = 0;
> +     let (x564, x565) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x566: u32 = 0;
> +-    let mut x567: u32 = 0;
> +     let (x566, x567) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x568: u32 = 0;
> +-    let mut x569: u32 = 0;
> +     let (x568, x569) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x570: u32 = 0;
> +-    let mut x571: u32 = 0;
> +     let (x570, x571) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x572: u32 = 0;
> +-    let mut x573: u32 = 0;
> +     let (x572, x573) = fiat_p384_mulx_u32(x534, 0xfffffffe);
> +-    let mut x574: u32 = 0;
> +-    let mut x575: u32 = 0;
> +     let (x574, x575) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x576: u32 = 0;
> +-    let mut x577: u32 = 0;
> +     let (x576, x577) = fiat_p384_mulx_u32(x534, 0xffffffff);
> +-    let mut x578: u32 = 0;
> +-    let mut x579: fiat_p384_u1 = 0;
> +     let (x578, x579) = fiat_p384_addcarryx_u32(0x0, x575, x572);
> +-    let mut x580: u32 = 0;
> +-    let mut x581: fiat_p384_u1 = 0;
> +     let (x580, x581) = fiat_p384_addcarryx_u32(x579, x573, x570);
> +-    let mut x582: u32 = 0;
> +-    let mut x583: fiat_p384_u1 = 0;
> +     let (x582, x583) = fiat_p384_addcarryx_u32(x581, x571, x568);
> +-    let mut x584: u32 = 0;
> +-    let mut x585: fiat_p384_u1 = 0;
> +     let (x584, x585) = fiat_p384_addcarryx_u32(x583, x569, x566);
> +-    let mut x586: u32 = 0;
> +-    let mut x587: fiat_p384_u1 = 0;
> +     let (x586, x587) = fiat_p384_addcarryx_u32(x585, x567, x564);
> +-    let mut x588: u32 = 0;
> +-    let mut x589: fiat_p384_u1 = 0;
> +     let (x588, x589) = fiat_p384_addcarryx_u32(x587, x565, x562);
> +-    let mut x590: u32 = 0;
> +-    let mut x591: fiat_p384_u1 = 0;
> +     let (x590, x591) = fiat_p384_addcarryx_u32(x589, x563, x560);
> +-    let mut x592: u32 = 0;
> +-    let mut x593: fiat_p384_u1 = 0;
> +     let (x592, x593) = fiat_p384_addcarryx_u32(x591, x561, x558);
> +-    let mut x594: u32 = 0;
> +-    let mut x595: fiat_p384_u1 = 0;
> +     let (x594, x595) = fiat_p384_addcarryx_u32(0x0, x534, x576);
> +-    let mut x596: u32 = 0;
> +-    let mut x597: fiat_p384_u1 = 0;
> +     let (x596, x597) = fiat_p384_addcarryx_u32(x595, x536, x577);
> +-    let mut x598: u32 = 0;
> +-    let mut x599: fiat_p384_u1 = 0;
> +     let (x598, x599) = fiat_p384_addcarryx_u32(x597, x538, (0x0 as u32));
> +-    let mut x600: u32 = 0;
> +-    let mut x601: fiat_p384_u1 = 0;
> +     let (x600, x601) = fiat_p384_addcarryx_u32(x599, x540, x574);
> +-    let mut x602: u32 = 0;
> +-    let mut x603: fiat_p384_u1 = 0;
> +     let (x602, x603) = fiat_p384_addcarryx_u32(x601, x542, x578);
> +-    let mut x604: u32 = 0;
> +-    let mut x605: fiat_p384_u1 = 0;
> +     let (x604, x605) = fiat_p384_addcarryx_u32(x603, x544, x580);
> +-    let mut x606: u32 = 0;
> +-    let mut x607: fiat_p384_u1 = 0;
> +     let (x606, x607) = fiat_p384_addcarryx_u32(x605, x546, x582);
> +-    let mut x608: u32 = 0;
> +-    let mut x609: fiat_p384_u1 = 0;
> +     let (x608, x609) = fiat_p384_addcarryx_u32(x607, x548, x584);
> +-    let mut x610: u32 = 0;
> +-    let mut x611: fiat_p384_u1 = 0;
> +     let (x610, x611) = fiat_p384_addcarryx_u32(x609, x550, x586);
> +-    let mut x612: u32 = 0;
> +-    let mut x613: fiat_p384_u1 = 0;
> +     let (x612, x613) = fiat_p384_addcarryx_u32(x611, x552, x588);
> +-    let mut x614: u32 = 0;
> +-    let mut x615: fiat_p384_u1 = 0;
> +     let (x614, x615) = fiat_p384_addcarryx_u32(x613, x554, x590);
> +-    let mut x616: u32 = 0;
> +-    let mut x617: fiat_p384_u1 = 0;
> +     let (x616, x617) = fiat_p384_addcarryx_u32(x615, x556, x592);
> +-    let mut x618: u32 = 0;
> +-    let mut x619: fiat_p384_u1 = 0;
> +     let (x618, x619) = fiat_p384_addcarryx_u32(
> +         x617,
> +         ((x557 as u32) + (x533 as u32)),
> +         ((x593 as u32) + x559),
> +     );
> +-    let mut x620: u32 = 0;
> +-    let mut x621: fiat_p384_u1 = 0;
> +     let (x620, x621) = fiat_p384_addcarryx_u32(0x0, x596, (arg1[8]));
> +-    let mut x622: u32 = 0;
> +-    let mut x623: fiat_p384_u1 = 0;
> +     let (x622, x623) = fiat_p384_addcarryx_u32(x621, x598, (0x0 as u32));
> +-    let mut x624: u32 = 0;
> +-    let mut x625: fiat_p384_u1 = 0;
> +     let (x624, x625) = fiat_p384_addcarryx_u32(x623, x600, (0x0 as u32));
> +-    let mut x626: u32 = 0;
> +-    let mut x627: fiat_p384_u1 = 0;
> +     let (x626, x627) = fiat_p384_addcarryx_u32(x625, x602, (0x0 as u32));
> +-    let mut x628: u32 = 0;
> +-    let mut x629: fiat_p384_u1 = 0;
> +     let (x628, x629) = fiat_p384_addcarryx_u32(x627, x604, (0x0 as u32));
> +-    let mut x630: u32 = 0;
> +-    let mut x631: fiat_p384_u1 = 0;
> +     let (x630, x631) = fiat_p384_addcarryx_u32(x629, x606, (0x0 as u32));
> +-    let mut x632: u32 = 0;
> +-    let mut x633: fiat_p384_u1 = 0;
> +     let (x632, x633) = fiat_p384_addcarryx_u32(x631, x608, (0x0 as u32));
> +-    let mut x634: u32 = 0;
> +-    let mut x635: fiat_p384_u1 = 0;
> +     let (x634, x635) = fiat_p384_addcarryx_u32(x633, x610, (0x0 as u32));
> +-    let mut x636: u32 = 0;
> +-    let mut x637: fiat_p384_u1 = 0;
> +     let (x636, x637) = fiat_p384_addcarryx_u32(x635, x612, (0x0 as u32));
> +-    let mut x638: u32 = 0;
> +-    let mut x639: fiat_p384_u1 = 0;
> +     let (x638, x639) = fiat_p384_addcarryx_u32(x637, x614, (0x0 as u32));
> +-    let mut x640: u32 = 0;
> +-    let mut x641: fiat_p384_u1 = 0;
> +     let (x640, x641) = fiat_p384_addcarryx_u32(x639, x616, (0x0 as u32));
> +-    let mut x642: u32 = 0;
> +-    let mut x643: fiat_p384_u1 = 0;
> +     let (x642, x643) = fiat_p384_addcarryx_u32(x641, x618, (0x0 as u32));
> +-    let mut x644: u32 = 0;
> +-    let mut x645: u32 = 0;
> +     let (x644, x645) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x646: u32 = 0;
> +-    let mut x647: u32 = 0;
> +     let (x646, x647) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x648: u32 = 0;
> +-    let mut x649: u32 = 0;
> +     let (x648, x649) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x650: u32 = 0;
> +-    let mut x651: u32 = 0;
> +     let (x650, x651) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x652: u32 = 0;
> +-    let mut x653: u32 = 0;
> +     let (x652, x653) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x654: u32 = 0;
> +-    let mut x655: u32 = 0;
> +     let (x654, x655) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x656: u32 = 0;
> +-    let mut x657: u32 = 0;
> +     let (x656, x657) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x658: u32 = 0;
> +-    let mut x659: u32 = 0;
> +     let (x658, x659) = fiat_p384_mulx_u32(x620, 0xfffffffe);
> +-    let mut x660: u32 = 0;
> +-    let mut x661: u32 = 0;
> +     let (x660, x661) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x662: u32 = 0;
> +-    let mut x663: u32 = 0;
> +     let (x662, x663) = fiat_p384_mulx_u32(x620, 0xffffffff);
> +-    let mut x664: u32 = 0;
> +-    let mut x665: fiat_p384_u1 = 0;
> +     let (x664, x665) = fiat_p384_addcarryx_u32(0x0, x661, x658);
> +-    let mut x666: u32 = 0;
> +-    let mut x667: fiat_p384_u1 = 0;
> +     let (x666, x667) = fiat_p384_addcarryx_u32(x665, x659, x656);
> +-    let mut x668: u32 = 0;
> +-    let mut x669: fiat_p384_u1 = 0;
> +     let (x668, x669) = fiat_p384_addcarryx_u32(x667, x657, x654);
> +-    let mut x670: u32 = 0;
> +-    let mut x671: fiat_p384_u1 = 0;
> +     let (x670, x671) = fiat_p384_addcarryx_u32(x669, x655, x652);
> +-    let mut x672: u32 = 0;
> +-    let mut x673: fiat_p384_u1 = 0;
> +     let (x672, x673) = fiat_p384_addcarryx_u32(x671, x653, x650);
> +-    let mut x674: u32 = 0;
> +-    let mut x675: fiat_p384_u1 = 0;
> +     let (x674, x675) = fiat_p384_addcarryx_u32(x673, x651, x648);
> +-    let mut x676: u32 = 0;
> +-    let mut x677: fiat_p384_u1 = 0;
> +     let (x676, x677) = fiat_p384_addcarryx_u32(x675, x649, x646);
> +-    let mut x678: u32 = 0;
> +-    let mut x679: fiat_p384_u1 = 0;
> +     let (x678, x679) = fiat_p384_addcarryx_u32(x677, x647, x644);
> +-    let mut x680: u32 = 0;
> +-    let mut x681: fiat_p384_u1 = 0;
> +     let (x680, x681) = fiat_p384_addcarryx_u32(0x0, x620, x662);
> +-    let mut x682: u32 = 0;
> +-    let mut x683: fiat_p384_u1 = 0;
> +     let (x682, x683) = fiat_p384_addcarryx_u32(x681, x622, x663);
> +-    let mut x684: u32 = 0;
> +-    let mut x685: fiat_p384_u1 = 0;
> +     let (x684, x685) = fiat_p384_addcarryx_u32(x683, x624, (0x0 as u32));
> +-    let mut x686: u32 = 0;
> +-    let mut x687: fiat_p384_u1 = 0;
> +     let (x686, x687) = fiat_p384_addcarryx_u32(x685, x626, x660);
> +-    let mut x688: u32 = 0;
> +-    let mut x689: fiat_p384_u1 = 0;
> +     let (x688, x689) = fiat_p384_addcarryx_u32(x687, x628, x664);
> +-    let mut x690: u32 = 0;
> +-    let mut x691: fiat_p384_u1 = 0;
> +     let (x690, x691) = fiat_p384_addcarryx_u32(x689, x630, x666);
> +-    let mut x692: u32 = 0;
> +-    let mut x693: fiat_p384_u1 = 0;
> +     let (x692, x693) = fiat_p384_addcarryx_u32(x691, x632, x668);
> +-    let mut x694: u32 = 0;
> +-    let mut x695: fiat_p384_u1 = 0;
> +     let (x694, x695) = fiat_p384_addcarryx_u32(x693, x634, x670);
> +-    let mut x696: u32 = 0;
> +-    let mut x697: fiat_p384_u1 = 0;
> +     let (x696, x697) = fiat_p384_addcarryx_u32(x695, x636, x672);
> +-    let mut x698: u32 = 0;
> +-    let mut x699: fiat_p384_u1 = 0;
> +     let (x698, x699) = fiat_p384_addcarryx_u32(x697, x638, x674);
> +-    let mut x700: u32 = 0;
> +-    let mut x701: fiat_p384_u1 = 0;
> +     let (x700, x701) = fiat_p384_addcarryx_u32(x699, x640, x676);
> +-    let mut x702: u32 = 0;
> +-    let mut x703: fiat_p384_u1 = 0;
> +     let (x702, x703) = fiat_p384_addcarryx_u32(x701, x642, x678);
> +-    let mut x704: u32 = 0;
> +-    let mut x705: fiat_p384_u1 = 0;
> +     let (x704, x705) = fiat_p384_addcarryx_u32(
> +         x703,
> +         ((x643 as u32) + (x619 as u32)),
> +         ((x679 as u32) + x645),
> +     );
> +-    let mut x706: u32 = 0;
> +-    let mut x707: fiat_p384_u1 = 0;
> +     let (x706, x707) = fiat_p384_addcarryx_u32(0x0, x682, (arg1[9]));
> +-    let mut x708: u32 = 0;
> +-    let mut x709: fiat_p384_u1 = 0;
> +     let (x708, x709) = fiat_p384_addcarryx_u32(x707, x684, (0x0 as u32));
> +-    let mut x710: u32 = 0;
> +-    let mut x711: fiat_p384_u1 = 0;
> +     let (x710, x711) = fiat_p384_addcarryx_u32(x709, x686, (0x0 as u32));
> +-    let mut x712: u32 = 0;
> +-    let mut x713: fiat_p384_u1 = 0;
> +     let (x712, x713) = fiat_p384_addcarryx_u32(x711, x688, (0x0 as u32));
> +-    let mut x714: u32 = 0;
> +-    let mut x715: fiat_p384_u1 = 0;
> +     let (x714, x715) = fiat_p384_addcarryx_u32(x713, x690, (0x0 as u32));
> +-    let mut x716: u32 = 0;
> +-    let mut x717: fiat_p384_u1 = 0;
> +     let (x716, x717) = fiat_p384_addcarryx_u32(x715, x692, (0x0 as u32));
> +-    let mut x718: u32 = 0;
> +-    let mut x719: fiat_p384_u1 = 0;
> +     let (x718, x719) = fiat_p384_addcarryx_u32(x717, x694, (0x0 as u32));
> +-    let mut x720: u32 = 0;
> +-    let mut x721: fiat_p384_u1 = 0;
> +     let (x720, x721) = fiat_p384_addcarryx_u32(x719, x696, (0x0 as u32));
> +-    let mut x722: u32 = 0;
> +-    let mut x723: fiat_p384_u1 = 0;
> +     let (x722, x723) = fiat_p384_addcarryx_u32(x721, x698, (0x0 as u32));
> +-    let mut x724: u32 = 0;
> +-    let mut x725: fiat_p384_u1 = 0;
> +     let (x724, x725) = fiat_p384_addcarryx_u32(x723, x700, (0x0 as u32));
> +-    let mut x726: u32 = 0;
> +-    let mut x727: fiat_p384_u1 = 0;
> +     let (x726, x727) = fiat_p384_addcarryx_u32(x725, x702, (0x0 as u32));
> +-    let mut x728: u32 = 0;
> +-    let mut x729: fiat_p384_u1 = 0;
> +     let (x728, x729) = fiat_p384_addcarryx_u32(x727, x704, (0x0 as u32));
> +-    let mut x730: u32 = 0;
> +-    let mut x731: u32 = 0;
> +     let (x730, x731) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x732: u32 = 0;
> +-    let mut x733: u32 = 0;
> +     let (x732, x733) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x734: u32 = 0;
> +-    let mut x735: u32 = 0;
> +     let (x734, x735) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x736: u32 = 0;
> +-    let mut x737: u32 = 0;
> +     let (x736, x737) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x738: u32 = 0;
> +-    let mut x739: u32 = 0;
> +     let (x738, x739) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x740: u32 = 0;
> +-    let mut x741: u32 = 0;
> +     let (x740, x741) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x742: u32 = 0;
> +-    let mut x743: u32 = 0;
> +     let (x742, x743) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x744: u32 = 0;
> +-    let mut x745: u32 = 0;
> +     let (x744, x745) = fiat_p384_mulx_u32(x706, 0xfffffffe);
> +-    let mut x746: u32 = 0;
> +-    let mut x747: u32 = 0;
> +     let (x746, x747) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x748: u32 = 0;
> +-    let mut x749: u32 = 0;
> +     let (x748, x749) = fiat_p384_mulx_u32(x706, 0xffffffff);
> +-    let mut x750: u32 = 0;
> +-    let mut x751: fiat_p384_u1 = 0;
> +     let (x750, x751) = fiat_p384_addcarryx_u32(0x0, x747, x744);
> +-    let mut x752: u32 = 0;
> +-    let mut x753: fiat_p384_u1 = 0;
> +     let (x752, x753) = fiat_p384_addcarryx_u32(x751, x745, x742);
> +-    let mut x754: u32 = 0;
> +-    let mut x755: fiat_p384_u1 = 0;
> +     let (x754, x755) = fiat_p384_addcarryx_u32(x753, x743, x740);
> +-    let mut x756: u32 = 0;
> +-    let mut x757: fiat_p384_u1 = 0;
> +     let (x756, x757) = fiat_p384_addcarryx_u32(x755, x741, x738);
> +-    let mut x758: u32 = 0;
> +-    let mut x759: fiat_p384_u1 = 0;
> +     let (x758, x759) = fiat_p384_addcarryx_u32(x757, x739, x736);
> +-    let mut x760: u32 = 0;
> +-    let mut x761: fiat_p384_u1 = 0;
> +     let (x760, x761) = fiat_p384_addcarryx_u32(x759, x737, x734);
> +-    let mut x762: u32 = 0;
> +-    let mut x763: fiat_p384_u1 = 0;
> +     let (x762, x763) = fiat_p384_addcarryx_u32(x761, x735, x732);
> +-    let mut x764: u32 = 0;
> +-    let mut x765: fiat_p384_u1 = 0;
> +     let (x764, x765) = fiat_p384_addcarryx_u32(x763, x733, x730);
> +-    let mut x766: u32 = 0;
> +-    let mut x767: fiat_p384_u1 = 0;
> +     let (x766, x767) = fiat_p384_addcarryx_u32(0x0, x706, x748);
> +-    let mut x768: u32 = 0;
> +-    let mut x769: fiat_p384_u1 = 0;
> +     let (x768, x769) = fiat_p384_addcarryx_u32(x767, x708, x749);
> +-    let mut x770: u32 = 0;
> +-    let mut x771: fiat_p384_u1 = 0;
> +     let (x770, x771) = fiat_p384_addcarryx_u32(x769, x710, (0x0 as u32));
> +-    let mut x772: u32 = 0;
> +-    let mut x773: fiat_p384_u1 = 0;
> +     let (x772, x773) = fiat_p384_addcarryx_u32(x771, x712, x746);
> +-    let mut x774: u32 = 0;
> +-    let mut x775: fiat_p384_u1 = 0;
> +     let (x774, x775) = fiat_p384_addcarryx_u32(x773, x714, x750);
> +-    let mut x776: u32 = 0;
> +-    let mut x777: fiat_p384_u1 = 0;
> +     let (x776, x777) = fiat_p384_addcarryx_u32(x775, x716, x752);
> +-    let mut x778: u32 = 0;
> +-    let mut x779: fiat_p384_u1 = 0;
> +     let (x778, x779) = fiat_p384_addcarryx_u32(x777, x718, x754);
> +-    let mut x780: u32 = 0;
> +-    let mut x781: fiat_p384_u1 = 0;
> +     let (x780, x781) = fiat_p384_addcarryx_u32(x779, x720, x756);
> +-    let mut x782: u32 = 0;
> +-    let mut x783: fiat_p384_u1 = 0;
> +     let (x782, x783) = fiat_p384_addcarryx_u32(x781, x722, x758);
> +-    let mut x784: u32 = 0;
> +-    let mut x785: fiat_p384_u1 = 0;
> +     let (x784, x785) = fiat_p384_addcarryx_u32(x783, x724, x760);
> +-    let mut x786: u32 = 0;
> +-    let mut x787: fiat_p384_u1 = 0;
> +     let (x786, x787) = fiat_p384_addcarryx_u32(x785, x726, x762);
> +-    let mut x788: u32 = 0;
> +-    let mut x789: fiat_p384_u1 = 0;
> +     let (x788, x789) = fiat_p384_addcarryx_u32(x787, x728, x764);
> +-    let mut x790: u32 = 0;
> +-    let mut x791: fiat_p384_u1 = 0;
> +     let (x790, x791) = fiat_p384_addcarryx_u32(
> +         x789,
> +         ((x729 as u32) + (x705 as u32)),
> +         ((x765 as u32) + x731),
> +     );
> +-    let mut x792: u32 = 0;
> +-    let mut x793: fiat_p384_u1 = 0;
> +     let (x792, x793) = fiat_p384_addcarryx_u32(0x0, x768, (arg1[10]));
> +-    let mut x794: u32 = 0;
> +-    let mut x795: fiat_p384_u1 = 0;
> +     let (x794, x795) = fiat_p384_addcarryx_u32(x793, x770, (0x0 as u32));
> +-    let mut x796: u32 = 0;
> +-    let mut x797: fiat_p384_u1 = 0;
> +     let (x796, x797) = fiat_p384_addcarryx_u32(x795, x772, (0x0 as u32));
> +-    let mut x798: u32 = 0;
> +-    let mut x799: fiat_p384_u1 = 0;
> +     let (x798, x799) = fiat_p384_addcarryx_u32(x797, x774, (0x0 as u32));
> +-    let mut x800: u32 = 0;
> +-    let mut x801: fiat_p384_u1 = 0;
> +     let (x800, x801) = fiat_p384_addcarryx_u32(x799, x776, (0x0 as u32));
> +-    let mut x802: u32 = 0;
> +-    let mut x803: fiat_p384_u1 = 0;
> +     let (x802, x803) = fiat_p384_addcarryx_u32(x801, x778, (0x0 as u32));
> +-    let mut x804: u32 = 0;
> +-    let mut x805: fiat_p384_u1 = 0;
> +     let (x804, x805) = fiat_p384_addcarryx_u32(x803, x780, (0x0 as u32));
> +-    let mut x806: u32 = 0;
> +-    let mut x807: fiat_p384_u1 = 0;
> +     let (x806, x807) = fiat_p384_addcarryx_u32(x805, x782, (0x0 as u32));
> +-    let mut x808: u32 = 0;
> +-    let mut x809: fiat_p384_u1 = 0;
> +     let (x808, x809) = fiat_p384_addcarryx_u32(x807, x784, (0x0 as u32));
> +-    let mut x810: u32 = 0;
> +-    let mut x811: fiat_p384_u1 = 0;
> +     let (x810, x811) = fiat_p384_addcarryx_u32(x809, x786, (0x0 as u32));
> +-    let mut x812: u32 = 0;
> +-    let mut x813: fiat_p384_u1 = 0;
> +     let (x812, x813) = fiat_p384_addcarryx_u32(x811, x788, (0x0 as u32));
> +-    let mut x814: u32 = 0;
> +-    let mut x815: fiat_p384_u1 = 0;
> +     let (x814, x815) = fiat_p384_addcarryx_u32(x813, x790, (0x0 as u32));
> +-    let mut x816: u32 = 0;
> +-    let mut x817: u32 = 0;
> +     let (x816, x817) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x818: u32 = 0;
> +-    let mut x819: u32 = 0;
> +     let (x818, x819) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x820: u32 = 0;
> +-    let mut x821: u32 = 0;
> +     let (x820, x821) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x822: u32 = 0;
> +-    let mut x823: u32 = 0;
> +     let (x822, x823) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x824: u32 = 0;
> +-    let mut x825: u32 = 0;
> +     let (x824, x825) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x826: u32 = 0;
> +-    let mut x827: u32 = 0;
> +     let (x826, x827) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x828: u32 = 0;
> +-    let mut x829: u32 = 0;
> +     let (x828, x829) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x830: u32 = 0;
> +-    let mut x831: u32 = 0;
> +     let (x830, x831) = fiat_p384_mulx_u32(x792, 0xfffffffe);
> +-    let mut x832: u32 = 0;
> +-    let mut x833: u32 = 0;
> +     let (x832, x833) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x834: u32 = 0;
> +-    let mut x835: u32 = 0;
> +     let (x834, x835) = fiat_p384_mulx_u32(x792, 0xffffffff);
> +-    let mut x836: u32 = 0;
> +-    let mut x837: fiat_p384_u1 = 0;
> +     let (x836, x837) = fiat_p384_addcarryx_u32(0x0, x833, x830);
> +-    let mut x838: u32 = 0;
> +-    let mut x839: fiat_p384_u1 = 0;
> +     let (x838, x839) = fiat_p384_addcarryx_u32(x837, x831, x828);
> +-    let mut x840: u32 = 0;
> +-    let mut x841: fiat_p384_u1 = 0;
> +     let (x840, x841) = fiat_p384_addcarryx_u32(x839, x829, x826);
> +-    let mut x842: u32 = 0;
> +-    let mut x843: fiat_p384_u1 = 0;
> +     let (x842, x843) = fiat_p384_addcarryx_u32(x841, x827, x824);
> +-    let mut x844: u32 = 0;
> +-    let mut x845: fiat_p384_u1 = 0;
> +     let (x844, x845) = fiat_p384_addcarryx_u32(x843, x825, x822);
> +-    let mut x846: u32 = 0;
> +-    let mut x847: fiat_p384_u1 = 0;
> +     let (x846, x847) = fiat_p384_addcarryx_u32(x845, x823, x820);
> +-    let mut x848: u32 = 0;
> +-    let mut x849: fiat_p384_u1 = 0;
> +     let (x848, x849) = fiat_p384_addcarryx_u32(x847, x821, x818);
> +-    let mut x850: u32 = 0;
> +-    let mut x851: fiat_p384_u1 = 0;
> +     let (x850, x851) = fiat_p384_addcarryx_u32(x849, x819, x816);
> +-    let mut x852: u32 = 0;
> +-    let mut x853: fiat_p384_u1 = 0;
> +     let (x852, x853) = fiat_p384_addcarryx_u32(0x0, x792, x834);
> +-    let mut x854: u32 = 0;
> +-    let mut x855: fiat_p384_u1 = 0;
> +     let (x854, x855) = fiat_p384_addcarryx_u32(x853, x794, x835);
> +-    let mut x856: u32 = 0;
> +-    let mut x857: fiat_p384_u1 = 0;
> +     let (x856, x857) = fiat_p384_addcarryx_u32(x855, x796, (0x0 as u32));
> +-    let mut x858: u32 = 0;
> +-    let mut x859: fiat_p384_u1 = 0;
> +     let (x858, x859) = fiat_p384_addcarryx_u32(x857, x798, x832);
> +-    let mut x860: u32 = 0;
> +-    let mut x861: fiat_p384_u1 = 0;
> +     let (x860, x861) = fiat_p384_addcarryx_u32(x859, x800, x836);
> +-    let mut x862: u32 = 0;
> +-    let mut x863: fiat_p384_u1 = 0;
> +     let (x862, x863) = fiat_p384_addcarryx_u32(x861, x802, x838);
> +-    let mut x864: u32 = 0;
> +-    let mut x865: fiat_p384_u1 = 0;
> +     let (x864, x865) = fiat_p384_addcarryx_u32(x863, x804, x840);
> +-    let mut x866: u32 = 0;
> +-    let mut x867: fiat_p384_u1 = 0;
> +     let (x866, x867) = fiat_p384_addcarryx_u32(x865, x806, x842);
> +-    let mut x868: u32 = 0;
> +-    let mut x869: fiat_p384_u1 = 0;
> +     let (x868, x869) = fiat_p384_addcarryx_u32(x867, x808, x844);
> +-    let mut x870: u32 = 0;
> +-    let mut x871: fiat_p384_u1 = 0;
> +     let (x870, x871) = fiat_p384_addcarryx_u32(x869, x810, x846);
> +-    let mut x872: u32 = 0;
> +-    let mut x873: fiat_p384_u1 = 0;
> +     let (x872, x873) = fiat_p384_addcarryx_u32(x871, x812, x848);
> +-    let mut x874: u32 = 0;
> +-    let mut x875: fiat_p384_u1 = 0;
> +     let (x874, x875) = fiat_p384_addcarryx_u32(x873, x814, x850);
> +-    let mut x876: u32 = 0;
> +-    let mut x877: fiat_p384_u1 = 0;
> +     let (x876, x877) = fiat_p384_addcarryx_u32(
> +         x875,
> +         ((x815 as u32) + (x791 as u32)),
> +         ((x851 as u32) + x817),
> +     );
> +-    let mut x878: u32 = 0;
> +-    let mut x879: fiat_p384_u1 = 0;
> +     let (x878, x879) = fiat_p384_addcarryx_u32(0x0, x854, (arg1[11]));
> +-    let mut x880: u32 = 0;
> +-    let mut x881: fiat_p384_u1 = 0;
> +     let (x880, x881) = fiat_p384_addcarryx_u32(x879, x856, (0x0 as u32));
> +-    let mut x882: u32 = 0;
> +-    let mut x883: fiat_p384_u1 = 0;
> +     let (x882, x883) = fiat_p384_addcarryx_u32(x881, x858, (0x0 as u32));
> +-    let mut x884: u32 = 0;
> +-    let mut x885: fiat_p384_u1 = 0;
> +     let (x884, x885) = fiat_p384_addcarryx_u32(x883, x860, (0x0 as u32));
> +-    let mut x886: u32 = 0;
> +-    let mut x887: fiat_p384_u1 = 0;
> +     let (x886, x887) = fiat_p384_addcarryx_u32(x885, x862, (0x0 as u32));
> +-    let mut x888: u32 = 0;
> +-    let mut x889: fiat_p384_u1 = 0;
> +     let (x888, x889) = fiat_p384_addcarryx_u32(x887, x864, (0x0 as u32));
> +-    let mut x890: u32 = 0;
> +-    let mut x891: fiat_p384_u1 = 0;
> +     let (x890, x891) = fiat_p384_addcarryx_u32(x889, x866, (0x0 as u32));
> +-    let mut x892: u32 = 0;
> +-    let mut x893: fiat_p384_u1 = 0;
> +     let (x892, x893) = fiat_p384_addcarryx_u32(x891, x868, (0x0 as u32));
> +-    let mut x894: u32 = 0;
> +-    let mut x895: fiat_p384_u1 = 0;
> +     let (x894, x895) = fiat_p384_addcarryx_u32(x893, x870, (0x0 as u32));
> +-    let mut x896: u32 = 0;
> +-    let mut x897: fiat_p384_u1 = 0;
> +     let (x896, x897) = fiat_p384_addcarryx_u32(x895, x872, (0x0 as u32));
> +-    let mut x898: u32 = 0;
> +-    let mut x899: fiat_p384_u1 = 0;
> +     let (x898, x899) = fiat_p384_addcarryx_u32(x897, x874, (0x0 as u32));
> +-    let mut x900: u32 = 0;
> +-    let mut x901: fiat_p384_u1 = 0;
> +     let (x900, x901) = fiat_p384_addcarryx_u32(x899, x876, (0x0 as u32));
> +-    let mut x902: u32 = 0;
> +-    let mut x903: u32 = 0;
> +     let (x902, x903) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x904: u32 = 0;
> +-    let mut x905: u32 = 0;
> +     let (x904, x905) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x906: u32 = 0;
> +-    let mut x907: u32 = 0;
> +     let (x906, x907) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x908: u32 = 0;
> +-    let mut x909: u32 = 0;
> +     let (x908, x909) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x910: u32 = 0;
> +-    let mut x911: u32 = 0;
> +     let (x910, x911) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x912: u32 = 0;
> +-    let mut x913: u32 = 0;
> +     let (x912, x913) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x914: u32 = 0;
> +-    let mut x915: u32 = 0;
> +     let (x914, x915) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x916: u32 = 0;
> +-    let mut x917: u32 = 0;
> +     let (x916, x917) = fiat_p384_mulx_u32(x878, 0xfffffffe);
> +-    let mut x918: u32 = 0;
> +-    let mut x919: u32 = 0;
> +     let (x918, x919) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x920: u32 = 0;
> +-    let mut x921: u32 = 0;
> +     let (x920, x921) = fiat_p384_mulx_u32(x878, 0xffffffff);
> +-    let mut x922: u32 = 0;
> +-    let mut x923: fiat_p384_u1 = 0;
> +     let (x922, x923) = fiat_p384_addcarryx_u32(0x0, x919, x916);
> +-    let mut x924: u32 = 0;
> +-    let mut x925: fiat_p384_u1 = 0;
> +     let (x924, x925) = fiat_p384_addcarryx_u32(x923, x917, x914);
> +-    let mut x926: u32 = 0;
> +-    let mut x927: fiat_p384_u1 = 0;
> +     let (x926, x927) = fiat_p384_addcarryx_u32(x925, x915, x912);
> +-    let mut x928: u32 = 0;
> +-    let mut x929: fiat_p384_u1 = 0;
> +     let (x928, x929) = fiat_p384_addcarryx_u32(x927, x913, x910);
> +-    let mut x930: u32 = 0;
> +-    let mut x931: fiat_p384_u1 = 0;
> +     let (x930, x931) = fiat_p384_addcarryx_u32(x929, x911, x908);
> +-    let mut x932: u32 = 0;
> +-    let mut x933: fiat_p384_u1 = 0;
> +     let (x932, x933) = fiat_p384_addcarryx_u32(x931, x909, x906);
> +-    let mut x934: u32 = 0;
> +-    let mut x935: fiat_p384_u1 = 0;
> +     let (x934, x935) = fiat_p384_addcarryx_u32(x933, x907, x904);
> +-    let mut x936: u32 = 0;
> +-    let mut x937: fiat_p384_u1 = 0;
> +     let (x936, x937) = fiat_p384_addcarryx_u32(x935, x905, x902);
> +-    let mut x938: u32 = 0;
> +-    let mut x939: fiat_p384_u1 = 0;
> +     let (x938, x939) = fiat_p384_addcarryx_u32(0x0, x878, x920);
> +-    let mut x940: u32 = 0;
> +-    let mut x941: fiat_p384_u1 = 0;
> +     let (x940, x941) = fiat_p384_addcarryx_u32(x939, x880, x921);
> +-    let mut x942: u32 = 0;
> +-    let mut x943: fiat_p384_u1 = 0;
> +     let (x942, x943) = fiat_p384_addcarryx_u32(x941, x882, (0x0 as u32));
> +-    let mut x944: u32 = 0;
> +-    let mut x945: fiat_p384_u1 = 0;
> +     let (x944, x945) = fiat_p384_addcarryx_u32(x943, x884, x918);
> +-    let mut x946: u32 = 0;
> +-    let mut x947: fiat_p384_u1 = 0;
> +     let (x946, x947) = fiat_p384_addcarryx_u32(x945, x886, x922);
> +-    let mut x948: u32 = 0;
> +-    let mut x949: fiat_p384_u1 = 0;
> +     let (x948, x949) = fiat_p384_addcarryx_u32(x947, x888, x924);
> +-    let mut x950: u32 = 0;
> +-    let mut x951: fiat_p384_u1 = 0;
> +     let (x950, x951) = fiat_p384_addcarryx_u32(x949, x890, x926);
> +-    let mut x952: u32 = 0;
> +-    let mut x953: fiat_p384_u1 = 0;
> +     let (x952, x953) = fiat_p384_addcarryx_u32(x951, x892, x928);
> +-    let mut x954: u32 = 0;
> +-    let mut x955: fiat_p384_u1 = 0;
> +     let (x954, x955) = fiat_p384_addcarryx_u32(x953, x894, x930);
> +-    let mut x956: u32 = 0;
> +-    let mut x957: fiat_p384_u1 = 0;
> +     let (x956, x957) = fiat_p384_addcarryx_u32(x955, x896, x932);
> +-    let mut x958: u32 = 0;
> +-    let mut x959: fiat_p384_u1 = 0;
> +     let (x958, x959) = fiat_p384_addcarryx_u32(x957, x898, x934);
> +-    let mut x960: u32 = 0;
> +-    let mut x961: fiat_p384_u1 = 0;
> +     let (x960, x961) = fiat_p384_addcarryx_u32(x959, x900, x936);
> +-    let mut x962: u32 = 0;
> +-    let mut x963: fiat_p384_u1 = 0;
> +     let (x962, x963) = fiat_p384_addcarryx_u32(
> +         x961,
> +         ((x901 as u32) + (x877 as u32)),
> +         ((x937 as u32) + x903),
> +     );
> +-    let mut x964: u32 = 0;
> +-    let mut x965: fiat_p384_u1 = 0;
> +     let (x964, x965) = fiat_p384_subborrowx_u32(0x0, x940, 0xffffffff);
> +-    let mut x966: u32 = 0;
> +-    let mut x967: fiat_p384_u1 = 0;
> +     let (x966, x967) = fiat_p384_subborrowx_u32(x965, x942, (0x0 as u32));
> +-    let mut x968: u32 = 0;
> +-    let mut x969: fiat_p384_u1 = 0;
> +     let (x968, x969) = fiat_p384_subborrowx_u32(x967, x944, (0x0 as u32));
> +-    let mut x970: u32 = 0;
> +-    let mut x971: fiat_p384_u1 = 0;
> +     let (x970, x971) = fiat_p384_subborrowx_u32(x969, x946, 0xffffffff);
> +-    let mut x972: u32 = 0;
> +-    let mut x973: fiat_p384_u1 = 0;
> +     let (x972, x973) = fiat_p384_subborrowx_u32(x971, x948, 0xfffffffe);
> +-    let mut x974: u32 = 0;
> +-    let mut x975: fiat_p384_u1 = 0;
> +     let (x974, x975) = fiat_p384_subborrowx_u32(x973, x950, 0xffffffff);
> +-    let mut x976: u32 = 0;
> +-    let mut x977: fiat_p384_u1 = 0;
> +     let (x976, x977) = fiat_p384_subborrowx_u32(x975, x952, 0xffffffff);
> +-    let mut x978: u32 = 0;
> +-    let mut x979: fiat_p384_u1 = 0;
> +     let (x978, x979) = fiat_p384_subborrowx_u32(x977, x954, 0xffffffff);
> +-    let mut x980: u32 = 0;
> +-    let mut x981: fiat_p384_u1 = 0;
> +     let (x980, x981) = fiat_p384_subborrowx_u32(x979, x956, 0xffffffff);
> +-    let mut x982: u32 = 0;
> +-    let mut x983: fiat_p384_u1 = 0;
> +     let (x982, x983) = fiat_p384_subborrowx_u32(x981, x958, 0xffffffff);
> +-    let mut x984: u32 = 0;
> +-    let mut x985: fiat_p384_u1 = 0;
> +     let (x984, x985) = fiat_p384_subborrowx_u32(x983, x960, 0xffffffff);
> +-    let mut x986: u32 = 0;
> +-    let mut x987: fiat_p384_u1 = 0;
> +     let (x986, x987) = fiat_p384_subborrowx_u32(x985, x962, 0xffffffff);
> +-    let mut x988: u32 = 0;
> +-    let mut x989: fiat_p384_u1 = 0;
> +     let (x988, x989) = fiat_p384_subborrowx_u32(x987, (x963 as u32), (0x0 as u32));
> +-    let mut x990: u32 = 0;
> +     let (x990) = fiat_p384_cmovznz_u32(x989, x964, x940);
> +-    let mut x991: u32 = 0;
> +     let (x991) = fiat_p384_cmovznz_u32(x989, x966, x942);
> +-    let mut x992: u32 = 0;
> +     let (x992) = fiat_p384_cmovznz_u32(x989, x968, x944);
> +-    let mut x993: u32 = 0;
> +     let (x993) = fiat_p384_cmovznz_u32(x989, x970, x946);
> +-    let mut x994: u32 = 0;
> +     let (x994) = fiat_p384_cmovznz_u32(x989, x972, x948);
> +-    let mut x995: u32 = 0;
> +     let (x995) = fiat_p384_cmovznz_u32(x989, x974, x950);
> +-    let mut x996: u32 = 0;
> +     let (x996) = fiat_p384_cmovznz_u32(x989, x976, x952);
> +-    let mut x997: u32 = 0;
> +     let (x997) = fiat_p384_cmovznz_u32(x989, x978, x954);
> +-    let mut x998: u32 = 0;
> +     let (x998) = fiat_p384_cmovznz_u32(x989, x980, x956);
> +-    let mut x999: u32 = 0;
> +     let (x999) = fiat_p384_cmovznz_u32(x989, x982, x958);
> +-    let mut x1000: u32 = 0;
> +     let (x1000) = fiat_p384_cmovznz_u32(x989, x984, x960);
> +-    let mut x1001: u32 = 0;
> +     let (x1001) = fiat_p384_cmovznz_u32(x989, x986, x962);
> +     out1[0] = x990;
> +     out1[1] = x991;
> +@@ -7086,1798 +2686,634 @@ pub const fn fiat_p384_to_montgomery(
> +     let x10: u32 = (arg1[10]);
> +     let x11: u32 = (arg1[11]);
> +     let x12: u32 = (arg1[0]);
> +-    let mut x13: u32 = 0;
> +-    let mut x14: u32 = 0;
> +     let (x13, x14) = fiat_p384_mulx_u32(x12, 0x2);
> +-    let mut x15: u32 = 0;
> +-    let mut x16: u32 = 0;
> +     let (x15, x16) = fiat_p384_mulx_u32(x12, 0xfffffffe);
> +-    let mut x17: u32 = 0;
> +-    let mut x18: u32 = 0;
> +     let (x17, x18) = fiat_p384_mulx_u32(x12, 0x2);
> +-    let mut x19: u32 = 0;
> +-    let mut x20: u32 = 0;
> +     let (x19, x20) = fiat_p384_mulx_u32(x12, 0xfffffffe);
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_addcarryx_u32(0x0, ((x14 as fiat_p384_u1) as u32), x12);
> +-    let mut x23: u32 = 0;
> +-    let mut x24: u32 = 0;
> +     let (x23, x24) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x25: u32 = 0;
> +-    let mut x26: u32 = 0;
> +     let (x25, x26) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x27: u32 = 0;
> +-    let mut x28: u32 = 0;
> +     let (x27, x28) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x29: u32 = 0;
> +-    let mut x30: u32 = 0;
> +     let (x29, x30) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x31: u32 = 0;
> +-    let mut x32: u32 = 0;
> +     let (x31, x32) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x33: u32 = 0;
> +-    let mut x34: u32 = 0;
> +     let (x33, x34) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x35: u32 = 0;
> +-    let mut x36: u32 = 0;
> +     let (x35, x36) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x37: u32 = 0;
> +-    let mut x38: u32 = 0;
> +     let (x37, x38) = fiat_p384_mulx_u32(x12, 0xfffffffe);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: u32 = 0;
> +     let (x39, x40) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: u32 = 0;
> +     let (x41, x42) = fiat_p384_mulx_u32(x12, 0xffffffff);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_u1 = 0;
> +     let (x43, x44) = fiat_p384_addcarryx_u32(0x0, x40, x37);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_u1 = 0;
> +     let (x45, x46) = fiat_p384_addcarryx_u32(x44, x38, x35);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_u1 = 0;
> +     let (x47, x48) = fiat_p384_addcarryx_u32(x46, x36, x33);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_u1 = 0;
> +     let (x49, x50) = fiat_p384_addcarryx_u32(x48, x34, x31);
> +-    let mut x51: u32 = 0;
> +-    let mut x52: fiat_p384_u1 = 0;
> +     let (x51, x52) = fiat_p384_addcarryx_u32(x50, x32, x29);
> +-    let mut x53: u32 = 0;
> +-    let mut x54: fiat_p384_u1 = 0;
> +     let (x53, x54) = fiat_p384_addcarryx_u32(x52, x30, x27);
> +-    let mut x55: u32 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_addcarryx_u32(x54, x28, x25);
> +-    let mut x57: u32 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_addcarryx_u32(x56, x26, x23);
> +-    let mut x59: u32 = 0;
> +-    let mut x60: fiat_p384_u1 = 0;
> +     let (x59, x60) = fiat_p384_addcarryx_u32(0x0, x12, x41);
> +-    let mut x61: u32 = 0;
> +-    let mut x62: fiat_p384_u1 = 0;
> +     let (x61, x62) = fiat_p384_addcarryx_u32(x60, x19, x42);
> +-    let mut x63: u32 = 0;
> +-    let mut x64: fiat_p384_u1 = 0;
> +     let (x63, x64) = fiat_p384_addcarryx_u32(0x0, x17, x39);
> +-    let mut x65: u32 = 0;
> +-    let mut x66: fiat_p384_u1 = 0;
> +     let (x65, x66) = fiat_p384_addcarryx_u32(x64, ((x18 as fiat_p384_u1) as u32), x43);
> +-    let mut x67: u32 = 0;
> +-    let mut x68: fiat_p384_u1 = 0;
> +     let (x67, x68) = fiat_p384_addcarryx_u32(x66, x15, x45);
> +-    let mut x69: u32 = 0;
> +-    let mut x70: fiat_p384_u1 = 0;
> +     let (x69, x70) = fiat_p384_addcarryx_u32(x68, x16, x47);
> +-    let mut x71: u32 = 0;
> +-    let mut x72: fiat_p384_u1 = 0;
> +     let (x71, x72) = fiat_p384_addcarryx_u32(x70, x13, x49);
> +-    let mut x73: u32 = 0;
> +-    let mut x74: fiat_p384_u1 = 0;
> +     let (x73, x74) = fiat_p384_addcarryx_u32(x72, x21, x51);
> +-    let mut x75: u32 = 0;
> +-    let mut x76: fiat_p384_u1 = 0;
> +     let (x75, x76) = fiat_p384_addcarryx_u32(x74, (x22 as u32), x53);
> +-    let mut x77: u32 = 0;
> +-    let mut x78: fiat_p384_u1 = 0;
> +     let (x77, x78) = fiat_p384_addcarryx_u32(x76, (0x0 as u32), x55);
> +-    let mut x79: u32 = 0;
> +-    let mut x80: fiat_p384_u1 = 0;
> +     let (x79, x80) = fiat_p384_addcarryx_u32(x78, (0x0 as u32), x57);
> +-    let mut x81: u32 = 0;
> +-    let mut x82: fiat_p384_u1 = 0;
> +     let (x81, x82) = fiat_p384_addcarryx_u32(x80, (0x0 as u32), ((x58 as u32) + x24));
> +-    let mut x83: u32 = 0;
> +-    let mut x84: u32 = 0;
> +     let (x83, x84) = fiat_p384_mulx_u32(x1, 0x2);
> +-    let mut x85: u32 = 0;
> +-    let mut x86: u32 = 0;
> +     let (x85, x86) = fiat_p384_mulx_u32(x1, 0xfffffffe);
> +-    let mut x87: u32 = 0;
> +-    let mut x88: u32 = 0;
> +     let (x87, x88) = fiat_p384_mulx_u32(x1, 0x2);
> +-    let mut x89: u32 = 0;
> +-    let mut x90: u32 = 0;
> +     let (x89, x90) = fiat_p384_mulx_u32(x1, 0xfffffffe);
> +-    let mut x91: u32 = 0;
> +-    let mut x92: fiat_p384_u1 = 0;
> +     let (x91, x92) = fiat_p384_addcarryx_u32(0x0, ((x84 as fiat_p384_u1) as u32), x1);
> +-    let mut x93: u32 = 0;
> +-    let mut x94: fiat_p384_u1 = 0;
> +     let (x93, x94) = fiat_p384_addcarryx_u32(0x0, x61, x1);
> +-    let mut x95: u32 = 0;
> +-    let mut x96: fiat_p384_u1 = 0;
> +     let (x95, x96) = fiat_p384_addcarryx_u32(x94, ((x62 as u32) + x20), x89);
> +-    let mut x97: u32 = 0;
> +-    let mut x98: fiat_p384_u1 = 0;
> +     let (x97, x98) = fiat_p384_addcarryx_u32(x96, x63, x90);
> +-    let mut x99: u32 = 0;
> +-    let mut x100: fiat_p384_u1 = 0;
> +     let (x99, x100) = fiat_p384_addcarryx_u32(x98, x65, x87);
> +-    let mut x101: u32 = 0;
> +-    let mut x102: fiat_p384_u1 = 0;
> +     let (x101, x102) = fiat_p384_addcarryx_u32(x100, x67, ((x88 as fiat_p384_u1) as u32));
> +-    let mut x103: u32 = 0;
> +-    let mut x104: fiat_p384_u1 = 0;
> +     let (x103, x104) = fiat_p384_addcarryx_u32(x102, x69, x85);
> +-    let mut x105: u32 = 0;
> +-    let mut x106: fiat_p384_u1 = 0;
> +     let (x105, x106) = fiat_p384_addcarryx_u32(x104, x71, x86);
> +-    let mut x107: u32 = 0;
> +-    let mut x108: fiat_p384_u1 = 0;
> +     let (x107, x108) = fiat_p384_addcarryx_u32(x106, x73, x83);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_u1 = 0;
> +     let (x109, x110) = fiat_p384_addcarryx_u32(x108, x75, x91);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_u1 = 0;
> +     let (x111, x112) = fiat_p384_addcarryx_u32(x110, x77, (x92 as u32));
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_u1 = 0;
> +     let (x113, x114) = fiat_p384_addcarryx_u32(x112, x79, (0x0 as u32));
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_u1 = 0;
> +     let (x115, x116) = fiat_p384_addcarryx_u32(x114, x81, (0x0 as u32));
> +-    let mut x117: u32 = 0;
> +-    let mut x118: u32 = 0;
> +     let (x117, x118) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: u32 = 0;
> +     let (x119, x120) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x121: u32 = 0;
> +-    let mut x122: u32 = 0;
> +     let (x121, x122) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x123: u32 = 0;
> +-    let mut x124: u32 = 0;
> +     let (x123, x124) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x125: u32 = 0;
> +-    let mut x126: u32 = 0;
> +     let (x125, x126) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x127: u32 = 0;
> +-    let mut x128: u32 = 0;
> +     let (x127, x128) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x129: u32 = 0;
> +-    let mut x130: u32 = 0;
> +     let (x129, x130) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x131: u32 = 0;
> +-    let mut x132: u32 = 0;
> +     let (x131, x132) = fiat_p384_mulx_u32(x93, 0xfffffffe);
> +-    let mut x133: u32 = 0;
> +-    let mut x134: u32 = 0;
> +     let (x133, x134) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x135: u32 = 0;
> +-    let mut x136: u32 = 0;
> +     let (x135, x136) = fiat_p384_mulx_u32(x93, 0xffffffff);
> +-    let mut x137: u32 = 0;
> +-    let mut x138: fiat_p384_u1 = 0;
> +     let (x137, x138) = fiat_p384_addcarryx_u32(0x0, x134, x131);
> +-    let mut x139: u32 = 0;
> +-    let mut x140: fiat_p384_u1 = 0;
> +     let (x139, x140) = fiat_p384_addcarryx_u32(x138, x132, x129);
> +-    let mut x141: u32 = 0;
> +-    let mut x142: fiat_p384_u1 = 0;
> +     let (x141, x142) = fiat_p384_addcarryx_u32(x140, x130, x127);
> +-    let mut x143: u32 = 0;
> +-    let mut x144: fiat_p384_u1 = 0;
> +     let (x143, x144) = fiat_p384_addcarryx_u32(x142, x128, x125);
> +-    let mut x145: u32 = 0;
> +-    let mut x146: fiat_p384_u1 = 0;
> +     let (x145, x146) = fiat_p384_addcarryx_u32(x144, x126, x123);
> +-    let mut x147: u32 = 0;
> +-    let mut x148: fiat_p384_u1 = 0;
> +     let (x147, x148) = fiat_p384_addcarryx_u32(x146, x124, x121);
> +-    let mut x149: u32 = 0;
> +-    let mut x150: fiat_p384_u1 = 0;
> +     let (x149, x150) = fiat_p384_addcarryx_u32(x148, x122, x119);
> +-    let mut x151: u32 = 0;
> +-    let mut x152: fiat_p384_u1 = 0;
> +     let (x151, x152) = fiat_p384_addcarryx_u32(x150, x120, x117);
> +-    let mut x153: u32 = 0;
> +-    let mut x154: fiat_p384_u1 = 0;
> +     let (x153, x154) = fiat_p384_addcarryx_u32(0x0, x93, x135);
> +-    let mut x155: u32 = 0;
> +-    let mut x156: fiat_p384_u1 = 0;
> +     let (x155, x156) = fiat_p384_addcarryx_u32(x154, x95, x136);
> +-    let mut x157: u32 = 0;
> +-    let mut x158: fiat_p384_u1 = 0;
> +     let (x157, x158) = fiat_p384_addcarryx_u32(x156, x97, (0x0 as u32));
> +-    let mut x159: u32 = 0;
> +-    let mut x160: fiat_p384_u1 = 0;
> +     let (x159, x160) = fiat_p384_addcarryx_u32(x158, x99, x133);
> +-    let mut x161: u32 = 0;
> +-    let mut x162: fiat_p384_u1 = 0;
> +     let (x161, x162) = fiat_p384_addcarryx_u32(x160, x101, x137);
> +-    let mut x163: u32 = 0;
> +-    let mut x164: fiat_p384_u1 = 0;
> +     let (x163, x164) = fiat_p384_addcarryx_u32(x162, x103, x139);
> +-    let mut x165: u32 = 0;
> +-    let mut x166: fiat_p384_u1 = 0;
> +     let (x165, x166) = fiat_p384_addcarryx_u32(x164, x105, x141);
> +-    let mut x167: u32 = 0;
> +-    let mut x168: fiat_p384_u1 = 0;
> +     let (x167, x168) = fiat_p384_addcarryx_u32(x166, x107, x143);
> +-    let mut x169: u32 = 0;
> +-    let mut x170: fiat_p384_u1 = 0;
> +     let (x169, x170) = fiat_p384_addcarryx_u32(x168, x109, x145);
> +-    let mut x171: u32 = 0;
> +-    let mut x172: fiat_p384_u1 = 0;
> +     let (x171, x172) = fiat_p384_addcarryx_u32(x170, x111, x147);
> +-    let mut x173: u32 = 0;
> +-    let mut x174: fiat_p384_u1 = 0;
> +     let (x173, x174) = fiat_p384_addcarryx_u32(x172, x113, x149);
> +-    let mut x175: u32 = 0;
> +-    let mut x176: fiat_p384_u1 = 0;
> +     let (x175, x176) = fiat_p384_addcarryx_u32(x174, x115, x151);
> +-    let mut x177: u32 = 0;
> +-    let mut x178: fiat_p384_u1 = 0;
> +     let (x177, x178) =
> +         fiat_p384_addcarryx_u32(x176, ((x116 as u32) + (x82 as u32)), ((x152 as u32) + x118));
> +-    let mut x179: u32 = 0;
> +-    let mut x180: u32 = 0;
> +     let (x179, x180) = fiat_p384_mulx_u32(x2, 0x2);
> +-    let mut x181: u32 = 0;
> +-    let mut x182: u32 = 0;
> +     let (x181, x182) = fiat_p384_mulx_u32(x2, 0xfffffffe);
> +-    let mut x183: u32 = 0;
> +-    let mut x184: u32 = 0;
> +     let (x183, x184) = fiat_p384_mulx_u32(x2, 0x2);
> +-    let mut x185: u32 = 0;
> +-    let mut x186: u32 = 0;
> +     let (x185, x186) = fiat_p384_mulx_u32(x2, 0xfffffffe);
> +-    let mut x187: u32 = 0;
> +-    let mut x188: fiat_p384_u1 = 0;
> +     let (x187, x188) = fiat_p384_addcarryx_u32(0x0, ((x180 as fiat_p384_u1) as u32), x2);
> +-    let mut x189: u32 = 0;
> +-    let mut x190: fiat_p384_u1 = 0;
> +     let (x189, x190) = fiat_p384_addcarryx_u32(0x0, x155, x2);
> +-    let mut x191: u32 = 0;
> +-    let mut x192: fiat_p384_u1 = 0;
> +     let (x191, x192) = fiat_p384_addcarryx_u32(x190, x157, x185);
> +-    let mut x193: u32 = 0;
> +-    let mut x194: fiat_p384_u1 = 0;
> +     let (x193, x194) = fiat_p384_addcarryx_u32(x192, x159, x186);
> +-    let mut x195: u32 = 0;
> +-    let mut x196: fiat_p384_u1 = 0;
> +     let (x195, x196) = fiat_p384_addcarryx_u32(x194, x161, x183);
> +-    let mut x197: u32 = 0;
> +-    let mut x198: fiat_p384_u1 = 0;
> +     let (x197, x198) = fiat_p384_addcarryx_u32(x196, x163, ((x184 as fiat_p384_u1) as u32));
> +-    let mut x199: u32 = 0;
> +-    let mut x200: fiat_p384_u1 = 0;
> +     let (x199, x200) = fiat_p384_addcarryx_u32(x198, x165, x181);
> +-    let mut x201: u32 = 0;
> +-    let mut x202: fiat_p384_u1 = 0;
> +     let (x201, x202) = fiat_p384_addcarryx_u32(x200, x167, x182);
> +-    let mut x203: u32 = 0;
> +-    let mut x204: fiat_p384_u1 = 0;
> +     let (x203, x204) = fiat_p384_addcarryx_u32(x202, x169, x179);
> +-    let mut x205: u32 = 0;
> +-    let mut x206: fiat_p384_u1 = 0;
> +     let (x205, x206) = fiat_p384_addcarryx_u32(x204, x171, x187);
> +-    let mut x207: u32 = 0;
> +-    let mut x208: fiat_p384_u1 = 0;
> +     let (x207, x208) = fiat_p384_addcarryx_u32(x206, x173, (x188 as u32));
> +-    let mut x209: u32 = 0;
> +-    let mut x210: fiat_p384_u1 = 0;
> +     let (x209, x210) = fiat_p384_addcarryx_u32(x208, x175, (0x0 as u32));
> +-    let mut x211: u32 = 0;
> +-    let mut x212: fiat_p384_u1 = 0;
> +     let (x211, x212) = fiat_p384_addcarryx_u32(x210, x177, (0x0 as u32));
> +-    let mut x213: u32 = 0;
> +-    let mut x214: u32 = 0;
> +     let (x213, x214) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x215: u32 = 0;
> +-    let mut x216: u32 = 0;
> +     let (x215, x216) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x217: u32 = 0;
> +-    let mut x218: u32 = 0;
> +     let (x217, x218) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x219: u32 = 0;
> +-    let mut x220: u32 = 0;
> +     let (x219, x220) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x221: u32 = 0;
> +-    let mut x222: u32 = 0;
> +     let (x221, x222) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x223: u32 = 0;
> +-    let mut x224: u32 = 0;
> +     let (x223, x224) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x225: u32 = 0;
> +-    let mut x226: u32 = 0;
> +     let (x225, x226) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x227: u32 = 0;
> +-    let mut x228: u32 = 0;
> +     let (x227, x228) = fiat_p384_mulx_u32(x189, 0xfffffffe);
> +-    let mut x229: u32 = 0;
> +-    let mut x230: u32 = 0;
> +     let (x229, x230) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x231: u32 = 0;
> +-    let mut x232: u32 = 0;
> +     let (x231, x232) = fiat_p384_mulx_u32(x189, 0xffffffff);
> +-    let mut x233: u32 = 0;
> +-    let mut x234: fiat_p384_u1 = 0;
> +     let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x230, x227);
> +-    let mut x235: u32 = 0;
> +-    let mut x236: fiat_p384_u1 = 0;
> +     let (x235, x236) = fiat_p384_addcarryx_u32(x234, x228, x225);
> +-    let mut x237: u32 = 0;
> +-    let mut x238: fiat_p384_u1 = 0;
> +     let (x237, x238) = fiat_p384_addcarryx_u32(x236, x226, x223);
> +-    let mut x239: u32 = 0;
> +-    let mut x240: fiat_p384_u1 = 0;
> +     let (x239, x240) = fiat_p384_addcarryx_u32(x238, x224, x221);
> +-    let mut x241: u32 = 0;
> +-    let mut x242: fiat_p384_u1 = 0;
> +     let (x241, x242) = fiat_p384_addcarryx_u32(x240, x222, x219);
> +-    let mut x243: u32 = 0;
> +-    let mut x244: fiat_p384_u1 = 0;
> +     let (x243, x244) = fiat_p384_addcarryx_u32(x242, x220, x217);
> +-    let mut x245: u32 = 0;
> +-    let mut x246: fiat_p384_u1 = 0;
> +     let (x245, x246) = fiat_p384_addcarryx_u32(x244, x218, x215);
> +-    let mut x247: u32 = 0;
> +-    let mut x248: fiat_p384_u1 = 0;
> +     let (x247, x248) = fiat_p384_addcarryx_u32(x246, x216, x213);
> +-    let mut x249: u32 = 0;
> +-    let mut x250: fiat_p384_u1 = 0;
> +     let (x249, x250) = fiat_p384_addcarryx_u32(0x0, x189, x231);
> +-    let mut x251: u32 = 0;
> +-    let mut x252: fiat_p384_u1 = 0;
> +     let (x251, x252) = fiat_p384_addcarryx_u32(x250, x191, x232);
> +-    let mut x253: u32 = 0;
> +-    let mut x254: fiat_p384_u1 = 0;
> +     let (x253, x254) = fiat_p384_addcarryx_u32(x252, x193, (0x0 as u32));
> +-    let mut x255: u32 = 0;
> +-    let mut x256: fiat_p384_u1 = 0;
> +     let (x255, x256) = fiat_p384_addcarryx_u32(x254, x195, x229);
> +-    let mut x257: u32 = 0;
> +-    let mut x258: fiat_p384_u1 = 0;
> +     let (x257, x258) = fiat_p384_addcarryx_u32(x256, x197, x233);
> +-    let mut x259: u32 = 0;
> +-    let mut x260: fiat_p384_u1 = 0;
> +     let (x259, x260) = fiat_p384_addcarryx_u32(x258, x199, x235);
> +-    let mut x261: u32 = 0;
> +-    let mut x262: fiat_p384_u1 = 0;
> +     let (x261, x262) = fiat_p384_addcarryx_u32(x260, x201, x237);
> +-    let mut x263: u32 = 0;
> +-    let mut x264: fiat_p384_u1 = 0;
> +     let (x263, x264) = fiat_p384_addcarryx_u32(x262, x203, x239);
> +-    let mut x265: u32 = 0;
> +-    let mut x266: fiat_p384_u1 = 0;
> +     let (x265, x266) = fiat_p384_addcarryx_u32(x264, x205, x241);
> +-    let mut x267: u32 = 0;
> +-    let mut x268: fiat_p384_u1 = 0;
> +     let (x267, x268) = fiat_p384_addcarryx_u32(x266, x207, x243);
> +-    let mut x269: u32 = 0;
> +-    let mut x270: fiat_p384_u1 = 0;
> +     let (x269, x270) = fiat_p384_addcarryx_u32(x268, x209, x245);
> +-    let mut x271: u32 = 0;
> +-    let mut x272: fiat_p384_u1 = 0;
> +     let (x271, x272) = fiat_p384_addcarryx_u32(x270, x211, x247);
> +-    let mut x273: u32 = 0;
> +-    let mut x274: fiat_p384_u1 = 0;
> +     let (x273, x274) = fiat_p384_addcarryx_u32(
> +         x272,
> +         ((x212 as u32) + (x178 as u32)),
> +         ((x248 as u32) + x214),
> +     );
> +-    let mut x275: u32 = 0;
> +-    let mut x276: u32 = 0;
> +     let (x275, x276) = fiat_p384_mulx_u32(x3, 0x2);
> +-    let mut x277: u32 = 0;
> +-    let mut x278: u32 = 0;
> +     let (x277, x278) = fiat_p384_mulx_u32(x3, 0xfffffffe);
> +-    let mut x279: u32 = 0;
> +-    let mut x280: u32 = 0;
> +     let (x279, x280) = fiat_p384_mulx_u32(x3, 0x2);
> +-    let mut x281: u32 = 0;
> +-    let mut x282: u32 = 0;
> +     let (x281, x282) = fiat_p384_mulx_u32(x3, 0xfffffffe);
> +-    let mut x283: u32 = 0;
> +-    let mut x284: fiat_p384_u1 = 0;
> +     let (x283, x284) = fiat_p384_addcarryx_u32(0x0, ((x276 as fiat_p384_u1) as u32), x3);
> +-    let mut x285: u32 = 0;
> +-    let mut x286: fiat_p384_u1 = 0;
> +     let (x285, x286) = fiat_p384_addcarryx_u32(0x0, x251, x3);
> +-    let mut x287: u32 = 0;
> +-    let mut x288: fiat_p384_u1 = 0;
> +     let (x287, x288) = fiat_p384_addcarryx_u32(x286, x253, x281);
> +-    let mut x289: u32 = 0;
> +-    let mut x290: fiat_p384_u1 = 0;
> +     let (x289, x290) = fiat_p384_addcarryx_u32(x288, x255, x282);
> +-    let mut x291: u32 = 0;
> +-    let mut x292: fiat_p384_u1 = 0;
> +     let (x291, x292) = fiat_p384_addcarryx_u32(x290, x257, x279);
> +-    let mut x293: u32 = 0;
> +-    let mut x294: fiat_p384_u1 = 0;
> +     let (x293, x294) = fiat_p384_addcarryx_u32(x292, x259, ((x280 as fiat_p384_u1) as u32));
> +-    let mut x295: u32 = 0;
> +-    let mut x296: fiat_p384_u1 = 0;
> +     let (x295, x296) = fiat_p384_addcarryx_u32(x294, x261, x277);
> +-    let mut x297: u32 = 0;
> +-    let mut x298: fiat_p384_u1 = 0;
> +     let (x297, x298) = fiat_p384_addcarryx_u32(x296, x263, x278);
> +-    let mut x299: u32 = 0;
> +-    let mut x300: fiat_p384_u1 = 0;
> +     let (x299, x300) = fiat_p384_addcarryx_u32(x298, x265, x275);
> +-    let mut x301: u32 = 0;
> +-    let mut x302: fiat_p384_u1 = 0;
> +     let (x301, x302) = fiat_p384_addcarryx_u32(x300, x267, x283);
> +-    let mut x303: u32 = 0;
> +-    let mut x304: fiat_p384_u1 = 0;
> +     let (x303, x304) = fiat_p384_addcarryx_u32(x302, x269, (x284 as u32));
> +-    let mut x305: u32 = 0;
> +-    let mut x306: fiat_p384_u1 = 0;
> +     let (x305, x306) = fiat_p384_addcarryx_u32(x304, x271, (0x0 as u32));
> +-    let mut x307: u32 = 0;
> +-    let mut x308: fiat_p384_u1 = 0;
> +     let (x307, x308) = fiat_p384_addcarryx_u32(x306, x273, (0x0 as u32));
> +-    let mut x309: u32 = 0;
> +-    let mut x310: u32 = 0;
> +     let (x309, x310) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x311: u32 = 0;
> +-    let mut x312: u32 = 0;
> +     let (x311, x312) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x313: u32 = 0;
> +-    let mut x314: u32 = 0;
> +     let (x313, x314) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x315: u32 = 0;
> +-    let mut x316: u32 = 0;
> +     let (x315, x316) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x317: u32 = 0;
> +-    let mut x318: u32 = 0;
> +     let (x317, x318) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x319: u32 = 0;
> +-    let mut x320: u32 = 0;
> +     let (x319, x320) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x321: u32 = 0;
> +-    let mut x322: u32 = 0;
> +     let (x321, x322) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x323: u32 = 0;
> +-    let mut x324: u32 = 0;
> +     let (x323, x324) = fiat_p384_mulx_u32(x285, 0xfffffffe);
> +-    let mut x325: u32 = 0;
> +-    let mut x326: u32 = 0;
> +     let (x325, x326) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x327: u32 = 0;
> +-    let mut x328: u32 = 0;
> +     let (x327, x328) = fiat_p384_mulx_u32(x285, 0xffffffff);
> +-    let mut x329: u32 = 0;
> +-    let mut x330: fiat_p384_u1 = 0;
> +     let (x329, x330) = fiat_p384_addcarryx_u32(0x0, x326, x323);
> +-    let mut x331: u32 = 0;
> +-    let mut x332: fiat_p384_u1 = 0;
> +     let (x331, x332) = fiat_p384_addcarryx_u32(x330, x324, x321);
> +-    let mut x333: u32 = 0;
> +-    let mut x334: fiat_p384_u1 = 0;
> +     let (x333, x334) = fiat_p384_addcarryx_u32(x332, x322, x319);
> +-    let mut x335: u32 = 0;
> +-    let mut x336: fiat_p384_u1 = 0;
> +     let (x335, x336) = fiat_p384_addcarryx_u32(x334, x320, x317);
> +-    let mut x337: u32 = 0;
> +-    let mut x338: fiat_p384_u1 = 0;
> +     let (x337, x338) = fiat_p384_addcarryx_u32(x336, x318, x315);
> +-    let mut x339: u32 = 0;
> +-    let mut x340: fiat_p384_u1 = 0;
> +     let (x339, x340) = fiat_p384_addcarryx_u32(x338, x316, x313);
> +-    let mut x341: u32 = 0;
> +-    let mut x342: fiat_p384_u1 = 0;
> +     let (x341, x342) = fiat_p384_addcarryx_u32(x340, x314, x311);
> +-    let mut x343: u32 = 0;
> +-    let mut x344: fiat_p384_u1 = 0;
> +     let (x343, x344) = fiat_p384_addcarryx_u32(x342, x312, x309);
> +-    let mut x345: u32 = 0;
> +-    let mut x346: fiat_p384_u1 = 0;
> +     let (x345, x346) = fiat_p384_addcarryx_u32(0x0, x285, x327);
> +-    let mut x347: u32 = 0;
> +-    let mut x348: fiat_p384_u1 = 0;
> +     let (x347, x348) = fiat_p384_addcarryx_u32(x346, x287, x328);
> +-    let mut x349: u32 = 0;
> +-    let mut x350: fiat_p384_u1 = 0;
> +     let (x349, x350) = fiat_p384_addcarryx_u32(x348, x289, (0x0 as u32));
> +-    let mut x351: u32 = 0;
> +-    let mut x352: fiat_p384_u1 = 0;
> +     let (x351, x352) = fiat_p384_addcarryx_u32(x350, x291, x325);
> +-    let mut x353: u32 = 0;
> +-    let mut x354: fiat_p384_u1 = 0;
> +     let (x353, x354) = fiat_p384_addcarryx_u32(x352, x293, x329);
> +-    let mut x355: u32 = 0;
> +-    let mut x356: fiat_p384_u1 = 0;
> +     let (x355, x356) = fiat_p384_addcarryx_u32(x354, x295, x331);
> +-    let mut x357: u32 = 0;
> +-    let mut x358: fiat_p384_u1 = 0;
> +     let (x357, x358) = fiat_p384_addcarryx_u32(x356, x297, x333);
> +-    let mut x359: u32 = 0;
> +-    let mut x360: fiat_p384_u1 = 0;
> +     let (x359, x360) = fiat_p384_addcarryx_u32(x358, x299, x335);
> +-    let mut x361: u32 = 0;
> +-    let mut x362: fiat_p384_u1 = 0;
> +     let (x361, x362) = fiat_p384_addcarryx_u32(x360, x301, x337);
> +-    let mut x363: u32 = 0;
> +-    let mut x364: fiat_p384_u1 = 0;
> +     let (x363, x364) = fiat_p384_addcarryx_u32(x362, x303, x339);
> +-    let mut x365: u32 = 0;
> +-    let mut x366: fiat_p384_u1 = 0;
> +     let (x365, x366) = fiat_p384_addcarryx_u32(x364, x305, x341);
> +-    let mut x367: u32 = 0;
> +-    let mut x368: fiat_p384_u1 = 0;
> +     let (x367, x368) = fiat_p384_addcarryx_u32(x366, x307, x343);
> +-    let mut x369: u32 = 0;
> +-    let mut x370: fiat_p384_u1 = 0;
> +     let (x369, x370) = fiat_p384_addcarryx_u32(
> +         x368,
> +         ((x308 as u32) + (x274 as u32)),
> +         ((x344 as u32) + x310),
> +     );
> +-    let mut x371: u32 = 0;
> +-    let mut x372: u32 = 0;
> +     let (x371, x372) = fiat_p384_mulx_u32(x4, 0x2);
> +-    let mut x373: u32 = 0;
> +-    let mut x374: u32 = 0;
> +     let (x373, x374) = fiat_p384_mulx_u32(x4, 0xfffffffe);
> +-    let mut x375: u32 = 0;
> +-    let mut x376: u32 = 0;
> +     let (x375, x376) = fiat_p384_mulx_u32(x4, 0x2);
> +-    let mut x377: u32 = 0;
> +-    let mut x378: u32 = 0;
> +     let (x377, x378) = fiat_p384_mulx_u32(x4, 0xfffffffe);
> +-    let mut x379: u32 = 0;
> +-    let mut x380: fiat_p384_u1 = 0;
> +     let (x379, x380) = fiat_p384_addcarryx_u32(0x0, ((x372 as fiat_p384_u1) as u32), x4);
> +-    let mut x381: u32 = 0;
> +-    let mut x382: fiat_p384_u1 = 0;
> +     let (x381, x382) = fiat_p384_addcarryx_u32(0x0, x347, x4);
> +-    let mut x383: u32 = 0;
> +-    let mut x384: fiat_p384_u1 = 0;
> +     let (x383, x384) = fiat_p384_addcarryx_u32(x382, x349, x377);
> +-    let mut x385: u32 = 0;
> +-    let mut x386: fiat_p384_u1 = 0;
> +     let (x385, x386) = fiat_p384_addcarryx_u32(x384, x351, x378);
> +-    let mut x387: u32 = 0;
> +-    let mut x388: fiat_p384_u1 = 0;
> +     let (x387, x388) = fiat_p384_addcarryx_u32(x386, x353, x375);
> +-    let mut x389: u32 = 0;
> +-    let mut x390: fiat_p384_u1 = 0;
> +     let (x389, x390) = fiat_p384_addcarryx_u32(x388, x355, ((x376 as fiat_p384_u1) as u32));
> +-    let mut x391: u32 = 0;
> +-    let mut x392: fiat_p384_u1 = 0;
> +     let (x391, x392) = fiat_p384_addcarryx_u32(x390, x357, x373);
> +-    let mut x393: u32 = 0;
> +-    let mut x394: fiat_p384_u1 = 0;
> +     let (x393, x394) = fiat_p384_addcarryx_u32(x392, x359, x374);
> +-    let mut x395: u32 = 0;
> +-    let mut x396: fiat_p384_u1 = 0;
> +     let (x395, x396) = fiat_p384_addcarryx_u32(x394, x361, x371);
> +-    let mut x397: u32 = 0;
> +-    let mut x398: fiat_p384_u1 = 0;
> +     let (x397, x398) = fiat_p384_addcarryx_u32(x396, x363, x379);
> +-    let mut x399: u32 = 0;
> +-    let mut x400: fiat_p384_u1 = 0;
> +     let (x399, x400) = fiat_p384_addcarryx_u32(x398, x365, (x380 as u32));
> +-    let mut x401: u32 = 0;
> +-    let mut x402: fiat_p384_u1 = 0;
> +     let (x401, x402) = fiat_p384_addcarryx_u32(x400, x367, (0x0 as u32));
> +-    let mut x403: u32 = 0;
> +-    let mut x404: fiat_p384_u1 = 0;
> +     let (x403, x404) = fiat_p384_addcarryx_u32(x402, x369, (0x0 as u32));
> +-    let mut x405: u32 = 0;
> +-    let mut x406: u32 = 0;
> +     let (x405, x406) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x407: u32 = 0;
> +-    let mut x408: u32 = 0;
> +     let (x407, x408) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x409: u32 = 0;
> +-    let mut x410: u32 = 0;
> +     let (x409, x410) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x411: u32 = 0;
> +-    let mut x412: u32 = 0;
> +     let (x411, x412) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x413: u32 = 0;
> +-    let mut x414: u32 = 0;
> +     let (x413, x414) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x415: u32 = 0;
> +-    let mut x416: u32 = 0;
> +     let (x415, x416) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x417: u32 = 0;
> +-    let mut x418: u32 = 0;
> +     let (x417, x418) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x419: u32 = 0;
> +-    let mut x420: u32 = 0;
> +     let (x419, x420) = fiat_p384_mulx_u32(x381, 0xfffffffe);
> +-    let mut x421: u32 = 0;
> +-    let mut x422: u32 = 0;
> +     let (x421, x422) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x423: u32 = 0;
> +-    let mut x424: u32 = 0;
> +     let (x423, x424) = fiat_p384_mulx_u32(x381, 0xffffffff);
> +-    let mut x425: u32 = 0;
> +-    let mut x426: fiat_p384_u1 = 0;
> +     let (x425, x426) = fiat_p384_addcarryx_u32(0x0, x422, x419);
> +-    let mut x427: u32 = 0;
> +-    let mut x428: fiat_p384_u1 = 0;
> +     let (x427, x428) = fiat_p384_addcarryx_u32(x426, x420, x417);
> +-    let mut x429: u32 = 0;
> +-    let mut x430: fiat_p384_u1 = 0;
> +     let (x429, x430) = fiat_p384_addcarryx_u32(x428, x418, x415);
> +-    let mut x431: u32 = 0;
> +-    let mut x432: fiat_p384_u1 = 0;
> +     let (x431, x432) = fiat_p384_addcarryx_u32(x430, x416, x413);
> +-    let mut x433: u32 = 0;
> +-    let mut x434: fiat_p384_u1 = 0;
> +     let (x433, x434) = fiat_p384_addcarryx_u32(x432, x414, x411);
> +-    let mut x435: u32 = 0;
> +-    let mut x436: fiat_p384_u1 = 0;
> +     let (x435, x436) = fiat_p384_addcarryx_u32(x434, x412, x409);
> +-    let mut x437: u32 = 0;
> +-    let mut x438: fiat_p384_u1 = 0;
> +     let (x437, x438) = fiat_p384_addcarryx_u32(x436, x410, x407);
> +-    let mut x439: u32 = 0;
> +-    let mut x440: fiat_p384_u1 = 0;
> +     let (x439, x440) = fiat_p384_addcarryx_u32(x438, x408, x405);
> +-    let mut x441: u32 = 0;
> +-    let mut x442: fiat_p384_u1 = 0;
> +     let (x441, x442) = fiat_p384_addcarryx_u32(0x0, x381, x423);
> +-    let mut x443: u32 = 0;
> +-    let mut x444: fiat_p384_u1 = 0;
> +     let (x443, x444) = fiat_p384_addcarryx_u32(x442, x383, x424);
> +-    let mut x445: u32 = 0;
> +-    let mut x446: fiat_p384_u1 = 0;
> +     let (x445, x446) = fiat_p384_addcarryx_u32(x444, x385, (0x0 as u32));
> +-    let mut x447: u32 = 0;
> +-    let mut x448: fiat_p384_u1 = 0;
> +     let (x447, x448) = fiat_p384_addcarryx_u32(x446, x387, x421);
> +-    let mut x449: u32 = 0;
> +-    let mut x450: fiat_p384_u1 = 0;
> +     let (x449, x450) = fiat_p384_addcarryx_u32(x448, x389, x425);
> +-    let mut x451: u32 = 0;
> +-    let mut x452: fiat_p384_u1 = 0;
> +     let (x451, x452) = fiat_p384_addcarryx_u32(x450, x391, x427);
> +-    let mut x453: u32 = 0;
> +-    let mut x454: fiat_p384_u1 = 0;
> +     let (x453, x454) = fiat_p384_addcarryx_u32(x452, x393, x429);
> +-    let mut x455: u32 = 0;
> +-    let mut x456: fiat_p384_u1 = 0;
> +     let (x455, x456) = fiat_p384_addcarryx_u32(x454, x395, x431);
> +-    let mut x457: u32 = 0;
> +-    let mut x458: fiat_p384_u1 = 0;
> +     let (x457, x458) = fiat_p384_addcarryx_u32(x456, x397, x433);
> +-    let mut x459: u32 = 0;
> +-    let mut x460: fiat_p384_u1 = 0;
> +     let (x459, x460) = fiat_p384_addcarryx_u32(x458, x399, x435);
> +-    let mut x461: u32 = 0;
> +-    let mut x462: fiat_p384_u1 = 0;
> +     let (x461, x462) = fiat_p384_addcarryx_u32(x460, x401, x437);
> +-    let mut x463: u32 = 0;
> +-    let mut x464: fiat_p384_u1 = 0;
> +     let (x463, x464) = fiat_p384_addcarryx_u32(x462, x403, x439);
> +-    let mut x465: u32 = 0;
> +-    let mut x466: fiat_p384_u1 = 0;
> +     let (x465, x466) = fiat_p384_addcarryx_u32(
> +         x464,
> +         ((x404 as u32) + (x370 as u32)),
> +         ((x440 as u32) + x406),
> +     );
> +-    let mut x467: u32 = 0;
> +-    let mut x468: u32 = 0;
> +     let (x467, x468) = fiat_p384_mulx_u32(x5, 0x2);
> +-    let mut x469: u32 = 0;
> +-    let mut x470: u32 = 0;
> +     let (x469, x470) = fiat_p384_mulx_u32(x5, 0xfffffffe);
> +-    let mut x471: u32 = 0;
> +-    let mut x472: u32 = 0;
> +     let (x471, x472) = fiat_p384_mulx_u32(x5, 0x2);
> +-    let mut x473: u32 = 0;
> +-    let mut x474: u32 = 0;
> +     let (x473, x474) = fiat_p384_mulx_u32(x5, 0xfffffffe);
> +-    let mut x475: u32 = 0;
> +-    let mut x476: fiat_p384_u1 = 0;
> +     let (x475, x476) = fiat_p384_addcarryx_u32(0x0, ((x468 as fiat_p384_u1) as u32), x5);
> +-    let mut x477: u32 = 0;
> +-    let mut x478: fiat_p384_u1 = 0;
> +     let (x477, x478) = fiat_p384_addcarryx_u32(0x0, x443, x5);
> +-    let mut x479: u32 = 0;
> +-    let mut x480: fiat_p384_u1 = 0;
> +     let (x479, x480) = fiat_p384_addcarryx_u32(x478, x445, x473);
> +-    let mut x481: u32 = 0;
> +-    let mut x482: fiat_p384_u1 = 0;
> +     let (x481, x482) = fiat_p384_addcarryx_u32(x480, x447, x474);
> +-    let mut x483: u32 = 0;
> +-    let mut x484: fiat_p384_u1 = 0;
> +     let (x483, x484) = fiat_p384_addcarryx_u32(x482, x449, x471);
> +-    let mut x485: u32 = 0;
> +-    let mut x486: fiat_p384_u1 = 0;
> +     let (x485, x486) = fiat_p384_addcarryx_u32(x484, x451, ((x472 as fiat_p384_u1) as u32));
> +-    let mut x487: u32 = 0;
> +-    let mut x488: fiat_p384_u1 = 0;
> +     let (x487, x488) = fiat_p384_addcarryx_u32(x486, x453, x469);
> +-    let mut x489: u32 = 0;
> +-    let mut x490: fiat_p384_u1 = 0;
> +     let (x489, x490) = fiat_p384_addcarryx_u32(x488, x455, x470);
> +-    let mut x491: u32 = 0;
> +-    let mut x492: fiat_p384_u1 = 0;
> +     let (x491, x492) = fiat_p384_addcarryx_u32(x490, x457, x467);
> +-    let mut x493: u32 = 0;
> +-    let mut x494: fiat_p384_u1 = 0;
> +     let (x493, x494) = fiat_p384_addcarryx_u32(x492, x459, x475);
> +-    let mut x495: u32 = 0;
> +-    let mut x496: fiat_p384_u1 = 0;
> +     let (x495, x496) = fiat_p384_addcarryx_u32(x494, x461, (x476 as u32));
> +-    let mut x497: u32 = 0;
> +-    let mut x498: fiat_p384_u1 = 0;
> +     let (x497, x498) = fiat_p384_addcarryx_u32(x496, x463, (0x0 as u32));
> +-    let mut x499: u32 = 0;
> +-    let mut x500: fiat_p384_u1 = 0;
> +     let (x499, x500) = fiat_p384_addcarryx_u32(x498, x465, (0x0 as u32));
> +-    let mut x501: u32 = 0;
> +-    let mut x502: u32 = 0;
> +     let (x501, x502) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x503: u32 = 0;
> +-    let mut x504: u32 = 0;
> +     let (x503, x504) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x505: u32 = 0;
> +-    let mut x506: u32 = 0;
> +     let (x505, x506) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x507: u32 = 0;
> +-    let mut x508: u32 = 0;
> +     let (x507, x508) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x509: u32 = 0;
> +-    let mut x510: u32 = 0;
> +     let (x509, x510) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x511: u32 = 0;
> +-    let mut x512: u32 = 0;
> +     let (x511, x512) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x513: u32 = 0;
> +-    let mut x514: u32 = 0;
> +     let (x513, x514) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x515: u32 = 0;
> +-    let mut x516: u32 = 0;
> +     let (x515, x516) = fiat_p384_mulx_u32(x477, 0xfffffffe);
> +-    let mut x517: u32 = 0;
> +-    let mut x518: u32 = 0;
> +     let (x517, x518) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x519: u32 = 0;
> +-    let mut x520: u32 = 0;
> +     let (x519, x520) = fiat_p384_mulx_u32(x477, 0xffffffff);
> +-    let mut x521: u32 = 0;
> +-    let mut x522: fiat_p384_u1 = 0;
> +     let (x521, x522) = fiat_p384_addcarryx_u32(0x0, x518, x515);
> +-    let mut x523: u32 = 0;
> +-    let mut x524: fiat_p384_u1 = 0;
> +     let (x523, x524) = fiat_p384_addcarryx_u32(x522, x516, x513);
> +-    let mut x525: u32 = 0;
> +-    let mut x526: fiat_p384_u1 = 0;
> +     let (x525, x526) = fiat_p384_addcarryx_u32(x524, x514, x511);
> +-    let mut x527: u32 = 0;
> +-    let mut x528: fiat_p384_u1 = 0;
> +     let (x527, x528) = fiat_p384_addcarryx_u32(x526, x512, x509);
> +-    let mut x529: u32 = 0;
> +-    let mut x530: fiat_p384_u1 = 0;
> +     let (x529, x530) = fiat_p384_addcarryx_u32(x528, x510, x507);
> +-    let mut x531: u32 = 0;
> +-    let mut x532: fiat_p384_u1 = 0;
> +     let (x531, x532) = fiat_p384_addcarryx_u32(x530, x508, x505);
> +-    let mut x533: u32 = 0;
> +-    let mut x534: fiat_p384_u1 = 0;
> +     let (x533, x534) = fiat_p384_addcarryx_u32(x532, x506, x503);
> +-    let mut x535: u32 = 0;
> +-    let mut x536: fiat_p384_u1 = 0;
> +     let (x535, x536) = fiat_p384_addcarryx_u32(x534, x504, x501);
> +-    let mut x537: u32 = 0;
> +-    let mut x538: fiat_p384_u1 = 0;
> +     let (x537, x538) = fiat_p384_addcarryx_u32(0x0, x477, x519);
> +-    let mut x539: u32 = 0;
> +-    let mut x540: fiat_p384_u1 = 0;
> +     let (x539, x540) = fiat_p384_addcarryx_u32(x538, x479, x520);
> +-    let mut x541: u32 = 0;
> +-    let mut x542: fiat_p384_u1 = 0;
> +     let (x541, x542) = fiat_p384_addcarryx_u32(x540, x481, (0x0 as u32));
> +-    let mut x543: u32 = 0;
> +-    let mut x544: fiat_p384_u1 = 0;
> +     let (x543, x544) = fiat_p384_addcarryx_u32(x542, x483, x517);
> +-    let mut x545: u32 = 0;
> +-    let mut x546: fiat_p384_u1 = 0;
> +     let (x545, x546) = fiat_p384_addcarryx_u32(x544, x485, x521);
> +-    let mut x547: u32 = 0;
> +-    let mut x548: fiat_p384_u1 = 0;
> +     let (x547, x548) = fiat_p384_addcarryx_u32(x546, x487, x523);
> +-    let mut x549: u32 = 0;
> +-    let mut x550: fiat_p384_u1 = 0;
> +     let (x549, x550) = fiat_p384_addcarryx_u32(x548, x489, x525);
> +-    let mut x551: u32 = 0;
> +-    let mut x552: fiat_p384_u1 = 0;
> +     let (x551, x552) = fiat_p384_addcarryx_u32(x550, x491, x527);
> +-    let mut x553: u32 = 0;
> +-    let mut x554: fiat_p384_u1 = 0;
> +     let (x553, x554) = fiat_p384_addcarryx_u32(x552, x493, x529);
> +-    let mut x555: u32 = 0;
> +-    let mut x556: fiat_p384_u1 = 0;
> +     let (x555, x556) = fiat_p384_addcarryx_u32(x554, x495, x531);
> +-    let mut x557: u32 = 0;
> +-    let mut x558: fiat_p384_u1 = 0;
> +     let (x557, x558) = fiat_p384_addcarryx_u32(x556, x497, x533);
> +-    let mut x559: u32 = 0;
> +-    let mut x560: fiat_p384_u1 = 0;
> +     let (x559, x560) = fiat_p384_addcarryx_u32(x558, x499, x535);
> +-    let mut x561: u32 = 0;
> +-    let mut x562: fiat_p384_u1 = 0;
> +     let (x561, x562) = fiat_p384_addcarryx_u32(
> +         x560,
> +         ((x500 as u32) + (x466 as u32)),
> +         ((x536 as u32) + x502),
> +     );
> +-    let mut x563: u32 = 0;
> +-    let mut x564: u32 = 0;
> +     let (x563, x564) = fiat_p384_mulx_u32(x6, 0x2);
> +-    let mut x565: u32 = 0;
> +-    let mut x566: u32 = 0;
> +     let (x565, x566) = fiat_p384_mulx_u32(x6, 0xfffffffe);
> +-    let mut x567: u32 = 0;
> +-    let mut x568: u32 = 0;
> +     let (x567, x568) = fiat_p384_mulx_u32(x6, 0x2);
> +-    let mut x569: u32 = 0;
> +-    let mut x570: u32 = 0;
> +     let (x569, x570) = fiat_p384_mulx_u32(x6, 0xfffffffe);
> +-    let mut x571: u32 = 0;
> +-    let mut x572: fiat_p384_u1 = 0;
> +     let (x571, x572) = fiat_p384_addcarryx_u32(0x0, ((x564 as fiat_p384_u1) as u32), x6);
> +-    let mut x573: u32 = 0;
> +-    let mut x574: fiat_p384_u1 = 0;
> +     let (x573, x574) = fiat_p384_addcarryx_u32(0x0, x539, x6);
> +-    let mut x575: u32 = 0;
> +-    let mut x576: fiat_p384_u1 = 0;
> +     let (x575, x576) = fiat_p384_addcarryx_u32(x574, x541, x569);
> +-    let mut x577: u32 = 0;
> +-    let mut x578: fiat_p384_u1 = 0;
> +     let (x577, x578) = fiat_p384_addcarryx_u32(x576, x543, x570);
> +-    let mut x579: u32 = 0;
> +-    let mut x580: fiat_p384_u1 = 0;
> +     let (x579, x580) = fiat_p384_addcarryx_u32(x578, x545, x567);
> +-    let mut x581: u32 = 0;
> +-    let mut x582: fiat_p384_u1 = 0;
> +     let (x581, x582) = fiat_p384_addcarryx_u32(x580, x547, ((x568 as fiat_p384_u1) as u32));
> +-    let mut x583: u32 = 0;
> +-    let mut x584: fiat_p384_u1 = 0;
> +     let (x583, x584) = fiat_p384_addcarryx_u32(x582, x549, x565);
> +-    let mut x585: u32 = 0;
> +-    let mut x586: fiat_p384_u1 = 0;
> +     let (x585, x586) = fiat_p384_addcarryx_u32(x584, x551, x566);
> +-    let mut x587: u32 = 0;
> +-    let mut x588: fiat_p384_u1 = 0;
> +     let (x587, x588) = fiat_p384_addcarryx_u32(x586, x553, x563);
> +-    let mut x589: u32 = 0;
> +-    let mut x590: fiat_p384_u1 = 0;
> +     let (x589, x590) = fiat_p384_addcarryx_u32(x588, x555, x571);
> +-    let mut x591: u32 = 0;
> +-    let mut x592: fiat_p384_u1 = 0;
> +     let (x591, x592) = fiat_p384_addcarryx_u32(x590, x557, (x572 as u32));
> +-    let mut x593: u32 = 0;
> +-    let mut x594: fiat_p384_u1 = 0;
> +     let (x593, x594) = fiat_p384_addcarryx_u32(x592, x559, (0x0 as u32));
> +-    let mut x595: u32 = 0;
> +-    let mut x596: fiat_p384_u1 = 0;
> +     let (x595, x596) = fiat_p384_addcarryx_u32(x594, x561, (0x0 as u32));
> +-    let mut x597: u32 = 0;
> +-    let mut x598: u32 = 0;
> +     let (x597, x598) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x599: u32 = 0;
> +-    let mut x600: u32 = 0;
> +     let (x599, x600) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x601: u32 = 0;
> +-    let mut x602: u32 = 0;
> +     let (x601, x602) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x603: u32 = 0;
> +-    let mut x604: u32 = 0;
> +     let (x603, x604) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x605: u32 = 0;
> +-    let mut x606: u32 = 0;
> +     let (x605, x606) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x607: u32 = 0;
> +-    let mut x608: u32 = 0;
> +     let (x607, x608) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x609: u32 = 0;
> +-    let mut x610: u32 = 0;
> +     let (x609, x610) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x611: u32 = 0;
> +-    let mut x612: u32 = 0;
> +     let (x611, x612) = fiat_p384_mulx_u32(x573, 0xfffffffe);
> +-    let mut x613: u32 = 0;
> +-    let mut x614: u32 = 0;
> +     let (x613, x614) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x615: u32 = 0;
> +-    let mut x616: u32 = 0;
> +     let (x615, x616) = fiat_p384_mulx_u32(x573, 0xffffffff);
> +-    let mut x617: u32 = 0;
> +-    let mut x618: fiat_p384_u1 = 0;
> +     let (x617, x618) = fiat_p384_addcarryx_u32(0x0, x614, x611);
> +-    let mut x619: u32 = 0;
> +-    let mut x620: fiat_p384_u1 = 0;
> +     let (x619, x620) = fiat_p384_addcarryx_u32(x618, x612, x609);
> +-    let mut x621: u32 = 0;
> +-    let mut x622: fiat_p384_u1 = 0;
> +     let (x621, x622) = fiat_p384_addcarryx_u32(x620, x610, x607);
> +-    let mut x623: u32 = 0;
> +-    let mut x624: fiat_p384_u1 = 0;
> +     let (x623, x624) = fiat_p384_addcarryx_u32(x622, x608, x605);
> +-    let mut x625: u32 = 0;
> +-    let mut x626: fiat_p384_u1 = 0;
> +     let (x625, x626) = fiat_p384_addcarryx_u32(x624, x606, x603);
> +-    let mut x627: u32 = 0;
> +-    let mut x628: fiat_p384_u1 = 0;
> +     let (x627, x628) = fiat_p384_addcarryx_u32(x626, x604, x601);
> +-    let mut x629: u32 = 0;
> +-    let mut x630: fiat_p384_u1 = 0;
> +     let (x629, x630) = fiat_p384_addcarryx_u32(x628, x602, x599);
> +-    let mut x631: u32 = 0;
> +-    let mut x632: fiat_p384_u1 = 0;
> +     let (x631, x632) = fiat_p384_addcarryx_u32(x630, x600, x597);
> +-    let mut x633: u32 = 0;
> +-    let mut x634: fiat_p384_u1 = 0;
> +     let (x633, x634) = fiat_p384_addcarryx_u32(0x0, x573, x615);
> +-    let mut x635: u32 = 0;
> +-    let mut x636: fiat_p384_u1 = 0;
> +     let (x635, x636) = fiat_p384_addcarryx_u32(x634, x575, x616);
> +-    let mut x637: u32 = 0;
> +-    let mut x638: fiat_p384_u1 = 0;
> +     let (x637, x638) = fiat_p384_addcarryx_u32(x636, x577, (0x0 as u32));
> +-    let mut x639: u32 = 0;
> +-    let mut x640: fiat_p384_u1 = 0;
> +     let (x639, x640) = fiat_p384_addcarryx_u32(x638, x579, x613);
> +-    let mut x641: u32 = 0;
> +-    let mut x642: fiat_p384_u1 = 0;
> +     let (x641, x642) = fiat_p384_addcarryx_u32(x640, x581, x617);
> +-    let mut x643: u32 = 0;
> +-    let mut x644: fiat_p384_u1 = 0;
> +     let (x643, x644) = fiat_p384_addcarryx_u32(x642, x583, x619);
> +-    let mut x645: u32 = 0;
> +-    let mut x646: fiat_p384_u1 = 0;
> +     let (x645, x646) = fiat_p384_addcarryx_u32(x644, x585, x621);
> +-    let mut x647: u32 = 0;
> +-    let mut x648: fiat_p384_u1 = 0;
> +     let (x647, x648) = fiat_p384_addcarryx_u32(x646, x587, x623);
> +-    let mut x649: u32 = 0;
> +-    let mut x650: fiat_p384_u1 = 0;
> +     let (x649, x650) = fiat_p384_addcarryx_u32(x648, x589, x625);
> +-    let mut x651: u32 = 0;
> +-    let mut x652: fiat_p384_u1 = 0;
> +     let (x651, x652) = fiat_p384_addcarryx_u32(x650, x591, x627);
> +-    let mut x653: u32 = 0;
> +-    let mut x654: fiat_p384_u1 = 0;
> +     let (x653, x654) = fiat_p384_addcarryx_u32(x652, x593, x629);
> +-    let mut x655: u32 = 0;
> +-    let mut x656: fiat_p384_u1 = 0;
> +     let (x655, x656) = fiat_p384_addcarryx_u32(x654, x595, x631);
> +-    let mut x657: u32 = 0;
> +-    let mut x658: fiat_p384_u1 = 0;
> +     let (x657, x658) = fiat_p384_addcarryx_u32(
> +         x656,
> +         ((x596 as u32) + (x562 as u32)),
> +         ((x632 as u32) + x598),
> +     );
> +-    let mut x659: u32 = 0;
> +-    let mut x660: u32 = 0;
> +     let (x659, x660) = fiat_p384_mulx_u32(x7, 0x2);
> +-    let mut x661: u32 = 0;
> +-    let mut x662: u32 = 0;
> +     let (x661, x662) = fiat_p384_mulx_u32(x7, 0xfffffffe);
> +-    let mut x663: u32 = 0;
> +-    let mut x664: u32 = 0;
> +     let (x663, x664) = fiat_p384_mulx_u32(x7, 0x2);
> +-    let mut x665: u32 = 0;
> +-    let mut x666: u32 = 0;
> +     let (x665, x666) = fiat_p384_mulx_u32(x7, 0xfffffffe);
> +-    let mut x667: u32 = 0;
> +-    let mut x668: fiat_p384_u1 = 0;
> +     let (x667, x668) = fiat_p384_addcarryx_u32(0x0, ((x660 as fiat_p384_u1) as u32), x7);
> +-    let mut x669: u32 = 0;
> +-    let mut x670: fiat_p384_u1 = 0;
> +     let (x669, x670) = fiat_p384_addcarryx_u32(0x0, x635, x7);
> +-    let mut x671: u32 = 0;
> +-    let mut x672: fiat_p384_u1 = 0;
> +     let (x671, x672) = fiat_p384_addcarryx_u32(x670, x637, x665);
> +-    let mut x673: u32 = 0;
> +-    let mut x674: fiat_p384_u1 = 0;
> +     let (x673, x674) = fiat_p384_addcarryx_u32(x672, x639, x666);
> +-    let mut x675: u32 = 0;
> +-    let mut x676: fiat_p384_u1 = 0;
> +     let (x675, x676) = fiat_p384_addcarryx_u32(x674, x641, x663);
> +-    let mut x677: u32 = 0;
> +-    let mut x678: fiat_p384_u1 = 0;
> +     let (x677, x678) = fiat_p384_addcarryx_u32(x676, x643, ((x664 as fiat_p384_u1) as u32));
> +-    let mut x679: u32 = 0;
> +-    let mut x680: fiat_p384_u1 = 0;
> +     let (x679, x680) = fiat_p384_addcarryx_u32(x678, x645, x661);
> +-    let mut x681: u32 = 0;
> +-    let mut x682: fiat_p384_u1 = 0;
> +     let (x681, x682) = fiat_p384_addcarryx_u32(x680, x647, x662);
> +-    let mut x683: u32 = 0;
> +-    let mut x684: fiat_p384_u1 = 0;
> +     let (x683, x684) = fiat_p384_addcarryx_u32(x682, x649, x659);
> +-    let mut x685: u32 = 0;
> +-    let mut x686: fiat_p384_u1 = 0;
> +     let (x685, x686) = fiat_p384_addcarryx_u32(x684, x651, x667);
> +-    let mut x687: u32 = 0;
> +-    let mut x688: fiat_p384_u1 = 0;
> +     let (x687, x688) = fiat_p384_addcarryx_u32(x686, x653, (x668 as u32));
> +-    let mut x689: u32 = 0;
> +-    let mut x690: fiat_p384_u1 = 0;
> +     let (x689, x690) = fiat_p384_addcarryx_u32(x688, x655, (0x0 as u32));
> +-    let mut x691: u32 = 0;
> +-    let mut x692: fiat_p384_u1 = 0;
> +     let (x691, x692) = fiat_p384_addcarryx_u32(x690, x657, (0x0 as u32));
> +-    let mut x693: u32 = 0;
> +-    let mut x694: u32 = 0;
> +     let (x693, x694) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x695: u32 = 0;
> +-    let mut x696: u32 = 0;
> +     let (x695, x696) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x697: u32 = 0;
> +-    let mut x698: u32 = 0;
> +     let (x697, x698) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x699: u32 = 0;
> +-    let mut x700: u32 = 0;
> +     let (x699, x700) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x701: u32 = 0;
> +-    let mut x702: u32 = 0;
> +     let (x701, x702) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x703: u32 = 0;
> +-    let mut x704: u32 = 0;
> +     let (x703, x704) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x705: u32 = 0;
> +-    let mut x706: u32 = 0;
> +     let (x705, x706) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x707: u32 = 0;
> +-    let mut x708: u32 = 0;
> +     let (x707, x708) = fiat_p384_mulx_u32(x669, 0xfffffffe);
> +-    let mut x709: u32 = 0;
> +-    let mut x710: u32 = 0;
> +     let (x709, x710) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x711: u32 = 0;
> +-    let mut x712: u32 = 0;
> +     let (x711, x712) = fiat_p384_mulx_u32(x669, 0xffffffff);
> +-    let mut x713: u32 = 0;
> +-    let mut x714: fiat_p384_u1 = 0;
> +     let (x713, x714) = fiat_p384_addcarryx_u32(0x0, x710, x707);
> +-    let mut x715: u32 = 0;
> +-    let mut x716: fiat_p384_u1 = 0;
> +     let (x715, x716) = fiat_p384_addcarryx_u32(x714, x708, x705);
> +-    let mut x717: u32 = 0;
> +-    let mut x718: fiat_p384_u1 = 0;
> +     let (x717, x718) = fiat_p384_addcarryx_u32(x716, x706, x703);
> +-    let mut x719: u32 = 0;
> +-    let mut x720: fiat_p384_u1 = 0;
> +     let (x719, x720) = fiat_p384_addcarryx_u32(x718, x704, x701);
> +-    let mut x721: u32 = 0;
> +-    let mut x722: fiat_p384_u1 = 0;
> +     let (x721, x722) = fiat_p384_addcarryx_u32(x720, x702, x699);
> +-    let mut x723: u32 = 0;
> +-    let mut x724: fiat_p384_u1 = 0;
> +     let (x723, x724) = fiat_p384_addcarryx_u32(x722, x700, x697);
> +-    let mut x725: u32 = 0;
> +-    let mut x726: fiat_p384_u1 = 0;
> +     let (x725, x726) = fiat_p384_addcarryx_u32(x724, x698, x695);
> +-    let mut x727: u32 = 0;
> +-    let mut x728: fiat_p384_u1 = 0;
> +     let (x727, x728) = fiat_p384_addcarryx_u32(x726, x696, x693);
> +-    let mut x729: u32 = 0;
> +-    let mut x730: fiat_p384_u1 = 0;
> +     let (x729, x730) = fiat_p384_addcarryx_u32(0x0, x669, x711);
> +-    let mut x731: u32 = 0;
> +-    let mut x732: fiat_p384_u1 = 0;
> +     let (x731, x732) = fiat_p384_addcarryx_u32(x730, x671, x712);
> +-    let mut x733: u32 = 0;
> +-    let mut x734: fiat_p384_u1 = 0;
> +     let (x733, x734) = fiat_p384_addcarryx_u32(x732, x673, (0x0 as u32));
> +-    let mut x735: u32 = 0;
> +-    let mut x736: fiat_p384_u1 = 0;
> +     let (x735, x736) = fiat_p384_addcarryx_u32(x734, x675, x709);
> +-    let mut x737: u32 = 0;
> +-    let mut x738: fiat_p384_u1 = 0;
> +     let (x737, x738) = fiat_p384_addcarryx_u32(x736, x677, x713);
> +-    let mut x739: u32 = 0;
> +-    let mut x740: fiat_p384_u1 = 0;
> +     let (x739, x740) = fiat_p384_addcarryx_u32(x738, x679, x715);
> +-    let mut x741: u32 = 0;
> +-    let mut x742: fiat_p384_u1 = 0;
> +     let (x741, x742) = fiat_p384_addcarryx_u32(x740, x681, x717);
> +-    let mut x743: u32 = 0;
> +-    let mut x744: fiat_p384_u1 = 0;
> +     let (x743, x744) = fiat_p384_addcarryx_u32(x742, x683, x719);
> +-    let mut x745: u32 = 0;
> +-    let mut x746: fiat_p384_u1 = 0;
> +     let (x745, x746) = fiat_p384_addcarryx_u32(x744, x685, x721);
> +-    let mut x747: u32 = 0;
> +-    let mut x748: fiat_p384_u1 = 0;
> +     let (x747, x748) = fiat_p384_addcarryx_u32(x746, x687, x723);
> +-    let mut x749: u32 = 0;
> +-    let mut x750: fiat_p384_u1 = 0;
> +     let (x749, x750) = fiat_p384_addcarryx_u32(x748, x689, x725);
> +-    let mut x751: u32 = 0;
> +-    let mut x752: fiat_p384_u1 = 0;
> +     let (x751, x752) = fiat_p384_addcarryx_u32(x750, x691, x727);
> +-    let mut x753: u32 = 0;
> +-    let mut x754: fiat_p384_u1 = 0;
> +     let (x753, x754) = fiat_p384_addcarryx_u32(
> +         x752,
> +         ((x692 as u32) + (x658 as u32)),
> +         ((x728 as u32) + x694),
> +     );
> +-    let mut x755: u32 = 0;
> +-    let mut x756: u32 = 0;
> +     let (x755, x756) = fiat_p384_mulx_u32(x8, 0x2);
> +-    let mut x757: u32 = 0;
> +-    let mut x758: u32 = 0;
> +     let (x757, x758) = fiat_p384_mulx_u32(x8, 0xfffffffe);
> +-    let mut x759: u32 = 0;
> +-    let mut x760: u32 = 0;
> +     let (x759, x760) = fiat_p384_mulx_u32(x8, 0x2);
> +-    let mut x761: u32 = 0;
> +-    let mut x762: u32 = 0;
> +     let (x761, x762) = fiat_p384_mulx_u32(x8, 0xfffffffe);
> +-    let mut x763: u32 = 0;
> +-    let mut x764: fiat_p384_u1 = 0;
> +     let (x763, x764) = fiat_p384_addcarryx_u32(0x0, ((x756 as fiat_p384_u1) as u32), x8);
> +-    let mut x765: u32 = 0;
> +-    let mut x766: fiat_p384_u1 = 0;
> +     let (x765, x766) = fiat_p384_addcarryx_u32(0x0, x731, x8);
> +-    let mut x767: u32 = 0;
> +-    let mut x768: fiat_p384_u1 = 0;
> +     let (x767, x768) = fiat_p384_addcarryx_u32(x766, x733, x761);
> +-    let mut x769: u32 = 0;
> +-    let mut x770: fiat_p384_u1 = 0;
> +     let (x769, x770) = fiat_p384_addcarryx_u32(x768, x735, x762);
> +-    let mut x771: u32 = 0;
> +-    let mut x772: fiat_p384_u1 = 0;
> +     let (x771, x772) = fiat_p384_addcarryx_u32(x770, x737, x759);
> +-    let mut x773: u32 = 0;
> +-    let mut x774: fiat_p384_u1 = 0;
> +     let (x773, x774) = fiat_p384_addcarryx_u32(x772, x739, ((x760 as fiat_p384_u1) as u32));
> +-    let mut x775: u32 = 0;
> +-    let mut x776: fiat_p384_u1 = 0;
> +     let (x775, x776) = fiat_p384_addcarryx_u32(x774, x741, x757);
> +-    let mut x777: u32 = 0;
> +-    let mut x778: fiat_p384_u1 = 0;
> +     let (x777, x778) = fiat_p384_addcarryx_u32(x776, x743, x758);
> +-    let mut x779: u32 = 0;
> +-    let mut x780: fiat_p384_u1 = 0;
> +     let (x779, x780) = fiat_p384_addcarryx_u32(x778, x745, x755);
> +-    let mut x781: u32 = 0;
> +-    let mut x782: fiat_p384_u1 = 0;
> +     let (x781, x782) = fiat_p384_addcarryx_u32(x780, x747, x763);
> +-    let mut x783: u32 = 0;
> +-    let mut x784: fiat_p384_u1 = 0;
> +     let (x783, x784) = fiat_p384_addcarryx_u32(x782, x749, (x764 as u32));
> +-    let mut x785: u32 = 0;
> +-    let mut x786: fiat_p384_u1 = 0;
> +     let (x785, x786) = fiat_p384_addcarryx_u32(x784, x751, (0x0 as u32));
> +-    let mut x787: u32 = 0;
> +-    let mut x788: fiat_p384_u1 = 0;
> +     let (x787, x788) = fiat_p384_addcarryx_u32(x786, x753, (0x0 as u32));
> +-    let mut x789: u32 = 0;
> +-    let mut x790: u32 = 0;
> +     let (x789, x790) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x791: u32 = 0;
> +-    let mut x792: u32 = 0;
> +     let (x791, x792) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x793: u32 = 0;
> +-    let mut x794: u32 = 0;
> +     let (x793, x794) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x795: u32 = 0;
> +-    let mut x796: u32 = 0;
> +     let (x795, x796) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x797: u32 = 0;
> +-    let mut x798: u32 = 0;
> +     let (x797, x798) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x799: u32 = 0;
> +-    let mut x800: u32 = 0;
> +     let (x799, x800) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x801: u32 = 0;
> +-    let mut x802: u32 = 0;
> +     let (x801, x802) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x803: u32 = 0;
> +-    let mut x804: u32 = 0;
> +     let (x803, x804) = fiat_p384_mulx_u32(x765, 0xfffffffe);
> +-    let mut x805: u32 = 0;
> +-    let mut x806: u32 = 0;
> +     let (x805, x806) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x807: u32 = 0;
> +-    let mut x808: u32 = 0;
> +     let (x807, x808) = fiat_p384_mulx_u32(x765, 0xffffffff);
> +-    let mut x809: u32 = 0;
> +-    let mut x810: fiat_p384_u1 = 0;
> +     let (x809, x810) = fiat_p384_addcarryx_u32(0x0, x806, x803);
> +-    let mut x811: u32 = 0;
> +-    let mut x812: fiat_p384_u1 = 0;
> +     let (x811, x812) = fiat_p384_addcarryx_u32(x810, x804, x801);
> +-    let mut x813: u32 = 0;
> +-    let mut x814: fiat_p384_u1 = 0;
> +     let (x813, x814) = fiat_p384_addcarryx_u32(x812, x802, x799);
> +-    let mut x815: u32 = 0;
> +-    let mut x816: fiat_p384_u1 = 0;
> +     let (x815, x816) = fiat_p384_addcarryx_u32(x814, x800, x797);
> +-    let mut x817: u32 = 0;
> +-    let mut x818: fiat_p384_u1 = 0;
> +     let (x817, x818) = fiat_p384_addcarryx_u32(x816, x798, x795);
> +-    let mut x819: u32 = 0;
> +-    let mut x820: fiat_p384_u1 = 0;
> +     let (x819, x820) = fiat_p384_addcarryx_u32(x818, x796, x793);
> +-    let mut x821: u32 = 0;
> +-    let mut x822: fiat_p384_u1 = 0;
> +     let (x821, x822) = fiat_p384_addcarryx_u32(x820, x794, x791);
> +-    let mut x823: u32 = 0;
> +-    let mut x824: fiat_p384_u1 = 0;
> +     let (x823, x824) = fiat_p384_addcarryx_u32(x822, x792, x789);
> +-    let mut x825: u32 = 0;
> +-    let mut x826: fiat_p384_u1 = 0;
> +     let (x825, x826) = fiat_p384_addcarryx_u32(0x0, x765, x807);
> +-    let mut x827: u32 = 0;
> +-    let mut x828: fiat_p384_u1 = 0;
> +     let (x827, x828) = fiat_p384_addcarryx_u32(x826, x767, x808);
> +-    let mut x829: u32 = 0;
> +-    let mut x830: fiat_p384_u1 = 0;
> +     let (x829, x830) = fiat_p384_addcarryx_u32(x828, x769, (0x0 as u32));
> +-    let mut x831: u32 = 0;
> +-    let mut x832: fiat_p384_u1 = 0;
> +     let (x831, x832) = fiat_p384_addcarryx_u32(x830, x771, x805);
> +-    let mut x833: u32 = 0;
> +-    let mut x834: fiat_p384_u1 = 0;
> +     let (x833, x834) = fiat_p384_addcarryx_u32(x832, x773, x809);
> +-    let mut x835: u32 = 0;
> +-    let mut x836: fiat_p384_u1 = 0;
> +     let (x835, x836) = fiat_p384_addcarryx_u32(x834, x775, x811);
> +-    let mut x837: u32 = 0;
> +-    let mut x838: fiat_p384_u1 = 0;
> +     let (x837, x838) = fiat_p384_addcarryx_u32(x836, x777, x813);
> +-    let mut x839: u32 = 0;
> +-    let mut x840: fiat_p384_u1 = 0;
> +     let (x839, x840) = fiat_p384_addcarryx_u32(x838, x779, x815);
> +-    let mut x841: u32 = 0;
> +-    let mut x842: fiat_p384_u1 = 0;
> +     let (x841, x842) = fiat_p384_addcarryx_u32(x840, x781, x817);
> +-    let mut x843: u32 = 0;
> +-    let mut x844: fiat_p384_u1 = 0;
> +     let (x843, x844) = fiat_p384_addcarryx_u32(x842, x783, x819);
> +-    let mut x845: u32 = 0;
> +-    let mut x846: fiat_p384_u1 = 0;
> +     let (x845, x846) = fiat_p384_addcarryx_u32(x844, x785, x821);
> +-    let mut x847: u32 = 0;
> +-    let mut x848: fiat_p384_u1 = 0;
> +     let (x847, x848) = fiat_p384_addcarryx_u32(x846, x787, x823);
> +-    let mut x849: u32 = 0;
> +-    let mut x850: fiat_p384_u1 = 0;
> +     let (x849, x850) = fiat_p384_addcarryx_u32(
> +         x848,
> +         ((x788 as u32) + (x754 as u32)),
> +         ((x824 as u32) + x790),
> +     );
> +-    let mut x851: u32 = 0;
> +-    let mut x852: u32 = 0;
> +     let (x851, x852) = fiat_p384_mulx_u32(x9, 0x2);
> +-    let mut x853: u32 = 0;
> +-    let mut x854: u32 = 0;
> +     let (x853, x854) = fiat_p384_mulx_u32(x9, 0xfffffffe);
> +-    let mut x855: u32 = 0;
> +-    let mut x856: u32 = 0;
> +     let (x855, x856) = fiat_p384_mulx_u32(x9, 0x2);
> +-    let mut x857: u32 = 0;
> +-    let mut x858: u32 = 0;
> +     let (x857, x858) = fiat_p384_mulx_u32(x9, 0xfffffffe);
> +-    let mut x859: u32 = 0;
> +-    let mut x860: fiat_p384_u1 = 0;
> +     let (x859, x860) = fiat_p384_addcarryx_u32(0x0, ((x852 as fiat_p384_u1) as u32), x9);
> +-    let mut x861: u32 = 0;
> +-    let mut x862: fiat_p384_u1 = 0;
> +     let (x861, x862) = fiat_p384_addcarryx_u32(0x0, x827, x9);
> +-    let mut x863: u32 = 0;
> +-    let mut x864: fiat_p384_u1 = 0;
> +     let (x863, x864) = fiat_p384_addcarryx_u32(x862, x829, x857);
> +-    let mut x865: u32 = 0;
> +-    let mut x866: fiat_p384_u1 = 0;
> +     let (x865, x866) = fiat_p384_addcarryx_u32(x864, x831, x858);
> +-    let mut x867: u32 = 0;
> +-    let mut x868: fiat_p384_u1 = 0;
> +     let (x867, x868) = fiat_p384_addcarryx_u32(x866, x833, x855);
> +-    let mut x869: u32 = 0;
> +-    let mut x870: fiat_p384_u1 = 0;
> +     let (x869, x870) = fiat_p384_addcarryx_u32(x868, x835, ((x856 as fiat_p384_u1) as u32));
> +-    let mut x871: u32 = 0;
> +-    let mut x872: fiat_p384_u1 = 0;
> +     let (x871, x872) = fiat_p384_addcarryx_u32(x870, x837, x853);
> +-    let mut x873: u32 = 0;
> +-    let mut x874: fiat_p384_u1 = 0;
> +     let (x873, x874) = fiat_p384_addcarryx_u32(x872, x839, x854);
> +-    let mut x875: u32 = 0;
> +-    let mut x876: fiat_p384_u1 = 0;
> +     let (x875, x876) = fiat_p384_addcarryx_u32(x874, x841, x851);
> +-    let mut x877: u32 = 0;
> +-    let mut x878: fiat_p384_u1 = 0;
> +     let (x877, x878) = fiat_p384_addcarryx_u32(x876, x843, x859);
> +-    let mut x879: u32 = 0;
> +-    let mut x880: fiat_p384_u1 = 0;
> +     let (x879, x880) = fiat_p384_addcarryx_u32(x878, x845, (x860 as u32));
> +-    let mut x881: u32 = 0;
> +-    let mut x882: fiat_p384_u1 = 0;
> +     let (x881, x882) = fiat_p384_addcarryx_u32(x880, x847, (0x0 as u32));
> +-    let mut x883: u32 = 0;
> +-    let mut x884: fiat_p384_u1 = 0;
> +     let (x883, x884) = fiat_p384_addcarryx_u32(x882, x849, (0x0 as u32));
> +-    let mut x885: u32 = 0;
> +-    let mut x886: u32 = 0;
> +     let (x885, x886) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x887: u32 = 0;
> +-    let mut x888: u32 = 0;
> +     let (x887, x888) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x889: u32 = 0;
> +-    let mut x890: u32 = 0;
> +     let (x889, x890) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x891: u32 = 0;
> +-    let mut x892: u32 = 0;
> +     let (x891, x892) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x893: u32 = 0;
> +-    let mut x894: u32 = 0;
> +     let (x893, x894) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x895: u32 = 0;
> +-    let mut x896: u32 = 0;
> +     let (x895, x896) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x897: u32 = 0;
> +-    let mut x898: u32 = 0;
> +     let (x897, x898) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x899: u32 = 0;
> +-    let mut x900: u32 = 0;
> +     let (x899, x900) = fiat_p384_mulx_u32(x861, 0xfffffffe);
> +-    let mut x901: u32 = 0;
> +-    let mut x902: u32 = 0;
> +     let (x901, x902) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x903: u32 = 0;
> +-    let mut x904: u32 = 0;
> +     let (x903, x904) = fiat_p384_mulx_u32(x861, 0xffffffff);
> +-    let mut x905: u32 = 0;
> +-    let mut x906: fiat_p384_u1 = 0;
> +     let (x905, x906) = fiat_p384_addcarryx_u32(0x0, x902, x899);
> +-    let mut x907: u32 = 0;
> +-    let mut x908: fiat_p384_u1 = 0;
> +     let (x907, x908) = fiat_p384_addcarryx_u32(x906, x900, x897);
> +-    let mut x909: u32 = 0;
> +-    let mut x910: fiat_p384_u1 = 0;
> +     let (x909, x910) = fiat_p384_addcarryx_u32(x908, x898, x895);
> +-    let mut x911: u32 = 0;
> +-    let mut x912: fiat_p384_u1 = 0;
> +     let (x911, x912) = fiat_p384_addcarryx_u32(x910, x896, x893);
> +-    let mut x913: u32 = 0;
> +-    let mut x914: fiat_p384_u1 = 0;
> +     let (x913, x914) = fiat_p384_addcarryx_u32(x912, x894, x891);
> +-    let mut x915: u32 = 0;
> +-    let mut x916: fiat_p384_u1 = 0;
> +     let (x915, x916) = fiat_p384_addcarryx_u32(x914, x892, x889);
> +-    let mut x917: u32 = 0;
> +-    let mut x918: fiat_p384_u1 = 0;
> +     let (x917, x918) = fiat_p384_addcarryx_u32(x916, x890, x887);
> +-    let mut x919: u32 = 0;
> +-    let mut x920: fiat_p384_u1 = 0;
> +     let (x919, x920) = fiat_p384_addcarryx_u32(x918, x888, x885);
> +-    let mut x921: u32 = 0;
> +-    let mut x922: fiat_p384_u1 = 0;
> +     let (x921, x922) = fiat_p384_addcarryx_u32(0x0, x861, x903);
> +-    let mut x923: u32 = 0;
> +-    let mut x924: fiat_p384_u1 = 0;
> +     let (x923, x924) = fiat_p384_addcarryx_u32(x922, x863, x904);
> +-    let mut x925: u32 = 0;
> +-    let mut x926: fiat_p384_u1 = 0;
> +     let (x925, x926) = fiat_p384_addcarryx_u32(x924, x865, (0x0 as u32));
> +-    let mut x927: u32 = 0;
> +-    let mut x928: fiat_p384_u1 = 0;
> +     let (x927, x928) = fiat_p384_addcarryx_u32(x926, x867, x901);
> +-    let mut x929: u32 = 0;
> +-    let mut x930: fiat_p384_u1 = 0;
> +     let (x929, x930) = fiat_p384_addcarryx_u32(x928, x869, x905);
> +-    let mut x931: u32 = 0;
> +-    let mut x932: fiat_p384_u1 = 0;
> +     let (x931, x932) = fiat_p384_addcarryx_u32(x930, x871, x907);
> +-    let mut x933: u32 = 0;
> +-    let mut x934: fiat_p384_u1 = 0;
> +     let (x933, x934) = fiat_p384_addcarryx_u32(x932, x873, x909);
> +-    let mut x935: u32 = 0;
> +-    let mut x936: fiat_p384_u1 = 0;
> +     let (x935, x936) = fiat_p384_addcarryx_u32(x934, x875, x911);
> +-    let mut x937: u32 = 0;
> +-    let mut x938: fiat_p384_u1 = 0;
> +     let (x937, x938) = fiat_p384_addcarryx_u32(x936, x877, x913);
> +-    let mut x939: u32 = 0;
> +-    let mut x940: fiat_p384_u1 = 0;
> +     let (x939, x940) = fiat_p384_addcarryx_u32(x938, x879, x915);
> +-    let mut x941: u32 = 0;
> +-    let mut x942: fiat_p384_u1 = 0;
> +     let (x941, x942) = fiat_p384_addcarryx_u32(x940, x881, x917);
> +-    let mut x943: u32 = 0;
> +-    let mut x944: fiat_p384_u1 = 0;
> +     let (x943, x944) = fiat_p384_addcarryx_u32(x942, x883, x919);
> +-    let mut x945: u32 = 0;
> +-    let mut x946: fiat_p384_u1 = 0;
> +     let (x945, x946) = fiat_p384_addcarryx_u32(
> +         x944,
> +         ((x884 as u32) + (x850 as u32)),
> +         ((x920 as u32) + x886),
> +     );
> +-    let mut x947: u32 = 0;
> +-    let mut x948: u32 = 0;
> +     let (x947, x948) = fiat_p384_mulx_u32(x10, 0x2);
> +-    let mut x949: u32 = 0;
> +-    let mut x950: u32 = 0;
> +     let (x949, x950) = fiat_p384_mulx_u32(x10, 0xfffffffe);
> +-    let mut x951: u32 = 0;
> +-    let mut x952: u32 = 0;
> +     let (x951, x952) = fiat_p384_mulx_u32(x10, 0x2);
> +-    let mut x953: u32 = 0;
> +-    let mut x954: u32 = 0;
> +     let (x953, x954) = fiat_p384_mulx_u32(x10, 0xfffffffe);
> +-    let mut x955: u32 = 0;
> +-    let mut x956: fiat_p384_u1 = 0;
> +     let (x955, x956) = fiat_p384_addcarryx_u32(0x0, ((x948 as fiat_p384_u1) as u32), x10);
> +-    let mut x957: u32 = 0;
> +-    let mut x958: fiat_p384_u1 = 0;
> +     let (x957, x958) = fiat_p384_addcarryx_u32(0x0, x923, x10);
> +-    let mut x959: u32 = 0;
> +-    let mut x960: fiat_p384_u1 = 0;
> +     let (x959, x960) = fiat_p384_addcarryx_u32(x958, x925, x953);
> +-    let mut x961: u32 = 0;
> +-    let mut x962: fiat_p384_u1 = 0;
> +     let (x961, x962) = fiat_p384_addcarryx_u32(x960, x927, x954);
> +-    let mut x963: u32 = 0;
> +-    let mut x964: fiat_p384_u1 = 0;
> +     let (x963, x964) = fiat_p384_addcarryx_u32(x962, x929, x951);
> +-    let mut x965: u32 = 0;
> +-    let mut x966: fiat_p384_u1 = 0;
> +     let (x965, x966) = fiat_p384_addcarryx_u32(x964, x931, ((x952 as fiat_p384_u1) as u32));
> +-    let mut x967: u32 = 0;
> +-    let mut x968: fiat_p384_u1 = 0;
> +     let (x967, x968) = fiat_p384_addcarryx_u32(x966, x933, x949);
> +-    let mut x969: u32 = 0;
> +-    let mut x970: fiat_p384_u1 = 0;
> +     let (x969, x970) = fiat_p384_addcarryx_u32(x968, x935, x950);
> +-    let mut x971: u32 = 0;
> +-    let mut x972: fiat_p384_u1 = 0;
> +     let (x971, x972) = fiat_p384_addcarryx_u32(x970, x937, x947);
> +-    let mut x973: u32 = 0;
> +-    let mut x974: fiat_p384_u1 = 0;
> +     let (x973, x974) = fiat_p384_addcarryx_u32(x972, x939, x955);
> +-    let mut x975: u32 = 0;
> +-    let mut x976: fiat_p384_u1 = 0;
> +     let (x975, x976) = fiat_p384_addcarryx_u32(x974, x941, (x956 as u32));
> +-    let mut x977: u32 = 0;
> +-    let mut x978: fiat_p384_u1 = 0;
> +     let (x977, x978) = fiat_p384_addcarryx_u32(x976, x943, (0x0 as u32));
> +-    let mut x979: u32 = 0;
> +-    let mut x980: fiat_p384_u1 = 0;
> +     let (x979, x980) = fiat_p384_addcarryx_u32(x978, x945, (0x0 as u32));
> +-    let mut x981: u32 = 0;
> +-    let mut x982: u32 = 0;
> +     let (x981, x982) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x983: u32 = 0;
> +-    let mut x984: u32 = 0;
> +     let (x983, x984) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x985: u32 = 0;
> +-    let mut x986: u32 = 0;
> +     let (x985, x986) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x987: u32 = 0;
> +-    let mut x988: u32 = 0;
> +     let (x987, x988) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x989: u32 = 0;
> +-    let mut x990: u32 = 0;
> +     let (x989, x990) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x991: u32 = 0;
> +-    let mut x992: u32 = 0;
> +     let (x991, x992) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x993: u32 = 0;
> +-    let mut x994: u32 = 0;
> +     let (x993, x994) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x995: u32 = 0;
> +-    let mut x996: u32 = 0;
> +     let (x995, x996) = fiat_p384_mulx_u32(x957, 0xfffffffe);
> +-    let mut x997: u32 = 0;
> +-    let mut x998: u32 = 0;
> +     let (x997, x998) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x999: u32 = 0;
> +-    let mut x1000: u32 = 0;
> +     let (x999, x1000) = fiat_p384_mulx_u32(x957, 0xffffffff);
> +-    let mut x1001: u32 = 0;
> +-    let mut x1002: fiat_p384_u1 = 0;
> +     let (x1001, x1002) = fiat_p384_addcarryx_u32(0x0, x998, x995);
> +-    let mut x1003: u32 = 0;
> +-    let mut x1004: fiat_p384_u1 = 0;
> +     let (x1003, x1004) = fiat_p384_addcarryx_u32(x1002, x996, x993);
> +-    let mut x1005: u32 = 0;
> +-    let mut x1006: fiat_p384_u1 = 0;
> +     let (x1005, x1006) = fiat_p384_addcarryx_u32(x1004, x994, x991);
> +-    let mut x1007: u32 = 0;
> +-    let mut x1008: fiat_p384_u1 = 0;
> +     let (x1007, x1008) = fiat_p384_addcarryx_u32(x1006, x992, x989);
> +-    let mut x1009: u32 = 0;
> +-    let mut x1010: fiat_p384_u1 = 0;
> +     let (x1009, x1010) = fiat_p384_addcarryx_u32(x1008, x990, x987);
> +-    let mut x1011: u32 = 0;
> +-    let mut x1012: fiat_p384_u1 = 0;
> +     let (x1011, x1012) = fiat_p384_addcarryx_u32(x1010, x988, x985);
> +-    let mut x1013: u32 = 0;
> +-    let mut x1014: fiat_p384_u1 = 0;
> +     let (x1013, x1014) = fiat_p384_addcarryx_u32(x1012, x986, x983);
> +-    let mut x1015: u32 = 0;
> +-    let mut x1016: fiat_p384_u1 = 0;
> +     let (x1015, x1016) = fiat_p384_addcarryx_u32(x1014, x984, x981);
> +-    let mut x1017: u32 = 0;
> +-    let mut x1018: fiat_p384_u1 = 0;
> +     let (x1017, x1018) = fiat_p384_addcarryx_u32(0x0, x957, x999);
> +-    let mut x1019: u32 = 0;
> +-    let mut x1020: fiat_p384_u1 = 0;
> +     let (x1019, x1020) = fiat_p384_addcarryx_u32(x1018, x959, x1000);
> +-    let mut x1021: u32 = 0;
> +-    let mut x1022: fiat_p384_u1 = 0;
> +     let (x1021, x1022) = fiat_p384_addcarryx_u32(x1020, x961, (0x0 as u32));
> +-    let mut x1023: u32 = 0;
> +-    let mut x1024: fiat_p384_u1 = 0;
> +     let (x1023, x1024) = fiat_p384_addcarryx_u32(x1022, x963, x997);
> +-    let mut x1025: u32 = 0;
> +-    let mut x1026: fiat_p384_u1 = 0;
> +     let (x1025, x1026) = fiat_p384_addcarryx_u32(x1024, x965, x1001);
> +-    let mut x1027: u32 = 0;
> +-    let mut x1028: fiat_p384_u1 = 0;
> +     let (x1027, x1028) = fiat_p384_addcarryx_u32(x1026, x967, x1003);
> +-    let mut x1029: u32 = 0;
> +-    let mut x1030: fiat_p384_u1 = 0;
> +     let (x1029, x1030) = fiat_p384_addcarryx_u32(x1028, x969, x1005);
> +-    let mut x1031: u32 = 0;
> +-    let mut x1032: fiat_p384_u1 = 0;
> +     let (x1031, x1032) = fiat_p384_addcarryx_u32(x1030, x971, x1007);
> +-    let mut x1033: u32 = 0;
> +-    let mut x1034: fiat_p384_u1 = 0;
> +     let (x1033, x1034) = fiat_p384_addcarryx_u32(x1032, x973, x1009);
> +-    let mut x1035: u32 = 0;
> +-    let mut x1036: fiat_p384_u1 = 0;
> +     let (x1035, x1036) = fiat_p384_addcarryx_u32(x1034, x975, x1011);
> +-    let mut x1037: u32 = 0;
> +-    let mut x1038: fiat_p384_u1 = 0;
> +     let (x1037, x1038) = fiat_p384_addcarryx_u32(x1036, x977, x1013);
> +-    let mut x1039: u32 = 0;
> +-    let mut x1040: fiat_p384_u1 = 0;
> +     let (x1039, x1040) = fiat_p384_addcarryx_u32(x1038, x979, x1015);
> +-    let mut x1041: u32 = 0;
> +-    let mut x1042: fiat_p384_u1 = 0;
> +     let (x1041, x1042) = fiat_p384_addcarryx_u32(
> +         x1040,
> +         ((x980 as u32) + (x946 as u32)),
> +         ((x1016 as u32) + x982),
> +     );
> +-    let mut x1043: u32 = 0;
> +-    let mut x1044: u32 = 0;
> +     let (x1043, x1044) = fiat_p384_mulx_u32(x11, 0x2);
> +-    let mut x1045: u32 = 0;
> +-    let mut x1046: u32 = 0;
> +     let (x1045, x1046) = fiat_p384_mulx_u32(x11, 0xfffffffe);
> +-    let mut x1047: u32 = 0;
> +-    let mut x1048: u32 = 0;
> +     let (x1047, x1048) = fiat_p384_mulx_u32(x11, 0x2);
> +-    let mut x1049: u32 = 0;
> +-    let mut x1050: u32 = 0;
> +     let (x1049, x1050) = fiat_p384_mulx_u32(x11, 0xfffffffe);
> +-    let mut x1051: u32 = 0;
> +-    let mut x1052: fiat_p384_u1 = 0;
> +     let (x1051, x1052) = fiat_p384_addcarryx_u32(0x0, ((x1044 as fiat_p384_u1) as u32), x11);
> +-    let mut x1053: u32 = 0;
> +-    let mut x1054: fiat_p384_u1 = 0;
> +     let (x1053, x1054) = fiat_p384_addcarryx_u32(0x0, x1019, x11);
> +-    let mut x1055: u32 = 0;
> +-    let mut x1056: fiat_p384_u1 = 0;
> +     let (x1055, x1056) = fiat_p384_addcarryx_u32(x1054, x1021, x1049);
> +-    let mut x1057: u32 = 0;
> +-    let mut x1058: fiat_p384_u1 = 0;
> +     let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x1023, x1050);
> +-    let mut x1059: u32 = 0;
> +-    let mut x1060: fiat_p384_u1 = 0;
> +     let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x1025, x1047);
> +-    let mut x1061: u32 = 0;
> +-    let mut x1062: fiat_p384_u1 = 0;
> +     let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x1027, ((x1048 as fiat_p384_u1) as u32));
> +-    let mut x1063: u32 = 0;
> +-    let mut x1064: fiat_p384_u1 = 0;
> +     let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1029, x1045);
> +-    let mut x1065: u32 = 0;
> +-    let mut x1066: fiat_p384_u1 = 0;
> +     let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1031, x1046);
> +-    let mut x1067: u32 = 0;
> +-    let mut x1068: fiat_p384_u1 = 0;
> +     let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1033, x1043);
> +-    let mut x1069: u32 = 0;
> +-    let mut x1070: fiat_p384_u1 = 0;
> +     let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1035, x1051);
> +-    let mut x1071: u32 = 0;
> +-    let mut x1072: fiat_p384_u1 = 0;
> +     let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1037, (x1052 as u32));
> +-    let mut x1073: u32 = 0;
> +-    let mut x1074: fiat_p384_u1 = 0;
> +     let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1039, (0x0 as u32));
> +-    let mut x1075: u32 = 0;
> +-    let mut x1076: fiat_p384_u1 = 0;
> +     let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1041, (0x0 as u32));
> +-    let mut x1077: u32 = 0;
> +-    let mut x1078: u32 = 0;
> +     let (x1077, x1078) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1079: u32 = 0;
> +-    let mut x1080: u32 = 0;
> +     let (x1079, x1080) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1081: u32 = 0;
> +-    let mut x1082: u32 = 0;
> +     let (x1081, x1082) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1083: u32 = 0;
> +-    let mut x1084: u32 = 0;
> +     let (x1083, x1084) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1085: u32 = 0;
> +-    let mut x1086: u32 = 0;
> +     let (x1085, x1086) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1087: u32 = 0;
> +-    let mut x1088: u32 = 0;
> +     let (x1087, x1088) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1089: u32 = 0;
> +-    let mut x1090: u32 = 0;
> +     let (x1089, x1090) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1091: u32 = 0;
> +-    let mut x1092: u32 = 0;
> +     let (x1091, x1092) = fiat_p384_mulx_u32(x1053, 0xfffffffe);
> +-    let mut x1093: u32 = 0;
> +-    let mut x1094: u32 = 0;
> +     let (x1093, x1094) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1095: u32 = 0;
> +-    let mut x1096: u32 = 0;
> +     let (x1095, x1096) = fiat_p384_mulx_u32(x1053, 0xffffffff);
> +-    let mut x1097: u32 = 0;
> +-    let mut x1098: fiat_p384_u1 = 0;
> +     let (x1097, x1098) = fiat_p384_addcarryx_u32(0x0, x1094, x1091);
> +-    let mut x1099: u32 = 0;
> +-    let mut x1100: fiat_p384_u1 = 0;
> +     let (x1099, x1100) = fiat_p384_addcarryx_u32(x1098, x1092, x1089);
> +-    let mut x1101: u32 = 0;
> +-    let mut x1102: fiat_p384_u1 = 0;
> +     let (x1101, x1102) = fiat_p384_addcarryx_u32(x1100, x1090, x1087);
> +-    let mut x1103: u32 = 0;
> +-    let mut x1104: fiat_p384_u1 = 0;
> +     let (x1103, x1104) = fiat_p384_addcarryx_u32(x1102, x1088, x1085);
> +-    let mut x1105: u32 = 0;
> +-    let mut x1106: fiat_p384_u1 = 0;
> +     let (x1105, x1106) = fiat_p384_addcarryx_u32(x1104, x1086, x1083);
> +-    let mut x1107: u32 = 0;
> +-    let mut x1108: fiat_p384_u1 = 0;
> +     let (x1107, x1108) = fiat_p384_addcarryx_u32(x1106, x1084, x1081);
> +-    let mut x1109: u32 = 0;
> +-    let mut x1110: fiat_p384_u1 = 0;
> +     let (x1109, x1110) = fiat_p384_addcarryx_u32(x1108, x1082, x1079);
> +-    let mut x1111: u32 = 0;
> +-    let mut x1112: fiat_p384_u1 = 0;
> +     let (x1111, x1112) = fiat_p384_addcarryx_u32(x1110, x1080, x1077);
> +-    let mut x1113: u32 = 0;
> +-    let mut x1114: fiat_p384_u1 = 0;
> +     let (x1113, x1114) = fiat_p384_addcarryx_u32(0x0, x1053, x1095);
> +-    let mut x1115: u32 = 0;
> +-    let mut x1116: fiat_p384_u1 = 0;
> +     let (x1115, x1116) = fiat_p384_addcarryx_u32(x1114, x1055, x1096);
> +-    let mut x1117: u32 = 0;
> +-    let mut x1118: fiat_p384_u1 = 0;
> +     let (x1117, x1118) = fiat_p384_addcarryx_u32(x1116, x1057, (0x0 as u32));
> +-    let mut x1119: u32 = 0;
> +-    let mut x1120: fiat_p384_u1 = 0;
> +     let (x1119, x1120) = fiat_p384_addcarryx_u32(x1118, x1059, x1093);
> +-    let mut x1121: u32 = 0;
> +-    let mut x1122: fiat_p384_u1 = 0;
> +     let (x1121, x1122) = fiat_p384_addcarryx_u32(x1120, x1061, x1097);
> +-    let mut x1123: u32 = 0;
> +-    let mut x1124: fiat_p384_u1 = 0;
> +     let (x1123, x1124) = fiat_p384_addcarryx_u32(x1122, x1063, x1099);
> +-    let mut x1125: u32 = 0;
> +-    let mut x1126: fiat_p384_u1 = 0;
> +     let (x1125, x1126) = fiat_p384_addcarryx_u32(x1124, x1065, x1101);
> +-    let mut x1127: u32 = 0;
> +-    let mut x1128: fiat_p384_u1 = 0;
> +     let (x1127, x1128) = fiat_p384_addcarryx_u32(x1126, x1067, x1103);
> +-    let mut x1129: u32 = 0;
> +-    let mut x1130: fiat_p384_u1 = 0;
> +     let (x1129, x1130) = fiat_p384_addcarryx_u32(x1128, x1069, x1105);
> +-    let mut x1131: u32 = 0;
> +-    let mut x1132: fiat_p384_u1 = 0;
> +     let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1071, x1107);
> +-    let mut x1133: u32 = 0;
> +-    let mut x1134: fiat_p384_u1 = 0;
> +     let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1073, x1109);
> +-    let mut x1135: u32 = 0;
> +-    let mut x1136: fiat_p384_u1 = 0;
> +     let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1075, x1111);
> +-    let mut x1137: u32 = 0;
> +-    let mut x1138: fiat_p384_u1 = 0;
> +     let (x1137, x1138) = fiat_p384_addcarryx_u32(
> +         x1136,
> +         ((x1076 as u32) + (x1042 as u32)),
> +         ((x1112 as u32) + x1078),
> +     );
> +-    let mut x1139: u32 = 0;
> +-    let mut x1140: fiat_p384_u1 = 0;
> +     let (x1139, x1140) = fiat_p384_subborrowx_u32(0x0, x1115, 0xffffffff);
> +-    let mut x1141: u32 = 0;
> +-    let mut x1142: fiat_p384_u1 = 0;
> +     let (x1141, x1142) = fiat_p384_subborrowx_u32(x1140, x1117, (0x0 as u32));
> +-    let mut x1143: u32 = 0;
> +-    let mut x1144: fiat_p384_u1 = 0;
> +     let (x1143, x1144) = fiat_p384_subborrowx_u32(x1142, x1119, (0x0 as u32));
> +-    let mut x1145: u32 = 0;
> +-    let mut x1146: fiat_p384_u1 = 0;
> +     let (x1145, x1146) = fiat_p384_subborrowx_u32(x1144, x1121, 0xffffffff);
> +-    let mut x1147: u32 = 0;
> +-    let mut x1148: fiat_p384_u1 = 0;
> +     let (x1147, x1148) = fiat_p384_subborrowx_u32(x1146, x1123, 0xfffffffe);
> +-    let mut x1149: u32 = 0;
> +-    let mut x1150: fiat_p384_u1 = 0;
> +     let (x1149, x1150) = fiat_p384_subborrowx_u32(x1148, x1125, 0xffffffff);
> +-    let mut x1151: u32 = 0;
> +-    let mut x1152: fiat_p384_u1 = 0;
> +     let (x1151, x1152) = fiat_p384_subborrowx_u32(x1150, x1127, 0xffffffff);
> +-    let mut x1153: u32 = 0;
> +-    let mut x1154: fiat_p384_u1 = 0;
> +     let (x1153, x1154) = fiat_p384_subborrowx_u32(x1152, x1129, 0xffffffff);
> +-    let mut x1155: u32 = 0;
> +-    let mut x1156: fiat_p384_u1 = 0;
> +     let (x1155, x1156) = fiat_p384_subborrowx_u32(x1154, x1131, 0xffffffff);
> +-    let mut x1157: u32 = 0;
> +-    let mut x1158: fiat_p384_u1 = 0;
> +     let (x1157, x1158) = fiat_p384_subborrowx_u32(x1156, x1133, 0xffffffff);
> +-    let mut x1159: u32 = 0;
> +-    let mut x1160: fiat_p384_u1 = 0;
> +     let (x1159, x1160) = fiat_p384_subborrowx_u32(x1158, x1135, 0xffffffff);
> +-    let mut x1161: u32 = 0;
> +-    let mut x1162: fiat_p384_u1 = 0;
> +     let (x1161, x1162) = fiat_p384_subborrowx_u32(x1160, x1137, 0xffffffff);
> +-    let mut x1163: u32 = 0;
> +-    let mut x1164: fiat_p384_u1 = 0;
> +     let (x1163, x1164) = fiat_p384_subborrowx_u32(x1162, (x1138 as u32), (0x0 as u32));
> +-    let mut x1165: u32 = 0;
> +     let (x1165) = fiat_p384_cmovznz_u32(x1164, x1139, x1115);
> +-    let mut x1166: u32 = 0;
> +     let (x1166) = fiat_p384_cmovznz_u32(x1164, x1141, x1117);
> +-    let mut x1167: u32 = 0;
> +     let (x1167) = fiat_p384_cmovznz_u32(x1164, x1143, x1119);
> +-    let mut x1168: u32 = 0;
> +     let (x1168) = fiat_p384_cmovznz_u32(x1164, x1145, x1121);
> +-    let mut x1169: u32 = 0;
> +     let (x1169) = fiat_p384_cmovznz_u32(x1164, x1147, x1123);
> +-    let mut x1170: u32 = 0;
> +     let (x1170) = fiat_p384_cmovznz_u32(x1164, x1149, x1125);
> +-    let mut x1171: u32 = 0;
> +     let (x1171) = fiat_p384_cmovznz_u32(x1164, x1151, x1127);
> +-    let mut x1172: u32 = 0;
> +     let (x1172) = fiat_p384_cmovznz_u32(x1164, x1153, x1129);
> +-    let mut x1173: u32 = 0;
> +     let (x1173) = fiat_p384_cmovznz_u32(x1164, x1155, x1131);
> +-    let mut x1174: u32 = 0;
> +     let (x1174) = fiat_p384_cmovznz_u32(x1164, x1157, x1133);
> +-    let mut x1175: u32 = 0;
> +     let (x1175) = fiat_p384_cmovznz_u32(x1164, x1159, x1135);
> +-    let mut x1176: u32 = 0;
> +     let (x1176) = fiat_p384_cmovznz_u32(x1164, x1161, x1137);
> +     out1[0] = x1165;
> +     out1[1] = x1166;
> +@@ -8937,29 +3373,17 @@ pub const fn fiat_p384_selectznz(
> +     arg3: &[u32; 12],
> + ) -> [u32; 12] {
> +     let mut out1: [u32; 12] = [0; 12];
> +-    let mut x1: u32 = 0;
> +     let (x1) = fiat_p384_cmovznz_u32(arg1, (arg2[0]), (arg3[0]));
> +-    let mut x2: u32 = 0;
> +     let (x2) = fiat_p384_cmovznz_u32(arg1, (arg2[1]), (arg3[1]));
> +-    let mut x3: u32 = 0;
> +     let (x3) = fiat_p384_cmovznz_u32(arg1, (arg2[2]), (arg3[2]));
> +-    let mut x4: u32 = 0;
> +     let (x4) = fiat_p384_cmovznz_u32(arg1, (arg2[3]), (arg3[3]));
> +-    let mut x5: u32 = 0;
> +     let (x5) = fiat_p384_cmovznz_u32(arg1, (arg2[4]), (arg3[4]));
> +-    let mut x6: u32 = 0;
> +     let (x6) = fiat_p384_cmovznz_u32(arg1, (arg2[5]), (arg3[5]));
> +-    let mut x7: u32 = 0;
> +     let (x7) = fiat_p384_cmovznz_u32(arg1, (arg2[6]), (arg3[6]));
> +-    let mut x8: u32 = 0;
> +     let (x8) = fiat_p384_cmovznz_u32(arg1, (arg2[7]), (arg3[7]));
> +-    let mut x9: u32 = 0;
> +     let (x9) = fiat_p384_cmovznz_u32(arg1, (arg2[8]), (arg3[8]));
> +-    let mut x10: u32 = 0;
> +     let (x10) = fiat_p384_cmovznz_u32(arg1, (arg2[9]), (arg3[9]));
> +-    let mut x11: u32 = 0;
> +     let (x11) = fiat_p384_cmovznz_u32(arg1, (arg2[10]), (arg3[10]));
> +-    let mut x12: u32 = 0;
> +     let (x12) = fiat_p384_cmovznz_u32(arg1, (arg2[11]), (arg3[11]));
> +     out1[0] = x1;
> +     out1[1] = x2;
> +@@ -9326,205 +3750,86 @@ pub const fn fiat_p384_divstep(
> +     let mut out3: [u32; 13] = [0; 13];
> +     let mut out4: [u32; 12] = [0; 12];
> +     let mut out5: [u32; 12] = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
> +     let x3: fiat_p384_u1 =
> +         (((x1 >> 31) as fiat_p384_u1) & (((arg3[0]) & (0x1 as u32)) as fiat_p384_u1));
> +-    let mut x4: u32 = 0;
> +-    let mut x5: fiat_p384_u1 = 0;
> +     let (x4, x5) = fiat_p384_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
> +-    let mut x6: u32 = 0;
> +     let (x6) = fiat_p384_cmovznz_u32(x3, arg1, x4);
> +-    let mut x7: u32 = 0;
> +     let (x7) = fiat_p384_cmovznz_u32(x3, (arg2[0]), (arg3[0]));
> +-    let mut x8: u32 = 0;
> +     let (x8) = fiat_p384_cmovznz_u32(x3, (arg2[1]), (arg3[1]));
> +-    let mut x9: u32 = 0;
> +     let (x9) = fiat_p384_cmovznz_u32(x3, (arg2[2]), (arg3[2]));
> +-    let mut x10: u32 = 0;
> +     let (x10) = fiat_p384_cmovznz_u32(x3, (arg2[3]), (arg3[3]));
> +-    let mut x11: u32 = 0;
> +     let (x11) = fiat_p384_cmovznz_u32(x3, (arg2[4]), (arg3[4]));
> +-    let mut x12: u32 = 0;
> +     let (x12) = fiat_p384_cmovznz_u32(x3, (arg2[5]), (arg3[5]));
> +-    let mut x13: u32 = 0;
> +     let (x13) = fiat_p384_cmovznz_u32(x3, (arg2[6]), (arg3[6]));
> +-    let mut x14: u32 = 0;
> +     let (x14) = fiat_p384_cmovznz_u32(x3, (arg2[7]), (arg3[7]));
> +-    let mut x15: u32 = 0;
> +     let (x15) = fiat_p384_cmovznz_u32(x3, (arg2[8]), (arg3[8]));
> +-    let mut x16: u32 = 0;
> +     let (x16) = fiat_p384_cmovznz_u32(x3, (arg2[9]), (arg3[9]));
> +-    let mut x17: u32 = 0;
> +     let (x17) = fiat_p384_cmovznz_u32(x3, (arg2[10]), (arg3[10]));
> +-    let mut x18: u32 = 0;
> +     let (x18) = fiat_p384_cmovznz_u32(x3, (arg2[11]), (arg3[11]));
> +-    let mut x19: u32 = 0;
> +     let (x19) = fiat_p384_cmovznz_u32(x3, (arg2[12]), (arg3[12]));
> +-    let mut x20: u32 = 0;
> +-    let mut x21: fiat_p384_u1 = 0;
> +     let (x20, x21) = fiat_p384_addcarryx_u32(0x0, (0x1 as u32), (!(arg2[0])));
> +-    let mut x22: u32 = 0;
> +-    let mut x23: fiat_p384_u1 = 0;
> +     let (x22, x23) = fiat_p384_addcarryx_u32(x21, (0x0 as u32), (!(arg2[1])));
> +-    let mut x24: u32 = 0;
> +-    let mut x25: fiat_p384_u1 = 0;
> +     let (x24, x25) = fiat_p384_addcarryx_u32(x23, (0x0 as u32), (!(arg2[2])));
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_u1 = 0;
> +     let (x26, x27) = fiat_p384_addcarryx_u32(x25, (0x0 as u32), (!(arg2[3])));
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_u1 = 0;
> +     let (x28, x29) = fiat_p384_addcarryx_u32(x27, (0x0 as u32), (!(arg2[4])));
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_u1 = 0;
> +     let (x30, x31) = fiat_p384_addcarryx_u32(x29, (0x0 as u32), (!(arg2[5])));
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_u1 = 0;
> +     let (x32, x33) = fiat_p384_addcarryx_u32(x31, (0x0 as u32), (!(arg2[6])));
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_u1 = 0;
> +     let (x34, x35) = fiat_p384_addcarryx_u32(x33, (0x0 as u32), (!(arg2[7])));
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_u1 = 0;
> +     let (x36, x37) = fiat_p384_addcarryx_u32(x35, (0x0 as u32), (!(arg2[8])));
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_u1 = 0;
> +     let (x38, x39) = fiat_p384_addcarryx_u32(x37, (0x0 as u32), (!(arg2[9])));
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_u1 = 0;
> +     let (x40, x41) = fiat_p384_addcarryx_u32(x39, (0x0 as u32), (!(arg2[10])));
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_u1 = 0;
> +     let (x42, x43) = fiat_p384_addcarryx_u32(x41, (0x0 as u32), (!(arg2[11])));
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_u1 = 0;
> +     let (x44, x45) = fiat_p384_addcarryx_u32(x43, (0x0 as u32), (!(arg2[12])));
> +-    let mut x46: u32 = 0;
> +     let (x46) = fiat_p384_cmovznz_u32(x3, (arg3[0]), x20);
> +-    let mut x47: u32 = 0;
> +     let (x47) = fiat_p384_cmovznz_u32(x3, (arg3[1]), x22);
> +-    let mut x48: u32 = 0;
> +     let (x48) = fiat_p384_cmovznz_u32(x3, (arg3[2]), x24);
> +-    let mut x49: u32 = 0;
> +     let (x49) = fiat_p384_cmovznz_u32(x3, (arg3[3]), x26);
> +-    let mut x50: u32 = 0;
> +     let (x50) = fiat_p384_cmovznz_u32(x3, (arg3[4]), x28);
> +-    let mut x51: u32 = 0;
> +     let (x51) = fiat_p384_cmovznz_u32(x3, (arg3[5]), x30);
> +-    let mut x52: u32 = 0;
> +     let (x52) = fiat_p384_cmovznz_u32(x3, (arg3[6]), x32);
> +-    let mut x53: u32 = 0;
> +     let (x53) = fiat_p384_cmovznz_u32(x3, (arg3[7]), x34);
> +-    let mut x54: u32 = 0;
> +     let (x54) = fiat_p384_cmovznz_u32(x3, (arg3[8]), x36);
> +-    let mut x55: u32 = 0;
> +     let (x55) = fiat_p384_cmovznz_u32(x3, (arg3[9]), x38);
> +-    let mut x56: u32 = 0;
> +     let (x56) = fiat_p384_cmovznz_u32(x3, (arg3[10]), x40);
> +-    let mut x57: u32 = 0;
> +     let (x57) = fiat_p384_cmovznz_u32(x3, (arg3[11]), x42);
> +-    let mut x58: u32 = 0;
> +     let (x58) = fiat_p384_cmovznz_u32(x3, (arg3[12]), x44);
> +-    let mut x59: u32 = 0;
> +     let (x59) = fiat_p384_cmovznz_u32(x3, (arg4[0]), (arg5[0]));
> +-    let mut x60: u32 = 0;
> +     let (x60) = fiat_p384_cmovznz_u32(x3, (arg4[1]), (arg5[1]));
> +-    let mut x61: u32 = 0;
> +     let (x61) = fiat_p384_cmovznz_u32(x3, (arg4[2]), (arg5[2]));
> +-    let mut x62: u32 = 0;
> +     let (x62) = fiat_p384_cmovznz_u32(x3, (arg4[3]), (arg5[3]));
> +-    let mut x63: u32 = 0;
> +     let (x63) = fiat_p384_cmovznz_u32(x3, (arg4[4]), (arg5[4]));
> +-    let mut x64: u32 = 0;
> +     let (x64) = fiat_p384_cmovznz_u32(x3, (arg4[5]), (arg5[5]));
> +-    let mut x65: u32 = 0;
> +     let (x65) = fiat_p384_cmovznz_u32(x3, (arg4[6]), (arg5[6]));
> +-    let mut x66: u32 = 0;
> +     let (x66) = fiat_p384_cmovznz_u32(x3, (arg4[7]), (arg5[7]));
> +-    let mut x67: u32 = 0;
> +     let (x67) = fiat_p384_cmovznz_u32(x3, (arg4[8]), (arg5[8]));
> +-    let mut x68: u32 = 0;
> +     let (x68) = fiat_p384_cmovznz_u32(x3, (arg4[9]), (arg5[9]));
> +-    let mut x69: u32 = 0;
> +     let (x69) = fiat_p384_cmovznz_u32(x3, (arg4[10]), (arg5[10]));
> +-    let mut x70: u32 = 0;
> +     let (x70) = fiat_p384_cmovznz_u32(x3, (arg4[11]), (arg5[11]));
> +-    let mut x71: u32 = 0;
> +-    let mut x72: fiat_p384_u1 = 0;
> +     let (x71, x72) = fiat_p384_addcarryx_u32(0x0, x59, x59);
> +-    let mut x73: u32 = 0;
> +-    let mut x74: fiat_p384_u1 = 0;
> +     let (x73, x74) = fiat_p384_addcarryx_u32(x72, x60, x60);
> +-    let mut x75: u32 = 0;
> +-    let mut x76: fiat_p384_u1 = 0;
> +     let (x75, x76) = fiat_p384_addcarryx_u32(x74, x61, x61);
> +-    let mut x77: u32 = 0;
> +-    let mut x78: fiat_p384_u1 = 0;
> +     let (x77, x78) = fiat_p384_addcarryx_u32(x76, x62, x62);
> +-    let mut x79: u32 = 0;
> +-    let mut x80: fiat_p384_u1 = 0;
> +     let (x79, x80) = fiat_p384_addcarryx_u32(x78, x63, x63);
> +-    let mut x81: u32 = 0;
> +-    let mut x82: fiat_p384_u1 = 0;
> +     let (x81, x82) = fiat_p384_addcarryx_u32(x80, x64, x64);
> +-    let mut x83: u32 = 0;
> +-    let mut x84: fiat_p384_u1 = 0;
> +     let (x83, x84) = fiat_p384_addcarryx_u32(x82, x65, x65);
> +-    let mut x85: u32 = 0;
> +-    let mut x86: fiat_p384_u1 = 0;
> +     let (x85, x86) = fiat_p384_addcarryx_u32(x84, x66, x66);
> +-    let mut x87: u32 = 0;
> +-    let mut x88: fiat_p384_u1 = 0;
> +     let (x87, x88) = fiat_p384_addcarryx_u32(x86, x67, x67);
> +-    let mut x89: u32 = 0;
> +-    let mut x90: fiat_p384_u1 = 0;
> +     let (x89, x90) = fiat_p384_addcarryx_u32(x88, x68, x68);
> +-    let mut x91: u32 = 0;
> +-    let mut x92: fiat_p384_u1 = 0;
> +     let (x91, x92) = fiat_p384_addcarryx_u32(x90, x69, x69);
> +-    let mut x93: u32 = 0;
> +-    let mut x94: fiat_p384_u1 = 0;
> +     let (x93, x94) = fiat_p384_addcarryx_u32(x92, x70, x70);
> +-    let mut x95: u32 = 0;
> +-    let mut x96: fiat_p384_u1 = 0;
> +     let (x95, x96) = fiat_p384_subborrowx_u32(0x0, x71, 0xffffffff);
> +-    let mut x97: u32 = 0;
> +-    let mut x98: fiat_p384_u1 = 0;
> +     let (x97, x98) = fiat_p384_subborrowx_u32(x96, x73, (0x0 as u32));
> +-    let mut x99: u32 = 0;
> +-    let mut x100: fiat_p384_u1 = 0;
> +     let (x99, x100) = fiat_p384_subborrowx_u32(x98, x75, (0x0 as u32));
> +-    let mut x101: u32 = 0;
> +-    let mut x102: fiat_p384_u1 = 0;
> +     let (x101, x102) = fiat_p384_subborrowx_u32(x100, x77, 0xffffffff);
> +-    let mut x103: u32 = 0;
> +-    let mut x104: fiat_p384_u1 = 0;
> +     let (x103, x104) = fiat_p384_subborrowx_u32(x102, x79, 0xfffffffe);
> +-    let mut x105: u32 = 0;
> +-    let mut x106: fiat_p384_u1 = 0;
> +     let (x105, x106) = fiat_p384_subborrowx_u32(x104, x81, 0xffffffff);
> +-    let mut x107: u32 = 0;
> +-    let mut x108: fiat_p384_u1 = 0;
> +     let (x107, x108) = fiat_p384_subborrowx_u32(x106, x83, 0xffffffff);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_u1 = 0;
> +     let (x109, x110) = fiat_p384_subborrowx_u32(x108, x85, 0xffffffff);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_u1 = 0;
> +     let (x111, x112) = fiat_p384_subborrowx_u32(x110, x87, 0xffffffff);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_u1 = 0;
> +     let (x113, x114) = fiat_p384_subborrowx_u32(x112, x89, 0xffffffff);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_u1 = 0;
> +     let (x115, x116) = fiat_p384_subborrowx_u32(x114, x91, 0xffffffff);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_u1 = 0;
> +     let (x117, x118) = fiat_p384_subborrowx_u32(x116, x93, 0xffffffff);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_u1 = 0;
> +     let (x119, x120) = fiat_p384_subborrowx_u32(x118, (x94 as u32), (0x0 as u32));
> +     let x121: u32 = (arg4[11]);
> +     let x122: u32 = (arg4[10]);
> +@@ -9538,271 +3843,107 @@ pub const fn fiat_p384_divstep(
> +     let x130: u32 = (arg4[2]);
> +     let x131: u32 = (arg4[1]);
> +     let x132: u32 = (arg4[0]);
> +-    let mut x133: u32 = 0;
> +-    let mut x134: fiat_p384_u1 = 0;
> +     let (x133, x134) = fiat_p384_subborrowx_u32(0x0, (0x0 as u32), x132);
> +-    let mut x135: u32 = 0;
> +-    let mut x136: fiat_p384_u1 = 0;
> +     let (x135, x136) = fiat_p384_subborrowx_u32(x134, (0x0 as u32), x131);
> +-    let mut x137: u32 = 0;
> +-    let mut x138: fiat_p384_u1 = 0;
> +     let (x137, x138) = fiat_p384_subborrowx_u32(x136, (0x0 as u32), x130);
> +-    let mut x139: u32 = 0;
> +-    let mut x140: fiat_p384_u1 = 0;
> +     let (x139, x140) = fiat_p384_subborrowx_u32(x138, (0x0 as u32), x129);
> +-    let mut x141: u32 = 0;
> +-    let mut x142: fiat_p384_u1 = 0;
> +     let (x141, x142) = fiat_p384_subborrowx_u32(x140, (0x0 as u32), x128);
> +-    let mut x143: u32 = 0;
> +-    let mut x144: fiat_p384_u1 = 0;
> +     let (x143, x144) = fiat_p384_subborrowx_u32(x142, (0x0 as u32), x127);
> +-    let mut x145: u32 = 0;
> +-    let mut x146: fiat_p384_u1 = 0;
> +     let (x145, x146) = fiat_p384_subborrowx_u32(x144, (0x0 as u32), x126);
> +-    let mut x147: u32 = 0;
> +-    let mut x148: fiat_p384_u1 = 0;
> +     let (x147, x148) = fiat_p384_subborrowx_u32(x146, (0x0 as u32), x125);
> +-    let mut x149: u32 = 0;
> +-    let mut x150: fiat_p384_u1 = 0;
> +     let (x149, x150) = fiat_p384_subborrowx_u32(x148, (0x0 as u32), x124);
> +-    let mut x151: u32 = 0;
> +-    let mut x152: fiat_p384_u1 = 0;
> +     let (x151, x152) = fiat_p384_subborrowx_u32(x150, (0x0 as u32), x123);
> +-    let mut x153: u32 = 0;
> +-    let mut x154: fiat_p384_u1 = 0;
> +     let (x153, x154) = fiat_p384_subborrowx_u32(x152, (0x0 as u32), x122);
> +-    let mut x155: u32 = 0;
> +-    let mut x156: fiat_p384_u1 = 0;
> +     let (x155, x156) = fiat_p384_subborrowx_u32(x154, (0x0 as u32), x121);
> +-    let mut x157: u32 = 0;
> +     let (x157) = fiat_p384_cmovznz_u32(x156, (0x0 as u32), 0xffffffff);
> +-    let mut x158: u32 = 0;
> +-    let mut x159: fiat_p384_u1 = 0;
> +     let (x158, x159) = fiat_p384_addcarryx_u32(0x0, x133, x157);
> +-    let mut x160: u32 = 0;
> +-    let mut x161: fiat_p384_u1 = 0;
> +     let (x160, x161) = fiat_p384_addcarryx_u32(x159, x135, (0x0 as u32));
> +-    let mut x162: u32 = 0;
> +-    let mut x163: fiat_p384_u1 = 0;
> +     let (x162, x163) = fiat_p384_addcarryx_u32(x161, x137, (0x0 as u32));
> +-    let mut x164: u32 = 0;
> +-    let mut x165: fiat_p384_u1 = 0;
> +     let (x164, x165) = fiat_p384_addcarryx_u32(x163, x139, x157);
> +-    let mut x166: u32 = 0;
> +-    let mut x167: fiat_p384_u1 = 0;
> +     let (x166, x167) = fiat_p384_addcarryx_u32(x165, x141, (x157 & 0xfffffffe));
> +-    let mut x168: u32 = 0;
> +-    let mut x169: fiat_p384_u1 = 0;
> +     let (x168, x169) = fiat_p384_addcarryx_u32(x167, x143, x157);
> +-    let mut x170: u32 = 0;
> +-    let mut x171: fiat_p384_u1 = 0;
> +     let (x170, x171) = fiat_p384_addcarryx_u32(x169, x145, x157);
> +-    let mut x172: u32 = 0;
> +-    let mut x173: fiat_p384_u1 = 0;
> +     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x147, x157);
> +-    let mut x174: u32 = 0;
> +-    let mut x175: fiat_p384_u1 = 0;
> +     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x149, x157);
> +-    let mut x176: u32 = 0;
> +-    let mut x177: fiat_p384_u1 = 0;
> +     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x151, x157);
> +-    let mut x178: u32 = 0;
> +-    let mut x179: fiat_p384_u1 = 0;
> +     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x153, x157);
> +-    let mut x180: u32 = 0;
> +-    let mut x181: fiat_p384_u1 = 0;
> +     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x155, x157);
> +-    let mut x182: u32 = 0;
> +     let (x182) = fiat_p384_cmovznz_u32(x3, (arg5[0]), x158);
> +-    let mut x183: u32 = 0;
> +     let (x183) = fiat_p384_cmovznz_u32(x3, (arg5[1]), x160);
> +-    let mut x184: u32 = 0;
> +     let (x184) = fiat_p384_cmovznz_u32(x3, (arg5[2]), x162);
> +-    let mut x185: u32 = 0;
> +     let (x185) = fiat_p384_cmovznz_u32(x3, (arg5[3]), x164);
> +-    let mut x186: u32 = 0;
> +     let (x186) = fiat_p384_cmovznz_u32(x3, (arg5[4]), x166);
> +-    let mut x187: u32 = 0;
> +     let (x187) = fiat_p384_cmovznz_u32(x3, (arg5[5]), x168);
> +-    let mut x188: u32 = 0;
> +     let (x188) = fiat_p384_cmovznz_u32(x3, (arg5[6]), x170);
> +-    let mut x189: u32 = 0;
> +     let (x189) = fiat_p384_cmovznz_u32(x3, (arg5[7]), x172);
> +-    let mut x190: u32 = 0;
> +     let (x190) = fiat_p384_cmovznz_u32(x3, (arg5[8]), x174);
> +-    let mut x191: u32 = 0;
> +     let (x191) = fiat_p384_cmovznz_u32(x3, (arg5[9]), x176);
> +-    let mut x192: u32 = 0;
> +     let (x192) = fiat_p384_cmovznz_u32(x3, (arg5[10]), x178);
> +-    let mut x193: u32 = 0;
> +     let (x193) = fiat_p384_cmovznz_u32(x3, (arg5[11]), x180);
> +     let x194: fiat_p384_u1 = ((x46 & (0x1 as u32)) as fiat_p384_u1);
> +-    let mut x195: u32 = 0;
> +     let (x195) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x7);
> +-    let mut x196: u32 = 0;
> +     let (x196) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x8);
> +-    let mut x197: u32 = 0;
> +     let (x197) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x9);
> +-    let mut x198: u32 = 0;
> +     let (x198) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x10);
> +-    let mut x199: u32 = 0;
> +     let (x199) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x11);
> +-    let mut x200: u32 = 0;
> +     let (x200) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x12);
> +-    let mut x201: u32 = 0;
> +     let (x201) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x13);
> +-    let mut x202: u32 = 0;
> +     let (x202) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x14);
> +-    let mut x203: u32 = 0;
> +     let (x203) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x15);
> +-    let mut x204: u32 = 0;
> +     let (x204) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x16);
> +-    let mut x205: u32 = 0;
> +     let (x205) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x17);
> +-    let mut x206: u32 = 0;
> +     let (x206) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x18);
> +-    let mut x207: u32 = 0;
> +     let (x207) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x19);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: fiat_p384_u1 = 0;
> +     let (x208, x209) = fiat_p384_addcarryx_u32(0x0, x46, x195);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: fiat_p384_u1 = 0;
> +     let (x210, x211) = fiat_p384_addcarryx_u32(x209, x47, x196);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: fiat_p384_u1 = 0;
> +     let (x212, x213) = fiat_p384_addcarryx_u32(x211, x48, x197);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: fiat_p384_u1 = 0;
> +     let (x214, x215) = fiat_p384_addcarryx_u32(x213, x49, x198);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: fiat_p384_u1 = 0;
> +     let (x216, x217) = fiat_p384_addcarryx_u32(x215, x50, x199);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: fiat_p384_u1 = 0;
> +     let (x218, x219) = fiat_p384_addcarryx_u32(x217, x51, x200);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: fiat_p384_u1 = 0;
> +     let (x220, x221) = fiat_p384_addcarryx_u32(x219, x52, x201);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: fiat_p384_u1 = 0;
> +     let (x222, x223) = fiat_p384_addcarryx_u32(x221, x53, x202);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: fiat_p384_u1 = 0;
> +     let (x224, x225) = fiat_p384_addcarryx_u32(x223, x54, x203);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: fiat_p384_u1 = 0;
> +     let (x226, x227) = fiat_p384_addcarryx_u32(x225, x55, x204);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: fiat_p384_u1 = 0;
> +     let (x228, x229) = fiat_p384_addcarryx_u32(x227, x56, x205);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: fiat_p384_u1 = 0;
> +     let (x230, x231) = fiat_p384_addcarryx_u32(x229, x57, x206);
> +-    let mut x232: u32 = 0;
> +-    let mut x233: fiat_p384_u1 = 0;
> +     let (x232, x233) = fiat_p384_addcarryx_u32(x231, x58, x207);
> +-    let mut x234: u32 = 0;
> +     let (x234) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x59);
> +-    let mut x235: u32 = 0;
> +     let (x235) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x60);
> +-    let mut x236: u32 = 0;
> +     let (x236) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x61);
> +-    let mut x237: u32 = 0;
> +     let (x237) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x62);
> +-    let mut x238: u32 = 0;
> +     let (x238) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x63);
> +-    let mut x239: u32 = 0;
> +     let (x239) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x64);
> +-    let mut x240: u32 = 0;
> +     let (x240) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x65);
> +-    let mut x241: u32 = 0;
> +     let (x241) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x66);
> +-    let mut x242: u32 = 0;
> +     let (x242) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x67);
> +-    let mut x243: u32 = 0;
> +     let (x243) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x68);
> +-    let mut x244: u32 = 0;
> +     let (x244) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x69);
> +-    let mut x245: u32 = 0;
> +     let (x245) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x70);
> +-    let mut x246: u32 = 0;
> +-    let mut x247: fiat_p384_u1 = 0;
> +     let (x246, x247) = fiat_p384_addcarryx_u32(0x0, x182, x234);
> +-    let mut x248: u32 = 0;
> +-    let mut x249: fiat_p384_u1 = 0;
> +     let (x248, x249) = fiat_p384_addcarryx_u32(x247, x183, x235);
> +-    let mut x250: u32 = 0;
> +-    let mut x251: fiat_p384_u1 = 0;
> +     let (x250, x251) = fiat_p384_addcarryx_u32(x249, x184, x236);
> +-    let mut x252: u32 = 0;
> +-    let mut x253: fiat_p384_u1 = 0;
> +     let (x252, x253) = fiat_p384_addcarryx_u32(x251, x185, x237);
> +-    let mut x254: u32 = 0;
> +-    let mut x255: fiat_p384_u1 = 0;
> +     let (x254, x255) = fiat_p384_addcarryx_u32(x253, x186, x238);
> +-    let mut x256: u32 = 0;
> +-    let mut x257: fiat_p384_u1 = 0;
> +     let (x256, x257) = fiat_p384_addcarryx_u32(x255, x187, x239);
> +-    let mut x258: u32 = 0;
> +-    let mut x259: fiat_p384_u1 = 0;
> +     let (x258, x259) = fiat_p384_addcarryx_u32(x257, x188, x240);
> +-    let mut x260: u32 = 0;
> +-    let mut x261: fiat_p384_u1 = 0;
> +     let (x260, x261) = fiat_p384_addcarryx_u32(x259, x189, x241);
> +-    let mut x262: u32 = 0;
> +-    let mut x263: fiat_p384_u1 = 0;
> +     let (x262, x263) = fiat_p384_addcarryx_u32(x261, x190, x242);
> +-    let mut x264: u32 = 0;
> +-    let mut x265: fiat_p384_u1 = 0;
> +     let (x264, x265) = fiat_p384_addcarryx_u32(x263, x191, x243);
> +-    let mut x266: u32 = 0;
> +-    let mut x267: fiat_p384_u1 = 0;
> +     let (x266, x267) = fiat_p384_addcarryx_u32(x265, x192, x244);
> +-    let mut x268: u32 = 0;
> +-    let mut x269: fiat_p384_u1 = 0;
> +     let (x268, x269) = fiat_p384_addcarryx_u32(x267, x193, x245);
> +-    let mut x270: u32 = 0;
> +-    let mut x271: fiat_p384_u1 = 0;
> +     let (x270, x271) = fiat_p384_subborrowx_u32(0x0, x246, 0xffffffff);
> +-    let mut x272: u32 = 0;
> +-    let mut x273: fiat_p384_u1 = 0;
> +     let (x272, x273) = fiat_p384_subborrowx_u32(x271, x248, (0x0 as u32));
> +-    let mut x274: u32 = 0;
> +-    let mut x275: fiat_p384_u1 = 0;
> +     let (x274, x275) = fiat_p384_subborrowx_u32(x273, x250, (0x0 as u32));
> +-    let mut x276: u32 = 0;
> +-    let mut x277: fiat_p384_u1 = 0;
> +     let (x276, x277) = fiat_p384_subborrowx_u32(x275, x252, 0xffffffff);
> +-    let mut x278: u32 = 0;
> +-    let mut x279: fiat_p384_u1 = 0;
> +     let (x278, x279) = fiat_p384_subborrowx_u32(x277, x254, 0xfffffffe);
> +-    let mut x280: u32 = 0;
> +-    let mut x281: fiat_p384_u1 = 0;
> +     let (x280, x281) = fiat_p384_subborrowx_u32(x279, x256, 0xffffffff);
> +-    let mut x282: u32 = 0;
> +-    let mut x283: fiat_p384_u1 = 0;
> +     let (x282, x283) = fiat_p384_subborrowx_u32(x281, x258, 0xffffffff);
> +-    let mut x284: u32 = 0;
> +-    let mut x285: fiat_p384_u1 = 0;
> +     let (x284, x285) = fiat_p384_subborrowx_u32(x283, x260, 0xffffffff);
> +-    let mut x286: u32 = 0;
> +-    let mut x287: fiat_p384_u1 = 0;
> +     let (x286, x287) = fiat_p384_subborrowx_u32(x285, x262, 0xffffffff);
> +-    let mut x288: u32 = 0;
> +-    let mut x289: fiat_p384_u1 = 0;
> +     let (x288, x289) = fiat_p384_subborrowx_u32(x287, x264, 0xffffffff);
> +-    let mut x290: u32 = 0;
> +-    let mut x291: fiat_p384_u1 = 0;
> +     let (x290, x291) = fiat_p384_subborrowx_u32(x289, x266, 0xffffffff);
> +-    let mut x292: u32 = 0;
> +-    let mut x293: fiat_p384_u1 = 0;
> +     let (x292, x293) = fiat_p384_subborrowx_u32(x291, x268, 0xffffffff);
> +-    let mut x294: u32 = 0;
> +-    let mut x295: fiat_p384_u1 = 0;
> +     let (x294, x295) = fiat_p384_subborrowx_u32(x293, (x269 as u32), (0x0 as u32));
> +-    let mut x296: u32 = 0;
> +-    let mut x297: fiat_p384_u1 = 0;
> +     let (x296, x297) = fiat_p384_addcarryx_u32(0x0, x6, (0x1 as u32));
> +     let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
> +     let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
> +@@ -9817,53 +3958,29 @@ pub const fn fiat_p384_divstep(
> +     let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
> +     let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
> +     let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
> +-    let mut x311: u32 = 0;
> +     let (x311) = fiat_p384_cmovznz_u32(x120, x95, x71);
> +-    let mut x312: u32 = 0;
> +     let (x312) = fiat_p384_cmovznz_u32(x120, x97, x73);
> +-    let mut x313: u32 = 0;
> +     let (x313) = fiat_p384_cmovznz_u32(x120, x99, x75);
> +-    let mut x314: u32 = 0;
> +     let (x314) = fiat_p384_cmovznz_u32(x120, x101, x77);
> +-    let mut x315: u32 = 0;
> +     let (x315) = fiat_p384_cmovznz_u32(x120, x103, x79);
> +-    let mut x316: u32 = 0;
> +     let (x316) = fiat_p384_cmovznz_u32(x120, x105, x81);
> +-    let mut x317: u32 = 0;
> +     let (x317) = fiat_p384_cmovznz_u32(x120, x107, x83);
> +-    let mut x318: u32 = 0;
> +     let (x318) = fiat_p384_cmovznz_u32(x120, x109, x85);
> +-    let mut x319: u32 = 0;
> +     let (x319) = fiat_p384_cmovznz_u32(x120, x111, x87);
> +-    let mut x320: u32 = 0;
> +     let (x320) = fiat_p384_cmovznz_u32(x120, x113, x89);
> +-    let mut x321: u32 = 0;
> +     let (x321) = fiat_p384_cmovznz_u32(x120, x115, x91);
> +-    let mut x322: u32 = 0;
> +     let (x322) = fiat_p384_cmovznz_u32(x120, x117, x93);
> +-    let mut x323: u32 = 0;
> +     let (x323) = fiat_p384_cmovznz_u32(x295, x270, x246);
> +-    let mut x324: u32 = 0;
> +     let (x324) = fiat_p384_cmovznz_u32(x295, x272, x248);
> +-    let mut x325: u32 = 0;
> +     let (x325) = fiat_p384_cmovznz_u32(x295, x274, x250);
> +-    let mut x326: u32 = 0;
> +     let (x326) = fiat_p384_cmovznz_u32(x295, x276, x252);
> +-    let mut x327: u32 = 0;
> +     let (x327) = fiat_p384_cmovznz_u32(x295, x278, x254);
> +-    let mut x328: u32 = 0;
> +     let (x328) = fiat_p384_cmovznz_u32(x295, x280, x256);
> +-    let mut x329: u32 = 0;
> +     let (x329) = fiat_p384_cmovznz_u32(x295, x282, x258);
> +-    let mut x330: u32 = 0;
> +     let (x330) = fiat_p384_cmovznz_u32(x295, x284, x260);
> +-    let mut x331: u32 = 0;
> +     let (x331) = fiat_p384_cmovznz_u32(x295, x286, x262);
> +-    let mut x332: u32 = 0;
> +     let (x332) = fiat_p384_cmovznz_u32(x295, x288, x264);
> +-    let mut x333: u32 = 0;
> +     let (x333) = fiat_p384_cmovznz_u32(x295, x290, x266);
> +-    let mut x334: u32 = 0;
> +     let (x334) = fiat_p384_cmovznz_u32(x295, x292, x268);
> +     out1 = x296;
> +     out2[0] = x7;
> +diff --git a/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs b/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs
> +index 3269a50..005fb48 100644
> +--- a/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs
> ++++ b/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs
> +@@ -154,700 +154,250 @@ pub const fn fiat_p384_mul(
> +     let x4: u64 = (arg1[4]);
> +     let x5: u64 = (arg1[5]);
> +     let x6: u64 = (arg1[0]);
> +-    let mut x7: u64 = 0;
> +-    let mut x8: u64 = 0;
> +     let (x7, x8) = fiat_p384_mulx_u64(x6, (arg2[5]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: u64 = 0;
> +     let (x9, x10) = fiat_p384_mulx_u64(x6, (arg2[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: u64 = 0;
> +     let (x11, x12) = fiat_p384_mulx_u64(x6, (arg2[3]));
> +-    let mut x13: u64 = 0;
> +-    let mut x14: u64 = 0;
> +     let (x13, x14) = fiat_p384_mulx_u64(x6, (arg2[2]));
> +-    let mut x15: u64 = 0;
> +-    let mut x16: u64 = 0;
> +     let (x15, x16) = fiat_p384_mulx_u64(x6, (arg2[1]));
> +-    let mut x17: u64 = 0;
> +-    let mut x18: u64 = 0;
> +     let (x17, x18) = fiat_p384_mulx_u64(x6, (arg2[0]));
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_addcarryx_u64(0x0, x18, x15);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_addcarryx_u64(x20, x16, x13);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_u1 = 0;
> +     let (x23, x24) = fiat_p384_addcarryx_u64(x22, x14, x11);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_u1 = 0;
> +     let (x25, x26) = fiat_p384_addcarryx_u64(x24, x12, x9);
> +-    let mut x27: u64 = 0;
> +-    let mut x28: fiat_p384_u1 = 0;
> +     let (x27, x28) = fiat_p384_addcarryx_u64(x26, x10, x7);
> +     let x29: u64 = ((x28 as u64) + x8);
> +-    let mut x30: u64 = 0;
> +-    let mut x31: u64 = 0;
> +     let (x30, x31) = fiat_p384_mulx_u64(x17, 0x100000001);
> +-    let mut x32: u64 = 0;
> +-    let mut x33: u64 = 0;
> +     let (x32, x33) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x34: u64 = 0;
> +-    let mut x35: u64 = 0;
> +     let (x34, x35) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x36: u64 = 0;
> +-    let mut x37: u64 = 0;
> +     let (x36, x37) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x38: u64 = 0;
> +-    let mut x39: u64 = 0;
> +     let (x38, x39) = fiat_p384_mulx_u64(x30, 0xfffffffffffffffe);
> +-    let mut x40: u64 = 0;
> +-    let mut x41: u64 = 0;
> +     let (x40, x41) = fiat_p384_mulx_u64(x30, 0xffffffff00000000);
> +-    let mut x42: u64 = 0;
> +-    let mut x43: u64 = 0;
> +     let (x42, x43) = fiat_p384_mulx_u64(x30, 0xffffffff);
> +-    let mut x44: u64 = 0;
> +-    let mut x45: fiat_p384_u1 = 0;
> +     let (x44, x45) = fiat_p384_addcarryx_u64(0x0, x43, x40);
> +-    let mut x46: u64 = 0;
> +-    let mut x47: fiat_p384_u1 = 0;
> +     let (x46, x47) = fiat_p384_addcarryx_u64(x45, x41, x38);
> +-    let mut x48: u64 = 0;
> +-    let mut x49: fiat_p384_u1 = 0;
> +     let (x48, x49) = fiat_p384_addcarryx_u64(x47, x39, x36);
> +-    let mut x50: u64 = 0;
> +-    let mut x51: fiat_p384_u1 = 0;
> +     let (x50, x51) = fiat_p384_addcarryx_u64(x49, x37, x34);
> +-    let mut x52: u64 = 0;
> +-    let mut x53: fiat_p384_u1 = 0;
> +     let (x52, x53) = fiat_p384_addcarryx_u64(x51, x35, x32);
> +     let x54: u64 = ((x53 as u64) + x33);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_addcarryx_u64(0x0, x17, x42);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_addcarryx_u64(x56, x19, x44);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_u1 = 0;
> +     let (x59, x60) = fiat_p384_addcarryx_u64(x58, x21, x46);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_u1 = 0;
> +     let (x61, x62) = fiat_p384_addcarryx_u64(x60, x23, x48);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_u1 = 0;
> +     let (x63, x64) = fiat_p384_addcarryx_u64(x62, x25, x50);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_u1 = 0;
> +     let (x65, x66) = fiat_p384_addcarryx_u64(x64, x27, x52);
> +-    let mut x67: u64 = 0;
> +-    let mut x68: fiat_p384_u1 = 0;
> +     let (x67, x68) = fiat_p384_addcarryx_u64(x66, x29, x54);
> +-    let mut x69: u64 = 0;
> +-    let mut x70: u64 = 0;
> +     let (x69, x70) = fiat_p384_mulx_u64(x1, (arg2[5]));
> +-    let mut x71: u64 = 0;
> +-    let mut x72: u64 = 0;
> +     let (x71, x72) = fiat_p384_mulx_u64(x1, (arg2[4]));
> +-    let mut x73: u64 = 0;
> +-    let mut x74: u64 = 0;
> +     let (x73, x74) = fiat_p384_mulx_u64(x1, (arg2[3]));
> +-    let mut x75: u64 = 0;
> +-    let mut x76: u64 = 0;
> +     let (x75, x76) = fiat_p384_mulx_u64(x1, (arg2[2]));
> +-    let mut x77: u64 = 0;
> +-    let mut x78: u64 = 0;
> +     let (x77, x78) = fiat_p384_mulx_u64(x1, (arg2[1]));
> +-    let mut x79: u64 = 0;
> +-    let mut x80: u64 = 0;
> +     let (x79, x80) = fiat_p384_mulx_u64(x1, (arg2[0]));
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_u1 = 0;
> +     let (x81, x82) = fiat_p384_addcarryx_u64(0x0, x80, x77);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_u1 = 0;
> +     let (x83, x84) = fiat_p384_addcarryx_u64(x82, x78, x75);
> +-    let mut x85: u64 = 0;
> +-    let mut x86: fiat_p384_u1 = 0;
> +     let (x85, x86) = fiat_p384_addcarryx_u64(x84, x76, x73);
> +-    let mut x87: u64 = 0;
> +-    let mut x88: fiat_p384_u1 = 0;
> +     let (x87, x88) = fiat_p384_addcarryx_u64(x86, x74, x71);
> +-    let mut x89: u64 = 0;
> +-    let mut x90: fiat_p384_u1 = 0;
> +     let (x89, x90) = fiat_p384_addcarryx_u64(x88, x72, x69);
> +     let x91: u64 = ((x90 as u64) + x70);
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u64(0x0, x57, x79);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x59, x81);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_u1 = 0;
> +     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x61, x83);
> +-    let mut x98: u64 = 0;
> +-    let mut x99: fiat_p384_u1 = 0;
> +     let (x98, x99) = fiat_p384_addcarryx_u64(x97, x63, x85);
> +-    let mut x100: u64 = 0;
> +-    let mut x101: fiat_p384_u1 = 0;
> +     let (x100, x101) = fiat_p384_addcarryx_u64(x99, x65, x87);
> +-    let mut x102: u64 = 0;
> +-    let mut x103: fiat_p384_u1 = 0;
> +     let (x102, x103) = fiat_p384_addcarryx_u64(x101, x67, x89);
> +-    let mut x104: u64 = 0;
> +-    let mut x105: fiat_p384_u1 = 0;
> +     let (x104, x105) = fiat_p384_addcarryx_u64(x103, (x68 as u64), x91);
> +-    let mut x106: u64 = 0;
> +-    let mut x107: u64 = 0;
> +     let (x106, x107) = fiat_p384_mulx_u64(x92, 0x100000001);
> +-    let mut x108: u64 = 0;
> +-    let mut x109: u64 = 0;
> +     let (x108, x109) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x110: u64 = 0;
> +-    let mut x111: u64 = 0;
> +     let (x110, x111) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: u64 = 0;
> +     let (x112, x113) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: u64 = 0;
> +     let (x114, x115) = fiat_p384_mulx_u64(x106, 0xfffffffffffffffe);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: u64 = 0;
> +     let (x116, x117) = fiat_p384_mulx_u64(x106, 0xffffffff00000000);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: u64 = 0;
> +     let (x118, x119) = fiat_p384_mulx_u64(x106, 0xffffffff);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_u1 = 0;
> +     let (x120, x121) = fiat_p384_addcarryx_u64(0x0, x119, x116);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_u1 = 0;
> +     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x117, x114);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_u1 = 0;
> +     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x115, x112);
> +-    let mut x126: u64 = 0;
> +-    let mut x127: fiat_p384_u1 = 0;
> +     let (x126, x127) = fiat_p384_addcarryx_u64(x125, x113, x110);
> +-    let mut x128: u64 = 0;
> +-    let mut x129: fiat_p384_u1 = 0;
> +     let (x128, x129) = fiat_p384_addcarryx_u64(x127, x111, x108);
> +     let x130: u64 = ((x129 as u64) + x109);
> +-    let mut x131: u64 = 0;
> +-    let mut x132: fiat_p384_u1 = 0;
> +     let (x131, x132) = fiat_p384_addcarryx_u64(0x0, x92, x118);
> +-    let mut x133: u64 = 0;
> +-    let mut x134: fiat_p384_u1 = 0;
> +     let (x133, x134) = fiat_p384_addcarryx_u64(x132, x94, x120);
> +-    let mut x135: u64 = 0;
> +-    let mut x136: fiat_p384_u1 = 0;
> +     let (x135, x136) = fiat_p384_addcarryx_u64(x134, x96, x122);
> +-    let mut x137: u64 = 0;
> +-    let mut x138: fiat_p384_u1 = 0;
> +     let (x137, x138) = fiat_p384_addcarryx_u64(x136, x98, x124);
> +-    let mut x139: u64 = 0;
> +-    let mut x140: fiat_p384_u1 = 0;
> +     let (x139, x140) = fiat_p384_addcarryx_u64(x138, x100, x126);
> +-    let mut x141: u64 = 0;
> +-    let mut x142: fiat_p384_u1 = 0;
> +     let (x141, x142) = fiat_p384_addcarryx_u64(x140, x102, x128);
> +-    let mut x143: u64 = 0;
> +-    let mut x144: fiat_p384_u1 = 0;
> +     let (x143, x144) = fiat_p384_addcarryx_u64(x142, x104, x130);
> +     let x145: u64 = ((x144 as u64) + (x105 as u64));
> +-    let mut x146: u64 = 0;
> +-    let mut x147: u64 = 0;
> +     let (x146, x147) = fiat_p384_mulx_u64(x2, (arg2[5]));
> +-    let mut x148: u64 = 0;
> +-    let mut x149: u64 = 0;
> +     let (x148, x149) = fiat_p384_mulx_u64(x2, (arg2[4]));
> +-    let mut x150: u64 = 0;
> +-    let mut x151: u64 = 0;
> +     let (x150, x151) = fiat_p384_mulx_u64(x2, (arg2[3]));
> +-    let mut x152: u64 = 0;
> +-    let mut x153: u64 = 0;
> +     let (x152, x153) = fiat_p384_mulx_u64(x2, (arg2[2]));
> +-    let mut x154: u64 = 0;
> +-    let mut x155: u64 = 0;
> +     let (x154, x155) = fiat_p384_mulx_u64(x2, (arg2[1]));
> +-    let mut x156: u64 = 0;
> +-    let mut x157: u64 = 0;
> +     let (x156, x157) = fiat_p384_mulx_u64(x2, (arg2[0]));
> +-    let mut x158: u64 = 0;
> +-    let mut x159: fiat_p384_u1 = 0;
> +     let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x157, x154);
> +-    let mut x160: u64 = 0;
> +-    let mut x161: fiat_p384_u1 = 0;
> +     let (x160, x161) = fiat_p384_addcarryx_u64(x159, x155, x152);
> +-    let mut x162: u64 = 0;
> +-    let mut x163: fiat_p384_u1 = 0;
> +     let (x162, x163) = fiat_p384_addcarryx_u64(x161, x153, x150);
> +-    let mut x164: u64 = 0;
> +-    let mut x165: fiat_p384_u1 = 0;
> +     let (x164, x165) = fiat_p384_addcarryx_u64(x163, x151, x148);
> +-    let mut x166: u64 = 0;
> +-    let mut x167: fiat_p384_u1 = 0;
> +     let (x166, x167) = fiat_p384_addcarryx_u64(x165, x149, x146);
> +     let x168: u64 = ((x167 as u64) + x147);
> +-    let mut x169: u64 = 0;
> +-    let mut x170: fiat_p384_u1 = 0;
> +     let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x133, x156);
> +-    let mut x171: u64 = 0;
> +-    let mut x172: fiat_p384_u1 = 0;
> +     let (x171, x172) = fiat_p384_addcarryx_u64(x170, x135, x158);
> +-    let mut x173: u64 = 0;
> +-    let mut x174: fiat_p384_u1 = 0;
> +     let (x173, x174) = fiat_p384_addcarryx_u64(x172, x137, x160);
> +-    let mut x175: u64 = 0;
> +-    let mut x176: fiat_p384_u1 = 0;
> +     let (x175, x176) = fiat_p384_addcarryx_u64(x174, x139, x162);
> +-    let mut x177: u64 = 0;
> +-    let mut x178: fiat_p384_u1 = 0;
> +     let (x177, x178) = fiat_p384_addcarryx_u64(x176, x141, x164);
> +-    let mut x179: u64 = 0;
> +-    let mut x180: fiat_p384_u1 = 0;
> +     let (x179, x180) = fiat_p384_addcarryx_u64(x178, x143, x166);
> +-    let mut x181: u64 = 0;
> +-    let mut x182: fiat_p384_u1 = 0;
> +     let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x168);
> +-    let mut x183: u64 = 0;
> +-    let mut x184: u64 = 0;
> +     let (x183, x184) = fiat_p384_mulx_u64(x169, 0x100000001);
> +-    let mut x185: u64 = 0;
> +-    let mut x186: u64 = 0;
> +     let (x185, x186) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x187: u64 = 0;
> +-    let mut x188: u64 = 0;
> +     let (x187, x188) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x189: u64 = 0;
> +-    let mut x190: u64 = 0;
> +     let (x189, x190) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x191: u64 = 0;
> +-    let mut x192: u64 = 0;
> +     let (x191, x192) = fiat_p384_mulx_u64(x183, 0xfffffffffffffffe);
> +-    let mut x193: u64 = 0;
> +-    let mut x194: u64 = 0;
> +     let (x193, x194) = fiat_p384_mulx_u64(x183, 0xffffffff00000000);
> +-    let mut x195: u64 = 0;
> +-    let mut x196: u64 = 0;
> +     let (x195, x196) = fiat_p384_mulx_u64(x183, 0xffffffff);
> +-    let mut x197: u64 = 0;
> +-    let mut x198: fiat_p384_u1 = 0;
> +     let (x197, x198) = fiat_p384_addcarryx_u64(0x0, x196, x193);
> +-    let mut x199: u64 = 0;
> +-    let mut x200: fiat_p384_u1 = 0;
> +     let (x199, x200) = fiat_p384_addcarryx_u64(x198, x194, x191);
> +-    let mut x201: u64 = 0;
> +-    let mut x202: fiat_p384_u1 = 0;
> +     let (x201, x202) = fiat_p384_addcarryx_u64(x200, x192, x189);
> +-    let mut x203: u64 = 0;
> +-    let mut x204: fiat_p384_u1 = 0;
> +     let (x203, x204) = fiat_p384_addcarryx_u64(x202, x190, x187);
> +-    let mut x205: u64 = 0;
> +-    let mut x206: fiat_p384_u1 = 0;
> +     let (x205, x206) = fiat_p384_addcarryx_u64(x204, x188, x185);
> +     let x207: u64 = ((x206 as u64) + x186);
> +-    let mut x208: u64 = 0;
> +-    let mut x209: fiat_p384_u1 = 0;
> +     let (x208, x209) = fiat_p384_addcarryx_u64(0x0, x169, x195);
> +-    let mut x210: u64 = 0;
> +-    let mut x211: fiat_p384_u1 = 0;
> +     let (x210, x211) = fiat_p384_addcarryx_u64(x209, x171, x197);
> +-    let mut x212: u64 = 0;
> +-    let mut x213: fiat_p384_u1 = 0;
> +     let (x212, x213) = fiat_p384_addcarryx_u64(x211, x173, x199);
> +-    let mut x214: u64 = 0;
> +-    let mut x215: fiat_p384_u1 = 0;
> +     let (x214, x215) = fiat_p384_addcarryx_u64(x213, x175, x201);
> +-    let mut x216: u64 = 0;
> +-    let mut x217: fiat_p384_u1 = 0;
> +     let (x216, x217) = fiat_p384_addcarryx_u64(x215, x177, x203);
> +-    let mut x218: u64 = 0;
> +-    let mut x219: fiat_p384_u1 = 0;
> +     let (x218, x219) = fiat_p384_addcarryx_u64(x217, x179, x205);
> +-    let mut x220: u64 = 0;
> +-    let mut x221: fiat_p384_u1 = 0;
> +     let (x220, x221) = fiat_p384_addcarryx_u64(x219, x181, x207);
> +     let x222: u64 = ((x221 as u64) + (x182 as u64));
> +-    let mut x223: u64 = 0;
> +-    let mut x224: u64 = 0;
> +     let (x223, x224) = fiat_p384_mulx_u64(x3, (arg2[5]));
> +-    let mut x225: u64 = 0;
> +-    let mut x226: u64 = 0;
> +     let (x225, x226) = fiat_p384_mulx_u64(x3, (arg2[4]));
> +-    let mut x227: u64 = 0;
> +-    let mut x228: u64 = 0;
> +     let (x227, x228) = fiat_p384_mulx_u64(x3, (arg2[3]));
> +-    let mut x229: u64 = 0;
> +-    let mut x230: u64 = 0;
> +     let (x229, x230) = fiat_p384_mulx_u64(x3, (arg2[2]));
> +-    let mut x231: u64 = 0;
> +-    let mut x232: u64 = 0;
> +     let (x231, x232) = fiat_p384_mulx_u64(x3, (arg2[1]));
> +-    let mut x233: u64 = 0;
> +-    let mut x234: u64 = 0;
> +     let (x233, x234) = fiat_p384_mulx_u64(x3, (arg2[0]));
> +-    let mut x235: u64 = 0;
> +-    let mut x236: fiat_p384_u1 = 0;
> +     let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
> +-    let mut x237: u64 = 0;
> +-    let mut x238: fiat_p384_u1 = 0;
> +     let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
> +-    let mut x239: u64 = 0;
> +-    let mut x240: fiat_p384_u1 = 0;
> +     let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
> +-    let mut x241: u64 = 0;
> +-    let mut x242: fiat_p384_u1 = 0;
> +     let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
> +-    let mut x243: u64 = 0;
> +-    let mut x244: fiat_p384_u1 = 0;
> +     let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
> +     let x245: u64 = ((x244 as u64) + x224);
> +-    let mut x246: u64 = 0;
> +-    let mut x247: fiat_p384_u1 = 0;
> +     let (x246, x247) = fiat_p384_addcarryx_u64(0x0, x210, x233);
> +-    let mut x248: u64 = 0;
> +-    let mut x249: fiat_p384_u1 = 0;
> +     let (x248, x249) = fiat_p384_addcarryx_u64(x247, x212, x235);
> +-    let mut x250: u64 = 0;
> +-    let mut x251: fiat_p384_u1 = 0;
> +     let (x250, x251) = fiat_p384_addcarryx_u64(x249, x214, x237);
> +-    let mut x252: u64 = 0;
> +-    let mut x253: fiat_p384_u1 = 0;
> +     let (x252, x253) = fiat_p384_addcarryx_u64(x251, x216, x239);
> +-    let mut x254: u64 = 0;
> +-    let mut x255: fiat_p384_u1 = 0;
> +     let (x254, x255) = fiat_p384_addcarryx_u64(x253, x218, x241);
> +-    let mut x256: u64 = 0;
> +-    let mut x257: fiat_p384_u1 = 0;
> +     let (x256, x257) = fiat_p384_addcarryx_u64(x255, x220, x243);
> +-    let mut x258: u64 = 0;
> +-    let mut x259: fiat_p384_u1 = 0;
> +     let (x258, x259) = fiat_p384_addcarryx_u64(x257, x222, x245);
> +-    let mut x260: u64 = 0;
> +-    let mut x261: u64 = 0;
> +     let (x260, x261) = fiat_p384_mulx_u64(x246, 0x100000001);
> +-    let mut x262: u64 = 0;
> +-    let mut x263: u64 = 0;
> +     let (x262, x263) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x264: u64 = 0;
> +-    let mut x265: u64 = 0;
> +     let (x264, x265) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x266: u64 = 0;
> +-    let mut x267: u64 = 0;
> +     let (x266, x267) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x268: u64 = 0;
> +-    let mut x269: u64 = 0;
> +     let (x268, x269) = fiat_p384_mulx_u64(x260, 0xfffffffffffffffe);
> +-    let mut x270: u64 = 0;
> +-    let mut x271: u64 = 0;
> +     let (x270, x271) = fiat_p384_mulx_u64(x260, 0xffffffff00000000);
> +-    let mut x272: u64 = 0;
> +-    let mut x273: u64 = 0;
> +     let (x272, x273) = fiat_p384_mulx_u64(x260, 0xffffffff);
> +-    let mut x274: u64 = 0;
> +-    let mut x275: fiat_p384_u1 = 0;
> +     let (x274, x275) = fiat_p384_addcarryx_u64(0x0, x273, x270);
> +-    let mut x276: u64 = 0;
> +-    let mut x277: fiat_p384_u1 = 0;
> +     let (x276, x277) = fiat_p384_addcarryx_u64(x275, x271, x268);
> +-    let mut x278: u64 = 0;
> +-    let mut x279: fiat_p384_u1 = 0;
> +     let (x278, x279) = fiat_p384_addcarryx_u64(x277, x269, x266);
> +-    let mut x280: u64 = 0;
> +-    let mut x281: fiat_p384_u1 = 0;
> +     let (x280, x281) = fiat_p384_addcarryx_u64(x279, x267, x264);
> +-    let mut x282: u64 = 0;
> +-    let mut x283: fiat_p384_u1 = 0;
> +     let (x282, x283) = fiat_p384_addcarryx_u64(x281, x265, x262);
> +     let x284: u64 = ((x283 as u64) + x263);
> +-    let mut x285: u64 = 0;
> +-    let mut x286: fiat_p384_u1 = 0;
> +     let (x285, x286) = fiat_p384_addcarryx_u64(0x0, x246, x272);
> +-    let mut x287: u64 = 0;
> +-    let mut x288: fiat_p384_u1 = 0;
> +     let (x287, x288) = fiat_p384_addcarryx_u64(x286, x248, x274);
> +-    let mut x289: u64 = 0;
> +-    let mut x290: fiat_p384_u1 = 0;
> +     let (x289, x290) = fiat_p384_addcarryx_u64(x288, x250, x276);
> +-    let mut x291: u64 = 0;
> +-    let mut x292: fiat_p384_u1 = 0;
> +     let (x291, x292) = fiat_p384_addcarryx_u64(x290, x252, x278);
> +-    let mut x293: u64 = 0;
> +-    let mut x294: fiat_p384_u1 = 0;
> +     let (x293, x294) = fiat_p384_addcarryx_u64(x292, x254, x280);
> +-    let mut x295: u64 = 0;
> +-    let mut x296: fiat_p384_u1 = 0;
> +     let (x295, x296) = fiat_p384_addcarryx_u64(x294, x256, x282);
> +-    let mut x297: u64 = 0;
> +-    let mut x298: fiat_p384_u1 = 0;
> +     let (x297, x298) = fiat_p384_addcarryx_u64(x296, x258, x284);
> +     let x299: u64 = ((x298 as u64) + (x259 as u64));
> +-    let mut x300: u64 = 0;
> +-    let mut x301: u64 = 0;
> +     let (x300, x301) = fiat_p384_mulx_u64(x4, (arg2[5]));
> +-    let mut x302: u64 = 0;
> +-    let mut x303: u64 = 0;
> +     let (x302, x303) = fiat_p384_mulx_u64(x4, (arg2[4]));
> +-    let mut x304: u64 = 0;
> +-    let mut x305: u64 = 0;
> +     let (x304, x305) = fiat_p384_mulx_u64(x4, (arg2[3]));
> +-    let mut x306: u64 = 0;
> +-    let mut x307: u64 = 0;
> +     let (x306, x307) = fiat_p384_mulx_u64(x4, (arg2[2]));
> +-    let mut x308: u64 = 0;
> +-    let mut x309: u64 = 0;
> +     let (x308, x309) = fiat_p384_mulx_u64(x4, (arg2[1]));
> +-    let mut x310: u64 = 0;
> +-    let mut x311: u64 = 0;
> +     let (x310, x311) = fiat_p384_mulx_u64(x4, (arg2[0]));
> +-    let mut x312: u64 = 0;
> +-    let mut x313: fiat_p384_u1 = 0;
> +     let (x312, x313) = fiat_p384_addcarryx_u64(0x0, x311, x308);
> +-    let mut x314: u64 = 0;
> +-    let mut x315: fiat_p384_u1 = 0;
> +     let (x314, x315) = fiat_p384_addcarryx_u64(x313, x309, x306);
> +-    let mut x316: u64 = 0;
> +-    let mut x317: fiat_p384_u1 = 0;
> +     let (x316, x317) = fiat_p384_addcarryx_u64(x315, x307, x304);
> +-    let mut x318: u64 = 0;
> +-    let mut x319: fiat_p384_u1 = 0;
> +     let (x318, x319) = fiat_p384_addcarryx_u64(x317, x305, x302);
> +-    let mut x320: u64 = 0;
> +-    let mut x321: fiat_p384_u1 = 0;
> +     let (x320, x321) = fiat_p384_addcarryx_u64(x319, x303, x300);
> +     let x322: u64 = ((x321 as u64) + x301);
> +-    let mut x323: u64 = 0;
> +-    let mut x324: fiat_p384_u1 = 0;
> +     let (x323, x324) = fiat_p384_addcarryx_u64(0x0, x287, x310);
> +-    let mut x325: u64 = 0;
> +-    let mut x326: fiat_p384_u1 = 0;
> +     let (x325, x326) = fiat_p384_addcarryx_u64(x324, x289, x312);
> +-    let mut x327: u64 = 0;
> +-    let mut x328: fiat_p384_u1 = 0;
> +     let (x327, x328) = fiat_p384_addcarryx_u64(x326, x291, x314);
> +-    let mut x329: u64 = 0;
> +-    let mut x330: fiat_p384_u1 = 0;
> +     let (x329, x330) = fiat_p384_addcarryx_u64(x328, x293, x316);
> +-    let mut x331: u64 = 0;
> +-    let mut x332: fiat_p384_u1 = 0;
> +     let (x331, x332) = fiat_p384_addcarryx_u64(x330, x295, x318);
> +-    let mut x333: u64 = 0;
> +-    let mut x334: fiat_p384_u1 = 0;
> +     let (x333, x334) = fiat_p384_addcarryx_u64(x332, x297, x320);
> +-    let mut x335: u64 = 0;
> +-    let mut x336: fiat_p384_u1 = 0;
> +     let (x335, x336) = fiat_p384_addcarryx_u64(x334, x299, x322);
> +-    let mut x337: u64 = 0;
> +-    let mut x338: u64 = 0;
> +     let (x337, x338) = fiat_p384_mulx_u64(x323, 0x100000001);
> +-    let mut x339: u64 = 0;
> +-    let mut x340: u64 = 0;
> +     let (x339, x340) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x341: u64 = 0;
> +-    let mut x342: u64 = 0;
> +     let (x341, x342) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x343: u64 = 0;
> +-    let mut x344: u64 = 0;
> +     let (x343, x344) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x345: u64 = 0;
> +-    let mut x346: u64 = 0;
> +     let (x345, x346) = fiat_p384_mulx_u64(x337, 0xfffffffffffffffe);
> +-    let mut x347: u64 = 0;
> +-    let mut x348: u64 = 0;
> +     let (x347, x348) = fiat_p384_mulx_u64(x337, 0xffffffff00000000);
> +-    let mut x349: u64 = 0;
> +-    let mut x350: u64 = 0;
> +     let (x349, x350) = fiat_p384_mulx_u64(x337, 0xffffffff);
> +-    let mut x351: u64 = 0;
> +-    let mut x352: fiat_p384_u1 = 0;
> +     let (x351, x352) = fiat_p384_addcarryx_u64(0x0, x350, x347);
> +-    let mut x353: u64 = 0;
> +-    let mut x354: fiat_p384_u1 = 0;
> +     let (x353, x354) = fiat_p384_addcarryx_u64(x352, x348, x345);
> +-    let mut x355: u64 = 0;
> +-    let mut x356: fiat_p384_u1 = 0;
> +     let (x355, x356) = fiat_p384_addcarryx_u64(x354, x346, x343);
> +-    let mut x357: u64 = 0;
> +-    let mut x358: fiat_p384_u1 = 0;
> +     let (x357, x358) = fiat_p384_addcarryx_u64(x356, x344, x341);
> +-    let mut x359: u64 = 0;
> +-    let mut x360: fiat_p384_u1 = 0;
> +     let (x359, x360) = fiat_p384_addcarryx_u64(x358, x342, x339);
> +     let x361: u64 = ((x360 as u64) + x340);
> +-    let mut x362: u64 = 0;
> +-    let mut x363: fiat_p384_u1 = 0;
> +     let (x362, x363) = fiat_p384_addcarryx_u64(0x0, x323, x349);
> +-    let mut x364: u64 = 0;
> +-    let mut x365: fiat_p384_u1 = 0;
> +     let (x364, x365) = fiat_p384_addcarryx_u64(x363, x325, x351);
> +-    let mut x366: u64 = 0;
> +-    let mut x367: fiat_p384_u1 = 0;
> +     let (x366, x367) = fiat_p384_addcarryx_u64(x365, x327, x353);
> +-    let mut x368: u64 = 0;
> +-    let mut x369: fiat_p384_u1 = 0;
> +     let (x368, x369) = fiat_p384_addcarryx_u64(x367, x329, x355);
> +-    let mut x370: u64 = 0;
> +-    let mut x371: fiat_p384_u1 = 0;
> +     let (x370, x371) = fiat_p384_addcarryx_u64(x369, x331, x357);
> +-    let mut x372: u64 = 0;
> +-    let mut x373: fiat_p384_u1 = 0;
> +     let (x372, x373) = fiat_p384_addcarryx_u64(x371, x333, x359);
> +-    let mut x374: u64 = 0;
> +-    let mut x375: fiat_p384_u1 = 0;
> +     let (x374, x375) = fiat_p384_addcarryx_u64(x373, x335, x361);
> +     let x376: u64 = ((x375 as u64) + (x336 as u64));
> +-    let mut x377: u64 = 0;
> +-    let mut x378: u64 = 0;
> +     let (x377, x378) = fiat_p384_mulx_u64(x5, (arg2[5]));
> +-    let mut x379: u64 = 0;
> +-    let mut x380: u64 = 0;
> +     let (x379, x380) = fiat_p384_mulx_u64(x5, (arg2[4]));
> +-    let mut x381: u64 = 0;
> +-    let mut x382: u64 = 0;
> +     let (x381, x382) = fiat_p384_mulx_u64(x5, (arg2[3]));
> +-    let mut x383: u64 = 0;
> +-    let mut x384: u64 = 0;
> +     let (x383, x384) = fiat_p384_mulx_u64(x5, (arg2[2]));
> +-    let mut x385: u64 = 0;
> +-    let mut x386: u64 = 0;
> +     let (x385, x386) = fiat_p384_mulx_u64(x5, (arg2[1]));
> +-    let mut x387: u64 = 0;
> +-    let mut x388: u64 = 0;
> +     let (x387, x388) = fiat_p384_mulx_u64(x5, (arg2[0]));
> +-    let mut x389: u64 = 0;
> +-    let mut x390: fiat_p384_u1 = 0;
> +     let (x389, x390) = fiat_p384_addcarryx_u64(0x0, x388, x385);
> +-    let mut x391: u64 = 0;
> +-    let mut x392: fiat_p384_u1 = 0;
> +     let (x391, x392) = fiat_p384_addcarryx_u64(x390, x386, x383);
> +-    let mut x393: u64 = 0;
> +-    let mut x394: fiat_p384_u1 = 0;
> +     let (x393, x394) = fiat_p384_addcarryx_u64(x392, x384, x381);
> +-    let mut x395: u64 = 0;
> +-    let mut x396: fiat_p384_u1 = 0;
> +     let (x395, x396) = fiat_p384_addcarryx_u64(x394, x382, x379);
> +-    let mut x397: u64 = 0;
> +-    let mut x398: fiat_p384_u1 = 0;
> +     let (x397, x398) = fiat_p384_addcarryx_u64(x396, x380, x377);
> +     let x399: u64 = ((x398 as u64) + x378);
> +-    let mut x400: u64 = 0;
> +-    let mut x401: fiat_p384_u1 = 0;
> +     let (x400, x401) = fiat_p384_addcarryx_u64(0x0, x364, x387);
> +-    let mut x402: u64 = 0;
> +-    let mut x403: fiat_p384_u1 = 0;
> +     let (x402, x403) = fiat_p384_addcarryx_u64(x401, x366, x389);
> +-    let mut x404: u64 = 0;
> +-    let mut x405: fiat_p384_u1 = 0;
> +     let (x404, x405) = fiat_p384_addcarryx_u64(x403, x368, x391);
> +-    let mut x406: u64 = 0;
> +-    let mut x407: fiat_p384_u1 = 0;
> +     let (x406, x407) = fiat_p384_addcarryx_u64(x405, x370, x393);
> +-    let mut x408: u64 = 0;
> +-    let mut x409: fiat_p384_u1 = 0;
> +     let (x408, x409) = fiat_p384_addcarryx_u64(x407, x372, x395);
> +-    let mut x410: u64 = 0;
> +-    let mut x411: fiat_p384_u1 = 0;
> +     let (x410, x411) = fiat_p384_addcarryx_u64(x409, x374, x397);
> +-    let mut x412: u64 = 0;
> +-    let mut x413: fiat_p384_u1 = 0;
> +     let (x412, x413) = fiat_p384_addcarryx_u64(x411, x376, x399);
> +-    let mut x414: u64 = 0;
> +-    let mut x415: u64 = 0;
> +     let (x414, x415) = fiat_p384_mulx_u64(x400, 0x100000001);
> +-    let mut x416: u64 = 0;
> +-    let mut x417: u64 = 0;
> +     let (x416, x417) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x418: u64 = 0;
> +-    let mut x419: u64 = 0;
> +     let (x418, x419) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x420: u64 = 0;
> +-    let mut x421: u64 = 0;
> +     let (x420, x421) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x422: u64 = 0;
> +-    let mut x423: u64 = 0;
> +     let (x422, x423) = fiat_p384_mulx_u64(x414, 0xfffffffffffffffe);
> +-    let mut x424: u64 = 0;
> +-    let mut x425: u64 = 0;
> +     let (x424, x425) = fiat_p384_mulx_u64(x414, 0xffffffff00000000);
> +-    let mut x426: u64 = 0;
> +-    let mut x427: u64 = 0;
> +     let (x426, x427) = fiat_p384_mulx_u64(x414, 0xffffffff);
> +-    let mut x428: u64 = 0;
> +-    let mut x429: fiat_p384_u1 = 0;
> +     let (x428, x429) = fiat_p384_addcarryx_u64(0x0, x427, x424);
> +-    let mut x430: u64 = 0;
> +-    let mut x431: fiat_p384_u1 = 0;
> +     let (x430, x431) = fiat_p384_addcarryx_u64(x429, x425, x422);
> +-    let mut x432: u64 = 0;
> +-    let mut x433: fiat_p384_u1 = 0;
> +     let (x432, x433) = fiat_p384_addcarryx_u64(x431, x423, x420);
> +-    let mut x434: u64 = 0;
> +-    let mut x435: fiat_p384_u1 = 0;
> +     let (x434, x435) = fiat_p384_addcarryx_u64(x433, x421, x418);
> +-    let mut x436: u64 = 0;
> +-    let mut x437: fiat_p384_u1 = 0;
> +     let (x436, x437) = fiat_p384_addcarryx_u64(x435, x419, x416);
> +     let x438: u64 = ((x437 as u64) + x417);
> +-    let mut x439: u64 = 0;
> +-    let mut x440: fiat_p384_u1 = 0;
> +     let (x439, x440) = fiat_p384_addcarryx_u64(0x0, x400, x426);
> +-    let mut x441: u64 = 0;
> +-    let mut x442: fiat_p384_u1 = 0;
> +     let (x441, x442) = fiat_p384_addcarryx_u64(x440, x402, x428);
> +-    let mut x443: u64 = 0;
> +-    let mut x444: fiat_p384_u1 = 0;
> +     let (x443, x444) = fiat_p384_addcarryx_u64(x442, x404, x430);
> +-    let mut x445: u64 = 0;
> +-    let mut x446: fiat_p384_u1 = 0;
> +     let (x445, x446) = fiat_p384_addcarryx_u64(x444, x406, x432);
> +-    let mut x447: u64 = 0;
> +-    let mut x448: fiat_p384_u1 = 0;
> +     let (x447, x448) = fiat_p384_addcarryx_u64(x446, x408, x434);
> +-    let mut x449: u64 = 0;
> +-    let mut x450: fiat_p384_u1 = 0;
> +     let (x449, x450) = fiat_p384_addcarryx_u64(x448, x410, x436);
> +-    let mut x451: u64 = 0;
> +-    let mut x452: fiat_p384_u1 = 0;
> +     let (x451, x452) = fiat_p384_addcarryx_u64(x450, x412, x438);
> +     let x453: u64 = ((x452 as u64) + (x413 as u64));
> +-    let mut x454: u64 = 0;
> +-    let mut x455: fiat_p384_u1 = 0;
> +     let (x454, x455) = fiat_p384_subborrowx_u64(0x0, x441, 0xffffffff);
> +-    let mut x456: u64 = 0;
> +-    let mut x457: fiat_p384_u1 = 0;
> +     let (x456, x457) = fiat_p384_subborrowx_u64(x455, x443, 0xffffffff00000000);
> +-    let mut x458: u64 = 0;
> +-    let mut x459: fiat_p384_u1 = 0;
> +     let (x458, x459) = fiat_p384_subborrowx_u64(x457, x445, 0xfffffffffffffffe);
> +-    let mut x460: u64 = 0;
> +-    let mut x461: fiat_p384_u1 = 0;
> +     let (x460, x461) = fiat_p384_subborrowx_u64(x459, x447, 0xffffffffffffffff);
> +-    let mut x462: u64 = 0;
> +-    let mut x463: fiat_p384_u1 = 0;
> +     let (x462, x463) = fiat_p384_subborrowx_u64(x461, x449, 0xffffffffffffffff);
> +-    let mut x464: u64 = 0;
> +-    let mut x465: fiat_p384_u1 = 0;
> +     let (x464, x465) = fiat_p384_subborrowx_u64(x463, x451, 0xffffffffffffffff);
> +-    let mut x466: u64 = 0;
> +-    let mut x467: fiat_p384_u1 = 0;
> +     let (x466, x467) = fiat_p384_subborrowx_u64(x465, x453, (0x0 as u64));
> +-    let mut x468: u64 = 0;
> +     let (x468) = fiat_p384_cmovznz_u64(x467, x454, x441);
> +-    let mut x469: u64 = 0;
> +     let (x469) = fiat_p384_cmovznz_u64(x467, x456, x443);
> +-    let mut x470: u64 = 0;
> +     let (x470) = fiat_p384_cmovznz_u64(x467, x458, x445);
> +-    let mut x471: u64 = 0;
> +     let (x471) = fiat_p384_cmovznz_u64(x467, x460, x447);
> +-    let mut x472: u64 = 0;
> +     let (x472) = fiat_p384_cmovznz_u64(x467, x462, x449);
> +-    let mut x473: u64 = 0;
> +     let (x473) = fiat_p384_cmovznz_u64(x467, x464, x451);
> +     out1[0] = x468;
> +     out1[1] = x469;
> +@@ -876,700 +426,250 @@ pub const fn fiat_p384_square(
> +     let x4: u64 = (arg1[4]);
> +     let x5: u64 = (arg1[5]);
> +     let x6: u64 = (arg1[0]);
> +-    let mut x7: u64 = 0;
> +-    let mut x8: u64 = 0;
> +     let (x7, x8) = fiat_p384_mulx_u64(x6, (arg1[5]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: u64 = 0;
> +     let (x9, x10) = fiat_p384_mulx_u64(x6, (arg1[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: u64 = 0;
> +     let (x11, x12) = fiat_p384_mulx_u64(x6, (arg1[3]));
> +-    let mut x13: u64 = 0;
> +-    let mut x14: u64 = 0;
> +     let (x13, x14) = fiat_p384_mulx_u64(x6, (arg1[2]));
> +-    let mut x15: u64 = 0;
> +-    let mut x16: u64 = 0;
> +     let (x15, x16) = fiat_p384_mulx_u64(x6, (arg1[1]));
> +-    let mut x17: u64 = 0;
> +-    let mut x18: u64 = 0;
> +     let (x17, x18) = fiat_p384_mulx_u64(x6, (arg1[0]));
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_addcarryx_u64(0x0, x18, x15);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_addcarryx_u64(x20, x16, x13);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_u1 = 0;
> +     let (x23, x24) = fiat_p384_addcarryx_u64(x22, x14, x11);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_u1 = 0;
> +     let (x25, x26) = fiat_p384_addcarryx_u64(x24, x12, x9);
> +-    let mut x27: u64 = 0;
> +-    let mut x28: fiat_p384_u1 = 0;
> +     let (x27, x28) = fiat_p384_addcarryx_u64(x26, x10, x7);
> +     let x29: u64 = ((x28 as u64) + x8);
> +-    let mut x30: u64 = 0;
> +-    let mut x31: u64 = 0;
> +     let (x30, x31) = fiat_p384_mulx_u64(x17, 0x100000001);
> +-    let mut x32: u64 = 0;
> +-    let mut x33: u64 = 0;
> +     let (x32, x33) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x34: u64 = 0;
> +-    let mut x35: u64 = 0;
> +     let (x34, x35) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x36: u64 = 0;
> +-    let mut x37: u64 = 0;
> +     let (x36, x37) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x38: u64 = 0;
> +-    let mut x39: u64 = 0;
> +     let (x38, x39) = fiat_p384_mulx_u64(x30, 0xfffffffffffffffe);
> +-    let mut x40: u64 = 0;
> +-    let mut x41: u64 = 0;
> +     let (x40, x41) = fiat_p384_mulx_u64(x30, 0xffffffff00000000);
> +-    let mut x42: u64 = 0;
> +-    let mut x43: u64 = 0;
> +     let (x42, x43) = fiat_p384_mulx_u64(x30, 0xffffffff);
> +-    let mut x44: u64 = 0;
> +-    let mut x45: fiat_p384_u1 = 0;
> +     let (x44, x45) = fiat_p384_addcarryx_u64(0x0, x43, x40);
> +-    let mut x46: u64 = 0;
> +-    let mut x47: fiat_p384_u1 = 0;
> +     let (x46, x47) = fiat_p384_addcarryx_u64(x45, x41, x38);
> +-    let mut x48: u64 = 0;
> +-    let mut x49: fiat_p384_u1 = 0;
> +     let (x48, x49) = fiat_p384_addcarryx_u64(x47, x39, x36);
> +-    let mut x50: u64 = 0;
> +-    let mut x51: fiat_p384_u1 = 0;
> +     let (x50, x51) = fiat_p384_addcarryx_u64(x49, x37, x34);
> +-    let mut x52: u64 = 0;
> +-    let mut x53: fiat_p384_u1 = 0;
> +     let (x52, x53) = fiat_p384_addcarryx_u64(x51, x35, x32);
> +     let x54: u64 = ((x53 as u64) + x33);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_addcarryx_u64(0x0, x17, x42);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_addcarryx_u64(x56, x19, x44);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_u1 = 0;
> +     let (x59, x60) = fiat_p384_addcarryx_u64(x58, x21, x46);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_u1 = 0;
> +     let (x61, x62) = fiat_p384_addcarryx_u64(x60, x23, x48);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_u1 = 0;
> +     let (x63, x64) = fiat_p384_addcarryx_u64(x62, x25, x50);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_u1 = 0;
> +     let (x65, x66) = fiat_p384_addcarryx_u64(x64, x27, x52);
> +-    let mut x67: u64 = 0;
> +-    let mut x68: fiat_p384_u1 = 0;
> +     let (x67, x68) = fiat_p384_addcarryx_u64(x66, x29, x54);
> +-    let mut x69: u64 = 0;
> +-    let mut x70: u64 = 0;
> +     let (x69, x70) = fiat_p384_mulx_u64(x1, (arg1[5]));
> +-    let mut x71: u64 = 0;
> +-    let mut x72: u64 = 0;
> +     let (x71, x72) = fiat_p384_mulx_u64(x1, (arg1[4]));
> +-    let mut x73: u64 = 0;
> +-    let mut x74: u64 = 0;
> +     let (x73, x74) = fiat_p384_mulx_u64(x1, (arg1[3]));
> +-    let mut x75: u64 = 0;
> +-    let mut x76: u64 = 0;
> +     let (x75, x76) = fiat_p384_mulx_u64(x1, (arg1[2]));
> +-    let mut x77: u64 = 0;
> +-    let mut x78: u64 = 0;
> +     let (x77, x78) = fiat_p384_mulx_u64(x1, (arg1[1]));
> +-    let mut x79: u64 = 0;
> +-    let mut x80: u64 = 0;
> +     let (x79, x80) = fiat_p384_mulx_u64(x1, (arg1[0]));
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_u1 = 0;
> +     let (x81, x82) = fiat_p384_addcarryx_u64(0x0, x80, x77);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_u1 = 0;
> +     let (x83, x84) = fiat_p384_addcarryx_u64(x82, x78, x75);
> +-    let mut x85: u64 = 0;
> +-    let mut x86: fiat_p384_u1 = 0;
> +     let (x85, x86) = fiat_p384_addcarryx_u64(x84, x76, x73);
> +-    let mut x87: u64 = 0;
> +-    let mut x88: fiat_p384_u1 = 0;
> +     let (x87, x88) = fiat_p384_addcarryx_u64(x86, x74, x71);
> +-    let mut x89: u64 = 0;
> +-    let mut x90: fiat_p384_u1 = 0;
> +     let (x89, x90) = fiat_p384_addcarryx_u64(x88, x72, x69);
> +     let x91: u64 = ((x90 as u64) + x70);
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u64(0x0, x57, x79);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x59, x81);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_u1 = 0;
> +     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x61, x83);
> +-    let mut x98: u64 = 0;
> +-    let mut x99: fiat_p384_u1 = 0;
> +     let (x98, x99) = fiat_p384_addcarryx_u64(x97, x63, x85);
> +-    let mut x100: u64 = 0;
> +-    let mut x101: fiat_p384_u1 = 0;
> +     let (x100, x101) = fiat_p384_addcarryx_u64(x99, x65, x87);
> +-    let mut x102: u64 = 0;
> +-    let mut x103: fiat_p384_u1 = 0;
> +     let (x102, x103) = fiat_p384_addcarryx_u64(x101, x67, x89);
> +-    let mut x104: u64 = 0;
> +-    let mut x105: fiat_p384_u1 = 0;
> +     let (x104, x105) = fiat_p384_addcarryx_u64(x103, (x68 as u64), x91);
> +-    let mut x106: u64 = 0;
> +-    let mut x107: u64 = 0;
> +     let (x106, x107) = fiat_p384_mulx_u64(x92, 0x100000001);
> +-    let mut x108: u64 = 0;
> +-    let mut x109: u64 = 0;
> +     let (x108, x109) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x110: u64 = 0;
> +-    let mut x111: u64 = 0;
> +     let (x110, x111) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: u64 = 0;
> +     let (x112, x113) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: u64 = 0;
> +     let (x114, x115) = fiat_p384_mulx_u64(x106, 0xfffffffffffffffe);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: u64 = 0;
> +     let (x116, x117) = fiat_p384_mulx_u64(x106, 0xffffffff00000000);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: u64 = 0;
> +     let (x118, x119) = fiat_p384_mulx_u64(x106, 0xffffffff);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_u1 = 0;
> +     let (x120, x121) = fiat_p384_addcarryx_u64(0x0, x119, x116);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_u1 = 0;
> +     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x117, x114);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_u1 = 0;
> +     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x115, x112);
> +-    let mut x126: u64 = 0;
> +-    let mut x127: fiat_p384_u1 = 0;
> +     let (x126, x127) = fiat_p384_addcarryx_u64(x125, x113, x110);
> +-    let mut x128: u64 = 0;
> +-    let mut x129: fiat_p384_u1 = 0;
> +     let (x128, x129) = fiat_p384_addcarryx_u64(x127, x111, x108);
> +     let x130: u64 = ((x129 as u64) + x109);
> +-    let mut x131: u64 = 0;
> +-    let mut x132: fiat_p384_u1 = 0;
> +     let (x131, x132) = fiat_p384_addcarryx_u64(0x0, x92, x118);
> +-    let mut x133: u64 = 0;
> +-    let mut x134: fiat_p384_u1 = 0;
> +     let (x133, x134) = fiat_p384_addcarryx_u64(x132, x94, x120);
> +-    let mut x135: u64 = 0;
> +-    let mut x136: fiat_p384_u1 = 0;
> +     let (x135, x136) = fiat_p384_addcarryx_u64(x134, x96, x122);
> +-    let mut x137: u64 = 0;
> +-    let mut x138: fiat_p384_u1 = 0;
> +     let (x137, x138) = fiat_p384_addcarryx_u64(x136, x98, x124);
> +-    let mut x139: u64 = 0;
> +-    let mut x140: fiat_p384_u1 = 0;
> +     let (x139, x140) = fiat_p384_addcarryx_u64(x138, x100, x126);
> +-    let mut x141: u64 = 0;
> +-    let mut x142: fiat_p384_u1 = 0;
> +     let (x141, x142) = fiat_p384_addcarryx_u64(x140, x102, x128);
> +-    let mut x143: u64 = 0;
> +-    let mut x144: fiat_p384_u1 = 0;
> +     let (x143, x144) = fiat_p384_addcarryx_u64(x142, x104, x130);
> +     let x145: u64 = ((x144 as u64) + (x105 as u64));
> +-    let mut x146: u64 = 0;
> +-    let mut x147: u64 = 0;
> +     let (x146, x147) = fiat_p384_mulx_u64(x2, (arg1[5]));
> +-    let mut x148: u64 = 0;
> +-    let mut x149: u64 = 0;
> +     let (x148, x149) = fiat_p384_mulx_u64(x2, (arg1[4]));
> +-    let mut x150: u64 = 0;
> +-    let mut x151: u64 = 0;
> +     let (x150, x151) = fiat_p384_mulx_u64(x2, (arg1[3]));
> +-    let mut x152: u64 = 0;
> +-    let mut x153: u64 = 0;
> +     let (x152, x153) = fiat_p384_mulx_u64(x2, (arg1[2]));
> +-    let mut x154: u64 = 0;
> +-    let mut x155: u64 = 0;
> +     let (x154, x155) = fiat_p384_mulx_u64(x2, (arg1[1]));
> +-    let mut x156: u64 = 0;
> +-    let mut x157: u64 = 0;
> +     let (x156, x157) = fiat_p384_mulx_u64(x2, (arg1[0]));
> +-    let mut x158: u64 = 0;
> +-    let mut x159: fiat_p384_u1 = 0;
> +     let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x157, x154);
> +-    let mut x160: u64 = 0;
> +-    let mut x161: fiat_p384_u1 = 0;
> +     let (x160, x161) = fiat_p384_addcarryx_u64(x159, x155, x152);
> +-    let mut x162: u64 = 0;
> +-    let mut x163: fiat_p384_u1 = 0;
> +     let (x162, x163) = fiat_p384_addcarryx_u64(x161, x153, x150);
> +-    let mut x164: u64 = 0;
> +-    let mut x165: fiat_p384_u1 = 0;
> +     let (x164, x165) = fiat_p384_addcarryx_u64(x163, x151, x148);
> +-    let mut x166: u64 = 0;
> +-    let mut x167: fiat_p384_u1 = 0;
> +     let (x166, x167) = fiat_p384_addcarryx_u64(x165, x149, x146);
> +     let x168: u64 = ((x167 as u64) + x147);
> +-    let mut x169: u64 = 0;
> +-    let mut x170: fiat_p384_u1 = 0;
> +     let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x133, x156);
> +-    let mut x171: u64 = 0;
> +-    let mut x172: fiat_p384_u1 = 0;
> +     let (x171, x172) = fiat_p384_addcarryx_u64(x170, x135, x158);
> +-    let mut x173: u64 = 0;
> +-    let mut x174: fiat_p384_u1 = 0;
> +     let (x173, x174) = fiat_p384_addcarryx_u64(x172, x137, x160);
> +-    let mut x175: u64 = 0;
> +-    let mut x176: fiat_p384_u1 = 0;
> +     let (x175, x176) = fiat_p384_addcarryx_u64(x174, x139, x162);
> +-    let mut x177: u64 = 0;
> +-    let mut x178: fiat_p384_u1 = 0;
> +     let (x177, x178) = fiat_p384_addcarryx_u64(x176, x141, x164);
> +-    let mut x179: u64 = 0;
> +-    let mut x180: fiat_p384_u1 = 0;
> +     let (x179, x180) = fiat_p384_addcarryx_u64(x178, x143, x166);
> +-    let mut x181: u64 = 0;
> +-    let mut x182: fiat_p384_u1 = 0;
> +     let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x168);
> +-    let mut x183: u64 = 0;
> +-    let mut x184: u64 = 0;
> +     let (x183, x184) = fiat_p384_mulx_u64(x169, 0x100000001);
> +-    let mut x185: u64 = 0;
> +-    let mut x186: u64 = 0;
> +     let (x185, x186) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x187: u64 = 0;
> +-    let mut x188: u64 = 0;
> +     let (x187, x188) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x189: u64 = 0;
> +-    let mut x190: u64 = 0;
> +     let (x189, x190) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x191: u64 = 0;
> +-    let mut x192: u64 = 0;
> +     let (x191, x192) = fiat_p384_mulx_u64(x183, 0xfffffffffffffffe);
> +-    let mut x193: u64 = 0;
> +-    let mut x194: u64 = 0;
> +     let (x193, x194) = fiat_p384_mulx_u64(x183, 0xffffffff00000000);
> +-    let mut x195: u64 = 0;
> +-    let mut x196: u64 = 0;
> +     let (x195, x196) = fiat_p384_mulx_u64(x183, 0xffffffff);
> +-    let mut x197: u64 = 0;
> +-    let mut x198: fiat_p384_u1 = 0;
> +     let (x197, x198) = fiat_p384_addcarryx_u64(0x0, x196, x193);
> +-    let mut x199: u64 = 0;
> +-    let mut x200: fiat_p384_u1 = 0;
> +     let (x199, x200) = fiat_p384_addcarryx_u64(x198, x194, x191);
> +-    let mut x201: u64 = 0;
> +-    let mut x202: fiat_p384_u1 = 0;
> +     let (x201, x202) = fiat_p384_addcarryx_u64(x200, x192, x189);
> +-    let mut x203: u64 = 0;
> +-    let mut x204: fiat_p384_u1 = 0;
> +     let (x203, x204) = fiat_p384_addcarryx_u64(x202, x190, x187);
> +-    let mut x205: u64 = 0;
> +-    let mut x206: fiat_p384_u1 = 0;
> +     let (x205, x206) = fiat_p384_addcarryx_u64(x204, x188, x185);
> +     let x207: u64 = ((x206 as u64) + x186);
> +-    let mut x208: u64 = 0;
> +-    let mut x209: fiat_p384_u1 = 0;
> +     let (x208, x209) = fiat_p384_addcarryx_u64(0x0, x169, x195);
> +-    let mut x210: u64 = 0;
> +-    let mut x211: fiat_p384_u1 = 0;
> +     let (x210, x211) = fiat_p384_addcarryx_u64(x209, x171, x197);
> +-    let mut x212: u64 = 0;
> +-    let mut x213: fiat_p384_u1 = 0;
> +     let (x212, x213) = fiat_p384_addcarryx_u64(x211, x173, x199);
> +-    let mut x214: u64 = 0;
> +-    let mut x215: fiat_p384_u1 = 0;
> +     let (x214, x215) = fiat_p384_addcarryx_u64(x213, x175, x201);
> +-    let mut x216: u64 = 0;
> +-    let mut x217: fiat_p384_u1 = 0;
> +     let (x216, x217) = fiat_p384_addcarryx_u64(x215, x177, x203);
> +-    let mut x218: u64 = 0;
> +-    let mut x219: fiat_p384_u1 = 0;
> +     let (x218, x219) = fiat_p384_addcarryx_u64(x217, x179, x205);
> +-    let mut x220: u64 = 0;
> +-    let mut x221: fiat_p384_u1 = 0;
> +     let (x220, x221) = fiat_p384_addcarryx_u64(x219, x181, x207);
> +     let x222: u64 = ((x221 as u64) + (x182 as u64));
> +-    let mut x223: u64 = 0;
> +-    let mut x224: u64 = 0;
> +     let (x223, x224) = fiat_p384_mulx_u64(x3, (arg1[5]));
> +-    let mut x225: u64 = 0;
> +-    let mut x226: u64 = 0;
> +     let (x225, x226) = fiat_p384_mulx_u64(x3, (arg1[4]));
> +-    let mut x227: u64 = 0;
> +-    let mut x228: u64 = 0;
> +     let (x227, x228) = fiat_p384_mulx_u64(x3, (arg1[3]));
> +-    let mut x229: u64 = 0;
> +-    let mut x230: u64 = 0;
> +     let (x229, x230) = fiat_p384_mulx_u64(x3, (arg1[2]));
> +-    let mut x231: u64 = 0;
> +-    let mut x232: u64 = 0;
> +     let (x231, x232) = fiat_p384_mulx_u64(x3, (arg1[1]));
> +-    let mut x233: u64 = 0;
> +-    let mut x234: u64 = 0;
> +     let (x233, x234) = fiat_p384_mulx_u64(x3, (arg1[0]));
> +-    let mut x235: u64 = 0;
> +-    let mut x236: fiat_p384_u1 = 0;
> +     let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
> +-    let mut x237: u64 = 0;
> +-    let mut x238: fiat_p384_u1 = 0;
> +     let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
> +-    let mut x239: u64 = 0;
> +-    let mut x240: fiat_p384_u1 = 0;
> +     let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
> +-    let mut x241: u64 = 0;
> +-    let mut x242: fiat_p384_u1 = 0;
> +     let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
> +-    let mut x243: u64 = 0;
> +-    let mut x244: fiat_p384_u1 = 0;
> +     let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
> +     let x245: u64 = ((x244 as u64) + x224);
> +-    let mut x246: u64 = 0;
> +-    let mut x247: fiat_p384_u1 = 0;
> +     let (x246, x247) = fiat_p384_addcarryx_u64(0x0, x210, x233);
> +-    let mut x248: u64 = 0;
> +-    let mut x249: fiat_p384_u1 = 0;
> +     let (x248, x249) = fiat_p384_addcarryx_u64(x247, x212, x235);
> +-    let mut x250: u64 = 0;
> +-    let mut x251: fiat_p384_u1 = 0;
> +     let (x250, x251) = fiat_p384_addcarryx_u64(x249, x214, x237);
> +-    let mut x252: u64 = 0;
> +-    let mut x253: fiat_p384_u1 = 0;
> +     let (x252, x253) = fiat_p384_addcarryx_u64(x251, x216, x239);
> +-    let mut x254: u64 = 0;
> +-    let mut x255: fiat_p384_u1 = 0;
> +     let (x254, x255) = fiat_p384_addcarryx_u64(x253, x218, x241);
> +-    let mut x256: u64 = 0;
> +-    let mut x257: fiat_p384_u1 = 0;
> +     let (x256, x257) = fiat_p384_addcarryx_u64(x255, x220, x243);
> +-    let mut x258: u64 = 0;
> +-    let mut x259: fiat_p384_u1 = 0;
> +     let (x258, x259) = fiat_p384_addcarryx_u64(x257, x222, x245);
> +-    let mut x260: u64 = 0;
> +-    let mut x261: u64 = 0;
> +     let (x260, x261) = fiat_p384_mulx_u64(x246, 0x100000001);
> +-    let mut x262: u64 = 0;
> +-    let mut x263: u64 = 0;
> +     let (x262, x263) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x264: u64 = 0;
> +-    let mut x265: u64 = 0;
> +     let (x264, x265) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x266: u64 = 0;
> +-    let mut x267: u64 = 0;
> +     let (x266, x267) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x268: u64 = 0;
> +-    let mut x269: u64 = 0;
> +     let (x268, x269) = fiat_p384_mulx_u64(x260, 0xfffffffffffffffe);
> +-    let mut x270: u64 = 0;
> +-    let mut x271: u64 = 0;
> +     let (x270, x271) = fiat_p384_mulx_u64(x260, 0xffffffff00000000);
> +-    let mut x272: u64 = 0;
> +-    let mut x273: u64 = 0;
> +     let (x272, x273) = fiat_p384_mulx_u64(x260, 0xffffffff);
> +-    let mut x274: u64 = 0;
> +-    let mut x275: fiat_p384_u1 = 0;
> +     let (x274, x275) = fiat_p384_addcarryx_u64(0x0, x273, x270);
> +-    let mut x276: u64 = 0;
> +-    let mut x277: fiat_p384_u1 = 0;
> +     let (x276, x277) = fiat_p384_addcarryx_u64(x275, x271, x268);
> +-    let mut x278: u64 = 0;
> +-    let mut x279: fiat_p384_u1 = 0;
> +     let (x278, x279) = fiat_p384_addcarryx_u64(x277, x269, x266);
> +-    let mut x280: u64 = 0;
> +-    let mut x281: fiat_p384_u1 = 0;
> +     let (x280, x281) = fiat_p384_addcarryx_u64(x279, x267, x264);
> +-    let mut x282: u64 = 0;
> +-    let mut x283: fiat_p384_u1 = 0;
> +     let (x282, x283) = fiat_p384_addcarryx_u64(x281, x265, x262);
> +     let x284: u64 = ((x283 as u64) + x263);
> +-    let mut x285: u64 = 0;
> +-    let mut x286: fiat_p384_u1 = 0;
> +     let (x285, x286) = fiat_p384_addcarryx_u64(0x0, x246, x272);
> +-    let mut x287: u64 = 0;
> +-    let mut x288: fiat_p384_u1 = 0;
> +     let (x287, x288) = fiat_p384_addcarryx_u64(x286, x248, x274);
> +-    let mut x289: u64 = 0;
> +-    let mut x290: fiat_p384_u1 = 0;
> +     let (x289, x290) = fiat_p384_addcarryx_u64(x288, x250, x276);
> +-    let mut x291: u64 = 0;
> +-    let mut x292: fiat_p384_u1 = 0;
> +     let (x291, x292) = fiat_p384_addcarryx_u64(x290, x252, x278);
> +-    let mut x293: u64 = 0;
> +-    let mut x294: fiat_p384_u1 = 0;
> +     let (x293, x294) = fiat_p384_addcarryx_u64(x292, x254, x280);
> +-    let mut x295: u64 = 0;
> +-    let mut x296: fiat_p384_u1 = 0;
> +     let (x295, x296) = fiat_p384_addcarryx_u64(x294, x256, x282);
> +-    let mut x297: u64 = 0;
> +-    let mut x298: fiat_p384_u1 = 0;
> +     let (x297, x298) = fiat_p384_addcarryx_u64(x296, x258, x284);
> +     let x299: u64 = ((x298 as u64) + (x259 as u64));
> +-    let mut x300: u64 = 0;
> +-    let mut x301: u64 = 0;
> +     let (x300, x301) = fiat_p384_mulx_u64(x4, (arg1[5]));
> +-    let mut x302: u64 = 0;
> +-    let mut x303: u64 = 0;
> +     let (x302, x303) = fiat_p384_mulx_u64(x4, (arg1[4]));
> +-    let mut x304: u64 = 0;
> +-    let mut x305: u64 = 0;
> +     let (x304, x305) = fiat_p384_mulx_u64(x4, (arg1[3]));
> +-    let mut x306: u64 = 0;
> +-    let mut x307: u64 = 0;
> +     let (x306, x307) = fiat_p384_mulx_u64(x4, (arg1[2]));
> +-    let mut x308: u64 = 0;
> +-    let mut x309: u64 = 0;
> +     let (x308, x309) = fiat_p384_mulx_u64(x4, (arg1[1]));
> +-    let mut x310: u64 = 0;
> +-    let mut x311: u64 = 0;
> +     let (x310, x311) = fiat_p384_mulx_u64(x4, (arg1[0]));
> +-    let mut x312: u64 = 0;
> +-    let mut x313: fiat_p384_u1 = 0;
> +     let (x312, x313) = fiat_p384_addcarryx_u64(0x0, x311, x308);
> +-    let mut x314: u64 = 0;
> +-    let mut x315: fiat_p384_u1 = 0;
> +     let (x314, x315) = fiat_p384_addcarryx_u64(x313, x309, x306);
> +-    let mut x316: u64 = 0;
> +-    let mut x317: fiat_p384_u1 = 0;
> +     let (x316, x317) = fiat_p384_addcarryx_u64(x315, x307, x304);
> +-    let mut x318: u64 = 0;
> +-    let mut x319: fiat_p384_u1 = 0;
> +     let (x318, x319) = fiat_p384_addcarryx_u64(x317, x305, x302);
> +-    let mut x320: u64 = 0;
> +-    let mut x321: fiat_p384_u1 = 0;
> +     let (x320, x321) = fiat_p384_addcarryx_u64(x319, x303, x300);
> +     let x322: u64 = ((x321 as u64) + x301);
> +-    let mut x323: u64 = 0;
> +-    let mut x324: fiat_p384_u1 = 0;
> +     let (x323, x324) = fiat_p384_addcarryx_u64(0x0, x287, x310);
> +-    let mut x325: u64 = 0;
> +-    let mut x326: fiat_p384_u1 = 0;
> +     let (x325, x326) = fiat_p384_addcarryx_u64(x324, x289, x312);
> +-    let mut x327: u64 = 0;
> +-    let mut x328: fiat_p384_u1 = 0;
> +     let (x327, x328) = fiat_p384_addcarryx_u64(x326, x291, x314);
> +-    let mut x329: u64 = 0;
> +-    let mut x330: fiat_p384_u1 = 0;
> +     let (x329, x330) = fiat_p384_addcarryx_u64(x328, x293, x316);
> +-    let mut x331: u64 = 0;
> +-    let mut x332: fiat_p384_u1 = 0;
> +     let (x331, x332) = fiat_p384_addcarryx_u64(x330, x295, x318);
> +-    let mut x333: u64 = 0;
> +-    let mut x334: fiat_p384_u1 = 0;
> +     let (x333, x334) = fiat_p384_addcarryx_u64(x332, x297, x320);
> +-    let mut x335: u64 = 0;
> +-    let mut x336: fiat_p384_u1 = 0;
> +     let (x335, x336) = fiat_p384_addcarryx_u64(x334, x299, x322);
> +-    let mut x337: u64 = 0;
> +-    let mut x338: u64 = 0;
> +     let (x337, x338) = fiat_p384_mulx_u64(x323, 0x100000001);
> +-    let mut x339: u64 = 0;
> +-    let mut x340: u64 = 0;
> +     let (x339, x340) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x341: u64 = 0;
> +-    let mut x342: u64 = 0;
> +     let (x341, x342) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x343: u64 = 0;
> +-    let mut x344: u64 = 0;
> +     let (x343, x344) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x345: u64 = 0;
> +-    let mut x346: u64 = 0;
> +     let (x345, x346) = fiat_p384_mulx_u64(x337, 0xfffffffffffffffe);
> +-    let mut x347: u64 = 0;
> +-    let mut x348: u64 = 0;
> +     let (x347, x348) = fiat_p384_mulx_u64(x337, 0xffffffff00000000);
> +-    let mut x349: u64 = 0;
> +-    let mut x350: u64 = 0;
> +     let (x349, x350) = fiat_p384_mulx_u64(x337, 0xffffffff);
> +-    let mut x351: u64 = 0;
> +-    let mut x352: fiat_p384_u1 = 0;
> +     let (x351, x352) = fiat_p384_addcarryx_u64(0x0, x350, x347);
> +-    let mut x353: u64 = 0;
> +-    let mut x354: fiat_p384_u1 = 0;
> +     let (x353, x354) = fiat_p384_addcarryx_u64(x352, x348, x345);
> +-    let mut x355: u64 = 0;
> +-    let mut x356: fiat_p384_u1 = 0;
> +     let (x355, x356) = fiat_p384_addcarryx_u64(x354, x346, x343);
> +-    let mut x357: u64 = 0;
> +-    let mut x358: fiat_p384_u1 = 0;
> +     let (x357, x358) = fiat_p384_addcarryx_u64(x356, x344, x341);
> +-    let mut x359: u64 = 0;
> +-    let mut x360: fiat_p384_u1 = 0;
> +     let (x359, x360) = fiat_p384_addcarryx_u64(x358, x342, x339);
> +     let x361: u64 = ((x360 as u64) + x340);
> +-    let mut x362: u64 = 0;
> +-    let mut x363: fiat_p384_u1 = 0;
> +     let (x362, x363) = fiat_p384_addcarryx_u64(0x0, x323, x349);
> +-    let mut x364: u64 = 0;
> +-    let mut x365: fiat_p384_u1 = 0;
> +     let (x364, x365) = fiat_p384_addcarryx_u64(x363, x325, x351);
> +-    let mut x366: u64 = 0;
> +-    let mut x367: fiat_p384_u1 = 0;
> +     let (x366, x367) = fiat_p384_addcarryx_u64(x365, x327, x353);
> +-    let mut x368: u64 = 0;
> +-    let mut x369: fiat_p384_u1 = 0;
> +     let (x368, x369) = fiat_p384_addcarryx_u64(x367, x329, x355);
> +-    let mut x370: u64 = 0;
> +-    let mut x371: fiat_p384_u1 = 0;
> +     let (x370, x371) = fiat_p384_addcarryx_u64(x369, x331, x357);
> +-    let mut x372: u64 = 0;
> +-    let mut x373: fiat_p384_u1 = 0;
> +     let (x372, x373) = fiat_p384_addcarryx_u64(x371, x333, x359);
> +-    let mut x374: u64 = 0;
> +-    let mut x375: fiat_p384_u1 = 0;
> +     let (x374, x375) = fiat_p384_addcarryx_u64(x373, x335, x361);
> +     let x376: u64 = ((x375 as u64) + (x336 as u64));
> +-    let mut x377: u64 = 0;
> +-    let mut x378: u64 = 0;
> +     let (x377, x378) = fiat_p384_mulx_u64(x5, (arg1[5]));
> +-    let mut x379: u64 = 0;
> +-    let mut x380: u64 = 0;
> +     let (x379, x380) = fiat_p384_mulx_u64(x5, (arg1[4]));
> +-    let mut x381: u64 = 0;
> +-    let mut x382: u64 = 0;
> +     let (x381, x382) = fiat_p384_mulx_u64(x5, (arg1[3]));
> +-    let mut x383: u64 = 0;
> +-    let mut x384: u64 = 0;
> +     let (x383, x384) = fiat_p384_mulx_u64(x5, (arg1[2]));
> +-    let mut x385: u64 = 0;
> +-    let mut x386: u64 = 0;
> +     let (x385, x386) = fiat_p384_mulx_u64(x5, (arg1[1]));
> +-    let mut x387: u64 = 0;
> +-    let mut x388: u64 = 0;
> +     let (x387, x388) = fiat_p384_mulx_u64(x5, (arg1[0]));
> +-    let mut x389: u64 = 0;
> +-    let mut x390: fiat_p384_u1 = 0;
> +     let (x389, x390) = fiat_p384_addcarryx_u64(0x0, x388, x385);
> +-    let mut x391: u64 = 0;
> +-    let mut x392: fiat_p384_u1 = 0;
> +     let (x391, x392) = fiat_p384_addcarryx_u64(x390, x386, x383);
> +-    let mut x393: u64 = 0;
> +-    let mut x394: fiat_p384_u1 = 0;
> +     let (x393, x394) = fiat_p384_addcarryx_u64(x392, x384, x381);
> +-    let mut x395: u64 = 0;
> +-    let mut x396: fiat_p384_u1 = 0;
> +     let (x395, x396) = fiat_p384_addcarryx_u64(x394, x382, x379);
> +-    let mut x397: u64 = 0;
> +-    let mut x398: fiat_p384_u1 = 0;
> +     let (x397, x398) = fiat_p384_addcarryx_u64(x396, x380, x377);
> +     let x399: u64 = ((x398 as u64) + x378);
> +-    let mut x400: u64 = 0;
> +-    let mut x401: fiat_p384_u1 = 0;
> +     let (x400, x401) = fiat_p384_addcarryx_u64(0x0, x364, x387);
> +-    let mut x402: u64 = 0;
> +-    let mut x403: fiat_p384_u1 = 0;
> +     let (x402, x403) = fiat_p384_addcarryx_u64(x401, x366, x389);
> +-    let mut x404: u64 = 0;
> +-    let mut x405: fiat_p384_u1 = 0;
> +     let (x404, x405) = fiat_p384_addcarryx_u64(x403, x368, x391);
> +-    let mut x406: u64 = 0;
> +-    let mut x407: fiat_p384_u1 = 0;
> +     let (x406, x407) = fiat_p384_addcarryx_u64(x405, x370, x393);
> +-    let mut x408: u64 = 0;
> +-    let mut x409: fiat_p384_u1 = 0;
> +     let (x408, x409) = fiat_p384_addcarryx_u64(x407, x372, x395);
> +-    let mut x410: u64 = 0;
> +-    let mut x411: fiat_p384_u1 = 0;
> +     let (x410, x411) = fiat_p384_addcarryx_u64(x409, x374, x397);
> +-    let mut x412: u64 = 0;
> +-    let mut x413: fiat_p384_u1 = 0;
> +     let (x412, x413) = fiat_p384_addcarryx_u64(x411, x376, x399);
> +-    let mut x414: u64 = 0;
> +-    let mut x415: u64 = 0;
> +     let (x414, x415) = fiat_p384_mulx_u64(x400, 0x100000001);
> +-    let mut x416: u64 = 0;
> +-    let mut x417: u64 = 0;
> +     let (x416, x417) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x418: u64 = 0;
> +-    let mut x419: u64 = 0;
> +     let (x418, x419) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x420: u64 = 0;
> +-    let mut x421: u64 = 0;
> +     let (x420, x421) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x422: u64 = 0;
> +-    let mut x423: u64 = 0;
> +     let (x422, x423) = fiat_p384_mulx_u64(x414, 0xfffffffffffffffe);
> +-    let mut x424: u64 = 0;
> +-    let mut x425: u64 = 0;
> +     let (x424, x425) = fiat_p384_mulx_u64(x414, 0xffffffff00000000);
> +-    let mut x426: u64 = 0;
> +-    let mut x427: u64 = 0;
> +     let (x426, x427) = fiat_p384_mulx_u64(x414, 0xffffffff);
> +-    let mut x428: u64 = 0;
> +-    let mut x429: fiat_p384_u1 = 0;
> +     let (x428, x429) = fiat_p384_addcarryx_u64(0x0, x427, x424);
> +-    let mut x430: u64 = 0;
> +-    let mut x431: fiat_p384_u1 = 0;
> +     let (x430, x431) = fiat_p384_addcarryx_u64(x429, x425, x422);
> +-    let mut x432: u64 = 0;
> +-    let mut x433: fiat_p384_u1 = 0;
> +     let (x432, x433) = fiat_p384_addcarryx_u64(x431, x423, x420);
> +-    let mut x434: u64 = 0;
> +-    let mut x435: fiat_p384_u1 = 0;
> +     let (x434, x435) = fiat_p384_addcarryx_u64(x433, x421, x418);
> +-    let mut x436: u64 = 0;
> +-    let mut x437: fiat_p384_u1 = 0;
> +     let (x436, x437) = fiat_p384_addcarryx_u64(x435, x419, x416);
> +     let x438: u64 = ((x437 as u64) + x417);
> +-    let mut x439: u64 = 0;
> +-    let mut x440: fiat_p384_u1 = 0;
> +     let (x439, x440) = fiat_p384_addcarryx_u64(0x0, x400, x426);
> +-    let mut x441: u64 = 0;
> +-    let mut x442: fiat_p384_u1 = 0;
> +     let (x441, x442) = fiat_p384_addcarryx_u64(x440, x402, x428);
> +-    let mut x443: u64 = 0;
> +-    let mut x444: fiat_p384_u1 = 0;
> +     let (x443, x444) = fiat_p384_addcarryx_u64(x442, x404, x430);
> +-    let mut x445: u64 = 0;
> +-    let mut x446: fiat_p384_u1 = 0;
> +     let (x445, x446) = fiat_p384_addcarryx_u64(x444, x406, x432);
> +-    let mut x447: u64 = 0;
> +-    let mut x448: fiat_p384_u1 = 0;
> +     let (x447, x448) = fiat_p384_addcarryx_u64(x446, x408, x434);
> +-    let mut x449: u64 = 0;
> +-    let mut x450: fiat_p384_u1 = 0;
> +     let (x449, x450) = fiat_p384_addcarryx_u64(x448, x410, x436);
> +-    let mut x451: u64 = 0;
> +-    let mut x452: fiat_p384_u1 = 0;
> +     let (x451, x452) = fiat_p384_addcarryx_u64(x450, x412, x438);
> +     let x453: u64 = ((x452 as u64) + (x413 as u64));
> +-    let mut x454: u64 = 0;
> +-    let mut x455: fiat_p384_u1 = 0;
> +     let (x454, x455) = fiat_p384_subborrowx_u64(0x0, x441, 0xffffffff);
> +-    let mut x456: u64 = 0;
> +-    let mut x457: fiat_p384_u1 = 0;
> +     let (x456, x457) = fiat_p384_subborrowx_u64(x455, x443, 0xffffffff00000000);
> +-    let mut x458: u64 = 0;
> +-    let mut x459: fiat_p384_u1 = 0;
> +     let (x458, x459) = fiat_p384_subborrowx_u64(x457, x445, 0xfffffffffffffffe);
> +-    let mut x460: u64 = 0;
> +-    let mut x461: fiat_p384_u1 = 0;
> +     let (x460, x461) = fiat_p384_subborrowx_u64(x459, x447, 0xffffffffffffffff);
> +-    let mut x462: u64 = 0;
> +-    let mut x463: fiat_p384_u1 = 0;
> +     let (x462, x463) = fiat_p384_subborrowx_u64(x461, x449, 0xffffffffffffffff);
> +-    let mut x464: u64 = 0;
> +-    let mut x465: fiat_p384_u1 = 0;
> +     let (x464, x465) = fiat_p384_subborrowx_u64(x463, x451, 0xffffffffffffffff);
> +-    let mut x466: u64 = 0;
> +-    let mut x467: fiat_p384_u1 = 0;
> +     let (x466, x467) = fiat_p384_subborrowx_u64(x465, x453, (0x0 as u64));
> +-    let mut x468: u64 = 0;
> +     let (x468) = fiat_p384_cmovznz_u64(x467, x454, x441);
> +-    let mut x469: u64 = 0;
> +     let (x469) = fiat_p384_cmovznz_u64(x467, x456, x443);
> +-    let mut x470: u64 = 0;
> +     let (x470) = fiat_p384_cmovznz_u64(x467, x458, x445);
> +-    let mut x471: u64 = 0;
> +     let (x471) = fiat_p384_cmovznz_u64(x467, x460, x447);
> +-    let mut x472: u64 = 0;
> +     let (x472) = fiat_p384_cmovznz_u64(x467, x462, x449);
> +-    let mut x473: u64 = 0;
> +     let (x473) = fiat_p384_cmovznz_u64(x467, x464, x451);
> +     out1[0] = x468;
> +     out1[1] = x469;
> +@@ -1594,56 +694,24 @@ pub const fn fiat_p384_add(
> +     arg2: &fiat_p384_montgomery_domain_field_element,
> + ) -> fiat_p384_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u64 = 0;
> +-    let mut x4: fiat_p384_u1 = 0;
> +     let (x3, x4) = fiat_p384_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u64 = 0;
> +-    let mut x6: fiat_p384_u1 = 0;
> +     let (x5, x6) = fiat_p384_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u64 = 0;
> +-    let mut x8: fiat_p384_u1 = 0;
> +     let (x7, x8) = fiat_p384_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: fiat_p384_u1 = 0;
> +     let (x9, x10) = fiat_p384_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: fiat_p384_u1 = 0;
> +     let (x11, x12) = fiat_p384_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u64 = 0;
> +-    let mut x14: fiat_p384_u1 = 0;
> +     let (x13, x14) = fiat_p384_subborrowx_u64(0x0, x1, 0xffffffff);
> +-    let mut x15: u64 = 0;
> +-    let mut x16: fiat_p384_u1 = 0;
> +     let (x15, x16) = fiat_p384_subborrowx_u64(x14, x3, 0xffffffff00000000);
> +-    let mut x17: u64 = 0;
> +-    let mut x18: fiat_p384_u1 = 0;
> +     let (x17, x18) = fiat_p384_subborrowx_u64(x16, x5, 0xfffffffffffffffe);
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_subborrowx_u64(x18, x7, 0xffffffffffffffff);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_subborrowx_u64(x20, x9, 0xffffffffffffffff);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_u1 = 0;
> +     let (x23, x24) = fiat_p384_subborrowx_u64(x22, x11, 0xffffffffffffffff);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_u1 = 0;
> +     let (x25, x26) = fiat_p384_subborrowx_u64(x24, (x12 as u64), (0x0 as u64));
> +-    let mut x27: u64 = 0;
> +     let (x27) = fiat_p384_cmovznz_u64(x26, x13, x1);
> +-    let mut x28: u64 = 0;
> +     let (x28) = fiat_p384_cmovznz_u64(x26, x15, x3);
> +-    let mut x29: u64 = 0;
> +     let (x29) = fiat_p384_cmovznz_u64(x26, x17, x5);
> +-    let mut x30: u64 = 0;
> +     let (x30) = fiat_p384_cmovznz_u64(x26, x19, x7);
> +-    let mut x31: u64 = 0;
> +     let (x31) = fiat_p384_cmovznz_u64(x26, x21, x9);
> +-    let mut x32: u64 = 0;
> +     let (x32) = fiat_p384_cmovznz_u64(x26, x23, x11);
> +     out1[0] = x27;
> +     out1[1] = x28;
> +@@ -1668,43 +736,18 @@ pub const fn fiat_p384_sub(
> +     arg2: &fiat_p384_montgomery_domain_field_element,
> + ) -> fiat_p384_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u64 = 0;
> +-    let mut x4: fiat_p384_u1 = 0;
> +     let (x3, x4) = fiat_p384_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u64 = 0;
> +-    let mut x6: fiat_p384_u1 = 0;
> +     let (x5, x6) = fiat_p384_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u64 = 0;
> +-    let mut x8: fiat_p384_u1 = 0;
> +     let (x7, x8) = fiat_p384_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: fiat_p384_u1 = 0;
> +     let (x9, x10) = fiat_p384_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: fiat_p384_u1 = 0;
> +     let (x11, x12) = fiat_p384_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u64 = 0;
> +     let (x13) = fiat_p384_cmovznz_u64(x12, (0x0 as u64), 0xffffffffffffffff);
> +-    let mut x14: u64 = 0;
> +-    let mut x15: fiat_p384_u1 = 0;
> +     let (x14, x15) = fiat_p384_addcarryx_u64(0x0, x1, (x13 & 0xffffffff));
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_u1 = 0;
> +     let (x16, x17) = fiat_p384_addcarryx_u64(x15, x3, (x13 & 0xffffffff00000000));
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_u1 = 0;
> +     let (x18, x19) = fiat_p384_addcarryx_u64(x17, x5, (x13 & 0xfffffffffffffffe));
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_u1 = 0;
> +     let (x20, x21) = fiat_p384_addcarryx_u64(x19, x7, x13);
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_u1 = 0;
> +     let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x13);
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_u1 = 0;
> +     let (x24, x25) = fiat_p384_addcarryx_u64(x23, x11, x13);
> +     out1[0] = x14;
> +     out1[1] = x16;
> +@@ -1727,43 +770,18 @@ pub const fn fiat_p384_opp(
> +     arg1: &fiat_p384_montgomery_domain_field_element,
> + ) -> fiat_p384_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_subborrowx_u64(0x0, (0x0 as u64), (arg1[0]));
> +-    let mut x3: u64 = 0;
> +-    let mut x4: fiat_p384_u1 = 0;
> +     let (x3, x4) = fiat_p384_subborrowx_u64(x2, (0x0 as u64), (arg1[1]));
> +-    let mut x5: u64 = 0;
> +-    let mut x6: fiat_p384_u1 = 0;
> +     let (x5, x6) = fiat_p384_subborrowx_u64(x4, (0x0 as u64), (arg1[2]));
> +-    let mut x7: u64 = 0;
> +-    let mut x8: fiat_p384_u1 = 0;
> +     let (x7, x8) = fiat_p384_subborrowx_u64(x6, (0x0 as u64), (arg1[3]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: fiat_p384_u1 = 0;
> +     let (x9, x10) = fiat_p384_subborrowx_u64(x8, (0x0 as u64), (arg1[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: fiat_p384_u1 = 0;
> +     let (x11, x12) = fiat_p384_subborrowx_u64(x10, (0x0 as u64), (arg1[5]));
> +-    let mut x13: u64 = 0;
> +     let (x13) = fiat_p384_cmovznz_u64(x12, (0x0 as u64), 0xffffffffffffffff);
> +-    let mut x14: u64 = 0;
> +-    let mut x15: fiat_p384_u1 = 0;
> +     let (x14, x15) = fiat_p384_addcarryx_u64(0x0, x1, (x13 & 0xffffffff));
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_u1 = 0;
> +     let (x16, x17) = fiat_p384_addcarryx_u64(x15, x3, (x13 & 0xffffffff00000000));
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_u1 = 0;
> +     let (x18, x19) = fiat_p384_addcarryx_u64(x17, x5, (x13 & 0xfffffffffffffffe));
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_u1 = 0;
> +     let (x20, x21) = fiat_p384_addcarryx_u64(x19, x7, x13);
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_u1 = 0;
> +     let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x13);
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_u1 = 0;
> +     let (x24, x25) = fiat_p384_addcarryx_u64(x23, x11, x13);
> +     out1[0] = x14;
> +     out1[1] = x16;
> +@@ -1787,484 +805,176 @@ pub const fn fiat_p384_from_montgomery(
> + ) -> fiat_p384_non_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_non_montgomery_domain_field_element = [0; 6];
> +     let x1: u64 = (arg1[0]);
> +-    let mut x2: u64 = 0;
> +-    let mut x3: u64 = 0;
> +     let (x2, x3) = fiat_p384_mulx_u64(x1, 0x100000001);
> +-    let mut x4: u64 = 0;
> +-    let mut x5: u64 = 0;
> +     let (x4, x5) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
> +-    let mut x6: u64 = 0;
> +-    let mut x7: u64 = 0;
> +     let (x6, x7) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
> +-    let mut x8: u64 = 0;
> +-    let mut x9: u64 = 0;
> +     let (x8, x9) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
> +-    let mut x10: u64 = 0;
> +-    let mut x11: u64 = 0;
> +     let (x10, x11) = fiat_p384_mulx_u64(x2, 0xfffffffffffffffe);
> +-    let mut x12: u64 = 0;
> +-    let mut x13: u64 = 0;
> +     let (x12, x13) = fiat_p384_mulx_u64(x2, 0xffffffff00000000);
> +-    let mut x14: u64 = 0;
> +-    let mut x15: u64 = 0;
> +     let (x14, x15) = fiat_p384_mulx_u64(x2, 0xffffffff);
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_u1 = 0;
> +     let (x16, x17) = fiat_p384_addcarryx_u64(0x0, x15, x12);
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_u1 = 0;
> +     let (x18, x19) = fiat_p384_addcarryx_u64(x17, x13, x10);
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_u1 = 0;
> +     let (x20, x21) = fiat_p384_addcarryx_u64(x19, x11, x8);
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_u1 = 0;
> +     let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x6);
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_u1 = 0;
> +     let (x24, x25) = fiat_p384_addcarryx_u64(x23, x7, x4);
> +-    let mut x26: u64 = 0;
> +-    let mut x27: fiat_p384_u1 = 0;
> +     let (x26, x27) = fiat_p384_addcarryx_u64(0x0, x1, x14);
> +-    let mut x28: u64 = 0;
> +-    let mut x29: fiat_p384_u1 = 0;
> +     let (x28, x29) = fiat_p384_addcarryx_u64(x27, (0x0 as u64), x16);
> +-    let mut x30: u64 = 0;
> +-    let mut x31: fiat_p384_u1 = 0;
> +     let (x30, x31) = fiat_p384_addcarryx_u64(x29, (0x0 as u64), x18);
> +-    let mut x32: u64 = 0;
> +-    let mut x33: fiat_p384_u1 = 0;
> +     let (x32, x33) = fiat_p384_addcarryx_u64(x31, (0x0 as u64), x20);
> +-    let mut x34: u64 = 0;
> +-    let mut x35: fiat_p384_u1 = 0;
> +     let (x34, x35) = fiat_p384_addcarryx_u64(x33, (0x0 as u64), x22);
> +-    let mut x36: u64 = 0;
> +-    let mut x37: fiat_p384_u1 = 0;
> +     let (x36, x37) = fiat_p384_addcarryx_u64(x35, (0x0 as u64), x24);
> +-    let mut x38: u64 = 0;
> +-    let mut x39: fiat_p384_u1 = 0;
> +     let (x38, x39) = fiat_p384_addcarryx_u64(x37, (0x0 as u64), ((x25 as u64) + x5));
> +-    let mut x40: u64 = 0;
> +-    let mut x41: fiat_p384_u1 = 0;
> +     let (x40, x41) = fiat_p384_addcarryx_u64(0x0, x28, (arg1[1]));
> +-    let mut x42: u64 = 0;
> +-    let mut x43: fiat_p384_u1 = 0;
> +     let (x42, x43) = fiat_p384_addcarryx_u64(x41, x30, (0x0 as u64));
> +-    let mut x44: u64 = 0;
> +-    let mut x45: fiat_p384_u1 = 0;
> +     let (x44, x45) = fiat_p384_addcarryx_u64(x43, x32, (0x0 as u64));
> +-    let mut x46: u64 = 0;
> +-    let mut x47: fiat_p384_u1 = 0;
> +     let (x46, x47) = fiat_p384_addcarryx_u64(x45, x34, (0x0 as u64));
> +-    let mut x48: u64 = 0;
> +-    let mut x49: fiat_p384_u1 = 0;
> +     let (x48, x49) = fiat_p384_addcarryx_u64(x47, x36, (0x0 as u64));
> +-    let mut x50: u64 = 0;
> +-    let mut x51: fiat_p384_u1 = 0;
> +     let (x50, x51) = fiat_p384_addcarryx_u64(x49, x38, (0x0 as u64));
> +-    let mut x52: u64 = 0;
> +-    let mut x53: u64 = 0;
> +     let (x52, x53) = fiat_p384_mulx_u64(x40, 0x100000001);
> +-    let mut x54: u64 = 0;
> +-    let mut x55: u64 = 0;
> +     let (x54, x55) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
> +-    let mut x56: u64 = 0;
> +-    let mut x57: u64 = 0;
> +     let (x56, x57) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
> +-    let mut x58: u64 = 0;
> +-    let mut x59: u64 = 0;
> +     let (x58, x59) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
> +-    let mut x60: u64 = 0;
> +-    let mut x61: u64 = 0;
> +     let (x60, x61) = fiat_p384_mulx_u64(x52, 0xfffffffffffffffe);
> +-    let mut x62: u64 = 0;
> +-    let mut x63: u64 = 0;
> +     let (x62, x63) = fiat_p384_mulx_u64(x52, 0xffffffff00000000);
> +-    let mut x64: u64 = 0;
> +-    let mut x65: u64 = 0;
> +     let (x64, x65) = fiat_p384_mulx_u64(x52, 0xffffffff);
> +-    let mut x66: u64 = 0;
> +-    let mut x67: fiat_p384_u1 = 0;
> +     let (x66, x67) = fiat_p384_addcarryx_u64(0x0, x65, x62);
> +-    let mut x68: u64 = 0;
> +-    let mut x69: fiat_p384_u1 = 0;
> +     let (x68, x69) = fiat_p384_addcarryx_u64(x67, x63, x60);
> +-    let mut x70: u64 = 0;
> +-    let mut x71: fiat_p384_u1 = 0;
> +     let (x70, x71) = fiat_p384_addcarryx_u64(x69, x61, x58);
> +-    let mut x72: u64 = 0;
> +-    let mut x73: fiat_p384_u1 = 0;
> +     let (x72, x73) = fiat_p384_addcarryx_u64(x71, x59, x56);
> +-    let mut x74: u64 = 0;
> +-    let mut x75: fiat_p384_u1 = 0;
> +     let (x74, x75) = fiat_p384_addcarryx_u64(x73, x57, x54);
> +-    let mut x76: u64 = 0;
> +-    let mut x77: fiat_p384_u1 = 0;
> +     let (x76, x77) = fiat_p384_addcarryx_u64(0x0, x40, x64);
> +-    let mut x78: u64 = 0;
> +-    let mut x79: fiat_p384_u1 = 0;
> +     let (x78, x79) = fiat_p384_addcarryx_u64(x77, x42, x66);
> +-    let mut x80: u64 = 0;
> +-    let mut x81: fiat_p384_u1 = 0;
> +     let (x80, x81) = fiat_p384_addcarryx_u64(x79, x44, x68);
> +-    let mut x82: u64 = 0;
> +-    let mut x83: fiat_p384_u1 = 0;
> +     let (x82, x83) = fiat_p384_addcarryx_u64(x81, x46, x70);
> +-    let mut x84: u64 = 0;
> +-    let mut x85: fiat_p384_u1 = 0;
> +     let (x84, x85) = fiat_p384_addcarryx_u64(x83, x48, x72);
> +-    let mut x86: u64 = 0;
> +-    let mut x87: fiat_p384_u1 = 0;
> +     let (x86, x87) = fiat_p384_addcarryx_u64(x85, x50, x74);
> +-    let mut x88: u64 = 0;
> +-    let mut x89: fiat_p384_u1 = 0;
> +     let (x88, x89) =
> +         fiat_p384_addcarryx_u64(x87, ((x51 as u64) + (x39 as u64)), ((x75 as u64) + x55));
> +-    let mut x90: u64 = 0;
> +-    let mut x91: fiat_p384_u1 = 0;
> +     let (x90, x91) = fiat_p384_addcarryx_u64(0x0, x78, (arg1[2]));
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u64(x91, x80, (0x0 as u64));
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x82, (0x0 as u64));
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_u1 = 0;
> +     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x84, (0x0 as u64));
> +-    let mut x98: u64 = 0;
> +-    let mut x99: fiat_p384_u1 = 0;
> +     let (x98, x99) = fiat_p384_addcarryx_u64(x97, x86, (0x0 as u64));
> +-    let mut x100: u64 = 0;
> +-    let mut x101: fiat_p384_u1 = 0;
> +     let (x100, x101) = fiat_p384_addcarryx_u64(x99, x88, (0x0 as u64));
> +-    let mut x102: u64 = 0;
> +-    let mut x103: u64 = 0;
> +     let (x102, x103) = fiat_p384_mulx_u64(x90, 0x100000001);
> +-    let mut x104: u64 = 0;
> +-    let mut x105: u64 = 0;
> +     let (x104, x105) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
> +-    let mut x106: u64 = 0;
> +-    let mut x107: u64 = 0;
> +     let (x106, x107) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
> +-    let mut x108: u64 = 0;
> +-    let mut x109: u64 = 0;
> +     let (x108, x109) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
> +-    let mut x110: u64 = 0;
> +-    let mut x111: u64 = 0;
> +     let (x110, x111) = fiat_p384_mulx_u64(x102, 0xfffffffffffffffe);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: u64 = 0;
> +     let (x112, x113) = fiat_p384_mulx_u64(x102, 0xffffffff00000000);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: u64 = 0;
> +     let (x114, x115) = fiat_p384_mulx_u64(x102, 0xffffffff);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: fiat_p384_u1 = 0;
> +     let (x116, x117) = fiat_p384_addcarryx_u64(0x0, x115, x112);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: fiat_p384_u1 = 0;
> +     let (x118, x119) = fiat_p384_addcarryx_u64(x117, x113, x110);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_u1 = 0;
> +     let (x120, x121) = fiat_p384_addcarryx_u64(x119, x111, x108);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_u1 = 0;
> +     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x109, x106);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_u1 = 0;
> +     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x107, x104);
> +-    let mut x126: u64 = 0;
> +-    let mut x127: fiat_p384_u1 = 0;
> +     let (x126, x127) = fiat_p384_addcarryx_u64(0x0, x90, x114);
> +-    let mut x128: u64 = 0;
> +-    let mut x129: fiat_p384_u1 = 0;
> +     let (x128, x129) = fiat_p384_addcarryx_u64(x127, x92, x116);
> +-    let mut x130: u64 = 0;
> +-    let mut x131: fiat_p384_u1 = 0;
> +     let (x130, x131) = fiat_p384_addcarryx_u64(x129, x94, x118);
> +-    let mut x132: u64 = 0;
> +-    let mut x133: fiat_p384_u1 = 0;
> +     let (x132, x133) = fiat_p384_addcarryx_u64(x131, x96, x120);
> +-    let mut x134: u64 = 0;
> +-    let mut x135: fiat_p384_u1 = 0;
> +     let (x134, x135) = fiat_p384_addcarryx_u64(x133, x98, x122);
> +-    let mut x136: u64 = 0;
> +-    let mut x137: fiat_p384_u1 = 0;
> +     let (x136, x137) = fiat_p384_addcarryx_u64(x135, x100, x124);
> +-    let mut x138: u64 = 0;
> +-    let mut x139: fiat_p384_u1 = 0;
> +     let (x138, x139) =
> +         fiat_p384_addcarryx_u64(x137, ((x101 as u64) + (x89 as u64)), ((x125 as u64) + x105));
> +-    let mut x140: u64 = 0;
> +-    let mut x141: fiat_p384_u1 = 0;
> +     let (x140, x141) = fiat_p384_addcarryx_u64(0x0, x128, (arg1[3]));
> +-    let mut x142: u64 = 0;
> +-    let mut x143: fiat_p384_u1 = 0;
> +     let (x142, x143) = fiat_p384_addcarryx_u64(x141, x130, (0x0 as u64));
> +-    let mut x144: u64 = 0;
> +-    let mut x145: fiat_p384_u1 = 0;
> +     let (x144, x145) = fiat_p384_addcarryx_u64(x143, x132, (0x0 as u64));
> +-    let mut x146: u64 = 0;
> +-    let mut x147: fiat_p384_u1 = 0;
> +     let (x146, x147) = fiat_p384_addcarryx_u64(x145, x134, (0x0 as u64));
> +-    let mut x148: u64 = 0;
> +-    let mut x149: fiat_p384_u1 = 0;
> +     let (x148, x149) = fiat_p384_addcarryx_u64(x147, x136, (0x0 as u64));
> +-    let mut x150: u64 = 0;
> +-    let mut x151: fiat_p384_u1 = 0;
> +     let (x150, x151) = fiat_p384_addcarryx_u64(x149, x138, (0x0 as u64));
> +-    let mut x152: u64 = 0;
> +-    let mut x153: u64 = 0;
> +     let (x152, x153) = fiat_p384_mulx_u64(x140, 0x100000001);
> +-    let mut x154: u64 = 0;
> +-    let mut x155: u64 = 0;
> +     let (x154, x155) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
> +-    let mut x156: u64 = 0;
> +-    let mut x157: u64 = 0;
> +     let (x156, x157) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
> +-    let mut x158: u64 = 0;
> +-    let mut x159: u64 = 0;
> +     let (x158, x159) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
> +-    let mut x160: u64 = 0;
> +-    let mut x161: u64 = 0;
> +     let (x160, x161) = fiat_p384_mulx_u64(x152, 0xfffffffffffffffe);
> +-    let mut x162: u64 = 0;
> +-    let mut x163: u64 = 0;
> +     let (x162, x163) = fiat_p384_mulx_u64(x152, 0xffffffff00000000);
> +-    let mut x164: u64 = 0;
> +-    let mut x165: u64 = 0;
> +     let (x164, x165) = fiat_p384_mulx_u64(x152, 0xffffffff);
> +-    let mut x166: u64 = 0;
> +-    let mut x167: fiat_p384_u1 = 0;
> +     let (x166, x167) = fiat_p384_addcarryx_u64(0x0, x165, x162);
> +-    let mut x168: u64 = 0;
> +-    let mut x169: fiat_p384_u1 = 0;
> +     let (x168, x169) = fiat_p384_addcarryx_u64(x167, x163, x160);
> +-    let mut x170: u64 = 0;
> +-    let mut x171: fiat_p384_u1 = 0;
> +     let (x170, x171) = fiat_p384_addcarryx_u64(x169, x161, x158);
> +-    let mut x172: u64 = 0;
> +-    let mut x173: fiat_p384_u1 = 0;
> +     let (x172, x173) = fiat_p384_addcarryx_u64(x171, x159, x156);
> +-    let mut x174: u64 = 0;
> +-    let mut x175: fiat_p384_u1 = 0;
> +     let (x174, x175) = fiat_p384_addcarryx_u64(x173, x157, x154);
> +-    let mut x176: u64 = 0;
> +-    let mut x177: fiat_p384_u1 = 0;
> +     let (x176, x177) = fiat_p384_addcarryx_u64(0x0, x140, x164);
> +-    let mut x178: u64 = 0;
> +-    let mut x179: fiat_p384_u1 = 0;
> +     let (x178, x179) = fiat_p384_addcarryx_u64(x177, x142, x166);
> +-    let mut x180: u64 = 0;
> +-    let mut x181: fiat_p384_u1 = 0;
> +     let (x180, x181) = fiat_p384_addcarryx_u64(x179, x144, x168);
> +-    let mut x182: u64 = 0;
> +-    let mut x183: fiat_p384_u1 = 0;
> +     let (x182, x183) = fiat_p384_addcarryx_u64(x181, x146, x170);
> +-    let mut x184: u64 = 0;
> +-    let mut x185: fiat_p384_u1 = 0;
> +     let (x184, x185) = fiat_p384_addcarryx_u64(x183, x148, x172);
> +-    let mut x186: u64 = 0;
> +-    let mut x187: fiat_p384_u1 = 0;
> +     let (x186, x187) = fiat_p384_addcarryx_u64(x185, x150, x174);
> +-    let mut x188: u64 = 0;
> +-    let mut x189: fiat_p384_u1 = 0;
> +     let (x188, x189) = fiat_p384_addcarryx_u64(
> +         x187,
> +         ((x151 as u64) + (x139 as u64)),
> +         ((x175 as u64) + x155),
> +     );
> +-    let mut x190: u64 = 0;
> +-    let mut x191: fiat_p384_u1 = 0;
> +     let (x190, x191) = fiat_p384_addcarryx_u64(0x0, x178, (arg1[4]));
> +-    let mut x192: u64 = 0;
> +-    let mut x193: fiat_p384_u1 = 0;
> +     let (x192, x193) = fiat_p384_addcarryx_u64(x191, x180, (0x0 as u64));
> +-    let mut x194: u64 = 0;
> +-    let mut x195: fiat_p384_u1 = 0;
> +     let (x194, x195) = fiat_p384_addcarryx_u64(x193, x182, (0x0 as u64));
> +-    let mut x196: u64 = 0;
> +-    let mut x197: fiat_p384_u1 = 0;
> +     let (x196, x197) = fiat_p384_addcarryx_u64(x195, x184, (0x0 as u64));
> +-    let mut x198: u64 = 0;
> +-    let mut x199: fiat_p384_u1 = 0;
> +     let (x198, x199) = fiat_p384_addcarryx_u64(x197, x186, (0x0 as u64));
> +-    let mut x200: u64 = 0;
> +-    let mut x201: fiat_p384_u1 = 0;
> +     let (x200, x201) = fiat_p384_addcarryx_u64(x199, x188, (0x0 as u64));
> +-    let mut x202: u64 = 0;
> +-    let mut x203: u64 = 0;
> +     let (x202, x203) = fiat_p384_mulx_u64(x190, 0x100000001);
> +-    let mut x204: u64 = 0;
> +-    let mut x205: u64 = 0;
> +     let (x204, x205) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
> +-    let mut x206: u64 = 0;
> +-    let mut x207: u64 = 0;
> +     let (x206, x207) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
> +-    let mut x208: u64 = 0;
> +-    let mut x209: u64 = 0;
> +     let (x208, x209) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
> +-    let mut x210: u64 = 0;
> +-    let mut x211: u64 = 0;
> +     let (x210, x211) = fiat_p384_mulx_u64(x202, 0xfffffffffffffffe);
> +-    let mut x212: u64 = 0;
> +-    let mut x213: u64 = 0;
> +     let (x212, x213) = fiat_p384_mulx_u64(x202, 0xffffffff00000000);
> +-    let mut x214: u64 = 0;
> +-    let mut x215: u64 = 0;
> +     let (x214, x215) = fiat_p384_mulx_u64(x202, 0xffffffff);
> +-    let mut x216: u64 = 0;
> +-    let mut x217: fiat_p384_u1 = 0;
> +     let (x216, x217) = fiat_p384_addcarryx_u64(0x0, x215, x212);
> +-    let mut x218: u64 = 0;
> +-    let mut x219: fiat_p384_u1 = 0;
> +     let (x218, x219) = fiat_p384_addcarryx_u64(x217, x213, x210);
> +-    let mut x220: u64 = 0;
> +-    let mut x221: fiat_p384_u1 = 0;
> +     let (x220, x221) = fiat_p384_addcarryx_u64(x219, x211, x208);
> +-    let mut x222: u64 = 0;
> +-    let mut x223: fiat_p384_u1 = 0;
> +     let (x222, x223) = fiat_p384_addcarryx_u64(x221, x209, x206);
> +-    let mut x224: u64 = 0;
> +-    let mut x225: fiat_p384_u1 = 0;
> +     let (x224, x225) = fiat_p384_addcarryx_u64(x223, x207, x204);
> +-    let mut x226: u64 = 0;
> +-    let mut x227: fiat_p384_u1 = 0;
> +     let (x226, x227) = fiat_p384_addcarryx_u64(0x0, x190, x214);
> +-    let mut x228: u64 = 0;
> +-    let mut x229: fiat_p384_u1 = 0;
> +     let (x228, x229) = fiat_p384_addcarryx_u64(x227, x192, x216);
> +-    let mut x230: u64 = 0;
> +-    let mut x231: fiat_p384_u1 = 0;
> +     let (x230, x231) = fiat_p384_addcarryx_u64(x229, x194, x218);
> +-    let mut x232: u64 = 0;
> +-    let mut x233: fiat_p384_u1 = 0;
> +     let (x232, x233) = fiat_p384_addcarryx_u64(x231, x196, x220);
> +-    let mut x234: u64 = 0;
> +-    let mut x235: fiat_p384_u1 = 0;
> +     let (x234, x235) = fiat_p384_addcarryx_u64(x233, x198, x222);
> +-    let mut x236: u64 = 0;
> +-    let mut x237: fiat_p384_u1 = 0;
> +     let (x236, x237) = fiat_p384_addcarryx_u64(x235, x200, x224);
> +-    let mut x238: u64 = 0;
> +-    let mut x239: fiat_p384_u1 = 0;
> +     let (x238, x239) = fiat_p384_addcarryx_u64(
> +         x237,
> +         ((x201 as u64) + (x189 as u64)),
> +         ((x225 as u64) + x205),
> +     );
> +-    let mut x240: u64 = 0;
> +-    let mut x241: fiat_p384_u1 = 0;
> +     let (x240, x241) = fiat_p384_addcarryx_u64(0x0, x228, (arg1[5]));
> +-    let mut x242: u64 = 0;
> +-    let mut x243: fiat_p384_u1 = 0;
> +     let (x242, x243) = fiat_p384_addcarryx_u64(x241, x230, (0x0 as u64));
> +-    let mut x244: u64 = 0;
> +-    let mut x245: fiat_p384_u1 = 0;
> +     let (x244, x245) = fiat_p384_addcarryx_u64(x243, x232, (0x0 as u64));
> +-    let mut x246: u64 = 0;
> +-    let mut x247: fiat_p384_u1 = 0;
> +     let (x246, x247) = fiat_p384_addcarryx_u64(x245, x234, (0x0 as u64));
> +-    let mut x248: u64 = 0;
> +-    let mut x249: fiat_p384_u1 = 0;
> +     let (x248, x249) = fiat_p384_addcarryx_u64(x247, x236, (0x0 as u64));
> +-    let mut x250: u64 = 0;
> +-    let mut x251: fiat_p384_u1 = 0;
> +     let (x250, x251) = fiat_p384_addcarryx_u64(x249, x238, (0x0 as u64));
> +-    let mut x252: u64 = 0;
> +-    let mut x253: u64 = 0;
> +     let (x252, x253) = fiat_p384_mulx_u64(x240, 0x100000001);
> +-    let mut x254: u64 = 0;
> +-    let mut x255: u64 = 0;
> +     let (x254, x255) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
> +-    let mut x256: u64 = 0;
> +-    let mut x257: u64 = 0;
> +     let (x256, x257) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
> +-    let mut x258: u64 = 0;
> +-    let mut x259: u64 = 0;
> +     let (x258, x259) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
> +-    let mut x260: u64 = 0;
> +-    let mut x261: u64 = 0;
> +     let (x260, x261) = fiat_p384_mulx_u64(x252, 0xfffffffffffffffe);
> +-    let mut x262: u64 = 0;
> +-    let mut x263: u64 = 0;
> +     let (x262, x263) = fiat_p384_mulx_u64(x252, 0xffffffff00000000);
> +-    let mut x264: u64 = 0;
> +-    let mut x265: u64 = 0;
> +     let (x264, x265) = fiat_p384_mulx_u64(x252, 0xffffffff);
> +-    let mut x266: u64 = 0;
> +-    let mut x267: fiat_p384_u1 = 0;
> +     let (x266, x267) = fiat_p384_addcarryx_u64(0x0, x265, x262);
> +-    let mut x268: u64 = 0;
> +-    let mut x269: fiat_p384_u1 = 0;
> +     let (x268, x269) = fiat_p384_addcarryx_u64(x267, x263, x260);
> +-    let mut x270: u64 = 0;
> +-    let mut x271: fiat_p384_u1 = 0;
> +     let (x270, x271) = fiat_p384_addcarryx_u64(x269, x261, x258);
> +-    let mut x272: u64 = 0;
> +-    let mut x273: fiat_p384_u1 = 0;
> +     let (x272, x273) = fiat_p384_addcarryx_u64(x271, x259, x256);
> +-    let mut x274: u64 = 0;
> +-    let mut x275: fiat_p384_u1 = 0;
> +     let (x274, x275) = fiat_p384_addcarryx_u64(x273, x257, x254);
> +-    let mut x276: u64 = 0;
> +-    let mut x277: fiat_p384_u1 = 0;
> +     let (x276, x277) = fiat_p384_addcarryx_u64(0x0, x240, x264);
> +-    let mut x278: u64 = 0;
> +-    let mut x279: fiat_p384_u1 = 0;
> +     let (x278, x279) = fiat_p384_addcarryx_u64(x277, x242, x266);
> +-    let mut x280: u64 = 0;
> +-    let mut x281: fiat_p384_u1 = 0;
> +     let (x280, x281) = fiat_p384_addcarryx_u64(x279, x244, x268);
> +-    let mut x282: u64 = 0;
> +-    let mut x283: fiat_p384_u1 = 0;
> +     let (x282, x283) = fiat_p384_addcarryx_u64(x281, x246, x270);
> +-    let mut x284: u64 = 0;
> +-    let mut x285: fiat_p384_u1 = 0;
> +     let (x284, x285) = fiat_p384_addcarryx_u64(x283, x248, x272);
> +-    let mut x286: u64 = 0;
> +-    let mut x287: fiat_p384_u1 = 0;
> +     let (x286, x287) = fiat_p384_addcarryx_u64(x285, x250, x274);
> +-    let mut x288: u64 = 0;
> +-    let mut x289: fiat_p384_u1 = 0;
> +     let (x288, x289) = fiat_p384_addcarryx_u64(
> +         x287,
> +         ((x251 as u64) + (x239 as u64)),
> +         ((x275 as u64) + x255),
> +     );
> +-    let mut x290: u64 = 0;
> +-    let mut x291: fiat_p384_u1 = 0;
> +     let (x290, x291) = fiat_p384_subborrowx_u64(0x0, x278, 0xffffffff);
> +-    let mut x292: u64 = 0;
> +-    let mut x293: fiat_p384_u1 = 0;
> +     let (x292, x293) = fiat_p384_subborrowx_u64(x291, x280, 0xffffffff00000000);
> +-    let mut x294: u64 = 0;
> +-    let mut x295: fiat_p384_u1 = 0;
> +     let (x294, x295) = fiat_p384_subborrowx_u64(x293, x282, 0xfffffffffffffffe);
> +-    let mut x296: u64 = 0;
> +-    let mut x297: fiat_p384_u1 = 0;
> +     let (x296, x297) = fiat_p384_subborrowx_u64(x295, x284, 0xffffffffffffffff);
> +-    let mut x298: u64 = 0;
> +-    let mut x299: fiat_p384_u1 = 0;
> +     let (x298, x299) = fiat_p384_subborrowx_u64(x297, x286, 0xffffffffffffffff);
> +-    let mut x300: u64 = 0;
> +-    let mut x301: fiat_p384_u1 = 0;
> +     let (x300, x301) = fiat_p384_subborrowx_u64(x299, x288, 0xffffffffffffffff);
> +-    let mut x302: u64 = 0;
> +-    let mut x303: fiat_p384_u1 = 0;
> +     let (x302, x303) = fiat_p384_subborrowx_u64(x301, (x289 as u64), (0x0 as u64));
> +-    let mut x304: u64 = 0;
> +     let (x304) = fiat_p384_cmovznz_u64(x303, x290, x278);
> +-    let mut x305: u64 = 0;
> +     let (x305) = fiat_p384_cmovznz_u64(x303, x292, x280);
> +-    let mut x306: u64 = 0;
> +     let (x306) = fiat_p384_cmovznz_u64(x303, x294, x282);
> +-    let mut x307: u64 = 0;
> +     let (x307) = fiat_p384_cmovznz_u64(x303, x296, x284);
> +-    let mut x308: u64 = 0;
> +     let (x308) = fiat_p384_cmovznz_u64(x303, x298, x286);
> +-    let mut x309: u64 = 0;
> +     let (x309) = fiat_p384_cmovznz_u64(x303, x300, x288);
> +     out1[0] = x304;
> +     out1[1] = x305;
> +@@ -2293,631 +1003,227 @@ pub const fn fiat_p384_to_montgomery(
> +     let x4: u64 = (arg1[4]);
> +     let x5: u64 = (arg1[5]);
> +     let x6: u64 = (arg1[0]);
> +-    let mut x7: u64 = 0;
> +-    let mut x8: u64 = 0;
> +     let (x7, x8) = fiat_p384_mulx_u64(x6, 0x200000000);
> +-    let mut x9: u64 = 0;
> +-    let mut x10: u64 = 0;
> +     let (x9, x10) = fiat_p384_mulx_u64(x6, 0xfffffffe00000000);
> +-    let mut x11: u64 = 0;
> +-    let mut x12: u64 = 0;
> +     let (x11, x12) = fiat_p384_mulx_u64(x6, 0x200000000);
> +-    let mut x13: u64 = 0;
> +-    let mut x14: u64 = 0;
> +     let (x13, x14) = fiat_p384_mulx_u64(x6, 0xfffffffe00000001);
> +-    let mut x15: u64 = 0;
> +-    let mut x16: fiat_p384_u1 = 0;
> +     let (x15, x16) = fiat_p384_addcarryx_u64(0x0, x14, x11);
> +-    let mut x17: u64 = 0;
> +-    let mut x18: fiat_p384_u1 = 0;
> +     let (x17, x18) = fiat_p384_addcarryx_u64(x16, x12, x9);
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_u1 = 0;
> +     let (x19, x20) = fiat_p384_addcarryx_u64(x18, x10, x7);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_u1 = 0;
> +     let (x21, x22) = fiat_p384_addcarryx_u64(x20, x8, x6);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: u64 = 0;
> +     let (x23, x24) = fiat_p384_mulx_u64(x13, 0x100000001);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: u64 = 0;
> +     let (x25, x26) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
> +-    let mut x27: u64 = 0;
> +-    let mut x28: u64 = 0;
> +     let (x27, x28) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
> +-    let mut x29: u64 = 0;
> +-    let mut x30: u64 = 0;
> +     let (x29, x30) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
> +-    let mut x31: u64 = 0;
> +-    let mut x32: u64 = 0;
> +     let (x31, x32) = fiat_p384_mulx_u64(x23, 0xfffffffffffffffe);
> +-    let mut x33: u64 = 0;
> +-    let mut x34: u64 = 0;
> +     let (x33, x34) = fiat_p384_mulx_u64(x23, 0xffffffff00000000);
> +-    let mut x35: u64 = 0;
> +-    let mut x36: u64 = 0;
> +     let (x35, x36) = fiat_p384_mulx_u64(x23, 0xffffffff);
> +-    let mut x37: u64 = 0;
> +-    let mut x38: fiat_p384_u1 = 0;
> +     let (x37, x38) = fiat_p384_addcarryx_u64(0x0, x36, x33);
> +-    let mut x39: u64 = 0;
> +-    let mut x40: fiat_p384_u1 = 0;
> +     let (x39, x40) = fiat_p384_addcarryx_u64(x38, x34, x31);
> +-    let mut x41: u64 = 0;
> +-    let mut x42: fiat_p384_u1 = 0;
> +     let (x41, x42) = fiat_p384_addcarryx_u64(x40, x32, x29);
> +-    let mut x43: u64 = 0;
> +-    let mut x44: fiat_p384_u1 = 0;
> +     let (x43, x44) = fiat_p384_addcarryx_u64(x42, x30, x27);
> +-    let mut x45: u64 = 0;
> +-    let mut x46: fiat_p384_u1 = 0;
> +     let (x45, x46) = fiat_p384_addcarryx_u64(x44, x28, x25);
> +-    let mut x47: u64 = 0;
> +-    let mut x48: fiat_p384_u1 = 0;
> +     let (x47, x48) = fiat_p384_addcarryx_u64(0x0, x13, x35);
> +-    let mut x49: u64 = 0;
> +-    let mut x50: fiat_p384_u1 = 0;
> +     let (x49, x50) = fiat_p384_addcarryx_u64(x48, x15, x37);
> +-    let mut x51: u64 = 0;
> +-    let mut x52: fiat_p384_u1 = 0;
> +     let (x51, x52) = fiat_p384_addcarryx_u64(x50, x17, x39);
> +-    let mut x53: u64 = 0;
> +-    let mut x54: fiat_p384_u1 = 0;
> +     let (x53, x54) = fiat_p384_addcarryx_u64(x52, x19, x41);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_addcarryx_u64(x54, x21, x43);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_addcarryx_u64(x56, (x22 as u64), x45);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_u1 = 0;
> +     let (x59, x60) = fiat_p384_addcarryx_u64(x58, (0x0 as u64), ((x46 as u64) + x26));
> +-    let mut x61: u64 = 0;
> +-    let mut x62: u64 = 0;
> +     let (x61, x62) = fiat_p384_mulx_u64(x1, 0x200000000);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: u64 = 0;
> +     let (x63, x64) = fiat_p384_mulx_u64(x1, 0xfffffffe00000000);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: u64 = 0;
> +     let (x65, x66) = fiat_p384_mulx_u64(x1, 0x200000000);
> +-    let mut x67: u64 = 0;
> +-    let mut x68: u64 = 0;
> +     let (x67, x68) = fiat_p384_mulx_u64(x1, 0xfffffffe00000001);
> +-    let mut x69: u64 = 0;
> +-    let mut x70: fiat_p384_u1 = 0;
> +     let (x69, x70) = fiat_p384_addcarryx_u64(0x0, x68, x65);
> +-    let mut x71: u64 = 0;
> +-    let mut x72: fiat_p384_u1 = 0;
> +     let (x71, x72) = fiat_p384_addcarryx_u64(x70, x66, x63);
> +-    let mut x73: u64 = 0;
> +-    let mut x74: fiat_p384_u1 = 0;
> +     let (x73, x74) = fiat_p384_addcarryx_u64(x72, x64, x61);
> +-    let mut x75: u64 = 0;
> +-    let mut x76: fiat_p384_u1 = 0;
> +     let (x75, x76) = fiat_p384_addcarryx_u64(x74, x62, x1);
> +-    let mut x77: u64 = 0;
> +-    let mut x78: fiat_p384_u1 = 0;
> +     let (x77, x78) = fiat_p384_addcarryx_u64(0x0, x49, x67);
> +-    let mut x79: u64 = 0;
> +-    let mut x80: fiat_p384_u1 = 0;
> +     let (x79, x80) = fiat_p384_addcarryx_u64(x78, x51, x69);
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_u1 = 0;
> +     let (x81, x82) = fiat_p384_addcarryx_u64(x80, x53, x71);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_u1 = 0;
> +     let (x83, x84) = fiat_p384_addcarryx_u64(x82, x55, x73);
> +-    let mut x85: u64 = 0;
> +-    let mut x86: fiat_p384_u1 = 0;
> +     let (x85, x86) = fiat_p384_addcarryx_u64(x84, x57, x75);
> +-    let mut x87: u64 = 0;
> +-    let mut x88: fiat_p384_u1 = 0;
> +     let (x87, x88) = fiat_p384_addcarryx_u64(x86, x59, (x76 as u64));
> +-    let mut x89: u64 = 0;
> +-    let mut x90: u64 = 0;
> +     let (x89, x90) = fiat_p384_mulx_u64(x77, 0x100000001);
> +-    let mut x91: u64 = 0;
> +-    let mut x92: u64 = 0;
> +     let (x91, x92) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
> +-    let mut x93: u64 = 0;
> +-    let mut x94: u64 = 0;
> +     let (x93, x94) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
> +-    let mut x95: u64 = 0;
> +-    let mut x96: u64 = 0;
> +     let (x95, x96) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
> +-    let mut x97: u64 = 0;
> +-    let mut x98: u64 = 0;
> +     let (x97, x98) = fiat_p384_mulx_u64(x89, 0xfffffffffffffffe);
> +-    let mut x99: u64 = 0;
> +-    let mut x100: u64 = 0;
> +     let (x99, x100) = fiat_p384_mulx_u64(x89, 0xffffffff00000000);
> +-    let mut x101: u64 = 0;
> +-    let mut x102: u64 = 0;
> +     let (x101, x102) = fiat_p384_mulx_u64(x89, 0xffffffff);
> +-    let mut x103: u64 = 0;
> +-    let mut x104: fiat_p384_u1 = 0;
> +     let (x103, x104) = fiat_p384_addcarryx_u64(0x0, x102, x99);
> +-    let mut x105: u64 = 0;
> +-    let mut x106: fiat_p384_u1 = 0;
> +     let (x105, x106) = fiat_p384_addcarryx_u64(x104, x100, x97);
> +-    let mut x107: u64 = 0;
> +-    let mut x108: fiat_p384_u1 = 0;
> +     let (x107, x108) = fiat_p384_addcarryx_u64(x106, x98, x95);
> +-    let mut x109: u64 = 0;
> +-    let mut x110: fiat_p384_u1 = 0;
> +     let (x109, x110) = fiat_p384_addcarryx_u64(x108, x96, x93);
> +-    let mut x111: u64 = 0;
> +-    let mut x112: fiat_p384_u1 = 0;
> +     let (x111, x112) = fiat_p384_addcarryx_u64(x110, x94, x91);
> +-    let mut x113: u64 = 0;
> +-    let mut x114: fiat_p384_u1 = 0;
> +     let (x113, x114) = fiat_p384_addcarryx_u64(0x0, x77, x101);
> +-    let mut x115: u64 = 0;
> +-    let mut x116: fiat_p384_u1 = 0;
> +     let (x115, x116) = fiat_p384_addcarryx_u64(x114, x79, x103);
> +-    let mut x117: u64 = 0;
> +-    let mut x118: fiat_p384_u1 = 0;
> +     let (x117, x118) = fiat_p384_addcarryx_u64(x116, x81, x105);
> +-    let mut x119: u64 = 0;
> +-    let mut x120: fiat_p384_u1 = 0;
> +     let (x119, x120) = fiat_p384_addcarryx_u64(x118, x83, x107);
> +-    let mut x121: u64 = 0;
> +-    let mut x122: fiat_p384_u1 = 0;
> +     let (x121, x122) = fiat_p384_addcarryx_u64(x120, x85, x109);
> +-    let mut x123: u64 = 0;
> +-    let mut x124: fiat_p384_u1 = 0;
> +     let (x123, x124) = fiat_p384_addcarryx_u64(x122, x87, x111);
> +-    let mut x125: u64 = 0;
> +-    let mut x126: fiat_p384_u1 = 0;
> +     let (x125, x126) =
> +         fiat_p384_addcarryx_u64(x124, ((x88 as u64) + (x60 as u64)), ((x112 as u64) + x92));
> +-    let mut x127: u64 = 0;
> +-    let mut x128: u64 = 0;
> +     let (x127, x128) = fiat_p384_mulx_u64(x2, 0x200000000);
> +-    let mut x129: u64 = 0;
> +-    let mut x130: u64 = 0;
> +     let (x129, x130) = fiat_p384_mulx_u64(x2, 0xfffffffe00000000);
> +-    let mut x131: u64 = 0;
> +-    let mut x132: u64 = 0;
> +     let (x131, x132) = fiat_p384_mulx_u64(x2, 0x200000000);
> +-    let mut x133: u64 = 0;
> +-    let mut x134: u64 = 0;
> +     let (x133, x134) = fiat_p384_mulx_u64(x2, 0xfffffffe00000001);
> +-    let mut x135: u64 = 0;
> +-    let mut x136: fiat_p384_u1 = 0;
> +     let (x135, x136) = fiat_p384_addcarryx_u64(0x0, x134, x131);
> +-    let mut x137: u64 = 0;
> +-    let mut x138: fiat_p384_u1 = 0;
> +     let (x137, x138) = fiat_p384_addcarryx_u64(x136, x132, x129);
> +-    let mut x139: u64 = 0;
> +-    let mut x140: fiat_p384_u1 = 0;
> +     let (x139, x140) = fiat_p384_addcarryx_u64(x138, x130, x127);
> +-    let mut x141: u64 = 0;
> +-    let mut x142: fiat_p384_u1 = 0;
> +     let (x141, x142) = fiat_p384_addcarryx_u64(x140, x128, x2);
> +-    let mut x143: u64 = 0;
> +-    let mut x144: fiat_p384_u1 = 0;
> +     let (x143, x144) = fiat_p384_addcarryx_u64(0x0, x115, x133);
> +-    let mut x145: u64 = 0;
> +-    let mut x146: fiat_p384_u1 = 0;
> +     let (x145, x146) = fiat_p384_addcarryx_u64(x144, x117, x135);
> +-    let mut x147: u64 = 0;
> +-    let mut x148: fiat_p384_u1 = 0;
> +     let (x147, x148) = fiat_p384_addcarryx_u64(x146, x119, x137);
> +-    let mut x149: u64 = 0;
> +-    let mut x150: fiat_p384_u1 = 0;
> +     let (x149, x150) = fiat_p384_addcarryx_u64(x148, x121, x139);
> +-    let mut x151: u64 = 0;
> +-    let mut x152: fiat_p384_u1 = 0;
> +     let (x151, x152) = fiat_p384_addcarryx_u64(x150, x123, x141);
> +-    let mut x153: u64 = 0;
> +-    let mut x154: fiat_p384_u1 = 0;
> +     let (x153, x154) = fiat_p384_addcarryx_u64(x152, x125, (x142 as u64));
> +-    let mut x155: u64 = 0;
> +-    let mut x156: u64 = 0;
> +     let (x155, x156) = fiat_p384_mulx_u64(x143, 0x100000001);
> +-    let mut x157: u64 = 0;
> +-    let mut x158: u64 = 0;
> +     let (x157, x158) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
> +-    let mut x159: u64 = 0;
> +-    let mut x160: u64 = 0;
> +     let (x159, x160) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
> +-    let mut x161: u64 = 0;
> +-    let mut x162: u64 = 0;
> +     let (x161, x162) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
> +-    let mut x163: u64 = 0;
> +-    let mut x164: u64 = 0;
> +     let (x163, x164) = fiat_p384_mulx_u64(x155, 0xfffffffffffffffe);
> +-    let mut x165: u64 = 0;
> +-    let mut x166: u64 = 0;
> +     let (x165, x166) = fiat_p384_mulx_u64(x155, 0xffffffff00000000);
> +-    let mut x167: u64 = 0;
> +-    let mut x168: u64 = 0;
> +     let (x167, x168) = fiat_p384_mulx_u64(x155, 0xffffffff);
> +-    let mut x169: u64 = 0;
> +-    let mut x170: fiat_p384_u1 = 0;
> +     let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x168, x165);
> +-    let mut x171: u64 = 0;
> +-    let mut x172: fiat_p384_u1 = 0;
> +     let (x171, x172) = fiat_p384_addcarryx_u64(x170, x166, x163);
> +-    let mut x173: u64 = 0;
> +-    let mut x174: fiat_p384_u1 = 0;
> +     let (x173, x174) = fiat_p384_addcarryx_u64(x172, x164, x161);
> +-    let mut x175: u64 = 0;
> +-    let mut x176: fiat_p384_u1 = 0;
> +     let (x175, x176) = fiat_p384_addcarryx_u64(x174, x162, x159);
> +-    let mut x177: u64 = 0;
> +-    let mut x178: fiat_p384_u1 = 0;
> +     let (x177, x178) = fiat_p384_addcarryx_u64(x176, x160, x157);
> +-    let mut x179: u64 = 0;
> +-    let mut x180: fiat_p384_u1 = 0;
> +     let (x179, x180) = fiat_p384_addcarryx_u64(0x0, x143, x167);
> +-    let mut x181: u64 = 0;
> +-    let mut x182: fiat_p384_u1 = 0;
> +     let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x169);
> +-    let mut x183: u64 = 0;
> +-    let mut x184: fiat_p384_u1 = 0;
> +     let (x183, x184) = fiat_p384_addcarryx_u64(x182, x147, x171);
> +-    let mut x185: u64 = 0;
> +-    let mut x186: fiat_p384_u1 = 0;
> +     let (x185, x186) = fiat_p384_addcarryx_u64(x184, x149, x173);
> +-    let mut x187: u64 = 0;
> +-    let mut x188: fiat_p384_u1 = 0;
> +     let (x187, x188) = fiat_p384_addcarryx_u64(x186, x151, x175);
> +-    let mut x189: u64 = 0;
> +-    let mut x190: fiat_p384_u1 = 0;
> +     let (x189, x190) = fiat_p384_addcarryx_u64(x188, x153, x177);
> +-    let mut x191: u64 = 0;
> +-    let mut x192: fiat_p384_u1 = 0;
> +     let (x191, x192) = fiat_p384_addcarryx_u64(
> +         x190,
> +         ((x154 as u64) + (x126 as u64)),
> +         ((x178 as u64) + x158),
> +     );
> +-    let mut x193: u64 = 0;
> +-    let mut x194: u64 = 0;
> +     let (x193, x194) = fiat_p384_mulx_u64(x3, 0x200000000);
> +-    let mut x195: u64 = 0;
> +-    let mut x196: u64 = 0;
> +     let (x195, x196) = fiat_p384_mulx_u64(x3, 0xfffffffe00000000);
> +-    let mut x197: u64 = 0;
> +-    let mut x198: u64 = 0;
> +     let (x197, x198) = fiat_p384_mulx_u64(x3, 0x200000000);
> +-    let mut x199: u64 = 0;
> +-    let mut x200: u64 = 0;
> +     let (x199, x200) = fiat_p384_mulx_u64(x3, 0xfffffffe00000001);
> +-    let mut x201: u64 = 0;
> +-    let mut x202: fiat_p384_u1 = 0;
> +     let (x201, x202) = fiat_p384_addcarryx_u64(0x0, x200, x197);
> +-    let mut x203: u64 = 0;
> +-    let mut x204: fiat_p384_u1 = 0;
> +     let (x203, x204) = fiat_p384_addcarryx_u64(x202, x198, x195);
> +-    let mut x205: u64 = 0;
> +-    let mut x206: fiat_p384_u1 = 0;
> +     let (x205, x206) = fiat_p384_addcarryx_u64(x204, x196, x193);
> +-    let mut x207: u64 = 0;
> +-    let mut x208: fiat_p384_u1 = 0;
> +     let (x207, x208) = fiat_p384_addcarryx_u64(x206, x194, x3);
> +-    let mut x209: u64 = 0;
> +-    let mut x210: fiat_p384_u1 = 0;
> +     let (x209, x210) = fiat_p384_addcarryx_u64(0x0, x181, x199);
> +-    let mut x211: u64 = 0;
> +-    let mut x212: fiat_p384_u1 = 0;
> +     let (x211, x212) = fiat_p384_addcarryx_u64(x210, x183, x201);
> +-    let mut x213: u64 = 0;
> +-    let mut x214: fiat_p384_u1 = 0;
> +     let (x213, x214) = fiat_p384_addcarryx_u64(x212, x185, x203);
> +-    let mut x215: u64 = 0;
> +-    let mut x216: fiat_p384_u1 = 0;
> +     let (x215, x216) = fiat_p384_addcarryx_u64(x214, x187, x205);
> +-    let mut x217: u64 = 0;
> +-    let mut x218: fiat_p384_u1 = 0;
> +     let (x217, x218) = fiat_p384_addcarryx_u64(x216, x189, x207);
> +-    let mut x219: u64 = 0;
> +-    let mut x220: fiat_p384_u1 = 0;
> +     let (x219, x220) = fiat_p384_addcarryx_u64(x218, x191, (x208 as u64));
> +-    let mut x221: u64 = 0;
> +-    let mut x222: u64 = 0;
> +     let (x221, x222) = fiat_p384_mulx_u64(x209, 0x100000001);
> +-    let mut x223: u64 = 0;
> +-    let mut x224: u64 = 0;
> +     let (x223, x224) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
> +-    let mut x225: u64 = 0;
> +-    let mut x226: u64 = 0;
> +     let (x225, x226) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
> +-    let mut x227: u64 = 0;
> +-    let mut x228: u64 = 0;
> +     let (x227, x228) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
> +-    let mut x229: u64 = 0;
> +-    let mut x230: u64 = 0;
> +     let (x229, x230) = fiat_p384_mulx_u64(x221, 0xfffffffffffffffe);
> +-    let mut x231: u64 = 0;
> +-    let mut x232: u64 = 0;
> +     let (x231, x232) = fiat_p384_mulx_u64(x221, 0xffffffff00000000);
> +-    let mut x233: u64 = 0;
> +-    let mut x234: u64 = 0;
> +     let (x233, x234) = fiat_p384_mulx_u64(x221, 0xffffffff);
> +-    let mut x235: u64 = 0;
> +-    let mut x236: fiat_p384_u1 = 0;
> +     let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
> +-    let mut x237: u64 = 0;
> +-    let mut x238: fiat_p384_u1 = 0;
> +     let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
> +-    let mut x239: u64 = 0;
> +-    let mut x240: fiat_p384_u1 = 0;
> +     let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
> +-    let mut x241: u64 = 0;
> +-    let mut x242: fiat_p384_u1 = 0;
> +     let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
> +-    let mut x243: u64 = 0;
> +-    let mut x244: fiat_p384_u1 = 0;
> +     let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
> +-    let mut x245: u64 = 0;
> +-    let mut x246: fiat_p384_u1 = 0;
> +     let (x245, x246) = fiat_p384_addcarryx_u64(0x0, x209, x233);
> +-    let mut x247: u64 = 0;
> +-    let mut x248: fiat_p384_u1 = 0;
> +     let (x247, x248) = fiat_p384_addcarryx_u64(x246, x211, x235);
> +-    let mut x249: u64 = 0;
> +-    let mut x250: fiat_p384_u1 = 0;
> +     let (x249, x250) = fiat_p384_addcarryx_u64(x248, x213, x237);
> +-    let mut x251: u64 = 0;
> +-    let mut x252: fiat_p384_u1 = 0;
> +     let (x251, x252) = fiat_p384_addcarryx_u64(x250, x215, x239);
> +-    let mut x253: u64 = 0;
> +-    let mut x254: fiat_p384_u1 = 0;
> +     let (x253, x254) = fiat_p384_addcarryx_u64(x252, x217, x241);
> +-    let mut x255: u64 = 0;
> +-    let mut x256: fiat_p384_u1 = 0;
> +     let (x255, x256) = fiat_p384_addcarryx_u64(x254, x219, x243);
> +-    let mut x257: u64 = 0;
> +-    let mut x258: fiat_p384_u1 = 0;
> +     let (x257, x258) = fiat_p384_addcarryx_u64(
> +         x256,
> +         ((x220 as u64) + (x192 as u64)),
> +         ((x244 as u64) + x224),
> +     );
> +-    let mut x259: u64 = 0;
> +-    let mut x260: u64 = 0;
> +     let (x259, x260) = fiat_p384_mulx_u64(x4, 0x200000000);
> +-    let mut x261: u64 = 0;
> +-    let mut x262: u64 = 0;
> +     let (x261, x262) = fiat_p384_mulx_u64(x4, 0xfffffffe00000000);
> +-    let mut x263: u64 = 0;
> +-    let mut x264: u64 = 0;
> +     let (x263, x264) = fiat_p384_mulx_u64(x4, 0x200000000);
> +-    let mut x265: u64 = 0;
> +-    let mut x266: u64 = 0;
> +     let (x265, x266) = fiat_p384_mulx_u64(x4, 0xfffffffe00000001);
> +-    let mut x267: u64 = 0;
> +-    let mut x268: fiat_p384_u1 = 0;
> +     let (x267, x268) = fiat_p384_addcarryx_u64(0x0, x266, x263);
> +-    let mut x269: u64 = 0;
> +-    let mut x270: fiat_p384_u1 = 0;
> +     let (x269, x270) = fiat_p384_addcarryx_u64(x268, x264, x261);
> +-    let mut x271: u64 = 0;
> +-    let mut x272: fiat_p384_u1 = 0;
> +     let (x271, x272) = fiat_p384_addcarryx_u64(x270, x262, x259);
> +-    let mut x273: u64 = 0;
> +-    let mut x274: fiat_p384_u1 = 0;
> +     let (x273, x274) = fiat_p384_addcarryx_u64(x272, x260, x4);
> +-    let mut x275: u64 = 0;
> +-    let mut x276: fiat_p384_u1 = 0;
> +     let (x275, x276) = fiat_p384_addcarryx_u64(0x0, x247, x265);
> +-    let mut x277: u64 = 0;
> +-    let mut x278: fiat_p384_u1 = 0;
> +     let (x277, x278) = fiat_p384_addcarryx_u64(x276, x249, x267);
> +-    let mut x279: u64 = 0;
> +-    let mut x280: fiat_p384_u1 = 0;
> +     let (x279, x280) = fiat_p384_addcarryx_u64(x278, x251, x269);
> +-    let mut x281: u64 = 0;
> +-    let mut x282: fiat_p384_u1 = 0;
> +     let (x281, x282) = fiat_p384_addcarryx_u64(x280, x253, x271);
> +-    let mut x283: u64 = 0;
> +-    let mut x284: fiat_p384_u1 = 0;
> +     let (x283, x284) = fiat_p384_addcarryx_u64(x282, x255, x273);
> +-    let mut x285: u64 = 0;
> +-    let mut x286: fiat_p384_u1 = 0;
> +     let (x285, x286) = fiat_p384_addcarryx_u64(x284, x257, (x274 as u64));
> +-    let mut x287: u64 = 0;
> +-    let mut x288: u64 = 0;
> +     let (x287, x288) = fiat_p384_mulx_u64(x275, 0x100000001);
> +-    let mut x289: u64 = 0;
> +-    let mut x290: u64 = 0;
> +     let (x289, x290) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
> +-    let mut x291: u64 = 0;
> +-    let mut x292: u64 = 0;
> +     let (x291, x292) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
> +-    let mut x293: u64 = 0;
> +-    let mut x294: u64 = 0;
> +     let (x293, x294) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
> +-    let mut x295: u64 = 0;
> +-    let mut x296: u64 = 0;
> +     let (x295, x296) = fiat_p384_mulx_u64(x287, 0xfffffffffffffffe);
> +-    let mut x297: u64 = 0;
> +-    let mut x298: u64 = 0;
> +     let (x297, x298) = fiat_p384_mulx_u64(x287, 0xffffffff00000000);
> +-    let mut x299: u64 = 0;
> +-    let mut x300: u64 = 0;
> +     let (x299, x300) = fiat_p384_mulx_u64(x287, 0xffffffff);
> +-    let mut x301: u64 = 0;
> +-    let mut x302: fiat_p384_u1 = 0;
> +     let (x301, x302) = fiat_p384_addcarryx_u64(0x0, x300, x297);
> +-    let mut x303: u64 = 0;
> +-    let mut x304: fiat_p384_u1 = 0;
> +     let (x303, x304) = fiat_p384_addcarryx_u64(x302, x298, x295);
> +-    let mut x305: u64 = 0;
> +-    let mut x306: fiat_p384_u1 = 0;
> +     let (x305, x306) = fiat_p384_addcarryx_u64(x304, x296, x293);
> +-    let mut x307: u64 = 0;
> +-    let mut x308: fiat_p384_u1 = 0;
> +     let (x307, x308) = fiat_p384_addcarryx_u64(x306, x294, x291);
> +-    let mut x309: u64 = 0;
> +-    let mut x310: fiat_p384_u1 = 0;
> +     let (x309, x310) = fiat_p384_addcarryx_u64(x308, x292, x289);
> +-    let mut x311: u64 = 0;
> +-    let mut x312: fiat_p384_u1 = 0;
> +     let (x311, x312) = fiat_p384_addcarryx_u64(0x0, x275, x299);
> +-    let mut x313: u64 = 0;
> +-    let mut x314: fiat_p384_u1 = 0;
> +     let (x313, x314) = fiat_p384_addcarryx_u64(x312, x277, x301);
> +-    let mut x315: u64 = 0;
> +-    let mut x316: fiat_p384_u1 = 0;
> +     let (x315, x316) = fiat_p384_addcarryx_u64(x314, x279, x303);
> +-    let mut x317: u64 = 0;
> +-    let mut x318: fiat_p384_u1 = 0;
> +     let (x317, x318) = fiat_p384_addcarryx_u64(x316, x281, x305);
> +-    let mut x319: u64 = 0;
> +-    let mut x320: fiat_p384_u1 = 0;
> +     let (x319, x320) = fiat_p384_addcarryx_u64(x318, x283, x307);
> +-    let mut x321: u64 = 0;
> +-    let mut x322: fiat_p384_u1 = 0;
> +     let (x321, x322) = fiat_p384_addcarryx_u64(x320, x285, x309);
> +-    let mut x323: u64 = 0;
> +-    let mut x324: fiat_p384_u1 = 0;
> +     let (x323, x324) = fiat_p384_addcarryx_u64(
> +         x322,
> +         ((x286 as u64) + (x258 as u64)),
> +         ((x310 as u64) + x290),
> +     );
> +-    let mut x325: u64 = 0;
> +-    let mut x326: u64 = 0;
> +     let (x325, x326) = fiat_p384_mulx_u64(x5, 0x200000000);
> +-    let mut x327: u64 = 0;
> +-    let mut x328: u64 = 0;
> +     let (x327, x328) = fiat_p384_mulx_u64(x5, 0xfffffffe00000000);
> +-    let mut x329: u64 = 0;
> +-    let mut x330: u64 = 0;
> +     let (x329, x330) = fiat_p384_mulx_u64(x5, 0x200000000);
> +-    let mut x331: u64 = 0;
> +-    let mut x332: u64 = 0;
> +     let (x331, x332) = fiat_p384_mulx_u64(x5, 0xfffffffe00000001);
> +-    let mut x333: u64 = 0;
> +-    let mut x334: fiat_p384_u1 = 0;
> +     let (x333, x334) = fiat_p384_addcarryx_u64(0x0, x332, x329);
> +-    let mut x335: u64 = 0;
> +-    let mut x336: fiat_p384_u1 = 0;
> +     let (x335, x336) = fiat_p384_addcarryx_u64(x334, x330, x327);
> +-    let mut x337: u64 = 0;
> +-    let mut x338: fiat_p384_u1 = 0;
> +     let (x337, x338) = fiat_p384_addcarryx_u64(x336, x328, x325);
> +-    let mut x339: u64 = 0;
> +-    let mut x340: fiat_p384_u1 = 0;
> +     let (x339, x340) = fiat_p384_addcarryx_u64(x338, x326, x5);
> +-    let mut x341: u64 = 0;
> +-    let mut x342: fiat_p384_u1 = 0;
> +     let (x341, x342) = fiat_p384_addcarryx_u64(0x0, x313, x331);
> +-    let mut x343: u64 = 0;
> +-    let mut x344: fiat_p384_u1 = 0;
> +     let (x343, x344) = fiat_p384_addcarryx_u64(x342, x315, x333);
> +-    let mut x345: u64 = 0;
> +-    let mut x346: fiat_p384_u1 = 0;
> +     let (x345, x346) = fiat_p384_addcarryx_u64(x344, x317, x335);
> +-    let mut x347: u64 = 0;
> +-    let mut x348: fiat_p384_u1 = 0;
> +     let (x347, x348) = fiat_p384_addcarryx_u64(x346, x319, x337);
> +-    let mut x349: u64 = 0;
> +-    let mut x350: fiat_p384_u1 = 0;
> +     let (x349, x350) = fiat_p384_addcarryx_u64(x348, x321, x339);
> +-    let mut x351: u64 = 0;
> +-    let mut x352: fiat_p384_u1 = 0;
> +     let (x351, x352) = fiat_p384_addcarryx_u64(x350, x323, (x340 as u64));
> +-    let mut x353: u64 = 0;
> +-    let mut x354: u64 = 0;
> +     let (x353, x354) = fiat_p384_mulx_u64(x341, 0x100000001);
> +-    let mut x355: u64 = 0;
> +-    let mut x356: u64 = 0;
> +     let (x355, x356) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
> +-    let mut x357: u64 = 0;
> +-    let mut x358: u64 = 0;
> +     let (x357, x358) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
> +-    let mut x359: u64 = 0;
> +-    let mut x360: u64 = 0;
> +     let (x359, x360) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
> +-    let mut x361: u64 = 0;
> +-    let mut x362: u64 = 0;
> +     let (x361, x362) = fiat_p384_mulx_u64(x353, 0xfffffffffffffffe);
> +-    let mut x363: u64 = 0;
> +-    let mut x364: u64 = 0;
> +     let (x363, x364) = fiat_p384_mulx_u64(x353, 0xffffffff00000000);
> +-    let mut x365: u64 = 0;
> +-    let mut x366: u64 = 0;
> +     let (x365, x366) = fiat_p384_mulx_u64(x353, 0xffffffff);
> +-    let mut x367: u64 = 0;
> +-    let mut x368: fiat_p384_u1 = 0;
> +     let (x367, x368) = fiat_p384_addcarryx_u64(0x0, x366, x363);
> +-    let mut x369: u64 = 0;
> +-    let mut x370: fiat_p384_u1 = 0;
> +     let (x369, x370) = fiat_p384_addcarryx_u64(x368, x364, x361);
> +-    let mut x371: u64 = 0;
> +-    let mut x372: fiat_p384_u1 = 0;
> +     let (x371, x372) = fiat_p384_addcarryx_u64(x370, x362, x359);
> +-    let mut x373: u64 = 0;
> +-    let mut x374: fiat_p384_u1 = 0;
> +     let (x373, x374) = fiat_p384_addcarryx_u64(x372, x360, x357);
> +-    let mut x375: u64 = 0;
> +-    let mut x376: fiat_p384_u1 = 0;
> +     let (x375, x376) = fiat_p384_addcarryx_u64(x374, x358, x355);
> +-    let mut x377: u64 = 0;
> +-    let mut x378: fiat_p384_u1 = 0;
> +     let (x377, x378) = fiat_p384_addcarryx_u64(0x0, x341, x365);
> +-    let mut x379: u64 = 0;
> +-    let mut x380: fiat_p384_u1 = 0;
> +     let (x379, x380) = fiat_p384_addcarryx_u64(x378, x343, x367);
> +-    let mut x381: u64 = 0;
> +-    let mut x382: fiat_p384_u1 = 0;
> +     let (x381, x382) = fiat_p384_addcarryx_u64(x380, x345, x369);
> +-    let mut x383: u64 = 0;
> +-    let mut x384: fiat_p384_u1 = 0;
> +     let (x383, x384) = fiat_p384_addcarryx_u64(x382, x347, x371);
> +-    let mut x385: u64 = 0;
> +-    let mut x386: fiat_p384_u1 = 0;
> +     let (x385, x386) = fiat_p384_addcarryx_u64(x384, x349, x373);
> +-    let mut x387: u64 = 0;
> +-    let mut x388: fiat_p384_u1 = 0;
> +     let (x387, x388) = fiat_p384_addcarryx_u64(x386, x351, x375);
> +-    let mut x389: u64 = 0;
> +-    let mut x390: fiat_p384_u1 = 0;
> +     let (x389, x390) = fiat_p384_addcarryx_u64(
> +         x388,
> +         ((x352 as u64) + (x324 as u64)),
> +         ((x376 as u64) + x356),
> +     );
> +-    let mut x391: u64 = 0;
> +-    let mut x392: fiat_p384_u1 = 0;
> +     let (x391, x392) = fiat_p384_subborrowx_u64(0x0, x379, 0xffffffff);
> +-    let mut x393: u64 = 0;
> +-    let mut x394: fiat_p384_u1 = 0;
> +     let (x393, x394) = fiat_p384_subborrowx_u64(x392, x381, 0xffffffff00000000);
> +-    let mut x395: u64 = 0;
> +-    let mut x396: fiat_p384_u1 = 0;
> +     let (x395, x396) = fiat_p384_subborrowx_u64(x394, x383, 0xfffffffffffffffe);
> +-    let mut x397: u64 = 0;
> +-    let mut x398: fiat_p384_u1 = 0;
> +     let (x397, x398) = fiat_p384_subborrowx_u64(x396, x385, 0xffffffffffffffff);
> +-    let mut x399: u64 = 0;
> +-    let mut x400: fiat_p384_u1 = 0;
> +     let (x399, x400) = fiat_p384_subborrowx_u64(x398, x387, 0xffffffffffffffff);
> +-    let mut x401: u64 = 0;
> +-    let mut x402: fiat_p384_u1 = 0;
> +     let (x401, x402) = fiat_p384_subborrowx_u64(x400, x389, 0xffffffffffffffff);
> +-    let mut x403: u64 = 0;
> +-    let mut x404: fiat_p384_u1 = 0;
> +     let (x403, x404) = fiat_p384_subborrowx_u64(x402, (x390 as u64), (0x0 as u64));
> +-    let mut x405: u64 = 0;
> +     let (x405) = fiat_p384_cmovznz_u64(x404, x391, x379);
> +-    let mut x406: u64 = 0;
> +     let (x406) = fiat_p384_cmovznz_u64(x404, x393, x381);
> +-    let mut x407: u64 = 0;
> +     let (x407) = fiat_p384_cmovznz_u64(x404, x395, x383);
> +-    let mut x408: u64 = 0;
> +     let (x408) = fiat_p384_cmovznz_u64(x404, x397, x385);
> +-    let mut x409: u64 = 0;
> +     let (x409) = fiat_p384_cmovznz_u64(x404, x399, x387);
> +-    let mut x410: u64 = 0;
> +     let (x410) = fiat_p384_cmovznz_u64(x404, x401, x389);
> +     out1[0] = x405;
> +     out1[1] = x406;
> +@@ -2959,17 +1265,11 @@ pub const fn fiat_p384_nonzero(arg1: &[u64; 6]) -> u64 {
> + #[inline]
> + pub const fn fiat_p384_selectznz(arg1: fiat_p384_u1, arg2: &[u64; 6], arg3: &[u64; 6]) -> [u64; 6] {
> +     let mut out1: [u64; 6] = [0; 6];
> +-    let mut x1: u64 = 0;
> +     let (x1) = fiat_p384_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
> +-    let mut x2: u64 = 0;
> +     let (x2) = fiat_p384_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
> +-    let mut x3: u64 = 0;
> +     let (x3) = fiat_p384_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
> +-    let mut x4: u64 = 0;
> +     let (x4) = fiat_p384_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
> +-    let mut x5: u64 = 0;
> +     let (x5) = fiat_p384_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
> +-    let mut x6: u64 = 0;
> +     let (x6) = fiat_p384_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
> +     out1[0] = x1;
> +     out1[1] = x2;
> +@@ -3324,115 +1624,50 @@ pub const fn fiat_p384_divstep(
> +     let mut out3: [u64; 7] = [0; 7];
> +     let mut out4: [u64; 6] = [0; 6];
> +     let mut out5: [u64; 6] = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_u1 = 0;
> +     let (x1, x2) = fiat_p384_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
> +     let x3: fiat_p384_u1 =
> +         (((x1 >> 63) as fiat_p384_u1) & (((arg3[0]) & (0x1 as u64)) as fiat_p384_u1));
> +-    let mut x4: u64 = 0;
> +-    let mut x5: fiat_p384_u1 = 0;
> +     let (x4, x5) = fiat_p384_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
> +-    let mut x6: u64 = 0;
> +     let (x6) = fiat_p384_cmovznz_u64(x3, arg1, x4);
> +-    let mut x7: u64 = 0;
> +     let (x7) = fiat_p384_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
> +-    let mut x8: u64 = 0;
> +     let (x8) = fiat_p384_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
> +-    let mut x9: u64 = 0;
> +     let (x9) = fiat_p384_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
> +-    let mut x10: u64 = 0;
> +     let (x10) = fiat_p384_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
> +-    let mut x11: u64 = 0;
> +     let (x11) = fiat_p384_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
> +-    let mut x12: u64 = 0;
> +     let (x12) = fiat_p384_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
> +-    let mut x13: u64 = 0;
> +     let (x13) = fiat_p384_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
> +-    let mut x14: u64 = 0;
> +-    let mut x15: fiat_p384_u1 = 0;
> +     let (x14, x15) = fiat_p384_addcarryx_u64(0x0, (0x1 as u64), (!(arg2[0])));
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_u1 = 0;
> +     let (x16, x17) = fiat_p384_addcarryx_u64(x15, (0x0 as u64), (!(arg2[1])));
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_u1 = 0;
> +     let (x18, x19) = fiat_p384_addcarryx_u64(x17, (0x0 as u64), (!(arg2[2])));
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_u1 = 0;
> +     let (x20, x21) = fiat_p384_addcarryx_u64(x19, (0x0 as u64), (!(arg2[3])));
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_u1 = 0;
> +     let (x22, x23) = fiat_p384_addcarryx_u64(x21, (0x0 as u64), (!(arg2[4])));
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_u1 = 0;
> +     let (x24, x25) = fiat_p384_addcarryx_u64(x23, (0x0 as u64), (!(arg2[5])));
> +-    let mut x26: u64 = 0;
> +-    let mut x27: fiat_p384_u1 = 0;
> +     let (x26, x27) = fiat_p384_addcarryx_u64(x25, (0x0 as u64), (!(arg2[6])));
> +-    let mut x28: u64 = 0;
> +     let (x28) = fiat_p384_cmovznz_u64(x3, (arg3[0]), x14);
> +-    let mut x29: u64 = 0;
> +     let (x29) = fiat_p384_cmovznz_u64(x3, (arg3[1]), x16);
> +-    let mut x30: u64 = 0;
> +     let (x30) = fiat_p384_cmovznz_u64(x3, (arg3[2]), x18);
> +-    let mut x31: u64 = 0;
> +     let (x31) = fiat_p384_cmovznz_u64(x3, (arg3[3]), x20);
> +-    let mut x32: u64 = 0;
> +     let (x32) = fiat_p384_cmovznz_u64(x3, (arg3[4]), x22);
> +-    let mut x33: u64 = 0;
> +     let (x33) = fiat_p384_cmovznz_u64(x3, (arg3[5]), x24);
> +-    let mut x34: u64 = 0;
> +     let (x34) = fiat_p384_cmovznz_u64(x3, (arg3[6]), x26);
> +-    let mut x35: u64 = 0;
> +     let (x35) = fiat_p384_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
> +-    let mut x36: u64 = 0;
> +     let (x36) = fiat_p384_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
> +-    let mut x37: u64 = 0;
> +     let (x37) = fiat_p384_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
> +-    let mut x38: u64 = 0;
> +     let (x38) = fiat_p384_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
> +-    let mut x39: u64 = 0;
> +     let (x39) = fiat_p384_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
> +-    let mut x40: u64 = 0;
> +     let (x40) = fiat_p384_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
> +-    let mut x41: u64 = 0;
> +-    let mut x42: fiat_p384_u1 = 0;
> +     let (x41, x42) = fiat_p384_addcarryx_u64(0x0, x35, x35);
> +-    let mut x43: u64 = 0;
> +-    let mut x44: fiat_p384_u1 = 0;
> +     let (x43, x44) = fiat_p384_addcarryx_u64(x42, x36, x36);
> +-    let mut x45: u64 = 0;
> +-    let mut x46: fiat_p384_u1 = 0;
> +     let (x45, x46) = fiat_p384_addcarryx_u64(x44, x37, x37);
> +-    let mut x47: u64 = 0;
> +-    let mut x48: fiat_p384_u1 = 0;
> +     let (x47, x48) = fiat_p384_addcarryx_u64(x46, x38, x38);
> +-    let mut x49: u64 = 0;
> +-    let mut x50: fiat_p384_u1 = 0;
> +     let (x49, x50) = fiat_p384_addcarryx_u64(x48, x39, x39);
> +-    let mut x51: u64 = 0;
> +-    let mut x52: fiat_p384_u1 = 0;
> +     let (x51, x52) = fiat_p384_addcarryx_u64(x50, x40, x40);
> +-    let mut x53: u64 = 0;
> +-    let mut x54: fiat_p384_u1 = 0;
> +     let (x53, x54) = fiat_p384_subborrowx_u64(0x0, x41, 0xffffffff);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_u1 = 0;
> +     let (x55, x56) = fiat_p384_subborrowx_u64(x54, x43, 0xffffffff00000000);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_u1 = 0;
> +     let (x57, x58) = fiat_p384_subborrowx_u64(x56, x45, 0xfffffffffffffffe);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_u1 = 0;
> +     let (x59, x60) = fiat_p384_subborrowx_u64(x58, x47, 0xffffffffffffffff);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_u1 = 0;
> +     let (x61, x62) = fiat_p384_subborrowx_u64(x60, x49, 0xffffffffffffffff);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_u1 = 0;
> +     let (x63, x64) = fiat_p384_subborrowx_u64(x62, x51, 0xffffffffffffffff);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_u1 = 0;
> +     let (x65, x66) = fiat_p384_subborrowx_u64(x64, (x52 as u64), (0x0 as u64));
> +     let x67: u64 = (arg4[5]);
> +     let x68: u64 = (arg4[4]);
> +@@ -3440,145 +1675,59 @@ pub const fn fiat_p384_divstep(
> +     let x70: u64 = (arg4[2]);
> +     let x71: u64 = (arg4[1]);
> +     let x72: u64 = (arg4[0]);
> +-    let mut x73: u64 = 0;
> +-    let mut x74: fiat_p384_u1 = 0;
> +     let (x73, x74) = fiat_p384_subborrowx_u64(0x0, (0x0 as u64), x72);
> +-    let mut x75: u64 = 0;
> +-    let mut x76: fiat_p384_u1 = 0;
> +     let (x75, x76) = fiat_p384_subborrowx_u64(x74, (0x0 as u64), x71);
> +-    let mut x77: u64 = 0;
> +-    let mut x78: fiat_p384_u1 = 0;
> +     let (x77, x78) = fiat_p384_subborrowx_u64(x76, (0x0 as u64), x70);
> +-    let mut x79: u64 = 0;
> +-    let mut x80: fiat_p384_u1 = 0;
> +     let (x79, x80) = fiat_p384_subborrowx_u64(x78, (0x0 as u64), x69);
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_u1 = 0;
> +     let (x81, x82) = fiat_p384_subborrowx_u64(x80, (0x0 as u64), x68);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_u1 = 0;
> +     let (x83, x84) = fiat_p384_subborrowx_u64(x82, (0x0 as u64), x67);
> +-    let mut x85: u64 = 0;
> +     let (x85) = fiat_p384_cmovznz_u64(x84, (0x0 as u64), 0xffffffffffffffff);
> +-    let mut x86: u64 = 0;
> +-    let mut x87: fiat_p384_u1 = 0;
> +     let (x86, x87) = fiat_p384_addcarryx_u64(0x0, x73, (x85 & 0xffffffff));
> +-    let mut x88: u64 = 0;
> +-    let mut x89: fiat_p384_u1 = 0;
> +     let (x88, x89) = fiat_p384_addcarryx_u64(x87, x75, (x85 & 0xffffffff00000000));
> +-    let mut x90: u64 = 0;
> +-    let mut x91: fiat_p384_u1 = 0;
> +     let (x90, x91) = fiat_p384_addcarryx_u64(x89, x77, (x85 & 0xfffffffffffffffe));
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_u1 = 0;
> +     let (x92, x93) = fiat_p384_addcarryx_u64(x91, x79, x85);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_u1 = 0;
> +     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x81, x85);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_u1 = 0;
> +     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x83, x85);
> +-    let mut x98: u64 = 0;
> +     let (x98) = fiat_p384_cmovznz_u64(x3, (arg5[0]), x86);
> +-    let mut x99: u64 = 0;
> +     let (x99) = fiat_p384_cmovznz_u64(x3, (arg5[1]), x88);
> +-    let mut x100: u64 = 0;
> +     let (x100) = fiat_p384_cmovznz_u64(x3, (arg5[2]), x90);
> +-    let mut x101: u64 = 0;
> +     let (x101) = fiat_p384_cmovznz_u64(x3, (arg5[3]), x92);
> +-    let mut x102: u64 = 0;
> +     let (x102) = fiat_p384_cmovznz_u64(x3, (arg5[4]), x94);
> +-    let mut x103: u64 = 0;
> +     let (x103) = fiat_p384_cmovznz_u64(x3, (arg5[5]), x96);
> +     let x104: fiat_p384_u1 = ((x28 & (0x1 as u64)) as fiat_p384_u1);
> +-    let mut x105: u64 = 0;
> +     let (x105) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x7);
> +-    let mut x106: u64 = 0;
> +     let (x106) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x8);
> +-    let mut x107: u64 = 0;
> +     let (x107) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x9);
> +-    let mut x108: u64 = 0;
> +     let (x108) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x10);
> +-    let mut x109: u64 = 0;
> +     let (x109) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x11);
> +-    let mut x110: u64 = 0;
> +     let (x110) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x12);
> +-    let mut x111: u64 = 0;
> +     let (x111) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x13);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: fiat_p384_u1 = 0;
> +     let (x112, x113) = fiat_p384_addcarryx_u64(0x0, x28, x105);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: fiat_p384_u1 = 0;
> +     let (x114, x115) = fiat_p384_addcarryx_u64(x113, x29, x106);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: fiat_p384_u1 = 0;
> +     let (x116, x117) = fiat_p384_addcarryx_u64(x115, x30, x107);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: fiat_p384_u1 = 0;
> +     let (x118, x119) = fiat_p384_addcarryx_u64(x117, x31, x108);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_u1 = 0;
> +     let (x120, x121) = fiat_p384_addcarryx_u64(x119, x32, x109);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_u1 = 0;
> +     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x33, x110);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_u1 = 0;
> +     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x34, x111);
> +-    let mut x126: u64 = 0;
> +     let (x126) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x35);
> +-    let mut x127: u64 = 0;
> +     let (x127) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x36);
> +-    let mut x128: u64 = 0;
> +     let (x128) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x37);
> +-    let mut x129: u64 = 0;
> +     let (x129) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x38);
> +-    let mut x130: u64 = 0;
> +     let (x130) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x39);
> +-    let mut x131: u64 = 0;
> +     let (x131) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x40);
> +-    let mut x132: u64 = 0;
> +-    let mut x133: fiat_p384_u1 = 0;
> +     let (x132, x133) = fiat_p384_addcarryx_u64(0x0, x98, x126);
> +-    let mut x134: u64 = 0;
> +-    let mut x135: fiat_p384_u1 = 0;
> +     let (x134, x135) = fiat_p384_addcarryx_u64(x133, x99, x127);
> +-    let mut x136: u64 = 0;
> +-    let mut x137: fiat_p384_u1 = 0;
> +     let (x136, x137) = fiat_p384_addcarryx_u64(x135, x100, x128);
> +-    let mut x138: u64 = 0;
> +-    let mut x139: fiat_p384_u1 = 0;
> +     let (x138, x139) = fiat_p384_addcarryx_u64(x137, x101, x129);
> +-    let mut x140: u64 = 0;
> +-    let mut x141: fiat_p384_u1 = 0;
> +     let (x140, x141) = fiat_p384_addcarryx_u64(x139, x102, x130);
> +-    let mut x142: u64 = 0;
> +-    let mut x143: fiat_p384_u1 = 0;
> +     let (x142, x143) = fiat_p384_addcarryx_u64(x141, x103, x131);
> +-    let mut x144: u64 = 0;
> +-    let mut x145: fiat_p384_u1 = 0;
> +     let (x144, x145) = fiat_p384_subborrowx_u64(0x0, x132, 0xffffffff);
> +-    let mut x146: u64 = 0;
> +-    let mut x147: fiat_p384_u1 = 0;
> +     let (x146, x147) = fiat_p384_subborrowx_u64(x145, x134, 0xffffffff00000000);
> +-    let mut x148: u64 = 0;
> +-    let mut x149: fiat_p384_u1 = 0;
> +     let (x148, x149) = fiat_p384_subborrowx_u64(x147, x136, 0xfffffffffffffffe);
> +-    let mut x150: u64 = 0;
> +-    let mut x151: fiat_p384_u1 = 0;
> +     let (x150, x151) = fiat_p384_subborrowx_u64(x149, x138, 0xffffffffffffffff);
> +-    let mut x152: u64 = 0;
> +-    let mut x153: fiat_p384_u1 = 0;
> +     let (x152, x153) = fiat_p384_subborrowx_u64(x151, x140, 0xffffffffffffffff);
> +-    let mut x154: u64 = 0;
> +-    let mut x155: fiat_p384_u1 = 0;
> +     let (x154, x155) = fiat_p384_subborrowx_u64(x153, x142, 0xffffffffffffffff);
> +-    let mut x156: u64 = 0;
> +-    let mut x157: fiat_p384_u1 = 0;
> +     let (x156, x157) = fiat_p384_subborrowx_u64(x155, (x143 as u64), (0x0 as u64));
> +-    let mut x158: u64 = 0;
> +-    let mut x159: fiat_p384_u1 = 0;
> +     let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x6, (0x1 as u64));
> +     let x160: u64 = ((x112 >> 1) | ((x114 << 63) & 0xffffffffffffffff));
> +     let x161: u64 = ((x114 >> 1) | ((x116 << 63) & 0xffffffffffffffff));
> +@@ -3587,29 +1736,17 @@ pub const fn fiat_p384_divstep(
> +     let x164: u64 = ((x120 >> 1) | ((x122 << 63) & 0xffffffffffffffff));
> +     let x165: u64 = ((x122 >> 1) | ((x124 << 63) & 0xffffffffffffffff));
> +     let x166: u64 = ((x124 & 0x8000000000000000) | (x124 >> 1));
> +-    let mut x167: u64 = 0;
> +     let (x167) = fiat_p384_cmovznz_u64(x66, x53, x41);
> +-    let mut x168: u64 = 0;
> +     let (x168) = fiat_p384_cmovznz_u64(x66, x55, x43);
> +-    let mut x169: u64 = 0;
> +     let (x169) = fiat_p384_cmovznz_u64(x66, x57, x45);
> +-    let mut x170: u64 = 0;
> +     let (x170) = fiat_p384_cmovznz_u64(x66, x59, x47);
> +-    let mut x171: u64 = 0;
> +     let (x171) = fiat_p384_cmovznz_u64(x66, x61, x49);
> +-    let mut x172: u64 = 0;
> +     let (x172) = fiat_p384_cmovznz_u64(x66, x63, x51);
> +-    let mut x173: u64 = 0;
> +     let (x173) = fiat_p384_cmovznz_u64(x157, x144, x132);
> +-    let mut x174: u64 = 0;
> +     let (x174) = fiat_p384_cmovznz_u64(x157, x146, x134);
> +-    let mut x175: u64 = 0;
> +     let (x175) = fiat_p384_cmovznz_u64(x157, x148, x136);
> +-    let mut x176: u64 = 0;
> +     let (x176) = fiat_p384_cmovznz_u64(x157, x150, x138);
> +-    let mut x177: u64 = 0;
> +     let (x177) = fiat_p384_cmovznz_u64(x157, x152, x140);
> +-    let mut x178: u64 = 0;
> +     let (x178) = fiat_p384_cmovznz_u64(x157, x154, x142);
> +     out1 = x158;
> +     out2[0] = x7;
> +diff --git a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs
> +index dcf55aa..5959303 100644
> +--- a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs
> ++++ b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs
> +@@ -161,2692 +161,928 @@ pub const fn fiat_p384_scalar_mul(
> +     let x10: u32 = (arg1[10]);
> +     let x11: u32 = (arg1[11]);
> +     let x12: u32 = (arg1[0]);
> +-    let mut x13: u32 = 0;
> +-    let mut x14: u32 = 0;
> +     let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, (arg2[11]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: u32 = 0;
> +     let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, (arg2[10]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: u32 = 0;
> +     let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, (arg2[9]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: u32 = 0;
> +     let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, (arg2[8]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: u32 = 0;
> +     let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, (arg2[7]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: u32 = 0;
> +     let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, (arg2[6]));
> +-    let mut x25: u32 = 0;
> +-    let mut x26: u32 = 0;
> +     let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, (arg2[5]));
> +-    let mut x27: u32 = 0;
> +-    let mut x28: u32 = 0;
> +     let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, (arg2[4]));
> +-    let mut x29: u32 = 0;
> +-    let mut x30: u32 = 0;
> +     let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, (arg2[3]));
> +-    let mut x31: u32 = 0;
> +-    let mut x32: u32 = 0;
> +     let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, (arg2[2]));
> +-    let mut x33: u32 = 0;
> +-    let mut x34: u32 = 0;
> +     let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, (arg2[1]));
> +-    let mut x35: u32 = 0;
> +-    let mut x36: u32 = 0;
> +     let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, (arg2[0]));
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_scalar_u1 = 0;
> +     let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_scalar_u1 = 0;
> +     let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_scalar_u1 = 0;
> +     let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_scalar_u1 = 0;
> +     let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_scalar_u1 = 0;
> +     let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_scalar_u1 = 0;
> +     let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_scalar_u1 = 0;
> +     let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
> +-    let mut x51: u32 = 0;
> +-    let mut x52: fiat_p384_scalar_u1 = 0;
> +     let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
> +-    let mut x53: u32 = 0;
> +-    let mut x54: fiat_p384_scalar_u1 = 0;
> +     let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
> +-    let mut x55: u32 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
> +-    let mut x57: u32 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
> +     let x59: u32 = ((x58 as u32) + x14);
> +-    let mut x60: u32 = 0;
> +-    let mut x61: u32 = 0;
> +     let (x60, x61) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
> +-    let mut x62: u32 = 0;
> +-    let mut x63: u32 = 0;
> +     let (x62, x63) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x64: u32 = 0;
> +-    let mut x65: u32 = 0;
> +     let (x64, x65) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x66: u32 = 0;
> +-    let mut x67: u32 = 0;
> +     let (x66, x67) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x68: u32 = 0;
> +-    let mut x69: u32 = 0;
> +     let (x68, x69) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x70: u32 = 0;
> +-    let mut x71: u32 = 0;
> +     let (x70, x71) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x72: u32 = 0;
> +-    let mut x73: u32 = 0;
> +     let (x72, x73) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x74: u32 = 0;
> +-    let mut x75: u32 = 0;
> +     let (x74, x75) = fiat_p384_scalar_mulx_u32(x60, 0xc7634d81);
> +-    let mut x76: u32 = 0;
> +-    let mut x77: u32 = 0;
> +     let (x76, x77) = fiat_p384_scalar_mulx_u32(x60, 0xf4372ddf);
> +-    let mut x78: u32 = 0;
> +-    let mut x79: u32 = 0;
> +     let (x78, x79) = fiat_p384_scalar_mulx_u32(x60, 0x581a0db2);
> +-    let mut x80: u32 = 0;
> +-    let mut x81: u32 = 0;
> +     let (x80, x81) = fiat_p384_scalar_mulx_u32(x60, 0x48b0a77a);
> +-    let mut x82: u32 = 0;
> +-    let mut x83: u32 = 0;
> +     let (x82, x83) = fiat_p384_scalar_mulx_u32(x60, 0xecec196a);
> +-    let mut x84: u32 = 0;
> +-    let mut x85: u32 = 0;
> +     let (x84, x85) = fiat_p384_scalar_mulx_u32(x60, 0xccc52973);
> +-    let mut x86: u32 = 0;
> +-    let mut x87: fiat_p384_scalar_u1 = 0;
> +     let (x86, x87) = fiat_p384_scalar_addcarryx_u32(0x0, x85, x82);
> +-    let mut x88: u32 = 0;
> +-    let mut x89: fiat_p384_scalar_u1 = 0;
> +     let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x83, x80);
> +-    let mut x90: u32 = 0;
> +-    let mut x91: fiat_p384_scalar_u1 = 0;
> +     let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x81, x78);
> +-    let mut x92: u32 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x79, x76);
> +-    let mut x94: u32 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x77, x74);
> +-    let mut x96: u32 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x75, x72);
> +-    let mut x98: u32 = 0;
> +-    let mut x99: fiat_p384_scalar_u1 = 0;
> +     let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x73, x70);
> +-    let mut x100: u32 = 0;
> +-    let mut x101: fiat_p384_scalar_u1 = 0;
> +     let (x100, x101) = fiat_p384_scalar_addcarryx_u32(x99, x71, x68);
> +-    let mut x102: u32 = 0;
> +-    let mut x103: fiat_p384_scalar_u1 = 0;
> +     let (x102, x103) = fiat_p384_scalar_addcarryx_u32(x101, x69, x66);
> +-    let mut x104: u32 = 0;
> +-    let mut x105: fiat_p384_scalar_u1 = 0;
> +     let (x104, x105) = fiat_p384_scalar_addcarryx_u32(x103, x67, x64);
> +-    let mut x106: u32 = 0;
> +-    let mut x107: fiat_p384_scalar_u1 = 0;
> +     let (x106, x107) = fiat_p384_scalar_addcarryx_u32(x105, x65, x62);
> +     let x108: u32 = ((x107 as u32) + x63);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_scalar_u1 = 0;
> +     let (x109, x110) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x84);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_scalar_u1 = 0;
> +     let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x37, x86);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_scalar_u1 = 0;
> +     let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x39, x88);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_scalar_u1 = 0;
> +     let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x41, x90);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_scalar_u1 = 0;
> +     let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x43, x92);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_scalar_u1 = 0;
> +     let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x45, x94);
> +-    let mut x121: u32 = 0;
> +-    let mut x122: fiat_p384_scalar_u1 = 0;
> +     let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x47, x96);
> +-    let mut x123: u32 = 0;
> +-    let mut x124: fiat_p384_scalar_u1 = 0;
> +     let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x49, x98);
> +-    let mut x125: u32 = 0;
> +-    let mut x126: fiat_p384_scalar_u1 = 0;
> +     let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x51, x100);
> +-    let mut x127: u32 = 0;
> +-    let mut x128: fiat_p384_scalar_u1 = 0;
> +     let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x53, x102);
> +-    let mut x129: u32 = 0;
> +-    let mut x130: fiat_p384_scalar_u1 = 0;
> +     let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x55, x104);
> +-    let mut x131: u32 = 0;
> +-    let mut x132: fiat_p384_scalar_u1 = 0;
> +     let (x131, x132) = fiat_p384_scalar_addcarryx_u32(x130, x57, x106);
> +-    let mut x133: u32 = 0;
> +-    let mut x134: fiat_p384_scalar_u1 = 0;
> +     let (x133, x134) = fiat_p384_scalar_addcarryx_u32(x132, x59, x108);
> +-    let mut x135: u32 = 0;
> +-    let mut x136: u32 = 0;
> +     let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, (arg2[11]));
> +-    let mut x137: u32 = 0;
> +-    let mut x138: u32 = 0;
> +     let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, (arg2[10]));
> +-    let mut x139: u32 = 0;
> +-    let mut x140: u32 = 0;
> +     let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, (arg2[9]));
> +-    let mut x141: u32 = 0;
> +-    let mut x142: u32 = 0;
> +     let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, (arg2[8]));
> +-    let mut x143: u32 = 0;
> +-    let mut x144: u32 = 0;
> +     let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, (arg2[7]));
> +-    let mut x145: u32 = 0;
> +-    let mut x146: u32 = 0;
> +     let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, (arg2[6]));
> +-    let mut x147: u32 = 0;
> +-    let mut x148: u32 = 0;
> +     let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, (arg2[5]));
> +-    let mut x149: u32 = 0;
> +-    let mut x150: u32 = 0;
> +     let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, (arg2[4]));
> +-    let mut x151: u32 = 0;
> +-    let mut x152: u32 = 0;
> +     let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, (arg2[3]));
> +-    let mut x153: u32 = 0;
> +-    let mut x154: u32 = 0;
> +     let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, (arg2[2]));
> +-    let mut x155: u32 = 0;
> +-    let mut x156: u32 = 0;
> +     let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, (arg2[1]));
> +-    let mut x157: u32 = 0;
> +-    let mut x158: u32 = 0;
> +     let (x157, x158) = fiat_p384_scalar_mulx_u32(x1, (arg2[0]));
> +-    let mut x159: u32 = 0;
> +-    let mut x160: fiat_p384_scalar_u1 = 0;
> +     let (x159, x160) = fiat_p384_scalar_addcarryx_u32(0x0, x158, x155);
> +-    let mut x161: u32 = 0;
> +-    let mut x162: fiat_p384_scalar_u1 = 0;
> +     let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x156, x153);
> +-    let mut x163: u32 = 0;
> +-    let mut x164: fiat_p384_scalar_u1 = 0;
> +     let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x154, x151);
> +-    let mut x165: u32 = 0;
> +-    let mut x166: fiat_p384_scalar_u1 = 0;
> +     let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x152, x149);
> +-    let mut x167: u32 = 0;
> +-    let mut x168: fiat_p384_scalar_u1 = 0;
> +     let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x150, x147);
> +-    let mut x169: u32 = 0;
> +-    let mut x170: fiat_p384_scalar_u1 = 0;
> +     let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x148, x145);
> +-    let mut x171: u32 = 0;
> +-    let mut x172: fiat_p384_scalar_u1 = 0;
> +     let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x146, x143);
> +-    let mut x173: u32 = 0;
> +-    let mut x174: fiat_p384_scalar_u1 = 0;
> +     let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x144, x141);
> +-    let mut x175: u32 = 0;
> +-    let mut x176: fiat_p384_scalar_u1 = 0;
> +     let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x142, x139);
> +-    let mut x177: u32 = 0;
> +-    let mut x178: fiat_p384_scalar_u1 = 0;
> +     let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x140, x137);
> +-    let mut x179: u32 = 0;
> +-    let mut x180: fiat_p384_scalar_u1 = 0;
> +     let (x179, x180) = fiat_p384_scalar_addcarryx_u32(x178, x138, x135);
> +     let x181: u32 = ((x180 as u32) + x136);
> +-    let mut x182: u32 = 0;
> +-    let mut x183: fiat_p384_scalar_u1 = 0;
> +     let (x182, x183) = fiat_p384_scalar_addcarryx_u32(0x0, x111, x157);
> +-    let mut x184: u32 = 0;
> +-    let mut x185: fiat_p384_scalar_u1 = 0;
> +     let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x113, x159);
> +-    let mut x186: u32 = 0;
> +-    let mut x187: fiat_p384_scalar_u1 = 0;
> +     let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x115, x161);
> +-    let mut x188: u32 = 0;
> +-    let mut x189: fiat_p384_scalar_u1 = 0;
> +     let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x117, x163);
> +-    let mut x190: u32 = 0;
> +-    let mut x191: fiat_p384_scalar_u1 = 0;
> +     let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x119, x165);
> +-    let mut x192: u32 = 0;
> +-    let mut x193: fiat_p384_scalar_u1 = 0;
> +     let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x121, x167);
> +-    let mut x194: u32 = 0;
> +-    let mut x195: fiat_p384_scalar_u1 = 0;
> +     let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x123, x169);
> +-    let mut x196: u32 = 0;
> +-    let mut x197: fiat_p384_scalar_u1 = 0;
> +     let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x125, x171);
> +-    let mut x198: u32 = 0;
> +-    let mut x199: fiat_p384_scalar_u1 = 0;
> +     let (x198, x199) = fiat_p384_scalar_addcarryx_u32(x197, x127, x173);
> +-    let mut x200: u32 = 0;
> +-    let mut x201: fiat_p384_scalar_u1 = 0;
> +     let (x200, x201) = fiat_p384_scalar_addcarryx_u32(x199, x129, x175);
> +-    let mut x202: u32 = 0;
> +-    let mut x203: fiat_p384_scalar_u1 = 0;
> +     let (x202, x203) = fiat_p384_scalar_addcarryx_u32(x201, x131, x177);
> +-    let mut x204: u32 = 0;
> +-    let mut x205: fiat_p384_scalar_u1 = 0;
> +     let (x204, x205) = fiat_p384_scalar_addcarryx_u32(x203, x133, x179);
> +-    let mut x206: u32 = 0;
> +-    let mut x207: fiat_p384_scalar_u1 = 0;
> +     let (x206, x207) = fiat_p384_scalar_addcarryx_u32(x205, (x134 as u32), x181);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: u32 = 0;
> +     let (x208, x209) = fiat_p384_scalar_mulx_u32(x182, 0xe88fdc45);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: u32 = 0;
> +     let (x210, x211) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: u32 = 0;
> +     let (x212, x213) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: u32 = 0;
> +     let (x214, x215) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: u32 = 0;
> +     let (x216, x217) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: u32 = 0;
> +     let (x218, x219) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: u32 = 0;
> +     let (x220, x221) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: u32 = 0;
> +     let (x222, x223) = fiat_p384_scalar_mulx_u32(x208, 0xc7634d81);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: u32 = 0;
> +     let (x224, x225) = fiat_p384_scalar_mulx_u32(x208, 0xf4372ddf);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: u32 = 0;
> +     let (x226, x227) = fiat_p384_scalar_mulx_u32(x208, 0x581a0db2);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: u32 = 0;
> +     let (x228, x229) = fiat_p384_scalar_mulx_u32(x208, 0x48b0a77a);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: u32 = 0;
> +     let (x230, x231) = fiat_p384_scalar_mulx_u32(x208, 0xecec196a);
> +-    let mut x232: u32 = 0;
> +-    let mut x233: u32 = 0;
> +     let (x232, x233) = fiat_p384_scalar_mulx_u32(x208, 0xccc52973);
> +-    let mut x234: u32 = 0;
> +-    let mut x235: fiat_p384_scalar_u1 = 0;
> +     let (x234, x235) = fiat_p384_scalar_addcarryx_u32(0x0, x233, x230);
> +-    let mut x236: u32 = 0;
> +-    let mut x237: fiat_p384_scalar_u1 = 0;
> +     let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x231, x228);
> +-    let mut x238: u32 = 0;
> +-    let mut x239: fiat_p384_scalar_u1 = 0;
> +     let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x229, x226);
> +-    let mut x240: u32 = 0;
> +-    let mut x241: fiat_p384_scalar_u1 = 0;
> +     let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x227, x224);
> +-    let mut x242: u32 = 0;
> +-    let mut x243: fiat_p384_scalar_u1 = 0;
> +     let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x225, x222);
> +-    let mut x244: u32 = 0;
> +-    let mut x245: fiat_p384_scalar_u1 = 0;
> +     let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x223, x220);
> +-    let mut x246: u32 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(x245, x221, x218);
> +-    let mut x248: u32 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x219, x216);
> +-    let mut x250: u32 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x217, x214);
> +-    let mut x252: u32 = 0;
> +-    let mut x253: fiat_p384_scalar_u1 = 0;
> +     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x215, x212);
> +-    let mut x254: u32 = 0;
> +-    let mut x255: fiat_p384_scalar_u1 = 0;
> +     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x213, x210);
> +     let x256: u32 = ((x255 as u32) + x211);
> +-    let mut x257: u32 = 0;
> +-    let mut x258: fiat_p384_scalar_u1 = 0;
> +     let (x257, x258) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x232);
> +-    let mut x259: u32 = 0;
> +-    let mut x260: fiat_p384_scalar_u1 = 0;
> +     let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x184, x234);
> +-    let mut x261: u32 = 0;
> +-    let mut x262: fiat_p384_scalar_u1 = 0;
> +     let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x186, x236);
> +-    let mut x263: u32 = 0;
> +-    let mut x264: fiat_p384_scalar_u1 = 0;
> +     let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x188, x238);
> +-    let mut x265: u32 = 0;
> +-    let mut x266: fiat_p384_scalar_u1 = 0;
> +     let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x190, x240);
> +-    let mut x267: u32 = 0;
> +-    let mut x268: fiat_p384_scalar_u1 = 0;
> +     let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x192, x242);
> +-    let mut x269: u32 = 0;
> +-    let mut x270: fiat_p384_scalar_u1 = 0;
> +     let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x194, x244);
> +-    let mut x271: u32 = 0;
> +-    let mut x272: fiat_p384_scalar_u1 = 0;
> +     let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x196, x246);
> +-    let mut x273: u32 = 0;
> +-    let mut x274: fiat_p384_scalar_u1 = 0;
> +     let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x198, x248);
> +-    let mut x275: u32 = 0;
> +-    let mut x276: fiat_p384_scalar_u1 = 0;
> +     let (x275, x276) = fiat_p384_scalar_addcarryx_u32(x274, x200, x250);
> +-    let mut x277: u32 = 0;
> +-    let mut x278: fiat_p384_scalar_u1 = 0;
> +     let (x277, x278) = fiat_p384_scalar_addcarryx_u32(x276, x202, x252);
> +-    let mut x279: u32 = 0;
> +-    let mut x280: fiat_p384_scalar_u1 = 0;
> +     let (x279, x280) = fiat_p384_scalar_addcarryx_u32(x278, x204, x254);
> +-    let mut x281: u32 = 0;
> +-    let mut x282: fiat_p384_scalar_u1 = 0;
> +     let (x281, x282) = fiat_p384_scalar_addcarryx_u32(x280, x206, x256);
> +     let x283: u32 = ((x282 as u32) + (x207 as u32));
> +-    let mut x284: u32 = 0;
> +-    let mut x285: u32 = 0;
> +     let (x284, x285) = fiat_p384_scalar_mulx_u32(x2, (arg2[11]));
> +-    let mut x286: u32 = 0;
> +-    let mut x287: u32 = 0;
> +     let (x286, x287) = fiat_p384_scalar_mulx_u32(x2, (arg2[10]));
> +-    let mut x288: u32 = 0;
> +-    let mut x289: u32 = 0;
> +     let (x288, x289) = fiat_p384_scalar_mulx_u32(x2, (arg2[9]));
> +-    let mut x290: u32 = 0;
> +-    let mut x291: u32 = 0;
> +     let (x290, x291) = fiat_p384_scalar_mulx_u32(x2, (arg2[8]));
> +-    let mut x292: u32 = 0;
> +-    let mut x293: u32 = 0;
> +     let (x292, x293) = fiat_p384_scalar_mulx_u32(x2, (arg2[7]));
> +-    let mut x294: u32 = 0;
> +-    let mut x295: u32 = 0;
> +     let (x294, x295) = fiat_p384_scalar_mulx_u32(x2, (arg2[6]));
> +-    let mut x296: u32 = 0;
> +-    let mut x297: u32 = 0;
> +     let (x296, x297) = fiat_p384_scalar_mulx_u32(x2, (arg2[5]));
> +-    let mut x298: u32 = 0;
> +-    let mut x299: u32 = 0;
> +     let (x298, x299) = fiat_p384_scalar_mulx_u32(x2, (arg2[4]));
> +-    let mut x300: u32 = 0;
> +-    let mut x301: u32 = 0;
> +     let (x300, x301) = fiat_p384_scalar_mulx_u32(x2, (arg2[3]));
> +-    let mut x302: u32 = 0;
> +-    let mut x303: u32 = 0;
> +     let (x302, x303) = fiat_p384_scalar_mulx_u32(x2, (arg2[2]));
> +-    let mut x304: u32 = 0;
> +-    let mut x305: u32 = 0;
> +     let (x304, x305) = fiat_p384_scalar_mulx_u32(x2, (arg2[1]));
> +-    let mut x306: u32 = 0;
> +-    let mut x307: u32 = 0;
> +     let (x306, x307) = fiat_p384_scalar_mulx_u32(x2, (arg2[0]));
> +-    let mut x308: u32 = 0;
> +-    let mut x309: fiat_p384_scalar_u1 = 0;
> +     let (x308, x309) = fiat_p384_scalar_addcarryx_u32(0x0, x307, x304);
> +-    let mut x310: u32 = 0;
> +-    let mut x311: fiat_p384_scalar_u1 = 0;
> +     let (x310, x311) = fiat_p384_scalar_addcarryx_u32(x309, x305, x302);
> +-    let mut x312: u32 = 0;
> +-    let mut x313: fiat_p384_scalar_u1 = 0;
> +     let (x312, x313) = fiat_p384_scalar_addcarryx_u32(x311, x303, x300);
> +-    let mut x314: u32 = 0;
> +-    let mut x315: fiat_p384_scalar_u1 = 0;
> +     let (x314, x315) = fiat_p384_scalar_addcarryx_u32(x313, x301, x298);
> +-    let mut x316: u32 = 0;
> +-    let mut x317: fiat_p384_scalar_u1 = 0;
> +     let (x316, x317) = fiat_p384_scalar_addcarryx_u32(x315, x299, x296);
> +-    let mut x318: u32 = 0;
> +-    let mut x319: fiat_p384_scalar_u1 = 0;
> +     let (x318, x319) = fiat_p384_scalar_addcarryx_u32(x317, x297, x294);
> +-    let mut x320: u32 = 0;
> +-    let mut x321: fiat_p384_scalar_u1 = 0;
> +     let (x320, x321) = fiat_p384_scalar_addcarryx_u32(x319, x295, x292);
> +-    let mut x322: u32 = 0;
> +-    let mut x323: fiat_p384_scalar_u1 = 0;
> +     let (x322, x323) = fiat_p384_scalar_addcarryx_u32(x321, x293, x290);
> +-    let mut x324: u32 = 0;
> +-    let mut x325: fiat_p384_scalar_u1 = 0;
> +     let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x291, x288);
> +-    let mut x326: u32 = 0;
> +-    let mut x327: fiat_p384_scalar_u1 = 0;
> +     let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x289, x286);
> +-    let mut x328: u32 = 0;
> +-    let mut x329: fiat_p384_scalar_u1 = 0;
> +     let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x287, x284);
> +     let x330: u32 = ((x329 as u32) + x285);
> +-    let mut x331: u32 = 0;
> +-    let mut x332: fiat_p384_scalar_u1 = 0;
> +     let (x331, x332) = fiat_p384_scalar_addcarryx_u32(0x0, x259, x306);
> +-    let mut x333: u32 = 0;
> +-    let mut x334: fiat_p384_scalar_u1 = 0;
> +     let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x261, x308);
> +-    let mut x335: u32 = 0;
> +-    let mut x336: fiat_p384_scalar_u1 = 0;
> +     let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x263, x310);
> +-    let mut x337: u32 = 0;
> +-    let mut x338: fiat_p384_scalar_u1 = 0;
> +     let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x265, x312);
> +-    let mut x339: u32 = 0;
> +-    let mut x340: fiat_p384_scalar_u1 = 0;
> +     let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x267, x314);
> +-    let mut x341: u32 = 0;
> +-    let mut x342: fiat_p384_scalar_u1 = 0;
> +     let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x269, x316);
> +-    let mut x343: u32 = 0;
> +-    let mut x344: fiat_p384_scalar_u1 = 0;
> +     let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x271, x318);
> +-    let mut x345: u32 = 0;
> +-    let mut x346: fiat_p384_scalar_u1 = 0;
> +     let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x273, x320);
> +-    let mut x347: u32 = 0;
> +-    let mut x348: fiat_p384_scalar_u1 = 0;
> +     let (x347, x348) = fiat_p384_scalar_addcarryx_u32(x346, x275, x322);
> +-    let mut x349: u32 = 0;
> +-    let mut x350: fiat_p384_scalar_u1 = 0;
> +     let (x349, x350) = fiat_p384_scalar_addcarryx_u32(x348, x277, x324);
> +-    let mut x351: u32 = 0;
> +-    let mut x352: fiat_p384_scalar_u1 = 0;
> +     let (x351, x352) = fiat_p384_scalar_addcarryx_u32(x350, x279, x326);
> +-    let mut x353: u32 = 0;
> +-    let mut x354: fiat_p384_scalar_u1 = 0;
> +     let (x353, x354) = fiat_p384_scalar_addcarryx_u32(x352, x281, x328);
> +-    let mut x355: u32 = 0;
> +-    let mut x356: fiat_p384_scalar_u1 = 0;
> +     let (x355, x356) = fiat_p384_scalar_addcarryx_u32(x354, x283, x330);
> +-    let mut x357: u32 = 0;
> +-    let mut x358: u32 = 0;
> +     let (x357, x358) = fiat_p384_scalar_mulx_u32(x331, 0xe88fdc45);
> +-    let mut x359: u32 = 0;
> +-    let mut x360: u32 = 0;
> +     let (x359, x360) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x361: u32 = 0;
> +-    let mut x362: u32 = 0;
> +     let (x361, x362) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x363: u32 = 0;
> +-    let mut x364: u32 = 0;
> +     let (x363, x364) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x365: u32 = 0;
> +-    let mut x366: u32 = 0;
> +     let (x365, x366) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x367: u32 = 0;
> +-    let mut x368: u32 = 0;
> +     let (x367, x368) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x369: u32 = 0;
> +-    let mut x370: u32 = 0;
> +     let (x369, x370) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x371: u32 = 0;
> +-    let mut x372: u32 = 0;
> +     let (x371, x372) = fiat_p384_scalar_mulx_u32(x357, 0xc7634d81);
> +-    let mut x373: u32 = 0;
> +-    let mut x374: u32 = 0;
> +     let (x373, x374) = fiat_p384_scalar_mulx_u32(x357, 0xf4372ddf);
> +-    let mut x375: u32 = 0;
> +-    let mut x376: u32 = 0;
> +     let (x375, x376) = fiat_p384_scalar_mulx_u32(x357, 0x581a0db2);
> +-    let mut x377: u32 = 0;
> +-    let mut x378: u32 = 0;
> +     let (x377, x378) = fiat_p384_scalar_mulx_u32(x357, 0x48b0a77a);
> +-    let mut x379: u32 = 0;
> +-    let mut x380: u32 = 0;
> +     let (x379, x380) = fiat_p384_scalar_mulx_u32(x357, 0xecec196a);
> +-    let mut x381: u32 = 0;
> +-    let mut x382: u32 = 0;
> +     let (x381, x382) = fiat_p384_scalar_mulx_u32(x357, 0xccc52973);
> +-    let mut x383: u32 = 0;
> +-    let mut x384: fiat_p384_scalar_u1 = 0;
> +     let (x383, x384) = fiat_p384_scalar_addcarryx_u32(0x0, x382, x379);
> +-    let mut x385: u32 = 0;
> +-    let mut x386: fiat_p384_scalar_u1 = 0;
> +     let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x380, x377);
> +-    let mut x387: u32 = 0;
> +-    let mut x388: fiat_p384_scalar_u1 = 0;
> +     let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x378, x375);
> +-    let mut x389: u32 = 0;
> +-    let mut x390: fiat_p384_scalar_u1 = 0;
> +     let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x376, x373);
> +-    let mut x391: u32 = 0;
> +-    let mut x392: fiat_p384_scalar_u1 = 0;
> +     let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x374, x371);
> +-    let mut x393: u32 = 0;
> +-    let mut x394: fiat_p384_scalar_u1 = 0;
> +     let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x372, x369);
> +-    let mut x395: u32 = 0;
> +-    let mut x396: fiat_p384_scalar_u1 = 0;
> +     let (x395, x396) = fiat_p384_scalar_addcarryx_u32(x394, x370, x367);
> +-    let mut x397: u32 = 0;
> +-    let mut x398: fiat_p384_scalar_u1 = 0;
> +     let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x368, x365);
> +-    let mut x399: u32 = 0;
> +-    let mut x400: fiat_p384_scalar_u1 = 0;
> +     let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x366, x363);
> +-    let mut x401: u32 = 0;
> +-    let mut x402: fiat_p384_scalar_u1 = 0;
> +     let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x364, x361);
> +-    let mut x403: u32 = 0;
> +-    let mut x404: fiat_p384_scalar_u1 = 0;
> +     let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x362, x359);
> +     let x405: u32 = ((x404 as u32) + x360);
> +-    let mut x406: u32 = 0;
> +-    let mut x407: fiat_p384_scalar_u1 = 0;
> +     let (x406, x407) = fiat_p384_scalar_addcarryx_u32(0x0, x331, x381);
> +-    let mut x408: u32 = 0;
> +-    let mut x409: fiat_p384_scalar_u1 = 0;
> +     let (x408, x409) = fiat_p384_scalar_addcarryx_u32(x407, x333, x383);
> +-    let mut x410: u32 = 0;
> +-    let mut x411: fiat_p384_scalar_u1 = 0;
> +     let (x410, x411) = fiat_p384_scalar_addcarryx_u32(x409, x335, x385);
> +-    let mut x412: u32 = 0;
> +-    let mut x413: fiat_p384_scalar_u1 = 0;
> +     let (x412, x413) = fiat_p384_scalar_addcarryx_u32(x411, x337, x387);
> +-    let mut x414: u32 = 0;
> +-    let mut x415: fiat_p384_scalar_u1 = 0;
> +     let (x414, x415) = fiat_p384_scalar_addcarryx_u32(x413, x339, x389);
> +-    let mut x416: u32 = 0;
> +-    let mut x417: fiat_p384_scalar_u1 = 0;
> +     let (x416, x417) = fiat_p384_scalar_addcarryx_u32(x415, x341, x391);
> +-    let mut x418: u32 = 0;
> +-    let mut x419: fiat_p384_scalar_u1 = 0;
> +     let (x418, x419) = fiat_p384_scalar_addcarryx_u32(x417, x343, x393);
> +-    let mut x420: u32 = 0;
> +-    let mut x421: fiat_p384_scalar_u1 = 0;
> +     let (x420, x421) = fiat_p384_scalar_addcarryx_u32(x419, x345, x395);
> +-    let mut x422: u32 = 0;
> +-    let mut x423: fiat_p384_scalar_u1 = 0;
> +     let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x347, x397);
> +-    let mut x424: u32 = 0;
> +-    let mut x425: fiat_p384_scalar_u1 = 0;
> +     let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x349, x399);
> +-    let mut x426: u32 = 0;
> +-    let mut x427: fiat_p384_scalar_u1 = 0;
> +     let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x351, x401);
> +-    let mut x428: u32 = 0;
> +-    let mut x429: fiat_p384_scalar_u1 = 0;
> +     let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x353, x403);
> +-    let mut x430: u32 = 0;
> +-    let mut x431: fiat_p384_scalar_u1 = 0;
> +     let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x355, x405);
> +     let x432: u32 = ((x431 as u32) + (x356 as u32));
> +-    let mut x433: u32 = 0;
> +-    let mut x434: u32 = 0;
> +     let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, (arg2[11]));
> +-    let mut x435: u32 = 0;
> +-    let mut x436: u32 = 0;
> +     let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, (arg2[10]));
> +-    let mut x437: u32 = 0;
> +-    let mut x438: u32 = 0;
> +     let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, (arg2[9]));
> +-    let mut x439: u32 = 0;
> +-    let mut x440: u32 = 0;
> +     let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, (arg2[8]));
> +-    let mut x441: u32 = 0;
> +-    let mut x442: u32 = 0;
> +     let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, (arg2[7]));
> +-    let mut x443: u32 = 0;
> +-    let mut x444: u32 = 0;
> +     let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, (arg2[6]));
> +-    let mut x445: u32 = 0;
> +-    let mut x446: u32 = 0;
> +     let (x445, x446) = fiat_p384_scalar_mulx_u32(x3, (arg2[5]));
> +-    let mut x447: u32 = 0;
> +-    let mut x448: u32 = 0;
> +     let (x447, x448) = fiat_p384_scalar_mulx_u32(x3, (arg2[4]));
> +-    let mut x449: u32 = 0;
> +-    let mut x450: u32 = 0;
> +     let (x449, x450) = fiat_p384_scalar_mulx_u32(x3, (arg2[3]));
> +-    let mut x451: u32 = 0;
> +-    let mut x452: u32 = 0;
> +     let (x451, x452) = fiat_p384_scalar_mulx_u32(x3, (arg2[2]));
> +-    let mut x453: u32 = 0;
> +-    let mut x454: u32 = 0;
> +     let (x453, x454) = fiat_p384_scalar_mulx_u32(x3, (arg2[1]));
> +-    let mut x455: u32 = 0;
> +-    let mut x456: u32 = 0;
> +     let (x455, x456) = fiat_p384_scalar_mulx_u32(x3, (arg2[0]));
> +-    let mut x457: u32 = 0;
> +-    let mut x458: fiat_p384_scalar_u1 = 0;
> +     let (x457, x458) = fiat_p384_scalar_addcarryx_u32(0x0, x456, x453);
> +-    let mut x459: u32 = 0;
> +-    let mut x460: fiat_p384_scalar_u1 = 0;
> +     let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x454, x451);
> +-    let mut x461: u32 = 0;
> +-    let mut x462: fiat_p384_scalar_u1 = 0;
> +     let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x452, x449);
> +-    let mut x463: u32 = 0;
> +-    let mut x464: fiat_p384_scalar_u1 = 0;
> +     let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x450, x447);
> +-    let mut x465: u32 = 0;
> +-    let mut x466: fiat_p384_scalar_u1 = 0;
> +     let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x448, x445);
> +-    let mut x467: u32 = 0;
> +-    let mut x468: fiat_p384_scalar_u1 = 0;
> +     let (x467, x468) = fiat_p384_scalar_addcarryx_u32(x466, x446, x443);
> +-    let mut x469: u32 = 0;
> +-    let mut x470: fiat_p384_scalar_u1 = 0;
> +     let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x444, x441);
> +-    let mut x471: u32 = 0;
> +-    let mut x472: fiat_p384_scalar_u1 = 0;
> +     let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x442, x439);
> +-    let mut x473: u32 = 0;
> +-    let mut x474: fiat_p384_scalar_u1 = 0;
> +     let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x440, x437);
> +-    let mut x475: u32 = 0;
> +-    let mut x476: fiat_p384_scalar_u1 = 0;
> +     let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x438, x435);
> +-    let mut x477: u32 = 0;
> +-    let mut x478: fiat_p384_scalar_u1 = 0;
> +     let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x436, x433);
> +     let x479: u32 = ((x478 as u32) + x434);
> +-    let mut x480: u32 = 0;
> +-    let mut x481: fiat_p384_scalar_u1 = 0;
> +     let (x480, x481) = fiat_p384_scalar_addcarryx_u32(0x0, x408, x455);
> +-    let mut x482: u32 = 0;
> +-    let mut x483: fiat_p384_scalar_u1 = 0;
> +     let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x410, x457);
> +-    let mut x484: u32 = 0;
> +-    let mut x485: fiat_p384_scalar_u1 = 0;
> +     let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x412, x459);
> +-    let mut x486: u32 = 0;
> +-    let mut x487: fiat_p384_scalar_u1 = 0;
> +     let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x414, x461);
> +-    let mut x488: u32 = 0;
> +-    let mut x489: fiat_p384_scalar_u1 = 0;
> +     let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x416, x463);
> +-    let mut x490: u32 = 0;
> +-    let mut x491: fiat_p384_scalar_u1 = 0;
> +     let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x418, x465);
> +-    let mut x492: u32 = 0;
> +-    let mut x493: fiat_p384_scalar_u1 = 0;
> +     let (x492, x493) = fiat_p384_scalar_addcarryx_u32(x491, x420, x467);
> +-    let mut x494: u32 = 0;
> +-    let mut x495: fiat_p384_scalar_u1 = 0;
> +     let (x494, x495) = fiat_p384_scalar_addcarryx_u32(x493, x422, x469);
> +-    let mut x496: u32 = 0;
> +-    let mut x497: fiat_p384_scalar_u1 = 0;
> +     let (x496, x497) = fiat_p384_scalar_addcarryx_u32(x495, x424, x471);
> +-    let mut x498: u32 = 0;
> +-    let mut x499: fiat_p384_scalar_u1 = 0;
> +     let (x498, x499) = fiat_p384_scalar_addcarryx_u32(x497, x426, x473);
> +-    let mut x500: u32 = 0;
> +-    let mut x501: fiat_p384_scalar_u1 = 0;
> +     let (x500, x501) = fiat_p384_scalar_addcarryx_u32(x499, x428, x475);
> +-    let mut x502: u32 = 0;
> +-    let mut x503: fiat_p384_scalar_u1 = 0;
> +     let (x502, x503) = fiat_p384_scalar_addcarryx_u32(x501, x430, x477);
> +-    let mut x504: u32 = 0;
> +-    let mut x505: fiat_p384_scalar_u1 = 0;
> +     let (x504, x505) = fiat_p384_scalar_addcarryx_u32(x503, x432, x479);
> +-    let mut x506: u32 = 0;
> +-    let mut x507: u32 = 0;
> +     let (x506, x507) = fiat_p384_scalar_mulx_u32(x480, 0xe88fdc45);
> +-    let mut x508: u32 = 0;
> +-    let mut x509: u32 = 0;
> +     let (x508, x509) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x510: u32 = 0;
> +-    let mut x511: u32 = 0;
> +     let (x510, x511) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x512: u32 = 0;
> +-    let mut x513: u32 = 0;
> +     let (x512, x513) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x514: u32 = 0;
> +-    let mut x515: u32 = 0;
> +     let (x514, x515) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x516: u32 = 0;
> +-    let mut x517: u32 = 0;
> +     let (x516, x517) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x518: u32 = 0;
> +-    let mut x519: u32 = 0;
> +     let (x518, x519) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x520: u32 = 0;
> +-    let mut x521: u32 = 0;
> +     let (x520, x521) = fiat_p384_scalar_mulx_u32(x506, 0xc7634d81);
> +-    let mut x522: u32 = 0;
> +-    let mut x523: u32 = 0;
> +     let (x522, x523) = fiat_p384_scalar_mulx_u32(x506, 0xf4372ddf);
> +-    let mut x524: u32 = 0;
> +-    let mut x525: u32 = 0;
> +     let (x524, x525) = fiat_p384_scalar_mulx_u32(x506, 0x581a0db2);
> +-    let mut x526: u32 = 0;
> +-    let mut x527: u32 = 0;
> +     let (x526, x527) = fiat_p384_scalar_mulx_u32(x506, 0x48b0a77a);
> +-    let mut x528: u32 = 0;
> +-    let mut x529: u32 = 0;
> +     let (x528, x529) = fiat_p384_scalar_mulx_u32(x506, 0xecec196a);
> +-    let mut x530: u32 = 0;
> +-    let mut x531: u32 = 0;
> +     let (x530, x531) = fiat_p384_scalar_mulx_u32(x506, 0xccc52973);
> +-    let mut x532: u32 = 0;
> +-    let mut x533: fiat_p384_scalar_u1 = 0;
> +     let (x532, x533) = fiat_p384_scalar_addcarryx_u32(0x0, x531, x528);
> +-    let mut x534: u32 = 0;
> +-    let mut x535: fiat_p384_scalar_u1 = 0;
> +     let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x529, x526);
> +-    let mut x536: u32 = 0;
> +-    let mut x537: fiat_p384_scalar_u1 = 0;
> +     let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x527, x524);
> +-    let mut x538: u32 = 0;
> +-    let mut x539: fiat_p384_scalar_u1 = 0;
> +     let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x525, x522);
> +-    let mut x540: u32 = 0;
> +-    let mut x541: fiat_p384_scalar_u1 = 0;
> +     let (x540, x541) = fiat_p384_scalar_addcarryx_u32(x539, x523, x520);
> +-    let mut x542: u32 = 0;
> +-    let mut x543: fiat_p384_scalar_u1 = 0;
> +     let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x521, x518);
> +-    let mut x544: u32 = 0;
> +-    let mut x545: fiat_p384_scalar_u1 = 0;
> +     let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x519, x516);
> +-    let mut x546: u32 = 0;
> +-    let mut x547: fiat_p384_scalar_u1 = 0;
> +     let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x517, x514);
> +-    let mut x548: u32 = 0;
> +-    let mut x549: fiat_p384_scalar_u1 = 0;
> +     let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x515, x512);
> +-    let mut x550: u32 = 0;
> +-    let mut x551: fiat_p384_scalar_u1 = 0;
> +     let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x513, x510);
> +-    let mut x552: u32 = 0;
> +-    let mut x553: fiat_p384_scalar_u1 = 0;
> +     let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x511, x508);
> +     let x554: u32 = ((x553 as u32) + x509);
> +-    let mut x555: u32 = 0;
> +-    let mut x556: fiat_p384_scalar_u1 = 0;
> +     let (x555, x556) = fiat_p384_scalar_addcarryx_u32(0x0, x480, x530);
> +-    let mut x557: u32 = 0;
> +-    let mut x558: fiat_p384_scalar_u1 = 0;
> +     let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x482, x532);
> +-    let mut x559: u32 = 0;
> +-    let mut x560: fiat_p384_scalar_u1 = 0;
> +     let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x484, x534);
> +-    let mut x561: u32 = 0;
> +-    let mut x562: fiat_p384_scalar_u1 = 0;
> +     let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x486, x536);
> +-    let mut x563: u32 = 0;
> +-    let mut x564: fiat_p384_scalar_u1 = 0;
> +     let (x563, x564) = fiat_p384_scalar_addcarryx_u32(x562, x488, x538);
> +-    let mut x565: u32 = 0;
> +-    let mut x566: fiat_p384_scalar_u1 = 0;
> +     let (x565, x566) = fiat_p384_scalar_addcarryx_u32(x564, x490, x540);
> +-    let mut x567: u32 = 0;
> +-    let mut x568: fiat_p384_scalar_u1 = 0;
> +     let (x567, x568) = fiat_p384_scalar_addcarryx_u32(x566, x492, x542);
> +-    let mut x569: u32 = 0;
> +-    let mut x570: fiat_p384_scalar_u1 = 0;
> +     let (x569, x570) = fiat_p384_scalar_addcarryx_u32(x568, x494, x544);
> +-    let mut x571: u32 = 0;
> +-    let mut x572: fiat_p384_scalar_u1 = 0;
> +     let (x571, x572) = fiat_p384_scalar_addcarryx_u32(x570, x496, x546);
> +-    let mut x573: u32 = 0;
> +-    let mut x574: fiat_p384_scalar_u1 = 0;
> +     let (x573, x574) = fiat_p384_scalar_addcarryx_u32(x572, x498, x548);
> +-    let mut x575: u32 = 0;
> +-    let mut x576: fiat_p384_scalar_u1 = 0;
> +     let (x575, x576) = fiat_p384_scalar_addcarryx_u32(x574, x500, x550);
> +-    let mut x577: u32 = 0;
> +-    let mut x578: fiat_p384_scalar_u1 = 0;
> +     let (x577, x578) = fiat_p384_scalar_addcarryx_u32(x576, x502, x552);
> +-    let mut x579: u32 = 0;
> +-    let mut x580: fiat_p384_scalar_u1 = 0;
> +     let (x579, x580) = fiat_p384_scalar_addcarryx_u32(x578, x504, x554);
> +     let x581: u32 = ((x580 as u32) + (x505 as u32));
> +-    let mut x582: u32 = 0;
> +-    let mut x583: u32 = 0;
> +     let (x582, x583) = fiat_p384_scalar_mulx_u32(x4, (arg2[11]));
> +-    let mut x584: u32 = 0;
> +-    let mut x585: u32 = 0;
> +     let (x584, x585) = fiat_p384_scalar_mulx_u32(x4, (arg2[10]));
> +-    let mut x586: u32 = 0;
> +-    let mut x587: u32 = 0;
> +     let (x586, x587) = fiat_p384_scalar_mulx_u32(x4, (arg2[9]));
> +-    let mut x588: u32 = 0;
> +-    let mut x589: u32 = 0;
> +     let (x588, x589) = fiat_p384_scalar_mulx_u32(x4, (arg2[8]));
> +-    let mut x590: u32 = 0;
> +-    let mut x591: u32 = 0;
> +     let (x590, x591) = fiat_p384_scalar_mulx_u32(x4, (arg2[7]));
> +-    let mut x592: u32 = 0;
> +-    let mut x593: u32 = 0;
> +     let (x592, x593) = fiat_p384_scalar_mulx_u32(x4, (arg2[6]));
> +-    let mut x594: u32 = 0;
> +-    let mut x595: u32 = 0;
> +     let (x594, x595) = fiat_p384_scalar_mulx_u32(x4, (arg2[5]));
> +-    let mut x596: u32 = 0;
> +-    let mut x597: u32 = 0;
> +     let (x596, x597) = fiat_p384_scalar_mulx_u32(x4, (arg2[4]));
> +-    let mut x598: u32 = 0;
> +-    let mut x599: u32 = 0;
> +     let (x598, x599) = fiat_p384_scalar_mulx_u32(x4, (arg2[3]));
> +-    let mut x600: u32 = 0;
> +-    let mut x601: u32 = 0;
> +     let (x600, x601) = fiat_p384_scalar_mulx_u32(x4, (arg2[2]));
> +-    let mut x602: u32 = 0;
> +-    let mut x603: u32 = 0;
> +     let (x602, x603) = fiat_p384_scalar_mulx_u32(x4, (arg2[1]));
> +-    let mut x604: u32 = 0;
> +-    let mut x605: u32 = 0;
> +     let (x604, x605) = fiat_p384_scalar_mulx_u32(x4, (arg2[0]));
> +-    let mut x606: u32 = 0;
> +-    let mut x607: fiat_p384_scalar_u1 = 0;
> +     let (x606, x607) = fiat_p384_scalar_addcarryx_u32(0x0, x605, x602);
> +-    let mut x608: u32 = 0;
> +-    let mut x609: fiat_p384_scalar_u1 = 0;
> +     let (x608, x609) = fiat_p384_scalar_addcarryx_u32(x607, x603, x600);
> +-    let mut x610: u32 = 0;
> +-    let mut x611: fiat_p384_scalar_u1 = 0;
> +     let (x610, x611) = fiat_p384_scalar_addcarryx_u32(x609, x601, x598);
> +-    let mut x612: u32 = 0;
> +-    let mut x613: fiat_p384_scalar_u1 = 0;
> +     let (x612, x613) = fiat_p384_scalar_addcarryx_u32(x611, x599, x596);
> +-    let mut x614: u32 = 0;
> +-    let mut x615: fiat_p384_scalar_u1 = 0;
> +     let (x614, x615) = fiat_p384_scalar_addcarryx_u32(x613, x597, x594);
> +-    let mut x616: u32 = 0;
> +-    let mut x617: fiat_p384_scalar_u1 = 0;
> +     let (x616, x617) = fiat_p384_scalar_addcarryx_u32(x615, x595, x592);
> +-    let mut x618: u32 = 0;
> +-    let mut x619: fiat_p384_scalar_u1 = 0;
> +     let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x593, x590);
> +-    let mut x620: u32 = 0;
> +-    let mut x621: fiat_p384_scalar_u1 = 0;
> +     let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x591, x588);
> +-    let mut x622: u32 = 0;
> +-    let mut x623: fiat_p384_scalar_u1 = 0;
> +     let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x589, x586);
> +-    let mut x624: u32 = 0;
> +-    let mut x625: fiat_p384_scalar_u1 = 0;
> +     let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x587, x584);
> +-    let mut x626: u32 = 0;
> +-    let mut x627: fiat_p384_scalar_u1 = 0;
> +     let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x585, x582);
> +     let x628: u32 = ((x627 as u32) + x583);
> +-    let mut x629: u32 = 0;
> +-    let mut x630: fiat_p384_scalar_u1 = 0;
> +     let (x629, x630) = fiat_p384_scalar_addcarryx_u32(0x0, x557, x604);
> +-    let mut x631: u32 = 0;
> +-    let mut x632: fiat_p384_scalar_u1 = 0;
> +     let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x559, x606);
> +-    let mut x633: u32 = 0;
> +-    let mut x634: fiat_p384_scalar_u1 = 0;
> +     let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x561, x608);
> +-    let mut x635: u32 = 0;
> +-    let mut x636: fiat_p384_scalar_u1 = 0;
> +     let (x635, x636) = fiat_p384_scalar_addcarryx_u32(x634, x563, x610);
> +-    let mut x637: u32 = 0;
> +-    let mut x638: fiat_p384_scalar_u1 = 0;
> +     let (x637, x638) = fiat_p384_scalar_addcarryx_u32(x636, x565, x612);
> +-    let mut x639: u32 = 0;
> +-    let mut x640: fiat_p384_scalar_u1 = 0;
> +     let (x639, x640) = fiat_p384_scalar_addcarryx_u32(x638, x567, x614);
> +-    let mut x641: u32 = 0;
> +-    let mut x642: fiat_p384_scalar_u1 = 0;
> +     let (x641, x642) = fiat_p384_scalar_addcarryx_u32(x640, x569, x616);
> +-    let mut x643: u32 = 0;
> +-    let mut x644: fiat_p384_scalar_u1 = 0;
> +     let (x643, x644) = fiat_p384_scalar_addcarryx_u32(x642, x571, x618);
> +-    let mut x645: u32 = 0;
> +-    let mut x646: fiat_p384_scalar_u1 = 0;
> +     let (x645, x646) = fiat_p384_scalar_addcarryx_u32(x644, x573, x620);
> +-    let mut x647: u32 = 0;
> +-    let mut x648: fiat_p384_scalar_u1 = 0;
> +     let (x647, x648) = fiat_p384_scalar_addcarryx_u32(x646, x575, x622);
> +-    let mut x649: u32 = 0;
> +-    let mut x650: fiat_p384_scalar_u1 = 0;
> +     let (x649, x650) = fiat_p384_scalar_addcarryx_u32(x648, x577, x624);
> +-    let mut x651: u32 = 0;
> +-    let mut x652: fiat_p384_scalar_u1 = 0;
> +     let (x651, x652) = fiat_p384_scalar_addcarryx_u32(x650, x579, x626);
> +-    let mut x653: u32 = 0;
> +-    let mut x654: fiat_p384_scalar_u1 = 0;
> +     let (x653, x654) = fiat_p384_scalar_addcarryx_u32(x652, x581, x628);
> +-    let mut x655: u32 = 0;
> +-    let mut x656: u32 = 0;
> +     let (x655, x656) = fiat_p384_scalar_mulx_u32(x629, 0xe88fdc45);
> +-    let mut x657: u32 = 0;
> +-    let mut x658: u32 = 0;
> +     let (x657, x658) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x659: u32 = 0;
> +-    let mut x660: u32 = 0;
> +     let (x659, x660) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x661: u32 = 0;
> +-    let mut x662: u32 = 0;
> +     let (x661, x662) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x663: u32 = 0;
> +-    let mut x664: u32 = 0;
> +     let (x663, x664) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x665: u32 = 0;
> +-    let mut x666: u32 = 0;
> +     let (x665, x666) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x667: u32 = 0;
> +-    let mut x668: u32 = 0;
> +     let (x667, x668) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x669: u32 = 0;
> +-    let mut x670: u32 = 0;
> +     let (x669, x670) = fiat_p384_scalar_mulx_u32(x655, 0xc7634d81);
> +-    let mut x671: u32 = 0;
> +-    let mut x672: u32 = 0;
> +     let (x671, x672) = fiat_p384_scalar_mulx_u32(x655, 0xf4372ddf);
> +-    let mut x673: u32 = 0;
> +-    let mut x674: u32 = 0;
> +     let (x673, x674) = fiat_p384_scalar_mulx_u32(x655, 0x581a0db2);
> +-    let mut x675: u32 = 0;
> +-    let mut x676: u32 = 0;
> +     let (x675, x676) = fiat_p384_scalar_mulx_u32(x655, 0x48b0a77a);
> +-    let mut x677: u32 = 0;
> +-    let mut x678: u32 = 0;
> +     let (x677, x678) = fiat_p384_scalar_mulx_u32(x655, 0xecec196a);
> +-    let mut x679: u32 = 0;
> +-    let mut x680: u32 = 0;
> +     let (x679, x680) = fiat_p384_scalar_mulx_u32(x655, 0xccc52973);
> +-    let mut x681: u32 = 0;
> +-    let mut x682: fiat_p384_scalar_u1 = 0;
> +     let (x681, x682) = fiat_p384_scalar_addcarryx_u32(0x0, x680, x677);
> +-    let mut x683: u32 = 0;
> +-    let mut x684: fiat_p384_scalar_u1 = 0;
> +     let (x683, x684) = fiat_p384_scalar_addcarryx_u32(x682, x678, x675);
> +-    let mut x685: u32 = 0;
> +-    let mut x686: fiat_p384_scalar_u1 = 0;
> +     let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x676, x673);
> +-    let mut x687: u32 = 0;
> +-    let mut x688: fiat_p384_scalar_u1 = 0;
> +     let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x674, x671);
> +-    let mut x689: u32 = 0;
> +-    let mut x690: fiat_p384_scalar_u1 = 0;
> +     let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x672, x669);
> +-    let mut x691: u32 = 0;
> +-    let mut x692: fiat_p384_scalar_u1 = 0;
> +     let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x670, x667);
> +-    let mut x693: u32 = 0;
> +-    let mut x694: fiat_p384_scalar_u1 = 0;
> +     let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x668, x665);
> +-    let mut x695: u32 = 0;
> +-    let mut x696: fiat_p384_scalar_u1 = 0;
> +     let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x666, x663);
> +-    let mut x697: u32 = 0;
> +-    let mut x698: fiat_p384_scalar_u1 = 0;
> +     let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x664, x661);
> +-    let mut x699: u32 = 0;
> +-    let mut x700: fiat_p384_scalar_u1 = 0;
> +     let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x662, x659);
> +-    let mut x701: u32 = 0;
> +-    let mut x702: fiat_p384_scalar_u1 = 0;
> +     let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x660, x657);
> +     let x703: u32 = ((x702 as u32) + x658);
> +-    let mut x704: u32 = 0;
> +-    let mut x705: fiat_p384_scalar_u1 = 0;
> +     let (x704, x705) = fiat_p384_scalar_addcarryx_u32(0x0, x629, x679);
> +-    let mut x706: u32 = 0;
> +-    let mut x707: fiat_p384_scalar_u1 = 0;
> +     let (x706, x707) = fiat_p384_scalar_addcarryx_u32(x705, x631, x681);
> +-    let mut x708: u32 = 0;
> +-    let mut x709: fiat_p384_scalar_u1 = 0;
> +     let (x708, x709) = fiat_p384_scalar_addcarryx_u32(x707, x633, x683);
> +-    let mut x710: u32 = 0;
> +-    let mut x711: fiat_p384_scalar_u1 = 0;
> +     let (x710, x711) = fiat_p384_scalar_addcarryx_u32(x709, x635, x685);
> +-    let mut x712: u32 = 0;
> +-    let mut x713: fiat_p384_scalar_u1 = 0;
> +     let (x712, x713) = fiat_p384_scalar_addcarryx_u32(x711, x637, x687);
> +-    let mut x714: u32 = 0;
> +-    let mut x715: fiat_p384_scalar_u1 = 0;
> +     let (x714, x715) = fiat_p384_scalar_addcarryx_u32(x713, x639, x689);
> +-    let mut x716: u32 = 0;
> +-    let mut x717: fiat_p384_scalar_u1 = 0;
> +     let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x641, x691);
> +-    let mut x718: u32 = 0;
> +-    let mut x719: fiat_p384_scalar_u1 = 0;
> +     let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x643, x693);
> +-    let mut x720: u32 = 0;
> +-    let mut x721: fiat_p384_scalar_u1 = 0;
> +     let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x645, x695);
> +-    let mut x722: u32 = 0;
> +-    let mut x723: fiat_p384_scalar_u1 = 0;
> +     let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x647, x697);
> +-    let mut x724: u32 = 0;
> +-    let mut x725: fiat_p384_scalar_u1 = 0;
> +     let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x649, x699);
> +-    let mut x726: u32 = 0;
> +-    let mut x727: fiat_p384_scalar_u1 = 0;
> +     let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x651, x701);
> +-    let mut x728: u32 = 0;
> +-    let mut x729: fiat_p384_scalar_u1 = 0;
> +     let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x653, x703);
> +     let x730: u32 = ((x729 as u32) + (x654 as u32));
> +-    let mut x731: u32 = 0;
> +-    let mut x732: u32 = 0;
> +     let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, (arg2[11]));
> +-    let mut x733: u32 = 0;
> +-    let mut x734: u32 = 0;
> +     let (x733, x734) = fiat_p384_scalar_mulx_u32(x5, (arg2[10]));
> +-    let mut x735: u32 = 0;
> +-    let mut x736: u32 = 0;
> +     let (x735, x736) = fiat_p384_scalar_mulx_u32(x5, (arg2[9]));
> +-    let mut x737: u32 = 0;
> +-    let mut x738: u32 = 0;
> +     let (x737, x738) = fiat_p384_scalar_mulx_u32(x5, (arg2[8]));
> +-    let mut x739: u32 = 0;
> +-    let mut x740: u32 = 0;
> +     let (x739, x740) = fiat_p384_scalar_mulx_u32(x5, (arg2[7]));
> +-    let mut x741: u32 = 0;
> +-    let mut x742: u32 = 0;
> +     let (x741, x742) = fiat_p384_scalar_mulx_u32(x5, (arg2[6]));
> +-    let mut x743: u32 = 0;
> +-    let mut x744: u32 = 0;
> +     let (x743, x744) = fiat_p384_scalar_mulx_u32(x5, (arg2[5]));
> +-    let mut x745: u32 = 0;
> +-    let mut x746: u32 = 0;
> +     let (x745, x746) = fiat_p384_scalar_mulx_u32(x5, (arg2[4]));
> +-    let mut x747: u32 = 0;
> +-    let mut x748: u32 = 0;
> +     let (x747, x748) = fiat_p384_scalar_mulx_u32(x5, (arg2[3]));
> +-    let mut x749: u32 = 0;
> +-    let mut x750: u32 = 0;
> +     let (x749, x750) = fiat_p384_scalar_mulx_u32(x5, (arg2[2]));
> +-    let mut x751: u32 = 0;
> +-    let mut x752: u32 = 0;
> +     let (x751, x752) = fiat_p384_scalar_mulx_u32(x5, (arg2[1]));
> +-    let mut x753: u32 = 0;
> +-    let mut x754: u32 = 0;
> +     let (x753, x754) = fiat_p384_scalar_mulx_u32(x5, (arg2[0]));
> +-    let mut x755: u32 = 0;
> +-    let mut x756: fiat_p384_scalar_u1 = 0;
> +     let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x754, x751);
> +-    let mut x757: u32 = 0;
> +-    let mut x758: fiat_p384_scalar_u1 = 0;
> +     let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x752, x749);
> +-    let mut x759: u32 = 0;
> +-    let mut x760: fiat_p384_scalar_u1 = 0;
> +     let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x750, x747);
> +-    let mut x761: u32 = 0;
> +-    let mut x762: fiat_p384_scalar_u1 = 0;
> +     let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x748, x745);
> +-    let mut x763: u32 = 0;
> +-    let mut x764: fiat_p384_scalar_u1 = 0;
> +     let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x746, x743);
> +-    let mut x765: u32 = 0;
> +-    let mut x766: fiat_p384_scalar_u1 = 0;
> +     let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x744, x741);
> +-    let mut x767: u32 = 0;
> +-    let mut x768: fiat_p384_scalar_u1 = 0;
> +     let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x742, x739);
> +-    let mut x769: u32 = 0;
> +-    let mut x770: fiat_p384_scalar_u1 = 0;
> +     let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x740, x737);
> +-    let mut x771: u32 = 0;
> +-    let mut x772: fiat_p384_scalar_u1 = 0;
> +     let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x738, x735);
> +-    let mut x773: u32 = 0;
> +-    let mut x774: fiat_p384_scalar_u1 = 0;
> +     let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x736, x733);
> +-    let mut x775: u32 = 0;
> +-    let mut x776: fiat_p384_scalar_u1 = 0;
> +     let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x734, x731);
> +     let x777: u32 = ((x776 as u32) + x732);
> +-    let mut x778: u32 = 0;
> +-    let mut x779: fiat_p384_scalar_u1 = 0;
> +     let (x778, x779) = fiat_p384_scalar_addcarryx_u32(0x0, x706, x753);
> +-    let mut x780: u32 = 0;
> +-    let mut x781: fiat_p384_scalar_u1 = 0;
> +     let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x708, x755);
> +-    let mut x782: u32 = 0;
> +-    let mut x783: fiat_p384_scalar_u1 = 0;
> +     let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x710, x757);
> +-    let mut x784: u32 = 0;
> +-    let mut x785: fiat_p384_scalar_u1 = 0;
> +     let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x712, x759);
> +-    let mut x786: u32 = 0;
> +-    let mut x787: fiat_p384_scalar_u1 = 0;
> +     let (x786, x787) = fiat_p384_scalar_addcarryx_u32(x785, x714, x761);
> +-    let mut x788: u32 = 0;
> +-    let mut x789: fiat_p384_scalar_u1 = 0;
> +     let (x788, x789) = fiat_p384_scalar_addcarryx_u32(x787, x716, x763);
> +-    let mut x790: u32 = 0;
> +-    let mut x791: fiat_p384_scalar_u1 = 0;
> +     let (x790, x791) = fiat_p384_scalar_addcarryx_u32(x789, x718, x765);
> +-    let mut x792: u32 = 0;
> +-    let mut x793: fiat_p384_scalar_u1 = 0;
> +     let (x792, x793) = fiat_p384_scalar_addcarryx_u32(x791, x720, x767);
> +-    let mut x794: u32 = 0;
> +-    let mut x795: fiat_p384_scalar_u1 = 0;
> +     let (x794, x795) = fiat_p384_scalar_addcarryx_u32(x793, x722, x769);
> +-    let mut x796: u32 = 0;
> +-    let mut x797: fiat_p384_scalar_u1 = 0;
> +     let (x796, x797) = fiat_p384_scalar_addcarryx_u32(x795, x724, x771);
> +-    let mut x798: u32 = 0;
> +-    let mut x799: fiat_p384_scalar_u1 = 0;
> +     let (x798, x799) = fiat_p384_scalar_addcarryx_u32(x797, x726, x773);
> +-    let mut x800: u32 = 0;
> +-    let mut x801: fiat_p384_scalar_u1 = 0;
> +     let (x800, x801) = fiat_p384_scalar_addcarryx_u32(x799, x728, x775);
> +-    let mut x802: u32 = 0;
> +-    let mut x803: fiat_p384_scalar_u1 = 0;
> +     let (x802, x803) = fiat_p384_scalar_addcarryx_u32(x801, x730, x777);
> +-    let mut x804: u32 = 0;
> +-    let mut x805: u32 = 0;
> +     let (x804, x805) = fiat_p384_scalar_mulx_u32(x778, 0xe88fdc45);
> +-    let mut x806: u32 = 0;
> +-    let mut x807: u32 = 0;
> +     let (x806, x807) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x808: u32 = 0;
> +-    let mut x809: u32 = 0;
> +     let (x808, x809) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x810: u32 = 0;
> +-    let mut x811: u32 = 0;
> +     let (x810, x811) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x812: u32 = 0;
> +-    let mut x813: u32 = 0;
> +     let (x812, x813) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x814: u32 = 0;
> +-    let mut x815: u32 = 0;
> +     let (x814, x815) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x816: u32 = 0;
> +-    let mut x817: u32 = 0;
> +     let (x816, x817) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x818: u32 = 0;
> +-    let mut x819: u32 = 0;
> +     let (x818, x819) = fiat_p384_scalar_mulx_u32(x804, 0xc7634d81);
> +-    let mut x820: u32 = 0;
> +-    let mut x821: u32 = 0;
> +     let (x820, x821) = fiat_p384_scalar_mulx_u32(x804, 0xf4372ddf);
> +-    let mut x822: u32 = 0;
> +-    let mut x823: u32 = 0;
> +     let (x822, x823) = fiat_p384_scalar_mulx_u32(x804, 0x581a0db2);
> +-    let mut x824: u32 = 0;
> +-    let mut x825: u32 = 0;
> +     let (x824, x825) = fiat_p384_scalar_mulx_u32(x804, 0x48b0a77a);
> +-    let mut x826: u32 = 0;
> +-    let mut x827: u32 = 0;
> +     let (x826, x827) = fiat_p384_scalar_mulx_u32(x804, 0xecec196a);
> +-    let mut x828: u32 = 0;
> +-    let mut x829: u32 = 0;
> +     let (x828, x829) = fiat_p384_scalar_mulx_u32(x804, 0xccc52973);
> +-    let mut x830: u32 = 0;
> +-    let mut x831: fiat_p384_scalar_u1 = 0;
> +     let (x830, x831) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x826);
> +-    let mut x832: u32 = 0;
> +-    let mut x833: fiat_p384_scalar_u1 = 0;
> +     let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x827, x824);
> +-    let mut x834: u32 = 0;
> +-    let mut x835: fiat_p384_scalar_u1 = 0;
> +     let (x834, x835) = fiat_p384_scalar_addcarryx_u32(x833, x825, x822);
> +-    let mut x836: u32 = 0;
> +-    let mut x837: fiat_p384_scalar_u1 = 0;
> +     let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x823, x820);
> +-    let mut x838: u32 = 0;
> +-    let mut x839: fiat_p384_scalar_u1 = 0;
> +     let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x821, x818);
> +-    let mut x840: u32 = 0;
> +-    let mut x841: fiat_p384_scalar_u1 = 0;
> +     let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x819, x816);
> +-    let mut x842: u32 = 0;
> +-    let mut x843: fiat_p384_scalar_u1 = 0;
> +     let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x817, x814);
> +-    let mut x844: u32 = 0;
> +-    let mut x845: fiat_p384_scalar_u1 = 0;
> +     let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x815, x812);
> +-    let mut x846: u32 = 0;
> +-    let mut x847: fiat_p384_scalar_u1 = 0;
> +     let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x813, x810);
> +-    let mut x848: u32 = 0;
> +-    let mut x849: fiat_p384_scalar_u1 = 0;
> +     let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x811, x808);
> +-    let mut x850: u32 = 0;
> +-    let mut x851: fiat_p384_scalar_u1 = 0;
> +     let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x809, x806);
> +     let x852: u32 = ((x851 as u32) + x807);
> +-    let mut x853: u32 = 0;
> +-    let mut x854: fiat_p384_scalar_u1 = 0;
> +     let (x853, x854) = fiat_p384_scalar_addcarryx_u32(0x0, x778, x828);
> +-    let mut x855: u32 = 0;
> +-    let mut x856: fiat_p384_scalar_u1 = 0;
> +     let (x855, x856) = fiat_p384_scalar_addcarryx_u32(x854, x780, x830);
> +-    let mut x857: u32 = 0;
> +-    let mut x858: fiat_p384_scalar_u1 = 0;
> +     let (x857, x858) = fiat_p384_scalar_addcarryx_u32(x856, x782, x832);
> +-    let mut x859: u32 = 0;
> +-    let mut x860: fiat_p384_scalar_u1 = 0;
> +     let (x859, x860) = fiat_p384_scalar_addcarryx_u32(x858, x784, x834);
> +-    let mut x861: u32 = 0;
> +-    let mut x862: fiat_p384_scalar_u1 = 0;
> +     let (x861, x862) = fiat_p384_scalar_addcarryx_u32(x860, x786, x836);
> +-    let mut x863: u32 = 0;
> +-    let mut x864: fiat_p384_scalar_u1 = 0;
> +     let (x863, x864) = fiat_p384_scalar_addcarryx_u32(x862, x788, x838);
> +-    let mut x865: u32 = 0;
> +-    let mut x866: fiat_p384_scalar_u1 = 0;
> +     let (x865, x866) = fiat_p384_scalar_addcarryx_u32(x864, x790, x840);
> +-    let mut x867: u32 = 0;
> +-    let mut x868: fiat_p384_scalar_u1 = 0;
> +     let (x867, x868) = fiat_p384_scalar_addcarryx_u32(x866, x792, x842);
> +-    let mut x869: u32 = 0;
> +-    let mut x870: fiat_p384_scalar_u1 = 0;
> +     let (x869, x870) = fiat_p384_scalar_addcarryx_u32(x868, x794, x844);
> +-    let mut x871: u32 = 0;
> +-    let mut x872: fiat_p384_scalar_u1 = 0;
> +     let (x871, x872) = fiat_p384_scalar_addcarryx_u32(x870, x796, x846);
> +-    let mut x873: u32 = 0;
> +-    let mut x874: fiat_p384_scalar_u1 = 0;
> +     let (x873, x874) = fiat_p384_scalar_addcarryx_u32(x872, x798, x848);
> +-    let mut x875: u32 = 0;
> +-    let mut x876: fiat_p384_scalar_u1 = 0;
> +     let (x875, x876) = fiat_p384_scalar_addcarryx_u32(x874, x800, x850);
> +-    let mut x877: u32 = 0;
> +-    let mut x878: fiat_p384_scalar_u1 = 0;
> +     let (x877, x878) = fiat_p384_scalar_addcarryx_u32(x876, x802, x852);
> +     let x879: u32 = ((x878 as u32) + (x803 as u32));
> +-    let mut x880: u32 = 0;
> +-    let mut x881: u32 = 0;
> +     let (x880, x881) = fiat_p384_scalar_mulx_u32(x6, (arg2[11]));
> +-    let mut x882: u32 = 0;
> +-    let mut x883: u32 = 0;
> +     let (x882, x883) = fiat_p384_scalar_mulx_u32(x6, (arg2[10]));
> +-    let mut x884: u32 = 0;
> +-    let mut x885: u32 = 0;
> +     let (x884, x885) = fiat_p384_scalar_mulx_u32(x6, (arg2[9]));
> +-    let mut x886: u32 = 0;
> +-    let mut x887: u32 = 0;
> +     let (x886, x887) = fiat_p384_scalar_mulx_u32(x6, (arg2[8]));
> +-    let mut x888: u32 = 0;
> +-    let mut x889: u32 = 0;
> +     let (x888, x889) = fiat_p384_scalar_mulx_u32(x6, (arg2[7]));
> +-    let mut x890: u32 = 0;
> +-    let mut x891: u32 = 0;
> +     let (x890, x891) = fiat_p384_scalar_mulx_u32(x6, (arg2[6]));
> +-    let mut x892: u32 = 0;
> +-    let mut x893: u32 = 0;
> +     let (x892, x893) = fiat_p384_scalar_mulx_u32(x6, (arg2[5]));
> +-    let mut x894: u32 = 0;
> +-    let mut x895: u32 = 0;
> +     let (x894, x895) = fiat_p384_scalar_mulx_u32(x6, (arg2[4]));
> +-    let mut x896: u32 = 0;
> +-    let mut x897: u32 = 0;
> +     let (x896, x897) = fiat_p384_scalar_mulx_u32(x6, (arg2[3]));
> +-    let mut x898: u32 = 0;
> +-    let mut x899: u32 = 0;
> +     let (x898, x899) = fiat_p384_scalar_mulx_u32(x6, (arg2[2]));
> +-    let mut x900: u32 = 0;
> +-    let mut x901: u32 = 0;
> +     let (x900, x901) = fiat_p384_scalar_mulx_u32(x6, (arg2[1]));
> +-    let mut x902: u32 = 0;
> +-    let mut x903: u32 = 0;
> +     let (x902, x903) = fiat_p384_scalar_mulx_u32(x6, (arg2[0]));
> +-    let mut x904: u32 = 0;
> +-    let mut x905: fiat_p384_scalar_u1 = 0;
> +     let (x904, x905) = fiat_p384_scalar_addcarryx_u32(0x0, x903, x900);
> +-    let mut x906: u32 = 0;
> +-    let mut x907: fiat_p384_scalar_u1 = 0;
> +     let (x906, x907) = fiat_p384_scalar_addcarryx_u32(x905, x901, x898);
> +-    let mut x908: u32 = 0;
> +-    let mut x909: fiat_p384_scalar_u1 = 0;
> +     let (x908, x909) = fiat_p384_scalar_addcarryx_u32(x907, x899, x896);
> +-    let mut x910: u32 = 0;
> +-    let mut x911: fiat_p384_scalar_u1 = 0;
> +     let (x910, x911) = fiat_p384_scalar_addcarryx_u32(x909, x897, x894);
> +-    let mut x912: u32 = 0;
> +-    let mut x913: fiat_p384_scalar_u1 = 0;
> +     let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x895, x892);
> +-    let mut x914: u32 = 0;
> +-    let mut x915: fiat_p384_scalar_u1 = 0;
> +     let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x893, x890);
> +-    let mut x916: u32 = 0;
> +-    let mut x917: fiat_p384_scalar_u1 = 0;
> +     let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x891, x888);
> +-    let mut x918: u32 = 0;
> +-    let mut x919: fiat_p384_scalar_u1 = 0;
> +     let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x889, x886);
> +-    let mut x920: u32 = 0;
> +-    let mut x921: fiat_p384_scalar_u1 = 0;
> +     let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x887, x884);
> +-    let mut x922: u32 = 0;
> +-    let mut x923: fiat_p384_scalar_u1 = 0;
> +     let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x885, x882);
> +-    let mut x924: u32 = 0;
> +-    let mut x925: fiat_p384_scalar_u1 = 0;
> +     let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x883, x880);
> +     let x926: u32 = ((x925 as u32) + x881);
> +-    let mut x927: u32 = 0;
> +-    let mut x928: fiat_p384_scalar_u1 = 0;
> +     let (x927, x928) = fiat_p384_scalar_addcarryx_u32(0x0, x855, x902);
> +-    let mut x929: u32 = 0;
> +-    let mut x930: fiat_p384_scalar_u1 = 0;
> +     let (x929, x930) = fiat_p384_scalar_addcarryx_u32(x928, x857, x904);
> +-    let mut x931: u32 = 0;
> +-    let mut x932: fiat_p384_scalar_u1 = 0;
> +     let (x931, x932) = fiat_p384_scalar_addcarryx_u32(x930, x859, x906);
> +-    let mut x933: u32 = 0;
> +-    let mut x934: fiat_p384_scalar_u1 = 0;
> +     let (x933, x934) = fiat_p384_scalar_addcarryx_u32(x932, x861, x908);
> +-    let mut x935: u32 = 0;
> +-    let mut x936: fiat_p384_scalar_u1 = 0;
> +     let (x935, x936) = fiat_p384_scalar_addcarryx_u32(x934, x863, x910);
> +-    let mut x937: u32 = 0;
> +-    let mut x938: fiat_p384_scalar_u1 = 0;
> +     let (x937, x938) = fiat_p384_scalar_addcarryx_u32(x936, x865, x912);
> +-    let mut x939: u32 = 0;
> +-    let mut x940: fiat_p384_scalar_u1 = 0;
> +     let (x939, x940) = fiat_p384_scalar_addcarryx_u32(x938, x867, x914);
> +-    let mut x941: u32 = 0;
> +-    let mut x942: fiat_p384_scalar_u1 = 0;
> +     let (x941, x942) = fiat_p384_scalar_addcarryx_u32(x940, x869, x916);
> +-    let mut x943: u32 = 0;
> +-    let mut x944: fiat_p384_scalar_u1 = 0;
> +     let (x943, x944) = fiat_p384_scalar_addcarryx_u32(x942, x871, x918);
> +-    let mut x945: u32 = 0;
> +-    let mut x946: fiat_p384_scalar_u1 = 0;
> +     let (x945, x946) = fiat_p384_scalar_addcarryx_u32(x944, x873, x920);
> +-    let mut x947: u32 = 0;
> +-    let mut x948: fiat_p384_scalar_u1 = 0;
> +     let (x947, x948) = fiat_p384_scalar_addcarryx_u32(x946, x875, x922);
> +-    let mut x949: u32 = 0;
> +-    let mut x950: fiat_p384_scalar_u1 = 0;
> +     let (x949, x950) = fiat_p384_scalar_addcarryx_u32(x948, x877, x924);
> +-    let mut x951: u32 = 0;
> +-    let mut x952: fiat_p384_scalar_u1 = 0;
> +     let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x879, x926);
> +-    let mut x953: u32 = 0;
> +-    let mut x954: u32 = 0;
> +     let (x953, x954) = fiat_p384_scalar_mulx_u32(x927, 0xe88fdc45);
> +-    let mut x955: u32 = 0;
> +-    let mut x956: u32 = 0;
> +     let (x955, x956) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x957: u32 = 0;
> +-    let mut x958: u32 = 0;
> +     let (x957, x958) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x959: u32 = 0;
> +-    let mut x960: u32 = 0;
> +     let (x959, x960) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x961: u32 = 0;
> +-    let mut x962: u32 = 0;
> +     let (x961, x962) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x963: u32 = 0;
> +-    let mut x964: u32 = 0;
> +     let (x963, x964) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x965: u32 = 0;
> +-    let mut x966: u32 = 0;
> +     let (x965, x966) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x967: u32 = 0;
> +-    let mut x968: u32 = 0;
> +     let (x967, x968) = fiat_p384_scalar_mulx_u32(x953, 0xc7634d81);
> +-    let mut x969: u32 = 0;
> +-    let mut x970: u32 = 0;
> +     let (x969, x970) = fiat_p384_scalar_mulx_u32(x953, 0xf4372ddf);
> +-    let mut x971: u32 = 0;
> +-    let mut x972: u32 = 0;
> +     let (x971, x972) = fiat_p384_scalar_mulx_u32(x953, 0x581a0db2);
> +-    let mut x973: u32 = 0;
> +-    let mut x974: u32 = 0;
> +     let (x973, x974) = fiat_p384_scalar_mulx_u32(x953, 0x48b0a77a);
> +-    let mut x975: u32 = 0;
> +-    let mut x976: u32 = 0;
> +     let (x975, x976) = fiat_p384_scalar_mulx_u32(x953, 0xecec196a);
> +-    let mut x977: u32 = 0;
> +-    let mut x978: u32 = 0;
> +     let (x977, x978) = fiat_p384_scalar_mulx_u32(x953, 0xccc52973);
> +-    let mut x979: u32 = 0;
> +-    let mut x980: fiat_p384_scalar_u1 = 0;
> +     let (x979, x980) = fiat_p384_scalar_addcarryx_u32(0x0, x978, x975);
> +-    let mut x981: u32 = 0;
> +-    let mut x982: fiat_p384_scalar_u1 = 0;
> +     let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x976, x973);
> +-    let mut x983: u32 = 0;
> +-    let mut x984: fiat_p384_scalar_u1 = 0;
> +     let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x974, x971);
> +-    let mut x985: u32 = 0;
> +-    let mut x986: fiat_p384_scalar_u1 = 0;
> +     let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x972, x969);
> +-    let mut x987: u32 = 0;
> +-    let mut x988: fiat_p384_scalar_u1 = 0;
> +     let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x970, x967);
> +-    let mut x989: u32 = 0;
> +-    let mut x990: fiat_p384_scalar_u1 = 0;
> +     let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x968, x965);
> +-    let mut x991: u32 = 0;
> +-    let mut x992: fiat_p384_scalar_u1 = 0;
> +     let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x966, x963);
> +-    let mut x993: u32 = 0;
> +-    let mut x994: fiat_p384_scalar_u1 = 0;
> +     let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x964, x961);
> +-    let mut x995: u32 = 0;
> +-    let mut x996: fiat_p384_scalar_u1 = 0;
> +     let (x995, x996) = fiat_p384_scalar_addcarryx_u32(x994, x962, x959);
> +-    let mut x997: u32 = 0;
> +-    let mut x998: fiat_p384_scalar_u1 = 0;
> +     let (x997, x998) = fiat_p384_scalar_addcarryx_u32(x996, x960, x957);
> +-    let mut x999: u32 = 0;
> +-    let mut x1000: fiat_p384_scalar_u1 = 0;
> +     let (x999, x1000) = fiat_p384_scalar_addcarryx_u32(x998, x958, x955);
> +     let x1001: u32 = ((x1000 as u32) + x956);
> +-    let mut x1002: u32 = 0;
> +-    let mut x1003: fiat_p384_scalar_u1 = 0;
> +     let (x1002, x1003) = fiat_p384_scalar_addcarryx_u32(0x0, x927, x977);
> +-    let mut x1004: u32 = 0;
> +-    let mut x1005: fiat_p384_scalar_u1 = 0;
> +     let (x1004, x1005) = fiat_p384_scalar_addcarryx_u32(x1003, x929, x979);
> +-    let mut x1006: u32 = 0;
> +-    let mut x1007: fiat_p384_scalar_u1 = 0;
> +     let (x1006, x1007) = fiat_p384_scalar_addcarryx_u32(x1005, x931, x981);
> +-    let mut x1008: u32 = 0;
> +-    let mut x1009: fiat_p384_scalar_u1 = 0;
> +     let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(x1007, x933, x983);
> +-    let mut x1010: u32 = 0;
> +-    let mut x1011: fiat_p384_scalar_u1 = 0;
> +     let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x935, x985);
> +-    let mut x1012: u32 = 0;
> +-    let mut x1013: fiat_p384_scalar_u1 = 0;
> +     let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x937, x987);
> +-    let mut x1014: u32 = 0;
> +-    let mut x1015: fiat_p384_scalar_u1 = 0;
> +     let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x939, x989);
> +-    let mut x1016: u32 = 0;
> +-    let mut x1017: fiat_p384_scalar_u1 = 0;
> +     let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x941, x991);
> +-    let mut x1018: u32 = 0;
> +-    let mut x1019: fiat_p384_scalar_u1 = 0;
> +     let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x943, x993);
> +-    let mut x1020: u32 = 0;
> +-    let mut x1021: fiat_p384_scalar_u1 = 0;
> +     let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x945, x995);
> +-    let mut x1022: u32 = 0;
> +-    let mut x1023: fiat_p384_scalar_u1 = 0;
> +     let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x947, x997);
> +-    let mut x1024: u32 = 0;
> +-    let mut x1025: fiat_p384_scalar_u1 = 0;
> +     let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x949, x999);
> +-    let mut x1026: u32 = 0;
> +-    let mut x1027: fiat_p384_scalar_u1 = 0;
> +     let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x951, x1001);
> +     let x1028: u32 = ((x1027 as u32) + (x952 as u32));
> +-    let mut x1029: u32 = 0;
> +-    let mut x1030: u32 = 0;
> +     let (x1029, x1030) = fiat_p384_scalar_mulx_u32(x7, (arg2[11]));
> +-    let mut x1031: u32 = 0;
> +-    let mut x1032: u32 = 0;
> +     let (x1031, x1032) = fiat_p384_scalar_mulx_u32(x7, (arg2[10]));
> +-    let mut x1033: u32 = 0;
> +-    let mut x1034: u32 = 0;
> +     let (x1033, x1034) = fiat_p384_scalar_mulx_u32(x7, (arg2[9]));
> +-    let mut x1035: u32 = 0;
> +-    let mut x1036: u32 = 0;
> +     let (x1035, x1036) = fiat_p384_scalar_mulx_u32(x7, (arg2[8]));
> +-    let mut x1037: u32 = 0;
> +-    let mut x1038: u32 = 0;
> +     let (x1037, x1038) = fiat_p384_scalar_mulx_u32(x7, (arg2[7]));
> +-    let mut x1039: u32 = 0;
> +-    let mut x1040: u32 = 0;
> +     let (x1039, x1040) = fiat_p384_scalar_mulx_u32(x7, (arg2[6]));
> +-    let mut x1041: u32 = 0;
> +-    let mut x1042: u32 = 0;
> +     let (x1041, x1042) = fiat_p384_scalar_mulx_u32(x7, (arg2[5]));
> +-    let mut x1043: u32 = 0;
> +-    let mut x1044: u32 = 0;
> +     let (x1043, x1044) = fiat_p384_scalar_mulx_u32(x7, (arg2[4]));
> +-    let mut x1045: u32 = 0;
> +-    let mut x1046: u32 = 0;
> +     let (x1045, x1046) = fiat_p384_scalar_mulx_u32(x7, (arg2[3]));
> +-    let mut x1047: u32 = 0;
> +-    let mut x1048: u32 = 0;
> +     let (x1047, x1048) = fiat_p384_scalar_mulx_u32(x7, (arg2[2]));
> +-    let mut x1049: u32 = 0;
> +-    let mut x1050: u32 = 0;
> +     let (x1049, x1050) = fiat_p384_scalar_mulx_u32(x7, (arg2[1]));
> +-    let mut x1051: u32 = 0;
> +-    let mut x1052: u32 = 0;
> +     let (x1051, x1052) = fiat_p384_scalar_mulx_u32(x7, (arg2[0]));
> +-    let mut x1053: u32 = 0;
> +-    let mut x1054: fiat_p384_scalar_u1 = 0;
> +     let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(0x0, x1052, x1049);
> +-    let mut x1055: u32 = 0;
> +-    let mut x1056: fiat_p384_scalar_u1 = 0;
> +     let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x1050, x1047);
> +-    let mut x1057: u32 = 0;
> +-    let mut x1058: fiat_p384_scalar_u1 = 0;
> +     let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x1048, x1045);
> +-    let mut x1059: u32 = 0;
> +-    let mut x1060: fiat_p384_scalar_u1 = 0;
> +     let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x1046, x1043);
> +-    let mut x1061: u32 = 0;
> +-    let mut x1062: fiat_p384_scalar_u1 = 0;
> +     let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x1044, x1041);
> +-    let mut x1063: u32 = 0;
> +-    let mut x1064: fiat_p384_scalar_u1 = 0;
> +     let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x1042, x1039);
> +-    let mut x1065: u32 = 0;
> +-    let mut x1066: fiat_p384_scalar_u1 = 0;
> +     let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x1040, x1037);
> +-    let mut x1067: u32 = 0;
> +-    let mut x1068: fiat_p384_scalar_u1 = 0;
> +     let (x1067, x1068) = fiat_p384_scalar_addcarryx_u32(x1066, x1038, x1035);
> +-    let mut x1069: u32 = 0;
> +-    let mut x1070: fiat_p384_scalar_u1 = 0;
> +     let (x1069, x1070) = fiat_p384_scalar_addcarryx_u32(x1068, x1036, x1033);
> +-    let mut x1071: u32 = 0;
> +-    let mut x1072: fiat_p384_scalar_u1 = 0;
> +     let (x1071, x1072) = fiat_p384_scalar_addcarryx_u32(x1070, x1034, x1031);
> +-    let mut x1073: u32 = 0;
> +-    let mut x1074: fiat_p384_scalar_u1 = 0;
> +     let (x1073, x1074) = fiat_p384_scalar_addcarryx_u32(x1072, x1032, x1029);
> +     let x1075: u32 = ((x1074 as u32) + x1030);
> +-    let mut x1076: u32 = 0;
> +-    let mut x1077: fiat_p384_scalar_u1 = 0;
> +     let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(0x0, x1004, x1051);
> +-    let mut x1078: u32 = 0;
> +-    let mut x1079: fiat_p384_scalar_u1 = 0;
> +     let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1006, x1053);
> +-    let mut x1080: u32 = 0;
> +-    let mut x1081: fiat_p384_scalar_u1 = 0;
> +     let (x1080, x1081) = fiat_p384_scalar_addcarryx_u32(x1079, x1008, x1055);
> +-    let mut x1082: u32 = 0;
> +-    let mut x1083: fiat_p384_scalar_u1 = 0;
> +     let (x1082, x1083) = fiat_p384_scalar_addcarryx_u32(x1081, x1010, x1057);
> +-    let mut x1084: u32 = 0;
> +-    let mut x1085: fiat_p384_scalar_u1 = 0;
> +     let (x1084, x1085) = fiat_p384_scalar_addcarryx_u32(x1083, x1012, x1059);
> +-    let mut x1086: u32 = 0;
> +-    let mut x1087: fiat_p384_scalar_u1 = 0;
> +     let (x1086, x1087) = fiat_p384_scalar_addcarryx_u32(x1085, x1014, x1061);
> +-    let mut x1088: u32 = 0;
> +-    let mut x1089: fiat_p384_scalar_u1 = 0;
> +     let (x1088, x1089) = fiat_p384_scalar_addcarryx_u32(x1087, x1016, x1063);
> +-    let mut x1090: u32 = 0;
> +-    let mut x1091: fiat_p384_scalar_u1 = 0;
> +     let (x1090, x1091) = fiat_p384_scalar_addcarryx_u32(x1089, x1018, x1065);
> +-    let mut x1092: u32 = 0;
> +-    let mut x1093: fiat_p384_scalar_u1 = 0;
> +     let (x1092, x1093) = fiat_p384_scalar_addcarryx_u32(x1091, x1020, x1067);
> +-    let mut x1094: u32 = 0;
> +-    let mut x1095: fiat_p384_scalar_u1 = 0;
> +     let (x1094, x1095) = fiat_p384_scalar_addcarryx_u32(x1093, x1022, x1069);
> +-    let mut x1096: u32 = 0;
> +-    let mut x1097: fiat_p384_scalar_u1 = 0;
> +     let (x1096, x1097) = fiat_p384_scalar_addcarryx_u32(x1095, x1024, x1071);
> +-    let mut x1098: u32 = 0;
> +-    let mut x1099: fiat_p384_scalar_u1 = 0;
> +     let (x1098, x1099) = fiat_p384_scalar_addcarryx_u32(x1097, x1026, x1073);
> +-    let mut x1100: u32 = 0;
> +-    let mut x1101: fiat_p384_scalar_u1 = 0;
> +     let (x1100, x1101) = fiat_p384_scalar_addcarryx_u32(x1099, x1028, x1075);
> +-    let mut x1102: u32 = 0;
> +-    let mut x1103: u32 = 0;
> +     let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1076, 0xe88fdc45);
> +-    let mut x1104: u32 = 0;
> +-    let mut x1105: u32 = 0;
> +     let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1106: u32 = 0;
> +-    let mut x1107: u32 = 0;
> +     let (x1106, x1107) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1108: u32 = 0;
> +-    let mut x1109: u32 = 0;
> +     let (x1108, x1109) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1110: u32 = 0;
> +-    let mut x1111: u32 = 0;
> +     let (x1110, x1111) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1112: u32 = 0;
> +-    let mut x1113: u32 = 0;
> +     let (x1112, x1113) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1114: u32 = 0;
> +-    let mut x1115: u32 = 0;
> +     let (x1114, x1115) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1116: u32 = 0;
> +-    let mut x1117: u32 = 0;
> +     let (x1116, x1117) = fiat_p384_scalar_mulx_u32(x1102, 0xc7634d81);
> +-    let mut x1118: u32 = 0;
> +-    let mut x1119: u32 = 0;
> +     let (x1118, x1119) = fiat_p384_scalar_mulx_u32(x1102, 0xf4372ddf);
> +-    let mut x1120: u32 = 0;
> +-    let mut x1121: u32 = 0;
> +     let (x1120, x1121) = fiat_p384_scalar_mulx_u32(x1102, 0x581a0db2);
> +-    let mut x1122: u32 = 0;
> +-    let mut x1123: u32 = 0;
> +     let (x1122, x1123) = fiat_p384_scalar_mulx_u32(x1102, 0x48b0a77a);
> +-    let mut x1124: u32 = 0;
> +-    let mut x1125: u32 = 0;
> +     let (x1124, x1125) = fiat_p384_scalar_mulx_u32(x1102, 0xecec196a);
> +-    let mut x1126: u32 = 0;
> +-    let mut x1127: u32 = 0;
> +     let (x1126, x1127) = fiat_p384_scalar_mulx_u32(x1102, 0xccc52973);
> +-    let mut x1128: u32 = 0;
> +-    let mut x1129: fiat_p384_scalar_u1 = 0;
> +     let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1127, x1124);
> +-    let mut x1130: u32 = 0;
> +-    let mut x1131: fiat_p384_scalar_u1 = 0;
> +     let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1125, x1122);
> +-    let mut x1132: u32 = 0;
> +-    let mut x1133: fiat_p384_scalar_u1 = 0;
> +     let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1123, x1120);
> +-    let mut x1134: u32 = 0;
> +-    let mut x1135: fiat_p384_scalar_u1 = 0;
> +     let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1121, x1118);
> +-    let mut x1136: u32 = 0;
> +-    let mut x1137: fiat_p384_scalar_u1 = 0;
> +     let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1119, x1116);
> +-    let mut x1138: u32 = 0;
> +-    let mut x1139: fiat_p384_scalar_u1 = 0;
> +     let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1117, x1114);
> +-    let mut x1140: u32 = 0;
> +-    let mut x1141: fiat_p384_scalar_u1 = 0;
> +     let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1115, x1112);
> +-    let mut x1142: u32 = 0;
> +-    let mut x1143: fiat_p384_scalar_u1 = 0;
> +     let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1113, x1110);
> +-    let mut x1144: u32 = 0;
> +-    let mut x1145: fiat_p384_scalar_u1 = 0;
> +     let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1111, x1108);
> +-    let mut x1146: u32 = 0;
> +-    let mut x1147: fiat_p384_scalar_u1 = 0;
> +     let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1109, x1106);
> +-    let mut x1148: u32 = 0;
> +-    let mut x1149: fiat_p384_scalar_u1 = 0;
> +     let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1107, x1104);
> +     let x1150: u32 = ((x1149 as u32) + x1105);
> +-    let mut x1151: u32 = 0;
> +-    let mut x1152: fiat_p384_scalar_u1 = 0;
> +     let (x1151, x1152) = fiat_p384_scalar_addcarryx_u32(0x0, x1076, x1126);
> +-    let mut x1153: u32 = 0;
> +-    let mut x1154: fiat_p384_scalar_u1 = 0;
> +     let (x1153, x1154) = fiat_p384_scalar_addcarryx_u32(x1152, x1078, x1128);
> +-    let mut x1155: u32 = 0;
> +-    let mut x1156: fiat_p384_scalar_u1 = 0;
> +     let (x1155, x1156) = fiat_p384_scalar_addcarryx_u32(x1154, x1080, x1130);
> +-    let mut x1157: u32 = 0;
> +-    let mut x1158: fiat_p384_scalar_u1 = 0;
> +     let (x1157, x1158) = fiat_p384_scalar_addcarryx_u32(x1156, x1082, x1132);
> +-    let mut x1159: u32 = 0;
> +-    let mut x1160: fiat_p384_scalar_u1 = 0;
> +     let (x1159, x1160) = fiat_p384_scalar_addcarryx_u32(x1158, x1084, x1134);
> +-    let mut x1161: u32 = 0;
> +-    let mut x1162: fiat_p384_scalar_u1 = 0;
> +     let (x1161, x1162) = fiat_p384_scalar_addcarryx_u32(x1160, x1086, x1136);
> +-    let mut x1163: u32 = 0;
> +-    let mut x1164: fiat_p384_scalar_u1 = 0;
> +     let (x1163, x1164) = fiat_p384_scalar_addcarryx_u32(x1162, x1088, x1138);
> +-    let mut x1165: u32 = 0;
> +-    let mut x1166: fiat_p384_scalar_u1 = 0;
> +     let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(x1164, x1090, x1140);
> +-    let mut x1167: u32 = 0;
> +-    let mut x1168: fiat_p384_scalar_u1 = 0;
> +     let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1092, x1142);
> +-    let mut x1169: u32 = 0;
> +-    let mut x1170: fiat_p384_scalar_u1 = 0;
> +     let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1094, x1144);
> +-    let mut x1171: u32 = 0;
> +-    let mut x1172: fiat_p384_scalar_u1 = 0;
> +     let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1096, x1146);
> +-    let mut x1173: u32 = 0;
> +-    let mut x1174: fiat_p384_scalar_u1 = 0;
> +     let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1098, x1148);
> +-    let mut x1175: u32 = 0;
> +-    let mut x1176: fiat_p384_scalar_u1 = 0;
> +     let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1100, x1150);
> +     let x1177: u32 = ((x1176 as u32) + (x1101 as u32));
> +-    let mut x1178: u32 = 0;
> +-    let mut x1179: u32 = 0;
> +     let (x1178, x1179) = fiat_p384_scalar_mulx_u32(x8, (arg2[11]));
> +-    let mut x1180: u32 = 0;
> +-    let mut x1181: u32 = 0;
> +     let (x1180, x1181) = fiat_p384_scalar_mulx_u32(x8, (arg2[10]));
> +-    let mut x1182: u32 = 0;
> +-    let mut x1183: u32 = 0;
> +     let (x1182, x1183) = fiat_p384_scalar_mulx_u32(x8, (arg2[9]));
> +-    let mut x1184: u32 = 0;
> +-    let mut x1185: u32 = 0;
> +     let (x1184, x1185) = fiat_p384_scalar_mulx_u32(x8, (arg2[8]));
> +-    let mut x1186: u32 = 0;
> +-    let mut x1187: u32 = 0;
> +     let (x1186, x1187) = fiat_p384_scalar_mulx_u32(x8, (arg2[7]));
> +-    let mut x1188: u32 = 0;
> +-    let mut x1189: u32 = 0;
> +     let (x1188, x1189) = fiat_p384_scalar_mulx_u32(x8, (arg2[6]));
> +-    let mut x1190: u32 = 0;
> +-    let mut x1191: u32 = 0;
> +     let (x1190, x1191) = fiat_p384_scalar_mulx_u32(x8, (arg2[5]));
> +-    let mut x1192: u32 = 0;
> +-    let mut x1193: u32 = 0;
> +     let (x1192, x1193) = fiat_p384_scalar_mulx_u32(x8, (arg2[4]));
> +-    let mut x1194: u32 = 0;
> +-    let mut x1195: u32 = 0;
> +     let (x1194, x1195) = fiat_p384_scalar_mulx_u32(x8, (arg2[3]));
> +-    let mut x1196: u32 = 0;
> +-    let mut x1197: u32 = 0;
> +     let (x1196, x1197) = fiat_p384_scalar_mulx_u32(x8, (arg2[2]));
> +-    let mut x1198: u32 = 0;
> +-    let mut x1199: u32 = 0;
> +     let (x1198, x1199) = fiat_p384_scalar_mulx_u32(x8, (arg2[1]));
> +-    let mut x1200: u32 = 0;
> +-    let mut x1201: u32 = 0;
> +     let (x1200, x1201) = fiat_p384_scalar_mulx_u32(x8, (arg2[0]));
> +-    let mut x1202: u32 = 0;
> +-    let mut x1203: fiat_p384_scalar_u1 = 0;
> +     let (x1202, x1203) = fiat_p384_scalar_addcarryx_u32(0x0, x1201, x1198);
> +-    let mut x1204: u32 = 0;
> +-    let mut x1205: fiat_p384_scalar_u1 = 0;
> +     let (x1204, x1205) = fiat_p384_scalar_addcarryx_u32(x1203, x1199, x1196);
> +-    let mut x1206: u32 = 0;
> +-    let mut x1207: fiat_p384_scalar_u1 = 0;
> +     let (x1206, x1207) = fiat_p384_scalar_addcarryx_u32(x1205, x1197, x1194);
> +-    let mut x1208: u32 = 0;
> +-    let mut x1209: fiat_p384_scalar_u1 = 0;
> +     let (x1208, x1209) = fiat_p384_scalar_addcarryx_u32(x1207, x1195, x1192);
> +-    let mut x1210: u32 = 0;
> +-    let mut x1211: fiat_p384_scalar_u1 = 0;
> +     let (x1210, x1211) = fiat_p384_scalar_addcarryx_u32(x1209, x1193, x1190);
> +-    let mut x1212: u32 = 0;
> +-    let mut x1213: fiat_p384_scalar_u1 = 0;
> +     let (x1212, x1213) = fiat_p384_scalar_addcarryx_u32(x1211, x1191, x1188);
> +-    let mut x1214: u32 = 0;
> +-    let mut x1215: fiat_p384_scalar_u1 = 0;
> +     let (x1214, x1215) = fiat_p384_scalar_addcarryx_u32(x1213, x1189, x1186);
> +-    let mut x1216: u32 = 0;
> +-    let mut x1217: fiat_p384_scalar_u1 = 0;
> +     let (x1216, x1217) = fiat_p384_scalar_addcarryx_u32(x1215, x1187, x1184);
> +-    let mut x1218: u32 = 0;
> +-    let mut x1219: fiat_p384_scalar_u1 = 0;
> +     let (x1218, x1219) = fiat_p384_scalar_addcarryx_u32(x1217, x1185, x1182);
> +-    let mut x1220: u32 = 0;
> +-    let mut x1221: fiat_p384_scalar_u1 = 0;
> +     let (x1220, x1221) = fiat_p384_scalar_addcarryx_u32(x1219, x1183, x1180);
> +-    let mut x1222: u32 = 0;
> +-    let mut x1223: fiat_p384_scalar_u1 = 0;
> +     let (x1222, x1223) = fiat_p384_scalar_addcarryx_u32(x1221, x1181, x1178);
> +     let x1224: u32 = ((x1223 as u32) + x1179);
> +-    let mut x1225: u32 = 0;
> +-    let mut x1226: fiat_p384_scalar_u1 = 0;
> +     let (x1225, x1226) = fiat_p384_scalar_addcarryx_u32(0x0, x1153, x1200);
> +-    let mut x1227: u32 = 0;
> +-    let mut x1228: fiat_p384_scalar_u1 = 0;
> +     let (x1227, x1228) = fiat_p384_scalar_addcarryx_u32(x1226, x1155, x1202);
> +-    let mut x1229: u32 = 0;
> +-    let mut x1230: fiat_p384_scalar_u1 = 0;
> +     let (x1229, x1230) = fiat_p384_scalar_addcarryx_u32(x1228, x1157, x1204);
> +-    let mut x1231: u32 = 0;
> +-    let mut x1232: fiat_p384_scalar_u1 = 0;
> +     let (x1231, x1232) = fiat_p384_scalar_addcarryx_u32(x1230, x1159, x1206);
> +-    let mut x1233: u32 = 0;
> +-    let mut x1234: fiat_p384_scalar_u1 = 0;
> +     let (x1233, x1234) = fiat_p384_scalar_addcarryx_u32(x1232, x1161, x1208);
> +-    let mut x1235: u32 = 0;
> +-    let mut x1236: fiat_p384_scalar_u1 = 0;
> +     let (x1235, x1236) = fiat_p384_scalar_addcarryx_u32(x1234, x1163, x1210);
> +-    let mut x1237: u32 = 0;
> +-    let mut x1238: fiat_p384_scalar_u1 = 0;
> +     let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(x1236, x1165, x1212);
> +-    let mut x1239: u32 = 0;
> +-    let mut x1240: fiat_p384_scalar_u1 = 0;
> +     let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1167, x1214);
> +-    let mut x1241: u32 = 0;
> +-    let mut x1242: fiat_p384_scalar_u1 = 0;
> +     let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1169, x1216);
> +-    let mut x1243: u32 = 0;
> +-    let mut x1244: fiat_p384_scalar_u1 = 0;
> +     let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1171, x1218);
> +-    let mut x1245: u32 = 0;
> +-    let mut x1246: fiat_p384_scalar_u1 = 0;
> +     let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1173, x1220);
> +-    let mut x1247: u32 = 0;
> +-    let mut x1248: fiat_p384_scalar_u1 = 0;
> +     let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1175, x1222);
> +-    let mut x1249: u32 = 0;
> +-    let mut x1250: fiat_p384_scalar_u1 = 0;
> +     let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1177, x1224);
> +-    let mut x1251: u32 = 0;
> +-    let mut x1252: u32 = 0;
> +     let (x1251, x1252) = fiat_p384_scalar_mulx_u32(x1225, 0xe88fdc45);
> +-    let mut x1253: u32 = 0;
> +-    let mut x1254: u32 = 0;
> +     let (x1253, x1254) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1255: u32 = 0;
> +-    let mut x1256: u32 = 0;
> +     let (x1255, x1256) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1257: u32 = 0;
> +-    let mut x1258: u32 = 0;
> +     let (x1257, x1258) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1259: u32 = 0;
> +-    let mut x1260: u32 = 0;
> +     let (x1259, x1260) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1261: u32 = 0;
> +-    let mut x1262: u32 = 0;
> +     let (x1261, x1262) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1263: u32 = 0;
> +-    let mut x1264: u32 = 0;
> +     let (x1263, x1264) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1265: u32 = 0;
> +-    let mut x1266: u32 = 0;
> +     let (x1265, x1266) = fiat_p384_scalar_mulx_u32(x1251, 0xc7634d81);
> +-    let mut x1267: u32 = 0;
> +-    let mut x1268: u32 = 0;
> +     let (x1267, x1268) = fiat_p384_scalar_mulx_u32(x1251, 0xf4372ddf);
> +-    let mut x1269: u32 = 0;
> +-    let mut x1270: u32 = 0;
> +     let (x1269, x1270) = fiat_p384_scalar_mulx_u32(x1251, 0x581a0db2);
> +-    let mut x1271: u32 = 0;
> +-    let mut x1272: u32 = 0;
> +     let (x1271, x1272) = fiat_p384_scalar_mulx_u32(x1251, 0x48b0a77a);
> +-    let mut x1273: u32 = 0;
> +-    let mut x1274: u32 = 0;
> +     let (x1273, x1274) = fiat_p384_scalar_mulx_u32(x1251, 0xecec196a);
> +-    let mut x1275: u32 = 0;
> +-    let mut x1276: u32 = 0;
> +     let (x1275, x1276) = fiat_p384_scalar_mulx_u32(x1251, 0xccc52973);
> +-    let mut x1277: u32 = 0;
> +-    let mut x1278: fiat_p384_scalar_u1 = 0;
> +     let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(0x0, x1276, x1273);
> +-    let mut x1279: u32 = 0;
> +-    let mut x1280: fiat_p384_scalar_u1 = 0;
> +     let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1274, x1271);
> +-    let mut x1281: u32 = 0;
> +-    let mut x1282: fiat_p384_scalar_u1 = 0;
> +     let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1272, x1269);
> +-    let mut x1283: u32 = 0;
> +-    let mut x1284: fiat_p384_scalar_u1 = 0;
> +     let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(x1282, x1270, x1267);
> +-    let mut x1285: u32 = 0;
> +-    let mut x1286: fiat_p384_scalar_u1 = 0;
> +     let (x1285, x1286) = fiat_p384_scalar_addcarryx_u32(x1284, x1268, x1265);
> +-    let mut x1287: u32 = 0;
> +-    let mut x1288: fiat_p384_scalar_u1 = 0;
> +     let (x1287, x1288) = fiat_p384_scalar_addcarryx_u32(x1286, x1266, x1263);
> +-    let mut x1289: u32 = 0;
> +-    let mut x1290: fiat_p384_scalar_u1 = 0;
> +     let (x1289, x1290) = fiat_p384_scalar_addcarryx_u32(x1288, x1264, x1261);
> +-    let mut x1291: u32 = 0;
> +-    let mut x1292: fiat_p384_scalar_u1 = 0;
> +     let (x1291, x1292) = fiat_p384_scalar_addcarryx_u32(x1290, x1262, x1259);
> +-    let mut x1293: u32 = 0;
> +-    let mut x1294: fiat_p384_scalar_u1 = 0;
> +     let (x1293, x1294) = fiat_p384_scalar_addcarryx_u32(x1292, x1260, x1257);
> +-    let mut x1295: u32 = 0;
> +-    let mut x1296: fiat_p384_scalar_u1 = 0;
> +     let (x1295, x1296) = fiat_p384_scalar_addcarryx_u32(x1294, x1258, x1255);
> +-    let mut x1297: u32 = 0;
> +-    let mut x1298: fiat_p384_scalar_u1 = 0;
> +     let (x1297, x1298) = fiat_p384_scalar_addcarryx_u32(x1296, x1256, x1253);
> +     let x1299: u32 = ((x1298 as u32) + x1254);
> +-    let mut x1300: u32 = 0;
> +-    let mut x1301: fiat_p384_scalar_u1 = 0;
> +     let (x1300, x1301) = fiat_p384_scalar_addcarryx_u32(0x0, x1225, x1275);
> +-    let mut x1302: u32 = 0;
> +-    let mut x1303: fiat_p384_scalar_u1 = 0;
> +     let (x1302, x1303) = fiat_p384_scalar_addcarryx_u32(x1301, x1227, x1277);
> +-    let mut x1304: u32 = 0;
> +-    let mut x1305: fiat_p384_scalar_u1 = 0;
> +     let (x1304, x1305) = fiat_p384_scalar_addcarryx_u32(x1303, x1229, x1279);
> +-    let mut x1306: u32 = 0;
> +-    let mut x1307: fiat_p384_scalar_u1 = 0;
> +     let (x1306, x1307) = fiat_p384_scalar_addcarryx_u32(x1305, x1231, x1281);
> +-    let mut x1308: u32 = 0;
> +-    let mut x1309: fiat_p384_scalar_u1 = 0;
> +     let (x1308, x1309) = fiat_p384_scalar_addcarryx_u32(x1307, x1233, x1283);
> +-    let mut x1310: u32 = 0;
> +-    let mut x1311: fiat_p384_scalar_u1 = 0;
> +     let (x1310, x1311) = fiat_p384_scalar_addcarryx_u32(x1309, x1235, x1285);
> +-    let mut x1312: u32 = 0;
> +-    let mut x1313: fiat_p384_scalar_u1 = 0;
> +     let (x1312, x1313) = fiat_p384_scalar_addcarryx_u32(x1311, x1237, x1287);
> +-    let mut x1314: u32 = 0;
> +-    let mut x1315: fiat_p384_scalar_u1 = 0;
> +     let (x1314, x1315) = fiat_p384_scalar_addcarryx_u32(x1313, x1239, x1289);
> +-    let mut x1316: u32 = 0;
> +-    let mut x1317: fiat_p384_scalar_u1 = 0;
> +     let (x1316, x1317) = fiat_p384_scalar_addcarryx_u32(x1315, x1241, x1291);
> +-    let mut x1318: u32 = 0;
> +-    let mut x1319: fiat_p384_scalar_u1 = 0;
> +     let (x1318, x1319) = fiat_p384_scalar_addcarryx_u32(x1317, x1243, x1293);
> +-    let mut x1320: u32 = 0;
> +-    let mut x1321: fiat_p384_scalar_u1 = 0;
> +     let (x1320, x1321) = fiat_p384_scalar_addcarryx_u32(x1319, x1245, x1295);
> +-    let mut x1322: u32 = 0;
> +-    let mut x1323: fiat_p384_scalar_u1 = 0;
> +     let (x1322, x1323) = fiat_p384_scalar_addcarryx_u32(x1321, x1247, x1297);
> +-    let mut x1324: u32 = 0;
> +-    let mut x1325: fiat_p384_scalar_u1 = 0;
> +     let (x1324, x1325) = fiat_p384_scalar_addcarryx_u32(x1323, x1249, x1299);
> +     let x1326: u32 = ((x1325 as u32) + (x1250 as u32));
> +-    let mut x1327: u32 = 0;
> +-    let mut x1328: u32 = 0;
> +     let (x1327, x1328) = fiat_p384_scalar_mulx_u32(x9, (arg2[11]));
> +-    let mut x1329: u32 = 0;
> +-    let mut x1330: u32 = 0;
> +     let (x1329, x1330) = fiat_p384_scalar_mulx_u32(x9, (arg2[10]));
> +-    let mut x1331: u32 = 0;
> +-    let mut x1332: u32 = 0;
> +     let (x1331, x1332) = fiat_p384_scalar_mulx_u32(x9, (arg2[9]));
> +-    let mut x1333: u32 = 0;
> +-    let mut x1334: u32 = 0;
> +     let (x1333, x1334) = fiat_p384_scalar_mulx_u32(x9, (arg2[8]));
> +-    let mut x1335: u32 = 0;
> +-    let mut x1336: u32 = 0;
> +     let (x1335, x1336) = fiat_p384_scalar_mulx_u32(x9, (arg2[7]));
> +-    let mut x1337: u32 = 0;
> +-    let mut x1338: u32 = 0;
> +     let (x1337, x1338) = fiat_p384_scalar_mulx_u32(x9, (arg2[6]));
> +-    let mut x1339: u32 = 0;
> +-    let mut x1340: u32 = 0;
> +     let (x1339, x1340) = fiat_p384_scalar_mulx_u32(x9, (arg2[5]));
> +-    let mut x1341: u32 = 0;
> +-    let mut x1342: u32 = 0;
> +     let (x1341, x1342) = fiat_p384_scalar_mulx_u32(x9, (arg2[4]));
> +-    let mut x1343: u32 = 0;
> +-    let mut x1344: u32 = 0;
> +     let (x1343, x1344) = fiat_p384_scalar_mulx_u32(x9, (arg2[3]));
> +-    let mut x1345: u32 = 0;
> +-    let mut x1346: u32 = 0;
> +     let (x1345, x1346) = fiat_p384_scalar_mulx_u32(x9, (arg2[2]));
> +-    let mut x1347: u32 = 0;
> +-    let mut x1348: u32 = 0;
> +     let (x1347, x1348) = fiat_p384_scalar_mulx_u32(x9, (arg2[1]));
> +-    let mut x1349: u32 = 0;
> +-    let mut x1350: u32 = 0;
> +     let (x1349, x1350) = fiat_p384_scalar_mulx_u32(x9, (arg2[0]));
> +-    let mut x1351: u32 = 0;
> +-    let mut x1352: fiat_p384_scalar_u1 = 0;
> +     let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(0x0, x1350, x1347);
> +-    let mut x1353: u32 = 0;
> +-    let mut x1354: fiat_p384_scalar_u1 = 0;
> +     let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1348, x1345);
> +-    let mut x1355: u32 = 0;
> +-    let mut x1356: fiat_p384_scalar_u1 = 0;
> +     let (x1355, x1356) = fiat_p384_scalar_addcarryx_u32(x1354, x1346, x1343);
> +-    let mut x1357: u32 = 0;
> +-    let mut x1358: fiat_p384_scalar_u1 = 0;
> +     let (x1357, x1358) = fiat_p384_scalar_addcarryx_u32(x1356, x1344, x1341);
> +-    let mut x1359: u32 = 0;
> +-    let mut x1360: fiat_p384_scalar_u1 = 0;
> +     let (x1359, x1360) = fiat_p384_scalar_addcarryx_u32(x1358, x1342, x1339);
> +-    let mut x1361: u32 = 0;
> +-    let mut x1362: fiat_p384_scalar_u1 = 0;
> +     let (x1361, x1362) = fiat_p384_scalar_addcarryx_u32(x1360, x1340, x1337);
> +-    let mut x1363: u32 = 0;
> +-    let mut x1364: fiat_p384_scalar_u1 = 0;
> +     let (x1363, x1364) = fiat_p384_scalar_addcarryx_u32(x1362, x1338, x1335);
> +-    let mut x1365: u32 = 0;
> +-    let mut x1366: fiat_p384_scalar_u1 = 0;
> +     let (x1365, x1366) = fiat_p384_scalar_addcarryx_u32(x1364, x1336, x1333);
> +-    let mut x1367: u32 = 0;
> +-    let mut x1368: fiat_p384_scalar_u1 = 0;
> +     let (x1367, x1368) = fiat_p384_scalar_addcarryx_u32(x1366, x1334, x1331);
> +-    let mut x1369: u32 = 0;
> +-    let mut x1370: fiat_p384_scalar_u1 = 0;
> +     let (x1369, x1370) = fiat_p384_scalar_addcarryx_u32(x1368, x1332, x1329);
> +-    let mut x1371: u32 = 0;
> +-    let mut x1372: fiat_p384_scalar_u1 = 0;
> +     let (x1371, x1372) = fiat_p384_scalar_addcarryx_u32(x1370, x1330, x1327);
> +     let x1373: u32 = ((x1372 as u32) + x1328);
> +-    let mut x1374: u32 = 0;
> +-    let mut x1375: fiat_p384_scalar_u1 = 0;
> +     let (x1374, x1375) = fiat_p384_scalar_addcarryx_u32(0x0, x1302, x1349);
> +-    let mut x1376: u32 = 0;
> +-    let mut x1377: fiat_p384_scalar_u1 = 0;
> +     let (x1376, x1377) = fiat_p384_scalar_addcarryx_u32(x1375, x1304, x1351);
> +-    let mut x1378: u32 = 0;
> +-    let mut x1379: fiat_p384_scalar_u1 = 0;
> +     let (x1378, x1379) = fiat_p384_scalar_addcarryx_u32(x1377, x1306, x1353);
> +-    let mut x1380: u32 = 0;
> +-    let mut x1381: fiat_p384_scalar_u1 = 0;
> +     let (x1380, x1381) = fiat_p384_scalar_addcarryx_u32(x1379, x1308, x1355);
> +-    let mut x1382: u32 = 0;
> +-    let mut x1383: fiat_p384_scalar_u1 = 0;
> +     let (x1382, x1383) = fiat_p384_scalar_addcarryx_u32(x1381, x1310, x1357);
> +-    let mut x1384: u32 = 0;
> +-    let mut x1385: fiat_p384_scalar_u1 = 0;
> +     let (x1384, x1385) = fiat_p384_scalar_addcarryx_u32(x1383, x1312, x1359);
> +-    let mut x1386: u32 = 0;
> +-    let mut x1387: fiat_p384_scalar_u1 = 0;
> +     let (x1386, x1387) = fiat_p384_scalar_addcarryx_u32(x1385, x1314, x1361);
> +-    let mut x1388: u32 = 0;
> +-    let mut x1389: fiat_p384_scalar_u1 = 0;
> +     let (x1388, x1389) = fiat_p384_scalar_addcarryx_u32(x1387, x1316, x1363);
> +-    let mut x1390: u32 = 0;
> +-    let mut x1391: fiat_p384_scalar_u1 = 0;
> +     let (x1390, x1391) = fiat_p384_scalar_addcarryx_u32(x1389, x1318, x1365);
> +-    let mut x1392: u32 = 0;
> +-    let mut x1393: fiat_p384_scalar_u1 = 0;
> +     let (x1392, x1393) = fiat_p384_scalar_addcarryx_u32(x1391, x1320, x1367);
> +-    let mut x1394: u32 = 0;
> +-    let mut x1395: fiat_p384_scalar_u1 = 0;
> +     let (x1394, x1395) = fiat_p384_scalar_addcarryx_u32(x1393, x1322, x1369);
> +-    let mut x1396: u32 = 0;
> +-    let mut x1397: fiat_p384_scalar_u1 = 0;
> +     let (x1396, x1397) = fiat_p384_scalar_addcarryx_u32(x1395, x1324, x1371);
> +-    let mut x1398: u32 = 0;
> +-    let mut x1399: fiat_p384_scalar_u1 = 0;
> +     let (x1398, x1399) = fiat_p384_scalar_addcarryx_u32(x1397, x1326, x1373);
> +-    let mut x1400: u32 = 0;
> +-    let mut x1401: u32 = 0;
> +     let (x1400, x1401) = fiat_p384_scalar_mulx_u32(x1374, 0xe88fdc45);
> +-    let mut x1402: u32 = 0;
> +-    let mut x1403: u32 = 0;
> +     let (x1402, x1403) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1404: u32 = 0;
> +-    let mut x1405: u32 = 0;
> +     let (x1404, x1405) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1406: u32 = 0;
> +-    let mut x1407: u32 = 0;
> +     let (x1406, x1407) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1408: u32 = 0;
> +-    let mut x1409: u32 = 0;
> +     let (x1408, x1409) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1410: u32 = 0;
> +-    let mut x1411: u32 = 0;
> +     let (x1410, x1411) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1412: u32 = 0;
> +-    let mut x1413: u32 = 0;
> +     let (x1412, x1413) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1414: u32 = 0;
> +-    let mut x1415: u32 = 0;
> +     let (x1414, x1415) = fiat_p384_scalar_mulx_u32(x1400, 0xc7634d81);
> +-    let mut x1416: u32 = 0;
> +-    let mut x1417: u32 = 0;
> +     let (x1416, x1417) = fiat_p384_scalar_mulx_u32(x1400, 0xf4372ddf);
> +-    let mut x1418: u32 = 0;
> +-    let mut x1419: u32 = 0;
> +     let (x1418, x1419) = fiat_p384_scalar_mulx_u32(x1400, 0x581a0db2);
> +-    let mut x1420: u32 = 0;
> +-    let mut x1421: u32 = 0;
> +     let (x1420, x1421) = fiat_p384_scalar_mulx_u32(x1400, 0x48b0a77a);
> +-    let mut x1422: u32 = 0;
> +-    let mut x1423: u32 = 0;
> +     let (x1422, x1423) = fiat_p384_scalar_mulx_u32(x1400, 0xecec196a);
> +-    let mut x1424: u32 = 0;
> +-    let mut x1425: u32 = 0;
> +     let (x1424, x1425) = fiat_p384_scalar_mulx_u32(x1400, 0xccc52973);
> +-    let mut x1426: u32 = 0;
> +-    let mut x1427: fiat_p384_scalar_u1 = 0;
> +     let (x1426, x1427) = fiat_p384_scalar_addcarryx_u32(0x0, x1425, x1422);
> +-    let mut x1428: u32 = 0;
> +-    let mut x1429: fiat_p384_scalar_u1 = 0;
> +     let (x1428, x1429) = fiat_p384_scalar_addcarryx_u32(x1427, x1423, x1420);
> +-    let mut x1430: u32 = 0;
> +-    let mut x1431: fiat_p384_scalar_u1 = 0;
> +     let (x1430, x1431) = fiat_p384_scalar_addcarryx_u32(x1429, x1421, x1418);
> +-    let mut x1432: u32 = 0;
> +-    let mut x1433: fiat_p384_scalar_u1 = 0;
> +     let (x1432, x1433) = fiat_p384_scalar_addcarryx_u32(x1431, x1419, x1416);
> +-    let mut x1434: u32 = 0;
> +-    let mut x1435: fiat_p384_scalar_u1 = 0;
> +     let (x1434, x1435) = fiat_p384_scalar_addcarryx_u32(x1433, x1417, x1414);
> +-    let mut x1436: u32 = 0;
> +-    let mut x1437: fiat_p384_scalar_u1 = 0;
> +     let (x1436, x1437) = fiat_p384_scalar_addcarryx_u32(x1435, x1415, x1412);
> +-    let mut x1438: u32 = 0;
> +-    let mut x1439: fiat_p384_scalar_u1 = 0;
> +     let (x1438, x1439) = fiat_p384_scalar_addcarryx_u32(x1437, x1413, x1410);
> +-    let mut x1440: u32 = 0;
> +-    let mut x1441: fiat_p384_scalar_u1 = 0;
> +     let (x1440, x1441) = fiat_p384_scalar_addcarryx_u32(x1439, x1411, x1408);
> +-    let mut x1442: u32 = 0;
> +-    let mut x1443: fiat_p384_scalar_u1 = 0;
> +     let (x1442, x1443) = fiat_p384_scalar_addcarryx_u32(x1441, x1409, x1406);
> +-    let mut x1444: u32 = 0;
> +-    let mut x1445: fiat_p384_scalar_u1 = 0;
> +     let (x1444, x1445) = fiat_p384_scalar_addcarryx_u32(x1443, x1407, x1404);
> +-    let mut x1446: u32 = 0;
> +-    let mut x1447: fiat_p384_scalar_u1 = 0;
> +     let (x1446, x1447) = fiat_p384_scalar_addcarryx_u32(x1445, x1405, x1402);
> +     let x1448: u32 = ((x1447 as u32) + x1403);
> +-    let mut x1449: u32 = 0;
> +-    let mut x1450: fiat_p384_scalar_u1 = 0;
> +     let (x1449, x1450) = fiat_p384_scalar_addcarryx_u32(0x0, x1374, x1424);
> +-    let mut x1451: u32 = 0;
> +-    let mut x1452: fiat_p384_scalar_u1 = 0;
> +     let (x1451, x1452) = fiat_p384_scalar_addcarryx_u32(x1450, x1376, x1426);
> +-    let mut x1453: u32 = 0;
> +-    let mut x1454: fiat_p384_scalar_u1 = 0;
> +     let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(x1452, x1378, x1428);
> +-    let mut x1455: u32 = 0;
> +-    let mut x1456: fiat_p384_scalar_u1 = 0;
> +     let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1380, x1430);
> +-    let mut x1457: u32 = 0;
> +-    let mut x1458: fiat_p384_scalar_u1 = 0;
> +     let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1382, x1432);
> +-    let mut x1459: u32 = 0;
> +-    let mut x1460: fiat_p384_scalar_u1 = 0;
> +     let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1384, x1434);
> +-    let mut x1461: u32 = 0;
> +-    let mut x1462: fiat_p384_scalar_u1 = 0;
> +     let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1386, x1436);
> +-    let mut x1463: u32 = 0;
> +-    let mut x1464: fiat_p384_scalar_u1 = 0;
> +     let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1388, x1438);
> +-    let mut x1465: u32 = 0;
> +-    let mut x1466: fiat_p384_scalar_u1 = 0;
> +     let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1390, x1440);
> +-    let mut x1467: u32 = 0;
> +-    let mut x1468: fiat_p384_scalar_u1 = 0;
> +     let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1392, x1442);
> +-    let mut x1469: u32 = 0;
> +-    let mut x1470: fiat_p384_scalar_u1 = 0;
> +     let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1394, x1444);
> +-    let mut x1471: u32 = 0;
> +-    let mut x1472: fiat_p384_scalar_u1 = 0;
> +     let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1396, x1446);
> +-    let mut x1473: u32 = 0;
> +-    let mut x1474: fiat_p384_scalar_u1 = 0;
> +     let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1398, x1448);
> +     let x1475: u32 = ((x1474 as u32) + (x1399 as u32));
> +-    let mut x1476: u32 = 0;
> +-    let mut x1477: u32 = 0;
> +     let (x1476, x1477) = fiat_p384_scalar_mulx_u32(x10, (arg2[11]));
> +-    let mut x1478: u32 = 0;
> +-    let mut x1479: u32 = 0;
> +     let (x1478, x1479) = fiat_p384_scalar_mulx_u32(x10, (arg2[10]));
> +-    let mut x1480: u32 = 0;
> +-    let mut x1481: u32 = 0;
> +     let (x1480, x1481) = fiat_p384_scalar_mulx_u32(x10, (arg2[9]));
> +-    let mut x1482: u32 = 0;
> +-    let mut x1483: u32 = 0;
> +     let (x1482, x1483) = fiat_p384_scalar_mulx_u32(x10, (arg2[8]));
> +-    let mut x1484: u32 = 0;
> +-    let mut x1485: u32 = 0;
> +     let (x1484, x1485) = fiat_p384_scalar_mulx_u32(x10, (arg2[7]));
> +-    let mut x1486: u32 = 0;
> +-    let mut x1487: u32 = 0;
> +     let (x1486, x1487) = fiat_p384_scalar_mulx_u32(x10, (arg2[6]));
> +-    let mut x1488: u32 = 0;
> +-    let mut x1489: u32 = 0;
> +     let (x1488, x1489) = fiat_p384_scalar_mulx_u32(x10, (arg2[5]));
> +-    let mut x1490: u32 = 0;
> +-    let mut x1491: u32 = 0;
> +     let (x1490, x1491) = fiat_p384_scalar_mulx_u32(x10, (arg2[4]));
> +-    let mut x1492: u32 = 0;
> +-    let mut x1493: u32 = 0;
> +     let (x1492, x1493) = fiat_p384_scalar_mulx_u32(x10, (arg2[3]));
> +-    let mut x1494: u32 = 0;
> +-    let mut x1495: u32 = 0;
> +     let (x1494, x1495) = fiat_p384_scalar_mulx_u32(x10, (arg2[2]));
> +-    let mut x1496: u32 = 0;
> +-    let mut x1497: u32 = 0;
> +     let (x1496, x1497) = fiat_p384_scalar_mulx_u32(x10, (arg2[1]));
> +-    let mut x1498: u32 = 0;
> +-    let mut x1499: u32 = 0;
> +     let (x1498, x1499) = fiat_p384_scalar_mulx_u32(x10, (arg2[0]));
> +-    let mut x1500: u32 = 0;
> +-    let mut x1501: fiat_p384_scalar_u1 = 0;
> +     let (x1500, x1501) = fiat_p384_scalar_addcarryx_u32(0x0, x1499, x1496);
> +-    let mut x1502: u32 = 0;
> +-    let mut x1503: fiat_p384_scalar_u1 = 0;
> +     let (x1502, x1503) = fiat_p384_scalar_addcarryx_u32(x1501, x1497, x1494);
> +-    let mut x1504: u32 = 0;
> +-    let mut x1505: fiat_p384_scalar_u1 = 0;
> +     let (x1504, x1505) = fiat_p384_scalar_addcarryx_u32(x1503, x1495, x1492);
> +-    let mut x1506: u32 = 0;
> +-    let mut x1507: fiat_p384_scalar_u1 = 0;
> +     let (x1506, x1507) = fiat_p384_scalar_addcarryx_u32(x1505, x1493, x1490);
> +-    let mut x1508: u32 = 0;
> +-    let mut x1509: fiat_p384_scalar_u1 = 0;
> +     let (x1508, x1509) = fiat_p384_scalar_addcarryx_u32(x1507, x1491, x1488);
> +-    let mut x1510: u32 = 0;
> +-    let mut x1511: fiat_p384_scalar_u1 = 0;
> +     let (x1510, x1511) = fiat_p384_scalar_addcarryx_u32(x1509, x1489, x1486);
> +-    let mut x1512: u32 = 0;
> +-    let mut x1513: fiat_p384_scalar_u1 = 0;
> +     let (x1512, x1513) = fiat_p384_scalar_addcarryx_u32(x1511, x1487, x1484);
> +-    let mut x1514: u32 = 0;
> +-    let mut x1515: fiat_p384_scalar_u1 = 0;
> +     let (x1514, x1515) = fiat_p384_scalar_addcarryx_u32(x1513, x1485, x1482);
> +-    let mut x1516: u32 = 0;
> +-    let mut x1517: fiat_p384_scalar_u1 = 0;
> +     let (x1516, x1517) = fiat_p384_scalar_addcarryx_u32(x1515, x1483, x1480);
> +-    let mut x1518: u32 = 0;
> +-    let mut x1519: fiat_p384_scalar_u1 = 0;
> +     let (x1518, x1519) = fiat_p384_scalar_addcarryx_u32(x1517, x1481, x1478);
> +-    let mut x1520: u32 = 0;
> +-    let mut x1521: fiat_p384_scalar_u1 = 0;
> +     let (x1520, x1521) = fiat_p384_scalar_addcarryx_u32(x1519, x1479, x1476);
> +     let x1522: u32 = ((x1521 as u32) + x1477);
> +-    let mut x1523: u32 = 0;
> +-    let mut x1524: fiat_p384_scalar_u1 = 0;
> +     let (x1523, x1524) = fiat_p384_scalar_addcarryx_u32(0x0, x1451, x1498);
> +-    let mut x1525: u32 = 0;
> +-    let mut x1526: fiat_p384_scalar_u1 = 0;
> +     let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(x1524, x1453, x1500);
> +-    let mut x1527: u32 = 0;
> +-    let mut x1528: fiat_p384_scalar_u1 = 0;
> +     let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1455, x1502);
> +-    let mut x1529: u32 = 0;
> +-    let mut x1530: fiat_p384_scalar_u1 = 0;
> +     let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1457, x1504);
> +-    let mut x1531: u32 = 0;
> +-    let mut x1532: fiat_p384_scalar_u1 = 0;
> +     let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1459, x1506);
> +-    let mut x1533: u32 = 0;
> +-    let mut x1534: fiat_p384_scalar_u1 = 0;
> +     let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1461, x1508);
> +-    let mut x1535: u32 = 0;
> +-    let mut x1536: fiat_p384_scalar_u1 = 0;
> +     let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1463, x1510);
> +-    let mut x1537: u32 = 0;
> +-    let mut x1538: fiat_p384_scalar_u1 = 0;
> +     let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1465, x1512);
> +-    let mut x1539: u32 = 0;
> +-    let mut x1540: fiat_p384_scalar_u1 = 0;
> +     let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1467, x1514);
> +-    let mut x1541: u32 = 0;
> +-    let mut x1542: fiat_p384_scalar_u1 = 0;
> +     let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1469, x1516);
> +-    let mut x1543: u32 = 0;
> +-    let mut x1544: fiat_p384_scalar_u1 = 0;
> +     let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1471, x1518);
> +-    let mut x1545: u32 = 0;
> +-    let mut x1546: fiat_p384_scalar_u1 = 0;
> +     let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1473, x1520);
> +-    let mut x1547: u32 = 0;
> +-    let mut x1548: fiat_p384_scalar_u1 = 0;
> +     let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(x1546, x1475, x1522);
> +-    let mut x1549: u32 = 0;
> +-    let mut x1550: u32 = 0;
> +     let (x1549, x1550) = fiat_p384_scalar_mulx_u32(x1523, 0xe88fdc45);
> +-    let mut x1551: u32 = 0;
> +-    let mut x1552: u32 = 0;
> +     let (x1551, x1552) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1553: u32 = 0;
> +-    let mut x1554: u32 = 0;
> +     let (x1553, x1554) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1555: u32 = 0;
> +-    let mut x1556: u32 = 0;
> +     let (x1555, x1556) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1557: u32 = 0;
> +-    let mut x1558: u32 = 0;
> +     let (x1557, x1558) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1559: u32 = 0;
> +-    let mut x1560: u32 = 0;
> +     let (x1559, x1560) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1561: u32 = 0;
> +-    let mut x1562: u32 = 0;
> +     let (x1561, x1562) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1563: u32 = 0;
> +-    let mut x1564: u32 = 0;
> +     let (x1563, x1564) = fiat_p384_scalar_mulx_u32(x1549, 0xc7634d81);
> +-    let mut x1565: u32 = 0;
> +-    let mut x1566: u32 = 0;
> +     let (x1565, x1566) = fiat_p384_scalar_mulx_u32(x1549, 0xf4372ddf);
> +-    let mut x1567: u32 = 0;
> +-    let mut x1568: u32 = 0;
> +     let (x1567, x1568) = fiat_p384_scalar_mulx_u32(x1549, 0x581a0db2);
> +-    let mut x1569: u32 = 0;
> +-    let mut x1570: u32 = 0;
> +     let (x1569, x1570) = fiat_p384_scalar_mulx_u32(x1549, 0x48b0a77a);
> +-    let mut x1571: u32 = 0;
> +-    let mut x1572: u32 = 0;
> +     let (x1571, x1572) = fiat_p384_scalar_mulx_u32(x1549, 0xecec196a);
> +-    let mut x1573: u32 = 0;
> +-    let mut x1574: u32 = 0;
> +     let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x1549, 0xccc52973);
> +-    let mut x1575: u32 = 0;
> +-    let mut x1576: fiat_p384_scalar_u1 = 0;
> +     let (x1575, x1576) = fiat_p384_scalar_addcarryx_u32(0x0, x1574, x1571);
> +-    let mut x1577: u32 = 0;
> +-    let mut x1578: fiat_p384_scalar_u1 = 0;
> +     let (x1577, x1578) = fiat_p384_scalar_addcarryx_u32(x1576, x1572, x1569);
> +-    let mut x1579: u32 = 0;
> +-    let mut x1580: fiat_p384_scalar_u1 = 0;
> +     let (x1579, x1580) = fiat_p384_scalar_addcarryx_u32(x1578, x1570, x1567);
> +-    let mut x1581: u32 = 0;
> +-    let mut x1582: fiat_p384_scalar_u1 = 0;
> +     let (x1581, x1582) = fiat_p384_scalar_addcarryx_u32(x1580, x1568, x1565);
> +-    let mut x1583: u32 = 0;
> +-    let mut x1584: fiat_p384_scalar_u1 = 0;
> +     let (x1583, x1584) = fiat_p384_scalar_addcarryx_u32(x1582, x1566, x1563);
> +-    let mut x1585: u32 = 0;
> +-    let mut x1586: fiat_p384_scalar_u1 = 0;
> +     let (x1585, x1586) = fiat_p384_scalar_addcarryx_u32(x1584, x1564, x1561);
> +-    let mut x1587: u32 = 0;
> +-    let mut x1588: fiat_p384_scalar_u1 = 0;
> +     let (x1587, x1588) = fiat_p384_scalar_addcarryx_u32(x1586, x1562, x1559);
> +-    let mut x1589: u32 = 0;
> +-    let mut x1590: fiat_p384_scalar_u1 = 0;
> +     let (x1589, x1590) = fiat_p384_scalar_addcarryx_u32(x1588, x1560, x1557);
> +-    let mut x1591: u32 = 0;
> +-    let mut x1592: fiat_p384_scalar_u1 = 0;
> +     let (x1591, x1592) = fiat_p384_scalar_addcarryx_u32(x1590, x1558, x1555);
> +-    let mut x1593: u32 = 0;
> +-    let mut x1594: fiat_p384_scalar_u1 = 0;
> +     let (x1593, x1594) = fiat_p384_scalar_addcarryx_u32(x1592, x1556, x1553);
> +-    let mut x1595: u32 = 0;
> +-    let mut x1596: fiat_p384_scalar_u1 = 0;
> +     let (x1595, x1596) = fiat_p384_scalar_addcarryx_u32(x1594, x1554, x1551);
> +     let x1597: u32 = ((x1596 as u32) + x1552);
> +-    let mut x1598: u32 = 0;
> +-    let mut x1599: fiat_p384_scalar_u1 = 0;
> +     let (x1598, x1599) = fiat_p384_scalar_addcarryx_u32(0x0, x1523, x1573);
> +-    let mut x1600: u32 = 0;
> +-    let mut x1601: fiat_p384_scalar_u1 = 0;
> +     let (x1600, x1601) = fiat_p384_scalar_addcarryx_u32(x1599, x1525, x1575);
> +-    let mut x1602: u32 = 0;
> +-    let mut x1603: fiat_p384_scalar_u1 = 0;
> +     let (x1602, x1603) = fiat_p384_scalar_addcarryx_u32(x1601, x1527, x1577);
> +-    let mut x1604: u32 = 0;
> +-    let mut x1605: fiat_p384_scalar_u1 = 0;
> +     let (x1604, x1605) = fiat_p384_scalar_addcarryx_u32(x1603, x1529, x1579);
> +-    let mut x1606: u32 = 0;
> +-    let mut x1607: fiat_p384_scalar_u1 = 0;
> +     let (x1606, x1607) = fiat_p384_scalar_addcarryx_u32(x1605, x1531, x1581);
> +-    let mut x1608: u32 = 0;
> +-    let mut x1609: fiat_p384_scalar_u1 = 0;
> +     let (x1608, x1609) = fiat_p384_scalar_addcarryx_u32(x1607, x1533, x1583);
> +-    let mut x1610: u32 = 0;
> +-    let mut x1611: fiat_p384_scalar_u1 = 0;
> +     let (x1610, x1611) = fiat_p384_scalar_addcarryx_u32(x1609, x1535, x1585);
> +-    let mut x1612: u32 = 0;
> +-    let mut x1613: fiat_p384_scalar_u1 = 0;
> +     let (x1612, x1613) = fiat_p384_scalar_addcarryx_u32(x1611, x1537, x1587);
> +-    let mut x1614: u32 = 0;
> +-    let mut x1615: fiat_p384_scalar_u1 = 0;
> +     let (x1614, x1615) = fiat_p384_scalar_addcarryx_u32(x1613, x1539, x1589);
> +-    let mut x1616: u32 = 0;
> +-    let mut x1617: fiat_p384_scalar_u1 = 0;
> +     let (x1616, x1617) = fiat_p384_scalar_addcarryx_u32(x1615, x1541, x1591);
> +-    let mut x1618: u32 = 0;
> +-    let mut x1619: fiat_p384_scalar_u1 = 0;
> +     let (x1618, x1619) = fiat_p384_scalar_addcarryx_u32(x1617, x1543, x1593);
> +-    let mut x1620: u32 = 0;
> +-    let mut x1621: fiat_p384_scalar_u1 = 0;
> +     let (x1620, x1621) = fiat_p384_scalar_addcarryx_u32(x1619, x1545, x1595);
> +-    let mut x1622: u32 = 0;
> +-    let mut x1623: fiat_p384_scalar_u1 = 0;
> +     let (x1622, x1623) = fiat_p384_scalar_addcarryx_u32(x1621, x1547, x1597);
> +     let x1624: u32 = ((x1623 as u32) + (x1548 as u32));
> +-    let mut x1625: u32 = 0;
> +-    let mut x1626: u32 = 0;
> +     let (x1625, x1626) = fiat_p384_scalar_mulx_u32(x11, (arg2[11]));
> +-    let mut x1627: u32 = 0;
> +-    let mut x1628: u32 = 0;
> +     let (x1627, x1628) = fiat_p384_scalar_mulx_u32(x11, (arg2[10]));
> +-    let mut x1629: u32 = 0;
> +-    let mut x1630: u32 = 0;
> +     let (x1629, x1630) = fiat_p384_scalar_mulx_u32(x11, (arg2[9]));
> +-    let mut x1631: u32 = 0;
> +-    let mut x1632: u32 = 0;
> +     let (x1631, x1632) = fiat_p384_scalar_mulx_u32(x11, (arg2[8]));
> +-    let mut x1633: u32 = 0;
> +-    let mut x1634: u32 = 0;
> +     let (x1633, x1634) = fiat_p384_scalar_mulx_u32(x11, (arg2[7]));
> +-    let mut x1635: u32 = 0;
> +-    let mut x1636: u32 = 0;
> +     let (x1635, x1636) = fiat_p384_scalar_mulx_u32(x11, (arg2[6]));
> +-    let mut x1637: u32 = 0;
> +-    let mut x1638: u32 = 0;
> +     let (x1637, x1638) = fiat_p384_scalar_mulx_u32(x11, (arg2[5]));
> +-    let mut x1639: u32 = 0;
> +-    let mut x1640: u32 = 0;
> +     let (x1639, x1640) = fiat_p384_scalar_mulx_u32(x11, (arg2[4]));
> +-    let mut x1641: u32 = 0;
> +-    let mut x1642: u32 = 0;
> +     let (x1641, x1642) = fiat_p384_scalar_mulx_u32(x11, (arg2[3]));
> +-    let mut x1643: u32 = 0;
> +-    let mut x1644: u32 = 0;
> +     let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x11, (arg2[2]));
> +-    let mut x1645: u32 = 0;
> +-    let mut x1646: u32 = 0;
> +     let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x11, (arg2[1]));
> +-    let mut x1647: u32 = 0;
> +-    let mut x1648: u32 = 0;
> +     let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x11, (arg2[0]));
> +-    let mut x1649: u32 = 0;
> +-    let mut x1650: fiat_p384_scalar_u1 = 0;
> +     let (x1649, x1650) = fiat_p384_scalar_addcarryx_u32(0x0, x1648, x1645);
> +-    let mut x1651: u32 = 0;
> +-    let mut x1652: fiat_p384_scalar_u1 = 0;
> +     let (x1651, x1652) = fiat_p384_scalar_addcarryx_u32(x1650, x1646, x1643);
> +-    let mut x1653: u32 = 0;
> +-    let mut x1654: fiat_p384_scalar_u1 = 0;
> +     let (x1653, x1654) = fiat_p384_scalar_addcarryx_u32(x1652, x1644, x1641);
> +-    let mut x1655: u32 = 0;
> +-    let mut x1656: fiat_p384_scalar_u1 = 0;
> +     let (x1655, x1656) = fiat_p384_scalar_addcarryx_u32(x1654, x1642, x1639);
> +-    let mut x1657: u32 = 0;
> +-    let mut x1658: fiat_p384_scalar_u1 = 0;
> +     let (x1657, x1658) = fiat_p384_scalar_addcarryx_u32(x1656, x1640, x1637);
> +-    let mut x1659: u32 = 0;
> +-    let mut x1660: fiat_p384_scalar_u1 = 0;
> +     let (x1659, x1660) = fiat_p384_scalar_addcarryx_u32(x1658, x1638, x1635);
> +-    let mut x1661: u32 = 0;
> +-    let mut x1662: fiat_p384_scalar_u1 = 0;
> +     let (x1661, x1662) = fiat_p384_scalar_addcarryx_u32(x1660, x1636, x1633);
> +-    let mut x1663: u32 = 0;
> +-    let mut x1664: fiat_p384_scalar_u1 = 0;
> +     let (x1663, x1664) = fiat_p384_scalar_addcarryx_u32(x1662, x1634, x1631);
> +-    let mut x1665: u32 = 0;
> +-    let mut x1666: fiat_p384_scalar_u1 = 0;
> +     let (x1665, x1666) = fiat_p384_scalar_addcarryx_u32(x1664, x1632, x1629);
> +-    let mut x1667: u32 = 0;
> +-    let mut x1668: fiat_p384_scalar_u1 = 0;
> +     let (x1667, x1668) = fiat_p384_scalar_addcarryx_u32(x1666, x1630, x1627);
> +-    let mut x1669: u32 = 0;
> +-    let mut x1670: fiat_p384_scalar_u1 = 0;
> +     let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(x1668, x1628, x1625);
> +     let x1671: u32 = ((x1670 as u32) + x1626);
> +-    let mut x1672: u32 = 0;
> +-    let mut x1673: fiat_p384_scalar_u1 = 0;
> +     let (x1672, x1673) = fiat_p384_scalar_addcarryx_u32(0x0, x1600, x1647);
> +-    let mut x1674: u32 = 0;
> +-    let mut x1675: fiat_p384_scalar_u1 = 0;
> +     let (x1674, x1675) = fiat_p384_scalar_addcarryx_u32(x1673, x1602, x1649);
> +-    let mut x1676: u32 = 0;
> +-    let mut x1677: fiat_p384_scalar_u1 = 0;
> +     let (x1676, x1677) = fiat_p384_scalar_addcarryx_u32(x1675, x1604, x1651);
> +-    let mut x1678: u32 = 0;
> +-    let mut x1679: fiat_p384_scalar_u1 = 0;
> +     let (x1678, x1679) = fiat_p384_scalar_addcarryx_u32(x1677, x1606, x1653);
> +-    let mut x1680: u32 = 0;
> +-    let mut x1681: fiat_p384_scalar_u1 = 0;
> +     let (x1680, x1681) = fiat_p384_scalar_addcarryx_u32(x1679, x1608, x1655);
> +-    let mut x1682: u32 = 0;
> +-    let mut x1683: fiat_p384_scalar_u1 = 0;
> +     let (x1682, x1683) = fiat_p384_scalar_addcarryx_u32(x1681, x1610, x1657);
> +-    let mut x1684: u32 = 0;
> +-    let mut x1685: fiat_p384_scalar_u1 = 0;
> +     let (x1684, x1685) = fiat_p384_scalar_addcarryx_u32(x1683, x1612, x1659);
> +-    let mut x1686: u32 = 0;
> +-    let mut x1687: fiat_p384_scalar_u1 = 0;
> +     let (x1686, x1687) = fiat_p384_scalar_addcarryx_u32(x1685, x1614, x1661);
> +-    let mut x1688: u32 = 0;
> +-    let mut x1689: fiat_p384_scalar_u1 = 0;
> +     let (x1688, x1689) = fiat_p384_scalar_addcarryx_u32(x1687, x1616, x1663);
> +-    let mut x1690: u32 = 0;
> +-    let mut x1691: fiat_p384_scalar_u1 = 0;
> +     let (x1690, x1691) = fiat_p384_scalar_addcarryx_u32(x1689, x1618, x1665);
> +-    let mut x1692: u32 = 0;
> +-    let mut x1693: fiat_p384_scalar_u1 = 0;
> +     let (x1692, x1693) = fiat_p384_scalar_addcarryx_u32(x1691, x1620, x1667);
> +-    let mut x1694: u32 = 0;
> +-    let mut x1695: fiat_p384_scalar_u1 = 0;
> +     let (x1694, x1695) = fiat_p384_scalar_addcarryx_u32(x1693, x1622, x1669);
> +-    let mut x1696: u32 = 0;
> +-    let mut x1697: fiat_p384_scalar_u1 = 0;
> +     let (x1696, x1697) = fiat_p384_scalar_addcarryx_u32(x1695, x1624, x1671);
> +-    let mut x1698: u32 = 0;
> +-    let mut x1699: u32 = 0;
> +     let (x1698, x1699) = fiat_p384_scalar_mulx_u32(x1672, 0xe88fdc45);
> +-    let mut x1700: u32 = 0;
> +-    let mut x1701: u32 = 0;
> +     let (x1700, x1701) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1702: u32 = 0;
> +-    let mut x1703: u32 = 0;
> +     let (x1702, x1703) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1704: u32 = 0;
> +-    let mut x1705: u32 = 0;
> +     let (x1704, x1705) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1706: u32 = 0;
> +-    let mut x1707: u32 = 0;
> +     let (x1706, x1707) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1708: u32 = 0;
> +-    let mut x1709: u32 = 0;
> +     let (x1708, x1709) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1710: u32 = 0;
> +-    let mut x1711: u32 = 0;
> +     let (x1710, x1711) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1712: u32 = 0;
> +-    let mut x1713: u32 = 0;
> +     let (x1712, x1713) = fiat_p384_scalar_mulx_u32(x1698, 0xc7634d81);
> +-    let mut x1714: u32 = 0;
> +-    let mut x1715: u32 = 0;
> +     let (x1714, x1715) = fiat_p384_scalar_mulx_u32(x1698, 0xf4372ddf);
> +-    let mut x1716: u32 = 0;
> +-    let mut x1717: u32 = 0;
> +     let (x1716, x1717) = fiat_p384_scalar_mulx_u32(x1698, 0x581a0db2);
> +-    let mut x1718: u32 = 0;
> +-    let mut x1719: u32 = 0;
> +     let (x1718, x1719) = fiat_p384_scalar_mulx_u32(x1698, 0x48b0a77a);
> +-    let mut x1720: u32 = 0;
> +-    let mut x1721: u32 = 0;
> +     let (x1720, x1721) = fiat_p384_scalar_mulx_u32(x1698, 0xecec196a);
> +-    let mut x1722: u32 = 0;
> +-    let mut x1723: u32 = 0;
> +     let (x1722, x1723) = fiat_p384_scalar_mulx_u32(x1698, 0xccc52973);
> +-    let mut x1724: u32 = 0;
> +-    let mut x1725: fiat_p384_scalar_u1 = 0;
> +     let (x1724, x1725) = fiat_p384_scalar_addcarryx_u32(0x0, x1723, x1720);
> +-    let mut x1726: u32 = 0;
> +-    let mut x1727: fiat_p384_scalar_u1 = 0;
> +     let (x1726, x1727) = fiat_p384_scalar_addcarryx_u32(x1725, x1721, x1718);
> +-    let mut x1728: u32 = 0;
> +-    let mut x1729: fiat_p384_scalar_u1 = 0;
> +     let (x1728, x1729) = fiat_p384_scalar_addcarryx_u32(x1727, x1719, x1716);
> +-    let mut x1730: u32 = 0;
> +-    let mut x1731: fiat_p384_scalar_u1 = 0;
> +     let (x1730, x1731) = fiat_p384_scalar_addcarryx_u32(x1729, x1717, x1714);
> +-    let mut x1732: u32 = 0;
> +-    let mut x1733: fiat_p384_scalar_u1 = 0;
> +     let (x1732, x1733) = fiat_p384_scalar_addcarryx_u32(x1731, x1715, x1712);
> +-    let mut x1734: u32 = 0;
> +-    let mut x1735: fiat_p384_scalar_u1 = 0;
> +     let (x1734, x1735) = fiat_p384_scalar_addcarryx_u32(x1733, x1713, x1710);
> +-    let mut x1736: u32 = 0;
> +-    let mut x1737: fiat_p384_scalar_u1 = 0;
> +     let (x1736, x1737) = fiat_p384_scalar_addcarryx_u32(x1735, x1711, x1708);
> +-    let mut x1738: u32 = 0;
> +-    let mut x1739: fiat_p384_scalar_u1 = 0;
> +     let (x1738, x1739) = fiat_p384_scalar_addcarryx_u32(x1737, x1709, x1706);
> +-    let mut x1740: u32 = 0;
> +-    let mut x1741: fiat_p384_scalar_u1 = 0;
> +     let (x1740, x1741) = fiat_p384_scalar_addcarryx_u32(x1739, x1707, x1704);
> +-    let mut x1742: u32 = 0;
> +-    let mut x1743: fiat_p384_scalar_u1 = 0;
> +     let (x1742, x1743) = fiat_p384_scalar_addcarryx_u32(x1741, x1705, x1702);
> +-    let mut x1744: u32 = 0;
> +-    let mut x1745: fiat_p384_scalar_u1 = 0;
> +     let (x1744, x1745) = fiat_p384_scalar_addcarryx_u32(x1743, x1703, x1700);
> +     let x1746: u32 = ((x1745 as u32) + x1701);
> +-    let mut x1747: u32 = 0;
> +-    let mut x1748: fiat_p384_scalar_u1 = 0;
> +     let (x1747, x1748) = fiat_p384_scalar_addcarryx_u32(0x0, x1672, x1722);
> +-    let mut x1749: u32 = 0;
> +-    let mut x1750: fiat_p384_scalar_u1 = 0;
> +     let (x1749, x1750) = fiat_p384_scalar_addcarryx_u32(x1748, x1674, x1724);
> +-    let mut x1751: u32 = 0;
> +-    let mut x1752: fiat_p384_scalar_u1 = 0;
> +     let (x1751, x1752) = fiat_p384_scalar_addcarryx_u32(x1750, x1676, x1726);
> +-    let mut x1753: u32 = 0;
> +-    let mut x1754: fiat_p384_scalar_u1 = 0;
> +     let (x1753, x1754) = fiat_p384_scalar_addcarryx_u32(x1752, x1678, x1728);
> +-    let mut x1755: u32 = 0;
> +-    let mut x1756: fiat_p384_scalar_u1 = 0;
> +     let (x1755, x1756) = fiat_p384_scalar_addcarryx_u32(x1754, x1680, x1730);
> +-    let mut x1757: u32 = 0;
> +-    let mut x1758: fiat_p384_scalar_u1 = 0;
> +     let (x1757, x1758) = fiat_p384_scalar_addcarryx_u32(x1756, x1682, x1732);
> +-    let mut x1759: u32 = 0;
> +-    let mut x1760: fiat_p384_scalar_u1 = 0;
> +     let (x1759, x1760) = fiat_p384_scalar_addcarryx_u32(x1758, x1684, x1734);
> +-    let mut x1761: u32 = 0;
> +-    let mut x1762: fiat_p384_scalar_u1 = 0;
> +     let (x1761, x1762) = fiat_p384_scalar_addcarryx_u32(x1760, x1686, x1736);
> +-    let mut x1763: u32 = 0;
> +-    let mut x1764: fiat_p384_scalar_u1 = 0;
> +     let (x1763, x1764) = fiat_p384_scalar_addcarryx_u32(x1762, x1688, x1738);
> +-    let mut x1765: u32 = 0;
> +-    let mut x1766: fiat_p384_scalar_u1 = 0;
> +     let (x1765, x1766) = fiat_p384_scalar_addcarryx_u32(x1764, x1690, x1740);
> +-    let mut x1767: u32 = 0;
> +-    let mut x1768: fiat_p384_scalar_u1 = 0;
> +     let (x1767, x1768) = fiat_p384_scalar_addcarryx_u32(x1766, x1692, x1742);
> +-    let mut x1769: u32 = 0;
> +-    let mut x1770: fiat_p384_scalar_u1 = 0;
> +     let (x1769, x1770) = fiat_p384_scalar_addcarryx_u32(x1768, x1694, x1744);
> +-    let mut x1771: u32 = 0;
> +-    let mut x1772: fiat_p384_scalar_u1 = 0;
> +     let (x1771, x1772) = fiat_p384_scalar_addcarryx_u32(x1770, x1696, x1746);
> +     let x1773: u32 = ((x1772 as u32) + (x1697 as u32));
> +-    let mut x1774: u32 = 0;
> +-    let mut x1775: fiat_p384_scalar_u1 = 0;
> +     let (x1774, x1775) = fiat_p384_scalar_subborrowx_u32(0x0, x1749, 0xccc52973);
> +-    let mut x1776: u32 = 0;
> +-    let mut x1777: fiat_p384_scalar_u1 = 0;
> +     let (x1776, x1777) = fiat_p384_scalar_subborrowx_u32(x1775, x1751, 0xecec196a);
> +-    let mut x1778: u32 = 0;
> +-    let mut x1779: fiat_p384_scalar_u1 = 0;
> +     let (x1778, x1779) = fiat_p384_scalar_subborrowx_u32(x1777, x1753, 0x48b0a77a);
> +-    let mut x1780: u32 = 0;
> +-    let mut x1781: fiat_p384_scalar_u1 = 0;
> +     let (x1780, x1781) = fiat_p384_scalar_subborrowx_u32(x1779, x1755, 0x581a0db2);
> +-    let mut x1782: u32 = 0;
> +-    let mut x1783: fiat_p384_scalar_u1 = 0;
> +     let (x1782, x1783) = fiat_p384_scalar_subborrowx_u32(x1781, x1757, 0xf4372ddf);
> +-    let mut x1784: u32 = 0;
> +-    let mut x1785: fiat_p384_scalar_u1 = 0;
> +     let (x1784, x1785) = fiat_p384_scalar_subborrowx_u32(x1783, x1759, 0xc7634d81);
> +-    let mut x1786: u32 = 0;
> +-    let mut x1787: fiat_p384_scalar_u1 = 0;
> +     let (x1786, x1787) = fiat_p384_scalar_subborrowx_u32(x1785, x1761, 0xffffffff);
> +-    let mut x1788: u32 = 0;
> +-    let mut x1789: fiat_p384_scalar_u1 = 0;
> +     let (x1788, x1789) = fiat_p384_scalar_subborrowx_u32(x1787, x1763, 0xffffffff);
> +-    let mut x1790: u32 = 0;
> +-    let mut x1791: fiat_p384_scalar_u1 = 0;
> +     let (x1790, x1791) = fiat_p384_scalar_subborrowx_u32(x1789, x1765, 0xffffffff);
> +-    let mut x1792: u32 = 0;
> +-    let mut x1793: fiat_p384_scalar_u1 = 0;
> +     let (x1792, x1793) = fiat_p384_scalar_subborrowx_u32(x1791, x1767, 0xffffffff);
> +-    let mut x1794: u32 = 0;
> +-    let mut x1795: fiat_p384_scalar_u1 = 0;
> +     let (x1794, x1795) = fiat_p384_scalar_subborrowx_u32(x1793, x1769, 0xffffffff);
> +-    let mut x1796: u32 = 0;
> +-    let mut x1797: fiat_p384_scalar_u1 = 0;
> +     let (x1796, x1797) = fiat_p384_scalar_subborrowx_u32(x1795, x1771, 0xffffffff);
> +-    let mut x1798: u32 = 0;
> +-    let mut x1799: fiat_p384_scalar_u1 = 0;
> +     let (x1798, x1799) = fiat_p384_scalar_subborrowx_u32(x1797, x1773, (0x0 as u32));
> +-    let mut x1800: u32 = 0;
> +     let (x1800) = fiat_p384_scalar_cmovznz_u32(x1799, x1774, x1749);
> +-    let mut x1801: u32 = 0;
> +     let (x1801) = fiat_p384_scalar_cmovznz_u32(x1799, x1776, x1751);
> +-    let mut x1802: u32 = 0;
> +     let (x1802) = fiat_p384_scalar_cmovznz_u32(x1799, x1778, x1753);
> +-    let mut x1803: u32 = 0;
> +     let (x1803) = fiat_p384_scalar_cmovznz_u32(x1799, x1780, x1755);
> +-    let mut x1804: u32 = 0;
> +     let (x1804) = fiat_p384_scalar_cmovznz_u32(x1799, x1782, x1757);
> +-    let mut x1805: u32 = 0;
> +     let (x1805) = fiat_p384_scalar_cmovznz_u32(x1799, x1784, x1759);
> +-    let mut x1806: u32 = 0;
> +     let (x1806) = fiat_p384_scalar_cmovznz_u32(x1799, x1786, x1761);
> +-    let mut x1807: u32 = 0;
> +     let (x1807) = fiat_p384_scalar_cmovznz_u32(x1799, x1788, x1763);
> +-    let mut x1808: u32 = 0;
> +     let (x1808) = fiat_p384_scalar_cmovznz_u32(x1799, x1790, x1765);
> +-    let mut x1809: u32 = 0;
> +     let (x1809) = fiat_p384_scalar_cmovznz_u32(x1799, x1792, x1767);
> +-    let mut x1810: u32 = 0;
> +     let (x1810) = fiat_p384_scalar_cmovznz_u32(x1799, x1794, x1769);
> +-    let mut x1811: u32 = 0;
> +     let (x1811) = fiat_p384_scalar_cmovznz_u32(x1799, x1796, x1771);
> +     out1[0] = x1800;
> +     out1[1] = x1801;
> +@@ -2887,2692 +1123,928 @@ pub const fn fiat_p384_scalar_square(
> +     let x10: u32 = (arg1[10]);
> +     let x11: u32 = (arg1[11]);
> +     let x12: u32 = (arg1[0]);
> +-    let mut x13: u32 = 0;
> +-    let mut x14: u32 = 0;
> +     let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, (arg1[11]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: u32 = 0;
> +     let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, (arg1[10]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: u32 = 0;
> +     let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, (arg1[9]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: u32 = 0;
> +     let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, (arg1[8]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: u32 = 0;
> +     let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, (arg1[7]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: u32 = 0;
> +     let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, (arg1[6]));
> +-    let mut x25: u32 = 0;
> +-    let mut x26: u32 = 0;
> +     let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, (arg1[5]));
> +-    let mut x27: u32 = 0;
> +-    let mut x28: u32 = 0;
> +     let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, (arg1[4]));
> +-    let mut x29: u32 = 0;
> +-    let mut x30: u32 = 0;
> +     let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, (arg1[3]));
> +-    let mut x31: u32 = 0;
> +-    let mut x32: u32 = 0;
> +     let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, (arg1[2]));
> +-    let mut x33: u32 = 0;
> +-    let mut x34: u32 = 0;
> +     let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, (arg1[1]));
> +-    let mut x35: u32 = 0;
> +-    let mut x36: u32 = 0;
> +     let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, (arg1[0]));
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_scalar_u1 = 0;
> +     let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_scalar_u1 = 0;
> +     let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_scalar_u1 = 0;
> +     let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_scalar_u1 = 0;
> +     let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_scalar_u1 = 0;
> +     let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_scalar_u1 = 0;
> +     let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_scalar_u1 = 0;
> +     let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
> +-    let mut x51: u32 = 0;
> +-    let mut x52: fiat_p384_scalar_u1 = 0;
> +     let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
> +-    let mut x53: u32 = 0;
> +-    let mut x54: fiat_p384_scalar_u1 = 0;
> +     let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
> +-    let mut x55: u32 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
> +-    let mut x57: u32 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
> +     let x59: u32 = ((x58 as u32) + x14);
> +-    let mut x60: u32 = 0;
> +-    let mut x61: u32 = 0;
> +     let (x60, x61) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
> +-    let mut x62: u32 = 0;
> +-    let mut x63: u32 = 0;
> +     let (x62, x63) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x64: u32 = 0;
> +-    let mut x65: u32 = 0;
> +     let (x64, x65) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x66: u32 = 0;
> +-    let mut x67: u32 = 0;
> +     let (x66, x67) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x68: u32 = 0;
> +-    let mut x69: u32 = 0;
> +     let (x68, x69) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x70: u32 = 0;
> +-    let mut x71: u32 = 0;
> +     let (x70, x71) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x72: u32 = 0;
> +-    let mut x73: u32 = 0;
> +     let (x72, x73) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
> +-    let mut x74: u32 = 0;
> +-    let mut x75: u32 = 0;
> +     let (x74, x75) = fiat_p384_scalar_mulx_u32(x60, 0xc7634d81);
> +-    let mut x76: u32 = 0;
> +-    let mut x77: u32 = 0;
> +     let (x76, x77) = fiat_p384_scalar_mulx_u32(x60, 0xf4372ddf);
> +-    let mut x78: u32 = 0;
> +-    let mut x79: u32 = 0;
> +     let (x78, x79) = fiat_p384_scalar_mulx_u32(x60, 0x581a0db2);
> +-    let mut x80: u32 = 0;
> +-    let mut x81: u32 = 0;
> +     let (x80, x81) = fiat_p384_scalar_mulx_u32(x60, 0x48b0a77a);
> +-    let mut x82: u32 = 0;
> +-    let mut x83: u32 = 0;
> +     let (x82, x83) = fiat_p384_scalar_mulx_u32(x60, 0xecec196a);
> +-    let mut x84: u32 = 0;
> +-    let mut x85: u32 = 0;
> +     let (x84, x85) = fiat_p384_scalar_mulx_u32(x60, 0xccc52973);
> +-    let mut x86: u32 = 0;
> +-    let mut x87: fiat_p384_scalar_u1 = 0;
> +     let (x86, x87) = fiat_p384_scalar_addcarryx_u32(0x0, x85, x82);
> +-    let mut x88: u32 = 0;
> +-    let mut x89: fiat_p384_scalar_u1 = 0;
> +     let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x83, x80);
> +-    let mut x90: u32 = 0;
> +-    let mut x91: fiat_p384_scalar_u1 = 0;
> +     let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x81, x78);
> +-    let mut x92: u32 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x79, x76);
> +-    let mut x94: u32 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x77, x74);
> +-    let mut x96: u32 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x75, x72);
> +-    let mut x98: u32 = 0;
> +-    let mut x99: fiat_p384_scalar_u1 = 0;
> +     let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x73, x70);
> +-    let mut x100: u32 = 0;
> +-    let mut x101: fiat_p384_scalar_u1 = 0;
> +     let (x100, x101) = fiat_p384_scalar_addcarryx_u32(x99, x71, x68);
> +-    let mut x102: u32 = 0;
> +-    let mut x103: fiat_p384_scalar_u1 = 0;
> +     let (x102, x103) = fiat_p384_scalar_addcarryx_u32(x101, x69, x66);
> +-    let mut x104: u32 = 0;
> +-    let mut x105: fiat_p384_scalar_u1 = 0;
> +     let (x104, x105) = fiat_p384_scalar_addcarryx_u32(x103, x67, x64);
> +-    let mut x106: u32 = 0;
> +-    let mut x107: fiat_p384_scalar_u1 = 0;
> +     let (x106, x107) = fiat_p384_scalar_addcarryx_u32(x105, x65, x62);
> +     let x108: u32 = ((x107 as u32) + x63);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_scalar_u1 = 0;
> +     let (x109, x110) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x84);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_scalar_u1 = 0;
> +     let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x37, x86);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_scalar_u1 = 0;
> +     let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x39, x88);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_scalar_u1 = 0;
> +     let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x41, x90);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_scalar_u1 = 0;
> +     let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x43, x92);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_scalar_u1 = 0;
> +     let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x45, x94);
> +-    let mut x121: u32 = 0;
> +-    let mut x122: fiat_p384_scalar_u1 = 0;
> +     let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x47, x96);
> +-    let mut x123: u32 = 0;
> +-    let mut x124: fiat_p384_scalar_u1 = 0;
> +     let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x49, x98);
> +-    let mut x125: u32 = 0;
> +-    let mut x126: fiat_p384_scalar_u1 = 0;
> +     let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x51, x100);
> +-    let mut x127: u32 = 0;
> +-    let mut x128: fiat_p384_scalar_u1 = 0;
> +     let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x53, x102);
> +-    let mut x129: u32 = 0;
> +-    let mut x130: fiat_p384_scalar_u1 = 0;
> +     let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x55, x104);
> +-    let mut x131: u32 = 0;
> +-    let mut x132: fiat_p384_scalar_u1 = 0;
> +     let (x131, x132) = fiat_p384_scalar_addcarryx_u32(x130, x57, x106);
> +-    let mut x133: u32 = 0;
> +-    let mut x134: fiat_p384_scalar_u1 = 0;
> +     let (x133, x134) = fiat_p384_scalar_addcarryx_u32(x132, x59, x108);
> +-    let mut x135: u32 = 0;
> +-    let mut x136: u32 = 0;
> +     let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, (arg1[11]));
> +-    let mut x137: u32 = 0;
> +-    let mut x138: u32 = 0;
> +     let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, (arg1[10]));
> +-    let mut x139: u32 = 0;
> +-    let mut x140: u32 = 0;
> +     let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, (arg1[9]));
> +-    let mut x141: u32 = 0;
> +-    let mut x142: u32 = 0;
> +     let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, (arg1[8]));
> +-    let mut x143: u32 = 0;
> +-    let mut x144: u32 = 0;
> +     let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, (arg1[7]));
> +-    let mut x145: u32 = 0;
> +-    let mut x146: u32 = 0;
> +     let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, (arg1[6]));
> +-    let mut x147: u32 = 0;
> +-    let mut x148: u32 = 0;
> +     let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, (arg1[5]));
> +-    let mut x149: u32 = 0;
> +-    let mut x150: u32 = 0;
> +     let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, (arg1[4]));
> +-    let mut x151: u32 = 0;
> +-    let mut x152: u32 = 0;
> +     let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, (arg1[3]));
> +-    let mut x153: u32 = 0;
> +-    let mut x154: u32 = 0;
> +     let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, (arg1[2]));
> +-    let mut x155: u32 = 0;
> +-    let mut x156: u32 = 0;
> +     let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, (arg1[1]));
> +-    let mut x157: u32 = 0;
> +-    let mut x158: u32 = 0;
> +     let (x157, x158) = fiat_p384_scalar_mulx_u32(x1, (arg1[0]));
> +-    let mut x159: u32 = 0;
> +-    let mut x160: fiat_p384_scalar_u1 = 0;
> +     let (x159, x160) = fiat_p384_scalar_addcarryx_u32(0x0, x158, x155);
> +-    let mut x161: u32 = 0;
> +-    let mut x162: fiat_p384_scalar_u1 = 0;
> +     let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x156, x153);
> +-    let mut x163: u32 = 0;
> +-    let mut x164: fiat_p384_scalar_u1 = 0;
> +     let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x154, x151);
> +-    let mut x165: u32 = 0;
> +-    let mut x166: fiat_p384_scalar_u1 = 0;
> +     let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x152, x149);
> +-    let mut x167: u32 = 0;
> +-    let mut x168: fiat_p384_scalar_u1 = 0;
> +     let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x150, x147);
> +-    let mut x169: u32 = 0;
> +-    let mut x170: fiat_p384_scalar_u1 = 0;
> +     let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x148, x145);
> +-    let mut x171: u32 = 0;
> +-    let mut x172: fiat_p384_scalar_u1 = 0;
> +     let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x146, x143);
> +-    let mut x173: u32 = 0;
> +-    let mut x174: fiat_p384_scalar_u1 = 0;
> +     let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x144, x141);
> +-    let mut x175: u32 = 0;
> +-    let mut x176: fiat_p384_scalar_u1 = 0;
> +     let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x142, x139);
> +-    let mut x177: u32 = 0;
> +-    let mut x178: fiat_p384_scalar_u1 = 0;
> +     let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x140, x137);
> +-    let mut x179: u32 = 0;
> +-    let mut x180: fiat_p384_scalar_u1 = 0;
> +     let (x179, x180) = fiat_p384_scalar_addcarryx_u32(x178, x138, x135);
> +     let x181: u32 = ((x180 as u32) + x136);
> +-    let mut x182: u32 = 0;
> +-    let mut x183: fiat_p384_scalar_u1 = 0;
> +     let (x182, x183) = fiat_p384_scalar_addcarryx_u32(0x0, x111, x157);
> +-    let mut x184: u32 = 0;
> +-    let mut x185: fiat_p384_scalar_u1 = 0;
> +     let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x113, x159);
> +-    let mut x186: u32 = 0;
> +-    let mut x187: fiat_p384_scalar_u1 = 0;
> +     let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x115, x161);
> +-    let mut x188: u32 = 0;
> +-    let mut x189: fiat_p384_scalar_u1 = 0;
> +     let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x117, x163);
> +-    let mut x190: u32 = 0;
> +-    let mut x191: fiat_p384_scalar_u1 = 0;
> +     let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x119, x165);
> +-    let mut x192: u32 = 0;
> +-    let mut x193: fiat_p384_scalar_u1 = 0;
> +     let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x121, x167);
> +-    let mut x194: u32 = 0;
> +-    let mut x195: fiat_p384_scalar_u1 = 0;
> +     let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x123, x169);
> +-    let mut x196: u32 = 0;
> +-    let mut x197: fiat_p384_scalar_u1 = 0;
> +     let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x125, x171);
> +-    let mut x198: u32 = 0;
> +-    let mut x199: fiat_p384_scalar_u1 = 0;
> +     let (x198, x199) = fiat_p384_scalar_addcarryx_u32(x197, x127, x173);
> +-    let mut x200: u32 = 0;
> +-    let mut x201: fiat_p384_scalar_u1 = 0;
> +     let (x200, x201) = fiat_p384_scalar_addcarryx_u32(x199, x129, x175);
> +-    let mut x202: u32 = 0;
> +-    let mut x203: fiat_p384_scalar_u1 = 0;
> +     let (x202, x203) = fiat_p384_scalar_addcarryx_u32(x201, x131, x177);
> +-    let mut x204: u32 = 0;
> +-    let mut x205: fiat_p384_scalar_u1 = 0;
> +     let (x204, x205) = fiat_p384_scalar_addcarryx_u32(x203, x133, x179);
> +-    let mut x206: u32 = 0;
> +-    let mut x207: fiat_p384_scalar_u1 = 0;
> +     let (x206, x207) = fiat_p384_scalar_addcarryx_u32(x205, (x134 as u32), x181);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: u32 = 0;
> +     let (x208, x209) = fiat_p384_scalar_mulx_u32(x182, 0xe88fdc45);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: u32 = 0;
> +     let (x210, x211) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: u32 = 0;
> +     let (x212, x213) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: u32 = 0;
> +     let (x214, x215) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: u32 = 0;
> +     let (x216, x217) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: u32 = 0;
> +     let (x218, x219) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: u32 = 0;
> +     let (x220, x221) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: u32 = 0;
> +     let (x222, x223) = fiat_p384_scalar_mulx_u32(x208, 0xc7634d81);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: u32 = 0;
> +     let (x224, x225) = fiat_p384_scalar_mulx_u32(x208, 0xf4372ddf);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: u32 = 0;
> +     let (x226, x227) = fiat_p384_scalar_mulx_u32(x208, 0x581a0db2);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: u32 = 0;
> +     let (x228, x229) = fiat_p384_scalar_mulx_u32(x208, 0x48b0a77a);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: u32 = 0;
> +     let (x230, x231) = fiat_p384_scalar_mulx_u32(x208, 0xecec196a);
> +-    let mut x232: u32 = 0;
> +-    let mut x233: u32 = 0;
> +     let (x232, x233) = fiat_p384_scalar_mulx_u32(x208, 0xccc52973);
> +-    let mut x234: u32 = 0;
> +-    let mut x235: fiat_p384_scalar_u1 = 0;
> +     let (x234, x235) = fiat_p384_scalar_addcarryx_u32(0x0, x233, x230);
> +-    let mut x236: u32 = 0;
> +-    let mut x237: fiat_p384_scalar_u1 = 0;
> +     let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x231, x228);
> +-    let mut x238: u32 = 0;
> +-    let mut x239: fiat_p384_scalar_u1 = 0;
> +     let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x229, x226);
> +-    let mut x240: u32 = 0;
> +-    let mut x241: fiat_p384_scalar_u1 = 0;
> +     let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x227, x224);
> +-    let mut x242: u32 = 0;
> +-    let mut x243: fiat_p384_scalar_u1 = 0;
> +     let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x225, x222);
> +-    let mut x244: u32 = 0;
> +-    let mut x245: fiat_p384_scalar_u1 = 0;
> +     let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x223, x220);
> +-    let mut x246: u32 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(x245, x221, x218);
> +-    let mut x248: u32 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x219, x216);
> +-    let mut x250: u32 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x217, x214);
> +-    let mut x252: u32 = 0;
> +-    let mut x253: fiat_p384_scalar_u1 = 0;
> +     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x215, x212);
> +-    let mut x254: u32 = 0;
> +-    let mut x255: fiat_p384_scalar_u1 = 0;
> +     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x213, x210);
> +     let x256: u32 = ((x255 as u32) + x211);
> +-    let mut x257: u32 = 0;
> +-    let mut x258: fiat_p384_scalar_u1 = 0;
> +     let (x257, x258) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x232);
> +-    let mut x259: u32 = 0;
> +-    let mut x260: fiat_p384_scalar_u1 = 0;
> +     let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x184, x234);
> +-    let mut x261: u32 = 0;
> +-    let mut x262: fiat_p384_scalar_u1 = 0;
> +     let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x186, x236);
> +-    let mut x263: u32 = 0;
> +-    let mut x264: fiat_p384_scalar_u1 = 0;
> +     let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x188, x238);
> +-    let mut x265: u32 = 0;
> +-    let mut x266: fiat_p384_scalar_u1 = 0;
> +     let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x190, x240);
> +-    let mut x267: u32 = 0;
> +-    let mut x268: fiat_p384_scalar_u1 = 0;
> +     let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x192, x242);
> +-    let mut x269: u32 = 0;
> +-    let mut x270: fiat_p384_scalar_u1 = 0;
> +     let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x194, x244);
> +-    let mut x271: u32 = 0;
> +-    let mut x272: fiat_p384_scalar_u1 = 0;
> +     let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x196, x246);
> +-    let mut x273: u32 = 0;
> +-    let mut x274: fiat_p384_scalar_u1 = 0;
> +     let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x198, x248);
> +-    let mut x275: u32 = 0;
> +-    let mut x276: fiat_p384_scalar_u1 = 0;
> +     let (x275, x276) = fiat_p384_scalar_addcarryx_u32(x274, x200, x250);
> +-    let mut x277: u32 = 0;
> +-    let mut x278: fiat_p384_scalar_u1 = 0;
> +     let (x277, x278) = fiat_p384_scalar_addcarryx_u32(x276, x202, x252);
> +-    let mut x279: u32 = 0;
> +-    let mut x280: fiat_p384_scalar_u1 = 0;
> +     let (x279, x280) = fiat_p384_scalar_addcarryx_u32(x278, x204, x254);
> +-    let mut x281: u32 = 0;
> +-    let mut x282: fiat_p384_scalar_u1 = 0;
> +     let (x281, x282) = fiat_p384_scalar_addcarryx_u32(x280, x206, x256);
> +     let x283: u32 = ((x282 as u32) + (x207 as u32));
> +-    let mut x284: u32 = 0;
> +-    let mut x285: u32 = 0;
> +     let (x284, x285) = fiat_p384_scalar_mulx_u32(x2, (arg1[11]));
> +-    let mut x286: u32 = 0;
> +-    let mut x287: u32 = 0;
> +     let (x286, x287) = fiat_p384_scalar_mulx_u32(x2, (arg1[10]));
> +-    let mut x288: u32 = 0;
> +-    let mut x289: u32 = 0;
> +     let (x288, x289) = fiat_p384_scalar_mulx_u32(x2, (arg1[9]));
> +-    let mut x290: u32 = 0;
> +-    let mut x291: u32 = 0;
> +     let (x290, x291) = fiat_p384_scalar_mulx_u32(x2, (arg1[8]));
> +-    let mut x292: u32 = 0;
> +-    let mut x293: u32 = 0;
> +     let (x292, x293) = fiat_p384_scalar_mulx_u32(x2, (arg1[7]));
> +-    let mut x294: u32 = 0;
> +-    let mut x295: u32 = 0;
> +     let (x294, x295) = fiat_p384_scalar_mulx_u32(x2, (arg1[6]));
> +-    let mut x296: u32 = 0;
> +-    let mut x297: u32 = 0;
> +     let (x296, x297) = fiat_p384_scalar_mulx_u32(x2, (arg1[5]));
> +-    let mut x298: u32 = 0;
> +-    let mut x299: u32 = 0;
> +     let (x298, x299) = fiat_p384_scalar_mulx_u32(x2, (arg1[4]));
> +-    let mut x300: u32 = 0;
> +-    let mut x301: u32 = 0;
> +     let (x300, x301) = fiat_p384_scalar_mulx_u32(x2, (arg1[3]));
> +-    let mut x302: u32 = 0;
> +-    let mut x303: u32 = 0;
> +     let (x302, x303) = fiat_p384_scalar_mulx_u32(x2, (arg1[2]));
> +-    let mut x304: u32 = 0;
> +-    let mut x305: u32 = 0;
> +     let (x304, x305) = fiat_p384_scalar_mulx_u32(x2, (arg1[1]));
> +-    let mut x306: u32 = 0;
> +-    let mut x307: u32 = 0;
> +     let (x306, x307) = fiat_p384_scalar_mulx_u32(x2, (arg1[0]));
> +-    let mut x308: u32 = 0;
> +-    let mut x309: fiat_p384_scalar_u1 = 0;
> +     let (x308, x309) = fiat_p384_scalar_addcarryx_u32(0x0, x307, x304);
> +-    let mut x310: u32 = 0;
> +-    let mut x311: fiat_p384_scalar_u1 = 0;
> +     let (x310, x311) = fiat_p384_scalar_addcarryx_u32(x309, x305, x302);
> +-    let mut x312: u32 = 0;
> +-    let mut x313: fiat_p384_scalar_u1 = 0;
> +     let (x312, x313) = fiat_p384_scalar_addcarryx_u32(x311, x303, x300);
> +-    let mut x314: u32 = 0;
> +-    let mut x315: fiat_p384_scalar_u1 = 0;
> +     let (x314, x315) = fiat_p384_scalar_addcarryx_u32(x313, x301, x298);
> +-    let mut x316: u32 = 0;
> +-    let mut x317: fiat_p384_scalar_u1 = 0;
> +     let (x316, x317) = fiat_p384_scalar_addcarryx_u32(x315, x299, x296);
> +-    let mut x318: u32 = 0;
> +-    let mut x319: fiat_p384_scalar_u1 = 0;
> +     let (x318, x319) = fiat_p384_scalar_addcarryx_u32(x317, x297, x294);
> +-    let mut x320: u32 = 0;
> +-    let mut x321: fiat_p384_scalar_u1 = 0;
> +     let (x320, x321) = fiat_p384_scalar_addcarryx_u32(x319, x295, x292);
> +-    let mut x322: u32 = 0;
> +-    let mut x323: fiat_p384_scalar_u1 = 0;
> +     let (x322, x323) = fiat_p384_scalar_addcarryx_u32(x321, x293, x290);
> +-    let mut x324: u32 = 0;
> +-    let mut x325: fiat_p384_scalar_u1 = 0;
> +     let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x291, x288);
> +-    let mut x326: u32 = 0;
> +-    let mut x327: fiat_p384_scalar_u1 = 0;
> +     let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x289, x286);
> +-    let mut x328: u32 = 0;
> +-    let mut x329: fiat_p384_scalar_u1 = 0;
> +     let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x287, x284);
> +     let x330: u32 = ((x329 as u32) + x285);
> +-    let mut x331: u32 = 0;
> +-    let mut x332: fiat_p384_scalar_u1 = 0;
> +     let (x331, x332) = fiat_p384_scalar_addcarryx_u32(0x0, x259, x306);
> +-    let mut x333: u32 = 0;
> +-    let mut x334: fiat_p384_scalar_u1 = 0;
> +     let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x261, x308);
> +-    let mut x335: u32 = 0;
> +-    let mut x336: fiat_p384_scalar_u1 = 0;
> +     let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x263, x310);
> +-    let mut x337: u32 = 0;
> +-    let mut x338: fiat_p384_scalar_u1 = 0;
> +     let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x265, x312);
> +-    let mut x339: u32 = 0;
> +-    let mut x340: fiat_p384_scalar_u1 = 0;
> +     let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x267, x314);
> +-    let mut x341: u32 = 0;
> +-    let mut x342: fiat_p384_scalar_u1 = 0;
> +     let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x269, x316);
> +-    let mut x343: u32 = 0;
> +-    let mut x344: fiat_p384_scalar_u1 = 0;
> +     let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x271, x318);
> +-    let mut x345: u32 = 0;
> +-    let mut x346: fiat_p384_scalar_u1 = 0;
> +     let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x273, x320);
> +-    let mut x347: u32 = 0;
> +-    let mut x348: fiat_p384_scalar_u1 = 0;
> +     let (x347, x348) = fiat_p384_scalar_addcarryx_u32(x346, x275, x322);
> +-    let mut x349: u32 = 0;
> +-    let mut x350: fiat_p384_scalar_u1 = 0;
> +     let (x349, x350) = fiat_p384_scalar_addcarryx_u32(x348, x277, x324);
> +-    let mut x351: u32 = 0;
> +-    let mut x352: fiat_p384_scalar_u1 = 0;
> +     let (x351, x352) = fiat_p384_scalar_addcarryx_u32(x350, x279, x326);
> +-    let mut x353: u32 = 0;
> +-    let mut x354: fiat_p384_scalar_u1 = 0;
> +     let (x353, x354) = fiat_p384_scalar_addcarryx_u32(x352, x281, x328);
> +-    let mut x355: u32 = 0;
> +-    let mut x356: fiat_p384_scalar_u1 = 0;
> +     let (x355, x356) = fiat_p384_scalar_addcarryx_u32(x354, x283, x330);
> +-    let mut x357: u32 = 0;
> +-    let mut x358: u32 = 0;
> +     let (x357, x358) = fiat_p384_scalar_mulx_u32(x331, 0xe88fdc45);
> +-    let mut x359: u32 = 0;
> +-    let mut x360: u32 = 0;
> +     let (x359, x360) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x361: u32 = 0;
> +-    let mut x362: u32 = 0;
> +     let (x361, x362) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x363: u32 = 0;
> +-    let mut x364: u32 = 0;
> +     let (x363, x364) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x365: u32 = 0;
> +-    let mut x366: u32 = 0;
> +     let (x365, x366) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x367: u32 = 0;
> +-    let mut x368: u32 = 0;
> +     let (x367, x368) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x369: u32 = 0;
> +-    let mut x370: u32 = 0;
> +     let (x369, x370) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
> +-    let mut x371: u32 = 0;
> +-    let mut x372: u32 = 0;
> +     let (x371, x372) = fiat_p384_scalar_mulx_u32(x357, 0xc7634d81);
> +-    let mut x373: u32 = 0;
> +-    let mut x374: u32 = 0;
> +     let (x373, x374) = fiat_p384_scalar_mulx_u32(x357, 0xf4372ddf);
> +-    let mut x375: u32 = 0;
> +-    let mut x376: u32 = 0;
> +     let (x375, x376) = fiat_p384_scalar_mulx_u32(x357, 0x581a0db2);
> +-    let mut x377: u32 = 0;
> +-    let mut x378: u32 = 0;
> +     let (x377, x378) = fiat_p384_scalar_mulx_u32(x357, 0x48b0a77a);
> +-    let mut x379: u32 = 0;
> +-    let mut x380: u32 = 0;
> +     let (x379, x380) = fiat_p384_scalar_mulx_u32(x357, 0xecec196a);
> +-    let mut x381: u32 = 0;
> +-    let mut x382: u32 = 0;
> +     let (x381, x382) = fiat_p384_scalar_mulx_u32(x357, 0xccc52973);
> +-    let mut x383: u32 = 0;
> +-    let mut x384: fiat_p384_scalar_u1 = 0;
> +     let (x383, x384) = fiat_p384_scalar_addcarryx_u32(0x0, x382, x379);
> +-    let mut x385: u32 = 0;
> +-    let mut x386: fiat_p384_scalar_u1 = 0;
> +     let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x380, x377);
> +-    let mut x387: u32 = 0;
> +-    let mut x388: fiat_p384_scalar_u1 = 0;
> +     let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x378, x375);
> +-    let mut x389: u32 = 0;
> +-    let mut x390: fiat_p384_scalar_u1 = 0;
> +     let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x376, x373);
> +-    let mut x391: u32 = 0;
> +-    let mut x392: fiat_p384_scalar_u1 = 0;
> +     let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x374, x371);
> +-    let mut x393: u32 = 0;
> +-    let mut x394: fiat_p384_scalar_u1 = 0;
> +     let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x372, x369);
> +-    let mut x395: u32 = 0;
> +-    let mut x396: fiat_p384_scalar_u1 = 0;
> +     let (x395, x396) = fiat_p384_scalar_addcarryx_u32(x394, x370, x367);
> +-    let mut x397: u32 = 0;
> +-    let mut x398: fiat_p384_scalar_u1 = 0;
> +     let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x368, x365);
> +-    let mut x399: u32 = 0;
> +-    let mut x400: fiat_p384_scalar_u1 = 0;
> +     let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x366, x363);
> +-    let mut x401: u32 = 0;
> +-    let mut x402: fiat_p384_scalar_u1 = 0;
> +     let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x364, x361);
> +-    let mut x403: u32 = 0;
> +-    let mut x404: fiat_p384_scalar_u1 = 0;
> +     let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x362, x359);
> +     let x405: u32 = ((x404 as u32) + x360);
> +-    let mut x406: u32 = 0;
> +-    let mut x407: fiat_p384_scalar_u1 = 0;
> +     let (x406, x407) = fiat_p384_scalar_addcarryx_u32(0x0, x331, x381);
> +-    let mut x408: u32 = 0;
> +-    let mut x409: fiat_p384_scalar_u1 = 0;
> +     let (x408, x409) = fiat_p384_scalar_addcarryx_u32(x407, x333, x383);
> +-    let mut x410: u32 = 0;
> +-    let mut x411: fiat_p384_scalar_u1 = 0;
> +     let (x410, x411) = fiat_p384_scalar_addcarryx_u32(x409, x335, x385);
> +-    let mut x412: u32 = 0;
> +-    let mut x413: fiat_p384_scalar_u1 = 0;
> +     let (x412, x413) = fiat_p384_scalar_addcarryx_u32(x411, x337, x387);
> +-    let mut x414: u32 = 0;
> +-    let mut x415: fiat_p384_scalar_u1 = 0;
> +     let (x414, x415) = fiat_p384_scalar_addcarryx_u32(x413, x339, x389);
> +-    let mut x416: u32 = 0;
> +-    let mut x417: fiat_p384_scalar_u1 = 0;
> +     let (x416, x417) = fiat_p384_scalar_addcarryx_u32(x415, x341, x391);
> +-    let mut x418: u32 = 0;
> +-    let mut x419: fiat_p384_scalar_u1 = 0;
> +     let (x418, x419) = fiat_p384_scalar_addcarryx_u32(x417, x343, x393);
> +-    let mut x420: u32 = 0;
> +-    let mut x421: fiat_p384_scalar_u1 = 0;
> +     let (x420, x421) = fiat_p384_scalar_addcarryx_u32(x419, x345, x395);
> +-    let mut x422: u32 = 0;
> +-    let mut x423: fiat_p384_scalar_u1 = 0;
> +     let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x347, x397);
> +-    let mut x424: u32 = 0;
> +-    let mut x425: fiat_p384_scalar_u1 = 0;
> +     let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x349, x399);
> +-    let mut x426: u32 = 0;
> +-    let mut x427: fiat_p384_scalar_u1 = 0;
> +     let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x351, x401);
> +-    let mut x428: u32 = 0;
> +-    let mut x429: fiat_p384_scalar_u1 = 0;
> +     let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x353, x403);
> +-    let mut x430: u32 = 0;
> +-    let mut x431: fiat_p384_scalar_u1 = 0;
> +     let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x355, x405);
> +     let x432: u32 = ((x431 as u32) + (x356 as u32));
> +-    let mut x433: u32 = 0;
> +-    let mut x434: u32 = 0;
> +     let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, (arg1[11]));
> +-    let mut x435: u32 = 0;
> +-    let mut x436: u32 = 0;
> +     let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, (arg1[10]));
> +-    let mut x437: u32 = 0;
> +-    let mut x438: u32 = 0;
> +     let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, (arg1[9]));
> +-    let mut x439: u32 = 0;
> +-    let mut x440: u32 = 0;
> +     let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, (arg1[8]));
> +-    let mut x441: u32 = 0;
> +-    let mut x442: u32 = 0;
> +     let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, (arg1[7]));
> +-    let mut x443: u32 = 0;
> +-    let mut x444: u32 = 0;
> +     let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, (arg1[6]));
> +-    let mut x445: u32 = 0;
> +-    let mut x446: u32 = 0;
> +     let (x445, x446) = fiat_p384_scalar_mulx_u32(x3, (arg1[5]));
> +-    let mut x447: u32 = 0;
> +-    let mut x448: u32 = 0;
> +     let (x447, x448) = fiat_p384_scalar_mulx_u32(x3, (arg1[4]));
> +-    let mut x449: u32 = 0;
> +-    let mut x450: u32 = 0;
> +     let (x449, x450) = fiat_p384_scalar_mulx_u32(x3, (arg1[3]));
> +-    let mut x451: u32 = 0;
> +-    let mut x452: u32 = 0;
> +     let (x451, x452) = fiat_p384_scalar_mulx_u32(x3, (arg1[2]));
> +-    let mut x453: u32 = 0;
> +-    let mut x454: u32 = 0;
> +     let (x453, x454) = fiat_p384_scalar_mulx_u32(x3, (arg1[1]));
> +-    let mut x455: u32 = 0;
> +-    let mut x456: u32 = 0;
> +     let (x455, x456) = fiat_p384_scalar_mulx_u32(x3, (arg1[0]));
> +-    let mut x457: u32 = 0;
> +-    let mut x458: fiat_p384_scalar_u1 = 0;
> +     let (x457, x458) = fiat_p384_scalar_addcarryx_u32(0x0, x456, x453);
> +-    let mut x459: u32 = 0;
> +-    let mut x460: fiat_p384_scalar_u1 = 0;
> +     let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x454, x451);
> +-    let mut x461: u32 = 0;
> +-    let mut x462: fiat_p384_scalar_u1 = 0;
> +     let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x452, x449);
> +-    let mut x463: u32 = 0;
> +-    let mut x464: fiat_p384_scalar_u1 = 0;
> +     let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x450, x447);
> +-    let mut x465: u32 = 0;
> +-    let mut x466: fiat_p384_scalar_u1 = 0;
> +     let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x448, x445);
> +-    let mut x467: u32 = 0;
> +-    let mut x468: fiat_p384_scalar_u1 = 0;
> +     let (x467, x468) = fiat_p384_scalar_addcarryx_u32(x466, x446, x443);
> +-    let mut x469: u32 = 0;
> +-    let mut x470: fiat_p384_scalar_u1 = 0;
> +     let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x444, x441);
> +-    let mut x471: u32 = 0;
> +-    let mut x472: fiat_p384_scalar_u1 = 0;
> +     let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x442, x439);
> +-    let mut x473: u32 = 0;
> +-    let mut x474: fiat_p384_scalar_u1 = 0;
> +     let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x440, x437);
> +-    let mut x475: u32 = 0;
> +-    let mut x476: fiat_p384_scalar_u1 = 0;
> +     let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x438, x435);
> +-    let mut x477: u32 = 0;
> +-    let mut x478: fiat_p384_scalar_u1 = 0;
> +     let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x436, x433);
> +     let x479: u32 = ((x478 as u32) + x434);
> +-    let mut x480: u32 = 0;
> +-    let mut x481: fiat_p384_scalar_u1 = 0;
> +     let (x480, x481) = fiat_p384_scalar_addcarryx_u32(0x0, x408, x455);
> +-    let mut x482: u32 = 0;
> +-    let mut x483: fiat_p384_scalar_u1 = 0;
> +     let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x410, x457);
> +-    let mut x484: u32 = 0;
> +-    let mut x485: fiat_p384_scalar_u1 = 0;
> +     let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x412, x459);
> +-    let mut x486: u32 = 0;
> +-    let mut x487: fiat_p384_scalar_u1 = 0;
> +     let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x414, x461);
> +-    let mut x488: u32 = 0;
> +-    let mut x489: fiat_p384_scalar_u1 = 0;
> +     let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x416, x463);
> +-    let mut x490: u32 = 0;
> +-    let mut x491: fiat_p384_scalar_u1 = 0;
> +     let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x418, x465);
> +-    let mut x492: u32 = 0;
> +-    let mut x493: fiat_p384_scalar_u1 = 0;
> +     let (x492, x493) = fiat_p384_scalar_addcarryx_u32(x491, x420, x467);
> +-    let mut x494: u32 = 0;
> +-    let mut x495: fiat_p384_scalar_u1 = 0;
> +     let (x494, x495) = fiat_p384_scalar_addcarryx_u32(x493, x422, x469);
> +-    let mut x496: u32 = 0;
> +-    let mut x497: fiat_p384_scalar_u1 = 0;
> +     let (x496, x497) = fiat_p384_scalar_addcarryx_u32(x495, x424, x471);
> +-    let mut x498: u32 = 0;
> +-    let mut x499: fiat_p384_scalar_u1 = 0;
> +     let (x498, x499) = fiat_p384_scalar_addcarryx_u32(x497, x426, x473);
> +-    let mut x500: u32 = 0;
> +-    let mut x501: fiat_p384_scalar_u1 = 0;
> +     let (x500, x501) = fiat_p384_scalar_addcarryx_u32(x499, x428, x475);
> +-    let mut x502: u32 = 0;
> +-    let mut x503: fiat_p384_scalar_u1 = 0;
> +     let (x502, x503) = fiat_p384_scalar_addcarryx_u32(x501, x430, x477);
> +-    let mut x504: u32 = 0;
> +-    let mut x505: fiat_p384_scalar_u1 = 0;
> +     let (x504, x505) = fiat_p384_scalar_addcarryx_u32(x503, x432, x479);
> +-    let mut x506: u32 = 0;
> +-    let mut x507: u32 = 0;
> +     let (x506, x507) = fiat_p384_scalar_mulx_u32(x480, 0xe88fdc45);
> +-    let mut x508: u32 = 0;
> +-    let mut x509: u32 = 0;
> +     let (x508, x509) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x510: u32 = 0;
> +-    let mut x511: u32 = 0;
> +     let (x510, x511) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x512: u32 = 0;
> +-    let mut x513: u32 = 0;
> +     let (x512, x513) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x514: u32 = 0;
> +-    let mut x515: u32 = 0;
> +     let (x514, x515) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x516: u32 = 0;
> +-    let mut x517: u32 = 0;
> +     let (x516, x517) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x518: u32 = 0;
> +-    let mut x519: u32 = 0;
> +     let (x518, x519) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
> +-    let mut x520: u32 = 0;
> +-    let mut x521: u32 = 0;
> +     let (x520, x521) = fiat_p384_scalar_mulx_u32(x506, 0xc7634d81);
> +-    let mut x522: u32 = 0;
> +-    let mut x523: u32 = 0;
> +     let (x522, x523) = fiat_p384_scalar_mulx_u32(x506, 0xf4372ddf);
> +-    let mut x524: u32 = 0;
> +-    let mut x525: u32 = 0;
> +     let (x524, x525) = fiat_p384_scalar_mulx_u32(x506, 0x581a0db2);
> +-    let mut x526: u32 = 0;
> +-    let mut x527: u32 = 0;
> +     let (x526, x527) = fiat_p384_scalar_mulx_u32(x506, 0x48b0a77a);
> +-    let mut x528: u32 = 0;
> +-    let mut x529: u32 = 0;
> +     let (x528, x529) = fiat_p384_scalar_mulx_u32(x506, 0xecec196a);
> +-    let mut x530: u32 = 0;
> +-    let mut x531: u32 = 0;
> +     let (x530, x531) = fiat_p384_scalar_mulx_u32(x506, 0xccc52973);
> +-    let mut x532: u32 = 0;
> +-    let mut x533: fiat_p384_scalar_u1 = 0;
> +     let (x532, x533) = fiat_p384_scalar_addcarryx_u32(0x0, x531, x528);
> +-    let mut x534: u32 = 0;
> +-    let mut x535: fiat_p384_scalar_u1 = 0;
> +     let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x529, x526);
> +-    let mut x536: u32 = 0;
> +-    let mut x537: fiat_p384_scalar_u1 = 0;
> +     let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x527, x524);
> +-    let mut x538: u32 = 0;
> +-    let mut x539: fiat_p384_scalar_u1 = 0;
> +     let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x525, x522);
> +-    let mut x540: u32 = 0;
> +-    let mut x541: fiat_p384_scalar_u1 = 0;
> +     let (x540, x541) = fiat_p384_scalar_addcarryx_u32(x539, x523, x520);
> +-    let mut x542: u32 = 0;
> +-    let mut x543: fiat_p384_scalar_u1 = 0;
> +     let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x521, x518);
> +-    let mut x544: u32 = 0;
> +-    let mut x545: fiat_p384_scalar_u1 = 0;
> +     let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x519, x516);
> +-    let mut x546: u32 = 0;
> +-    let mut x547: fiat_p384_scalar_u1 = 0;
> +     let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x517, x514);
> +-    let mut x548: u32 = 0;
> +-    let mut x549: fiat_p384_scalar_u1 = 0;
> +     let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x515, x512);
> +-    let mut x550: u32 = 0;
> +-    let mut x551: fiat_p384_scalar_u1 = 0;
> +     let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x513, x510);
> +-    let mut x552: u32 = 0;
> +-    let mut x553: fiat_p384_scalar_u1 = 0;
> +     let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x511, x508);
> +     let x554: u32 = ((x553 as u32) + x509);
> +-    let mut x555: u32 = 0;
> +-    let mut x556: fiat_p384_scalar_u1 = 0;
> +     let (x555, x556) = fiat_p384_scalar_addcarryx_u32(0x0, x480, x530);
> +-    let mut x557: u32 = 0;
> +-    let mut x558: fiat_p384_scalar_u1 = 0;
> +     let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x482, x532);
> +-    let mut x559: u32 = 0;
> +-    let mut x560: fiat_p384_scalar_u1 = 0;
> +     let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x484, x534);
> +-    let mut x561: u32 = 0;
> +-    let mut x562: fiat_p384_scalar_u1 = 0;
> +     let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x486, x536);
> +-    let mut x563: u32 = 0;
> +-    let mut x564: fiat_p384_scalar_u1 = 0;
> +     let (x563, x564) = fiat_p384_scalar_addcarryx_u32(x562, x488, x538);
> +-    let mut x565: u32 = 0;
> +-    let mut x566: fiat_p384_scalar_u1 = 0;
> +     let (x565, x566) = fiat_p384_scalar_addcarryx_u32(x564, x490, x540);
> +-    let mut x567: u32 = 0;
> +-    let mut x568: fiat_p384_scalar_u1 = 0;
> +     let (x567, x568) = fiat_p384_scalar_addcarryx_u32(x566, x492, x542);
> +-    let mut x569: u32 = 0;
> +-    let mut x570: fiat_p384_scalar_u1 = 0;
> +     let (x569, x570) = fiat_p384_scalar_addcarryx_u32(x568, x494, x544);
> +-    let mut x571: u32 = 0;
> +-    let mut x572: fiat_p384_scalar_u1 = 0;
> +     let (x571, x572) = fiat_p384_scalar_addcarryx_u32(x570, x496, x546);
> +-    let mut x573: u32 = 0;
> +-    let mut x574: fiat_p384_scalar_u1 = 0;
> +     let (x573, x574) = fiat_p384_scalar_addcarryx_u32(x572, x498, x548);
> +-    let mut x575: u32 = 0;
> +-    let mut x576: fiat_p384_scalar_u1 = 0;
> +     let (x575, x576) = fiat_p384_scalar_addcarryx_u32(x574, x500, x550);
> +-    let mut x577: u32 = 0;
> +-    let mut x578: fiat_p384_scalar_u1 = 0;
> +     let (x577, x578) = fiat_p384_scalar_addcarryx_u32(x576, x502, x552);
> +-    let mut x579: u32 = 0;
> +-    let mut x580: fiat_p384_scalar_u1 = 0;
> +     let (x579, x580) = fiat_p384_scalar_addcarryx_u32(x578, x504, x554);
> +     let x581: u32 = ((x580 as u32) + (x505 as u32));
> +-    let mut x582: u32 = 0;
> +-    let mut x583: u32 = 0;
> +     let (x582, x583) = fiat_p384_scalar_mulx_u32(x4, (arg1[11]));
> +-    let mut x584: u32 = 0;
> +-    let mut x585: u32 = 0;
> +     let (x584, x585) = fiat_p384_scalar_mulx_u32(x4, (arg1[10]));
> +-    let mut x586: u32 = 0;
> +-    let mut x587: u32 = 0;
> +     let (x586, x587) = fiat_p384_scalar_mulx_u32(x4, (arg1[9]));
> +-    let mut x588: u32 = 0;
> +-    let mut x589: u32 = 0;
> +     let (x588, x589) = fiat_p384_scalar_mulx_u32(x4, (arg1[8]));
> +-    let mut x590: u32 = 0;
> +-    let mut x591: u32 = 0;
> +     let (x590, x591) = fiat_p384_scalar_mulx_u32(x4, (arg1[7]));
> +-    let mut x592: u32 = 0;
> +-    let mut x593: u32 = 0;
> +     let (x592, x593) = fiat_p384_scalar_mulx_u32(x4, (arg1[6]));
> +-    let mut x594: u32 = 0;
> +-    let mut x595: u32 = 0;
> +     let (x594, x595) = fiat_p384_scalar_mulx_u32(x4, (arg1[5]));
> +-    let mut x596: u32 = 0;
> +-    let mut x597: u32 = 0;
> +     let (x596, x597) = fiat_p384_scalar_mulx_u32(x4, (arg1[4]));
> +-    let mut x598: u32 = 0;
> +-    let mut x599: u32 = 0;
> +     let (x598, x599) = fiat_p384_scalar_mulx_u32(x4, (arg1[3]));
> +-    let mut x600: u32 = 0;
> +-    let mut x601: u32 = 0;
> +     let (x600, x601) = fiat_p384_scalar_mulx_u32(x4, (arg1[2]));
> +-    let mut x602: u32 = 0;
> +-    let mut x603: u32 = 0;
> +     let (x602, x603) = fiat_p384_scalar_mulx_u32(x4, (arg1[1]));
> +-    let mut x604: u32 = 0;
> +-    let mut x605: u32 = 0;
> +     let (x604, x605) = fiat_p384_scalar_mulx_u32(x4, (arg1[0]));
> +-    let mut x606: u32 = 0;
> +-    let mut x607: fiat_p384_scalar_u1 = 0;
> +     let (x606, x607) = fiat_p384_scalar_addcarryx_u32(0x0, x605, x602);
> +-    let mut x608: u32 = 0;
> +-    let mut x609: fiat_p384_scalar_u1 = 0;
> +     let (x608, x609) = fiat_p384_scalar_addcarryx_u32(x607, x603, x600);
> +-    let mut x610: u32 = 0;
> +-    let mut x611: fiat_p384_scalar_u1 = 0;
> +     let (x610, x611) = fiat_p384_scalar_addcarryx_u32(x609, x601, x598);
> +-    let mut x612: u32 = 0;
> +-    let mut x613: fiat_p384_scalar_u1 = 0;
> +     let (x612, x613) = fiat_p384_scalar_addcarryx_u32(x611, x599, x596);
> +-    let mut x614: u32 = 0;
> +-    let mut x615: fiat_p384_scalar_u1 = 0;
> +     let (x614, x615) = fiat_p384_scalar_addcarryx_u32(x613, x597, x594);
> +-    let mut x616: u32 = 0;
> +-    let mut x617: fiat_p384_scalar_u1 = 0;
> +     let (x616, x617) = fiat_p384_scalar_addcarryx_u32(x615, x595, x592);
> +-    let mut x618: u32 = 0;
> +-    let mut x619: fiat_p384_scalar_u1 = 0;
> +     let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x593, x590);
> +-    let mut x620: u32 = 0;
> +-    let mut x621: fiat_p384_scalar_u1 = 0;
> +     let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x591, x588);
> +-    let mut x622: u32 = 0;
> +-    let mut x623: fiat_p384_scalar_u1 = 0;
> +     let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x589, x586);
> +-    let mut x624: u32 = 0;
> +-    let mut x625: fiat_p384_scalar_u1 = 0;
> +     let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x587, x584);
> +-    let mut x626: u32 = 0;
> +-    let mut x627: fiat_p384_scalar_u1 = 0;
> +     let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x585, x582);
> +     let x628: u32 = ((x627 as u32) + x583);
> +-    let mut x629: u32 = 0;
> +-    let mut x630: fiat_p384_scalar_u1 = 0;
> +     let (x629, x630) = fiat_p384_scalar_addcarryx_u32(0x0, x557, x604);
> +-    let mut x631: u32 = 0;
> +-    let mut x632: fiat_p384_scalar_u1 = 0;
> +     let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x559, x606);
> +-    let mut x633: u32 = 0;
> +-    let mut x634: fiat_p384_scalar_u1 = 0;
> +     let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x561, x608);
> +-    let mut x635: u32 = 0;
> +-    let mut x636: fiat_p384_scalar_u1 = 0;
> +     let (x635, x636) = fiat_p384_scalar_addcarryx_u32(x634, x563, x610);
> +-    let mut x637: u32 = 0;
> +-    let mut x638: fiat_p384_scalar_u1 = 0;
> +     let (x637, x638) = fiat_p384_scalar_addcarryx_u32(x636, x565, x612);
> +-    let mut x639: u32 = 0;
> +-    let mut x640: fiat_p384_scalar_u1 = 0;
> +     let (x639, x640) = fiat_p384_scalar_addcarryx_u32(x638, x567, x614);
> +-    let mut x641: u32 = 0;
> +-    let mut x642: fiat_p384_scalar_u1 = 0;
> +     let (x641, x642) = fiat_p384_scalar_addcarryx_u32(x640, x569, x616);
> +-    let mut x643: u32 = 0;
> +-    let mut x644: fiat_p384_scalar_u1 = 0;
> +     let (x643, x644) = fiat_p384_scalar_addcarryx_u32(x642, x571, x618);
> +-    let mut x645: u32 = 0;
> +-    let mut x646: fiat_p384_scalar_u1 = 0;
> +     let (x645, x646) = fiat_p384_scalar_addcarryx_u32(x644, x573, x620);
> +-    let mut x647: u32 = 0;
> +-    let mut x648: fiat_p384_scalar_u1 = 0;
> +     let (x647, x648) = fiat_p384_scalar_addcarryx_u32(x646, x575, x622);
> +-    let mut x649: u32 = 0;
> +-    let mut x650: fiat_p384_scalar_u1 = 0;
> +     let (x649, x650) = fiat_p384_scalar_addcarryx_u32(x648, x577, x624);
> +-    let mut x651: u32 = 0;
> +-    let mut x652: fiat_p384_scalar_u1 = 0;
> +     let (x651, x652) = fiat_p384_scalar_addcarryx_u32(x650, x579, x626);
> +-    let mut x653: u32 = 0;
> +-    let mut x654: fiat_p384_scalar_u1 = 0;
> +     let (x653, x654) = fiat_p384_scalar_addcarryx_u32(x652, x581, x628);
> +-    let mut x655: u32 = 0;
> +-    let mut x656: u32 = 0;
> +     let (x655, x656) = fiat_p384_scalar_mulx_u32(x629, 0xe88fdc45);
> +-    let mut x657: u32 = 0;
> +-    let mut x658: u32 = 0;
> +     let (x657, x658) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x659: u32 = 0;
> +-    let mut x660: u32 = 0;
> +     let (x659, x660) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x661: u32 = 0;
> +-    let mut x662: u32 = 0;
> +     let (x661, x662) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x663: u32 = 0;
> +-    let mut x664: u32 = 0;
> +     let (x663, x664) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x665: u32 = 0;
> +-    let mut x666: u32 = 0;
> +     let (x665, x666) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x667: u32 = 0;
> +-    let mut x668: u32 = 0;
> +     let (x667, x668) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
> +-    let mut x669: u32 = 0;
> +-    let mut x670: u32 = 0;
> +     let (x669, x670) = fiat_p384_scalar_mulx_u32(x655, 0xc7634d81);
> +-    let mut x671: u32 = 0;
> +-    let mut x672: u32 = 0;
> +     let (x671, x672) = fiat_p384_scalar_mulx_u32(x655, 0xf4372ddf);
> +-    let mut x673: u32 = 0;
> +-    let mut x674: u32 = 0;
> +     let (x673, x674) = fiat_p384_scalar_mulx_u32(x655, 0x581a0db2);
> +-    let mut x675: u32 = 0;
> +-    let mut x676: u32 = 0;
> +     let (x675, x676) = fiat_p384_scalar_mulx_u32(x655, 0x48b0a77a);
> +-    let mut x677: u32 = 0;
> +-    let mut x678: u32 = 0;
> +     let (x677, x678) = fiat_p384_scalar_mulx_u32(x655, 0xecec196a);
> +-    let mut x679: u32 = 0;
> +-    let mut x680: u32 = 0;
> +     let (x679, x680) = fiat_p384_scalar_mulx_u32(x655, 0xccc52973);
> +-    let mut x681: u32 = 0;
> +-    let mut x682: fiat_p384_scalar_u1 = 0;
> +     let (x681, x682) = fiat_p384_scalar_addcarryx_u32(0x0, x680, x677);
> +-    let mut x683: u32 = 0;
> +-    let mut x684: fiat_p384_scalar_u1 = 0;
> +     let (x683, x684) = fiat_p384_scalar_addcarryx_u32(x682, x678, x675);
> +-    let mut x685: u32 = 0;
> +-    let mut x686: fiat_p384_scalar_u1 = 0;
> +     let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x676, x673);
> +-    let mut x687: u32 = 0;
> +-    let mut x688: fiat_p384_scalar_u1 = 0;
> +     let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x674, x671);
> +-    let mut x689: u32 = 0;
> +-    let mut x690: fiat_p384_scalar_u1 = 0;
> +     let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x672, x669);
> +-    let mut x691: u32 = 0;
> +-    let mut x692: fiat_p384_scalar_u1 = 0;
> +     let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x670, x667);
> +-    let mut x693: u32 = 0;
> +-    let mut x694: fiat_p384_scalar_u1 = 0;
> +     let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x668, x665);
> +-    let mut x695: u32 = 0;
> +-    let mut x696: fiat_p384_scalar_u1 = 0;
> +     let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x666, x663);
> +-    let mut x697: u32 = 0;
> +-    let mut x698: fiat_p384_scalar_u1 = 0;
> +     let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x664, x661);
> +-    let mut x699: u32 = 0;
> +-    let mut x700: fiat_p384_scalar_u1 = 0;
> +     let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x662, x659);
> +-    let mut x701: u32 = 0;
> +-    let mut x702: fiat_p384_scalar_u1 = 0;
> +     let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x660, x657);
> +     let x703: u32 = ((x702 as u32) + x658);
> +-    let mut x704: u32 = 0;
> +-    let mut x705: fiat_p384_scalar_u1 = 0;
> +     let (x704, x705) = fiat_p384_scalar_addcarryx_u32(0x0, x629, x679);
> +-    let mut x706: u32 = 0;
> +-    let mut x707: fiat_p384_scalar_u1 = 0;
> +     let (x706, x707) = fiat_p384_scalar_addcarryx_u32(x705, x631, x681);
> +-    let mut x708: u32 = 0;
> +-    let mut x709: fiat_p384_scalar_u1 = 0;
> +     let (x708, x709) = fiat_p384_scalar_addcarryx_u32(x707, x633, x683);
> +-    let mut x710: u32 = 0;
> +-    let mut x711: fiat_p384_scalar_u1 = 0;
> +     let (x710, x711) = fiat_p384_scalar_addcarryx_u32(x709, x635, x685);
> +-    let mut x712: u32 = 0;
> +-    let mut x713: fiat_p384_scalar_u1 = 0;
> +     let (x712, x713) = fiat_p384_scalar_addcarryx_u32(x711, x637, x687);
> +-    let mut x714: u32 = 0;
> +-    let mut x715: fiat_p384_scalar_u1 = 0;
> +     let (x714, x715) = fiat_p384_scalar_addcarryx_u32(x713, x639, x689);
> +-    let mut x716: u32 = 0;
> +-    let mut x717: fiat_p384_scalar_u1 = 0;
> +     let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x641, x691);
> +-    let mut x718: u32 = 0;
> +-    let mut x719: fiat_p384_scalar_u1 = 0;
> +     let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x643, x693);
> +-    let mut x720: u32 = 0;
> +-    let mut x721: fiat_p384_scalar_u1 = 0;
> +     let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x645, x695);
> +-    let mut x722: u32 = 0;
> +-    let mut x723: fiat_p384_scalar_u1 = 0;
> +     let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x647, x697);
> +-    let mut x724: u32 = 0;
> +-    let mut x725: fiat_p384_scalar_u1 = 0;
> +     let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x649, x699);
> +-    let mut x726: u32 = 0;
> +-    let mut x727: fiat_p384_scalar_u1 = 0;
> +     let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x651, x701);
> +-    let mut x728: u32 = 0;
> +-    let mut x729: fiat_p384_scalar_u1 = 0;
> +     let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x653, x703);
> +     let x730: u32 = ((x729 as u32) + (x654 as u32));
> +-    let mut x731: u32 = 0;
> +-    let mut x732: u32 = 0;
> +     let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, (arg1[11]));
> +-    let mut x733: u32 = 0;
> +-    let mut x734: u32 = 0;
> +     let (x733, x734) = fiat_p384_scalar_mulx_u32(x5, (arg1[10]));
> +-    let mut x735: u32 = 0;
> +-    let mut x736: u32 = 0;
> +     let (x735, x736) = fiat_p384_scalar_mulx_u32(x5, (arg1[9]));
> +-    let mut x737: u32 = 0;
> +-    let mut x738: u32 = 0;
> +     let (x737, x738) = fiat_p384_scalar_mulx_u32(x5, (arg1[8]));
> +-    let mut x739: u32 = 0;
> +-    let mut x740: u32 = 0;
> +     let (x739, x740) = fiat_p384_scalar_mulx_u32(x5, (arg1[7]));
> +-    let mut x741: u32 = 0;
> +-    let mut x742: u32 = 0;
> +     let (x741, x742) = fiat_p384_scalar_mulx_u32(x5, (arg1[6]));
> +-    let mut x743: u32 = 0;
> +-    let mut x744: u32 = 0;
> +     let (x743, x744) = fiat_p384_scalar_mulx_u32(x5, (arg1[5]));
> +-    let mut x745: u32 = 0;
> +-    let mut x746: u32 = 0;
> +     let (x745, x746) = fiat_p384_scalar_mulx_u32(x5, (arg1[4]));
> +-    let mut x747: u32 = 0;
> +-    let mut x748: u32 = 0;
> +     let (x747, x748) = fiat_p384_scalar_mulx_u32(x5, (arg1[3]));
> +-    let mut x749: u32 = 0;
> +-    let mut x750: u32 = 0;
> +     let (x749, x750) = fiat_p384_scalar_mulx_u32(x5, (arg1[2]));
> +-    let mut x751: u32 = 0;
> +-    let mut x752: u32 = 0;
> +     let (x751, x752) = fiat_p384_scalar_mulx_u32(x5, (arg1[1]));
> +-    let mut x753: u32 = 0;
> +-    let mut x754: u32 = 0;
> +     let (x753, x754) = fiat_p384_scalar_mulx_u32(x5, (arg1[0]));
> +-    let mut x755: u32 = 0;
> +-    let mut x756: fiat_p384_scalar_u1 = 0;
> +     let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x754, x751);
> +-    let mut x757: u32 = 0;
> +-    let mut x758: fiat_p384_scalar_u1 = 0;
> +     let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x752, x749);
> +-    let mut x759: u32 = 0;
> +-    let mut x760: fiat_p384_scalar_u1 = 0;
> +     let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x750, x747);
> +-    let mut x761: u32 = 0;
> +-    let mut x762: fiat_p384_scalar_u1 = 0;
> +     let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x748, x745);
> +-    let mut x763: u32 = 0;
> +-    let mut x764: fiat_p384_scalar_u1 = 0;
> +     let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x746, x743);
> +-    let mut x765: u32 = 0;
> +-    let mut x766: fiat_p384_scalar_u1 = 0;
> +     let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x744, x741);
> +-    let mut x767: u32 = 0;
> +-    let mut x768: fiat_p384_scalar_u1 = 0;
> +     let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x742, x739);
> +-    let mut x769: u32 = 0;
> +-    let mut x770: fiat_p384_scalar_u1 = 0;
> +     let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x740, x737);
> +-    let mut x771: u32 = 0;
> +-    let mut x772: fiat_p384_scalar_u1 = 0;
> +     let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x738, x735);
> +-    let mut x773: u32 = 0;
> +-    let mut x774: fiat_p384_scalar_u1 = 0;
> +     let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x736, x733);
> +-    let mut x775: u32 = 0;
> +-    let mut x776: fiat_p384_scalar_u1 = 0;
> +     let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x734, x731);
> +     let x777: u32 = ((x776 as u32) + x732);
> +-    let mut x778: u32 = 0;
> +-    let mut x779: fiat_p384_scalar_u1 = 0;
> +     let (x778, x779) = fiat_p384_scalar_addcarryx_u32(0x0, x706, x753);
> +-    let mut x780: u32 = 0;
> +-    let mut x781: fiat_p384_scalar_u1 = 0;
> +     let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x708, x755);
> +-    let mut x782: u32 = 0;
> +-    let mut x783: fiat_p384_scalar_u1 = 0;
> +     let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x710, x757);
> +-    let mut x784: u32 = 0;
> +-    let mut x785: fiat_p384_scalar_u1 = 0;
> +     let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x712, x759);
> +-    let mut x786: u32 = 0;
> +-    let mut x787: fiat_p384_scalar_u1 = 0;
> +     let (x786, x787) = fiat_p384_scalar_addcarryx_u32(x785, x714, x761);
> +-    let mut x788: u32 = 0;
> +-    let mut x789: fiat_p384_scalar_u1 = 0;
> +     let (x788, x789) = fiat_p384_scalar_addcarryx_u32(x787, x716, x763);
> +-    let mut x790: u32 = 0;
> +-    let mut x791: fiat_p384_scalar_u1 = 0;
> +     let (x790, x791) = fiat_p384_scalar_addcarryx_u32(x789, x718, x765);
> +-    let mut x792: u32 = 0;
> +-    let mut x793: fiat_p384_scalar_u1 = 0;
> +     let (x792, x793) = fiat_p384_scalar_addcarryx_u32(x791, x720, x767);
> +-    let mut x794: u32 = 0;
> +-    let mut x795: fiat_p384_scalar_u1 = 0;
> +     let (x794, x795) = fiat_p384_scalar_addcarryx_u32(x793, x722, x769);
> +-    let mut x796: u32 = 0;
> +-    let mut x797: fiat_p384_scalar_u1 = 0;
> +     let (x796, x797) = fiat_p384_scalar_addcarryx_u32(x795, x724, x771);
> +-    let mut x798: u32 = 0;
> +-    let mut x799: fiat_p384_scalar_u1 = 0;
> +     let (x798, x799) = fiat_p384_scalar_addcarryx_u32(x797, x726, x773);
> +-    let mut x800: u32 = 0;
> +-    let mut x801: fiat_p384_scalar_u1 = 0;
> +     let (x800, x801) = fiat_p384_scalar_addcarryx_u32(x799, x728, x775);
> +-    let mut x802: u32 = 0;
> +-    let mut x803: fiat_p384_scalar_u1 = 0;
> +     let (x802, x803) = fiat_p384_scalar_addcarryx_u32(x801, x730, x777);
> +-    let mut x804: u32 = 0;
> +-    let mut x805: u32 = 0;
> +     let (x804, x805) = fiat_p384_scalar_mulx_u32(x778, 0xe88fdc45);
> +-    let mut x806: u32 = 0;
> +-    let mut x807: u32 = 0;
> +     let (x806, x807) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x808: u32 = 0;
> +-    let mut x809: u32 = 0;
> +     let (x808, x809) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x810: u32 = 0;
> +-    let mut x811: u32 = 0;
> +     let (x810, x811) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x812: u32 = 0;
> +-    let mut x813: u32 = 0;
> +     let (x812, x813) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x814: u32 = 0;
> +-    let mut x815: u32 = 0;
> +     let (x814, x815) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x816: u32 = 0;
> +-    let mut x817: u32 = 0;
> +     let (x816, x817) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
> +-    let mut x818: u32 = 0;
> +-    let mut x819: u32 = 0;
> +     let (x818, x819) = fiat_p384_scalar_mulx_u32(x804, 0xc7634d81);
> +-    let mut x820: u32 = 0;
> +-    let mut x821: u32 = 0;
> +     let (x820, x821) = fiat_p384_scalar_mulx_u32(x804, 0xf4372ddf);
> +-    let mut x822: u32 = 0;
> +-    let mut x823: u32 = 0;
> +     let (x822, x823) = fiat_p384_scalar_mulx_u32(x804, 0x581a0db2);
> +-    let mut x824: u32 = 0;
> +-    let mut x825: u32 = 0;
> +     let (x824, x825) = fiat_p384_scalar_mulx_u32(x804, 0x48b0a77a);
> +-    let mut x826: u32 = 0;
> +-    let mut x827: u32 = 0;
> +     let (x826, x827) = fiat_p384_scalar_mulx_u32(x804, 0xecec196a);
> +-    let mut x828: u32 = 0;
> +-    let mut x829: u32 = 0;
> +     let (x828, x829) = fiat_p384_scalar_mulx_u32(x804, 0xccc52973);
> +-    let mut x830: u32 = 0;
> +-    let mut x831: fiat_p384_scalar_u1 = 0;
> +     let (x830, x831) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x826);
> +-    let mut x832: u32 = 0;
> +-    let mut x833: fiat_p384_scalar_u1 = 0;
> +     let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x827, x824);
> +-    let mut x834: u32 = 0;
> +-    let mut x835: fiat_p384_scalar_u1 = 0;
> +     let (x834, x835) = fiat_p384_scalar_addcarryx_u32(x833, x825, x822);
> +-    let mut x836: u32 = 0;
> +-    let mut x837: fiat_p384_scalar_u1 = 0;
> +     let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x823, x820);
> +-    let mut x838: u32 = 0;
> +-    let mut x839: fiat_p384_scalar_u1 = 0;
> +     let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x821, x818);
> +-    let mut x840: u32 = 0;
> +-    let mut x841: fiat_p384_scalar_u1 = 0;
> +     let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x819, x816);
> +-    let mut x842: u32 = 0;
> +-    let mut x843: fiat_p384_scalar_u1 = 0;
> +     let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x817, x814);
> +-    let mut x844: u32 = 0;
> +-    let mut x845: fiat_p384_scalar_u1 = 0;
> +     let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x815, x812);
> +-    let mut x846: u32 = 0;
> +-    let mut x847: fiat_p384_scalar_u1 = 0;
> +     let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x813, x810);
> +-    let mut x848: u32 = 0;
> +-    let mut x849: fiat_p384_scalar_u1 = 0;
> +     let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x811, x808);
> +-    let mut x850: u32 = 0;
> +-    let mut x851: fiat_p384_scalar_u1 = 0;
> +     let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x809, x806);
> +     let x852: u32 = ((x851 as u32) + x807);
> +-    let mut x853: u32 = 0;
> +-    let mut x854: fiat_p384_scalar_u1 = 0;
> +     let (x853, x854) = fiat_p384_scalar_addcarryx_u32(0x0, x778, x828);
> +-    let mut x855: u32 = 0;
> +-    let mut x856: fiat_p384_scalar_u1 = 0;
> +     let (x855, x856) = fiat_p384_scalar_addcarryx_u32(x854, x780, x830);
> +-    let mut x857: u32 = 0;
> +-    let mut x858: fiat_p384_scalar_u1 = 0;
> +     let (x857, x858) = fiat_p384_scalar_addcarryx_u32(x856, x782, x832);
> +-    let mut x859: u32 = 0;
> +-    let mut x860: fiat_p384_scalar_u1 = 0;
> +     let (x859, x860) = fiat_p384_scalar_addcarryx_u32(x858, x784, x834);
> +-    let mut x861: u32 = 0;
> +-    let mut x862: fiat_p384_scalar_u1 = 0;
> +     let (x861, x862) = fiat_p384_scalar_addcarryx_u32(x860, x786, x836);
> +-    let mut x863: u32 = 0;
> +-    let mut x864: fiat_p384_scalar_u1 = 0;
> +     let (x863, x864) = fiat_p384_scalar_addcarryx_u32(x862, x788, x838);
> +-    let mut x865: u32 = 0;
> +-    let mut x866: fiat_p384_scalar_u1 = 0;
> +     let (x865, x866) = fiat_p384_scalar_addcarryx_u32(x864, x790, x840);
> +-    let mut x867: u32 = 0;
> +-    let mut x868: fiat_p384_scalar_u1 = 0;
> +     let (x867, x868) = fiat_p384_scalar_addcarryx_u32(x866, x792, x842);
> +-    let mut x869: u32 = 0;
> +-    let mut x870: fiat_p384_scalar_u1 = 0;
> +     let (x869, x870) = fiat_p384_scalar_addcarryx_u32(x868, x794, x844);
> +-    let mut x871: u32 = 0;
> +-    let mut x872: fiat_p384_scalar_u1 = 0;
> +     let (x871, x872) = fiat_p384_scalar_addcarryx_u32(x870, x796, x846);
> +-    let mut x873: u32 = 0;
> +-    let mut x874: fiat_p384_scalar_u1 = 0;
> +     let (x873, x874) = fiat_p384_scalar_addcarryx_u32(x872, x798, x848);
> +-    let mut x875: u32 = 0;
> +-    let mut x876: fiat_p384_scalar_u1 = 0;
> +     let (x875, x876) = fiat_p384_scalar_addcarryx_u32(x874, x800, x850);
> +-    let mut x877: u32 = 0;
> +-    let mut x878: fiat_p384_scalar_u1 = 0;
> +     let (x877, x878) = fiat_p384_scalar_addcarryx_u32(x876, x802, x852);
> +     let x879: u32 = ((x878 as u32) + (x803 as u32));
> +-    let mut x880: u32 = 0;
> +-    let mut x881: u32 = 0;
> +     let (x880, x881) = fiat_p384_scalar_mulx_u32(x6, (arg1[11]));
> +-    let mut x882: u32 = 0;
> +-    let mut x883: u32 = 0;
> +     let (x882, x883) = fiat_p384_scalar_mulx_u32(x6, (arg1[10]));
> +-    let mut x884: u32 = 0;
> +-    let mut x885: u32 = 0;
> +     let (x884, x885) = fiat_p384_scalar_mulx_u32(x6, (arg1[9]));
> +-    let mut x886: u32 = 0;
> +-    let mut x887: u32 = 0;
> +     let (x886, x887) = fiat_p384_scalar_mulx_u32(x6, (arg1[8]));
> +-    let mut x888: u32 = 0;
> +-    let mut x889: u32 = 0;
> +     let (x888, x889) = fiat_p384_scalar_mulx_u32(x6, (arg1[7]));
> +-    let mut x890: u32 = 0;
> +-    let mut x891: u32 = 0;
> +     let (x890, x891) = fiat_p384_scalar_mulx_u32(x6, (arg1[6]));
> +-    let mut x892: u32 = 0;
> +-    let mut x893: u32 = 0;
> +     let (x892, x893) = fiat_p384_scalar_mulx_u32(x6, (arg1[5]));
> +-    let mut x894: u32 = 0;
> +-    let mut x895: u32 = 0;
> +     let (x894, x895) = fiat_p384_scalar_mulx_u32(x6, (arg1[4]));
> +-    let mut x896: u32 = 0;
> +-    let mut x897: u32 = 0;
> +     let (x896, x897) = fiat_p384_scalar_mulx_u32(x6, (arg1[3]));
> +-    let mut x898: u32 = 0;
> +-    let mut x899: u32 = 0;
> +     let (x898, x899) = fiat_p384_scalar_mulx_u32(x6, (arg1[2]));
> +-    let mut x900: u32 = 0;
> +-    let mut x901: u32 = 0;
> +     let (x900, x901) = fiat_p384_scalar_mulx_u32(x6, (arg1[1]));
> +-    let mut x902: u32 = 0;
> +-    let mut x903: u32 = 0;
> +     let (x902, x903) = fiat_p384_scalar_mulx_u32(x6, (arg1[0]));
> +-    let mut x904: u32 = 0;
> +-    let mut x905: fiat_p384_scalar_u1 = 0;
> +     let (x904, x905) = fiat_p384_scalar_addcarryx_u32(0x0, x903, x900);
> +-    let mut x906: u32 = 0;
> +-    let mut x907: fiat_p384_scalar_u1 = 0;
> +     let (x906, x907) = fiat_p384_scalar_addcarryx_u32(x905, x901, x898);
> +-    let mut x908: u32 = 0;
> +-    let mut x909: fiat_p384_scalar_u1 = 0;
> +     let (x908, x909) = fiat_p384_scalar_addcarryx_u32(x907, x899, x896);
> +-    let mut x910: u32 = 0;
> +-    let mut x911: fiat_p384_scalar_u1 = 0;
> +     let (x910, x911) = fiat_p384_scalar_addcarryx_u32(x909, x897, x894);
> +-    let mut x912: u32 = 0;
> +-    let mut x913: fiat_p384_scalar_u1 = 0;
> +     let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x895, x892);
> +-    let mut x914: u32 = 0;
> +-    let mut x915: fiat_p384_scalar_u1 = 0;
> +     let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x893, x890);
> +-    let mut x916: u32 = 0;
> +-    let mut x917: fiat_p384_scalar_u1 = 0;
> +     let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x891, x888);
> +-    let mut x918: u32 = 0;
> +-    let mut x919: fiat_p384_scalar_u1 = 0;
> +     let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x889, x886);
> +-    let mut x920: u32 = 0;
> +-    let mut x921: fiat_p384_scalar_u1 = 0;
> +     let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x887, x884);
> +-    let mut x922: u32 = 0;
> +-    let mut x923: fiat_p384_scalar_u1 = 0;
> +     let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x885, x882);
> +-    let mut x924: u32 = 0;
> +-    let mut x925: fiat_p384_scalar_u1 = 0;
> +     let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x883, x880);
> +     let x926: u32 = ((x925 as u32) + x881);
> +-    let mut x927: u32 = 0;
> +-    let mut x928: fiat_p384_scalar_u1 = 0;
> +     let (x927, x928) = fiat_p384_scalar_addcarryx_u32(0x0, x855, x902);
> +-    let mut x929: u32 = 0;
> +-    let mut x930: fiat_p384_scalar_u1 = 0;
> +     let (x929, x930) = fiat_p384_scalar_addcarryx_u32(x928, x857, x904);
> +-    let mut x931: u32 = 0;
> +-    let mut x932: fiat_p384_scalar_u1 = 0;
> +     let (x931, x932) = fiat_p384_scalar_addcarryx_u32(x930, x859, x906);
> +-    let mut x933: u32 = 0;
> +-    let mut x934: fiat_p384_scalar_u1 = 0;
> +     let (x933, x934) = fiat_p384_scalar_addcarryx_u32(x932, x861, x908);
> +-    let mut x935: u32 = 0;
> +-    let mut x936: fiat_p384_scalar_u1 = 0;
> +     let (x935, x936) = fiat_p384_scalar_addcarryx_u32(x934, x863, x910);
> +-    let mut x937: u32 = 0;
> +-    let mut x938: fiat_p384_scalar_u1 = 0;
> +     let (x937, x938) = fiat_p384_scalar_addcarryx_u32(x936, x865, x912);
> +-    let mut x939: u32 = 0;
> +-    let mut x940: fiat_p384_scalar_u1 = 0;
> +     let (x939, x940) = fiat_p384_scalar_addcarryx_u32(x938, x867, x914);
> +-    let mut x941: u32 = 0;
> +-    let mut x942: fiat_p384_scalar_u1 = 0;
> +     let (x941, x942) = fiat_p384_scalar_addcarryx_u32(x940, x869, x916);
> +-    let mut x943: u32 = 0;
> +-    let mut x944: fiat_p384_scalar_u1 = 0;
> +     let (x943, x944) = fiat_p384_scalar_addcarryx_u32(x942, x871, x918);
> +-    let mut x945: u32 = 0;
> +-    let mut x946: fiat_p384_scalar_u1 = 0;
> +     let (x945, x946) = fiat_p384_scalar_addcarryx_u32(x944, x873, x920);
> +-    let mut x947: u32 = 0;
> +-    let mut x948: fiat_p384_scalar_u1 = 0;
> +     let (x947, x948) = fiat_p384_scalar_addcarryx_u32(x946, x875, x922);
> +-    let mut x949: u32 = 0;
> +-    let mut x950: fiat_p384_scalar_u1 = 0;
> +     let (x949, x950) = fiat_p384_scalar_addcarryx_u32(x948, x877, x924);
> +-    let mut x951: u32 = 0;
> +-    let mut x952: fiat_p384_scalar_u1 = 0;
> +     let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x879, x926);
> +-    let mut x953: u32 = 0;
> +-    let mut x954: u32 = 0;
> +     let (x953, x954) = fiat_p384_scalar_mulx_u32(x927, 0xe88fdc45);
> +-    let mut x955: u32 = 0;
> +-    let mut x956: u32 = 0;
> +     let (x955, x956) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x957: u32 = 0;
> +-    let mut x958: u32 = 0;
> +     let (x957, x958) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x959: u32 = 0;
> +-    let mut x960: u32 = 0;
> +     let (x959, x960) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x961: u32 = 0;
> +-    let mut x962: u32 = 0;
> +     let (x961, x962) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x963: u32 = 0;
> +-    let mut x964: u32 = 0;
> +     let (x963, x964) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x965: u32 = 0;
> +-    let mut x966: u32 = 0;
> +     let (x965, x966) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
> +-    let mut x967: u32 = 0;
> +-    let mut x968: u32 = 0;
> +     let (x967, x968) = fiat_p384_scalar_mulx_u32(x953, 0xc7634d81);
> +-    let mut x969: u32 = 0;
> +-    let mut x970: u32 = 0;
> +     let (x969, x970) = fiat_p384_scalar_mulx_u32(x953, 0xf4372ddf);
> +-    let mut x971: u32 = 0;
> +-    let mut x972: u32 = 0;
> +     let (x971, x972) = fiat_p384_scalar_mulx_u32(x953, 0x581a0db2);
> +-    let mut x973: u32 = 0;
> +-    let mut x974: u32 = 0;
> +     let (x973, x974) = fiat_p384_scalar_mulx_u32(x953, 0x48b0a77a);
> +-    let mut x975: u32 = 0;
> +-    let mut x976: u32 = 0;
> +     let (x975, x976) = fiat_p384_scalar_mulx_u32(x953, 0xecec196a);
> +-    let mut x977: u32 = 0;
> +-    let mut x978: u32 = 0;
> +     let (x977, x978) = fiat_p384_scalar_mulx_u32(x953, 0xccc52973);
> +-    let mut x979: u32 = 0;
> +-    let mut x980: fiat_p384_scalar_u1 = 0;
> +     let (x979, x980) = fiat_p384_scalar_addcarryx_u32(0x0, x978, x975);
> +-    let mut x981: u32 = 0;
> +-    let mut x982: fiat_p384_scalar_u1 = 0;
> +     let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x976, x973);
> +-    let mut x983: u32 = 0;
> +-    let mut x984: fiat_p384_scalar_u1 = 0;
> +     let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x974, x971);
> +-    let mut x985: u32 = 0;
> +-    let mut x986: fiat_p384_scalar_u1 = 0;
> +     let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x972, x969);
> +-    let mut x987: u32 = 0;
> +-    let mut x988: fiat_p384_scalar_u1 = 0;
> +     let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x970, x967);
> +-    let mut x989: u32 = 0;
> +-    let mut x990: fiat_p384_scalar_u1 = 0;
> +     let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x968, x965);
> +-    let mut x991: u32 = 0;
> +-    let mut x992: fiat_p384_scalar_u1 = 0;
> +     let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x966, x963);
> +-    let mut x993: u32 = 0;
> +-    let mut x994: fiat_p384_scalar_u1 = 0;
> +     let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x964, x961);
> +-    let mut x995: u32 = 0;
> +-    let mut x996: fiat_p384_scalar_u1 = 0;
> +     let (x995, x996) = fiat_p384_scalar_addcarryx_u32(x994, x962, x959);
> +-    let mut x997: u32 = 0;
> +-    let mut x998: fiat_p384_scalar_u1 = 0;
> +     let (x997, x998) = fiat_p384_scalar_addcarryx_u32(x996, x960, x957);
> +-    let mut x999: u32 = 0;
> +-    let mut x1000: fiat_p384_scalar_u1 = 0;
> +     let (x999, x1000) = fiat_p384_scalar_addcarryx_u32(x998, x958, x955);
> +     let x1001: u32 = ((x1000 as u32) + x956);
> +-    let mut x1002: u32 = 0;
> +-    let mut x1003: fiat_p384_scalar_u1 = 0;
> +     let (x1002, x1003) = fiat_p384_scalar_addcarryx_u32(0x0, x927, x977);
> +-    let mut x1004: u32 = 0;
> +-    let mut x1005: fiat_p384_scalar_u1 = 0;
> +     let (x1004, x1005) = fiat_p384_scalar_addcarryx_u32(x1003, x929, x979);
> +-    let mut x1006: u32 = 0;
> +-    let mut x1007: fiat_p384_scalar_u1 = 0;
> +     let (x1006, x1007) = fiat_p384_scalar_addcarryx_u32(x1005, x931, x981);
> +-    let mut x1008: u32 = 0;
> +-    let mut x1009: fiat_p384_scalar_u1 = 0;
> +     let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(x1007, x933, x983);
> +-    let mut x1010: u32 = 0;
> +-    let mut x1011: fiat_p384_scalar_u1 = 0;
> +     let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x935, x985);
> +-    let mut x1012: u32 = 0;
> +-    let mut x1013: fiat_p384_scalar_u1 = 0;
> +     let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x937, x987);
> +-    let mut x1014: u32 = 0;
> +-    let mut x1015: fiat_p384_scalar_u1 = 0;
> +     let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x939, x989);
> +-    let mut x1016: u32 = 0;
> +-    let mut x1017: fiat_p384_scalar_u1 = 0;
> +     let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x941, x991);
> +-    let mut x1018: u32 = 0;
> +-    let mut x1019: fiat_p384_scalar_u1 = 0;
> +     let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x943, x993);
> +-    let mut x1020: u32 = 0;
> +-    let mut x1021: fiat_p384_scalar_u1 = 0;
> +     let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x945, x995);
> +-    let mut x1022: u32 = 0;
> +-    let mut x1023: fiat_p384_scalar_u1 = 0;
> +     let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x947, x997);
> +-    let mut x1024: u32 = 0;
> +-    let mut x1025: fiat_p384_scalar_u1 = 0;
> +     let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x949, x999);
> +-    let mut x1026: u32 = 0;
> +-    let mut x1027: fiat_p384_scalar_u1 = 0;
> +     let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x951, x1001);
> +     let x1028: u32 = ((x1027 as u32) + (x952 as u32));
> +-    let mut x1029: u32 = 0;
> +-    let mut x1030: u32 = 0;
> +     let (x1029, x1030) = fiat_p384_scalar_mulx_u32(x7, (arg1[11]));
> +-    let mut x1031: u32 = 0;
> +-    let mut x1032: u32 = 0;
> +     let (x1031, x1032) = fiat_p384_scalar_mulx_u32(x7, (arg1[10]));
> +-    let mut x1033: u32 = 0;
> +-    let mut x1034: u32 = 0;
> +     let (x1033, x1034) = fiat_p384_scalar_mulx_u32(x7, (arg1[9]));
> +-    let mut x1035: u32 = 0;
> +-    let mut x1036: u32 = 0;
> +     let (x1035, x1036) = fiat_p384_scalar_mulx_u32(x7, (arg1[8]));
> +-    let mut x1037: u32 = 0;
> +-    let mut x1038: u32 = 0;
> +     let (x1037, x1038) = fiat_p384_scalar_mulx_u32(x7, (arg1[7]));
> +-    let mut x1039: u32 = 0;
> +-    let mut x1040: u32 = 0;
> +     let (x1039, x1040) = fiat_p384_scalar_mulx_u32(x7, (arg1[6]));
> +-    let mut x1041: u32 = 0;
> +-    let mut x1042: u32 = 0;
> +     let (x1041, x1042) = fiat_p384_scalar_mulx_u32(x7, (arg1[5]));
> +-    let mut x1043: u32 = 0;
> +-    let mut x1044: u32 = 0;
> +     let (x1043, x1044) = fiat_p384_scalar_mulx_u32(x7, (arg1[4]));
> +-    let mut x1045: u32 = 0;
> +-    let mut x1046: u32 = 0;
> +     let (x1045, x1046) = fiat_p384_scalar_mulx_u32(x7, (arg1[3]));
> +-    let mut x1047: u32 = 0;
> +-    let mut x1048: u32 = 0;
> +     let (x1047, x1048) = fiat_p384_scalar_mulx_u32(x7, (arg1[2]));
> +-    let mut x1049: u32 = 0;
> +-    let mut x1050: u32 = 0;
> +     let (x1049, x1050) = fiat_p384_scalar_mulx_u32(x7, (arg1[1]));
> +-    let mut x1051: u32 = 0;
> +-    let mut x1052: u32 = 0;
> +     let (x1051, x1052) = fiat_p384_scalar_mulx_u32(x7, (arg1[0]));
> +-    let mut x1053: u32 = 0;
> +-    let mut x1054: fiat_p384_scalar_u1 = 0;
> +     let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(0x0, x1052, x1049);
> +-    let mut x1055: u32 = 0;
> +-    let mut x1056: fiat_p384_scalar_u1 = 0;
> +     let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x1050, x1047);
> +-    let mut x1057: u32 = 0;
> +-    let mut x1058: fiat_p384_scalar_u1 = 0;
> +     let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x1048, x1045);
> +-    let mut x1059: u32 = 0;
> +-    let mut x1060: fiat_p384_scalar_u1 = 0;
> +     let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x1046, x1043);
> +-    let mut x1061: u32 = 0;
> +-    let mut x1062: fiat_p384_scalar_u1 = 0;
> +     let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x1044, x1041);
> +-    let mut x1063: u32 = 0;
> +-    let mut x1064: fiat_p384_scalar_u1 = 0;
> +     let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x1042, x1039);
> +-    let mut x1065: u32 = 0;
> +-    let mut x1066: fiat_p384_scalar_u1 = 0;
> +     let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x1040, x1037);
> +-    let mut x1067: u32 = 0;
> +-    let mut x1068: fiat_p384_scalar_u1 = 0;
> +     let (x1067, x1068) = fiat_p384_scalar_addcarryx_u32(x1066, x1038, x1035);
> +-    let mut x1069: u32 = 0;
> +-    let mut x1070: fiat_p384_scalar_u1 = 0;
> +     let (x1069, x1070) = fiat_p384_scalar_addcarryx_u32(x1068, x1036, x1033);
> +-    let mut x1071: u32 = 0;
> +-    let mut x1072: fiat_p384_scalar_u1 = 0;
> +     let (x1071, x1072) = fiat_p384_scalar_addcarryx_u32(x1070, x1034, x1031);
> +-    let mut x1073: u32 = 0;
> +-    let mut x1074: fiat_p384_scalar_u1 = 0;
> +     let (x1073, x1074) = fiat_p384_scalar_addcarryx_u32(x1072, x1032, x1029);
> +     let x1075: u32 = ((x1074 as u32) + x1030);
> +-    let mut x1076: u32 = 0;
> +-    let mut x1077: fiat_p384_scalar_u1 = 0;
> +     let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(0x0, x1004, x1051);
> +-    let mut x1078: u32 = 0;
> +-    let mut x1079: fiat_p384_scalar_u1 = 0;
> +     let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1006, x1053);
> +-    let mut x1080: u32 = 0;
> +-    let mut x1081: fiat_p384_scalar_u1 = 0;
> +     let (x1080, x1081) = fiat_p384_scalar_addcarryx_u32(x1079, x1008, x1055);
> +-    let mut x1082: u32 = 0;
> +-    let mut x1083: fiat_p384_scalar_u1 = 0;
> +     let (x1082, x1083) = fiat_p384_scalar_addcarryx_u32(x1081, x1010, x1057);
> +-    let mut x1084: u32 = 0;
> +-    let mut x1085: fiat_p384_scalar_u1 = 0;
> +     let (x1084, x1085) = fiat_p384_scalar_addcarryx_u32(x1083, x1012, x1059);
> +-    let mut x1086: u32 = 0;
> +-    let mut x1087: fiat_p384_scalar_u1 = 0;
> +     let (x1086, x1087) = fiat_p384_scalar_addcarryx_u32(x1085, x1014, x1061);
> +-    let mut x1088: u32 = 0;
> +-    let mut x1089: fiat_p384_scalar_u1 = 0;
> +     let (x1088, x1089) = fiat_p384_scalar_addcarryx_u32(x1087, x1016, x1063);
> +-    let mut x1090: u32 = 0;
> +-    let mut x1091: fiat_p384_scalar_u1 = 0;
> +     let (x1090, x1091) = fiat_p384_scalar_addcarryx_u32(x1089, x1018, x1065);
> +-    let mut x1092: u32 = 0;
> +-    let mut x1093: fiat_p384_scalar_u1 = 0;
> +     let (x1092, x1093) = fiat_p384_scalar_addcarryx_u32(x1091, x1020, x1067);
> +-    let mut x1094: u32 = 0;
> +-    let mut x1095: fiat_p384_scalar_u1 = 0;
> +     let (x1094, x1095) = fiat_p384_scalar_addcarryx_u32(x1093, x1022, x1069);
> +-    let mut x1096: u32 = 0;
> +-    let mut x1097: fiat_p384_scalar_u1 = 0;
> +     let (x1096, x1097) = fiat_p384_scalar_addcarryx_u32(x1095, x1024, x1071);
> +-    let mut x1098: u32 = 0;
> +-    let mut x1099: fiat_p384_scalar_u1 = 0;
> +     let (x1098, x1099) = fiat_p384_scalar_addcarryx_u32(x1097, x1026, x1073);
> +-    let mut x1100: u32 = 0;
> +-    let mut x1101: fiat_p384_scalar_u1 = 0;
> +     let (x1100, x1101) = fiat_p384_scalar_addcarryx_u32(x1099, x1028, x1075);
> +-    let mut x1102: u32 = 0;
> +-    let mut x1103: u32 = 0;
> +     let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1076, 0xe88fdc45);
> +-    let mut x1104: u32 = 0;
> +-    let mut x1105: u32 = 0;
> +     let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1106: u32 = 0;
> +-    let mut x1107: u32 = 0;
> +     let (x1106, x1107) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1108: u32 = 0;
> +-    let mut x1109: u32 = 0;
> +     let (x1108, x1109) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1110: u32 = 0;
> +-    let mut x1111: u32 = 0;
> +     let (x1110, x1111) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1112: u32 = 0;
> +-    let mut x1113: u32 = 0;
> +     let (x1112, x1113) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1114: u32 = 0;
> +-    let mut x1115: u32 = 0;
> +     let (x1114, x1115) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
> +-    let mut x1116: u32 = 0;
> +-    let mut x1117: u32 = 0;
> +     let (x1116, x1117) = fiat_p384_scalar_mulx_u32(x1102, 0xc7634d81);
> +-    let mut x1118: u32 = 0;
> +-    let mut x1119: u32 = 0;
> +     let (x1118, x1119) = fiat_p384_scalar_mulx_u32(x1102, 0xf4372ddf);
> +-    let mut x1120: u32 = 0;
> +-    let mut x1121: u32 = 0;
> +     let (x1120, x1121) = fiat_p384_scalar_mulx_u32(x1102, 0x581a0db2);
> +-    let mut x1122: u32 = 0;
> +-    let mut x1123: u32 = 0;
> +     let (x1122, x1123) = fiat_p384_scalar_mulx_u32(x1102, 0x48b0a77a);
> +-    let mut x1124: u32 = 0;
> +-    let mut x1125: u32 = 0;
> +     let (x1124, x1125) = fiat_p384_scalar_mulx_u32(x1102, 0xecec196a);
> +-    let mut x1126: u32 = 0;
> +-    let mut x1127: u32 = 0;
> +     let (x1126, x1127) = fiat_p384_scalar_mulx_u32(x1102, 0xccc52973);
> +-    let mut x1128: u32 = 0;
> +-    let mut x1129: fiat_p384_scalar_u1 = 0;
> +     let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1127, x1124);
> +-    let mut x1130: u32 = 0;
> +-    let mut x1131: fiat_p384_scalar_u1 = 0;
> +     let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1125, x1122);
> +-    let mut x1132: u32 = 0;
> +-    let mut x1133: fiat_p384_scalar_u1 = 0;
> +     let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1123, x1120);
> +-    let mut x1134: u32 = 0;
> +-    let mut x1135: fiat_p384_scalar_u1 = 0;
> +     let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1121, x1118);
> +-    let mut x1136: u32 = 0;
> +-    let mut x1137: fiat_p384_scalar_u1 = 0;
> +     let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1119, x1116);
> +-    let mut x1138: u32 = 0;
> +-    let mut x1139: fiat_p384_scalar_u1 = 0;
> +     let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1117, x1114);
> +-    let mut x1140: u32 = 0;
> +-    let mut x1141: fiat_p384_scalar_u1 = 0;
> +     let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1115, x1112);
> +-    let mut x1142: u32 = 0;
> +-    let mut x1143: fiat_p384_scalar_u1 = 0;
> +     let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1113, x1110);
> +-    let mut x1144: u32 = 0;
> +-    let mut x1145: fiat_p384_scalar_u1 = 0;
> +     let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1111, x1108);
> +-    let mut x1146: u32 = 0;
> +-    let mut x1147: fiat_p384_scalar_u1 = 0;
> +     let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1109, x1106);
> +-    let mut x1148: u32 = 0;
> +-    let mut x1149: fiat_p384_scalar_u1 = 0;
> +     let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1107, x1104);
> +     let x1150: u32 = ((x1149 as u32) + x1105);
> +-    let mut x1151: u32 = 0;
> +-    let mut x1152: fiat_p384_scalar_u1 = 0;
> +     let (x1151, x1152) = fiat_p384_scalar_addcarryx_u32(0x0, x1076, x1126);
> +-    let mut x1153: u32 = 0;
> +-    let mut x1154: fiat_p384_scalar_u1 = 0;
> +     let (x1153, x1154) = fiat_p384_scalar_addcarryx_u32(x1152, x1078, x1128);
> +-    let mut x1155: u32 = 0;
> +-    let mut x1156: fiat_p384_scalar_u1 = 0;
> +     let (x1155, x1156) = fiat_p384_scalar_addcarryx_u32(x1154, x1080, x1130);
> +-    let mut x1157: u32 = 0;
> +-    let mut x1158: fiat_p384_scalar_u1 = 0;
> +     let (x1157, x1158) = fiat_p384_scalar_addcarryx_u32(x1156, x1082, x1132);
> +-    let mut x1159: u32 = 0;
> +-    let mut x1160: fiat_p384_scalar_u1 = 0;
> +     let (x1159, x1160) = fiat_p384_scalar_addcarryx_u32(x1158, x1084, x1134);
> +-    let mut x1161: u32 = 0;
> +-    let mut x1162: fiat_p384_scalar_u1 = 0;
> +     let (x1161, x1162) = fiat_p384_scalar_addcarryx_u32(x1160, x1086, x1136);
> +-    let mut x1163: u32 = 0;
> +-    let mut x1164: fiat_p384_scalar_u1 = 0;
> +     let (x1163, x1164) = fiat_p384_scalar_addcarryx_u32(x1162, x1088, x1138);
> +-    let mut x1165: u32 = 0;
> +-    let mut x1166: fiat_p384_scalar_u1 = 0;
> +     let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(x1164, x1090, x1140);
> +-    let mut x1167: u32 = 0;
> +-    let mut x1168: fiat_p384_scalar_u1 = 0;
> +     let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1092, x1142);
> +-    let mut x1169: u32 = 0;
> +-    let mut x1170: fiat_p384_scalar_u1 = 0;
> +     let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1094, x1144);
> +-    let mut x1171: u32 = 0;
> +-    let mut x1172: fiat_p384_scalar_u1 = 0;
> +     let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1096, x1146);
> +-    let mut x1173: u32 = 0;
> +-    let mut x1174: fiat_p384_scalar_u1 = 0;
> +     let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1098, x1148);
> +-    let mut x1175: u32 = 0;
> +-    let mut x1176: fiat_p384_scalar_u1 = 0;
> +     let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1100, x1150);
> +     let x1177: u32 = ((x1176 as u32) + (x1101 as u32));
> +-    let mut x1178: u32 = 0;
> +-    let mut x1179: u32 = 0;
> +     let (x1178, x1179) = fiat_p384_scalar_mulx_u32(x8, (arg1[11]));
> +-    let mut x1180: u32 = 0;
> +-    let mut x1181: u32 = 0;
> +     let (x1180, x1181) = fiat_p384_scalar_mulx_u32(x8, (arg1[10]));
> +-    let mut x1182: u32 = 0;
> +-    let mut x1183: u32 = 0;
> +     let (x1182, x1183) = fiat_p384_scalar_mulx_u32(x8, (arg1[9]));
> +-    let mut x1184: u32 = 0;
> +-    let mut x1185: u32 = 0;
> +     let (x1184, x1185) = fiat_p384_scalar_mulx_u32(x8, (arg1[8]));
> +-    let mut x1186: u32 = 0;
> +-    let mut x1187: u32 = 0;
> +     let (x1186, x1187) = fiat_p384_scalar_mulx_u32(x8, (arg1[7]));
> +-    let mut x1188: u32 = 0;
> +-    let mut x1189: u32 = 0;
> +     let (x1188, x1189) = fiat_p384_scalar_mulx_u32(x8, (arg1[6]));
> +-    let mut x1190: u32 = 0;
> +-    let mut x1191: u32 = 0;
> +     let (x1190, x1191) = fiat_p384_scalar_mulx_u32(x8, (arg1[5]));
> +-    let mut x1192: u32 = 0;
> +-    let mut x1193: u32 = 0;
> +     let (x1192, x1193) = fiat_p384_scalar_mulx_u32(x8, (arg1[4]));
> +-    let mut x1194: u32 = 0;
> +-    let mut x1195: u32 = 0;
> +     let (x1194, x1195) = fiat_p384_scalar_mulx_u32(x8, (arg1[3]));
> +-    let mut x1196: u32 = 0;
> +-    let mut x1197: u32 = 0;
> +     let (x1196, x1197) = fiat_p384_scalar_mulx_u32(x8, (arg1[2]));
> +-    let mut x1198: u32 = 0;
> +-    let mut x1199: u32 = 0;
> +     let (x1198, x1199) = fiat_p384_scalar_mulx_u32(x8, (arg1[1]));
> +-    let mut x1200: u32 = 0;
> +-    let mut x1201: u32 = 0;
> +     let (x1200, x1201) = fiat_p384_scalar_mulx_u32(x8, (arg1[0]));
> +-    let mut x1202: u32 = 0;
> +-    let mut x1203: fiat_p384_scalar_u1 = 0;
> +     let (x1202, x1203) = fiat_p384_scalar_addcarryx_u32(0x0, x1201, x1198);
> +-    let mut x1204: u32 = 0;
> +-    let mut x1205: fiat_p384_scalar_u1 = 0;
> +     let (x1204, x1205) = fiat_p384_scalar_addcarryx_u32(x1203, x1199, x1196);
> +-    let mut x1206: u32 = 0;
> +-    let mut x1207: fiat_p384_scalar_u1 = 0;
> +     let (x1206, x1207) = fiat_p384_scalar_addcarryx_u32(x1205, x1197, x1194);
> +-    let mut x1208: u32 = 0;
> +-    let mut x1209: fiat_p384_scalar_u1 = 0;
> +     let (x1208, x1209) = fiat_p384_scalar_addcarryx_u32(x1207, x1195, x1192);
> +-    let mut x1210: u32 = 0;
> +-    let mut x1211: fiat_p384_scalar_u1 = 0;
> +     let (x1210, x1211) = fiat_p384_scalar_addcarryx_u32(x1209, x1193, x1190);
> +-    let mut x1212: u32 = 0;
> +-    let mut x1213: fiat_p384_scalar_u1 = 0;
> +     let (x1212, x1213) = fiat_p384_scalar_addcarryx_u32(x1211, x1191, x1188);
> +-    let mut x1214: u32 = 0;
> +-    let mut x1215: fiat_p384_scalar_u1 = 0;
> +     let (x1214, x1215) = fiat_p384_scalar_addcarryx_u32(x1213, x1189, x1186);
> +-    let mut x1216: u32 = 0;
> +-    let mut x1217: fiat_p384_scalar_u1 = 0;
> +     let (x1216, x1217) = fiat_p384_scalar_addcarryx_u32(x1215, x1187, x1184);
> +-    let mut x1218: u32 = 0;
> +-    let mut x1219: fiat_p384_scalar_u1 = 0;
> +     let (x1218, x1219) = fiat_p384_scalar_addcarryx_u32(x1217, x1185, x1182);
> +-    let mut x1220: u32 = 0;
> +-    let mut x1221: fiat_p384_scalar_u1 = 0;
> +     let (x1220, x1221) = fiat_p384_scalar_addcarryx_u32(x1219, x1183, x1180);
> +-    let mut x1222: u32 = 0;
> +-    let mut x1223: fiat_p384_scalar_u1 = 0;
> +     let (x1222, x1223) = fiat_p384_scalar_addcarryx_u32(x1221, x1181, x1178);
> +     let x1224: u32 = ((x1223 as u32) + x1179);
> +-    let mut x1225: u32 = 0;
> +-    let mut x1226: fiat_p384_scalar_u1 = 0;
> +     let (x1225, x1226) = fiat_p384_scalar_addcarryx_u32(0x0, x1153, x1200);
> +-    let mut x1227: u32 = 0;
> +-    let mut x1228: fiat_p384_scalar_u1 = 0;
> +     let (x1227, x1228) = fiat_p384_scalar_addcarryx_u32(x1226, x1155, x1202);
> +-    let mut x1229: u32 = 0;
> +-    let mut x1230: fiat_p384_scalar_u1 = 0;
> +     let (x1229, x1230) = fiat_p384_scalar_addcarryx_u32(x1228, x1157, x1204);
> +-    let mut x1231: u32 = 0;
> +-    let mut x1232: fiat_p384_scalar_u1 = 0;
> +     let (x1231, x1232) = fiat_p384_scalar_addcarryx_u32(x1230, x1159, x1206);
> +-    let mut x1233: u32 = 0;
> +-    let mut x1234: fiat_p384_scalar_u1 = 0;
> +     let (x1233, x1234) = fiat_p384_scalar_addcarryx_u32(x1232, x1161, x1208);
> +-    let mut x1235: u32 = 0;
> +-    let mut x1236: fiat_p384_scalar_u1 = 0;
> +     let (x1235, x1236) = fiat_p384_scalar_addcarryx_u32(x1234, x1163, x1210);
> +-    let mut x1237: u32 = 0;
> +-    let mut x1238: fiat_p384_scalar_u1 = 0;
> +     let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(x1236, x1165, x1212);
> +-    let mut x1239: u32 = 0;
> +-    let mut x1240: fiat_p384_scalar_u1 = 0;
> +     let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1167, x1214);
> +-    let mut x1241: u32 = 0;
> +-    let mut x1242: fiat_p384_scalar_u1 = 0;
> +     let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1169, x1216);
> +-    let mut x1243: u32 = 0;
> +-    let mut x1244: fiat_p384_scalar_u1 = 0;
> +     let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1171, x1218);
> +-    let mut x1245: u32 = 0;
> +-    let mut x1246: fiat_p384_scalar_u1 = 0;
> +     let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1173, x1220);
> +-    let mut x1247: u32 = 0;
> +-    let mut x1248: fiat_p384_scalar_u1 = 0;
> +     let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1175, x1222);
> +-    let mut x1249: u32 = 0;
> +-    let mut x1250: fiat_p384_scalar_u1 = 0;
> +     let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1177, x1224);
> +-    let mut x1251: u32 = 0;
> +-    let mut x1252: u32 = 0;
> +     let (x1251, x1252) = fiat_p384_scalar_mulx_u32(x1225, 0xe88fdc45);
> +-    let mut x1253: u32 = 0;
> +-    let mut x1254: u32 = 0;
> +     let (x1253, x1254) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1255: u32 = 0;
> +-    let mut x1256: u32 = 0;
> +     let (x1255, x1256) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1257: u32 = 0;
> +-    let mut x1258: u32 = 0;
> +     let (x1257, x1258) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1259: u32 = 0;
> +-    let mut x1260: u32 = 0;
> +     let (x1259, x1260) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1261: u32 = 0;
> +-    let mut x1262: u32 = 0;
> +     let (x1261, x1262) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1263: u32 = 0;
> +-    let mut x1264: u32 = 0;
> +     let (x1263, x1264) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
> +-    let mut x1265: u32 = 0;
> +-    let mut x1266: u32 = 0;
> +     let (x1265, x1266) = fiat_p384_scalar_mulx_u32(x1251, 0xc7634d81);
> +-    let mut x1267: u32 = 0;
> +-    let mut x1268: u32 = 0;
> +     let (x1267, x1268) = fiat_p384_scalar_mulx_u32(x1251, 0xf4372ddf);
> +-    let mut x1269: u32 = 0;
> +-    let mut x1270: u32 = 0;
> +     let (x1269, x1270) = fiat_p384_scalar_mulx_u32(x1251, 0x581a0db2);
> +-    let mut x1271: u32 = 0;
> +-    let mut x1272: u32 = 0;
> +     let (x1271, x1272) = fiat_p384_scalar_mulx_u32(x1251, 0x48b0a77a);
> +-    let mut x1273: u32 = 0;
> +-    let mut x1274: u32 = 0;
> +     let (x1273, x1274) = fiat_p384_scalar_mulx_u32(x1251, 0xecec196a);
> +-    let mut x1275: u32 = 0;
> +-    let mut x1276: u32 = 0;
> +     let (x1275, x1276) = fiat_p384_scalar_mulx_u32(x1251, 0xccc52973);
> +-    let mut x1277: u32 = 0;
> +-    let mut x1278: fiat_p384_scalar_u1 = 0;
> +     let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(0x0, x1276, x1273);
> +-    let mut x1279: u32 = 0;
> +-    let mut x1280: fiat_p384_scalar_u1 = 0;
> +     let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1274, x1271);
> +-    let mut x1281: u32 = 0;
> +-    let mut x1282: fiat_p384_scalar_u1 = 0;
> +     let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1272, x1269);
> +-    let mut x1283: u32 = 0;
> +-    let mut x1284: fiat_p384_scalar_u1 = 0;
> +     let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(x1282, x1270, x1267);
> +-    let mut x1285: u32 = 0;
> +-    let mut x1286: fiat_p384_scalar_u1 = 0;
> +     let (x1285, x1286) = fiat_p384_scalar_addcarryx_u32(x1284, x1268, x1265);
> +-    let mut x1287: u32 = 0;
> +-    let mut x1288: fiat_p384_scalar_u1 = 0;
> +     let (x1287, x1288) = fiat_p384_scalar_addcarryx_u32(x1286, x1266, x1263);
> +-    let mut x1289: u32 = 0;
> +-    let mut x1290: fiat_p384_scalar_u1 = 0;
> +     let (x1289, x1290) = fiat_p384_scalar_addcarryx_u32(x1288, x1264, x1261);
> +-    let mut x1291: u32 = 0;
> +-    let mut x1292: fiat_p384_scalar_u1 = 0;
> +     let (x1291, x1292) = fiat_p384_scalar_addcarryx_u32(x1290, x1262, x1259);
> +-    let mut x1293: u32 = 0;
> +-    let mut x1294: fiat_p384_scalar_u1 = 0;
> +     let (x1293, x1294) = fiat_p384_scalar_addcarryx_u32(x1292, x1260, x1257);
> +-    let mut x1295: u32 = 0;
> +-    let mut x1296: fiat_p384_scalar_u1 = 0;
> +     let (x1295, x1296) = fiat_p384_scalar_addcarryx_u32(x1294, x1258, x1255);
> +-    let mut x1297: u32 = 0;
> +-    let mut x1298: fiat_p384_scalar_u1 = 0;
> +     let (x1297, x1298) = fiat_p384_scalar_addcarryx_u32(x1296, x1256, x1253);
> +     let x1299: u32 = ((x1298 as u32) + x1254);
> +-    let mut x1300: u32 = 0;
> +-    let mut x1301: fiat_p384_scalar_u1 = 0;
> +     let (x1300, x1301) = fiat_p384_scalar_addcarryx_u32(0x0, x1225, x1275);
> +-    let mut x1302: u32 = 0;
> +-    let mut x1303: fiat_p384_scalar_u1 = 0;
> +     let (x1302, x1303) = fiat_p384_scalar_addcarryx_u32(x1301, x1227, x1277);
> +-    let mut x1304: u32 = 0;
> +-    let mut x1305: fiat_p384_scalar_u1 = 0;
> +     let (x1304, x1305) = fiat_p384_scalar_addcarryx_u32(x1303, x1229, x1279);
> +-    let mut x1306: u32 = 0;
> +-    let mut x1307: fiat_p384_scalar_u1 = 0;
> +     let (x1306, x1307) = fiat_p384_scalar_addcarryx_u32(x1305, x1231, x1281);
> +-    let mut x1308: u32 = 0;
> +-    let mut x1309: fiat_p384_scalar_u1 = 0;
> +     let (x1308, x1309) = fiat_p384_scalar_addcarryx_u32(x1307, x1233, x1283);
> +-    let mut x1310: u32 = 0;
> +-    let mut x1311: fiat_p384_scalar_u1 = 0;
> +     let (x1310, x1311) = fiat_p384_scalar_addcarryx_u32(x1309, x1235, x1285);
> +-    let mut x1312: u32 = 0;
> +-    let mut x1313: fiat_p384_scalar_u1 = 0;
> +     let (x1312, x1313) = fiat_p384_scalar_addcarryx_u32(x1311, x1237, x1287);
> +-    let mut x1314: u32 = 0;
> +-    let mut x1315: fiat_p384_scalar_u1 = 0;
> +     let (x1314, x1315) = fiat_p384_scalar_addcarryx_u32(x1313, x1239, x1289);
> +-    let mut x1316: u32 = 0;
> +-    let mut x1317: fiat_p384_scalar_u1 = 0;
> +     let (x1316, x1317) = fiat_p384_scalar_addcarryx_u32(x1315, x1241, x1291);
> +-    let mut x1318: u32 = 0;
> +-    let mut x1319: fiat_p384_scalar_u1 = 0;
> +     let (x1318, x1319) = fiat_p384_scalar_addcarryx_u32(x1317, x1243, x1293);
> +-    let mut x1320: u32 = 0;
> +-    let mut x1321: fiat_p384_scalar_u1 = 0;
> +     let (x1320, x1321) = fiat_p384_scalar_addcarryx_u32(x1319, x1245, x1295);
> +-    let mut x1322: u32 = 0;
> +-    let mut x1323: fiat_p384_scalar_u1 = 0;
> +     let (x1322, x1323) = fiat_p384_scalar_addcarryx_u32(x1321, x1247, x1297);
> +-    let mut x1324: u32 = 0;
> +-    let mut x1325: fiat_p384_scalar_u1 = 0;
> +     let (x1324, x1325) = fiat_p384_scalar_addcarryx_u32(x1323, x1249, x1299);
> +     let x1326: u32 = ((x1325 as u32) + (x1250 as u32));
> +-    let mut x1327: u32 = 0;
> +-    let mut x1328: u32 = 0;
> +     let (x1327, x1328) = fiat_p384_scalar_mulx_u32(x9, (arg1[11]));
> +-    let mut x1329: u32 = 0;
> +-    let mut x1330: u32 = 0;
> +     let (x1329, x1330) = fiat_p384_scalar_mulx_u32(x9, (arg1[10]));
> +-    let mut x1331: u32 = 0;
> +-    let mut x1332: u32 = 0;
> +     let (x1331, x1332) = fiat_p384_scalar_mulx_u32(x9, (arg1[9]));
> +-    let mut x1333: u32 = 0;
> +-    let mut x1334: u32 = 0;
> +     let (x1333, x1334) = fiat_p384_scalar_mulx_u32(x9, (arg1[8]));
> +-    let mut x1335: u32 = 0;
> +-    let mut x1336: u32 = 0;
> +     let (x1335, x1336) = fiat_p384_scalar_mulx_u32(x9, (arg1[7]));
> +-    let mut x1337: u32 = 0;
> +-    let mut x1338: u32 = 0;
> +     let (x1337, x1338) = fiat_p384_scalar_mulx_u32(x9, (arg1[6]));
> +-    let mut x1339: u32 = 0;
> +-    let mut x1340: u32 = 0;
> +     let (x1339, x1340) = fiat_p384_scalar_mulx_u32(x9, (arg1[5]));
> +-    let mut x1341: u32 = 0;
> +-    let mut x1342: u32 = 0;
> +     let (x1341, x1342) = fiat_p384_scalar_mulx_u32(x9, (arg1[4]));
> +-    let mut x1343: u32 = 0;
> +-    let mut x1344: u32 = 0;
> +     let (x1343, x1344) = fiat_p384_scalar_mulx_u32(x9, (arg1[3]));
> +-    let mut x1345: u32 = 0;
> +-    let mut x1346: u32 = 0;
> +     let (x1345, x1346) = fiat_p384_scalar_mulx_u32(x9, (arg1[2]));
> +-    let mut x1347: u32 = 0;
> +-    let mut x1348: u32 = 0;
> +     let (x1347, x1348) = fiat_p384_scalar_mulx_u32(x9, (arg1[1]));
> +-    let mut x1349: u32 = 0;
> +-    let mut x1350: u32 = 0;
> +     let (x1349, x1350) = fiat_p384_scalar_mulx_u32(x9, (arg1[0]));
> +-    let mut x1351: u32 = 0;
> +-    let mut x1352: fiat_p384_scalar_u1 = 0;
> +     let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(0x0, x1350, x1347);
> +-    let mut x1353: u32 = 0;
> +-    let mut x1354: fiat_p384_scalar_u1 = 0;
> +     let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1348, x1345);
> +-    let mut x1355: u32 = 0;
> +-    let mut x1356: fiat_p384_scalar_u1 = 0;
> +     let (x1355, x1356) = fiat_p384_scalar_addcarryx_u32(x1354, x1346, x1343);
> +-    let mut x1357: u32 = 0;
> +-    let mut x1358: fiat_p384_scalar_u1 = 0;
> +     let (x1357, x1358) = fiat_p384_scalar_addcarryx_u32(x1356, x1344, x1341);
> +-    let mut x1359: u32 = 0;
> +-    let mut x1360: fiat_p384_scalar_u1 = 0;
> +     let (x1359, x1360) = fiat_p384_scalar_addcarryx_u32(x1358, x1342, x1339);
> +-    let mut x1361: u32 = 0;
> +-    let mut x1362: fiat_p384_scalar_u1 = 0;
> +     let (x1361, x1362) = fiat_p384_scalar_addcarryx_u32(x1360, x1340, x1337);
> +-    let mut x1363: u32 = 0;
> +-    let mut x1364: fiat_p384_scalar_u1 = 0;
> +     let (x1363, x1364) = fiat_p384_scalar_addcarryx_u32(x1362, x1338, x1335);
> +-    let mut x1365: u32 = 0;
> +-    let mut x1366: fiat_p384_scalar_u1 = 0;
> +     let (x1365, x1366) = fiat_p384_scalar_addcarryx_u32(x1364, x1336, x1333);
> +-    let mut x1367: u32 = 0;
> +-    let mut x1368: fiat_p384_scalar_u1 = 0;
> +     let (x1367, x1368) = fiat_p384_scalar_addcarryx_u32(x1366, x1334, x1331);
> +-    let mut x1369: u32 = 0;
> +-    let mut x1370: fiat_p384_scalar_u1 = 0;
> +     let (x1369, x1370) = fiat_p384_scalar_addcarryx_u32(x1368, x1332, x1329);
> +-    let mut x1371: u32 = 0;
> +-    let mut x1372: fiat_p384_scalar_u1 = 0;
> +     let (x1371, x1372) = fiat_p384_scalar_addcarryx_u32(x1370, x1330, x1327);
> +     let x1373: u32 = ((x1372 as u32) + x1328);
> +-    let mut x1374: u32 = 0;
> +-    let mut x1375: fiat_p384_scalar_u1 = 0;
> +     let (x1374, x1375) = fiat_p384_scalar_addcarryx_u32(0x0, x1302, x1349);
> +-    let mut x1376: u32 = 0;
> +-    let mut x1377: fiat_p384_scalar_u1 = 0;
> +     let (x1376, x1377) = fiat_p384_scalar_addcarryx_u32(x1375, x1304, x1351);
> +-    let mut x1378: u32 = 0;
> +-    let mut x1379: fiat_p384_scalar_u1 = 0;
> +     let (x1378, x1379) = fiat_p384_scalar_addcarryx_u32(x1377, x1306, x1353);
> +-    let mut x1380: u32 = 0;
> +-    let mut x1381: fiat_p384_scalar_u1 = 0;
> +     let (x1380, x1381) = fiat_p384_scalar_addcarryx_u32(x1379, x1308, x1355);
> +-    let mut x1382: u32 = 0;
> +-    let mut x1383: fiat_p384_scalar_u1 = 0;
> +     let (x1382, x1383) = fiat_p384_scalar_addcarryx_u32(x1381, x1310, x1357);
> +-    let mut x1384: u32 = 0;
> +-    let mut x1385: fiat_p384_scalar_u1 = 0;
> +     let (x1384, x1385) = fiat_p384_scalar_addcarryx_u32(x1383, x1312, x1359);
> +-    let mut x1386: u32 = 0;
> +-    let mut x1387: fiat_p384_scalar_u1 = 0;
> +     let (x1386, x1387) = fiat_p384_scalar_addcarryx_u32(x1385, x1314, x1361);
> +-    let mut x1388: u32 = 0;
> +-    let mut x1389: fiat_p384_scalar_u1 = 0;
> +     let (x1388, x1389) = fiat_p384_scalar_addcarryx_u32(x1387, x1316, x1363);
> +-    let mut x1390: u32 = 0;
> +-    let mut x1391: fiat_p384_scalar_u1 = 0;
> +     let (x1390, x1391) = fiat_p384_scalar_addcarryx_u32(x1389, x1318, x1365);
> +-    let mut x1392: u32 = 0;
> +-    let mut x1393: fiat_p384_scalar_u1 = 0;
> +     let (x1392, x1393) = fiat_p384_scalar_addcarryx_u32(x1391, x1320, x1367);
> +-    let mut x1394: u32 = 0;
> +-    let mut x1395: fiat_p384_scalar_u1 = 0;
> +     let (x1394, x1395) = fiat_p384_scalar_addcarryx_u32(x1393, x1322, x1369);
> +-    let mut x1396: u32 = 0;
> +-    let mut x1397: fiat_p384_scalar_u1 = 0;
> +     let (x1396, x1397) = fiat_p384_scalar_addcarryx_u32(x1395, x1324, x1371);
> +-    let mut x1398: u32 = 0;
> +-    let mut x1399: fiat_p384_scalar_u1 = 0;
> +     let (x1398, x1399) = fiat_p384_scalar_addcarryx_u32(x1397, x1326, x1373);
> +-    let mut x1400: u32 = 0;
> +-    let mut x1401: u32 = 0;
> +     let (x1400, x1401) = fiat_p384_scalar_mulx_u32(x1374, 0xe88fdc45);
> +-    let mut x1402: u32 = 0;
> +-    let mut x1403: u32 = 0;
> +     let (x1402, x1403) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1404: u32 = 0;
> +-    let mut x1405: u32 = 0;
> +     let (x1404, x1405) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1406: u32 = 0;
> +-    let mut x1407: u32 = 0;
> +     let (x1406, x1407) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1408: u32 = 0;
> +-    let mut x1409: u32 = 0;
> +     let (x1408, x1409) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1410: u32 = 0;
> +-    let mut x1411: u32 = 0;
> +     let (x1410, x1411) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1412: u32 = 0;
> +-    let mut x1413: u32 = 0;
> +     let (x1412, x1413) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
> +-    let mut x1414: u32 = 0;
> +-    let mut x1415: u32 = 0;
> +     let (x1414, x1415) = fiat_p384_scalar_mulx_u32(x1400, 0xc7634d81);
> +-    let mut x1416: u32 = 0;
> +-    let mut x1417: u32 = 0;
> +     let (x1416, x1417) = fiat_p384_scalar_mulx_u32(x1400, 0xf4372ddf);
> +-    let mut x1418: u32 = 0;
> +-    let mut x1419: u32 = 0;
> +     let (x1418, x1419) = fiat_p384_scalar_mulx_u32(x1400, 0x581a0db2);
> +-    let mut x1420: u32 = 0;
> +-    let mut x1421: u32 = 0;
> +     let (x1420, x1421) = fiat_p384_scalar_mulx_u32(x1400, 0x48b0a77a);
> +-    let mut x1422: u32 = 0;
> +-    let mut x1423: u32 = 0;
> +     let (x1422, x1423) = fiat_p384_scalar_mulx_u32(x1400, 0xecec196a);
> +-    let mut x1424: u32 = 0;
> +-    let mut x1425: u32 = 0;
> +     let (x1424, x1425) = fiat_p384_scalar_mulx_u32(x1400, 0xccc52973);
> +-    let mut x1426: u32 = 0;
> +-    let mut x1427: fiat_p384_scalar_u1 = 0;
> +     let (x1426, x1427) = fiat_p384_scalar_addcarryx_u32(0x0, x1425, x1422);
> +-    let mut x1428: u32 = 0;
> +-    let mut x1429: fiat_p384_scalar_u1 = 0;
> +     let (x1428, x1429) = fiat_p384_scalar_addcarryx_u32(x1427, x1423, x1420);
> +-    let mut x1430: u32 = 0;
> +-    let mut x1431: fiat_p384_scalar_u1 = 0;
> +     let (x1430, x1431) = fiat_p384_scalar_addcarryx_u32(x1429, x1421, x1418);
> +-    let mut x1432: u32 = 0;
> +-    let mut x1433: fiat_p384_scalar_u1 = 0;
> +     let (x1432, x1433) = fiat_p384_scalar_addcarryx_u32(x1431, x1419, x1416);
> +-    let mut x1434: u32 = 0;
> +-    let mut x1435: fiat_p384_scalar_u1 = 0;
> +     let (x1434, x1435) = fiat_p384_scalar_addcarryx_u32(x1433, x1417, x1414);
> +-    let mut x1436: u32 = 0;
> +-    let mut x1437: fiat_p384_scalar_u1 = 0;
> +     let (x1436, x1437) = fiat_p384_scalar_addcarryx_u32(x1435, x1415, x1412);
> +-    let mut x1438: u32 = 0;
> +-    let mut x1439: fiat_p384_scalar_u1 = 0;
> +     let (x1438, x1439) = fiat_p384_scalar_addcarryx_u32(x1437, x1413, x1410);
> +-    let mut x1440: u32 = 0;
> +-    let mut x1441: fiat_p384_scalar_u1 = 0;
> +     let (x1440, x1441) = fiat_p384_scalar_addcarryx_u32(x1439, x1411, x1408);
> +-    let mut x1442: u32 = 0;
> +-    let mut x1443: fiat_p384_scalar_u1 = 0;
> +     let (x1442, x1443) = fiat_p384_scalar_addcarryx_u32(x1441, x1409, x1406);
> +-    let mut x1444: u32 = 0;
> +-    let mut x1445: fiat_p384_scalar_u1 = 0;
> +     let (x1444, x1445) = fiat_p384_scalar_addcarryx_u32(x1443, x1407, x1404);
> +-    let mut x1446: u32 = 0;
> +-    let mut x1447: fiat_p384_scalar_u1 = 0;
> +     let (x1446, x1447) = fiat_p384_scalar_addcarryx_u32(x1445, x1405, x1402);
> +     let x1448: u32 = ((x1447 as u32) + x1403);
> +-    let mut x1449: u32 = 0;
> +-    let mut x1450: fiat_p384_scalar_u1 = 0;
> +     let (x1449, x1450) = fiat_p384_scalar_addcarryx_u32(0x0, x1374, x1424);
> +-    let mut x1451: u32 = 0;
> +-    let mut x1452: fiat_p384_scalar_u1 = 0;
> +     let (x1451, x1452) = fiat_p384_scalar_addcarryx_u32(x1450, x1376, x1426);
> +-    let mut x1453: u32 = 0;
> +-    let mut x1454: fiat_p384_scalar_u1 = 0;
> +     let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(x1452, x1378, x1428);
> +-    let mut x1455: u32 = 0;
> +-    let mut x1456: fiat_p384_scalar_u1 = 0;
> +     let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1380, x1430);
> +-    let mut x1457: u32 = 0;
> +-    let mut x1458: fiat_p384_scalar_u1 = 0;
> +     let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1382, x1432);
> +-    let mut x1459: u32 = 0;
> +-    let mut x1460: fiat_p384_scalar_u1 = 0;
> +     let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1384, x1434);
> +-    let mut x1461: u32 = 0;
> +-    let mut x1462: fiat_p384_scalar_u1 = 0;
> +     let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1386, x1436);
> +-    let mut x1463: u32 = 0;
> +-    let mut x1464: fiat_p384_scalar_u1 = 0;
> +     let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1388, x1438);
> +-    let mut x1465: u32 = 0;
> +-    let mut x1466: fiat_p384_scalar_u1 = 0;
> +     let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1390, x1440);
> +-    let mut x1467: u32 = 0;
> +-    let mut x1468: fiat_p384_scalar_u1 = 0;
> +     let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1392, x1442);
> +-    let mut x1469: u32 = 0;
> +-    let mut x1470: fiat_p384_scalar_u1 = 0;
> +     let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1394, x1444);
> +-    let mut x1471: u32 = 0;
> +-    let mut x1472: fiat_p384_scalar_u1 = 0;
> +     let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1396, x1446);
> +-    let mut x1473: u32 = 0;
> +-    let mut x1474: fiat_p384_scalar_u1 = 0;
> +     let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1398, x1448);
> +     let x1475: u32 = ((x1474 as u32) + (x1399 as u32));
> +-    let mut x1476: u32 = 0;
> +-    let mut x1477: u32 = 0;
> +     let (x1476, x1477) = fiat_p384_scalar_mulx_u32(x10, (arg1[11]));
> +-    let mut x1478: u32 = 0;
> +-    let mut x1479: u32 = 0;
> +     let (x1478, x1479) = fiat_p384_scalar_mulx_u32(x10, (arg1[10]));
> +-    let mut x1480: u32 = 0;
> +-    let mut x1481: u32 = 0;
> +     let (x1480, x1481) = fiat_p384_scalar_mulx_u32(x10, (arg1[9]));
> +-    let mut x1482: u32 = 0;
> +-    let mut x1483: u32 = 0;
> +     let (x1482, x1483) = fiat_p384_scalar_mulx_u32(x10, (arg1[8]));
> +-    let mut x1484: u32 = 0;
> +-    let mut x1485: u32 = 0;
> +     let (x1484, x1485) = fiat_p384_scalar_mulx_u32(x10, (arg1[7]));
> +-    let mut x1486: u32 = 0;
> +-    let mut x1487: u32 = 0;
> +     let (x1486, x1487) = fiat_p384_scalar_mulx_u32(x10, (arg1[6]));
> +-    let mut x1488: u32 = 0;
> +-    let mut x1489: u32 = 0;
> +     let (x1488, x1489) = fiat_p384_scalar_mulx_u32(x10, (arg1[5]));
> +-    let mut x1490: u32 = 0;
> +-    let mut x1491: u32 = 0;
> +     let (x1490, x1491) = fiat_p384_scalar_mulx_u32(x10, (arg1[4]));
> +-    let mut x1492: u32 = 0;
> +-    let mut x1493: u32 = 0;
> +     let (x1492, x1493) = fiat_p384_scalar_mulx_u32(x10, (arg1[3]));
> +-    let mut x1494: u32 = 0;
> +-    let mut x1495: u32 = 0;
> +     let (x1494, x1495) = fiat_p384_scalar_mulx_u32(x10, (arg1[2]));
> +-    let mut x1496: u32 = 0;
> +-    let mut x1497: u32 = 0;
> +     let (x1496, x1497) = fiat_p384_scalar_mulx_u32(x10, (arg1[1]));
> +-    let mut x1498: u32 = 0;
> +-    let mut x1499: u32 = 0;
> +     let (x1498, x1499) = fiat_p384_scalar_mulx_u32(x10, (arg1[0]));
> +-    let mut x1500: u32 = 0;
> +-    let mut x1501: fiat_p384_scalar_u1 = 0;
> +     let (x1500, x1501) = fiat_p384_scalar_addcarryx_u32(0x0, x1499, x1496);
> +-    let mut x1502: u32 = 0;
> +-    let mut x1503: fiat_p384_scalar_u1 = 0;
> +     let (x1502, x1503) = fiat_p384_scalar_addcarryx_u32(x1501, x1497, x1494);
> +-    let mut x1504: u32 = 0;
> +-    let mut x1505: fiat_p384_scalar_u1 = 0;
> +     let (x1504, x1505) = fiat_p384_scalar_addcarryx_u32(x1503, x1495, x1492);
> +-    let mut x1506: u32 = 0;
> +-    let mut x1507: fiat_p384_scalar_u1 = 0;
> +     let (x1506, x1507) = fiat_p384_scalar_addcarryx_u32(x1505, x1493, x1490);
> +-    let mut x1508: u32 = 0;
> +-    let mut x1509: fiat_p384_scalar_u1 = 0;
> +     let (x1508, x1509) = fiat_p384_scalar_addcarryx_u32(x1507, x1491, x1488);
> +-    let mut x1510: u32 = 0;
> +-    let mut x1511: fiat_p384_scalar_u1 = 0;
> +     let (x1510, x1511) = fiat_p384_scalar_addcarryx_u32(x1509, x1489, x1486);
> +-    let mut x1512: u32 = 0;
> +-    let mut x1513: fiat_p384_scalar_u1 = 0;
> +     let (x1512, x1513) = fiat_p384_scalar_addcarryx_u32(x1511, x1487, x1484);
> +-    let mut x1514: u32 = 0;
> +-    let mut x1515: fiat_p384_scalar_u1 = 0;
> +     let (x1514, x1515) = fiat_p384_scalar_addcarryx_u32(x1513, x1485, x1482);
> +-    let mut x1516: u32 = 0;
> +-    let mut x1517: fiat_p384_scalar_u1 = 0;
> +     let (x1516, x1517) = fiat_p384_scalar_addcarryx_u32(x1515, x1483, x1480);
> +-    let mut x1518: u32 = 0;
> +-    let mut x1519: fiat_p384_scalar_u1 = 0;
> +     let (x1518, x1519) = fiat_p384_scalar_addcarryx_u32(x1517, x1481, x1478);
> +-    let mut x1520: u32 = 0;
> +-    let mut x1521: fiat_p384_scalar_u1 = 0;
> +     let (x1520, x1521) = fiat_p384_scalar_addcarryx_u32(x1519, x1479, x1476);
> +     let x1522: u32 = ((x1521 as u32) + x1477);
> +-    let mut x1523: u32 = 0;
> +-    let mut x1524: fiat_p384_scalar_u1 = 0;
> +     let (x1523, x1524) = fiat_p384_scalar_addcarryx_u32(0x0, x1451, x1498);
> +-    let mut x1525: u32 = 0;
> +-    let mut x1526: fiat_p384_scalar_u1 = 0;
> +     let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(x1524, x1453, x1500);
> +-    let mut x1527: u32 = 0;
> +-    let mut x1528: fiat_p384_scalar_u1 = 0;
> +     let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1455, x1502);
> +-    let mut x1529: u32 = 0;
> +-    let mut x1530: fiat_p384_scalar_u1 = 0;
> +     let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1457, x1504);
> +-    let mut x1531: u32 = 0;
> +-    let mut x1532: fiat_p384_scalar_u1 = 0;
> +     let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1459, x1506);
> +-    let mut x1533: u32 = 0;
> +-    let mut x1534: fiat_p384_scalar_u1 = 0;
> +     let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1461, x1508);
> +-    let mut x1535: u32 = 0;
> +-    let mut x1536: fiat_p384_scalar_u1 = 0;
> +     let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1463, x1510);
> +-    let mut x1537: u32 = 0;
> +-    let mut x1538: fiat_p384_scalar_u1 = 0;
> +     let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1465, x1512);
> +-    let mut x1539: u32 = 0;
> +-    let mut x1540: fiat_p384_scalar_u1 = 0;
> +     let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1467, x1514);
> +-    let mut x1541: u32 = 0;
> +-    let mut x1542: fiat_p384_scalar_u1 = 0;
> +     let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1469, x1516);
> +-    let mut x1543: u32 = 0;
> +-    let mut x1544: fiat_p384_scalar_u1 = 0;
> +     let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1471, x1518);
> +-    let mut x1545: u32 = 0;
> +-    let mut x1546: fiat_p384_scalar_u1 = 0;
> +     let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1473, x1520);
> +-    let mut x1547: u32 = 0;
> +-    let mut x1548: fiat_p384_scalar_u1 = 0;
> +     let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(x1546, x1475, x1522);
> +-    let mut x1549: u32 = 0;
> +-    let mut x1550: u32 = 0;
> +     let (x1549, x1550) = fiat_p384_scalar_mulx_u32(x1523, 0xe88fdc45);
> +-    let mut x1551: u32 = 0;
> +-    let mut x1552: u32 = 0;
> +     let (x1551, x1552) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1553: u32 = 0;
> +-    let mut x1554: u32 = 0;
> +     let (x1553, x1554) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1555: u32 = 0;
> +-    let mut x1556: u32 = 0;
> +     let (x1555, x1556) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1557: u32 = 0;
> +-    let mut x1558: u32 = 0;
> +     let (x1557, x1558) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1559: u32 = 0;
> +-    let mut x1560: u32 = 0;
> +     let (x1559, x1560) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1561: u32 = 0;
> +-    let mut x1562: u32 = 0;
> +     let (x1561, x1562) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
> +-    let mut x1563: u32 = 0;
> +-    let mut x1564: u32 = 0;
> +     let (x1563, x1564) = fiat_p384_scalar_mulx_u32(x1549, 0xc7634d81);
> +-    let mut x1565: u32 = 0;
> +-    let mut x1566: u32 = 0;
> +     let (x1565, x1566) = fiat_p384_scalar_mulx_u32(x1549, 0xf4372ddf);
> +-    let mut x1567: u32 = 0;
> +-    let mut x1568: u32 = 0;
> +     let (x1567, x1568) = fiat_p384_scalar_mulx_u32(x1549, 0x581a0db2);
> +-    let mut x1569: u32 = 0;
> +-    let mut x1570: u32 = 0;
> +     let (x1569, x1570) = fiat_p384_scalar_mulx_u32(x1549, 0x48b0a77a);
> +-    let mut x1571: u32 = 0;
> +-    let mut x1572: u32 = 0;
> +     let (x1571, x1572) = fiat_p384_scalar_mulx_u32(x1549, 0xecec196a);
> +-    let mut x1573: u32 = 0;
> +-    let mut x1574: u32 = 0;
> +     let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x1549, 0xccc52973);
> +-    let mut x1575: u32 = 0;
> +-    let mut x1576: fiat_p384_scalar_u1 = 0;
> +     let (x1575, x1576) = fiat_p384_scalar_addcarryx_u32(0x0, x1574, x1571);
> +-    let mut x1577: u32 = 0;
> +-    let mut x1578: fiat_p384_scalar_u1 = 0;
> +     let (x1577, x1578) = fiat_p384_scalar_addcarryx_u32(x1576, x1572, x1569);
> +-    let mut x1579: u32 = 0;
> +-    let mut x1580: fiat_p384_scalar_u1 = 0;
> +     let (x1579, x1580) = fiat_p384_scalar_addcarryx_u32(x1578, x1570, x1567);
> +-    let mut x1581: u32 = 0;
> +-    let mut x1582: fiat_p384_scalar_u1 = 0;
> +     let (x1581, x1582) = fiat_p384_scalar_addcarryx_u32(x1580, x1568, x1565);
> +-    let mut x1583: u32 = 0;
> +-    let mut x1584: fiat_p384_scalar_u1 = 0;
> +     let (x1583, x1584) = fiat_p384_scalar_addcarryx_u32(x1582, x1566, x1563);
> +-    let mut x1585: u32 = 0;
> +-    let mut x1586: fiat_p384_scalar_u1 = 0;
> +     let (x1585, x1586) = fiat_p384_scalar_addcarryx_u32(x1584, x1564, x1561);
> +-    let mut x1587: u32 = 0;
> +-    let mut x1588: fiat_p384_scalar_u1 = 0;
> +     let (x1587, x1588) = fiat_p384_scalar_addcarryx_u32(x1586, x1562, x1559);
> +-    let mut x1589: u32 = 0;
> +-    let mut x1590: fiat_p384_scalar_u1 = 0;
> +     let (x1589, x1590) = fiat_p384_scalar_addcarryx_u32(x1588, x1560, x1557);
> +-    let mut x1591: u32 = 0;
> +-    let mut x1592: fiat_p384_scalar_u1 = 0;
> +     let (x1591, x1592) = fiat_p384_scalar_addcarryx_u32(x1590, x1558, x1555);
> +-    let mut x1593: u32 = 0;
> +-    let mut x1594: fiat_p384_scalar_u1 = 0;
> +     let (x1593, x1594) = fiat_p384_scalar_addcarryx_u32(x1592, x1556, x1553);
> +-    let mut x1595: u32 = 0;
> +-    let mut x1596: fiat_p384_scalar_u1 = 0;
> +     let (x1595, x1596) = fiat_p384_scalar_addcarryx_u32(x1594, x1554, x1551);
> +     let x1597: u32 = ((x1596 as u32) + x1552);
> +-    let mut x1598: u32 = 0;
> +-    let mut x1599: fiat_p384_scalar_u1 = 0;
> +     let (x1598, x1599) = fiat_p384_scalar_addcarryx_u32(0x0, x1523, x1573);
> +-    let mut x1600: u32 = 0;
> +-    let mut x1601: fiat_p384_scalar_u1 = 0;
> +     let (x1600, x1601) = fiat_p384_scalar_addcarryx_u32(x1599, x1525, x1575);
> +-    let mut x1602: u32 = 0;
> +-    let mut x1603: fiat_p384_scalar_u1 = 0;
> +     let (x1602, x1603) = fiat_p384_scalar_addcarryx_u32(x1601, x1527, x1577);
> +-    let mut x1604: u32 = 0;
> +-    let mut x1605: fiat_p384_scalar_u1 = 0;
> +     let (x1604, x1605) = fiat_p384_scalar_addcarryx_u32(x1603, x1529, x1579);
> +-    let mut x1606: u32 = 0;
> +-    let mut x1607: fiat_p384_scalar_u1 = 0;
> +     let (x1606, x1607) = fiat_p384_scalar_addcarryx_u32(x1605, x1531, x1581);
> +-    let mut x1608: u32 = 0;
> +-    let mut x1609: fiat_p384_scalar_u1 = 0;
> +     let (x1608, x1609) = fiat_p384_scalar_addcarryx_u32(x1607, x1533, x1583);
> +-    let mut x1610: u32 = 0;
> +-    let mut x1611: fiat_p384_scalar_u1 = 0;
> +     let (x1610, x1611) = fiat_p384_scalar_addcarryx_u32(x1609, x1535, x1585);
> +-    let mut x1612: u32 = 0;
> +-    let mut x1613: fiat_p384_scalar_u1 = 0;
> +     let (x1612, x1613) = fiat_p384_scalar_addcarryx_u32(x1611, x1537, x1587);
> +-    let mut x1614: u32 = 0;
> +-    let mut x1615: fiat_p384_scalar_u1 = 0;
> +     let (x1614, x1615) = fiat_p384_scalar_addcarryx_u32(x1613, x1539, x1589);
> +-    let mut x1616: u32 = 0;
> +-    let mut x1617: fiat_p384_scalar_u1 = 0;
> +     let (x1616, x1617) = fiat_p384_scalar_addcarryx_u32(x1615, x1541, x1591);
> +-    let mut x1618: u32 = 0;
> +-    let mut x1619: fiat_p384_scalar_u1 = 0;
> +     let (x1618, x1619) = fiat_p384_scalar_addcarryx_u32(x1617, x1543, x1593);
> +-    let mut x1620: u32 = 0;
> +-    let mut x1621: fiat_p384_scalar_u1 = 0;
> +     let (x1620, x1621) = fiat_p384_scalar_addcarryx_u32(x1619, x1545, x1595);
> +-    let mut x1622: u32 = 0;
> +-    let mut x1623: fiat_p384_scalar_u1 = 0;
> +     let (x1622, x1623) = fiat_p384_scalar_addcarryx_u32(x1621, x1547, x1597);
> +     let x1624: u32 = ((x1623 as u32) + (x1548 as u32));
> +-    let mut x1625: u32 = 0;
> +-    let mut x1626: u32 = 0;
> +     let (x1625, x1626) = fiat_p384_scalar_mulx_u32(x11, (arg1[11]));
> +-    let mut x1627: u32 = 0;
> +-    let mut x1628: u32 = 0;
> +     let (x1627, x1628) = fiat_p384_scalar_mulx_u32(x11, (arg1[10]));
> +-    let mut x1629: u32 = 0;
> +-    let mut x1630: u32 = 0;
> +     let (x1629, x1630) = fiat_p384_scalar_mulx_u32(x11, (arg1[9]));
> +-    let mut x1631: u32 = 0;
> +-    let mut x1632: u32 = 0;
> +     let (x1631, x1632) = fiat_p384_scalar_mulx_u32(x11, (arg1[8]));
> +-    let mut x1633: u32 = 0;
> +-    let mut x1634: u32 = 0;
> +     let (x1633, x1634) = fiat_p384_scalar_mulx_u32(x11, (arg1[7]));
> +-    let mut x1635: u32 = 0;
> +-    let mut x1636: u32 = 0;
> +     let (x1635, x1636) = fiat_p384_scalar_mulx_u32(x11, (arg1[6]));
> +-    let mut x1637: u32 = 0;
> +-    let mut x1638: u32 = 0;
> +     let (x1637, x1638) = fiat_p384_scalar_mulx_u32(x11, (arg1[5]));
> +-    let mut x1639: u32 = 0;
> +-    let mut x1640: u32 = 0;
> +     let (x1639, x1640) = fiat_p384_scalar_mulx_u32(x11, (arg1[4]));
> +-    let mut x1641: u32 = 0;
> +-    let mut x1642: u32 = 0;
> +     let (x1641, x1642) = fiat_p384_scalar_mulx_u32(x11, (arg1[3]));
> +-    let mut x1643: u32 = 0;
> +-    let mut x1644: u32 = 0;
> +     let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x11, (arg1[2]));
> +-    let mut x1645: u32 = 0;
> +-    let mut x1646: u32 = 0;
> +     let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x11, (arg1[1]));
> +-    let mut x1647: u32 = 0;
> +-    let mut x1648: u32 = 0;
> +     let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x11, (arg1[0]));
> +-    let mut x1649: u32 = 0;
> +-    let mut x1650: fiat_p384_scalar_u1 = 0;
> +     let (x1649, x1650) = fiat_p384_scalar_addcarryx_u32(0x0, x1648, x1645);
> +-    let mut x1651: u32 = 0;
> +-    let mut x1652: fiat_p384_scalar_u1 = 0;
> +     let (x1651, x1652) = fiat_p384_scalar_addcarryx_u32(x1650, x1646, x1643);
> +-    let mut x1653: u32 = 0;
> +-    let mut x1654: fiat_p384_scalar_u1 = 0;
> +     let (x1653, x1654) = fiat_p384_scalar_addcarryx_u32(x1652, x1644, x1641);
> +-    let mut x1655: u32 = 0;
> +-    let mut x1656: fiat_p384_scalar_u1 = 0;
> +     let (x1655, x1656) = fiat_p384_scalar_addcarryx_u32(x1654, x1642, x1639);
> +-    let mut x1657: u32 = 0;
> +-    let mut x1658: fiat_p384_scalar_u1 = 0;
> +     let (x1657, x1658) = fiat_p384_scalar_addcarryx_u32(x1656, x1640, x1637);
> +-    let mut x1659: u32 = 0;
> +-    let mut x1660: fiat_p384_scalar_u1 = 0;
> +     let (x1659, x1660) = fiat_p384_scalar_addcarryx_u32(x1658, x1638, x1635);
> +-    let mut x1661: u32 = 0;
> +-    let mut x1662: fiat_p384_scalar_u1 = 0;
> +     let (x1661, x1662) = fiat_p384_scalar_addcarryx_u32(x1660, x1636, x1633);
> +-    let mut x1663: u32 = 0;
> +-    let mut x1664: fiat_p384_scalar_u1 = 0;
> +     let (x1663, x1664) = fiat_p384_scalar_addcarryx_u32(x1662, x1634, x1631);
> +-    let mut x1665: u32 = 0;
> +-    let mut x1666: fiat_p384_scalar_u1 = 0;
> +     let (x1665, x1666) = fiat_p384_scalar_addcarryx_u32(x1664, x1632, x1629);
> +-    let mut x1667: u32 = 0;
> +-    let mut x1668: fiat_p384_scalar_u1 = 0;
> +     let (x1667, x1668) = fiat_p384_scalar_addcarryx_u32(x1666, x1630, x1627);
> +-    let mut x1669: u32 = 0;
> +-    let mut x1670: fiat_p384_scalar_u1 = 0;
> +     let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(x1668, x1628, x1625);
> +     let x1671: u32 = ((x1670 as u32) + x1626);
> +-    let mut x1672: u32 = 0;
> +-    let mut x1673: fiat_p384_scalar_u1 = 0;
> +     let (x1672, x1673) = fiat_p384_scalar_addcarryx_u32(0x0, x1600, x1647);
> +-    let mut x1674: u32 = 0;
> +-    let mut x1675: fiat_p384_scalar_u1 = 0;
> +     let (x1674, x1675) = fiat_p384_scalar_addcarryx_u32(x1673, x1602, x1649);
> +-    let mut x1676: u32 = 0;
> +-    let mut x1677: fiat_p384_scalar_u1 = 0;
> +     let (x1676, x1677) = fiat_p384_scalar_addcarryx_u32(x1675, x1604, x1651);
> +-    let mut x1678: u32 = 0;
> +-    let mut x1679: fiat_p384_scalar_u1 = 0;
> +     let (x1678, x1679) = fiat_p384_scalar_addcarryx_u32(x1677, x1606, x1653);
> +-    let mut x1680: u32 = 0;
> +-    let mut x1681: fiat_p384_scalar_u1 = 0;
> +     let (x1680, x1681) = fiat_p384_scalar_addcarryx_u32(x1679, x1608, x1655);
> +-    let mut x1682: u32 = 0;
> +-    let mut x1683: fiat_p384_scalar_u1 = 0;
> +     let (x1682, x1683) = fiat_p384_scalar_addcarryx_u32(x1681, x1610, x1657);
> +-    let mut x1684: u32 = 0;
> +-    let mut x1685: fiat_p384_scalar_u1 = 0;
> +     let (x1684, x1685) = fiat_p384_scalar_addcarryx_u32(x1683, x1612, x1659);
> +-    let mut x1686: u32 = 0;
> +-    let mut x1687: fiat_p384_scalar_u1 = 0;
> +     let (x1686, x1687) = fiat_p384_scalar_addcarryx_u32(x1685, x1614, x1661);
> +-    let mut x1688: u32 = 0;
> +-    let mut x1689: fiat_p384_scalar_u1 = 0;
> +     let (x1688, x1689) = fiat_p384_scalar_addcarryx_u32(x1687, x1616, x1663);
> +-    let mut x1690: u32 = 0;
> +-    let mut x1691: fiat_p384_scalar_u1 = 0;
> +     let (x1690, x1691) = fiat_p384_scalar_addcarryx_u32(x1689, x1618, x1665);
> +-    let mut x1692: u32 = 0;
> +-    let mut x1693: fiat_p384_scalar_u1 = 0;
> +     let (x1692, x1693) = fiat_p384_scalar_addcarryx_u32(x1691, x1620, x1667);
> +-    let mut x1694: u32 = 0;
> +-    let mut x1695: fiat_p384_scalar_u1 = 0;
> +     let (x1694, x1695) = fiat_p384_scalar_addcarryx_u32(x1693, x1622, x1669);
> +-    let mut x1696: u32 = 0;
> +-    let mut x1697: fiat_p384_scalar_u1 = 0;
> +     let (x1696, x1697) = fiat_p384_scalar_addcarryx_u32(x1695, x1624, x1671);
> +-    let mut x1698: u32 = 0;
> +-    let mut x1699: u32 = 0;
> +     let (x1698, x1699) = fiat_p384_scalar_mulx_u32(x1672, 0xe88fdc45);
> +-    let mut x1700: u32 = 0;
> +-    let mut x1701: u32 = 0;
> +     let (x1700, x1701) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1702: u32 = 0;
> +-    let mut x1703: u32 = 0;
> +     let (x1702, x1703) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1704: u32 = 0;
> +-    let mut x1705: u32 = 0;
> +     let (x1704, x1705) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1706: u32 = 0;
> +-    let mut x1707: u32 = 0;
> +     let (x1706, x1707) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1708: u32 = 0;
> +-    let mut x1709: u32 = 0;
> +     let (x1708, x1709) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1710: u32 = 0;
> +-    let mut x1711: u32 = 0;
> +     let (x1710, x1711) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
> +-    let mut x1712: u32 = 0;
> +-    let mut x1713: u32 = 0;
> +     let (x1712, x1713) = fiat_p384_scalar_mulx_u32(x1698, 0xc7634d81);
> +-    let mut x1714: u32 = 0;
> +-    let mut x1715: u32 = 0;
> +     let (x1714, x1715) = fiat_p384_scalar_mulx_u32(x1698, 0xf4372ddf);
> +-    let mut x1716: u32 = 0;
> +-    let mut x1717: u32 = 0;
> +     let (x1716, x1717) = fiat_p384_scalar_mulx_u32(x1698, 0x581a0db2);
> +-    let mut x1718: u32 = 0;
> +-    let mut x1719: u32 = 0;
> +     let (x1718, x1719) = fiat_p384_scalar_mulx_u32(x1698, 0x48b0a77a);
> +-    let mut x1720: u32 = 0;
> +-    let mut x1721: u32 = 0;
> +     let (x1720, x1721) = fiat_p384_scalar_mulx_u32(x1698, 0xecec196a);
> +-    let mut x1722: u32 = 0;
> +-    let mut x1723: u32 = 0;
> +     let (x1722, x1723) = fiat_p384_scalar_mulx_u32(x1698, 0xccc52973);
> +-    let mut x1724: u32 = 0;
> +-    let mut x1725: fiat_p384_scalar_u1 = 0;
> +     let (x1724, x1725) = fiat_p384_scalar_addcarryx_u32(0x0, x1723, x1720);
> +-    let mut x1726: u32 = 0;
> +-    let mut x1727: fiat_p384_scalar_u1 = 0;
> +     let (x1726, x1727) = fiat_p384_scalar_addcarryx_u32(x1725, x1721, x1718);
> +-    let mut x1728: u32 = 0;
> +-    let mut x1729: fiat_p384_scalar_u1 = 0;
> +     let (x1728, x1729) = fiat_p384_scalar_addcarryx_u32(x1727, x1719, x1716);
> +-    let mut x1730: u32 = 0;
> +-    let mut x1731: fiat_p384_scalar_u1 = 0;
> +     let (x1730, x1731) = fiat_p384_scalar_addcarryx_u32(x1729, x1717, x1714);
> +-    let mut x1732: u32 = 0;
> +-    let mut x1733: fiat_p384_scalar_u1 = 0;
> +     let (x1732, x1733) = fiat_p384_scalar_addcarryx_u32(x1731, x1715, x1712);
> +-    let mut x1734: u32 = 0;
> +-    let mut x1735: fiat_p384_scalar_u1 = 0;
> +     let (x1734, x1735) = fiat_p384_scalar_addcarryx_u32(x1733, x1713, x1710);
> +-    let mut x1736: u32 = 0;
> +-    let mut x1737: fiat_p384_scalar_u1 = 0;
> +     let (x1736, x1737) = fiat_p384_scalar_addcarryx_u32(x1735, x1711, x1708);
> +-    let mut x1738: u32 = 0;
> +-    let mut x1739: fiat_p384_scalar_u1 = 0;
> +     let (x1738, x1739) = fiat_p384_scalar_addcarryx_u32(x1737, x1709, x1706);
> +-    let mut x1740: u32 = 0;
> +-    let mut x1741: fiat_p384_scalar_u1 = 0;
> +     let (x1740, x1741) = fiat_p384_scalar_addcarryx_u32(x1739, x1707, x1704);
> +-    let mut x1742: u32 = 0;
> +-    let mut x1743: fiat_p384_scalar_u1 = 0;
> +     let (x1742, x1743) = fiat_p384_scalar_addcarryx_u32(x1741, x1705, x1702);
> +-    let mut x1744: u32 = 0;
> +-    let mut x1745: fiat_p384_scalar_u1 = 0;
> +     let (x1744, x1745) = fiat_p384_scalar_addcarryx_u32(x1743, x1703, x1700);
> +     let x1746: u32 = ((x1745 as u32) + x1701);
> +-    let mut x1747: u32 = 0;
> +-    let mut x1748: fiat_p384_scalar_u1 = 0;
> +     let (x1747, x1748) = fiat_p384_scalar_addcarryx_u32(0x0, x1672, x1722);
> +-    let mut x1749: u32 = 0;
> +-    let mut x1750: fiat_p384_scalar_u1 = 0;
> +     let (x1749, x1750) = fiat_p384_scalar_addcarryx_u32(x1748, x1674, x1724);
> +-    let mut x1751: u32 = 0;
> +-    let mut x1752: fiat_p384_scalar_u1 = 0;
> +     let (x1751, x1752) = fiat_p384_scalar_addcarryx_u32(x1750, x1676, x1726);
> +-    let mut x1753: u32 = 0;
> +-    let mut x1754: fiat_p384_scalar_u1 = 0;
> +     let (x1753, x1754) = fiat_p384_scalar_addcarryx_u32(x1752, x1678, x1728);
> +-    let mut x1755: u32 = 0;
> +-    let mut x1756: fiat_p384_scalar_u1 = 0;
> +     let (x1755, x1756) = fiat_p384_scalar_addcarryx_u32(x1754, x1680, x1730);
> +-    let mut x1757: u32 = 0;
> +-    let mut x1758: fiat_p384_scalar_u1 = 0;
> +     let (x1757, x1758) = fiat_p384_scalar_addcarryx_u32(x1756, x1682, x1732);
> +-    let mut x1759: u32 = 0;
> +-    let mut x1760: fiat_p384_scalar_u1 = 0;
> +     let (x1759, x1760) = fiat_p384_scalar_addcarryx_u32(x1758, x1684, x1734);
> +-    let mut x1761: u32 = 0;
> +-    let mut x1762: fiat_p384_scalar_u1 = 0;
> +     let (x1761, x1762) = fiat_p384_scalar_addcarryx_u32(x1760, x1686, x1736);
> +-    let mut x1763: u32 = 0;
> +-    let mut x1764: fiat_p384_scalar_u1 = 0;
> +     let (x1763, x1764) = fiat_p384_scalar_addcarryx_u32(x1762, x1688, x1738);
> +-    let mut x1765: u32 = 0;
> +-    let mut x1766: fiat_p384_scalar_u1 = 0;
> +     let (x1765, x1766) = fiat_p384_scalar_addcarryx_u32(x1764, x1690, x1740);
> +-    let mut x1767: u32 = 0;
> +-    let mut x1768: fiat_p384_scalar_u1 = 0;
> +     let (x1767, x1768) = fiat_p384_scalar_addcarryx_u32(x1766, x1692, x1742);
> +-    let mut x1769: u32 = 0;
> +-    let mut x1770: fiat_p384_scalar_u1 = 0;
> +     let (x1769, x1770) = fiat_p384_scalar_addcarryx_u32(x1768, x1694, x1744);
> +-    let mut x1771: u32 = 0;
> +-    let mut x1772: fiat_p384_scalar_u1 = 0;
> +     let (x1771, x1772) = fiat_p384_scalar_addcarryx_u32(x1770, x1696, x1746);
> +     let x1773: u32 = ((x1772 as u32) + (x1697 as u32));
> +-    let mut x1774: u32 = 0;
> +-    let mut x1775: fiat_p384_scalar_u1 = 0;
> +     let (x1774, x1775) = fiat_p384_scalar_subborrowx_u32(0x0, x1749, 0xccc52973);
> +-    let mut x1776: u32 = 0;
> +-    let mut x1777: fiat_p384_scalar_u1 = 0;
> +     let (x1776, x1777) = fiat_p384_scalar_subborrowx_u32(x1775, x1751, 0xecec196a);
> +-    let mut x1778: u32 = 0;
> +-    let mut x1779: fiat_p384_scalar_u1 = 0;
> +     let (x1778, x1779) = fiat_p384_scalar_subborrowx_u32(x1777, x1753, 0x48b0a77a);
> +-    let mut x1780: u32 = 0;
> +-    let mut x1781: fiat_p384_scalar_u1 = 0;
> +     let (x1780, x1781) = fiat_p384_scalar_subborrowx_u32(x1779, x1755, 0x581a0db2);
> +-    let mut x1782: u32 = 0;
> +-    let mut x1783: fiat_p384_scalar_u1 = 0;
> +     let (x1782, x1783) = fiat_p384_scalar_subborrowx_u32(x1781, x1757, 0xf4372ddf);
> +-    let mut x1784: u32 = 0;
> +-    let mut x1785: fiat_p384_scalar_u1 = 0;
> +     let (x1784, x1785) = fiat_p384_scalar_subborrowx_u32(x1783, x1759, 0xc7634d81);
> +-    let mut x1786: u32 = 0;
> +-    let mut x1787: fiat_p384_scalar_u1 = 0;
> +     let (x1786, x1787) = fiat_p384_scalar_subborrowx_u32(x1785, x1761, 0xffffffff);
> +-    let mut x1788: u32 = 0;
> +-    let mut x1789: fiat_p384_scalar_u1 = 0;
> +     let (x1788, x1789) = fiat_p384_scalar_subborrowx_u32(x1787, x1763, 0xffffffff);
> +-    let mut x1790: u32 = 0;
> +-    let mut x1791: fiat_p384_scalar_u1 = 0;
> +     let (x1790, x1791) = fiat_p384_scalar_subborrowx_u32(x1789, x1765, 0xffffffff);
> +-    let mut x1792: u32 = 0;
> +-    let mut x1793: fiat_p384_scalar_u1 = 0;
> +     let (x1792, x1793) = fiat_p384_scalar_subborrowx_u32(x1791, x1767, 0xffffffff);
> +-    let mut x1794: u32 = 0;
> +-    let mut x1795: fiat_p384_scalar_u1 = 0;
> +     let (x1794, x1795) = fiat_p384_scalar_subborrowx_u32(x1793, x1769, 0xffffffff);
> +-    let mut x1796: u32 = 0;
> +-    let mut x1797: fiat_p384_scalar_u1 = 0;
> +     let (x1796, x1797) = fiat_p384_scalar_subborrowx_u32(x1795, x1771, 0xffffffff);
> +-    let mut x1798: u32 = 0;
> +-    let mut x1799: fiat_p384_scalar_u1 = 0;
> +     let (x1798, x1799) = fiat_p384_scalar_subborrowx_u32(x1797, x1773, (0x0 as u32));
> +-    let mut x1800: u32 = 0;
> +     let (x1800) = fiat_p384_scalar_cmovznz_u32(x1799, x1774, x1749);
> +-    let mut x1801: u32 = 0;
> +     let (x1801) = fiat_p384_scalar_cmovznz_u32(x1799, x1776, x1751);
> +-    let mut x1802: u32 = 0;
> +     let (x1802) = fiat_p384_scalar_cmovznz_u32(x1799, x1778, x1753);
> +-    let mut x1803: u32 = 0;
> +     let (x1803) = fiat_p384_scalar_cmovznz_u32(x1799, x1780, x1755);
> +-    let mut x1804: u32 = 0;
> +     let (x1804) = fiat_p384_scalar_cmovznz_u32(x1799, x1782, x1757);
> +-    let mut x1805: u32 = 0;
> +     let (x1805) = fiat_p384_scalar_cmovznz_u32(x1799, x1784, x1759);
> +-    let mut x1806: u32 = 0;
> +     let (x1806) = fiat_p384_scalar_cmovznz_u32(x1799, x1786, x1761);
> +-    let mut x1807: u32 = 0;
> +     let (x1807) = fiat_p384_scalar_cmovznz_u32(x1799, x1788, x1763);
> +-    let mut x1808: u32 = 0;
> +     let (x1808) = fiat_p384_scalar_cmovznz_u32(x1799, x1790, x1765);
> +-    let mut x1809: u32 = 0;
> +     let (x1809) = fiat_p384_scalar_cmovznz_u32(x1799, x1792, x1767);
> +-    let mut x1810: u32 = 0;
> +     let (x1810) = fiat_p384_scalar_cmovznz_u32(x1799, x1794, x1769);
> +-    let mut x1811: u32 = 0;
> +     let (x1811) = fiat_p384_scalar_cmovznz_u32(x1799, x1796, x1771);
> +     out1[0] = x1800;
> +     out1[1] = x1801;
> +@@ -5603,104 +2075,42 @@ pub const fn fiat_p384_scalar_add(
> +     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
> + ) -> fiat_p384_scalar_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_addcarryx_u32(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u32 = 0;
> +-    let mut x4: fiat_p384_scalar_u1 = 0;
> +     let (x3, x4) = fiat_p384_scalar_addcarryx_u32(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u32 = 0;
> +-    let mut x6: fiat_p384_scalar_u1 = 0;
> +     let (x5, x6) = fiat_p384_scalar_addcarryx_u32(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u32 = 0;
> +-    let mut x8: fiat_p384_scalar_u1 = 0;
> +     let (x7, x8) = fiat_p384_scalar_addcarryx_u32(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u32 = 0;
> +-    let mut x10: fiat_p384_scalar_u1 = 0;
> +     let (x9, x10) = fiat_p384_scalar_addcarryx_u32(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u32 = 0;
> +-    let mut x12: fiat_p384_scalar_u1 = 0;
> +     let (x11, x12) = fiat_p384_scalar_addcarryx_u32(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u32 = 0;
> +-    let mut x14: fiat_p384_scalar_u1 = 0;
> +     let (x13, x14) = fiat_p384_scalar_addcarryx_u32(x12, (arg1[6]), (arg2[6]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: fiat_p384_scalar_u1 = 0;
> +     let (x15, x16) = fiat_p384_scalar_addcarryx_u32(x14, (arg1[7]), (arg2[7]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: fiat_p384_scalar_u1 = 0;
> +     let (x17, x18) = fiat_p384_scalar_addcarryx_u32(x16, (arg1[8]), (arg2[8]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_addcarryx_u32(x18, (arg1[9]), (arg2[9]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_addcarryx_u32(x20, (arg1[10]), (arg2[10]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_addcarryx_u32(x22, (arg1[11]), (arg2[11]));
> +-    let mut x25: u32 = 0;
> +-    let mut x26: fiat_p384_scalar_u1 = 0;
> +     let (x25, x26) = fiat_p384_scalar_subborrowx_u32(0x0, x1, 0xccc52973);
> +-    let mut x27: u32 = 0;
> +-    let mut x28: fiat_p384_scalar_u1 = 0;
> +     let (x27, x28) = fiat_p384_scalar_subborrowx_u32(x26, x3, 0xecec196a);
> +-    let mut x29: u32 = 0;
> +-    let mut x30: fiat_p384_scalar_u1 = 0;
> +     let (x29, x30) = fiat_p384_scalar_subborrowx_u32(x28, x5, 0x48b0a77a);
> +-    let mut x31: u32 = 0;
> +-    let mut x32: fiat_p384_scalar_u1 = 0;
> +     let (x31, x32) = fiat_p384_scalar_subborrowx_u32(x30, x7, 0x581a0db2);
> +-    let mut x33: u32 = 0;
> +-    let mut x34: fiat_p384_scalar_u1 = 0;
> +     let (x33, x34) = fiat_p384_scalar_subborrowx_u32(x32, x9, 0xf4372ddf);
> +-    let mut x35: u32 = 0;
> +-    let mut x36: fiat_p384_scalar_u1 = 0;
> +     let (x35, x36) = fiat_p384_scalar_subborrowx_u32(x34, x11, 0xc7634d81);
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_scalar_u1 = 0;
> +     let (x37, x38) = fiat_p384_scalar_subborrowx_u32(x36, x13, 0xffffffff);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_scalar_u1 = 0;
> +     let (x39, x40) = fiat_p384_scalar_subborrowx_u32(x38, x15, 0xffffffff);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_scalar_u1 = 0;
> +     let (x41, x42) = fiat_p384_scalar_subborrowx_u32(x40, x17, 0xffffffff);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_scalar_u1 = 0;
> +     let (x43, x44) = fiat_p384_scalar_subborrowx_u32(x42, x19, 0xffffffff);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_scalar_u1 = 0;
> +     let (x45, x46) = fiat_p384_scalar_subborrowx_u32(x44, x21, 0xffffffff);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_scalar_u1 = 0;
> +     let (x47, x48) = fiat_p384_scalar_subborrowx_u32(x46, x23, 0xffffffff);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_scalar_u1 = 0;
> +     let (x49, x50) = fiat_p384_scalar_subborrowx_u32(x48, (x24 as u32), (0x0 as u32));
> +-    let mut x51: u32 = 0;
> +     let (x51) = fiat_p384_scalar_cmovznz_u32(x50, x25, x1);
> +-    let mut x52: u32 = 0;
> +     let (x52) = fiat_p384_scalar_cmovznz_u32(x50, x27, x3);
> +-    let mut x53: u32 = 0;
> +     let (x53) = fiat_p384_scalar_cmovznz_u32(x50, x29, x5);
> +-    let mut x54: u32 = 0;
> +     let (x54) = fiat_p384_scalar_cmovznz_u32(x50, x31, x7);
> +-    let mut x55: u32 = 0;
> +     let (x55) = fiat_p384_scalar_cmovznz_u32(x50, x33, x9);
> +-    let mut x56: u32 = 0;
> +     let (x56) = fiat_p384_scalar_cmovznz_u32(x50, x35, x11);
> +-    let mut x57: u32 = 0;
> +     let (x57) = fiat_p384_scalar_cmovznz_u32(x50, x37, x13);
> +-    let mut x58: u32 = 0;
> +     let (x58) = fiat_p384_scalar_cmovznz_u32(x50, x39, x15);
> +-    let mut x59: u32 = 0;
> +     let (x59) = fiat_p384_scalar_cmovznz_u32(x50, x41, x17);
> +-    let mut x60: u32 = 0;
> +     let (x60) = fiat_p384_scalar_cmovznz_u32(x50, x43, x19);
> +-    let mut x61: u32 = 0;
> +     let (x61) = fiat_p384_scalar_cmovznz_u32(x50, x45, x21);
> +-    let mut x62: u32 = 0;
> +     let (x62) = fiat_p384_scalar_cmovznz_u32(x50, x47, x23);
> +     out1[0] = x51;
> +     out1[1] = x52;
> +@@ -5731,79 +2141,30 @@ pub const fn fiat_p384_scalar_sub(
> +     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
> + ) -> fiat_p384_scalar_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_subborrowx_u32(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u32 = 0;
> +-    let mut x4: fiat_p384_scalar_u1 = 0;
> +     let (x3, x4) = fiat_p384_scalar_subborrowx_u32(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u32 = 0;
> +-    let mut x6: fiat_p384_scalar_u1 = 0;
> +     let (x5, x6) = fiat_p384_scalar_subborrowx_u32(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u32 = 0;
> +-    let mut x8: fiat_p384_scalar_u1 = 0;
> +     let (x7, x8) = fiat_p384_scalar_subborrowx_u32(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u32 = 0;
> +-    let mut x10: fiat_p384_scalar_u1 = 0;
> +     let (x9, x10) = fiat_p384_scalar_subborrowx_u32(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u32 = 0;
> +-    let mut x12: fiat_p384_scalar_u1 = 0;
> +     let (x11, x12) = fiat_p384_scalar_subborrowx_u32(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u32 = 0;
> +-    let mut x14: fiat_p384_scalar_u1 = 0;
> +     let (x13, x14) = fiat_p384_scalar_subborrowx_u32(x12, (arg1[6]), (arg2[6]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: fiat_p384_scalar_u1 = 0;
> +     let (x15, x16) = fiat_p384_scalar_subborrowx_u32(x14, (arg1[7]), (arg2[7]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: fiat_p384_scalar_u1 = 0;
> +     let (x17, x18) = fiat_p384_scalar_subborrowx_u32(x16, (arg1[8]), (arg2[8]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_subborrowx_u32(x18, (arg1[9]), (arg2[9]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_subborrowx_u32(x20, (arg1[10]), (arg2[10]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_subborrowx_u32(x22, (arg1[11]), (arg2[11]));
> +-    let mut x25: u32 = 0;
> +     let (x25) = fiat_p384_scalar_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_scalar_u1 = 0;
> +     let (x26, x27) = fiat_p384_scalar_addcarryx_u32(0x0, x1, (x25 & 0xccc52973));
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_scalar_u1 = 0;
> +     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, x3, (x25 & 0xecec196a));
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_scalar_u1 = 0;
> +     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x5, (x25 & 0x48b0a77a));
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_scalar_u1 = 0;
> +     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x7, (x25 & 0x581a0db2));
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_scalar_u1 = 0;
> +     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x9, (x25 & 0xf4372ddf));
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_scalar_u1 = 0;
> +     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x11, (x25 & 0xc7634d81));
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_scalar_u1 = 0;
> +     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x13, x25);
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_scalar_u1 = 0;
> +     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x25);
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_scalar_u1 = 0;
> +     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x17, x25);
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x19, x25);
> +-    let mut x46: u32 = 0;
> +-    let mut x47: fiat_p384_scalar_u1 = 0;
> +     let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x21, x25);
> +-    let mut x48: u32 = 0;
> +-    let mut x49: fiat_p384_scalar_u1 = 0;
> +     let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x23, x25);
> +     out1[0] = x26;
> +     out1[1] = x28;
> +@@ -5832,79 +2193,30 @@ pub const fn fiat_p384_scalar_opp(
> +     arg1: &fiat_p384_scalar_montgomery_domain_field_element,
> + ) -> fiat_p384_scalar_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_subborrowx_u32(0x0, (0x0 as u32), (arg1[0]));
> +-    let mut x3: u32 = 0;
> +-    let mut x4: fiat_p384_scalar_u1 = 0;
> +     let (x3, x4) = fiat_p384_scalar_subborrowx_u32(x2, (0x0 as u32), (arg1[1]));
> +-    let mut x5: u32 = 0;
> +-    let mut x6: fiat_p384_scalar_u1 = 0;
> +     let (x5, x6) = fiat_p384_scalar_subborrowx_u32(x4, (0x0 as u32), (arg1[2]));
> +-    let mut x7: u32 = 0;
> +-    let mut x8: fiat_p384_scalar_u1 = 0;
> +     let (x7, x8) = fiat_p384_scalar_subborrowx_u32(x6, (0x0 as u32), (arg1[3]));
> +-    let mut x9: u32 = 0;
> +-    let mut x10: fiat_p384_scalar_u1 = 0;
> +     let (x9, x10) = fiat_p384_scalar_subborrowx_u32(x8, (0x0 as u32), (arg1[4]));
> +-    let mut x11: u32 = 0;
> +-    let mut x12: fiat_p384_scalar_u1 = 0;
> +     let (x11, x12) = fiat_p384_scalar_subborrowx_u32(x10, (0x0 as u32), (arg1[5]));
> +-    let mut x13: u32 = 0;
> +-    let mut x14: fiat_p384_scalar_u1 = 0;
> +     let (x13, x14) = fiat_p384_scalar_subborrowx_u32(x12, (0x0 as u32), (arg1[6]));
> +-    let mut x15: u32 = 0;
> +-    let mut x16: fiat_p384_scalar_u1 = 0;
> +     let (x15, x16) = fiat_p384_scalar_subborrowx_u32(x14, (0x0 as u32), (arg1[7]));
> +-    let mut x17: u32 = 0;
> +-    let mut x18: fiat_p384_scalar_u1 = 0;
> +     let (x17, x18) = fiat_p384_scalar_subborrowx_u32(x16, (0x0 as u32), (arg1[8]));
> +-    let mut x19: u32 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_subborrowx_u32(x18, (0x0 as u32), (arg1[9]));
> +-    let mut x21: u32 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_subborrowx_u32(x20, (0x0 as u32), (arg1[10]));
> +-    let mut x23: u32 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_subborrowx_u32(x22, (0x0 as u32), (arg1[11]));
> +-    let mut x25: u32 = 0;
> +     let (x25) = fiat_p384_scalar_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_scalar_u1 = 0;
> +     let (x26, x27) = fiat_p384_scalar_addcarryx_u32(0x0, x1, (x25 & 0xccc52973));
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_scalar_u1 = 0;
> +     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, x3, (x25 & 0xecec196a));
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_scalar_u1 = 0;
> +     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x5, (x25 & 0x48b0a77a));
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_scalar_u1 = 0;
> +     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x7, (x25 & 0x581a0db2));
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_scalar_u1 = 0;
> +     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x9, (x25 & 0xf4372ddf));
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_scalar_u1 = 0;
> +     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x11, (x25 & 0xc7634d81));
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_scalar_u1 = 0;
> +     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x13, x25);
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_scalar_u1 = 0;
> +     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x25);
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_scalar_u1 = 0;
> +     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x17, x25);
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x19, x25);
> +-    let mut x46: u32 = 0;
> +-    let mut x47: fiat_p384_scalar_u1 = 0;
> +     let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x21, x25);
> +-    let mut x48: u32 = 0;
> +-    let mut x49: fiat_p384_scalar_u1 = 0;
> +     let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x23, x25);
> +     out1[0] = x26;
> +     out1[1] = x28;
> +@@ -5934,1837 +2246,647 @@ pub const fn fiat_p384_scalar_from_montgomery(
> + ) -> fiat_p384_scalar_non_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_non_montgomery_domain_field_element = [0; 12];
> +     let x1: u32 = (arg1[0]);
> +-    let mut x2: u32 = 0;
> +-    let mut x3: u32 = 0;
> +     let (x2, x3) = fiat_p384_scalar_mulx_u32(x1, 0xe88fdc45);
> +-    let mut x4: u32 = 0;
> +-    let mut x5: u32 = 0;
> +     let (x4, x5) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
> +-    let mut x6: u32 = 0;
> +-    let mut x7: u32 = 0;
> +     let (x6, x7) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
> +-    let mut x8: u32 = 0;
> +-    let mut x9: u32 = 0;
> +     let (x8, x9) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
> +-    let mut x10: u32 = 0;
> +-    let mut x11: u32 = 0;
> +     let (x10, x11) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
> +-    let mut x12: u32 = 0;
> +-    let mut x13: u32 = 0;
> +     let (x12, x13) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
> +-    let mut x14: u32 = 0;
> +-    let mut x15: u32 = 0;
> +     let (x14, x15) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
> +-    let mut x16: u32 = 0;
> +-    let mut x17: u32 = 0;
> +     let (x16, x17) = fiat_p384_scalar_mulx_u32(x2, 0xc7634d81);
> +-    let mut x18: u32 = 0;
> +-    let mut x19: u32 = 0;
> +     let (x18, x19) = fiat_p384_scalar_mulx_u32(x2, 0xf4372ddf);
> +-    let mut x20: u32 = 0;
> +-    let mut x21: u32 = 0;
> +     let (x20, x21) = fiat_p384_scalar_mulx_u32(x2, 0x581a0db2);
> +-    let mut x22: u32 = 0;
> +-    let mut x23: u32 = 0;
> +     let (x22, x23) = fiat_p384_scalar_mulx_u32(x2, 0x48b0a77a);
> +-    let mut x24: u32 = 0;
> +-    let mut x25: u32 = 0;
> +     let (x24, x25) = fiat_p384_scalar_mulx_u32(x2, 0xecec196a);
> +-    let mut x26: u32 = 0;
> +-    let mut x27: u32 = 0;
> +     let (x26, x27) = fiat_p384_scalar_mulx_u32(x2, 0xccc52973);
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_scalar_u1 = 0;
> +     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(0x0, x27, x24);
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_scalar_u1 = 0;
> +     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x25, x22);
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_scalar_u1 = 0;
> +     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x23, x20);
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_scalar_u1 = 0;
> +     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x21, x18);
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_scalar_u1 = 0;
> +     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x19, x16);
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_scalar_u1 = 0;
> +     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x17, x14);
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_scalar_u1 = 0;
> +     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x12);
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_scalar_u1 = 0;
> +     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x13, x10);
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x11, x8);
> +-    let mut x46: u32 = 0;
> +-    let mut x47: fiat_p384_scalar_u1 = 0;
> +     let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x9, x6);
> +-    let mut x48: u32 = 0;
> +-    let mut x49: fiat_p384_scalar_u1 = 0;
> +     let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x7, x4);
> +-    let mut x50: u32 = 0;
> +-    let mut x51: fiat_p384_scalar_u1 = 0;
> +     let (x50, x51) = fiat_p384_scalar_addcarryx_u32(0x0, x1, x26);
> +-    let mut x52: u32 = 0;
> +-    let mut x53: fiat_p384_scalar_u1 = 0;
> +     let (x52, x53) = fiat_p384_scalar_addcarryx_u32(x51, (0x0 as u32), x28);
> +-    let mut x54: u32 = 0;
> +-    let mut x55: fiat_p384_scalar_u1 = 0;
> +     let (x54, x55) = fiat_p384_scalar_addcarryx_u32(x53, (0x0 as u32), x30);
> +-    let mut x56: u32 = 0;
> +-    let mut x57: fiat_p384_scalar_u1 = 0;
> +     let (x56, x57) = fiat_p384_scalar_addcarryx_u32(x55, (0x0 as u32), x32);
> +-    let mut x58: u32 = 0;
> +-    let mut x59: fiat_p384_scalar_u1 = 0;
> +     let (x58, x59) = fiat_p384_scalar_addcarryx_u32(x57, (0x0 as u32), x34);
> +-    let mut x60: u32 = 0;
> +-    let mut x61: fiat_p384_scalar_u1 = 0;
> +     let (x60, x61) = fiat_p384_scalar_addcarryx_u32(x59, (0x0 as u32), x36);
> +-    let mut x62: u32 = 0;
> +-    let mut x63: fiat_p384_scalar_u1 = 0;
> +     let (x62, x63) = fiat_p384_scalar_addcarryx_u32(x61, (0x0 as u32), x38);
> +-    let mut x64: u32 = 0;
> +-    let mut x65: fiat_p384_scalar_u1 = 0;
> +     let (x64, x65) = fiat_p384_scalar_addcarryx_u32(x63, (0x0 as u32), x40);
> +-    let mut x66: u32 = 0;
> +-    let mut x67: fiat_p384_scalar_u1 = 0;
> +     let (x66, x67) = fiat_p384_scalar_addcarryx_u32(x65, (0x0 as u32), x42);
> +-    let mut x68: u32 = 0;
> +-    let mut x69: fiat_p384_scalar_u1 = 0;
> +     let (x68, x69) = fiat_p384_scalar_addcarryx_u32(x67, (0x0 as u32), x44);
> +-    let mut x70: u32 = 0;
> +-    let mut x71: fiat_p384_scalar_u1 = 0;
> +     let (x70, x71) = fiat_p384_scalar_addcarryx_u32(x69, (0x0 as u32), x46);
> +-    let mut x72: u32 = 0;
> +-    let mut x73: fiat_p384_scalar_u1 = 0;
> +     let (x72, x73) = fiat_p384_scalar_addcarryx_u32(x71, (0x0 as u32), x48);
> +-    let mut x74: u32 = 0;
> +-    let mut x75: fiat_p384_scalar_u1 = 0;
> +     let (x74, x75) = fiat_p384_scalar_addcarryx_u32(x73, (0x0 as u32), ((x49 as u32) + x5));
> +-    let mut x76: u32 = 0;
> +-    let mut x77: fiat_p384_scalar_u1 = 0;
> +     let (x76, x77) = fiat_p384_scalar_addcarryx_u32(0x0, x52, (arg1[1]));
> +-    let mut x78: u32 = 0;
> +-    let mut x79: fiat_p384_scalar_u1 = 0;
> +     let (x78, x79) = fiat_p384_scalar_addcarryx_u32(x77, x54, (0x0 as u32));
> +-    let mut x80: u32 = 0;
> +-    let mut x81: fiat_p384_scalar_u1 = 0;
> +     let (x80, x81) = fiat_p384_scalar_addcarryx_u32(x79, x56, (0x0 as u32));
> +-    let mut x82: u32 = 0;
> +-    let mut x83: fiat_p384_scalar_u1 = 0;
> +     let (x82, x83) = fiat_p384_scalar_addcarryx_u32(x81, x58, (0x0 as u32));
> +-    let mut x84: u32 = 0;
> +-    let mut x85: fiat_p384_scalar_u1 = 0;
> +     let (x84, x85) = fiat_p384_scalar_addcarryx_u32(x83, x60, (0x0 as u32));
> +-    let mut x86: u32 = 0;
> +-    let mut x87: fiat_p384_scalar_u1 = 0;
> +     let (x86, x87) = fiat_p384_scalar_addcarryx_u32(x85, x62, (0x0 as u32));
> +-    let mut x88: u32 = 0;
> +-    let mut x89: fiat_p384_scalar_u1 = 0;
> +     let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x64, (0x0 as u32));
> +-    let mut x90: u32 = 0;
> +-    let mut x91: fiat_p384_scalar_u1 = 0;
> +     let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x66, (0x0 as u32));
> +-    let mut x92: u32 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x68, (0x0 as u32));
> +-    let mut x94: u32 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x70, (0x0 as u32));
> +-    let mut x96: u32 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x72, (0x0 as u32));
> +-    let mut x98: u32 = 0;
> +-    let mut x99: fiat_p384_scalar_u1 = 0;
> +     let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x74, (0x0 as u32));
> +-    let mut x100: u32 = 0;
> +-    let mut x101: u32 = 0;
> +     let (x100, x101) = fiat_p384_scalar_mulx_u32(x76, 0xe88fdc45);
> +-    let mut x102: u32 = 0;
> +-    let mut x103: u32 = 0;
> +     let (x102, x103) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
> +-    let mut x104: u32 = 0;
> +-    let mut x105: u32 = 0;
> +     let (x104, x105) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
> +-    let mut x106: u32 = 0;
> +-    let mut x107: u32 = 0;
> +     let (x106, x107) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
> +-    let mut x108: u32 = 0;
> +-    let mut x109: u32 = 0;
> +     let (x108, x109) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
> +-    let mut x110: u32 = 0;
> +-    let mut x111: u32 = 0;
> +     let (x110, x111) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
> +-    let mut x112: u32 = 0;
> +-    let mut x113: u32 = 0;
> +     let (x112, x113) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
> +-    let mut x114: u32 = 0;
> +-    let mut x115: u32 = 0;
> +     let (x114, x115) = fiat_p384_scalar_mulx_u32(x100, 0xc7634d81);
> +-    let mut x116: u32 = 0;
> +-    let mut x117: u32 = 0;
> +     let (x116, x117) = fiat_p384_scalar_mulx_u32(x100, 0xf4372ddf);
> +-    let mut x118: u32 = 0;
> +-    let mut x119: u32 = 0;
> +     let (x118, x119) = fiat_p384_scalar_mulx_u32(x100, 0x581a0db2);
> +-    let mut x120: u32 = 0;
> +-    let mut x121: u32 = 0;
> +     let (x120, x121) = fiat_p384_scalar_mulx_u32(x100, 0x48b0a77a);
> +-    let mut x122: u32 = 0;
> +-    let mut x123: u32 = 0;
> +     let (x122, x123) = fiat_p384_scalar_mulx_u32(x100, 0xecec196a);
> +-    let mut x124: u32 = 0;
> +-    let mut x125: u32 = 0;
> +     let (x124, x125) = fiat_p384_scalar_mulx_u32(x100, 0xccc52973);
> +-    let mut x126: u32 = 0;
> +-    let mut x127: fiat_p384_scalar_u1 = 0;
> +     let (x126, x127) = fiat_p384_scalar_addcarryx_u32(0x0, x125, x122);
> +-    let mut x128: u32 = 0;
> +-    let mut x129: fiat_p384_scalar_u1 = 0;
> +     let (x128, x129) = fiat_p384_scalar_addcarryx_u32(x127, x123, x120);
> +-    let mut x130: u32 = 0;
> +-    let mut x131: fiat_p384_scalar_u1 = 0;
> +     let (x130, x131) = fiat_p384_scalar_addcarryx_u32(x129, x121, x118);
> +-    let mut x132: u32 = 0;
> +-    let mut x133: fiat_p384_scalar_u1 = 0;
> +     let (x132, x133) = fiat_p384_scalar_addcarryx_u32(x131, x119, x116);
> +-    let mut x134: u32 = 0;
> +-    let mut x135: fiat_p384_scalar_u1 = 0;
> +     let (x134, x135) = fiat_p384_scalar_addcarryx_u32(x133, x117, x114);
> +-    let mut x136: u32 = 0;
> +-    let mut x137: fiat_p384_scalar_u1 = 0;
> +     let (x136, x137) = fiat_p384_scalar_addcarryx_u32(x135, x115, x112);
> +-    let mut x138: u32 = 0;
> +-    let mut x139: fiat_p384_scalar_u1 = 0;
> +     let (x138, x139) = fiat_p384_scalar_addcarryx_u32(x137, x113, x110);
> +-    let mut x140: u32 = 0;
> +-    let mut x141: fiat_p384_scalar_u1 = 0;
> +     let (x140, x141) = fiat_p384_scalar_addcarryx_u32(x139, x111, x108);
> +-    let mut x142: u32 = 0;
> +-    let mut x143: fiat_p384_scalar_u1 = 0;
> +     let (x142, x143) = fiat_p384_scalar_addcarryx_u32(x141, x109, x106);
> +-    let mut x144: u32 = 0;
> +-    let mut x145: fiat_p384_scalar_u1 = 0;
> +     let (x144, x145) = fiat_p384_scalar_addcarryx_u32(x143, x107, x104);
> +-    let mut x146: u32 = 0;
> +-    let mut x147: fiat_p384_scalar_u1 = 0;
> +     let (x146, x147) = fiat_p384_scalar_addcarryx_u32(x145, x105, x102);
> +-    let mut x148: u32 = 0;
> +-    let mut x149: fiat_p384_scalar_u1 = 0;
> +     let (x148, x149) = fiat_p384_scalar_addcarryx_u32(0x0, x76, x124);
> +-    let mut x150: u32 = 0;
> +-    let mut x151: fiat_p384_scalar_u1 = 0;
> +     let (x150, x151) = fiat_p384_scalar_addcarryx_u32(x149, x78, x126);
> +-    let mut x152: u32 = 0;
> +-    let mut x153: fiat_p384_scalar_u1 = 0;
> +     let (x152, x153) = fiat_p384_scalar_addcarryx_u32(x151, x80, x128);
> +-    let mut x154: u32 = 0;
> +-    let mut x155: fiat_p384_scalar_u1 = 0;
> +     let (x154, x155) = fiat_p384_scalar_addcarryx_u32(x153, x82, x130);
> +-    let mut x156: u32 = 0;
> +-    let mut x157: fiat_p384_scalar_u1 = 0;
> +     let (x156, x157) = fiat_p384_scalar_addcarryx_u32(x155, x84, x132);
> +-    let mut x158: u32 = 0;
> +-    let mut x159: fiat_p384_scalar_u1 = 0;
> +     let (x158, x159) = fiat_p384_scalar_addcarryx_u32(x157, x86, x134);
> +-    let mut x160: u32 = 0;
> +-    let mut x161: fiat_p384_scalar_u1 = 0;
> +     let (x160, x161) = fiat_p384_scalar_addcarryx_u32(x159, x88, x136);
> +-    let mut x162: u32 = 0;
> +-    let mut x163: fiat_p384_scalar_u1 = 0;
> +     let (x162, x163) = fiat_p384_scalar_addcarryx_u32(x161, x90, x138);
> +-    let mut x164: u32 = 0;
> +-    let mut x165: fiat_p384_scalar_u1 = 0;
> +     let (x164, x165) = fiat_p384_scalar_addcarryx_u32(x163, x92, x140);
> +-    let mut x166: u32 = 0;
> +-    let mut x167: fiat_p384_scalar_u1 = 0;
> +     let (x166, x167) = fiat_p384_scalar_addcarryx_u32(x165, x94, x142);
> +-    let mut x168: u32 = 0;
> +-    let mut x169: fiat_p384_scalar_u1 = 0;
> +     let (x168, x169) = fiat_p384_scalar_addcarryx_u32(x167, x96, x144);
> +-    let mut x170: u32 = 0;
> +-    let mut x171: fiat_p384_scalar_u1 = 0;
> +     let (x170, x171) = fiat_p384_scalar_addcarryx_u32(x169, x98, x146);
> +-    let mut x172: u32 = 0;
> +-    let mut x173: fiat_p384_scalar_u1 = 0;
> +     let (x172, x173) =
> +         fiat_p384_scalar_addcarryx_u32(x171, ((x99 as u32) + (x75 as u32)), ((x147 as u32) + x103));
> +-    let mut x174: u32 = 0;
> +-    let mut x175: fiat_p384_scalar_u1 = 0;
> +     let (x174, x175) = fiat_p384_scalar_addcarryx_u32(0x0, x150, (arg1[2]));
> +-    let mut x176: u32 = 0;
> +-    let mut x177: fiat_p384_scalar_u1 = 0;
> +     let (x176, x177) = fiat_p384_scalar_addcarryx_u32(x175, x152, (0x0 as u32));
> +-    let mut x178: u32 = 0;
> +-    let mut x179: fiat_p384_scalar_u1 = 0;
> +     let (x178, x179) = fiat_p384_scalar_addcarryx_u32(x177, x154, (0x0 as u32));
> +-    let mut x180: u32 = 0;
> +-    let mut x181: fiat_p384_scalar_u1 = 0;
> +     let (x180, x181) = fiat_p384_scalar_addcarryx_u32(x179, x156, (0x0 as u32));
> +-    let mut x182: u32 = 0;
> +-    let mut x183: fiat_p384_scalar_u1 = 0;
> +     let (x182, x183) = fiat_p384_scalar_addcarryx_u32(x181, x158, (0x0 as u32));
> +-    let mut x184: u32 = 0;
> +-    let mut x185: fiat_p384_scalar_u1 = 0;
> +     let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x160, (0x0 as u32));
> +-    let mut x186: u32 = 0;
> +-    let mut x187: fiat_p384_scalar_u1 = 0;
> +     let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x162, (0x0 as u32));
> +-    let mut x188: u32 = 0;
> +-    let mut x189: fiat_p384_scalar_u1 = 0;
> +     let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x164, (0x0 as u32));
> +-    let mut x190: u32 = 0;
> +-    let mut x191: fiat_p384_scalar_u1 = 0;
> +     let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x166, (0x0 as u32));
> +-    let mut x192: u32 = 0;
> +-    let mut x193: fiat_p384_scalar_u1 = 0;
> +     let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x168, (0x0 as u32));
> +-    let mut x194: u32 = 0;
> +-    let mut x195: fiat_p384_scalar_u1 = 0;
> +     let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x170, (0x0 as u32));
> +-    let mut x196: u32 = 0;
> +-    let mut x197: fiat_p384_scalar_u1 = 0;
> +     let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x172, (0x0 as u32));
> +-    let mut x198: u32 = 0;
> +-    let mut x199: u32 = 0;
> +     let (x198, x199) = fiat_p384_scalar_mulx_u32(x174, 0xe88fdc45);
> +-    let mut x200: u32 = 0;
> +-    let mut x201: u32 = 0;
> +     let (x200, x201) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
> +-    let mut x202: u32 = 0;
> +-    let mut x203: u32 = 0;
> +     let (x202, x203) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
> +-    let mut x204: u32 = 0;
> +-    let mut x205: u32 = 0;
> +     let (x204, x205) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
> +-    let mut x206: u32 = 0;
> +-    let mut x207: u32 = 0;
> +     let (x206, x207) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: u32 = 0;
> +     let (x208, x209) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: u32 = 0;
> +     let (x210, x211) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: u32 = 0;
> +     let (x212, x213) = fiat_p384_scalar_mulx_u32(x198, 0xc7634d81);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: u32 = 0;
> +     let (x214, x215) = fiat_p384_scalar_mulx_u32(x198, 0xf4372ddf);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: u32 = 0;
> +     let (x216, x217) = fiat_p384_scalar_mulx_u32(x198, 0x581a0db2);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: u32 = 0;
> +     let (x218, x219) = fiat_p384_scalar_mulx_u32(x198, 0x48b0a77a);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: u32 = 0;
> +     let (x220, x221) = fiat_p384_scalar_mulx_u32(x198, 0xecec196a);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: u32 = 0;
> +     let (x222, x223) = fiat_p384_scalar_mulx_u32(x198, 0xccc52973);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: fiat_p384_scalar_u1 = 0;
> +     let (x224, x225) = fiat_p384_scalar_addcarryx_u32(0x0, x223, x220);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: fiat_p384_scalar_u1 = 0;
> +     let (x226, x227) = fiat_p384_scalar_addcarryx_u32(x225, x221, x218);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: fiat_p384_scalar_u1 = 0;
> +     let (x228, x229) = fiat_p384_scalar_addcarryx_u32(x227, x219, x216);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: fiat_p384_scalar_u1 = 0;
> +     let (x230, x231) = fiat_p384_scalar_addcarryx_u32(x229, x217, x214);
> +-    let mut x232: u32 = 0;
> +-    let mut x233: fiat_p384_scalar_u1 = 0;
> +     let (x232, x233) = fiat_p384_scalar_addcarryx_u32(x231, x215, x212);
> +-    let mut x234: u32 = 0;
> +-    let mut x235: fiat_p384_scalar_u1 = 0;
> +     let (x234, x235) = fiat_p384_scalar_addcarryx_u32(x233, x213, x210);
> +-    let mut x236: u32 = 0;
> +-    let mut x237: fiat_p384_scalar_u1 = 0;
> +     let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x211, x208);
> +-    let mut x238: u32 = 0;
> +-    let mut x239: fiat_p384_scalar_u1 = 0;
> +     let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x209, x206);
> +-    let mut x240: u32 = 0;
> +-    let mut x241: fiat_p384_scalar_u1 = 0;
> +     let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x207, x204);
> +-    let mut x242: u32 = 0;
> +-    let mut x243: fiat_p384_scalar_u1 = 0;
> +     let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x205, x202);
> +-    let mut x244: u32 = 0;
> +-    let mut x245: fiat_p384_scalar_u1 = 0;
> +     let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x203, x200);
> +-    let mut x246: u32 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(0x0, x174, x222);
> +-    let mut x248: u32 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x176, x224);
> +-    let mut x250: u32 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x178, x226);
> +-    let mut x252: u32 = 0;
> +-    let mut x253: fiat_p384_scalar_u1 = 0;
> +     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x180, x228);
> +-    let mut x254: u32 = 0;
> +-    let mut x255: fiat_p384_scalar_u1 = 0;
> +     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x182, x230);
> +-    let mut x256: u32 = 0;
> +-    let mut x257: fiat_p384_scalar_u1 = 0;
> +     let (x256, x257) = fiat_p384_scalar_addcarryx_u32(x255, x184, x232);
> +-    let mut x258: u32 = 0;
> +-    let mut x259: fiat_p384_scalar_u1 = 0;
> +     let (x258, x259) = fiat_p384_scalar_addcarryx_u32(x257, x186, x234);
> +-    let mut x260: u32 = 0;
> +-    let mut x261: fiat_p384_scalar_u1 = 0;
> +     let (x260, x261) = fiat_p384_scalar_addcarryx_u32(x259, x188, x236);
> +-    let mut x262: u32 = 0;
> +-    let mut x263: fiat_p384_scalar_u1 = 0;
> +     let (x262, x263) = fiat_p384_scalar_addcarryx_u32(x261, x190, x238);
> +-    let mut x264: u32 = 0;
> +-    let mut x265: fiat_p384_scalar_u1 = 0;
> +     let (x264, x265) = fiat_p384_scalar_addcarryx_u32(x263, x192, x240);
> +-    let mut x266: u32 = 0;
> +-    let mut x267: fiat_p384_scalar_u1 = 0;
> +     let (x266, x267) = fiat_p384_scalar_addcarryx_u32(x265, x194, x242);
> +-    let mut x268: u32 = 0;
> +-    let mut x269: fiat_p384_scalar_u1 = 0;
> +     let (x268, x269) = fiat_p384_scalar_addcarryx_u32(x267, x196, x244);
> +-    let mut x270: u32 = 0;
> +-    let mut x271: fiat_p384_scalar_u1 = 0;
> +     let (x270, x271) = fiat_p384_scalar_addcarryx_u32(
> +         x269,
> +         ((x197 as u32) + (x173 as u32)),
> +         ((x245 as u32) + x201),
> +     );
> +-    let mut x272: u32 = 0;
> +-    let mut x273: fiat_p384_scalar_u1 = 0;
> +     let (x272, x273) = fiat_p384_scalar_addcarryx_u32(0x0, x248, (arg1[3]));
> +-    let mut x274: u32 = 0;
> +-    let mut x275: fiat_p384_scalar_u1 = 0;
> +     let (x274, x275) = fiat_p384_scalar_addcarryx_u32(x273, x250, (0x0 as u32));
> +-    let mut x276: u32 = 0;
> +-    let mut x277: fiat_p384_scalar_u1 = 0;
> +     let (x276, x277) = fiat_p384_scalar_addcarryx_u32(x275, x252, (0x0 as u32));
> +-    let mut x278: u32 = 0;
> +-    let mut x279: fiat_p384_scalar_u1 = 0;
> +     let (x278, x279) = fiat_p384_scalar_addcarryx_u32(x277, x254, (0x0 as u32));
> +-    let mut x280: u32 = 0;
> +-    let mut x281: fiat_p384_scalar_u1 = 0;
> +     let (x280, x281) = fiat_p384_scalar_addcarryx_u32(x279, x256, (0x0 as u32));
> +-    let mut x282: u32 = 0;
> +-    let mut x283: fiat_p384_scalar_u1 = 0;
> +     let (x282, x283) = fiat_p384_scalar_addcarryx_u32(x281, x258, (0x0 as u32));
> +-    let mut x284: u32 = 0;
> +-    let mut x285: fiat_p384_scalar_u1 = 0;
> +     let (x284, x285) = fiat_p384_scalar_addcarryx_u32(x283, x260, (0x0 as u32));
> +-    let mut x286: u32 = 0;
> +-    let mut x287: fiat_p384_scalar_u1 = 0;
> +     let (x286, x287) = fiat_p384_scalar_addcarryx_u32(x285, x262, (0x0 as u32));
> +-    let mut x288: u32 = 0;
> +-    let mut x289: fiat_p384_scalar_u1 = 0;
> +     let (x288, x289) = fiat_p384_scalar_addcarryx_u32(x287, x264, (0x0 as u32));
> +-    let mut x290: u32 = 0;
> +-    let mut x291: fiat_p384_scalar_u1 = 0;
> +     let (x290, x291) = fiat_p384_scalar_addcarryx_u32(x289, x266, (0x0 as u32));
> +-    let mut x292: u32 = 0;
> +-    let mut x293: fiat_p384_scalar_u1 = 0;
> +     let (x292, x293) = fiat_p384_scalar_addcarryx_u32(x291, x268, (0x0 as u32));
> +-    let mut x294: u32 = 0;
> +-    let mut x295: fiat_p384_scalar_u1 = 0;
> +     let (x294, x295) = fiat_p384_scalar_addcarryx_u32(x293, x270, (0x0 as u32));
> +-    let mut x296: u32 = 0;
> +-    let mut x297: u32 = 0;
> +     let (x296, x297) = fiat_p384_scalar_mulx_u32(x272, 0xe88fdc45);
> +-    let mut x298: u32 = 0;
> +-    let mut x299: u32 = 0;
> +     let (x298, x299) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
> +-    let mut x300: u32 = 0;
> +-    let mut x301: u32 = 0;
> +     let (x300, x301) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
> +-    let mut x302: u32 = 0;
> +-    let mut x303: u32 = 0;
> +     let (x302, x303) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
> +-    let mut x304: u32 = 0;
> +-    let mut x305: u32 = 0;
> +     let (x304, x305) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
> +-    let mut x306: u32 = 0;
> +-    let mut x307: u32 = 0;
> +     let (x306, x307) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
> +-    let mut x308: u32 = 0;
> +-    let mut x309: u32 = 0;
> +     let (x308, x309) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
> +-    let mut x310: u32 = 0;
> +-    let mut x311: u32 = 0;
> +     let (x310, x311) = fiat_p384_scalar_mulx_u32(x296, 0xc7634d81);
> +-    let mut x312: u32 = 0;
> +-    let mut x313: u32 = 0;
> +     let (x312, x313) = fiat_p384_scalar_mulx_u32(x296, 0xf4372ddf);
> +-    let mut x314: u32 = 0;
> +-    let mut x315: u32 = 0;
> +     let (x314, x315) = fiat_p384_scalar_mulx_u32(x296, 0x581a0db2);
> +-    let mut x316: u32 = 0;
> +-    let mut x317: u32 = 0;
> +     let (x316, x317) = fiat_p384_scalar_mulx_u32(x296, 0x48b0a77a);
> +-    let mut x318: u32 = 0;
> +-    let mut x319: u32 = 0;
> +     let (x318, x319) = fiat_p384_scalar_mulx_u32(x296, 0xecec196a);
> +-    let mut x320: u32 = 0;
> +-    let mut x321: u32 = 0;
> +     let (x320, x321) = fiat_p384_scalar_mulx_u32(x296, 0xccc52973);
> +-    let mut x322: u32 = 0;
> +-    let mut x323: fiat_p384_scalar_u1 = 0;
> +     let (x322, x323) = fiat_p384_scalar_addcarryx_u32(0x0, x321, x318);
> +-    let mut x324: u32 = 0;
> +-    let mut x325: fiat_p384_scalar_u1 = 0;
> +     let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x319, x316);
> +-    let mut x326: u32 = 0;
> +-    let mut x327: fiat_p384_scalar_u1 = 0;
> +     let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x317, x314);
> +-    let mut x328: u32 = 0;
> +-    let mut x329: fiat_p384_scalar_u1 = 0;
> +     let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x315, x312);
> +-    let mut x330: u32 = 0;
> +-    let mut x331: fiat_p384_scalar_u1 = 0;
> +     let (x330, x331) = fiat_p384_scalar_addcarryx_u32(x329, x313, x310);
> +-    let mut x332: u32 = 0;
> +-    let mut x333: fiat_p384_scalar_u1 = 0;
> +     let (x332, x333) = fiat_p384_scalar_addcarryx_u32(x331, x311, x308);
> +-    let mut x334: u32 = 0;
> +-    let mut x335: fiat_p384_scalar_u1 = 0;
> +     let (x334, x335) = fiat_p384_scalar_addcarryx_u32(x333, x309, x306);
> +-    let mut x336: u32 = 0;
> +-    let mut x337: fiat_p384_scalar_u1 = 0;
> +     let (x336, x337) = fiat_p384_scalar_addcarryx_u32(x335, x307, x304);
> +-    let mut x338: u32 = 0;
> +-    let mut x339: fiat_p384_scalar_u1 = 0;
> +     let (x338, x339) = fiat_p384_scalar_addcarryx_u32(x337, x305, x302);
> +-    let mut x340: u32 = 0;
> +-    let mut x341: fiat_p384_scalar_u1 = 0;
> +     let (x340, x341) = fiat_p384_scalar_addcarryx_u32(x339, x303, x300);
> +-    let mut x342: u32 = 0;
> +-    let mut x343: fiat_p384_scalar_u1 = 0;
> +     let (x342, x343) = fiat_p384_scalar_addcarryx_u32(x341, x301, x298);
> +-    let mut x344: u32 = 0;
> +-    let mut x345: fiat_p384_scalar_u1 = 0;
> +     let (x344, x345) = fiat_p384_scalar_addcarryx_u32(0x0, x272, x320);
> +-    let mut x346: u32 = 0;
> +-    let mut x347: fiat_p384_scalar_u1 = 0;
> +     let (x346, x347) = fiat_p384_scalar_addcarryx_u32(x345, x274, x322);
> +-    let mut x348: u32 = 0;
> +-    let mut x349: fiat_p384_scalar_u1 = 0;
> +     let (x348, x349) = fiat_p384_scalar_addcarryx_u32(x347, x276, x324);
> +-    let mut x350: u32 = 0;
> +-    let mut x351: fiat_p384_scalar_u1 = 0;
> +     let (x350, x351) = fiat_p384_scalar_addcarryx_u32(x349, x278, x326);
> +-    let mut x352: u32 = 0;
> +-    let mut x353: fiat_p384_scalar_u1 = 0;
> +     let (x352, x353) = fiat_p384_scalar_addcarryx_u32(x351, x280, x328);
> +-    let mut x354: u32 = 0;
> +-    let mut x355: fiat_p384_scalar_u1 = 0;
> +     let (x354, x355) = fiat_p384_scalar_addcarryx_u32(x353, x282, x330);
> +-    let mut x356: u32 = 0;
> +-    let mut x357: fiat_p384_scalar_u1 = 0;
> +     let (x356, x357) = fiat_p384_scalar_addcarryx_u32(x355, x284, x332);
> +-    let mut x358: u32 = 0;
> +-    let mut x359: fiat_p384_scalar_u1 = 0;
> +     let (x358, x359) = fiat_p384_scalar_addcarryx_u32(x357, x286, x334);
> +-    let mut x360: u32 = 0;
> +-    let mut x361: fiat_p384_scalar_u1 = 0;
> +     let (x360, x361) = fiat_p384_scalar_addcarryx_u32(x359, x288, x336);
> +-    let mut x362: u32 = 0;
> +-    let mut x363: fiat_p384_scalar_u1 = 0;
> +     let (x362, x363) = fiat_p384_scalar_addcarryx_u32(x361, x290, x338);
> +-    let mut x364: u32 = 0;
> +-    let mut x365: fiat_p384_scalar_u1 = 0;
> +     let (x364, x365) = fiat_p384_scalar_addcarryx_u32(x363, x292, x340);
> +-    let mut x366: u32 = 0;
> +-    let mut x367: fiat_p384_scalar_u1 = 0;
> +     let (x366, x367) = fiat_p384_scalar_addcarryx_u32(x365, x294, x342);
> +-    let mut x368: u32 = 0;
> +-    let mut x369: fiat_p384_scalar_u1 = 0;
> +     let (x368, x369) = fiat_p384_scalar_addcarryx_u32(
> +         x367,
> +         ((x295 as u32) + (x271 as u32)),
> +         ((x343 as u32) + x299),
> +     );
> +-    let mut x370: u32 = 0;
> +-    let mut x371: fiat_p384_scalar_u1 = 0;
> +     let (x370, x371) = fiat_p384_scalar_addcarryx_u32(0x0, x346, (arg1[4]));
> +-    let mut x372: u32 = 0;
> +-    let mut x373: fiat_p384_scalar_u1 = 0;
> +     let (x372, x373) = fiat_p384_scalar_addcarryx_u32(x371, x348, (0x0 as u32));
> +-    let mut x374: u32 = 0;
> +-    let mut x375: fiat_p384_scalar_u1 = 0;
> +     let (x374, x375) = fiat_p384_scalar_addcarryx_u32(x373, x350, (0x0 as u32));
> +-    let mut x376: u32 = 0;
> +-    let mut x377: fiat_p384_scalar_u1 = 0;
> +     let (x376, x377) = fiat_p384_scalar_addcarryx_u32(x375, x352, (0x0 as u32));
> +-    let mut x378: u32 = 0;
> +-    let mut x379: fiat_p384_scalar_u1 = 0;
> +     let (x378, x379) = fiat_p384_scalar_addcarryx_u32(x377, x354, (0x0 as u32));
> +-    let mut x380: u32 = 0;
> +-    let mut x381: fiat_p384_scalar_u1 = 0;
> +     let (x380, x381) = fiat_p384_scalar_addcarryx_u32(x379, x356, (0x0 as u32));
> +-    let mut x382: u32 = 0;
> +-    let mut x383: fiat_p384_scalar_u1 = 0;
> +     let (x382, x383) = fiat_p384_scalar_addcarryx_u32(x381, x358, (0x0 as u32));
> +-    let mut x384: u32 = 0;
> +-    let mut x385: fiat_p384_scalar_u1 = 0;
> +     let (x384, x385) = fiat_p384_scalar_addcarryx_u32(x383, x360, (0x0 as u32));
> +-    let mut x386: u32 = 0;
> +-    let mut x387: fiat_p384_scalar_u1 = 0;
> +     let (x386, x387) = fiat_p384_scalar_addcarryx_u32(x385, x362, (0x0 as u32));
> +-    let mut x388: u32 = 0;
> +-    let mut x389: fiat_p384_scalar_u1 = 0;
> +     let (x388, x389) = fiat_p384_scalar_addcarryx_u32(x387, x364, (0x0 as u32));
> +-    let mut x390: u32 = 0;
> +-    let mut x391: fiat_p384_scalar_u1 = 0;
> +     let (x390, x391) = fiat_p384_scalar_addcarryx_u32(x389, x366, (0x0 as u32));
> +-    let mut x392: u32 = 0;
> +-    let mut x393: fiat_p384_scalar_u1 = 0;
> +     let (x392, x393) = fiat_p384_scalar_addcarryx_u32(x391, x368, (0x0 as u32));
> +-    let mut x394: u32 = 0;
> +-    let mut x395: u32 = 0;
> +     let (x394, x395) = fiat_p384_scalar_mulx_u32(x370, 0xe88fdc45);
> +-    let mut x396: u32 = 0;
> +-    let mut x397: u32 = 0;
> +     let (x396, x397) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
> +-    let mut x398: u32 = 0;
> +-    let mut x399: u32 = 0;
> +     let (x398, x399) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
> +-    let mut x400: u32 = 0;
> +-    let mut x401: u32 = 0;
> +     let (x400, x401) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
> +-    let mut x402: u32 = 0;
> +-    let mut x403: u32 = 0;
> +     let (x402, x403) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
> +-    let mut x404: u32 = 0;
> +-    let mut x405: u32 = 0;
> +     let (x404, x405) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
> +-    let mut x406: u32 = 0;
> +-    let mut x407: u32 = 0;
> +     let (x406, x407) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
> +-    let mut x408: u32 = 0;
> +-    let mut x409: u32 = 0;
> +     let (x408, x409) = fiat_p384_scalar_mulx_u32(x394, 0xc7634d81);
> +-    let mut x410: u32 = 0;
> +-    let mut x411: u32 = 0;
> +     let (x410, x411) = fiat_p384_scalar_mulx_u32(x394, 0xf4372ddf);
> +-    let mut x412: u32 = 0;
> +-    let mut x413: u32 = 0;
> +     let (x412, x413) = fiat_p384_scalar_mulx_u32(x394, 0x581a0db2);
> +-    let mut x414: u32 = 0;
> +-    let mut x415: u32 = 0;
> +     let (x414, x415) = fiat_p384_scalar_mulx_u32(x394, 0x48b0a77a);
> +-    let mut x416: u32 = 0;
> +-    let mut x417: u32 = 0;
> +     let (x416, x417) = fiat_p384_scalar_mulx_u32(x394, 0xecec196a);
> +-    let mut x418: u32 = 0;
> +-    let mut x419: u32 = 0;
> +     let (x418, x419) = fiat_p384_scalar_mulx_u32(x394, 0xccc52973);
> +-    let mut x420: u32 = 0;
> +-    let mut x421: fiat_p384_scalar_u1 = 0;
> +     let (x420, x421) = fiat_p384_scalar_addcarryx_u32(0x0, x419, x416);
> +-    let mut x422: u32 = 0;
> +-    let mut x423: fiat_p384_scalar_u1 = 0;
> +     let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x417, x414);
> +-    let mut x424: u32 = 0;
> +-    let mut x425: fiat_p384_scalar_u1 = 0;
> +     let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x415, x412);
> +-    let mut x426: u32 = 0;
> +-    let mut x427: fiat_p384_scalar_u1 = 0;
> +     let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x413, x410);
> +-    let mut x428: u32 = 0;
> +-    let mut x429: fiat_p384_scalar_u1 = 0;
> +     let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x411, x408);
> +-    let mut x430: u32 = 0;
> +-    let mut x431: fiat_p384_scalar_u1 = 0;
> +     let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x409, x406);
> +-    let mut x432: u32 = 0;
> +-    let mut x433: fiat_p384_scalar_u1 = 0;
> +     let (x432, x433) = fiat_p384_scalar_addcarryx_u32(x431, x407, x404);
> +-    let mut x434: u32 = 0;
> +-    let mut x435: fiat_p384_scalar_u1 = 0;
> +     let (x434, x435) = fiat_p384_scalar_addcarryx_u32(x433, x405, x402);
> +-    let mut x436: u32 = 0;
> +-    let mut x437: fiat_p384_scalar_u1 = 0;
> +     let (x436, x437) = fiat_p384_scalar_addcarryx_u32(x435, x403, x400);
> +-    let mut x438: u32 = 0;
> +-    let mut x439: fiat_p384_scalar_u1 = 0;
> +     let (x438, x439) = fiat_p384_scalar_addcarryx_u32(x437, x401, x398);
> +-    let mut x440: u32 = 0;
> +-    let mut x441: fiat_p384_scalar_u1 = 0;
> +     let (x440, x441) = fiat_p384_scalar_addcarryx_u32(x439, x399, x396);
> +-    let mut x442: u32 = 0;
> +-    let mut x443: fiat_p384_scalar_u1 = 0;
> +     let (x442, x443) = fiat_p384_scalar_addcarryx_u32(0x0, x370, x418);
> +-    let mut x444: u32 = 0;
> +-    let mut x445: fiat_p384_scalar_u1 = 0;
> +     let (x444, x445) = fiat_p384_scalar_addcarryx_u32(x443, x372, x420);
> +-    let mut x446: u32 = 0;
> +-    let mut x447: fiat_p384_scalar_u1 = 0;
> +     let (x446, x447) = fiat_p384_scalar_addcarryx_u32(x445, x374, x422);
> +-    let mut x448: u32 = 0;
> +-    let mut x449: fiat_p384_scalar_u1 = 0;
> +     let (x448, x449) = fiat_p384_scalar_addcarryx_u32(x447, x376, x424);
> +-    let mut x450: u32 = 0;
> +-    let mut x451: fiat_p384_scalar_u1 = 0;
> +     let (x450, x451) = fiat_p384_scalar_addcarryx_u32(x449, x378, x426);
> +-    let mut x452: u32 = 0;
> +-    let mut x453: fiat_p384_scalar_u1 = 0;
> +     let (x452, x453) = fiat_p384_scalar_addcarryx_u32(x451, x380, x428);
> +-    let mut x454: u32 = 0;
> +-    let mut x455: fiat_p384_scalar_u1 = 0;
> +     let (x454, x455) = fiat_p384_scalar_addcarryx_u32(x453, x382, x430);
> +-    let mut x456: u32 = 0;
> +-    let mut x457: fiat_p384_scalar_u1 = 0;
> +     let (x456, x457) = fiat_p384_scalar_addcarryx_u32(x455, x384, x432);
> +-    let mut x458: u32 = 0;
> +-    let mut x459: fiat_p384_scalar_u1 = 0;
> +     let (x458, x459) = fiat_p384_scalar_addcarryx_u32(x457, x386, x434);
> +-    let mut x460: u32 = 0;
> +-    let mut x461: fiat_p384_scalar_u1 = 0;
> +     let (x460, x461) = fiat_p384_scalar_addcarryx_u32(x459, x388, x436);
> +-    let mut x462: u32 = 0;
> +-    let mut x463: fiat_p384_scalar_u1 = 0;
> +     let (x462, x463) = fiat_p384_scalar_addcarryx_u32(x461, x390, x438);
> +-    let mut x464: u32 = 0;
> +-    let mut x465: fiat_p384_scalar_u1 = 0;
> +     let (x464, x465) = fiat_p384_scalar_addcarryx_u32(x463, x392, x440);
> +-    let mut x466: u32 = 0;
> +-    let mut x467: fiat_p384_scalar_u1 = 0;
> +     let (x466, x467) = fiat_p384_scalar_addcarryx_u32(
> +         x465,
> +         ((x393 as u32) + (x369 as u32)),
> +         ((x441 as u32) + x397),
> +     );
> +-    let mut x468: u32 = 0;
> +-    let mut x469: fiat_p384_scalar_u1 = 0;
> +     let (x468, x469) = fiat_p384_scalar_addcarryx_u32(0x0, x444, (arg1[5]));
> +-    let mut x470: u32 = 0;
> +-    let mut x471: fiat_p384_scalar_u1 = 0;
> +     let (x470, x471) = fiat_p384_scalar_addcarryx_u32(x469, x446, (0x0 as u32));
> +-    let mut x472: u32 = 0;
> +-    let mut x473: fiat_p384_scalar_u1 = 0;
> +     let (x472, x473) = fiat_p384_scalar_addcarryx_u32(x471, x448, (0x0 as u32));
> +-    let mut x474: u32 = 0;
> +-    let mut x475: fiat_p384_scalar_u1 = 0;
> +     let (x474, x475) = fiat_p384_scalar_addcarryx_u32(x473, x450, (0x0 as u32));
> +-    let mut x476: u32 = 0;
> +-    let mut x477: fiat_p384_scalar_u1 = 0;
> +     let (x476, x477) = fiat_p384_scalar_addcarryx_u32(x475, x452, (0x0 as u32));
> +-    let mut x478: u32 = 0;
> +-    let mut x479: fiat_p384_scalar_u1 = 0;
> +     let (x478, x479) = fiat_p384_scalar_addcarryx_u32(x477, x454, (0x0 as u32));
> +-    let mut x480: u32 = 0;
> +-    let mut x481: fiat_p384_scalar_u1 = 0;
> +     let (x480, x481) = fiat_p384_scalar_addcarryx_u32(x479, x456, (0x0 as u32));
> +-    let mut x482: u32 = 0;
> +-    let mut x483: fiat_p384_scalar_u1 = 0;
> +     let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x458, (0x0 as u32));
> +-    let mut x484: u32 = 0;
> +-    let mut x485: fiat_p384_scalar_u1 = 0;
> +     let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x460, (0x0 as u32));
> +-    let mut x486: u32 = 0;
> +-    let mut x487: fiat_p384_scalar_u1 = 0;
> +     let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x462, (0x0 as u32));
> +-    let mut x488: u32 = 0;
> +-    let mut x489: fiat_p384_scalar_u1 = 0;
> +     let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x464, (0x0 as u32));
> +-    let mut x490: u32 = 0;
> +-    let mut x491: fiat_p384_scalar_u1 = 0;
> +     let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x466, (0x0 as u32));
> +-    let mut x492: u32 = 0;
> +-    let mut x493: u32 = 0;
> +     let (x492, x493) = fiat_p384_scalar_mulx_u32(x468, 0xe88fdc45);
> +-    let mut x494: u32 = 0;
> +-    let mut x495: u32 = 0;
> +     let (x494, x495) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
> +-    let mut x496: u32 = 0;
> +-    let mut x497: u32 = 0;
> +     let (x496, x497) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
> +-    let mut x498: u32 = 0;
> +-    let mut x499: u32 = 0;
> +     let (x498, x499) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
> +-    let mut x500: u32 = 0;
> +-    let mut x501: u32 = 0;
> +     let (x500, x501) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
> +-    let mut x502: u32 = 0;
> +-    let mut x503: u32 = 0;
> +     let (x502, x503) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
> +-    let mut x504: u32 = 0;
> +-    let mut x505: u32 = 0;
> +     let (x504, x505) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
> +-    let mut x506: u32 = 0;
> +-    let mut x507: u32 = 0;
> +     let (x506, x507) = fiat_p384_scalar_mulx_u32(x492, 0xc7634d81);
> +-    let mut x508: u32 = 0;
> +-    let mut x509: u32 = 0;
> +     let (x508, x509) = fiat_p384_scalar_mulx_u32(x492, 0xf4372ddf);
> +-    let mut x510: u32 = 0;
> +-    let mut x511: u32 = 0;
> +     let (x510, x511) = fiat_p384_scalar_mulx_u32(x492, 0x581a0db2);
> +-    let mut x512: u32 = 0;
> +-    let mut x513: u32 = 0;
> +     let (x512, x513) = fiat_p384_scalar_mulx_u32(x492, 0x48b0a77a);
> +-    let mut x514: u32 = 0;
> +-    let mut x515: u32 = 0;
> +     let (x514, x515) = fiat_p384_scalar_mulx_u32(x492, 0xecec196a);
> +-    let mut x516: u32 = 0;
> +-    let mut x517: u32 = 0;
> +     let (x516, x517) = fiat_p384_scalar_mulx_u32(x492, 0xccc52973);
> +-    let mut x518: u32 = 0;
> +-    let mut x519: fiat_p384_scalar_u1 = 0;
> +     let (x518, x519) = fiat_p384_scalar_addcarryx_u32(0x0, x517, x514);
> +-    let mut x520: u32 = 0;
> +-    let mut x521: fiat_p384_scalar_u1 = 0;
> +     let (x520, x521) = fiat_p384_scalar_addcarryx_u32(x519, x515, x512);
> +-    let mut x522: u32 = 0;
> +-    let mut x523: fiat_p384_scalar_u1 = 0;
> +     let (x522, x523) = fiat_p384_scalar_addcarryx_u32(x521, x513, x510);
> +-    let mut x524: u32 = 0;
> +-    let mut x525: fiat_p384_scalar_u1 = 0;
> +     let (x524, x525) = fiat_p384_scalar_addcarryx_u32(x523, x511, x508);
> +-    let mut x526: u32 = 0;
> +-    let mut x527: fiat_p384_scalar_u1 = 0;
> +     let (x526, x527) = fiat_p384_scalar_addcarryx_u32(x525, x509, x506);
> +-    let mut x528: u32 = 0;
> +-    let mut x529: fiat_p384_scalar_u1 = 0;
> +     let (x528, x529) = fiat_p384_scalar_addcarryx_u32(x527, x507, x504);
> +-    let mut x530: u32 = 0;
> +-    let mut x531: fiat_p384_scalar_u1 = 0;
> +     let (x530, x531) = fiat_p384_scalar_addcarryx_u32(x529, x505, x502);
> +-    let mut x532: u32 = 0;
> +-    let mut x533: fiat_p384_scalar_u1 = 0;
> +     let (x532, x533) = fiat_p384_scalar_addcarryx_u32(x531, x503, x500);
> +-    let mut x534: u32 = 0;
> +-    let mut x535: fiat_p384_scalar_u1 = 0;
> +     let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x501, x498);
> +-    let mut x536: u32 = 0;
> +-    let mut x537: fiat_p384_scalar_u1 = 0;
> +     let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x499, x496);
> +-    let mut x538: u32 = 0;
> +-    let mut x539: fiat_p384_scalar_u1 = 0;
> +     let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x497, x494);
> +-    let mut x540: u32 = 0;
> +-    let mut x541: fiat_p384_scalar_u1 = 0;
> +     let (x540, x541) = fiat_p384_scalar_addcarryx_u32(0x0, x468, x516);
> +-    let mut x542: u32 = 0;
> +-    let mut x543: fiat_p384_scalar_u1 = 0;
> +     let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x470, x518);
> +-    let mut x544: u32 = 0;
> +-    let mut x545: fiat_p384_scalar_u1 = 0;
> +     let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x472, x520);
> +-    let mut x546: u32 = 0;
> +-    let mut x547: fiat_p384_scalar_u1 = 0;
> +     let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x474, x522);
> +-    let mut x548: u32 = 0;
> +-    let mut x549: fiat_p384_scalar_u1 = 0;
> +     let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x476, x524);
> +-    let mut x550: u32 = 0;
> +-    let mut x551: fiat_p384_scalar_u1 = 0;
> +     let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x478, x526);
> +-    let mut x552: u32 = 0;
> +-    let mut x553: fiat_p384_scalar_u1 = 0;
> +     let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x480, x528);
> +-    let mut x554: u32 = 0;
> +-    let mut x555: fiat_p384_scalar_u1 = 0;
> +     let (x554, x555) = fiat_p384_scalar_addcarryx_u32(x553, x482, x530);
> +-    let mut x556: u32 = 0;
> +-    let mut x557: fiat_p384_scalar_u1 = 0;
> +     let (x556, x557) = fiat_p384_scalar_addcarryx_u32(x555, x484, x532);
> +-    let mut x558: u32 = 0;
> +-    let mut x559: fiat_p384_scalar_u1 = 0;
> +     let (x558, x559) = fiat_p384_scalar_addcarryx_u32(x557, x486, x534);
> +-    let mut x560: u32 = 0;
> +-    let mut x561: fiat_p384_scalar_u1 = 0;
> +     let (x560, x561) = fiat_p384_scalar_addcarryx_u32(x559, x488, x536);
> +-    let mut x562: u32 = 0;
> +-    let mut x563: fiat_p384_scalar_u1 = 0;
> +     let (x562, x563) = fiat_p384_scalar_addcarryx_u32(x561, x490, x538);
> +-    let mut x564: u32 = 0;
> +-    let mut x565: fiat_p384_scalar_u1 = 0;
> +     let (x564, x565) = fiat_p384_scalar_addcarryx_u32(
> +         x563,
> +         ((x491 as u32) + (x467 as u32)),
> +         ((x539 as u32) + x495),
> +     );
> +-    let mut x566: u32 = 0;
> +-    let mut x567: fiat_p384_scalar_u1 = 0;
> +     let (x566, x567) = fiat_p384_scalar_addcarryx_u32(0x0, x542, (arg1[6]));
> +-    let mut x568: u32 = 0;
> +-    let mut x569: fiat_p384_scalar_u1 = 0;
> +     let (x568, x569) = fiat_p384_scalar_addcarryx_u32(x567, x544, (0x0 as u32));
> +-    let mut x570: u32 = 0;
> +-    let mut x571: fiat_p384_scalar_u1 = 0;
> +     let (x570, x571) = fiat_p384_scalar_addcarryx_u32(x569, x546, (0x0 as u32));
> +-    let mut x572: u32 = 0;
> +-    let mut x573: fiat_p384_scalar_u1 = 0;
> +     let (x572, x573) = fiat_p384_scalar_addcarryx_u32(x571, x548, (0x0 as u32));
> +-    let mut x574: u32 = 0;
> +-    let mut x575: fiat_p384_scalar_u1 = 0;
> +     let (x574, x575) = fiat_p384_scalar_addcarryx_u32(x573, x550, (0x0 as u32));
> +-    let mut x576: u32 = 0;
> +-    let mut x577: fiat_p384_scalar_u1 = 0;
> +     let (x576, x577) = fiat_p384_scalar_addcarryx_u32(x575, x552, (0x0 as u32));
> +-    let mut x578: u32 = 0;
> +-    let mut x579: fiat_p384_scalar_u1 = 0;
> +     let (x578, x579) = fiat_p384_scalar_addcarryx_u32(x577, x554, (0x0 as u32));
> +-    let mut x580: u32 = 0;
> +-    let mut x581: fiat_p384_scalar_u1 = 0;
> +     let (x580, x581) = fiat_p384_scalar_addcarryx_u32(x579, x556, (0x0 as u32));
> +-    let mut x582: u32 = 0;
> +-    let mut x583: fiat_p384_scalar_u1 = 0;
> +     let (x582, x583) = fiat_p384_scalar_addcarryx_u32(x581, x558, (0x0 as u32));
> +-    let mut x584: u32 = 0;
> +-    let mut x585: fiat_p384_scalar_u1 = 0;
> +     let (x584, x585) = fiat_p384_scalar_addcarryx_u32(x583, x560, (0x0 as u32));
> +-    let mut x586: u32 = 0;
> +-    let mut x587: fiat_p384_scalar_u1 = 0;
> +     let (x586, x587) = fiat_p384_scalar_addcarryx_u32(x585, x562, (0x0 as u32));
> +-    let mut x588: u32 = 0;
> +-    let mut x589: fiat_p384_scalar_u1 = 0;
> +     let (x588, x589) = fiat_p384_scalar_addcarryx_u32(x587, x564, (0x0 as u32));
> +-    let mut x590: u32 = 0;
> +-    let mut x591: u32 = 0;
> +     let (x590, x591) = fiat_p384_scalar_mulx_u32(x566, 0xe88fdc45);
> +-    let mut x592: u32 = 0;
> +-    let mut x593: u32 = 0;
> +     let (x592, x593) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
> +-    let mut x594: u32 = 0;
> +-    let mut x595: u32 = 0;
> +     let (x594, x595) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
> +-    let mut x596: u32 = 0;
> +-    let mut x597: u32 = 0;
> +     let (x596, x597) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
> +-    let mut x598: u32 = 0;
> +-    let mut x599: u32 = 0;
> +     let (x598, x599) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
> +-    let mut x600: u32 = 0;
> +-    let mut x601: u32 = 0;
> +     let (x600, x601) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
> +-    let mut x602: u32 = 0;
> +-    let mut x603: u32 = 0;
> +     let (x602, x603) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
> +-    let mut x604: u32 = 0;
> +-    let mut x605: u32 = 0;
> +     let (x604, x605) = fiat_p384_scalar_mulx_u32(x590, 0xc7634d81);
> +-    let mut x606: u32 = 0;
> +-    let mut x607: u32 = 0;
> +     let (x606, x607) = fiat_p384_scalar_mulx_u32(x590, 0xf4372ddf);
> +-    let mut x608: u32 = 0;
> +-    let mut x609: u32 = 0;
> +     let (x608, x609) = fiat_p384_scalar_mulx_u32(x590, 0x581a0db2);
> +-    let mut x610: u32 = 0;
> +-    let mut x611: u32 = 0;
> +     let (x610, x611) = fiat_p384_scalar_mulx_u32(x590, 0x48b0a77a);
> +-    let mut x612: u32 = 0;
> +-    let mut x613: u32 = 0;
> +     let (x612, x613) = fiat_p384_scalar_mulx_u32(x590, 0xecec196a);
> +-    let mut x614: u32 = 0;
> +-    let mut x615: u32 = 0;
> +     let (x614, x615) = fiat_p384_scalar_mulx_u32(x590, 0xccc52973);
> +-    let mut x616: u32 = 0;
> +-    let mut x617: fiat_p384_scalar_u1 = 0;
> +     let (x616, x617) = fiat_p384_scalar_addcarryx_u32(0x0, x615, x612);
> +-    let mut x618: u32 = 0;
> +-    let mut x619: fiat_p384_scalar_u1 = 0;
> +     let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x613, x610);
> +-    let mut x620: u32 = 0;
> +-    let mut x621: fiat_p384_scalar_u1 = 0;
> +     let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x611, x608);
> +-    let mut x622: u32 = 0;
> +-    let mut x623: fiat_p384_scalar_u1 = 0;
> +     let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x609, x606);
> +-    let mut x624: u32 = 0;
> +-    let mut x625: fiat_p384_scalar_u1 = 0;
> +     let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x607, x604);
> +-    let mut x626: u32 = 0;
> +-    let mut x627: fiat_p384_scalar_u1 = 0;
> +     let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x605, x602);
> +-    let mut x628: u32 = 0;
> +-    let mut x629: fiat_p384_scalar_u1 = 0;
> +     let (x628, x629) = fiat_p384_scalar_addcarryx_u32(x627, x603, x600);
> +-    let mut x630: u32 = 0;
> +-    let mut x631: fiat_p384_scalar_u1 = 0;
> +     let (x630, x631) = fiat_p384_scalar_addcarryx_u32(x629, x601, x598);
> +-    let mut x632: u32 = 0;
> +-    let mut x633: fiat_p384_scalar_u1 = 0;
> +     let (x632, x633) = fiat_p384_scalar_addcarryx_u32(x631, x599, x596);
> +-    let mut x634: u32 = 0;
> +-    let mut x635: fiat_p384_scalar_u1 = 0;
> +     let (x634, x635) = fiat_p384_scalar_addcarryx_u32(x633, x597, x594);
> +-    let mut x636: u32 = 0;
> +-    let mut x637: fiat_p384_scalar_u1 = 0;
> +     let (x636, x637) = fiat_p384_scalar_addcarryx_u32(x635, x595, x592);
> +-    let mut x638: u32 = 0;
> +-    let mut x639: fiat_p384_scalar_u1 = 0;
> +     let (x638, x639) = fiat_p384_scalar_addcarryx_u32(0x0, x566, x614);
> +-    let mut x640: u32 = 0;
> +-    let mut x641: fiat_p384_scalar_u1 = 0;
> +     let (x640, x641) = fiat_p384_scalar_addcarryx_u32(x639, x568, x616);
> +-    let mut x642: u32 = 0;
> +-    let mut x643: fiat_p384_scalar_u1 = 0;
> +     let (x642, x643) = fiat_p384_scalar_addcarryx_u32(x641, x570, x618);
> +-    let mut x644: u32 = 0;
> +-    let mut x645: fiat_p384_scalar_u1 = 0;
> +     let (x644, x645) = fiat_p384_scalar_addcarryx_u32(x643, x572, x620);
> +-    let mut x646: u32 = 0;
> +-    let mut x647: fiat_p384_scalar_u1 = 0;
> +     let (x646, x647) = fiat_p384_scalar_addcarryx_u32(x645, x574, x622);
> +-    let mut x648: u32 = 0;
> +-    let mut x649: fiat_p384_scalar_u1 = 0;
> +     let (x648, x649) = fiat_p384_scalar_addcarryx_u32(x647, x576, x624);
> +-    let mut x650: u32 = 0;
> +-    let mut x651: fiat_p384_scalar_u1 = 0;
> +     let (x650, x651) = fiat_p384_scalar_addcarryx_u32(x649, x578, x626);
> +-    let mut x652: u32 = 0;
> +-    let mut x653: fiat_p384_scalar_u1 = 0;
> +     let (x652, x653) = fiat_p384_scalar_addcarryx_u32(x651, x580, x628);
> +-    let mut x654: u32 = 0;
> +-    let mut x655: fiat_p384_scalar_u1 = 0;
> +     let (x654, x655) = fiat_p384_scalar_addcarryx_u32(x653, x582, x630);
> +-    let mut x656: u32 = 0;
> +-    let mut x657: fiat_p384_scalar_u1 = 0;
> +     let (x656, x657) = fiat_p384_scalar_addcarryx_u32(x655, x584, x632);
> +-    let mut x658: u32 = 0;
> +-    let mut x659: fiat_p384_scalar_u1 = 0;
> +     let (x658, x659) = fiat_p384_scalar_addcarryx_u32(x657, x586, x634);
> +-    let mut x660: u32 = 0;
> +-    let mut x661: fiat_p384_scalar_u1 = 0;
> +     let (x660, x661) = fiat_p384_scalar_addcarryx_u32(x659, x588, x636);
> +-    let mut x662: u32 = 0;
> +-    let mut x663: fiat_p384_scalar_u1 = 0;
> +     let (x662, x663) = fiat_p384_scalar_addcarryx_u32(
> +         x661,
> +         ((x589 as u32) + (x565 as u32)),
> +         ((x637 as u32) + x593),
> +     );
> +-    let mut x664: u32 = 0;
> +-    let mut x665: fiat_p384_scalar_u1 = 0;
> +     let (x664, x665) = fiat_p384_scalar_addcarryx_u32(0x0, x640, (arg1[7]));
> +-    let mut x666: u32 = 0;
> +-    let mut x667: fiat_p384_scalar_u1 = 0;
> +     let (x666, x667) = fiat_p384_scalar_addcarryx_u32(x665, x642, (0x0 as u32));
> +-    let mut x668: u32 = 0;
> +-    let mut x669: fiat_p384_scalar_u1 = 0;
> +     let (x668, x669) = fiat_p384_scalar_addcarryx_u32(x667, x644, (0x0 as u32));
> +-    let mut x670: u32 = 0;
> +-    let mut x671: fiat_p384_scalar_u1 = 0;
> +     let (x670, x671) = fiat_p384_scalar_addcarryx_u32(x669, x646, (0x0 as u32));
> +-    let mut x672: u32 = 0;
> +-    let mut x673: fiat_p384_scalar_u1 = 0;
> +     let (x672, x673) = fiat_p384_scalar_addcarryx_u32(x671, x648, (0x0 as u32));
> +-    let mut x674: u32 = 0;
> +-    let mut x675: fiat_p384_scalar_u1 = 0;
> +     let (x674, x675) = fiat_p384_scalar_addcarryx_u32(x673, x650, (0x0 as u32));
> +-    let mut x676: u32 = 0;
> +-    let mut x677: fiat_p384_scalar_u1 = 0;
> +     let (x676, x677) = fiat_p384_scalar_addcarryx_u32(x675, x652, (0x0 as u32));
> +-    let mut x678: u32 = 0;
> +-    let mut x679: fiat_p384_scalar_u1 = 0;
> +     let (x678, x679) = fiat_p384_scalar_addcarryx_u32(x677, x654, (0x0 as u32));
> +-    let mut x680: u32 = 0;
> +-    let mut x681: fiat_p384_scalar_u1 = 0;
> +     let (x680, x681) = fiat_p384_scalar_addcarryx_u32(x679, x656, (0x0 as u32));
> +-    let mut x682: u32 = 0;
> +-    let mut x683: fiat_p384_scalar_u1 = 0;
> +     let (x682, x683) = fiat_p384_scalar_addcarryx_u32(x681, x658, (0x0 as u32));
> +-    let mut x684: u32 = 0;
> +-    let mut x685: fiat_p384_scalar_u1 = 0;
> +     let (x684, x685) = fiat_p384_scalar_addcarryx_u32(x683, x660, (0x0 as u32));
> +-    let mut x686: u32 = 0;
> +-    let mut x687: fiat_p384_scalar_u1 = 0;
> +     let (x686, x687) = fiat_p384_scalar_addcarryx_u32(x685, x662, (0x0 as u32));
> +-    let mut x688: u32 = 0;
> +-    let mut x689: u32 = 0;
> +     let (x688, x689) = fiat_p384_scalar_mulx_u32(x664, 0xe88fdc45);
> +-    let mut x690: u32 = 0;
> +-    let mut x691: u32 = 0;
> +     let (x690, x691) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
> +-    let mut x692: u32 = 0;
> +-    let mut x693: u32 = 0;
> +     let (x692, x693) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
> +-    let mut x694: u32 = 0;
> +-    let mut x695: u32 = 0;
> +     let (x694, x695) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
> +-    let mut x696: u32 = 0;
> +-    let mut x697: u32 = 0;
> +     let (x696, x697) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
> +-    let mut x698: u32 = 0;
> +-    let mut x699: u32 = 0;
> +     let (x698, x699) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
> +-    let mut x700: u32 = 0;
> +-    let mut x701: u32 = 0;
> +     let (x700, x701) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
> +-    let mut x702: u32 = 0;
> +-    let mut x703: u32 = 0;
> +     let (x702, x703) = fiat_p384_scalar_mulx_u32(x688, 0xc7634d81);
> +-    let mut x704: u32 = 0;
> +-    let mut x705: u32 = 0;
> +     let (x704, x705) = fiat_p384_scalar_mulx_u32(x688, 0xf4372ddf);
> +-    let mut x706: u32 = 0;
> +-    let mut x707: u32 = 0;
> +     let (x706, x707) = fiat_p384_scalar_mulx_u32(x688, 0x581a0db2);
> +-    let mut x708: u32 = 0;
> +-    let mut x709: u32 = 0;
> +     let (x708, x709) = fiat_p384_scalar_mulx_u32(x688, 0x48b0a77a);
> +-    let mut x710: u32 = 0;
> +-    let mut x711: u32 = 0;
> +     let (x710, x711) = fiat_p384_scalar_mulx_u32(x688, 0xecec196a);
> +-    let mut x712: u32 = 0;
> +-    let mut x713: u32 = 0;
> +     let (x712, x713) = fiat_p384_scalar_mulx_u32(x688, 0xccc52973);
> +-    let mut x714: u32 = 0;
> +-    let mut x715: fiat_p384_scalar_u1 = 0;
> +     let (x714, x715) = fiat_p384_scalar_addcarryx_u32(0x0, x713, x710);
> +-    let mut x716: u32 = 0;
> +-    let mut x717: fiat_p384_scalar_u1 = 0;
> +     let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x711, x708);
> +-    let mut x718: u32 = 0;
> +-    let mut x719: fiat_p384_scalar_u1 = 0;
> +     let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x709, x706);
> +-    let mut x720: u32 = 0;
> +-    let mut x721: fiat_p384_scalar_u1 = 0;
> +     let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x707, x704);
> +-    let mut x722: u32 = 0;
> +-    let mut x723: fiat_p384_scalar_u1 = 0;
> +     let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x705, x702);
> +-    let mut x724: u32 = 0;
> +-    let mut x725: fiat_p384_scalar_u1 = 0;
> +     let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x703, x700);
> +-    let mut x726: u32 = 0;
> +-    let mut x727: fiat_p384_scalar_u1 = 0;
> +     let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x701, x698);
> +-    let mut x728: u32 = 0;
> +-    let mut x729: fiat_p384_scalar_u1 = 0;
> +     let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x699, x696);
> +-    let mut x730: u32 = 0;
> +-    let mut x731: fiat_p384_scalar_u1 = 0;
> +     let (x730, x731) = fiat_p384_scalar_addcarryx_u32(x729, x697, x694);
> +-    let mut x732: u32 = 0;
> +-    let mut x733: fiat_p384_scalar_u1 = 0;
> +     let (x732, x733) = fiat_p384_scalar_addcarryx_u32(x731, x695, x692);
> +-    let mut x734: u32 = 0;
> +-    let mut x735: fiat_p384_scalar_u1 = 0;
> +     let (x734, x735) = fiat_p384_scalar_addcarryx_u32(x733, x693, x690);
> +-    let mut x736: u32 = 0;
> +-    let mut x737: fiat_p384_scalar_u1 = 0;
> +     let (x736, x737) = fiat_p384_scalar_addcarryx_u32(0x0, x664, x712);
> +-    let mut x738: u32 = 0;
> +-    let mut x739: fiat_p384_scalar_u1 = 0;
> +     let (x738, x739) = fiat_p384_scalar_addcarryx_u32(x737, x666, x714);
> +-    let mut x740: u32 = 0;
> +-    let mut x741: fiat_p384_scalar_u1 = 0;
> +     let (x740, x741) = fiat_p384_scalar_addcarryx_u32(x739, x668, x716);
> +-    let mut x742: u32 = 0;
> +-    let mut x743: fiat_p384_scalar_u1 = 0;
> +     let (x742, x743) = fiat_p384_scalar_addcarryx_u32(x741, x670, x718);
> +-    let mut x744: u32 = 0;
> +-    let mut x745: fiat_p384_scalar_u1 = 0;
> +     let (x744, x745) = fiat_p384_scalar_addcarryx_u32(x743, x672, x720);
> +-    let mut x746: u32 = 0;
> +-    let mut x747: fiat_p384_scalar_u1 = 0;
> +     let (x746, x747) = fiat_p384_scalar_addcarryx_u32(x745, x674, x722);
> +-    let mut x748: u32 = 0;
> +-    let mut x749: fiat_p384_scalar_u1 = 0;
> +     let (x748, x749) = fiat_p384_scalar_addcarryx_u32(x747, x676, x724);
> +-    let mut x750: u32 = 0;
> +-    let mut x751: fiat_p384_scalar_u1 = 0;
> +     let (x750, x751) = fiat_p384_scalar_addcarryx_u32(x749, x678, x726);
> +-    let mut x752: u32 = 0;
> +-    let mut x753: fiat_p384_scalar_u1 = 0;
> +     let (x752, x753) = fiat_p384_scalar_addcarryx_u32(x751, x680, x728);
> +-    let mut x754: u32 = 0;
> +-    let mut x755: fiat_p384_scalar_u1 = 0;
> +     let (x754, x755) = fiat_p384_scalar_addcarryx_u32(x753, x682, x730);
> +-    let mut x756: u32 = 0;
> +-    let mut x757: fiat_p384_scalar_u1 = 0;
> +     let (x756, x757) = fiat_p384_scalar_addcarryx_u32(x755, x684, x732);
> +-    let mut x758: u32 = 0;
> +-    let mut x759: fiat_p384_scalar_u1 = 0;
> +     let (x758, x759) = fiat_p384_scalar_addcarryx_u32(x757, x686, x734);
> +-    let mut x760: u32 = 0;
> +-    let mut x761: fiat_p384_scalar_u1 = 0;
> +     let (x760, x761) = fiat_p384_scalar_addcarryx_u32(
> +         x759,
> +         ((x687 as u32) + (x663 as u32)),
> +         ((x735 as u32) + x691),
> +     );
> +-    let mut x762: u32 = 0;
> +-    let mut x763: fiat_p384_scalar_u1 = 0;
> +     let (x762, x763) = fiat_p384_scalar_addcarryx_u32(0x0, x738, (arg1[8]));
> +-    let mut x764: u32 = 0;
> +-    let mut x765: fiat_p384_scalar_u1 = 0;
> +     let (x764, x765) = fiat_p384_scalar_addcarryx_u32(x763, x740, (0x0 as u32));
> +-    let mut x766: u32 = 0;
> +-    let mut x767: fiat_p384_scalar_u1 = 0;
> +     let (x766, x767) = fiat_p384_scalar_addcarryx_u32(x765, x742, (0x0 as u32));
> +-    let mut x768: u32 = 0;
> +-    let mut x769: fiat_p384_scalar_u1 = 0;
> +     let (x768, x769) = fiat_p384_scalar_addcarryx_u32(x767, x744, (0x0 as u32));
> +-    let mut x770: u32 = 0;
> +-    let mut x771: fiat_p384_scalar_u1 = 0;
> +     let (x770, x771) = fiat_p384_scalar_addcarryx_u32(x769, x746, (0x0 as u32));
> +-    let mut x772: u32 = 0;
> +-    let mut x773: fiat_p384_scalar_u1 = 0;
> +     let (x772, x773) = fiat_p384_scalar_addcarryx_u32(x771, x748, (0x0 as u32));
> +-    let mut x774: u32 = 0;
> +-    let mut x775: fiat_p384_scalar_u1 = 0;
> +     let (x774, x775) = fiat_p384_scalar_addcarryx_u32(x773, x750, (0x0 as u32));
> +-    let mut x776: u32 = 0;
> +-    let mut x777: fiat_p384_scalar_u1 = 0;
> +     let (x776, x777) = fiat_p384_scalar_addcarryx_u32(x775, x752, (0x0 as u32));
> +-    let mut x778: u32 = 0;
> +-    let mut x779: fiat_p384_scalar_u1 = 0;
> +     let (x778, x779) = fiat_p384_scalar_addcarryx_u32(x777, x754, (0x0 as u32));
> +-    let mut x780: u32 = 0;
> +-    let mut x781: fiat_p384_scalar_u1 = 0;
> +     let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x756, (0x0 as u32));
> +-    let mut x782: u32 = 0;
> +-    let mut x783: fiat_p384_scalar_u1 = 0;
> +     let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x758, (0x0 as u32));
> +-    let mut x784: u32 = 0;
> +-    let mut x785: fiat_p384_scalar_u1 = 0;
> +     let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x760, (0x0 as u32));
> +-    let mut x786: u32 = 0;
> +-    let mut x787: u32 = 0;
> +     let (x786, x787) = fiat_p384_scalar_mulx_u32(x762, 0xe88fdc45);
> +-    let mut x788: u32 = 0;
> +-    let mut x789: u32 = 0;
> +     let (x788, x789) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
> +-    let mut x790: u32 = 0;
> +-    let mut x791: u32 = 0;
> +     let (x790, x791) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
> +-    let mut x792: u32 = 0;
> +-    let mut x793: u32 = 0;
> +     let (x792, x793) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
> +-    let mut x794: u32 = 0;
> +-    let mut x795: u32 = 0;
> +     let (x794, x795) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
> +-    let mut x796: u32 = 0;
> +-    let mut x797: u32 = 0;
> +     let (x796, x797) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
> +-    let mut x798: u32 = 0;
> +-    let mut x799: u32 = 0;
> +     let (x798, x799) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
> +-    let mut x800: u32 = 0;
> +-    let mut x801: u32 = 0;
> +     let (x800, x801) = fiat_p384_scalar_mulx_u32(x786, 0xc7634d81);
> +-    let mut x802: u32 = 0;
> +-    let mut x803: u32 = 0;
> +     let (x802, x803) = fiat_p384_scalar_mulx_u32(x786, 0xf4372ddf);
> +-    let mut x804: u32 = 0;
> +-    let mut x805: u32 = 0;
> +     let (x804, x805) = fiat_p384_scalar_mulx_u32(x786, 0x581a0db2);
> +-    let mut x806: u32 = 0;
> +-    let mut x807: u32 = 0;
> +     let (x806, x807) = fiat_p384_scalar_mulx_u32(x786, 0x48b0a77a);
> +-    let mut x808: u32 = 0;
> +-    let mut x809: u32 = 0;
> +     let (x808, x809) = fiat_p384_scalar_mulx_u32(x786, 0xecec196a);
> +-    let mut x810: u32 = 0;
> +-    let mut x811: u32 = 0;
> +     let (x810, x811) = fiat_p384_scalar_mulx_u32(x786, 0xccc52973);
> +-    let mut x812: u32 = 0;
> +-    let mut x813: fiat_p384_scalar_u1 = 0;
> +     let (x812, x813) = fiat_p384_scalar_addcarryx_u32(0x0, x811, x808);
> +-    let mut x814: u32 = 0;
> +-    let mut x815: fiat_p384_scalar_u1 = 0;
> +     let (x814, x815) = fiat_p384_scalar_addcarryx_u32(x813, x809, x806);
> +-    let mut x816: u32 = 0;
> +-    let mut x817: fiat_p384_scalar_u1 = 0;
> +     let (x816, x817) = fiat_p384_scalar_addcarryx_u32(x815, x807, x804);
> +-    let mut x818: u32 = 0;
> +-    let mut x819: fiat_p384_scalar_u1 = 0;
> +     let (x818, x819) = fiat_p384_scalar_addcarryx_u32(x817, x805, x802);
> +-    let mut x820: u32 = 0;
> +-    let mut x821: fiat_p384_scalar_u1 = 0;
> +     let (x820, x821) = fiat_p384_scalar_addcarryx_u32(x819, x803, x800);
> +-    let mut x822: u32 = 0;
> +-    let mut x823: fiat_p384_scalar_u1 = 0;
> +     let (x822, x823) = fiat_p384_scalar_addcarryx_u32(x821, x801, x798);
> +-    let mut x824: u32 = 0;
> +-    let mut x825: fiat_p384_scalar_u1 = 0;
> +     let (x824, x825) = fiat_p384_scalar_addcarryx_u32(x823, x799, x796);
> +-    let mut x826: u32 = 0;
> +-    let mut x827: fiat_p384_scalar_u1 = 0;
> +     let (x826, x827) = fiat_p384_scalar_addcarryx_u32(x825, x797, x794);
> +-    let mut x828: u32 = 0;
> +-    let mut x829: fiat_p384_scalar_u1 = 0;
> +     let (x828, x829) = fiat_p384_scalar_addcarryx_u32(x827, x795, x792);
> +-    let mut x830: u32 = 0;
> +-    let mut x831: fiat_p384_scalar_u1 = 0;
> +     let (x830, x831) = fiat_p384_scalar_addcarryx_u32(x829, x793, x790);
> +-    let mut x832: u32 = 0;
> +-    let mut x833: fiat_p384_scalar_u1 = 0;
> +     let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x791, x788);
> +-    let mut x834: u32 = 0;
> +-    let mut x835: fiat_p384_scalar_u1 = 0;
> +     let (x834, x835) = fiat_p384_scalar_addcarryx_u32(0x0, x762, x810);
> +-    let mut x836: u32 = 0;
> +-    let mut x837: fiat_p384_scalar_u1 = 0;
> +     let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x764, x812);
> +-    let mut x838: u32 = 0;
> +-    let mut x839: fiat_p384_scalar_u1 = 0;
> +     let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x766, x814);
> +-    let mut x840: u32 = 0;
> +-    let mut x841: fiat_p384_scalar_u1 = 0;
> +     let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x768, x816);
> +-    let mut x842: u32 = 0;
> +-    let mut x843: fiat_p384_scalar_u1 = 0;
> +     let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x770, x818);
> +-    let mut x844: u32 = 0;
> +-    let mut x845: fiat_p384_scalar_u1 = 0;
> +     let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x772, x820);
> +-    let mut x846: u32 = 0;
> +-    let mut x847: fiat_p384_scalar_u1 = 0;
> +     let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x774, x822);
> +-    let mut x848: u32 = 0;
> +-    let mut x849: fiat_p384_scalar_u1 = 0;
> +     let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x776, x824);
> +-    let mut x850: u32 = 0;
> +-    let mut x851: fiat_p384_scalar_u1 = 0;
> +     let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x778, x826);
> +-    let mut x852: u32 = 0;
> +-    let mut x853: fiat_p384_scalar_u1 = 0;
> +     let (x852, x853) = fiat_p384_scalar_addcarryx_u32(x851, x780, x828);
> +-    let mut x854: u32 = 0;
> +-    let mut x855: fiat_p384_scalar_u1 = 0;
> +     let (x854, x855) = fiat_p384_scalar_addcarryx_u32(x853, x782, x830);
> +-    let mut x856: u32 = 0;
> +-    let mut x857: fiat_p384_scalar_u1 = 0;
> +     let (x856, x857) = fiat_p384_scalar_addcarryx_u32(x855, x784, x832);
> +-    let mut x858: u32 = 0;
> +-    let mut x859: fiat_p384_scalar_u1 = 0;
> +     let (x858, x859) = fiat_p384_scalar_addcarryx_u32(
> +         x857,
> +         ((x785 as u32) + (x761 as u32)),
> +         ((x833 as u32) + x789),
> +     );
> +-    let mut x860: u32 = 0;
> +-    let mut x861: fiat_p384_scalar_u1 = 0;
> +     let (x860, x861) = fiat_p384_scalar_addcarryx_u32(0x0, x836, (arg1[9]));
> +-    let mut x862: u32 = 0;
> +-    let mut x863: fiat_p384_scalar_u1 = 0;
> +     let (x862, x863) = fiat_p384_scalar_addcarryx_u32(x861, x838, (0x0 as u32));
> +-    let mut x864: u32 = 0;
> +-    let mut x865: fiat_p384_scalar_u1 = 0;
> +     let (x864, x865) = fiat_p384_scalar_addcarryx_u32(x863, x840, (0x0 as u32));
> +-    let mut x866: u32 = 0;
> +-    let mut x867: fiat_p384_scalar_u1 = 0;
> +     let (x866, x867) = fiat_p384_scalar_addcarryx_u32(x865, x842, (0x0 as u32));
> +-    let mut x868: u32 = 0;
> +-    let mut x869: fiat_p384_scalar_u1 = 0;
> +     let (x868, x869) = fiat_p384_scalar_addcarryx_u32(x867, x844, (0x0 as u32));
> +-    let mut x870: u32 = 0;
> +-    let mut x871: fiat_p384_scalar_u1 = 0;
> +     let (x870, x871) = fiat_p384_scalar_addcarryx_u32(x869, x846, (0x0 as u32));
> +-    let mut x872: u32 = 0;
> +-    let mut x873: fiat_p384_scalar_u1 = 0;
> +     let (x872, x873) = fiat_p384_scalar_addcarryx_u32(x871, x848, (0x0 as u32));
> +-    let mut x874: u32 = 0;
> +-    let mut x875: fiat_p384_scalar_u1 = 0;
> +     let (x874, x875) = fiat_p384_scalar_addcarryx_u32(x873, x850, (0x0 as u32));
> +-    let mut x876: u32 = 0;
> +-    let mut x877: fiat_p384_scalar_u1 = 0;
> +     let (x876, x877) = fiat_p384_scalar_addcarryx_u32(x875, x852, (0x0 as u32));
> +-    let mut x878: u32 = 0;
> +-    let mut x879: fiat_p384_scalar_u1 = 0;
> +     let (x878, x879) = fiat_p384_scalar_addcarryx_u32(x877, x854, (0x0 as u32));
> +-    let mut x880: u32 = 0;
> +-    let mut x881: fiat_p384_scalar_u1 = 0;
> +     let (x880, x881) = fiat_p384_scalar_addcarryx_u32(x879, x856, (0x0 as u32));
> +-    let mut x882: u32 = 0;
> +-    let mut x883: fiat_p384_scalar_u1 = 0;
> +     let (x882, x883) = fiat_p384_scalar_addcarryx_u32(x881, x858, (0x0 as u32));
> +-    let mut x884: u32 = 0;
> +-    let mut x885: u32 = 0;
> +     let (x884, x885) = fiat_p384_scalar_mulx_u32(x860, 0xe88fdc45);
> +-    let mut x886: u32 = 0;
> +-    let mut x887: u32 = 0;
> +     let (x886, x887) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
> +-    let mut x888: u32 = 0;
> +-    let mut x889: u32 = 0;
> +     let (x888, x889) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
> +-    let mut x890: u32 = 0;
> +-    let mut x891: u32 = 0;
> +     let (x890, x891) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
> +-    let mut x892: u32 = 0;
> +-    let mut x893: u32 = 0;
> +     let (x892, x893) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
> +-    let mut x894: u32 = 0;
> +-    let mut x895: u32 = 0;
> +     let (x894, x895) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
> +-    let mut x896: u32 = 0;
> +-    let mut x897: u32 = 0;
> +     let (x896, x897) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
> +-    let mut x898: u32 = 0;
> +-    let mut x899: u32 = 0;
> +     let (x898, x899) = fiat_p384_scalar_mulx_u32(x884, 0xc7634d81);
> +-    let mut x900: u32 = 0;
> +-    let mut x901: u32 = 0;
> +     let (x900, x901) = fiat_p384_scalar_mulx_u32(x884, 0xf4372ddf);
> +-    let mut x902: u32 = 0;
> +-    let mut x903: u32 = 0;
> +     let (x902, x903) = fiat_p384_scalar_mulx_u32(x884, 0x581a0db2);
> +-    let mut x904: u32 = 0;
> +-    let mut x905: u32 = 0;
> +     let (x904, x905) = fiat_p384_scalar_mulx_u32(x884, 0x48b0a77a);
> +-    let mut x906: u32 = 0;
> +-    let mut x907: u32 = 0;
> +     let (x906, x907) = fiat_p384_scalar_mulx_u32(x884, 0xecec196a);
> +-    let mut x908: u32 = 0;
> +-    let mut x909: u32 = 0;
> +     let (x908, x909) = fiat_p384_scalar_mulx_u32(x884, 0xccc52973);
> +-    let mut x910: u32 = 0;
> +-    let mut x911: fiat_p384_scalar_u1 = 0;
> +     let (x910, x911) = fiat_p384_scalar_addcarryx_u32(0x0, x909, x906);
> +-    let mut x912: u32 = 0;
> +-    let mut x913: fiat_p384_scalar_u1 = 0;
> +     let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x907, x904);
> +-    let mut x914: u32 = 0;
> +-    let mut x915: fiat_p384_scalar_u1 = 0;
> +     let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x905, x902);
> +-    let mut x916: u32 = 0;
> +-    let mut x917: fiat_p384_scalar_u1 = 0;
> +     let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x903, x900);
> +-    let mut x918: u32 = 0;
> +-    let mut x919: fiat_p384_scalar_u1 = 0;
> +     let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x901, x898);
> +-    let mut x920: u32 = 0;
> +-    let mut x921: fiat_p384_scalar_u1 = 0;
> +     let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x899, x896);
> +-    let mut x922: u32 = 0;
> +-    let mut x923: fiat_p384_scalar_u1 = 0;
> +     let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x897, x894);
> +-    let mut x924: u32 = 0;
> +-    let mut x925: fiat_p384_scalar_u1 = 0;
> +     let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x895, x892);
> +-    let mut x926: u32 = 0;
> +-    let mut x927: fiat_p384_scalar_u1 = 0;
> +     let (x926, x927) = fiat_p384_scalar_addcarryx_u32(x925, x893, x890);
> +-    let mut x928: u32 = 0;
> +-    let mut x929: fiat_p384_scalar_u1 = 0;
> +     let (x928, x929) = fiat_p384_scalar_addcarryx_u32(x927, x891, x888);
> +-    let mut x930: u32 = 0;
> +-    let mut x931: fiat_p384_scalar_u1 = 0;
> +     let (x930, x931) = fiat_p384_scalar_addcarryx_u32(x929, x889, x886);
> +-    let mut x932: u32 = 0;
> +-    let mut x933: fiat_p384_scalar_u1 = 0;
> +     let (x932, x933) = fiat_p384_scalar_addcarryx_u32(0x0, x860, x908);
> +-    let mut x934: u32 = 0;
> +-    let mut x935: fiat_p384_scalar_u1 = 0;
> +     let (x934, x935) = fiat_p384_scalar_addcarryx_u32(x933, x862, x910);
> +-    let mut x936: u32 = 0;
> +-    let mut x937: fiat_p384_scalar_u1 = 0;
> +     let (x936, x937) = fiat_p384_scalar_addcarryx_u32(x935, x864, x912);
> +-    let mut x938: u32 = 0;
> +-    let mut x939: fiat_p384_scalar_u1 = 0;
> +     let (x938, x939) = fiat_p384_scalar_addcarryx_u32(x937, x866, x914);
> +-    let mut x940: u32 = 0;
> +-    let mut x941: fiat_p384_scalar_u1 = 0;
> +     let (x940, x941) = fiat_p384_scalar_addcarryx_u32(x939, x868, x916);
> +-    let mut x942: u32 = 0;
> +-    let mut x943: fiat_p384_scalar_u1 = 0;
> +     let (x942, x943) = fiat_p384_scalar_addcarryx_u32(x941, x870, x918);
> +-    let mut x944: u32 = 0;
> +-    let mut x945: fiat_p384_scalar_u1 = 0;
> +     let (x944, x945) = fiat_p384_scalar_addcarryx_u32(x943, x872, x920);
> +-    let mut x946: u32 = 0;
> +-    let mut x947: fiat_p384_scalar_u1 = 0;
> +     let (x946, x947) = fiat_p384_scalar_addcarryx_u32(x945, x874, x922);
> +-    let mut x948: u32 = 0;
> +-    let mut x949: fiat_p384_scalar_u1 = 0;
> +     let (x948, x949) = fiat_p384_scalar_addcarryx_u32(x947, x876, x924);
> +-    let mut x950: u32 = 0;
> +-    let mut x951: fiat_p384_scalar_u1 = 0;
> +     let (x950, x951) = fiat_p384_scalar_addcarryx_u32(x949, x878, x926);
> +-    let mut x952: u32 = 0;
> +-    let mut x953: fiat_p384_scalar_u1 = 0;
> +     let (x952, x953) = fiat_p384_scalar_addcarryx_u32(x951, x880, x928);
> +-    let mut x954: u32 = 0;
> +-    let mut x955: fiat_p384_scalar_u1 = 0;
> +     let (x954, x955) = fiat_p384_scalar_addcarryx_u32(x953, x882, x930);
> +-    let mut x956: u32 = 0;
> +-    let mut x957: fiat_p384_scalar_u1 = 0;
> +     let (x956, x957) = fiat_p384_scalar_addcarryx_u32(
> +         x955,
> +         ((x883 as u32) + (x859 as u32)),
> +         ((x931 as u32) + x887),
> +     );
> +-    let mut x958: u32 = 0;
> +-    let mut x959: fiat_p384_scalar_u1 = 0;
> +     let (x958, x959) = fiat_p384_scalar_addcarryx_u32(0x0, x934, (arg1[10]));
> +-    let mut x960: u32 = 0;
> +-    let mut x961: fiat_p384_scalar_u1 = 0;
> +     let (x960, x961) = fiat_p384_scalar_addcarryx_u32(x959, x936, (0x0 as u32));
> +-    let mut x962: u32 = 0;
> +-    let mut x963: fiat_p384_scalar_u1 = 0;
> +     let (x962, x963) = fiat_p384_scalar_addcarryx_u32(x961, x938, (0x0 as u32));
> +-    let mut x964: u32 = 0;
> +-    let mut x965: fiat_p384_scalar_u1 = 0;
> +     let (x964, x965) = fiat_p384_scalar_addcarryx_u32(x963, x940, (0x0 as u32));
> +-    let mut x966: u32 = 0;
> +-    let mut x967: fiat_p384_scalar_u1 = 0;
> +     let (x966, x967) = fiat_p384_scalar_addcarryx_u32(x965, x942, (0x0 as u32));
> +-    let mut x968: u32 = 0;
> +-    let mut x969: fiat_p384_scalar_u1 = 0;
> +     let (x968, x969) = fiat_p384_scalar_addcarryx_u32(x967, x944, (0x0 as u32));
> +-    let mut x970: u32 = 0;
> +-    let mut x971: fiat_p384_scalar_u1 = 0;
> +     let (x970, x971) = fiat_p384_scalar_addcarryx_u32(x969, x946, (0x0 as u32));
> +-    let mut x972: u32 = 0;
> +-    let mut x973: fiat_p384_scalar_u1 = 0;
> +     let (x972, x973) = fiat_p384_scalar_addcarryx_u32(x971, x948, (0x0 as u32));
> +-    let mut x974: u32 = 0;
> +-    let mut x975: fiat_p384_scalar_u1 = 0;
> +     let (x974, x975) = fiat_p384_scalar_addcarryx_u32(x973, x950, (0x0 as u32));
> +-    let mut x976: u32 = 0;
> +-    let mut x977: fiat_p384_scalar_u1 = 0;
> +     let (x976, x977) = fiat_p384_scalar_addcarryx_u32(x975, x952, (0x0 as u32));
> +-    let mut x978: u32 = 0;
> +-    let mut x979: fiat_p384_scalar_u1 = 0;
> +     let (x978, x979) = fiat_p384_scalar_addcarryx_u32(x977, x954, (0x0 as u32));
> +-    let mut x980: u32 = 0;
> +-    let mut x981: fiat_p384_scalar_u1 = 0;
> +     let (x980, x981) = fiat_p384_scalar_addcarryx_u32(x979, x956, (0x0 as u32));
> +-    let mut x982: u32 = 0;
> +-    let mut x983: u32 = 0;
> +     let (x982, x983) = fiat_p384_scalar_mulx_u32(x958, 0xe88fdc45);
> +-    let mut x984: u32 = 0;
> +-    let mut x985: u32 = 0;
> +     let (x984, x985) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
> +-    let mut x986: u32 = 0;
> +-    let mut x987: u32 = 0;
> +     let (x986, x987) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
> +-    let mut x988: u32 = 0;
> +-    let mut x989: u32 = 0;
> +     let (x988, x989) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
> +-    let mut x990: u32 = 0;
> +-    let mut x991: u32 = 0;
> +     let (x990, x991) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
> +-    let mut x992: u32 = 0;
> +-    let mut x993: u32 = 0;
> +     let (x992, x993) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
> +-    let mut x994: u32 = 0;
> +-    let mut x995: u32 = 0;
> +     let (x994, x995) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
> +-    let mut x996: u32 = 0;
> +-    let mut x997: u32 = 0;
> +     let (x996, x997) = fiat_p384_scalar_mulx_u32(x982, 0xc7634d81);
> +-    let mut x998: u32 = 0;
> +-    let mut x999: u32 = 0;
> +     let (x998, x999) = fiat_p384_scalar_mulx_u32(x982, 0xf4372ddf);
> +-    let mut x1000: u32 = 0;
> +-    let mut x1001: u32 = 0;
> +     let (x1000, x1001) = fiat_p384_scalar_mulx_u32(x982, 0x581a0db2);
> +-    let mut x1002: u32 = 0;
> +-    let mut x1003: u32 = 0;
> +     let (x1002, x1003) = fiat_p384_scalar_mulx_u32(x982, 0x48b0a77a);
> +-    let mut x1004: u32 = 0;
> +-    let mut x1005: u32 = 0;
> +     let (x1004, x1005) = fiat_p384_scalar_mulx_u32(x982, 0xecec196a);
> +-    let mut x1006: u32 = 0;
> +-    let mut x1007: u32 = 0;
> +     let (x1006, x1007) = fiat_p384_scalar_mulx_u32(x982, 0xccc52973);
> +-    let mut x1008: u32 = 0;
> +-    let mut x1009: fiat_p384_scalar_u1 = 0;
> +     let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(0x0, x1007, x1004);
> +-    let mut x1010: u32 = 0;
> +-    let mut x1011: fiat_p384_scalar_u1 = 0;
> +     let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x1005, x1002);
> +-    let mut x1012: u32 = 0;
> +-    let mut x1013: fiat_p384_scalar_u1 = 0;
> +     let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x1003, x1000);
> +-    let mut x1014: u32 = 0;
> +-    let mut x1015: fiat_p384_scalar_u1 = 0;
> +     let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x1001, x998);
> +-    let mut x1016: u32 = 0;
> +-    let mut x1017: fiat_p384_scalar_u1 = 0;
> +     let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x999, x996);
> +-    let mut x1018: u32 = 0;
> +-    let mut x1019: fiat_p384_scalar_u1 = 0;
> +     let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x997, x994);
> +-    let mut x1020: u32 = 0;
> +-    let mut x1021: fiat_p384_scalar_u1 = 0;
> +     let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x995, x992);
> +-    let mut x1022: u32 = 0;
> +-    let mut x1023: fiat_p384_scalar_u1 = 0;
> +     let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x993, x990);
> +-    let mut x1024: u32 = 0;
> +-    let mut x1025: fiat_p384_scalar_u1 = 0;
> +     let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x991, x988);
> +-    let mut x1026: u32 = 0;
> +-    let mut x1027: fiat_p384_scalar_u1 = 0;
> +     let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x989, x986);
> +-    let mut x1028: u32 = 0;
> +-    let mut x1029: fiat_p384_scalar_u1 = 0;
> +     let (x1028, x1029) = fiat_p384_scalar_addcarryx_u32(x1027, x987, x984);
> +-    let mut x1030: u32 = 0;
> +-    let mut x1031: fiat_p384_scalar_u1 = 0;
> +     let (x1030, x1031) = fiat_p384_scalar_addcarryx_u32(0x0, x958, x1006);
> +-    let mut x1032: u32 = 0;
> +-    let mut x1033: fiat_p384_scalar_u1 = 0;
> +     let (x1032, x1033) = fiat_p384_scalar_addcarryx_u32(x1031, x960, x1008);
> +-    let mut x1034: u32 = 0;
> +-    let mut x1035: fiat_p384_scalar_u1 = 0;
> +     let (x1034, x1035) = fiat_p384_scalar_addcarryx_u32(x1033, x962, x1010);
> +-    let mut x1036: u32 = 0;
> +-    let mut x1037: fiat_p384_scalar_u1 = 0;
> +     let (x1036, x1037) = fiat_p384_scalar_addcarryx_u32(x1035, x964, x1012);
> +-    let mut x1038: u32 = 0;
> +-    let mut x1039: fiat_p384_scalar_u1 = 0;
> +     let (x1038, x1039) = fiat_p384_scalar_addcarryx_u32(x1037, x966, x1014);
> +-    let mut x1040: u32 = 0;
> +-    let mut x1041: fiat_p384_scalar_u1 = 0;
> +     let (x1040, x1041) = fiat_p384_scalar_addcarryx_u32(x1039, x968, x1016);
> +-    let mut x1042: u32 = 0;
> +-    let mut x1043: fiat_p384_scalar_u1 = 0;
> +     let (x1042, x1043) = fiat_p384_scalar_addcarryx_u32(x1041, x970, x1018);
> +-    let mut x1044: u32 = 0;
> +-    let mut x1045: fiat_p384_scalar_u1 = 0;
> +     let (x1044, x1045) = fiat_p384_scalar_addcarryx_u32(x1043, x972, x1020);
> +-    let mut x1046: u32 = 0;
> +-    let mut x1047: fiat_p384_scalar_u1 = 0;
> +     let (x1046, x1047) = fiat_p384_scalar_addcarryx_u32(x1045, x974, x1022);
> +-    let mut x1048: u32 = 0;
> +-    let mut x1049: fiat_p384_scalar_u1 = 0;
> +     let (x1048, x1049) = fiat_p384_scalar_addcarryx_u32(x1047, x976, x1024);
> +-    let mut x1050: u32 = 0;
> +-    let mut x1051: fiat_p384_scalar_u1 = 0;
> +     let (x1050, x1051) = fiat_p384_scalar_addcarryx_u32(x1049, x978, x1026);
> +-    let mut x1052: u32 = 0;
> +-    let mut x1053: fiat_p384_scalar_u1 = 0;
> +     let (x1052, x1053) = fiat_p384_scalar_addcarryx_u32(x1051, x980, x1028);
> +-    let mut x1054: u32 = 0;
> +-    let mut x1055: fiat_p384_scalar_u1 = 0;
> +     let (x1054, x1055) = fiat_p384_scalar_addcarryx_u32(
> +         x1053,
> +         ((x981 as u32) + (x957 as u32)),
> +         ((x1029 as u32) + x985),
> +     );
> +-    let mut x1056: u32 = 0;
> +-    let mut x1057: fiat_p384_scalar_u1 = 0;
> +     let (x1056, x1057) = fiat_p384_scalar_addcarryx_u32(0x0, x1032, (arg1[11]));
> +-    let mut x1058: u32 = 0;
> +-    let mut x1059: fiat_p384_scalar_u1 = 0;
> +     let (x1058, x1059) = fiat_p384_scalar_addcarryx_u32(x1057, x1034, (0x0 as u32));
> +-    let mut x1060: u32 = 0;
> +-    let mut x1061: fiat_p384_scalar_u1 = 0;
> +     let (x1060, x1061) = fiat_p384_scalar_addcarryx_u32(x1059, x1036, (0x0 as u32));
> +-    let mut x1062: u32 = 0;
> +-    let mut x1063: fiat_p384_scalar_u1 = 0;
> +     let (x1062, x1063) = fiat_p384_scalar_addcarryx_u32(x1061, x1038, (0x0 as u32));
> +-    let mut x1064: u32 = 0;
> +-    let mut x1065: fiat_p384_scalar_u1 = 0;
> +     let (x1064, x1065) = fiat_p384_scalar_addcarryx_u32(x1063, x1040, (0x0 as u32));
> +-    let mut x1066: u32 = 0;
> +-    let mut x1067: fiat_p384_scalar_u1 = 0;
> +     let (x1066, x1067) = fiat_p384_scalar_addcarryx_u32(x1065, x1042, (0x0 as u32));
> +-    let mut x1068: u32 = 0;
> +-    let mut x1069: fiat_p384_scalar_u1 = 0;
> +     let (x1068, x1069) = fiat_p384_scalar_addcarryx_u32(x1067, x1044, (0x0 as u32));
> +-    let mut x1070: u32 = 0;
> +-    let mut x1071: fiat_p384_scalar_u1 = 0;
> +     let (x1070, x1071) = fiat_p384_scalar_addcarryx_u32(x1069, x1046, (0x0 as u32));
> +-    let mut x1072: u32 = 0;
> +-    let mut x1073: fiat_p384_scalar_u1 = 0;
> +     let (x1072, x1073) = fiat_p384_scalar_addcarryx_u32(x1071, x1048, (0x0 as u32));
> +-    let mut x1074: u32 = 0;
> +-    let mut x1075: fiat_p384_scalar_u1 = 0;
> +     let (x1074, x1075) = fiat_p384_scalar_addcarryx_u32(x1073, x1050, (0x0 as u32));
> +-    let mut x1076: u32 = 0;
> +-    let mut x1077: fiat_p384_scalar_u1 = 0;
> +     let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(x1075, x1052, (0x0 as u32));
> +-    let mut x1078: u32 = 0;
> +-    let mut x1079: fiat_p384_scalar_u1 = 0;
> +     let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1054, (0x0 as u32));
> +-    let mut x1080: u32 = 0;
> +-    let mut x1081: u32 = 0;
> +     let (x1080, x1081) = fiat_p384_scalar_mulx_u32(x1056, 0xe88fdc45);
> +-    let mut x1082: u32 = 0;
> +-    let mut x1083: u32 = 0;
> +     let (x1082, x1083) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
> +-    let mut x1084: u32 = 0;
> +-    let mut x1085: u32 = 0;
> +     let (x1084, x1085) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
> +-    let mut x1086: u32 = 0;
> +-    let mut x1087: u32 = 0;
> +     let (x1086, x1087) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
> +-    let mut x1088: u32 = 0;
> +-    let mut x1089: u32 = 0;
> +     let (x1088, x1089) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
> +-    let mut x1090: u32 = 0;
> +-    let mut x1091: u32 = 0;
> +     let (x1090, x1091) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
> +-    let mut x1092: u32 = 0;
> +-    let mut x1093: u32 = 0;
> +     let (x1092, x1093) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
> +-    let mut x1094: u32 = 0;
> +-    let mut x1095: u32 = 0;
> +     let (x1094, x1095) = fiat_p384_scalar_mulx_u32(x1080, 0xc7634d81);
> +-    let mut x1096: u32 = 0;
> +-    let mut x1097: u32 = 0;
> +     let (x1096, x1097) = fiat_p384_scalar_mulx_u32(x1080, 0xf4372ddf);
> +-    let mut x1098: u32 = 0;
> +-    let mut x1099: u32 = 0;
> +     let (x1098, x1099) = fiat_p384_scalar_mulx_u32(x1080, 0x581a0db2);
> +-    let mut x1100: u32 = 0;
> +-    let mut x1101: u32 = 0;
> +     let (x1100, x1101) = fiat_p384_scalar_mulx_u32(x1080, 0x48b0a77a);
> +-    let mut x1102: u32 = 0;
> +-    let mut x1103: u32 = 0;
> +     let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1080, 0xecec196a);
> +-    let mut x1104: u32 = 0;
> +-    let mut x1105: u32 = 0;
> +     let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1080, 0xccc52973);
> +-    let mut x1106: u32 = 0;
> +-    let mut x1107: fiat_p384_scalar_u1 = 0;
> +     let (x1106, x1107) = fiat_p384_scalar_addcarryx_u32(0x0, x1105, x1102);
> +-    let mut x1108: u32 = 0;
> +-    let mut x1109: fiat_p384_scalar_u1 = 0;
> +     let (x1108, x1109) = fiat_p384_scalar_addcarryx_u32(x1107, x1103, x1100);
> +-    let mut x1110: u32 = 0;
> +-    let mut x1111: fiat_p384_scalar_u1 = 0;
> +     let (x1110, x1111) = fiat_p384_scalar_addcarryx_u32(x1109, x1101, x1098);
> +-    let mut x1112: u32 = 0;
> +-    let mut x1113: fiat_p384_scalar_u1 = 0;
> +     let (x1112, x1113) = fiat_p384_scalar_addcarryx_u32(x1111, x1099, x1096);
> +-    let mut x1114: u32 = 0;
> +-    let mut x1115: fiat_p384_scalar_u1 = 0;
> +     let (x1114, x1115) = fiat_p384_scalar_addcarryx_u32(x1113, x1097, x1094);
> +-    let mut x1116: u32 = 0;
> +-    let mut x1117: fiat_p384_scalar_u1 = 0;
> +     let (x1116, x1117) = fiat_p384_scalar_addcarryx_u32(x1115, x1095, x1092);
> +-    let mut x1118: u32 = 0;
> +-    let mut x1119: fiat_p384_scalar_u1 = 0;
> +     let (x1118, x1119) = fiat_p384_scalar_addcarryx_u32(x1117, x1093, x1090);
> +-    let mut x1120: u32 = 0;
> +-    let mut x1121: fiat_p384_scalar_u1 = 0;
> +     let (x1120, x1121) = fiat_p384_scalar_addcarryx_u32(x1119, x1091, x1088);
> +-    let mut x1122: u32 = 0;
> +-    let mut x1123: fiat_p384_scalar_u1 = 0;
> +     let (x1122, x1123) = fiat_p384_scalar_addcarryx_u32(x1121, x1089, x1086);
> +-    let mut x1124: u32 = 0;
> +-    let mut x1125: fiat_p384_scalar_u1 = 0;
> +     let (x1124, x1125) = fiat_p384_scalar_addcarryx_u32(x1123, x1087, x1084);
> +-    let mut x1126: u32 = 0;
> +-    let mut x1127: fiat_p384_scalar_u1 = 0;
> +     let (x1126, x1127) = fiat_p384_scalar_addcarryx_u32(x1125, x1085, x1082);
> +-    let mut x1128: u32 = 0;
> +-    let mut x1129: fiat_p384_scalar_u1 = 0;
> +     let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1056, x1104);
> +-    let mut x1130: u32 = 0;
> +-    let mut x1131: fiat_p384_scalar_u1 = 0;
> +     let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1058, x1106);
> +-    let mut x1132: u32 = 0;
> +-    let mut x1133: fiat_p384_scalar_u1 = 0;
> +     let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1060, x1108);
> +-    let mut x1134: u32 = 0;
> +-    let mut x1135: fiat_p384_scalar_u1 = 0;
> +     let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1062, x1110);
> +-    let mut x1136: u32 = 0;
> +-    let mut x1137: fiat_p384_scalar_u1 = 0;
> +     let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1064, x1112);
> +-    let mut x1138: u32 = 0;
> +-    let mut x1139: fiat_p384_scalar_u1 = 0;
> +     let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1066, x1114);
> +-    let mut x1140: u32 = 0;
> +-    let mut x1141: fiat_p384_scalar_u1 = 0;
> +     let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1068, x1116);
> +-    let mut x1142: u32 = 0;
> +-    let mut x1143: fiat_p384_scalar_u1 = 0;
> +     let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1070, x1118);
> +-    let mut x1144: u32 = 0;
> +-    let mut x1145: fiat_p384_scalar_u1 = 0;
> +     let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1072, x1120);
> +-    let mut x1146: u32 = 0;
> +-    let mut x1147: fiat_p384_scalar_u1 = 0;
> +     let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1074, x1122);
> +-    let mut x1148: u32 = 0;
> +-    let mut x1149: fiat_p384_scalar_u1 = 0;
> +     let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1076, x1124);
> +-    let mut x1150: u32 = 0;
> +-    let mut x1151: fiat_p384_scalar_u1 = 0;
> +     let (x1150, x1151) = fiat_p384_scalar_addcarryx_u32(x1149, x1078, x1126);
> +-    let mut x1152: u32 = 0;
> +-    let mut x1153: fiat_p384_scalar_u1 = 0;
> +     let (x1152, x1153) = fiat_p384_scalar_addcarryx_u32(
> +         x1151,
> +         ((x1079 as u32) + (x1055 as u32)),
> +         ((x1127 as u32) + x1083),
> +     );
> +-    let mut x1154: u32 = 0;
> +-    let mut x1155: fiat_p384_scalar_u1 = 0;
> +     let (x1154, x1155) = fiat_p384_scalar_subborrowx_u32(0x0, x1130, 0xccc52973);
> +-    let mut x1156: u32 = 0;
> +-    let mut x1157: fiat_p384_scalar_u1 = 0;
> +     let (x1156, x1157) = fiat_p384_scalar_subborrowx_u32(x1155, x1132, 0xecec196a);
> +-    let mut x1158: u32 = 0;
> +-    let mut x1159: fiat_p384_scalar_u1 = 0;
> +     let (x1158, x1159) = fiat_p384_scalar_subborrowx_u32(x1157, x1134, 0x48b0a77a);
> +-    let mut x1160: u32 = 0;
> +-    let mut x1161: fiat_p384_scalar_u1 = 0;
> +     let (x1160, x1161) = fiat_p384_scalar_subborrowx_u32(x1159, x1136, 0x581a0db2);
> +-    let mut x1162: u32 = 0;
> +-    let mut x1163: fiat_p384_scalar_u1 = 0;
> +     let (x1162, x1163) = fiat_p384_scalar_subborrowx_u32(x1161, x1138, 0xf4372ddf);
> +-    let mut x1164: u32 = 0;
> +-    let mut x1165: fiat_p384_scalar_u1 = 0;
> +     let (x1164, x1165) = fiat_p384_scalar_subborrowx_u32(x1163, x1140, 0xc7634d81);
> +-    let mut x1166: u32 = 0;
> +-    let mut x1167: fiat_p384_scalar_u1 = 0;
> +     let (x1166, x1167) = fiat_p384_scalar_subborrowx_u32(x1165, x1142, 0xffffffff);
> +-    let mut x1168: u32 = 0;
> +-    let mut x1169: fiat_p384_scalar_u1 = 0;
> +     let (x1168, x1169) = fiat_p384_scalar_subborrowx_u32(x1167, x1144, 0xffffffff);
> +-    let mut x1170: u32 = 0;
> +-    let mut x1171: fiat_p384_scalar_u1 = 0;
> +     let (x1170, x1171) = fiat_p384_scalar_subborrowx_u32(x1169, x1146, 0xffffffff);
> +-    let mut x1172: u32 = 0;
> +-    let mut x1173: fiat_p384_scalar_u1 = 0;
> +     let (x1172, x1173) = fiat_p384_scalar_subborrowx_u32(x1171, x1148, 0xffffffff);
> +-    let mut x1174: u32 = 0;
> +-    let mut x1175: fiat_p384_scalar_u1 = 0;
> +     let (x1174, x1175) = fiat_p384_scalar_subborrowx_u32(x1173, x1150, 0xffffffff);
> +-    let mut x1176: u32 = 0;
> +-    let mut x1177: fiat_p384_scalar_u1 = 0;
> +     let (x1176, x1177) = fiat_p384_scalar_subborrowx_u32(x1175, x1152, 0xffffffff);
> +-    let mut x1178: u32 = 0;
> +-    let mut x1179: fiat_p384_scalar_u1 = 0;
> +     let (x1178, x1179) = fiat_p384_scalar_subborrowx_u32(x1177, (x1153 as u32), (0x0 as u32));
> +-    let mut x1180: u32 = 0;
> +     let (x1180) = fiat_p384_scalar_cmovznz_u32(x1179, x1154, x1130);
> +-    let mut x1181: u32 = 0;
> +     let (x1181) = fiat_p384_scalar_cmovznz_u32(x1179, x1156, x1132);
> +-    let mut x1182: u32 = 0;
> +     let (x1182) = fiat_p384_scalar_cmovznz_u32(x1179, x1158, x1134);
> +-    let mut x1183: u32 = 0;
> +     let (x1183) = fiat_p384_scalar_cmovznz_u32(x1179, x1160, x1136);
> +-    let mut x1184: u32 = 0;
> +     let (x1184) = fiat_p384_scalar_cmovznz_u32(x1179, x1162, x1138);
> +-    let mut x1185: u32 = 0;
> +     let (x1185) = fiat_p384_scalar_cmovznz_u32(x1179, x1164, x1140);
> +-    let mut x1186: u32 = 0;
> +     let (x1186) = fiat_p384_scalar_cmovznz_u32(x1179, x1166, x1142);
> +-    let mut x1187: u32 = 0;
> +     let (x1187) = fiat_p384_scalar_cmovznz_u32(x1179, x1168, x1144);
> +-    let mut x1188: u32 = 0;
> +     let (x1188) = fiat_p384_scalar_cmovznz_u32(x1179, x1170, x1146);
> +-    let mut x1189: u32 = 0;
> +     let (x1189) = fiat_p384_scalar_cmovznz_u32(x1179, x1172, x1148);
> +-    let mut x1190: u32 = 0;
> +     let (x1190) = fiat_p384_scalar_cmovznz_u32(x1179, x1174, x1150);
> +-    let mut x1191: u32 = 0;
> +     let (x1191) = fiat_p384_scalar_cmovznz_u32(x1179, x1176, x1152);
> +     out1[0] = x1180;
> +     out1[1] = x1181;
> +@@ -7805,2669 +2927,927 @@ pub const fn fiat_p384_scalar_to_montgomery(
> +     let x10: u32 = (arg1[10]);
> +     let x11: u32 = (arg1[11]);
> +     let x12: u32 = (arg1[0]);
> +-    let mut x13: u32 = 0;
> +-    let mut x14: u32 = 0;
> +     let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, 0xc84ee01);
> +-    let mut x15: u32 = 0;
> +-    let mut x16: u32 = 0;
> +     let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, 0x2b39bf21);
> +-    let mut x17: u32 = 0;
> +-    let mut x18: u32 = 0;
> +     let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, 0x3fb05b7a);
> +-    let mut x19: u32 = 0;
> +-    let mut x20: u32 = 0;
> +     let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, 0x28266895);
> +-    let mut x21: u32 = 0;
> +-    let mut x22: u32 = 0;
> +     let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, 0xd40d4917);
> +-    let mut x23: u32 = 0;
> +-    let mut x24: u32 = 0;
> +     let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, 0x4aab1cc5);
> +-    let mut x25: u32 = 0;
> +-    let mut x26: u32 = 0;
> +     let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, 0xbc3e483a);
> +-    let mut x27: u32 = 0;
> +-    let mut x28: u32 = 0;
> +     let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, 0xfcb82947);
> +-    let mut x29: u32 = 0;
> +-    let mut x30: u32 = 0;
> +     let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, 0xff3d81e5);
> +-    let mut x31: u32 = 0;
> +-    let mut x32: u32 = 0;
> +     let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, 0xdf1aa419);
> +-    let mut x33: u32 = 0;
> +-    let mut x34: u32 = 0;
> +     let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, 0x2d319b24);
> +-    let mut x35: u32 = 0;
> +-    let mut x36: u32 = 0;
> +     let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, 0x19b409a9);
> +-    let mut x37: u32 = 0;
> +-    let mut x38: fiat_p384_scalar_u1 = 0;
> +     let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
> +-    let mut x39: u32 = 0;
> +-    let mut x40: fiat_p384_scalar_u1 = 0;
> +     let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
> +-    let mut x41: u32 = 0;
> +-    let mut x42: fiat_p384_scalar_u1 = 0;
> +     let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
> +-    let mut x43: u32 = 0;
> +-    let mut x44: fiat_p384_scalar_u1 = 0;
> +     let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
> +-    let mut x45: u32 = 0;
> +-    let mut x46: fiat_p384_scalar_u1 = 0;
> +     let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
> +-    let mut x47: u32 = 0;
> +-    let mut x48: fiat_p384_scalar_u1 = 0;
> +     let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
> +-    let mut x49: u32 = 0;
> +-    let mut x50: fiat_p384_scalar_u1 = 0;
> +     let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
> +-    let mut x51: u32 = 0;
> +-    let mut x52: fiat_p384_scalar_u1 = 0;
> +     let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
> +-    let mut x53: u32 = 0;
> +-    let mut x54: fiat_p384_scalar_u1 = 0;
> +     let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
> +-    let mut x55: u32 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
> +-    let mut x57: u32 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
> +-    let mut x59: u32 = 0;
> +-    let mut x60: u32 = 0;
> +     let (x59, x60) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
> +-    let mut x61: u32 = 0;
> +-    let mut x62: u32 = 0;
> +     let (x61, x62) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
> +-    let mut x63: u32 = 0;
> +-    let mut x64: u32 = 0;
> +     let (x63, x64) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
> +-    let mut x65: u32 = 0;
> +-    let mut x66: u32 = 0;
> +     let (x65, x66) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
> +-    let mut x67: u32 = 0;
> +-    let mut x68: u32 = 0;
> +     let (x67, x68) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
> +-    let mut x69: u32 = 0;
> +-    let mut x70: u32 = 0;
> +     let (x69, x70) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
> +-    let mut x71: u32 = 0;
> +-    let mut x72: u32 = 0;
> +     let (x71, x72) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
> +-    let mut x73: u32 = 0;
> +-    let mut x74: u32 = 0;
> +     let (x73, x74) = fiat_p384_scalar_mulx_u32(x59, 0xc7634d81);
> +-    let mut x75: u32 = 0;
> +-    let mut x76: u32 = 0;
> +     let (x75, x76) = fiat_p384_scalar_mulx_u32(x59, 0xf4372ddf);
> +-    let mut x77: u32 = 0;
> +-    let mut x78: u32 = 0;
> +     let (x77, x78) = fiat_p384_scalar_mulx_u32(x59, 0x581a0db2);
> +-    let mut x79: u32 = 0;
> +-    let mut x80: u32 = 0;
> +     let (x79, x80) = fiat_p384_scalar_mulx_u32(x59, 0x48b0a77a);
> +-    let mut x81: u32 = 0;
> +-    let mut x82: u32 = 0;
> +     let (x81, x82) = fiat_p384_scalar_mulx_u32(x59, 0xecec196a);
> +-    let mut x83: u32 = 0;
> +-    let mut x84: u32 = 0;
> +     let (x83, x84) = fiat_p384_scalar_mulx_u32(x59, 0xccc52973);
> +-    let mut x85: u32 = 0;
> +-    let mut x86: fiat_p384_scalar_u1 = 0;
> +     let (x85, x86) = fiat_p384_scalar_addcarryx_u32(0x0, x84, x81);
> +-    let mut x87: u32 = 0;
> +-    let mut x88: fiat_p384_scalar_u1 = 0;
> +     let (x87, x88) = fiat_p384_scalar_addcarryx_u32(x86, x82, x79);
> +-    let mut x89: u32 = 0;
> +-    let mut x90: fiat_p384_scalar_u1 = 0;
> +     let (x89, x90) = fiat_p384_scalar_addcarryx_u32(x88, x80, x77);
> +-    let mut x91: u32 = 0;
> +-    let mut x92: fiat_p384_scalar_u1 = 0;
> +     let (x91, x92) = fiat_p384_scalar_addcarryx_u32(x90, x78, x75);
> +-    let mut x93: u32 = 0;
> +-    let mut x94: fiat_p384_scalar_u1 = 0;
> +     let (x93, x94) = fiat_p384_scalar_addcarryx_u32(x92, x76, x73);
> +-    let mut x95: u32 = 0;
> +-    let mut x96: fiat_p384_scalar_u1 = 0;
> +     let (x95, x96) = fiat_p384_scalar_addcarryx_u32(x94, x74, x71);
> +-    let mut x97: u32 = 0;
> +-    let mut x98: fiat_p384_scalar_u1 = 0;
> +     let (x97, x98) = fiat_p384_scalar_addcarryx_u32(x96, x72, x69);
> +-    let mut x99: u32 = 0;
> +-    let mut x100: fiat_p384_scalar_u1 = 0;
> +     let (x99, x100) = fiat_p384_scalar_addcarryx_u32(x98, x70, x67);
> +-    let mut x101: u32 = 0;
> +-    let mut x102: fiat_p384_scalar_u1 = 0;
> +     let (x101, x102) = fiat_p384_scalar_addcarryx_u32(x100, x68, x65);
> +-    let mut x103: u32 = 0;
> +-    let mut x104: fiat_p384_scalar_u1 = 0;
> +     let (x103, x104) = fiat_p384_scalar_addcarryx_u32(x102, x66, x63);
> +-    let mut x105: u32 = 0;
> +-    let mut x106: fiat_p384_scalar_u1 = 0;
> +     let (x105, x106) = fiat_p384_scalar_addcarryx_u32(x104, x64, x61);
> +-    let mut x107: u32 = 0;
> +-    let mut x108: fiat_p384_scalar_u1 = 0;
> +     let (x107, x108) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x83);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_scalar_u1 = 0;
> +     let (x109, x110) = fiat_p384_scalar_addcarryx_u32(x108, x37, x85);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_scalar_u1 = 0;
> +     let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x39, x87);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_scalar_u1 = 0;
> +     let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x41, x89);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_scalar_u1 = 0;
> +     let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x43, x91);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_scalar_u1 = 0;
> +     let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x45, x93);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_scalar_u1 = 0;
> +     let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x47, x95);
> +-    let mut x121: u32 = 0;
> +-    let mut x122: fiat_p384_scalar_u1 = 0;
> +     let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x49, x97);
> +-    let mut x123: u32 = 0;
> +-    let mut x124: fiat_p384_scalar_u1 = 0;
> +     let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x51, x99);
> +-    let mut x125: u32 = 0;
> +-    let mut x126: fiat_p384_scalar_u1 = 0;
> +     let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x53, x101);
> +-    let mut x127: u32 = 0;
> +-    let mut x128: fiat_p384_scalar_u1 = 0;
> +     let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x55, x103);
> +-    let mut x129: u32 = 0;
> +-    let mut x130: fiat_p384_scalar_u1 = 0;
> +     let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x57, x105);
> +-    let mut x131: u32 = 0;
> +-    let mut x132: fiat_p384_scalar_u1 = 0;
> +     let (x131, x132) =
> +         fiat_p384_scalar_addcarryx_u32(x130, ((x58 as u32) + x14), ((x106 as u32) + x62));
> +-    let mut x133: u32 = 0;
> +-    let mut x134: u32 = 0;
> +     let (x133, x134) = fiat_p384_scalar_mulx_u32(x1, 0xc84ee01);
> +-    let mut x135: u32 = 0;
> +-    let mut x136: u32 = 0;
> +     let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, 0x2b39bf21);
> +-    let mut x137: u32 = 0;
> +-    let mut x138: u32 = 0;
> +     let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, 0x3fb05b7a);
> +-    let mut x139: u32 = 0;
> +-    let mut x140: u32 = 0;
> +     let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, 0x28266895);
> +-    let mut x141: u32 = 0;
> +-    let mut x142: u32 = 0;
> +     let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, 0xd40d4917);
> +-    let mut x143: u32 = 0;
> +-    let mut x144: u32 = 0;
> +     let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, 0x4aab1cc5);
> +-    let mut x145: u32 = 0;
> +-    let mut x146: u32 = 0;
> +     let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, 0xbc3e483a);
> +-    let mut x147: u32 = 0;
> +-    let mut x148: u32 = 0;
> +     let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, 0xfcb82947);
> +-    let mut x149: u32 = 0;
> +-    let mut x150: u32 = 0;
> +     let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, 0xff3d81e5);
> +-    let mut x151: u32 = 0;
> +-    let mut x152: u32 = 0;
> +     let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, 0xdf1aa419);
> +-    let mut x153: u32 = 0;
> +-    let mut x154: u32 = 0;
> +     let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, 0x2d319b24);
> +-    let mut x155: u32 = 0;
> +-    let mut x156: u32 = 0;
> +     let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, 0x19b409a9);
> +-    let mut x157: u32 = 0;
> +-    let mut x158: fiat_p384_scalar_u1 = 0;
> +     let (x157, x158) = fiat_p384_scalar_addcarryx_u32(0x0, x156, x153);
> +-    let mut x159: u32 = 0;
> +-    let mut x160: fiat_p384_scalar_u1 = 0;
> +     let (x159, x160) = fiat_p384_scalar_addcarryx_u32(x158, x154, x151);
> +-    let mut x161: u32 = 0;
> +-    let mut x162: fiat_p384_scalar_u1 = 0;
> +     let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x152, x149);
> +-    let mut x163: u32 = 0;
> +-    let mut x164: fiat_p384_scalar_u1 = 0;
> +     let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x150, x147);
> +-    let mut x165: u32 = 0;
> +-    let mut x166: fiat_p384_scalar_u1 = 0;
> +     let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x148, x145);
> +-    let mut x167: u32 = 0;
> +-    let mut x168: fiat_p384_scalar_u1 = 0;
> +     let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x146, x143);
> +-    let mut x169: u32 = 0;
> +-    let mut x170: fiat_p384_scalar_u1 = 0;
> +     let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x144, x141);
> +-    let mut x171: u32 = 0;
> +-    let mut x172: fiat_p384_scalar_u1 = 0;
> +     let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x142, x139);
> +-    let mut x173: u32 = 0;
> +-    let mut x174: fiat_p384_scalar_u1 = 0;
> +     let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x140, x137);
> +-    let mut x175: u32 = 0;
> +-    let mut x176: fiat_p384_scalar_u1 = 0;
> +     let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x138, x135);
> +-    let mut x177: u32 = 0;
> +-    let mut x178: fiat_p384_scalar_u1 = 0;
> +     let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x136, x133);
> +-    let mut x179: u32 = 0;
> +-    let mut x180: fiat_p384_scalar_u1 = 0;
> +     let (x179, x180) = fiat_p384_scalar_addcarryx_u32(0x0, x109, x155);
> +-    let mut x181: u32 = 0;
> +-    let mut x182: fiat_p384_scalar_u1 = 0;
> +     let (x181, x182) = fiat_p384_scalar_addcarryx_u32(x180, x111, x157);
> +-    let mut x183: u32 = 0;
> +-    let mut x184: fiat_p384_scalar_u1 = 0;
> +     let (x183, x184) = fiat_p384_scalar_addcarryx_u32(x182, x113, x159);
> +-    let mut x185: u32 = 0;
> +-    let mut x186: fiat_p384_scalar_u1 = 0;
> +     let (x185, x186) = fiat_p384_scalar_addcarryx_u32(x184, x115, x161);
> +-    let mut x187: u32 = 0;
> +-    let mut x188: fiat_p384_scalar_u1 = 0;
> +     let (x187, x188) = fiat_p384_scalar_addcarryx_u32(x186, x117, x163);
> +-    let mut x189: u32 = 0;
> +-    let mut x190: fiat_p384_scalar_u1 = 0;
> +     let (x189, x190) = fiat_p384_scalar_addcarryx_u32(x188, x119, x165);
> +-    let mut x191: u32 = 0;
> +-    let mut x192: fiat_p384_scalar_u1 = 0;
> +     let (x191, x192) = fiat_p384_scalar_addcarryx_u32(x190, x121, x167);
> +-    let mut x193: u32 = 0;
> +-    let mut x194: fiat_p384_scalar_u1 = 0;
> +     let (x193, x194) = fiat_p384_scalar_addcarryx_u32(x192, x123, x169);
> +-    let mut x195: u32 = 0;
> +-    let mut x196: fiat_p384_scalar_u1 = 0;
> +     let (x195, x196) = fiat_p384_scalar_addcarryx_u32(x194, x125, x171);
> +-    let mut x197: u32 = 0;
> +-    let mut x198: fiat_p384_scalar_u1 = 0;
> +     let (x197, x198) = fiat_p384_scalar_addcarryx_u32(x196, x127, x173);
> +-    let mut x199: u32 = 0;
> +-    let mut x200: fiat_p384_scalar_u1 = 0;
> +     let (x199, x200) = fiat_p384_scalar_addcarryx_u32(x198, x129, x175);
> +-    let mut x201: u32 = 0;
> +-    let mut x202: fiat_p384_scalar_u1 = 0;
> +     let (x201, x202) = fiat_p384_scalar_addcarryx_u32(x200, x131, x177);
> +-    let mut x203: u32 = 0;
> +-    let mut x204: u32 = 0;
> +     let (x203, x204) = fiat_p384_scalar_mulx_u32(x179, 0xe88fdc45);
> +-    let mut x205: u32 = 0;
> +-    let mut x206: u32 = 0;
> +     let (x205, x206) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
> +-    let mut x207: u32 = 0;
> +-    let mut x208: u32 = 0;
> +     let (x207, x208) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
> +-    let mut x209: u32 = 0;
> +-    let mut x210: u32 = 0;
> +     let (x209, x210) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
> +-    let mut x211: u32 = 0;
> +-    let mut x212: u32 = 0;
> +     let (x211, x212) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
> +-    let mut x213: u32 = 0;
> +-    let mut x214: u32 = 0;
> +     let (x213, x214) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
> +-    let mut x215: u32 = 0;
> +-    let mut x216: u32 = 0;
> +     let (x215, x216) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
> +-    let mut x217: u32 = 0;
> +-    let mut x218: u32 = 0;
> +     let (x217, x218) = fiat_p384_scalar_mulx_u32(x203, 0xc7634d81);
> +-    let mut x219: u32 = 0;
> +-    let mut x220: u32 = 0;
> +     let (x219, x220) = fiat_p384_scalar_mulx_u32(x203, 0xf4372ddf);
> +-    let mut x221: u32 = 0;
> +-    let mut x222: u32 = 0;
> +     let (x221, x222) = fiat_p384_scalar_mulx_u32(x203, 0x581a0db2);
> +-    let mut x223: u32 = 0;
> +-    let mut x224: u32 = 0;
> +     let (x223, x224) = fiat_p384_scalar_mulx_u32(x203, 0x48b0a77a);
> +-    let mut x225: u32 = 0;
> +-    let mut x226: u32 = 0;
> +     let (x225, x226) = fiat_p384_scalar_mulx_u32(x203, 0xecec196a);
> +-    let mut x227: u32 = 0;
> +-    let mut x228: u32 = 0;
> +     let (x227, x228) = fiat_p384_scalar_mulx_u32(x203, 0xccc52973);
> +-    let mut x229: u32 = 0;
> +-    let mut x230: fiat_p384_scalar_u1 = 0;
> +     let (x229, x230) = fiat_p384_scalar_addcarryx_u32(0x0, x228, x225);
> +-    let mut x231: u32 = 0;
> +-    let mut x232: fiat_p384_scalar_u1 = 0;
> +     let (x231, x232) = fiat_p384_scalar_addcarryx_u32(x230, x226, x223);
> +-    let mut x233: u32 = 0;
> +-    let mut x234: fiat_p384_scalar_u1 = 0;
> +     let (x233, x234) = fiat_p384_scalar_addcarryx_u32(x232, x224, x221);
> +-    let mut x235: u32 = 0;
> +-    let mut x236: fiat_p384_scalar_u1 = 0;
> +     let (x235, x236) = fiat_p384_scalar_addcarryx_u32(x234, x222, x219);
> +-    let mut x237: u32 = 0;
> +-    let mut x238: fiat_p384_scalar_u1 = 0;
> +     let (x237, x238) = fiat_p384_scalar_addcarryx_u32(x236, x220, x217);
> +-    let mut x239: u32 = 0;
> +-    let mut x240: fiat_p384_scalar_u1 = 0;
> +     let (x239, x240) = fiat_p384_scalar_addcarryx_u32(x238, x218, x215);
> +-    let mut x241: u32 = 0;
> +-    let mut x242: fiat_p384_scalar_u1 = 0;
> +     let (x241, x242) = fiat_p384_scalar_addcarryx_u32(x240, x216, x213);
> +-    let mut x243: u32 = 0;
> +-    let mut x244: fiat_p384_scalar_u1 = 0;
> +     let (x243, x244) = fiat_p384_scalar_addcarryx_u32(x242, x214, x211);
> +-    let mut x245: u32 = 0;
> +-    let mut x246: fiat_p384_scalar_u1 = 0;
> +     let (x245, x246) = fiat_p384_scalar_addcarryx_u32(x244, x212, x209);
> +-    let mut x247: u32 = 0;
> +-    let mut x248: fiat_p384_scalar_u1 = 0;
> +     let (x247, x248) = fiat_p384_scalar_addcarryx_u32(x246, x210, x207);
> +-    let mut x249: u32 = 0;
> +-    let mut x250: fiat_p384_scalar_u1 = 0;
> +     let (x249, x250) = fiat_p384_scalar_addcarryx_u32(x248, x208, x205);
> +-    let mut x251: u32 = 0;
> +-    let mut x252: fiat_p384_scalar_u1 = 0;
> +     let (x251, x252) = fiat_p384_scalar_addcarryx_u32(0x0, x179, x227);
> +-    let mut x253: u32 = 0;
> +-    let mut x254: fiat_p384_scalar_u1 = 0;
> +     let (x253, x254) = fiat_p384_scalar_addcarryx_u32(x252, x181, x229);
> +-    let mut x255: u32 = 0;
> +-    let mut x256: fiat_p384_scalar_u1 = 0;
> +     let (x255, x256) = fiat_p384_scalar_addcarryx_u32(x254, x183, x231);
> +-    let mut x257: u32 = 0;
> +-    let mut x258: fiat_p384_scalar_u1 = 0;
> +     let (x257, x258) = fiat_p384_scalar_addcarryx_u32(x256, x185, x233);
> +-    let mut x259: u32 = 0;
> +-    let mut x260: fiat_p384_scalar_u1 = 0;
> +     let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x187, x235);
> +-    let mut x261: u32 = 0;
> +-    let mut x262: fiat_p384_scalar_u1 = 0;
> +     let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x189, x237);
> +-    let mut x263: u32 = 0;
> +-    let mut x264: fiat_p384_scalar_u1 = 0;
> +     let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x191, x239);
> +-    let mut x265: u32 = 0;
> +-    let mut x266: fiat_p384_scalar_u1 = 0;
> +     let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x193, x241);
> +-    let mut x267: u32 = 0;
> +-    let mut x268: fiat_p384_scalar_u1 = 0;
> +     let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x195, x243);
> +-    let mut x269: u32 = 0;
> +-    let mut x270: fiat_p384_scalar_u1 = 0;
> +     let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x197, x245);
> +-    let mut x271: u32 = 0;
> +-    let mut x272: fiat_p384_scalar_u1 = 0;
> +     let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x199, x247);
> +-    let mut x273: u32 = 0;
> +-    let mut x274: fiat_p384_scalar_u1 = 0;
> +     let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x201, x249);
> +-    let mut x275: u32 = 0;
> +-    let mut x276: fiat_p384_scalar_u1 = 0;
> +     let (x275, x276) = fiat_p384_scalar_addcarryx_u32(
> +         x274,
> +         (((x202 as u32) + (x132 as u32)) + ((x178 as u32) + x134)),
> +         ((x250 as u32) + x206),
> +     );
> +-    let mut x277: u32 = 0;
> +-    let mut x278: u32 = 0;
> +     let (x277, x278) = fiat_p384_scalar_mulx_u32(x2, 0xc84ee01);
> +-    let mut x279: u32 = 0;
> +-    let mut x280: u32 = 0;
> +     let (x279, x280) = fiat_p384_scalar_mulx_u32(x2, 0x2b39bf21);
> +-    let mut x281: u32 = 0;
> +-    let mut x282: u32 = 0;
> +     let (x281, x282) = fiat_p384_scalar_mulx_u32(x2, 0x3fb05b7a);
> +-    let mut x283: u32 = 0;
> +-    let mut x284: u32 = 0;
> +     let (x283, x284) = fiat_p384_scalar_mulx_u32(x2, 0x28266895);
> +-    let mut x285: u32 = 0;
> +-    let mut x286: u32 = 0;
> +     let (x285, x286) = fiat_p384_scalar_mulx_u32(x2, 0xd40d4917);
> +-    let mut x287: u32 = 0;
> +-    let mut x288: u32 = 0;
> +     let (x287, x288) = fiat_p384_scalar_mulx_u32(x2, 0x4aab1cc5);
> +-    let mut x289: u32 = 0;
> +-    let mut x290: u32 = 0;
> +     let (x289, x290) = fiat_p384_scalar_mulx_u32(x2, 0xbc3e483a);
> +-    let mut x291: u32 = 0;
> +-    let mut x292: u32 = 0;
> +     let (x291, x292) = fiat_p384_scalar_mulx_u32(x2, 0xfcb82947);
> +-    let mut x293: u32 = 0;
> +-    let mut x294: u32 = 0;
> +     let (x293, x294) = fiat_p384_scalar_mulx_u32(x2, 0xff3d81e5);
> +-    let mut x295: u32 = 0;
> +-    let mut x296: u32 = 0;
> +     let (x295, x296) = fiat_p384_scalar_mulx_u32(x2, 0xdf1aa419);
> +-    let mut x297: u32 = 0;
> +-    let mut x298: u32 = 0;
> +     let (x297, x298) = fiat_p384_scalar_mulx_u32(x2, 0x2d319b24);
> +-    let mut x299: u32 = 0;
> +-    let mut x300: u32 = 0;
> +     let (x299, x300) = fiat_p384_scalar_mulx_u32(x2, 0x19b409a9);
> +-    let mut x301: u32 = 0;
> +-    let mut x302: fiat_p384_scalar_u1 = 0;
> +     let (x301, x302) = fiat_p384_scalar_addcarryx_u32(0x0, x300, x297);
> +-    let mut x303: u32 = 0;
> +-    let mut x304: fiat_p384_scalar_u1 = 0;
> +     let (x303, x304) = fiat_p384_scalar_addcarryx_u32(x302, x298, x295);
> +-    let mut x305: u32 = 0;
> +-    let mut x306: fiat_p384_scalar_u1 = 0;
> +     let (x305, x306) = fiat_p384_scalar_addcarryx_u32(x304, x296, x293);
> +-    let mut x307: u32 = 0;
> +-    let mut x308: fiat_p384_scalar_u1 = 0;
> +     let (x307, x308) = fiat_p384_scalar_addcarryx_u32(x306, x294, x291);
> +-    let mut x309: u32 = 0;
> +-    let mut x310: fiat_p384_scalar_u1 = 0;
> +     let (x309, x310) = fiat_p384_scalar_addcarryx_u32(x308, x292, x289);
> +-    let mut x311: u32 = 0;
> +-    let mut x312: fiat_p384_scalar_u1 = 0;
> +     let (x311, x312) = fiat_p384_scalar_addcarryx_u32(x310, x290, x287);
> +-    let mut x313: u32 = 0;
> +-    let mut x314: fiat_p384_scalar_u1 = 0;
> +     let (x313, x314) = fiat_p384_scalar_addcarryx_u32(x312, x288, x285);
> +-    let mut x315: u32 = 0;
> +-    let mut x316: fiat_p384_scalar_u1 = 0;
> +     let (x315, x316) = fiat_p384_scalar_addcarryx_u32(x314, x286, x283);
> +-    let mut x317: u32 = 0;
> +-    let mut x318: fiat_p384_scalar_u1 = 0;
> +     let (x317, x318) = fiat_p384_scalar_addcarryx_u32(x316, x284, x281);
> +-    let mut x319: u32 = 0;
> +-    let mut x320: fiat_p384_scalar_u1 = 0;
> +     let (x319, x320) = fiat_p384_scalar_addcarryx_u32(x318, x282, x279);
> +-    let mut x321: u32 = 0;
> +-    let mut x322: fiat_p384_scalar_u1 = 0;
> +     let (x321, x322) = fiat_p384_scalar_addcarryx_u32(x320, x280, x277);
> +-    let mut x323: u32 = 0;
> +-    let mut x324: fiat_p384_scalar_u1 = 0;
> +     let (x323, x324) = fiat_p384_scalar_addcarryx_u32(0x0, x253, x299);
> +-    let mut x325: u32 = 0;
> +-    let mut x326: fiat_p384_scalar_u1 = 0;
> +     let (x325, x326) = fiat_p384_scalar_addcarryx_u32(x324, x255, x301);
> +-    let mut x327: u32 = 0;
> +-    let mut x328: fiat_p384_scalar_u1 = 0;
> +     let (x327, x328) = fiat_p384_scalar_addcarryx_u32(x326, x257, x303);
> +-    let mut x329: u32 = 0;
> +-    let mut x330: fiat_p384_scalar_u1 = 0;
> +     let (x329, x330) = fiat_p384_scalar_addcarryx_u32(x328, x259, x305);
> +-    let mut x331: u32 = 0;
> +-    let mut x332: fiat_p384_scalar_u1 = 0;
> +     let (x331, x332) = fiat_p384_scalar_addcarryx_u32(x330, x261, x307);
> +-    let mut x333: u32 = 0;
> +-    let mut x334: fiat_p384_scalar_u1 = 0;
> +     let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x263, x309);
> +-    let mut x335: u32 = 0;
> +-    let mut x336: fiat_p384_scalar_u1 = 0;
> +     let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x265, x311);
> +-    let mut x337: u32 = 0;
> +-    let mut x338: fiat_p384_scalar_u1 = 0;
> +     let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x267, x313);
> +-    let mut x339: u32 = 0;
> +-    let mut x340: fiat_p384_scalar_u1 = 0;
> +     let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x269, x315);
> +-    let mut x341: u32 = 0;
> +-    let mut x342: fiat_p384_scalar_u1 = 0;
> +     let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x271, x317);
> +-    let mut x343: u32 = 0;
> +-    let mut x344: fiat_p384_scalar_u1 = 0;
> +     let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x273, x319);
> +-    let mut x345: u32 = 0;
> +-    let mut x346: fiat_p384_scalar_u1 = 0;
> +     let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x275, x321);
> +-    let mut x347: u32 = 0;
> +-    let mut x348: u32 = 0;
> +     let (x347, x348) = fiat_p384_scalar_mulx_u32(x323, 0xe88fdc45);
> +-    let mut x349: u32 = 0;
> +-    let mut x350: u32 = 0;
> +     let (x349, x350) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
> +-    let mut x351: u32 = 0;
> +-    let mut x352: u32 = 0;
> +     let (x351, x352) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
> +-    let mut x353: u32 = 0;
> +-    let mut x354: u32 = 0;
> +     let (x353, x354) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
> +-    let mut x355: u32 = 0;
> +-    let mut x356: u32 = 0;
> +     let (x355, x356) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
> +-    let mut x357: u32 = 0;
> +-    let mut x358: u32 = 0;
> +     let (x357, x358) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
> +-    let mut x359: u32 = 0;
> +-    let mut x360: u32 = 0;
> +     let (x359, x360) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
> +-    let mut x361: u32 = 0;
> +-    let mut x362: u32 = 0;
> +     let (x361, x362) = fiat_p384_scalar_mulx_u32(x347, 0xc7634d81);
> +-    let mut x363: u32 = 0;
> +-    let mut x364: u32 = 0;
> +     let (x363, x364) = fiat_p384_scalar_mulx_u32(x347, 0xf4372ddf);
> +-    let mut x365: u32 = 0;
> +-    let mut x366: u32 = 0;
> +     let (x365, x366) = fiat_p384_scalar_mulx_u32(x347, 0x581a0db2);
> +-    let mut x367: u32 = 0;
> +-    let mut x368: u32 = 0;
> +     let (x367, x368) = fiat_p384_scalar_mulx_u32(x347, 0x48b0a77a);
> +-    let mut x369: u32 = 0;
> +-    let mut x370: u32 = 0;
> +     let (x369, x370) = fiat_p384_scalar_mulx_u32(x347, 0xecec196a);
> +-    let mut x371: u32 = 0;
> +-    let mut x372: u32 = 0;
> +     let (x371, x372) = fiat_p384_scalar_mulx_u32(x347, 0xccc52973);
> +-    let mut x373: u32 = 0;
> +-    let mut x374: fiat_p384_scalar_u1 = 0;
> +     let (x373, x374) = fiat_p384_scalar_addcarryx_u32(0x0, x372, x369);
> +-    let mut x375: u32 = 0;
> +-    let mut x376: fiat_p384_scalar_u1 = 0;
> +     let (x375, x376) = fiat_p384_scalar_addcarryx_u32(x374, x370, x367);
> +-    let mut x377: u32 = 0;
> +-    let mut x378: fiat_p384_scalar_u1 = 0;
> +     let (x377, x378) = fiat_p384_scalar_addcarryx_u32(x376, x368, x365);
> +-    let mut x379: u32 = 0;
> +-    let mut x380: fiat_p384_scalar_u1 = 0;
> +     let (x379, x380) = fiat_p384_scalar_addcarryx_u32(x378, x366, x363);
> +-    let mut x381: u32 = 0;
> +-    let mut x382: fiat_p384_scalar_u1 = 0;
> +     let (x381, x382) = fiat_p384_scalar_addcarryx_u32(x380, x364, x361);
> +-    let mut x383: u32 = 0;
> +-    let mut x384: fiat_p384_scalar_u1 = 0;
> +     let (x383, x384) = fiat_p384_scalar_addcarryx_u32(x382, x362, x359);
> +-    let mut x385: u32 = 0;
> +-    let mut x386: fiat_p384_scalar_u1 = 0;
> +     let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x360, x357);
> +-    let mut x387: u32 = 0;
> +-    let mut x388: fiat_p384_scalar_u1 = 0;
> +     let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x358, x355);
> +-    let mut x389: u32 = 0;
> +-    let mut x390: fiat_p384_scalar_u1 = 0;
> +     let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x356, x353);
> +-    let mut x391: u32 = 0;
> +-    let mut x392: fiat_p384_scalar_u1 = 0;
> +     let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x354, x351);
> +-    let mut x393: u32 = 0;
> +-    let mut x394: fiat_p384_scalar_u1 = 0;
> +     let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x352, x349);
> +-    let mut x395: u32 = 0;
> +-    let mut x396: fiat_p384_scalar_u1 = 0;
> +     let (x395, x396) = fiat_p384_scalar_addcarryx_u32(0x0, x323, x371);
> +-    let mut x397: u32 = 0;
> +-    let mut x398: fiat_p384_scalar_u1 = 0;
> +     let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x325, x373);
> +-    let mut x399: u32 = 0;
> +-    let mut x400: fiat_p384_scalar_u1 = 0;
> +     let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x327, x375);
> +-    let mut x401: u32 = 0;
> +-    let mut x402: fiat_p384_scalar_u1 = 0;
> +     let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x329, x377);
> +-    let mut x403: u32 = 0;
> +-    let mut x404: fiat_p384_scalar_u1 = 0;
> +     let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x331, x379);
> +-    let mut x405: u32 = 0;
> +-    let mut x406: fiat_p384_scalar_u1 = 0;
> +     let (x405, x406) = fiat_p384_scalar_addcarryx_u32(x404, x333, x381);
> +-    let mut x407: u32 = 0;
> +-    let mut x408: fiat_p384_scalar_u1 = 0;
> +     let (x407, x408) = fiat_p384_scalar_addcarryx_u32(x406, x335, x383);
> +-    let mut x409: u32 = 0;
> +-    let mut x410: fiat_p384_scalar_u1 = 0;
> +     let (x409, x410) = fiat_p384_scalar_addcarryx_u32(x408, x337, x385);
> +-    let mut x411: u32 = 0;
> +-    let mut x412: fiat_p384_scalar_u1 = 0;
> +     let (x411, x412) = fiat_p384_scalar_addcarryx_u32(x410, x339, x387);
> +-    let mut x413: u32 = 0;
> +-    let mut x414: fiat_p384_scalar_u1 = 0;
> +     let (x413, x414) = fiat_p384_scalar_addcarryx_u32(x412, x341, x389);
> +-    let mut x415: u32 = 0;
> +-    let mut x416: fiat_p384_scalar_u1 = 0;
> +     let (x415, x416) = fiat_p384_scalar_addcarryx_u32(x414, x343, x391);
> +-    let mut x417: u32 = 0;
> +-    let mut x418: fiat_p384_scalar_u1 = 0;
> +     let (x417, x418) = fiat_p384_scalar_addcarryx_u32(x416, x345, x393);
> +-    let mut x419: u32 = 0;
> +-    let mut x420: fiat_p384_scalar_u1 = 0;
> +     let (x419, x420) = fiat_p384_scalar_addcarryx_u32(
> +         x418,
> +         (((x346 as u32) + (x276 as u32)) + ((x322 as u32) + x278)),
> +         ((x394 as u32) + x350),
> +     );
> +-    let mut x421: u32 = 0;
> +-    let mut x422: u32 = 0;
> +     let (x421, x422) = fiat_p384_scalar_mulx_u32(x3, 0xc84ee01);
> +-    let mut x423: u32 = 0;
> +-    let mut x424: u32 = 0;
> +     let (x423, x424) = fiat_p384_scalar_mulx_u32(x3, 0x2b39bf21);
> +-    let mut x425: u32 = 0;
> +-    let mut x426: u32 = 0;
> +     let (x425, x426) = fiat_p384_scalar_mulx_u32(x3, 0x3fb05b7a);
> +-    let mut x427: u32 = 0;
> +-    let mut x428: u32 = 0;
> +     let (x427, x428) = fiat_p384_scalar_mulx_u32(x3, 0x28266895);
> +-    let mut x429: u32 = 0;
> +-    let mut x430: u32 = 0;
> +     let (x429, x430) = fiat_p384_scalar_mulx_u32(x3, 0xd40d4917);
> +-    let mut x431: u32 = 0;
> +-    let mut x432: u32 = 0;
> +     let (x431, x432) = fiat_p384_scalar_mulx_u32(x3, 0x4aab1cc5);
> +-    let mut x433: u32 = 0;
> +-    let mut x434: u32 = 0;
> +     let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, 0xbc3e483a);
> +-    let mut x435: u32 = 0;
> +-    let mut x436: u32 = 0;
> +     let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, 0xfcb82947);
> +-    let mut x437: u32 = 0;
> +-    let mut x438: u32 = 0;
> +     let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, 0xff3d81e5);
> +-    let mut x439: u32 = 0;
> +-    let mut x440: u32 = 0;
> +     let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, 0xdf1aa419);
> +-    let mut x441: u32 = 0;
> +-    let mut x442: u32 = 0;
> +     let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, 0x2d319b24);
> +-    let mut x443: u32 = 0;
> +-    let mut x444: u32 = 0;
> +     let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, 0x19b409a9);
> +-    let mut x445: u32 = 0;
> +-    let mut x446: fiat_p384_scalar_u1 = 0;
> +     let (x445, x446) = fiat_p384_scalar_addcarryx_u32(0x0, x444, x441);
> +-    let mut x447: u32 = 0;
> +-    let mut x448: fiat_p384_scalar_u1 = 0;
> +     let (x447, x448) = fiat_p384_scalar_addcarryx_u32(x446, x442, x439);
> +-    let mut x449: u32 = 0;
> +-    let mut x450: fiat_p384_scalar_u1 = 0;
> +     let (x449, x450) = fiat_p384_scalar_addcarryx_u32(x448, x440, x437);
> +-    let mut x451: u32 = 0;
> +-    let mut x452: fiat_p384_scalar_u1 = 0;
> +     let (x451, x452) = fiat_p384_scalar_addcarryx_u32(x450, x438, x435);
> +-    let mut x453: u32 = 0;
> +-    let mut x454: fiat_p384_scalar_u1 = 0;
> +     let (x453, x454) = fiat_p384_scalar_addcarryx_u32(x452, x436, x433);
> +-    let mut x455: u32 = 0;
> +-    let mut x456: fiat_p384_scalar_u1 = 0;
> +     let (x455, x456) = fiat_p384_scalar_addcarryx_u32(x454, x434, x431);
> +-    let mut x457: u32 = 0;
> +-    let mut x458: fiat_p384_scalar_u1 = 0;
> +     let (x457, x458) = fiat_p384_scalar_addcarryx_u32(x456, x432, x429);
> +-    let mut x459: u32 = 0;
> +-    let mut x460: fiat_p384_scalar_u1 = 0;
> +     let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x430, x427);
> +-    let mut x461: u32 = 0;
> +-    let mut x462: fiat_p384_scalar_u1 = 0;
> +     let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x428, x425);
> +-    let mut x463: u32 = 0;
> +-    let mut x464: fiat_p384_scalar_u1 = 0;
> +     let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x426, x423);
> +-    let mut x465: u32 = 0;
> +-    let mut x466: fiat_p384_scalar_u1 = 0;
> +     let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x424, x421);
> +-    let mut x467: u32 = 0;
> +-    let mut x468: fiat_p384_scalar_u1 = 0;
> +     let (x467, x468) = fiat_p384_scalar_addcarryx_u32(0x0, x397, x443);
> +-    let mut x469: u32 = 0;
> +-    let mut x470: fiat_p384_scalar_u1 = 0;
> +     let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x399, x445);
> +-    let mut x471: u32 = 0;
> +-    let mut x472: fiat_p384_scalar_u1 = 0;
> +     let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x401, x447);
> +-    let mut x473: u32 = 0;
> +-    let mut x474: fiat_p384_scalar_u1 = 0;
> +     let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x403, x449);
> +-    let mut x475: u32 = 0;
> +-    let mut x476: fiat_p384_scalar_u1 = 0;
> +     let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x405, x451);
> +-    let mut x477: u32 = 0;
> +-    let mut x478: fiat_p384_scalar_u1 = 0;
> +     let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x407, x453);
> +-    let mut x479: u32 = 0;
> +-    let mut x480: fiat_p384_scalar_u1 = 0;
> +     let (x479, x480) = fiat_p384_scalar_addcarryx_u32(x478, x409, x455);
> +-    let mut x481: u32 = 0;
> +-    let mut x482: fiat_p384_scalar_u1 = 0;
> +     let (x481, x482) = fiat_p384_scalar_addcarryx_u32(x480, x411, x457);
> +-    let mut x483: u32 = 0;
> +-    let mut x484: fiat_p384_scalar_u1 = 0;
> +     let (x483, x484) = fiat_p384_scalar_addcarryx_u32(x482, x413, x459);
> +-    let mut x485: u32 = 0;
> +-    let mut x486: fiat_p384_scalar_u1 = 0;
> +     let (x485, x486) = fiat_p384_scalar_addcarryx_u32(x484, x415, x461);
> +-    let mut x487: u32 = 0;
> +-    let mut x488: fiat_p384_scalar_u1 = 0;
> +     let (x487, x488) = fiat_p384_scalar_addcarryx_u32(x486, x417, x463);
> +-    let mut x489: u32 = 0;
> +-    let mut x490: fiat_p384_scalar_u1 = 0;
> +     let (x489, x490) = fiat_p384_scalar_addcarryx_u32(x488, x419, x465);
> +-    let mut x491: u32 = 0;
> +-    let mut x492: u32 = 0;
> +     let (x491, x492) = fiat_p384_scalar_mulx_u32(x467, 0xe88fdc45);
> +-    let mut x493: u32 = 0;
> +-    let mut x494: u32 = 0;
> +     let (x493, x494) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
> +-    let mut x495: u32 = 0;
> +-    let mut x496: u32 = 0;
> +     let (x495, x496) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
> +-    let mut x497: u32 = 0;
> +-    let mut x498: u32 = 0;
> +     let (x497, x498) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
> +-    let mut x499: u32 = 0;
> +-    let mut x500: u32 = 0;
> +     let (x499, x500) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
> +-    let mut x501: u32 = 0;
> +-    let mut x502: u32 = 0;
> +     let (x501, x502) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
> +-    let mut x503: u32 = 0;
> +-    let mut x504: u32 = 0;
> +     let (x503, x504) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
> +-    let mut x505: u32 = 0;
> +-    let mut x506: u32 = 0;
> +     let (x505, x506) = fiat_p384_scalar_mulx_u32(x491, 0xc7634d81);
> +-    let mut x507: u32 = 0;
> +-    let mut x508: u32 = 0;
> +     let (x507, x508) = fiat_p384_scalar_mulx_u32(x491, 0xf4372ddf);
> +-    let mut x509: u32 = 0;
> +-    let mut x510: u32 = 0;
> +     let (x509, x510) = fiat_p384_scalar_mulx_u32(x491, 0x581a0db2);
> +-    let mut x511: u32 = 0;
> +-    let mut x512: u32 = 0;
> +     let (x511, x512) = fiat_p384_scalar_mulx_u32(x491, 0x48b0a77a);
> +-    let mut x513: u32 = 0;
> +-    let mut x514: u32 = 0;
> +     let (x513, x514) = fiat_p384_scalar_mulx_u32(x491, 0xecec196a);
> +-    let mut x515: u32 = 0;
> +-    let mut x516: u32 = 0;
> +     let (x515, x516) = fiat_p384_scalar_mulx_u32(x491, 0xccc52973);
> +-    let mut x517: u32 = 0;
> +-    let mut x518: fiat_p384_scalar_u1 = 0;
> +     let (x517, x518) = fiat_p384_scalar_addcarryx_u32(0x0, x516, x513);
> +-    let mut x519: u32 = 0;
> +-    let mut x520: fiat_p384_scalar_u1 = 0;
> +     let (x519, x520) = fiat_p384_scalar_addcarryx_u32(x518, x514, x511);
> +-    let mut x521: u32 = 0;
> +-    let mut x522: fiat_p384_scalar_u1 = 0;
> +     let (x521, x522) = fiat_p384_scalar_addcarryx_u32(x520, x512, x509);
> +-    let mut x523: u32 = 0;
> +-    let mut x524: fiat_p384_scalar_u1 = 0;
> +     let (x523, x524) = fiat_p384_scalar_addcarryx_u32(x522, x510, x507);
> +-    let mut x525: u32 = 0;
> +-    let mut x526: fiat_p384_scalar_u1 = 0;
> +     let (x525, x526) = fiat_p384_scalar_addcarryx_u32(x524, x508, x505);
> +-    let mut x527: u32 = 0;
> +-    let mut x528: fiat_p384_scalar_u1 = 0;
> +     let (x527, x528) = fiat_p384_scalar_addcarryx_u32(x526, x506, x503);
> +-    let mut x529: u32 = 0;
> +-    let mut x530: fiat_p384_scalar_u1 = 0;
> +     let (x529, x530) = fiat_p384_scalar_addcarryx_u32(x528, x504, x501);
> +-    let mut x531: u32 = 0;
> +-    let mut x532: fiat_p384_scalar_u1 = 0;
> +     let (x531, x532) = fiat_p384_scalar_addcarryx_u32(x530, x502, x499);
> +-    let mut x533: u32 = 0;
> +-    let mut x534: fiat_p384_scalar_u1 = 0;
> +     let (x533, x534) = fiat_p384_scalar_addcarryx_u32(x532, x500, x497);
> +-    let mut x535: u32 = 0;
> +-    let mut x536: fiat_p384_scalar_u1 = 0;
> +     let (x535, x536) = fiat_p384_scalar_addcarryx_u32(x534, x498, x495);
> +-    let mut x537: u32 = 0;
> +-    let mut x538: fiat_p384_scalar_u1 = 0;
> +     let (x537, x538) = fiat_p384_scalar_addcarryx_u32(x536, x496, x493);
> +-    let mut x539: u32 = 0;
> +-    let mut x540: fiat_p384_scalar_u1 = 0;
> +     let (x539, x540) = fiat_p384_scalar_addcarryx_u32(0x0, x467, x515);
> +-    let mut x541: u32 = 0;
> +-    let mut x542: fiat_p384_scalar_u1 = 0;
> +     let (x541, x542) = fiat_p384_scalar_addcarryx_u32(x540, x469, x517);
> +-    let mut x543: u32 = 0;
> +-    let mut x544: fiat_p384_scalar_u1 = 0;
> +     let (x543, x544) = fiat_p384_scalar_addcarryx_u32(x542, x471, x519);
> +-    let mut x545: u32 = 0;
> +-    let mut x546: fiat_p384_scalar_u1 = 0;
> +     let (x545, x546) = fiat_p384_scalar_addcarryx_u32(x544, x473, x521);
> +-    let mut x547: u32 = 0;
> +-    let mut x548: fiat_p384_scalar_u1 = 0;
> +     let (x547, x548) = fiat_p384_scalar_addcarryx_u32(x546, x475, x523);
> +-    let mut x549: u32 = 0;
> +-    let mut x550: fiat_p384_scalar_u1 = 0;
> +     let (x549, x550) = fiat_p384_scalar_addcarryx_u32(x548, x477, x525);
> +-    let mut x551: u32 = 0;
> +-    let mut x552: fiat_p384_scalar_u1 = 0;
> +     let (x551, x552) = fiat_p384_scalar_addcarryx_u32(x550, x479, x527);
> +-    let mut x553: u32 = 0;
> +-    let mut x554: fiat_p384_scalar_u1 = 0;
> +     let (x553, x554) = fiat_p384_scalar_addcarryx_u32(x552, x481, x529);
> +-    let mut x555: u32 = 0;
> +-    let mut x556: fiat_p384_scalar_u1 = 0;
> +     let (x555, x556) = fiat_p384_scalar_addcarryx_u32(x554, x483, x531);
> +-    let mut x557: u32 = 0;
> +-    let mut x558: fiat_p384_scalar_u1 = 0;
> +     let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x485, x533);
> +-    let mut x559: u32 = 0;
> +-    let mut x560: fiat_p384_scalar_u1 = 0;
> +     let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x487, x535);
> +-    let mut x561: u32 = 0;
> +-    let mut x562: fiat_p384_scalar_u1 = 0;
> +     let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x489, x537);
> +-    let mut x563: u32 = 0;
> +-    let mut x564: fiat_p384_scalar_u1 = 0;
> +     let (x563, x564) = fiat_p384_scalar_addcarryx_u32(
> +         x562,
> +         (((x490 as u32) + (x420 as u32)) + ((x466 as u32) + x422)),
> +         ((x538 as u32) + x494),
> +     );
> +-    let mut x565: u32 = 0;
> +-    let mut x566: u32 = 0;
> +     let (x565, x566) = fiat_p384_scalar_mulx_u32(x4, 0xc84ee01);
> +-    let mut x567: u32 = 0;
> +-    let mut x568: u32 = 0;
> +     let (x567, x568) = fiat_p384_scalar_mulx_u32(x4, 0x2b39bf21);
> +-    let mut x569: u32 = 0;
> +-    let mut x570: u32 = 0;
> +     let (x569, x570) = fiat_p384_scalar_mulx_u32(x4, 0x3fb05b7a);
> +-    let mut x571: u32 = 0;
> +-    let mut x572: u32 = 0;
> +     let (x571, x572) = fiat_p384_scalar_mulx_u32(x4, 0x28266895);
> +-    let mut x573: u32 = 0;
> +-    let mut x574: u32 = 0;
> +     let (x573, x574) = fiat_p384_scalar_mulx_u32(x4, 0xd40d4917);
> +-    let mut x575: u32 = 0;
> +-    let mut x576: u32 = 0;
> +     let (x575, x576) = fiat_p384_scalar_mulx_u32(x4, 0x4aab1cc5);
> +-    let mut x577: u32 = 0;
> +-    let mut x578: u32 = 0;
> +     let (x577, x578) = fiat_p384_scalar_mulx_u32(x4, 0xbc3e483a);
> +-    let mut x579: u32 = 0;
> +-    let mut x580: u32 = 0;
> +     let (x579, x580) = fiat_p384_scalar_mulx_u32(x4, 0xfcb82947);
> +-    let mut x581: u32 = 0;
> +-    let mut x582: u32 = 0;
> +     let (x581, x582) = fiat_p384_scalar_mulx_u32(x4, 0xff3d81e5);
> +-    let mut x583: u32 = 0;
> +-    let mut x584: u32 = 0;
> +     let (x583, x584) = fiat_p384_scalar_mulx_u32(x4, 0xdf1aa419);
> +-    let mut x585: u32 = 0;
> +-    let mut x586: u32 = 0;
> +     let (x585, x586) = fiat_p384_scalar_mulx_u32(x4, 0x2d319b24);
> +-    let mut x587: u32 = 0;
> +-    let mut x588: u32 = 0;
> +     let (x587, x588) = fiat_p384_scalar_mulx_u32(x4, 0x19b409a9);
> +-    let mut x589: u32 = 0;
> +-    let mut x590: fiat_p384_scalar_u1 = 0;
> +     let (x589, x590) = fiat_p384_scalar_addcarryx_u32(0x0, x588, x585);
> +-    let mut x591: u32 = 0;
> +-    let mut x592: fiat_p384_scalar_u1 = 0;
> +     let (x591, x592) = fiat_p384_scalar_addcarryx_u32(x590, x586, x583);
> +-    let mut x593: u32 = 0;
> +-    let mut x594: fiat_p384_scalar_u1 = 0;
> +     let (x593, x594) = fiat_p384_scalar_addcarryx_u32(x592, x584, x581);
> +-    let mut x595: u32 = 0;
> +-    let mut x596: fiat_p384_scalar_u1 = 0;
> +     let (x595, x596) = fiat_p384_scalar_addcarryx_u32(x594, x582, x579);
> +-    let mut x597: u32 = 0;
> +-    let mut x598: fiat_p384_scalar_u1 = 0;
> +     let (x597, x598) = fiat_p384_scalar_addcarryx_u32(x596, x580, x577);
> +-    let mut x599: u32 = 0;
> +-    let mut x600: fiat_p384_scalar_u1 = 0;
> +     let (x599, x600) = fiat_p384_scalar_addcarryx_u32(x598, x578, x575);
> +-    let mut x601: u32 = 0;
> +-    let mut x602: fiat_p384_scalar_u1 = 0;
> +     let (x601, x602) = fiat_p384_scalar_addcarryx_u32(x600, x576, x573);
> +-    let mut x603: u32 = 0;
> +-    let mut x604: fiat_p384_scalar_u1 = 0;
> +     let (x603, x604) = fiat_p384_scalar_addcarryx_u32(x602, x574, x571);
> +-    let mut x605: u32 = 0;
> +-    let mut x606: fiat_p384_scalar_u1 = 0;
> +     let (x605, x606) = fiat_p384_scalar_addcarryx_u32(x604, x572, x569);
> +-    let mut x607: u32 = 0;
> +-    let mut x608: fiat_p384_scalar_u1 = 0;
> +     let (x607, x608) = fiat_p384_scalar_addcarryx_u32(x606, x570, x567);
> +-    let mut x609: u32 = 0;
> +-    let mut x610: fiat_p384_scalar_u1 = 0;
> +     let (x609, x610) = fiat_p384_scalar_addcarryx_u32(x608, x568, x565);
> +-    let mut x611: u32 = 0;
> +-    let mut x612: fiat_p384_scalar_u1 = 0;
> +     let (x611, x612) = fiat_p384_scalar_addcarryx_u32(0x0, x541, x587);
> +-    let mut x613: u32 = 0;
> +-    let mut x614: fiat_p384_scalar_u1 = 0;
> +     let (x613, x614) = fiat_p384_scalar_addcarryx_u32(x612, x543, x589);
> +-    let mut x615: u32 = 0;
> +-    let mut x616: fiat_p384_scalar_u1 = 0;
> +     let (x615, x616) = fiat_p384_scalar_addcarryx_u32(x614, x545, x591);
> +-    let mut x617: u32 = 0;
> +-    let mut x618: fiat_p384_scalar_u1 = 0;
> +     let (x617, x618) = fiat_p384_scalar_addcarryx_u32(x616, x547, x593);
> +-    let mut x619: u32 = 0;
> +-    let mut x620: fiat_p384_scalar_u1 = 0;
> +     let (x619, x620) = fiat_p384_scalar_addcarryx_u32(x618, x549, x595);
> +-    let mut x621: u32 = 0;
> +-    let mut x622: fiat_p384_scalar_u1 = 0;
> +     let (x621, x622) = fiat_p384_scalar_addcarryx_u32(x620, x551, x597);
> +-    let mut x623: u32 = 0;
> +-    let mut x624: fiat_p384_scalar_u1 = 0;
> +     let (x623, x624) = fiat_p384_scalar_addcarryx_u32(x622, x553, x599);
> +-    let mut x625: u32 = 0;
> +-    let mut x626: fiat_p384_scalar_u1 = 0;
> +     let (x625, x626) = fiat_p384_scalar_addcarryx_u32(x624, x555, x601);
> +-    let mut x627: u32 = 0;
> +-    let mut x628: fiat_p384_scalar_u1 = 0;
> +     let (x627, x628) = fiat_p384_scalar_addcarryx_u32(x626, x557, x603);
> +-    let mut x629: u32 = 0;
> +-    let mut x630: fiat_p384_scalar_u1 = 0;
> +     let (x629, x630) = fiat_p384_scalar_addcarryx_u32(x628, x559, x605);
> +-    let mut x631: u32 = 0;
> +-    let mut x632: fiat_p384_scalar_u1 = 0;
> +     let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x561, x607);
> +-    let mut x633: u32 = 0;
> +-    let mut x634: fiat_p384_scalar_u1 = 0;
> +     let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x563, x609);
> +-    let mut x635: u32 = 0;
> +-    let mut x636: u32 = 0;
> +     let (x635, x636) = fiat_p384_scalar_mulx_u32(x611, 0xe88fdc45);
> +-    let mut x637: u32 = 0;
> +-    let mut x638: u32 = 0;
> +     let (x637, x638) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
> +-    let mut x639: u32 = 0;
> +-    let mut x640: u32 = 0;
> +     let (x639, x640) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
> +-    let mut x641: u32 = 0;
> +-    let mut x642: u32 = 0;
> +     let (x641, x642) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
> +-    let mut x643: u32 = 0;
> +-    let mut x644: u32 = 0;
> +     let (x643, x644) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
> +-    let mut x645: u32 = 0;
> +-    let mut x646: u32 = 0;
> +     let (x645, x646) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
> +-    let mut x647: u32 = 0;
> +-    let mut x648: u32 = 0;
> +     let (x647, x648) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
> +-    let mut x649: u32 = 0;
> +-    let mut x650: u32 = 0;
> +     let (x649, x650) = fiat_p384_scalar_mulx_u32(x635, 0xc7634d81);
> +-    let mut x651: u32 = 0;
> +-    let mut x652: u32 = 0;
> +     let (x651, x652) = fiat_p384_scalar_mulx_u32(x635, 0xf4372ddf);
> +-    let mut x653: u32 = 0;
> +-    let mut x654: u32 = 0;
> +     let (x653, x654) = fiat_p384_scalar_mulx_u32(x635, 0x581a0db2);
> +-    let mut x655: u32 = 0;
> +-    let mut x656: u32 = 0;
> +     let (x655, x656) = fiat_p384_scalar_mulx_u32(x635, 0x48b0a77a);
> +-    let mut x657: u32 = 0;
> +-    let mut x658: u32 = 0;
> +     let (x657, x658) = fiat_p384_scalar_mulx_u32(x635, 0xecec196a);
> +-    let mut x659: u32 = 0;
> +-    let mut x660: u32 = 0;
> +     let (x659, x660) = fiat_p384_scalar_mulx_u32(x635, 0xccc52973);
> +-    let mut x661: u32 = 0;
> +-    let mut x662: fiat_p384_scalar_u1 = 0;
> +     let (x661, x662) = fiat_p384_scalar_addcarryx_u32(0x0, x660, x657);
> +-    let mut x663: u32 = 0;
> +-    let mut x664: fiat_p384_scalar_u1 = 0;
> +     let (x663, x664) = fiat_p384_scalar_addcarryx_u32(x662, x658, x655);
> +-    let mut x665: u32 = 0;
> +-    let mut x666: fiat_p384_scalar_u1 = 0;
> +     let (x665, x666) = fiat_p384_scalar_addcarryx_u32(x664, x656, x653);
> +-    let mut x667: u32 = 0;
> +-    let mut x668: fiat_p384_scalar_u1 = 0;
> +     let (x667, x668) = fiat_p384_scalar_addcarryx_u32(x666, x654, x651);
> +-    let mut x669: u32 = 0;
> +-    let mut x670: fiat_p384_scalar_u1 = 0;
> +     let (x669, x670) = fiat_p384_scalar_addcarryx_u32(x668, x652, x649);
> +-    let mut x671: u32 = 0;
> +-    let mut x672: fiat_p384_scalar_u1 = 0;
> +     let (x671, x672) = fiat_p384_scalar_addcarryx_u32(x670, x650, x647);
> +-    let mut x673: u32 = 0;
> +-    let mut x674: fiat_p384_scalar_u1 = 0;
> +     let (x673, x674) = fiat_p384_scalar_addcarryx_u32(x672, x648, x645);
> +-    let mut x675: u32 = 0;
> +-    let mut x676: fiat_p384_scalar_u1 = 0;
> +     let (x675, x676) = fiat_p384_scalar_addcarryx_u32(x674, x646, x643);
> +-    let mut x677: u32 = 0;
> +-    let mut x678: fiat_p384_scalar_u1 = 0;
> +     let (x677, x678) = fiat_p384_scalar_addcarryx_u32(x676, x644, x641);
> +-    let mut x679: u32 = 0;
> +-    let mut x680: fiat_p384_scalar_u1 = 0;
> +     let (x679, x680) = fiat_p384_scalar_addcarryx_u32(x678, x642, x639);
> +-    let mut x681: u32 = 0;
> +-    let mut x682: fiat_p384_scalar_u1 = 0;
> +     let (x681, x682) = fiat_p384_scalar_addcarryx_u32(x680, x640, x637);
> +-    let mut x683: u32 = 0;
> +-    let mut x684: fiat_p384_scalar_u1 = 0;
> +     let (x683, x684) = fiat_p384_scalar_addcarryx_u32(0x0, x611, x659);
> +-    let mut x685: u32 = 0;
> +-    let mut x686: fiat_p384_scalar_u1 = 0;
> +     let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x613, x661);
> +-    let mut x687: u32 = 0;
> +-    let mut x688: fiat_p384_scalar_u1 = 0;
> +     let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x615, x663);
> +-    let mut x689: u32 = 0;
> +-    let mut x690: fiat_p384_scalar_u1 = 0;
> +     let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x617, x665);
> +-    let mut x691: u32 = 0;
> +-    let mut x692: fiat_p384_scalar_u1 = 0;
> +     let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x619, x667);
> +-    let mut x693: u32 = 0;
> +-    let mut x694: fiat_p384_scalar_u1 = 0;
> +     let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x621, x669);
> +-    let mut x695: u32 = 0;
> +-    let mut x696: fiat_p384_scalar_u1 = 0;
> +     let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x623, x671);
> +-    let mut x697: u32 = 0;
> +-    let mut x698: fiat_p384_scalar_u1 = 0;
> +     let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x625, x673);
> +-    let mut x699: u32 = 0;
> +-    let mut x700: fiat_p384_scalar_u1 = 0;
> +     let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x627, x675);
> +-    let mut x701: u32 = 0;
> +-    let mut x702: fiat_p384_scalar_u1 = 0;
> +     let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x629, x677);
> +-    let mut x703: u32 = 0;
> +-    let mut x704: fiat_p384_scalar_u1 = 0;
> +     let (x703, x704) = fiat_p384_scalar_addcarryx_u32(x702, x631, x679);
> +-    let mut x705: u32 = 0;
> +-    let mut x706: fiat_p384_scalar_u1 = 0;
> +     let (x705, x706) = fiat_p384_scalar_addcarryx_u32(x704, x633, x681);
> +-    let mut x707: u32 = 0;
> +-    let mut x708: fiat_p384_scalar_u1 = 0;
> +     let (x707, x708) = fiat_p384_scalar_addcarryx_u32(
> +         x706,
> +         (((x634 as u32) + (x564 as u32)) + ((x610 as u32) + x566)),
> +         ((x682 as u32) + x638),
> +     );
> +-    let mut x709: u32 = 0;
> +-    let mut x710: u32 = 0;
> +     let (x709, x710) = fiat_p384_scalar_mulx_u32(x5, 0xc84ee01);
> +-    let mut x711: u32 = 0;
> +-    let mut x712: u32 = 0;
> +     let (x711, x712) = fiat_p384_scalar_mulx_u32(x5, 0x2b39bf21);
> +-    let mut x713: u32 = 0;
> +-    let mut x714: u32 = 0;
> +     let (x713, x714) = fiat_p384_scalar_mulx_u32(x5, 0x3fb05b7a);
> +-    let mut x715: u32 = 0;
> +-    let mut x716: u32 = 0;
> +     let (x715, x716) = fiat_p384_scalar_mulx_u32(x5, 0x28266895);
> +-    let mut x717: u32 = 0;
> +-    let mut x718: u32 = 0;
> +     let (x717, x718) = fiat_p384_scalar_mulx_u32(x5, 0xd40d4917);
> +-    let mut x719: u32 = 0;
> +-    let mut x720: u32 = 0;
> +     let (x719, x720) = fiat_p384_scalar_mulx_u32(x5, 0x4aab1cc5);
> +-    let mut x721: u32 = 0;
> +-    let mut x722: u32 = 0;
> +     let (x721, x722) = fiat_p384_scalar_mulx_u32(x5, 0xbc3e483a);
> +-    let mut x723: u32 = 0;
> +-    let mut x724: u32 = 0;
> +     let (x723, x724) = fiat_p384_scalar_mulx_u32(x5, 0xfcb82947);
> +-    let mut x725: u32 = 0;
> +-    let mut x726: u32 = 0;
> +     let (x725, x726) = fiat_p384_scalar_mulx_u32(x5, 0xff3d81e5);
> +-    let mut x727: u32 = 0;
> +-    let mut x728: u32 = 0;
> +     let (x727, x728) = fiat_p384_scalar_mulx_u32(x5, 0xdf1aa419);
> +-    let mut x729: u32 = 0;
> +-    let mut x730: u32 = 0;
> +     let (x729, x730) = fiat_p384_scalar_mulx_u32(x5, 0x2d319b24);
> +-    let mut x731: u32 = 0;
> +-    let mut x732: u32 = 0;
> +     let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, 0x19b409a9);
> +-    let mut x733: u32 = 0;
> +-    let mut x734: fiat_p384_scalar_u1 = 0;
> +     let (x733, x734) = fiat_p384_scalar_addcarryx_u32(0x0, x732, x729);
> +-    let mut x735: u32 = 0;
> +-    let mut x736: fiat_p384_scalar_u1 = 0;
> +     let (x735, x736) = fiat_p384_scalar_addcarryx_u32(x734, x730, x727);
> +-    let mut x737: u32 = 0;
> +-    let mut x738: fiat_p384_scalar_u1 = 0;
> +     let (x737, x738) = fiat_p384_scalar_addcarryx_u32(x736, x728, x725);
> +-    let mut x739: u32 = 0;
> +-    let mut x740: fiat_p384_scalar_u1 = 0;
> +     let (x739, x740) = fiat_p384_scalar_addcarryx_u32(x738, x726, x723);
> +-    let mut x741: u32 = 0;
> +-    let mut x742: fiat_p384_scalar_u1 = 0;
> +     let (x741, x742) = fiat_p384_scalar_addcarryx_u32(x740, x724, x721);
> +-    let mut x743: u32 = 0;
> +-    let mut x744: fiat_p384_scalar_u1 = 0;
> +     let (x743, x744) = fiat_p384_scalar_addcarryx_u32(x742, x722, x719);
> +-    let mut x745: u32 = 0;
> +-    let mut x746: fiat_p384_scalar_u1 = 0;
> +     let (x745, x746) = fiat_p384_scalar_addcarryx_u32(x744, x720, x717);
> +-    let mut x747: u32 = 0;
> +-    let mut x748: fiat_p384_scalar_u1 = 0;
> +     let (x747, x748) = fiat_p384_scalar_addcarryx_u32(x746, x718, x715);
> +-    let mut x749: u32 = 0;
> +-    let mut x750: fiat_p384_scalar_u1 = 0;
> +     let (x749, x750) = fiat_p384_scalar_addcarryx_u32(x748, x716, x713);
> +-    let mut x751: u32 = 0;
> +-    let mut x752: fiat_p384_scalar_u1 = 0;
> +     let (x751, x752) = fiat_p384_scalar_addcarryx_u32(x750, x714, x711);
> +-    let mut x753: u32 = 0;
> +-    let mut x754: fiat_p384_scalar_u1 = 0;
> +     let (x753, x754) = fiat_p384_scalar_addcarryx_u32(x752, x712, x709);
> +-    let mut x755: u32 = 0;
> +-    let mut x756: fiat_p384_scalar_u1 = 0;
> +     let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x685, x731);
> +-    let mut x757: u32 = 0;
> +-    let mut x758: fiat_p384_scalar_u1 = 0;
> +     let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x687, x733);
> +-    let mut x759: u32 = 0;
> +-    let mut x760: fiat_p384_scalar_u1 = 0;
> +     let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x689, x735);
> +-    let mut x761: u32 = 0;
> +-    let mut x762: fiat_p384_scalar_u1 = 0;
> +     let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x691, x737);
> +-    let mut x763: u32 = 0;
> +-    let mut x764: fiat_p384_scalar_u1 = 0;
> +     let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x693, x739);
> +-    let mut x765: u32 = 0;
> +-    let mut x766: fiat_p384_scalar_u1 = 0;
> +     let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x695, x741);
> +-    let mut x767: u32 = 0;
> +-    let mut x768: fiat_p384_scalar_u1 = 0;
> +     let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x697, x743);
> +-    let mut x769: u32 = 0;
> +-    let mut x770: fiat_p384_scalar_u1 = 0;
> +     let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x699, x745);
> +-    let mut x771: u32 = 0;
> +-    let mut x772: fiat_p384_scalar_u1 = 0;
> +     let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x701, x747);
> +-    let mut x773: u32 = 0;
> +-    let mut x774: fiat_p384_scalar_u1 = 0;
> +     let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x703, x749);
> +-    let mut x775: u32 = 0;
> +-    let mut x776: fiat_p384_scalar_u1 = 0;
> +     let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x705, x751);
> +-    let mut x777: u32 = 0;
> +-    let mut x778: fiat_p384_scalar_u1 = 0;
> +     let (x777, x778) = fiat_p384_scalar_addcarryx_u32(x776, x707, x753);
> +-    let mut x779: u32 = 0;
> +-    let mut x780: u32 = 0;
> +     let (x779, x780) = fiat_p384_scalar_mulx_u32(x755, 0xe88fdc45);
> +-    let mut x781: u32 = 0;
> +-    let mut x782: u32 = 0;
> +     let (x781, x782) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
> +-    let mut x783: u32 = 0;
> +-    let mut x784: u32 = 0;
> +     let (x783, x784) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
> +-    let mut x785: u32 = 0;
> +-    let mut x786: u32 = 0;
> +     let (x785, x786) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
> +-    let mut x787: u32 = 0;
> +-    let mut x788: u32 = 0;
> +     let (x787, x788) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
> +-    let mut x789: u32 = 0;
> +-    let mut x790: u32 = 0;
> +     let (x789, x790) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
> +-    let mut x791: u32 = 0;
> +-    let mut x792: u32 = 0;
> +     let (x791, x792) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
> +-    let mut x793: u32 = 0;
> +-    let mut x794: u32 = 0;
> +     let (x793, x794) = fiat_p384_scalar_mulx_u32(x779, 0xc7634d81);
> +-    let mut x795: u32 = 0;
> +-    let mut x796: u32 = 0;
> +     let (x795, x796) = fiat_p384_scalar_mulx_u32(x779, 0xf4372ddf);
> +-    let mut x797: u32 = 0;
> +-    let mut x798: u32 = 0;
> +     let (x797, x798) = fiat_p384_scalar_mulx_u32(x779, 0x581a0db2);
> +-    let mut x799: u32 = 0;
> +-    let mut x800: u32 = 0;
> +     let (x799, x800) = fiat_p384_scalar_mulx_u32(x779, 0x48b0a77a);
> +-    let mut x801: u32 = 0;
> +-    let mut x802: u32 = 0;
> +     let (x801, x802) = fiat_p384_scalar_mulx_u32(x779, 0xecec196a);
> +-    let mut x803: u32 = 0;
> +-    let mut x804: u32 = 0;
> +     let (x803, x804) = fiat_p384_scalar_mulx_u32(x779, 0xccc52973);
> +-    let mut x805: u32 = 0;
> +-    let mut x806: fiat_p384_scalar_u1 = 0;
> +     let (x805, x806) = fiat_p384_scalar_addcarryx_u32(0x0, x804, x801);
> +-    let mut x807: u32 = 0;
> +-    let mut x808: fiat_p384_scalar_u1 = 0;
> +     let (x807, x808) = fiat_p384_scalar_addcarryx_u32(x806, x802, x799);
> +-    let mut x809: u32 = 0;
> +-    let mut x810: fiat_p384_scalar_u1 = 0;
> +     let (x809, x810) = fiat_p384_scalar_addcarryx_u32(x808, x800, x797);
> +-    let mut x811: u32 = 0;
> +-    let mut x812: fiat_p384_scalar_u1 = 0;
> +     let (x811, x812) = fiat_p384_scalar_addcarryx_u32(x810, x798, x795);
> +-    let mut x813: u32 = 0;
> +-    let mut x814: fiat_p384_scalar_u1 = 0;
> +     let (x813, x814) = fiat_p384_scalar_addcarryx_u32(x812, x796, x793);
> +-    let mut x815: u32 = 0;
> +-    let mut x816: fiat_p384_scalar_u1 = 0;
> +     let (x815, x816) = fiat_p384_scalar_addcarryx_u32(x814, x794, x791);
> +-    let mut x817: u32 = 0;
> +-    let mut x818: fiat_p384_scalar_u1 = 0;
> +     let (x817, x818) = fiat_p384_scalar_addcarryx_u32(x816, x792, x789);
> +-    let mut x819: u32 = 0;
> +-    let mut x820: fiat_p384_scalar_u1 = 0;
> +     let (x819, x820) = fiat_p384_scalar_addcarryx_u32(x818, x790, x787);
> +-    let mut x821: u32 = 0;
> +-    let mut x822: fiat_p384_scalar_u1 = 0;
> +     let (x821, x822) = fiat_p384_scalar_addcarryx_u32(x820, x788, x785);
> +-    let mut x823: u32 = 0;
> +-    let mut x824: fiat_p384_scalar_u1 = 0;
> +     let (x823, x824) = fiat_p384_scalar_addcarryx_u32(x822, x786, x783);
> +-    let mut x825: u32 = 0;
> +-    let mut x826: fiat_p384_scalar_u1 = 0;
> +     let (x825, x826) = fiat_p384_scalar_addcarryx_u32(x824, x784, x781);
> +-    let mut x827: u32 = 0;
> +-    let mut x828: fiat_p384_scalar_u1 = 0;
> +     let (x827, x828) = fiat_p384_scalar_addcarryx_u32(0x0, x755, x803);
> +-    let mut x829: u32 = 0;
> +-    let mut x830: fiat_p384_scalar_u1 = 0;
> +     let (x829, x830) = fiat_p384_scalar_addcarryx_u32(x828, x757, x805);
> +-    let mut x831: u32 = 0;
> +-    let mut x832: fiat_p384_scalar_u1 = 0;
> +     let (x831, x832) = fiat_p384_scalar_addcarryx_u32(x830, x759, x807);
> +-    let mut x833: u32 = 0;
> +-    let mut x834: fiat_p384_scalar_u1 = 0;
> +     let (x833, x834) = fiat_p384_scalar_addcarryx_u32(x832, x761, x809);
> +-    let mut x835: u32 = 0;
> +-    let mut x836: fiat_p384_scalar_u1 = 0;
> +     let (x835, x836) = fiat_p384_scalar_addcarryx_u32(x834, x763, x811);
> +-    let mut x837: u32 = 0;
> +-    let mut x838: fiat_p384_scalar_u1 = 0;
> +     let (x837, x838) = fiat_p384_scalar_addcarryx_u32(x836, x765, x813);
> +-    let mut x839: u32 = 0;
> +-    let mut x840: fiat_p384_scalar_u1 = 0;
> +     let (x839, x840) = fiat_p384_scalar_addcarryx_u32(x838, x767, x815);
> +-    let mut x841: u32 = 0;
> +-    let mut x842: fiat_p384_scalar_u1 = 0;
> +     let (x841, x842) = fiat_p384_scalar_addcarryx_u32(x840, x769, x817);
> +-    let mut x843: u32 = 0;
> +-    let mut x844: fiat_p384_scalar_u1 = 0;
> +     let (x843, x844) = fiat_p384_scalar_addcarryx_u32(x842, x771, x819);
> +-    let mut x845: u32 = 0;
> +-    let mut x846: fiat_p384_scalar_u1 = 0;
> +     let (x845, x846) = fiat_p384_scalar_addcarryx_u32(x844, x773, x821);
> +-    let mut x847: u32 = 0;
> +-    let mut x848: fiat_p384_scalar_u1 = 0;
> +     let (x847, x848) = fiat_p384_scalar_addcarryx_u32(x846, x775, x823);
> +-    let mut x849: u32 = 0;
> +-    let mut x850: fiat_p384_scalar_u1 = 0;
> +     let (x849, x850) = fiat_p384_scalar_addcarryx_u32(x848, x777, x825);
> +-    let mut x851: u32 = 0;
> +-    let mut x852: fiat_p384_scalar_u1 = 0;
> +     let (x851, x852) = fiat_p384_scalar_addcarryx_u32(
> +         x850,
> +         (((x778 as u32) + (x708 as u32)) + ((x754 as u32) + x710)),
> +         ((x826 as u32) + x782),
> +     );
> +-    let mut x853: u32 = 0;
> +-    let mut x854: u32 = 0;
> +     let (x853, x854) = fiat_p384_scalar_mulx_u32(x6, 0xc84ee01);
> +-    let mut x855: u32 = 0;
> +-    let mut x856: u32 = 0;
> +     let (x855, x856) = fiat_p384_scalar_mulx_u32(x6, 0x2b39bf21);
> +-    let mut x857: u32 = 0;
> +-    let mut x858: u32 = 0;
> +     let (x857, x858) = fiat_p384_scalar_mulx_u32(x6, 0x3fb05b7a);
> +-    let mut x859: u32 = 0;
> +-    let mut x860: u32 = 0;
> +     let (x859, x860) = fiat_p384_scalar_mulx_u32(x6, 0x28266895);
> +-    let mut x861: u32 = 0;
> +-    let mut x862: u32 = 0;
> +     let (x861, x862) = fiat_p384_scalar_mulx_u32(x6, 0xd40d4917);
> +-    let mut x863: u32 = 0;
> +-    let mut x864: u32 = 0;
> +     let (x863, x864) = fiat_p384_scalar_mulx_u32(x6, 0x4aab1cc5);
> +-    let mut x865: u32 = 0;
> +-    let mut x866: u32 = 0;
> +     let (x865, x866) = fiat_p384_scalar_mulx_u32(x6, 0xbc3e483a);
> +-    let mut x867: u32 = 0;
> +-    let mut x868: u32 = 0;
> +     let (x867, x868) = fiat_p384_scalar_mulx_u32(x6, 0xfcb82947);
> +-    let mut x869: u32 = 0;
> +-    let mut x870: u32 = 0;
> +     let (x869, x870) = fiat_p384_scalar_mulx_u32(x6, 0xff3d81e5);
> +-    let mut x871: u32 = 0;
> +-    let mut x872: u32 = 0;
> +     let (x871, x872) = fiat_p384_scalar_mulx_u32(x6, 0xdf1aa419);
> +-    let mut x873: u32 = 0;
> +-    let mut x874: u32 = 0;
> +     let (x873, x874) = fiat_p384_scalar_mulx_u32(x6, 0x2d319b24);
> +-    let mut x875: u32 = 0;
> +-    let mut x876: u32 = 0;
> +     let (x875, x876) = fiat_p384_scalar_mulx_u32(x6, 0x19b409a9);
> +-    let mut x877: u32 = 0;
> +-    let mut x878: fiat_p384_scalar_u1 = 0;
> +     let (x877, x878) = fiat_p384_scalar_addcarryx_u32(0x0, x876, x873);
> +-    let mut x879: u32 = 0;
> +-    let mut x880: fiat_p384_scalar_u1 = 0;
> +     let (x879, x880) = fiat_p384_scalar_addcarryx_u32(x878, x874, x871);
> +-    let mut x881: u32 = 0;
> +-    let mut x882: fiat_p384_scalar_u1 = 0;
> +     let (x881, x882) = fiat_p384_scalar_addcarryx_u32(x880, x872, x869);
> +-    let mut x883: u32 = 0;
> +-    let mut x884: fiat_p384_scalar_u1 = 0;
> +     let (x883, x884) = fiat_p384_scalar_addcarryx_u32(x882, x870, x867);
> +-    let mut x885: u32 = 0;
> +-    let mut x886: fiat_p384_scalar_u1 = 0;
> +     let (x885, x886) = fiat_p384_scalar_addcarryx_u32(x884, x868, x865);
> +-    let mut x887: u32 = 0;
> +-    let mut x888: fiat_p384_scalar_u1 = 0;
> +     let (x887, x888) = fiat_p384_scalar_addcarryx_u32(x886, x866, x863);
> +-    let mut x889: u32 = 0;
> +-    let mut x890: fiat_p384_scalar_u1 = 0;
> +     let (x889, x890) = fiat_p384_scalar_addcarryx_u32(x888, x864, x861);
> +-    let mut x891: u32 = 0;
> +-    let mut x892: fiat_p384_scalar_u1 = 0;
> +     let (x891, x892) = fiat_p384_scalar_addcarryx_u32(x890, x862, x859);
> +-    let mut x893: u32 = 0;
> +-    let mut x894: fiat_p384_scalar_u1 = 0;
> +     let (x893, x894) = fiat_p384_scalar_addcarryx_u32(x892, x860, x857);
> +-    let mut x895: u32 = 0;
> +-    let mut x896: fiat_p384_scalar_u1 = 0;
> +     let (x895, x896) = fiat_p384_scalar_addcarryx_u32(x894, x858, x855);
> +-    let mut x897: u32 = 0;
> +-    let mut x898: fiat_p384_scalar_u1 = 0;
> +     let (x897, x898) = fiat_p384_scalar_addcarryx_u32(x896, x856, x853);
> +-    let mut x899: u32 = 0;
> +-    let mut x900: fiat_p384_scalar_u1 = 0;
> +     let (x899, x900) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x875);
> +-    let mut x901: u32 = 0;
> +-    let mut x902: fiat_p384_scalar_u1 = 0;
> +     let (x901, x902) = fiat_p384_scalar_addcarryx_u32(x900, x831, x877);
> +-    let mut x903: u32 = 0;
> +-    let mut x904: fiat_p384_scalar_u1 = 0;
> +     let (x903, x904) = fiat_p384_scalar_addcarryx_u32(x902, x833, x879);
> +-    let mut x905: u32 = 0;
> +-    let mut x906: fiat_p384_scalar_u1 = 0;
> +     let (x905, x906) = fiat_p384_scalar_addcarryx_u32(x904, x835, x881);
> +-    let mut x907: u32 = 0;
> +-    let mut x908: fiat_p384_scalar_u1 = 0;
> +     let (x907, x908) = fiat_p384_scalar_addcarryx_u32(x906, x837, x883);
> +-    let mut x909: u32 = 0;
> +-    let mut x910: fiat_p384_scalar_u1 = 0;
> +     let (x909, x910) = fiat_p384_scalar_addcarryx_u32(x908, x839, x885);
> +-    let mut x911: u32 = 0;
> +-    let mut x912: fiat_p384_scalar_u1 = 0;
> +     let (x911, x912) = fiat_p384_scalar_addcarryx_u32(x910, x841, x887);
> +-    let mut x913: u32 = 0;
> +-    let mut x914: fiat_p384_scalar_u1 = 0;
> +     let (x913, x914) = fiat_p384_scalar_addcarryx_u32(x912, x843, x889);
> +-    let mut x915: u32 = 0;
> +-    let mut x916: fiat_p384_scalar_u1 = 0;
> +     let (x915, x916) = fiat_p384_scalar_addcarryx_u32(x914, x845, x891);
> +-    let mut x917: u32 = 0;
> +-    let mut x918: fiat_p384_scalar_u1 = 0;
> +     let (x917, x918) = fiat_p384_scalar_addcarryx_u32(x916, x847, x893);
> +-    let mut x919: u32 = 0;
> +-    let mut x920: fiat_p384_scalar_u1 = 0;
> +     let (x919, x920) = fiat_p384_scalar_addcarryx_u32(x918, x849, x895);
> +-    let mut x921: u32 = 0;
> +-    let mut x922: fiat_p384_scalar_u1 = 0;
> +     let (x921, x922) = fiat_p384_scalar_addcarryx_u32(x920, x851, x897);
> +-    let mut x923: u32 = 0;
> +-    let mut x924: u32 = 0;
> +     let (x923, x924) = fiat_p384_scalar_mulx_u32(x899, 0xe88fdc45);
> +-    let mut x925: u32 = 0;
> +-    let mut x926: u32 = 0;
> +     let (x925, x926) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
> +-    let mut x927: u32 = 0;
> +-    let mut x928: u32 = 0;
> +     let (x927, x928) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
> +-    let mut x929: u32 = 0;
> +-    let mut x930: u32 = 0;
> +     let (x929, x930) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
> +-    let mut x931: u32 = 0;
> +-    let mut x932: u32 = 0;
> +     let (x931, x932) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
> +-    let mut x933: u32 = 0;
> +-    let mut x934: u32 = 0;
> +     let (x933, x934) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
> +-    let mut x935: u32 = 0;
> +-    let mut x936: u32 = 0;
> +     let (x935, x936) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
> +-    let mut x937: u32 = 0;
> +-    let mut x938: u32 = 0;
> +     let (x937, x938) = fiat_p384_scalar_mulx_u32(x923, 0xc7634d81);
> +-    let mut x939: u32 = 0;
> +-    let mut x940: u32 = 0;
> +     let (x939, x940) = fiat_p384_scalar_mulx_u32(x923, 0xf4372ddf);
> +-    let mut x941: u32 = 0;
> +-    let mut x942: u32 = 0;
> +     let (x941, x942) = fiat_p384_scalar_mulx_u32(x923, 0x581a0db2);
> +-    let mut x943: u32 = 0;
> +-    let mut x944: u32 = 0;
> +     let (x943, x944) = fiat_p384_scalar_mulx_u32(x923, 0x48b0a77a);
> +-    let mut x945: u32 = 0;
> +-    let mut x946: u32 = 0;
> +     let (x945, x946) = fiat_p384_scalar_mulx_u32(x923, 0xecec196a);
> +-    let mut x947: u32 = 0;
> +-    let mut x948: u32 = 0;
> +     let (x947, x948) = fiat_p384_scalar_mulx_u32(x923, 0xccc52973);
> +-    let mut x949: u32 = 0;
> +-    let mut x950: fiat_p384_scalar_u1 = 0;
> +     let (x949, x950) = fiat_p384_scalar_addcarryx_u32(0x0, x948, x945);
> +-    let mut x951: u32 = 0;
> +-    let mut x952: fiat_p384_scalar_u1 = 0;
> +     let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x946, x943);
> +-    let mut x953: u32 = 0;
> +-    let mut x954: fiat_p384_scalar_u1 = 0;
> +     let (x953, x954) = fiat_p384_scalar_addcarryx_u32(x952, x944, x941);
> +-    let mut x955: u32 = 0;
> +-    let mut x956: fiat_p384_scalar_u1 = 0;
> +     let (x955, x956) = fiat_p384_scalar_addcarryx_u32(x954, x942, x939);
> +-    let mut x957: u32 = 0;
> +-    let mut x958: fiat_p384_scalar_u1 = 0;
> +     let (x957, x958) = fiat_p384_scalar_addcarryx_u32(x956, x940, x937);
> +-    let mut x959: u32 = 0;
> +-    let mut x960: fiat_p384_scalar_u1 = 0;
> +     let (x959, x960) = fiat_p384_scalar_addcarryx_u32(x958, x938, x935);
> +-    let mut x961: u32 = 0;
> +-    let mut x962: fiat_p384_scalar_u1 = 0;
> +     let (x961, x962) = fiat_p384_scalar_addcarryx_u32(x960, x936, x933);
> +-    let mut x963: u32 = 0;
> +-    let mut x964: fiat_p384_scalar_u1 = 0;
> +     let (x963, x964) = fiat_p384_scalar_addcarryx_u32(x962, x934, x931);
> +-    let mut x965: u32 = 0;
> +-    let mut x966: fiat_p384_scalar_u1 = 0;
> +     let (x965, x966) = fiat_p384_scalar_addcarryx_u32(x964, x932, x929);
> +-    let mut x967: u32 = 0;
> +-    let mut x968: fiat_p384_scalar_u1 = 0;
> +     let (x967, x968) = fiat_p384_scalar_addcarryx_u32(x966, x930, x927);
> +-    let mut x969: u32 = 0;
> +-    let mut x970: fiat_p384_scalar_u1 = 0;
> +     let (x969, x970) = fiat_p384_scalar_addcarryx_u32(x968, x928, x925);
> +-    let mut x971: u32 = 0;
> +-    let mut x972: fiat_p384_scalar_u1 = 0;
> +     let (x971, x972) = fiat_p384_scalar_addcarryx_u32(0x0, x899, x947);
> +-    let mut x973: u32 = 0;
> +-    let mut x974: fiat_p384_scalar_u1 = 0;
> +     let (x973, x974) = fiat_p384_scalar_addcarryx_u32(x972, x901, x949);
> +-    let mut x975: u32 = 0;
> +-    let mut x976: fiat_p384_scalar_u1 = 0;
> +     let (x975, x976) = fiat_p384_scalar_addcarryx_u32(x974, x903, x951);
> +-    let mut x977: u32 = 0;
> +-    let mut x978: fiat_p384_scalar_u1 = 0;
> +     let (x977, x978) = fiat_p384_scalar_addcarryx_u32(x976, x905, x953);
> +-    let mut x979: u32 = 0;
> +-    let mut x980: fiat_p384_scalar_u1 = 0;
> +     let (x979, x980) = fiat_p384_scalar_addcarryx_u32(x978, x907, x955);
> +-    let mut x981: u32 = 0;
> +-    let mut x982: fiat_p384_scalar_u1 = 0;
> +     let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x909, x957);
> +-    let mut x983: u32 = 0;
> +-    let mut x984: fiat_p384_scalar_u1 = 0;
> +     let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x911, x959);
> +-    let mut x985: u32 = 0;
> +-    let mut x986: fiat_p384_scalar_u1 = 0;
> +     let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x913, x961);
> +-    let mut x987: u32 = 0;
> +-    let mut x988: fiat_p384_scalar_u1 = 0;
> +     let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x915, x963);
> +-    let mut x989: u32 = 0;
> +-    let mut x990: fiat_p384_scalar_u1 = 0;
> +     let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x917, x965);
> +-    let mut x991: u32 = 0;
> +-    let mut x992: fiat_p384_scalar_u1 = 0;
> +     let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x919, x967);
> +-    let mut x993: u32 = 0;
> +-    let mut x994: fiat_p384_scalar_u1 = 0;
> +     let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x921, x969);
> +-    let mut x995: u32 = 0;
> +-    let mut x996: fiat_p384_scalar_u1 = 0;
> +     let (x995, x996) = fiat_p384_scalar_addcarryx_u32(
> +         x994,
> +         (((x922 as u32) + (x852 as u32)) + ((x898 as u32) + x854)),
> +         ((x970 as u32) + x926),
> +     );
> +-    let mut x997: u32 = 0;
> +-    let mut x998: u32 = 0;
> +     let (x997, x998) = fiat_p384_scalar_mulx_u32(x7, 0xc84ee01);
> +-    let mut x999: u32 = 0;
> +-    let mut x1000: u32 = 0;
> +     let (x999, x1000) = fiat_p384_scalar_mulx_u32(x7, 0x2b39bf21);
> +-    let mut x1001: u32 = 0;
> +-    let mut x1002: u32 = 0;
> +     let (x1001, x1002) = fiat_p384_scalar_mulx_u32(x7, 0x3fb05b7a);
> +-    let mut x1003: u32 = 0;
> +-    let mut x1004: u32 = 0;
> +     let (x1003, x1004) = fiat_p384_scalar_mulx_u32(x7, 0x28266895);
> +-    let mut x1005: u32 = 0;
> +-    let mut x1006: u32 = 0;
> +     let (x1005, x1006) = fiat_p384_scalar_mulx_u32(x7, 0xd40d4917);
> +-    let mut x1007: u32 = 0;
> +-    let mut x1008: u32 = 0;
> +     let (x1007, x1008) = fiat_p384_scalar_mulx_u32(x7, 0x4aab1cc5);
> +-    let mut x1009: u32 = 0;
> +-    let mut x1010: u32 = 0;
> +     let (x1009, x1010) = fiat_p384_scalar_mulx_u32(x7, 0xbc3e483a);
> +-    let mut x1011: u32 = 0;
> +-    let mut x1012: u32 = 0;
> +     let (x1011, x1012) = fiat_p384_scalar_mulx_u32(x7, 0xfcb82947);
> +-    let mut x1013: u32 = 0;
> +-    let mut x1014: u32 = 0;
> +     let (x1013, x1014) = fiat_p384_scalar_mulx_u32(x7, 0xff3d81e5);
> +-    let mut x1015: u32 = 0;
> +-    let mut x1016: u32 = 0;
> +     let (x1015, x1016) = fiat_p384_scalar_mulx_u32(x7, 0xdf1aa419);
> +-    let mut x1017: u32 = 0;
> +-    let mut x1018: u32 = 0;
> +     let (x1017, x1018) = fiat_p384_scalar_mulx_u32(x7, 0x2d319b24);
> +-    let mut x1019: u32 = 0;
> +-    let mut x1020: u32 = 0;
> +     let (x1019, x1020) = fiat_p384_scalar_mulx_u32(x7, 0x19b409a9);
> +-    let mut x1021: u32 = 0;
> +-    let mut x1022: fiat_p384_scalar_u1 = 0;
> +     let (x1021, x1022) = fiat_p384_scalar_addcarryx_u32(0x0, x1020, x1017);
> +-    let mut x1023: u32 = 0;
> +-    let mut x1024: fiat_p384_scalar_u1 = 0;
> +     let (x1023, x1024) = fiat_p384_scalar_addcarryx_u32(x1022, x1018, x1015);
> +-    let mut x1025: u32 = 0;
> +-    let mut x1026: fiat_p384_scalar_u1 = 0;
> +     let (x1025, x1026) = fiat_p384_scalar_addcarryx_u32(x1024, x1016, x1013);
> +-    let mut x1027: u32 = 0;
> +-    let mut x1028: fiat_p384_scalar_u1 = 0;
> +     let (x1027, x1028) = fiat_p384_scalar_addcarryx_u32(x1026, x1014, x1011);
> +-    let mut x1029: u32 = 0;
> +-    let mut x1030: fiat_p384_scalar_u1 = 0;
> +     let (x1029, x1030) = fiat_p384_scalar_addcarryx_u32(x1028, x1012, x1009);
> +-    let mut x1031: u32 = 0;
> +-    let mut x1032: fiat_p384_scalar_u1 = 0;
> +     let (x1031, x1032) = fiat_p384_scalar_addcarryx_u32(x1030, x1010, x1007);
> +-    let mut x1033: u32 = 0;
> +-    let mut x1034: fiat_p384_scalar_u1 = 0;
> +     let (x1033, x1034) = fiat_p384_scalar_addcarryx_u32(x1032, x1008, x1005);
> +-    let mut x1035: u32 = 0;
> +-    let mut x1036: fiat_p384_scalar_u1 = 0;
> +     let (x1035, x1036) = fiat_p384_scalar_addcarryx_u32(x1034, x1006, x1003);
> +-    let mut x1037: u32 = 0;
> +-    let mut x1038: fiat_p384_scalar_u1 = 0;
> +     let (x1037, x1038) = fiat_p384_scalar_addcarryx_u32(x1036, x1004, x1001);
> +-    let mut x1039: u32 = 0;
> +-    let mut x1040: fiat_p384_scalar_u1 = 0;
> +     let (x1039, x1040) = fiat_p384_scalar_addcarryx_u32(x1038, x1002, x999);
> +-    let mut x1041: u32 = 0;
> +-    let mut x1042: fiat_p384_scalar_u1 = 0;
> +     let (x1041, x1042) = fiat_p384_scalar_addcarryx_u32(x1040, x1000, x997);
> +-    let mut x1043: u32 = 0;
> +-    let mut x1044: fiat_p384_scalar_u1 = 0;
> +     let (x1043, x1044) = fiat_p384_scalar_addcarryx_u32(0x0, x973, x1019);
> +-    let mut x1045: u32 = 0;
> +-    let mut x1046: fiat_p384_scalar_u1 = 0;
> +     let (x1045, x1046) = fiat_p384_scalar_addcarryx_u32(x1044, x975, x1021);
> +-    let mut x1047: u32 = 0;
> +-    let mut x1048: fiat_p384_scalar_u1 = 0;
> +     let (x1047, x1048) = fiat_p384_scalar_addcarryx_u32(x1046, x977, x1023);
> +-    let mut x1049: u32 = 0;
> +-    let mut x1050: fiat_p384_scalar_u1 = 0;
> +     let (x1049, x1050) = fiat_p384_scalar_addcarryx_u32(x1048, x979, x1025);
> +-    let mut x1051: u32 = 0;
> +-    let mut x1052: fiat_p384_scalar_u1 = 0;
> +     let (x1051, x1052) = fiat_p384_scalar_addcarryx_u32(x1050, x981, x1027);
> +-    let mut x1053: u32 = 0;
> +-    let mut x1054: fiat_p384_scalar_u1 = 0;
> +     let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(x1052, x983, x1029);
> +-    let mut x1055: u32 = 0;
> +-    let mut x1056: fiat_p384_scalar_u1 = 0;
> +     let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x985, x1031);
> +-    let mut x1057: u32 = 0;
> +-    let mut x1058: fiat_p384_scalar_u1 = 0;
> +     let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x987, x1033);
> +-    let mut x1059: u32 = 0;
> +-    let mut x1060: fiat_p384_scalar_u1 = 0;
> +     let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x989, x1035);
> +-    let mut x1061: u32 = 0;
> +-    let mut x1062: fiat_p384_scalar_u1 = 0;
> +     let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x991, x1037);
> +-    let mut x1063: u32 = 0;
> +-    let mut x1064: fiat_p384_scalar_u1 = 0;
> +     let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x993, x1039);
> +-    let mut x1065: u32 = 0;
> +-    let mut x1066: fiat_p384_scalar_u1 = 0;
> +     let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x995, x1041);
> +-    let mut x1067: u32 = 0;
> +-    let mut x1068: u32 = 0;
> +     let (x1067, x1068) = fiat_p384_scalar_mulx_u32(x1043, 0xe88fdc45);
> +-    let mut x1069: u32 = 0;
> +-    let mut x1070: u32 = 0;
> +     let (x1069, x1070) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
> +-    let mut x1071: u32 = 0;
> +-    let mut x1072: u32 = 0;
> +     let (x1071, x1072) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
> +-    let mut x1073: u32 = 0;
> +-    let mut x1074: u32 = 0;
> +     let (x1073, x1074) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
> +-    let mut x1075: u32 = 0;
> +-    let mut x1076: u32 = 0;
> +     let (x1075, x1076) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
> +-    let mut x1077: u32 = 0;
> +-    let mut x1078: u32 = 0;
> +     let (x1077, x1078) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
> +-    let mut x1079: u32 = 0;
> +-    let mut x1080: u32 = 0;
> +     let (x1079, x1080) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
> +-    let mut x1081: u32 = 0;
> +-    let mut x1082: u32 = 0;
> +     let (x1081, x1082) = fiat_p384_scalar_mulx_u32(x1067, 0xc7634d81);
> +-    let mut x1083: u32 = 0;
> +-    let mut x1084: u32 = 0;
> +     let (x1083, x1084) = fiat_p384_scalar_mulx_u32(x1067, 0xf4372ddf);
> +-    let mut x1085: u32 = 0;
> +-    let mut x1086: u32 = 0;
> +     let (x1085, x1086) = fiat_p384_scalar_mulx_u32(x1067, 0x581a0db2);
> +-    let mut x1087: u32 = 0;
> +-    let mut x1088: u32 = 0;
> +     let (x1087, x1088) = fiat_p384_scalar_mulx_u32(x1067, 0x48b0a77a);
> +-    let mut x1089: u32 = 0;
> +-    let mut x1090: u32 = 0;
> +     let (x1089, x1090) = fiat_p384_scalar_mulx_u32(x1067, 0xecec196a);
> +-    let mut x1091: u32 = 0;
> +-    let mut x1092: u32 = 0;
> +     let (x1091, x1092) = fiat_p384_scalar_mulx_u32(x1067, 0xccc52973);
> +-    let mut x1093: u32 = 0;
> +-    let mut x1094: fiat_p384_scalar_u1 = 0;
> +     let (x1093, x1094) = fiat_p384_scalar_addcarryx_u32(0x0, x1092, x1089);
> +-    let mut x1095: u32 = 0;
> +-    let mut x1096: fiat_p384_scalar_u1 = 0;
> +     let (x1095, x1096) = fiat_p384_scalar_addcarryx_u32(x1094, x1090, x1087);
> +-    let mut x1097: u32 = 0;
> +-    let mut x1098: fiat_p384_scalar_u1 = 0;
> +     let (x1097, x1098) = fiat_p384_scalar_addcarryx_u32(x1096, x1088, x1085);
> +-    let mut x1099: u32 = 0;
> +-    let mut x1100: fiat_p384_scalar_u1 = 0;
> +     let (x1099, x1100) = fiat_p384_scalar_addcarryx_u32(x1098, x1086, x1083);
> +-    let mut x1101: u32 = 0;
> +-    let mut x1102: fiat_p384_scalar_u1 = 0;
> +     let (x1101, x1102) = fiat_p384_scalar_addcarryx_u32(x1100, x1084, x1081);
> +-    let mut x1103: u32 = 0;
> +-    let mut x1104: fiat_p384_scalar_u1 = 0;
> +     let (x1103, x1104) = fiat_p384_scalar_addcarryx_u32(x1102, x1082, x1079);
> +-    let mut x1105: u32 = 0;
> +-    let mut x1106: fiat_p384_scalar_u1 = 0;
> +     let (x1105, x1106) = fiat_p384_scalar_addcarryx_u32(x1104, x1080, x1077);
> +-    let mut x1107: u32 = 0;
> +-    let mut x1108: fiat_p384_scalar_u1 = 0;
> +     let (x1107, x1108) = fiat_p384_scalar_addcarryx_u32(x1106, x1078, x1075);
> +-    let mut x1109: u32 = 0;
> +-    let mut x1110: fiat_p384_scalar_u1 = 0;
> +     let (x1109, x1110) = fiat_p384_scalar_addcarryx_u32(x1108, x1076, x1073);
> +-    let mut x1111: u32 = 0;
> +-    let mut x1112: fiat_p384_scalar_u1 = 0;
> +     let (x1111, x1112) = fiat_p384_scalar_addcarryx_u32(x1110, x1074, x1071);
> +-    let mut x1113: u32 = 0;
> +-    let mut x1114: fiat_p384_scalar_u1 = 0;
> +     let (x1113, x1114) = fiat_p384_scalar_addcarryx_u32(x1112, x1072, x1069);
> +-    let mut x1115: u32 = 0;
> +-    let mut x1116: fiat_p384_scalar_u1 = 0;
> +     let (x1115, x1116) = fiat_p384_scalar_addcarryx_u32(0x0, x1043, x1091);
> +-    let mut x1117: u32 = 0;
> +-    let mut x1118: fiat_p384_scalar_u1 = 0;
> +     let (x1117, x1118) = fiat_p384_scalar_addcarryx_u32(x1116, x1045, x1093);
> +-    let mut x1119: u32 = 0;
> +-    let mut x1120: fiat_p384_scalar_u1 = 0;
> +     let (x1119, x1120) = fiat_p384_scalar_addcarryx_u32(x1118, x1047, x1095);
> +-    let mut x1121: u32 = 0;
> +-    let mut x1122: fiat_p384_scalar_u1 = 0;
> +     let (x1121, x1122) = fiat_p384_scalar_addcarryx_u32(x1120, x1049, x1097);
> +-    let mut x1123: u32 = 0;
> +-    let mut x1124: fiat_p384_scalar_u1 = 0;
> +     let (x1123, x1124) = fiat_p384_scalar_addcarryx_u32(x1122, x1051, x1099);
> +-    let mut x1125: u32 = 0;
> +-    let mut x1126: fiat_p384_scalar_u1 = 0;
> +     let (x1125, x1126) = fiat_p384_scalar_addcarryx_u32(x1124, x1053, x1101);
> +-    let mut x1127: u32 = 0;
> +-    let mut x1128: fiat_p384_scalar_u1 = 0;
> +     let (x1127, x1128) = fiat_p384_scalar_addcarryx_u32(x1126, x1055, x1103);
> +-    let mut x1129: u32 = 0;
> +-    let mut x1130: fiat_p384_scalar_u1 = 0;
> +     let (x1129, x1130) = fiat_p384_scalar_addcarryx_u32(x1128, x1057, x1105);
> +-    let mut x1131: u32 = 0;
> +-    let mut x1132: fiat_p384_scalar_u1 = 0;
> +     let (x1131, x1132) = fiat_p384_scalar_addcarryx_u32(x1130, x1059, x1107);
> +-    let mut x1133: u32 = 0;
> +-    let mut x1134: fiat_p384_scalar_u1 = 0;
> +     let (x1133, x1134) = fiat_p384_scalar_addcarryx_u32(x1132, x1061, x1109);
> +-    let mut x1135: u32 = 0;
> +-    let mut x1136: fiat_p384_scalar_u1 = 0;
> +     let (x1135, x1136) = fiat_p384_scalar_addcarryx_u32(x1134, x1063, x1111);
> +-    let mut x1137: u32 = 0;
> +-    let mut x1138: fiat_p384_scalar_u1 = 0;
> +     let (x1137, x1138) = fiat_p384_scalar_addcarryx_u32(x1136, x1065, x1113);
> +-    let mut x1139: u32 = 0;
> +-    let mut x1140: fiat_p384_scalar_u1 = 0;
> +     let (x1139, x1140) = fiat_p384_scalar_addcarryx_u32(
> +         x1138,
> +         (((x1066 as u32) + (x996 as u32)) + ((x1042 as u32) + x998)),
> +         ((x1114 as u32) + x1070),
> +     );
> +-    let mut x1141: u32 = 0;
> +-    let mut x1142: u32 = 0;
> +     let (x1141, x1142) = fiat_p384_scalar_mulx_u32(x8, 0xc84ee01);
> +-    let mut x1143: u32 = 0;
> +-    let mut x1144: u32 = 0;
> +     let (x1143, x1144) = fiat_p384_scalar_mulx_u32(x8, 0x2b39bf21);
> +-    let mut x1145: u32 = 0;
> +-    let mut x1146: u32 = 0;
> +     let (x1145, x1146) = fiat_p384_scalar_mulx_u32(x8, 0x3fb05b7a);
> +-    let mut x1147: u32 = 0;
> +-    let mut x1148: u32 = 0;
> +     let (x1147, x1148) = fiat_p384_scalar_mulx_u32(x8, 0x28266895);
> +-    let mut x1149: u32 = 0;
> +-    let mut x1150: u32 = 0;
> +     let (x1149, x1150) = fiat_p384_scalar_mulx_u32(x8, 0xd40d4917);
> +-    let mut x1151: u32 = 0;
> +-    let mut x1152: u32 = 0;
> +     let (x1151, x1152) = fiat_p384_scalar_mulx_u32(x8, 0x4aab1cc5);
> +-    let mut x1153: u32 = 0;
> +-    let mut x1154: u32 = 0;
> +     let (x1153, x1154) = fiat_p384_scalar_mulx_u32(x8, 0xbc3e483a);
> +-    let mut x1155: u32 = 0;
> +-    let mut x1156: u32 = 0;
> +     let (x1155, x1156) = fiat_p384_scalar_mulx_u32(x8, 0xfcb82947);
> +-    let mut x1157: u32 = 0;
> +-    let mut x1158: u32 = 0;
> +     let (x1157, x1158) = fiat_p384_scalar_mulx_u32(x8, 0xff3d81e5);
> +-    let mut x1159: u32 = 0;
> +-    let mut x1160: u32 = 0;
> +     let (x1159, x1160) = fiat_p384_scalar_mulx_u32(x8, 0xdf1aa419);
> +-    let mut x1161: u32 = 0;
> +-    let mut x1162: u32 = 0;
> +     let (x1161, x1162) = fiat_p384_scalar_mulx_u32(x8, 0x2d319b24);
> +-    let mut x1163: u32 = 0;
> +-    let mut x1164: u32 = 0;
> +     let (x1163, x1164) = fiat_p384_scalar_mulx_u32(x8, 0x19b409a9);
> +-    let mut x1165: u32 = 0;
> +-    let mut x1166: fiat_p384_scalar_u1 = 0;
> +     let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(0x0, x1164, x1161);
> +-    let mut x1167: u32 = 0;
> +-    let mut x1168: fiat_p384_scalar_u1 = 0;
> +     let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1162, x1159);
> +-    let mut x1169: u32 = 0;
> +-    let mut x1170: fiat_p384_scalar_u1 = 0;
> +     let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1160, x1157);
> +-    let mut x1171: u32 = 0;
> +-    let mut x1172: fiat_p384_scalar_u1 = 0;
> +     let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1158, x1155);
> +-    let mut x1173: u32 = 0;
> +-    let mut x1174: fiat_p384_scalar_u1 = 0;
> +     let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1156, x1153);
> +-    let mut x1175: u32 = 0;
> +-    let mut x1176: fiat_p384_scalar_u1 = 0;
> +     let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1154, x1151);
> +-    let mut x1177: u32 = 0;
> +-    let mut x1178: fiat_p384_scalar_u1 = 0;
> +     let (x1177, x1178) = fiat_p384_scalar_addcarryx_u32(x1176, x1152, x1149);
> +-    let mut x1179: u32 = 0;
> +-    let mut x1180: fiat_p384_scalar_u1 = 0;
> +     let (x1179, x1180) = fiat_p384_scalar_addcarryx_u32(x1178, x1150, x1147);
> +-    let mut x1181: u32 = 0;
> +-    let mut x1182: fiat_p384_scalar_u1 = 0;
> +     let (x1181, x1182) = fiat_p384_scalar_addcarryx_u32(x1180, x1148, x1145);
> +-    let mut x1183: u32 = 0;
> +-    let mut x1184: fiat_p384_scalar_u1 = 0;
> +     let (x1183, x1184) = fiat_p384_scalar_addcarryx_u32(x1182, x1146, x1143);
> +-    let mut x1185: u32 = 0;
> +-    let mut x1186: fiat_p384_scalar_u1 = 0;
> +     let (x1185, x1186) = fiat_p384_scalar_addcarryx_u32(x1184, x1144, x1141);
> +-    let mut x1187: u32 = 0;
> +-    let mut x1188: fiat_p384_scalar_u1 = 0;
> +     let (x1187, x1188) = fiat_p384_scalar_addcarryx_u32(0x0, x1117, x1163);
> +-    let mut x1189: u32 = 0;
> +-    let mut x1190: fiat_p384_scalar_u1 = 0;
> +     let (x1189, x1190) = fiat_p384_scalar_addcarryx_u32(x1188, x1119, x1165);
> +-    let mut x1191: u32 = 0;
> +-    let mut x1192: fiat_p384_scalar_u1 = 0;
> +     let (x1191, x1192) = fiat_p384_scalar_addcarryx_u32(x1190, x1121, x1167);
> +-    let mut x1193: u32 = 0;
> +-    let mut x1194: fiat_p384_scalar_u1 = 0;
> +     let (x1193, x1194) = fiat_p384_scalar_addcarryx_u32(x1192, x1123, x1169);
> +-    let mut x1195: u32 = 0;
> +-    let mut x1196: fiat_p384_scalar_u1 = 0;
> +     let (x1195, x1196) = fiat_p384_scalar_addcarryx_u32(x1194, x1125, x1171);
> +-    let mut x1197: u32 = 0;
> +-    let mut x1198: fiat_p384_scalar_u1 = 0;
> +     let (x1197, x1198) = fiat_p384_scalar_addcarryx_u32(x1196, x1127, x1173);
> +-    let mut x1199: u32 = 0;
> +-    let mut x1200: fiat_p384_scalar_u1 = 0;
> +     let (x1199, x1200) = fiat_p384_scalar_addcarryx_u32(x1198, x1129, x1175);
> +-    let mut x1201: u32 = 0;
> +-    let mut x1202: fiat_p384_scalar_u1 = 0;
> +     let (x1201, x1202) = fiat_p384_scalar_addcarryx_u32(x1200, x1131, x1177);
> +-    let mut x1203: u32 = 0;
> +-    let mut x1204: fiat_p384_scalar_u1 = 0;
> +     let (x1203, x1204) = fiat_p384_scalar_addcarryx_u32(x1202, x1133, x1179);
> +-    let mut x1205: u32 = 0;
> +-    let mut x1206: fiat_p384_scalar_u1 = 0;
> +     let (x1205, x1206) = fiat_p384_scalar_addcarryx_u32(x1204, x1135, x1181);
> +-    let mut x1207: u32 = 0;
> +-    let mut x1208: fiat_p384_scalar_u1 = 0;
> +     let (x1207, x1208) = fiat_p384_scalar_addcarryx_u32(x1206, x1137, x1183);
> +-    let mut x1209: u32 = 0;
> +-    let mut x1210: fiat_p384_scalar_u1 = 0;
> +     let (x1209, x1210) = fiat_p384_scalar_addcarryx_u32(x1208, x1139, x1185);
> +-    let mut x1211: u32 = 0;
> +-    let mut x1212: u32 = 0;
> +     let (x1211, x1212) = fiat_p384_scalar_mulx_u32(x1187, 0xe88fdc45);
> +-    let mut x1213: u32 = 0;
> +-    let mut x1214: u32 = 0;
> +     let (x1213, x1214) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
> +-    let mut x1215: u32 = 0;
> +-    let mut x1216: u32 = 0;
> +     let (x1215, x1216) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
> +-    let mut x1217: u32 = 0;
> +-    let mut x1218: u32 = 0;
> +     let (x1217, x1218) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
> +-    let mut x1219: u32 = 0;
> +-    let mut x1220: u32 = 0;
> +     let (x1219, x1220) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
> +-    let mut x1221: u32 = 0;
> +-    let mut x1222: u32 = 0;
> +     let (x1221, x1222) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
> +-    let mut x1223: u32 = 0;
> +-    let mut x1224: u32 = 0;
> +     let (x1223, x1224) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
> +-    let mut x1225: u32 = 0;
> +-    let mut x1226: u32 = 0;
> +     let (x1225, x1226) = fiat_p384_scalar_mulx_u32(x1211, 0xc7634d81);
> +-    let mut x1227: u32 = 0;
> +-    let mut x1228: u32 = 0;
> +     let (x1227, x1228) = fiat_p384_scalar_mulx_u32(x1211, 0xf4372ddf);
> +-    let mut x1229: u32 = 0;
> +-    let mut x1230: u32 = 0;
> +     let (x1229, x1230) = fiat_p384_scalar_mulx_u32(x1211, 0x581a0db2);
> +-    let mut x1231: u32 = 0;
> +-    let mut x1232: u32 = 0;
> +     let (x1231, x1232) = fiat_p384_scalar_mulx_u32(x1211, 0x48b0a77a);
> +-    let mut x1233: u32 = 0;
> +-    let mut x1234: u32 = 0;
> +     let (x1233, x1234) = fiat_p384_scalar_mulx_u32(x1211, 0xecec196a);
> +-    let mut x1235: u32 = 0;
> +-    let mut x1236: u32 = 0;
> +     let (x1235, x1236) = fiat_p384_scalar_mulx_u32(x1211, 0xccc52973);
> +-    let mut x1237: u32 = 0;
> +-    let mut x1238: fiat_p384_scalar_u1 = 0;
> +     let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(0x0, x1236, x1233);
> +-    let mut x1239: u32 = 0;
> +-    let mut x1240: fiat_p384_scalar_u1 = 0;
> +     let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1234, x1231);
> +-    let mut x1241: u32 = 0;
> +-    let mut x1242: fiat_p384_scalar_u1 = 0;
> +     let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1232, x1229);
> +-    let mut x1243: u32 = 0;
> +-    let mut x1244: fiat_p384_scalar_u1 = 0;
> +     let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1230, x1227);
> +-    let mut x1245: u32 = 0;
> +-    let mut x1246: fiat_p384_scalar_u1 = 0;
> +     let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1228, x1225);
> +-    let mut x1247: u32 = 0;
> +-    let mut x1248: fiat_p384_scalar_u1 = 0;
> +     let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1226, x1223);
> +-    let mut x1249: u32 = 0;
> +-    let mut x1250: fiat_p384_scalar_u1 = 0;
> +     let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1224, x1221);
> +-    let mut x1251: u32 = 0;
> +-    let mut x1252: fiat_p384_scalar_u1 = 0;
> +     let (x1251, x1252) = fiat_p384_scalar_addcarryx_u32(x1250, x1222, x1219);
> +-    let mut x1253: u32 = 0;
> +-    let mut x1254: fiat_p384_scalar_u1 = 0;
> +     let (x1253, x1254) = fiat_p384_scalar_addcarryx_u32(x1252, x1220, x1217);
> +-    let mut x1255: u32 = 0;
> +-    let mut x1256: fiat_p384_scalar_u1 = 0;
> +     let (x1255, x1256) = fiat_p384_scalar_addcarryx_u32(x1254, x1218, x1215);
> +-    let mut x1257: u32 = 0;
> +-    let mut x1258: fiat_p384_scalar_u1 = 0;
> +     let (x1257, x1258) = fiat_p384_scalar_addcarryx_u32(x1256, x1216, x1213);
> +-    let mut x1259: u32 = 0;
> +-    let mut x1260: fiat_p384_scalar_u1 = 0;
> +     let (x1259, x1260) = fiat_p384_scalar_addcarryx_u32(0x0, x1187, x1235);
> +-    let mut x1261: u32 = 0;
> +-    let mut x1262: fiat_p384_scalar_u1 = 0;
> +     let (x1261, x1262) = fiat_p384_scalar_addcarryx_u32(x1260, x1189, x1237);
> +-    let mut x1263: u32 = 0;
> +-    let mut x1264: fiat_p384_scalar_u1 = 0;
> +     let (x1263, x1264) = fiat_p384_scalar_addcarryx_u32(x1262, x1191, x1239);
> +-    let mut x1265: u32 = 0;
> +-    let mut x1266: fiat_p384_scalar_u1 = 0;
> +     let (x1265, x1266) = fiat_p384_scalar_addcarryx_u32(x1264, x1193, x1241);
> +-    let mut x1267: u32 = 0;
> +-    let mut x1268: fiat_p384_scalar_u1 = 0;
> +     let (x1267, x1268) = fiat_p384_scalar_addcarryx_u32(x1266, x1195, x1243);
> +-    let mut x1269: u32 = 0;
> +-    let mut x1270: fiat_p384_scalar_u1 = 0;
> +     let (x1269, x1270) = fiat_p384_scalar_addcarryx_u32(x1268, x1197, x1245);
> +-    let mut x1271: u32 = 0;
> +-    let mut x1272: fiat_p384_scalar_u1 = 0;
> +     let (x1271, x1272) = fiat_p384_scalar_addcarryx_u32(x1270, x1199, x1247);
> +-    let mut x1273: u32 = 0;
> +-    let mut x1274: fiat_p384_scalar_u1 = 0;
> +     let (x1273, x1274) = fiat_p384_scalar_addcarryx_u32(x1272, x1201, x1249);
> +-    let mut x1275: u32 = 0;
> +-    let mut x1276: fiat_p384_scalar_u1 = 0;
> +     let (x1275, x1276) = fiat_p384_scalar_addcarryx_u32(x1274, x1203, x1251);
> +-    let mut x1277: u32 = 0;
> +-    let mut x1278: fiat_p384_scalar_u1 = 0;
> +     let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(x1276, x1205, x1253);
> +-    let mut x1279: u32 = 0;
> +-    let mut x1280: fiat_p384_scalar_u1 = 0;
> +     let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1207, x1255);
> +-    let mut x1281: u32 = 0;
> +-    let mut x1282: fiat_p384_scalar_u1 = 0;
> +     let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1209, x1257);
> +-    let mut x1283: u32 = 0;
> +-    let mut x1284: fiat_p384_scalar_u1 = 0;
> +     let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(
> +         x1282,
> +         (((x1210 as u32) + (x1140 as u32)) + ((x1186 as u32) + x1142)),
> +         ((x1258 as u32) + x1214),
> +     );
> +-    let mut x1285: u32 = 0;
> +-    let mut x1286: u32 = 0;
> +     let (x1285, x1286) = fiat_p384_scalar_mulx_u32(x9, 0xc84ee01);
> +-    let mut x1287: u32 = 0;
> +-    let mut x1288: u32 = 0;
> +     let (x1287, x1288) = fiat_p384_scalar_mulx_u32(x9, 0x2b39bf21);
> +-    let mut x1289: u32 = 0;
> +-    let mut x1290: u32 = 0;
> +     let (x1289, x1290) = fiat_p384_scalar_mulx_u32(x9, 0x3fb05b7a);
> +-    let mut x1291: u32 = 0;
> +-    let mut x1292: u32 = 0;
> +     let (x1291, x1292) = fiat_p384_scalar_mulx_u32(x9, 0x28266895);
> +-    let mut x1293: u32 = 0;
> +-    let mut x1294: u32 = 0;
> +     let (x1293, x1294) = fiat_p384_scalar_mulx_u32(x9, 0xd40d4917);
> +-    let mut x1295: u32 = 0;
> +-    let mut x1296: u32 = 0;
> +     let (x1295, x1296) = fiat_p384_scalar_mulx_u32(x9, 0x4aab1cc5);
> +-    let mut x1297: u32 = 0;
> +-    let mut x1298: u32 = 0;
> +     let (x1297, x1298) = fiat_p384_scalar_mulx_u32(x9, 0xbc3e483a);
> +-    let mut x1299: u32 = 0;
> +-    let mut x1300: u32 = 0;
> +     let (x1299, x1300) = fiat_p384_scalar_mulx_u32(x9, 0xfcb82947);
> +-    let mut x1301: u32 = 0;
> +-    let mut x1302: u32 = 0;
> +     let (x1301, x1302) = fiat_p384_scalar_mulx_u32(x9, 0xff3d81e5);
> +-    let mut x1303: u32 = 0;
> +-    let mut x1304: u32 = 0;
> +     let (x1303, x1304) = fiat_p384_scalar_mulx_u32(x9, 0xdf1aa419);
> +-    let mut x1305: u32 = 0;
> +-    let mut x1306: u32 = 0;
> +     let (x1305, x1306) = fiat_p384_scalar_mulx_u32(x9, 0x2d319b24);
> +-    let mut x1307: u32 = 0;
> +-    let mut x1308: u32 = 0;
> +     let (x1307, x1308) = fiat_p384_scalar_mulx_u32(x9, 0x19b409a9);
> +-    let mut x1309: u32 = 0;
> +-    let mut x1310: fiat_p384_scalar_u1 = 0;
> +     let (x1309, x1310) = fiat_p384_scalar_addcarryx_u32(0x0, x1308, x1305);
> +-    let mut x1311: u32 = 0;
> +-    let mut x1312: fiat_p384_scalar_u1 = 0;
> +     let (x1311, x1312) = fiat_p384_scalar_addcarryx_u32(x1310, x1306, x1303);
> +-    let mut x1313: u32 = 0;
> +-    let mut x1314: fiat_p384_scalar_u1 = 0;
> +     let (x1313, x1314) = fiat_p384_scalar_addcarryx_u32(x1312, x1304, x1301);
> +-    let mut x1315: u32 = 0;
> +-    let mut x1316: fiat_p384_scalar_u1 = 0;
> +     let (x1315, x1316) = fiat_p384_scalar_addcarryx_u32(x1314, x1302, x1299);
> +-    let mut x1317: u32 = 0;
> +-    let mut x1318: fiat_p384_scalar_u1 = 0;
> +     let (x1317, x1318) = fiat_p384_scalar_addcarryx_u32(x1316, x1300, x1297);
> +-    let mut x1319: u32 = 0;
> +-    let mut x1320: fiat_p384_scalar_u1 = 0;
> +     let (x1319, x1320) = fiat_p384_scalar_addcarryx_u32(x1318, x1298, x1295);
> +-    let mut x1321: u32 = 0;
> +-    let mut x1322: fiat_p384_scalar_u1 = 0;
> +     let (x1321, x1322) = fiat_p384_scalar_addcarryx_u32(x1320, x1296, x1293);
> +-    let mut x1323: u32 = 0;
> +-    let mut x1324: fiat_p384_scalar_u1 = 0;
> +     let (x1323, x1324) = fiat_p384_scalar_addcarryx_u32(x1322, x1294, x1291);
> +-    let mut x1325: u32 = 0;
> +-    let mut x1326: fiat_p384_scalar_u1 = 0;
> +     let (x1325, x1326) = fiat_p384_scalar_addcarryx_u32(x1324, x1292, x1289);
> +-    let mut x1327: u32 = 0;
> +-    let mut x1328: fiat_p384_scalar_u1 = 0;
> +     let (x1327, x1328) = fiat_p384_scalar_addcarryx_u32(x1326, x1290, x1287);
> +-    let mut x1329: u32 = 0;
> +-    let mut x1330: fiat_p384_scalar_u1 = 0;
> +     let (x1329, x1330) = fiat_p384_scalar_addcarryx_u32(x1328, x1288, x1285);
> +-    let mut x1331: u32 = 0;
> +-    let mut x1332: fiat_p384_scalar_u1 = 0;
> +     let (x1331, x1332) = fiat_p384_scalar_addcarryx_u32(0x0, x1261, x1307);
> +-    let mut x1333: u32 = 0;
> +-    let mut x1334: fiat_p384_scalar_u1 = 0;
> +     let (x1333, x1334) = fiat_p384_scalar_addcarryx_u32(x1332, x1263, x1309);
> +-    let mut x1335: u32 = 0;
> +-    let mut x1336: fiat_p384_scalar_u1 = 0;
> +     let (x1335, x1336) = fiat_p384_scalar_addcarryx_u32(x1334, x1265, x1311);
> +-    let mut x1337: u32 = 0;
> +-    let mut x1338: fiat_p384_scalar_u1 = 0;
> +     let (x1337, x1338) = fiat_p384_scalar_addcarryx_u32(x1336, x1267, x1313);
> +-    let mut x1339: u32 = 0;
> +-    let mut x1340: fiat_p384_scalar_u1 = 0;
> +     let (x1339, x1340) = fiat_p384_scalar_addcarryx_u32(x1338, x1269, x1315);
> +-    let mut x1341: u32 = 0;
> +-    let mut x1342: fiat_p384_scalar_u1 = 0;
> +     let (x1341, x1342) = fiat_p384_scalar_addcarryx_u32(x1340, x1271, x1317);
> +-    let mut x1343: u32 = 0;
> +-    let mut x1344: fiat_p384_scalar_u1 = 0;
> +     let (x1343, x1344) = fiat_p384_scalar_addcarryx_u32(x1342, x1273, x1319);
> +-    let mut x1345: u32 = 0;
> +-    let mut x1346: fiat_p384_scalar_u1 = 0;
> +     let (x1345, x1346) = fiat_p384_scalar_addcarryx_u32(x1344, x1275, x1321);
> +-    let mut x1347: u32 = 0;
> +-    let mut x1348: fiat_p384_scalar_u1 = 0;
> +     let (x1347, x1348) = fiat_p384_scalar_addcarryx_u32(x1346, x1277, x1323);
> +-    let mut x1349: u32 = 0;
> +-    let mut x1350: fiat_p384_scalar_u1 = 0;
> +     let (x1349, x1350) = fiat_p384_scalar_addcarryx_u32(x1348, x1279, x1325);
> +-    let mut x1351: u32 = 0;
> +-    let mut x1352: fiat_p384_scalar_u1 = 0;
> +     let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(x1350, x1281, x1327);
> +-    let mut x1353: u32 = 0;
> +-    let mut x1354: fiat_p384_scalar_u1 = 0;
> +     let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1283, x1329);
> +-    let mut x1355: u32 = 0;
> +-    let mut x1356: u32 = 0;
> +     let (x1355, x1356) = fiat_p384_scalar_mulx_u32(x1331, 0xe88fdc45);
> +-    let mut x1357: u32 = 0;
> +-    let mut x1358: u32 = 0;
> +     let (x1357, x1358) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
> +-    let mut x1359: u32 = 0;
> +-    let mut x1360: u32 = 0;
> +     let (x1359, x1360) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
> +-    let mut x1361: u32 = 0;
> +-    let mut x1362: u32 = 0;
> +     let (x1361, x1362) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
> +-    let mut x1363: u32 = 0;
> +-    let mut x1364: u32 = 0;
> +     let (x1363, x1364) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
> +-    let mut x1365: u32 = 0;
> +-    let mut x1366: u32 = 0;
> +     let (x1365, x1366) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
> +-    let mut x1367: u32 = 0;
> +-    let mut x1368: u32 = 0;
> +     let (x1367, x1368) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
> +-    let mut x1369: u32 = 0;
> +-    let mut x1370: u32 = 0;
> +     let (x1369, x1370) = fiat_p384_scalar_mulx_u32(x1355, 0xc7634d81);
> +-    let mut x1371: u32 = 0;
> +-    let mut x1372: u32 = 0;
> +     let (x1371, x1372) = fiat_p384_scalar_mulx_u32(x1355, 0xf4372ddf);
> +-    let mut x1373: u32 = 0;
> +-    let mut x1374: u32 = 0;
> +     let (x1373, x1374) = fiat_p384_scalar_mulx_u32(x1355, 0x581a0db2);
> +-    let mut x1375: u32 = 0;
> +-    let mut x1376: u32 = 0;
> +     let (x1375, x1376) = fiat_p384_scalar_mulx_u32(x1355, 0x48b0a77a);
> +-    let mut x1377: u32 = 0;
> +-    let mut x1378: u32 = 0;
> +     let (x1377, x1378) = fiat_p384_scalar_mulx_u32(x1355, 0xecec196a);
> +-    let mut x1379: u32 = 0;
> +-    let mut x1380: u32 = 0;
> +     let (x1379, x1380) = fiat_p384_scalar_mulx_u32(x1355, 0xccc52973);
> +-    let mut x1381: u32 = 0;
> +-    let mut x1382: fiat_p384_scalar_u1 = 0;
> +     let (x1381, x1382) = fiat_p384_scalar_addcarryx_u32(0x0, x1380, x1377);
> +-    let mut x1383: u32 = 0;
> +-    let mut x1384: fiat_p384_scalar_u1 = 0;
> +     let (x1383, x1384) = fiat_p384_scalar_addcarryx_u32(x1382, x1378, x1375);
> +-    let mut x1385: u32 = 0;
> +-    let mut x1386: fiat_p384_scalar_u1 = 0;
> +     let (x1385, x1386) = fiat_p384_scalar_addcarryx_u32(x1384, x1376, x1373);
> +-    let mut x1387: u32 = 0;
> +-    let mut x1388: fiat_p384_scalar_u1 = 0;
> +     let (x1387, x1388) = fiat_p384_scalar_addcarryx_u32(x1386, x1374, x1371);
> +-    let mut x1389: u32 = 0;
> +-    let mut x1390: fiat_p384_scalar_u1 = 0;
> +     let (x1389, x1390) = fiat_p384_scalar_addcarryx_u32(x1388, x1372, x1369);
> +-    let mut x1391: u32 = 0;
> +-    let mut x1392: fiat_p384_scalar_u1 = 0;
> +     let (x1391, x1392) = fiat_p384_scalar_addcarryx_u32(x1390, x1370, x1367);
> +-    let mut x1393: u32 = 0;
> +-    let mut x1394: fiat_p384_scalar_u1 = 0;
> +     let (x1393, x1394) = fiat_p384_scalar_addcarryx_u32(x1392, x1368, x1365);
> +-    let mut x1395: u32 = 0;
> +-    let mut x1396: fiat_p384_scalar_u1 = 0;
> +     let (x1395, x1396) = fiat_p384_scalar_addcarryx_u32(x1394, x1366, x1363);
> +-    let mut x1397: u32 = 0;
> +-    let mut x1398: fiat_p384_scalar_u1 = 0;
> +     let (x1397, x1398) = fiat_p384_scalar_addcarryx_u32(x1396, x1364, x1361);
> +-    let mut x1399: u32 = 0;
> +-    let mut x1400: fiat_p384_scalar_u1 = 0;
> +     let (x1399, x1400) = fiat_p384_scalar_addcarryx_u32(x1398, x1362, x1359);
> +-    let mut x1401: u32 = 0;
> +-    let mut x1402: fiat_p384_scalar_u1 = 0;
> +     let (x1401, x1402) = fiat_p384_scalar_addcarryx_u32(x1400, x1360, x1357);
> +-    let mut x1403: u32 = 0;
> +-    let mut x1404: fiat_p384_scalar_u1 = 0;
> +     let (x1403, x1404) = fiat_p384_scalar_addcarryx_u32(0x0, x1331, x1379);
> +-    let mut x1405: u32 = 0;
> +-    let mut x1406: fiat_p384_scalar_u1 = 0;
> +     let (x1405, x1406) = fiat_p384_scalar_addcarryx_u32(x1404, x1333, x1381);
> +-    let mut x1407: u32 = 0;
> +-    let mut x1408: fiat_p384_scalar_u1 = 0;
> +     let (x1407, x1408) = fiat_p384_scalar_addcarryx_u32(x1406, x1335, x1383);
> +-    let mut x1409: u32 = 0;
> +-    let mut x1410: fiat_p384_scalar_u1 = 0;
> +     let (x1409, x1410) = fiat_p384_scalar_addcarryx_u32(x1408, x1337, x1385);
> +-    let mut x1411: u32 = 0;
> +-    let mut x1412: fiat_p384_scalar_u1 = 0;
> +     let (x1411, x1412) = fiat_p384_scalar_addcarryx_u32(x1410, x1339, x1387);
> +-    let mut x1413: u32 = 0;
> +-    let mut x1414: fiat_p384_scalar_u1 = 0;
> +     let (x1413, x1414) = fiat_p384_scalar_addcarryx_u32(x1412, x1341, x1389);
> +-    let mut x1415: u32 = 0;
> +-    let mut x1416: fiat_p384_scalar_u1 = 0;
> +     let (x1415, x1416) = fiat_p384_scalar_addcarryx_u32(x1414, x1343, x1391);
> +-    let mut x1417: u32 = 0;
> +-    let mut x1418: fiat_p384_scalar_u1 = 0;
> +     let (x1417, x1418) = fiat_p384_scalar_addcarryx_u32(x1416, x1345, x1393);
> +-    let mut x1419: u32 = 0;
> +-    let mut x1420: fiat_p384_scalar_u1 = 0;
> +     let (x1419, x1420) = fiat_p384_scalar_addcarryx_u32(x1418, x1347, x1395);
> +-    let mut x1421: u32 = 0;
> +-    let mut x1422: fiat_p384_scalar_u1 = 0;
> +     let (x1421, x1422) = fiat_p384_scalar_addcarryx_u32(x1420, x1349, x1397);
> +-    let mut x1423: u32 = 0;
> +-    let mut x1424: fiat_p384_scalar_u1 = 0;
> +     let (x1423, x1424) = fiat_p384_scalar_addcarryx_u32(x1422, x1351, x1399);
> +-    let mut x1425: u32 = 0;
> +-    let mut x1426: fiat_p384_scalar_u1 = 0;
> +     let (x1425, x1426) = fiat_p384_scalar_addcarryx_u32(x1424, x1353, x1401);
> +-    let mut x1427: u32 = 0;
> +-    let mut x1428: fiat_p384_scalar_u1 = 0;
> +     let (x1427, x1428) = fiat_p384_scalar_addcarryx_u32(
> +         x1426,
> +         (((x1354 as u32) + (x1284 as u32)) + ((x1330 as u32) + x1286)),
> +         ((x1402 as u32) + x1358),
> +     );
> +-    let mut x1429: u32 = 0;
> +-    let mut x1430: u32 = 0;
> +     let (x1429, x1430) = fiat_p384_scalar_mulx_u32(x10, 0xc84ee01);
> +-    let mut x1431: u32 = 0;
> +-    let mut x1432: u32 = 0;
> +     let (x1431, x1432) = fiat_p384_scalar_mulx_u32(x10, 0x2b39bf21);
> +-    let mut x1433: u32 = 0;
> +-    let mut x1434: u32 = 0;
> +     let (x1433, x1434) = fiat_p384_scalar_mulx_u32(x10, 0x3fb05b7a);
> +-    let mut x1435: u32 = 0;
> +-    let mut x1436: u32 = 0;
> +     let (x1435, x1436) = fiat_p384_scalar_mulx_u32(x10, 0x28266895);
> +-    let mut x1437: u32 = 0;
> +-    let mut x1438: u32 = 0;
> +     let (x1437, x1438) = fiat_p384_scalar_mulx_u32(x10, 0xd40d4917);
> +-    let mut x1439: u32 = 0;
> +-    let mut x1440: u32 = 0;
> +     let (x1439, x1440) = fiat_p384_scalar_mulx_u32(x10, 0x4aab1cc5);
> +-    let mut x1441: u32 = 0;
> +-    let mut x1442: u32 = 0;
> +     let (x1441, x1442) = fiat_p384_scalar_mulx_u32(x10, 0xbc3e483a);
> +-    let mut x1443: u32 = 0;
> +-    let mut x1444: u32 = 0;
> +     let (x1443, x1444) = fiat_p384_scalar_mulx_u32(x10, 0xfcb82947);
> +-    let mut x1445: u32 = 0;
> +-    let mut x1446: u32 = 0;
> +     let (x1445, x1446) = fiat_p384_scalar_mulx_u32(x10, 0xff3d81e5);
> +-    let mut x1447: u32 = 0;
> +-    let mut x1448: u32 = 0;
> +     let (x1447, x1448) = fiat_p384_scalar_mulx_u32(x10, 0xdf1aa419);
> +-    let mut x1449: u32 = 0;
> +-    let mut x1450: u32 = 0;
> +     let (x1449, x1450) = fiat_p384_scalar_mulx_u32(x10, 0x2d319b24);
> +-    let mut x1451: u32 = 0;
> +-    let mut x1452: u32 = 0;
> +     let (x1451, x1452) = fiat_p384_scalar_mulx_u32(x10, 0x19b409a9);
> +-    let mut x1453: u32 = 0;
> +-    let mut x1454: fiat_p384_scalar_u1 = 0;
> +     let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(0x0, x1452, x1449);
> +-    let mut x1455: u32 = 0;
> +-    let mut x1456: fiat_p384_scalar_u1 = 0;
> +     let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1450, x1447);
> +-    let mut x1457: u32 = 0;
> +-    let mut x1458: fiat_p384_scalar_u1 = 0;
> +     let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1448, x1445);
> +-    let mut x1459: u32 = 0;
> +-    let mut x1460: fiat_p384_scalar_u1 = 0;
> +     let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1446, x1443);
> +-    let mut x1461: u32 = 0;
> +-    let mut x1462: fiat_p384_scalar_u1 = 0;
> +     let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1444, x1441);
> +-    let mut x1463: u32 = 0;
> +-    let mut x1464: fiat_p384_scalar_u1 = 0;
> +     let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1442, x1439);
> +-    let mut x1465: u32 = 0;
> +-    let mut x1466: fiat_p384_scalar_u1 = 0;
> +     let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1440, x1437);
> +-    let mut x1467: u32 = 0;
> +-    let mut x1468: fiat_p384_scalar_u1 = 0;
> +     let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1438, x1435);
> +-    let mut x1469: u32 = 0;
> +-    let mut x1470: fiat_p384_scalar_u1 = 0;
> +     let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1436, x1433);
> +-    let mut x1471: u32 = 0;
> +-    let mut x1472: fiat_p384_scalar_u1 = 0;
> +     let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1434, x1431);
> +-    let mut x1473: u32 = 0;
> +-    let mut x1474: fiat_p384_scalar_u1 = 0;
> +     let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1432, x1429);
> +-    let mut x1475: u32 = 0;
> +-    let mut x1476: fiat_p384_scalar_u1 = 0;
> +     let (x1475, x1476) = fiat_p384_scalar_addcarryx_u32(0x0, x1405, x1451);
> +-    let mut x1477: u32 = 0;
> +-    let mut x1478: fiat_p384_scalar_u1 = 0;
> +     let (x1477, x1478) = fiat_p384_scalar_addcarryx_u32(x1476, x1407, x1453);
> +-    let mut x1479: u32 = 0;
> +-    let mut x1480: fiat_p384_scalar_u1 = 0;
> +     let (x1479, x1480) = fiat_p384_scalar_addcarryx_u32(x1478, x1409, x1455);
> +-    let mut x1481: u32 = 0;
> +-    let mut x1482: fiat_p384_scalar_u1 = 0;
> +     let (x1481, x1482) = fiat_p384_scalar_addcarryx_u32(x1480, x1411, x1457);
> +-    let mut x1483: u32 = 0;
> +-    let mut x1484: fiat_p384_scalar_u1 = 0;
> +     let (x1483, x1484) = fiat_p384_scalar_addcarryx_u32(x1482, x1413, x1459);
> +-    let mut x1485: u32 = 0;
> +-    let mut x1486: fiat_p384_scalar_u1 = 0;
> +     let (x1485, x1486) = fiat_p384_scalar_addcarryx_u32(x1484, x1415, x1461);
> +-    let mut x1487: u32 = 0;
> +-    let mut x1488: fiat_p384_scalar_u1 = 0;
> +     let (x1487, x1488) = fiat_p384_scalar_addcarryx_u32(x1486, x1417, x1463);
> +-    let mut x1489: u32 = 0;
> +-    let mut x1490: fiat_p384_scalar_u1 = 0;
> +     let (x1489, x1490) = fiat_p384_scalar_addcarryx_u32(x1488, x1419, x1465);
> +-    let mut x1491: u32 = 0;
> +-    let mut x1492: fiat_p384_scalar_u1 = 0;
> +     let (x1491, x1492) = fiat_p384_scalar_addcarryx_u32(x1490, x1421, x1467);
> +-    let mut x1493: u32 = 0;
> +-    let mut x1494: fiat_p384_scalar_u1 = 0;
> +     let (x1493, x1494) = fiat_p384_scalar_addcarryx_u32(x1492, x1423, x1469);
> +-    let mut x1495: u32 = 0;
> +-    let mut x1496: fiat_p384_scalar_u1 = 0;
> +     let (x1495, x1496) = fiat_p384_scalar_addcarryx_u32(x1494, x1425, x1471);
> +-    let mut x1497: u32 = 0;
> +-    let mut x1498: fiat_p384_scalar_u1 = 0;
> +     let (x1497, x1498) = fiat_p384_scalar_addcarryx_u32(x1496, x1427, x1473);
> +-    let mut x1499: u32 = 0;
> +-    let mut x1500: u32 = 0;
> +     let (x1499, x1500) = fiat_p384_scalar_mulx_u32(x1475, 0xe88fdc45);
> +-    let mut x1501: u32 = 0;
> +-    let mut x1502: u32 = 0;
> +     let (x1501, x1502) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
> +-    let mut x1503: u32 = 0;
> +-    let mut x1504: u32 = 0;
> +     let (x1503, x1504) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
> +-    let mut x1505: u32 = 0;
> +-    let mut x1506: u32 = 0;
> +     let (x1505, x1506) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
> +-    let mut x1507: u32 = 0;
> +-    let mut x1508: u32 = 0;
> +     let (x1507, x1508) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
> +-    let mut x1509: u32 = 0;
> +-    let mut x1510: u32 = 0;
> +     let (x1509, x1510) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
> +-    let mut x1511: u32 = 0;
> +-    let mut x1512: u32 = 0;
> +     let (x1511, x1512) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
> +-    let mut x1513: u32 = 0;
> +-    let mut x1514: u32 = 0;
> +     let (x1513, x1514) = fiat_p384_scalar_mulx_u32(x1499, 0xc7634d81);
> +-    let mut x1515: u32 = 0;
> +-    let mut x1516: u32 = 0;
> +     let (x1515, x1516) = fiat_p384_scalar_mulx_u32(x1499, 0xf4372ddf);
> +-    let mut x1517: u32 = 0;
> +-    let mut x1518: u32 = 0;
> +     let (x1517, x1518) = fiat_p384_scalar_mulx_u32(x1499, 0x581a0db2);
> +-    let mut x1519: u32 = 0;
> +-    let mut x1520: u32 = 0;
> +     let (x1519, x1520) = fiat_p384_scalar_mulx_u32(x1499, 0x48b0a77a);
> +-    let mut x1521: u32 = 0;
> +-    let mut x1522: u32 = 0;
> +     let (x1521, x1522) = fiat_p384_scalar_mulx_u32(x1499, 0xecec196a);
> +-    let mut x1523: u32 = 0;
> +-    let mut x1524: u32 = 0;
> +     let (x1523, x1524) = fiat_p384_scalar_mulx_u32(x1499, 0xccc52973);
> +-    let mut x1525: u32 = 0;
> +-    let mut x1526: fiat_p384_scalar_u1 = 0;
> +     let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(0x0, x1524, x1521);
> +-    let mut x1527: u32 = 0;
> +-    let mut x1528: fiat_p384_scalar_u1 = 0;
> +     let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1522, x1519);
> +-    let mut x1529: u32 = 0;
> +-    let mut x1530: fiat_p384_scalar_u1 = 0;
> +     let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1520, x1517);
> +-    let mut x1531: u32 = 0;
> +-    let mut x1532: fiat_p384_scalar_u1 = 0;
> +     let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1518, x1515);
> +-    let mut x1533: u32 = 0;
> +-    let mut x1534: fiat_p384_scalar_u1 = 0;
> +     let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1516, x1513);
> +-    let mut x1535: u32 = 0;
> +-    let mut x1536: fiat_p384_scalar_u1 = 0;
> +     let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1514, x1511);
> +-    let mut x1537: u32 = 0;
> +-    let mut x1538: fiat_p384_scalar_u1 = 0;
> +     let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1512, x1509);
> +-    let mut x1539: u32 = 0;
> +-    let mut x1540: fiat_p384_scalar_u1 = 0;
> +     let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1510, x1507);
> +-    let mut x1541: u32 = 0;
> +-    let mut x1542: fiat_p384_scalar_u1 = 0;
> +     let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1508, x1505);
> +-    let mut x1543: u32 = 0;
> +-    let mut x1544: fiat_p384_scalar_u1 = 0;
> +     let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1506, x1503);
> +-    let mut x1545: u32 = 0;
> +-    let mut x1546: fiat_p384_scalar_u1 = 0;
> +     let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1504, x1501);
> +-    let mut x1547: u32 = 0;
> +-    let mut x1548: fiat_p384_scalar_u1 = 0;
> +     let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(0x0, x1475, x1523);
> +-    let mut x1549: u32 = 0;
> +-    let mut x1550: fiat_p384_scalar_u1 = 0;
> +     let (x1549, x1550) = fiat_p384_scalar_addcarryx_u32(x1548, x1477, x1525);
> +-    let mut x1551: u32 = 0;
> +-    let mut x1552: fiat_p384_scalar_u1 = 0;
> +     let (x1551, x1552) = fiat_p384_scalar_addcarryx_u32(x1550, x1479, x1527);
> +-    let mut x1553: u32 = 0;
> +-    let mut x1554: fiat_p384_scalar_u1 = 0;
> +     let (x1553, x1554) = fiat_p384_scalar_addcarryx_u32(x1552, x1481, x1529);
> +-    let mut x1555: u32 = 0;
> +-    let mut x1556: fiat_p384_scalar_u1 = 0;
> +     let (x1555, x1556) = fiat_p384_scalar_addcarryx_u32(x1554, x1483, x1531);
> +-    let mut x1557: u32 = 0;
> +-    let mut x1558: fiat_p384_scalar_u1 = 0;
> +     let (x1557, x1558) = fiat_p384_scalar_addcarryx_u32(x1556, x1485, x1533);
> +-    let mut x1559: u32 = 0;
> +-    let mut x1560: fiat_p384_scalar_u1 = 0;
> +     let (x1559, x1560) = fiat_p384_scalar_addcarryx_u32(x1558, x1487, x1535);
> +-    let mut x1561: u32 = 0;
> +-    let mut x1562: fiat_p384_scalar_u1 = 0;
> +     let (x1561, x1562) = fiat_p384_scalar_addcarryx_u32(x1560, x1489, x1537);
> +-    let mut x1563: u32 = 0;
> +-    let mut x1564: fiat_p384_scalar_u1 = 0;
> +     let (x1563, x1564) = fiat_p384_scalar_addcarryx_u32(x1562, x1491, x1539);
> +-    let mut x1565: u32 = 0;
> +-    let mut x1566: fiat_p384_scalar_u1 = 0;
> +     let (x1565, x1566) = fiat_p384_scalar_addcarryx_u32(x1564, x1493, x1541);
> +-    let mut x1567: u32 = 0;
> +-    let mut x1568: fiat_p384_scalar_u1 = 0;
> +     let (x1567, x1568) = fiat_p384_scalar_addcarryx_u32(x1566, x1495, x1543);
> +-    let mut x1569: u32 = 0;
> +-    let mut x1570: fiat_p384_scalar_u1 = 0;
> +     let (x1569, x1570) = fiat_p384_scalar_addcarryx_u32(x1568, x1497, x1545);
> +-    let mut x1571: u32 = 0;
> +-    let mut x1572: fiat_p384_scalar_u1 = 0;
> +     let (x1571, x1572) = fiat_p384_scalar_addcarryx_u32(
> +         x1570,
> +         (((x1498 as u32) + (x1428 as u32)) + ((x1474 as u32) + x1430)),
> +         ((x1546 as u32) + x1502),
> +     );
> +-    let mut x1573: u32 = 0;
> +-    let mut x1574: u32 = 0;
> +     let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x11, 0xc84ee01);
> +-    let mut x1575: u32 = 0;
> +-    let mut x1576: u32 = 0;
> +     let (x1575, x1576) = fiat_p384_scalar_mulx_u32(x11, 0x2b39bf21);
> +-    let mut x1577: u32 = 0;
> +-    let mut x1578: u32 = 0;
> +     let (x1577, x1578) = fiat_p384_scalar_mulx_u32(x11, 0x3fb05b7a);
> +-    let mut x1579: u32 = 0;
> +-    let mut x1580: u32 = 0;
> +     let (x1579, x1580) = fiat_p384_scalar_mulx_u32(x11, 0x28266895);
> +-    let mut x1581: u32 = 0;
> +-    let mut x1582: u32 = 0;
> +     let (x1581, x1582) = fiat_p384_scalar_mulx_u32(x11, 0xd40d4917);
> +-    let mut x1583: u32 = 0;
> +-    let mut x1584: u32 = 0;
> +     let (x1583, x1584) = fiat_p384_scalar_mulx_u32(x11, 0x4aab1cc5);
> +-    let mut x1585: u32 = 0;
> +-    let mut x1586: u32 = 0;
> +     let (x1585, x1586) = fiat_p384_scalar_mulx_u32(x11, 0xbc3e483a);
> +-    let mut x1587: u32 = 0;
> +-    let mut x1588: u32 = 0;
> +     let (x1587, x1588) = fiat_p384_scalar_mulx_u32(x11, 0xfcb82947);
> +-    let mut x1589: u32 = 0;
> +-    let mut x1590: u32 = 0;
> +     let (x1589, x1590) = fiat_p384_scalar_mulx_u32(x11, 0xff3d81e5);
> +-    let mut x1591: u32 = 0;
> +-    let mut x1592: u32 = 0;
> +     let (x1591, x1592) = fiat_p384_scalar_mulx_u32(x11, 0xdf1aa419);
> +-    let mut x1593: u32 = 0;
> +-    let mut x1594: u32 = 0;
> +     let (x1593, x1594) = fiat_p384_scalar_mulx_u32(x11, 0x2d319b24);
> +-    let mut x1595: u32 = 0;
> +-    let mut x1596: u32 = 0;
> +     let (x1595, x1596) = fiat_p384_scalar_mulx_u32(x11, 0x19b409a9);
> +-    let mut x1597: u32 = 0;
> +-    let mut x1598: fiat_p384_scalar_u1 = 0;
> +     let (x1597, x1598) = fiat_p384_scalar_addcarryx_u32(0x0, x1596, x1593);
> +-    let mut x1599: u32 = 0;
> +-    let mut x1600: fiat_p384_scalar_u1 = 0;
> +     let (x1599, x1600) = fiat_p384_scalar_addcarryx_u32(x1598, x1594, x1591);
> +-    let mut x1601: u32 = 0;
> +-    let mut x1602: fiat_p384_scalar_u1 = 0;
> +     let (x1601, x1602) = fiat_p384_scalar_addcarryx_u32(x1600, x1592, x1589);
> +-    let mut x1603: u32 = 0;
> +-    let mut x1604: fiat_p384_scalar_u1 = 0;
> +     let (x1603, x1604) = fiat_p384_scalar_addcarryx_u32(x1602, x1590, x1587);
> +-    let mut x1605: u32 = 0;
> +-    let mut x1606: fiat_p384_scalar_u1 = 0;
> +     let (x1605, x1606) = fiat_p384_scalar_addcarryx_u32(x1604, x1588, x1585);
> +-    let mut x1607: u32 = 0;
> +-    let mut x1608: fiat_p384_scalar_u1 = 0;
> +     let (x1607, x1608) = fiat_p384_scalar_addcarryx_u32(x1606, x1586, x1583);
> +-    let mut x1609: u32 = 0;
> +-    let mut x1610: fiat_p384_scalar_u1 = 0;
> +     let (x1609, x1610) = fiat_p384_scalar_addcarryx_u32(x1608, x1584, x1581);
> +-    let mut x1611: u32 = 0;
> +-    let mut x1612: fiat_p384_scalar_u1 = 0;
> +     let (x1611, x1612) = fiat_p384_scalar_addcarryx_u32(x1610, x1582, x1579);
> +-    let mut x1613: u32 = 0;
> +-    let mut x1614: fiat_p384_scalar_u1 = 0;
> +     let (x1613, x1614) = fiat_p384_scalar_addcarryx_u32(x1612, x1580, x1577);
> +-    let mut x1615: u32 = 0;
> +-    let mut x1616: fiat_p384_scalar_u1 = 0;
> +     let (x1615, x1616) = fiat_p384_scalar_addcarryx_u32(x1614, x1578, x1575);
> +-    let mut x1617: u32 = 0;
> +-    let mut x1618: fiat_p384_scalar_u1 = 0;
> +     let (x1617, x1618) = fiat_p384_scalar_addcarryx_u32(x1616, x1576, x1573);
> +-    let mut x1619: u32 = 0;
> +-    let mut x1620: fiat_p384_scalar_u1 = 0;
> +     let (x1619, x1620) = fiat_p384_scalar_addcarryx_u32(0x0, x1549, x1595);
> +-    let mut x1621: u32 = 0;
> +-    let mut x1622: fiat_p384_scalar_u1 = 0;
> +     let (x1621, x1622) = fiat_p384_scalar_addcarryx_u32(x1620, x1551, x1597);
> +-    let mut x1623: u32 = 0;
> +-    let mut x1624: fiat_p384_scalar_u1 = 0;
> +     let (x1623, x1624) = fiat_p384_scalar_addcarryx_u32(x1622, x1553, x1599);
> +-    let mut x1625: u32 = 0;
> +-    let mut x1626: fiat_p384_scalar_u1 = 0;
> +     let (x1625, x1626) = fiat_p384_scalar_addcarryx_u32(x1624, x1555, x1601);
> +-    let mut x1627: u32 = 0;
> +-    let mut x1628: fiat_p384_scalar_u1 = 0;
> +     let (x1627, x1628) = fiat_p384_scalar_addcarryx_u32(x1626, x1557, x1603);
> +-    let mut x1629: u32 = 0;
> +-    let mut x1630: fiat_p384_scalar_u1 = 0;
> +     let (x1629, x1630) = fiat_p384_scalar_addcarryx_u32(x1628, x1559, x1605);
> +-    let mut x1631: u32 = 0;
> +-    let mut x1632: fiat_p384_scalar_u1 = 0;
> +     let (x1631, x1632) = fiat_p384_scalar_addcarryx_u32(x1630, x1561, x1607);
> +-    let mut x1633: u32 = 0;
> +-    let mut x1634: fiat_p384_scalar_u1 = 0;
> +     let (x1633, x1634) = fiat_p384_scalar_addcarryx_u32(x1632, x1563, x1609);
> +-    let mut x1635: u32 = 0;
> +-    let mut x1636: fiat_p384_scalar_u1 = 0;
> +     let (x1635, x1636) = fiat_p384_scalar_addcarryx_u32(x1634, x1565, x1611);
> +-    let mut x1637: u32 = 0;
> +-    let mut x1638: fiat_p384_scalar_u1 = 0;
> +     let (x1637, x1638) = fiat_p384_scalar_addcarryx_u32(x1636, x1567, x1613);
> +-    let mut x1639: u32 = 0;
> +-    let mut x1640: fiat_p384_scalar_u1 = 0;
> +     let (x1639, x1640) = fiat_p384_scalar_addcarryx_u32(x1638, x1569, x1615);
> +-    let mut x1641: u32 = 0;
> +-    let mut x1642: fiat_p384_scalar_u1 = 0;
> +     let (x1641, x1642) = fiat_p384_scalar_addcarryx_u32(x1640, x1571, x1617);
> +-    let mut x1643: u32 = 0;
> +-    let mut x1644: u32 = 0;
> +     let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x1619, 0xe88fdc45);
> +-    let mut x1645: u32 = 0;
> +-    let mut x1646: u32 = 0;
> +     let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
> +-    let mut x1647: u32 = 0;
> +-    let mut x1648: u32 = 0;
> +     let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
> +-    let mut x1649: u32 = 0;
> +-    let mut x1650: u32 = 0;
> +     let (x1649, x1650) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
> +-    let mut x1651: u32 = 0;
> +-    let mut x1652: u32 = 0;
> +     let (x1651, x1652) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
> +-    let mut x1653: u32 = 0;
> +-    let mut x1654: u32 = 0;
> +     let (x1653, x1654) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
> +-    let mut x1655: u32 = 0;
> +-    let mut x1656: u32 = 0;
> +     let (x1655, x1656) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
> +-    let mut x1657: u32 = 0;
> +-    let mut x1658: u32 = 0;
> +     let (x1657, x1658) = fiat_p384_scalar_mulx_u32(x1643, 0xc7634d81);
> +-    let mut x1659: u32 = 0;
> +-    let mut x1660: u32 = 0;
> +     let (x1659, x1660) = fiat_p384_scalar_mulx_u32(x1643, 0xf4372ddf);
> +-    let mut x1661: u32 = 0;
> +-    let mut x1662: u32 = 0;
> +     let (x1661, x1662) = fiat_p384_scalar_mulx_u32(x1643, 0x581a0db2);
> +-    let mut x1663: u32 = 0;
> +-    let mut x1664: u32 = 0;
> +     let (x1663, x1664) = fiat_p384_scalar_mulx_u32(x1643, 0x48b0a77a);
> +-    let mut x1665: u32 = 0;
> +-    let mut x1666: u32 = 0;
> +     let (x1665, x1666) = fiat_p384_scalar_mulx_u32(x1643, 0xecec196a);
> +-    let mut x1667: u32 = 0;
> +-    let mut x1668: u32 = 0;
> +     let (x1667, x1668) = fiat_p384_scalar_mulx_u32(x1643, 0xccc52973);
> +-    let mut x1669: u32 = 0;
> +-    let mut x1670: fiat_p384_scalar_u1 = 0;
> +     let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(0x0, x1668, x1665);
> +-    let mut x1671: u32 = 0;
> +-    let mut x1672: fiat_p384_scalar_u1 = 0;
> +     let (x1671, x1672) = fiat_p384_scalar_addcarryx_u32(x1670, x1666, x1663);
> +-    let mut x1673: u32 = 0;
> +-    let mut x1674: fiat_p384_scalar_u1 = 0;
> +     let (x1673, x1674) = fiat_p384_scalar_addcarryx_u32(x1672, x1664, x1661);
> +-    let mut x1675: u32 = 0;
> +-    let mut x1676: fiat_p384_scalar_u1 = 0;
> +     let (x1675, x1676) = fiat_p384_scalar_addcarryx_u32(x1674, x1662, x1659);
> +-    let mut x1677: u32 = 0;
> +-    let mut x1678: fiat_p384_scalar_u1 = 0;
> +     let (x1677, x1678) = fiat_p384_scalar_addcarryx_u32(x1676, x1660, x1657);
> +-    let mut x1679: u32 = 0;
> +-    let mut x1680: fiat_p384_scalar_u1 = 0;
> +     let (x1679, x1680) = fiat_p384_scalar_addcarryx_u32(x1678, x1658, x1655);
> +-    let mut x1681: u32 = 0;
> +-    let mut x1682: fiat_p384_scalar_u1 = 0;
> +     let (x1681, x1682) = fiat_p384_scalar_addcarryx_u32(x1680, x1656, x1653);
> +-    let mut x1683: u32 = 0;
> +-    let mut x1684: fiat_p384_scalar_u1 = 0;
> +     let (x1683, x1684) = fiat_p384_scalar_addcarryx_u32(x1682, x1654, x1651);
> +-    let mut x1685: u32 = 0;
> +-    let mut x1686: fiat_p384_scalar_u1 = 0;
> +     let (x1685, x1686) = fiat_p384_scalar_addcarryx_u32(x1684, x1652, x1649);
> +-    let mut x1687: u32 = 0;
> +-    let mut x1688: fiat_p384_scalar_u1 = 0;
> +     let (x1687, x1688) = fiat_p384_scalar_addcarryx_u32(x1686, x1650, x1647);
> +-    let mut x1689: u32 = 0;
> +-    let mut x1690: fiat_p384_scalar_u1 = 0;
> +     let (x1689, x1690) = fiat_p384_scalar_addcarryx_u32(x1688, x1648, x1645);
> +-    let mut x1691: u32 = 0;
> +-    let mut x1692: fiat_p384_scalar_u1 = 0;
> +     let (x1691, x1692) = fiat_p384_scalar_addcarryx_u32(0x0, x1619, x1667);
> +-    let mut x1693: u32 = 0;
> +-    let mut x1694: fiat_p384_scalar_u1 = 0;
> +     let (x1693, x1694) = fiat_p384_scalar_addcarryx_u32(x1692, x1621, x1669);
> +-    let mut x1695: u32 = 0;
> +-    let mut x1696: fiat_p384_scalar_u1 = 0;
> +     let (x1695, x1696) = fiat_p384_scalar_addcarryx_u32(x1694, x1623, x1671);
> +-    let mut x1697: u32 = 0;
> +-    let mut x1698: fiat_p384_scalar_u1 = 0;
> +     let (x1697, x1698) = fiat_p384_scalar_addcarryx_u32(x1696, x1625, x1673);
> +-    let mut x1699: u32 = 0;
> +-    let mut x1700: fiat_p384_scalar_u1 = 0;
> +     let (x1699, x1700) = fiat_p384_scalar_addcarryx_u32(x1698, x1627, x1675);
> +-    let mut x1701: u32 = 0;
> +-    let mut x1702: fiat_p384_scalar_u1 = 0;
> +     let (x1701, x1702) = fiat_p384_scalar_addcarryx_u32(x1700, x1629, x1677);
> +-    let mut x1703: u32 = 0;
> +-    let mut x1704: fiat_p384_scalar_u1 = 0;
> +     let (x1703, x1704) = fiat_p384_scalar_addcarryx_u32(x1702, x1631, x1679);
> +-    let mut x1705: u32 = 0;
> +-    let mut x1706: fiat_p384_scalar_u1 = 0;
> +     let (x1705, x1706) = fiat_p384_scalar_addcarryx_u32(x1704, x1633, x1681);
> +-    let mut x1707: u32 = 0;
> +-    let mut x1708: fiat_p384_scalar_u1 = 0;
> +     let (x1707, x1708) = fiat_p384_scalar_addcarryx_u32(x1706, x1635, x1683);
> +-    let mut x1709: u32 = 0;
> +-    let mut x1710: fiat_p384_scalar_u1 = 0;
> +     let (x1709, x1710) = fiat_p384_scalar_addcarryx_u32(x1708, x1637, x1685);
> +-    let mut x1711: u32 = 0;
> +-    let mut x1712: fiat_p384_scalar_u1 = 0;
> +     let (x1711, x1712) = fiat_p384_scalar_addcarryx_u32(x1710, x1639, x1687);
> +-    let mut x1713: u32 = 0;
> +-    let mut x1714: fiat_p384_scalar_u1 = 0;
> +     let (x1713, x1714) = fiat_p384_scalar_addcarryx_u32(x1712, x1641, x1689);
> +-    let mut x1715: u32 = 0;
> +-    let mut x1716: fiat_p384_scalar_u1 = 0;
> +     let (x1715, x1716) = fiat_p384_scalar_addcarryx_u32(
> +         x1714,
> +         (((x1642 as u32) + (x1572 as u32)) + ((x1618 as u32) + x1574)),
> +         ((x1690 as u32) + x1646),
> +     );
> +-    let mut x1717: u32 = 0;
> +-    let mut x1718: fiat_p384_scalar_u1 = 0;
> +     let (x1717, x1718) = fiat_p384_scalar_subborrowx_u32(0x0, x1693, 0xccc52973);
> +-    let mut x1719: u32 = 0;
> +-    let mut x1720: fiat_p384_scalar_u1 = 0;
> +     let (x1719, x1720) = fiat_p384_scalar_subborrowx_u32(x1718, x1695, 0xecec196a);
> +-    let mut x1721: u32 = 0;
> +-    let mut x1722: fiat_p384_scalar_u1 = 0;
> +     let (x1721, x1722) = fiat_p384_scalar_subborrowx_u32(x1720, x1697, 0x48b0a77a);
> +-    let mut x1723: u32 = 0;
> +-    let mut x1724: fiat_p384_scalar_u1 = 0;
> +     let (x1723, x1724) = fiat_p384_scalar_subborrowx_u32(x1722, x1699, 0x581a0db2);
> +-    let mut x1725: u32 = 0;
> +-    let mut x1726: fiat_p384_scalar_u1 = 0;
> +     let (x1725, x1726) = fiat_p384_scalar_subborrowx_u32(x1724, x1701, 0xf4372ddf);
> +-    let mut x1727: u32 = 0;
> +-    let mut x1728: fiat_p384_scalar_u1 = 0;
> +     let (x1727, x1728) = fiat_p384_scalar_subborrowx_u32(x1726, x1703, 0xc7634d81);
> +-    let mut x1729: u32 = 0;
> +-    let mut x1730: fiat_p384_scalar_u1 = 0;
> +     let (x1729, x1730) = fiat_p384_scalar_subborrowx_u32(x1728, x1705, 0xffffffff);
> +-    let mut x1731: u32 = 0;
> +-    let mut x1732: fiat_p384_scalar_u1 = 0;
> +     let (x1731, x1732) = fiat_p384_scalar_subborrowx_u32(x1730, x1707, 0xffffffff);
> +-    let mut x1733: u32 = 0;
> +-    let mut x1734: fiat_p384_scalar_u1 = 0;
> +     let (x1733, x1734) = fiat_p384_scalar_subborrowx_u32(x1732, x1709, 0xffffffff);
> +-    let mut x1735: u32 = 0;
> +-    let mut x1736: fiat_p384_scalar_u1 = 0;
> +     let (x1735, x1736) = fiat_p384_scalar_subborrowx_u32(x1734, x1711, 0xffffffff);
> +-    let mut x1737: u32 = 0;
> +-    let mut x1738: fiat_p384_scalar_u1 = 0;
> +     let (x1737, x1738) = fiat_p384_scalar_subborrowx_u32(x1736, x1713, 0xffffffff);
> +-    let mut x1739: u32 = 0;
> +-    let mut x1740: fiat_p384_scalar_u1 = 0;
> +     let (x1739, x1740) = fiat_p384_scalar_subborrowx_u32(x1738, x1715, 0xffffffff);
> +-    let mut x1741: u32 = 0;
> +-    let mut x1742: fiat_p384_scalar_u1 = 0;
> +     let (x1741, x1742) = fiat_p384_scalar_subborrowx_u32(x1740, (x1716 as u32), (0x0 as u32));
> +-    let mut x1743: u32 = 0;
> +     let (x1743) = fiat_p384_scalar_cmovznz_u32(x1742, x1717, x1693);
> +-    let mut x1744: u32 = 0;
> +     let (x1744) = fiat_p384_scalar_cmovznz_u32(x1742, x1719, x1695);
> +-    let mut x1745: u32 = 0;
> +     let (x1745) = fiat_p384_scalar_cmovznz_u32(x1742, x1721, x1697);
> +-    let mut x1746: u32 = 0;
> +     let (x1746) = fiat_p384_scalar_cmovznz_u32(x1742, x1723, x1699);
> +-    let mut x1747: u32 = 0;
> +     let (x1747) = fiat_p384_scalar_cmovznz_u32(x1742, x1725, x1701);
> +-    let mut x1748: u32 = 0;
> +     let (x1748) = fiat_p384_scalar_cmovznz_u32(x1742, x1727, x1703);
> +-    let mut x1749: u32 = 0;
> +     let (x1749) = fiat_p384_scalar_cmovznz_u32(x1742, x1729, x1705);
> +-    let mut x1750: u32 = 0;
> +     let (x1750) = fiat_p384_scalar_cmovznz_u32(x1742, x1731, x1707);
> +-    let mut x1751: u32 = 0;
> +     let (x1751) = fiat_p384_scalar_cmovznz_u32(x1742, x1733, x1709);
> +-    let mut x1752: u32 = 0;
> +     let (x1752) = fiat_p384_scalar_cmovznz_u32(x1742, x1735, x1711);
> +-    let mut x1753: u32 = 0;
> +     let (x1753) = fiat_p384_scalar_cmovznz_u32(x1742, x1737, x1713);
> +-    let mut x1754: u32 = 0;
> +     let (x1754) = fiat_p384_scalar_cmovznz_u32(x1742, x1739, x1715);
> +     out1[0] = x1743;
> +     out1[1] = x1744;
> +@@ -10527,29 +3907,17 @@ pub const fn fiat_p384_scalar_selectznz(
> +     arg3: &[u32; 12],
> + ) -> [u32; 12] {
> +     let mut out1: [u32; 12] = [0; 12];
> +-    let mut x1: u32 = 0;
> +     let (x1) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[0]), (arg3[0]));
> +-    let mut x2: u32 = 0;
> +     let (x2) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[1]), (arg3[1]));
> +-    let mut x3: u32 = 0;
> +     let (x3) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[2]), (arg3[2]));
> +-    let mut x4: u32 = 0;
> +     let (x4) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[3]), (arg3[3]));
> +-    let mut x5: u32 = 0;
> +     let (x5) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[4]), (arg3[4]));
> +-    let mut x6: u32 = 0;
> +     let (x6) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[5]), (arg3[5]));
> +-    let mut x7: u32 = 0;
> +     let (x7) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[6]), (arg3[6]));
> +-    let mut x8: u32 = 0;
> +     let (x8) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[7]), (arg3[7]));
> +-    let mut x9: u32 = 0;
> +     let (x9) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[8]), (arg3[8]));
> +-    let mut x10: u32 = 0;
> +     let (x10) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[9]), (arg3[9]));
> +-    let mut x11: u32 = 0;
> +     let (x11) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[10]), (arg3[10]));
> +-    let mut x12: u32 = 0;
> +     let (x12) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[11]), (arg3[11]));
> +     out1[0] = x1;
> +     out1[1] = x2;
> +@@ -10916,205 +4284,86 @@ pub const fn fiat_p384_scalar_divstep(
> +     let mut out3: [u32; 13] = [0; 13];
> +     let mut out4: [u32; 12] = [0; 12];
> +     let mut out5: [u32; 12] = [0; 12];
> +-    let mut x1: u32 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
> +     let x3: fiat_p384_scalar_u1 =
> +         (((x1 >> 31) as fiat_p384_scalar_u1) & (((arg3[0]) & (0x1 as u32)) as fiat_p384_scalar_u1));
> +-    let mut x4: u32 = 0;
> +-    let mut x5: fiat_p384_scalar_u1 = 0;
> +     let (x4, x5) = fiat_p384_scalar_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
> +-    let mut x6: u32 = 0;
> +     let (x6) = fiat_p384_scalar_cmovznz_u32(x3, arg1, x4);
> +-    let mut x7: u32 = 0;
> +     let (x7) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[0]), (arg3[0]));
> +-    let mut x8: u32 = 0;
> +     let (x8) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[1]), (arg3[1]));
> +-    let mut x9: u32 = 0;
> +     let (x9) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[2]), (arg3[2]));
> +-    let mut x10: u32 = 0;
> +     let (x10) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[3]), (arg3[3]));
> +-    let mut x11: u32 = 0;
> +     let (x11) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[4]), (arg3[4]));
> +-    let mut x12: u32 = 0;
> +     let (x12) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[5]), (arg3[5]));
> +-    let mut x13: u32 = 0;
> +     let (x13) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[6]), (arg3[6]));
> +-    let mut x14: u32 = 0;
> +     let (x14) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[7]), (arg3[7]));
> +-    let mut x15: u32 = 0;
> +     let (x15) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[8]), (arg3[8]));
> +-    let mut x16: u32 = 0;
> +     let (x16) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[9]), (arg3[9]));
> +-    let mut x17: u32 = 0;
> +     let (x17) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[10]), (arg3[10]));
> +-    let mut x18: u32 = 0;
> +     let (x18) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[11]), (arg3[11]));
> +-    let mut x19: u32 = 0;
> +     let (x19) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[12]), (arg3[12]));
> +-    let mut x20: u32 = 0;
> +-    let mut x21: fiat_p384_scalar_u1 = 0;
> +     let (x20, x21) = fiat_p384_scalar_addcarryx_u32(0x0, (0x1 as u32), (!(arg2[0])));
> +-    let mut x22: u32 = 0;
> +-    let mut x23: fiat_p384_scalar_u1 = 0;
> +     let (x22, x23) = fiat_p384_scalar_addcarryx_u32(x21, (0x0 as u32), (!(arg2[1])));
> +-    let mut x24: u32 = 0;
> +-    let mut x25: fiat_p384_scalar_u1 = 0;
> +     let (x24, x25) = fiat_p384_scalar_addcarryx_u32(x23, (0x0 as u32), (!(arg2[2])));
> +-    let mut x26: u32 = 0;
> +-    let mut x27: fiat_p384_scalar_u1 = 0;
> +     let (x26, x27) = fiat_p384_scalar_addcarryx_u32(x25, (0x0 as u32), (!(arg2[3])));
> +-    let mut x28: u32 = 0;
> +-    let mut x29: fiat_p384_scalar_u1 = 0;
> +     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, (0x0 as u32), (!(arg2[4])));
> +-    let mut x30: u32 = 0;
> +-    let mut x31: fiat_p384_scalar_u1 = 0;
> +     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, (0x0 as u32), (!(arg2[5])));
> +-    let mut x32: u32 = 0;
> +-    let mut x33: fiat_p384_scalar_u1 = 0;
> +     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, (0x0 as u32), (!(arg2[6])));
> +-    let mut x34: u32 = 0;
> +-    let mut x35: fiat_p384_scalar_u1 = 0;
> +     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, (0x0 as u32), (!(arg2[7])));
> +-    let mut x36: u32 = 0;
> +-    let mut x37: fiat_p384_scalar_u1 = 0;
> +     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, (0x0 as u32), (!(arg2[8])));
> +-    let mut x38: u32 = 0;
> +-    let mut x39: fiat_p384_scalar_u1 = 0;
> +     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, (0x0 as u32), (!(arg2[9])));
> +-    let mut x40: u32 = 0;
> +-    let mut x41: fiat_p384_scalar_u1 = 0;
> +     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, (0x0 as u32), (!(arg2[10])));
> +-    let mut x42: u32 = 0;
> +-    let mut x43: fiat_p384_scalar_u1 = 0;
> +     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, (0x0 as u32), (!(arg2[11])));
> +-    let mut x44: u32 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, (0x0 as u32), (!(arg2[12])));
> +-    let mut x46: u32 = 0;
> +     let (x46) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[0]), x20);
> +-    let mut x47: u32 = 0;
> +     let (x47) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[1]), x22);
> +-    let mut x48: u32 = 0;
> +     let (x48) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[2]), x24);
> +-    let mut x49: u32 = 0;
> +     let (x49) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[3]), x26);
> +-    let mut x50: u32 = 0;
> +     let (x50) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[4]), x28);
> +-    let mut x51: u32 = 0;
> +     let (x51) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[5]), x30);
> +-    let mut x52: u32 = 0;
> +     let (x52) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[6]), x32);
> +-    let mut x53: u32 = 0;
> +     let (x53) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[7]), x34);
> +-    let mut x54: u32 = 0;
> +     let (x54) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[8]), x36);
> +-    let mut x55: u32 = 0;
> +     let (x55) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[9]), x38);
> +-    let mut x56: u32 = 0;
> +     let (x56) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[10]), x40);
> +-    let mut x57: u32 = 0;
> +     let (x57) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[11]), x42);
> +-    let mut x58: u32 = 0;
> +     let (x58) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[12]), x44);
> +-    let mut x59: u32 = 0;
> +     let (x59) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[0]), (arg5[0]));
> +-    let mut x60: u32 = 0;
> +     let (x60) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[1]), (arg5[1]));
> +-    let mut x61: u32 = 0;
> +     let (x61) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[2]), (arg5[2]));
> +-    let mut x62: u32 = 0;
> +     let (x62) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[3]), (arg5[3]));
> +-    let mut x63: u32 = 0;
> +     let (x63) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[4]), (arg5[4]));
> +-    let mut x64: u32 = 0;
> +     let (x64) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[5]), (arg5[5]));
> +-    let mut x65: u32 = 0;
> +     let (x65) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[6]), (arg5[6]));
> +-    let mut x66: u32 = 0;
> +     let (x66) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[7]), (arg5[7]));
> +-    let mut x67: u32 = 0;
> +     let (x67) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[8]), (arg5[8]));
> +-    let mut x68: u32 = 0;
> +     let (x68) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[9]), (arg5[9]));
> +-    let mut x69: u32 = 0;
> +     let (x69) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[10]), (arg5[10]));
> +-    let mut x70: u32 = 0;
> +     let (x70) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[11]), (arg5[11]));
> +-    let mut x71: u32 = 0;
> +-    let mut x72: fiat_p384_scalar_u1 = 0;
> +     let (x71, x72) = fiat_p384_scalar_addcarryx_u32(0x0, x59, x59);
> +-    let mut x73: u32 = 0;
> +-    let mut x74: fiat_p384_scalar_u1 = 0;
> +     let (x73, x74) = fiat_p384_scalar_addcarryx_u32(x72, x60, x60);
> +-    let mut x75: u32 = 0;
> +-    let mut x76: fiat_p384_scalar_u1 = 0;
> +     let (x75, x76) = fiat_p384_scalar_addcarryx_u32(x74, x61, x61);
> +-    let mut x77: u32 = 0;
> +-    let mut x78: fiat_p384_scalar_u1 = 0;
> +     let (x77, x78) = fiat_p384_scalar_addcarryx_u32(x76, x62, x62);
> +-    let mut x79: u32 = 0;
> +-    let mut x80: fiat_p384_scalar_u1 = 0;
> +     let (x79, x80) = fiat_p384_scalar_addcarryx_u32(x78, x63, x63);
> +-    let mut x81: u32 = 0;
> +-    let mut x82: fiat_p384_scalar_u1 = 0;
> +     let (x81, x82) = fiat_p384_scalar_addcarryx_u32(x80, x64, x64);
> +-    let mut x83: u32 = 0;
> +-    let mut x84: fiat_p384_scalar_u1 = 0;
> +     let (x83, x84) = fiat_p384_scalar_addcarryx_u32(x82, x65, x65);
> +-    let mut x85: u32 = 0;
> +-    let mut x86: fiat_p384_scalar_u1 = 0;
> +     let (x85, x86) = fiat_p384_scalar_addcarryx_u32(x84, x66, x66);
> +-    let mut x87: u32 = 0;
> +-    let mut x88: fiat_p384_scalar_u1 = 0;
> +     let (x87, x88) = fiat_p384_scalar_addcarryx_u32(x86, x67, x67);
> +-    let mut x89: u32 = 0;
> +-    let mut x90: fiat_p384_scalar_u1 = 0;
> +     let (x89, x90) = fiat_p384_scalar_addcarryx_u32(x88, x68, x68);
> +-    let mut x91: u32 = 0;
> +-    let mut x92: fiat_p384_scalar_u1 = 0;
> +     let (x91, x92) = fiat_p384_scalar_addcarryx_u32(x90, x69, x69);
> +-    let mut x93: u32 = 0;
> +-    let mut x94: fiat_p384_scalar_u1 = 0;
> +     let (x93, x94) = fiat_p384_scalar_addcarryx_u32(x92, x70, x70);
> +-    let mut x95: u32 = 0;
> +-    let mut x96: fiat_p384_scalar_u1 = 0;
> +     let (x95, x96) = fiat_p384_scalar_subborrowx_u32(0x0, x71, 0xccc52973);
> +-    let mut x97: u32 = 0;
> +-    let mut x98: fiat_p384_scalar_u1 = 0;
> +     let (x97, x98) = fiat_p384_scalar_subborrowx_u32(x96, x73, 0xecec196a);
> +-    let mut x99: u32 = 0;
> +-    let mut x100: fiat_p384_scalar_u1 = 0;
> +     let (x99, x100) = fiat_p384_scalar_subborrowx_u32(x98, x75, 0x48b0a77a);
> +-    let mut x101: u32 = 0;
> +-    let mut x102: fiat_p384_scalar_u1 = 0;
> +     let (x101, x102) = fiat_p384_scalar_subborrowx_u32(x100, x77, 0x581a0db2);
> +-    let mut x103: u32 = 0;
> +-    let mut x104: fiat_p384_scalar_u1 = 0;
> +     let (x103, x104) = fiat_p384_scalar_subborrowx_u32(x102, x79, 0xf4372ddf);
> +-    let mut x105: u32 = 0;
> +-    let mut x106: fiat_p384_scalar_u1 = 0;
> +     let (x105, x106) = fiat_p384_scalar_subborrowx_u32(x104, x81, 0xc7634d81);
> +-    let mut x107: u32 = 0;
> +-    let mut x108: fiat_p384_scalar_u1 = 0;
> +     let (x107, x108) = fiat_p384_scalar_subborrowx_u32(x106, x83, 0xffffffff);
> +-    let mut x109: u32 = 0;
> +-    let mut x110: fiat_p384_scalar_u1 = 0;
> +     let (x109, x110) = fiat_p384_scalar_subborrowx_u32(x108, x85, 0xffffffff);
> +-    let mut x111: u32 = 0;
> +-    let mut x112: fiat_p384_scalar_u1 = 0;
> +     let (x111, x112) = fiat_p384_scalar_subborrowx_u32(x110, x87, 0xffffffff);
> +-    let mut x113: u32 = 0;
> +-    let mut x114: fiat_p384_scalar_u1 = 0;
> +     let (x113, x114) = fiat_p384_scalar_subborrowx_u32(x112, x89, 0xffffffff);
> +-    let mut x115: u32 = 0;
> +-    let mut x116: fiat_p384_scalar_u1 = 0;
> +     let (x115, x116) = fiat_p384_scalar_subborrowx_u32(x114, x91, 0xffffffff);
> +-    let mut x117: u32 = 0;
> +-    let mut x118: fiat_p384_scalar_u1 = 0;
> +     let (x117, x118) = fiat_p384_scalar_subborrowx_u32(x116, x93, 0xffffffff);
> +-    let mut x119: u32 = 0;
> +-    let mut x120: fiat_p384_scalar_u1 = 0;
> +     let (x119, x120) = fiat_p384_scalar_subborrowx_u32(x118, (x94 as u32), (0x0 as u32));
> +     let x121: u32 = (arg4[11]);
> +     let x122: u32 = (arg4[10]);
> +@@ -11128,271 +4377,107 @@ pub const fn fiat_p384_scalar_divstep(
> +     let x130: u32 = (arg4[2]);
> +     let x131: u32 = (arg4[1]);
> +     let x132: u32 = (arg4[0]);
> +-    let mut x133: u32 = 0;
> +-    let mut x134: fiat_p384_scalar_u1 = 0;
> +     let (x133, x134) = fiat_p384_scalar_subborrowx_u32(0x0, (0x0 as u32), x132);
> +-    let mut x135: u32 = 0;
> +-    let mut x136: fiat_p384_scalar_u1 = 0;
> +     let (x135, x136) = fiat_p384_scalar_subborrowx_u32(x134, (0x0 as u32), x131);
> +-    let mut x137: u32 = 0;
> +-    let mut x138: fiat_p384_scalar_u1 = 0;
> +     let (x137, x138) = fiat_p384_scalar_subborrowx_u32(x136, (0x0 as u32), x130);
> +-    let mut x139: u32 = 0;
> +-    let mut x140: fiat_p384_scalar_u1 = 0;
> +     let (x139, x140) = fiat_p384_scalar_subborrowx_u32(x138, (0x0 as u32), x129);
> +-    let mut x141: u32 = 0;
> +-    let mut x142: fiat_p384_scalar_u1 = 0;
> +     let (x141, x142) = fiat_p384_scalar_subborrowx_u32(x140, (0x0 as u32), x128);
> +-    let mut x143: u32 = 0;
> +-    let mut x144: fiat_p384_scalar_u1 = 0;
> +     let (x143, x144) = fiat_p384_scalar_subborrowx_u32(x142, (0x0 as u32), x127);
> +-    let mut x145: u32 = 0;
> +-    let mut x146: fiat_p384_scalar_u1 = 0;
> +     let (x145, x146) = fiat_p384_scalar_subborrowx_u32(x144, (0x0 as u32), x126);
> +-    let mut x147: u32 = 0;
> +-    let mut x148: fiat_p384_scalar_u1 = 0;
> +     let (x147, x148) = fiat_p384_scalar_subborrowx_u32(x146, (0x0 as u32), x125);
> +-    let mut x149: u32 = 0;
> +-    let mut x150: fiat_p384_scalar_u1 = 0;
> +     let (x149, x150) = fiat_p384_scalar_subborrowx_u32(x148, (0x0 as u32), x124);
> +-    let mut x151: u32 = 0;
> +-    let mut x152: fiat_p384_scalar_u1 = 0;
> +     let (x151, x152) = fiat_p384_scalar_subborrowx_u32(x150, (0x0 as u32), x123);
> +-    let mut x153: u32 = 0;
> +-    let mut x154: fiat_p384_scalar_u1 = 0;
> +     let (x153, x154) = fiat_p384_scalar_subborrowx_u32(x152, (0x0 as u32), x122);
> +-    let mut x155: u32 = 0;
> +-    let mut x156: fiat_p384_scalar_u1 = 0;
> +     let (x155, x156) = fiat_p384_scalar_subborrowx_u32(x154, (0x0 as u32), x121);
> +-    let mut x157: u32 = 0;
> +     let (x157) = fiat_p384_scalar_cmovznz_u32(x156, (0x0 as u32), 0xffffffff);
> +-    let mut x158: u32 = 0;
> +-    let mut x159: fiat_p384_scalar_u1 = 0;
> +     let (x158, x159) = fiat_p384_scalar_addcarryx_u32(0x0, x133, (x157 & 0xccc52973));
> +-    let mut x160: u32 = 0;
> +-    let mut x161: fiat_p384_scalar_u1 = 0;
> +     let (x160, x161) = fiat_p384_scalar_addcarryx_u32(x159, x135, (x157 & 0xecec196a));
> +-    let mut x162: u32 = 0;
> +-    let mut x163: fiat_p384_scalar_u1 = 0;
> +     let (x162, x163) = fiat_p384_scalar_addcarryx_u32(x161, x137, (x157 & 0x48b0a77a));
> +-    let mut x164: u32 = 0;
> +-    let mut x165: fiat_p384_scalar_u1 = 0;
> +     let (x164, x165) = fiat_p384_scalar_addcarryx_u32(x163, x139, (x157 & 0x581a0db2));
> +-    let mut x166: u32 = 0;
> +-    let mut x167: fiat_p384_scalar_u1 = 0;
> +     let (x166, x167) = fiat_p384_scalar_addcarryx_u32(x165, x141, (x157 & 0xf4372ddf));
> +-    let mut x168: u32 = 0;
> +-    let mut x169: fiat_p384_scalar_u1 = 0;
> +     let (x168, x169) = fiat_p384_scalar_addcarryx_u32(x167, x143, (x157 & 0xc7634d81));
> +-    let mut x170: u32 = 0;
> +-    let mut x171: fiat_p384_scalar_u1 = 0;
> +     let (x170, x171) = fiat_p384_scalar_addcarryx_u32(x169, x145, x157);
> +-    let mut x172: u32 = 0;
> +-    let mut x173: fiat_p384_scalar_u1 = 0;
> +     let (x172, x173) = fiat_p384_scalar_addcarryx_u32(x171, x147, x157);
> +-    let mut x174: u32 = 0;
> +-    let mut x175: fiat_p384_scalar_u1 = 0;
> +     let (x174, x175) = fiat_p384_scalar_addcarryx_u32(x173, x149, x157);
> +-    let mut x176: u32 = 0;
> +-    let mut x177: fiat_p384_scalar_u1 = 0;
> +     let (x176, x177) = fiat_p384_scalar_addcarryx_u32(x175, x151, x157);
> +-    let mut x178: u32 = 0;
> +-    let mut x179: fiat_p384_scalar_u1 = 0;
> +     let (x178, x179) = fiat_p384_scalar_addcarryx_u32(x177, x153, x157);
> +-    let mut x180: u32 = 0;
> +-    let mut x181: fiat_p384_scalar_u1 = 0;
> +     let (x180, x181) = fiat_p384_scalar_addcarryx_u32(x179, x155, x157);
> +-    let mut x182: u32 = 0;
> +     let (x182) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[0]), x158);
> +-    let mut x183: u32 = 0;
> +     let (x183) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[1]), x160);
> +-    let mut x184: u32 = 0;
> +     let (x184) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[2]), x162);
> +-    let mut x185: u32 = 0;
> +     let (x185) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[3]), x164);
> +-    let mut x186: u32 = 0;
> +     let (x186) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[4]), x166);
> +-    let mut x187: u32 = 0;
> +     let (x187) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[5]), x168);
> +-    let mut x188: u32 = 0;
> +     let (x188) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[6]), x170);
> +-    let mut x189: u32 = 0;
> +     let (x189) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[7]), x172);
> +-    let mut x190: u32 = 0;
> +     let (x190) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[8]), x174);
> +-    let mut x191: u32 = 0;
> +     let (x191) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[9]), x176);
> +-    let mut x192: u32 = 0;
> +     let (x192) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[10]), x178);
> +-    let mut x193: u32 = 0;
> +     let (x193) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[11]), x180);
> +     let x194: fiat_p384_scalar_u1 = ((x46 & (0x1 as u32)) as fiat_p384_scalar_u1);
> +-    let mut x195: u32 = 0;
> +     let (x195) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x7);
> +-    let mut x196: u32 = 0;
> +     let (x196) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x8);
> +-    let mut x197: u32 = 0;
> +     let (x197) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x9);
> +-    let mut x198: u32 = 0;
> +     let (x198) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x10);
> +-    let mut x199: u32 = 0;
> +     let (x199) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x11);
> +-    let mut x200: u32 = 0;
> +     let (x200) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x12);
> +-    let mut x201: u32 = 0;
> +     let (x201) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x13);
> +-    let mut x202: u32 = 0;
> +     let (x202) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x14);
> +-    let mut x203: u32 = 0;
> +     let (x203) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x15);
> +-    let mut x204: u32 = 0;
> +     let (x204) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x16);
> +-    let mut x205: u32 = 0;
> +     let (x205) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x17);
> +-    let mut x206: u32 = 0;
> +     let (x206) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x18);
> +-    let mut x207: u32 = 0;
> +     let (x207) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x19);
> +-    let mut x208: u32 = 0;
> +-    let mut x209: fiat_p384_scalar_u1 = 0;
> +     let (x208, x209) = fiat_p384_scalar_addcarryx_u32(0x0, x46, x195);
> +-    let mut x210: u32 = 0;
> +-    let mut x211: fiat_p384_scalar_u1 = 0;
> +     let (x210, x211) = fiat_p384_scalar_addcarryx_u32(x209, x47, x196);
> +-    let mut x212: u32 = 0;
> +-    let mut x213: fiat_p384_scalar_u1 = 0;
> +     let (x212, x213) = fiat_p384_scalar_addcarryx_u32(x211, x48, x197);
> +-    let mut x214: u32 = 0;
> +-    let mut x215: fiat_p384_scalar_u1 = 0;
> +     let (x214, x215) = fiat_p384_scalar_addcarryx_u32(x213, x49, x198);
> +-    let mut x216: u32 = 0;
> +-    let mut x217: fiat_p384_scalar_u1 = 0;
> +     let (x216, x217) = fiat_p384_scalar_addcarryx_u32(x215, x50, x199);
> +-    let mut x218: u32 = 0;
> +-    let mut x219: fiat_p384_scalar_u1 = 0;
> +     let (x218, x219) = fiat_p384_scalar_addcarryx_u32(x217, x51, x200);
> +-    let mut x220: u32 = 0;
> +-    let mut x221: fiat_p384_scalar_u1 = 0;
> +     let (x220, x221) = fiat_p384_scalar_addcarryx_u32(x219, x52, x201);
> +-    let mut x222: u32 = 0;
> +-    let mut x223: fiat_p384_scalar_u1 = 0;
> +     let (x222, x223) = fiat_p384_scalar_addcarryx_u32(x221, x53, x202);
> +-    let mut x224: u32 = 0;
> +-    let mut x225: fiat_p384_scalar_u1 = 0;
> +     let (x224, x225) = fiat_p384_scalar_addcarryx_u32(x223, x54, x203);
> +-    let mut x226: u32 = 0;
> +-    let mut x227: fiat_p384_scalar_u1 = 0;
> +     let (x226, x227) = fiat_p384_scalar_addcarryx_u32(x225, x55, x204);
> +-    let mut x228: u32 = 0;
> +-    let mut x229: fiat_p384_scalar_u1 = 0;
> +     let (x228, x229) = fiat_p384_scalar_addcarryx_u32(x227, x56, x205);
> +-    let mut x230: u32 = 0;
> +-    let mut x231: fiat_p384_scalar_u1 = 0;
> +     let (x230, x231) = fiat_p384_scalar_addcarryx_u32(x229, x57, x206);
> +-    let mut x232: u32 = 0;
> +-    let mut x233: fiat_p384_scalar_u1 = 0;
> +     let (x232, x233) = fiat_p384_scalar_addcarryx_u32(x231, x58, x207);
> +-    let mut x234: u32 = 0;
> +     let (x234) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x59);
> +-    let mut x235: u32 = 0;
> +     let (x235) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x60);
> +-    let mut x236: u32 = 0;
> +     let (x236) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x61);
> +-    let mut x237: u32 = 0;
> +     let (x237) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x62);
> +-    let mut x238: u32 = 0;
> +     let (x238) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x63);
> +-    let mut x239: u32 = 0;
> +     let (x239) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x64);
> +-    let mut x240: u32 = 0;
> +     let (x240) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x65);
> +-    let mut x241: u32 = 0;
> +     let (x241) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x66);
> +-    let mut x242: u32 = 0;
> +     let (x242) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x67);
> +-    let mut x243: u32 = 0;
> +     let (x243) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x68);
> +-    let mut x244: u32 = 0;
> +     let (x244) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x69);
> +-    let mut x245: u32 = 0;
> +     let (x245) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x70);
> +-    let mut x246: u32 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x234);
> +-    let mut x248: u32 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x183, x235);
> +-    let mut x250: u32 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x184, x236);
> +-    let mut x252: u32 = 0;
> +-    let mut x253: fiat_p384_scalar_u1 = 0;
> +     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x185, x237);
> +-    let mut x254: u32 = 0;
> +-    let mut x255: fiat_p384_scalar_u1 = 0;
> +     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x186, x238);
> +-    let mut x256: u32 = 0;
> +-    let mut x257: fiat_p384_scalar_u1 = 0;
> +     let (x256, x257) = fiat_p384_scalar_addcarryx_u32(x255, x187, x239);
> +-    let mut x258: u32 = 0;
> +-    let mut x259: fiat_p384_scalar_u1 = 0;
> +     let (x258, x259) = fiat_p384_scalar_addcarryx_u32(x257, x188, x240);
> +-    let mut x260: u32 = 0;
> +-    let mut x261: fiat_p384_scalar_u1 = 0;
> +     let (x260, x261) = fiat_p384_scalar_addcarryx_u32(x259, x189, x241);
> +-    let mut x262: u32 = 0;
> +-    let mut x263: fiat_p384_scalar_u1 = 0;
> +     let (x262, x263) = fiat_p384_scalar_addcarryx_u32(x261, x190, x242);
> +-    let mut x264: u32 = 0;
> +-    let mut x265: fiat_p384_scalar_u1 = 0;
> +     let (x264, x265) = fiat_p384_scalar_addcarryx_u32(x263, x191, x243);
> +-    let mut x266: u32 = 0;
> +-    let mut x267: fiat_p384_scalar_u1 = 0;
> +     let (x266, x267) = fiat_p384_scalar_addcarryx_u32(x265, x192, x244);
> +-    let mut x268: u32 = 0;
> +-    let mut x269: fiat_p384_scalar_u1 = 0;
> +     let (x268, x269) = fiat_p384_scalar_addcarryx_u32(x267, x193, x245);
> +-    let mut x270: u32 = 0;
> +-    let mut x271: fiat_p384_scalar_u1 = 0;
> +     let (x270, x271) = fiat_p384_scalar_subborrowx_u32(0x0, x246, 0xccc52973);
> +-    let mut x272: u32 = 0;
> +-    let mut x273: fiat_p384_scalar_u1 = 0;
> +     let (x272, x273) = fiat_p384_scalar_subborrowx_u32(x271, x248, 0xecec196a);
> +-    let mut x274: u32 = 0;
> +-    let mut x275: fiat_p384_scalar_u1 = 0;
> +     let (x274, x275) = fiat_p384_scalar_subborrowx_u32(x273, x250, 0x48b0a77a);
> +-    let mut x276: u32 = 0;
> +-    let mut x277: fiat_p384_scalar_u1 = 0;
> +     let (x276, x277) = fiat_p384_scalar_subborrowx_u32(x275, x252, 0x581a0db2);
> +-    let mut x278: u32 = 0;
> +-    let mut x279: fiat_p384_scalar_u1 = 0;
> +     let (x278, x279) = fiat_p384_scalar_subborrowx_u32(x277, x254, 0xf4372ddf);
> +-    let mut x280: u32 = 0;
> +-    let mut x281: fiat_p384_scalar_u1 = 0;
> +     let (x280, x281) = fiat_p384_scalar_subborrowx_u32(x279, x256, 0xc7634d81);
> +-    let mut x282: u32 = 0;
> +-    let mut x283: fiat_p384_scalar_u1 = 0;
> +     let (x282, x283) = fiat_p384_scalar_subborrowx_u32(x281, x258, 0xffffffff);
> +-    let mut x284: u32 = 0;
> +-    let mut x285: fiat_p384_scalar_u1 = 0;
> +     let (x284, x285) = fiat_p384_scalar_subborrowx_u32(x283, x260, 0xffffffff);
> +-    let mut x286: u32 = 0;
> +-    let mut x287: fiat_p384_scalar_u1 = 0;
> +     let (x286, x287) = fiat_p384_scalar_subborrowx_u32(x285, x262, 0xffffffff);
> +-    let mut x288: u32 = 0;
> +-    let mut x289: fiat_p384_scalar_u1 = 0;
> +     let (x288, x289) = fiat_p384_scalar_subborrowx_u32(x287, x264, 0xffffffff);
> +-    let mut x290: u32 = 0;
> +-    let mut x291: fiat_p384_scalar_u1 = 0;
> +     let (x290, x291) = fiat_p384_scalar_subborrowx_u32(x289, x266, 0xffffffff);
> +-    let mut x292: u32 = 0;
> +-    let mut x293: fiat_p384_scalar_u1 = 0;
> +     let (x292, x293) = fiat_p384_scalar_subborrowx_u32(x291, x268, 0xffffffff);
> +-    let mut x294: u32 = 0;
> +-    let mut x295: fiat_p384_scalar_u1 = 0;
> +     let (x294, x295) = fiat_p384_scalar_subborrowx_u32(x293, (x269 as u32), (0x0 as u32));
> +-    let mut x296: u32 = 0;
> +-    let mut x297: fiat_p384_scalar_u1 = 0;
> +     let (x296, x297) = fiat_p384_scalar_addcarryx_u32(0x0, x6, (0x1 as u32));
> +     let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
> +     let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
> +@@ -11407,53 +4492,29 @@ pub const fn fiat_p384_scalar_divstep(
> +     let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
> +     let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
> +     let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
> +-    let mut x311: u32 = 0;
> +     let (x311) = fiat_p384_scalar_cmovznz_u32(x120, x95, x71);
> +-    let mut x312: u32 = 0;
> +     let (x312) = fiat_p384_scalar_cmovznz_u32(x120, x97, x73);
> +-    let mut x313: u32 = 0;
> +     let (x313) = fiat_p384_scalar_cmovznz_u32(x120, x99, x75);
> +-    let mut x314: u32 = 0;
> +     let (x314) = fiat_p384_scalar_cmovznz_u32(x120, x101, x77);
> +-    let mut x315: u32 = 0;
> +     let (x315) = fiat_p384_scalar_cmovznz_u32(x120, x103, x79);
> +-    let mut x316: u32 = 0;
> +     let (x316) = fiat_p384_scalar_cmovznz_u32(x120, x105, x81);
> +-    let mut x317: u32 = 0;
> +     let (x317) = fiat_p384_scalar_cmovznz_u32(x120, x107, x83);
> +-    let mut x318: u32 = 0;
> +     let (x318) = fiat_p384_scalar_cmovznz_u32(x120, x109, x85);
> +-    let mut x319: u32 = 0;
> +     let (x319) = fiat_p384_scalar_cmovznz_u32(x120, x111, x87);
> +-    let mut x320: u32 = 0;
> +     let (x320) = fiat_p384_scalar_cmovznz_u32(x120, x113, x89);
> +-    let mut x321: u32 = 0;
> +     let (x321) = fiat_p384_scalar_cmovznz_u32(x120, x115, x91);
> +-    let mut x322: u32 = 0;
> +     let (x322) = fiat_p384_scalar_cmovznz_u32(x120, x117, x93);
> +-    let mut x323: u32 = 0;
> +     let (x323) = fiat_p384_scalar_cmovznz_u32(x295, x270, x246);
> +-    let mut x324: u32 = 0;
> +     let (x324) = fiat_p384_scalar_cmovznz_u32(x295, x272, x248);
> +-    let mut x325: u32 = 0;
> +     let (x325) = fiat_p384_scalar_cmovznz_u32(x295, x274, x250);
> +-    let mut x326: u32 = 0;
> +     let (x326) = fiat_p384_scalar_cmovznz_u32(x295, x276, x252);
> +-    let mut x327: u32 = 0;
> +     let (x327) = fiat_p384_scalar_cmovznz_u32(x295, x278, x254);
> +-    let mut x328: u32 = 0;
> +     let (x328) = fiat_p384_scalar_cmovznz_u32(x295, x280, x256);
> +-    let mut x329: u32 = 0;
> +     let (x329) = fiat_p384_scalar_cmovznz_u32(x295, x282, x258);
> +-    let mut x330: u32 = 0;
> +     let (x330) = fiat_p384_scalar_cmovznz_u32(x295, x284, x260);
> +-    let mut x331: u32 = 0;
> +     let (x331) = fiat_p384_scalar_cmovznz_u32(x295, x286, x262);
> +-    let mut x332: u32 = 0;
> +     let (x332) = fiat_p384_scalar_cmovznz_u32(x295, x288, x264);
> +-    let mut x333: u32 = 0;
> +     let (x333) = fiat_p384_scalar_cmovznz_u32(x295, x290, x266);
> +-    let mut x334: u32 = 0;
> +     let (x334) = fiat_p384_scalar_cmovznz_u32(x295, x292, x268);
> +     out1 = x296;
> +     out2[0] = x7;
> +diff --git a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs
> +index 5b47731..0f59cde 100644
> +--- a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs
> ++++ b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs
> +@@ -168,700 +168,250 @@ pub const fn fiat_p384_scalar_mul(
> +     let x4: u64 = (arg1[4]);
> +     let x5: u64 = (arg1[5]);
> +     let x6: u64 = (arg1[0]);
> +-    let mut x7: u64 = 0;
> +-    let mut x8: u64 = 0;
> +     let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, (arg2[5]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: u64 = 0;
> +     let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, (arg2[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: u64 = 0;
> +     let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, (arg2[3]));
> +-    let mut x13: u64 = 0;
> +-    let mut x14: u64 = 0;
> +     let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, (arg2[2]));
> +-    let mut x15: u64 = 0;
> +-    let mut x16: u64 = 0;
> +     let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, (arg2[1]));
> +-    let mut x17: u64 = 0;
> +-    let mut x18: u64 = 0;
> +     let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, (arg2[0]));
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_scalar_u1 = 0;
> +     let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
> +-    let mut x27: u64 = 0;
> +-    let mut x28: fiat_p384_scalar_u1 = 0;
> +     let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
> +     let x29: u64 = ((x28 as u64) + x8);
> +-    let mut x30: u64 = 0;
> +-    let mut x31: u64 = 0;
> +     let (x30, x31) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
> +-    let mut x32: u64 = 0;
> +-    let mut x33: u64 = 0;
> +     let (x32, x33) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x34: u64 = 0;
> +-    let mut x35: u64 = 0;
> +     let (x34, x35) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x36: u64 = 0;
> +-    let mut x37: u64 = 0;
> +     let (x36, x37) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x38: u64 = 0;
> +-    let mut x39: u64 = 0;
> +     let (x38, x39) = fiat_p384_scalar_mulx_u64(x30, 0xc7634d81f4372ddf);
> +-    let mut x40: u64 = 0;
> +-    let mut x41: u64 = 0;
> +     let (x40, x41) = fiat_p384_scalar_mulx_u64(x30, 0x581a0db248b0a77a);
> +-    let mut x42: u64 = 0;
> +-    let mut x43: u64 = 0;
> +     let (x42, x43) = fiat_p384_scalar_mulx_u64(x30, 0xecec196accc52973);
> +-    let mut x44: u64 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u64(0x0, x43, x40);
> +-    let mut x46: u64 = 0;
> +-    let mut x47: fiat_p384_scalar_u1 = 0;
> +     let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x41, x38);
> +-    let mut x48: u64 = 0;
> +-    let mut x49: fiat_p384_scalar_u1 = 0;
> +     let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x39, x36);
> +-    let mut x50: u64 = 0;
> +-    let mut x51: fiat_p384_scalar_u1 = 0;
> +     let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x37, x34);
> +-    let mut x52: u64 = 0;
> +-    let mut x53: fiat_p384_scalar_u1 = 0;
> +     let (x52, x53) = fiat_p384_scalar_addcarryx_u64(x51, x35, x32);
> +     let x54: u64 = ((x53 as u64) + x33);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x42);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x19, x44);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_scalar_u1 = 0;
> +     let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x21, x46);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_scalar_u1 = 0;
> +     let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x23, x48);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_scalar_u1 = 0;
> +     let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x25, x50);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_scalar_u1 = 0;
> +     let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, x27, x52);
> +-    let mut x67: u64 = 0;
> +-    let mut x68: fiat_p384_scalar_u1 = 0;
> +     let (x67, x68) = fiat_p384_scalar_addcarryx_u64(x66, x29, x54);
> +-    let mut x69: u64 = 0;
> +-    let mut x70: u64 = 0;
> +     let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, (arg2[5]));
> +-    let mut x71: u64 = 0;
> +-    let mut x72: u64 = 0;
> +     let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, (arg2[4]));
> +-    let mut x73: u64 = 0;
> +-    let mut x74: u64 = 0;
> +     let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, (arg2[3]));
> +-    let mut x75: u64 = 0;
> +-    let mut x76: u64 = 0;
> +     let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, (arg2[2]));
> +-    let mut x77: u64 = 0;
> +-    let mut x78: u64 = 0;
> +     let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, (arg2[1]));
> +-    let mut x79: u64 = 0;
> +-    let mut x80: u64 = 0;
> +     let (x79, x80) = fiat_p384_scalar_mulx_u64(x1, (arg2[0]));
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_scalar_u1 = 0;
> +     let (x81, x82) = fiat_p384_scalar_addcarryx_u64(0x0, x80, x77);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_scalar_u1 = 0;
> +     let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x78, x75);
> +-    let mut x85: u64 = 0;
> +-    let mut x86: fiat_p384_scalar_u1 = 0;
> +     let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x76, x73);
> +-    let mut x87: u64 = 0;
> +-    let mut x88: fiat_p384_scalar_u1 = 0;
> +     let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x74, x71);
> +-    let mut x89: u64 = 0;
> +-    let mut x90: fiat_p384_scalar_u1 = 0;
> +     let (x89, x90) = fiat_p384_scalar_addcarryx_u64(x88, x72, x69);
> +     let x91: u64 = ((x90 as u64) + x70);
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(0x0, x57, x79);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x59, x81);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x61, x83);
> +-    let mut x98: u64 = 0;
> +-    let mut x99: fiat_p384_scalar_u1 = 0;
> +     let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x63, x85);
> +-    let mut x100: u64 = 0;
> +-    let mut x101: fiat_p384_scalar_u1 = 0;
> +     let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x65, x87);
> +-    let mut x102: u64 = 0;
> +-    let mut x103: fiat_p384_scalar_u1 = 0;
> +     let (x102, x103) = fiat_p384_scalar_addcarryx_u64(x101, x67, x89);
> +-    let mut x104: u64 = 0;
> +-    let mut x105: fiat_p384_scalar_u1 = 0;
> +     let (x104, x105) = fiat_p384_scalar_addcarryx_u64(x103, (x68 as u64), x91);
> +-    let mut x106: u64 = 0;
> +-    let mut x107: u64 = 0;
> +     let (x106, x107) = fiat_p384_scalar_mulx_u64(x92, 0x6ed46089e88fdc45);
> +-    let mut x108: u64 = 0;
> +-    let mut x109: u64 = 0;
> +     let (x108, x109) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x110: u64 = 0;
> +-    let mut x111: u64 = 0;
> +     let (x110, x111) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: u64 = 0;
> +     let (x112, x113) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: u64 = 0;
> +     let (x114, x115) = fiat_p384_scalar_mulx_u64(x106, 0xc7634d81f4372ddf);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: u64 = 0;
> +     let (x116, x117) = fiat_p384_scalar_mulx_u64(x106, 0x581a0db248b0a77a);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: u64 = 0;
> +     let (x118, x119) = fiat_p384_scalar_mulx_u64(x106, 0xecec196accc52973);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_scalar_u1 = 0;
> +     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(0x0, x119, x116);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_scalar_u1 = 0;
> +     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x117, x114);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_scalar_u1 = 0;
> +     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x115, x112);
> +-    let mut x126: u64 = 0;
> +-    let mut x127: fiat_p384_scalar_u1 = 0;
> +     let (x126, x127) = fiat_p384_scalar_addcarryx_u64(x125, x113, x110);
> +-    let mut x128: u64 = 0;
> +-    let mut x129: fiat_p384_scalar_u1 = 0;
> +     let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x111, x108);
> +     let x130: u64 = ((x129 as u64) + x109);
> +-    let mut x131: u64 = 0;
> +-    let mut x132: fiat_p384_scalar_u1 = 0;
> +     let (x131, x132) = fiat_p384_scalar_addcarryx_u64(0x0, x92, x118);
> +-    let mut x133: u64 = 0;
> +-    let mut x134: fiat_p384_scalar_u1 = 0;
> +     let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x94, x120);
> +-    let mut x135: u64 = 0;
> +-    let mut x136: fiat_p384_scalar_u1 = 0;
> +     let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x96, x122);
> +-    let mut x137: u64 = 0;
> +-    let mut x138: fiat_p384_scalar_u1 = 0;
> +     let (x137, x138) = fiat_p384_scalar_addcarryx_u64(x136, x98, x124);
> +-    let mut x139: u64 = 0;
> +-    let mut x140: fiat_p384_scalar_u1 = 0;
> +     let (x139, x140) = fiat_p384_scalar_addcarryx_u64(x138, x100, x126);
> +-    let mut x141: u64 = 0;
> +-    let mut x142: fiat_p384_scalar_u1 = 0;
> +     let (x141, x142) = fiat_p384_scalar_addcarryx_u64(x140, x102, x128);
> +-    let mut x143: u64 = 0;
> +-    let mut x144: fiat_p384_scalar_u1 = 0;
> +     let (x143, x144) = fiat_p384_scalar_addcarryx_u64(x142, x104, x130);
> +     let x145: u64 = ((x144 as u64) + (x105 as u64));
> +-    let mut x146: u64 = 0;
> +-    let mut x147: u64 = 0;
> +     let (x146, x147) = fiat_p384_scalar_mulx_u64(x2, (arg2[5]));
> +-    let mut x148: u64 = 0;
> +-    let mut x149: u64 = 0;
> +     let (x148, x149) = fiat_p384_scalar_mulx_u64(x2, (arg2[4]));
> +-    let mut x150: u64 = 0;
> +-    let mut x151: u64 = 0;
> +     let (x150, x151) = fiat_p384_scalar_mulx_u64(x2, (arg2[3]));
> +-    let mut x152: u64 = 0;
> +-    let mut x153: u64 = 0;
> +     let (x152, x153) = fiat_p384_scalar_mulx_u64(x2, (arg2[2]));
> +-    let mut x154: u64 = 0;
> +-    let mut x155: u64 = 0;
> +     let (x154, x155) = fiat_p384_scalar_mulx_u64(x2, (arg2[1]));
> +-    let mut x156: u64 = 0;
> +-    let mut x157: u64 = 0;
> +     let (x156, x157) = fiat_p384_scalar_mulx_u64(x2, (arg2[0]));
> +-    let mut x158: u64 = 0;
> +-    let mut x159: fiat_p384_scalar_u1 = 0;
> +     let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x157, x154);
> +-    let mut x160: u64 = 0;
> +-    let mut x161: fiat_p384_scalar_u1 = 0;
> +     let (x160, x161) = fiat_p384_scalar_addcarryx_u64(x159, x155, x152);
> +-    let mut x162: u64 = 0;
> +-    let mut x163: fiat_p384_scalar_u1 = 0;
> +     let (x162, x163) = fiat_p384_scalar_addcarryx_u64(x161, x153, x150);
> +-    let mut x164: u64 = 0;
> +-    let mut x165: fiat_p384_scalar_u1 = 0;
> +     let (x164, x165) = fiat_p384_scalar_addcarryx_u64(x163, x151, x148);
> +-    let mut x166: u64 = 0;
> +-    let mut x167: fiat_p384_scalar_u1 = 0;
> +     let (x166, x167) = fiat_p384_scalar_addcarryx_u64(x165, x149, x146);
> +     let x168: u64 = ((x167 as u64) + x147);
> +-    let mut x169: u64 = 0;
> +-    let mut x170: fiat_p384_scalar_u1 = 0;
> +     let (x169, x170) = fiat_p384_scalar_addcarryx_u64(0x0, x133, x156);
> +-    let mut x171: u64 = 0;
> +-    let mut x172: fiat_p384_scalar_u1 = 0;
> +     let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x135, x158);
> +-    let mut x173: u64 = 0;
> +-    let mut x174: fiat_p384_scalar_u1 = 0;
> +     let (x173, x174) = fiat_p384_scalar_addcarryx_u64(x172, x137, x160);
> +-    let mut x175: u64 = 0;
> +-    let mut x176: fiat_p384_scalar_u1 = 0;
> +     let (x175, x176) = fiat_p384_scalar_addcarryx_u64(x174, x139, x162);
> +-    let mut x177: u64 = 0;
> +-    let mut x178: fiat_p384_scalar_u1 = 0;
> +     let (x177, x178) = fiat_p384_scalar_addcarryx_u64(x176, x141, x164);
> +-    let mut x179: u64 = 0;
> +-    let mut x180: fiat_p384_scalar_u1 = 0;
> +     let (x179, x180) = fiat_p384_scalar_addcarryx_u64(x178, x143, x166);
> +-    let mut x181: u64 = 0;
> +-    let mut x182: fiat_p384_scalar_u1 = 0;
> +     let (x181, x182) = fiat_p384_scalar_addcarryx_u64(x180, x145, x168);
> +-    let mut x183: u64 = 0;
> +-    let mut x184: u64 = 0;
> +     let (x183, x184) = fiat_p384_scalar_mulx_u64(x169, 0x6ed46089e88fdc45);
> +-    let mut x185: u64 = 0;
> +-    let mut x186: u64 = 0;
> +     let (x185, x186) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x187: u64 = 0;
> +-    let mut x188: u64 = 0;
> +     let (x187, x188) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x189: u64 = 0;
> +-    let mut x190: u64 = 0;
> +     let (x189, x190) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x191: u64 = 0;
> +-    let mut x192: u64 = 0;
> +     let (x191, x192) = fiat_p384_scalar_mulx_u64(x183, 0xc7634d81f4372ddf);
> +-    let mut x193: u64 = 0;
> +-    let mut x194: u64 = 0;
> +     let (x193, x194) = fiat_p384_scalar_mulx_u64(x183, 0x581a0db248b0a77a);
> +-    let mut x195: u64 = 0;
> +-    let mut x196: u64 = 0;
> +     let (x195, x196) = fiat_p384_scalar_mulx_u64(x183, 0xecec196accc52973);
> +-    let mut x197: u64 = 0;
> +-    let mut x198: fiat_p384_scalar_u1 = 0;
> +     let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x196, x193);
> +-    let mut x199: u64 = 0;
> +-    let mut x200: fiat_p384_scalar_u1 = 0;
> +     let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x194, x191);
> +-    let mut x201: u64 = 0;
> +-    let mut x202: fiat_p384_scalar_u1 = 0;
> +     let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x192, x189);
> +-    let mut x203: u64 = 0;
> +-    let mut x204: fiat_p384_scalar_u1 = 0;
> +     let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x190, x187);
> +-    let mut x205: u64 = 0;
> +-    let mut x206: fiat_p384_scalar_u1 = 0;
> +     let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x188, x185);
> +     let x207: u64 = ((x206 as u64) + x186);
> +-    let mut x208: u64 = 0;
> +-    let mut x209: fiat_p384_scalar_u1 = 0;
> +     let (x208, x209) = fiat_p384_scalar_addcarryx_u64(0x0, x169, x195);
> +-    let mut x210: u64 = 0;
> +-    let mut x211: fiat_p384_scalar_u1 = 0;
> +     let (x210, x211) = fiat_p384_scalar_addcarryx_u64(x209, x171, x197);
> +-    let mut x212: u64 = 0;
> +-    let mut x213: fiat_p384_scalar_u1 = 0;
> +     let (x212, x213) = fiat_p384_scalar_addcarryx_u64(x211, x173, x199);
> +-    let mut x214: u64 = 0;
> +-    let mut x215: fiat_p384_scalar_u1 = 0;
> +     let (x214, x215) = fiat_p384_scalar_addcarryx_u64(x213, x175, x201);
> +-    let mut x216: u64 = 0;
> +-    let mut x217: fiat_p384_scalar_u1 = 0;
> +     let (x216, x217) = fiat_p384_scalar_addcarryx_u64(x215, x177, x203);
> +-    let mut x218: u64 = 0;
> +-    let mut x219: fiat_p384_scalar_u1 = 0;
> +     let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x179, x205);
> +-    let mut x220: u64 = 0;
> +-    let mut x221: fiat_p384_scalar_u1 = 0;
> +     let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x181, x207);
> +     let x222: u64 = ((x221 as u64) + (x182 as u64));
> +-    let mut x223: u64 = 0;
> +-    let mut x224: u64 = 0;
> +     let (x223, x224) = fiat_p384_scalar_mulx_u64(x3, (arg2[5]));
> +-    let mut x225: u64 = 0;
> +-    let mut x226: u64 = 0;
> +     let (x225, x226) = fiat_p384_scalar_mulx_u64(x3, (arg2[4]));
> +-    let mut x227: u64 = 0;
> +-    let mut x228: u64 = 0;
> +     let (x227, x228) = fiat_p384_scalar_mulx_u64(x3, (arg2[3]));
> +-    let mut x229: u64 = 0;
> +-    let mut x230: u64 = 0;
> +     let (x229, x230) = fiat_p384_scalar_mulx_u64(x3, (arg2[2]));
> +-    let mut x231: u64 = 0;
> +-    let mut x232: u64 = 0;
> +     let (x231, x232) = fiat_p384_scalar_mulx_u64(x3, (arg2[1]));
> +-    let mut x233: u64 = 0;
> +-    let mut x234: u64 = 0;
> +     let (x233, x234) = fiat_p384_scalar_mulx_u64(x3, (arg2[0]));
> +-    let mut x235: u64 = 0;
> +-    let mut x236: fiat_p384_scalar_u1 = 0;
> +     let (x235, x236) = fiat_p384_scalar_addcarryx_u64(0x0, x234, x231);
> +-    let mut x237: u64 = 0;
> +-    let mut x238: fiat_p384_scalar_u1 = 0;
> +     let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x232, x229);
> +-    let mut x239: u64 = 0;
> +-    let mut x240: fiat_p384_scalar_u1 = 0;
> +     let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x230, x227);
> +-    let mut x241: u64 = 0;
> +-    let mut x242: fiat_p384_scalar_u1 = 0;
> +     let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x228, x225);
> +-    let mut x243: u64 = 0;
> +-    let mut x244: fiat_p384_scalar_u1 = 0;
> +     let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x226, x223);
> +     let x245: u64 = ((x244 as u64) + x224);
> +-    let mut x246: u64 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u64(0x0, x210, x233);
> +-    let mut x248: u64 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x212, x235);
> +-    let mut x250: u64 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x214, x237);
> +-    let mut x252: u64 = 0;
> +-    let mut x253: fiat_p384_scalar_u1 = 0;
> +     let (x252, x253) = fiat_p384_scalar_addcarryx_u64(x251, x216, x239);
> +-    let mut x254: u64 = 0;
> +-    let mut x255: fiat_p384_scalar_u1 = 0;
> +     let (x254, x255) = fiat_p384_scalar_addcarryx_u64(x253, x218, x241);
> +-    let mut x256: u64 = 0;
> +-    let mut x257: fiat_p384_scalar_u1 = 0;
> +     let (x256, x257) = fiat_p384_scalar_addcarryx_u64(x255, x220, x243);
> +-    let mut x258: u64 = 0;
> +-    let mut x259: fiat_p384_scalar_u1 = 0;
> +     let (x258, x259) = fiat_p384_scalar_addcarryx_u64(x257, x222, x245);
> +-    let mut x260: u64 = 0;
> +-    let mut x261: u64 = 0;
> +     let (x260, x261) = fiat_p384_scalar_mulx_u64(x246, 0x6ed46089e88fdc45);
> +-    let mut x262: u64 = 0;
> +-    let mut x263: u64 = 0;
> +     let (x262, x263) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x264: u64 = 0;
> +-    let mut x265: u64 = 0;
> +     let (x264, x265) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x266: u64 = 0;
> +-    let mut x267: u64 = 0;
> +     let (x266, x267) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x268: u64 = 0;
> +-    let mut x269: u64 = 0;
> +     let (x268, x269) = fiat_p384_scalar_mulx_u64(x260, 0xc7634d81f4372ddf);
> +-    let mut x270: u64 = 0;
> +-    let mut x271: u64 = 0;
> +     let (x270, x271) = fiat_p384_scalar_mulx_u64(x260, 0x581a0db248b0a77a);
> +-    let mut x272: u64 = 0;
> +-    let mut x273: u64 = 0;
> +     let (x272, x273) = fiat_p384_scalar_mulx_u64(x260, 0xecec196accc52973);
> +-    let mut x274: u64 = 0;
> +-    let mut x275: fiat_p384_scalar_u1 = 0;
> +     let (x274, x275) = fiat_p384_scalar_addcarryx_u64(0x0, x273, x270);
> +-    let mut x276: u64 = 0;
> +-    let mut x277: fiat_p384_scalar_u1 = 0;
> +     let (x276, x277) = fiat_p384_scalar_addcarryx_u64(x275, x271, x268);
> +-    let mut x278: u64 = 0;
> +-    let mut x279: fiat_p384_scalar_u1 = 0;
> +     let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x269, x266);
> +-    let mut x280: u64 = 0;
> +-    let mut x281: fiat_p384_scalar_u1 = 0;
> +     let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x267, x264);
> +-    let mut x282: u64 = 0;
> +-    let mut x283: fiat_p384_scalar_u1 = 0;
> +     let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x265, x262);
> +     let x284: u64 = ((x283 as u64) + x263);
> +-    let mut x285: u64 = 0;
> +-    let mut x286: fiat_p384_scalar_u1 = 0;
> +     let (x285, x286) = fiat_p384_scalar_addcarryx_u64(0x0, x246, x272);
> +-    let mut x287: u64 = 0;
> +-    let mut x288: fiat_p384_scalar_u1 = 0;
> +     let (x287, x288) = fiat_p384_scalar_addcarryx_u64(x286, x248, x274);
> +-    let mut x289: u64 = 0;
> +-    let mut x290: fiat_p384_scalar_u1 = 0;
> +     let (x289, x290) = fiat_p384_scalar_addcarryx_u64(x288, x250, x276);
> +-    let mut x291: u64 = 0;
> +-    let mut x292: fiat_p384_scalar_u1 = 0;
> +     let (x291, x292) = fiat_p384_scalar_addcarryx_u64(x290, x252, x278);
> +-    let mut x293: u64 = 0;
> +-    let mut x294: fiat_p384_scalar_u1 = 0;
> +     let (x293, x294) = fiat_p384_scalar_addcarryx_u64(x292, x254, x280);
> +-    let mut x295: u64 = 0;
> +-    let mut x296: fiat_p384_scalar_u1 = 0;
> +     let (x295, x296) = fiat_p384_scalar_addcarryx_u64(x294, x256, x282);
> +-    let mut x297: u64 = 0;
> +-    let mut x298: fiat_p384_scalar_u1 = 0;
> +     let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x258, x284);
> +     let x299: u64 = ((x298 as u64) + (x259 as u64));
> +-    let mut x300: u64 = 0;
> +-    let mut x301: u64 = 0;
> +     let (x300, x301) = fiat_p384_scalar_mulx_u64(x4, (arg2[5]));
> +-    let mut x302: u64 = 0;
> +-    let mut x303: u64 = 0;
> +     let (x302, x303) = fiat_p384_scalar_mulx_u64(x4, (arg2[4]));
> +-    let mut x304: u64 = 0;
> +-    let mut x305: u64 = 0;
> +     let (x304, x305) = fiat_p384_scalar_mulx_u64(x4, (arg2[3]));
> +-    let mut x306: u64 = 0;
> +-    let mut x307: u64 = 0;
> +     let (x306, x307) = fiat_p384_scalar_mulx_u64(x4, (arg2[2]));
> +-    let mut x308: u64 = 0;
> +-    let mut x309: u64 = 0;
> +     let (x308, x309) = fiat_p384_scalar_mulx_u64(x4, (arg2[1]));
> +-    let mut x310: u64 = 0;
> +-    let mut x311: u64 = 0;
> +     let (x310, x311) = fiat_p384_scalar_mulx_u64(x4, (arg2[0]));
> +-    let mut x312: u64 = 0;
> +-    let mut x313: fiat_p384_scalar_u1 = 0;
> +     let (x312, x313) = fiat_p384_scalar_addcarryx_u64(0x0, x311, x308);
> +-    let mut x314: u64 = 0;
> +-    let mut x315: fiat_p384_scalar_u1 = 0;
> +     let (x314, x315) = fiat_p384_scalar_addcarryx_u64(x313, x309, x306);
> +-    let mut x316: u64 = 0;
> +-    let mut x317: fiat_p384_scalar_u1 = 0;
> +     let (x316, x317) = fiat_p384_scalar_addcarryx_u64(x315, x307, x304);
> +-    let mut x318: u64 = 0;
> +-    let mut x319: fiat_p384_scalar_u1 = 0;
> +     let (x318, x319) = fiat_p384_scalar_addcarryx_u64(x317, x305, x302);
> +-    let mut x320: u64 = 0;
> +-    let mut x321: fiat_p384_scalar_u1 = 0;
> +     let (x320, x321) = fiat_p384_scalar_addcarryx_u64(x319, x303, x300);
> +     let x322: u64 = ((x321 as u64) + x301);
> +-    let mut x323: u64 = 0;
> +-    let mut x324: fiat_p384_scalar_u1 = 0;
> +     let (x323, x324) = fiat_p384_scalar_addcarryx_u64(0x0, x287, x310);
> +-    let mut x325: u64 = 0;
> +-    let mut x326: fiat_p384_scalar_u1 = 0;
> +     let (x325, x326) = fiat_p384_scalar_addcarryx_u64(x324, x289, x312);
> +-    let mut x327: u64 = 0;
> +-    let mut x328: fiat_p384_scalar_u1 = 0;
> +     let (x327, x328) = fiat_p384_scalar_addcarryx_u64(x326, x291, x314);
> +-    let mut x329: u64 = 0;
> +-    let mut x330: fiat_p384_scalar_u1 = 0;
> +     let (x329, x330) = fiat_p384_scalar_addcarryx_u64(x328, x293, x316);
> +-    let mut x331: u64 = 0;
> +-    let mut x332: fiat_p384_scalar_u1 = 0;
> +     let (x331, x332) = fiat_p384_scalar_addcarryx_u64(x330, x295, x318);
> +-    let mut x333: u64 = 0;
> +-    let mut x334: fiat_p384_scalar_u1 = 0;
> +     let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x297, x320);
> +-    let mut x335: u64 = 0;
> +-    let mut x336: fiat_p384_scalar_u1 = 0;
> +     let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x299, x322);
> +-    let mut x337: u64 = 0;
> +-    let mut x338: u64 = 0;
> +     let (x337, x338) = fiat_p384_scalar_mulx_u64(x323, 0x6ed46089e88fdc45);
> +-    let mut x339: u64 = 0;
> +-    let mut x340: u64 = 0;
> +     let (x339, x340) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x341: u64 = 0;
> +-    let mut x342: u64 = 0;
> +     let (x341, x342) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x343: u64 = 0;
> +-    let mut x344: u64 = 0;
> +     let (x343, x344) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x345: u64 = 0;
> +-    let mut x346: u64 = 0;
> +     let (x345, x346) = fiat_p384_scalar_mulx_u64(x337, 0xc7634d81f4372ddf);
> +-    let mut x347: u64 = 0;
> +-    let mut x348: u64 = 0;
> +     let (x347, x348) = fiat_p384_scalar_mulx_u64(x337, 0x581a0db248b0a77a);
> +-    let mut x349: u64 = 0;
> +-    let mut x350: u64 = 0;
> +     let (x349, x350) = fiat_p384_scalar_mulx_u64(x337, 0xecec196accc52973);
> +-    let mut x351: u64 = 0;
> +-    let mut x352: fiat_p384_scalar_u1 = 0;
> +     let (x351, x352) = fiat_p384_scalar_addcarryx_u64(0x0, x350, x347);
> +-    let mut x353: u64 = 0;
> +-    let mut x354: fiat_p384_scalar_u1 = 0;
> +     let (x353, x354) = fiat_p384_scalar_addcarryx_u64(x352, x348, x345);
> +-    let mut x355: u64 = 0;
> +-    let mut x356: fiat_p384_scalar_u1 = 0;
> +     let (x355, x356) = fiat_p384_scalar_addcarryx_u64(x354, x346, x343);
> +-    let mut x357: u64 = 0;
> +-    let mut x358: fiat_p384_scalar_u1 = 0;
> +     let (x357, x358) = fiat_p384_scalar_addcarryx_u64(x356, x344, x341);
> +-    let mut x359: u64 = 0;
> +-    let mut x360: fiat_p384_scalar_u1 = 0;
> +     let (x359, x360) = fiat_p384_scalar_addcarryx_u64(x358, x342, x339);
> +     let x361: u64 = ((x360 as u64) + x340);
> +-    let mut x362: u64 = 0;
> +-    let mut x363: fiat_p384_scalar_u1 = 0;
> +     let (x362, x363) = fiat_p384_scalar_addcarryx_u64(0x0, x323, x349);
> +-    let mut x364: u64 = 0;
> +-    let mut x365: fiat_p384_scalar_u1 = 0;
> +     let (x364, x365) = fiat_p384_scalar_addcarryx_u64(x363, x325, x351);
> +-    let mut x366: u64 = 0;
> +-    let mut x367: fiat_p384_scalar_u1 = 0;
> +     let (x366, x367) = fiat_p384_scalar_addcarryx_u64(x365, x327, x353);
> +-    let mut x368: u64 = 0;
> +-    let mut x369: fiat_p384_scalar_u1 = 0;
> +     let (x368, x369) = fiat_p384_scalar_addcarryx_u64(x367, x329, x355);
> +-    let mut x370: u64 = 0;
> +-    let mut x371: fiat_p384_scalar_u1 = 0;
> +     let (x370, x371) = fiat_p384_scalar_addcarryx_u64(x369, x331, x357);
> +-    let mut x372: u64 = 0;
> +-    let mut x373: fiat_p384_scalar_u1 = 0;
> +     let (x372, x373) = fiat_p384_scalar_addcarryx_u64(x371, x333, x359);
> +-    let mut x374: u64 = 0;
> +-    let mut x375: fiat_p384_scalar_u1 = 0;
> +     let (x374, x375) = fiat_p384_scalar_addcarryx_u64(x373, x335, x361);
> +     let x376: u64 = ((x375 as u64) + (x336 as u64));
> +-    let mut x377: u64 = 0;
> +-    let mut x378: u64 = 0;
> +     let (x377, x378) = fiat_p384_scalar_mulx_u64(x5, (arg2[5]));
> +-    let mut x379: u64 = 0;
> +-    let mut x380: u64 = 0;
> +     let (x379, x380) = fiat_p384_scalar_mulx_u64(x5, (arg2[4]));
> +-    let mut x381: u64 = 0;
> +-    let mut x382: u64 = 0;
> +     let (x381, x382) = fiat_p384_scalar_mulx_u64(x5, (arg2[3]));
> +-    let mut x383: u64 = 0;
> +-    let mut x384: u64 = 0;
> +     let (x383, x384) = fiat_p384_scalar_mulx_u64(x5, (arg2[2]));
> +-    let mut x385: u64 = 0;
> +-    let mut x386: u64 = 0;
> +     let (x385, x386) = fiat_p384_scalar_mulx_u64(x5, (arg2[1]));
> +-    let mut x387: u64 = 0;
> +-    let mut x388: u64 = 0;
> +     let (x387, x388) = fiat_p384_scalar_mulx_u64(x5, (arg2[0]));
> +-    let mut x389: u64 = 0;
> +-    let mut x390: fiat_p384_scalar_u1 = 0;
> +     let (x389, x390) = fiat_p384_scalar_addcarryx_u64(0x0, x388, x385);
> +-    let mut x391: u64 = 0;
> +-    let mut x392: fiat_p384_scalar_u1 = 0;
> +     let (x391, x392) = fiat_p384_scalar_addcarryx_u64(x390, x386, x383);
> +-    let mut x393: u64 = 0;
> +-    let mut x394: fiat_p384_scalar_u1 = 0;
> +     let (x393, x394) = fiat_p384_scalar_addcarryx_u64(x392, x384, x381);
> +-    let mut x395: u64 = 0;
> +-    let mut x396: fiat_p384_scalar_u1 = 0;
> +     let (x395, x396) = fiat_p384_scalar_addcarryx_u64(x394, x382, x379);
> +-    let mut x397: u64 = 0;
> +-    let mut x398: fiat_p384_scalar_u1 = 0;
> +     let (x397, x398) = fiat_p384_scalar_addcarryx_u64(x396, x380, x377);
> +     let x399: u64 = ((x398 as u64) + x378);
> +-    let mut x400: u64 = 0;
> +-    let mut x401: fiat_p384_scalar_u1 = 0;
> +     let (x400, x401) = fiat_p384_scalar_addcarryx_u64(0x0, x364, x387);
> +-    let mut x402: u64 = 0;
> +-    let mut x403: fiat_p384_scalar_u1 = 0;
> +     let (x402, x403) = fiat_p384_scalar_addcarryx_u64(x401, x366, x389);
> +-    let mut x404: u64 = 0;
> +-    let mut x405: fiat_p384_scalar_u1 = 0;
> +     let (x404, x405) = fiat_p384_scalar_addcarryx_u64(x403, x368, x391);
> +-    let mut x406: u64 = 0;
> +-    let mut x407: fiat_p384_scalar_u1 = 0;
> +     let (x406, x407) = fiat_p384_scalar_addcarryx_u64(x405, x370, x393);
> +-    let mut x408: u64 = 0;
> +-    let mut x409: fiat_p384_scalar_u1 = 0;
> +     let (x408, x409) = fiat_p384_scalar_addcarryx_u64(x407, x372, x395);
> +-    let mut x410: u64 = 0;
> +-    let mut x411: fiat_p384_scalar_u1 = 0;
> +     let (x410, x411) = fiat_p384_scalar_addcarryx_u64(x409, x374, x397);
> +-    let mut x412: u64 = 0;
> +-    let mut x413: fiat_p384_scalar_u1 = 0;
> +     let (x412, x413) = fiat_p384_scalar_addcarryx_u64(x411, x376, x399);
> +-    let mut x414: u64 = 0;
> +-    let mut x415: u64 = 0;
> +     let (x414, x415) = fiat_p384_scalar_mulx_u64(x400, 0x6ed46089e88fdc45);
> +-    let mut x416: u64 = 0;
> +-    let mut x417: u64 = 0;
> +     let (x416, x417) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x418: u64 = 0;
> +-    let mut x419: u64 = 0;
> +     let (x418, x419) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x420: u64 = 0;
> +-    let mut x421: u64 = 0;
> +     let (x420, x421) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x422: u64 = 0;
> +-    let mut x423: u64 = 0;
> +     let (x422, x423) = fiat_p384_scalar_mulx_u64(x414, 0xc7634d81f4372ddf);
> +-    let mut x424: u64 = 0;
> +-    let mut x425: u64 = 0;
> +     let (x424, x425) = fiat_p384_scalar_mulx_u64(x414, 0x581a0db248b0a77a);
> +-    let mut x426: u64 = 0;
> +-    let mut x427: u64 = 0;
> +     let (x426, x427) = fiat_p384_scalar_mulx_u64(x414, 0xecec196accc52973);
> +-    let mut x428: u64 = 0;
> +-    let mut x429: fiat_p384_scalar_u1 = 0;
> +     let (x428, x429) = fiat_p384_scalar_addcarryx_u64(0x0, x427, x424);
> +-    let mut x430: u64 = 0;
> +-    let mut x431: fiat_p384_scalar_u1 = 0;
> +     let (x430, x431) = fiat_p384_scalar_addcarryx_u64(x429, x425, x422);
> +-    let mut x432: u64 = 0;
> +-    let mut x433: fiat_p384_scalar_u1 = 0;
> +     let (x432, x433) = fiat_p384_scalar_addcarryx_u64(x431, x423, x420);
> +-    let mut x434: u64 = 0;
> +-    let mut x435: fiat_p384_scalar_u1 = 0;
> +     let (x434, x435) = fiat_p384_scalar_addcarryx_u64(x433, x421, x418);
> +-    let mut x436: u64 = 0;
> +-    let mut x437: fiat_p384_scalar_u1 = 0;
> +     let (x436, x437) = fiat_p384_scalar_addcarryx_u64(x435, x419, x416);
> +     let x438: u64 = ((x437 as u64) + x417);
> +-    let mut x439: u64 = 0;
> +-    let mut x440: fiat_p384_scalar_u1 = 0;
> +     let (x439, x440) = fiat_p384_scalar_addcarryx_u64(0x0, x400, x426);
> +-    let mut x441: u64 = 0;
> +-    let mut x442: fiat_p384_scalar_u1 = 0;
> +     let (x441, x442) = fiat_p384_scalar_addcarryx_u64(x440, x402, x428);
> +-    let mut x443: u64 = 0;
> +-    let mut x444: fiat_p384_scalar_u1 = 0;
> +     let (x443, x444) = fiat_p384_scalar_addcarryx_u64(x442, x404, x430);
> +-    let mut x445: u64 = 0;
> +-    let mut x446: fiat_p384_scalar_u1 = 0;
> +     let (x445, x446) = fiat_p384_scalar_addcarryx_u64(x444, x406, x432);
> +-    let mut x447: u64 = 0;
> +-    let mut x448: fiat_p384_scalar_u1 = 0;
> +     let (x447, x448) = fiat_p384_scalar_addcarryx_u64(x446, x408, x434);
> +-    let mut x449: u64 = 0;
> +-    let mut x450: fiat_p384_scalar_u1 = 0;
> +     let (x449, x450) = fiat_p384_scalar_addcarryx_u64(x448, x410, x436);
> +-    let mut x451: u64 = 0;
> +-    let mut x452: fiat_p384_scalar_u1 = 0;
> +     let (x451, x452) = fiat_p384_scalar_addcarryx_u64(x450, x412, x438);
> +     let x453: u64 = ((x452 as u64) + (x413 as u64));
> +-    let mut x454: u64 = 0;
> +-    let mut x455: fiat_p384_scalar_u1 = 0;
> +     let (x454, x455) = fiat_p384_scalar_subborrowx_u64(0x0, x441, 0xecec196accc52973);
> +-    let mut x456: u64 = 0;
> +-    let mut x457: fiat_p384_scalar_u1 = 0;
> +     let (x456, x457) = fiat_p384_scalar_subborrowx_u64(x455, x443, 0x581a0db248b0a77a);
> +-    let mut x458: u64 = 0;
> +-    let mut x459: fiat_p384_scalar_u1 = 0;
> +     let (x458, x459) = fiat_p384_scalar_subborrowx_u64(x457, x445, 0xc7634d81f4372ddf);
> +-    let mut x460: u64 = 0;
> +-    let mut x461: fiat_p384_scalar_u1 = 0;
> +     let (x460, x461) = fiat_p384_scalar_subborrowx_u64(x459, x447, 0xffffffffffffffff);
> +-    let mut x462: u64 = 0;
> +-    let mut x463: fiat_p384_scalar_u1 = 0;
> +     let (x462, x463) = fiat_p384_scalar_subborrowx_u64(x461, x449, 0xffffffffffffffff);
> +-    let mut x464: u64 = 0;
> +-    let mut x465: fiat_p384_scalar_u1 = 0;
> +     let (x464, x465) = fiat_p384_scalar_subborrowx_u64(x463, x451, 0xffffffffffffffff);
> +-    let mut x466: u64 = 0;
> +-    let mut x467: fiat_p384_scalar_u1 = 0;
> +     let (x466, x467) = fiat_p384_scalar_subborrowx_u64(x465, x453, 0x0_u64);
> +-    let mut x468: u64 = 0;
> +     let (x468) = fiat_p384_scalar_cmovznz_u64(x467, x454, x441);
> +-    let mut x469: u64 = 0;
> +     let (x469) = fiat_p384_scalar_cmovznz_u64(x467, x456, x443);
> +-    let mut x470: u64 = 0;
> +     let (x470) = fiat_p384_scalar_cmovznz_u64(x467, x458, x445);
> +-    let mut x471: u64 = 0;
> +     let (x471) = fiat_p384_scalar_cmovznz_u64(x467, x460, x447);
> +-    let mut x472: u64 = 0;
> +     let (x472) = fiat_p384_scalar_cmovznz_u64(x467, x462, x449);
> +-    let mut x473: u64 = 0;
> +     let (x473) = fiat_p384_scalar_cmovznz_u64(x467, x464, x451);
> +     out1[0] = x468;
> +     out1[1] = x469;
> +@@ -890,700 +440,250 @@ pub const fn fiat_p384_scalar_square(
> +     let x4: u64 = (arg1[4]);
> +     let x5: u64 = (arg1[5]);
> +     let x6: u64 = (arg1[0]);
> +-    let mut x7: u64 = 0;
> +-    let mut x8: u64 = 0;
> +     let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, (arg1[5]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: u64 = 0;
> +     let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, (arg1[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: u64 = 0;
> +     let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, (arg1[3]));
> +-    let mut x13: u64 = 0;
> +-    let mut x14: u64 = 0;
> +     let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, (arg1[2]));
> +-    let mut x15: u64 = 0;
> +-    let mut x16: u64 = 0;
> +     let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, (arg1[1]));
> +-    let mut x17: u64 = 0;
> +-    let mut x18: u64 = 0;
> +     let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, (arg1[0]));
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_scalar_u1 = 0;
> +     let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
> +-    let mut x27: u64 = 0;
> +-    let mut x28: fiat_p384_scalar_u1 = 0;
> +     let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
> +     let x29: u64 = ((x28 as u64) + x8);
> +-    let mut x30: u64 = 0;
> +-    let mut x31: u64 = 0;
> +     let (x30, x31) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
> +-    let mut x32: u64 = 0;
> +-    let mut x33: u64 = 0;
> +     let (x32, x33) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x34: u64 = 0;
> +-    let mut x35: u64 = 0;
> +     let (x34, x35) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x36: u64 = 0;
> +-    let mut x37: u64 = 0;
> +     let (x36, x37) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
> +-    let mut x38: u64 = 0;
> +-    let mut x39: u64 = 0;
> +     let (x38, x39) = fiat_p384_scalar_mulx_u64(x30, 0xc7634d81f4372ddf);
> +-    let mut x40: u64 = 0;
> +-    let mut x41: u64 = 0;
> +     let (x40, x41) = fiat_p384_scalar_mulx_u64(x30, 0x581a0db248b0a77a);
> +-    let mut x42: u64 = 0;
> +-    let mut x43: u64 = 0;
> +     let (x42, x43) = fiat_p384_scalar_mulx_u64(x30, 0xecec196accc52973);
> +-    let mut x44: u64 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u64(0x0, x43, x40);
> +-    let mut x46: u64 = 0;
> +-    let mut x47: fiat_p384_scalar_u1 = 0;
> +     let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x41, x38);
> +-    let mut x48: u64 = 0;
> +-    let mut x49: fiat_p384_scalar_u1 = 0;
> +     let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x39, x36);
> +-    let mut x50: u64 = 0;
> +-    let mut x51: fiat_p384_scalar_u1 = 0;
> +     let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x37, x34);
> +-    let mut x52: u64 = 0;
> +-    let mut x53: fiat_p384_scalar_u1 = 0;
> +     let (x52, x53) = fiat_p384_scalar_addcarryx_u64(x51, x35, x32);
> +     let x54: u64 = ((x53 as u64) + x33);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x42);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x19, x44);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_scalar_u1 = 0;
> +     let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x21, x46);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_scalar_u1 = 0;
> +     let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x23, x48);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_scalar_u1 = 0;
> +     let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x25, x50);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_scalar_u1 = 0;
> +     let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, x27, x52);
> +-    let mut x67: u64 = 0;
> +-    let mut x68: fiat_p384_scalar_u1 = 0;
> +     let (x67, x68) = fiat_p384_scalar_addcarryx_u64(x66, x29, x54);
> +-    let mut x69: u64 = 0;
> +-    let mut x70: u64 = 0;
> +     let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, (arg1[5]));
> +-    let mut x71: u64 = 0;
> +-    let mut x72: u64 = 0;
> +     let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, (arg1[4]));
> +-    let mut x73: u64 = 0;
> +-    let mut x74: u64 = 0;
> +     let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, (arg1[3]));
> +-    let mut x75: u64 = 0;
> +-    let mut x76: u64 = 0;
> +     let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, (arg1[2]));
> +-    let mut x77: u64 = 0;
> +-    let mut x78: u64 = 0;
> +     let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, (arg1[1]));
> +-    let mut x79: u64 = 0;
> +-    let mut x80: u64 = 0;
> +     let (x79, x80) = fiat_p384_scalar_mulx_u64(x1, (arg1[0]));
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_scalar_u1 = 0;
> +     let (x81, x82) = fiat_p384_scalar_addcarryx_u64(0x0, x80, x77);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_scalar_u1 = 0;
> +     let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x78, x75);
> +-    let mut x85: u64 = 0;
> +-    let mut x86: fiat_p384_scalar_u1 = 0;
> +     let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x76, x73);
> +-    let mut x87: u64 = 0;
> +-    let mut x88: fiat_p384_scalar_u1 = 0;
> +     let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x74, x71);
> +-    let mut x89: u64 = 0;
> +-    let mut x90: fiat_p384_scalar_u1 = 0;
> +     let (x89, x90) = fiat_p384_scalar_addcarryx_u64(x88, x72, x69);
> +     let x91: u64 = ((x90 as u64) + x70);
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(0x0, x57, x79);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x59, x81);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x61, x83);
> +-    let mut x98: u64 = 0;
> +-    let mut x99: fiat_p384_scalar_u1 = 0;
> +     let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x63, x85);
> +-    let mut x100: u64 = 0;
> +-    let mut x101: fiat_p384_scalar_u1 = 0;
> +     let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x65, x87);
> +-    let mut x102: u64 = 0;
> +-    let mut x103: fiat_p384_scalar_u1 = 0;
> +     let (x102, x103) = fiat_p384_scalar_addcarryx_u64(x101, x67, x89);
> +-    let mut x104: u64 = 0;
> +-    let mut x105: fiat_p384_scalar_u1 = 0;
> +     let (x104, x105) = fiat_p384_scalar_addcarryx_u64(x103, (x68 as u64), x91);
> +-    let mut x106: u64 = 0;
> +-    let mut x107: u64 = 0;
> +     let (x106, x107) = fiat_p384_scalar_mulx_u64(x92, 0x6ed46089e88fdc45);
> +-    let mut x108: u64 = 0;
> +-    let mut x109: u64 = 0;
> +     let (x108, x109) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x110: u64 = 0;
> +-    let mut x111: u64 = 0;
> +     let (x110, x111) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: u64 = 0;
> +     let (x112, x113) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: u64 = 0;
> +     let (x114, x115) = fiat_p384_scalar_mulx_u64(x106, 0xc7634d81f4372ddf);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: u64 = 0;
> +     let (x116, x117) = fiat_p384_scalar_mulx_u64(x106, 0x581a0db248b0a77a);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: u64 = 0;
> +     let (x118, x119) = fiat_p384_scalar_mulx_u64(x106, 0xecec196accc52973);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_scalar_u1 = 0;
> +     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(0x0, x119, x116);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_scalar_u1 = 0;
> +     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x117, x114);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_scalar_u1 = 0;
> +     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x115, x112);
> +-    let mut x126: u64 = 0;
> +-    let mut x127: fiat_p384_scalar_u1 = 0;
> +     let (x126, x127) = fiat_p384_scalar_addcarryx_u64(x125, x113, x110);
> +-    let mut x128: u64 = 0;
> +-    let mut x129: fiat_p384_scalar_u1 = 0;
> +     let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x111, x108);
> +     let x130: u64 = ((x129 as u64) + x109);
> +-    let mut x131: u64 = 0;
> +-    let mut x132: fiat_p384_scalar_u1 = 0;
> +     let (x131, x132) = fiat_p384_scalar_addcarryx_u64(0x0, x92, x118);
> +-    let mut x133: u64 = 0;
> +-    let mut x134: fiat_p384_scalar_u1 = 0;
> +     let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x94, x120);
> +-    let mut x135: u64 = 0;
> +-    let mut x136: fiat_p384_scalar_u1 = 0;
> +     let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x96, x122);
> +-    let mut x137: u64 = 0;
> +-    let mut x138: fiat_p384_scalar_u1 = 0;
> +     let (x137, x138) = fiat_p384_scalar_addcarryx_u64(x136, x98, x124);
> +-    let mut x139: u64 = 0;
> +-    let mut x140: fiat_p384_scalar_u1 = 0;
> +     let (x139, x140) = fiat_p384_scalar_addcarryx_u64(x138, x100, x126);
> +-    let mut x141: u64 = 0;
> +-    let mut x142: fiat_p384_scalar_u1 = 0;
> +     let (x141, x142) = fiat_p384_scalar_addcarryx_u64(x140, x102, x128);
> +-    let mut x143: u64 = 0;
> +-    let mut x144: fiat_p384_scalar_u1 = 0;
> +     let (x143, x144) = fiat_p384_scalar_addcarryx_u64(x142, x104, x130);
> +     let x145: u64 = ((x144 as u64) + (x105 as u64));
> +-    let mut x146: u64 = 0;
> +-    let mut x147: u64 = 0;
> +     let (x146, x147) = fiat_p384_scalar_mulx_u64(x2, (arg1[5]));
> +-    let mut x148: u64 = 0;
> +-    let mut x149: u64 = 0;
> +     let (x148, x149) = fiat_p384_scalar_mulx_u64(x2, (arg1[4]));
> +-    let mut x150: u64 = 0;
> +-    let mut x151: u64 = 0;
> +     let (x150, x151) = fiat_p384_scalar_mulx_u64(x2, (arg1[3]));
> +-    let mut x152: u64 = 0;
> +-    let mut x153: u64 = 0;
> +     let (x152, x153) = fiat_p384_scalar_mulx_u64(x2, (arg1[2]));
> +-    let mut x154: u64 = 0;
> +-    let mut x155: u64 = 0;
> +     let (x154, x155) = fiat_p384_scalar_mulx_u64(x2, (arg1[1]));
> +-    let mut x156: u64 = 0;
> +-    let mut x157: u64 = 0;
> +     let (x156, x157) = fiat_p384_scalar_mulx_u64(x2, (arg1[0]));
> +-    let mut x158: u64 = 0;
> +-    let mut x159: fiat_p384_scalar_u1 = 0;
> +     let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x157, x154);
> +-    let mut x160: u64 = 0;
> +-    let mut x161: fiat_p384_scalar_u1 = 0;
> +     let (x160, x161) = fiat_p384_scalar_addcarryx_u64(x159, x155, x152);
> +-    let mut x162: u64 = 0;
> +-    let mut x163: fiat_p384_scalar_u1 = 0;
> +     let (x162, x163) = fiat_p384_scalar_addcarryx_u64(x161, x153, x150);
> +-    let mut x164: u64 = 0;
> +-    let mut x165: fiat_p384_scalar_u1 = 0;
> +     let (x164, x165) = fiat_p384_scalar_addcarryx_u64(x163, x151, x148);
> +-    let mut x166: u64 = 0;
> +-    let mut x167: fiat_p384_scalar_u1 = 0;
> +     let (x166, x167) = fiat_p384_scalar_addcarryx_u64(x165, x149, x146);
> +     let x168: u64 = ((x167 as u64) + x147);
> +-    let mut x169: u64 = 0;
> +-    let mut x170: fiat_p384_scalar_u1 = 0;
> +     let (x169, x170) = fiat_p384_scalar_addcarryx_u64(0x0, x133, x156);
> +-    let mut x171: u64 = 0;
> +-    let mut x172: fiat_p384_scalar_u1 = 0;
> +     let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x135, x158);
> +-    let mut x173: u64 = 0;
> +-    let mut x174: fiat_p384_scalar_u1 = 0;
> +     let (x173, x174) = fiat_p384_scalar_addcarryx_u64(x172, x137, x160);
> +-    let mut x175: u64 = 0;
> +-    let mut x176: fiat_p384_scalar_u1 = 0;
> +     let (x175, x176) = fiat_p384_scalar_addcarryx_u64(x174, x139, x162);
> +-    let mut x177: u64 = 0;
> +-    let mut x178: fiat_p384_scalar_u1 = 0;
> +     let (x177, x178) = fiat_p384_scalar_addcarryx_u64(x176, x141, x164);
> +-    let mut x179: u64 = 0;
> +-    let mut x180: fiat_p384_scalar_u1 = 0;
> +     let (x179, x180) = fiat_p384_scalar_addcarryx_u64(x178, x143, x166);
> +-    let mut x181: u64 = 0;
> +-    let mut x182: fiat_p384_scalar_u1 = 0;
> +     let (x181, x182) = fiat_p384_scalar_addcarryx_u64(x180, x145, x168);
> +-    let mut x183: u64 = 0;
> +-    let mut x184: u64 = 0;
> +     let (x183, x184) = fiat_p384_scalar_mulx_u64(x169, 0x6ed46089e88fdc45);
> +-    let mut x185: u64 = 0;
> +-    let mut x186: u64 = 0;
> +     let (x185, x186) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x187: u64 = 0;
> +-    let mut x188: u64 = 0;
> +     let (x187, x188) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x189: u64 = 0;
> +-    let mut x190: u64 = 0;
> +     let (x189, x190) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
> +-    let mut x191: u64 = 0;
> +-    let mut x192: u64 = 0;
> +     let (x191, x192) = fiat_p384_scalar_mulx_u64(x183, 0xc7634d81f4372ddf);
> +-    let mut x193: u64 = 0;
> +-    let mut x194: u64 = 0;
> +     let (x193, x194) = fiat_p384_scalar_mulx_u64(x183, 0x581a0db248b0a77a);
> +-    let mut x195: u64 = 0;
> +-    let mut x196: u64 = 0;
> +     let (x195, x196) = fiat_p384_scalar_mulx_u64(x183, 0xecec196accc52973);
> +-    let mut x197: u64 = 0;
> +-    let mut x198: fiat_p384_scalar_u1 = 0;
> +     let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x196, x193);
> +-    let mut x199: u64 = 0;
> +-    let mut x200: fiat_p384_scalar_u1 = 0;
> +     let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x194, x191);
> +-    let mut x201: u64 = 0;
> +-    let mut x202: fiat_p384_scalar_u1 = 0;
> +     let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x192, x189);
> +-    let mut x203: u64 = 0;
> +-    let mut x204: fiat_p384_scalar_u1 = 0;
> +     let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x190, x187);
> +-    let mut x205: u64 = 0;
> +-    let mut x206: fiat_p384_scalar_u1 = 0;
> +     let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x188, x185);
> +     let x207: u64 = ((x206 as u64) + x186);
> +-    let mut x208: u64 = 0;
> +-    let mut x209: fiat_p384_scalar_u1 = 0;
> +     let (x208, x209) = fiat_p384_scalar_addcarryx_u64(0x0, x169, x195);
> +-    let mut x210: u64 = 0;
> +-    let mut x211: fiat_p384_scalar_u1 = 0;
> +     let (x210, x211) = fiat_p384_scalar_addcarryx_u64(x209, x171, x197);
> +-    let mut x212: u64 = 0;
> +-    let mut x213: fiat_p384_scalar_u1 = 0;
> +     let (x212, x213) = fiat_p384_scalar_addcarryx_u64(x211, x173, x199);
> +-    let mut x214: u64 = 0;
> +-    let mut x215: fiat_p384_scalar_u1 = 0;
> +     let (x214, x215) = fiat_p384_scalar_addcarryx_u64(x213, x175, x201);
> +-    let mut x216: u64 = 0;
> +-    let mut x217: fiat_p384_scalar_u1 = 0;
> +     let (x216, x217) = fiat_p384_scalar_addcarryx_u64(x215, x177, x203);
> +-    let mut x218: u64 = 0;
> +-    let mut x219: fiat_p384_scalar_u1 = 0;
> +     let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x179, x205);
> +-    let mut x220: u64 = 0;
> +-    let mut x221: fiat_p384_scalar_u1 = 0;
> +     let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x181, x207);
> +     let x222: u64 = ((x221 as u64) + (x182 as u64));
> +-    let mut x223: u64 = 0;
> +-    let mut x224: u64 = 0;
> +     let (x223, x224) = fiat_p384_scalar_mulx_u64(x3, (arg1[5]));
> +-    let mut x225: u64 = 0;
> +-    let mut x226: u64 = 0;
> +     let (x225, x226) = fiat_p384_scalar_mulx_u64(x3, (arg1[4]));
> +-    let mut x227: u64 = 0;
> +-    let mut x228: u64 = 0;
> +     let (x227, x228) = fiat_p384_scalar_mulx_u64(x3, (arg1[3]));
> +-    let mut x229: u64 = 0;
> +-    let mut x230: u64 = 0;
> +     let (x229, x230) = fiat_p384_scalar_mulx_u64(x3, (arg1[2]));
> +-    let mut x231: u64 = 0;
> +-    let mut x232: u64 = 0;
> +     let (x231, x232) = fiat_p384_scalar_mulx_u64(x3, (arg1[1]));
> +-    let mut x233: u64 = 0;
> +-    let mut x234: u64 = 0;
> +     let (x233, x234) = fiat_p384_scalar_mulx_u64(x3, (arg1[0]));
> +-    let mut x235: u64 = 0;
> +-    let mut x236: fiat_p384_scalar_u1 = 0;
> +     let (x235, x236) = fiat_p384_scalar_addcarryx_u64(0x0, x234, x231);
> +-    let mut x237: u64 = 0;
> +-    let mut x238: fiat_p384_scalar_u1 = 0;
> +     let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x232, x229);
> +-    let mut x239: u64 = 0;
> +-    let mut x240: fiat_p384_scalar_u1 = 0;
> +     let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x230, x227);
> +-    let mut x241: u64 = 0;
> +-    let mut x242: fiat_p384_scalar_u1 = 0;
> +     let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x228, x225);
> +-    let mut x243: u64 = 0;
> +-    let mut x244: fiat_p384_scalar_u1 = 0;
> +     let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x226, x223);
> +     let x245: u64 = ((x244 as u64) + x224);
> +-    let mut x246: u64 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u64(0x0, x210, x233);
> +-    let mut x248: u64 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x212, x235);
> +-    let mut x250: u64 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x214, x237);
> +-    let mut x252: u64 = 0;
> +-    let mut x253: fiat_p384_scalar_u1 = 0;
> +     let (x252, x253) = fiat_p384_scalar_addcarryx_u64(x251, x216, x239);
> +-    let mut x254: u64 = 0;
> +-    let mut x255: fiat_p384_scalar_u1 = 0;
> +     let (x254, x255) = fiat_p384_scalar_addcarryx_u64(x253, x218, x241);
> +-    let mut x256: u64 = 0;
> +-    let mut x257: fiat_p384_scalar_u1 = 0;
> +     let (x256, x257) = fiat_p384_scalar_addcarryx_u64(x255, x220, x243);
> +-    let mut x258: u64 = 0;
> +-    let mut x259: fiat_p384_scalar_u1 = 0;
> +     let (x258, x259) = fiat_p384_scalar_addcarryx_u64(x257, x222, x245);
> +-    let mut x260: u64 = 0;
> +-    let mut x261: u64 = 0;
> +     let (x260, x261) = fiat_p384_scalar_mulx_u64(x246, 0x6ed46089e88fdc45);
> +-    let mut x262: u64 = 0;
> +-    let mut x263: u64 = 0;
> +     let (x262, x263) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x264: u64 = 0;
> +-    let mut x265: u64 = 0;
> +     let (x264, x265) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x266: u64 = 0;
> +-    let mut x267: u64 = 0;
> +     let (x266, x267) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
> +-    let mut x268: u64 = 0;
> +-    let mut x269: u64 = 0;
> +     let (x268, x269) = fiat_p384_scalar_mulx_u64(x260, 0xc7634d81f4372ddf);
> +-    let mut x270: u64 = 0;
> +-    let mut x271: u64 = 0;
> +     let (x270, x271) = fiat_p384_scalar_mulx_u64(x260, 0x581a0db248b0a77a);
> +-    let mut x272: u64 = 0;
> +-    let mut x273: u64 = 0;
> +     let (x272, x273) = fiat_p384_scalar_mulx_u64(x260, 0xecec196accc52973);
> +-    let mut x274: u64 = 0;
> +-    let mut x275: fiat_p384_scalar_u1 = 0;
> +     let (x274, x275) = fiat_p384_scalar_addcarryx_u64(0x0, x273, x270);
> +-    let mut x276: u64 = 0;
> +-    let mut x277: fiat_p384_scalar_u1 = 0;
> +     let (x276, x277) = fiat_p384_scalar_addcarryx_u64(x275, x271, x268);
> +-    let mut x278: u64 = 0;
> +-    let mut x279: fiat_p384_scalar_u1 = 0;
> +     let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x269, x266);
> +-    let mut x280: u64 = 0;
> +-    let mut x281: fiat_p384_scalar_u1 = 0;
> +     let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x267, x264);
> +-    let mut x282: u64 = 0;
> +-    let mut x283: fiat_p384_scalar_u1 = 0;
> +     let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x265, x262);
> +     let x284: u64 = ((x283 as u64) + x263);
> +-    let mut x285: u64 = 0;
> +-    let mut x286: fiat_p384_scalar_u1 = 0;
> +     let (x285, x286) = fiat_p384_scalar_addcarryx_u64(0x0, x246, x272);
> +-    let mut x287: u64 = 0;
> +-    let mut x288: fiat_p384_scalar_u1 = 0;
> +     let (x287, x288) = fiat_p384_scalar_addcarryx_u64(x286, x248, x274);
> +-    let mut x289: u64 = 0;
> +-    let mut x290: fiat_p384_scalar_u1 = 0;
> +     let (x289, x290) = fiat_p384_scalar_addcarryx_u64(x288, x250, x276);
> +-    let mut x291: u64 = 0;
> +-    let mut x292: fiat_p384_scalar_u1 = 0;
> +     let (x291, x292) = fiat_p384_scalar_addcarryx_u64(x290, x252, x278);
> +-    let mut x293: u64 = 0;
> +-    let mut x294: fiat_p384_scalar_u1 = 0;
> +     let (x293, x294) = fiat_p384_scalar_addcarryx_u64(x292, x254, x280);
> +-    let mut x295: u64 = 0;
> +-    let mut x296: fiat_p384_scalar_u1 = 0;
> +     let (x295, x296) = fiat_p384_scalar_addcarryx_u64(x294, x256, x282);
> +-    let mut x297: u64 = 0;
> +-    let mut x298: fiat_p384_scalar_u1 = 0;
> +     let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x258, x284);
> +     let x299: u64 = ((x298 as u64) + (x259 as u64));
> +-    let mut x300: u64 = 0;
> +-    let mut x301: u64 = 0;
> +     let (x300, x301) = fiat_p384_scalar_mulx_u64(x4, (arg1[5]));
> +-    let mut x302: u64 = 0;
> +-    let mut x303: u64 = 0;
> +     let (x302, x303) = fiat_p384_scalar_mulx_u64(x4, (arg1[4]));
> +-    let mut x304: u64 = 0;
> +-    let mut x305: u64 = 0;
> +     let (x304, x305) = fiat_p384_scalar_mulx_u64(x4, (arg1[3]));
> +-    let mut x306: u64 = 0;
> +-    let mut x307: u64 = 0;
> +     let (x306, x307) = fiat_p384_scalar_mulx_u64(x4, (arg1[2]));
> +-    let mut x308: u64 = 0;
> +-    let mut x309: u64 = 0;
> +     let (x308, x309) = fiat_p384_scalar_mulx_u64(x4, (arg1[1]));
> +-    let mut x310: u64 = 0;
> +-    let mut x311: u64 = 0;
> +     let (x310, x311) = fiat_p384_scalar_mulx_u64(x4, (arg1[0]));
> +-    let mut x312: u64 = 0;
> +-    let mut x313: fiat_p384_scalar_u1 = 0;
> +     let (x312, x313) = fiat_p384_scalar_addcarryx_u64(0x0, x311, x308);
> +-    let mut x314: u64 = 0;
> +-    let mut x315: fiat_p384_scalar_u1 = 0;
> +     let (x314, x315) = fiat_p384_scalar_addcarryx_u64(x313, x309, x306);
> +-    let mut x316: u64 = 0;
> +-    let mut x317: fiat_p384_scalar_u1 = 0;
> +     let (x316, x317) = fiat_p384_scalar_addcarryx_u64(x315, x307, x304);
> +-    let mut x318: u64 = 0;
> +-    let mut x319: fiat_p384_scalar_u1 = 0;
> +     let (x318, x319) = fiat_p384_scalar_addcarryx_u64(x317, x305, x302);
> +-    let mut x320: u64 = 0;
> +-    let mut x321: fiat_p384_scalar_u1 = 0;
> +     let (x320, x321) = fiat_p384_scalar_addcarryx_u64(x319, x303, x300);
> +     let x322: u64 = ((x321 as u64) + x301);
> +-    let mut x323: u64 = 0;
> +-    let mut x324: fiat_p384_scalar_u1 = 0;
> +     let (x323, x324) = fiat_p384_scalar_addcarryx_u64(0x0, x287, x310);
> +-    let mut x325: u64 = 0;
> +-    let mut x326: fiat_p384_scalar_u1 = 0;
> +     let (x325, x326) = fiat_p384_scalar_addcarryx_u64(x324, x289, x312);
> +-    let mut x327: u64 = 0;
> +-    let mut x328: fiat_p384_scalar_u1 = 0;
> +     let (x327, x328) = fiat_p384_scalar_addcarryx_u64(x326, x291, x314);
> +-    let mut x329: u64 = 0;
> +-    let mut x330: fiat_p384_scalar_u1 = 0;
> +     let (x329, x330) = fiat_p384_scalar_addcarryx_u64(x328, x293, x316);
> +-    let mut x331: u64 = 0;
> +-    let mut x332: fiat_p384_scalar_u1 = 0;
> +     let (x331, x332) = fiat_p384_scalar_addcarryx_u64(x330, x295, x318);
> +-    let mut x333: u64 = 0;
> +-    let mut x334: fiat_p384_scalar_u1 = 0;
> +     let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x297, x320);
> +-    let mut x335: u64 = 0;
> +-    let mut x336: fiat_p384_scalar_u1 = 0;
> +     let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x299, x322);
> +-    let mut x337: u64 = 0;
> +-    let mut x338: u64 = 0;
> +     let (x337, x338) = fiat_p384_scalar_mulx_u64(x323, 0x6ed46089e88fdc45);
> +-    let mut x339: u64 = 0;
> +-    let mut x340: u64 = 0;
> +     let (x339, x340) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x341: u64 = 0;
> +-    let mut x342: u64 = 0;
> +     let (x341, x342) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x343: u64 = 0;
> +-    let mut x344: u64 = 0;
> +     let (x343, x344) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
> +-    let mut x345: u64 = 0;
> +-    let mut x346: u64 = 0;
> +     let (x345, x346) = fiat_p384_scalar_mulx_u64(x337, 0xc7634d81f4372ddf);
> +-    let mut x347: u64 = 0;
> +-    let mut x348: u64 = 0;
> +     let (x347, x348) = fiat_p384_scalar_mulx_u64(x337, 0x581a0db248b0a77a);
> +-    let mut x349: u64 = 0;
> +-    let mut x350: u64 = 0;
> +     let (x349, x350) = fiat_p384_scalar_mulx_u64(x337, 0xecec196accc52973);
> +-    let mut x351: u64 = 0;
> +-    let mut x352: fiat_p384_scalar_u1 = 0;
> +     let (x351, x352) = fiat_p384_scalar_addcarryx_u64(0x0, x350, x347);
> +-    let mut x353: u64 = 0;
> +-    let mut x354: fiat_p384_scalar_u1 = 0;
> +     let (x353, x354) = fiat_p384_scalar_addcarryx_u64(x352, x348, x345);
> +-    let mut x355: u64 = 0;
> +-    let mut x356: fiat_p384_scalar_u1 = 0;
> +     let (x355, x356) = fiat_p384_scalar_addcarryx_u64(x354, x346, x343);
> +-    let mut x357: u64 = 0;
> +-    let mut x358: fiat_p384_scalar_u1 = 0;
> +     let (x357, x358) = fiat_p384_scalar_addcarryx_u64(x356, x344, x341);
> +-    let mut x359: u64 = 0;
> +-    let mut x360: fiat_p384_scalar_u1 = 0;
> +     let (x359, x360) = fiat_p384_scalar_addcarryx_u64(x358, x342, x339);
> +     let x361: u64 = ((x360 as u64) + x340);
> +-    let mut x362: u64 = 0;
> +-    let mut x363: fiat_p384_scalar_u1 = 0;
> +     let (x362, x363) = fiat_p384_scalar_addcarryx_u64(0x0, x323, x349);
> +-    let mut x364: u64 = 0;
> +-    let mut x365: fiat_p384_scalar_u1 = 0;
> +     let (x364, x365) = fiat_p384_scalar_addcarryx_u64(x363, x325, x351);
> +-    let mut x366: u64 = 0;
> +-    let mut x367: fiat_p384_scalar_u1 = 0;
> +     let (x366, x367) = fiat_p384_scalar_addcarryx_u64(x365, x327, x353);
> +-    let mut x368: u64 = 0;
> +-    let mut x369: fiat_p384_scalar_u1 = 0;
> +     let (x368, x369) = fiat_p384_scalar_addcarryx_u64(x367, x329, x355);
> +-    let mut x370: u64 = 0;
> +-    let mut x371: fiat_p384_scalar_u1 = 0;
> +     let (x370, x371) = fiat_p384_scalar_addcarryx_u64(x369, x331, x357);
> +-    let mut x372: u64 = 0;
> +-    let mut x373: fiat_p384_scalar_u1 = 0;
> +     let (x372, x373) = fiat_p384_scalar_addcarryx_u64(x371, x333, x359);
> +-    let mut x374: u64 = 0;
> +-    let mut x375: fiat_p384_scalar_u1 = 0;
> +     let (x374, x375) = fiat_p384_scalar_addcarryx_u64(x373, x335, x361);
> +     let x376: u64 = ((x375 as u64) + (x336 as u64));
> +-    let mut x377: u64 = 0;
> +-    let mut x378: u64 = 0;
> +     let (x377, x378) = fiat_p384_scalar_mulx_u64(x5, (arg1[5]));
> +-    let mut x379: u64 = 0;
> +-    let mut x380: u64 = 0;
> +     let (x379, x380) = fiat_p384_scalar_mulx_u64(x5, (arg1[4]));
> +-    let mut x381: u64 = 0;
> +-    let mut x382: u64 = 0;
> +     let (x381, x382) = fiat_p384_scalar_mulx_u64(x5, (arg1[3]));
> +-    let mut x383: u64 = 0;
> +-    let mut x384: u64 = 0;
> +     let (x383, x384) = fiat_p384_scalar_mulx_u64(x5, (arg1[2]));
> +-    let mut x385: u64 = 0;
> +-    let mut x386: u64 = 0;
> +     let (x385, x386) = fiat_p384_scalar_mulx_u64(x5, (arg1[1]));
> +-    let mut x387: u64 = 0;
> +-    let mut x388: u64 = 0;
> +     let (x387, x388) = fiat_p384_scalar_mulx_u64(x5, (arg1[0]));
> +-    let mut x389: u64 = 0;
> +-    let mut x390: fiat_p384_scalar_u1 = 0;
> +     let (x389, x390) = fiat_p384_scalar_addcarryx_u64(0x0, x388, x385);
> +-    let mut x391: u64 = 0;
> +-    let mut x392: fiat_p384_scalar_u1 = 0;
> +     let (x391, x392) = fiat_p384_scalar_addcarryx_u64(x390, x386, x383);
> +-    let mut x393: u64 = 0;
> +-    let mut x394: fiat_p384_scalar_u1 = 0;
> +     let (x393, x394) = fiat_p384_scalar_addcarryx_u64(x392, x384, x381);
> +-    let mut x395: u64 = 0;
> +-    let mut x396: fiat_p384_scalar_u1 = 0;
> +     let (x395, x396) = fiat_p384_scalar_addcarryx_u64(x394, x382, x379);
> +-    let mut x397: u64 = 0;
> +-    let mut x398: fiat_p384_scalar_u1 = 0;
> +     let (x397, x398) = fiat_p384_scalar_addcarryx_u64(x396, x380, x377);
> +     let x399: u64 = ((x398 as u64) + x378);
> +-    let mut x400: u64 = 0;
> +-    let mut x401: fiat_p384_scalar_u1 = 0;
> +     let (x400, x401) = fiat_p384_scalar_addcarryx_u64(0x0, x364, x387);
> +-    let mut x402: u64 = 0;
> +-    let mut x403: fiat_p384_scalar_u1 = 0;
> +     let (x402, x403) = fiat_p384_scalar_addcarryx_u64(x401, x366, x389);
> +-    let mut x404: u64 = 0;
> +-    let mut x405: fiat_p384_scalar_u1 = 0;
> +     let (x404, x405) = fiat_p384_scalar_addcarryx_u64(x403, x368, x391);
> +-    let mut x406: u64 = 0;
> +-    let mut x407: fiat_p384_scalar_u1 = 0;
> +     let (x406, x407) = fiat_p384_scalar_addcarryx_u64(x405, x370, x393);
> +-    let mut x408: u64 = 0;
> +-    let mut x409: fiat_p384_scalar_u1 = 0;
> +     let (x408, x409) = fiat_p384_scalar_addcarryx_u64(x407, x372, x395);
> +-    let mut x410: u64 = 0;
> +-    let mut x411: fiat_p384_scalar_u1 = 0;
> +     let (x410, x411) = fiat_p384_scalar_addcarryx_u64(x409, x374, x397);
> +-    let mut x412: u64 = 0;
> +-    let mut x413: fiat_p384_scalar_u1 = 0;
> +     let (x412, x413) = fiat_p384_scalar_addcarryx_u64(x411, x376, x399);
> +-    let mut x414: u64 = 0;
> +-    let mut x415: u64 = 0;
> +     let (x414, x415) = fiat_p384_scalar_mulx_u64(x400, 0x6ed46089e88fdc45);
> +-    let mut x416: u64 = 0;
> +-    let mut x417: u64 = 0;
> +     let (x416, x417) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x418: u64 = 0;
> +-    let mut x419: u64 = 0;
> +     let (x418, x419) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x420: u64 = 0;
> +-    let mut x421: u64 = 0;
> +     let (x420, x421) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
> +-    let mut x422: u64 = 0;
> +-    let mut x423: u64 = 0;
> +     let (x422, x423) = fiat_p384_scalar_mulx_u64(x414, 0xc7634d81f4372ddf);
> +-    let mut x424: u64 = 0;
> +-    let mut x425: u64 = 0;
> +     let (x424, x425) = fiat_p384_scalar_mulx_u64(x414, 0x581a0db248b0a77a);
> +-    let mut x426: u64 = 0;
> +-    let mut x427: u64 = 0;
> +     let (x426, x427) = fiat_p384_scalar_mulx_u64(x414, 0xecec196accc52973);
> +-    let mut x428: u64 = 0;
> +-    let mut x429: fiat_p384_scalar_u1 = 0;
> +     let (x428, x429) = fiat_p384_scalar_addcarryx_u64(0x0, x427, x424);
> +-    let mut x430: u64 = 0;
> +-    let mut x431: fiat_p384_scalar_u1 = 0;
> +     let (x430, x431) = fiat_p384_scalar_addcarryx_u64(x429, x425, x422);
> +-    let mut x432: u64 = 0;
> +-    let mut x433: fiat_p384_scalar_u1 = 0;
> +     let (x432, x433) = fiat_p384_scalar_addcarryx_u64(x431, x423, x420);
> +-    let mut x434: u64 = 0;
> +-    let mut x435: fiat_p384_scalar_u1 = 0;
> +     let (x434, x435) = fiat_p384_scalar_addcarryx_u64(x433, x421, x418);
> +-    let mut x436: u64 = 0;
> +-    let mut x437: fiat_p384_scalar_u1 = 0;
> +     let (x436, x437) = fiat_p384_scalar_addcarryx_u64(x435, x419, x416);
> +     let x438: u64 = ((x437 as u64) + x417);
> +-    let mut x439: u64 = 0;
> +-    let mut x440: fiat_p384_scalar_u1 = 0;
> +     let (x439, x440) = fiat_p384_scalar_addcarryx_u64(0x0, x400, x426);
> +-    let mut x441: u64 = 0;
> +-    let mut x442: fiat_p384_scalar_u1 = 0;
> +     let (x441, x442) = fiat_p384_scalar_addcarryx_u64(x440, x402, x428);
> +-    let mut x443: u64 = 0;
> +-    let mut x444: fiat_p384_scalar_u1 = 0;
> +     let (x443, x444) = fiat_p384_scalar_addcarryx_u64(x442, x404, x430);
> +-    let mut x445: u64 = 0;
> +-    let mut x446: fiat_p384_scalar_u1 = 0;
> +     let (x445, x446) = fiat_p384_scalar_addcarryx_u64(x444, x406, x432);
> +-    let mut x447: u64 = 0;
> +-    let mut x448: fiat_p384_scalar_u1 = 0;
> +     let (x447, x448) = fiat_p384_scalar_addcarryx_u64(x446, x408, x434);
> +-    let mut x449: u64 = 0;
> +-    let mut x450: fiat_p384_scalar_u1 = 0;
> +     let (x449, x450) = fiat_p384_scalar_addcarryx_u64(x448, x410, x436);
> +-    let mut x451: u64 = 0;
> +-    let mut x452: fiat_p384_scalar_u1 = 0;
> +     let (x451, x452) = fiat_p384_scalar_addcarryx_u64(x450, x412, x438);
> +     let x453: u64 = ((x452 as u64) + (x413 as u64));
> +-    let mut x454: u64 = 0;
> +-    let mut x455: fiat_p384_scalar_u1 = 0;
> +     let (x454, x455) = fiat_p384_scalar_subborrowx_u64(0x0, x441, 0xecec196accc52973);
> +-    let mut x456: u64 = 0;
> +-    let mut x457: fiat_p384_scalar_u1 = 0;
> +     let (x456, x457) = fiat_p384_scalar_subborrowx_u64(x455, x443, 0x581a0db248b0a77a);
> +-    let mut x458: u64 = 0;
> +-    let mut x459: fiat_p384_scalar_u1 = 0;
> +     let (x458, x459) = fiat_p384_scalar_subborrowx_u64(x457, x445, 0xc7634d81f4372ddf);
> +-    let mut x460: u64 = 0;
> +-    let mut x461: fiat_p384_scalar_u1 = 0;
> +     let (x460, x461) = fiat_p384_scalar_subborrowx_u64(x459, x447, 0xffffffffffffffff);
> +-    let mut x462: u64 = 0;
> +-    let mut x463: fiat_p384_scalar_u1 = 0;
> +     let (x462, x463) = fiat_p384_scalar_subborrowx_u64(x461, x449, 0xffffffffffffffff);
> +-    let mut x464: u64 = 0;
> +-    let mut x465: fiat_p384_scalar_u1 = 0;
> +     let (x464, x465) = fiat_p384_scalar_subborrowx_u64(x463, x451, 0xffffffffffffffff);
> +-    let mut x466: u64 = 0;
> +-    let mut x467: fiat_p384_scalar_u1 = 0;
> +     let (x466, x467) = fiat_p384_scalar_subborrowx_u64(x465, x453, 0x0_u64);
> +-    let mut x468: u64 = 0;
> +     let (x468) = fiat_p384_scalar_cmovznz_u64(x467, x454, x441);
> +-    let mut x469: u64 = 0;
> +     let (x469) = fiat_p384_scalar_cmovznz_u64(x467, x456, x443);
> +-    let mut x470: u64 = 0;
> +     let (x470) = fiat_p384_scalar_cmovznz_u64(x467, x458, x445);
> +-    let mut x471: u64 = 0;
> +     let (x471) = fiat_p384_scalar_cmovznz_u64(x467, x460, x447);
> +-    let mut x472: u64 = 0;
> +     let (x472) = fiat_p384_scalar_cmovznz_u64(x467, x462, x449);
> +-    let mut x473: u64 = 0;
> +     let (x473) = fiat_p384_scalar_cmovznz_u64(x467, x464, x451);
> +     out1[0] = x468;
> +     out1[1] = x469;
> +@@ -1608,56 +708,24 @@ pub const fn fiat_p384_scalar_add(
> +     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
> + ) -> fiat_p384_scalar_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u64 = 0;
> +-    let mut x4: fiat_p384_scalar_u1 = 0;
> +     let (x3, x4) = fiat_p384_scalar_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u64 = 0;
> +-    let mut x6: fiat_p384_scalar_u1 = 0;
> +     let (x5, x6) = fiat_p384_scalar_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u64 = 0;
> +-    let mut x8: fiat_p384_scalar_u1 = 0;
> +     let (x7, x8) = fiat_p384_scalar_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: fiat_p384_scalar_u1 = 0;
> +     let (x9, x10) = fiat_p384_scalar_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: fiat_p384_scalar_u1 = 0;
> +     let (x11, x12) = fiat_p384_scalar_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u64 = 0;
> +-    let mut x14: fiat_p384_scalar_u1 = 0;
> +     let (x13, x14) = fiat_p384_scalar_subborrowx_u64(0x0, x1, 0xecec196accc52973);
> +-    let mut x15: u64 = 0;
> +-    let mut x16: fiat_p384_scalar_u1 = 0;
> +     let (x15, x16) = fiat_p384_scalar_subborrowx_u64(x14, x3, 0x581a0db248b0a77a);
> +-    let mut x17: u64 = 0;
> +-    let mut x18: fiat_p384_scalar_u1 = 0;
> +     let (x17, x18) = fiat_p384_scalar_subborrowx_u64(x16, x5, 0xc7634d81f4372ddf);
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_subborrowx_u64(x18, x7, 0xffffffffffffffff);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_subborrowx_u64(x20, x9, 0xffffffffffffffff);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_subborrowx_u64(x22, x11, 0xffffffffffffffff);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_scalar_u1 = 0;
> +     let (x25, x26) = fiat_p384_scalar_subborrowx_u64(x24, (x12 as u64), 0x0_u64);
> +-    let mut x27: u64 = 0;
> +     let (x27) = fiat_p384_scalar_cmovznz_u64(x26, x13, x1);
> +-    let mut x28: u64 = 0;
> +     let (x28) = fiat_p384_scalar_cmovznz_u64(x26, x15, x3);
> +-    let mut x29: u64 = 0;
> +     let (x29) = fiat_p384_scalar_cmovznz_u64(x26, x17, x5);
> +-    let mut x30: u64 = 0;
> +     let (x30) = fiat_p384_scalar_cmovznz_u64(x26, x19, x7);
> +-    let mut x31: u64 = 0;
> +     let (x31) = fiat_p384_scalar_cmovznz_u64(x26, x21, x9);
> +-    let mut x32: u64 = 0;
> +     let (x32) = fiat_p384_scalar_cmovznz_u64(x26, x23, x11);
> +     out1[0] = x27;
> +     out1[1] = x28;
> +@@ -1682,43 +750,18 @@ pub const fn fiat_p384_scalar_sub(
> +     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
> + ) -> fiat_p384_scalar_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
> +-    let mut x3: u64 = 0;
> +-    let mut x4: fiat_p384_scalar_u1 = 0;
> +     let (x3, x4) = fiat_p384_scalar_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
> +-    let mut x5: u64 = 0;
> +-    let mut x6: fiat_p384_scalar_u1 = 0;
> +     let (x5, x6) = fiat_p384_scalar_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
> +-    let mut x7: u64 = 0;
> +-    let mut x8: fiat_p384_scalar_u1 = 0;
> +     let (x7, x8) = fiat_p384_scalar_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: fiat_p384_scalar_u1 = 0;
> +     let (x9, x10) = fiat_p384_scalar_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: fiat_p384_scalar_u1 = 0;
> +     let (x11, x12) = fiat_p384_scalar_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
> +-    let mut x13: u64 = 0;
> +     let (x13) = fiat_p384_scalar_cmovznz_u64(x12, 0x0_u64, 0xffffffffffffffff);
> +-    let mut x14: u64 = 0;
> +-    let mut x15: fiat_p384_scalar_u1 = 0;
> +     let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, x1, (x13 & 0xecec196accc52973));
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_scalar_u1 = 0;
> +     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, x3, (x13 & 0x581a0db248b0a77a));
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_scalar_u1 = 0;
> +     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x5, (x13 & 0xc7634d81f4372ddf));
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_scalar_u1 = 0;
> +     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x7, x13);
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_scalar_u1 = 0;
> +     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x13);
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_scalar_u1 = 0;
> +     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x11, x13);
> +     out1[0] = x14;
> +     out1[1] = x16;
> +@@ -1741,43 +784,18 @@ pub const fn fiat_p384_scalar_opp(
> +     arg1: &fiat_p384_scalar_montgomery_domain_field_element,
> + ) -> fiat_p384_scalar_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_subborrowx_u64(0x0, 0x0_u64, (arg1[0]));
> +-    let mut x3: u64 = 0;
> +-    let mut x4: fiat_p384_scalar_u1 = 0;
> +     let (x3, x4) = fiat_p384_scalar_subborrowx_u64(x2, 0x0_u64, (arg1[1]));
> +-    let mut x5: u64 = 0;
> +-    let mut x6: fiat_p384_scalar_u1 = 0;
> +     let (x5, x6) = fiat_p384_scalar_subborrowx_u64(x4, 0x0_u64, (arg1[2]));
> +-    let mut x7: u64 = 0;
> +-    let mut x8: fiat_p384_scalar_u1 = 0;
> +     let (x7, x8) = fiat_p384_scalar_subborrowx_u64(x6, 0x0_u64, (arg1[3]));
> +-    let mut x9: u64 = 0;
> +-    let mut x10: fiat_p384_scalar_u1 = 0;
> +     let (x9, x10) = fiat_p384_scalar_subborrowx_u64(x8, 0x0_u64, (arg1[4]));
> +-    let mut x11: u64 = 0;
> +-    let mut x12: fiat_p384_scalar_u1 = 0;
> +     let (x11, x12) = fiat_p384_scalar_subborrowx_u64(x10, 0x0_u64, (arg1[5]));
> +-    let mut x13: u64 = 0;
> +     let (x13) = fiat_p384_scalar_cmovznz_u64(x12, 0x0_u64, 0xffffffffffffffff);
> +-    let mut x14: u64 = 0;
> +-    let mut x15: fiat_p384_scalar_u1 = 0;
> +     let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, x1, (x13 & 0xecec196accc52973));
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_scalar_u1 = 0;
> +     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, x3, (x13 & 0x581a0db248b0a77a));
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_scalar_u1 = 0;
> +     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x5, (x13 & 0xc7634d81f4372ddf));
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_scalar_u1 = 0;
> +     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x7, x13);
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_scalar_u1 = 0;
> +     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x13);
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_scalar_u1 = 0;
> +     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x11, x13);
> +     out1[0] = x14;
> +     out1[1] = x16;
> +@@ -1801,487 +819,179 @@ pub const fn fiat_p384_scalar_from_montgomery(
> + ) -> fiat_p384_scalar_non_montgomery_domain_field_element {
> +     let mut out1: fiat_p384_scalar_non_montgomery_domain_field_element = [0; 6];
> +     let x1: u64 = (arg1[0]);
> +-    let mut x2: u64 = 0;
> +-    let mut x3: u64 = 0;
> +     let (x2, x3) = fiat_p384_scalar_mulx_u64(x1, 0x6ed46089e88fdc45);
> +-    let mut x4: u64 = 0;
> +-    let mut x5: u64 = 0;
> +     let (x4, x5) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
> +-    let mut x6: u64 = 0;
> +-    let mut x7: u64 = 0;
> +     let (x6, x7) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
> +-    let mut x8: u64 = 0;
> +-    let mut x9: u64 = 0;
> +     let (x8, x9) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
> +-    let mut x10: u64 = 0;
> +-    let mut x11: u64 = 0;
> +     let (x10, x11) = fiat_p384_scalar_mulx_u64(x2, 0xc7634d81f4372ddf);
> +-    let mut x12: u64 = 0;
> +-    let mut x13: u64 = 0;
> +     let (x12, x13) = fiat_p384_scalar_mulx_u64(x2, 0x581a0db248b0a77a);
> +-    let mut x14: u64 = 0;
> +-    let mut x15: u64 = 0;
> +     let (x14, x15) = fiat_p384_scalar_mulx_u64(x2, 0xecec196accc52973);
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_scalar_u1 = 0;
> +     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(0x0, x15, x12);
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_scalar_u1 = 0;
> +     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x13, x10);
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_scalar_u1 = 0;
> +     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x11, x8);
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_scalar_u1 = 0;
> +     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x6);
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_scalar_u1 = 0;
> +     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x7, x4);
> +-    let mut x26: u64 = 0;
> +-    let mut x27: fiat_p384_scalar_u1 = 0;
> +     let (x26, x27) = fiat_p384_scalar_addcarryx_u64(0x0, x1, x14);
> +-    let mut x28: u64 = 0;
> +-    let mut x29: fiat_p384_scalar_u1 = 0;
> +     let (x28, x29) = fiat_p384_scalar_addcarryx_u64(x27, 0x0_u64, x16);
> +-    let mut x30: u64 = 0;
> +-    let mut x31: fiat_p384_scalar_u1 = 0;
> +     let (x30, x31) = fiat_p384_scalar_addcarryx_u64(x29, 0x0_u64, x18);
> +-    let mut x32: u64 = 0;
> +-    let mut x33: fiat_p384_scalar_u1 = 0;
> +     let (x32, x33) = fiat_p384_scalar_addcarryx_u64(x31, 0x0_u64, x20);
> +-    let mut x34: u64 = 0;
> +-    let mut x35: fiat_p384_scalar_u1 = 0;
> +     let (x34, x35) = fiat_p384_scalar_addcarryx_u64(x33, 0x0_u64, x22);
> +-    let mut x36: u64 = 0;
> +-    let mut x37: fiat_p384_scalar_u1 = 0;
> +     let (x36, x37) = fiat_p384_scalar_addcarryx_u64(x35, 0x0_u64, x24);
> +-    let mut x38: u64 = 0;
> +-    let mut x39: fiat_p384_scalar_u1 = 0;
> +     let (x38, x39) = fiat_p384_scalar_addcarryx_u64(x37, 0x0_u64, ((x25 as u64) + x5));
> +-    let mut x40: u64 = 0;
> +-    let mut x41: fiat_p384_scalar_u1 = 0;
> +     let (x40, x41) = fiat_p384_scalar_addcarryx_u64(0x0, x28, (arg1[1]));
> +-    let mut x42: u64 = 0;
> +-    let mut x43: fiat_p384_scalar_u1 = 0;
> +     let (x42, x43) = fiat_p384_scalar_addcarryx_u64(x41, x30, 0x0_u64);
> +-    let mut x44: u64 = 0;
> +-    let mut x45: fiat_p384_scalar_u1 = 0;
> +     let (x44, x45) = fiat_p384_scalar_addcarryx_u64(x43, x32, 0x0_u64);
> +-    let mut x46: u64 = 0;
> +-    let mut x47: fiat_p384_scalar_u1 = 0;
> +     let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x34, 0x0_u64);
> +-    let mut x48: u64 = 0;
> +-    let mut x49: fiat_p384_scalar_u1 = 0;
> +     let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x36, 0x0_u64);
> +-    let mut x50: u64 = 0;
> +-    let mut x51: fiat_p384_scalar_u1 = 0;
> +     let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x38, 0x0_u64);
> +-    let mut x52: u64 = 0;
> +-    let mut x53: u64 = 0;
> +     let (x52, x53) = fiat_p384_scalar_mulx_u64(x40, 0x6ed46089e88fdc45);
> +-    let mut x54: u64 = 0;
> +-    let mut x55: u64 = 0;
> +     let (x54, x55) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
> +-    let mut x56: u64 = 0;
> +-    let mut x57: u64 = 0;
> +     let (x56, x57) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
> +-    let mut x58: u64 = 0;
> +-    let mut x59: u64 = 0;
> +     let (x58, x59) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
> +-    let mut x60: u64 = 0;
> +-    let mut x61: u64 = 0;
> +     let (x60, x61) = fiat_p384_scalar_mulx_u64(x52, 0xc7634d81f4372ddf);
> +-    let mut x62: u64 = 0;
> +-    let mut x63: u64 = 0;
> +     let (x62, x63) = fiat_p384_scalar_mulx_u64(x52, 0x581a0db248b0a77a);
> +-    let mut x64: u64 = 0;
> +-    let mut x65: u64 = 0;
> +     let (x64, x65) = fiat_p384_scalar_mulx_u64(x52, 0xecec196accc52973);
> +-    let mut x66: u64 = 0;
> +-    let mut x67: fiat_p384_scalar_u1 = 0;
> +     let (x66, x67) = fiat_p384_scalar_addcarryx_u64(0x0, x65, x62);
> +-    let mut x68: u64 = 0;
> +-    let mut x69: fiat_p384_scalar_u1 = 0;
> +     let (x68, x69) = fiat_p384_scalar_addcarryx_u64(x67, x63, x60);
> +-    let mut x70: u64 = 0;
> +-    let mut x71: fiat_p384_scalar_u1 = 0;
> +     let (x70, x71) = fiat_p384_scalar_addcarryx_u64(x69, x61, x58);
> +-    let mut x72: u64 = 0;
> +-    let mut x73: fiat_p384_scalar_u1 = 0;
> +     let (x72, x73) = fiat_p384_scalar_addcarryx_u64(x71, x59, x56);
> +-    let mut x74: u64 = 0;
> +-    let mut x75: fiat_p384_scalar_u1 = 0;
> +     let (x74, x75) = fiat_p384_scalar_addcarryx_u64(x73, x57, x54);
> +-    let mut x76: u64 = 0;
> +-    let mut x77: fiat_p384_scalar_u1 = 0;
> +     let (x76, x77) = fiat_p384_scalar_addcarryx_u64(0x0, x40, x64);
> +-    let mut x78: u64 = 0;
> +-    let mut x79: fiat_p384_scalar_u1 = 0;
> +     let (x78, x79) = fiat_p384_scalar_addcarryx_u64(x77, x42, x66);
> +-    let mut x80: u64 = 0;
> +-    let mut x81: fiat_p384_scalar_u1 = 0;
> +     let (x80, x81) = fiat_p384_scalar_addcarryx_u64(x79, x44, x68);
> +-    let mut x82: u64 = 0;
> +-    let mut x83: fiat_p384_scalar_u1 = 0;
> +     let (x82, x83) = fiat_p384_scalar_addcarryx_u64(x81, x46, x70);
> +-    let mut x84: u64 = 0;
> +-    let mut x85: fiat_p384_scalar_u1 = 0;
> +     let (x84, x85) = fiat_p384_scalar_addcarryx_u64(x83, x48, x72);
> +-    let mut x86: u64 = 0;
> +-    let mut x87: fiat_p384_scalar_u1 = 0;
> +     let (x86, x87) = fiat_p384_scalar_addcarryx_u64(x85, x50, x74);
> +-    let mut x88: u64 = 0;
> +-    let mut x89: fiat_p384_scalar_u1 = 0;
> +     let (x88, x89) =
> +         fiat_p384_scalar_addcarryx_u64(x87, ((x51 as u64) + (x39 as u64)), ((x75 as u64) + x55));
> +-    let mut x90: u64 = 0;
> +-    let mut x91: fiat_p384_scalar_u1 = 0;
> +     let (x90, x91) = fiat_p384_scalar_addcarryx_u64(0x0, x78, (arg1[2]));
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(x91, x80, 0x0_u64);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x82, 0x0_u64);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x84, 0x0_u64);
> +-    let mut x98: u64 = 0;
> +-    let mut x99: fiat_p384_scalar_u1 = 0;
> +     let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x86, 0x0_u64);
> +-    let mut x100: u64 = 0;
> +-    let mut x101: fiat_p384_scalar_u1 = 0;
> +     let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x88, 0x0_u64);
> +-    let mut x102: u64 = 0;
> +-    let mut x103: u64 = 0;
> +     let (x102, x103) = fiat_p384_scalar_mulx_u64(x90, 0x6ed46089e88fdc45);
> +-    let mut x104: u64 = 0;
> +-    let mut x105: u64 = 0;
> +     let (x104, x105) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
> +-    let mut x106: u64 = 0;
> +-    let mut x107: u64 = 0;
> +     let (x106, x107) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
> +-    let mut x108: u64 = 0;
> +-    let mut x109: u64 = 0;
> +     let (x108, x109) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
> +-    let mut x110: u64 = 0;
> +-    let mut x111: u64 = 0;
> +     let (x110, x111) = fiat_p384_scalar_mulx_u64(x102, 0xc7634d81f4372ddf);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: u64 = 0;
> +     let (x112, x113) = fiat_p384_scalar_mulx_u64(x102, 0x581a0db248b0a77a);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: u64 = 0;
> +     let (x114, x115) = fiat_p384_scalar_mulx_u64(x102, 0xecec196accc52973);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: fiat_p384_scalar_u1 = 0;
> +     let (x116, x117) = fiat_p384_scalar_addcarryx_u64(0x0, x115, x112);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: fiat_p384_scalar_u1 = 0;
> +     let (x118, x119) = fiat_p384_scalar_addcarryx_u64(x117, x113, x110);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_scalar_u1 = 0;
> +     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(x119, x111, x108);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_scalar_u1 = 0;
> +     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x109, x106);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_scalar_u1 = 0;
> +     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x107, x104);
> +-    let mut x126: u64 = 0;
> +-    let mut x127: fiat_p384_scalar_u1 = 0;
> +     let (x126, x127) = fiat_p384_scalar_addcarryx_u64(0x0, x90, x114);
> +-    let mut x128: u64 = 0;
> +-    let mut x129: fiat_p384_scalar_u1 = 0;
> +     let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x92, x116);
> +-    let mut x130: u64 = 0;
> +-    let mut x131: fiat_p384_scalar_u1 = 0;
> +     let (x130, x131) = fiat_p384_scalar_addcarryx_u64(x129, x94, x118);
> +-    let mut x132: u64 = 0;
> +-    let mut x133: fiat_p384_scalar_u1 = 0;
> +     let (x132, x133) = fiat_p384_scalar_addcarryx_u64(x131, x96, x120);
> +-    let mut x134: u64 = 0;
> +-    let mut x135: fiat_p384_scalar_u1 = 0;
> +     let (x134, x135) = fiat_p384_scalar_addcarryx_u64(x133, x98, x122);
> +-    let mut x136: u64 = 0;
> +-    let mut x137: fiat_p384_scalar_u1 = 0;
> +     let (x136, x137) = fiat_p384_scalar_addcarryx_u64(x135, x100, x124);
> +-    let mut x138: u64 = 0;
> +-    let mut x139: fiat_p384_scalar_u1 = 0;
> +     let (x138, x139) = fiat_p384_scalar_addcarryx_u64(
> +         x137,
> +         ((x101 as u64) + (x89 as u64)),
> +         ((x125 as u64) + x105),
> +     );
> +-    let mut x140: u64 = 0;
> +-    let mut x141: fiat_p384_scalar_u1 = 0;
> +     let (x140, x141) = fiat_p384_scalar_addcarryx_u64(0x0, x128, (arg1[3]));
> +-    let mut x142: u64 = 0;
> +-    let mut x143: fiat_p384_scalar_u1 = 0;
> +     let (x142, x143) = fiat_p384_scalar_addcarryx_u64(x141, x130, 0x0_u64);
> +-    let mut x144: u64 = 0;
> +-    let mut x145: fiat_p384_scalar_u1 = 0;
> +     let (x144, x145) = fiat_p384_scalar_addcarryx_u64(x143, x132, 0x0_u64);
> +-    let mut x146: u64 = 0;
> +-    let mut x147: fiat_p384_scalar_u1 = 0;
> +     let (x146, x147) = fiat_p384_scalar_addcarryx_u64(x145, x134, 0x0_u64);
> +-    let mut x148: u64 = 0;
> +-    let mut x149: fiat_p384_scalar_u1 = 0;
> +     let (x148, x149) = fiat_p384_scalar_addcarryx_u64(x147, x136, 0x0_u64);
> +-    let mut x150: u64 = 0;
> +-    let mut x151: fiat_p384_scalar_u1 = 0;
> +     let (x150, x151) = fiat_p384_scalar_addcarryx_u64(x149, x138, 0x0_u64);
> +-    let mut x152: u64 = 0;
> +-    let mut x153: u64 = 0;
> +     let (x152, x153) = fiat_p384_scalar_mulx_u64(x140, 0x6ed46089e88fdc45);
> +-    let mut x154: u64 = 0;
> +-    let mut x155: u64 = 0;
> +     let (x154, x155) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
> +-    let mut x156: u64 = 0;
> +-    let mut x157: u64 = 0;
> +     let (x156, x157) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
> +-    let mut x158: u64 = 0;
> +-    let mut x159: u64 = 0;
> +     let (x158, x159) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
> +-    let mut x160: u64 = 0;
> +-    let mut x161: u64 = 0;
> +     let (x160, x161) = fiat_p384_scalar_mulx_u64(x152, 0xc7634d81f4372ddf);
> +-    let mut x162: u64 = 0;
> +-    let mut x163: u64 = 0;
> +     let (x162, x163) = fiat_p384_scalar_mulx_u64(x152, 0x581a0db248b0a77a);
> +-    let mut x164: u64 = 0;
> +-    let mut x165: u64 = 0;
> +     let (x164, x165) = fiat_p384_scalar_mulx_u64(x152, 0xecec196accc52973);
> +-    let mut x166: u64 = 0;
> +-    let mut x167: fiat_p384_scalar_u1 = 0;
> +     let (x166, x167) = fiat_p384_scalar_addcarryx_u64(0x0, x165, x162);
> +-    let mut x168: u64 = 0;
> +-    let mut x169: fiat_p384_scalar_u1 = 0;
> +     let (x168, x169) = fiat_p384_scalar_addcarryx_u64(x167, x163, x160);
> +-    let mut x170: u64 = 0;
> +-    let mut x171: fiat_p384_scalar_u1 = 0;
> +     let (x170, x171) = fiat_p384_scalar_addcarryx_u64(x169, x161, x158);
> +-    let mut x172: u64 = 0;
> +-    let mut x173: fiat_p384_scalar_u1 = 0;
> +     let (x172, x173) = fiat_p384_scalar_addcarryx_u64(x171, x159, x156);
> +-    let mut x174: u64 = 0;
> +-    let mut x175: fiat_p384_scalar_u1 = 0;
> +     let (x174, x175) = fiat_p384_scalar_addcarryx_u64(x173, x157, x154);
> +-    let mut x176: u64 = 0;
> +-    let mut x177: fiat_p384_scalar_u1 = 0;
> +     let (x176, x177) = fiat_p384_scalar_addcarryx_u64(0x0, x140, x164);
> +-    let mut x178: u64 = 0;
> +-    let mut x179: fiat_p384_scalar_u1 = 0;
> +     let (x178, x179) = fiat_p384_scalar_addcarryx_u64(x177, x142, x166);
> +-    let mut x180: u64 = 0;
> +-    let mut x181: fiat_p384_scalar_u1 = 0;
> +     let (x180, x181) = fiat_p384_scalar_addcarryx_u64(x179, x144, x168);
> +-    let mut x182: u64 = 0;
> +-    let mut x183: fiat_p384_scalar_u1 = 0;
> +     let (x182, x183) = fiat_p384_scalar_addcarryx_u64(x181, x146, x170);
> +-    let mut x184: u64 = 0;
> +-    let mut x185: fiat_p384_scalar_u1 = 0;
> +     let (x184, x185) = fiat_p384_scalar_addcarryx_u64(x183, x148, x172);
> +-    let mut x186: u64 = 0;
> +-    let mut x187: fiat_p384_scalar_u1 = 0;
> +     let (x186, x187) = fiat_p384_scalar_addcarryx_u64(x185, x150, x174);
> +-    let mut x188: u64 = 0;
> +-    let mut x189: fiat_p384_scalar_u1 = 0;
> +     let (x188, x189) = fiat_p384_scalar_addcarryx_u64(
> +         x187,
> +         ((x151 as u64) + (x139 as u64)),
> +         ((x175 as u64) + x155),
> +     );
> +-    let mut x190: u64 = 0;
> +-    let mut x191: fiat_p384_scalar_u1 = 0;
> +     let (x190, x191) = fiat_p384_scalar_addcarryx_u64(0x0, x178, (arg1[4]));
> +-    let mut x192: u64 = 0;
> +-    let mut x193: fiat_p384_scalar_u1 = 0;
> +     let (x192, x193) = fiat_p384_scalar_addcarryx_u64(x191, x180, 0x0_u64);
> +-    let mut x194: u64 = 0;
> +-    let mut x195: fiat_p384_scalar_u1 = 0;
> +     let (x194, x195) = fiat_p384_scalar_addcarryx_u64(x193, x182, 0x0_u64);
> +-    let mut x196: u64 = 0;
> +-    let mut x197: fiat_p384_scalar_u1 = 0;
> +     let (x196, x197) = fiat_p384_scalar_addcarryx_u64(x195, x184, 0x0_u64);
> +-    let mut x198: u64 = 0;
> +-    let mut x199: fiat_p384_scalar_u1 = 0;
> +     let (x198, x199) = fiat_p384_scalar_addcarryx_u64(x197, x186, 0x0_u64);
> +-    let mut x200: u64 = 0;
> +-    let mut x201: fiat_p384_scalar_u1 = 0;
> +     let (x200, x201) = fiat_p384_scalar_addcarryx_u64(x199, x188, 0x0_u64);
> +-    let mut x202: u64 = 0;
> +-    let mut x203: u64 = 0;
> +     let (x202, x203) = fiat_p384_scalar_mulx_u64(x190, 0x6ed46089e88fdc45);
> +-    let mut x204: u64 = 0;
> +-    let mut x205: u64 = 0;
> +     let (x204, x205) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
> +-    let mut x206: u64 = 0;
> +-    let mut x207: u64 = 0;
> +     let (x206, x207) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
> +-    let mut x208: u64 = 0;
> +-    let mut x209: u64 = 0;
> +     let (x208, x209) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
> +-    let mut x210: u64 = 0;
> +-    let mut x211: u64 = 0;
> +     let (x210, x211) = fiat_p384_scalar_mulx_u64(x202, 0xc7634d81f4372ddf);
> +-    let mut x212: u64 = 0;
> +-    let mut x213: u64 = 0;
> +     let (x212, x213) = fiat_p384_scalar_mulx_u64(x202, 0x581a0db248b0a77a);
> +-    let mut x214: u64 = 0;
> +-    let mut x215: u64 = 0;
> +     let (x214, x215) = fiat_p384_scalar_mulx_u64(x202, 0xecec196accc52973);
> +-    let mut x216: u64 = 0;
> +-    let mut x217: fiat_p384_scalar_u1 = 0;
> +     let (x216, x217) = fiat_p384_scalar_addcarryx_u64(0x0, x215, x212);
> +-    let mut x218: u64 = 0;
> +-    let mut x219: fiat_p384_scalar_u1 = 0;
> +     let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x213, x210);
> +-    let mut x220: u64 = 0;
> +-    let mut x221: fiat_p384_scalar_u1 = 0;
> +     let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x211, x208);
> +-    let mut x222: u64 = 0;
> +-    let mut x223: fiat_p384_scalar_u1 = 0;
> +     let (x222, x223) = fiat_p384_scalar_addcarryx_u64(x221, x209, x206);
> +-    let mut x224: u64 = 0;
> +-    let mut x225: fiat_p384_scalar_u1 = 0;
> +     let (x224, x225) = fiat_p384_scalar_addcarryx_u64(x223, x207, x204);
> +-    let mut x226: u64 = 0;
> +-    let mut x227: fiat_p384_scalar_u1 = 0;
> +     let (x226, x227) = fiat_p384_scalar_addcarryx_u64(0x0, x190, x214);
> +-    let mut x228: u64 = 0;
> +-    let mut x229: fiat_p384_scalar_u1 = 0;
> +     let (x228, x229) = fiat_p384_scalar_addcarryx_u64(x227, x192, x216);
> +-    let mut x230: u64 = 0;
> +-    let mut x231: fiat_p384_scalar_u1 = 0;
> +     let (x230, x231) = fiat_p384_scalar_addcarryx_u64(x229, x194, x218);
> +-    let mut x232: u64 = 0;
> +-    let mut x233: fiat_p384_scalar_u1 = 0;
> +     let (x232, x233) = fiat_p384_scalar_addcarryx_u64(x231, x196, x220);
> +-    let mut x234: u64 = 0;
> +-    let mut x235: fiat_p384_scalar_u1 = 0;
> +     let (x234, x235) = fiat_p384_scalar_addcarryx_u64(x233, x198, x222);
> +-    let mut x236: u64 = 0;
> +-    let mut x237: fiat_p384_scalar_u1 = 0;
> +     let (x236, x237) = fiat_p384_scalar_addcarryx_u64(x235, x200, x224);
> +-    let mut x238: u64 = 0;
> +-    let mut x239: fiat_p384_scalar_u1 = 0;
> +     let (x238, x239) = fiat_p384_scalar_addcarryx_u64(
> +         x237,
> +         ((x201 as u64) + (x189 as u64)),
> +         ((x225 as u64) + x205),
> +     );
> +-    let mut x240: u64 = 0;
> +-    let mut x241: fiat_p384_scalar_u1 = 0;
> +     let (x240, x241) = fiat_p384_scalar_addcarryx_u64(0x0, x228, (arg1[5]));
> +-    let mut x242: u64 = 0;
> +-    let mut x243: fiat_p384_scalar_u1 = 0;
> +     let (x242, x243) = fiat_p384_scalar_addcarryx_u64(x241, x230, 0x0_u64);
> +-    let mut x244: u64 = 0;
> +-    let mut x245: fiat_p384_scalar_u1 = 0;
> +     let (x244, x245) = fiat_p384_scalar_addcarryx_u64(x243, x232, 0x0_u64);
> +-    let mut x246: u64 = 0;
> +-    let mut x247: fiat_p384_scalar_u1 = 0;
> +     let (x246, x247) = fiat_p384_scalar_addcarryx_u64(x245, x234, 0x0_u64);
> +-    let mut x248: u64 = 0;
> +-    let mut x249: fiat_p384_scalar_u1 = 0;
> +     let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x236, 0x0_u64);
> +-    let mut x250: u64 = 0;
> +-    let mut x251: fiat_p384_scalar_u1 = 0;
> +     let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x238, 0x0_u64);
> +-    let mut x252: u64 = 0;
> +-    let mut x253: u64 = 0;
> +     let (x252, x253) = fiat_p384_scalar_mulx_u64(x240, 0x6ed46089e88fdc45);
> +-    let mut x254: u64 = 0;
> +-    let mut x255: u64 = 0;
> +     let (x254, x255) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
> +-    let mut x256: u64 = 0;
> +-    let mut x257: u64 = 0;
> +     let (x256, x257) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
> +-    let mut x258: u64 = 0;
> +-    let mut x259: u64 = 0;
> +     let (x258, x259) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
> +-    let mut x260: u64 = 0;
> +-    let mut x261: u64 = 0;
> +     let (x260, x261) = fiat_p384_scalar_mulx_u64(x252, 0xc7634d81f4372ddf);
> +-    let mut x262: u64 = 0;
> +-    let mut x263: u64 = 0;
> +     let (x262, x263) = fiat_p384_scalar_mulx_u64(x252, 0x581a0db248b0a77a);
> +-    let mut x264: u64 = 0;
> +-    let mut x265: u64 = 0;
> +     let (x264, x265) = fiat_p384_scalar_mulx_u64(x252, 0xecec196accc52973);
> +-    let mut x266: u64 = 0;
> +-    let mut x267: fiat_p384_scalar_u1 = 0;
> +     let (x266, x267) = fiat_p384_scalar_addcarryx_u64(0x0, x265, x262);
> +-    let mut x268: u64 = 0;
> +-    let mut x269: fiat_p384_scalar_u1 = 0;
> +     let (x268, x269) = fiat_p384_scalar_addcarryx_u64(x267, x263, x260);
> +-    let mut x270: u64 = 0;
> +-    let mut x271: fiat_p384_scalar_u1 = 0;
> +     let (x270, x271) = fiat_p384_scalar_addcarryx_u64(x269, x261, x258);
> +-    let mut x272: u64 = 0;
> +-    let mut x273: fiat_p384_scalar_u1 = 0;
> +     let (x272, x273) = fiat_p384_scalar_addcarryx_u64(x271, x259, x256);
> +-    let mut x274: u64 = 0;
> +-    let mut x275: fiat_p384_scalar_u1 = 0;
> +     let (x274, x275) = fiat_p384_scalar_addcarryx_u64(x273, x257, x254);
> +-    let mut x276: u64 = 0;
> +-    let mut x277: fiat_p384_scalar_u1 = 0;
> +     let (x276, x277) = fiat_p384_scalar_addcarryx_u64(0x0, x240, x264);
> +-    let mut x278: u64 = 0;
> +-    let mut x279: fiat_p384_scalar_u1 = 0;
> +     let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x242, x266);
> +-    let mut x280: u64 = 0;
> +-    let mut x281: fiat_p384_scalar_u1 = 0;
> +     let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x244, x268);
> +-    let mut x282: u64 = 0;
> +-    let mut x283: fiat_p384_scalar_u1 = 0;
> +     let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x246, x270);
> +-    let mut x284: u64 = 0;
> +-    let mut x285: fiat_p384_scalar_u1 = 0;
> +     let (x284, x285) = fiat_p384_scalar_addcarryx_u64(x283, x248, x272);
> +-    let mut x286: u64 = 0;
> +-    let mut x287: fiat_p384_scalar_u1 = 0;
> +     let (x286, x287) = fiat_p384_scalar_addcarryx_u64(x285, x250, x274);
> +-    let mut x288: u64 = 0;
> +-    let mut x289: fiat_p384_scalar_u1 = 0;
> +     let (x288, x289) = fiat_p384_scalar_addcarryx_u64(
> +         x287,
> +         ((x251 as u64) + (x239 as u64)),
> +         ((x275 as u64) + x255),
> +     );
> +-    let mut x290: u64 = 0;
> +-    let mut x291: fiat_p384_scalar_u1 = 0;
> +     let (x290, x291) = fiat_p384_scalar_subborrowx_u64(0x0, x278, 0xecec196accc52973);
> +-    let mut x292: u64 = 0;
> +-    let mut x293: fiat_p384_scalar_u1 = 0;
> +     let (x292, x293) = fiat_p384_scalar_subborrowx_u64(x291, x280, 0x581a0db248b0a77a);
> +-    let mut x294: u64 = 0;
> +-    let mut x295: fiat_p384_scalar_u1 = 0;
> +     let (x294, x295) = fiat_p384_scalar_subborrowx_u64(x293, x282, 0xc7634d81f4372ddf);
> +-    let mut x296: u64 = 0;
> +-    let mut x297: fiat_p384_scalar_u1 = 0;
> +     let (x296, x297) = fiat_p384_scalar_subborrowx_u64(x295, x284, 0xffffffffffffffff);
> +-    let mut x298: u64 = 0;
> +-    let mut x299: fiat_p384_scalar_u1 = 0;
> +     let (x298, x299) = fiat_p384_scalar_subborrowx_u64(x297, x286, 0xffffffffffffffff);
> +-    let mut x300: u64 = 0;
> +-    let mut x301: fiat_p384_scalar_u1 = 0;
> +     let (x300, x301) = fiat_p384_scalar_subborrowx_u64(x299, x288, 0xffffffffffffffff);
> +-    let mut x302: u64 = 0;
> +-    let mut x303: fiat_p384_scalar_u1 = 0;
> +     let (x302, x303) = fiat_p384_scalar_subborrowx_u64(x301, (x289 as u64), 0x0_u64);
> +-    let mut x304: u64 = 0;
> +     let (x304) = fiat_p384_scalar_cmovznz_u64(x303, x290, x278);
> +-    let mut x305: u64 = 0;
> +     let (x305) = fiat_p384_scalar_cmovznz_u64(x303, x292, x280);
> +-    let mut x306: u64 = 0;
> +     let (x306) = fiat_p384_scalar_cmovznz_u64(x303, x294, x282);
> +-    let mut x307: u64 = 0;
> +     let (x307) = fiat_p384_scalar_cmovznz_u64(x303, x296, x284);
> +-    let mut x308: u64 = 0;
> +     let (x308) = fiat_p384_scalar_cmovznz_u64(x303, x298, x286);
> +-    let mut x309: u64 = 0;
> +     let (x309) = fiat_p384_scalar_cmovznz_u64(x303, x300, x288);
> +     out1[0] = x304;
> +     out1[1] = x305;
> +@@ -2310,688 +1020,248 @@ pub const fn fiat_p384_scalar_to_montgomery(
> +     let x4: u64 = (arg1[4]);
> +     let x5: u64 = (arg1[5]);
> +     let x6: u64 = (arg1[0]);
> +-    let mut x7: u64 = 0;
> +-    let mut x8: u64 = 0;
> +     let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, 0xc84ee012b39bf21);
> +-    let mut x9: u64 = 0;
> +-    let mut x10: u64 = 0;
> +     let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, 0x3fb05b7a28266895);
> +-    let mut x11: u64 = 0;
> +-    let mut x12: u64 = 0;
> +     let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, 0xd40d49174aab1cc5);
> +-    let mut x13: u64 = 0;
> +-    let mut x14: u64 = 0;
> +     let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, 0xbc3e483afcb82947);
> +-    let mut x15: u64 = 0;
> +-    let mut x16: u64 = 0;
> +     let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, 0xff3d81e5df1aa419);
> +-    let mut x17: u64 = 0;
> +-    let mut x18: u64 = 0;
> +     let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, 0x2d319b2419b409a9);
> +-    let mut x19: u64 = 0;
> +-    let mut x20: fiat_p384_scalar_u1 = 0;
> +     let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
> +-    let mut x21: u64 = 0;
> +-    let mut x22: fiat_p384_scalar_u1 = 0;
> +     let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
> +-    let mut x23: u64 = 0;
> +-    let mut x24: fiat_p384_scalar_u1 = 0;
> +     let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
> +-    let mut x25: u64 = 0;
> +-    let mut x26: fiat_p384_scalar_u1 = 0;
> +     let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
> +-    let mut x27: u64 = 0;
> +-    let mut x28: fiat_p384_scalar_u1 = 0;
> +     let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
> +-    let mut x29: u64 = 0;
> +-    let mut x30: u64 = 0;
> +     let (x29, x30) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
> +-    let mut x31: u64 = 0;
> +-    let mut x32: u64 = 0;
> +     let (x31, x32) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
> +-    let mut x33: u64 = 0;
> +-    let mut x34: u64 = 0;
> +     let (x33, x34) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
> +-    let mut x35: u64 = 0;
> +-    let mut x36: u64 = 0;
> +     let (x35, x36) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
> +-    let mut x37: u64 = 0;
> +-    let mut x38: u64 = 0;
> +     let (x37, x38) = fiat_p384_scalar_mulx_u64(x29, 0xc7634d81f4372ddf);
> +-    let mut x39: u64 = 0;
> +-    let mut x40: u64 = 0;
> +     let (x39, x40) = fiat_p384_scalar_mulx_u64(x29, 0x581a0db248b0a77a);
> +-    let mut x41: u64 = 0;
> +-    let mut x42: u64 = 0;
> +     let (x41, x42) = fiat_p384_scalar_mulx_u64(x29, 0xecec196accc52973);
> +-    let mut x43: u64 = 0;
> +-    let mut x44: fiat_p384_scalar_u1 = 0;
> +     let (x43, x44) = fiat_p384_scalar_addcarryx_u64(0x0, x42, x39);
> +-    let mut x45: u64 = 0;
> +-    let mut x46: fiat_p384_scalar_u1 = 0;
> +     let (x45, x46) = fiat_p384_scalar_addcarryx_u64(x44, x40, x37);
> +-    let mut x47: u64 = 0;
> +-    let mut x48: fiat_p384_scalar_u1 = 0;
> +     let (x47, x48) = fiat_p384_scalar_addcarryx_u64(x46, x38, x35);
> +-    let mut x49: u64 = 0;
> +-    let mut x50: fiat_p384_scalar_u1 = 0;
> +     let (x49, x50) = fiat_p384_scalar_addcarryx_u64(x48, x36, x33);
> +-    let mut x51: u64 = 0;
> +-    let mut x52: fiat_p384_scalar_u1 = 0;
> +     let (x51, x52) = fiat_p384_scalar_addcarryx_u64(x50, x34, x31);
> +-    let mut x53: u64 = 0;
> +-    let mut x54: fiat_p384_scalar_u1 = 0;
> +     let (x53, x54) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x41);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_addcarryx_u64(x54, x19, x43);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x21, x45);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_scalar_u1 = 0;
> +     let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x23, x47);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_scalar_u1 = 0;
> +     let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x25, x49);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_scalar_u1 = 0;
> +     let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x27, x51);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_scalar_u1 = 0;
> +     let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, ((x28 as u64) + x8), ((x52 as u64) + x32));
> +-    let mut x67: u64 = 0;
> +-    let mut x68: u64 = 0;
> +     let (x67, x68) = fiat_p384_scalar_mulx_u64(x1, 0xc84ee012b39bf21);
> +-    let mut x69: u64 = 0;
> +-    let mut x70: u64 = 0;
> +     let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, 0x3fb05b7a28266895);
> +-    let mut x71: u64 = 0;
> +-    let mut x72: u64 = 0;
> +     let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, 0xd40d49174aab1cc5);
> +-    let mut x73: u64 = 0;
> +-    let mut x74: u64 = 0;
> +     let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, 0xbc3e483afcb82947);
> +-    let mut x75: u64 = 0;
> +-    let mut x76: u64 = 0;
> +     let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, 0xff3d81e5df1aa419);
> +-    let mut x77: u64 = 0;
> +-    let mut x78: u64 = 0;
> +     let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, 0x2d319b2419b409a9);
> +-    let mut x79: u64 = 0;
> +-    let mut x80: fiat_p384_scalar_u1 = 0;
> +     let (x79, x80) = fiat_p384_scalar_addcarryx_u64(0x0, x78, x75);
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_scalar_u1 = 0;
> +     let (x81, x82) = fiat_p384_scalar_addcarryx_u64(x80, x76, x73);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_scalar_u1 = 0;
> +     let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x74, x71);
> +-    let mut x85: u64 = 0;
> +-    let mut x86: fiat_p384_scalar_u1 = 0;
> +     let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x72, x69);
> +-    let mut x87: u64 = 0;
> +-    let mut x88: fiat_p384_scalar_u1 = 0;
> +     let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x70, x67);
> +-    let mut x89: u64 = 0;
> +-    let mut x90: fiat_p384_scalar_u1 = 0;
> +     let (x89, x90) = fiat_p384_scalar_addcarryx_u64(0x0, x55, x77);
> +-    let mut x91: u64 = 0;
> +-    let mut x92: fiat_p384_scalar_u1 = 0;
> +     let (x91, x92) = fiat_p384_scalar_addcarryx_u64(x90, x57, x79);
> +-    let mut x93: u64 = 0;
> +-    let mut x94: fiat_p384_scalar_u1 = 0;
> +     let (x93, x94) = fiat_p384_scalar_addcarryx_u64(x92, x59, x81);
> +-    let mut x95: u64 = 0;
> +-    let mut x96: fiat_p384_scalar_u1 = 0;
> +     let (x95, x96) = fiat_p384_scalar_addcarryx_u64(x94, x61, x83);
> +-    let mut x97: u64 = 0;
> +-    let mut x98: fiat_p384_scalar_u1 = 0;
> +     let (x97, x98) = fiat_p384_scalar_addcarryx_u64(x96, x63, x85);
> +-    let mut x99: u64 = 0;
> +-    let mut x100: fiat_p384_scalar_u1 = 0;
> +     let (x99, x100) = fiat_p384_scalar_addcarryx_u64(x98, x65, x87);
> +-    let mut x101: u64 = 0;
> +-    let mut x102: u64 = 0;
> +     let (x101, x102) = fiat_p384_scalar_mulx_u64(x89, 0x6ed46089e88fdc45);
> +-    let mut x103: u64 = 0;
> +-    let mut x104: u64 = 0;
> +     let (x103, x104) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
> +-    let mut x105: u64 = 0;
> +-    let mut x106: u64 = 0;
> +     let (x105, x106) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
> +-    let mut x107: u64 = 0;
> +-    let mut x108: u64 = 0;
> +     let (x107, x108) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
> +-    let mut x109: u64 = 0;
> +-    let mut x110: u64 = 0;
> +     let (x109, x110) = fiat_p384_scalar_mulx_u64(x101, 0xc7634d81f4372ddf);
> +-    let mut x111: u64 = 0;
> +-    let mut x112: u64 = 0;
> +     let (x111, x112) = fiat_p384_scalar_mulx_u64(x101, 0x581a0db248b0a77a);
> +-    let mut x113: u64 = 0;
> +-    let mut x114: u64 = 0;
> +     let (x113, x114) = fiat_p384_scalar_mulx_u64(x101, 0xecec196accc52973);
> +-    let mut x115: u64 = 0;
> +-    let mut x116: fiat_p384_scalar_u1 = 0;
> +     let (x115, x116) = fiat_p384_scalar_addcarryx_u64(0x0, x114, x111);
> +-    let mut x117: u64 = 0;
> +-    let mut x118: fiat_p384_scalar_u1 = 0;
> +     let (x117, x118) = fiat_p384_scalar_addcarryx_u64(x116, x112, x109);
> +-    let mut x119: u64 = 0;
> +-    let mut x120: fiat_p384_scalar_u1 = 0;
> +     let (x119, x120) = fiat_p384_scalar_addcarryx_u64(x118, x110, x107);
> +-    let mut x121: u64 = 0;
> +-    let mut x122: fiat_p384_scalar_u1 = 0;
> +     let (x121, x122) = fiat_p384_scalar_addcarryx_u64(x120, x108, x105);
> +-    let mut x123: u64 = 0;
> +-    let mut x124: fiat_p384_scalar_u1 = 0;
> +     let (x123, x124) = fiat_p384_scalar_addcarryx_u64(x122, x106, x103);
> +-    let mut x125: u64 = 0;
> +-    let mut x126: fiat_p384_scalar_u1 = 0;
> +     let (x125, x126) = fiat_p384_scalar_addcarryx_u64(0x0, x89, x113);
> +-    let mut x127: u64 = 0;
> +-    let mut x128: fiat_p384_scalar_u1 = 0;
> +     let (x127, x128) = fiat_p384_scalar_addcarryx_u64(x126, x91, x115);
> +-    let mut x129: u64 = 0;
> +-    let mut x130: fiat_p384_scalar_u1 = 0;
> +     let (x129, x130) = fiat_p384_scalar_addcarryx_u64(x128, x93, x117);
> +-    let mut x131: u64 = 0;
> +-    let mut x132: fiat_p384_scalar_u1 = 0;
> +     let (x131, x132) = fiat_p384_scalar_addcarryx_u64(x130, x95, x119);
> +-    let mut x133: u64 = 0;
> +-    let mut x134: fiat_p384_scalar_u1 = 0;
> +     let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x97, x121);
> +-    let mut x135: u64 = 0;
> +-    let mut x136: fiat_p384_scalar_u1 = 0;
> +     let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x99, x123);
> +-    let mut x137: u64 = 0;
> +-    let mut x138: fiat_p384_scalar_u1 = 0;
> +     let (x137, x138) = fiat_p384_scalar_addcarryx_u64(
> +         x136,
> +         (((x100 as u64) + (x66 as u64)) + ((x88 as u64) + x68)),
> +         ((x124 as u64) + x104),
> +     );
> +-    let mut x139: u64 = 0;
> +-    let mut x140: u64 = 0;
> +     let (x139, x140) = fiat_p384_scalar_mulx_u64(x2, 0xc84ee012b39bf21);
> +-    let mut x141: u64 = 0;
> +-    let mut x142: u64 = 0;
> +     let (x141, x142) = fiat_p384_scalar_mulx_u64(x2, 0x3fb05b7a28266895);
> +-    let mut x143: u64 = 0;
> +-    let mut x144: u64 = 0;
> +     let (x143, x144) = fiat_p384_scalar_mulx_u64(x2, 0xd40d49174aab1cc5);
> +-    let mut x145: u64 = 0;
> +-    let mut x146: u64 = 0;
> +     let (x145, x146) = fiat_p384_scalar_mulx_u64(x2, 0xbc3e483afcb82947);
> +-    let mut x147: u64 = 0;
> +-    let mut x148: u64 = 0;
> +     let (x147, x148) = fiat_p384_scalar_mulx_u64(x2, 0xff3d81e5df1aa419);
> +-    let mut x149: u64 = 0;
> +-    let mut x150: u64 = 0;
> +     let (x149, x150) = fiat_p384_scalar_mulx_u64(x2, 0x2d319b2419b409a9);
> +-    let mut x151: u64 = 0;
> +-    let mut x152: fiat_p384_scalar_u1 = 0;
> +     let (x151, x152) = fiat_p384_scalar_addcarryx_u64(0x0, x150, x147);
> +-    let mut x153: u64 = 0;
> +-    let mut x154: fiat_p384_scalar_u1 = 0;
> +     let (x153, x154) = fiat_p384_scalar_addcarryx_u64(x152, x148, x145);
> +-    let mut x155: u64 = 0;
> +-    let mut x156: fiat_p384_scalar_u1 = 0;
> +     let (x155, x156) = fiat_p384_scalar_addcarryx_u64(x154, x146, x143);
> +-    let mut x157: u64 = 0;
> +-    let mut x158: fiat_p384_scalar_u1 = 0;
> +     let (x157, x158) = fiat_p384_scalar_addcarryx_u64(x156, x144, x141);
> +-    let mut x159: u64 = 0;
> +-    let mut x160: fiat_p384_scalar_u1 = 0;
> +     let (x159, x160) = fiat_p384_scalar_addcarryx_u64(x158, x142, x139);
> +-    let mut x161: u64 = 0;
> +-    let mut x162: fiat_p384_scalar_u1 = 0;
> +     let (x161, x162) = fiat_p384_scalar_addcarryx_u64(0x0, x127, x149);
> +-    let mut x163: u64 = 0;
> +-    let mut x164: fiat_p384_scalar_u1 = 0;
> +     let (x163, x164) = fiat_p384_scalar_addcarryx_u64(x162, x129, x151);
> +-    let mut x165: u64 = 0;
> +-    let mut x166: fiat_p384_scalar_u1 = 0;
> +     let (x165, x166) = fiat_p384_scalar_addcarryx_u64(x164, x131, x153);
> +-    let mut x167: u64 = 0;
> +-    let mut x168: fiat_p384_scalar_u1 = 0;
> +     let (x167, x168) = fiat_p384_scalar_addcarryx_u64(x166, x133, x155);
> +-    let mut x169: u64 = 0;
> +-    let mut x170: fiat_p384_scalar_u1 = 0;
> +     let (x169, x170) = fiat_p384_scalar_addcarryx_u64(x168, x135, x157);
> +-    let mut x171: u64 = 0;
> +-    let mut x172: fiat_p384_scalar_u1 = 0;
> +     let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x137, x159);
> +-    let mut x173: u64 = 0;
> +-    let mut x174: u64 = 0;
> +     let (x173, x174) = fiat_p384_scalar_mulx_u64(x161, 0x6ed46089e88fdc45);
> +-    let mut x175: u64 = 0;
> +-    let mut x176: u64 = 0;
> +     let (x175, x176) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
> +-    let mut x177: u64 = 0;
> +-    let mut x178: u64 = 0;
> +     let (x177, x178) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
> +-    let mut x179: u64 = 0;
> +-    let mut x180: u64 = 0;
> +     let (x179, x180) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
> +-    let mut x181: u64 = 0;
> +-    let mut x182: u64 = 0;
> +     let (x181, x182) = fiat_p384_scalar_mulx_u64(x173, 0xc7634d81f4372ddf);
> +-    let mut x183: u64 = 0;
> +-    let mut x184: u64 = 0;
> +     let (x183, x184) = fiat_p384_scalar_mulx_u64(x173, 0x581a0db248b0a77a);
> +-    let mut x185: u64 = 0;
> +-    let mut x186: u64 = 0;
> +     let (x185, x186) = fiat_p384_scalar_mulx_u64(x173, 0xecec196accc52973);
> +-    let mut x187: u64 = 0;
> +-    let mut x188: fiat_p384_scalar_u1 = 0;
> +     let (x187, x188) = fiat_p384_scalar_addcarryx_u64(0x0, x186, x183);
> +-    let mut x189: u64 = 0;
> +-    let mut x190: fiat_p384_scalar_u1 = 0;
> +     let (x189, x190) = fiat_p384_scalar_addcarryx_u64(x188, x184, x181);
> +-    let mut x191: u64 = 0;
> +-    let mut x192: fiat_p384_scalar_u1 = 0;
> +     let (x191, x192) = fiat_p384_scalar_addcarryx_u64(x190, x182, x179);
> +-    let mut x193: u64 = 0;
> +-    let mut x194: fiat_p384_scalar_u1 = 0;
> +     let (x193, x194) = fiat_p384_scalar_addcarryx_u64(x192, x180, x177);
> +-    let mut x195: u64 = 0;
> +-    let mut x196: fiat_p384_scalar_u1 = 0;
> +     let (x195, x196) = fiat_p384_scalar_addcarryx_u64(x194, x178, x175);
> +-    let mut x197: u64 = 0;
> +-    let mut x198: fiat_p384_scalar_u1 = 0;
> +     let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x161, x185);
> +-    let mut x199: u64 = 0;
> +-    let mut x200: fiat_p384_scalar_u1 = 0;
> +     let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x163, x187);
> +-    let mut x201: u64 = 0;
> +-    let mut x202: fiat_p384_scalar_u1 = 0;
> +     let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x165, x189);
> +-    let mut x203: u64 = 0;
> +-    let mut x204: fiat_p384_scalar_u1 = 0;
> +     let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x167, x191);
> +-    let mut x205: u64 = 0;
> +-    let mut x206: fiat_p384_scalar_u1 = 0;
> +     let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x169, x193);
> +-    let mut x207: u64 = 0;
> +-    let mut x208: fiat_p384_scalar_u1 = 0;
> +     let (x207, x208) = fiat_p384_scalar_addcarryx_u64(x206, x171, x195);
> +-    let mut x209: u64 = 0;
> +-    let mut x210: fiat_p384_scalar_u1 = 0;
> +     let (x209, x210) = fiat_p384_scalar_addcarryx_u64(
> +         x208,
> +         (((x172 as u64) + (x138 as u64)) + ((x160 as u64) + x140)),
> +         ((x196 as u64) + x176),
> +     );
> +-    let mut x211: u64 = 0;
> +-    let mut x212: u64 = 0;
> +     let (x211, x212) = fiat_p384_scalar_mulx_u64(x3, 0xc84ee012b39bf21);
> +-    let mut x213: u64 = 0;
> +-    let mut x214: u64 = 0;
> +     let (x213, x214) = fiat_p384_scalar_mulx_u64(x3, 0x3fb05b7a28266895);
> +-    let mut x215: u64 = 0;
> +-    let mut x216: u64 = 0;
> +     let (x215, x216) = fiat_p384_scalar_mulx_u64(x3, 0xd40d49174aab1cc5);
> +-    let mut x217: u64 = 0;
> +-    let mut x218: u64 = 0;
> +     let (x217, x218) = fiat_p384_scalar_mulx_u64(x3, 0xbc3e483afcb82947);
> +-    let mut x219: u64 = 0;
> +-    let mut x220: u64 = 0;
> +     let (x219, x220) = fiat_p384_scalar_mulx_u64(x3, 0xff3d81e5df1aa419);
> +-    let mut x221: u64 = 0;
> +-    let mut x222: u64 = 0;
> +     let (x221, x222) = fiat_p384_scalar_mulx_u64(x3, 0x2d319b2419b409a9);
> +-    let mut x223: u64 = 0;
> +-    let mut x224: fiat_p384_scalar_u1 = 0;
> +     let (x223, x224) = fiat_p384_scalar_addcarryx_u64(0x0, x222, x219);
> +-    let mut x225: u64 = 0;
> +-    let mut x226: fiat_p384_scalar_u1 = 0;
> +     let (x225, x226) = fiat_p384_scalar_addcarryx_u64(x224, x220, x217);
> +-    let mut x227: u64 = 0;
> +-    let mut x228: fiat_p384_scalar_u1 = 0;
> +     let (x227, x228) = fiat_p384_scalar_addcarryx_u64(x226, x218, x215);
> +-    let mut x229: u64 = 0;
> +-    let mut x230: fiat_p384_scalar_u1 = 0;
> +     let (x229, x230) = fiat_p384_scalar_addcarryx_u64(x228, x216, x213);
> +-    let mut x231: u64 = 0;
> +-    let mut x232: fiat_p384_scalar_u1 = 0;
> +     let (x231, x232) = fiat_p384_scalar_addcarryx_u64(x230, x214, x211);
> +-    let mut x233: u64 = 0;
> +-    let mut x234: fiat_p384_scalar_u1 = 0;
> +     let (x233, x234) = fiat_p384_scalar_addcarryx_u64(0x0, x199, x221);
> +-    let mut x235: u64 = 0;
> +-    let mut x236: fiat_p384_scalar_u1 = 0;
> +     let (x235, x236) = fiat_p384_scalar_addcarryx_u64(x234, x201, x223);
> +-    let mut x237: u64 = 0;
> +-    let mut x238: fiat_p384_scalar_u1 = 0;
> +     let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x203, x225);
> +-    let mut x239: u64 = 0;
> +-    let mut x240: fiat_p384_scalar_u1 = 0;
> +     let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x205, x227);
> +-    let mut x241: u64 = 0;
> +-    let mut x242: fiat_p384_scalar_u1 = 0;
> +     let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x207, x229);
> +-    let mut x243: u64 = 0;
> +-    let mut x244: fiat_p384_scalar_u1 = 0;
> +     let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x209, x231);
> +-    let mut x245: u64 = 0;
> +-    let mut x246: u64 = 0;
> +     let (x245, x246) = fiat_p384_scalar_mulx_u64(x233, 0x6ed46089e88fdc45);
> +-    let mut x247: u64 = 0;
> +-    let mut x248: u64 = 0;
> +     let (x247, x248) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
> +-    let mut x249: u64 = 0;
> +-    let mut x250: u64 = 0;
> +     let (x249, x250) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
> +-    let mut x251: u64 = 0;
> +-    let mut x252: u64 = 0;
> +     let (x251, x252) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
> +-    let mut x253: u64 = 0;
> +-    let mut x254: u64 = 0;
> +     let (x253, x254) = fiat_p384_scalar_mulx_u64(x245, 0xc7634d81f4372ddf);
> +-    let mut x255: u64 = 0;
> +-    let mut x256: u64 = 0;
> +     let (x255, x256) = fiat_p384_scalar_mulx_u64(x245, 0x581a0db248b0a77a);
> +-    let mut x257: u64 = 0;
> +-    let mut x258: u64 = 0;
> +     let (x257, x258) = fiat_p384_scalar_mulx_u64(x245, 0xecec196accc52973);
> +-    let mut x259: u64 = 0;
> +-    let mut x260: fiat_p384_scalar_u1 = 0;
> +     let (x259, x260) = fiat_p384_scalar_addcarryx_u64(0x0, x258, x255);
> +-    let mut x261: u64 = 0;
> +-    let mut x262: fiat_p384_scalar_u1 = 0;
> +     let (x261, x262) = fiat_p384_scalar_addcarryx_u64(x260, x256, x253);
> +-    let mut x263: u64 = 0;
> +-    let mut x264: fiat_p384_scalar_u1 = 0;
> +     let (x263, x264) = fiat_p384_scalar_addcarryx_u64(x262, x254, x251);
> +-    let mut x265: u64 = 0;
> +-    let mut x266: fiat_p384_scalar_u1 = 0;
> +     let (x265, x266) = fiat_p384_scalar_addcarryx_u64(x264, x252, x249);
> +-    let mut x267: u64 = 0;
> +-    let mut x268: fiat_p384_scalar_u1 = 0;
> +     let (x267, x268) = fiat_p384_scalar_addcarryx_u64(x266, x250, x247);
> +-    let mut x269: u64 = 0;
> +-    let mut x270: fiat_p384_scalar_u1 = 0;
> +     let (x269, x270) = fiat_p384_scalar_addcarryx_u64(0x0, x233, x257);
> +-    let mut x271: u64 = 0;
> +-    let mut x272: fiat_p384_scalar_u1 = 0;
> +     let (x271, x272) = fiat_p384_scalar_addcarryx_u64(x270, x235, x259);
> +-    let mut x273: u64 = 0;
> +-    let mut x274: fiat_p384_scalar_u1 = 0;
> +     let (x273, x274) = fiat_p384_scalar_addcarryx_u64(x272, x237, x261);
> +-    let mut x275: u64 = 0;
> +-    let mut x276: fiat_p384_scalar_u1 = 0;
> +     let (x275, x276) = fiat_p384_scalar_addcarryx_u64(x274, x239, x263);
> +-    let mut x277: u64 = 0;
> +-    let mut x278: fiat_p384_scalar_u1 = 0;
> +     let (x277, x278) = fiat_p384_scalar_addcarryx_u64(x276, x241, x265);
> +-    let mut x279: u64 = 0;
> +-    let mut x280: fiat_p384_scalar_u1 = 0;
> +     let (x279, x280) = fiat_p384_scalar_addcarryx_u64(x278, x243, x267);
> +-    let mut x281: u64 = 0;
> +-    let mut x282: fiat_p384_scalar_u1 = 0;
> +     let (x281, x282) = fiat_p384_scalar_addcarryx_u64(
> +         x280,
> +         (((x244 as u64) + (x210 as u64)) + ((x232 as u64) + x212)),
> +         ((x268 as u64) + x248),
> +     );
> +-    let mut x283: u64 = 0;
> +-    let mut x284: u64 = 0;
> +     let (x283, x284) = fiat_p384_scalar_mulx_u64(x4, 0xc84ee012b39bf21);
> +-    let mut x285: u64 = 0;
> +-    let mut x286: u64 = 0;
> +     let (x285, x286) = fiat_p384_scalar_mulx_u64(x4, 0x3fb05b7a28266895);
> +-    let mut x287: u64 = 0;
> +-    let mut x288: u64 = 0;
> +     let (x287, x288) = fiat_p384_scalar_mulx_u64(x4, 0xd40d49174aab1cc5);
> +-    let mut x289: u64 = 0;
> +-    let mut x290: u64 = 0;
> +     let (x289, x290) = fiat_p384_scalar_mulx_u64(x4, 0xbc3e483afcb82947);
> +-    let mut x291: u64 = 0;
> +-    let mut x292: u64 = 0;
> +     let (x291, x292) = fiat_p384_scalar_mulx_u64(x4, 0xff3d81e5df1aa419);
> +-    let mut x293: u64 = 0;
> +-    let mut x294: u64 = 0;
> +     let (x293, x294) = fiat_p384_scalar_mulx_u64(x4, 0x2d319b2419b409a9);
> +-    let mut x295: u64 = 0;
> +-    let mut x296: fiat_p384_scalar_u1 = 0;
> +     let (x295, x296) = fiat_p384_scalar_addcarryx_u64(0x0, x294, x291);
> +-    let mut x297: u64 = 0;
> +-    let mut x298: fiat_p384_scalar_u1 = 0;
> +     let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x292, x289);
> +-    let mut x299: u64 = 0;
> +-    let mut x300: fiat_p384_scalar_u1 = 0;
> +     let (x299, x300) = fiat_p384_scalar_addcarryx_u64(x298, x290, x287);
> +-    let mut x301: u64 = 0;
> +-    let mut x302: fiat_p384_scalar_u1 = 0;
> +     let (x301, x302) = fiat_p384_scalar_addcarryx_u64(x300, x288, x285);
> +-    let mut x303: u64 = 0;
> +-    let mut x304: fiat_p384_scalar_u1 = 0;
> +     let (x303, x304) = fiat_p384_scalar_addcarryx_u64(x302, x286, x283);
> +-    let mut x305: u64 = 0;
> +-    let mut x306: fiat_p384_scalar_u1 = 0;
> +     let (x305, x306) = fiat_p384_scalar_addcarryx_u64(0x0, x271, x293);
> +-    let mut x307: u64 = 0;
> +-    let mut x308: fiat_p384_scalar_u1 = 0;
> +     let (x307, x308) = fiat_p384_scalar_addcarryx_u64(x306, x273, x295);
> +-    let mut x309: u64 = 0;
> +-    let mut x310: fiat_p384_scalar_u1 = 0;
> +     let (x309, x310) = fiat_p384_scalar_addcarryx_u64(x308, x275, x297);
> +-    let mut x311: u64 = 0;
> +-    let mut x312: fiat_p384_scalar_u1 = 0;
> +     let (x311, x312) = fiat_p384_scalar_addcarryx_u64(x310, x277, x299);
> +-    let mut x313: u64 = 0;
> +-    let mut x314: fiat_p384_scalar_u1 = 0;
> +     let (x313, x314) = fiat_p384_scalar_addcarryx_u64(x312, x279, x301);
> +-    let mut x315: u64 = 0;
> +-    let mut x316: fiat_p384_scalar_u1 = 0;
> +     let (x315, x316) = fiat_p384_scalar_addcarryx_u64(x314, x281, x303);
> +-    let mut x317: u64 = 0;
> +-    let mut x318: u64 = 0;
> +     let (x317, x318) = fiat_p384_scalar_mulx_u64(x305, 0x6ed46089e88fdc45);
> +-    let mut x319: u64 = 0;
> +-    let mut x320: u64 = 0;
> +     let (x319, x320) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
> +-    let mut x321: u64 = 0;
> +-    let mut x322: u64 = 0;
> +     let (x321, x322) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
> +-    let mut x323: u64 = 0;
> +-    let mut x324: u64 = 0;
> +     let (x323, x324) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
> +-    let mut x325: u64 = 0;
> +-    let mut x326: u64 = 0;
> +     let (x325, x326) = fiat_p384_scalar_mulx_u64(x317, 0xc7634d81f4372ddf);
> +-    let mut x327: u64 = 0;
> +-    let mut x328: u64 = 0;
> +     let (x327, x328) = fiat_p384_scalar_mulx_u64(x317, 0x581a0db248b0a77a);
> +-    let mut x329: u64 = 0;
> +-    let mut x330: u64 = 0;
> +     let (x329, x330) = fiat_p384_scalar_mulx_u64(x317, 0xecec196accc52973);
> +-    let mut x331: u64 = 0;
> +-    let mut x332: fiat_p384_scalar_u1 = 0;
> +     let (x331, x332) = fiat_p384_scalar_addcarryx_u64(0x0, x330, x327);
> +-    let mut x333: u64 = 0;
> +-    let mut x334: fiat_p384_scalar_u1 = 0;
> +     let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x328, x325);
> +-    let mut x335: u64 = 0;
> +-    let mut x336: fiat_p384_scalar_u1 = 0;
> +     let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x326, x323);
> +-    let mut x337: u64 = 0;
> +-    let mut x338: fiat_p384_scalar_u1 = 0;
> +     let (x337, x338) = fiat_p384_scalar_addcarryx_u64(x336, x324, x321);
> +-    let mut x339: u64 = 0;
> +-    let mut x340: fiat_p384_scalar_u1 = 0;
> +     let (x339, x340) = fiat_p384_scalar_addcarryx_u64(x338, x322, x319);
> +-    let mut x341: u64 = 0;
> +-    let mut x342: fiat_p384_scalar_u1 = 0;
> +     let (x341, x342) = fiat_p384_scalar_addcarryx_u64(0x0, x305, x329);
> +-    let mut x343: u64 = 0;
> +-    let mut x344: fiat_p384_scalar_u1 = 0;
> +     let (x343, x344) = fiat_p384_scalar_addcarryx_u64(x342, x307, x331);
> +-    let mut x345: u64 = 0;
> +-    let mut x346: fiat_p384_scalar_u1 = 0;
> +     let (x345, x346) = fiat_p384_scalar_addcarryx_u64(x344, x309, x333);
> +-    let mut x347: u64 = 0;
> +-    let mut x348: fiat_p384_scalar_u1 = 0;
> +     let (x347, x348) = fiat_p384_scalar_addcarryx_u64(x346, x311, x335);
> +-    let mut x349: u64 = 0;
> +-    let mut x350: fiat_p384_scalar_u1 = 0;
> +     let (x349, x350) = fiat_p384_scalar_addcarryx_u64(x348, x313, x337);
> +-    let mut x351: u64 = 0;
> +-    let mut x352: fiat_p384_scalar_u1 = 0;
> +     let (x351, x352) = fiat_p384_scalar_addcarryx_u64(x350, x315, x339);
> +-    let mut x353: u64 = 0;
> +-    let mut x354: fiat_p384_scalar_u1 = 0;
> +     let (x353, x354) = fiat_p384_scalar_addcarryx_u64(
> +         x352,
> +         (((x316 as u64) + (x282 as u64)) + ((x304 as u64) + x284)),
> +         ((x340 as u64) + x320),
> +     );
> +-    let mut x355: u64 = 0;
> +-    let mut x356: u64 = 0;
> +     let (x355, x356) = fiat_p384_scalar_mulx_u64(x5, 0xc84ee012b39bf21);
> +-    let mut x357: u64 = 0;
> +-    let mut x358: u64 = 0;
> +     let (x357, x358) = fiat_p384_scalar_mulx_u64(x5, 0x3fb05b7a28266895);
> +-    let mut x359: u64 = 0;
> +-    let mut x360: u64 = 0;
> +     let (x359, x360) = fiat_p384_scalar_mulx_u64(x5, 0xd40d49174aab1cc5);
> +-    let mut x361: u64 = 0;
> +-    let mut x362: u64 = 0;
> +     let (x361, x362) = fiat_p384_scalar_mulx_u64(x5, 0xbc3e483afcb82947);
> +-    let mut x363: u64 = 0;
> +-    let mut x364: u64 = 0;
> +     let (x363, x364) = fiat_p384_scalar_mulx_u64(x5, 0xff3d81e5df1aa419);
> +-    let mut x365: u64 = 0;
> +-    let mut x366: u64 = 0;
> +     let (x365, x366) = fiat_p384_scalar_mulx_u64(x5, 0x2d319b2419b409a9);
> +-    let mut x367: u64 = 0;
> +-    let mut x368: fiat_p384_scalar_u1 = 0;
> +     let (x367, x368) = fiat_p384_scalar_addcarryx_u64(0x0, x366, x363);
> +-    let mut x369: u64 = 0;
> +-    let mut x370: fiat_p384_scalar_u1 = 0;
> +     let (x369, x370) = fiat_p384_scalar_addcarryx_u64(x368, x364, x361);
> +-    let mut x371: u64 = 0;
> +-    let mut x372: fiat_p384_scalar_u1 = 0;
> +     let (x371, x372) = fiat_p384_scalar_addcarryx_u64(x370, x362, x359);
> +-    let mut x373: u64 = 0;
> +-    let mut x374: fiat_p384_scalar_u1 = 0;
> +     let (x373, x374) = fiat_p384_scalar_addcarryx_u64(x372, x360, x357);
> +-    let mut x375: u64 = 0;
> +-    let mut x376: fiat_p384_scalar_u1 = 0;
> +     let (x375, x376) = fiat_p384_scalar_addcarryx_u64(x374, x358, x355);
> +-    let mut x377: u64 = 0;
> +-    let mut x378: fiat_p384_scalar_u1 = 0;
> +     let (x377, x378) = fiat_p384_scalar_addcarryx_u64(0x0, x343, x365);
> +-    let mut x379: u64 = 0;
> +-    let mut x380: fiat_p384_scalar_u1 = 0;
> +     let (x379, x380) = fiat_p384_scalar_addcarryx_u64(x378, x345, x367);
> +-    let mut x381: u64 = 0;
> +-    let mut x382: fiat_p384_scalar_u1 = 0;
> +     let (x381, x382) = fiat_p384_scalar_addcarryx_u64(x380, x347, x369);
> +-    let mut x383: u64 = 0;
> +-    let mut x384: fiat_p384_scalar_u1 = 0;
> +     let (x383, x384) = fiat_p384_scalar_addcarryx_u64(x382, x349, x371);
> +-    let mut x385: u64 = 0;
> +-    let mut x386: fiat_p384_scalar_u1 = 0;
> +     let (x385, x386) = fiat_p384_scalar_addcarryx_u64(x384, x351, x373);
> +-    let mut x387: u64 = 0;
> +-    let mut x388: fiat_p384_scalar_u1 = 0;
> +     let (x387, x388) = fiat_p384_scalar_addcarryx_u64(x386, x353, x375);
> +-    let mut x389: u64 = 0;
> +-    let mut x390: u64 = 0;
> +     let (x389, x390) = fiat_p384_scalar_mulx_u64(x377, 0x6ed46089e88fdc45);
> +-    let mut x391: u64 = 0;
> +-    let mut x392: u64 = 0;
> +     let (x391, x392) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
> +-    let mut x393: u64 = 0;
> +-    let mut x394: u64 = 0;
> +     let (x393, x394) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
> +-    let mut x395: u64 = 0;
> +-    let mut x396: u64 = 0;
> +     let (x395, x396) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
> +-    let mut x397: u64 = 0;
> +-    let mut x398: u64 = 0;
> +     let (x397, x398) = fiat_p384_scalar_mulx_u64(x389, 0xc7634d81f4372ddf);
> +-    let mut x399: u64 = 0;
> +-    let mut x400: u64 = 0;
> +     let (x399, x400) = fiat_p384_scalar_mulx_u64(x389, 0x581a0db248b0a77a);
> +-    let mut x401: u64 = 0;
> +-    let mut x402: u64 = 0;
> +     let (x401, x402) = fiat_p384_scalar_mulx_u64(x389, 0xecec196accc52973);
> +-    let mut x403: u64 = 0;
> +-    let mut x404: fiat_p384_scalar_u1 = 0;
> +     let (x403, x404) = fiat_p384_scalar_addcarryx_u64(0x0, x402, x399);
> +-    let mut x405: u64 = 0;
> +-    let mut x406: fiat_p384_scalar_u1 = 0;
> +     let (x405, x406) = fiat_p384_scalar_addcarryx_u64(x404, x400, x397);
> +-    let mut x407: u64 = 0;
> +-    let mut x408: fiat_p384_scalar_u1 = 0;
> +     let (x407, x408) = fiat_p384_scalar_addcarryx_u64(x406, x398, x395);
> +-    let mut x409: u64 = 0;
> +-    let mut x410: fiat_p384_scalar_u1 = 0;
> +     let (x409, x410) = fiat_p384_scalar_addcarryx_u64(x408, x396, x393);
> +-    let mut x411: u64 = 0;
> +-    let mut x412: fiat_p384_scalar_u1 = 0;
> +     let (x411, x412) = fiat_p384_scalar_addcarryx_u64(x410, x394, x391);
> +-    let mut x413: u64 = 0;
> +-    let mut x414: fiat_p384_scalar_u1 = 0;
> +     let (x413, x414) = fiat_p384_scalar_addcarryx_u64(0x0, x377, x401);
> +-    let mut x415: u64 = 0;
> +-    let mut x416: fiat_p384_scalar_u1 = 0;
> +     let (x415, x416) = fiat_p384_scalar_addcarryx_u64(x414, x379, x403);
> +-    let mut x417: u64 = 0;
> +-    let mut x418: fiat_p384_scalar_u1 = 0;
> +     let (x417, x418) = fiat_p384_scalar_addcarryx_u64(x416, x381, x405);
> +-    let mut x419: u64 = 0;
> +-    let mut x420: fiat_p384_scalar_u1 = 0;
> +     let (x419, x420) = fiat_p384_scalar_addcarryx_u64(x418, x383, x407);
> +-    let mut x421: u64 = 0;
> +-    let mut x422: fiat_p384_scalar_u1 = 0;
> +     let (x421, x422) = fiat_p384_scalar_addcarryx_u64(x420, x385, x409);
> +-    let mut x423: u64 = 0;
> +-    let mut x424: fiat_p384_scalar_u1 = 0;
> +     let (x423, x424) = fiat_p384_scalar_addcarryx_u64(x422, x387, x411);
> +-    let mut x425: u64 = 0;
> +-    let mut x426: fiat_p384_scalar_u1 = 0;
> +     let (x425, x426) = fiat_p384_scalar_addcarryx_u64(
> +         x424,
> +         (((x388 as u64) + (x354 as u64)) + ((x376 as u64) + x356)),
> +         ((x412 as u64) + x392),
> +     );
> +-    let mut x427: u64 = 0;
> +-    let mut x428: fiat_p384_scalar_u1 = 0;
> +     let (x427, x428) = fiat_p384_scalar_subborrowx_u64(0x0, x415, 0xecec196accc52973);
> +-    let mut x429: u64 = 0;
> +-    let mut x430: fiat_p384_scalar_u1 = 0;
> +     let (x429, x430) = fiat_p384_scalar_subborrowx_u64(x428, x417, 0x581a0db248b0a77a);
> +-    let mut x431: u64 = 0;
> +-    let mut x432: fiat_p384_scalar_u1 = 0;
> +     let (x431, x432) = fiat_p384_scalar_subborrowx_u64(x430, x419, 0xc7634d81f4372ddf);
> +-    let mut x433: u64 = 0;
> +-    let mut x434: fiat_p384_scalar_u1 = 0;
> +     let (x433, x434) = fiat_p384_scalar_subborrowx_u64(x432, x421, 0xffffffffffffffff);
> +-    let mut x435: u64 = 0;
> +-    let mut x436: fiat_p384_scalar_u1 = 0;
> +     let (x435, x436) = fiat_p384_scalar_subborrowx_u64(x434, x423, 0xffffffffffffffff);
> +-    let mut x437: u64 = 0;
> +-    let mut x438: fiat_p384_scalar_u1 = 0;
> +     let (x437, x438) = fiat_p384_scalar_subborrowx_u64(x436, x425, 0xffffffffffffffff);
> +-    let mut x439: u64 = 0;
> +-    let mut x440: fiat_p384_scalar_u1 = 0;
> +     let (x439, x440) = fiat_p384_scalar_subborrowx_u64(x438, (x426 as u64), 0x0_u64);
> +-    let mut x441: u64 = 0;
> +     let (x441) = fiat_p384_scalar_cmovznz_u64(x440, x427, x415);
> +-    let mut x442: u64 = 0;
> +     let (x442) = fiat_p384_scalar_cmovznz_u64(x440, x429, x417);
> +-    let mut x443: u64 = 0;
> +     let (x443) = fiat_p384_scalar_cmovznz_u64(x440, x431, x419);
> +-    let mut x444: u64 = 0;
> +     let (x444) = fiat_p384_scalar_cmovznz_u64(x440, x433, x421);
> +-    let mut x445: u64 = 0;
> +     let (x445) = fiat_p384_scalar_cmovznz_u64(x440, x435, x423);
> +-    let mut x446: u64 = 0;
> +     let (x446) = fiat_p384_scalar_cmovznz_u64(x440, x437, x425);
> +     out1[0] = x441;
> +     out1[1] = x442;
> +@@ -3024,17 +1294,11 @@ pub const fn fiat_p384_scalar_selectznz(
> +     arg3: &[u64; 6],
> + ) -> [u64; 6] {
> +     let mut out1: [u64; 6] = [0; 6];
> +-    let mut x1: u64 = 0;
> +     let (x1) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
> +-    let mut x2: u64 = 0;
> +     let (x2) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
> +-    let mut x3: u64 = 0;
> +     let (x3) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
> +-    let mut x4: u64 = 0;
> +     let (x4) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
> +-    let mut x5: u64 = 0;
> +     let (x5) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
> +-    let mut x6: u64 = 0;
> +     let (x6) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
> +     out1[0] = x1;
> +     out1[1] = x2;
> +@@ -3464,115 +1728,50 @@ pub const fn fiat_p384_scalar_divstep(
> +     let mut out3: [u64; 7] = [0; 7];
> +     let mut out4: [u64; 6] = [0; 6];
> +     let mut out5: [u64; 6] = [0; 6];
> +-    let mut x1: u64 = 0;
> +-    let mut x2: fiat_p384_scalar_u1 = 0;
> +     let (x1, x2) = fiat_p384_scalar_addcarryx_u64(0x0, (!arg1), 0x1_u64);
> +     let x3: fiat_p384_scalar_u1 =
> +         (((x1 >> 63) as fiat_p384_scalar_u1) & (((arg3[0]) & 0x1_u64) as fiat_p384_scalar_u1));
> +-    let mut x4: u64 = 0;
> +-    let mut x5: fiat_p384_scalar_u1 = 0;
> +     let (x4, x5) = fiat_p384_scalar_addcarryx_u64(0x0, (!arg1), 0x1_u64);
> +-    let mut x6: u64 = 0;
> +     let (x6) = fiat_p384_scalar_cmovznz_u64(x3, arg1, x4);
> +-    let mut x7: u64 = 0;
> +     let (x7) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
> +-    let mut x8: u64 = 0;
> +     let (x8) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
> +-    let mut x9: u64 = 0;
> +     let (x9) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
> +-    let mut x10: u64 = 0;
> +     let (x10) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
> +-    let mut x11: u64 = 0;
> +     let (x11) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
> +-    let mut x12: u64 = 0;
> +     let (x12) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
> +-    let mut x13: u64 = 0;
> +     let (x13) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
> +-    let mut x14: u64 = 0;
> +-    let mut x15: fiat_p384_scalar_u1 = 0;
> +     let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, 0x1_u64, (!(arg2[0])));
> +-    let mut x16: u64 = 0;
> +-    let mut x17: fiat_p384_scalar_u1 = 0;
> +     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, 0x0_u64, (!(arg2[1])));
> +-    let mut x18: u64 = 0;
> +-    let mut x19: fiat_p384_scalar_u1 = 0;
> +     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, 0x0_u64, (!(arg2[2])));
> +-    let mut x20: u64 = 0;
> +-    let mut x21: fiat_p384_scalar_u1 = 0;
> +     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, 0x0_u64, (!(arg2[3])));
> +-    let mut x22: u64 = 0;
> +-    let mut x23: fiat_p384_scalar_u1 = 0;
> +     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, 0x0_u64, (!(arg2[4])));
> +-    let mut x24: u64 = 0;
> +-    let mut x25: fiat_p384_scalar_u1 = 0;
> +     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, 0x0_u64, (!(arg2[5])));
> +-    let mut x26: u64 = 0;
> +-    let mut x27: fiat_p384_scalar_u1 = 0;
> +     let (x26, x27) = fiat_p384_scalar_addcarryx_u64(x25, 0x0_u64, (!(arg2[6])));
> +-    let mut x28: u64 = 0;
> +     let (x28) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[0]), x14);
> +-    let mut x29: u64 = 0;
> +     let (x29) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[1]), x16);
> +-    let mut x30: u64 = 0;
> +     let (x30) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[2]), x18);
> +-    let mut x31: u64 = 0;
> +     let (x31) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[3]), x20);
> +-    let mut x32: u64 = 0;
> +     let (x32) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[4]), x22);
> +-    let mut x33: u64 = 0;
> +     let (x33) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[5]), x24);
> +-    let mut x34: u64 = 0;
> +     let (x34) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[6]), x26);
> +-    let mut x35: u64 = 0;
> +     let (x35) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
> +-    let mut x36: u64 = 0;
> +     let (x36) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
> +-    let mut x37: u64 = 0;
> +     let (x37) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
> +-    let mut x38: u64 = 0;
> +     let (x38) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
> +-    let mut x39: u64 = 0;
> +     let (x39) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
> +-    let mut x40: u64 = 0;
> +     let (x40) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
> +-    let mut x41: u64 = 0;
> +-    let mut x42: fiat_p384_scalar_u1 = 0;
> +     let (x41, x42) = fiat_p384_scalar_addcarryx_u64(0x0, x35, x35);
> +-    let mut x43: u64 = 0;
> +-    let mut x44: fiat_p384_scalar_u1 = 0;
> +     let (x43, x44) = fiat_p384_scalar_addcarryx_u64(x42, x36, x36);
> +-    let mut x45: u64 = 0;
> +-    let mut x46: fiat_p384_scalar_u1 = 0;
> +     let (x45, x46) = fiat_p384_scalar_addcarryx_u64(x44, x37, x37);
> +-    let mut x47: u64 = 0;
> +-    let mut x48: fiat_p384_scalar_u1 = 0;
> +     let (x47, x48) = fiat_p384_scalar_addcarryx_u64(x46, x38, x38);
> +-    let mut x49: u64 = 0;
> +-    let mut x50: fiat_p384_scalar_u1 = 0;
> +     let (x49, x50) = fiat_p384_scalar_addcarryx_u64(x48, x39, x39);
> +-    let mut x51: u64 = 0;
> +-    let mut x52: fiat_p384_scalar_u1 = 0;
> +     let (x51, x52) = fiat_p384_scalar_addcarryx_u64(x50, x40, x40);
> +-    let mut x53: u64 = 0;
> +-    let mut x54: fiat_p384_scalar_u1 = 0;
> +     let (x53, x54) = fiat_p384_scalar_subborrowx_u64(0x0, x41, 0xecec196accc52973);
> +-    let mut x55: u64 = 0;
> +-    let mut x56: fiat_p384_scalar_u1 = 0;
> +     let (x55, x56) = fiat_p384_scalar_subborrowx_u64(x54, x43, 0x581a0db248b0a77a);
> +-    let mut x57: u64 = 0;
> +-    let mut x58: fiat_p384_scalar_u1 = 0;
> +     let (x57, x58) = fiat_p384_scalar_subborrowx_u64(x56, x45, 0xc7634d81f4372ddf);
> +-    let mut x59: u64 = 0;
> +-    let mut x60: fiat_p384_scalar_u1 = 0;
> +     let (x59, x60) = fiat_p384_scalar_subborrowx_u64(x58, x47, 0xffffffffffffffff);
> +-    let mut x61: u64 = 0;
> +-    let mut x62: fiat_p384_scalar_u1 = 0;
> +     let (x61, x62) = fiat_p384_scalar_subborrowx_u64(x60, x49, 0xffffffffffffffff);
> +-    let mut x63: u64 = 0;
> +-    let mut x64: fiat_p384_scalar_u1 = 0;
> +     let (x63, x64) = fiat_p384_scalar_subborrowx_u64(x62, x51, 0xffffffffffffffff);
> +-    let mut x65: u64 = 0;
> +-    let mut x66: fiat_p384_scalar_u1 = 0;
> +     let (x65, x66) = fiat_p384_scalar_subborrowx_u64(x64, (x52 as u64), 0x0_u64);
> +     let x67: u64 = (arg4[5]);
> +     let x68: u64 = (arg4[4]);
> +@@ -3580,145 +1779,59 @@ pub const fn fiat_p384_scalar_divstep(
> +     let x70: u64 = (arg4[2]);
> +     let x71: u64 = (arg4[1]);
> +     let x72: u64 = (arg4[0]);
> +-    let mut x73: u64 = 0;
> +-    let mut x74: fiat_p384_scalar_u1 = 0;
> +     let (x73, x74) = fiat_p384_scalar_subborrowx_u64(0x0, 0x0_u64, x72);
> +-    let mut x75: u64 = 0;
> +-    let mut x76: fiat_p384_scalar_u1 = 0;
> +     let (x75, x76) = fiat_p384_scalar_subborrowx_u64(x74, 0x0_u64, x71);
> +-    let mut x77: u64 = 0;
> +-    let mut x78: fiat_p384_scalar_u1 = 0;
> +     let (x77, x78) = fiat_p384_scalar_subborrowx_u64(x76, 0x0_u64, x70);
> +-    let mut x79: u64 = 0;
> +-    let mut x80: fiat_p384_scalar_u1 = 0;
> +     let (x79, x80) = fiat_p384_scalar_subborrowx_u64(x78, 0x0_u64, x69);
> +-    let mut x81: u64 = 0;
> +-    let mut x82: fiat_p384_scalar_u1 = 0;
> +     let (x81, x82) = fiat_p384_scalar_subborrowx_u64(x80, 0x0_u64, x68);
> +-    let mut x83: u64 = 0;
> +-    let mut x84: fiat_p384_scalar_u1 = 0;
> +     let (x83, x84) = fiat_p384_scalar_subborrowx_u64(x82, 0x0_u64, x67);
> +-    let mut x85: u64 = 0;
> +     let (x85) = fiat_p384_scalar_cmovznz_u64(x84, 0x0_u64, 0xffffffffffffffff);
> +-    let mut x86: u64 = 0;
> +-    let mut x87: fiat_p384_scalar_u1 = 0;
> +     let (x86, x87) = fiat_p384_scalar_addcarryx_u64(0x0, x73, (x85 & 0xecec196accc52973));
> +-    let mut x88: u64 = 0;
> +-    let mut x89: fiat_p384_scalar_u1 = 0;
> +     let (x88, x89) = fiat_p384_scalar_addcarryx_u64(x87, x75, (x85 & 0x581a0db248b0a77a));
> +-    let mut x90: u64 = 0;
> +-    let mut x91: fiat_p384_scalar_u1 = 0;
> +     let (x90, x91) = fiat_p384_scalar_addcarryx_u64(x89, x77, (x85 & 0xc7634d81f4372ddf));
> +-    let mut x92: u64 = 0;
> +-    let mut x93: fiat_p384_scalar_u1 = 0;
> +     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(x91, x79, x85);
> +-    let mut x94: u64 = 0;
> +-    let mut x95: fiat_p384_scalar_u1 = 0;
> +     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x81, x85);
> +-    let mut x96: u64 = 0;
> +-    let mut x97: fiat_p384_scalar_u1 = 0;
> +     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x83, x85);
> +-    let mut x98: u64 = 0;
> +     let (x98) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[0]), x86);
> +-    let mut x99: u64 = 0;
> +     let (x99) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[1]), x88);
> +-    let mut x100: u64 = 0;
> +     let (x100) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[2]), x90);
> +-    let mut x101: u64 = 0;
> +     let (x101) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[3]), x92);
> +-    let mut x102: u64 = 0;
> +     let (x102) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[4]), x94);
> +-    let mut x103: u64 = 0;
> +     let (x103) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[5]), x96);
> +     let x104: fiat_p384_scalar_u1 = ((x28 & 0x1_u64) as fiat_p384_scalar_u1);
> +-    let mut x105: u64 = 0;
> +     let (x105) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x7);
> +-    let mut x106: u64 = 0;
> +     let (x106) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x8);
> +-    let mut x107: u64 = 0;
> +     let (x107) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x9);
> +-    let mut x108: u64 = 0;
> +     let (x108) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x10);
> +-    let mut x109: u64 = 0;
> +     let (x109) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x11);
> +-    let mut x110: u64 = 0;
> +     let (x110) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x12);
> +-    let mut x111: u64 = 0;
> +     let (x111) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x13);
> +-    let mut x112: u64 = 0;
> +-    let mut x113: fiat_p384_scalar_u1 = 0;
> +     let (x112, x113) = fiat_p384_scalar_addcarryx_u64(0x0, x28, x105);
> +-    let mut x114: u64 = 0;
> +-    let mut x115: fiat_p384_scalar_u1 = 0;
> +     let (x114, x115) = fiat_p384_scalar_addcarryx_u64(x113, x29, x106);
> +-    let mut x116: u64 = 0;
> +-    let mut x117: fiat_p384_scalar_u1 = 0;
> +     let (x116, x117) = fiat_p384_scalar_addcarryx_u64(x115, x30, x107);
> +-    let mut x118: u64 = 0;
> +-    let mut x119: fiat_p384_scalar_u1 = 0;
> +     let (x118, x119) = fiat_p384_scalar_addcarryx_u64(x117, x31, x108);
> +-    let mut x120: u64 = 0;
> +-    let mut x121: fiat_p384_scalar_u1 = 0;
> +     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(x119, x32, x109);
> +-    let mut x122: u64 = 0;
> +-    let mut x123: fiat_p384_scalar_u1 = 0;
> +     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x33, x110);
> +-    let mut x124: u64 = 0;
> +-    let mut x125: fiat_p384_scalar_u1 = 0;
> +     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x34, x111);
> +-    let mut x126: u64 = 0;
> +     let (x126) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x35);
> +-    let mut x127: u64 = 0;
> +     let (x127) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x36);
> +-    let mut x128: u64 = 0;
> +     let (x128) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x37);
> +-    let mut x129: u64 = 0;
> +     let (x129) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x38);
> +-    let mut x130: u64 = 0;
> +     let (x130) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x39);
> +-    let mut x131: u64 = 0;
> +     let (x131) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x40);
> +-    let mut x132: u64 = 0;
> +-    let mut x133: fiat_p384_scalar_u1 = 0;
> +     let (x132, x133) = fiat_p384_scalar_addcarryx_u64(0x0, x98, x126);
> +-    let mut x134: u64 = 0;
> +-    let mut x135: fiat_p384_scalar_u1 = 0;
> +     let (x134, x135) = fiat_p384_scalar_addcarryx_u64(x133, x99, x127);
> +-    let mut x136: u64 = 0;
> +-    let mut x137: fiat_p384_scalar_u1 = 0;
> +     let (x136, x137) = fiat_p384_scalar_addcarryx_u64(x135, x100, x128);
> +-    let mut x138: u64 = 0;
> +-    let mut x139: fiat_p384_scalar_u1 = 0;
> +     let (x138, x139) = fiat_p384_scalar_addcarryx_u64(x137, x101, x129);
> +-    let mut x140: u64 = 0;
> +-    let mut x141: fiat_p384_scalar_u1 = 0;
> +     let (x140, x141) = fiat_p384_scalar_addcarryx_u64(x139, x102, x130);
> +-    let mut x142: u64 = 0;
> +-    let mut x143: fiat_p384_scalar_u1 = 0;
> +     let (x142, x143) = fiat_p384_scalar_addcarryx_u64(x141, x103, x131);
> +-    let mut x144: u64 = 0;
> +-    let mut x145: fiat_p384_scalar_u1 = 0;
> +     let (x144, x145) = fiat_p384_scalar_subborrowx_u64(0x0, x132, 0xecec196accc52973);
> +-    let mut x146: u64 = 0;
> +-    let mut x147: fiat_p384_scalar_u1 = 0;
> +     let (x146, x147) = fiat_p384_scalar_subborrowx_u64(x145, x134, 0x581a0db248b0a77a);
> +-    let mut x148: u64 = 0;
> +-    let mut x149: fiat_p384_scalar_u1 = 0;
> +     let (x148, x149) = fiat_p384_scalar_subborrowx_u64(x147, x136, 0xc7634d81f4372ddf);
> +-    let mut x150: u64 = 0;
> +-    let mut x151: fiat_p384_scalar_u1 = 0;
> +     let (x150, x151) = fiat_p384_scalar_subborrowx_u64(x149, x138, 0xffffffffffffffff);
> +-    let mut x152: u64 = 0;
> +-    let mut x153: fiat_p384_scalar_u1 = 0;
> +     let (x152, x153) = fiat_p384_scalar_subborrowx_u64(x151, x140, 0xffffffffffffffff);
> +-    let mut x154: u64 = 0;
> +-    let mut x155: fiat_p384_scalar_u1 = 0;
> +     let (x154, x155) = fiat_p384_scalar_subborrowx_u64(x153, x142, 0xffffffffffffffff);
> +-    let mut x156: u64 = 0;
> +-    let mut x157: fiat_p384_scalar_u1 = 0;
> +     let (x156, x157) = fiat_p384_scalar_subborrowx_u64(x155, (x143 as u64), 0x0_u64);
> +-    let mut x158: u64 = 0;
> +-    let mut x159: fiat_p384_scalar_u1 = 0;
> +     let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x6, 0x1_u64);
> +     let x160: u64 = ((x112 >> 1) | ((x114 << 63) & 0xffffffffffffffff));
> +     let x161: u64 = ((x114 >> 1) | ((x116 << 63) & 0xffffffffffffffff));
> +@@ -3727,29 +1840,17 @@ pub const fn fiat_p384_scalar_divstep(
> +     let x164: u64 = ((x120 >> 1) | ((x122 << 63) & 0xffffffffffffffff));
> +     let x165: u64 = ((x122 >> 1) | ((x124 << 63) & 0xffffffffffffffff));
> +     let x166: u64 = ((x124 & 0x8000000000000000) | (x124 >> 1));
> +-    let mut x167: u64 = 0;
> +     let (x167) = fiat_p384_scalar_cmovznz_u64(x66, x53, x41);
> +-    let mut x168: u64 = 0;
> +     let (x168) = fiat_p384_scalar_cmovznz_u64(x66, x55, x43);
> +-    let mut x169: u64 = 0;
> +     let (x169) = fiat_p384_scalar_cmovznz_u64(x66, x57, x45);
> +-    let mut x170: u64 = 0;
> +     let (x170) = fiat_p384_scalar_cmovznz_u64(x66, x59, x47);
> +-    let mut x171: u64 = 0;
> +     let (x171) = fiat_p384_scalar_cmovznz_u64(x66, x61, x49);
> +-    let mut x172: u64 = 0;
> +     let (x172) = fiat_p384_scalar_cmovznz_u64(x66, x63, x51);
> +-    let mut x173: u64 = 0;
> +     let (x173) = fiat_p384_scalar_cmovznz_u64(x157, x144, x132);
> +-    let mut x174: u64 = 0;
> +     let (x174) = fiat_p384_scalar_cmovznz_u64(x157, x146, x134);
> +-    let mut x175: u64 = 0;
> +     let (x175) = fiat_p384_scalar_cmovznz_u64(x157, x148, x136);
> +-    let mut x176: u64 = 0;
> +     let (x176) = fiat_p384_scalar_cmovznz_u64(x157, x150, x138);
> +-    let mut x177: u64 = 0;
> +     let (x177) = fiat_p384_scalar_cmovznz_u64(x157, x152, x140);
> +-    let mut x178: u64 = 0;
> +     let (x178) = fiat_p384_scalar_cmovznz_u64(x157, x154, x142);
> +     out1 = x158;
> +     out2[0] = x7;
> +diff --git a/vendor/p384-0.13.0/.cargo-checksum.json b/vendor/p384-0.13.0/.cargo-checksum.json
> +index bfe8100..ff6b302 100644
> +--- a/vendor/p384-0.13.0/.cargo-checksum.json
> ++++ b/vendor/p384-0.13.0/.cargo-checksum.json
> +@@ -1 +1 @@
> +-{"files":{"CHANGELOG.md":"437651cc0a2e69f8edea9f1eaeebd00853e0d58efaf7f4d8cb37627fb7aa9d2e","Cargo.toml":"22f8fe1d0243a3f68bafe2c3796c5342fd3a8036d9680f4936d42a8e47a18e64","LICENSE-APACHE":"a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5","LICENSE-MIT":"02168781a5b59970e3da1784d2eb69f432598a3757f283dbffdafd9d483a9113","README.md":"6d01d27444638c939a075b91ab5b61bbd5da1b82495cb14058f77166a3a5ea8a","benches/field.rs":"54c4b208e912df33c8d4d5cd7cbdca1eee74af0947efa5ec28ae9af6c89c9f64","benches/scalar.rs":"78918113cfc3b95c482b559e1b1bbebd2a57773c016a5297ede9f0d7ed510d75","src/arithmetic.rs":"c002a95cff8864bbc020684a3a77db0fa051526813c2518e1126b0662e8f5e63","src/arithmetic/field.rs":"2312dcd61fec0efa21ccfc415ad11902a21f9187bfbb5f5fd554cb020295249b","src/arithmetic/field/p384_32.rs":"0ecd16551d7730ea853e37492b6da25b241a2cf066bd0c9828352af9d0f41044","src/arithmetic/field/p384_64.rs":"e71f4e552d3ec4e1bfce63b4229b8c73fb3e02a238aa9ed7fd2f97390336ba34","src/arithmetic/hash2curve.rs":"7f832745e5d88b10341e6f30c6d67086c8a459029a7dbb8dee674c4ca36eebd6","src/arithmetic/macros.rs":"31dc0d8a146d05146075a6f4a5926473685b997484fb22fc04d2902ff3cf2b57","src/arithmetic/scalar.rs":"60d673ae33c06f17a6d32073f747dee51eb478d253c40dda49270490e17651a7","src/arithmetic/scalar/p384_scalar_32.rs":"bb1839c7a1ba68855d358f44db07b067ccc83ca5d7d28d3b8b15b1408dc28f81","src/arithmetic/scalar/p384_scalar_64.rs":"6e7a5d23609003ca109881f17d36ee4c775e4006713afd727c4ad6c32e4da207","src/ecdh.rs":"bb12ec4da320e90c31ac5a508586acb9cf0235c267d4f1dffd0bfe1032e193fa","src/ecdsa.rs":"4e6cf2ece8264f7c8d72b5bc27a6ffe66aec75c37eb27e0b2a53938ccf4735a7","src/lib.rs":"d3015d5d4c727be874e0062e0203abf18fa1041ba8c877fb6be5a84e95f57f0c","src/test_vectors.rs":"bf003ed537b66c01d30335035a1e5a2fe50a8fb0ae8b3061cc0ad6de86aceb45","src/test_vectors/data/wycheproof.blb":"d4918982427a6fe9a98c48a03bc6a414077da3599c6f9a5f967a6ff7814a3b49","src/test_vectors/ecdsa.rs":"595dae618074b5957c763a84846a8c3ff22083e4c223649590f0174766b8759b","src/test_vectors/group.rs":"60d64a2b9b81aa6c7f15771f55e51bbc099281da65cd7611a33ee95ff9fb3ee9","tests/affine.rs":"832877faa0741957ea774ab52d572041c625694f2161b497c83160e2f4a28e6f","tests/projective.rs":"8d507cdd37524f9859ec8daa1579d9c11a41aad891b820550b626533f5b05b7c"},"package":"70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"}
> +\ No newline at end of file
> ++{"files":{"CHANGELOG.md":"437651cc0a2e69f8edea9f1eaeebd00853e0d58efaf7f4d8cb37627fb7aa9d2e","Cargo.toml":"22f8fe1d0243a3f68bafe2c3796c5342fd3a8036d9680f4936d42a8e47a18e64","LICENSE-APACHE":"a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5","LICENSE-MIT":"02168781a5b59970e3da1784d2eb69f432598a3757f283dbffdafd9d483a9113","README.md":"6d01d27444638c939a075b91ab5b61bbd5da1b82495cb14058f77166a3a5ea8a","benches/field.rs":"54c4b208e912df33c8d4d5cd7cbdca1eee74af0947efa5ec28ae9af6c89c9f64","benches/scalar.rs":"78918113cfc3b95c482b559e1b1bbebd2a57773c016a5297ede9f0d7ed510d75","src/arithmetic.rs":"c002a95cff8864bbc020684a3a77db0fa051526813c2518e1126b0662e8f5e63","src/arithmetic/field.rs":"2312dcd61fec0efa21ccfc415ad11902a21f9187bfbb5f5fd554cb020295249b","src/arithmetic/field/p384_32.rs":"1def90836f25537e2805986677c81c81fe834d40b797e33ea731164e2d8f45d1","src/arithmetic/field/p384_64.rs":"9bcaf6827ff73466ad7f7ba39a293496f90d56bb02da5fe89a89da113749114e","src/arithmetic/hash2curve.rs":"7f832745e5d88b10341e6f30c6d67086c8a459029a7dbb8dee674c4ca36eebd6","src/arithmetic/macros.rs":"31dc0d8a146d05146075a6f4a5926473685b997484fb22fc04d2902ff3cf2b57","src/arithmetic/scalar.rs":"60d673ae33c06f17a6d32073f747dee51eb478d253c40dda49270490e17651a7","src/arithmetic/scalar/p384_scalar_32.rs":"58ee4d399abef049e60b3c4a3b93d2b55a06be7445ee9b093525a7d7044d1665","src/arithmetic/scalar/p384_scalar_64.rs":"95e7dca27530c0ec8fd603b3b11b63fd2e24856de037fb95fe5a87c4135429a3","src/ecdh.rs":"bb12ec4da320e90c31ac5a508586acb9cf0235c267d4f1dffd0bfe1032e193fa","src/ecdsa.rs":"4e6cf2ece8264f7c8d72b5bc27a6ffe66aec75c37eb27e0b2a53938ccf4735a7","src/lib.rs":"d3015d5d4c727be874e0062e0203abf18fa1041ba8c877fb6be5a84e95f57f0c","src/test_vectors.rs":"bf003ed537b66c01d30335035a1e5a2fe50a8fb0ae8b3061cc0ad6de86aceb45","src/test_vectors/data/wycheproof.blb":"d4918982427a6fe9a98c48a03bc6a414077da3599c6f9a5f967a6ff7814a3b49","src/test_vectors/ecdsa.rs":"595dae618074b5957c763a84846a8c3ff22083e4c223649590f0174766b8759b","src/test_vectors/group.rs":"60d64a2b9b81aa6c7f15771f55e51bbc099281da65cd7611a33ee95ff9fb3ee9","tests/affine.rs":"832877faa0741957ea774ab52d572041c625694f2161b497c83160e2f4a28e6f","tests/projective.rs":"8d507cdd37524f9859ec8daa1579d9c11a41aad891b820550b626533f5b05b7c"},"package":"70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"}
> diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
> index 177de53..f859bf0 100644
> --- a/recipes-devtools/rust/rust-source.inc
> +++ b/recipes-devtools/rust/rust-source.inc
> @@ -9,6 +9,7 @@ SRC_URI +="https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n 
> file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} 
> \ file://Zdual-proc-macros-additional-check.patch;patchdir=${RUSTSRC} 
> \ 
> file://0001-libunwind-Use-gcs-instead-of-gcs-target-attribute.patch;patchdir=${RUSTSRC} 
> \ + file://p384_crate.patch;patchdir=${RUSTSRC} \ "
>   SRC_URI[rust.sha256sum] = "b1fbf809efe9f036939401e142631c201a53bcf43ec1696bd9f5290ba236a266"
>   


-- 
# Randy MacLeod
# Wind River Linux
Scott Murray July 23, 2025, 7:10 p.m. UTC | #2
On Thu, 10 Jul 2025, Yash Shinde wrote:

>
> On 09-07-2025 21:18, Scott Murray wrote:
> > CAUTION: This email comes from a non Wind River email account!
> > Do not click links or open attachments unless you recognize the sender and
> > know the content is safe.
> >
> > On Wed, 9 Jul 2025, Randy MacLeod wrote:
> >
> >> On 2025-07-09 3:20 a.m., Yash.Shinde@windriver.com wrote:
> >>> From: Yash Shinde<Yash.Shinde@windriver.com>
> >>>
> >>> Backport a fix to address a segmentation fault in DEBUG builds when
> >>> compiling\
> >> No, too much of a change.
> >>
> >>
> >> Sorry that I wasn't clear, I wanted you to provide the two line
> >> change that changed the debug build into a release build.
> >>
> >> Scott,
> >>
> >> Will you take that?
> > I prefer to take changes that are straight backports from master, but
> > I'd consider a less intrusive patch (i.e. the 2-liner you mention) if you
> > have a real hard requirement of supporting 1.85.1 with it versus being
> > able to go to 1.86+.
> >
> >> At some point, we'd update to a version of rust that has this fix - 1.86,
> >> right Yash?
> Yes, right.
> I have sent the 2-liner patch
> https://lists.yoctoproject.org/g/yocto-patches/message/1799.
>
> > I've been a bit busy, but plan to try backporting the 1.86 and 1.87
> > upgrades to the mixins next week when I'm back from an AGL event.
> > If you're okay with waiting another week or two for 1.86, that does
> > seem a better approach.
>
> Thanks for the info Scott.
> It would nice to have rust 1.86 and/or 1.87 in meta-lts-lixin layer which
> comes with fix.
> Meanwhile, we can apply the 2-liner patch.

My apologies for the delay, I have just sent a patch series to go to 1.87,
once it gets merged (plan is tomorrow) please let me know if it does not
resolve the issue.

Scott
Yash Shinde July 24, 2025, 12:02 p.m. UTC | #3
On 24-07-2025 00:40, Scott Murray wrote:
>
> On Thu, 10 Jul 2025, Yash Shinde wrote:
>
>> On 09-07-2025 21:18, Scott Murray wrote:
>>>
>>> On Wed, 9 Jul 2025, Randy MacLeod wrote:
>>>
>>>> On 2025-07-09 3:20 a.m., Yash.Shinde@windriver.com wrote:
>>>>> From: Yash Shinde<Yash.Shinde@windriver.com>
>>>>>
>>>>> Backport a fix to address a segmentation fault in DEBUG builds when
>>>>> compiling\
>>>> No, too much of a change.
>>>>
>>>>
>>>> Sorry that I wasn't clear, I wanted you to provide the two line
>>>> change that changed the debug build into a release build.
>>>>
>>>> Scott,
>>>>
>>>> Will you take that?
>>> I prefer to take changes that are straight backports from master, but
>>> I'd consider a less intrusive patch (i.e. the 2-liner you mention) if you
>>> have a real hard requirement of supporting 1.85.1 with it versus being
>>> able to go to 1.86+.
>>>
>>>> At some point, we'd update to a version of rust that has this fix - 1.86,
>>>> right Yash?
>> Yes, right.
>> I have sent the 2-liner patch
>> https://lists.yoctoproject.org/g/yocto-patches/message/1799.
>>
>>> I've been a bit busy, but plan to try backporting the 1.86 and 1.87
>>> upgrades to the mixins next week when I'm back from an AGL event.
>>> If you're okay with waiting another week or two for 1.86, that does
>>> seem a better approach.
>> Thanks for the info Scott.
>> It would nice to have rust 1.86 and/or 1.87 in meta-lts-lixin layer which
>> comes with fix.
>> Meanwhile, we can apply the 2-liner patch.
> My apologies for the delay, I have just sent a patch series to go to 1.87,
> once it gets merged (plan is tomorrow) please let me know if it does not
> resolve the issue.
Thank you for the v1.87 upgrade. This should resolve the issue.
I will verify after the merge and let you know if the issue persists.


Regards,
Yash
> Scott
>
diff mbox series

Patch

diff --git a/recipes-devtools/rust/files/p384_crate.patch b/recipes-devtools/rust/files/p384_crate.patch
new file mode 100644
index 0000000..51c1838
--- /dev/null
+++ b/recipes-devtools/rust/files/p384_crate.patch
@@ -0,0 +1,25901 @@ 
+Add "[ignore]" tags to the failing unit tests to
+ignore them during rust oe-selftest.
+
+Upstream-Status: Inappropriate [OE testing specific]
+
+Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
+commit 7652c5842cde60acc1e739ebbba34614cb158f8b
+Author: Brent Lewis <coder0xff@gmail.com>
+Date:   Wed Mar 13 14:06:35 2024 -0700
+
+    p384: remove unused fiat-crypto variables (#1035)
+    
+    Uses fiat-constify from RustCrypto/utils#1057 to regen field backends
+    
+    Closes #1034
+
+diff --git a/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs b/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs
+index bfe8100..ff6b302 100644
+--- a/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs
++++ b/vendor/p384-0.13.0/src/arithmetic/field/p384_32.rs
+@@ -160,2476 +160,856 @@ pub const fn fiat_p384_mul(
+     let x10: u32 = (arg1[10]);
+     let x11: u32 = (arg1[11]);
+     let x12: u32 = (arg1[0]);
+-    let mut x13: u32 = 0;
+-    let mut x14: u32 = 0;
+     let (x13, x14) = fiat_p384_mulx_u32(x12, (arg2[11]));
+-    let mut x15: u32 = 0;
+-    let mut x16: u32 = 0;
+     let (x15, x16) = fiat_p384_mulx_u32(x12, (arg2[10]));
+-    let mut x17: u32 = 0;
+-    let mut x18: u32 = 0;
+     let (x17, x18) = fiat_p384_mulx_u32(x12, (arg2[9]));
+-    let mut x19: u32 = 0;
+-    let mut x20: u32 = 0;
+     let (x19, x20) = fiat_p384_mulx_u32(x12, (arg2[8]));
+-    let mut x21: u32 = 0;
+-    let mut x22: u32 = 0;
+     let (x21, x22) = fiat_p384_mulx_u32(x12, (arg2[7]));
+-    let mut x23: u32 = 0;
+-    let mut x24: u32 = 0;
+     let (x23, x24) = fiat_p384_mulx_u32(x12, (arg2[6]));
+-    let mut x25: u32 = 0;
+-    let mut x26: u32 = 0;
+     let (x25, x26) = fiat_p384_mulx_u32(x12, (arg2[5]));
+-    let mut x27: u32 = 0;
+-    let mut x28: u32 = 0;
+     let (x27, x28) = fiat_p384_mulx_u32(x12, (arg2[4]));
+-    let mut x29: u32 = 0;
+-    let mut x30: u32 = 0;
+     let (x29, x30) = fiat_p384_mulx_u32(x12, (arg2[3]));
+-    let mut x31: u32 = 0;
+-    let mut x32: u32 = 0;
+     let (x31, x32) = fiat_p384_mulx_u32(x12, (arg2[2]));
+-    let mut x33: u32 = 0;
+-    let mut x34: u32 = 0;
+     let (x33, x34) = fiat_p384_mulx_u32(x12, (arg2[1]));
+-    let mut x35: u32 = 0;
+-    let mut x36: u32 = 0;
+     let (x35, x36) = fiat_p384_mulx_u32(x12, (arg2[0]));
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_u1 = 0;
+     let (x37, x38) = fiat_p384_addcarryx_u32(0x0, x36, x33);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_u1 = 0;
+     let (x39, x40) = fiat_p384_addcarryx_u32(x38, x34, x31);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_u1 = 0;
+     let (x41, x42) = fiat_p384_addcarryx_u32(x40, x32, x29);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_u1 = 0;
+     let (x43, x44) = fiat_p384_addcarryx_u32(x42, x30, x27);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_u1 = 0;
+     let (x45, x46) = fiat_p384_addcarryx_u32(x44, x28, x25);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_u1 = 0;
+     let (x47, x48) = fiat_p384_addcarryx_u32(x46, x26, x23);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_u1 = 0;
+     let (x49, x50) = fiat_p384_addcarryx_u32(x48, x24, x21);
+-    let mut x51: u32 = 0;
+-    let mut x52: fiat_p384_u1 = 0;
+     let (x51, x52) = fiat_p384_addcarryx_u32(x50, x22, x19);
+-    let mut x53: u32 = 0;
+-    let mut x54: fiat_p384_u1 = 0;
+     let (x53, x54) = fiat_p384_addcarryx_u32(x52, x20, x17);
+-    let mut x55: u32 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_addcarryx_u32(x54, x18, x15);
+-    let mut x57: u32 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_addcarryx_u32(x56, x16, x13);
+     let x59: u32 = ((x58 as u32) + x14);
+-    let mut x60: u32 = 0;
+-    let mut x61: u32 = 0;
+     let (x60, x61) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x62: u32 = 0;
+-    let mut x63: u32 = 0;
+     let (x62, x63) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x64: u32 = 0;
+-    let mut x65: u32 = 0;
+     let (x64, x65) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x66: u32 = 0;
+-    let mut x67: u32 = 0;
+     let (x66, x67) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x68: u32 = 0;
+-    let mut x69: u32 = 0;
+     let (x68, x69) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x70: u32 = 0;
+-    let mut x71: u32 = 0;
+     let (x70, x71) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x72: u32 = 0;
+-    let mut x73: u32 = 0;
+     let (x72, x73) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x74: u32 = 0;
+-    let mut x75: u32 = 0;
+     let (x74, x75) = fiat_p384_mulx_u32(x35, 0xfffffffe);
+-    let mut x76: u32 = 0;
+-    let mut x77: u32 = 0;
+     let (x76, x77) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x78: u32 = 0;
+-    let mut x79: u32 = 0;
+     let (x78, x79) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x80: u32 = 0;
+-    let mut x81: fiat_p384_u1 = 0;
+     let (x80, x81) = fiat_p384_addcarryx_u32(0x0, x77, x74);
+-    let mut x82: u32 = 0;
+-    let mut x83: fiat_p384_u1 = 0;
+     let (x82, x83) = fiat_p384_addcarryx_u32(x81, x75, x72);
+-    let mut x84: u32 = 0;
+-    let mut x85: fiat_p384_u1 = 0;
+     let (x84, x85) = fiat_p384_addcarryx_u32(x83, x73, x70);
+-    let mut x86: u32 = 0;
+-    let mut x87: fiat_p384_u1 = 0;
+     let (x86, x87) = fiat_p384_addcarryx_u32(x85, x71, x68);
+-    let mut x88: u32 = 0;
+-    let mut x89: fiat_p384_u1 = 0;
+     let (x88, x89) = fiat_p384_addcarryx_u32(x87, x69, x66);
+-    let mut x90: u32 = 0;
+-    let mut x91: fiat_p384_u1 = 0;
+     let (x90, x91) = fiat_p384_addcarryx_u32(x89, x67, x64);
+-    let mut x92: u32 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u32(x91, x65, x62);
+-    let mut x94: u32 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u32(x93, x63, x60);
+     let x96: u32 = ((x95 as u32) + x61);
+-    let mut x97: u32 = 0;
+-    let mut x98: fiat_p384_u1 = 0;
+     let (x97, x98) = fiat_p384_addcarryx_u32(0x0, x35, x78);
+-    let mut x99: u32 = 0;
+-    let mut x100: fiat_p384_u1 = 0;
+     let (x99, x100) = fiat_p384_addcarryx_u32(x98, x37, x79);
+-    let mut x101: u32 = 0;
+-    let mut x102: fiat_p384_u1 = 0;
+     let (x101, x102) = fiat_p384_addcarryx_u32(x100, x39, (0x0 as u32));
+-    let mut x103: u32 = 0;
+-    let mut x104: fiat_p384_u1 = 0;
+     let (x103, x104) = fiat_p384_addcarryx_u32(x102, x41, x76);
+-    let mut x105: u32 = 0;
+-    let mut x106: fiat_p384_u1 = 0;
+     let (x105, x106) = fiat_p384_addcarryx_u32(x104, x43, x80);
+-    let mut x107: u32 = 0;
+-    let mut x108: fiat_p384_u1 = 0;
+     let (x107, x108) = fiat_p384_addcarryx_u32(x106, x45, x82);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_u1 = 0;
+     let (x109, x110) = fiat_p384_addcarryx_u32(x108, x47, x84);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_u1 = 0;
+     let (x111, x112) = fiat_p384_addcarryx_u32(x110, x49, x86);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_u1 = 0;
+     let (x113, x114) = fiat_p384_addcarryx_u32(x112, x51, x88);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_u1 = 0;
+     let (x115, x116) = fiat_p384_addcarryx_u32(x114, x53, x90);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_u1 = 0;
+     let (x117, x118) = fiat_p384_addcarryx_u32(x116, x55, x92);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_u1 = 0;
+     let (x119, x120) = fiat_p384_addcarryx_u32(x118, x57, x94);
+-    let mut x121: u32 = 0;
+-    let mut x122: fiat_p384_u1 = 0;
+     let (x121, x122) = fiat_p384_addcarryx_u32(x120, x59, x96);
+-    let mut x123: u32 = 0;
+-    let mut x124: u32 = 0;
+     let (x123, x124) = fiat_p384_mulx_u32(x1, (arg2[11]));
+-    let mut x125: u32 = 0;
+-    let mut x126: u32 = 0;
+     let (x125, x126) = fiat_p384_mulx_u32(x1, (arg2[10]));
+-    let mut x127: u32 = 0;
+-    let mut x128: u32 = 0;
+     let (x127, x128) = fiat_p384_mulx_u32(x1, (arg2[9]));
+-    let mut x129: u32 = 0;
+-    let mut x130: u32 = 0;
+     let (x129, x130) = fiat_p384_mulx_u32(x1, (arg2[8]));
+-    let mut x131: u32 = 0;
+-    let mut x132: u32 = 0;
+     let (x131, x132) = fiat_p384_mulx_u32(x1, (arg2[7]));
+-    let mut x133: u32 = 0;
+-    let mut x134: u32 = 0;
+     let (x133, x134) = fiat_p384_mulx_u32(x1, (arg2[6]));
+-    let mut x135: u32 = 0;
+-    let mut x136: u32 = 0;
+     let (x135, x136) = fiat_p384_mulx_u32(x1, (arg2[5]));
+-    let mut x137: u32 = 0;
+-    let mut x138: u32 = 0;
+     let (x137, x138) = fiat_p384_mulx_u32(x1, (arg2[4]));
+-    let mut x139: u32 = 0;
+-    let mut x140: u32 = 0;
+     let (x139, x140) = fiat_p384_mulx_u32(x1, (arg2[3]));
+-    let mut x141: u32 = 0;
+-    let mut x142: u32 = 0;
+     let (x141, x142) = fiat_p384_mulx_u32(x1, (arg2[2]));
+-    let mut x143: u32 = 0;
+-    let mut x144: u32 = 0;
+     let (x143, x144) = fiat_p384_mulx_u32(x1, (arg2[1]));
+-    let mut x145: u32 = 0;
+-    let mut x146: u32 = 0;
+     let (x145, x146) = fiat_p384_mulx_u32(x1, (arg2[0]));
+-    let mut x147: u32 = 0;
+-    let mut x148: fiat_p384_u1 = 0;
+     let (x147, x148) = fiat_p384_addcarryx_u32(0x0, x146, x143);
+-    let mut x149: u32 = 0;
+-    let mut x150: fiat_p384_u1 = 0;
+     let (x149, x150) = fiat_p384_addcarryx_u32(x148, x144, x141);
+-    let mut x151: u32 = 0;
+-    let mut x152: fiat_p384_u1 = 0;
+     let (x151, x152) = fiat_p384_addcarryx_u32(x150, x142, x139);
+-    let mut x153: u32 = 0;
+-    let mut x154: fiat_p384_u1 = 0;
+     let (x153, x154) = fiat_p384_addcarryx_u32(x152, x140, x137);
+-    let mut x155: u32 = 0;
+-    let mut x156: fiat_p384_u1 = 0;
+     let (x155, x156) = fiat_p384_addcarryx_u32(x154, x138, x135);
+-    let mut x157: u32 = 0;
+-    let mut x158: fiat_p384_u1 = 0;
+     let (x157, x158) = fiat_p384_addcarryx_u32(x156, x136, x133);
+-    let mut x159: u32 = 0;
+-    let mut x160: fiat_p384_u1 = 0;
+     let (x159, x160) = fiat_p384_addcarryx_u32(x158, x134, x131);
+-    let mut x161: u32 = 0;
+-    let mut x162: fiat_p384_u1 = 0;
+     let (x161, x162) = fiat_p384_addcarryx_u32(x160, x132, x129);
+-    let mut x163: u32 = 0;
+-    let mut x164: fiat_p384_u1 = 0;
+     let (x163, x164) = fiat_p384_addcarryx_u32(x162, x130, x127);
+-    let mut x165: u32 = 0;
+-    let mut x166: fiat_p384_u1 = 0;
+     let (x165, x166) = fiat_p384_addcarryx_u32(x164, x128, x125);
+-    let mut x167: u32 = 0;
+-    let mut x168: fiat_p384_u1 = 0;
+     let (x167, x168) = fiat_p384_addcarryx_u32(x166, x126, x123);
+     let x169: u32 = ((x168 as u32) + x124);
+-    let mut x170: u32 = 0;
+-    let mut x171: fiat_p384_u1 = 0;
+     let (x170, x171) = fiat_p384_addcarryx_u32(0x0, x99, x145);
+-    let mut x172: u32 = 0;
+-    let mut x173: fiat_p384_u1 = 0;
+     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x101, x147);
+-    let mut x174: u32 = 0;
+-    let mut x175: fiat_p384_u1 = 0;
+     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x103, x149);
+-    let mut x176: u32 = 0;
+-    let mut x177: fiat_p384_u1 = 0;
+     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x105, x151);
+-    let mut x178: u32 = 0;
+-    let mut x179: fiat_p384_u1 = 0;
+     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x107, x153);
+-    let mut x180: u32 = 0;
+-    let mut x181: fiat_p384_u1 = 0;
+     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x109, x155);
+-    let mut x182: u32 = 0;
+-    let mut x183: fiat_p384_u1 = 0;
+     let (x182, x183) = fiat_p384_addcarryx_u32(x181, x111, x157);
+-    let mut x184: u32 = 0;
+-    let mut x185: fiat_p384_u1 = 0;
+     let (x184, x185) = fiat_p384_addcarryx_u32(x183, x113, x159);
+-    let mut x186: u32 = 0;
+-    let mut x187: fiat_p384_u1 = 0;
+     let (x186, x187) = fiat_p384_addcarryx_u32(x185, x115, x161);
+-    let mut x188: u32 = 0;
+-    let mut x189: fiat_p384_u1 = 0;
+     let (x188, x189) = fiat_p384_addcarryx_u32(x187, x117, x163);
+-    let mut x190: u32 = 0;
+-    let mut x191: fiat_p384_u1 = 0;
+     let (x190, x191) = fiat_p384_addcarryx_u32(x189, x119, x165);
+-    let mut x192: u32 = 0;
+-    let mut x193: fiat_p384_u1 = 0;
+     let (x192, x193) = fiat_p384_addcarryx_u32(x191, x121, x167);
+-    let mut x194: u32 = 0;
+-    let mut x195: fiat_p384_u1 = 0;
+     let (x194, x195) = fiat_p384_addcarryx_u32(x193, (x122 as u32), x169);
+-    let mut x196: u32 = 0;
+-    let mut x197: u32 = 0;
+     let (x196, x197) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x198: u32 = 0;
+-    let mut x199: u32 = 0;
+     let (x198, x199) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x200: u32 = 0;
+-    let mut x201: u32 = 0;
+     let (x200, x201) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x202: u32 = 0;
+-    let mut x203: u32 = 0;
+     let (x202, x203) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x204: u32 = 0;
+-    let mut x205: u32 = 0;
+     let (x204, x205) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x206: u32 = 0;
+-    let mut x207: u32 = 0;
+     let (x206, x207) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x208: u32 = 0;
+-    let mut x209: u32 = 0;
+     let (x208, x209) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x210: u32 = 0;
+-    let mut x211: u32 = 0;
+     let (x210, x211) = fiat_p384_mulx_u32(x170, 0xfffffffe);
+-    let mut x212: u32 = 0;
+-    let mut x213: u32 = 0;
+     let (x212, x213) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x214: u32 = 0;
+-    let mut x215: u32 = 0;
+     let (x214, x215) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x216: u32 = 0;
+-    let mut x217: fiat_p384_u1 = 0;
+     let (x216, x217) = fiat_p384_addcarryx_u32(0x0, x213, x210);
+-    let mut x218: u32 = 0;
+-    let mut x219: fiat_p384_u1 = 0;
+     let (x218, x219) = fiat_p384_addcarryx_u32(x217, x211, x208);
+-    let mut x220: u32 = 0;
+-    let mut x221: fiat_p384_u1 = 0;
+     let (x220, x221) = fiat_p384_addcarryx_u32(x219, x209, x206);
+-    let mut x222: u32 = 0;
+-    let mut x223: fiat_p384_u1 = 0;
+     let (x222, x223) = fiat_p384_addcarryx_u32(x221, x207, x204);
+-    let mut x224: u32 = 0;
+-    let mut x225: fiat_p384_u1 = 0;
+     let (x224, x225) = fiat_p384_addcarryx_u32(x223, x205, x202);
+-    let mut x226: u32 = 0;
+-    let mut x227: fiat_p384_u1 = 0;
+     let (x226, x227) = fiat_p384_addcarryx_u32(x225, x203, x200);
+-    let mut x228: u32 = 0;
+-    let mut x229: fiat_p384_u1 = 0;
+     let (x228, x229) = fiat_p384_addcarryx_u32(x227, x201, x198);
+-    let mut x230: u32 = 0;
+-    let mut x231: fiat_p384_u1 = 0;
+     let (x230, x231) = fiat_p384_addcarryx_u32(x229, x199, x196);
+     let x232: u32 = ((x231 as u32) + x197);
+-    let mut x233: u32 = 0;
+-    let mut x234: fiat_p384_u1 = 0;
+     let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x170, x214);
+-    let mut x235: u32 = 0;
+-    let mut x236: fiat_p384_u1 = 0;
+     let (x235, x236) = fiat_p384_addcarryx_u32(x234, x172, x215);
+-    let mut x237: u32 = 0;
+-    let mut x238: fiat_p384_u1 = 0;
+     let (x237, x238) = fiat_p384_addcarryx_u32(x236, x174, (0x0 as u32));
+-    let mut x239: u32 = 0;
+-    let mut x240: fiat_p384_u1 = 0;
+     let (x239, x240) = fiat_p384_addcarryx_u32(x238, x176, x212);
+-    let mut x241: u32 = 0;
+-    let mut x242: fiat_p384_u1 = 0;
+     let (x241, x242) = fiat_p384_addcarryx_u32(x240, x178, x216);
+-    let mut x243: u32 = 0;
+-    let mut x244: fiat_p384_u1 = 0;
+     let (x243, x244) = fiat_p384_addcarryx_u32(x242, x180, x218);
+-    let mut x245: u32 = 0;
+-    let mut x246: fiat_p384_u1 = 0;
+     let (x245, x246) = fiat_p384_addcarryx_u32(x244, x182, x220);
+-    let mut x247: u32 = 0;
+-    let mut x248: fiat_p384_u1 = 0;
+     let (x247, x248) = fiat_p384_addcarryx_u32(x246, x184, x222);
+-    let mut x249: u32 = 0;
+-    let mut x250: fiat_p384_u1 = 0;
+     let (x249, x250) = fiat_p384_addcarryx_u32(x248, x186, x224);
+-    let mut x251: u32 = 0;
+-    let mut x252: fiat_p384_u1 = 0;
+     let (x251, x252) = fiat_p384_addcarryx_u32(x250, x188, x226);
+-    let mut x253: u32 = 0;
+-    let mut x254: fiat_p384_u1 = 0;
+     let (x253, x254) = fiat_p384_addcarryx_u32(x252, x190, x228);
+-    let mut x255: u32 = 0;
+-    let mut x256: fiat_p384_u1 = 0;
+     let (x255, x256) = fiat_p384_addcarryx_u32(x254, x192, x230);
+-    let mut x257: u32 = 0;
+-    let mut x258: fiat_p384_u1 = 0;
+     let (x257, x258) = fiat_p384_addcarryx_u32(x256, x194, x232);
+     let x259: u32 = ((x258 as u32) + (x195 as u32));
+-    let mut x260: u32 = 0;
+-    let mut x261: u32 = 0;
+     let (x260, x261) = fiat_p384_mulx_u32(x2, (arg2[11]));
+-    let mut x262: u32 = 0;
+-    let mut x263: u32 = 0;
+     let (x262, x263) = fiat_p384_mulx_u32(x2, (arg2[10]));
+-    let mut x264: u32 = 0;
+-    let mut x265: u32 = 0;
+     let (x264, x265) = fiat_p384_mulx_u32(x2, (arg2[9]));
+-    let mut x266: u32 = 0;
+-    let mut x267: u32 = 0;
+     let (x266, x267) = fiat_p384_mulx_u32(x2, (arg2[8]));
+-    let mut x268: u32 = 0;
+-    let mut x269: u32 = 0;
+     let (x268, x269) = fiat_p384_mulx_u32(x2, (arg2[7]));
+-    let mut x270: u32 = 0;
+-    let mut x271: u32 = 0;
+     let (x270, x271) = fiat_p384_mulx_u32(x2, (arg2[6]));
+-    let mut x272: u32 = 0;
+-    let mut x273: u32 = 0;
+     let (x272, x273) = fiat_p384_mulx_u32(x2, (arg2[5]));
+-    let mut x274: u32 = 0;
+-    let mut x275: u32 = 0;
+     let (x274, x275) = fiat_p384_mulx_u32(x2, (arg2[4]));
+-    let mut x276: u32 = 0;
+-    let mut x277: u32 = 0;
+     let (x276, x277) = fiat_p384_mulx_u32(x2, (arg2[3]));
+-    let mut x278: u32 = 0;
+-    let mut x279: u32 = 0;
+     let (x278, x279) = fiat_p384_mulx_u32(x2, (arg2[2]));
+-    let mut x280: u32 = 0;
+-    let mut x281: u32 = 0;
+     let (x280, x281) = fiat_p384_mulx_u32(x2, (arg2[1]));
+-    let mut x282: u32 = 0;
+-    let mut x283: u32 = 0;
+     let (x282, x283) = fiat_p384_mulx_u32(x2, (arg2[0]));
+-    let mut x284: u32 = 0;
+-    let mut x285: fiat_p384_u1 = 0;
+     let (x284, x285) = fiat_p384_addcarryx_u32(0x0, x283, x280);
+-    let mut x286: u32 = 0;
+-    let mut x287: fiat_p384_u1 = 0;
+     let (x286, x287) = fiat_p384_addcarryx_u32(x285, x281, x278);
+-    let mut x288: u32 = 0;
+-    let mut x289: fiat_p384_u1 = 0;
+     let (x288, x289) = fiat_p384_addcarryx_u32(x287, x279, x276);
+-    let mut x290: u32 = 0;
+-    let mut x291: fiat_p384_u1 = 0;
+     let (x290, x291) = fiat_p384_addcarryx_u32(x289, x277, x274);
+-    let mut x292: u32 = 0;
+-    let mut x293: fiat_p384_u1 = 0;
+     let (x292, x293) = fiat_p384_addcarryx_u32(x291, x275, x272);
+-    let mut x294: u32 = 0;
+-    let mut x295: fiat_p384_u1 = 0;
+     let (x294, x295) = fiat_p384_addcarryx_u32(x293, x273, x270);
+-    let mut x296: u32 = 0;
+-    let mut x297: fiat_p384_u1 = 0;
+     let (x296, x297) = fiat_p384_addcarryx_u32(x295, x271, x268);
+-    let mut x298: u32 = 0;
+-    let mut x299: fiat_p384_u1 = 0;
+     let (x298, x299) = fiat_p384_addcarryx_u32(x297, x269, x266);
+-    let mut x300: u32 = 0;
+-    let mut x301: fiat_p384_u1 = 0;
+     let (x300, x301) = fiat_p384_addcarryx_u32(x299, x267, x264);
+-    let mut x302: u32 = 0;
+-    let mut x303: fiat_p384_u1 = 0;
+     let (x302, x303) = fiat_p384_addcarryx_u32(x301, x265, x262);
+-    let mut x304: u32 = 0;
+-    let mut x305: fiat_p384_u1 = 0;
+     let (x304, x305) = fiat_p384_addcarryx_u32(x303, x263, x260);
+     let x306: u32 = ((x305 as u32) + x261);
+-    let mut x307: u32 = 0;
+-    let mut x308: fiat_p384_u1 = 0;
+     let (x307, x308) = fiat_p384_addcarryx_u32(0x0, x235, x282);
+-    let mut x309: u32 = 0;
+-    let mut x310: fiat_p384_u1 = 0;
+     let (x309, x310) = fiat_p384_addcarryx_u32(x308, x237, x284);
+-    let mut x311: u32 = 0;
+-    let mut x312: fiat_p384_u1 = 0;
+     let (x311, x312) = fiat_p384_addcarryx_u32(x310, x239, x286);
+-    let mut x313: u32 = 0;
+-    let mut x314: fiat_p384_u1 = 0;
+     let (x313, x314) = fiat_p384_addcarryx_u32(x312, x241, x288);
+-    let mut x315: u32 = 0;
+-    let mut x316: fiat_p384_u1 = 0;
+     let (x315, x316) = fiat_p384_addcarryx_u32(x314, x243, x290);
+-    let mut x317: u32 = 0;
+-    let mut x318: fiat_p384_u1 = 0;
+     let (x317, x318) = fiat_p384_addcarryx_u32(x316, x245, x292);
+-    let mut x319: u32 = 0;
+-    let mut x320: fiat_p384_u1 = 0;
+     let (x319, x320) = fiat_p384_addcarryx_u32(x318, x247, x294);
+-    let mut x321: u32 = 0;
+-    let mut x322: fiat_p384_u1 = 0;
+     let (x321, x322) = fiat_p384_addcarryx_u32(x320, x249, x296);
+-    let mut x323: u32 = 0;
+-    let mut x324: fiat_p384_u1 = 0;
+     let (x323, x324) = fiat_p384_addcarryx_u32(x322, x251, x298);
+-    let mut x325: u32 = 0;
+-    let mut x326: fiat_p384_u1 = 0;
+     let (x325, x326) = fiat_p384_addcarryx_u32(x324, x253, x300);
+-    let mut x327: u32 = 0;
+-    let mut x328: fiat_p384_u1 = 0;
+     let (x327, x328) = fiat_p384_addcarryx_u32(x326, x255, x302);
+-    let mut x329: u32 = 0;
+-    let mut x330: fiat_p384_u1 = 0;
+     let (x329, x330) = fiat_p384_addcarryx_u32(x328, x257, x304);
+-    let mut x331: u32 = 0;
+-    let mut x332: fiat_p384_u1 = 0;
+     let (x331, x332) = fiat_p384_addcarryx_u32(x330, x259, x306);
+-    let mut x333: u32 = 0;
+-    let mut x334: u32 = 0;
+     let (x333, x334) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x335: u32 = 0;
+-    let mut x336: u32 = 0;
+     let (x335, x336) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x337: u32 = 0;
+-    let mut x338: u32 = 0;
+     let (x337, x338) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x339: u32 = 0;
+-    let mut x340: u32 = 0;
+     let (x339, x340) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x341: u32 = 0;
+-    let mut x342: u32 = 0;
+     let (x341, x342) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x343: u32 = 0;
+-    let mut x344: u32 = 0;
+     let (x343, x344) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x345: u32 = 0;
+-    let mut x346: u32 = 0;
+     let (x345, x346) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x347: u32 = 0;
+-    let mut x348: u32 = 0;
+     let (x347, x348) = fiat_p384_mulx_u32(x307, 0xfffffffe);
+-    let mut x349: u32 = 0;
+-    let mut x350: u32 = 0;
+     let (x349, x350) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x351: u32 = 0;
+-    let mut x352: u32 = 0;
+     let (x351, x352) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x353: u32 = 0;
+-    let mut x354: fiat_p384_u1 = 0;
+     let (x353, x354) = fiat_p384_addcarryx_u32(0x0, x350, x347);
+-    let mut x355: u32 = 0;
+-    let mut x356: fiat_p384_u1 = 0;
+     let (x355, x356) = fiat_p384_addcarryx_u32(x354, x348, x345);
+-    let mut x357: u32 = 0;
+-    let mut x358: fiat_p384_u1 = 0;
+     let (x357, x358) = fiat_p384_addcarryx_u32(x356, x346, x343);
+-    let mut x359: u32 = 0;
+-    let mut x360: fiat_p384_u1 = 0;
+     let (x359, x360) = fiat_p384_addcarryx_u32(x358, x344, x341);
+-    let mut x361: u32 = 0;
+-    let mut x362: fiat_p384_u1 = 0;
+     let (x361, x362) = fiat_p384_addcarryx_u32(x360, x342, x339);
+-    let mut x363: u32 = 0;
+-    let mut x364: fiat_p384_u1 = 0;
+     let (x363, x364) = fiat_p384_addcarryx_u32(x362, x340, x337);
+-    let mut x365: u32 = 0;
+-    let mut x366: fiat_p384_u1 = 0;
+     let (x365, x366) = fiat_p384_addcarryx_u32(x364, x338, x335);
+-    let mut x367: u32 = 0;
+-    let mut x368: fiat_p384_u1 = 0;
+     let (x367, x368) = fiat_p384_addcarryx_u32(x366, x336, x333);
+     let x369: u32 = ((x368 as u32) + x334);
+-    let mut x370: u32 = 0;
+-    let mut x371: fiat_p384_u1 = 0;
+     let (x370, x371) = fiat_p384_addcarryx_u32(0x0, x307, x351);
+-    let mut x372: u32 = 0;
+-    let mut x373: fiat_p384_u1 = 0;
+     let (x372, x373) = fiat_p384_addcarryx_u32(x371, x309, x352);
+-    let mut x374: u32 = 0;
+-    let mut x375: fiat_p384_u1 = 0;
+     let (x374, x375) = fiat_p384_addcarryx_u32(x373, x311, (0x0 as u32));
+-    let mut x376: u32 = 0;
+-    let mut x377: fiat_p384_u1 = 0;
+     let (x376, x377) = fiat_p384_addcarryx_u32(x375, x313, x349);
+-    let mut x378: u32 = 0;
+-    let mut x379: fiat_p384_u1 = 0;
+     let (x378, x379) = fiat_p384_addcarryx_u32(x377, x315, x353);
+-    let mut x380: u32 = 0;
+-    let mut x381: fiat_p384_u1 = 0;
+     let (x380, x381) = fiat_p384_addcarryx_u32(x379, x317, x355);
+-    let mut x382: u32 = 0;
+-    let mut x383: fiat_p384_u1 = 0;
+     let (x382, x383) = fiat_p384_addcarryx_u32(x381, x319, x357);
+-    let mut x384: u32 = 0;
+-    let mut x385: fiat_p384_u1 = 0;
+     let (x384, x385) = fiat_p384_addcarryx_u32(x383, x321, x359);
+-    let mut x386: u32 = 0;
+-    let mut x387: fiat_p384_u1 = 0;
+     let (x386, x387) = fiat_p384_addcarryx_u32(x385, x323, x361);
+-    let mut x388: u32 = 0;
+-    let mut x389: fiat_p384_u1 = 0;
+     let (x388, x389) = fiat_p384_addcarryx_u32(x387, x325, x363);
+-    let mut x390: u32 = 0;
+-    let mut x391: fiat_p384_u1 = 0;
+     let (x390, x391) = fiat_p384_addcarryx_u32(x389, x327, x365);
+-    let mut x392: u32 = 0;
+-    let mut x393: fiat_p384_u1 = 0;
+     let (x392, x393) = fiat_p384_addcarryx_u32(x391, x329, x367);
+-    let mut x394: u32 = 0;
+-    let mut x395: fiat_p384_u1 = 0;
+     let (x394, x395) = fiat_p384_addcarryx_u32(x393, x331, x369);
+     let x396: u32 = ((x395 as u32) + (x332 as u32));
+-    let mut x397: u32 = 0;
+-    let mut x398: u32 = 0;
+     let (x397, x398) = fiat_p384_mulx_u32(x3, (arg2[11]));
+-    let mut x399: u32 = 0;
+-    let mut x400: u32 = 0;
+     let (x399, x400) = fiat_p384_mulx_u32(x3, (arg2[10]));
+-    let mut x401: u32 = 0;
+-    let mut x402: u32 = 0;
+     let (x401, x402) = fiat_p384_mulx_u32(x3, (arg2[9]));
+-    let mut x403: u32 = 0;
+-    let mut x404: u32 = 0;
+     let (x403, x404) = fiat_p384_mulx_u32(x3, (arg2[8]));
+-    let mut x405: u32 = 0;
+-    let mut x406: u32 = 0;
+     let (x405, x406) = fiat_p384_mulx_u32(x3, (arg2[7]));
+-    let mut x407: u32 = 0;
+-    let mut x408: u32 = 0;
+     let (x407, x408) = fiat_p384_mulx_u32(x3, (arg2[6]));
+-    let mut x409: u32 = 0;
+-    let mut x410: u32 = 0;
+     let (x409, x410) = fiat_p384_mulx_u32(x3, (arg2[5]));
+-    let mut x411: u32 = 0;
+-    let mut x412: u32 = 0;
+     let (x411, x412) = fiat_p384_mulx_u32(x3, (arg2[4]));
+-    let mut x413: u32 = 0;
+-    let mut x414: u32 = 0;
+     let (x413, x414) = fiat_p384_mulx_u32(x3, (arg2[3]));
+-    let mut x415: u32 = 0;
+-    let mut x416: u32 = 0;
+     let (x415, x416) = fiat_p384_mulx_u32(x3, (arg2[2]));
+-    let mut x417: u32 = 0;
+-    let mut x418: u32 = 0;
+     let (x417, x418) = fiat_p384_mulx_u32(x3, (arg2[1]));
+-    let mut x419: u32 = 0;
+-    let mut x420: u32 = 0;
+     let (x419, x420) = fiat_p384_mulx_u32(x3, (arg2[0]));
+-    let mut x421: u32 = 0;
+-    let mut x422: fiat_p384_u1 = 0;
+     let (x421, x422) = fiat_p384_addcarryx_u32(0x0, x420, x417);
+-    let mut x423: u32 = 0;
+-    let mut x424: fiat_p384_u1 = 0;
+     let (x423, x424) = fiat_p384_addcarryx_u32(x422, x418, x415);
+-    let mut x425: u32 = 0;
+-    let mut x426: fiat_p384_u1 = 0;
+     let (x425, x426) = fiat_p384_addcarryx_u32(x424, x416, x413);
+-    let mut x427: u32 = 0;
+-    let mut x428: fiat_p384_u1 = 0;
+     let (x427, x428) = fiat_p384_addcarryx_u32(x426, x414, x411);
+-    let mut x429: u32 = 0;
+-    let mut x430: fiat_p384_u1 = 0;
+     let (x429, x430) = fiat_p384_addcarryx_u32(x428, x412, x409);
+-    let mut x431: u32 = 0;
+-    let mut x432: fiat_p384_u1 = 0;
+     let (x431, x432) = fiat_p384_addcarryx_u32(x430, x410, x407);
+-    let mut x433: u32 = 0;
+-    let mut x434: fiat_p384_u1 = 0;
+     let (x433, x434) = fiat_p384_addcarryx_u32(x432, x408, x405);
+-    let mut x435: u32 = 0;
+-    let mut x436: fiat_p384_u1 = 0;
+     let (x435, x436) = fiat_p384_addcarryx_u32(x434, x406, x403);
+-    let mut x437: u32 = 0;
+-    let mut x438: fiat_p384_u1 = 0;
+     let (x437, x438) = fiat_p384_addcarryx_u32(x436, x404, x401);
+-    let mut x439: u32 = 0;
+-    let mut x440: fiat_p384_u1 = 0;
+     let (x439, x440) = fiat_p384_addcarryx_u32(x438, x402, x399);
+-    let mut x441: u32 = 0;
+-    let mut x442: fiat_p384_u1 = 0;
+     let (x441, x442) = fiat_p384_addcarryx_u32(x440, x400, x397);
+     let x443: u32 = ((x442 as u32) + x398);
+-    let mut x444: u32 = 0;
+-    let mut x445: fiat_p384_u1 = 0;
+     let (x444, x445) = fiat_p384_addcarryx_u32(0x0, x372, x419);
+-    let mut x446: u32 = 0;
+-    let mut x447: fiat_p384_u1 = 0;
+     let (x446, x447) = fiat_p384_addcarryx_u32(x445, x374, x421);
+-    let mut x448: u32 = 0;
+-    let mut x449: fiat_p384_u1 = 0;
+     let (x448, x449) = fiat_p384_addcarryx_u32(x447, x376, x423);
+-    let mut x450: u32 = 0;
+-    let mut x451: fiat_p384_u1 = 0;
+     let (x450, x451) = fiat_p384_addcarryx_u32(x449, x378, x425);
+-    let mut x452: u32 = 0;
+-    let mut x453: fiat_p384_u1 = 0;
+     let (x452, x453) = fiat_p384_addcarryx_u32(x451, x380, x427);
+-    let mut x454: u32 = 0;
+-    let mut x455: fiat_p384_u1 = 0;
+     let (x454, x455) = fiat_p384_addcarryx_u32(x453, x382, x429);
+-    let mut x456: u32 = 0;
+-    let mut x457: fiat_p384_u1 = 0;
+     let (x456, x457) = fiat_p384_addcarryx_u32(x455, x384, x431);
+-    let mut x458: u32 = 0;
+-    let mut x459: fiat_p384_u1 = 0;
+     let (x458, x459) = fiat_p384_addcarryx_u32(x457, x386, x433);
+-    let mut x460: u32 = 0;
+-    let mut x461: fiat_p384_u1 = 0;
+     let (x460, x461) = fiat_p384_addcarryx_u32(x459, x388, x435);
+-    let mut x462: u32 = 0;
+-    let mut x463: fiat_p384_u1 = 0;
+     let (x462, x463) = fiat_p384_addcarryx_u32(x461, x390, x437);
+-    let mut x464: u32 = 0;
+-    let mut x465: fiat_p384_u1 = 0;
+     let (x464, x465) = fiat_p384_addcarryx_u32(x463, x392, x439);
+-    let mut x466: u32 = 0;
+-    let mut x467: fiat_p384_u1 = 0;
+     let (x466, x467) = fiat_p384_addcarryx_u32(x465, x394, x441);
+-    let mut x468: u32 = 0;
+-    let mut x469: fiat_p384_u1 = 0;
+     let (x468, x469) = fiat_p384_addcarryx_u32(x467, x396, x443);
+-    let mut x470: u32 = 0;
+-    let mut x471: u32 = 0;
+     let (x470, x471) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x472: u32 = 0;
+-    let mut x473: u32 = 0;
+     let (x472, x473) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x474: u32 = 0;
+-    let mut x475: u32 = 0;
+     let (x474, x475) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x476: u32 = 0;
+-    let mut x477: u32 = 0;
+     let (x476, x477) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x478: u32 = 0;
+-    let mut x479: u32 = 0;
+     let (x478, x479) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x480: u32 = 0;
+-    let mut x481: u32 = 0;
+     let (x480, x481) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x482: u32 = 0;
+-    let mut x483: u32 = 0;
+     let (x482, x483) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x484: u32 = 0;
+-    let mut x485: u32 = 0;
+     let (x484, x485) = fiat_p384_mulx_u32(x444, 0xfffffffe);
+-    let mut x486: u32 = 0;
+-    let mut x487: u32 = 0;
+     let (x486, x487) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x488: u32 = 0;
+-    let mut x489: u32 = 0;
+     let (x488, x489) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x490: u32 = 0;
+-    let mut x491: fiat_p384_u1 = 0;
+     let (x490, x491) = fiat_p384_addcarryx_u32(0x0, x487, x484);
+-    let mut x492: u32 = 0;
+-    let mut x493: fiat_p384_u1 = 0;
+     let (x492, x493) = fiat_p384_addcarryx_u32(x491, x485, x482);
+-    let mut x494: u32 = 0;
+-    let mut x495: fiat_p384_u1 = 0;
+     let (x494, x495) = fiat_p384_addcarryx_u32(x493, x483, x480);
+-    let mut x496: u32 = 0;
+-    let mut x497: fiat_p384_u1 = 0;
+     let (x496, x497) = fiat_p384_addcarryx_u32(x495, x481, x478);
+-    let mut x498: u32 = 0;
+-    let mut x499: fiat_p384_u1 = 0;
+     let (x498, x499) = fiat_p384_addcarryx_u32(x497, x479, x476);
+-    let mut x500: u32 = 0;
+-    let mut x501: fiat_p384_u1 = 0;
+     let (x500, x501) = fiat_p384_addcarryx_u32(x499, x477, x474);
+-    let mut x502: u32 = 0;
+-    let mut x503: fiat_p384_u1 = 0;
+     let (x502, x503) = fiat_p384_addcarryx_u32(x501, x475, x472);
+-    let mut x504: u32 = 0;
+-    let mut x505: fiat_p384_u1 = 0;
+     let (x504, x505) = fiat_p384_addcarryx_u32(x503, x473, x470);
+     let x506: u32 = ((x505 as u32) + x471);
+-    let mut x507: u32 = 0;
+-    let mut x508: fiat_p384_u1 = 0;
+     let (x507, x508) = fiat_p384_addcarryx_u32(0x0, x444, x488);
+-    let mut x509: u32 = 0;
+-    let mut x510: fiat_p384_u1 = 0;
+     let (x509, x510) = fiat_p384_addcarryx_u32(x508, x446, x489);
+-    let mut x511: u32 = 0;
+-    let mut x512: fiat_p384_u1 = 0;
+     let (x511, x512) = fiat_p384_addcarryx_u32(x510, x448, (0x0 as u32));
+-    let mut x513: u32 = 0;
+-    let mut x514: fiat_p384_u1 = 0;
+     let (x513, x514) = fiat_p384_addcarryx_u32(x512, x450, x486);
+-    let mut x515: u32 = 0;
+-    let mut x516: fiat_p384_u1 = 0;
+     let (x515, x516) = fiat_p384_addcarryx_u32(x514, x452, x490);
+-    let mut x517: u32 = 0;
+-    let mut x518: fiat_p384_u1 = 0;
+     let (x517, x518) = fiat_p384_addcarryx_u32(x516, x454, x492);
+-    let mut x519: u32 = 0;
+-    let mut x520: fiat_p384_u1 = 0;
+     let (x519, x520) = fiat_p384_addcarryx_u32(x518, x456, x494);
+-    let mut x521: u32 = 0;
+-    let mut x522: fiat_p384_u1 = 0;
+     let (x521, x522) = fiat_p384_addcarryx_u32(x520, x458, x496);
+-    let mut x523: u32 = 0;
+-    let mut x524: fiat_p384_u1 = 0;
+     let (x523, x524) = fiat_p384_addcarryx_u32(x522, x460, x498);
+-    let mut x525: u32 = 0;
+-    let mut x526: fiat_p384_u1 = 0;
+     let (x525, x526) = fiat_p384_addcarryx_u32(x524, x462, x500);
+-    let mut x527: u32 = 0;
+-    let mut x528: fiat_p384_u1 = 0;
+     let (x527, x528) = fiat_p384_addcarryx_u32(x526, x464, x502);
+-    let mut x529: u32 = 0;
+-    let mut x530: fiat_p384_u1 = 0;
+     let (x529, x530) = fiat_p384_addcarryx_u32(x528, x466, x504);
+-    let mut x531: u32 = 0;
+-    let mut x532: fiat_p384_u1 = 0;
+     let (x531, x532) = fiat_p384_addcarryx_u32(x530, x468, x506);
+     let x533: u32 = ((x532 as u32) + (x469 as u32));
+-    let mut x534: u32 = 0;
+-    let mut x535: u32 = 0;
+     let (x534, x535) = fiat_p384_mulx_u32(x4, (arg2[11]));
+-    let mut x536: u32 = 0;
+-    let mut x537: u32 = 0;
+     let (x536, x537) = fiat_p384_mulx_u32(x4, (arg2[10]));
+-    let mut x538: u32 = 0;
+-    let mut x539: u32 = 0;
+     let (x538, x539) = fiat_p384_mulx_u32(x4, (arg2[9]));
+-    let mut x540: u32 = 0;
+-    let mut x541: u32 = 0;
+     let (x540, x541) = fiat_p384_mulx_u32(x4, (arg2[8]));
+-    let mut x542: u32 = 0;
+-    let mut x543: u32 = 0;
+     let (x542, x543) = fiat_p384_mulx_u32(x4, (arg2[7]));
+-    let mut x544: u32 = 0;
+-    let mut x545: u32 = 0;
+     let (x544, x545) = fiat_p384_mulx_u32(x4, (arg2[6]));
+-    let mut x546: u32 = 0;
+-    let mut x547: u32 = 0;
+     let (x546, x547) = fiat_p384_mulx_u32(x4, (arg2[5]));
+-    let mut x548: u32 = 0;
+-    let mut x549: u32 = 0;
+     let (x548, x549) = fiat_p384_mulx_u32(x4, (arg2[4]));
+-    let mut x550: u32 = 0;
+-    let mut x551: u32 = 0;
+     let (x550, x551) = fiat_p384_mulx_u32(x4, (arg2[3]));
+-    let mut x552: u32 = 0;
+-    let mut x553: u32 = 0;
+     let (x552, x553) = fiat_p384_mulx_u32(x4, (arg2[2]));
+-    let mut x554: u32 = 0;
+-    let mut x555: u32 = 0;
+     let (x554, x555) = fiat_p384_mulx_u32(x4, (arg2[1]));
+-    let mut x556: u32 = 0;
+-    let mut x557: u32 = 0;
+     let (x556, x557) = fiat_p384_mulx_u32(x4, (arg2[0]));
+-    let mut x558: u32 = 0;
+-    let mut x559: fiat_p384_u1 = 0;
+     let (x558, x559) = fiat_p384_addcarryx_u32(0x0, x557, x554);
+-    let mut x560: u32 = 0;
+-    let mut x561: fiat_p384_u1 = 0;
+     let (x560, x561) = fiat_p384_addcarryx_u32(x559, x555, x552);
+-    let mut x562: u32 = 0;
+-    let mut x563: fiat_p384_u1 = 0;
+     let (x562, x563) = fiat_p384_addcarryx_u32(x561, x553, x550);
+-    let mut x564: u32 = 0;
+-    let mut x565: fiat_p384_u1 = 0;
+     let (x564, x565) = fiat_p384_addcarryx_u32(x563, x551, x548);
+-    let mut x566: u32 = 0;
+-    let mut x567: fiat_p384_u1 = 0;
+     let (x566, x567) = fiat_p384_addcarryx_u32(x565, x549, x546);
+-    let mut x568: u32 = 0;
+-    let mut x569: fiat_p384_u1 = 0;
+     let (x568, x569) = fiat_p384_addcarryx_u32(x567, x547, x544);
+-    let mut x570: u32 = 0;
+-    let mut x571: fiat_p384_u1 = 0;
+     let (x570, x571) = fiat_p384_addcarryx_u32(x569, x545, x542);
+-    let mut x572: u32 = 0;
+-    let mut x573: fiat_p384_u1 = 0;
+     let (x572, x573) = fiat_p384_addcarryx_u32(x571, x543, x540);
+-    let mut x574: u32 = 0;
+-    let mut x575: fiat_p384_u1 = 0;
+     let (x574, x575) = fiat_p384_addcarryx_u32(x573, x541, x538);
+-    let mut x576: u32 = 0;
+-    let mut x577: fiat_p384_u1 = 0;
+     let (x576, x577) = fiat_p384_addcarryx_u32(x575, x539, x536);
+-    let mut x578: u32 = 0;
+-    let mut x579: fiat_p384_u1 = 0;
+     let (x578, x579) = fiat_p384_addcarryx_u32(x577, x537, x534);
+     let x580: u32 = ((x579 as u32) + x535);
+-    let mut x581: u32 = 0;
+-    let mut x582: fiat_p384_u1 = 0;
+     let (x581, x582) = fiat_p384_addcarryx_u32(0x0, x509, x556);
+-    let mut x583: u32 = 0;
+-    let mut x584: fiat_p384_u1 = 0;
+     let (x583, x584) = fiat_p384_addcarryx_u32(x582, x511, x558);
+-    let mut x585: u32 = 0;
+-    let mut x586: fiat_p384_u1 = 0;
+     let (x585, x586) = fiat_p384_addcarryx_u32(x584, x513, x560);
+-    let mut x587: u32 = 0;
+-    let mut x588: fiat_p384_u1 = 0;
+     let (x587, x588) = fiat_p384_addcarryx_u32(x586, x515, x562);
+-    let mut x589: u32 = 0;
+-    let mut x590: fiat_p384_u1 = 0;
+     let (x589, x590) = fiat_p384_addcarryx_u32(x588, x517, x564);
+-    let mut x591: u32 = 0;
+-    let mut x592: fiat_p384_u1 = 0;
+     let (x591, x592) = fiat_p384_addcarryx_u32(x590, x519, x566);
+-    let mut x593: u32 = 0;
+-    let mut x594: fiat_p384_u1 = 0;
+     let (x593, x594) = fiat_p384_addcarryx_u32(x592, x521, x568);
+-    let mut x595: u32 = 0;
+-    let mut x596: fiat_p384_u1 = 0;
+     let (x595, x596) = fiat_p384_addcarryx_u32(x594, x523, x570);
+-    let mut x597: u32 = 0;
+-    let mut x598: fiat_p384_u1 = 0;
+     let (x597, x598) = fiat_p384_addcarryx_u32(x596, x525, x572);
+-    let mut x599: u32 = 0;
+-    let mut x600: fiat_p384_u1 = 0;
+     let (x599, x600) = fiat_p384_addcarryx_u32(x598, x527, x574);
+-    let mut x601: u32 = 0;
+-    let mut x602: fiat_p384_u1 = 0;
+     let (x601, x602) = fiat_p384_addcarryx_u32(x600, x529, x576);
+-    let mut x603: u32 = 0;
+-    let mut x604: fiat_p384_u1 = 0;
+     let (x603, x604) = fiat_p384_addcarryx_u32(x602, x531, x578);
+-    let mut x605: u32 = 0;
+-    let mut x606: fiat_p384_u1 = 0;
+     let (x605, x606) = fiat_p384_addcarryx_u32(x604, x533, x580);
+-    let mut x607: u32 = 0;
+-    let mut x608: u32 = 0;
+     let (x607, x608) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x609: u32 = 0;
+-    let mut x610: u32 = 0;
+     let (x609, x610) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x611: u32 = 0;
+-    let mut x612: u32 = 0;
+     let (x611, x612) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x613: u32 = 0;
+-    let mut x614: u32 = 0;
+     let (x613, x614) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x615: u32 = 0;
+-    let mut x616: u32 = 0;
+     let (x615, x616) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x617: u32 = 0;
+-    let mut x618: u32 = 0;
+     let (x617, x618) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x619: u32 = 0;
+-    let mut x620: u32 = 0;
+     let (x619, x620) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x621: u32 = 0;
+-    let mut x622: u32 = 0;
+     let (x621, x622) = fiat_p384_mulx_u32(x581, 0xfffffffe);
+-    let mut x623: u32 = 0;
+-    let mut x624: u32 = 0;
+     let (x623, x624) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x625: u32 = 0;
+-    let mut x626: u32 = 0;
+     let (x625, x626) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x627: u32 = 0;
+-    let mut x628: fiat_p384_u1 = 0;
+     let (x627, x628) = fiat_p384_addcarryx_u32(0x0, x624, x621);
+-    let mut x629: u32 = 0;
+-    let mut x630: fiat_p384_u1 = 0;
+     let (x629, x630) = fiat_p384_addcarryx_u32(x628, x622, x619);
+-    let mut x631: u32 = 0;
+-    let mut x632: fiat_p384_u1 = 0;
+     let (x631, x632) = fiat_p384_addcarryx_u32(x630, x620, x617);
+-    let mut x633: u32 = 0;
+-    let mut x634: fiat_p384_u1 = 0;
+     let (x633, x634) = fiat_p384_addcarryx_u32(x632, x618, x615);
+-    let mut x635: u32 = 0;
+-    let mut x636: fiat_p384_u1 = 0;
+     let (x635, x636) = fiat_p384_addcarryx_u32(x634, x616, x613);
+-    let mut x637: u32 = 0;
+-    let mut x638: fiat_p384_u1 = 0;
+     let (x637, x638) = fiat_p384_addcarryx_u32(x636, x614, x611);
+-    let mut x639: u32 = 0;
+-    let mut x640: fiat_p384_u1 = 0;
+     let (x639, x640) = fiat_p384_addcarryx_u32(x638, x612, x609);
+-    let mut x641: u32 = 0;
+-    let mut x642: fiat_p384_u1 = 0;
+     let (x641, x642) = fiat_p384_addcarryx_u32(x640, x610, x607);
+     let x643: u32 = ((x642 as u32) + x608);
+-    let mut x644: u32 = 0;
+-    let mut x645: fiat_p384_u1 = 0;
+     let (x644, x645) = fiat_p384_addcarryx_u32(0x0, x581, x625);
+-    let mut x646: u32 = 0;
+-    let mut x647: fiat_p384_u1 = 0;
+     let (x646, x647) = fiat_p384_addcarryx_u32(x645, x583, x626);
+-    let mut x648: u32 = 0;
+-    let mut x649: fiat_p384_u1 = 0;
+     let (x648, x649) = fiat_p384_addcarryx_u32(x647, x585, (0x0 as u32));
+-    let mut x650: u32 = 0;
+-    let mut x651: fiat_p384_u1 = 0;
+     let (x650, x651) = fiat_p384_addcarryx_u32(x649, x587, x623);
+-    let mut x652: u32 = 0;
+-    let mut x653: fiat_p384_u1 = 0;
+     let (x652, x653) = fiat_p384_addcarryx_u32(x651, x589, x627);
+-    let mut x654: u32 = 0;
+-    let mut x655: fiat_p384_u1 = 0;
+     let (x654, x655) = fiat_p384_addcarryx_u32(x653, x591, x629);
+-    let mut x656: u32 = 0;
+-    let mut x657: fiat_p384_u1 = 0;
+     let (x656, x657) = fiat_p384_addcarryx_u32(x655, x593, x631);
+-    let mut x658: u32 = 0;
+-    let mut x659: fiat_p384_u1 = 0;
+     let (x658, x659) = fiat_p384_addcarryx_u32(x657, x595, x633);
+-    let mut x660: u32 = 0;
+-    let mut x661: fiat_p384_u1 = 0;
+     let (x660, x661) = fiat_p384_addcarryx_u32(x659, x597, x635);
+-    let mut x662: u32 = 0;
+-    let mut x663: fiat_p384_u1 = 0;
+     let (x662, x663) = fiat_p384_addcarryx_u32(x661, x599, x637);
+-    let mut x664: u32 = 0;
+-    let mut x665: fiat_p384_u1 = 0;
+     let (x664, x665) = fiat_p384_addcarryx_u32(x663, x601, x639);
+-    let mut x666: u32 = 0;
+-    let mut x667: fiat_p384_u1 = 0;
+     let (x666, x667) = fiat_p384_addcarryx_u32(x665, x603, x641);
+-    let mut x668: u32 = 0;
+-    let mut x669: fiat_p384_u1 = 0;
+     let (x668, x669) = fiat_p384_addcarryx_u32(x667, x605, x643);
+     let x670: u32 = ((x669 as u32) + (x606 as u32));
+-    let mut x671: u32 = 0;
+-    let mut x672: u32 = 0;
+     let (x671, x672) = fiat_p384_mulx_u32(x5, (arg2[11]));
+-    let mut x673: u32 = 0;
+-    let mut x674: u32 = 0;
+     let (x673, x674) = fiat_p384_mulx_u32(x5, (arg2[10]));
+-    let mut x675: u32 = 0;
+-    let mut x676: u32 = 0;
+     let (x675, x676) = fiat_p384_mulx_u32(x5, (arg2[9]));
+-    let mut x677: u32 = 0;
+-    let mut x678: u32 = 0;
+     let (x677, x678) = fiat_p384_mulx_u32(x5, (arg2[8]));
+-    let mut x679: u32 = 0;
+-    let mut x680: u32 = 0;
+     let (x679, x680) = fiat_p384_mulx_u32(x5, (arg2[7]));
+-    let mut x681: u32 = 0;
+-    let mut x682: u32 = 0;
+     let (x681, x682) = fiat_p384_mulx_u32(x5, (arg2[6]));
+-    let mut x683: u32 = 0;
+-    let mut x684: u32 = 0;
+     let (x683, x684) = fiat_p384_mulx_u32(x5, (arg2[5]));
+-    let mut x685: u32 = 0;
+-    let mut x686: u32 = 0;
+     let (x685, x686) = fiat_p384_mulx_u32(x5, (arg2[4]));
+-    let mut x687: u32 = 0;
+-    let mut x688: u32 = 0;
+     let (x687, x688) = fiat_p384_mulx_u32(x5, (arg2[3]));
+-    let mut x689: u32 = 0;
+-    let mut x690: u32 = 0;
+     let (x689, x690) = fiat_p384_mulx_u32(x5, (arg2[2]));
+-    let mut x691: u32 = 0;
+-    let mut x692: u32 = 0;
+     let (x691, x692) = fiat_p384_mulx_u32(x5, (arg2[1]));
+-    let mut x693: u32 = 0;
+-    let mut x694: u32 = 0;
+     let (x693, x694) = fiat_p384_mulx_u32(x5, (arg2[0]));
+-    let mut x695: u32 = 0;
+-    let mut x696: fiat_p384_u1 = 0;
+     let (x695, x696) = fiat_p384_addcarryx_u32(0x0, x694, x691);
+-    let mut x697: u32 = 0;
+-    let mut x698: fiat_p384_u1 = 0;
+     let (x697, x698) = fiat_p384_addcarryx_u32(x696, x692, x689);
+-    let mut x699: u32 = 0;
+-    let mut x700: fiat_p384_u1 = 0;
+     let (x699, x700) = fiat_p384_addcarryx_u32(x698, x690, x687);
+-    let mut x701: u32 = 0;
+-    let mut x702: fiat_p384_u1 = 0;
+     let (x701, x702) = fiat_p384_addcarryx_u32(x700, x688, x685);
+-    let mut x703: u32 = 0;
+-    let mut x704: fiat_p384_u1 = 0;
+     let (x703, x704) = fiat_p384_addcarryx_u32(x702, x686, x683);
+-    let mut x705: u32 = 0;
+-    let mut x706: fiat_p384_u1 = 0;
+     let (x705, x706) = fiat_p384_addcarryx_u32(x704, x684, x681);
+-    let mut x707: u32 = 0;
+-    let mut x708: fiat_p384_u1 = 0;
+     let (x707, x708) = fiat_p384_addcarryx_u32(x706, x682, x679);
+-    let mut x709: u32 = 0;
+-    let mut x710: fiat_p384_u1 = 0;
+     let (x709, x710) = fiat_p384_addcarryx_u32(x708, x680, x677);
+-    let mut x711: u32 = 0;
+-    let mut x712: fiat_p384_u1 = 0;
+     let (x711, x712) = fiat_p384_addcarryx_u32(x710, x678, x675);
+-    let mut x713: u32 = 0;
+-    let mut x714: fiat_p384_u1 = 0;
+     let (x713, x714) = fiat_p384_addcarryx_u32(x712, x676, x673);
+-    let mut x715: u32 = 0;
+-    let mut x716: fiat_p384_u1 = 0;
+     let (x715, x716) = fiat_p384_addcarryx_u32(x714, x674, x671);
+     let x717: u32 = ((x716 as u32) + x672);
+-    let mut x718: u32 = 0;
+-    let mut x719: fiat_p384_u1 = 0;
+     let (x718, x719) = fiat_p384_addcarryx_u32(0x0, x646, x693);
+-    let mut x720: u32 = 0;
+-    let mut x721: fiat_p384_u1 = 0;
+     let (x720, x721) = fiat_p384_addcarryx_u32(x719, x648, x695);
+-    let mut x722: u32 = 0;
+-    let mut x723: fiat_p384_u1 = 0;
+     let (x722, x723) = fiat_p384_addcarryx_u32(x721, x650, x697);
+-    let mut x724: u32 = 0;
+-    let mut x725: fiat_p384_u1 = 0;
+     let (x724, x725) = fiat_p384_addcarryx_u32(x723, x652, x699);
+-    let mut x726: u32 = 0;
+-    let mut x727: fiat_p384_u1 = 0;
+     let (x726, x727) = fiat_p384_addcarryx_u32(x725, x654, x701);
+-    let mut x728: u32 = 0;
+-    let mut x729: fiat_p384_u1 = 0;
+     let (x728, x729) = fiat_p384_addcarryx_u32(x727, x656, x703);
+-    let mut x730: u32 = 0;
+-    let mut x731: fiat_p384_u1 = 0;
+     let (x730, x731) = fiat_p384_addcarryx_u32(x729, x658, x705);
+-    let mut x732: u32 = 0;
+-    let mut x733: fiat_p384_u1 = 0;
+     let (x732, x733) = fiat_p384_addcarryx_u32(x731, x660, x707);
+-    let mut x734: u32 = 0;
+-    let mut x735: fiat_p384_u1 = 0;
+     let (x734, x735) = fiat_p384_addcarryx_u32(x733, x662, x709);
+-    let mut x736: u32 = 0;
+-    let mut x737: fiat_p384_u1 = 0;
+     let (x736, x737) = fiat_p384_addcarryx_u32(x735, x664, x711);
+-    let mut x738: u32 = 0;
+-    let mut x739: fiat_p384_u1 = 0;
+     let (x738, x739) = fiat_p384_addcarryx_u32(x737, x666, x713);
+-    let mut x740: u32 = 0;
+-    let mut x741: fiat_p384_u1 = 0;
+     let (x740, x741) = fiat_p384_addcarryx_u32(x739, x668, x715);
+-    let mut x742: u32 = 0;
+-    let mut x743: fiat_p384_u1 = 0;
+     let (x742, x743) = fiat_p384_addcarryx_u32(x741, x670, x717);
+-    let mut x744: u32 = 0;
+-    let mut x745: u32 = 0;
+     let (x744, x745) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x746: u32 = 0;
+-    let mut x747: u32 = 0;
+     let (x746, x747) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x748: u32 = 0;
+-    let mut x749: u32 = 0;
+     let (x748, x749) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x750: u32 = 0;
+-    let mut x751: u32 = 0;
+     let (x750, x751) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x752: u32 = 0;
+-    let mut x753: u32 = 0;
+     let (x752, x753) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x754: u32 = 0;
+-    let mut x755: u32 = 0;
+     let (x754, x755) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x756: u32 = 0;
+-    let mut x757: u32 = 0;
+     let (x756, x757) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x758: u32 = 0;
+-    let mut x759: u32 = 0;
+     let (x758, x759) = fiat_p384_mulx_u32(x718, 0xfffffffe);
+-    let mut x760: u32 = 0;
+-    let mut x761: u32 = 0;
+     let (x760, x761) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x762: u32 = 0;
+-    let mut x763: u32 = 0;
+     let (x762, x763) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x764: u32 = 0;
+-    let mut x765: fiat_p384_u1 = 0;
+     let (x764, x765) = fiat_p384_addcarryx_u32(0x0, x761, x758);
+-    let mut x766: u32 = 0;
+-    let mut x767: fiat_p384_u1 = 0;
+     let (x766, x767) = fiat_p384_addcarryx_u32(x765, x759, x756);
+-    let mut x768: u32 = 0;
+-    let mut x769: fiat_p384_u1 = 0;
+     let (x768, x769) = fiat_p384_addcarryx_u32(x767, x757, x754);
+-    let mut x770: u32 = 0;
+-    let mut x771: fiat_p384_u1 = 0;
+     let (x770, x771) = fiat_p384_addcarryx_u32(x769, x755, x752);
+-    let mut x772: u32 = 0;
+-    let mut x773: fiat_p384_u1 = 0;
+     let (x772, x773) = fiat_p384_addcarryx_u32(x771, x753, x750);
+-    let mut x774: u32 = 0;
+-    let mut x775: fiat_p384_u1 = 0;
+     let (x774, x775) = fiat_p384_addcarryx_u32(x773, x751, x748);
+-    let mut x776: u32 = 0;
+-    let mut x777: fiat_p384_u1 = 0;
+     let (x776, x777) = fiat_p384_addcarryx_u32(x775, x749, x746);
+-    let mut x778: u32 = 0;
+-    let mut x779: fiat_p384_u1 = 0;
+     let (x778, x779) = fiat_p384_addcarryx_u32(x777, x747, x744);
+     let x780: u32 = ((x779 as u32) + x745);
+-    let mut x781: u32 = 0;
+-    let mut x782: fiat_p384_u1 = 0;
+     let (x781, x782) = fiat_p384_addcarryx_u32(0x0, x718, x762);
+-    let mut x783: u32 = 0;
+-    let mut x784: fiat_p384_u1 = 0;
+     let (x783, x784) = fiat_p384_addcarryx_u32(x782, x720, x763);
+-    let mut x785: u32 = 0;
+-    let mut x786: fiat_p384_u1 = 0;
+     let (x785, x786) = fiat_p384_addcarryx_u32(x784, x722, (0x0 as u32));
+-    let mut x787: u32 = 0;
+-    let mut x788: fiat_p384_u1 = 0;
+     let (x787, x788) = fiat_p384_addcarryx_u32(x786, x724, x760);
+-    let mut x789: u32 = 0;
+-    let mut x790: fiat_p384_u1 = 0;
+     let (x789, x790) = fiat_p384_addcarryx_u32(x788, x726, x764);
+-    let mut x791: u32 = 0;
+-    let mut x792: fiat_p384_u1 = 0;
+     let (x791, x792) = fiat_p384_addcarryx_u32(x790, x728, x766);
+-    let mut x793: u32 = 0;
+-    let mut x794: fiat_p384_u1 = 0;
+     let (x793, x794) = fiat_p384_addcarryx_u32(x792, x730, x768);
+-    let mut x795: u32 = 0;
+-    let mut x796: fiat_p384_u1 = 0;
+     let (x795, x796) = fiat_p384_addcarryx_u32(x794, x732, x770);
+-    let mut x797: u32 = 0;
+-    let mut x798: fiat_p384_u1 = 0;
+     let (x797, x798) = fiat_p384_addcarryx_u32(x796, x734, x772);
+-    let mut x799: u32 = 0;
+-    let mut x800: fiat_p384_u1 = 0;
+     let (x799, x800) = fiat_p384_addcarryx_u32(x798, x736, x774);
+-    let mut x801: u32 = 0;
+-    let mut x802: fiat_p384_u1 = 0;
+     let (x801, x802) = fiat_p384_addcarryx_u32(x800, x738, x776);
+-    let mut x803: u32 = 0;
+-    let mut x804: fiat_p384_u1 = 0;
+     let (x803, x804) = fiat_p384_addcarryx_u32(x802, x740, x778);
+-    let mut x805: u32 = 0;
+-    let mut x806: fiat_p384_u1 = 0;
+     let (x805, x806) = fiat_p384_addcarryx_u32(x804, x742, x780);
+     let x807: u32 = ((x806 as u32) + (x743 as u32));
+-    let mut x808: u32 = 0;
+-    let mut x809: u32 = 0;
+     let (x808, x809) = fiat_p384_mulx_u32(x6, (arg2[11]));
+-    let mut x810: u32 = 0;
+-    let mut x811: u32 = 0;
+     let (x810, x811) = fiat_p384_mulx_u32(x6, (arg2[10]));
+-    let mut x812: u32 = 0;
+-    let mut x813: u32 = 0;
+     let (x812, x813) = fiat_p384_mulx_u32(x6, (arg2[9]));
+-    let mut x814: u32 = 0;
+-    let mut x815: u32 = 0;
+     let (x814, x815) = fiat_p384_mulx_u32(x6, (arg2[8]));
+-    let mut x816: u32 = 0;
+-    let mut x817: u32 = 0;
+     let (x816, x817) = fiat_p384_mulx_u32(x6, (arg2[7]));
+-    let mut x818: u32 = 0;
+-    let mut x819: u32 = 0;
+     let (x818, x819) = fiat_p384_mulx_u32(x6, (arg2[6]));
+-    let mut x820: u32 = 0;
+-    let mut x821: u32 = 0;
+     let (x820, x821) = fiat_p384_mulx_u32(x6, (arg2[5]));
+-    let mut x822: u32 = 0;
+-    let mut x823: u32 = 0;
+     let (x822, x823) = fiat_p384_mulx_u32(x6, (arg2[4]));
+-    let mut x824: u32 = 0;
+-    let mut x825: u32 = 0;
+     let (x824, x825) = fiat_p384_mulx_u32(x6, (arg2[3]));
+-    let mut x826: u32 = 0;
+-    let mut x827: u32 = 0;
+     let (x826, x827) = fiat_p384_mulx_u32(x6, (arg2[2]));
+-    let mut x828: u32 = 0;
+-    let mut x829: u32 = 0;
+     let (x828, x829) = fiat_p384_mulx_u32(x6, (arg2[1]));
+-    let mut x830: u32 = 0;
+-    let mut x831: u32 = 0;
+     let (x830, x831) = fiat_p384_mulx_u32(x6, (arg2[0]));
+-    let mut x832: u32 = 0;
+-    let mut x833: fiat_p384_u1 = 0;
+     let (x832, x833) = fiat_p384_addcarryx_u32(0x0, x831, x828);
+-    let mut x834: u32 = 0;
+-    let mut x835: fiat_p384_u1 = 0;
+     let (x834, x835) = fiat_p384_addcarryx_u32(x833, x829, x826);
+-    let mut x836: u32 = 0;
+-    let mut x837: fiat_p384_u1 = 0;
+     let (x836, x837) = fiat_p384_addcarryx_u32(x835, x827, x824);
+-    let mut x838: u32 = 0;
+-    let mut x839: fiat_p384_u1 = 0;
+     let (x838, x839) = fiat_p384_addcarryx_u32(x837, x825, x822);
+-    let mut x840: u32 = 0;
+-    let mut x841: fiat_p384_u1 = 0;
+     let (x840, x841) = fiat_p384_addcarryx_u32(x839, x823, x820);
+-    let mut x842: u32 = 0;
+-    let mut x843: fiat_p384_u1 = 0;
+     let (x842, x843) = fiat_p384_addcarryx_u32(x841, x821, x818);
+-    let mut x844: u32 = 0;
+-    let mut x845: fiat_p384_u1 = 0;
+     let (x844, x845) = fiat_p384_addcarryx_u32(x843, x819, x816);
+-    let mut x846: u32 = 0;
+-    let mut x847: fiat_p384_u1 = 0;
+     let (x846, x847) = fiat_p384_addcarryx_u32(x845, x817, x814);
+-    let mut x848: u32 = 0;
+-    let mut x849: fiat_p384_u1 = 0;
+     let (x848, x849) = fiat_p384_addcarryx_u32(x847, x815, x812);
+-    let mut x850: u32 = 0;
+-    let mut x851: fiat_p384_u1 = 0;
+     let (x850, x851) = fiat_p384_addcarryx_u32(x849, x813, x810);
+-    let mut x852: u32 = 0;
+-    let mut x853: fiat_p384_u1 = 0;
+     let (x852, x853) = fiat_p384_addcarryx_u32(x851, x811, x808);
+     let x854: u32 = ((x853 as u32) + x809);
+-    let mut x855: u32 = 0;
+-    let mut x856: fiat_p384_u1 = 0;
+     let (x855, x856) = fiat_p384_addcarryx_u32(0x0, x783, x830);
+-    let mut x857: u32 = 0;
+-    let mut x858: fiat_p384_u1 = 0;
+     let (x857, x858) = fiat_p384_addcarryx_u32(x856, x785, x832);
+-    let mut x859: u32 = 0;
+-    let mut x860: fiat_p384_u1 = 0;
+     let (x859, x860) = fiat_p384_addcarryx_u32(x858, x787, x834);
+-    let mut x861: u32 = 0;
+-    let mut x862: fiat_p384_u1 = 0;
+     let (x861, x862) = fiat_p384_addcarryx_u32(x860, x789, x836);
+-    let mut x863: u32 = 0;
+-    let mut x864: fiat_p384_u1 = 0;
+     let (x863, x864) = fiat_p384_addcarryx_u32(x862, x791, x838);
+-    let mut x865: u32 = 0;
+-    let mut x866: fiat_p384_u1 = 0;
+     let (x865, x866) = fiat_p384_addcarryx_u32(x864, x793, x840);
+-    let mut x867: u32 = 0;
+-    let mut x868: fiat_p384_u1 = 0;
+     let (x867, x868) = fiat_p384_addcarryx_u32(x866, x795, x842);
+-    let mut x869: u32 = 0;
+-    let mut x870: fiat_p384_u1 = 0;
+     let (x869, x870) = fiat_p384_addcarryx_u32(x868, x797, x844);
+-    let mut x871: u32 = 0;
+-    let mut x872: fiat_p384_u1 = 0;
+     let (x871, x872) = fiat_p384_addcarryx_u32(x870, x799, x846);
+-    let mut x873: u32 = 0;
+-    let mut x874: fiat_p384_u1 = 0;
+     let (x873, x874) = fiat_p384_addcarryx_u32(x872, x801, x848);
+-    let mut x875: u32 = 0;
+-    let mut x876: fiat_p384_u1 = 0;
+     let (x875, x876) = fiat_p384_addcarryx_u32(x874, x803, x850);
+-    let mut x877: u32 = 0;
+-    let mut x878: fiat_p384_u1 = 0;
+     let (x877, x878) = fiat_p384_addcarryx_u32(x876, x805, x852);
+-    let mut x879: u32 = 0;
+-    let mut x880: fiat_p384_u1 = 0;
+     let (x879, x880) = fiat_p384_addcarryx_u32(x878, x807, x854);
+-    let mut x881: u32 = 0;
+-    let mut x882: u32 = 0;
+     let (x881, x882) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x883: u32 = 0;
+-    let mut x884: u32 = 0;
+     let (x883, x884) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x885: u32 = 0;
+-    let mut x886: u32 = 0;
+     let (x885, x886) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x887: u32 = 0;
+-    let mut x888: u32 = 0;
+     let (x887, x888) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x889: u32 = 0;
+-    let mut x890: u32 = 0;
+     let (x889, x890) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x891: u32 = 0;
+-    let mut x892: u32 = 0;
+     let (x891, x892) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x893: u32 = 0;
+-    let mut x894: u32 = 0;
+     let (x893, x894) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x895: u32 = 0;
+-    let mut x896: u32 = 0;
+     let (x895, x896) = fiat_p384_mulx_u32(x855, 0xfffffffe);
+-    let mut x897: u32 = 0;
+-    let mut x898: u32 = 0;
+     let (x897, x898) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x899: u32 = 0;
+-    let mut x900: u32 = 0;
+     let (x899, x900) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x901: u32 = 0;
+-    let mut x902: fiat_p384_u1 = 0;
+     let (x901, x902) = fiat_p384_addcarryx_u32(0x0, x898, x895);
+-    let mut x903: u32 = 0;
+-    let mut x904: fiat_p384_u1 = 0;
+     let (x903, x904) = fiat_p384_addcarryx_u32(x902, x896, x893);
+-    let mut x905: u32 = 0;
+-    let mut x906: fiat_p384_u1 = 0;
+     let (x905, x906) = fiat_p384_addcarryx_u32(x904, x894, x891);
+-    let mut x907: u32 = 0;
+-    let mut x908: fiat_p384_u1 = 0;
+     let (x907, x908) = fiat_p384_addcarryx_u32(x906, x892, x889);
+-    let mut x909: u32 = 0;
+-    let mut x910: fiat_p384_u1 = 0;
+     let (x909, x910) = fiat_p384_addcarryx_u32(x908, x890, x887);
+-    let mut x911: u32 = 0;
+-    let mut x912: fiat_p384_u1 = 0;
+     let (x911, x912) = fiat_p384_addcarryx_u32(x910, x888, x885);
+-    let mut x913: u32 = 0;
+-    let mut x914: fiat_p384_u1 = 0;
+     let (x913, x914) = fiat_p384_addcarryx_u32(x912, x886, x883);
+-    let mut x915: u32 = 0;
+-    let mut x916: fiat_p384_u1 = 0;
+     let (x915, x916) = fiat_p384_addcarryx_u32(x914, x884, x881);
+     let x917: u32 = ((x916 as u32) + x882);
+-    let mut x918: u32 = 0;
+-    let mut x919: fiat_p384_u1 = 0;
+     let (x918, x919) = fiat_p384_addcarryx_u32(0x0, x855, x899);
+-    let mut x920: u32 = 0;
+-    let mut x921: fiat_p384_u1 = 0;
+     let (x920, x921) = fiat_p384_addcarryx_u32(x919, x857, x900);
+-    let mut x922: u32 = 0;
+-    let mut x923: fiat_p384_u1 = 0;
+     let (x922, x923) = fiat_p384_addcarryx_u32(x921, x859, (0x0 as u32));
+-    let mut x924: u32 = 0;
+-    let mut x925: fiat_p384_u1 = 0;
+     let (x924, x925) = fiat_p384_addcarryx_u32(x923, x861, x897);
+-    let mut x926: u32 = 0;
+-    let mut x927: fiat_p384_u1 = 0;
+     let (x926, x927) = fiat_p384_addcarryx_u32(x925, x863, x901);
+-    let mut x928: u32 = 0;
+-    let mut x929: fiat_p384_u1 = 0;
+     let (x928, x929) = fiat_p384_addcarryx_u32(x927, x865, x903);
+-    let mut x930: u32 = 0;
+-    let mut x931: fiat_p384_u1 = 0;
+     let (x930, x931) = fiat_p384_addcarryx_u32(x929, x867, x905);
+-    let mut x932: u32 = 0;
+-    let mut x933: fiat_p384_u1 = 0;
+     let (x932, x933) = fiat_p384_addcarryx_u32(x931, x869, x907);
+-    let mut x934: u32 = 0;
+-    let mut x935: fiat_p384_u1 = 0;
+     let (x934, x935) = fiat_p384_addcarryx_u32(x933, x871, x909);
+-    let mut x936: u32 = 0;
+-    let mut x937: fiat_p384_u1 = 0;
+     let (x936, x937) = fiat_p384_addcarryx_u32(x935, x873, x911);
+-    let mut x938: u32 = 0;
+-    let mut x939: fiat_p384_u1 = 0;
+     let (x938, x939) = fiat_p384_addcarryx_u32(x937, x875, x913);
+-    let mut x940: u32 = 0;
+-    let mut x941: fiat_p384_u1 = 0;
+     let (x940, x941) = fiat_p384_addcarryx_u32(x939, x877, x915);
+-    let mut x942: u32 = 0;
+-    let mut x943: fiat_p384_u1 = 0;
+     let (x942, x943) = fiat_p384_addcarryx_u32(x941, x879, x917);
+     let x944: u32 = ((x943 as u32) + (x880 as u32));
+-    let mut x945: u32 = 0;
+-    let mut x946: u32 = 0;
+     let (x945, x946) = fiat_p384_mulx_u32(x7, (arg2[11]));
+-    let mut x947: u32 = 0;
+-    let mut x948: u32 = 0;
+     let (x947, x948) = fiat_p384_mulx_u32(x7, (arg2[10]));
+-    let mut x949: u32 = 0;
+-    let mut x950: u32 = 0;
+     let (x949, x950) = fiat_p384_mulx_u32(x7, (arg2[9]));
+-    let mut x951: u32 = 0;
+-    let mut x952: u32 = 0;
+     let (x951, x952) = fiat_p384_mulx_u32(x7, (arg2[8]));
+-    let mut x953: u32 = 0;
+-    let mut x954: u32 = 0;
+     let (x953, x954) = fiat_p384_mulx_u32(x7, (arg2[7]));
+-    let mut x955: u32 = 0;
+-    let mut x956: u32 = 0;
+     let (x955, x956) = fiat_p384_mulx_u32(x7, (arg2[6]));
+-    let mut x957: u32 = 0;
+-    let mut x958: u32 = 0;
+     let (x957, x958) = fiat_p384_mulx_u32(x7, (arg2[5]));
+-    let mut x959: u32 = 0;
+-    let mut x960: u32 = 0;
+     let (x959, x960) = fiat_p384_mulx_u32(x7, (arg2[4]));
+-    let mut x961: u32 = 0;
+-    let mut x962: u32 = 0;
+     let (x961, x962) = fiat_p384_mulx_u32(x7, (arg2[3]));
+-    let mut x963: u32 = 0;
+-    let mut x964: u32 = 0;
+     let (x963, x964) = fiat_p384_mulx_u32(x7, (arg2[2]));
+-    let mut x965: u32 = 0;
+-    let mut x966: u32 = 0;
+     let (x965, x966) = fiat_p384_mulx_u32(x7, (arg2[1]));
+-    let mut x967: u32 = 0;
+-    let mut x968: u32 = 0;
+     let (x967, x968) = fiat_p384_mulx_u32(x7, (arg2[0]));
+-    let mut x969: u32 = 0;
+-    let mut x970: fiat_p384_u1 = 0;
+     let (x969, x970) = fiat_p384_addcarryx_u32(0x0, x968, x965);
+-    let mut x971: u32 = 0;
+-    let mut x972: fiat_p384_u1 = 0;
+     let (x971, x972) = fiat_p384_addcarryx_u32(x970, x966, x963);
+-    let mut x973: u32 = 0;
+-    let mut x974: fiat_p384_u1 = 0;
+     let (x973, x974) = fiat_p384_addcarryx_u32(x972, x964, x961);
+-    let mut x975: u32 = 0;
+-    let mut x976: fiat_p384_u1 = 0;
+     let (x975, x976) = fiat_p384_addcarryx_u32(x974, x962, x959);
+-    let mut x977: u32 = 0;
+-    let mut x978: fiat_p384_u1 = 0;
+     let (x977, x978) = fiat_p384_addcarryx_u32(x976, x960, x957);
+-    let mut x979: u32 = 0;
+-    let mut x980: fiat_p384_u1 = 0;
+     let (x979, x980) = fiat_p384_addcarryx_u32(x978, x958, x955);
+-    let mut x981: u32 = 0;
+-    let mut x982: fiat_p384_u1 = 0;
+     let (x981, x982) = fiat_p384_addcarryx_u32(x980, x956, x953);
+-    let mut x983: u32 = 0;
+-    let mut x984: fiat_p384_u1 = 0;
+     let (x983, x984) = fiat_p384_addcarryx_u32(x982, x954, x951);
+-    let mut x985: u32 = 0;
+-    let mut x986: fiat_p384_u1 = 0;
+     let (x985, x986) = fiat_p384_addcarryx_u32(x984, x952, x949);
+-    let mut x987: u32 = 0;
+-    let mut x988: fiat_p384_u1 = 0;
+     let (x987, x988) = fiat_p384_addcarryx_u32(x986, x950, x947);
+-    let mut x989: u32 = 0;
+-    let mut x990: fiat_p384_u1 = 0;
+     let (x989, x990) = fiat_p384_addcarryx_u32(x988, x948, x945);
+     let x991: u32 = ((x990 as u32) + x946);
+-    let mut x992: u32 = 0;
+-    let mut x993: fiat_p384_u1 = 0;
+     let (x992, x993) = fiat_p384_addcarryx_u32(0x0, x920, x967);
+-    let mut x994: u32 = 0;
+-    let mut x995: fiat_p384_u1 = 0;
+     let (x994, x995) = fiat_p384_addcarryx_u32(x993, x922, x969);
+-    let mut x996: u32 = 0;
+-    let mut x997: fiat_p384_u1 = 0;
+     let (x996, x997) = fiat_p384_addcarryx_u32(x995, x924, x971);
+-    let mut x998: u32 = 0;
+-    let mut x999: fiat_p384_u1 = 0;
+     let (x998, x999) = fiat_p384_addcarryx_u32(x997, x926, x973);
+-    let mut x1000: u32 = 0;
+-    let mut x1001: fiat_p384_u1 = 0;
+     let (x1000, x1001) = fiat_p384_addcarryx_u32(x999, x928, x975);
+-    let mut x1002: u32 = 0;
+-    let mut x1003: fiat_p384_u1 = 0;
+     let (x1002, x1003) = fiat_p384_addcarryx_u32(x1001, x930, x977);
+-    let mut x1004: u32 = 0;
+-    let mut x1005: fiat_p384_u1 = 0;
+     let (x1004, x1005) = fiat_p384_addcarryx_u32(x1003, x932, x979);
+-    let mut x1006: u32 = 0;
+-    let mut x1007: fiat_p384_u1 = 0;
+     let (x1006, x1007) = fiat_p384_addcarryx_u32(x1005, x934, x981);
+-    let mut x1008: u32 = 0;
+-    let mut x1009: fiat_p384_u1 = 0;
+     let (x1008, x1009) = fiat_p384_addcarryx_u32(x1007, x936, x983);
+-    let mut x1010: u32 = 0;
+-    let mut x1011: fiat_p384_u1 = 0;
+     let (x1010, x1011) = fiat_p384_addcarryx_u32(x1009, x938, x985);
+-    let mut x1012: u32 = 0;
+-    let mut x1013: fiat_p384_u1 = 0;
+     let (x1012, x1013) = fiat_p384_addcarryx_u32(x1011, x940, x987);
+-    let mut x1014: u32 = 0;
+-    let mut x1015: fiat_p384_u1 = 0;
+     let (x1014, x1015) = fiat_p384_addcarryx_u32(x1013, x942, x989);
+-    let mut x1016: u32 = 0;
+-    let mut x1017: fiat_p384_u1 = 0;
+     let (x1016, x1017) = fiat_p384_addcarryx_u32(x1015, x944, x991);
+-    let mut x1018: u32 = 0;
+-    let mut x1019: u32 = 0;
+     let (x1018, x1019) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1020: u32 = 0;
+-    let mut x1021: u32 = 0;
+     let (x1020, x1021) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1022: u32 = 0;
+-    let mut x1023: u32 = 0;
+     let (x1022, x1023) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1024: u32 = 0;
+-    let mut x1025: u32 = 0;
+     let (x1024, x1025) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1026: u32 = 0;
+-    let mut x1027: u32 = 0;
+     let (x1026, x1027) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1028: u32 = 0;
+-    let mut x1029: u32 = 0;
+     let (x1028, x1029) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1030: u32 = 0;
+-    let mut x1031: u32 = 0;
+     let (x1030, x1031) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1032: u32 = 0;
+-    let mut x1033: u32 = 0;
+     let (x1032, x1033) = fiat_p384_mulx_u32(x992, 0xfffffffe);
+-    let mut x1034: u32 = 0;
+-    let mut x1035: u32 = 0;
+     let (x1034, x1035) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1036: u32 = 0;
+-    let mut x1037: u32 = 0;
+     let (x1036, x1037) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1038: u32 = 0;
+-    let mut x1039: fiat_p384_u1 = 0;
+     let (x1038, x1039) = fiat_p384_addcarryx_u32(0x0, x1035, x1032);
+-    let mut x1040: u32 = 0;
+-    let mut x1041: fiat_p384_u1 = 0;
+     let (x1040, x1041) = fiat_p384_addcarryx_u32(x1039, x1033, x1030);
+-    let mut x1042: u32 = 0;
+-    let mut x1043: fiat_p384_u1 = 0;
+     let (x1042, x1043) = fiat_p384_addcarryx_u32(x1041, x1031, x1028);
+-    let mut x1044: u32 = 0;
+-    let mut x1045: fiat_p384_u1 = 0;
+     let (x1044, x1045) = fiat_p384_addcarryx_u32(x1043, x1029, x1026);
+-    let mut x1046: u32 = 0;
+-    let mut x1047: fiat_p384_u1 = 0;
+     let (x1046, x1047) = fiat_p384_addcarryx_u32(x1045, x1027, x1024);
+-    let mut x1048: u32 = 0;
+-    let mut x1049: fiat_p384_u1 = 0;
+     let (x1048, x1049) = fiat_p384_addcarryx_u32(x1047, x1025, x1022);
+-    let mut x1050: u32 = 0;
+-    let mut x1051: fiat_p384_u1 = 0;
+     let (x1050, x1051) = fiat_p384_addcarryx_u32(x1049, x1023, x1020);
+-    let mut x1052: u32 = 0;
+-    let mut x1053: fiat_p384_u1 = 0;
+     let (x1052, x1053) = fiat_p384_addcarryx_u32(x1051, x1021, x1018);
+     let x1054: u32 = ((x1053 as u32) + x1019);
+-    let mut x1055: u32 = 0;
+-    let mut x1056: fiat_p384_u1 = 0;
+     let (x1055, x1056) = fiat_p384_addcarryx_u32(0x0, x992, x1036);
+-    let mut x1057: u32 = 0;
+-    let mut x1058: fiat_p384_u1 = 0;
+     let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x994, x1037);
+-    let mut x1059: u32 = 0;
+-    let mut x1060: fiat_p384_u1 = 0;
+     let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x996, (0x0 as u32));
+-    let mut x1061: u32 = 0;
+-    let mut x1062: fiat_p384_u1 = 0;
+     let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x998, x1034);
+-    let mut x1063: u32 = 0;
+-    let mut x1064: fiat_p384_u1 = 0;
+     let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1000, x1038);
+-    let mut x1065: u32 = 0;
+-    let mut x1066: fiat_p384_u1 = 0;
+     let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1002, x1040);
+-    let mut x1067: u32 = 0;
+-    let mut x1068: fiat_p384_u1 = 0;
+     let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1004, x1042);
+-    let mut x1069: u32 = 0;
+-    let mut x1070: fiat_p384_u1 = 0;
+     let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1006, x1044);
+-    let mut x1071: u32 = 0;
+-    let mut x1072: fiat_p384_u1 = 0;
+     let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1008, x1046);
+-    let mut x1073: u32 = 0;
+-    let mut x1074: fiat_p384_u1 = 0;
+     let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1010, x1048);
+-    let mut x1075: u32 = 0;
+-    let mut x1076: fiat_p384_u1 = 0;
+     let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1012, x1050);
+-    let mut x1077: u32 = 0;
+-    let mut x1078: fiat_p384_u1 = 0;
+     let (x1077, x1078) = fiat_p384_addcarryx_u32(x1076, x1014, x1052);
+-    let mut x1079: u32 = 0;
+-    let mut x1080: fiat_p384_u1 = 0;
+     let (x1079, x1080) = fiat_p384_addcarryx_u32(x1078, x1016, x1054);
+     let x1081: u32 = ((x1080 as u32) + (x1017 as u32));
+-    let mut x1082: u32 = 0;
+-    let mut x1083: u32 = 0;
+     let (x1082, x1083) = fiat_p384_mulx_u32(x8, (arg2[11]));
+-    let mut x1084: u32 = 0;
+-    let mut x1085: u32 = 0;
+     let (x1084, x1085) = fiat_p384_mulx_u32(x8, (arg2[10]));
+-    let mut x1086: u32 = 0;
+-    let mut x1087: u32 = 0;
+     let (x1086, x1087) = fiat_p384_mulx_u32(x8, (arg2[9]));
+-    let mut x1088: u32 = 0;
+-    let mut x1089: u32 = 0;
+     let (x1088, x1089) = fiat_p384_mulx_u32(x8, (arg2[8]));
+-    let mut x1090: u32 = 0;
+-    let mut x1091: u32 = 0;
+     let (x1090, x1091) = fiat_p384_mulx_u32(x8, (arg2[7]));
+-    let mut x1092: u32 = 0;
+-    let mut x1093: u32 = 0;
+     let (x1092, x1093) = fiat_p384_mulx_u32(x8, (arg2[6]));
+-    let mut x1094: u32 = 0;
+-    let mut x1095: u32 = 0;
+     let (x1094, x1095) = fiat_p384_mulx_u32(x8, (arg2[5]));
+-    let mut x1096: u32 = 0;
+-    let mut x1097: u32 = 0;
+     let (x1096, x1097) = fiat_p384_mulx_u32(x8, (arg2[4]));
+-    let mut x1098: u32 = 0;
+-    let mut x1099: u32 = 0;
+     let (x1098, x1099) = fiat_p384_mulx_u32(x8, (arg2[3]));
+-    let mut x1100: u32 = 0;
+-    let mut x1101: u32 = 0;
+     let (x1100, x1101) = fiat_p384_mulx_u32(x8, (arg2[2]));
+-    let mut x1102: u32 = 0;
+-    let mut x1103: u32 = 0;
+     let (x1102, x1103) = fiat_p384_mulx_u32(x8, (arg2[1]));
+-    let mut x1104: u32 = 0;
+-    let mut x1105: u32 = 0;
+     let (x1104, x1105) = fiat_p384_mulx_u32(x8, (arg2[0]));
+-    let mut x1106: u32 = 0;
+-    let mut x1107: fiat_p384_u1 = 0;
+     let (x1106, x1107) = fiat_p384_addcarryx_u32(0x0, x1105, x1102);
+-    let mut x1108: u32 = 0;
+-    let mut x1109: fiat_p384_u1 = 0;
+     let (x1108, x1109) = fiat_p384_addcarryx_u32(x1107, x1103, x1100);
+-    let mut x1110: u32 = 0;
+-    let mut x1111: fiat_p384_u1 = 0;
+     let (x1110, x1111) = fiat_p384_addcarryx_u32(x1109, x1101, x1098);
+-    let mut x1112: u32 = 0;
+-    let mut x1113: fiat_p384_u1 = 0;
+     let (x1112, x1113) = fiat_p384_addcarryx_u32(x1111, x1099, x1096);
+-    let mut x1114: u32 = 0;
+-    let mut x1115: fiat_p384_u1 = 0;
+     let (x1114, x1115) = fiat_p384_addcarryx_u32(x1113, x1097, x1094);
+-    let mut x1116: u32 = 0;
+-    let mut x1117: fiat_p384_u1 = 0;
+     let (x1116, x1117) = fiat_p384_addcarryx_u32(x1115, x1095, x1092);
+-    let mut x1118: u32 = 0;
+-    let mut x1119: fiat_p384_u1 = 0;
+     let (x1118, x1119) = fiat_p384_addcarryx_u32(x1117, x1093, x1090);
+-    let mut x1120: u32 = 0;
+-    let mut x1121: fiat_p384_u1 = 0;
+     let (x1120, x1121) = fiat_p384_addcarryx_u32(x1119, x1091, x1088);
+-    let mut x1122: u32 = 0;
+-    let mut x1123: fiat_p384_u1 = 0;
+     let (x1122, x1123) = fiat_p384_addcarryx_u32(x1121, x1089, x1086);
+-    let mut x1124: u32 = 0;
+-    let mut x1125: fiat_p384_u1 = 0;
+     let (x1124, x1125) = fiat_p384_addcarryx_u32(x1123, x1087, x1084);
+-    let mut x1126: u32 = 0;
+-    let mut x1127: fiat_p384_u1 = 0;
+     let (x1126, x1127) = fiat_p384_addcarryx_u32(x1125, x1085, x1082);
+     let x1128: u32 = ((x1127 as u32) + x1083);
+-    let mut x1129: u32 = 0;
+-    let mut x1130: fiat_p384_u1 = 0;
+     let (x1129, x1130) = fiat_p384_addcarryx_u32(0x0, x1057, x1104);
+-    let mut x1131: u32 = 0;
+-    let mut x1132: fiat_p384_u1 = 0;
+     let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1059, x1106);
+-    let mut x1133: u32 = 0;
+-    let mut x1134: fiat_p384_u1 = 0;
+     let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1061, x1108);
+-    let mut x1135: u32 = 0;
+-    let mut x1136: fiat_p384_u1 = 0;
+     let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1063, x1110);
+-    let mut x1137: u32 = 0;
+-    let mut x1138: fiat_p384_u1 = 0;
+     let (x1137, x1138) = fiat_p384_addcarryx_u32(x1136, x1065, x1112);
+-    let mut x1139: u32 = 0;
+-    let mut x1140: fiat_p384_u1 = 0;
+     let (x1139, x1140) = fiat_p384_addcarryx_u32(x1138, x1067, x1114);
+-    let mut x1141: u32 = 0;
+-    let mut x1142: fiat_p384_u1 = 0;
+     let (x1141, x1142) = fiat_p384_addcarryx_u32(x1140, x1069, x1116);
+-    let mut x1143: u32 = 0;
+-    let mut x1144: fiat_p384_u1 = 0;
+     let (x1143, x1144) = fiat_p384_addcarryx_u32(x1142, x1071, x1118);
+-    let mut x1145: u32 = 0;
+-    let mut x1146: fiat_p384_u1 = 0;
+     let (x1145, x1146) = fiat_p384_addcarryx_u32(x1144, x1073, x1120);
+-    let mut x1147: u32 = 0;
+-    let mut x1148: fiat_p384_u1 = 0;
+     let (x1147, x1148) = fiat_p384_addcarryx_u32(x1146, x1075, x1122);
+-    let mut x1149: u32 = 0;
+-    let mut x1150: fiat_p384_u1 = 0;
+     let (x1149, x1150) = fiat_p384_addcarryx_u32(x1148, x1077, x1124);
+-    let mut x1151: u32 = 0;
+-    let mut x1152: fiat_p384_u1 = 0;
+     let (x1151, x1152) = fiat_p384_addcarryx_u32(x1150, x1079, x1126);
+-    let mut x1153: u32 = 0;
+-    let mut x1154: fiat_p384_u1 = 0;
+     let (x1153, x1154) = fiat_p384_addcarryx_u32(x1152, x1081, x1128);
+-    let mut x1155: u32 = 0;
+-    let mut x1156: u32 = 0;
+     let (x1155, x1156) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1157: u32 = 0;
+-    let mut x1158: u32 = 0;
+     let (x1157, x1158) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1159: u32 = 0;
+-    let mut x1160: u32 = 0;
+     let (x1159, x1160) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1161: u32 = 0;
+-    let mut x1162: u32 = 0;
+     let (x1161, x1162) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1163: u32 = 0;
+-    let mut x1164: u32 = 0;
+     let (x1163, x1164) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1165: u32 = 0;
+-    let mut x1166: u32 = 0;
+     let (x1165, x1166) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1167: u32 = 0;
+-    let mut x1168: u32 = 0;
+     let (x1167, x1168) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1169: u32 = 0;
+-    let mut x1170: u32 = 0;
+     let (x1169, x1170) = fiat_p384_mulx_u32(x1129, 0xfffffffe);
+-    let mut x1171: u32 = 0;
+-    let mut x1172: u32 = 0;
+     let (x1171, x1172) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1173: u32 = 0;
+-    let mut x1174: u32 = 0;
+     let (x1173, x1174) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1175: u32 = 0;
+-    let mut x1176: fiat_p384_u1 = 0;
+     let (x1175, x1176) = fiat_p384_addcarryx_u32(0x0, x1172, x1169);
+-    let mut x1177: u32 = 0;
+-    let mut x1178: fiat_p384_u1 = 0;
+     let (x1177, x1178) = fiat_p384_addcarryx_u32(x1176, x1170, x1167);
+-    let mut x1179: u32 = 0;
+-    let mut x1180: fiat_p384_u1 = 0;
+     let (x1179, x1180) = fiat_p384_addcarryx_u32(x1178, x1168, x1165);
+-    let mut x1181: u32 = 0;
+-    let mut x1182: fiat_p384_u1 = 0;
+     let (x1181, x1182) = fiat_p384_addcarryx_u32(x1180, x1166, x1163);
+-    let mut x1183: u32 = 0;
+-    let mut x1184: fiat_p384_u1 = 0;
+     let (x1183, x1184) = fiat_p384_addcarryx_u32(x1182, x1164, x1161);
+-    let mut x1185: u32 = 0;
+-    let mut x1186: fiat_p384_u1 = 0;
+     let (x1185, x1186) = fiat_p384_addcarryx_u32(x1184, x1162, x1159);
+-    let mut x1187: u32 = 0;
+-    let mut x1188: fiat_p384_u1 = 0;
+     let (x1187, x1188) = fiat_p384_addcarryx_u32(x1186, x1160, x1157);
+-    let mut x1189: u32 = 0;
+-    let mut x1190: fiat_p384_u1 = 0;
+     let (x1189, x1190) = fiat_p384_addcarryx_u32(x1188, x1158, x1155);
+     let x1191: u32 = ((x1190 as u32) + x1156);
+-    let mut x1192: u32 = 0;
+-    let mut x1193: fiat_p384_u1 = 0;
+     let (x1192, x1193) = fiat_p384_addcarryx_u32(0x0, x1129, x1173);
+-    let mut x1194: u32 = 0;
+-    let mut x1195: fiat_p384_u1 = 0;
+     let (x1194, x1195) = fiat_p384_addcarryx_u32(x1193, x1131, x1174);
+-    let mut x1196: u32 = 0;
+-    let mut x1197: fiat_p384_u1 = 0;
+     let (x1196, x1197) = fiat_p384_addcarryx_u32(x1195, x1133, (0x0 as u32));
+-    let mut x1198: u32 = 0;
+-    let mut x1199: fiat_p384_u1 = 0;
+     let (x1198, x1199) = fiat_p384_addcarryx_u32(x1197, x1135, x1171);
+-    let mut x1200: u32 = 0;
+-    let mut x1201: fiat_p384_u1 = 0;
+     let (x1200, x1201) = fiat_p384_addcarryx_u32(x1199, x1137, x1175);
+-    let mut x1202: u32 = 0;
+-    let mut x1203: fiat_p384_u1 = 0;
+     let (x1202, x1203) = fiat_p384_addcarryx_u32(x1201, x1139, x1177);
+-    let mut x1204: u32 = 0;
+-    let mut x1205: fiat_p384_u1 = 0;
+     let (x1204, x1205) = fiat_p384_addcarryx_u32(x1203, x1141, x1179);
+-    let mut x1206: u32 = 0;
+-    let mut x1207: fiat_p384_u1 = 0;
+     let (x1206, x1207) = fiat_p384_addcarryx_u32(x1205, x1143, x1181);
+-    let mut x1208: u32 = 0;
+-    let mut x1209: fiat_p384_u1 = 0;
+     let (x1208, x1209) = fiat_p384_addcarryx_u32(x1207, x1145, x1183);
+-    let mut x1210: u32 = 0;
+-    let mut x1211: fiat_p384_u1 = 0;
+     let (x1210, x1211) = fiat_p384_addcarryx_u32(x1209, x1147, x1185);
+-    let mut x1212: u32 = 0;
+-    let mut x1213: fiat_p384_u1 = 0;
+     let (x1212, x1213) = fiat_p384_addcarryx_u32(x1211, x1149, x1187);
+-    let mut x1214: u32 = 0;
+-    let mut x1215: fiat_p384_u1 = 0;
+     let (x1214, x1215) = fiat_p384_addcarryx_u32(x1213, x1151, x1189);
+-    let mut x1216: u32 = 0;
+-    let mut x1217: fiat_p384_u1 = 0;
+     let (x1216, x1217) = fiat_p384_addcarryx_u32(x1215, x1153, x1191);
+     let x1218: u32 = ((x1217 as u32) + (x1154 as u32));
+-    let mut x1219: u32 = 0;
+-    let mut x1220: u32 = 0;
+     let (x1219, x1220) = fiat_p384_mulx_u32(x9, (arg2[11]));
+-    let mut x1221: u32 = 0;
+-    let mut x1222: u32 = 0;
+     let (x1221, x1222) = fiat_p384_mulx_u32(x9, (arg2[10]));
+-    let mut x1223: u32 = 0;
+-    let mut x1224: u32 = 0;
+     let (x1223, x1224) = fiat_p384_mulx_u32(x9, (arg2[9]));
+-    let mut x1225: u32 = 0;
+-    let mut x1226: u32 = 0;
+     let (x1225, x1226) = fiat_p384_mulx_u32(x9, (arg2[8]));
+-    let mut x1227: u32 = 0;
+-    let mut x1228: u32 = 0;
+     let (x1227, x1228) = fiat_p384_mulx_u32(x9, (arg2[7]));
+-    let mut x1229: u32 = 0;
+-    let mut x1230: u32 = 0;
+     let (x1229, x1230) = fiat_p384_mulx_u32(x9, (arg2[6]));
+-    let mut x1231: u32 = 0;
+-    let mut x1232: u32 = 0;
+     let (x1231, x1232) = fiat_p384_mulx_u32(x9, (arg2[5]));
+-    let mut x1233: u32 = 0;
+-    let mut x1234: u32 = 0;
+     let (x1233, x1234) = fiat_p384_mulx_u32(x9, (arg2[4]));
+-    let mut x1235: u32 = 0;
+-    let mut x1236: u32 = 0;
+     let (x1235, x1236) = fiat_p384_mulx_u32(x9, (arg2[3]));
+-    let mut x1237: u32 = 0;
+-    let mut x1238: u32 = 0;
+     let (x1237, x1238) = fiat_p384_mulx_u32(x9, (arg2[2]));
+-    let mut x1239: u32 = 0;
+-    let mut x1240: u32 = 0;
+     let (x1239, x1240) = fiat_p384_mulx_u32(x9, (arg2[1]));
+-    let mut x1241: u32 = 0;
+-    let mut x1242: u32 = 0;
+     let (x1241, x1242) = fiat_p384_mulx_u32(x9, (arg2[0]));
+-    let mut x1243: u32 = 0;
+-    let mut x1244: fiat_p384_u1 = 0;
+     let (x1243, x1244) = fiat_p384_addcarryx_u32(0x0, x1242, x1239);
+-    let mut x1245: u32 = 0;
+-    let mut x1246: fiat_p384_u1 = 0;
+     let (x1245, x1246) = fiat_p384_addcarryx_u32(x1244, x1240, x1237);
+-    let mut x1247: u32 = 0;
+-    let mut x1248: fiat_p384_u1 = 0;
+     let (x1247, x1248) = fiat_p384_addcarryx_u32(x1246, x1238, x1235);
+-    let mut x1249: u32 = 0;
+-    let mut x1250: fiat_p384_u1 = 0;
+     let (x1249, x1250) = fiat_p384_addcarryx_u32(x1248, x1236, x1233);
+-    let mut x1251: u32 = 0;
+-    let mut x1252: fiat_p384_u1 = 0;
+     let (x1251, x1252) = fiat_p384_addcarryx_u32(x1250, x1234, x1231);
+-    let mut x1253: u32 = 0;
+-    let mut x1254: fiat_p384_u1 = 0;
+     let (x1253, x1254) = fiat_p384_addcarryx_u32(x1252, x1232, x1229);
+-    let mut x1255: u32 = 0;
+-    let mut x1256: fiat_p384_u1 = 0;
+     let (x1255, x1256) = fiat_p384_addcarryx_u32(x1254, x1230, x1227);
+-    let mut x1257: u32 = 0;
+-    let mut x1258: fiat_p384_u1 = 0;
+     let (x1257, x1258) = fiat_p384_addcarryx_u32(x1256, x1228, x1225);
+-    let mut x1259: u32 = 0;
+-    let mut x1260: fiat_p384_u1 = 0;
+     let (x1259, x1260) = fiat_p384_addcarryx_u32(x1258, x1226, x1223);
+-    let mut x1261: u32 = 0;
+-    let mut x1262: fiat_p384_u1 = 0;
+     let (x1261, x1262) = fiat_p384_addcarryx_u32(x1260, x1224, x1221);
+-    let mut x1263: u32 = 0;
+-    let mut x1264: fiat_p384_u1 = 0;
+     let (x1263, x1264) = fiat_p384_addcarryx_u32(x1262, x1222, x1219);
+     let x1265: u32 = ((x1264 as u32) + x1220);
+-    let mut x1266: u32 = 0;
+-    let mut x1267: fiat_p384_u1 = 0;
+     let (x1266, x1267) = fiat_p384_addcarryx_u32(0x0, x1194, x1241);
+-    let mut x1268: u32 = 0;
+-    let mut x1269: fiat_p384_u1 = 0;
+     let (x1268, x1269) = fiat_p384_addcarryx_u32(x1267, x1196, x1243);
+-    let mut x1270: u32 = 0;
+-    let mut x1271: fiat_p384_u1 = 0;
+     let (x1270, x1271) = fiat_p384_addcarryx_u32(x1269, x1198, x1245);
+-    let mut x1272: u32 = 0;
+-    let mut x1273: fiat_p384_u1 = 0;
+     let (x1272, x1273) = fiat_p384_addcarryx_u32(x1271, x1200, x1247);
+-    let mut x1274: u32 = 0;
+-    let mut x1275: fiat_p384_u1 = 0;
+     let (x1274, x1275) = fiat_p384_addcarryx_u32(x1273, x1202, x1249);
+-    let mut x1276: u32 = 0;
+-    let mut x1277: fiat_p384_u1 = 0;
+     let (x1276, x1277) = fiat_p384_addcarryx_u32(x1275, x1204, x1251);
+-    let mut x1278: u32 = 0;
+-    let mut x1279: fiat_p384_u1 = 0;
+     let (x1278, x1279) = fiat_p384_addcarryx_u32(x1277, x1206, x1253);
+-    let mut x1280: u32 = 0;
+-    let mut x1281: fiat_p384_u1 = 0;
+     let (x1280, x1281) = fiat_p384_addcarryx_u32(x1279, x1208, x1255);
+-    let mut x1282: u32 = 0;
+-    let mut x1283: fiat_p384_u1 = 0;
+     let (x1282, x1283) = fiat_p384_addcarryx_u32(x1281, x1210, x1257);
+-    let mut x1284: u32 = 0;
+-    let mut x1285: fiat_p384_u1 = 0;
+     let (x1284, x1285) = fiat_p384_addcarryx_u32(x1283, x1212, x1259);
+-    let mut x1286: u32 = 0;
+-    let mut x1287: fiat_p384_u1 = 0;
+     let (x1286, x1287) = fiat_p384_addcarryx_u32(x1285, x1214, x1261);
+-    let mut x1288: u32 = 0;
+-    let mut x1289: fiat_p384_u1 = 0;
+     let (x1288, x1289) = fiat_p384_addcarryx_u32(x1287, x1216, x1263);
+-    let mut x1290: u32 = 0;
+-    let mut x1291: fiat_p384_u1 = 0;
+     let (x1290, x1291) = fiat_p384_addcarryx_u32(x1289, x1218, x1265);
+-    let mut x1292: u32 = 0;
+-    let mut x1293: u32 = 0;
+     let (x1292, x1293) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1294: u32 = 0;
+-    let mut x1295: u32 = 0;
+     let (x1294, x1295) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1296: u32 = 0;
+-    let mut x1297: u32 = 0;
+     let (x1296, x1297) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1298: u32 = 0;
+-    let mut x1299: u32 = 0;
+     let (x1298, x1299) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1300: u32 = 0;
+-    let mut x1301: u32 = 0;
+     let (x1300, x1301) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1302: u32 = 0;
+-    let mut x1303: u32 = 0;
+     let (x1302, x1303) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1304: u32 = 0;
+-    let mut x1305: u32 = 0;
+     let (x1304, x1305) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1306: u32 = 0;
+-    let mut x1307: u32 = 0;
+     let (x1306, x1307) = fiat_p384_mulx_u32(x1266, 0xfffffffe);
+-    let mut x1308: u32 = 0;
+-    let mut x1309: u32 = 0;
+     let (x1308, x1309) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1310: u32 = 0;
+-    let mut x1311: u32 = 0;
+     let (x1310, x1311) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1312: u32 = 0;
+-    let mut x1313: fiat_p384_u1 = 0;
+     let (x1312, x1313) = fiat_p384_addcarryx_u32(0x0, x1309, x1306);
+-    let mut x1314: u32 = 0;
+-    let mut x1315: fiat_p384_u1 = 0;
+     let (x1314, x1315) = fiat_p384_addcarryx_u32(x1313, x1307, x1304);
+-    let mut x1316: u32 = 0;
+-    let mut x1317: fiat_p384_u1 = 0;
+     let (x1316, x1317) = fiat_p384_addcarryx_u32(x1315, x1305, x1302);
+-    let mut x1318: u32 = 0;
+-    let mut x1319: fiat_p384_u1 = 0;
+     let (x1318, x1319) = fiat_p384_addcarryx_u32(x1317, x1303, x1300);
+-    let mut x1320: u32 = 0;
+-    let mut x1321: fiat_p384_u1 = 0;
+     let (x1320, x1321) = fiat_p384_addcarryx_u32(x1319, x1301, x1298);
+-    let mut x1322: u32 = 0;
+-    let mut x1323: fiat_p384_u1 = 0;
+     let (x1322, x1323) = fiat_p384_addcarryx_u32(x1321, x1299, x1296);
+-    let mut x1324: u32 = 0;
+-    let mut x1325: fiat_p384_u1 = 0;
+     let (x1324, x1325) = fiat_p384_addcarryx_u32(x1323, x1297, x1294);
+-    let mut x1326: u32 = 0;
+-    let mut x1327: fiat_p384_u1 = 0;
+     let (x1326, x1327) = fiat_p384_addcarryx_u32(x1325, x1295, x1292);
+     let x1328: u32 = ((x1327 as u32) + x1293);
+-    let mut x1329: u32 = 0;
+-    let mut x1330: fiat_p384_u1 = 0;
+     let (x1329, x1330) = fiat_p384_addcarryx_u32(0x0, x1266, x1310);
+-    let mut x1331: u32 = 0;
+-    let mut x1332: fiat_p384_u1 = 0;
+     let (x1331, x1332) = fiat_p384_addcarryx_u32(x1330, x1268, x1311);
+-    let mut x1333: u32 = 0;
+-    let mut x1334: fiat_p384_u1 = 0;
+     let (x1333, x1334) = fiat_p384_addcarryx_u32(x1332, x1270, (0x0 as u32));
+-    let mut x1335: u32 = 0;
+-    let mut x1336: fiat_p384_u1 = 0;
+     let (x1335, x1336) = fiat_p384_addcarryx_u32(x1334, x1272, x1308);
+-    let mut x1337: u32 = 0;
+-    let mut x1338: fiat_p384_u1 = 0;
+     let (x1337, x1338) = fiat_p384_addcarryx_u32(x1336, x1274, x1312);
+-    let mut x1339: u32 = 0;
+-    let mut x1340: fiat_p384_u1 = 0;
+     let (x1339, x1340) = fiat_p384_addcarryx_u32(x1338, x1276, x1314);
+-    let mut x1341: u32 = 0;
+-    let mut x1342: fiat_p384_u1 = 0;
+     let (x1341, x1342) = fiat_p384_addcarryx_u32(x1340, x1278, x1316);
+-    let mut x1343: u32 = 0;
+-    let mut x1344: fiat_p384_u1 = 0;
+     let (x1343, x1344) = fiat_p384_addcarryx_u32(x1342, x1280, x1318);
+-    let mut x1345: u32 = 0;
+-    let mut x1346: fiat_p384_u1 = 0;
+     let (x1345, x1346) = fiat_p384_addcarryx_u32(x1344, x1282, x1320);
+-    let mut x1347: u32 = 0;
+-    let mut x1348: fiat_p384_u1 = 0;
+     let (x1347, x1348) = fiat_p384_addcarryx_u32(x1346, x1284, x1322);
+-    let mut x1349: u32 = 0;
+-    let mut x1350: fiat_p384_u1 = 0;
+     let (x1349, x1350) = fiat_p384_addcarryx_u32(x1348, x1286, x1324);
+-    let mut x1351: u32 = 0;
+-    let mut x1352: fiat_p384_u1 = 0;
+     let (x1351, x1352) = fiat_p384_addcarryx_u32(x1350, x1288, x1326);
+-    let mut x1353: u32 = 0;
+-    let mut x1354: fiat_p384_u1 = 0;
+     let (x1353, x1354) = fiat_p384_addcarryx_u32(x1352, x1290, x1328);
+     let x1355: u32 = ((x1354 as u32) + (x1291 as u32));
+-    let mut x1356: u32 = 0;
+-    let mut x1357: u32 = 0;
+     let (x1356, x1357) = fiat_p384_mulx_u32(x10, (arg2[11]));
+-    let mut x1358: u32 = 0;
+-    let mut x1359: u32 = 0;
+     let (x1358, x1359) = fiat_p384_mulx_u32(x10, (arg2[10]));
+-    let mut x1360: u32 = 0;
+-    let mut x1361: u32 = 0;
+     let (x1360, x1361) = fiat_p384_mulx_u32(x10, (arg2[9]));
+-    let mut x1362: u32 = 0;
+-    let mut x1363: u32 = 0;
+     let (x1362, x1363) = fiat_p384_mulx_u32(x10, (arg2[8]));
+-    let mut x1364: u32 = 0;
+-    let mut x1365: u32 = 0;
+     let (x1364, x1365) = fiat_p384_mulx_u32(x10, (arg2[7]));
+-    let mut x1366: u32 = 0;
+-    let mut x1367: u32 = 0;
+     let (x1366, x1367) = fiat_p384_mulx_u32(x10, (arg2[6]));
+-    let mut x1368: u32 = 0;
+-    let mut x1369: u32 = 0;
+     let (x1368, x1369) = fiat_p384_mulx_u32(x10, (arg2[5]));
+-    let mut x1370: u32 = 0;
+-    let mut x1371: u32 = 0;
+     let (x1370, x1371) = fiat_p384_mulx_u32(x10, (arg2[4]));
+-    let mut x1372: u32 = 0;
+-    let mut x1373: u32 = 0;
+     let (x1372, x1373) = fiat_p384_mulx_u32(x10, (arg2[3]));
+-    let mut x1374: u32 = 0;
+-    let mut x1375: u32 = 0;
+     let (x1374, x1375) = fiat_p384_mulx_u32(x10, (arg2[2]));
+-    let mut x1376: u32 = 0;
+-    let mut x1377: u32 = 0;
+     let (x1376, x1377) = fiat_p384_mulx_u32(x10, (arg2[1]));
+-    let mut x1378: u32 = 0;
+-    let mut x1379: u32 = 0;
+     let (x1378, x1379) = fiat_p384_mulx_u32(x10, (arg2[0]));
+-    let mut x1380: u32 = 0;
+-    let mut x1381: fiat_p384_u1 = 0;
+     let (x1380, x1381) = fiat_p384_addcarryx_u32(0x0, x1379, x1376);
+-    let mut x1382: u32 = 0;
+-    let mut x1383: fiat_p384_u1 = 0;
+     let (x1382, x1383) = fiat_p384_addcarryx_u32(x1381, x1377, x1374);
+-    let mut x1384: u32 = 0;
+-    let mut x1385: fiat_p384_u1 = 0;
+     let (x1384, x1385) = fiat_p384_addcarryx_u32(x1383, x1375, x1372);
+-    let mut x1386: u32 = 0;
+-    let mut x1387: fiat_p384_u1 = 0;
+     let (x1386, x1387) = fiat_p384_addcarryx_u32(x1385, x1373, x1370);
+-    let mut x1388: u32 = 0;
+-    let mut x1389: fiat_p384_u1 = 0;
+     let (x1388, x1389) = fiat_p384_addcarryx_u32(x1387, x1371, x1368);
+-    let mut x1390: u32 = 0;
+-    let mut x1391: fiat_p384_u1 = 0;
+     let (x1390, x1391) = fiat_p384_addcarryx_u32(x1389, x1369, x1366);
+-    let mut x1392: u32 = 0;
+-    let mut x1393: fiat_p384_u1 = 0;
+     let (x1392, x1393) = fiat_p384_addcarryx_u32(x1391, x1367, x1364);
+-    let mut x1394: u32 = 0;
+-    let mut x1395: fiat_p384_u1 = 0;
+     let (x1394, x1395) = fiat_p384_addcarryx_u32(x1393, x1365, x1362);
+-    let mut x1396: u32 = 0;
+-    let mut x1397: fiat_p384_u1 = 0;
+     let (x1396, x1397) = fiat_p384_addcarryx_u32(x1395, x1363, x1360);
+-    let mut x1398: u32 = 0;
+-    let mut x1399: fiat_p384_u1 = 0;
+     let (x1398, x1399) = fiat_p384_addcarryx_u32(x1397, x1361, x1358);
+-    let mut x1400: u32 = 0;
+-    let mut x1401: fiat_p384_u1 = 0;
+     let (x1400, x1401) = fiat_p384_addcarryx_u32(x1399, x1359, x1356);
+     let x1402: u32 = ((x1401 as u32) + x1357);
+-    let mut x1403: u32 = 0;
+-    let mut x1404: fiat_p384_u1 = 0;
+     let (x1403, x1404) = fiat_p384_addcarryx_u32(0x0, x1331, x1378);
+-    let mut x1405: u32 = 0;
+-    let mut x1406: fiat_p384_u1 = 0;
+     let (x1405, x1406) = fiat_p384_addcarryx_u32(x1404, x1333, x1380);
+-    let mut x1407: u32 = 0;
+-    let mut x1408: fiat_p384_u1 = 0;
+     let (x1407, x1408) = fiat_p384_addcarryx_u32(x1406, x1335, x1382);
+-    let mut x1409: u32 = 0;
+-    let mut x1410: fiat_p384_u1 = 0;
+     let (x1409, x1410) = fiat_p384_addcarryx_u32(x1408, x1337, x1384);
+-    let mut x1411: u32 = 0;
+-    let mut x1412: fiat_p384_u1 = 0;
+     let (x1411, x1412) = fiat_p384_addcarryx_u32(x1410, x1339, x1386);
+-    let mut x1413: u32 = 0;
+-    let mut x1414: fiat_p384_u1 = 0;
+     let (x1413, x1414) = fiat_p384_addcarryx_u32(x1412, x1341, x1388);
+-    let mut x1415: u32 = 0;
+-    let mut x1416: fiat_p384_u1 = 0;
+     let (x1415, x1416) = fiat_p384_addcarryx_u32(x1414, x1343, x1390);
+-    let mut x1417: u32 = 0;
+-    let mut x1418: fiat_p384_u1 = 0;
+     let (x1417, x1418) = fiat_p384_addcarryx_u32(x1416, x1345, x1392);
+-    let mut x1419: u32 = 0;
+-    let mut x1420: fiat_p384_u1 = 0;
+     let (x1419, x1420) = fiat_p384_addcarryx_u32(x1418, x1347, x1394);
+-    let mut x1421: u32 = 0;
+-    let mut x1422: fiat_p384_u1 = 0;
+     let (x1421, x1422) = fiat_p384_addcarryx_u32(x1420, x1349, x1396);
+-    let mut x1423: u32 = 0;
+-    let mut x1424: fiat_p384_u1 = 0;
+     let (x1423, x1424) = fiat_p384_addcarryx_u32(x1422, x1351, x1398);
+-    let mut x1425: u32 = 0;
+-    let mut x1426: fiat_p384_u1 = 0;
+     let (x1425, x1426) = fiat_p384_addcarryx_u32(x1424, x1353, x1400);
+-    let mut x1427: u32 = 0;
+-    let mut x1428: fiat_p384_u1 = 0;
+     let (x1427, x1428) = fiat_p384_addcarryx_u32(x1426, x1355, x1402);
+-    let mut x1429: u32 = 0;
+-    let mut x1430: u32 = 0;
+     let (x1429, x1430) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1431: u32 = 0;
+-    let mut x1432: u32 = 0;
+     let (x1431, x1432) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1433: u32 = 0;
+-    let mut x1434: u32 = 0;
+     let (x1433, x1434) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1435: u32 = 0;
+-    let mut x1436: u32 = 0;
+     let (x1435, x1436) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1437: u32 = 0;
+-    let mut x1438: u32 = 0;
+     let (x1437, x1438) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1439: u32 = 0;
+-    let mut x1440: u32 = 0;
+     let (x1439, x1440) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1441: u32 = 0;
+-    let mut x1442: u32 = 0;
+     let (x1441, x1442) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1443: u32 = 0;
+-    let mut x1444: u32 = 0;
+     let (x1443, x1444) = fiat_p384_mulx_u32(x1403, 0xfffffffe);
+-    let mut x1445: u32 = 0;
+-    let mut x1446: u32 = 0;
+     let (x1445, x1446) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1447: u32 = 0;
+-    let mut x1448: u32 = 0;
+     let (x1447, x1448) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1449: u32 = 0;
+-    let mut x1450: fiat_p384_u1 = 0;
+     let (x1449, x1450) = fiat_p384_addcarryx_u32(0x0, x1446, x1443);
+-    let mut x1451: u32 = 0;
+-    let mut x1452: fiat_p384_u1 = 0;
+     let (x1451, x1452) = fiat_p384_addcarryx_u32(x1450, x1444, x1441);
+-    let mut x1453: u32 = 0;
+-    let mut x1454: fiat_p384_u1 = 0;
+     let (x1453, x1454) = fiat_p384_addcarryx_u32(x1452, x1442, x1439);
+-    let mut x1455: u32 = 0;
+-    let mut x1456: fiat_p384_u1 = 0;
+     let (x1455, x1456) = fiat_p384_addcarryx_u32(x1454, x1440, x1437);
+-    let mut x1457: u32 = 0;
+-    let mut x1458: fiat_p384_u1 = 0;
+     let (x1457, x1458) = fiat_p384_addcarryx_u32(x1456, x1438, x1435);
+-    let mut x1459: u32 = 0;
+-    let mut x1460: fiat_p384_u1 = 0;
+     let (x1459, x1460) = fiat_p384_addcarryx_u32(x1458, x1436, x1433);
+-    let mut x1461: u32 = 0;
+-    let mut x1462: fiat_p384_u1 = 0;
+     let (x1461, x1462) = fiat_p384_addcarryx_u32(x1460, x1434, x1431);
+-    let mut x1463: u32 = 0;
+-    let mut x1464: fiat_p384_u1 = 0;
+     let (x1463, x1464) = fiat_p384_addcarryx_u32(x1462, x1432, x1429);
+     let x1465: u32 = ((x1464 as u32) + x1430);
+-    let mut x1466: u32 = 0;
+-    let mut x1467: fiat_p384_u1 = 0;
+     let (x1466, x1467) = fiat_p384_addcarryx_u32(0x0, x1403, x1447);
+-    let mut x1468: u32 = 0;
+-    let mut x1469: fiat_p384_u1 = 0;
+     let (x1468, x1469) = fiat_p384_addcarryx_u32(x1467, x1405, x1448);
+-    let mut x1470: u32 = 0;
+-    let mut x1471: fiat_p384_u1 = 0;
+     let (x1470, x1471) = fiat_p384_addcarryx_u32(x1469, x1407, (0x0 as u32));
+-    let mut x1472: u32 = 0;
+-    let mut x1473: fiat_p384_u1 = 0;
+     let (x1472, x1473) = fiat_p384_addcarryx_u32(x1471, x1409, x1445);
+-    let mut x1474: u32 = 0;
+-    let mut x1475: fiat_p384_u1 = 0;
+     let (x1474, x1475) = fiat_p384_addcarryx_u32(x1473, x1411, x1449);
+-    let mut x1476: u32 = 0;
+-    let mut x1477: fiat_p384_u1 = 0;
+     let (x1476, x1477) = fiat_p384_addcarryx_u32(x1475, x1413, x1451);
+-    let mut x1478: u32 = 0;
+-    let mut x1479: fiat_p384_u1 = 0;
+     let (x1478, x1479) = fiat_p384_addcarryx_u32(x1477, x1415, x1453);
+-    let mut x1480: u32 = 0;
+-    let mut x1481: fiat_p384_u1 = 0;
+     let (x1480, x1481) = fiat_p384_addcarryx_u32(x1479, x1417, x1455);
+-    let mut x1482: u32 = 0;
+-    let mut x1483: fiat_p384_u1 = 0;
+     let (x1482, x1483) = fiat_p384_addcarryx_u32(x1481, x1419, x1457);
+-    let mut x1484: u32 = 0;
+-    let mut x1485: fiat_p384_u1 = 0;
+     let (x1484, x1485) = fiat_p384_addcarryx_u32(x1483, x1421, x1459);
+-    let mut x1486: u32 = 0;
+-    let mut x1487: fiat_p384_u1 = 0;
+     let (x1486, x1487) = fiat_p384_addcarryx_u32(x1485, x1423, x1461);
+-    let mut x1488: u32 = 0;
+-    let mut x1489: fiat_p384_u1 = 0;
+     let (x1488, x1489) = fiat_p384_addcarryx_u32(x1487, x1425, x1463);
+-    let mut x1490: u32 = 0;
+-    let mut x1491: fiat_p384_u1 = 0;
+     let (x1490, x1491) = fiat_p384_addcarryx_u32(x1489, x1427, x1465);
+     let x1492: u32 = ((x1491 as u32) + (x1428 as u32));
+-    let mut x1493: u32 = 0;
+-    let mut x1494: u32 = 0;
+     let (x1493, x1494) = fiat_p384_mulx_u32(x11, (arg2[11]));
+-    let mut x1495: u32 = 0;
+-    let mut x1496: u32 = 0;
+     let (x1495, x1496) = fiat_p384_mulx_u32(x11, (arg2[10]));
+-    let mut x1497: u32 = 0;
+-    let mut x1498: u32 = 0;
+     let (x1497, x1498) = fiat_p384_mulx_u32(x11, (arg2[9]));
+-    let mut x1499: u32 = 0;
+-    let mut x1500: u32 = 0;
+     let (x1499, x1500) = fiat_p384_mulx_u32(x11, (arg2[8]));
+-    let mut x1501: u32 = 0;
+-    let mut x1502: u32 = 0;
+     let (x1501, x1502) = fiat_p384_mulx_u32(x11, (arg2[7]));
+-    let mut x1503: u32 = 0;
+-    let mut x1504: u32 = 0;
+     let (x1503, x1504) = fiat_p384_mulx_u32(x11, (arg2[6]));
+-    let mut x1505: u32 = 0;
+-    let mut x1506: u32 = 0;
+     let (x1505, x1506) = fiat_p384_mulx_u32(x11, (arg2[5]));
+-    let mut x1507: u32 = 0;
+-    let mut x1508: u32 = 0;
+     let (x1507, x1508) = fiat_p384_mulx_u32(x11, (arg2[4]));
+-    let mut x1509: u32 = 0;
+-    let mut x1510: u32 = 0;
+     let (x1509, x1510) = fiat_p384_mulx_u32(x11, (arg2[3]));
+-    let mut x1511: u32 = 0;
+-    let mut x1512: u32 = 0;
+     let (x1511, x1512) = fiat_p384_mulx_u32(x11, (arg2[2]));
+-    let mut x1513: u32 = 0;
+-    let mut x1514: u32 = 0;
+     let (x1513, x1514) = fiat_p384_mulx_u32(x11, (arg2[1]));
+-    let mut x1515: u32 = 0;
+-    let mut x1516: u32 = 0;
+     let (x1515, x1516) = fiat_p384_mulx_u32(x11, (arg2[0]));
+-    let mut x1517: u32 = 0;
+-    let mut x1518: fiat_p384_u1 = 0;
+     let (x1517, x1518) = fiat_p384_addcarryx_u32(0x0, x1516, x1513);
+-    let mut x1519: u32 = 0;
+-    let mut x1520: fiat_p384_u1 = 0;
+     let (x1519, x1520) = fiat_p384_addcarryx_u32(x1518, x1514, x1511);
+-    let mut x1521: u32 = 0;
+-    let mut x1522: fiat_p384_u1 = 0;
+     let (x1521, x1522) = fiat_p384_addcarryx_u32(x1520, x1512, x1509);
+-    let mut x1523: u32 = 0;
+-    let mut x1524: fiat_p384_u1 = 0;
+     let (x1523, x1524) = fiat_p384_addcarryx_u32(x1522, x1510, x1507);
+-    let mut x1525: u32 = 0;
+-    let mut x1526: fiat_p384_u1 = 0;
+     let (x1525, x1526) = fiat_p384_addcarryx_u32(x1524, x1508, x1505);
+-    let mut x1527: u32 = 0;
+-    let mut x1528: fiat_p384_u1 = 0;
+     let (x1527, x1528) = fiat_p384_addcarryx_u32(x1526, x1506, x1503);
+-    let mut x1529: u32 = 0;
+-    let mut x1530: fiat_p384_u1 = 0;
+     let (x1529, x1530) = fiat_p384_addcarryx_u32(x1528, x1504, x1501);
+-    let mut x1531: u32 = 0;
+-    let mut x1532: fiat_p384_u1 = 0;
+     let (x1531, x1532) = fiat_p384_addcarryx_u32(x1530, x1502, x1499);
+-    let mut x1533: u32 = 0;
+-    let mut x1534: fiat_p384_u1 = 0;
+     let (x1533, x1534) = fiat_p384_addcarryx_u32(x1532, x1500, x1497);
+-    let mut x1535: u32 = 0;
+-    let mut x1536: fiat_p384_u1 = 0;
+     let (x1535, x1536) = fiat_p384_addcarryx_u32(x1534, x1498, x1495);
+-    let mut x1537: u32 = 0;
+-    let mut x1538: fiat_p384_u1 = 0;
+     let (x1537, x1538) = fiat_p384_addcarryx_u32(x1536, x1496, x1493);
+     let x1539: u32 = ((x1538 as u32) + x1494);
+-    let mut x1540: u32 = 0;
+-    let mut x1541: fiat_p384_u1 = 0;
+     let (x1540, x1541) = fiat_p384_addcarryx_u32(0x0, x1468, x1515);
+-    let mut x1542: u32 = 0;
+-    let mut x1543: fiat_p384_u1 = 0;
+     let (x1542, x1543) = fiat_p384_addcarryx_u32(x1541, x1470, x1517);
+-    let mut x1544: u32 = 0;
+-    let mut x1545: fiat_p384_u1 = 0;
+     let (x1544, x1545) = fiat_p384_addcarryx_u32(x1543, x1472, x1519);
+-    let mut x1546: u32 = 0;
+-    let mut x1547: fiat_p384_u1 = 0;
+     let (x1546, x1547) = fiat_p384_addcarryx_u32(x1545, x1474, x1521);
+-    let mut x1548: u32 = 0;
+-    let mut x1549: fiat_p384_u1 = 0;
+     let (x1548, x1549) = fiat_p384_addcarryx_u32(x1547, x1476, x1523);
+-    let mut x1550: u32 = 0;
+-    let mut x1551: fiat_p384_u1 = 0;
+     let (x1550, x1551) = fiat_p384_addcarryx_u32(x1549, x1478, x1525);
+-    let mut x1552: u32 = 0;
+-    let mut x1553: fiat_p384_u1 = 0;
+     let (x1552, x1553) = fiat_p384_addcarryx_u32(x1551, x1480, x1527);
+-    let mut x1554: u32 = 0;
+-    let mut x1555: fiat_p384_u1 = 0;
+     let (x1554, x1555) = fiat_p384_addcarryx_u32(x1553, x1482, x1529);
+-    let mut x1556: u32 = 0;
+-    let mut x1557: fiat_p384_u1 = 0;
+     let (x1556, x1557) = fiat_p384_addcarryx_u32(x1555, x1484, x1531);
+-    let mut x1558: u32 = 0;
+-    let mut x1559: fiat_p384_u1 = 0;
+     let (x1558, x1559) = fiat_p384_addcarryx_u32(x1557, x1486, x1533);
+-    let mut x1560: u32 = 0;
+-    let mut x1561: fiat_p384_u1 = 0;
+     let (x1560, x1561) = fiat_p384_addcarryx_u32(x1559, x1488, x1535);
+-    let mut x1562: u32 = 0;
+-    let mut x1563: fiat_p384_u1 = 0;
+     let (x1562, x1563) = fiat_p384_addcarryx_u32(x1561, x1490, x1537);
+-    let mut x1564: u32 = 0;
+-    let mut x1565: fiat_p384_u1 = 0;
+     let (x1564, x1565) = fiat_p384_addcarryx_u32(x1563, x1492, x1539);
+-    let mut x1566: u32 = 0;
+-    let mut x1567: u32 = 0;
+     let (x1566, x1567) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1568: u32 = 0;
+-    let mut x1569: u32 = 0;
+     let (x1568, x1569) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1570: u32 = 0;
+-    let mut x1571: u32 = 0;
+     let (x1570, x1571) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1572: u32 = 0;
+-    let mut x1573: u32 = 0;
+     let (x1572, x1573) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1574: u32 = 0;
+-    let mut x1575: u32 = 0;
+     let (x1574, x1575) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1576: u32 = 0;
+-    let mut x1577: u32 = 0;
+     let (x1576, x1577) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1578: u32 = 0;
+-    let mut x1579: u32 = 0;
+     let (x1578, x1579) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1580: u32 = 0;
+-    let mut x1581: u32 = 0;
+     let (x1580, x1581) = fiat_p384_mulx_u32(x1540, 0xfffffffe);
+-    let mut x1582: u32 = 0;
+-    let mut x1583: u32 = 0;
+     let (x1582, x1583) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1584: u32 = 0;
+-    let mut x1585: u32 = 0;
+     let (x1584, x1585) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1586: u32 = 0;
+-    let mut x1587: fiat_p384_u1 = 0;
+     let (x1586, x1587) = fiat_p384_addcarryx_u32(0x0, x1583, x1580);
+-    let mut x1588: u32 = 0;
+-    let mut x1589: fiat_p384_u1 = 0;
+     let (x1588, x1589) = fiat_p384_addcarryx_u32(x1587, x1581, x1578);
+-    let mut x1590: u32 = 0;
+-    let mut x1591: fiat_p384_u1 = 0;
+     let (x1590, x1591) = fiat_p384_addcarryx_u32(x1589, x1579, x1576);
+-    let mut x1592: u32 = 0;
+-    let mut x1593: fiat_p384_u1 = 0;
+     let (x1592, x1593) = fiat_p384_addcarryx_u32(x1591, x1577, x1574);
+-    let mut x1594: u32 = 0;
+-    let mut x1595: fiat_p384_u1 = 0;
+     let (x1594, x1595) = fiat_p384_addcarryx_u32(x1593, x1575, x1572);
+-    let mut x1596: u32 = 0;
+-    let mut x1597: fiat_p384_u1 = 0;
+     let (x1596, x1597) = fiat_p384_addcarryx_u32(x1595, x1573, x1570);
+-    let mut x1598: u32 = 0;
+-    let mut x1599: fiat_p384_u1 = 0;
+     let (x1598, x1599) = fiat_p384_addcarryx_u32(x1597, x1571, x1568);
+-    let mut x1600: u32 = 0;
+-    let mut x1601: fiat_p384_u1 = 0;
+     let (x1600, x1601) = fiat_p384_addcarryx_u32(x1599, x1569, x1566);
+     let x1602: u32 = ((x1601 as u32) + x1567);
+-    let mut x1603: u32 = 0;
+-    let mut x1604: fiat_p384_u1 = 0;
+     let (x1603, x1604) = fiat_p384_addcarryx_u32(0x0, x1540, x1584);
+-    let mut x1605: u32 = 0;
+-    let mut x1606: fiat_p384_u1 = 0;
+     let (x1605, x1606) = fiat_p384_addcarryx_u32(x1604, x1542, x1585);
+-    let mut x1607: u32 = 0;
+-    let mut x1608: fiat_p384_u1 = 0;
+     let (x1607, x1608) = fiat_p384_addcarryx_u32(x1606, x1544, (0x0 as u32));
+-    let mut x1609: u32 = 0;
+-    let mut x1610: fiat_p384_u1 = 0;
+     let (x1609, x1610) = fiat_p384_addcarryx_u32(x1608, x1546, x1582);
+-    let mut x1611: u32 = 0;
+-    let mut x1612: fiat_p384_u1 = 0;
+     let (x1611, x1612) = fiat_p384_addcarryx_u32(x1610, x1548, x1586);
+-    let mut x1613: u32 = 0;
+-    let mut x1614: fiat_p384_u1 = 0;
+     let (x1613, x1614) = fiat_p384_addcarryx_u32(x1612, x1550, x1588);
+-    let mut x1615: u32 = 0;
+-    let mut x1616: fiat_p384_u1 = 0;
+     let (x1615, x1616) = fiat_p384_addcarryx_u32(x1614, x1552, x1590);
+-    let mut x1617: u32 = 0;
+-    let mut x1618: fiat_p384_u1 = 0;
+     let (x1617, x1618) = fiat_p384_addcarryx_u32(x1616, x1554, x1592);
+-    let mut x1619: u32 = 0;
+-    let mut x1620: fiat_p384_u1 = 0;
+     let (x1619, x1620) = fiat_p384_addcarryx_u32(x1618, x1556, x1594);
+-    let mut x1621: u32 = 0;
+-    let mut x1622: fiat_p384_u1 = 0;
+     let (x1621, x1622) = fiat_p384_addcarryx_u32(x1620, x1558, x1596);
+-    let mut x1623: u32 = 0;
+-    let mut x1624: fiat_p384_u1 = 0;
+     let (x1623, x1624) = fiat_p384_addcarryx_u32(x1622, x1560, x1598);
+-    let mut x1625: u32 = 0;
+-    let mut x1626: fiat_p384_u1 = 0;
+     let (x1625, x1626) = fiat_p384_addcarryx_u32(x1624, x1562, x1600);
+-    let mut x1627: u32 = 0;
+-    let mut x1628: fiat_p384_u1 = 0;
+     let (x1627, x1628) = fiat_p384_addcarryx_u32(x1626, x1564, x1602);
+     let x1629: u32 = ((x1628 as u32) + (x1565 as u32));
+-    let mut x1630: u32 = 0;
+-    let mut x1631: fiat_p384_u1 = 0;
+     let (x1630, x1631) = fiat_p384_subborrowx_u32(0x0, x1605, 0xffffffff);
+-    let mut x1632: u32 = 0;
+-    let mut x1633: fiat_p384_u1 = 0;
+     let (x1632, x1633) = fiat_p384_subborrowx_u32(x1631, x1607, (0x0 as u32));
+-    let mut x1634: u32 = 0;
+-    let mut x1635: fiat_p384_u1 = 0;
+     let (x1634, x1635) = fiat_p384_subborrowx_u32(x1633, x1609, (0x0 as u32));
+-    let mut x1636: u32 = 0;
+-    let mut x1637: fiat_p384_u1 = 0;
+     let (x1636, x1637) = fiat_p384_subborrowx_u32(x1635, x1611, 0xffffffff);
+-    let mut x1638: u32 = 0;
+-    let mut x1639: fiat_p384_u1 = 0;
+     let (x1638, x1639) = fiat_p384_subborrowx_u32(x1637, x1613, 0xfffffffe);
+-    let mut x1640: u32 = 0;
+-    let mut x1641: fiat_p384_u1 = 0;
+     let (x1640, x1641) = fiat_p384_subborrowx_u32(x1639, x1615, 0xffffffff);
+-    let mut x1642: u32 = 0;
+-    let mut x1643: fiat_p384_u1 = 0;
+     let (x1642, x1643) = fiat_p384_subborrowx_u32(x1641, x1617, 0xffffffff);
+-    let mut x1644: u32 = 0;
+-    let mut x1645: fiat_p384_u1 = 0;
+     let (x1644, x1645) = fiat_p384_subborrowx_u32(x1643, x1619, 0xffffffff);
+-    let mut x1646: u32 = 0;
+-    let mut x1647: fiat_p384_u1 = 0;
+     let (x1646, x1647) = fiat_p384_subborrowx_u32(x1645, x1621, 0xffffffff);
+-    let mut x1648: u32 = 0;
+-    let mut x1649: fiat_p384_u1 = 0;
+     let (x1648, x1649) = fiat_p384_subborrowx_u32(x1647, x1623, 0xffffffff);
+-    let mut x1650: u32 = 0;
+-    let mut x1651: fiat_p384_u1 = 0;
+     let (x1650, x1651) = fiat_p384_subborrowx_u32(x1649, x1625, 0xffffffff);
+-    let mut x1652: u32 = 0;
+-    let mut x1653: fiat_p384_u1 = 0;
+     let (x1652, x1653) = fiat_p384_subborrowx_u32(x1651, x1627, 0xffffffff);
+-    let mut x1654: u32 = 0;
+-    let mut x1655: fiat_p384_u1 = 0;
+     let (x1654, x1655) = fiat_p384_subborrowx_u32(x1653, x1629, (0x0 as u32));
+-    let mut x1656: u32 = 0;
+     let (x1656) = fiat_p384_cmovznz_u32(x1655, x1630, x1605);
+-    let mut x1657: u32 = 0;
+     let (x1657) = fiat_p384_cmovznz_u32(x1655, x1632, x1607);
+-    let mut x1658: u32 = 0;
+     let (x1658) = fiat_p384_cmovznz_u32(x1655, x1634, x1609);
+-    let mut x1659: u32 = 0;
+     let (x1659) = fiat_p384_cmovznz_u32(x1655, x1636, x1611);
+-    let mut x1660: u32 = 0;
+     let (x1660) = fiat_p384_cmovznz_u32(x1655, x1638, x1613);
+-    let mut x1661: u32 = 0;
+     let (x1661) = fiat_p384_cmovznz_u32(x1655, x1640, x1615);
+-    let mut x1662: u32 = 0;
+     let (x1662) = fiat_p384_cmovznz_u32(x1655, x1642, x1617);
+-    let mut x1663: u32 = 0;
+     let (x1663) = fiat_p384_cmovznz_u32(x1655, x1644, x1619);
+-    let mut x1664: u32 = 0;
+     let (x1664) = fiat_p384_cmovznz_u32(x1655, x1646, x1621);
+-    let mut x1665: u32 = 0;
+     let (x1665) = fiat_p384_cmovznz_u32(x1655, x1648, x1623);
+-    let mut x1666: u32 = 0;
+     let (x1666) = fiat_p384_cmovznz_u32(x1655, x1650, x1625);
+-    let mut x1667: u32 = 0;
+     let (x1667) = fiat_p384_cmovznz_u32(x1655, x1652, x1627);
+     out1[0] = x1656;
+     out1[1] = x1657;
+@@ -2670,2476 +1050,856 @@ pub const fn fiat_p384_square(
+     let x10: u32 = (arg1[10]);
+     let x11: u32 = (arg1[11]);
+     let x12: u32 = (arg1[0]);
+-    let mut x13: u32 = 0;
+-    let mut x14: u32 = 0;
+     let (x13, x14) = fiat_p384_mulx_u32(x12, (arg1[11]));
+-    let mut x15: u32 = 0;
+-    let mut x16: u32 = 0;
+     let (x15, x16) = fiat_p384_mulx_u32(x12, (arg1[10]));
+-    let mut x17: u32 = 0;
+-    let mut x18: u32 = 0;
+     let (x17, x18) = fiat_p384_mulx_u32(x12, (arg1[9]));
+-    let mut x19: u32 = 0;
+-    let mut x20: u32 = 0;
+     let (x19, x20) = fiat_p384_mulx_u32(x12, (arg1[8]));
+-    let mut x21: u32 = 0;
+-    let mut x22: u32 = 0;
+     let (x21, x22) = fiat_p384_mulx_u32(x12, (arg1[7]));
+-    let mut x23: u32 = 0;
+-    let mut x24: u32 = 0;
+     let (x23, x24) = fiat_p384_mulx_u32(x12, (arg1[6]));
+-    let mut x25: u32 = 0;
+-    let mut x26: u32 = 0;
+     let (x25, x26) = fiat_p384_mulx_u32(x12, (arg1[5]));
+-    let mut x27: u32 = 0;
+-    let mut x28: u32 = 0;
+     let (x27, x28) = fiat_p384_mulx_u32(x12, (arg1[4]));
+-    let mut x29: u32 = 0;
+-    let mut x30: u32 = 0;
+     let (x29, x30) = fiat_p384_mulx_u32(x12, (arg1[3]));
+-    let mut x31: u32 = 0;
+-    let mut x32: u32 = 0;
+     let (x31, x32) = fiat_p384_mulx_u32(x12, (arg1[2]));
+-    let mut x33: u32 = 0;
+-    let mut x34: u32 = 0;
+     let (x33, x34) = fiat_p384_mulx_u32(x12, (arg1[1]));
+-    let mut x35: u32 = 0;
+-    let mut x36: u32 = 0;
+     let (x35, x36) = fiat_p384_mulx_u32(x12, (arg1[0]));
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_u1 = 0;
+     let (x37, x38) = fiat_p384_addcarryx_u32(0x0, x36, x33);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_u1 = 0;
+     let (x39, x40) = fiat_p384_addcarryx_u32(x38, x34, x31);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_u1 = 0;
+     let (x41, x42) = fiat_p384_addcarryx_u32(x40, x32, x29);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_u1 = 0;
+     let (x43, x44) = fiat_p384_addcarryx_u32(x42, x30, x27);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_u1 = 0;
+     let (x45, x46) = fiat_p384_addcarryx_u32(x44, x28, x25);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_u1 = 0;
+     let (x47, x48) = fiat_p384_addcarryx_u32(x46, x26, x23);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_u1 = 0;
+     let (x49, x50) = fiat_p384_addcarryx_u32(x48, x24, x21);
+-    let mut x51: u32 = 0;
+-    let mut x52: fiat_p384_u1 = 0;
+     let (x51, x52) = fiat_p384_addcarryx_u32(x50, x22, x19);
+-    let mut x53: u32 = 0;
+-    let mut x54: fiat_p384_u1 = 0;
+     let (x53, x54) = fiat_p384_addcarryx_u32(x52, x20, x17);
+-    let mut x55: u32 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_addcarryx_u32(x54, x18, x15);
+-    let mut x57: u32 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_addcarryx_u32(x56, x16, x13);
+     let x59: u32 = ((x58 as u32) + x14);
+-    let mut x60: u32 = 0;
+-    let mut x61: u32 = 0;
+     let (x60, x61) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x62: u32 = 0;
+-    let mut x63: u32 = 0;
+     let (x62, x63) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x64: u32 = 0;
+-    let mut x65: u32 = 0;
+     let (x64, x65) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x66: u32 = 0;
+-    let mut x67: u32 = 0;
+     let (x66, x67) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x68: u32 = 0;
+-    let mut x69: u32 = 0;
+     let (x68, x69) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x70: u32 = 0;
+-    let mut x71: u32 = 0;
+     let (x70, x71) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x72: u32 = 0;
+-    let mut x73: u32 = 0;
+     let (x72, x73) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x74: u32 = 0;
+-    let mut x75: u32 = 0;
+     let (x74, x75) = fiat_p384_mulx_u32(x35, 0xfffffffe);
+-    let mut x76: u32 = 0;
+-    let mut x77: u32 = 0;
+     let (x76, x77) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x78: u32 = 0;
+-    let mut x79: u32 = 0;
+     let (x78, x79) = fiat_p384_mulx_u32(x35, 0xffffffff);
+-    let mut x80: u32 = 0;
+-    let mut x81: fiat_p384_u1 = 0;
+     let (x80, x81) = fiat_p384_addcarryx_u32(0x0, x77, x74);
+-    let mut x82: u32 = 0;
+-    let mut x83: fiat_p384_u1 = 0;
+     let (x82, x83) = fiat_p384_addcarryx_u32(x81, x75, x72);
+-    let mut x84: u32 = 0;
+-    let mut x85: fiat_p384_u1 = 0;
+     let (x84, x85) = fiat_p384_addcarryx_u32(x83, x73, x70);
+-    let mut x86: u32 = 0;
+-    let mut x87: fiat_p384_u1 = 0;
+     let (x86, x87) = fiat_p384_addcarryx_u32(x85, x71, x68);
+-    let mut x88: u32 = 0;
+-    let mut x89: fiat_p384_u1 = 0;
+     let (x88, x89) = fiat_p384_addcarryx_u32(x87, x69, x66);
+-    let mut x90: u32 = 0;
+-    let mut x91: fiat_p384_u1 = 0;
+     let (x90, x91) = fiat_p384_addcarryx_u32(x89, x67, x64);
+-    let mut x92: u32 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u32(x91, x65, x62);
+-    let mut x94: u32 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u32(x93, x63, x60);
+     let x96: u32 = ((x95 as u32) + x61);
+-    let mut x97: u32 = 0;
+-    let mut x98: fiat_p384_u1 = 0;
+     let (x97, x98) = fiat_p384_addcarryx_u32(0x0, x35, x78);
+-    let mut x99: u32 = 0;
+-    let mut x100: fiat_p384_u1 = 0;
+     let (x99, x100) = fiat_p384_addcarryx_u32(x98, x37, x79);
+-    let mut x101: u32 = 0;
+-    let mut x102: fiat_p384_u1 = 0;
+     let (x101, x102) = fiat_p384_addcarryx_u32(x100, x39, (0x0 as u32));
+-    let mut x103: u32 = 0;
+-    let mut x104: fiat_p384_u1 = 0;
+     let (x103, x104) = fiat_p384_addcarryx_u32(x102, x41, x76);
+-    let mut x105: u32 = 0;
+-    let mut x106: fiat_p384_u1 = 0;
+     let (x105, x106) = fiat_p384_addcarryx_u32(x104, x43, x80);
+-    let mut x107: u32 = 0;
+-    let mut x108: fiat_p384_u1 = 0;
+     let (x107, x108) = fiat_p384_addcarryx_u32(x106, x45, x82);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_u1 = 0;
+     let (x109, x110) = fiat_p384_addcarryx_u32(x108, x47, x84);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_u1 = 0;
+     let (x111, x112) = fiat_p384_addcarryx_u32(x110, x49, x86);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_u1 = 0;
+     let (x113, x114) = fiat_p384_addcarryx_u32(x112, x51, x88);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_u1 = 0;
+     let (x115, x116) = fiat_p384_addcarryx_u32(x114, x53, x90);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_u1 = 0;
+     let (x117, x118) = fiat_p384_addcarryx_u32(x116, x55, x92);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_u1 = 0;
+     let (x119, x120) = fiat_p384_addcarryx_u32(x118, x57, x94);
+-    let mut x121: u32 = 0;
+-    let mut x122: fiat_p384_u1 = 0;
+     let (x121, x122) = fiat_p384_addcarryx_u32(x120, x59, x96);
+-    let mut x123: u32 = 0;
+-    let mut x124: u32 = 0;
+     let (x123, x124) = fiat_p384_mulx_u32(x1, (arg1[11]));
+-    let mut x125: u32 = 0;
+-    let mut x126: u32 = 0;
+     let (x125, x126) = fiat_p384_mulx_u32(x1, (arg1[10]));
+-    let mut x127: u32 = 0;
+-    let mut x128: u32 = 0;
+     let (x127, x128) = fiat_p384_mulx_u32(x1, (arg1[9]));
+-    let mut x129: u32 = 0;
+-    let mut x130: u32 = 0;
+     let (x129, x130) = fiat_p384_mulx_u32(x1, (arg1[8]));
+-    let mut x131: u32 = 0;
+-    let mut x132: u32 = 0;
+     let (x131, x132) = fiat_p384_mulx_u32(x1, (arg1[7]));
+-    let mut x133: u32 = 0;
+-    let mut x134: u32 = 0;
+     let (x133, x134) = fiat_p384_mulx_u32(x1, (arg1[6]));
+-    let mut x135: u32 = 0;
+-    let mut x136: u32 = 0;
+     let (x135, x136) = fiat_p384_mulx_u32(x1, (arg1[5]));
+-    let mut x137: u32 = 0;
+-    let mut x138: u32 = 0;
+     let (x137, x138) = fiat_p384_mulx_u32(x1, (arg1[4]));
+-    let mut x139: u32 = 0;
+-    let mut x140: u32 = 0;
+     let (x139, x140) = fiat_p384_mulx_u32(x1, (arg1[3]));
+-    let mut x141: u32 = 0;
+-    let mut x142: u32 = 0;
+     let (x141, x142) = fiat_p384_mulx_u32(x1, (arg1[2]));
+-    let mut x143: u32 = 0;
+-    let mut x144: u32 = 0;
+     let (x143, x144) = fiat_p384_mulx_u32(x1, (arg1[1]));
+-    let mut x145: u32 = 0;
+-    let mut x146: u32 = 0;
+     let (x145, x146) = fiat_p384_mulx_u32(x1, (arg1[0]));
+-    let mut x147: u32 = 0;
+-    let mut x148: fiat_p384_u1 = 0;
+     let (x147, x148) = fiat_p384_addcarryx_u32(0x0, x146, x143);
+-    let mut x149: u32 = 0;
+-    let mut x150: fiat_p384_u1 = 0;
+     let (x149, x150) = fiat_p384_addcarryx_u32(x148, x144, x141);
+-    let mut x151: u32 = 0;
+-    let mut x152: fiat_p384_u1 = 0;
+     let (x151, x152) = fiat_p384_addcarryx_u32(x150, x142, x139);
+-    let mut x153: u32 = 0;
+-    let mut x154: fiat_p384_u1 = 0;
+     let (x153, x154) = fiat_p384_addcarryx_u32(x152, x140, x137);
+-    let mut x155: u32 = 0;
+-    let mut x156: fiat_p384_u1 = 0;
+     let (x155, x156) = fiat_p384_addcarryx_u32(x154, x138, x135);
+-    let mut x157: u32 = 0;
+-    let mut x158: fiat_p384_u1 = 0;
+     let (x157, x158) = fiat_p384_addcarryx_u32(x156, x136, x133);
+-    let mut x159: u32 = 0;
+-    let mut x160: fiat_p384_u1 = 0;
+     let (x159, x160) = fiat_p384_addcarryx_u32(x158, x134, x131);
+-    let mut x161: u32 = 0;
+-    let mut x162: fiat_p384_u1 = 0;
+     let (x161, x162) = fiat_p384_addcarryx_u32(x160, x132, x129);
+-    let mut x163: u32 = 0;
+-    let mut x164: fiat_p384_u1 = 0;
+     let (x163, x164) = fiat_p384_addcarryx_u32(x162, x130, x127);
+-    let mut x165: u32 = 0;
+-    let mut x166: fiat_p384_u1 = 0;
+     let (x165, x166) = fiat_p384_addcarryx_u32(x164, x128, x125);
+-    let mut x167: u32 = 0;
+-    let mut x168: fiat_p384_u1 = 0;
+     let (x167, x168) = fiat_p384_addcarryx_u32(x166, x126, x123);
+     let x169: u32 = ((x168 as u32) + x124);
+-    let mut x170: u32 = 0;
+-    let mut x171: fiat_p384_u1 = 0;
+     let (x170, x171) = fiat_p384_addcarryx_u32(0x0, x99, x145);
+-    let mut x172: u32 = 0;
+-    let mut x173: fiat_p384_u1 = 0;
+     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x101, x147);
+-    let mut x174: u32 = 0;
+-    let mut x175: fiat_p384_u1 = 0;
+     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x103, x149);
+-    let mut x176: u32 = 0;
+-    let mut x177: fiat_p384_u1 = 0;
+     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x105, x151);
+-    let mut x178: u32 = 0;
+-    let mut x179: fiat_p384_u1 = 0;
+     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x107, x153);
+-    let mut x180: u32 = 0;
+-    let mut x181: fiat_p384_u1 = 0;
+     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x109, x155);
+-    let mut x182: u32 = 0;
+-    let mut x183: fiat_p384_u1 = 0;
+     let (x182, x183) = fiat_p384_addcarryx_u32(x181, x111, x157);
+-    let mut x184: u32 = 0;
+-    let mut x185: fiat_p384_u1 = 0;
+     let (x184, x185) = fiat_p384_addcarryx_u32(x183, x113, x159);
+-    let mut x186: u32 = 0;
+-    let mut x187: fiat_p384_u1 = 0;
+     let (x186, x187) = fiat_p384_addcarryx_u32(x185, x115, x161);
+-    let mut x188: u32 = 0;
+-    let mut x189: fiat_p384_u1 = 0;
+     let (x188, x189) = fiat_p384_addcarryx_u32(x187, x117, x163);
+-    let mut x190: u32 = 0;
+-    let mut x191: fiat_p384_u1 = 0;
+     let (x190, x191) = fiat_p384_addcarryx_u32(x189, x119, x165);
+-    let mut x192: u32 = 0;
+-    let mut x193: fiat_p384_u1 = 0;
+     let (x192, x193) = fiat_p384_addcarryx_u32(x191, x121, x167);
+-    let mut x194: u32 = 0;
+-    let mut x195: fiat_p384_u1 = 0;
+     let (x194, x195) = fiat_p384_addcarryx_u32(x193, (x122 as u32), x169);
+-    let mut x196: u32 = 0;
+-    let mut x197: u32 = 0;
+     let (x196, x197) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x198: u32 = 0;
+-    let mut x199: u32 = 0;
+     let (x198, x199) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x200: u32 = 0;
+-    let mut x201: u32 = 0;
+     let (x200, x201) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x202: u32 = 0;
+-    let mut x203: u32 = 0;
+     let (x202, x203) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x204: u32 = 0;
+-    let mut x205: u32 = 0;
+     let (x204, x205) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x206: u32 = 0;
+-    let mut x207: u32 = 0;
+     let (x206, x207) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x208: u32 = 0;
+-    let mut x209: u32 = 0;
+     let (x208, x209) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x210: u32 = 0;
+-    let mut x211: u32 = 0;
+     let (x210, x211) = fiat_p384_mulx_u32(x170, 0xfffffffe);
+-    let mut x212: u32 = 0;
+-    let mut x213: u32 = 0;
+     let (x212, x213) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x214: u32 = 0;
+-    let mut x215: u32 = 0;
+     let (x214, x215) = fiat_p384_mulx_u32(x170, 0xffffffff);
+-    let mut x216: u32 = 0;
+-    let mut x217: fiat_p384_u1 = 0;
+     let (x216, x217) = fiat_p384_addcarryx_u32(0x0, x213, x210);
+-    let mut x218: u32 = 0;
+-    let mut x219: fiat_p384_u1 = 0;
+     let (x218, x219) = fiat_p384_addcarryx_u32(x217, x211, x208);
+-    let mut x220: u32 = 0;
+-    let mut x221: fiat_p384_u1 = 0;
+     let (x220, x221) = fiat_p384_addcarryx_u32(x219, x209, x206);
+-    let mut x222: u32 = 0;
+-    let mut x223: fiat_p384_u1 = 0;
+     let (x222, x223) = fiat_p384_addcarryx_u32(x221, x207, x204);
+-    let mut x224: u32 = 0;
+-    let mut x225: fiat_p384_u1 = 0;
+     let (x224, x225) = fiat_p384_addcarryx_u32(x223, x205, x202);
+-    let mut x226: u32 = 0;
+-    let mut x227: fiat_p384_u1 = 0;
+     let (x226, x227) = fiat_p384_addcarryx_u32(x225, x203, x200);
+-    let mut x228: u32 = 0;
+-    let mut x229: fiat_p384_u1 = 0;
+     let (x228, x229) = fiat_p384_addcarryx_u32(x227, x201, x198);
+-    let mut x230: u32 = 0;
+-    let mut x231: fiat_p384_u1 = 0;
+     let (x230, x231) = fiat_p384_addcarryx_u32(x229, x199, x196);
+     let x232: u32 = ((x231 as u32) + x197);
+-    let mut x233: u32 = 0;
+-    let mut x234: fiat_p384_u1 = 0;
+     let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x170, x214);
+-    let mut x235: u32 = 0;
+-    let mut x236: fiat_p384_u1 = 0;
+     let (x235, x236) = fiat_p384_addcarryx_u32(x234, x172, x215);
+-    let mut x237: u32 = 0;
+-    let mut x238: fiat_p384_u1 = 0;
+     let (x237, x238) = fiat_p384_addcarryx_u32(x236, x174, (0x0 as u32));
+-    let mut x239: u32 = 0;
+-    let mut x240: fiat_p384_u1 = 0;
+     let (x239, x240) = fiat_p384_addcarryx_u32(x238, x176, x212);
+-    let mut x241: u32 = 0;
+-    let mut x242: fiat_p384_u1 = 0;
+     let (x241, x242) = fiat_p384_addcarryx_u32(x240, x178, x216);
+-    let mut x243: u32 = 0;
+-    let mut x244: fiat_p384_u1 = 0;
+     let (x243, x244) = fiat_p384_addcarryx_u32(x242, x180, x218);
+-    let mut x245: u32 = 0;
+-    let mut x246: fiat_p384_u1 = 0;
+     let (x245, x246) = fiat_p384_addcarryx_u32(x244, x182, x220);
+-    let mut x247: u32 = 0;
+-    let mut x248: fiat_p384_u1 = 0;
+     let (x247, x248) = fiat_p384_addcarryx_u32(x246, x184, x222);
+-    let mut x249: u32 = 0;
+-    let mut x250: fiat_p384_u1 = 0;
+     let (x249, x250) = fiat_p384_addcarryx_u32(x248, x186, x224);
+-    let mut x251: u32 = 0;
+-    let mut x252: fiat_p384_u1 = 0;
+     let (x251, x252) = fiat_p384_addcarryx_u32(x250, x188, x226);
+-    let mut x253: u32 = 0;
+-    let mut x254: fiat_p384_u1 = 0;
+     let (x253, x254) = fiat_p384_addcarryx_u32(x252, x190, x228);
+-    let mut x255: u32 = 0;
+-    let mut x256: fiat_p384_u1 = 0;
+     let (x255, x256) = fiat_p384_addcarryx_u32(x254, x192, x230);
+-    let mut x257: u32 = 0;
+-    let mut x258: fiat_p384_u1 = 0;
+     let (x257, x258) = fiat_p384_addcarryx_u32(x256, x194, x232);
+     let x259: u32 = ((x258 as u32) + (x195 as u32));
+-    let mut x260: u32 = 0;
+-    let mut x261: u32 = 0;
+     let (x260, x261) = fiat_p384_mulx_u32(x2, (arg1[11]));
+-    let mut x262: u32 = 0;
+-    let mut x263: u32 = 0;
+     let (x262, x263) = fiat_p384_mulx_u32(x2, (arg1[10]));
+-    let mut x264: u32 = 0;
+-    let mut x265: u32 = 0;
+     let (x264, x265) = fiat_p384_mulx_u32(x2, (arg1[9]));
+-    let mut x266: u32 = 0;
+-    let mut x267: u32 = 0;
+     let (x266, x267) = fiat_p384_mulx_u32(x2, (arg1[8]));
+-    let mut x268: u32 = 0;
+-    let mut x269: u32 = 0;
+     let (x268, x269) = fiat_p384_mulx_u32(x2, (arg1[7]));
+-    let mut x270: u32 = 0;
+-    let mut x271: u32 = 0;
+     let (x270, x271) = fiat_p384_mulx_u32(x2, (arg1[6]));
+-    let mut x272: u32 = 0;
+-    let mut x273: u32 = 0;
+     let (x272, x273) = fiat_p384_mulx_u32(x2, (arg1[5]));
+-    let mut x274: u32 = 0;
+-    let mut x275: u32 = 0;
+     let (x274, x275) = fiat_p384_mulx_u32(x2, (arg1[4]));
+-    let mut x276: u32 = 0;
+-    let mut x277: u32 = 0;
+     let (x276, x277) = fiat_p384_mulx_u32(x2, (arg1[3]));
+-    let mut x278: u32 = 0;
+-    let mut x279: u32 = 0;
+     let (x278, x279) = fiat_p384_mulx_u32(x2, (arg1[2]));
+-    let mut x280: u32 = 0;
+-    let mut x281: u32 = 0;
+     let (x280, x281) = fiat_p384_mulx_u32(x2, (arg1[1]));
+-    let mut x282: u32 = 0;
+-    let mut x283: u32 = 0;
+     let (x282, x283) = fiat_p384_mulx_u32(x2, (arg1[0]));
+-    let mut x284: u32 = 0;
+-    let mut x285: fiat_p384_u1 = 0;
+     let (x284, x285) = fiat_p384_addcarryx_u32(0x0, x283, x280);
+-    let mut x286: u32 = 0;
+-    let mut x287: fiat_p384_u1 = 0;
+     let (x286, x287) = fiat_p384_addcarryx_u32(x285, x281, x278);
+-    let mut x288: u32 = 0;
+-    let mut x289: fiat_p384_u1 = 0;
+     let (x288, x289) = fiat_p384_addcarryx_u32(x287, x279, x276);
+-    let mut x290: u32 = 0;
+-    let mut x291: fiat_p384_u1 = 0;
+     let (x290, x291) = fiat_p384_addcarryx_u32(x289, x277, x274);
+-    let mut x292: u32 = 0;
+-    let mut x293: fiat_p384_u1 = 0;
+     let (x292, x293) = fiat_p384_addcarryx_u32(x291, x275, x272);
+-    let mut x294: u32 = 0;
+-    let mut x295: fiat_p384_u1 = 0;
+     let (x294, x295) = fiat_p384_addcarryx_u32(x293, x273, x270);
+-    let mut x296: u32 = 0;
+-    let mut x297: fiat_p384_u1 = 0;
+     let (x296, x297) = fiat_p384_addcarryx_u32(x295, x271, x268);
+-    let mut x298: u32 = 0;
+-    let mut x299: fiat_p384_u1 = 0;
+     let (x298, x299) = fiat_p384_addcarryx_u32(x297, x269, x266);
+-    let mut x300: u32 = 0;
+-    let mut x301: fiat_p384_u1 = 0;
+     let (x300, x301) = fiat_p384_addcarryx_u32(x299, x267, x264);
+-    let mut x302: u32 = 0;
+-    let mut x303: fiat_p384_u1 = 0;
+     let (x302, x303) = fiat_p384_addcarryx_u32(x301, x265, x262);
+-    let mut x304: u32 = 0;
+-    let mut x305: fiat_p384_u1 = 0;
+     let (x304, x305) = fiat_p384_addcarryx_u32(x303, x263, x260);
+     let x306: u32 = ((x305 as u32) + x261);
+-    let mut x307: u32 = 0;
+-    let mut x308: fiat_p384_u1 = 0;
+     let (x307, x308) = fiat_p384_addcarryx_u32(0x0, x235, x282);
+-    let mut x309: u32 = 0;
+-    let mut x310: fiat_p384_u1 = 0;
+     let (x309, x310) = fiat_p384_addcarryx_u32(x308, x237, x284);
+-    let mut x311: u32 = 0;
+-    let mut x312: fiat_p384_u1 = 0;
+     let (x311, x312) = fiat_p384_addcarryx_u32(x310, x239, x286);
+-    let mut x313: u32 = 0;
+-    let mut x314: fiat_p384_u1 = 0;
+     let (x313, x314) = fiat_p384_addcarryx_u32(x312, x241, x288);
+-    let mut x315: u32 = 0;
+-    let mut x316: fiat_p384_u1 = 0;
+     let (x315, x316) = fiat_p384_addcarryx_u32(x314, x243, x290);
+-    let mut x317: u32 = 0;
+-    let mut x318: fiat_p384_u1 = 0;
+     let (x317, x318) = fiat_p384_addcarryx_u32(x316, x245, x292);
+-    let mut x319: u32 = 0;
+-    let mut x320: fiat_p384_u1 = 0;
+     let (x319, x320) = fiat_p384_addcarryx_u32(x318, x247, x294);
+-    let mut x321: u32 = 0;
+-    let mut x322: fiat_p384_u1 = 0;
+     let (x321, x322) = fiat_p384_addcarryx_u32(x320, x249, x296);
+-    let mut x323: u32 = 0;
+-    let mut x324: fiat_p384_u1 = 0;
+     let (x323, x324) = fiat_p384_addcarryx_u32(x322, x251, x298);
+-    let mut x325: u32 = 0;
+-    let mut x326: fiat_p384_u1 = 0;
+     let (x325, x326) = fiat_p384_addcarryx_u32(x324, x253, x300);
+-    let mut x327: u32 = 0;
+-    let mut x328: fiat_p384_u1 = 0;
+     let (x327, x328) = fiat_p384_addcarryx_u32(x326, x255, x302);
+-    let mut x329: u32 = 0;
+-    let mut x330: fiat_p384_u1 = 0;
+     let (x329, x330) = fiat_p384_addcarryx_u32(x328, x257, x304);
+-    let mut x331: u32 = 0;
+-    let mut x332: fiat_p384_u1 = 0;
+     let (x331, x332) = fiat_p384_addcarryx_u32(x330, x259, x306);
+-    let mut x333: u32 = 0;
+-    let mut x334: u32 = 0;
+     let (x333, x334) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x335: u32 = 0;
+-    let mut x336: u32 = 0;
+     let (x335, x336) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x337: u32 = 0;
+-    let mut x338: u32 = 0;
+     let (x337, x338) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x339: u32 = 0;
+-    let mut x340: u32 = 0;
+     let (x339, x340) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x341: u32 = 0;
+-    let mut x342: u32 = 0;
+     let (x341, x342) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x343: u32 = 0;
+-    let mut x344: u32 = 0;
+     let (x343, x344) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x345: u32 = 0;
+-    let mut x346: u32 = 0;
+     let (x345, x346) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x347: u32 = 0;
+-    let mut x348: u32 = 0;
+     let (x347, x348) = fiat_p384_mulx_u32(x307, 0xfffffffe);
+-    let mut x349: u32 = 0;
+-    let mut x350: u32 = 0;
+     let (x349, x350) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x351: u32 = 0;
+-    let mut x352: u32 = 0;
+     let (x351, x352) = fiat_p384_mulx_u32(x307, 0xffffffff);
+-    let mut x353: u32 = 0;
+-    let mut x354: fiat_p384_u1 = 0;
+     let (x353, x354) = fiat_p384_addcarryx_u32(0x0, x350, x347);
+-    let mut x355: u32 = 0;
+-    let mut x356: fiat_p384_u1 = 0;
+     let (x355, x356) = fiat_p384_addcarryx_u32(x354, x348, x345);
+-    let mut x357: u32 = 0;
+-    let mut x358: fiat_p384_u1 = 0;
+     let (x357, x358) = fiat_p384_addcarryx_u32(x356, x346, x343);
+-    let mut x359: u32 = 0;
+-    let mut x360: fiat_p384_u1 = 0;
+     let (x359, x360) = fiat_p384_addcarryx_u32(x358, x344, x341);
+-    let mut x361: u32 = 0;
+-    let mut x362: fiat_p384_u1 = 0;
+     let (x361, x362) = fiat_p384_addcarryx_u32(x360, x342, x339);
+-    let mut x363: u32 = 0;
+-    let mut x364: fiat_p384_u1 = 0;
+     let (x363, x364) = fiat_p384_addcarryx_u32(x362, x340, x337);
+-    let mut x365: u32 = 0;
+-    let mut x366: fiat_p384_u1 = 0;
+     let (x365, x366) = fiat_p384_addcarryx_u32(x364, x338, x335);
+-    let mut x367: u32 = 0;
+-    let mut x368: fiat_p384_u1 = 0;
+     let (x367, x368) = fiat_p384_addcarryx_u32(x366, x336, x333);
+     let x369: u32 = ((x368 as u32) + x334);
+-    let mut x370: u32 = 0;
+-    let mut x371: fiat_p384_u1 = 0;
+     let (x370, x371) = fiat_p384_addcarryx_u32(0x0, x307, x351);
+-    let mut x372: u32 = 0;
+-    let mut x373: fiat_p384_u1 = 0;
+     let (x372, x373) = fiat_p384_addcarryx_u32(x371, x309, x352);
+-    let mut x374: u32 = 0;
+-    let mut x375: fiat_p384_u1 = 0;
+     let (x374, x375) = fiat_p384_addcarryx_u32(x373, x311, (0x0 as u32));
+-    let mut x376: u32 = 0;
+-    let mut x377: fiat_p384_u1 = 0;
+     let (x376, x377) = fiat_p384_addcarryx_u32(x375, x313, x349);
+-    let mut x378: u32 = 0;
+-    let mut x379: fiat_p384_u1 = 0;
+     let (x378, x379) = fiat_p384_addcarryx_u32(x377, x315, x353);
+-    let mut x380: u32 = 0;
+-    let mut x381: fiat_p384_u1 = 0;
+     let (x380, x381) = fiat_p384_addcarryx_u32(x379, x317, x355);
+-    let mut x382: u32 = 0;
+-    let mut x383: fiat_p384_u1 = 0;
+     let (x382, x383) = fiat_p384_addcarryx_u32(x381, x319, x357);
+-    let mut x384: u32 = 0;
+-    let mut x385: fiat_p384_u1 = 0;
+     let (x384, x385) = fiat_p384_addcarryx_u32(x383, x321, x359);
+-    let mut x386: u32 = 0;
+-    let mut x387: fiat_p384_u1 = 0;
+     let (x386, x387) = fiat_p384_addcarryx_u32(x385, x323, x361);
+-    let mut x388: u32 = 0;
+-    let mut x389: fiat_p384_u1 = 0;
+     let (x388, x389) = fiat_p384_addcarryx_u32(x387, x325, x363);
+-    let mut x390: u32 = 0;
+-    let mut x391: fiat_p384_u1 = 0;
+     let (x390, x391) = fiat_p384_addcarryx_u32(x389, x327, x365);
+-    let mut x392: u32 = 0;
+-    let mut x393: fiat_p384_u1 = 0;
+     let (x392, x393) = fiat_p384_addcarryx_u32(x391, x329, x367);
+-    let mut x394: u32 = 0;
+-    let mut x395: fiat_p384_u1 = 0;
+     let (x394, x395) = fiat_p384_addcarryx_u32(x393, x331, x369);
+     let x396: u32 = ((x395 as u32) + (x332 as u32));
+-    let mut x397: u32 = 0;
+-    let mut x398: u32 = 0;
+     let (x397, x398) = fiat_p384_mulx_u32(x3, (arg1[11]));
+-    let mut x399: u32 = 0;
+-    let mut x400: u32 = 0;
+     let (x399, x400) = fiat_p384_mulx_u32(x3, (arg1[10]));
+-    let mut x401: u32 = 0;
+-    let mut x402: u32 = 0;
+     let (x401, x402) = fiat_p384_mulx_u32(x3, (arg1[9]));
+-    let mut x403: u32 = 0;
+-    let mut x404: u32 = 0;
+     let (x403, x404) = fiat_p384_mulx_u32(x3, (arg1[8]));
+-    let mut x405: u32 = 0;
+-    let mut x406: u32 = 0;
+     let (x405, x406) = fiat_p384_mulx_u32(x3, (arg1[7]));
+-    let mut x407: u32 = 0;
+-    let mut x408: u32 = 0;
+     let (x407, x408) = fiat_p384_mulx_u32(x3, (arg1[6]));
+-    let mut x409: u32 = 0;
+-    let mut x410: u32 = 0;
+     let (x409, x410) = fiat_p384_mulx_u32(x3, (arg1[5]));
+-    let mut x411: u32 = 0;
+-    let mut x412: u32 = 0;
+     let (x411, x412) = fiat_p384_mulx_u32(x3, (arg1[4]));
+-    let mut x413: u32 = 0;
+-    let mut x414: u32 = 0;
+     let (x413, x414) = fiat_p384_mulx_u32(x3, (arg1[3]));
+-    let mut x415: u32 = 0;
+-    let mut x416: u32 = 0;
+     let (x415, x416) = fiat_p384_mulx_u32(x3, (arg1[2]));
+-    let mut x417: u32 = 0;
+-    let mut x418: u32 = 0;
+     let (x417, x418) = fiat_p384_mulx_u32(x3, (arg1[1]));
+-    let mut x419: u32 = 0;
+-    let mut x420: u32 = 0;
+     let (x419, x420) = fiat_p384_mulx_u32(x3, (arg1[0]));
+-    let mut x421: u32 = 0;
+-    let mut x422: fiat_p384_u1 = 0;
+     let (x421, x422) = fiat_p384_addcarryx_u32(0x0, x420, x417);
+-    let mut x423: u32 = 0;
+-    let mut x424: fiat_p384_u1 = 0;
+     let (x423, x424) = fiat_p384_addcarryx_u32(x422, x418, x415);
+-    let mut x425: u32 = 0;
+-    let mut x426: fiat_p384_u1 = 0;
+     let (x425, x426) = fiat_p384_addcarryx_u32(x424, x416, x413);
+-    let mut x427: u32 = 0;
+-    let mut x428: fiat_p384_u1 = 0;
+     let (x427, x428) = fiat_p384_addcarryx_u32(x426, x414, x411);
+-    let mut x429: u32 = 0;
+-    let mut x430: fiat_p384_u1 = 0;
+     let (x429, x430) = fiat_p384_addcarryx_u32(x428, x412, x409);
+-    let mut x431: u32 = 0;
+-    let mut x432: fiat_p384_u1 = 0;
+     let (x431, x432) = fiat_p384_addcarryx_u32(x430, x410, x407);
+-    let mut x433: u32 = 0;
+-    let mut x434: fiat_p384_u1 = 0;
+     let (x433, x434) = fiat_p384_addcarryx_u32(x432, x408, x405);
+-    let mut x435: u32 = 0;
+-    let mut x436: fiat_p384_u1 = 0;
+     let (x435, x436) = fiat_p384_addcarryx_u32(x434, x406, x403);
+-    let mut x437: u32 = 0;
+-    let mut x438: fiat_p384_u1 = 0;
+     let (x437, x438) = fiat_p384_addcarryx_u32(x436, x404, x401);
+-    let mut x439: u32 = 0;
+-    let mut x440: fiat_p384_u1 = 0;
+     let (x439, x440) = fiat_p384_addcarryx_u32(x438, x402, x399);
+-    let mut x441: u32 = 0;
+-    let mut x442: fiat_p384_u1 = 0;
+     let (x441, x442) = fiat_p384_addcarryx_u32(x440, x400, x397);
+     let x443: u32 = ((x442 as u32) + x398);
+-    let mut x444: u32 = 0;
+-    let mut x445: fiat_p384_u1 = 0;
+     let (x444, x445) = fiat_p384_addcarryx_u32(0x0, x372, x419);
+-    let mut x446: u32 = 0;
+-    let mut x447: fiat_p384_u1 = 0;
+     let (x446, x447) = fiat_p384_addcarryx_u32(x445, x374, x421);
+-    let mut x448: u32 = 0;
+-    let mut x449: fiat_p384_u1 = 0;
+     let (x448, x449) = fiat_p384_addcarryx_u32(x447, x376, x423);
+-    let mut x450: u32 = 0;
+-    let mut x451: fiat_p384_u1 = 0;
+     let (x450, x451) = fiat_p384_addcarryx_u32(x449, x378, x425);
+-    let mut x452: u32 = 0;
+-    let mut x453: fiat_p384_u1 = 0;
+     let (x452, x453) = fiat_p384_addcarryx_u32(x451, x380, x427);
+-    let mut x454: u32 = 0;
+-    let mut x455: fiat_p384_u1 = 0;
+     let (x454, x455) = fiat_p384_addcarryx_u32(x453, x382, x429);
+-    let mut x456: u32 = 0;
+-    let mut x457: fiat_p384_u1 = 0;
+     let (x456, x457) = fiat_p384_addcarryx_u32(x455, x384, x431);
+-    let mut x458: u32 = 0;
+-    let mut x459: fiat_p384_u1 = 0;
+     let (x458, x459) = fiat_p384_addcarryx_u32(x457, x386, x433);
+-    let mut x460: u32 = 0;
+-    let mut x461: fiat_p384_u1 = 0;
+     let (x460, x461) = fiat_p384_addcarryx_u32(x459, x388, x435);
+-    let mut x462: u32 = 0;
+-    let mut x463: fiat_p384_u1 = 0;
+     let (x462, x463) = fiat_p384_addcarryx_u32(x461, x390, x437);
+-    let mut x464: u32 = 0;
+-    let mut x465: fiat_p384_u1 = 0;
+     let (x464, x465) = fiat_p384_addcarryx_u32(x463, x392, x439);
+-    let mut x466: u32 = 0;
+-    let mut x467: fiat_p384_u1 = 0;
+     let (x466, x467) = fiat_p384_addcarryx_u32(x465, x394, x441);
+-    let mut x468: u32 = 0;
+-    let mut x469: fiat_p384_u1 = 0;
+     let (x468, x469) = fiat_p384_addcarryx_u32(x467, x396, x443);
+-    let mut x470: u32 = 0;
+-    let mut x471: u32 = 0;
+     let (x470, x471) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x472: u32 = 0;
+-    let mut x473: u32 = 0;
+     let (x472, x473) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x474: u32 = 0;
+-    let mut x475: u32 = 0;
+     let (x474, x475) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x476: u32 = 0;
+-    let mut x477: u32 = 0;
+     let (x476, x477) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x478: u32 = 0;
+-    let mut x479: u32 = 0;
+     let (x478, x479) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x480: u32 = 0;
+-    let mut x481: u32 = 0;
+     let (x480, x481) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x482: u32 = 0;
+-    let mut x483: u32 = 0;
+     let (x482, x483) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x484: u32 = 0;
+-    let mut x485: u32 = 0;
+     let (x484, x485) = fiat_p384_mulx_u32(x444, 0xfffffffe);
+-    let mut x486: u32 = 0;
+-    let mut x487: u32 = 0;
+     let (x486, x487) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x488: u32 = 0;
+-    let mut x489: u32 = 0;
+     let (x488, x489) = fiat_p384_mulx_u32(x444, 0xffffffff);
+-    let mut x490: u32 = 0;
+-    let mut x491: fiat_p384_u1 = 0;
+     let (x490, x491) = fiat_p384_addcarryx_u32(0x0, x487, x484);
+-    let mut x492: u32 = 0;
+-    let mut x493: fiat_p384_u1 = 0;
+     let (x492, x493) = fiat_p384_addcarryx_u32(x491, x485, x482);
+-    let mut x494: u32 = 0;
+-    let mut x495: fiat_p384_u1 = 0;
+     let (x494, x495) = fiat_p384_addcarryx_u32(x493, x483, x480);
+-    let mut x496: u32 = 0;
+-    let mut x497: fiat_p384_u1 = 0;
+     let (x496, x497) = fiat_p384_addcarryx_u32(x495, x481, x478);
+-    let mut x498: u32 = 0;
+-    let mut x499: fiat_p384_u1 = 0;
+     let (x498, x499) = fiat_p384_addcarryx_u32(x497, x479, x476);
+-    let mut x500: u32 = 0;
+-    let mut x501: fiat_p384_u1 = 0;
+     let (x500, x501) = fiat_p384_addcarryx_u32(x499, x477, x474);
+-    let mut x502: u32 = 0;
+-    let mut x503: fiat_p384_u1 = 0;
+     let (x502, x503) = fiat_p384_addcarryx_u32(x501, x475, x472);
+-    let mut x504: u32 = 0;
+-    let mut x505: fiat_p384_u1 = 0;
+     let (x504, x505) = fiat_p384_addcarryx_u32(x503, x473, x470);
+     let x506: u32 = ((x505 as u32) + x471);
+-    let mut x507: u32 = 0;
+-    let mut x508: fiat_p384_u1 = 0;
+     let (x507, x508) = fiat_p384_addcarryx_u32(0x0, x444, x488);
+-    let mut x509: u32 = 0;
+-    let mut x510: fiat_p384_u1 = 0;
+     let (x509, x510) = fiat_p384_addcarryx_u32(x508, x446, x489);
+-    let mut x511: u32 = 0;
+-    let mut x512: fiat_p384_u1 = 0;
+     let (x511, x512) = fiat_p384_addcarryx_u32(x510, x448, (0x0 as u32));
+-    let mut x513: u32 = 0;
+-    let mut x514: fiat_p384_u1 = 0;
+     let (x513, x514) = fiat_p384_addcarryx_u32(x512, x450, x486);
+-    let mut x515: u32 = 0;
+-    let mut x516: fiat_p384_u1 = 0;
+     let (x515, x516) = fiat_p384_addcarryx_u32(x514, x452, x490);
+-    let mut x517: u32 = 0;
+-    let mut x518: fiat_p384_u1 = 0;
+     let (x517, x518) = fiat_p384_addcarryx_u32(x516, x454, x492);
+-    let mut x519: u32 = 0;
+-    let mut x520: fiat_p384_u1 = 0;
+     let (x519, x520) = fiat_p384_addcarryx_u32(x518, x456, x494);
+-    let mut x521: u32 = 0;
+-    let mut x522: fiat_p384_u1 = 0;
+     let (x521, x522) = fiat_p384_addcarryx_u32(x520, x458, x496);
+-    let mut x523: u32 = 0;
+-    let mut x524: fiat_p384_u1 = 0;
+     let (x523, x524) = fiat_p384_addcarryx_u32(x522, x460, x498);
+-    let mut x525: u32 = 0;
+-    let mut x526: fiat_p384_u1 = 0;
+     let (x525, x526) = fiat_p384_addcarryx_u32(x524, x462, x500);
+-    let mut x527: u32 = 0;
+-    let mut x528: fiat_p384_u1 = 0;
+     let (x527, x528) = fiat_p384_addcarryx_u32(x526, x464, x502);
+-    let mut x529: u32 = 0;
+-    let mut x530: fiat_p384_u1 = 0;
+     let (x529, x530) = fiat_p384_addcarryx_u32(x528, x466, x504);
+-    let mut x531: u32 = 0;
+-    let mut x532: fiat_p384_u1 = 0;
+     let (x531, x532) = fiat_p384_addcarryx_u32(x530, x468, x506);
+     let x533: u32 = ((x532 as u32) + (x469 as u32));
+-    let mut x534: u32 = 0;
+-    let mut x535: u32 = 0;
+     let (x534, x535) = fiat_p384_mulx_u32(x4, (arg1[11]));
+-    let mut x536: u32 = 0;
+-    let mut x537: u32 = 0;
+     let (x536, x537) = fiat_p384_mulx_u32(x4, (arg1[10]));
+-    let mut x538: u32 = 0;
+-    let mut x539: u32 = 0;
+     let (x538, x539) = fiat_p384_mulx_u32(x4, (arg1[9]));
+-    let mut x540: u32 = 0;
+-    let mut x541: u32 = 0;
+     let (x540, x541) = fiat_p384_mulx_u32(x4, (arg1[8]));
+-    let mut x542: u32 = 0;
+-    let mut x543: u32 = 0;
+     let (x542, x543) = fiat_p384_mulx_u32(x4, (arg1[7]));
+-    let mut x544: u32 = 0;
+-    let mut x545: u32 = 0;
+     let (x544, x545) = fiat_p384_mulx_u32(x4, (arg1[6]));
+-    let mut x546: u32 = 0;
+-    let mut x547: u32 = 0;
+     let (x546, x547) = fiat_p384_mulx_u32(x4, (arg1[5]));
+-    let mut x548: u32 = 0;
+-    let mut x549: u32 = 0;
+     let (x548, x549) = fiat_p384_mulx_u32(x4, (arg1[4]));
+-    let mut x550: u32 = 0;
+-    let mut x551: u32 = 0;
+     let (x550, x551) = fiat_p384_mulx_u32(x4, (arg1[3]));
+-    let mut x552: u32 = 0;
+-    let mut x553: u32 = 0;
+     let (x552, x553) = fiat_p384_mulx_u32(x4, (arg1[2]));
+-    let mut x554: u32 = 0;
+-    let mut x555: u32 = 0;
+     let (x554, x555) = fiat_p384_mulx_u32(x4, (arg1[1]));
+-    let mut x556: u32 = 0;
+-    let mut x557: u32 = 0;
+     let (x556, x557) = fiat_p384_mulx_u32(x4, (arg1[0]));
+-    let mut x558: u32 = 0;
+-    let mut x559: fiat_p384_u1 = 0;
+     let (x558, x559) = fiat_p384_addcarryx_u32(0x0, x557, x554);
+-    let mut x560: u32 = 0;
+-    let mut x561: fiat_p384_u1 = 0;
+     let (x560, x561) = fiat_p384_addcarryx_u32(x559, x555, x552);
+-    let mut x562: u32 = 0;
+-    let mut x563: fiat_p384_u1 = 0;
+     let (x562, x563) = fiat_p384_addcarryx_u32(x561, x553, x550);
+-    let mut x564: u32 = 0;
+-    let mut x565: fiat_p384_u1 = 0;
+     let (x564, x565) = fiat_p384_addcarryx_u32(x563, x551, x548);
+-    let mut x566: u32 = 0;
+-    let mut x567: fiat_p384_u1 = 0;
+     let (x566, x567) = fiat_p384_addcarryx_u32(x565, x549, x546);
+-    let mut x568: u32 = 0;
+-    let mut x569: fiat_p384_u1 = 0;
+     let (x568, x569) = fiat_p384_addcarryx_u32(x567, x547, x544);
+-    let mut x570: u32 = 0;
+-    let mut x571: fiat_p384_u1 = 0;
+     let (x570, x571) = fiat_p384_addcarryx_u32(x569, x545, x542);
+-    let mut x572: u32 = 0;
+-    let mut x573: fiat_p384_u1 = 0;
+     let (x572, x573) = fiat_p384_addcarryx_u32(x571, x543, x540);
+-    let mut x574: u32 = 0;
+-    let mut x575: fiat_p384_u1 = 0;
+     let (x574, x575) = fiat_p384_addcarryx_u32(x573, x541, x538);
+-    let mut x576: u32 = 0;
+-    let mut x577: fiat_p384_u1 = 0;
+     let (x576, x577) = fiat_p384_addcarryx_u32(x575, x539, x536);
+-    let mut x578: u32 = 0;
+-    let mut x579: fiat_p384_u1 = 0;
+     let (x578, x579) = fiat_p384_addcarryx_u32(x577, x537, x534);
+     let x580: u32 = ((x579 as u32) + x535);
+-    let mut x581: u32 = 0;
+-    let mut x582: fiat_p384_u1 = 0;
+     let (x581, x582) = fiat_p384_addcarryx_u32(0x0, x509, x556);
+-    let mut x583: u32 = 0;
+-    let mut x584: fiat_p384_u1 = 0;
+     let (x583, x584) = fiat_p384_addcarryx_u32(x582, x511, x558);
+-    let mut x585: u32 = 0;
+-    let mut x586: fiat_p384_u1 = 0;
+     let (x585, x586) = fiat_p384_addcarryx_u32(x584, x513, x560);
+-    let mut x587: u32 = 0;
+-    let mut x588: fiat_p384_u1 = 0;
+     let (x587, x588) = fiat_p384_addcarryx_u32(x586, x515, x562);
+-    let mut x589: u32 = 0;
+-    let mut x590: fiat_p384_u1 = 0;
+     let (x589, x590) = fiat_p384_addcarryx_u32(x588, x517, x564);
+-    let mut x591: u32 = 0;
+-    let mut x592: fiat_p384_u1 = 0;
+     let (x591, x592) = fiat_p384_addcarryx_u32(x590, x519, x566);
+-    let mut x593: u32 = 0;
+-    let mut x594: fiat_p384_u1 = 0;
+     let (x593, x594) = fiat_p384_addcarryx_u32(x592, x521, x568);
+-    let mut x595: u32 = 0;
+-    let mut x596: fiat_p384_u1 = 0;
+     let (x595, x596) = fiat_p384_addcarryx_u32(x594, x523, x570);
+-    let mut x597: u32 = 0;
+-    let mut x598: fiat_p384_u1 = 0;
+     let (x597, x598) = fiat_p384_addcarryx_u32(x596, x525, x572);
+-    let mut x599: u32 = 0;
+-    let mut x600: fiat_p384_u1 = 0;
+     let (x599, x600) = fiat_p384_addcarryx_u32(x598, x527, x574);
+-    let mut x601: u32 = 0;
+-    let mut x602: fiat_p384_u1 = 0;
+     let (x601, x602) = fiat_p384_addcarryx_u32(x600, x529, x576);
+-    let mut x603: u32 = 0;
+-    let mut x604: fiat_p384_u1 = 0;
+     let (x603, x604) = fiat_p384_addcarryx_u32(x602, x531, x578);
+-    let mut x605: u32 = 0;
+-    let mut x606: fiat_p384_u1 = 0;
+     let (x605, x606) = fiat_p384_addcarryx_u32(x604, x533, x580);
+-    let mut x607: u32 = 0;
+-    let mut x608: u32 = 0;
+     let (x607, x608) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x609: u32 = 0;
+-    let mut x610: u32 = 0;
+     let (x609, x610) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x611: u32 = 0;
+-    let mut x612: u32 = 0;
+     let (x611, x612) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x613: u32 = 0;
+-    let mut x614: u32 = 0;
+     let (x613, x614) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x615: u32 = 0;
+-    let mut x616: u32 = 0;
+     let (x615, x616) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x617: u32 = 0;
+-    let mut x618: u32 = 0;
+     let (x617, x618) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x619: u32 = 0;
+-    let mut x620: u32 = 0;
+     let (x619, x620) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x621: u32 = 0;
+-    let mut x622: u32 = 0;
+     let (x621, x622) = fiat_p384_mulx_u32(x581, 0xfffffffe);
+-    let mut x623: u32 = 0;
+-    let mut x624: u32 = 0;
+     let (x623, x624) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x625: u32 = 0;
+-    let mut x626: u32 = 0;
+     let (x625, x626) = fiat_p384_mulx_u32(x581, 0xffffffff);
+-    let mut x627: u32 = 0;
+-    let mut x628: fiat_p384_u1 = 0;
+     let (x627, x628) = fiat_p384_addcarryx_u32(0x0, x624, x621);
+-    let mut x629: u32 = 0;
+-    let mut x630: fiat_p384_u1 = 0;
+     let (x629, x630) = fiat_p384_addcarryx_u32(x628, x622, x619);
+-    let mut x631: u32 = 0;
+-    let mut x632: fiat_p384_u1 = 0;
+     let (x631, x632) = fiat_p384_addcarryx_u32(x630, x620, x617);
+-    let mut x633: u32 = 0;
+-    let mut x634: fiat_p384_u1 = 0;
+     let (x633, x634) = fiat_p384_addcarryx_u32(x632, x618, x615);
+-    let mut x635: u32 = 0;
+-    let mut x636: fiat_p384_u1 = 0;
+     let (x635, x636) = fiat_p384_addcarryx_u32(x634, x616, x613);
+-    let mut x637: u32 = 0;
+-    let mut x638: fiat_p384_u1 = 0;
+     let (x637, x638) = fiat_p384_addcarryx_u32(x636, x614, x611);
+-    let mut x639: u32 = 0;
+-    let mut x640: fiat_p384_u1 = 0;
+     let (x639, x640) = fiat_p384_addcarryx_u32(x638, x612, x609);
+-    let mut x641: u32 = 0;
+-    let mut x642: fiat_p384_u1 = 0;
+     let (x641, x642) = fiat_p384_addcarryx_u32(x640, x610, x607);
+     let x643: u32 = ((x642 as u32) + x608);
+-    let mut x644: u32 = 0;
+-    let mut x645: fiat_p384_u1 = 0;
+     let (x644, x645) = fiat_p384_addcarryx_u32(0x0, x581, x625);
+-    let mut x646: u32 = 0;
+-    let mut x647: fiat_p384_u1 = 0;
+     let (x646, x647) = fiat_p384_addcarryx_u32(x645, x583, x626);
+-    let mut x648: u32 = 0;
+-    let mut x649: fiat_p384_u1 = 0;
+     let (x648, x649) = fiat_p384_addcarryx_u32(x647, x585, (0x0 as u32));
+-    let mut x650: u32 = 0;
+-    let mut x651: fiat_p384_u1 = 0;
+     let (x650, x651) = fiat_p384_addcarryx_u32(x649, x587, x623);
+-    let mut x652: u32 = 0;
+-    let mut x653: fiat_p384_u1 = 0;
+     let (x652, x653) = fiat_p384_addcarryx_u32(x651, x589, x627);
+-    let mut x654: u32 = 0;
+-    let mut x655: fiat_p384_u1 = 0;
+     let (x654, x655) = fiat_p384_addcarryx_u32(x653, x591, x629);
+-    let mut x656: u32 = 0;
+-    let mut x657: fiat_p384_u1 = 0;
+     let (x656, x657) = fiat_p384_addcarryx_u32(x655, x593, x631);
+-    let mut x658: u32 = 0;
+-    let mut x659: fiat_p384_u1 = 0;
+     let (x658, x659) = fiat_p384_addcarryx_u32(x657, x595, x633);
+-    let mut x660: u32 = 0;
+-    let mut x661: fiat_p384_u1 = 0;
+     let (x660, x661) = fiat_p384_addcarryx_u32(x659, x597, x635);
+-    let mut x662: u32 = 0;
+-    let mut x663: fiat_p384_u1 = 0;
+     let (x662, x663) = fiat_p384_addcarryx_u32(x661, x599, x637);
+-    let mut x664: u32 = 0;
+-    let mut x665: fiat_p384_u1 = 0;
+     let (x664, x665) = fiat_p384_addcarryx_u32(x663, x601, x639);
+-    let mut x666: u32 = 0;
+-    let mut x667: fiat_p384_u1 = 0;
+     let (x666, x667) = fiat_p384_addcarryx_u32(x665, x603, x641);
+-    let mut x668: u32 = 0;
+-    let mut x669: fiat_p384_u1 = 0;
+     let (x668, x669) = fiat_p384_addcarryx_u32(x667, x605, x643);
+     let x670: u32 = ((x669 as u32) + (x606 as u32));
+-    let mut x671: u32 = 0;
+-    let mut x672: u32 = 0;
+     let (x671, x672) = fiat_p384_mulx_u32(x5, (arg1[11]));
+-    let mut x673: u32 = 0;
+-    let mut x674: u32 = 0;
+     let (x673, x674) = fiat_p384_mulx_u32(x5, (arg1[10]));
+-    let mut x675: u32 = 0;
+-    let mut x676: u32 = 0;
+     let (x675, x676) = fiat_p384_mulx_u32(x5, (arg1[9]));
+-    let mut x677: u32 = 0;
+-    let mut x678: u32 = 0;
+     let (x677, x678) = fiat_p384_mulx_u32(x5, (arg1[8]));
+-    let mut x679: u32 = 0;
+-    let mut x680: u32 = 0;
+     let (x679, x680) = fiat_p384_mulx_u32(x5, (arg1[7]));
+-    let mut x681: u32 = 0;
+-    let mut x682: u32 = 0;
+     let (x681, x682) = fiat_p384_mulx_u32(x5, (arg1[6]));
+-    let mut x683: u32 = 0;
+-    let mut x684: u32 = 0;
+     let (x683, x684) = fiat_p384_mulx_u32(x5, (arg1[5]));
+-    let mut x685: u32 = 0;
+-    let mut x686: u32 = 0;
+     let (x685, x686) = fiat_p384_mulx_u32(x5, (arg1[4]));
+-    let mut x687: u32 = 0;
+-    let mut x688: u32 = 0;
+     let (x687, x688) = fiat_p384_mulx_u32(x5, (arg1[3]));
+-    let mut x689: u32 = 0;
+-    let mut x690: u32 = 0;
+     let (x689, x690) = fiat_p384_mulx_u32(x5, (arg1[2]));
+-    let mut x691: u32 = 0;
+-    let mut x692: u32 = 0;
+     let (x691, x692) = fiat_p384_mulx_u32(x5, (arg1[1]));
+-    let mut x693: u32 = 0;
+-    let mut x694: u32 = 0;
+     let (x693, x694) = fiat_p384_mulx_u32(x5, (arg1[0]));
+-    let mut x695: u32 = 0;
+-    let mut x696: fiat_p384_u1 = 0;
+     let (x695, x696) = fiat_p384_addcarryx_u32(0x0, x694, x691);
+-    let mut x697: u32 = 0;
+-    let mut x698: fiat_p384_u1 = 0;
+     let (x697, x698) = fiat_p384_addcarryx_u32(x696, x692, x689);
+-    let mut x699: u32 = 0;
+-    let mut x700: fiat_p384_u1 = 0;
+     let (x699, x700) = fiat_p384_addcarryx_u32(x698, x690, x687);
+-    let mut x701: u32 = 0;
+-    let mut x702: fiat_p384_u1 = 0;
+     let (x701, x702) = fiat_p384_addcarryx_u32(x700, x688, x685);
+-    let mut x703: u32 = 0;
+-    let mut x704: fiat_p384_u1 = 0;
+     let (x703, x704) = fiat_p384_addcarryx_u32(x702, x686, x683);
+-    let mut x705: u32 = 0;
+-    let mut x706: fiat_p384_u1 = 0;
+     let (x705, x706) = fiat_p384_addcarryx_u32(x704, x684, x681);
+-    let mut x707: u32 = 0;
+-    let mut x708: fiat_p384_u1 = 0;
+     let (x707, x708) = fiat_p384_addcarryx_u32(x706, x682, x679);
+-    let mut x709: u32 = 0;
+-    let mut x710: fiat_p384_u1 = 0;
+     let (x709, x710) = fiat_p384_addcarryx_u32(x708, x680, x677);
+-    let mut x711: u32 = 0;
+-    let mut x712: fiat_p384_u1 = 0;
+     let (x711, x712) = fiat_p384_addcarryx_u32(x710, x678, x675);
+-    let mut x713: u32 = 0;
+-    let mut x714: fiat_p384_u1 = 0;
+     let (x713, x714) = fiat_p384_addcarryx_u32(x712, x676, x673);
+-    let mut x715: u32 = 0;
+-    let mut x716: fiat_p384_u1 = 0;
+     let (x715, x716) = fiat_p384_addcarryx_u32(x714, x674, x671);
+     let x717: u32 = ((x716 as u32) + x672);
+-    let mut x718: u32 = 0;
+-    let mut x719: fiat_p384_u1 = 0;
+     let (x718, x719) = fiat_p384_addcarryx_u32(0x0, x646, x693);
+-    let mut x720: u32 = 0;
+-    let mut x721: fiat_p384_u1 = 0;
+     let (x720, x721) = fiat_p384_addcarryx_u32(x719, x648, x695);
+-    let mut x722: u32 = 0;
+-    let mut x723: fiat_p384_u1 = 0;
+     let (x722, x723) = fiat_p384_addcarryx_u32(x721, x650, x697);
+-    let mut x724: u32 = 0;
+-    let mut x725: fiat_p384_u1 = 0;
+     let (x724, x725) = fiat_p384_addcarryx_u32(x723, x652, x699);
+-    let mut x726: u32 = 0;
+-    let mut x727: fiat_p384_u1 = 0;
+     let (x726, x727) = fiat_p384_addcarryx_u32(x725, x654, x701);
+-    let mut x728: u32 = 0;
+-    let mut x729: fiat_p384_u1 = 0;
+     let (x728, x729) = fiat_p384_addcarryx_u32(x727, x656, x703);
+-    let mut x730: u32 = 0;
+-    let mut x731: fiat_p384_u1 = 0;
+     let (x730, x731) = fiat_p384_addcarryx_u32(x729, x658, x705);
+-    let mut x732: u32 = 0;
+-    let mut x733: fiat_p384_u1 = 0;
+     let (x732, x733) = fiat_p384_addcarryx_u32(x731, x660, x707);
+-    let mut x734: u32 = 0;
+-    let mut x735: fiat_p384_u1 = 0;
+     let (x734, x735) = fiat_p384_addcarryx_u32(x733, x662, x709);
+-    let mut x736: u32 = 0;
+-    let mut x737: fiat_p384_u1 = 0;
+     let (x736, x737) = fiat_p384_addcarryx_u32(x735, x664, x711);
+-    let mut x738: u32 = 0;
+-    let mut x739: fiat_p384_u1 = 0;
+     let (x738, x739) = fiat_p384_addcarryx_u32(x737, x666, x713);
+-    let mut x740: u32 = 0;
+-    let mut x741: fiat_p384_u1 = 0;
+     let (x740, x741) = fiat_p384_addcarryx_u32(x739, x668, x715);
+-    let mut x742: u32 = 0;
+-    let mut x743: fiat_p384_u1 = 0;
+     let (x742, x743) = fiat_p384_addcarryx_u32(x741, x670, x717);
+-    let mut x744: u32 = 0;
+-    let mut x745: u32 = 0;
+     let (x744, x745) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x746: u32 = 0;
+-    let mut x747: u32 = 0;
+     let (x746, x747) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x748: u32 = 0;
+-    let mut x749: u32 = 0;
+     let (x748, x749) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x750: u32 = 0;
+-    let mut x751: u32 = 0;
+     let (x750, x751) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x752: u32 = 0;
+-    let mut x753: u32 = 0;
+     let (x752, x753) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x754: u32 = 0;
+-    let mut x755: u32 = 0;
+     let (x754, x755) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x756: u32 = 0;
+-    let mut x757: u32 = 0;
+     let (x756, x757) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x758: u32 = 0;
+-    let mut x759: u32 = 0;
+     let (x758, x759) = fiat_p384_mulx_u32(x718, 0xfffffffe);
+-    let mut x760: u32 = 0;
+-    let mut x761: u32 = 0;
+     let (x760, x761) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x762: u32 = 0;
+-    let mut x763: u32 = 0;
+     let (x762, x763) = fiat_p384_mulx_u32(x718, 0xffffffff);
+-    let mut x764: u32 = 0;
+-    let mut x765: fiat_p384_u1 = 0;
+     let (x764, x765) = fiat_p384_addcarryx_u32(0x0, x761, x758);
+-    let mut x766: u32 = 0;
+-    let mut x767: fiat_p384_u1 = 0;
+     let (x766, x767) = fiat_p384_addcarryx_u32(x765, x759, x756);
+-    let mut x768: u32 = 0;
+-    let mut x769: fiat_p384_u1 = 0;
+     let (x768, x769) = fiat_p384_addcarryx_u32(x767, x757, x754);
+-    let mut x770: u32 = 0;
+-    let mut x771: fiat_p384_u1 = 0;
+     let (x770, x771) = fiat_p384_addcarryx_u32(x769, x755, x752);
+-    let mut x772: u32 = 0;
+-    let mut x773: fiat_p384_u1 = 0;
+     let (x772, x773) = fiat_p384_addcarryx_u32(x771, x753, x750);
+-    let mut x774: u32 = 0;
+-    let mut x775: fiat_p384_u1 = 0;
+     let (x774, x775) = fiat_p384_addcarryx_u32(x773, x751, x748);
+-    let mut x776: u32 = 0;
+-    let mut x777: fiat_p384_u1 = 0;
+     let (x776, x777) = fiat_p384_addcarryx_u32(x775, x749, x746);
+-    let mut x778: u32 = 0;
+-    let mut x779: fiat_p384_u1 = 0;
+     let (x778, x779) = fiat_p384_addcarryx_u32(x777, x747, x744);
+     let x780: u32 = ((x779 as u32) + x745);
+-    let mut x781: u32 = 0;
+-    let mut x782: fiat_p384_u1 = 0;
+     let (x781, x782) = fiat_p384_addcarryx_u32(0x0, x718, x762);
+-    let mut x783: u32 = 0;
+-    let mut x784: fiat_p384_u1 = 0;
+     let (x783, x784) = fiat_p384_addcarryx_u32(x782, x720, x763);
+-    let mut x785: u32 = 0;
+-    let mut x786: fiat_p384_u1 = 0;
+     let (x785, x786) = fiat_p384_addcarryx_u32(x784, x722, (0x0 as u32));
+-    let mut x787: u32 = 0;
+-    let mut x788: fiat_p384_u1 = 0;
+     let (x787, x788) = fiat_p384_addcarryx_u32(x786, x724, x760);
+-    let mut x789: u32 = 0;
+-    let mut x790: fiat_p384_u1 = 0;
+     let (x789, x790) = fiat_p384_addcarryx_u32(x788, x726, x764);
+-    let mut x791: u32 = 0;
+-    let mut x792: fiat_p384_u1 = 0;
+     let (x791, x792) = fiat_p384_addcarryx_u32(x790, x728, x766);
+-    let mut x793: u32 = 0;
+-    let mut x794: fiat_p384_u1 = 0;
+     let (x793, x794) = fiat_p384_addcarryx_u32(x792, x730, x768);
+-    let mut x795: u32 = 0;
+-    let mut x796: fiat_p384_u1 = 0;
+     let (x795, x796) = fiat_p384_addcarryx_u32(x794, x732, x770);
+-    let mut x797: u32 = 0;
+-    let mut x798: fiat_p384_u1 = 0;
+     let (x797, x798) = fiat_p384_addcarryx_u32(x796, x734, x772);
+-    let mut x799: u32 = 0;
+-    let mut x800: fiat_p384_u1 = 0;
+     let (x799, x800) = fiat_p384_addcarryx_u32(x798, x736, x774);
+-    let mut x801: u32 = 0;
+-    let mut x802: fiat_p384_u1 = 0;
+     let (x801, x802) = fiat_p384_addcarryx_u32(x800, x738, x776);
+-    let mut x803: u32 = 0;
+-    let mut x804: fiat_p384_u1 = 0;
+     let (x803, x804) = fiat_p384_addcarryx_u32(x802, x740, x778);
+-    let mut x805: u32 = 0;
+-    let mut x806: fiat_p384_u1 = 0;
+     let (x805, x806) = fiat_p384_addcarryx_u32(x804, x742, x780);
+     let x807: u32 = ((x806 as u32) + (x743 as u32));
+-    let mut x808: u32 = 0;
+-    let mut x809: u32 = 0;
+     let (x808, x809) = fiat_p384_mulx_u32(x6, (arg1[11]));
+-    let mut x810: u32 = 0;
+-    let mut x811: u32 = 0;
+     let (x810, x811) = fiat_p384_mulx_u32(x6, (arg1[10]));
+-    let mut x812: u32 = 0;
+-    let mut x813: u32 = 0;
+     let (x812, x813) = fiat_p384_mulx_u32(x6, (arg1[9]));
+-    let mut x814: u32 = 0;
+-    let mut x815: u32 = 0;
+     let (x814, x815) = fiat_p384_mulx_u32(x6, (arg1[8]));
+-    let mut x816: u32 = 0;
+-    let mut x817: u32 = 0;
+     let (x816, x817) = fiat_p384_mulx_u32(x6, (arg1[7]));
+-    let mut x818: u32 = 0;
+-    let mut x819: u32 = 0;
+     let (x818, x819) = fiat_p384_mulx_u32(x6, (arg1[6]));
+-    let mut x820: u32 = 0;
+-    let mut x821: u32 = 0;
+     let (x820, x821) = fiat_p384_mulx_u32(x6, (arg1[5]));
+-    let mut x822: u32 = 0;
+-    let mut x823: u32 = 0;
+     let (x822, x823) = fiat_p384_mulx_u32(x6, (arg1[4]));
+-    let mut x824: u32 = 0;
+-    let mut x825: u32 = 0;
+     let (x824, x825) = fiat_p384_mulx_u32(x6, (arg1[3]));
+-    let mut x826: u32 = 0;
+-    let mut x827: u32 = 0;
+     let (x826, x827) = fiat_p384_mulx_u32(x6, (arg1[2]));
+-    let mut x828: u32 = 0;
+-    let mut x829: u32 = 0;
+     let (x828, x829) = fiat_p384_mulx_u32(x6, (arg1[1]));
+-    let mut x830: u32 = 0;
+-    let mut x831: u32 = 0;
+     let (x830, x831) = fiat_p384_mulx_u32(x6, (arg1[0]));
+-    let mut x832: u32 = 0;
+-    let mut x833: fiat_p384_u1 = 0;
+     let (x832, x833) = fiat_p384_addcarryx_u32(0x0, x831, x828);
+-    let mut x834: u32 = 0;
+-    let mut x835: fiat_p384_u1 = 0;
+     let (x834, x835) = fiat_p384_addcarryx_u32(x833, x829, x826);
+-    let mut x836: u32 = 0;
+-    let mut x837: fiat_p384_u1 = 0;
+     let (x836, x837) = fiat_p384_addcarryx_u32(x835, x827, x824);
+-    let mut x838: u32 = 0;
+-    let mut x839: fiat_p384_u1 = 0;
+     let (x838, x839) = fiat_p384_addcarryx_u32(x837, x825, x822);
+-    let mut x840: u32 = 0;
+-    let mut x841: fiat_p384_u1 = 0;
+     let (x840, x841) = fiat_p384_addcarryx_u32(x839, x823, x820);
+-    let mut x842: u32 = 0;
+-    let mut x843: fiat_p384_u1 = 0;
+     let (x842, x843) = fiat_p384_addcarryx_u32(x841, x821, x818);
+-    let mut x844: u32 = 0;
+-    let mut x845: fiat_p384_u1 = 0;
+     let (x844, x845) = fiat_p384_addcarryx_u32(x843, x819, x816);
+-    let mut x846: u32 = 0;
+-    let mut x847: fiat_p384_u1 = 0;
+     let (x846, x847) = fiat_p384_addcarryx_u32(x845, x817, x814);
+-    let mut x848: u32 = 0;
+-    let mut x849: fiat_p384_u1 = 0;
+     let (x848, x849) = fiat_p384_addcarryx_u32(x847, x815, x812);
+-    let mut x850: u32 = 0;
+-    let mut x851: fiat_p384_u1 = 0;
+     let (x850, x851) = fiat_p384_addcarryx_u32(x849, x813, x810);
+-    let mut x852: u32 = 0;
+-    let mut x853: fiat_p384_u1 = 0;
+     let (x852, x853) = fiat_p384_addcarryx_u32(x851, x811, x808);
+     let x854: u32 = ((x853 as u32) + x809);
+-    let mut x855: u32 = 0;
+-    let mut x856: fiat_p384_u1 = 0;
+     let (x855, x856) = fiat_p384_addcarryx_u32(0x0, x783, x830);
+-    let mut x857: u32 = 0;
+-    let mut x858: fiat_p384_u1 = 0;
+     let (x857, x858) = fiat_p384_addcarryx_u32(x856, x785, x832);
+-    let mut x859: u32 = 0;
+-    let mut x860: fiat_p384_u1 = 0;
+     let (x859, x860) = fiat_p384_addcarryx_u32(x858, x787, x834);
+-    let mut x861: u32 = 0;
+-    let mut x862: fiat_p384_u1 = 0;
+     let (x861, x862) = fiat_p384_addcarryx_u32(x860, x789, x836);
+-    let mut x863: u32 = 0;
+-    let mut x864: fiat_p384_u1 = 0;
+     let (x863, x864) = fiat_p384_addcarryx_u32(x862, x791, x838);
+-    let mut x865: u32 = 0;
+-    let mut x866: fiat_p384_u1 = 0;
+     let (x865, x866) = fiat_p384_addcarryx_u32(x864, x793, x840);
+-    let mut x867: u32 = 0;
+-    let mut x868: fiat_p384_u1 = 0;
+     let (x867, x868) = fiat_p384_addcarryx_u32(x866, x795, x842);
+-    let mut x869: u32 = 0;
+-    let mut x870: fiat_p384_u1 = 0;
+     let (x869, x870) = fiat_p384_addcarryx_u32(x868, x797, x844);
+-    let mut x871: u32 = 0;
+-    let mut x872: fiat_p384_u1 = 0;
+     let (x871, x872) = fiat_p384_addcarryx_u32(x870, x799, x846);
+-    let mut x873: u32 = 0;
+-    let mut x874: fiat_p384_u1 = 0;
+     let (x873, x874) = fiat_p384_addcarryx_u32(x872, x801, x848);
+-    let mut x875: u32 = 0;
+-    let mut x876: fiat_p384_u1 = 0;
+     let (x875, x876) = fiat_p384_addcarryx_u32(x874, x803, x850);
+-    let mut x877: u32 = 0;
+-    let mut x878: fiat_p384_u1 = 0;
+     let (x877, x878) = fiat_p384_addcarryx_u32(x876, x805, x852);
+-    let mut x879: u32 = 0;
+-    let mut x880: fiat_p384_u1 = 0;
+     let (x879, x880) = fiat_p384_addcarryx_u32(x878, x807, x854);
+-    let mut x881: u32 = 0;
+-    let mut x882: u32 = 0;
+     let (x881, x882) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x883: u32 = 0;
+-    let mut x884: u32 = 0;
+     let (x883, x884) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x885: u32 = 0;
+-    let mut x886: u32 = 0;
+     let (x885, x886) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x887: u32 = 0;
+-    let mut x888: u32 = 0;
+     let (x887, x888) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x889: u32 = 0;
+-    let mut x890: u32 = 0;
+     let (x889, x890) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x891: u32 = 0;
+-    let mut x892: u32 = 0;
+     let (x891, x892) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x893: u32 = 0;
+-    let mut x894: u32 = 0;
+     let (x893, x894) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x895: u32 = 0;
+-    let mut x896: u32 = 0;
+     let (x895, x896) = fiat_p384_mulx_u32(x855, 0xfffffffe);
+-    let mut x897: u32 = 0;
+-    let mut x898: u32 = 0;
+     let (x897, x898) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x899: u32 = 0;
+-    let mut x900: u32 = 0;
+     let (x899, x900) = fiat_p384_mulx_u32(x855, 0xffffffff);
+-    let mut x901: u32 = 0;
+-    let mut x902: fiat_p384_u1 = 0;
+     let (x901, x902) = fiat_p384_addcarryx_u32(0x0, x898, x895);
+-    let mut x903: u32 = 0;
+-    let mut x904: fiat_p384_u1 = 0;
+     let (x903, x904) = fiat_p384_addcarryx_u32(x902, x896, x893);
+-    let mut x905: u32 = 0;
+-    let mut x906: fiat_p384_u1 = 0;
+     let (x905, x906) = fiat_p384_addcarryx_u32(x904, x894, x891);
+-    let mut x907: u32 = 0;
+-    let mut x908: fiat_p384_u1 = 0;
+     let (x907, x908) = fiat_p384_addcarryx_u32(x906, x892, x889);
+-    let mut x909: u32 = 0;
+-    let mut x910: fiat_p384_u1 = 0;
+     let (x909, x910) = fiat_p384_addcarryx_u32(x908, x890, x887);
+-    let mut x911: u32 = 0;
+-    let mut x912: fiat_p384_u1 = 0;
+     let (x911, x912) = fiat_p384_addcarryx_u32(x910, x888, x885);
+-    let mut x913: u32 = 0;
+-    let mut x914: fiat_p384_u1 = 0;
+     let (x913, x914) = fiat_p384_addcarryx_u32(x912, x886, x883);
+-    let mut x915: u32 = 0;
+-    let mut x916: fiat_p384_u1 = 0;
+     let (x915, x916) = fiat_p384_addcarryx_u32(x914, x884, x881);
+     let x917: u32 = ((x916 as u32) + x882);
+-    let mut x918: u32 = 0;
+-    let mut x919: fiat_p384_u1 = 0;
+     let (x918, x919) = fiat_p384_addcarryx_u32(0x0, x855, x899);
+-    let mut x920: u32 = 0;
+-    let mut x921: fiat_p384_u1 = 0;
+     let (x920, x921) = fiat_p384_addcarryx_u32(x919, x857, x900);
+-    let mut x922: u32 = 0;
+-    let mut x923: fiat_p384_u1 = 0;
+     let (x922, x923) = fiat_p384_addcarryx_u32(x921, x859, (0x0 as u32));
+-    let mut x924: u32 = 0;
+-    let mut x925: fiat_p384_u1 = 0;
+     let (x924, x925) = fiat_p384_addcarryx_u32(x923, x861, x897);
+-    let mut x926: u32 = 0;
+-    let mut x927: fiat_p384_u1 = 0;
+     let (x926, x927) = fiat_p384_addcarryx_u32(x925, x863, x901);
+-    let mut x928: u32 = 0;
+-    let mut x929: fiat_p384_u1 = 0;
+     let (x928, x929) = fiat_p384_addcarryx_u32(x927, x865, x903);
+-    let mut x930: u32 = 0;
+-    let mut x931: fiat_p384_u1 = 0;
+     let (x930, x931) = fiat_p384_addcarryx_u32(x929, x867, x905);
+-    let mut x932: u32 = 0;
+-    let mut x933: fiat_p384_u1 = 0;
+     let (x932, x933) = fiat_p384_addcarryx_u32(x931, x869, x907);
+-    let mut x934: u32 = 0;
+-    let mut x935: fiat_p384_u1 = 0;
+     let (x934, x935) = fiat_p384_addcarryx_u32(x933, x871, x909);
+-    let mut x936: u32 = 0;
+-    let mut x937: fiat_p384_u1 = 0;
+     let (x936, x937) = fiat_p384_addcarryx_u32(x935, x873, x911);
+-    let mut x938: u32 = 0;
+-    let mut x939: fiat_p384_u1 = 0;
+     let (x938, x939) = fiat_p384_addcarryx_u32(x937, x875, x913);
+-    let mut x940: u32 = 0;
+-    let mut x941: fiat_p384_u1 = 0;
+     let (x940, x941) = fiat_p384_addcarryx_u32(x939, x877, x915);
+-    let mut x942: u32 = 0;
+-    let mut x943: fiat_p384_u1 = 0;
+     let (x942, x943) = fiat_p384_addcarryx_u32(x941, x879, x917);
+     let x944: u32 = ((x943 as u32) + (x880 as u32));
+-    let mut x945: u32 = 0;
+-    let mut x946: u32 = 0;
+     let (x945, x946) = fiat_p384_mulx_u32(x7, (arg1[11]));
+-    let mut x947: u32 = 0;
+-    let mut x948: u32 = 0;
+     let (x947, x948) = fiat_p384_mulx_u32(x7, (arg1[10]));
+-    let mut x949: u32 = 0;
+-    let mut x950: u32 = 0;
+     let (x949, x950) = fiat_p384_mulx_u32(x7, (arg1[9]));
+-    let mut x951: u32 = 0;
+-    let mut x952: u32 = 0;
+     let (x951, x952) = fiat_p384_mulx_u32(x7, (arg1[8]));
+-    let mut x953: u32 = 0;
+-    let mut x954: u32 = 0;
+     let (x953, x954) = fiat_p384_mulx_u32(x7, (arg1[7]));
+-    let mut x955: u32 = 0;
+-    let mut x956: u32 = 0;
+     let (x955, x956) = fiat_p384_mulx_u32(x7, (arg1[6]));
+-    let mut x957: u32 = 0;
+-    let mut x958: u32 = 0;
+     let (x957, x958) = fiat_p384_mulx_u32(x7, (arg1[5]));
+-    let mut x959: u32 = 0;
+-    let mut x960: u32 = 0;
+     let (x959, x960) = fiat_p384_mulx_u32(x7, (arg1[4]));
+-    let mut x961: u32 = 0;
+-    let mut x962: u32 = 0;
+     let (x961, x962) = fiat_p384_mulx_u32(x7, (arg1[3]));
+-    let mut x963: u32 = 0;
+-    let mut x964: u32 = 0;
+     let (x963, x964) = fiat_p384_mulx_u32(x7, (arg1[2]));
+-    let mut x965: u32 = 0;
+-    let mut x966: u32 = 0;
+     let (x965, x966) = fiat_p384_mulx_u32(x7, (arg1[1]));
+-    let mut x967: u32 = 0;
+-    let mut x968: u32 = 0;
+     let (x967, x968) = fiat_p384_mulx_u32(x7, (arg1[0]));
+-    let mut x969: u32 = 0;
+-    let mut x970: fiat_p384_u1 = 0;
+     let (x969, x970) = fiat_p384_addcarryx_u32(0x0, x968, x965);
+-    let mut x971: u32 = 0;
+-    let mut x972: fiat_p384_u1 = 0;
+     let (x971, x972) = fiat_p384_addcarryx_u32(x970, x966, x963);
+-    let mut x973: u32 = 0;
+-    let mut x974: fiat_p384_u1 = 0;
+     let (x973, x974) = fiat_p384_addcarryx_u32(x972, x964, x961);
+-    let mut x975: u32 = 0;
+-    let mut x976: fiat_p384_u1 = 0;
+     let (x975, x976) = fiat_p384_addcarryx_u32(x974, x962, x959);
+-    let mut x977: u32 = 0;
+-    let mut x978: fiat_p384_u1 = 0;
+     let (x977, x978) = fiat_p384_addcarryx_u32(x976, x960, x957);
+-    let mut x979: u32 = 0;
+-    let mut x980: fiat_p384_u1 = 0;
+     let (x979, x980) = fiat_p384_addcarryx_u32(x978, x958, x955);
+-    let mut x981: u32 = 0;
+-    let mut x982: fiat_p384_u1 = 0;
+     let (x981, x982) = fiat_p384_addcarryx_u32(x980, x956, x953);
+-    let mut x983: u32 = 0;
+-    let mut x984: fiat_p384_u1 = 0;
+     let (x983, x984) = fiat_p384_addcarryx_u32(x982, x954, x951);
+-    let mut x985: u32 = 0;
+-    let mut x986: fiat_p384_u1 = 0;
+     let (x985, x986) = fiat_p384_addcarryx_u32(x984, x952, x949);
+-    let mut x987: u32 = 0;
+-    let mut x988: fiat_p384_u1 = 0;
+     let (x987, x988) = fiat_p384_addcarryx_u32(x986, x950, x947);
+-    let mut x989: u32 = 0;
+-    let mut x990: fiat_p384_u1 = 0;
+     let (x989, x990) = fiat_p384_addcarryx_u32(x988, x948, x945);
+     let x991: u32 = ((x990 as u32) + x946);
+-    let mut x992: u32 = 0;
+-    let mut x993: fiat_p384_u1 = 0;
+     let (x992, x993) = fiat_p384_addcarryx_u32(0x0, x920, x967);
+-    let mut x994: u32 = 0;
+-    let mut x995: fiat_p384_u1 = 0;
+     let (x994, x995) = fiat_p384_addcarryx_u32(x993, x922, x969);
+-    let mut x996: u32 = 0;
+-    let mut x997: fiat_p384_u1 = 0;
+     let (x996, x997) = fiat_p384_addcarryx_u32(x995, x924, x971);
+-    let mut x998: u32 = 0;
+-    let mut x999: fiat_p384_u1 = 0;
+     let (x998, x999) = fiat_p384_addcarryx_u32(x997, x926, x973);
+-    let mut x1000: u32 = 0;
+-    let mut x1001: fiat_p384_u1 = 0;
+     let (x1000, x1001) = fiat_p384_addcarryx_u32(x999, x928, x975);
+-    let mut x1002: u32 = 0;
+-    let mut x1003: fiat_p384_u1 = 0;
+     let (x1002, x1003) = fiat_p384_addcarryx_u32(x1001, x930, x977);
+-    let mut x1004: u32 = 0;
+-    let mut x1005: fiat_p384_u1 = 0;
+     let (x1004, x1005) = fiat_p384_addcarryx_u32(x1003, x932, x979);
+-    let mut x1006: u32 = 0;
+-    let mut x1007: fiat_p384_u1 = 0;
+     let (x1006, x1007) = fiat_p384_addcarryx_u32(x1005, x934, x981);
+-    let mut x1008: u32 = 0;
+-    let mut x1009: fiat_p384_u1 = 0;
+     let (x1008, x1009) = fiat_p384_addcarryx_u32(x1007, x936, x983);
+-    let mut x1010: u32 = 0;
+-    let mut x1011: fiat_p384_u1 = 0;
+     let (x1010, x1011) = fiat_p384_addcarryx_u32(x1009, x938, x985);
+-    let mut x1012: u32 = 0;
+-    let mut x1013: fiat_p384_u1 = 0;
+     let (x1012, x1013) = fiat_p384_addcarryx_u32(x1011, x940, x987);
+-    let mut x1014: u32 = 0;
+-    let mut x1015: fiat_p384_u1 = 0;
+     let (x1014, x1015) = fiat_p384_addcarryx_u32(x1013, x942, x989);
+-    let mut x1016: u32 = 0;
+-    let mut x1017: fiat_p384_u1 = 0;
+     let (x1016, x1017) = fiat_p384_addcarryx_u32(x1015, x944, x991);
+-    let mut x1018: u32 = 0;
+-    let mut x1019: u32 = 0;
+     let (x1018, x1019) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1020: u32 = 0;
+-    let mut x1021: u32 = 0;
+     let (x1020, x1021) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1022: u32 = 0;
+-    let mut x1023: u32 = 0;
+     let (x1022, x1023) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1024: u32 = 0;
+-    let mut x1025: u32 = 0;
+     let (x1024, x1025) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1026: u32 = 0;
+-    let mut x1027: u32 = 0;
+     let (x1026, x1027) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1028: u32 = 0;
+-    let mut x1029: u32 = 0;
+     let (x1028, x1029) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1030: u32 = 0;
+-    let mut x1031: u32 = 0;
+     let (x1030, x1031) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1032: u32 = 0;
+-    let mut x1033: u32 = 0;
+     let (x1032, x1033) = fiat_p384_mulx_u32(x992, 0xfffffffe);
+-    let mut x1034: u32 = 0;
+-    let mut x1035: u32 = 0;
+     let (x1034, x1035) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1036: u32 = 0;
+-    let mut x1037: u32 = 0;
+     let (x1036, x1037) = fiat_p384_mulx_u32(x992, 0xffffffff);
+-    let mut x1038: u32 = 0;
+-    let mut x1039: fiat_p384_u1 = 0;
+     let (x1038, x1039) = fiat_p384_addcarryx_u32(0x0, x1035, x1032);
+-    let mut x1040: u32 = 0;
+-    let mut x1041: fiat_p384_u1 = 0;
+     let (x1040, x1041) = fiat_p384_addcarryx_u32(x1039, x1033, x1030);
+-    let mut x1042: u32 = 0;
+-    let mut x1043: fiat_p384_u1 = 0;
+     let (x1042, x1043) = fiat_p384_addcarryx_u32(x1041, x1031, x1028);
+-    let mut x1044: u32 = 0;
+-    let mut x1045: fiat_p384_u1 = 0;
+     let (x1044, x1045) = fiat_p384_addcarryx_u32(x1043, x1029, x1026);
+-    let mut x1046: u32 = 0;
+-    let mut x1047: fiat_p384_u1 = 0;
+     let (x1046, x1047) = fiat_p384_addcarryx_u32(x1045, x1027, x1024);
+-    let mut x1048: u32 = 0;
+-    let mut x1049: fiat_p384_u1 = 0;
+     let (x1048, x1049) = fiat_p384_addcarryx_u32(x1047, x1025, x1022);
+-    let mut x1050: u32 = 0;
+-    let mut x1051: fiat_p384_u1 = 0;
+     let (x1050, x1051) = fiat_p384_addcarryx_u32(x1049, x1023, x1020);
+-    let mut x1052: u32 = 0;
+-    let mut x1053: fiat_p384_u1 = 0;
+     let (x1052, x1053) = fiat_p384_addcarryx_u32(x1051, x1021, x1018);
+     let x1054: u32 = ((x1053 as u32) + x1019);
+-    let mut x1055: u32 = 0;
+-    let mut x1056: fiat_p384_u1 = 0;
+     let (x1055, x1056) = fiat_p384_addcarryx_u32(0x0, x992, x1036);
+-    let mut x1057: u32 = 0;
+-    let mut x1058: fiat_p384_u1 = 0;
+     let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x994, x1037);
+-    let mut x1059: u32 = 0;
+-    let mut x1060: fiat_p384_u1 = 0;
+     let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x996, (0x0 as u32));
+-    let mut x1061: u32 = 0;
+-    let mut x1062: fiat_p384_u1 = 0;
+     let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x998, x1034);
+-    let mut x1063: u32 = 0;
+-    let mut x1064: fiat_p384_u1 = 0;
+     let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1000, x1038);
+-    let mut x1065: u32 = 0;
+-    let mut x1066: fiat_p384_u1 = 0;
+     let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1002, x1040);
+-    let mut x1067: u32 = 0;
+-    let mut x1068: fiat_p384_u1 = 0;
+     let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1004, x1042);
+-    let mut x1069: u32 = 0;
+-    let mut x1070: fiat_p384_u1 = 0;
+     let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1006, x1044);
+-    let mut x1071: u32 = 0;
+-    let mut x1072: fiat_p384_u1 = 0;
+     let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1008, x1046);
+-    let mut x1073: u32 = 0;
+-    let mut x1074: fiat_p384_u1 = 0;
+     let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1010, x1048);
+-    let mut x1075: u32 = 0;
+-    let mut x1076: fiat_p384_u1 = 0;
+     let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1012, x1050);
+-    let mut x1077: u32 = 0;
+-    let mut x1078: fiat_p384_u1 = 0;
+     let (x1077, x1078) = fiat_p384_addcarryx_u32(x1076, x1014, x1052);
+-    let mut x1079: u32 = 0;
+-    let mut x1080: fiat_p384_u1 = 0;
+     let (x1079, x1080) = fiat_p384_addcarryx_u32(x1078, x1016, x1054);
+     let x1081: u32 = ((x1080 as u32) + (x1017 as u32));
+-    let mut x1082: u32 = 0;
+-    let mut x1083: u32 = 0;
+     let (x1082, x1083) = fiat_p384_mulx_u32(x8, (arg1[11]));
+-    let mut x1084: u32 = 0;
+-    let mut x1085: u32 = 0;
+     let (x1084, x1085) = fiat_p384_mulx_u32(x8, (arg1[10]));
+-    let mut x1086: u32 = 0;
+-    let mut x1087: u32 = 0;
+     let (x1086, x1087) = fiat_p384_mulx_u32(x8, (arg1[9]));
+-    let mut x1088: u32 = 0;
+-    let mut x1089: u32 = 0;
+     let (x1088, x1089) = fiat_p384_mulx_u32(x8, (arg1[8]));
+-    let mut x1090: u32 = 0;
+-    let mut x1091: u32 = 0;
+     let (x1090, x1091) = fiat_p384_mulx_u32(x8, (arg1[7]));
+-    let mut x1092: u32 = 0;
+-    let mut x1093: u32 = 0;
+     let (x1092, x1093) = fiat_p384_mulx_u32(x8, (arg1[6]));
+-    let mut x1094: u32 = 0;
+-    let mut x1095: u32 = 0;
+     let (x1094, x1095) = fiat_p384_mulx_u32(x8, (arg1[5]));
+-    let mut x1096: u32 = 0;
+-    let mut x1097: u32 = 0;
+     let (x1096, x1097) = fiat_p384_mulx_u32(x8, (arg1[4]));
+-    let mut x1098: u32 = 0;
+-    let mut x1099: u32 = 0;
+     let (x1098, x1099) = fiat_p384_mulx_u32(x8, (arg1[3]));
+-    let mut x1100: u32 = 0;
+-    let mut x1101: u32 = 0;
+     let (x1100, x1101) = fiat_p384_mulx_u32(x8, (arg1[2]));
+-    let mut x1102: u32 = 0;
+-    let mut x1103: u32 = 0;
+     let (x1102, x1103) = fiat_p384_mulx_u32(x8, (arg1[1]));
+-    let mut x1104: u32 = 0;
+-    let mut x1105: u32 = 0;
+     let (x1104, x1105) = fiat_p384_mulx_u32(x8, (arg1[0]));
+-    let mut x1106: u32 = 0;
+-    let mut x1107: fiat_p384_u1 = 0;
+     let (x1106, x1107) = fiat_p384_addcarryx_u32(0x0, x1105, x1102);
+-    let mut x1108: u32 = 0;
+-    let mut x1109: fiat_p384_u1 = 0;
+     let (x1108, x1109) = fiat_p384_addcarryx_u32(x1107, x1103, x1100);
+-    let mut x1110: u32 = 0;
+-    let mut x1111: fiat_p384_u1 = 0;
+     let (x1110, x1111) = fiat_p384_addcarryx_u32(x1109, x1101, x1098);
+-    let mut x1112: u32 = 0;
+-    let mut x1113: fiat_p384_u1 = 0;
+     let (x1112, x1113) = fiat_p384_addcarryx_u32(x1111, x1099, x1096);
+-    let mut x1114: u32 = 0;
+-    let mut x1115: fiat_p384_u1 = 0;
+     let (x1114, x1115) = fiat_p384_addcarryx_u32(x1113, x1097, x1094);
+-    let mut x1116: u32 = 0;
+-    let mut x1117: fiat_p384_u1 = 0;
+     let (x1116, x1117) = fiat_p384_addcarryx_u32(x1115, x1095, x1092);
+-    let mut x1118: u32 = 0;
+-    let mut x1119: fiat_p384_u1 = 0;
+     let (x1118, x1119) = fiat_p384_addcarryx_u32(x1117, x1093, x1090);
+-    let mut x1120: u32 = 0;
+-    let mut x1121: fiat_p384_u1 = 0;
+     let (x1120, x1121) = fiat_p384_addcarryx_u32(x1119, x1091, x1088);
+-    let mut x1122: u32 = 0;
+-    let mut x1123: fiat_p384_u1 = 0;
+     let (x1122, x1123) = fiat_p384_addcarryx_u32(x1121, x1089, x1086);
+-    let mut x1124: u32 = 0;
+-    let mut x1125: fiat_p384_u1 = 0;
+     let (x1124, x1125) = fiat_p384_addcarryx_u32(x1123, x1087, x1084);
+-    let mut x1126: u32 = 0;
+-    let mut x1127: fiat_p384_u1 = 0;
+     let (x1126, x1127) = fiat_p384_addcarryx_u32(x1125, x1085, x1082);
+     let x1128: u32 = ((x1127 as u32) + x1083);
+-    let mut x1129: u32 = 0;
+-    let mut x1130: fiat_p384_u1 = 0;
+     let (x1129, x1130) = fiat_p384_addcarryx_u32(0x0, x1057, x1104);
+-    let mut x1131: u32 = 0;
+-    let mut x1132: fiat_p384_u1 = 0;
+     let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1059, x1106);
+-    let mut x1133: u32 = 0;
+-    let mut x1134: fiat_p384_u1 = 0;
+     let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1061, x1108);
+-    let mut x1135: u32 = 0;
+-    let mut x1136: fiat_p384_u1 = 0;
+     let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1063, x1110);
+-    let mut x1137: u32 = 0;
+-    let mut x1138: fiat_p384_u1 = 0;
+     let (x1137, x1138) = fiat_p384_addcarryx_u32(x1136, x1065, x1112);
+-    let mut x1139: u32 = 0;
+-    let mut x1140: fiat_p384_u1 = 0;
+     let (x1139, x1140) = fiat_p384_addcarryx_u32(x1138, x1067, x1114);
+-    let mut x1141: u32 = 0;
+-    let mut x1142: fiat_p384_u1 = 0;
+     let (x1141, x1142) = fiat_p384_addcarryx_u32(x1140, x1069, x1116);
+-    let mut x1143: u32 = 0;
+-    let mut x1144: fiat_p384_u1 = 0;
+     let (x1143, x1144) = fiat_p384_addcarryx_u32(x1142, x1071, x1118);
+-    let mut x1145: u32 = 0;
+-    let mut x1146: fiat_p384_u1 = 0;
+     let (x1145, x1146) = fiat_p384_addcarryx_u32(x1144, x1073, x1120);
+-    let mut x1147: u32 = 0;
+-    let mut x1148: fiat_p384_u1 = 0;
+     let (x1147, x1148) = fiat_p384_addcarryx_u32(x1146, x1075, x1122);
+-    let mut x1149: u32 = 0;
+-    let mut x1150: fiat_p384_u1 = 0;
+     let (x1149, x1150) = fiat_p384_addcarryx_u32(x1148, x1077, x1124);
+-    let mut x1151: u32 = 0;
+-    let mut x1152: fiat_p384_u1 = 0;
+     let (x1151, x1152) = fiat_p384_addcarryx_u32(x1150, x1079, x1126);
+-    let mut x1153: u32 = 0;
+-    let mut x1154: fiat_p384_u1 = 0;
+     let (x1153, x1154) = fiat_p384_addcarryx_u32(x1152, x1081, x1128);
+-    let mut x1155: u32 = 0;
+-    let mut x1156: u32 = 0;
+     let (x1155, x1156) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1157: u32 = 0;
+-    let mut x1158: u32 = 0;
+     let (x1157, x1158) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1159: u32 = 0;
+-    let mut x1160: u32 = 0;
+     let (x1159, x1160) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1161: u32 = 0;
+-    let mut x1162: u32 = 0;
+     let (x1161, x1162) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1163: u32 = 0;
+-    let mut x1164: u32 = 0;
+     let (x1163, x1164) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1165: u32 = 0;
+-    let mut x1166: u32 = 0;
+     let (x1165, x1166) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1167: u32 = 0;
+-    let mut x1168: u32 = 0;
+     let (x1167, x1168) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1169: u32 = 0;
+-    let mut x1170: u32 = 0;
+     let (x1169, x1170) = fiat_p384_mulx_u32(x1129, 0xfffffffe);
+-    let mut x1171: u32 = 0;
+-    let mut x1172: u32 = 0;
+     let (x1171, x1172) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1173: u32 = 0;
+-    let mut x1174: u32 = 0;
+     let (x1173, x1174) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+-    let mut x1175: u32 = 0;
+-    let mut x1176: fiat_p384_u1 = 0;
+     let (x1175, x1176) = fiat_p384_addcarryx_u32(0x0, x1172, x1169);
+-    let mut x1177: u32 = 0;
+-    let mut x1178: fiat_p384_u1 = 0;
+     let (x1177, x1178) = fiat_p384_addcarryx_u32(x1176, x1170, x1167);
+-    let mut x1179: u32 = 0;
+-    let mut x1180: fiat_p384_u1 = 0;
+     let (x1179, x1180) = fiat_p384_addcarryx_u32(x1178, x1168, x1165);
+-    let mut x1181: u32 = 0;
+-    let mut x1182: fiat_p384_u1 = 0;
+     let (x1181, x1182) = fiat_p384_addcarryx_u32(x1180, x1166, x1163);
+-    let mut x1183: u32 = 0;
+-    let mut x1184: fiat_p384_u1 = 0;
+     let (x1183, x1184) = fiat_p384_addcarryx_u32(x1182, x1164, x1161);
+-    let mut x1185: u32 = 0;
+-    let mut x1186: fiat_p384_u1 = 0;
+     let (x1185, x1186) = fiat_p384_addcarryx_u32(x1184, x1162, x1159);
+-    let mut x1187: u32 = 0;
+-    let mut x1188: fiat_p384_u1 = 0;
+     let (x1187, x1188) = fiat_p384_addcarryx_u32(x1186, x1160, x1157);
+-    let mut x1189: u32 = 0;
+-    let mut x1190: fiat_p384_u1 = 0;
+     let (x1189, x1190) = fiat_p384_addcarryx_u32(x1188, x1158, x1155);
+     let x1191: u32 = ((x1190 as u32) + x1156);
+-    let mut x1192: u32 = 0;
+-    let mut x1193: fiat_p384_u1 = 0;
+     let (x1192, x1193) = fiat_p384_addcarryx_u32(0x0, x1129, x1173);
+-    let mut x1194: u32 = 0;
+-    let mut x1195: fiat_p384_u1 = 0;
+     let (x1194, x1195) = fiat_p384_addcarryx_u32(x1193, x1131, x1174);
+-    let mut x1196: u32 = 0;
+-    let mut x1197: fiat_p384_u1 = 0;
+     let (x1196, x1197) = fiat_p384_addcarryx_u32(x1195, x1133, (0x0 as u32));
+-    let mut x1198: u32 = 0;
+-    let mut x1199: fiat_p384_u1 = 0;
+     let (x1198, x1199) = fiat_p384_addcarryx_u32(x1197, x1135, x1171);
+-    let mut x1200: u32 = 0;
+-    let mut x1201: fiat_p384_u1 = 0;
+     let (x1200, x1201) = fiat_p384_addcarryx_u32(x1199, x1137, x1175);
+-    let mut x1202: u32 = 0;
+-    let mut x1203: fiat_p384_u1 = 0;
+     let (x1202, x1203) = fiat_p384_addcarryx_u32(x1201, x1139, x1177);
+-    let mut x1204: u32 = 0;
+-    let mut x1205: fiat_p384_u1 = 0;
+     let (x1204, x1205) = fiat_p384_addcarryx_u32(x1203, x1141, x1179);
+-    let mut x1206: u32 = 0;
+-    let mut x1207: fiat_p384_u1 = 0;
+     let (x1206, x1207) = fiat_p384_addcarryx_u32(x1205, x1143, x1181);
+-    let mut x1208: u32 = 0;
+-    let mut x1209: fiat_p384_u1 = 0;
+     let (x1208, x1209) = fiat_p384_addcarryx_u32(x1207, x1145, x1183);
+-    let mut x1210: u32 = 0;
+-    let mut x1211: fiat_p384_u1 = 0;
+     let (x1210, x1211) = fiat_p384_addcarryx_u32(x1209, x1147, x1185);
+-    let mut x1212: u32 = 0;
+-    let mut x1213: fiat_p384_u1 = 0;
+     let (x1212, x1213) = fiat_p384_addcarryx_u32(x1211, x1149, x1187);
+-    let mut x1214: u32 = 0;
+-    let mut x1215: fiat_p384_u1 = 0;
+     let (x1214, x1215) = fiat_p384_addcarryx_u32(x1213, x1151, x1189);
+-    let mut x1216: u32 = 0;
+-    let mut x1217: fiat_p384_u1 = 0;
+     let (x1216, x1217) = fiat_p384_addcarryx_u32(x1215, x1153, x1191);
+     let x1218: u32 = ((x1217 as u32) + (x1154 as u32));
+-    let mut x1219: u32 = 0;
+-    let mut x1220: u32 = 0;
+     let (x1219, x1220) = fiat_p384_mulx_u32(x9, (arg1[11]));
+-    let mut x1221: u32 = 0;
+-    let mut x1222: u32 = 0;
+     let (x1221, x1222) = fiat_p384_mulx_u32(x9, (arg1[10]));
+-    let mut x1223: u32 = 0;
+-    let mut x1224: u32 = 0;
+     let (x1223, x1224) = fiat_p384_mulx_u32(x9, (arg1[9]));
+-    let mut x1225: u32 = 0;
+-    let mut x1226: u32 = 0;
+     let (x1225, x1226) = fiat_p384_mulx_u32(x9, (arg1[8]));
+-    let mut x1227: u32 = 0;
+-    let mut x1228: u32 = 0;
+     let (x1227, x1228) = fiat_p384_mulx_u32(x9, (arg1[7]));
+-    let mut x1229: u32 = 0;
+-    let mut x1230: u32 = 0;
+     let (x1229, x1230) = fiat_p384_mulx_u32(x9, (arg1[6]));
+-    let mut x1231: u32 = 0;
+-    let mut x1232: u32 = 0;
+     let (x1231, x1232) = fiat_p384_mulx_u32(x9, (arg1[5]));
+-    let mut x1233: u32 = 0;
+-    let mut x1234: u32 = 0;
+     let (x1233, x1234) = fiat_p384_mulx_u32(x9, (arg1[4]));
+-    let mut x1235: u32 = 0;
+-    let mut x1236: u32 = 0;
+     let (x1235, x1236) = fiat_p384_mulx_u32(x9, (arg1[3]));
+-    let mut x1237: u32 = 0;
+-    let mut x1238: u32 = 0;
+     let (x1237, x1238) = fiat_p384_mulx_u32(x9, (arg1[2]));
+-    let mut x1239: u32 = 0;
+-    let mut x1240: u32 = 0;
+     let (x1239, x1240) = fiat_p384_mulx_u32(x9, (arg1[1]));
+-    let mut x1241: u32 = 0;
+-    let mut x1242: u32 = 0;
+     let (x1241, x1242) = fiat_p384_mulx_u32(x9, (arg1[0]));
+-    let mut x1243: u32 = 0;
+-    let mut x1244: fiat_p384_u1 = 0;
+     let (x1243, x1244) = fiat_p384_addcarryx_u32(0x0, x1242, x1239);
+-    let mut x1245: u32 = 0;
+-    let mut x1246: fiat_p384_u1 = 0;
+     let (x1245, x1246) = fiat_p384_addcarryx_u32(x1244, x1240, x1237);
+-    let mut x1247: u32 = 0;
+-    let mut x1248: fiat_p384_u1 = 0;
+     let (x1247, x1248) = fiat_p384_addcarryx_u32(x1246, x1238, x1235);
+-    let mut x1249: u32 = 0;
+-    let mut x1250: fiat_p384_u1 = 0;
+     let (x1249, x1250) = fiat_p384_addcarryx_u32(x1248, x1236, x1233);
+-    let mut x1251: u32 = 0;
+-    let mut x1252: fiat_p384_u1 = 0;
+     let (x1251, x1252) = fiat_p384_addcarryx_u32(x1250, x1234, x1231);
+-    let mut x1253: u32 = 0;
+-    let mut x1254: fiat_p384_u1 = 0;
+     let (x1253, x1254) = fiat_p384_addcarryx_u32(x1252, x1232, x1229);
+-    let mut x1255: u32 = 0;
+-    let mut x1256: fiat_p384_u1 = 0;
+     let (x1255, x1256) = fiat_p384_addcarryx_u32(x1254, x1230, x1227);
+-    let mut x1257: u32 = 0;
+-    let mut x1258: fiat_p384_u1 = 0;
+     let (x1257, x1258) = fiat_p384_addcarryx_u32(x1256, x1228, x1225);
+-    let mut x1259: u32 = 0;
+-    let mut x1260: fiat_p384_u1 = 0;
+     let (x1259, x1260) = fiat_p384_addcarryx_u32(x1258, x1226, x1223);
+-    let mut x1261: u32 = 0;
+-    let mut x1262: fiat_p384_u1 = 0;
+     let (x1261, x1262) = fiat_p384_addcarryx_u32(x1260, x1224, x1221);
+-    let mut x1263: u32 = 0;
+-    let mut x1264: fiat_p384_u1 = 0;
+     let (x1263, x1264) = fiat_p384_addcarryx_u32(x1262, x1222, x1219);
+     let x1265: u32 = ((x1264 as u32) + x1220);
+-    let mut x1266: u32 = 0;
+-    let mut x1267: fiat_p384_u1 = 0;
+     let (x1266, x1267) = fiat_p384_addcarryx_u32(0x0, x1194, x1241);
+-    let mut x1268: u32 = 0;
+-    let mut x1269: fiat_p384_u1 = 0;
+     let (x1268, x1269) = fiat_p384_addcarryx_u32(x1267, x1196, x1243);
+-    let mut x1270: u32 = 0;
+-    let mut x1271: fiat_p384_u1 = 0;
+     let (x1270, x1271) = fiat_p384_addcarryx_u32(x1269, x1198, x1245);
+-    let mut x1272: u32 = 0;
+-    let mut x1273: fiat_p384_u1 = 0;
+     let (x1272, x1273) = fiat_p384_addcarryx_u32(x1271, x1200, x1247);
+-    let mut x1274: u32 = 0;
+-    let mut x1275: fiat_p384_u1 = 0;
+     let (x1274, x1275) = fiat_p384_addcarryx_u32(x1273, x1202, x1249);
+-    let mut x1276: u32 = 0;
+-    let mut x1277: fiat_p384_u1 = 0;
+     let (x1276, x1277) = fiat_p384_addcarryx_u32(x1275, x1204, x1251);
+-    let mut x1278: u32 = 0;
+-    let mut x1279: fiat_p384_u1 = 0;
+     let (x1278, x1279) = fiat_p384_addcarryx_u32(x1277, x1206, x1253);
+-    let mut x1280: u32 = 0;
+-    let mut x1281: fiat_p384_u1 = 0;
+     let (x1280, x1281) = fiat_p384_addcarryx_u32(x1279, x1208, x1255);
+-    let mut x1282: u32 = 0;
+-    let mut x1283: fiat_p384_u1 = 0;
+     let (x1282, x1283) = fiat_p384_addcarryx_u32(x1281, x1210, x1257);
+-    let mut x1284: u32 = 0;
+-    let mut x1285: fiat_p384_u1 = 0;
+     let (x1284, x1285) = fiat_p384_addcarryx_u32(x1283, x1212, x1259);
+-    let mut x1286: u32 = 0;
+-    let mut x1287: fiat_p384_u1 = 0;
+     let (x1286, x1287) = fiat_p384_addcarryx_u32(x1285, x1214, x1261);
+-    let mut x1288: u32 = 0;
+-    let mut x1289: fiat_p384_u1 = 0;
+     let (x1288, x1289) = fiat_p384_addcarryx_u32(x1287, x1216, x1263);
+-    let mut x1290: u32 = 0;
+-    let mut x1291: fiat_p384_u1 = 0;
+     let (x1290, x1291) = fiat_p384_addcarryx_u32(x1289, x1218, x1265);
+-    let mut x1292: u32 = 0;
+-    let mut x1293: u32 = 0;
+     let (x1292, x1293) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1294: u32 = 0;
+-    let mut x1295: u32 = 0;
+     let (x1294, x1295) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1296: u32 = 0;
+-    let mut x1297: u32 = 0;
+     let (x1296, x1297) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1298: u32 = 0;
+-    let mut x1299: u32 = 0;
+     let (x1298, x1299) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1300: u32 = 0;
+-    let mut x1301: u32 = 0;
+     let (x1300, x1301) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1302: u32 = 0;
+-    let mut x1303: u32 = 0;
+     let (x1302, x1303) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1304: u32 = 0;
+-    let mut x1305: u32 = 0;
+     let (x1304, x1305) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1306: u32 = 0;
+-    let mut x1307: u32 = 0;
+     let (x1306, x1307) = fiat_p384_mulx_u32(x1266, 0xfffffffe);
+-    let mut x1308: u32 = 0;
+-    let mut x1309: u32 = 0;
+     let (x1308, x1309) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1310: u32 = 0;
+-    let mut x1311: u32 = 0;
+     let (x1310, x1311) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+-    let mut x1312: u32 = 0;
+-    let mut x1313: fiat_p384_u1 = 0;
+     let (x1312, x1313) = fiat_p384_addcarryx_u32(0x0, x1309, x1306);
+-    let mut x1314: u32 = 0;
+-    let mut x1315: fiat_p384_u1 = 0;
+     let (x1314, x1315) = fiat_p384_addcarryx_u32(x1313, x1307, x1304);
+-    let mut x1316: u32 = 0;
+-    let mut x1317: fiat_p384_u1 = 0;
+     let (x1316, x1317) = fiat_p384_addcarryx_u32(x1315, x1305, x1302);
+-    let mut x1318: u32 = 0;
+-    let mut x1319: fiat_p384_u1 = 0;
+     let (x1318, x1319) = fiat_p384_addcarryx_u32(x1317, x1303, x1300);
+-    let mut x1320: u32 = 0;
+-    let mut x1321: fiat_p384_u1 = 0;
+     let (x1320, x1321) = fiat_p384_addcarryx_u32(x1319, x1301, x1298);
+-    let mut x1322: u32 = 0;
+-    let mut x1323: fiat_p384_u1 = 0;
+     let (x1322, x1323) = fiat_p384_addcarryx_u32(x1321, x1299, x1296);
+-    let mut x1324: u32 = 0;
+-    let mut x1325: fiat_p384_u1 = 0;
+     let (x1324, x1325) = fiat_p384_addcarryx_u32(x1323, x1297, x1294);
+-    let mut x1326: u32 = 0;
+-    let mut x1327: fiat_p384_u1 = 0;
+     let (x1326, x1327) = fiat_p384_addcarryx_u32(x1325, x1295, x1292);
+     let x1328: u32 = ((x1327 as u32) + x1293);
+-    let mut x1329: u32 = 0;
+-    let mut x1330: fiat_p384_u1 = 0;
+     let (x1329, x1330) = fiat_p384_addcarryx_u32(0x0, x1266, x1310);
+-    let mut x1331: u32 = 0;
+-    let mut x1332: fiat_p384_u1 = 0;
+     let (x1331, x1332) = fiat_p384_addcarryx_u32(x1330, x1268, x1311);
+-    let mut x1333: u32 = 0;
+-    let mut x1334: fiat_p384_u1 = 0;
+     let (x1333, x1334) = fiat_p384_addcarryx_u32(x1332, x1270, (0x0 as u32));
+-    let mut x1335: u32 = 0;
+-    let mut x1336: fiat_p384_u1 = 0;
+     let (x1335, x1336) = fiat_p384_addcarryx_u32(x1334, x1272, x1308);
+-    let mut x1337: u32 = 0;
+-    let mut x1338: fiat_p384_u1 = 0;
+     let (x1337, x1338) = fiat_p384_addcarryx_u32(x1336, x1274, x1312);
+-    let mut x1339: u32 = 0;
+-    let mut x1340: fiat_p384_u1 = 0;
+     let (x1339, x1340) = fiat_p384_addcarryx_u32(x1338, x1276, x1314);
+-    let mut x1341: u32 = 0;
+-    let mut x1342: fiat_p384_u1 = 0;
+     let (x1341, x1342) = fiat_p384_addcarryx_u32(x1340, x1278, x1316);
+-    let mut x1343: u32 = 0;
+-    let mut x1344: fiat_p384_u1 = 0;
+     let (x1343, x1344) = fiat_p384_addcarryx_u32(x1342, x1280, x1318);
+-    let mut x1345: u32 = 0;
+-    let mut x1346: fiat_p384_u1 = 0;
+     let (x1345, x1346) = fiat_p384_addcarryx_u32(x1344, x1282, x1320);
+-    let mut x1347: u32 = 0;
+-    let mut x1348: fiat_p384_u1 = 0;
+     let (x1347, x1348) = fiat_p384_addcarryx_u32(x1346, x1284, x1322);
+-    let mut x1349: u32 = 0;
+-    let mut x1350: fiat_p384_u1 = 0;
+     let (x1349, x1350) = fiat_p384_addcarryx_u32(x1348, x1286, x1324);
+-    let mut x1351: u32 = 0;
+-    let mut x1352: fiat_p384_u1 = 0;
+     let (x1351, x1352) = fiat_p384_addcarryx_u32(x1350, x1288, x1326);
+-    let mut x1353: u32 = 0;
+-    let mut x1354: fiat_p384_u1 = 0;
+     let (x1353, x1354) = fiat_p384_addcarryx_u32(x1352, x1290, x1328);
+     let x1355: u32 = ((x1354 as u32) + (x1291 as u32));
+-    let mut x1356: u32 = 0;
+-    let mut x1357: u32 = 0;
+     let (x1356, x1357) = fiat_p384_mulx_u32(x10, (arg1[11]));
+-    let mut x1358: u32 = 0;
+-    let mut x1359: u32 = 0;
+     let (x1358, x1359) = fiat_p384_mulx_u32(x10, (arg1[10]));
+-    let mut x1360: u32 = 0;
+-    let mut x1361: u32 = 0;
+     let (x1360, x1361) = fiat_p384_mulx_u32(x10, (arg1[9]));
+-    let mut x1362: u32 = 0;
+-    let mut x1363: u32 = 0;
+     let (x1362, x1363) = fiat_p384_mulx_u32(x10, (arg1[8]));
+-    let mut x1364: u32 = 0;
+-    let mut x1365: u32 = 0;
+     let (x1364, x1365) = fiat_p384_mulx_u32(x10, (arg1[7]));
+-    let mut x1366: u32 = 0;
+-    let mut x1367: u32 = 0;
+     let (x1366, x1367) = fiat_p384_mulx_u32(x10, (arg1[6]));
+-    let mut x1368: u32 = 0;
+-    let mut x1369: u32 = 0;
+     let (x1368, x1369) = fiat_p384_mulx_u32(x10, (arg1[5]));
+-    let mut x1370: u32 = 0;
+-    let mut x1371: u32 = 0;
+     let (x1370, x1371) = fiat_p384_mulx_u32(x10, (arg1[4]));
+-    let mut x1372: u32 = 0;
+-    let mut x1373: u32 = 0;
+     let (x1372, x1373) = fiat_p384_mulx_u32(x10, (arg1[3]));
+-    let mut x1374: u32 = 0;
+-    let mut x1375: u32 = 0;
+     let (x1374, x1375) = fiat_p384_mulx_u32(x10, (arg1[2]));
+-    let mut x1376: u32 = 0;
+-    let mut x1377: u32 = 0;
+     let (x1376, x1377) = fiat_p384_mulx_u32(x10, (arg1[1]));
+-    let mut x1378: u32 = 0;
+-    let mut x1379: u32 = 0;
+     let (x1378, x1379) = fiat_p384_mulx_u32(x10, (arg1[0]));
+-    let mut x1380: u32 = 0;
+-    let mut x1381: fiat_p384_u1 = 0;
+     let (x1380, x1381) = fiat_p384_addcarryx_u32(0x0, x1379, x1376);
+-    let mut x1382: u32 = 0;
+-    let mut x1383: fiat_p384_u1 = 0;
+     let (x1382, x1383) = fiat_p384_addcarryx_u32(x1381, x1377, x1374);
+-    let mut x1384: u32 = 0;
+-    let mut x1385: fiat_p384_u1 = 0;
+     let (x1384, x1385) = fiat_p384_addcarryx_u32(x1383, x1375, x1372);
+-    let mut x1386: u32 = 0;
+-    let mut x1387: fiat_p384_u1 = 0;
+     let (x1386, x1387) = fiat_p384_addcarryx_u32(x1385, x1373, x1370);
+-    let mut x1388: u32 = 0;
+-    let mut x1389: fiat_p384_u1 = 0;
+     let (x1388, x1389) = fiat_p384_addcarryx_u32(x1387, x1371, x1368);
+-    let mut x1390: u32 = 0;
+-    let mut x1391: fiat_p384_u1 = 0;
+     let (x1390, x1391) = fiat_p384_addcarryx_u32(x1389, x1369, x1366);
+-    let mut x1392: u32 = 0;
+-    let mut x1393: fiat_p384_u1 = 0;
+     let (x1392, x1393) = fiat_p384_addcarryx_u32(x1391, x1367, x1364);
+-    let mut x1394: u32 = 0;
+-    let mut x1395: fiat_p384_u1 = 0;
+     let (x1394, x1395) = fiat_p384_addcarryx_u32(x1393, x1365, x1362);
+-    let mut x1396: u32 = 0;
+-    let mut x1397: fiat_p384_u1 = 0;
+     let (x1396, x1397) = fiat_p384_addcarryx_u32(x1395, x1363, x1360);
+-    let mut x1398: u32 = 0;
+-    let mut x1399: fiat_p384_u1 = 0;
+     let (x1398, x1399) = fiat_p384_addcarryx_u32(x1397, x1361, x1358);
+-    let mut x1400: u32 = 0;
+-    let mut x1401: fiat_p384_u1 = 0;
+     let (x1400, x1401) = fiat_p384_addcarryx_u32(x1399, x1359, x1356);
+     let x1402: u32 = ((x1401 as u32) + x1357);
+-    let mut x1403: u32 = 0;
+-    let mut x1404: fiat_p384_u1 = 0;
+     let (x1403, x1404) = fiat_p384_addcarryx_u32(0x0, x1331, x1378);
+-    let mut x1405: u32 = 0;
+-    let mut x1406: fiat_p384_u1 = 0;
+     let (x1405, x1406) = fiat_p384_addcarryx_u32(x1404, x1333, x1380);
+-    let mut x1407: u32 = 0;
+-    let mut x1408: fiat_p384_u1 = 0;
+     let (x1407, x1408) = fiat_p384_addcarryx_u32(x1406, x1335, x1382);
+-    let mut x1409: u32 = 0;
+-    let mut x1410: fiat_p384_u1 = 0;
+     let (x1409, x1410) = fiat_p384_addcarryx_u32(x1408, x1337, x1384);
+-    let mut x1411: u32 = 0;
+-    let mut x1412: fiat_p384_u1 = 0;
+     let (x1411, x1412) = fiat_p384_addcarryx_u32(x1410, x1339, x1386);
+-    let mut x1413: u32 = 0;
+-    let mut x1414: fiat_p384_u1 = 0;
+     let (x1413, x1414) = fiat_p384_addcarryx_u32(x1412, x1341, x1388);
+-    let mut x1415: u32 = 0;
+-    let mut x1416: fiat_p384_u1 = 0;
+     let (x1415, x1416) = fiat_p384_addcarryx_u32(x1414, x1343, x1390);
+-    let mut x1417: u32 = 0;
+-    let mut x1418: fiat_p384_u1 = 0;
+     let (x1417, x1418) = fiat_p384_addcarryx_u32(x1416, x1345, x1392);
+-    let mut x1419: u32 = 0;
+-    let mut x1420: fiat_p384_u1 = 0;
+     let (x1419, x1420) = fiat_p384_addcarryx_u32(x1418, x1347, x1394);
+-    let mut x1421: u32 = 0;
+-    let mut x1422: fiat_p384_u1 = 0;
+     let (x1421, x1422) = fiat_p384_addcarryx_u32(x1420, x1349, x1396);
+-    let mut x1423: u32 = 0;
+-    let mut x1424: fiat_p384_u1 = 0;
+     let (x1423, x1424) = fiat_p384_addcarryx_u32(x1422, x1351, x1398);
+-    let mut x1425: u32 = 0;
+-    let mut x1426: fiat_p384_u1 = 0;
+     let (x1425, x1426) = fiat_p384_addcarryx_u32(x1424, x1353, x1400);
+-    let mut x1427: u32 = 0;
+-    let mut x1428: fiat_p384_u1 = 0;
+     let (x1427, x1428) = fiat_p384_addcarryx_u32(x1426, x1355, x1402);
+-    let mut x1429: u32 = 0;
+-    let mut x1430: u32 = 0;
+     let (x1429, x1430) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1431: u32 = 0;
+-    let mut x1432: u32 = 0;
+     let (x1431, x1432) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1433: u32 = 0;
+-    let mut x1434: u32 = 0;
+     let (x1433, x1434) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1435: u32 = 0;
+-    let mut x1436: u32 = 0;
+     let (x1435, x1436) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1437: u32 = 0;
+-    let mut x1438: u32 = 0;
+     let (x1437, x1438) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1439: u32 = 0;
+-    let mut x1440: u32 = 0;
+     let (x1439, x1440) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1441: u32 = 0;
+-    let mut x1442: u32 = 0;
+     let (x1441, x1442) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1443: u32 = 0;
+-    let mut x1444: u32 = 0;
+     let (x1443, x1444) = fiat_p384_mulx_u32(x1403, 0xfffffffe);
+-    let mut x1445: u32 = 0;
+-    let mut x1446: u32 = 0;
+     let (x1445, x1446) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1447: u32 = 0;
+-    let mut x1448: u32 = 0;
+     let (x1447, x1448) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+-    let mut x1449: u32 = 0;
+-    let mut x1450: fiat_p384_u1 = 0;
+     let (x1449, x1450) = fiat_p384_addcarryx_u32(0x0, x1446, x1443);
+-    let mut x1451: u32 = 0;
+-    let mut x1452: fiat_p384_u1 = 0;
+     let (x1451, x1452) = fiat_p384_addcarryx_u32(x1450, x1444, x1441);
+-    let mut x1453: u32 = 0;
+-    let mut x1454: fiat_p384_u1 = 0;
+     let (x1453, x1454) = fiat_p384_addcarryx_u32(x1452, x1442, x1439);
+-    let mut x1455: u32 = 0;
+-    let mut x1456: fiat_p384_u1 = 0;
+     let (x1455, x1456) = fiat_p384_addcarryx_u32(x1454, x1440, x1437);
+-    let mut x1457: u32 = 0;
+-    let mut x1458: fiat_p384_u1 = 0;
+     let (x1457, x1458) = fiat_p384_addcarryx_u32(x1456, x1438, x1435);
+-    let mut x1459: u32 = 0;
+-    let mut x1460: fiat_p384_u1 = 0;
+     let (x1459, x1460) = fiat_p384_addcarryx_u32(x1458, x1436, x1433);
+-    let mut x1461: u32 = 0;
+-    let mut x1462: fiat_p384_u1 = 0;
+     let (x1461, x1462) = fiat_p384_addcarryx_u32(x1460, x1434, x1431);
+-    let mut x1463: u32 = 0;
+-    let mut x1464: fiat_p384_u1 = 0;
+     let (x1463, x1464) = fiat_p384_addcarryx_u32(x1462, x1432, x1429);
+     let x1465: u32 = ((x1464 as u32) + x1430);
+-    let mut x1466: u32 = 0;
+-    let mut x1467: fiat_p384_u1 = 0;
+     let (x1466, x1467) = fiat_p384_addcarryx_u32(0x0, x1403, x1447);
+-    let mut x1468: u32 = 0;
+-    let mut x1469: fiat_p384_u1 = 0;
+     let (x1468, x1469) = fiat_p384_addcarryx_u32(x1467, x1405, x1448);
+-    let mut x1470: u32 = 0;
+-    let mut x1471: fiat_p384_u1 = 0;
+     let (x1470, x1471) = fiat_p384_addcarryx_u32(x1469, x1407, (0x0 as u32));
+-    let mut x1472: u32 = 0;
+-    let mut x1473: fiat_p384_u1 = 0;
+     let (x1472, x1473) = fiat_p384_addcarryx_u32(x1471, x1409, x1445);
+-    let mut x1474: u32 = 0;
+-    let mut x1475: fiat_p384_u1 = 0;
+     let (x1474, x1475) = fiat_p384_addcarryx_u32(x1473, x1411, x1449);
+-    let mut x1476: u32 = 0;
+-    let mut x1477: fiat_p384_u1 = 0;
+     let (x1476, x1477) = fiat_p384_addcarryx_u32(x1475, x1413, x1451);
+-    let mut x1478: u32 = 0;
+-    let mut x1479: fiat_p384_u1 = 0;
+     let (x1478, x1479) = fiat_p384_addcarryx_u32(x1477, x1415, x1453);
+-    let mut x1480: u32 = 0;
+-    let mut x1481: fiat_p384_u1 = 0;
+     let (x1480, x1481) = fiat_p384_addcarryx_u32(x1479, x1417, x1455);
+-    let mut x1482: u32 = 0;
+-    let mut x1483: fiat_p384_u1 = 0;
+     let (x1482, x1483) = fiat_p384_addcarryx_u32(x1481, x1419, x1457);
+-    let mut x1484: u32 = 0;
+-    let mut x1485: fiat_p384_u1 = 0;
+     let (x1484, x1485) = fiat_p384_addcarryx_u32(x1483, x1421, x1459);
+-    let mut x1486: u32 = 0;
+-    let mut x1487: fiat_p384_u1 = 0;
+     let (x1486, x1487) = fiat_p384_addcarryx_u32(x1485, x1423, x1461);
+-    let mut x1488: u32 = 0;
+-    let mut x1489: fiat_p384_u1 = 0;
+     let (x1488, x1489) = fiat_p384_addcarryx_u32(x1487, x1425, x1463);
+-    let mut x1490: u32 = 0;
+-    let mut x1491: fiat_p384_u1 = 0;
+     let (x1490, x1491) = fiat_p384_addcarryx_u32(x1489, x1427, x1465);
+     let x1492: u32 = ((x1491 as u32) + (x1428 as u32));
+-    let mut x1493: u32 = 0;
+-    let mut x1494: u32 = 0;
+     let (x1493, x1494) = fiat_p384_mulx_u32(x11, (arg1[11]));
+-    let mut x1495: u32 = 0;
+-    let mut x1496: u32 = 0;
+     let (x1495, x1496) = fiat_p384_mulx_u32(x11, (arg1[10]));
+-    let mut x1497: u32 = 0;
+-    let mut x1498: u32 = 0;
+     let (x1497, x1498) = fiat_p384_mulx_u32(x11, (arg1[9]));
+-    let mut x1499: u32 = 0;
+-    let mut x1500: u32 = 0;
+     let (x1499, x1500) = fiat_p384_mulx_u32(x11, (arg1[8]));
+-    let mut x1501: u32 = 0;
+-    let mut x1502: u32 = 0;
+     let (x1501, x1502) = fiat_p384_mulx_u32(x11, (arg1[7]));
+-    let mut x1503: u32 = 0;
+-    let mut x1504: u32 = 0;
+     let (x1503, x1504) = fiat_p384_mulx_u32(x11, (arg1[6]));
+-    let mut x1505: u32 = 0;
+-    let mut x1506: u32 = 0;
+     let (x1505, x1506) = fiat_p384_mulx_u32(x11, (arg1[5]));
+-    let mut x1507: u32 = 0;
+-    let mut x1508: u32 = 0;
+     let (x1507, x1508) = fiat_p384_mulx_u32(x11, (arg1[4]));
+-    let mut x1509: u32 = 0;
+-    let mut x1510: u32 = 0;
+     let (x1509, x1510) = fiat_p384_mulx_u32(x11, (arg1[3]));
+-    let mut x1511: u32 = 0;
+-    let mut x1512: u32 = 0;
+     let (x1511, x1512) = fiat_p384_mulx_u32(x11, (arg1[2]));
+-    let mut x1513: u32 = 0;
+-    let mut x1514: u32 = 0;
+     let (x1513, x1514) = fiat_p384_mulx_u32(x11, (arg1[1]));
+-    let mut x1515: u32 = 0;
+-    let mut x1516: u32 = 0;
+     let (x1515, x1516) = fiat_p384_mulx_u32(x11, (arg1[0]));
+-    let mut x1517: u32 = 0;
+-    let mut x1518: fiat_p384_u1 = 0;
+     let (x1517, x1518) = fiat_p384_addcarryx_u32(0x0, x1516, x1513);
+-    let mut x1519: u32 = 0;
+-    let mut x1520: fiat_p384_u1 = 0;
+     let (x1519, x1520) = fiat_p384_addcarryx_u32(x1518, x1514, x1511);
+-    let mut x1521: u32 = 0;
+-    let mut x1522: fiat_p384_u1 = 0;
+     let (x1521, x1522) = fiat_p384_addcarryx_u32(x1520, x1512, x1509);
+-    let mut x1523: u32 = 0;
+-    let mut x1524: fiat_p384_u1 = 0;
+     let (x1523, x1524) = fiat_p384_addcarryx_u32(x1522, x1510, x1507);
+-    let mut x1525: u32 = 0;
+-    let mut x1526: fiat_p384_u1 = 0;
+     let (x1525, x1526) = fiat_p384_addcarryx_u32(x1524, x1508, x1505);
+-    let mut x1527: u32 = 0;
+-    let mut x1528: fiat_p384_u1 = 0;
+     let (x1527, x1528) = fiat_p384_addcarryx_u32(x1526, x1506, x1503);
+-    let mut x1529: u32 = 0;
+-    let mut x1530: fiat_p384_u1 = 0;
+     let (x1529, x1530) = fiat_p384_addcarryx_u32(x1528, x1504, x1501);
+-    let mut x1531: u32 = 0;
+-    let mut x1532: fiat_p384_u1 = 0;
+     let (x1531, x1532) = fiat_p384_addcarryx_u32(x1530, x1502, x1499);
+-    let mut x1533: u32 = 0;
+-    let mut x1534: fiat_p384_u1 = 0;
+     let (x1533, x1534) = fiat_p384_addcarryx_u32(x1532, x1500, x1497);
+-    let mut x1535: u32 = 0;
+-    let mut x1536: fiat_p384_u1 = 0;
+     let (x1535, x1536) = fiat_p384_addcarryx_u32(x1534, x1498, x1495);
+-    let mut x1537: u32 = 0;
+-    let mut x1538: fiat_p384_u1 = 0;
+     let (x1537, x1538) = fiat_p384_addcarryx_u32(x1536, x1496, x1493);
+     let x1539: u32 = ((x1538 as u32) + x1494);
+-    let mut x1540: u32 = 0;
+-    let mut x1541: fiat_p384_u1 = 0;
+     let (x1540, x1541) = fiat_p384_addcarryx_u32(0x0, x1468, x1515);
+-    let mut x1542: u32 = 0;
+-    let mut x1543: fiat_p384_u1 = 0;
+     let (x1542, x1543) = fiat_p384_addcarryx_u32(x1541, x1470, x1517);
+-    let mut x1544: u32 = 0;
+-    let mut x1545: fiat_p384_u1 = 0;
+     let (x1544, x1545) = fiat_p384_addcarryx_u32(x1543, x1472, x1519);
+-    let mut x1546: u32 = 0;
+-    let mut x1547: fiat_p384_u1 = 0;
+     let (x1546, x1547) = fiat_p384_addcarryx_u32(x1545, x1474, x1521);
+-    let mut x1548: u32 = 0;
+-    let mut x1549: fiat_p384_u1 = 0;
+     let (x1548, x1549) = fiat_p384_addcarryx_u32(x1547, x1476, x1523);
+-    let mut x1550: u32 = 0;
+-    let mut x1551: fiat_p384_u1 = 0;
+     let (x1550, x1551) = fiat_p384_addcarryx_u32(x1549, x1478, x1525);
+-    let mut x1552: u32 = 0;
+-    let mut x1553: fiat_p384_u1 = 0;
+     let (x1552, x1553) = fiat_p384_addcarryx_u32(x1551, x1480, x1527);
+-    let mut x1554: u32 = 0;
+-    let mut x1555: fiat_p384_u1 = 0;
+     let (x1554, x1555) = fiat_p384_addcarryx_u32(x1553, x1482, x1529);
+-    let mut x1556: u32 = 0;
+-    let mut x1557: fiat_p384_u1 = 0;
+     let (x1556, x1557) = fiat_p384_addcarryx_u32(x1555, x1484, x1531);
+-    let mut x1558: u32 = 0;
+-    let mut x1559: fiat_p384_u1 = 0;
+     let (x1558, x1559) = fiat_p384_addcarryx_u32(x1557, x1486, x1533);
+-    let mut x1560: u32 = 0;
+-    let mut x1561: fiat_p384_u1 = 0;
+     let (x1560, x1561) = fiat_p384_addcarryx_u32(x1559, x1488, x1535);
+-    let mut x1562: u32 = 0;
+-    let mut x1563: fiat_p384_u1 = 0;
+     let (x1562, x1563) = fiat_p384_addcarryx_u32(x1561, x1490, x1537);
+-    let mut x1564: u32 = 0;
+-    let mut x1565: fiat_p384_u1 = 0;
+     let (x1564, x1565) = fiat_p384_addcarryx_u32(x1563, x1492, x1539);
+-    let mut x1566: u32 = 0;
+-    let mut x1567: u32 = 0;
+     let (x1566, x1567) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1568: u32 = 0;
+-    let mut x1569: u32 = 0;
+     let (x1568, x1569) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1570: u32 = 0;
+-    let mut x1571: u32 = 0;
+     let (x1570, x1571) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1572: u32 = 0;
+-    let mut x1573: u32 = 0;
+     let (x1572, x1573) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1574: u32 = 0;
+-    let mut x1575: u32 = 0;
+     let (x1574, x1575) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1576: u32 = 0;
+-    let mut x1577: u32 = 0;
+     let (x1576, x1577) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1578: u32 = 0;
+-    let mut x1579: u32 = 0;
+     let (x1578, x1579) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1580: u32 = 0;
+-    let mut x1581: u32 = 0;
+     let (x1580, x1581) = fiat_p384_mulx_u32(x1540, 0xfffffffe);
+-    let mut x1582: u32 = 0;
+-    let mut x1583: u32 = 0;
+     let (x1582, x1583) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1584: u32 = 0;
+-    let mut x1585: u32 = 0;
+     let (x1584, x1585) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+-    let mut x1586: u32 = 0;
+-    let mut x1587: fiat_p384_u1 = 0;
+     let (x1586, x1587) = fiat_p384_addcarryx_u32(0x0, x1583, x1580);
+-    let mut x1588: u32 = 0;
+-    let mut x1589: fiat_p384_u1 = 0;
+     let (x1588, x1589) = fiat_p384_addcarryx_u32(x1587, x1581, x1578);
+-    let mut x1590: u32 = 0;
+-    let mut x1591: fiat_p384_u1 = 0;
+     let (x1590, x1591) = fiat_p384_addcarryx_u32(x1589, x1579, x1576);
+-    let mut x1592: u32 = 0;
+-    let mut x1593: fiat_p384_u1 = 0;
+     let (x1592, x1593) = fiat_p384_addcarryx_u32(x1591, x1577, x1574);
+-    let mut x1594: u32 = 0;
+-    let mut x1595: fiat_p384_u1 = 0;
+     let (x1594, x1595) = fiat_p384_addcarryx_u32(x1593, x1575, x1572);
+-    let mut x1596: u32 = 0;
+-    let mut x1597: fiat_p384_u1 = 0;
+     let (x1596, x1597) = fiat_p384_addcarryx_u32(x1595, x1573, x1570);
+-    let mut x1598: u32 = 0;
+-    let mut x1599: fiat_p384_u1 = 0;
+     let (x1598, x1599) = fiat_p384_addcarryx_u32(x1597, x1571, x1568);
+-    let mut x1600: u32 = 0;
+-    let mut x1601: fiat_p384_u1 = 0;
+     let (x1600, x1601) = fiat_p384_addcarryx_u32(x1599, x1569, x1566);
+     let x1602: u32 = ((x1601 as u32) + x1567);
+-    let mut x1603: u32 = 0;
+-    let mut x1604: fiat_p384_u1 = 0;
+     let (x1603, x1604) = fiat_p384_addcarryx_u32(0x0, x1540, x1584);
+-    let mut x1605: u32 = 0;
+-    let mut x1606: fiat_p384_u1 = 0;
+     let (x1605, x1606) = fiat_p384_addcarryx_u32(x1604, x1542, x1585);
+-    let mut x1607: u32 = 0;
+-    let mut x1608: fiat_p384_u1 = 0;
+     let (x1607, x1608) = fiat_p384_addcarryx_u32(x1606, x1544, (0x0 as u32));
+-    let mut x1609: u32 = 0;
+-    let mut x1610: fiat_p384_u1 = 0;
+     let (x1609, x1610) = fiat_p384_addcarryx_u32(x1608, x1546, x1582);
+-    let mut x1611: u32 = 0;
+-    let mut x1612: fiat_p384_u1 = 0;
+     let (x1611, x1612) = fiat_p384_addcarryx_u32(x1610, x1548, x1586);
+-    let mut x1613: u32 = 0;
+-    let mut x1614: fiat_p384_u1 = 0;
+     let (x1613, x1614) = fiat_p384_addcarryx_u32(x1612, x1550, x1588);
+-    let mut x1615: u32 = 0;
+-    let mut x1616: fiat_p384_u1 = 0;
+     let (x1615, x1616) = fiat_p384_addcarryx_u32(x1614, x1552, x1590);
+-    let mut x1617: u32 = 0;
+-    let mut x1618: fiat_p384_u1 = 0;
+     let (x1617, x1618) = fiat_p384_addcarryx_u32(x1616, x1554, x1592);
+-    let mut x1619: u32 = 0;
+-    let mut x1620: fiat_p384_u1 = 0;
+     let (x1619, x1620) = fiat_p384_addcarryx_u32(x1618, x1556, x1594);
+-    let mut x1621: u32 = 0;
+-    let mut x1622: fiat_p384_u1 = 0;
+     let (x1621, x1622) = fiat_p384_addcarryx_u32(x1620, x1558, x1596);
+-    let mut x1623: u32 = 0;
+-    let mut x1624: fiat_p384_u1 = 0;
+     let (x1623, x1624) = fiat_p384_addcarryx_u32(x1622, x1560, x1598);
+-    let mut x1625: u32 = 0;
+-    let mut x1626: fiat_p384_u1 = 0;
+     let (x1625, x1626) = fiat_p384_addcarryx_u32(x1624, x1562, x1600);
+-    let mut x1627: u32 = 0;
+-    let mut x1628: fiat_p384_u1 = 0;
+     let (x1627, x1628) = fiat_p384_addcarryx_u32(x1626, x1564, x1602);
+     let x1629: u32 = ((x1628 as u32) + (x1565 as u32));
+-    let mut x1630: u32 = 0;
+-    let mut x1631: fiat_p384_u1 = 0;
+     let (x1630, x1631) = fiat_p384_subborrowx_u32(0x0, x1605, 0xffffffff);
+-    let mut x1632: u32 = 0;
+-    let mut x1633: fiat_p384_u1 = 0;
+     let (x1632, x1633) = fiat_p384_subborrowx_u32(x1631, x1607, (0x0 as u32));
+-    let mut x1634: u32 = 0;
+-    let mut x1635: fiat_p384_u1 = 0;
+     let (x1634, x1635) = fiat_p384_subborrowx_u32(x1633, x1609, (0x0 as u32));
+-    let mut x1636: u32 = 0;
+-    let mut x1637: fiat_p384_u1 = 0;
+     let (x1636, x1637) = fiat_p384_subborrowx_u32(x1635, x1611, 0xffffffff);
+-    let mut x1638: u32 = 0;
+-    let mut x1639: fiat_p384_u1 = 0;
+     let (x1638, x1639) = fiat_p384_subborrowx_u32(x1637, x1613, 0xfffffffe);
+-    let mut x1640: u32 = 0;
+-    let mut x1641: fiat_p384_u1 = 0;
+     let (x1640, x1641) = fiat_p384_subborrowx_u32(x1639, x1615, 0xffffffff);
+-    let mut x1642: u32 = 0;
+-    let mut x1643: fiat_p384_u1 = 0;
+     let (x1642, x1643) = fiat_p384_subborrowx_u32(x1641, x1617, 0xffffffff);
+-    let mut x1644: u32 = 0;
+-    let mut x1645: fiat_p384_u1 = 0;
+     let (x1644, x1645) = fiat_p384_subborrowx_u32(x1643, x1619, 0xffffffff);
+-    let mut x1646: u32 = 0;
+-    let mut x1647: fiat_p384_u1 = 0;
+     let (x1646, x1647) = fiat_p384_subborrowx_u32(x1645, x1621, 0xffffffff);
+-    let mut x1648: u32 = 0;
+-    let mut x1649: fiat_p384_u1 = 0;
+     let (x1648, x1649) = fiat_p384_subborrowx_u32(x1647, x1623, 0xffffffff);
+-    let mut x1650: u32 = 0;
+-    let mut x1651: fiat_p384_u1 = 0;
+     let (x1650, x1651) = fiat_p384_subborrowx_u32(x1649, x1625, 0xffffffff);
+-    let mut x1652: u32 = 0;
+-    let mut x1653: fiat_p384_u1 = 0;
+     let (x1652, x1653) = fiat_p384_subborrowx_u32(x1651, x1627, 0xffffffff);
+-    let mut x1654: u32 = 0;
+-    let mut x1655: fiat_p384_u1 = 0;
+     let (x1654, x1655) = fiat_p384_subborrowx_u32(x1653, x1629, (0x0 as u32));
+-    let mut x1656: u32 = 0;
+     let (x1656) = fiat_p384_cmovznz_u32(x1655, x1630, x1605);
+-    let mut x1657: u32 = 0;
+     let (x1657) = fiat_p384_cmovznz_u32(x1655, x1632, x1607);
+-    let mut x1658: u32 = 0;
+     let (x1658) = fiat_p384_cmovznz_u32(x1655, x1634, x1609);
+-    let mut x1659: u32 = 0;
+     let (x1659) = fiat_p384_cmovznz_u32(x1655, x1636, x1611);
+-    let mut x1660: u32 = 0;
+     let (x1660) = fiat_p384_cmovznz_u32(x1655, x1638, x1613);
+-    let mut x1661: u32 = 0;
+     let (x1661) = fiat_p384_cmovznz_u32(x1655, x1640, x1615);
+-    let mut x1662: u32 = 0;
+     let (x1662) = fiat_p384_cmovznz_u32(x1655, x1642, x1617);
+-    let mut x1663: u32 = 0;
+     let (x1663) = fiat_p384_cmovznz_u32(x1655, x1644, x1619);
+-    let mut x1664: u32 = 0;
+     let (x1664) = fiat_p384_cmovznz_u32(x1655, x1646, x1621);
+-    let mut x1665: u32 = 0;
+     let (x1665) = fiat_p384_cmovznz_u32(x1655, x1648, x1623);
+-    let mut x1666: u32 = 0;
+     let (x1666) = fiat_p384_cmovznz_u32(x1655, x1650, x1625);
+-    let mut x1667: u32 = 0;
+     let (x1667) = fiat_p384_cmovznz_u32(x1655, x1652, x1627);
+     out1[0] = x1656;
+     out1[1] = x1657;
+@@ -5170,104 +1930,42 @@ pub const fn fiat_p384_add(
+     arg2: &fiat_p384_montgomery_domain_field_element,
+ ) -> fiat_p384_montgomery_domain_field_element {
+     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_addcarryx_u32(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u32 = 0;
+-    let mut x4: fiat_p384_u1 = 0;
+     let (x3, x4) = fiat_p384_addcarryx_u32(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u32 = 0;
+-    let mut x6: fiat_p384_u1 = 0;
+     let (x5, x6) = fiat_p384_addcarryx_u32(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u32 = 0;
+-    let mut x8: fiat_p384_u1 = 0;
+     let (x7, x8) = fiat_p384_addcarryx_u32(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u32 = 0;
+-    let mut x10: fiat_p384_u1 = 0;
+     let (x9, x10) = fiat_p384_addcarryx_u32(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u32 = 0;
+-    let mut x12: fiat_p384_u1 = 0;
+     let (x11, x12) = fiat_p384_addcarryx_u32(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u32 = 0;
+-    let mut x14: fiat_p384_u1 = 0;
+     let (x13, x14) = fiat_p384_addcarryx_u32(x12, (arg1[6]), (arg2[6]));
+-    let mut x15: u32 = 0;
+-    let mut x16: fiat_p384_u1 = 0;
+     let (x15, x16) = fiat_p384_addcarryx_u32(x14, (arg1[7]), (arg2[7]));
+-    let mut x17: u32 = 0;
+-    let mut x18: fiat_p384_u1 = 0;
+     let (x17, x18) = fiat_p384_addcarryx_u32(x16, (arg1[8]), (arg2[8]));
+-    let mut x19: u32 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_addcarryx_u32(x18, (arg1[9]), (arg2[9]));
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_addcarryx_u32(x20, (arg1[10]), (arg2[10]));
+-    let mut x23: u32 = 0;
+-    let mut x24: fiat_p384_u1 = 0;
+     let (x23, x24) = fiat_p384_addcarryx_u32(x22, (arg1[11]), (arg2[11]));
+-    let mut x25: u32 = 0;
+-    let mut x26: fiat_p384_u1 = 0;
+     let (x25, x26) = fiat_p384_subborrowx_u32(0x0, x1, 0xffffffff);
+-    let mut x27: u32 = 0;
+-    let mut x28: fiat_p384_u1 = 0;
+     let (x27, x28) = fiat_p384_subborrowx_u32(x26, x3, (0x0 as u32));
+-    let mut x29: u32 = 0;
+-    let mut x30: fiat_p384_u1 = 0;
+     let (x29, x30) = fiat_p384_subborrowx_u32(x28, x5, (0x0 as u32));
+-    let mut x31: u32 = 0;
+-    let mut x32: fiat_p384_u1 = 0;
+     let (x31, x32) = fiat_p384_subborrowx_u32(x30, x7, 0xffffffff);
+-    let mut x33: u32 = 0;
+-    let mut x34: fiat_p384_u1 = 0;
+     let (x33, x34) = fiat_p384_subborrowx_u32(x32, x9, 0xfffffffe);
+-    let mut x35: u32 = 0;
+-    let mut x36: fiat_p384_u1 = 0;
+     let (x35, x36) = fiat_p384_subborrowx_u32(x34, x11, 0xffffffff);
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_u1 = 0;
+     let (x37, x38) = fiat_p384_subborrowx_u32(x36, x13, 0xffffffff);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_u1 = 0;
+     let (x39, x40) = fiat_p384_subborrowx_u32(x38, x15, 0xffffffff);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_u1 = 0;
+     let (x41, x42) = fiat_p384_subborrowx_u32(x40, x17, 0xffffffff);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_u1 = 0;
+     let (x43, x44) = fiat_p384_subborrowx_u32(x42, x19, 0xffffffff);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_u1 = 0;
+     let (x45, x46) = fiat_p384_subborrowx_u32(x44, x21, 0xffffffff);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_u1 = 0;
+     let (x47, x48) = fiat_p384_subborrowx_u32(x46, x23, 0xffffffff);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_u1 = 0;
+     let (x49, x50) = fiat_p384_subborrowx_u32(x48, (x24 as u32), (0x0 as u32));
+-    let mut x51: u32 = 0;
+     let (x51) = fiat_p384_cmovznz_u32(x50, x25, x1);
+-    let mut x52: u32 = 0;
+     let (x52) = fiat_p384_cmovznz_u32(x50, x27, x3);
+-    let mut x53: u32 = 0;
+     let (x53) = fiat_p384_cmovznz_u32(x50, x29, x5);
+-    let mut x54: u32 = 0;
+     let (x54) = fiat_p384_cmovznz_u32(x50, x31, x7);
+-    let mut x55: u32 = 0;
+     let (x55) = fiat_p384_cmovznz_u32(x50, x33, x9);
+-    let mut x56: u32 = 0;
+     let (x56) = fiat_p384_cmovznz_u32(x50, x35, x11);
+-    let mut x57: u32 = 0;
+     let (x57) = fiat_p384_cmovznz_u32(x50, x37, x13);
+-    let mut x58: u32 = 0;
+     let (x58) = fiat_p384_cmovznz_u32(x50, x39, x15);
+-    let mut x59: u32 = 0;
+     let (x59) = fiat_p384_cmovznz_u32(x50, x41, x17);
+-    let mut x60: u32 = 0;
+     let (x60) = fiat_p384_cmovznz_u32(x50, x43, x19);
+-    let mut x61: u32 = 0;
+     let (x61) = fiat_p384_cmovznz_u32(x50, x45, x21);
+-    let mut x62: u32 = 0;
+     let (x62) = fiat_p384_cmovznz_u32(x50, x47, x23);
+     out1[0] = x51;
+     out1[1] = x52;
+@@ -5298,79 +1996,30 @@ pub const fn fiat_p384_sub(
+     arg2: &fiat_p384_montgomery_domain_field_element,
+ ) -> fiat_p384_montgomery_domain_field_element {
+     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_subborrowx_u32(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u32 = 0;
+-    let mut x4: fiat_p384_u1 = 0;
+     let (x3, x4) = fiat_p384_subborrowx_u32(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u32 = 0;
+-    let mut x6: fiat_p384_u1 = 0;
+     let (x5, x6) = fiat_p384_subborrowx_u32(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u32 = 0;
+-    let mut x8: fiat_p384_u1 = 0;
+     let (x7, x8) = fiat_p384_subborrowx_u32(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u32 = 0;
+-    let mut x10: fiat_p384_u1 = 0;
+     let (x9, x10) = fiat_p384_subborrowx_u32(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u32 = 0;
+-    let mut x12: fiat_p384_u1 = 0;
+     let (x11, x12) = fiat_p384_subborrowx_u32(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u32 = 0;
+-    let mut x14: fiat_p384_u1 = 0;
+     let (x13, x14) = fiat_p384_subborrowx_u32(x12, (arg1[6]), (arg2[6]));
+-    let mut x15: u32 = 0;
+-    let mut x16: fiat_p384_u1 = 0;
+     let (x15, x16) = fiat_p384_subborrowx_u32(x14, (arg1[7]), (arg2[7]));
+-    let mut x17: u32 = 0;
+-    let mut x18: fiat_p384_u1 = 0;
+     let (x17, x18) = fiat_p384_subborrowx_u32(x16, (arg1[8]), (arg2[8]));
+-    let mut x19: u32 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_subborrowx_u32(x18, (arg1[9]), (arg2[9]));
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_subborrowx_u32(x20, (arg1[10]), (arg2[10]));
+-    let mut x23: u32 = 0;
+-    let mut x24: fiat_p384_u1 = 0;
+     let (x23, x24) = fiat_p384_subborrowx_u32(x22, (arg1[11]), (arg2[11]));
+-    let mut x25: u32 = 0;
+     let (x25) = fiat_p384_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_u1 = 0;
+     let (x26, x27) = fiat_p384_addcarryx_u32(0x0, x1, x25);
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_u1 = 0;
+     let (x28, x29) = fiat_p384_addcarryx_u32(x27, x3, (0x0 as u32));
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_u1 = 0;
+     let (x30, x31) = fiat_p384_addcarryx_u32(x29, x5, (0x0 as u32));
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_u1 = 0;
+     let (x32, x33) = fiat_p384_addcarryx_u32(x31, x7, x25);
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_u1 = 0;
+     let (x34, x35) = fiat_p384_addcarryx_u32(x33, x9, (x25 & 0xfffffffe));
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_u1 = 0;
+     let (x36, x37) = fiat_p384_addcarryx_u32(x35, x11, x25);
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_u1 = 0;
+     let (x38, x39) = fiat_p384_addcarryx_u32(x37, x13, x25);
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_u1 = 0;
+     let (x40, x41) = fiat_p384_addcarryx_u32(x39, x15, x25);
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_u1 = 0;
+     let (x42, x43) = fiat_p384_addcarryx_u32(x41, x17, x25);
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_u1 = 0;
+     let (x44, x45) = fiat_p384_addcarryx_u32(x43, x19, x25);
+-    let mut x46: u32 = 0;
+-    let mut x47: fiat_p384_u1 = 0;
+     let (x46, x47) = fiat_p384_addcarryx_u32(x45, x21, x25);
+-    let mut x48: u32 = 0;
+-    let mut x49: fiat_p384_u1 = 0;
+     let (x48, x49) = fiat_p384_addcarryx_u32(x47, x23, x25);
+     out1[0] = x26;
+     out1[1] = x28;
+@@ -5399,79 +2048,30 @@ pub const fn fiat_p384_opp(
+     arg1: &fiat_p384_montgomery_domain_field_element,
+ ) -> fiat_p384_montgomery_domain_field_element {
+     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_subborrowx_u32(0x0, (0x0 as u32), (arg1[0]));
+-    let mut x3: u32 = 0;
+-    let mut x4: fiat_p384_u1 = 0;
+     let (x3, x4) = fiat_p384_subborrowx_u32(x2, (0x0 as u32), (arg1[1]));
+-    let mut x5: u32 = 0;
+-    let mut x6: fiat_p384_u1 = 0;
+     let (x5, x6) = fiat_p384_subborrowx_u32(x4, (0x0 as u32), (arg1[2]));
+-    let mut x7: u32 = 0;
+-    let mut x8: fiat_p384_u1 = 0;
+     let (x7, x8) = fiat_p384_subborrowx_u32(x6, (0x0 as u32), (arg1[3]));
+-    let mut x9: u32 = 0;
+-    let mut x10: fiat_p384_u1 = 0;
+     let (x9, x10) = fiat_p384_subborrowx_u32(x8, (0x0 as u32), (arg1[4]));
+-    let mut x11: u32 = 0;
+-    let mut x12: fiat_p384_u1 = 0;
+     let (x11, x12) = fiat_p384_subborrowx_u32(x10, (0x0 as u32), (arg1[5]));
+-    let mut x13: u32 = 0;
+-    let mut x14: fiat_p384_u1 = 0;
+     let (x13, x14) = fiat_p384_subborrowx_u32(x12, (0x0 as u32), (arg1[6]));
+-    let mut x15: u32 = 0;
+-    let mut x16: fiat_p384_u1 = 0;
+     let (x15, x16) = fiat_p384_subborrowx_u32(x14, (0x0 as u32), (arg1[7]));
+-    let mut x17: u32 = 0;
+-    let mut x18: fiat_p384_u1 = 0;
+     let (x17, x18) = fiat_p384_subborrowx_u32(x16, (0x0 as u32), (arg1[8]));
+-    let mut x19: u32 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_subborrowx_u32(x18, (0x0 as u32), (arg1[9]));
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_subborrowx_u32(x20, (0x0 as u32), (arg1[10]));
+-    let mut x23: u32 = 0;
+-    let mut x24: fiat_p384_u1 = 0;
+     let (x23, x24) = fiat_p384_subborrowx_u32(x22, (0x0 as u32), (arg1[11]));
+-    let mut x25: u32 = 0;
+     let (x25) = fiat_p384_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_u1 = 0;
+     let (x26, x27) = fiat_p384_addcarryx_u32(0x0, x1, x25);
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_u1 = 0;
+     let (x28, x29) = fiat_p384_addcarryx_u32(x27, x3, (0x0 as u32));
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_u1 = 0;
+     let (x30, x31) = fiat_p384_addcarryx_u32(x29, x5, (0x0 as u32));
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_u1 = 0;
+     let (x32, x33) = fiat_p384_addcarryx_u32(x31, x7, x25);
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_u1 = 0;
+     let (x34, x35) = fiat_p384_addcarryx_u32(x33, x9, (x25 & 0xfffffffe));
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_u1 = 0;
+     let (x36, x37) = fiat_p384_addcarryx_u32(x35, x11, x25);
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_u1 = 0;
+     let (x38, x39) = fiat_p384_addcarryx_u32(x37, x13, x25);
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_u1 = 0;
+     let (x40, x41) = fiat_p384_addcarryx_u32(x39, x15, x25);
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_u1 = 0;
+     let (x42, x43) = fiat_p384_addcarryx_u32(x41, x17, x25);
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_u1 = 0;
+     let (x44, x45) = fiat_p384_addcarryx_u32(x43, x19, x25);
+-    let mut x46: u32 = 0;
+-    let mut x47: fiat_p384_u1 = 0;
+     let (x46, x47) = fiat_p384_addcarryx_u32(x45, x21, x25);
+-    let mut x48: u32 = 0;
+-    let mut x49: fiat_p384_u1 = 0;
+     let (x48, x49) = fiat_p384_addcarryx_u32(x47, x23, x25);
+     out1[0] = x26;
+     out1[1] = x28;
+@@ -5501,1551 +2101,551 @@ pub const fn fiat_p384_from_montgomery(
+ ) -> fiat_p384_non_montgomery_domain_field_element {
+     let mut out1: fiat_p384_non_montgomery_domain_field_element = [0; 12];
+     let x1: u32 = (arg1[0]);
+-    let mut x2: u32 = 0;
+-    let mut x3: u32 = 0;
+     let (x2, x3) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x4: u32 = 0;
+-    let mut x5: u32 = 0;
+     let (x4, x5) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x6: u32 = 0;
+-    let mut x7: u32 = 0;
+     let (x6, x7) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x8: u32 = 0;
+-    let mut x9: u32 = 0;
+     let (x8, x9) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x10: u32 = 0;
+-    let mut x11: u32 = 0;
+     let (x10, x11) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x12: u32 = 0;
+-    let mut x13: u32 = 0;
+     let (x12, x13) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x14: u32 = 0;
+-    let mut x15: u32 = 0;
+     let (x14, x15) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x16: u32 = 0;
+-    let mut x17: u32 = 0;
+     let (x16, x17) = fiat_p384_mulx_u32(x1, 0xfffffffe);
+-    let mut x18: u32 = 0;
+-    let mut x19: u32 = 0;
+     let (x18, x19) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x20: u32 = 0;
+-    let mut x21: u32 = 0;
+     let (x20, x21) = fiat_p384_mulx_u32(x1, 0xffffffff);
+-    let mut x22: u32 = 0;
+-    let mut x23: fiat_p384_u1 = 0;
+     let (x22, x23) = fiat_p384_addcarryx_u32(0x0, x19, x16);
+-    let mut x24: u32 = 0;
+-    let mut x25: fiat_p384_u1 = 0;
+     let (x24, x25) = fiat_p384_addcarryx_u32(x23, x17, x14);
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_u1 = 0;
+     let (x26, x27) = fiat_p384_addcarryx_u32(x25, x15, x12);
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_u1 = 0;
+     let (x28, x29) = fiat_p384_addcarryx_u32(x27, x13, x10);
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_u1 = 0;
+     let (x30, x31) = fiat_p384_addcarryx_u32(x29, x11, x8);
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_u1 = 0;
+     let (x32, x33) = fiat_p384_addcarryx_u32(x31, x9, x6);
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_u1 = 0;
+     let (x34, x35) = fiat_p384_addcarryx_u32(x33, x7, x4);
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_u1 = 0;
+     let (x36, x37) = fiat_p384_addcarryx_u32(x35, x5, x2);
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_u1 = 0;
+     let (x38, x39) = fiat_p384_addcarryx_u32(0x0, x1, x20);
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_u1 = 0;
+     let (x40, x41) = fiat_p384_addcarryx_u32(0x0, ((x39 as u32) + x21), (arg1[1]));
+-    let mut x42: u32 = 0;
+-    let mut x43: u32 = 0;
+     let (x42, x43) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x44: u32 = 0;
+-    let mut x45: u32 = 0;
+     let (x44, x45) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x46: u32 = 0;
+-    let mut x47: u32 = 0;
+     let (x46, x47) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x48: u32 = 0;
+-    let mut x49: u32 = 0;
+     let (x48, x49) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x50: u32 = 0;
+-    let mut x51: u32 = 0;
+     let (x50, x51) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x52: u32 = 0;
+-    let mut x53: u32 = 0;
+     let (x52, x53) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x54: u32 = 0;
+-    let mut x55: u32 = 0;
+     let (x54, x55) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x56: u32 = 0;
+-    let mut x57: u32 = 0;
+     let (x56, x57) = fiat_p384_mulx_u32(x40, 0xfffffffe);
+-    let mut x58: u32 = 0;
+-    let mut x59: u32 = 0;
+     let (x58, x59) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x60: u32 = 0;
+-    let mut x61: u32 = 0;
+     let (x60, x61) = fiat_p384_mulx_u32(x40, 0xffffffff);
+-    let mut x62: u32 = 0;
+-    let mut x63: fiat_p384_u1 = 0;
+     let (x62, x63) = fiat_p384_addcarryx_u32(0x0, x59, x56);
+-    let mut x64: u32 = 0;
+-    let mut x65: fiat_p384_u1 = 0;
+     let (x64, x65) = fiat_p384_addcarryx_u32(x63, x57, x54);
+-    let mut x66: u32 = 0;
+-    let mut x67: fiat_p384_u1 = 0;
+     let (x66, x67) = fiat_p384_addcarryx_u32(x65, x55, x52);
+-    let mut x68: u32 = 0;
+-    let mut x69: fiat_p384_u1 = 0;
+     let (x68, x69) = fiat_p384_addcarryx_u32(x67, x53, x50);
+-    let mut x70: u32 = 0;
+-    let mut x71: fiat_p384_u1 = 0;
+     let (x70, x71) = fiat_p384_addcarryx_u32(x69, x51, x48);
+-    let mut x72: u32 = 0;
+-    let mut x73: fiat_p384_u1 = 0;
+     let (x72, x73) = fiat_p384_addcarryx_u32(x71, x49, x46);
+-    let mut x74: u32 = 0;
+-    let mut x75: fiat_p384_u1 = 0;
+     let (x74, x75) = fiat_p384_addcarryx_u32(x73, x47, x44);
+-    let mut x76: u32 = 0;
+-    let mut x77: fiat_p384_u1 = 0;
+     let (x76, x77) = fiat_p384_addcarryx_u32(x75, x45, x42);
+-    let mut x78: u32 = 0;
+-    let mut x79: fiat_p384_u1 = 0;
+     let (x78, x79) = fiat_p384_addcarryx_u32(0x0, x40, x60);
+-    let mut x80: u32 = 0;
+-    let mut x81: fiat_p384_u1 = 0;
+     let (x80, x81) = fiat_p384_addcarryx_u32(x79, (x41 as u32), x61);
+-    let mut x82: u32 = 0;
+-    let mut x83: fiat_p384_u1 = 0;
+     let (x82, x83) = fiat_p384_addcarryx_u32(x81, x18, (0x0 as u32));
+-    let mut x84: u32 = 0;
+-    let mut x85: fiat_p384_u1 = 0;
+     let (x84, x85) = fiat_p384_addcarryx_u32(x83, x22, x58);
+-    let mut x86: u32 = 0;
+-    let mut x87: fiat_p384_u1 = 0;
+     let (x86, x87) = fiat_p384_addcarryx_u32(x85, x24, x62);
+-    let mut x88: u32 = 0;
+-    let mut x89: fiat_p384_u1 = 0;
+     let (x88, x89) = fiat_p384_addcarryx_u32(x87, x26, x64);
+-    let mut x90: u32 = 0;
+-    let mut x91: fiat_p384_u1 = 0;
+     let (x90, x91) = fiat_p384_addcarryx_u32(x89, x28, x66);
+-    let mut x92: u32 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u32(x91, x30, x68);
+-    let mut x94: u32 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u32(x93, x32, x70);
+-    let mut x96: u32 = 0;
+-    let mut x97: fiat_p384_u1 = 0;
+     let (x96, x97) = fiat_p384_addcarryx_u32(x95, x34, x72);
+-    let mut x98: u32 = 0;
+-    let mut x99: fiat_p384_u1 = 0;
+     let (x98, x99) = fiat_p384_addcarryx_u32(x97, x36, x74);
+-    let mut x100: u32 = 0;
+-    let mut x101: fiat_p384_u1 = 0;
+     let (x100, x101) = fiat_p384_addcarryx_u32(x99, ((x37 as u32) + x3), x76);
+-    let mut x102: u32 = 0;
+-    let mut x103: fiat_p384_u1 = 0;
+     let (x102, x103) = fiat_p384_addcarryx_u32(x101, (0x0 as u32), ((x77 as u32) + x43));
+-    let mut x104: u32 = 0;
+-    let mut x105: fiat_p384_u1 = 0;
+     let (x104, x105) = fiat_p384_addcarryx_u32(0x0, x80, (arg1[2]));
+-    let mut x106: u32 = 0;
+-    let mut x107: fiat_p384_u1 = 0;
+     let (x106, x107) = fiat_p384_addcarryx_u32(x105, x82, (0x0 as u32));
+-    let mut x108: u32 = 0;
+-    let mut x109: fiat_p384_u1 = 0;
+     let (x108, x109) = fiat_p384_addcarryx_u32(x107, x84, (0x0 as u32));
+-    let mut x110: u32 = 0;
+-    let mut x111: fiat_p384_u1 = 0;
+     let (x110, x111) = fiat_p384_addcarryx_u32(x109, x86, (0x0 as u32));
+-    let mut x112: u32 = 0;
+-    let mut x113: fiat_p384_u1 = 0;
+     let (x112, x113) = fiat_p384_addcarryx_u32(x111, x88, (0x0 as u32));
+-    let mut x114: u32 = 0;
+-    let mut x115: fiat_p384_u1 = 0;
+     let (x114, x115) = fiat_p384_addcarryx_u32(x113, x90, (0x0 as u32));
+-    let mut x116: u32 = 0;
+-    let mut x117: fiat_p384_u1 = 0;
+     let (x116, x117) = fiat_p384_addcarryx_u32(x115, x92, (0x0 as u32));
+-    let mut x118: u32 = 0;
+-    let mut x119: fiat_p384_u1 = 0;
+     let (x118, x119) = fiat_p384_addcarryx_u32(x117, x94, (0x0 as u32));
+-    let mut x120: u32 = 0;
+-    let mut x121: fiat_p384_u1 = 0;
+     let (x120, x121) = fiat_p384_addcarryx_u32(x119, x96, (0x0 as u32));
+-    let mut x122: u32 = 0;
+-    let mut x123: fiat_p384_u1 = 0;
+     let (x122, x123) = fiat_p384_addcarryx_u32(x121, x98, (0x0 as u32));
+-    let mut x124: u32 = 0;
+-    let mut x125: fiat_p384_u1 = 0;
+     let (x124, x125) = fiat_p384_addcarryx_u32(x123, x100, (0x0 as u32));
+-    let mut x126: u32 = 0;
+-    let mut x127: fiat_p384_u1 = 0;
+     let (x126, x127) = fiat_p384_addcarryx_u32(x125, x102, (0x0 as u32));
+-    let mut x128: u32 = 0;
+-    let mut x129: u32 = 0;
+     let (x128, x129) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x130: u32 = 0;
+-    let mut x131: u32 = 0;
+     let (x130, x131) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x132: u32 = 0;
+-    let mut x133: u32 = 0;
+     let (x132, x133) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x134: u32 = 0;
+-    let mut x135: u32 = 0;
+     let (x134, x135) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x136: u32 = 0;
+-    let mut x137: u32 = 0;
+     let (x136, x137) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x138: u32 = 0;
+-    let mut x139: u32 = 0;
+     let (x138, x139) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x140: u32 = 0;
+-    let mut x141: u32 = 0;
+     let (x140, x141) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x142: u32 = 0;
+-    let mut x143: u32 = 0;
+     let (x142, x143) = fiat_p384_mulx_u32(x104, 0xfffffffe);
+-    let mut x144: u32 = 0;
+-    let mut x145: u32 = 0;
+     let (x144, x145) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x146: u32 = 0;
+-    let mut x147: u32 = 0;
+     let (x146, x147) = fiat_p384_mulx_u32(x104, 0xffffffff);
+-    let mut x148: u32 = 0;
+-    let mut x149: fiat_p384_u1 = 0;
+     let (x148, x149) = fiat_p384_addcarryx_u32(0x0, x145, x142);
+-    let mut x150: u32 = 0;
+-    let mut x151: fiat_p384_u1 = 0;
+     let (x150, x151) = fiat_p384_addcarryx_u32(x149, x143, x140);
+-    let mut x152: u32 = 0;
+-    let mut x153: fiat_p384_u1 = 0;
+     let (x152, x153) = fiat_p384_addcarryx_u32(x151, x141, x138);
+-    let mut x154: u32 = 0;
+-    let mut x155: fiat_p384_u1 = 0;
+     let (x154, x155) = fiat_p384_addcarryx_u32(x153, x139, x136);
+-    let mut x156: u32 = 0;
+-    let mut x157: fiat_p384_u1 = 0;
+     let (x156, x157) = fiat_p384_addcarryx_u32(x155, x137, x134);
+-    let mut x158: u32 = 0;
+-    let mut x159: fiat_p384_u1 = 0;
+     let (x158, x159) = fiat_p384_addcarryx_u32(x157, x135, x132);
+-    let mut x160: u32 = 0;
+-    let mut x161: fiat_p384_u1 = 0;
+     let (x160, x161) = fiat_p384_addcarryx_u32(x159, x133, x130);
+-    let mut x162: u32 = 0;
+-    let mut x163: fiat_p384_u1 = 0;
+     let (x162, x163) = fiat_p384_addcarryx_u32(x161, x131, x128);
+-    let mut x164: u32 = 0;
+-    let mut x165: fiat_p384_u1 = 0;
+     let (x164, x165) = fiat_p384_addcarryx_u32(0x0, x104, x146);
+-    let mut x166: u32 = 0;
+-    let mut x167: fiat_p384_u1 = 0;
+     let (x166, x167) = fiat_p384_addcarryx_u32(x165, x106, x147);
+-    let mut x168: u32 = 0;
+-    let mut x169: fiat_p384_u1 = 0;
+     let (x168, x169) = fiat_p384_addcarryx_u32(x167, x108, (0x0 as u32));
+-    let mut x170: u32 = 0;
+-    let mut x171: fiat_p384_u1 = 0;
+     let (x170, x171) = fiat_p384_addcarryx_u32(x169, x110, x144);
+-    let mut x172: u32 = 0;
+-    let mut x173: fiat_p384_u1 = 0;
+     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x112, x148);
+-    let mut x174: u32 = 0;
+-    let mut x175: fiat_p384_u1 = 0;
+     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x114, x150);
+-    let mut x176: u32 = 0;
+-    let mut x177: fiat_p384_u1 = 0;
+     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x116, x152);
+-    let mut x178: u32 = 0;
+-    let mut x179: fiat_p384_u1 = 0;
+     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x118, x154);
+-    let mut x180: u32 = 0;
+-    let mut x181: fiat_p384_u1 = 0;
+     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x120, x156);
+-    let mut x182: u32 = 0;
+-    let mut x183: fiat_p384_u1 = 0;
+     let (x182, x183) = fiat_p384_addcarryx_u32(x181, x122, x158);
+-    let mut x184: u32 = 0;
+-    let mut x185: fiat_p384_u1 = 0;
+     let (x184, x185) = fiat_p384_addcarryx_u32(x183, x124, x160);
+-    let mut x186: u32 = 0;
+-    let mut x187: fiat_p384_u1 = 0;
+     let (x186, x187) = fiat_p384_addcarryx_u32(x185, x126, x162);
+-    let mut x188: u32 = 0;
+-    let mut x189: fiat_p384_u1 = 0;
+     let (x188, x189) = fiat_p384_addcarryx_u32(
+         x187,
+         ((x127 as u32) + (x103 as u32)),
+         ((x163 as u32) + x129),
+     );
+-    let mut x190: u32 = 0;
+-    let mut x191: fiat_p384_u1 = 0;
+     let (x190, x191) = fiat_p384_addcarryx_u32(0x0, x166, (arg1[3]));
+-    let mut x192: u32 = 0;
+-    let mut x193: fiat_p384_u1 = 0;
+     let (x192, x193) = fiat_p384_addcarryx_u32(x191, x168, (0x0 as u32));
+-    let mut x194: u32 = 0;
+-    let mut x195: fiat_p384_u1 = 0;
+     let (x194, x195) = fiat_p384_addcarryx_u32(x193, x170, (0x0 as u32));
+-    let mut x196: u32 = 0;
+-    let mut x197: fiat_p384_u1 = 0;
+     let (x196, x197) = fiat_p384_addcarryx_u32(x195, x172, (0x0 as u32));
+-    let mut x198: u32 = 0;
+-    let mut x199: fiat_p384_u1 = 0;
+     let (x198, x199) = fiat_p384_addcarryx_u32(x197, x174, (0x0 as u32));
+-    let mut x200: u32 = 0;
+-    let mut x201: fiat_p384_u1 = 0;
+     let (x200, x201) = fiat_p384_addcarryx_u32(x199, x176, (0x0 as u32));
+-    let mut x202: u32 = 0;
+-    let mut x203: fiat_p384_u1 = 0;
+     let (x202, x203) = fiat_p384_addcarryx_u32(x201, x178, (0x0 as u32));
+-    let mut x204: u32 = 0;
+-    let mut x205: fiat_p384_u1 = 0;
+     let (x204, x205) = fiat_p384_addcarryx_u32(x203, x180, (0x0 as u32));
+-    let mut x206: u32 = 0;
+-    let mut x207: fiat_p384_u1 = 0;
+     let (x206, x207) = fiat_p384_addcarryx_u32(x205, x182, (0x0 as u32));
+-    let mut x208: u32 = 0;
+-    let mut x209: fiat_p384_u1 = 0;
+     let (x208, x209) = fiat_p384_addcarryx_u32(x207, x184, (0x0 as u32));
+-    let mut x210: u32 = 0;
+-    let mut x211: fiat_p384_u1 = 0;
+     let (x210, x211) = fiat_p384_addcarryx_u32(x209, x186, (0x0 as u32));
+-    let mut x212: u32 = 0;
+-    let mut x213: fiat_p384_u1 = 0;
+     let (x212, x213) = fiat_p384_addcarryx_u32(x211, x188, (0x0 as u32));
+-    let mut x214: u32 = 0;
+-    let mut x215: u32 = 0;
+     let (x214, x215) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x216: u32 = 0;
+-    let mut x217: u32 = 0;
+     let (x216, x217) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x218: u32 = 0;
+-    let mut x219: u32 = 0;
+     let (x218, x219) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x220: u32 = 0;
+-    let mut x221: u32 = 0;
+     let (x220, x221) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x222: u32 = 0;
+-    let mut x223: u32 = 0;
+     let (x222, x223) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x224: u32 = 0;
+-    let mut x225: u32 = 0;
+     let (x224, x225) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x226: u32 = 0;
+-    let mut x227: u32 = 0;
+     let (x226, x227) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x228: u32 = 0;
+-    let mut x229: u32 = 0;
+     let (x228, x229) = fiat_p384_mulx_u32(x190, 0xfffffffe);
+-    let mut x230: u32 = 0;
+-    let mut x231: u32 = 0;
+     let (x230, x231) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x232: u32 = 0;
+-    let mut x233: u32 = 0;
+     let (x232, x233) = fiat_p384_mulx_u32(x190, 0xffffffff);
+-    let mut x234: u32 = 0;
+-    let mut x235: fiat_p384_u1 = 0;
+     let (x234, x235) = fiat_p384_addcarryx_u32(0x0, x231, x228);
+-    let mut x236: u32 = 0;
+-    let mut x237: fiat_p384_u1 = 0;
+     let (x236, x237) = fiat_p384_addcarryx_u32(x235, x229, x226);
+-    let mut x238: u32 = 0;
+-    let mut x239: fiat_p384_u1 = 0;
+     let (x238, x239) = fiat_p384_addcarryx_u32(x237, x227, x224);
+-    let mut x240: u32 = 0;
+-    let mut x241: fiat_p384_u1 = 0;
+     let (x240, x241) = fiat_p384_addcarryx_u32(x239, x225, x222);
+-    let mut x242: u32 = 0;
+-    let mut x243: fiat_p384_u1 = 0;
+     let (x242, x243) = fiat_p384_addcarryx_u32(x241, x223, x220);
+-    let mut x244: u32 = 0;
+-    let mut x245: fiat_p384_u1 = 0;
+     let (x244, x245) = fiat_p384_addcarryx_u32(x243, x221, x218);
+-    let mut x246: u32 = 0;
+-    let mut x247: fiat_p384_u1 = 0;
+     let (x246, x247) = fiat_p384_addcarryx_u32(x245, x219, x216);
+-    let mut x248: u32 = 0;
+-    let mut x249: fiat_p384_u1 = 0;
+     let (x248, x249) = fiat_p384_addcarryx_u32(x247, x217, x214);
+-    let mut x250: u32 = 0;
+-    let mut x251: fiat_p384_u1 = 0;
+     let (x250, x251) = fiat_p384_addcarryx_u32(0x0, x190, x232);
+-    let mut x252: u32 = 0;
+-    let mut x253: fiat_p384_u1 = 0;
+     let (x252, x253) = fiat_p384_addcarryx_u32(x251, x192, x233);
+-    let mut x254: u32 = 0;
+-    let mut x255: fiat_p384_u1 = 0;
+     let (x254, x255) = fiat_p384_addcarryx_u32(x253, x194, (0x0 as u32));
+-    let mut x256: u32 = 0;
+-    let mut x257: fiat_p384_u1 = 0;
+     let (x256, x257) = fiat_p384_addcarryx_u32(x255, x196, x230);
+-    let mut x258: u32 = 0;
+-    let mut x259: fiat_p384_u1 = 0;
+     let (x258, x259) = fiat_p384_addcarryx_u32(x257, x198, x234);
+-    let mut x260: u32 = 0;
+-    let mut x261: fiat_p384_u1 = 0;
+     let (x260, x261) = fiat_p384_addcarryx_u32(x259, x200, x236);
+-    let mut x262: u32 = 0;
+-    let mut x263: fiat_p384_u1 = 0;
+     let (x262, x263) = fiat_p384_addcarryx_u32(x261, x202, x238);
+-    let mut x264: u32 = 0;
+-    let mut x265: fiat_p384_u1 = 0;
+     let (x264, x265) = fiat_p384_addcarryx_u32(x263, x204, x240);
+-    let mut x266: u32 = 0;
+-    let mut x267: fiat_p384_u1 = 0;
+     let (x266, x267) = fiat_p384_addcarryx_u32(x265, x206, x242);
+-    let mut x268: u32 = 0;
+-    let mut x269: fiat_p384_u1 = 0;
+     let (x268, x269) = fiat_p384_addcarryx_u32(x267, x208, x244);
+-    let mut x270: u32 = 0;
+-    let mut x271: fiat_p384_u1 = 0;
+     let (x270, x271) = fiat_p384_addcarryx_u32(x269, x210, x246);
+-    let mut x272: u32 = 0;
+-    let mut x273: fiat_p384_u1 = 0;
+     let (x272, x273) = fiat_p384_addcarryx_u32(x271, x212, x248);
+-    let mut x274: u32 = 0;
+-    let mut x275: fiat_p384_u1 = 0;
+     let (x274, x275) = fiat_p384_addcarryx_u32(
+         x273,
+         ((x213 as u32) + (x189 as u32)),
+         ((x249 as u32) + x215),
+     );
+-    let mut x276: u32 = 0;
+-    let mut x277: fiat_p384_u1 = 0;
+     let (x276, x277) = fiat_p384_addcarryx_u32(0x0, x252, (arg1[4]));
+-    let mut x278: u32 = 0;
+-    let mut x279: fiat_p384_u1 = 0;
+     let (x278, x279) = fiat_p384_addcarryx_u32(x277, x254, (0x0 as u32));
+-    let mut x280: u32 = 0;
+-    let mut x281: fiat_p384_u1 = 0;
+     let (x280, x281) = fiat_p384_addcarryx_u32(x279, x256, (0x0 as u32));
+-    let mut x282: u32 = 0;
+-    let mut x283: fiat_p384_u1 = 0;
+     let (x282, x283) = fiat_p384_addcarryx_u32(x281, x258, (0x0 as u32));
+-    let mut x284: u32 = 0;
+-    let mut x285: fiat_p384_u1 = 0;
+     let (x284, x285) = fiat_p384_addcarryx_u32(x283, x260, (0x0 as u32));
+-    let mut x286: u32 = 0;
+-    let mut x287: fiat_p384_u1 = 0;
+     let (x286, x287) = fiat_p384_addcarryx_u32(x285, x262, (0x0 as u32));
+-    let mut x288: u32 = 0;
+-    let mut x289: fiat_p384_u1 = 0;
+     let (x288, x289) = fiat_p384_addcarryx_u32(x287, x264, (0x0 as u32));
+-    let mut x290: u32 = 0;
+-    let mut x291: fiat_p384_u1 = 0;
+     let (x290, x291) = fiat_p384_addcarryx_u32(x289, x266, (0x0 as u32));
+-    let mut x292: u32 = 0;
+-    let mut x293: fiat_p384_u1 = 0;
+     let (x292, x293) = fiat_p384_addcarryx_u32(x291, x268, (0x0 as u32));
+-    let mut x294: u32 = 0;
+-    let mut x295: fiat_p384_u1 = 0;
+     let (x294, x295) = fiat_p384_addcarryx_u32(x293, x270, (0x0 as u32));
+-    let mut x296: u32 = 0;
+-    let mut x297: fiat_p384_u1 = 0;
+     let (x296, x297) = fiat_p384_addcarryx_u32(x295, x272, (0x0 as u32));
+-    let mut x298: u32 = 0;
+-    let mut x299: fiat_p384_u1 = 0;
+     let (x298, x299) = fiat_p384_addcarryx_u32(x297, x274, (0x0 as u32));
+-    let mut x300: u32 = 0;
+-    let mut x301: u32 = 0;
+     let (x300, x301) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x302: u32 = 0;
+-    let mut x303: u32 = 0;
+     let (x302, x303) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x304: u32 = 0;
+-    let mut x305: u32 = 0;
+     let (x304, x305) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x306: u32 = 0;
+-    let mut x307: u32 = 0;
+     let (x306, x307) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x308: u32 = 0;
+-    let mut x309: u32 = 0;
+     let (x308, x309) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x310: u32 = 0;
+-    let mut x311: u32 = 0;
+     let (x310, x311) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x312: u32 = 0;
+-    let mut x313: u32 = 0;
+     let (x312, x313) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x314: u32 = 0;
+-    let mut x315: u32 = 0;
+     let (x314, x315) = fiat_p384_mulx_u32(x276, 0xfffffffe);
+-    let mut x316: u32 = 0;
+-    let mut x317: u32 = 0;
+     let (x316, x317) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x318: u32 = 0;
+-    let mut x319: u32 = 0;
+     let (x318, x319) = fiat_p384_mulx_u32(x276, 0xffffffff);
+-    let mut x320: u32 = 0;
+-    let mut x321: fiat_p384_u1 = 0;
+     let (x320, x321) = fiat_p384_addcarryx_u32(0x0, x317, x314);
+-    let mut x322: u32 = 0;
+-    let mut x323: fiat_p384_u1 = 0;
+     let (x322, x323) = fiat_p384_addcarryx_u32(x321, x315, x312);
+-    let mut x324: u32 = 0;
+-    let mut x325: fiat_p384_u1 = 0;
+     let (x324, x325) = fiat_p384_addcarryx_u32(x323, x313, x310);
+-    let mut x326: u32 = 0;
+-    let mut x327: fiat_p384_u1 = 0;
+     let (x326, x327) = fiat_p384_addcarryx_u32(x325, x311, x308);
+-    let mut x328: u32 = 0;
+-    let mut x329: fiat_p384_u1 = 0;
+     let (x328, x329) = fiat_p384_addcarryx_u32(x327, x309, x306);
+-    let mut x330: u32 = 0;
+-    let mut x331: fiat_p384_u1 = 0;
+     let (x330, x331) = fiat_p384_addcarryx_u32(x329, x307, x304);
+-    let mut x332: u32 = 0;
+-    let mut x333: fiat_p384_u1 = 0;
+     let (x332, x333) = fiat_p384_addcarryx_u32(x331, x305, x302);
+-    let mut x334: u32 = 0;
+-    let mut x335: fiat_p384_u1 = 0;
+     let (x334, x335) = fiat_p384_addcarryx_u32(x333, x303, x300);
+-    let mut x336: u32 = 0;
+-    let mut x337: fiat_p384_u1 = 0;
+     let (x336, x337) = fiat_p384_addcarryx_u32(0x0, x276, x318);
+-    let mut x338: u32 = 0;
+-    let mut x339: fiat_p384_u1 = 0;
+     let (x338, x339) = fiat_p384_addcarryx_u32(x337, x278, x319);
+-    let mut x340: u32 = 0;
+-    let mut x341: fiat_p384_u1 = 0;
+     let (x340, x341) = fiat_p384_addcarryx_u32(x339, x280, (0x0 as u32));
+-    let mut x342: u32 = 0;
+-    let mut x343: fiat_p384_u1 = 0;
+     let (x342, x343) = fiat_p384_addcarryx_u32(x341, x282, x316);
+-    let mut x344: u32 = 0;
+-    let mut x345: fiat_p384_u1 = 0;
+     let (x344, x345) = fiat_p384_addcarryx_u32(x343, x284, x320);
+-    let mut x346: u32 = 0;
+-    let mut x347: fiat_p384_u1 = 0;
+     let (x346, x347) = fiat_p384_addcarryx_u32(x345, x286, x322);
+-    let mut x348: u32 = 0;
+-    let mut x349: fiat_p384_u1 = 0;
+     let (x348, x349) = fiat_p384_addcarryx_u32(x347, x288, x324);
+-    let mut x350: u32 = 0;
+-    let mut x351: fiat_p384_u1 = 0;
+     let (x350, x351) = fiat_p384_addcarryx_u32(x349, x290, x326);
+-    let mut x352: u32 = 0;
+-    let mut x353: fiat_p384_u1 = 0;
+     let (x352, x353) = fiat_p384_addcarryx_u32(x351, x292, x328);
+-    let mut x354: u32 = 0;
+-    let mut x355: fiat_p384_u1 = 0;
+     let (x354, x355) = fiat_p384_addcarryx_u32(x353, x294, x330);
+-    let mut x356: u32 = 0;
+-    let mut x357: fiat_p384_u1 = 0;
+     let (x356, x357) = fiat_p384_addcarryx_u32(x355, x296, x332);
+-    let mut x358: u32 = 0;
+-    let mut x359: fiat_p384_u1 = 0;
+     let (x358, x359) = fiat_p384_addcarryx_u32(x357, x298, x334);
+-    let mut x360: u32 = 0;
+-    let mut x361: fiat_p384_u1 = 0;
+     let (x360, x361) = fiat_p384_addcarryx_u32(
+         x359,
+         ((x299 as u32) + (x275 as u32)),
+         ((x335 as u32) + x301),
+     );
+-    let mut x362: u32 = 0;
+-    let mut x363: fiat_p384_u1 = 0;
+     let (x362, x363) = fiat_p384_addcarryx_u32(0x0, x338, (arg1[5]));
+-    let mut x364: u32 = 0;
+-    let mut x365: fiat_p384_u1 = 0;
+     let (x364, x365) = fiat_p384_addcarryx_u32(x363, x340, (0x0 as u32));
+-    let mut x366: u32 = 0;
+-    let mut x367: fiat_p384_u1 = 0;
+     let (x366, x367) = fiat_p384_addcarryx_u32(x365, x342, (0x0 as u32));
+-    let mut x368: u32 = 0;
+-    let mut x369: fiat_p384_u1 = 0;
+     let (x368, x369) = fiat_p384_addcarryx_u32(x367, x344, (0x0 as u32));
+-    let mut x370: u32 = 0;
+-    let mut x371: fiat_p384_u1 = 0;
+     let (x370, x371) = fiat_p384_addcarryx_u32(x369, x346, (0x0 as u32));
+-    let mut x372: u32 = 0;
+-    let mut x373: fiat_p384_u1 = 0;
+     let (x372, x373) = fiat_p384_addcarryx_u32(x371, x348, (0x0 as u32));
+-    let mut x374: u32 = 0;
+-    let mut x375: fiat_p384_u1 = 0;
+     let (x374, x375) = fiat_p384_addcarryx_u32(x373, x350, (0x0 as u32));
+-    let mut x376: u32 = 0;
+-    let mut x377: fiat_p384_u1 = 0;
+     let (x376, x377) = fiat_p384_addcarryx_u32(x375, x352, (0x0 as u32));
+-    let mut x378: u32 = 0;
+-    let mut x379: fiat_p384_u1 = 0;
+     let (x378, x379) = fiat_p384_addcarryx_u32(x377, x354, (0x0 as u32));
+-    let mut x380: u32 = 0;
+-    let mut x381: fiat_p384_u1 = 0;
+     let (x380, x381) = fiat_p384_addcarryx_u32(x379, x356, (0x0 as u32));
+-    let mut x382: u32 = 0;
+-    let mut x383: fiat_p384_u1 = 0;
+     let (x382, x383) = fiat_p384_addcarryx_u32(x381, x358, (0x0 as u32));
+-    let mut x384: u32 = 0;
+-    let mut x385: fiat_p384_u1 = 0;
+     let (x384, x385) = fiat_p384_addcarryx_u32(x383, x360, (0x0 as u32));
+-    let mut x386: u32 = 0;
+-    let mut x387: u32 = 0;
+     let (x386, x387) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x388: u32 = 0;
+-    let mut x389: u32 = 0;
+     let (x388, x389) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x390: u32 = 0;
+-    let mut x391: u32 = 0;
+     let (x390, x391) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x392: u32 = 0;
+-    let mut x393: u32 = 0;
+     let (x392, x393) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x394: u32 = 0;
+-    let mut x395: u32 = 0;
+     let (x394, x395) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x396: u32 = 0;
+-    let mut x397: u32 = 0;
+     let (x396, x397) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x398: u32 = 0;
+-    let mut x399: u32 = 0;
+     let (x398, x399) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x400: u32 = 0;
+-    let mut x401: u32 = 0;
+     let (x400, x401) = fiat_p384_mulx_u32(x362, 0xfffffffe);
+-    let mut x402: u32 = 0;
+-    let mut x403: u32 = 0;
+     let (x402, x403) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x404: u32 = 0;
+-    let mut x405: u32 = 0;
+     let (x404, x405) = fiat_p384_mulx_u32(x362, 0xffffffff);
+-    let mut x406: u32 = 0;
+-    let mut x407: fiat_p384_u1 = 0;
+     let (x406, x407) = fiat_p384_addcarryx_u32(0x0, x403, x400);
+-    let mut x408: u32 = 0;
+-    let mut x409: fiat_p384_u1 = 0;
+     let (x408, x409) = fiat_p384_addcarryx_u32(x407, x401, x398);
+-    let mut x410: u32 = 0;
+-    let mut x411: fiat_p384_u1 = 0;
+     let (x410, x411) = fiat_p384_addcarryx_u32(x409, x399, x396);
+-    let mut x412: u32 = 0;
+-    let mut x413: fiat_p384_u1 = 0;
+     let (x412, x413) = fiat_p384_addcarryx_u32(x411, x397, x394);
+-    let mut x414: u32 = 0;
+-    let mut x415: fiat_p384_u1 = 0;
+     let (x414, x415) = fiat_p384_addcarryx_u32(x413, x395, x392);
+-    let mut x416: u32 = 0;
+-    let mut x417: fiat_p384_u1 = 0;
+     let (x416, x417) = fiat_p384_addcarryx_u32(x415, x393, x390);
+-    let mut x418: u32 = 0;
+-    let mut x419: fiat_p384_u1 = 0;
+     let (x418, x419) = fiat_p384_addcarryx_u32(x417, x391, x388);
+-    let mut x420: u32 = 0;
+-    let mut x421: fiat_p384_u1 = 0;
+     let (x420, x421) = fiat_p384_addcarryx_u32(x419, x389, x386);
+-    let mut x422: u32 = 0;
+-    let mut x423: fiat_p384_u1 = 0;
+     let (x422, x423) = fiat_p384_addcarryx_u32(0x0, x362, x404);
+-    let mut x424: u32 = 0;
+-    let mut x425: fiat_p384_u1 = 0;
+     let (x424, x425) = fiat_p384_addcarryx_u32(x423, x364, x405);
+-    let mut x426: u32 = 0;
+-    let mut x427: fiat_p384_u1 = 0;
+     let (x426, x427) = fiat_p384_addcarryx_u32(x425, x366, (0x0 as u32));
+-    let mut x428: u32 = 0;
+-    let mut x429: fiat_p384_u1 = 0;
+     let (x428, x429) = fiat_p384_addcarryx_u32(x427, x368, x402);
+-    let mut x430: u32 = 0;
+-    let mut x431: fiat_p384_u1 = 0;
+     let (x430, x431) = fiat_p384_addcarryx_u32(x429, x370, x406);
+-    let mut x432: u32 = 0;
+-    let mut x433: fiat_p384_u1 = 0;
+     let (x432, x433) = fiat_p384_addcarryx_u32(x431, x372, x408);
+-    let mut x434: u32 = 0;
+-    let mut x435: fiat_p384_u1 = 0;
+     let (x434, x435) = fiat_p384_addcarryx_u32(x433, x374, x410);
+-    let mut x436: u32 = 0;
+-    let mut x437: fiat_p384_u1 = 0;
+     let (x436, x437) = fiat_p384_addcarryx_u32(x435, x376, x412);
+-    let mut x438: u32 = 0;
+-    let mut x439: fiat_p384_u1 = 0;
+     let (x438, x439) = fiat_p384_addcarryx_u32(x437, x378, x414);
+-    let mut x440: u32 = 0;
+-    let mut x441: fiat_p384_u1 = 0;
+     let (x440, x441) = fiat_p384_addcarryx_u32(x439, x380, x416);
+-    let mut x442: u32 = 0;
+-    let mut x443: fiat_p384_u1 = 0;
+     let (x442, x443) = fiat_p384_addcarryx_u32(x441, x382, x418);
+-    let mut x444: u32 = 0;
+-    let mut x445: fiat_p384_u1 = 0;
+     let (x444, x445) = fiat_p384_addcarryx_u32(x443, x384, x420);
+-    let mut x446: u32 = 0;
+-    let mut x447: fiat_p384_u1 = 0;
+     let (x446, x447) = fiat_p384_addcarryx_u32(
+         x445,
+         ((x385 as u32) + (x361 as u32)),
+         ((x421 as u32) + x387),
+     );
+-    let mut x448: u32 = 0;
+-    let mut x449: fiat_p384_u1 = 0;
+     let (x448, x449) = fiat_p384_addcarryx_u32(0x0, x424, (arg1[6]));
+-    let mut x450: u32 = 0;
+-    let mut x451: fiat_p384_u1 = 0;
+     let (x450, x451) = fiat_p384_addcarryx_u32(x449, x426, (0x0 as u32));
+-    let mut x452: u32 = 0;
+-    let mut x453: fiat_p384_u1 = 0;
+     let (x452, x453) = fiat_p384_addcarryx_u32(x451, x428, (0x0 as u32));
+-    let mut x454: u32 = 0;
+-    let mut x455: fiat_p384_u1 = 0;
+     let (x454, x455) = fiat_p384_addcarryx_u32(x453, x430, (0x0 as u32));
+-    let mut x456: u32 = 0;
+-    let mut x457: fiat_p384_u1 = 0;
+     let (x456, x457) = fiat_p384_addcarryx_u32(x455, x432, (0x0 as u32));
+-    let mut x458: u32 = 0;
+-    let mut x459: fiat_p384_u1 = 0;
+     let (x458, x459) = fiat_p384_addcarryx_u32(x457, x434, (0x0 as u32));
+-    let mut x460: u32 = 0;
+-    let mut x461: fiat_p384_u1 = 0;
+     let (x460, x461) = fiat_p384_addcarryx_u32(x459, x436, (0x0 as u32));
+-    let mut x462: u32 = 0;
+-    let mut x463: fiat_p384_u1 = 0;
+     let (x462, x463) = fiat_p384_addcarryx_u32(x461, x438, (0x0 as u32));
+-    let mut x464: u32 = 0;
+-    let mut x465: fiat_p384_u1 = 0;
+     let (x464, x465) = fiat_p384_addcarryx_u32(x463, x440, (0x0 as u32));
+-    let mut x466: u32 = 0;
+-    let mut x467: fiat_p384_u1 = 0;
+     let (x466, x467) = fiat_p384_addcarryx_u32(x465, x442, (0x0 as u32));
+-    let mut x468: u32 = 0;
+-    let mut x469: fiat_p384_u1 = 0;
+     let (x468, x469) = fiat_p384_addcarryx_u32(x467, x444, (0x0 as u32));
+-    let mut x470: u32 = 0;
+-    let mut x471: fiat_p384_u1 = 0;
+     let (x470, x471) = fiat_p384_addcarryx_u32(x469, x446, (0x0 as u32));
+-    let mut x472: u32 = 0;
+-    let mut x473: u32 = 0;
+     let (x472, x473) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x474: u32 = 0;
+-    let mut x475: u32 = 0;
+     let (x474, x475) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x476: u32 = 0;
+-    let mut x477: u32 = 0;
+     let (x476, x477) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x478: u32 = 0;
+-    let mut x479: u32 = 0;
+     let (x478, x479) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x480: u32 = 0;
+-    let mut x481: u32 = 0;
+     let (x480, x481) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x482: u32 = 0;
+-    let mut x483: u32 = 0;
+     let (x482, x483) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x484: u32 = 0;
+-    let mut x485: u32 = 0;
+     let (x484, x485) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x486: u32 = 0;
+-    let mut x487: u32 = 0;
+     let (x486, x487) = fiat_p384_mulx_u32(x448, 0xfffffffe);
+-    let mut x488: u32 = 0;
+-    let mut x489: u32 = 0;
+     let (x488, x489) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x490: u32 = 0;
+-    let mut x491: u32 = 0;
+     let (x490, x491) = fiat_p384_mulx_u32(x448, 0xffffffff);
+-    let mut x492: u32 = 0;
+-    let mut x493: fiat_p384_u1 = 0;
+     let (x492, x493) = fiat_p384_addcarryx_u32(0x0, x489, x486);
+-    let mut x494: u32 = 0;
+-    let mut x495: fiat_p384_u1 = 0;
+     let (x494, x495) = fiat_p384_addcarryx_u32(x493, x487, x484);
+-    let mut x496: u32 = 0;
+-    let mut x497: fiat_p384_u1 = 0;
+     let (x496, x497) = fiat_p384_addcarryx_u32(x495, x485, x482);
+-    let mut x498: u32 = 0;
+-    let mut x499: fiat_p384_u1 = 0;
+     let (x498, x499) = fiat_p384_addcarryx_u32(x497, x483, x480);
+-    let mut x500: u32 = 0;
+-    let mut x501: fiat_p384_u1 = 0;
+     let (x500, x501) = fiat_p384_addcarryx_u32(x499, x481, x478);
+-    let mut x502: u32 = 0;
+-    let mut x503: fiat_p384_u1 = 0;
+     let (x502, x503) = fiat_p384_addcarryx_u32(x501, x479, x476);
+-    let mut x504: u32 = 0;
+-    let mut x505: fiat_p384_u1 = 0;
+     let (x504, x505) = fiat_p384_addcarryx_u32(x503, x477, x474);
+-    let mut x506: u32 = 0;
+-    let mut x507: fiat_p384_u1 = 0;
+     let (x506, x507) = fiat_p384_addcarryx_u32(x505, x475, x472);
+-    let mut x508: u32 = 0;
+-    let mut x509: fiat_p384_u1 = 0;
+     let (x508, x509) = fiat_p384_addcarryx_u32(0x0, x448, x490);
+-    let mut x510: u32 = 0;
+-    let mut x511: fiat_p384_u1 = 0;
+     let (x510, x511) = fiat_p384_addcarryx_u32(x509, x450, x491);
+-    let mut x512: u32 = 0;
+-    let mut x513: fiat_p384_u1 = 0;
+     let (x512, x513) = fiat_p384_addcarryx_u32(x511, x452, (0x0 as u32));
+-    let mut x514: u32 = 0;
+-    let mut x515: fiat_p384_u1 = 0;
+     let (x514, x515) = fiat_p384_addcarryx_u32(x513, x454, x488);
+-    let mut x516: u32 = 0;
+-    let mut x517: fiat_p384_u1 = 0;
+     let (x516, x517) = fiat_p384_addcarryx_u32(x515, x456, x492);
+-    let mut x518: u32 = 0;
+-    let mut x519: fiat_p384_u1 = 0;
+     let (x518, x519) = fiat_p384_addcarryx_u32(x517, x458, x494);
+-    let mut x520: u32 = 0;
+-    let mut x521: fiat_p384_u1 = 0;
+     let (x520, x521) = fiat_p384_addcarryx_u32(x519, x460, x496);
+-    let mut x522: u32 = 0;
+-    let mut x523: fiat_p384_u1 = 0;
+     let (x522, x523) = fiat_p384_addcarryx_u32(x521, x462, x498);
+-    let mut x524: u32 = 0;
+-    let mut x525: fiat_p384_u1 = 0;
+     let (x524, x525) = fiat_p384_addcarryx_u32(x523, x464, x500);
+-    let mut x526: u32 = 0;
+-    let mut x527: fiat_p384_u1 = 0;
+     let (x526, x527) = fiat_p384_addcarryx_u32(x525, x466, x502);
+-    let mut x528: u32 = 0;
+-    let mut x529: fiat_p384_u1 = 0;
+     let (x528, x529) = fiat_p384_addcarryx_u32(x527, x468, x504);
+-    let mut x530: u32 = 0;
+-    let mut x531: fiat_p384_u1 = 0;
+     let (x530, x531) = fiat_p384_addcarryx_u32(x529, x470, x506);
+-    let mut x532: u32 = 0;
+-    let mut x533: fiat_p384_u1 = 0;
+     let (x532, x533) = fiat_p384_addcarryx_u32(
+         x531,
+         ((x471 as u32) + (x447 as u32)),
+         ((x507 as u32) + x473),
+     );
+-    let mut x534: u32 = 0;
+-    let mut x535: fiat_p384_u1 = 0;
+     let (x534, x535) = fiat_p384_addcarryx_u32(0x0, x510, (arg1[7]));
+-    let mut x536: u32 = 0;
+-    let mut x537: fiat_p384_u1 = 0;
+     let (x536, x537) = fiat_p384_addcarryx_u32(x535, x512, (0x0 as u32));
+-    let mut x538: u32 = 0;
+-    let mut x539: fiat_p384_u1 = 0;
+     let (x538, x539) = fiat_p384_addcarryx_u32(x537, x514, (0x0 as u32));
+-    let mut x540: u32 = 0;
+-    let mut x541: fiat_p384_u1 = 0;
+     let (x540, x541) = fiat_p384_addcarryx_u32(x539, x516, (0x0 as u32));
+-    let mut x542: u32 = 0;
+-    let mut x543: fiat_p384_u1 = 0;
+     let (x542, x543) = fiat_p384_addcarryx_u32(x541, x518, (0x0 as u32));
+-    let mut x544: u32 = 0;
+-    let mut x545: fiat_p384_u1 = 0;
+     let (x544, x545) = fiat_p384_addcarryx_u32(x543, x520, (0x0 as u32));
+-    let mut x546: u32 = 0;
+-    let mut x547: fiat_p384_u1 = 0;
+     let (x546, x547) = fiat_p384_addcarryx_u32(x545, x522, (0x0 as u32));
+-    let mut x548: u32 = 0;
+-    let mut x549: fiat_p384_u1 = 0;
+     let (x548, x549) = fiat_p384_addcarryx_u32(x547, x524, (0x0 as u32));
+-    let mut x550: u32 = 0;
+-    let mut x551: fiat_p384_u1 = 0;
+     let (x550, x551) = fiat_p384_addcarryx_u32(x549, x526, (0x0 as u32));
+-    let mut x552: u32 = 0;
+-    let mut x553: fiat_p384_u1 = 0;
+     let (x552, x553) = fiat_p384_addcarryx_u32(x551, x528, (0x0 as u32));
+-    let mut x554: u32 = 0;
+-    let mut x555: fiat_p384_u1 = 0;
+     let (x554, x555) = fiat_p384_addcarryx_u32(x553, x530, (0x0 as u32));
+-    let mut x556: u32 = 0;
+-    let mut x557: fiat_p384_u1 = 0;
+     let (x556, x557) = fiat_p384_addcarryx_u32(x555, x532, (0x0 as u32));
+-    let mut x558: u32 = 0;
+-    let mut x559: u32 = 0;
+     let (x558, x559) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x560: u32 = 0;
+-    let mut x561: u32 = 0;
+     let (x560, x561) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x562: u32 = 0;
+-    let mut x563: u32 = 0;
+     let (x562, x563) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x564: u32 = 0;
+-    let mut x565: u32 = 0;
+     let (x564, x565) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x566: u32 = 0;
+-    let mut x567: u32 = 0;
+     let (x566, x567) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x568: u32 = 0;
+-    let mut x569: u32 = 0;
+     let (x568, x569) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x570: u32 = 0;
+-    let mut x571: u32 = 0;
+     let (x570, x571) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x572: u32 = 0;
+-    let mut x573: u32 = 0;
+     let (x572, x573) = fiat_p384_mulx_u32(x534, 0xfffffffe);
+-    let mut x574: u32 = 0;
+-    let mut x575: u32 = 0;
+     let (x574, x575) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x576: u32 = 0;
+-    let mut x577: u32 = 0;
+     let (x576, x577) = fiat_p384_mulx_u32(x534, 0xffffffff);
+-    let mut x578: u32 = 0;
+-    let mut x579: fiat_p384_u1 = 0;
+     let (x578, x579) = fiat_p384_addcarryx_u32(0x0, x575, x572);
+-    let mut x580: u32 = 0;
+-    let mut x581: fiat_p384_u1 = 0;
+     let (x580, x581) = fiat_p384_addcarryx_u32(x579, x573, x570);
+-    let mut x582: u32 = 0;
+-    let mut x583: fiat_p384_u1 = 0;
+     let (x582, x583) = fiat_p384_addcarryx_u32(x581, x571, x568);
+-    let mut x584: u32 = 0;
+-    let mut x585: fiat_p384_u1 = 0;
+     let (x584, x585) = fiat_p384_addcarryx_u32(x583, x569, x566);
+-    let mut x586: u32 = 0;
+-    let mut x587: fiat_p384_u1 = 0;
+     let (x586, x587) = fiat_p384_addcarryx_u32(x585, x567, x564);
+-    let mut x588: u32 = 0;
+-    let mut x589: fiat_p384_u1 = 0;
+     let (x588, x589) = fiat_p384_addcarryx_u32(x587, x565, x562);
+-    let mut x590: u32 = 0;
+-    let mut x591: fiat_p384_u1 = 0;
+     let (x590, x591) = fiat_p384_addcarryx_u32(x589, x563, x560);
+-    let mut x592: u32 = 0;
+-    let mut x593: fiat_p384_u1 = 0;
+     let (x592, x593) = fiat_p384_addcarryx_u32(x591, x561, x558);
+-    let mut x594: u32 = 0;
+-    let mut x595: fiat_p384_u1 = 0;
+     let (x594, x595) = fiat_p384_addcarryx_u32(0x0, x534, x576);
+-    let mut x596: u32 = 0;
+-    let mut x597: fiat_p384_u1 = 0;
+     let (x596, x597) = fiat_p384_addcarryx_u32(x595, x536, x577);
+-    let mut x598: u32 = 0;
+-    let mut x599: fiat_p384_u1 = 0;
+     let (x598, x599) = fiat_p384_addcarryx_u32(x597, x538, (0x0 as u32));
+-    let mut x600: u32 = 0;
+-    let mut x601: fiat_p384_u1 = 0;
+     let (x600, x601) = fiat_p384_addcarryx_u32(x599, x540, x574);
+-    let mut x602: u32 = 0;
+-    let mut x603: fiat_p384_u1 = 0;
+     let (x602, x603) = fiat_p384_addcarryx_u32(x601, x542, x578);
+-    let mut x604: u32 = 0;
+-    let mut x605: fiat_p384_u1 = 0;
+     let (x604, x605) = fiat_p384_addcarryx_u32(x603, x544, x580);
+-    let mut x606: u32 = 0;
+-    let mut x607: fiat_p384_u1 = 0;
+     let (x606, x607) = fiat_p384_addcarryx_u32(x605, x546, x582);
+-    let mut x608: u32 = 0;
+-    let mut x609: fiat_p384_u1 = 0;
+     let (x608, x609) = fiat_p384_addcarryx_u32(x607, x548, x584);
+-    let mut x610: u32 = 0;
+-    let mut x611: fiat_p384_u1 = 0;
+     let (x610, x611) = fiat_p384_addcarryx_u32(x609, x550, x586);
+-    let mut x612: u32 = 0;
+-    let mut x613: fiat_p384_u1 = 0;
+     let (x612, x613) = fiat_p384_addcarryx_u32(x611, x552, x588);
+-    let mut x614: u32 = 0;
+-    let mut x615: fiat_p384_u1 = 0;
+     let (x614, x615) = fiat_p384_addcarryx_u32(x613, x554, x590);
+-    let mut x616: u32 = 0;
+-    let mut x617: fiat_p384_u1 = 0;
+     let (x616, x617) = fiat_p384_addcarryx_u32(x615, x556, x592);
+-    let mut x618: u32 = 0;
+-    let mut x619: fiat_p384_u1 = 0;
+     let (x618, x619) = fiat_p384_addcarryx_u32(
+         x617,
+         ((x557 as u32) + (x533 as u32)),
+         ((x593 as u32) + x559),
+     );
+-    let mut x620: u32 = 0;
+-    let mut x621: fiat_p384_u1 = 0;
+     let (x620, x621) = fiat_p384_addcarryx_u32(0x0, x596, (arg1[8]));
+-    let mut x622: u32 = 0;
+-    let mut x623: fiat_p384_u1 = 0;
+     let (x622, x623) = fiat_p384_addcarryx_u32(x621, x598, (0x0 as u32));
+-    let mut x624: u32 = 0;
+-    let mut x625: fiat_p384_u1 = 0;
+     let (x624, x625) = fiat_p384_addcarryx_u32(x623, x600, (0x0 as u32));
+-    let mut x626: u32 = 0;
+-    let mut x627: fiat_p384_u1 = 0;
+     let (x626, x627) = fiat_p384_addcarryx_u32(x625, x602, (0x0 as u32));
+-    let mut x628: u32 = 0;
+-    let mut x629: fiat_p384_u1 = 0;
+     let (x628, x629) = fiat_p384_addcarryx_u32(x627, x604, (0x0 as u32));
+-    let mut x630: u32 = 0;
+-    let mut x631: fiat_p384_u1 = 0;
+     let (x630, x631) = fiat_p384_addcarryx_u32(x629, x606, (0x0 as u32));
+-    let mut x632: u32 = 0;
+-    let mut x633: fiat_p384_u1 = 0;
+     let (x632, x633) = fiat_p384_addcarryx_u32(x631, x608, (0x0 as u32));
+-    let mut x634: u32 = 0;
+-    let mut x635: fiat_p384_u1 = 0;
+     let (x634, x635) = fiat_p384_addcarryx_u32(x633, x610, (0x0 as u32));
+-    let mut x636: u32 = 0;
+-    let mut x637: fiat_p384_u1 = 0;
+     let (x636, x637) = fiat_p384_addcarryx_u32(x635, x612, (0x0 as u32));
+-    let mut x638: u32 = 0;
+-    let mut x639: fiat_p384_u1 = 0;
+     let (x638, x639) = fiat_p384_addcarryx_u32(x637, x614, (0x0 as u32));
+-    let mut x640: u32 = 0;
+-    let mut x641: fiat_p384_u1 = 0;
+     let (x640, x641) = fiat_p384_addcarryx_u32(x639, x616, (0x0 as u32));
+-    let mut x642: u32 = 0;
+-    let mut x643: fiat_p384_u1 = 0;
+     let (x642, x643) = fiat_p384_addcarryx_u32(x641, x618, (0x0 as u32));
+-    let mut x644: u32 = 0;
+-    let mut x645: u32 = 0;
+     let (x644, x645) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x646: u32 = 0;
+-    let mut x647: u32 = 0;
+     let (x646, x647) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x648: u32 = 0;
+-    let mut x649: u32 = 0;
+     let (x648, x649) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x650: u32 = 0;
+-    let mut x651: u32 = 0;
+     let (x650, x651) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x652: u32 = 0;
+-    let mut x653: u32 = 0;
+     let (x652, x653) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x654: u32 = 0;
+-    let mut x655: u32 = 0;
+     let (x654, x655) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x656: u32 = 0;
+-    let mut x657: u32 = 0;
+     let (x656, x657) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x658: u32 = 0;
+-    let mut x659: u32 = 0;
+     let (x658, x659) = fiat_p384_mulx_u32(x620, 0xfffffffe);
+-    let mut x660: u32 = 0;
+-    let mut x661: u32 = 0;
+     let (x660, x661) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x662: u32 = 0;
+-    let mut x663: u32 = 0;
+     let (x662, x663) = fiat_p384_mulx_u32(x620, 0xffffffff);
+-    let mut x664: u32 = 0;
+-    let mut x665: fiat_p384_u1 = 0;
+     let (x664, x665) = fiat_p384_addcarryx_u32(0x0, x661, x658);
+-    let mut x666: u32 = 0;
+-    let mut x667: fiat_p384_u1 = 0;
+     let (x666, x667) = fiat_p384_addcarryx_u32(x665, x659, x656);
+-    let mut x668: u32 = 0;
+-    let mut x669: fiat_p384_u1 = 0;
+     let (x668, x669) = fiat_p384_addcarryx_u32(x667, x657, x654);
+-    let mut x670: u32 = 0;
+-    let mut x671: fiat_p384_u1 = 0;
+     let (x670, x671) = fiat_p384_addcarryx_u32(x669, x655, x652);
+-    let mut x672: u32 = 0;
+-    let mut x673: fiat_p384_u1 = 0;
+     let (x672, x673) = fiat_p384_addcarryx_u32(x671, x653, x650);
+-    let mut x674: u32 = 0;
+-    let mut x675: fiat_p384_u1 = 0;
+     let (x674, x675) = fiat_p384_addcarryx_u32(x673, x651, x648);
+-    let mut x676: u32 = 0;
+-    let mut x677: fiat_p384_u1 = 0;
+     let (x676, x677) = fiat_p384_addcarryx_u32(x675, x649, x646);
+-    let mut x678: u32 = 0;
+-    let mut x679: fiat_p384_u1 = 0;
+     let (x678, x679) = fiat_p384_addcarryx_u32(x677, x647, x644);
+-    let mut x680: u32 = 0;
+-    let mut x681: fiat_p384_u1 = 0;
+     let (x680, x681) = fiat_p384_addcarryx_u32(0x0, x620, x662);
+-    let mut x682: u32 = 0;
+-    let mut x683: fiat_p384_u1 = 0;
+     let (x682, x683) = fiat_p384_addcarryx_u32(x681, x622, x663);
+-    let mut x684: u32 = 0;
+-    let mut x685: fiat_p384_u1 = 0;
+     let (x684, x685) = fiat_p384_addcarryx_u32(x683, x624, (0x0 as u32));
+-    let mut x686: u32 = 0;
+-    let mut x687: fiat_p384_u1 = 0;
+     let (x686, x687) = fiat_p384_addcarryx_u32(x685, x626, x660);
+-    let mut x688: u32 = 0;
+-    let mut x689: fiat_p384_u1 = 0;
+     let (x688, x689) = fiat_p384_addcarryx_u32(x687, x628, x664);
+-    let mut x690: u32 = 0;
+-    let mut x691: fiat_p384_u1 = 0;
+     let (x690, x691) = fiat_p384_addcarryx_u32(x689, x630, x666);
+-    let mut x692: u32 = 0;
+-    let mut x693: fiat_p384_u1 = 0;
+     let (x692, x693) = fiat_p384_addcarryx_u32(x691, x632, x668);
+-    let mut x694: u32 = 0;
+-    let mut x695: fiat_p384_u1 = 0;
+     let (x694, x695) = fiat_p384_addcarryx_u32(x693, x634, x670);
+-    let mut x696: u32 = 0;
+-    let mut x697: fiat_p384_u1 = 0;
+     let (x696, x697) = fiat_p384_addcarryx_u32(x695, x636, x672);
+-    let mut x698: u32 = 0;
+-    let mut x699: fiat_p384_u1 = 0;
+     let (x698, x699) = fiat_p384_addcarryx_u32(x697, x638, x674);
+-    let mut x700: u32 = 0;
+-    let mut x701: fiat_p384_u1 = 0;
+     let (x700, x701) = fiat_p384_addcarryx_u32(x699, x640, x676);
+-    let mut x702: u32 = 0;
+-    let mut x703: fiat_p384_u1 = 0;
+     let (x702, x703) = fiat_p384_addcarryx_u32(x701, x642, x678);
+-    let mut x704: u32 = 0;
+-    let mut x705: fiat_p384_u1 = 0;
+     let (x704, x705) = fiat_p384_addcarryx_u32(
+         x703,
+         ((x643 as u32) + (x619 as u32)),
+         ((x679 as u32) + x645),
+     );
+-    let mut x706: u32 = 0;
+-    let mut x707: fiat_p384_u1 = 0;
+     let (x706, x707) = fiat_p384_addcarryx_u32(0x0, x682, (arg1[9]));
+-    let mut x708: u32 = 0;
+-    let mut x709: fiat_p384_u1 = 0;
+     let (x708, x709) = fiat_p384_addcarryx_u32(x707, x684, (0x0 as u32));
+-    let mut x710: u32 = 0;
+-    let mut x711: fiat_p384_u1 = 0;
+     let (x710, x711) = fiat_p384_addcarryx_u32(x709, x686, (0x0 as u32));
+-    let mut x712: u32 = 0;
+-    let mut x713: fiat_p384_u1 = 0;
+     let (x712, x713) = fiat_p384_addcarryx_u32(x711, x688, (0x0 as u32));
+-    let mut x714: u32 = 0;
+-    let mut x715: fiat_p384_u1 = 0;
+     let (x714, x715) = fiat_p384_addcarryx_u32(x713, x690, (0x0 as u32));
+-    let mut x716: u32 = 0;
+-    let mut x717: fiat_p384_u1 = 0;
+     let (x716, x717) = fiat_p384_addcarryx_u32(x715, x692, (0x0 as u32));
+-    let mut x718: u32 = 0;
+-    let mut x719: fiat_p384_u1 = 0;
+     let (x718, x719) = fiat_p384_addcarryx_u32(x717, x694, (0x0 as u32));
+-    let mut x720: u32 = 0;
+-    let mut x721: fiat_p384_u1 = 0;
+     let (x720, x721) = fiat_p384_addcarryx_u32(x719, x696, (0x0 as u32));
+-    let mut x722: u32 = 0;
+-    let mut x723: fiat_p384_u1 = 0;
+     let (x722, x723) = fiat_p384_addcarryx_u32(x721, x698, (0x0 as u32));
+-    let mut x724: u32 = 0;
+-    let mut x725: fiat_p384_u1 = 0;
+     let (x724, x725) = fiat_p384_addcarryx_u32(x723, x700, (0x0 as u32));
+-    let mut x726: u32 = 0;
+-    let mut x727: fiat_p384_u1 = 0;
+     let (x726, x727) = fiat_p384_addcarryx_u32(x725, x702, (0x0 as u32));
+-    let mut x728: u32 = 0;
+-    let mut x729: fiat_p384_u1 = 0;
+     let (x728, x729) = fiat_p384_addcarryx_u32(x727, x704, (0x0 as u32));
+-    let mut x730: u32 = 0;
+-    let mut x731: u32 = 0;
+     let (x730, x731) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x732: u32 = 0;
+-    let mut x733: u32 = 0;
+     let (x732, x733) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x734: u32 = 0;
+-    let mut x735: u32 = 0;
+     let (x734, x735) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x736: u32 = 0;
+-    let mut x737: u32 = 0;
+     let (x736, x737) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x738: u32 = 0;
+-    let mut x739: u32 = 0;
+     let (x738, x739) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x740: u32 = 0;
+-    let mut x741: u32 = 0;
+     let (x740, x741) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x742: u32 = 0;
+-    let mut x743: u32 = 0;
+     let (x742, x743) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x744: u32 = 0;
+-    let mut x745: u32 = 0;
+     let (x744, x745) = fiat_p384_mulx_u32(x706, 0xfffffffe);
+-    let mut x746: u32 = 0;
+-    let mut x747: u32 = 0;
+     let (x746, x747) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x748: u32 = 0;
+-    let mut x749: u32 = 0;
+     let (x748, x749) = fiat_p384_mulx_u32(x706, 0xffffffff);
+-    let mut x750: u32 = 0;
+-    let mut x751: fiat_p384_u1 = 0;
+     let (x750, x751) = fiat_p384_addcarryx_u32(0x0, x747, x744);
+-    let mut x752: u32 = 0;
+-    let mut x753: fiat_p384_u1 = 0;
+     let (x752, x753) = fiat_p384_addcarryx_u32(x751, x745, x742);
+-    let mut x754: u32 = 0;
+-    let mut x755: fiat_p384_u1 = 0;
+     let (x754, x755) = fiat_p384_addcarryx_u32(x753, x743, x740);
+-    let mut x756: u32 = 0;
+-    let mut x757: fiat_p384_u1 = 0;
+     let (x756, x757) = fiat_p384_addcarryx_u32(x755, x741, x738);
+-    let mut x758: u32 = 0;
+-    let mut x759: fiat_p384_u1 = 0;
+     let (x758, x759) = fiat_p384_addcarryx_u32(x757, x739, x736);
+-    let mut x760: u32 = 0;
+-    let mut x761: fiat_p384_u1 = 0;
+     let (x760, x761) = fiat_p384_addcarryx_u32(x759, x737, x734);
+-    let mut x762: u32 = 0;
+-    let mut x763: fiat_p384_u1 = 0;
+     let (x762, x763) = fiat_p384_addcarryx_u32(x761, x735, x732);
+-    let mut x764: u32 = 0;
+-    let mut x765: fiat_p384_u1 = 0;
+     let (x764, x765) = fiat_p384_addcarryx_u32(x763, x733, x730);
+-    let mut x766: u32 = 0;
+-    let mut x767: fiat_p384_u1 = 0;
+     let (x766, x767) = fiat_p384_addcarryx_u32(0x0, x706, x748);
+-    let mut x768: u32 = 0;
+-    let mut x769: fiat_p384_u1 = 0;
+     let (x768, x769) = fiat_p384_addcarryx_u32(x767, x708, x749);
+-    let mut x770: u32 = 0;
+-    let mut x771: fiat_p384_u1 = 0;
+     let (x770, x771) = fiat_p384_addcarryx_u32(x769, x710, (0x0 as u32));
+-    let mut x772: u32 = 0;
+-    let mut x773: fiat_p384_u1 = 0;
+     let (x772, x773) = fiat_p384_addcarryx_u32(x771, x712, x746);
+-    let mut x774: u32 = 0;
+-    let mut x775: fiat_p384_u1 = 0;
+     let (x774, x775) = fiat_p384_addcarryx_u32(x773, x714, x750);
+-    let mut x776: u32 = 0;
+-    let mut x777: fiat_p384_u1 = 0;
+     let (x776, x777) = fiat_p384_addcarryx_u32(x775, x716, x752);
+-    let mut x778: u32 = 0;
+-    let mut x779: fiat_p384_u1 = 0;
+     let (x778, x779) = fiat_p384_addcarryx_u32(x777, x718, x754);
+-    let mut x780: u32 = 0;
+-    let mut x781: fiat_p384_u1 = 0;
+     let (x780, x781) = fiat_p384_addcarryx_u32(x779, x720, x756);
+-    let mut x782: u32 = 0;
+-    let mut x783: fiat_p384_u1 = 0;
+     let (x782, x783) = fiat_p384_addcarryx_u32(x781, x722, x758);
+-    let mut x784: u32 = 0;
+-    let mut x785: fiat_p384_u1 = 0;
+     let (x784, x785) = fiat_p384_addcarryx_u32(x783, x724, x760);
+-    let mut x786: u32 = 0;
+-    let mut x787: fiat_p384_u1 = 0;
+     let (x786, x787) = fiat_p384_addcarryx_u32(x785, x726, x762);
+-    let mut x788: u32 = 0;
+-    let mut x789: fiat_p384_u1 = 0;
+     let (x788, x789) = fiat_p384_addcarryx_u32(x787, x728, x764);
+-    let mut x790: u32 = 0;
+-    let mut x791: fiat_p384_u1 = 0;
+     let (x790, x791) = fiat_p384_addcarryx_u32(
+         x789,
+         ((x729 as u32) + (x705 as u32)),
+         ((x765 as u32) + x731),
+     );
+-    let mut x792: u32 = 0;
+-    let mut x793: fiat_p384_u1 = 0;
+     let (x792, x793) = fiat_p384_addcarryx_u32(0x0, x768, (arg1[10]));
+-    let mut x794: u32 = 0;
+-    let mut x795: fiat_p384_u1 = 0;
+     let (x794, x795) = fiat_p384_addcarryx_u32(x793, x770, (0x0 as u32));
+-    let mut x796: u32 = 0;
+-    let mut x797: fiat_p384_u1 = 0;
+     let (x796, x797) = fiat_p384_addcarryx_u32(x795, x772, (0x0 as u32));
+-    let mut x798: u32 = 0;
+-    let mut x799: fiat_p384_u1 = 0;
+     let (x798, x799) = fiat_p384_addcarryx_u32(x797, x774, (0x0 as u32));
+-    let mut x800: u32 = 0;
+-    let mut x801: fiat_p384_u1 = 0;
+     let (x800, x801) = fiat_p384_addcarryx_u32(x799, x776, (0x0 as u32));
+-    let mut x802: u32 = 0;
+-    let mut x803: fiat_p384_u1 = 0;
+     let (x802, x803) = fiat_p384_addcarryx_u32(x801, x778, (0x0 as u32));
+-    let mut x804: u32 = 0;
+-    let mut x805: fiat_p384_u1 = 0;
+     let (x804, x805) = fiat_p384_addcarryx_u32(x803, x780, (0x0 as u32));
+-    let mut x806: u32 = 0;
+-    let mut x807: fiat_p384_u1 = 0;
+     let (x806, x807) = fiat_p384_addcarryx_u32(x805, x782, (0x0 as u32));
+-    let mut x808: u32 = 0;
+-    let mut x809: fiat_p384_u1 = 0;
+     let (x808, x809) = fiat_p384_addcarryx_u32(x807, x784, (0x0 as u32));
+-    let mut x810: u32 = 0;
+-    let mut x811: fiat_p384_u1 = 0;
+     let (x810, x811) = fiat_p384_addcarryx_u32(x809, x786, (0x0 as u32));
+-    let mut x812: u32 = 0;
+-    let mut x813: fiat_p384_u1 = 0;
+     let (x812, x813) = fiat_p384_addcarryx_u32(x811, x788, (0x0 as u32));
+-    let mut x814: u32 = 0;
+-    let mut x815: fiat_p384_u1 = 0;
+     let (x814, x815) = fiat_p384_addcarryx_u32(x813, x790, (0x0 as u32));
+-    let mut x816: u32 = 0;
+-    let mut x817: u32 = 0;
+     let (x816, x817) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x818: u32 = 0;
+-    let mut x819: u32 = 0;
+     let (x818, x819) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x820: u32 = 0;
+-    let mut x821: u32 = 0;
+     let (x820, x821) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x822: u32 = 0;
+-    let mut x823: u32 = 0;
+     let (x822, x823) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x824: u32 = 0;
+-    let mut x825: u32 = 0;
+     let (x824, x825) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x826: u32 = 0;
+-    let mut x827: u32 = 0;
+     let (x826, x827) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x828: u32 = 0;
+-    let mut x829: u32 = 0;
+     let (x828, x829) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x830: u32 = 0;
+-    let mut x831: u32 = 0;
+     let (x830, x831) = fiat_p384_mulx_u32(x792, 0xfffffffe);
+-    let mut x832: u32 = 0;
+-    let mut x833: u32 = 0;
+     let (x832, x833) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x834: u32 = 0;
+-    let mut x835: u32 = 0;
+     let (x834, x835) = fiat_p384_mulx_u32(x792, 0xffffffff);
+-    let mut x836: u32 = 0;
+-    let mut x837: fiat_p384_u1 = 0;
+     let (x836, x837) = fiat_p384_addcarryx_u32(0x0, x833, x830);
+-    let mut x838: u32 = 0;
+-    let mut x839: fiat_p384_u1 = 0;
+     let (x838, x839) = fiat_p384_addcarryx_u32(x837, x831, x828);
+-    let mut x840: u32 = 0;
+-    let mut x841: fiat_p384_u1 = 0;
+     let (x840, x841) = fiat_p384_addcarryx_u32(x839, x829, x826);
+-    let mut x842: u32 = 0;
+-    let mut x843: fiat_p384_u1 = 0;
+     let (x842, x843) = fiat_p384_addcarryx_u32(x841, x827, x824);
+-    let mut x844: u32 = 0;
+-    let mut x845: fiat_p384_u1 = 0;
+     let (x844, x845) = fiat_p384_addcarryx_u32(x843, x825, x822);
+-    let mut x846: u32 = 0;
+-    let mut x847: fiat_p384_u1 = 0;
+     let (x846, x847) = fiat_p384_addcarryx_u32(x845, x823, x820);
+-    let mut x848: u32 = 0;
+-    let mut x849: fiat_p384_u1 = 0;
+     let (x848, x849) = fiat_p384_addcarryx_u32(x847, x821, x818);
+-    let mut x850: u32 = 0;
+-    let mut x851: fiat_p384_u1 = 0;
+     let (x850, x851) = fiat_p384_addcarryx_u32(x849, x819, x816);
+-    let mut x852: u32 = 0;
+-    let mut x853: fiat_p384_u1 = 0;
+     let (x852, x853) = fiat_p384_addcarryx_u32(0x0, x792, x834);
+-    let mut x854: u32 = 0;
+-    let mut x855: fiat_p384_u1 = 0;
+     let (x854, x855) = fiat_p384_addcarryx_u32(x853, x794, x835);
+-    let mut x856: u32 = 0;
+-    let mut x857: fiat_p384_u1 = 0;
+     let (x856, x857) = fiat_p384_addcarryx_u32(x855, x796, (0x0 as u32));
+-    let mut x858: u32 = 0;
+-    let mut x859: fiat_p384_u1 = 0;
+     let (x858, x859) = fiat_p384_addcarryx_u32(x857, x798, x832);
+-    let mut x860: u32 = 0;
+-    let mut x861: fiat_p384_u1 = 0;
+     let (x860, x861) = fiat_p384_addcarryx_u32(x859, x800, x836);
+-    let mut x862: u32 = 0;
+-    let mut x863: fiat_p384_u1 = 0;
+     let (x862, x863) = fiat_p384_addcarryx_u32(x861, x802, x838);
+-    let mut x864: u32 = 0;
+-    let mut x865: fiat_p384_u1 = 0;
+     let (x864, x865) = fiat_p384_addcarryx_u32(x863, x804, x840);
+-    let mut x866: u32 = 0;
+-    let mut x867: fiat_p384_u1 = 0;
+     let (x866, x867) = fiat_p384_addcarryx_u32(x865, x806, x842);
+-    let mut x868: u32 = 0;
+-    let mut x869: fiat_p384_u1 = 0;
+     let (x868, x869) = fiat_p384_addcarryx_u32(x867, x808, x844);
+-    let mut x870: u32 = 0;
+-    let mut x871: fiat_p384_u1 = 0;
+     let (x870, x871) = fiat_p384_addcarryx_u32(x869, x810, x846);
+-    let mut x872: u32 = 0;
+-    let mut x873: fiat_p384_u1 = 0;
+     let (x872, x873) = fiat_p384_addcarryx_u32(x871, x812, x848);
+-    let mut x874: u32 = 0;
+-    let mut x875: fiat_p384_u1 = 0;
+     let (x874, x875) = fiat_p384_addcarryx_u32(x873, x814, x850);
+-    let mut x876: u32 = 0;
+-    let mut x877: fiat_p384_u1 = 0;
+     let (x876, x877) = fiat_p384_addcarryx_u32(
+         x875,
+         ((x815 as u32) + (x791 as u32)),
+         ((x851 as u32) + x817),
+     );
+-    let mut x878: u32 = 0;
+-    let mut x879: fiat_p384_u1 = 0;
+     let (x878, x879) = fiat_p384_addcarryx_u32(0x0, x854, (arg1[11]));
+-    let mut x880: u32 = 0;
+-    let mut x881: fiat_p384_u1 = 0;
+     let (x880, x881) = fiat_p384_addcarryx_u32(x879, x856, (0x0 as u32));
+-    let mut x882: u32 = 0;
+-    let mut x883: fiat_p384_u1 = 0;
+     let (x882, x883) = fiat_p384_addcarryx_u32(x881, x858, (0x0 as u32));
+-    let mut x884: u32 = 0;
+-    let mut x885: fiat_p384_u1 = 0;
+     let (x884, x885) = fiat_p384_addcarryx_u32(x883, x860, (0x0 as u32));
+-    let mut x886: u32 = 0;
+-    let mut x887: fiat_p384_u1 = 0;
+     let (x886, x887) = fiat_p384_addcarryx_u32(x885, x862, (0x0 as u32));
+-    let mut x888: u32 = 0;
+-    let mut x889: fiat_p384_u1 = 0;
+     let (x888, x889) = fiat_p384_addcarryx_u32(x887, x864, (0x0 as u32));
+-    let mut x890: u32 = 0;
+-    let mut x891: fiat_p384_u1 = 0;
+     let (x890, x891) = fiat_p384_addcarryx_u32(x889, x866, (0x0 as u32));
+-    let mut x892: u32 = 0;
+-    let mut x893: fiat_p384_u1 = 0;
+     let (x892, x893) = fiat_p384_addcarryx_u32(x891, x868, (0x0 as u32));
+-    let mut x894: u32 = 0;
+-    let mut x895: fiat_p384_u1 = 0;
+     let (x894, x895) = fiat_p384_addcarryx_u32(x893, x870, (0x0 as u32));
+-    let mut x896: u32 = 0;
+-    let mut x897: fiat_p384_u1 = 0;
+     let (x896, x897) = fiat_p384_addcarryx_u32(x895, x872, (0x0 as u32));
+-    let mut x898: u32 = 0;
+-    let mut x899: fiat_p384_u1 = 0;
+     let (x898, x899) = fiat_p384_addcarryx_u32(x897, x874, (0x0 as u32));
+-    let mut x900: u32 = 0;
+-    let mut x901: fiat_p384_u1 = 0;
+     let (x900, x901) = fiat_p384_addcarryx_u32(x899, x876, (0x0 as u32));
+-    let mut x902: u32 = 0;
+-    let mut x903: u32 = 0;
+     let (x902, x903) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x904: u32 = 0;
+-    let mut x905: u32 = 0;
+     let (x904, x905) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x906: u32 = 0;
+-    let mut x907: u32 = 0;
+     let (x906, x907) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x908: u32 = 0;
+-    let mut x909: u32 = 0;
+     let (x908, x909) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x910: u32 = 0;
+-    let mut x911: u32 = 0;
+     let (x910, x911) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x912: u32 = 0;
+-    let mut x913: u32 = 0;
+     let (x912, x913) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x914: u32 = 0;
+-    let mut x915: u32 = 0;
+     let (x914, x915) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x916: u32 = 0;
+-    let mut x917: u32 = 0;
+     let (x916, x917) = fiat_p384_mulx_u32(x878, 0xfffffffe);
+-    let mut x918: u32 = 0;
+-    let mut x919: u32 = 0;
+     let (x918, x919) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x920: u32 = 0;
+-    let mut x921: u32 = 0;
+     let (x920, x921) = fiat_p384_mulx_u32(x878, 0xffffffff);
+-    let mut x922: u32 = 0;
+-    let mut x923: fiat_p384_u1 = 0;
+     let (x922, x923) = fiat_p384_addcarryx_u32(0x0, x919, x916);
+-    let mut x924: u32 = 0;
+-    let mut x925: fiat_p384_u1 = 0;
+     let (x924, x925) = fiat_p384_addcarryx_u32(x923, x917, x914);
+-    let mut x926: u32 = 0;
+-    let mut x927: fiat_p384_u1 = 0;
+     let (x926, x927) = fiat_p384_addcarryx_u32(x925, x915, x912);
+-    let mut x928: u32 = 0;
+-    let mut x929: fiat_p384_u1 = 0;
+     let (x928, x929) = fiat_p384_addcarryx_u32(x927, x913, x910);
+-    let mut x930: u32 = 0;
+-    let mut x931: fiat_p384_u1 = 0;
+     let (x930, x931) = fiat_p384_addcarryx_u32(x929, x911, x908);
+-    let mut x932: u32 = 0;
+-    let mut x933: fiat_p384_u1 = 0;
+     let (x932, x933) = fiat_p384_addcarryx_u32(x931, x909, x906);
+-    let mut x934: u32 = 0;
+-    let mut x935: fiat_p384_u1 = 0;
+     let (x934, x935) = fiat_p384_addcarryx_u32(x933, x907, x904);
+-    let mut x936: u32 = 0;
+-    let mut x937: fiat_p384_u1 = 0;
+     let (x936, x937) = fiat_p384_addcarryx_u32(x935, x905, x902);
+-    let mut x938: u32 = 0;
+-    let mut x939: fiat_p384_u1 = 0;
+     let (x938, x939) = fiat_p384_addcarryx_u32(0x0, x878, x920);
+-    let mut x940: u32 = 0;
+-    let mut x941: fiat_p384_u1 = 0;
+     let (x940, x941) = fiat_p384_addcarryx_u32(x939, x880, x921);
+-    let mut x942: u32 = 0;
+-    let mut x943: fiat_p384_u1 = 0;
+     let (x942, x943) = fiat_p384_addcarryx_u32(x941, x882, (0x0 as u32));
+-    let mut x944: u32 = 0;
+-    let mut x945: fiat_p384_u1 = 0;
+     let (x944, x945) = fiat_p384_addcarryx_u32(x943, x884, x918);
+-    let mut x946: u32 = 0;
+-    let mut x947: fiat_p384_u1 = 0;
+     let (x946, x947) = fiat_p384_addcarryx_u32(x945, x886, x922);
+-    let mut x948: u32 = 0;
+-    let mut x949: fiat_p384_u1 = 0;
+     let (x948, x949) = fiat_p384_addcarryx_u32(x947, x888, x924);
+-    let mut x950: u32 = 0;
+-    let mut x951: fiat_p384_u1 = 0;
+     let (x950, x951) = fiat_p384_addcarryx_u32(x949, x890, x926);
+-    let mut x952: u32 = 0;
+-    let mut x953: fiat_p384_u1 = 0;
+     let (x952, x953) = fiat_p384_addcarryx_u32(x951, x892, x928);
+-    let mut x954: u32 = 0;
+-    let mut x955: fiat_p384_u1 = 0;
+     let (x954, x955) = fiat_p384_addcarryx_u32(x953, x894, x930);
+-    let mut x956: u32 = 0;
+-    let mut x957: fiat_p384_u1 = 0;
+     let (x956, x957) = fiat_p384_addcarryx_u32(x955, x896, x932);
+-    let mut x958: u32 = 0;
+-    let mut x959: fiat_p384_u1 = 0;
+     let (x958, x959) = fiat_p384_addcarryx_u32(x957, x898, x934);
+-    let mut x960: u32 = 0;
+-    let mut x961: fiat_p384_u1 = 0;
+     let (x960, x961) = fiat_p384_addcarryx_u32(x959, x900, x936);
+-    let mut x962: u32 = 0;
+-    let mut x963: fiat_p384_u1 = 0;
+     let (x962, x963) = fiat_p384_addcarryx_u32(
+         x961,
+         ((x901 as u32) + (x877 as u32)),
+         ((x937 as u32) + x903),
+     );
+-    let mut x964: u32 = 0;
+-    let mut x965: fiat_p384_u1 = 0;
+     let (x964, x965) = fiat_p384_subborrowx_u32(0x0, x940, 0xffffffff);
+-    let mut x966: u32 = 0;
+-    let mut x967: fiat_p384_u1 = 0;
+     let (x966, x967) = fiat_p384_subborrowx_u32(x965, x942, (0x0 as u32));
+-    let mut x968: u32 = 0;
+-    let mut x969: fiat_p384_u1 = 0;
+     let (x968, x969) = fiat_p384_subborrowx_u32(x967, x944, (0x0 as u32));
+-    let mut x970: u32 = 0;
+-    let mut x971: fiat_p384_u1 = 0;
+     let (x970, x971) = fiat_p384_subborrowx_u32(x969, x946, 0xffffffff);
+-    let mut x972: u32 = 0;
+-    let mut x973: fiat_p384_u1 = 0;
+     let (x972, x973) = fiat_p384_subborrowx_u32(x971, x948, 0xfffffffe);
+-    let mut x974: u32 = 0;
+-    let mut x975: fiat_p384_u1 = 0;
+     let (x974, x975) = fiat_p384_subborrowx_u32(x973, x950, 0xffffffff);
+-    let mut x976: u32 = 0;
+-    let mut x977: fiat_p384_u1 = 0;
+     let (x976, x977) = fiat_p384_subborrowx_u32(x975, x952, 0xffffffff);
+-    let mut x978: u32 = 0;
+-    let mut x979: fiat_p384_u1 = 0;
+     let (x978, x979) = fiat_p384_subborrowx_u32(x977, x954, 0xffffffff);
+-    let mut x980: u32 = 0;
+-    let mut x981: fiat_p384_u1 = 0;
+     let (x980, x981) = fiat_p384_subborrowx_u32(x979, x956, 0xffffffff);
+-    let mut x982: u32 = 0;
+-    let mut x983: fiat_p384_u1 = 0;
+     let (x982, x983) = fiat_p384_subborrowx_u32(x981, x958, 0xffffffff);
+-    let mut x984: u32 = 0;
+-    let mut x985: fiat_p384_u1 = 0;
+     let (x984, x985) = fiat_p384_subborrowx_u32(x983, x960, 0xffffffff);
+-    let mut x986: u32 = 0;
+-    let mut x987: fiat_p384_u1 = 0;
+     let (x986, x987) = fiat_p384_subborrowx_u32(x985, x962, 0xffffffff);
+-    let mut x988: u32 = 0;
+-    let mut x989: fiat_p384_u1 = 0;
+     let (x988, x989) = fiat_p384_subborrowx_u32(x987, (x963 as u32), (0x0 as u32));
+-    let mut x990: u32 = 0;
+     let (x990) = fiat_p384_cmovznz_u32(x989, x964, x940);
+-    let mut x991: u32 = 0;
+     let (x991) = fiat_p384_cmovznz_u32(x989, x966, x942);
+-    let mut x992: u32 = 0;
+     let (x992) = fiat_p384_cmovznz_u32(x989, x968, x944);
+-    let mut x993: u32 = 0;
+     let (x993) = fiat_p384_cmovznz_u32(x989, x970, x946);
+-    let mut x994: u32 = 0;
+     let (x994) = fiat_p384_cmovznz_u32(x989, x972, x948);
+-    let mut x995: u32 = 0;
+     let (x995) = fiat_p384_cmovznz_u32(x989, x974, x950);
+-    let mut x996: u32 = 0;
+     let (x996) = fiat_p384_cmovznz_u32(x989, x976, x952);
+-    let mut x997: u32 = 0;
+     let (x997) = fiat_p384_cmovznz_u32(x989, x978, x954);
+-    let mut x998: u32 = 0;
+     let (x998) = fiat_p384_cmovznz_u32(x989, x980, x956);
+-    let mut x999: u32 = 0;
+     let (x999) = fiat_p384_cmovznz_u32(x989, x982, x958);
+-    let mut x1000: u32 = 0;
+     let (x1000) = fiat_p384_cmovznz_u32(x989, x984, x960);
+-    let mut x1001: u32 = 0;
+     let (x1001) = fiat_p384_cmovznz_u32(x989, x986, x962);
+     out1[0] = x990;
+     out1[1] = x991;
+@@ -7086,1798 +2686,634 @@ pub const fn fiat_p384_to_montgomery(
+     let x10: u32 = (arg1[10]);
+     let x11: u32 = (arg1[11]);
+     let x12: u32 = (arg1[0]);
+-    let mut x13: u32 = 0;
+-    let mut x14: u32 = 0;
+     let (x13, x14) = fiat_p384_mulx_u32(x12, 0x2);
+-    let mut x15: u32 = 0;
+-    let mut x16: u32 = 0;
+     let (x15, x16) = fiat_p384_mulx_u32(x12, 0xfffffffe);
+-    let mut x17: u32 = 0;
+-    let mut x18: u32 = 0;
+     let (x17, x18) = fiat_p384_mulx_u32(x12, 0x2);
+-    let mut x19: u32 = 0;
+-    let mut x20: u32 = 0;
+     let (x19, x20) = fiat_p384_mulx_u32(x12, 0xfffffffe);
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_addcarryx_u32(0x0, ((x14 as fiat_p384_u1) as u32), x12);
+-    let mut x23: u32 = 0;
+-    let mut x24: u32 = 0;
+     let (x23, x24) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x25: u32 = 0;
+-    let mut x26: u32 = 0;
+     let (x25, x26) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x27: u32 = 0;
+-    let mut x28: u32 = 0;
+     let (x27, x28) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x29: u32 = 0;
+-    let mut x30: u32 = 0;
+     let (x29, x30) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x31: u32 = 0;
+-    let mut x32: u32 = 0;
+     let (x31, x32) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x33: u32 = 0;
+-    let mut x34: u32 = 0;
+     let (x33, x34) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x35: u32 = 0;
+-    let mut x36: u32 = 0;
+     let (x35, x36) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x37: u32 = 0;
+-    let mut x38: u32 = 0;
+     let (x37, x38) = fiat_p384_mulx_u32(x12, 0xfffffffe);
+-    let mut x39: u32 = 0;
+-    let mut x40: u32 = 0;
+     let (x39, x40) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x41: u32 = 0;
+-    let mut x42: u32 = 0;
+     let (x41, x42) = fiat_p384_mulx_u32(x12, 0xffffffff);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_u1 = 0;
+     let (x43, x44) = fiat_p384_addcarryx_u32(0x0, x40, x37);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_u1 = 0;
+     let (x45, x46) = fiat_p384_addcarryx_u32(x44, x38, x35);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_u1 = 0;
+     let (x47, x48) = fiat_p384_addcarryx_u32(x46, x36, x33);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_u1 = 0;
+     let (x49, x50) = fiat_p384_addcarryx_u32(x48, x34, x31);
+-    let mut x51: u32 = 0;
+-    let mut x52: fiat_p384_u1 = 0;
+     let (x51, x52) = fiat_p384_addcarryx_u32(x50, x32, x29);
+-    let mut x53: u32 = 0;
+-    let mut x54: fiat_p384_u1 = 0;
+     let (x53, x54) = fiat_p384_addcarryx_u32(x52, x30, x27);
+-    let mut x55: u32 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_addcarryx_u32(x54, x28, x25);
+-    let mut x57: u32 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_addcarryx_u32(x56, x26, x23);
+-    let mut x59: u32 = 0;
+-    let mut x60: fiat_p384_u1 = 0;
+     let (x59, x60) = fiat_p384_addcarryx_u32(0x0, x12, x41);
+-    let mut x61: u32 = 0;
+-    let mut x62: fiat_p384_u1 = 0;
+     let (x61, x62) = fiat_p384_addcarryx_u32(x60, x19, x42);
+-    let mut x63: u32 = 0;
+-    let mut x64: fiat_p384_u1 = 0;
+     let (x63, x64) = fiat_p384_addcarryx_u32(0x0, x17, x39);
+-    let mut x65: u32 = 0;
+-    let mut x66: fiat_p384_u1 = 0;
+     let (x65, x66) = fiat_p384_addcarryx_u32(x64, ((x18 as fiat_p384_u1) as u32), x43);
+-    let mut x67: u32 = 0;
+-    let mut x68: fiat_p384_u1 = 0;
+     let (x67, x68) = fiat_p384_addcarryx_u32(x66, x15, x45);
+-    let mut x69: u32 = 0;
+-    let mut x70: fiat_p384_u1 = 0;
+     let (x69, x70) = fiat_p384_addcarryx_u32(x68, x16, x47);
+-    let mut x71: u32 = 0;
+-    let mut x72: fiat_p384_u1 = 0;
+     let (x71, x72) = fiat_p384_addcarryx_u32(x70, x13, x49);
+-    let mut x73: u32 = 0;
+-    let mut x74: fiat_p384_u1 = 0;
+     let (x73, x74) = fiat_p384_addcarryx_u32(x72, x21, x51);
+-    let mut x75: u32 = 0;
+-    let mut x76: fiat_p384_u1 = 0;
+     let (x75, x76) = fiat_p384_addcarryx_u32(x74, (x22 as u32), x53);
+-    let mut x77: u32 = 0;
+-    let mut x78: fiat_p384_u1 = 0;
+     let (x77, x78) = fiat_p384_addcarryx_u32(x76, (0x0 as u32), x55);
+-    let mut x79: u32 = 0;
+-    let mut x80: fiat_p384_u1 = 0;
+     let (x79, x80) = fiat_p384_addcarryx_u32(x78, (0x0 as u32), x57);
+-    let mut x81: u32 = 0;
+-    let mut x82: fiat_p384_u1 = 0;
+     let (x81, x82) = fiat_p384_addcarryx_u32(x80, (0x0 as u32), ((x58 as u32) + x24));
+-    let mut x83: u32 = 0;
+-    let mut x84: u32 = 0;
+     let (x83, x84) = fiat_p384_mulx_u32(x1, 0x2);
+-    let mut x85: u32 = 0;
+-    let mut x86: u32 = 0;
+     let (x85, x86) = fiat_p384_mulx_u32(x1, 0xfffffffe);
+-    let mut x87: u32 = 0;
+-    let mut x88: u32 = 0;
+     let (x87, x88) = fiat_p384_mulx_u32(x1, 0x2);
+-    let mut x89: u32 = 0;
+-    let mut x90: u32 = 0;
+     let (x89, x90) = fiat_p384_mulx_u32(x1, 0xfffffffe);
+-    let mut x91: u32 = 0;
+-    let mut x92: fiat_p384_u1 = 0;
+     let (x91, x92) = fiat_p384_addcarryx_u32(0x0, ((x84 as fiat_p384_u1) as u32), x1);
+-    let mut x93: u32 = 0;
+-    let mut x94: fiat_p384_u1 = 0;
+     let (x93, x94) = fiat_p384_addcarryx_u32(0x0, x61, x1);
+-    let mut x95: u32 = 0;
+-    let mut x96: fiat_p384_u1 = 0;
+     let (x95, x96) = fiat_p384_addcarryx_u32(x94, ((x62 as u32) + x20), x89);
+-    let mut x97: u32 = 0;
+-    let mut x98: fiat_p384_u1 = 0;
+     let (x97, x98) = fiat_p384_addcarryx_u32(x96, x63, x90);
+-    let mut x99: u32 = 0;
+-    let mut x100: fiat_p384_u1 = 0;
+     let (x99, x100) = fiat_p384_addcarryx_u32(x98, x65, x87);
+-    let mut x101: u32 = 0;
+-    let mut x102: fiat_p384_u1 = 0;
+     let (x101, x102) = fiat_p384_addcarryx_u32(x100, x67, ((x88 as fiat_p384_u1) as u32));
+-    let mut x103: u32 = 0;
+-    let mut x104: fiat_p384_u1 = 0;
+     let (x103, x104) = fiat_p384_addcarryx_u32(x102, x69, x85);
+-    let mut x105: u32 = 0;
+-    let mut x106: fiat_p384_u1 = 0;
+     let (x105, x106) = fiat_p384_addcarryx_u32(x104, x71, x86);
+-    let mut x107: u32 = 0;
+-    let mut x108: fiat_p384_u1 = 0;
+     let (x107, x108) = fiat_p384_addcarryx_u32(x106, x73, x83);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_u1 = 0;
+     let (x109, x110) = fiat_p384_addcarryx_u32(x108, x75, x91);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_u1 = 0;
+     let (x111, x112) = fiat_p384_addcarryx_u32(x110, x77, (x92 as u32));
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_u1 = 0;
+     let (x113, x114) = fiat_p384_addcarryx_u32(x112, x79, (0x0 as u32));
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_u1 = 0;
+     let (x115, x116) = fiat_p384_addcarryx_u32(x114, x81, (0x0 as u32));
+-    let mut x117: u32 = 0;
+-    let mut x118: u32 = 0;
+     let (x117, x118) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x119: u32 = 0;
+-    let mut x120: u32 = 0;
+     let (x119, x120) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x121: u32 = 0;
+-    let mut x122: u32 = 0;
+     let (x121, x122) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x123: u32 = 0;
+-    let mut x124: u32 = 0;
+     let (x123, x124) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x125: u32 = 0;
+-    let mut x126: u32 = 0;
+     let (x125, x126) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x127: u32 = 0;
+-    let mut x128: u32 = 0;
+     let (x127, x128) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x129: u32 = 0;
+-    let mut x130: u32 = 0;
+     let (x129, x130) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x131: u32 = 0;
+-    let mut x132: u32 = 0;
+     let (x131, x132) = fiat_p384_mulx_u32(x93, 0xfffffffe);
+-    let mut x133: u32 = 0;
+-    let mut x134: u32 = 0;
+     let (x133, x134) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x135: u32 = 0;
+-    let mut x136: u32 = 0;
+     let (x135, x136) = fiat_p384_mulx_u32(x93, 0xffffffff);
+-    let mut x137: u32 = 0;
+-    let mut x138: fiat_p384_u1 = 0;
+     let (x137, x138) = fiat_p384_addcarryx_u32(0x0, x134, x131);
+-    let mut x139: u32 = 0;
+-    let mut x140: fiat_p384_u1 = 0;
+     let (x139, x140) = fiat_p384_addcarryx_u32(x138, x132, x129);
+-    let mut x141: u32 = 0;
+-    let mut x142: fiat_p384_u1 = 0;
+     let (x141, x142) = fiat_p384_addcarryx_u32(x140, x130, x127);
+-    let mut x143: u32 = 0;
+-    let mut x144: fiat_p384_u1 = 0;
+     let (x143, x144) = fiat_p384_addcarryx_u32(x142, x128, x125);
+-    let mut x145: u32 = 0;
+-    let mut x146: fiat_p384_u1 = 0;
+     let (x145, x146) = fiat_p384_addcarryx_u32(x144, x126, x123);
+-    let mut x147: u32 = 0;
+-    let mut x148: fiat_p384_u1 = 0;
+     let (x147, x148) = fiat_p384_addcarryx_u32(x146, x124, x121);
+-    let mut x149: u32 = 0;
+-    let mut x150: fiat_p384_u1 = 0;
+     let (x149, x150) = fiat_p384_addcarryx_u32(x148, x122, x119);
+-    let mut x151: u32 = 0;
+-    let mut x152: fiat_p384_u1 = 0;
+     let (x151, x152) = fiat_p384_addcarryx_u32(x150, x120, x117);
+-    let mut x153: u32 = 0;
+-    let mut x154: fiat_p384_u1 = 0;
+     let (x153, x154) = fiat_p384_addcarryx_u32(0x0, x93, x135);
+-    let mut x155: u32 = 0;
+-    let mut x156: fiat_p384_u1 = 0;
+     let (x155, x156) = fiat_p384_addcarryx_u32(x154, x95, x136);
+-    let mut x157: u32 = 0;
+-    let mut x158: fiat_p384_u1 = 0;
+     let (x157, x158) = fiat_p384_addcarryx_u32(x156, x97, (0x0 as u32));
+-    let mut x159: u32 = 0;
+-    let mut x160: fiat_p384_u1 = 0;
+     let (x159, x160) = fiat_p384_addcarryx_u32(x158, x99, x133);
+-    let mut x161: u32 = 0;
+-    let mut x162: fiat_p384_u1 = 0;
+     let (x161, x162) = fiat_p384_addcarryx_u32(x160, x101, x137);
+-    let mut x163: u32 = 0;
+-    let mut x164: fiat_p384_u1 = 0;
+     let (x163, x164) = fiat_p384_addcarryx_u32(x162, x103, x139);
+-    let mut x165: u32 = 0;
+-    let mut x166: fiat_p384_u1 = 0;
+     let (x165, x166) = fiat_p384_addcarryx_u32(x164, x105, x141);
+-    let mut x167: u32 = 0;
+-    let mut x168: fiat_p384_u1 = 0;
+     let (x167, x168) = fiat_p384_addcarryx_u32(x166, x107, x143);
+-    let mut x169: u32 = 0;
+-    let mut x170: fiat_p384_u1 = 0;
+     let (x169, x170) = fiat_p384_addcarryx_u32(x168, x109, x145);
+-    let mut x171: u32 = 0;
+-    let mut x172: fiat_p384_u1 = 0;
+     let (x171, x172) = fiat_p384_addcarryx_u32(x170, x111, x147);
+-    let mut x173: u32 = 0;
+-    let mut x174: fiat_p384_u1 = 0;
+     let (x173, x174) = fiat_p384_addcarryx_u32(x172, x113, x149);
+-    let mut x175: u32 = 0;
+-    let mut x176: fiat_p384_u1 = 0;
+     let (x175, x176) = fiat_p384_addcarryx_u32(x174, x115, x151);
+-    let mut x177: u32 = 0;
+-    let mut x178: fiat_p384_u1 = 0;
+     let (x177, x178) =
+         fiat_p384_addcarryx_u32(x176, ((x116 as u32) + (x82 as u32)), ((x152 as u32) + x118));
+-    let mut x179: u32 = 0;
+-    let mut x180: u32 = 0;
+     let (x179, x180) = fiat_p384_mulx_u32(x2, 0x2);
+-    let mut x181: u32 = 0;
+-    let mut x182: u32 = 0;
+     let (x181, x182) = fiat_p384_mulx_u32(x2, 0xfffffffe);
+-    let mut x183: u32 = 0;
+-    let mut x184: u32 = 0;
+     let (x183, x184) = fiat_p384_mulx_u32(x2, 0x2);
+-    let mut x185: u32 = 0;
+-    let mut x186: u32 = 0;
+     let (x185, x186) = fiat_p384_mulx_u32(x2, 0xfffffffe);
+-    let mut x187: u32 = 0;
+-    let mut x188: fiat_p384_u1 = 0;
+     let (x187, x188) = fiat_p384_addcarryx_u32(0x0, ((x180 as fiat_p384_u1) as u32), x2);
+-    let mut x189: u32 = 0;
+-    let mut x190: fiat_p384_u1 = 0;
+     let (x189, x190) = fiat_p384_addcarryx_u32(0x0, x155, x2);
+-    let mut x191: u32 = 0;
+-    let mut x192: fiat_p384_u1 = 0;
+     let (x191, x192) = fiat_p384_addcarryx_u32(x190, x157, x185);
+-    let mut x193: u32 = 0;
+-    let mut x194: fiat_p384_u1 = 0;
+     let (x193, x194) = fiat_p384_addcarryx_u32(x192, x159, x186);
+-    let mut x195: u32 = 0;
+-    let mut x196: fiat_p384_u1 = 0;
+     let (x195, x196) = fiat_p384_addcarryx_u32(x194, x161, x183);
+-    let mut x197: u32 = 0;
+-    let mut x198: fiat_p384_u1 = 0;
+     let (x197, x198) = fiat_p384_addcarryx_u32(x196, x163, ((x184 as fiat_p384_u1) as u32));
+-    let mut x199: u32 = 0;
+-    let mut x200: fiat_p384_u1 = 0;
+     let (x199, x200) = fiat_p384_addcarryx_u32(x198, x165, x181);
+-    let mut x201: u32 = 0;
+-    let mut x202: fiat_p384_u1 = 0;
+     let (x201, x202) = fiat_p384_addcarryx_u32(x200, x167, x182);
+-    let mut x203: u32 = 0;
+-    let mut x204: fiat_p384_u1 = 0;
+     let (x203, x204) = fiat_p384_addcarryx_u32(x202, x169, x179);
+-    let mut x205: u32 = 0;
+-    let mut x206: fiat_p384_u1 = 0;
+     let (x205, x206) = fiat_p384_addcarryx_u32(x204, x171, x187);
+-    let mut x207: u32 = 0;
+-    let mut x208: fiat_p384_u1 = 0;
+     let (x207, x208) = fiat_p384_addcarryx_u32(x206, x173, (x188 as u32));
+-    let mut x209: u32 = 0;
+-    let mut x210: fiat_p384_u1 = 0;
+     let (x209, x210) = fiat_p384_addcarryx_u32(x208, x175, (0x0 as u32));
+-    let mut x211: u32 = 0;
+-    let mut x212: fiat_p384_u1 = 0;
+     let (x211, x212) = fiat_p384_addcarryx_u32(x210, x177, (0x0 as u32));
+-    let mut x213: u32 = 0;
+-    let mut x214: u32 = 0;
+     let (x213, x214) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x215: u32 = 0;
+-    let mut x216: u32 = 0;
+     let (x215, x216) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x217: u32 = 0;
+-    let mut x218: u32 = 0;
+     let (x217, x218) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x219: u32 = 0;
+-    let mut x220: u32 = 0;
+     let (x219, x220) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x221: u32 = 0;
+-    let mut x222: u32 = 0;
+     let (x221, x222) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x223: u32 = 0;
+-    let mut x224: u32 = 0;
+     let (x223, x224) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x225: u32 = 0;
+-    let mut x226: u32 = 0;
+     let (x225, x226) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x227: u32 = 0;
+-    let mut x228: u32 = 0;
+     let (x227, x228) = fiat_p384_mulx_u32(x189, 0xfffffffe);
+-    let mut x229: u32 = 0;
+-    let mut x230: u32 = 0;
+     let (x229, x230) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x231: u32 = 0;
+-    let mut x232: u32 = 0;
+     let (x231, x232) = fiat_p384_mulx_u32(x189, 0xffffffff);
+-    let mut x233: u32 = 0;
+-    let mut x234: fiat_p384_u1 = 0;
+     let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x230, x227);
+-    let mut x235: u32 = 0;
+-    let mut x236: fiat_p384_u1 = 0;
+     let (x235, x236) = fiat_p384_addcarryx_u32(x234, x228, x225);
+-    let mut x237: u32 = 0;
+-    let mut x238: fiat_p384_u1 = 0;
+     let (x237, x238) = fiat_p384_addcarryx_u32(x236, x226, x223);
+-    let mut x239: u32 = 0;
+-    let mut x240: fiat_p384_u1 = 0;
+     let (x239, x240) = fiat_p384_addcarryx_u32(x238, x224, x221);
+-    let mut x241: u32 = 0;
+-    let mut x242: fiat_p384_u1 = 0;
+     let (x241, x242) = fiat_p384_addcarryx_u32(x240, x222, x219);
+-    let mut x243: u32 = 0;
+-    let mut x244: fiat_p384_u1 = 0;
+     let (x243, x244) = fiat_p384_addcarryx_u32(x242, x220, x217);
+-    let mut x245: u32 = 0;
+-    let mut x246: fiat_p384_u1 = 0;
+     let (x245, x246) = fiat_p384_addcarryx_u32(x244, x218, x215);
+-    let mut x247: u32 = 0;
+-    let mut x248: fiat_p384_u1 = 0;
+     let (x247, x248) = fiat_p384_addcarryx_u32(x246, x216, x213);
+-    let mut x249: u32 = 0;
+-    let mut x250: fiat_p384_u1 = 0;
+     let (x249, x250) = fiat_p384_addcarryx_u32(0x0, x189, x231);
+-    let mut x251: u32 = 0;
+-    let mut x252: fiat_p384_u1 = 0;
+     let (x251, x252) = fiat_p384_addcarryx_u32(x250, x191, x232);
+-    let mut x253: u32 = 0;
+-    let mut x254: fiat_p384_u1 = 0;
+     let (x253, x254) = fiat_p384_addcarryx_u32(x252, x193, (0x0 as u32));
+-    let mut x255: u32 = 0;
+-    let mut x256: fiat_p384_u1 = 0;
+     let (x255, x256) = fiat_p384_addcarryx_u32(x254, x195, x229);
+-    let mut x257: u32 = 0;
+-    let mut x258: fiat_p384_u1 = 0;
+     let (x257, x258) = fiat_p384_addcarryx_u32(x256, x197, x233);
+-    let mut x259: u32 = 0;
+-    let mut x260: fiat_p384_u1 = 0;
+     let (x259, x260) = fiat_p384_addcarryx_u32(x258, x199, x235);
+-    let mut x261: u32 = 0;
+-    let mut x262: fiat_p384_u1 = 0;
+     let (x261, x262) = fiat_p384_addcarryx_u32(x260, x201, x237);
+-    let mut x263: u32 = 0;
+-    let mut x264: fiat_p384_u1 = 0;
+     let (x263, x264) = fiat_p384_addcarryx_u32(x262, x203, x239);
+-    let mut x265: u32 = 0;
+-    let mut x266: fiat_p384_u1 = 0;
+     let (x265, x266) = fiat_p384_addcarryx_u32(x264, x205, x241);
+-    let mut x267: u32 = 0;
+-    let mut x268: fiat_p384_u1 = 0;
+     let (x267, x268) = fiat_p384_addcarryx_u32(x266, x207, x243);
+-    let mut x269: u32 = 0;
+-    let mut x270: fiat_p384_u1 = 0;
+     let (x269, x270) = fiat_p384_addcarryx_u32(x268, x209, x245);
+-    let mut x271: u32 = 0;
+-    let mut x272: fiat_p384_u1 = 0;
+     let (x271, x272) = fiat_p384_addcarryx_u32(x270, x211, x247);
+-    let mut x273: u32 = 0;
+-    let mut x274: fiat_p384_u1 = 0;
+     let (x273, x274) = fiat_p384_addcarryx_u32(
+         x272,
+         ((x212 as u32) + (x178 as u32)),
+         ((x248 as u32) + x214),
+     );
+-    let mut x275: u32 = 0;
+-    let mut x276: u32 = 0;
+     let (x275, x276) = fiat_p384_mulx_u32(x3, 0x2);
+-    let mut x277: u32 = 0;
+-    let mut x278: u32 = 0;
+     let (x277, x278) = fiat_p384_mulx_u32(x3, 0xfffffffe);
+-    let mut x279: u32 = 0;
+-    let mut x280: u32 = 0;
+     let (x279, x280) = fiat_p384_mulx_u32(x3, 0x2);
+-    let mut x281: u32 = 0;
+-    let mut x282: u32 = 0;
+     let (x281, x282) = fiat_p384_mulx_u32(x3, 0xfffffffe);
+-    let mut x283: u32 = 0;
+-    let mut x284: fiat_p384_u1 = 0;
+     let (x283, x284) = fiat_p384_addcarryx_u32(0x0, ((x276 as fiat_p384_u1) as u32), x3);
+-    let mut x285: u32 = 0;
+-    let mut x286: fiat_p384_u1 = 0;
+     let (x285, x286) = fiat_p384_addcarryx_u32(0x0, x251, x3);
+-    let mut x287: u32 = 0;
+-    let mut x288: fiat_p384_u1 = 0;
+     let (x287, x288) = fiat_p384_addcarryx_u32(x286, x253, x281);
+-    let mut x289: u32 = 0;
+-    let mut x290: fiat_p384_u1 = 0;
+     let (x289, x290) = fiat_p384_addcarryx_u32(x288, x255, x282);
+-    let mut x291: u32 = 0;
+-    let mut x292: fiat_p384_u1 = 0;
+     let (x291, x292) = fiat_p384_addcarryx_u32(x290, x257, x279);
+-    let mut x293: u32 = 0;
+-    let mut x294: fiat_p384_u1 = 0;
+     let (x293, x294) = fiat_p384_addcarryx_u32(x292, x259, ((x280 as fiat_p384_u1) as u32));
+-    let mut x295: u32 = 0;
+-    let mut x296: fiat_p384_u1 = 0;
+     let (x295, x296) = fiat_p384_addcarryx_u32(x294, x261, x277);
+-    let mut x297: u32 = 0;
+-    let mut x298: fiat_p384_u1 = 0;
+     let (x297, x298) = fiat_p384_addcarryx_u32(x296, x263, x278);
+-    let mut x299: u32 = 0;
+-    let mut x300: fiat_p384_u1 = 0;
+     let (x299, x300) = fiat_p384_addcarryx_u32(x298, x265, x275);
+-    let mut x301: u32 = 0;
+-    let mut x302: fiat_p384_u1 = 0;
+     let (x301, x302) = fiat_p384_addcarryx_u32(x300, x267, x283);
+-    let mut x303: u32 = 0;
+-    let mut x304: fiat_p384_u1 = 0;
+     let (x303, x304) = fiat_p384_addcarryx_u32(x302, x269, (x284 as u32));
+-    let mut x305: u32 = 0;
+-    let mut x306: fiat_p384_u1 = 0;
+     let (x305, x306) = fiat_p384_addcarryx_u32(x304, x271, (0x0 as u32));
+-    let mut x307: u32 = 0;
+-    let mut x308: fiat_p384_u1 = 0;
+     let (x307, x308) = fiat_p384_addcarryx_u32(x306, x273, (0x0 as u32));
+-    let mut x309: u32 = 0;
+-    let mut x310: u32 = 0;
+     let (x309, x310) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x311: u32 = 0;
+-    let mut x312: u32 = 0;
+     let (x311, x312) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x313: u32 = 0;
+-    let mut x314: u32 = 0;
+     let (x313, x314) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x315: u32 = 0;
+-    let mut x316: u32 = 0;
+     let (x315, x316) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x317: u32 = 0;
+-    let mut x318: u32 = 0;
+     let (x317, x318) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x319: u32 = 0;
+-    let mut x320: u32 = 0;
+     let (x319, x320) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x321: u32 = 0;
+-    let mut x322: u32 = 0;
+     let (x321, x322) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x323: u32 = 0;
+-    let mut x324: u32 = 0;
+     let (x323, x324) = fiat_p384_mulx_u32(x285, 0xfffffffe);
+-    let mut x325: u32 = 0;
+-    let mut x326: u32 = 0;
+     let (x325, x326) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x327: u32 = 0;
+-    let mut x328: u32 = 0;
+     let (x327, x328) = fiat_p384_mulx_u32(x285, 0xffffffff);
+-    let mut x329: u32 = 0;
+-    let mut x330: fiat_p384_u1 = 0;
+     let (x329, x330) = fiat_p384_addcarryx_u32(0x0, x326, x323);
+-    let mut x331: u32 = 0;
+-    let mut x332: fiat_p384_u1 = 0;
+     let (x331, x332) = fiat_p384_addcarryx_u32(x330, x324, x321);
+-    let mut x333: u32 = 0;
+-    let mut x334: fiat_p384_u1 = 0;
+     let (x333, x334) = fiat_p384_addcarryx_u32(x332, x322, x319);
+-    let mut x335: u32 = 0;
+-    let mut x336: fiat_p384_u1 = 0;
+     let (x335, x336) = fiat_p384_addcarryx_u32(x334, x320, x317);
+-    let mut x337: u32 = 0;
+-    let mut x338: fiat_p384_u1 = 0;
+     let (x337, x338) = fiat_p384_addcarryx_u32(x336, x318, x315);
+-    let mut x339: u32 = 0;
+-    let mut x340: fiat_p384_u1 = 0;
+     let (x339, x340) = fiat_p384_addcarryx_u32(x338, x316, x313);
+-    let mut x341: u32 = 0;
+-    let mut x342: fiat_p384_u1 = 0;
+     let (x341, x342) = fiat_p384_addcarryx_u32(x340, x314, x311);
+-    let mut x343: u32 = 0;
+-    let mut x344: fiat_p384_u1 = 0;
+     let (x343, x344) = fiat_p384_addcarryx_u32(x342, x312, x309);
+-    let mut x345: u32 = 0;
+-    let mut x346: fiat_p384_u1 = 0;
+     let (x345, x346) = fiat_p384_addcarryx_u32(0x0, x285, x327);
+-    let mut x347: u32 = 0;
+-    let mut x348: fiat_p384_u1 = 0;
+     let (x347, x348) = fiat_p384_addcarryx_u32(x346, x287, x328);
+-    let mut x349: u32 = 0;
+-    let mut x350: fiat_p384_u1 = 0;
+     let (x349, x350) = fiat_p384_addcarryx_u32(x348, x289, (0x0 as u32));
+-    let mut x351: u32 = 0;
+-    let mut x352: fiat_p384_u1 = 0;
+     let (x351, x352) = fiat_p384_addcarryx_u32(x350, x291, x325);
+-    let mut x353: u32 = 0;
+-    let mut x354: fiat_p384_u1 = 0;
+     let (x353, x354) = fiat_p384_addcarryx_u32(x352, x293, x329);
+-    let mut x355: u32 = 0;
+-    let mut x356: fiat_p384_u1 = 0;
+     let (x355, x356) = fiat_p384_addcarryx_u32(x354, x295, x331);
+-    let mut x357: u32 = 0;
+-    let mut x358: fiat_p384_u1 = 0;
+     let (x357, x358) = fiat_p384_addcarryx_u32(x356, x297, x333);
+-    let mut x359: u32 = 0;
+-    let mut x360: fiat_p384_u1 = 0;
+     let (x359, x360) = fiat_p384_addcarryx_u32(x358, x299, x335);
+-    let mut x361: u32 = 0;
+-    let mut x362: fiat_p384_u1 = 0;
+     let (x361, x362) = fiat_p384_addcarryx_u32(x360, x301, x337);
+-    let mut x363: u32 = 0;
+-    let mut x364: fiat_p384_u1 = 0;
+     let (x363, x364) = fiat_p384_addcarryx_u32(x362, x303, x339);
+-    let mut x365: u32 = 0;
+-    let mut x366: fiat_p384_u1 = 0;
+     let (x365, x366) = fiat_p384_addcarryx_u32(x364, x305, x341);
+-    let mut x367: u32 = 0;
+-    let mut x368: fiat_p384_u1 = 0;
+     let (x367, x368) = fiat_p384_addcarryx_u32(x366, x307, x343);
+-    let mut x369: u32 = 0;
+-    let mut x370: fiat_p384_u1 = 0;
+     let (x369, x370) = fiat_p384_addcarryx_u32(
+         x368,
+         ((x308 as u32) + (x274 as u32)),
+         ((x344 as u32) + x310),
+     );
+-    let mut x371: u32 = 0;
+-    let mut x372: u32 = 0;
+     let (x371, x372) = fiat_p384_mulx_u32(x4, 0x2);
+-    let mut x373: u32 = 0;
+-    let mut x374: u32 = 0;
+     let (x373, x374) = fiat_p384_mulx_u32(x4, 0xfffffffe);
+-    let mut x375: u32 = 0;
+-    let mut x376: u32 = 0;
+     let (x375, x376) = fiat_p384_mulx_u32(x4, 0x2);
+-    let mut x377: u32 = 0;
+-    let mut x378: u32 = 0;
+     let (x377, x378) = fiat_p384_mulx_u32(x4, 0xfffffffe);
+-    let mut x379: u32 = 0;
+-    let mut x380: fiat_p384_u1 = 0;
+     let (x379, x380) = fiat_p384_addcarryx_u32(0x0, ((x372 as fiat_p384_u1) as u32), x4);
+-    let mut x381: u32 = 0;
+-    let mut x382: fiat_p384_u1 = 0;
+     let (x381, x382) = fiat_p384_addcarryx_u32(0x0, x347, x4);
+-    let mut x383: u32 = 0;
+-    let mut x384: fiat_p384_u1 = 0;
+     let (x383, x384) = fiat_p384_addcarryx_u32(x382, x349, x377);
+-    let mut x385: u32 = 0;
+-    let mut x386: fiat_p384_u1 = 0;
+     let (x385, x386) = fiat_p384_addcarryx_u32(x384, x351, x378);
+-    let mut x387: u32 = 0;
+-    let mut x388: fiat_p384_u1 = 0;
+     let (x387, x388) = fiat_p384_addcarryx_u32(x386, x353, x375);
+-    let mut x389: u32 = 0;
+-    let mut x390: fiat_p384_u1 = 0;
+     let (x389, x390) = fiat_p384_addcarryx_u32(x388, x355, ((x376 as fiat_p384_u1) as u32));
+-    let mut x391: u32 = 0;
+-    let mut x392: fiat_p384_u1 = 0;
+     let (x391, x392) = fiat_p384_addcarryx_u32(x390, x357, x373);
+-    let mut x393: u32 = 0;
+-    let mut x394: fiat_p384_u1 = 0;
+     let (x393, x394) = fiat_p384_addcarryx_u32(x392, x359, x374);
+-    let mut x395: u32 = 0;
+-    let mut x396: fiat_p384_u1 = 0;
+     let (x395, x396) = fiat_p384_addcarryx_u32(x394, x361, x371);
+-    let mut x397: u32 = 0;
+-    let mut x398: fiat_p384_u1 = 0;
+     let (x397, x398) = fiat_p384_addcarryx_u32(x396, x363, x379);
+-    let mut x399: u32 = 0;
+-    let mut x400: fiat_p384_u1 = 0;
+     let (x399, x400) = fiat_p384_addcarryx_u32(x398, x365, (x380 as u32));
+-    let mut x401: u32 = 0;
+-    let mut x402: fiat_p384_u1 = 0;
+     let (x401, x402) = fiat_p384_addcarryx_u32(x400, x367, (0x0 as u32));
+-    let mut x403: u32 = 0;
+-    let mut x404: fiat_p384_u1 = 0;
+     let (x403, x404) = fiat_p384_addcarryx_u32(x402, x369, (0x0 as u32));
+-    let mut x405: u32 = 0;
+-    let mut x406: u32 = 0;
+     let (x405, x406) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x407: u32 = 0;
+-    let mut x408: u32 = 0;
+     let (x407, x408) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x409: u32 = 0;
+-    let mut x410: u32 = 0;
+     let (x409, x410) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x411: u32 = 0;
+-    let mut x412: u32 = 0;
+     let (x411, x412) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x413: u32 = 0;
+-    let mut x414: u32 = 0;
+     let (x413, x414) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x415: u32 = 0;
+-    let mut x416: u32 = 0;
+     let (x415, x416) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x417: u32 = 0;
+-    let mut x418: u32 = 0;
+     let (x417, x418) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x419: u32 = 0;
+-    let mut x420: u32 = 0;
+     let (x419, x420) = fiat_p384_mulx_u32(x381, 0xfffffffe);
+-    let mut x421: u32 = 0;
+-    let mut x422: u32 = 0;
+     let (x421, x422) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x423: u32 = 0;
+-    let mut x424: u32 = 0;
+     let (x423, x424) = fiat_p384_mulx_u32(x381, 0xffffffff);
+-    let mut x425: u32 = 0;
+-    let mut x426: fiat_p384_u1 = 0;
+     let (x425, x426) = fiat_p384_addcarryx_u32(0x0, x422, x419);
+-    let mut x427: u32 = 0;
+-    let mut x428: fiat_p384_u1 = 0;
+     let (x427, x428) = fiat_p384_addcarryx_u32(x426, x420, x417);
+-    let mut x429: u32 = 0;
+-    let mut x430: fiat_p384_u1 = 0;
+     let (x429, x430) = fiat_p384_addcarryx_u32(x428, x418, x415);
+-    let mut x431: u32 = 0;
+-    let mut x432: fiat_p384_u1 = 0;
+     let (x431, x432) = fiat_p384_addcarryx_u32(x430, x416, x413);
+-    let mut x433: u32 = 0;
+-    let mut x434: fiat_p384_u1 = 0;
+     let (x433, x434) = fiat_p384_addcarryx_u32(x432, x414, x411);
+-    let mut x435: u32 = 0;
+-    let mut x436: fiat_p384_u1 = 0;
+     let (x435, x436) = fiat_p384_addcarryx_u32(x434, x412, x409);
+-    let mut x437: u32 = 0;
+-    let mut x438: fiat_p384_u1 = 0;
+     let (x437, x438) = fiat_p384_addcarryx_u32(x436, x410, x407);
+-    let mut x439: u32 = 0;
+-    let mut x440: fiat_p384_u1 = 0;
+     let (x439, x440) = fiat_p384_addcarryx_u32(x438, x408, x405);
+-    let mut x441: u32 = 0;
+-    let mut x442: fiat_p384_u1 = 0;
+     let (x441, x442) = fiat_p384_addcarryx_u32(0x0, x381, x423);
+-    let mut x443: u32 = 0;
+-    let mut x444: fiat_p384_u1 = 0;
+     let (x443, x444) = fiat_p384_addcarryx_u32(x442, x383, x424);
+-    let mut x445: u32 = 0;
+-    let mut x446: fiat_p384_u1 = 0;
+     let (x445, x446) = fiat_p384_addcarryx_u32(x444, x385, (0x0 as u32));
+-    let mut x447: u32 = 0;
+-    let mut x448: fiat_p384_u1 = 0;
+     let (x447, x448) = fiat_p384_addcarryx_u32(x446, x387, x421);
+-    let mut x449: u32 = 0;
+-    let mut x450: fiat_p384_u1 = 0;
+     let (x449, x450) = fiat_p384_addcarryx_u32(x448, x389, x425);
+-    let mut x451: u32 = 0;
+-    let mut x452: fiat_p384_u1 = 0;
+     let (x451, x452) = fiat_p384_addcarryx_u32(x450, x391, x427);
+-    let mut x453: u32 = 0;
+-    let mut x454: fiat_p384_u1 = 0;
+     let (x453, x454) = fiat_p384_addcarryx_u32(x452, x393, x429);
+-    let mut x455: u32 = 0;
+-    let mut x456: fiat_p384_u1 = 0;
+     let (x455, x456) = fiat_p384_addcarryx_u32(x454, x395, x431);
+-    let mut x457: u32 = 0;
+-    let mut x458: fiat_p384_u1 = 0;
+     let (x457, x458) = fiat_p384_addcarryx_u32(x456, x397, x433);
+-    let mut x459: u32 = 0;
+-    let mut x460: fiat_p384_u1 = 0;
+     let (x459, x460) = fiat_p384_addcarryx_u32(x458, x399, x435);
+-    let mut x461: u32 = 0;
+-    let mut x462: fiat_p384_u1 = 0;
+     let (x461, x462) = fiat_p384_addcarryx_u32(x460, x401, x437);
+-    let mut x463: u32 = 0;
+-    let mut x464: fiat_p384_u1 = 0;
+     let (x463, x464) = fiat_p384_addcarryx_u32(x462, x403, x439);
+-    let mut x465: u32 = 0;
+-    let mut x466: fiat_p384_u1 = 0;
+     let (x465, x466) = fiat_p384_addcarryx_u32(
+         x464,
+         ((x404 as u32) + (x370 as u32)),
+         ((x440 as u32) + x406),
+     );
+-    let mut x467: u32 = 0;
+-    let mut x468: u32 = 0;
+     let (x467, x468) = fiat_p384_mulx_u32(x5, 0x2);
+-    let mut x469: u32 = 0;
+-    let mut x470: u32 = 0;
+     let (x469, x470) = fiat_p384_mulx_u32(x5, 0xfffffffe);
+-    let mut x471: u32 = 0;
+-    let mut x472: u32 = 0;
+     let (x471, x472) = fiat_p384_mulx_u32(x5, 0x2);
+-    let mut x473: u32 = 0;
+-    let mut x474: u32 = 0;
+     let (x473, x474) = fiat_p384_mulx_u32(x5, 0xfffffffe);
+-    let mut x475: u32 = 0;
+-    let mut x476: fiat_p384_u1 = 0;
+     let (x475, x476) = fiat_p384_addcarryx_u32(0x0, ((x468 as fiat_p384_u1) as u32), x5);
+-    let mut x477: u32 = 0;
+-    let mut x478: fiat_p384_u1 = 0;
+     let (x477, x478) = fiat_p384_addcarryx_u32(0x0, x443, x5);
+-    let mut x479: u32 = 0;
+-    let mut x480: fiat_p384_u1 = 0;
+     let (x479, x480) = fiat_p384_addcarryx_u32(x478, x445, x473);
+-    let mut x481: u32 = 0;
+-    let mut x482: fiat_p384_u1 = 0;
+     let (x481, x482) = fiat_p384_addcarryx_u32(x480, x447, x474);
+-    let mut x483: u32 = 0;
+-    let mut x484: fiat_p384_u1 = 0;
+     let (x483, x484) = fiat_p384_addcarryx_u32(x482, x449, x471);
+-    let mut x485: u32 = 0;
+-    let mut x486: fiat_p384_u1 = 0;
+     let (x485, x486) = fiat_p384_addcarryx_u32(x484, x451, ((x472 as fiat_p384_u1) as u32));
+-    let mut x487: u32 = 0;
+-    let mut x488: fiat_p384_u1 = 0;
+     let (x487, x488) = fiat_p384_addcarryx_u32(x486, x453, x469);
+-    let mut x489: u32 = 0;
+-    let mut x490: fiat_p384_u1 = 0;
+     let (x489, x490) = fiat_p384_addcarryx_u32(x488, x455, x470);
+-    let mut x491: u32 = 0;
+-    let mut x492: fiat_p384_u1 = 0;
+     let (x491, x492) = fiat_p384_addcarryx_u32(x490, x457, x467);
+-    let mut x493: u32 = 0;
+-    let mut x494: fiat_p384_u1 = 0;
+     let (x493, x494) = fiat_p384_addcarryx_u32(x492, x459, x475);
+-    let mut x495: u32 = 0;
+-    let mut x496: fiat_p384_u1 = 0;
+     let (x495, x496) = fiat_p384_addcarryx_u32(x494, x461, (x476 as u32));
+-    let mut x497: u32 = 0;
+-    let mut x498: fiat_p384_u1 = 0;
+     let (x497, x498) = fiat_p384_addcarryx_u32(x496, x463, (0x0 as u32));
+-    let mut x499: u32 = 0;
+-    let mut x500: fiat_p384_u1 = 0;
+     let (x499, x500) = fiat_p384_addcarryx_u32(x498, x465, (0x0 as u32));
+-    let mut x501: u32 = 0;
+-    let mut x502: u32 = 0;
+     let (x501, x502) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x503: u32 = 0;
+-    let mut x504: u32 = 0;
+     let (x503, x504) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x505: u32 = 0;
+-    let mut x506: u32 = 0;
+     let (x505, x506) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x507: u32 = 0;
+-    let mut x508: u32 = 0;
+     let (x507, x508) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x509: u32 = 0;
+-    let mut x510: u32 = 0;
+     let (x509, x510) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x511: u32 = 0;
+-    let mut x512: u32 = 0;
+     let (x511, x512) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x513: u32 = 0;
+-    let mut x514: u32 = 0;
+     let (x513, x514) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x515: u32 = 0;
+-    let mut x516: u32 = 0;
+     let (x515, x516) = fiat_p384_mulx_u32(x477, 0xfffffffe);
+-    let mut x517: u32 = 0;
+-    let mut x518: u32 = 0;
+     let (x517, x518) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x519: u32 = 0;
+-    let mut x520: u32 = 0;
+     let (x519, x520) = fiat_p384_mulx_u32(x477, 0xffffffff);
+-    let mut x521: u32 = 0;
+-    let mut x522: fiat_p384_u1 = 0;
+     let (x521, x522) = fiat_p384_addcarryx_u32(0x0, x518, x515);
+-    let mut x523: u32 = 0;
+-    let mut x524: fiat_p384_u1 = 0;
+     let (x523, x524) = fiat_p384_addcarryx_u32(x522, x516, x513);
+-    let mut x525: u32 = 0;
+-    let mut x526: fiat_p384_u1 = 0;
+     let (x525, x526) = fiat_p384_addcarryx_u32(x524, x514, x511);
+-    let mut x527: u32 = 0;
+-    let mut x528: fiat_p384_u1 = 0;
+     let (x527, x528) = fiat_p384_addcarryx_u32(x526, x512, x509);
+-    let mut x529: u32 = 0;
+-    let mut x530: fiat_p384_u1 = 0;
+     let (x529, x530) = fiat_p384_addcarryx_u32(x528, x510, x507);
+-    let mut x531: u32 = 0;
+-    let mut x532: fiat_p384_u1 = 0;
+     let (x531, x532) = fiat_p384_addcarryx_u32(x530, x508, x505);
+-    let mut x533: u32 = 0;
+-    let mut x534: fiat_p384_u1 = 0;
+     let (x533, x534) = fiat_p384_addcarryx_u32(x532, x506, x503);
+-    let mut x535: u32 = 0;
+-    let mut x536: fiat_p384_u1 = 0;
+     let (x535, x536) = fiat_p384_addcarryx_u32(x534, x504, x501);
+-    let mut x537: u32 = 0;
+-    let mut x538: fiat_p384_u1 = 0;
+     let (x537, x538) = fiat_p384_addcarryx_u32(0x0, x477, x519);
+-    let mut x539: u32 = 0;
+-    let mut x540: fiat_p384_u1 = 0;
+     let (x539, x540) = fiat_p384_addcarryx_u32(x538, x479, x520);
+-    let mut x541: u32 = 0;
+-    let mut x542: fiat_p384_u1 = 0;
+     let (x541, x542) = fiat_p384_addcarryx_u32(x540, x481, (0x0 as u32));
+-    let mut x543: u32 = 0;
+-    let mut x544: fiat_p384_u1 = 0;
+     let (x543, x544) = fiat_p384_addcarryx_u32(x542, x483, x517);
+-    let mut x545: u32 = 0;
+-    let mut x546: fiat_p384_u1 = 0;
+     let (x545, x546) = fiat_p384_addcarryx_u32(x544, x485, x521);
+-    let mut x547: u32 = 0;
+-    let mut x548: fiat_p384_u1 = 0;
+     let (x547, x548) = fiat_p384_addcarryx_u32(x546, x487, x523);
+-    let mut x549: u32 = 0;
+-    let mut x550: fiat_p384_u1 = 0;
+     let (x549, x550) = fiat_p384_addcarryx_u32(x548, x489, x525);
+-    let mut x551: u32 = 0;
+-    let mut x552: fiat_p384_u1 = 0;
+     let (x551, x552) = fiat_p384_addcarryx_u32(x550, x491, x527);
+-    let mut x553: u32 = 0;
+-    let mut x554: fiat_p384_u1 = 0;
+     let (x553, x554) = fiat_p384_addcarryx_u32(x552, x493, x529);
+-    let mut x555: u32 = 0;
+-    let mut x556: fiat_p384_u1 = 0;
+     let (x555, x556) = fiat_p384_addcarryx_u32(x554, x495, x531);
+-    let mut x557: u32 = 0;
+-    let mut x558: fiat_p384_u1 = 0;
+     let (x557, x558) = fiat_p384_addcarryx_u32(x556, x497, x533);
+-    let mut x559: u32 = 0;
+-    let mut x560: fiat_p384_u1 = 0;
+     let (x559, x560) = fiat_p384_addcarryx_u32(x558, x499, x535);
+-    let mut x561: u32 = 0;
+-    let mut x562: fiat_p384_u1 = 0;
+     let (x561, x562) = fiat_p384_addcarryx_u32(
+         x560,
+         ((x500 as u32) + (x466 as u32)),
+         ((x536 as u32) + x502),
+     );
+-    let mut x563: u32 = 0;
+-    let mut x564: u32 = 0;
+     let (x563, x564) = fiat_p384_mulx_u32(x6, 0x2);
+-    let mut x565: u32 = 0;
+-    let mut x566: u32 = 0;
+     let (x565, x566) = fiat_p384_mulx_u32(x6, 0xfffffffe);
+-    let mut x567: u32 = 0;
+-    let mut x568: u32 = 0;
+     let (x567, x568) = fiat_p384_mulx_u32(x6, 0x2);
+-    let mut x569: u32 = 0;
+-    let mut x570: u32 = 0;
+     let (x569, x570) = fiat_p384_mulx_u32(x6, 0xfffffffe);
+-    let mut x571: u32 = 0;
+-    let mut x572: fiat_p384_u1 = 0;
+     let (x571, x572) = fiat_p384_addcarryx_u32(0x0, ((x564 as fiat_p384_u1) as u32), x6);
+-    let mut x573: u32 = 0;
+-    let mut x574: fiat_p384_u1 = 0;
+     let (x573, x574) = fiat_p384_addcarryx_u32(0x0, x539, x6);
+-    let mut x575: u32 = 0;
+-    let mut x576: fiat_p384_u1 = 0;
+     let (x575, x576) = fiat_p384_addcarryx_u32(x574, x541, x569);
+-    let mut x577: u32 = 0;
+-    let mut x578: fiat_p384_u1 = 0;
+     let (x577, x578) = fiat_p384_addcarryx_u32(x576, x543, x570);
+-    let mut x579: u32 = 0;
+-    let mut x580: fiat_p384_u1 = 0;
+     let (x579, x580) = fiat_p384_addcarryx_u32(x578, x545, x567);
+-    let mut x581: u32 = 0;
+-    let mut x582: fiat_p384_u1 = 0;
+     let (x581, x582) = fiat_p384_addcarryx_u32(x580, x547, ((x568 as fiat_p384_u1) as u32));
+-    let mut x583: u32 = 0;
+-    let mut x584: fiat_p384_u1 = 0;
+     let (x583, x584) = fiat_p384_addcarryx_u32(x582, x549, x565);
+-    let mut x585: u32 = 0;
+-    let mut x586: fiat_p384_u1 = 0;
+     let (x585, x586) = fiat_p384_addcarryx_u32(x584, x551, x566);
+-    let mut x587: u32 = 0;
+-    let mut x588: fiat_p384_u1 = 0;
+     let (x587, x588) = fiat_p384_addcarryx_u32(x586, x553, x563);
+-    let mut x589: u32 = 0;
+-    let mut x590: fiat_p384_u1 = 0;
+     let (x589, x590) = fiat_p384_addcarryx_u32(x588, x555, x571);
+-    let mut x591: u32 = 0;
+-    let mut x592: fiat_p384_u1 = 0;
+     let (x591, x592) = fiat_p384_addcarryx_u32(x590, x557, (x572 as u32));
+-    let mut x593: u32 = 0;
+-    let mut x594: fiat_p384_u1 = 0;
+     let (x593, x594) = fiat_p384_addcarryx_u32(x592, x559, (0x0 as u32));
+-    let mut x595: u32 = 0;
+-    let mut x596: fiat_p384_u1 = 0;
+     let (x595, x596) = fiat_p384_addcarryx_u32(x594, x561, (0x0 as u32));
+-    let mut x597: u32 = 0;
+-    let mut x598: u32 = 0;
+     let (x597, x598) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x599: u32 = 0;
+-    let mut x600: u32 = 0;
+     let (x599, x600) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x601: u32 = 0;
+-    let mut x602: u32 = 0;
+     let (x601, x602) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x603: u32 = 0;
+-    let mut x604: u32 = 0;
+     let (x603, x604) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x605: u32 = 0;
+-    let mut x606: u32 = 0;
+     let (x605, x606) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x607: u32 = 0;
+-    let mut x608: u32 = 0;
+     let (x607, x608) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x609: u32 = 0;
+-    let mut x610: u32 = 0;
+     let (x609, x610) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x611: u32 = 0;
+-    let mut x612: u32 = 0;
+     let (x611, x612) = fiat_p384_mulx_u32(x573, 0xfffffffe);
+-    let mut x613: u32 = 0;
+-    let mut x614: u32 = 0;
+     let (x613, x614) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x615: u32 = 0;
+-    let mut x616: u32 = 0;
+     let (x615, x616) = fiat_p384_mulx_u32(x573, 0xffffffff);
+-    let mut x617: u32 = 0;
+-    let mut x618: fiat_p384_u1 = 0;
+     let (x617, x618) = fiat_p384_addcarryx_u32(0x0, x614, x611);
+-    let mut x619: u32 = 0;
+-    let mut x620: fiat_p384_u1 = 0;
+     let (x619, x620) = fiat_p384_addcarryx_u32(x618, x612, x609);
+-    let mut x621: u32 = 0;
+-    let mut x622: fiat_p384_u1 = 0;
+     let (x621, x622) = fiat_p384_addcarryx_u32(x620, x610, x607);
+-    let mut x623: u32 = 0;
+-    let mut x624: fiat_p384_u1 = 0;
+     let (x623, x624) = fiat_p384_addcarryx_u32(x622, x608, x605);
+-    let mut x625: u32 = 0;
+-    let mut x626: fiat_p384_u1 = 0;
+     let (x625, x626) = fiat_p384_addcarryx_u32(x624, x606, x603);
+-    let mut x627: u32 = 0;
+-    let mut x628: fiat_p384_u1 = 0;
+     let (x627, x628) = fiat_p384_addcarryx_u32(x626, x604, x601);
+-    let mut x629: u32 = 0;
+-    let mut x630: fiat_p384_u1 = 0;
+     let (x629, x630) = fiat_p384_addcarryx_u32(x628, x602, x599);
+-    let mut x631: u32 = 0;
+-    let mut x632: fiat_p384_u1 = 0;
+     let (x631, x632) = fiat_p384_addcarryx_u32(x630, x600, x597);
+-    let mut x633: u32 = 0;
+-    let mut x634: fiat_p384_u1 = 0;
+     let (x633, x634) = fiat_p384_addcarryx_u32(0x0, x573, x615);
+-    let mut x635: u32 = 0;
+-    let mut x636: fiat_p384_u1 = 0;
+     let (x635, x636) = fiat_p384_addcarryx_u32(x634, x575, x616);
+-    let mut x637: u32 = 0;
+-    let mut x638: fiat_p384_u1 = 0;
+     let (x637, x638) = fiat_p384_addcarryx_u32(x636, x577, (0x0 as u32));
+-    let mut x639: u32 = 0;
+-    let mut x640: fiat_p384_u1 = 0;
+     let (x639, x640) = fiat_p384_addcarryx_u32(x638, x579, x613);
+-    let mut x641: u32 = 0;
+-    let mut x642: fiat_p384_u1 = 0;
+     let (x641, x642) = fiat_p384_addcarryx_u32(x640, x581, x617);
+-    let mut x643: u32 = 0;
+-    let mut x644: fiat_p384_u1 = 0;
+     let (x643, x644) = fiat_p384_addcarryx_u32(x642, x583, x619);
+-    let mut x645: u32 = 0;
+-    let mut x646: fiat_p384_u1 = 0;
+     let (x645, x646) = fiat_p384_addcarryx_u32(x644, x585, x621);
+-    let mut x647: u32 = 0;
+-    let mut x648: fiat_p384_u1 = 0;
+     let (x647, x648) = fiat_p384_addcarryx_u32(x646, x587, x623);
+-    let mut x649: u32 = 0;
+-    let mut x650: fiat_p384_u1 = 0;
+     let (x649, x650) = fiat_p384_addcarryx_u32(x648, x589, x625);
+-    let mut x651: u32 = 0;
+-    let mut x652: fiat_p384_u1 = 0;
+     let (x651, x652) = fiat_p384_addcarryx_u32(x650, x591, x627);
+-    let mut x653: u32 = 0;
+-    let mut x654: fiat_p384_u1 = 0;
+     let (x653, x654) = fiat_p384_addcarryx_u32(x652, x593, x629);
+-    let mut x655: u32 = 0;
+-    let mut x656: fiat_p384_u1 = 0;
+     let (x655, x656) = fiat_p384_addcarryx_u32(x654, x595, x631);
+-    let mut x657: u32 = 0;
+-    let mut x658: fiat_p384_u1 = 0;
+     let (x657, x658) = fiat_p384_addcarryx_u32(
+         x656,
+         ((x596 as u32) + (x562 as u32)),
+         ((x632 as u32) + x598),
+     );
+-    let mut x659: u32 = 0;
+-    let mut x660: u32 = 0;
+     let (x659, x660) = fiat_p384_mulx_u32(x7, 0x2);
+-    let mut x661: u32 = 0;
+-    let mut x662: u32 = 0;
+     let (x661, x662) = fiat_p384_mulx_u32(x7, 0xfffffffe);
+-    let mut x663: u32 = 0;
+-    let mut x664: u32 = 0;
+     let (x663, x664) = fiat_p384_mulx_u32(x7, 0x2);
+-    let mut x665: u32 = 0;
+-    let mut x666: u32 = 0;
+     let (x665, x666) = fiat_p384_mulx_u32(x7, 0xfffffffe);
+-    let mut x667: u32 = 0;
+-    let mut x668: fiat_p384_u1 = 0;
+     let (x667, x668) = fiat_p384_addcarryx_u32(0x0, ((x660 as fiat_p384_u1) as u32), x7);
+-    let mut x669: u32 = 0;
+-    let mut x670: fiat_p384_u1 = 0;
+     let (x669, x670) = fiat_p384_addcarryx_u32(0x0, x635, x7);
+-    let mut x671: u32 = 0;
+-    let mut x672: fiat_p384_u1 = 0;
+     let (x671, x672) = fiat_p384_addcarryx_u32(x670, x637, x665);
+-    let mut x673: u32 = 0;
+-    let mut x674: fiat_p384_u1 = 0;
+     let (x673, x674) = fiat_p384_addcarryx_u32(x672, x639, x666);
+-    let mut x675: u32 = 0;
+-    let mut x676: fiat_p384_u1 = 0;
+     let (x675, x676) = fiat_p384_addcarryx_u32(x674, x641, x663);
+-    let mut x677: u32 = 0;
+-    let mut x678: fiat_p384_u1 = 0;
+     let (x677, x678) = fiat_p384_addcarryx_u32(x676, x643, ((x664 as fiat_p384_u1) as u32));
+-    let mut x679: u32 = 0;
+-    let mut x680: fiat_p384_u1 = 0;
+     let (x679, x680) = fiat_p384_addcarryx_u32(x678, x645, x661);
+-    let mut x681: u32 = 0;
+-    let mut x682: fiat_p384_u1 = 0;
+     let (x681, x682) = fiat_p384_addcarryx_u32(x680, x647, x662);
+-    let mut x683: u32 = 0;
+-    let mut x684: fiat_p384_u1 = 0;
+     let (x683, x684) = fiat_p384_addcarryx_u32(x682, x649, x659);
+-    let mut x685: u32 = 0;
+-    let mut x686: fiat_p384_u1 = 0;
+     let (x685, x686) = fiat_p384_addcarryx_u32(x684, x651, x667);
+-    let mut x687: u32 = 0;
+-    let mut x688: fiat_p384_u1 = 0;
+     let (x687, x688) = fiat_p384_addcarryx_u32(x686, x653, (x668 as u32));
+-    let mut x689: u32 = 0;
+-    let mut x690: fiat_p384_u1 = 0;
+     let (x689, x690) = fiat_p384_addcarryx_u32(x688, x655, (0x0 as u32));
+-    let mut x691: u32 = 0;
+-    let mut x692: fiat_p384_u1 = 0;
+     let (x691, x692) = fiat_p384_addcarryx_u32(x690, x657, (0x0 as u32));
+-    let mut x693: u32 = 0;
+-    let mut x694: u32 = 0;
+     let (x693, x694) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x695: u32 = 0;
+-    let mut x696: u32 = 0;
+     let (x695, x696) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x697: u32 = 0;
+-    let mut x698: u32 = 0;
+     let (x697, x698) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x699: u32 = 0;
+-    let mut x700: u32 = 0;
+     let (x699, x700) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x701: u32 = 0;
+-    let mut x702: u32 = 0;
+     let (x701, x702) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x703: u32 = 0;
+-    let mut x704: u32 = 0;
+     let (x703, x704) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x705: u32 = 0;
+-    let mut x706: u32 = 0;
+     let (x705, x706) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x707: u32 = 0;
+-    let mut x708: u32 = 0;
+     let (x707, x708) = fiat_p384_mulx_u32(x669, 0xfffffffe);
+-    let mut x709: u32 = 0;
+-    let mut x710: u32 = 0;
+     let (x709, x710) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x711: u32 = 0;
+-    let mut x712: u32 = 0;
+     let (x711, x712) = fiat_p384_mulx_u32(x669, 0xffffffff);
+-    let mut x713: u32 = 0;
+-    let mut x714: fiat_p384_u1 = 0;
+     let (x713, x714) = fiat_p384_addcarryx_u32(0x0, x710, x707);
+-    let mut x715: u32 = 0;
+-    let mut x716: fiat_p384_u1 = 0;
+     let (x715, x716) = fiat_p384_addcarryx_u32(x714, x708, x705);
+-    let mut x717: u32 = 0;
+-    let mut x718: fiat_p384_u1 = 0;
+     let (x717, x718) = fiat_p384_addcarryx_u32(x716, x706, x703);
+-    let mut x719: u32 = 0;
+-    let mut x720: fiat_p384_u1 = 0;
+     let (x719, x720) = fiat_p384_addcarryx_u32(x718, x704, x701);
+-    let mut x721: u32 = 0;
+-    let mut x722: fiat_p384_u1 = 0;
+     let (x721, x722) = fiat_p384_addcarryx_u32(x720, x702, x699);
+-    let mut x723: u32 = 0;
+-    let mut x724: fiat_p384_u1 = 0;
+     let (x723, x724) = fiat_p384_addcarryx_u32(x722, x700, x697);
+-    let mut x725: u32 = 0;
+-    let mut x726: fiat_p384_u1 = 0;
+     let (x725, x726) = fiat_p384_addcarryx_u32(x724, x698, x695);
+-    let mut x727: u32 = 0;
+-    let mut x728: fiat_p384_u1 = 0;
+     let (x727, x728) = fiat_p384_addcarryx_u32(x726, x696, x693);
+-    let mut x729: u32 = 0;
+-    let mut x730: fiat_p384_u1 = 0;
+     let (x729, x730) = fiat_p384_addcarryx_u32(0x0, x669, x711);
+-    let mut x731: u32 = 0;
+-    let mut x732: fiat_p384_u1 = 0;
+     let (x731, x732) = fiat_p384_addcarryx_u32(x730, x671, x712);
+-    let mut x733: u32 = 0;
+-    let mut x734: fiat_p384_u1 = 0;
+     let (x733, x734) = fiat_p384_addcarryx_u32(x732, x673, (0x0 as u32));
+-    let mut x735: u32 = 0;
+-    let mut x736: fiat_p384_u1 = 0;
+     let (x735, x736) = fiat_p384_addcarryx_u32(x734, x675, x709);
+-    let mut x737: u32 = 0;
+-    let mut x738: fiat_p384_u1 = 0;
+     let (x737, x738) = fiat_p384_addcarryx_u32(x736, x677, x713);
+-    let mut x739: u32 = 0;
+-    let mut x740: fiat_p384_u1 = 0;
+     let (x739, x740) = fiat_p384_addcarryx_u32(x738, x679, x715);
+-    let mut x741: u32 = 0;
+-    let mut x742: fiat_p384_u1 = 0;
+     let (x741, x742) = fiat_p384_addcarryx_u32(x740, x681, x717);
+-    let mut x743: u32 = 0;
+-    let mut x744: fiat_p384_u1 = 0;
+     let (x743, x744) = fiat_p384_addcarryx_u32(x742, x683, x719);
+-    let mut x745: u32 = 0;
+-    let mut x746: fiat_p384_u1 = 0;
+     let (x745, x746) = fiat_p384_addcarryx_u32(x744, x685, x721);
+-    let mut x747: u32 = 0;
+-    let mut x748: fiat_p384_u1 = 0;
+     let (x747, x748) = fiat_p384_addcarryx_u32(x746, x687, x723);
+-    let mut x749: u32 = 0;
+-    let mut x750: fiat_p384_u1 = 0;
+     let (x749, x750) = fiat_p384_addcarryx_u32(x748, x689, x725);
+-    let mut x751: u32 = 0;
+-    let mut x752: fiat_p384_u1 = 0;
+     let (x751, x752) = fiat_p384_addcarryx_u32(x750, x691, x727);
+-    let mut x753: u32 = 0;
+-    let mut x754: fiat_p384_u1 = 0;
+     let (x753, x754) = fiat_p384_addcarryx_u32(
+         x752,
+         ((x692 as u32) + (x658 as u32)),
+         ((x728 as u32) + x694),
+     );
+-    let mut x755: u32 = 0;
+-    let mut x756: u32 = 0;
+     let (x755, x756) = fiat_p384_mulx_u32(x8, 0x2);
+-    let mut x757: u32 = 0;
+-    let mut x758: u32 = 0;
+     let (x757, x758) = fiat_p384_mulx_u32(x8, 0xfffffffe);
+-    let mut x759: u32 = 0;
+-    let mut x760: u32 = 0;
+     let (x759, x760) = fiat_p384_mulx_u32(x8, 0x2);
+-    let mut x761: u32 = 0;
+-    let mut x762: u32 = 0;
+     let (x761, x762) = fiat_p384_mulx_u32(x8, 0xfffffffe);
+-    let mut x763: u32 = 0;
+-    let mut x764: fiat_p384_u1 = 0;
+     let (x763, x764) = fiat_p384_addcarryx_u32(0x0, ((x756 as fiat_p384_u1) as u32), x8);
+-    let mut x765: u32 = 0;
+-    let mut x766: fiat_p384_u1 = 0;
+     let (x765, x766) = fiat_p384_addcarryx_u32(0x0, x731, x8);
+-    let mut x767: u32 = 0;
+-    let mut x768: fiat_p384_u1 = 0;
+     let (x767, x768) = fiat_p384_addcarryx_u32(x766, x733, x761);
+-    let mut x769: u32 = 0;
+-    let mut x770: fiat_p384_u1 = 0;
+     let (x769, x770) = fiat_p384_addcarryx_u32(x768, x735, x762);
+-    let mut x771: u32 = 0;
+-    let mut x772: fiat_p384_u1 = 0;
+     let (x771, x772) = fiat_p384_addcarryx_u32(x770, x737, x759);
+-    let mut x773: u32 = 0;
+-    let mut x774: fiat_p384_u1 = 0;
+     let (x773, x774) = fiat_p384_addcarryx_u32(x772, x739, ((x760 as fiat_p384_u1) as u32));
+-    let mut x775: u32 = 0;
+-    let mut x776: fiat_p384_u1 = 0;
+     let (x775, x776) = fiat_p384_addcarryx_u32(x774, x741, x757);
+-    let mut x777: u32 = 0;
+-    let mut x778: fiat_p384_u1 = 0;
+     let (x777, x778) = fiat_p384_addcarryx_u32(x776, x743, x758);
+-    let mut x779: u32 = 0;
+-    let mut x780: fiat_p384_u1 = 0;
+     let (x779, x780) = fiat_p384_addcarryx_u32(x778, x745, x755);
+-    let mut x781: u32 = 0;
+-    let mut x782: fiat_p384_u1 = 0;
+     let (x781, x782) = fiat_p384_addcarryx_u32(x780, x747, x763);
+-    let mut x783: u32 = 0;
+-    let mut x784: fiat_p384_u1 = 0;
+     let (x783, x784) = fiat_p384_addcarryx_u32(x782, x749, (x764 as u32));
+-    let mut x785: u32 = 0;
+-    let mut x786: fiat_p384_u1 = 0;
+     let (x785, x786) = fiat_p384_addcarryx_u32(x784, x751, (0x0 as u32));
+-    let mut x787: u32 = 0;
+-    let mut x788: fiat_p384_u1 = 0;
+     let (x787, x788) = fiat_p384_addcarryx_u32(x786, x753, (0x0 as u32));
+-    let mut x789: u32 = 0;
+-    let mut x790: u32 = 0;
+     let (x789, x790) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x791: u32 = 0;
+-    let mut x792: u32 = 0;
+     let (x791, x792) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x793: u32 = 0;
+-    let mut x794: u32 = 0;
+     let (x793, x794) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x795: u32 = 0;
+-    let mut x796: u32 = 0;
+     let (x795, x796) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x797: u32 = 0;
+-    let mut x798: u32 = 0;
+     let (x797, x798) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x799: u32 = 0;
+-    let mut x800: u32 = 0;
+     let (x799, x800) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x801: u32 = 0;
+-    let mut x802: u32 = 0;
+     let (x801, x802) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x803: u32 = 0;
+-    let mut x804: u32 = 0;
+     let (x803, x804) = fiat_p384_mulx_u32(x765, 0xfffffffe);
+-    let mut x805: u32 = 0;
+-    let mut x806: u32 = 0;
+     let (x805, x806) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x807: u32 = 0;
+-    let mut x808: u32 = 0;
+     let (x807, x808) = fiat_p384_mulx_u32(x765, 0xffffffff);
+-    let mut x809: u32 = 0;
+-    let mut x810: fiat_p384_u1 = 0;
+     let (x809, x810) = fiat_p384_addcarryx_u32(0x0, x806, x803);
+-    let mut x811: u32 = 0;
+-    let mut x812: fiat_p384_u1 = 0;
+     let (x811, x812) = fiat_p384_addcarryx_u32(x810, x804, x801);
+-    let mut x813: u32 = 0;
+-    let mut x814: fiat_p384_u1 = 0;
+     let (x813, x814) = fiat_p384_addcarryx_u32(x812, x802, x799);
+-    let mut x815: u32 = 0;
+-    let mut x816: fiat_p384_u1 = 0;
+     let (x815, x816) = fiat_p384_addcarryx_u32(x814, x800, x797);
+-    let mut x817: u32 = 0;
+-    let mut x818: fiat_p384_u1 = 0;
+     let (x817, x818) = fiat_p384_addcarryx_u32(x816, x798, x795);
+-    let mut x819: u32 = 0;
+-    let mut x820: fiat_p384_u1 = 0;
+     let (x819, x820) = fiat_p384_addcarryx_u32(x818, x796, x793);
+-    let mut x821: u32 = 0;
+-    let mut x822: fiat_p384_u1 = 0;
+     let (x821, x822) = fiat_p384_addcarryx_u32(x820, x794, x791);
+-    let mut x823: u32 = 0;
+-    let mut x824: fiat_p384_u1 = 0;
+     let (x823, x824) = fiat_p384_addcarryx_u32(x822, x792, x789);
+-    let mut x825: u32 = 0;
+-    let mut x826: fiat_p384_u1 = 0;
+     let (x825, x826) = fiat_p384_addcarryx_u32(0x0, x765, x807);
+-    let mut x827: u32 = 0;
+-    let mut x828: fiat_p384_u1 = 0;
+     let (x827, x828) = fiat_p384_addcarryx_u32(x826, x767, x808);
+-    let mut x829: u32 = 0;
+-    let mut x830: fiat_p384_u1 = 0;
+     let (x829, x830) = fiat_p384_addcarryx_u32(x828, x769, (0x0 as u32));
+-    let mut x831: u32 = 0;
+-    let mut x832: fiat_p384_u1 = 0;
+     let (x831, x832) = fiat_p384_addcarryx_u32(x830, x771, x805);
+-    let mut x833: u32 = 0;
+-    let mut x834: fiat_p384_u1 = 0;
+     let (x833, x834) = fiat_p384_addcarryx_u32(x832, x773, x809);
+-    let mut x835: u32 = 0;
+-    let mut x836: fiat_p384_u1 = 0;
+     let (x835, x836) = fiat_p384_addcarryx_u32(x834, x775, x811);
+-    let mut x837: u32 = 0;
+-    let mut x838: fiat_p384_u1 = 0;
+     let (x837, x838) = fiat_p384_addcarryx_u32(x836, x777, x813);
+-    let mut x839: u32 = 0;
+-    let mut x840: fiat_p384_u1 = 0;
+     let (x839, x840) = fiat_p384_addcarryx_u32(x838, x779, x815);
+-    let mut x841: u32 = 0;
+-    let mut x842: fiat_p384_u1 = 0;
+     let (x841, x842) = fiat_p384_addcarryx_u32(x840, x781, x817);
+-    let mut x843: u32 = 0;
+-    let mut x844: fiat_p384_u1 = 0;
+     let (x843, x844) = fiat_p384_addcarryx_u32(x842, x783, x819);
+-    let mut x845: u32 = 0;
+-    let mut x846: fiat_p384_u1 = 0;
+     let (x845, x846) = fiat_p384_addcarryx_u32(x844, x785, x821);
+-    let mut x847: u32 = 0;
+-    let mut x848: fiat_p384_u1 = 0;
+     let (x847, x848) = fiat_p384_addcarryx_u32(x846, x787, x823);
+-    let mut x849: u32 = 0;
+-    let mut x850: fiat_p384_u1 = 0;
+     let (x849, x850) = fiat_p384_addcarryx_u32(
+         x848,
+         ((x788 as u32) + (x754 as u32)),
+         ((x824 as u32) + x790),
+     );
+-    let mut x851: u32 = 0;
+-    let mut x852: u32 = 0;
+     let (x851, x852) = fiat_p384_mulx_u32(x9, 0x2);
+-    let mut x853: u32 = 0;
+-    let mut x854: u32 = 0;
+     let (x853, x854) = fiat_p384_mulx_u32(x9, 0xfffffffe);
+-    let mut x855: u32 = 0;
+-    let mut x856: u32 = 0;
+     let (x855, x856) = fiat_p384_mulx_u32(x9, 0x2);
+-    let mut x857: u32 = 0;
+-    let mut x858: u32 = 0;
+     let (x857, x858) = fiat_p384_mulx_u32(x9, 0xfffffffe);
+-    let mut x859: u32 = 0;
+-    let mut x860: fiat_p384_u1 = 0;
+     let (x859, x860) = fiat_p384_addcarryx_u32(0x0, ((x852 as fiat_p384_u1) as u32), x9);
+-    let mut x861: u32 = 0;
+-    let mut x862: fiat_p384_u1 = 0;
+     let (x861, x862) = fiat_p384_addcarryx_u32(0x0, x827, x9);
+-    let mut x863: u32 = 0;
+-    let mut x864: fiat_p384_u1 = 0;
+     let (x863, x864) = fiat_p384_addcarryx_u32(x862, x829, x857);
+-    let mut x865: u32 = 0;
+-    let mut x866: fiat_p384_u1 = 0;
+     let (x865, x866) = fiat_p384_addcarryx_u32(x864, x831, x858);
+-    let mut x867: u32 = 0;
+-    let mut x868: fiat_p384_u1 = 0;
+     let (x867, x868) = fiat_p384_addcarryx_u32(x866, x833, x855);
+-    let mut x869: u32 = 0;
+-    let mut x870: fiat_p384_u1 = 0;
+     let (x869, x870) = fiat_p384_addcarryx_u32(x868, x835, ((x856 as fiat_p384_u1) as u32));
+-    let mut x871: u32 = 0;
+-    let mut x872: fiat_p384_u1 = 0;
+     let (x871, x872) = fiat_p384_addcarryx_u32(x870, x837, x853);
+-    let mut x873: u32 = 0;
+-    let mut x874: fiat_p384_u1 = 0;
+     let (x873, x874) = fiat_p384_addcarryx_u32(x872, x839, x854);
+-    let mut x875: u32 = 0;
+-    let mut x876: fiat_p384_u1 = 0;
+     let (x875, x876) = fiat_p384_addcarryx_u32(x874, x841, x851);
+-    let mut x877: u32 = 0;
+-    let mut x878: fiat_p384_u1 = 0;
+     let (x877, x878) = fiat_p384_addcarryx_u32(x876, x843, x859);
+-    let mut x879: u32 = 0;
+-    let mut x880: fiat_p384_u1 = 0;
+     let (x879, x880) = fiat_p384_addcarryx_u32(x878, x845, (x860 as u32));
+-    let mut x881: u32 = 0;
+-    let mut x882: fiat_p384_u1 = 0;
+     let (x881, x882) = fiat_p384_addcarryx_u32(x880, x847, (0x0 as u32));
+-    let mut x883: u32 = 0;
+-    let mut x884: fiat_p384_u1 = 0;
+     let (x883, x884) = fiat_p384_addcarryx_u32(x882, x849, (0x0 as u32));
+-    let mut x885: u32 = 0;
+-    let mut x886: u32 = 0;
+     let (x885, x886) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x887: u32 = 0;
+-    let mut x888: u32 = 0;
+     let (x887, x888) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x889: u32 = 0;
+-    let mut x890: u32 = 0;
+     let (x889, x890) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x891: u32 = 0;
+-    let mut x892: u32 = 0;
+     let (x891, x892) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x893: u32 = 0;
+-    let mut x894: u32 = 0;
+     let (x893, x894) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x895: u32 = 0;
+-    let mut x896: u32 = 0;
+     let (x895, x896) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x897: u32 = 0;
+-    let mut x898: u32 = 0;
+     let (x897, x898) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x899: u32 = 0;
+-    let mut x900: u32 = 0;
+     let (x899, x900) = fiat_p384_mulx_u32(x861, 0xfffffffe);
+-    let mut x901: u32 = 0;
+-    let mut x902: u32 = 0;
+     let (x901, x902) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x903: u32 = 0;
+-    let mut x904: u32 = 0;
+     let (x903, x904) = fiat_p384_mulx_u32(x861, 0xffffffff);
+-    let mut x905: u32 = 0;
+-    let mut x906: fiat_p384_u1 = 0;
+     let (x905, x906) = fiat_p384_addcarryx_u32(0x0, x902, x899);
+-    let mut x907: u32 = 0;
+-    let mut x908: fiat_p384_u1 = 0;
+     let (x907, x908) = fiat_p384_addcarryx_u32(x906, x900, x897);
+-    let mut x909: u32 = 0;
+-    let mut x910: fiat_p384_u1 = 0;
+     let (x909, x910) = fiat_p384_addcarryx_u32(x908, x898, x895);
+-    let mut x911: u32 = 0;
+-    let mut x912: fiat_p384_u1 = 0;
+     let (x911, x912) = fiat_p384_addcarryx_u32(x910, x896, x893);
+-    let mut x913: u32 = 0;
+-    let mut x914: fiat_p384_u1 = 0;
+     let (x913, x914) = fiat_p384_addcarryx_u32(x912, x894, x891);
+-    let mut x915: u32 = 0;
+-    let mut x916: fiat_p384_u1 = 0;
+     let (x915, x916) = fiat_p384_addcarryx_u32(x914, x892, x889);
+-    let mut x917: u32 = 0;
+-    let mut x918: fiat_p384_u1 = 0;
+     let (x917, x918) = fiat_p384_addcarryx_u32(x916, x890, x887);
+-    let mut x919: u32 = 0;
+-    let mut x920: fiat_p384_u1 = 0;
+     let (x919, x920) = fiat_p384_addcarryx_u32(x918, x888, x885);
+-    let mut x921: u32 = 0;
+-    let mut x922: fiat_p384_u1 = 0;
+     let (x921, x922) = fiat_p384_addcarryx_u32(0x0, x861, x903);
+-    let mut x923: u32 = 0;
+-    let mut x924: fiat_p384_u1 = 0;
+     let (x923, x924) = fiat_p384_addcarryx_u32(x922, x863, x904);
+-    let mut x925: u32 = 0;
+-    let mut x926: fiat_p384_u1 = 0;
+     let (x925, x926) = fiat_p384_addcarryx_u32(x924, x865, (0x0 as u32));
+-    let mut x927: u32 = 0;
+-    let mut x928: fiat_p384_u1 = 0;
+     let (x927, x928) = fiat_p384_addcarryx_u32(x926, x867, x901);
+-    let mut x929: u32 = 0;
+-    let mut x930: fiat_p384_u1 = 0;
+     let (x929, x930) = fiat_p384_addcarryx_u32(x928, x869, x905);
+-    let mut x931: u32 = 0;
+-    let mut x932: fiat_p384_u1 = 0;
+     let (x931, x932) = fiat_p384_addcarryx_u32(x930, x871, x907);
+-    let mut x933: u32 = 0;
+-    let mut x934: fiat_p384_u1 = 0;
+     let (x933, x934) = fiat_p384_addcarryx_u32(x932, x873, x909);
+-    let mut x935: u32 = 0;
+-    let mut x936: fiat_p384_u1 = 0;
+     let (x935, x936) = fiat_p384_addcarryx_u32(x934, x875, x911);
+-    let mut x937: u32 = 0;
+-    let mut x938: fiat_p384_u1 = 0;
+     let (x937, x938) = fiat_p384_addcarryx_u32(x936, x877, x913);
+-    let mut x939: u32 = 0;
+-    let mut x940: fiat_p384_u1 = 0;
+     let (x939, x940) = fiat_p384_addcarryx_u32(x938, x879, x915);
+-    let mut x941: u32 = 0;
+-    let mut x942: fiat_p384_u1 = 0;
+     let (x941, x942) = fiat_p384_addcarryx_u32(x940, x881, x917);
+-    let mut x943: u32 = 0;
+-    let mut x944: fiat_p384_u1 = 0;
+     let (x943, x944) = fiat_p384_addcarryx_u32(x942, x883, x919);
+-    let mut x945: u32 = 0;
+-    let mut x946: fiat_p384_u1 = 0;
+     let (x945, x946) = fiat_p384_addcarryx_u32(
+         x944,
+         ((x884 as u32) + (x850 as u32)),
+         ((x920 as u32) + x886),
+     );
+-    let mut x947: u32 = 0;
+-    let mut x948: u32 = 0;
+     let (x947, x948) = fiat_p384_mulx_u32(x10, 0x2);
+-    let mut x949: u32 = 0;
+-    let mut x950: u32 = 0;
+     let (x949, x950) = fiat_p384_mulx_u32(x10, 0xfffffffe);
+-    let mut x951: u32 = 0;
+-    let mut x952: u32 = 0;
+     let (x951, x952) = fiat_p384_mulx_u32(x10, 0x2);
+-    let mut x953: u32 = 0;
+-    let mut x954: u32 = 0;
+     let (x953, x954) = fiat_p384_mulx_u32(x10, 0xfffffffe);
+-    let mut x955: u32 = 0;
+-    let mut x956: fiat_p384_u1 = 0;
+     let (x955, x956) = fiat_p384_addcarryx_u32(0x0, ((x948 as fiat_p384_u1) as u32), x10);
+-    let mut x957: u32 = 0;
+-    let mut x958: fiat_p384_u1 = 0;
+     let (x957, x958) = fiat_p384_addcarryx_u32(0x0, x923, x10);
+-    let mut x959: u32 = 0;
+-    let mut x960: fiat_p384_u1 = 0;
+     let (x959, x960) = fiat_p384_addcarryx_u32(x958, x925, x953);
+-    let mut x961: u32 = 0;
+-    let mut x962: fiat_p384_u1 = 0;
+     let (x961, x962) = fiat_p384_addcarryx_u32(x960, x927, x954);
+-    let mut x963: u32 = 0;
+-    let mut x964: fiat_p384_u1 = 0;
+     let (x963, x964) = fiat_p384_addcarryx_u32(x962, x929, x951);
+-    let mut x965: u32 = 0;
+-    let mut x966: fiat_p384_u1 = 0;
+     let (x965, x966) = fiat_p384_addcarryx_u32(x964, x931, ((x952 as fiat_p384_u1) as u32));
+-    let mut x967: u32 = 0;
+-    let mut x968: fiat_p384_u1 = 0;
+     let (x967, x968) = fiat_p384_addcarryx_u32(x966, x933, x949);
+-    let mut x969: u32 = 0;
+-    let mut x970: fiat_p384_u1 = 0;
+     let (x969, x970) = fiat_p384_addcarryx_u32(x968, x935, x950);
+-    let mut x971: u32 = 0;
+-    let mut x972: fiat_p384_u1 = 0;
+     let (x971, x972) = fiat_p384_addcarryx_u32(x970, x937, x947);
+-    let mut x973: u32 = 0;
+-    let mut x974: fiat_p384_u1 = 0;
+     let (x973, x974) = fiat_p384_addcarryx_u32(x972, x939, x955);
+-    let mut x975: u32 = 0;
+-    let mut x976: fiat_p384_u1 = 0;
+     let (x975, x976) = fiat_p384_addcarryx_u32(x974, x941, (x956 as u32));
+-    let mut x977: u32 = 0;
+-    let mut x978: fiat_p384_u1 = 0;
+     let (x977, x978) = fiat_p384_addcarryx_u32(x976, x943, (0x0 as u32));
+-    let mut x979: u32 = 0;
+-    let mut x980: fiat_p384_u1 = 0;
+     let (x979, x980) = fiat_p384_addcarryx_u32(x978, x945, (0x0 as u32));
+-    let mut x981: u32 = 0;
+-    let mut x982: u32 = 0;
+     let (x981, x982) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x983: u32 = 0;
+-    let mut x984: u32 = 0;
+     let (x983, x984) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x985: u32 = 0;
+-    let mut x986: u32 = 0;
+     let (x985, x986) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x987: u32 = 0;
+-    let mut x988: u32 = 0;
+     let (x987, x988) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x989: u32 = 0;
+-    let mut x990: u32 = 0;
+     let (x989, x990) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x991: u32 = 0;
+-    let mut x992: u32 = 0;
+     let (x991, x992) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x993: u32 = 0;
+-    let mut x994: u32 = 0;
+     let (x993, x994) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x995: u32 = 0;
+-    let mut x996: u32 = 0;
+     let (x995, x996) = fiat_p384_mulx_u32(x957, 0xfffffffe);
+-    let mut x997: u32 = 0;
+-    let mut x998: u32 = 0;
+     let (x997, x998) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x999: u32 = 0;
+-    let mut x1000: u32 = 0;
+     let (x999, x1000) = fiat_p384_mulx_u32(x957, 0xffffffff);
+-    let mut x1001: u32 = 0;
+-    let mut x1002: fiat_p384_u1 = 0;
+     let (x1001, x1002) = fiat_p384_addcarryx_u32(0x0, x998, x995);
+-    let mut x1003: u32 = 0;
+-    let mut x1004: fiat_p384_u1 = 0;
+     let (x1003, x1004) = fiat_p384_addcarryx_u32(x1002, x996, x993);
+-    let mut x1005: u32 = 0;
+-    let mut x1006: fiat_p384_u1 = 0;
+     let (x1005, x1006) = fiat_p384_addcarryx_u32(x1004, x994, x991);
+-    let mut x1007: u32 = 0;
+-    let mut x1008: fiat_p384_u1 = 0;
+     let (x1007, x1008) = fiat_p384_addcarryx_u32(x1006, x992, x989);
+-    let mut x1009: u32 = 0;
+-    let mut x1010: fiat_p384_u1 = 0;
+     let (x1009, x1010) = fiat_p384_addcarryx_u32(x1008, x990, x987);
+-    let mut x1011: u32 = 0;
+-    let mut x1012: fiat_p384_u1 = 0;
+     let (x1011, x1012) = fiat_p384_addcarryx_u32(x1010, x988, x985);
+-    let mut x1013: u32 = 0;
+-    let mut x1014: fiat_p384_u1 = 0;
+     let (x1013, x1014) = fiat_p384_addcarryx_u32(x1012, x986, x983);
+-    let mut x1015: u32 = 0;
+-    let mut x1016: fiat_p384_u1 = 0;
+     let (x1015, x1016) = fiat_p384_addcarryx_u32(x1014, x984, x981);
+-    let mut x1017: u32 = 0;
+-    let mut x1018: fiat_p384_u1 = 0;
+     let (x1017, x1018) = fiat_p384_addcarryx_u32(0x0, x957, x999);
+-    let mut x1019: u32 = 0;
+-    let mut x1020: fiat_p384_u1 = 0;
+     let (x1019, x1020) = fiat_p384_addcarryx_u32(x1018, x959, x1000);
+-    let mut x1021: u32 = 0;
+-    let mut x1022: fiat_p384_u1 = 0;
+     let (x1021, x1022) = fiat_p384_addcarryx_u32(x1020, x961, (0x0 as u32));
+-    let mut x1023: u32 = 0;
+-    let mut x1024: fiat_p384_u1 = 0;
+     let (x1023, x1024) = fiat_p384_addcarryx_u32(x1022, x963, x997);
+-    let mut x1025: u32 = 0;
+-    let mut x1026: fiat_p384_u1 = 0;
+     let (x1025, x1026) = fiat_p384_addcarryx_u32(x1024, x965, x1001);
+-    let mut x1027: u32 = 0;
+-    let mut x1028: fiat_p384_u1 = 0;
+     let (x1027, x1028) = fiat_p384_addcarryx_u32(x1026, x967, x1003);
+-    let mut x1029: u32 = 0;
+-    let mut x1030: fiat_p384_u1 = 0;
+     let (x1029, x1030) = fiat_p384_addcarryx_u32(x1028, x969, x1005);
+-    let mut x1031: u32 = 0;
+-    let mut x1032: fiat_p384_u1 = 0;
+     let (x1031, x1032) = fiat_p384_addcarryx_u32(x1030, x971, x1007);
+-    let mut x1033: u32 = 0;
+-    let mut x1034: fiat_p384_u1 = 0;
+     let (x1033, x1034) = fiat_p384_addcarryx_u32(x1032, x973, x1009);
+-    let mut x1035: u32 = 0;
+-    let mut x1036: fiat_p384_u1 = 0;
+     let (x1035, x1036) = fiat_p384_addcarryx_u32(x1034, x975, x1011);
+-    let mut x1037: u32 = 0;
+-    let mut x1038: fiat_p384_u1 = 0;
+     let (x1037, x1038) = fiat_p384_addcarryx_u32(x1036, x977, x1013);
+-    let mut x1039: u32 = 0;
+-    let mut x1040: fiat_p384_u1 = 0;
+     let (x1039, x1040) = fiat_p384_addcarryx_u32(x1038, x979, x1015);
+-    let mut x1041: u32 = 0;
+-    let mut x1042: fiat_p384_u1 = 0;
+     let (x1041, x1042) = fiat_p384_addcarryx_u32(
+         x1040,
+         ((x980 as u32) + (x946 as u32)),
+         ((x1016 as u32) + x982),
+     );
+-    let mut x1043: u32 = 0;
+-    let mut x1044: u32 = 0;
+     let (x1043, x1044) = fiat_p384_mulx_u32(x11, 0x2);
+-    let mut x1045: u32 = 0;
+-    let mut x1046: u32 = 0;
+     let (x1045, x1046) = fiat_p384_mulx_u32(x11, 0xfffffffe);
+-    let mut x1047: u32 = 0;
+-    let mut x1048: u32 = 0;
+     let (x1047, x1048) = fiat_p384_mulx_u32(x11, 0x2);
+-    let mut x1049: u32 = 0;
+-    let mut x1050: u32 = 0;
+     let (x1049, x1050) = fiat_p384_mulx_u32(x11, 0xfffffffe);
+-    let mut x1051: u32 = 0;
+-    let mut x1052: fiat_p384_u1 = 0;
+     let (x1051, x1052) = fiat_p384_addcarryx_u32(0x0, ((x1044 as fiat_p384_u1) as u32), x11);
+-    let mut x1053: u32 = 0;
+-    let mut x1054: fiat_p384_u1 = 0;
+     let (x1053, x1054) = fiat_p384_addcarryx_u32(0x0, x1019, x11);
+-    let mut x1055: u32 = 0;
+-    let mut x1056: fiat_p384_u1 = 0;
+     let (x1055, x1056) = fiat_p384_addcarryx_u32(x1054, x1021, x1049);
+-    let mut x1057: u32 = 0;
+-    let mut x1058: fiat_p384_u1 = 0;
+     let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x1023, x1050);
+-    let mut x1059: u32 = 0;
+-    let mut x1060: fiat_p384_u1 = 0;
+     let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x1025, x1047);
+-    let mut x1061: u32 = 0;
+-    let mut x1062: fiat_p384_u1 = 0;
+     let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x1027, ((x1048 as fiat_p384_u1) as u32));
+-    let mut x1063: u32 = 0;
+-    let mut x1064: fiat_p384_u1 = 0;
+     let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1029, x1045);
+-    let mut x1065: u32 = 0;
+-    let mut x1066: fiat_p384_u1 = 0;
+     let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1031, x1046);
+-    let mut x1067: u32 = 0;
+-    let mut x1068: fiat_p384_u1 = 0;
+     let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1033, x1043);
+-    let mut x1069: u32 = 0;
+-    let mut x1070: fiat_p384_u1 = 0;
+     let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1035, x1051);
+-    let mut x1071: u32 = 0;
+-    let mut x1072: fiat_p384_u1 = 0;
+     let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1037, (x1052 as u32));
+-    let mut x1073: u32 = 0;
+-    let mut x1074: fiat_p384_u1 = 0;
+     let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1039, (0x0 as u32));
+-    let mut x1075: u32 = 0;
+-    let mut x1076: fiat_p384_u1 = 0;
+     let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1041, (0x0 as u32));
+-    let mut x1077: u32 = 0;
+-    let mut x1078: u32 = 0;
+     let (x1077, x1078) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1079: u32 = 0;
+-    let mut x1080: u32 = 0;
+     let (x1079, x1080) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1081: u32 = 0;
+-    let mut x1082: u32 = 0;
+     let (x1081, x1082) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1083: u32 = 0;
+-    let mut x1084: u32 = 0;
+     let (x1083, x1084) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1085: u32 = 0;
+-    let mut x1086: u32 = 0;
+     let (x1085, x1086) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1087: u32 = 0;
+-    let mut x1088: u32 = 0;
+     let (x1087, x1088) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1089: u32 = 0;
+-    let mut x1090: u32 = 0;
+     let (x1089, x1090) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1091: u32 = 0;
+-    let mut x1092: u32 = 0;
+     let (x1091, x1092) = fiat_p384_mulx_u32(x1053, 0xfffffffe);
+-    let mut x1093: u32 = 0;
+-    let mut x1094: u32 = 0;
+     let (x1093, x1094) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1095: u32 = 0;
+-    let mut x1096: u32 = 0;
+     let (x1095, x1096) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+-    let mut x1097: u32 = 0;
+-    let mut x1098: fiat_p384_u1 = 0;
+     let (x1097, x1098) = fiat_p384_addcarryx_u32(0x0, x1094, x1091);
+-    let mut x1099: u32 = 0;
+-    let mut x1100: fiat_p384_u1 = 0;
+     let (x1099, x1100) = fiat_p384_addcarryx_u32(x1098, x1092, x1089);
+-    let mut x1101: u32 = 0;
+-    let mut x1102: fiat_p384_u1 = 0;
+     let (x1101, x1102) = fiat_p384_addcarryx_u32(x1100, x1090, x1087);
+-    let mut x1103: u32 = 0;
+-    let mut x1104: fiat_p384_u1 = 0;
+     let (x1103, x1104) = fiat_p384_addcarryx_u32(x1102, x1088, x1085);
+-    let mut x1105: u32 = 0;
+-    let mut x1106: fiat_p384_u1 = 0;
+     let (x1105, x1106) = fiat_p384_addcarryx_u32(x1104, x1086, x1083);
+-    let mut x1107: u32 = 0;
+-    let mut x1108: fiat_p384_u1 = 0;
+     let (x1107, x1108) = fiat_p384_addcarryx_u32(x1106, x1084, x1081);
+-    let mut x1109: u32 = 0;
+-    let mut x1110: fiat_p384_u1 = 0;
+     let (x1109, x1110) = fiat_p384_addcarryx_u32(x1108, x1082, x1079);
+-    let mut x1111: u32 = 0;
+-    let mut x1112: fiat_p384_u1 = 0;
+     let (x1111, x1112) = fiat_p384_addcarryx_u32(x1110, x1080, x1077);
+-    let mut x1113: u32 = 0;
+-    let mut x1114: fiat_p384_u1 = 0;
+     let (x1113, x1114) = fiat_p384_addcarryx_u32(0x0, x1053, x1095);
+-    let mut x1115: u32 = 0;
+-    let mut x1116: fiat_p384_u1 = 0;
+     let (x1115, x1116) = fiat_p384_addcarryx_u32(x1114, x1055, x1096);
+-    let mut x1117: u32 = 0;
+-    let mut x1118: fiat_p384_u1 = 0;
+     let (x1117, x1118) = fiat_p384_addcarryx_u32(x1116, x1057, (0x0 as u32));
+-    let mut x1119: u32 = 0;
+-    let mut x1120: fiat_p384_u1 = 0;
+     let (x1119, x1120) = fiat_p384_addcarryx_u32(x1118, x1059, x1093);
+-    let mut x1121: u32 = 0;
+-    let mut x1122: fiat_p384_u1 = 0;
+     let (x1121, x1122) = fiat_p384_addcarryx_u32(x1120, x1061, x1097);
+-    let mut x1123: u32 = 0;
+-    let mut x1124: fiat_p384_u1 = 0;
+     let (x1123, x1124) = fiat_p384_addcarryx_u32(x1122, x1063, x1099);
+-    let mut x1125: u32 = 0;
+-    let mut x1126: fiat_p384_u1 = 0;
+     let (x1125, x1126) = fiat_p384_addcarryx_u32(x1124, x1065, x1101);
+-    let mut x1127: u32 = 0;
+-    let mut x1128: fiat_p384_u1 = 0;
+     let (x1127, x1128) = fiat_p384_addcarryx_u32(x1126, x1067, x1103);
+-    let mut x1129: u32 = 0;
+-    let mut x1130: fiat_p384_u1 = 0;
+     let (x1129, x1130) = fiat_p384_addcarryx_u32(x1128, x1069, x1105);
+-    let mut x1131: u32 = 0;
+-    let mut x1132: fiat_p384_u1 = 0;
+     let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1071, x1107);
+-    let mut x1133: u32 = 0;
+-    let mut x1134: fiat_p384_u1 = 0;
+     let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1073, x1109);
+-    let mut x1135: u32 = 0;
+-    let mut x1136: fiat_p384_u1 = 0;
+     let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1075, x1111);
+-    let mut x1137: u32 = 0;
+-    let mut x1138: fiat_p384_u1 = 0;
+     let (x1137, x1138) = fiat_p384_addcarryx_u32(
+         x1136,
+         ((x1076 as u32) + (x1042 as u32)),
+         ((x1112 as u32) + x1078),
+     );
+-    let mut x1139: u32 = 0;
+-    let mut x1140: fiat_p384_u1 = 0;
+     let (x1139, x1140) = fiat_p384_subborrowx_u32(0x0, x1115, 0xffffffff);
+-    let mut x1141: u32 = 0;
+-    let mut x1142: fiat_p384_u1 = 0;
+     let (x1141, x1142) = fiat_p384_subborrowx_u32(x1140, x1117, (0x0 as u32));
+-    let mut x1143: u32 = 0;
+-    let mut x1144: fiat_p384_u1 = 0;
+     let (x1143, x1144) = fiat_p384_subborrowx_u32(x1142, x1119, (0x0 as u32));
+-    let mut x1145: u32 = 0;
+-    let mut x1146: fiat_p384_u1 = 0;
+     let (x1145, x1146) = fiat_p384_subborrowx_u32(x1144, x1121, 0xffffffff);
+-    let mut x1147: u32 = 0;
+-    let mut x1148: fiat_p384_u1 = 0;
+     let (x1147, x1148) = fiat_p384_subborrowx_u32(x1146, x1123, 0xfffffffe);
+-    let mut x1149: u32 = 0;
+-    let mut x1150: fiat_p384_u1 = 0;
+     let (x1149, x1150) = fiat_p384_subborrowx_u32(x1148, x1125, 0xffffffff);
+-    let mut x1151: u32 = 0;
+-    let mut x1152: fiat_p384_u1 = 0;
+     let (x1151, x1152) = fiat_p384_subborrowx_u32(x1150, x1127, 0xffffffff);
+-    let mut x1153: u32 = 0;
+-    let mut x1154: fiat_p384_u1 = 0;
+     let (x1153, x1154) = fiat_p384_subborrowx_u32(x1152, x1129, 0xffffffff);
+-    let mut x1155: u32 = 0;
+-    let mut x1156: fiat_p384_u1 = 0;
+     let (x1155, x1156) = fiat_p384_subborrowx_u32(x1154, x1131, 0xffffffff);
+-    let mut x1157: u32 = 0;
+-    let mut x1158: fiat_p384_u1 = 0;
+     let (x1157, x1158) = fiat_p384_subborrowx_u32(x1156, x1133, 0xffffffff);
+-    let mut x1159: u32 = 0;
+-    let mut x1160: fiat_p384_u1 = 0;
+     let (x1159, x1160) = fiat_p384_subborrowx_u32(x1158, x1135, 0xffffffff);
+-    let mut x1161: u32 = 0;
+-    let mut x1162: fiat_p384_u1 = 0;
+     let (x1161, x1162) = fiat_p384_subborrowx_u32(x1160, x1137, 0xffffffff);
+-    let mut x1163: u32 = 0;
+-    let mut x1164: fiat_p384_u1 = 0;
+     let (x1163, x1164) = fiat_p384_subborrowx_u32(x1162, (x1138 as u32), (0x0 as u32));
+-    let mut x1165: u32 = 0;
+     let (x1165) = fiat_p384_cmovznz_u32(x1164, x1139, x1115);
+-    let mut x1166: u32 = 0;
+     let (x1166) = fiat_p384_cmovznz_u32(x1164, x1141, x1117);
+-    let mut x1167: u32 = 0;
+     let (x1167) = fiat_p384_cmovznz_u32(x1164, x1143, x1119);
+-    let mut x1168: u32 = 0;
+     let (x1168) = fiat_p384_cmovznz_u32(x1164, x1145, x1121);
+-    let mut x1169: u32 = 0;
+     let (x1169) = fiat_p384_cmovznz_u32(x1164, x1147, x1123);
+-    let mut x1170: u32 = 0;
+     let (x1170) = fiat_p384_cmovznz_u32(x1164, x1149, x1125);
+-    let mut x1171: u32 = 0;
+     let (x1171) = fiat_p384_cmovznz_u32(x1164, x1151, x1127);
+-    let mut x1172: u32 = 0;
+     let (x1172) = fiat_p384_cmovznz_u32(x1164, x1153, x1129);
+-    let mut x1173: u32 = 0;
+     let (x1173) = fiat_p384_cmovznz_u32(x1164, x1155, x1131);
+-    let mut x1174: u32 = 0;
+     let (x1174) = fiat_p384_cmovznz_u32(x1164, x1157, x1133);
+-    let mut x1175: u32 = 0;
+     let (x1175) = fiat_p384_cmovznz_u32(x1164, x1159, x1135);
+-    let mut x1176: u32 = 0;
+     let (x1176) = fiat_p384_cmovznz_u32(x1164, x1161, x1137);
+     out1[0] = x1165;
+     out1[1] = x1166;
+@@ -8937,29 +3373,17 @@ pub const fn fiat_p384_selectznz(
+     arg3: &[u32; 12],
+ ) -> [u32; 12] {
+     let mut out1: [u32; 12] = [0; 12];
+-    let mut x1: u32 = 0;
+     let (x1) = fiat_p384_cmovznz_u32(arg1, (arg2[0]), (arg3[0]));
+-    let mut x2: u32 = 0;
+     let (x2) = fiat_p384_cmovznz_u32(arg1, (arg2[1]), (arg3[1]));
+-    let mut x3: u32 = 0;
+     let (x3) = fiat_p384_cmovznz_u32(arg1, (arg2[2]), (arg3[2]));
+-    let mut x4: u32 = 0;
+     let (x4) = fiat_p384_cmovznz_u32(arg1, (arg2[3]), (arg3[3]));
+-    let mut x5: u32 = 0;
+     let (x5) = fiat_p384_cmovznz_u32(arg1, (arg2[4]), (arg3[4]));
+-    let mut x6: u32 = 0;
+     let (x6) = fiat_p384_cmovznz_u32(arg1, (arg2[5]), (arg3[5]));
+-    let mut x7: u32 = 0;
+     let (x7) = fiat_p384_cmovznz_u32(arg1, (arg2[6]), (arg3[6]));
+-    let mut x8: u32 = 0;
+     let (x8) = fiat_p384_cmovznz_u32(arg1, (arg2[7]), (arg3[7]));
+-    let mut x9: u32 = 0;
+     let (x9) = fiat_p384_cmovznz_u32(arg1, (arg2[8]), (arg3[8]));
+-    let mut x10: u32 = 0;
+     let (x10) = fiat_p384_cmovznz_u32(arg1, (arg2[9]), (arg3[9]));
+-    let mut x11: u32 = 0;
+     let (x11) = fiat_p384_cmovznz_u32(arg1, (arg2[10]), (arg3[10]));
+-    let mut x12: u32 = 0;
+     let (x12) = fiat_p384_cmovznz_u32(arg1, (arg2[11]), (arg3[11]));
+     out1[0] = x1;
+     out1[1] = x2;
+@@ -9326,205 +3750,86 @@ pub const fn fiat_p384_divstep(
+     let mut out3: [u32; 13] = [0; 13];
+     let mut out4: [u32; 12] = [0; 12];
+     let mut out5: [u32; 12] = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+     let x3: fiat_p384_u1 =
+         (((x1 >> 31) as fiat_p384_u1) & (((arg3[0]) & (0x1 as u32)) as fiat_p384_u1));
+-    let mut x4: u32 = 0;
+-    let mut x5: fiat_p384_u1 = 0;
+     let (x4, x5) = fiat_p384_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+-    let mut x6: u32 = 0;
+     let (x6) = fiat_p384_cmovznz_u32(x3, arg1, x4);
+-    let mut x7: u32 = 0;
+     let (x7) = fiat_p384_cmovznz_u32(x3, (arg2[0]), (arg3[0]));
+-    let mut x8: u32 = 0;
+     let (x8) = fiat_p384_cmovznz_u32(x3, (arg2[1]), (arg3[1]));
+-    let mut x9: u32 = 0;
+     let (x9) = fiat_p384_cmovznz_u32(x3, (arg2[2]), (arg3[2]));
+-    let mut x10: u32 = 0;
+     let (x10) = fiat_p384_cmovznz_u32(x3, (arg2[3]), (arg3[3]));
+-    let mut x11: u32 = 0;
+     let (x11) = fiat_p384_cmovznz_u32(x3, (arg2[4]), (arg3[4]));
+-    let mut x12: u32 = 0;
+     let (x12) = fiat_p384_cmovznz_u32(x3, (arg2[5]), (arg3[5]));
+-    let mut x13: u32 = 0;
+     let (x13) = fiat_p384_cmovznz_u32(x3, (arg2[6]), (arg3[6]));
+-    let mut x14: u32 = 0;
+     let (x14) = fiat_p384_cmovznz_u32(x3, (arg2[7]), (arg3[7]));
+-    let mut x15: u32 = 0;
+     let (x15) = fiat_p384_cmovznz_u32(x3, (arg2[8]), (arg3[8]));
+-    let mut x16: u32 = 0;
+     let (x16) = fiat_p384_cmovznz_u32(x3, (arg2[9]), (arg3[9]));
+-    let mut x17: u32 = 0;
+     let (x17) = fiat_p384_cmovznz_u32(x3, (arg2[10]), (arg3[10]));
+-    let mut x18: u32 = 0;
+     let (x18) = fiat_p384_cmovznz_u32(x3, (arg2[11]), (arg3[11]));
+-    let mut x19: u32 = 0;
+     let (x19) = fiat_p384_cmovznz_u32(x3, (arg2[12]), (arg3[12]));
+-    let mut x20: u32 = 0;
+-    let mut x21: fiat_p384_u1 = 0;
+     let (x20, x21) = fiat_p384_addcarryx_u32(0x0, (0x1 as u32), (!(arg2[0])));
+-    let mut x22: u32 = 0;
+-    let mut x23: fiat_p384_u1 = 0;
+     let (x22, x23) = fiat_p384_addcarryx_u32(x21, (0x0 as u32), (!(arg2[1])));
+-    let mut x24: u32 = 0;
+-    let mut x25: fiat_p384_u1 = 0;
+     let (x24, x25) = fiat_p384_addcarryx_u32(x23, (0x0 as u32), (!(arg2[2])));
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_u1 = 0;
+     let (x26, x27) = fiat_p384_addcarryx_u32(x25, (0x0 as u32), (!(arg2[3])));
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_u1 = 0;
+     let (x28, x29) = fiat_p384_addcarryx_u32(x27, (0x0 as u32), (!(arg2[4])));
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_u1 = 0;
+     let (x30, x31) = fiat_p384_addcarryx_u32(x29, (0x0 as u32), (!(arg2[5])));
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_u1 = 0;
+     let (x32, x33) = fiat_p384_addcarryx_u32(x31, (0x0 as u32), (!(arg2[6])));
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_u1 = 0;
+     let (x34, x35) = fiat_p384_addcarryx_u32(x33, (0x0 as u32), (!(arg2[7])));
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_u1 = 0;
+     let (x36, x37) = fiat_p384_addcarryx_u32(x35, (0x0 as u32), (!(arg2[8])));
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_u1 = 0;
+     let (x38, x39) = fiat_p384_addcarryx_u32(x37, (0x0 as u32), (!(arg2[9])));
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_u1 = 0;
+     let (x40, x41) = fiat_p384_addcarryx_u32(x39, (0x0 as u32), (!(arg2[10])));
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_u1 = 0;
+     let (x42, x43) = fiat_p384_addcarryx_u32(x41, (0x0 as u32), (!(arg2[11])));
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_u1 = 0;
+     let (x44, x45) = fiat_p384_addcarryx_u32(x43, (0x0 as u32), (!(arg2[12])));
+-    let mut x46: u32 = 0;
+     let (x46) = fiat_p384_cmovznz_u32(x3, (arg3[0]), x20);
+-    let mut x47: u32 = 0;
+     let (x47) = fiat_p384_cmovznz_u32(x3, (arg3[1]), x22);
+-    let mut x48: u32 = 0;
+     let (x48) = fiat_p384_cmovznz_u32(x3, (arg3[2]), x24);
+-    let mut x49: u32 = 0;
+     let (x49) = fiat_p384_cmovznz_u32(x3, (arg3[3]), x26);
+-    let mut x50: u32 = 0;
+     let (x50) = fiat_p384_cmovznz_u32(x3, (arg3[4]), x28);
+-    let mut x51: u32 = 0;
+     let (x51) = fiat_p384_cmovznz_u32(x3, (arg3[5]), x30);
+-    let mut x52: u32 = 0;
+     let (x52) = fiat_p384_cmovznz_u32(x3, (arg3[6]), x32);
+-    let mut x53: u32 = 0;
+     let (x53) = fiat_p384_cmovznz_u32(x3, (arg3[7]), x34);
+-    let mut x54: u32 = 0;
+     let (x54) = fiat_p384_cmovznz_u32(x3, (arg3[8]), x36);
+-    let mut x55: u32 = 0;
+     let (x55) = fiat_p384_cmovznz_u32(x3, (arg3[9]), x38);
+-    let mut x56: u32 = 0;
+     let (x56) = fiat_p384_cmovznz_u32(x3, (arg3[10]), x40);
+-    let mut x57: u32 = 0;
+     let (x57) = fiat_p384_cmovznz_u32(x3, (arg3[11]), x42);
+-    let mut x58: u32 = 0;
+     let (x58) = fiat_p384_cmovznz_u32(x3, (arg3[12]), x44);
+-    let mut x59: u32 = 0;
+     let (x59) = fiat_p384_cmovznz_u32(x3, (arg4[0]), (arg5[0]));
+-    let mut x60: u32 = 0;
+     let (x60) = fiat_p384_cmovznz_u32(x3, (arg4[1]), (arg5[1]));
+-    let mut x61: u32 = 0;
+     let (x61) = fiat_p384_cmovznz_u32(x3, (arg4[2]), (arg5[2]));
+-    let mut x62: u32 = 0;
+     let (x62) = fiat_p384_cmovznz_u32(x3, (arg4[3]), (arg5[3]));
+-    let mut x63: u32 = 0;
+     let (x63) = fiat_p384_cmovznz_u32(x3, (arg4[4]), (arg5[4]));
+-    let mut x64: u32 = 0;
+     let (x64) = fiat_p384_cmovznz_u32(x3, (arg4[5]), (arg5[5]));
+-    let mut x65: u32 = 0;
+     let (x65) = fiat_p384_cmovznz_u32(x3, (arg4[6]), (arg5[6]));
+-    let mut x66: u32 = 0;
+     let (x66) = fiat_p384_cmovznz_u32(x3, (arg4[7]), (arg5[7]));
+-    let mut x67: u32 = 0;
+     let (x67) = fiat_p384_cmovznz_u32(x3, (arg4[8]), (arg5[8]));
+-    let mut x68: u32 = 0;
+     let (x68) = fiat_p384_cmovznz_u32(x3, (arg4[9]), (arg5[9]));
+-    let mut x69: u32 = 0;
+     let (x69) = fiat_p384_cmovznz_u32(x3, (arg4[10]), (arg5[10]));
+-    let mut x70: u32 = 0;
+     let (x70) = fiat_p384_cmovznz_u32(x3, (arg4[11]), (arg5[11]));
+-    let mut x71: u32 = 0;
+-    let mut x72: fiat_p384_u1 = 0;
+     let (x71, x72) = fiat_p384_addcarryx_u32(0x0, x59, x59);
+-    let mut x73: u32 = 0;
+-    let mut x74: fiat_p384_u1 = 0;
+     let (x73, x74) = fiat_p384_addcarryx_u32(x72, x60, x60);
+-    let mut x75: u32 = 0;
+-    let mut x76: fiat_p384_u1 = 0;
+     let (x75, x76) = fiat_p384_addcarryx_u32(x74, x61, x61);
+-    let mut x77: u32 = 0;
+-    let mut x78: fiat_p384_u1 = 0;
+     let (x77, x78) = fiat_p384_addcarryx_u32(x76, x62, x62);
+-    let mut x79: u32 = 0;
+-    let mut x80: fiat_p384_u1 = 0;
+     let (x79, x80) = fiat_p384_addcarryx_u32(x78, x63, x63);
+-    let mut x81: u32 = 0;
+-    let mut x82: fiat_p384_u1 = 0;
+     let (x81, x82) = fiat_p384_addcarryx_u32(x80, x64, x64);
+-    let mut x83: u32 = 0;
+-    let mut x84: fiat_p384_u1 = 0;
+     let (x83, x84) = fiat_p384_addcarryx_u32(x82, x65, x65);
+-    let mut x85: u32 = 0;
+-    let mut x86: fiat_p384_u1 = 0;
+     let (x85, x86) = fiat_p384_addcarryx_u32(x84, x66, x66);
+-    let mut x87: u32 = 0;
+-    let mut x88: fiat_p384_u1 = 0;
+     let (x87, x88) = fiat_p384_addcarryx_u32(x86, x67, x67);
+-    let mut x89: u32 = 0;
+-    let mut x90: fiat_p384_u1 = 0;
+     let (x89, x90) = fiat_p384_addcarryx_u32(x88, x68, x68);
+-    let mut x91: u32 = 0;
+-    let mut x92: fiat_p384_u1 = 0;
+     let (x91, x92) = fiat_p384_addcarryx_u32(x90, x69, x69);
+-    let mut x93: u32 = 0;
+-    let mut x94: fiat_p384_u1 = 0;
+     let (x93, x94) = fiat_p384_addcarryx_u32(x92, x70, x70);
+-    let mut x95: u32 = 0;
+-    let mut x96: fiat_p384_u1 = 0;
+     let (x95, x96) = fiat_p384_subborrowx_u32(0x0, x71, 0xffffffff);
+-    let mut x97: u32 = 0;
+-    let mut x98: fiat_p384_u1 = 0;
+     let (x97, x98) = fiat_p384_subborrowx_u32(x96, x73, (0x0 as u32));
+-    let mut x99: u32 = 0;
+-    let mut x100: fiat_p384_u1 = 0;
+     let (x99, x100) = fiat_p384_subborrowx_u32(x98, x75, (0x0 as u32));
+-    let mut x101: u32 = 0;
+-    let mut x102: fiat_p384_u1 = 0;
+     let (x101, x102) = fiat_p384_subborrowx_u32(x100, x77, 0xffffffff);
+-    let mut x103: u32 = 0;
+-    let mut x104: fiat_p384_u1 = 0;
+     let (x103, x104) = fiat_p384_subborrowx_u32(x102, x79, 0xfffffffe);
+-    let mut x105: u32 = 0;
+-    let mut x106: fiat_p384_u1 = 0;
+     let (x105, x106) = fiat_p384_subborrowx_u32(x104, x81, 0xffffffff);
+-    let mut x107: u32 = 0;
+-    let mut x108: fiat_p384_u1 = 0;
+     let (x107, x108) = fiat_p384_subborrowx_u32(x106, x83, 0xffffffff);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_u1 = 0;
+     let (x109, x110) = fiat_p384_subborrowx_u32(x108, x85, 0xffffffff);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_u1 = 0;
+     let (x111, x112) = fiat_p384_subborrowx_u32(x110, x87, 0xffffffff);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_u1 = 0;
+     let (x113, x114) = fiat_p384_subborrowx_u32(x112, x89, 0xffffffff);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_u1 = 0;
+     let (x115, x116) = fiat_p384_subborrowx_u32(x114, x91, 0xffffffff);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_u1 = 0;
+     let (x117, x118) = fiat_p384_subborrowx_u32(x116, x93, 0xffffffff);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_u1 = 0;
+     let (x119, x120) = fiat_p384_subborrowx_u32(x118, (x94 as u32), (0x0 as u32));
+     let x121: u32 = (arg4[11]);
+     let x122: u32 = (arg4[10]);
+@@ -9538,271 +3843,107 @@ pub const fn fiat_p384_divstep(
+     let x130: u32 = (arg4[2]);
+     let x131: u32 = (arg4[1]);
+     let x132: u32 = (arg4[0]);
+-    let mut x133: u32 = 0;
+-    let mut x134: fiat_p384_u1 = 0;
+     let (x133, x134) = fiat_p384_subborrowx_u32(0x0, (0x0 as u32), x132);
+-    let mut x135: u32 = 0;
+-    let mut x136: fiat_p384_u1 = 0;
+     let (x135, x136) = fiat_p384_subborrowx_u32(x134, (0x0 as u32), x131);
+-    let mut x137: u32 = 0;
+-    let mut x138: fiat_p384_u1 = 0;
+     let (x137, x138) = fiat_p384_subborrowx_u32(x136, (0x0 as u32), x130);
+-    let mut x139: u32 = 0;
+-    let mut x140: fiat_p384_u1 = 0;
+     let (x139, x140) = fiat_p384_subborrowx_u32(x138, (0x0 as u32), x129);
+-    let mut x141: u32 = 0;
+-    let mut x142: fiat_p384_u1 = 0;
+     let (x141, x142) = fiat_p384_subborrowx_u32(x140, (0x0 as u32), x128);
+-    let mut x143: u32 = 0;
+-    let mut x144: fiat_p384_u1 = 0;
+     let (x143, x144) = fiat_p384_subborrowx_u32(x142, (0x0 as u32), x127);
+-    let mut x145: u32 = 0;
+-    let mut x146: fiat_p384_u1 = 0;
+     let (x145, x146) = fiat_p384_subborrowx_u32(x144, (0x0 as u32), x126);
+-    let mut x147: u32 = 0;
+-    let mut x148: fiat_p384_u1 = 0;
+     let (x147, x148) = fiat_p384_subborrowx_u32(x146, (0x0 as u32), x125);
+-    let mut x149: u32 = 0;
+-    let mut x150: fiat_p384_u1 = 0;
+     let (x149, x150) = fiat_p384_subborrowx_u32(x148, (0x0 as u32), x124);
+-    let mut x151: u32 = 0;
+-    let mut x152: fiat_p384_u1 = 0;
+     let (x151, x152) = fiat_p384_subborrowx_u32(x150, (0x0 as u32), x123);
+-    let mut x153: u32 = 0;
+-    let mut x154: fiat_p384_u1 = 0;
+     let (x153, x154) = fiat_p384_subborrowx_u32(x152, (0x0 as u32), x122);
+-    let mut x155: u32 = 0;
+-    let mut x156: fiat_p384_u1 = 0;
+     let (x155, x156) = fiat_p384_subborrowx_u32(x154, (0x0 as u32), x121);
+-    let mut x157: u32 = 0;
+     let (x157) = fiat_p384_cmovznz_u32(x156, (0x0 as u32), 0xffffffff);
+-    let mut x158: u32 = 0;
+-    let mut x159: fiat_p384_u1 = 0;
+     let (x158, x159) = fiat_p384_addcarryx_u32(0x0, x133, x157);
+-    let mut x160: u32 = 0;
+-    let mut x161: fiat_p384_u1 = 0;
+     let (x160, x161) = fiat_p384_addcarryx_u32(x159, x135, (0x0 as u32));
+-    let mut x162: u32 = 0;
+-    let mut x163: fiat_p384_u1 = 0;
+     let (x162, x163) = fiat_p384_addcarryx_u32(x161, x137, (0x0 as u32));
+-    let mut x164: u32 = 0;
+-    let mut x165: fiat_p384_u1 = 0;
+     let (x164, x165) = fiat_p384_addcarryx_u32(x163, x139, x157);
+-    let mut x166: u32 = 0;
+-    let mut x167: fiat_p384_u1 = 0;
+     let (x166, x167) = fiat_p384_addcarryx_u32(x165, x141, (x157 & 0xfffffffe));
+-    let mut x168: u32 = 0;
+-    let mut x169: fiat_p384_u1 = 0;
+     let (x168, x169) = fiat_p384_addcarryx_u32(x167, x143, x157);
+-    let mut x170: u32 = 0;
+-    let mut x171: fiat_p384_u1 = 0;
+     let (x170, x171) = fiat_p384_addcarryx_u32(x169, x145, x157);
+-    let mut x172: u32 = 0;
+-    let mut x173: fiat_p384_u1 = 0;
+     let (x172, x173) = fiat_p384_addcarryx_u32(x171, x147, x157);
+-    let mut x174: u32 = 0;
+-    let mut x175: fiat_p384_u1 = 0;
+     let (x174, x175) = fiat_p384_addcarryx_u32(x173, x149, x157);
+-    let mut x176: u32 = 0;
+-    let mut x177: fiat_p384_u1 = 0;
+     let (x176, x177) = fiat_p384_addcarryx_u32(x175, x151, x157);
+-    let mut x178: u32 = 0;
+-    let mut x179: fiat_p384_u1 = 0;
+     let (x178, x179) = fiat_p384_addcarryx_u32(x177, x153, x157);
+-    let mut x180: u32 = 0;
+-    let mut x181: fiat_p384_u1 = 0;
+     let (x180, x181) = fiat_p384_addcarryx_u32(x179, x155, x157);
+-    let mut x182: u32 = 0;
+     let (x182) = fiat_p384_cmovznz_u32(x3, (arg5[0]), x158);
+-    let mut x183: u32 = 0;
+     let (x183) = fiat_p384_cmovznz_u32(x3, (arg5[1]), x160);
+-    let mut x184: u32 = 0;
+     let (x184) = fiat_p384_cmovznz_u32(x3, (arg5[2]), x162);
+-    let mut x185: u32 = 0;
+     let (x185) = fiat_p384_cmovznz_u32(x3, (arg5[3]), x164);
+-    let mut x186: u32 = 0;
+     let (x186) = fiat_p384_cmovznz_u32(x3, (arg5[4]), x166);
+-    let mut x187: u32 = 0;
+     let (x187) = fiat_p384_cmovznz_u32(x3, (arg5[5]), x168);
+-    let mut x188: u32 = 0;
+     let (x188) = fiat_p384_cmovznz_u32(x3, (arg5[6]), x170);
+-    let mut x189: u32 = 0;
+     let (x189) = fiat_p384_cmovznz_u32(x3, (arg5[7]), x172);
+-    let mut x190: u32 = 0;
+     let (x190) = fiat_p384_cmovznz_u32(x3, (arg5[8]), x174);
+-    let mut x191: u32 = 0;
+     let (x191) = fiat_p384_cmovznz_u32(x3, (arg5[9]), x176);
+-    let mut x192: u32 = 0;
+     let (x192) = fiat_p384_cmovznz_u32(x3, (arg5[10]), x178);
+-    let mut x193: u32 = 0;
+     let (x193) = fiat_p384_cmovznz_u32(x3, (arg5[11]), x180);
+     let x194: fiat_p384_u1 = ((x46 & (0x1 as u32)) as fiat_p384_u1);
+-    let mut x195: u32 = 0;
+     let (x195) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x7);
+-    let mut x196: u32 = 0;
+     let (x196) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x8);
+-    let mut x197: u32 = 0;
+     let (x197) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x9);
+-    let mut x198: u32 = 0;
+     let (x198) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x10);
+-    let mut x199: u32 = 0;
+     let (x199) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x11);
+-    let mut x200: u32 = 0;
+     let (x200) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x12);
+-    let mut x201: u32 = 0;
+     let (x201) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x13);
+-    let mut x202: u32 = 0;
+     let (x202) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x14);
+-    let mut x203: u32 = 0;
+     let (x203) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x15);
+-    let mut x204: u32 = 0;
+     let (x204) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x16);
+-    let mut x205: u32 = 0;
+     let (x205) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x17);
+-    let mut x206: u32 = 0;
+     let (x206) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x18);
+-    let mut x207: u32 = 0;
+     let (x207) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x19);
+-    let mut x208: u32 = 0;
+-    let mut x209: fiat_p384_u1 = 0;
+     let (x208, x209) = fiat_p384_addcarryx_u32(0x0, x46, x195);
+-    let mut x210: u32 = 0;
+-    let mut x211: fiat_p384_u1 = 0;
+     let (x210, x211) = fiat_p384_addcarryx_u32(x209, x47, x196);
+-    let mut x212: u32 = 0;
+-    let mut x213: fiat_p384_u1 = 0;
+     let (x212, x213) = fiat_p384_addcarryx_u32(x211, x48, x197);
+-    let mut x214: u32 = 0;
+-    let mut x215: fiat_p384_u1 = 0;
+     let (x214, x215) = fiat_p384_addcarryx_u32(x213, x49, x198);
+-    let mut x216: u32 = 0;
+-    let mut x217: fiat_p384_u1 = 0;
+     let (x216, x217) = fiat_p384_addcarryx_u32(x215, x50, x199);
+-    let mut x218: u32 = 0;
+-    let mut x219: fiat_p384_u1 = 0;
+     let (x218, x219) = fiat_p384_addcarryx_u32(x217, x51, x200);
+-    let mut x220: u32 = 0;
+-    let mut x221: fiat_p384_u1 = 0;
+     let (x220, x221) = fiat_p384_addcarryx_u32(x219, x52, x201);
+-    let mut x222: u32 = 0;
+-    let mut x223: fiat_p384_u1 = 0;
+     let (x222, x223) = fiat_p384_addcarryx_u32(x221, x53, x202);
+-    let mut x224: u32 = 0;
+-    let mut x225: fiat_p384_u1 = 0;
+     let (x224, x225) = fiat_p384_addcarryx_u32(x223, x54, x203);
+-    let mut x226: u32 = 0;
+-    let mut x227: fiat_p384_u1 = 0;
+     let (x226, x227) = fiat_p384_addcarryx_u32(x225, x55, x204);
+-    let mut x228: u32 = 0;
+-    let mut x229: fiat_p384_u1 = 0;
+     let (x228, x229) = fiat_p384_addcarryx_u32(x227, x56, x205);
+-    let mut x230: u32 = 0;
+-    let mut x231: fiat_p384_u1 = 0;
+     let (x230, x231) = fiat_p384_addcarryx_u32(x229, x57, x206);
+-    let mut x232: u32 = 0;
+-    let mut x233: fiat_p384_u1 = 0;
+     let (x232, x233) = fiat_p384_addcarryx_u32(x231, x58, x207);
+-    let mut x234: u32 = 0;
+     let (x234) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x59);
+-    let mut x235: u32 = 0;
+     let (x235) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x60);
+-    let mut x236: u32 = 0;
+     let (x236) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x61);
+-    let mut x237: u32 = 0;
+     let (x237) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x62);
+-    let mut x238: u32 = 0;
+     let (x238) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x63);
+-    let mut x239: u32 = 0;
+     let (x239) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x64);
+-    let mut x240: u32 = 0;
+     let (x240) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x65);
+-    let mut x241: u32 = 0;
+     let (x241) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x66);
+-    let mut x242: u32 = 0;
+     let (x242) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x67);
+-    let mut x243: u32 = 0;
+     let (x243) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x68);
+-    let mut x244: u32 = 0;
+     let (x244) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x69);
+-    let mut x245: u32 = 0;
+     let (x245) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x70);
+-    let mut x246: u32 = 0;
+-    let mut x247: fiat_p384_u1 = 0;
+     let (x246, x247) = fiat_p384_addcarryx_u32(0x0, x182, x234);
+-    let mut x248: u32 = 0;
+-    let mut x249: fiat_p384_u1 = 0;
+     let (x248, x249) = fiat_p384_addcarryx_u32(x247, x183, x235);
+-    let mut x250: u32 = 0;
+-    let mut x251: fiat_p384_u1 = 0;
+     let (x250, x251) = fiat_p384_addcarryx_u32(x249, x184, x236);
+-    let mut x252: u32 = 0;
+-    let mut x253: fiat_p384_u1 = 0;
+     let (x252, x253) = fiat_p384_addcarryx_u32(x251, x185, x237);
+-    let mut x254: u32 = 0;
+-    let mut x255: fiat_p384_u1 = 0;
+     let (x254, x255) = fiat_p384_addcarryx_u32(x253, x186, x238);
+-    let mut x256: u32 = 0;
+-    let mut x257: fiat_p384_u1 = 0;
+     let (x256, x257) = fiat_p384_addcarryx_u32(x255, x187, x239);
+-    let mut x258: u32 = 0;
+-    let mut x259: fiat_p384_u1 = 0;
+     let (x258, x259) = fiat_p384_addcarryx_u32(x257, x188, x240);
+-    let mut x260: u32 = 0;
+-    let mut x261: fiat_p384_u1 = 0;
+     let (x260, x261) = fiat_p384_addcarryx_u32(x259, x189, x241);
+-    let mut x262: u32 = 0;
+-    let mut x263: fiat_p384_u1 = 0;
+     let (x262, x263) = fiat_p384_addcarryx_u32(x261, x190, x242);
+-    let mut x264: u32 = 0;
+-    let mut x265: fiat_p384_u1 = 0;
+     let (x264, x265) = fiat_p384_addcarryx_u32(x263, x191, x243);
+-    let mut x266: u32 = 0;
+-    let mut x267: fiat_p384_u1 = 0;
+     let (x266, x267) = fiat_p384_addcarryx_u32(x265, x192, x244);
+-    let mut x268: u32 = 0;
+-    let mut x269: fiat_p384_u1 = 0;
+     let (x268, x269) = fiat_p384_addcarryx_u32(x267, x193, x245);
+-    let mut x270: u32 = 0;
+-    let mut x271: fiat_p384_u1 = 0;
+     let (x270, x271) = fiat_p384_subborrowx_u32(0x0, x246, 0xffffffff);
+-    let mut x272: u32 = 0;
+-    let mut x273: fiat_p384_u1 = 0;
+     let (x272, x273) = fiat_p384_subborrowx_u32(x271, x248, (0x0 as u32));
+-    let mut x274: u32 = 0;
+-    let mut x275: fiat_p384_u1 = 0;
+     let (x274, x275) = fiat_p384_subborrowx_u32(x273, x250, (0x0 as u32));
+-    let mut x276: u32 = 0;
+-    let mut x277: fiat_p384_u1 = 0;
+     let (x276, x277) = fiat_p384_subborrowx_u32(x275, x252, 0xffffffff);
+-    let mut x278: u32 = 0;
+-    let mut x279: fiat_p384_u1 = 0;
+     let (x278, x279) = fiat_p384_subborrowx_u32(x277, x254, 0xfffffffe);
+-    let mut x280: u32 = 0;
+-    let mut x281: fiat_p384_u1 = 0;
+     let (x280, x281) = fiat_p384_subborrowx_u32(x279, x256, 0xffffffff);
+-    let mut x282: u32 = 0;
+-    let mut x283: fiat_p384_u1 = 0;
+     let (x282, x283) = fiat_p384_subborrowx_u32(x281, x258, 0xffffffff);
+-    let mut x284: u32 = 0;
+-    let mut x285: fiat_p384_u1 = 0;
+     let (x284, x285) = fiat_p384_subborrowx_u32(x283, x260, 0xffffffff);
+-    let mut x286: u32 = 0;
+-    let mut x287: fiat_p384_u1 = 0;
+     let (x286, x287) = fiat_p384_subborrowx_u32(x285, x262, 0xffffffff);
+-    let mut x288: u32 = 0;
+-    let mut x289: fiat_p384_u1 = 0;
+     let (x288, x289) = fiat_p384_subborrowx_u32(x287, x264, 0xffffffff);
+-    let mut x290: u32 = 0;
+-    let mut x291: fiat_p384_u1 = 0;
+     let (x290, x291) = fiat_p384_subborrowx_u32(x289, x266, 0xffffffff);
+-    let mut x292: u32 = 0;
+-    let mut x293: fiat_p384_u1 = 0;
+     let (x292, x293) = fiat_p384_subborrowx_u32(x291, x268, 0xffffffff);
+-    let mut x294: u32 = 0;
+-    let mut x295: fiat_p384_u1 = 0;
+     let (x294, x295) = fiat_p384_subborrowx_u32(x293, (x269 as u32), (0x0 as u32));
+-    let mut x296: u32 = 0;
+-    let mut x297: fiat_p384_u1 = 0;
+     let (x296, x297) = fiat_p384_addcarryx_u32(0x0, x6, (0x1 as u32));
+     let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
+     let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
+@@ -9817,53 +3958,29 @@ pub const fn fiat_p384_divstep(
+     let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
+     let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
+     let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
+-    let mut x311: u32 = 0;
+     let (x311) = fiat_p384_cmovznz_u32(x120, x95, x71);
+-    let mut x312: u32 = 0;
+     let (x312) = fiat_p384_cmovznz_u32(x120, x97, x73);
+-    let mut x313: u32 = 0;
+     let (x313) = fiat_p384_cmovznz_u32(x120, x99, x75);
+-    let mut x314: u32 = 0;
+     let (x314) = fiat_p384_cmovznz_u32(x120, x101, x77);
+-    let mut x315: u32 = 0;
+     let (x315) = fiat_p384_cmovznz_u32(x120, x103, x79);
+-    let mut x316: u32 = 0;
+     let (x316) = fiat_p384_cmovznz_u32(x120, x105, x81);
+-    let mut x317: u32 = 0;
+     let (x317) = fiat_p384_cmovznz_u32(x120, x107, x83);
+-    let mut x318: u32 = 0;
+     let (x318) = fiat_p384_cmovznz_u32(x120, x109, x85);
+-    let mut x319: u32 = 0;
+     let (x319) = fiat_p384_cmovznz_u32(x120, x111, x87);
+-    let mut x320: u32 = 0;
+     let (x320) = fiat_p384_cmovznz_u32(x120, x113, x89);
+-    let mut x321: u32 = 0;
+     let (x321) = fiat_p384_cmovznz_u32(x120, x115, x91);
+-    let mut x322: u32 = 0;
+     let (x322) = fiat_p384_cmovznz_u32(x120, x117, x93);
+-    let mut x323: u32 = 0;
+     let (x323) = fiat_p384_cmovznz_u32(x295, x270, x246);
+-    let mut x324: u32 = 0;
+     let (x324) = fiat_p384_cmovznz_u32(x295, x272, x248);
+-    let mut x325: u32 = 0;
+     let (x325) = fiat_p384_cmovznz_u32(x295, x274, x250);
+-    let mut x326: u32 = 0;
+     let (x326) = fiat_p384_cmovznz_u32(x295, x276, x252);
+-    let mut x327: u32 = 0;
+     let (x327) = fiat_p384_cmovznz_u32(x295, x278, x254);
+-    let mut x328: u32 = 0;
+     let (x328) = fiat_p384_cmovznz_u32(x295, x280, x256);
+-    let mut x329: u32 = 0;
+     let (x329) = fiat_p384_cmovznz_u32(x295, x282, x258);
+-    let mut x330: u32 = 0;
+     let (x330) = fiat_p384_cmovznz_u32(x295, x284, x260);
+-    let mut x331: u32 = 0;
+     let (x331) = fiat_p384_cmovznz_u32(x295, x286, x262);
+-    let mut x332: u32 = 0;
+     let (x332) = fiat_p384_cmovznz_u32(x295, x288, x264);
+-    let mut x333: u32 = 0;
+     let (x333) = fiat_p384_cmovznz_u32(x295, x290, x266);
+-    let mut x334: u32 = 0;
+     let (x334) = fiat_p384_cmovznz_u32(x295, x292, x268);
+     out1 = x296;
+     out2[0] = x7;
+diff --git a/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs b/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs
+index 3269a50..005fb48 100644
+--- a/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs
++++ b/vendor/p384-0.13.0/src/arithmetic/field/p384_64.rs
+@@ -154,700 +154,250 @@ pub const fn fiat_p384_mul(
+     let x4: u64 = (arg1[4]);
+     let x5: u64 = (arg1[5]);
+     let x6: u64 = (arg1[0]);
+-    let mut x7: u64 = 0;
+-    let mut x8: u64 = 0;
+     let (x7, x8) = fiat_p384_mulx_u64(x6, (arg2[5]));
+-    let mut x9: u64 = 0;
+-    let mut x10: u64 = 0;
+     let (x9, x10) = fiat_p384_mulx_u64(x6, (arg2[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: u64 = 0;
+     let (x11, x12) = fiat_p384_mulx_u64(x6, (arg2[3]));
+-    let mut x13: u64 = 0;
+-    let mut x14: u64 = 0;
+     let (x13, x14) = fiat_p384_mulx_u64(x6, (arg2[2]));
+-    let mut x15: u64 = 0;
+-    let mut x16: u64 = 0;
+     let (x15, x16) = fiat_p384_mulx_u64(x6, (arg2[1]));
+-    let mut x17: u64 = 0;
+-    let mut x18: u64 = 0;
+     let (x17, x18) = fiat_p384_mulx_u64(x6, (arg2[0]));
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_addcarryx_u64(0x0, x18, x15);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_addcarryx_u64(x20, x16, x13);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_u1 = 0;
+     let (x23, x24) = fiat_p384_addcarryx_u64(x22, x14, x11);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_u1 = 0;
+     let (x25, x26) = fiat_p384_addcarryx_u64(x24, x12, x9);
+-    let mut x27: u64 = 0;
+-    let mut x28: fiat_p384_u1 = 0;
+     let (x27, x28) = fiat_p384_addcarryx_u64(x26, x10, x7);
+     let x29: u64 = ((x28 as u64) + x8);
+-    let mut x30: u64 = 0;
+-    let mut x31: u64 = 0;
+     let (x30, x31) = fiat_p384_mulx_u64(x17, 0x100000001);
+-    let mut x32: u64 = 0;
+-    let mut x33: u64 = 0;
+     let (x32, x33) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x34: u64 = 0;
+-    let mut x35: u64 = 0;
+     let (x34, x35) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x36: u64 = 0;
+-    let mut x37: u64 = 0;
+     let (x36, x37) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x38: u64 = 0;
+-    let mut x39: u64 = 0;
+     let (x38, x39) = fiat_p384_mulx_u64(x30, 0xfffffffffffffffe);
+-    let mut x40: u64 = 0;
+-    let mut x41: u64 = 0;
+     let (x40, x41) = fiat_p384_mulx_u64(x30, 0xffffffff00000000);
+-    let mut x42: u64 = 0;
+-    let mut x43: u64 = 0;
+     let (x42, x43) = fiat_p384_mulx_u64(x30, 0xffffffff);
+-    let mut x44: u64 = 0;
+-    let mut x45: fiat_p384_u1 = 0;
+     let (x44, x45) = fiat_p384_addcarryx_u64(0x0, x43, x40);
+-    let mut x46: u64 = 0;
+-    let mut x47: fiat_p384_u1 = 0;
+     let (x46, x47) = fiat_p384_addcarryx_u64(x45, x41, x38);
+-    let mut x48: u64 = 0;
+-    let mut x49: fiat_p384_u1 = 0;
+     let (x48, x49) = fiat_p384_addcarryx_u64(x47, x39, x36);
+-    let mut x50: u64 = 0;
+-    let mut x51: fiat_p384_u1 = 0;
+     let (x50, x51) = fiat_p384_addcarryx_u64(x49, x37, x34);
+-    let mut x52: u64 = 0;
+-    let mut x53: fiat_p384_u1 = 0;
+     let (x52, x53) = fiat_p384_addcarryx_u64(x51, x35, x32);
+     let x54: u64 = ((x53 as u64) + x33);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_addcarryx_u64(0x0, x17, x42);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_addcarryx_u64(x56, x19, x44);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_u1 = 0;
+     let (x59, x60) = fiat_p384_addcarryx_u64(x58, x21, x46);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_u1 = 0;
+     let (x61, x62) = fiat_p384_addcarryx_u64(x60, x23, x48);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_u1 = 0;
+     let (x63, x64) = fiat_p384_addcarryx_u64(x62, x25, x50);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_u1 = 0;
+     let (x65, x66) = fiat_p384_addcarryx_u64(x64, x27, x52);
+-    let mut x67: u64 = 0;
+-    let mut x68: fiat_p384_u1 = 0;
+     let (x67, x68) = fiat_p384_addcarryx_u64(x66, x29, x54);
+-    let mut x69: u64 = 0;
+-    let mut x70: u64 = 0;
+     let (x69, x70) = fiat_p384_mulx_u64(x1, (arg2[5]));
+-    let mut x71: u64 = 0;
+-    let mut x72: u64 = 0;
+     let (x71, x72) = fiat_p384_mulx_u64(x1, (arg2[4]));
+-    let mut x73: u64 = 0;
+-    let mut x74: u64 = 0;
+     let (x73, x74) = fiat_p384_mulx_u64(x1, (arg2[3]));
+-    let mut x75: u64 = 0;
+-    let mut x76: u64 = 0;
+     let (x75, x76) = fiat_p384_mulx_u64(x1, (arg2[2]));
+-    let mut x77: u64 = 0;
+-    let mut x78: u64 = 0;
+     let (x77, x78) = fiat_p384_mulx_u64(x1, (arg2[1]));
+-    let mut x79: u64 = 0;
+-    let mut x80: u64 = 0;
+     let (x79, x80) = fiat_p384_mulx_u64(x1, (arg2[0]));
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_u1 = 0;
+     let (x81, x82) = fiat_p384_addcarryx_u64(0x0, x80, x77);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_u1 = 0;
+     let (x83, x84) = fiat_p384_addcarryx_u64(x82, x78, x75);
+-    let mut x85: u64 = 0;
+-    let mut x86: fiat_p384_u1 = 0;
+     let (x85, x86) = fiat_p384_addcarryx_u64(x84, x76, x73);
+-    let mut x87: u64 = 0;
+-    let mut x88: fiat_p384_u1 = 0;
+     let (x87, x88) = fiat_p384_addcarryx_u64(x86, x74, x71);
+-    let mut x89: u64 = 0;
+-    let mut x90: fiat_p384_u1 = 0;
+     let (x89, x90) = fiat_p384_addcarryx_u64(x88, x72, x69);
+     let x91: u64 = ((x90 as u64) + x70);
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u64(0x0, x57, x79);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x59, x81);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_u1 = 0;
+     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x61, x83);
+-    let mut x98: u64 = 0;
+-    let mut x99: fiat_p384_u1 = 0;
+     let (x98, x99) = fiat_p384_addcarryx_u64(x97, x63, x85);
+-    let mut x100: u64 = 0;
+-    let mut x101: fiat_p384_u1 = 0;
+     let (x100, x101) = fiat_p384_addcarryx_u64(x99, x65, x87);
+-    let mut x102: u64 = 0;
+-    let mut x103: fiat_p384_u1 = 0;
+     let (x102, x103) = fiat_p384_addcarryx_u64(x101, x67, x89);
+-    let mut x104: u64 = 0;
+-    let mut x105: fiat_p384_u1 = 0;
+     let (x104, x105) = fiat_p384_addcarryx_u64(x103, (x68 as u64), x91);
+-    let mut x106: u64 = 0;
+-    let mut x107: u64 = 0;
+     let (x106, x107) = fiat_p384_mulx_u64(x92, 0x100000001);
+-    let mut x108: u64 = 0;
+-    let mut x109: u64 = 0;
+     let (x108, x109) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x110: u64 = 0;
+-    let mut x111: u64 = 0;
+     let (x110, x111) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x112: u64 = 0;
+-    let mut x113: u64 = 0;
+     let (x112, x113) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x114: u64 = 0;
+-    let mut x115: u64 = 0;
+     let (x114, x115) = fiat_p384_mulx_u64(x106, 0xfffffffffffffffe);
+-    let mut x116: u64 = 0;
+-    let mut x117: u64 = 0;
+     let (x116, x117) = fiat_p384_mulx_u64(x106, 0xffffffff00000000);
+-    let mut x118: u64 = 0;
+-    let mut x119: u64 = 0;
+     let (x118, x119) = fiat_p384_mulx_u64(x106, 0xffffffff);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_u1 = 0;
+     let (x120, x121) = fiat_p384_addcarryx_u64(0x0, x119, x116);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_u1 = 0;
+     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x117, x114);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_u1 = 0;
+     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x115, x112);
+-    let mut x126: u64 = 0;
+-    let mut x127: fiat_p384_u1 = 0;
+     let (x126, x127) = fiat_p384_addcarryx_u64(x125, x113, x110);
+-    let mut x128: u64 = 0;
+-    let mut x129: fiat_p384_u1 = 0;
+     let (x128, x129) = fiat_p384_addcarryx_u64(x127, x111, x108);
+     let x130: u64 = ((x129 as u64) + x109);
+-    let mut x131: u64 = 0;
+-    let mut x132: fiat_p384_u1 = 0;
+     let (x131, x132) = fiat_p384_addcarryx_u64(0x0, x92, x118);
+-    let mut x133: u64 = 0;
+-    let mut x134: fiat_p384_u1 = 0;
+     let (x133, x134) = fiat_p384_addcarryx_u64(x132, x94, x120);
+-    let mut x135: u64 = 0;
+-    let mut x136: fiat_p384_u1 = 0;
+     let (x135, x136) = fiat_p384_addcarryx_u64(x134, x96, x122);
+-    let mut x137: u64 = 0;
+-    let mut x138: fiat_p384_u1 = 0;
+     let (x137, x138) = fiat_p384_addcarryx_u64(x136, x98, x124);
+-    let mut x139: u64 = 0;
+-    let mut x140: fiat_p384_u1 = 0;
+     let (x139, x140) = fiat_p384_addcarryx_u64(x138, x100, x126);
+-    let mut x141: u64 = 0;
+-    let mut x142: fiat_p384_u1 = 0;
+     let (x141, x142) = fiat_p384_addcarryx_u64(x140, x102, x128);
+-    let mut x143: u64 = 0;
+-    let mut x144: fiat_p384_u1 = 0;
+     let (x143, x144) = fiat_p384_addcarryx_u64(x142, x104, x130);
+     let x145: u64 = ((x144 as u64) + (x105 as u64));
+-    let mut x146: u64 = 0;
+-    let mut x147: u64 = 0;
+     let (x146, x147) = fiat_p384_mulx_u64(x2, (arg2[5]));
+-    let mut x148: u64 = 0;
+-    let mut x149: u64 = 0;
+     let (x148, x149) = fiat_p384_mulx_u64(x2, (arg2[4]));
+-    let mut x150: u64 = 0;
+-    let mut x151: u64 = 0;
+     let (x150, x151) = fiat_p384_mulx_u64(x2, (arg2[3]));
+-    let mut x152: u64 = 0;
+-    let mut x153: u64 = 0;
+     let (x152, x153) = fiat_p384_mulx_u64(x2, (arg2[2]));
+-    let mut x154: u64 = 0;
+-    let mut x155: u64 = 0;
+     let (x154, x155) = fiat_p384_mulx_u64(x2, (arg2[1]));
+-    let mut x156: u64 = 0;
+-    let mut x157: u64 = 0;
+     let (x156, x157) = fiat_p384_mulx_u64(x2, (arg2[0]));
+-    let mut x158: u64 = 0;
+-    let mut x159: fiat_p384_u1 = 0;
+     let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x157, x154);
+-    let mut x160: u64 = 0;
+-    let mut x161: fiat_p384_u1 = 0;
+     let (x160, x161) = fiat_p384_addcarryx_u64(x159, x155, x152);
+-    let mut x162: u64 = 0;
+-    let mut x163: fiat_p384_u1 = 0;
+     let (x162, x163) = fiat_p384_addcarryx_u64(x161, x153, x150);
+-    let mut x164: u64 = 0;
+-    let mut x165: fiat_p384_u1 = 0;
+     let (x164, x165) = fiat_p384_addcarryx_u64(x163, x151, x148);
+-    let mut x166: u64 = 0;
+-    let mut x167: fiat_p384_u1 = 0;
+     let (x166, x167) = fiat_p384_addcarryx_u64(x165, x149, x146);
+     let x168: u64 = ((x167 as u64) + x147);
+-    let mut x169: u64 = 0;
+-    let mut x170: fiat_p384_u1 = 0;
+     let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x133, x156);
+-    let mut x171: u64 = 0;
+-    let mut x172: fiat_p384_u1 = 0;
+     let (x171, x172) = fiat_p384_addcarryx_u64(x170, x135, x158);
+-    let mut x173: u64 = 0;
+-    let mut x174: fiat_p384_u1 = 0;
+     let (x173, x174) = fiat_p384_addcarryx_u64(x172, x137, x160);
+-    let mut x175: u64 = 0;
+-    let mut x176: fiat_p384_u1 = 0;
+     let (x175, x176) = fiat_p384_addcarryx_u64(x174, x139, x162);
+-    let mut x177: u64 = 0;
+-    let mut x178: fiat_p384_u1 = 0;
+     let (x177, x178) = fiat_p384_addcarryx_u64(x176, x141, x164);
+-    let mut x179: u64 = 0;
+-    let mut x180: fiat_p384_u1 = 0;
+     let (x179, x180) = fiat_p384_addcarryx_u64(x178, x143, x166);
+-    let mut x181: u64 = 0;
+-    let mut x182: fiat_p384_u1 = 0;
+     let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x168);
+-    let mut x183: u64 = 0;
+-    let mut x184: u64 = 0;
+     let (x183, x184) = fiat_p384_mulx_u64(x169, 0x100000001);
+-    let mut x185: u64 = 0;
+-    let mut x186: u64 = 0;
+     let (x185, x186) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x187: u64 = 0;
+-    let mut x188: u64 = 0;
+     let (x187, x188) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x189: u64 = 0;
+-    let mut x190: u64 = 0;
+     let (x189, x190) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x191: u64 = 0;
+-    let mut x192: u64 = 0;
+     let (x191, x192) = fiat_p384_mulx_u64(x183, 0xfffffffffffffffe);
+-    let mut x193: u64 = 0;
+-    let mut x194: u64 = 0;
+     let (x193, x194) = fiat_p384_mulx_u64(x183, 0xffffffff00000000);
+-    let mut x195: u64 = 0;
+-    let mut x196: u64 = 0;
+     let (x195, x196) = fiat_p384_mulx_u64(x183, 0xffffffff);
+-    let mut x197: u64 = 0;
+-    let mut x198: fiat_p384_u1 = 0;
+     let (x197, x198) = fiat_p384_addcarryx_u64(0x0, x196, x193);
+-    let mut x199: u64 = 0;
+-    let mut x200: fiat_p384_u1 = 0;
+     let (x199, x200) = fiat_p384_addcarryx_u64(x198, x194, x191);
+-    let mut x201: u64 = 0;
+-    let mut x202: fiat_p384_u1 = 0;
+     let (x201, x202) = fiat_p384_addcarryx_u64(x200, x192, x189);
+-    let mut x203: u64 = 0;
+-    let mut x204: fiat_p384_u1 = 0;
+     let (x203, x204) = fiat_p384_addcarryx_u64(x202, x190, x187);
+-    let mut x205: u64 = 0;
+-    let mut x206: fiat_p384_u1 = 0;
+     let (x205, x206) = fiat_p384_addcarryx_u64(x204, x188, x185);
+     let x207: u64 = ((x206 as u64) + x186);
+-    let mut x208: u64 = 0;
+-    let mut x209: fiat_p384_u1 = 0;
+     let (x208, x209) = fiat_p384_addcarryx_u64(0x0, x169, x195);
+-    let mut x210: u64 = 0;
+-    let mut x211: fiat_p384_u1 = 0;
+     let (x210, x211) = fiat_p384_addcarryx_u64(x209, x171, x197);
+-    let mut x212: u64 = 0;
+-    let mut x213: fiat_p384_u1 = 0;
+     let (x212, x213) = fiat_p384_addcarryx_u64(x211, x173, x199);
+-    let mut x214: u64 = 0;
+-    let mut x215: fiat_p384_u1 = 0;
+     let (x214, x215) = fiat_p384_addcarryx_u64(x213, x175, x201);
+-    let mut x216: u64 = 0;
+-    let mut x217: fiat_p384_u1 = 0;
+     let (x216, x217) = fiat_p384_addcarryx_u64(x215, x177, x203);
+-    let mut x218: u64 = 0;
+-    let mut x219: fiat_p384_u1 = 0;
+     let (x218, x219) = fiat_p384_addcarryx_u64(x217, x179, x205);
+-    let mut x220: u64 = 0;
+-    let mut x221: fiat_p384_u1 = 0;
+     let (x220, x221) = fiat_p384_addcarryx_u64(x219, x181, x207);
+     let x222: u64 = ((x221 as u64) + (x182 as u64));
+-    let mut x223: u64 = 0;
+-    let mut x224: u64 = 0;
+     let (x223, x224) = fiat_p384_mulx_u64(x3, (arg2[5]));
+-    let mut x225: u64 = 0;
+-    let mut x226: u64 = 0;
+     let (x225, x226) = fiat_p384_mulx_u64(x3, (arg2[4]));
+-    let mut x227: u64 = 0;
+-    let mut x228: u64 = 0;
+     let (x227, x228) = fiat_p384_mulx_u64(x3, (arg2[3]));
+-    let mut x229: u64 = 0;
+-    let mut x230: u64 = 0;
+     let (x229, x230) = fiat_p384_mulx_u64(x3, (arg2[2]));
+-    let mut x231: u64 = 0;
+-    let mut x232: u64 = 0;
+     let (x231, x232) = fiat_p384_mulx_u64(x3, (arg2[1]));
+-    let mut x233: u64 = 0;
+-    let mut x234: u64 = 0;
+     let (x233, x234) = fiat_p384_mulx_u64(x3, (arg2[0]));
+-    let mut x235: u64 = 0;
+-    let mut x236: fiat_p384_u1 = 0;
+     let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
+-    let mut x237: u64 = 0;
+-    let mut x238: fiat_p384_u1 = 0;
+     let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
+-    let mut x239: u64 = 0;
+-    let mut x240: fiat_p384_u1 = 0;
+     let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
+-    let mut x241: u64 = 0;
+-    let mut x242: fiat_p384_u1 = 0;
+     let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
+-    let mut x243: u64 = 0;
+-    let mut x244: fiat_p384_u1 = 0;
+     let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
+     let x245: u64 = ((x244 as u64) + x224);
+-    let mut x246: u64 = 0;
+-    let mut x247: fiat_p384_u1 = 0;
+     let (x246, x247) = fiat_p384_addcarryx_u64(0x0, x210, x233);
+-    let mut x248: u64 = 0;
+-    let mut x249: fiat_p384_u1 = 0;
+     let (x248, x249) = fiat_p384_addcarryx_u64(x247, x212, x235);
+-    let mut x250: u64 = 0;
+-    let mut x251: fiat_p384_u1 = 0;
+     let (x250, x251) = fiat_p384_addcarryx_u64(x249, x214, x237);
+-    let mut x252: u64 = 0;
+-    let mut x253: fiat_p384_u1 = 0;
+     let (x252, x253) = fiat_p384_addcarryx_u64(x251, x216, x239);
+-    let mut x254: u64 = 0;
+-    let mut x255: fiat_p384_u1 = 0;
+     let (x254, x255) = fiat_p384_addcarryx_u64(x253, x218, x241);
+-    let mut x256: u64 = 0;
+-    let mut x257: fiat_p384_u1 = 0;
+     let (x256, x257) = fiat_p384_addcarryx_u64(x255, x220, x243);
+-    let mut x258: u64 = 0;
+-    let mut x259: fiat_p384_u1 = 0;
+     let (x258, x259) = fiat_p384_addcarryx_u64(x257, x222, x245);
+-    let mut x260: u64 = 0;
+-    let mut x261: u64 = 0;
+     let (x260, x261) = fiat_p384_mulx_u64(x246, 0x100000001);
+-    let mut x262: u64 = 0;
+-    let mut x263: u64 = 0;
+     let (x262, x263) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x264: u64 = 0;
+-    let mut x265: u64 = 0;
+     let (x264, x265) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x266: u64 = 0;
+-    let mut x267: u64 = 0;
+     let (x266, x267) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x268: u64 = 0;
+-    let mut x269: u64 = 0;
+     let (x268, x269) = fiat_p384_mulx_u64(x260, 0xfffffffffffffffe);
+-    let mut x270: u64 = 0;
+-    let mut x271: u64 = 0;
+     let (x270, x271) = fiat_p384_mulx_u64(x260, 0xffffffff00000000);
+-    let mut x272: u64 = 0;
+-    let mut x273: u64 = 0;
+     let (x272, x273) = fiat_p384_mulx_u64(x260, 0xffffffff);
+-    let mut x274: u64 = 0;
+-    let mut x275: fiat_p384_u1 = 0;
+     let (x274, x275) = fiat_p384_addcarryx_u64(0x0, x273, x270);
+-    let mut x276: u64 = 0;
+-    let mut x277: fiat_p384_u1 = 0;
+     let (x276, x277) = fiat_p384_addcarryx_u64(x275, x271, x268);
+-    let mut x278: u64 = 0;
+-    let mut x279: fiat_p384_u1 = 0;
+     let (x278, x279) = fiat_p384_addcarryx_u64(x277, x269, x266);
+-    let mut x280: u64 = 0;
+-    let mut x281: fiat_p384_u1 = 0;
+     let (x280, x281) = fiat_p384_addcarryx_u64(x279, x267, x264);
+-    let mut x282: u64 = 0;
+-    let mut x283: fiat_p384_u1 = 0;
+     let (x282, x283) = fiat_p384_addcarryx_u64(x281, x265, x262);
+     let x284: u64 = ((x283 as u64) + x263);
+-    let mut x285: u64 = 0;
+-    let mut x286: fiat_p384_u1 = 0;
+     let (x285, x286) = fiat_p384_addcarryx_u64(0x0, x246, x272);
+-    let mut x287: u64 = 0;
+-    let mut x288: fiat_p384_u1 = 0;
+     let (x287, x288) = fiat_p384_addcarryx_u64(x286, x248, x274);
+-    let mut x289: u64 = 0;
+-    let mut x290: fiat_p384_u1 = 0;
+     let (x289, x290) = fiat_p384_addcarryx_u64(x288, x250, x276);
+-    let mut x291: u64 = 0;
+-    let mut x292: fiat_p384_u1 = 0;
+     let (x291, x292) = fiat_p384_addcarryx_u64(x290, x252, x278);
+-    let mut x293: u64 = 0;
+-    let mut x294: fiat_p384_u1 = 0;
+     let (x293, x294) = fiat_p384_addcarryx_u64(x292, x254, x280);
+-    let mut x295: u64 = 0;
+-    let mut x296: fiat_p384_u1 = 0;
+     let (x295, x296) = fiat_p384_addcarryx_u64(x294, x256, x282);
+-    let mut x297: u64 = 0;
+-    let mut x298: fiat_p384_u1 = 0;
+     let (x297, x298) = fiat_p384_addcarryx_u64(x296, x258, x284);
+     let x299: u64 = ((x298 as u64) + (x259 as u64));
+-    let mut x300: u64 = 0;
+-    let mut x301: u64 = 0;
+     let (x300, x301) = fiat_p384_mulx_u64(x4, (arg2[5]));
+-    let mut x302: u64 = 0;
+-    let mut x303: u64 = 0;
+     let (x302, x303) = fiat_p384_mulx_u64(x4, (arg2[4]));
+-    let mut x304: u64 = 0;
+-    let mut x305: u64 = 0;
+     let (x304, x305) = fiat_p384_mulx_u64(x4, (arg2[3]));
+-    let mut x306: u64 = 0;
+-    let mut x307: u64 = 0;
+     let (x306, x307) = fiat_p384_mulx_u64(x4, (arg2[2]));
+-    let mut x308: u64 = 0;
+-    let mut x309: u64 = 0;
+     let (x308, x309) = fiat_p384_mulx_u64(x4, (arg2[1]));
+-    let mut x310: u64 = 0;
+-    let mut x311: u64 = 0;
+     let (x310, x311) = fiat_p384_mulx_u64(x4, (arg2[0]));
+-    let mut x312: u64 = 0;
+-    let mut x313: fiat_p384_u1 = 0;
+     let (x312, x313) = fiat_p384_addcarryx_u64(0x0, x311, x308);
+-    let mut x314: u64 = 0;
+-    let mut x315: fiat_p384_u1 = 0;
+     let (x314, x315) = fiat_p384_addcarryx_u64(x313, x309, x306);
+-    let mut x316: u64 = 0;
+-    let mut x317: fiat_p384_u1 = 0;
+     let (x316, x317) = fiat_p384_addcarryx_u64(x315, x307, x304);
+-    let mut x318: u64 = 0;
+-    let mut x319: fiat_p384_u1 = 0;
+     let (x318, x319) = fiat_p384_addcarryx_u64(x317, x305, x302);
+-    let mut x320: u64 = 0;
+-    let mut x321: fiat_p384_u1 = 0;
+     let (x320, x321) = fiat_p384_addcarryx_u64(x319, x303, x300);
+     let x322: u64 = ((x321 as u64) + x301);
+-    let mut x323: u64 = 0;
+-    let mut x324: fiat_p384_u1 = 0;
+     let (x323, x324) = fiat_p384_addcarryx_u64(0x0, x287, x310);
+-    let mut x325: u64 = 0;
+-    let mut x326: fiat_p384_u1 = 0;
+     let (x325, x326) = fiat_p384_addcarryx_u64(x324, x289, x312);
+-    let mut x327: u64 = 0;
+-    let mut x328: fiat_p384_u1 = 0;
+     let (x327, x328) = fiat_p384_addcarryx_u64(x326, x291, x314);
+-    let mut x329: u64 = 0;
+-    let mut x330: fiat_p384_u1 = 0;
+     let (x329, x330) = fiat_p384_addcarryx_u64(x328, x293, x316);
+-    let mut x331: u64 = 0;
+-    let mut x332: fiat_p384_u1 = 0;
+     let (x331, x332) = fiat_p384_addcarryx_u64(x330, x295, x318);
+-    let mut x333: u64 = 0;
+-    let mut x334: fiat_p384_u1 = 0;
+     let (x333, x334) = fiat_p384_addcarryx_u64(x332, x297, x320);
+-    let mut x335: u64 = 0;
+-    let mut x336: fiat_p384_u1 = 0;
+     let (x335, x336) = fiat_p384_addcarryx_u64(x334, x299, x322);
+-    let mut x337: u64 = 0;
+-    let mut x338: u64 = 0;
+     let (x337, x338) = fiat_p384_mulx_u64(x323, 0x100000001);
+-    let mut x339: u64 = 0;
+-    let mut x340: u64 = 0;
+     let (x339, x340) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x341: u64 = 0;
+-    let mut x342: u64 = 0;
+     let (x341, x342) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x343: u64 = 0;
+-    let mut x344: u64 = 0;
+     let (x343, x344) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x345: u64 = 0;
+-    let mut x346: u64 = 0;
+     let (x345, x346) = fiat_p384_mulx_u64(x337, 0xfffffffffffffffe);
+-    let mut x347: u64 = 0;
+-    let mut x348: u64 = 0;
+     let (x347, x348) = fiat_p384_mulx_u64(x337, 0xffffffff00000000);
+-    let mut x349: u64 = 0;
+-    let mut x350: u64 = 0;
+     let (x349, x350) = fiat_p384_mulx_u64(x337, 0xffffffff);
+-    let mut x351: u64 = 0;
+-    let mut x352: fiat_p384_u1 = 0;
+     let (x351, x352) = fiat_p384_addcarryx_u64(0x0, x350, x347);
+-    let mut x353: u64 = 0;
+-    let mut x354: fiat_p384_u1 = 0;
+     let (x353, x354) = fiat_p384_addcarryx_u64(x352, x348, x345);
+-    let mut x355: u64 = 0;
+-    let mut x356: fiat_p384_u1 = 0;
+     let (x355, x356) = fiat_p384_addcarryx_u64(x354, x346, x343);
+-    let mut x357: u64 = 0;
+-    let mut x358: fiat_p384_u1 = 0;
+     let (x357, x358) = fiat_p384_addcarryx_u64(x356, x344, x341);
+-    let mut x359: u64 = 0;
+-    let mut x360: fiat_p384_u1 = 0;
+     let (x359, x360) = fiat_p384_addcarryx_u64(x358, x342, x339);
+     let x361: u64 = ((x360 as u64) + x340);
+-    let mut x362: u64 = 0;
+-    let mut x363: fiat_p384_u1 = 0;
+     let (x362, x363) = fiat_p384_addcarryx_u64(0x0, x323, x349);
+-    let mut x364: u64 = 0;
+-    let mut x365: fiat_p384_u1 = 0;
+     let (x364, x365) = fiat_p384_addcarryx_u64(x363, x325, x351);
+-    let mut x366: u64 = 0;
+-    let mut x367: fiat_p384_u1 = 0;
+     let (x366, x367) = fiat_p384_addcarryx_u64(x365, x327, x353);
+-    let mut x368: u64 = 0;
+-    let mut x369: fiat_p384_u1 = 0;
+     let (x368, x369) = fiat_p384_addcarryx_u64(x367, x329, x355);
+-    let mut x370: u64 = 0;
+-    let mut x371: fiat_p384_u1 = 0;
+     let (x370, x371) = fiat_p384_addcarryx_u64(x369, x331, x357);
+-    let mut x372: u64 = 0;
+-    let mut x373: fiat_p384_u1 = 0;
+     let (x372, x373) = fiat_p384_addcarryx_u64(x371, x333, x359);
+-    let mut x374: u64 = 0;
+-    let mut x375: fiat_p384_u1 = 0;
+     let (x374, x375) = fiat_p384_addcarryx_u64(x373, x335, x361);
+     let x376: u64 = ((x375 as u64) + (x336 as u64));
+-    let mut x377: u64 = 0;
+-    let mut x378: u64 = 0;
+     let (x377, x378) = fiat_p384_mulx_u64(x5, (arg2[5]));
+-    let mut x379: u64 = 0;
+-    let mut x380: u64 = 0;
+     let (x379, x380) = fiat_p384_mulx_u64(x5, (arg2[4]));
+-    let mut x381: u64 = 0;
+-    let mut x382: u64 = 0;
+     let (x381, x382) = fiat_p384_mulx_u64(x5, (arg2[3]));
+-    let mut x383: u64 = 0;
+-    let mut x384: u64 = 0;
+     let (x383, x384) = fiat_p384_mulx_u64(x5, (arg2[2]));
+-    let mut x385: u64 = 0;
+-    let mut x386: u64 = 0;
+     let (x385, x386) = fiat_p384_mulx_u64(x5, (arg2[1]));
+-    let mut x387: u64 = 0;
+-    let mut x388: u64 = 0;
+     let (x387, x388) = fiat_p384_mulx_u64(x5, (arg2[0]));
+-    let mut x389: u64 = 0;
+-    let mut x390: fiat_p384_u1 = 0;
+     let (x389, x390) = fiat_p384_addcarryx_u64(0x0, x388, x385);
+-    let mut x391: u64 = 0;
+-    let mut x392: fiat_p384_u1 = 0;
+     let (x391, x392) = fiat_p384_addcarryx_u64(x390, x386, x383);
+-    let mut x393: u64 = 0;
+-    let mut x394: fiat_p384_u1 = 0;
+     let (x393, x394) = fiat_p384_addcarryx_u64(x392, x384, x381);
+-    let mut x395: u64 = 0;
+-    let mut x396: fiat_p384_u1 = 0;
+     let (x395, x396) = fiat_p384_addcarryx_u64(x394, x382, x379);
+-    let mut x397: u64 = 0;
+-    let mut x398: fiat_p384_u1 = 0;
+     let (x397, x398) = fiat_p384_addcarryx_u64(x396, x380, x377);
+     let x399: u64 = ((x398 as u64) + x378);
+-    let mut x400: u64 = 0;
+-    let mut x401: fiat_p384_u1 = 0;
+     let (x400, x401) = fiat_p384_addcarryx_u64(0x0, x364, x387);
+-    let mut x402: u64 = 0;
+-    let mut x403: fiat_p384_u1 = 0;
+     let (x402, x403) = fiat_p384_addcarryx_u64(x401, x366, x389);
+-    let mut x404: u64 = 0;
+-    let mut x405: fiat_p384_u1 = 0;
+     let (x404, x405) = fiat_p384_addcarryx_u64(x403, x368, x391);
+-    let mut x406: u64 = 0;
+-    let mut x407: fiat_p384_u1 = 0;
+     let (x406, x407) = fiat_p384_addcarryx_u64(x405, x370, x393);
+-    let mut x408: u64 = 0;
+-    let mut x409: fiat_p384_u1 = 0;
+     let (x408, x409) = fiat_p384_addcarryx_u64(x407, x372, x395);
+-    let mut x410: u64 = 0;
+-    let mut x411: fiat_p384_u1 = 0;
+     let (x410, x411) = fiat_p384_addcarryx_u64(x409, x374, x397);
+-    let mut x412: u64 = 0;
+-    let mut x413: fiat_p384_u1 = 0;
+     let (x412, x413) = fiat_p384_addcarryx_u64(x411, x376, x399);
+-    let mut x414: u64 = 0;
+-    let mut x415: u64 = 0;
+     let (x414, x415) = fiat_p384_mulx_u64(x400, 0x100000001);
+-    let mut x416: u64 = 0;
+-    let mut x417: u64 = 0;
+     let (x416, x417) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x418: u64 = 0;
+-    let mut x419: u64 = 0;
+     let (x418, x419) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x420: u64 = 0;
+-    let mut x421: u64 = 0;
+     let (x420, x421) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x422: u64 = 0;
+-    let mut x423: u64 = 0;
+     let (x422, x423) = fiat_p384_mulx_u64(x414, 0xfffffffffffffffe);
+-    let mut x424: u64 = 0;
+-    let mut x425: u64 = 0;
+     let (x424, x425) = fiat_p384_mulx_u64(x414, 0xffffffff00000000);
+-    let mut x426: u64 = 0;
+-    let mut x427: u64 = 0;
+     let (x426, x427) = fiat_p384_mulx_u64(x414, 0xffffffff);
+-    let mut x428: u64 = 0;
+-    let mut x429: fiat_p384_u1 = 0;
+     let (x428, x429) = fiat_p384_addcarryx_u64(0x0, x427, x424);
+-    let mut x430: u64 = 0;
+-    let mut x431: fiat_p384_u1 = 0;
+     let (x430, x431) = fiat_p384_addcarryx_u64(x429, x425, x422);
+-    let mut x432: u64 = 0;
+-    let mut x433: fiat_p384_u1 = 0;
+     let (x432, x433) = fiat_p384_addcarryx_u64(x431, x423, x420);
+-    let mut x434: u64 = 0;
+-    let mut x435: fiat_p384_u1 = 0;
+     let (x434, x435) = fiat_p384_addcarryx_u64(x433, x421, x418);
+-    let mut x436: u64 = 0;
+-    let mut x437: fiat_p384_u1 = 0;
+     let (x436, x437) = fiat_p384_addcarryx_u64(x435, x419, x416);
+     let x438: u64 = ((x437 as u64) + x417);
+-    let mut x439: u64 = 0;
+-    let mut x440: fiat_p384_u1 = 0;
+     let (x439, x440) = fiat_p384_addcarryx_u64(0x0, x400, x426);
+-    let mut x441: u64 = 0;
+-    let mut x442: fiat_p384_u1 = 0;
+     let (x441, x442) = fiat_p384_addcarryx_u64(x440, x402, x428);
+-    let mut x443: u64 = 0;
+-    let mut x444: fiat_p384_u1 = 0;
+     let (x443, x444) = fiat_p384_addcarryx_u64(x442, x404, x430);
+-    let mut x445: u64 = 0;
+-    let mut x446: fiat_p384_u1 = 0;
+     let (x445, x446) = fiat_p384_addcarryx_u64(x444, x406, x432);
+-    let mut x447: u64 = 0;
+-    let mut x448: fiat_p384_u1 = 0;
+     let (x447, x448) = fiat_p384_addcarryx_u64(x446, x408, x434);
+-    let mut x449: u64 = 0;
+-    let mut x450: fiat_p384_u1 = 0;
+     let (x449, x450) = fiat_p384_addcarryx_u64(x448, x410, x436);
+-    let mut x451: u64 = 0;
+-    let mut x452: fiat_p384_u1 = 0;
+     let (x451, x452) = fiat_p384_addcarryx_u64(x450, x412, x438);
+     let x453: u64 = ((x452 as u64) + (x413 as u64));
+-    let mut x454: u64 = 0;
+-    let mut x455: fiat_p384_u1 = 0;
+     let (x454, x455) = fiat_p384_subborrowx_u64(0x0, x441, 0xffffffff);
+-    let mut x456: u64 = 0;
+-    let mut x457: fiat_p384_u1 = 0;
+     let (x456, x457) = fiat_p384_subborrowx_u64(x455, x443, 0xffffffff00000000);
+-    let mut x458: u64 = 0;
+-    let mut x459: fiat_p384_u1 = 0;
+     let (x458, x459) = fiat_p384_subborrowx_u64(x457, x445, 0xfffffffffffffffe);
+-    let mut x460: u64 = 0;
+-    let mut x461: fiat_p384_u1 = 0;
+     let (x460, x461) = fiat_p384_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+-    let mut x462: u64 = 0;
+-    let mut x463: fiat_p384_u1 = 0;
+     let (x462, x463) = fiat_p384_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+-    let mut x464: u64 = 0;
+-    let mut x465: fiat_p384_u1 = 0;
+     let (x464, x465) = fiat_p384_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+-    let mut x466: u64 = 0;
+-    let mut x467: fiat_p384_u1 = 0;
+     let (x466, x467) = fiat_p384_subborrowx_u64(x465, x453, (0x0 as u64));
+-    let mut x468: u64 = 0;
+     let (x468) = fiat_p384_cmovznz_u64(x467, x454, x441);
+-    let mut x469: u64 = 0;
+     let (x469) = fiat_p384_cmovznz_u64(x467, x456, x443);
+-    let mut x470: u64 = 0;
+     let (x470) = fiat_p384_cmovznz_u64(x467, x458, x445);
+-    let mut x471: u64 = 0;
+     let (x471) = fiat_p384_cmovznz_u64(x467, x460, x447);
+-    let mut x472: u64 = 0;
+     let (x472) = fiat_p384_cmovznz_u64(x467, x462, x449);
+-    let mut x473: u64 = 0;
+     let (x473) = fiat_p384_cmovznz_u64(x467, x464, x451);
+     out1[0] = x468;
+     out1[1] = x469;
+@@ -876,700 +426,250 @@ pub const fn fiat_p384_square(
+     let x4: u64 = (arg1[4]);
+     let x5: u64 = (arg1[5]);
+     let x6: u64 = (arg1[0]);
+-    let mut x7: u64 = 0;
+-    let mut x8: u64 = 0;
+     let (x7, x8) = fiat_p384_mulx_u64(x6, (arg1[5]));
+-    let mut x9: u64 = 0;
+-    let mut x10: u64 = 0;
+     let (x9, x10) = fiat_p384_mulx_u64(x6, (arg1[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: u64 = 0;
+     let (x11, x12) = fiat_p384_mulx_u64(x6, (arg1[3]));
+-    let mut x13: u64 = 0;
+-    let mut x14: u64 = 0;
+     let (x13, x14) = fiat_p384_mulx_u64(x6, (arg1[2]));
+-    let mut x15: u64 = 0;
+-    let mut x16: u64 = 0;
+     let (x15, x16) = fiat_p384_mulx_u64(x6, (arg1[1]));
+-    let mut x17: u64 = 0;
+-    let mut x18: u64 = 0;
+     let (x17, x18) = fiat_p384_mulx_u64(x6, (arg1[0]));
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_addcarryx_u64(0x0, x18, x15);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_addcarryx_u64(x20, x16, x13);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_u1 = 0;
+     let (x23, x24) = fiat_p384_addcarryx_u64(x22, x14, x11);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_u1 = 0;
+     let (x25, x26) = fiat_p384_addcarryx_u64(x24, x12, x9);
+-    let mut x27: u64 = 0;
+-    let mut x28: fiat_p384_u1 = 0;
+     let (x27, x28) = fiat_p384_addcarryx_u64(x26, x10, x7);
+     let x29: u64 = ((x28 as u64) + x8);
+-    let mut x30: u64 = 0;
+-    let mut x31: u64 = 0;
+     let (x30, x31) = fiat_p384_mulx_u64(x17, 0x100000001);
+-    let mut x32: u64 = 0;
+-    let mut x33: u64 = 0;
+     let (x32, x33) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x34: u64 = 0;
+-    let mut x35: u64 = 0;
+     let (x34, x35) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x36: u64 = 0;
+-    let mut x37: u64 = 0;
+     let (x36, x37) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x38: u64 = 0;
+-    let mut x39: u64 = 0;
+     let (x38, x39) = fiat_p384_mulx_u64(x30, 0xfffffffffffffffe);
+-    let mut x40: u64 = 0;
+-    let mut x41: u64 = 0;
+     let (x40, x41) = fiat_p384_mulx_u64(x30, 0xffffffff00000000);
+-    let mut x42: u64 = 0;
+-    let mut x43: u64 = 0;
+     let (x42, x43) = fiat_p384_mulx_u64(x30, 0xffffffff);
+-    let mut x44: u64 = 0;
+-    let mut x45: fiat_p384_u1 = 0;
+     let (x44, x45) = fiat_p384_addcarryx_u64(0x0, x43, x40);
+-    let mut x46: u64 = 0;
+-    let mut x47: fiat_p384_u1 = 0;
+     let (x46, x47) = fiat_p384_addcarryx_u64(x45, x41, x38);
+-    let mut x48: u64 = 0;
+-    let mut x49: fiat_p384_u1 = 0;
+     let (x48, x49) = fiat_p384_addcarryx_u64(x47, x39, x36);
+-    let mut x50: u64 = 0;
+-    let mut x51: fiat_p384_u1 = 0;
+     let (x50, x51) = fiat_p384_addcarryx_u64(x49, x37, x34);
+-    let mut x52: u64 = 0;
+-    let mut x53: fiat_p384_u1 = 0;
+     let (x52, x53) = fiat_p384_addcarryx_u64(x51, x35, x32);
+     let x54: u64 = ((x53 as u64) + x33);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_addcarryx_u64(0x0, x17, x42);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_addcarryx_u64(x56, x19, x44);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_u1 = 0;
+     let (x59, x60) = fiat_p384_addcarryx_u64(x58, x21, x46);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_u1 = 0;
+     let (x61, x62) = fiat_p384_addcarryx_u64(x60, x23, x48);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_u1 = 0;
+     let (x63, x64) = fiat_p384_addcarryx_u64(x62, x25, x50);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_u1 = 0;
+     let (x65, x66) = fiat_p384_addcarryx_u64(x64, x27, x52);
+-    let mut x67: u64 = 0;
+-    let mut x68: fiat_p384_u1 = 0;
+     let (x67, x68) = fiat_p384_addcarryx_u64(x66, x29, x54);
+-    let mut x69: u64 = 0;
+-    let mut x70: u64 = 0;
+     let (x69, x70) = fiat_p384_mulx_u64(x1, (arg1[5]));
+-    let mut x71: u64 = 0;
+-    let mut x72: u64 = 0;
+     let (x71, x72) = fiat_p384_mulx_u64(x1, (arg1[4]));
+-    let mut x73: u64 = 0;
+-    let mut x74: u64 = 0;
+     let (x73, x74) = fiat_p384_mulx_u64(x1, (arg1[3]));
+-    let mut x75: u64 = 0;
+-    let mut x76: u64 = 0;
+     let (x75, x76) = fiat_p384_mulx_u64(x1, (arg1[2]));
+-    let mut x77: u64 = 0;
+-    let mut x78: u64 = 0;
+     let (x77, x78) = fiat_p384_mulx_u64(x1, (arg1[1]));
+-    let mut x79: u64 = 0;
+-    let mut x80: u64 = 0;
+     let (x79, x80) = fiat_p384_mulx_u64(x1, (arg1[0]));
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_u1 = 0;
+     let (x81, x82) = fiat_p384_addcarryx_u64(0x0, x80, x77);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_u1 = 0;
+     let (x83, x84) = fiat_p384_addcarryx_u64(x82, x78, x75);
+-    let mut x85: u64 = 0;
+-    let mut x86: fiat_p384_u1 = 0;
+     let (x85, x86) = fiat_p384_addcarryx_u64(x84, x76, x73);
+-    let mut x87: u64 = 0;
+-    let mut x88: fiat_p384_u1 = 0;
+     let (x87, x88) = fiat_p384_addcarryx_u64(x86, x74, x71);
+-    let mut x89: u64 = 0;
+-    let mut x90: fiat_p384_u1 = 0;
+     let (x89, x90) = fiat_p384_addcarryx_u64(x88, x72, x69);
+     let x91: u64 = ((x90 as u64) + x70);
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u64(0x0, x57, x79);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x59, x81);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_u1 = 0;
+     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x61, x83);
+-    let mut x98: u64 = 0;
+-    let mut x99: fiat_p384_u1 = 0;
+     let (x98, x99) = fiat_p384_addcarryx_u64(x97, x63, x85);
+-    let mut x100: u64 = 0;
+-    let mut x101: fiat_p384_u1 = 0;
+     let (x100, x101) = fiat_p384_addcarryx_u64(x99, x65, x87);
+-    let mut x102: u64 = 0;
+-    let mut x103: fiat_p384_u1 = 0;
+     let (x102, x103) = fiat_p384_addcarryx_u64(x101, x67, x89);
+-    let mut x104: u64 = 0;
+-    let mut x105: fiat_p384_u1 = 0;
+     let (x104, x105) = fiat_p384_addcarryx_u64(x103, (x68 as u64), x91);
+-    let mut x106: u64 = 0;
+-    let mut x107: u64 = 0;
+     let (x106, x107) = fiat_p384_mulx_u64(x92, 0x100000001);
+-    let mut x108: u64 = 0;
+-    let mut x109: u64 = 0;
+     let (x108, x109) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x110: u64 = 0;
+-    let mut x111: u64 = 0;
+     let (x110, x111) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x112: u64 = 0;
+-    let mut x113: u64 = 0;
+     let (x112, x113) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x114: u64 = 0;
+-    let mut x115: u64 = 0;
+     let (x114, x115) = fiat_p384_mulx_u64(x106, 0xfffffffffffffffe);
+-    let mut x116: u64 = 0;
+-    let mut x117: u64 = 0;
+     let (x116, x117) = fiat_p384_mulx_u64(x106, 0xffffffff00000000);
+-    let mut x118: u64 = 0;
+-    let mut x119: u64 = 0;
+     let (x118, x119) = fiat_p384_mulx_u64(x106, 0xffffffff);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_u1 = 0;
+     let (x120, x121) = fiat_p384_addcarryx_u64(0x0, x119, x116);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_u1 = 0;
+     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x117, x114);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_u1 = 0;
+     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x115, x112);
+-    let mut x126: u64 = 0;
+-    let mut x127: fiat_p384_u1 = 0;
+     let (x126, x127) = fiat_p384_addcarryx_u64(x125, x113, x110);
+-    let mut x128: u64 = 0;
+-    let mut x129: fiat_p384_u1 = 0;
+     let (x128, x129) = fiat_p384_addcarryx_u64(x127, x111, x108);
+     let x130: u64 = ((x129 as u64) + x109);
+-    let mut x131: u64 = 0;
+-    let mut x132: fiat_p384_u1 = 0;
+     let (x131, x132) = fiat_p384_addcarryx_u64(0x0, x92, x118);
+-    let mut x133: u64 = 0;
+-    let mut x134: fiat_p384_u1 = 0;
+     let (x133, x134) = fiat_p384_addcarryx_u64(x132, x94, x120);
+-    let mut x135: u64 = 0;
+-    let mut x136: fiat_p384_u1 = 0;
+     let (x135, x136) = fiat_p384_addcarryx_u64(x134, x96, x122);
+-    let mut x137: u64 = 0;
+-    let mut x138: fiat_p384_u1 = 0;
+     let (x137, x138) = fiat_p384_addcarryx_u64(x136, x98, x124);
+-    let mut x139: u64 = 0;
+-    let mut x140: fiat_p384_u1 = 0;
+     let (x139, x140) = fiat_p384_addcarryx_u64(x138, x100, x126);
+-    let mut x141: u64 = 0;
+-    let mut x142: fiat_p384_u1 = 0;
+     let (x141, x142) = fiat_p384_addcarryx_u64(x140, x102, x128);
+-    let mut x143: u64 = 0;
+-    let mut x144: fiat_p384_u1 = 0;
+     let (x143, x144) = fiat_p384_addcarryx_u64(x142, x104, x130);
+     let x145: u64 = ((x144 as u64) + (x105 as u64));
+-    let mut x146: u64 = 0;
+-    let mut x147: u64 = 0;
+     let (x146, x147) = fiat_p384_mulx_u64(x2, (arg1[5]));
+-    let mut x148: u64 = 0;
+-    let mut x149: u64 = 0;
+     let (x148, x149) = fiat_p384_mulx_u64(x2, (arg1[4]));
+-    let mut x150: u64 = 0;
+-    let mut x151: u64 = 0;
+     let (x150, x151) = fiat_p384_mulx_u64(x2, (arg1[3]));
+-    let mut x152: u64 = 0;
+-    let mut x153: u64 = 0;
+     let (x152, x153) = fiat_p384_mulx_u64(x2, (arg1[2]));
+-    let mut x154: u64 = 0;
+-    let mut x155: u64 = 0;
+     let (x154, x155) = fiat_p384_mulx_u64(x2, (arg1[1]));
+-    let mut x156: u64 = 0;
+-    let mut x157: u64 = 0;
+     let (x156, x157) = fiat_p384_mulx_u64(x2, (arg1[0]));
+-    let mut x158: u64 = 0;
+-    let mut x159: fiat_p384_u1 = 0;
+     let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x157, x154);
+-    let mut x160: u64 = 0;
+-    let mut x161: fiat_p384_u1 = 0;
+     let (x160, x161) = fiat_p384_addcarryx_u64(x159, x155, x152);
+-    let mut x162: u64 = 0;
+-    let mut x163: fiat_p384_u1 = 0;
+     let (x162, x163) = fiat_p384_addcarryx_u64(x161, x153, x150);
+-    let mut x164: u64 = 0;
+-    let mut x165: fiat_p384_u1 = 0;
+     let (x164, x165) = fiat_p384_addcarryx_u64(x163, x151, x148);
+-    let mut x166: u64 = 0;
+-    let mut x167: fiat_p384_u1 = 0;
+     let (x166, x167) = fiat_p384_addcarryx_u64(x165, x149, x146);
+     let x168: u64 = ((x167 as u64) + x147);
+-    let mut x169: u64 = 0;
+-    let mut x170: fiat_p384_u1 = 0;
+     let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x133, x156);
+-    let mut x171: u64 = 0;
+-    let mut x172: fiat_p384_u1 = 0;
+     let (x171, x172) = fiat_p384_addcarryx_u64(x170, x135, x158);
+-    let mut x173: u64 = 0;
+-    let mut x174: fiat_p384_u1 = 0;
+     let (x173, x174) = fiat_p384_addcarryx_u64(x172, x137, x160);
+-    let mut x175: u64 = 0;
+-    let mut x176: fiat_p384_u1 = 0;
+     let (x175, x176) = fiat_p384_addcarryx_u64(x174, x139, x162);
+-    let mut x177: u64 = 0;
+-    let mut x178: fiat_p384_u1 = 0;
+     let (x177, x178) = fiat_p384_addcarryx_u64(x176, x141, x164);
+-    let mut x179: u64 = 0;
+-    let mut x180: fiat_p384_u1 = 0;
+     let (x179, x180) = fiat_p384_addcarryx_u64(x178, x143, x166);
+-    let mut x181: u64 = 0;
+-    let mut x182: fiat_p384_u1 = 0;
+     let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x168);
+-    let mut x183: u64 = 0;
+-    let mut x184: u64 = 0;
+     let (x183, x184) = fiat_p384_mulx_u64(x169, 0x100000001);
+-    let mut x185: u64 = 0;
+-    let mut x186: u64 = 0;
+     let (x185, x186) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x187: u64 = 0;
+-    let mut x188: u64 = 0;
+     let (x187, x188) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x189: u64 = 0;
+-    let mut x190: u64 = 0;
+     let (x189, x190) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x191: u64 = 0;
+-    let mut x192: u64 = 0;
+     let (x191, x192) = fiat_p384_mulx_u64(x183, 0xfffffffffffffffe);
+-    let mut x193: u64 = 0;
+-    let mut x194: u64 = 0;
+     let (x193, x194) = fiat_p384_mulx_u64(x183, 0xffffffff00000000);
+-    let mut x195: u64 = 0;
+-    let mut x196: u64 = 0;
+     let (x195, x196) = fiat_p384_mulx_u64(x183, 0xffffffff);
+-    let mut x197: u64 = 0;
+-    let mut x198: fiat_p384_u1 = 0;
+     let (x197, x198) = fiat_p384_addcarryx_u64(0x0, x196, x193);
+-    let mut x199: u64 = 0;
+-    let mut x200: fiat_p384_u1 = 0;
+     let (x199, x200) = fiat_p384_addcarryx_u64(x198, x194, x191);
+-    let mut x201: u64 = 0;
+-    let mut x202: fiat_p384_u1 = 0;
+     let (x201, x202) = fiat_p384_addcarryx_u64(x200, x192, x189);
+-    let mut x203: u64 = 0;
+-    let mut x204: fiat_p384_u1 = 0;
+     let (x203, x204) = fiat_p384_addcarryx_u64(x202, x190, x187);
+-    let mut x205: u64 = 0;
+-    let mut x206: fiat_p384_u1 = 0;
+     let (x205, x206) = fiat_p384_addcarryx_u64(x204, x188, x185);
+     let x207: u64 = ((x206 as u64) + x186);
+-    let mut x208: u64 = 0;
+-    let mut x209: fiat_p384_u1 = 0;
+     let (x208, x209) = fiat_p384_addcarryx_u64(0x0, x169, x195);
+-    let mut x210: u64 = 0;
+-    let mut x211: fiat_p384_u1 = 0;
+     let (x210, x211) = fiat_p384_addcarryx_u64(x209, x171, x197);
+-    let mut x212: u64 = 0;
+-    let mut x213: fiat_p384_u1 = 0;
+     let (x212, x213) = fiat_p384_addcarryx_u64(x211, x173, x199);
+-    let mut x214: u64 = 0;
+-    let mut x215: fiat_p384_u1 = 0;
+     let (x214, x215) = fiat_p384_addcarryx_u64(x213, x175, x201);
+-    let mut x216: u64 = 0;
+-    let mut x217: fiat_p384_u1 = 0;
+     let (x216, x217) = fiat_p384_addcarryx_u64(x215, x177, x203);
+-    let mut x218: u64 = 0;
+-    let mut x219: fiat_p384_u1 = 0;
+     let (x218, x219) = fiat_p384_addcarryx_u64(x217, x179, x205);
+-    let mut x220: u64 = 0;
+-    let mut x221: fiat_p384_u1 = 0;
+     let (x220, x221) = fiat_p384_addcarryx_u64(x219, x181, x207);
+     let x222: u64 = ((x221 as u64) + (x182 as u64));
+-    let mut x223: u64 = 0;
+-    let mut x224: u64 = 0;
+     let (x223, x224) = fiat_p384_mulx_u64(x3, (arg1[5]));
+-    let mut x225: u64 = 0;
+-    let mut x226: u64 = 0;
+     let (x225, x226) = fiat_p384_mulx_u64(x3, (arg1[4]));
+-    let mut x227: u64 = 0;
+-    let mut x228: u64 = 0;
+     let (x227, x228) = fiat_p384_mulx_u64(x3, (arg1[3]));
+-    let mut x229: u64 = 0;
+-    let mut x230: u64 = 0;
+     let (x229, x230) = fiat_p384_mulx_u64(x3, (arg1[2]));
+-    let mut x231: u64 = 0;
+-    let mut x232: u64 = 0;
+     let (x231, x232) = fiat_p384_mulx_u64(x3, (arg1[1]));
+-    let mut x233: u64 = 0;
+-    let mut x234: u64 = 0;
+     let (x233, x234) = fiat_p384_mulx_u64(x3, (arg1[0]));
+-    let mut x235: u64 = 0;
+-    let mut x236: fiat_p384_u1 = 0;
+     let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
+-    let mut x237: u64 = 0;
+-    let mut x238: fiat_p384_u1 = 0;
+     let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
+-    let mut x239: u64 = 0;
+-    let mut x240: fiat_p384_u1 = 0;
+     let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
+-    let mut x241: u64 = 0;
+-    let mut x242: fiat_p384_u1 = 0;
+     let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
+-    let mut x243: u64 = 0;
+-    let mut x244: fiat_p384_u1 = 0;
+     let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
+     let x245: u64 = ((x244 as u64) + x224);
+-    let mut x246: u64 = 0;
+-    let mut x247: fiat_p384_u1 = 0;
+     let (x246, x247) = fiat_p384_addcarryx_u64(0x0, x210, x233);
+-    let mut x248: u64 = 0;
+-    let mut x249: fiat_p384_u1 = 0;
+     let (x248, x249) = fiat_p384_addcarryx_u64(x247, x212, x235);
+-    let mut x250: u64 = 0;
+-    let mut x251: fiat_p384_u1 = 0;
+     let (x250, x251) = fiat_p384_addcarryx_u64(x249, x214, x237);
+-    let mut x252: u64 = 0;
+-    let mut x253: fiat_p384_u1 = 0;
+     let (x252, x253) = fiat_p384_addcarryx_u64(x251, x216, x239);
+-    let mut x254: u64 = 0;
+-    let mut x255: fiat_p384_u1 = 0;
+     let (x254, x255) = fiat_p384_addcarryx_u64(x253, x218, x241);
+-    let mut x256: u64 = 0;
+-    let mut x257: fiat_p384_u1 = 0;
+     let (x256, x257) = fiat_p384_addcarryx_u64(x255, x220, x243);
+-    let mut x258: u64 = 0;
+-    let mut x259: fiat_p384_u1 = 0;
+     let (x258, x259) = fiat_p384_addcarryx_u64(x257, x222, x245);
+-    let mut x260: u64 = 0;
+-    let mut x261: u64 = 0;
+     let (x260, x261) = fiat_p384_mulx_u64(x246, 0x100000001);
+-    let mut x262: u64 = 0;
+-    let mut x263: u64 = 0;
+     let (x262, x263) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x264: u64 = 0;
+-    let mut x265: u64 = 0;
+     let (x264, x265) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x266: u64 = 0;
+-    let mut x267: u64 = 0;
+     let (x266, x267) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x268: u64 = 0;
+-    let mut x269: u64 = 0;
+     let (x268, x269) = fiat_p384_mulx_u64(x260, 0xfffffffffffffffe);
+-    let mut x270: u64 = 0;
+-    let mut x271: u64 = 0;
+     let (x270, x271) = fiat_p384_mulx_u64(x260, 0xffffffff00000000);
+-    let mut x272: u64 = 0;
+-    let mut x273: u64 = 0;
+     let (x272, x273) = fiat_p384_mulx_u64(x260, 0xffffffff);
+-    let mut x274: u64 = 0;
+-    let mut x275: fiat_p384_u1 = 0;
+     let (x274, x275) = fiat_p384_addcarryx_u64(0x0, x273, x270);
+-    let mut x276: u64 = 0;
+-    let mut x277: fiat_p384_u1 = 0;
+     let (x276, x277) = fiat_p384_addcarryx_u64(x275, x271, x268);
+-    let mut x278: u64 = 0;
+-    let mut x279: fiat_p384_u1 = 0;
+     let (x278, x279) = fiat_p384_addcarryx_u64(x277, x269, x266);
+-    let mut x280: u64 = 0;
+-    let mut x281: fiat_p384_u1 = 0;
+     let (x280, x281) = fiat_p384_addcarryx_u64(x279, x267, x264);
+-    let mut x282: u64 = 0;
+-    let mut x283: fiat_p384_u1 = 0;
+     let (x282, x283) = fiat_p384_addcarryx_u64(x281, x265, x262);
+     let x284: u64 = ((x283 as u64) + x263);
+-    let mut x285: u64 = 0;
+-    let mut x286: fiat_p384_u1 = 0;
+     let (x285, x286) = fiat_p384_addcarryx_u64(0x0, x246, x272);
+-    let mut x287: u64 = 0;
+-    let mut x288: fiat_p384_u1 = 0;
+     let (x287, x288) = fiat_p384_addcarryx_u64(x286, x248, x274);
+-    let mut x289: u64 = 0;
+-    let mut x290: fiat_p384_u1 = 0;
+     let (x289, x290) = fiat_p384_addcarryx_u64(x288, x250, x276);
+-    let mut x291: u64 = 0;
+-    let mut x292: fiat_p384_u1 = 0;
+     let (x291, x292) = fiat_p384_addcarryx_u64(x290, x252, x278);
+-    let mut x293: u64 = 0;
+-    let mut x294: fiat_p384_u1 = 0;
+     let (x293, x294) = fiat_p384_addcarryx_u64(x292, x254, x280);
+-    let mut x295: u64 = 0;
+-    let mut x296: fiat_p384_u1 = 0;
+     let (x295, x296) = fiat_p384_addcarryx_u64(x294, x256, x282);
+-    let mut x297: u64 = 0;
+-    let mut x298: fiat_p384_u1 = 0;
+     let (x297, x298) = fiat_p384_addcarryx_u64(x296, x258, x284);
+     let x299: u64 = ((x298 as u64) + (x259 as u64));
+-    let mut x300: u64 = 0;
+-    let mut x301: u64 = 0;
+     let (x300, x301) = fiat_p384_mulx_u64(x4, (arg1[5]));
+-    let mut x302: u64 = 0;
+-    let mut x303: u64 = 0;
+     let (x302, x303) = fiat_p384_mulx_u64(x4, (arg1[4]));
+-    let mut x304: u64 = 0;
+-    let mut x305: u64 = 0;
+     let (x304, x305) = fiat_p384_mulx_u64(x4, (arg1[3]));
+-    let mut x306: u64 = 0;
+-    let mut x307: u64 = 0;
+     let (x306, x307) = fiat_p384_mulx_u64(x4, (arg1[2]));
+-    let mut x308: u64 = 0;
+-    let mut x309: u64 = 0;
+     let (x308, x309) = fiat_p384_mulx_u64(x4, (arg1[1]));
+-    let mut x310: u64 = 0;
+-    let mut x311: u64 = 0;
+     let (x310, x311) = fiat_p384_mulx_u64(x4, (arg1[0]));
+-    let mut x312: u64 = 0;
+-    let mut x313: fiat_p384_u1 = 0;
+     let (x312, x313) = fiat_p384_addcarryx_u64(0x0, x311, x308);
+-    let mut x314: u64 = 0;
+-    let mut x315: fiat_p384_u1 = 0;
+     let (x314, x315) = fiat_p384_addcarryx_u64(x313, x309, x306);
+-    let mut x316: u64 = 0;
+-    let mut x317: fiat_p384_u1 = 0;
+     let (x316, x317) = fiat_p384_addcarryx_u64(x315, x307, x304);
+-    let mut x318: u64 = 0;
+-    let mut x319: fiat_p384_u1 = 0;
+     let (x318, x319) = fiat_p384_addcarryx_u64(x317, x305, x302);
+-    let mut x320: u64 = 0;
+-    let mut x321: fiat_p384_u1 = 0;
+     let (x320, x321) = fiat_p384_addcarryx_u64(x319, x303, x300);
+     let x322: u64 = ((x321 as u64) + x301);
+-    let mut x323: u64 = 0;
+-    let mut x324: fiat_p384_u1 = 0;
+     let (x323, x324) = fiat_p384_addcarryx_u64(0x0, x287, x310);
+-    let mut x325: u64 = 0;
+-    let mut x326: fiat_p384_u1 = 0;
+     let (x325, x326) = fiat_p384_addcarryx_u64(x324, x289, x312);
+-    let mut x327: u64 = 0;
+-    let mut x328: fiat_p384_u1 = 0;
+     let (x327, x328) = fiat_p384_addcarryx_u64(x326, x291, x314);
+-    let mut x329: u64 = 0;
+-    let mut x330: fiat_p384_u1 = 0;
+     let (x329, x330) = fiat_p384_addcarryx_u64(x328, x293, x316);
+-    let mut x331: u64 = 0;
+-    let mut x332: fiat_p384_u1 = 0;
+     let (x331, x332) = fiat_p384_addcarryx_u64(x330, x295, x318);
+-    let mut x333: u64 = 0;
+-    let mut x334: fiat_p384_u1 = 0;
+     let (x333, x334) = fiat_p384_addcarryx_u64(x332, x297, x320);
+-    let mut x335: u64 = 0;
+-    let mut x336: fiat_p384_u1 = 0;
+     let (x335, x336) = fiat_p384_addcarryx_u64(x334, x299, x322);
+-    let mut x337: u64 = 0;
+-    let mut x338: u64 = 0;
+     let (x337, x338) = fiat_p384_mulx_u64(x323, 0x100000001);
+-    let mut x339: u64 = 0;
+-    let mut x340: u64 = 0;
+     let (x339, x340) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x341: u64 = 0;
+-    let mut x342: u64 = 0;
+     let (x341, x342) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x343: u64 = 0;
+-    let mut x344: u64 = 0;
+     let (x343, x344) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x345: u64 = 0;
+-    let mut x346: u64 = 0;
+     let (x345, x346) = fiat_p384_mulx_u64(x337, 0xfffffffffffffffe);
+-    let mut x347: u64 = 0;
+-    let mut x348: u64 = 0;
+     let (x347, x348) = fiat_p384_mulx_u64(x337, 0xffffffff00000000);
+-    let mut x349: u64 = 0;
+-    let mut x350: u64 = 0;
+     let (x349, x350) = fiat_p384_mulx_u64(x337, 0xffffffff);
+-    let mut x351: u64 = 0;
+-    let mut x352: fiat_p384_u1 = 0;
+     let (x351, x352) = fiat_p384_addcarryx_u64(0x0, x350, x347);
+-    let mut x353: u64 = 0;
+-    let mut x354: fiat_p384_u1 = 0;
+     let (x353, x354) = fiat_p384_addcarryx_u64(x352, x348, x345);
+-    let mut x355: u64 = 0;
+-    let mut x356: fiat_p384_u1 = 0;
+     let (x355, x356) = fiat_p384_addcarryx_u64(x354, x346, x343);
+-    let mut x357: u64 = 0;
+-    let mut x358: fiat_p384_u1 = 0;
+     let (x357, x358) = fiat_p384_addcarryx_u64(x356, x344, x341);
+-    let mut x359: u64 = 0;
+-    let mut x360: fiat_p384_u1 = 0;
+     let (x359, x360) = fiat_p384_addcarryx_u64(x358, x342, x339);
+     let x361: u64 = ((x360 as u64) + x340);
+-    let mut x362: u64 = 0;
+-    let mut x363: fiat_p384_u1 = 0;
+     let (x362, x363) = fiat_p384_addcarryx_u64(0x0, x323, x349);
+-    let mut x364: u64 = 0;
+-    let mut x365: fiat_p384_u1 = 0;
+     let (x364, x365) = fiat_p384_addcarryx_u64(x363, x325, x351);
+-    let mut x366: u64 = 0;
+-    let mut x367: fiat_p384_u1 = 0;
+     let (x366, x367) = fiat_p384_addcarryx_u64(x365, x327, x353);
+-    let mut x368: u64 = 0;
+-    let mut x369: fiat_p384_u1 = 0;
+     let (x368, x369) = fiat_p384_addcarryx_u64(x367, x329, x355);
+-    let mut x370: u64 = 0;
+-    let mut x371: fiat_p384_u1 = 0;
+     let (x370, x371) = fiat_p384_addcarryx_u64(x369, x331, x357);
+-    let mut x372: u64 = 0;
+-    let mut x373: fiat_p384_u1 = 0;
+     let (x372, x373) = fiat_p384_addcarryx_u64(x371, x333, x359);
+-    let mut x374: u64 = 0;
+-    let mut x375: fiat_p384_u1 = 0;
+     let (x374, x375) = fiat_p384_addcarryx_u64(x373, x335, x361);
+     let x376: u64 = ((x375 as u64) + (x336 as u64));
+-    let mut x377: u64 = 0;
+-    let mut x378: u64 = 0;
+     let (x377, x378) = fiat_p384_mulx_u64(x5, (arg1[5]));
+-    let mut x379: u64 = 0;
+-    let mut x380: u64 = 0;
+     let (x379, x380) = fiat_p384_mulx_u64(x5, (arg1[4]));
+-    let mut x381: u64 = 0;
+-    let mut x382: u64 = 0;
+     let (x381, x382) = fiat_p384_mulx_u64(x5, (arg1[3]));
+-    let mut x383: u64 = 0;
+-    let mut x384: u64 = 0;
+     let (x383, x384) = fiat_p384_mulx_u64(x5, (arg1[2]));
+-    let mut x385: u64 = 0;
+-    let mut x386: u64 = 0;
+     let (x385, x386) = fiat_p384_mulx_u64(x5, (arg1[1]));
+-    let mut x387: u64 = 0;
+-    let mut x388: u64 = 0;
+     let (x387, x388) = fiat_p384_mulx_u64(x5, (arg1[0]));
+-    let mut x389: u64 = 0;
+-    let mut x390: fiat_p384_u1 = 0;
+     let (x389, x390) = fiat_p384_addcarryx_u64(0x0, x388, x385);
+-    let mut x391: u64 = 0;
+-    let mut x392: fiat_p384_u1 = 0;
+     let (x391, x392) = fiat_p384_addcarryx_u64(x390, x386, x383);
+-    let mut x393: u64 = 0;
+-    let mut x394: fiat_p384_u1 = 0;
+     let (x393, x394) = fiat_p384_addcarryx_u64(x392, x384, x381);
+-    let mut x395: u64 = 0;
+-    let mut x396: fiat_p384_u1 = 0;
+     let (x395, x396) = fiat_p384_addcarryx_u64(x394, x382, x379);
+-    let mut x397: u64 = 0;
+-    let mut x398: fiat_p384_u1 = 0;
+     let (x397, x398) = fiat_p384_addcarryx_u64(x396, x380, x377);
+     let x399: u64 = ((x398 as u64) + x378);
+-    let mut x400: u64 = 0;
+-    let mut x401: fiat_p384_u1 = 0;
+     let (x400, x401) = fiat_p384_addcarryx_u64(0x0, x364, x387);
+-    let mut x402: u64 = 0;
+-    let mut x403: fiat_p384_u1 = 0;
+     let (x402, x403) = fiat_p384_addcarryx_u64(x401, x366, x389);
+-    let mut x404: u64 = 0;
+-    let mut x405: fiat_p384_u1 = 0;
+     let (x404, x405) = fiat_p384_addcarryx_u64(x403, x368, x391);
+-    let mut x406: u64 = 0;
+-    let mut x407: fiat_p384_u1 = 0;
+     let (x406, x407) = fiat_p384_addcarryx_u64(x405, x370, x393);
+-    let mut x408: u64 = 0;
+-    let mut x409: fiat_p384_u1 = 0;
+     let (x408, x409) = fiat_p384_addcarryx_u64(x407, x372, x395);
+-    let mut x410: u64 = 0;
+-    let mut x411: fiat_p384_u1 = 0;
+     let (x410, x411) = fiat_p384_addcarryx_u64(x409, x374, x397);
+-    let mut x412: u64 = 0;
+-    let mut x413: fiat_p384_u1 = 0;
+     let (x412, x413) = fiat_p384_addcarryx_u64(x411, x376, x399);
+-    let mut x414: u64 = 0;
+-    let mut x415: u64 = 0;
+     let (x414, x415) = fiat_p384_mulx_u64(x400, 0x100000001);
+-    let mut x416: u64 = 0;
+-    let mut x417: u64 = 0;
+     let (x416, x417) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x418: u64 = 0;
+-    let mut x419: u64 = 0;
+     let (x418, x419) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x420: u64 = 0;
+-    let mut x421: u64 = 0;
+     let (x420, x421) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x422: u64 = 0;
+-    let mut x423: u64 = 0;
+     let (x422, x423) = fiat_p384_mulx_u64(x414, 0xfffffffffffffffe);
+-    let mut x424: u64 = 0;
+-    let mut x425: u64 = 0;
+     let (x424, x425) = fiat_p384_mulx_u64(x414, 0xffffffff00000000);
+-    let mut x426: u64 = 0;
+-    let mut x427: u64 = 0;
+     let (x426, x427) = fiat_p384_mulx_u64(x414, 0xffffffff);
+-    let mut x428: u64 = 0;
+-    let mut x429: fiat_p384_u1 = 0;
+     let (x428, x429) = fiat_p384_addcarryx_u64(0x0, x427, x424);
+-    let mut x430: u64 = 0;
+-    let mut x431: fiat_p384_u1 = 0;
+     let (x430, x431) = fiat_p384_addcarryx_u64(x429, x425, x422);
+-    let mut x432: u64 = 0;
+-    let mut x433: fiat_p384_u1 = 0;
+     let (x432, x433) = fiat_p384_addcarryx_u64(x431, x423, x420);
+-    let mut x434: u64 = 0;
+-    let mut x435: fiat_p384_u1 = 0;
+     let (x434, x435) = fiat_p384_addcarryx_u64(x433, x421, x418);
+-    let mut x436: u64 = 0;
+-    let mut x437: fiat_p384_u1 = 0;
+     let (x436, x437) = fiat_p384_addcarryx_u64(x435, x419, x416);
+     let x438: u64 = ((x437 as u64) + x417);
+-    let mut x439: u64 = 0;
+-    let mut x440: fiat_p384_u1 = 0;
+     let (x439, x440) = fiat_p384_addcarryx_u64(0x0, x400, x426);
+-    let mut x441: u64 = 0;
+-    let mut x442: fiat_p384_u1 = 0;
+     let (x441, x442) = fiat_p384_addcarryx_u64(x440, x402, x428);
+-    let mut x443: u64 = 0;
+-    let mut x444: fiat_p384_u1 = 0;
+     let (x443, x444) = fiat_p384_addcarryx_u64(x442, x404, x430);
+-    let mut x445: u64 = 0;
+-    let mut x446: fiat_p384_u1 = 0;
+     let (x445, x446) = fiat_p384_addcarryx_u64(x444, x406, x432);
+-    let mut x447: u64 = 0;
+-    let mut x448: fiat_p384_u1 = 0;
+     let (x447, x448) = fiat_p384_addcarryx_u64(x446, x408, x434);
+-    let mut x449: u64 = 0;
+-    let mut x450: fiat_p384_u1 = 0;
+     let (x449, x450) = fiat_p384_addcarryx_u64(x448, x410, x436);
+-    let mut x451: u64 = 0;
+-    let mut x452: fiat_p384_u1 = 0;
+     let (x451, x452) = fiat_p384_addcarryx_u64(x450, x412, x438);
+     let x453: u64 = ((x452 as u64) + (x413 as u64));
+-    let mut x454: u64 = 0;
+-    let mut x455: fiat_p384_u1 = 0;
+     let (x454, x455) = fiat_p384_subborrowx_u64(0x0, x441, 0xffffffff);
+-    let mut x456: u64 = 0;
+-    let mut x457: fiat_p384_u1 = 0;
+     let (x456, x457) = fiat_p384_subborrowx_u64(x455, x443, 0xffffffff00000000);
+-    let mut x458: u64 = 0;
+-    let mut x459: fiat_p384_u1 = 0;
+     let (x458, x459) = fiat_p384_subborrowx_u64(x457, x445, 0xfffffffffffffffe);
+-    let mut x460: u64 = 0;
+-    let mut x461: fiat_p384_u1 = 0;
+     let (x460, x461) = fiat_p384_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+-    let mut x462: u64 = 0;
+-    let mut x463: fiat_p384_u1 = 0;
+     let (x462, x463) = fiat_p384_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+-    let mut x464: u64 = 0;
+-    let mut x465: fiat_p384_u1 = 0;
+     let (x464, x465) = fiat_p384_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+-    let mut x466: u64 = 0;
+-    let mut x467: fiat_p384_u1 = 0;
+     let (x466, x467) = fiat_p384_subborrowx_u64(x465, x453, (0x0 as u64));
+-    let mut x468: u64 = 0;
+     let (x468) = fiat_p384_cmovznz_u64(x467, x454, x441);
+-    let mut x469: u64 = 0;
+     let (x469) = fiat_p384_cmovznz_u64(x467, x456, x443);
+-    let mut x470: u64 = 0;
+     let (x470) = fiat_p384_cmovznz_u64(x467, x458, x445);
+-    let mut x471: u64 = 0;
+     let (x471) = fiat_p384_cmovznz_u64(x467, x460, x447);
+-    let mut x472: u64 = 0;
+     let (x472) = fiat_p384_cmovznz_u64(x467, x462, x449);
+-    let mut x473: u64 = 0;
+     let (x473) = fiat_p384_cmovznz_u64(x467, x464, x451);
+     out1[0] = x468;
+     out1[1] = x469;
+@@ -1594,56 +694,24 @@ pub const fn fiat_p384_add(
+     arg2: &fiat_p384_montgomery_domain_field_element,
+ ) -> fiat_p384_montgomery_domain_field_element {
+     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u64 = 0;
+-    let mut x4: fiat_p384_u1 = 0;
+     let (x3, x4) = fiat_p384_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u64 = 0;
+-    let mut x6: fiat_p384_u1 = 0;
+     let (x5, x6) = fiat_p384_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u64 = 0;
+-    let mut x8: fiat_p384_u1 = 0;
+     let (x7, x8) = fiat_p384_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u64 = 0;
+-    let mut x10: fiat_p384_u1 = 0;
+     let (x9, x10) = fiat_p384_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: fiat_p384_u1 = 0;
+     let (x11, x12) = fiat_p384_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u64 = 0;
+-    let mut x14: fiat_p384_u1 = 0;
+     let (x13, x14) = fiat_p384_subborrowx_u64(0x0, x1, 0xffffffff);
+-    let mut x15: u64 = 0;
+-    let mut x16: fiat_p384_u1 = 0;
+     let (x15, x16) = fiat_p384_subborrowx_u64(x14, x3, 0xffffffff00000000);
+-    let mut x17: u64 = 0;
+-    let mut x18: fiat_p384_u1 = 0;
+     let (x17, x18) = fiat_p384_subborrowx_u64(x16, x5, 0xfffffffffffffffe);
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_subborrowx_u64(x18, x7, 0xffffffffffffffff);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_subborrowx_u64(x20, x9, 0xffffffffffffffff);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_u1 = 0;
+     let (x23, x24) = fiat_p384_subborrowx_u64(x22, x11, 0xffffffffffffffff);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_u1 = 0;
+     let (x25, x26) = fiat_p384_subborrowx_u64(x24, (x12 as u64), (0x0 as u64));
+-    let mut x27: u64 = 0;
+     let (x27) = fiat_p384_cmovznz_u64(x26, x13, x1);
+-    let mut x28: u64 = 0;
+     let (x28) = fiat_p384_cmovznz_u64(x26, x15, x3);
+-    let mut x29: u64 = 0;
+     let (x29) = fiat_p384_cmovznz_u64(x26, x17, x5);
+-    let mut x30: u64 = 0;
+     let (x30) = fiat_p384_cmovznz_u64(x26, x19, x7);
+-    let mut x31: u64 = 0;
+     let (x31) = fiat_p384_cmovznz_u64(x26, x21, x9);
+-    let mut x32: u64 = 0;
+     let (x32) = fiat_p384_cmovznz_u64(x26, x23, x11);
+     out1[0] = x27;
+     out1[1] = x28;
+@@ -1668,43 +736,18 @@ pub const fn fiat_p384_sub(
+     arg2: &fiat_p384_montgomery_domain_field_element,
+ ) -> fiat_p384_montgomery_domain_field_element {
+     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u64 = 0;
+-    let mut x4: fiat_p384_u1 = 0;
+     let (x3, x4) = fiat_p384_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u64 = 0;
+-    let mut x6: fiat_p384_u1 = 0;
+     let (x5, x6) = fiat_p384_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u64 = 0;
+-    let mut x8: fiat_p384_u1 = 0;
+     let (x7, x8) = fiat_p384_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u64 = 0;
+-    let mut x10: fiat_p384_u1 = 0;
+     let (x9, x10) = fiat_p384_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: fiat_p384_u1 = 0;
+     let (x11, x12) = fiat_p384_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u64 = 0;
+     let (x13) = fiat_p384_cmovznz_u64(x12, (0x0 as u64), 0xffffffffffffffff);
+-    let mut x14: u64 = 0;
+-    let mut x15: fiat_p384_u1 = 0;
+     let (x14, x15) = fiat_p384_addcarryx_u64(0x0, x1, (x13 & 0xffffffff));
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_u1 = 0;
+     let (x16, x17) = fiat_p384_addcarryx_u64(x15, x3, (x13 & 0xffffffff00000000));
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_u1 = 0;
+     let (x18, x19) = fiat_p384_addcarryx_u64(x17, x5, (x13 & 0xfffffffffffffffe));
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_u1 = 0;
+     let (x20, x21) = fiat_p384_addcarryx_u64(x19, x7, x13);
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_u1 = 0;
+     let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x13);
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_u1 = 0;
+     let (x24, x25) = fiat_p384_addcarryx_u64(x23, x11, x13);
+     out1[0] = x14;
+     out1[1] = x16;
+@@ -1727,43 +770,18 @@ pub const fn fiat_p384_opp(
+     arg1: &fiat_p384_montgomery_domain_field_element,
+ ) -> fiat_p384_montgomery_domain_field_element {
+     let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_subborrowx_u64(0x0, (0x0 as u64), (arg1[0]));
+-    let mut x3: u64 = 0;
+-    let mut x4: fiat_p384_u1 = 0;
+     let (x3, x4) = fiat_p384_subborrowx_u64(x2, (0x0 as u64), (arg1[1]));
+-    let mut x5: u64 = 0;
+-    let mut x6: fiat_p384_u1 = 0;
+     let (x5, x6) = fiat_p384_subborrowx_u64(x4, (0x0 as u64), (arg1[2]));
+-    let mut x7: u64 = 0;
+-    let mut x8: fiat_p384_u1 = 0;
+     let (x7, x8) = fiat_p384_subborrowx_u64(x6, (0x0 as u64), (arg1[3]));
+-    let mut x9: u64 = 0;
+-    let mut x10: fiat_p384_u1 = 0;
+     let (x9, x10) = fiat_p384_subborrowx_u64(x8, (0x0 as u64), (arg1[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: fiat_p384_u1 = 0;
+     let (x11, x12) = fiat_p384_subborrowx_u64(x10, (0x0 as u64), (arg1[5]));
+-    let mut x13: u64 = 0;
+     let (x13) = fiat_p384_cmovznz_u64(x12, (0x0 as u64), 0xffffffffffffffff);
+-    let mut x14: u64 = 0;
+-    let mut x15: fiat_p384_u1 = 0;
+     let (x14, x15) = fiat_p384_addcarryx_u64(0x0, x1, (x13 & 0xffffffff));
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_u1 = 0;
+     let (x16, x17) = fiat_p384_addcarryx_u64(x15, x3, (x13 & 0xffffffff00000000));
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_u1 = 0;
+     let (x18, x19) = fiat_p384_addcarryx_u64(x17, x5, (x13 & 0xfffffffffffffffe));
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_u1 = 0;
+     let (x20, x21) = fiat_p384_addcarryx_u64(x19, x7, x13);
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_u1 = 0;
+     let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x13);
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_u1 = 0;
+     let (x24, x25) = fiat_p384_addcarryx_u64(x23, x11, x13);
+     out1[0] = x14;
+     out1[1] = x16;
+@@ -1787,484 +805,176 @@ pub const fn fiat_p384_from_montgomery(
+ ) -> fiat_p384_non_montgomery_domain_field_element {
+     let mut out1: fiat_p384_non_montgomery_domain_field_element = [0; 6];
+     let x1: u64 = (arg1[0]);
+-    let mut x2: u64 = 0;
+-    let mut x3: u64 = 0;
+     let (x2, x3) = fiat_p384_mulx_u64(x1, 0x100000001);
+-    let mut x4: u64 = 0;
+-    let mut x5: u64 = 0;
+     let (x4, x5) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
+-    let mut x6: u64 = 0;
+-    let mut x7: u64 = 0;
+     let (x6, x7) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
+-    let mut x8: u64 = 0;
+-    let mut x9: u64 = 0;
+     let (x8, x9) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
+-    let mut x10: u64 = 0;
+-    let mut x11: u64 = 0;
+     let (x10, x11) = fiat_p384_mulx_u64(x2, 0xfffffffffffffffe);
+-    let mut x12: u64 = 0;
+-    let mut x13: u64 = 0;
+     let (x12, x13) = fiat_p384_mulx_u64(x2, 0xffffffff00000000);
+-    let mut x14: u64 = 0;
+-    let mut x15: u64 = 0;
+     let (x14, x15) = fiat_p384_mulx_u64(x2, 0xffffffff);
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_u1 = 0;
+     let (x16, x17) = fiat_p384_addcarryx_u64(0x0, x15, x12);
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_u1 = 0;
+     let (x18, x19) = fiat_p384_addcarryx_u64(x17, x13, x10);
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_u1 = 0;
+     let (x20, x21) = fiat_p384_addcarryx_u64(x19, x11, x8);
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_u1 = 0;
+     let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x6);
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_u1 = 0;
+     let (x24, x25) = fiat_p384_addcarryx_u64(x23, x7, x4);
+-    let mut x26: u64 = 0;
+-    let mut x27: fiat_p384_u1 = 0;
+     let (x26, x27) = fiat_p384_addcarryx_u64(0x0, x1, x14);
+-    let mut x28: u64 = 0;
+-    let mut x29: fiat_p384_u1 = 0;
+     let (x28, x29) = fiat_p384_addcarryx_u64(x27, (0x0 as u64), x16);
+-    let mut x30: u64 = 0;
+-    let mut x31: fiat_p384_u1 = 0;
+     let (x30, x31) = fiat_p384_addcarryx_u64(x29, (0x0 as u64), x18);
+-    let mut x32: u64 = 0;
+-    let mut x33: fiat_p384_u1 = 0;
+     let (x32, x33) = fiat_p384_addcarryx_u64(x31, (0x0 as u64), x20);
+-    let mut x34: u64 = 0;
+-    let mut x35: fiat_p384_u1 = 0;
+     let (x34, x35) = fiat_p384_addcarryx_u64(x33, (0x0 as u64), x22);
+-    let mut x36: u64 = 0;
+-    let mut x37: fiat_p384_u1 = 0;
+     let (x36, x37) = fiat_p384_addcarryx_u64(x35, (0x0 as u64), x24);
+-    let mut x38: u64 = 0;
+-    let mut x39: fiat_p384_u1 = 0;
+     let (x38, x39) = fiat_p384_addcarryx_u64(x37, (0x0 as u64), ((x25 as u64) + x5));
+-    let mut x40: u64 = 0;
+-    let mut x41: fiat_p384_u1 = 0;
+     let (x40, x41) = fiat_p384_addcarryx_u64(0x0, x28, (arg1[1]));
+-    let mut x42: u64 = 0;
+-    let mut x43: fiat_p384_u1 = 0;
+     let (x42, x43) = fiat_p384_addcarryx_u64(x41, x30, (0x0 as u64));
+-    let mut x44: u64 = 0;
+-    let mut x45: fiat_p384_u1 = 0;
+     let (x44, x45) = fiat_p384_addcarryx_u64(x43, x32, (0x0 as u64));
+-    let mut x46: u64 = 0;
+-    let mut x47: fiat_p384_u1 = 0;
+     let (x46, x47) = fiat_p384_addcarryx_u64(x45, x34, (0x0 as u64));
+-    let mut x48: u64 = 0;
+-    let mut x49: fiat_p384_u1 = 0;
+     let (x48, x49) = fiat_p384_addcarryx_u64(x47, x36, (0x0 as u64));
+-    let mut x50: u64 = 0;
+-    let mut x51: fiat_p384_u1 = 0;
+     let (x50, x51) = fiat_p384_addcarryx_u64(x49, x38, (0x0 as u64));
+-    let mut x52: u64 = 0;
+-    let mut x53: u64 = 0;
+     let (x52, x53) = fiat_p384_mulx_u64(x40, 0x100000001);
+-    let mut x54: u64 = 0;
+-    let mut x55: u64 = 0;
+     let (x54, x55) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
+-    let mut x56: u64 = 0;
+-    let mut x57: u64 = 0;
+     let (x56, x57) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
+-    let mut x58: u64 = 0;
+-    let mut x59: u64 = 0;
+     let (x58, x59) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
+-    let mut x60: u64 = 0;
+-    let mut x61: u64 = 0;
+     let (x60, x61) = fiat_p384_mulx_u64(x52, 0xfffffffffffffffe);
+-    let mut x62: u64 = 0;
+-    let mut x63: u64 = 0;
+     let (x62, x63) = fiat_p384_mulx_u64(x52, 0xffffffff00000000);
+-    let mut x64: u64 = 0;
+-    let mut x65: u64 = 0;
+     let (x64, x65) = fiat_p384_mulx_u64(x52, 0xffffffff);
+-    let mut x66: u64 = 0;
+-    let mut x67: fiat_p384_u1 = 0;
+     let (x66, x67) = fiat_p384_addcarryx_u64(0x0, x65, x62);
+-    let mut x68: u64 = 0;
+-    let mut x69: fiat_p384_u1 = 0;
+     let (x68, x69) = fiat_p384_addcarryx_u64(x67, x63, x60);
+-    let mut x70: u64 = 0;
+-    let mut x71: fiat_p384_u1 = 0;
+     let (x70, x71) = fiat_p384_addcarryx_u64(x69, x61, x58);
+-    let mut x72: u64 = 0;
+-    let mut x73: fiat_p384_u1 = 0;
+     let (x72, x73) = fiat_p384_addcarryx_u64(x71, x59, x56);
+-    let mut x74: u64 = 0;
+-    let mut x75: fiat_p384_u1 = 0;
+     let (x74, x75) = fiat_p384_addcarryx_u64(x73, x57, x54);
+-    let mut x76: u64 = 0;
+-    let mut x77: fiat_p384_u1 = 0;
+     let (x76, x77) = fiat_p384_addcarryx_u64(0x0, x40, x64);
+-    let mut x78: u64 = 0;
+-    let mut x79: fiat_p384_u1 = 0;
+     let (x78, x79) = fiat_p384_addcarryx_u64(x77, x42, x66);
+-    let mut x80: u64 = 0;
+-    let mut x81: fiat_p384_u1 = 0;
+     let (x80, x81) = fiat_p384_addcarryx_u64(x79, x44, x68);
+-    let mut x82: u64 = 0;
+-    let mut x83: fiat_p384_u1 = 0;
+     let (x82, x83) = fiat_p384_addcarryx_u64(x81, x46, x70);
+-    let mut x84: u64 = 0;
+-    let mut x85: fiat_p384_u1 = 0;
+     let (x84, x85) = fiat_p384_addcarryx_u64(x83, x48, x72);
+-    let mut x86: u64 = 0;
+-    let mut x87: fiat_p384_u1 = 0;
+     let (x86, x87) = fiat_p384_addcarryx_u64(x85, x50, x74);
+-    let mut x88: u64 = 0;
+-    let mut x89: fiat_p384_u1 = 0;
+     let (x88, x89) =
+         fiat_p384_addcarryx_u64(x87, ((x51 as u64) + (x39 as u64)), ((x75 as u64) + x55));
+-    let mut x90: u64 = 0;
+-    let mut x91: fiat_p384_u1 = 0;
+     let (x90, x91) = fiat_p384_addcarryx_u64(0x0, x78, (arg1[2]));
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u64(x91, x80, (0x0 as u64));
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x82, (0x0 as u64));
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_u1 = 0;
+     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x84, (0x0 as u64));
+-    let mut x98: u64 = 0;
+-    let mut x99: fiat_p384_u1 = 0;
+     let (x98, x99) = fiat_p384_addcarryx_u64(x97, x86, (0x0 as u64));
+-    let mut x100: u64 = 0;
+-    let mut x101: fiat_p384_u1 = 0;
+     let (x100, x101) = fiat_p384_addcarryx_u64(x99, x88, (0x0 as u64));
+-    let mut x102: u64 = 0;
+-    let mut x103: u64 = 0;
+     let (x102, x103) = fiat_p384_mulx_u64(x90, 0x100000001);
+-    let mut x104: u64 = 0;
+-    let mut x105: u64 = 0;
+     let (x104, x105) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
+-    let mut x106: u64 = 0;
+-    let mut x107: u64 = 0;
+     let (x106, x107) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
+-    let mut x108: u64 = 0;
+-    let mut x109: u64 = 0;
+     let (x108, x109) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
+-    let mut x110: u64 = 0;
+-    let mut x111: u64 = 0;
+     let (x110, x111) = fiat_p384_mulx_u64(x102, 0xfffffffffffffffe);
+-    let mut x112: u64 = 0;
+-    let mut x113: u64 = 0;
+     let (x112, x113) = fiat_p384_mulx_u64(x102, 0xffffffff00000000);
+-    let mut x114: u64 = 0;
+-    let mut x115: u64 = 0;
+     let (x114, x115) = fiat_p384_mulx_u64(x102, 0xffffffff);
+-    let mut x116: u64 = 0;
+-    let mut x117: fiat_p384_u1 = 0;
+     let (x116, x117) = fiat_p384_addcarryx_u64(0x0, x115, x112);
+-    let mut x118: u64 = 0;
+-    let mut x119: fiat_p384_u1 = 0;
+     let (x118, x119) = fiat_p384_addcarryx_u64(x117, x113, x110);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_u1 = 0;
+     let (x120, x121) = fiat_p384_addcarryx_u64(x119, x111, x108);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_u1 = 0;
+     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x109, x106);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_u1 = 0;
+     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x107, x104);
+-    let mut x126: u64 = 0;
+-    let mut x127: fiat_p384_u1 = 0;
+     let (x126, x127) = fiat_p384_addcarryx_u64(0x0, x90, x114);
+-    let mut x128: u64 = 0;
+-    let mut x129: fiat_p384_u1 = 0;
+     let (x128, x129) = fiat_p384_addcarryx_u64(x127, x92, x116);
+-    let mut x130: u64 = 0;
+-    let mut x131: fiat_p384_u1 = 0;
+     let (x130, x131) = fiat_p384_addcarryx_u64(x129, x94, x118);
+-    let mut x132: u64 = 0;
+-    let mut x133: fiat_p384_u1 = 0;
+     let (x132, x133) = fiat_p384_addcarryx_u64(x131, x96, x120);
+-    let mut x134: u64 = 0;
+-    let mut x135: fiat_p384_u1 = 0;
+     let (x134, x135) = fiat_p384_addcarryx_u64(x133, x98, x122);
+-    let mut x136: u64 = 0;
+-    let mut x137: fiat_p384_u1 = 0;
+     let (x136, x137) = fiat_p384_addcarryx_u64(x135, x100, x124);
+-    let mut x138: u64 = 0;
+-    let mut x139: fiat_p384_u1 = 0;
+     let (x138, x139) =
+         fiat_p384_addcarryx_u64(x137, ((x101 as u64) + (x89 as u64)), ((x125 as u64) + x105));
+-    let mut x140: u64 = 0;
+-    let mut x141: fiat_p384_u1 = 0;
+     let (x140, x141) = fiat_p384_addcarryx_u64(0x0, x128, (arg1[3]));
+-    let mut x142: u64 = 0;
+-    let mut x143: fiat_p384_u1 = 0;
+     let (x142, x143) = fiat_p384_addcarryx_u64(x141, x130, (0x0 as u64));
+-    let mut x144: u64 = 0;
+-    let mut x145: fiat_p384_u1 = 0;
+     let (x144, x145) = fiat_p384_addcarryx_u64(x143, x132, (0x0 as u64));
+-    let mut x146: u64 = 0;
+-    let mut x147: fiat_p384_u1 = 0;
+     let (x146, x147) = fiat_p384_addcarryx_u64(x145, x134, (0x0 as u64));
+-    let mut x148: u64 = 0;
+-    let mut x149: fiat_p384_u1 = 0;
+     let (x148, x149) = fiat_p384_addcarryx_u64(x147, x136, (0x0 as u64));
+-    let mut x150: u64 = 0;
+-    let mut x151: fiat_p384_u1 = 0;
+     let (x150, x151) = fiat_p384_addcarryx_u64(x149, x138, (0x0 as u64));
+-    let mut x152: u64 = 0;
+-    let mut x153: u64 = 0;
+     let (x152, x153) = fiat_p384_mulx_u64(x140, 0x100000001);
+-    let mut x154: u64 = 0;
+-    let mut x155: u64 = 0;
+     let (x154, x155) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
+-    let mut x156: u64 = 0;
+-    let mut x157: u64 = 0;
+     let (x156, x157) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
+-    let mut x158: u64 = 0;
+-    let mut x159: u64 = 0;
+     let (x158, x159) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
+-    let mut x160: u64 = 0;
+-    let mut x161: u64 = 0;
+     let (x160, x161) = fiat_p384_mulx_u64(x152, 0xfffffffffffffffe);
+-    let mut x162: u64 = 0;
+-    let mut x163: u64 = 0;
+     let (x162, x163) = fiat_p384_mulx_u64(x152, 0xffffffff00000000);
+-    let mut x164: u64 = 0;
+-    let mut x165: u64 = 0;
+     let (x164, x165) = fiat_p384_mulx_u64(x152, 0xffffffff);
+-    let mut x166: u64 = 0;
+-    let mut x167: fiat_p384_u1 = 0;
+     let (x166, x167) = fiat_p384_addcarryx_u64(0x0, x165, x162);
+-    let mut x168: u64 = 0;
+-    let mut x169: fiat_p384_u1 = 0;
+     let (x168, x169) = fiat_p384_addcarryx_u64(x167, x163, x160);
+-    let mut x170: u64 = 0;
+-    let mut x171: fiat_p384_u1 = 0;
+     let (x170, x171) = fiat_p384_addcarryx_u64(x169, x161, x158);
+-    let mut x172: u64 = 0;
+-    let mut x173: fiat_p384_u1 = 0;
+     let (x172, x173) = fiat_p384_addcarryx_u64(x171, x159, x156);
+-    let mut x174: u64 = 0;
+-    let mut x175: fiat_p384_u1 = 0;
+     let (x174, x175) = fiat_p384_addcarryx_u64(x173, x157, x154);
+-    let mut x176: u64 = 0;
+-    let mut x177: fiat_p384_u1 = 0;
+     let (x176, x177) = fiat_p384_addcarryx_u64(0x0, x140, x164);
+-    let mut x178: u64 = 0;
+-    let mut x179: fiat_p384_u1 = 0;
+     let (x178, x179) = fiat_p384_addcarryx_u64(x177, x142, x166);
+-    let mut x180: u64 = 0;
+-    let mut x181: fiat_p384_u1 = 0;
+     let (x180, x181) = fiat_p384_addcarryx_u64(x179, x144, x168);
+-    let mut x182: u64 = 0;
+-    let mut x183: fiat_p384_u1 = 0;
+     let (x182, x183) = fiat_p384_addcarryx_u64(x181, x146, x170);
+-    let mut x184: u64 = 0;
+-    let mut x185: fiat_p384_u1 = 0;
+     let (x184, x185) = fiat_p384_addcarryx_u64(x183, x148, x172);
+-    let mut x186: u64 = 0;
+-    let mut x187: fiat_p384_u1 = 0;
+     let (x186, x187) = fiat_p384_addcarryx_u64(x185, x150, x174);
+-    let mut x188: u64 = 0;
+-    let mut x189: fiat_p384_u1 = 0;
+     let (x188, x189) = fiat_p384_addcarryx_u64(
+         x187,
+         ((x151 as u64) + (x139 as u64)),
+         ((x175 as u64) + x155),
+     );
+-    let mut x190: u64 = 0;
+-    let mut x191: fiat_p384_u1 = 0;
+     let (x190, x191) = fiat_p384_addcarryx_u64(0x0, x178, (arg1[4]));
+-    let mut x192: u64 = 0;
+-    let mut x193: fiat_p384_u1 = 0;
+     let (x192, x193) = fiat_p384_addcarryx_u64(x191, x180, (0x0 as u64));
+-    let mut x194: u64 = 0;
+-    let mut x195: fiat_p384_u1 = 0;
+     let (x194, x195) = fiat_p384_addcarryx_u64(x193, x182, (0x0 as u64));
+-    let mut x196: u64 = 0;
+-    let mut x197: fiat_p384_u1 = 0;
+     let (x196, x197) = fiat_p384_addcarryx_u64(x195, x184, (0x0 as u64));
+-    let mut x198: u64 = 0;
+-    let mut x199: fiat_p384_u1 = 0;
+     let (x198, x199) = fiat_p384_addcarryx_u64(x197, x186, (0x0 as u64));
+-    let mut x200: u64 = 0;
+-    let mut x201: fiat_p384_u1 = 0;
+     let (x200, x201) = fiat_p384_addcarryx_u64(x199, x188, (0x0 as u64));
+-    let mut x202: u64 = 0;
+-    let mut x203: u64 = 0;
+     let (x202, x203) = fiat_p384_mulx_u64(x190, 0x100000001);
+-    let mut x204: u64 = 0;
+-    let mut x205: u64 = 0;
+     let (x204, x205) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
+-    let mut x206: u64 = 0;
+-    let mut x207: u64 = 0;
+     let (x206, x207) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
+-    let mut x208: u64 = 0;
+-    let mut x209: u64 = 0;
+     let (x208, x209) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
+-    let mut x210: u64 = 0;
+-    let mut x211: u64 = 0;
+     let (x210, x211) = fiat_p384_mulx_u64(x202, 0xfffffffffffffffe);
+-    let mut x212: u64 = 0;
+-    let mut x213: u64 = 0;
+     let (x212, x213) = fiat_p384_mulx_u64(x202, 0xffffffff00000000);
+-    let mut x214: u64 = 0;
+-    let mut x215: u64 = 0;
+     let (x214, x215) = fiat_p384_mulx_u64(x202, 0xffffffff);
+-    let mut x216: u64 = 0;
+-    let mut x217: fiat_p384_u1 = 0;
+     let (x216, x217) = fiat_p384_addcarryx_u64(0x0, x215, x212);
+-    let mut x218: u64 = 0;
+-    let mut x219: fiat_p384_u1 = 0;
+     let (x218, x219) = fiat_p384_addcarryx_u64(x217, x213, x210);
+-    let mut x220: u64 = 0;
+-    let mut x221: fiat_p384_u1 = 0;
+     let (x220, x221) = fiat_p384_addcarryx_u64(x219, x211, x208);
+-    let mut x222: u64 = 0;
+-    let mut x223: fiat_p384_u1 = 0;
+     let (x222, x223) = fiat_p384_addcarryx_u64(x221, x209, x206);
+-    let mut x224: u64 = 0;
+-    let mut x225: fiat_p384_u1 = 0;
+     let (x224, x225) = fiat_p384_addcarryx_u64(x223, x207, x204);
+-    let mut x226: u64 = 0;
+-    let mut x227: fiat_p384_u1 = 0;
+     let (x226, x227) = fiat_p384_addcarryx_u64(0x0, x190, x214);
+-    let mut x228: u64 = 0;
+-    let mut x229: fiat_p384_u1 = 0;
+     let (x228, x229) = fiat_p384_addcarryx_u64(x227, x192, x216);
+-    let mut x230: u64 = 0;
+-    let mut x231: fiat_p384_u1 = 0;
+     let (x230, x231) = fiat_p384_addcarryx_u64(x229, x194, x218);
+-    let mut x232: u64 = 0;
+-    let mut x233: fiat_p384_u1 = 0;
+     let (x232, x233) = fiat_p384_addcarryx_u64(x231, x196, x220);
+-    let mut x234: u64 = 0;
+-    let mut x235: fiat_p384_u1 = 0;
+     let (x234, x235) = fiat_p384_addcarryx_u64(x233, x198, x222);
+-    let mut x236: u64 = 0;
+-    let mut x237: fiat_p384_u1 = 0;
+     let (x236, x237) = fiat_p384_addcarryx_u64(x235, x200, x224);
+-    let mut x238: u64 = 0;
+-    let mut x239: fiat_p384_u1 = 0;
+     let (x238, x239) = fiat_p384_addcarryx_u64(
+         x237,
+         ((x201 as u64) + (x189 as u64)),
+         ((x225 as u64) + x205),
+     );
+-    let mut x240: u64 = 0;
+-    let mut x241: fiat_p384_u1 = 0;
+     let (x240, x241) = fiat_p384_addcarryx_u64(0x0, x228, (arg1[5]));
+-    let mut x242: u64 = 0;
+-    let mut x243: fiat_p384_u1 = 0;
+     let (x242, x243) = fiat_p384_addcarryx_u64(x241, x230, (0x0 as u64));
+-    let mut x244: u64 = 0;
+-    let mut x245: fiat_p384_u1 = 0;
+     let (x244, x245) = fiat_p384_addcarryx_u64(x243, x232, (0x0 as u64));
+-    let mut x246: u64 = 0;
+-    let mut x247: fiat_p384_u1 = 0;
+     let (x246, x247) = fiat_p384_addcarryx_u64(x245, x234, (0x0 as u64));
+-    let mut x248: u64 = 0;
+-    let mut x249: fiat_p384_u1 = 0;
+     let (x248, x249) = fiat_p384_addcarryx_u64(x247, x236, (0x0 as u64));
+-    let mut x250: u64 = 0;
+-    let mut x251: fiat_p384_u1 = 0;
+     let (x250, x251) = fiat_p384_addcarryx_u64(x249, x238, (0x0 as u64));
+-    let mut x252: u64 = 0;
+-    let mut x253: u64 = 0;
+     let (x252, x253) = fiat_p384_mulx_u64(x240, 0x100000001);
+-    let mut x254: u64 = 0;
+-    let mut x255: u64 = 0;
+     let (x254, x255) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
+-    let mut x256: u64 = 0;
+-    let mut x257: u64 = 0;
+     let (x256, x257) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
+-    let mut x258: u64 = 0;
+-    let mut x259: u64 = 0;
+     let (x258, x259) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
+-    let mut x260: u64 = 0;
+-    let mut x261: u64 = 0;
+     let (x260, x261) = fiat_p384_mulx_u64(x252, 0xfffffffffffffffe);
+-    let mut x262: u64 = 0;
+-    let mut x263: u64 = 0;
+     let (x262, x263) = fiat_p384_mulx_u64(x252, 0xffffffff00000000);
+-    let mut x264: u64 = 0;
+-    let mut x265: u64 = 0;
+     let (x264, x265) = fiat_p384_mulx_u64(x252, 0xffffffff);
+-    let mut x266: u64 = 0;
+-    let mut x267: fiat_p384_u1 = 0;
+     let (x266, x267) = fiat_p384_addcarryx_u64(0x0, x265, x262);
+-    let mut x268: u64 = 0;
+-    let mut x269: fiat_p384_u1 = 0;
+     let (x268, x269) = fiat_p384_addcarryx_u64(x267, x263, x260);
+-    let mut x270: u64 = 0;
+-    let mut x271: fiat_p384_u1 = 0;
+     let (x270, x271) = fiat_p384_addcarryx_u64(x269, x261, x258);
+-    let mut x272: u64 = 0;
+-    let mut x273: fiat_p384_u1 = 0;
+     let (x272, x273) = fiat_p384_addcarryx_u64(x271, x259, x256);
+-    let mut x274: u64 = 0;
+-    let mut x275: fiat_p384_u1 = 0;
+     let (x274, x275) = fiat_p384_addcarryx_u64(x273, x257, x254);
+-    let mut x276: u64 = 0;
+-    let mut x277: fiat_p384_u1 = 0;
+     let (x276, x277) = fiat_p384_addcarryx_u64(0x0, x240, x264);
+-    let mut x278: u64 = 0;
+-    let mut x279: fiat_p384_u1 = 0;
+     let (x278, x279) = fiat_p384_addcarryx_u64(x277, x242, x266);
+-    let mut x280: u64 = 0;
+-    let mut x281: fiat_p384_u1 = 0;
+     let (x280, x281) = fiat_p384_addcarryx_u64(x279, x244, x268);
+-    let mut x282: u64 = 0;
+-    let mut x283: fiat_p384_u1 = 0;
+     let (x282, x283) = fiat_p384_addcarryx_u64(x281, x246, x270);
+-    let mut x284: u64 = 0;
+-    let mut x285: fiat_p384_u1 = 0;
+     let (x284, x285) = fiat_p384_addcarryx_u64(x283, x248, x272);
+-    let mut x286: u64 = 0;
+-    let mut x287: fiat_p384_u1 = 0;
+     let (x286, x287) = fiat_p384_addcarryx_u64(x285, x250, x274);
+-    let mut x288: u64 = 0;
+-    let mut x289: fiat_p384_u1 = 0;
+     let (x288, x289) = fiat_p384_addcarryx_u64(
+         x287,
+         ((x251 as u64) + (x239 as u64)),
+         ((x275 as u64) + x255),
+     );
+-    let mut x290: u64 = 0;
+-    let mut x291: fiat_p384_u1 = 0;
+     let (x290, x291) = fiat_p384_subborrowx_u64(0x0, x278, 0xffffffff);
+-    let mut x292: u64 = 0;
+-    let mut x293: fiat_p384_u1 = 0;
+     let (x292, x293) = fiat_p384_subborrowx_u64(x291, x280, 0xffffffff00000000);
+-    let mut x294: u64 = 0;
+-    let mut x295: fiat_p384_u1 = 0;
+     let (x294, x295) = fiat_p384_subborrowx_u64(x293, x282, 0xfffffffffffffffe);
+-    let mut x296: u64 = 0;
+-    let mut x297: fiat_p384_u1 = 0;
+     let (x296, x297) = fiat_p384_subborrowx_u64(x295, x284, 0xffffffffffffffff);
+-    let mut x298: u64 = 0;
+-    let mut x299: fiat_p384_u1 = 0;
+     let (x298, x299) = fiat_p384_subborrowx_u64(x297, x286, 0xffffffffffffffff);
+-    let mut x300: u64 = 0;
+-    let mut x301: fiat_p384_u1 = 0;
+     let (x300, x301) = fiat_p384_subborrowx_u64(x299, x288, 0xffffffffffffffff);
+-    let mut x302: u64 = 0;
+-    let mut x303: fiat_p384_u1 = 0;
+     let (x302, x303) = fiat_p384_subborrowx_u64(x301, (x289 as u64), (0x0 as u64));
+-    let mut x304: u64 = 0;
+     let (x304) = fiat_p384_cmovznz_u64(x303, x290, x278);
+-    let mut x305: u64 = 0;
+     let (x305) = fiat_p384_cmovznz_u64(x303, x292, x280);
+-    let mut x306: u64 = 0;
+     let (x306) = fiat_p384_cmovznz_u64(x303, x294, x282);
+-    let mut x307: u64 = 0;
+     let (x307) = fiat_p384_cmovznz_u64(x303, x296, x284);
+-    let mut x308: u64 = 0;
+     let (x308) = fiat_p384_cmovznz_u64(x303, x298, x286);
+-    let mut x309: u64 = 0;
+     let (x309) = fiat_p384_cmovznz_u64(x303, x300, x288);
+     out1[0] = x304;
+     out1[1] = x305;
+@@ -2293,631 +1003,227 @@ pub const fn fiat_p384_to_montgomery(
+     let x4: u64 = (arg1[4]);
+     let x5: u64 = (arg1[5]);
+     let x6: u64 = (arg1[0]);
+-    let mut x7: u64 = 0;
+-    let mut x8: u64 = 0;
+     let (x7, x8) = fiat_p384_mulx_u64(x6, 0x200000000);
+-    let mut x9: u64 = 0;
+-    let mut x10: u64 = 0;
+     let (x9, x10) = fiat_p384_mulx_u64(x6, 0xfffffffe00000000);
+-    let mut x11: u64 = 0;
+-    let mut x12: u64 = 0;
+     let (x11, x12) = fiat_p384_mulx_u64(x6, 0x200000000);
+-    let mut x13: u64 = 0;
+-    let mut x14: u64 = 0;
+     let (x13, x14) = fiat_p384_mulx_u64(x6, 0xfffffffe00000001);
+-    let mut x15: u64 = 0;
+-    let mut x16: fiat_p384_u1 = 0;
+     let (x15, x16) = fiat_p384_addcarryx_u64(0x0, x14, x11);
+-    let mut x17: u64 = 0;
+-    let mut x18: fiat_p384_u1 = 0;
+     let (x17, x18) = fiat_p384_addcarryx_u64(x16, x12, x9);
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_u1 = 0;
+     let (x19, x20) = fiat_p384_addcarryx_u64(x18, x10, x7);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_u1 = 0;
+     let (x21, x22) = fiat_p384_addcarryx_u64(x20, x8, x6);
+-    let mut x23: u64 = 0;
+-    let mut x24: u64 = 0;
+     let (x23, x24) = fiat_p384_mulx_u64(x13, 0x100000001);
+-    let mut x25: u64 = 0;
+-    let mut x26: u64 = 0;
+     let (x25, x26) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
+-    let mut x27: u64 = 0;
+-    let mut x28: u64 = 0;
+     let (x27, x28) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
+-    let mut x29: u64 = 0;
+-    let mut x30: u64 = 0;
+     let (x29, x30) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
+-    let mut x31: u64 = 0;
+-    let mut x32: u64 = 0;
+     let (x31, x32) = fiat_p384_mulx_u64(x23, 0xfffffffffffffffe);
+-    let mut x33: u64 = 0;
+-    let mut x34: u64 = 0;
+     let (x33, x34) = fiat_p384_mulx_u64(x23, 0xffffffff00000000);
+-    let mut x35: u64 = 0;
+-    let mut x36: u64 = 0;
+     let (x35, x36) = fiat_p384_mulx_u64(x23, 0xffffffff);
+-    let mut x37: u64 = 0;
+-    let mut x38: fiat_p384_u1 = 0;
+     let (x37, x38) = fiat_p384_addcarryx_u64(0x0, x36, x33);
+-    let mut x39: u64 = 0;
+-    let mut x40: fiat_p384_u1 = 0;
+     let (x39, x40) = fiat_p384_addcarryx_u64(x38, x34, x31);
+-    let mut x41: u64 = 0;
+-    let mut x42: fiat_p384_u1 = 0;
+     let (x41, x42) = fiat_p384_addcarryx_u64(x40, x32, x29);
+-    let mut x43: u64 = 0;
+-    let mut x44: fiat_p384_u1 = 0;
+     let (x43, x44) = fiat_p384_addcarryx_u64(x42, x30, x27);
+-    let mut x45: u64 = 0;
+-    let mut x46: fiat_p384_u1 = 0;
+     let (x45, x46) = fiat_p384_addcarryx_u64(x44, x28, x25);
+-    let mut x47: u64 = 0;
+-    let mut x48: fiat_p384_u1 = 0;
+     let (x47, x48) = fiat_p384_addcarryx_u64(0x0, x13, x35);
+-    let mut x49: u64 = 0;
+-    let mut x50: fiat_p384_u1 = 0;
+     let (x49, x50) = fiat_p384_addcarryx_u64(x48, x15, x37);
+-    let mut x51: u64 = 0;
+-    let mut x52: fiat_p384_u1 = 0;
+     let (x51, x52) = fiat_p384_addcarryx_u64(x50, x17, x39);
+-    let mut x53: u64 = 0;
+-    let mut x54: fiat_p384_u1 = 0;
+     let (x53, x54) = fiat_p384_addcarryx_u64(x52, x19, x41);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_addcarryx_u64(x54, x21, x43);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_addcarryx_u64(x56, (x22 as u64), x45);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_u1 = 0;
+     let (x59, x60) = fiat_p384_addcarryx_u64(x58, (0x0 as u64), ((x46 as u64) + x26));
+-    let mut x61: u64 = 0;
+-    let mut x62: u64 = 0;
+     let (x61, x62) = fiat_p384_mulx_u64(x1, 0x200000000);
+-    let mut x63: u64 = 0;
+-    let mut x64: u64 = 0;
+     let (x63, x64) = fiat_p384_mulx_u64(x1, 0xfffffffe00000000);
+-    let mut x65: u64 = 0;
+-    let mut x66: u64 = 0;
+     let (x65, x66) = fiat_p384_mulx_u64(x1, 0x200000000);
+-    let mut x67: u64 = 0;
+-    let mut x68: u64 = 0;
+     let (x67, x68) = fiat_p384_mulx_u64(x1, 0xfffffffe00000001);
+-    let mut x69: u64 = 0;
+-    let mut x70: fiat_p384_u1 = 0;
+     let (x69, x70) = fiat_p384_addcarryx_u64(0x0, x68, x65);
+-    let mut x71: u64 = 0;
+-    let mut x72: fiat_p384_u1 = 0;
+     let (x71, x72) = fiat_p384_addcarryx_u64(x70, x66, x63);
+-    let mut x73: u64 = 0;
+-    let mut x74: fiat_p384_u1 = 0;
+     let (x73, x74) = fiat_p384_addcarryx_u64(x72, x64, x61);
+-    let mut x75: u64 = 0;
+-    let mut x76: fiat_p384_u1 = 0;
+     let (x75, x76) = fiat_p384_addcarryx_u64(x74, x62, x1);
+-    let mut x77: u64 = 0;
+-    let mut x78: fiat_p384_u1 = 0;
+     let (x77, x78) = fiat_p384_addcarryx_u64(0x0, x49, x67);
+-    let mut x79: u64 = 0;
+-    let mut x80: fiat_p384_u1 = 0;
+     let (x79, x80) = fiat_p384_addcarryx_u64(x78, x51, x69);
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_u1 = 0;
+     let (x81, x82) = fiat_p384_addcarryx_u64(x80, x53, x71);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_u1 = 0;
+     let (x83, x84) = fiat_p384_addcarryx_u64(x82, x55, x73);
+-    let mut x85: u64 = 0;
+-    let mut x86: fiat_p384_u1 = 0;
+     let (x85, x86) = fiat_p384_addcarryx_u64(x84, x57, x75);
+-    let mut x87: u64 = 0;
+-    let mut x88: fiat_p384_u1 = 0;
+     let (x87, x88) = fiat_p384_addcarryx_u64(x86, x59, (x76 as u64));
+-    let mut x89: u64 = 0;
+-    let mut x90: u64 = 0;
+     let (x89, x90) = fiat_p384_mulx_u64(x77, 0x100000001);
+-    let mut x91: u64 = 0;
+-    let mut x92: u64 = 0;
+     let (x91, x92) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
+-    let mut x93: u64 = 0;
+-    let mut x94: u64 = 0;
+     let (x93, x94) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
+-    let mut x95: u64 = 0;
+-    let mut x96: u64 = 0;
+     let (x95, x96) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
+-    let mut x97: u64 = 0;
+-    let mut x98: u64 = 0;
+     let (x97, x98) = fiat_p384_mulx_u64(x89, 0xfffffffffffffffe);
+-    let mut x99: u64 = 0;
+-    let mut x100: u64 = 0;
+     let (x99, x100) = fiat_p384_mulx_u64(x89, 0xffffffff00000000);
+-    let mut x101: u64 = 0;
+-    let mut x102: u64 = 0;
+     let (x101, x102) = fiat_p384_mulx_u64(x89, 0xffffffff);
+-    let mut x103: u64 = 0;
+-    let mut x104: fiat_p384_u1 = 0;
+     let (x103, x104) = fiat_p384_addcarryx_u64(0x0, x102, x99);
+-    let mut x105: u64 = 0;
+-    let mut x106: fiat_p384_u1 = 0;
+     let (x105, x106) = fiat_p384_addcarryx_u64(x104, x100, x97);
+-    let mut x107: u64 = 0;
+-    let mut x108: fiat_p384_u1 = 0;
+     let (x107, x108) = fiat_p384_addcarryx_u64(x106, x98, x95);
+-    let mut x109: u64 = 0;
+-    let mut x110: fiat_p384_u1 = 0;
+     let (x109, x110) = fiat_p384_addcarryx_u64(x108, x96, x93);
+-    let mut x111: u64 = 0;
+-    let mut x112: fiat_p384_u1 = 0;
+     let (x111, x112) = fiat_p384_addcarryx_u64(x110, x94, x91);
+-    let mut x113: u64 = 0;
+-    let mut x114: fiat_p384_u1 = 0;
+     let (x113, x114) = fiat_p384_addcarryx_u64(0x0, x77, x101);
+-    let mut x115: u64 = 0;
+-    let mut x116: fiat_p384_u1 = 0;
+     let (x115, x116) = fiat_p384_addcarryx_u64(x114, x79, x103);
+-    let mut x117: u64 = 0;
+-    let mut x118: fiat_p384_u1 = 0;
+     let (x117, x118) = fiat_p384_addcarryx_u64(x116, x81, x105);
+-    let mut x119: u64 = 0;
+-    let mut x120: fiat_p384_u1 = 0;
+     let (x119, x120) = fiat_p384_addcarryx_u64(x118, x83, x107);
+-    let mut x121: u64 = 0;
+-    let mut x122: fiat_p384_u1 = 0;
+     let (x121, x122) = fiat_p384_addcarryx_u64(x120, x85, x109);
+-    let mut x123: u64 = 0;
+-    let mut x124: fiat_p384_u1 = 0;
+     let (x123, x124) = fiat_p384_addcarryx_u64(x122, x87, x111);
+-    let mut x125: u64 = 0;
+-    let mut x126: fiat_p384_u1 = 0;
+     let (x125, x126) =
+         fiat_p384_addcarryx_u64(x124, ((x88 as u64) + (x60 as u64)), ((x112 as u64) + x92));
+-    let mut x127: u64 = 0;
+-    let mut x128: u64 = 0;
+     let (x127, x128) = fiat_p384_mulx_u64(x2, 0x200000000);
+-    let mut x129: u64 = 0;
+-    let mut x130: u64 = 0;
+     let (x129, x130) = fiat_p384_mulx_u64(x2, 0xfffffffe00000000);
+-    let mut x131: u64 = 0;
+-    let mut x132: u64 = 0;
+     let (x131, x132) = fiat_p384_mulx_u64(x2, 0x200000000);
+-    let mut x133: u64 = 0;
+-    let mut x134: u64 = 0;
+     let (x133, x134) = fiat_p384_mulx_u64(x2, 0xfffffffe00000001);
+-    let mut x135: u64 = 0;
+-    let mut x136: fiat_p384_u1 = 0;
+     let (x135, x136) = fiat_p384_addcarryx_u64(0x0, x134, x131);
+-    let mut x137: u64 = 0;
+-    let mut x138: fiat_p384_u1 = 0;
+     let (x137, x138) = fiat_p384_addcarryx_u64(x136, x132, x129);
+-    let mut x139: u64 = 0;
+-    let mut x140: fiat_p384_u1 = 0;
+     let (x139, x140) = fiat_p384_addcarryx_u64(x138, x130, x127);
+-    let mut x141: u64 = 0;
+-    let mut x142: fiat_p384_u1 = 0;
+     let (x141, x142) = fiat_p384_addcarryx_u64(x140, x128, x2);
+-    let mut x143: u64 = 0;
+-    let mut x144: fiat_p384_u1 = 0;
+     let (x143, x144) = fiat_p384_addcarryx_u64(0x0, x115, x133);
+-    let mut x145: u64 = 0;
+-    let mut x146: fiat_p384_u1 = 0;
+     let (x145, x146) = fiat_p384_addcarryx_u64(x144, x117, x135);
+-    let mut x147: u64 = 0;
+-    let mut x148: fiat_p384_u1 = 0;
+     let (x147, x148) = fiat_p384_addcarryx_u64(x146, x119, x137);
+-    let mut x149: u64 = 0;
+-    let mut x150: fiat_p384_u1 = 0;
+     let (x149, x150) = fiat_p384_addcarryx_u64(x148, x121, x139);
+-    let mut x151: u64 = 0;
+-    let mut x152: fiat_p384_u1 = 0;
+     let (x151, x152) = fiat_p384_addcarryx_u64(x150, x123, x141);
+-    let mut x153: u64 = 0;
+-    let mut x154: fiat_p384_u1 = 0;
+     let (x153, x154) = fiat_p384_addcarryx_u64(x152, x125, (x142 as u64));
+-    let mut x155: u64 = 0;
+-    let mut x156: u64 = 0;
+     let (x155, x156) = fiat_p384_mulx_u64(x143, 0x100000001);
+-    let mut x157: u64 = 0;
+-    let mut x158: u64 = 0;
+     let (x157, x158) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
+-    let mut x159: u64 = 0;
+-    let mut x160: u64 = 0;
+     let (x159, x160) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
+-    let mut x161: u64 = 0;
+-    let mut x162: u64 = 0;
+     let (x161, x162) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
+-    let mut x163: u64 = 0;
+-    let mut x164: u64 = 0;
+     let (x163, x164) = fiat_p384_mulx_u64(x155, 0xfffffffffffffffe);
+-    let mut x165: u64 = 0;
+-    let mut x166: u64 = 0;
+     let (x165, x166) = fiat_p384_mulx_u64(x155, 0xffffffff00000000);
+-    let mut x167: u64 = 0;
+-    let mut x168: u64 = 0;
+     let (x167, x168) = fiat_p384_mulx_u64(x155, 0xffffffff);
+-    let mut x169: u64 = 0;
+-    let mut x170: fiat_p384_u1 = 0;
+     let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x168, x165);
+-    let mut x171: u64 = 0;
+-    let mut x172: fiat_p384_u1 = 0;
+     let (x171, x172) = fiat_p384_addcarryx_u64(x170, x166, x163);
+-    let mut x173: u64 = 0;
+-    let mut x174: fiat_p384_u1 = 0;
+     let (x173, x174) = fiat_p384_addcarryx_u64(x172, x164, x161);
+-    let mut x175: u64 = 0;
+-    let mut x176: fiat_p384_u1 = 0;
+     let (x175, x176) = fiat_p384_addcarryx_u64(x174, x162, x159);
+-    let mut x177: u64 = 0;
+-    let mut x178: fiat_p384_u1 = 0;
+     let (x177, x178) = fiat_p384_addcarryx_u64(x176, x160, x157);
+-    let mut x179: u64 = 0;
+-    let mut x180: fiat_p384_u1 = 0;
+     let (x179, x180) = fiat_p384_addcarryx_u64(0x0, x143, x167);
+-    let mut x181: u64 = 0;
+-    let mut x182: fiat_p384_u1 = 0;
+     let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x169);
+-    let mut x183: u64 = 0;
+-    let mut x184: fiat_p384_u1 = 0;
+     let (x183, x184) = fiat_p384_addcarryx_u64(x182, x147, x171);
+-    let mut x185: u64 = 0;
+-    let mut x186: fiat_p384_u1 = 0;
+     let (x185, x186) = fiat_p384_addcarryx_u64(x184, x149, x173);
+-    let mut x187: u64 = 0;
+-    let mut x188: fiat_p384_u1 = 0;
+     let (x187, x188) = fiat_p384_addcarryx_u64(x186, x151, x175);
+-    let mut x189: u64 = 0;
+-    let mut x190: fiat_p384_u1 = 0;
+     let (x189, x190) = fiat_p384_addcarryx_u64(x188, x153, x177);
+-    let mut x191: u64 = 0;
+-    let mut x192: fiat_p384_u1 = 0;
+     let (x191, x192) = fiat_p384_addcarryx_u64(
+         x190,
+         ((x154 as u64) + (x126 as u64)),
+         ((x178 as u64) + x158),
+     );
+-    let mut x193: u64 = 0;
+-    let mut x194: u64 = 0;
+     let (x193, x194) = fiat_p384_mulx_u64(x3, 0x200000000);
+-    let mut x195: u64 = 0;
+-    let mut x196: u64 = 0;
+     let (x195, x196) = fiat_p384_mulx_u64(x3, 0xfffffffe00000000);
+-    let mut x197: u64 = 0;
+-    let mut x198: u64 = 0;
+     let (x197, x198) = fiat_p384_mulx_u64(x3, 0x200000000);
+-    let mut x199: u64 = 0;
+-    let mut x200: u64 = 0;
+     let (x199, x200) = fiat_p384_mulx_u64(x3, 0xfffffffe00000001);
+-    let mut x201: u64 = 0;
+-    let mut x202: fiat_p384_u1 = 0;
+     let (x201, x202) = fiat_p384_addcarryx_u64(0x0, x200, x197);
+-    let mut x203: u64 = 0;
+-    let mut x204: fiat_p384_u1 = 0;
+     let (x203, x204) = fiat_p384_addcarryx_u64(x202, x198, x195);
+-    let mut x205: u64 = 0;
+-    let mut x206: fiat_p384_u1 = 0;
+     let (x205, x206) = fiat_p384_addcarryx_u64(x204, x196, x193);
+-    let mut x207: u64 = 0;
+-    let mut x208: fiat_p384_u1 = 0;
+     let (x207, x208) = fiat_p384_addcarryx_u64(x206, x194, x3);
+-    let mut x209: u64 = 0;
+-    let mut x210: fiat_p384_u1 = 0;
+     let (x209, x210) = fiat_p384_addcarryx_u64(0x0, x181, x199);
+-    let mut x211: u64 = 0;
+-    let mut x212: fiat_p384_u1 = 0;
+     let (x211, x212) = fiat_p384_addcarryx_u64(x210, x183, x201);
+-    let mut x213: u64 = 0;
+-    let mut x214: fiat_p384_u1 = 0;
+     let (x213, x214) = fiat_p384_addcarryx_u64(x212, x185, x203);
+-    let mut x215: u64 = 0;
+-    let mut x216: fiat_p384_u1 = 0;
+     let (x215, x216) = fiat_p384_addcarryx_u64(x214, x187, x205);
+-    let mut x217: u64 = 0;
+-    let mut x218: fiat_p384_u1 = 0;
+     let (x217, x218) = fiat_p384_addcarryx_u64(x216, x189, x207);
+-    let mut x219: u64 = 0;
+-    let mut x220: fiat_p384_u1 = 0;
+     let (x219, x220) = fiat_p384_addcarryx_u64(x218, x191, (x208 as u64));
+-    let mut x221: u64 = 0;
+-    let mut x222: u64 = 0;
+     let (x221, x222) = fiat_p384_mulx_u64(x209, 0x100000001);
+-    let mut x223: u64 = 0;
+-    let mut x224: u64 = 0;
+     let (x223, x224) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
+-    let mut x225: u64 = 0;
+-    let mut x226: u64 = 0;
+     let (x225, x226) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
+-    let mut x227: u64 = 0;
+-    let mut x228: u64 = 0;
+     let (x227, x228) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
+-    let mut x229: u64 = 0;
+-    let mut x230: u64 = 0;
+     let (x229, x230) = fiat_p384_mulx_u64(x221, 0xfffffffffffffffe);
+-    let mut x231: u64 = 0;
+-    let mut x232: u64 = 0;
+     let (x231, x232) = fiat_p384_mulx_u64(x221, 0xffffffff00000000);
+-    let mut x233: u64 = 0;
+-    let mut x234: u64 = 0;
+     let (x233, x234) = fiat_p384_mulx_u64(x221, 0xffffffff);
+-    let mut x235: u64 = 0;
+-    let mut x236: fiat_p384_u1 = 0;
+     let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
+-    let mut x237: u64 = 0;
+-    let mut x238: fiat_p384_u1 = 0;
+     let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
+-    let mut x239: u64 = 0;
+-    let mut x240: fiat_p384_u1 = 0;
+     let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
+-    let mut x241: u64 = 0;
+-    let mut x242: fiat_p384_u1 = 0;
+     let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
+-    let mut x243: u64 = 0;
+-    let mut x244: fiat_p384_u1 = 0;
+     let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
+-    let mut x245: u64 = 0;
+-    let mut x246: fiat_p384_u1 = 0;
+     let (x245, x246) = fiat_p384_addcarryx_u64(0x0, x209, x233);
+-    let mut x247: u64 = 0;
+-    let mut x248: fiat_p384_u1 = 0;
+     let (x247, x248) = fiat_p384_addcarryx_u64(x246, x211, x235);
+-    let mut x249: u64 = 0;
+-    let mut x250: fiat_p384_u1 = 0;
+     let (x249, x250) = fiat_p384_addcarryx_u64(x248, x213, x237);
+-    let mut x251: u64 = 0;
+-    let mut x252: fiat_p384_u1 = 0;
+     let (x251, x252) = fiat_p384_addcarryx_u64(x250, x215, x239);
+-    let mut x253: u64 = 0;
+-    let mut x254: fiat_p384_u1 = 0;
+     let (x253, x254) = fiat_p384_addcarryx_u64(x252, x217, x241);
+-    let mut x255: u64 = 0;
+-    let mut x256: fiat_p384_u1 = 0;
+     let (x255, x256) = fiat_p384_addcarryx_u64(x254, x219, x243);
+-    let mut x257: u64 = 0;
+-    let mut x258: fiat_p384_u1 = 0;
+     let (x257, x258) = fiat_p384_addcarryx_u64(
+         x256,
+         ((x220 as u64) + (x192 as u64)),
+         ((x244 as u64) + x224),
+     );
+-    let mut x259: u64 = 0;
+-    let mut x260: u64 = 0;
+     let (x259, x260) = fiat_p384_mulx_u64(x4, 0x200000000);
+-    let mut x261: u64 = 0;
+-    let mut x262: u64 = 0;
+     let (x261, x262) = fiat_p384_mulx_u64(x4, 0xfffffffe00000000);
+-    let mut x263: u64 = 0;
+-    let mut x264: u64 = 0;
+     let (x263, x264) = fiat_p384_mulx_u64(x4, 0x200000000);
+-    let mut x265: u64 = 0;
+-    let mut x266: u64 = 0;
+     let (x265, x266) = fiat_p384_mulx_u64(x4, 0xfffffffe00000001);
+-    let mut x267: u64 = 0;
+-    let mut x268: fiat_p384_u1 = 0;
+     let (x267, x268) = fiat_p384_addcarryx_u64(0x0, x266, x263);
+-    let mut x269: u64 = 0;
+-    let mut x270: fiat_p384_u1 = 0;
+     let (x269, x270) = fiat_p384_addcarryx_u64(x268, x264, x261);
+-    let mut x271: u64 = 0;
+-    let mut x272: fiat_p384_u1 = 0;
+     let (x271, x272) = fiat_p384_addcarryx_u64(x270, x262, x259);
+-    let mut x273: u64 = 0;
+-    let mut x274: fiat_p384_u1 = 0;
+     let (x273, x274) = fiat_p384_addcarryx_u64(x272, x260, x4);
+-    let mut x275: u64 = 0;
+-    let mut x276: fiat_p384_u1 = 0;
+     let (x275, x276) = fiat_p384_addcarryx_u64(0x0, x247, x265);
+-    let mut x277: u64 = 0;
+-    let mut x278: fiat_p384_u1 = 0;
+     let (x277, x278) = fiat_p384_addcarryx_u64(x276, x249, x267);
+-    let mut x279: u64 = 0;
+-    let mut x280: fiat_p384_u1 = 0;
+     let (x279, x280) = fiat_p384_addcarryx_u64(x278, x251, x269);
+-    let mut x281: u64 = 0;
+-    let mut x282: fiat_p384_u1 = 0;
+     let (x281, x282) = fiat_p384_addcarryx_u64(x280, x253, x271);
+-    let mut x283: u64 = 0;
+-    let mut x284: fiat_p384_u1 = 0;
+     let (x283, x284) = fiat_p384_addcarryx_u64(x282, x255, x273);
+-    let mut x285: u64 = 0;
+-    let mut x286: fiat_p384_u1 = 0;
+     let (x285, x286) = fiat_p384_addcarryx_u64(x284, x257, (x274 as u64));
+-    let mut x287: u64 = 0;
+-    let mut x288: u64 = 0;
+     let (x287, x288) = fiat_p384_mulx_u64(x275, 0x100000001);
+-    let mut x289: u64 = 0;
+-    let mut x290: u64 = 0;
+     let (x289, x290) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
+-    let mut x291: u64 = 0;
+-    let mut x292: u64 = 0;
+     let (x291, x292) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
+-    let mut x293: u64 = 0;
+-    let mut x294: u64 = 0;
+     let (x293, x294) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
+-    let mut x295: u64 = 0;
+-    let mut x296: u64 = 0;
+     let (x295, x296) = fiat_p384_mulx_u64(x287, 0xfffffffffffffffe);
+-    let mut x297: u64 = 0;
+-    let mut x298: u64 = 0;
+     let (x297, x298) = fiat_p384_mulx_u64(x287, 0xffffffff00000000);
+-    let mut x299: u64 = 0;
+-    let mut x300: u64 = 0;
+     let (x299, x300) = fiat_p384_mulx_u64(x287, 0xffffffff);
+-    let mut x301: u64 = 0;
+-    let mut x302: fiat_p384_u1 = 0;
+     let (x301, x302) = fiat_p384_addcarryx_u64(0x0, x300, x297);
+-    let mut x303: u64 = 0;
+-    let mut x304: fiat_p384_u1 = 0;
+     let (x303, x304) = fiat_p384_addcarryx_u64(x302, x298, x295);
+-    let mut x305: u64 = 0;
+-    let mut x306: fiat_p384_u1 = 0;
+     let (x305, x306) = fiat_p384_addcarryx_u64(x304, x296, x293);
+-    let mut x307: u64 = 0;
+-    let mut x308: fiat_p384_u1 = 0;
+     let (x307, x308) = fiat_p384_addcarryx_u64(x306, x294, x291);
+-    let mut x309: u64 = 0;
+-    let mut x310: fiat_p384_u1 = 0;
+     let (x309, x310) = fiat_p384_addcarryx_u64(x308, x292, x289);
+-    let mut x311: u64 = 0;
+-    let mut x312: fiat_p384_u1 = 0;
+     let (x311, x312) = fiat_p384_addcarryx_u64(0x0, x275, x299);
+-    let mut x313: u64 = 0;
+-    let mut x314: fiat_p384_u1 = 0;
+     let (x313, x314) = fiat_p384_addcarryx_u64(x312, x277, x301);
+-    let mut x315: u64 = 0;
+-    let mut x316: fiat_p384_u1 = 0;
+     let (x315, x316) = fiat_p384_addcarryx_u64(x314, x279, x303);
+-    let mut x317: u64 = 0;
+-    let mut x318: fiat_p384_u1 = 0;
+     let (x317, x318) = fiat_p384_addcarryx_u64(x316, x281, x305);
+-    let mut x319: u64 = 0;
+-    let mut x320: fiat_p384_u1 = 0;
+     let (x319, x320) = fiat_p384_addcarryx_u64(x318, x283, x307);
+-    let mut x321: u64 = 0;
+-    let mut x322: fiat_p384_u1 = 0;
+     let (x321, x322) = fiat_p384_addcarryx_u64(x320, x285, x309);
+-    let mut x323: u64 = 0;
+-    let mut x324: fiat_p384_u1 = 0;
+     let (x323, x324) = fiat_p384_addcarryx_u64(
+         x322,
+         ((x286 as u64) + (x258 as u64)),
+         ((x310 as u64) + x290),
+     );
+-    let mut x325: u64 = 0;
+-    let mut x326: u64 = 0;
+     let (x325, x326) = fiat_p384_mulx_u64(x5, 0x200000000);
+-    let mut x327: u64 = 0;
+-    let mut x328: u64 = 0;
+     let (x327, x328) = fiat_p384_mulx_u64(x5, 0xfffffffe00000000);
+-    let mut x329: u64 = 0;
+-    let mut x330: u64 = 0;
+     let (x329, x330) = fiat_p384_mulx_u64(x5, 0x200000000);
+-    let mut x331: u64 = 0;
+-    let mut x332: u64 = 0;
+     let (x331, x332) = fiat_p384_mulx_u64(x5, 0xfffffffe00000001);
+-    let mut x333: u64 = 0;
+-    let mut x334: fiat_p384_u1 = 0;
+     let (x333, x334) = fiat_p384_addcarryx_u64(0x0, x332, x329);
+-    let mut x335: u64 = 0;
+-    let mut x336: fiat_p384_u1 = 0;
+     let (x335, x336) = fiat_p384_addcarryx_u64(x334, x330, x327);
+-    let mut x337: u64 = 0;
+-    let mut x338: fiat_p384_u1 = 0;
+     let (x337, x338) = fiat_p384_addcarryx_u64(x336, x328, x325);
+-    let mut x339: u64 = 0;
+-    let mut x340: fiat_p384_u1 = 0;
+     let (x339, x340) = fiat_p384_addcarryx_u64(x338, x326, x5);
+-    let mut x341: u64 = 0;
+-    let mut x342: fiat_p384_u1 = 0;
+     let (x341, x342) = fiat_p384_addcarryx_u64(0x0, x313, x331);
+-    let mut x343: u64 = 0;
+-    let mut x344: fiat_p384_u1 = 0;
+     let (x343, x344) = fiat_p384_addcarryx_u64(x342, x315, x333);
+-    let mut x345: u64 = 0;
+-    let mut x346: fiat_p384_u1 = 0;
+     let (x345, x346) = fiat_p384_addcarryx_u64(x344, x317, x335);
+-    let mut x347: u64 = 0;
+-    let mut x348: fiat_p384_u1 = 0;
+     let (x347, x348) = fiat_p384_addcarryx_u64(x346, x319, x337);
+-    let mut x349: u64 = 0;
+-    let mut x350: fiat_p384_u1 = 0;
+     let (x349, x350) = fiat_p384_addcarryx_u64(x348, x321, x339);
+-    let mut x351: u64 = 0;
+-    let mut x352: fiat_p384_u1 = 0;
+     let (x351, x352) = fiat_p384_addcarryx_u64(x350, x323, (x340 as u64));
+-    let mut x353: u64 = 0;
+-    let mut x354: u64 = 0;
+     let (x353, x354) = fiat_p384_mulx_u64(x341, 0x100000001);
+-    let mut x355: u64 = 0;
+-    let mut x356: u64 = 0;
+     let (x355, x356) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
+-    let mut x357: u64 = 0;
+-    let mut x358: u64 = 0;
+     let (x357, x358) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
+-    let mut x359: u64 = 0;
+-    let mut x360: u64 = 0;
+     let (x359, x360) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
+-    let mut x361: u64 = 0;
+-    let mut x362: u64 = 0;
+     let (x361, x362) = fiat_p384_mulx_u64(x353, 0xfffffffffffffffe);
+-    let mut x363: u64 = 0;
+-    let mut x364: u64 = 0;
+     let (x363, x364) = fiat_p384_mulx_u64(x353, 0xffffffff00000000);
+-    let mut x365: u64 = 0;
+-    let mut x366: u64 = 0;
+     let (x365, x366) = fiat_p384_mulx_u64(x353, 0xffffffff);
+-    let mut x367: u64 = 0;
+-    let mut x368: fiat_p384_u1 = 0;
+     let (x367, x368) = fiat_p384_addcarryx_u64(0x0, x366, x363);
+-    let mut x369: u64 = 0;
+-    let mut x370: fiat_p384_u1 = 0;
+     let (x369, x370) = fiat_p384_addcarryx_u64(x368, x364, x361);
+-    let mut x371: u64 = 0;
+-    let mut x372: fiat_p384_u1 = 0;
+     let (x371, x372) = fiat_p384_addcarryx_u64(x370, x362, x359);
+-    let mut x373: u64 = 0;
+-    let mut x374: fiat_p384_u1 = 0;
+     let (x373, x374) = fiat_p384_addcarryx_u64(x372, x360, x357);
+-    let mut x375: u64 = 0;
+-    let mut x376: fiat_p384_u1 = 0;
+     let (x375, x376) = fiat_p384_addcarryx_u64(x374, x358, x355);
+-    let mut x377: u64 = 0;
+-    let mut x378: fiat_p384_u1 = 0;
+     let (x377, x378) = fiat_p384_addcarryx_u64(0x0, x341, x365);
+-    let mut x379: u64 = 0;
+-    let mut x380: fiat_p384_u1 = 0;
+     let (x379, x380) = fiat_p384_addcarryx_u64(x378, x343, x367);
+-    let mut x381: u64 = 0;
+-    let mut x382: fiat_p384_u1 = 0;
+     let (x381, x382) = fiat_p384_addcarryx_u64(x380, x345, x369);
+-    let mut x383: u64 = 0;
+-    let mut x384: fiat_p384_u1 = 0;
+     let (x383, x384) = fiat_p384_addcarryx_u64(x382, x347, x371);
+-    let mut x385: u64 = 0;
+-    let mut x386: fiat_p384_u1 = 0;
+     let (x385, x386) = fiat_p384_addcarryx_u64(x384, x349, x373);
+-    let mut x387: u64 = 0;
+-    let mut x388: fiat_p384_u1 = 0;
+     let (x387, x388) = fiat_p384_addcarryx_u64(x386, x351, x375);
+-    let mut x389: u64 = 0;
+-    let mut x390: fiat_p384_u1 = 0;
+     let (x389, x390) = fiat_p384_addcarryx_u64(
+         x388,
+         ((x352 as u64) + (x324 as u64)),
+         ((x376 as u64) + x356),
+     );
+-    let mut x391: u64 = 0;
+-    let mut x392: fiat_p384_u1 = 0;
+     let (x391, x392) = fiat_p384_subborrowx_u64(0x0, x379, 0xffffffff);
+-    let mut x393: u64 = 0;
+-    let mut x394: fiat_p384_u1 = 0;
+     let (x393, x394) = fiat_p384_subborrowx_u64(x392, x381, 0xffffffff00000000);
+-    let mut x395: u64 = 0;
+-    let mut x396: fiat_p384_u1 = 0;
+     let (x395, x396) = fiat_p384_subborrowx_u64(x394, x383, 0xfffffffffffffffe);
+-    let mut x397: u64 = 0;
+-    let mut x398: fiat_p384_u1 = 0;
+     let (x397, x398) = fiat_p384_subborrowx_u64(x396, x385, 0xffffffffffffffff);
+-    let mut x399: u64 = 0;
+-    let mut x400: fiat_p384_u1 = 0;
+     let (x399, x400) = fiat_p384_subborrowx_u64(x398, x387, 0xffffffffffffffff);
+-    let mut x401: u64 = 0;
+-    let mut x402: fiat_p384_u1 = 0;
+     let (x401, x402) = fiat_p384_subborrowx_u64(x400, x389, 0xffffffffffffffff);
+-    let mut x403: u64 = 0;
+-    let mut x404: fiat_p384_u1 = 0;
+     let (x403, x404) = fiat_p384_subborrowx_u64(x402, (x390 as u64), (0x0 as u64));
+-    let mut x405: u64 = 0;
+     let (x405) = fiat_p384_cmovznz_u64(x404, x391, x379);
+-    let mut x406: u64 = 0;
+     let (x406) = fiat_p384_cmovznz_u64(x404, x393, x381);
+-    let mut x407: u64 = 0;
+     let (x407) = fiat_p384_cmovznz_u64(x404, x395, x383);
+-    let mut x408: u64 = 0;
+     let (x408) = fiat_p384_cmovznz_u64(x404, x397, x385);
+-    let mut x409: u64 = 0;
+     let (x409) = fiat_p384_cmovznz_u64(x404, x399, x387);
+-    let mut x410: u64 = 0;
+     let (x410) = fiat_p384_cmovznz_u64(x404, x401, x389);
+     out1[0] = x405;
+     out1[1] = x406;
+@@ -2959,17 +1265,11 @@ pub const fn fiat_p384_nonzero(arg1: &[u64; 6]) -> u64 {
+ #[inline]
+ pub const fn fiat_p384_selectznz(arg1: fiat_p384_u1, arg2: &[u64; 6], arg3: &[u64; 6]) -> [u64; 6] {
+     let mut out1: [u64; 6] = [0; 6];
+-    let mut x1: u64 = 0;
+     let (x1) = fiat_p384_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
+-    let mut x2: u64 = 0;
+     let (x2) = fiat_p384_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
+-    let mut x3: u64 = 0;
+     let (x3) = fiat_p384_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
+-    let mut x4: u64 = 0;
+     let (x4) = fiat_p384_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
+-    let mut x5: u64 = 0;
+     let (x5) = fiat_p384_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
+-    let mut x6: u64 = 0;
+     let (x6) = fiat_p384_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
+     out1[0] = x1;
+     out1[1] = x2;
+@@ -3324,115 +1624,50 @@ pub const fn fiat_p384_divstep(
+     let mut out3: [u64; 7] = [0; 7];
+     let mut out4: [u64; 6] = [0; 6];
+     let mut out5: [u64; 6] = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_u1 = 0;
+     let (x1, x2) = fiat_p384_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
+     let x3: fiat_p384_u1 =
+         (((x1 >> 63) as fiat_p384_u1) & (((arg3[0]) & (0x1 as u64)) as fiat_p384_u1));
+-    let mut x4: u64 = 0;
+-    let mut x5: fiat_p384_u1 = 0;
+     let (x4, x5) = fiat_p384_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
+-    let mut x6: u64 = 0;
+     let (x6) = fiat_p384_cmovznz_u64(x3, arg1, x4);
+-    let mut x7: u64 = 0;
+     let (x7) = fiat_p384_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
+-    let mut x8: u64 = 0;
+     let (x8) = fiat_p384_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
+-    let mut x9: u64 = 0;
+     let (x9) = fiat_p384_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
+-    let mut x10: u64 = 0;
+     let (x10) = fiat_p384_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
+-    let mut x11: u64 = 0;
+     let (x11) = fiat_p384_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
+-    let mut x12: u64 = 0;
+     let (x12) = fiat_p384_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
+-    let mut x13: u64 = 0;
+     let (x13) = fiat_p384_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
+-    let mut x14: u64 = 0;
+-    let mut x15: fiat_p384_u1 = 0;
+     let (x14, x15) = fiat_p384_addcarryx_u64(0x0, (0x1 as u64), (!(arg2[0])));
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_u1 = 0;
+     let (x16, x17) = fiat_p384_addcarryx_u64(x15, (0x0 as u64), (!(arg2[1])));
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_u1 = 0;
+     let (x18, x19) = fiat_p384_addcarryx_u64(x17, (0x0 as u64), (!(arg2[2])));
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_u1 = 0;
+     let (x20, x21) = fiat_p384_addcarryx_u64(x19, (0x0 as u64), (!(arg2[3])));
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_u1 = 0;
+     let (x22, x23) = fiat_p384_addcarryx_u64(x21, (0x0 as u64), (!(arg2[4])));
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_u1 = 0;
+     let (x24, x25) = fiat_p384_addcarryx_u64(x23, (0x0 as u64), (!(arg2[5])));
+-    let mut x26: u64 = 0;
+-    let mut x27: fiat_p384_u1 = 0;
+     let (x26, x27) = fiat_p384_addcarryx_u64(x25, (0x0 as u64), (!(arg2[6])));
+-    let mut x28: u64 = 0;
+     let (x28) = fiat_p384_cmovznz_u64(x3, (arg3[0]), x14);
+-    let mut x29: u64 = 0;
+     let (x29) = fiat_p384_cmovznz_u64(x3, (arg3[1]), x16);
+-    let mut x30: u64 = 0;
+     let (x30) = fiat_p384_cmovznz_u64(x3, (arg3[2]), x18);
+-    let mut x31: u64 = 0;
+     let (x31) = fiat_p384_cmovznz_u64(x3, (arg3[3]), x20);
+-    let mut x32: u64 = 0;
+     let (x32) = fiat_p384_cmovznz_u64(x3, (arg3[4]), x22);
+-    let mut x33: u64 = 0;
+     let (x33) = fiat_p384_cmovznz_u64(x3, (arg3[5]), x24);
+-    let mut x34: u64 = 0;
+     let (x34) = fiat_p384_cmovznz_u64(x3, (arg3[6]), x26);
+-    let mut x35: u64 = 0;
+     let (x35) = fiat_p384_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
+-    let mut x36: u64 = 0;
+     let (x36) = fiat_p384_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
+-    let mut x37: u64 = 0;
+     let (x37) = fiat_p384_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
+-    let mut x38: u64 = 0;
+     let (x38) = fiat_p384_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
+-    let mut x39: u64 = 0;
+     let (x39) = fiat_p384_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
+-    let mut x40: u64 = 0;
+     let (x40) = fiat_p384_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
+-    let mut x41: u64 = 0;
+-    let mut x42: fiat_p384_u1 = 0;
+     let (x41, x42) = fiat_p384_addcarryx_u64(0x0, x35, x35);
+-    let mut x43: u64 = 0;
+-    let mut x44: fiat_p384_u1 = 0;
+     let (x43, x44) = fiat_p384_addcarryx_u64(x42, x36, x36);
+-    let mut x45: u64 = 0;
+-    let mut x46: fiat_p384_u1 = 0;
+     let (x45, x46) = fiat_p384_addcarryx_u64(x44, x37, x37);
+-    let mut x47: u64 = 0;
+-    let mut x48: fiat_p384_u1 = 0;
+     let (x47, x48) = fiat_p384_addcarryx_u64(x46, x38, x38);
+-    let mut x49: u64 = 0;
+-    let mut x50: fiat_p384_u1 = 0;
+     let (x49, x50) = fiat_p384_addcarryx_u64(x48, x39, x39);
+-    let mut x51: u64 = 0;
+-    let mut x52: fiat_p384_u1 = 0;
+     let (x51, x52) = fiat_p384_addcarryx_u64(x50, x40, x40);
+-    let mut x53: u64 = 0;
+-    let mut x54: fiat_p384_u1 = 0;
+     let (x53, x54) = fiat_p384_subborrowx_u64(0x0, x41, 0xffffffff);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_u1 = 0;
+     let (x55, x56) = fiat_p384_subborrowx_u64(x54, x43, 0xffffffff00000000);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_u1 = 0;
+     let (x57, x58) = fiat_p384_subborrowx_u64(x56, x45, 0xfffffffffffffffe);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_u1 = 0;
+     let (x59, x60) = fiat_p384_subborrowx_u64(x58, x47, 0xffffffffffffffff);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_u1 = 0;
+     let (x61, x62) = fiat_p384_subborrowx_u64(x60, x49, 0xffffffffffffffff);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_u1 = 0;
+     let (x63, x64) = fiat_p384_subborrowx_u64(x62, x51, 0xffffffffffffffff);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_u1 = 0;
+     let (x65, x66) = fiat_p384_subborrowx_u64(x64, (x52 as u64), (0x0 as u64));
+     let x67: u64 = (arg4[5]);
+     let x68: u64 = (arg4[4]);
+@@ -3440,145 +1675,59 @@ pub const fn fiat_p384_divstep(
+     let x70: u64 = (arg4[2]);
+     let x71: u64 = (arg4[1]);
+     let x72: u64 = (arg4[0]);
+-    let mut x73: u64 = 0;
+-    let mut x74: fiat_p384_u1 = 0;
+     let (x73, x74) = fiat_p384_subborrowx_u64(0x0, (0x0 as u64), x72);
+-    let mut x75: u64 = 0;
+-    let mut x76: fiat_p384_u1 = 0;
+     let (x75, x76) = fiat_p384_subborrowx_u64(x74, (0x0 as u64), x71);
+-    let mut x77: u64 = 0;
+-    let mut x78: fiat_p384_u1 = 0;
+     let (x77, x78) = fiat_p384_subborrowx_u64(x76, (0x0 as u64), x70);
+-    let mut x79: u64 = 0;
+-    let mut x80: fiat_p384_u1 = 0;
+     let (x79, x80) = fiat_p384_subborrowx_u64(x78, (0x0 as u64), x69);
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_u1 = 0;
+     let (x81, x82) = fiat_p384_subborrowx_u64(x80, (0x0 as u64), x68);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_u1 = 0;
+     let (x83, x84) = fiat_p384_subborrowx_u64(x82, (0x0 as u64), x67);
+-    let mut x85: u64 = 0;
+     let (x85) = fiat_p384_cmovznz_u64(x84, (0x0 as u64), 0xffffffffffffffff);
+-    let mut x86: u64 = 0;
+-    let mut x87: fiat_p384_u1 = 0;
+     let (x86, x87) = fiat_p384_addcarryx_u64(0x0, x73, (x85 & 0xffffffff));
+-    let mut x88: u64 = 0;
+-    let mut x89: fiat_p384_u1 = 0;
+     let (x88, x89) = fiat_p384_addcarryx_u64(x87, x75, (x85 & 0xffffffff00000000));
+-    let mut x90: u64 = 0;
+-    let mut x91: fiat_p384_u1 = 0;
+     let (x90, x91) = fiat_p384_addcarryx_u64(x89, x77, (x85 & 0xfffffffffffffffe));
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_u1 = 0;
+     let (x92, x93) = fiat_p384_addcarryx_u64(x91, x79, x85);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_u1 = 0;
+     let (x94, x95) = fiat_p384_addcarryx_u64(x93, x81, x85);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_u1 = 0;
+     let (x96, x97) = fiat_p384_addcarryx_u64(x95, x83, x85);
+-    let mut x98: u64 = 0;
+     let (x98) = fiat_p384_cmovznz_u64(x3, (arg5[0]), x86);
+-    let mut x99: u64 = 0;
+     let (x99) = fiat_p384_cmovznz_u64(x3, (arg5[1]), x88);
+-    let mut x100: u64 = 0;
+     let (x100) = fiat_p384_cmovznz_u64(x3, (arg5[2]), x90);
+-    let mut x101: u64 = 0;
+     let (x101) = fiat_p384_cmovznz_u64(x3, (arg5[3]), x92);
+-    let mut x102: u64 = 0;
+     let (x102) = fiat_p384_cmovznz_u64(x3, (arg5[4]), x94);
+-    let mut x103: u64 = 0;
+     let (x103) = fiat_p384_cmovznz_u64(x3, (arg5[5]), x96);
+     let x104: fiat_p384_u1 = ((x28 & (0x1 as u64)) as fiat_p384_u1);
+-    let mut x105: u64 = 0;
+     let (x105) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x7);
+-    let mut x106: u64 = 0;
+     let (x106) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x8);
+-    let mut x107: u64 = 0;
+     let (x107) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x9);
+-    let mut x108: u64 = 0;
+     let (x108) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x10);
+-    let mut x109: u64 = 0;
+     let (x109) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x11);
+-    let mut x110: u64 = 0;
+     let (x110) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x12);
+-    let mut x111: u64 = 0;
+     let (x111) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x13);
+-    let mut x112: u64 = 0;
+-    let mut x113: fiat_p384_u1 = 0;
+     let (x112, x113) = fiat_p384_addcarryx_u64(0x0, x28, x105);
+-    let mut x114: u64 = 0;
+-    let mut x115: fiat_p384_u1 = 0;
+     let (x114, x115) = fiat_p384_addcarryx_u64(x113, x29, x106);
+-    let mut x116: u64 = 0;
+-    let mut x117: fiat_p384_u1 = 0;
+     let (x116, x117) = fiat_p384_addcarryx_u64(x115, x30, x107);
+-    let mut x118: u64 = 0;
+-    let mut x119: fiat_p384_u1 = 0;
+     let (x118, x119) = fiat_p384_addcarryx_u64(x117, x31, x108);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_u1 = 0;
+     let (x120, x121) = fiat_p384_addcarryx_u64(x119, x32, x109);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_u1 = 0;
+     let (x122, x123) = fiat_p384_addcarryx_u64(x121, x33, x110);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_u1 = 0;
+     let (x124, x125) = fiat_p384_addcarryx_u64(x123, x34, x111);
+-    let mut x126: u64 = 0;
+     let (x126) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x35);
+-    let mut x127: u64 = 0;
+     let (x127) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x36);
+-    let mut x128: u64 = 0;
+     let (x128) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x37);
+-    let mut x129: u64 = 0;
+     let (x129) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x38);
+-    let mut x130: u64 = 0;
+     let (x130) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x39);
+-    let mut x131: u64 = 0;
+     let (x131) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x40);
+-    let mut x132: u64 = 0;
+-    let mut x133: fiat_p384_u1 = 0;
+     let (x132, x133) = fiat_p384_addcarryx_u64(0x0, x98, x126);
+-    let mut x134: u64 = 0;
+-    let mut x135: fiat_p384_u1 = 0;
+     let (x134, x135) = fiat_p384_addcarryx_u64(x133, x99, x127);
+-    let mut x136: u64 = 0;
+-    let mut x137: fiat_p384_u1 = 0;
+     let (x136, x137) = fiat_p384_addcarryx_u64(x135, x100, x128);
+-    let mut x138: u64 = 0;
+-    let mut x139: fiat_p384_u1 = 0;
+     let (x138, x139) = fiat_p384_addcarryx_u64(x137, x101, x129);
+-    let mut x140: u64 = 0;
+-    let mut x141: fiat_p384_u1 = 0;
+     let (x140, x141) = fiat_p384_addcarryx_u64(x139, x102, x130);
+-    let mut x142: u64 = 0;
+-    let mut x143: fiat_p384_u1 = 0;
+     let (x142, x143) = fiat_p384_addcarryx_u64(x141, x103, x131);
+-    let mut x144: u64 = 0;
+-    let mut x145: fiat_p384_u1 = 0;
+     let (x144, x145) = fiat_p384_subborrowx_u64(0x0, x132, 0xffffffff);
+-    let mut x146: u64 = 0;
+-    let mut x147: fiat_p384_u1 = 0;
+     let (x146, x147) = fiat_p384_subborrowx_u64(x145, x134, 0xffffffff00000000);
+-    let mut x148: u64 = 0;
+-    let mut x149: fiat_p384_u1 = 0;
+     let (x148, x149) = fiat_p384_subborrowx_u64(x147, x136, 0xfffffffffffffffe);
+-    let mut x150: u64 = 0;
+-    let mut x151: fiat_p384_u1 = 0;
+     let (x150, x151) = fiat_p384_subborrowx_u64(x149, x138, 0xffffffffffffffff);
+-    let mut x152: u64 = 0;
+-    let mut x153: fiat_p384_u1 = 0;
+     let (x152, x153) = fiat_p384_subborrowx_u64(x151, x140, 0xffffffffffffffff);
+-    let mut x154: u64 = 0;
+-    let mut x155: fiat_p384_u1 = 0;
+     let (x154, x155) = fiat_p384_subborrowx_u64(x153, x142, 0xffffffffffffffff);
+-    let mut x156: u64 = 0;
+-    let mut x157: fiat_p384_u1 = 0;
+     let (x156, x157) = fiat_p384_subborrowx_u64(x155, (x143 as u64), (0x0 as u64));
+-    let mut x158: u64 = 0;
+-    let mut x159: fiat_p384_u1 = 0;
+     let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x6, (0x1 as u64));
+     let x160: u64 = ((x112 >> 1) | ((x114 << 63) & 0xffffffffffffffff));
+     let x161: u64 = ((x114 >> 1) | ((x116 << 63) & 0xffffffffffffffff));
+@@ -3587,29 +1736,17 @@ pub const fn fiat_p384_divstep(
+     let x164: u64 = ((x120 >> 1) | ((x122 << 63) & 0xffffffffffffffff));
+     let x165: u64 = ((x122 >> 1) | ((x124 << 63) & 0xffffffffffffffff));
+     let x166: u64 = ((x124 & 0x8000000000000000) | (x124 >> 1));
+-    let mut x167: u64 = 0;
+     let (x167) = fiat_p384_cmovznz_u64(x66, x53, x41);
+-    let mut x168: u64 = 0;
+     let (x168) = fiat_p384_cmovznz_u64(x66, x55, x43);
+-    let mut x169: u64 = 0;
+     let (x169) = fiat_p384_cmovznz_u64(x66, x57, x45);
+-    let mut x170: u64 = 0;
+     let (x170) = fiat_p384_cmovznz_u64(x66, x59, x47);
+-    let mut x171: u64 = 0;
+     let (x171) = fiat_p384_cmovznz_u64(x66, x61, x49);
+-    let mut x172: u64 = 0;
+     let (x172) = fiat_p384_cmovznz_u64(x66, x63, x51);
+-    let mut x173: u64 = 0;
+     let (x173) = fiat_p384_cmovznz_u64(x157, x144, x132);
+-    let mut x174: u64 = 0;
+     let (x174) = fiat_p384_cmovznz_u64(x157, x146, x134);
+-    let mut x175: u64 = 0;
+     let (x175) = fiat_p384_cmovznz_u64(x157, x148, x136);
+-    let mut x176: u64 = 0;
+     let (x176) = fiat_p384_cmovznz_u64(x157, x150, x138);
+-    let mut x177: u64 = 0;
+     let (x177) = fiat_p384_cmovznz_u64(x157, x152, x140);
+-    let mut x178: u64 = 0;
+     let (x178) = fiat_p384_cmovznz_u64(x157, x154, x142);
+     out1 = x158;
+     out2[0] = x7;
+diff --git a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs
+index dcf55aa..5959303 100644
+--- a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs
++++ b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_32.rs
+@@ -161,2692 +161,928 @@ pub const fn fiat_p384_scalar_mul(
+     let x10: u32 = (arg1[10]);
+     let x11: u32 = (arg1[11]);
+     let x12: u32 = (arg1[0]);
+-    let mut x13: u32 = 0;
+-    let mut x14: u32 = 0;
+     let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, (arg2[11]));
+-    let mut x15: u32 = 0;
+-    let mut x16: u32 = 0;
+     let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, (arg2[10]));
+-    let mut x17: u32 = 0;
+-    let mut x18: u32 = 0;
+     let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, (arg2[9]));
+-    let mut x19: u32 = 0;
+-    let mut x20: u32 = 0;
+     let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, (arg2[8]));
+-    let mut x21: u32 = 0;
+-    let mut x22: u32 = 0;
+     let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, (arg2[7]));
+-    let mut x23: u32 = 0;
+-    let mut x24: u32 = 0;
+     let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, (arg2[6]));
+-    let mut x25: u32 = 0;
+-    let mut x26: u32 = 0;
+     let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, (arg2[5]));
+-    let mut x27: u32 = 0;
+-    let mut x28: u32 = 0;
+     let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, (arg2[4]));
+-    let mut x29: u32 = 0;
+-    let mut x30: u32 = 0;
+     let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, (arg2[3]));
+-    let mut x31: u32 = 0;
+-    let mut x32: u32 = 0;
+     let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, (arg2[2]));
+-    let mut x33: u32 = 0;
+-    let mut x34: u32 = 0;
+     let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, (arg2[1]));
+-    let mut x35: u32 = 0;
+-    let mut x36: u32 = 0;
+     let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, (arg2[0]));
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_scalar_u1 = 0;
+     let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_scalar_u1 = 0;
+     let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_scalar_u1 = 0;
+     let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_scalar_u1 = 0;
+     let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_scalar_u1 = 0;
+     let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_scalar_u1 = 0;
+     let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_scalar_u1 = 0;
+     let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
+-    let mut x51: u32 = 0;
+-    let mut x52: fiat_p384_scalar_u1 = 0;
+     let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
+-    let mut x53: u32 = 0;
+-    let mut x54: fiat_p384_scalar_u1 = 0;
+     let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
+-    let mut x55: u32 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
+-    let mut x57: u32 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
+     let x59: u32 = ((x58 as u32) + x14);
+-    let mut x60: u32 = 0;
+-    let mut x61: u32 = 0;
+     let (x60, x61) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
+-    let mut x62: u32 = 0;
+-    let mut x63: u32 = 0;
+     let (x62, x63) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x64: u32 = 0;
+-    let mut x65: u32 = 0;
+     let (x64, x65) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x66: u32 = 0;
+-    let mut x67: u32 = 0;
+     let (x66, x67) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x68: u32 = 0;
+-    let mut x69: u32 = 0;
+     let (x68, x69) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x70: u32 = 0;
+-    let mut x71: u32 = 0;
+     let (x70, x71) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x72: u32 = 0;
+-    let mut x73: u32 = 0;
+     let (x72, x73) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x74: u32 = 0;
+-    let mut x75: u32 = 0;
+     let (x74, x75) = fiat_p384_scalar_mulx_u32(x60, 0xc7634d81);
+-    let mut x76: u32 = 0;
+-    let mut x77: u32 = 0;
+     let (x76, x77) = fiat_p384_scalar_mulx_u32(x60, 0xf4372ddf);
+-    let mut x78: u32 = 0;
+-    let mut x79: u32 = 0;
+     let (x78, x79) = fiat_p384_scalar_mulx_u32(x60, 0x581a0db2);
+-    let mut x80: u32 = 0;
+-    let mut x81: u32 = 0;
+     let (x80, x81) = fiat_p384_scalar_mulx_u32(x60, 0x48b0a77a);
+-    let mut x82: u32 = 0;
+-    let mut x83: u32 = 0;
+     let (x82, x83) = fiat_p384_scalar_mulx_u32(x60, 0xecec196a);
+-    let mut x84: u32 = 0;
+-    let mut x85: u32 = 0;
+     let (x84, x85) = fiat_p384_scalar_mulx_u32(x60, 0xccc52973);
+-    let mut x86: u32 = 0;
+-    let mut x87: fiat_p384_scalar_u1 = 0;
+     let (x86, x87) = fiat_p384_scalar_addcarryx_u32(0x0, x85, x82);
+-    let mut x88: u32 = 0;
+-    let mut x89: fiat_p384_scalar_u1 = 0;
+     let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x83, x80);
+-    let mut x90: u32 = 0;
+-    let mut x91: fiat_p384_scalar_u1 = 0;
+     let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x81, x78);
+-    let mut x92: u32 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x79, x76);
+-    let mut x94: u32 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x77, x74);
+-    let mut x96: u32 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x75, x72);
+-    let mut x98: u32 = 0;
+-    let mut x99: fiat_p384_scalar_u1 = 0;
+     let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x73, x70);
+-    let mut x100: u32 = 0;
+-    let mut x101: fiat_p384_scalar_u1 = 0;
+     let (x100, x101) = fiat_p384_scalar_addcarryx_u32(x99, x71, x68);
+-    let mut x102: u32 = 0;
+-    let mut x103: fiat_p384_scalar_u1 = 0;
+     let (x102, x103) = fiat_p384_scalar_addcarryx_u32(x101, x69, x66);
+-    let mut x104: u32 = 0;
+-    let mut x105: fiat_p384_scalar_u1 = 0;
+     let (x104, x105) = fiat_p384_scalar_addcarryx_u32(x103, x67, x64);
+-    let mut x106: u32 = 0;
+-    let mut x107: fiat_p384_scalar_u1 = 0;
+     let (x106, x107) = fiat_p384_scalar_addcarryx_u32(x105, x65, x62);
+     let x108: u32 = ((x107 as u32) + x63);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_scalar_u1 = 0;
+     let (x109, x110) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x84);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_scalar_u1 = 0;
+     let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x37, x86);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_scalar_u1 = 0;
+     let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x39, x88);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_scalar_u1 = 0;
+     let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x41, x90);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_scalar_u1 = 0;
+     let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x43, x92);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_scalar_u1 = 0;
+     let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x45, x94);
+-    let mut x121: u32 = 0;
+-    let mut x122: fiat_p384_scalar_u1 = 0;
+     let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x47, x96);
+-    let mut x123: u32 = 0;
+-    let mut x124: fiat_p384_scalar_u1 = 0;
+     let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x49, x98);
+-    let mut x125: u32 = 0;
+-    let mut x126: fiat_p384_scalar_u1 = 0;
+     let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x51, x100);
+-    let mut x127: u32 = 0;
+-    let mut x128: fiat_p384_scalar_u1 = 0;
+     let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x53, x102);
+-    let mut x129: u32 = 0;
+-    let mut x130: fiat_p384_scalar_u1 = 0;
+     let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x55, x104);
+-    let mut x131: u32 = 0;
+-    let mut x132: fiat_p384_scalar_u1 = 0;
+     let (x131, x132) = fiat_p384_scalar_addcarryx_u32(x130, x57, x106);
+-    let mut x133: u32 = 0;
+-    let mut x134: fiat_p384_scalar_u1 = 0;
+     let (x133, x134) = fiat_p384_scalar_addcarryx_u32(x132, x59, x108);
+-    let mut x135: u32 = 0;
+-    let mut x136: u32 = 0;
+     let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, (arg2[11]));
+-    let mut x137: u32 = 0;
+-    let mut x138: u32 = 0;
+     let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, (arg2[10]));
+-    let mut x139: u32 = 0;
+-    let mut x140: u32 = 0;
+     let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, (arg2[9]));
+-    let mut x141: u32 = 0;
+-    let mut x142: u32 = 0;
+     let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, (arg2[8]));
+-    let mut x143: u32 = 0;
+-    let mut x144: u32 = 0;
+     let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, (arg2[7]));
+-    let mut x145: u32 = 0;
+-    let mut x146: u32 = 0;
+     let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, (arg2[6]));
+-    let mut x147: u32 = 0;
+-    let mut x148: u32 = 0;
+     let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, (arg2[5]));
+-    let mut x149: u32 = 0;
+-    let mut x150: u32 = 0;
+     let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, (arg2[4]));
+-    let mut x151: u32 = 0;
+-    let mut x152: u32 = 0;
+     let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, (arg2[3]));
+-    let mut x153: u32 = 0;
+-    let mut x154: u32 = 0;
+     let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, (arg2[2]));
+-    let mut x155: u32 = 0;
+-    let mut x156: u32 = 0;
+     let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, (arg2[1]));
+-    let mut x157: u32 = 0;
+-    let mut x158: u32 = 0;
+     let (x157, x158) = fiat_p384_scalar_mulx_u32(x1, (arg2[0]));
+-    let mut x159: u32 = 0;
+-    let mut x160: fiat_p384_scalar_u1 = 0;
+     let (x159, x160) = fiat_p384_scalar_addcarryx_u32(0x0, x158, x155);
+-    let mut x161: u32 = 0;
+-    let mut x162: fiat_p384_scalar_u1 = 0;
+     let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x156, x153);
+-    let mut x163: u32 = 0;
+-    let mut x164: fiat_p384_scalar_u1 = 0;
+     let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x154, x151);
+-    let mut x165: u32 = 0;
+-    let mut x166: fiat_p384_scalar_u1 = 0;
+     let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x152, x149);
+-    let mut x167: u32 = 0;
+-    let mut x168: fiat_p384_scalar_u1 = 0;
+     let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x150, x147);
+-    let mut x169: u32 = 0;
+-    let mut x170: fiat_p384_scalar_u1 = 0;
+     let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x148, x145);
+-    let mut x171: u32 = 0;
+-    let mut x172: fiat_p384_scalar_u1 = 0;
+     let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x146, x143);
+-    let mut x173: u32 = 0;
+-    let mut x174: fiat_p384_scalar_u1 = 0;
+     let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x144, x141);
+-    let mut x175: u32 = 0;
+-    let mut x176: fiat_p384_scalar_u1 = 0;
+     let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x142, x139);
+-    let mut x177: u32 = 0;
+-    let mut x178: fiat_p384_scalar_u1 = 0;
+     let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x140, x137);
+-    let mut x179: u32 = 0;
+-    let mut x180: fiat_p384_scalar_u1 = 0;
+     let (x179, x180) = fiat_p384_scalar_addcarryx_u32(x178, x138, x135);
+     let x181: u32 = ((x180 as u32) + x136);
+-    let mut x182: u32 = 0;
+-    let mut x183: fiat_p384_scalar_u1 = 0;
+     let (x182, x183) = fiat_p384_scalar_addcarryx_u32(0x0, x111, x157);
+-    let mut x184: u32 = 0;
+-    let mut x185: fiat_p384_scalar_u1 = 0;
+     let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x113, x159);
+-    let mut x186: u32 = 0;
+-    let mut x187: fiat_p384_scalar_u1 = 0;
+     let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x115, x161);
+-    let mut x188: u32 = 0;
+-    let mut x189: fiat_p384_scalar_u1 = 0;
+     let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x117, x163);
+-    let mut x190: u32 = 0;
+-    let mut x191: fiat_p384_scalar_u1 = 0;
+     let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x119, x165);
+-    let mut x192: u32 = 0;
+-    let mut x193: fiat_p384_scalar_u1 = 0;
+     let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x121, x167);
+-    let mut x194: u32 = 0;
+-    let mut x195: fiat_p384_scalar_u1 = 0;
+     let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x123, x169);
+-    let mut x196: u32 = 0;
+-    let mut x197: fiat_p384_scalar_u1 = 0;
+     let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x125, x171);
+-    let mut x198: u32 = 0;
+-    let mut x199: fiat_p384_scalar_u1 = 0;
+     let (x198, x199) = fiat_p384_scalar_addcarryx_u32(x197, x127, x173);
+-    let mut x200: u32 = 0;
+-    let mut x201: fiat_p384_scalar_u1 = 0;
+     let (x200, x201) = fiat_p384_scalar_addcarryx_u32(x199, x129, x175);
+-    let mut x202: u32 = 0;
+-    let mut x203: fiat_p384_scalar_u1 = 0;
+     let (x202, x203) = fiat_p384_scalar_addcarryx_u32(x201, x131, x177);
+-    let mut x204: u32 = 0;
+-    let mut x205: fiat_p384_scalar_u1 = 0;
+     let (x204, x205) = fiat_p384_scalar_addcarryx_u32(x203, x133, x179);
+-    let mut x206: u32 = 0;
+-    let mut x207: fiat_p384_scalar_u1 = 0;
+     let (x206, x207) = fiat_p384_scalar_addcarryx_u32(x205, (x134 as u32), x181);
+-    let mut x208: u32 = 0;
+-    let mut x209: u32 = 0;
+     let (x208, x209) = fiat_p384_scalar_mulx_u32(x182, 0xe88fdc45);
+-    let mut x210: u32 = 0;
+-    let mut x211: u32 = 0;
+     let (x210, x211) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x212: u32 = 0;
+-    let mut x213: u32 = 0;
+     let (x212, x213) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x214: u32 = 0;
+-    let mut x215: u32 = 0;
+     let (x214, x215) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x216: u32 = 0;
+-    let mut x217: u32 = 0;
+     let (x216, x217) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x218: u32 = 0;
+-    let mut x219: u32 = 0;
+     let (x218, x219) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x220: u32 = 0;
+-    let mut x221: u32 = 0;
+     let (x220, x221) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x222: u32 = 0;
+-    let mut x223: u32 = 0;
+     let (x222, x223) = fiat_p384_scalar_mulx_u32(x208, 0xc7634d81);
+-    let mut x224: u32 = 0;
+-    let mut x225: u32 = 0;
+     let (x224, x225) = fiat_p384_scalar_mulx_u32(x208, 0xf4372ddf);
+-    let mut x226: u32 = 0;
+-    let mut x227: u32 = 0;
+     let (x226, x227) = fiat_p384_scalar_mulx_u32(x208, 0x581a0db2);
+-    let mut x228: u32 = 0;
+-    let mut x229: u32 = 0;
+     let (x228, x229) = fiat_p384_scalar_mulx_u32(x208, 0x48b0a77a);
+-    let mut x230: u32 = 0;
+-    let mut x231: u32 = 0;
+     let (x230, x231) = fiat_p384_scalar_mulx_u32(x208, 0xecec196a);
+-    let mut x232: u32 = 0;
+-    let mut x233: u32 = 0;
+     let (x232, x233) = fiat_p384_scalar_mulx_u32(x208, 0xccc52973);
+-    let mut x234: u32 = 0;
+-    let mut x235: fiat_p384_scalar_u1 = 0;
+     let (x234, x235) = fiat_p384_scalar_addcarryx_u32(0x0, x233, x230);
+-    let mut x236: u32 = 0;
+-    let mut x237: fiat_p384_scalar_u1 = 0;
+     let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x231, x228);
+-    let mut x238: u32 = 0;
+-    let mut x239: fiat_p384_scalar_u1 = 0;
+     let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x229, x226);
+-    let mut x240: u32 = 0;
+-    let mut x241: fiat_p384_scalar_u1 = 0;
+     let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x227, x224);
+-    let mut x242: u32 = 0;
+-    let mut x243: fiat_p384_scalar_u1 = 0;
+     let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x225, x222);
+-    let mut x244: u32 = 0;
+-    let mut x245: fiat_p384_scalar_u1 = 0;
+     let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x223, x220);
+-    let mut x246: u32 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(x245, x221, x218);
+-    let mut x248: u32 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x219, x216);
+-    let mut x250: u32 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x217, x214);
+-    let mut x252: u32 = 0;
+-    let mut x253: fiat_p384_scalar_u1 = 0;
+     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x215, x212);
+-    let mut x254: u32 = 0;
+-    let mut x255: fiat_p384_scalar_u1 = 0;
+     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x213, x210);
+     let x256: u32 = ((x255 as u32) + x211);
+-    let mut x257: u32 = 0;
+-    let mut x258: fiat_p384_scalar_u1 = 0;
+     let (x257, x258) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x232);
+-    let mut x259: u32 = 0;
+-    let mut x260: fiat_p384_scalar_u1 = 0;
+     let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x184, x234);
+-    let mut x261: u32 = 0;
+-    let mut x262: fiat_p384_scalar_u1 = 0;
+     let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x186, x236);
+-    let mut x263: u32 = 0;
+-    let mut x264: fiat_p384_scalar_u1 = 0;
+     let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x188, x238);
+-    let mut x265: u32 = 0;
+-    let mut x266: fiat_p384_scalar_u1 = 0;
+     let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x190, x240);
+-    let mut x267: u32 = 0;
+-    let mut x268: fiat_p384_scalar_u1 = 0;
+     let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x192, x242);
+-    let mut x269: u32 = 0;
+-    let mut x270: fiat_p384_scalar_u1 = 0;
+     let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x194, x244);
+-    let mut x271: u32 = 0;
+-    let mut x272: fiat_p384_scalar_u1 = 0;
+     let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x196, x246);
+-    let mut x273: u32 = 0;
+-    let mut x274: fiat_p384_scalar_u1 = 0;
+     let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x198, x248);
+-    let mut x275: u32 = 0;
+-    let mut x276: fiat_p384_scalar_u1 = 0;
+     let (x275, x276) = fiat_p384_scalar_addcarryx_u32(x274, x200, x250);
+-    let mut x277: u32 = 0;
+-    let mut x278: fiat_p384_scalar_u1 = 0;
+     let (x277, x278) = fiat_p384_scalar_addcarryx_u32(x276, x202, x252);
+-    let mut x279: u32 = 0;
+-    let mut x280: fiat_p384_scalar_u1 = 0;
+     let (x279, x280) = fiat_p384_scalar_addcarryx_u32(x278, x204, x254);
+-    let mut x281: u32 = 0;
+-    let mut x282: fiat_p384_scalar_u1 = 0;
+     let (x281, x282) = fiat_p384_scalar_addcarryx_u32(x280, x206, x256);
+     let x283: u32 = ((x282 as u32) + (x207 as u32));
+-    let mut x284: u32 = 0;
+-    let mut x285: u32 = 0;
+     let (x284, x285) = fiat_p384_scalar_mulx_u32(x2, (arg2[11]));
+-    let mut x286: u32 = 0;
+-    let mut x287: u32 = 0;
+     let (x286, x287) = fiat_p384_scalar_mulx_u32(x2, (arg2[10]));
+-    let mut x288: u32 = 0;
+-    let mut x289: u32 = 0;
+     let (x288, x289) = fiat_p384_scalar_mulx_u32(x2, (arg2[9]));
+-    let mut x290: u32 = 0;
+-    let mut x291: u32 = 0;
+     let (x290, x291) = fiat_p384_scalar_mulx_u32(x2, (arg2[8]));
+-    let mut x292: u32 = 0;
+-    let mut x293: u32 = 0;
+     let (x292, x293) = fiat_p384_scalar_mulx_u32(x2, (arg2[7]));
+-    let mut x294: u32 = 0;
+-    let mut x295: u32 = 0;
+     let (x294, x295) = fiat_p384_scalar_mulx_u32(x2, (arg2[6]));
+-    let mut x296: u32 = 0;
+-    let mut x297: u32 = 0;
+     let (x296, x297) = fiat_p384_scalar_mulx_u32(x2, (arg2[5]));
+-    let mut x298: u32 = 0;
+-    let mut x299: u32 = 0;
+     let (x298, x299) = fiat_p384_scalar_mulx_u32(x2, (arg2[4]));
+-    let mut x300: u32 = 0;
+-    let mut x301: u32 = 0;
+     let (x300, x301) = fiat_p384_scalar_mulx_u32(x2, (arg2[3]));
+-    let mut x302: u32 = 0;
+-    let mut x303: u32 = 0;
+     let (x302, x303) = fiat_p384_scalar_mulx_u32(x2, (arg2[2]));
+-    let mut x304: u32 = 0;
+-    let mut x305: u32 = 0;
+     let (x304, x305) = fiat_p384_scalar_mulx_u32(x2, (arg2[1]));
+-    let mut x306: u32 = 0;
+-    let mut x307: u32 = 0;
+     let (x306, x307) = fiat_p384_scalar_mulx_u32(x2, (arg2[0]));
+-    let mut x308: u32 = 0;
+-    let mut x309: fiat_p384_scalar_u1 = 0;
+     let (x308, x309) = fiat_p384_scalar_addcarryx_u32(0x0, x307, x304);
+-    let mut x310: u32 = 0;
+-    let mut x311: fiat_p384_scalar_u1 = 0;
+     let (x310, x311) = fiat_p384_scalar_addcarryx_u32(x309, x305, x302);
+-    let mut x312: u32 = 0;
+-    let mut x313: fiat_p384_scalar_u1 = 0;
+     let (x312, x313) = fiat_p384_scalar_addcarryx_u32(x311, x303, x300);
+-    let mut x314: u32 = 0;
+-    let mut x315: fiat_p384_scalar_u1 = 0;
+     let (x314, x315) = fiat_p384_scalar_addcarryx_u32(x313, x301, x298);
+-    let mut x316: u32 = 0;
+-    let mut x317: fiat_p384_scalar_u1 = 0;
+     let (x316, x317) = fiat_p384_scalar_addcarryx_u32(x315, x299, x296);
+-    let mut x318: u32 = 0;
+-    let mut x319: fiat_p384_scalar_u1 = 0;
+     let (x318, x319) = fiat_p384_scalar_addcarryx_u32(x317, x297, x294);
+-    let mut x320: u32 = 0;
+-    let mut x321: fiat_p384_scalar_u1 = 0;
+     let (x320, x321) = fiat_p384_scalar_addcarryx_u32(x319, x295, x292);
+-    let mut x322: u32 = 0;
+-    let mut x323: fiat_p384_scalar_u1 = 0;
+     let (x322, x323) = fiat_p384_scalar_addcarryx_u32(x321, x293, x290);
+-    let mut x324: u32 = 0;
+-    let mut x325: fiat_p384_scalar_u1 = 0;
+     let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x291, x288);
+-    let mut x326: u32 = 0;
+-    let mut x327: fiat_p384_scalar_u1 = 0;
+     let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x289, x286);
+-    let mut x328: u32 = 0;
+-    let mut x329: fiat_p384_scalar_u1 = 0;
+     let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x287, x284);
+     let x330: u32 = ((x329 as u32) + x285);
+-    let mut x331: u32 = 0;
+-    let mut x332: fiat_p384_scalar_u1 = 0;
+     let (x331, x332) = fiat_p384_scalar_addcarryx_u32(0x0, x259, x306);
+-    let mut x333: u32 = 0;
+-    let mut x334: fiat_p384_scalar_u1 = 0;
+     let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x261, x308);
+-    let mut x335: u32 = 0;
+-    let mut x336: fiat_p384_scalar_u1 = 0;
+     let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x263, x310);
+-    let mut x337: u32 = 0;
+-    let mut x338: fiat_p384_scalar_u1 = 0;
+     let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x265, x312);
+-    let mut x339: u32 = 0;
+-    let mut x340: fiat_p384_scalar_u1 = 0;
+     let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x267, x314);
+-    let mut x341: u32 = 0;
+-    let mut x342: fiat_p384_scalar_u1 = 0;
+     let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x269, x316);
+-    let mut x343: u32 = 0;
+-    let mut x344: fiat_p384_scalar_u1 = 0;
+     let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x271, x318);
+-    let mut x345: u32 = 0;
+-    let mut x346: fiat_p384_scalar_u1 = 0;
+     let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x273, x320);
+-    let mut x347: u32 = 0;
+-    let mut x348: fiat_p384_scalar_u1 = 0;
+     let (x347, x348) = fiat_p384_scalar_addcarryx_u32(x346, x275, x322);
+-    let mut x349: u32 = 0;
+-    let mut x350: fiat_p384_scalar_u1 = 0;
+     let (x349, x350) = fiat_p384_scalar_addcarryx_u32(x348, x277, x324);
+-    let mut x351: u32 = 0;
+-    let mut x352: fiat_p384_scalar_u1 = 0;
+     let (x351, x352) = fiat_p384_scalar_addcarryx_u32(x350, x279, x326);
+-    let mut x353: u32 = 0;
+-    let mut x354: fiat_p384_scalar_u1 = 0;
+     let (x353, x354) = fiat_p384_scalar_addcarryx_u32(x352, x281, x328);
+-    let mut x355: u32 = 0;
+-    let mut x356: fiat_p384_scalar_u1 = 0;
+     let (x355, x356) = fiat_p384_scalar_addcarryx_u32(x354, x283, x330);
+-    let mut x357: u32 = 0;
+-    let mut x358: u32 = 0;
+     let (x357, x358) = fiat_p384_scalar_mulx_u32(x331, 0xe88fdc45);
+-    let mut x359: u32 = 0;
+-    let mut x360: u32 = 0;
+     let (x359, x360) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x361: u32 = 0;
+-    let mut x362: u32 = 0;
+     let (x361, x362) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x363: u32 = 0;
+-    let mut x364: u32 = 0;
+     let (x363, x364) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x365: u32 = 0;
+-    let mut x366: u32 = 0;
+     let (x365, x366) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x367: u32 = 0;
+-    let mut x368: u32 = 0;
+     let (x367, x368) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x369: u32 = 0;
+-    let mut x370: u32 = 0;
+     let (x369, x370) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x371: u32 = 0;
+-    let mut x372: u32 = 0;
+     let (x371, x372) = fiat_p384_scalar_mulx_u32(x357, 0xc7634d81);
+-    let mut x373: u32 = 0;
+-    let mut x374: u32 = 0;
+     let (x373, x374) = fiat_p384_scalar_mulx_u32(x357, 0xf4372ddf);
+-    let mut x375: u32 = 0;
+-    let mut x376: u32 = 0;
+     let (x375, x376) = fiat_p384_scalar_mulx_u32(x357, 0x581a0db2);
+-    let mut x377: u32 = 0;
+-    let mut x378: u32 = 0;
+     let (x377, x378) = fiat_p384_scalar_mulx_u32(x357, 0x48b0a77a);
+-    let mut x379: u32 = 0;
+-    let mut x380: u32 = 0;
+     let (x379, x380) = fiat_p384_scalar_mulx_u32(x357, 0xecec196a);
+-    let mut x381: u32 = 0;
+-    let mut x382: u32 = 0;
+     let (x381, x382) = fiat_p384_scalar_mulx_u32(x357, 0xccc52973);
+-    let mut x383: u32 = 0;
+-    let mut x384: fiat_p384_scalar_u1 = 0;
+     let (x383, x384) = fiat_p384_scalar_addcarryx_u32(0x0, x382, x379);
+-    let mut x385: u32 = 0;
+-    let mut x386: fiat_p384_scalar_u1 = 0;
+     let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x380, x377);
+-    let mut x387: u32 = 0;
+-    let mut x388: fiat_p384_scalar_u1 = 0;
+     let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x378, x375);
+-    let mut x389: u32 = 0;
+-    let mut x390: fiat_p384_scalar_u1 = 0;
+     let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x376, x373);
+-    let mut x391: u32 = 0;
+-    let mut x392: fiat_p384_scalar_u1 = 0;
+     let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x374, x371);
+-    let mut x393: u32 = 0;
+-    let mut x394: fiat_p384_scalar_u1 = 0;
+     let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x372, x369);
+-    let mut x395: u32 = 0;
+-    let mut x396: fiat_p384_scalar_u1 = 0;
+     let (x395, x396) = fiat_p384_scalar_addcarryx_u32(x394, x370, x367);
+-    let mut x397: u32 = 0;
+-    let mut x398: fiat_p384_scalar_u1 = 0;
+     let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x368, x365);
+-    let mut x399: u32 = 0;
+-    let mut x400: fiat_p384_scalar_u1 = 0;
+     let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x366, x363);
+-    let mut x401: u32 = 0;
+-    let mut x402: fiat_p384_scalar_u1 = 0;
+     let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x364, x361);
+-    let mut x403: u32 = 0;
+-    let mut x404: fiat_p384_scalar_u1 = 0;
+     let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x362, x359);
+     let x405: u32 = ((x404 as u32) + x360);
+-    let mut x406: u32 = 0;
+-    let mut x407: fiat_p384_scalar_u1 = 0;
+     let (x406, x407) = fiat_p384_scalar_addcarryx_u32(0x0, x331, x381);
+-    let mut x408: u32 = 0;
+-    let mut x409: fiat_p384_scalar_u1 = 0;
+     let (x408, x409) = fiat_p384_scalar_addcarryx_u32(x407, x333, x383);
+-    let mut x410: u32 = 0;
+-    let mut x411: fiat_p384_scalar_u1 = 0;
+     let (x410, x411) = fiat_p384_scalar_addcarryx_u32(x409, x335, x385);
+-    let mut x412: u32 = 0;
+-    let mut x413: fiat_p384_scalar_u1 = 0;
+     let (x412, x413) = fiat_p384_scalar_addcarryx_u32(x411, x337, x387);
+-    let mut x414: u32 = 0;
+-    let mut x415: fiat_p384_scalar_u1 = 0;
+     let (x414, x415) = fiat_p384_scalar_addcarryx_u32(x413, x339, x389);
+-    let mut x416: u32 = 0;
+-    let mut x417: fiat_p384_scalar_u1 = 0;
+     let (x416, x417) = fiat_p384_scalar_addcarryx_u32(x415, x341, x391);
+-    let mut x418: u32 = 0;
+-    let mut x419: fiat_p384_scalar_u1 = 0;
+     let (x418, x419) = fiat_p384_scalar_addcarryx_u32(x417, x343, x393);
+-    let mut x420: u32 = 0;
+-    let mut x421: fiat_p384_scalar_u1 = 0;
+     let (x420, x421) = fiat_p384_scalar_addcarryx_u32(x419, x345, x395);
+-    let mut x422: u32 = 0;
+-    let mut x423: fiat_p384_scalar_u1 = 0;
+     let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x347, x397);
+-    let mut x424: u32 = 0;
+-    let mut x425: fiat_p384_scalar_u1 = 0;
+     let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x349, x399);
+-    let mut x426: u32 = 0;
+-    let mut x427: fiat_p384_scalar_u1 = 0;
+     let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x351, x401);
+-    let mut x428: u32 = 0;
+-    let mut x429: fiat_p384_scalar_u1 = 0;
+     let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x353, x403);
+-    let mut x430: u32 = 0;
+-    let mut x431: fiat_p384_scalar_u1 = 0;
+     let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x355, x405);
+     let x432: u32 = ((x431 as u32) + (x356 as u32));
+-    let mut x433: u32 = 0;
+-    let mut x434: u32 = 0;
+     let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, (arg2[11]));
+-    let mut x435: u32 = 0;
+-    let mut x436: u32 = 0;
+     let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, (arg2[10]));
+-    let mut x437: u32 = 0;
+-    let mut x438: u32 = 0;
+     let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, (arg2[9]));
+-    let mut x439: u32 = 0;
+-    let mut x440: u32 = 0;
+     let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, (arg2[8]));
+-    let mut x441: u32 = 0;
+-    let mut x442: u32 = 0;
+     let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, (arg2[7]));
+-    let mut x443: u32 = 0;
+-    let mut x444: u32 = 0;
+     let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, (arg2[6]));
+-    let mut x445: u32 = 0;
+-    let mut x446: u32 = 0;
+     let (x445, x446) = fiat_p384_scalar_mulx_u32(x3, (arg2[5]));
+-    let mut x447: u32 = 0;
+-    let mut x448: u32 = 0;
+     let (x447, x448) = fiat_p384_scalar_mulx_u32(x3, (arg2[4]));
+-    let mut x449: u32 = 0;
+-    let mut x450: u32 = 0;
+     let (x449, x450) = fiat_p384_scalar_mulx_u32(x3, (arg2[3]));
+-    let mut x451: u32 = 0;
+-    let mut x452: u32 = 0;
+     let (x451, x452) = fiat_p384_scalar_mulx_u32(x3, (arg2[2]));
+-    let mut x453: u32 = 0;
+-    let mut x454: u32 = 0;
+     let (x453, x454) = fiat_p384_scalar_mulx_u32(x3, (arg2[1]));
+-    let mut x455: u32 = 0;
+-    let mut x456: u32 = 0;
+     let (x455, x456) = fiat_p384_scalar_mulx_u32(x3, (arg2[0]));
+-    let mut x457: u32 = 0;
+-    let mut x458: fiat_p384_scalar_u1 = 0;
+     let (x457, x458) = fiat_p384_scalar_addcarryx_u32(0x0, x456, x453);
+-    let mut x459: u32 = 0;
+-    let mut x460: fiat_p384_scalar_u1 = 0;
+     let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x454, x451);
+-    let mut x461: u32 = 0;
+-    let mut x462: fiat_p384_scalar_u1 = 0;
+     let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x452, x449);
+-    let mut x463: u32 = 0;
+-    let mut x464: fiat_p384_scalar_u1 = 0;
+     let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x450, x447);
+-    let mut x465: u32 = 0;
+-    let mut x466: fiat_p384_scalar_u1 = 0;
+     let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x448, x445);
+-    let mut x467: u32 = 0;
+-    let mut x468: fiat_p384_scalar_u1 = 0;
+     let (x467, x468) = fiat_p384_scalar_addcarryx_u32(x466, x446, x443);
+-    let mut x469: u32 = 0;
+-    let mut x470: fiat_p384_scalar_u1 = 0;
+     let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x444, x441);
+-    let mut x471: u32 = 0;
+-    let mut x472: fiat_p384_scalar_u1 = 0;
+     let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x442, x439);
+-    let mut x473: u32 = 0;
+-    let mut x474: fiat_p384_scalar_u1 = 0;
+     let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x440, x437);
+-    let mut x475: u32 = 0;
+-    let mut x476: fiat_p384_scalar_u1 = 0;
+     let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x438, x435);
+-    let mut x477: u32 = 0;
+-    let mut x478: fiat_p384_scalar_u1 = 0;
+     let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x436, x433);
+     let x479: u32 = ((x478 as u32) + x434);
+-    let mut x480: u32 = 0;
+-    let mut x481: fiat_p384_scalar_u1 = 0;
+     let (x480, x481) = fiat_p384_scalar_addcarryx_u32(0x0, x408, x455);
+-    let mut x482: u32 = 0;
+-    let mut x483: fiat_p384_scalar_u1 = 0;
+     let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x410, x457);
+-    let mut x484: u32 = 0;
+-    let mut x485: fiat_p384_scalar_u1 = 0;
+     let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x412, x459);
+-    let mut x486: u32 = 0;
+-    let mut x487: fiat_p384_scalar_u1 = 0;
+     let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x414, x461);
+-    let mut x488: u32 = 0;
+-    let mut x489: fiat_p384_scalar_u1 = 0;
+     let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x416, x463);
+-    let mut x490: u32 = 0;
+-    let mut x491: fiat_p384_scalar_u1 = 0;
+     let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x418, x465);
+-    let mut x492: u32 = 0;
+-    let mut x493: fiat_p384_scalar_u1 = 0;
+     let (x492, x493) = fiat_p384_scalar_addcarryx_u32(x491, x420, x467);
+-    let mut x494: u32 = 0;
+-    let mut x495: fiat_p384_scalar_u1 = 0;
+     let (x494, x495) = fiat_p384_scalar_addcarryx_u32(x493, x422, x469);
+-    let mut x496: u32 = 0;
+-    let mut x497: fiat_p384_scalar_u1 = 0;
+     let (x496, x497) = fiat_p384_scalar_addcarryx_u32(x495, x424, x471);
+-    let mut x498: u32 = 0;
+-    let mut x499: fiat_p384_scalar_u1 = 0;
+     let (x498, x499) = fiat_p384_scalar_addcarryx_u32(x497, x426, x473);
+-    let mut x500: u32 = 0;
+-    let mut x501: fiat_p384_scalar_u1 = 0;
+     let (x500, x501) = fiat_p384_scalar_addcarryx_u32(x499, x428, x475);
+-    let mut x502: u32 = 0;
+-    let mut x503: fiat_p384_scalar_u1 = 0;
+     let (x502, x503) = fiat_p384_scalar_addcarryx_u32(x501, x430, x477);
+-    let mut x504: u32 = 0;
+-    let mut x505: fiat_p384_scalar_u1 = 0;
+     let (x504, x505) = fiat_p384_scalar_addcarryx_u32(x503, x432, x479);
+-    let mut x506: u32 = 0;
+-    let mut x507: u32 = 0;
+     let (x506, x507) = fiat_p384_scalar_mulx_u32(x480, 0xe88fdc45);
+-    let mut x508: u32 = 0;
+-    let mut x509: u32 = 0;
+     let (x508, x509) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x510: u32 = 0;
+-    let mut x511: u32 = 0;
+     let (x510, x511) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x512: u32 = 0;
+-    let mut x513: u32 = 0;
+     let (x512, x513) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x514: u32 = 0;
+-    let mut x515: u32 = 0;
+     let (x514, x515) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x516: u32 = 0;
+-    let mut x517: u32 = 0;
+     let (x516, x517) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x518: u32 = 0;
+-    let mut x519: u32 = 0;
+     let (x518, x519) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x520: u32 = 0;
+-    let mut x521: u32 = 0;
+     let (x520, x521) = fiat_p384_scalar_mulx_u32(x506, 0xc7634d81);
+-    let mut x522: u32 = 0;
+-    let mut x523: u32 = 0;
+     let (x522, x523) = fiat_p384_scalar_mulx_u32(x506, 0xf4372ddf);
+-    let mut x524: u32 = 0;
+-    let mut x525: u32 = 0;
+     let (x524, x525) = fiat_p384_scalar_mulx_u32(x506, 0x581a0db2);
+-    let mut x526: u32 = 0;
+-    let mut x527: u32 = 0;
+     let (x526, x527) = fiat_p384_scalar_mulx_u32(x506, 0x48b0a77a);
+-    let mut x528: u32 = 0;
+-    let mut x529: u32 = 0;
+     let (x528, x529) = fiat_p384_scalar_mulx_u32(x506, 0xecec196a);
+-    let mut x530: u32 = 0;
+-    let mut x531: u32 = 0;
+     let (x530, x531) = fiat_p384_scalar_mulx_u32(x506, 0xccc52973);
+-    let mut x532: u32 = 0;
+-    let mut x533: fiat_p384_scalar_u1 = 0;
+     let (x532, x533) = fiat_p384_scalar_addcarryx_u32(0x0, x531, x528);
+-    let mut x534: u32 = 0;
+-    let mut x535: fiat_p384_scalar_u1 = 0;
+     let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x529, x526);
+-    let mut x536: u32 = 0;
+-    let mut x537: fiat_p384_scalar_u1 = 0;
+     let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x527, x524);
+-    let mut x538: u32 = 0;
+-    let mut x539: fiat_p384_scalar_u1 = 0;
+     let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x525, x522);
+-    let mut x540: u32 = 0;
+-    let mut x541: fiat_p384_scalar_u1 = 0;
+     let (x540, x541) = fiat_p384_scalar_addcarryx_u32(x539, x523, x520);
+-    let mut x542: u32 = 0;
+-    let mut x543: fiat_p384_scalar_u1 = 0;
+     let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x521, x518);
+-    let mut x544: u32 = 0;
+-    let mut x545: fiat_p384_scalar_u1 = 0;
+     let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x519, x516);
+-    let mut x546: u32 = 0;
+-    let mut x547: fiat_p384_scalar_u1 = 0;
+     let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x517, x514);
+-    let mut x548: u32 = 0;
+-    let mut x549: fiat_p384_scalar_u1 = 0;
+     let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x515, x512);
+-    let mut x550: u32 = 0;
+-    let mut x551: fiat_p384_scalar_u1 = 0;
+     let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x513, x510);
+-    let mut x552: u32 = 0;
+-    let mut x553: fiat_p384_scalar_u1 = 0;
+     let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x511, x508);
+     let x554: u32 = ((x553 as u32) + x509);
+-    let mut x555: u32 = 0;
+-    let mut x556: fiat_p384_scalar_u1 = 0;
+     let (x555, x556) = fiat_p384_scalar_addcarryx_u32(0x0, x480, x530);
+-    let mut x557: u32 = 0;
+-    let mut x558: fiat_p384_scalar_u1 = 0;
+     let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x482, x532);
+-    let mut x559: u32 = 0;
+-    let mut x560: fiat_p384_scalar_u1 = 0;
+     let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x484, x534);
+-    let mut x561: u32 = 0;
+-    let mut x562: fiat_p384_scalar_u1 = 0;
+     let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x486, x536);
+-    let mut x563: u32 = 0;
+-    let mut x564: fiat_p384_scalar_u1 = 0;
+     let (x563, x564) = fiat_p384_scalar_addcarryx_u32(x562, x488, x538);
+-    let mut x565: u32 = 0;
+-    let mut x566: fiat_p384_scalar_u1 = 0;
+     let (x565, x566) = fiat_p384_scalar_addcarryx_u32(x564, x490, x540);
+-    let mut x567: u32 = 0;
+-    let mut x568: fiat_p384_scalar_u1 = 0;
+     let (x567, x568) = fiat_p384_scalar_addcarryx_u32(x566, x492, x542);
+-    let mut x569: u32 = 0;
+-    let mut x570: fiat_p384_scalar_u1 = 0;
+     let (x569, x570) = fiat_p384_scalar_addcarryx_u32(x568, x494, x544);
+-    let mut x571: u32 = 0;
+-    let mut x572: fiat_p384_scalar_u1 = 0;
+     let (x571, x572) = fiat_p384_scalar_addcarryx_u32(x570, x496, x546);
+-    let mut x573: u32 = 0;
+-    let mut x574: fiat_p384_scalar_u1 = 0;
+     let (x573, x574) = fiat_p384_scalar_addcarryx_u32(x572, x498, x548);
+-    let mut x575: u32 = 0;
+-    let mut x576: fiat_p384_scalar_u1 = 0;
+     let (x575, x576) = fiat_p384_scalar_addcarryx_u32(x574, x500, x550);
+-    let mut x577: u32 = 0;
+-    let mut x578: fiat_p384_scalar_u1 = 0;
+     let (x577, x578) = fiat_p384_scalar_addcarryx_u32(x576, x502, x552);
+-    let mut x579: u32 = 0;
+-    let mut x580: fiat_p384_scalar_u1 = 0;
+     let (x579, x580) = fiat_p384_scalar_addcarryx_u32(x578, x504, x554);
+     let x581: u32 = ((x580 as u32) + (x505 as u32));
+-    let mut x582: u32 = 0;
+-    let mut x583: u32 = 0;
+     let (x582, x583) = fiat_p384_scalar_mulx_u32(x4, (arg2[11]));
+-    let mut x584: u32 = 0;
+-    let mut x585: u32 = 0;
+     let (x584, x585) = fiat_p384_scalar_mulx_u32(x4, (arg2[10]));
+-    let mut x586: u32 = 0;
+-    let mut x587: u32 = 0;
+     let (x586, x587) = fiat_p384_scalar_mulx_u32(x4, (arg2[9]));
+-    let mut x588: u32 = 0;
+-    let mut x589: u32 = 0;
+     let (x588, x589) = fiat_p384_scalar_mulx_u32(x4, (arg2[8]));
+-    let mut x590: u32 = 0;
+-    let mut x591: u32 = 0;
+     let (x590, x591) = fiat_p384_scalar_mulx_u32(x4, (arg2[7]));
+-    let mut x592: u32 = 0;
+-    let mut x593: u32 = 0;
+     let (x592, x593) = fiat_p384_scalar_mulx_u32(x4, (arg2[6]));
+-    let mut x594: u32 = 0;
+-    let mut x595: u32 = 0;
+     let (x594, x595) = fiat_p384_scalar_mulx_u32(x4, (arg2[5]));
+-    let mut x596: u32 = 0;
+-    let mut x597: u32 = 0;
+     let (x596, x597) = fiat_p384_scalar_mulx_u32(x4, (arg2[4]));
+-    let mut x598: u32 = 0;
+-    let mut x599: u32 = 0;
+     let (x598, x599) = fiat_p384_scalar_mulx_u32(x4, (arg2[3]));
+-    let mut x600: u32 = 0;
+-    let mut x601: u32 = 0;
+     let (x600, x601) = fiat_p384_scalar_mulx_u32(x4, (arg2[2]));
+-    let mut x602: u32 = 0;
+-    let mut x603: u32 = 0;
+     let (x602, x603) = fiat_p384_scalar_mulx_u32(x4, (arg2[1]));
+-    let mut x604: u32 = 0;
+-    let mut x605: u32 = 0;
+     let (x604, x605) = fiat_p384_scalar_mulx_u32(x4, (arg2[0]));
+-    let mut x606: u32 = 0;
+-    let mut x607: fiat_p384_scalar_u1 = 0;
+     let (x606, x607) = fiat_p384_scalar_addcarryx_u32(0x0, x605, x602);
+-    let mut x608: u32 = 0;
+-    let mut x609: fiat_p384_scalar_u1 = 0;
+     let (x608, x609) = fiat_p384_scalar_addcarryx_u32(x607, x603, x600);
+-    let mut x610: u32 = 0;
+-    let mut x611: fiat_p384_scalar_u1 = 0;
+     let (x610, x611) = fiat_p384_scalar_addcarryx_u32(x609, x601, x598);
+-    let mut x612: u32 = 0;
+-    let mut x613: fiat_p384_scalar_u1 = 0;
+     let (x612, x613) = fiat_p384_scalar_addcarryx_u32(x611, x599, x596);
+-    let mut x614: u32 = 0;
+-    let mut x615: fiat_p384_scalar_u1 = 0;
+     let (x614, x615) = fiat_p384_scalar_addcarryx_u32(x613, x597, x594);
+-    let mut x616: u32 = 0;
+-    let mut x617: fiat_p384_scalar_u1 = 0;
+     let (x616, x617) = fiat_p384_scalar_addcarryx_u32(x615, x595, x592);
+-    let mut x618: u32 = 0;
+-    let mut x619: fiat_p384_scalar_u1 = 0;
+     let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x593, x590);
+-    let mut x620: u32 = 0;
+-    let mut x621: fiat_p384_scalar_u1 = 0;
+     let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x591, x588);
+-    let mut x622: u32 = 0;
+-    let mut x623: fiat_p384_scalar_u1 = 0;
+     let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x589, x586);
+-    let mut x624: u32 = 0;
+-    let mut x625: fiat_p384_scalar_u1 = 0;
+     let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x587, x584);
+-    let mut x626: u32 = 0;
+-    let mut x627: fiat_p384_scalar_u1 = 0;
+     let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x585, x582);
+     let x628: u32 = ((x627 as u32) + x583);
+-    let mut x629: u32 = 0;
+-    let mut x630: fiat_p384_scalar_u1 = 0;
+     let (x629, x630) = fiat_p384_scalar_addcarryx_u32(0x0, x557, x604);
+-    let mut x631: u32 = 0;
+-    let mut x632: fiat_p384_scalar_u1 = 0;
+     let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x559, x606);
+-    let mut x633: u32 = 0;
+-    let mut x634: fiat_p384_scalar_u1 = 0;
+     let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x561, x608);
+-    let mut x635: u32 = 0;
+-    let mut x636: fiat_p384_scalar_u1 = 0;
+     let (x635, x636) = fiat_p384_scalar_addcarryx_u32(x634, x563, x610);
+-    let mut x637: u32 = 0;
+-    let mut x638: fiat_p384_scalar_u1 = 0;
+     let (x637, x638) = fiat_p384_scalar_addcarryx_u32(x636, x565, x612);
+-    let mut x639: u32 = 0;
+-    let mut x640: fiat_p384_scalar_u1 = 0;
+     let (x639, x640) = fiat_p384_scalar_addcarryx_u32(x638, x567, x614);
+-    let mut x641: u32 = 0;
+-    let mut x642: fiat_p384_scalar_u1 = 0;
+     let (x641, x642) = fiat_p384_scalar_addcarryx_u32(x640, x569, x616);
+-    let mut x643: u32 = 0;
+-    let mut x644: fiat_p384_scalar_u1 = 0;
+     let (x643, x644) = fiat_p384_scalar_addcarryx_u32(x642, x571, x618);
+-    let mut x645: u32 = 0;
+-    let mut x646: fiat_p384_scalar_u1 = 0;
+     let (x645, x646) = fiat_p384_scalar_addcarryx_u32(x644, x573, x620);
+-    let mut x647: u32 = 0;
+-    let mut x648: fiat_p384_scalar_u1 = 0;
+     let (x647, x648) = fiat_p384_scalar_addcarryx_u32(x646, x575, x622);
+-    let mut x649: u32 = 0;
+-    let mut x650: fiat_p384_scalar_u1 = 0;
+     let (x649, x650) = fiat_p384_scalar_addcarryx_u32(x648, x577, x624);
+-    let mut x651: u32 = 0;
+-    let mut x652: fiat_p384_scalar_u1 = 0;
+     let (x651, x652) = fiat_p384_scalar_addcarryx_u32(x650, x579, x626);
+-    let mut x653: u32 = 0;
+-    let mut x654: fiat_p384_scalar_u1 = 0;
+     let (x653, x654) = fiat_p384_scalar_addcarryx_u32(x652, x581, x628);
+-    let mut x655: u32 = 0;
+-    let mut x656: u32 = 0;
+     let (x655, x656) = fiat_p384_scalar_mulx_u32(x629, 0xe88fdc45);
+-    let mut x657: u32 = 0;
+-    let mut x658: u32 = 0;
+     let (x657, x658) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x659: u32 = 0;
+-    let mut x660: u32 = 0;
+     let (x659, x660) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x661: u32 = 0;
+-    let mut x662: u32 = 0;
+     let (x661, x662) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x663: u32 = 0;
+-    let mut x664: u32 = 0;
+     let (x663, x664) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x665: u32 = 0;
+-    let mut x666: u32 = 0;
+     let (x665, x666) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x667: u32 = 0;
+-    let mut x668: u32 = 0;
+     let (x667, x668) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x669: u32 = 0;
+-    let mut x670: u32 = 0;
+     let (x669, x670) = fiat_p384_scalar_mulx_u32(x655, 0xc7634d81);
+-    let mut x671: u32 = 0;
+-    let mut x672: u32 = 0;
+     let (x671, x672) = fiat_p384_scalar_mulx_u32(x655, 0xf4372ddf);
+-    let mut x673: u32 = 0;
+-    let mut x674: u32 = 0;
+     let (x673, x674) = fiat_p384_scalar_mulx_u32(x655, 0x581a0db2);
+-    let mut x675: u32 = 0;
+-    let mut x676: u32 = 0;
+     let (x675, x676) = fiat_p384_scalar_mulx_u32(x655, 0x48b0a77a);
+-    let mut x677: u32 = 0;
+-    let mut x678: u32 = 0;
+     let (x677, x678) = fiat_p384_scalar_mulx_u32(x655, 0xecec196a);
+-    let mut x679: u32 = 0;
+-    let mut x680: u32 = 0;
+     let (x679, x680) = fiat_p384_scalar_mulx_u32(x655, 0xccc52973);
+-    let mut x681: u32 = 0;
+-    let mut x682: fiat_p384_scalar_u1 = 0;
+     let (x681, x682) = fiat_p384_scalar_addcarryx_u32(0x0, x680, x677);
+-    let mut x683: u32 = 0;
+-    let mut x684: fiat_p384_scalar_u1 = 0;
+     let (x683, x684) = fiat_p384_scalar_addcarryx_u32(x682, x678, x675);
+-    let mut x685: u32 = 0;
+-    let mut x686: fiat_p384_scalar_u1 = 0;
+     let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x676, x673);
+-    let mut x687: u32 = 0;
+-    let mut x688: fiat_p384_scalar_u1 = 0;
+     let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x674, x671);
+-    let mut x689: u32 = 0;
+-    let mut x690: fiat_p384_scalar_u1 = 0;
+     let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x672, x669);
+-    let mut x691: u32 = 0;
+-    let mut x692: fiat_p384_scalar_u1 = 0;
+     let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x670, x667);
+-    let mut x693: u32 = 0;
+-    let mut x694: fiat_p384_scalar_u1 = 0;
+     let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x668, x665);
+-    let mut x695: u32 = 0;
+-    let mut x696: fiat_p384_scalar_u1 = 0;
+     let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x666, x663);
+-    let mut x697: u32 = 0;
+-    let mut x698: fiat_p384_scalar_u1 = 0;
+     let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x664, x661);
+-    let mut x699: u32 = 0;
+-    let mut x700: fiat_p384_scalar_u1 = 0;
+     let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x662, x659);
+-    let mut x701: u32 = 0;
+-    let mut x702: fiat_p384_scalar_u1 = 0;
+     let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x660, x657);
+     let x703: u32 = ((x702 as u32) + x658);
+-    let mut x704: u32 = 0;
+-    let mut x705: fiat_p384_scalar_u1 = 0;
+     let (x704, x705) = fiat_p384_scalar_addcarryx_u32(0x0, x629, x679);
+-    let mut x706: u32 = 0;
+-    let mut x707: fiat_p384_scalar_u1 = 0;
+     let (x706, x707) = fiat_p384_scalar_addcarryx_u32(x705, x631, x681);
+-    let mut x708: u32 = 0;
+-    let mut x709: fiat_p384_scalar_u1 = 0;
+     let (x708, x709) = fiat_p384_scalar_addcarryx_u32(x707, x633, x683);
+-    let mut x710: u32 = 0;
+-    let mut x711: fiat_p384_scalar_u1 = 0;
+     let (x710, x711) = fiat_p384_scalar_addcarryx_u32(x709, x635, x685);
+-    let mut x712: u32 = 0;
+-    let mut x713: fiat_p384_scalar_u1 = 0;
+     let (x712, x713) = fiat_p384_scalar_addcarryx_u32(x711, x637, x687);
+-    let mut x714: u32 = 0;
+-    let mut x715: fiat_p384_scalar_u1 = 0;
+     let (x714, x715) = fiat_p384_scalar_addcarryx_u32(x713, x639, x689);
+-    let mut x716: u32 = 0;
+-    let mut x717: fiat_p384_scalar_u1 = 0;
+     let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x641, x691);
+-    let mut x718: u32 = 0;
+-    let mut x719: fiat_p384_scalar_u1 = 0;
+     let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x643, x693);
+-    let mut x720: u32 = 0;
+-    let mut x721: fiat_p384_scalar_u1 = 0;
+     let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x645, x695);
+-    let mut x722: u32 = 0;
+-    let mut x723: fiat_p384_scalar_u1 = 0;
+     let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x647, x697);
+-    let mut x724: u32 = 0;
+-    let mut x725: fiat_p384_scalar_u1 = 0;
+     let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x649, x699);
+-    let mut x726: u32 = 0;
+-    let mut x727: fiat_p384_scalar_u1 = 0;
+     let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x651, x701);
+-    let mut x728: u32 = 0;
+-    let mut x729: fiat_p384_scalar_u1 = 0;
+     let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x653, x703);
+     let x730: u32 = ((x729 as u32) + (x654 as u32));
+-    let mut x731: u32 = 0;
+-    let mut x732: u32 = 0;
+     let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, (arg2[11]));
+-    let mut x733: u32 = 0;
+-    let mut x734: u32 = 0;
+     let (x733, x734) = fiat_p384_scalar_mulx_u32(x5, (arg2[10]));
+-    let mut x735: u32 = 0;
+-    let mut x736: u32 = 0;
+     let (x735, x736) = fiat_p384_scalar_mulx_u32(x5, (arg2[9]));
+-    let mut x737: u32 = 0;
+-    let mut x738: u32 = 0;
+     let (x737, x738) = fiat_p384_scalar_mulx_u32(x5, (arg2[8]));
+-    let mut x739: u32 = 0;
+-    let mut x740: u32 = 0;
+     let (x739, x740) = fiat_p384_scalar_mulx_u32(x5, (arg2[7]));
+-    let mut x741: u32 = 0;
+-    let mut x742: u32 = 0;
+     let (x741, x742) = fiat_p384_scalar_mulx_u32(x5, (arg2[6]));
+-    let mut x743: u32 = 0;
+-    let mut x744: u32 = 0;
+     let (x743, x744) = fiat_p384_scalar_mulx_u32(x5, (arg2[5]));
+-    let mut x745: u32 = 0;
+-    let mut x746: u32 = 0;
+     let (x745, x746) = fiat_p384_scalar_mulx_u32(x5, (arg2[4]));
+-    let mut x747: u32 = 0;
+-    let mut x748: u32 = 0;
+     let (x747, x748) = fiat_p384_scalar_mulx_u32(x5, (arg2[3]));
+-    let mut x749: u32 = 0;
+-    let mut x750: u32 = 0;
+     let (x749, x750) = fiat_p384_scalar_mulx_u32(x5, (arg2[2]));
+-    let mut x751: u32 = 0;
+-    let mut x752: u32 = 0;
+     let (x751, x752) = fiat_p384_scalar_mulx_u32(x5, (arg2[1]));
+-    let mut x753: u32 = 0;
+-    let mut x754: u32 = 0;
+     let (x753, x754) = fiat_p384_scalar_mulx_u32(x5, (arg2[0]));
+-    let mut x755: u32 = 0;
+-    let mut x756: fiat_p384_scalar_u1 = 0;
+     let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x754, x751);
+-    let mut x757: u32 = 0;
+-    let mut x758: fiat_p384_scalar_u1 = 0;
+     let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x752, x749);
+-    let mut x759: u32 = 0;
+-    let mut x760: fiat_p384_scalar_u1 = 0;
+     let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x750, x747);
+-    let mut x761: u32 = 0;
+-    let mut x762: fiat_p384_scalar_u1 = 0;
+     let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x748, x745);
+-    let mut x763: u32 = 0;
+-    let mut x764: fiat_p384_scalar_u1 = 0;
+     let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x746, x743);
+-    let mut x765: u32 = 0;
+-    let mut x766: fiat_p384_scalar_u1 = 0;
+     let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x744, x741);
+-    let mut x767: u32 = 0;
+-    let mut x768: fiat_p384_scalar_u1 = 0;
+     let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x742, x739);
+-    let mut x769: u32 = 0;
+-    let mut x770: fiat_p384_scalar_u1 = 0;
+     let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x740, x737);
+-    let mut x771: u32 = 0;
+-    let mut x772: fiat_p384_scalar_u1 = 0;
+     let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x738, x735);
+-    let mut x773: u32 = 0;
+-    let mut x774: fiat_p384_scalar_u1 = 0;
+     let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x736, x733);
+-    let mut x775: u32 = 0;
+-    let mut x776: fiat_p384_scalar_u1 = 0;
+     let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x734, x731);
+     let x777: u32 = ((x776 as u32) + x732);
+-    let mut x778: u32 = 0;
+-    let mut x779: fiat_p384_scalar_u1 = 0;
+     let (x778, x779) = fiat_p384_scalar_addcarryx_u32(0x0, x706, x753);
+-    let mut x780: u32 = 0;
+-    let mut x781: fiat_p384_scalar_u1 = 0;
+     let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x708, x755);
+-    let mut x782: u32 = 0;
+-    let mut x783: fiat_p384_scalar_u1 = 0;
+     let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x710, x757);
+-    let mut x784: u32 = 0;
+-    let mut x785: fiat_p384_scalar_u1 = 0;
+     let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x712, x759);
+-    let mut x786: u32 = 0;
+-    let mut x787: fiat_p384_scalar_u1 = 0;
+     let (x786, x787) = fiat_p384_scalar_addcarryx_u32(x785, x714, x761);
+-    let mut x788: u32 = 0;
+-    let mut x789: fiat_p384_scalar_u1 = 0;
+     let (x788, x789) = fiat_p384_scalar_addcarryx_u32(x787, x716, x763);
+-    let mut x790: u32 = 0;
+-    let mut x791: fiat_p384_scalar_u1 = 0;
+     let (x790, x791) = fiat_p384_scalar_addcarryx_u32(x789, x718, x765);
+-    let mut x792: u32 = 0;
+-    let mut x793: fiat_p384_scalar_u1 = 0;
+     let (x792, x793) = fiat_p384_scalar_addcarryx_u32(x791, x720, x767);
+-    let mut x794: u32 = 0;
+-    let mut x795: fiat_p384_scalar_u1 = 0;
+     let (x794, x795) = fiat_p384_scalar_addcarryx_u32(x793, x722, x769);
+-    let mut x796: u32 = 0;
+-    let mut x797: fiat_p384_scalar_u1 = 0;
+     let (x796, x797) = fiat_p384_scalar_addcarryx_u32(x795, x724, x771);
+-    let mut x798: u32 = 0;
+-    let mut x799: fiat_p384_scalar_u1 = 0;
+     let (x798, x799) = fiat_p384_scalar_addcarryx_u32(x797, x726, x773);
+-    let mut x800: u32 = 0;
+-    let mut x801: fiat_p384_scalar_u1 = 0;
+     let (x800, x801) = fiat_p384_scalar_addcarryx_u32(x799, x728, x775);
+-    let mut x802: u32 = 0;
+-    let mut x803: fiat_p384_scalar_u1 = 0;
+     let (x802, x803) = fiat_p384_scalar_addcarryx_u32(x801, x730, x777);
+-    let mut x804: u32 = 0;
+-    let mut x805: u32 = 0;
+     let (x804, x805) = fiat_p384_scalar_mulx_u32(x778, 0xe88fdc45);
+-    let mut x806: u32 = 0;
+-    let mut x807: u32 = 0;
+     let (x806, x807) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x808: u32 = 0;
+-    let mut x809: u32 = 0;
+     let (x808, x809) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x810: u32 = 0;
+-    let mut x811: u32 = 0;
+     let (x810, x811) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x812: u32 = 0;
+-    let mut x813: u32 = 0;
+     let (x812, x813) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x814: u32 = 0;
+-    let mut x815: u32 = 0;
+     let (x814, x815) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x816: u32 = 0;
+-    let mut x817: u32 = 0;
+     let (x816, x817) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x818: u32 = 0;
+-    let mut x819: u32 = 0;
+     let (x818, x819) = fiat_p384_scalar_mulx_u32(x804, 0xc7634d81);
+-    let mut x820: u32 = 0;
+-    let mut x821: u32 = 0;
+     let (x820, x821) = fiat_p384_scalar_mulx_u32(x804, 0xf4372ddf);
+-    let mut x822: u32 = 0;
+-    let mut x823: u32 = 0;
+     let (x822, x823) = fiat_p384_scalar_mulx_u32(x804, 0x581a0db2);
+-    let mut x824: u32 = 0;
+-    let mut x825: u32 = 0;
+     let (x824, x825) = fiat_p384_scalar_mulx_u32(x804, 0x48b0a77a);
+-    let mut x826: u32 = 0;
+-    let mut x827: u32 = 0;
+     let (x826, x827) = fiat_p384_scalar_mulx_u32(x804, 0xecec196a);
+-    let mut x828: u32 = 0;
+-    let mut x829: u32 = 0;
+     let (x828, x829) = fiat_p384_scalar_mulx_u32(x804, 0xccc52973);
+-    let mut x830: u32 = 0;
+-    let mut x831: fiat_p384_scalar_u1 = 0;
+     let (x830, x831) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x826);
+-    let mut x832: u32 = 0;
+-    let mut x833: fiat_p384_scalar_u1 = 0;
+     let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x827, x824);
+-    let mut x834: u32 = 0;
+-    let mut x835: fiat_p384_scalar_u1 = 0;
+     let (x834, x835) = fiat_p384_scalar_addcarryx_u32(x833, x825, x822);
+-    let mut x836: u32 = 0;
+-    let mut x837: fiat_p384_scalar_u1 = 0;
+     let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x823, x820);
+-    let mut x838: u32 = 0;
+-    let mut x839: fiat_p384_scalar_u1 = 0;
+     let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x821, x818);
+-    let mut x840: u32 = 0;
+-    let mut x841: fiat_p384_scalar_u1 = 0;
+     let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x819, x816);
+-    let mut x842: u32 = 0;
+-    let mut x843: fiat_p384_scalar_u1 = 0;
+     let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x817, x814);
+-    let mut x844: u32 = 0;
+-    let mut x845: fiat_p384_scalar_u1 = 0;
+     let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x815, x812);
+-    let mut x846: u32 = 0;
+-    let mut x847: fiat_p384_scalar_u1 = 0;
+     let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x813, x810);
+-    let mut x848: u32 = 0;
+-    let mut x849: fiat_p384_scalar_u1 = 0;
+     let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x811, x808);
+-    let mut x850: u32 = 0;
+-    let mut x851: fiat_p384_scalar_u1 = 0;
+     let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x809, x806);
+     let x852: u32 = ((x851 as u32) + x807);
+-    let mut x853: u32 = 0;
+-    let mut x854: fiat_p384_scalar_u1 = 0;
+     let (x853, x854) = fiat_p384_scalar_addcarryx_u32(0x0, x778, x828);
+-    let mut x855: u32 = 0;
+-    let mut x856: fiat_p384_scalar_u1 = 0;
+     let (x855, x856) = fiat_p384_scalar_addcarryx_u32(x854, x780, x830);
+-    let mut x857: u32 = 0;
+-    let mut x858: fiat_p384_scalar_u1 = 0;
+     let (x857, x858) = fiat_p384_scalar_addcarryx_u32(x856, x782, x832);
+-    let mut x859: u32 = 0;
+-    let mut x860: fiat_p384_scalar_u1 = 0;
+     let (x859, x860) = fiat_p384_scalar_addcarryx_u32(x858, x784, x834);
+-    let mut x861: u32 = 0;
+-    let mut x862: fiat_p384_scalar_u1 = 0;
+     let (x861, x862) = fiat_p384_scalar_addcarryx_u32(x860, x786, x836);
+-    let mut x863: u32 = 0;
+-    let mut x864: fiat_p384_scalar_u1 = 0;
+     let (x863, x864) = fiat_p384_scalar_addcarryx_u32(x862, x788, x838);
+-    let mut x865: u32 = 0;
+-    let mut x866: fiat_p384_scalar_u1 = 0;
+     let (x865, x866) = fiat_p384_scalar_addcarryx_u32(x864, x790, x840);
+-    let mut x867: u32 = 0;
+-    let mut x868: fiat_p384_scalar_u1 = 0;
+     let (x867, x868) = fiat_p384_scalar_addcarryx_u32(x866, x792, x842);
+-    let mut x869: u32 = 0;
+-    let mut x870: fiat_p384_scalar_u1 = 0;
+     let (x869, x870) = fiat_p384_scalar_addcarryx_u32(x868, x794, x844);
+-    let mut x871: u32 = 0;
+-    let mut x872: fiat_p384_scalar_u1 = 0;
+     let (x871, x872) = fiat_p384_scalar_addcarryx_u32(x870, x796, x846);
+-    let mut x873: u32 = 0;
+-    let mut x874: fiat_p384_scalar_u1 = 0;
+     let (x873, x874) = fiat_p384_scalar_addcarryx_u32(x872, x798, x848);
+-    let mut x875: u32 = 0;
+-    let mut x876: fiat_p384_scalar_u1 = 0;
+     let (x875, x876) = fiat_p384_scalar_addcarryx_u32(x874, x800, x850);
+-    let mut x877: u32 = 0;
+-    let mut x878: fiat_p384_scalar_u1 = 0;
+     let (x877, x878) = fiat_p384_scalar_addcarryx_u32(x876, x802, x852);
+     let x879: u32 = ((x878 as u32) + (x803 as u32));
+-    let mut x880: u32 = 0;
+-    let mut x881: u32 = 0;
+     let (x880, x881) = fiat_p384_scalar_mulx_u32(x6, (arg2[11]));
+-    let mut x882: u32 = 0;
+-    let mut x883: u32 = 0;
+     let (x882, x883) = fiat_p384_scalar_mulx_u32(x6, (arg2[10]));
+-    let mut x884: u32 = 0;
+-    let mut x885: u32 = 0;
+     let (x884, x885) = fiat_p384_scalar_mulx_u32(x6, (arg2[9]));
+-    let mut x886: u32 = 0;
+-    let mut x887: u32 = 0;
+     let (x886, x887) = fiat_p384_scalar_mulx_u32(x6, (arg2[8]));
+-    let mut x888: u32 = 0;
+-    let mut x889: u32 = 0;
+     let (x888, x889) = fiat_p384_scalar_mulx_u32(x6, (arg2[7]));
+-    let mut x890: u32 = 0;
+-    let mut x891: u32 = 0;
+     let (x890, x891) = fiat_p384_scalar_mulx_u32(x6, (arg2[6]));
+-    let mut x892: u32 = 0;
+-    let mut x893: u32 = 0;
+     let (x892, x893) = fiat_p384_scalar_mulx_u32(x6, (arg2[5]));
+-    let mut x894: u32 = 0;
+-    let mut x895: u32 = 0;
+     let (x894, x895) = fiat_p384_scalar_mulx_u32(x6, (arg2[4]));
+-    let mut x896: u32 = 0;
+-    let mut x897: u32 = 0;
+     let (x896, x897) = fiat_p384_scalar_mulx_u32(x6, (arg2[3]));
+-    let mut x898: u32 = 0;
+-    let mut x899: u32 = 0;
+     let (x898, x899) = fiat_p384_scalar_mulx_u32(x6, (arg2[2]));
+-    let mut x900: u32 = 0;
+-    let mut x901: u32 = 0;
+     let (x900, x901) = fiat_p384_scalar_mulx_u32(x6, (arg2[1]));
+-    let mut x902: u32 = 0;
+-    let mut x903: u32 = 0;
+     let (x902, x903) = fiat_p384_scalar_mulx_u32(x6, (arg2[0]));
+-    let mut x904: u32 = 0;
+-    let mut x905: fiat_p384_scalar_u1 = 0;
+     let (x904, x905) = fiat_p384_scalar_addcarryx_u32(0x0, x903, x900);
+-    let mut x906: u32 = 0;
+-    let mut x907: fiat_p384_scalar_u1 = 0;
+     let (x906, x907) = fiat_p384_scalar_addcarryx_u32(x905, x901, x898);
+-    let mut x908: u32 = 0;
+-    let mut x909: fiat_p384_scalar_u1 = 0;
+     let (x908, x909) = fiat_p384_scalar_addcarryx_u32(x907, x899, x896);
+-    let mut x910: u32 = 0;
+-    let mut x911: fiat_p384_scalar_u1 = 0;
+     let (x910, x911) = fiat_p384_scalar_addcarryx_u32(x909, x897, x894);
+-    let mut x912: u32 = 0;
+-    let mut x913: fiat_p384_scalar_u1 = 0;
+     let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x895, x892);
+-    let mut x914: u32 = 0;
+-    let mut x915: fiat_p384_scalar_u1 = 0;
+     let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x893, x890);
+-    let mut x916: u32 = 0;
+-    let mut x917: fiat_p384_scalar_u1 = 0;
+     let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x891, x888);
+-    let mut x918: u32 = 0;
+-    let mut x919: fiat_p384_scalar_u1 = 0;
+     let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x889, x886);
+-    let mut x920: u32 = 0;
+-    let mut x921: fiat_p384_scalar_u1 = 0;
+     let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x887, x884);
+-    let mut x922: u32 = 0;
+-    let mut x923: fiat_p384_scalar_u1 = 0;
+     let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x885, x882);
+-    let mut x924: u32 = 0;
+-    let mut x925: fiat_p384_scalar_u1 = 0;
+     let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x883, x880);
+     let x926: u32 = ((x925 as u32) + x881);
+-    let mut x927: u32 = 0;
+-    let mut x928: fiat_p384_scalar_u1 = 0;
+     let (x927, x928) = fiat_p384_scalar_addcarryx_u32(0x0, x855, x902);
+-    let mut x929: u32 = 0;
+-    let mut x930: fiat_p384_scalar_u1 = 0;
+     let (x929, x930) = fiat_p384_scalar_addcarryx_u32(x928, x857, x904);
+-    let mut x931: u32 = 0;
+-    let mut x932: fiat_p384_scalar_u1 = 0;
+     let (x931, x932) = fiat_p384_scalar_addcarryx_u32(x930, x859, x906);
+-    let mut x933: u32 = 0;
+-    let mut x934: fiat_p384_scalar_u1 = 0;
+     let (x933, x934) = fiat_p384_scalar_addcarryx_u32(x932, x861, x908);
+-    let mut x935: u32 = 0;
+-    let mut x936: fiat_p384_scalar_u1 = 0;
+     let (x935, x936) = fiat_p384_scalar_addcarryx_u32(x934, x863, x910);
+-    let mut x937: u32 = 0;
+-    let mut x938: fiat_p384_scalar_u1 = 0;
+     let (x937, x938) = fiat_p384_scalar_addcarryx_u32(x936, x865, x912);
+-    let mut x939: u32 = 0;
+-    let mut x940: fiat_p384_scalar_u1 = 0;
+     let (x939, x940) = fiat_p384_scalar_addcarryx_u32(x938, x867, x914);
+-    let mut x941: u32 = 0;
+-    let mut x942: fiat_p384_scalar_u1 = 0;
+     let (x941, x942) = fiat_p384_scalar_addcarryx_u32(x940, x869, x916);
+-    let mut x943: u32 = 0;
+-    let mut x944: fiat_p384_scalar_u1 = 0;
+     let (x943, x944) = fiat_p384_scalar_addcarryx_u32(x942, x871, x918);
+-    let mut x945: u32 = 0;
+-    let mut x946: fiat_p384_scalar_u1 = 0;
+     let (x945, x946) = fiat_p384_scalar_addcarryx_u32(x944, x873, x920);
+-    let mut x947: u32 = 0;
+-    let mut x948: fiat_p384_scalar_u1 = 0;
+     let (x947, x948) = fiat_p384_scalar_addcarryx_u32(x946, x875, x922);
+-    let mut x949: u32 = 0;
+-    let mut x950: fiat_p384_scalar_u1 = 0;
+     let (x949, x950) = fiat_p384_scalar_addcarryx_u32(x948, x877, x924);
+-    let mut x951: u32 = 0;
+-    let mut x952: fiat_p384_scalar_u1 = 0;
+     let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x879, x926);
+-    let mut x953: u32 = 0;
+-    let mut x954: u32 = 0;
+     let (x953, x954) = fiat_p384_scalar_mulx_u32(x927, 0xe88fdc45);
+-    let mut x955: u32 = 0;
+-    let mut x956: u32 = 0;
+     let (x955, x956) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x957: u32 = 0;
+-    let mut x958: u32 = 0;
+     let (x957, x958) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x959: u32 = 0;
+-    let mut x960: u32 = 0;
+     let (x959, x960) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x961: u32 = 0;
+-    let mut x962: u32 = 0;
+     let (x961, x962) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x963: u32 = 0;
+-    let mut x964: u32 = 0;
+     let (x963, x964) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x965: u32 = 0;
+-    let mut x966: u32 = 0;
+     let (x965, x966) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x967: u32 = 0;
+-    let mut x968: u32 = 0;
+     let (x967, x968) = fiat_p384_scalar_mulx_u32(x953, 0xc7634d81);
+-    let mut x969: u32 = 0;
+-    let mut x970: u32 = 0;
+     let (x969, x970) = fiat_p384_scalar_mulx_u32(x953, 0xf4372ddf);
+-    let mut x971: u32 = 0;
+-    let mut x972: u32 = 0;
+     let (x971, x972) = fiat_p384_scalar_mulx_u32(x953, 0x581a0db2);
+-    let mut x973: u32 = 0;
+-    let mut x974: u32 = 0;
+     let (x973, x974) = fiat_p384_scalar_mulx_u32(x953, 0x48b0a77a);
+-    let mut x975: u32 = 0;
+-    let mut x976: u32 = 0;
+     let (x975, x976) = fiat_p384_scalar_mulx_u32(x953, 0xecec196a);
+-    let mut x977: u32 = 0;
+-    let mut x978: u32 = 0;
+     let (x977, x978) = fiat_p384_scalar_mulx_u32(x953, 0xccc52973);
+-    let mut x979: u32 = 0;
+-    let mut x980: fiat_p384_scalar_u1 = 0;
+     let (x979, x980) = fiat_p384_scalar_addcarryx_u32(0x0, x978, x975);
+-    let mut x981: u32 = 0;
+-    let mut x982: fiat_p384_scalar_u1 = 0;
+     let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x976, x973);
+-    let mut x983: u32 = 0;
+-    let mut x984: fiat_p384_scalar_u1 = 0;
+     let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x974, x971);
+-    let mut x985: u32 = 0;
+-    let mut x986: fiat_p384_scalar_u1 = 0;
+     let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x972, x969);
+-    let mut x987: u32 = 0;
+-    let mut x988: fiat_p384_scalar_u1 = 0;
+     let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x970, x967);
+-    let mut x989: u32 = 0;
+-    let mut x990: fiat_p384_scalar_u1 = 0;
+     let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x968, x965);
+-    let mut x991: u32 = 0;
+-    let mut x992: fiat_p384_scalar_u1 = 0;
+     let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x966, x963);
+-    let mut x993: u32 = 0;
+-    let mut x994: fiat_p384_scalar_u1 = 0;
+     let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x964, x961);
+-    let mut x995: u32 = 0;
+-    let mut x996: fiat_p384_scalar_u1 = 0;
+     let (x995, x996) = fiat_p384_scalar_addcarryx_u32(x994, x962, x959);
+-    let mut x997: u32 = 0;
+-    let mut x998: fiat_p384_scalar_u1 = 0;
+     let (x997, x998) = fiat_p384_scalar_addcarryx_u32(x996, x960, x957);
+-    let mut x999: u32 = 0;
+-    let mut x1000: fiat_p384_scalar_u1 = 0;
+     let (x999, x1000) = fiat_p384_scalar_addcarryx_u32(x998, x958, x955);
+     let x1001: u32 = ((x1000 as u32) + x956);
+-    let mut x1002: u32 = 0;
+-    let mut x1003: fiat_p384_scalar_u1 = 0;
+     let (x1002, x1003) = fiat_p384_scalar_addcarryx_u32(0x0, x927, x977);
+-    let mut x1004: u32 = 0;
+-    let mut x1005: fiat_p384_scalar_u1 = 0;
+     let (x1004, x1005) = fiat_p384_scalar_addcarryx_u32(x1003, x929, x979);
+-    let mut x1006: u32 = 0;
+-    let mut x1007: fiat_p384_scalar_u1 = 0;
+     let (x1006, x1007) = fiat_p384_scalar_addcarryx_u32(x1005, x931, x981);
+-    let mut x1008: u32 = 0;
+-    let mut x1009: fiat_p384_scalar_u1 = 0;
+     let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(x1007, x933, x983);
+-    let mut x1010: u32 = 0;
+-    let mut x1011: fiat_p384_scalar_u1 = 0;
+     let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x935, x985);
+-    let mut x1012: u32 = 0;
+-    let mut x1013: fiat_p384_scalar_u1 = 0;
+     let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x937, x987);
+-    let mut x1014: u32 = 0;
+-    let mut x1015: fiat_p384_scalar_u1 = 0;
+     let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x939, x989);
+-    let mut x1016: u32 = 0;
+-    let mut x1017: fiat_p384_scalar_u1 = 0;
+     let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x941, x991);
+-    let mut x1018: u32 = 0;
+-    let mut x1019: fiat_p384_scalar_u1 = 0;
+     let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x943, x993);
+-    let mut x1020: u32 = 0;
+-    let mut x1021: fiat_p384_scalar_u1 = 0;
+     let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x945, x995);
+-    let mut x1022: u32 = 0;
+-    let mut x1023: fiat_p384_scalar_u1 = 0;
+     let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x947, x997);
+-    let mut x1024: u32 = 0;
+-    let mut x1025: fiat_p384_scalar_u1 = 0;
+     let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x949, x999);
+-    let mut x1026: u32 = 0;
+-    let mut x1027: fiat_p384_scalar_u1 = 0;
+     let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x951, x1001);
+     let x1028: u32 = ((x1027 as u32) + (x952 as u32));
+-    let mut x1029: u32 = 0;
+-    let mut x1030: u32 = 0;
+     let (x1029, x1030) = fiat_p384_scalar_mulx_u32(x7, (arg2[11]));
+-    let mut x1031: u32 = 0;
+-    let mut x1032: u32 = 0;
+     let (x1031, x1032) = fiat_p384_scalar_mulx_u32(x7, (arg2[10]));
+-    let mut x1033: u32 = 0;
+-    let mut x1034: u32 = 0;
+     let (x1033, x1034) = fiat_p384_scalar_mulx_u32(x7, (arg2[9]));
+-    let mut x1035: u32 = 0;
+-    let mut x1036: u32 = 0;
+     let (x1035, x1036) = fiat_p384_scalar_mulx_u32(x7, (arg2[8]));
+-    let mut x1037: u32 = 0;
+-    let mut x1038: u32 = 0;
+     let (x1037, x1038) = fiat_p384_scalar_mulx_u32(x7, (arg2[7]));
+-    let mut x1039: u32 = 0;
+-    let mut x1040: u32 = 0;
+     let (x1039, x1040) = fiat_p384_scalar_mulx_u32(x7, (arg2[6]));
+-    let mut x1041: u32 = 0;
+-    let mut x1042: u32 = 0;
+     let (x1041, x1042) = fiat_p384_scalar_mulx_u32(x7, (arg2[5]));
+-    let mut x1043: u32 = 0;
+-    let mut x1044: u32 = 0;
+     let (x1043, x1044) = fiat_p384_scalar_mulx_u32(x7, (arg2[4]));
+-    let mut x1045: u32 = 0;
+-    let mut x1046: u32 = 0;
+     let (x1045, x1046) = fiat_p384_scalar_mulx_u32(x7, (arg2[3]));
+-    let mut x1047: u32 = 0;
+-    let mut x1048: u32 = 0;
+     let (x1047, x1048) = fiat_p384_scalar_mulx_u32(x7, (arg2[2]));
+-    let mut x1049: u32 = 0;
+-    let mut x1050: u32 = 0;
+     let (x1049, x1050) = fiat_p384_scalar_mulx_u32(x7, (arg2[1]));
+-    let mut x1051: u32 = 0;
+-    let mut x1052: u32 = 0;
+     let (x1051, x1052) = fiat_p384_scalar_mulx_u32(x7, (arg2[0]));
+-    let mut x1053: u32 = 0;
+-    let mut x1054: fiat_p384_scalar_u1 = 0;
+     let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(0x0, x1052, x1049);
+-    let mut x1055: u32 = 0;
+-    let mut x1056: fiat_p384_scalar_u1 = 0;
+     let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x1050, x1047);
+-    let mut x1057: u32 = 0;
+-    let mut x1058: fiat_p384_scalar_u1 = 0;
+     let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x1048, x1045);
+-    let mut x1059: u32 = 0;
+-    let mut x1060: fiat_p384_scalar_u1 = 0;
+     let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x1046, x1043);
+-    let mut x1061: u32 = 0;
+-    let mut x1062: fiat_p384_scalar_u1 = 0;
+     let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x1044, x1041);
+-    let mut x1063: u32 = 0;
+-    let mut x1064: fiat_p384_scalar_u1 = 0;
+     let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x1042, x1039);
+-    let mut x1065: u32 = 0;
+-    let mut x1066: fiat_p384_scalar_u1 = 0;
+     let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x1040, x1037);
+-    let mut x1067: u32 = 0;
+-    let mut x1068: fiat_p384_scalar_u1 = 0;
+     let (x1067, x1068) = fiat_p384_scalar_addcarryx_u32(x1066, x1038, x1035);
+-    let mut x1069: u32 = 0;
+-    let mut x1070: fiat_p384_scalar_u1 = 0;
+     let (x1069, x1070) = fiat_p384_scalar_addcarryx_u32(x1068, x1036, x1033);
+-    let mut x1071: u32 = 0;
+-    let mut x1072: fiat_p384_scalar_u1 = 0;
+     let (x1071, x1072) = fiat_p384_scalar_addcarryx_u32(x1070, x1034, x1031);
+-    let mut x1073: u32 = 0;
+-    let mut x1074: fiat_p384_scalar_u1 = 0;
+     let (x1073, x1074) = fiat_p384_scalar_addcarryx_u32(x1072, x1032, x1029);
+     let x1075: u32 = ((x1074 as u32) + x1030);
+-    let mut x1076: u32 = 0;
+-    let mut x1077: fiat_p384_scalar_u1 = 0;
+     let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(0x0, x1004, x1051);
+-    let mut x1078: u32 = 0;
+-    let mut x1079: fiat_p384_scalar_u1 = 0;
+     let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1006, x1053);
+-    let mut x1080: u32 = 0;
+-    let mut x1081: fiat_p384_scalar_u1 = 0;
+     let (x1080, x1081) = fiat_p384_scalar_addcarryx_u32(x1079, x1008, x1055);
+-    let mut x1082: u32 = 0;
+-    let mut x1083: fiat_p384_scalar_u1 = 0;
+     let (x1082, x1083) = fiat_p384_scalar_addcarryx_u32(x1081, x1010, x1057);
+-    let mut x1084: u32 = 0;
+-    let mut x1085: fiat_p384_scalar_u1 = 0;
+     let (x1084, x1085) = fiat_p384_scalar_addcarryx_u32(x1083, x1012, x1059);
+-    let mut x1086: u32 = 0;
+-    let mut x1087: fiat_p384_scalar_u1 = 0;
+     let (x1086, x1087) = fiat_p384_scalar_addcarryx_u32(x1085, x1014, x1061);
+-    let mut x1088: u32 = 0;
+-    let mut x1089: fiat_p384_scalar_u1 = 0;
+     let (x1088, x1089) = fiat_p384_scalar_addcarryx_u32(x1087, x1016, x1063);
+-    let mut x1090: u32 = 0;
+-    let mut x1091: fiat_p384_scalar_u1 = 0;
+     let (x1090, x1091) = fiat_p384_scalar_addcarryx_u32(x1089, x1018, x1065);
+-    let mut x1092: u32 = 0;
+-    let mut x1093: fiat_p384_scalar_u1 = 0;
+     let (x1092, x1093) = fiat_p384_scalar_addcarryx_u32(x1091, x1020, x1067);
+-    let mut x1094: u32 = 0;
+-    let mut x1095: fiat_p384_scalar_u1 = 0;
+     let (x1094, x1095) = fiat_p384_scalar_addcarryx_u32(x1093, x1022, x1069);
+-    let mut x1096: u32 = 0;
+-    let mut x1097: fiat_p384_scalar_u1 = 0;
+     let (x1096, x1097) = fiat_p384_scalar_addcarryx_u32(x1095, x1024, x1071);
+-    let mut x1098: u32 = 0;
+-    let mut x1099: fiat_p384_scalar_u1 = 0;
+     let (x1098, x1099) = fiat_p384_scalar_addcarryx_u32(x1097, x1026, x1073);
+-    let mut x1100: u32 = 0;
+-    let mut x1101: fiat_p384_scalar_u1 = 0;
+     let (x1100, x1101) = fiat_p384_scalar_addcarryx_u32(x1099, x1028, x1075);
+-    let mut x1102: u32 = 0;
+-    let mut x1103: u32 = 0;
+     let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1076, 0xe88fdc45);
+-    let mut x1104: u32 = 0;
+-    let mut x1105: u32 = 0;
+     let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1106: u32 = 0;
+-    let mut x1107: u32 = 0;
+     let (x1106, x1107) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1108: u32 = 0;
+-    let mut x1109: u32 = 0;
+     let (x1108, x1109) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1110: u32 = 0;
+-    let mut x1111: u32 = 0;
+     let (x1110, x1111) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1112: u32 = 0;
+-    let mut x1113: u32 = 0;
+     let (x1112, x1113) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1114: u32 = 0;
+-    let mut x1115: u32 = 0;
+     let (x1114, x1115) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1116: u32 = 0;
+-    let mut x1117: u32 = 0;
+     let (x1116, x1117) = fiat_p384_scalar_mulx_u32(x1102, 0xc7634d81);
+-    let mut x1118: u32 = 0;
+-    let mut x1119: u32 = 0;
+     let (x1118, x1119) = fiat_p384_scalar_mulx_u32(x1102, 0xf4372ddf);
+-    let mut x1120: u32 = 0;
+-    let mut x1121: u32 = 0;
+     let (x1120, x1121) = fiat_p384_scalar_mulx_u32(x1102, 0x581a0db2);
+-    let mut x1122: u32 = 0;
+-    let mut x1123: u32 = 0;
+     let (x1122, x1123) = fiat_p384_scalar_mulx_u32(x1102, 0x48b0a77a);
+-    let mut x1124: u32 = 0;
+-    let mut x1125: u32 = 0;
+     let (x1124, x1125) = fiat_p384_scalar_mulx_u32(x1102, 0xecec196a);
+-    let mut x1126: u32 = 0;
+-    let mut x1127: u32 = 0;
+     let (x1126, x1127) = fiat_p384_scalar_mulx_u32(x1102, 0xccc52973);
+-    let mut x1128: u32 = 0;
+-    let mut x1129: fiat_p384_scalar_u1 = 0;
+     let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1127, x1124);
+-    let mut x1130: u32 = 0;
+-    let mut x1131: fiat_p384_scalar_u1 = 0;
+     let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1125, x1122);
+-    let mut x1132: u32 = 0;
+-    let mut x1133: fiat_p384_scalar_u1 = 0;
+     let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1123, x1120);
+-    let mut x1134: u32 = 0;
+-    let mut x1135: fiat_p384_scalar_u1 = 0;
+     let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1121, x1118);
+-    let mut x1136: u32 = 0;
+-    let mut x1137: fiat_p384_scalar_u1 = 0;
+     let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1119, x1116);
+-    let mut x1138: u32 = 0;
+-    let mut x1139: fiat_p384_scalar_u1 = 0;
+     let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1117, x1114);
+-    let mut x1140: u32 = 0;
+-    let mut x1141: fiat_p384_scalar_u1 = 0;
+     let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1115, x1112);
+-    let mut x1142: u32 = 0;
+-    let mut x1143: fiat_p384_scalar_u1 = 0;
+     let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1113, x1110);
+-    let mut x1144: u32 = 0;
+-    let mut x1145: fiat_p384_scalar_u1 = 0;
+     let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1111, x1108);
+-    let mut x1146: u32 = 0;
+-    let mut x1147: fiat_p384_scalar_u1 = 0;
+     let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1109, x1106);
+-    let mut x1148: u32 = 0;
+-    let mut x1149: fiat_p384_scalar_u1 = 0;
+     let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1107, x1104);
+     let x1150: u32 = ((x1149 as u32) + x1105);
+-    let mut x1151: u32 = 0;
+-    let mut x1152: fiat_p384_scalar_u1 = 0;
+     let (x1151, x1152) = fiat_p384_scalar_addcarryx_u32(0x0, x1076, x1126);
+-    let mut x1153: u32 = 0;
+-    let mut x1154: fiat_p384_scalar_u1 = 0;
+     let (x1153, x1154) = fiat_p384_scalar_addcarryx_u32(x1152, x1078, x1128);
+-    let mut x1155: u32 = 0;
+-    let mut x1156: fiat_p384_scalar_u1 = 0;
+     let (x1155, x1156) = fiat_p384_scalar_addcarryx_u32(x1154, x1080, x1130);
+-    let mut x1157: u32 = 0;
+-    let mut x1158: fiat_p384_scalar_u1 = 0;
+     let (x1157, x1158) = fiat_p384_scalar_addcarryx_u32(x1156, x1082, x1132);
+-    let mut x1159: u32 = 0;
+-    let mut x1160: fiat_p384_scalar_u1 = 0;
+     let (x1159, x1160) = fiat_p384_scalar_addcarryx_u32(x1158, x1084, x1134);
+-    let mut x1161: u32 = 0;
+-    let mut x1162: fiat_p384_scalar_u1 = 0;
+     let (x1161, x1162) = fiat_p384_scalar_addcarryx_u32(x1160, x1086, x1136);
+-    let mut x1163: u32 = 0;
+-    let mut x1164: fiat_p384_scalar_u1 = 0;
+     let (x1163, x1164) = fiat_p384_scalar_addcarryx_u32(x1162, x1088, x1138);
+-    let mut x1165: u32 = 0;
+-    let mut x1166: fiat_p384_scalar_u1 = 0;
+     let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(x1164, x1090, x1140);
+-    let mut x1167: u32 = 0;
+-    let mut x1168: fiat_p384_scalar_u1 = 0;
+     let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1092, x1142);
+-    let mut x1169: u32 = 0;
+-    let mut x1170: fiat_p384_scalar_u1 = 0;
+     let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1094, x1144);
+-    let mut x1171: u32 = 0;
+-    let mut x1172: fiat_p384_scalar_u1 = 0;
+     let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1096, x1146);
+-    let mut x1173: u32 = 0;
+-    let mut x1174: fiat_p384_scalar_u1 = 0;
+     let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1098, x1148);
+-    let mut x1175: u32 = 0;
+-    let mut x1176: fiat_p384_scalar_u1 = 0;
+     let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1100, x1150);
+     let x1177: u32 = ((x1176 as u32) + (x1101 as u32));
+-    let mut x1178: u32 = 0;
+-    let mut x1179: u32 = 0;
+     let (x1178, x1179) = fiat_p384_scalar_mulx_u32(x8, (arg2[11]));
+-    let mut x1180: u32 = 0;
+-    let mut x1181: u32 = 0;
+     let (x1180, x1181) = fiat_p384_scalar_mulx_u32(x8, (arg2[10]));
+-    let mut x1182: u32 = 0;
+-    let mut x1183: u32 = 0;
+     let (x1182, x1183) = fiat_p384_scalar_mulx_u32(x8, (arg2[9]));
+-    let mut x1184: u32 = 0;
+-    let mut x1185: u32 = 0;
+     let (x1184, x1185) = fiat_p384_scalar_mulx_u32(x8, (arg2[8]));
+-    let mut x1186: u32 = 0;
+-    let mut x1187: u32 = 0;
+     let (x1186, x1187) = fiat_p384_scalar_mulx_u32(x8, (arg2[7]));
+-    let mut x1188: u32 = 0;
+-    let mut x1189: u32 = 0;
+     let (x1188, x1189) = fiat_p384_scalar_mulx_u32(x8, (arg2[6]));
+-    let mut x1190: u32 = 0;
+-    let mut x1191: u32 = 0;
+     let (x1190, x1191) = fiat_p384_scalar_mulx_u32(x8, (arg2[5]));
+-    let mut x1192: u32 = 0;
+-    let mut x1193: u32 = 0;
+     let (x1192, x1193) = fiat_p384_scalar_mulx_u32(x8, (arg2[4]));
+-    let mut x1194: u32 = 0;
+-    let mut x1195: u32 = 0;
+     let (x1194, x1195) = fiat_p384_scalar_mulx_u32(x8, (arg2[3]));
+-    let mut x1196: u32 = 0;
+-    let mut x1197: u32 = 0;
+     let (x1196, x1197) = fiat_p384_scalar_mulx_u32(x8, (arg2[2]));
+-    let mut x1198: u32 = 0;
+-    let mut x1199: u32 = 0;
+     let (x1198, x1199) = fiat_p384_scalar_mulx_u32(x8, (arg2[1]));
+-    let mut x1200: u32 = 0;
+-    let mut x1201: u32 = 0;
+     let (x1200, x1201) = fiat_p384_scalar_mulx_u32(x8, (arg2[0]));
+-    let mut x1202: u32 = 0;
+-    let mut x1203: fiat_p384_scalar_u1 = 0;
+     let (x1202, x1203) = fiat_p384_scalar_addcarryx_u32(0x0, x1201, x1198);
+-    let mut x1204: u32 = 0;
+-    let mut x1205: fiat_p384_scalar_u1 = 0;
+     let (x1204, x1205) = fiat_p384_scalar_addcarryx_u32(x1203, x1199, x1196);
+-    let mut x1206: u32 = 0;
+-    let mut x1207: fiat_p384_scalar_u1 = 0;
+     let (x1206, x1207) = fiat_p384_scalar_addcarryx_u32(x1205, x1197, x1194);
+-    let mut x1208: u32 = 0;
+-    let mut x1209: fiat_p384_scalar_u1 = 0;
+     let (x1208, x1209) = fiat_p384_scalar_addcarryx_u32(x1207, x1195, x1192);
+-    let mut x1210: u32 = 0;
+-    let mut x1211: fiat_p384_scalar_u1 = 0;
+     let (x1210, x1211) = fiat_p384_scalar_addcarryx_u32(x1209, x1193, x1190);
+-    let mut x1212: u32 = 0;
+-    let mut x1213: fiat_p384_scalar_u1 = 0;
+     let (x1212, x1213) = fiat_p384_scalar_addcarryx_u32(x1211, x1191, x1188);
+-    let mut x1214: u32 = 0;
+-    let mut x1215: fiat_p384_scalar_u1 = 0;
+     let (x1214, x1215) = fiat_p384_scalar_addcarryx_u32(x1213, x1189, x1186);
+-    let mut x1216: u32 = 0;
+-    let mut x1217: fiat_p384_scalar_u1 = 0;
+     let (x1216, x1217) = fiat_p384_scalar_addcarryx_u32(x1215, x1187, x1184);
+-    let mut x1218: u32 = 0;
+-    let mut x1219: fiat_p384_scalar_u1 = 0;
+     let (x1218, x1219) = fiat_p384_scalar_addcarryx_u32(x1217, x1185, x1182);
+-    let mut x1220: u32 = 0;
+-    let mut x1221: fiat_p384_scalar_u1 = 0;
+     let (x1220, x1221) = fiat_p384_scalar_addcarryx_u32(x1219, x1183, x1180);
+-    let mut x1222: u32 = 0;
+-    let mut x1223: fiat_p384_scalar_u1 = 0;
+     let (x1222, x1223) = fiat_p384_scalar_addcarryx_u32(x1221, x1181, x1178);
+     let x1224: u32 = ((x1223 as u32) + x1179);
+-    let mut x1225: u32 = 0;
+-    let mut x1226: fiat_p384_scalar_u1 = 0;
+     let (x1225, x1226) = fiat_p384_scalar_addcarryx_u32(0x0, x1153, x1200);
+-    let mut x1227: u32 = 0;
+-    let mut x1228: fiat_p384_scalar_u1 = 0;
+     let (x1227, x1228) = fiat_p384_scalar_addcarryx_u32(x1226, x1155, x1202);
+-    let mut x1229: u32 = 0;
+-    let mut x1230: fiat_p384_scalar_u1 = 0;
+     let (x1229, x1230) = fiat_p384_scalar_addcarryx_u32(x1228, x1157, x1204);
+-    let mut x1231: u32 = 0;
+-    let mut x1232: fiat_p384_scalar_u1 = 0;
+     let (x1231, x1232) = fiat_p384_scalar_addcarryx_u32(x1230, x1159, x1206);
+-    let mut x1233: u32 = 0;
+-    let mut x1234: fiat_p384_scalar_u1 = 0;
+     let (x1233, x1234) = fiat_p384_scalar_addcarryx_u32(x1232, x1161, x1208);
+-    let mut x1235: u32 = 0;
+-    let mut x1236: fiat_p384_scalar_u1 = 0;
+     let (x1235, x1236) = fiat_p384_scalar_addcarryx_u32(x1234, x1163, x1210);
+-    let mut x1237: u32 = 0;
+-    let mut x1238: fiat_p384_scalar_u1 = 0;
+     let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(x1236, x1165, x1212);
+-    let mut x1239: u32 = 0;
+-    let mut x1240: fiat_p384_scalar_u1 = 0;
+     let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1167, x1214);
+-    let mut x1241: u32 = 0;
+-    let mut x1242: fiat_p384_scalar_u1 = 0;
+     let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1169, x1216);
+-    let mut x1243: u32 = 0;
+-    let mut x1244: fiat_p384_scalar_u1 = 0;
+     let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1171, x1218);
+-    let mut x1245: u32 = 0;
+-    let mut x1246: fiat_p384_scalar_u1 = 0;
+     let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1173, x1220);
+-    let mut x1247: u32 = 0;
+-    let mut x1248: fiat_p384_scalar_u1 = 0;
+     let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1175, x1222);
+-    let mut x1249: u32 = 0;
+-    let mut x1250: fiat_p384_scalar_u1 = 0;
+     let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1177, x1224);
+-    let mut x1251: u32 = 0;
+-    let mut x1252: u32 = 0;
+     let (x1251, x1252) = fiat_p384_scalar_mulx_u32(x1225, 0xe88fdc45);
+-    let mut x1253: u32 = 0;
+-    let mut x1254: u32 = 0;
+     let (x1253, x1254) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1255: u32 = 0;
+-    let mut x1256: u32 = 0;
+     let (x1255, x1256) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1257: u32 = 0;
+-    let mut x1258: u32 = 0;
+     let (x1257, x1258) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1259: u32 = 0;
+-    let mut x1260: u32 = 0;
+     let (x1259, x1260) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1261: u32 = 0;
+-    let mut x1262: u32 = 0;
+     let (x1261, x1262) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1263: u32 = 0;
+-    let mut x1264: u32 = 0;
+     let (x1263, x1264) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1265: u32 = 0;
+-    let mut x1266: u32 = 0;
+     let (x1265, x1266) = fiat_p384_scalar_mulx_u32(x1251, 0xc7634d81);
+-    let mut x1267: u32 = 0;
+-    let mut x1268: u32 = 0;
+     let (x1267, x1268) = fiat_p384_scalar_mulx_u32(x1251, 0xf4372ddf);
+-    let mut x1269: u32 = 0;
+-    let mut x1270: u32 = 0;
+     let (x1269, x1270) = fiat_p384_scalar_mulx_u32(x1251, 0x581a0db2);
+-    let mut x1271: u32 = 0;
+-    let mut x1272: u32 = 0;
+     let (x1271, x1272) = fiat_p384_scalar_mulx_u32(x1251, 0x48b0a77a);
+-    let mut x1273: u32 = 0;
+-    let mut x1274: u32 = 0;
+     let (x1273, x1274) = fiat_p384_scalar_mulx_u32(x1251, 0xecec196a);
+-    let mut x1275: u32 = 0;
+-    let mut x1276: u32 = 0;
+     let (x1275, x1276) = fiat_p384_scalar_mulx_u32(x1251, 0xccc52973);
+-    let mut x1277: u32 = 0;
+-    let mut x1278: fiat_p384_scalar_u1 = 0;
+     let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(0x0, x1276, x1273);
+-    let mut x1279: u32 = 0;
+-    let mut x1280: fiat_p384_scalar_u1 = 0;
+     let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1274, x1271);
+-    let mut x1281: u32 = 0;
+-    let mut x1282: fiat_p384_scalar_u1 = 0;
+     let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1272, x1269);
+-    let mut x1283: u32 = 0;
+-    let mut x1284: fiat_p384_scalar_u1 = 0;
+     let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(x1282, x1270, x1267);
+-    let mut x1285: u32 = 0;
+-    let mut x1286: fiat_p384_scalar_u1 = 0;
+     let (x1285, x1286) = fiat_p384_scalar_addcarryx_u32(x1284, x1268, x1265);
+-    let mut x1287: u32 = 0;
+-    let mut x1288: fiat_p384_scalar_u1 = 0;
+     let (x1287, x1288) = fiat_p384_scalar_addcarryx_u32(x1286, x1266, x1263);
+-    let mut x1289: u32 = 0;
+-    let mut x1290: fiat_p384_scalar_u1 = 0;
+     let (x1289, x1290) = fiat_p384_scalar_addcarryx_u32(x1288, x1264, x1261);
+-    let mut x1291: u32 = 0;
+-    let mut x1292: fiat_p384_scalar_u1 = 0;
+     let (x1291, x1292) = fiat_p384_scalar_addcarryx_u32(x1290, x1262, x1259);
+-    let mut x1293: u32 = 0;
+-    let mut x1294: fiat_p384_scalar_u1 = 0;
+     let (x1293, x1294) = fiat_p384_scalar_addcarryx_u32(x1292, x1260, x1257);
+-    let mut x1295: u32 = 0;
+-    let mut x1296: fiat_p384_scalar_u1 = 0;
+     let (x1295, x1296) = fiat_p384_scalar_addcarryx_u32(x1294, x1258, x1255);
+-    let mut x1297: u32 = 0;
+-    let mut x1298: fiat_p384_scalar_u1 = 0;
+     let (x1297, x1298) = fiat_p384_scalar_addcarryx_u32(x1296, x1256, x1253);
+     let x1299: u32 = ((x1298 as u32) + x1254);
+-    let mut x1300: u32 = 0;
+-    let mut x1301: fiat_p384_scalar_u1 = 0;
+     let (x1300, x1301) = fiat_p384_scalar_addcarryx_u32(0x0, x1225, x1275);
+-    let mut x1302: u32 = 0;
+-    let mut x1303: fiat_p384_scalar_u1 = 0;
+     let (x1302, x1303) = fiat_p384_scalar_addcarryx_u32(x1301, x1227, x1277);
+-    let mut x1304: u32 = 0;
+-    let mut x1305: fiat_p384_scalar_u1 = 0;
+     let (x1304, x1305) = fiat_p384_scalar_addcarryx_u32(x1303, x1229, x1279);
+-    let mut x1306: u32 = 0;
+-    let mut x1307: fiat_p384_scalar_u1 = 0;
+     let (x1306, x1307) = fiat_p384_scalar_addcarryx_u32(x1305, x1231, x1281);
+-    let mut x1308: u32 = 0;
+-    let mut x1309: fiat_p384_scalar_u1 = 0;
+     let (x1308, x1309) = fiat_p384_scalar_addcarryx_u32(x1307, x1233, x1283);
+-    let mut x1310: u32 = 0;
+-    let mut x1311: fiat_p384_scalar_u1 = 0;
+     let (x1310, x1311) = fiat_p384_scalar_addcarryx_u32(x1309, x1235, x1285);
+-    let mut x1312: u32 = 0;
+-    let mut x1313: fiat_p384_scalar_u1 = 0;
+     let (x1312, x1313) = fiat_p384_scalar_addcarryx_u32(x1311, x1237, x1287);
+-    let mut x1314: u32 = 0;
+-    let mut x1315: fiat_p384_scalar_u1 = 0;
+     let (x1314, x1315) = fiat_p384_scalar_addcarryx_u32(x1313, x1239, x1289);
+-    let mut x1316: u32 = 0;
+-    let mut x1317: fiat_p384_scalar_u1 = 0;
+     let (x1316, x1317) = fiat_p384_scalar_addcarryx_u32(x1315, x1241, x1291);
+-    let mut x1318: u32 = 0;
+-    let mut x1319: fiat_p384_scalar_u1 = 0;
+     let (x1318, x1319) = fiat_p384_scalar_addcarryx_u32(x1317, x1243, x1293);
+-    let mut x1320: u32 = 0;
+-    let mut x1321: fiat_p384_scalar_u1 = 0;
+     let (x1320, x1321) = fiat_p384_scalar_addcarryx_u32(x1319, x1245, x1295);
+-    let mut x1322: u32 = 0;
+-    let mut x1323: fiat_p384_scalar_u1 = 0;
+     let (x1322, x1323) = fiat_p384_scalar_addcarryx_u32(x1321, x1247, x1297);
+-    let mut x1324: u32 = 0;
+-    let mut x1325: fiat_p384_scalar_u1 = 0;
+     let (x1324, x1325) = fiat_p384_scalar_addcarryx_u32(x1323, x1249, x1299);
+     let x1326: u32 = ((x1325 as u32) + (x1250 as u32));
+-    let mut x1327: u32 = 0;
+-    let mut x1328: u32 = 0;
+     let (x1327, x1328) = fiat_p384_scalar_mulx_u32(x9, (arg2[11]));
+-    let mut x1329: u32 = 0;
+-    let mut x1330: u32 = 0;
+     let (x1329, x1330) = fiat_p384_scalar_mulx_u32(x9, (arg2[10]));
+-    let mut x1331: u32 = 0;
+-    let mut x1332: u32 = 0;
+     let (x1331, x1332) = fiat_p384_scalar_mulx_u32(x9, (arg2[9]));
+-    let mut x1333: u32 = 0;
+-    let mut x1334: u32 = 0;
+     let (x1333, x1334) = fiat_p384_scalar_mulx_u32(x9, (arg2[8]));
+-    let mut x1335: u32 = 0;
+-    let mut x1336: u32 = 0;
+     let (x1335, x1336) = fiat_p384_scalar_mulx_u32(x9, (arg2[7]));
+-    let mut x1337: u32 = 0;
+-    let mut x1338: u32 = 0;
+     let (x1337, x1338) = fiat_p384_scalar_mulx_u32(x9, (arg2[6]));
+-    let mut x1339: u32 = 0;
+-    let mut x1340: u32 = 0;
+     let (x1339, x1340) = fiat_p384_scalar_mulx_u32(x9, (arg2[5]));
+-    let mut x1341: u32 = 0;
+-    let mut x1342: u32 = 0;
+     let (x1341, x1342) = fiat_p384_scalar_mulx_u32(x9, (arg2[4]));
+-    let mut x1343: u32 = 0;
+-    let mut x1344: u32 = 0;
+     let (x1343, x1344) = fiat_p384_scalar_mulx_u32(x9, (arg2[3]));
+-    let mut x1345: u32 = 0;
+-    let mut x1346: u32 = 0;
+     let (x1345, x1346) = fiat_p384_scalar_mulx_u32(x9, (arg2[2]));
+-    let mut x1347: u32 = 0;
+-    let mut x1348: u32 = 0;
+     let (x1347, x1348) = fiat_p384_scalar_mulx_u32(x9, (arg2[1]));
+-    let mut x1349: u32 = 0;
+-    let mut x1350: u32 = 0;
+     let (x1349, x1350) = fiat_p384_scalar_mulx_u32(x9, (arg2[0]));
+-    let mut x1351: u32 = 0;
+-    let mut x1352: fiat_p384_scalar_u1 = 0;
+     let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(0x0, x1350, x1347);
+-    let mut x1353: u32 = 0;
+-    let mut x1354: fiat_p384_scalar_u1 = 0;
+     let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1348, x1345);
+-    let mut x1355: u32 = 0;
+-    let mut x1356: fiat_p384_scalar_u1 = 0;
+     let (x1355, x1356) = fiat_p384_scalar_addcarryx_u32(x1354, x1346, x1343);
+-    let mut x1357: u32 = 0;
+-    let mut x1358: fiat_p384_scalar_u1 = 0;
+     let (x1357, x1358) = fiat_p384_scalar_addcarryx_u32(x1356, x1344, x1341);
+-    let mut x1359: u32 = 0;
+-    let mut x1360: fiat_p384_scalar_u1 = 0;
+     let (x1359, x1360) = fiat_p384_scalar_addcarryx_u32(x1358, x1342, x1339);
+-    let mut x1361: u32 = 0;
+-    let mut x1362: fiat_p384_scalar_u1 = 0;
+     let (x1361, x1362) = fiat_p384_scalar_addcarryx_u32(x1360, x1340, x1337);
+-    let mut x1363: u32 = 0;
+-    let mut x1364: fiat_p384_scalar_u1 = 0;
+     let (x1363, x1364) = fiat_p384_scalar_addcarryx_u32(x1362, x1338, x1335);
+-    let mut x1365: u32 = 0;
+-    let mut x1366: fiat_p384_scalar_u1 = 0;
+     let (x1365, x1366) = fiat_p384_scalar_addcarryx_u32(x1364, x1336, x1333);
+-    let mut x1367: u32 = 0;
+-    let mut x1368: fiat_p384_scalar_u1 = 0;
+     let (x1367, x1368) = fiat_p384_scalar_addcarryx_u32(x1366, x1334, x1331);
+-    let mut x1369: u32 = 0;
+-    let mut x1370: fiat_p384_scalar_u1 = 0;
+     let (x1369, x1370) = fiat_p384_scalar_addcarryx_u32(x1368, x1332, x1329);
+-    let mut x1371: u32 = 0;
+-    let mut x1372: fiat_p384_scalar_u1 = 0;
+     let (x1371, x1372) = fiat_p384_scalar_addcarryx_u32(x1370, x1330, x1327);
+     let x1373: u32 = ((x1372 as u32) + x1328);
+-    let mut x1374: u32 = 0;
+-    let mut x1375: fiat_p384_scalar_u1 = 0;
+     let (x1374, x1375) = fiat_p384_scalar_addcarryx_u32(0x0, x1302, x1349);
+-    let mut x1376: u32 = 0;
+-    let mut x1377: fiat_p384_scalar_u1 = 0;
+     let (x1376, x1377) = fiat_p384_scalar_addcarryx_u32(x1375, x1304, x1351);
+-    let mut x1378: u32 = 0;
+-    let mut x1379: fiat_p384_scalar_u1 = 0;
+     let (x1378, x1379) = fiat_p384_scalar_addcarryx_u32(x1377, x1306, x1353);
+-    let mut x1380: u32 = 0;
+-    let mut x1381: fiat_p384_scalar_u1 = 0;
+     let (x1380, x1381) = fiat_p384_scalar_addcarryx_u32(x1379, x1308, x1355);
+-    let mut x1382: u32 = 0;
+-    let mut x1383: fiat_p384_scalar_u1 = 0;
+     let (x1382, x1383) = fiat_p384_scalar_addcarryx_u32(x1381, x1310, x1357);
+-    let mut x1384: u32 = 0;
+-    let mut x1385: fiat_p384_scalar_u1 = 0;
+     let (x1384, x1385) = fiat_p384_scalar_addcarryx_u32(x1383, x1312, x1359);
+-    let mut x1386: u32 = 0;
+-    let mut x1387: fiat_p384_scalar_u1 = 0;
+     let (x1386, x1387) = fiat_p384_scalar_addcarryx_u32(x1385, x1314, x1361);
+-    let mut x1388: u32 = 0;
+-    let mut x1389: fiat_p384_scalar_u1 = 0;
+     let (x1388, x1389) = fiat_p384_scalar_addcarryx_u32(x1387, x1316, x1363);
+-    let mut x1390: u32 = 0;
+-    let mut x1391: fiat_p384_scalar_u1 = 0;
+     let (x1390, x1391) = fiat_p384_scalar_addcarryx_u32(x1389, x1318, x1365);
+-    let mut x1392: u32 = 0;
+-    let mut x1393: fiat_p384_scalar_u1 = 0;
+     let (x1392, x1393) = fiat_p384_scalar_addcarryx_u32(x1391, x1320, x1367);
+-    let mut x1394: u32 = 0;
+-    let mut x1395: fiat_p384_scalar_u1 = 0;
+     let (x1394, x1395) = fiat_p384_scalar_addcarryx_u32(x1393, x1322, x1369);
+-    let mut x1396: u32 = 0;
+-    let mut x1397: fiat_p384_scalar_u1 = 0;
+     let (x1396, x1397) = fiat_p384_scalar_addcarryx_u32(x1395, x1324, x1371);
+-    let mut x1398: u32 = 0;
+-    let mut x1399: fiat_p384_scalar_u1 = 0;
+     let (x1398, x1399) = fiat_p384_scalar_addcarryx_u32(x1397, x1326, x1373);
+-    let mut x1400: u32 = 0;
+-    let mut x1401: u32 = 0;
+     let (x1400, x1401) = fiat_p384_scalar_mulx_u32(x1374, 0xe88fdc45);
+-    let mut x1402: u32 = 0;
+-    let mut x1403: u32 = 0;
+     let (x1402, x1403) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1404: u32 = 0;
+-    let mut x1405: u32 = 0;
+     let (x1404, x1405) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1406: u32 = 0;
+-    let mut x1407: u32 = 0;
+     let (x1406, x1407) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1408: u32 = 0;
+-    let mut x1409: u32 = 0;
+     let (x1408, x1409) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1410: u32 = 0;
+-    let mut x1411: u32 = 0;
+     let (x1410, x1411) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1412: u32 = 0;
+-    let mut x1413: u32 = 0;
+     let (x1412, x1413) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1414: u32 = 0;
+-    let mut x1415: u32 = 0;
+     let (x1414, x1415) = fiat_p384_scalar_mulx_u32(x1400, 0xc7634d81);
+-    let mut x1416: u32 = 0;
+-    let mut x1417: u32 = 0;
+     let (x1416, x1417) = fiat_p384_scalar_mulx_u32(x1400, 0xf4372ddf);
+-    let mut x1418: u32 = 0;
+-    let mut x1419: u32 = 0;
+     let (x1418, x1419) = fiat_p384_scalar_mulx_u32(x1400, 0x581a0db2);
+-    let mut x1420: u32 = 0;
+-    let mut x1421: u32 = 0;
+     let (x1420, x1421) = fiat_p384_scalar_mulx_u32(x1400, 0x48b0a77a);
+-    let mut x1422: u32 = 0;
+-    let mut x1423: u32 = 0;
+     let (x1422, x1423) = fiat_p384_scalar_mulx_u32(x1400, 0xecec196a);
+-    let mut x1424: u32 = 0;
+-    let mut x1425: u32 = 0;
+     let (x1424, x1425) = fiat_p384_scalar_mulx_u32(x1400, 0xccc52973);
+-    let mut x1426: u32 = 0;
+-    let mut x1427: fiat_p384_scalar_u1 = 0;
+     let (x1426, x1427) = fiat_p384_scalar_addcarryx_u32(0x0, x1425, x1422);
+-    let mut x1428: u32 = 0;
+-    let mut x1429: fiat_p384_scalar_u1 = 0;
+     let (x1428, x1429) = fiat_p384_scalar_addcarryx_u32(x1427, x1423, x1420);
+-    let mut x1430: u32 = 0;
+-    let mut x1431: fiat_p384_scalar_u1 = 0;
+     let (x1430, x1431) = fiat_p384_scalar_addcarryx_u32(x1429, x1421, x1418);
+-    let mut x1432: u32 = 0;
+-    let mut x1433: fiat_p384_scalar_u1 = 0;
+     let (x1432, x1433) = fiat_p384_scalar_addcarryx_u32(x1431, x1419, x1416);
+-    let mut x1434: u32 = 0;
+-    let mut x1435: fiat_p384_scalar_u1 = 0;
+     let (x1434, x1435) = fiat_p384_scalar_addcarryx_u32(x1433, x1417, x1414);
+-    let mut x1436: u32 = 0;
+-    let mut x1437: fiat_p384_scalar_u1 = 0;
+     let (x1436, x1437) = fiat_p384_scalar_addcarryx_u32(x1435, x1415, x1412);
+-    let mut x1438: u32 = 0;
+-    let mut x1439: fiat_p384_scalar_u1 = 0;
+     let (x1438, x1439) = fiat_p384_scalar_addcarryx_u32(x1437, x1413, x1410);
+-    let mut x1440: u32 = 0;
+-    let mut x1441: fiat_p384_scalar_u1 = 0;
+     let (x1440, x1441) = fiat_p384_scalar_addcarryx_u32(x1439, x1411, x1408);
+-    let mut x1442: u32 = 0;
+-    let mut x1443: fiat_p384_scalar_u1 = 0;
+     let (x1442, x1443) = fiat_p384_scalar_addcarryx_u32(x1441, x1409, x1406);
+-    let mut x1444: u32 = 0;
+-    let mut x1445: fiat_p384_scalar_u1 = 0;
+     let (x1444, x1445) = fiat_p384_scalar_addcarryx_u32(x1443, x1407, x1404);
+-    let mut x1446: u32 = 0;
+-    let mut x1447: fiat_p384_scalar_u1 = 0;
+     let (x1446, x1447) = fiat_p384_scalar_addcarryx_u32(x1445, x1405, x1402);
+     let x1448: u32 = ((x1447 as u32) + x1403);
+-    let mut x1449: u32 = 0;
+-    let mut x1450: fiat_p384_scalar_u1 = 0;
+     let (x1449, x1450) = fiat_p384_scalar_addcarryx_u32(0x0, x1374, x1424);
+-    let mut x1451: u32 = 0;
+-    let mut x1452: fiat_p384_scalar_u1 = 0;
+     let (x1451, x1452) = fiat_p384_scalar_addcarryx_u32(x1450, x1376, x1426);
+-    let mut x1453: u32 = 0;
+-    let mut x1454: fiat_p384_scalar_u1 = 0;
+     let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(x1452, x1378, x1428);
+-    let mut x1455: u32 = 0;
+-    let mut x1456: fiat_p384_scalar_u1 = 0;
+     let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1380, x1430);
+-    let mut x1457: u32 = 0;
+-    let mut x1458: fiat_p384_scalar_u1 = 0;
+     let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1382, x1432);
+-    let mut x1459: u32 = 0;
+-    let mut x1460: fiat_p384_scalar_u1 = 0;
+     let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1384, x1434);
+-    let mut x1461: u32 = 0;
+-    let mut x1462: fiat_p384_scalar_u1 = 0;
+     let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1386, x1436);
+-    let mut x1463: u32 = 0;
+-    let mut x1464: fiat_p384_scalar_u1 = 0;
+     let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1388, x1438);
+-    let mut x1465: u32 = 0;
+-    let mut x1466: fiat_p384_scalar_u1 = 0;
+     let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1390, x1440);
+-    let mut x1467: u32 = 0;
+-    let mut x1468: fiat_p384_scalar_u1 = 0;
+     let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1392, x1442);
+-    let mut x1469: u32 = 0;
+-    let mut x1470: fiat_p384_scalar_u1 = 0;
+     let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1394, x1444);
+-    let mut x1471: u32 = 0;
+-    let mut x1472: fiat_p384_scalar_u1 = 0;
+     let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1396, x1446);
+-    let mut x1473: u32 = 0;
+-    let mut x1474: fiat_p384_scalar_u1 = 0;
+     let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1398, x1448);
+     let x1475: u32 = ((x1474 as u32) + (x1399 as u32));
+-    let mut x1476: u32 = 0;
+-    let mut x1477: u32 = 0;
+     let (x1476, x1477) = fiat_p384_scalar_mulx_u32(x10, (arg2[11]));
+-    let mut x1478: u32 = 0;
+-    let mut x1479: u32 = 0;
+     let (x1478, x1479) = fiat_p384_scalar_mulx_u32(x10, (arg2[10]));
+-    let mut x1480: u32 = 0;
+-    let mut x1481: u32 = 0;
+     let (x1480, x1481) = fiat_p384_scalar_mulx_u32(x10, (arg2[9]));
+-    let mut x1482: u32 = 0;
+-    let mut x1483: u32 = 0;
+     let (x1482, x1483) = fiat_p384_scalar_mulx_u32(x10, (arg2[8]));
+-    let mut x1484: u32 = 0;
+-    let mut x1485: u32 = 0;
+     let (x1484, x1485) = fiat_p384_scalar_mulx_u32(x10, (arg2[7]));
+-    let mut x1486: u32 = 0;
+-    let mut x1487: u32 = 0;
+     let (x1486, x1487) = fiat_p384_scalar_mulx_u32(x10, (arg2[6]));
+-    let mut x1488: u32 = 0;
+-    let mut x1489: u32 = 0;
+     let (x1488, x1489) = fiat_p384_scalar_mulx_u32(x10, (arg2[5]));
+-    let mut x1490: u32 = 0;
+-    let mut x1491: u32 = 0;
+     let (x1490, x1491) = fiat_p384_scalar_mulx_u32(x10, (arg2[4]));
+-    let mut x1492: u32 = 0;
+-    let mut x1493: u32 = 0;
+     let (x1492, x1493) = fiat_p384_scalar_mulx_u32(x10, (arg2[3]));
+-    let mut x1494: u32 = 0;
+-    let mut x1495: u32 = 0;
+     let (x1494, x1495) = fiat_p384_scalar_mulx_u32(x10, (arg2[2]));
+-    let mut x1496: u32 = 0;
+-    let mut x1497: u32 = 0;
+     let (x1496, x1497) = fiat_p384_scalar_mulx_u32(x10, (arg2[1]));
+-    let mut x1498: u32 = 0;
+-    let mut x1499: u32 = 0;
+     let (x1498, x1499) = fiat_p384_scalar_mulx_u32(x10, (arg2[0]));
+-    let mut x1500: u32 = 0;
+-    let mut x1501: fiat_p384_scalar_u1 = 0;
+     let (x1500, x1501) = fiat_p384_scalar_addcarryx_u32(0x0, x1499, x1496);
+-    let mut x1502: u32 = 0;
+-    let mut x1503: fiat_p384_scalar_u1 = 0;
+     let (x1502, x1503) = fiat_p384_scalar_addcarryx_u32(x1501, x1497, x1494);
+-    let mut x1504: u32 = 0;
+-    let mut x1505: fiat_p384_scalar_u1 = 0;
+     let (x1504, x1505) = fiat_p384_scalar_addcarryx_u32(x1503, x1495, x1492);
+-    let mut x1506: u32 = 0;
+-    let mut x1507: fiat_p384_scalar_u1 = 0;
+     let (x1506, x1507) = fiat_p384_scalar_addcarryx_u32(x1505, x1493, x1490);
+-    let mut x1508: u32 = 0;
+-    let mut x1509: fiat_p384_scalar_u1 = 0;
+     let (x1508, x1509) = fiat_p384_scalar_addcarryx_u32(x1507, x1491, x1488);
+-    let mut x1510: u32 = 0;
+-    let mut x1511: fiat_p384_scalar_u1 = 0;
+     let (x1510, x1511) = fiat_p384_scalar_addcarryx_u32(x1509, x1489, x1486);
+-    let mut x1512: u32 = 0;
+-    let mut x1513: fiat_p384_scalar_u1 = 0;
+     let (x1512, x1513) = fiat_p384_scalar_addcarryx_u32(x1511, x1487, x1484);
+-    let mut x1514: u32 = 0;
+-    let mut x1515: fiat_p384_scalar_u1 = 0;
+     let (x1514, x1515) = fiat_p384_scalar_addcarryx_u32(x1513, x1485, x1482);
+-    let mut x1516: u32 = 0;
+-    let mut x1517: fiat_p384_scalar_u1 = 0;
+     let (x1516, x1517) = fiat_p384_scalar_addcarryx_u32(x1515, x1483, x1480);
+-    let mut x1518: u32 = 0;
+-    let mut x1519: fiat_p384_scalar_u1 = 0;
+     let (x1518, x1519) = fiat_p384_scalar_addcarryx_u32(x1517, x1481, x1478);
+-    let mut x1520: u32 = 0;
+-    let mut x1521: fiat_p384_scalar_u1 = 0;
+     let (x1520, x1521) = fiat_p384_scalar_addcarryx_u32(x1519, x1479, x1476);
+     let x1522: u32 = ((x1521 as u32) + x1477);
+-    let mut x1523: u32 = 0;
+-    let mut x1524: fiat_p384_scalar_u1 = 0;
+     let (x1523, x1524) = fiat_p384_scalar_addcarryx_u32(0x0, x1451, x1498);
+-    let mut x1525: u32 = 0;
+-    let mut x1526: fiat_p384_scalar_u1 = 0;
+     let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(x1524, x1453, x1500);
+-    let mut x1527: u32 = 0;
+-    let mut x1528: fiat_p384_scalar_u1 = 0;
+     let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1455, x1502);
+-    let mut x1529: u32 = 0;
+-    let mut x1530: fiat_p384_scalar_u1 = 0;
+     let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1457, x1504);
+-    let mut x1531: u32 = 0;
+-    let mut x1532: fiat_p384_scalar_u1 = 0;
+     let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1459, x1506);
+-    let mut x1533: u32 = 0;
+-    let mut x1534: fiat_p384_scalar_u1 = 0;
+     let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1461, x1508);
+-    let mut x1535: u32 = 0;
+-    let mut x1536: fiat_p384_scalar_u1 = 0;
+     let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1463, x1510);
+-    let mut x1537: u32 = 0;
+-    let mut x1538: fiat_p384_scalar_u1 = 0;
+     let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1465, x1512);
+-    let mut x1539: u32 = 0;
+-    let mut x1540: fiat_p384_scalar_u1 = 0;
+     let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1467, x1514);
+-    let mut x1541: u32 = 0;
+-    let mut x1542: fiat_p384_scalar_u1 = 0;
+     let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1469, x1516);
+-    let mut x1543: u32 = 0;
+-    let mut x1544: fiat_p384_scalar_u1 = 0;
+     let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1471, x1518);
+-    let mut x1545: u32 = 0;
+-    let mut x1546: fiat_p384_scalar_u1 = 0;
+     let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1473, x1520);
+-    let mut x1547: u32 = 0;
+-    let mut x1548: fiat_p384_scalar_u1 = 0;
+     let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(x1546, x1475, x1522);
+-    let mut x1549: u32 = 0;
+-    let mut x1550: u32 = 0;
+     let (x1549, x1550) = fiat_p384_scalar_mulx_u32(x1523, 0xe88fdc45);
+-    let mut x1551: u32 = 0;
+-    let mut x1552: u32 = 0;
+     let (x1551, x1552) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1553: u32 = 0;
+-    let mut x1554: u32 = 0;
+     let (x1553, x1554) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1555: u32 = 0;
+-    let mut x1556: u32 = 0;
+     let (x1555, x1556) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1557: u32 = 0;
+-    let mut x1558: u32 = 0;
+     let (x1557, x1558) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1559: u32 = 0;
+-    let mut x1560: u32 = 0;
+     let (x1559, x1560) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1561: u32 = 0;
+-    let mut x1562: u32 = 0;
+     let (x1561, x1562) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1563: u32 = 0;
+-    let mut x1564: u32 = 0;
+     let (x1563, x1564) = fiat_p384_scalar_mulx_u32(x1549, 0xc7634d81);
+-    let mut x1565: u32 = 0;
+-    let mut x1566: u32 = 0;
+     let (x1565, x1566) = fiat_p384_scalar_mulx_u32(x1549, 0xf4372ddf);
+-    let mut x1567: u32 = 0;
+-    let mut x1568: u32 = 0;
+     let (x1567, x1568) = fiat_p384_scalar_mulx_u32(x1549, 0x581a0db2);
+-    let mut x1569: u32 = 0;
+-    let mut x1570: u32 = 0;
+     let (x1569, x1570) = fiat_p384_scalar_mulx_u32(x1549, 0x48b0a77a);
+-    let mut x1571: u32 = 0;
+-    let mut x1572: u32 = 0;
+     let (x1571, x1572) = fiat_p384_scalar_mulx_u32(x1549, 0xecec196a);
+-    let mut x1573: u32 = 0;
+-    let mut x1574: u32 = 0;
+     let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x1549, 0xccc52973);
+-    let mut x1575: u32 = 0;
+-    let mut x1576: fiat_p384_scalar_u1 = 0;
+     let (x1575, x1576) = fiat_p384_scalar_addcarryx_u32(0x0, x1574, x1571);
+-    let mut x1577: u32 = 0;
+-    let mut x1578: fiat_p384_scalar_u1 = 0;
+     let (x1577, x1578) = fiat_p384_scalar_addcarryx_u32(x1576, x1572, x1569);
+-    let mut x1579: u32 = 0;
+-    let mut x1580: fiat_p384_scalar_u1 = 0;
+     let (x1579, x1580) = fiat_p384_scalar_addcarryx_u32(x1578, x1570, x1567);
+-    let mut x1581: u32 = 0;
+-    let mut x1582: fiat_p384_scalar_u1 = 0;
+     let (x1581, x1582) = fiat_p384_scalar_addcarryx_u32(x1580, x1568, x1565);
+-    let mut x1583: u32 = 0;
+-    let mut x1584: fiat_p384_scalar_u1 = 0;
+     let (x1583, x1584) = fiat_p384_scalar_addcarryx_u32(x1582, x1566, x1563);
+-    let mut x1585: u32 = 0;
+-    let mut x1586: fiat_p384_scalar_u1 = 0;
+     let (x1585, x1586) = fiat_p384_scalar_addcarryx_u32(x1584, x1564, x1561);
+-    let mut x1587: u32 = 0;
+-    let mut x1588: fiat_p384_scalar_u1 = 0;
+     let (x1587, x1588) = fiat_p384_scalar_addcarryx_u32(x1586, x1562, x1559);
+-    let mut x1589: u32 = 0;
+-    let mut x1590: fiat_p384_scalar_u1 = 0;
+     let (x1589, x1590) = fiat_p384_scalar_addcarryx_u32(x1588, x1560, x1557);
+-    let mut x1591: u32 = 0;
+-    let mut x1592: fiat_p384_scalar_u1 = 0;
+     let (x1591, x1592) = fiat_p384_scalar_addcarryx_u32(x1590, x1558, x1555);
+-    let mut x1593: u32 = 0;
+-    let mut x1594: fiat_p384_scalar_u1 = 0;
+     let (x1593, x1594) = fiat_p384_scalar_addcarryx_u32(x1592, x1556, x1553);
+-    let mut x1595: u32 = 0;
+-    let mut x1596: fiat_p384_scalar_u1 = 0;
+     let (x1595, x1596) = fiat_p384_scalar_addcarryx_u32(x1594, x1554, x1551);
+     let x1597: u32 = ((x1596 as u32) + x1552);
+-    let mut x1598: u32 = 0;
+-    let mut x1599: fiat_p384_scalar_u1 = 0;
+     let (x1598, x1599) = fiat_p384_scalar_addcarryx_u32(0x0, x1523, x1573);
+-    let mut x1600: u32 = 0;
+-    let mut x1601: fiat_p384_scalar_u1 = 0;
+     let (x1600, x1601) = fiat_p384_scalar_addcarryx_u32(x1599, x1525, x1575);
+-    let mut x1602: u32 = 0;
+-    let mut x1603: fiat_p384_scalar_u1 = 0;
+     let (x1602, x1603) = fiat_p384_scalar_addcarryx_u32(x1601, x1527, x1577);
+-    let mut x1604: u32 = 0;
+-    let mut x1605: fiat_p384_scalar_u1 = 0;
+     let (x1604, x1605) = fiat_p384_scalar_addcarryx_u32(x1603, x1529, x1579);
+-    let mut x1606: u32 = 0;
+-    let mut x1607: fiat_p384_scalar_u1 = 0;
+     let (x1606, x1607) = fiat_p384_scalar_addcarryx_u32(x1605, x1531, x1581);
+-    let mut x1608: u32 = 0;
+-    let mut x1609: fiat_p384_scalar_u1 = 0;
+     let (x1608, x1609) = fiat_p384_scalar_addcarryx_u32(x1607, x1533, x1583);
+-    let mut x1610: u32 = 0;
+-    let mut x1611: fiat_p384_scalar_u1 = 0;
+     let (x1610, x1611) = fiat_p384_scalar_addcarryx_u32(x1609, x1535, x1585);
+-    let mut x1612: u32 = 0;
+-    let mut x1613: fiat_p384_scalar_u1 = 0;
+     let (x1612, x1613) = fiat_p384_scalar_addcarryx_u32(x1611, x1537, x1587);
+-    let mut x1614: u32 = 0;
+-    let mut x1615: fiat_p384_scalar_u1 = 0;
+     let (x1614, x1615) = fiat_p384_scalar_addcarryx_u32(x1613, x1539, x1589);
+-    let mut x1616: u32 = 0;
+-    let mut x1617: fiat_p384_scalar_u1 = 0;
+     let (x1616, x1617) = fiat_p384_scalar_addcarryx_u32(x1615, x1541, x1591);
+-    let mut x1618: u32 = 0;
+-    let mut x1619: fiat_p384_scalar_u1 = 0;
+     let (x1618, x1619) = fiat_p384_scalar_addcarryx_u32(x1617, x1543, x1593);
+-    let mut x1620: u32 = 0;
+-    let mut x1621: fiat_p384_scalar_u1 = 0;
+     let (x1620, x1621) = fiat_p384_scalar_addcarryx_u32(x1619, x1545, x1595);
+-    let mut x1622: u32 = 0;
+-    let mut x1623: fiat_p384_scalar_u1 = 0;
+     let (x1622, x1623) = fiat_p384_scalar_addcarryx_u32(x1621, x1547, x1597);
+     let x1624: u32 = ((x1623 as u32) + (x1548 as u32));
+-    let mut x1625: u32 = 0;
+-    let mut x1626: u32 = 0;
+     let (x1625, x1626) = fiat_p384_scalar_mulx_u32(x11, (arg2[11]));
+-    let mut x1627: u32 = 0;
+-    let mut x1628: u32 = 0;
+     let (x1627, x1628) = fiat_p384_scalar_mulx_u32(x11, (arg2[10]));
+-    let mut x1629: u32 = 0;
+-    let mut x1630: u32 = 0;
+     let (x1629, x1630) = fiat_p384_scalar_mulx_u32(x11, (arg2[9]));
+-    let mut x1631: u32 = 0;
+-    let mut x1632: u32 = 0;
+     let (x1631, x1632) = fiat_p384_scalar_mulx_u32(x11, (arg2[8]));
+-    let mut x1633: u32 = 0;
+-    let mut x1634: u32 = 0;
+     let (x1633, x1634) = fiat_p384_scalar_mulx_u32(x11, (arg2[7]));
+-    let mut x1635: u32 = 0;
+-    let mut x1636: u32 = 0;
+     let (x1635, x1636) = fiat_p384_scalar_mulx_u32(x11, (arg2[6]));
+-    let mut x1637: u32 = 0;
+-    let mut x1638: u32 = 0;
+     let (x1637, x1638) = fiat_p384_scalar_mulx_u32(x11, (arg2[5]));
+-    let mut x1639: u32 = 0;
+-    let mut x1640: u32 = 0;
+     let (x1639, x1640) = fiat_p384_scalar_mulx_u32(x11, (arg2[4]));
+-    let mut x1641: u32 = 0;
+-    let mut x1642: u32 = 0;
+     let (x1641, x1642) = fiat_p384_scalar_mulx_u32(x11, (arg2[3]));
+-    let mut x1643: u32 = 0;
+-    let mut x1644: u32 = 0;
+     let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x11, (arg2[2]));
+-    let mut x1645: u32 = 0;
+-    let mut x1646: u32 = 0;
+     let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x11, (arg2[1]));
+-    let mut x1647: u32 = 0;
+-    let mut x1648: u32 = 0;
+     let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x11, (arg2[0]));
+-    let mut x1649: u32 = 0;
+-    let mut x1650: fiat_p384_scalar_u1 = 0;
+     let (x1649, x1650) = fiat_p384_scalar_addcarryx_u32(0x0, x1648, x1645);
+-    let mut x1651: u32 = 0;
+-    let mut x1652: fiat_p384_scalar_u1 = 0;
+     let (x1651, x1652) = fiat_p384_scalar_addcarryx_u32(x1650, x1646, x1643);
+-    let mut x1653: u32 = 0;
+-    let mut x1654: fiat_p384_scalar_u1 = 0;
+     let (x1653, x1654) = fiat_p384_scalar_addcarryx_u32(x1652, x1644, x1641);
+-    let mut x1655: u32 = 0;
+-    let mut x1656: fiat_p384_scalar_u1 = 0;
+     let (x1655, x1656) = fiat_p384_scalar_addcarryx_u32(x1654, x1642, x1639);
+-    let mut x1657: u32 = 0;
+-    let mut x1658: fiat_p384_scalar_u1 = 0;
+     let (x1657, x1658) = fiat_p384_scalar_addcarryx_u32(x1656, x1640, x1637);
+-    let mut x1659: u32 = 0;
+-    let mut x1660: fiat_p384_scalar_u1 = 0;
+     let (x1659, x1660) = fiat_p384_scalar_addcarryx_u32(x1658, x1638, x1635);
+-    let mut x1661: u32 = 0;
+-    let mut x1662: fiat_p384_scalar_u1 = 0;
+     let (x1661, x1662) = fiat_p384_scalar_addcarryx_u32(x1660, x1636, x1633);
+-    let mut x1663: u32 = 0;
+-    let mut x1664: fiat_p384_scalar_u1 = 0;
+     let (x1663, x1664) = fiat_p384_scalar_addcarryx_u32(x1662, x1634, x1631);
+-    let mut x1665: u32 = 0;
+-    let mut x1666: fiat_p384_scalar_u1 = 0;
+     let (x1665, x1666) = fiat_p384_scalar_addcarryx_u32(x1664, x1632, x1629);
+-    let mut x1667: u32 = 0;
+-    let mut x1668: fiat_p384_scalar_u1 = 0;
+     let (x1667, x1668) = fiat_p384_scalar_addcarryx_u32(x1666, x1630, x1627);
+-    let mut x1669: u32 = 0;
+-    let mut x1670: fiat_p384_scalar_u1 = 0;
+     let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(x1668, x1628, x1625);
+     let x1671: u32 = ((x1670 as u32) + x1626);
+-    let mut x1672: u32 = 0;
+-    let mut x1673: fiat_p384_scalar_u1 = 0;
+     let (x1672, x1673) = fiat_p384_scalar_addcarryx_u32(0x0, x1600, x1647);
+-    let mut x1674: u32 = 0;
+-    let mut x1675: fiat_p384_scalar_u1 = 0;
+     let (x1674, x1675) = fiat_p384_scalar_addcarryx_u32(x1673, x1602, x1649);
+-    let mut x1676: u32 = 0;
+-    let mut x1677: fiat_p384_scalar_u1 = 0;
+     let (x1676, x1677) = fiat_p384_scalar_addcarryx_u32(x1675, x1604, x1651);
+-    let mut x1678: u32 = 0;
+-    let mut x1679: fiat_p384_scalar_u1 = 0;
+     let (x1678, x1679) = fiat_p384_scalar_addcarryx_u32(x1677, x1606, x1653);
+-    let mut x1680: u32 = 0;
+-    let mut x1681: fiat_p384_scalar_u1 = 0;
+     let (x1680, x1681) = fiat_p384_scalar_addcarryx_u32(x1679, x1608, x1655);
+-    let mut x1682: u32 = 0;
+-    let mut x1683: fiat_p384_scalar_u1 = 0;
+     let (x1682, x1683) = fiat_p384_scalar_addcarryx_u32(x1681, x1610, x1657);
+-    let mut x1684: u32 = 0;
+-    let mut x1685: fiat_p384_scalar_u1 = 0;
+     let (x1684, x1685) = fiat_p384_scalar_addcarryx_u32(x1683, x1612, x1659);
+-    let mut x1686: u32 = 0;
+-    let mut x1687: fiat_p384_scalar_u1 = 0;
+     let (x1686, x1687) = fiat_p384_scalar_addcarryx_u32(x1685, x1614, x1661);
+-    let mut x1688: u32 = 0;
+-    let mut x1689: fiat_p384_scalar_u1 = 0;
+     let (x1688, x1689) = fiat_p384_scalar_addcarryx_u32(x1687, x1616, x1663);
+-    let mut x1690: u32 = 0;
+-    let mut x1691: fiat_p384_scalar_u1 = 0;
+     let (x1690, x1691) = fiat_p384_scalar_addcarryx_u32(x1689, x1618, x1665);
+-    let mut x1692: u32 = 0;
+-    let mut x1693: fiat_p384_scalar_u1 = 0;
+     let (x1692, x1693) = fiat_p384_scalar_addcarryx_u32(x1691, x1620, x1667);
+-    let mut x1694: u32 = 0;
+-    let mut x1695: fiat_p384_scalar_u1 = 0;
+     let (x1694, x1695) = fiat_p384_scalar_addcarryx_u32(x1693, x1622, x1669);
+-    let mut x1696: u32 = 0;
+-    let mut x1697: fiat_p384_scalar_u1 = 0;
+     let (x1696, x1697) = fiat_p384_scalar_addcarryx_u32(x1695, x1624, x1671);
+-    let mut x1698: u32 = 0;
+-    let mut x1699: u32 = 0;
+     let (x1698, x1699) = fiat_p384_scalar_mulx_u32(x1672, 0xe88fdc45);
+-    let mut x1700: u32 = 0;
+-    let mut x1701: u32 = 0;
+     let (x1700, x1701) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1702: u32 = 0;
+-    let mut x1703: u32 = 0;
+     let (x1702, x1703) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1704: u32 = 0;
+-    let mut x1705: u32 = 0;
+     let (x1704, x1705) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1706: u32 = 0;
+-    let mut x1707: u32 = 0;
+     let (x1706, x1707) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1708: u32 = 0;
+-    let mut x1709: u32 = 0;
+     let (x1708, x1709) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1710: u32 = 0;
+-    let mut x1711: u32 = 0;
+     let (x1710, x1711) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1712: u32 = 0;
+-    let mut x1713: u32 = 0;
+     let (x1712, x1713) = fiat_p384_scalar_mulx_u32(x1698, 0xc7634d81);
+-    let mut x1714: u32 = 0;
+-    let mut x1715: u32 = 0;
+     let (x1714, x1715) = fiat_p384_scalar_mulx_u32(x1698, 0xf4372ddf);
+-    let mut x1716: u32 = 0;
+-    let mut x1717: u32 = 0;
+     let (x1716, x1717) = fiat_p384_scalar_mulx_u32(x1698, 0x581a0db2);
+-    let mut x1718: u32 = 0;
+-    let mut x1719: u32 = 0;
+     let (x1718, x1719) = fiat_p384_scalar_mulx_u32(x1698, 0x48b0a77a);
+-    let mut x1720: u32 = 0;
+-    let mut x1721: u32 = 0;
+     let (x1720, x1721) = fiat_p384_scalar_mulx_u32(x1698, 0xecec196a);
+-    let mut x1722: u32 = 0;
+-    let mut x1723: u32 = 0;
+     let (x1722, x1723) = fiat_p384_scalar_mulx_u32(x1698, 0xccc52973);
+-    let mut x1724: u32 = 0;
+-    let mut x1725: fiat_p384_scalar_u1 = 0;
+     let (x1724, x1725) = fiat_p384_scalar_addcarryx_u32(0x0, x1723, x1720);
+-    let mut x1726: u32 = 0;
+-    let mut x1727: fiat_p384_scalar_u1 = 0;
+     let (x1726, x1727) = fiat_p384_scalar_addcarryx_u32(x1725, x1721, x1718);
+-    let mut x1728: u32 = 0;
+-    let mut x1729: fiat_p384_scalar_u1 = 0;
+     let (x1728, x1729) = fiat_p384_scalar_addcarryx_u32(x1727, x1719, x1716);
+-    let mut x1730: u32 = 0;
+-    let mut x1731: fiat_p384_scalar_u1 = 0;
+     let (x1730, x1731) = fiat_p384_scalar_addcarryx_u32(x1729, x1717, x1714);
+-    let mut x1732: u32 = 0;
+-    let mut x1733: fiat_p384_scalar_u1 = 0;
+     let (x1732, x1733) = fiat_p384_scalar_addcarryx_u32(x1731, x1715, x1712);
+-    let mut x1734: u32 = 0;
+-    let mut x1735: fiat_p384_scalar_u1 = 0;
+     let (x1734, x1735) = fiat_p384_scalar_addcarryx_u32(x1733, x1713, x1710);
+-    let mut x1736: u32 = 0;
+-    let mut x1737: fiat_p384_scalar_u1 = 0;
+     let (x1736, x1737) = fiat_p384_scalar_addcarryx_u32(x1735, x1711, x1708);
+-    let mut x1738: u32 = 0;
+-    let mut x1739: fiat_p384_scalar_u1 = 0;
+     let (x1738, x1739) = fiat_p384_scalar_addcarryx_u32(x1737, x1709, x1706);
+-    let mut x1740: u32 = 0;
+-    let mut x1741: fiat_p384_scalar_u1 = 0;
+     let (x1740, x1741) = fiat_p384_scalar_addcarryx_u32(x1739, x1707, x1704);
+-    let mut x1742: u32 = 0;
+-    let mut x1743: fiat_p384_scalar_u1 = 0;
+     let (x1742, x1743) = fiat_p384_scalar_addcarryx_u32(x1741, x1705, x1702);
+-    let mut x1744: u32 = 0;
+-    let mut x1745: fiat_p384_scalar_u1 = 0;
+     let (x1744, x1745) = fiat_p384_scalar_addcarryx_u32(x1743, x1703, x1700);
+     let x1746: u32 = ((x1745 as u32) + x1701);
+-    let mut x1747: u32 = 0;
+-    let mut x1748: fiat_p384_scalar_u1 = 0;
+     let (x1747, x1748) = fiat_p384_scalar_addcarryx_u32(0x0, x1672, x1722);
+-    let mut x1749: u32 = 0;
+-    let mut x1750: fiat_p384_scalar_u1 = 0;
+     let (x1749, x1750) = fiat_p384_scalar_addcarryx_u32(x1748, x1674, x1724);
+-    let mut x1751: u32 = 0;
+-    let mut x1752: fiat_p384_scalar_u1 = 0;
+     let (x1751, x1752) = fiat_p384_scalar_addcarryx_u32(x1750, x1676, x1726);
+-    let mut x1753: u32 = 0;
+-    let mut x1754: fiat_p384_scalar_u1 = 0;
+     let (x1753, x1754) = fiat_p384_scalar_addcarryx_u32(x1752, x1678, x1728);
+-    let mut x1755: u32 = 0;
+-    let mut x1756: fiat_p384_scalar_u1 = 0;
+     let (x1755, x1756) = fiat_p384_scalar_addcarryx_u32(x1754, x1680, x1730);
+-    let mut x1757: u32 = 0;
+-    let mut x1758: fiat_p384_scalar_u1 = 0;
+     let (x1757, x1758) = fiat_p384_scalar_addcarryx_u32(x1756, x1682, x1732);
+-    let mut x1759: u32 = 0;
+-    let mut x1760: fiat_p384_scalar_u1 = 0;
+     let (x1759, x1760) = fiat_p384_scalar_addcarryx_u32(x1758, x1684, x1734);
+-    let mut x1761: u32 = 0;
+-    let mut x1762: fiat_p384_scalar_u1 = 0;
+     let (x1761, x1762) = fiat_p384_scalar_addcarryx_u32(x1760, x1686, x1736);
+-    let mut x1763: u32 = 0;
+-    let mut x1764: fiat_p384_scalar_u1 = 0;
+     let (x1763, x1764) = fiat_p384_scalar_addcarryx_u32(x1762, x1688, x1738);
+-    let mut x1765: u32 = 0;
+-    let mut x1766: fiat_p384_scalar_u1 = 0;
+     let (x1765, x1766) = fiat_p384_scalar_addcarryx_u32(x1764, x1690, x1740);
+-    let mut x1767: u32 = 0;
+-    let mut x1768: fiat_p384_scalar_u1 = 0;
+     let (x1767, x1768) = fiat_p384_scalar_addcarryx_u32(x1766, x1692, x1742);
+-    let mut x1769: u32 = 0;
+-    let mut x1770: fiat_p384_scalar_u1 = 0;
+     let (x1769, x1770) = fiat_p384_scalar_addcarryx_u32(x1768, x1694, x1744);
+-    let mut x1771: u32 = 0;
+-    let mut x1772: fiat_p384_scalar_u1 = 0;
+     let (x1771, x1772) = fiat_p384_scalar_addcarryx_u32(x1770, x1696, x1746);
+     let x1773: u32 = ((x1772 as u32) + (x1697 as u32));
+-    let mut x1774: u32 = 0;
+-    let mut x1775: fiat_p384_scalar_u1 = 0;
+     let (x1774, x1775) = fiat_p384_scalar_subborrowx_u32(0x0, x1749, 0xccc52973);
+-    let mut x1776: u32 = 0;
+-    let mut x1777: fiat_p384_scalar_u1 = 0;
+     let (x1776, x1777) = fiat_p384_scalar_subborrowx_u32(x1775, x1751, 0xecec196a);
+-    let mut x1778: u32 = 0;
+-    let mut x1779: fiat_p384_scalar_u1 = 0;
+     let (x1778, x1779) = fiat_p384_scalar_subborrowx_u32(x1777, x1753, 0x48b0a77a);
+-    let mut x1780: u32 = 0;
+-    let mut x1781: fiat_p384_scalar_u1 = 0;
+     let (x1780, x1781) = fiat_p384_scalar_subborrowx_u32(x1779, x1755, 0x581a0db2);
+-    let mut x1782: u32 = 0;
+-    let mut x1783: fiat_p384_scalar_u1 = 0;
+     let (x1782, x1783) = fiat_p384_scalar_subborrowx_u32(x1781, x1757, 0xf4372ddf);
+-    let mut x1784: u32 = 0;
+-    let mut x1785: fiat_p384_scalar_u1 = 0;
+     let (x1784, x1785) = fiat_p384_scalar_subborrowx_u32(x1783, x1759, 0xc7634d81);
+-    let mut x1786: u32 = 0;
+-    let mut x1787: fiat_p384_scalar_u1 = 0;
+     let (x1786, x1787) = fiat_p384_scalar_subborrowx_u32(x1785, x1761, 0xffffffff);
+-    let mut x1788: u32 = 0;
+-    let mut x1789: fiat_p384_scalar_u1 = 0;
+     let (x1788, x1789) = fiat_p384_scalar_subborrowx_u32(x1787, x1763, 0xffffffff);
+-    let mut x1790: u32 = 0;
+-    let mut x1791: fiat_p384_scalar_u1 = 0;
+     let (x1790, x1791) = fiat_p384_scalar_subborrowx_u32(x1789, x1765, 0xffffffff);
+-    let mut x1792: u32 = 0;
+-    let mut x1793: fiat_p384_scalar_u1 = 0;
+     let (x1792, x1793) = fiat_p384_scalar_subborrowx_u32(x1791, x1767, 0xffffffff);
+-    let mut x1794: u32 = 0;
+-    let mut x1795: fiat_p384_scalar_u1 = 0;
+     let (x1794, x1795) = fiat_p384_scalar_subborrowx_u32(x1793, x1769, 0xffffffff);
+-    let mut x1796: u32 = 0;
+-    let mut x1797: fiat_p384_scalar_u1 = 0;
+     let (x1796, x1797) = fiat_p384_scalar_subborrowx_u32(x1795, x1771, 0xffffffff);
+-    let mut x1798: u32 = 0;
+-    let mut x1799: fiat_p384_scalar_u1 = 0;
+     let (x1798, x1799) = fiat_p384_scalar_subborrowx_u32(x1797, x1773, (0x0 as u32));
+-    let mut x1800: u32 = 0;
+     let (x1800) = fiat_p384_scalar_cmovznz_u32(x1799, x1774, x1749);
+-    let mut x1801: u32 = 0;
+     let (x1801) = fiat_p384_scalar_cmovznz_u32(x1799, x1776, x1751);
+-    let mut x1802: u32 = 0;
+     let (x1802) = fiat_p384_scalar_cmovznz_u32(x1799, x1778, x1753);
+-    let mut x1803: u32 = 0;
+     let (x1803) = fiat_p384_scalar_cmovznz_u32(x1799, x1780, x1755);
+-    let mut x1804: u32 = 0;
+     let (x1804) = fiat_p384_scalar_cmovznz_u32(x1799, x1782, x1757);
+-    let mut x1805: u32 = 0;
+     let (x1805) = fiat_p384_scalar_cmovznz_u32(x1799, x1784, x1759);
+-    let mut x1806: u32 = 0;
+     let (x1806) = fiat_p384_scalar_cmovznz_u32(x1799, x1786, x1761);
+-    let mut x1807: u32 = 0;
+     let (x1807) = fiat_p384_scalar_cmovznz_u32(x1799, x1788, x1763);
+-    let mut x1808: u32 = 0;
+     let (x1808) = fiat_p384_scalar_cmovznz_u32(x1799, x1790, x1765);
+-    let mut x1809: u32 = 0;
+     let (x1809) = fiat_p384_scalar_cmovznz_u32(x1799, x1792, x1767);
+-    let mut x1810: u32 = 0;
+     let (x1810) = fiat_p384_scalar_cmovznz_u32(x1799, x1794, x1769);
+-    let mut x1811: u32 = 0;
+     let (x1811) = fiat_p384_scalar_cmovznz_u32(x1799, x1796, x1771);
+     out1[0] = x1800;
+     out1[1] = x1801;
+@@ -2887,2692 +1123,928 @@ pub const fn fiat_p384_scalar_square(
+     let x10: u32 = (arg1[10]);
+     let x11: u32 = (arg1[11]);
+     let x12: u32 = (arg1[0]);
+-    let mut x13: u32 = 0;
+-    let mut x14: u32 = 0;
+     let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, (arg1[11]));
+-    let mut x15: u32 = 0;
+-    let mut x16: u32 = 0;
+     let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, (arg1[10]));
+-    let mut x17: u32 = 0;
+-    let mut x18: u32 = 0;
+     let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, (arg1[9]));
+-    let mut x19: u32 = 0;
+-    let mut x20: u32 = 0;
+     let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, (arg1[8]));
+-    let mut x21: u32 = 0;
+-    let mut x22: u32 = 0;
+     let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, (arg1[7]));
+-    let mut x23: u32 = 0;
+-    let mut x24: u32 = 0;
+     let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, (arg1[6]));
+-    let mut x25: u32 = 0;
+-    let mut x26: u32 = 0;
+     let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, (arg1[5]));
+-    let mut x27: u32 = 0;
+-    let mut x28: u32 = 0;
+     let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, (arg1[4]));
+-    let mut x29: u32 = 0;
+-    let mut x30: u32 = 0;
+     let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, (arg1[3]));
+-    let mut x31: u32 = 0;
+-    let mut x32: u32 = 0;
+     let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, (arg1[2]));
+-    let mut x33: u32 = 0;
+-    let mut x34: u32 = 0;
+     let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, (arg1[1]));
+-    let mut x35: u32 = 0;
+-    let mut x36: u32 = 0;
+     let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, (arg1[0]));
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_scalar_u1 = 0;
+     let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_scalar_u1 = 0;
+     let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_scalar_u1 = 0;
+     let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_scalar_u1 = 0;
+     let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_scalar_u1 = 0;
+     let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_scalar_u1 = 0;
+     let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_scalar_u1 = 0;
+     let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
+-    let mut x51: u32 = 0;
+-    let mut x52: fiat_p384_scalar_u1 = 0;
+     let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
+-    let mut x53: u32 = 0;
+-    let mut x54: fiat_p384_scalar_u1 = 0;
+     let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
+-    let mut x55: u32 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
+-    let mut x57: u32 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
+     let x59: u32 = ((x58 as u32) + x14);
+-    let mut x60: u32 = 0;
+-    let mut x61: u32 = 0;
+     let (x60, x61) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
+-    let mut x62: u32 = 0;
+-    let mut x63: u32 = 0;
+     let (x62, x63) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x64: u32 = 0;
+-    let mut x65: u32 = 0;
+     let (x64, x65) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x66: u32 = 0;
+-    let mut x67: u32 = 0;
+     let (x66, x67) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x68: u32 = 0;
+-    let mut x69: u32 = 0;
+     let (x68, x69) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x70: u32 = 0;
+-    let mut x71: u32 = 0;
+     let (x70, x71) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x72: u32 = 0;
+-    let mut x73: u32 = 0;
+     let (x72, x73) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+-    let mut x74: u32 = 0;
+-    let mut x75: u32 = 0;
+     let (x74, x75) = fiat_p384_scalar_mulx_u32(x60, 0xc7634d81);
+-    let mut x76: u32 = 0;
+-    let mut x77: u32 = 0;
+     let (x76, x77) = fiat_p384_scalar_mulx_u32(x60, 0xf4372ddf);
+-    let mut x78: u32 = 0;
+-    let mut x79: u32 = 0;
+     let (x78, x79) = fiat_p384_scalar_mulx_u32(x60, 0x581a0db2);
+-    let mut x80: u32 = 0;
+-    let mut x81: u32 = 0;
+     let (x80, x81) = fiat_p384_scalar_mulx_u32(x60, 0x48b0a77a);
+-    let mut x82: u32 = 0;
+-    let mut x83: u32 = 0;
+     let (x82, x83) = fiat_p384_scalar_mulx_u32(x60, 0xecec196a);
+-    let mut x84: u32 = 0;
+-    let mut x85: u32 = 0;
+     let (x84, x85) = fiat_p384_scalar_mulx_u32(x60, 0xccc52973);
+-    let mut x86: u32 = 0;
+-    let mut x87: fiat_p384_scalar_u1 = 0;
+     let (x86, x87) = fiat_p384_scalar_addcarryx_u32(0x0, x85, x82);
+-    let mut x88: u32 = 0;
+-    let mut x89: fiat_p384_scalar_u1 = 0;
+     let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x83, x80);
+-    let mut x90: u32 = 0;
+-    let mut x91: fiat_p384_scalar_u1 = 0;
+     let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x81, x78);
+-    let mut x92: u32 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x79, x76);
+-    let mut x94: u32 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x77, x74);
+-    let mut x96: u32 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x75, x72);
+-    let mut x98: u32 = 0;
+-    let mut x99: fiat_p384_scalar_u1 = 0;
+     let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x73, x70);
+-    let mut x100: u32 = 0;
+-    let mut x101: fiat_p384_scalar_u1 = 0;
+     let (x100, x101) = fiat_p384_scalar_addcarryx_u32(x99, x71, x68);
+-    let mut x102: u32 = 0;
+-    let mut x103: fiat_p384_scalar_u1 = 0;
+     let (x102, x103) = fiat_p384_scalar_addcarryx_u32(x101, x69, x66);
+-    let mut x104: u32 = 0;
+-    let mut x105: fiat_p384_scalar_u1 = 0;
+     let (x104, x105) = fiat_p384_scalar_addcarryx_u32(x103, x67, x64);
+-    let mut x106: u32 = 0;
+-    let mut x107: fiat_p384_scalar_u1 = 0;
+     let (x106, x107) = fiat_p384_scalar_addcarryx_u32(x105, x65, x62);
+     let x108: u32 = ((x107 as u32) + x63);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_scalar_u1 = 0;
+     let (x109, x110) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x84);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_scalar_u1 = 0;
+     let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x37, x86);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_scalar_u1 = 0;
+     let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x39, x88);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_scalar_u1 = 0;
+     let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x41, x90);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_scalar_u1 = 0;
+     let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x43, x92);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_scalar_u1 = 0;
+     let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x45, x94);
+-    let mut x121: u32 = 0;
+-    let mut x122: fiat_p384_scalar_u1 = 0;
+     let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x47, x96);
+-    let mut x123: u32 = 0;
+-    let mut x124: fiat_p384_scalar_u1 = 0;
+     let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x49, x98);
+-    let mut x125: u32 = 0;
+-    let mut x126: fiat_p384_scalar_u1 = 0;
+     let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x51, x100);
+-    let mut x127: u32 = 0;
+-    let mut x128: fiat_p384_scalar_u1 = 0;
+     let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x53, x102);
+-    let mut x129: u32 = 0;
+-    let mut x130: fiat_p384_scalar_u1 = 0;
+     let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x55, x104);
+-    let mut x131: u32 = 0;
+-    let mut x132: fiat_p384_scalar_u1 = 0;
+     let (x131, x132) = fiat_p384_scalar_addcarryx_u32(x130, x57, x106);
+-    let mut x133: u32 = 0;
+-    let mut x134: fiat_p384_scalar_u1 = 0;
+     let (x133, x134) = fiat_p384_scalar_addcarryx_u32(x132, x59, x108);
+-    let mut x135: u32 = 0;
+-    let mut x136: u32 = 0;
+     let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, (arg1[11]));
+-    let mut x137: u32 = 0;
+-    let mut x138: u32 = 0;
+     let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, (arg1[10]));
+-    let mut x139: u32 = 0;
+-    let mut x140: u32 = 0;
+     let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, (arg1[9]));
+-    let mut x141: u32 = 0;
+-    let mut x142: u32 = 0;
+     let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, (arg1[8]));
+-    let mut x143: u32 = 0;
+-    let mut x144: u32 = 0;
+     let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, (arg1[7]));
+-    let mut x145: u32 = 0;
+-    let mut x146: u32 = 0;
+     let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, (arg1[6]));
+-    let mut x147: u32 = 0;
+-    let mut x148: u32 = 0;
+     let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, (arg1[5]));
+-    let mut x149: u32 = 0;
+-    let mut x150: u32 = 0;
+     let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, (arg1[4]));
+-    let mut x151: u32 = 0;
+-    let mut x152: u32 = 0;
+     let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, (arg1[3]));
+-    let mut x153: u32 = 0;
+-    let mut x154: u32 = 0;
+     let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, (arg1[2]));
+-    let mut x155: u32 = 0;
+-    let mut x156: u32 = 0;
+     let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, (arg1[1]));
+-    let mut x157: u32 = 0;
+-    let mut x158: u32 = 0;
+     let (x157, x158) = fiat_p384_scalar_mulx_u32(x1, (arg1[0]));
+-    let mut x159: u32 = 0;
+-    let mut x160: fiat_p384_scalar_u1 = 0;
+     let (x159, x160) = fiat_p384_scalar_addcarryx_u32(0x0, x158, x155);
+-    let mut x161: u32 = 0;
+-    let mut x162: fiat_p384_scalar_u1 = 0;
+     let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x156, x153);
+-    let mut x163: u32 = 0;
+-    let mut x164: fiat_p384_scalar_u1 = 0;
+     let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x154, x151);
+-    let mut x165: u32 = 0;
+-    let mut x166: fiat_p384_scalar_u1 = 0;
+     let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x152, x149);
+-    let mut x167: u32 = 0;
+-    let mut x168: fiat_p384_scalar_u1 = 0;
+     let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x150, x147);
+-    let mut x169: u32 = 0;
+-    let mut x170: fiat_p384_scalar_u1 = 0;
+     let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x148, x145);
+-    let mut x171: u32 = 0;
+-    let mut x172: fiat_p384_scalar_u1 = 0;
+     let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x146, x143);
+-    let mut x173: u32 = 0;
+-    let mut x174: fiat_p384_scalar_u1 = 0;
+     let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x144, x141);
+-    let mut x175: u32 = 0;
+-    let mut x176: fiat_p384_scalar_u1 = 0;
+     let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x142, x139);
+-    let mut x177: u32 = 0;
+-    let mut x178: fiat_p384_scalar_u1 = 0;
+     let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x140, x137);
+-    let mut x179: u32 = 0;
+-    let mut x180: fiat_p384_scalar_u1 = 0;
+     let (x179, x180) = fiat_p384_scalar_addcarryx_u32(x178, x138, x135);
+     let x181: u32 = ((x180 as u32) + x136);
+-    let mut x182: u32 = 0;
+-    let mut x183: fiat_p384_scalar_u1 = 0;
+     let (x182, x183) = fiat_p384_scalar_addcarryx_u32(0x0, x111, x157);
+-    let mut x184: u32 = 0;
+-    let mut x185: fiat_p384_scalar_u1 = 0;
+     let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x113, x159);
+-    let mut x186: u32 = 0;
+-    let mut x187: fiat_p384_scalar_u1 = 0;
+     let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x115, x161);
+-    let mut x188: u32 = 0;
+-    let mut x189: fiat_p384_scalar_u1 = 0;
+     let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x117, x163);
+-    let mut x190: u32 = 0;
+-    let mut x191: fiat_p384_scalar_u1 = 0;
+     let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x119, x165);
+-    let mut x192: u32 = 0;
+-    let mut x193: fiat_p384_scalar_u1 = 0;
+     let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x121, x167);
+-    let mut x194: u32 = 0;
+-    let mut x195: fiat_p384_scalar_u1 = 0;
+     let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x123, x169);
+-    let mut x196: u32 = 0;
+-    let mut x197: fiat_p384_scalar_u1 = 0;
+     let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x125, x171);
+-    let mut x198: u32 = 0;
+-    let mut x199: fiat_p384_scalar_u1 = 0;
+     let (x198, x199) = fiat_p384_scalar_addcarryx_u32(x197, x127, x173);
+-    let mut x200: u32 = 0;
+-    let mut x201: fiat_p384_scalar_u1 = 0;
+     let (x200, x201) = fiat_p384_scalar_addcarryx_u32(x199, x129, x175);
+-    let mut x202: u32 = 0;
+-    let mut x203: fiat_p384_scalar_u1 = 0;
+     let (x202, x203) = fiat_p384_scalar_addcarryx_u32(x201, x131, x177);
+-    let mut x204: u32 = 0;
+-    let mut x205: fiat_p384_scalar_u1 = 0;
+     let (x204, x205) = fiat_p384_scalar_addcarryx_u32(x203, x133, x179);
+-    let mut x206: u32 = 0;
+-    let mut x207: fiat_p384_scalar_u1 = 0;
+     let (x206, x207) = fiat_p384_scalar_addcarryx_u32(x205, (x134 as u32), x181);
+-    let mut x208: u32 = 0;
+-    let mut x209: u32 = 0;
+     let (x208, x209) = fiat_p384_scalar_mulx_u32(x182, 0xe88fdc45);
+-    let mut x210: u32 = 0;
+-    let mut x211: u32 = 0;
+     let (x210, x211) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x212: u32 = 0;
+-    let mut x213: u32 = 0;
+     let (x212, x213) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x214: u32 = 0;
+-    let mut x215: u32 = 0;
+     let (x214, x215) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x216: u32 = 0;
+-    let mut x217: u32 = 0;
+     let (x216, x217) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x218: u32 = 0;
+-    let mut x219: u32 = 0;
+     let (x218, x219) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x220: u32 = 0;
+-    let mut x221: u32 = 0;
+     let (x220, x221) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+-    let mut x222: u32 = 0;
+-    let mut x223: u32 = 0;
+     let (x222, x223) = fiat_p384_scalar_mulx_u32(x208, 0xc7634d81);
+-    let mut x224: u32 = 0;
+-    let mut x225: u32 = 0;
+     let (x224, x225) = fiat_p384_scalar_mulx_u32(x208, 0xf4372ddf);
+-    let mut x226: u32 = 0;
+-    let mut x227: u32 = 0;
+     let (x226, x227) = fiat_p384_scalar_mulx_u32(x208, 0x581a0db2);
+-    let mut x228: u32 = 0;
+-    let mut x229: u32 = 0;
+     let (x228, x229) = fiat_p384_scalar_mulx_u32(x208, 0x48b0a77a);
+-    let mut x230: u32 = 0;
+-    let mut x231: u32 = 0;
+     let (x230, x231) = fiat_p384_scalar_mulx_u32(x208, 0xecec196a);
+-    let mut x232: u32 = 0;
+-    let mut x233: u32 = 0;
+     let (x232, x233) = fiat_p384_scalar_mulx_u32(x208, 0xccc52973);
+-    let mut x234: u32 = 0;
+-    let mut x235: fiat_p384_scalar_u1 = 0;
+     let (x234, x235) = fiat_p384_scalar_addcarryx_u32(0x0, x233, x230);
+-    let mut x236: u32 = 0;
+-    let mut x237: fiat_p384_scalar_u1 = 0;
+     let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x231, x228);
+-    let mut x238: u32 = 0;
+-    let mut x239: fiat_p384_scalar_u1 = 0;
+     let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x229, x226);
+-    let mut x240: u32 = 0;
+-    let mut x241: fiat_p384_scalar_u1 = 0;
+     let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x227, x224);
+-    let mut x242: u32 = 0;
+-    let mut x243: fiat_p384_scalar_u1 = 0;
+     let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x225, x222);
+-    let mut x244: u32 = 0;
+-    let mut x245: fiat_p384_scalar_u1 = 0;
+     let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x223, x220);
+-    let mut x246: u32 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(x245, x221, x218);
+-    let mut x248: u32 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x219, x216);
+-    let mut x250: u32 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x217, x214);
+-    let mut x252: u32 = 0;
+-    let mut x253: fiat_p384_scalar_u1 = 0;
+     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x215, x212);
+-    let mut x254: u32 = 0;
+-    let mut x255: fiat_p384_scalar_u1 = 0;
+     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x213, x210);
+     let x256: u32 = ((x255 as u32) + x211);
+-    let mut x257: u32 = 0;
+-    let mut x258: fiat_p384_scalar_u1 = 0;
+     let (x257, x258) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x232);
+-    let mut x259: u32 = 0;
+-    let mut x260: fiat_p384_scalar_u1 = 0;
+     let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x184, x234);
+-    let mut x261: u32 = 0;
+-    let mut x262: fiat_p384_scalar_u1 = 0;
+     let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x186, x236);
+-    let mut x263: u32 = 0;
+-    let mut x264: fiat_p384_scalar_u1 = 0;
+     let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x188, x238);
+-    let mut x265: u32 = 0;
+-    let mut x266: fiat_p384_scalar_u1 = 0;
+     let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x190, x240);
+-    let mut x267: u32 = 0;
+-    let mut x268: fiat_p384_scalar_u1 = 0;
+     let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x192, x242);
+-    let mut x269: u32 = 0;
+-    let mut x270: fiat_p384_scalar_u1 = 0;
+     let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x194, x244);
+-    let mut x271: u32 = 0;
+-    let mut x272: fiat_p384_scalar_u1 = 0;
+     let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x196, x246);
+-    let mut x273: u32 = 0;
+-    let mut x274: fiat_p384_scalar_u1 = 0;
+     let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x198, x248);
+-    let mut x275: u32 = 0;
+-    let mut x276: fiat_p384_scalar_u1 = 0;
+     let (x275, x276) = fiat_p384_scalar_addcarryx_u32(x274, x200, x250);
+-    let mut x277: u32 = 0;
+-    let mut x278: fiat_p384_scalar_u1 = 0;
+     let (x277, x278) = fiat_p384_scalar_addcarryx_u32(x276, x202, x252);
+-    let mut x279: u32 = 0;
+-    let mut x280: fiat_p384_scalar_u1 = 0;
+     let (x279, x280) = fiat_p384_scalar_addcarryx_u32(x278, x204, x254);
+-    let mut x281: u32 = 0;
+-    let mut x282: fiat_p384_scalar_u1 = 0;
+     let (x281, x282) = fiat_p384_scalar_addcarryx_u32(x280, x206, x256);
+     let x283: u32 = ((x282 as u32) + (x207 as u32));
+-    let mut x284: u32 = 0;
+-    let mut x285: u32 = 0;
+     let (x284, x285) = fiat_p384_scalar_mulx_u32(x2, (arg1[11]));
+-    let mut x286: u32 = 0;
+-    let mut x287: u32 = 0;
+     let (x286, x287) = fiat_p384_scalar_mulx_u32(x2, (arg1[10]));
+-    let mut x288: u32 = 0;
+-    let mut x289: u32 = 0;
+     let (x288, x289) = fiat_p384_scalar_mulx_u32(x2, (arg1[9]));
+-    let mut x290: u32 = 0;
+-    let mut x291: u32 = 0;
+     let (x290, x291) = fiat_p384_scalar_mulx_u32(x2, (arg1[8]));
+-    let mut x292: u32 = 0;
+-    let mut x293: u32 = 0;
+     let (x292, x293) = fiat_p384_scalar_mulx_u32(x2, (arg1[7]));
+-    let mut x294: u32 = 0;
+-    let mut x295: u32 = 0;
+     let (x294, x295) = fiat_p384_scalar_mulx_u32(x2, (arg1[6]));
+-    let mut x296: u32 = 0;
+-    let mut x297: u32 = 0;
+     let (x296, x297) = fiat_p384_scalar_mulx_u32(x2, (arg1[5]));
+-    let mut x298: u32 = 0;
+-    let mut x299: u32 = 0;
+     let (x298, x299) = fiat_p384_scalar_mulx_u32(x2, (arg1[4]));
+-    let mut x300: u32 = 0;
+-    let mut x301: u32 = 0;
+     let (x300, x301) = fiat_p384_scalar_mulx_u32(x2, (arg1[3]));
+-    let mut x302: u32 = 0;
+-    let mut x303: u32 = 0;
+     let (x302, x303) = fiat_p384_scalar_mulx_u32(x2, (arg1[2]));
+-    let mut x304: u32 = 0;
+-    let mut x305: u32 = 0;
+     let (x304, x305) = fiat_p384_scalar_mulx_u32(x2, (arg1[1]));
+-    let mut x306: u32 = 0;
+-    let mut x307: u32 = 0;
+     let (x306, x307) = fiat_p384_scalar_mulx_u32(x2, (arg1[0]));
+-    let mut x308: u32 = 0;
+-    let mut x309: fiat_p384_scalar_u1 = 0;
+     let (x308, x309) = fiat_p384_scalar_addcarryx_u32(0x0, x307, x304);
+-    let mut x310: u32 = 0;
+-    let mut x311: fiat_p384_scalar_u1 = 0;
+     let (x310, x311) = fiat_p384_scalar_addcarryx_u32(x309, x305, x302);
+-    let mut x312: u32 = 0;
+-    let mut x313: fiat_p384_scalar_u1 = 0;
+     let (x312, x313) = fiat_p384_scalar_addcarryx_u32(x311, x303, x300);
+-    let mut x314: u32 = 0;
+-    let mut x315: fiat_p384_scalar_u1 = 0;
+     let (x314, x315) = fiat_p384_scalar_addcarryx_u32(x313, x301, x298);
+-    let mut x316: u32 = 0;
+-    let mut x317: fiat_p384_scalar_u1 = 0;
+     let (x316, x317) = fiat_p384_scalar_addcarryx_u32(x315, x299, x296);
+-    let mut x318: u32 = 0;
+-    let mut x319: fiat_p384_scalar_u1 = 0;
+     let (x318, x319) = fiat_p384_scalar_addcarryx_u32(x317, x297, x294);
+-    let mut x320: u32 = 0;
+-    let mut x321: fiat_p384_scalar_u1 = 0;
+     let (x320, x321) = fiat_p384_scalar_addcarryx_u32(x319, x295, x292);
+-    let mut x322: u32 = 0;
+-    let mut x323: fiat_p384_scalar_u1 = 0;
+     let (x322, x323) = fiat_p384_scalar_addcarryx_u32(x321, x293, x290);
+-    let mut x324: u32 = 0;
+-    let mut x325: fiat_p384_scalar_u1 = 0;
+     let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x291, x288);
+-    let mut x326: u32 = 0;
+-    let mut x327: fiat_p384_scalar_u1 = 0;
+     let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x289, x286);
+-    let mut x328: u32 = 0;
+-    let mut x329: fiat_p384_scalar_u1 = 0;
+     let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x287, x284);
+     let x330: u32 = ((x329 as u32) + x285);
+-    let mut x331: u32 = 0;
+-    let mut x332: fiat_p384_scalar_u1 = 0;
+     let (x331, x332) = fiat_p384_scalar_addcarryx_u32(0x0, x259, x306);
+-    let mut x333: u32 = 0;
+-    let mut x334: fiat_p384_scalar_u1 = 0;
+     let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x261, x308);
+-    let mut x335: u32 = 0;
+-    let mut x336: fiat_p384_scalar_u1 = 0;
+     let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x263, x310);
+-    let mut x337: u32 = 0;
+-    let mut x338: fiat_p384_scalar_u1 = 0;
+     let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x265, x312);
+-    let mut x339: u32 = 0;
+-    let mut x340: fiat_p384_scalar_u1 = 0;
+     let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x267, x314);
+-    let mut x341: u32 = 0;
+-    let mut x342: fiat_p384_scalar_u1 = 0;
+     let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x269, x316);
+-    let mut x343: u32 = 0;
+-    let mut x344: fiat_p384_scalar_u1 = 0;
+     let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x271, x318);
+-    let mut x345: u32 = 0;
+-    let mut x346: fiat_p384_scalar_u1 = 0;
+     let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x273, x320);
+-    let mut x347: u32 = 0;
+-    let mut x348: fiat_p384_scalar_u1 = 0;
+     let (x347, x348) = fiat_p384_scalar_addcarryx_u32(x346, x275, x322);
+-    let mut x349: u32 = 0;
+-    let mut x350: fiat_p384_scalar_u1 = 0;
+     let (x349, x350) = fiat_p384_scalar_addcarryx_u32(x348, x277, x324);
+-    let mut x351: u32 = 0;
+-    let mut x352: fiat_p384_scalar_u1 = 0;
+     let (x351, x352) = fiat_p384_scalar_addcarryx_u32(x350, x279, x326);
+-    let mut x353: u32 = 0;
+-    let mut x354: fiat_p384_scalar_u1 = 0;
+     let (x353, x354) = fiat_p384_scalar_addcarryx_u32(x352, x281, x328);
+-    let mut x355: u32 = 0;
+-    let mut x356: fiat_p384_scalar_u1 = 0;
+     let (x355, x356) = fiat_p384_scalar_addcarryx_u32(x354, x283, x330);
+-    let mut x357: u32 = 0;
+-    let mut x358: u32 = 0;
+     let (x357, x358) = fiat_p384_scalar_mulx_u32(x331, 0xe88fdc45);
+-    let mut x359: u32 = 0;
+-    let mut x360: u32 = 0;
+     let (x359, x360) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x361: u32 = 0;
+-    let mut x362: u32 = 0;
+     let (x361, x362) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x363: u32 = 0;
+-    let mut x364: u32 = 0;
+     let (x363, x364) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x365: u32 = 0;
+-    let mut x366: u32 = 0;
+     let (x365, x366) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x367: u32 = 0;
+-    let mut x368: u32 = 0;
+     let (x367, x368) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x369: u32 = 0;
+-    let mut x370: u32 = 0;
+     let (x369, x370) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+-    let mut x371: u32 = 0;
+-    let mut x372: u32 = 0;
+     let (x371, x372) = fiat_p384_scalar_mulx_u32(x357, 0xc7634d81);
+-    let mut x373: u32 = 0;
+-    let mut x374: u32 = 0;
+     let (x373, x374) = fiat_p384_scalar_mulx_u32(x357, 0xf4372ddf);
+-    let mut x375: u32 = 0;
+-    let mut x376: u32 = 0;
+     let (x375, x376) = fiat_p384_scalar_mulx_u32(x357, 0x581a0db2);
+-    let mut x377: u32 = 0;
+-    let mut x378: u32 = 0;
+     let (x377, x378) = fiat_p384_scalar_mulx_u32(x357, 0x48b0a77a);
+-    let mut x379: u32 = 0;
+-    let mut x380: u32 = 0;
+     let (x379, x380) = fiat_p384_scalar_mulx_u32(x357, 0xecec196a);
+-    let mut x381: u32 = 0;
+-    let mut x382: u32 = 0;
+     let (x381, x382) = fiat_p384_scalar_mulx_u32(x357, 0xccc52973);
+-    let mut x383: u32 = 0;
+-    let mut x384: fiat_p384_scalar_u1 = 0;
+     let (x383, x384) = fiat_p384_scalar_addcarryx_u32(0x0, x382, x379);
+-    let mut x385: u32 = 0;
+-    let mut x386: fiat_p384_scalar_u1 = 0;
+     let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x380, x377);
+-    let mut x387: u32 = 0;
+-    let mut x388: fiat_p384_scalar_u1 = 0;
+     let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x378, x375);
+-    let mut x389: u32 = 0;
+-    let mut x390: fiat_p384_scalar_u1 = 0;
+     let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x376, x373);
+-    let mut x391: u32 = 0;
+-    let mut x392: fiat_p384_scalar_u1 = 0;
+     let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x374, x371);
+-    let mut x393: u32 = 0;
+-    let mut x394: fiat_p384_scalar_u1 = 0;
+     let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x372, x369);
+-    let mut x395: u32 = 0;
+-    let mut x396: fiat_p384_scalar_u1 = 0;
+     let (x395, x396) = fiat_p384_scalar_addcarryx_u32(x394, x370, x367);
+-    let mut x397: u32 = 0;
+-    let mut x398: fiat_p384_scalar_u1 = 0;
+     let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x368, x365);
+-    let mut x399: u32 = 0;
+-    let mut x400: fiat_p384_scalar_u1 = 0;
+     let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x366, x363);
+-    let mut x401: u32 = 0;
+-    let mut x402: fiat_p384_scalar_u1 = 0;
+     let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x364, x361);
+-    let mut x403: u32 = 0;
+-    let mut x404: fiat_p384_scalar_u1 = 0;
+     let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x362, x359);
+     let x405: u32 = ((x404 as u32) + x360);
+-    let mut x406: u32 = 0;
+-    let mut x407: fiat_p384_scalar_u1 = 0;
+     let (x406, x407) = fiat_p384_scalar_addcarryx_u32(0x0, x331, x381);
+-    let mut x408: u32 = 0;
+-    let mut x409: fiat_p384_scalar_u1 = 0;
+     let (x408, x409) = fiat_p384_scalar_addcarryx_u32(x407, x333, x383);
+-    let mut x410: u32 = 0;
+-    let mut x411: fiat_p384_scalar_u1 = 0;
+     let (x410, x411) = fiat_p384_scalar_addcarryx_u32(x409, x335, x385);
+-    let mut x412: u32 = 0;
+-    let mut x413: fiat_p384_scalar_u1 = 0;
+     let (x412, x413) = fiat_p384_scalar_addcarryx_u32(x411, x337, x387);
+-    let mut x414: u32 = 0;
+-    let mut x415: fiat_p384_scalar_u1 = 0;
+     let (x414, x415) = fiat_p384_scalar_addcarryx_u32(x413, x339, x389);
+-    let mut x416: u32 = 0;
+-    let mut x417: fiat_p384_scalar_u1 = 0;
+     let (x416, x417) = fiat_p384_scalar_addcarryx_u32(x415, x341, x391);
+-    let mut x418: u32 = 0;
+-    let mut x419: fiat_p384_scalar_u1 = 0;
+     let (x418, x419) = fiat_p384_scalar_addcarryx_u32(x417, x343, x393);
+-    let mut x420: u32 = 0;
+-    let mut x421: fiat_p384_scalar_u1 = 0;
+     let (x420, x421) = fiat_p384_scalar_addcarryx_u32(x419, x345, x395);
+-    let mut x422: u32 = 0;
+-    let mut x423: fiat_p384_scalar_u1 = 0;
+     let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x347, x397);
+-    let mut x424: u32 = 0;
+-    let mut x425: fiat_p384_scalar_u1 = 0;
+     let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x349, x399);
+-    let mut x426: u32 = 0;
+-    let mut x427: fiat_p384_scalar_u1 = 0;
+     let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x351, x401);
+-    let mut x428: u32 = 0;
+-    let mut x429: fiat_p384_scalar_u1 = 0;
+     let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x353, x403);
+-    let mut x430: u32 = 0;
+-    let mut x431: fiat_p384_scalar_u1 = 0;
+     let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x355, x405);
+     let x432: u32 = ((x431 as u32) + (x356 as u32));
+-    let mut x433: u32 = 0;
+-    let mut x434: u32 = 0;
+     let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, (arg1[11]));
+-    let mut x435: u32 = 0;
+-    let mut x436: u32 = 0;
+     let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, (arg1[10]));
+-    let mut x437: u32 = 0;
+-    let mut x438: u32 = 0;
+     let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, (arg1[9]));
+-    let mut x439: u32 = 0;
+-    let mut x440: u32 = 0;
+     let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, (arg1[8]));
+-    let mut x441: u32 = 0;
+-    let mut x442: u32 = 0;
+     let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, (arg1[7]));
+-    let mut x443: u32 = 0;
+-    let mut x444: u32 = 0;
+     let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, (arg1[6]));
+-    let mut x445: u32 = 0;
+-    let mut x446: u32 = 0;
+     let (x445, x446) = fiat_p384_scalar_mulx_u32(x3, (arg1[5]));
+-    let mut x447: u32 = 0;
+-    let mut x448: u32 = 0;
+     let (x447, x448) = fiat_p384_scalar_mulx_u32(x3, (arg1[4]));
+-    let mut x449: u32 = 0;
+-    let mut x450: u32 = 0;
+     let (x449, x450) = fiat_p384_scalar_mulx_u32(x3, (arg1[3]));
+-    let mut x451: u32 = 0;
+-    let mut x452: u32 = 0;
+     let (x451, x452) = fiat_p384_scalar_mulx_u32(x3, (arg1[2]));
+-    let mut x453: u32 = 0;
+-    let mut x454: u32 = 0;
+     let (x453, x454) = fiat_p384_scalar_mulx_u32(x3, (arg1[1]));
+-    let mut x455: u32 = 0;
+-    let mut x456: u32 = 0;
+     let (x455, x456) = fiat_p384_scalar_mulx_u32(x3, (arg1[0]));
+-    let mut x457: u32 = 0;
+-    let mut x458: fiat_p384_scalar_u1 = 0;
+     let (x457, x458) = fiat_p384_scalar_addcarryx_u32(0x0, x456, x453);
+-    let mut x459: u32 = 0;
+-    let mut x460: fiat_p384_scalar_u1 = 0;
+     let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x454, x451);
+-    let mut x461: u32 = 0;
+-    let mut x462: fiat_p384_scalar_u1 = 0;
+     let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x452, x449);
+-    let mut x463: u32 = 0;
+-    let mut x464: fiat_p384_scalar_u1 = 0;
+     let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x450, x447);
+-    let mut x465: u32 = 0;
+-    let mut x466: fiat_p384_scalar_u1 = 0;
+     let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x448, x445);
+-    let mut x467: u32 = 0;
+-    let mut x468: fiat_p384_scalar_u1 = 0;
+     let (x467, x468) = fiat_p384_scalar_addcarryx_u32(x466, x446, x443);
+-    let mut x469: u32 = 0;
+-    let mut x470: fiat_p384_scalar_u1 = 0;
+     let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x444, x441);
+-    let mut x471: u32 = 0;
+-    let mut x472: fiat_p384_scalar_u1 = 0;
+     let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x442, x439);
+-    let mut x473: u32 = 0;
+-    let mut x474: fiat_p384_scalar_u1 = 0;
+     let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x440, x437);
+-    let mut x475: u32 = 0;
+-    let mut x476: fiat_p384_scalar_u1 = 0;
+     let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x438, x435);
+-    let mut x477: u32 = 0;
+-    let mut x478: fiat_p384_scalar_u1 = 0;
+     let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x436, x433);
+     let x479: u32 = ((x478 as u32) + x434);
+-    let mut x480: u32 = 0;
+-    let mut x481: fiat_p384_scalar_u1 = 0;
+     let (x480, x481) = fiat_p384_scalar_addcarryx_u32(0x0, x408, x455);
+-    let mut x482: u32 = 0;
+-    let mut x483: fiat_p384_scalar_u1 = 0;
+     let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x410, x457);
+-    let mut x484: u32 = 0;
+-    let mut x485: fiat_p384_scalar_u1 = 0;
+     let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x412, x459);
+-    let mut x486: u32 = 0;
+-    let mut x487: fiat_p384_scalar_u1 = 0;
+     let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x414, x461);
+-    let mut x488: u32 = 0;
+-    let mut x489: fiat_p384_scalar_u1 = 0;
+     let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x416, x463);
+-    let mut x490: u32 = 0;
+-    let mut x491: fiat_p384_scalar_u1 = 0;
+     let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x418, x465);
+-    let mut x492: u32 = 0;
+-    let mut x493: fiat_p384_scalar_u1 = 0;
+     let (x492, x493) = fiat_p384_scalar_addcarryx_u32(x491, x420, x467);
+-    let mut x494: u32 = 0;
+-    let mut x495: fiat_p384_scalar_u1 = 0;
+     let (x494, x495) = fiat_p384_scalar_addcarryx_u32(x493, x422, x469);
+-    let mut x496: u32 = 0;
+-    let mut x497: fiat_p384_scalar_u1 = 0;
+     let (x496, x497) = fiat_p384_scalar_addcarryx_u32(x495, x424, x471);
+-    let mut x498: u32 = 0;
+-    let mut x499: fiat_p384_scalar_u1 = 0;
+     let (x498, x499) = fiat_p384_scalar_addcarryx_u32(x497, x426, x473);
+-    let mut x500: u32 = 0;
+-    let mut x501: fiat_p384_scalar_u1 = 0;
+     let (x500, x501) = fiat_p384_scalar_addcarryx_u32(x499, x428, x475);
+-    let mut x502: u32 = 0;
+-    let mut x503: fiat_p384_scalar_u1 = 0;
+     let (x502, x503) = fiat_p384_scalar_addcarryx_u32(x501, x430, x477);
+-    let mut x504: u32 = 0;
+-    let mut x505: fiat_p384_scalar_u1 = 0;
+     let (x504, x505) = fiat_p384_scalar_addcarryx_u32(x503, x432, x479);
+-    let mut x506: u32 = 0;
+-    let mut x507: u32 = 0;
+     let (x506, x507) = fiat_p384_scalar_mulx_u32(x480, 0xe88fdc45);
+-    let mut x508: u32 = 0;
+-    let mut x509: u32 = 0;
+     let (x508, x509) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x510: u32 = 0;
+-    let mut x511: u32 = 0;
+     let (x510, x511) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x512: u32 = 0;
+-    let mut x513: u32 = 0;
+     let (x512, x513) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x514: u32 = 0;
+-    let mut x515: u32 = 0;
+     let (x514, x515) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x516: u32 = 0;
+-    let mut x517: u32 = 0;
+     let (x516, x517) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x518: u32 = 0;
+-    let mut x519: u32 = 0;
+     let (x518, x519) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+-    let mut x520: u32 = 0;
+-    let mut x521: u32 = 0;
+     let (x520, x521) = fiat_p384_scalar_mulx_u32(x506, 0xc7634d81);
+-    let mut x522: u32 = 0;
+-    let mut x523: u32 = 0;
+     let (x522, x523) = fiat_p384_scalar_mulx_u32(x506, 0xf4372ddf);
+-    let mut x524: u32 = 0;
+-    let mut x525: u32 = 0;
+     let (x524, x525) = fiat_p384_scalar_mulx_u32(x506, 0x581a0db2);
+-    let mut x526: u32 = 0;
+-    let mut x527: u32 = 0;
+     let (x526, x527) = fiat_p384_scalar_mulx_u32(x506, 0x48b0a77a);
+-    let mut x528: u32 = 0;
+-    let mut x529: u32 = 0;
+     let (x528, x529) = fiat_p384_scalar_mulx_u32(x506, 0xecec196a);
+-    let mut x530: u32 = 0;
+-    let mut x531: u32 = 0;
+     let (x530, x531) = fiat_p384_scalar_mulx_u32(x506, 0xccc52973);
+-    let mut x532: u32 = 0;
+-    let mut x533: fiat_p384_scalar_u1 = 0;
+     let (x532, x533) = fiat_p384_scalar_addcarryx_u32(0x0, x531, x528);
+-    let mut x534: u32 = 0;
+-    let mut x535: fiat_p384_scalar_u1 = 0;
+     let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x529, x526);
+-    let mut x536: u32 = 0;
+-    let mut x537: fiat_p384_scalar_u1 = 0;
+     let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x527, x524);
+-    let mut x538: u32 = 0;
+-    let mut x539: fiat_p384_scalar_u1 = 0;
+     let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x525, x522);
+-    let mut x540: u32 = 0;
+-    let mut x541: fiat_p384_scalar_u1 = 0;
+     let (x540, x541) = fiat_p384_scalar_addcarryx_u32(x539, x523, x520);
+-    let mut x542: u32 = 0;
+-    let mut x543: fiat_p384_scalar_u1 = 0;
+     let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x521, x518);
+-    let mut x544: u32 = 0;
+-    let mut x545: fiat_p384_scalar_u1 = 0;
+     let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x519, x516);
+-    let mut x546: u32 = 0;
+-    let mut x547: fiat_p384_scalar_u1 = 0;
+     let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x517, x514);
+-    let mut x548: u32 = 0;
+-    let mut x549: fiat_p384_scalar_u1 = 0;
+     let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x515, x512);
+-    let mut x550: u32 = 0;
+-    let mut x551: fiat_p384_scalar_u1 = 0;
+     let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x513, x510);
+-    let mut x552: u32 = 0;
+-    let mut x553: fiat_p384_scalar_u1 = 0;
+     let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x511, x508);
+     let x554: u32 = ((x553 as u32) + x509);
+-    let mut x555: u32 = 0;
+-    let mut x556: fiat_p384_scalar_u1 = 0;
+     let (x555, x556) = fiat_p384_scalar_addcarryx_u32(0x0, x480, x530);
+-    let mut x557: u32 = 0;
+-    let mut x558: fiat_p384_scalar_u1 = 0;
+     let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x482, x532);
+-    let mut x559: u32 = 0;
+-    let mut x560: fiat_p384_scalar_u1 = 0;
+     let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x484, x534);
+-    let mut x561: u32 = 0;
+-    let mut x562: fiat_p384_scalar_u1 = 0;
+     let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x486, x536);
+-    let mut x563: u32 = 0;
+-    let mut x564: fiat_p384_scalar_u1 = 0;
+     let (x563, x564) = fiat_p384_scalar_addcarryx_u32(x562, x488, x538);
+-    let mut x565: u32 = 0;
+-    let mut x566: fiat_p384_scalar_u1 = 0;
+     let (x565, x566) = fiat_p384_scalar_addcarryx_u32(x564, x490, x540);
+-    let mut x567: u32 = 0;
+-    let mut x568: fiat_p384_scalar_u1 = 0;
+     let (x567, x568) = fiat_p384_scalar_addcarryx_u32(x566, x492, x542);
+-    let mut x569: u32 = 0;
+-    let mut x570: fiat_p384_scalar_u1 = 0;
+     let (x569, x570) = fiat_p384_scalar_addcarryx_u32(x568, x494, x544);
+-    let mut x571: u32 = 0;
+-    let mut x572: fiat_p384_scalar_u1 = 0;
+     let (x571, x572) = fiat_p384_scalar_addcarryx_u32(x570, x496, x546);
+-    let mut x573: u32 = 0;
+-    let mut x574: fiat_p384_scalar_u1 = 0;
+     let (x573, x574) = fiat_p384_scalar_addcarryx_u32(x572, x498, x548);
+-    let mut x575: u32 = 0;
+-    let mut x576: fiat_p384_scalar_u1 = 0;
+     let (x575, x576) = fiat_p384_scalar_addcarryx_u32(x574, x500, x550);
+-    let mut x577: u32 = 0;
+-    let mut x578: fiat_p384_scalar_u1 = 0;
+     let (x577, x578) = fiat_p384_scalar_addcarryx_u32(x576, x502, x552);
+-    let mut x579: u32 = 0;
+-    let mut x580: fiat_p384_scalar_u1 = 0;
+     let (x579, x580) = fiat_p384_scalar_addcarryx_u32(x578, x504, x554);
+     let x581: u32 = ((x580 as u32) + (x505 as u32));
+-    let mut x582: u32 = 0;
+-    let mut x583: u32 = 0;
+     let (x582, x583) = fiat_p384_scalar_mulx_u32(x4, (arg1[11]));
+-    let mut x584: u32 = 0;
+-    let mut x585: u32 = 0;
+     let (x584, x585) = fiat_p384_scalar_mulx_u32(x4, (arg1[10]));
+-    let mut x586: u32 = 0;
+-    let mut x587: u32 = 0;
+     let (x586, x587) = fiat_p384_scalar_mulx_u32(x4, (arg1[9]));
+-    let mut x588: u32 = 0;
+-    let mut x589: u32 = 0;
+     let (x588, x589) = fiat_p384_scalar_mulx_u32(x4, (arg1[8]));
+-    let mut x590: u32 = 0;
+-    let mut x591: u32 = 0;
+     let (x590, x591) = fiat_p384_scalar_mulx_u32(x4, (arg1[7]));
+-    let mut x592: u32 = 0;
+-    let mut x593: u32 = 0;
+     let (x592, x593) = fiat_p384_scalar_mulx_u32(x4, (arg1[6]));
+-    let mut x594: u32 = 0;
+-    let mut x595: u32 = 0;
+     let (x594, x595) = fiat_p384_scalar_mulx_u32(x4, (arg1[5]));
+-    let mut x596: u32 = 0;
+-    let mut x597: u32 = 0;
+     let (x596, x597) = fiat_p384_scalar_mulx_u32(x4, (arg1[4]));
+-    let mut x598: u32 = 0;
+-    let mut x599: u32 = 0;
+     let (x598, x599) = fiat_p384_scalar_mulx_u32(x4, (arg1[3]));
+-    let mut x600: u32 = 0;
+-    let mut x601: u32 = 0;
+     let (x600, x601) = fiat_p384_scalar_mulx_u32(x4, (arg1[2]));
+-    let mut x602: u32 = 0;
+-    let mut x603: u32 = 0;
+     let (x602, x603) = fiat_p384_scalar_mulx_u32(x4, (arg1[1]));
+-    let mut x604: u32 = 0;
+-    let mut x605: u32 = 0;
+     let (x604, x605) = fiat_p384_scalar_mulx_u32(x4, (arg1[0]));
+-    let mut x606: u32 = 0;
+-    let mut x607: fiat_p384_scalar_u1 = 0;
+     let (x606, x607) = fiat_p384_scalar_addcarryx_u32(0x0, x605, x602);
+-    let mut x608: u32 = 0;
+-    let mut x609: fiat_p384_scalar_u1 = 0;
+     let (x608, x609) = fiat_p384_scalar_addcarryx_u32(x607, x603, x600);
+-    let mut x610: u32 = 0;
+-    let mut x611: fiat_p384_scalar_u1 = 0;
+     let (x610, x611) = fiat_p384_scalar_addcarryx_u32(x609, x601, x598);
+-    let mut x612: u32 = 0;
+-    let mut x613: fiat_p384_scalar_u1 = 0;
+     let (x612, x613) = fiat_p384_scalar_addcarryx_u32(x611, x599, x596);
+-    let mut x614: u32 = 0;
+-    let mut x615: fiat_p384_scalar_u1 = 0;
+     let (x614, x615) = fiat_p384_scalar_addcarryx_u32(x613, x597, x594);
+-    let mut x616: u32 = 0;
+-    let mut x617: fiat_p384_scalar_u1 = 0;
+     let (x616, x617) = fiat_p384_scalar_addcarryx_u32(x615, x595, x592);
+-    let mut x618: u32 = 0;
+-    let mut x619: fiat_p384_scalar_u1 = 0;
+     let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x593, x590);
+-    let mut x620: u32 = 0;
+-    let mut x621: fiat_p384_scalar_u1 = 0;
+     let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x591, x588);
+-    let mut x622: u32 = 0;
+-    let mut x623: fiat_p384_scalar_u1 = 0;
+     let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x589, x586);
+-    let mut x624: u32 = 0;
+-    let mut x625: fiat_p384_scalar_u1 = 0;
+     let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x587, x584);
+-    let mut x626: u32 = 0;
+-    let mut x627: fiat_p384_scalar_u1 = 0;
+     let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x585, x582);
+     let x628: u32 = ((x627 as u32) + x583);
+-    let mut x629: u32 = 0;
+-    let mut x630: fiat_p384_scalar_u1 = 0;
+     let (x629, x630) = fiat_p384_scalar_addcarryx_u32(0x0, x557, x604);
+-    let mut x631: u32 = 0;
+-    let mut x632: fiat_p384_scalar_u1 = 0;
+     let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x559, x606);
+-    let mut x633: u32 = 0;
+-    let mut x634: fiat_p384_scalar_u1 = 0;
+     let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x561, x608);
+-    let mut x635: u32 = 0;
+-    let mut x636: fiat_p384_scalar_u1 = 0;
+     let (x635, x636) = fiat_p384_scalar_addcarryx_u32(x634, x563, x610);
+-    let mut x637: u32 = 0;
+-    let mut x638: fiat_p384_scalar_u1 = 0;
+     let (x637, x638) = fiat_p384_scalar_addcarryx_u32(x636, x565, x612);
+-    let mut x639: u32 = 0;
+-    let mut x640: fiat_p384_scalar_u1 = 0;
+     let (x639, x640) = fiat_p384_scalar_addcarryx_u32(x638, x567, x614);
+-    let mut x641: u32 = 0;
+-    let mut x642: fiat_p384_scalar_u1 = 0;
+     let (x641, x642) = fiat_p384_scalar_addcarryx_u32(x640, x569, x616);
+-    let mut x643: u32 = 0;
+-    let mut x644: fiat_p384_scalar_u1 = 0;
+     let (x643, x644) = fiat_p384_scalar_addcarryx_u32(x642, x571, x618);
+-    let mut x645: u32 = 0;
+-    let mut x646: fiat_p384_scalar_u1 = 0;
+     let (x645, x646) = fiat_p384_scalar_addcarryx_u32(x644, x573, x620);
+-    let mut x647: u32 = 0;
+-    let mut x648: fiat_p384_scalar_u1 = 0;
+     let (x647, x648) = fiat_p384_scalar_addcarryx_u32(x646, x575, x622);
+-    let mut x649: u32 = 0;
+-    let mut x650: fiat_p384_scalar_u1 = 0;
+     let (x649, x650) = fiat_p384_scalar_addcarryx_u32(x648, x577, x624);
+-    let mut x651: u32 = 0;
+-    let mut x652: fiat_p384_scalar_u1 = 0;
+     let (x651, x652) = fiat_p384_scalar_addcarryx_u32(x650, x579, x626);
+-    let mut x653: u32 = 0;
+-    let mut x654: fiat_p384_scalar_u1 = 0;
+     let (x653, x654) = fiat_p384_scalar_addcarryx_u32(x652, x581, x628);
+-    let mut x655: u32 = 0;
+-    let mut x656: u32 = 0;
+     let (x655, x656) = fiat_p384_scalar_mulx_u32(x629, 0xe88fdc45);
+-    let mut x657: u32 = 0;
+-    let mut x658: u32 = 0;
+     let (x657, x658) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x659: u32 = 0;
+-    let mut x660: u32 = 0;
+     let (x659, x660) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x661: u32 = 0;
+-    let mut x662: u32 = 0;
+     let (x661, x662) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x663: u32 = 0;
+-    let mut x664: u32 = 0;
+     let (x663, x664) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x665: u32 = 0;
+-    let mut x666: u32 = 0;
+     let (x665, x666) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x667: u32 = 0;
+-    let mut x668: u32 = 0;
+     let (x667, x668) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+-    let mut x669: u32 = 0;
+-    let mut x670: u32 = 0;
+     let (x669, x670) = fiat_p384_scalar_mulx_u32(x655, 0xc7634d81);
+-    let mut x671: u32 = 0;
+-    let mut x672: u32 = 0;
+     let (x671, x672) = fiat_p384_scalar_mulx_u32(x655, 0xf4372ddf);
+-    let mut x673: u32 = 0;
+-    let mut x674: u32 = 0;
+     let (x673, x674) = fiat_p384_scalar_mulx_u32(x655, 0x581a0db2);
+-    let mut x675: u32 = 0;
+-    let mut x676: u32 = 0;
+     let (x675, x676) = fiat_p384_scalar_mulx_u32(x655, 0x48b0a77a);
+-    let mut x677: u32 = 0;
+-    let mut x678: u32 = 0;
+     let (x677, x678) = fiat_p384_scalar_mulx_u32(x655, 0xecec196a);
+-    let mut x679: u32 = 0;
+-    let mut x680: u32 = 0;
+     let (x679, x680) = fiat_p384_scalar_mulx_u32(x655, 0xccc52973);
+-    let mut x681: u32 = 0;
+-    let mut x682: fiat_p384_scalar_u1 = 0;
+     let (x681, x682) = fiat_p384_scalar_addcarryx_u32(0x0, x680, x677);
+-    let mut x683: u32 = 0;
+-    let mut x684: fiat_p384_scalar_u1 = 0;
+     let (x683, x684) = fiat_p384_scalar_addcarryx_u32(x682, x678, x675);
+-    let mut x685: u32 = 0;
+-    let mut x686: fiat_p384_scalar_u1 = 0;
+     let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x676, x673);
+-    let mut x687: u32 = 0;
+-    let mut x688: fiat_p384_scalar_u1 = 0;
+     let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x674, x671);
+-    let mut x689: u32 = 0;
+-    let mut x690: fiat_p384_scalar_u1 = 0;
+     let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x672, x669);
+-    let mut x691: u32 = 0;
+-    let mut x692: fiat_p384_scalar_u1 = 0;
+     let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x670, x667);
+-    let mut x693: u32 = 0;
+-    let mut x694: fiat_p384_scalar_u1 = 0;
+     let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x668, x665);
+-    let mut x695: u32 = 0;
+-    let mut x696: fiat_p384_scalar_u1 = 0;
+     let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x666, x663);
+-    let mut x697: u32 = 0;
+-    let mut x698: fiat_p384_scalar_u1 = 0;
+     let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x664, x661);
+-    let mut x699: u32 = 0;
+-    let mut x700: fiat_p384_scalar_u1 = 0;
+     let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x662, x659);
+-    let mut x701: u32 = 0;
+-    let mut x702: fiat_p384_scalar_u1 = 0;
+     let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x660, x657);
+     let x703: u32 = ((x702 as u32) + x658);
+-    let mut x704: u32 = 0;
+-    let mut x705: fiat_p384_scalar_u1 = 0;
+     let (x704, x705) = fiat_p384_scalar_addcarryx_u32(0x0, x629, x679);
+-    let mut x706: u32 = 0;
+-    let mut x707: fiat_p384_scalar_u1 = 0;
+     let (x706, x707) = fiat_p384_scalar_addcarryx_u32(x705, x631, x681);
+-    let mut x708: u32 = 0;
+-    let mut x709: fiat_p384_scalar_u1 = 0;
+     let (x708, x709) = fiat_p384_scalar_addcarryx_u32(x707, x633, x683);
+-    let mut x710: u32 = 0;
+-    let mut x711: fiat_p384_scalar_u1 = 0;
+     let (x710, x711) = fiat_p384_scalar_addcarryx_u32(x709, x635, x685);
+-    let mut x712: u32 = 0;
+-    let mut x713: fiat_p384_scalar_u1 = 0;
+     let (x712, x713) = fiat_p384_scalar_addcarryx_u32(x711, x637, x687);
+-    let mut x714: u32 = 0;
+-    let mut x715: fiat_p384_scalar_u1 = 0;
+     let (x714, x715) = fiat_p384_scalar_addcarryx_u32(x713, x639, x689);
+-    let mut x716: u32 = 0;
+-    let mut x717: fiat_p384_scalar_u1 = 0;
+     let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x641, x691);
+-    let mut x718: u32 = 0;
+-    let mut x719: fiat_p384_scalar_u1 = 0;
+     let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x643, x693);
+-    let mut x720: u32 = 0;
+-    let mut x721: fiat_p384_scalar_u1 = 0;
+     let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x645, x695);
+-    let mut x722: u32 = 0;
+-    let mut x723: fiat_p384_scalar_u1 = 0;
+     let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x647, x697);
+-    let mut x724: u32 = 0;
+-    let mut x725: fiat_p384_scalar_u1 = 0;
+     let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x649, x699);
+-    let mut x726: u32 = 0;
+-    let mut x727: fiat_p384_scalar_u1 = 0;
+     let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x651, x701);
+-    let mut x728: u32 = 0;
+-    let mut x729: fiat_p384_scalar_u1 = 0;
+     let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x653, x703);
+     let x730: u32 = ((x729 as u32) + (x654 as u32));
+-    let mut x731: u32 = 0;
+-    let mut x732: u32 = 0;
+     let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, (arg1[11]));
+-    let mut x733: u32 = 0;
+-    let mut x734: u32 = 0;
+     let (x733, x734) = fiat_p384_scalar_mulx_u32(x5, (arg1[10]));
+-    let mut x735: u32 = 0;
+-    let mut x736: u32 = 0;
+     let (x735, x736) = fiat_p384_scalar_mulx_u32(x5, (arg1[9]));
+-    let mut x737: u32 = 0;
+-    let mut x738: u32 = 0;
+     let (x737, x738) = fiat_p384_scalar_mulx_u32(x5, (arg1[8]));
+-    let mut x739: u32 = 0;
+-    let mut x740: u32 = 0;
+     let (x739, x740) = fiat_p384_scalar_mulx_u32(x5, (arg1[7]));
+-    let mut x741: u32 = 0;
+-    let mut x742: u32 = 0;
+     let (x741, x742) = fiat_p384_scalar_mulx_u32(x5, (arg1[6]));
+-    let mut x743: u32 = 0;
+-    let mut x744: u32 = 0;
+     let (x743, x744) = fiat_p384_scalar_mulx_u32(x5, (arg1[5]));
+-    let mut x745: u32 = 0;
+-    let mut x746: u32 = 0;
+     let (x745, x746) = fiat_p384_scalar_mulx_u32(x5, (arg1[4]));
+-    let mut x747: u32 = 0;
+-    let mut x748: u32 = 0;
+     let (x747, x748) = fiat_p384_scalar_mulx_u32(x5, (arg1[3]));
+-    let mut x749: u32 = 0;
+-    let mut x750: u32 = 0;
+     let (x749, x750) = fiat_p384_scalar_mulx_u32(x5, (arg1[2]));
+-    let mut x751: u32 = 0;
+-    let mut x752: u32 = 0;
+     let (x751, x752) = fiat_p384_scalar_mulx_u32(x5, (arg1[1]));
+-    let mut x753: u32 = 0;
+-    let mut x754: u32 = 0;
+     let (x753, x754) = fiat_p384_scalar_mulx_u32(x5, (arg1[0]));
+-    let mut x755: u32 = 0;
+-    let mut x756: fiat_p384_scalar_u1 = 0;
+     let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x754, x751);
+-    let mut x757: u32 = 0;
+-    let mut x758: fiat_p384_scalar_u1 = 0;
+     let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x752, x749);
+-    let mut x759: u32 = 0;
+-    let mut x760: fiat_p384_scalar_u1 = 0;
+     let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x750, x747);
+-    let mut x761: u32 = 0;
+-    let mut x762: fiat_p384_scalar_u1 = 0;
+     let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x748, x745);
+-    let mut x763: u32 = 0;
+-    let mut x764: fiat_p384_scalar_u1 = 0;
+     let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x746, x743);
+-    let mut x765: u32 = 0;
+-    let mut x766: fiat_p384_scalar_u1 = 0;
+     let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x744, x741);
+-    let mut x767: u32 = 0;
+-    let mut x768: fiat_p384_scalar_u1 = 0;
+     let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x742, x739);
+-    let mut x769: u32 = 0;
+-    let mut x770: fiat_p384_scalar_u1 = 0;
+     let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x740, x737);
+-    let mut x771: u32 = 0;
+-    let mut x772: fiat_p384_scalar_u1 = 0;
+     let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x738, x735);
+-    let mut x773: u32 = 0;
+-    let mut x774: fiat_p384_scalar_u1 = 0;
+     let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x736, x733);
+-    let mut x775: u32 = 0;
+-    let mut x776: fiat_p384_scalar_u1 = 0;
+     let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x734, x731);
+     let x777: u32 = ((x776 as u32) + x732);
+-    let mut x778: u32 = 0;
+-    let mut x779: fiat_p384_scalar_u1 = 0;
+     let (x778, x779) = fiat_p384_scalar_addcarryx_u32(0x0, x706, x753);
+-    let mut x780: u32 = 0;
+-    let mut x781: fiat_p384_scalar_u1 = 0;
+     let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x708, x755);
+-    let mut x782: u32 = 0;
+-    let mut x783: fiat_p384_scalar_u1 = 0;
+     let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x710, x757);
+-    let mut x784: u32 = 0;
+-    let mut x785: fiat_p384_scalar_u1 = 0;
+     let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x712, x759);
+-    let mut x786: u32 = 0;
+-    let mut x787: fiat_p384_scalar_u1 = 0;
+     let (x786, x787) = fiat_p384_scalar_addcarryx_u32(x785, x714, x761);
+-    let mut x788: u32 = 0;
+-    let mut x789: fiat_p384_scalar_u1 = 0;
+     let (x788, x789) = fiat_p384_scalar_addcarryx_u32(x787, x716, x763);
+-    let mut x790: u32 = 0;
+-    let mut x791: fiat_p384_scalar_u1 = 0;
+     let (x790, x791) = fiat_p384_scalar_addcarryx_u32(x789, x718, x765);
+-    let mut x792: u32 = 0;
+-    let mut x793: fiat_p384_scalar_u1 = 0;
+     let (x792, x793) = fiat_p384_scalar_addcarryx_u32(x791, x720, x767);
+-    let mut x794: u32 = 0;
+-    let mut x795: fiat_p384_scalar_u1 = 0;
+     let (x794, x795) = fiat_p384_scalar_addcarryx_u32(x793, x722, x769);
+-    let mut x796: u32 = 0;
+-    let mut x797: fiat_p384_scalar_u1 = 0;
+     let (x796, x797) = fiat_p384_scalar_addcarryx_u32(x795, x724, x771);
+-    let mut x798: u32 = 0;
+-    let mut x799: fiat_p384_scalar_u1 = 0;
+     let (x798, x799) = fiat_p384_scalar_addcarryx_u32(x797, x726, x773);
+-    let mut x800: u32 = 0;
+-    let mut x801: fiat_p384_scalar_u1 = 0;
+     let (x800, x801) = fiat_p384_scalar_addcarryx_u32(x799, x728, x775);
+-    let mut x802: u32 = 0;
+-    let mut x803: fiat_p384_scalar_u1 = 0;
+     let (x802, x803) = fiat_p384_scalar_addcarryx_u32(x801, x730, x777);
+-    let mut x804: u32 = 0;
+-    let mut x805: u32 = 0;
+     let (x804, x805) = fiat_p384_scalar_mulx_u32(x778, 0xe88fdc45);
+-    let mut x806: u32 = 0;
+-    let mut x807: u32 = 0;
+     let (x806, x807) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x808: u32 = 0;
+-    let mut x809: u32 = 0;
+     let (x808, x809) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x810: u32 = 0;
+-    let mut x811: u32 = 0;
+     let (x810, x811) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x812: u32 = 0;
+-    let mut x813: u32 = 0;
+     let (x812, x813) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x814: u32 = 0;
+-    let mut x815: u32 = 0;
+     let (x814, x815) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x816: u32 = 0;
+-    let mut x817: u32 = 0;
+     let (x816, x817) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+-    let mut x818: u32 = 0;
+-    let mut x819: u32 = 0;
+     let (x818, x819) = fiat_p384_scalar_mulx_u32(x804, 0xc7634d81);
+-    let mut x820: u32 = 0;
+-    let mut x821: u32 = 0;
+     let (x820, x821) = fiat_p384_scalar_mulx_u32(x804, 0xf4372ddf);
+-    let mut x822: u32 = 0;
+-    let mut x823: u32 = 0;
+     let (x822, x823) = fiat_p384_scalar_mulx_u32(x804, 0x581a0db2);
+-    let mut x824: u32 = 0;
+-    let mut x825: u32 = 0;
+     let (x824, x825) = fiat_p384_scalar_mulx_u32(x804, 0x48b0a77a);
+-    let mut x826: u32 = 0;
+-    let mut x827: u32 = 0;
+     let (x826, x827) = fiat_p384_scalar_mulx_u32(x804, 0xecec196a);
+-    let mut x828: u32 = 0;
+-    let mut x829: u32 = 0;
+     let (x828, x829) = fiat_p384_scalar_mulx_u32(x804, 0xccc52973);
+-    let mut x830: u32 = 0;
+-    let mut x831: fiat_p384_scalar_u1 = 0;
+     let (x830, x831) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x826);
+-    let mut x832: u32 = 0;
+-    let mut x833: fiat_p384_scalar_u1 = 0;
+     let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x827, x824);
+-    let mut x834: u32 = 0;
+-    let mut x835: fiat_p384_scalar_u1 = 0;
+     let (x834, x835) = fiat_p384_scalar_addcarryx_u32(x833, x825, x822);
+-    let mut x836: u32 = 0;
+-    let mut x837: fiat_p384_scalar_u1 = 0;
+     let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x823, x820);
+-    let mut x838: u32 = 0;
+-    let mut x839: fiat_p384_scalar_u1 = 0;
+     let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x821, x818);
+-    let mut x840: u32 = 0;
+-    let mut x841: fiat_p384_scalar_u1 = 0;
+     let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x819, x816);
+-    let mut x842: u32 = 0;
+-    let mut x843: fiat_p384_scalar_u1 = 0;
+     let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x817, x814);
+-    let mut x844: u32 = 0;
+-    let mut x845: fiat_p384_scalar_u1 = 0;
+     let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x815, x812);
+-    let mut x846: u32 = 0;
+-    let mut x847: fiat_p384_scalar_u1 = 0;
+     let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x813, x810);
+-    let mut x848: u32 = 0;
+-    let mut x849: fiat_p384_scalar_u1 = 0;
+     let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x811, x808);
+-    let mut x850: u32 = 0;
+-    let mut x851: fiat_p384_scalar_u1 = 0;
+     let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x809, x806);
+     let x852: u32 = ((x851 as u32) + x807);
+-    let mut x853: u32 = 0;
+-    let mut x854: fiat_p384_scalar_u1 = 0;
+     let (x853, x854) = fiat_p384_scalar_addcarryx_u32(0x0, x778, x828);
+-    let mut x855: u32 = 0;
+-    let mut x856: fiat_p384_scalar_u1 = 0;
+     let (x855, x856) = fiat_p384_scalar_addcarryx_u32(x854, x780, x830);
+-    let mut x857: u32 = 0;
+-    let mut x858: fiat_p384_scalar_u1 = 0;
+     let (x857, x858) = fiat_p384_scalar_addcarryx_u32(x856, x782, x832);
+-    let mut x859: u32 = 0;
+-    let mut x860: fiat_p384_scalar_u1 = 0;
+     let (x859, x860) = fiat_p384_scalar_addcarryx_u32(x858, x784, x834);
+-    let mut x861: u32 = 0;
+-    let mut x862: fiat_p384_scalar_u1 = 0;
+     let (x861, x862) = fiat_p384_scalar_addcarryx_u32(x860, x786, x836);
+-    let mut x863: u32 = 0;
+-    let mut x864: fiat_p384_scalar_u1 = 0;
+     let (x863, x864) = fiat_p384_scalar_addcarryx_u32(x862, x788, x838);
+-    let mut x865: u32 = 0;
+-    let mut x866: fiat_p384_scalar_u1 = 0;
+     let (x865, x866) = fiat_p384_scalar_addcarryx_u32(x864, x790, x840);
+-    let mut x867: u32 = 0;
+-    let mut x868: fiat_p384_scalar_u1 = 0;
+     let (x867, x868) = fiat_p384_scalar_addcarryx_u32(x866, x792, x842);
+-    let mut x869: u32 = 0;
+-    let mut x870: fiat_p384_scalar_u1 = 0;
+     let (x869, x870) = fiat_p384_scalar_addcarryx_u32(x868, x794, x844);
+-    let mut x871: u32 = 0;
+-    let mut x872: fiat_p384_scalar_u1 = 0;
+     let (x871, x872) = fiat_p384_scalar_addcarryx_u32(x870, x796, x846);
+-    let mut x873: u32 = 0;
+-    let mut x874: fiat_p384_scalar_u1 = 0;
+     let (x873, x874) = fiat_p384_scalar_addcarryx_u32(x872, x798, x848);
+-    let mut x875: u32 = 0;
+-    let mut x876: fiat_p384_scalar_u1 = 0;
+     let (x875, x876) = fiat_p384_scalar_addcarryx_u32(x874, x800, x850);
+-    let mut x877: u32 = 0;
+-    let mut x878: fiat_p384_scalar_u1 = 0;
+     let (x877, x878) = fiat_p384_scalar_addcarryx_u32(x876, x802, x852);
+     let x879: u32 = ((x878 as u32) + (x803 as u32));
+-    let mut x880: u32 = 0;
+-    let mut x881: u32 = 0;
+     let (x880, x881) = fiat_p384_scalar_mulx_u32(x6, (arg1[11]));
+-    let mut x882: u32 = 0;
+-    let mut x883: u32 = 0;
+     let (x882, x883) = fiat_p384_scalar_mulx_u32(x6, (arg1[10]));
+-    let mut x884: u32 = 0;
+-    let mut x885: u32 = 0;
+     let (x884, x885) = fiat_p384_scalar_mulx_u32(x6, (arg1[9]));
+-    let mut x886: u32 = 0;
+-    let mut x887: u32 = 0;
+     let (x886, x887) = fiat_p384_scalar_mulx_u32(x6, (arg1[8]));
+-    let mut x888: u32 = 0;
+-    let mut x889: u32 = 0;
+     let (x888, x889) = fiat_p384_scalar_mulx_u32(x6, (arg1[7]));
+-    let mut x890: u32 = 0;
+-    let mut x891: u32 = 0;
+     let (x890, x891) = fiat_p384_scalar_mulx_u32(x6, (arg1[6]));
+-    let mut x892: u32 = 0;
+-    let mut x893: u32 = 0;
+     let (x892, x893) = fiat_p384_scalar_mulx_u32(x6, (arg1[5]));
+-    let mut x894: u32 = 0;
+-    let mut x895: u32 = 0;
+     let (x894, x895) = fiat_p384_scalar_mulx_u32(x6, (arg1[4]));
+-    let mut x896: u32 = 0;
+-    let mut x897: u32 = 0;
+     let (x896, x897) = fiat_p384_scalar_mulx_u32(x6, (arg1[3]));
+-    let mut x898: u32 = 0;
+-    let mut x899: u32 = 0;
+     let (x898, x899) = fiat_p384_scalar_mulx_u32(x6, (arg1[2]));
+-    let mut x900: u32 = 0;
+-    let mut x901: u32 = 0;
+     let (x900, x901) = fiat_p384_scalar_mulx_u32(x6, (arg1[1]));
+-    let mut x902: u32 = 0;
+-    let mut x903: u32 = 0;
+     let (x902, x903) = fiat_p384_scalar_mulx_u32(x6, (arg1[0]));
+-    let mut x904: u32 = 0;
+-    let mut x905: fiat_p384_scalar_u1 = 0;
+     let (x904, x905) = fiat_p384_scalar_addcarryx_u32(0x0, x903, x900);
+-    let mut x906: u32 = 0;
+-    let mut x907: fiat_p384_scalar_u1 = 0;
+     let (x906, x907) = fiat_p384_scalar_addcarryx_u32(x905, x901, x898);
+-    let mut x908: u32 = 0;
+-    let mut x909: fiat_p384_scalar_u1 = 0;
+     let (x908, x909) = fiat_p384_scalar_addcarryx_u32(x907, x899, x896);
+-    let mut x910: u32 = 0;
+-    let mut x911: fiat_p384_scalar_u1 = 0;
+     let (x910, x911) = fiat_p384_scalar_addcarryx_u32(x909, x897, x894);
+-    let mut x912: u32 = 0;
+-    let mut x913: fiat_p384_scalar_u1 = 0;
+     let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x895, x892);
+-    let mut x914: u32 = 0;
+-    let mut x915: fiat_p384_scalar_u1 = 0;
+     let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x893, x890);
+-    let mut x916: u32 = 0;
+-    let mut x917: fiat_p384_scalar_u1 = 0;
+     let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x891, x888);
+-    let mut x918: u32 = 0;
+-    let mut x919: fiat_p384_scalar_u1 = 0;
+     let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x889, x886);
+-    let mut x920: u32 = 0;
+-    let mut x921: fiat_p384_scalar_u1 = 0;
+     let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x887, x884);
+-    let mut x922: u32 = 0;
+-    let mut x923: fiat_p384_scalar_u1 = 0;
+     let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x885, x882);
+-    let mut x924: u32 = 0;
+-    let mut x925: fiat_p384_scalar_u1 = 0;
+     let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x883, x880);
+     let x926: u32 = ((x925 as u32) + x881);
+-    let mut x927: u32 = 0;
+-    let mut x928: fiat_p384_scalar_u1 = 0;
+     let (x927, x928) = fiat_p384_scalar_addcarryx_u32(0x0, x855, x902);
+-    let mut x929: u32 = 0;
+-    let mut x930: fiat_p384_scalar_u1 = 0;
+     let (x929, x930) = fiat_p384_scalar_addcarryx_u32(x928, x857, x904);
+-    let mut x931: u32 = 0;
+-    let mut x932: fiat_p384_scalar_u1 = 0;
+     let (x931, x932) = fiat_p384_scalar_addcarryx_u32(x930, x859, x906);
+-    let mut x933: u32 = 0;
+-    let mut x934: fiat_p384_scalar_u1 = 0;
+     let (x933, x934) = fiat_p384_scalar_addcarryx_u32(x932, x861, x908);
+-    let mut x935: u32 = 0;
+-    let mut x936: fiat_p384_scalar_u1 = 0;
+     let (x935, x936) = fiat_p384_scalar_addcarryx_u32(x934, x863, x910);
+-    let mut x937: u32 = 0;
+-    let mut x938: fiat_p384_scalar_u1 = 0;
+     let (x937, x938) = fiat_p384_scalar_addcarryx_u32(x936, x865, x912);
+-    let mut x939: u32 = 0;
+-    let mut x940: fiat_p384_scalar_u1 = 0;
+     let (x939, x940) = fiat_p384_scalar_addcarryx_u32(x938, x867, x914);
+-    let mut x941: u32 = 0;
+-    let mut x942: fiat_p384_scalar_u1 = 0;
+     let (x941, x942) = fiat_p384_scalar_addcarryx_u32(x940, x869, x916);
+-    let mut x943: u32 = 0;
+-    let mut x944: fiat_p384_scalar_u1 = 0;
+     let (x943, x944) = fiat_p384_scalar_addcarryx_u32(x942, x871, x918);
+-    let mut x945: u32 = 0;
+-    let mut x946: fiat_p384_scalar_u1 = 0;
+     let (x945, x946) = fiat_p384_scalar_addcarryx_u32(x944, x873, x920);
+-    let mut x947: u32 = 0;
+-    let mut x948: fiat_p384_scalar_u1 = 0;
+     let (x947, x948) = fiat_p384_scalar_addcarryx_u32(x946, x875, x922);
+-    let mut x949: u32 = 0;
+-    let mut x950: fiat_p384_scalar_u1 = 0;
+     let (x949, x950) = fiat_p384_scalar_addcarryx_u32(x948, x877, x924);
+-    let mut x951: u32 = 0;
+-    let mut x952: fiat_p384_scalar_u1 = 0;
+     let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x879, x926);
+-    let mut x953: u32 = 0;
+-    let mut x954: u32 = 0;
+     let (x953, x954) = fiat_p384_scalar_mulx_u32(x927, 0xe88fdc45);
+-    let mut x955: u32 = 0;
+-    let mut x956: u32 = 0;
+     let (x955, x956) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x957: u32 = 0;
+-    let mut x958: u32 = 0;
+     let (x957, x958) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x959: u32 = 0;
+-    let mut x960: u32 = 0;
+     let (x959, x960) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x961: u32 = 0;
+-    let mut x962: u32 = 0;
+     let (x961, x962) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x963: u32 = 0;
+-    let mut x964: u32 = 0;
+     let (x963, x964) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x965: u32 = 0;
+-    let mut x966: u32 = 0;
+     let (x965, x966) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+-    let mut x967: u32 = 0;
+-    let mut x968: u32 = 0;
+     let (x967, x968) = fiat_p384_scalar_mulx_u32(x953, 0xc7634d81);
+-    let mut x969: u32 = 0;
+-    let mut x970: u32 = 0;
+     let (x969, x970) = fiat_p384_scalar_mulx_u32(x953, 0xf4372ddf);
+-    let mut x971: u32 = 0;
+-    let mut x972: u32 = 0;
+     let (x971, x972) = fiat_p384_scalar_mulx_u32(x953, 0x581a0db2);
+-    let mut x973: u32 = 0;
+-    let mut x974: u32 = 0;
+     let (x973, x974) = fiat_p384_scalar_mulx_u32(x953, 0x48b0a77a);
+-    let mut x975: u32 = 0;
+-    let mut x976: u32 = 0;
+     let (x975, x976) = fiat_p384_scalar_mulx_u32(x953, 0xecec196a);
+-    let mut x977: u32 = 0;
+-    let mut x978: u32 = 0;
+     let (x977, x978) = fiat_p384_scalar_mulx_u32(x953, 0xccc52973);
+-    let mut x979: u32 = 0;
+-    let mut x980: fiat_p384_scalar_u1 = 0;
+     let (x979, x980) = fiat_p384_scalar_addcarryx_u32(0x0, x978, x975);
+-    let mut x981: u32 = 0;
+-    let mut x982: fiat_p384_scalar_u1 = 0;
+     let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x976, x973);
+-    let mut x983: u32 = 0;
+-    let mut x984: fiat_p384_scalar_u1 = 0;
+     let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x974, x971);
+-    let mut x985: u32 = 0;
+-    let mut x986: fiat_p384_scalar_u1 = 0;
+     let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x972, x969);
+-    let mut x987: u32 = 0;
+-    let mut x988: fiat_p384_scalar_u1 = 0;
+     let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x970, x967);
+-    let mut x989: u32 = 0;
+-    let mut x990: fiat_p384_scalar_u1 = 0;
+     let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x968, x965);
+-    let mut x991: u32 = 0;
+-    let mut x992: fiat_p384_scalar_u1 = 0;
+     let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x966, x963);
+-    let mut x993: u32 = 0;
+-    let mut x994: fiat_p384_scalar_u1 = 0;
+     let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x964, x961);
+-    let mut x995: u32 = 0;
+-    let mut x996: fiat_p384_scalar_u1 = 0;
+     let (x995, x996) = fiat_p384_scalar_addcarryx_u32(x994, x962, x959);
+-    let mut x997: u32 = 0;
+-    let mut x998: fiat_p384_scalar_u1 = 0;
+     let (x997, x998) = fiat_p384_scalar_addcarryx_u32(x996, x960, x957);
+-    let mut x999: u32 = 0;
+-    let mut x1000: fiat_p384_scalar_u1 = 0;
+     let (x999, x1000) = fiat_p384_scalar_addcarryx_u32(x998, x958, x955);
+     let x1001: u32 = ((x1000 as u32) + x956);
+-    let mut x1002: u32 = 0;
+-    let mut x1003: fiat_p384_scalar_u1 = 0;
+     let (x1002, x1003) = fiat_p384_scalar_addcarryx_u32(0x0, x927, x977);
+-    let mut x1004: u32 = 0;
+-    let mut x1005: fiat_p384_scalar_u1 = 0;
+     let (x1004, x1005) = fiat_p384_scalar_addcarryx_u32(x1003, x929, x979);
+-    let mut x1006: u32 = 0;
+-    let mut x1007: fiat_p384_scalar_u1 = 0;
+     let (x1006, x1007) = fiat_p384_scalar_addcarryx_u32(x1005, x931, x981);
+-    let mut x1008: u32 = 0;
+-    let mut x1009: fiat_p384_scalar_u1 = 0;
+     let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(x1007, x933, x983);
+-    let mut x1010: u32 = 0;
+-    let mut x1011: fiat_p384_scalar_u1 = 0;
+     let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x935, x985);
+-    let mut x1012: u32 = 0;
+-    let mut x1013: fiat_p384_scalar_u1 = 0;
+     let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x937, x987);
+-    let mut x1014: u32 = 0;
+-    let mut x1015: fiat_p384_scalar_u1 = 0;
+     let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x939, x989);
+-    let mut x1016: u32 = 0;
+-    let mut x1017: fiat_p384_scalar_u1 = 0;
+     let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x941, x991);
+-    let mut x1018: u32 = 0;
+-    let mut x1019: fiat_p384_scalar_u1 = 0;
+     let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x943, x993);
+-    let mut x1020: u32 = 0;
+-    let mut x1021: fiat_p384_scalar_u1 = 0;
+     let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x945, x995);
+-    let mut x1022: u32 = 0;
+-    let mut x1023: fiat_p384_scalar_u1 = 0;
+     let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x947, x997);
+-    let mut x1024: u32 = 0;
+-    let mut x1025: fiat_p384_scalar_u1 = 0;
+     let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x949, x999);
+-    let mut x1026: u32 = 0;
+-    let mut x1027: fiat_p384_scalar_u1 = 0;
+     let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x951, x1001);
+     let x1028: u32 = ((x1027 as u32) + (x952 as u32));
+-    let mut x1029: u32 = 0;
+-    let mut x1030: u32 = 0;
+     let (x1029, x1030) = fiat_p384_scalar_mulx_u32(x7, (arg1[11]));
+-    let mut x1031: u32 = 0;
+-    let mut x1032: u32 = 0;
+     let (x1031, x1032) = fiat_p384_scalar_mulx_u32(x7, (arg1[10]));
+-    let mut x1033: u32 = 0;
+-    let mut x1034: u32 = 0;
+     let (x1033, x1034) = fiat_p384_scalar_mulx_u32(x7, (arg1[9]));
+-    let mut x1035: u32 = 0;
+-    let mut x1036: u32 = 0;
+     let (x1035, x1036) = fiat_p384_scalar_mulx_u32(x7, (arg1[8]));
+-    let mut x1037: u32 = 0;
+-    let mut x1038: u32 = 0;
+     let (x1037, x1038) = fiat_p384_scalar_mulx_u32(x7, (arg1[7]));
+-    let mut x1039: u32 = 0;
+-    let mut x1040: u32 = 0;
+     let (x1039, x1040) = fiat_p384_scalar_mulx_u32(x7, (arg1[6]));
+-    let mut x1041: u32 = 0;
+-    let mut x1042: u32 = 0;
+     let (x1041, x1042) = fiat_p384_scalar_mulx_u32(x7, (arg1[5]));
+-    let mut x1043: u32 = 0;
+-    let mut x1044: u32 = 0;
+     let (x1043, x1044) = fiat_p384_scalar_mulx_u32(x7, (arg1[4]));
+-    let mut x1045: u32 = 0;
+-    let mut x1046: u32 = 0;
+     let (x1045, x1046) = fiat_p384_scalar_mulx_u32(x7, (arg1[3]));
+-    let mut x1047: u32 = 0;
+-    let mut x1048: u32 = 0;
+     let (x1047, x1048) = fiat_p384_scalar_mulx_u32(x7, (arg1[2]));
+-    let mut x1049: u32 = 0;
+-    let mut x1050: u32 = 0;
+     let (x1049, x1050) = fiat_p384_scalar_mulx_u32(x7, (arg1[1]));
+-    let mut x1051: u32 = 0;
+-    let mut x1052: u32 = 0;
+     let (x1051, x1052) = fiat_p384_scalar_mulx_u32(x7, (arg1[0]));
+-    let mut x1053: u32 = 0;
+-    let mut x1054: fiat_p384_scalar_u1 = 0;
+     let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(0x0, x1052, x1049);
+-    let mut x1055: u32 = 0;
+-    let mut x1056: fiat_p384_scalar_u1 = 0;
+     let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x1050, x1047);
+-    let mut x1057: u32 = 0;
+-    let mut x1058: fiat_p384_scalar_u1 = 0;
+     let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x1048, x1045);
+-    let mut x1059: u32 = 0;
+-    let mut x1060: fiat_p384_scalar_u1 = 0;
+     let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x1046, x1043);
+-    let mut x1061: u32 = 0;
+-    let mut x1062: fiat_p384_scalar_u1 = 0;
+     let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x1044, x1041);
+-    let mut x1063: u32 = 0;
+-    let mut x1064: fiat_p384_scalar_u1 = 0;
+     let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x1042, x1039);
+-    let mut x1065: u32 = 0;
+-    let mut x1066: fiat_p384_scalar_u1 = 0;
+     let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x1040, x1037);
+-    let mut x1067: u32 = 0;
+-    let mut x1068: fiat_p384_scalar_u1 = 0;
+     let (x1067, x1068) = fiat_p384_scalar_addcarryx_u32(x1066, x1038, x1035);
+-    let mut x1069: u32 = 0;
+-    let mut x1070: fiat_p384_scalar_u1 = 0;
+     let (x1069, x1070) = fiat_p384_scalar_addcarryx_u32(x1068, x1036, x1033);
+-    let mut x1071: u32 = 0;
+-    let mut x1072: fiat_p384_scalar_u1 = 0;
+     let (x1071, x1072) = fiat_p384_scalar_addcarryx_u32(x1070, x1034, x1031);
+-    let mut x1073: u32 = 0;
+-    let mut x1074: fiat_p384_scalar_u1 = 0;
+     let (x1073, x1074) = fiat_p384_scalar_addcarryx_u32(x1072, x1032, x1029);
+     let x1075: u32 = ((x1074 as u32) + x1030);
+-    let mut x1076: u32 = 0;
+-    let mut x1077: fiat_p384_scalar_u1 = 0;
+     let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(0x0, x1004, x1051);
+-    let mut x1078: u32 = 0;
+-    let mut x1079: fiat_p384_scalar_u1 = 0;
+     let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1006, x1053);
+-    let mut x1080: u32 = 0;
+-    let mut x1081: fiat_p384_scalar_u1 = 0;
+     let (x1080, x1081) = fiat_p384_scalar_addcarryx_u32(x1079, x1008, x1055);
+-    let mut x1082: u32 = 0;
+-    let mut x1083: fiat_p384_scalar_u1 = 0;
+     let (x1082, x1083) = fiat_p384_scalar_addcarryx_u32(x1081, x1010, x1057);
+-    let mut x1084: u32 = 0;
+-    let mut x1085: fiat_p384_scalar_u1 = 0;
+     let (x1084, x1085) = fiat_p384_scalar_addcarryx_u32(x1083, x1012, x1059);
+-    let mut x1086: u32 = 0;
+-    let mut x1087: fiat_p384_scalar_u1 = 0;
+     let (x1086, x1087) = fiat_p384_scalar_addcarryx_u32(x1085, x1014, x1061);
+-    let mut x1088: u32 = 0;
+-    let mut x1089: fiat_p384_scalar_u1 = 0;
+     let (x1088, x1089) = fiat_p384_scalar_addcarryx_u32(x1087, x1016, x1063);
+-    let mut x1090: u32 = 0;
+-    let mut x1091: fiat_p384_scalar_u1 = 0;
+     let (x1090, x1091) = fiat_p384_scalar_addcarryx_u32(x1089, x1018, x1065);
+-    let mut x1092: u32 = 0;
+-    let mut x1093: fiat_p384_scalar_u1 = 0;
+     let (x1092, x1093) = fiat_p384_scalar_addcarryx_u32(x1091, x1020, x1067);
+-    let mut x1094: u32 = 0;
+-    let mut x1095: fiat_p384_scalar_u1 = 0;
+     let (x1094, x1095) = fiat_p384_scalar_addcarryx_u32(x1093, x1022, x1069);
+-    let mut x1096: u32 = 0;
+-    let mut x1097: fiat_p384_scalar_u1 = 0;
+     let (x1096, x1097) = fiat_p384_scalar_addcarryx_u32(x1095, x1024, x1071);
+-    let mut x1098: u32 = 0;
+-    let mut x1099: fiat_p384_scalar_u1 = 0;
+     let (x1098, x1099) = fiat_p384_scalar_addcarryx_u32(x1097, x1026, x1073);
+-    let mut x1100: u32 = 0;
+-    let mut x1101: fiat_p384_scalar_u1 = 0;
+     let (x1100, x1101) = fiat_p384_scalar_addcarryx_u32(x1099, x1028, x1075);
+-    let mut x1102: u32 = 0;
+-    let mut x1103: u32 = 0;
+     let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1076, 0xe88fdc45);
+-    let mut x1104: u32 = 0;
+-    let mut x1105: u32 = 0;
+     let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1106: u32 = 0;
+-    let mut x1107: u32 = 0;
+     let (x1106, x1107) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1108: u32 = 0;
+-    let mut x1109: u32 = 0;
+     let (x1108, x1109) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1110: u32 = 0;
+-    let mut x1111: u32 = 0;
+     let (x1110, x1111) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1112: u32 = 0;
+-    let mut x1113: u32 = 0;
+     let (x1112, x1113) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1114: u32 = 0;
+-    let mut x1115: u32 = 0;
+     let (x1114, x1115) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+-    let mut x1116: u32 = 0;
+-    let mut x1117: u32 = 0;
+     let (x1116, x1117) = fiat_p384_scalar_mulx_u32(x1102, 0xc7634d81);
+-    let mut x1118: u32 = 0;
+-    let mut x1119: u32 = 0;
+     let (x1118, x1119) = fiat_p384_scalar_mulx_u32(x1102, 0xf4372ddf);
+-    let mut x1120: u32 = 0;
+-    let mut x1121: u32 = 0;
+     let (x1120, x1121) = fiat_p384_scalar_mulx_u32(x1102, 0x581a0db2);
+-    let mut x1122: u32 = 0;
+-    let mut x1123: u32 = 0;
+     let (x1122, x1123) = fiat_p384_scalar_mulx_u32(x1102, 0x48b0a77a);
+-    let mut x1124: u32 = 0;
+-    let mut x1125: u32 = 0;
+     let (x1124, x1125) = fiat_p384_scalar_mulx_u32(x1102, 0xecec196a);
+-    let mut x1126: u32 = 0;
+-    let mut x1127: u32 = 0;
+     let (x1126, x1127) = fiat_p384_scalar_mulx_u32(x1102, 0xccc52973);
+-    let mut x1128: u32 = 0;
+-    let mut x1129: fiat_p384_scalar_u1 = 0;
+     let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1127, x1124);
+-    let mut x1130: u32 = 0;
+-    let mut x1131: fiat_p384_scalar_u1 = 0;
+     let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1125, x1122);
+-    let mut x1132: u32 = 0;
+-    let mut x1133: fiat_p384_scalar_u1 = 0;
+     let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1123, x1120);
+-    let mut x1134: u32 = 0;
+-    let mut x1135: fiat_p384_scalar_u1 = 0;
+     let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1121, x1118);
+-    let mut x1136: u32 = 0;
+-    let mut x1137: fiat_p384_scalar_u1 = 0;
+     let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1119, x1116);
+-    let mut x1138: u32 = 0;
+-    let mut x1139: fiat_p384_scalar_u1 = 0;
+     let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1117, x1114);
+-    let mut x1140: u32 = 0;
+-    let mut x1141: fiat_p384_scalar_u1 = 0;
+     let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1115, x1112);
+-    let mut x1142: u32 = 0;
+-    let mut x1143: fiat_p384_scalar_u1 = 0;
+     let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1113, x1110);
+-    let mut x1144: u32 = 0;
+-    let mut x1145: fiat_p384_scalar_u1 = 0;
+     let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1111, x1108);
+-    let mut x1146: u32 = 0;
+-    let mut x1147: fiat_p384_scalar_u1 = 0;
+     let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1109, x1106);
+-    let mut x1148: u32 = 0;
+-    let mut x1149: fiat_p384_scalar_u1 = 0;
+     let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1107, x1104);
+     let x1150: u32 = ((x1149 as u32) + x1105);
+-    let mut x1151: u32 = 0;
+-    let mut x1152: fiat_p384_scalar_u1 = 0;
+     let (x1151, x1152) = fiat_p384_scalar_addcarryx_u32(0x0, x1076, x1126);
+-    let mut x1153: u32 = 0;
+-    let mut x1154: fiat_p384_scalar_u1 = 0;
+     let (x1153, x1154) = fiat_p384_scalar_addcarryx_u32(x1152, x1078, x1128);
+-    let mut x1155: u32 = 0;
+-    let mut x1156: fiat_p384_scalar_u1 = 0;
+     let (x1155, x1156) = fiat_p384_scalar_addcarryx_u32(x1154, x1080, x1130);
+-    let mut x1157: u32 = 0;
+-    let mut x1158: fiat_p384_scalar_u1 = 0;
+     let (x1157, x1158) = fiat_p384_scalar_addcarryx_u32(x1156, x1082, x1132);
+-    let mut x1159: u32 = 0;
+-    let mut x1160: fiat_p384_scalar_u1 = 0;
+     let (x1159, x1160) = fiat_p384_scalar_addcarryx_u32(x1158, x1084, x1134);
+-    let mut x1161: u32 = 0;
+-    let mut x1162: fiat_p384_scalar_u1 = 0;
+     let (x1161, x1162) = fiat_p384_scalar_addcarryx_u32(x1160, x1086, x1136);
+-    let mut x1163: u32 = 0;
+-    let mut x1164: fiat_p384_scalar_u1 = 0;
+     let (x1163, x1164) = fiat_p384_scalar_addcarryx_u32(x1162, x1088, x1138);
+-    let mut x1165: u32 = 0;
+-    let mut x1166: fiat_p384_scalar_u1 = 0;
+     let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(x1164, x1090, x1140);
+-    let mut x1167: u32 = 0;
+-    let mut x1168: fiat_p384_scalar_u1 = 0;
+     let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1092, x1142);
+-    let mut x1169: u32 = 0;
+-    let mut x1170: fiat_p384_scalar_u1 = 0;
+     let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1094, x1144);
+-    let mut x1171: u32 = 0;
+-    let mut x1172: fiat_p384_scalar_u1 = 0;
+     let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1096, x1146);
+-    let mut x1173: u32 = 0;
+-    let mut x1174: fiat_p384_scalar_u1 = 0;
+     let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1098, x1148);
+-    let mut x1175: u32 = 0;
+-    let mut x1176: fiat_p384_scalar_u1 = 0;
+     let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1100, x1150);
+     let x1177: u32 = ((x1176 as u32) + (x1101 as u32));
+-    let mut x1178: u32 = 0;
+-    let mut x1179: u32 = 0;
+     let (x1178, x1179) = fiat_p384_scalar_mulx_u32(x8, (arg1[11]));
+-    let mut x1180: u32 = 0;
+-    let mut x1181: u32 = 0;
+     let (x1180, x1181) = fiat_p384_scalar_mulx_u32(x8, (arg1[10]));
+-    let mut x1182: u32 = 0;
+-    let mut x1183: u32 = 0;
+     let (x1182, x1183) = fiat_p384_scalar_mulx_u32(x8, (arg1[9]));
+-    let mut x1184: u32 = 0;
+-    let mut x1185: u32 = 0;
+     let (x1184, x1185) = fiat_p384_scalar_mulx_u32(x8, (arg1[8]));
+-    let mut x1186: u32 = 0;
+-    let mut x1187: u32 = 0;
+     let (x1186, x1187) = fiat_p384_scalar_mulx_u32(x8, (arg1[7]));
+-    let mut x1188: u32 = 0;
+-    let mut x1189: u32 = 0;
+     let (x1188, x1189) = fiat_p384_scalar_mulx_u32(x8, (arg1[6]));
+-    let mut x1190: u32 = 0;
+-    let mut x1191: u32 = 0;
+     let (x1190, x1191) = fiat_p384_scalar_mulx_u32(x8, (arg1[5]));
+-    let mut x1192: u32 = 0;
+-    let mut x1193: u32 = 0;
+     let (x1192, x1193) = fiat_p384_scalar_mulx_u32(x8, (arg1[4]));
+-    let mut x1194: u32 = 0;
+-    let mut x1195: u32 = 0;
+     let (x1194, x1195) = fiat_p384_scalar_mulx_u32(x8, (arg1[3]));
+-    let mut x1196: u32 = 0;
+-    let mut x1197: u32 = 0;
+     let (x1196, x1197) = fiat_p384_scalar_mulx_u32(x8, (arg1[2]));
+-    let mut x1198: u32 = 0;
+-    let mut x1199: u32 = 0;
+     let (x1198, x1199) = fiat_p384_scalar_mulx_u32(x8, (arg1[1]));
+-    let mut x1200: u32 = 0;
+-    let mut x1201: u32 = 0;
+     let (x1200, x1201) = fiat_p384_scalar_mulx_u32(x8, (arg1[0]));
+-    let mut x1202: u32 = 0;
+-    let mut x1203: fiat_p384_scalar_u1 = 0;
+     let (x1202, x1203) = fiat_p384_scalar_addcarryx_u32(0x0, x1201, x1198);
+-    let mut x1204: u32 = 0;
+-    let mut x1205: fiat_p384_scalar_u1 = 0;
+     let (x1204, x1205) = fiat_p384_scalar_addcarryx_u32(x1203, x1199, x1196);
+-    let mut x1206: u32 = 0;
+-    let mut x1207: fiat_p384_scalar_u1 = 0;
+     let (x1206, x1207) = fiat_p384_scalar_addcarryx_u32(x1205, x1197, x1194);
+-    let mut x1208: u32 = 0;
+-    let mut x1209: fiat_p384_scalar_u1 = 0;
+     let (x1208, x1209) = fiat_p384_scalar_addcarryx_u32(x1207, x1195, x1192);
+-    let mut x1210: u32 = 0;
+-    let mut x1211: fiat_p384_scalar_u1 = 0;
+     let (x1210, x1211) = fiat_p384_scalar_addcarryx_u32(x1209, x1193, x1190);
+-    let mut x1212: u32 = 0;
+-    let mut x1213: fiat_p384_scalar_u1 = 0;
+     let (x1212, x1213) = fiat_p384_scalar_addcarryx_u32(x1211, x1191, x1188);
+-    let mut x1214: u32 = 0;
+-    let mut x1215: fiat_p384_scalar_u1 = 0;
+     let (x1214, x1215) = fiat_p384_scalar_addcarryx_u32(x1213, x1189, x1186);
+-    let mut x1216: u32 = 0;
+-    let mut x1217: fiat_p384_scalar_u1 = 0;
+     let (x1216, x1217) = fiat_p384_scalar_addcarryx_u32(x1215, x1187, x1184);
+-    let mut x1218: u32 = 0;
+-    let mut x1219: fiat_p384_scalar_u1 = 0;
+     let (x1218, x1219) = fiat_p384_scalar_addcarryx_u32(x1217, x1185, x1182);
+-    let mut x1220: u32 = 0;
+-    let mut x1221: fiat_p384_scalar_u1 = 0;
+     let (x1220, x1221) = fiat_p384_scalar_addcarryx_u32(x1219, x1183, x1180);
+-    let mut x1222: u32 = 0;
+-    let mut x1223: fiat_p384_scalar_u1 = 0;
+     let (x1222, x1223) = fiat_p384_scalar_addcarryx_u32(x1221, x1181, x1178);
+     let x1224: u32 = ((x1223 as u32) + x1179);
+-    let mut x1225: u32 = 0;
+-    let mut x1226: fiat_p384_scalar_u1 = 0;
+     let (x1225, x1226) = fiat_p384_scalar_addcarryx_u32(0x0, x1153, x1200);
+-    let mut x1227: u32 = 0;
+-    let mut x1228: fiat_p384_scalar_u1 = 0;
+     let (x1227, x1228) = fiat_p384_scalar_addcarryx_u32(x1226, x1155, x1202);
+-    let mut x1229: u32 = 0;
+-    let mut x1230: fiat_p384_scalar_u1 = 0;
+     let (x1229, x1230) = fiat_p384_scalar_addcarryx_u32(x1228, x1157, x1204);
+-    let mut x1231: u32 = 0;
+-    let mut x1232: fiat_p384_scalar_u1 = 0;
+     let (x1231, x1232) = fiat_p384_scalar_addcarryx_u32(x1230, x1159, x1206);
+-    let mut x1233: u32 = 0;
+-    let mut x1234: fiat_p384_scalar_u1 = 0;
+     let (x1233, x1234) = fiat_p384_scalar_addcarryx_u32(x1232, x1161, x1208);
+-    let mut x1235: u32 = 0;
+-    let mut x1236: fiat_p384_scalar_u1 = 0;
+     let (x1235, x1236) = fiat_p384_scalar_addcarryx_u32(x1234, x1163, x1210);
+-    let mut x1237: u32 = 0;
+-    let mut x1238: fiat_p384_scalar_u1 = 0;
+     let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(x1236, x1165, x1212);
+-    let mut x1239: u32 = 0;
+-    let mut x1240: fiat_p384_scalar_u1 = 0;
+     let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1167, x1214);
+-    let mut x1241: u32 = 0;
+-    let mut x1242: fiat_p384_scalar_u1 = 0;
+     let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1169, x1216);
+-    let mut x1243: u32 = 0;
+-    let mut x1244: fiat_p384_scalar_u1 = 0;
+     let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1171, x1218);
+-    let mut x1245: u32 = 0;
+-    let mut x1246: fiat_p384_scalar_u1 = 0;
+     let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1173, x1220);
+-    let mut x1247: u32 = 0;
+-    let mut x1248: fiat_p384_scalar_u1 = 0;
+     let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1175, x1222);
+-    let mut x1249: u32 = 0;
+-    let mut x1250: fiat_p384_scalar_u1 = 0;
+     let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1177, x1224);
+-    let mut x1251: u32 = 0;
+-    let mut x1252: u32 = 0;
+     let (x1251, x1252) = fiat_p384_scalar_mulx_u32(x1225, 0xe88fdc45);
+-    let mut x1253: u32 = 0;
+-    let mut x1254: u32 = 0;
+     let (x1253, x1254) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1255: u32 = 0;
+-    let mut x1256: u32 = 0;
+     let (x1255, x1256) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1257: u32 = 0;
+-    let mut x1258: u32 = 0;
+     let (x1257, x1258) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1259: u32 = 0;
+-    let mut x1260: u32 = 0;
+     let (x1259, x1260) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1261: u32 = 0;
+-    let mut x1262: u32 = 0;
+     let (x1261, x1262) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1263: u32 = 0;
+-    let mut x1264: u32 = 0;
+     let (x1263, x1264) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+-    let mut x1265: u32 = 0;
+-    let mut x1266: u32 = 0;
+     let (x1265, x1266) = fiat_p384_scalar_mulx_u32(x1251, 0xc7634d81);
+-    let mut x1267: u32 = 0;
+-    let mut x1268: u32 = 0;
+     let (x1267, x1268) = fiat_p384_scalar_mulx_u32(x1251, 0xf4372ddf);
+-    let mut x1269: u32 = 0;
+-    let mut x1270: u32 = 0;
+     let (x1269, x1270) = fiat_p384_scalar_mulx_u32(x1251, 0x581a0db2);
+-    let mut x1271: u32 = 0;
+-    let mut x1272: u32 = 0;
+     let (x1271, x1272) = fiat_p384_scalar_mulx_u32(x1251, 0x48b0a77a);
+-    let mut x1273: u32 = 0;
+-    let mut x1274: u32 = 0;
+     let (x1273, x1274) = fiat_p384_scalar_mulx_u32(x1251, 0xecec196a);
+-    let mut x1275: u32 = 0;
+-    let mut x1276: u32 = 0;
+     let (x1275, x1276) = fiat_p384_scalar_mulx_u32(x1251, 0xccc52973);
+-    let mut x1277: u32 = 0;
+-    let mut x1278: fiat_p384_scalar_u1 = 0;
+     let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(0x0, x1276, x1273);
+-    let mut x1279: u32 = 0;
+-    let mut x1280: fiat_p384_scalar_u1 = 0;
+     let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1274, x1271);
+-    let mut x1281: u32 = 0;
+-    let mut x1282: fiat_p384_scalar_u1 = 0;
+     let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1272, x1269);
+-    let mut x1283: u32 = 0;
+-    let mut x1284: fiat_p384_scalar_u1 = 0;
+     let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(x1282, x1270, x1267);
+-    let mut x1285: u32 = 0;
+-    let mut x1286: fiat_p384_scalar_u1 = 0;
+     let (x1285, x1286) = fiat_p384_scalar_addcarryx_u32(x1284, x1268, x1265);
+-    let mut x1287: u32 = 0;
+-    let mut x1288: fiat_p384_scalar_u1 = 0;
+     let (x1287, x1288) = fiat_p384_scalar_addcarryx_u32(x1286, x1266, x1263);
+-    let mut x1289: u32 = 0;
+-    let mut x1290: fiat_p384_scalar_u1 = 0;
+     let (x1289, x1290) = fiat_p384_scalar_addcarryx_u32(x1288, x1264, x1261);
+-    let mut x1291: u32 = 0;
+-    let mut x1292: fiat_p384_scalar_u1 = 0;
+     let (x1291, x1292) = fiat_p384_scalar_addcarryx_u32(x1290, x1262, x1259);
+-    let mut x1293: u32 = 0;
+-    let mut x1294: fiat_p384_scalar_u1 = 0;
+     let (x1293, x1294) = fiat_p384_scalar_addcarryx_u32(x1292, x1260, x1257);
+-    let mut x1295: u32 = 0;
+-    let mut x1296: fiat_p384_scalar_u1 = 0;
+     let (x1295, x1296) = fiat_p384_scalar_addcarryx_u32(x1294, x1258, x1255);
+-    let mut x1297: u32 = 0;
+-    let mut x1298: fiat_p384_scalar_u1 = 0;
+     let (x1297, x1298) = fiat_p384_scalar_addcarryx_u32(x1296, x1256, x1253);
+     let x1299: u32 = ((x1298 as u32) + x1254);
+-    let mut x1300: u32 = 0;
+-    let mut x1301: fiat_p384_scalar_u1 = 0;
+     let (x1300, x1301) = fiat_p384_scalar_addcarryx_u32(0x0, x1225, x1275);
+-    let mut x1302: u32 = 0;
+-    let mut x1303: fiat_p384_scalar_u1 = 0;
+     let (x1302, x1303) = fiat_p384_scalar_addcarryx_u32(x1301, x1227, x1277);
+-    let mut x1304: u32 = 0;
+-    let mut x1305: fiat_p384_scalar_u1 = 0;
+     let (x1304, x1305) = fiat_p384_scalar_addcarryx_u32(x1303, x1229, x1279);
+-    let mut x1306: u32 = 0;
+-    let mut x1307: fiat_p384_scalar_u1 = 0;
+     let (x1306, x1307) = fiat_p384_scalar_addcarryx_u32(x1305, x1231, x1281);
+-    let mut x1308: u32 = 0;
+-    let mut x1309: fiat_p384_scalar_u1 = 0;
+     let (x1308, x1309) = fiat_p384_scalar_addcarryx_u32(x1307, x1233, x1283);
+-    let mut x1310: u32 = 0;
+-    let mut x1311: fiat_p384_scalar_u1 = 0;
+     let (x1310, x1311) = fiat_p384_scalar_addcarryx_u32(x1309, x1235, x1285);
+-    let mut x1312: u32 = 0;
+-    let mut x1313: fiat_p384_scalar_u1 = 0;
+     let (x1312, x1313) = fiat_p384_scalar_addcarryx_u32(x1311, x1237, x1287);
+-    let mut x1314: u32 = 0;
+-    let mut x1315: fiat_p384_scalar_u1 = 0;
+     let (x1314, x1315) = fiat_p384_scalar_addcarryx_u32(x1313, x1239, x1289);
+-    let mut x1316: u32 = 0;
+-    let mut x1317: fiat_p384_scalar_u1 = 0;
+     let (x1316, x1317) = fiat_p384_scalar_addcarryx_u32(x1315, x1241, x1291);
+-    let mut x1318: u32 = 0;
+-    let mut x1319: fiat_p384_scalar_u1 = 0;
+     let (x1318, x1319) = fiat_p384_scalar_addcarryx_u32(x1317, x1243, x1293);
+-    let mut x1320: u32 = 0;
+-    let mut x1321: fiat_p384_scalar_u1 = 0;
+     let (x1320, x1321) = fiat_p384_scalar_addcarryx_u32(x1319, x1245, x1295);
+-    let mut x1322: u32 = 0;
+-    let mut x1323: fiat_p384_scalar_u1 = 0;
+     let (x1322, x1323) = fiat_p384_scalar_addcarryx_u32(x1321, x1247, x1297);
+-    let mut x1324: u32 = 0;
+-    let mut x1325: fiat_p384_scalar_u1 = 0;
+     let (x1324, x1325) = fiat_p384_scalar_addcarryx_u32(x1323, x1249, x1299);
+     let x1326: u32 = ((x1325 as u32) + (x1250 as u32));
+-    let mut x1327: u32 = 0;
+-    let mut x1328: u32 = 0;
+     let (x1327, x1328) = fiat_p384_scalar_mulx_u32(x9, (arg1[11]));
+-    let mut x1329: u32 = 0;
+-    let mut x1330: u32 = 0;
+     let (x1329, x1330) = fiat_p384_scalar_mulx_u32(x9, (arg1[10]));
+-    let mut x1331: u32 = 0;
+-    let mut x1332: u32 = 0;
+     let (x1331, x1332) = fiat_p384_scalar_mulx_u32(x9, (arg1[9]));
+-    let mut x1333: u32 = 0;
+-    let mut x1334: u32 = 0;
+     let (x1333, x1334) = fiat_p384_scalar_mulx_u32(x9, (arg1[8]));
+-    let mut x1335: u32 = 0;
+-    let mut x1336: u32 = 0;
+     let (x1335, x1336) = fiat_p384_scalar_mulx_u32(x9, (arg1[7]));
+-    let mut x1337: u32 = 0;
+-    let mut x1338: u32 = 0;
+     let (x1337, x1338) = fiat_p384_scalar_mulx_u32(x9, (arg1[6]));
+-    let mut x1339: u32 = 0;
+-    let mut x1340: u32 = 0;
+     let (x1339, x1340) = fiat_p384_scalar_mulx_u32(x9, (arg1[5]));
+-    let mut x1341: u32 = 0;
+-    let mut x1342: u32 = 0;
+     let (x1341, x1342) = fiat_p384_scalar_mulx_u32(x9, (arg1[4]));
+-    let mut x1343: u32 = 0;
+-    let mut x1344: u32 = 0;
+     let (x1343, x1344) = fiat_p384_scalar_mulx_u32(x9, (arg1[3]));
+-    let mut x1345: u32 = 0;
+-    let mut x1346: u32 = 0;
+     let (x1345, x1346) = fiat_p384_scalar_mulx_u32(x9, (arg1[2]));
+-    let mut x1347: u32 = 0;
+-    let mut x1348: u32 = 0;
+     let (x1347, x1348) = fiat_p384_scalar_mulx_u32(x9, (arg1[1]));
+-    let mut x1349: u32 = 0;
+-    let mut x1350: u32 = 0;
+     let (x1349, x1350) = fiat_p384_scalar_mulx_u32(x9, (arg1[0]));
+-    let mut x1351: u32 = 0;
+-    let mut x1352: fiat_p384_scalar_u1 = 0;
+     let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(0x0, x1350, x1347);
+-    let mut x1353: u32 = 0;
+-    let mut x1354: fiat_p384_scalar_u1 = 0;
+     let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1348, x1345);
+-    let mut x1355: u32 = 0;
+-    let mut x1356: fiat_p384_scalar_u1 = 0;
+     let (x1355, x1356) = fiat_p384_scalar_addcarryx_u32(x1354, x1346, x1343);
+-    let mut x1357: u32 = 0;
+-    let mut x1358: fiat_p384_scalar_u1 = 0;
+     let (x1357, x1358) = fiat_p384_scalar_addcarryx_u32(x1356, x1344, x1341);
+-    let mut x1359: u32 = 0;
+-    let mut x1360: fiat_p384_scalar_u1 = 0;
+     let (x1359, x1360) = fiat_p384_scalar_addcarryx_u32(x1358, x1342, x1339);
+-    let mut x1361: u32 = 0;
+-    let mut x1362: fiat_p384_scalar_u1 = 0;
+     let (x1361, x1362) = fiat_p384_scalar_addcarryx_u32(x1360, x1340, x1337);
+-    let mut x1363: u32 = 0;
+-    let mut x1364: fiat_p384_scalar_u1 = 0;
+     let (x1363, x1364) = fiat_p384_scalar_addcarryx_u32(x1362, x1338, x1335);
+-    let mut x1365: u32 = 0;
+-    let mut x1366: fiat_p384_scalar_u1 = 0;
+     let (x1365, x1366) = fiat_p384_scalar_addcarryx_u32(x1364, x1336, x1333);
+-    let mut x1367: u32 = 0;
+-    let mut x1368: fiat_p384_scalar_u1 = 0;
+     let (x1367, x1368) = fiat_p384_scalar_addcarryx_u32(x1366, x1334, x1331);
+-    let mut x1369: u32 = 0;
+-    let mut x1370: fiat_p384_scalar_u1 = 0;
+     let (x1369, x1370) = fiat_p384_scalar_addcarryx_u32(x1368, x1332, x1329);
+-    let mut x1371: u32 = 0;
+-    let mut x1372: fiat_p384_scalar_u1 = 0;
+     let (x1371, x1372) = fiat_p384_scalar_addcarryx_u32(x1370, x1330, x1327);
+     let x1373: u32 = ((x1372 as u32) + x1328);
+-    let mut x1374: u32 = 0;
+-    let mut x1375: fiat_p384_scalar_u1 = 0;
+     let (x1374, x1375) = fiat_p384_scalar_addcarryx_u32(0x0, x1302, x1349);
+-    let mut x1376: u32 = 0;
+-    let mut x1377: fiat_p384_scalar_u1 = 0;
+     let (x1376, x1377) = fiat_p384_scalar_addcarryx_u32(x1375, x1304, x1351);
+-    let mut x1378: u32 = 0;
+-    let mut x1379: fiat_p384_scalar_u1 = 0;
+     let (x1378, x1379) = fiat_p384_scalar_addcarryx_u32(x1377, x1306, x1353);
+-    let mut x1380: u32 = 0;
+-    let mut x1381: fiat_p384_scalar_u1 = 0;
+     let (x1380, x1381) = fiat_p384_scalar_addcarryx_u32(x1379, x1308, x1355);
+-    let mut x1382: u32 = 0;
+-    let mut x1383: fiat_p384_scalar_u1 = 0;
+     let (x1382, x1383) = fiat_p384_scalar_addcarryx_u32(x1381, x1310, x1357);
+-    let mut x1384: u32 = 0;
+-    let mut x1385: fiat_p384_scalar_u1 = 0;
+     let (x1384, x1385) = fiat_p384_scalar_addcarryx_u32(x1383, x1312, x1359);
+-    let mut x1386: u32 = 0;
+-    let mut x1387: fiat_p384_scalar_u1 = 0;
+     let (x1386, x1387) = fiat_p384_scalar_addcarryx_u32(x1385, x1314, x1361);
+-    let mut x1388: u32 = 0;
+-    let mut x1389: fiat_p384_scalar_u1 = 0;
+     let (x1388, x1389) = fiat_p384_scalar_addcarryx_u32(x1387, x1316, x1363);
+-    let mut x1390: u32 = 0;
+-    let mut x1391: fiat_p384_scalar_u1 = 0;
+     let (x1390, x1391) = fiat_p384_scalar_addcarryx_u32(x1389, x1318, x1365);
+-    let mut x1392: u32 = 0;
+-    let mut x1393: fiat_p384_scalar_u1 = 0;
+     let (x1392, x1393) = fiat_p384_scalar_addcarryx_u32(x1391, x1320, x1367);
+-    let mut x1394: u32 = 0;
+-    let mut x1395: fiat_p384_scalar_u1 = 0;
+     let (x1394, x1395) = fiat_p384_scalar_addcarryx_u32(x1393, x1322, x1369);
+-    let mut x1396: u32 = 0;
+-    let mut x1397: fiat_p384_scalar_u1 = 0;
+     let (x1396, x1397) = fiat_p384_scalar_addcarryx_u32(x1395, x1324, x1371);
+-    let mut x1398: u32 = 0;
+-    let mut x1399: fiat_p384_scalar_u1 = 0;
+     let (x1398, x1399) = fiat_p384_scalar_addcarryx_u32(x1397, x1326, x1373);
+-    let mut x1400: u32 = 0;
+-    let mut x1401: u32 = 0;
+     let (x1400, x1401) = fiat_p384_scalar_mulx_u32(x1374, 0xe88fdc45);
+-    let mut x1402: u32 = 0;
+-    let mut x1403: u32 = 0;
+     let (x1402, x1403) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1404: u32 = 0;
+-    let mut x1405: u32 = 0;
+     let (x1404, x1405) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1406: u32 = 0;
+-    let mut x1407: u32 = 0;
+     let (x1406, x1407) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1408: u32 = 0;
+-    let mut x1409: u32 = 0;
+     let (x1408, x1409) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1410: u32 = 0;
+-    let mut x1411: u32 = 0;
+     let (x1410, x1411) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1412: u32 = 0;
+-    let mut x1413: u32 = 0;
+     let (x1412, x1413) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+-    let mut x1414: u32 = 0;
+-    let mut x1415: u32 = 0;
+     let (x1414, x1415) = fiat_p384_scalar_mulx_u32(x1400, 0xc7634d81);
+-    let mut x1416: u32 = 0;
+-    let mut x1417: u32 = 0;
+     let (x1416, x1417) = fiat_p384_scalar_mulx_u32(x1400, 0xf4372ddf);
+-    let mut x1418: u32 = 0;
+-    let mut x1419: u32 = 0;
+     let (x1418, x1419) = fiat_p384_scalar_mulx_u32(x1400, 0x581a0db2);
+-    let mut x1420: u32 = 0;
+-    let mut x1421: u32 = 0;
+     let (x1420, x1421) = fiat_p384_scalar_mulx_u32(x1400, 0x48b0a77a);
+-    let mut x1422: u32 = 0;
+-    let mut x1423: u32 = 0;
+     let (x1422, x1423) = fiat_p384_scalar_mulx_u32(x1400, 0xecec196a);
+-    let mut x1424: u32 = 0;
+-    let mut x1425: u32 = 0;
+     let (x1424, x1425) = fiat_p384_scalar_mulx_u32(x1400, 0xccc52973);
+-    let mut x1426: u32 = 0;
+-    let mut x1427: fiat_p384_scalar_u1 = 0;
+     let (x1426, x1427) = fiat_p384_scalar_addcarryx_u32(0x0, x1425, x1422);
+-    let mut x1428: u32 = 0;
+-    let mut x1429: fiat_p384_scalar_u1 = 0;
+     let (x1428, x1429) = fiat_p384_scalar_addcarryx_u32(x1427, x1423, x1420);
+-    let mut x1430: u32 = 0;
+-    let mut x1431: fiat_p384_scalar_u1 = 0;
+     let (x1430, x1431) = fiat_p384_scalar_addcarryx_u32(x1429, x1421, x1418);
+-    let mut x1432: u32 = 0;
+-    let mut x1433: fiat_p384_scalar_u1 = 0;
+     let (x1432, x1433) = fiat_p384_scalar_addcarryx_u32(x1431, x1419, x1416);
+-    let mut x1434: u32 = 0;
+-    let mut x1435: fiat_p384_scalar_u1 = 0;
+     let (x1434, x1435) = fiat_p384_scalar_addcarryx_u32(x1433, x1417, x1414);
+-    let mut x1436: u32 = 0;
+-    let mut x1437: fiat_p384_scalar_u1 = 0;
+     let (x1436, x1437) = fiat_p384_scalar_addcarryx_u32(x1435, x1415, x1412);
+-    let mut x1438: u32 = 0;
+-    let mut x1439: fiat_p384_scalar_u1 = 0;
+     let (x1438, x1439) = fiat_p384_scalar_addcarryx_u32(x1437, x1413, x1410);
+-    let mut x1440: u32 = 0;
+-    let mut x1441: fiat_p384_scalar_u1 = 0;
+     let (x1440, x1441) = fiat_p384_scalar_addcarryx_u32(x1439, x1411, x1408);
+-    let mut x1442: u32 = 0;
+-    let mut x1443: fiat_p384_scalar_u1 = 0;
+     let (x1442, x1443) = fiat_p384_scalar_addcarryx_u32(x1441, x1409, x1406);
+-    let mut x1444: u32 = 0;
+-    let mut x1445: fiat_p384_scalar_u1 = 0;
+     let (x1444, x1445) = fiat_p384_scalar_addcarryx_u32(x1443, x1407, x1404);
+-    let mut x1446: u32 = 0;
+-    let mut x1447: fiat_p384_scalar_u1 = 0;
+     let (x1446, x1447) = fiat_p384_scalar_addcarryx_u32(x1445, x1405, x1402);
+     let x1448: u32 = ((x1447 as u32) + x1403);
+-    let mut x1449: u32 = 0;
+-    let mut x1450: fiat_p384_scalar_u1 = 0;
+     let (x1449, x1450) = fiat_p384_scalar_addcarryx_u32(0x0, x1374, x1424);
+-    let mut x1451: u32 = 0;
+-    let mut x1452: fiat_p384_scalar_u1 = 0;
+     let (x1451, x1452) = fiat_p384_scalar_addcarryx_u32(x1450, x1376, x1426);
+-    let mut x1453: u32 = 0;
+-    let mut x1454: fiat_p384_scalar_u1 = 0;
+     let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(x1452, x1378, x1428);
+-    let mut x1455: u32 = 0;
+-    let mut x1456: fiat_p384_scalar_u1 = 0;
+     let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1380, x1430);
+-    let mut x1457: u32 = 0;
+-    let mut x1458: fiat_p384_scalar_u1 = 0;
+     let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1382, x1432);
+-    let mut x1459: u32 = 0;
+-    let mut x1460: fiat_p384_scalar_u1 = 0;
+     let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1384, x1434);
+-    let mut x1461: u32 = 0;
+-    let mut x1462: fiat_p384_scalar_u1 = 0;
+     let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1386, x1436);
+-    let mut x1463: u32 = 0;
+-    let mut x1464: fiat_p384_scalar_u1 = 0;
+     let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1388, x1438);
+-    let mut x1465: u32 = 0;
+-    let mut x1466: fiat_p384_scalar_u1 = 0;
+     let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1390, x1440);
+-    let mut x1467: u32 = 0;
+-    let mut x1468: fiat_p384_scalar_u1 = 0;
+     let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1392, x1442);
+-    let mut x1469: u32 = 0;
+-    let mut x1470: fiat_p384_scalar_u1 = 0;
+     let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1394, x1444);
+-    let mut x1471: u32 = 0;
+-    let mut x1472: fiat_p384_scalar_u1 = 0;
+     let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1396, x1446);
+-    let mut x1473: u32 = 0;
+-    let mut x1474: fiat_p384_scalar_u1 = 0;
+     let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1398, x1448);
+     let x1475: u32 = ((x1474 as u32) + (x1399 as u32));
+-    let mut x1476: u32 = 0;
+-    let mut x1477: u32 = 0;
+     let (x1476, x1477) = fiat_p384_scalar_mulx_u32(x10, (arg1[11]));
+-    let mut x1478: u32 = 0;
+-    let mut x1479: u32 = 0;
+     let (x1478, x1479) = fiat_p384_scalar_mulx_u32(x10, (arg1[10]));
+-    let mut x1480: u32 = 0;
+-    let mut x1481: u32 = 0;
+     let (x1480, x1481) = fiat_p384_scalar_mulx_u32(x10, (arg1[9]));
+-    let mut x1482: u32 = 0;
+-    let mut x1483: u32 = 0;
+     let (x1482, x1483) = fiat_p384_scalar_mulx_u32(x10, (arg1[8]));
+-    let mut x1484: u32 = 0;
+-    let mut x1485: u32 = 0;
+     let (x1484, x1485) = fiat_p384_scalar_mulx_u32(x10, (arg1[7]));
+-    let mut x1486: u32 = 0;
+-    let mut x1487: u32 = 0;
+     let (x1486, x1487) = fiat_p384_scalar_mulx_u32(x10, (arg1[6]));
+-    let mut x1488: u32 = 0;
+-    let mut x1489: u32 = 0;
+     let (x1488, x1489) = fiat_p384_scalar_mulx_u32(x10, (arg1[5]));
+-    let mut x1490: u32 = 0;
+-    let mut x1491: u32 = 0;
+     let (x1490, x1491) = fiat_p384_scalar_mulx_u32(x10, (arg1[4]));
+-    let mut x1492: u32 = 0;
+-    let mut x1493: u32 = 0;
+     let (x1492, x1493) = fiat_p384_scalar_mulx_u32(x10, (arg1[3]));
+-    let mut x1494: u32 = 0;
+-    let mut x1495: u32 = 0;
+     let (x1494, x1495) = fiat_p384_scalar_mulx_u32(x10, (arg1[2]));
+-    let mut x1496: u32 = 0;
+-    let mut x1497: u32 = 0;
+     let (x1496, x1497) = fiat_p384_scalar_mulx_u32(x10, (arg1[1]));
+-    let mut x1498: u32 = 0;
+-    let mut x1499: u32 = 0;
+     let (x1498, x1499) = fiat_p384_scalar_mulx_u32(x10, (arg1[0]));
+-    let mut x1500: u32 = 0;
+-    let mut x1501: fiat_p384_scalar_u1 = 0;
+     let (x1500, x1501) = fiat_p384_scalar_addcarryx_u32(0x0, x1499, x1496);
+-    let mut x1502: u32 = 0;
+-    let mut x1503: fiat_p384_scalar_u1 = 0;
+     let (x1502, x1503) = fiat_p384_scalar_addcarryx_u32(x1501, x1497, x1494);
+-    let mut x1504: u32 = 0;
+-    let mut x1505: fiat_p384_scalar_u1 = 0;
+     let (x1504, x1505) = fiat_p384_scalar_addcarryx_u32(x1503, x1495, x1492);
+-    let mut x1506: u32 = 0;
+-    let mut x1507: fiat_p384_scalar_u1 = 0;
+     let (x1506, x1507) = fiat_p384_scalar_addcarryx_u32(x1505, x1493, x1490);
+-    let mut x1508: u32 = 0;
+-    let mut x1509: fiat_p384_scalar_u1 = 0;
+     let (x1508, x1509) = fiat_p384_scalar_addcarryx_u32(x1507, x1491, x1488);
+-    let mut x1510: u32 = 0;
+-    let mut x1511: fiat_p384_scalar_u1 = 0;
+     let (x1510, x1511) = fiat_p384_scalar_addcarryx_u32(x1509, x1489, x1486);
+-    let mut x1512: u32 = 0;
+-    let mut x1513: fiat_p384_scalar_u1 = 0;
+     let (x1512, x1513) = fiat_p384_scalar_addcarryx_u32(x1511, x1487, x1484);
+-    let mut x1514: u32 = 0;
+-    let mut x1515: fiat_p384_scalar_u1 = 0;
+     let (x1514, x1515) = fiat_p384_scalar_addcarryx_u32(x1513, x1485, x1482);
+-    let mut x1516: u32 = 0;
+-    let mut x1517: fiat_p384_scalar_u1 = 0;
+     let (x1516, x1517) = fiat_p384_scalar_addcarryx_u32(x1515, x1483, x1480);
+-    let mut x1518: u32 = 0;
+-    let mut x1519: fiat_p384_scalar_u1 = 0;
+     let (x1518, x1519) = fiat_p384_scalar_addcarryx_u32(x1517, x1481, x1478);
+-    let mut x1520: u32 = 0;
+-    let mut x1521: fiat_p384_scalar_u1 = 0;
+     let (x1520, x1521) = fiat_p384_scalar_addcarryx_u32(x1519, x1479, x1476);
+     let x1522: u32 = ((x1521 as u32) + x1477);
+-    let mut x1523: u32 = 0;
+-    let mut x1524: fiat_p384_scalar_u1 = 0;
+     let (x1523, x1524) = fiat_p384_scalar_addcarryx_u32(0x0, x1451, x1498);
+-    let mut x1525: u32 = 0;
+-    let mut x1526: fiat_p384_scalar_u1 = 0;
+     let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(x1524, x1453, x1500);
+-    let mut x1527: u32 = 0;
+-    let mut x1528: fiat_p384_scalar_u1 = 0;
+     let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1455, x1502);
+-    let mut x1529: u32 = 0;
+-    let mut x1530: fiat_p384_scalar_u1 = 0;
+     let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1457, x1504);
+-    let mut x1531: u32 = 0;
+-    let mut x1532: fiat_p384_scalar_u1 = 0;
+     let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1459, x1506);
+-    let mut x1533: u32 = 0;
+-    let mut x1534: fiat_p384_scalar_u1 = 0;
+     let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1461, x1508);
+-    let mut x1535: u32 = 0;
+-    let mut x1536: fiat_p384_scalar_u1 = 0;
+     let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1463, x1510);
+-    let mut x1537: u32 = 0;
+-    let mut x1538: fiat_p384_scalar_u1 = 0;
+     let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1465, x1512);
+-    let mut x1539: u32 = 0;
+-    let mut x1540: fiat_p384_scalar_u1 = 0;
+     let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1467, x1514);
+-    let mut x1541: u32 = 0;
+-    let mut x1542: fiat_p384_scalar_u1 = 0;
+     let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1469, x1516);
+-    let mut x1543: u32 = 0;
+-    let mut x1544: fiat_p384_scalar_u1 = 0;
+     let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1471, x1518);
+-    let mut x1545: u32 = 0;
+-    let mut x1546: fiat_p384_scalar_u1 = 0;
+     let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1473, x1520);
+-    let mut x1547: u32 = 0;
+-    let mut x1548: fiat_p384_scalar_u1 = 0;
+     let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(x1546, x1475, x1522);
+-    let mut x1549: u32 = 0;
+-    let mut x1550: u32 = 0;
+     let (x1549, x1550) = fiat_p384_scalar_mulx_u32(x1523, 0xe88fdc45);
+-    let mut x1551: u32 = 0;
+-    let mut x1552: u32 = 0;
+     let (x1551, x1552) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1553: u32 = 0;
+-    let mut x1554: u32 = 0;
+     let (x1553, x1554) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1555: u32 = 0;
+-    let mut x1556: u32 = 0;
+     let (x1555, x1556) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1557: u32 = 0;
+-    let mut x1558: u32 = 0;
+     let (x1557, x1558) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1559: u32 = 0;
+-    let mut x1560: u32 = 0;
+     let (x1559, x1560) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1561: u32 = 0;
+-    let mut x1562: u32 = 0;
+     let (x1561, x1562) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+-    let mut x1563: u32 = 0;
+-    let mut x1564: u32 = 0;
+     let (x1563, x1564) = fiat_p384_scalar_mulx_u32(x1549, 0xc7634d81);
+-    let mut x1565: u32 = 0;
+-    let mut x1566: u32 = 0;
+     let (x1565, x1566) = fiat_p384_scalar_mulx_u32(x1549, 0xf4372ddf);
+-    let mut x1567: u32 = 0;
+-    let mut x1568: u32 = 0;
+     let (x1567, x1568) = fiat_p384_scalar_mulx_u32(x1549, 0x581a0db2);
+-    let mut x1569: u32 = 0;
+-    let mut x1570: u32 = 0;
+     let (x1569, x1570) = fiat_p384_scalar_mulx_u32(x1549, 0x48b0a77a);
+-    let mut x1571: u32 = 0;
+-    let mut x1572: u32 = 0;
+     let (x1571, x1572) = fiat_p384_scalar_mulx_u32(x1549, 0xecec196a);
+-    let mut x1573: u32 = 0;
+-    let mut x1574: u32 = 0;
+     let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x1549, 0xccc52973);
+-    let mut x1575: u32 = 0;
+-    let mut x1576: fiat_p384_scalar_u1 = 0;
+     let (x1575, x1576) = fiat_p384_scalar_addcarryx_u32(0x0, x1574, x1571);
+-    let mut x1577: u32 = 0;
+-    let mut x1578: fiat_p384_scalar_u1 = 0;
+     let (x1577, x1578) = fiat_p384_scalar_addcarryx_u32(x1576, x1572, x1569);
+-    let mut x1579: u32 = 0;
+-    let mut x1580: fiat_p384_scalar_u1 = 0;
+     let (x1579, x1580) = fiat_p384_scalar_addcarryx_u32(x1578, x1570, x1567);
+-    let mut x1581: u32 = 0;
+-    let mut x1582: fiat_p384_scalar_u1 = 0;
+     let (x1581, x1582) = fiat_p384_scalar_addcarryx_u32(x1580, x1568, x1565);
+-    let mut x1583: u32 = 0;
+-    let mut x1584: fiat_p384_scalar_u1 = 0;
+     let (x1583, x1584) = fiat_p384_scalar_addcarryx_u32(x1582, x1566, x1563);
+-    let mut x1585: u32 = 0;
+-    let mut x1586: fiat_p384_scalar_u1 = 0;
+     let (x1585, x1586) = fiat_p384_scalar_addcarryx_u32(x1584, x1564, x1561);
+-    let mut x1587: u32 = 0;
+-    let mut x1588: fiat_p384_scalar_u1 = 0;
+     let (x1587, x1588) = fiat_p384_scalar_addcarryx_u32(x1586, x1562, x1559);
+-    let mut x1589: u32 = 0;
+-    let mut x1590: fiat_p384_scalar_u1 = 0;
+     let (x1589, x1590) = fiat_p384_scalar_addcarryx_u32(x1588, x1560, x1557);
+-    let mut x1591: u32 = 0;
+-    let mut x1592: fiat_p384_scalar_u1 = 0;
+     let (x1591, x1592) = fiat_p384_scalar_addcarryx_u32(x1590, x1558, x1555);
+-    let mut x1593: u32 = 0;
+-    let mut x1594: fiat_p384_scalar_u1 = 0;
+     let (x1593, x1594) = fiat_p384_scalar_addcarryx_u32(x1592, x1556, x1553);
+-    let mut x1595: u32 = 0;
+-    let mut x1596: fiat_p384_scalar_u1 = 0;
+     let (x1595, x1596) = fiat_p384_scalar_addcarryx_u32(x1594, x1554, x1551);
+     let x1597: u32 = ((x1596 as u32) + x1552);
+-    let mut x1598: u32 = 0;
+-    let mut x1599: fiat_p384_scalar_u1 = 0;
+     let (x1598, x1599) = fiat_p384_scalar_addcarryx_u32(0x0, x1523, x1573);
+-    let mut x1600: u32 = 0;
+-    let mut x1601: fiat_p384_scalar_u1 = 0;
+     let (x1600, x1601) = fiat_p384_scalar_addcarryx_u32(x1599, x1525, x1575);
+-    let mut x1602: u32 = 0;
+-    let mut x1603: fiat_p384_scalar_u1 = 0;
+     let (x1602, x1603) = fiat_p384_scalar_addcarryx_u32(x1601, x1527, x1577);
+-    let mut x1604: u32 = 0;
+-    let mut x1605: fiat_p384_scalar_u1 = 0;
+     let (x1604, x1605) = fiat_p384_scalar_addcarryx_u32(x1603, x1529, x1579);
+-    let mut x1606: u32 = 0;
+-    let mut x1607: fiat_p384_scalar_u1 = 0;
+     let (x1606, x1607) = fiat_p384_scalar_addcarryx_u32(x1605, x1531, x1581);
+-    let mut x1608: u32 = 0;
+-    let mut x1609: fiat_p384_scalar_u1 = 0;
+     let (x1608, x1609) = fiat_p384_scalar_addcarryx_u32(x1607, x1533, x1583);
+-    let mut x1610: u32 = 0;
+-    let mut x1611: fiat_p384_scalar_u1 = 0;
+     let (x1610, x1611) = fiat_p384_scalar_addcarryx_u32(x1609, x1535, x1585);
+-    let mut x1612: u32 = 0;
+-    let mut x1613: fiat_p384_scalar_u1 = 0;
+     let (x1612, x1613) = fiat_p384_scalar_addcarryx_u32(x1611, x1537, x1587);
+-    let mut x1614: u32 = 0;
+-    let mut x1615: fiat_p384_scalar_u1 = 0;
+     let (x1614, x1615) = fiat_p384_scalar_addcarryx_u32(x1613, x1539, x1589);
+-    let mut x1616: u32 = 0;
+-    let mut x1617: fiat_p384_scalar_u1 = 0;
+     let (x1616, x1617) = fiat_p384_scalar_addcarryx_u32(x1615, x1541, x1591);
+-    let mut x1618: u32 = 0;
+-    let mut x1619: fiat_p384_scalar_u1 = 0;
+     let (x1618, x1619) = fiat_p384_scalar_addcarryx_u32(x1617, x1543, x1593);
+-    let mut x1620: u32 = 0;
+-    let mut x1621: fiat_p384_scalar_u1 = 0;
+     let (x1620, x1621) = fiat_p384_scalar_addcarryx_u32(x1619, x1545, x1595);
+-    let mut x1622: u32 = 0;
+-    let mut x1623: fiat_p384_scalar_u1 = 0;
+     let (x1622, x1623) = fiat_p384_scalar_addcarryx_u32(x1621, x1547, x1597);
+     let x1624: u32 = ((x1623 as u32) + (x1548 as u32));
+-    let mut x1625: u32 = 0;
+-    let mut x1626: u32 = 0;
+     let (x1625, x1626) = fiat_p384_scalar_mulx_u32(x11, (arg1[11]));
+-    let mut x1627: u32 = 0;
+-    let mut x1628: u32 = 0;
+     let (x1627, x1628) = fiat_p384_scalar_mulx_u32(x11, (arg1[10]));
+-    let mut x1629: u32 = 0;
+-    let mut x1630: u32 = 0;
+     let (x1629, x1630) = fiat_p384_scalar_mulx_u32(x11, (arg1[9]));
+-    let mut x1631: u32 = 0;
+-    let mut x1632: u32 = 0;
+     let (x1631, x1632) = fiat_p384_scalar_mulx_u32(x11, (arg1[8]));
+-    let mut x1633: u32 = 0;
+-    let mut x1634: u32 = 0;
+     let (x1633, x1634) = fiat_p384_scalar_mulx_u32(x11, (arg1[7]));
+-    let mut x1635: u32 = 0;
+-    let mut x1636: u32 = 0;
+     let (x1635, x1636) = fiat_p384_scalar_mulx_u32(x11, (arg1[6]));
+-    let mut x1637: u32 = 0;
+-    let mut x1638: u32 = 0;
+     let (x1637, x1638) = fiat_p384_scalar_mulx_u32(x11, (arg1[5]));
+-    let mut x1639: u32 = 0;
+-    let mut x1640: u32 = 0;
+     let (x1639, x1640) = fiat_p384_scalar_mulx_u32(x11, (arg1[4]));
+-    let mut x1641: u32 = 0;
+-    let mut x1642: u32 = 0;
+     let (x1641, x1642) = fiat_p384_scalar_mulx_u32(x11, (arg1[3]));
+-    let mut x1643: u32 = 0;
+-    let mut x1644: u32 = 0;
+     let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x11, (arg1[2]));
+-    let mut x1645: u32 = 0;
+-    let mut x1646: u32 = 0;
+     let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x11, (arg1[1]));
+-    let mut x1647: u32 = 0;
+-    let mut x1648: u32 = 0;
+     let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x11, (arg1[0]));
+-    let mut x1649: u32 = 0;
+-    let mut x1650: fiat_p384_scalar_u1 = 0;
+     let (x1649, x1650) = fiat_p384_scalar_addcarryx_u32(0x0, x1648, x1645);
+-    let mut x1651: u32 = 0;
+-    let mut x1652: fiat_p384_scalar_u1 = 0;
+     let (x1651, x1652) = fiat_p384_scalar_addcarryx_u32(x1650, x1646, x1643);
+-    let mut x1653: u32 = 0;
+-    let mut x1654: fiat_p384_scalar_u1 = 0;
+     let (x1653, x1654) = fiat_p384_scalar_addcarryx_u32(x1652, x1644, x1641);
+-    let mut x1655: u32 = 0;
+-    let mut x1656: fiat_p384_scalar_u1 = 0;
+     let (x1655, x1656) = fiat_p384_scalar_addcarryx_u32(x1654, x1642, x1639);
+-    let mut x1657: u32 = 0;
+-    let mut x1658: fiat_p384_scalar_u1 = 0;
+     let (x1657, x1658) = fiat_p384_scalar_addcarryx_u32(x1656, x1640, x1637);
+-    let mut x1659: u32 = 0;
+-    let mut x1660: fiat_p384_scalar_u1 = 0;
+     let (x1659, x1660) = fiat_p384_scalar_addcarryx_u32(x1658, x1638, x1635);
+-    let mut x1661: u32 = 0;
+-    let mut x1662: fiat_p384_scalar_u1 = 0;
+     let (x1661, x1662) = fiat_p384_scalar_addcarryx_u32(x1660, x1636, x1633);
+-    let mut x1663: u32 = 0;
+-    let mut x1664: fiat_p384_scalar_u1 = 0;
+     let (x1663, x1664) = fiat_p384_scalar_addcarryx_u32(x1662, x1634, x1631);
+-    let mut x1665: u32 = 0;
+-    let mut x1666: fiat_p384_scalar_u1 = 0;
+     let (x1665, x1666) = fiat_p384_scalar_addcarryx_u32(x1664, x1632, x1629);
+-    let mut x1667: u32 = 0;
+-    let mut x1668: fiat_p384_scalar_u1 = 0;
+     let (x1667, x1668) = fiat_p384_scalar_addcarryx_u32(x1666, x1630, x1627);
+-    let mut x1669: u32 = 0;
+-    let mut x1670: fiat_p384_scalar_u1 = 0;
+     let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(x1668, x1628, x1625);
+     let x1671: u32 = ((x1670 as u32) + x1626);
+-    let mut x1672: u32 = 0;
+-    let mut x1673: fiat_p384_scalar_u1 = 0;
+     let (x1672, x1673) = fiat_p384_scalar_addcarryx_u32(0x0, x1600, x1647);
+-    let mut x1674: u32 = 0;
+-    let mut x1675: fiat_p384_scalar_u1 = 0;
+     let (x1674, x1675) = fiat_p384_scalar_addcarryx_u32(x1673, x1602, x1649);
+-    let mut x1676: u32 = 0;
+-    let mut x1677: fiat_p384_scalar_u1 = 0;
+     let (x1676, x1677) = fiat_p384_scalar_addcarryx_u32(x1675, x1604, x1651);
+-    let mut x1678: u32 = 0;
+-    let mut x1679: fiat_p384_scalar_u1 = 0;
+     let (x1678, x1679) = fiat_p384_scalar_addcarryx_u32(x1677, x1606, x1653);
+-    let mut x1680: u32 = 0;
+-    let mut x1681: fiat_p384_scalar_u1 = 0;
+     let (x1680, x1681) = fiat_p384_scalar_addcarryx_u32(x1679, x1608, x1655);
+-    let mut x1682: u32 = 0;
+-    let mut x1683: fiat_p384_scalar_u1 = 0;
+     let (x1682, x1683) = fiat_p384_scalar_addcarryx_u32(x1681, x1610, x1657);
+-    let mut x1684: u32 = 0;
+-    let mut x1685: fiat_p384_scalar_u1 = 0;
+     let (x1684, x1685) = fiat_p384_scalar_addcarryx_u32(x1683, x1612, x1659);
+-    let mut x1686: u32 = 0;
+-    let mut x1687: fiat_p384_scalar_u1 = 0;
+     let (x1686, x1687) = fiat_p384_scalar_addcarryx_u32(x1685, x1614, x1661);
+-    let mut x1688: u32 = 0;
+-    let mut x1689: fiat_p384_scalar_u1 = 0;
+     let (x1688, x1689) = fiat_p384_scalar_addcarryx_u32(x1687, x1616, x1663);
+-    let mut x1690: u32 = 0;
+-    let mut x1691: fiat_p384_scalar_u1 = 0;
+     let (x1690, x1691) = fiat_p384_scalar_addcarryx_u32(x1689, x1618, x1665);
+-    let mut x1692: u32 = 0;
+-    let mut x1693: fiat_p384_scalar_u1 = 0;
+     let (x1692, x1693) = fiat_p384_scalar_addcarryx_u32(x1691, x1620, x1667);
+-    let mut x1694: u32 = 0;
+-    let mut x1695: fiat_p384_scalar_u1 = 0;
+     let (x1694, x1695) = fiat_p384_scalar_addcarryx_u32(x1693, x1622, x1669);
+-    let mut x1696: u32 = 0;
+-    let mut x1697: fiat_p384_scalar_u1 = 0;
+     let (x1696, x1697) = fiat_p384_scalar_addcarryx_u32(x1695, x1624, x1671);
+-    let mut x1698: u32 = 0;
+-    let mut x1699: u32 = 0;
+     let (x1698, x1699) = fiat_p384_scalar_mulx_u32(x1672, 0xe88fdc45);
+-    let mut x1700: u32 = 0;
+-    let mut x1701: u32 = 0;
+     let (x1700, x1701) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1702: u32 = 0;
+-    let mut x1703: u32 = 0;
+     let (x1702, x1703) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1704: u32 = 0;
+-    let mut x1705: u32 = 0;
+     let (x1704, x1705) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1706: u32 = 0;
+-    let mut x1707: u32 = 0;
+     let (x1706, x1707) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1708: u32 = 0;
+-    let mut x1709: u32 = 0;
+     let (x1708, x1709) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1710: u32 = 0;
+-    let mut x1711: u32 = 0;
+     let (x1710, x1711) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+-    let mut x1712: u32 = 0;
+-    let mut x1713: u32 = 0;
+     let (x1712, x1713) = fiat_p384_scalar_mulx_u32(x1698, 0xc7634d81);
+-    let mut x1714: u32 = 0;
+-    let mut x1715: u32 = 0;
+     let (x1714, x1715) = fiat_p384_scalar_mulx_u32(x1698, 0xf4372ddf);
+-    let mut x1716: u32 = 0;
+-    let mut x1717: u32 = 0;
+     let (x1716, x1717) = fiat_p384_scalar_mulx_u32(x1698, 0x581a0db2);
+-    let mut x1718: u32 = 0;
+-    let mut x1719: u32 = 0;
+     let (x1718, x1719) = fiat_p384_scalar_mulx_u32(x1698, 0x48b0a77a);
+-    let mut x1720: u32 = 0;
+-    let mut x1721: u32 = 0;
+     let (x1720, x1721) = fiat_p384_scalar_mulx_u32(x1698, 0xecec196a);
+-    let mut x1722: u32 = 0;
+-    let mut x1723: u32 = 0;
+     let (x1722, x1723) = fiat_p384_scalar_mulx_u32(x1698, 0xccc52973);
+-    let mut x1724: u32 = 0;
+-    let mut x1725: fiat_p384_scalar_u1 = 0;
+     let (x1724, x1725) = fiat_p384_scalar_addcarryx_u32(0x0, x1723, x1720);
+-    let mut x1726: u32 = 0;
+-    let mut x1727: fiat_p384_scalar_u1 = 0;
+     let (x1726, x1727) = fiat_p384_scalar_addcarryx_u32(x1725, x1721, x1718);
+-    let mut x1728: u32 = 0;
+-    let mut x1729: fiat_p384_scalar_u1 = 0;
+     let (x1728, x1729) = fiat_p384_scalar_addcarryx_u32(x1727, x1719, x1716);
+-    let mut x1730: u32 = 0;
+-    let mut x1731: fiat_p384_scalar_u1 = 0;
+     let (x1730, x1731) = fiat_p384_scalar_addcarryx_u32(x1729, x1717, x1714);
+-    let mut x1732: u32 = 0;
+-    let mut x1733: fiat_p384_scalar_u1 = 0;
+     let (x1732, x1733) = fiat_p384_scalar_addcarryx_u32(x1731, x1715, x1712);
+-    let mut x1734: u32 = 0;
+-    let mut x1735: fiat_p384_scalar_u1 = 0;
+     let (x1734, x1735) = fiat_p384_scalar_addcarryx_u32(x1733, x1713, x1710);
+-    let mut x1736: u32 = 0;
+-    let mut x1737: fiat_p384_scalar_u1 = 0;
+     let (x1736, x1737) = fiat_p384_scalar_addcarryx_u32(x1735, x1711, x1708);
+-    let mut x1738: u32 = 0;
+-    let mut x1739: fiat_p384_scalar_u1 = 0;
+     let (x1738, x1739) = fiat_p384_scalar_addcarryx_u32(x1737, x1709, x1706);
+-    let mut x1740: u32 = 0;
+-    let mut x1741: fiat_p384_scalar_u1 = 0;
+     let (x1740, x1741) = fiat_p384_scalar_addcarryx_u32(x1739, x1707, x1704);
+-    let mut x1742: u32 = 0;
+-    let mut x1743: fiat_p384_scalar_u1 = 0;
+     let (x1742, x1743) = fiat_p384_scalar_addcarryx_u32(x1741, x1705, x1702);
+-    let mut x1744: u32 = 0;
+-    let mut x1745: fiat_p384_scalar_u1 = 0;
+     let (x1744, x1745) = fiat_p384_scalar_addcarryx_u32(x1743, x1703, x1700);
+     let x1746: u32 = ((x1745 as u32) + x1701);
+-    let mut x1747: u32 = 0;
+-    let mut x1748: fiat_p384_scalar_u1 = 0;
+     let (x1747, x1748) = fiat_p384_scalar_addcarryx_u32(0x0, x1672, x1722);
+-    let mut x1749: u32 = 0;
+-    let mut x1750: fiat_p384_scalar_u1 = 0;
+     let (x1749, x1750) = fiat_p384_scalar_addcarryx_u32(x1748, x1674, x1724);
+-    let mut x1751: u32 = 0;
+-    let mut x1752: fiat_p384_scalar_u1 = 0;
+     let (x1751, x1752) = fiat_p384_scalar_addcarryx_u32(x1750, x1676, x1726);
+-    let mut x1753: u32 = 0;
+-    let mut x1754: fiat_p384_scalar_u1 = 0;
+     let (x1753, x1754) = fiat_p384_scalar_addcarryx_u32(x1752, x1678, x1728);
+-    let mut x1755: u32 = 0;
+-    let mut x1756: fiat_p384_scalar_u1 = 0;
+     let (x1755, x1756) = fiat_p384_scalar_addcarryx_u32(x1754, x1680, x1730);
+-    let mut x1757: u32 = 0;
+-    let mut x1758: fiat_p384_scalar_u1 = 0;
+     let (x1757, x1758) = fiat_p384_scalar_addcarryx_u32(x1756, x1682, x1732);
+-    let mut x1759: u32 = 0;
+-    let mut x1760: fiat_p384_scalar_u1 = 0;
+     let (x1759, x1760) = fiat_p384_scalar_addcarryx_u32(x1758, x1684, x1734);
+-    let mut x1761: u32 = 0;
+-    let mut x1762: fiat_p384_scalar_u1 = 0;
+     let (x1761, x1762) = fiat_p384_scalar_addcarryx_u32(x1760, x1686, x1736);
+-    let mut x1763: u32 = 0;
+-    let mut x1764: fiat_p384_scalar_u1 = 0;
+     let (x1763, x1764) = fiat_p384_scalar_addcarryx_u32(x1762, x1688, x1738);
+-    let mut x1765: u32 = 0;
+-    let mut x1766: fiat_p384_scalar_u1 = 0;
+     let (x1765, x1766) = fiat_p384_scalar_addcarryx_u32(x1764, x1690, x1740);
+-    let mut x1767: u32 = 0;
+-    let mut x1768: fiat_p384_scalar_u1 = 0;
+     let (x1767, x1768) = fiat_p384_scalar_addcarryx_u32(x1766, x1692, x1742);
+-    let mut x1769: u32 = 0;
+-    let mut x1770: fiat_p384_scalar_u1 = 0;
+     let (x1769, x1770) = fiat_p384_scalar_addcarryx_u32(x1768, x1694, x1744);
+-    let mut x1771: u32 = 0;
+-    let mut x1772: fiat_p384_scalar_u1 = 0;
+     let (x1771, x1772) = fiat_p384_scalar_addcarryx_u32(x1770, x1696, x1746);
+     let x1773: u32 = ((x1772 as u32) + (x1697 as u32));
+-    let mut x1774: u32 = 0;
+-    let mut x1775: fiat_p384_scalar_u1 = 0;
+     let (x1774, x1775) = fiat_p384_scalar_subborrowx_u32(0x0, x1749, 0xccc52973);
+-    let mut x1776: u32 = 0;
+-    let mut x1777: fiat_p384_scalar_u1 = 0;
+     let (x1776, x1777) = fiat_p384_scalar_subborrowx_u32(x1775, x1751, 0xecec196a);
+-    let mut x1778: u32 = 0;
+-    let mut x1779: fiat_p384_scalar_u1 = 0;
+     let (x1778, x1779) = fiat_p384_scalar_subborrowx_u32(x1777, x1753, 0x48b0a77a);
+-    let mut x1780: u32 = 0;
+-    let mut x1781: fiat_p384_scalar_u1 = 0;
+     let (x1780, x1781) = fiat_p384_scalar_subborrowx_u32(x1779, x1755, 0x581a0db2);
+-    let mut x1782: u32 = 0;
+-    let mut x1783: fiat_p384_scalar_u1 = 0;
+     let (x1782, x1783) = fiat_p384_scalar_subborrowx_u32(x1781, x1757, 0xf4372ddf);
+-    let mut x1784: u32 = 0;
+-    let mut x1785: fiat_p384_scalar_u1 = 0;
+     let (x1784, x1785) = fiat_p384_scalar_subborrowx_u32(x1783, x1759, 0xc7634d81);
+-    let mut x1786: u32 = 0;
+-    let mut x1787: fiat_p384_scalar_u1 = 0;
+     let (x1786, x1787) = fiat_p384_scalar_subborrowx_u32(x1785, x1761, 0xffffffff);
+-    let mut x1788: u32 = 0;
+-    let mut x1789: fiat_p384_scalar_u1 = 0;
+     let (x1788, x1789) = fiat_p384_scalar_subborrowx_u32(x1787, x1763, 0xffffffff);
+-    let mut x1790: u32 = 0;
+-    let mut x1791: fiat_p384_scalar_u1 = 0;
+     let (x1790, x1791) = fiat_p384_scalar_subborrowx_u32(x1789, x1765, 0xffffffff);
+-    let mut x1792: u32 = 0;
+-    let mut x1793: fiat_p384_scalar_u1 = 0;
+     let (x1792, x1793) = fiat_p384_scalar_subborrowx_u32(x1791, x1767, 0xffffffff);
+-    let mut x1794: u32 = 0;
+-    let mut x1795: fiat_p384_scalar_u1 = 0;
+     let (x1794, x1795) = fiat_p384_scalar_subborrowx_u32(x1793, x1769, 0xffffffff);
+-    let mut x1796: u32 = 0;
+-    let mut x1797: fiat_p384_scalar_u1 = 0;
+     let (x1796, x1797) = fiat_p384_scalar_subborrowx_u32(x1795, x1771, 0xffffffff);
+-    let mut x1798: u32 = 0;
+-    let mut x1799: fiat_p384_scalar_u1 = 0;
+     let (x1798, x1799) = fiat_p384_scalar_subborrowx_u32(x1797, x1773, (0x0 as u32));
+-    let mut x1800: u32 = 0;
+     let (x1800) = fiat_p384_scalar_cmovznz_u32(x1799, x1774, x1749);
+-    let mut x1801: u32 = 0;
+     let (x1801) = fiat_p384_scalar_cmovznz_u32(x1799, x1776, x1751);
+-    let mut x1802: u32 = 0;
+     let (x1802) = fiat_p384_scalar_cmovznz_u32(x1799, x1778, x1753);
+-    let mut x1803: u32 = 0;
+     let (x1803) = fiat_p384_scalar_cmovznz_u32(x1799, x1780, x1755);
+-    let mut x1804: u32 = 0;
+     let (x1804) = fiat_p384_scalar_cmovznz_u32(x1799, x1782, x1757);
+-    let mut x1805: u32 = 0;
+     let (x1805) = fiat_p384_scalar_cmovznz_u32(x1799, x1784, x1759);
+-    let mut x1806: u32 = 0;
+     let (x1806) = fiat_p384_scalar_cmovznz_u32(x1799, x1786, x1761);
+-    let mut x1807: u32 = 0;
+     let (x1807) = fiat_p384_scalar_cmovznz_u32(x1799, x1788, x1763);
+-    let mut x1808: u32 = 0;
+     let (x1808) = fiat_p384_scalar_cmovznz_u32(x1799, x1790, x1765);
+-    let mut x1809: u32 = 0;
+     let (x1809) = fiat_p384_scalar_cmovznz_u32(x1799, x1792, x1767);
+-    let mut x1810: u32 = 0;
+     let (x1810) = fiat_p384_scalar_cmovznz_u32(x1799, x1794, x1769);
+-    let mut x1811: u32 = 0;
+     let (x1811) = fiat_p384_scalar_cmovznz_u32(x1799, x1796, x1771);
+     out1[0] = x1800;
+     out1[1] = x1801;
+@@ -5603,104 +2075,42 @@ pub const fn fiat_p384_scalar_add(
+     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+ ) -> fiat_p384_scalar_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_addcarryx_u32(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u32 = 0;
+-    let mut x4: fiat_p384_scalar_u1 = 0;
+     let (x3, x4) = fiat_p384_scalar_addcarryx_u32(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u32 = 0;
+-    let mut x6: fiat_p384_scalar_u1 = 0;
+     let (x5, x6) = fiat_p384_scalar_addcarryx_u32(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u32 = 0;
+-    let mut x8: fiat_p384_scalar_u1 = 0;
+     let (x7, x8) = fiat_p384_scalar_addcarryx_u32(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u32 = 0;
+-    let mut x10: fiat_p384_scalar_u1 = 0;
+     let (x9, x10) = fiat_p384_scalar_addcarryx_u32(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u32 = 0;
+-    let mut x12: fiat_p384_scalar_u1 = 0;
+     let (x11, x12) = fiat_p384_scalar_addcarryx_u32(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u32 = 0;
+-    let mut x14: fiat_p384_scalar_u1 = 0;
+     let (x13, x14) = fiat_p384_scalar_addcarryx_u32(x12, (arg1[6]), (arg2[6]));
+-    let mut x15: u32 = 0;
+-    let mut x16: fiat_p384_scalar_u1 = 0;
+     let (x15, x16) = fiat_p384_scalar_addcarryx_u32(x14, (arg1[7]), (arg2[7]));
+-    let mut x17: u32 = 0;
+-    let mut x18: fiat_p384_scalar_u1 = 0;
+     let (x17, x18) = fiat_p384_scalar_addcarryx_u32(x16, (arg1[8]), (arg2[8]));
+-    let mut x19: u32 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_addcarryx_u32(x18, (arg1[9]), (arg2[9]));
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_addcarryx_u32(x20, (arg1[10]), (arg2[10]));
+-    let mut x23: u32 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_addcarryx_u32(x22, (arg1[11]), (arg2[11]));
+-    let mut x25: u32 = 0;
+-    let mut x26: fiat_p384_scalar_u1 = 0;
+     let (x25, x26) = fiat_p384_scalar_subborrowx_u32(0x0, x1, 0xccc52973);
+-    let mut x27: u32 = 0;
+-    let mut x28: fiat_p384_scalar_u1 = 0;
+     let (x27, x28) = fiat_p384_scalar_subborrowx_u32(x26, x3, 0xecec196a);
+-    let mut x29: u32 = 0;
+-    let mut x30: fiat_p384_scalar_u1 = 0;
+     let (x29, x30) = fiat_p384_scalar_subborrowx_u32(x28, x5, 0x48b0a77a);
+-    let mut x31: u32 = 0;
+-    let mut x32: fiat_p384_scalar_u1 = 0;
+     let (x31, x32) = fiat_p384_scalar_subborrowx_u32(x30, x7, 0x581a0db2);
+-    let mut x33: u32 = 0;
+-    let mut x34: fiat_p384_scalar_u1 = 0;
+     let (x33, x34) = fiat_p384_scalar_subborrowx_u32(x32, x9, 0xf4372ddf);
+-    let mut x35: u32 = 0;
+-    let mut x36: fiat_p384_scalar_u1 = 0;
+     let (x35, x36) = fiat_p384_scalar_subborrowx_u32(x34, x11, 0xc7634d81);
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_scalar_u1 = 0;
+     let (x37, x38) = fiat_p384_scalar_subborrowx_u32(x36, x13, 0xffffffff);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_scalar_u1 = 0;
+     let (x39, x40) = fiat_p384_scalar_subborrowx_u32(x38, x15, 0xffffffff);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_scalar_u1 = 0;
+     let (x41, x42) = fiat_p384_scalar_subborrowx_u32(x40, x17, 0xffffffff);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_scalar_u1 = 0;
+     let (x43, x44) = fiat_p384_scalar_subborrowx_u32(x42, x19, 0xffffffff);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_scalar_u1 = 0;
+     let (x45, x46) = fiat_p384_scalar_subborrowx_u32(x44, x21, 0xffffffff);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_scalar_u1 = 0;
+     let (x47, x48) = fiat_p384_scalar_subborrowx_u32(x46, x23, 0xffffffff);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_scalar_u1 = 0;
+     let (x49, x50) = fiat_p384_scalar_subborrowx_u32(x48, (x24 as u32), (0x0 as u32));
+-    let mut x51: u32 = 0;
+     let (x51) = fiat_p384_scalar_cmovznz_u32(x50, x25, x1);
+-    let mut x52: u32 = 0;
+     let (x52) = fiat_p384_scalar_cmovznz_u32(x50, x27, x3);
+-    let mut x53: u32 = 0;
+     let (x53) = fiat_p384_scalar_cmovznz_u32(x50, x29, x5);
+-    let mut x54: u32 = 0;
+     let (x54) = fiat_p384_scalar_cmovznz_u32(x50, x31, x7);
+-    let mut x55: u32 = 0;
+     let (x55) = fiat_p384_scalar_cmovznz_u32(x50, x33, x9);
+-    let mut x56: u32 = 0;
+     let (x56) = fiat_p384_scalar_cmovznz_u32(x50, x35, x11);
+-    let mut x57: u32 = 0;
+     let (x57) = fiat_p384_scalar_cmovznz_u32(x50, x37, x13);
+-    let mut x58: u32 = 0;
+     let (x58) = fiat_p384_scalar_cmovznz_u32(x50, x39, x15);
+-    let mut x59: u32 = 0;
+     let (x59) = fiat_p384_scalar_cmovznz_u32(x50, x41, x17);
+-    let mut x60: u32 = 0;
+     let (x60) = fiat_p384_scalar_cmovznz_u32(x50, x43, x19);
+-    let mut x61: u32 = 0;
+     let (x61) = fiat_p384_scalar_cmovznz_u32(x50, x45, x21);
+-    let mut x62: u32 = 0;
+     let (x62) = fiat_p384_scalar_cmovznz_u32(x50, x47, x23);
+     out1[0] = x51;
+     out1[1] = x52;
+@@ -5731,79 +2141,30 @@ pub const fn fiat_p384_scalar_sub(
+     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+ ) -> fiat_p384_scalar_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_subborrowx_u32(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u32 = 0;
+-    let mut x4: fiat_p384_scalar_u1 = 0;
+     let (x3, x4) = fiat_p384_scalar_subborrowx_u32(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u32 = 0;
+-    let mut x6: fiat_p384_scalar_u1 = 0;
+     let (x5, x6) = fiat_p384_scalar_subborrowx_u32(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u32 = 0;
+-    let mut x8: fiat_p384_scalar_u1 = 0;
+     let (x7, x8) = fiat_p384_scalar_subborrowx_u32(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u32 = 0;
+-    let mut x10: fiat_p384_scalar_u1 = 0;
+     let (x9, x10) = fiat_p384_scalar_subborrowx_u32(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u32 = 0;
+-    let mut x12: fiat_p384_scalar_u1 = 0;
+     let (x11, x12) = fiat_p384_scalar_subborrowx_u32(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u32 = 0;
+-    let mut x14: fiat_p384_scalar_u1 = 0;
+     let (x13, x14) = fiat_p384_scalar_subborrowx_u32(x12, (arg1[6]), (arg2[6]));
+-    let mut x15: u32 = 0;
+-    let mut x16: fiat_p384_scalar_u1 = 0;
+     let (x15, x16) = fiat_p384_scalar_subborrowx_u32(x14, (arg1[7]), (arg2[7]));
+-    let mut x17: u32 = 0;
+-    let mut x18: fiat_p384_scalar_u1 = 0;
+     let (x17, x18) = fiat_p384_scalar_subborrowx_u32(x16, (arg1[8]), (arg2[8]));
+-    let mut x19: u32 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_subborrowx_u32(x18, (arg1[9]), (arg2[9]));
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_subborrowx_u32(x20, (arg1[10]), (arg2[10]));
+-    let mut x23: u32 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_subborrowx_u32(x22, (arg1[11]), (arg2[11]));
+-    let mut x25: u32 = 0;
+     let (x25) = fiat_p384_scalar_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_scalar_u1 = 0;
+     let (x26, x27) = fiat_p384_scalar_addcarryx_u32(0x0, x1, (x25 & 0xccc52973));
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_scalar_u1 = 0;
+     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, x3, (x25 & 0xecec196a));
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_scalar_u1 = 0;
+     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x5, (x25 & 0x48b0a77a));
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_scalar_u1 = 0;
+     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x7, (x25 & 0x581a0db2));
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_scalar_u1 = 0;
+     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x9, (x25 & 0xf4372ddf));
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_scalar_u1 = 0;
+     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x11, (x25 & 0xc7634d81));
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_scalar_u1 = 0;
+     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x13, x25);
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_scalar_u1 = 0;
+     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x25);
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_scalar_u1 = 0;
+     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x17, x25);
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x19, x25);
+-    let mut x46: u32 = 0;
+-    let mut x47: fiat_p384_scalar_u1 = 0;
+     let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x21, x25);
+-    let mut x48: u32 = 0;
+-    let mut x49: fiat_p384_scalar_u1 = 0;
+     let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x23, x25);
+     out1[0] = x26;
+     out1[1] = x28;
+@@ -5832,79 +2193,30 @@ pub const fn fiat_p384_scalar_opp(
+     arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ ) -> fiat_p384_scalar_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_subborrowx_u32(0x0, (0x0 as u32), (arg1[0]));
+-    let mut x3: u32 = 0;
+-    let mut x4: fiat_p384_scalar_u1 = 0;
+     let (x3, x4) = fiat_p384_scalar_subborrowx_u32(x2, (0x0 as u32), (arg1[1]));
+-    let mut x5: u32 = 0;
+-    let mut x6: fiat_p384_scalar_u1 = 0;
+     let (x5, x6) = fiat_p384_scalar_subborrowx_u32(x4, (0x0 as u32), (arg1[2]));
+-    let mut x7: u32 = 0;
+-    let mut x8: fiat_p384_scalar_u1 = 0;
+     let (x7, x8) = fiat_p384_scalar_subborrowx_u32(x6, (0x0 as u32), (arg1[3]));
+-    let mut x9: u32 = 0;
+-    let mut x10: fiat_p384_scalar_u1 = 0;
+     let (x9, x10) = fiat_p384_scalar_subborrowx_u32(x8, (0x0 as u32), (arg1[4]));
+-    let mut x11: u32 = 0;
+-    let mut x12: fiat_p384_scalar_u1 = 0;
+     let (x11, x12) = fiat_p384_scalar_subborrowx_u32(x10, (0x0 as u32), (arg1[5]));
+-    let mut x13: u32 = 0;
+-    let mut x14: fiat_p384_scalar_u1 = 0;
+     let (x13, x14) = fiat_p384_scalar_subborrowx_u32(x12, (0x0 as u32), (arg1[6]));
+-    let mut x15: u32 = 0;
+-    let mut x16: fiat_p384_scalar_u1 = 0;
+     let (x15, x16) = fiat_p384_scalar_subborrowx_u32(x14, (0x0 as u32), (arg1[7]));
+-    let mut x17: u32 = 0;
+-    let mut x18: fiat_p384_scalar_u1 = 0;
+     let (x17, x18) = fiat_p384_scalar_subborrowx_u32(x16, (0x0 as u32), (arg1[8]));
+-    let mut x19: u32 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_subborrowx_u32(x18, (0x0 as u32), (arg1[9]));
+-    let mut x21: u32 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_subborrowx_u32(x20, (0x0 as u32), (arg1[10]));
+-    let mut x23: u32 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_subborrowx_u32(x22, (0x0 as u32), (arg1[11]));
+-    let mut x25: u32 = 0;
+     let (x25) = fiat_p384_scalar_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_scalar_u1 = 0;
+     let (x26, x27) = fiat_p384_scalar_addcarryx_u32(0x0, x1, (x25 & 0xccc52973));
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_scalar_u1 = 0;
+     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, x3, (x25 & 0xecec196a));
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_scalar_u1 = 0;
+     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x5, (x25 & 0x48b0a77a));
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_scalar_u1 = 0;
+     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x7, (x25 & 0x581a0db2));
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_scalar_u1 = 0;
+     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x9, (x25 & 0xf4372ddf));
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_scalar_u1 = 0;
+     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x11, (x25 & 0xc7634d81));
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_scalar_u1 = 0;
+     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x13, x25);
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_scalar_u1 = 0;
+     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x25);
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_scalar_u1 = 0;
+     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x17, x25);
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x19, x25);
+-    let mut x46: u32 = 0;
+-    let mut x47: fiat_p384_scalar_u1 = 0;
+     let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x21, x25);
+-    let mut x48: u32 = 0;
+-    let mut x49: fiat_p384_scalar_u1 = 0;
+     let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x23, x25);
+     out1[0] = x26;
+     out1[1] = x28;
+@@ -5934,1837 +2246,647 @@ pub const fn fiat_p384_scalar_from_montgomery(
+ ) -> fiat_p384_scalar_non_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_non_montgomery_domain_field_element = [0; 12];
+     let x1: u32 = (arg1[0]);
+-    let mut x2: u32 = 0;
+-    let mut x3: u32 = 0;
+     let (x2, x3) = fiat_p384_scalar_mulx_u32(x1, 0xe88fdc45);
+-    let mut x4: u32 = 0;
+-    let mut x5: u32 = 0;
+     let (x4, x5) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+-    let mut x6: u32 = 0;
+-    let mut x7: u32 = 0;
+     let (x6, x7) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+-    let mut x8: u32 = 0;
+-    let mut x9: u32 = 0;
+     let (x8, x9) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+-    let mut x10: u32 = 0;
+-    let mut x11: u32 = 0;
+     let (x10, x11) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+-    let mut x12: u32 = 0;
+-    let mut x13: u32 = 0;
+     let (x12, x13) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+-    let mut x14: u32 = 0;
+-    let mut x15: u32 = 0;
+     let (x14, x15) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+-    let mut x16: u32 = 0;
+-    let mut x17: u32 = 0;
+     let (x16, x17) = fiat_p384_scalar_mulx_u32(x2, 0xc7634d81);
+-    let mut x18: u32 = 0;
+-    let mut x19: u32 = 0;
+     let (x18, x19) = fiat_p384_scalar_mulx_u32(x2, 0xf4372ddf);
+-    let mut x20: u32 = 0;
+-    let mut x21: u32 = 0;
+     let (x20, x21) = fiat_p384_scalar_mulx_u32(x2, 0x581a0db2);
+-    let mut x22: u32 = 0;
+-    let mut x23: u32 = 0;
+     let (x22, x23) = fiat_p384_scalar_mulx_u32(x2, 0x48b0a77a);
+-    let mut x24: u32 = 0;
+-    let mut x25: u32 = 0;
+     let (x24, x25) = fiat_p384_scalar_mulx_u32(x2, 0xecec196a);
+-    let mut x26: u32 = 0;
+-    let mut x27: u32 = 0;
+     let (x26, x27) = fiat_p384_scalar_mulx_u32(x2, 0xccc52973);
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_scalar_u1 = 0;
+     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(0x0, x27, x24);
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_scalar_u1 = 0;
+     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x25, x22);
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_scalar_u1 = 0;
+     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x23, x20);
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_scalar_u1 = 0;
+     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x21, x18);
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_scalar_u1 = 0;
+     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x19, x16);
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_scalar_u1 = 0;
+     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x17, x14);
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_scalar_u1 = 0;
+     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x12);
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_scalar_u1 = 0;
+     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x13, x10);
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x11, x8);
+-    let mut x46: u32 = 0;
+-    let mut x47: fiat_p384_scalar_u1 = 0;
+     let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x9, x6);
+-    let mut x48: u32 = 0;
+-    let mut x49: fiat_p384_scalar_u1 = 0;
+     let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x7, x4);
+-    let mut x50: u32 = 0;
+-    let mut x51: fiat_p384_scalar_u1 = 0;
+     let (x50, x51) = fiat_p384_scalar_addcarryx_u32(0x0, x1, x26);
+-    let mut x52: u32 = 0;
+-    let mut x53: fiat_p384_scalar_u1 = 0;
+     let (x52, x53) = fiat_p384_scalar_addcarryx_u32(x51, (0x0 as u32), x28);
+-    let mut x54: u32 = 0;
+-    let mut x55: fiat_p384_scalar_u1 = 0;
+     let (x54, x55) = fiat_p384_scalar_addcarryx_u32(x53, (0x0 as u32), x30);
+-    let mut x56: u32 = 0;
+-    let mut x57: fiat_p384_scalar_u1 = 0;
+     let (x56, x57) = fiat_p384_scalar_addcarryx_u32(x55, (0x0 as u32), x32);
+-    let mut x58: u32 = 0;
+-    let mut x59: fiat_p384_scalar_u1 = 0;
+     let (x58, x59) = fiat_p384_scalar_addcarryx_u32(x57, (0x0 as u32), x34);
+-    let mut x60: u32 = 0;
+-    let mut x61: fiat_p384_scalar_u1 = 0;
+     let (x60, x61) = fiat_p384_scalar_addcarryx_u32(x59, (0x0 as u32), x36);
+-    let mut x62: u32 = 0;
+-    let mut x63: fiat_p384_scalar_u1 = 0;
+     let (x62, x63) = fiat_p384_scalar_addcarryx_u32(x61, (0x0 as u32), x38);
+-    let mut x64: u32 = 0;
+-    let mut x65: fiat_p384_scalar_u1 = 0;
+     let (x64, x65) = fiat_p384_scalar_addcarryx_u32(x63, (0x0 as u32), x40);
+-    let mut x66: u32 = 0;
+-    let mut x67: fiat_p384_scalar_u1 = 0;
+     let (x66, x67) = fiat_p384_scalar_addcarryx_u32(x65, (0x0 as u32), x42);
+-    let mut x68: u32 = 0;
+-    let mut x69: fiat_p384_scalar_u1 = 0;
+     let (x68, x69) = fiat_p384_scalar_addcarryx_u32(x67, (0x0 as u32), x44);
+-    let mut x70: u32 = 0;
+-    let mut x71: fiat_p384_scalar_u1 = 0;
+     let (x70, x71) = fiat_p384_scalar_addcarryx_u32(x69, (0x0 as u32), x46);
+-    let mut x72: u32 = 0;
+-    let mut x73: fiat_p384_scalar_u1 = 0;
+     let (x72, x73) = fiat_p384_scalar_addcarryx_u32(x71, (0x0 as u32), x48);
+-    let mut x74: u32 = 0;
+-    let mut x75: fiat_p384_scalar_u1 = 0;
+     let (x74, x75) = fiat_p384_scalar_addcarryx_u32(x73, (0x0 as u32), ((x49 as u32) + x5));
+-    let mut x76: u32 = 0;
+-    let mut x77: fiat_p384_scalar_u1 = 0;
+     let (x76, x77) = fiat_p384_scalar_addcarryx_u32(0x0, x52, (arg1[1]));
+-    let mut x78: u32 = 0;
+-    let mut x79: fiat_p384_scalar_u1 = 0;
+     let (x78, x79) = fiat_p384_scalar_addcarryx_u32(x77, x54, (0x0 as u32));
+-    let mut x80: u32 = 0;
+-    let mut x81: fiat_p384_scalar_u1 = 0;
+     let (x80, x81) = fiat_p384_scalar_addcarryx_u32(x79, x56, (0x0 as u32));
+-    let mut x82: u32 = 0;
+-    let mut x83: fiat_p384_scalar_u1 = 0;
+     let (x82, x83) = fiat_p384_scalar_addcarryx_u32(x81, x58, (0x0 as u32));
+-    let mut x84: u32 = 0;
+-    let mut x85: fiat_p384_scalar_u1 = 0;
+     let (x84, x85) = fiat_p384_scalar_addcarryx_u32(x83, x60, (0x0 as u32));
+-    let mut x86: u32 = 0;
+-    let mut x87: fiat_p384_scalar_u1 = 0;
+     let (x86, x87) = fiat_p384_scalar_addcarryx_u32(x85, x62, (0x0 as u32));
+-    let mut x88: u32 = 0;
+-    let mut x89: fiat_p384_scalar_u1 = 0;
+     let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x64, (0x0 as u32));
+-    let mut x90: u32 = 0;
+-    let mut x91: fiat_p384_scalar_u1 = 0;
+     let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x66, (0x0 as u32));
+-    let mut x92: u32 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x68, (0x0 as u32));
+-    let mut x94: u32 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x70, (0x0 as u32));
+-    let mut x96: u32 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x72, (0x0 as u32));
+-    let mut x98: u32 = 0;
+-    let mut x99: fiat_p384_scalar_u1 = 0;
+     let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x74, (0x0 as u32));
+-    let mut x100: u32 = 0;
+-    let mut x101: u32 = 0;
+     let (x100, x101) = fiat_p384_scalar_mulx_u32(x76, 0xe88fdc45);
+-    let mut x102: u32 = 0;
+-    let mut x103: u32 = 0;
+     let (x102, x103) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+-    let mut x104: u32 = 0;
+-    let mut x105: u32 = 0;
+     let (x104, x105) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+-    let mut x106: u32 = 0;
+-    let mut x107: u32 = 0;
+     let (x106, x107) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+-    let mut x108: u32 = 0;
+-    let mut x109: u32 = 0;
+     let (x108, x109) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+-    let mut x110: u32 = 0;
+-    let mut x111: u32 = 0;
+     let (x110, x111) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+-    let mut x112: u32 = 0;
+-    let mut x113: u32 = 0;
+     let (x112, x113) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+-    let mut x114: u32 = 0;
+-    let mut x115: u32 = 0;
+     let (x114, x115) = fiat_p384_scalar_mulx_u32(x100, 0xc7634d81);
+-    let mut x116: u32 = 0;
+-    let mut x117: u32 = 0;
+     let (x116, x117) = fiat_p384_scalar_mulx_u32(x100, 0xf4372ddf);
+-    let mut x118: u32 = 0;
+-    let mut x119: u32 = 0;
+     let (x118, x119) = fiat_p384_scalar_mulx_u32(x100, 0x581a0db2);
+-    let mut x120: u32 = 0;
+-    let mut x121: u32 = 0;
+     let (x120, x121) = fiat_p384_scalar_mulx_u32(x100, 0x48b0a77a);
+-    let mut x122: u32 = 0;
+-    let mut x123: u32 = 0;
+     let (x122, x123) = fiat_p384_scalar_mulx_u32(x100, 0xecec196a);
+-    let mut x124: u32 = 0;
+-    let mut x125: u32 = 0;
+     let (x124, x125) = fiat_p384_scalar_mulx_u32(x100, 0xccc52973);
+-    let mut x126: u32 = 0;
+-    let mut x127: fiat_p384_scalar_u1 = 0;
+     let (x126, x127) = fiat_p384_scalar_addcarryx_u32(0x0, x125, x122);
+-    let mut x128: u32 = 0;
+-    let mut x129: fiat_p384_scalar_u1 = 0;
+     let (x128, x129) = fiat_p384_scalar_addcarryx_u32(x127, x123, x120);
+-    let mut x130: u32 = 0;
+-    let mut x131: fiat_p384_scalar_u1 = 0;
+     let (x130, x131) = fiat_p384_scalar_addcarryx_u32(x129, x121, x118);
+-    let mut x132: u32 = 0;
+-    let mut x133: fiat_p384_scalar_u1 = 0;
+     let (x132, x133) = fiat_p384_scalar_addcarryx_u32(x131, x119, x116);
+-    let mut x134: u32 = 0;
+-    let mut x135: fiat_p384_scalar_u1 = 0;
+     let (x134, x135) = fiat_p384_scalar_addcarryx_u32(x133, x117, x114);
+-    let mut x136: u32 = 0;
+-    let mut x137: fiat_p384_scalar_u1 = 0;
+     let (x136, x137) = fiat_p384_scalar_addcarryx_u32(x135, x115, x112);
+-    let mut x138: u32 = 0;
+-    let mut x139: fiat_p384_scalar_u1 = 0;
+     let (x138, x139) = fiat_p384_scalar_addcarryx_u32(x137, x113, x110);
+-    let mut x140: u32 = 0;
+-    let mut x141: fiat_p384_scalar_u1 = 0;
+     let (x140, x141) = fiat_p384_scalar_addcarryx_u32(x139, x111, x108);
+-    let mut x142: u32 = 0;
+-    let mut x143: fiat_p384_scalar_u1 = 0;
+     let (x142, x143) = fiat_p384_scalar_addcarryx_u32(x141, x109, x106);
+-    let mut x144: u32 = 0;
+-    let mut x145: fiat_p384_scalar_u1 = 0;
+     let (x144, x145) = fiat_p384_scalar_addcarryx_u32(x143, x107, x104);
+-    let mut x146: u32 = 0;
+-    let mut x147: fiat_p384_scalar_u1 = 0;
+     let (x146, x147) = fiat_p384_scalar_addcarryx_u32(x145, x105, x102);
+-    let mut x148: u32 = 0;
+-    let mut x149: fiat_p384_scalar_u1 = 0;
+     let (x148, x149) = fiat_p384_scalar_addcarryx_u32(0x0, x76, x124);
+-    let mut x150: u32 = 0;
+-    let mut x151: fiat_p384_scalar_u1 = 0;
+     let (x150, x151) = fiat_p384_scalar_addcarryx_u32(x149, x78, x126);
+-    let mut x152: u32 = 0;
+-    let mut x153: fiat_p384_scalar_u1 = 0;
+     let (x152, x153) = fiat_p384_scalar_addcarryx_u32(x151, x80, x128);
+-    let mut x154: u32 = 0;
+-    let mut x155: fiat_p384_scalar_u1 = 0;
+     let (x154, x155) = fiat_p384_scalar_addcarryx_u32(x153, x82, x130);
+-    let mut x156: u32 = 0;
+-    let mut x157: fiat_p384_scalar_u1 = 0;
+     let (x156, x157) = fiat_p384_scalar_addcarryx_u32(x155, x84, x132);
+-    let mut x158: u32 = 0;
+-    let mut x159: fiat_p384_scalar_u1 = 0;
+     let (x158, x159) = fiat_p384_scalar_addcarryx_u32(x157, x86, x134);
+-    let mut x160: u32 = 0;
+-    let mut x161: fiat_p384_scalar_u1 = 0;
+     let (x160, x161) = fiat_p384_scalar_addcarryx_u32(x159, x88, x136);
+-    let mut x162: u32 = 0;
+-    let mut x163: fiat_p384_scalar_u1 = 0;
+     let (x162, x163) = fiat_p384_scalar_addcarryx_u32(x161, x90, x138);
+-    let mut x164: u32 = 0;
+-    let mut x165: fiat_p384_scalar_u1 = 0;
+     let (x164, x165) = fiat_p384_scalar_addcarryx_u32(x163, x92, x140);
+-    let mut x166: u32 = 0;
+-    let mut x167: fiat_p384_scalar_u1 = 0;
+     let (x166, x167) = fiat_p384_scalar_addcarryx_u32(x165, x94, x142);
+-    let mut x168: u32 = 0;
+-    let mut x169: fiat_p384_scalar_u1 = 0;
+     let (x168, x169) = fiat_p384_scalar_addcarryx_u32(x167, x96, x144);
+-    let mut x170: u32 = 0;
+-    let mut x171: fiat_p384_scalar_u1 = 0;
+     let (x170, x171) = fiat_p384_scalar_addcarryx_u32(x169, x98, x146);
+-    let mut x172: u32 = 0;
+-    let mut x173: fiat_p384_scalar_u1 = 0;
+     let (x172, x173) =
+         fiat_p384_scalar_addcarryx_u32(x171, ((x99 as u32) + (x75 as u32)), ((x147 as u32) + x103));
+-    let mut x174: u32 = 0;
+-    let mut x175: fiat_p384_scalar_u1 = 0;
+     let (x174, x175) = fiat_p384_scalar_addcarryx_u32(0x0, x150, (arg1[2]));
+-    let mut x176: u32 = 0;
+-    let mut x177: fiat_p384_scalar_u1 = 0;
+     let (x176, x177) = fiat_p384_scalar_addcarryx_u32(x175, x152, (0x0 as u32));
+-    let mut x178: u32 = 0;
+-    let mut x179: fiat_p384_scalar_u1 = 0;
+     let (x178, x179) = fiat_p384_scalar_addcarryx_u32(x177, x154, (0x0 as u32));
+-    let mut x180: u32 = 0;
+-    let mut x181: fiat_p384_scalar_u1 = 0;
+     let (x180, x181) = fiat_p384_scalar_addcarryx_u32(x179, x156, (0x0 as u32));
+-    let mut x182: u32 = 0;
+-    let mut x183: fiat_p384_scalar_u1 = 0;
+     let (x182, x183) = fiat_p384_scalar_addcarryx_u32(x181, x158, (0x0 as u32));
+-    let mut x184: u32 = 0;
+-    let mut x185: fiat_p384_scalar_u1 = 0;
+     let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x160, (0x0 as u32));
+-    let mut x186: u32 = 0;
+-    let mut x187: fiat_p384_scalar_u1 = 0;
+     let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x162, (0x0 as u32));
+-    let mut x188: u32 = 0;
+-    let mut x189: fiat_p384_scalar_u1 = 0;
+     let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x164, (0x0 as u32));
+-    let mut x190: u32 = 0;
+-    let mut x191: fiat_p384_scalar_u1 = 0;
+     let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x166, (0x0 as u32));
+-    let mut x192: u32 = 0;
+-    let mut x193: fiat_p384_scalar_u1 = 0;
+     let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x168, (0x0 as u32));
+-    let mut x194: u32 = 0;
+-    let mut x195: fiat_p384_scalar_u1 = 0;
+     let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x170, (0x0 as u32));
+-    let mut x196: u32 = 0;
+-    let mut x197: fiat_p384_scalar_u1 = 0;
+     let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x172, (0x0 as u32));
+-    let mut x198: u32 = 0;
+-    let mut x199: u32 = 0;
+     let (x198, x199) = fiat_p384_scalar_mulx_u32(x174, 0xe88fdc45);
+-    let mut x200: u32 = 0;
+-    let mut x201: u32 = 0;
+     let (x200, x201) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+-    let mut x202: u32 = 0;
+-    let mut x203: u32 = 0;
+     let (x202, x203) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+-    let mut x204: u32 = 0;
+-    let mut x205: u32 = 0;
+     let (x204, x205) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+-    let mut x206: u32 = 0;
+-    let mut x207: u32 = 0;
+     let (x206, x207) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+-    let mut x208: u32 = 0;
+-    let mut x209: u32 = 0;
+     let (x208, x209) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+-    let mut x210: u32 = 0;
+-    let mut x211: u32 = 0;
+     let (x210, x211) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+-    let mut x212: u32 = 0;
+-    let mut x213: u32 = 0;
+     let (x212, x213) = fiat_p384_scalar_mulx_u32(x198, 0xc7634d81);
+-    let mut x214: u32 = 0;
+-    let mut x215: u32 = 0;
+     let (x214, x215) = fiat_p384_scalar_mulx_u32(x198, 0xf4372ddf);
+-    let mut x216: u32 = 0;
+-    let mut x217: u32 = 0;
+     let (x216, x217) = fiat_p384_scalar_mulx_u32(x198, 0x581a0db2);
+-    let mut x218: u32 = 0;
+-    let mut x219: u32 = 0;
+     let (x218, x219) = fiat_p384_scalar_mulx_u32(x198, 0x48b0a77a);
+-    let mut x220: u32 = 0;
+-    let mut x221: u32 = 0;
+     let (x220, x221) = fiat_p384_scalar_mulx_u32(x198, 0xecec196a);
+-    let mut x222: u32 = 0;
+-    let mut x223: u32 = 0;
+     let (x222, x223) = fiat_p384_scalar_mulx_u32(x198, 0xccc52973);
+-    let mut x224: u32 = 0;
+-    let mut x225: fiat_p384_scalar_u1 = 0;
+     let (x224, x225) = fiat_p384_scalar_addcarryx_u32(0x0, x223, x220);
+-    let mut x226: u32 = 0;
+-    let mut x227: fiat_p384_scalar_u1 = 0;
+     let (x226, x227) = fiat_p384_scalar_addcarryx_u32(x225, x221, x218);
+-    let mut x228: u32 = 0;
+-    let mut x229: fiat_p384_scalar_u1 = 0;
+     let (x228, x229) = fiat_p384_scalar_addcarryx_u32(x227, x219, x216);
+-    let mut x230: u32 = 0;
+-    let mut x231: fiat_p384_scalar_u1 = 0;
+     let (x230, x231) = fiat_p384_scalar_addcarryx_u32(x229, x217, x214);
+-    let mut x232: u32 = 0;
+-    let mut x233: fiat_p384_scalar_u1 = 0;
+     let (x232, x233) = fiat_p384_scalar_addcarryx_u32(x231, x215, x212);
+-    let mut x234: u32 = 0;
+-    let mut x235: fiat_p384_scalar_u1 = 0;
+     let (x234, x235) = fiat_p384_scalar_addcarryx_u32(x233, x213, x210);
+-    let mut x236: u32 = 0;
+-    let mut x237: fiat_p384_scalar_u1 = 0;
+     let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x211, x208);
+-    let mut x238: u32 = 0;
+-    let mut x239: fiat_p384_scalar_u1 = 0;
+     let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x209, x206);
+-    let mut x240: u32 = 0;
+-    let mut x241: fiat_p384_scalar_u1 = 0;
+     let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x207, x204);
+-    let mut x242: u32 = 0;
+-    let mut x243: fiat_p384_scalar_u1 = 0;
+     let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x205, x202);
+-    let mut x244: u32 = 0;
+-    let mut x245: fiat_p384_scalar_u1 = 0;
+     let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x203, x200);
+-    let mut x246: u32 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(0x0, x174, x222);
+-    let mut x248: u32 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x176, x224);
+-    let mut x250: u32 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x178, x226);
+-    let mut x252: u32 = 0;
+-    let mut x253: fiat_p384_scalar_u1 = 0;
+     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x180, x228);
+-    let mut x254: u32 = 0;
+-    let mut x255: fiat_p384_scalar_u1 = 0;
+     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x182, x230);
+-    let mut x256: u32 = 0;
+-    let mut x257: fiat_p384_scalar_u1 = 0;
+     let (x256, x257) = fiat_p384_scalar_addcarryx_u32(x255, x184, x232);
+-    let mut x258: u32 = 0;
+-    let mut x259: fiat_p384_scalar_u1 = 0;
+     let (x258, x259) = fiat_p384_scalar_addcarryx_u32(x257, x186, x234);
+-    let mut x260: u32 = 0;
+-    let mut x261: fiat_p384_scalar_u1 = 0;
+     let (x260, x261) = fiat_p384_scalar_addcarryx_u32(x259, x188, x236);
+-    let mut x262: u32 = 0;
+-    let mut x263: fiat_p384_scalar_u1 = 0;
+     let (x262, x263) = fiat_p384_scalar_addcarryx_u32(x261, x190, x238);
+-    let mut x264: u32 = 0;
+-    let mut x265: fiat_p384_scalar_u1 = 0;
+     let (x264, x265) = fiat_p384_scalar_addcarryx_u32(x263, x192, x240);
+-    let mut x266: u32 = 0;
+-    let mut x267: fiat_p384_scalar_u1 = 0;
+     let (x266, x267) = fiat_p384_scalar_addcarryx_u32(x265, x194, x242);
+-    let mut x268: u32 = 0;
+-    let mut x269: fiat_p384_scalar_u1 = 0;
+     let (x268, x269) = fiat_p384_scalar_addcarryx_u32(x267, x196, x244);
+-    let mut x270: u32 = 0;
+-    let mut x271: fiat_p384_scalar_u1 = 0;
+     let (x270, x271) = fiat_p384_scalar_addcarryx_u32(
+         x269,
+         ((x197 as u32) + (x173 as u32)),
+         ((x245 as u32) + x201),
+     );
+-    let mut x272: u32 = 0;
+-    let mut x273: fiat_p384_scalar_u1 = 0;
+     let (x272, x273) = fiat_p384_scalar_addcarryx_u32(0x0, x248, (arg1[3]));
+-    let mut x274: u32 = 0;
+-    let mut x275: fiat_p384_scalar_u1 = 0;
+     let (x274, x275) = fiat_p384_scalar_addcarryx_u32(x273, x250, (0x0 as u32));
+-    let mut x276: u32 = 0;
+-    let mut x277: fiat_p384_scalar_u1 = 0;
+     let (x276, x277) = fiat_p384_scalar_addcarryx_u32(x275, x252, (0x0 as u32));
+-    let mut x278: u32 = 0;
+-    let mut x279: fiat_p384_scalar_u1 = 0;
+     let (x278, x279) = fiat_p384_scalar_addcarryx_u32(x277, x254, (0x0 as u32));
+-    let mut x280: u32 = 0;
+-    let mut x281: fiat_p384_scalar_u1 = 0;
+     let (x280, x281) = fiat_p384_scalar_addcarryx_u32(x279, x256, (0x0 as u32));
+-    let mut x282: u32 = 0;
+-    let mut x283: fiat_p384_scalar_u1 = 0;
+     let (x282, x283) = fiat_p384_scalar_addcarryx_u32(x281, x258, (0x0 as u32));
+-    let mut x284: u32 = 0;
+-    let mut x285: fiat_p384_scalar_u1 = 0;
+     let (x284, x285) = fiat_p384_scalar_addcarryx_u32(x283, x260, (0x0 as u32));
+-    let mut x286: u32 = 0;
+-    let mut x287: fiat_p384_scalar_u1 = 0;
+     let (x286, x287) = fiat_p384_scalar_addcarryx_u32(x285, x262, (0x0 as u32));
+-    let mut x288: u32 = 0;
+-    let mut x289: fiat_p384_scalar_u1 = 0;
+     let (x288, x289) = fiat_p384_scalar_addcarryx_u32(x287, x264, (0x0 as u32));
+-    let mut x290: u32 = 0;
+-    let mut x291: fiat_p384_scalar_u1 = 0;
+     let (x290, x291) = fiat_p384_scalar_addcarryx_u32(x289, x266, (0x0 as u32));
+-    let mut x292: u32 = 0;
+-    let mut x293: fiat_p384_scalar_u1 = 0;
+     let (x292, x293) = fiat_p384_scalar_addcarryx_u32(x291, x268, (0x0 as u32));
+-    let mut x294: u32 = 0;
+-    let mut x295: fiat_p384_scalar_u1 = 0;
+     let (x294, x295) = fiat_p384_scalar_addcarryx_u32(x293, x270, (0x0 as u32));
+-    let mut x296: u32 = 0;
+-    let mut x297: u32 = 0;
+     let (x296, x297) = fiat_p384_scalar_mulx_u32(x272, 0xe88fdc45);
+-    let mut x298: u32 = 0;
+-    let mut x299: u32 = 0;
+     let (x298, x299) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+-    let mut x300: u32 = 0;
+-    let mut x301: u32 = 0;
+     let (x300, x301) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+-    let mut x302: u32 = 0;
+-    let mut x303: u32 = 0;
+     let (x302, x303) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+-    let mut x304: u32 = 0;
+-    let mut x305: u32 = 0;
+     let (x304, x305) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+-    let mut x306: u32 = 0;
+-    let mut x307: u32 = 0;
+     let (x306, x307) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+-    let mut x308: u32 = 0;
+-    let mut x309: u32 = 0;
+     let (x308, x309) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+-    let mut x310: u32 = 0;
+-    let mut x311: u32 = 0;
+     let (x310, x311) = fiat_p384_scalar_mulx_u32(x296, 0xc7634d81);
+-    let mut x312: u32 = 0;
+-    let mut x313: u32 = 0;
+     let (x312, x313) = fiat_p384_scalar_mulx_u32(x296, 0xf4372ddf);
+-    let mut x314: u32 = 0;
+-    let mut x315: u32 = 0;
+     let (x314, x315) = fiat_p384_scalar_mulx_u32(x296, 0x581a0db2);
+-    let mut x316: u32 = 0;
+-    let mut x317: u32 = 0;
+     let (x316, x317) = fiat_p384_scalar_mulx_u32(x296, 0x48b0a77a);
+-    let mut x318: u32 = 0;
+-    let mut x319: u32 = 0;
+     let (x318, x319) = fiat_p384_scalar_mulx_u32(x296, 0xecec196a);
+-    let mut x320: u32 = 0;
+-    let mut x321: u32 = 0;
+     let (x320, x321) = fiat_p384_scalar_mulx_u32(x296, 0xccc52973);
+-    let mut x322: u32 = 0;
+-    let mut x323: fiat_p384_scalar_u1 = 0;
+     let (x322, x323) = fiat_p384_scalar_addcarryx_u32(0x0, x321, x318);
+-    let mut x324: u32 = 0;
+-    let mut x325: fiat_p384_scalar_u1 = 0;
+     let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x319, x316);
+-    let mut x326: u32 = 0;
+-    let mut x327: fiat_p384_scalar_u1 = 0;
+     let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x317, x314);
+-    let mut x328: u32 = 0;
+-    let mut x329: fiat_p384_scalar_u1 = 0;
+     let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x315, x312);
+-    let mut x330: u32 = 0;
+-    let mut x331: fiat_p384_scalar_u1 = 0;
+     let (x330, x331) = fiat_p384_scalar_addcarryx_u32(x329, x313, x310);
+-    let mut x332: u32 = 0;
+-    let mut x333: fiat_p384_scalar_u1 = 0;
+     let (x332, x333) = fiat_p384_scalar_addcarryx_u32(x331, x311, x308);
+-    let mut x334: u32 = 0;
+-    let mut x335: fiat_p384_scalar_u1 = 0;
+     let (x334, x335) = fiat_p384_scalar_addcarryx_u32(x333, x309, x306);
+-    let mut x336: u32 = 0;
+-    let mut x337: fiat_p384_scalar_u1 = 0;
+     let (x336, x337) = fiat_p384_scalar_addcarryx_u32(x335, x307, x304);
+-    let mut x338: u32 = 0;
+-    let mut x339: fiat_p384_scalar_u1 = 0;
+     let (x338, x339) = fiat_p384_scalar_addcarryx_u32(x337, x305, x302);
+-    let mut x340: u32 = 0;
+-    let mut x341: fiat_p384_scalar_u1 = 0;
+     let (x340, x341) = fiat_p384_scalar_addcarryx_u32(x339, x303, x300);
+-    let mut x342: u32 = 0;
+-    let mut x343: fiat_p384_scalar_u1 = 0;
+     let (x342, x343) = fiat_p384_scalar_addcarryx_u32(x341, x301, x298);
+-    let mut x344: u32 = 0;
+-    let mut x345: fiat_p384_scalar_u1 = 0;
+     let (x344, x345) = fiat_p384_scalar_addcarryx_u32(0x0, x272, x320);
+-    let mut x346: u32 = 0;
+-    let mut x347: fiat_p384_scalar_u1 = 0;
+     let (x346, x347) = fiat_p384_scalar_addcarryx_u32(x345, x274, x322);
+-    let mut x348: u32 = 0;
+-    let mut x349: fiat_p384_scalar_u1 = 0;
+     let (x348, x349) = fiat_p384_scalar_addcarryx_u32(x347, x276, x324);
+-    let mut x350: u32 = 0;
+-    let mut x351: fiat_p384_scalar_u1 = 0;
+     let (x350, x351) = fiat_p384_scalar_addcarryx_u32(x349, x278, x326);
+-    let mut x352: u32 = 0;
+-    let mut x353: fiat_p384_scalar_u1 = 0;
+     let (x352, x353) = fiat_p384_scalar_addcarryx_u32(x351, x280, x328);
+-    let mut x354: u32 = 0;
+-    let mut x355: fiat_p384_scalar_u1 = 0;
+     let (x354, x355) = fiat_p384_scalar_addcarryx_u32(x353, x282, x330);
+-    let mut x356: u32 = 0;
+-    let mut x357: fiat_p384_scalar_u1 = 0;
+     let (x356, x357) = fiat_p384_scalar_addcarryx_u32(x355, x284, x332);
+-    let mut x358: u32 = 0;
+-    let mut x359: fiat_p384_scalar_u1 = 0;
+     let (x358, x359) = fiat_p384_scalar_addcarryx_u32(x357, x286, x334);
+-    let mut x360: u32 = 0;
+-    let mut x361: fiat_p384_scalar_u1 = 0;
+     let (x360, x361) = fiat_p384_scalar_addcarryx_u32(x359, x288, x336);
+-    let mut x362: u32 = 0;
+-    let mut x363: fiat_p384_scalar_u1 = 0;
+     let (x362, x363) = fiat_p384_scalar_addcarryx_u32(x361, x290, x338);
+-    let mut x364: u32 = 0;
+-    let mut x365: fiat_p384_scalar_u1 = 0;
+     let (x364, x365) = fiat_p384_scalar_addcarryx_u32(x363, x292, x340);
+-    let mut x366: u32 = 0;
+-    let mut x367: fiat_p384_scalar_u1 = 0;
+     let (x366, x367) = fiat_p384_scalar_addcarryx_u32(x365, x294, x342);
+-    let mut x368: u32 = 0;
+-    let mut x369: fiat_p384_scalar_u1 = 0;
+     let (x368, x369) = fiat_p384_scalar_addcarryx_u32(
+         x367,
+         ((x295 as u32) + (x271 as u32)),
+         ((x343 as u32) + x299),
+     );
+-    let mut x370: u32 = 0;
+-    let mut x371: fiat_p384_scalar_u1 = 0;
+     let (x370, x371) = fiat_p384_scalar_addcarryx_u32(0x0, x346, (arg1[4]));
+-    let mut x372: u32 = 0;
+-    let mut x373: fiat_p384_scalar_u1 = 0;
+     let (x372, x373) = fiat_p384_scalar_addcarryx_u32(x371, x348, (0x0 as u32));
+-    let mut x374: u32 = 0;
+-    let mut x375: fiat_p384_scalar_u1 = 0;
+     let (x374, x375) = fiat_p384_scalar_addcarryx_u32(x373, x350, (0x0 as u32));
+-    let mut x376: u32 = 0;
+-    let mut x377: fiat_p384_scalar_u1 = 0;
+     let (x376, x377) = fiat_p384_scalar_addcarryx_u32(x375, x352, (0x0 as u32));
+-    let mut x378: u32 = 0;
+-    let mut x379: fiat_p384_scalar_u1 = 0;
+     let (x378, x379) = fiat_p384_scalar_addcarryx_u32(x377, x354, (0x0 as u32));
+-    let mut x380: u32 = 0;
+-    let mut x381: fiat_p384_scalar_u1 = 0;
+     let (x380, x381) = fiat_p384_scalar_addcarryx_u32(x379, x356, (0x0 as u32));
+-    let mut x382: u32 = 0;
+-    let mut x383: fiat_p384_scalar_u1 = 0;
+     let (x382, x383) = fiat_p384_scalar_addcarryx_u32(x381, x358, (0x0 as u32));
+-    let mut x384: u32 = 0;
+-    let mut x385: fiat_p384_scalar_u1 = 0;
+     let (x384, x385) = fiat_p384_scalar_addcarryx_u32(x383, x360, (0x0 as u32));
+-    let mut x386: u32 = 0;
+-    let mut x387: fiat_p384_scalar_u1 = 0;
+     let (x386, x387) = fiat_p384_scalar_addcarryx_u32(x385, x362, (0x0 as u32));
+-    let mut x388: u32 = 0;
+-    let mut x389: fiat_p384_scalar_u1 = 0;
+     let (x388, x389) = fiat_p384_scalar_addcarryx_u32(x387, x364, (0x0 as u32));
+-    let mut x390: u32 = 0;
+-    let mut x391: fiat_p384_scalar_u1 = 0;
+     let (x390, x391) = fiat_p384_scalar_addcarryx_u32(x389, x366, (0x0 as u32));
+-    let mut x392: u32 = 0;
+-    let mut x393: fiat_p384_scalar_u1 = 0;
+     let (x392, x393) = fiat_p384_scalar_addcarryx_u32(x391, x368, (0x0 as u32));
+-    let mut x394: u32 = 0;
+-    let mut x395: u32 = 0;
+     let (x394, x395) = fiat_p384_scalar_mulx_u32(x370, 0xe88fdc45);
+-    let mut x396: u32 = 0;
+-    let mut x397: u32 = 0;
+     let (x396, x397) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+-    let mut x398: u32 = 0;
+-    let mut x399: u32 = 0;
+     let (x398, x399) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+-    let mut x400: u32 = 0;
+-    let mut x401: u32 = 0;
+     let (x400, x401) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+-    let mut x402: u32 = 0;
+-    let mut x403: u32 = 0;
+     let (x402, x403) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+-    let mut x404: u32 = 0;
+-    let mut x405: u32 = 0;
+     let (x404, x405) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+-    let mut x406: u32 = 0;
+-    let mut x407: u32 = 0;
+     let (x406, x407) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+-    let mut x408: u32 = 0;
+-    let mut x409: u32 = 0;
+     let (x408, x409) = fiat_p384_scalar_mulx_u32(x394, 0xc7634d81);
+-    let mut x410: u32 = 0;
+-    let mut x411: u32 = 0;
+     let (x410, x411) = fiat_p384_scalar_mulx_u32(x394, 0xf4372ddf);
+-    let mut x412: u32 = 0;
+-    let mut x413: u32 = 0;
+     let (x412, x413) = fiat_p384_scalar_mulx_u32(x394, 0x581a0db2);
+-    let mut x414: u32 = 0;
+-    let mut x415: u32 = 0;
+     let (x414, x415) = fiat_p384_scalar_mulx_u32(x394, 0x48b0a77a);
+-    let mut x416: u32 = 0;
+-    let mut x417: u32 = 0;
+     let (x416, x417) = fiat_p384_scalar_mulx_u32(x394, 0xecec196a);
+-    let mut x418: u32 = 0;
+-    let mut x419: u32 = 0;
+     let (x418, x419) = fiat_p384_scalar_mulx_u32(x394, 0xccc52973);
+-    let mut x420: u32 = 0;
+-    let mut x421: fiat_p384_scalar_u1 = 0;
+     let (x420, x421) = fiat_p384_scalar_addcarryx_u32(0x0, x419, x416);
+-    let mut x422: u32 = 0;
+-    let mut x423: fiat_p384_scalar_u1 = 0;
+     let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x417, x414);
+-    let mut x424: u32 = 0;
+-    let mut x425: fiat_p384_scalar_u1 = 0;
+     let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x415, x412);
+-    let mut x426: u32 = 0;
+-    let mut x427: fiat_p384_scalar_u1 = 0;
+     let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x413, x410);
+-    let mut x428: u32 = 0;
+-    let mut x429: fiat_p384_scalar_u1 = 0;
+     let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x411, x408);
+-    let mut x430: u32 = 0;
+-    let mut x431: fiat_p384_scalar_u1 = 0;
+     let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x409, x406);
+-    let mut x432: u32 = 0;
+-    let mut x433: fiat_p384_scalar_u1 = 0;
+     let (x432, x433) = fiat_p384_scalar_addcarryx_u32(x431, x407, x404);
+-    let mut x434: u32 = 0;
+-    let mut x435: fiat_p384_scalar_u1 = 0;
+     let (x434, x435) = fiat_p384_scalar_addcarryx_u32(x433, x405, x402);
+-    let mut x436: u32 = 0;
+-    let mut x437: fiat_p384_scalar_u1 = 0;
+     let (x436, x437) = fiat_p384_scalar_addcarryx_u32(x435, x403, x400);
+-    let mut x438: u32 = 0;
+-    let mut x439: fiat_p384_scalar_u1 = 0;
+     let (x438, x439) = fiat_p384_scalar_addcarryx_u32(x437, x401, x398);
+-    let mut x440: u32 = 0;
+-    let mut x441: fiat_p384_scalar_u1 = 0;
+     let (x440, x441) = fiat_p384_scalar_addcarryx_u32(x439, x399, x396);
+-    let mut x442: u32 = 0;
+-    let mut x443: fiat_p384_scalar_u1 = 0;
+     let (x442, x443) = fiat_p384_scalar_addcarryx_u32(0x0, x370, x418);
+-    let mut x444: u32 = 0;
+-    let mut x445: fiat_p384_scalar_u1 = 0;
+     let (x444, x445) = fiat_p384_scalar_addcarryx_u32(x443, x372, x420);
+-    let mut x446: u32 = 0;
+-    let mut x447: fiat_p384_scalar_u1 = 0;
+     let (x446, x447) = fiat_p384_scalar_addcarryx_u32(x445, x374, x422);
+-    let mut x448: u32 = 0;
+-    let mut x449: fiat_p384_scalar_u1 = 0;
+     let (x448, x449) = fiat_p384_scalar_addcarryx_u32(x447, x376, x424);
+-    let mut x450: u32 = 0;
+-    let mut x451: fiat_p384_scalar_u1 = 0;
+     let (x450, x451) = fiat_p384_scalar_addcarryx_u32(x449, x378, x426);
+-    let mut x452: u32 = 0;
+-    let mut x453: fiat_p384_scalar_u1 = 0;
+     let (x452, x453) = fiat_p384_scalar_addcarryx_u32(x451, x380, x428);
+-    let mut x454: u32 = 0;
+-    let mut x455: fiat_p384_scalar_u1 = 0;
+     let (x454, x455) = fiat_p384_scalar_addcarryx_u32(x453, x382, x430);
+-    let mut x456: u32 = 0;
+-    let mut x457: fiat_p384_scalar_u1 = 0;
+     let (x456, x457) = fiat_p384_scalar_addcarryx_u32(x455, x384, x432);
+-    let mut x458: u32 = 0;
+-    let mut x459: fiat_p384_scalar_u1 = 0;
+     let (x458, x459) = fiat_p384_scalar_addcarryx_u32(x457, x386, x434);
+-    let mut x460: u32 = 0;
+-    let mut x461: fiat_p384_scalar_u1 = 0;
+     let (x460, x461) = fiat_p384_scalar_addcarryx_u32(x459, x388, x436);
+-    let mut x462: u32 = 0;
+-    let mut x463: fiat_p384_scalar_u1 = 0;
+     let (x462, x463) = fiat_p384_scalar_addcarryx_u32(x461, x390, x438);
+-    let mut x464: u32 = 0;
+-    let mut x465: fiat_p384_scalar_u1 = 0;
+     let (x464, x465) = fiat_p384_scalar_addcarryx_u32(x463, x392, x440);
+-    let mut x466: u32 = 0;
+-    let mut x467: fiat_p384_scalar_u1 = 0;
+     let (x466, x467) = fiat_p384_scalar_addcarryx_u32(
+         x465,
+         ((x393 as u32) + (x369 as u32)),
+         ((x441 as u32) + x397),
+     );
+-    let mut x468: u32 = 0;
+-    let mut x469: fiat_p384_scalar_u1 = 0;
+     let (x468, x469) = fiat_p384_scalar_addcarryx_u32(0x0, x444, (arg1[5]));
+-    let mut x470: u32 = 0;
+-    let mut x471: fiat_p384_scalar_u1 = 0;
+     let (x470, x471) = fiat_p384_scalar_addcarryx_u32(x469, x446, (0x0 as u32));
+-    let mut x472: u32 = 0;
+-    let mut x473: fiat_p384_scalar_u1 = 0;
+     let (x472, x473) = fiat_p384_scalar_addcarryx_u32(x471, x448, (0x0 as u32));
+-    let mut x474: u32 = 0;
+-    let mut x475: fiat_p384_scalar_u1 = 0;
+     let (x474, x475) = fiat_p384_scalar_addcarryx_u32(x473, x450, (0x0 as u32));
+-    let mut x476: u32 = 0;
+-    let mut x477: fiat_p384_scalar_u1 = 0;
+     let (x476, x477) = fiat_p384_scalar_addcarryx_u32(x475, x452, (0x0 as u32));
+-    let mut x478: u32 = 0;
+-    let mut x479: fiat_p384_scalar_u1 = 0;
+     let (x478, x479) = fiat_p384_scalar_addcarryx_u32(x477, x454, (0x0 as u32));
+-    let mut x480: u32 = 0;
+-    let mut x481: fiat_p384_scalar_u1 = 0;
+     let (x480, x481) = fiat_p384_scalar_addcarryx_u32(x479, x456, (0x0 as u32));
+-    let mut x482: u32 = 0;
+-    let mut x483: fiat_p384_scalar_u1 = 0;
+     let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x458, (0x0 as u32));
+-    let mut x484: u32 = 0;
+-    let mut x485: fiat_p384_scalar_u1 = 0;
+     let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x460, (0x0 as u32));
+-    let mut x486: u32 = 0;
+-    let mut x487: fiat_p384_scalar_u1 = 0;
+     let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x462, (0x0 as u32));
+-    let mut x488: u32 = 0;
+-    let mut x489: fiat_p384_scalar_u1 = 0;
+     let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x464, (0x0 as u32));
+-    let mut x490: u32 = 0;
+-    let mut x491: fiat_p384_scalar_u1 = 0;
+     let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x466, (0x0 as u32));
+-    let mut x492: u32 = 0;
+-    let mut x493: u32 = 0;
+     let (x492, x493) = fiat_p384_scalar_mulx_u32(x468, 0xe88fdc45);
+-    let mut x494: u32 = 0;
+-    let mut x495: u32 = 0;
+     let (x494, x495) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+-    let mut x496: u32 = 0;
+-    let mut x497: u32 = 0;
+     let (x496, x497) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+-    let mut x498: u32 = 0;
+-    let mut x499: u32 = 0;
+     let (x498, x499) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+-    let mut x500: u32 = 0;
+-    let mut x501: u32 = 0;
+     let (x500, x501) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+-    let mut x502: u32 = 0;
+-    let mut x503: u32 = 0;
+     let (x502, x503) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+-    let mut x504: u32 = 0;
+-    let mut x505: u32 = 0;
+     let (x504, x505) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+-    let mut x506: u32 = 0;
+-    let mut x507: u32 = 0;
+     let (x506, x507) = fiat_p384_scalar_mulx_u32(x492, 0xc7634d81);
+-    let mut x508: u32 = 0;
+-    let mut x509: u32 = 0;
+     let (x508, x509) = fiat_p384_scalar_mulx_u32(x492, 0xf4372ddf);
+-    let mut x510: u32 = 0;
+-    let mut x511: u32 = 0;
+     let (x510, x511) = fiat_p384_scalar_mulx_u32(x492, 0x581a0db2);
+-    let mut x512: u32 = 0;
+-    let mut x513: u32 = 0;
+     let (x512, x513) = fiat_p384_scalar_mulx_u32(x492, 0x48b0a77a);
+-    let mut x514: u32 = 0;
+-    let mut x515: u32 = 0;
+     let (x514, x515) = fiat_p384_scalar_mulx_u32(x492, 0xecec196a);
+-    let mut x516: u32 = 0;
+-    let mut x517: u32 = 0;
+     let (x516, x517) = fiat_p384_scalar_mulx_u32(x492, 0xccc52973);
+-    let mut x518: u32 = 0;
+-    let mut x519: fiat_p384_scalar_u1 = 0;
+     let (x518, x519) = fiat_p384_scalar_addcarryx_u32(0x0, x517, x514);
+-    let mut x520: u32 = 0;
+-    let mut x521: fiat_p384_scalar_u1 = 0;
+     let (x520, x521) = fiat_p384_scalar_addcarryx_u32(x519, x515, x512);
+-    let mut x522: u32 = 0;
+-    let mut x523: fiat_p384_scalar_u1 = 0;
+     let (x522, x523) = fiat_p384_scalar_addcarryx_u32(x521, x513, x510);
+-    let mut x524: u32 = 0;
+-    let mut x525: fiat_p384_scalar_u1 = 0;
+     let (x524, x525) = fiat_p384_scalar_addcarryx_u32(x523, x511, x508);
+-    let mut x526: u32 = 0;
+-    let mut x527: fiat_p384_scalar_u1 = 0;
+     let (x526, x527) = fiat_p384_scalar_addcarryx_u32(x525, x509, x506);
+-    let mut x528: u32 = 0;
+-    let mut x529: fiat_p384_scalar_u1 = 0;
+     let (x528, x529) = fiat_p384_scalar_addcarryx_u32(x527, x507, x504);
+-    let mut x530: u32 = 0;
+-    let mut x531: fiat_p384_scalar_u1 = 0;
+     let (x530, x531) = fiat_p384_scalar_addcarryx_u32(x529, x505, x502);
+-    let mut x532: u32 = 0;
+-    let mut x533: fiat_p384_scalar_u1 = 0;
+     let (x532, x533) = fiat_p384_scalar_addcarryx_u32(x531, x503, x500);
+-    let mut x534: u32 = 0;
+-    let mut x535: fiat_p384_scalar_u1 = 0;
+     let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x501, x498);
+-    let mut x536: u32 = 0;
+-    let mut x537: fiat_p384_scalar_u1 = 0;
+     let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x499, x496);
+-    let mut x538: u32 = 0;
+-    let mut x539: fiat_p384_scalar_u1 = 0;
+     let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x497, x494);
+-    let mut x540: u32 = 0;
+-    let mut x541: fiat_p384_scalar_u1 = 0;
+     let (x540, x541) = fiat_p384_scalar_addcarryx_u32(0x0, x468, x516);
+-    let mut x542: u32 = 0;
+-    let mut x543: fiat_p384_scalar_u1 = 0;
+     let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x470, x518);
+-    let mut x544: u32 = 0;
+-    let mut x545: fiat_p384_scalar_u1 = 0;
+     let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x472, x520);
+-    let mut x546: u32 = 0;
+-    let mut x547: fiat_p384_scalar_u1 = 0;
+     let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x474, x522);
+-    let mut x548: u32 = 0;
+-    let mut x549: fiat_p384_scalar_u1 = 0;
+     let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x476, x524);
+-    let mut x550: u32 = 0;
+-    let mut x551: fiat_p384_scalar_u1 = 0;
+     let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x478, x526);
+-    let mut x552: u32 = 0;
+-    let mut x553: fiat_p384_scalar_u1 = 0;
+     let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x480, x528);
+-    let mut x554: u32 = 0;
+-    let mut x555: fiat_p384_scalar_u1 = 0;
+     let (x554, x555) = fiat_p384_scalar_addcarryx_u32(x553, x482, x530);
+-    let mut x556: u32 = 0;
+-    let mut x557: fiat_p384_scalar_u1 = 0;
+     let (x556, x557) = fiat_p384_scalar_addcarryx_u32(x555, x484, x532);
+-    let mut x558: u32 = 0;
+-    let mut x559: fiat_p384_scalar_u1 = 0;
+     let (x558, x559) = fiat_p384_scalar_addcarryx_u32(x557, x486, x534);
+-    let mut x560: u32 = 0;
+-    let mut x561: fiat_p384_scalar_u1 = 0;
+     let (x560, x561) = fiat_p384_scalar_addcarryx_u32(x559, x488, x536);
+-    let mut x562: u32 = 0;
+-    let mut x563: fiat_p384_scalar_u1 = 0;
+     let (x562, x563) = fiat_p384_scalar_addcarryx_u32(x561, x490, x538);
+-    let mut x564: u32 = 0;
+-    let mut x565: fiat_p384_scalar_u1 = 0;
+     let (x564, x565) = fiat_p384_scalar_addcarryx_u32(
+         x563,
+         ((x491 as u32) + (x467 as u32)),
+         ((x539 as u32) + x495),
+     );
+-    let mut x566: u32 = 0;
+-    let mut x567: fiat_p384_scalar_u1 = 0;
+     let (x566, x567) = fiat_p384_scalar_addcarryx_u32(0x0, x542, (arg1[6]));
+-    let mut x568: u32 = 0;
+-    let mut x569: fiat_p384_scalar_u1 = 0;
+     let (x568, x569) = fiat_p384_scalar_addcarryx_u32(x567, x544, (0x0 as u32));
+-    let mut x570: u32 = 0;
+-    let mut x571: fiat_p384_scalar_u1 = 0;
+     let (x570, x571) = fiat_p384_scalar_addcarryx_u32(x569, x546, (0x0 as u32));
+-    let mut x572: u32 = 0;
+-    let mut x573: fiat_p384_scalar_u1 = 0;
+     let (x572, x573) = fiat_p384_scalar_addcarryx_u32(x571, x548, (0x0 as u32));
+-    let mut x574: u32 = 0;
+-    let mut x575: fiat_p384_scalar_u1 = 0;
+     let (x574, x575) = fiat_p384_scalar_addcarryx_u32(x573, x550, (0x0 as u32));
+-    let mut x576: u32 = 0;
+-    let mut x577: fiat_p384_scalar_u1 = 0;
+     let (x576, x577) = fiat_p384_scalar_addcarryx_u32(x575, x552, (0x0 as u32));
+-    let mut x578: u32 = 0;
+-    let mut x579: fiat_p384_scalar_u1 = 0;
+     let (x578, x579) = fiat_p384_scalar_addcarryx_u32(x577, x554, (0x0 as u32));
+-    let mut x580: u32 = 0;
+-    let mut x581: fiat_p384_scalar_u1 = 0;
+     let (x580, x581) = fiat_p384_scalar_addcarryx_u32(x579, x556, (0x0 as u32));
+-    let mut x582: u32 = 0;
+-    let mut x583: fiat_p384_scalar_u1 = 0;
+     let (x582, x583) = fiat_p384_scalar_addcarryx_u32(x581, x558, (0x0 as u32));
+-    let mut x584: u32 = 0;
+-    let mut x585: fiat_p384_scalar_u1 = 0;
+     let (x584, x585) = fiat_p384_scalar_addcarryx_u32(x583, x560, (0x0 as u32));
+-    let mut x586: u32 = 0;
+-    let mut x587: fiat_p384_scalar_u1 = 0;
+     let (x586, x587) = fiat_p384_scalar_addcarryx_u32(x585, x562, (0x0 as u32));
+-    let mut x588: u32 = 0;
+-    let mut x589: fiat_p384_scalar_u1 = 0;
+     let (x588, x589) = fiat_p384_scalar_addcarryx_u32(x587, x564, (0x0 as u32));
+-    let mut x590: u32 = 0;
+-    let mut x591: u32 = 0;
+     let (x590, x591) = fiat_p384_scalar_mulx_u32(x566, 0xe88fdc45);
+-    let mut x592: u32 = 0;
+-    let mut x593: u32 = 0;
+     let (x592, x593) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+-    let mut x594: u32 = 0;
+-    let mut x595: u32 = 0;
+     let (x594, x595) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+-    let mut x596: u32 = 0;
+-    let mut x597: u32 = 0;
+     let (x596, x597) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+-    let mut x598: u32 = 0;
+-    let mut x599: u32 = 0;
+     let (x598, x599) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+-    let mut x600: u32 = 0;
+-    let mut x601: u32 = 0;
+     let (x600, x601) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+-    let mut x602: u32 = 0;
+-    let mut x603: u32 = 0;
+     let (x602, x603) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+-    let mut x604: u32 = 0;
+-    let mut x605: u32 = 0;
+     let (x604, x605) = fiat_p384_scalar_mulx_u32(x590, 0xc7634d81);
+-    let mut x606: u32 = 0;
+-    let mut x607: u32 = 0;
+     let (x606, x607) = fiat_p384_scalar_mulx_u32(x590, 0xf4372ddf);
+-    let mut x608: u32 = 0;
+-    let mut x609: u32 = 0;
+     let (x608, x609) = fiat_p384_scalar_mulx_u32(x590, 0x581a0db2);
+-    let mut x610: u32 = 0;
+-    let mut x611: u32 = 0;
+     let (x610, x611) = fiat_p384_scalar_mulx_u32(x590, 0x48b0a77a);
+-    let mut x612: u32 = 0;
+-    let mut x613: u32 = 0;
+     let (x612, x613) = fiat_p384_scalar_mulx_u32(x590, 0xecec196a);
+-    let mut x614: u32 = 0;
+-    let mut x615: u32 = 0;
+     let (x614, x615) = fiat_p384_scalar_mulx_u32(x590, 0xccc52973);
+-    let mut x616: u32 = 0;
+-    let mut x617: fiat_p384_scalar_u1 = 0;
+     let (x616, x617) = fiat_p384_scalar_addcarryx_u32(0x0, x615, x612);
+-    let mut x618: u32 = 0;
+-    let mut x619: fiat_p384_scalar_u1 = 0;
+     let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x613, x610);
+-    let mut x620: u32 = 0;
+-    let mut x621: fiat_p384_scalar_u1 = 0;
+     let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x611, x608);
+-    let mut x622: u32 = 0;
+-    let mut x623: fiat_p384_scalar_u1 = 0;
+     let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x609, x606);
+-    let mut x624: u32 = 0;
+-    let mut x625: fiat_p384_scalar_u1 = 0;
+     let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x607, x604);
+-    let mut x626: u32 = 0;
+-    let mut x627: fiat_p384_scalar_u1 = 0;
+     let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x605, x602);
+-    let mut x628: u32 = 0;
+-    let mut x629: fiat_p384_scalar_u1 = 0;
+     let (x628, x629) = fiat_p384_scalar_addcarryx_u32(x627, x603, x600);
+-    let mut x630: u32 = 0;
+-    let mut x631: fiat_p384_scalar_u1 = 0;
+     let (x630, x631) = fiat_p384_scalar_addcarryx_u32(x629, x601, x598);
+-    let mut x632: u32 = 0;
+-    let mut x633: fiat_p384_scalar_u1 = 0;
+     let (x632, x633) = fiat_p384_scalar_addcarryx_u32(x631, x599, x596);
+-    let mut x634: u32 = 0;
+-    let mut x635: fiat_p384_scalar_u1 = 0;
+     let (x634, x635) = fiat_p384_scalar_addcarryx_u32(x633, x597, x594);
+-    let mut x636: u32 = 0;
+-    let mut x637: fiat_p384_scalar_u1 = 0;
+     let (x636, x637) = fiat_p384_scalar_addcarryx_u32(x635, x595, x592);
+-    let mut x638: u32 = 0;
+-    let mut x639: fiat_p384_scalar_u1 = 0;
+     let (x638, x639) = fiat_p384_scalar_addcarryx_u32(0x0, x566, x614);
+-    let mut x640: u32 = 0;
+-    let mut x641: fiat_p384_scalar_u1 = 0;
+     let (x640, x641) = fiat_p384_scalar_addcarryx_u32(x639, x568, x616);
+-    let mut x642: u32 = 0;
+-    let mut x643: fiat_p384_scalar_u1 = 0;
+     let (x642, x643) = fiat_p384_scalar_addcarryx_u32(x641, x570, x618);
+-    let mut x644: u32 = 0;
+-    let mut x645: fiat_p384_scalar_u1 = 0;
+     let (x644, x645) = fiat_p384_scalar_addcarryx_u32(x643, x572, x620);
+-    let mut x646: u32 = 0;
+-    let mut x647: fiat_p384_scalar_u1 = 0;
+     let (x646, x647) = fiat_p384_scalar_addcarryx_u32(x645, x574, x622);
+-    let mut x648: u32 = 0;
+-    let mut x649: fiat_p384_scalar_u1 = 0;
+     let (x648, x649) = fiat_p384_scalar_addcarryx_u32(x647, x576, x624);
+-    let mut x650: u32 = 0;
+-    let mut x651: fiat_p384_scalar_u1 = 0;
+     let (x650, x651) = fiat_p384_scalar_addcarryx_u32(x649, x578, x626);
+-    let mut x652: u32 = 0;
+-    let mut x653: fiat_p384_scalar_u1 = 0;
+     let (x652, x653) = fiat_p384_scalar_addcarryx_u32(x651, x580, x628);
+-    let mut x654: u32 = 0;
+-    let mut x655: fiat_p384_scalar_u1 = 0;
+     let (x654, x655) = fiat_p384_scalar_addcarryx_u32(x653, x582, x630);
+-    let mut x656: u32 = 0;
+-    let mut x657: fiat_p384_scalar_u1 = 0;
+     let (x656, x657) = fiat_p384_scalar_addcarryx_u32(x655, x584, x632);
+-    let mut x658: u32 = 0;
+-    let mut x659: fiat_p384_scalar_u1 = 0;
+     let (x658, x659) = fiat_p384_scalar_addcarryx_u32(x657, x586, x634);
+-    let mut x660: u32 = 0;
+-    let mut x661: fiat_p384_scalar_u1 = 0;
+     let (x660, x661) = fiat_p384_scalar_addcarryx_u32(x659, x588, x636);
+-    let mut x662: u32 = 0;
+-    let mut x663: fiat_p384_scalar_u1 = 0;
+     let (x662, x663) = fiat_p384_scalar_addcarryx_u32(
+         x661,
+         ((x589 as u32) + (x565 as u32)),
+         ((x637 as u32) + x593),
+     );
+-    let mut x664: u32 = 0;
+-    let mut x665: fiat_p384_scalar_u1 = 0;
+     let (x664, x665) = fiat_p384_scalar_addcarryx_u32(0x0, x640, (arg1[7]));
+-    let mut x666: u32 = 0;
+-    let mut x667: fiat_p384_scalar_u1 = 0;
+     let (x666, x667) = fiat_p384_scalar_addcarryx_u32(x665, x642, (0x0 as u32));
+-    let mut x668: u32 = 0;
+-    let mut x669: fiat_p384_scalar_u1 = 0;
+     let (x668, x669) = fiat_p384_scalar_addcarryx_u32(x667, x644, (0x0 as u32));
+-    let mut x670: u32 = 0;
+-    let mut x671: fiat_p384_scalar_u1 = 0;
+     let (x670, x671) = fiat_p384_scalar_addcarryx_u32(x669, x646, (0x0 as u32));
+-    let mut x672: u32 = 0;
+-    let mut x673: fiat_p384_scalar_u1 = 0;
+     let (x672, x673) = fiat_p384_scalar_addcarryx_u32(x671, x648, (0x0 as u32));
+-    let mut x674: u32 = 0;
+-    let mut x675: fiat_p384_scalar_u1 = 0;
+     let (x674, x675) = fiat_p384_scalar_addcarryx_u32(x673, x650, (0x0 as u32));
+-    let mut x676: u32 = 0;
+-    let mut x677: fiat_p384_scalar_u1 = 0;
+     let (x676, x677) = fiat_p384_scalar_addcarryx_u32(x675, x652, (0x0 as u32));
+-    let mut x678: u32 = 0;
+-    let mut x679: fiat_p384_scalar_u1 = 0;
+     let (x678, x679) = fiat_p384_scalar_addcarryx_u32(x677, x654, (0x0 as u32));
+-    let mut x680: u32 = 0;
+-    let mut x681: fiat_p384_scalar_u1 = 0;
+     let (x680, x681) = fiat_p384_scalar_addcarryx_u32(x679, x656, (0x0 as u32));
+-    let mut x682: u32 = 0;
+-    let mut x683: fiat_p384_scalar_u1 = 0;
+     let (x682, x683) = fiat_p384_scalar_addcarryx_u32(x681, x658, (0x0 as u32));
+-    let mut x684: u32 = 0;
+-    let mut x685: fiat_p384_scalar_u1 = 0;
+     let (x684, x685) = fiat_p384_scalar_addcarryx_u32(x683, x660, (0x0 as u32));
+-    let mut x686: u32 = 0;
+-    let mut x687: fiat_p384_scalar_u1 = 0;
+     let (x686, x687) = fiat_p384_scalar_addcarryx_u32(x685, x662, (0x0 as u32));
+-    let mut x688: u32 = 0;
+-    let mut x689: u32 = 0;
+     let (x688, x689) = fiat_p384_scalar_mulx_u32(x664, 0xe88fdc45);
+-    let mut x690: u32 = 0;
+-    let mut x691: u32 = 0;
+     let (x690, x691) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+-    let mut x692: u32 = 0;
+-    let mut x693: u32 = 0;
+     let (x692, x693) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+-    let mut x694: u32 = 0;
+-    let mut x695: u32 = 0;
+     let (x694, x695) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+-    let mut x696: u32 = 0;
+-    let mut x697: u32 = 0;
+     let (x696, x697) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+-    let mut x698: u32 = 0;
+-    let mut x699: u32 = 0;
+     let (x698, x699) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+-    let mut x700: u32 = 0;
+-    let mut x701: u32 = 0;
+     let (x700, x701) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+-    let mut x702: u32 = 0;
+-    let mut x703: u32 = 0;
+     let (x702, x703) = fiat_p384_scalar_mulx_u32(x688, 0xc7634d81);
+-    let mut x704: u32 = 0;
+-    let mut x705: u32 = 0;
+     let (x704, x705) = fiat_p384_scalar_mulx_u32(x688, 0xf4372ddf);
+-    let mut x706: u32 = 0;
+-    let mut x707: u32 = 0;
+     let (x706, x707) = fiat_p384_scalar_mulx_u32(x688, 0x581a0db2);
+-    let mut x708: u32 = 0;
+-    let mut x709: u32 = 0;
+     let (x708, x709) = fiat_p384_scalar_mulx_u32(x688, 0x48b0a77a);
+-    let mut x710: u32 = 0;
+-    let mut x711: u32 = 0;
+     let (x710, x711) = fiat_p384_scalar_mulx_u32(x688, 0xecec196a);
+-    let mut x712: u32 = 0;
+-    let mut x713: u32 = 0;
+     let (x712, x713) = fiat_p384_scalar_mulx_u32(x688, 0xccc52973);
+-    let mut x714: u32 = 0;
+-    let mut x715: fiat_p384_scalar_u1 = 0;
+     let (x714, x715) = fiat_p384_scalar_addcarryx_u32(0x0, x713, x710);
+-    let mut x716: u32 = 0;
+-    let mut x717: fiat_p384_scalar_u1 = 0;
+     let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x711, x708);
+-    let mut x718: u32 = 0;
+-    let mut x719: fiat_p384_scalar_u1 = 0;
+     let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x709, x706);
+-    let mut x720: u32 = 0;
+-    let mut x721: fiat_p384_scalar_u1 = 0;
+     let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x707, x704);
+-    let mut x722: u32 = 0;
+-    let mut x723: fiat_p384_scalar_u1 = 0;
+     let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x705, x702);
+-    let mut x724: u32 = 0;
+-    let mut x725: fiat_p384_scalar_u1 = 0;
+     let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x703, x700);
+-    let mut x726: u32 = 0;
+-    let mut x727: fiat_p384_scalar_u1 = 0;
+     let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x701, x698);
+-    let mut x728: u32 = 0;
+-    let mut x729: fiat_p384_scalar_u1 = 0;
+     let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x699, x696);
+-    let mut x730: u32 = 0;
+-    let mut x731: fiat_p384_scalar_u1 = 0;
+     let (x730, x731) = fiat_p384_scalar_addcarryx_u32(x729, x697, x694);
+-    let mut x732: u32 = 0;
+-    let mut x733: fiat_p384_scalar_u1 = 0;
+     let (x732, x733) = fiat_p384_scalar_addcarryx_u32(x731, x695, x692);
+-    let mut x734: u32 = 0;
+-    let mut x735: fiat_p384_scalar_u1 = 0;
+     let (x734, x735) = fiat_p384_scalar_addcarryx_u32(x733, x693, x690);
+-    let mut x736: u32 = 0;
+-    let mut x737: fiat_p384_scalar_u1 = 0;
+     let (x736, x737) = fiat_p384_scalar_addcarryx_u32(0x0, x664, x712);
+-    let mut x738: u32 = 0;
+-    let mut x739: fiat_p384_scalar_u1 = 0;
+     let (x738, x739) = fiat_p384_scalar_addcarryx_u32(x737, x666, x714);
+-    let mut x740: u32 = 0;
+-    let mut x741: fiat_p384_scalar_u1 = 0;
+     let (x740, x741) = fiat_p384_scalar_addcarryx_u32(x739, x668, x716);
+-    let mut x742: u32 = 0;
+-    let mut x743: fiat_p384_scalar_u1 = 0;
+     let (x742, x743) = fiat_p384_scalar_addcarryx_u32(x741, x670, x718);
+-    let mut x744: u32 = 0;
+-    let mut x745: fiat_p384_scalar_u1 = 0;
+     let (x744, x745) = fiat_p384_scalar_addcarryx_u32(x743, x672, x720);
+-    let mut x746: u32 = 0;
+-    let mut x747: fiat_p384_scalar_u1 = 0;
+     let (x746, x747) = fiat_p384_scalar_addcarryx_u32(x745, x674, x722);
+-    let mut x748: u32 = 0;
+-    let mut x749: fiat_p384_scalar_u1 = 0;
+     let (x748, x749) = fiat_p384_scalar_addcarryx_u32(x747, x676, x724);
+-    let mut x750: u32 = 0;
+-    let mut x751: fiat_p384_scalar_u1 = 0;
+     let (x750, x751) = fiat_p384_scalar_addcarryx_u32(x749, x678, x726);
+-    let mut x752: u32 = 0;
+-    let mut x753: fiat_p384_scalar_u1 = 0;
+     let (x752, x753) = fiat_p384_scalar_addcarryx_u32(x751, x680, x728);
+-    let mut x754: u32 = 0;
+-    let mut x755: fiat_p384_scalar_u1 = 0;
+     let (x754, x755) = fiat_p384_scalar_addcarryx_u32(x753, x682, x730);
+-    let mut x756: u32 = 0;
+-    let mut x757: fiat_p384_scalar_u1 = 0;
+     let (x756, x757) = fiat_p384_scalar_addcarryx_u32(x755, x684, x732);
+-    let mut x758: u32 = 0;
+-    let mut x759: fiat_p384_scalar_u1 = 0;
+     let (x758, x759) = fiat_p384_scalar_addcarryx_u32(x757, x686, x734);
+-    let mut x760: u32 = 0;
+-    let mut x761: fiat_p384_scalar_u1 = 0;
+     let (x760, x761) = fiat_p384_scalar_addcarryx_u32(
+         x759,
+         ((x687 as u32) + (x663 as u32)),
+         ((x735 as u32) + x691),
+     );
+-    let mut x762: u32 = 0;
+-    let mut x763: fiat_p384_scalar_u1 = 0;
+     let (x762, x763) = fiat_p384_scalar_addcarryx_u32(0x0, x738, (arg1[8]));
+-    let mut x764: u32 = 0;
+-    let mut x765: fiat_p384_scalar_u1 = 0;
+     let (x764, x765) = fiat_p384_scalar_addcarryx_u32(x763, x740, (0x0 as u32));
+-    let mut x766: u32 = 0;
+-    let mut x767: fiat_p384_scalar_u1 = 0;
+     let (x766, x767) = fiat_p384_scalar_addcarryx_u32(x765, x742, (0x0 as u32));
+-    let mut x768: u32 = 0;
+-    let mut x769: fiat_p384_scalar_u1 = 0;
+     let (x768, x769) = fiat_p384_scalar_addcarryx_u32(x767, x744, (0x0 as u32));
+-    let mut x770: u32 = 0;
+-    let mut x771: fiat_p384_scalar_u1 = 0;
+     let (x770, x771) = fiat_p384_scalar_addcarryx_u32(x769, x746, (0x0 as u32));
+-    let mut x772: u32 = 0;
+-    let mut x773: fiat_p384_scalar_u1 = 0;
+     let (x772, x773) = fiat_p384_scalar_addcarryx_u32(x771, x748, (0x0 as u32));
+-    let mut x774: u32 = 0;
+-    let mut x775: fiat_p384_scalar_u1 = 0;
+     let (x774, x775) = fiat_p384_scalar_addcarryx_u32(x773, x750, (0x0 as u32));
+-    let mut x776: u32 = 0;
+-    let mut x777: fiat_p384_scalar_u1 = 0;
+     let (x776, x777) = fiat_p384_scalar_addcarryx_u32(x775, x752, (0x0 as u32));
+-    let mut x778: u32 = 0;
+-    let mut x779: fiat_p384_scalar_u1 = 0;
+     let (x778, x779) = fiat_p384_scalar_addcarryx_u32(x777, x754, (0x0 as u32));
+-    let mut x780: u32 = 0;
+-    let mut x781: fiat_p384_scalar_u1 = 0;
+     let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x756, (0x0 as u32));
+-    let mut x782: u32 = 0;
+-    let mut x783: fiat_p384_scalar_u1 = 0;
+     let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x758, (0x0 as u32));
+-    let mut x784: u32 = 0;
+-    let mut x785: fiat_p384_scalar_u1 = 0;
+     let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x760, (0x0 as u32));
+-    let mut x786: u32 = 0;
+-    let mut x787: u32 = 0;
+     let (x786, x787) = fiat_p384_scalar_mulx_u32(x762, 0xe88fdc45);
+-    let mut x788: u32 = 0;
+-    let mut x789: u32 = 0;
+     let (x788, x789) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+-    let mut x790: u32 = 0;
+-    let mut x791: u32 = 0;
+     let (x790, x791) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+-    let mut x792: u32 = 0;
+-    let mut x793: u32 = 0;
+     let (x792, x793) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+-    let mut x794: u32 = 0;
+-    let mut x795: u32 = 0;
+     let (x794, x795) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+-    let mut x796: u32 = 0;
+-    let mut x797: u32 = 0;
+     let (x796, x797) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+-    let mut x798: u32 = 0;
+-    let mut x799: u32 = 0;
+     let (x798, x799) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+-    let mut x800: u32 = 0;
+-    let mut x801: u32 = 0;
+     let (x800, x801) = fiat_p384_scalar_mulx_u32(x786, 0xc7634d81);
+-    let mut x802: u32 = 0;
+-    let mut x803: u32 = 0;
+     let (x802, x803) = fiat_p384_scalar_mulx_u32(x786, 0xf4372ddf);
+-    let mut x804: u32 = 0;
+-    let mut x805: u32 = 0;
+     let (x804, x805) = fiat_p384_scalar_mulx_u32(x786, 0x581a0db2);
+-    let mut x806: u32 = 0;
+-    let mut x807: u32 = 0;
+     let (x806, x807) = fiat_p384_scalar_mulx_u32(x786, 0x48b0a77a);
+-    let mut x808: u32 = 0;
+-    let mut x809: u32 = 0;
+     let (x808, x809) = fiat_p384_scalar_mulx_u32(x786, 0xecec196a);
+-    let mut x810: u32 = 0;
+-    let mut x811: u32 = 0;
+     let (x810, x811) = fiat_p384_scalar_mulx_u32(x786, 0xccc52973);
+-    let mut x812: u32 = 0;
+-    let mut x813: fiat_p384_scalar_u1 = 0;
+     let (x812, x813) = fiat_p384_scalar_addcarryx_u32(0x0, x811, x808);
+-    let mut x814: u32 = 0;
+-    let mut x815: fiat_p384_scalar_u1 = 0;
+     let (x814, x815) = fiat_p384_scalar_addcarryx_u32(x813, x809, x806);
+-    let mut x816: u32 = 0;
+-    let mut x817: fiat_p384_scalar_u1 = 0;
+     let (x816, x817) = fiat_p384_scalar_addcarryx_u32(x815, x807, x804);
+-    let mut x818: u32 = 0;
+-    let mut x819: fiat_p384_scalar_u1 = 0;
+     let (x818, x819) = fiat_p384_scalar_addcarryx_u32(x817, x805, x802);
+-    let mut x820: u32 = 0;
+-    let mut x821: fiat_p384_scalar_u1 = 0;
+     let (x820, x821) = fiat_p384_scalar_addcarryx_u32(x819, x803, x800);
+-    let mut x822: u32 = 0;
+-    let mut x823: fiat_p384_scalar_u1 = 0;
+     let (x822, x823) = fiat_p384_scalar_addcarryx_u32(x821, x801, x798);
+-    let mut x824: u32 = 0;
+-    let mut x825: fiat_p384_scalar_u1 = 0;
+     let (x824, x825) = fiat_p384_scalar_addcarryx_u32(x823, x799, x796);
+-    let mut x826: u32 = 0;
+-    let mut x827: fiat_p384_scalar_u1 = 0;
+     let (x826, x827) = fiat_p384_scalar_addcarryx_u32(x825, x797, x794);
+-    let mut x828: u32 = 0;
+-    let mut x829: fiat_p384_scalar_u1 = 0;
+     let (x828, x829) = fiat_p384_scalar_addcarryx_u32(x827, x795, x792);
+-    let mut x830: u32 = 0;
+-    let mut x831: fiat_p384_scalar_u1 = 0;
+     let (x830, x831) = fiat_p384_scalar_addcarryx_u32(x829, x793, x790);
+-    let mut x832: u32 = 0;
+-    let mut x833: fiat_p384_scalar_u1 = 0;
+     let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x791, x788);
+-    let mut x834: u32 = 0;
+-    let mut x835: fiat_p384_scalar_u1 = 0;
+     let (x834, x835) = fiat_p384_scalar_addcarryx_u32(0x0, x762, x810);
+-    let mut x836: u32 = 0;
+-    let mut x837: fiat_p384_scalar_u1 = 0;
+     let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x764, x812);
+-    let mut x838: u32 = 0;
+-    let mut x839: fiat_p384_scalar_u1 = 0;
+     let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x766, x814);
+-    let mut x840: u32 = 0;
+-    let mut x841: fiat_p384_scalar_u1 = 0;
+     let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x768, x816);
+-    let mut x842: u32 = 0;
+-    let mut x843: fiat_p384_scalar_u1 = 0;
+     let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x770, x818);
+-    let mut x844: u32 = 0;
+-    let mut x845: fiat_p384_scalar_u1 = 0;
+     let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x772, x820);
+-    let mut x846: u32 = 0;
+-    let mut x847: fiat_p384_scalar_u1 = 0;
+     let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x774, x822);
+-    let mut x848: u32 = 0;
+-    let mut x849: fiat_p384_scalar_u1 = 0;
+     let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x776, x824);
+-    let mut x850: u32 = 0;
+-    let mut x851: fiat_p384_scalar_u1 = 0;
+     let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x778, x826);
+-    let mut x852: u32 = 0;
+-    let mut x853: fiat_p384_scalar_u1 = 0;
+     let (x852, x853) = fiat_p384_scalar_addcarryx_u32(x851, x780, x828);
+-    let mut x854: u32 = 0;
+-    let mut x855: fiat_p384_scalar_u1 = 0;
+     let (x854, x855) = fiat_p384_scalar_addcarryx_u32(x853, x782, x830);
+-    let mut x856: u32 = 0;
+-    let mut x857: fiat_p384_scalar_u1 = 0;
+     let (x856, x857) = fiat_p384_scalar_addcarryx_u32(x855, x784, x832);
+-    let mut x858: u32 = 0;
+-    let mut x859: fiat_p384_scalar_u1 = 0;
+     let (x858, x859) = fiat_p384_scalar_addcarryx_u32(
+         x857,
+         ((x785 as u32) + (x761 as u32)),
+         ((x833 as u32) + x789),
+     );
+-    let mut x860: u32 = 0;
+-    let mut x861: fiat_p384_scalar_u1 = 0;
+     let (x860, x861) = fiat_p384_scalar_addcarryx_u32(0x0, x836, (arg1[9]));
+-    let mut x862: u32 = 0;
+-    let mut x863: fiat_p384_scalar_u1 = 0;
+     let (x862, x863) = fiat_p384_scalar_addcarryx_u32(x861, x838, (0x0 as u32));
+-    let mut x864: u32 = 0;
+-    let mut x865: fiat_p384_scalar_u1 = 0;
+     let (x864, x865) = fiat_p384_scalar_addcarryx_u32(x863, x840, (0x0 as u32));
+-    let mut x866: u32 = 0;
+-    let mut x867: fiat_p384_scalar_u1 = 0;
+     let (x866, x867) = fiat_p384_scalar_addcarryx_u32(x865, x842, (0x0 as u32));
+-    let mut x868: u32 = 0;
+-    let mut x869: fiat_p384_scalar_u1 = 0;
+     let (x868, x869) = fiat_p384_scalar_addcarryx_u32(x867, x844, (0x0 as u32));
+-    let mut x870: u32 = 0;
+-    let mut x871: fiat_p384_scalar_u1 = 0;
+     let (x870, x871) = fiat_p384_scalar_addcarryx_u32(x869, x846, (0x0 as u32));
+-    let mut x872: u32 = 0;
+-    let mut x873: fiat_p384_scalar_u1 = 0;
+     let (x872, x873) = fiat_p384_scalar_addcarryx_u32(x871, x848, (0x0 as u32));
+-    let mut x874: u32 = 0;
+-    let mut x875: fiat_p384_scalar_u1 = 0;
+     let (x874, x875) = fiat_p384_scalar_addcarryx_u32(x873, x850, (0x0 as u32));
+-    let mut x876: u32 = 0;
+-    let mut x877: fiat_p384_scalar_u1 = 0;
+     let (x876, x877) = fiat_p384_scalar_addcarryx_u32(x875, x852, (0x0 as u32));
+-    let mut x878: u32 = 0;
+-    let mut x879: fiat_p384_scalar_u1 = 0;
+     let (x878, x879) = fiat_p384_scalar_addcarryx_u32(x877, x854, (0x0 as u32));
+-    let mut x880: u32 = 0;
+-    let mut x881: fiat_p384_scalar_u1 = 0;
+     let (x880, x881) = fiat_p384_scalar_addcarryx_u32(x879, x856, (0x0 as u32));
+-    let mut x882: u32 = 0;
+-    let mut x883: fiat_p384_scalar_u1 = 0;
+     let (x882, x883) = fiat_p384_scalar_addcarryx_u32(x881, x858, (0x0 as u32));
+-    let mut x884: u32 = 0;
+-    let mut x885: u32 = 0;
+     let (x884, x885) = fiat_p384_scalar_mulx_u32(x860, 0xe88fdc45);
+-    let mut x886: u32 = 0;
+-    let mut x887: u32 = 0;
+     let (x886, x887) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+-    let mut x888: u32 = 0;
+-    let mut x889: u32 = 0;
+     let (x888, x889) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+-    let mut x890: u32 = 0;
+-    let mut x891: u32 = 0;
+     let (x890, x891) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+-    let mut x892: u32 = 0;
+-    let mut x893: u32 = 0;
+     let (x892, x893) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+-    let mut x894: u32 = 0;
+-    let mut x895: u32 = 0;
+     let (x894, x895) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+-    let mut x896: u32 = 0;
+-    let mut x897: u32 = 0;
+     let (x896, x897) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+-    let mut x898: u32 = 0;
+-    let mut x899: u32 = 0;
+     let (x898, x899) = fiat_p384_scalar_mulx_u32(x884, 0xc7634d81);
+-    let mut x900: u32 = 0;
+-    let mut x901: u32 = 0;
+     let (x900, x901) = fiat_p384_scalar_mulx_u32(x884, 0xf4372ddf);
+-    let mut x902: u32 = 0;
+-    let mut x903: u32 = 0;
+     let (x902, x903) = fiat_p384_scalar_mulx_u32(x884, 0x581a0db2);
+-    let mut x904: u32 = 0;
+-    let mut x905: u32 = 0;
+     let (x904, x905) = fiat_p384_scalar_mulx_u32(x884, 0x48b0a77a);
+-    let mut x906: u32 = 0;
+-    let mut x907: u32 = 0;
+     let (x906, x907) = fiat_p384_scalar_mulx_u32(x884, 0xecec196a);
+-    let mut x908: u32 = 0;
+-    let mut x909: u32 = 0;
+     let (x908, x909) = fiat_p384_scalar_mulx_u32(x884, 0xccc52973);
+-    let mut x910: u32 = 0;
+-    let mut x911: fiat_p384_scalar_u1 = 0;
+     let (x910, x911) = fiat_p384_scalar_addcarryx_u32(0x0, x909, x906);
+-    let mut x912: u32 = 0;
+-    let mut x913: fiat_p384_scalar_u1 = 0;
+     let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x907, x904);
+-    let mut x914: u32 = 0;
+-    let mut x915: fiat_p384_scalar_u1 = 0;
+     let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x905, x902);
+-    let mut x916: u32 = 0;
+-    let mut x917: fiat_p384_scalar_u1 = 0;
+     let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x903, x900);
+-    let mut x918: u32 = 0;
+-    let mut x919: fiat_p384_scalar_u1 = 0;
+     let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x901, x898);
+-    let mut x920: u32 = 0;
+-    let mut x921: fiat_p384_scalar_u1 = 0;
+     let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x899, x896);
+-    let mut x922: u32 = 0;
+-    let mut x923: fiat_p384_scalar_u1 = 0;
+     let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x897, x894);
+-    let mut x924: u32 = 0;
+-    let mut x925: fiat_p384_scalar_u1 = 0;
+     let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x895, x892);
+-    let mut x926: u32 = 0;
+-    let mut x927: fiat_p384_scalar_u1 = 0;
+     let (x926, x927) = fiat_p384_scalar_addcarryx_u32(x925, x893, x890);
+-    let mut x928: u32 = 0;
+-    let mut x929: fiat_p384_scalar_u1 = 0;
+     let (x928, x929) = fiat_p384_scalar_addcarryx_u32(x927, x891, x888);
+-    let mut x930: u32 = 0;
+-    let mut x931: fiat_p384_scalar_u1 = 0;
+     let (x930, x931) = fiat_p384_scalar_addcarryx_u32(x929, x889, x886);
+-    let mut x932: u32 = 0;
+-    let mut x933: fiat_p384_scalar_u1 = 0;
+     let (x932, x933) = fiat_p384_scalar_addcarryx_u32(0x0, x860, x908);
+-    let mut x934: u32 = 0;
+-    let mut x935: fiat_p384_scalar_u1 = 0;
+     let (x934, x935) = fiat_p384_scalar_addcarryx_u32(x933, x862, x910);
+-    let mut x936: u32 = 0;
+-    let mut x937: fiat_p384_scalar_u1 = 0;
+     let (x936, x937) = fiat_p384_scalar_addcarryx_u32(x935, x864, x912);
+-    let mut x938: u32 = 0;
+-    let mut x939: fiat_p384_scalar_u1 = 0;
+     let (x938, x939) = fiat_p384_scalar_addcarryx_u32(x937, x866, x914);
+-    let mut x940: u32 = 0;
+-    let mut x941: fiat_p384_scalar_u1 = 0;
+     let (x940, x941) = fiat_p384_scalar_addcarryx_u32(x939, x868, x916);
+-    let mut x942: u32 = 0;
+-    let mut x943: fiat_p384_scalar_u1 = 0;
+     let (x942, x943) = fiat_p384_scalar_addcarryx_u32(x941, x870, x918);
+-    let mut x944: u32 = 0;
+-    let mut x945: fiat_p384_scalar_u1 = 0;
+     let (x944, x945) = fiat_p384_scalar_addcarryx_u32(x943, x872, x920);
+-    let mut x946: u32 = 0;
+-    let mut x947: fiat_p384_scalar_u1 = 0;
+     let (x946, x947) = fiat_p384_scalar_addcarryx_u32(x945, x874, x922);
+-    let mut x948: u32 = 0;
+-    let mut x949: fiat_p384_scalar_u1 = 0;
+     let (x948, x949) = fiat_p384_scalar_addcarryx_u32(x947, x876, x924);
+-    let mut x950: u32 = 0;
+-    let mut x951: fiat_p384_scalar_u1 = 0;
+     let (x950, x951) = fiat_p384_scalar_addcarryx_u32(x949, x878, x926);
+-    let mut x952: u32 = 0;
+-    let mut x953: fiat_p384_scalar_u1 = 0;
+     let (x952, x953) = fiat_p384_scalar_addcarryx_u32(x951, x880, x928);
+-    let mut x954: u32 = 0;
+-    let mut x955: fiat_p384_scalar_u1 = 0;
+     let (x954, x955) = fiat_p384_scalar_addcarryx_u32(x953, x882, x930);
+-    let mut x956: u32 = 0;
+-    let mut x957: fiat_p384_scalar_u1 = 0;
+     let (x956, x957) = fiat_p384_scalar_addcarryx_u32(
+         x955,
+         ((x883 as u32) + (x859 as u32)),
+         ((x931 as u32) + x887),
+     );
+-    let mut x958: u32 = 0;
+-    let mut x959: fiat_p384_scalar_u1 = 0;
+     let (x958, x959) = fiat_p384_scalar_addcarryx_u32(0x0, x934, (arg1[10]));
+-    let mut x960: u32 = 0;
+-    let mut x961: fiat_p384_scalar_u1 = 0;
+     let (x960, x961) = fiat_p384_scalar_addcarryx_u32(x959, x936, (0x0 as u32));
+-    let mut x962: u32 = 0;
+-    let mut x963: fiat_p384_scalar_u1 = 0;
+     let (x962, x963) = fiat_p384_scalar_addcarryx_u32(x961, x938, (0x0 as u32));
+-    let mut x964: u32 = 0;
+-    let mut x965: fiat_p384_scalar_u1 = 0;
+     let (x964, x965) = fiat_p384_scalar_addcarryx_u32(x963, x940, (0x0 as u32));
+-    let mut x966: u32 = 0;
+-    let mut x967: fiat_p384_scalar_u1 = 0;
+     let (x966, x967) = fiat_p384_scalar_addcarryx_u32(x965, x942, (0x0 as u32));
+-    let mut x968: u32 = 0;
+-    let mut x969: fiat_p384_scalar_u1 = 0;
+     let (x968, x969) = fiat_p384_scalar_addcarryx_u32(x967, x944, (0x0 as u32));
+-    let mut x970: u32 = 0;
+-    let mut x971: fiat_p384_scalar_u1 = 0;
+     let (x970, x971) = fiat_p384_scalar_addcarryx_u32(x969, x946, (0x0 as u32));
+-    let mut x972: u32 = 0;
+-    let mut x973: fiat_p384_scalar_u1 = 0;
+     let (x972, x973) = fiat_p384_scalar_addcarryx_u32(x971, x948, (0x0 as u32));
+-    let mut x974: u32 = 0;
+-    let mut x975: fiat_p384_scalar_u1 = 0;
+     let (x974, x975) = fiat_p384_scalar_addcarryx_u32(x973, x950, (0x0 as u32));
+-    let mut x976: u32 = 0;
+-    let mut x977: fiat_p384_scalar_u1 = 0;
+     let (x976, x977) = fiat_p384_scalar_addcarryx_u32(x975, x952, (0x0 as u32));
+-    let mut x978: u32 = 0;
+-    let mut x979: fiat_p384_scalar_u1 = 0;
+     let (x978, x979) = fiat_p384_scalar_addcarryx_u32(x977, x954, (0x0 as u32));
+-    let mut x980: u32 = 0;
+-    let mut x981: fiat_p384_scalar_u1 = 0;
+     let (x980, x981) = fiat_p384_scalar_addcarryx_u32(x979, x956, (0x0 as u32));
+-    let mut x982: u32 = 0;
+-    let mut x983: u32 = 0;
+     let (x982, x983) = fiat_p384_scalar_mulx_u32(x958, 0xe88fdc45);
+-    let mut x984: u32 = 0;
+-    let mut x985: u32 = 0;
+     let (x984, x985) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+-    let mut x986: u32 = 0;
+-    let mut x987: u32 = 0;
+     let (x986, x987) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+-    let mut x988: u32 = 0;
+-    let mut x989: u32 = 0;
+     let (x988, x989) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+-    let mut x990: u32 = 0;
+-    let mut x991: u32 = 0;
+     let (x990, x991) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+-    let mut x992: u32 = 0;
+-    let mut x993: u32 = 0;
+     let (x992, x993) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+-    let mut x994: u32 = 0;
+-    let mut x995: u32 = 0;
+     let (x994, x995) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+-    let mut x996: u32 = 0;
+-    let mut x997: u32 = 0;
+     let (x996, x997) = fiat_p384_scalar_mulx_u32(x982, 0xc7634d81);
+-    let mut x998: u32 = 0;
+-    let mut x999: u32 = 0;
+     let (x998, x999) = fiat_p384_scalar_mulx_u32(x982, 0xf4372ddf);
+-    let mut x1000: u32 = 0;
+-    let mut x1001: u32 = 0;
+     let (x1000, x1001) = fiat_p384_scalar_mulx_u32(x982, 0x581a0db2);
+-    let mut x1002: u32 = 0;
+-    let mut x1003: u32 = 0;
+     let (x1002, x1003) = fiat_p384_scalar_mulx_u32(x982, 0x48b0a77a);
+-    let mut x1004: u32 = 0;
+-    let mut x1005: u32 = 0;
+     let (x1004, x1005) = fiat_p384_scalar_mulx_u32(x982, 0xecec196a);
+-    let mut x1006: u32 = 0;
+-    let mut x1007: u32 = 0;
+     let (x1006, x1007) = fiat_p384_scalar_mulx_u32(x982, 0xccc52973);
+-    let mut x1008: u32 = 0;
+-    let mut x1009: fiat_p384_scalar_u1 = 0;
+     let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(0x0, x1007, x1004);
+-    let mut x1010: u32 = 0;
+-    let mut x1011: fiat_p384_scalar_u1 = 0;
+     let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x1005, x1002);
+-    let mut x1012: u32 = 0;
+-    let mut x1013: fiat_p384_scalar_u1 = 0;
+     let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x1003, x1000);
+-    let mut x1014: u32 = 0;
+-    let mut x1015: fiat_p384_scalar_u1 = 0;
+     let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x1001, x998);
+-    let mut x1016: u32 = 0;
+-    let mut x1017: fiat_p384_scalar_u1 = 0;
+     let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x999, x996);
+-    let mut x1018: u32 = 0;
+-    let mut x1019: fiat_p384_scalar_u1 = 0;
+     let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x997, x994);
+-    let mut x1020: u32 = 0;
+-    let mut x1021: fiat_p384_scalar_u1 = 0;
+     let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x995, x992);
+-    let mut x1022: u32 = 0;
+-    let mut x1023: fiat_p384_scalar_u1 = 0;
+     let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x993, x990);
+-    let mut x1024: u32 = 0;
+-    let mut x1025: fiat_p384_scalar_u1 = 0;
+     let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x991, x988);
+-    let mut x1026: u32 = 0;
+-    let mut x1027: fiat_p384_scalar_u1 = 0;
+     let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x989, x986);
+-    let mut x1028: u32 = 0;
+-    let mut x1029: fiat_p384_scalar_u1 = 0;
+     let (x1028, x1029) = fiat_p384_scalar_addcarryx_u32(x1027, x987, x984);
+-    let mut x1030: u32 = 0;
+-    let mut x1031: fiat_p384_scalar_u1 = 0;
+     let (x1030, x1031) = fiat_p384_scalar_addcarryx_u32(0x0, x958, x1006);
+-    let mut x1032: u32 = 0;
+-    let mut x1033: fiat_p384_scalar_u1 = 0;
+     let (x1032, x1033) = fiat_p384_scalar_addcarryx_u32(x1031, x960, x1008);
+-    let mut x1034: u32 = 0;
+-    let mut x1035: fiat_p384_scalar_u1 = 0;
+     let (x1034, x1035) = fiat_p384_scalar_addcarryx_u32(x1033, x962, x1010);
+-    let mut x1036: u32 = 0;
+-    let mut x1037: fiat_p384_scalar_u1 = 0;
+     let (x1036, x1037) = fiat_p384_scalar_addcarryx_u32(x1035, x964, x1012);
+-    let mut x1038: u32 = 0;
+-    let mut x1039: fiat_p384_scalar_u1 = 0;
+     let (x1038, x1039) = fiat_p384_scalar_addcarryx_u32(x1037, x966, x1014);
+-    let mut x1040: u32 = 0;
+-    let mut x1041: fiat_p384_scalar_u1 = 0;
+     let (x1040, x1041) = fiat_p384_scalar_addcarryx_u32(x1039, x968, x1016);
+-    let mut x1042: u32 = 0;
+-    let mut x1043: fiat_p384_scalar_u1 = 0;
+     let (x1042, x1043) = fiat_p384_scalar_addcarryx_u32(x1041, x970, x1018);
+-    let mut x1044: u32 = 0;
+-    let mut x1045: fiat_p384_scalar_u1 = 0;
+     let (x1044, x1045) = fiat_p384_scalar_addcarryx_u32(x1043, x972, x1020);
+-    let mut x1046: u32 = 0;
+-    let mut x1047: fiat_p384_scalar_u1 = 0;
+     let (x1046, x1047) = fiat_p384_scalar_addcarryx_u32(x1045, x974, x1022);
+-    let mut x1048: u32 = 0;
+-    let mut x1049: fiat_p384_scalar_u1 = 0;
+     let (x1048, x1049) = fiat_p384_scalar_addcarryx_u32(x1047, x976, x1024);
+-    let mut x1050: u32 = 0;
+-    let mut x1051: fiat_p384_scalar_u1 = 0;
+     let (x1050, x1051) = fiat_p384_scalar_addcarryx_u32(x1049, x978, x1026);
+-    let mut x1052: u32 = 0;
+-    let mut x1053: fiat_p384_scalar_u1 = 0;
+     let (x1052, x1053) = fiat_p384_scalar_addcarryx_u32(x1051, x980, x1028);
+-    let mut x1054: u32 = 0;
+-    let mut x1055: fiat_p384_scalar_u1 = 0;
+     let (x1054, x1055) = fiat_p384_scalar_addcarryx_u32(
+         x1053,
+         ((x981 as u32) + (x957 as u32)),
+         ((x1029 as u32) + x985),
+     );
+-    let mut x1056: u32 = 0;
+-    let mut x1057: fiat_p384_scalar_u1 = 0;
+     let (x1056, x1057) = fiat_p384_scalar_addcarryx_u32(0x0, x1032, (arg1[11]));
+-    let mut x1058: u32 = 0;
+-    let mut x1059: fiat_p384_scalar_u1 = 0;
+     let (x1058, x1059) = fiat_p384_scalar_addcarryx_u32(x1057, x1034, (0x0 as u32));
+-    let mut x1060: u32 = 0;
+-    let mut x1061: fiat_p384_scalar_u1 = 0;
+     let (x1060, x1061) = fiat_p384_scalar_addcarryx_u32(x1059, x1036, (0x0 as u32));
+-    let mut x1062: u32 = 0;
+-    let mut x1063: fiat_p384_scalar_u1 = 0;
+     let (x1062, x1063) = fiat_p384_scalar_addcarryx_u32(x1061, x1038, (0x0 as u32));
+-    let mut x1064: u32 = 0;
+-    let mut x1065: fiat_p384_scalar_u1 = 0;
+     let (x1064, x1065) = fiat_p384_scalar_addcarryx_u32(x1063, x1040, (0x0 as u32));
+-    let mut x1066: u32 = 0;
+-    let mut x1067: fiat_p384_scalar_u1 = 0;
+     let (x1066, x1067) = fiat_p384_scalar_addcarryx_u32(x1065, x1042, (0x0 as u32));
+-    let mut x1068: u32 = 0;
+-    let mut x1069: fiat_p384_scalar_u1 = 0;
+     let (x1068, x1069) = fiat_p384_scalar_addcarryx_u32(x1067, x1044, (0x0 as u32));
+-    let mut x1070: u32 = 0;
+-    let mut x1071: fiat_p384_scalar_u1 = 0;
+     let (x1070, x1071) = fiat_p384_scalar_addcarryx_u32(x1069, x1046, (0x0 as u32));
+-    let mut x1072: u32 = 0;
+-    let mut x1073: fiat_p384_scalar_u1 = 0;
+     let (x1072, x1073) = fiat_p384_scalar_addcarryx_u32(x1071, x1048, (0x0 as u32));
+-    let mut x1074: u32 = 0;
+-    let mut x1075: fiat_p384_scalar_u1 = 0;
+     let (x1074, x1075) = fiat_p384_scalar_addcarryx_u32(x1073, x1050, (0x0 as u32));
+-    let mut x1076: u32 = 0;
+-    let mut x1077: fiat_p384_scalar_u1 = 0;
+     let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(x1075, x1052, (0x0 as u32));
+-    let mut x1078: u32 = 0;
+-    let mut x1079: fiat_p384_scalar_u1 = 0;
+     let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1054, (0x0 as u32));
+-    let mut x1080: u32 = 0;
+-    let mut x1081: u32 = 0;
+     let (x1080, x1081) = fiat_p384_scalar_mulx_u32(x1056, 0xe88fdc45);
+-    let mut x1082: u32 = 0;
+-    let mut x1083: u32 = 0;
+     let (x1082, x1083) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+-    let mut x1084: u32 = 0;
+-    let mut x1085: u32 = 0;
+     let (x1084, x1085) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+-    let mut x1086: u32 = 0;
+-    let mut x1087: u32 = 0;
+     let (x1086, x1087) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+-    let mut x1088: u32 = 0;
+-    let mut x1089: u32 = 0;
+     let (x1088, x1089) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+-    let mut x1090: u32 = 0;
+-    let mut x1091: u32 = 0;
+     let (x1090, x1091) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+-    let mut x1092: u32 = 0;
+-    let mut x1093: u32 = 0;
+     let (x1092, x1093) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+-    let mut x1094: u32 = 0;
+-    let mut x1095: u32 = 0;
+     let (x1094, x1095) = fiat_p384_scalar_mulx_u32(x1080, 0xc7634d81);
+-    let mut x1096: u32 = 0;
+-    let mut x1097: u32 = 0;
+     let (x1096, x1097) = fiat_p384_scalar_mulx_u32(x1080, 0xf4372ddf);
+-    let mut x1098: u32 = 0;
+-    let mut x1099: u32 = 0;
+     let (x1098, x1099) = fiat_p384_scalar_mulx_u32(x1080, 0x581a0db2);
+-    let mut x1100: u32 = 0;
+-    let mut x1101: u32 = 0;
+     let (x1100, x1101) = fiat_p384_scalar_mulx_u32(x1080, 0x48b0a77a);
+-    let mut x1102: u32 = 0;
+-    let mut x1103: u32 = 0;
+     let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1080, 0xecec196a);
+-    let mut x1104: u32 = 0;
+-    let mut x1105: u32 = 0;
+     let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1080, 0xccc52973);
+-    let mut x1106: u32 = 0;
+-    let mut x1107: fiat_p384_scalar_u1 = 0;
+     let (x1106, x1107) = fiat_p384_scalar_addcarryx_u32(0x0, x1105, x1102);
+-    let mut x1108: u32 = 0;
+-    let mut x1109: fiat_p384_scalar_u1 = 0;
+     let (x1108, x1109) = fiat_p384_scalar_addcarryx_u32(x1107, x1103, x1100);
+-    let mut x1110: u32 = 0;
+-    let mut x1111: fiat_p384_scalar_u1 = 0;
+     let (x1110, x1111) = fiat_p384_scalar_addcarryx_u32(x1109, x1101, x1098);
+-    let mut x1112: u32 = 0;
+-    let mut x1113: fiat_p384_scalar_u1 = 0;
+     let (x1112, x1113) = fiat_p384_scalar_addcarryx_u32(x1111, x1099, x1096);
+-    let mut x1114: u32 = 0;
+-    let mut x1115: fiat_p384_scalar_u1 = 0;
+     let (x1114, x1115) = fiat_p384_scalar_addcarryx_u32(x1113, x1097, x1094);
+-    let mut x1116: u32 = 0;
+-    let mut x1117: fiat_p384_scalar_u1 = 0;
+     let (x1116, x1117) = fiat_p384_scalar_addcarryx_u32(x1115, x1095, x1092);
+-    let mut x1118: u32 = 0;
+-    let mut x1119: fiat_p384_scalar_u1 = 0;
+     let (x1118, x1119) = fiat_p384_scalar_addcarryx_u32(x1117, x1093, x1090);
+-    let mut x1120: u32 = 0;
+-    let mut x1121: fiat_p384_scalar_u1 = 0;
+     let (x1120, x1121) = fiat_p384_scalar_addcarryx_u32(x1119, x1091, x1088);
+-    let mut x1122: u32 = 0;
+-    let mut x1123: fiat_p384_scalar_u1 = 0;
+     let (x1122, x1123) = fiat_p384_scalar_addcarryx_u32(x1121, x1089, x1086);
+-    let mut x1124: u32 = 0;
+-    let mut x1125: fiat_p384_scalar_u1 = 0;
+     let (x1124, x1125) = fiat_p384_scalar_addcarryx_u32(x1123, x1087, x1084);
+-    let mut x1126: u32 = 0;
+-    let mut x1127: fiat_p384_scalar_u1 = 0;
+     let (x1126, x1127) = fiat_p384_scalar_addcarryx_u32(x1125, x1085, x1082);
+-    let mut x1128: u32 = 0;
+-    let mut x1129: fiat_p384_scalar_u1 = 0;
+     let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1056, x1104);
+-    let mut x1130: u32 = 0;
+-    let mut x1131: fiat_p384_scalar_u1 = 0;
+     let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1058, x1106);
+-    let mut x1132: u32 = 0;
+-    let mut x1133: fiat_p384_scalar_u1 = 0;
+     let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1060, x1108);
+-    let mut x1134: u32 = 0;
+-    let mut x1135: fiat_p384_scalar_u1 = 0;
+     let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1062, x1110);
+-    let mut x1136: u32 = 0;
+-    let mut x1137: fiat_p384_scalar_u1 = 0;
+     let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1064, x1112);
+-    let mut x1138: u32 = 0;
+-    let mut x1139: fiat_p384_scalar_u1 = 0;
+     let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1066, x1114);
+-    let mut x1140: u32 = 0;
+-    let mut x1141: fiat_p384_scalar_u1 = 0;
+     let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1068, x1116);
+-    let mut x1142: u32 = 0;
+-    let mut x1143: fiat_p384_scalar_u1 = 0;
+     let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1070, x1118);
+-    let mut x1144: u32 = 0;
+-    let mut x1145: fiat_p384_scalar_u1 = 0;
+     let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1072, x1120);
+-    let mut x1146: u32 = 0;
+-    let mut x1147: fiat_p384_scalar_u1 = 0;
+     let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1074, x1122);
+-    let mut x1148: u32 = 0;
+-    let mut x1149: fiat_p384_scalar_u1 = 0;
+     let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1076, x1124);
+-    let mut x1150: u32 = 0;
+-    let mut x1151: fiat_p384_scalar_u1 = 0;
+     let (x1150, x1151) = fiat_p384_scalar_addcarryx_u32(x1149, x1078, x1126);
+-    let mut x1152: u32 = 0;
+-    let mut x1153: fiat_p384_scalar_u1 = 0;
+     let (x1152, x1153) = fiat_p384_scalar_addcarryx_u32(
+         x1151,
+         ((x1079 as u32) + (x1055 as u32)),
+         ((x1127 as u32) + x1083),
+     );
+-    let mut x1154: u32 = 0;
+-    let mut x1155: fiat_p384_scalar_u1 = 0;
+     let (x1154, x1155) = fiat_p384_scalar_subborrowx_u32(0x0, x1130, 0xccc52973);
+-    let mut x1156: u32 = 0;
+-    let mut x1157: fiat_p384_scalar_u1 = 0;
+     let (x1156, x1157) = fiat_p384_scalar_subborrowx_u32(x1155, x1132, 0xecec196a);
+-    let mut x1158: u32 = 0;
+-    let mut x1159: fiat_p384_scalar_u1 = 0;
+     let (x1158, x1159) = fiat_p384_scalar_subborrowx_u32(x1157, x1134, 0x48b0a77a);
+-    let mut x1160: u32 = 0;
+-    let mut x1161: fiat_p384_scalar_u1 = 0;
+     let (x1160, x1161) = fiat_p384_scalar_subborrowx_u32(x1159, x1136, 0x581a0db2);
+-    let mut x1162: u32 = 0;
+-    let mut x1163: fiat_p384_scalar_u1 = 0;
+     let (x1162, x1163) = fiat_p384_scalar_subborrowx_u32(x1161, x1138, 0xf4372ddf);
+-    let mut x1164: u32 = 0;
+-    let mut x1165: fiat_p384_scalar_u1 = 0;
+     let (x1164, x1165) = fiat_p384_scalar_subborrowx_u32(x1163, x1140, 0xc7634d81);
+-    let mut x1166: u32 = 0;
+-    let mut x1167: fiat_p384_scalar_u1 = 0;
+     let (x1166, x1167) = fiat_p384_scalar_subborrowx_u32(x1165, x1142, 0xffffffff);
+-    let mut x1168: u32 = 0;
+-    let mut x1169: fiat_p384_scalar_u1 = 0;
+     let (x1168, x1169) = fiat_p384_scalar_subborrowx_u32(x1167, x1144, 0xffffffff);
+-    let mut x1170: u32 = 0;
+-    let mut x1171: fiat_p384_scalar_u1 = 0;
+     let (x1170, x1171) = fiat_p384_scalar_subborrowx_u32(x1169, x1146, 0xffffffff);
+-    let mut x1172: u32 = 0;
+-    let mut x1173: fiat_p384_scalar_u1 = 0;
+     let (x1172, x1173) = fiat_p384_scalar_subborrowx_u32(x1171, x1148, 0xffffffff);
+-    let mut x1174: u32 = 0;
+-    let mut x1175: fiat_p384_scalar_u1 = 0;
+     let (x1174, x1175) = fiat_p384_scalar_subborrowx_u32(x1173, x1150, 0xffffffff);
+-    let mut x1176: u32 = 0;
+-    let mut x1177: fiat_p384_scalar_u1 = 0;
+     let (x1176, x1177) = fiat_p384_scalar_subborrowx_u32(x1175, x1152, 0xffffffff);
+-    let mut x1178: u32 = 0;
+-    let mut x1179: fiat_p384_scalar_u1 = 0;
+     let (x1178, x1179) = fiat_p384_scalar_subborrowx_u32(x1177, (x1153 as u32), (0x0 as u32));
+-    let mut x1180: u32 = 0;
+     let (x1180) = fiat_p384_scalar_cmovznz_u32(x1179, x1154, x1130);
+-    let mut x1181: u32 = 0;
+     let (x1181) = fiat_p384_scalar_cmovznz_u32(x1179, x1156, x1132);
+-    let mut x1182: u32 = 0;
+     let (x1182) = fiat_p384_scalar_cmovznz_u32(x1179, x1158, x1134);
+-    let mut x1183: u32 = 0;
+     let (x1183) = fiat_p384_scalar_cmovznz_u32(x1179, x1160, x1136);
+-    let mut x1184: u32 = 0;
+     let (x1184) = fiat_p384_scalar_cmovznz_u32(x1179, x1162, x1138);
+-    let mut x1185: u32 = 0;
+     let (x1185) = fiat_p384_scalar_cmovznz_u32(x1179, x1164, x1140);
+-    let mut x1186: u32 = 0;
+     let (x1186) = fiat_p384_scalar_cmovznz_u32(x1179, x1166, x1142);
+-    let mut x1187: u32 = 0;
+     let (x1187) = fiat_p384_scalar_cmovznz_u32(x1179, x1168, x1144);
+-    let mut x1188: u32 = 0;
+     let (x1188) = fiat_p384_scalar_cmovznz_u32(x1179, x1170, x1146);
+-    let mut x1189: u32 = 0;
+     let (x1189) = fiat_p384_scalar_cmovznz_u32(x1179, x1172, x1148);
+-    let mut x1190: u32 = 0;
+     let (x1190) = fiat_p384_scalar_cmovznz_u32(x1179, x1174, x1150);
+-    let mut x1191: u32 = 0;
+     let (x1191) = fiat_p384_scalar_cmovznz_u32(x1179, x1176, x1152);
+     out1[0] = x1180;
+     out1[1] = x1181;
+@@ -7805,2669 +2927,927 @@ pub const fn fiat_p384_scalar_to_montgomery(
+     let x10: u32 = (arg1[10]);
+     let x11: u32 = (arg1[11]);
+     let x12: u32 = (arg1[0]);
+-    let mut x13: u32 = 0;
+-    let mut x14: u32 = 0;
+     let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, 0xc84ee01);
+-    let mut x15: u32 = 0;
+-    let mut x16: u32 = 0;
+     let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, 0x2b39bf21);
+-    let mut x17: u32 = 0;
+-    let mut x18: u32 = 0;
+     let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, 0x3fb05b7a);
+-    let mut x19: u32 = 0;
+-    let mut x20: u32 = 0;
+     let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, 0x28266895);
+-    let mut x21: u32 = 0;
+-    let mut x22: u32 = 0;
+     let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, 0xd40d4917);
+-    let mut x23: u32 = 0;
+-    let mut x24: u32 = 0;
+     let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, 0x4aab1cc5);
+-    let mut x25: u32 = 0;
+-    let mut x26: u32 = 0;
+     let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, 0xbc3e483a);
+-    let mut x27: u32 = 0;
+-    let mut x28: u32 = 0;
+     let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, 0xfcb82947);
+-    let mut x29: u32 = 0;
+-    let mut x30: u32 = 0;
+     let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, 0xff3d81e5);
+-    let mut x31: u32 = 0;
+-    let mut x32: u32 = 0;
+     let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, 0xdf1aa419);
+-    let mut x33: u32 = 0;
+-    let mut x34: u32 = 0;
+     let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, 0x2d319b24);
+-    let mut x35: u32 = 0;
+-    let mut x36: u32 = 0;
+     let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, 0x19b409a9);
+-    let mut x37: u32 = 0;
+-    let mut x38: fiat_p384_scalar_u1 = 0;
+     let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
+-    let mut x39: u32 = 0;
+-    let mut x40: fiat_p384_scalar_u1 = 0;
+     let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
+-    let mut x41: u32 = 0;
+-    let mut x42: fiat_p384_scalar_u1 = 0;
+     let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
+-    let mut x43: u32 = 0;
+-    let mut x44: fiat_p384_scalar_u1 = 0;
+     let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
+-    let mut x45: u32 = 0;
+-    let mut x46: fiat_p384_scalar_u1 = 0;
+     let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
+-    let mut x47: u32 = 0;
+-    let mut x48: fiat_p384_scalar_u1 = 0;
+     let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
+-    let mut x49: u32 = 0;
+-    let mut x50: fiat_p384_scalar_u1 = 0;
+     let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
+-    let mut x51: u32 = 0;
+-    let mut x52: fiat_p384_scalar_u1 = 0;
+     let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
+-    let mut x53: u32 = 0;
+-    let mut x54: fiat_p384_scalar_u1 = 0;
+     let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
+-    let mut x55: u32 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
+-    let mut x57: u32 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
+-    let mut x59: u32 = 0;
+-    let mut x60: u32 = 0;
+     let (x59, x60) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
+-    let mut x61: u32 = 0;
+-    let mut x62: u32 = 0;
+     let (x61, x62) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+-    let mut x63: u32 = 0;
+-    let mut x64: u32 = 0;
+     let (x63, x64) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+-    let mut x65: u32 = 0;
+-    let mut x66: u32 = 0;
+     let (x65, x66) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+-    let mut x67: u32 = 0;
+-    let mut x68: u32 = 0;
+     let (x67, x68) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+-    let mut x69: u32 = 0;
+-    let mut x70: u32 = 0;
+     let (x69, x70) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+-    let mut x71: u32 = 0;
+-    let mut x72: u32 = 0;
+     let (x71, x72) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+-    let mut x73: u32 = 0;
+-    let mut x74: u32 = 0;
+     let (x73, x74) = fiat_p384_scalar_mulx_u32(x59, 0xc7634d81);
+-    let mut x75: u32 = 0;
+-    let mut x76: u32 = 0;
+     let (x75, x76) = fiat_p384_scalar_mulx_u32(x59, 0xf4372ddf);
+-    let mut x77: u32 = 0;
+-    let mut x78: u32 = 0;
+     let (x77, x78) = fiat_p384_scalar_mulx_u32(x59, 0x581a0db2);
+-    let mut x79: u32 = 0;
+-    let mut x80: u32 = 0;
+     let (x79, x80) = fiat_p384_scalar_mulx_u32(x59, 0x48b0a77a);
+-    let mut x81: u32 = 0;
+-    let mut x82: u32 = 0;
+     let (x81, x82) = fiat_p384_scalar_mulx_u32(x59, 0xecec196a);
+-    let mut x83: u32 = 0;
+-    let mut x84: u32 = 0;
+     let (x83, x84) = fiat_p384_scalar_mulx_u32(x59, 0xccc52973);
+-    let mut x85: u32 = 0;
+-    let mut x86: fiat_p384_scalar_u1 = 0;
+     let (x85, x86) = fiat_p384_scalar_addcarryx_u32(0x0, x84, x81);
+-    let mut x87: u32 = 0;
+-    let mut x88: fiat_p384_scalar_u1 = 0;
+     let (x87, x88) = fiat_p384_scalar_addcarryx_u32(x86, x82, x79);
+-    let mut x89: u32 = 0;
+-    let mut x90: fiat_p384_scalar_u1 = 0;
+     let (x89, x90) = fiat_p384_scalar_addcarryx_u32(x88, x80, x77);
+-    let mut x91: u32 = 0;
+-    let mut x92: fiat_p384_scalar_u1 = 0;
+     let (x91, x92) = fiat_p384_scalar_addcarryx_u32(x90, x78, x75);
+-    let mut x93: u32 = 0;
+-    let mut x94: fiat_p384_scalar_u1 = 0;
+     let (x93, x94) = fiat_p384_scalar_addcarryx_u32(x92, x76, x73);
+-    let mut x95: u32 = 0;
+-    let mut x96: fiat_p384_scalar_u1 = 0;
+     let (x95, x96) = fiat_p384_scalar_addcarryx_u32(x94, x74, x71);
+-    let mut x97: u32 = 0;
+-    let mut x98: fiat_p384_scalar_u1 = 0;
+     let (x97, x98) = fiat_p384_scalar_addcarryx_u32(x96, x72, x69);
+-    let mut x99: u32 = 0;
+-    let mut x100: fiat_p384_scalar_u1 = 0;
+     let (x99, x100) = fiat_p384_scalar_addcarryx_u32(x98, x70, x67);
+-    let mut x101: u32 = 0;
+-    let mut x102: fiat_p384_scalar_u1 = 0;
+     let (x101, x102) = fiat_p384_scalar_addcarryx_u32(x100, x68, x65);
+-    let mut x103: u32 = 0;
+-    let mut x104: fiat_p384_scalar_u1 = 0;
+     let (x103, x104) = fiat_p384_scalar_addcarryx_u32(x102, x66, x63);
+-    let mut x105: u32 = 0;
+-    let mut x106: fiat_p384_scalar_u1 = 0;
+     let (x105, x106) = fiat_p384_scalar_addcarryx_u32(x104, x64, x61);
+-    let mut x107: u32 = 0;
+-    let mut x108: fiat_p384_scalar_u1 = 0;
+     let (x107, x108) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x83);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_scalar_u1 = 0;
+     let (x109, x110) = fiat_p384_scalar_addcarryx_u32(x108, x37, x85);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_scalar_u1 = 0;
+     let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x39, x87);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_scalar_u1 = 0;
+     let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x41, x89);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_scalar_u1 = 0;
+     let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x43, x91);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_scalar_u1 = 0;
+     let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x45, x93);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_scalar_u1 = 0;
+     let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x47, x95);
+-    let mut x121: u32 = 0;
+-    let mut x122: fiat_p384_scalar_u1 = 0;
+     let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x49, x97);
+-    let mut x123: u32 = 0;
+-    let mut x124: fiat_p384_scalar_u1 = 0;
+     let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x51, x99);
+-    let mut x125: u32 = 0;
+-    let mut x126: fiat_p384_scalar_u1 = 0;
+     let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x53, x101);
+-    let mut x127: u32 = 0;
+-    let mut x128: fiat_p384_scalar_u1 = 0;
+     let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x55, x103);
+-    let mut x129: u32 = 0;
+-    let mut x130: fiat_p384_scalar_u1 = 0;
+     let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x57, x105);
+-    let mut x131: u32 = 0;
+-    let mut x132: fiat_p384_scalar_u1 = 0;
+     let (x131, x132) =
+         fiat_p384_scalar_addcarryx_u32(x130, ((x58 as u32) + x14), ((x106 as u32) + x62));
+-    let mut x133: u32 = 0;
+-    let mut x134: u32 = 0;
+     let (x133, x134) = fiat_p384_scalar_mulx_u32(x1, 0xc84ee01);
+-    let mut x135: u32 = 0;
+-    let mut x136: u32 = 0;
+     let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, 0x2b39bf21);
+-    let mut x137: u32 = 0;
+-    let mut x138: u32 = 0;
+     let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, 0x3fb05b7a);
+-    let mut x139: u32 = 0;
+-    let mut x140: u32 = 0;
+     let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, 0x28266895);
+-    let mut x141: u32 = 0;
+-    let mut x142: u32 = 0;
+     let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, 0xd40d4917);
+-    let mut x143: u32 = 0;
+-    let mut x144: u32 = 0;
+     let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, 0x4aab1cc5);
+-    let mut x145: u32 = 0;
+-    let mut x146: u32 = 0;
+     let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, 0xbc3e483a);
+-    let mut x147: u32 = 0;
+-    let mut x148: u32 = 0;
+     let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, 0xfcb82947);
+-    let mut x149: u32 = 0;
+-    let mut x150: u32 = 0;
+     let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, 0xff3d81e5);
+-    let mut x151: u32 = 0;
+-    let mut x152: u32 = 0;
+     let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, 0xdf1aa419);
+-    let mut x153: u32 = 0;
+-    let mut x154: u32 = 0;
+     let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, 0x2d319b24);
+-    let mut x155: u32 = 0;
+-    let mut x156: u32 = 0;
+     let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, 0x19b409a9);
+-    let mut x157: u32 = 0;
+-    let mut x158: fiat_p384_scalar_u1 = 0;
+     let (x157, x158) = fiat_p384_scalar_addcarryx_u32(0x0, x156, x153);
+-    let mut x159: u32 = 0;
+-    let mut x160: fiat_p384_scalar_u1 = 0;
+     let (x159, x160) = fiat_p384_scalar_addcarryx_u32(x158, x154, x151);
+-    let mut x161: u32 = 0;
+-    let mut x162: fiat_p384_scalar_u1 = 0;
+     let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x152, x149);
+-    let mut x163: u32 = 0;
+-    let mut x164: fiat_p384_scalar_u1 = 0;
+     let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x150, x147);
+-    let mut x165: u32 = 0;
+-    let mut x166: fiat_p384_scalar_u1 = 0;
+     let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x148, x145);
+-    let mut x167: u32 = 0;
+-    let mut x168: fiat_p384_scalar_u1 = 0;
+     let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x146, x143);
+-    let mut x169: u32 = 0;
+-    let mut x170: fiat_p384_scalar_u1 = 0;
+     let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x144, x141);
+-    let mut x171: u32 = 0;
+-    let mut x172: fiat_p384_scalar_u1 = 0;
+     let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x142, x139);
+-    let mut x173: u32 = 0;
+-    let mut x174: fiat_p384_scalar_u1 = 0;
+     let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x140, x137);
+-    let mut x175: u32 = 0;
+-    let mut x176: fiat_p384_scalar_u1 = 0;
+     let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x138, x135);
+-    let mut x177: u32 = 0;
+-    let mut x178: fiat_p384_scalar_u1 = 0;
+     let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x136, x133);
+-    let mut x179: u32 = 0;
+-    let mut x180: fiat_p384_scalar_u1 = 0;
+     let (x179, x180) = fiat_p384_scalar_addcarryx_u32(0x0, x109, x155);
+-    let mut x181: u32 = 0;
+-    let mut x182: fiat_p384_scalar_u1 = 0;
+     let (x181, x182) = fiat_p384_scalar_addcarryx_u32(x180, x111, x157);
+-    let mut x183: u32 = 0;
+-    let mut x184: fiat_p384_scalar_u1 = 0;
+     let (x183, x184) = fiat_p384_scalar_addcarryx_u32(x182, x113, x159);
+-    let mut x185: u32 = 0;
+-    let mut x186: fiat_p384_scalar_u1 = 0;
+     let (x185, x186) = fiat_p384_scalar_addcarryx_u32(x184, x115, x161);
+-    let mut x187: u32 = 0;
+-    let mut x188: fiat_p384_scalar_u1 = 0;
+     let (x187, x188) = fiat_p384_scalar_addcarryx_u32(x186, x117, x163);
+-    let mut x189: u32 = 0;
+-    let mut x190: fiat_p384_scalar_u1 = 0;
+     let (x189, x190) = fiat_p384_scalar_addcarryx_u32(x188, x119, x165);
+-    let mut x191: u32 = 0;
+-    let mut x192: fiat_p384_scalar_u1 = 0;
+     let (x191, x192) = fiat_p384_scalar_addcarryx_u32(x190, x121, x167);
+-    let mut x193: u32 = 0;
+-    let mut x194: fiat_p384_scalar_u1 = 0;
+     let (x193, x194) = fiat_p384_scalar_addcarryx_u32(x192, x123, x169);
+-    let mut x195: u32 = 0;
+-    let mut x196: fiat_p384_scalar_u1 = 0;
+     let (x195, x196) = fiat_p384_scalar_addcarryx_u32(x194, x125, x171);
+-    let mut x197: u32 = 0;
+-    let mut x198: fiat_p384_scalar_u1 = 0;
+     let (x197, x198) = fiat_p384_scalar_addcarryx_u32(x196, x127, x173);
+-    let mut x199: u32 = 0;
+-    let mut x200: fiat_p384_scalar_u1 = 0;
+     let (x199, x200) = fiat_p384_scalar_addcarryx_u32(x198, x129, x175);
+-    let mut x201: u32 = 0;
+-    let mut x202: fiat_p384_scalar_u1 = 0;
+     let (x201, x202) = fiat_p384_scalar_addcarryx_u32(x200, x131, x177);
+-    let mut x203: u32 = 0;
+-    let mut x204: u32 = 0;
+     let (x203, x204) = fiat_p384_scalar_mulx_u32(x179, 0xe88fdc45);
+-    let mut x205: u32 = 0;
+-    let mut x206: u32 = 0;
+     let (x205, x206) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+-    let mut x207: u32 = 0;
+-    let mut x208: u32 = 0;
+     let (x207, x208) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+-    let mut x209: u32 = 0;
+-    let mut x210: u32 = 0;
+     let (x209, x210) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+-    let mut x211: u32 = 0;
+-    let mut x212: u32 = 0;
+     let (x211, x212) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+-    let mut x213: u32 = 0;
+-    let mut x214: u32 = 0;
+     let (x213, x214) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+-    let mut x215: u32 = 0;
+-    let mut x216: u32 = 0;
+     let (x215, x216) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+-    let mut x217: u32 = 0;
+-    let mut x218: u32 = 0;
+     let (x217, x218) = fiat_p384_scalar_mulx_u32(x203, 0xc7634d81);
+-    let mut x219: u32 = 0;
+-    let mut x220: u32 = 0;
+     let (x219, x220) = fiat_p384_scalar_mulx_u32(x203, 0xf4372ddf);
+-    let mut x221: u32 = 0;
+-    let mut x222: u32 = 0;
+     let (x221, x222) = fiat_p384_scalar_mulx_u32(x203, 0x581a0db2);
+-    let mut x223: u32 = 0;
+-    let mut x224: u32 = 0;
+     let (x223, x224) = fiat_p384_scalar_mulx_u32(x203, 0x48b0a77a);
+-    let mut x225: u32 = 0;
+-    let mut x226: u32 = 0;
+     let (x225, x226) = fiat_p384_scalar_mulx_u32(x203, 0xecec196a);
+-    let mut x227: u32 = 0;
+-    let mut x228: u32 = 0;
+     let (x227, x228) = fiat_p384_scalar_mulx_u32(x203, 0xccc52973);
+-    let mut x229: u32 = 0;
+-    let mut x230: fiat_p384_scalar_u1 = 0;
+     let (x229, x230) = fiat_p384_scalar_addcarryx_u32(0x0, x228, x225);
+-    let mut x231: u32 = 0;
+-    let mut x232: fiat_p384_scalar_u1 = 0;
+     let (x231, x232) = fiat_p384_scalar_addcarryx_u32(x230, x226, x223);
+-    let mut x233: u32 = 0;
+-    let mut x234: fiat_p384_scalar_u1 = 0;
+     let (x233, x234) = fiat_p384_scalar_addcarryx_u32(x232, x224, x221);
+-    let mut x235: u32 = 0;
+-    let mut x236: fiat_p384_scalar_u1 = 0;
+     let (x235, x236) = fiat_p384_scalar_addcarryx_u32(x234, x222, x219);
+-    let mut x237: u32 = 0;
+-    let mut x238: fiat_p384_scalar_u1 = 0;
+     let (x237, x238) = fiat_p384_scalar_addcarryx_u32(x236, x220, x217);
+-    let mut x239: u32 = 0;
+-    let mut x240: fiat_p384_scalar_u1 = 0;
+     let (x239, x240) = fiat_p384_scalar_addcarryx_u32(x238, x218, x215);
+-    let mut x241: u32 = 0;
+-    let mut x242: fiat_p384_scalar_u1 = 0;
+     let (x241, x242) = fiat_p384_scalar_addcarryx_u32(x240, x216, x213);
+-    let mut x243: u32 = 0;
+-    let mut x244: fiat_p384_scalar_u1 = 0;
+     let (x243, x244) = fiat_p384_scalar_addcarryx_u32(x242, x214, x211);
+-    let mut x245: u32 = 0;
+-    let mut x246: fiat_p384_scalar_u1 = 0;
+     let (x245, x246) = fiat_p384_scalar_addcarryx_u32(x244, x212, x209);
+-    let mut x247: u32 = 0;
+-    let mut x248: fiat_p384_scalar_u1 = 0;
+     let (x247, x248) = fiat_p384_scalar_addcarryx_u32(x246, x210, x207);
+-    let mut x249: u32 = 0;
+-    let mut x250: fiat_p384_scalar_u1 = 0;
+     let (x249, x250) = fiat_p384_scalar_addcarryx_u32(x248, x208, x205);
+-    let mut x251: u32 = 0;
+-    let mut x252: fiat_p384_scalar_u1 = 0;
+     let (x251, x252) = fiat_p384_scalar_addcarryx_u32(0x0, x179, x227);
+-    let mut x253: u32 = 0;
+-    let mut x254: fiat_p384_scalar_u1 = 0;
+     let (x253, x254) = fiat_p384_scalar_addcarryx_u32(x252, x181, x229);
+-    let mut x255: u32 = 0;
+-    let mut x256: fiat_p384_scalar_u1 = 0;
+     let (x255, x256) = fiat_p384_scalar_addcarryx_u32(x254, x183, x231);
+-    let mut x257: u32 = 0;
+-    let mut x258: fiat_p384_scalar_u1 = 0;
+     let (x257, x258) = fiat_p384_scalar_addcarryx_u32(x256, x185, x233);
+-    let mut x259: u32 = 0;
+-    let mut x260: fiat_p384_scalar_u1 = 0;
+     let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x187, x235);
+-    let mut x261: u32 = 0;
+-    let mut x262: fiat_p384_scalar_u1 = 0;
+     let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x189, x237);
+-    let mut x263: u32 = 0;
+-    let mut x264: fiat_p384_scalar_u1 = 0;
+     let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x191, x239);
+-    let mut x265: u32 = 0;
+-    let mut x266: fiat_p384_scalar_u1 = 0;
+     let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x193, x241);
+-    let mut x267: u32 = 0;
+-    let mut x268: fiat_p384_scalar_u1 = 0;
+     let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x195, x243);
+-    let mut x269: u32 = 0;
+-    let mut x270: fiat_p384_scalar_u1 = 0;
+     let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x197, x245);
+-    let mut x271: u32 = 0;
+-    let mut x272: fiat_p384_scalar_u1 = 0;
+     let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x199, x247);
+-    let mut x273: u32 = 0;
+-    let mut x274: fiat_p384_scalar_u1 = 0;
+     let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x201, x249);
+-    let mut x275: u32 = 0;
+-    let mut x276: fiat_p384_scalar_u1 = 0;
+     let (x275, x276) = fiat_p384_scalar_addcarryx_u32(
+         x274,
+         (((x202 as u32) + (x132 as u32)) + ((x178 as u32) + x134)),
+         ((x250 as u32) + x206),
+     );
+-    let mut x277: u32 = 0;
+-    let mut x278: u32 = 0;
+     let (x277, x278) = fiat_p384_scalar_mulx_u32(x2, 0xc84ee01);
+-    let mut x279: u32 = 0;
+-    let mut x280: u32 = 0;
+     let (x279, x280) = fiat_p384_scalar_mulx_u32(x2, 0x2b39bf21);
+-    let mut x281: u32 = 0;
+-    let mut x282: u32 = 0;
+     let (x281, x282) = fiat_p384_scalar_mulx_u32(x2, 0x3fb05b7a);
+-    let mut x283: u32 = 0;
+-    let mut x284: u32 = 0;
+     let (x283, x284) = fiat_p384_scalar_mulx_u32(x2, 0x28266895);
+-    let mut x285: u32 = 0;
+-    let mut x286: u32 = 0;
+     let (x285, x286) = fiat_p384_scalar_mulx_u32(x2, 0xd40d4917);
+-    let mut x287: u32 = 0;
+-    let mut x288: u32 = 0;
+     let (x287, x288) = fiat_p384_scalar_mulx_u32(x2, 0x4aab1cc5);
+-    let mut x289: u32 = 0;
+-    let mut x290: u32 = 0;
+     let (x289, x290) = fiat_p384_scalar_mulx_u32(x2, 0xbc3e483a);
+-    let mut x291: u32 = 0;
+-    let mut x292: u32 = 0;
+     let (x291, x292) = fiat_p384_scalar_mulx_u32(x2, 0xfcb82947);
+-    let mut x293: u32 = 0;
+-    let mut x294: u32 = 0;
+     let (x293, x294) = fiat_p384_scalar_mulx_u32(x2, 0xff3d81e5);
+-    let mut x295: u32 = 0;
+-    let mut x296: u32 = 0;
+     let (x295, x296) = fiat_p384_scalar_mulx_u32(x2, 0xdf1aa419);
+-    let mut x297: u32 = 0;
+-    let mut x298: u32 = 0;
+     let (x297, x298) = fiat_p384_scalar_mulx_u32(x2, 0x2d319b24);
+-    let mut x299: u32 = 0;
+-    let mut x300: u32 = 0;
+     let (x299, x300) = fiat_p384_scalar_mulx_u32(x2, 0x19b409a9);
+-    let mut x301: u32 = 0;
+-    let mut x302: fiat_p384_scalar_u1 = 0;
+     let (x301, x302) = fiat_p384_scalar_addcarryx_u32(0x0, x300, x297);
+-    let mut x303: u32 = 0;
+-    let mut x304: fiat_p384_scalar_u1 = 0;
+     let (x303, x304) = fiat_p384_scalar_addcarryx_u32(x302, x298, x295);
+-    let mut x305: u32 = 0;
+-    let mut x306: fiat_p384_scalar_u1 = 0;
+     let (x305, x306) = fiat_p384_scalar_addcarryx_u32(x304, x296, x293);
+-    let mut x307: u32 = 0;
+-    let mut x308: fiat_p384_scalar_u1 = 0;
+     let (x307, x308) = fiat_p384_scalar_addcarryx_u32(x306, x294, x291);
+-    let mut x309: u32 = 0;
+-    let mut x310: fiat_p384_scalar_u1 = 0;
+     let (x309, x310) = fiat_p384_scalar_addcarryx_u32(x308, x292, x289);
+-    let mut x311: u32 = 0;
+-    let mut x312: fiat_p384_scalar_u1 = 0;
+     let (x311, x312) = fiat_p384_scalar_addcarryx_u32(x310, x290, x287);
+-    let mut x313: u32 = 0;
+-    let mut x314: fiat_p384_scalar_u1 = 0;
+     let (x313, x314) = fiat_p384_scalar_addcarryx_u32(x312, x288, x285);
+-    let mut x315: u32 = 0;
+-    let mut x316: fiat_p384_scalar_u1 = 0;
+     let (x315, x316) = fiat_p384_scalar_addcarryx_u32(x314, x286, x283);
+-    let mut x317: u32 = 0;
+-    let mut x318: fiat_p384_scalar_u1 = 0;
+     let (x317, x318) = fiat_p384_scalar_addcarryx_u32(x316, x284, x281);
+-    let mut x319: u32 = 0;
+-    let mut x320: fiat_p384_scalar_u1 = 0;
+     let (x319, x320) = fiat_p384_scalar_addcarryx_u32(x318, x282, x279);
+-    let mut x321: u32 = 0;
+-    let mut x322: fiat_p384_scalar_u1 = 0;
+     let (x321, x322) = fiat_p384_scalar_addcarryx_u32(x320, x280, x277);
+-    let mut x323: u32 = 0;
+-    let mut x324: fiat_p384_scalar_u1 = 0;
+     let (x323, x324) = fiat_p384_scalar_addcarryx_u32(0x0, x253, x299);
+-    let mut x325: u32 = 0;
+-    let mut x326: fiat_p384_scalar_u1 = 0;
+     let (x325, x326) = fiat_p384_scalar_addcarryx_u32(x324, x255, x301);
+-    let mut x327: u32 = 0;
+-    let mut x328: fiat_p384_scalar_u1 = 0;
+     let (x327, x328) = fiat_p384_scalar_addcarryx_u32(x326, x257, x303);
+-    let mut x329: u32 = 0;
+-    let mut x330: fiat_p384_scalar_u1 = 0;
+     let (x329, x330) = fiat_p384_scalar_addcarryx_u32(x328, x259, x305);
+-    let mut x331: u32 = 0;
+-    let mut x332: fiat_p384_scalar_u1 = 0;
+     let (x331, x332) = fiat_p384_scalar_addcarryx_u32(x330, x261, x307);
+-    let mut x333: u32 = 0;
+-    let mut x334: fiat_p384_scalar_u1 = 0;
+     let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x263, x309);
+-    let mut x335: u32 = 0;
+-    let mut x336: fiat_p384_scalar_u1 = 0;
+     let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x265, x311);
+-    let mut x337: u32 = 0;
+-    let mut x338: fiat_p384_scalar_u1 = 0;
+     let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x267, x313);
+-    let mut x339: u32 = 0;
+-    let mut x340: fiat_p384_scalar_u1 = 0;
+     let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x269, x315);
+-    let mut x341: u32 = 0;
+-    let mut x342: fiat_p384_scalar_u1 = 0;
+     let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x271, x317);
+-    let mut x343: u32 = 0;
+-    let mut x344: fiat_p384_scalar_u1 = 0;
+     let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x273, x319);
+-    let mut x345: u32 = 0;
+-    let mut x346: fiat_p384_scalar_u1 = 0;
+     let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x275, x321);
+-    let mut x347: u32 = 0;
+-    let mut x348: u32 = 0;
+     let (x347, x348) = fiat_p384_scalar_mulx_u32(x323, 0xe88fdc45);
+-    let mut x349: u32 = 0;
+-    let mut x350: u32 = 0;
+     let (x349, x350) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+-    let mut x351: u32 = 0;
+-    let mut x352: u32 = 0;
+     let (x351, x352) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+-    let mut x353: u32 = 0;
+-    let mut x354: u32 = 0;
+     let (x353, x354) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+-    let mut x355: u32 = 0;
+-    let mut x356: u32 = 0;
+     let (x355, x356) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+-    let mut x357: u32 = 0;
+-    let mut x358: u32 = 0;
+     let (x357, x358) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+-    let mut x359: u32 = 0;
+-    let mut x360: u32 = 0;
+     let (x359, x360) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+-    let mut x361: u32 = 0;
+-    let mut x362: u32 = 0;
+     let (x361, x362) = fiat_p384_scalar_mulx_u32(x347, 0xc7634d81);
+-    let mut x363: u32 = 0;
+-    let mut x364: u32 = 0;
+     let (x363, x364) = fiat_p384_scalar_mulx_u32(x347, 0xf4372ddf);
+-    let mut x365: u32 = 0;
+-    let mut x366: u32 = 0;
+     let (x365, x366) = fiat_p384_scalar_mulx_u32(x347, 0x581a0db2);
+-    let mut x367: u32 = 0;
+-    let mut x368: u32 = 0;
+     let (x367, x368) = fiat_p384_scalar_mulx_u32(x347, 0x48b0a77a);
+-    let mut x369: u32 = 0;
+-    let mut x370: u32 = 0;
+     let (x369, x370) = fiat_p384_scalar_mulx_u32(x347, 0xecec196a);
+-    let mut x371: u32 = 0;
+-    let mut x372: u32 = 0;
+     let (x371, x372) = fiat_p384_scalar_mulx_u32(x347, 0xccc52973);
+-    let mut x373: u32 = 0;
+-    let mut x374: fiat_p384_scalar_u1 = 0;
+     let (x373, x374) = fiat_p384_scalar_addcarryx_u32(0x0, x372, x369);
+-    let mut x375: u32 = 0;
+-    let mut x376: fiat_p384_scalar_u1 = 0;
+     let (x375, x376) = fiat_p384_scalar_addcarryx_u32(x374, x370, x367);
+-    let mut x377: u32 = 0;
+-    let mut x378: fiat_p384_scalar_u1 = 0;
+     let (x377, x378) = fiat_p384_scalar_addcarryx_u32(x376, x368, x365);
+-    let mut x379: u32 = 0;
+-    let mut x380: fiat_p384_scalar_u1 = 0;
+     let (x379, x380) = fiat_p384_scalar_addcarryx_u32(x378, x366, x363);
+-    let mut x381: u32 = 0;
+-    let mut x382: fiat_p384_scalar_u1 = 0;
+     let (x381, x382) = fiat_p384_scalar_addcarryx_u32(x380, x364, x361);
+-    let mut x383: u32 = 0;
+-    let mut x384: fiat_p384_scalar_u1 = 0;
+     let (x383, x384) = fiat_p384_scalar_addcarryx_u32(x382, x362, x359);
+-    let mut x385: u32 = 0;
+-    let mut x386: fiat_p384_scalar_u1 = 0;
+     let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x360, x357);
+-    let mut x387: u32 = 0;
+-    let mut x388: fiat_p384_scalar_u1 = 0;
+     let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x358, x355);
+-    let mut x389: u32 = 0;
+-    let mut x390: fiat_p384_scalar_u1 = 0;
+     let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x356, x353);
+-    let mut x391: u32 = 0;
+-    let mut x392: fiat_p384_scalar_u1 = 0;
+     let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x354, x351);
+-    let mut x393: u32 = 0;
+-    let mut x394: fiat_p384_scalar_u1 = 0;
+     let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x352, x349);
+-    let mut x395: u32 = 0;
+-    let mut x396: fiat_p384_scalar_u1 = 0;
+     let (x395, x396) = fiat_p384_scalar_addcarryx_u32(0x0, x323, x371);
+-    let mut x397: u32 = 0;
+-    let mut x398: fiat_p384_scalar_u1 = 0;
+     let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x325, x373);
+-    let mut x399: u32 = 0;
+-    let mut x400: fiat_p384_scalar_u1 = 0;
+     let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x327, x375);
+-    let mut x401: u32 = 0;
+-    let mut x402: fiat_p384_scalar_u1 = 0;
+     let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x329, x377);
+-    let mut x403: u32 = 0;
+-    let mut x404: fiat_p384_scalar_u1 = 0;
+     let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x331, x379);
+-    let mut x405: u32 = 0;
+-    let mut x406: fiat_p384_scalar_u1 = 0;
+     let (x405, x406) = fiat_p384_scalar_addcarryx_u32(x404, x333, x381);
+-    let mut x407: u32 = 0;
+-    let mut x408: fiat_p384_scalar_u1 = 0;
+     let (x407, x408) = fiat_p384_scalar_addcarryx_u32(x406, x335, x383);
+-    let mut x409: u32 = 0;
+-    let mut x410: fiat_p384_scalar_u1 = 0;
+     let (x409, x410) = fiat_p384_scalar_addcarryx_u32(x408, x337, x385);
+-    let mut x411: u32 = 0;
+-    let mut x412: fiat_p384_scalar_u1 = 0;
+     let (x411, x412) = fiat_p384_scalar_addcarryx_u32(x410, x339, x387);
+-    let mut x413: u32 = 0;
+-    let mut x414: fiat_p384_scalar_u1 = 0;
+     let (x413, x414) = fiat_p384_scalar_addcarryx_u32(x412, x341, x389);
+-    let mut x415: u32 = 0;
+-    let mut x416: fiat_p384_scalar_u1 = 0;
+     let (x415, x416) = fiat_p384_scalar_addcarryx_u32(x414, x343, x391);
+-    let mut x417: u32 = 0;
+-    let mut x418: fiat_p384_scalar_u1 = 0;
+     let (x417, x418) = fiat_p384_scalar_addcarryx_u32(x416, x345, x393);
+-    let mut x419: u32 = 0;
+-    let mut x420: fiat_p384_scalar_u1 = 0;
+     let (x419, x420) = fiat_p384_scalar_addcarryx_u32(
+         x418,
+         (((x346 as u32) + (x276 as u32)) + ((x322 as u32) + x278)),
+         ((x394 as u32) + x350),
+     );
+-    let mut x421: u32 = 0;
+-    let mut x422: u32 = 0;
+     let (x421, x422) = fiat_p384_scalar_mulx_u32(x3, 0xc84ee01);
+-    let mut x423: u32 = 0;
+-    let mut x424: u32 = 0;
+     let (x423, x424) = fiat_p384_scalar_mulx_u32(x3, 0x2b39bf21);
+-    let mut x425: u32 = 0;
+-    let mut x426: u32 = 0;
+     let (x425, x426) = fiat_p384_scalar_mulx_u32(x3, 0x3fb05b7a);
+-    let mut x427: u32 = 0;
+-    let mut x428: u32 = 0;
+     let (x427, x428) = fiat_p384_scalar_mulx_u32(x3, 0x28266895);
+-    let mut x429: u32 = 0;
+-    let mut x430: u32 = 0;
+     let (x429, x430) = fiat_p384_scalar_mulx_u32(x3, 0xd40d4917);
+-    let mut x431: u32 = 0;
+-    let mut x432: u32 = 0;
+     let (x431, x432) = fiat_p384_scalar_mulx_u32(x3, 0x4aab1cc5);
+-    let mut x433: u32 = 0;
+-    let mut x434: u32 = 0;
+     let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, 0xbc3e483a);
+-    let mut x435: u32 = 0;
+-    let mut x436: u32 = 0;
+     let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, 0xfcb82947);
+-    let mut x437: u32 = 0;
+-    let mut x438: u32 = 0;
+     let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, 0xff3d81e5);
+-    let mut x439: u32 = 0;
+-    let mut x440: u32 = 0;
+     let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, 0xdf1aa419);
+-    let mut x441: u32 = 0;
+-    let mut x442: u32 = 0;
+     let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, 0x2d319b24);
+-    let mut x443: u32 = 0;
+-    let mut x444: u32 = 0;
+     let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, 0x19b409a9);
+-    let mut x445: u32 = 0;
+-    let mut x446: fiat_p384_scalar_u1 = 0;
+     let (x445, x446) = fiat_p384_scalar_addcarryx_u32(0x0, x444, x441);
+-    let mut x447: u32 = 0;
+-    let mut x448: fiat_p384_scalar_u1 = 0;
+     let (x447, x448) = fiat_p384_scalar_addcarryx_u32(x446, x442, x439);
+-    let mut x449: u32 = 0;
+-    let mut x450: fiat_p384_scalar_u1 = 0;
+     let (x449, x450) = fiat_p384_scalar_addcarryx_u32(x448, x440, x437);
+-    let mut x451: u32 = 0;
+-    let mut x452: fiat_p384_scalar_u1 = 0;
+     let (x451, x452) = fiat_p384_scalar_addcarryx_u32(x450, x438, x435);
+-    let mut x453: u32 = 0;
+-    let mut x454: fiat_p384_scalar_u1 = 0;
+     let (x453, x454) = fiat_p384_scalar_addcarryx_u32(x452, x436, x433);
+-    let mut x455: u32 = 0;
+-    let mut x456: fiat_p384_scalar_u1 = 0;
+     let (x455, x456) = fiat_p384_scalar_addcarryx_u32(x454, x434, x431);
+-    let mut x457: u32 = 0;
+-    let mut x458: fiat_p384_scalar_u1 = 0;
+     let (x457, x458) = fiat_p384_scalar_addcarryx_u32(x456, x432, x429);
+-    let mut x459: u32 = 0;
+-    let mut x460: fiat_p384_scalar_u1 = 0;
+     let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x430, x427);
+-    let mut x461: u32 = 0;
+-    let mut x462: fiat_p384_scalar_u1 = 0;
+     let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x428, x425);
+-    let mut x463: u32 = 0;
+-    let mut x464: fiat_p384_scalar_u1 = 0;
+     let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x426, x423);
+-    let mut x465: u32 = 0;
+-    let mut x466: fiat_p384_scalar_u1 = 0;
+     let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x424, x421);
+-    let mut x467: u32 = 0;
+-    let mut x468: fiat_p384_scalar_u1 = 0;
+     let (x467, x468) = fiat_p384_scalar_addcarryx_u32(0x0, x397, x443);
+-    let mut x469: u32 = 0;
+-    let mut x470: fiat_p384_scalar_u1 = 0;
+     let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x399, x445);
+-    let mut x471: u32 = 0;
+-    let mut x472: fiat_p384_scalar_u1 = 0;
+     let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x401, x447);
+-    let mut x473: u32 = 0;
+-    let mut x474: fiat_p384_scalar_u1 = 0;
+     let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x403, x449);
+-    let mut x475: u32 = 0;
+-    let mut x476: fiat_p384_scalar_u1 = 0;
+     let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x405, x451);
+-    let mut x477: u32 = 0;
+-    let mut x478: fiat_p384_scalar_u1 = 0;
+     let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x407, x453);
+-    let mut x479: u32 = 0;
+-    let mut x480: fiat_p384_scalar_u1 = 0;
+     let (x479, x480) = fiat_p384_scalar_addcarryx_u32(x478, x409, x455);
+-    let mut x481: u32 = 0;
+-    let mut x482: fiat_p384_scalar_u1 = 0;
+     let (x481, x482) = fiat_p384_scalar_addcarryx_u32(x480, x411, x457);
+-    let mut x483: u32 = 0;
+-    let mut x484: fiat_p384_scalar_u1 = 0;
+     let (x483, x484) = fiat_p384_scalar_addcarryx_u32(x482, x413, x459);
+-    let mut x485: u32 = 0;
+-    let mut x486: fiat_p384_scalar_u1 = 0;
+     let (x485, x486) = fiat_p384_scalar_addcarryx_u32(x484, x415, x461);
+-    let mut x487: u32 = 0;
+-    let mut x488: fiat_p384_scalar_u1 = 0;
+     let (x487, x488) = fiat_p384_scalar_addcarryx_u32(x486, x417, x463);
+-    let mut x489: u32 = 0;
+-    let mut x490: fiat_p384_scalar_u1 = 0;
+     let (x489, x490) = fiat_p384_scalar_addcarryx_u32(x488, x419, x465);
+-    let mut x491: u32 = 0;
+-    let mut x492: u32 = 0;
+     let (x491, x492) = fiat_p384_scalar_mulx_u32(x467, 0xe88fdc45);
+-    let mut x493: u32 = 0;
+-    let mut x494: u32 = 0;
+     let (x493, x494) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+-    let mut x495: u32 = 0;
+-    let mut x496: u32 = 0;
+     let (x495, x496) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+-    let mut x497: u32 = 0;
+-    let mut x498: u32 = 0;
+     let (x497, x498) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+-    let mut x499: u32 = 0;
+-    let mut x500: u32 = 0;
+     let (x499, x500) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+-    let mut x501: u32 = 0;
+-    let mut x502: u32 = 0;
+     let (x501, x502) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+-    let mut x503: u32 = 0;
+-    let mut x504: u32 = 0;
+     let (x503, x504) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+-    let mut x505: u32 = 0;
+-    let mut x506: u32 = 0;
+     let (x505, x506) = fiat_p384_scalar_mulx_u32(x491, 0xc7634d81);
+-    let mut x507: u32 = 0;
+-    let mut x508: u32 = 0;
+     let (x507, x508) = fiat_p384_scalar_mulx_u32(x491, 0xf4372ddf);
+-    let mut x509: u32 = 0;
+-    let mut x510: u32 = 0;
+     let (x509, x510) = fiat_p384_scalar_mulx_u32(x491, 0x581a0db2);
+-    let mut x511: u32 = 0;
+-    let mut x512: u32 = 0;
+     let (x511, x512) = fiat_p384_scalar_mulx_u32(x491, 0x48b0a77a);
+-    let mut x513: u32 = 0;
+-    let mut x514: u32 = 0;
+     let (x513, x514) = fiat_p384_scalar_mulx_u32(x491, 0xecec196a);
+-    let mut x515: u32 = 0;
+-    let mut x516: u32 = 0;
+     let (x515, x516) = fiat_p384_scalar_mulx_u32(x491, 0xccc52973);
+-    let mut x517: u32 = 0;
+-    let mut x518: fiat_p384_scalar_u1 = 0;
+     let (x517, x518) = fiat_p384_scalar_addcarryx_u32(0x0, x516, x513);
+-    let mut x519: u32 = 0;
+-    let mut x520: fiat_p384_scalar_u1 = 0;
+     let (x519, x520) = fiat_p384_scalar_addcarryx_u32(x518, x514, x511);
+-    let mut x521: u32 = 0;
+-    let mut x522: fiat_p384_scalar_u1 = 0;
+     let (x521, x522) = fiat_p384_scalar_addcarryx_u32(x520, x512, x509);
+-    let mut x523: u32 = 0;
+-    let mut x524: fiat_p384_scalar_u1 = 0;
+     let (x523, x524) = fiat_p384_scalar_addcarryx_u32(x522, x510, x507);
+-    let mut x525: u32 = 0;
+-    let mut x526: fiat_p384_scalar_u1 = 0;
+     let (x525, x526) = fiat_p384_scalar_addcarryx_u32(x524, x508, x505);
+-    let mut x527: u32 = 0;
+-    let mut x528: fiat_p384_scalar_u1 = 0;
+     let (x527, x528) = fiat_p384_scalar_addcarryx_u32(x526, x506, x503);
+-    let mut x529: u32 = 0;
+-    let mut x530: fiat_p384_scalar_u1 = 0;
+     let (x529, x530) = fiat_p384_scalar_addcarryx_u32(x528, x504, x501);
+-    let mut x531: u32 = 0;
+-    let mut x532: fiat_p384_scalar_u1 = 0;
+     let (x531, x532) = fiat_p384_scalar_addcarryx_u32(x530, x502, x499);
+-    let mut x533: u32 = 0;
+-    let mut x534: fiat_p384_scalar_u1 = 0;
+     let (x533, x534) = fiat_p384_scalar_addcarryx_u32(x532, x500, x497);
+-    let mut x535: u32 = 0;
+-    let mut x536: fiat_p384_scalar_u1 = 0;
+     let (x535, x536) = fiat_p384_scalar_addcarryx_u32(x534, x498, x495);
+-    let mut x537: u32 = 0;
+-    let mut x538: fiat_p384_scalar_u1 = 0;
+     let (x537, x538) = fiat_p384_scalar_addcarryx_u32(x536, x496, x493);
+-    let mut x539: u32 = 0;
+-    let mut x540: fiat_p384_scalar_u1 = 0;
+     let (x539, x540) = fiat_p384_scalar_addcarryx_u32(0x0, x467, x515);
+-    let mut x541: u32 = 0;
+-    let mut x542: fiat_p384_scalar_u1 = 0;
+     let (x541, x542) = fiat_p384_scalar_addcarryx_u32(x540, x469, x517);
+-    let mut x543: u32 = 0;
+-    let mut x544: fiat_p384_scalar_u1 = 0;
+     let (x543, x544) = fiat_p384_scalar_addcarryx_u32(x542, x471, x519);
+-    let mut x545: u32 = 0;
+-    let mut x546: fiat_p384_scalar_u1 = 0;
+     let (x545, x546) = fiat_p384_scalar_addcarryx_u32(x544, x473, x521);
+-    let mut x547: u32 = 0;
+-    let mut x548: fiat_p384_scalar_u1 = 0;
+     let (x547, x548) = fiat_p384_scalar_addcarryx_u32(x546, x475, x523);
+-    let mut x549: u32 = 0;
+-    let mut x550: fiat_p384_scalar_u1 = 0;
+     let (x549, x550) = fiat_p384_scalar_addcarryx_u32(x548, x477, x525);
+-    let mut x551: u32 = 0;
+-    let mut x552: fiat_p384_scalar_u1 = 0;
+     let (x551, x552) = fiat_p384_scalar_addcarryx_u32(x550, x479, x527);
+-    let mut x553: u32 = 0;
+-    let mut x554: fiat_p384_scalar_u1 = 0;
+     let (x553, x554) = fiat_p384_scalar_addcarryx_u32(x552, x481, x529);
+-    let mut x555: u32 = 0;
+-    let mut x556: fiat_p384_scalar_u1 = 0;
+     let (x555, x556) = fiat_p384_scalar_addcarryx_u32(x554, x483, x531);
+-    let mut x557: u32 = 0;
+-    let mut x558: fiat_p384_scalar_u1 = 0;
+     let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x485, x533);
+-    let mut x559: u32 = 0;
+-    let mut x560: fiat_p384_scalar_u1 = 0;
+     let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x487, x535);
+-    let mut x561: u32 = 0;
+-    let mut x562: fiat_p384_scalar_u1 = 0;
+     let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x489, x537);
+-    let mut x563: u32 = 0;
+-    let mut x564: fiat_p384_scalar_u1 = 0;
+     let (x563, x564) = fiat_p384_scalar_addcarryx_u32(
+         x562,
+         (((x490 as u32) + (x420 as u32)) + ((x466 as u32) + x422)),
+         ((x538 as u32) + x494),
+     );
+-    let mut x565: u32 = 0;
+-    let mut x566: u32 = 0;
+     let (x565, x566) = fiat_p384_scalar_mulx_u32(x4, 0xc84ee01);
+-    let mut x567: u32 = 0;
+-    let mut x568: u32 = 0;
+     let (x567, x568) = fiat_p384_scalar_mulx_u32(x4, 0x2b39bf21);
+-    let mut x569: u32 = 0;
+-    let mut x570: u32 = 0;
+     let (x569, x570) = fiat_p384_scalar_mulx_u32(x4, 0x3fb05b7a);
+-    let mut x571: u32 = 0;
+-    let mut x572: u32 = 0;
+     let (x571, x572) = fiat_p384_scalar_mulx_u32(x4, 0x28266895);
+-    let mut x573: u32 = 0;
+-    let mut x574: u32 = 0;
+     let (x573, x574) = fiat_p384_scalar_mulx_u32(x4, 0xd40d4917);
+-    let mut x575: u32 = 0;
+-    let mut x576: u32 = 0;
+     let (x575, x576) = fiat_p384_scalar_mulx_u32(x4, 0x4aab1cc5);
+-    let mut x577: u32 = 0;
+-    let mut x578: u32 = 0;
+     let (x577, x578) = fiat_p384_scalar_mulx_u32(x4, 0xbc3e483a);
+-    let mut x579: u32 = 0;
+-    let mut x580: u32 = 0;
+     let (x579, x580) = fiat_p384_scalar_mulx_u32(x4, 0xfcb82947);
+-    let mut x581: u32 = 0;
+-    let mut x582: u32 = 0;
+     let (x581, x582) = fiat_p384_scalar_mulx_u32(x4, 0xff3d81e5);
+-    let mut x583: u32 = 0;
+-    let mut x584: u32 = 0;
+     let (x583, x584) = fiat_p384_scalar_mulx_u32(x4, 0xdf1aa419);
+-    let mut x585: u32 = 0;
+-    let mut x586: u32 = 0;
+     let (x585, x586) = fiat_p384_scalar_mulx_u32(x4, 0x2d319b24);
+-    let mut x587: u32 = 0;
+-    let mut x588: u32 = 0;
+     let (x587, x588) = fiat_p384_scalar_mulx_u32(x4, 0x19b409a9);
+-    let mut x589: u32 = 0;
+-    let mut x590: fiat_p384_scalar_u1 = 0;
+     let (x589, x590) = fiat_p384_scalar_addcarryx_u32(0x0, x588, x585);
+-    let mut x591: u32 = 0;
+-    let mut x592: fiat_p384_scalar_u1 = 0;
+     let (x591, x592) = fiat_p384_scalar_addcarryx_u32(x590, x586, x583);
+-    let mut x593: u32 = 0;
+-    let mut x594: fiat_p384_scalar_u1 = 0;
+     let (x593, x594) = fiat_p384_scalar_addcarryx_u32(x592, x584, x581);
+-    let mut x595: u32 = 0;
+-    let mut x596: fiat_p384_scalar_u1 = 0;
+     let (x595, x596) = fiat_p384_scalar_addcarryx_u32(x594, x582, x579);
+-    let mut x597: u32 = 0;
+-    let mut x598: fiat_p384_scalar_u1 = 0;
+     let (x597, x598) = fiat_p384_scalar_addcarryx_u32(x596, x580, x577);
+-    let mut x599: u32 = 0;
+-    let mut x600: fiat_p384_scalar_u1 = 0;
+     let (x599, x600) = fiat_p384_scalar_addcarryx_u32(x598, x578, x575);
+-    let mut x601: u32 = 0;
+-    let mut x602: fiat_p384_scalar_u1 = 0;
+     let (x601, x602) = fiat_p384_scalar_addcarryx_u32(x600, x576, x573);
+-    let mut x603: u32 = 0;
+-    let mut x604: fiat_p384_scalar_u1 = 0;
+     let (x603, x604) = fiat_p384_scalar_addcarryx_u32(x602, x574, x571);
+-    let mut x605: u32 = 0;
+-    let mut x606: fiat_p384_scalar_u1 = 0;
+     let (x605, x606) = fiat_p384_scalar_addcarryx_u32(x604, x572, x569);
+-    let mut x607: u32 = 0;
+-    let mut x608: fiat_p384_scalar_u1 = 0;
+     let (x607, x608) = fiat_p384_scalar_addcarryx_u32(x606, x570, x567);
+-    let mut x609: u32 = 0;
+-    let mut x610: fiat_p384_scalar_u1 = 0;
+     let (x609, x610) = fiat_p384_scalar_addcarryx_u32(x608, x568, x565);
+-    let mut x611: u32 = 0;
+-    let mut x612: fiat_p384_scalar_u1 = 0;
+     let (x611, x612) = fiat_p384_scalar_addcarryx_u32(0x0, x541, x587);
+-    let mut x613: u32 = 0;
+-    let mut x614: fiat_p384_scalar_u1 = 0;
+     let (x613, x614) = fiat_p384_scalar_addcarryx_u32(x612, x543, x589);
+-    let mut x615: u32 = 0;
+-    let mut x616: fiat_p384_scalar_u1 = 0;
+     let (x615, x616) = fiat_p384_scalar_addcarryx_u32(x614, x545, x591);
+-    let mut x617: u32 = 0;
+-    let mut x618: fiat_p384_scalar_u1 = 0;
+     let (x617, x618) = fiat_p384_scalar_addcarryx_u32(x616, x547, x593);
+-    let mut x619: u32 = 0;
+-    let mut x620: fiat_p384_scalar_u1 = 0;
+     let (x619, x620) = fiat_p384_scalar_addcarryx_u32(x618, x549, x595);
+-    let mut x621: u32 = 0;
+-    let mut x622: fiat_p384_scalar_u1 = 0;
+     let (x621, x622) = fiat_p384_scalar_addcarryx_u32(x620, x551, x597);
+-    let mut x623: u32 = 0;
+-    let mut x624: fiat_p384_scalar_u1 = 0;
+     let (x623, x624) = fiat_p384_scalar_addcarryx_u32(x622, x553, x599);
+-    let mut x625: u32 = 0;
+-    let mut x626: fiat_p384_scalar_u1 = 0;
+     let (x625, x626) = fiat_p384_scalar_addcarryx_u32(x624, x555, x601);
+-    let mut x627: u32 = 0;
+-    let mut x628: fiat_p384_scalar_u1 = 0;
+     let (x627, x628) = fiat_p384_scalar_addcarryx_u32(x626, x557, x603);
+-    let mut x629: u32 = 0;
+-    let mut x630: fiat_p384_scalar_u1 = 0;
+     let (x629, x630) = fiat_p384_scalar_addcarryx_u32(x628, x559, x605);
+-    let mut x631: u32 = 0;
+-    let mut x632: fiat_p384_scalar_u1 = 0;
+     let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x561, x607);
+-    let mut x633: u32 = 0;
+-    let mut x634: fiat_p384_scalar_u1 = 0;
+     let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x563, x609);
+-    let mut x635: u32 = 0;
+-    let mut x636: u32 = 0;
+     let (x635, x636) = fiat_p384_scalar_mulx_u32(x611, 0xe88fdc45);
+-    let mut x637: u32 = 0;
+-    let mut x638: u32 = 0;
+     let (x637, x638) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+-    let mut x639: u32 = 0;
+-    let mut x640: u32 = 0;
+     let (x639, x640) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+-    let mut x641: u32 = 0;
+-    let mut x642: u32 = 0;
+     let (x641, x642) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+-    let mut x643: u32 = 0;
+-    let mut x644: u32 = 0;
+     let (x643, x644) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+-    let mut x645: u32 = 0;
+-    let mut x646: u32 = 0;
+     let (x645, x646) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+-    let mut x647: u32 = 0;
+-    let mut x648: u32 = 0;
+     let (x647, x648) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+-    let mut x649: u32 = 0;
+-    let mut x650: u32 = 0;
+     let (x649, x650) = fiat_p384_scalar_mulx_u32(x635, 0xc7634d81);
+-    let mut x651: u32 = 0;
+-    let mut x652: u32 = 0;
+     let (x651, x652) = fiat_p384_scalar_mulx_u32(x635, 0xf4372ddf);
+-    let mut x653: u32 = 0;
+-    let mut x654: u32 = 0;
+     let (x653, x654) = fiat_p384_scalar_mulx_u32(x635, 0x581a0db2);
+-    let mut x655: u32 = 0;
+-    let mut x656: u32 = 0;
+     let (x655, x656) = fiat_p384_scalar_mulx_u32(x635, 0x48b0a77a);
+-    let mut x657: u32 = 0;
+-    let mut x658: u32 = 0;
+     let (x657, x658) = fiat_p384_scalar_mulx_u32(x635, 0xecec196a);
+-    let mut x659: u32 = 0;
+-    let mut x660: u32 = 0;
+     let (x659, x660) = fiat_p384_scalar_mulx_u32(x635, 0xccc52973);
+-    let mut x661: u32 = 0;
+-    let mut x662: fiat_p384_scalar_u1 = 0;
+     let (x661, x662) = fiat_p384_scalar_addcarryx_u32(0x0, x660, x657);
+-    let mut x663: u32 = 0;
+-    let mut x664: fiat_p384_scalar_u1 = 0;
+     let (x663, x664) = fiat_p384_scalar_addcarryx_u32(x662, x658, x655);
+-    let mut x665: u32 = 0;
+-    let mut x666: fiat_p384_scalar_u1 = 0;
+     let (x665, x666) = fiat_p384_scalar_addcarryx_u32(x664, x656, x653);
+-    let mut x667: u32 = 0;
+-    let mut x668: fiat_p384_scalar_u1 = 0;
+     let (x667, x668) = fiat_p384_scalar_addcarryx_u32(x666, x654, x651);
+-    let mut x669: u32 = 0;
+-    let mut x670: fiat_p384_scalar_u1 = 0;
+     let (x669, x670) = fiat_p384_scalar_addcarryx_u32(x668, x652, x649);
+-    let mut x671: u32 = 0;
+-    let mut x672: fiat_p384_scalar_u1 = 0;
+     let (x671, x672) = fiat_p384_scalar_addcarryx_u32(x670, x650, x647);
+-    let mut x673: u32 = 0;
+-    let mut x674: fiat_p384_scalar_u1 = 0;
+     let (x673, x674) = fiat_p384_scalar_addcarryx_u32(x672, x648, x645);
+-    let mut x675: u32 = 0;
+-    let mut x676: fiat_p384_scalar_u1 = 0;
+     let (x675, x676) = fiat_p384_scalar_addcarryx_u32(x674, x646, x643);
+-    let mut x677: u32 = 0;
+-    let mut x678: fiat_p384_scalar_u1 = 0;
+     let (x677, x678) = fiat_p384_scalar_addcarryx_u32(x676, x644, x641);
+-    let mut x679: u32 = 0;
+-    let mut x680: fiat_p384_scalar_u1 = 0;
+     let (x679, x680) = fiat_p384_scalar_addcarryx_u32(x678, x642, x639);
+-    let mut x681: u32 = 0;
+-    let mut x682: fiat_p384_scalar_u1 = 0;
+     let (x681, x682) = fiat_p384_scalar_addcarryx_u32(x680, x640, x637);
+-    let mut x683: u32 = 0;
+-    let mut x684: fiat_p384_scalar_u1 = 0;
+     let (x683, x684) = fiat_p384_scalar_addcarryx_u32(0x0, x611, x659);
+-    let mut x685: u32 = 0;
+-    let mut x686: fiat_p384_scalar_u1 = 0;
+     let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x613, x661);
+-    let mut x687: u32 = 0;
+-    let mut x688: fiat_p384_scalar_u1 = 0;
+     let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x615, x663);
+-    let mut x689: u32 = 0;
+-    let mut x690: fiat_p384_scalar_u1 = 0;
+     let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x617, x665);
+-    let mut x691: u32 = 0;
+-    let mut x692: fiat_p384_scalar_u1 = 0;
+     let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x619, x667);
+-    let mut x693: u32 = 0;
+-    let mut x694: fiat_p384_scalar_u1 = 0;
+     let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x621, x669);
+-    let mut x695: u32 = 0;
+-    let mut x696: fiat_p384_scalar_u1 = 0;
+     let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x623, x671);
+-    let mut x697: u32 = 0;
+-    let mut x698: fiat_p384_scalar_u1 = 0;
+     let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x625, x673);
+-    let mut x699: u32 = 0;
+-    let mut x700: fiat_p384_scalar_u1 = 0;
+     let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x627, x675);
+-    let mut x701: u32 = 0;
+-    let mut x702: fiat_p384_scalar_u1 = 0;
+     let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x629, x677);
+-    let mut x703: u32 = 0;
+-    let mut x704: fiat_p384_scalar_u1 = 0;
+     let (x703, x704) = fiat_p384_scalar_addcarryx_u32(x702, x631, x679);
+-    let mut x705: u32 = 0;
+-    let mut x706: fiat_p384_scalar_u1 = 0;
+     let (x705, x706) = fiat_p384_scalar_addcarryx_u32(x704, x633, x681);
+-    let mut x707: u32 = 0;
+-    let mut x708: fiat_p384_scalar_u1 = 0;
+     let (x707, x708) = fiat_p384_scalar_addcarryx_u32(
+         x706,
+         (((x634 as u32) + (x564 as u32)) + ((x610 as u32) + x566)),
+         ((x682 as u32) + x638),
+     );
+-    let mut x709: u32 = 0;
+-    let mut x710: u32 = 0;
+     let (x709, x710) = fiat_p384_scalar_mulx_u32(x5, 0xc84ee01);
+-    let mut x711: u32 = 0;
+-    let mut x712: u32 = 0;
+     let (x711, x712) = fiat_p384_scalar_mulx_u32(x5, 0x2b39bf21);
+-    let mut x713: u32 = 0;
+-    let mut x714: u32 = 0;
+     let (x713, x714) = fiat_p384_scalar_mulx_u32(x5, 0x3fb05b7a);
+-    let mut x715: u32 = 0;
+-    let mut x716: u32 = 0;
+     let (x715, x716) = fiat_p384_scalar_mulx_u32(x5, 0x28266895);
+-    let mut x717: u32 = 0;
+-    let mut x718: u32 = 0;
+     let (x717, x718) = fiat_p384_scalar_mulx_u32(x5, 0xd40d4917);
+-    let mut x719: u32 = 0;
+-    let mut x720: u32 = 0;
+     let (x719, x720) = fiat_p384_scalar_mulx_u32(x5, 0x4aab1cc5);
+-    let mut x721: u32 = 0;
+-    let mut x722: u32 = 0;
+     let (x721, x722) = fiat_p384_scalar_mulx_u32(x5, 0xbc3e483a);
+-    let mut x723: u32 = 0;
+-    let mut x724: u32 = 0;
+     let (x723, x724) = fiat_p384_scalar_mulx_u32(x5, 0xfcb82947);
+-    let mut x725: u32 = 0;
+-    let mut x726: u32 = 0;
+     let (x725, x726) = fiat_p384_scalar_mulx_u32(x5, 0xff3d81e5);
+-    let mut x727: u32 = 0;
+-    let mut x728: u32 = 0;
+     let (x727, x728) = fiat_p384_scalar_mulx_u32(x5, 0xdf1aa419);
+-    let mut x729: u32 = 0;
+-    let mut x730: u32 = 0;
+     let (x729, x730) = fiat_p384_scalar_mulx_u32(x5, 0x2d319b24);
+-    let mut x731: u32 = 0;
+-    let mut x732: u32 = 0;
+     let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, 0x19b409a9);
+-    let mut x733: u32 = 0;
+-    let mut x734: fiat_p384_scalar_u1 = 0;
+     let (x733, x734) = fiat_p384_scalar_addcarryx_u32(0x0, x732, x729);
+-    let mut x735: u32 = 0;
+-    let mut x736: fiat_p384_scalar_u1 = 0;
+     let (x735, x736) = fiat_p384_scalar_addcarryx_u32(x734, x730, x727);
+-    let mut x737: u32 = 0;
+-    let mut x738: fiat_p384_scalar_u1 = 0;
+     let (x737, x738) = fiat_p384_scalar_addcarryx_u32(x736, x728, x725);
+-    let mut x739: u32 = 0;
+-    let mut x740: fiat_p384_scalar_u1 = 0;
+     let (x739, x740) = fiat_p384_scalar_addcarryx_u32(x738, x726, x723);
+-    let mut x741: u32 = 0;
+-    let mut x742: fiat_p384_scalar_u1 = 0;
+     let (x741, x742) = fiat_p384_scalar_addcarryx_u32(x740, x724, x721);
+-    let mut x743: u32 = 0;
+-    let mut x744: fiat_p384_scalar_u1 = 0;
+     let (x743, x744) = fiat_p384_scalar_addcarryx_u32(x742, x722, x719);
+-    let mut x745: u32 = 0;
+-    let mut x746: fiat_p384_scalar_u1 = 0;
+     let (x745, x746) = fiat_p384_scalar_addcarryx_u32(x744, x720, x717);
+-    let mut x747: u32 = 0;
+-    let mut x748: fiat_p384_scalar_u1 = 0;
+     let (x747, x748) = fiat_p384_scalar_addcarryx_u32(x746, x718, x715);
+-    let mut x749: u32 = 0;
+-    let mut x750: fiat_p384_scalar_u1 = 0;
+     let (x749, x750) = fiat_p384_scalar_addcarryx_u32(x748, x716, x713);
+-    let mut x751: u32 = 0;
+-    let mut x752: fiat_p384_scalar_u1 = 0;
+     let (x751, x752) = fiat_p384_scalar_addcarryx_u32(x750, x714, x711);
+-    let mut x753: u32 = 0;
+-    let mut x754: fiat_p384_scalar_u1 = 0;
+     let (x753, x754) = fiat_p384_scalar_addcarryx_u32(x752, x712, x709);
+-    let mut x755: u32 = 0;
+-    let mut x756: fiat_p384_scalar_u1 = 0;
+     let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x685, x731);
+-    let mut x757: u32 = 0;
+-    let mut x758: fiat_p384_scalar_u1 = 0;
+     let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x687, x733);
+-    let mut x759: u32 = 0;
+-    let mut x760: fiat_p384_scalar_u1 = 0;
+     let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x689, x735);
+-    let mut x761: u32 = 0;
+-    let mut x762: fiat_p384_scalar_u1 = 0;
+     let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x691, x737);
+-    let mut x763: u32 = 0;
+-    let mut x764: fiat_p384_scalar_u1 = 0;
+     let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x693, x739);
+-    let mut x765: u32 = 0;
+-    let mut x766: fiat_p384_scalar_u1 = 0;
+     let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x695, x741);
+-    let mut x767: u32 = 0;
+-    let mut x768: fiat_p384_scalar_u1 = 0;
+     let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x697, x743);
+-    let mut x769: u32 = 0;
+-    let mut x770: fiat_p384_scalar_u1 = 0;
+     let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x699, x745);
+-    let mut x771: u32 = 0;
+-    let mut x772: fiat_p384_scalar_u1 = 0;
+     let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x701, x747);
+-    let mut x773: u32 = 0;
+-    let mut x774: fiat_p384_scalar_u1 = 0;
+     let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x703, x749);
+-    let mut x775: u32 = 0;
+-    let mut x776: fiat_p384_scalar_u1 = 0;
+     let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x705, x751);
+-    let mut x777: u32 = 0;
+-    let mut x778: fiat_p384_scalar_u1 = 0;
+     let (x777, x778) = fiat_p384_scalar_addcarryx_u32(x776, x707, x753);
+-    let mut x779: u32 = 0;
+-    let mut x780: u32 = 0;
+     let (x779, x780) = fiat_p384_scalar_mulx_u32(x755, 0xe88fdc45);
+-    let mut x781: u32 = 0;
+-    let mut x782: u32 = 0;
+     let (x781, x782) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+-    let mut x783: u32 = 0;
+-    let mut x784: u32 = 0;
+     let (x783, x784) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+-    let mut x785: u32 = 0;
+-    let mut x786: u32 = 0;
+     let (x785, x786) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+-    let mut x787: u32 = 0;
+-    let mut x788: u32 = 0;
+     let (x787, x788) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+-    let mut x789: u32 = 0;
+-    let mut x790: u32 = 0;
+     let (x789, x790) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+-    let mut x791: u32 = 0;
+-    let mut x792: u32 = 0;
+     let (x791, x792) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+-    let mut x793: u32 = 0;
+-    let mut x794: u32 = 0;
+     let (x793, x794) = fiat_p384_scalar_mulx_u32(x779, 0xc7634d81);
+-    let mut x795: u32 = 0;
+-    let mut x796: u32 = 0;
+     let (x795, x796) = fiat_p384_scalar_mulx_u32(x779, 0xf4372ddf);
+-    let mut x797: u32 = 0;
+-    let mut x798: u32 = 0;
+     let (x797, x798) = fiat_p384_scalar_mulx_u32(x779, 0x581a0db2);
+-    let mut x799: u32 = 0;
+-    let mut x800: u32 = 0;
+     let (x799, x800) = fiat_p384_scalar_mulx_u32(x779, 0x48b0a77a);
+-    let mut x801: u32 = 0;
+-    let mut x802: u32 = 0;
+     let (x801, x802) = fiat_p384_scalar_mulx_u32(x779, 0xecec196a);
+-    let mut x803: u32 = 0;
+-    let mut x804: u32 = 0;
+     let (x803, x804) = fiat_p384_scalar_mulx_u32(x779, 0xccc52973);
+-    let mut x805: u32 = 0;
+-    let mut x806: fiat_p384_scalar_u1 = 0;
+     let (x805, x806) = fiat_p384_scalar_addcarryx_u32(0x0, x804, x801);
+-    let mut x807: u32 = 0;
+-    let mut x808: fiat_p384_scalar_u1 = 0;
+     let (x807, x808) = fiat_p384_scalar_addcarryx_u32(x806, x802, x799);
+-    let mut x809: u32 = 0;
+-    let mut x810: fiat_p384_scalar_u1 = 0;
+     let (x809, x810) = fiat_p384_scalar_addcarryx_u32(x808, x800, x797);
+-    let mut x811: u32 = 0;
+-    let mut x812: fiat_p384_scalar_u1 = 0;
+     let (x811, x812) = fiat_p384_scalar_addcarryx_u32(x810, x798, x795);
+-    let mut x813: u32 = 0;
+-    let mut x814: fiat_p384_scalar_u1 = 0;
+     let (x813, x814) = fiat_p384_scalar_addcarryx_u32(x812, x796, x793);
+-    let mut x815: u32 = 0;
+-    let mut x816: fiat_p384_scalar_u1 = 0;
+     let (x815, x816) = fiat_p384_scalar_addcarryx_u32(x814, x794, x791);
+-    let mut x817: u32 = 0;
+-    let mut x818: fiat_p384_scalar_u1 = 0;
+     let (x817, x818) = fiat_p384_scalar_addcarryx_u32(x816, x792, x789);
+-    let mut x819: u32 = 0;
+-    let mut x820: fiat_p384_scalar_u1 = 0;
+     let (x819, x820) = fiat_p384_scalar_addcarryx_u32(x818, x790, x787);
+-    let mut x821: u32 = 0;
+-    let mut x822: fiat_p384_scalar_u1 = 0;
+     let (x821, x822) = fiat_p384_scalar_addcarryx_u32(x820, x788, x785);
+-    let mut x823: u32 = 0;
+-    let mut x824: fiat_p384_scalar_u1 = 0;
+     let (x823, x824) = fiat_p384_scalar_addcarryx_u32(x822, x786, x783);
+-    let mut x825: u32 = 0;
+-    let mut x826: fiat_p384_scalar_u1 = 0;
+     let (x825, x826) = fiat_p384_scalar_addcarryx_u32(x824, x784, x781);
+-    let mut x827: u32 = 0;
+-    let mut x828: fiat_p384_scalar_u1 = 0;
+     let (x827, x828) = fiat_p384_scalar_addcarryx_u32(0x0, x755, x803);
+-    let mut x829: u32 = 0;
+-    let mut x830: fiat_p384_scalar_u1 = 0;
+     let (x829, x830) = fiat_p384_scalar_addcarryx_u32(x828, x757, x805);
+-    let mut x831: u32 = 0;
+-    let mut x832: fiat_p384_scalar_u1 = 0;
+     let (x831, x832) = fiat_p384_scalar_addcarryx_u32(x830, x759, x807);
+-    let mut x833: u32 = 0;
+-    let mut x834: fiat_p384_scalar_u1 = 0;
+     let (x833, x834) = fiat_p384_scalar_addcarryx_u32(x832, x761, x809);
+-    let mut x835: u32 = 0;
+-    let mut x836: fiat_p384_scalar_u1 = 0;
+     let (x835, x836) = fiat_p384_scalar_addcarryx_u32(x834, x763, x811);
+-    let mut x837: u32 = 0;
+-    let mut x838: fiat_p384_scalar_u1 = 0;
+     let (x837, x838) = fiat_p384_scalar_addcarryx_u32(x836, x765, x813);
+-    let mut x839: u32 = 0;
+-    let mut x840: fiat_p384_scalar_u1 = 0;
+     let (x839, x840) = fiat_p384_scalar_addcarryx_u32(x838, x767, x815);
+-    let mut x841: u32 = 0;
+-    let mut x842: fiat_p384_scalar_u1 = 0;
+     let (x841, x842) = fiat_p384_scalar_addcarryx_u32(x840, x769, x817);
+-    let mut x843: u32 = 0;
+-    let mut x844: fiat_p384_scalar_u1 = 0;
+     let (x843, x844) = fiat_p384_scalar_addcarryx_u32(x842, x771, x819);
+-    let mut x845: u32 = 0;
+-    let mut x846: fiat_p384_scalar_u1 = 0;
+     let (x845, x846) = fiat_p384_scalar_addcarryx_u32(x844, x773, x821);
+-    let mut x847: u32 = 0;
+-    let mut x848: fiat_p384_scalar_u1 = 0;
+     let (x847, x848) = fiat_p384_scalar_addcarryx_u32(x846, x775, x823);
+-    let mut x849: u32 = 0;
+-    let mut x850: fiat_p384_scalar_u1 = 0;
+     let (x849, x850) = fiat_p384_scalar_addcarryx_u32(x848, x777, x825);
+-    let mut x851: u32 = 0;
+-    let mut x852: fiat_p384_scalar_u1 = 0;
+     let (x851, x852) = fiat_p384_scalar_addcarryx_u32(
+         x850,
+         (((x778 as u32) + (x708 as u32)) + ((x754 as u32) + x710)),
+         ((x826 as u32) + x782),
+     );
+-    let mut x853: u32 = 0;
+-    let mut x854: u32 = 0;
+     let (x853, x854) = fiat_p384_scalar_mulx_u32(x6, 0xc84ee01);
+-    let mut x855: u32 = 0;
+-    let mut x856: u32 = 0;
+     let (x855, x856) = fiat_p384_scalar_mulx_u32(x6, 0x2b39bf21);
+-    let mut x857: u32 = 0;
+-    let mut x858: u32 = 0;
+     let (x857, x858) = fiat_p384_scalar_mulx_u32(x6, 0x3fb05b7a);
+-    let mut x859: u32 = 0;
+-    let mut x860: u32 = 0;
+     let (x859, x860) = fiat_p384_scalar_mulx_u32(x6, 0x28266895);
+-    let mut x861: u32 = 0;
+-    let mut x862: u32 = 0;
+     let (x861, x862) = fiat_p384_scalar_mulx_u32(x6, 0xd40d4917);
+-    let mut x863: u32 = 0;
+-    let mut x864: u32 = 0;
+     let (x863, x864) = fiat_p384_scalar_mulx_u32(x6, 0x4aab1cc5);
+-    let mut x865: u32 = 0;
+-    let mut x866: u32 = 0;
+     let (x865, x866) = fiat_p384_scalar_mulx_u32(x6, 0xbc3e483a);
+-    let mut x867: u32 = 0;
+-    let mut x868: u32 = 0;
+     let (x867, x868) = fiat_p384_scalar_mulx_u32(x6, 0xfcb82947);
+-    let mut x869: u32 = 0;
+-    let mut x870: u32 = 0;
+     let (x869, x870) = fiat_p384_scalar_mulx_u32(x6, 0xff3d81e5);
+-    let mut x871: u32 = 0;
+-    let mut x872: u32 = 0;
+     let (x871, x872) = fiat_p384_scalar_mulx_u32(x6, 0xdf1aa419);
+-    let mut x873: u32 = 0;
+-    let mut x874: u32 = 0;
+     let (x873, x874) = fiat_p384_scalar_mulx_u32(x6, 0x2d319b24);
+-    let mut x875: u32 = 0;
+-    let mut x876: u32 = 0;
+     let (x875, x876) = fiat_p384_scalar_mulx_u32(x6, 0x19b409a9);
+-    let mut x877: u32 = 0;
+-    let mut x878: fiat_p384_scalar_u1 = 0;
+     let (x877, x878) = fiat_p384_scalar_addcarryx_u32(0x0, x876, x873);
+-    let mut x879: u32 = 0;
+-    let mut x880: fiat_p384_scalar_u1 = 0;
+     let (x879, x880) = fiat_p384_scalar_addcarryx_u32(x878, x874, x871);
+-    let mut x881: u32 = 0;
+-    let mut x882: fiat_p384_scalar_u1 = 0;
+     let (x881, x882) = fiat_p384_scalar_addcarryx_u32(x880, x872, x869);
+-    let mut x883: u32 = 0;
+-    let mut x884: fiat_p384_scalar_u1 = 0;
+     let (x883, x884) = fiat_p384_scalar_addcarryx_u32(x882, x870, x867);
+-    let mut x885: u32 = 0;
+-    let mut x886: fiat_p384_scalar_u1 = 0;
+     let (x885, x886) = fiat_p384_scalar_addcarryx_u32(x884, x868, x865);
+-    let mut x887: u32 = 0;
+-    let mut x888: fiat_p384_scalar_u1 = 0;
+     let (x887, x888) = fiat_p384_scalar_addcarryx_u32(x886, x866, x863);
+-    let mut x889: u32 = 0;
+-    let mut x890: fiat_p384_scalar_u1 = 0;
+     let (x889, x890) = fiat_p384_scalar_addcarryx_u32(x888, x864, x861);
+-    let mut x891: u32 = 0;
+-    let mut x892: fiat_p384_scalar_u1 = 0;
+     let (x891, x892) = fiat_p384_scalar_addcarryx_u32(x890, x862, x859);
+-    let mut x893: u32 = 0;
+-    let mut x894: fiat_p384_scalar_u1 = 0;
+     let (x893, x894) = fiat_p384_scalar_addcarryx_u32(x892, x860, x857);
+-    let mut x895: u32 = 0;
+-    let mut x896: fiat_p384_scalar_u1 = 0;
+     let (x895, x896) = fiat_p384_scalar_addcarryx_u32(x894, x858, x855);
+-    let mut x897: u32 = 0;
+-    let mut x898: fiat_p384_scalar_u1 = 0;
+     let (x897, x898) = fiat_p384_scalar_addcarryx_u32(x896, x856, x853);
+-    let mut x899: u32 = 0;
+-    let mut x900: fiat_p384_scalar_u1 = 0;
+     let (x899, x900) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x875);
+-    let mut x901: u32 = 0;
+-    let mut x902: fiat_p384_scalar_u1 = 0;
+     let (x901, x902) = fiat_p384_scalar_addcarryx_u32(x900, x831, x877);
+-    let mut x903: u32 = 0;
+-    let mut x904: fiat_p384_scalar_u1 = 0;
+     let (x903, x904) = fiat_p384_scalar_addcarryx_u32(x902, x833, x879);
+-    let mut x905: u32 = 0;
+-    let mut x906: fiat_p384_scalar_u1 = 0;
+     let (x905, x906) = fiat_p384_scalar_addcarryx_u32(x904, x835, x881);
+-    let mut x907: u32 = 0;
+-    let mut x908: fiat_p384_scalar_u1 = 0;
+     let (x907, x908) = fiat_p384_scalar_addcarryx_u32(x906, x837, x883);
+-    let mut x909: u32 = 0;
+-    let mut x910: fiat_p384_scalar_u1 = 0;
+     let (x909, x910) = fiat_p384_scalar_addcarryx_u32(x908, x839, x885);
+-    let mut x911: u32 = 0;
+-    let mut x912: fiat_p384_scalar_u1 = 0;
+     let (x911, x912) = fiat_p384_scalar_addcarryx_u32(x910, x841, x887);
+-    let mut x913: u32 = 0;
+-    let mut x914: fiat_p384_scalar_u1 = 0;
+     let (x913, x914) = fiat_p384_scalar_addcarryx_u32(x912, x843, x889);
+-    let mut x915: u32 = 0;
+-    let mut x916: fiat_p384_scalar_u1 = 0;
+     let (x915, x916) = fiat_p384_scalar_addcarryx_u32(x914, x845, x891);
+-    let mut x917: u32 = 0;
+-    let mut x918: fiat_p384_scalar_u1 = 0;
+     let (x917, x918) = fiat_p384_scalar_addcarryx_u32(x916, x847, x893);
+-    let mut x919: u32 = 0;
+-    let mut x920: fiat_p384_scalar_u1 = 0;
+     let (x919, x920) = fiat_p384_scalar_addcarryx_u32(x918, x849, x895);
+-    let mut x921: u32 = 0;
+-    let mut x922: fiat_p384_scalar_u1 = 0;
+     let (x921, x922) = fiat_p384_scalar_addcarryx_u32(x920, x851, x897);
+-    let mut x923: u32 = 0;
+-    let mut x924: u32 = 0;
+     let (x923, x924) = fiat_p384_scalar_mulx_u32(x899, 0xe88fdc45);
+-    let mut x925: u32 = 0;
+-    let mut x926: u32 = 0;
+     let (x925, x926) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+-    let mut x927: u32 = 0;
+-    let mut x928: u32 = 0;
+     let (x927, x928) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+-    let mut x929: u32 = 0;
+-    let mut x930: u32 = 0;
+     let (x929, x930) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+-    let mut x931: u32 = 0;
+-    let mut x932: u32 = 0;
+     let (x931, x932) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+-    let mut x933: u32 = 0;
+-    let mut x934: u32 = 0;
+     let (x933, x934) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+-    let mut x935: u32 = 0;
+-    let mut x936: u32 = 0;
+     let (x935, x936) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+-    let mut x937: u32 = 0;
+-    let mut x938: u32 = 0;
+     let (x937, x938) = fiat_p384_scalar_mulx_u32(x923, 0xc7634d81);
+-    let mut x939: u32 = 0;
+-    let mut x940: u32 = 0;
+     let (x939, x940) = fiat_p384_scalar_mulx_u32(x923, 0xf4372ddf);
+-    let mut x941: u32 = 0;
+-    let mut x942: u32 = 0;
+     let (x941, x942) = fiat_p384_scalar_mulx_u32(x923, 0x581a0db2);
+-    let mut x943: u32 = 0;
+-    let mut x944: u32 = 0;
+     let (x943, x944) = fiat_p384_scalar_mulx_u32(x923, 0x48b0a77a);
+-    let mut x945: u32 = 0;
+-    let mut x946: u32 = 0;
+     let (x945, x946) = fiat_p384_scalar_mulx_u32(x923, 0xecec196a);
+-    let mut x947: u32 = 0;
+-    let mut x948: u32 = 0;
+     let (x947, x948) = fiat_p384_scalar_mulx_u32(x923, 0xccc52973);
+-    let mut x949: u32 = 0;
+-    let mut x950: fiat_p384_scalar_u1 = 0;
+     let (x949, x950) = fiat_p384_scalar_addcarryx_u32(0x0, x948, x945);
+-    let mut x951: u32 = 0;
+-    let mut x952: fiat_p384_scalar_u1 = 0;
+     let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x946, x943);
+-    let mut x953: u32 = 0;
+-    let mut x954: fiat_p384_scalar_u1 = 0;
+     let (x953, x954) = fiat_p384_scalar_addcarryx_u32(x952, x944, x941);
+-    let mut x955: u32 = 0;
+-    let mut x956: fiat_p384_scalar_u1 = 0;
+     let (x955, x956) = fiat_p384_scalar_addcarryx_u32(x954, x942, x939);
+-    let mut x957: u32 = 0;
+-    let mut x958: fiat_p384_scalar_u1 = 0;
+     let (x957, x958) = fiat_p384_scalar_addcarryx_u32(x956, x940, x937);
+-    let mut x959: u32 = 0;
+-    let mut x960: fiat_p384_scalar_u1 = 0;
+     let (x959, x960) = fiat_p384_scalar_addcarryx_u32(x958, x938, x935);
+-    let mut x961: u32 = 0;
+-    let mut x962: fiat_p384_scalar_u1 = 0;
+     let (x961, x962) = fiat_p384_scalar_addcarryx_u32(x960, x936, x933);
+-    let mut x963: u32 = 0;
+-    let mut x964: fiat_p384_scalar_u1 = 0;
+     let (x963, x964) = fiat_p384_scalar_addcarryx_u32(x962, x934, x931);
+-    let mut x965: u32 = 0;
+-    let mut x966: fiat_p384_scalar_u1 = 0;
+     let (x965, x966) = fiat_p384_scalar_addcarryx_u32(x964, x932, x929);
+-    let mut x967: u32 = 0;
+-    let mut x968: fiat_p384_scalar_u1 = 0;
+     let (x967, x968) = fiat_p384_scalar_addcarryx_u32(x966, x930, x927);
+-    let mut x969: u32 = 0;
+-    let mut x970: fiat_p384_scalar_u1 = 0;
+     let (x969, x970) = fiat_p384_scalar_addcarryx_u32(x968, x928, x925);
+-    let mut x971: u32 = 0;
+-    let mut x972: fiat_p384_scalar_u1 = 0;
+     let (x971, x972) = fiat_p384_scalar_addcarryx_u32(0x0, x899, x947);
+-    let mut x973: u32 = 0;
+-    let mut x974: fiat_p384_scalar_u1 = 0;
+     let (x973, x974) = fiat_p384_scalar_addcarryx_u32(x972, x901, x949);
+-    let mut x975: u32 = 0;
+-    let mut x976: fiat_p384_scalar_u1 = 0;
+     let (x975, x976) = fiat_p384_scalar_addcarryx_u32(x974, x903, x951);
+-    let mut x977: u32 = 0;
+-    let mut x978: fiat_p384_scalar_u1 = 0;
+     let (x977, x978) = fiat_p384_scalar_addcarryx_u32(x976, x905, x953);
+-    let mut x979: u32 = 0;
+-    let mut x980: fiat_p384_scalar_u1 = 0;
+     let (x979, x980) = fiat_p384_scalar_addcarryx_u32(x978, x907, x955);
+-    let mut x981: u32 = 0;
+-    let mut x982: fiat_p384_scalar_u1 = 0;
+     let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x909, x957);
+-    let mut x983: u32 = 0;
+-    let mut x984: fiat_p384_scalar_u1 = 0;
+     let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x911, x959);
+-    let mut x985: u32 = 0;
+-    let mut x986: fiat_p384_scalar_u1 = 0;
+     let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x913, x961);
+-    let mut x987: u32 = 0;
+-    let mut x988: fiat_p384_scalar_u1 = 0;
+     let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x915, x963);
+-    let mut x989: u32 = 0;
+-    let mut x990: fiat_p384_scalar_u1 = 0;
+     let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x917, x965);
+-    let mut x991: u32 = 0;
+-    let mut x992: fiat_p384_scalar_u1 = 0;
+     let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x919, x967);
+-    let mut x993: u32 = 0;
+-    let mut x994: fiat_p384_scalar_u1 = 0;
+     let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x921, x969);
+-    let mut x995: u32 = 0;
+-    let mut x996: fiat_p384_scalar_u1 = 0;
+     let (x995, x996) = fiat_p384_scalar_addcarryx_u32(
+         x994,
+         (((x922 as u32) + (x852 as u32)) + ((x898 as u32) + x854)),
+         ((x970 as u32) + x926),
+     );
+-    let mut x997: u32 = 0;
+-    let mut x998: u32 = 0;
+     let (x997, x998) = fiat_p384_scalar_mulx_u32(x7, 0xc84ee01);
+-    let mut x999: u32 = 0;
+-    let mut x1000: u32 = 0;
+     let (x999, x1000) = fiat_p384_scalar_mulx_u32(x7, 0x2b39bf21);
+-    let mut x1001: u32 = 0;
+-    let mut x1002: u32 = 0;
+     let (x1001, x1002) = fiat_p384_scalar_mulx_u32(x7, 0x3fb05b7a);
+-    let mut x1003: u32 = 0;
+-    let mut x1004: u32 = 0;
+     let (x1003, x1004) = fiat_p384_scalar_mulx_u32(x7, 0x28266895);
+-    let mut x1005: u32 = 0;
+-    let mut x1006: u32 = 0;
+     let (x1005, x1006) = fiat_p384_scalar_mulx_u32(x7, 0xd40d4917);
+-    let mut x1007: u32 = 0;
+-    let mut x1008: u32 = 0;
+     let (x1007, x1008) = fiat_p384_scalar_mulx_u32(x7, 0x4aab1cc5);
+-    let mut x1009: u32 = 0;
+-    let mut x1010: u32 = 0;
+     let (x1009, x1010) = fiat_p384_scalar_mulx_u32(x7, 0xbc3e483a);
+-    let mut x1011: u32 = 0;
+-    let mut x1012: u32 = 0;
+     let (x1011, x1012) = fiat_p384_scalar_mulx_u32(x7, 0xfcb82947);
+-    let mut x1013: u32 = 0;
+-    let mut x1014: u32 = 0;
+     let (x1013, x1014) = fiat_p384_scalar_mulx_u32(x7, 0xff3d81e5);
+-    let mut x1015: u32 = 0;
+-    let mut x1016: u32 = 0;
+     let (x1015, x1016) = fiat_p384_scalar_mulx_u32(x7, 0xdf1aa419);
+-    let mut x1017: u32 = 0;
+-    let mut x1018: u32 = 0;
+     let (x1017, x1018) = fiat_p384_scalar_mulx_u32(x7, 0x2d319b24);
+-    let mut x1019: u32 = 0;
+-    let mut x1020: u32 = 0;
+     let (x1019, x1020) = fiat_p384_scalar_mulx_u32(x7, 0x19b409a9);
+-    let mut x1021: u32 = 0;
+-    let mut x1022: fiat_p384_scalar_u1 = 0;
+     let (x1021, x1022) = fiat_p384_scalar_addcarryx_u32(0x0, x1020, x1017);
+-    let mut x1023: u32 = 0;
+-    let mut x1024: fiat_p384_scalar_u1 = 0;
+     let (x1023, x1024) = fiat_p384_scalar_addcarryx_u32(x1022, x1018, x1015);
+-    let mut x1025: u32 = 0;
+-    let mut x1026: fiat_p384_scalar_u1 = 0;
+     let (x1025, x1026) = fiat_p384_scalar_addcarryx_u32(x1024, x1016, x1013);
+-    let mut x1027: u32 = 0;
+-    let mut x1028: fiat_p384_scalar_u1 = 0;
+     let (x1027, x1028) = fiat_p384_scalar_addcarryx_u32(x1026, x1014, x1011);
+-    let mut x1029: u32 = 0;
+-    let mut x1030: fiat_p384_scalar_u1 = 0;
+     let (x1029, x1030) = fiat_p384_scalar_addcarryx_u32(x1028, x1012, x1009);
+-    let mut x1031: u32 = 0;
+-    let mut x1032: fiat_p384_scalar_u1 = 0;
+     let (x1031, x1032) = fiat_p384_scalar_addcarryx_u32(x1030, x1010, x1007);
+-    let mut x1033: u32 = 0;
+-    let mut x1034: fiat_p384_scalar_u1 = 0;
+     let (x1033, x1034) = fiat_p384_scalar_addcarryx_u32(x1032, x1008, x1005);
+-    let mut x1035: u32 = 0;
+-    let mut x1036: fiat_p384_scalar_u1 = 0;
+     let (x1035, x1036) = fiat_p384_scalar_addcarryx_u32(x1034, x1006, x1003);
+-    let mut x1037: u32 = 0;
+-    let mut x1038: fiat_p384_scalar_u1 = 0;
+     let (x1037, x1038) = fiat_p384_scalar_addcarryx_u32(x1036, x1004, x1001);
+-    let mut x1039: u32 = 0;
+-    let mut x1040: fiat_p384_scalar_u1 = 0;
+     let (x1039, x1040) = fiat_p384_scalar_addcarryx_u32(x1038, x1002, x999);
+-    let mut x1041: u32 = 0;
+-    let mut x1042: fiat_p384_scalar_u1 = 0;
+     let (x1041, x1042) = fiat_p384_scalar_addcarryx_u32(x1040, x1000, x997);
+-    let mut x1043: u32 = 0;
+-    let mut x1044: fiat_p384_scalar_u1 = 0;
+     let (x1043, x1044) = fiat_p384_scalar_addcarryx_u32(0x0, x973, x1019);
+-    let mut x1045: u32 = 0;
+-    let mut x1046: fiat_p384_scalar_u1 = 0;
+     let (x1045, x1046) = fiat_p384_scalar_addcarryx_u32(x1044, x975, x1021);
+-    let mut x1047: u32 = 0;
+-    let mut x1048: fiat_p384_scalar_u1 = 0;
+     let (x1047, x1048) = fiat_p384_scalar_addcarryx_u32(x1046, x977, x1023);
+-    let mut x1049: u32 = 0;
+-    let mut x1050: fiat_p384_scalar_u1 = 0;
+     let (x1049, x1050) = fiat_p384_scalar_addcarryx_u32(x1048, x979, x1025);
+-    let mut x1051: u32 = 0;
+-    let mut x1052: fiat_p384_scalar_u1 = 0;
+     let (x1051, x1052) = fiat_p384_scalar_addcarryx_u32(x1050, x981, x1027);
+-    let mut x1053: u32 = 0;
+-    let mut x1054: fiat_p384_scalar_u1 = 0;
+     let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(x1052, x983, x1029);
+-    let mut x1055: u32 = 0;
+-    let mut x1056: fiat_p384_scalar_u1 = 0;
+     let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x985, x1031);
+-    let mut x1057: u32 = 0;
+-    let mut x1058: fiat_p384_scalar_u1 = 0;
+     let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x987, x1033);
+-    let mut x1059: u32 = 0;
+-    let mut x1060: fiat_p384_scalar_u1 = 0;
+     let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x989, x1035);
+-    let mut x1061: u32 = 0;
+-    let mut x1062: fiat_p384_scalar_u1 = 0;
+     let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x991, x1037);
+-    let mut x1063: u32 = 0;
+-    let mut x1064: fiat_p384_scalar_u1 = 0;
+     let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x993, x1039);
+-    let mut x1065: u32 = 0;
+-    let mut x1066: fiat_p384_scalar_u1 = 0;
+     let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x995, x1041);
+-    let mut x1067: u32 = 0;
+-    let mut x1068: u32 = 0;
+     let (x1067, x1068) = fiat_p384_scalar_mulx_u32(x1043, 0xe88fdc45);
+-    let mut x1069: u32 = 0;
+-    let mut x1070: u32 = 0;
+     let (x1069, x1070) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+-    let mut x1071: u32 = 0;
+-    let mut x1072: u32 = 0;
+     let (x1071, x1072) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+-    let mut x1073: u32 = 0;
+-    let mut x1074: u32 = 0;
+     let (x1073, x1074) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+-    let mut x1075: u32 = 0;
+-    let mut x1076: u32 = 0;
+     let (x1075, x1076) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+-    let mut x1077: u32 = 0;
+-    let mut x1078: u32 = 0;
+     let (x1077, x1078) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+-    let mut x1079: u32 = 0;
+-    let mut x1080: u32 = 0;
+     let (x1079, x1080) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+-    let mut x1081: u32 = 0;
+-    let mut x1082: u32 = 0;
+     let (x1081, x1082) = fiat_p384_scalar_mulx_u32(x1067, 0xc7634d81);
+-    let mut x1083: u32 = 0;
+-    let mut x1084: u32 = 0;
+     let (x1083, x1084) = fiat_p384_scalar_mulx_u32(x1067, 0xf4372ddf);
+-    let mut x1085: u32 = 0;
+-    let mut x1086: u32 = 0;
+     let (x1085, x1086) = fiat_p384_scalar_mulx_u32(x1067, 0x581a0db2);
+-    let mut x1087: u32 = 0;
+-    let mut x1088: u32 = 0;
+     let (x1087, x1088) = fiat_p384_scalar_mulx_u32(x1067, 0x48b0a77a);
+-    let mut x1089: u32 = 0;
+-    let mut x1090: u32 = 0;
+     let (x1089, x1090) = fiat_p384_scalar_mulx_u32(x1067, 0xecec196a);
+-    let mut x1091: u32 = 0;
+-    let mut x1092: u32 = 0;
+     let (x1091, x1092) = fiat_p384_scalar_mulx_u32(x1067, 0xccc52973);
+-    let mut x1093: u32 = 0;
+-    let mut x1094: fiat_p384_scalar_u1 = 0;
+     let (x1093, x1094) = fiat_p384_scalar_addcarryx_u32(0x0, x1092, x1089);
+-    let mut x1095: u32 = 0;
+-    let mut x1096: fiat_p384_scalar_u1 = 0;
+     let (x1095, x1096) = fiat_p384_scalar_addcarryx_u32(x1094, x1090, x1087);
+-    let mut x1097: u32 = 0;
+-    let mut x1098: fiat_p384_scalar_u1 = 0;
+     let (x1097, x1098) = fiat_p384_scalar_addcarryx_u32(x1096, x1088, x1085);
+-    let mut x1099: u32 = 0;
+-    let mut x1100: fiat_p384_scalar_u1 = 0;
+     let (x1099, x1100) = fiat_p384_scalar_addcarryx_u32(x1098, x1086, x1083);
+-    let mut x1101: u32 = 0;
+-    let mut x1102: fiat_p384_scalar_u1 = 0;
+     let (x1101, x1102) = fiat_p384_scalar_addcarryx_u32(x1100, x1084, x1081);
+-    let mut x1103: u32 = 0;
+-    let mut x1104: fiat_p384_scalar_u1 = 0;
+     let (x1103, x1104) = fiat_p384_scalar_addcarryx_u32(x1102, x1082, x1079);
+-    let mut x1105: u32 = 0;
+-    let mut x1106: fiat_p384_scalar_u1 = 0;
+     let (x1105, x1106) = fiat_p384_scalar_addcarryx_u32(x1104, x1080, x1077);
+-    let mut x1107: u32 = 0;
+-    let mut x1108: fiat_p384_scalar_u1 = 0;
+     let (x1107, x1108) = fiat_p384_scalar_addcarryx_u32(x1106, x1078, x1075);
+-    let mut x1109: u32 = 0;
+-    let mut x1110: fiat_p384_scalar_u1 = 0;
+     let (x1109, x1110) = fiat_p384_scalar_addcarryx_u32(x1108, x1076, x1073);
+-    let mut x1111: u32 = 0;
+-    let mut x1112: fiat_p384_scalar_u1 = 0;
+     let (x1111, x1112) = fiat_p384_scalar_addcarryx_u32(x1110, x1074, x1071);
+-    let mut x1113: u32 = 0;
+-    let mut x1114: fiat_p384_scalar_u1 = 0;
+     let (x1113, x1114) = fiat_p384_scalar_addcarryx_u32(x1112, x1072, x1069);
+-    let mut x1115: u32 = 0;
+-    let mut x1116: fiat_p384_scalar_u1 = 0;
+     let (x1115, x1116) = fiat_p384_scalar_addcarryx_u32(0x0, x1043, x1091);
+-    let mut x1117: u32 = 0;
+-    let mut x1118: fiat_p384_scalar_u1 = 0;
+     let (x1117, x1118) = fiat_p384_scalar_addcarryx_u32(x1116, x1045, x1093);
+-    let mut x1119: u32 = 0;
+-    let mut x1120: fiat_p384_scalar_u1 = 0;
+     let (x1119, x1120) = fiat_p384_scalar_addcarryx_u32(x1118, x1047, x1095);
+-    let mut x1121: u32 = 0;
+-    let mut x1122: fiat_p384_scalar_u1 = 0;
+     let (x1121, x1122) = fiat_p384_scalar_addcarryx_u32(x1120, x1049, x1097);
+-    let mut x1123: u32 = 0;
+-    let mut x1124: fiat_p384_scalar_u1 = 0;
+     let (x1123, x1124) = fiat_p384_scalar_addcarryx_u32(x1122, x1051, x1099);
+-    let mut x1125: u32 = 0;
+-    let mut x1126: fiat_p384_scalar_u1 = 0;
+     let (x1125, x1126) = fiat_p384_scalar_addcarryx_u32(x1124, x1053, x1101);
+-    let mut x1127: u32 = 0;
+-    let mut x1128: fiat_p384_scalar_u1 = 0;
+     let (x1127, x1128) = fiat_p384_scalar_addcarryx_u32(x1126, x1055, x1103);
+-    let mut x1129: u32 = 0;
+-    let mut x1130: fiat_p384_scalar_u1 = 0;
+     let (x1129, x1130) = fiat_p384_scalar_addcarryx_u32(x1128, x1057, x1105);
+-    let mut x1131: u32 = 0;
+-    let mut x1132: fiat_p384_scalar_u1 = 0;
+     let (x1131, x1132) = fiat_p384_scalar_addcarryx_u32(x1130, x1059, x1107);
+-    let mut x1133: u32 = 0;
+-    let mut x1134: fiat_p384_scalar_u1 = 0;
+     let (x1133, x1134) = fiat_p384_scalar_addcarryx_u32(x1132, x1061, x1109);
+-    let mut x1135: u32 = 0;
+-    let mut x1136: fiat_p384_scalar_u1 = 0;
+     let (x1135, x1136) = fiat_p384_scalar_addcarryx_u32(x1134, x1063, x1111);
+-    let mut x1137: u32 = 0;
+-    let mut x1138: fiat_p384_scalar_u1 = 0;
+     let (x1137, x1138) = fiat_p384_scalar_addcarryx_u32(x1136, x1065, x1113);
+-    let mut x1139: u32 = 0;
+-    let mut x1140: fiat_p384_scalar_u1 = 0;
+     let (x1139, x1140) = fiat_p384_scalar_addcarryx_u32(
+         x1138,
+         (((x1066 as u32) + (x996 as u32)) + ((x1042 as u32) + x998)),
+         ((x1114 as u32) + x1070),
+     );
+-    let mut x1141: u32 = 0;
+-    let mut x1142: u32 = 0;
+     let (x1141, x1142) = fiat_p384_scalar_mulx_u32(x8, 0xc84ee01);
+-    let mut x1143: u32 = 0;
+-    let mut x1144: u32 = 0;
+     let (x1143, x1144) = fiat_p384_scalar_mulx_u32(x8, 0x2b39bf21);
+-    let mut x1145: u32 = 0;
+-    let mut x1146: u32 = 0;
+     let (x1145, x1146) = fiat_p384_scalar_mulx_u32(x8, 0x3fb05b7a);
+-    let mut x1147: u32 = 0;
+-    let mut x1148: u32 = 0;
+     let (x1147, x1148) = fiat_p384_scalar_mulx_u32(x8, 0x28266895);
+-    let mut x1149: u32 = 0;
+-    let mut x1150: u32 = 0;
+     let (x1149, x1150) = fiat_p384_scalar_mulx_u32(x8, 0xd40d4917);
+-    let mut x1151: u32 = 0;
+-    let mut x1152: u32 = 0;
+     let (x1151, x1152) = fiat_p384_scalar_mulx_u32(x8, 0x4aab1cc5);
+-    let mut x1153: u32 = 0;
+-    let mut x1154: u32 = 0;
+     let (x1153, x1154) = fiat_p384_scalar_mulx_u32(x8, 0xbc3e483a);
+-    let mut x1155: u32 = 0;
+-    let mut x1156: u32 = 0;
+     let (x1155, x1156) = fiat_p384_scalar_mulx_u32(x8, 0xfcb82947);
+-    let mut x1157: u32 = 0;
+-    let mut x1158: u32 = 0;
+     let (x1157, x1158) = fiat_p384_scalar_mulx_u32(x8, 0xff3d81e5);
+-    let mut x1159: u32 = 0;
+-    let mut x1160: u32 = 0;
+     let (x1159, x1160) = fiat_p384_scalar_mulx_u32(x8, 0xdf1aa419);
+-    let mut x1161: u32 = 0;
+-    let mut x1162: u32 = 0;
+     let (x1161, x1162) = fiat_p384_scalar_mulx_u32(x8, 0x2d319b24);
+-    let mut x1163: u32 = 0;
+-    let mut x1164: u32 = 0;
+     let (x1163, x1164) = fiat_p384_scalar_mulx_u32(x8, 0x19b409a9);
+-    let mut x1165: u32 = 0;
+-    let mut x1166: fiat_p384_scalar_u1 = 0;
+     let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(0x0, x1164, x1161);
+-    let mut x1167: u32 = 0;
+-    let mut x1168: fiat_p384_scalar_u1 = 0;
+     let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1162, x1159);
+-    let mut x1169: u32 = 0;
+-    let mut x1170: fiat_p384_scalar_u1 = 0;
+     let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1160, x1157);
+-    let mut x1171: u32 = 0;
+-    let mut x1172: fiat_p384_scalar_u1 = 0;
+     let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1158, x1155);
+-    let mut x1173: u32 = 0;
+-    let mut x1174: fiat_p384_scalar_u1 = 0;
+     let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1156, x1153);
+-    let mut x1175: u32 = 0;
+-    let mut x1176: fiat_p384_scalar_u1 = 0;
+     let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1154, x1151);
+-    let mut x1177: u32 = 0;
+-    let mut x1178: fiat_p384_scalar_u1 = 0;
+     let (x1177, x1178) = fiat_p384_scalar_addcarryx_u32(x1176, x1152, x1149);
+-    let mut x1179: u32 = 0;
+-    let mut x1180: fiat_p384_scalar_u1 = 0;
+     let (x1179, x1180) = fiat_p384_scalar_addcarryx_u32(x1178, x1150, x1147);
+-    let mut x1181: u32 = 0;
+-    let mut x1182: fiat_p384_scalar_u1 = 0;
+     let (x1181, x1182) = fiat_p384_scalar_addcarryx_u32(x1180, x1148, x1145);
+-    let mut x1183: u32 = 0;
+-    let mut x1184: fiat_p384_scalar_u1 = 0;
+     let (x1183, x1184) = fiat_p384_scalar_addcarryx_u32(x1182, x1146, x1143);
+-    let mut x1185: u32 = 0;
+-    let mut x1186: fiat_p384_scalar_u1 = 0;
+     let (x1185, x1186) = fiat_p384_scalar_addcarryx_u32(x1184, x1144, x1141);
+-    let mut x1187: u32 = 0;
+-    let mut x1188: fiat_p384_scalar_u1 = 0;
+     let (x1187, x1188) = fiat_p384_scalar_addcarryx_u32(0x0, x1117, x1163);
+-    let mut x1189: u32 = 0;
+-    let mut x1190: fiat_p384_scalar_u1 = 0;
+     let (x1189, x1190) = fiat_p384_scalar_addcarryx_u32(x1188, x1119, x1165);
+-    let mut x1191: u32 = 0;
+-    let mut x1192: fiat_p384_scalar_u1 = 0;
+     let (x1191, x1192) = fiat_p384_scalar_addcarryx_u32(x1190, x1121, x1167);
+-    let mut x1193: u32 = 0;
+-    let mut x1194: fiat_p384_scalar_u1 = 0;
+     let (x1193, x1194) = fiat_p384_scalar_addcarryx_u32(x1192, x1123, x1169);
+-    let mut x1195: u32 = 0;
+-    let mut x1196: fiat_p384_scalar_u1 = 0;
+     let (x1195, x1196) = fiat_p384_scalar_addcarryx_u32(x1194, x1125, x1171);
+-    let mut x1197: u32 = 0;
+-    let mut x1198: fiat_p384_scalar_u1 = 0;
+     let (x1197, x1198) = fiat_p384_scalar_addcarryx_u32(x1196, x1127, x1173);
+-    let mut x1199: u32 = 0;
+-    let mut x1200: fiat_p384_scalar_u1 = 0;
+     let (x1199, x1200) = fiat_p384_scalar_addcarryx_u32(x1198, x1129, x1175);
+-    let mut x1201: u32 = 0;
+-    let mut x1202: fiat_p384_scalar_u1 = 0;
+     let (x1201, x1202) = fiat_p384_scalar_addcarryx_u32(x1200, x1131, x1177);
+-    let mut x1203: u32 = 0;
+-    let mut x1204: fiat_p384_scalar_u1 = 0;
+     let (x1203, x1204) = fiat_p384_scalar_addcarryx_u32(x1202, x1133, x1179);
+-    let mut x1205: u32 = 0;
+-    let mut x1206: fiat_p384_scalar_u1 = 0;
+     let (x1205, x1206) = fiat_p384_scalar_addcarryx_u32(x1204, x1135, x1181);
+-    let mut x1207: u32 = 0;
+-    let mut x1208: fiat_p384_scalar_u1 = 0;
+     let (x1207, x1208) = fiat_p384_scalar_addcarryx_u32(x1206, x1137, x1183);
+-    let mut x1209: u32 = 0;
+-    let mut x1210: fiat_p384_scalar_u1 = 0;
+     let (x1209, x1210) = fiat_p384_scalar_addcarryx_u32(x1208, x1139, x1185);
+-    let mut x1211: u32 = 0;
+-    let mut x1212: u32 = 0;
+     let (x1211, x1212) = fiat_p384_scalar_mulx_u32(x1187, 0xe88fdc45);
+-    let mut x1213: u32 = 0;
+-    let mut x1214: u32 = 0;
+     let (x1213, x1214) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+-    let mut x1215: u32 = 0;
+-    let mut x1216: u32 = 0;
+     let (x1215, x1216) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+-    let mut x1217: u32 = 0;
+-    let mut x1218: u32 = 0;
+     let (x1217, x1218) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+-    let mut x1219: u32 = 0;
+-    let mut x1220: u32 = 0;
+     let (x1219, x1220) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+-    let mut x1221: u32 = 0;
+-    let mut x1222: u32 = 0;
+     let (x1221, x1222) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+-    let mut x1223: u32 = 0;
+-    let mut x1224: u32 = 0;
+     let (x1223, x1224) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+-    let mut x1225: u32 = 0;
+-    let mut x1226: u32 = 0;
+     let (x1225, x1226) = fiat_p384_scalar_mulx_u32(x1211, 0xc7634d81);
+-    let mut x1227: u32 = 0;
+-    let mut x1228: u32 = 0;
+     let (x1227, x1228) = fiat_p384_scalar_mulx_u32(x1211, 0xf4372ddf);
+-    let mut x1229: u32 = 0;
+-    let mut x1230: u32 = 0;
+     let (x1229, x1230) = fiat_p384_scalar_mulx_u32(x1211, 0x581a0db2);
+-    let mut x1231: u32 = 0;
+-    let mut x1232: u32 = 0;
+     let (x1231, x1232) = fiat_p384_scalar_mulx_u32(x1211, 0x48b0a77a);
+-    let mut x1233: u32 = 0;
+-    let mut x1234: u32 = 0;
+     let (x1233, x1234) = fiat_p384_scalar_mulx_u32(x1211, 0xecec196a);
+-    let mut x1235: u32 = 0;
+-    let mut x1236: u32 = 0;
+     let (x1235, x1236) = fiat_p384_scalar_mulx_u32(x1211, 0xccc52973);
+-    let mut x1237: u32 = 0;
+-    let mut x1238: fiat_p384_scalar_u1 = 0;
+     let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(0x0, x1236, x1233);
+-    let mut x1239: u32 = 0;
+-    let mut x1240: fiat_p384_scalar_u1 = 0;
+     let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1234, x1231);
+-    let mut x1241: u32 = 0;
+-    let mut x1242: fiat_p384_scalar_u1 = 0;
+     let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1232, x1229);
+-    let mut x1243: u32 = 0;
+-    let mut x1244: fiat_p384_scalar_u1 = 0;
+     let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1230, x1227);
+-    let mut x1245: u32 = 0;
+-    let mut x1246: fiat_p384_scalar_u1 = 0;
+     let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1228, x1225);
+-    let mut x1247: u32 = 0;
+-    let mut x1248: fiat_p384_scalar_u1 = 0;
+     let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1226, x1223);
+-    let mut x1249: u32 = 0;
+-    let mut x1250: fiat_p384_scalar_u1 = 0;
+     let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1224, x1221);
+-    let mut x1251: u32 = 0;
+-    let mut x1252: fiat_p384_scalar_u1 = 0;
+     let (x1251, x1252) = fiat_p384_scalar_addcarryx_u32(x1250, x1222, x1219);
+-    let mut x1253: u32 = 0;
+-    let mut x1254: fiat_p384_scalar_u1 = 0;
+     let (x1253, x1254) = fiat_p384_scalar_addcarryx_u32(x1252, x1220, x1217);
+-    let mut x1255: u32 = 0;
+-    let mut x1256: fiat_p384_scalar_u1 = 0;
+     let (x1255, x1256) = fiat_p384_scalar_addcarryx_u32(x1254, x1218, x1215);
+-    let mut x1257: u32 = 0;
+-    let mut x1258: fiat_p384_scalar_u1 = 0;
+     let (x1257, x1258) = fiat_p384_scalar_addcarryx_u32(x1256, x1216, x1213);
+-    let mut x1259: u32 = 0;
+-    let mut x1260: fiat_p384_scalar_u1 = 0;
+     let (x1259, x1260) = fiat_p384_scalar_addcarryx_u32(0x0, x1187, x1235);
+-    let mut x1261: u32 = 0;
+-    let mut x1262: fiat_p384_scalar_u1 = 0;
+     let (x1261, x1262) = fiat_p384_scalar_addcarryx_u32(x1260, x1189, x1237);
+-    let mut x1263: u32 = 0;
+-    let mut x1264: fiat_p384_scalar_u1 = 0;
+     let (x1263, x1264) = fiat_p384_scalar_addcarryx_u32(x1262, x1191, x1239);
+-    let mut x1265: u32 = 0;
+-    let mut x1266: fiat_p384_scalar_u1 = 0;
+     let (x1265, x1266) = fiat_p384_scalar_addcarryx_u32(x1264, x1193, x1241);
+-    let mut x1267: u32 = 0;
+-    let mut x1268: fiat_p384_scalar_u1 = 0;
+     let (x1267, x1268) = fiat_p384_scalar_addcarryx_u32(x1266, x1195, x1243);
+-    let mut x1269: u32 = 0;
+-    let mut x1270: fiat_p384_scalar_u1 = 0;
+     let (x1269, x1270) = fiat_p384_scalar_addcarryx_u32(x1268, x1197, x1245);
+-    let mut x1271: u32 = 0;
+-    let mut x1272: fiat_p384_scalar_u1 = 0;
+     let (x1271, x1272) = fiat_p384_scalar_addcarryx_u32(x1270, x1199, x1247);
+-    let mut x1273: u32 = 0;
+-    let mut x1274: fiat_p384_scalar_u1 = 0;
+     let (x1273, x1274) = fiat_p384_scalar_addcarryx_u32(x1272, x1201, x1249);
+-    let mut x1275: u32 = 0;
+-    let mut x1276: fiat_p384_scalar_u1 = 0;
+     let (x1275, x1276) = fiat_p384_scalar_addcarryx_u32(x1274, x1203, x1251);
+-    let mut x1277: u32 = 0;
+-    let mut x1278: fiat_p384_scalar_u1 = 0;
+     let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(x1276, x1205, x1253);
+-    let mut x1279: u32 = 0;
+-    let mut x1280: fiat_p384_scalar_u1 = 0;
+     let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1207, x1255);
+-    let mut x1281: u32 = 0;
+-    let mut x1282: fiat_p384_scalar_u1 = 0;
+     let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1209, x1257);
+-    let mut x1283: u32 = 0;
+-    let mut x1284: fiat_p384_scalar_u1 = 0;
+     let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(
+         x1282,
+         (((x1210 as u32) + (x1140 as u32)) + ((x1186 as u32) + x1142)),
+         ((x1258 as u32) + x1214),
+     );
+-    let mut x1285: u32 = 0;
+-    let mut x1286: u32 = 0;
+     let (x1285, x1286) = fiat_p384_scalar_mulx_u32(x9, 0xc84ee01);
+-    let mut x1287: u32 = 0;
+-    let mut x1288: u32 = 0;
+     let (x1287, x1288) = fiat_p384_scalar_mulx_u32(x9, 0x2b39bf21);
+-    let mut x1289: u32 = 0;
+-    let mut x1290: u32 = 0;
+     let (x1289, x1290) = fiat_p384_scalar_mulx_u32(x9, 0x3fb05b7a);
+-    let mut x1291: u32 = 0;
+-    let mut x1292: u32 = 0;
+     let (x1291, x1292) = fiat_p384_scalar_mulx_u32(x9, 0x28266895);
+-    let mut x1293: u32 = 0;
+-    let mut x1294: u32 = 0;
+     let (x1293, x1294) = fiat_p384_scalar_mulx_u32(x9, 0xd40d4917);
+-    let mut x1295: u32 = 0;
+-    let mut x1296: u32 = 0;
+     let (x1295, x1296) = fiat_p384_scalar_mulx_u32(x9, 0x4aab1cc5);
+-    let mut x1297: u32 = 0;
+-    let mut x1298: u32 = 0;
+     let (x1297, x1298) = fiat_p384_scalar_mulx_u32(x9, 0xbc3e483a);
+-    let mut x1299: u32 = 0;
+-    let mut x1300: u32 = 0;
+     let (x1299, x1300) = fiat_p384_scalar_mulx_u32(x9, 0xfcb82947);
+-    let mut x1301: u32 = 0;
+-    let mut x1302: u32 = 0;
+     let (x1301, x1302) = fiat_p384_scalar_mulx_u32(x9, 0xff3d81e5);
+-    let mut x1303: u32 = 0;
+-    let mut x1304: u32 = 0;
+     let (x1303, x1304) = fiat_p384_scalar_mulx_u32(x9, 0xdf1aa419);
+-    let mut x1305: u32 = 0;
+-    let mut x1306: u32 = 0;
+     let (x1305, x1306) = fiat_p384_scalar_mulx_u32(x9, 0x2d319b24);
+-    let mut x1307: u32 = 0;
+-    let mut x1308: u32 = 0;
+     let (x1307, x1308) = fiat_p384_scalar_mulx_u32(x9, 0x19b409a9);
+-    let mut x1309: u32 = 0;
+-    let mut x1310: fiat_p384_scalar_u1 = 0;
+     let (x1309, x1310) = fiat_p384_scalar_addcarryx_u32(0x0, x1308, x1305);
+-    let mut x1311: u32 = 0;
+-    let mut x1312: fiat_p384_scalar_u1 = 0;
+     let (x1311, x1312) = fiat_p384_scalar_addcarryx_u32(x1310, x1306, x1303);
+-    let mut x1313: u32 = 0;
+-    let mut x1314: fiat_p384_scalar_u1 = 0;
+     let (x1313, x1314) = fiat_p384_scalar_addcarryx_u32(x1312, x1304, x1301);
+-    let mut x1315: u32 = 0;
+-    let mut x1316: fiat_p384_scalar_u1 = 0;
+     let (x1315, x1316) = fiat_p384_scalar_addcarryx_u32(x1314, x1302, x1299);
+-    let mut x1317: u32 = 0;
+-    let mut x1318: fiat_p384_scalar_u1 = 0;
+     let (x1317, x1318) = fiat_p384_scalar_addcarryx_u32(x1316, x1300, x1297);
+-    let mut x1319: u32 = 0;
+-    let mut x1320: fiat_p384_scalar_u1 = 0;
+     let (x1319, x1320) = fiat_p384_scalar_addcarryx_u32(x1318, x1298, x1295);
+-    let mut x1321: u32 = 0;
+-    let mut x1322: fiat_p384_scalar_u1 = 0;
+     let (x1321, x1322) = fiat_p384_scalar_addcarryx_u32(x1320, x1296, x1293);
+-    let mut x1323: u32 = 0;
+-    let mut x1324: fiat_p384_scalar_u1 = 0;
+     let (x1323, x1324) = fiat_p384_scalar_addcarryx_u32(x1322, x1294, x1291);
+-    let mut x1325: u32 = 0;
+-    let mut x1326: fiat_p384_scalar_u1 = 0;
+     let (x1325, x1326) = fiat_p384_scalar_addcarryx_u32(x1324, x1292, x1289);
+-    let mut x1327: u32 = 0;
+-    let mut x1328: fiat_p384_scalar_u1 = 0;
+     let (x1327, x1328) = fiat_p384_scalar_addcarryx_u32(x1326, x1290, x1287);
+-    let mut x1329: u32 = 0;
+-    let mut x1330: fiat_p384_scalar_u1 = 0;
+     let (x1329, x1330) = fiat_p384_scalar_addcarryx_u32(x1328, x1288, x1285);
+-    let mut x1331: u32 = 0;
+-    let mut x1332: fiat_p384_scalar_u1 = 0;
+     let (x1331, x1332) = fiat_p384_scalar_addcarryx_u32(0x0, x1261, x1307);
+-    let mut x1333: u32 = 0;
+-    let mut x1334: fiat_p384_scalar_u1 = 0;
+     let (x1333, x1334) = fiat_p384_scalar_addcarryx_u32(x1332, x1263, x1309);
+-    let mut x1335: u32 = 0;
+-    let mut x1336: fiat_p384_scalar_u1 = 0;
+     let (x1335, x1336) = fiat_p384_scalar_addcarryx_u32(x1334, x1265, x1311);
+-    let mut x1337: u32 = 0;
+-    let mut x1338: fiat_p384_scalar_u1 = 0;
+     let (x1337, x1338) = fiat_p384_scalar_addcarryx_u32(x1336, x1267, x1313);
+-    let mut x1339: u32 = 0;
+-    let mut x1340: fiat_p384_scalar_u1 = 0;
+     let (x1339, x1340) = fiat_p384_scalar_addcarryx_u32(x1338, x1269, x1315);
+-    let mut x1341: u32 = 0;
+-    let mut x1342: fiat_p384_scalar_u1 = 0;
+     let (x1341, x1342) = fiat_p384_scalar_addcarryx_u32(x1340, x1271, x1317);
+-    let mut x1343: u32 = 0;
+-    let mut x1344: fiat_p384_scalar_u1 = 0;
+     let (x1343, x1344) = fiat_p384_scalar_addcarryx_u32(x1342, x1273, x1319);
+-    let mut x1345: u32 = 0;
+-    let mut x1346: fiat_p384_scalar_u1 = 0;
+     let (x1345, x1346) = fiat_p384_scalar_addcarryx_u32(x1344, x1275, x1321);
+-    let mut x1347: u32 = 0;
+-    let mut x1348: fiat_p384_scalar_u1 = 0;
+     let (x1347, x1348) = fiat_p384_scalar_addcarryx_u32(x1346, x1277, x1323);
+-    let mut x1349: u32 = 0;
+-    let mut x1350: fiat_p384_scalar_u1 = 0;
+     let (x1349, x1350) = fiat_p384_scalar_addcarryx_u32(x1348, x1279, x1325);
+-    let mut x1351: u32 = 0;
+-    let mut x1352: fiat_p384_scalar_u1 = 0;
+     let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(x1350, x1281, x1327);
+-    let mut x1353: u32 = 0;
+-    let mut x1354: fiat_p384_scalar_u1 = 0;
+     let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1283, x1329);
+-    let mut x1355: u32 = 0;
+-    let mut x1356: u32 = 0;
+     let (x1355, x1356) = fiat_p384_scalar_mulx_u32(x1331, 0xe88fdc45);
+-    let mut x1357: u32 = 0;
+-    let mut x1358: u32 = 0;
+     let (x1357, x1358) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+-    let mut x1359: u32 = 0;
+-    let mut x1360: u32 = 0;
+     let (x1359, x1360) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+-    let mut x1361: u32 = 0;
+-    let mut x1362: u32 = 0;
+     let (x1361, x1362) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+-    let mut x1363: u32 = 0;
+-    let mut x1364: u32 = 0;
+     let (x1363, x1364) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+-    let mut x1365: u32 = 0;
+-    let mut x1366: u32 = 0;
+     let (x1365, x1366) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+-    let mut x1367: u32 = 0;
+-    let mut x1368: u32 = 0;
+     let (x1367, x1368) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+-    let mut x1369: u32 = 0;
+-    let mut x1370: u32 = 0;
+     let (x1369, x1370) = fiat_p384_scalar_mulx_u32(x1355, 0xc7634d81);
+-    let mut x1371: u32 = 0;
+-    let mut x1372: u32 = 0;
+     let (x1371, x1372) = fiat_p384_scalar_mulx_u32(x1355, 0xf4372ddf);
+-    let mut x1373: u32 = 0;
+-    let mut x1374: u32 = 0;
+     let (x1373, x1374) = fiat_p384_scalar_mulx_u32(x1355, 0x581a0db2);
+-    let mut x1375: u32 = 0;
+-    let mut x1376: u32 = 0;
+     let (x1375, x1376) = fiat_p384_scalar_mulx_u32(x1355, 0x48b0a77a);
+-    let mut x1377: u32 = 0;
+-    let mut x1378: u32 = 0;
+     let (x1377, x1378) = fiat_p384_scalar_mulx_u32(x1355, 0xecec196a);
+-    let mut x1379: u32 = 0;
+-    let mut x1380: u32 = 0;
+     let (x1379, x1380) = fiat_p384_scalar_mulx_u32(x1355, 0xccc52973);
+-    let mut x1381: u32 = 0;
+-    let mut x1382: fiat_p384_scalar_u1 = 0;
+     let (x1381, x1382) = fiat_p384_scalar_addcarryx_u32(0x0, x1380, x1377);
+-    let mut x1383: u32 = 0;
+-    let mut x1384: fiat_p384_scalar_u1 = 0;
+     let (x1383, x1384) = fiat_p384_scalar_addcarryx_u32(x1382, x1378, x1375);
+-    let mut x1385: u32 = 0;
+-    let mut x1386: fiat_p384_scalar_u1 = 0;
+     let (x1385, x1386) = fiat_p384_scalar_addcarryx_u32(x1384, x1376, x1373);
+-    let mut x1387: u32 = 0;
+-    let mut x1388: fiat_p384_scalar_u1 = 0;
+     let (x1387, x1388) = fiat_p384_scalar_addcarryx_u32(x1386, x1374, x1371);
+-    let mut x1389: u32 = 0;
+-    let mut x1390: fiat_p384_scalar_u1 = 0;
+     let (x1389, x1390) = fiat_p384_scalar_addcarryx_u32(x1388, x1372, x1369);
+-    let mut x1391: u32 = 0;
+-    let mut x1392: fiat_p384_scalar_u1 = 0;
+     let (x1391, x1392) = fiat_p384_scalar_addcarryx_u32(x1390, x1370, x1367);
+-    let mut x1393: u32 = 0;
+-    let mut x1394: fiat_p384_scalar_u1 = 0;
+     let (x1393, x1394) = fiat_p384_scalar_addcarryx_u32(x1392, x1368, x1365);
+-    let mut x1395: u32 = 0;
+-    let mut x1396: fiat_p384_scalar_u1 = 0;
+     let (x1395, x1396) = fiat_p384_scalar_addcarryx_u32(x1394, x1366, x1363);
+-    let mut x1397: u32 = 0;
+-    let mut x1398: fiat_p384_scalar_u1 = 0;
+     let (x1397, x1398) = fiat_p384_scalar_addcarryx_u32(x1396, x1364, x1361);
+-    let mut x1399: u32 = 0;
+-    let mut x1400: fiat_p384_scalar_u1 = 0;
+     let (x1399, x1400) = fiat_p384_scalar_addcarryx_u32(x1398, x1362, x1359);
+-    let mut x1401: u32 = 0;
+-    let mut x1402: fiat_p384_scalar_u1 = 0;
+     let (x1401, x1402) = fiat_p384_scalar_addcarryx_u32(x1400, x1360, x1357);
+-    let mut x1403: u32 = 0;
+-    let mut x1404: fiat_p384_scalar_u1 = 0;
+     let (x1403, x1404) = fiat_p384_scalar_addcarryx_u32(0x0, x1331, x1379);
+-    let mut x1405: u32 = 0;
+-    let mut x1406: fiat_p384_scalar_u1 = 0;
+     let (x1405, x1406) = fiat_p384_scalar_addcarryx_u32(x1404, x1333, x1381);
+-    let mut x1407: u32 = 0;
+-    let mut x1408: fiat_p384_scalar_u1 = 0;
+     let (x1407, x1408) = fiat_p384_scalar_addcarryx_u32(x1406, x1335, x1383);
+-    let mut x1409: u32 = 0;
+-    let mut x1410: fiat_p384_scalar_u1 = 0;
+     let (x1409, x1410) = fiat_p384_scalar_addcarryx_u32(x1408, x1337, x1385);
+-    let mut x1411: u32 = 0;
+-    let mut x1412: fiat_p384_scalar_u1 = 0;
+     let (x1411, x1412) = fiat_p384_scalar_addcarryx_u32(x1410, x1339, x1387);
+-    let mut x1413: u32 = 0;
+-    let mut x1414: fiat_p384_scalar_u1 = 0;
+     let (x1413, x1414) = fiat_p384_scalar_addcarryx_u32(x1412, x1341, x1389);
+-    let mut x1415: u32 = 0;
+-    let mut x1416: fiat_p384_scalar_u1 = 0;
+     let (x1415, x1416) = fiat_p384_scalar_addcarryx_u32(x1414, x1343, x1391);
+-    let mut x1417: u32 = 0;
+-    let mut x1418: fiat_p384_scalar_u1 = 0;
+     let (x1417, x1418) = fiat_p384_scalar_addcarryx_u32(x1416, x1345, x1393);
+-    let mut x1419: u32 = 0;
+-    let mut x1420: fiat_p384_scalar_u1 = 0;
+     let (x1419, x1420) = fiat_p384_scalar_addcarryx_u32(x1418, x1347, x1395);
+-    let mut x1421: u32 = 0;
+-    let mut x1422: fiat_p384_scalar_u1 = 0;
+     let (x1421, x1422) = fiat_p384_scalar_addcarryx_u32(x1420, x1349, x1397);
+-    let mut x1423: u32 = 0;
+-    let mut x1424: fiat_p384_scalar_u1 = 0;
+     let (x1423, x1424) = fiat_p384_scalar_addcarryx_u32(x1422, x1351, x1399);
+-    let mut x1425: u32 = 0;
+-    let mut x1426: fiat_p384_scalar_u1 = 0;
+     let (x1425, x1426) = fiat_p384_scalar_addcarryx_u32(x1424, x1353, x1401);
+-    let mut x1427: u32 = 0;
+-    let mut x1428: fiat_p384_scalar_u1 = 0;
+     let (x1427, x1428) = fiat_p384_scalar_addcarryx_u32(
+         x1426,
+         (((x1354 as u32) + (x1284 as u32)) + ((x1330 as u32) + x1286)),
+         ((x1402 as u32) + x1358),
+     );
+-    let mut x1429: u32 = 0;
+-    let mut x1430: u32 = 0;
+     let (x1429, x1430) = fiat_p384_scalar_mulx_u32(x10, 0xc84ee01);
+-    let mut x1431: u32 = 0;
+-    let mut x1432: u32 = 0;
+     let (x1431, x1432) = fiat_p384_scalar_mulx_u32(x10, 0x2b39bf21);
+-    let mut x1433: u32 = 0;
+-    let mut x1434: u32 = 0;
+     let (x1433, x1434) = fiat_p384_scalar_mulx_u32(x10, 0x3fb05b7a);
+-    let mut x1435: u32 = 0;
+-    let mut x1436: u32 = 0;
+     let (x1435, x1436) = fiat_p384_scalar_mulx_u32(x10, 0x28266895);
+-    let mut x1437: u32 = 0;
+-    let mut x1438: u32 = 0;
+     let (x1437, x1438) = fiat_p384_scalar_mulx_u32(x10, 0xd40d4917);
+-    let mut x1439: u32 = 0;
+-    let mut x1440: u32 = 0;
+     let (x1439, x1440) = fiat_p384_scalar_mulx_u32(x10, 0x4aab1cc5);
+-    let mut x1441: u32 = 0;
+-    let mut x1442: u32 = 0;
+     let (x1441, x1442) = fiat_p384_scalar_mulx_u32(x10, 0xbc3e483a);
+-    let mut x1443: u32 = 0;
+-    let mut x1444: u32 = 0;
+     let (x1443, x1444) = fiat_p384_scalar_mulx_u32(x10, 0xfcb82947);
+-    let mut x1445: u32 = 0;
+-    let mut x1446: u32 = 0;
+     let (x1445, x1446) = fiat_p384_scalar_mulx_u32(x10, 0xff3d81e5);
+-    let mut x1447: u32 = 0;
+-    let mut x1448: u32 = 0;
+     let (x1447, x1448) = fiat_p384_scalar_mulx_u32(x10, 0xdf1aa419);
+-    let mut x1449: u32 = 0;
+-    let mut x1450: u32 = 0;
+     let (x1449, x1450) = fiat_p384_scalar_mulx_u32(x10, 0x2d319b24);
+-    let mut x1451: u32 = 0;
+-    let mut x1452: u32 = 0;
+     let (x1451, x1452) = fiat_p384_scalar_mulx_u32(x10, 0x19b409a9);
+-    let mut x1453: u32 = 0;
+-    let mut x1454: fiat_p384_scalar_u1 = 0;
+     let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(0x0, x1452, x1449);
+-    let mut x1455: u32 = 0;
+-    let mut x1456: fiat_p384_scalar_u1 = 0;
+     let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1450, x1447);
+-    let mut x1457: u32 = 0;
+-    let mut x1458: fiat_p384_scalar_u1 = 0;
+     let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1448, x1445);
+-    let mut x1459: u32 = 0;
+-    let mut x1460: fiat_p384_scalar_u1 = 0;
+     let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1446, x1443);
+-    let mut x1461: u32 = 0;
+-    let mut x1462: fiat_p384_scalar_u1 = 0;
+     let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1444, x1441);
+-    let mut x1463: u32 = 0;
+-    let mut x1464: fiat_p384_scalar_u1 = 0;
+     let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1442, x1439);
+-    let mut x1465: u32 = 0;
+-    let mut x1466: fiat_p384_scalar_u1 = 0;
+     let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1440, x1437);
+-    let mut x1467: u32 = 0;
+-    let mut x1468: fiat_p384_scalar_u1 = 0;
+     let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1438, x1435);
+-    let mut x1469: u32 = 0;
+-    let mut x1470: fiat_p384_scalar_u1 = 0;
+     let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1436, x1433);
+-    let mut x1471: u32 = 0;
+-    let mut x1472: fiat_p384_scalar_u1 = 0;
+     let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1434, x1431);
+-    let mut x1473: u32 = 0;
+-    let mut x1474: fiat_p384_scalar_u1 = 0;
+     let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1432, x1429);
+-    let mut x1475: u32 = 0;
+-    let mut x1476: fiat_p384_scalar_u1 = 0;
+     let (x1475, x1476) = fiat_p384_scalar_addcarryx_u32(0x0, x1405, x1451);
+-    let mut x1477: u32 = 0;
+-    let mut x1478: fiat_p384_scalar_u1 = 0;
+     let (x1477, x1478) = fiat_p384_scalar_addcarryx_u32(x1476, x1407, x1453);
+-    let mut x1479: u32 = 0;
+-    let mut x1480: fiat_p384_scalar_u1 = 0;
+     let (x1479, x1480) = fiat_p384_scalar_addcarryx_u32(x1478, x1409, x1455);
+-    let mut x1481: u32 = 0;
+-    let mut x1482: fiat_p384_scalar_u1 = 0;
+     let (x1481, x1482) = fiat_p384_scalar_addcarryx_u32(x1480, x1411, x1457);
+-    let mut x1483: u32 = 0;
+-    let mut x1484: fiat_p384_scalar_u1 = 0;
+     let (x1483, x1484) = fiat_p384_scalar_addcarryx_u32(x1482, x1413, x1459);
+-    let mut x1485: u32 = 0;
+-    let mut x1486: fiat_p384_scalar_u1 = 0;
+     let (x1485, x1486) = fiat_p384_scalar_addcarryx_u32(x1484, x1415, x1461);
+-    let mut x1487: u32 = 0;
+-    let mut x1488: fiat_p384_scalar_u1 = 0;
+     let (x1487, x1488) = fiat_p384_scalar_addcarryx_u32(x1486, x1417, x1463);
+-    let mut x1489: u32 = 0;
+-    let mut x1490: fiat_p384_scalar_u1 = 0;
+     let (x1489, x1490) = fiat_p384_scalar_addcarryx_u32(x1488, x1419, x1465);
+-    let mut x1491: u32 = 0;
+-    let mut x1492: fiat_p384_scalar_u1 = 0;
+     let (x1491, x1492) = fiat_p384_scalar_addcarryx_u32(x1490, x1421, x1467);
+-    let mut x1493: u32 = 0;
+-    let mut x1494: fiat_p384_scalar_u1 = 0;
+     let (x1493, x1494) = fiat_p384_scalar_addcarryx_u32(x1492, x1423, x1469);
+-    let mut x1495: u32 = 0;
+-    let mut x1496: fiat_p384_scalar_u1 = 0;
+     let (x1495, x1496) = fiat_p384_scalar_addcarryx_u32(x1494, x1425, x1471);
+-    let mut x1497: u32 = 0;
+-    let mut x1498: fiat_p384_scalar_u1 = 0;
+     let (x1497, x1498) = fiat_p384_scalar_addcarryx_u32(x1496, x1427, x1473);
+-    let mut x1499: u32 = 0;
+-    let mut x1500: u32 = 0;
+     let (x1499, x1500) = fiat_p384_scalar_mulx_u32(x1475, 0xe88fdc45);
+-    let mut x1501: u32 = 0;
+-    let mut x1502: u32 = 0;
+     let (x1501, x1502) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+-    let mut x1503: u32 = 0;
+-    let mut x1504: u32 = 0;
+     let (x1503, x1504) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+-    let mut x1505: u32 = 0;
+-    let mut x1506: u32 = 0;
+     let (x1505, x1506) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+-    let mut x1507: u32 = 0;
+-    let mut x1508: u32 = 0;
+     let (x1507, x1508) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+-    let mut x1509: u32 = 0;
+-    let mut x1510: u32 = 0;
+     let (x1509, x1510) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+-    let mut x1511: u32 = 0;
+-    let mut x1512: u32 = 0;
+     let (x1511, x1512) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+-    let mut x1513: u32 = 0;
+-    let mut x1514: u32 = 0;
+     let (x1513, x1514) = fiat_p384_scalar_mulx_u32(x1499, 0xc7634d81);
+-    let mut x1515: u32 = 0;
+-    let mut x1516: u32 = 0;
+     let (x1515, x1516) = fiat_p384_scalar_mulx_u32(x1499, 0xf4372ddf);
+-    let mut x1517: u32 = 0;
+-    let mut x1518: u32 = 0;
+     let (x1517, x1518) = fiat_p384_scalar_mulx_u32(x1499, 0x581a0db2);
+-    let mut x1519: u32 = 0;
+-    let mut x1520: u32 = 0;
+     let (x1519, x1520) = fiat_p384_scalar_mulx_u32(x1499, 0x48b0a77a);
+-    let mut x1521: u32 = 0;
+-    let mut x1522: u32 = 0;
+     let (x1521, x1522) = fiat_p384_scalar_mulx_u32(x1499, 0xecec196a);
+-    let mut x1523: u32 = 0;
+-    let mut x1524: u32 = 0;
+     let (x1523, x1524) = fiat_p384_scalar_mulx_u32(x1499, 0xccc52973);
+-    let mut x1525: u32 = 0;
+-    let mut x1526: fiat_p384_scalar_u1 = 0;
+     let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(0x0, x1524, x1521);
+-    let mut x1527: u32 = 0;
+-    let mut x1528: fiat_p384_scalar_u1 = 0;
+     let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1522, x1519);
+-    let mut x1529: u32 = 0;
+-    let mut x1530: fiat_p384_scalar_u1 = 0;
+     let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1520, x1517);
+-    let mut x1531: u32 = 0;
+-    let mut x1532: fiat_p384_scalar_u1 = 0;
+     let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1518, x1515);
+-    let mut x1533: u32 = 0;
+-    let mut x1534: fiat_p384_scalar_u1 = 0;
+     let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1516, x1513);
+-    let mut x1535: u32 = 0;
+-    let mut x1536: fiat_p384_scalar_u1 = 0;
+     let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1514, x1511);
+-    let mut x1537: u32 = 0;
+-    let mut x1538: fiat_p384_scalar_u1 = 0;
+     let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1512, x1509);
+-    let mut x1539: u32 = 0;
+-    let mut x1540: fiat_p384_scalar_u1 = 0;
+     let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1510, x1507);
+-    let mut x1541: u32 = 0;
+-    let mut x1542: fiat_p384_scalar_u1 = 0;
+     let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1508, x1505);
+-    let mut x1543: u32 = 0;
+-    let mut x1544: fiat_p384_scalar_u1 = 0;
+     let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1506, x1503);
+-    let mut x1545: u32 = 0;
+-    let mut x1546: fiat_p384_scalar_u1 = 0;
+     let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1504, x1501);
+-    let mut x1547: u32 = 0;
+-    let mut x1548: fiat_p384_scalar_u1 = 0;
+     let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(0x0, x1475, x1523);
+-    let mut x1549: u32 = 0;
+-    let mut x1550: fiat_p384_scalar_u1 = 0;
+     let (x1549, x1550) = fiat_p384_scalar_addcarryx_u32(x1548, x1477, x1525);
+-    let mut x1551: u32 = 0;
+-    let mut x1552: fiat_p384_scalar_u1 = 0;
+     let (x1551, x1552) = fiat_p384_scalar_addcarryx_u32(x1550, x1479, x1527);
+-    let mut x1553: u32 = 0;
+-    let mut x1554: fiat_p384_scalar_u1 = 0;
+     let (x1553, x1554) = fiat_p384_scalar_addcarryx_u32(x1552, x1481, x1529);
+-    let mut x1555: u32 = 0;
+-    let mut x1556: fiat_p384_scalar_u1 = 0;
+     let (x1555, x1556) = fiat_p384_scalar_addcarryx_u32(x1554, x1483, x1531);
+-    let mut x1557: u32 = 0;
+-    let mut x1558: fiat_p384_scalar_u1 = 0;
+     let (x1557, x1558) = fiat_p384_scalar_addcarryx_u32(x1556, x1485, x1533);
+-    let mut x1559: u32 = 0;
+-    let mut x1560: fiat_p384_scalar_u1 = 0;
+     let (x1559, x1560) = fiat_p384_scalar_addcarryx_u32(x1558, x1487, x1535);
+-    let mut x1561: u32 = 0;
+-    let mut x1562: fiat_p384_scalar_u1 = 0;
+     let (x1561, x1562) = fiat_p384_scalar_addcarryx_u32(x1560, x1489, x1537);
+-    let mut x1563: u32 = 0;
+-    let mut x1564: fiat_p384_scalar_u1 = 0;
+     let (x1563, x1564) = fiat_p384_scalar_addcarryx_u32(x1562, x1491, x1539);
+-    let mut x1565: u32 = 0;
+-    let mut x1566: fiat_p384_scalar_u1 = 0;
+     let (x1565, x1566) = fiat_p384_scalar_addcarryx_u32(x1564, x1493, x1541);
+-    let mut x1567: u32 = 0;
+-    let mut x1568: fiat_p384_scalar_u1 = 0;
+     let (x1567, x1568) = fiat_p384_scalar_addcarryx_u32(x1566, x1495, x1543);
+-    let mut x1569: u32 = 0;
+-    let mut x1570: fiat_p384_scalar_u1 = 0;
+     let (x1569, x1570) = fiat_p384_scalar_addcarryx_u32(x1568, x1497, x1545);
+-    let mut x1571: u32 = 0;
+-    let mut x1572: fiat_p384_scalar_u1 = 0;
+     let (x1571, x1572) = fiat_p384_scalar_addcarryx_u32(
+         x1570,
+         (((x1498 as u32) + (x1428 as u32)) + ((x1474 as u32) + x1430)),
+         ((x1546 as u32) + x1502),
+     );
+-    let mut x1573: u32 = 0;
+-    let mut x1574: u32 = 0;
+     let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x11, 0xc84ee01);
+-    let mut x1575: u32 = 0;
+-    let mut x1576: u32 = 0;
+     let (x1575, x1576) = fiat_p384_scalar_mulx_u32(x11, 0x2b39bf21);
+-    let mut x1577: u32 = 0;
+-    let mut x1578: u32 = 0;
+     let (x1577, x1578) = fiat_p384_scalar_mulx_u32(x11, 0x3fb05b7a);
+-    let mut x1579: u32 = 0;
+-    let mut x1580: u32 = 0;
+     let (x1579, x1580) = fiat_p384_scalar_mulx_u32(x11, 0x28266895);
+-    let mut x1581: u32 = 0;
+-    let mut x1582: u32 = 0;
+     let (x1581, x1582) = fiat_p384_scalar_mulx_u32(x11, 0xd40d4917);
+-    let mut x1583: u32 = 0;
+-    let mut x1584: u32 = 0;
+     let (x1583, x1584) = fiat_p384_scalar_mulx_u32(x11, 0x4aab1cc5);
+-    let mut x1585: u32 = 0;
+-    let mut x1586: u32 = 0;
+     let (x1585, x1586) = fiat_p384_scalar_mulx_u32(x11, 0xbc3e483a);
+-    let mut x1587: u32 = 0;
+-    let mut x1588: u32 = 0;
+     let (x1587, x1588) = fiat_p384_scalar_mulx_u32(x11, 0xfcb82947);
+-    let mut x1589: u32 = 0;
+-    let mut x1590: u32 = 0;
+     let (x1589, x1590) = fiat_p384_scalar_mulx_u32(x11, 0xff3d81e5);
+-    let mut x1591: u32 = 0;
+-    let mut x1592: u32 = 0;
+     let (x1591, x1592) = fiat_p384_scalar_mulx_u32(x11, 0xdf1aa419);
+-    let mut x1593: u32 = 0;
+-    let mut x1594: u32 = 0;
+     let (x1593, x1594) = fiat_p384_scalar_mulx_u32(x11, 0x2d319b24);
+-    let mut x1595: u32 = 0;
+-    let mut x1596: u32 = 0;
+     let (x1595, x1596) = fiat_p384_scalar_mulx_u32(x11, 0x19b409a9);
+-    let mut x1597: u32 = 0;
+-    let mut x1598: fiat_p384_scalar_u1 = 0;
+     let (x1597, x1598) = fiat_p384_scalar_addcarryx_u32(0x0, x1596, x1593);
+-    let mut x1599: u32 = 0;
+-    let mut x1600: fiat_p384_scalar_u1 = 0;
+     let (x1599, x1600) = fiat_p384_scalar_addcarryx_u32(x1598, x1594, x1591);
+-    let mut x1601: u32 = 0;
+-    let mut x1602: fiat_p384_scalar_u1 = 0;
+     let (x1601, x1602) = fiat_p384_scalar_addcarryx_u32(x1600, x1592, x1589);
+-    let mut x1603: u32 = 0;
+-    let mut x1604: fiat_p384_scalar_u1 = 0;
+     let (x1603, x1604) = fiat_p384_scalar_addcarryx_u32(x1602, x1590, x1587);
+-    let mut x1605: u32 = 0;
+-    let mut x1606: fiat_p384_scalar_u1 = 0;
+     let (x1605, x1606) = fiat_p384_scalar_addcarryx_u32(x1604, x1588, x1585);
+-    let mut x1607: u32 = 0;
+-    let mut x1608: fiat_p384_scalar_u1 = 0;
+     let (x1607, x1608) = fiat_p384_scalar_addcarryx_u32(x1606, x1586, x1583);
+-    let mut x1609: u32 = 0;
+-    let mut x1610: fiat_p384_scalar_u1 = 0;
+     let (x1609, x1610) = fiat_p384_scalar_addcarryx_u32(x1608, x1584, x1581);
+-    let mut x1611: u32 = 0;
+-    let mut x1612: fiat_p384_scalar_u1 = 0;
+     let (x1611, x1612) = fiat_p384_scalar_addcarryx_u32(x1610, x1582, x1579);
+-    let mut x1613: u32 = 0;
+-    let mut x1614: fiat_p384_scalar_u1 = 0;
+     let (x1613, x1614) = fiat_p384_scalar_addcarryx_u32(x1612, x1580, x1577);
+-    let mut x1615: u32 = 0;
+-    let mut x1616: fiat_p384_scalar_u1 = 0;
+     let (x1615, x1616) = fiat_p384_scalar_addcarryx_u32(x1614, x1578, x1575);
+-    let mut x1617: u32 = 0;
+-    let mut x1618: fiat_p384_scalar_u1 = 0;
+     let (x1617, x1618) = fiat_p384_scalar_addcarryx_u32(x1616, x1576, x1573);
+-    let mut x1619: u32 = 0;
+-    let mut x1620: fiat_p384_scalar_u1 = 0;
+     let (x1619, x1620) = fiat_p384_scalar_addcarryx_u32(0x0, x1549, x1595);
+-    let mut x1621: u32 = 0;
+-    let mut x1622: fiat_p384_scalar_u1 = 0;
+     let (x1621, x1622) = fiat_p384_scalar_addcarryx_u32(x1620, x1551, x1597);
+-    let mut x1623: u32 = 0;
+-    let mut x1624: fiat_p384_scalar_u1 = 0;
+     let (x1623, x1624) = fiat_p384_scalar_addcarryx_u32(x1622, x1553, x1599);
+-    let mut x1625: u32 = 0;
+-    let mut x1626: fiat_p384_scalar_u1 = 0;
+     let (x1625, x1626) = fiat_p384_scalar_addcarryx_u32(x1624, x1555, x1601);
+-    let mut x1627: u32 = 0;
+-    let mut x1628: fiat_p384_scalar_u1 = 0;
+     let (x1627, x1628) = fiat_p384_scalar_addcarryx_u32(x1626, x1557, x1603);
+-    let mut x1629: u32 = 0;
+-    let mut x1630: fiat_p384_scalar_u1 = 0;
+     let (x1629, x1630) = fiat_p384_scalar_addcarryx_u32(x1628, x1559, x1605);
+-    let mut x1631: u32 = 0;
+-    let mut x1632: fiat_p384_scalar_u1 = 0;
+     let (x1631, x1632) = fiat_p384_scalar_addcarryx_u32(x1630, x1561, x1607);
+-    let mut x1633: u32 = 0;
+-    let mut x1634: fiat_p384_scalar_u1 = 0;
+     let (x1633, x1634) = fiat_p384_scalar_addcarryx_u32(x1632, x1563, x1609);
+-    let mut x1635: u32 = 0;
+-    let mut x1636: fiat_p384_scalar_u1 = 0;
+     let (x1635, x1636) = fiat_p384_scalar_addcarryx_u32(x1634, x1565, x1611);
+-    let mut x1637: u32 = 0;
+-    let mut x1638: fiat_p384_scalar_u1 = 0;
+     let (x1637, x1638) = fiat_p384_scalar_addcarryx_u32(x1636, x1567, x1613);
+-    let mut x1639: u32 = 0;
+-    let mut x1640: fiat_p384_scalar_u1 = 0;
+     let (x1639, x1640) = fiat_p384_scalar_addcarryx_u32(x1638, x1569, x1615);
+-    let mut x1641: u32 = 0;
+-    let mut x1642: fiat_p384_scalar_u1 = 0;
+     let (x1641, x1642) = fiat_p384_scalar_addcarryx_u32(x1640, x1571, x1617);
+-    let mut x1643: u32 = 0;
+-    let mut x1644: u32 = 0;
+     let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x1619, 0xe88fdc45);
+-    let mut x1645: u32 = 0;
+-    let mut x1646: u32 = 0;
+     let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+-    let mut x1647: u32 = 0;
+-    let mut x1648: u32 = 0;
+     let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+-    let mut x1649: u32 = 0;
+-    let mut x1650: u32 = 0;
+     let (x1649, x1650) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+-    let mut x1651: u32 = 0;
+-    let mut x1652: u32 = 0;
+     let (x1651, x1652) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+-    let mut x1653: u32 = 0;
+-    let mut x1654: u32 = 0;
+     let (x1653, x1654) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+-    let mut x1655: u32 = 0;
+-    let mut x1656: u32 = 0;
+     let (x1655, x1656) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+-    let mut x1657: u32 = 0;
+-    let mut x1658: u32 = 0;
+     let (x1657, x1658) = fiat_p384_scalar_mulx_u32(x1643, 0xc7634d81);
+-    let mut x1659: u32 = 0;
+-    let mut x1660: u32 = 0;
+     let (x1659, x1660) = fiat_p384_scalar_mulx_u32(x1643, 0xf4372ddf);
+-    let mut x1661: u32 = 0;
+-    let mut x1662: u32 = 0;
+     let (x1661, x1662) = fiat_p384_scalar_mulx_u32(x1643, 0x581a0db2);
+-    let mut x1663: u32 = 0;
+-    let mut x1664: u32 = 0;
+     let (x1663, x1664) = fiat_p384_scalar_mulx_u32(x1643, 0x48b0a77a);
+-    let mut x1665: u32 = 0;
+-    let mut x1666: u32 = 0;
+     let (x1665, x1666) = fiat_p384_scalar_mulx_u32(x1643, 0xecec196a);
+-    let mut x1667: u32 = 0;
+-    let mut x1668: u32 = 0;
+     let (x1667, x1668) = fiat_p384_scalar_mulx_u32(x1643, 0xccc52973);
+-    let mut x1669: u32 = 0;
+-    let mut x1670: fiat_p384_scalar_u1 = 0;
+     let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(0x0, x1668, x1665);
+-    let mut x1671: u32 = 0;
+-    let mut x1672: fiat_p384_scalar_u1 = 0;
+     let (x1671, x1672) = fiat_p384_scalar_addcarryx_u32(x1670, x1666, x1663);
+-    let mut x1673: u32 = 0;
+-    let mut x1674: fiat_p384_scalar_u1 = 0;
+     let (x1673, x1674) = fiat_p384_scalar_addcarryx_u32(x1672, x1664, x1661);
+-    let mut x1675: u32 = 0;
+-    let mut x1676: fiat_p384_scalar_u1 = 0;
+     let (x1675, x1676) = fiat_p384_scalar_addcarryx_u32(x1674, x1662, x1659);
+-    let mut x1677: u32 = 0;
+-    let mut x1678: fiat_p384_scalar_u1 = 0;
+     let (x1677, x1678) = fiat_p384_scalar_addcarryx_u32(x1676, x1660, x1657);
+-    let mut x1679: u32 = 0;
+-    let mut x1680: fiat_p384_scalar_u1 = 0;
+     let (x1679, x1680) = fiat_p384_scalar_addcarryx_u32(x1678, x1658, x1655);
+-    let mut x1681: u32 = 0;
+-    let mut x1682: fiat_p384_scalar_u1 = 0;
+     let (x1681, x1682) = fiat_p384_scalar_addcarryx_u32(x1680, x1656, x1653);
+-    let mut x1683: u32 = 0;
+-    let mut x1684: fiat_p384_scalar_u1 = 0;
+     let (x1683, x1684) = fiat_p384_scalar_addcarryx_u32(x1682, x1654, x1651);
+-    let mut x1685: u32 = 0;
+-    let mut x1686: fiat_p384_scalar_u1 = 0;
+     let (x1685, x1686) = fiat_p384_scalar_addcarryx_u32(x1684, x1652, x1649);
+-    let mut x1687: u32 = 0;
+-    let mut x1688: fiat_p384_scalar_u1 = 0;
+     let (x1687, x1688) = fiat_p384_scalar_addcarryx_u32(x1686, x1650, x1647);
+-    let mut x1689: u32 = 0;
+-    let mut x1690: fiat_p384_scalar_u1 = 0;
+     let (x1689, x1690) = fiat_p384_scalar_addcarryx_u32(x1688, x1648, x1645);
+-    let mut x1691: u32 = 0;
+-    let mut x1692: fiat_p384_scalar_u1 = 0;
+     let (x1691, x1692) = fiat_p384_scalar_addcarryx_u32(0x0, x1619, x1667);
+-    let mut x1693: u32 = 0;
+-    let mut x1694: fiat_p384_scalar_u1 = 0;
+     let (x1693, x1694) = fiat_p384_scalar_addcarryx_u32(x1692, x1621, x1669);
+-    let mut x1695: u32 = 0;
+-    let mut x1696: fiat_p384_scalar_u1 = 0;
+     let (x1695, x1696) = fiat_p384_scalar_addcarryx_u32(x1694, x1623, x1671);
+-    let mut x1697: u32 = 0;
+-    let mut x1698: fiat_p384_scalar_u1 = 0;
+     let (x1697, x1698) = fiat_p384_scalar_addcarryx_u32(x1696, x1625, x1673);
+-    let mut x1699: u32 = 0;
+-    let mut x1700: fiat_p384_scalar_u1 = 0;
+     let (x1699, x1700) = fiat_p384_scalar_addcarryx_u32(x1698, x1627, x1675);
+-    let mut x1701: u32 = 0;
+-    let mut x1702: fiat_p384_scalar_u1 = 0;
+     let (x1701, x1702) = fiat_p384_scalar_addcarryx_u32(x1700, x1629, x1677);
+-    let mut x1703: u32 = 0;
+-    let mut x1704: fiat_p384_scalar_u1 = 0;
+     let (x1703, x1704) = fiat_p384_scalar_addcarryx_u32(x1702, x1631, x1679);
+-    let mut x1705: u32 = 0;
+-    let mut x1706: fiat_p384_scalar_u1 = 0;
+     let (x1705, x1706) = fiat_p384_scalar_addcarryx_u32(x1704, x1633, x1681);
+-    let mut x1707: u32 = 0;
+-    let mut x1708: fiat_p384_scalar_u1 = 0;
+     let (x1707, x1708) = fiat_p384_scalar_addcarryx_u32(x1706, x1635, x1683);
+-    let mut x1709: u32 = 0;
+-    let mut x1710: fiat_p384_scalar_u1 = 0;
+     let (x1709, x1710) = fiat_p384_scalar_addcarryx_u32(x1708, x1637, x1685);
+-    let mut x1711: u32 = 0;
+-    let mut x1712: fiat_p384_scalar_u1 = 0;
+     let (x1711, x1712) = fiat_p384_scalar_addcarryx_u32(x1710, x1639, x1687);
+-    let mut x1713: u32 = 0;
+-    let mut x1714: fiat_p384_scalar_u1 = 0;
+     let (x1713, x1714) = fiat_p384_scalar_addcarryx_u32(x1712, x1641, x1689);
+-    let mut x1715: u32 = 0;
+-    let mut x1716: fiat_p384_scalar_u1 = 0;
+     let (x1715, x1716) = fiat_p384_scalar_addcarryx_u32(
+         x1714,
+         (((x1642 as u32) + (x1572 as u32)) + ((x1618 as u32) + x1574)),
+         ((x1690 as u32) + x1646),
+     );
+-    let mut x1717: u32 = 0;
+-    let mut x1718: fiat_p384_scalar_u1 = 0;
+     let (x1717, x1718) = fiat_p384_scalar_subborrowx_u32(0x0, x1693, 0xccc52973);
+-    let mut x1719: u32 = 0;
+-    let mut x1720: fiat_p384_scalar_u1 = 0;
+     let (x1719, x1720) = fiat_p384_scalar_subborrowx_u32(x1718, x1695, 0xecec196a);
+-    let mut x1721: u32 = 0;
+-    let mut x1722: fiat_p384_scalar_u1 = 0;
+     let (x1721, x1722) = fiat_p384_scalar_subborrowx_u32(x1720, x1697, 0x48b0a77a);
+-    let mut x1723: u32 = 0;
+-    let mut x1724: fiat_p384_scalar_u1 = 0;
+     let (x1723, x1724) = fiat_p384_scalar_subborrowx_u32(x1722, x1699, 0x581a0db2);
+-    let mut x1725: u32 = 0;
+-    let mut x1726: fiat_p384_scalar_u1 = 0;
+     let (x1725, x1726) = fiat_p384_scalar_subborrowx_u32(x1724, x1701, 0xf4372ddf);
+-    let mut x1727: u32 = 0;
+-    let mut x1728: fiat_p384_scalar_u1 = 0;
+     let (x1727, x1728) = fiat_p384_scalar_subborrowx_u32(x1726, x1703, 0xc7634d81);
+-    let mut x1729: u32 = 0;
+-    let mut x1730: fiat_p384_scalar_u1 = 0;
+     let (x1729, x1730) = fiat_p384_scalar_subborrowx_u32(x1728, x1705, 0xffffffff);
+-    let mut x1731: u32 = 0;
+-    let mut x1732: fiat_p384_scalar_u1 = 0;
+     let (x1731, x1732) = fiat_p384_scalar_subborrowx_u32(x1730, x1707, 0xffffffff);
+-    let mut x1733: u32 = 0;
+-    let mut x1734: fiat_p384_scalar_u1 = 0;
+     let (x1733, x1734) = fiat_p384_scalar_subborrowx_u32(x1732, x1709, 0xffffffff);
+-    let mut x1735: u32 = 0;
+-    let mut x1736: fiat_p384_scalar_u1 = 0;
+     let (x1735, x1736) = fiat_p384_scalar_subborrowx_u32(x1734, x1711, 0xffffffff);
+-    let mut x1737: u32 = 0;
+-    let mut x1738: fiat_p384_scalar_u1 = 0;
+     let (x1737, x1738) = fiat_p384_scalar_subborrowx_u32(x1736, x1713, 0xffffffff);
+-    let mut x1739: u32 = 0;
+-    let mut x1740: fiat_p384_scalar_u1 = 0;
+     let (x1739, x1740) = fiat_p384_scalar_subborrowx_u32(x1738, x1715, 0xffffffff);
+-    let mut x1741: u32 = 0;
+-    let mut x1742: fiat_p384_scalar_u1 = 0;
+     let (x1741, x1742) = fiat_p384_scalar_subborrowx_u32(x1740, (x1716 as u32), (0x0 as u32));
+-    let mut x1743: u32 = 0;
+     let (x1743) = fiat_p384_scalar_cmovznz_u32(x1742, x1717, x1693);
+-    let mut x1744: u32 = 0;
+     let (x1744) = fiat_p384_scalar_cmovznz_u32(x1742, x1719, x1695);
+-    let mut x1745: u32 = 0;
+     let (x1745) = fiat_p384_scalar_cmovznz_u32(x1742, x1721, x1697);
+-    let mut x1746: u32 = 0;
+     let (x1746) = fiat_p384_scalar_cmovznz_u32(x1742, x1723, x1699);
+-    let mut x1747: u32 = 0;
+     let (x1747) = fiat_p384_scalar_cmovznz_u32(x1742, x1725, x1701);
+-    let mut x1748: u32 = 0;
+     let (x1748) = fiat_p384_scalar_cmovznz_u32(x1742, x1727, x1703);
+-    let mut x1749: u32 = 0;
+     let (x1749) = fiat_p384_scalar_cmovznz_u32(x1742, x1729, x1705);
+-    let mut x1750: u32 = 0;
+     let (x1750) = fiat_p384_scalar_cmovznz_u32(x1742, x1731, x1707);
+-    let mut x1751: u32 = 0;
+     let (x1751) = fiat_p384_scalar_cmovznz_u32(x1742, x1733, x1709);
+-    let mut x1752: u32 = 0;
+     let (x1752) = fiat_p384_scalar_cmovznz_u32(x1742, x1735, x1711);
+-    let mut x1753: u32 = 0;
+     let (x1753) = fiat_p384_scalar_cmovznz_u32(x1742, x1737, x1713);
+-    let mut x1754: u32 = 0;
+     let (x1754) = fiat_p384_scalar_cmovznz_u32(x1742, x1739, x1715);
+     out1[0] = x1743;
+     out1[1] = x1744;
+@@ -10527,29 +3907,17 @@ pub const fn fiat_p384_scalar_selectznz(
+     arg3: &[u32; 12],
+ ) -> [u32; 12] {
+     let mut out1: [u32; 12] = [0; 12];
+-    let mut x1: u32 = 0;
+     let (x1) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[0]), (arg3[0]));
+-    let mut x2: u32 = 0;
+     let (x2) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[1]), (arg3[1]));
+-    let mut x3: u32 = 0;
+     let (x3) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[2]), (arg3[2]));
+-    let mut x4: u32 = 0;
+     let (x4) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[3]), (arg3[3]));
+-    let mut x5: u32 = 0;
+     let (x5) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[4]), (arg3[4]));
+-    let mut x6: u32 = 0;
+     let (x6) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[5]), (arg3[5]));
+-    let mut x7: u32 = 0;
+     let (x7) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[6]), (arg3[6]));
+-    let mut x8: u32 = 0;
+     let (x8) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[7]), (arg3[7]));
+-    let mut x9: u32 = 0;
+     let (x9) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[8]), (arg3[8]));
+-    let mut x10: u32 = 0;
+     let (x10) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[9]), (arg3[9]));
+-    let mut x11: u32 = 0;
+     let (x11) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[10]), (arg3[10]));
+-    let mut x12: u32 = 0;
+     let (x12) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[11]), (arg3[11]));
+     out1[0] = x1;
+     out1[1] = x2;
+@@ -10916,205 +4284,86 @@ pub const fn fiat_p384_scalar_divstep(
+     let mut out3: [u32; 13] = [0; 13];
+     let mut out4: [u32; 12] = [0; 12];
+     let mut out5: [u32; 12] = [0; 12];
+-    let mut x1: u32 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+     let x3: fiat_p384_scalar_u1 =
+         (((x1 >> 31) as fiat_p384_scalar_u1) & (((arg3[0]) & (0x1 as u32)) as fiat_p384_scalar_u1));
+-    let mut x4: u32 = 0;
+-    let mut x5: fiat_p384_scalar_u1 = 0;
+     let (x4, x5) = fiat_p384_scalar_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+-    let mut x6: u32 = 0;
+     let (x6) = fiat_p384_scalar_cmovznz_u32(x3, arg1, x4);
+-    let mut x7: u32 = 0;
+     let (x7) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[0]), (arg3[0]));
+-    let mut x8: u32 = 0;
+     let (x8) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[1]), (arg3[1]));
+-    let mut x9: u32 = 0;
+     let (x9) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[2]), (arg3[2]));
+-    let mut x10: u32 = 0;
+     let (x10) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[3]), (arg3[3]));
+-    let mut x11: u32 = 0;
+     let (x11) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[4]), (arg3[4]));
+-    let mut x12: u32 = 0;
+     let (x12) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[5]), (arg3[5]));
+-    let mut x13: u32 = 0;
+     let (x13) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[6]), (arg3[6]));
+-    let mut x14: u32 = 0;
+     let (x14) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[7]), (arg3[7]));
+-    let mut x15: u32 = 0;
+     let (x15) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[8]), (arg3[8]));
+-    let mut x16: u32 = 0;
+     let (x16) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[9]), (arg3[9]));
+-    let mut x17: u32 = 0;
+     let (x17) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[10]), (arg3[10]));
+-    let mut x18: u32 = 0;
+     let (x18) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[11]), (arg3[11]));
+-    let mut x19: u32 = 0;
+     let (x19) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[12]), (arg3[12]));
+-    let mut x20: u32 = 0;
+-    let mut x21: fiat_p384_scalar_u1 = 0;
+     let (x20, x21) = fiat_p384_scalar_addcarryx_u32(0x0, (0x1 as u32), (!(arg2[0])));
+-    let mut x22: u32 = 0;
+-    let mut x23: fiat_p384_scalar_u1 = 0;
+     let (x22, x23) = fiat_p384_scalar_addcarryx_u32(x21, (0x0 as u32), (!(arg2[1])));
+-    let mut x24: u32 = 0;
+-    let mut x25: fiat_p384_scalar_u1 = 0;
+     let (x24, x25) = fiat_p384_scalar_addcarryx_u32(x23, (0x0 as u32), (!(arg2[2])));
+-    let mut x26: u32 = 0;
+-    let mut x27: fiat_p384_scalar_u1 = 0;
+     let (x26, x27) = fiat_p384_scalar_addcarryx_u32(x25, (0x0 as u32), (!(arg2[3])));
+-    let mut x28: u32 = 0;
+-    let mut x29: fiat_p384_scalar_u1 = 0;
+     let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, (0x0 as u32), (!(arg2[4])));
+-    let mut x30: u32 = 0;
+-    let mut x31: fiat_p384_scalar_u1 = 0;
+     let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, (0x0 as u32), (!(arg2[5])));
+-    let mut x32: u32 = 0;
+-    let mut x33: fiat_p384_scalar_u1 = 0;
+     let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, (0x0 as u32), (!(arg2[6])));
+-    let mut x34: u32 = 0;
+-    let mut x35: fiat_p384_scalar_u1 = 0;
+     let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, (0x0 as u32), (!(arg2[7])));
+-    let mut x36: u32 = 0;
+-    let mut x37: fiat_p384_scalar_u1 = 0;
+     let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, (0x0 as u32), (!(arg2[8])));
+-    let mut x38: u32 = 0;
+-    let mut x39: fiat_p384_scalar_u1 = 0;
+     let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, (0x0 as u32), (!(arg2[9])));
+-    let mut x40: u32 = 0;
+-    let mut x41: fiat_p384_scalar_u1 = 0;
+     let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, (0x0 as u32), (!(arg2[10])));
+-    let mut x42: u32 = 0;
+-    let mut x43: fiat_p384_scalar_u1 = 0;
+     let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, (0x0 as u32), (!(arg2[11])));
+-    let mut x44: u32 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, (0x0 as u32), (!(arg2[12])));
+-    let mut x46: u32 = 0;
+     let (x46) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[0]), x20);
+-    let mut x47: u32 = 0;
+     let (x47) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[1]), x22);
+-    let mut x48: u32 = 0;
+     let (x48) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[2]), x24);
+-    let mut x49: u32 = 0;
+     let (x49) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[3]), x26);
+-    let mut x50: u32 = 0;
+     let (x50) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[4]), x28);
+-    let mut x51: u32 = 0;
+     let (x51) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[5]), x30);
+-    let mut x52: u32 = 0;
+     let (x52) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[6]), x32);
+-    let mut x53: u32 = 0;
+     let (x53) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[7]), x34);
+-    let mut x54: u32 = 0;
+     let (x54) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[8]), x36);
+-    let mut x55: u32 = 0;
+     let (x55) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[9]), x38);
+-    let mut x56: u32 = 0;
+     let (x56) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[10]), x40);
+-    let mut x57: u32 = 0;
+     let (x57) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[11]), x42);
+-    let mut x58: u32 = 0;
+     let (x58) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[12]), x44);
+-    let mut x59: u32 = 0;
+     let (x59) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[0]), (arg5[0]));
+-    let mut x60: u32 = 0;
+     let (x60) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[1]), (arg5[1]));
+-    let mut x61: u32 = 0;
+     let (x61) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[2]), (arg5[2]));
+-    let mut x62: u32 = 0;
+     let (x62) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[3]), (arg5[3]));
+-    let mut x63: u32 = 0;
+     let (x63) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[4]), (arg5[4]));
+-    let mut x64: u32 = 0;
+     let (x64) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[5]), (arg5[5]));
+-    let mut x65: u32 = 0;
+     let (x65) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[6]), (arg5[6]));
+-    let mut x66: u32 = 0;
+     let (x66) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[7]), (arg5[7]));
+-    let mut x67: u32 = 0;
+     let (x67) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[8]), (arg5[8]));
+-    let mut x68: u32 = 0;
+     let (x68) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[9]), (arg5[9]));
+-    let mut x69: u32 = 0;
+     let (x69) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[10]), (arg5[10]));
+-    let mut x70: u32 = 0;
+     let (x70) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[11]), (arg5[11]));
+-    let mut x71: u32 = 0;
+-    let mut x72: fiat_p384_scalar_u1 = 0;
+     let (x71, x72) = fiat_p384_scalar_addcarryx_u32(0x0, x59, x59);
+-    let mut x73: u32 = 0;
+-    let mut x74: fiat_p384_scalar_u1 = 0;
+     let (x73, x74) = fiat_p384_scalar_addcarryx_u32(x72, x60, x60);
+-    let mut x75: u32 = 0;
+-    let mut x76: fiat_p384_scalar_u1 = 0;
+     let (x75, x76) = fiat_p384_scalar_addcarryx_u32(x74, x61, x61);
+-    let mut x77: u32 = 0;
+-    let mut x78: fiat_p384_scalar_u1 = 0;
+     let (x77, x78) = fiat_p384_scalar_addcarryx_u32(x76, x62, x62);
+-    let mut x79: u32 = 0;
+-    let mut x80: fiat_p384_scalar_u1 = 0;
+     let (x79, x80) = fiat_p384_scalar_addcarryx_u32(x78, x63, x63);
+-    let mut x81: u32 = 0;
+-    let mut x82: fiat_p384_scalar_u1 = 0;
+     let (x81, x82) = fiat_p384_scalar_addcarryx_u32(x80, x64, x64);
+-    let mut x83: u32 = 0;
+-    let mut x84: fiat_p384_scalar_u1 = 0;
+     let (x83, x84) = fiat_p384_scalar_addcarryx_u32(x82, x65, x65);
+-    let mut x85: u32 = 0;
+-    let mut x86: fiat_p384_scalar_u1 = 0;
+     let (x85, x86) = fiat_p384_scalar_addcarryx_u32(x84, x66, x66);
+-    let mut x87: u32 = 0;
+-    let mut x88: fiat_p384_scalar_u1 = 0;
+     let (x87, x88) = fiat_p384_scalar_addcarryx_u32(x86, x67, x67);
+-    let mut x89: u32 = 0;
+-    let mut x90: fiat_p384_scalar_u1 = 0;
+     let (x89, x90) = fiat_p384_scalar_addcarryx_u32(x88, x68, x68);
+-    let mut x91: u32 = 0;
+-    let mut x92: fiat_p384_scalar_u1 = 0;
+     let (x91, x92) = fiat_p384_scalar_addcarryx_u32(x90, x69, x69);
+-    let mut x93: u32 = 0;
+-    let mut x94: fiat_p384_scalar_u1 = 0;
+     let (x93, x94) = fiat_p384_scalar_addcarryx_u32(x92, x70, x70);
+-    let mut x95: u32 = 0;
+-    let mut x96: fiat_p384_scalar_u1 = 0;
+     let (x95, x96) = fiat_p384_scalar_subborrowx_u32(0x0, x71, 0xccc52973);
+-    let mut x97: u32 = 0;
+-    let mut x98: fiat_p384_scalar_u1 = 0;
+     let (x97, x98) = fiat_p384_scalar_subborrowx_u32(x96, x73, 0xecec196a);
+-    let mut x99: u32 = 0;
+-    let mut x100: fiat_p384_scalar_u1 = 0;
+     let (x99, x100) = fiat_p384_scalar_subborrowx_u32(x98, x75, 0x48b0a77a);
+-    let mut x101: u32 = 0;
+-    let mut x102: fiat_p384_scalar_u1 = 0;
+     let (x101, x102) = fiat_p384_scalar_subborrowx_u32(x100, x77, 0x581a0db2);
+-    let mut x103: u32 = 0;
+-    let mut x104: fiat_p384_scalar_u1 = 0;
+     let (x103, x104) = fiat_p384_scalar_subborrowx_u32(x102, x79, 0xf4372ddf);
+-    let mut x105: u32 = 0;
+-    let mut x106: fiat_p384_scalar_u1 = 0;
+     let (x105, x106) = fiat_p384_scalar_subborrowx_u32(x104, x81, 0xc7634d81);
+-    let mut x107: u32 = 0;
+-    let mut x108: fiat_p384_scalar_u1 = 0;
+     let (x107, x108) = fiat_p384_scalar_subborrowx_u32(x106, x83, 0xffffffff);
+-    let mut x109: u32 = 0;
+-    let mut x110: fiat_p384_scalar_u1 = 0;
+     let (x109, x110) = fiat_p384_scalar_subborrowx_u32(x108, x85, 0xffffffff);
+-    let mut x111: u32 = 0;
+-    let mut x112: fiat_p384_scalar_u1 = 0;
+     let (x111, x112) = fiat_p384_scalar_subborrowx_u32(x110, x87, 0xffffffff);
+-    let mut x113: u32 = 0;
+-    let mut x114: fiat_p384_scalar_u1 = 0;
+     let (x113, x114) = fiat_p384_scalar_subborrowx_u32(x112, x89, 0xffffffff);
+-    let mut x115: u32 = 0;
+-    let mut x116: fiat_p384_scalar_u1 = 0;
+     let (x115, x116) = fiat_p384_scalar_subborrowx_u32(x114, x91, 0xffffffff);
+-    let mut x117: u32 = 0;
+-    let mut x118: fiat_p384_scalar_u1 = 0;
+     let (x117, x118) = fiat_p384_scalar_subborrowx_u32(x116, x93, 0xffffffff);
+-    let mut x119: u32 = 0;
+-    let mut x120: fiat_p384_scalar_u1 = 0;
+     let (x119, x120) = fiat_p384_scalar_subborrowx_u32(x118, (x94 as u32), (0x0 as u32));
+     let x121: u32 = (arg4[11]);
+     let x122: u32 = (arg4[10]);
+@@ -11128,271 +4377,107 @@ pub const fn fiat_p384_scalar_divstep(
+     let x130: u32 = (arg4[2]);
+     let x131: u32 = (arg4[1]);
+     let x132: u32 = (arg4[0]);
+-    let mut x133: u32 = 0;
+-    let mut x134: fiat_p384_scalar_u1 = 0;
+     let (x133, x134) = fiat_p384_scalar_subborrowx_u32(0x0, (0x0 as u32), x132);
+-    let mut x135: u32 = 0;
+-    let mut x136: fiat_p384_scalar_u1 = 0;
+     let (x135, x136) = fiat_p384_scalar_subborrowx_u32(x134, (0x0 as u32), x131);
+-    let mut x137: u32 = 0;
+-    let mut x138: fiat_p384_scalar_u1 = 0;
+     let (x137, x138) = fiat_p384_scalar_subborrowx_u32(x136, (0x0 as u32), x130);
+-    let mut x139: u32 = 0;
+-    let mut x140: fiat_p384_scalar_u1 = 0;
+     let (x139, x140) = fiat_p384_scalar_subborrowx_u32(x138, (0x0 as u32), x129);
+-    let mut x141: u32 = 0;
+-    let mut x142: fiat_p384_scalar_u1 = 0;
+     let (x141, x142) = fiat_p384_scalar_subborrowx_u32(x140, (0x0 as u32), x128);
+-    let mut x143: u32 = 0;
+-    let mut x144: fiat_p384_scalar_u1 = 0;
+     let (x143, x144) = fiat_p384_scalar_subborrowx_u32(x142, (0x0 as u32), x127);
+-    let mut x145: u32 = 0;
+-    let mut x146: fiat_p384_scalar_u1 = 0;
+     let (x145, x146) = fiat_p384_scalar_subborrowx_u32(x144, (0x0 as u32), x126);
+-    let mut x147: u32 = 0;
+-    let mut x148: fiat_p384_scalar_u1 = 0;
+     let (x147, x148) = fiat_p384_scalar_subborrowx_u32(x146, (0x0 as u32), x125);
+-    let mut x149: u32 = 0;
+-    let mut x150: fiat_p384_scalar_u1 = 0;
+     let (x149, x150) = fiat_p384_scalar_subborrowx_u32(x148, (0x0 as u32), x124);
+-    let mut x151: u32 = 0;
+-    let mut x152: fiat_p384_scalar_u1 = 0;
+     let (x151, x152) = fiat_p384_scalar_subborrowx_u32(x150, (0x0 as u32), x123);
+-    let mut x153: u32 = 0;
+-    let mut x154: fiat_p384_scalar_u1 = 0;
+     let (x153, x154) = fiat_p384_scalar_subborrowx_u32(x152, (0x0 as u32), x122);
+-    let mut x155: u32 = 0;
+-    let mut x156: fiat_p384_scalar_u1 = 0;
+     let (x155, x156) = fiat_p384_scalar_subborrowx_u32(x154, (0x0 as u32), x121);
+-    let mut x157: u32 = 0;
+     let (x157) = fiat_p384_scalar_cmovznz_u32(x156, (0x0 as u32), 0xffffffff);
+-    let mut x158: u32 = 0;
+-    let mut x159: fiat_p384_scalar_u1 = 0;
+     let (x158, x159) = fiat_p384_scalar_addcarryx_u32(0x0, x133, (x157 & 0xccc52973));
+-    let mut x160: u32 = 0;
+-    let mut x161: fiat_p384_scalar_u1 = 0;
+     let (x160, x161) = fiat_p384_scalar_addcarryx_u32(x159, x135, (x157 & 0xecec196a));
+-    let mut x162: u32 = 0;
+-    let mut x163: fiat_p384_scalar_u1 = 0;
+     let (x162, x163) = fiat_p384_scalar_addcarryx_u32(x161, x137, (x157 & 0x48b0a77a));
+-    let mut x164: u32 = 0;
+-    let mut x165: fiat_p384_scalar_u1 = 0;
+     let (x164, x165) = fiat_p384_scalar_addcarryx_u32(x163, x139, (x157 & 0x581a0db2));
+-    let mut x166: u32 = 0;
+-    let mut x167: fiat_p384_scalar_u1 = 0;
+     let (x166, x167) = fiat_p384_scalar_addcarryx_u32(x165, x141, (x157 & 0xf4372ddf));
+-    let mut x168: u32 = 0;
+-    let mut x169: fiat_p384_scalar_u1 = 0;
+     let (x168, x169) = fiat_p384_scalar_addcarryx_u32(x167, x143, (x157 & 0xc7634d81));
+-    let mut x170: u32 = 0;
+-    let mut x171: fiat_p384_scalar_u1 = 0;
+     let (x170, x171) = fiat_p384_scalar_addcarryx_u32(x169, x145, x157);
+-    let mut x172: u32 = 0;
+-    let mut x173: fiat_p384_scalar_u1 = 0;
+     let (x172, x173) = fiat_p384_scalar_addcarryx_u32(x171, x147, x157);
+-    let mut x174: u32 = 0;
+-    let mut x175: fiat_p384_scalar_u1 = 0;
+     let (x174, x175) = fiat_p384_scalar_addcarryx_u32(x173, x149, x157);
+-    let mut x176: u32 = 0;
+-    let mut x177: fiat_p384_scalar_u1 = 0;
+     let (x176, x177) = fiat_p384_scalar_addcarryx_u32(x175, x151, x157);
+-    let mut x178: u32 = 0;
+-    let mut x179: fiat_p384_scalar_u1 = 0;
+     let (x178, x179) = fiat_p384_scalar_addcarryx_u32(x177, x153, x157);
+-    let mut x180: u32 = 0;
+-    let mut x181: fiat_p384_scalar_u1 = 0;
+     let (x180, x181) = fiat_p384_scalar_addcarryx_u32(x179, x155, x157);
+-    let mut x182: u32 = 0;
+     let (x182) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[0]), x158);
+-    let mut x183: u32 = 0;
+     let (x183) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[1]), x160);
+-    let mut x184: u32 = 0;
+     let (x184) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[2]), x162);
+-    let mut x185: u32 = 0;
+     let (x185) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[3]), x164);
+-    let mut x186: u32 = 0;
+     let (x186) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[4]), x166);
+-    let mut x187: u32 = 0;
+     let (x187) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[5]), x168);
+-    let mut x188: u32 = 0;
+     let (x188) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[6]), x170);
+-    let mut x189: u32 = 0;
+     let (x189) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[7]), x172);
+-    let mut x190: u32 = 0;
+     let (x190) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[8]), x174);
+-    let mut x191: u32 = 0;
+     let (x191) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[9]), x176);
+-    let mut x192: u32 = 0;
+     let (x192) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[10]), x178);
+-    let mut x193: u32 = 0;
+     let (x193) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[11]), x180);
+     let x194: fiat_p384_scalar_u1 = ((x46 & (0x1 as u32)) as fiat_p384_scalar_u1);
+-    let mut x195: u32 = 0;
+     let (x195) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x7);
+-    let mut x196: u32 = 0;
+     let (x196) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x8);
+-    let mut x197: u32 = 0;
+     let (x197) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x9);
+-    let mut x198: u32 = 0;
+     let (x198) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x10);
+-    let mut x199: u32 = 0;
+     let (x199) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x11);
+-    let mut x200: u32 = 0;
+     let (x200) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x12);
+-    let mut x201: u32 = 0;
+     let (x201) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x13);
+-    let mut x202: u32 = 0;
+     let (x202) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x14);
+-    let mut x203: u32 = 0;
+     let (x203) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x15);
+-    let mut x204: u32 = 0;
+     let (x204) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x16);
+-    let mut x205: u32 = 0;
+     let (x205) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x17);
+-    let mut x206: u32 = 0;
+     let (x206) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x18);
+-    let mut x207: u32 = 0;
+     let (x207) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x19);
+-    let mut x208: u32 = 0;
+-    let mut x209: fiat_p384_scalar_u1 = 0;
+     let (x208, x209) = fiat_p384_scalar_addcarryx_u32(0x0, x46, x195);
+-    let mut x210: u32 = 0;
+-    let mut x211: fiat_p384_scalar_u1 = 0;
+     let (x210, x211) = fiat_p384_scalar_addcarryx_u32(x209, x47, x196);
+-    let mut x212: u32 = 0;
+-    let mut x213: fiat_p384_scalar_u1 = 0;
+     let (x212, x213) = fiat_p384_scalar_addcarryx_u32(x211, x48, x197);
+-    let mut x214: u32 = 0;
+-    let mut x215: fiat_p384_scalar_u1 = 0;
+     let (x214, x215) = fiat_p384_scalar_addcarryx_u32(x213, x49, x198);
+-    let mut x216: u32 = 0;
+-    let mut x217: fiat_p384_scalar_u1 = 0;
+     let (x216, x217) = fiat_p384_scalar_addcarryx_u32(x215, x50, x199);
+-    let mut x218: u32 = 0;
+-    let mut x219: fiat_p384_scalar_u1 = 0;
+     let (x218, x219) = fiat_p384_scalar_addcarryx_u32(x217, x51, x200);
+-    let mut x220: u32 = 0;
+-    let mut x221: fiat_p384_scalar_u1 = 0;
+     let (x220, x221) = fiat_p384_scalar_addcarryx_u32(x219, x52, x201);
+-    let mut x222: u32 = 0;
+-    let mut x223: fiat_p384_scalar_u1 = 0;
+     let (x222, x223) = fiat_p384_scalar_addcarryx_u32(x221, x53, x202);
+-    let mut x224: u32 = 0;
+-    let mut x225: fiat_p384_scalar_u1 = 0;
+     let (x224, x225) = fiat_p384_scalar_addcarryx_u32(x223, x54, x203);
+-    let mut x226: u32 = 0;
+-    let mut x227: fiat_p384_scalar_u1 = 0;
+     let (x226, x227) = fiat_p384_scalar_addcarryx_u32(x225, x55, x204);
+-    let mut x228: u32 = 0;
+-    let mut x229: fiat_p384_scalar_u1 = 0;
+     let (x228, x229) = fiat_p384_scalar_addcarryx_u32(x227, x56, x205);
+-    let mut x230: u32 = 0;
+-    let mut x231: fiat_p384_scalar_u1 = 0;
+     let (x230, x231) = fiat_p384_scalar_addcarryx_u32(x229, x57, x206);
+-    let mut x232: u32 = 0;
+-    let mut x233: fiat_p384_scalar_u1 = 0;
+     let (x232, x233) = fiat_p384_scalar_addcarryx_u32(x231, x58, x207);
+-    let mut x234: u32 = 0;
+     let (x234) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x59);
+-    let mut x235: u32 = 0;
+     let (x235) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x60);
+-    let mut x236: u32 = 0;
+     let (x236) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x61);
+-    let mut x237: u32 = 0;
+     let (x237) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x62);
+-    let mut x238: u32 = 0;
+     let (x238) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x63);
+-    let mut x239: u32 = 0;
+     let (x239) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x64);
+-    let mut x240: u32 = 0;
+     let (x240) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x65);
+-    let mut x241: u32 = 0;
+     let (x241) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x66);
+-    let mut x242: u32 = 0;
+     let (x242) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x67);
+-    let mut x243: u32 = 0;
+     let (x243) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x68);
+-    let mut x244: u32 = 0;
+     let (x244) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x69);
+-    let mut x245: u32 = 0;
+     let (x245) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x70);
+-    let mut x246: u32 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x234);
+-    let mut x248: u32 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x183, x235);
+-    let mut x250: u32 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x184, x236);
+-    let mut x252: u32 = 0;
+-    let mut x253: fiat_p384_scalar_u1 = 0;
+     let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x185, x237);
+-    let mut x254: u32 = 0;
+-    let mut x255: fiat_p384_scalar_u1 = 0;
+     let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x186, x238);
+-    let mut x256: u32 = 0;
+-    let mut x257: fiat_p384_scalar_u1 = 0;
+     let (x256, x257) = fiat_p384_scalar_addcarryx_u32(x255, x187, x239);
+-    let mut x258: u32 = 0;
+-    let mut x259: fiat_p384_scalar_u1 = 0;
+     let (x258, x259) = fiat_p384_scalar_addcarryx_u32(x257, x188, x240);
+-    let mut x260: u32 = 0;
+-    let mut x261: fiat_p384_scalar_u1 = 0;
+     let (x260, x261) = fiat_p384_scalar_addcarryx_u32(x259, x189, x241);
+-    let mut x262: u32 = 0;
+-    let mut x263: fiat_p384_scalar_u1 = 0;
+     let (x262, x263) = fiat_p384_scalar_addcarryx_u32(x261, x190, x242);
+-    let mut x264: u32 = 0;
+-    let mut x265: fiat_p384_scalar_u1 = 0;
+     let (x264, x265) = fiat_p384_scalar_addcarryx_u32(x263, x191, x243);
+-    let mut x266: u32 = 0;
+-    let mut x267: fiat_p384_scalar_u1 = 0;
+     let (x266, x267) = fiat_p384_scalar_addcarryx_u32(x265, x192, x244);
+-    let mut x268: u32 = 0;
+-    let mut x269: fiat_p384_scalar_u1 = 0;
+     let (x268, x269) = fiat_p384_scalar_addcarryx_u32(x267, x193, x245);
+-    let mut x270: u32 = 0;
+-    let mut x271: fiat_p384_scalar_u1 = 0;
+     let (x270, x271) = fiat_p384_scalar_subborrowx_u32(0x0, x246, 0xccc52973);
+-    let mut x272: u32 = 0;
+-    let mut x273: fiat_p384_scalar_u1 = 0;
+     let (x272, x273) = fiat_p384_scalar_subborrowx_u32(x271, x248, 0xecec196a);
+-    let mut x274: u32 = 0;
+-    let mut x275: fiat_p384_scalar_u1 = 0;
+     let (x274, x275) = fiat_p384_scalar_subborrowx_u32(x273, x250, 0x48b0a77a);
+-    let mut x276: u32 = 0;
+-    let mut x277: fiat_p384_scalar_u1 = 0;
+     let (x276, x277) = fiat_p384_scalar_subborrowx_u32(x275, x252, 0x581a0db2);
+-    let mut x278: u32 = 0;
+-    let mut x279: fiat_p384_scalar_u1 = 0;
+     let (x278, x279) = fiat_p384_scalar_subborrowx_u32(x277, x254, 0xf4372ddf);
+-    let mut x280: u32 = 0;
+-    let mut x281: fiat_p384_scalar_u1 = 0;
+     let (x280, x281) = fiat_p384_scalar_subborrowx_u32(x279, x256, 0xc7634d81);
+-    let mut x282: u32 = 0;
+-    let mut x283: fiat_p384_scalar_u1 = 0;
+     let (x282, x283) = fiat_p384_scalar_subborrowx_u32(x281, x258, 0xffffffff);
+-    let mut x284: u32 = 0;
+-    let mut x285: fiat_p384_scalar_u1 = 0;
+     let (x284, x285) = fiat_p384_scalar_subborrowx_u32(x283, x260, 0xffffffff);
+-    let mut x286: u32 = 0;
+-    let mut x287: fiat_p384_scalar_u1 = 0;
+     let (x286, x287) = fiat_p384_scalar_subborrowx_u32(x285, x262, 0xffffffff);
+-    let mut x288: u32 = 0;
+-    let mut x289: fiat_p384_scalar_u1 = 0;
+     let (x288, x289) = fiat_p384_scalar_subborrowx_u32(x287, x264, 0xffffffff);
+-    let mut x290: u32 = 0;
+-    let mut x291: fiat_p384_scalar_u1 = 0;
+     let (x290, x291) = fiat_p384_scalar_subborrowx_u32(x289, x266, 0xffffffff);
+-    let mut x292: u32 = 0;
+-    let mut x293: fiat_p384_scalar_u1 = 0;
+     let (x292, x293) = fiat_p384_scalar_subborrowx_u32(x291, x268, 0xffffffff);
+-    let mut x294: u32 = 0;
+-    let mut x295: fiat_p384_scalar_u1 = 0;
+     let (x294, x295) = fiat_p384_scalar_subborrowx_u32(x293, (x269 as u32), (0x0 as u32));
+-    let mut x296: u32 = 0;
+-    let mut x297: fiat_p384_scalar_u1 = 0;
+     let (x296, x297) = fiat_p384_scalar_addcarryx_u32(0x0, x6, (0x1 as u32));
+     let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
+     let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
+@@ -11407,53 +4492,29 @@ pub const fn fiat_p384_scalar_divstep(
+     let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
+     let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
+     let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
+-    let mut x311: u32 = 0;
+     let (x311) = fiat_p384_scalar_cmovznz_u32(x120, x95, x71);
+-    let mut x312: u32 = 0;
+     let (x312) = fiat_p384_scalar_cmovznz_u32(x120, x97, x73);
+-    let mut x313: u32 = 0;
+     let (x313) = fiat_p384_scalar_cmovznz_u32(x120, x99, x75);
+-    let mut x314: u32 = 0;
+     let (x314) = fiat_p384_scalar_cmovznz_u32(x120, x101, x77);
+-    let mut x315: u32 = 0;
+     let (x315) = fiat_p384_scalar_cmovznz_u32(x120, x103, x79);
+-    let mut x316: u32 = 0;
+     let (x316) = fiat_p384_scalar_cmovznz_u32(x120, x105, x81);
+-    let mut x317: u32 = 0;
+     let (x317) = fiat_p384_scalar_cmovznz_u32(x120, x107, x83);
+-    let mut x318: u32 = 0;
+     let (x318) = fiat_p384_scalar_cmovznz_u32(x120, x109, x85);
+-    let mut x319: u32 = 0;
+     let (x319) = fiat_p384_scalar_cmovznz_u32(x120, x111, x87);
+-    let mut x320: u32 = 0;
+     let (x320) = fiat_p384_scalar_cmovznz_u32(x120, x113, x89);
+-    let mut x321: u32 = 0;
+     let (x321) = fiat_p384_scalar_cmovznz_u32(x120, x115, x91);
+-    let mut x322: u32 = 0;
+     let (x322) = fiat_p384_scalar_cmovznz_u32(x120, x117, x93);
+-    let mut x323: u32 = 0;
+     let (x323) = fiat_p384_scalar_cmovznz_u32(x295, x270, x246);
+-    let mut x324: u32 = 0;
+     let (x324) = fiat_p384_scalar_cmovznz_u32(x295, x272, x248);
+-    let mut x325: u32 = 0;
+     let (x325) = fiat_p384_scalar_cmovznz_u32(x295, x274, x250);
+-    let mut x326: u32 = 0;
+     let (x326) = fiat_p384_scalar_cmovznz_u32(x295, x276, x252);
+-    let mut x327: u32 = 0;
+     let (x327) = fiat_p384_scalar_cmovznz_u32(x295, x278, x254);
+-    let mut x328: u32 = 0;
+     let (x328) = fiat_p384_scalar_cmovznz_u32(x295, x280, x256);
+-    let mut x329: u32 = 0;
+     let (x329) = fiat_p384_scalar_cmovznz_u32(x295, x282, x258);
+-    let mut x330: u32 = 0;
+     let (x330) = fiat_p384_scalar_cmovznz_u32(x295, x284, x260);
+-    let mut x331: u32 = 0;
+     let (x331) = fiat_p384_scalar_cmovznz_u32(x295, x286, x262);
+-    let mut x332: u32 = 0;
+     let (x332) = fiat_p384_scalar_cmovznz_u32(x295, x288, x264);
+-    let mut x333: u32 = 0;
+     let (x333) = fiat_p384_scalar_cmovznz_u32(x295, x290, x266);
+-    let mut x334: u32 = 0;
+     let (x334) = fiat_p384_scalar_cmovznz_u32(x295, x292, x268);
+     out1 = x296;
+     out2[0] = x7;
+diff --git a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs
+index 5b47731..0f59cde 100644
+--- a/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs
++++ b/vendor/p384-0.13.0/src/arithmetic/scalar/p384_scalar_64.rs
+@@ -168,700 +168,250 @@ pub const fn fiat_p384_scalar_mul(
+     let x4: u64 = (arg1[4]);
+     let x5: u64 = (arg1[5]);
+     let x6: u64 = (arg1[0]);
+-    let mut x7: u64 = 0;
+-    let mut x8: u64 = 0;
+     let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, (arg2[5]));
+-    let mut x9: u64 = 0;
+-    let mut x10: u64 = 0;
+     let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, (arg2[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: u64 = 0;
+     let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, (arg2[3]));
+-    let mut x13: u64 = 0;
+-    let mut x14: u64 = 0;
+     let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, (arg2[2]));
+-    let mut x15: u64 = 0;
+-    let mut x16: u64 = 0;
+     let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, (arg2[1]));
+-    let mut x17: u64 = 0;
+-    let mut x18: u64 = 0;
+     let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, (arg2[0]));
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_scalar_u1 = 0;
+     let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
+-    let mut x27: u64 = 0;
+-    let mut x28: fiat_p384_scalar_u1 = 0;
+     let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
+     let x29: u64 = ((x28 as u64) + x8);
+-    let mut x30: u64 = 0;
+-    let mut x31: u64 = 0;
+     let (x30, x31) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
+-    let mut x32: u64 = 0;
+-    let mut x33: u64 = 0;
+     let (x32, x33) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x34: u64 = 0;
+-    let mut x35: u64 = 0;
+     let (x34, x35) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x36: u64 = 0;
+-    let mut x37: u64 = 0;
+     let (x36, x37) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x38: u64 = 0;
+-    let mut x39: u64 = 0;
+     let (x38, x39) = fiat_p384_scalar_mulx_u64(x30, 0xc7634d81f4372ddf);
+-    let mut x40: u64 = 0;
+-    let mut x41: u64 = 0;
+     let (x40, x41) = fiat_p384_scalar_mulx_u64(x30, 0x581a0db248b0a77a);
+-    let mut x42: u64 = 0;
+-    let mut x43: u64 = 0;
+     let (x42, x43) = fiat_p384_scalar_mulx_u64(x30, 0xecec196accc52973);
+-    let mut x44: u64 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u64(0x0, x43, x40);
+-    let mut x46: u64 = 0;
+-    let mut x47: fiat_p384_scalar_u1 = 0;
+     let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x41, x38);
+-    let mut x48: u64 = 0;
+-    let mut x49: fiat_p384_scalar_u1 = 0;
+     let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x39, x36);
+-    let mut x50: u64 = 0;
+-    let mut x51: fiat_p384_scalar_u1 = 0;
+     let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x37, x34);
+-    let mut x52: u64 = 0;
+-    let mut x53: fiat_p384_scalar_u1 = 0;
+     let (x52, x53) = fiat_p384_scalar_addcarryx_u64(x51, x35, x32);
+     let x54: u64 = ((x53 as u64) + x33);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x42);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x19, x44);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_scalar_u1 = 0;
+     let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x21, x46);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_scalar_u1 = 0;
+     let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x23, x48);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_scalar_u1 = 0;
+     let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x25, x50);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_scalar_u1 = 0;
+     let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, x27, x52);
+-    let mut x67: u64 = 0;
+-    let mut x68: fiat_p384_scalar_u1 = 0;
+     let (x67, x68) = fiat_p384_scalar_addcarryx_u64(x66, x29, x54);
+-    let mut x69: u64 = 0;
+-    let mut x70: u64 = 0;
+     let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, (arg2[5]));
+-    let mut x71: u64 = 0;
+-    let mut x72: u64 = 0;
+     let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, (arg2[4]));
+-    let mut x73: u64 = 0;
+-    let mut x74: u64 = 0;
+     let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, (arg2[3]));
+-    let mut x75: u64 = 0;
+-    let mut x76: u64 = 0;
+     let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, (arg2[2]));
+-    let mut x77: u64 = 0;
+-    let mut x78: u64 = 0;
+     let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, (arg2[1]));
+-    let mut x79: u64 = 0;
+-    let mut x80: u64 = 0;
+     let (x79, x80) = fiat_p384_scalar_mulx_u64(x1, (arg2[0]));
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_scalar_u1 = 0;
+     let (x81, x82) = fiat_p384_scalar_addcarryx_u64(0x0, x80, x77);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_scalar_u1 = 0;
+     let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x78, x75);
+-    let mut x85: u64 = 0;
+-    let mut x86: fiat_p384_scalar_u1 = 0;
+     let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x76, x73);
+-    let mut x87: u64 = 0;
+-    let mut x88: fiat_p384_scalar_u1 = 0;
+     let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x74, x71);
+-    let mut x89: u64 = 0;
+-    let mut x90: fiat_p384_scalar_u1 = 0;
+     let (x89, x90) = fiat_p384_scalar_addcarryx_u64(x88, x72, x69);
+     let x91: u64 = ((x90 as u64) + x70);
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(0x0, x57, x79);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x59, x81);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x61, x83);
+-    let mut x98: u64 = 0;
+-    let mut x99: fiat_p384_scalar_u1 = 0;
+     let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x63, x85);
+-    let mut x100: u64 = 0;
+-    let mut x101: fiat_p384_scalar_u1 = 0;
+     let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x65, x87);
+-    let mut x102: u64 = 0;
+-    let mut x103: fiat_p384_scalar_u1 = 0;
+     let (x102, x103) = fiat_p384_scalar_addcarryx_u64(x101, x67, x89);
+-    let mut x104: u64 = 0;
+-    let mut x105: fiat_p384_scalar_u1 = 0;
+     let (x104, x105) = fiat_p384_scalar_addcarryx_u64(x103, (x68 as u64), x91);
+-    let mut x106: u64 = 0;
+-    let mut x107: u64 = 0;
+     let (x106, x107) = fiat_p384_scalar_mulx_u64(x92, 0x6ed46089e88fdc45);
+-    let mut x108: u64 = 0;
+-    let mut x109: u64 = 0;
+     let (x108, x109) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x110: u64 = 0;
+-    let mut x111: u64 = 0;
+     let (x110, x111) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x112: u64 = 0;
+-    let mut x113: u64 = 0;
+     let (x112, x113) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x114: u64 = 0;
+-    let mut x115: u64 = 0;
+     let (x114, x115) = fiat_p384_scalar_mulx_u64(x106, 0xc7634d81f4372ddf);
+-    let mut x116: u64 = 0;
+-    let mut x117: u64 = 0;
+     let (x116, x117) = fiat_p384_scalar_mulx_u64(x106, 0x581a0db248b0a77a);
+-    let mut x118: u64 = 0;
+-    let mut x119: u64 = 0;
+     let (x118, x119) = fiat_p384_scalar_mulx_u64(x106, 0xecec196accc52973);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_scalar_u1 = 0;
+     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(0x0, x119, x116);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_scalar_u1 = 0;
+     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x117, x114);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_scalar_u1 = 0;
+     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x115, x112);
+-    let mut x126: u64 = 0;
+-    let mut x127: fiat_p384_scalar_u1 = 0;
+     let (x126, x127) = fiat_p384_scalar_addcarryx_u64(x125, x113, x110);
+-    let mut x128: u64 = 0;
+-    let mut x129: fiat_p384_scalar_u1 = 0;
+     let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x111, x108);
+     let x130: u64 = ((x129 as u64) + x109);
+-    let mut x131: u64 = 0;
+-    let mut x132: fiat_p384_scalar_u1 = 0;
+     let (x131, x132) = fiat_p384_scalar_addcarryx_u64(0x0, x92, x118);
+-    let mut x133: u64 = 0;
+-    let mut x134: fiat_p384_scalar_u1 = 0;
+     let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x94, x120);
+-    let mut x135: u64 = 0;
+-    let mut x136: fiat_p384_scalar_u1 = 0;
+     let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x96, x122);
+-    let mut x137: u64 = 0;
+-    let mut x138: fiat_p384_scalar_u1 = 0;
+     let (x137, x138) = fiat_p384_scalar_addcarryx_u64(x136, x98, x124);
+-    let mut x139: u64 = 0;
+-    let mut x140: fiat_p384_scalar_u1 = 0;
+     let (x139, x140) = fiat_p384_scalar_addcarryx_u64(x138, x100, x126);
+-    let mut x141: u64 = 0;
+-    let mut x142: fiat_p384_scalar_u1 = 0;
+     let (x141, x142) = fiat_p384_scalar_addcarryx_u64(x140, x102, x128);
+-    let mut x143: u64 = 0;
+-    let mut x144: fiat_p384_scalar_u1 = 0;
+     let (x143, x144) = fiat_p384_scalar_addcarryx_u64(x142, x104, x130);
+     let x145: u64 = ((x144 as u64) + (x105 as u64));
+-    let mut x146: u64 = 0;
+-    let mut x147: u64 = 0;
+     let (x146, x147) = fiat_p384_scalar_mulx_u64(x2, (arg2[5]));
+-    let mut x148: u64 = 0;
+-    let mut x149: u64 = 0;
+     let (x148, x149) = fiat_p384_scalar_mulx_u64(x2, (arg2[4]));
+-    let mut x150: u64 = 0;
+-    let mut x151: u64 = 0;
+     let (x150, x151) = fiat_p384_scalar_mulx_u64(x2, (arg2[3]));
+-    let mut x152: u64 = 0;
+-    let mut x153: u64 = 0;
+     let (x152, x153) = fiat_p384_scalar_mulx_u64(x2, (arg2[2]));
+-    let mut x154: u64 = 0;
+-    let mut x155: u64 = 0;
+     let (x154, x155) = fiat_p384_scalar_mulx_u64(x2, (arg2[1]));
+-    let mut x156: u64 = 0;
+-    let mut x157: u64 = 0;
+     let (x156, x157) = fiat_p384_scalar_mulx_u64(x2, (arg2[0]));
+-    let mut x158: u64 = 0;
+-    let mut x159: fiat_p384_scalar_u1 = 0;
+     let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x157, x154);
+-    let mut x160: u64 = 0;
+-    let mut x161: fiat_p384_scalar_u1 = 0;
+     let (x160, x161) = fiat_p384_scalar_addcarryx_u64(x159, x155, x152);
+-    let mut x162: u64 = 0;
+-    let mut x163: fiat_p384_scalar_u1 = 0;
+     let (x162, x163) = fiat_p384_scalar_addcarryx_u64(x161, x153, x150);
+-    let mut x164: u64 = 0;
+-    let mut x165: fiat_p384_scalar_u1 = 0;
+     let (x164, x165) = fiat_p384_scalar_addcarryx_u64(x163, x151, x148);
+-    let mut x166: u64 = 0;
+-    let mut x167: fiat_p384_scalar_u1 = 0;
+     let (x166, x167) = fiat_p384_scalar_addcarryx_u64(x165, x149, x146);
+     let x168: u64 = ((x167 as u64) + x147);
+-    let mut x169: u64 = 0;
+-    let mut x170: fiat_p384_scalar_u1 = 0;
+     let (x169, x170) = fiat_p384_scalar_addcarryx_u64(0x0, x133, x156);
+-    let mut x171: u64 = 0;
+-    let mut x172: fiat_p384_scalar_u1 = 0;
+     let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x135, x158);
+-    let mut x173: u64 = 0;
+-    let mut x174: fiat_p384_scalar_u1 = 0;
+     let (x173, x174) = fiat_p384_scalar_addcarryx_u64(x172, x137, x160);
+-    let mut x175: u64 = 0;
+-    let mut x176: fiat_p384_scalar_u1 = 0;
+     let (x175, x176) = fiat_p384_scalar_addcarryx_u64(x174, x139, x162);
+-    let mut x177: u64 = 0;
+-    let mut x178: fiat_p384_scalar_u1 = 0;
+     let (x177, x178) = fiat_p384_scalar_addcarryx_u64(x176, x141, x164);
+-    let mut x179: u64 = 0;
+-    let mut x180: fiat_p384_scalar_u1 = 0;
+     let (x179, x180) = fiat_p384_scalar_addcarryx_u64(x178, x143, x166);
+-    let mut x181: u64 = 0;
+-    let mut x182: fiat_p384_scalar_u1 = 0;
+     let (x181, x182) = fiat_p384_scalar_addcarryx_u64(x180, x145, x168);
+-    let mut x183: u64 = 0;
+-    let mut x184: u64 = 0;
+     let (x183, x184) = fiat_p384_scalar_mulx_u64(x169, 0x6ed46089e88fdc45);
+-    let mut x185: u64 = 0;
+-    let mut x186: u64 = 0;
+     let (x185, x186) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x187: u64 = 0;
+-    let mut x188: u64 = 0;
+     let (x187, x188) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x189: u64 = 0;
+-    let mut x190: u64 = 0;
+     let (x189, x190) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x191: u64 = 0;
+-    let mut x192: u64 = 0;
+     let (x191, x192) = fiat_p384_scalar_mulx_u64(x183, 0xc7634d81f4372ddf);
+-    let mut x193: u64 = 0;
+-    let mut x194: u64 = 0;
+     let (x193, x194) = fiat_p384_scalar_mulx_u64(x183, 0x581a0db248b0a77a);
+-    let mut x195: u64 = 0;
+-    let mut x196: u64 = 0;
+     let (x195, x196) = fiat_p384_scalar_mulx_u64(x183, 0xecec196accc52973);
+-    let mut x197: u64 = 0;
+-    let mut x198: fiat_p384_scalar_u1 = 0;
+     let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x196, x193);
+-    let mut x199: u64 = 0;
+-    let mut x200: fiat_p384_scalar_u1 = 0;
+     let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x194, x191);
+-    let mut x201: u64 = 0;
+-    let mut x202: fiat_p384_scalar_u1 = 0;
+     let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x192, x189);
+-    let mut x203: u64 = 0;
+-    let mut x204: fiat_p384_scalar_u1 = 0;
+     let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x190, x187);
+-    let mut x205: u64 = 0;
+-    let mut x206: fiat_p384_scalar_u1 = 0;
+     let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x188, x185);
+     let x207: u64 = ((x206 as u64) + x186);
+-    let mut x208: u64 = 0;
+-    let mut x209: fiat_p384_scalar_u1 = 0;
+     let (x208, x209) = fiat_p384_scalar_addcarryx_u64(0x0, x169, x195);
+-    let mut x210: u64 = 0;
+-    let mut x211: fiat_p384_scalar_u1 = 0;
+     let (x210, x211) = fiat_p384_scalar_addcarryx_u64(x209, x171, x197);
+-    let mut x212: u64 = 0;
+-    let mut x213: fiat_p384_scalar_u1 = 0;
+     let (x212, x213) = fiat_p384_scalar_addcarryx_u64(x211, x173, x199);
+-    let mut x214: u64 = 0;
+-    let mut x215: fiat_p384_scalar_u1 = 0;
+     let (x214, x215) = fiat_p384_scalar_addcarryx_u64(x213, x175, x201);
+-    let mut x216: u64 = 0;
+-    let mut x217: fiat_p384_scalar_u1 = 0;
+     let (x216, x217) = fiat_p384_scalar_addcarryx_u64(x215, x177, x203);
+-    let mut x218: u64 = 0;
+-    let mut x219: fiat_p384_scalar_u1 = 0;
+     let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x179, x205);
+-    let mut x220: u64 = 0;
+-    let mut x221: fiat_p384_scalar_u1 = 0;
+     let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x181, x207);
+     let x222: u64 = ((x221 as u64) + (x182 as u64));
+-    let mut x223: u64 = 0;
+-    let mut x224: u64 = 0;
+     let (x223, x224) = fiat_p384_scalar_mulx_u64(x3, (arg2[5]));
+-    let mut x225: u64 = 0;
+-    let mut x226: u64 = 0;
+     let (x225, x226) = fiat_p384_scalar_mulx_u64(x3, (arg2[4]));
+-    let mut x227: u64 = 0;
+-    let mut x228: u64 = 0;
+     let (x227, x228) = fiat_p384_scalar_mulx_u64(x3, (arg2[3]));
+-    let mut x229: u64 = 0;
+-    let mut x230: u64 = 0;
+     let (x229, x230) = fiat_p384_scalar_mulx_u64(x3, (arg2[2]));
+-    let mut x231: u64 = 0;
+-    let mut x232: u64 = 0;
+     let (x231, x232) = fiat_p384_scalar_mulx_u64(x3, (arg2[1]));
+-    let mut x233: u64 = 0;
+-    let mut x234: u64 = 0;
+     let (x233, x234) = fiat_p384_scalar_mulx_u64(x3, (arg2[0]));
+-    let mut x235: u64 = 0;
+-    let mut x236: fiat_p384_scalar_u1 = 0;
+     let (x235, x236) = fiat_p384_scalar_addcarryx_u64(0x0, x234, x231);
+-    let mut x237: u64 = 0;
+-    let mut x238: fiat_p384_scalar_u1 = 0;
+     let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x232, x229);
+-    let mut x239: u64 = 0;
+-    let mut x240: fiat_p384_scalar_u1 = 0;
+     let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x230, x227);
+-    let mut x241: u64 = 0;
+-    let mut x242: fiat_p384_scalar_u1 = 0;
+     let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x228, x225);
+-    let mut x243: u64 = 0;
+-    let mut x244: fiat_p384_scalar_u1 = 0;
+     let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x226, x223);
+     let x245: u64 = ((x244 as u64) + x224);
+-    let mut x246: u64 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u64(0x0, x210, x233);
+-    let mut x248: u64 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x212, x235);
+-    let mut x250: u64 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x214, x237);
+-    let mut x252: u64 = 0;
+-    let mut x253: fiat_p384_scalar_u1 = 0;
+     let (x252, x253) = fiat_p384_scalar_addcarryx_u64(x251, x216, x239);
+-    let mut x254: u64 = 0;
+-    let mut x255: fiat_p384_scalar_u1 = 0;
+     let (x254, x255) = fiat_p384_scalar_addcarryx_u64(x253, x218, x241);
+-    let mut x256: u64 = 0;
+-    let mut x257: fiat_p384_scalar_u1 = 0;
+     let (x256, x257) = fiat_p384_scalar_addcarryx_u64(x255, x220, x243);
+-    let mut x258: u64 = 0;
+-    let mut x259: fiat_p384_scalar_u1 = 0;
+     let (x258, x259) = fiat_p384_scalar_addcarryx_u64(x257, x222, x245);
+-    let mut x260: u64 = 0;
+-    let mut x261: u64 = 0;
+     let (x260, x261) = fiat_p384_scalar_mulx_u64(x246, 0x6ed46089e88fdc45);
+-    let mut x262: u64 = 0;
+-    let mut x263: u64 = 0;
+     let (x262, x263) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x264: u64 = 0;
+-    let mut x265: u64 = 0;
+     let (x264, x265) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x266: u64 = 0;
+-    let mut x267: u64 = 0;
+     let (x266, x267) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x268: u64 = 0;
+-    let mut x269: u64 = 0;
+     let (x268, x269) = fiat_p384_scalar_mulx_u64(x260, 0xc7634d81f4372ddf);
+-    let mut x270: u64 = 0;
+-    let mut x271: u64 = 0;
+     let (x270, x271) = fiat_p384_scalar_mulx_u64(x260, 0x581a0db248b0a77a);
+-    let mut x272: u64 = 0;
+-    let mut x273: u64 = 0;
+     let (x272, x273) = fiat_p384_scalar_mulx_u64(x260, 0xecec196accc52973);
+-    let mut x274: u64 = 0;
+-    let mut x275: fiat_p384_scalar_u1 = 0;
+     let (x274, x275) = fiat_p384_scalar_addcarryx_u64(0x0, x273, x270);
+-    let mut x276: u64 = 0;
+-    let mut x277: fiat_p384_scalar_u1 = 0;
+     let (x276, x277) = fiat_p384_scalar_addcarryx_u64(x275, x271, x268);
+-    let mut x278: u64 = 0;
+-    let mut x279: fiat_p384_scalar_u1 = 0;
+     let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x269, x266);
+-    let mut x280: u64 = 0;
+-    let mut x281: fiat_p384_scalar_u1 = 0;
+     let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x267, x264);
+-    let mut x282: u64 = 0;
+-    let mut x283: fiat_p384_scalar_u1 = 0;
+     let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x265, x262);
+     let x284: u64 = ((x283 as u64) + x263);
+-    let mut x285: u64 = 0;
+-    let mut x286: fiat_p384_scalar_u1 = 0;
+     let (x285, x286) = fiat_p384_scalar_addcarryx_u64(0x0, x246, x272);
+-    let mut x287: u64 = 0;
+-    let mut x288: fiat_p384_scalar_u1 = 0;
+     let (x287, x288) = fiat_p384_scalar_addcarryx_u64(x286, x248, x274);
+-    let mut x289: u64 = 0;
+-    let mut x290: fiat_p384_scalar_u1 = 0;
+     let (x289, x290) = fiat_p384_scalar_addcarryx_u64(x288, x250, x276);
+-    let mut x291: u64 = 0;
+-    let mut x292: fiat_p384_scalar_u1 = 0;
+     let (x291, x292) = fiat_p384_scalar_addcarryx_u64(x290, x252, x278);
+-    let mut x293: u64 = 0;
+-    let mut x294: fiat_p384_scalar_u1 = 0;
+     let (x293, x294) = fiat_p384_scalar_addcarryx_u64(x292, x254, x280);
+-    let mut x295: u64 = 0;
+-    let mut x296: fiat_p384_scalar_u1 = 0;
+     let (x295, x296) = fiat_p384_scalar_addcarryx_u64(x294, x256, x282);
+-    let mut x297: u64 = 0;
+-    let mut x298: fiat_p384_scalar_u1 = 0;
+     let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x258, x284);
+     let x299: u64 = ((x298 as u64) + (x259 as u64));
+-    let mut x300: u64 = 0;
+-    let mut x301: u64 = 0;
+     let (x300, x301) = fiat_p384_scalar_mulx_u64(x4, (arg2[5]));
+-    let mut x302: u64 = 0;
+-    let mut x303: u64 = 0;
+     let (x302, x303) = fiat_p384_scalar_mulx_u64(x4, (arg2[4]));
+-    let mut x304: u64 = 0;
+-    let mut x305: u64 = 0;
+     let (x304, x305) = fiat_p384_scalar_mulx_u64(x4, (arg2[3]));
+-    let mut x306: u64 = 0;
+-    let mut x307: u64 = 0;
+     let (x306, x307) = fiat_p384_scalar_mulx_u64(x4, (arg2[2]));
+-    let mut x308: u64 = 0;
+-    let mut x309: u64 = 0;
+     let (x308, x309) = fiat_p384_scalar_mulx_u64(x4, (arg2[1]));
+-    let mut x310: u64 = 0;
+-    let mut x311: u64 = 0;
+     let (x310, x311) = fiat_p384_scalar_mulx_u64(x4, (arg2[0]));
+-    let mut x312: u64 = 0;
+-    let mut x313: fiat_p384_scalar_u1 = 0;
+     let (x312, x313) = fiat_p384_scalar_addcarryx_u64(0x0, x311, x308);
+-    let mut x314: u64 = 0;
+-    let mut x315: fiat_p384_scalar_u1 = 0;
+     let (x314, x315) = fiat_p384_scalar_addcarryx_u64(x313, x309, x306);
+-    let mut x316: u64 = 0;
+-    let mut x317: fiat_p384_scalar_u1 = 0;
+     let (x316, x317) = fiat_p384_scalar_addcarryx_u64(x315, x307, x304);
+-    let mut x318: u64 = 0;
+-    let mut x319: fiat_p384_scalar_u1 = 0;
+     let (x318, x319) = fiat_p384_scalar_addcarryx_u64(x317, x305, x302);
+-    let mut x320: u64 = 0;
+-    let mut x321: fiat_p384_scalar_u1 = 0;
+     let (x320, x321) = fiat_p384_scalar_addcarryx_u64(x319, x303, x300);
+     let x322: u64 = ((x321 as u64) + x301);
+-    let mut x323: u64 = 0;
+-    let mut x324: fiat_p384_scalar_u1 = 0;
+     let (x323, x324) = fiat_p384_scalar_addcarryx_u64(0x0, x287, x310);
+-    let mut x325: u64 = 0;
+-    let mut x326: fiat_p384_scalar_u1 = 0;
+     let (x325, x326) = fiat_p384_scalar_addcarryx_u64(x324, x289, x312);
+-    let mut x327: u64 = 0;
+-    let mut x328: fiat_p384_scalar_u1 = 0;
+     let (x327, x328) = fiat_p384_scalar_addcarryx_u64(x326, x291, x314);
+-    let mut x329: u64 = 0;
+-    let mut x330: fiat_p384_scalar_u1 = 0;
+     let (x329, x330) = fiat_p384_scalar_addcarryx_u64(x328, x293, x316);
+-    let mut x331: u64 = 0;
+-    let mut x332: fiat_p384_scalar_u1 = 0;
+     let (x331, x332) = fiat_p384_scalar_addcarryx_u64(x330, x295, x318);
+-    let mut x333: u64 = 0;
+-    let mut x334: fiat_p384_scalar_u1 = 0;
+     let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x297, x320);
+-    let mut x335: u64 = 0;
+-    let mut x336: fiat_p384_scalar_u1 = 0;
+     let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x299, x322);
+-    let mut x337: u64 = 0;
+-    let mut x338: u64 = 0;
+     let (x337, x338) = fiat_p384_scalar_mulx_u64(x323, 0x6ed46089e88fdc45);
+-    let mut x339: u64 = 0;
+-    let mut x340: u64 = 0;
+     let (x339, x340) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x341: u64 = 0;
+-    let mut x342: u64 = 0;
+     let (x341, x342) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x343: u64 = 0;
+-    let mut x344: u64 = 0;
+     let (x343, x344) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x345: u64 = 0;
+-    let mut x346: u64 = 0;
+     let (x345, x346) = fiat_p384_scalar_mulx_u64(x337, 0xc7634d81f4372ddf);
+-    let mut x347: u64 = 0;
+-    let mut x348: u64 = 0;
+     let (x347, x348) = fiat_p384_scalar_mulx_u64(x337, 0x581a0db248b0a77a);
+-    let mut x349: u64 = 0;
+-    let mut x350: u64 = 0;
+     let (x349, x350) = fiat_p384_scalar_mulx_u64(x337, 0xecec196accc52973);
+-    let mut x351: u64 = 0;
+-    let mut x352: fiat_p384_scalar_u1 = 0;
+     let (x351, x352) = fiat_p384_scalar_addcarryx_u64(0x0, x350, x347);
+-    let mut x353: u64 = 0;
+-    let mut x354: fiat_p384_scalar_u1 = 0;
+     let (x353, x354) = fiat_p384_scalar_addcarryx_u64(x352, x348, x345);
+-    let mut x355: u64 = 0;
+-    let mut x356: fiat_p384_scalar_u1 = 0;
+     let (x355, x356) = fiat_p384_scalar_addcarryx_u64(x354, x346, x343);
+-    let mut x357: u64 = 0;
+-    let mut x358: fiat_p384_scalar_u1 = 0;
+     let (x357, x358) = fiat_p384_scalar_addcarryx_u64(x356, x344, x341);
+-    let mut x359: u64 = 0;
+-    let mut x360: fiat_p384_scalar_u1 = 0;
+     let (x359, x360) = fiat_p384_scalar_addcarryx_u64(x358, x342, x339);
+     let x361: u64 = ((x360 as u64) + x340);
+-    let mut x362: u64 = 0;
+-    let mut x363: fiat_p384_scalar_u1 = 0;
+     let (x362, x363) = fiat_p384_scalar_addcarryx_u64(0x0, x323, x349);
+-    let mut x364: u64 = 0;
+-    let mut x365: fiat_p384_scalar_u1 = 0;
+     let (x364, x365) = fiat_p384_scalar_addcarryx_u64(x363, x325, x351);
+-    let mut x366: u64 = 0;
+-    let mut x367: fiat_p384_scalar_u1 = 0;
+     let (x366, x367) = fiat_p384_scalar_addcarryx_u64(x365, x327, x353);
+-    let mut x368: u64 = 0;
+-    let mut x369: fiat_p384_scalar_u1 = 0;
+     let (x368, x369) = fiat_p384_scalar_addcarryx_u64(x367, x329, x355);
+-    let mut x370: u64 = 0;
+-    let mut x371: fiat_p384_scalar_u1 = 0;
+     let (x370, x371) = fiat_p384_scalar_addcarryx_u64(x369, x331, x357);
+-    let mut x372: u64 = 0;
+-    let mut x373: fiat_p384_scalar_u1 = 0;
+     let (x372, x373) = fiat_p384_scalar_addcarryx_u64(x371, x333, x359);
+-    let mut x374: u64 = 0;
+-    let mut x375: fiat_p384_scalar_u1 = 0;
+     let (x374, x375) = fiat_p384_scalar_addcarryx_u64(x373, x335, x361);
+     let x376: u64 = ((x375 as u64) + (x336 as u64));
+-    let mut x377: u64 = 0;
+-    let mut x378: u64 = 0;
+     let (x377, x378) = fiat_p384_scalar_mulx_u64(x5, (arg2[5]));
+-    let mut x379: u64 = 0;
+-    let mut x380: u64 = 0;
+     let (x379, x380) = fiat_p384_scalar_mulx_u64(x5, (arg2[4]));
+-    let mut x381: u64 = 0;
+-    let mut x382: u64 = 0;
+     let (x381, x382) = fiat_p384_scalar_mulx_u64(x5, (arg2[3]));
+-    let mut x383: u64 = 0;
+-    let mut x384: u64 = 0;
+     let (x383, x384) = fiat_p384_scalar_mulx_u64(x5, (arg2[2]));
+-    let mut x385: u64 = 0;
+-    let mut x386: u64 = 0;
+     let (x385, x386) = fiat_p384_scalar_mulx_u64(x5, (arg2[1]));
+-    let mut x387: u64 = 0;
+-    let mut x388: u64 = 0;
+     let (x387, x388) = fiat_p384_scalar_mulx_u64(x5, (arg2[0]));
+-    let mut x389: u64 = 0;
+-    let mut x390: fiat_p384_scalar_u1 = 0;
+     let (x389, x390) = fiat_p384_scalar_addcarryx_u64(0x0, x388, x385);
+-    let mut x391: u64 = 0;
+-    let mut x392: fiat_p384_scalar_u1 = 0;
+     let (x391, x392) = fiat_p384_scalar_addcarryx_u64(x390, x386, x383);
+-    let mut x393: u64 = 0;
+-    let mut x394: fiat_p384_scalar_u1 = 0;
+     let (x393, x394) = fiat_p384_scalar_addcarryx_u64(x392, x384, x381);
+-    let mut x395: u64 = 0;
+-    let mut x396: fiat_p384_scalar_u1 = 0;
+     let (x395, x396) = fiat_p384_scalar_addcarryx_u64(x394, x382, x379);
+-    let mut x397: u64 = 0;
+-    let mut x398: fiat_p384_scalar_u1 = 0;
+     let (x397, x398) = fiat_p384_scalar_addcarryx_u64(x396, x380, x377);
+     let x399: u64 = ((x398 as u64) + x378);
+-    let mut x400: u64 = 0;
+-    let mut x401: fiat_p384_scalar_u1 = 0;
+     let (x400, x401) = fiat_p384_scalar_addcarryx_u64(0x0, x364, x387);
+-    let mut x402: u64 = 0;
+-    let mut x403: fiat_p384_scalar_u1 = 0;
+     let (x402, x403) = fiat_p384_scalar_addcarryx_u64(x401, x366, x389);
+-    let mut x404: u64 = 0;
+-    let mut x405: fiat_p384_scalar_u1 = 0;
+     let (x404, x405) = fiat_p384_scalar_addcarryx_u64(x403, x368, x391);
+-    let mut x406: u64 = 0;
+-    let mut x407: fiat_p384_scalar_u1 = 0;
+     let (x406, x407) = fiat_p384_scalar_addcarryx_u64(x405, x370, x393);
+-    let mut x408: u64 = 0;
+-    let mut x409: fiat_p384_scalar_u1 = 0;
+     let (x408, x409) = fiat_p384_scalar_addcarryx_u64(x407, x372, x395);
+-    let mut x410: u64 = 0;
+-    let mut x411: fiat_p384_scalar_u1 = 0;
+     let (x410, x411) = fiat_p384_scalar_addcarryx_u64(x409, x374, x397);
+-    let mut x412: u64 = 0;
+-    let mut x413: fiat_p384_scalar_u1 = 0;
+     let (x412, x413) = fiat_p384_scalar_addcarryx_u64(x411, x376, x399);
+-    let mut x414: u64 = 0;
+-    let mut x415: u64 = 0;
+     let (x414, x415) = fiat_p384_scalar_mulx_u64(x400, 0x6ed46089e88fdc45);
+-    let mut x416: u64 = 0;
+-    let mut x417: u64 = 0;
+     let (x416, x417) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x418: u64 = 0;
+-    let mut x419: u64 = 0;
+     let (x418, x419) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x420: u64 = 0;
+-    let mut x421: u64 = 0;
+     let (x420, x421) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x422: u64 = 0;
+-    let mut x423: u64 = 0;
+     let (x422, x423) = fiat_p384_scalar_mulx_u64(x414, 0xc7634d81f4372ddf);
+-    let mut x424: u64 = 0;
+-    let mut x425: u64 = 0;
+     let (x424, x425) = fiat_p384_scalar_mulx_u64(x414, 0x581a0db248b0a77a);
+-    let mut x426: u64 = 0;
+-    let mut x427: u64 = 0;
+     let (x426, x427) = fiat_p384_scalar_mulx_u64(x414, 0xecec196accc52973);
+-    let mut x428: u64 = 0;
+-    let mut x429: fiat_p384_scalar_u1 = 0;
+     let (x428, x429) = fiat_p384_scalar_addcarryx_u64(0x0, x427, x424);
+-    let mut x430: u64 = 0;
+-    let mut x431: fiat_p384_scalar_u1 = 0;
+     let (x430, x431) = fiat_p384_scalar_addcarryx_u64(x429, x425, x422);
+-    let mut x432: u64 = 0;
+-    let mut x433: fiat_p384_scalar_u1 = 0;
+     let (x432, x433) = fiat_p384_scalar_addcarryx_u64(x431, x423, x420);
+-    let mut x434: u64 = 0;
+-    let mut x435: fiat_p384_scalar_u1 = 0;
+     let (x434, x435) = fiat_p384_scalar_addcarryx_u64(x433, x421, x418);
+-    let mut x436: u64 = 0;
+-    let mut x437: fiat_p384_scalar_u1 = 0;
+     let (x436, x437) = fiat_p384_scalar_addcarryx_u64(x435, x419, x416);
+     let x438: u64 = ((x437 as u64) + x417);
+-    let mut x439: u64 = 0;
+-    let mut x440: fiat_p384_scalar_u1 = 0;
+     let (x439, x440) = fiat_p384_scalar_addcarryx_u64(0x0, x400, x426);
+-    let mut x441: u64 = 0;
+-    let mut x442: fiat_p384_scalar_u1 = 0;
+     let (x441, x442) = fiat_p384_scalar_addcarryx_u64(x440, x402, x428);
+-    let mut x443: u64 = 0;
+-    let mut x444: fiat_p384_scalar_u1 = 0;
+     let (x443, x444) = fiat_p384_scalar_addcarryx_u64(x442, x404, x430);
+-    let mut x445: u64 = 0;
+-    let mut x446: fiat_p384_scalar_u1 = 0;
+     let (x445, x446) = fiat_p384_scalar_addcarryx_u64(x444, x406, x432);
+-    let mut x447: u64 = 0;
+-    let mut x448: fiat_p384_scalar_u1 = 0;
+     let (x447, x448) = fiat_p384_scalar_addcarryx_u64(x446, x408, x434);
+-    let mut x449: u64 = 0;
+-    let mut x450: fiat_p384_scalar_u1 = 0;
+     let (x449, x450) = fiat_p384_scalar_addcarryx_u64(x448, x410, x436);
+-    let mut x451: u64 = 0;
+-    let mut x452: fiat_p384_scalar_u1 = 0;
+     let (x451, x452) = fiat_p384_scalar_addcarryx_u64(x450, x412, x438);
+     let x453: u64 = ((x452 as u64) + (x413 as u64));
+-    let mut x454: u64 = 0;
+-    let mut x455: fiat_p384_scalar_u1 = 0;
+     let (x454, x455) = fiat_p384_scalar_subborrowx_u64(0x0, x441, 0xecec196accc52973);
+-    let mut x456: u64 = 0;
+-    let mut x457: fiat_p384_scalar_u1 = 0;
+     let (x456, x457) = fiat_p384_scalar_subborrowx_u64(x455, x443, 0x581a0db248b0a77a);
+-    let mut x458: u64 = 0;
+-    let mut x459: fiat_p384_scalar_u1 = 0;
+     let (x458, x459) = fiat_p384_scalar_subborrowx_u64(x457, x445, 0xc7634d81f4372ddf);
+-    let mut x460: u64 = 0;
+-    let mut x461: fiat_p384_scalar_u1 = 0;
+     let (x460, x461) = fiat_p384_scalar_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+-    let mut x462: u64 = 0;
+-    let mut x463: fiat_p384_scalar_u1 = 0;
+     let (x462, x463) = fiat_p384_scalar_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+-    let mut x464: u64 = 0;
+-    let mut x465: fiat_p384_scalar_u1 = 0;
+     let (x464, x465) = fiat_p384_scalar_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+-    let mut x466: u64 = 0;
+-    let mut x467: fiat_p384_scalar_u1 = 0;
+     let (x466, x467) = fiat_p384_scalar_subborrowx_u64(x465, x453, 0x0_u64);
+-    let mut x468: u64 = 0;
+     let (x468) = fiat_p384_scalar_cmovznz_u64(x467, x454, x441);
+-    let mut x469: u64 = 0;
+     let (x469) = fiat_p384_scalar_cmovznz_u64(x467, x456, x443);
+-    let mut x470: u64 = 0;
+     let (x470) = fiat_p384_scalar_cmovznz_u64(x467, x458, x445);
+-    let mut x471: u64 = 0;
+     let (x471) = fiat_p384_scalar_cmovznz_u64(x467, x460, x447);
+-    let mut x472: u64 = 0;
+     let (x472) = fiat_p384_scalar_cmovznz_u64(x467, x462, x449);
+-    let mut x473: u64 = 0;
+     let (x473) = fiat_p384_scalar_cmovznz_u64(x467, x464, x451);
+     out1[0] = x468;
+     out1[1] = x469;
+@@ -890,700 +440,250 @@ pub const fn fiat_p384_scalar_square(
+     let x4: u64 = (arg1[4]);
+     let x5: u64 = (arg1[5]);
+     let x6: u64 = (arg1[0]);
+-    let mut x7: u64 = 0;
+-    let mut x8: u64 = 0;
+     let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, (arg1[5]));
+-    let mut x9: u64 = 0;
+-    let mut x10: u64 = 0;
+     let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, (arg1[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: u64 = 0;
+     let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, (arg1[3]));
+-    let mut x13: u64 = 0;
+-    let mut x14: u64 = 0;
+     let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, (arg1[2]));
+-    let mut x15: u64 = 0;
+-    let mut x16: u64 = 0;
+     let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, (arg1[1]));
+-    let mut x17: u64 = 0;
+-    let mut x18: u64 = 0;
+     let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, (arg1[0]));
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_scalar_u1 = 0;
+     let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
+-    let mut x27: u64 = 0;
+-    let mut x28: fiat_p384_scalar_u1 = 0;
+     let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
+     let x29: u64 = ((x28 as u64) + x8);
+-    let mut x30: u64 = 0;
+-    let mut x31: u64 = 0;
+     let (x30, x31) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
+-    let mut x32: u64 = 0;
+-    let mut x33: u64 = 0;
+     let (x32, x33) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x34: u64 = 0;
+-    let mut x35: u64 = 0;
+     let (x34, x35) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x36: u64 = 0;
+-    let mut x37: u64 = 0;
+     let (x36, x37) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+-    let mut x38: u64 = 0;
+-    let mut x39: u64 = 0;
+     let (x38, x39) = fiat_p384_scalar_mulx_u64(x30, 0xc7634d81f4372ddf);
+-    let mut x40: u64 = 0;
+-    let mut x41: u64 = 0;
+     let (x40, x41) = fiat_p384_scalar_mulx_u64(x30, 0x581a0db248b0a77a);
+-    let mut x42: u64 = 0;
+-    let mut x43: u64 = 0;
+     let (x42, x43) = fiat_p384_scalar_mulx_u64(x30, 0xecec196accc52973);
+-    let mut x44: u64 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u64(0x0, x43, x40);
+-    let mut x46: u64 = 0;
+-    let mut x47: fiat_p384_scalar_u1 = 0;
+     let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x41, x38);
+-    let mut x48: u64 = 0;
+-    let mut x49: fiat_p384_scalar_u1 = 0;
+     let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x39, x36);
+-    let mut x50: u64 = 0;
+-    let mut x51: fiat_p384_scalar_u1 = 0;
+     let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x37, x34);
+-    let mut x52: u64 = 0;
+-    let mut x53: fiat_p384_scalar_u1 = 0;
+     let (x52, x53) = fiat_p384_scalar_addcarryx_u64(x51, x35, x32);
+     let x54: u64 = ((x53 as u64) + x33);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x42);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x19, x44);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_scalar_u1 = 0;
+     let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x21, x46);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_scalar_u1 = 0;
+     let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x23, x48);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_scalar_u1 = 0;
+     let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x25, x50);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_scalar_u1 = 0;
+     let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, x27, x52);
+-    let mut x67: u64 = 0;
+-    let mut x68: fiat_p384_scalar_u1 = 0;
+     let (x67, x68) = fiat_p384_scalar_addcarryx_u64(x66, x29, x54);
+-    let mut x69: u64 = 0;
+-    let mut x70: u64 = 0;
+     let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, (arg1[5]));
+-    let mut x71: u64 = 0;
+-    let mut x72: u64 = 0;
+     let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, (arg1[4]));
+-    let mut x73: u64 = 0;
+-    let mut x74: u64 = 0;
+     let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, (arg1[3]));
+-    let mut x75: u64 = 0;
+-    let mut x76: u64 = 0;
+     let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, (arg1[2]));
+-    let mut x77: u64 = 0;
+-    let mut x78: u64 = 0;
+     let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, (arg1[1]));
+-    let mut x79: u64 = 0;
+-    let mut x80: u64 = 0;
+     let (x79, x80) = fiat_p384_scalar_mulx_u64(x1, (arg1[0]));
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_scalar_u1 = 0;
+     let (x81, x82) = fiat_p384_scalar_addcarryx_u64(0x0, x80, x77);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_scalar_u1 = 0;
+     let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x78, x75);
+-    let mut x85: u64 = 0;
+-    let mut x86: fiat_p384_scalar_u1 = 0;
+     let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x76, x73);
+-    let mut x87: u64 = 0;
+-    let mut x88: fiat_p384_scalar_u1 = 0;
+     let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x74, x71);
+-    let mut x89: u64 = 0;
+-    let mut x90: fiat_p384_scalar_u1 = 0;
+     let (x89, x90) = fiat_p384_scalar_addcarryx_u64(x88, x72, x69);
+     let x91: u64 = ((x90 as u64) + x70);
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(0x0, x57, x79);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x59, x81);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x61, x83);
+-    let mut x98: u64 = 0;
+-    let mut x99: fiat_p384_scalar_u1 = 0;
+     let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x63, x85);
+-    let mut x100: u64 = 0;
+-    let mut x101: fiat_p384_scalar_u1 = 0;
+     let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x65, x87);
+-    let mut x102: u64 = 0;
+-    let mut x103: fiat_p384_scalar_u1 = 0;
+     let (x102, x103) = fiat_p384_scalar_addcarryx_u64(x101, x67, x89);
+-    let mut x104: u64 = 0;
+-    let mut x105: fiat_p384_scalar_u1 = 0;
+     let (x104, x105) = fiat_p384_scalar_addcarryx_u64(x103, (x68 as u64), x91);
+-    let mut x106: u64 = 0;
+-    let mut x107: u64 = 0;
+     let (x106, x107) = fiat_p384_scalar_mulx_u64(x92, 0x6ed46089e88fdc45);
+-    let mut x108: u64 = 0;
+-    let mut x109: u64 = 0;
+     let (x108, x109) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x110: u64 = 0;
+-    let mut x111: u64 = 0;
+     let (x110, x111) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x112: u64 = 0;
+-    let mut x113: u64 = 0;
+     let (x112, x113) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+-    let mut x114: u64 = 0;
+-    let mut x115: u64 = 0;
+     let (x114, x115) = fiat_p384_scalar_mulx_u64(x106, 0xc7634d81f4372ddf);
+-    let mut x116: u64 = 0;
+-    let mut x117: u64 = 0;
+     let (x116, x117) = fiat_p384_scalar_mulx_u64(x106, 0x581a0db248b0a77a);
+-    let mut x118: u64 = 0;
+-    let mut x119: u64 = 0;
+     let (x118, x119) = fiat_p384_scalar_mulx_u64(x106, 0xecec196accc52973);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_scalar_u1 = 0;
+     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(0x0, x119, x116);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_scalar_u1 = 0;
+     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x117, x114);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_scalar_u1 = 0;
+     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x115, x112);
+-    let mut x126: u64 = 0;
+-    let mut x127: fiat_p384_scalar_u1 = 0;
+     let (x126, x127) = fiat_p384_scalar_addcarryx_u64(x125, x113, x110);
+-    let mut x128: u64 = 0;
+-    let mut x129: fiat_p384_scalar_u1 = 0;
+     let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x111, x108);
+     let x130: u64 = ((x129 as u64) + x109);
+-    let mut x131: u64 = 0;
+-    let mut x132: fiat_p384_scalar_u1 = 0;
+     let (x131, x132) = fiat_p384_scalar_addcarryx_u64(0x0, x92, x118);
+-    let mut x133: u64 = 0;
+-    let mut x134: fiat_p384_scalar_u1 = 0;
+     let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x94, x120);
+-    let mut x135: u64 = 0;
+-    let mut x136: fiat_p384_scalar_u1 = 0;
+     let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x96, x122);
+-    let mut x137: u64 = 0;
+-    let mut x138: fiat_p384_scalar_u1 = 0;
+     let (x137, x138) = fiat_p384_scalar_addcarryx_u64(x136, x98, x124);
+-    let mut x139: u64 = 0;
+-    let mut x140: fiat_p384_scalar_u1 = 0;
+     let (x139, x140) = fiat_p384_scalar_addcarryx_u64(x138, x100, x126);
+-    let mut x141: u64 = 0;
+-    let mut x142: fiat_p384_scalar_u1 = 0;
+     let (x141, x142) = fiat_p384_scalar_addcarryx_u64(x140, x102, x128);
+-    let mut x143: u64 = 0;
+-    let mut x144: fiat_p384_scalar_u1 = 0;
+     let (x143, x144) = fiat_p384_scalar_addcarryx_u64(x142, x104, x130);
+     let x145: u64 = ((x144 as u64) + (x105 as u64));
+-    let mut x146: u64 = 0;
+-    let mut x147: u64 = 0;
+     let (x146, x147) = fiat_p384_scalar_mulx_u64(x2, (arg1[5]));
+-    let mut x148: u64 = 0;
+-    let mut x149: u64 = 0;
+     let (x148, x149) = fiat_p384_scalar_mulx_u64(x2, (arg1[4]));
+-    let mut x150: u64 = 0;
+-    let mut x151: u64 = 0;
+     let (x150, x151) = fiat_p384_scalar_mulx_u64(x2, (arg1[3]));
+-    let mut x152: u64 = 0;
+-    let mut x153: u64 = 0;
+     let (x152, x153) = fiat_p384_scalar_mulx_u64(x2, (arg1[2]));
+-    let mut x154: u64 = 0;
+-    let mut x155: u64 = 0;
+     let (x154, x155) = fiat_p384_scalar_mulx_u64(x2, (arg1[1]));
+-    let mut x156: u64 = 0;
+-    let mut x157: u64 = 0;
+     let (x156, x157) = fiat_p384_scalar_mulx_u64(x2, (arg1[0]));
+-    let mut x158: u64 = 0;
+-    let mut x159: fiat_p384_scalar_u1 = 0;
+     let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x157, x154);
+-    let mut x160: u64 = 0;
+-    let mut x161: fiat_p384_scalar_u1 = 0;
+     let (x160, x161) = fiat_p384_scalar_addcarryx_u64(x159, x155, x152);
+-    let mut x162: u64 = 0;
+-    let mut x163: fiat_p384_scalar_u1 = 0;
+     let (x162, x163) = fiat_p384_scalar_addcarryx_u64(x161, x153, x150);
+-    let mut x164: u64 = 0;
+-    let mut x165: fiat_p384_scalar_u1 = 0;
+     let (x164, x165) = fiat_p384_scalar_addcarryx_u64(x163, x151, x148);
+-    let mut x166: u64 = 0;
+-    let mut x167: fiat_p384_scalar_u1 = 0;
+     let (x166, x167) = fiat_p384_scalar_addcarryx_u64(x165, x149, x146);
+     let x168: u64 = ((x167 as u64) + x147);
+-    let mut x169: u64 = 0;
+-    let mut x170: fiat_p384_scalar_u1 = 0;
+     let (x169, x170) = fiat_p384_scalar_addcarryx_u64(0x0, x133, x156);
+-    let mut x171: u64 = 0;
+-    let mut x172: fiat_p384_scalar_u1 = 0;
+     let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x135, x158);
+-    let mut x173: u64 = 0;
+-    let mut x174: fiat_p384_scalar_u1 = 0;
+     let (x173, x174) = fiat_p384_scalar_addcarryx_u64(x172, x137, x160);
+-    let mut x175: u64 = 0;
+-    let mut x176: fiat_p384_scalar_u1 = 0;
+     let (x175, x176) = fiat_p384_scalar_addcarryx_u64(x174, x139, x162);
+-    let mut x177: u64 = 0;
+-    let mut x178: fiat_p384_scalar_u1 = 0;
+     let (x177, x178) = fiat_p384_scalar_addcarryx_u64(x176, x141, x164);
+-    let mut x179: u64 = 0;
+-    let mut x180: fiat_p384_scalar_u1 = 0;
+     let (x179, x180) = fiat_p384_scalar_addcarryx_u64(x178, x143, x166);
+-    let mut x181: u64 = 0;
+-    let mut x182: fiat_p384_scalar_u1 = 0;
+     let (x181, x182) = fiat_p384_scalar_addcarryx_u64(x180, x145, x168);
+-    let mut x183: u64 = 0;
+-    let mut x184: u64 = 0;
+     let (x183, x184) = fiat_p384_scalar_mulx_u64(x169, 0x6ed46089e88fdc45);
+-    let mut x185: u64 = 0;
+-    let mut x186: u64 = 0;
+     let (x185, x186) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x187: u64 = 0;
+-    let mut x188: u64 = 0;
+     let (x187, x188) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x189: u64 = 0;
+-    let mut x190: u64 = 0;
+     let (x189, x190) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+-    let mut x191: u64 = 0;
+-    let mut x192: u64 = 0;
+     let (x191, x192) = fiat_p384_scalar_mulx_u64(x183, 0xc7634d81f4372ddf);
+-    let mut x193: u64 = 0;
+-    let mut x194: u64 = 0;
+     let (x193, x194) = fiat_p384_scalar_mulx_u64(x183, 0x581a0db248b0a77a);
+-    let mut x195: u64 = 0;
+-    let mut x196: u64 = 0;
+     let (x195, x196) = fiat_p384_scalar_mulx_u64(x183, 0xecec196accc52973);
+-    let mut x197: u64 = 0;
+-    let mut x198: fiat_p384_scalar_u1 = 0;
+     let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x196, x193);
+-    let mut x199: u64 = 0;
+-    let mut x200: fiat_p384_scalar_u1 = 0;
+     let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x194, x191);
+-    let mut x201: u64 = 0;
+-    let mut x202: fiat_p384_scalar_u1 = 0;
+     let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x192, x189);
+-    let mut x203: u64 = 0;
+-    let mut x204: fiat_p384_scalar_u1 = 0;
+     let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x190, x187);
+-    let mut x205: u64 = 0;
+-    let mut x206: fiat_p384_scalar_u1 = 0;
+     let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x188, x185);
+     let x207: u64 = ((x206 as u64) + x186);
+-    let mut x208: u64 = 0;
+-    let mut x209: fiat_p384_scalar_u1 = 0;
+     let (x208, x209) = fiat_p384_scalar_addcarryx_u64(0x0, x169, x195);
+-    let mut x210: u64 = 0;
+-    let mut x211: fiat_p384_scalar_u1 = 0;
+     let (x210, x211) = fiat_p384_scalar_addcarryx_u64(x209, x171, x197);
+-    let mut x212: u64 = 0;
+-    let mut x213: fiat_p384_scalar_u1 = 0;
+     let (x212, x213) = fiat_p384_scalar_addcarryx_u64(x211, x173, x199);
+-    let mut x214: u64 = 0;
+-    let mut x215: fiat_p384_scalar_u1 = 0;
+     let (x214, x215) = fiat_p384_scalar_addcarryx_u64(x213, x175, x201);
+-    let mut x216: u64 = 0;
+-    let mut x217: fiat_p384_scalar_u1 = 0;
+     let (x216, x217) = fiat_p384_scalar_addcarryx_u64(x215, x177, x203);
+-    let mut x218: u64 = 0;
+-    let mut x219: fiat_p384_scalar_u1 = 0;
+     let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x179, x205);
+-    let mut x220: u64 = 0;
+-    let mut x221: fiat_p384_scalar_u1 = 0;
+     let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x181, x207);
+     let x222: u64 = ((x221 as u64) + (x182 as u64));
+-    let mut x223: u64 = 0;
+-    let mut x224: u64 = 0;
+     let (x223, x224) = fiat_p384_scalar_mulx_u64(x3, (arg1[5]));
+-    let mut x225: u64 = 0;
+-    let mut x226: u64 = 0;
+     let (x225, x226) = fiat_p384_scalar_mulx_u64(x3, (arg1[4]));
+-    let mut x227: u64 = 0;
+-    let mut x228: u64 = 0;
+     let (x227, x228) = fiat_p384_scalar_mulx_u64(x3, (arg1[3]));
+-    let mut x229: u64 = 0;
+-    let mut x230: u64 = 0;
+     let (x229, x230) = fiat_p384_scalar_mulx_u64(x3, (arg1[2]));
+-    let mut x231: u64 = 0;
+-    let mut x232: u64 = 0;
+     let (x231, x232) = fiat_p384_scalar_mulx_u64(x3, (arg1[1]));
+-    let mut x233: u64 = 0;
+-    let mut x234: u64 = 0;
+     let (x233, x234) = fiat_p384_scalar_mulx_u64(x3, (arg1[0]));
+-    let mut x235: u64 = 0;
+-    let mut x236: fiat_p384_scalar_u1 = 0;
+     let (x235, x236) = fiat_p384_scalar_addcarryx_u64(0x0, x234, x231);
+-    let mut x237: u64 = 0;
+-    let mut x238: fiat_p384_scalar_u1 = 0;
+     let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x232, x229);
+-    let mut x239: u64 = 0;
+-    let mut x240: fiat_p384_scalar_u1 = 0;
+     let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x230, x227);
+-    let mut x241: u64 = 0;
+-    let mut x242: fiat_p384_scalar_u1 = 0;
+     let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x228, x225);
+-    let mut x243: u64 = 0;
+-    let mut x244: fiat_p384_scalar_u1 = 0;
+     let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x226, x223);
+     let x245: u64 = ((x244 as u64) + x224);
+-    let mut x246: u64 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u64(0x0, x210, x233);
+-    let mut x248: u64 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x212, x235);
+-    let mut x250: u64 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x214, x237);
+-    let mut x252: u64 = 0;
+-    let mut x253: fiat_p384_scalar_u1 = 0;
+     let (x252, x253) = fiat_p384_scalar_addcarryx_u64(x251, x216, x239);
+-    let mut x254: u64 = 0;
+-    let mut x255: fiat_p384_scalar_u1 = 0;
+     let (x254, x255) = fiat_p384_scalar_addcarryx_u64(x253, x218, x241);
+-    let mut x256: u64 = 0;
+-    let mut x257: fiat_p384_scalar_u1 = 0;
+     let (x256, x257) = fiat_p384_scalar_addcarryx_u64(x255, x220, x243);
+-    let mut x258: u64 = 0;
+-    let mut x259: fiat_p384_scalar_u1 = 0;
+     let (x258, x259) = fiat_p384_scalar_addcarryx_u64(x257, x222, x245);
+-    let mut x260: u64 = 0;
+-    let mut x261: u64 = 0;
+     let (x260, x261) = fiat_p384_scalar_mulx_u64(x246, 0x6ed46089e88fdc45);
+-    let mut x262: u64 = 0;
+-    let mut x263: u64 = 0;
+     let (x262, x263) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x264: u64 = 0;
+-    let mut x265: u64 = 0;
+     let (x264, x265) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x266: u64 = 0;
+-    let mut x267: u64 = 0;
+     let (x266, x267) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+-    let mut x268: u64 = 0;
+-    let mut x269: u64 = 0;
+     let (x268, x269) = fiat_p384_scalar_mulx_u64(x260, 0xc7634d81f4372ddf);
+-    let mut x270: u64 = 0;
+-    let mut x271: u64 = 0;
+     let (x270, x271) = fiat_p384_scalar_mulx_u64(x260, 0x581a0db248b0a77a);
+-    let mut x272: u64 = 0;
+-    let mut x273: u64 = 0;
+     let (x272, x273) = fiat_p384_scalar_mulx_u64(x260, 0xecec196accc52973);
+-    let mut x274: u64 = 0;
+-    let mut x275: fiat_p384_scalar_u1 = 0;
+     let (x274, x275) = fiat_p384_scalar_addcarryx_u64(0x0, x273, x270);
+-    let mut x276: u64 = 0;
+-    let mut x277: fiat_p384_scalar_u1 = 0;
+     let (x276, x277) = fiat_p384_scalar_addcarryx_u64(x275, x271, x268);
+-    let mut x278: u64 = 0;
+-    let mut x279: fiat_p384_scalar_u1 = 0;
+     let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x269, x266);
+-    let mut x280: u64 = 0;
+-    let mut x281: fiat_p384_scalar_u1 = 0;
+     let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x267, x264);
+-    let mut x282: u64 = 0;
+-    let mut x283: fiat_p384_scalar_u1 = 0;
+     let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x265, x262);
+     let x284: u64 = ((x283 as u64) + x263);
+-    let mut x285: u64 = 0;
+-    let mut x286: fiat_p384_scalar_u1 = 0;
+     let (x285, x286) = fiat_p384_scalar_addcarryx_u64(0x0, x246, x272);
+-    let mut x287: u64 = 0;
+-    let mut x288: fiat_p384_scalar_u1 = 0;
+     let (x287, x288) = fiat_p384_scalar_addcarryx_u64(x286, x248, x274);
+-    let mut x289: u64 = 0;
+-    let mut x290: fiat_p384_scalar_u1 = 0;
+     let (x289, x290) = fiat_p384_scalar_addcarryx_u64(x288, x250, x276);
+-    let mut x291: u64 = 0;
+-    let mut x292: fiat_p384_scalar_u1 = 0;
+     let (x291, x292) = fiat_p384_scalar_addcarryx_u64(x290, x252, x278);
+-    let mut x293: u64 = 0;
+-    let mut x294: fiat_p384_scalar_u1 = 0;
+     let (x293, x294) = fiat_p384_scalar_addcarryx_u64(x292, x254, x280);
+-    let mut x295: u64 = 0;
+-    let mut x296: fiat_p384_scalar_u1 = 0;
+     let (x295, x296) = fiat_p384_scalar_addcarryx_u64(x294, x256, x282);
+-    let mut x297: u64 = 0;
+-    let mut x298: fiat_p384_scalar_u1 = 0;
+     let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x258, x284);
+     let x299: u64 = ((x298 as u64) + (x259 as u64));
+-    let mut x300: u64 = 0;
+-    let mut x301: u64 = 0;
+     let (x300, x301) = fiat_p384_scalar_mulx_u64(x4, (arg1[5]));
+-    let mut x302: u64 = 0;
+-    let mut x303: u64 = 0;
+     let (x302, x303) = fiat_p384_scalar_mulx_u64(x4, (arg1[4]));
+-    let mut x304: u64 = 0;
+-    let mut x305: u64 = 0;
+     let (x304, x305) = fiat_p384_scalar_mulx_u64(x4, (arg1[3]));
+-    let mut x306: u64 = 0;
+-    let mut x307: u64 = 0;
+     let (x306, x307) = fiat_p384_scalar_mulx_u64(x4, (arg1[2]));
+-    let mut x308: u64 = 0;
+-    let mut x309: u64 = 0;
+     let (x308, x309) = fiat_p384_scalar_mulx_u64(x4, (arg1[1]));
+-    let mut x310: u64 = 0;
+-    let mut x311: u64 = 0;
+     let (x310, x311) = fiat_p384_scalar_mulx_u64(x4, (arg1[0]));
+-    let mut x312: u64 = 0;
+-    let mut x313: fiat_p384_scalar_u1 = 0;
+     let (x312, x313) = fiat_p384_scalar_addcarryx_u64(0x0, x311, x308);
+-    let mut x314: u64 = 0;
+-    let mut x315: fiat_p384_scalar_u1 = 0;
+     let (x314, x315) = fiat_p384_scalar_addcarryx_u64(x313, x309, x306);
+-    let mut x316: u64 = 0;
+-    let mut x317: fiat_p384_scalar_u1 = 0;
+     let (x316, x317) = fiat_p384_scalar_addcarryx_u64(x315, x307, x304);
+-    let mut x318: u64 = 0;
+-    let mut x319: fiat_p384_scalar_u1 = 0;
+     let (x318, x319) = fiat_p384_scalar_addcarryx_u64(x317, x305, x302);
+-    let mut x320: u64 = 0;
+-    let mut x321: fiat_p384_scalar_u1 = 0;
+     let (x320, x321) = fiat_p384_scalar_addcarryx_u64(x319, x303, x300);
+     let x322: u64 = ((x321 as u64) + x301);
+-    let mut x323: u64 = 0;
+-    let mut x324: fiat_p384_scalar_u1 = 0;
+     let (x323, x324) = fiat_p384_scalar_addcarryx_u64(0x0, x287, x310);
+-    let mut x325: u64 = 0;
+-    let mut x326: fiat_p384_scalar_u1 = 0;
+     let (x325, x326) = fiat_p384_scalar_addcarryx_u64(x324, x289, x312);
+-    let mut x327: u64 = 0;
+-    let mut x328: fiat_p384_scalar_u1 = 0;
+     let (x327, x328) = fiat_p384_scalar_addcarryx_u64(x326, x291, x314);
+-    let mut x329: u64 = 0;
+-    let mut x330: fiat_p384_scalar_u1 = 0;
+     let (x329, x330) = fiat_p384_scalar_addcarryx_u64(x328, x293, x316);
+-    let mut x331: u64 = 0;
+-    let mut x332: fiat_p384_scalar_u1 = 0;
+     let (x331, x332) = fiat_p384_scalar_addcarryx_u64(x330, x295, x318);
+-    let mut x333: u64 = 0;
+-    let mut x334: fiat_p384_scalar_u1 = 0;
+     let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x297, x320);
+-    let mut x335: u64 = 0;
+-    let mut x336: fiat_p384_scalar_u1 = 0;
+     let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x299, x322);
+-    let mut x337: u64 = 0;
+-    let mut x338: u64 = 0;
+     let (x337, x338) = fiat_p384_scalar_mulx_u64(x323, 0x6ed46089e88fdc45);
+-    let mut x339: u64 = 0;
+-    let mut x340: u64 = 0;
+     let (x339, x340) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x341: u64 = 0;
+-    let mut x342: u64 = 0;
+     let (x341, x342) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x343: u64 = 0;
+-    let mut x344: u64 = 0;
+     let (x343, x344) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+-    let mut x345: u64 = 0;
+-    let mut x346: u64 = 0;
+     let (x345, x346) = fiat_p384_scalar_mulx_u64(x337, 0xc7634d81f4372ddf);
+-    let mut x347: u64 = 0;
+-    let mut x348: u64 = 0;
+     let (x347, x348) = fiat_p384_scalar_mulx_u64(x337, 0x581a0db248b0a77a);
+-    let mut x349: u64 = 0;
+-    let mut x350: u64 = 0;
+     let (x349, x350) = fiat_p384_scalar_mulx_u64(x337, 0xecec196accc52973);
+-    let mut x351: u64 = 0;
+-    let mut x352: fiat_p384_scalar_u1 = 0;
+     let (x351, x352) = fiat_p384_scalar_addcarryx_u64(0x0, x350, x347);
+-    let mut x353: u64 = 0;
+-    let mut x354: fiat_p384_scalar_u1 = 0;
+     let (x353, x354) = fiat_p384_scalar_addcarryx_u64(x352, x348, x345);
+-    let mut x355: u64 = 0;
+-    let mut x356: fiat_p384_scalar_u1 = 0;
+     let (x355, x356) = fiat_p384_scalar_addcarryx_u64(x354, x346, x343);
+-    let mut x357: u64 = 0;
+-    let mut x358: fiat_p384_scalar_u1 = 0;
+     let (x357, x358) = fiat_p384_scalar_addcarryx_u64(x356, x344, x341);
+-    let mut x359: u64 = 0;
+-    let mut x360: fiat_p384_scalar_u1 = 0;
+     let (x359, x360) = fiat_p384_scalar_addcarryx_u64(x358, x342, x339);
+     let x361: u64 = ((x360 as u64) + x340);
+-    let mut x362: u64 = 0;
+-    let mut x363: fiat_p384_scalar_u1 = 0;
+     let (x362, x363) = fiat_p384_scalar_addcarryx_u64(0x0, x323, x349);
+-    let mut x364: u64 = 0;
+-    let mut x365: fiat_p384_scalar_u1 = 0;
+     let (x364, x365) = fiat_p384_scalar_addcarryx_u64(x363, x325, x351);
+-    let mut x366: u64 = 0;
+-    let mut x367: fiat_p384_scalar_u1 = 0;
+     let (x366, x367) = fiat_p384_scalar_addcarryx_u64(x365, x327, x353);
+-    let mut x368: u64 = 0;
+-    let mut x369: fiat_p384_scalar_u1 = 0;
+     let (x368, x369) = fiat_p384_scalar_addcarryx_u64(x367, x329, x355);
+-    let mut x370: u64 = 0;
+-    let mut x371: fiat_p384_scalar_u1 = 0;
+     let (x370, x371) = fiat_p384_scalar_addcarryx_u64(x369, x331, x357);
+-    let mut x372: u64 = 0;
+-    let mut x373: fiat_p384_scalar_u1 = 0;
+     let (x372, x373) = fiat_p384_scalar_addcarryx_u64(x371, x333, x359);
+-    let mut x374: u64 = 0;
+-    let mut x375: fiat_p384_scalar_u1 = 0;
+     let (x374, x375) = fiat_p384_scalar_addcarryx_u64(x373, x335, x361);
+     let x376: u64 = ((x375 as u64) + (x336 as u64));
+-    let mut x377: u64 = 0;
+-    let mut x378: u64 = 0;
+     let (x377, x378) = fiat_p384_scalar_mulx_u64(x5, (arg1[5]));
+-    let mut x379: u64 = 0;
+-    let mut x380: u64 = 0;
+     let (x379, x380) = fiat_p384_scalar_mulx_u64(x5, (arg1[4]));
+-    let mut x381: u64 = 0;
+-    let mut x382: u64 = 0;
+     let (x381, x382) = fiat_p384_scalar_mulx_u64(x5, (arg1[3]));
+-    let mut x383: u64 = 0;
+-    let mut x384: u64 = 0;
+     let (x383, x384) = fiat_p384_scalar_mulx_u64(x5, (arg1[2]));
+-    let mut x385: u64 = 0;
+-    let mut x386: u64 = 0;
+     let (x385, x386) = fiat_p384_scalar_mulx_u64(x5, (arg1[1]));
+-    let mut x387: u64 = 0;
+-    let mut x388: u64 = 0;
+     let (x387, x388) = fiat_p384_scalar_mulx_u64(x5, (arg1[0]));
+-    let mut x389: u64 = 0;
+-    let mut x390: fiat_p384_scalar_u1 = 0;
+     let (x389, x390) = fiat_p384_scalar_addcarryx_u64(0x0, x388, x385);
+-    let mut x391: u64 = 0;
+-    let mut x392: fiat_p384_scalar_u1 = 0;
+     let (x391, x392) = fiat_p384_scalar_addcarryx_u64(x390, x386, x383);
+-    let mut x393: u64 = 0;
+-    let mut x394: fiat_p384_scalar_u1 = 0;
+     let (x393, x394) = fiat_p384_scalar_addcarryx_u64(x392, x384, x381);
+-    let mut x395: u64 = 0;
+-    let mut x396: fiat_p384_scalar_u1 = 0;
+     let (x395, x396) = fiat_p384_scalar_addcarryx_u64(x394, x382, x379);
+-    let mut x397: u64 = 0;
+-    let mut x398: fiat_p384_scalar_u1 = 0;
+     let (x397, x398) = fiat_p384_scalar_addcarryx_u64(x396, x380, x377);
+     let x399: u64 = ((x398 as u64) + x378);
+-    let mut x400: u64 = 0;
+-    let mut x401: fiat_p384_scalar_u1 = 0;
+     let (x400, x401) = fiat_p384_scalar_addcarryx_u64(0x0, x364, x387);
+-    let mut x402: u64 = 0;
+-    let mut x403: fiat_p384_scalar_u1 = 0;
+     let (x402, x403) = fiat_p384_scalar_addcarryx_u64(x401, x366, x389);
+-    let mut x404: u64 = 0;
+-    let mut x405: fiat_p384_scalar_u1 = 0;
+     let (x404, x405) = fiat_p384_scalar_addcarryx_u64(x403, x368, x391);
+-    let mut x406: u64 = 0;
+-    let mut x407: fiat_p384_scalar_u1 = 0;
+     let (x406, x407) = fiat_p384_scalar_addcarryx_u64(x405, x370, x393);
+-    let mut x408: u64 = 0;
+-    let mut x409: fiat_p384_scalar_u1 = 0;
+     let (x408, x409) = fiat_p384_scalar_addcarryx_u64(x407, x372, x395);
+-    let mut x410: u64 = 0;
+-    let mut x411: fiat_p384_scalar_u1 = 0;
+     let (x410, x411) = fiat_p384_scalar_addcarryx_u64(x409, x374, x397);
+-    let mut x412: u64 = 0;
+-    let mut x413: fiat_p384_scalar_u1 = 0;
+     let (x412, x413) = fiat_p384_scalar_addcarryx_u64(x411, x376, x399);
+-    let mut x414: u64 = 0;
+-    let mut x415: u64 = 0;
+     let (x414, x415) = fiat_p384_scalar_mulx_u64(x400, 0x6ed46089e88fdc45);
+-    let mut x416: u64 = 0;
+-    let mut x417: u64 = 0;
+     let (x416, x417) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x418: u64 = 0;
+-    let mut x419: u64 = 0;
+     let (x418, x419) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x420: u64 = 0;
+-    let mut x421: u64 = 0;
+     let (x420, x421) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+-    let mut x422: u64 = 0;
+-    let mut x423: u64 = 0;
+     let (x422, x423) = fiat_p384_scalar_mulx_u64(x414, 0xc7634d81f4372ddf);
+-    let mut x424: u64 = 0;
+-    let mut x425: u64 = 0;
+     let (x424, x425) = fiat_p384_scalar_mulx_u64(x414, 0x581a0db248b0a77a);
+-    let mut x426: u64 = 0;
+-    let mut x427: u64 = 0;
+     let (x426, x427) = fiat_p384_scalar_mulx_u64(x414, 0xecec196accc52973);
+-    let mut x428: u64 = 0;
+-    let mut x429: fiat_p384_scalar_u1 = 0;
+     let (x428, x429) = fiat_p384_scalar_addcarryx_u64(0x0, x427, x424);
+-    let mut x430: u64 = 0;
+-    let mut x431: fiat_p384_scalar_u1 = 0;
+     let (x430, x431) = fiat_p384_scalar_addcarryx_u64(x429, x425, x422);
+-    let mut x432: u64 = 0;
+-    let mut x433: fiat_p384_scalar_u1 = 0;
+     let (x432, x433) = fiat_p384_scalar_addcarryx_u64(x431, x423, x420);
+-    let mut x434: u64 = 0;
+-    let mut x435: fiat_p384_scalar_u1 = 0;
+     let (x434, x435) = fiat_p384_scalar_addcarryx_u64(x433, x421, x418);
+-    let mut x436: u64 = 0;
+-    let mut x437: fiat_p384_scalar_u1 = 0;
+     let (x436, x437) = fiat_p384_scalar_addcarryx_u64(x435, x419, x416);
+     let x438: u64 = ((x437 as u64) + x417);
+-    let mut x439: u64 = 0;
+-    let mut x440: fiat_p384_scalar_u1 = 0;
+     let (x439, x440) = fiat_p384_scalar_addcarryx_u64(0x0, x400, x426);
+-    let mut x441: u64 = 0;
+-    let mut x442: fiat_p384_scalar_u1 = 0;
+     let (x441, x442) = fiat_p384_scalar_addcarryx_u64(x440, x402, x428);
+-    let mut x443: u64 = 0;
+-    let mut x444: fiat_p384_scalar_u1 = 0;
+     let (x443, x444) = fiat_p384_scalar_addcarryx_u64(x442, x404, x430);
+-    let mut x445: u64 = 0;
+-    let mut x446: fiat_p384_scalar_u1 = 0;
+     let (x445, x446) = fiat_p384_scalar_addcarryx_u64(x444, x406, x432);
+-    let mut x447: u64 = 0;
+-    let mut x448: fiat_p384_scalar_u1 = 0;
+     let (x447, x448) = fiat_p384_scalar_addcarryx_u64(x446, x408, x434);
+-    let mut x449: u64 = 0;
+-    let mut x450: fiat_p384_scalar_u1 = 0;
+     let (x449, x450) = fiat_p384_scalar_addcarryx_u64(x448, x410, x436);
+-    let mut x451: u64 = 0;
+-    let mut x452: fiat_p384_scalar_u1 = 0;
+     let (x451, x452) = fiat_p384_scalar_addcarryx_u64(x450, x412, x438);
+     let x453: u64 = ((x452 as u64) + (x413 as u64));
+-    let mut x454: u64 = 0;
+-    let mut x455: fiat_p384_scalar_u1 = 0;
+     let (x454, x455) = fiat_p384_scalar_subborrowx_u64(0x0, x441, 0xecec196accc52973);
+-    let mut x456: u64 = 0;
+-    let mut x457: fiat_p384_scalar_u1 = 0;
+     let (x456, x457) = fiat_p384_scalar_subborrowx_u64(x455, x443, 0x581a0db248b0a77a);
+-    let mut x458: u64 = 0;
+-    let mut x459: fiat_p384_scalar_u1 = 0;
+     let (x458, x459) = fiat_p384_scalar_subborrowx_u64(x457, x445, 0xc7634d81f4372ddf);
+-    let mut x460: u64 = 0;
+-    let mut x461: fiat_p384_scalar_u1 = 0;
+     let (x460, x461) = fiat_p384_scalar_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+-    let mut x462: u64 = 0;
+-    let mut x463: fiat_p384_scalar_u1 = 0;
+     let (x462, x463) = fiat_p384_scalar_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+-    let mut x464: u64 = 0;
+-    let mut x465: fiat_p384_scalar_u1 = 0;
+     let (x464, x465) = fiat_p384_scalar_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+-    let mut x466: u64 = 0;
+-    let mut x467: fiat_p384_scalar_u1 = 0;
+     let (x466, x467) = fiat_p384_scalar_subborrowx_u64(x465, x453, 0x0_u64);
+-    let mut x468: u64 = 0;
+     let (x468) = fiat_p384_scalar_cmovznz_u64(x467, x454, x441);
+-    let mut x469: u64 = 0;
+     let (x469) = fiat_p384_scalar_cmovznz_u64(x467, x456, x443);
+-    let mut x470: u64 = 0;
+     let (x470) = fiat_p384_scalar_cmovznz_u64(x467, x458, x445);
+-    let mut x471: u64 = 0;
+     let (x471) = fiat_p384_scalar_cmovznz_u64(x467, x460, x447);
+-    let mut x472: u64 = 0;
+     let (x472) = fiat_p384_scalar_cmovznz_u64(x467, x462, x449);
+-    let mut x473: u64 = 0;
+     let (x473) = fiat_p384_scalar_cmovznz_u64(x467, x464, x451);
+     out1[0] = x468;
+     out1[1] = x469;
+@@ -1608,56 +708,24 @@ pub const fn fiat_p384_scalar_add(
+     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+ ) -> fiat_p384_scalar_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u64 = 0;
+-    let mut x4: fiat_p384_scalar_u1 = 0;
+     let (x3, x4) = fiat_p384_scalar_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u64 = 0;
+-    let mut x6: fiat_p384_scalar_u1 = 0;
+     let (x5, x6) = fiat_p384_scalar_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u64 = 0;
+-    let mut x8: fiat_p384_scalar_u1 = 0;
+     let (x7, x8) = fiat_p384_scalar_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u64 = 0;
+-    let mut x10: fiat_p384_scalar_u1 = 0;
+     let (x9, x10) = fiat_p384_scalar_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: fiat_p384_scalar_u1 = 0;
+     let (x11, x12) = fiat_p384_scalar_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u64 = 0;
+-    let mut x14: fiat_p384_scalar_u1 = 0;
+     let (x13, x14) = fiat_p384_scalar_subborrowx_u64(0x0, x1, 0xecec196accc52973);
+-    let mut x15: u64 = 0;
+-    let mut x16: fiat_p384_scalar_u1 = 0;
+     let (x15, x16) = fiat_p384_scalar_subborrowx_u64(x14, x3, 0x581a0db248b0a77a);
+-    let mut x17: u64 = 0;
+-    let mut x18: fiat_p384_scalar_u1 = 0;
+     let (x17, x18) = fiat_p384_scalar_subborrowx_u64(x16, x5, 0xc7634d81f4372ddf);
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_subborrowx_u64(x18, x7, 0xffffffffffffffff);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_subborrowx_u64(x20, x9, 0xffffffffffffffff);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_subborrowx_u64(x22, x11, 0xffffffffffffffff);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_scalar_u1 = 0;
+     let (x25, x26) = fiat_p384_scalar_subborrowx_u64(x24, (x12 as u64), 0x0_u64);
+-    let mut x27: u64 = 0;
+     let (x27) = fiat_p384_scalar_cmovznz_u64(x26, x13, x1);
+-    let mut x28: u64 = 0;
+     let (x28) = fiat_p384_scalar_cmovznz_u64(x26, x15, x3);
+-    let mut x29: u64 = 0;
+     let (x29) = fiat_p384_scalar_cmovznz_u64(x26, x17, x5);
+-    let mut x30: u64 = 0;
+     let (x30) = fiat_p384_scalar_cmovznz_u64(x26, x19, x7);
+-    let mut x31: u64 = 0;
+     let (x31) = fiat_p384_scalar_cmovznz_u64(x26, x21, x9);
+-    let mut x32: u64 = 0;
+     let (x32) = fiat_p384_scalar_cmovznz_u64(x26, x23, x11);
+     out1[0] = x27;
+     out1[1] = x28;
+@@ -1682,43 +750,18 @@ pub const fn fiat_p384_scalar_sub(
+     arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+ ) -> fiat_p384_scalar_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
+-    let mut x3: u64 = 0;
+-    let mut x4: fiat_p384_scalar_u1 = 0;
+     let (x3, x4) = fiat_p384_scalar_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
+-    let mut x5: u64 = 0;
+-    let mut x6: fiat_p384_scalar_u1 = 0;
+     let (x5, x6) = fiat_p384_scalar_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
+-    let mut x7: u64 = 0;
+-    let mut x8: fiat_p384_scalar_u1 = 0;
+     let (x7, x8) = fiat_p384_scalar_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
+-    let mut x9: u64 = 0;
+-    let mut x10: fiat_p384_scalar_u1 = 0;
+     let (x9, x10) = fiat_p384_scalar_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: fiat_p384_scalar_u1 = 0;
+     let (x11, x12) = fiat_p384_scalar_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
+-    let mut x13: u64 = 0;
+     let (x13) = fiat_p384_scalar_cmovznz_u64(x12, 0x0_u64, 0xffffffffffffffff);
+-    let mut x14: u64 = 0;
+-    let mut x15: fiat_p384_scalar_u1 = 0;
+     let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, x1, (x13 & 0xecec196accc52973));
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_scalar_u1 = 0;
+     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, x3, (x13 & 0x581a0db248b0a77a));
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_scalar_u1 = 0;
+     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x5, (x13 & 0xc7634d81f4372ddf));
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_scalar_u1 = 0;
+     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x7, x13);
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_scalar_u1 = 0;
+     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x13);
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_scalar_u1 = 0;
+     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x11, x13);
+     out1[0] = x14;
+     out1[1] = x16;
+@@ -1741,43 +784,18 @@ pub const fn fiat_p384_scalar_opp(
+     arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ ) -> fiat_p384_scalar_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_subborrowx_u64(0x0, 0x0_u64, (arg1[0]));
+-    let mut x3: u64 = 0;
+-    let mut x4: fiat_p384_scalar_u1 = 0;
+     let (x3, x4) = fiat_p384_scalar_subborrowx_u64(x2, 0x0_u64, (arg1[1]));
+-    let mut x5: u64 = 0;
+-    let mut x6: fiat_p384_scalar_u1 = 0;
+     let (x5, x6) = fiat_p384_scalar_subborrowx_u64(x4, 0x0_u64, (arg1[2]));
+-    let mut x7: u64 = 0;
+-    let mut x8: fiat_p384_scalar_u1 = 0;
+     let (x7, x8) = fiat_p384_scalar_subborrowx_u64(x6, 0x0_u64, (arg1[3]));
+-    let mut x9: u64 = 0;
+-    let mut x10: fiat_p384_scalar_u1 = 0;
+     let (x9, x10) = fiat_p384_scalar_subborrowx_u64(x8, 0x0_u64, (arg1[4]));
+-    let mut x11: u64 = 0;
+-    let mut x12: fiat_p384_scalar_u1 = 0;
+     let (x11, x12) = fiat_p384_scalar_subborrowx_u64(x10, 0x0_u64, (arg1[5]));
+-    let mut x13: u64 = 0;
+     let (x13) = fiat_p384_scalar_cmovznz_u64(x12, 0x0_u64, 0xffffffffffffffff);
+-    let mut x14: u64 = 0;
+-    let mut x15: fiat_p384_scalar_u1 = 0;
+     let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, x1, (x13 & 0xecec196accc52973));
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_scalar_u1 = 0;
+     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, x3, (x13 & 0x581a0db248b0a77a));
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_scalar_u1 = 0;
+     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x5, (x13 & 0xc7634d81f4372ddf));
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_scalar_u1 = 0;
+     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x7, x13);
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_scalar_u1 = 0;
+     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x13);
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_scalar_u1 = 0;
+     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x11, x13);
+     out1[0] = x14;
+     out1[1] = x16;
+@@ -1801,487 +819,179 @@ pub const fn fiat_p384_scalar_from_montgomery(
+ ) -> fiat_p384_scalar_non_montgomery_domain_field_element {
+     let mut out1: fiat_p384_scalar_non_montgomery_domain_field_element = [0; 6];
+     let x1: u64 = (arg1[0]);
+-    let mut x2: u64 = 0;
+-    let mut x3: u64 = 0;
+     let (x2, x3) = fiat_p384_scalar_mulx_u64(x1, 0x6ed46089e88fdc45);
+-    let mut x4: u64 = 0;
+-    let mut x5: u64 = 0;
+     let (x4, x5) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
+-    let mut x6: u64 = 0;
+-    let mut x7: u64 = 0;
+     let (x6, x7) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
+-    let mut x8: u64 = 0;
+-    let mut x9: u64 = 0;
+     let (x8, x9) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
+-    let mut x10: u64 = 0;
+-    let mut x11: u64 = 0;
+     let (x10, x11) = fiat_p384_scalar_mulx_u64(x2, 0xc7634d81f4372ddf);
+-    let mut x12: u64 = 0;
+-    let mut x13: u64 = 0;
+     let (x12, x13) = fiat_p384_scalar_mulx_u64(x2, 0x581a0db248b0a77a);
+-    let mut x14: u64 = 0;
+-    let mut x15: u64 = 0;
+     let (x14, x15) = fiat_p384_scalar_mulx_u64(x2, 0xecec196accc52973);
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_scalar_u1 = 0;
+     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(0x0, x15, x12);
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_scalar_u1 = 0;
+     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x13, x10);
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_scalar_u1 = 0;
+     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x11, x8);
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_scalar_u1 = 0;
+     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x6);
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_scalar_u1 = 0;
+     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x7, x4);
+-    let mut x26: u64 = 0;
+-    let mut x27: fiat_p384_scalar_u1 = 0;
+     let (x26, x27) = fiat_p384_scalar_addcarryx_u64(0x0, x1, x14);
+-    let mut x28: u64 = 0;
+-    let mut x29: fiat_p384_scalar_u1 = 0;
+     let (x28, x29) = fiat_p384_scalar_addcarryx_u64(x27, 0x0_u64, x16);
+-    let mut x30: u64 = 0;
+-    let mut x31: fiat_p384_scalar_u1 = 0;
+     let (x30, x31) = fiat_p384_scalar_addcarryx_u64(x29, 0x0_u64, x18);
+-    let mut x32: u64 = 0;
+-    let mut x33: fiat_p384_scalar_u1 = 0;
+     let (x32, x33) = fiat_p384_scalar_addcarryx_u64(x31, 0x0_u64, x20);
+-    let mut x34: u64 = 0;
+-    let mut x35: fiat_p384_scalar_u1 = 0;
+     let (x34, x35) = fiat_p384_scalar_addcarryx_u64(x33, 0x0_u64, x22);
+-    let mut x36: u64 = 0;
+-    let mut x37: fiat_p384_scalar_u1 = 0;
+     let (x36, x37) = fiat_p384_scalar_addcarryx_u64(x35, 0x0_u64, x24);
+-    let mut x38: u64 = 0;
+-    let mut x39: fiat_p384_scalar_u1 = 0;
+     let (x38, x39) = fiat_p384_scalar_addcarryx_u64(x37, 0x0_u64, ((x25 as u64) + x5));
+-    let mut x40: u64 = 0;
+-    let mut x41: fiat_p384_scalar_u1 = 0;
+     let (x40, x41) = fiat_p384_scalar_addcarryx_u64(0x0, x28, (arg1[1]));
+-    let mut x42: u64 = 0;
+-    let mut x43: fiat_p384_scalar_u1 = 0;
+     let (x42, x43) = fiat_p384_scalar_addcarryx_u64(x41, x30, 0x0_u64);
+-    let mut x44: u64 = 0;
+-    let mut x45: fiat_p384_scalar_u1 = 0;
+     let (x44, x45) = fiat_p384_scalar_addcarryx_u64(x43, x32, 0x0_u64);
+-    let mut x46: u64 = 0;
+-    let mut x47: fiat_p384_scalar_u1 = 0;
+     let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x34, 0x0_u64);
+-    let mut x48: u64 = 0;
+-    let mut x49: fiat_p384_scalar_u1 = 0;
+     let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x36, 0x0_u64);
+-    let mut x50: u64 = 0;
+-    let mut x51: fiat_p384_scalar_u1 = 0;
+     let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x38, 0x0_u64);
+-    let mut x52: u64 = 0;
+-    let mut x53: u64 = 0;
+     let (x52, x53) = fiat_p384_scalar_mulx_u64(x40, 0x6ed46089e88fdc45);
+-    let mut x54: u64 = 0;
+-    let mut x55: u64 = 0;
+     let (x54, x55) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
+-    let mut x56: u64 = 0;
+-    let mut x57: u64 = 0;
+     let (x56, x57) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
+-    let mut x58: u64 = 0;
+-    let mut x59: u64 = 0;
+     let (x58, x59) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
+-    let mut x60: u64 = 0;
+-    let mut x61: u64 = 0;
+     let (x60, x61) = fiat_p384_scalar_mulx_u64(x52, 0xc7634d81f4372ddf);
+-    let mut x62: u64 = 0;
+-    let mut x63: u64 = 0;
+     let (x62, x63) = fiat_p384_scalar_mulx_u64(x52, 0x581a0db248b0a77a);
+-    let mut x64: u64 = 0;
+-    let mut x65: u64 = 0;
+     let (x64, x65) = fiat_p384_scalar_mulx_u64(x52, 0xecec196accc52973);
+-    let mut x66: u64 = 0;
+-    let mut x67: fiat_p384_scalar_u1 = 0;
+     let (x66, x67) = fiat_p384_scalar_addcarryx_u64(0x0, x65, x62);
+-    let mut x68: u64 = 0;
+-    let mut x69: fiat_p384_scalar_u1 = 0;
+     let (x68, x69) = fiat_p384_scalar_addcarryx_u64(x67, x63, x60);
+-    let mut x70: u64 = 0;
+-    let mut x71: fiat_p384_scalar_u1 = 0;
+     let (x70, x71) = fiat_p384_scalar_addcarryx_u64(x69, x61, x58);
+-    let mut x72: u64 = 0;
+-    let mut x73: fiat_p384_scalar_u1 = 0;
+     let (x72, x73) = fiat_p384_scalar_addcarryx_u64(x71, x59, x56);
+-    let mut x74: u64 = 0;
+-    let mut x75: fiat_p384_scalar_u1 = 0;
+     let (x74, x75) = fiat_p384_scalar_addcarryx_u64(x73, x57, x54);
+-    let mut x76: u64 = 0;
+-    let mut x77: fiat_p384_scalar_u1 = 0;
+     let (x76, x77) = fiat_p384_scalar_addcarryx_u64(0x0, x40, x64);
+-    let mut x78: u64 = 0;
+-    let mut x79: fiat_p384_scalar_u1 = 0;
+     let (x78, x79) = fiat_p384_scalar_addcarryx_u64(x77, x42, x66);
+-    let mut x80: u64 = 0;
+-    let mut x81: fiat_p384_scalar_u1 = 0;
+     let (x80, x81) = fiat_p384_scalar_addcarryx_u64(x79, x44, x68);
+-    let mut x82: u64 = 0;
+-    let mut x83: fiat_p384_scalar_u1 = 0;
+     let (x82, x83) = fiat_p384_scalar_addcarryx_u64(x81, x46, x70);
+-    let mut x84: u64 = 0;
+-    let mut x85: fiat_p384_scalar_u1 = 0;
+     let (x84, x85) = fiat_p384_scalar_addcarryx_u64(x83, x48, x72);
+-    let mut x86: u64 = 0;
+-    let mut x87: fiat_p384_scalar_u1 = 0;
+     let (x86, x87) = fiat_p384_scalar_addcarryx_u64(x85, x50, x74);
+-    let mut x88: u64 = 0;
+-    let mut x89: fiat_p384_scalar_u1 = 0;
+     let (x88, x89) =
+         fiat_p384_scalar_addcarryx_u64(x87, ((x51 as u64) + (x39 as u64)), ((x75 as u64) + x55));
+-    let mut x90: u64 = 0;
+-    let mut x91: fiat_p384_scalar_u1 = 0;
+     let (x90, x91) = fiat_p384_scalar_addcarryx_u64(0x0, x78, (arg1[2]));
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(x91, x80, 0x0_u64);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x82, 0x0_u64);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x84, 0x0_u64);
+-    let mut x98: u64 = 0;
+-    let mut x99: fiat_p384_scalar_u1 = 0;
+     let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x86, 0x0_u64);
+-    let mut x100: u64 = 0;
+-    let mut x101: fiat_p384_scalar_u1 = 0;
+     let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x88, 0x0_u64);
+-    let mut x102: u64 = 0;
+-    let mut x103: u64 = 0;
+     let (x102, x103) = fiat_p384_scalar_mulx_u64(x90, 0x6ed46089e88fdc45);
+-    let mut x104: u64 = 0;
+-    let mut x105: u64 = 0;
+     let (x104, x105) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
+-    let mut x106: u64 = 0;
+-    let mut x107: u64 = 0;
+     let (x106, x107) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
+-    let mut x108: u64 = 0;
+-    let mut x109: u64 = 0;
+     let (x108, x109) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
+-    let mut x110: u64 = 0;
+-    let mut x111: u64 = 0;
+     let (x110, x111) = fiat_p384_scalar_mulx_u64(x102, 0xc7634d81f4372ddf);
+-    let mut x112: u64 = 0;
+-    let mut x113: u64 = 0;
+     let (x112, x113) = fiat_p384_scalar_mulx_u64(x102, 0x581a0db248b0a77a);
+-    let mut x114: u64 = 0;
+-    let mut x115: u64 = 0;
+     let (x114, x115) = fiat_p384_scalar_mulx_u64(x102, 0xecec196accc52973);
+-    let mut x116: u64 = 0;
+-    let mut x117: fiat_p384_scalar_u1 = 0;
+     let (x116, x117) = fiat_p384_scalar_addcarryx_u64(0x0, x115, x112);
+-    let mut x118: u64 = 0;
+-    let mut x119: fiat_p384_scalar_u1 = 0;
+     let (x118, x119) = fiat_p384_scalar_addcarryx_u64(x117, x113, x110);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_scalar_u1 = 0;
+     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(x119, x111, x108);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_scalar_u1 = 0;
+     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x109, x106);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_scalar_u1 = 0;
+     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x107, x104);
+-    let mut x126: u64 = 0;
+-    let mut x127: fiat_p384_scalar_u1 = 0;
+     let (x126, x127) = fiat_p384_scalar_addcarryx_u64(0x0, x90, x114);
+-    let mut x128: u64 = 0;
+-    let mut x129: fiat_p384_scalar_u1 = 0;
+     let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x92, x116);
+-    let mut x130: u64 = 0;
+-    let mut x131: fiat_p384_scalar_u1 = 0;
+     let (x130, x131) = fiat_p384_scalar_addcarryx_u64(x129, x94, x118);
+-    let mut x132: u64 = 0;
+-    let mut x133: fiat_p384_scalar_u1 = 0;
+     let (x132, x133) = fiat_p384_scalar_addcarryx_u64(x131, x96, x120);
+-    let mut x134: u64 = 0;
+-    let mut x135: fiat_p384_scalar_u1 = 0;
+     let (x134, x135) = fiat_p384_scalar_addcarryx_u64(x133, x98, x122);
+-    let mut x136: u64 = 0;
+-    let mut x137: fiat_p384_scalar_u1 = 0;
+     let (x136, x137) = fiat_p384_scalar_addcarryx_u64(x135, x100, x124);
+-    let mut x138: u64 = 0;
+-    let mut x139: fiat_p384_scalar_u1 = 0;
+     let (x138, x139) = fiat_p384_scalar_addcarryx_u64(
+         x137,
+         ((x101 as u64) + (x89 as u64)),
+         ((x125 as u64) + x105),
+     );
+-    let mut x140: u64 = 0;
+-    let mut x141: fiat_p384_scalar_u1 = 0;
+     let (x140, x141) = fiat_p384_scalar_addcarryx_u64(0x0, x128, (arg1[3]));
+-    let mut x142: u64 = 0;
+-    let mut x143: fiat_p384_scalar_u1 = 0;
+     let (x142, x143) = fiat_p384_scalar_addcarryx_u64(x141, x130, 0x0_u64);
+-    let mut x144: u64 = 0;
+-    let mut x145: fiat_p384_scalar_u1 = 0;
+     let (x144, x145) = fiat_p384_scalar_addcarryx_u64(x143, x132, 0x0_u64);
+-    let mut x146: u64 = 0;
+-    let mut x147: fiat_p384_scalar_u1 = 0;
+     let (x146, x147) = fiat_p384_scalar_addcarryx_u64(x145, x134, 0x0_u64);
+-    let mut x148: u64 = 0;
+-    let mut x149: fiat_p384_scalar_u1 = 0;
+     let (x148, x149) = fiat_p384_scalar_addcarryx_u64(x147, x136, 0x0_u64);
+-    let mut x150: u64 = 0;
+-    let mut x151: fiat_p384_scalar_u1 = 0;
+     let (x150, x151) = fiat_p384_scalar_addcarryx_u64(x149, x138, 0x0_u64);
+-    let mut x152: u64 = 0;
+-    let mut x153: u64 = 0;
+     let (x152, x153) = fiat_p384_scalar_mulx_u64(x140, 0x6ed46089e88fdc45);
+-    let mut x154: u64 = 0;
+-    let mut x155: u64 = 0;
+     let (x154, x155) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
+-    let mut x156: u64 = 0;
+-    let mut x157: u64 = 0;
+     let (x156, x157) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
+-    let mut x158: u64 = 0;
+-    let mut x159: u64 = 0;
+     let (x158, x159) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
+-    let mut x160: u64 = 0;
+-    let mut x161: u64 = 0;
+     let (x160, x161) = fiat_p384_scalar_mulx_u64(x152, 0xc7634d81f4372ddf);
+-    let mut x162: u64 = 0;
+-    let mut x163: u64 = 0;
+     let (x162, x163) = fiat_p384_scalar_mulx_u64(x152, 0x581a0db248b0a77a);
+-    let mut x164: u64 = 0;
+-    let mut x165: u64 = 0;
+     let (x164, x165) = fiat_p384_scalar_mulx_u64(x152, 0xecec196accc52973);
+-    let mut x166: u64 = 0;
+-    let mut x167: fiat_p384_scalar_u1 = 0;
+     let (x166, x167) = fiat_p384_scalar_addcarryx_u64(0x0, x165, x162);
+-    let mut x168: u64 = 0;
+-    let mut x169: fiat_p384_scalar_u1 = 0;
+     let (x168, x169) = fiat_p384_scalar_addcarryx_u64(x167, x163, x160);
+-    let mut x170: u64 = 0;
+-    let mut x171: fiat_p384_scalar_u1 = 0;
+     let (x170, x171) = fiat_p384_scalar_addcarryx_u64(x169, x161, x158);
+-    let mut x172: u64 = 0;
+-    let mut x173: fiat_p384_scalar_u1 = 0;
+     let (x172, x173) = fiat_p384_scalar_addcarryx_u64(x171, x159, x156);
+-    let mut x174: u64 = 0;
+-    let mut x175: fiat_p384_scalar_u1 = 0;
+     let (x174, x175) = fiat_p384_scalar_addcarryx_u64(x173, x157, x154);
+-    let mut x176: u64 = 0;
+-    let mut x177: fiat_p384_scalar_u1 = 0;
+     let (x176, x177) = fiat_p384_scalar_addcarryx_u64(0x0, x140, x164);
+-    let mut x178: u64 = 0;
+-    let mut x179: fiat_p384_scalar_u1 = 0;
+     let (x178, x179) = fiat_p384_scalar_addcarryx_u64(x177, x142, x166);
+-    let mut x180: u64 = 0;
+-    let mut x181: fiat_p384_scalar_u1 = 0;
+     let (x180, x181) = fiat_p384_scalar_addcarryx_u64(x179, x144, x168);
+-    let mut x182: u64 = 0;
+-    let mut x183: fiat_p384_scalar_u1 = 0;
+     let (x182, x183) = fiat_p384_scalar_addcarryx_u64(x181, x146, x170);
+-    let mut x184: u64 = 0;
+-    let mut x185: fiat_p384_scalar_u1 = 0;
+     let (x184, x185) = fiat_p384_scalar_addcarryx_u64(x183, x148, x172);
+-    let mut x186: u64 = 0;
+-    let mut x187: fiat_p384_scalar_u1 = 0;
+     let (x186, x187) = fiat_p384_scalar_addcarryx_u64(x185, x150, x174);
+-    let mut x188: u64 = 0;
+-    let mut x189: fiat_p384_scalar_u1 = 0;
+     let (x188, x189) = fiat_p384_scalar_addcarryx_u64(
+         x187,
+         ((x151 as u64) + (x139 as u64)),
+         ((x175 as u64) + x155),
+     );
+-    let mut x190: u64 = 0;
+-    let mut x191: fiat_p384_scalar_u1 = 0;
+     let (x190, x191) = fiat_p384_scalar_addcarryx_u64(0x0, x178, (arg1[4]));
+-    let mut x192: u64 = 0;
+-    let mut x193: fiat_p384_scalar_u1 = 0;
+     let (x192, x193) = fiat_p384_scalar_addcarryx_u64(x191, x180, 0x0_u64);
+-    let mut x194: u64 = 0;
+-    let mut x195: fiat_p384_scalar_u1 = 0;
+     let (x194, x195) = fiat_p384_scalar_addcarryx_u64(x193, x182, 0x0_u64);
+-    let mut x196: u64 = 0;
+-    let mut x197: fiat_p384_scalar_u1 = 0;
+     let (x196, x197) = fiat_p384_scalar_addcarryx_u64(x195, x184, 0x0_u64);
+-    let mut x198: u64 = 0;
+-    let mut x199: fiat_p384_scalar_u1 = 0;
+     let (x198, x199) = fiat_p384_scalar_addcarryx_u64(x197, x186, 0x0_u64);
+-    let mut x200: u64 = 0;
+-    let mut x201: fiat_p384_scalar_u1 = 0;
+     let (x200, x201) = fiat_p384_scalar_addcarryx_u64(x199, x188, 0x0_u64);
+-    let mut x202: u64 = 0;
+-    let mut x203: u64 = 0;
+     let (x202, x203) = fiat_p384_scalar_mulx_u64(x190, 0x6ed46089e88fdc45);
+-    let mut x204: u64 = 0;
+-    let mut x205: u64 = 0;
+     let (x204, x205) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
+-    let mut x206: u64 = 0;
+-    let mut x207: u64 = 0;
+     let (x206, x207) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
+-    let mut x208: u64 = 0;
+-    let mut x209: u64 = 0;
+     let (x208, x209) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
+-    let mut x210: u64 = 0;
+-    let mut x211: u64 = 0;
+     let (x210, x211) = fiat_p384_scalar_mulx_u64(x202, 0xc7634d81f4372ddf);
+-    let mut x212: u64 = 0;
+-    let mut x213: u64 = 0;
+     let (x212, x213) = fiat_p384_scalar_mulx_u64(x202, 0x581a0db248b0a77a);
+-    let mut x214: u64 = 0;
+-    let mut x215: u64 = 0;
+     let (x214, x215) = fiat_p384_scalar_mulx_u64(x202, 0xecec196accc52973);
+-    let mut x216: u64 = 0;
+-    let mut x217: fiat_p384_scalar_u1 = 0;
+     let (x216, x217) = fiat_p384_scalar_addcarryx_u64(0x0, x215, x212);
+-    let mut x218: u64 = 0;
+-    let mut x219: fiat_p384_scalar_u1 = 0;
+     let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x213, x210);
+-    let mut x220: u64 = 0;
+-    let mut x221: fiat_p384_scalar_u1 = 0;
+     let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x211, x208);
+-    let mut x222: u64 = 0;
+-    let mut x223: fiat_p384_scalar_u1 = 0;
+     let (x222, x223) = fiat_p384_scalar_addcarryx_u64(x221, x209, x206);
+-    let mut x224: u64 = 0;
+-    let mut x225: fiat_p384_scalar_u1 = 0;
+     let (x224, x225) = fiat_p384_scalar_addcarryx_u64(x223, x207, x204);
+-    let mut x226: u64 = 0;
+-    let mut x227: fiat_p384_scalar_u1 = 0;
+     let (x226, x227) = fiat_p384_scalar_addcarryx_u64(0x0, x190, x214);
+-    let mut x228: u64 = 0;
+-    let mut x229: fiat_p384_scalar_u1 = 0;
+     let (x228, x229) = fiat_p384_scalar_addcarryx_u64(x227, x192, x216);
+-    let mut x230: u64 = 0;
+-    let mut x231: fiat_p384_scalar_u1 = 0;
+     let (x230, x231) = fiat_p384_scalar_addcarryx_u64(x229, x194, x218);
+-    let mut x232: u64 = 0;
+-    let mut x233: fiat_p384_scalar_u1 = 0;
+     let (x232, x233) = fiat_p384_scalar_addcarryx_u64(x231, x196, x220);
+-    let mut x234: u64 = 0;
+-    let mut x235: fiat_p384_scalar_u1 = 0;
+     let (x234, x235) = fiat_p384_scalar_addcarryx_u64(x233, x198, x222);
+-    let mut x236: u64 = 0;
+-    let mut x237: fiat_p384_scalar_u1 = 0;
+     let (x236, x237) = fiat_p384_scalar_addcarryx_u64(x235, x200, x224);
+-    let mut x238: u64 = 0;
+-    let mut x239: fiat_p384_scalar_u1 = 0;
+     let (x238, x239) = fiat_p384_scalar_addcarryx_u64(
+         x237,
+         ((x201 as u64) + (x189 as u64)),
+         ((x225 as u64) + x205),
+     );
+-    let mut x240: u64 = 0;
+-    let mut x241: fiat_p384_scalar_u1 = 0;
+     let (x240, x241) = fiat_p384_scalar_addcarryx_u64(0x0, x228, (arg1[5]));
+-    let mut x242: u64 = 0;
+-    let mut x243: fiat_p384_scalar_u1 = 0;
+     let (x242, x243) = fiat_p384_scalar_addcarryx_u64(x241, x230, 0x0_u64);
+-    let mut x244: u64 = 0;
+-    let mut x245: fiat_p384_scalar_u1 = 0;
+     let (x244, x245) = fiat_p384_scalar_addcarryx_u64(x243, x232, 0x0_u64);
+-    let mut x246: u64 = 0;
+-    let mut x247: fiat_p384_scalar_u1 = 0;
+     let (x246, x247) = fiat_p384_scalar_addcarryx_u64(x245, x234, 0x0_u64);
+-    let mut x248: u64 = 0;
+-    let mut x249: fiat_p384_scalar_u1 = 0;
+     let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x236, 0x0_u64);
+-    let mut x250: u64 = 0;
+-    let mut x251: fiat_p384_scalar_u1 = 0;
+     let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x238, 0x0_u64);
+-    let mut x252: u64 = 0;
+-    let mut x253: u64 = 0;
+     let (x252, x253) = fiat_p384_scalar_mulx_u64(x240, 0x6ed46089e88fdc45);
+-    let mut x254: u64 = 0;
+-    let mut x255: u64 = 0;
+     let (x254, x255) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
+-    let mut x256: u64 = 0;
+-    let mut x257: u64 = 0;
+     let (x256, x257) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
+-    let mut x258: u64 = 0;
+-    let mut x259: u64 = 0;
+     let (x258, x259) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
+-    let mut x260: u64 = 0;
+-    let mut x261: u64 = 0;
+     let (x260, x261) = fiat_p384_scalar_mulx_u64(x252, 0xc7634d81f4372ddf);
+-    let mut x262: u64 = 0;
+-    let mut x263: u64 = 0;
+     let (x262, x263) = fiat_p384_scalar_mulx_u64(x252, 0x581a0db248b0a77a);
+-    let mut x264: u64 = 0;
+-    let mut x265: u64 = 0;
+     let (x264, x265) = fiat_p384_scalar_mulx_u64(x252, 0xecec196accc52973);
+-    let mut x266: u64 = 0;
+-    let mut x267: fiat_p384_scalar_u1 = 0;
+     let (x266, x267) = fiat_p384_scalar_addcarryx_u64(0x0, x265, x262);
+-    let mut x268: u64 = 0;
+-    let mut x269: fiat_p384_scalar_u1 = 0;
+     let (x268, x269) = fiat_p384_scalar_addcarryx_u64(x267, x263, x260);
+-    let mut x270: u64 = 0;
+-    let mut x271: fiat_p384_scalar_u1 = 0;
+     let (x270, x271) = fiat_p384_scalar_addcarryx_u64(x269, x261, x258);
+-    let mut x272: u64 = 0;
+-    let mut x273: fiat_p384_scalar_u1 = 0;
+     let (x272, x273) = fiat_p384_scalar_addcarryx_u64(x271, x259, x256);
+-    let mut x274: u64 = 0;
+-    let mut x275: fiat_p384_scalar_u1 = 0;
+     let (x274, x275) = fiat_p384_scalar_addcarryx_u64(x273, x257, x254);
+-    let mut x276: u64 = 0;
+-    let mut x277: fiat_p384_scalar_u1 = 0;
+     let (x276, x277) = fiat_p384_scalar_addcarryx_u64(0x0, x240, x264);
+-    let mut x278: u64 = 0;
+-    let mut x279: fiat_p384_scalar_u1 = 0;
+     let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x242, x266);
+-    let mut x280: u64 = 0;
+-    let mut x281: fiat_p384_scalar_u1 = 0;
+     let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x244, x268);
+-    let mut x282: u64 = 0;
+-    let mut x283: fiat_p384_scalar_u1 = 0;
+     let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x246, x270);
+-    let mut x284: u64 = 0;
+-    let mut x285: fiat_p384_scalar_u1 = 0;
+     let (x284, x285) = fiat_p384_scalar_addcarryx_u64(x283, x248, x272);
+-    let mut x286: u64 = 0;
+-    let mut x287: fiat_p384_scalar_u1 = 0;
+     let (x286, x287) = fiat_p384_scalar_addcarryx_u64(x285, x250, x274);
+-    let mut x288: u64 = 0;
+-    let mut x289: fiat_p384_scalar_u1 = 0;
+     let (x288, x289) = fiat_p384_scalar_addcarryx_u64(
+         x287,
+         ((x251 as u64) + (x239 as u64)),
+         ((x275 as u64) + x255),
+     );
+-    let mut x290: u64 = 0;
+-    let mut x291: fiat_p384_scalar_u1 = 0;
+     let (x290, x291) = fiat_p384_scalar_subborrowx_u64(0x0, x278, 0xecec196accc52973);
+-    let mut x292: u64 = 0;
+-    let mut x293: fiat_p384_scalar_u1 = 0;
+     let (x292, x293) = fiat_p384_scalar_subborrowx_u64(x291, x280, 0x581a0db248b0a77a);
+-    let mut x294: u64 = 0;
+-    let mut x295: fiat_p384_scalar_u1 = 0;
+     let (x294, x295) = fiat_p384_scalar_subborrowx_u64(x293, x282, 0xc7634d81f4372ddf);
+-    let mut x296: u64 = 0;
+-    let mut x297: fiat_p384_scalar_u1 = 0;
+     let (x296, x297) = fiat_p384_scalar_subborrowx_u64(x295, x284, 0xffffffffffffffff);
+-    let mut x298: u64 = 0;
+-    let mut x299: fiat_p384_scalar_u1 = 0;
+     let (x298, x299) = fiat_p384_scalar_subborrowx_u64(x297, x286, 0xffffffffffffffff);
+-    let mut x300: u64 = 0;
+-    let mut x301: fiat_p384_scalar_u1 = 0;
+     let (x300, x301) = fiat_p384_scalar_subborrowx_u64(x299, x288, 0xffffffffffffffff);
+-    let mut x302: u64 = 0;
+-    let mut x303: fiat_p384_scalar_u1 = 0;
+     let (x302, x303) = fiat_p384_scalar_subborrowx_u64(x301, (x289 as u64), 0x0_u64);
+-    let mut x304: u64 = 0;
+     let (x304) = fiat_p384_scalar_cmovznz_u64(x303, x290, x278);
+-    let mut x305: u64 = 0;
+     let (x305) = fiat_p384_scalar_cmovznz_u64(x303, x292, x280);
+-    let mut x306: u64 = 0;
+     let (x306) = fiat_p384_scalar_cmovznz_u64(x303, x294, x282);
+-    let mut x307: u64 = 0;
+     let (x307) = fiat_p384_scalar_cmovznz_u64(x303, x296, x284);
+-    let mut x308: u64 = 0;
+     let (x308) = fiat_p384_scalar_cmovznz_u64(x303, x298, x286);
+-    let mut x309: u64 = 0;
+     let (x309) = fiat_p384_scalar_cmovznz_u64(x303, x300, x288);
+     out1[0] = x304;
+     out1[1] = x305;
+@@ -2310,688 +1020,248 @@ pub const fn fiat_p384_scalar_to_montgomery(
+     let x4: u64 = (arg1[4]);
+     let x5: u64 = (arg1[5]);
+     let x6: u64 = (arg1[0]);
+-    let mut x7: u64 = 0;
+-    let mut x8: u64 = 0;
+     let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, 0xc84ee012b39bf21);
+-    let mut x9: u64 = 0;
+-    let mut x10: u64 = 0;
+     let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, 0x3fb05b7a28266895);
+-    let mut x11: u64 = 0;
+-    let mut x12: u64 = 0;
+     let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, 0xd40d49174aab1cc5);
+-    let mut x13: u64 = 0;
+-    let mut x14: u64 = 0;
+     let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, 0xbc3e483afcb82947);
+-    let mut x15: u64 = 0;
+-    let mut x16: u64 = 0;
+     let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, 0xff3d81e5df1aa419);
+-    let mut x17: u64 = 0;
+-    let mut x18: u64 = 0;
+     let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, 0x2d319b2419b409a9);
+-    let mut x19: u64 = 0;
+-    let mut x20: fiat_p384_scalar_u1 = 0;
+     let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
+-    let mut x21: u64 = 0;
+-    let mut x22: fiat_p384_scalar_u1 = 0;
+     let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
+-    let mut x23: u64 = 0;
+-    let mut x24: fiat_p384_scalar_u1 = 0;
+     let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
+-    let mut x25: u64 = 0;
+-    let mut x26: fiat_p384_scalar_u1 = 0;
+     let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
+-    let mut x27: u64 = 0;
+-    let mut x28: fiat_p384_scalar_u1 = 0;
+     let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
+-    let mut x29: u64 = 0;
+-    let mut x30: u64 = 0;
+     let (x29, x30) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
+-    let mut x31: u64 = 0;
+-    let mut x32: u64 = 0;
+     let (x31, x32) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
+-    let mut x33: u64 = 0;
+-    let mut x34: u64 = 0;
+     let (x33, x34) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
+-    let mut x35: u64 = 0;
+-    let mut x36: u64 = 0;
+     let (x35, x36) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
+-    let mut x37: u64 = 0;
+-    let mut x38: u64 = 0;
+     let (x37, x38) = fiat_p384_scalar_mulx_u64(x29, 0xc7634d81f4372ddf);
+-    let mut x39: u64 = 0;
+-    let mut x40: u64 = 0;
+     let (x39, x40) = fiat_p384_scalar_mulx_u64(x29, 0x581a0db248b0a77a);
+-    let mut x41: u64 = 0;
+-    let mut x42: u64 = 0;
+     let (x41, x42) = fiat_p384_scalar_mulx_u64(x29, 0xecec196accc52973);
+-    let mut x43: u64 = 0;
+-    let mut x44: fiat_p384_scalar_u1 = 0;
+     let (x43, x44) = fiat_p384_scalar_addcarryx_u64(0x0, x42, x39);
+-    let mut x45: u64 = 0;
+-    let mut x46: fiat_p384_scalar_u1 = 0;
+     let (x45, x46) = fiat_p384_scalar_addcarryx_u64(x44, x40, x37);
+-    let mut x47: u64 = 0;
+-    let mut x48: fiat_p384_scalar_u1 = 0;
+     let (x47, x48) = fiat_p384_scalar_addcarryx_u64(x46, x38, x35);
+-    let mut x49: u64 = 0;
+-    let mut x50: fiat_p384_scalar_u1 = 0;
+     let (x49, x50) = fiat_p384_scalar_addcarryx_u64(x48, x36, x33);
+-    let mut x51: u64 = 0;
+-    let mut x52: fiat_p384_scalar_u1 = 0;
+     let (x51, x52) = fiat_p384_scalar_addcarryx_u64(x50, x34, x31);
+-    let mut x53: u64 = 0;
+-    let mut x54: fiat_p384_scalar_u1 = 0;
+     let (x53, x54) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x41);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_addcarryx_u64(x54, x19, x43);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x21, x45);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_scalar_u1 = 0;
+     let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x23, x47);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_scalar_u1 = 0;
+     let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x25, x49);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_scalar_u1 = 0;
+     let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x27, x51);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_scalar_u1 = 0;
+     let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, ((x28 as u64) + x8), ((x52 as u64) + x32));
+-    let mut x67: u64 = 0;
+-    let mut x68: u64 = 0;
+     let (x67, x68) = fiat_p384_scalar_mulx_u64(x1, 0xc84ee012b39bf21);
+-    let mut x69: u64 = 0;
+-    let mut x70: u64 = 0;
+     let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, 0x3fb05b7a28266895);
+-    let mut x71: u64 = 0;
+-    let mut x72: u64 = 0;
+     let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, 0xd40d49174aab1cc5);
+-    let mut x73: u64 = 0;
+-    let mut x74: u64 = 0;
+     let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, 0xbc3e483afcb82947);
+-    let mut x75: u64 = 0;
+-    let mut x76: u64 = 0;
+     let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, 0xff3d81e5df1aa419);
+-    let mut x77: u64 = 0;
+-    let mut x78: u64 = 0;
+     let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, 0x2d319b2419b409a9);
+-    let mut x79: u64 = 0;
+-    let mut x80: fiat_p384_scalar_u1 = 0;
+     let (x79, x80) = fiat_p384_scalar_addcarryx_u64(0x0, x78, x75);
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_scalar_u1 = 0;
+     let (x81, x82) = fiat_p384_scalar_addcarryx_u64(x80, x76, x73);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_scalar_u1 = 0;
+     let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x74, x71);
+-    let mut x85: u64 = 0;
+-    let mut x86: fiat_p384_scalar_u1 = 0;
+     let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x72, x69);
+-    let mut x87: u64 = 0;
+-    let mut x88: fiat_p384_scalar_u1 = 0;
+     let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x70, x67);
+-    let mut x89: u64 = 0;
+-    let mut x90: fiat_p384_scalar_u1 = 0;
+     let (x89, x90) = fiat_p384_scalar_addcarryx_u64(0x0, x55, x77);
+-    let mut x91: u64 = 0;
+-    let mut x92: fiat_p384_scalar_u1 = 0;
+     let (x91, x92) = fiat_p384_scalar_addcarryx_u64(x90, x57, x79);
+-    let mut x93: u64 = 0;
+-    let mut x94: fiat_p384_scalar_u1 = 0;
+     let (x93, x94) = fiat_p384_scalar_addcarryx_u64(x92, x59, x81);
+-    let mut x95: u64 = 0;
+-    let mut x96: fiat_p384_scalar_u1 = 0;
+     let (x95, x96) = fiat_p384_scalar_addcarryx_u64(x94, x61, x83);
+-    let mut x97: u64 = 0;
+-    let mut x98: fiat_p384_scalar_u1 = 0;
+     let (x97, x98) = fiat_p384_scalar_addcarryx_u64(x96, x63, x85);
+-    let mut x99: u64 = 0;
+-    let mut x100: fiat_p384_scalar_u1 = 0;
+     let (x99, x100) = fiat_p384_scalar_addcarryx_u64(x98, x65, x87);
+-    let mut x101: u64 = 0;
+-    let mut x102: u64 = 0;
+     let (x101, x102) = fiat_p384_scalar_mulx_u64(x89, 0x6ed46089e88fdc45);
+-    let mut x103: u64 = 0;
+-    let mut x104: u64 = 0;
+     let (x103, x104) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
+-    let mut x105: u64 = 0;
+-    let mut x106: u64 = 0;
+     let (x105, x106) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
+-    let mut x107: u64 = 0;
+-    let mut x108: u64 = 0;
+     let (x107, x108) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
+-    let mut x109: u64 = 0;
+-    let mut x110: u64 = 0;
+     let (x109, x110) = fiat_p384_scalar_mulx_u64(x101, 0xc7634d81f4372ddf);
+-    let mut x111: u64 = 0;
+-    let mut x112: u64 = 0;
+     let (x111, x112) = fiat_p384_scalar_mulx_u64(x101, 0x581a0db248b0a77a);
+-    let mut x113: u64 = 0;
+-    let mut x114: u64 = 0;
+     let (x113, x114) = fiat_p384_scalar_mulx_u64(x101, 0xecec196accc52973);
+-    let mut x115: u64 = 0;
+-    let mut x116: fiat_p384_scalar_u1 = 0;
+     let (x115, x116) = fiat_p384_scalar_addcarryx_u64(0x0, x114, x111);
+-    let mut x117: u64 = 0;
+-    let mut x118: fiat_p384_scalar_u1 = 0;
+     let (x117, x118) = fiat_p384_scalar_addcarryx_u64(x116, x112, x109);
+-    let mut x119: u64 = 0;
+-    let mut x120: fiat_p384_scalar_u1 = 0;
+     let (x119, x120) = fiat_p384_scalar_addcarryx_u64(x118, x110, x107);
+-    let mut x121: u64 = 0;
+-    let mut x122: fiat_p384_scalar_u1 = 0;
+     let (x121, x122) = fiat_p384_scalar_addcarryx_u64(x120, x108, x105);
+-    let mut x123: u64 = 0;
+-    let mut x124: fiat_p384_scalar_u1 = 0;
+     let (x123, x124) = fiat_p384_scalar_addcarryx_u64(x122, x106, x103);
+-    let mut x125: u64 = 0;
+-    let mut x126: fiat_p384_scalar_u1 = 0;
+     let (x125, x126) = fiat_p384_scalar_addcarryx_u64(0x0, x89, x113);
+-    let mut x127: u64 = 0;
+-    let mut x128: fiat_p384_scalar_u1 = 0;
+     let (x127, x128) = fiat_p384_scalar_addcarryx_u64(x126, x91, x115);
+-    let mut x129: u64 = 0;
+-    let mut x130: fiat_p384_scalar_u1 = 0;
+     let (x129, x130) = fiat_p384_scalar_addcarryx_u64(x128, x93, x117);
+-    let mut x131: u64 = 0;
+-    let mut x132: fiat_p384_scalar_u1 = 0;
+     let (x131, x132) = fiat_p384_scalar_addcarryx_u64(x130, x95, x119);
+-    let mut x133: u64 = 0;
+-    let mut x134: fiat_p384_scalar_u1 = 0;
+     let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x97, x121);
+-    let mut x135: u64 = 0;
+-    let mut x136: fiat_p384_scalar_u1 = 0;
+     let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x99, x123);
+-    let mut x137: u64 = 0;
+-    let mut x138: fiat_p384_scalar_u1 = 0;
+     let (x137, x138) = fiat_p384_scalar_addcarryx_u64(
+         x136,
+         (((x100 as u64) + (x66 as u64)) + ((x88 as u64) + x68)),
+         ((x124 as u64) + x104),
+     );
+-    let mut x139: u64 = 0;
+-    let mut x140: u64 = 0;
+     let (x139, x140) = fiat_p384_scalar_mulx_u64(x2, 0xc84ee012b39bf21);
+-    let mut x141: u64 = 0;
+-    let mut x142: u64 = 0;
+     let (x141, x142) = fiat_p384_scalar_mulx_u64(x2, 0x3fb05b7a28266895);
+-    let mut x143: u64 = 0;
+-    let mut x144: u64 = 0;
+     let (x143, x144) = fiat_p384_scalar_mulx_u64(x2, 0xd40d49174aab1cc5);
+-    let mut x145: u64 = 0;
+-    let mut x146: u64 = 0;
+     let (x145, x146) = fiat_p384_scalar_mulx_u64(x2, 0xbc3e483afcb82947);
+-    let mut x147: u64 = 0;
+-    let mut x148: u64 = 0;
+     let (x147, x148) = fiat_p384_scalar_mulx_u64(x2, 0xff3d81e5df1aa419);
+-    let mut x149: u64 = 0;
+-    let mut x150: u64 = 0;
+     let (x149, x150) = fiat_p384_scalar_mulx_u64(x2, 0x2d319b2419b409a9);
+-    let mut x151: u64 = 0;
+-    let mut x152: fiat_p384_scalar_u1 = 0;
+     let (x151, x152) = fiat_p384_scalar_addcarryx_u64(0x0, x150, x147);
+-    let mut x153: u64 = 0;
+-    let mut x154: fiat_p384_scalar_u1 = 0;
+     let (x153, x154) = fiat_p384_scalar_addcarryx_u64(x152, x148, x145);
+-    let mut x155: u64 = 0;
+-    let mut x156: fiat_p384_scalar_u1 = 0;
+     let (x155, x156) = fiat_p384_scalar_addcarryx_u64(x154, x146, x143);
+-    let mut x157: u64 = 0;
+-    let mut x158: fiat_p384_scalar_u1 = 0;
+     let (x157, x158) = fiat_p384_scalar_addcarryx_u64(x156, x144, x141);
+-    let mut x159: u64 = 0;
+-    let mut x160: fiat_p384_scalar_u1 = 0;
+     let (x159, x160) = fiat_p384_scalar_addcarryx_u64(x158, x142, x139);
+-    let mut x161: u64 = 0;
+-    let mut x162: fiat_p384_scalar_u1 = 0;
+     let (x161, x162) = fiat_p384_scalar_addcarryx_u64(0x0, x127, x149);
+-    let mut x163: u64 = 0;
+-    let mut x164: fiat_p384_scalar_u1 = 0;
+     let (x163, x164) = fiat_p384_scalar_addcarryx_u64(x162, x129, x151);
+-    let mut x165: u64 = 0;
+-    let mut x166: fiat_p384_scalar_u1 = 0;
+     let (x165, x166) = fiat_p384_scalar_addcarryx_u64(x164, x131, x153);
+-    let mut x167: u64 = 0;
+-    let mut x168: fiat_p384_scalar_u1 = 0;
+     let (x167, x168) = fiat_p384_scalar_addcarryx_u64(x166, x133, x155);
+-    let mut x169: u64 = 0;
+-    let mut x170: fiat_p384_scalar_u1 = 0;
+     let (x169, x170) = fiat_p384_scalar_addcarryx_u64(x168, x135, x157);
+-    let mut x171: u64 = 0;
+-    let mut x172: fiat_p384_scalar_u1 = 0;
+     let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x137, x159);
+-    let mut x173: u64 = 0;
+-    let mut x174: u64 = 0;
+     let (x173, x174) = fiat_p384_scalar_mulx_u64(x161, 0x6ed46089e88fdc45);
+-    let mut x175: u64 = 0;
+-    let mut x176: u64 = 0;
+     let (x175, x176) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
+-    let mut x177: u64 = 0;
+-    let mut x178: u64 = 0;
+     let (x177, x178) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
+-    let mut x179: u64 = 0;
+-    let mut x180: u64 = 0;
+     let (x179, x180) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
+-    let mut x181: u64 = 0;
+-    let mut x182: u64 = 0;
+     let (x181, x182) = fiat_p384_scalar_mulx_u64(x173, 0xc7634d81f4372ddf);
+-    let mut x183: u64 = 0;
+-    let mut x184: u64 = 0;
+     let (x183, x184) = fiat_p384_scalar_mulx_u64(x173, 0x581a0db248b0a77a);
+-    let mut x185: u64 = 0;
+-    let mut x186: u64 = 0;
+     let (x185, x186) = fiat_p384_scalar_mulx_u64(x173, 0xecec196accc52973);
+-    let mut x187: u64 = 0;
+-    let mut x188: fiat_p384_scalar_u1 = 0;
+     let (x187, x188) = fiat_p384_scalar_addcarryx_u64(0x0, x186, x183);
+-    let mut x189: u64 = 0;
+-    let mut x190: fiat_p384_scalar_u1 = 0;
+     let (x189, x190) = fiat_p384_scalar_addcarryx_u64(x188, x184, x181);
+-    let mut x191: u64 = 0;
+-    let mut x192: fiat_p384_scalar_u1 = 0;
+     let (x191, x192) = fiat_p384_scalar_addcarryx_u64(x190, x182, x179);
+-    let mut x193: u64 = 0;
+-    let mut x194: fiat_p384_scalar_u1 = 0;
+     let (x193, x194) = fiat_p384_scalar_addcarryx_u64(x192, x180, x177);
+-    let mut x195: u64 = 0;
+-    let mut x196: fiat_p384_scalar_u1 = 0;
+     let (x195, x196) = fiat_p384_scalar_addcarryx_u64(x194, x178, x175);
+-    let mut x197: u64 = 0;
+-    let mut x198: fiat_p384_scalar_u1 = 0;
+     let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x161, x185);
+-    let mut x199: u64 = 0;
+-    let mut x200: fiat_p384_scalar_u1 = 0;
+     let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x163, x187);
+-    let mut x201: u64 = 0;
+-    let mut x202: fiat_p384_scalar_u1 = 0;
+     let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x165, x189);
+-    let mut x203: u64 = 0;
+-    let mut x204: fiat_p384_scalar_u1 = 0;
+     let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x167, x191);
+-    let mut x205: u64 = 0;
+-    let mut x206: fiat_p384_scalar_u1 = 0;
+     let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x169, x193);
+-    let mut x207: u64 = 0;
+-    let mut x208: fiat_p384_scalar_u1 = 0;
+     let (x207, x208) = fiat_p384_scalar_addcarryx_u64(x206, x171, x195);
+-    let mut x209: u64 = 0;
+-    let mut x210: fiat_p384_scalar_u1 = 0;
+     let (x209, x210) = fiat_p384_scalar_addcarryx_u64(
+         x208,
+         (((x172 as u64) + (x138 as u64)) + ((x160 as u64) + x140)),
+         ((x196 as u64) + x176),
+     );
+-    let mut x211: u64 = 0;
+-    let mut x212: u64 = 0;
+     let (x211, x212) = fiat_p384_scalar_mulx_u64(x3, 0xc84ee012b39bf21);
+-    let mut x213: u64 = 0;
+-    let mut x214: u64 = 0;
+     let (x213, x214) = fiat_p384_scalar_mulx_u64(x3, 0x3fb05b7a28266895);
+-    let mut x215: u64 = 0;
+-    let mut x216: u64 = 0;
+     let (x215, x216) = fiat_p384_scalar_mulx_u64(x3, 0xd40d49174aab1cc5);
+-    let mut x217: u64 = 0;
+-    let mut x218: u64 = 0;
+     let (x217, x218) = fiat_p384_scalar_mulx_u64(x3, 0xbc3e483afcb82947);
+-    let mut x219: u64 = 0;
+-    let mut x220: u64 = 0;
+     let (x219, x220) = fiat_p384_scalar_mulx_u64(x3, 0xff3d81e5df1aa419);
+-    let mut x221: u64 = 0;
+-    let mut x222: u64 = 0;
+     let (x221, x222) = fiat_p384_scalar_mulx_u64(x3, 0x2d319b2419b409a9);
+-    let mut x223: u64 = 0;
+-    let mut x224: fiat_p384_scalar_u1 = 0;
+     let (x223, x224) = fiat_p384_scalar_addcarryx_u64(0x0, x222, x219);
+-    let mut x225: u64 = 0;
+-    let mut x226: fiat_p384_scalar_u1 = 0;
+     let (x225, x226) = fiat_p384_scalar_addcarryx_u64(x224, x220, x217);
+-    let mut x227: u64 = 0;
+-    let mut x228: fiat_p384_scalar_u1 = 0;
+     let (x227, x228) = fiat_p384_scalar_addcarryx_u64(x226, x218, x215);
+-    let mut x229: u64 = 0;
+-    let mut x230: fiat_p384_scalar_u1 = 0;
+     let (x229, x230) = fiat_p384_scalar_addcarryx_u64(x228, x216, x213);
+-    let mut x231: u64 = 0;
+-    let mut x232: fiat_p384_scalar_u1 = 0;
+     let (x231, x232) = fiat_p384_scalar_addcarryx_u64(x230, x214, x211);
+-    let mut x233: u64 = 0;
+-    let mut x234: fiat_p384_scalar_u1 = 0;
+     let (x233, x234) = fiat_p384_scalar_addcarryx_u64(0x0, x199, x221);
+-    let mut x235: u64 = 0;
+-    let mut x236: fiat_p384_scalar_u1 = 0;
+     let (x235, x236) = fiat_p384_scalar_addcarryx_u64(x234, x201, x223);
+-    let mut x237: u64 = 0;
+-    let mut x238: fiat_p384_scalar_u1 = 0;
+     let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x203, x225);
+-    let mut x239: u64 = 0;
+-    let mut x240: fiat_p384_scalar_u1 = 0;
+     let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x205, x227);
+-    let mut x241: u64 = 0;
+-    let mut x242: fiat_p384_scalar_u1 = 0;
+     let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x207, x229);
+-    let mut x243: u64 = 0;
+-    let mut x244: fiat_p384_scalar_u1 = 0;
+     let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x209, x231);
+-    let mut x245: u64 = 0;
+-    let mut x246: u64 = 0;
+     let (x245, x246) = fiat_p384_scalar_mulx_u64(x233, 0x6ed46089e88fdc45);
+-    let mut x247: u64 = 0;
+-    let mut x248: u64 = 0;
+     let (x247, x248) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
+-    let mut x249: u64 = 0;
+-    let mut x250: u64 = 0;
+     let (x249, x250) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
+-    let mut x251: u64 = 0;
+-    let mut x252: u64 = 0;
+     let (x251, x252) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
+-    let mut x253: u64 = 0;
+-    let mut x254: u64 = 0;
+     let (x253, x254) = fiat_p384_scalar_mulx_u64(x245, 0xc7634d81f4372ddf);
+-    let mut x255: u64 = 0;
+-    let mut x256: u64 = 0;
+     let (x255, x256) = fiat_p384_scalar_mulx_u64(x245, 0x581a0db248b0a77a);
+-    let mut x257: u64 = 0;
+-    let mut x258: u64 = 0;
+     let (x257, x258) = fiat_p384_scalar_mulx_u64(x245, 0xecec196accc52973);
+-    let mut x259: u64 = 0;
+-    let mut x260: fiat_p384_scalar_u1 = 0;
+     let (x259, x260) = fiat_p384_scalar_addcarryx_u64(0x0, x258, x255);
+-    let mut x261: u64 = 0;
+-    let mut x262: fiat_p384_scalar_u1 = 0;
+     let (x261, x262) = fiat_p384_scalar_addcarryx_u64(x260, x256, x253);
+-    let mut x263: u64 = 0;
+-    let mut x264: fiat_p384_scalar_u1 = 0;
+     let (x263, x264) = fiat_p384_scalar_addcarryx_u64(x262, x254, x251);
+-    let mut x265: u64 = 0;
+-    let mut x266: fiat_p384_scalar_u1 = 0;
+     let (x265, x266) = fiat_p384_scalar_addcarryx_u64(x264, x252, x249);
+-    let mut x267: u64 = 0;
+-    let mut x268: fiat_p384_scalar_u1 = 0;
+     let (x267, x268) = fiat_p384_scalar_addcarryx_u64(x266, x250, x247);
+-    let mut x269: u64 = 0;
+-    let mut x270: fiat_p384_scalar_u1 = 0;
+     let (x269, x270) = fiat_p384_scalar_addcarryx_u64(0x0, x233, x257);
+-    let mut x271: u64 = 0;
+-    let mut x272: fiat_p384_scalar_u1 = 0;
+     let (x271, x272) = fiat_p384_scalar_addcarryx_u64(x270, x235, x259);
+-    let mut x273: u64 = 0;
+-    let mut x274: fiat_p384_scalar_u1 = 0;
+     let (x273, x274) = fiat_p384_scalar_addcarryx_u64(x272, x237, x261);
+-    let mut x275: u64 = 0;
+-    let mut x276: fiat_p384_scalar_u1 = 0;
+     let (x275, x276) = fiat_p384_scalar_addcarryx_u64(x274, x239, x263);
+-    let mut x277: u64 = 0;
+-    let mut x278: fiat_p384_scalar_u1 = 0;
+     let (x277, x278) = fiat_p384_scalar_addcarryx_u64(x276, x241, x265);
+-    let mut x279: u64 = 0;
+-    let mut x280: fiat_p384_scalar_u1 = 0;
+     let (x279, x280) = fiat_p384_scalar_addcarryx_u64(x278, x243, x267);
+-    let mut x281: u64 = 0;
+-    let mut x282: fiat_p384_scalar_u1 = 0;
+     let (x281, x282) = fiat_p384_scalar_addcarryx_u64(
+         x280,
+         (((x244 as u64) + (x210 as u64)) + ((x232 as u64) + x212)),
+         ((x268 as u64) + x248),
+     );
+-    let mut x283: u64 = 0;
+-    let mut x284: u64 = 0;
+     let (x283, x284) = fiat_p384_scalar_mulx_u64(x4, 0xc84ee012b39bf21);
+-    let mut x285: u64 = 0;
+-    let mut x286: u64 = 0;
+     let (x285, x286) = fiat_p384_scalar_mulx_u64(x4, 0x3fb05b7a28266895);
+-    let mut x287: u64 = 0;
+-    let mut x288: u64 = 0;
+     let (x287, x288) = fiat_p384_scalar_mulx_u64(x4, 0xd40d49174aab1cc5);
+-    let mut x289: u64 = 0;
+-    let mut x290: u64 = 0;
+     let (x289, x290) = fiat_p384_scalar_mulx_u64(x4, 0xbc3e483afcb82947);
+-    let mut x291: u64 = 0;
+-    let mut x292: u64 = 0;
+     let (x291, x292) = fiat_p384_scalar_mulx_u64(x4, 0xff3d81e5df1aa419);
+-    let mut x293: u64 = 0;
+-    let mut x294: u64 = 0;
+     let (x293, x294) = fiat_p384_scalar_mulx_u64(x4, 0x2d319b2419b409a9);
+-    let mut x295: u64 = 0;
+-    let mut x296: fiat_p384_scalar_u1 = 0;
+     let (x295, x296) = fiat_p384_scalar_addcarryx_u64(0x0, x294, x291);
+-    let mut x297: u64 = 0;
+-    let mut x298: fiat_p384_scalar_u1 = 0;
+     let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x292, x289);
+-    let mut x299: u64 = 0;
+-    let mut x300: fiat_p384_scalar_u1 = 0;
+     let (x299, x300) = fiat_p384_scalar_addcarryx_u64(x298, x290, x287);
+-    let mut x301: u64 = 0;
+-    let mut x302: fiat_p384_scalar_u1 = 0;
+     let (x301, x302) = fiat_p384_scalar_addcarryx_u64(x300, x288, x285);
+-    let mut x303: u64 = 0;
+-    let mut x304: fiat_p384_scalar_u1 = 0;
+     let (x303, x304) = fiat_p384_scalar_addcarryx_u64(x302, x286, x283);
+-    let mut x305: u64 = 0;
+-    let mut x306: fiat_p384_scalar_u1 = 0;
+     let (x305, x306) = fiat_p384_scalar_addcarryx_u64(0x0, x271, x293);
+-    let mut x307: u64 = 0;
+-    let mut x308: fiat_p384_scalar_u1 = 0;
+     let (x307, x308) = fiat_p384_scalar_addcarryx_u64(x306, x273, x295);
+-    let mut x309: u64 = 0;
+-    let mut x310: fiat_p384_scalar_u1 = 0;
+     let (x309, x310) = fiat_p384_scalar_addcarryx_u64(x308, x275, x297);
+-    let mut x311: u64 = 0;
+-    let mut x312: fiat_p384_scalar_u1 = 0;
+     let (x311, x312) = fiat_p384_scalar_addcarryx_u64(x310, x277, x299);
+-    let mut x313: u64 = 0;
+-    let mut x314: fiat_p384_scalar_u1 = 0;
+     let (x313, x314) = fiat_p384_scalar_addcarryx_u64(x312, x279, x301);
+-    let mut x315: u64 = 0;
+-    let mut x316: fiat_p384_scalar_u1 = 0;
+     let (x315, x316) = fiat_p384_scalar_addcarryx_u64(x314, x281, x303);
+-    let mut x317: u64 = 0;
+-    let mut x318: u64 = 0;
+     let (x317, x318) = fiat_p384_scalar_mulx_u64(x305, 0x6ed46089e88fdc45);
+-    let mut x319: u64 = 0;
+-    let mut x320: u64 = 0;
+     let (x319, x320) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
+-    let mut x321: u64 = 0;
+-    let mut x322: u64 = 0;
+     let (x321, x322) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
+-    let mut x323: u64 = 0;
+-    let mut x324: u64 = 0;
+     let (x323, x324) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
+-    let mut x325: u64 = 0;
+-    let mut x326: u64 = 0;
+     let (x325, x326) = fiat_p384_scalar_mulx_u64(x317, 0xc7634d81f4372ddf);
+-    let mut x327: u64 = 0;
+-    let mut x328: u64 = 0;
+     let (x327, x328) = fiat_p384_scalar_mulx_u64(x317, 0x581a0db248b0a77a);
+-    let mut x329: u64 = 0;
+-    let mut x330: u64 = 0;
+     let (x329, x330) = fiat_p384_scalar_mulx_u64(x317, 0xecec196accc52973);
+-    let mut x331: u64 = 0;
+-    let mut x332: fiat_p384_scalar_u1 = 0;
+     let (x331, x332) = fiat_p384_scalar_addcarryx_u64(0x0, x330, x327);
+-    let mut x333: u64 = 0;
+-    let mut x334: fiat_p384_scalar_u1 = 0;
+     let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x328, x325);
+-    let mut x335: u64 = 0;
+-    let mut x336: fiat_p384_scalar_u1 = 0;
+     let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x326, x323);
+-    let mut x337: u64 = 0;
+-    let mut x338: fiat_p384_scalar_u1 = 0;
+     let (x337, x338) = fiat_p384_scalar_addcarryx_u64(x336, x324, x321);
+-    let mut x339: u64 = 0;
+-    let mut x340: fiat_p384_scalar_u1 = 0;
+     let (x339, x340) = fiat_p384_scalar_addcarryx_u64(x338, x322, x319);
+-    let mut x341: u64 = 0;
+-    let mut x342: fiat_p384_scalar_u1 = 0;
+     let (x341, x342) = fiat_p384_scalar_addcarryx_u64(0x0, x305, x329);
+-    let mut x343: u64 = 0;
+-    let mut x344: fiat_p384_scalar_u1 = 0;
+     let (x343, x344) = fiat_p384_scalar_addcarryx_u64(x342, x307, x331);
+-    let mut x345: u64 = 0;
+-    let mut x346: fiat_p384_scalar_u1 = 0;
+     let (x345, x346) = fiat_p384_scalar_addcarryx_u64(x344, x309, x333);
+-    let mut x347: u64 = 0;
+-    let mut x348: fiat_p384_scalar_u1 = 0;
+     let (x347, x348) = fiat_p384_scalar_addcarryx_u64(x346, x311, x335);
+-    let mut x349: u64 = 0;
+-    let mut x350: fiat_p384_scalar_u1 = 0;
+     let (x349, x350) = fiat_p384_scalar_addcarryx_u64(x348, x313, x337);
+-    let mut x351: u64 = 0;
+-    let mut x352: fiat_p384_scalar_u1 = 0;
+     let (x351, x352) = fiat_p384_scalar_addcarryx_u64(x350, x315, x339);
+-    let mut x353: u64 = 0;
+-    let mut x354: fiat_p384_scalar_u1 = 0;
+     let (x353, x354) = fiat_p384_scalar_addcarryx_u64(
+         x352,
+         (((x316 as u64) + (x282 as u64)) + ((x304 as u64) + x284)),
+         ((x340 as u64) + x320),
+     );
+-    let mut x355: u64 = 0;
+-    let mut x356: u64 = 0;
+     let (x355, x356) = fiat_p384_scalar_mulx_u64(x5, 0xc84ee012b39bf21);
+-    let mut x357: u64 = 0;
+-    let mut x358: u64 = 0;
+     let (x357, x358) = fiat_p384_scalar_mulx_u64(x5, 0x3fb05b7a28266895);
+-    let mut x359: u64 = 0;
+-    let mut x360: u64 = 0;
+     let (x359, x360) = fiat_p384_scalar_mulx_u64(x5, 0xd40d49174aab1cc5);
+-    let mut x361: u64 = 0;
+-    let mut x362: u64 = 0;
+     let (x361, x362) = fiat_p384_scalar_mulx_u64(x5, 0xbc3e483afcb82947);
+-    let mut x363: u64 = 0;
+-    let mut x364: u64 = 0;
+     let (x363, x364) = fiat_p384_scalar_mulx_u64(x5, 0xff3d81e5df1aa419);
+-    let mut x365: u64 = 0;
+-    let mut x366: u64 = 0;
+     let (x365, x366) = fiat_p384_scalar_mulx_u64(x5, 0x2d319b2419b409a9);
+-    let mut x367: u64 = 0;
+-    let mut x368: fiat_p384_scalar_u1 = 0;
+     let (x367, x368) = fiat_p384_scalar_addcarryx_u64(0x0, x366, x363);
+-    let mut x369: u64 = 0;
+-    let mut x370: fiat_p384_scalar_u1 = 0;
+     let (x369, x370) = fiat_p384_scalar_addcarryx_u64(x368, x364, x361);
+-    let mut x371: u64 = 0;
+-    let mut x372: fiat_p384_scalar_u1 = 0;
+     let (x371, x372) = fiat_p384_scalar_addcarryx_u64(x370, x362, x359);
+-    let mut x373: u64 = 0;
+-    let mut x374: fiat_p384_scalar_u1 = 0;
+     let (x373, x374) = fiat_p384_scalar_addcarryx_u64(x372, x360, x357);
+-    let mut x375: u64 = 0;
+-    let mut x376: fiat_p384_scalar_u1 = 0;
+     let (x375, x376) = fiat_p384_scalar_addcarryx_u64(x374, x358, x355);
+-    let mut x377: u64 = 0;
+-    let mut x378: fiat_p384_scalar_u1 = 0;
+     let (x377, x378) = fiat_p384_scalar_addcarryx_u64(0x0, x343, x365);
+-    let mut x379: u64 = 0;
+-    let mut x380: fiat_p384_scalar_u1 = 0;
+     let (x379, x380) = fiat_p384_scalar_addcarryx_u64(x378, x345, x367);
+-    let mut x381: u64 = 0;
+-    let mut x382: fiat_p384_scalar_u1 = 0;
+     let (x381, x382) = fiat_p384_scalar_addcarryx_u64(x380, x347, x369);
+-    let mut x383: u64 = 0;
+-    let mut x384: fiat_p384_scalar_u1 = 0;
+     let (x383, x384) = fiat_p384_scalar_addcarryx_u64(x382, x349, x371);
+-    let mut x385: u64 = 0;
+-    let mut x386: fiat_p384_scalar_u1 = 0;
+     let (x385, x386) = fiat_p384_scalar_addcarryx_u64(x384, x351, x373);
+-    let mut x387: u64 = 0;
+-    let mut x388: fiat_p384_scalar_u1 = 0;
+     let (x387, x388) = fiat_p384_scalar_addcarryx_u64(x386, x353, x375);
+-    let mut x389: u64 = 0;
+-    let mut x390: u64 = 0;
+     let (x389, x390) = fiat_p384_scalar_mulx_u64(x377, 0x6ed46089e88fdc45);
+-    let mut x391: u64 = 0;
+-    let mut x392: u64 = 0;
+     let (x391, x392) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
+-    let mut x393: u64 = 0;
+-    let mut x394: u64 = 0;
+     let (x393, x394) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
+-    let mut x395: u64 = 0;
+-    let mut x396: u64 = 0;
+     let (x395, x396) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
+-    let mut x397: u64 = 0;
+-    let mut x398: u64 = 0;
+     let (x397, x398) = fiat_p384_scalar_mulx_u64(x389, 0xc7634d81f4372ddf);
+-    let mut x399: u64 = 0;
+-    let mut x400: u64 = 0;
+     let (x399, x400) = fiat_p384_scalar_mulx_u64(x389, 0x581a0db248b0a77a);
+-    let mut x401: u64 = 0;
+-    let mut x402: u64 = 0;
+     let (x401, x402) = fiat_p384_scalar_mulx_u64(x389, 0xecec196accc52973);
+-    let mut x403: u64 = 0;
+-    let mut x404: fiat_p384_scalar_u1 = 0;
+     let (x403, x404) = fiat_p384_scalar_addcarryx_u64(0x0, x402, x399);
+-    let mut x405: u64 = 0;
+-    let mut x406: fiat_p384_scalar_u1 = 0;
+     let (x405, x406) = fiat_p384_scalar_addcarryx_u64(x404, x400, x397);
+-    let mut x407: u64 = 0;
+-    let mut x408: fiat_p384_scalar_u1 = 0;
+     let (x407, x408) = fiat_p384_scalar_addcarryx_u64(x406, x398, x395);
+-    let mut x409: u64 = 0;
+-    let mut x410: fiat_p384_scalar_u1 = 0;
+     let (x409, x410) = fiat_p384_scalar_addcarryx_u64(x408, x396, x393);
+-    let mut x411: u64 = 0;
+-    let mut x412: fiat_p384_scalar_u1 = 0;
+     let (x411, x412) = fiat_p384_scalar_addcarryx_u64(x410, x394, x391);
+-    let mut x413: u64 = 0;
+-    let mut x414: fiat_p384_scalar_u1 = 0;
+     let (x413, x414) = fiat_p384_scalar_addcarryx_u64(0x0, x377, x401);
+-    let mut x415: u64 = 0;
+-    let mut x416: fiat_p384_scalar_u1 = 0;
+     let (x415, x416) = fiat_p384_scalar_addcarryx_u64(x414, x379, x403);
+-    let mut x417: u64 = 0;
+-    let mut x418: fiat_p384_scalar_u1 = 0;
+     let (x417, x418) = fiat_p384_scalar_addcarryx_u64(x416, x381, x405);
+-    let mut x419: u64 = 0;
+-    let mut x420: fiat_p384_scalar_u1 = 0;
+     let (x419, x420) = fiat_p384_scalar_addcarryx_u64(x418, x383, x407);
+-    let mut x421: u64 = 0;
+-    let mut x422: fiat_p384_scalar_u1 = 0;
+     let (x421, x422) = fiat_p384_scalar_addcarryx_u64(x420, x385, x409);
+-    let mut x423: u64 = 0;
+-    let mut x424: fiat_p384_scalar_u1 = 0;
+     let (x423, x424) = fiat_p384_scalar_addcarryx_u64(x422, x387, x411);
+-    let mut x425: u64 = 0;
+-    let mut x426: fiat_p384_scalar_u1 = 0;
+     let (x425, x426) = fiat_p384_scalar_addcarryx_u64(
+         x424,
+         (((x388 as u64) + (x354 as u64)) + ((x376 as u64) + x356)),
+         ((x412 as u64) + x392),
+     );
+-    let mut x427: u64 = 0;
+-    let mut x428: fiat_p384_scalar_u1 = 0;
+     let (x427, x428) = fiat_p384_scalar_subborrowx_u64(0x0, x415, 0xecec196accc52973);
+-    let mut x429: u64 = 0;
+-    let mut x430: fiat_p384_scalar_u1 = 0;
+     let (x429, x430) = fiat_p384_scalar_subborrowx_u64(x428, x417, 0x581a0db248b0a77a);
+-    let mut x431: u64 = 0;
+-    let mut x432: fiat_p384_scalar_u1 = 0;
+     let (x431, x432) = fiat_p384_scalar_subborrowx_u64(x430, x419, 0xc7634d81f4372ddf);
+-    let mut x433: u64 = 0;
+-    let mut x434: fiat_p384_scalar_u1 = 0;
+     let (x433, x434) = fiat_p384_scalar_subborrowx_u64(x432, x421, 0xffffffffffffffff);
+-    let mut x435: u64 = 0;
+-    let mut x436: fiat_p384_scalar_u1 = 0;
+     let (x435, x436) = fiat_p384_scalar_subborrowx_u64(x434, x423, 0xffffffffffffffff);
+-    let mut x437: u64 = 0;
+-    let mut x438: fiat_p384_scalar_u1 = 0;
+     let (x437, x438) = fiat_p384_scalar_subborrowx_u64(x436, x425, 0xffffffffffffffff);
+-    let mut x439: u64 = 0;
+-    let mut x440: fiat_p384_scalar_u1 = 0;
+     let (x439, x440) = fiat_p384_scalar_subborrowx_u64(x438, (x426 as u64), 0x0_u64);
+-    let mut x441: u64 = 0;
+     let (x441) = fiat_p384_scalar_cmovznz_u64(x440, x427, x415);
+-    let mut x442: u64 = 0;
+     let (x442) = fiat_p384_scalar_cmovznz_u64(x440, x429, x417);
+-    let mut x443: u64 = 0;
+     let (x443) = fiat_p384_scalar_cmovznz_u64(x440, x431, x419);
+-    let mut x444: u64 = 0;
+     let (x444) = fiat_p384_scalar_cmovznz_u64(x440, x433, x421);
+-    let mut x445: u64 = 0;
+     let (x445) = fiat_p384_scalar_cmovznz_u64(x440, x435, x423);
+-    let mut x446: u64 = 0;
+     let (x446) = fiat_p384_scalar_cmovznz_u64(x440, x437, x425);
+     out1[0] = x441;
+     out1[1] = x442;
+@@ -3024,17 +1294,11 @@ pub const fn fiat_p384_scalar_selectznz(
+     arg3: &[u64; 6],
+ ) -> [u64; 6] {
+     let mut out1: [u64; 6] = [0; 6];
+-    let mut x1: u64 = 0;
+     let (x1) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
+-    let mut x2: u64 = 0;
+     let (x2) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
+-    let mut x3: u64 = 0;
+     let (x3) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
+-    let mut x4: u64 = 0;
+     let (x4) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
+-    let mut x5: u64 = 0;
+     let (x5) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
+-    let mut x6: u64 = 0;
+     let (x6) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
+     out1[0] = x1;
+     out1[1] = x2;
+@@ -3464,115 +1728,50 @@ pub const fn fiat_p384_scalar_divstep(
+     let mut out3: [u64; 7] = [0; 7];
+     let mut out4: [u64; 6] = [0; 6];
+     let mut out5: [u64; 6] = [0; 6];
+-    let mut x1: u64 = 0;
+-    let mut x2: fiat_p384_scalar_u1 = 0;
+     let (x1, x2) = fiat_p384_scalar_addcarryx_u64(0x0, (!arg1), 0x1_u64);
+     let x3: fiat_p384_scalar_u1 =
+         (((x1 >> 63) as fiat_p384_scalar_u1) & (((arg3[0]) & 0x1_u64) as fiat_p384_scalar_u1));
+-    let mut x4: u64 = 0;
+-    let mut x5: fiat_p384_scalar_u1 = 0;
+     let (x4, x5) = fiat_p384_scalar_addcarryx_u64(0x0, (!arg1), 0x1_u64);
+-    let mut x6: u64 = 0;
+     let (x6) = fiat_p384_scalar_cmovznz_u64(x3, arg1, x4);
+-    let mut x7: u64 = 0;
+     let (x7) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
+-    let mut x8: u64 = 0;
+     let (x8) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
+-    let mut x9: u64 = 0;
+     let (x9) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
+-    let mut x10: u64 = 0;
+     let (x10) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
+-    let mut x11: u64 = 0;
+     let (x11) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
+-    let mut x12: u64 = 0;
+     let (x12) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
+-    let mut x13: u64 = 0;
+     let (x13) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
+-    let mut x14: u64 = 0;
+-    let mut x15: fiat_p384_scalar_u1 = 0;
+     let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, 0x1_u64, (!(arg2[0])));
+-    let mut x16: u64 = 0;
+-    let mut x17: fiat_p384_scalar_u1 = 0;
+     let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, 0x0_u64, (!(arg2[1])));
+-    let mut x18: u64 = 0;
+-    let mut x19: fiat_p384_scalar_u1 = 0;
+     let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, 0x0_u64, (!(arg2[2])));
+-    let mut x20: u64 = 0;
+-    let mut x21: fiat_p384_scalar_u1 = 0;
+     let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, 0x0_u64, (!(arg2[3])));
+-    let mut x22: u64 = 0;
+-    let mut x23: fiat_p384_scalar_u1 = 0;
+     let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, 0x0_u64, (!(arg2[4])));
+-    let mut x24: u64 = 0;
+-    let mut x25: fiat_p384_scalar_u1 = 0;
+     let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, 0x0_u64, (!(arg2[5])));
+-    let mut x26: u64 = 0;
+-    let mut x27: fiat_p384_scalar_u1 = 0;
+     let (x26, x27) = fiat_p384_scalar_addcarryx_u64(x25, 0x0_u64, (!(arg2[6])));
+-    let mut x28: u64 = 0;
+     let (x28) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[0]), x14);
+-    let mut x29: u64 = 0;
+     let (x29) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[1]), x16);
+-    let mut x30: u64 = 0;
+     let (x30) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[2]), x18);
+-    let mut x31: u64 = 0;
+     let (x31) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[3]), x20);
+-    let mut x32: u64 = 0;
+     let (x32) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[4]), x22);
+-    let mut x33: u64 = 0;
+     let (x33) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[5]), x24);
+-    let mut x34: u64 = 0;
+     let (x34) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[6]), x26);
+-    let mut x35: u64 = 0;
+     let (x35) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
+-    let mut x36: u64 = 0;
+     let (x36) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
+-    let mut x37: u64 = 0;
+     let (x37) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
+-    let mut x38: u64 = 0;
+     let (x38) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
+-    let mut x39: u64 = 0;
+     let (x39) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
+-    let mut x40: u64 = 0;
+     let (x40) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
+-    let mut x41: u64 = 0;
+-    let mut x42: fiat_p384_scalar_u1 = 0;
+     let (x41, x42) = fiat_p384_scalar_addcarryx_u64(0x0, x35, x35);
+-    let mut x43: u64 = 0;
+-    let mut x44: fiat_p384_scalar_u1 = 0;
+     let (x43, x44) = fiat_p384_scalar_addcarryx_u64(x42, x36, x36);
+-    let mut x45: u64 = 0;
+-    let mut x46: fiat_p384_scalar_u1 = 0;
+     let (x45, x46) = fiat_p384_scalar_addcarryx_u64(x44, x37, x37);
+-    let mut x47: u64 = 0;
+-    let mut x48: fiat_p384_scalar_u1 = 0;
+     let (x47, x48) = fiat_p384_scalar_addcarryx_u64(x46, x38, x38);
+-    let mut x49: u64 = 0;
+-    let mut x50: fiat_p384_scalar_u1 = 0;
+     let (x49, x50) = fiat_p384_scalar_addcarryx_u64(x48, x39, x39);
+-    let mut x51: u64 = 0;
+-    let mut x52: fiat_p384_scalar_u1 = 0;
+     let (x51, x52) = fiat_p384_scalar_addcarryx_u64(x50, x40, x40);
+-    let mut x53: u64 = 0;
+-    let mut x54: fiat_p384_scalar_u1 = 0;
+     let (x53, x54) = fiat_p384_scalar_subborrowx_u64(0x0, x41, 0xecec196accc52973);
+-    let mut x55: u64 = 0;
+-    let mut x56: fiat_p384_scalar_u1 = 0;
+     let (x55, x56) = fiat_p384_scalar_subborrowx_u64(x54, x43, 0x581a0db248b0a77a);
+-    let mut x57: u64 = 0;
+-    let mut x58: fiat_p384_scalar_u1 = 0;
+     let (x57, x58) = fiat_p384_scalar_subborrowx_u64(x56, x45, 0xc7634d81f4372ddf);
+-    let mut x59: u64 = 0;
+-    let mut x60: fiat_p384_scalar_u1 = 0;
+     let (x59, x60) = fiat_p384_scalar_subborrowx_u64(x58, x47, 0xffffffffffffffff);
+-    let mut x61: u64 = 0;
+-    let mut x62: fiat_p384_scalar_u1 = 0;
+     let (x61, x62) = fiat_p384_scalar_subborrowx_u64(x60, x49, 0xffffffffffffffff);
+-    let mut x63: u64 = 0;
+-    let mut x64: fiat_p384_scalar_u1 = 0;
+     let (x63, x64) = fiat_p384_scalar_subborrowx_u64(x62, x51, 0xffffffffffffffff);
+-    let mut x65: u64 = 0;
+-    let mut x66: fiat_p384_scalar_u1 = 0;
+     let (x65, x66) = fiat_p384_scalar_subborrowx_u64(x64, (x52 as u64), 0x0_u64);
+     let x67: u64 = (arg4[5]);
+     let x68: u64 = (arg4[4]);
+@@ -3580,145 +1779,59 @@ pub const fn fiat_p384_scalar_divstep(
+     let x70: u64 = (arg4[2]);
+     let x71: u64 = (arg4[1]);
+     let x72: u64 = (arg4[0]);
+-    let mut x73: u64 = 0;
+-    let mut x74: fiat_p384_scalar_u1 = 0;
+     let (x73, x74) = fiat_p384_scalar_subborrowx_u64(0x0, 0x0_u64, x72);
+-    let mut x75: u64 = 0;
+-    let mut x76: fiat_p384_scalar_u1 = 0;
+     let (x75, x76) = fiat_p384_scalar_subborrowx_u64(x74, 0x0_u64, x71);
+-    let mut x77: u64 = 0;
+-    let mut x78: fiat_p384_scalar_u1 = 0;
+     let (x77, x78) = fiat_p384_scalar_subborrowx_u64(x76, 0x0_u64, x70);
+-    let mut x79: u64 = 0;
+-    let mut x80: fiat_p384_scalar_u1 = 0;
+     let (x79, x80) = fiat_p384_scalar_subborrowx_u64(x78, 0x0_u64, x69);
+-    let mut x81: u64 = 0;
+-    let mut x82: fiat_p384_scalar_u1 = 0;
+     let (x81, x82) = fiat_p384_scalar_subborrowx_u64(x80, 0x0_u64, x68);
+-    let mut x83: u64 = 0;
+-    let mut x84: fiat_p384_scalar_u1 = 0;
+     let (x83, x84) = fiat_p384_scalar_subborrowx_u64(x82, 0x0_u64, x67);
+-    let mut x85: u64 = 0;
+     let (x85) = fiat_p384_scalar_cmovznz_u64(x84, 0x0_u64, 0xffffffffffffffff);
+-    let mut x86: u64 = 0;
+-    let mut x87: fiat_p384_scalar_u1 = 0;
+     let (x86, x87) = fiat_p384_scalar_addcarryx_u64(0x0, x73, (x85 & 0xecec196accc52973));
+-    let mut x88: u64 = 0;
+-    let mut x89: fiat_p384_scalar_u1 = 0;
+     let (x88, x89) = fiat_p384_scalar_addcarryx_u64(x87, x75, (x85 & 0x581a0db248b0a77a));
+-    let mut x90: u64 = 0;
+-    let mut x91: fiat_p384_scalar_u1 = 0;
+     let (x90, x91) = fiat_p384_scalar_addcarryx_u64(x89, x77, (x85 & 0xc7634d81f4372ddf));
+-    let mut x92: u64 = 0;
+-    let mut x93: fiat_p384_scalar_u1 = 0;
+     let (x92, x93) = fiat_p384_scalar_addcarryx_u64(x91, x79, x85);
+-    let mut x94: u64 = 0;
+-    let mut x95: fiat_p384_scalar_u1 = 0;
+     let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x81, x85);
+-    let mut x96: u64 = 0;
+-    let mut x97: fiat_p384_scalar_u1 = 0;
+     let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x83, x85);
+-    let mut x98: u64 = 0;
+     let (x98) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[0]), x86);
+-    let mut x99: u64 = 0;
+     let (x99) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[1]), x88);
+-    let mut x100: u64 = 0;
+     let (x100) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[2]), x90);
+-    let mut x101: u64 = 0;
+     let (x101) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[3]), x92);
+-    let mut x102: u64 = 0;
+     let (x102) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[4]), x94);
+-    let mut x103: u64 = 0;
+     let (x103) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[5]), x96);
+     let x104: fiat_p384_scalar_u1 = ((x28 & 0x1_u64) as fiat_p384_scalar_u1);
+-    let mut x105: u64 = 0;
+     let (x105) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x7);
+-    let mut x106: u64 = 0;
+     let (x106) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x8);
+-    let mut x107: u64 = 0;
+     let (x107) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x9);
+-    let mut x108: u64 = 0;
+     let (x108) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x10);
+-    let mut x109: u64 = 0;
+     let (x109) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x11);
+-    let mut x110: u64 = 0;
+     let (x110) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x12);
+-    let mut x111: u64 = 0;
+     let (x111) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x13);
+-    let mut x112: u64 = 0;
+-    let mut x113: fiat_p384_scalar_u1 = 0;
+     let (x112, x113) = fiat_p384_scalar_addcarryx_u64(0x0, x28, x105);
+-    let mut x114: u64 = 0;
+-    let mut x115: fiat_p384_scalar_u1 = 0;
+     let (x114, x115) = fiat_p384_scalar_addcarryx_u64(x113, x29, x106);
+-    let mut x116: u64 = 0;
+-    let mut x117: fiat_p384_scalar_u1 = 0;
+     let (x116, x117) = fiat_p384_scalar_addcarryx_u64(x115, x30, x107);
+-    let mut x118: u64 = 0;
+-    let mut x119: fiat_p384_scalar_u1 = 0;
+     let (x118, x119) = fiat_p384_scalar_addcarryx_u64(x117, x31, x108);
+-    let mut x120: u64 = 0;
+-    let mut x121: fiat_p384_scalar_u1 = 0;
+     let (x120, x121) = fiat_p384_scalar_addcarryx_u64(x119, x32, x109);
+-    let mut x122: u64 = 0;
+-    let mut x123: fiat_p384_scalar_u1 = 0;
+     let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x33, x110);
+-    let mut x124: u64 = 0;
+-    let mut x125: fiat_p384_scalar_u1 = 0;
+     let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x34, x111);
+-    let mut x126: u64 = 0;
+     let (x126) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x35);
+-    let mut x127: u64 = 0;
+     let (x127) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x36);
+-    let mut x128: u64 = 0;
+     let (x128) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x37);
+-    let mut x129: u64 = 0;
+     let (x129) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x38);
+-    let mut x130: u64 = 0;
+     let (x130) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x39);
+-    let mut x131: u64 = 0;
+     let (x131) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x40);
+-    let mut x132: u64 = 0;
+-    let mut x133: fiat_p384_scalar_u1 = 0;
+     let (x132, x133) = fiat_p384_scalar_addcarryx_u64(0x0, x98, x126);
+-    let mut x134: u64 = 0;
+-    let mut x135: fiat_p384_scalar_u1 = 0;
+     let (x134, x135) = fiat_p384_scalar_addcarryx_u64(x133, x99, x127);
+-    let mut x136: u64 = 0;
+-    let mut x137: fiat_p384_scalar_u1 = 0;
+     let (x136, x137) = fiat_p384_scalar_addcarryx_u64(x135, x100, x128);
+-    let mut x138: u64 = 0;
+-    let mut x139: fiat_p384_scalar_u1 = 0;
+     let (x138, x139) = fiat_p384_scalar_addcarryx_u64(x137, x101, x129);
+-    let mut x140: u64 = 0;
+-    let mut x141: fiat_p384_scalar_u1 = 0;
+     let (x140, x141) = fiat_p384_scalar_addcarryx_u64(x139, x102, x130);
+-    let mut x142: u64 = 0;
+-    let mut x143: fiat_p384_scalar_u1 = 0;
+     let (x142, x143) = fiat_p384_scalar_addcarryx_u64(x141, x103, x131);
+-    let mut x144: u64 = 0;
+-    let mut x145: fiat_p384_scalar_u1 = 0;
+     let (x144, x145) = fiat_p384_scalar_subborrowx_u64(0x0, x132, 0xecec196accc52973);
+-    let mut x146: u64 = 0;
+-    let mut x147: fiat_p384_scalar_u1 = 0;
+     let (x146, x147) = fiat_p384_scalar_subborrowx_u64(x145, x134, 0x581a0db248b0a77a);
+-    let mut x148: u64 = 0;
+-    let mut x149: fiat_p384_scalar_u1 = 0;
+     let (x148, x149) = fiat_p384_scalar_subborrowx_u64(x147, x136, 0xc7634d81f4372ddf);
+-    let mut x150: u64 = 0;
+-    let mut x151: fiat_p384_scalar_u1 = 0;
+     let (x150, x151) = fiat_p384_scalar_subborrowx_u64(x149, x138, 0xffffffffffffffff);
+-    let mut x152: u64 = 0;
+-    let mut x153: fiat_p384_scalar_u1 = 0;
+     let (x152, x153) = fiat_p384_scalar_subborrowx_u64(x151, x140, 0xffffffffffffffff);
+-    let mut x154: u64 = 0;
+-    let mut x155: fiat_p384_scalar_u1 = 0;
+     let (x154, x155) = fiat_p384_scalar_subborrowx_u64(x153, x142, 0xffffffffffffffff);
+-    let mut x156: u64 = 0;
+-    let mut x157: fiat_p384_scalar_u1 = 0;
+     let (x156, x157) = fiat_p384_scalar_subborrowx_u64(x155, (x143 as u64), 0x0_u64);
+-    let mut x158: u64 = 0;
+-    let mut x159: fiat_p384_scalar_u1 = 0;
+     let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x6, 0x1_u64);
+     let x160: u64 = ((x112 >> 1) | ((x114 << 63) & 0xffffffffffffffff));
+     let x161: u64 = ((x114 >> 1) | ((x116 << 63) & 0xffffffffffffffff));
+@@ -3727,29 +1840,17 @@ pub const fn fiat_p384_scalar_divstep(
+     let x164: u64 = ((x120 >> 1) | ((x122 << 63) & 0xffffffffffffffff));
+     let x165: u64 = ((x122 >> 1) | ((x124 << 63) & 0xffffffffffffffff));
+     let x166: u64 = ((x124 & 0x8000000000000000) | (x124 >> 1));
+-    let mut x167: u64 = 0;
+     let (x167) = fiat_p384_scalar_cmovznz_u64(x66, x53, x41);
+-    let mut x168: u64 = 0;
+     let (x168) = fiat_p384_scalar_cmovznz_u64(x66, x55, x43);
+-    let mut x169: u64 = 0;
+     let (x169) = fiat_p384_scalar_cmovznz_u64(x66, x57, x45);
+-    let mut x170: u64 = 0;
+     let (x170) = fiat_p384_scalar_cmovznz_u64(x66, x59, x47);
+-    let mut x171: u64 = 0;
+     let (x171) = fiat_p384_scalar_cmovznz_u64(x66, x61, x49);
+-    let mut x172: u64 = 0;
+     let (x172) = fiat_p384_scalar_cmovznz_u64(x66, x63, x51);
+-    let mut x173: u64 = 0;
+     let (x173) = fiat_p384_scalar_cmovznz_u64(x157, x144, x132);
+-    let mut x174: u64 = 0;
+     let (x174) = fiat_p384_scalar_cmovznz_u64(x157, x146, x134);
+-    let mut x175: u64 = 0;
+     let (x175) = fiat_p384_scalar_cmovznz_u64(x157, x148, x136);
+-    let mut x176: u64 = 0;
+     let (x176) = fiat_p384_scalar_cmovznz_u64(x157, x150, x138);
+-    let mut x177: u64 = 0;
+     let (x177) = fiat_p384_scalar_cmovznz_u64(x157, x152, x140);
+-    let mut x178: u64 = 0;
+     let (x178) = fiat_p384_scalar_cmovznz_u64(x157, x154, x142);
+     out1 = x158;
+     out2[0] = x7;
+diff --git a/vendor/p384-0.13.0/.cargo-checksum.json b/vendor/p384-0.13.0/.cargo-checksum.json
+index bfe8100..ff6b302 100644
+--- a/vendor/p384-0.13.0/.cargo-checksum.json
++++ b/vendor/p384-0.13.0/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CHANGELOG.md":"437651cc0a2e69f8edea9f1eaeebd00853e0d58efaf7f4d8cb37627fb7aa9d2e","Cargo.toml":"22f8fe1d0243a3f68bafe2c3796c5342fd3a8036d9680f4936d42a8e47a18e64","LICENSE-APACHE":"a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5","LICENSE-MIT":"02168781a5b59970e3da1784d2eb69f432598a3757f283dbffdafd9d483a9113","README.md":"6d01d27444638c939a075b91ab5b61bbd5da1b82495cb14058f77166a3a5ea8a","benches/field.rs":"54c4b208e912df33c8d4d5cd7cbdca1eee74af0947efa5ec28ae9af6c89c9f64","benches/scalar.rs":"78918113cfc3b95c482b559e1b1bbebd2a57773c016a5297ede9f0d7ed510d75","src/arithmetic.rs":"c002a95cff8864bbc020684a3a77db0fa051526813c2518e1126b0662e8f5e63","src/arithmetic/field.rs":"2312dcd61fec0efa21ccfc415ad11902a21f9187bfbb5f5fd554cb020295249b","src/arithmetic/field/p384_32.rs":"0ecd16551d7730ea853e37492b6da25b241a2cf066bd0c9828352af9d0f41044","src/arithmetic/field/p384_64.rs":"e71f4e552d3ec4e1bfce63b4229b8c73fb3e02a238aa9ed7fd2f97390336ba34","src/arithmetic/hash2curve.rs":"7f832745e5d88b10341e6f30c6d67086c8a459029a7dbb8dee674c4ca36eebd6","src/arithmetic/macros.rs":"31dc0d8a146d05146075a6f4a5926473685b997484fb22fc04d2902ff3cf2b57","src/arithmetic/scalar.rs":"60d673ae33c06f17a6d32073f747dee51eb478d253c40dda49270490e17651a7","src/arithmetic/scalar/p384_scalar_32.rs":"bb1839c7a1ba68855d358f44db07b067ccc83ca5d7d28d3b8b15b1408dc28f81","src/arithmetic/scalar/p384_scalar_64.rs":"6e7a5d23609003ca109881f17d36ee4c775e4006713afd727c4ad6c32e4da207","src/ecdh.rs":"bb12ec4da320e90c31ac5a508586acb9cf0235c267d4f1dffd0bfe1032e193fa","src/ecdsa.rs":"4e6cf2ece8264f7c8d72b5bc27a6ffe66aec75c37eb27e0b2a53938ccf4735a7","src/lib.rs":"d3015d5d4c727be874e0062e0203abf18fa1041ba8c877fb6be5a84e95f57f0c","src/test_vectors.rs":"bf003ed537b66c01d30335035a1e5a2fe50a8fb0ae8b3061cc0ad6de86aceb45","src/test_vectors/data/wycheproof.blb":"d4918982427a6fe9a98c48a03bc6a414077da3599c6f9a5f967a6ff7814a3b49","src/test_vectors/ecdsa.rs":"595dae618074b5957c763a84846a8c3ff22083e4c223649590f0174766b8759b","src/test_vectors/group.rs":"60d64a2b9b81aa6c7f15771f55e51bbc099281da65cd7611a33ee95ff9fb3ee9","tests/affine.rs":"832877faa0741957ea774ab52d572041c625694f2161b497c83160e2f4a28e6f","tests/projective.rs":"8d507cdd37524f9859ec8daa1579d9c11a41aad891b820550b626533f5b05b7c"},"package":"70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"}
+\ No newline at end of file
++{"files":{"CHANGELOG.md":"437651cc0a2e69f8edea9f1eaeebd00853e0d58efaf7f4d8cb37627fb7aa9d2e","Cargo.toml":"22f8fe1d0243a3f68bafe2c3796c5342fd3a8036d9680f4936d42a8e47a18e64","LICENSE-APACHE":"a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5","LICENSE-MIT":"02168781a5b59970e3da1784d2eb69f432598a3757f283dbffdafd9d483a9113","README.md":"6d01d27444638c939a075b91ab5b61bbd5da1b82495cb14058f77166a3a5ea8a","benches/field.rs":"54c4b208e912df33c8d4d5cd7cbdca1eee74af0947efa5ec28ae9af6c89c9f64","benches/scalar.rs":"78918113cfc3b95c482b559e1b1bbebd2a57773c016a5297ede9f0d7ed510d75","src/arithmetic.rs":"c002a95cff8864bbc020684a3a77db0fa051526813c2518e1126b0662e8f5e63","src/arithmetic/field.rs":"2312dcd61fec0efa21ccfc415ad11902a21f9187bfbb5f5fd554cb020295249b","src/arithmetic/field/p384_32.rs":"1def90836f25537e2805986677c81c81fe834d40b797e33ea731164e2d8f45d1","src/arithmetic/field/p384_64.rs":"9bcaf6827ff73466ad7f7ba39a293496f90d56bb02da5fe89a89da113749114e","src/arithmetic/hash2curve.rs":"7f832745e5d88b10341e6f30c6d67086c8a459029a7dbb8dee674c4ca36eebd6","src/arithmetic/macros.rs":"31dc0d8a146d05146075a6f4a5926473685b997484fb22fc04d2902ff3cf2b57","src/arithmetic/scalar.rs":"60d673ae33c06f17a6d32073f747dee51eb478d253c40dda49270490e17651a7","src/arithmetic/scalar/p384_scalar_32.rs":"58ee4d399abef049e60b3c4a3b93d2b55a06be7445ee9b093525a7d7044d1665","src/arithmetic/scalar/p384_scalar_64.rs":"95e7dca27530c0ec8fd603b3b11b63fd2e24856de037fb95fe5a87c4135429a3","src/ecdh.rs":"bb12ec4da320e90c31ac5a508586acb9cf0235c267d4f1dffd0bfe1032e193fa","src/ecdsa.rs":"4e6cf2ece8264f7c8d72b5bc27a6ffe66aec75c37eb27e0b2a53938ccf4735a7","src/lib.rs":"d3015d5d4c727be874e0062e0203abf18fa1041ba8c877fb6be5a84e95f57f0c","src/test_vectors.rs":"bf003ed537b66c01d30335035a1e5a2fe50a8fb0ae8b3061cc0ad6de86aceb45","src/test_vectors/data/wycheproof.blb":"d4918982427a6fe9a98c48a03bc6a414077da3599c6f9a5f967a6ff7814a3b49","src/test_vectors/ecdsa.rs":"595dae618074b5957c763a84846a8c3ff22083e4c223649590f0174766b8759b","src/test_vectors/group.rs":"60d64a2b9b81aa6c7f15771f55e51bbc099281da65cd7611a33ee95ff9fb3ee9","tests/affine.rs":"832877faa0741957ea774ab52d572041c625694f2161b497c83160e2f4a28e6f","tests/projective.rs":"8d507cdd37524f9859ec8daa1579d9c11a41aad891b820550b626533f5b05b7c"},"package":"70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"}
diff --git a/recipes-devtools/rust/rust-source.inc b/recipes-devtools/rust/rust-source.inc
index 177de53..f859bf0 100644
--- a/recipes-devtools/rust/rust-source.inc
+++ b/recipes-devtools/rust/rust-source.inc
@@ -9,6 +9,7 @@  SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
             file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
             file://Zdual-proc-macros-additional-check.patch;patchdir=${RUSTSRC} \
             file://0001-libunwind-Use-gcs-instead-of-gcs-target-attribute.patch;patchdir=${RUSTSRC} \
+            file://p384_crate.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "b1fbf809efe9f036939401e142631c201a53bcf43ec1696bd9f5290ba236a266"