diff options
author | Jason Gross <jgross@mit.edu> | 2018-07-20 12:51:16 -0400 |
---|---|---|
committer | Jason Gross <jasongross9@gmail.com> | 2018-07-21 03:47:14 +0100 |
commit | 13aca43ad47253e5ea6acb7acd1ee7d8c92ae0dd (patch) | |
tree | ec761ad8f4f35e1efbb2745fde10740aac0f677d | |
parent | 875789c7756941296306b6781142f62d0d5e5fbe (diff) |
Add some primes to be synthesized
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | Makefile | 64 | ||||
-rw-r--r-- | p224_32.c | 2790 | ||||
-rw-r--r-- | p224_64.c | 1329 | ||||
-rw-r--r-- | p256_32.c | 247 | ||||
-rw-r--r-- | p256_64.c | 183 | ||||
-rw-r--r-- | p384_32.c | 7566 | ||||
-rw-r--r-- | p384_64.c | 2585 | ||||
-rw-r--r-- | p521_32.c | 1524 | ||||
-rw-r--r-- | p521_64.c | 912 | ||||
-rw-r--r-- | secp256k1_32.c | 4023 | ||||
-rw-r--r-- | secp256k1_64.c | 1401 |
12 files changed, 22377 insertions, 251 deletions
diff --git a/.travis.yml b/.travis.yml index de21f52bb..58c9f29fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -124,10 +124,10 @@ jobs: - stage: standalone-ocaml env: COQ_VERSION="8.8.0" COQ_PACKAGE="coq-8.8.0" PPA="ppa:jgross-h/many-coq-versions" - script: PREV=4 CUR=5 ./etc/ci/travis.sh standalone-ocaml c-files + script: PREV=4 CUR=5 ./etc/ci/travis.sh standalone-ocaml c-files test-c-files CC=gcc - stage: standalone-ocaml env: COQ_VERSION="8.7.2" COQ_PACKAGE="coq-8.7.2" PPA="ppa:jgross-h/many-coq-versions" - script: PREV=4 CUR=5 ./etc/ci/travis.sh standalone-ocaml c-files + script: PREV=4 CUR=5 ./etc/ci/travis.sh standalone-ocaml c-files test-c-files CC=gcc # - stage: selected-test selected-bench # env: COQ_VERSION="8.8.0" COQ_PACKAGE="coq-8.8.0" PPA="ppa:jgross-h/many-coq-versions" @@ -6,6 +6,9 @@ TIMED?= TIMECMD?= STDTIME?=/usr/bin/time -f "$* (real: %e, user: %U, sys: %S, mem: %M ko)" TIMER=$(if $(TIMED), $(STDTIME), $(TIMECMD)) +TIMECMD_FULL?= +STDTIME_FULL?=/usr/bin/time -f "$@ (real: %e, user: %U, sys: %S, mem: %M ko)" +TIMER_FULL=$(if $(TIMED), $(STDTIME_FULL), $(TIMECMD_FULL)) GHC?=ghc GHCFLAGS?= # -XStrict @@ -30,7 +33,7 @@ INSTALLDEFAULTROOT := Crypto SORT_COQPROJECT = sed 's,[^/]*/,~&,g' | env LC_COLLATE=C sort | sed 's,~,,g' | uniq FAST_TARGETS += archclean clean cleanall clean-coqprime printenv clean-old update-_CoqProject regenerate-curves Makefile.coq -SUPER_FAST_TARGETS += update-_CoqProject Makefile.coq regenerate-curves +SUPER_FAST_TARGETS += update-_CoqProject Makefile.coq regenerate-curves only-test-c-files SLOW := ifneq ($(filter-out $(SUPER_FAST_TARGETS),$(MAKECMDGOALS)),) @@ -500,27 +503,70 @@ standalone: standalone-haskell standalone-ocaml standalone-haskell: $(STANDALONE:%=src/Experiments/NewPipeline/ExtractionHaskell/%) standalone-ocaml: $(STANDALONE:%=src/Experiments/NewPipeline/ExtractionOCaml/%) -UNSATURATED_SOLINAS_C_FILES := curve25519_64.c curve25519_32.c -WORD_BY_WORD_MONTGOMERY_C_FILES := p256_64.c p256_32.c +UNSATURATED_SOLINAS_C_FILES := curve25519_64.c curve25519_32.c p521_64.c p521_32.c # p224_solinas_64.c +WORD_BY_WORD_MONTGOMERY_C_FILES := p256_64.c p256_32.c p384_64.c p384_32.c secp256k1_64.c secp256k1_32.c p224_64.c p224_32.c FUNCTIONS_FOR_25519 := carry_mul carry_square carry_scmul121666 carry add sub opp selectznz to_bytes from_bytes UNSATURATED_SOLINAS := src/Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas WORD_BY_WORD_MONTGOMERY := src/Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery +ALL_C_FILES := $(UNSATURATED_SOLINAS_C_FILES) $(WORD_BY_WORD_MONTGOMERY_C_FILES) .PHONY: c-files -c-files: $(UNSATURATED_SOLINAS_C_FILES) $(WORD_BY_WORD_MONTGOMERY_C_FILES) +c-files: $(ALL_C_FILES) -$(UNSATURATED_SOLINAS_C_FILES): $(UNSATURATED_SOLINAS) +$(UNSATURATED_SOLINAS_C_FILES): $(UNSATURATED_SOLINAS) # Makefile -$(WORD_BY_WORD_MONTGOMERY_C_FILES): $(WORD_BY_WORD_MONTGOMERY) +$(WORD_BY_WORD_MONTGOMERY_C_FILES): $(WORD_BY_WORD_MONTGOMERY) # Makefile +# 2^255 - 19 curve25519_64.c: - $(UNSATURATED_SOLINAS) '25519' '5' '2^255' '1,19' '64' $(FUNCTIONS_FOR_25519) > $@ + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(UNSATURATED_SOLINAS) '25519' '5' '2^255' '1,19' '64' $(FUNCTIONS_FOR_25519) > $@ +# 2^255 - 19 curve25519_32.c: - $(UNSATURATED_SOLINAS) '25519' '10' '2^255' '1,19' '32' $(FUNCTIONS_FOR_25519) > $@ + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(UNSATURATED_SOLINAS) '25519' '10' '2^255' '1,19' '32' $(FUNCTIONS_FOR_25519) > $@ + +# 2^521 - 1 +p521_64.c: + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(UNSATURATED_SOLINAS) 'p521' '9' '2^521' '1,1' '64' > $@ + +# 2^521 - 1 +p521_32.c: + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(UNSATURATED_SOLINAS) 'p521' '17' '2^521' '1,1' '32' > $@ + +## 2^224 - 2^96 + 1 ## does not bounds check +#p224_solinas_64.c: +# $(SHOW)'SYNTHESIZE > $@' +# $(HIDE)$(TIMER_FULL) $(UNSATURATED_SOLINAS) 'p224' '4' '2^224' '2^96,1;1,-1' '64' > $@ # 2^256 - 2^224 + 2^192 + 2^96 - 1 p256_64.c p256_32.c : p256_%.c : - $(WORD_BY_WORD_MONTGOMERY) 'p256' '2^256' '2^224,1;2^192,-1;2^96,-1;1,1' '$*' > $@ + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(WORD_BY_WORD_MONTGOMERY) 'p256' '2^256' '2^224,1;2^192,-1;2^96,-1;1,1' '$*' > $@ + +# 2^256 - 2^32 - 977 +secp256k1_64.c secp256k1_32.c : secp256k1_%.c : + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(WORD_BY_WORD_MONTGOMERY) 'secp256k1' '2^256' '2^32,1;1,977' '$*' > $@ + +# 2^384 - 2^128 - 2^96 + 2^32 - 1 +p384_64.c p384_32.c : p384_%.c : + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(WORD_BY_WORD_MONTGOMERY) 'p384' '2^384' '2^128,1;2^96,1;2^32,-1;1,1' '$*' > $@ + +# 2^224 - 2^96 + 1 +p224_64.c p224_32.c : p224_%.c : + $(SHOW)'SYNTHESIZE > $@' + $(HIDE)$(TIMER_FULL) $(WORD_BY_WORD_MONTGOMERY) 'p224' '2^224' '2^96,1;1,-1' '$*' > $@ + +CFLAGS?= +.PHONY: only-test-c-files test-c-files +only-test-c-files test-c-files: + $(CC) -Wall -Wno-unused-function -Werror $(CFLAGS) -c $(ALL_C_FILES) + +test-c-files: $(ALL_C_FILES) clean:: rm -f Makefile.coq remake_curves.log src/Specific/.autgenerated-deps diff --git a/p224_32.c b/p224_32.c new file mode 100644 index 000000000..5078e8a6e --- /dev/null +++ b/p224_32.c @@ -0,0 +1,2790 @@ +/* Autogenerated */ +/* curve description: p224 */ +/* requested operations: (all) */ +/* s = 0x100000000000000000000000000000000000000000000000000000000 (from "2^224") */ +/* c = [(79228162514264337593543950336, 1), (1, -1)] (from "2^96,1;1,-1") */ +/* machine_wordsize = 32 (from "32") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ + +#include <stdint.h> +typedef unsigned char fiat_p224_uint1; +typedef signed char fiat_p224_int1; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p224_addcarryx_u32(uint32_t* out1, fiat_p224_uint1* out2, fiat_p224_uint1 arg1, uint32_t arg2, uint32_t arg3) { + uint64_t x1 = ((arg1 + (uint64_t)arg2) + arg3); + uint32_t x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + fiat_p224_uint1 x3 = (fiat_p224_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p224_subborrowx_u32(uint32_t* out1, fiat_p224_uint1* out2, fiat_p224_uint1 arg1, uint32_t arg2, uint32_t arg3) { + int64_t x1 = ((arg2 - (int64_t)arg1) - arg3); + fiat_p224_int1 x2 = (fiat_p224_int1)((uint64_t)x1 >> 32); + uint32_t x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_p224_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_p224_mulx_u32(uint32_t* out1, uint32_t* out2, uint32_t arg1, uint32_t arg2) { + uint64_t x1 = ((uint64_t)arg1 * arg2); + uint32_t x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + uint32_t x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_p224_cmovznz_u32(uint32_t* out1, fiat_p224_uint1 arg1, uint32_t arg2, uint32_t arg3) { + fiat_p224_uint1 x1 = (!(!arg1)); + uint32_t x2 = ((fiat_p224_int1)(0x0 - x1) & UINT32_C(0xffffffff)); + uint32_t x3 = ((x2 & arg3) | (uint32_t)((uint64_t)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_mul(uint32_t out1[7], const uint32_t arg1[7], const uint32_t arg2[7]) { + uint32_t x1 = (arg1[1]); + uint32_t x2 = (arg1[2]); + uint32_t x3 = (arg1[3]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[5]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[0]); + uint32_t x8; + uint32_t x9; + fiat_p224_mulx_u32(&x8, &x9, x7, (arg2[6])); + uint32_t x10; + uint32_t x11; + fiat_p224_mulx_u32(&x10, &x11, x7, (arg2[5])); + uint32_t x12; + uint32_t x13; + fiat_p224_mulx_u32(&x12, &x13, x7, (arg2[4])); + uint32_t x14; + uint32_t x15; + fiat_p224_mulx_u32(&x14, &x15, x7, (arg2[3])); + uint32_t x16; + uint32_t x17; + fiat_p224_mulx_u32(&x16, &x17, x7, (arg2[2])); + uint32_t x18; + uint32_t x19; + fiat_p224_mulx_u32(&x18, &x19, x7, (arg2[1])); + uint32_t x20; + uint32_t x21; + fiat_p224_mulx_u32(&x20, &x21, x7, (arg2[0])); + uint32_t x22; + fiat_p224_uint1 x23; + fiat_p224_addcarryx_u32(&x22, &x23, 0x0, x18, x21); + uint32_t x24; + fiat_p224_uint1 x25; + fiat_p224_addcarryx_u32(&x24, &x25, x23, x16, x19); + uint32_t x26; + fiat_p224_uint1 x27; + fiat_p224_addcarryx_u32(&x26, &x27, x25, x14, x17); + uint32_t x28; + fiat_p224_uint1 x29; + fiat_p224_addcarryx_u32(&x28, &x29, x27, x12, x15); + uint32_t x30; + fiat_p224_uint1 x31; + fiat_p224_addcarryx_u32(&x30, &x31, x29, x10, x13); + uint32_t x32; + fiat_p224_uint1 x33; + fiat_p224_addcarryx_u32(&x32, &x33, x31, x8, x11); + uint32_t x34; + fiat_p224_uint1 x35; + fiat_p224_addcarryx_u32(&x34, &x35, x33, 0x0, x9); + uint32_t x36; + uint32_t x37; + fiat_p224_mulx_u32(&x36, &x37, x20, UINT32_C(0xffffffff)); + uint32_t x38; + uint32_t x39; + fiat_p224_mulx_u32(&x38, &x39, x36, UINT32_C(0xffffffff)); + uint32_t x40; + uint32_t x41; + fiat_p224_mulx_u32(&x40, &x41, x36, UINT32_C(0xffffffff)); + uint32_t x42; + uint32_t x43; + fiat_p224_mulx_u32(&x42, &x43, x36, UINT32_C(0xffffffff)); + uint32_t x44; + uint32_t x45; + fiat_p224_mulx_u32(&x44, &x45, x36, UINT32_C(0xffffffff)); + uint32_t x46; + fiat_p224_uint1 x47; + fiat_p224_addcarryx_u32(&x46, &x47, 0x0, x42, x45); + uint32_t x48; + fiat_p224_uint1 x49; + fiat_p224_addcarryx_u32(&x48, &x49, x47, x40, x43); + uint32_t x50; + fiat_p224_uint1 x51; + fiat_p224_addcarryx_u32(&x50, &x51, x49, x38, x41); + uint32_t x52; + fiat_p224_uint1 x53; + fiat_p224_addcarryx_u32(&x52, &x53, x51, 0x0, x39); + uint32_t x54; + fiat_p224_uint1 x55; + fiat_p224_addcarryx_u32(&x54, &x55, 0x0, x36, x20); + uint32_t x56; + fiat_p224_uint1 x57; + fiat_p224_addcarryx_u32(&x56, &x57, x55, 0x0, x22); + uint32_t x58; + fiat_p224_uint1 x59; + fiat_p224_addcarryx_u32(&x58, &x59, x57, 0x0, x24); + uint32_t x60; + fiat_p224_uint1 x61; + fiat_p224_addcarryx_u32(&x60, &x61, x59, x44, x26); + uint32_t x62; + fiat_p224_uint1 x63; + fiat_p224_addcarryx_u32(&x62, &x63, x61, x46, x28); + uint32_t x64; + fiat_p224_uint1 x65; + fiat_p224_addcarryx_u32(&x64, &x65, x63, x48, x30); + uint32_t x66; + fiat_p224_uint1 x67; + fiat_p224_addcarryx_u32(&x66, &x67, x65, x50, x32); + uint32_t x68; + fiat_p224_uint1 x69; + fiat_p224_addcarryx_u32(&x68, &x69, x67, x52, x34); + uint32_t x70; + fiat_p224_uint1 x71; + fiat_p224_addcarryx_u32(&x70, &x71, x69, 0x0, 0x0); + uint32_t x72; + uint32_t x73; + fiat_p224_mulx_u32(&x72, &x73, x1, (arg2[6])); + uint32_t x74; + uint32_t x75; + fiat_p224_mulx_u32(&x74, &x75, x1, (arg2[5])); + uint32_t x76; + uint32_t x77; + fiat_p224_mulx_u32(&x76, &x77, x1, (arg2[4])); + uint32_t x78; + uint32_t x79; + fiat_p224_mulx_u32(&x78, &x79, x1, (arg2[3])); + uint32_t x80; + uint32_t x81; + fiat_p224_mulx_u32(&x80, &x81, x1, (arg2[2])); + uint32_t x82; + uint32_t x83; + fiat_p224_mulx_u32(&x82, &x83, x1, (arg2[1])); + uint32_t x84; + uint32_t x85; + fiat_p224_mulx_u32(&x84, &x85, x1, (arg2[0])); + uint32_t x86; + fiat_p224_uint1 x87; + fiat_p224_addcarryx_u32(&x86, &x87, 0x0, x82, x85); + uint32_t x88; + fiat_p224_uint1 x89; + fiat_p224_addcarryx_u32(&x88, &x89, x87, x80, x83); + uint32_t x90; + fiat_p224_uint1 x91; + fiat_p224_addcarryx_u32(&x90, &x91, x89, x78, x81); + uint32_t x92; + fiat_p224_uint1 x93; + fiat_p224_addcarryx_u32(&x92, &x93, x91, x76, x79); + uint32_t x94; + fiat_p224_uint1 x95; + fiat_p224_addcarryx_u32(&x94, &x95, x93, x74, x77); + uint32_t x96; + fiat_p224_uint1 x97; + fiat_p224_addcarryx_u32(&x96, &x97, x95, x72, x75); + uint32_t x98; + fiat_p224_uint1 x99; + fiat_p224_addcarryx_u32(&x98, &x99, x97, 0x0, x73); + uint32_t x100; + fiat_p224_uint1 x101; + fiat_p224_addcarryx_u32(&x100, &x101, 0x0, x84, x56); + uint32_t x102; + fiat_p224_uint1 x103; + fiat_p224_addcarryx_u32(&x102, &x103, x101, x86, x58); + uint32_t x104; + fiat_p224_uint1 x105; + fiat_p224_addcarryx_u32(&x104, &x105, x103, x88, x60); + uint32_t x106; + fiat_p224_uint1 x107; + fiat_p224_addcarryx_u32(&x106, &x107, x105, x90, x62); + uint32_t x108; + fiat_p224_uint1 x109; + fiat_p224_addcarryx_u32(&x108, &x109, x107, x92, x64); + uint32_t x110; + fiat_p224_uint1 x111; + fiat_p224_addcarryx_u32(&x110, &x111, x109, x94, x66); + uint32_t x112; + fiat_p224_uint1 x113; + fiat_p224_addcarryx_u32(&x112, &x113, x111, x96, x68); + uint32_t x114; + fiat_p224_uint1 x115; + fiat_p224_addcarryx_u32(&x114, &x115, x113, x98, (fiat_p224_uint1)x70); + uint32_t x116; + uint32_t x117; + fiat_p224_mulx_u32(&x116, &x117, x100, UINT32_C(0xffffffff)); + uint32_t x118; + uint32_t x119; + fiat_p224_mulx_u32(&x118, &x119, x116, UINT32_C(0xffffffff)); + uint32_t x120; + uint32_t x121; + fiat_p224_mulx_u32(&x120, &x121, x116, UINT32_C(0xffffffff)); + uint32_t x122; + uint32_t x123; + fiat_p224_mulx_u32(&x122, &x123, x116, UINT32_C(0xffffffff)); + uint32_t x124; + uint32_t x125; + fiat_p224_mulx_u32(&x124, &x125, x116, UINT32_C(0xffffffff)); + uint32_t x126; + fiat_p224_uint1 x127; + fiat_p224_addcarryx_u32(&x126, &x127, 0x0, x122, x125); + uint32_t x128; + fiat_p224_uint1 x129; + fiat_p224_addcarryx_u32(&x128, &x129, x127, x120, x123); + uint32_t x130; + fiat_p224_uint1 x131; + fiat_p224_addcarryx_u32(&x130, &x131, x129, x118, x121); + uint32_t x132; + fiat_p224_uint1 x133; + fiat_p224_addcarryx_u32(&x132, &x133, x131, 0x0, x119); + uint32_t x134; + fiat_p224_uint1 x135; + fiat_p224_addcarryx_u32(&x134, &x135, 0x0, x116, x100); + uint32_t x136; + fiat_p224_uint1 x137; + fiat_p224_addcarryx_u32(&x136, &x137, x135, 0x0, x102); + uint32_t x138; + fiat_p224_uint1 x139; + fiat_p224_addcarryx_u32(&x138, &x139, x137, 0x0, x104); + uint32_t x140; + fiat_p224_uint1 x141; + fiat_p224_addcarryx_u32(&x140, &x141, x139, x124, x106); + uint32_t x142; + fiat_p224_uint1 x143; + fiat_p224_addcarryx_u32(&x142, &x143, x141, x126, x108); + uint32_t x144; + fiat_p224_uint1 x145; + fiat_p224_addcarryx_u32(&x144, &x145, x143, x128, x110); + uint32_t x146; + fiat_p224_uint1 x147; + fiat_p224_addcarryx_u32(&x146, &x147, x145, x130, x112); + uint32_t x148; + fiat_p224_uint1 x149; + fiat_p224_addcarryx_u32(&x148, &x149, x147, x132, x114); + uint32_t x150; + fiat_p224_uint1 x151; + fiat_p224_addcarryx_u32(&x150, &x151, x149, 0x0, x115); + uint32_t x152; + uint32_t x153; + fiat_p224_mulx_u32(&x152, &x153, x2, (arg2[6])); + uint32_t x154; + uint32_t x155; + fiat_p224_mulx_u32(&x154, &x155, x2, (arg2[5])); + uint32_t x156; + uint32_t x157; + fiat_p224_mulx_u32(&x156, &x157, x2, (arg2[4])); + uint32_t x158; + uint32_t x159; + fiat_p224_mulx_u32(&x158, &x159, x2, (arg2[3])); + uint32_t x160; + uint32_t x161; + fiat_p224_mulx_u32(&x160, &x161, x2, (arg2[2])); + uint32_t x162; + uint32_t x163; + fiat_p224_mulx_u32(&x162, &x163, x2, (arg2[1])); + uint32_t x164; + uint32_t x165; + fiat_p224_mulx_u32(&x164, &x165, x2, (arg2[0])); + uint32_t x166; + fiat_p224_uint1 x167; + fiat_p224_addcarryx_u32(&x166, &x167, 0x0, x162, x165); + uint32_t x168; + fiat_p224_uint1 x169; + fiat_p224_addcarryx_u32(&x168, &x169, x167, x160, x163); + uint32_t x170; + fiat_p224_uint1 x171; + fiat_p224_addcarryx_u32(&x170, &x171, x169, x158, x161); + uint32_t x172; + fiat_p224_uint1 x173; + fiat_p224_addcarryx_u32(&x172, &x173, x171, x156, x159); + uint32_t x174; + fiat_p224_uint1 x175; + fiat_p224_addcarryx_u32(&x174, &x175, x173, x154, x157); + uint32_t x176; + fiat_p224_uint1 x177; + fiat_p224_addcarryx_u32(&x176, &x177, x175, x152, x155); + uint32_t x178; + fiat_p224_uint1 x179; + fiat_p224_addcarryx_u32(&x178, &x179, x177, 0x0, x153); + uint32_t x180; + fiat_p224_uint1 x181; + fiat_p224_addcarryx_u32(&x180, &x181, 0x0, x164, x136); + uint32_t x182; + fiat_p224_uint1 x183; + fiat_p224_addcarryx_u32(&x182, &x183, x181, x166, x138); + uint32_t x184; + fiat_p224_uint1 x185; + fiat_p224_addcarryx_u32(&x184, &x185, x183, x168, x140); + uint32_t x186; + fiat_p224_uint1 x187; + fiat_p224_addcarryx_u32(&x186, &x187, x185, x170, x142); + uint32_t x188; + fiat_p224_uint1 x189; + fiat_p224_addcarryx_u32(&x188, &x189, x187, x172, x144); + uint32_t x190; + fiat_p224_uint1 x191; + fiat_p224_addcarryx_u32(&x190, &x191, x189, x174, x146); + uint32_t x192; + fiat_p224_uint1 x193; + fiat_p224_addcarryx_u32(&x192, &x193, x191, x176, x148); + uint32_t x194; + fiat_p224_uint1 x195; + fiat_p224_addcarryx_u32(&x194, &x195, x193, x178, x150); + uint32_t x196; + uint32_t x197; + fiat_p224_mulx_u32(&x196, &x197, x180, UINT32_C(0xffffffff)); + uint32_t x198; + uint32_t x199; + fiat_p224_mulx_u32(&x198, &x199, x196, UINT32_C(0xffffffff)); + uint32_t x200; + uint32_t x201; + fiat_p224_mulx_u32(&x200, &x201, x196, UINT32_C(0xffffffff)); + uint32_t x202; + uint32_t x203; + fiat_p224_mulx_u32(&x202, &x203, x196, UINT32_C(0xffffffff)); + uint32_t x204; + uint32_t x205; + fiat_p224_mulx_u32(&x204, &x205, x196, UINT32_C(0xffffffff)); + uint32_t x206; + fiat_p224_uint1 x207; + fiat_p224_addcarryx_u32(&x206, &x207, 0x0, x202, x205); + uint32_t x208; + fiat_p224_uint1 x209; + fiat_p224_addcarryx_u32(&x208, &x209, x207, x200, x203); + uint32_t x210; + fiat_p224_uint1 x211; + fiat_p224_addcarryx_u32(&x210, &x211, x209, x198, x201); + uint32_t x212; + fiat_p224_uint1 x213; + fiat_p224_addcarryx_u32(&x212, &x213, x211, 0x0, x199); + uint32_t x214; + fiat_p224_uint1 x215; + fiat_p224_addcarryx_u32(&x214, &x215, 0x0, x196, x180); + uint32_t x216; + fiat_p224_uint1 x217; + fiat_p224_addcarryx_u32(&x216, &x217, x215, 0x0, x182); + uint32_t x218; + fiat_p224_uint1 x219; + fiat_p224_addcarryx_u32(&x218, &x219, x217, 0x0, x184); + uint32_t x220; + fiat_p224_uint1 x221; + fiat_p224_addcarryx_u32(&x220, &x221, x219, x204, x186); + uint32_t x222; + fiat_p224_uint1 x223; + fiat_p224_addcarryx_u32(&x222, &x223, x221, x206, x188); + uint32_t x224; + fiat_p224_uint1 x225; + fiat_p224_addcarryx_u32(&x224, &x225, x223, x208, x190); + uint32_t x226; + fiat_p224_uint1 x227; + fiat_p224_addcarryx_u32(&x226, &x227, x225, x210, x192); + uint32_t x228; + fiat_p224_uint1 x229; + fiat_p224_addcarryx_u32(&x228, &x229, x227, x212, x194); + uint32_t x230; + fiat_p224_uint1 x231; + fiat_p224_addcarryx_u32(&x230, &x231, x229, 0x0, x195); + uint32_t x232; + uint32_t x233; + fiat_p224_mulx_u32(&x232, &x233, x3, (arg2[6])); + uint32_t x234; + uint32_t x235; + fiat_p224_mulx_u32(&x234, &x235, x3, (arg2[5])); + uint32_t x236; + uint32_t x237; + fiat_p224_mulx_u32(&x236, &x237, x3, (arg2[4])); + uint32_t x238; + uint32_t x239; + fiat_p224_mulx_u32(&x238, &x239, x3, (arg2[3])); + uint32_t x240; + uint32_t x241; + fiat_p224_mulx_u32(&x240, &x241, x3, (arg2[2])); + uint32_t x242; + uint32_t x243; + fiat_p224_mulx_u32(&x242, &x243, x3, (arg2[1])); + uint32_t x244; + uint32_t x245; + fiat_p224_mulx_u32(&x244, &x245, x3, (arg2[0])); + uint32_t x246; + fiat_p224_uint1 x247; + fiat_p224_addcarryx_u32(&x246, &x247, 0x0, x242, x245); + uint32_t x248; + fiat_p224_uint1 x249; + fiat_p224_addcarryx_u32(&x248, &x249, x247, x240, x243); + uint32_t x250; + fiat_p224_uint1 x251; + fiat_p224_addcarryx_u32(&x250, &x251, x249, x238, x241); + uint32_t x252; + fiat_p224_uint1 x253; + fiat_p224_addcarryx_u32(&x252, &x253, x251, x236, x239); + uint32_t x254; + fiat_p224_uint1 x255; + fiat_p224_addcarryx_u32(&x254, &x255, x253, x234, x237); + uint32_t x256; + fiat_p224_uint1 x257; + fiat_p224_addcarryx_u32(&x256, &x257, x255, x232, x235); + uint32_t x258; + fiat_p224_uint1 x259; + fiat_p224_addcarryx_u32(&x258, &x259, x257, 0x0, x233); + uint32_t x260; + fiat_p224_uint1 x261; + fiat_p224_addcarryx_u32(&x260, &x261, 0x0, x244, x216); + uint32_t x262; + fiat_p224_uint1 x263; + fiat_p224_addcarryx_u32(&x262, &x263, x261, x246, x218); + uint32_t x264; + fiat_p224_uint1 x265; + fiat_p224_addcarryx_u32(&x264, &x265, x263, x248, x220); + uint32_t x266; + fiat_p224_uint1 x267; + fiat_p224_addcarryx_u32(&x266, &x267, x265, x250, x222); + uint32_t x268; + fiat_p224_uint1 x269; + fiat_p224_addcarryx_u32(&x268, &x269, x267, x252, x224); + uint32_t x270; + fiat_p224_uint1 x271; + fiat_p224_addcarryx_u32(&x270, &x271, x269, x254, x226); + uint32_t x272; + fiat_p224_uint1 x273; + fiat_p224_addcarryx_u32(&x272, &x273, x271, x256, x228); + uint32_t x274; + fiat_p224_uint1 x275; + fiat_p224_addcarryx_u32(&x274, &x275, x273, x258, x230); + uint32_t x276; + uint32_t x277; + fiat_p224_mulx_u32(&x276, &x277, x260, UINT32_C(0xffffffff)); + uint32_t x278; + uint32_t x279; + fiat_p224_mulx_u32(&x278, &x279, x276, UINT32_C(0xffffffff)); + uint32_t x280; + uint32_t x281; + fiat_p224_mulx_u32(&x280, &x281, x276, UINT32_C(0xffffffff)); + uint32_t x282; + uint32_t x283; + fiat_p224_mulx_u32(&x282, &x283, x276, UINT32_C(0xffffffff)); + uint32_t x284; + uint32_t x285; + fiat_p224_mulx_u32(&x284, &x285, x276, UINT32_C(0xffffffff)); + uint32_t x286; + fiat_p224_uint1 x287; + fiat_p224_addcarryx_u32(&x286, &x287, 0x0, x282, x285); + uint32_t x288; + fiat_p224_uint1 x289; + fiat_p224_addcarryx_u32(&x288, &x289, x287, x280, x283); + uint32_t x290; + fiat_p224_uint1 x291; + fiat_p224_addcarryx_u32(&x290, &x291, x289, x278, x281); + uint32_t x292; + fiat_p224_uint1 x293; + fiat_p224_addcarryx_u32(&x292, &x293, x291, 0x0, x279); + uint32_t x294; + fiat_p224_uint1 x295; + fiat_p224_addcarryx_u32(&x294, &x295, 0x0, x276, x260); + uint32_t x296; + fiat_p224_uint1 x297; + fiat_p224_addcarryx_u32(&x296, &x297, x295, 0x0, x262); + uint32_t x298; + fiat_p224_uint1 x299; + fiat_p224_addcarryx_u32(&x298, &x299, x297, 0x0, x264); + uint32_t x300; + fiat_p224_uint1 x301; + fiat_p224_addcarryx_u32(&x300, &x301, x299, x284, x266); + uint32_t x302; + fiat_p224_uint1 x303; + fiat_p224_addcarryx_u32(&x302, &x303, x301, x286, x268); + uint32_t x304; + fiat_p224_uint1 x305; + fiat_p224_addcarryx_u32(&x304, &x305, x303, x288, x270); + uint32_t x306; + fiat_p224_uint1 x307; + fiat_p224_addcarryx_u32(&x306, &x307, x305, x290, x272); + uint32_t x308; + fiat_p224_uint1 x309; + fiat_p224_addcarryx_u32(&x308, &x309, x307, x292, x274); + uint32_t x310; + fiat_p224_uint1 x311; + fiat_p224_addcarryx_u32(&x310, &x311, x309, 0x0, x275); + uint32_t x312; + uint32_t x313; + fiat_p224_mulx_u32(&x312, &x313, x4, (arg2[6])); + uint32_t x314; + uint32_t x315; + fiat_p224_mulx_u32(&x314, &x315, x4, (arg2[5])); + uint32_t x316; + uint32_t x317; + fiat_p224_mulx_u32(&x316, &x317, x4, (arg2[4])); + uint32_t x318; + uint32_t x319; + fiat_p224_mulx_u32(&x318, &x319, x4, (arg2[3])); + uint32_t x320; + uint32_t x321; + fiat_p224_mulx_u32(&x320, &x321, x4, (arg2[2])); + uint32_t x322; + uint32_t x323; + fiat_p224_mulx_u32(&x322, &x323, x4, (arg2[1])); + uint32_t x324; + uint32_t x325; + fiat_p224_mulx_u32(&x324, &x325, x4, (arg2[0])); + uint32_t x326; + fiat_p224_uint1 x327; + fiat_p224_addcarryx_u32(&x326, &x327, 0x0, x322, x325); + uint32_t x328; + fiat_p224_uint1 x329; + fiat_p224_addcarryx_u32(&x328, &x329, x327, x320, x323); + uint32_t x330; + fiat_p224_uint1 x331; + fiat_p224_addcarryx_u32(&x330, &x331, x329, x318, x321); + uint32_t x332; + fiat_p224_uint1 x333; + fiat_p224_addcarryx_u32(&x332, &x333, x331, x316, x319); + uint32_t x334; + fiat_p224_uint1 x335; + fiat_p224_addcarryx_u32(&x334, &x335, x333, x314, x317); + uint32_t x336; + fiat_p224_uint1 x337; + fiat_p224_addcarryx_u32(&x336, &x337, x335, x312, x315); + uint32_t x338; + fiat_p224_uint1 x339; + fiat_p224_addcarryx_u32(&x338, &x339, x337, 0x0, x313); + uint32_t x340; + fiat_p224_uint1 x341; + fiat_p224_addcarryx_u32(&x340, &x341, 0x0, x324, x296); + uint32_t x342; + fiat_p224_uint1 x343; + fiat_p224_addcarryx_u32(&x342, &x343, x341, x326, x298); + uint32_t x344; + fiat_p224_uint1 x345; + fiat_p224_addcarryx_u32(&x344, &x345, x343, x328, x300); + uint32_t x346; + fiat_p224_uint1 x347; + fiat_p224_addcarryx_u32(&x346, &x347, x345, x330, x302); + uint32_t x348; + fiat_p224_uint1 x349; + fiat_p224_addcarryx_u32(&x348, &x349, x347, x332, x304); + uint32_t x350; + fiat_p224_uint1 x351; + fiat_p224_addcarryx_u32(&x350, &x351, x349, x334, x306); + uint32_t x352; + fiat_p224_uint1 x353; + fiat_p224_addcarryx_u32(&x352, &x353, x351, x336, x308); + uint32_t x354; + fiat_p224_uint1 x355; + fiat_p224_addcarryx_u32(&x354, &x355, x353, x338, x310); + uint32_t x356; + uint32_t x357; + fiat_p224_mulx_u32(&x356, &x357, x340, UINT32_C(0xffffffff)); + uint32_t x358; + uint32_t x359; + fiat_p224_mulx_u32(&x358, &x359, x356, UINT32_C(0xffffffff)); + uint32_t x360; + uint32_t x361; + fiat_p224_mulx_u32(&x360, &x361, x356, UINT32_C(0xffffffff)); + uint32_t x362; + uint32_t x363; + fiat_p224_mulx_u32(&x362, &x363, x356, UINT32_C(0xffffffff)); + uint32_t x364; + uint32_t x365; + fiat_p224_mulx_u32(&x364, &x365, x356, UINT32_C(0xffffffff)); + uint32_t x366; + fiat_p224_uint1 x367; + fiat_p224_addcarryx_u32(&x366, &x367, 0x0, x362, x365); + uint32_t x368; + fiat_p224_uint1 x369; + fiat_p224_addcarryx_u32(&x368, &x369, x367, x360, x363); + uint32_t x370; + fiat_p224_uint1 x371; + fiat_p224_addcarryx_u32(&x370, &x371, x369, x358, x361); + uint32_t x372; + fiat_p224_uint1 x373; + fiat_p224_addcarryx_u32(&x372, &x373, x371, 0x0, x359); + uint32_t x374; + fiat_p224_uint1 x375; + fiat_p224_addcarryx_u32(&x374, &x375, 0x0, x356, x340); + uint32_t x376; + fiat_p224_uint1 x377; + fiat_p224_addcarryx_u32(&x376, &x377, x375, 0x0, x342); + uint32_t x378; + fiat_p224_uint1 x379; + fiat_p224_addcarryx_u32(&x378, &x379, x377, 0x0, x344); + uint32_t x380; + fiat_p224_uint1 x381; + fiat_p224_addcarryx_u32(&x380, &x381, x379, x364, x346); + uint32_t x382; + fiat_p224_uint1 x383; + fiat_p224_addcarryx_u32(&x382, &x383, x381, x366, x348); + uint32_t x384; + fiat_p224_uint1 x385; + fiat_p224_addcarryx_u32(&x384, &x385, x383, x368, x350); + uint32_t x386; + fiat_p224_uint1 x387; + fiat_p224_addcarryx_u32(&x386, &x387, x385, x370, x352); + uint32_t x388; + fiat_p224_uint1 x389; + fiat_p224_addcarryx_u32(&x388, &x389, x387, x372, x354); + uint32_t x390; + fiat_p224_uint1 x391; + fiat_p224_addcarryx_u32(&x390, &x391, x389, 0x0, x355); + uint32_t x392; + uint32_t x393; + fiat_p224_mulx_u32(&x392, &x393, x5, (arg2[6])); + uint32_t x394; + uint32_t x395; + fiat_p224_mulx_u32(&x394, &x395, x5, (arg2[5])); + uint32_t x396; + uint32_t x397; + fiat_p224_mulx_u32(&x396, &x397, x5, (arg2[4])); + uint32_t x398; + uint32_t x399; + fiat_p224_mulx_u32(&x398, &x399, x5, (arg2[3])); + uint32_t x400; + uint32_t x401; + fiat_p224_mulx_u32(&x400, &x401, x5, (arg2[2])); + uint32_t x402; + uint32_t x403; + fiat_p224_mulx_u32(&x402, &x403, x5, (arg2[1])); + uint32_t x404; + uint32_t x405; + fiat_p224_mulx_u32(&x404, &x405, x5, (arg2[0])); + uint32_t x406; + fiat_p224_uint1 x407; + fiat_p224_addcarryx_u32(&x406, &x407, 0x0, x402, x405); + uint32_t x408; + fiat_p224_uint1 x409; + fiat_p224_addcarryx_u32(&x408, &x409, x407, x400, x403); + uint32_t x410; + fiat_p224_uint1 x411; + fiat_p224_addcarryx_u32(&x410, &x411, x409, x398, x401); + uint32_t x412; + fiat_p224_uint1 x413; + fiat_p224_addcarryx_u32(&x412, &x413, x411, x396, x399); + uint32_t x414; + fiat_p224_uint1 x415; + fiat_p224_addcarryx_u32(&x414, &x415, x413, x394, x397); + uint32_t x416; + fiat_p224_uint1 x417; + fiat_p224_addcarryx_u32(&x416, &x417, x415, x392, x395); + uint32_t x418; + fiat_p224_uint1 x419; + fiat_p224_addcarryx_u32(&x418, &x419, x417, 0x0, x393); + uint32_t x420; + fiat_p224_uint1 x421; + fiat_p224_addcarryx_u32(&x420, &x421, 0x0, x404, x376); + uint32_t x422; + fiat_p224_uint1 x423; + fiat_p224_addcarryx_u32(&x422, &x423, x421, x406, x378); + uint32_t x424; + fiat_p224_uint1 x425; + fiat_p224_addcarryx_u32(&x424, &x425, x423, x408, x380); + uint32_t x426; + fiat_p224_uint1 x427; + fiat_p224_addcarryx_u32(&x426, &x427, x425, x410, x382); + uint32_t x428; + fiat_p224_uint1 x429; + fiat_p224_addcarryx_u32(&x428, &x429, x427, x412, x384); + uint32_t x430; + fiat_p224_uint1 x431; + fiat_p224_addcarryx_u32(&x430, &x431, x429, x414, x386); + uint32_t x432; + fiat_p224_uint1 x433; + fiat_p224_addcarryx_u32(&x432, &x433, x431, x416, x388); + uint32_t x434; + fiat_p224_uint1 x435; + fiat_p224_addcarryx_u32(&x434, &x435, x433, x418, x390); + uint32_t x436; + uint32_t x437; + fiat_p224_mulx_u32(&x436, &x437, x420, UINT32_C(0xffffffff)); + uint32_t x438; + uint32_t x439; + fiat_p224_mulx_u32(&x438, &x439, x436, UINT32_C(0xffffffff)); + uint32_t x440; + uint32_t x441; + fiat_p224_mulx_u32(&x440, &x441, x436, UINT32_C(0xffffffff)); + uint32_t x442; + uint32_t x443; + fiat_p224_mulx_u32(&x442, &x443, x436, UINT32_C(0xffffffff)); + uint32_t x444; + uint32_t x445; + fiat_p224_mulx_u32(&x444, &x445, x436, UINT32_C(0xffffffff)); + uint32_t x446; + fiat_p224_uint1 x447; + fiat_p224_addcarryx_u32(&x446, &x447, 0x0, x442, x445); + uint32_t x448; + fiat_p224_uint1 x449; + fiat_p224_addcarryx_u32(&x448, &x449, x447, x440, x443); + uint32_t x450; + fiat_p224_uint1 x451; + fiat_p224_addcarryx_u32(&x450, &x451, x449, x438, x441); + uint32_t x452; + fiat_p224_uint1 x453; + fiat_p224_addcarryx_u32(&x452, &x453, x451, 0x0, x439); + uint32_t x454; + fiat_p224_uint1 x455; + fiat_p224_addcarryx_u32(&x454, &x455, 0x0, x436, x420); + uint32_t x456; + fiat_p224_uint1 x457; + fiat_p224_addcarryx_u32(&x456, &x457, x455, 0x0, x422); + uint32_t x458; + fiat_p224_uint1 x459; + fiat_p224_addcarryx_u32(&x458, &x459, x457, 0x0, x424); + uint32_t x460; + fiat_p224_uint1 x461; + fiat_p224_addcarryx_u32(&x460, &x461, x459, x444, x426); + uint32_t x462; + fiat_p224_uint1 x463; + fiat_p224_addcarryx_u32(&x462, &x463, x461, x446, x428); + uint32_t x464; + fiat_p224_uint1 x465; + fiat_p224_addcarryx_u32(&x464, &x465, x463, x448, x430); + uint32_t x466; + fiat_p224_uint1 x467; + fiat_p224_addcarryx_u32(&x466, &x467, x465, x450, x432); + uint32_t x468; + fiat_p224_uint1 x469; + fiat_p224_addcarryx_u32(&x468, &x469, x467, x452, x434); + uint32_t x470; + fiat_p224_uint1 x471; + fiat_p224_addcarryx_u32(&x470, &x471, x469, 0x0, x435); + uint32_t x472; + uint32_t x473; + fiat_p224_mulx_u32(&x472, &x473, x6, (arg2[6])); + uint32_t x474; + uint32_t x475; + fiat_p224_mulx_u32(&x474, &x475, x6, (arg2[5])); + uint32_t x476; + uint32_t x477; + fiat_p224_mulx_u32(&x476, &x477, x6, (arg2[4])); + uint32_t x478; + uint32_t x479; + fiat_p224_mulx_u32(&x478, &x479, x6, (arg2[3])); + uint32_t x480; + uint32_t x481; + fiat_p224_mulx_u32(&x480, &x481, x6, (arg2[2])); + uint32_t x482; + uint32_t x483; + fiat_p224_mulx_u32(&x482, &x483, x6, (arg2[1])); + uint32_t x484; + uint32_t x485; + fiat_p224_mulx_u32(&x484, &x485, x6, (arg2[0])); + uint32_t x486; + fiat_p224_uint1 x487; + fiat_p224_addcarryx_u32(&x486, &x487, 0x0, x482, x485); + uint32_t x488; + fiat_p224_uint1 x489; + fiat_p224_addcarryx_u32(&x488, &x489, x487, x480, x483); + uint32_t x490; + fiat_p224_uint1 x491; + fiat_p224_addcarryx_u32(&x490, &x491, x489, x478, x481); + uint32_t x492; + fiat_p224_uint1 x493; + fiat_p224_addcarryx_u32(&x492, &x493, x491, x476, x479); + uint32_t x494; + fiat_p224_uint1 x495; + fiat_p224_addcarryx_u32(&x494, &x495, x493, x474, x477); + uint32_t x496; + fiat_p224_uint1 x497; + fiat_p224_addcarryx_u32(&x496, &x497, x495, x472, x475); + uint32_t x498; + fiat_p224_uint1 x499; + fiat_p224_addcarryx_u32(&x498, &x499, x497, 0x0, x473); + uint32_t x500; + fiat_p224_uint1 x501; + fiat_p224_addcarryx_u32(&x500, &x501, 0x0, x484, x456); + uint32_t x502; + fiat_p224_uint1 x503; + fiat_p224_addcarryx_u32(&x502, &x503, x501, x486, x458); + uint32_t x504; + fiat_p224_uint1 x505; + fiat_p224_addcarryx_u32(&x504, &x505, x503, x488, x460); + uint32_t x506; + fiat_p224_uint1 x507; + fiat_p224_addcarryx_u32(&x506, &x507, x505, x490, x462); + uint32_t x508; + fiat_p224_uint1 x509; + fiat_p224_addcarryx_u32(&x508, &x509, x507, x492, x464); + uint32_t x510; + fiat_p224_uint1 x511; + fiat_p224_addcarryx_u32(&x510, &x511, x509, x494, x466); + uint32_t x512; + fiat_p224_uint1 x513; + fiat_p224_addcarryx_u32(&x512, &x513, x511, x496, x468); + uint32_t x514; + fiat_p224_uint1 x515; + fiat_p224_addcarryx_u32(&x514, &x515, x513, x498, x470); + uint32_t x516; + uint32_t x517; + fiat_p224_mulx_u32(&x516, &x517, x500, UINT32_C(0xffffffff)); + uint32_t x518; + uint32_t x519; + fiat_p224_mulx_u32(&x518, &x519, x516, UINT32_C(0xffffffff)); + uint32_t x520; + uint32_t x521; + fiat_p224_mulx_u32(&x520, &x521, x516, UINT32_C(0xffffffff)); + uint32_t x522; + uint32_t x523; + fiat_p224_mulx_u32(&x522, &x523, x516, UINT32_C(0xffffffff)); + uint32_t x524; + uint32_t x525; + fiat_p224_mulx_u32(&x524, &x525, x516, UINT32_C(0xffffffff)); + uint32_t x526; + fiat_p224_uint1 x527; + fiat_p224_addcarryx_u32(&x526, &x527, 0x0, x522, x525); + uint32_t x528; + fiat_p224_uint1 x529; + fiat_p224_addcarryx_u32(&x528, &x529, x527, x520, x523); + uint32_t x530; + fiat_p224_uint1 x531; + fiat_p224_addcarryx_u32(&x530, &x531, x529, x518, x521); + uint32_t x532; + fiat_p224_uint1 x533; + fiat_p224_addcarryx_u32(&x532, &x533, x531, 0x0, x519); + uint32_t x534; + fiat_p224_uint1 x535; + fiat_p224_addcarryx_u32(&x534, &x535, 0x0, x516, x500); + uint32_t x536; + fiat_p224_uint1 x537; + fiat_p224_addcarryx_u32(&x536, &x537, x535, 0x0, x502); + uint32_t x538; + fiat_p224_uint1 x539; + fiat_p224_addcarryx_u32(&x538, &x539, x537, 0x0, x504); + uint32_t x540; + fiat_p224_uint1 x541; + fiat_p224_addcarryx_u32(&x540, &x541, x539, x524, x506); + uint32_t x542; + fiat_p224_uint1 x543; + fiat_p224_addcarryx_u32(&x542, &x543, x541, x526, x508); + uint32_t x544; + fiat_p224_uint1 x545; + fiat_p224_addcarryx_u32(&x544, &x545, x543, x528, x510); + uint32_t x546; + fiat_p224_uint1 x547; + fiat_p224_addcarryx_u32(&x546, &x547, x545, x530, x512); + uint32_t x548; + fiat_p224_uint1 x549; + fiat_p224_addcarryx_u32(&x548, &x549, x547, x532, x514); + uint32_t x550; + fiat_p224_uint1 x551; + fiat_p224_addcarryx_u32(&x550, &x551, x549, 0x0, x515); + uint32_t x552; + fiat_p224_uint1 x553; + fiat_p224_subborrowx_u32(&x552, &x553, 0x0, x536, 0x1); + uint32_t x554; + fiat_p224_uint1 x555; + fiat_p224_subborrowx_u32(&x554, &x555, x553, x538, 0x0); + uint32_t x556; + fiat_p224_uint1 x557; + fiat_p224_subborrowx_u32(&x556, &x557, x555, x540, 0x0); + uint32_t x558; + fiat_p224_uint1 x559; + fiat_p224_subborrowx_u32(&x558, &x559, x557, x542, UINT32_C(0xffffffff)); + uint32_t x560; + fiat_p224_uint1 x561; + fiat_p224_subborrowx_u32(&x560, &x561, x559, x544, UINT32_C(0xffffffff)); + uint32_t x562; + fiat_p224_uint1 x563; + fiat_p224_subborrowx_u32(&x562, &x563, x561, x546, UINT32_C(0xffffffff)); + uint32_t x564; + fiat_p224_uint1 x565; + fiat_p224_subborrowx_u32(&x564, &x565, x563, x548, UINT32_C(0xffffffff)); + uint32_t x566; + fiat_p224_uint1 x567; + fiat_p224_subborrowx_u32(&x566, &x567, x565, x550, 0x0); + uint32_t x568; + fiat_p224_cmovznz_u32(&x568, x567, x552, x536); + uint32_t x569; + fiat_p224_cmovznz_u32(&x569, x567, x554, x538); + uint32_t x570; + fiat_p224_cmovznz_u32(&x570, x567, x556, x540); + uint32_t x571; + fiat_p224_cmovznz_u32(&x571, x567, x558, x542); + uint32_t x572; + fiat_p224_cmovznz_u32(&x572, x567, x560, x544); + uint32_t x573; + fiat_p224_cmovznz_u32(&x573, x567, x562, x546); + uint32_t x574; + fiat_p224_cmovznz_u32(&x574, x567, x564, x548); + out1[0] = x568; + out1[1] = x569; + out1[2] = x570; + out1[3] = x571; + out1[4] = x572; + out1[5] = x573; + out1[6] = x574; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_square(uint32_t out1[7], const uint32_t arg1[7]) { + uint32_t x1 = (arg1[1]); + uint32_t x2 = (arg1[2]); + uint32_t x3 = (arg1[3]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[5]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[0]); + uint32_t x8; + uint32_t x9; + fiat_p224_mulx_u32(&x8, &x9, x7, (arg1[6])); + uint32_t x10; + uint32_t x11; + fiat_p224_mulx_u32(&x10, &x11, x7, (arg1[5])); + uint32_t x12; + uint32_t x13; + fiat_p224_mulx_u32(&x12, &x13, x7, (arg1[4])); + uint32_t x14; + uint32_t x15; + fiat_p224_mulx_u32(&x14, &x15, x7, (arg1[3])); + uint32_t x16; + uint32_t x17; + fiat_p224_mulx_u32(&x16, &x17, x7, (arg1[2])); + uint32_t x18; + uint32_t x19; + fiat_p224_mulx_u32(&x18, &x19, x7, (arg1[1])); + uint32_t x20; + uint32_t x21; + fiat_p224_mulx_u32(&x20, &x21, x7, (arg1[0])); + uint32_t x22; + fiat_p224_uint1 x23; + fiat_p224_addcarryx_u32(&x22, &x23, 0x0, x18, x21); + uint32_t x24; + fiat_p224_uint1 x25; + fiat_p224_addcarryx_u32(&x24, &x25, x23, x16, x19); + uint32_t x26; + fiat_p224_uint1 x27; + fiat_p224_addcarryx_u32(&x26, &x27, x25, x14, x17); + uint32_t x28; + fiat_p224_uint1 x29; + fiat_p224_addcarryx_u32(&x28, &x29, x27, x12, x15); + uint32_t x30; + fiat_p224_uint1 x31; + fiat_p224_addcarryx_u32(&x30, &x31, x29, x10, x13); + uint32_t x32; + fiat_p224_uint1 x33; + fiat_p224_addcarryx_u32(&x32, &x33, x31, x8, x11); + uint32_t x34; + fiat_p224_uint1 x35; + fiat_p224_addcarryx_u32(&x34, &x35, x33, 0x0, x9); + uint32_t x36; + uint32_t x37; + fiat_p224_mulx_u32(&x36, &x37, x20, UINT32_C(0xffffffff)); + uint32_t x38; + uint32_t x39; + fiat_p224_mulx_u32(&x38, &x39, x36, UINT32_C(0xffffffff)); + uint32_t x40; + uint32_t x41; + fiat_p224_mulx_u32(&x40, &x41, x36, UINT32_C(0xffffffff)); + uint32_t x42; + uint32_t x43; + fiat_p224_mulx_u32(&x42, &x43, x36, UINT32_C(0xffffffff)); + uint32_t x44; + uint32_t x45; + fiat_p224_mulx_u32(&x44, &x45, x36, UINT32_C(0xffffffff)); + uint32_t x46; + fiat_p224_uint1 x47; + fiat_p224_addcarryx_u32(&x46, &x47, 0x0, x42, x45); + uint32_t x48; + fiat_p224_uint1 x49; + fiat_p224_addcarryx_u32(&x48, &x49, x47, x40, x43); + uint32_t x50; + fiat_p224_uint1 x51; + fiat_p224_addcarryx_u32(&x50, &x51, x49, x38, x41); + uint32_t x52; + fiat_p224_uint1 x53; + fiat_p224_addcarryx_u32(&x52, &x53, x51, 0x0, x39); + uint32_t x54; + fiat_p224_uint1 x55; + fiat_p224_addcarryx_u32(&x54, &x55, 0x0, x36, x20); + uint32_t x56; + fiat_p224_uint1 x57; + fiat_p224_addcarryx_u32(&x56, &x57, x55, 0x0, x22); + uint32_t x58; + fiat_p224_uint1 x59; + fiat_p224_addcarryx_u32(&x58, &x59, x57, 0x0, x24); + uint32_t x60; + fiat_p224_uint1 x61; + fiat_p224_addcarryx_u32(&x60, &x61, x59, x44, x26); + uint32_t x62; + fiat_p224_uint1 x63; + fiat_p224_addcarryx_u32(&x62, &x63, x61, x46, x28); + uint32_t x64; + fiat_p224_uint1 x65; + fiat_p224_addcarryx_u32(&x64, &x65, x63, x48, x30); + uint32_t x66; + fiat_p224_uint1 x67; + fiat_p224_addcarryx_u32(&x66, &x67, x65, x50, x32); + uint32_t x68; + fiat_p224_uint1 x69; + fiat_p224_addcarryx_u32(&x68, &x69, x67, x52, x34); + uint32_t x70; + fiat_p224_uint1 x71; + fiat_p224_addcarryx_u32(&x70, &x71, x69, 0x0, 0x0); + uint32_t x72; + uint32_t x73; + fiat_p224_mulx_u32(&x72, &x73, x1, (arg1[6])); + uint32_t x74; + uint32_t x75; + fiat_p224_mulx_u32(&x74, &x75, x1, (arg1[5])); + uint32_t x76; + uint32_t x77; + fiat_p224_mulx_u32(&x76, &x77, x1, (arg1[4])); + uint32_t x78; + uint32_t x79; + fiat_p224_mulx_u32(&x78, &x79, x1, (arg1[3])); + uint32_t x80; + uint32_t x81; + fiat_p224_mulx_u32(&x80, &x81, x1, (arg1[2])); + uint32_t x82; + uint32_t x83; + fiat_p224_mulx_u32(&x82, &x83, x1, (arg1[1])); + uint32_t x84; + uint32_t x85; + fiat_p224_mulx_u32(&x84, &x85, x1, (arg1[0])); + uint32_t x86; + fiat_p224_uint1 x87; + fiat_p224_addcarryx_u32(&x86, &x87, 0x0, x82, x85); + uint32_t x88; + fiat_p224_uint1 x89; + fiat_p224_addcarryx_u32(&x88, &x89, x87, x80, x83); + uint32_t x90; + fiat_p224_uint1 x91; + fiat_p224_addcarryx_u32(&x90, &x91, x89, x78, x81); + uint32_t x92; + fiat_p224_uint1 x93; + fiat_p224_addcarryx_u32(&x92, &x93, x91, x76, x79); + uint32_t x94; + fiat_p224_uint1 x95; + fiat_p224_addcarryx_u32(&x94, &x95, x93, x74, x77); + uint32_t x96; + fiat_p224_uint1 x97; + fiat_p224_addcarryx_u32(&x96, &x97, x95, x72, x75); + uint32_t x98; + fiat_p224_uint1 x99; + fiat_p224_addcarryx_u32(&x98, &x99, x97, 0x0, x73); + uint32_t x100; + fiat_p224_uint1 x101; + fiat_p224_addcarryx_u32(&x100, &x101, 0x0, x84, x56); + uint32_t x102; + fiat_p224_uint1 x103; + fiat_p224_addcarryx_u32(&x102, &x103, x101, x86, x58); + uint32_t x104; + fiat_p224_uint1 x105; + fiat_p224_addcarryx_u32(&x104, &x105, x103, x88, x60); + uint32_t x106; + fiat_p224_uint1 x107; + fiat_p224_addcarryx_u32(&x106, &x107, x105, x90, x62); + uint32_t x108; + fiat_p224_uint1 x109; + fiat_p224_addcarryx_u32(&x108, &x109, x107, x92, x64); + uint32_t x110; + fiat_p224_uint1 x111; + fiat_p224_addcarryx_u32(&x110, &x111, x109, x94, x66); + uint32_t x112; + fiat_p224_uint1 x113; + fiat_p224_addcarryx_u32(&x112, &x113, x111, x96, x68); + uint32_t x114; + fiat_p224_uint1 x115; + fiat_p224_addcarryx_u32(&x114, &x115, x113, x98, (fiat_p224_uint1)x70); + uint32_t x116; + uint32_t x117; + fiat_p224_mulx_u32(&x116, &x117, x100, UINT32_C(0xffffffff)); + uint32_t x118; + uint32_t x119; + fiat_p224_mulx_u32(&x118, &x119, x116, UINT32_C(0xffffffff)); + uint32_t x120; + uint32_t x121; + fiat_p224_mulx_u32(&x120, &x121, x116, UINT32_C(0xffffffff)); + uint32_t x122; + uint32_t x123; + fiat_p224_mulx_u32(&x122, &x123, x116, UINT32_C(0xffffffff)); + uint32_t x124; + uint32_t x125; + fiat_p224_mulx_u32(&x124, &x125, x116, UINT32_C(0xffffffff)); + uint32_t x126; + fiat_p224_uint1 x127; + fiat_p224_addcarryx_u32(&x126, &x127, 0x0, x122, x125); + uint32_t x128; + fiat_p224_uint1 x129; + fiat_p224_addcarryx_u32(&x128, &x129, x127, x120, x123); + uint32_t x130; + fiat_p224_uint1 x131; + fiat_p224_addcarryx_u32(&x130, &x131, x129, x118, x121); + uint32_t x132; + fiat_p224_uint1 x133; + fiat_p224_addcarryx_u32(&x132, &x133, x131, 0x0, x119); + uint32_t x134; + fiat_p224_uint1 x135; + fiat_p224_addcarryx_u32(&x134, &x135, 0x0, x116, x100); + uint32_t x136; + fiat_p224_uint1 x137; + fiat_p224_addcarryx_u32(&x136, &x137, x135, 0x0, x102); + uint32_t x138; + fiat_p224_uint1 x139; + fiat_p224_addcarryx_u32(&x138, &x139, x137, 0x0, x104); + uint32_t x140; + fiat_p224_uint1 x141; + fiat_p224_addcarryx_u32(&x140, &x141, x139, x124, x106); + uint32_t x142; + fiat_p224_uint1 x143; + fiat_p224_addcarryx_u32(&x142, &x143, x141, x126, x108); + uint32_t x144; + fiat_p224_uint1 x145; + fiat_p224_addcarryx_u32(&x144, &x145, x143, x128, x110); + uint32_t x146; + fiat_p224_uint1 x147; + fiat_p224_addcarryx_u32(&x146, &x147, x145, x130, x112); + uint32_t x148; + fiat_p224_uint1 x149; + fiat_p224_addcarryx_u32(&x148, &x149, x147, x132, x114); + uint32_t x150; + fiat_p224_uint1 x151; + fiat_p224_addcarryx_u32(&x150, &x151, x149, 0x0, x115); + uint32_t x152; + uint32_t x153; + fiat_p224_mulx_u32(&x152, &x153, x2, (arg1[6])); + uint32_t x154; + uint32_t x155; + fiat_p224_mulx_u32(&x154, &x155, x2, (arg1[5])); + uint32_t x156; + uint32_t x157; + fiat_p224_mulx_u32(&x156, &x157, x2, (arg1[4])); + uint32_t x158; + uint32_t x159; + fiat_p224_mulx_u32(&x158, &x159, x2, (arg1[3])); + uint32_t x160; + uint32_t x161; + fiat_p224_mulx_u32(&x160, &x161, x2, (arg1[2])); + uint32_t x162; + uint32_t x163; + fiat_p224_mulx_u32(&x162, &x163, x2, (arg1[1])); + uint32_t x164; + uint32_t x165; + fiat_p224_mulx_u32(&x164, &x165, x2, (arg1[0])); + uint32_t x166; + fiat_p224_uint1 x167; + fiat_p224_addcarryx_u32(&x166, &x167, 0x0, x162, x165); + uint32_t x168; + fiat_p224_uint1 x169; + fiat_p224_addcarryx_u32(&x168, &x169, x167, x160, x163); + uint32_t x170; + fiat_p224_uint1 x171; + fiat_p224_addcarryx_u32(&x170, &x171, x169, x158, x161); + uint32_t x172; + fiat_p224_uint1 x173; + fiat_p224_addcarryx_u32(&x172, &x173, x171, x156, x159); + uint32_t x174; + fiat_p224_uint1 x175; + fiat_p224_addcarryx_u32(&x174, &x175, x173, x154, x157); + uint32_t x176; + fiat_p224_uint1 x177; + fiat_p224_addcarryx_u32(&x176, &x177, x175, x152, x155); + uint32_t x178; + fiat_p224_uint1 x179; + fiat_p224_addcarryx_u32(&x178, &x179, x177, 0x0, x153); + uint32_t x180; + fiat_p224_uint1 x181; + fiat_p224_addcarryx_u32(&x180, &x181, 0x0, x164, x136); + uint32_t x182; + fiat_p224_uint1 x183; + fiat_p224_addcarryx_u32(&x182, &x183, x181, x166, x138); + uint32_t x184; + fiat_p224_uint1 x185; + fiat_p224_addcarryx_u32(&x184, &x185, x183, x168, x140); + uint32_t x186; + fiat_p224_uint1 x187; + fiat_p224_addcarryx_u32(&x186, &x187, x185, x170, x142); + uint32_t x188; + fiat_p224_uint1 x189; + fiat_p224_addcarryx_u32(&x188, &x189, x187, x172, x144); + uint32_t x190; + fiat_p224_uint1 x191; + fiat_p224_addcarryx_u32(&x190, &x191, x189, x174, x146); + uint32_t x192; + fiat_p224_uint1 x193; + fiat_p224_addcarryx_u32(&x192, &x193, x191, x176, x148); + uint32_t x194; + fiat_p224_uint1 x195; + fiat_p224_addcarryx_u32(&x194, &x195, x193, x178, x150); + uint32_t x196; + uint32_t x197; + fiat_p224_mulx_u32(&x196, &x197, x180, UINT32_C(0xffffffff)); + uint32_t x198; + uint32_t x199; + fiat_p224_mulx_u32(&x198, &x199, x196, UINT32_C(0xffffffff)); + uint32_t x200; + uint32_t x201; + fiat_p224_mulx_u32(&x200, &x201, x196, UINT32_C(0xffffffff)); + uint32_t x202; + uint32_t x203; + fiat_p224_mulx_u32(&x202, &x203, x196, UINT32_C(0xffffffff)); + uint32_t x204; + uint32_t x205; + fiat_p224_mulx_u32(&x204, &x205, x196, UINT32_C(0xffffffff)); + uint32_t x206; + fiat_p224_uint1 x207; + fiat_p224_addcarryx_u32(&x206, &x207, 0x0, x202, x205); + uint32_t x208; + fiat_p224_uint1 x209; + fiat_p224_addcarryx_u32(&x208, &x209, x207, x200, x203); + uint32_t x210; + fiat_p224_uint1 x211; + fiat_p224_addcarryx_u32(&x210, &x211, x209, x198, x201); + uint32_t x212; + fiat_p224_uint1 x213; + fiat_p224_addcarryx_u32(&x212, &x213, x211, 0x0, x199); + uint32_t x214; + fiat_p224_uint1 x215; + fiat_p224_addcarryx_u32(&x214, &x215, 0x0, x196, x180); + uint32_t x216; + fiat_p224_uint1 x217; + fiat_p224_addcarryx_u32(&x216, &x217, x215, 0x0, x182); + uint32_t x218; + fiat_p224_uint1 x219; + fiat_p224_addcarryx_u32(&x218, &x219, x217, 0x0, x184); + uint32_t x220; + fiat_p224_uint1 x221; + fiat_p224_addcarryx_u32(&x220, &x221, x219, x204, x186); + uint32_t x222; + fiat_p224_uint1 x223; + fiat_p224_addcarryx_u32(&x222, &x223, x221, x206, x188); + uint32_t x224; + fiat_p224_uint1 x225; + fiat_p224_addcarryx_u32(&x224, &x225, x223, x208, x190); + uint32_t x226; + fiat_p224_uint1 x227; + fiat_p224_addcarryx_u32(&x226, &x227, x225, x210, x192); + uint32_t x228; + fiat_p224_uint1 x229; + fiat_p224_addcarryx_u32(&x228, &x229, x227, x212, x194); + uint32_t x230; + fiat_p224_uint1 x231; + fiat_p224_addcarryx_u32(&x230, &x231, x229, 0x0, x195); + uint32_t x232; + uint32_t x233; + fiat_p224_mulx_u32(&x232, &x233, x3, (arg1[6])); + uint32_t x234; + uint32_t x235; + fiat_p224_mulx_u32(&x234, &x235, x3, (arg1[5])); + uint32_t x236; + uint32_t x237; + fiat_p224_mulx_u32(&x236, &x237, x3, (arg1[4])); + uint32_t x238; + uint32_t x239; + fiat_p224_mulx_u32(&x238, &x239, x3, (arg1[3])); + uint32_t x240; + uint32_t x241; + fiat_p224_mulx_u32(&x240, &x241, x3, (arg1[2])); + uint32_t x242; + uint32_t x243; + fiat_p224_mulx_u32(&x242, &x243, x3, (arg1[1])); + uint32_t x244; + uint32_t x245; + fiat_p224_mulx_u32(&x244, &x245, x3, (arg1[0])); + uint32_t x246; + fiat_p224_uint1 x247; + fiat_p224_addcarryx_u32(&x246, &x247, 0x0, x242, x245); + uint32_t x248; + fiat_p224_uint1 x249; + fiat_p224_addcarryx_u32(&x248, &x249, x247, x240, x243); + uint32_t x250; + fiat_p224_uint1 x251; + fiat_p224_addcarryx_u32(&x250, &x251, x249, x238, x241); + uint32_t x252; + fiat_p224_uint1 x253; + fiat_p224_addcarryx_u32(&x252, &x253, x251, x236, x239); + uint32_t x254; + fiat_p224_uint1 x255; + fiat_p224_addcarryx_u32(&x254, &x255, x253, x234, x237); + uint32_t x256; + fiat_p224_uint1 x257; + fiat_p224_addcarryx_u32(&x256, &x257, x255, x232, x235); + uint32_t x258; + fiat_p224_uint1 x259; + fiat_p224_addcarryx_u32(&x258, &x259, x257, 0x0, x233); + uint32_t x260; + fiat_p224_uint1 x261; + fiat_p224_addcarryx_u32(&x260, &x261, 0x0, x244, x216); + uint32_t x262; + fiat_p224_uint1 x263; + fiat_p224_addcarryx_u32(&x262, &x263, x261, x246, x218); + uint32_t x264; + fiat_p224_uint1 x265; + fiat_p224_addcarryx_u32(&x264, &x265, x263, x248, x220); + uint32_t x266; + fiat_p224_uint1 x267; + fiat_p224_addcarryx_u32(&x266, &x267, x265, x250, x222); + uint32_t x268; + fiat_p224_uint1 x269; + fiat_p224_addcarryx_u32(&x268, &x269, x267, x252, x224); + uint32_t x270; + fiat_p224_uint1 x271; + fiat_p224_addcarryx_u32(&x270, &x271, x269, x254, x226); + uint32_t x272; + fiat_p224_uint1 x273; + fiat_p224_addcarryx_u32(&x272, &x273, x271, x256, x228); + uint32_t x274; + fiat_p224_uint1 x275; + fiat_p224_addcarryx_u32(&x274, &x275, x273, x258, x230); + uint32_t x276; + uint32_t x277; + fiat_p224_mulx_u32(&x276, &x277, x260, UINT32_C(0xffffffff)); + uint32_t x278; + uint32_t x279; + fiat_p224_mulx_u32(&x278, &x279, x276, UINT32_C(0xffffffff)); + uint32_t x280; + uint32_t x281; + fiat_p224_mulx_u32(&x280, &x281, x276, UINT32_C(0xffffffff)); + uint32_t x282; + uint32_t x283; + fiat_p224_mulx_u32(&x282, &x283, x276, UINT32_C(0xffffffff)); + uint32_t x284; + uint32_t x285; + fiat_p224_mulx_u32(&x284, &x285, x276, UINT32_C(0xffffffff)); + uint32_t x286; + fiat_p224_uint1 x287; + fiat_p224_addcarryx_u32(&x286, &x287, 0x0, x282, x285); + uint32_t x288; + fiat_p224_uint1 x289; + fiat_p224_addcarryx_u32(&x288, &x289, x287, x280, x283); + uint32_t x290; + fiat_p224_uint1 x291; + fiat_p224_addcarryx_u32(&x290, &x291, x289, x278, x281); + uint32_t x292; + fiat_p224_uint1 x293; + fiat_p224_addcarryx_u32(&x292, &x293, x291, 0x0, x279); + uint32_t x294; + fiat_p224_uint1 x295; + fiat_p224_addcarryx_u32(&x294, &x295, 0x0, x276, x260); + uint32_t x296; + fiat_p224_uint1 x297; + fiat_p224_addcarryx_u32(&x296, &x297, x295, 0x0, x262); + uint32_t x298; + fiat_p224_uint1 x299; + fiat_p224_addcarryx_u32(&x298, &x299, x297, 0x0, x264); + uint32_t x300; + fiat_p224_uint1 x301; + fiat_p224_addcarryx_u32(&x300, &x301, x299, x284, x266); + uint32_t x302; + fiat_p224_uint1 x303; + fiat_p224_addcarryx_u32(&x302, &x303, x301, x286, x268); + uint32_t x304; + fiat_p224_uint1 x305; + fiat_p224_addcarryx_u32(&x304, &x305, x303, x288, x270); + uint32_t x306; + fiat_p224_uint1 x307; + fiat_p224_addcarryx_u32(&x306, &x307, x305, x290, x272); + uint32_t x308; + fiat_p224_uint1 x309; + fiat_p224_addcarryx_u32(&x308, &x309, x307, x292, x274); + uint32_t x310; + fiat_p224_uint1 x311; + fiat_p224_addcarryx_u32(&x310, &x311, x309, 0x0, x275); + uint32_t x312; + uint32_t x313; + fiat_p224_mulx_u32(&x312, &x313, x4, (arg1[6])); + uint32_t x314; + uint32_t x315; + fiat_p224_mulx_u32(&x314, &x315, x4, (arg1[5])); + uint32_t x316; + uint32_t x317; + fiat_p224_mulx_u32(&x316, &x317, x4, (arg1[4])); + uint32_t x318; + uint32_t x319; + fiat_p224_mulx_u32(&x318, &x319, x4, (arg1[3])); + uint32_t x320; + uint32_t x321; + fiat_p224_mulx_u32(&x320, &x321, x4, (arg1[2])); + uint32_t x322; + uint32_t x323; + fiat_p224_mulx_u32(&x322, &x323, x4, (arg1[1])); + uint32_t x324; + uint32_t x325; + fiat_p224_mulx_u32(&x324, &x325, x4, (arg1[0])); + uint32_t x326; + fiat_p224_uint1 x327; + fiat_p224_addcarryx_u32(&x326, &x327, 0x0, x322, x325); + uint32_t x328; + fiat_p224_uint1 x329; + fiat_p224_addcarryx_u32(&x328, &x329, x327, x320, x323); + uint32_t x330; + fiat_p224_uint1 x331; + fiat_p224_addcarryx_u32(&x330, &x331, x329, x318, x321); + uint32_t x332; + fiat_p224_uint1 x333; + fiat_p224_addcarryx_u32(&x332, &x333, x331, x316, x319); + uint32_t x334; + fiat_p224_uint1 x335; + fiat_p224_addcarryx_u32(&x334, &x335, x333, x314, x317); + uint32_t x336; + fiat_p224_uint1 x337; + fiat_p224_addcarryx_u32(&x336, &x337, x335, x312, x315); + uint32_t x338; + fiat_p224_uint1 x339; + fiat_p224_addcarryx_u32(&x338, &x339, x337, 0x0, x313); + uint32_t x340; + fiat_p224_uint1 x341; + fiat_p224_addcarryx_u32(&x340, &x341, 0x0, x324, x296); + uint32_t x342; + fiat_p224_uint1 x343; + fiat_p224_addcarryx_u32(&x342, &x343, x341, x326, x298); + uint32_t x344; + fiat_p224_uint1 x345; + fiat_p224_addcarryx_u32(&x344, &x345, x343, x328, x300); + uint32_t x346; + fiat_p224_uint1 x347; + fiat_p224_addcarryx_u32(&x346, &x347, x345, x330, x302); + uint32_t x348; + fiat_p224_uint1 x349; + fiat_p224_addcarryx_u32(&x348, &x349, x347, x332, x304); + uint32_t x350; + fiat_p224_uint1 x351; + fiat_p224_addcarryx_u32(&x350, &x351, x349, x334, x306); + uint32_t x352; + fiat_p224_uint1 x353; + fiat_p224_addcarryx_u32(&x352, &x353, x351, x336, x308); + uint32_t x354; + fiat_p224_uint1 x355; + fiat_p224_addcarryx_u32(&x354, &x355, x353, x338, x310); + uint32_t x356; + uint32_t x357; + fiat_p224_mulx_u32(&x356, &x357, x340, UINT32_C(0xffffffff)); + uint32_t x358; + uint32_t x359; + fiat_p224_mulx_u32(&x358, &x359, x356, UINT32_C(0xffffffff)); + uint32_t x360; + uint32_t x361; + fiat_p224_mulx_u32(&x360, &x361, x356, UINT32_C(0xffffffff)); + uint32_t x362; + uint32_t x363; + fiat_p224_mulx_u32(&x362, &x363, x356, UINT32_C(0xffffffff)); + uint32_t x364; + uint32_t x365; + fiat_p224_mulx_u32(&x364, &x365, x356, UINT32_C(0xffffffff)); + uint32_t x366; + fiat_p224_uint1 x367; + fiat_p224_addcarryx_u32(&x366, &x367, 0x0, x362, x365); + uint32_t x368; + fiat_p224_uint1 x369; + fiat_p224_addcarryx_u32(&x368, &x369, x367, x360, x363); + uint32_t x370; + fiat_p224_uint1 x371; + fiat_p224_addcarryx_u32(&x370, &x371, x369, x358, x361); + uint32_t x372; + fiat_p224_uint1 x373; + fiat_p224_addcarryx_u32(&x372, &x373, x371, 0x0, x359); + uint32_t x374; + fiat_p224_uint1 x375; + fiat_p224_addcarryx_u32(&x374, &x375, 0x0, x356, x340); + uint32_t x376; + fiat_p224_uint1 x377; + fiat_p224_addcarryx_u32(&x376, &x377, x375, 0x0, x342); + uint32_t x378; + fiat_p224_uint1 x379; + fiat_p224_addcarryx_u32(&x378, &x379, x377, 0x0, x344); + uint32_t x380; + fiat_p224_uint1 x381; + fiat_p224_addcarryx_u32(&x380, &x381, x379, x364, x346); + uint32_t x382; + fiat_p224_uint1 x383; + fiat_p224_addcarryx_u32(&x382, &x383, x381, x366, x348); + uint32_t x384; + fiat_p224_uint1 x385; + fiat_p224_addcarryx_u32(&x384, &x385, x383, x368, x350); + uint32_t x386; + fiat_p224_uint1 x387; + fiat_p224_addcarryx_u32(&x386, &x387, x385, x370, x352); + uint32_t x388; + fiat_p224_uint1 x389; + fiat_p224_addcarryx_u32(&x388, &x389, x387, x372, x354); + uint32_t x390; + fiat_p224_uint1 x391; + fiat_p224_addcarryx_u32(&x390, &x391, x389, 0x0, x355); + uint32_t x392; + uint32_t x393; + fiat_p224_mulx_u32(&x392, &x393, x5, (arg1[6])); + uint32_t x394; + uint32_t x395; + fiat_p224_mulx_u32(&x394, &x395, x5, (arg1[5])); + uint32_t x396; + uint32_t x397; + fiat_p224_mulx_u32(&x396, &x397, x5, (arg1[4])); + uint32_t x398; + uint32_t x399; + fiat_p224_mulx_u32(&x398, &x399, x5, (arg1[3])); + uint32_t x400; + uint32_t x401; + fiat_p224_mulx_u32(&x400, &x401, x5, (arg1[2])); + uint32_t x402; + uint32_t x403; + fiat_p224_mulx_u32(&x402, &x403, x5, (arg1[1])); + uint32_t x404; + uint32_t x405; + fiat_p224_mulx_u32(&x404, &x405, x5, (arg1[0])); + uint32_t x406; + fiat_p224_uint1 x407; + fiat_p224_addcarryx_u32(&x406, &x407, 0x0, x402, x405); + uint32_t x408; + fiat_p224_uint1 x409; + fiat_p224_addcarryx_u32(&x408, &x409, x407, x400, x403); + uint32_t x410; + fiat_p224_uint1 x411; + fiat_p224_addcarryx_u32(&x410, &x411, x409, x398, x401); + uint32_t x412; + fiat_p224_uint1 x413; + fiat_p224_addcarryx_u32(&x412, &x413, x411, x396, x399); + uint32_t x414; + fiat_p224_uint1 x415; + fiat_p224_addcarryx_u32(&x414, &x415, x413, x394, x397); + uint32_t x416; + fiat_p224_uint1 x417; + fiat_p224_addcarryx_u32(&x416, &x417, x415, x392, x395); + uint32_t x418; + fiat_p224_uint1 x419; + fiat_p224_addcarryx_u32(&x418, &x419, x417, 0x0, x393); + uint32_t x420; + fiat_p224_uint1 x421; + fiat_p224_addcarryx_u32(&x420, &x421, 0x0, x404, x376); + uint32_t x422; + fiat_p224_uint1 x423; + fiat_p224_addcarryx_u32(&x422, &x423, x421, x406, x378); + uint32_t x424; + fiat_p224_uint1 x425; + fiat_p224_addcarryx_u32(&x424, &x425, x423, x408, x380); + uint32_t x426; + fiat_p224_uint1 x427; + fiat_p224_addcarryx_u32(&x426, &x427, x425, x410, x382); + uint32_t x428; + fiat_p224_uint1 x429; + fiat_p224_addcarryx_u32(&x428, &x429, x427, x412, x384); + uint32_t x430; + fiat_p224_uint1 x431; + fiat_p224_addcarryx_u32(&x430, &x431, x429, x414, x386); + uint32_t x432; + fiat_p224_uint1 x433; + fiat_p224_addcarryx_u32(&x432, &x433, x431, x416, x388); + uint32_t x434; + fiat_p224_uint1 x435; + fiat_p224_addcarryx_u32(&x434, &x435, x433, x418, x390); + uint32_t x436; + uint32_t x437; + fiat_p224_mulx_u32(&x436, &x437, x420, UINT32_C(0xffffffff)); + uint32_t x438; + uint32_t x439; + fiat_p224_mulx_u32(&x438, &x439, x436, UINT32_C(0xffffffff)); + uint32_t x440; + uint32_t x441; + fiat_p224_mulx_u32(&x440, &x441, x436, UINT32_C(0xffffffff)); + uint32_t x442; + uint32_t x443; + fiat_p224_mulx_u32(&x442, &x443, x436, UINT32_C(0xffffffff)); + uint32_t x444; + uint32_t x445; + fiat_p224_mulx_u32(&x444, &x445, x436, UINT32_C(0xffffffff)); + uint32_t x446; + fiat_p224_uint1 x447; + fiat_p224_addcarryx_u32(&x446, &x447, 0x0, x442, x445); + uint32_t x448; + fiat_p224_uint1 x449; + fiat_p224_addcarryx_u32(&x448, &x449, x447, x440, x443); + uint32_t x450; + fiat_p224_uint1 x451; + fiat_p224_addcarryx_u32(&x450, &x451, x449, x438, x441); + uint32_t x452; + fiat_p224_uint1 x453; + fiat_p224_addcarryx_u32(&x452, &x453, x451, 0x0, x439); + uint32_t x454; + fiat_p224_uint1 x455; + fiat_p224_addcarryx_u32(&x454, &x455, 0x0, x436, x420); + uint32_t x456; + fiat_p224_uint1 x457; + fiat_p224_addcarryx_u32(&x456, &x457, x455, 0x0, x422); + uint32_t x458; + fiat_p224_uint1 x459; + fiat_p224_addcarryx_u32(&x458, &x459, x457, 0x0, x424); + uint32_t x460; + fiat_p224_uint1 x461; + fiat_p224_addcarryx_u32(&x460, &x461, x459, x444, x426); + uint32_t x462; + fiat_p224_uint1 x463; + fiat_p224_addcarryx_u32(&x462, &x463, x461, x446, x428); + uint32_t x464; + fiat_p224_uint1 x465; + fiat_p224_addcarryx_u32(&x464, &x465, x463, x448, x430); + uint32_t x466; + fiat_p224_uint1 x467; + fiat_p224_addcarryx_u32(&x466, &x467, x465, x450, x432); + uint32_t x468; + fiat_p224_uint1 x469; + fiat_p224_addcarryx_u32(&x468, &x469, x467, x452, x434); + uint32_t x470; + fiat_p224_uint1 x471; + fiat_p224_addcarryx_u32(&x470, &x471, x469, 0x0, x435); + uint32_t x472; + uint32_t x473; + fiat_p224_mulx_u32(&x472, &x473, x6, (arg1[6])); + uint32_t x474; + uint32_t x475; + fiat_p224_mulx_u32(&x474, &x475, x6, (arg1[5])); + uint32_t x476; + uint32_t x477; + fiat_p224_mulx_u32(&x476, &x477, x6, (arg1[4])); + uint32_t x478; + uint32_t x479; + fiat_p224_mulx_u32(&x478, &x479, x6, (arg1[3])); + uint32_t x480; + uint32_t x481; + fiat_p224_mulx_u32(&x480, &x481, x6, (arg1[2])); + uint32_t x482; + uint32_t x483; + fiat_p224_mulx_u32(&x482, &x483, x6, (arg1[1])); + uint32_t x484; + uint32_t x485; + fiat_p224_mulx_u32(&x484, &x485, x6, (arg1[0])); + uint32_t x486; + fiat_p224_uint1 x487; + fiat_p224_addcarryx_u32(&x486, &x487, 0x0, x482, x485); + uint32_t x488; + fiat_p224_uint1 x489; + fiat_p224_addcarryx_u32(&x488, &x489, x487, x480, x483); + uint32_t x490; + fiat_p224_uint1 x491; + fiat_p224_addcarryx_u32(&x490, &x491, x489, x478, x481); + uint32_t x492; + fiat_p224_uint1 x493; + fiat_p224_addcarryx_u32(&x492, &x493, x491, x476, x479); + uint32_t x494; + fiat_p224_uint1 x495; + fiat_p224_addcarryx_u32(&x494, &x495, x493, x474, x477); + uint32_t x496; + fiat_p224_uint1 x497; + fiat_p224_addcarryx_u32(&x496, &x497, x495, x472, x475); + uint32_t x498; + fiat_p224_uint1 x499; + fiat_p224_addcarryx_u32(&x498, &x499, x497, 0x0, x473); + uint32_t x500; + fiat_p224_uint1 x501; + fiat_p224_addcarryx_u32(&x500, &x501, 0x0, x484, x456); + uint32_t x502; + fiat_p224_uint1 x503; + fiat_p224_addcarryx_u32(&x502, &x503, x501, x486, x458); + uint32_t x504; + fiat_p224_uint1 x505; + fiat_p224_addcarryx_u32(&x504, &x505, x503, x488, x460); + uint32_t x506; + fiat_p224_uint1 x507; + fiat_p224_addcarryx_u32(&x506, &x507, x505, x490, x462); + uint32_t x508; + fiat_p224_uint1 x509; + fiat_p224_addcarryx_u32(&x508, &x509, x507, x492, x464); + uint32_t x510; + fiat_p224_uint1 x511; + fiat_p224_addcarryx_u32(&x510, &x511, x509, x494, x466); + uint32_t x512; + fiat_p224_uint1 x513; + fiat_p224_addcarryx_u32(&x512, &x513, x511, x496, x468); + uint32_t x514; + fiat_p224_uint1 x515; + fiat_p224_addcarryx_u32(&x514, &x515, x513, x498, x470); + uint32_t x516; + uint32_t x517; + fiat_p224_mulx_u32(&x516, &x517, x500, UINT32_C(0xffffffff)); + uint32_t x518; + uint32_t x519; + fiat_p224_mulx_u32(&x518, &x519, x516, UINT32_C(0xffffffff)); + uint32_t x520; + uint32_t x521; + fiat_p224_mulx_u32(&x520, &x521, x516, UINT32_C(0xffffffff)); + uint32_t x522; + uint32_t x523; + fiat_p224_mulx_u32(&x522, &x523, x516, UINT32_C(0xffffffff)); + uint32_t x524; + uint32_t x525; + fiat_p224_mulx_u32(&x524, &x525, x516, UINT32_C(0xffffffff)); + uint32_t x526; + fiat_p224_uint1 x527; + fiat_p224_addcarryx_u32(&x526, &x527, 0x0, x522, x525); + uint32_t x528; + fiat_p224_uint1 x529; + fiat_p224_addcarryx_u32(&x528, &x529, x527, x520, x523); + uint32_t x530; + fiat_p224_uint1 x531; + fiat_p224_addcarryx_u32(&x530, &x531, x529, x518, x521); + uint32_t x532; + fiat_p224_uint1 x533; + fiat_p224_addcarryx_u32(&x532, &x533, x531, 0x0, x519); + uint32_t x534; + fiat_p224_uint1 x535; + fiat_p224_addcarryx_u32(&x534, &x535, 0x0, x516, x500); + uint32_t x536; + fiat_p224_uint1 x537; + fiat_p224_addcarryx_u32(&x536, &x537, x535, 0x0, x502); + uint32_t x538; + fiat_p224_uint1 x539; + fiat_p224_addcarryx_u32(&x538, &x539, x537, 0x0, x504); + uint32_t x540; + fiat_p224_uint1 x541; + fiat_p224_addcarryx_u32(&x540, &x541, x539, x524, x506); + uint32_t x542; + fiat_p224_uint1 x543; + fiat_p224_addcarryx_u32(&x542, &x543, x541, x526, x508); + uint32_t x544; + fiat_p224_uint1 x545; + fiat_p224_addcarryx_u32(&x544, &x545, x543, x528, x510); + uint32_t x546; + fiat_p224_uint1 x547; + fiat_p224_addcarryx_u32(&x546, &x547, x545, x530, x512); + uint32_t x548; + fiat_p224_uint1 x549; + fiat_p224_addcarryx_u32(&x548, &x549, x547, x532, x514); + uint32_t x550; + fiat_p224_uint1 x551; + fiat_p224_addcarryx_u32(&x550, &x551, x549, 0x0, x515); + uint32_t x552; + fiat_p224_uint1 x553; + fiat_p224_subborrowx_u32(&x552, &x553, 0x0, x536, 0x1); + uint32_t x554; + fiat_p224_uint1 x555; + fiat_p224_subborrowx_u32(&x554, &x555, x553, x538, 0x0); + uint32_t x556; + fiat_p224_uint1 x557; + fiat_p224_subborrowx_u32(&x556, &x557, x555, x540, 0x0); + uint32_t x558; + fiat_p224_uint1 x559; + fiat_p224_subborrowx_u32(&x558, &x559, x557, x542, UINT32_C(0xffffffff)); + uint32_t x560; + fiat_p224_uint1 x561; + fiat_p224_subborrowx_u32(&x560, &x561, x559, x544, UINT32_C(0xffffffff)); + uint32_t x562; + fiat_p224_uint1 x563; + fiat_p224_subborrowx_u32(&x562, &x563, x561, x546, UINT32_C(0xffffffff)); + uint32_t x564; + fiat_p224_uint1 x565; + fiat_p224_subborrowx_u32(&x564, &x565, x563, x548, UINT32_C(0xffffffff)); + uint32_t x566; + fiat_p224_uint1 x567; + fiat_p224_subborrowx_u32(&x566, &x567, x565, x550, 0x0); + uint32_t x568; + fiat_p224_cmovznz_u32(&x568, x567, x552, x536); + uint32_t x569; + fiat_p224_cmovznz_u32(&x569, x567, x554, x538); + uint32_t x570; + fiat_p224_cmovznz_u32(&x570, x567, x556, x540); + uint32_t x571; + fiat_p224_cmovznz_u32(&x571, x567, x558, x542); + uint32_t x572; + fiat_p224_cmovznz_u32(&x572, x567, x560, x544); + uint32_t x573; + fiat_p224_cmovznz_u32(&x573, x567, x562, x546); + uint32_t x574; + fiat_p224_cmovznz_u32(&x574, x567, x564, x548); + out1[0] = x568; + out1[1] = x569; + out1[2] = x570; + out1[3] = x571; + out1[4] = x572; + out1[5] = x573; + out1[6] = x574; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_add(uint32_t out1[7], const uint32_t arg1[7], const uint32_t arg2[7]) { + uint32_t x1; + fiat_p224_uint1 x2; + fiat_p224_addcarryx_u32(&x1, &x2, 0x0, (arg2[0]), (arg1[0])); + uint32_t x3; + fiat_p224_uint1 x4; + fiat_p224_addcarryx_u32(&x3, &x4, x2, (arg2[1]), (arg1[1])); + uint32_t x5; + fiat_p224_uint1 x6; + fiat_p224_addcarryx_u32(&x5, &x6, x4, (arg2[2]), (arg1[2])); + uint32_t x7; + fiat_p224_uint1 x8; + fiat_p224_addcarryx_u32(&x7, &x8, x6, (arg2[3]), (arg1[3])); + uint32_t x9; + fiat_p224_uint1 x10; + fiat_p224_addcarryx_u32(&x9, &x10, x8, (arg2[4]), (arg1[4])); + uint32_t x11; + fiat_p224_uint1 x12; + fiat_p224_addcarryx_u32(&x11, &x12, x10, (arg2[5]), (arg1[5])); + uint32_t x13; + fiat_p224_uint1 x14; + fiat_p224_addcarryx_u32(&x13, &x14, x12, (arg2[6]), (arg1[6])); + uint32_t x15; + fiat_p224_uint1 x16; + fiat_p224_subborrowx_u32(&x15, &x16, 0x0, x1, 0x1); + uint32_t x17; + fiat_p224_uint1 x18; + fiat_p224_subborrowx_u32(&x17, &x18, x16, x3, 0x0); + uint32_t x19; + fiat_p224_uint1 x20; + fiat_p224_subborrowx_u32(&x19, &x20, x18, x5, 0x0); + uint32_t x21; + fiat_p224_uint1 x22; + fiat_p224_subborrowx_u32(&x21, &x22, x20, x7, UINT32_C(0xffffffff)); + uint32_t x23; + fiat_p224_uint1 x24; + fiat_p224_subborrowx_u32(&x23, &x24, x22, x9, UINT32_C(0xffffffff)); + uint32_t x25; + fiat_p224_uint1 x26; + fiat_p224_subborrowx_u32(&x25, &x26, x24, x11, UINT32_C(0xffffffff)); + uint32_t x27; + fiat_p224_uint1 x28; + fiat_p224_subborrowx_u32(&x27, &x28, x26, x13, UINT32_C(0xffffffff)); + uint32_t x29; + fiat_p224_uint1 x30; + fiat_p224_subborrowx_u32(&x29, &x30, x28, x14, 0x0); + uint32_t x31; + fiat_p224_cmovznz_u32(&x31, x30, x15, x1); + uint32_t x32; + fiat_p224_cmovznz_u32(&x32, x30, x17, x3); + uint32_t x33; + fiat_p224_cmovznz_u32(&x33, x30, x19, x5); + uint32_t x34; + fiat_p224_cmovznz_u32(&x34, x30, x21, x7); + uint32_t x35; + fiat_p224_cmovznz_u32(&x35, x30, x23, x9); + uint32_t x36; + fiat_p224_cmovznz_u32(&x36, x30, x25, x11); + uint32_t x37; + fiat_p224_cmovznz_u32(&x37, x30, x27, x13); + out1[0] = x31; + out1[1] = x32; + out1[2] = x33; + out1[3] = x34; + out1[4] = x35; + out1[5] = x36; + out1[6] = x37; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_sub(uint32_t out1[7], const uint32_t arg1[7], const uint32_t arg2[7]) { + uint32_t x1; + fiat_p224_uint1 x2; + fiat_p224_subborrowx_u32(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + uint32_t x3; + fiat_p224_uint1 x4; + fiat_p224_subborrowx_u32(&x3, &x4, x2, (arg1[1]), (arg2[1])); + uint32_t x5; + fiat_p224_uint1 x6; + fiat_p224_subborrowx_u32(&x5, &x6, x4, (arg1[2]), (arg2[2])); + uint32_t x7; + fiat_p224_uint1 x8; + fiat_p224_subborrowx_u32(&x7, &x8, x6, (arg1[3]), (arg2[3])); + uint32_t x9; + fiat_p224_uint1 x10; + fiat_p224_subborrowx_u32(&x9, &x10, x8, (arg1[4]), (arg2[4])); + uint32_t x11; + fiat_p224_uint1 x12; + fiat_p224_subborrowx_u32(&x11, &x12, x10, (arg1[5]), (arg2[5])); + uint32_t x13; + fiat_p224_uint1 x14; + fiat_p224_subborrowx_u32(&x13, &x14, x12, (arg1[6]), (arg2[6])); + uint32_t x15; + fiat_p224_cmovznz_u32(&x15, x14, 0x0, UINT32_C(0xffffffff)); + uint32_t x16; + fiat_p224_uint1 x17; + fiat_p224_addcarryx_u32(&x16, &x17, 0x0, (fiat_p224_uint1)(x15 & 0x1), x1); + uint32_t x18; + fiat_p224_uint1 x19; + fiat_p224_addcarryx_u32(&x18, &x19, x17, 0x0, x3); + uint32_t x20; + fiat_p224_uint1 x21; + fiat_p224_addcarryx_u32(&x20, &x21, x19, 0x0, x5); + uint32_t x22; + fiat_p224_uint1 x23; + fiat_p224_addcarryx_u32(&x22, &x23, x21, (x15 & UINT32_C(0xffffffff)), x7); + uint32_t x24; + fiat_p224_uint1 x25; + fiat_p224_addcarryx_u32(&x24, &x25, x23, (x15 & UINT32_C(0xffffffff)), x9); + uint32_t x26; + fiat_p224_uint1 x27; + fiat_p224_addcarryx_u32(&x26, &x27, x25, (x15 & UINT32_C(0xffffffff)), x11); + uint32_t x28; + fiat_p224_uint1 x29; + fiat_p224_addcarryx_u32(&x28, &x29, x27, (x15 & UINT32_C(0xffffffff)), x13); + out1[0] = x16; + out1[1] = x18; + out1[2] = x20; + out1[3] = x22; + out1[4] = x24; + out1[5] = x26; + out1[6] = x28; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_opp(uint32_t out1[7], const uint32_t arg1[7]) { + uint32_t x1; + fiat_p224_uint1 x2; + fiat_p224_subborrowx_u32(&x1, &x2, 0x0, 0x0, (arg1[0])); + uint32_t x3; + fiat_p224_uint1 x4; + fiat_p224_subborrowx_u32(&x3, &x4, x2, 0x0, (arg1[1])); + uint32_t x5; + fiat_p224_uint1 x6; + fiat_p224_subborrowx_u32(&x5, &x6, x4, 0x0, (arg1[2])); + uint32_t x7; + fiat_p224_uint1 x8; + fiat_p224_subborrowx_u32(&x7, &x8, x6, 0x0, (arg1[3])); + uint32_t x9; + fiat_p224_uint1 x10; + fiat_p224_subborrowx_u32(&x9, &x10, x8, 0x0, (arg1[4])); + uint32_t x11; + fiat_p224_uint1 x12; + fiat_p224_subborrowx_u32(&x11, &x12, x10, 0x0, (arg1[5])); + uint32_t x13; + fiat_p224_uint1 x14; + fiat_p224_subborrowx_u32(&x13, &x14, x12, 0x0, (arg1[6])); + uint32_t x15; + fiat_p224_cmovznz_u32(&x15, x14, 0x0, UINT32_C(0xffffffff)); + uint32_t x16; + fiat_p224_uint1 x17; + fiat_p224_addcarryx_u32(&x16, &x17, 0x0, (fiat_p224_uint1)(x15 & 0x1), x1); + uint32_t x18; + fiat_p224_uint1 x19; + fiat_p224_addcarryx_u32(&x18, &x19, x17, 0x0, x3); + uint32_t x20; + fiat_p224_uint1 x21; + fiat_p224_addcarryx_u32(&x20, &x21, x19, 0x0, x5); + uint32_t x22; + fiat_p224_uint1 x23; + fiat_p224_addcarryx_u32(&x22, &x23, x21, (x15 & UINT32_C(0xffffffff)), x7); + uint32_t x24; + fiat_p224_uint1 x25; + fiat_p224_addcarryx_u32(&x24, &x25, x23, (x15 & UINT32_C(0xffffffff)), x9); + uint32_t x26; + fiat_p224_uint1 x27; + fiat_p224_addcarryx_u32(&x26, &x27, x25, (x15 & UINT32_C(0xffffffff)), x11); + uint32_t x28; + fiat_p224_uint1 x29; + fiat_p224_addcarryx_u32(&x28, &x29, x27, (x15 & UINT32_C(0xffffffff)), x13); + out1[0] = x16; + out1[1] = x18; + out1[2] = x20; + out1[3] = x22; + out1[4] = x24; + out1[5] = x26; + out1[6] = x28; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_from_montgomery(uint32_t out1[7], const uint32_t arg1[7]) { + uint32_t x1 = (arg1[0]); + uint32_t x2; + uint32_t x3; + fiat_p224_mulx_u32(&x2, &x3, x1, UINT32_C(0xffffffff)); + uint32_t x4; + uint32_t x5; + fiat_p224_mulx_u32(&x4, &x5, x2, UINT32_C(0xffffffff)); + uint32_t x6; + uint32_t x7; + fiat_p224_mulx_u32(&x6, &x7, x2, UINT32_C(0xffffffff)); + uint32_t x8; + uint32_t x9; + fiat_p224_mulx_u32(&x8, &x9, x2, UINT32_C(0xffffffff)); + uint32_t x10; + uint32_t x11; + fiat_p224_mulx_u32(&x10, &x11, x2, UINT32_C(0xffffffff)); + uint32_t x12; + fiat_p224_uint1 x13; + fiat_p224_addcarryx_u32(&x12, &x13, 0x0, x8, x11); + uint32_t x14; + fiat_p224_uint1 x15; + fiat_p224_addcarryx_u32(&x14, &x15, x13, x6, x9); + uint32_t x16; + fiat_p224_uint1 x17; + fiat_p224_addcarryx_u32(&x16, &x17, x15, x4, x7); + uint32_t x18; + fiat_p224_uint1 x19; + fiat_p224_addcarryx_u32(&x18, &x19, 0x0, x2, x1); + uint32_t x20; + fiat_p224_uint1 x21; + fiat_p224_addcarryx_u32(&x20, &x21, x19, 0x0, 0x0); + uint32_t x22; + fiat_p224_uint1 x23; + fiat_p224_addcarryx_u32(&x22, &x23, 0x0, (arg1[1]), (fiat_p224_uint1)x20); + uint32_t x24; + uint32_t x25; + fiat_p224_mulx_u32(&x24, &x25, x22, UINT32_C(0xffffffff)); + uint32_t x26; + uint32_t x27; + fiat_p224_mulx_u32(&x26, &x27, x24, UINT32_C(0xffffffff)); + uint32_t x28; + uint32_t x29; + fiat_p224_mulx_u32(&x28, &x29, x24, UINT32_C(0xffffffff)); + uint32_t x30; + uint32_t x31; + fiat_p224_mulx_u32(&x30, &x31, x24, UINT32_C(0xffffffff)); + uint32_t x32; + uint32_t x33; + fiat_p224_mulx_u32(&x32, &x33, x24, UINT32_C(0xffffffff)); + uint32_t x34; + fiat_p224_uint1 x35; + fiat_p224_addcarryx_u32(&x34, &x35, 0x0, x30, x33); + uint32_t x36; + fiat_p224_uint1 x37; + fiat_p224_addcarryx_u32(&x36, &x37, x35, x28, x31); + uint32_t x38; + fiat_p224_uint1 x39; + fiat_p224_addcarryx_u32(&x38, &x39, x37, x26, x29); + uint32_t x40; + fiat_p224_uint1 x41; + fiat_p224_addcarryx_u32(&x40, &x41, x23, 0x0, 0x0); + uint32_t x42; + fiat_p224_uint1 x43; + fiat_p224_addcarryx_u32(&x42, &x43, 0x0, x24, x22); + uint32_t x44; + fiat_p224_uint1 x45; + fiat_p224_addcarryx_u32(&x44, &x45, x43, 0x0, (fiat_p224_uint1)x40); + uint32_t x46; + fiat_p224_uint1 x47; + fiat_p224_addcarryx_u32(&x46, &x47, x45, 0x0, x10); + uint32_t x48; + fiat_p224_uint1 x49; + fiat_p224_addcarryx_u32(&x48, &x49, x47, x32, x12); + uint32_t x50; + fiat_p224_uint1 x51; + fiat_p224_addcarryx_u32(&x50, &x51, x49, x34, x14); + uint32_t x52; + fiat_p224_uint1 x53; + fiat_p224_addcarryx_u32(&x52, &x53, x51, x36, x16); + uint32_t x54; + fiat_p224_uint1 x55; + fiat_p224_addcarryx_u32(&x54, &x55, x17, 0x0, x5); + uint32_t x56; + fiat_p224_uint1 x57; + fiat_p224_addcarryx_u32(&x56, &x57, x53, x38, x54); + uint32_t x58; + fiat_p224_uint1 x59; + fiat_p224_addcarryx_u32(&x58, &x59, x39, 0x0, x27); + uint32_t x60; + fiat_p224_uint1 x61; + fiat_p224_addcarryx_u32(&x60, &x61, x57, x58, 0x0); + uint32_t x62; + fiat_p224_uint1 x63; + fiat_p224_addcarryx_u32(&x62, &x63, 0x0, (arg1[2]), x44); + uint32_t x64; + fiat_p224_uint1 x65; + fiat_p224_addcarryx_u32(&x64, &x65, x63, 0x0, x46); + uint32_t x66; + fiat_p224_uint1 x67; + fiat_p224_addcarryx_u32(&x66, &x67, x65, 0x0, x48); + uint32_t x68; + fiat_p224_uint1 x69; + fiat_p224_addcarryx_u32(&x68, &x69, x67, 0x0, x50); + uint32_t x70; + fiat_p224_uint1 x71; + fiat_p224_addcarryx_u32(&x70, &x71, x69, 0x0, x52); + uint32_t x72; + fiat_p224_uint1 x73; + fiat_p224_addcarryx_u32(&x72, &x73, x71, 0x0, x56); + uint32_t x74; + fiat_p224_uint1 x75; + fiat_p224_addcarryx_u32(&x74, &x75, x73, 0x0, x60); + uint32_t x76; + fiat_p224_uint1 x77; + fiat_p224_addcarryx_u32(&x76, &x77, x61, 0x0, 0x0); + uint32_t x78; + fiat_p224_uint1 x79; + fiat_p224_addcarryx_u32(&x78, &x79, x75, 0x0, (fiat_p224_uint1)x76); + uint32_t x80; + uint32_t x81; + fiat_p224_mulx_u32(&x80, &x81, x62, UINT32_C(0xffffffff)); + uint32_t x82; + uint32_t x83; + fiat_p224_mulx_u32(&x82, &x83, x80, UINT32_C(0xffffffff)); + uint32_t x84; + uint32_t x85; + fiat_p224_mulx_u32(&x84, &x85, x80, UINT32_C(0xffffffff)); + uint32_t x86; + uint32_t x87; + fiat_p224_mulx_u32(&x86, &x87, x80, UINT32_C(0xffffffff)); + uint32_t x88; + uint32_t x89; + fiat_p224_mulx_u32(&x88, &x89, x80, UINT32_C(0xffffffff)); + uint32_t x90; + fiat_p224_uint1 x91; + fiat_p224_addcarryx_u32(&x90, &x91, 0x0, x86, x89); + uint32_t x92; + fiat_p224_uint1 x93; + fiat_p224_addcarryx_u32(&x92, &x93, x91, x84, x87); + uint32_t x94; + fiat_p224_uint1 x95; + fiat_p224_addcarryx_u32(&x94, &x95, x93, x82, x85); + uint32_t x96; + fiat_p224_uint1 x97; + fiat_p224_addcarryx_u32(&x96, &x97, 0x0, x80, x62); + uint32_t x98; + fiat_p224_uint1 x99; + fiat_p224_addcarryx_u32(&x98, &x99, x97, 0x0, x64); + uint32_t x100; + fiat_p224_uint1 x101; + fiat_p224_addcarryx_u32(&x100, &x101, x99, 0x0, x66); + uint32_t x102; + fiat_p224_uint1 x103; + fiat_p224_addcarryx_u32(&x102, &x103, x101, x88, x68); + uint32_t x104; + fiat_p224_uint1 x105; + fiat_p224_addcarryx_u32(&x104, &x105, x103, x90, x70); + uint32_t x106; + fiat_p224_uint1 x107; + fiat_p224_addcarryx_u32(&x106, &x107, x105, x92, x72); + uint32_t x108; + fiat_p224_uint1 x109; + fiat_p224_addcarryx_u32(&x108, &x109, x107, x94, x74); + uint32_t x110; + fiat_p224_uint1 x111; + fiat_p224_addcarryx_u32(&x110, &x111, x95, 0x0, x83); + uint32_t x112; + fiat_p224_uint1 x113; + fiat_p224_addcarryx_u32(&x112, &x113, x109, x110, x78); + uint32_t x114; + fiat_p224_uint1 x115; + fiat_p224_addcarryx_u32(&x114, &x115, 0x0, (arg1[3]), x98); + uint32_t x116; + fiat_p224_uint1 x117; + fiat_p224_addcarryx_u32(&x116, &x117, x115, 0x0, x100); + uint32_t x118; + fiat_p224_uint1 x119; + fiat_p224_addcarryx_u32(&x118, &x119, x117, 0x0, x102); + uint32_t x120; + fiat_p224_uint1 x121; + fiat_p224_addcarryx_u32(&x120, &x121, x119, 0x0, x104); + uint32_t x122; + fiat_p224_uint1 x123; + fiat_p224_addcarryx_u32(&x122, &x123, x121, 0x0, x106); + uint32_t x124; + fiat_p224_uint1 x125; + fiat_p224_addcarryx_u32(&x124, &x125, x123, 0x0, x108); + uint32_t x126; + fiat_p224_uint1 x127; + fiat_p224_addcarryx_u32(&x126, &x127, x125, 0x0, x112); + uint32_t x128; + fiat_p224_uint1 x129; + fiat_p224_addcarryx_u32(&x128, &x129, x113, 0x0, x79); + uint32_t x130; + fiat_p224_uint1 x131; + fiat_p224_addcarryx_u32(&x130, &x131, x127, 0x0, (fiat_p224_uint1)x128); + uint32_t x132; + uint32_t x133; + fiat_p224_mulx_u32(&x132, &x133, x114, UINT32_C(0xffffffff)); + uint32_t x134; + uint32_t x135; + fiat_p224_mulx_u32(&x134, &x135, x132, UINT32_C(0xffffffff)); + uint32_t x136; + uint32_t x137; + fiat_p224_mulx_u32(&x136, &x137, x132, UINT32_C(0xffffffff)); + uint32_t x138; + uint32_t x139; + fiat_p224_mulx_u32(&x138, &x139, x132, UINT32_C(0xffffffff)); + uint32_t x140; + uint32_t x141; + fiat_p224_mulx_u32(&x140, &x141, x132, UINT32_C(0xffffffff)); + uint32_t x142; + fiat_p224_uint1 x143; + fiat_p224_addcarryx_u32(&x142, &x143, 0x0, x138, x141); + uint32_t x144; + fiat_p224_uint1 x145; + fiat_p224_addcarryx_u32(&x144, &x145, x143, x136, x139); + uint32_t x146; + fiat_p224_uint1 x147; + fiat_p224_addcarryx_u32(&x146, &x147, x145, x134, x137); + uint32_t x148; + fiat_p224_uint1 x149; + fiat_p224_addcarryx_u32(&x148, &x149, 0x0, x132, x114); + uint32_t x150; + fiat_p224_uint1 x151; + fiat_p224_addcarryx_u32(&x150, &x151, x149, 0x0, x116); + uint32_t x152; + fiat_p224_uint1 x153; + fiat_p224_addcarryx_u32(&x152, &x153, x151, 0x0, x118); + uint32_t x154; + fiat_p224_uint1 x155; + fiat_p224_addcarryx_u32(&x154, &x155, x153, x140, x120); + uint32_t x156; + fiat_p224_uint1 x157; + fiat_p224_addcarryx_u32(&x156, &x157, x155, x142, x122); + uint32_t x158; + fiat_p224_uint1 x159; + fiat_p224_addcarryx_u32(&x158, &x159, x157, x144, x124); + uint32_t x160; + fiat_p224_uint1 x161; + fiat_p224_addcarryx_u32(&x160, &x161, x159, x146, x126); + uint32_t x162; + fiat_p224_uint1 x163; + fiat_p224_addcarryx_u32(&x162, &x163, x147, 0x0, x135); + uint32_t x164; + fiat_p224_uint1 x165; + fiat_p224_addcarryx_u32(&x164, &x165, x161, x162, x130); + uint32_t x166; + fiat_p224_uint1 x167; + fiat_p224_addcarryx_u32(&x166, &x167, 0x0, (arg1[4]), x150); + uint32_t x168; + fiat_p224_uint1 x169; + fiat_p224_addcarryx_u32(&x168, &x169, x167, 0x0, x152); + uint32_t x170; + fiat_p224_uint1 x171; + fiat_p224_addcarryx_u32(&x170, &x171, x169, 0x0, x154); + uint32_t x172; + fiat_p224_uint1 x173; + fiat_p224_addcarryx_u32(&x172, &x173, x171, 0x0, x156); + uint32_t x174; + fiat_p224_uint1 x175; + fiat_p224_addcarryx_u32(&x174, &x175, x173, 0x0, x158); + uint32_t x176; + fiat_p224_uint1 x177; + fiat_p224_addcarryx_u32(&x176, &x177, x175, 0x0, x160); + uint32_t x178; + fiat_p224_uint1 x179; + fiat_p224_addcarryx_u32(&x178, &x179, x177, 0x0, x164); + uint32_t x180; + fiat_p224_uint1 x181; + fiat_p224_addcarryx_u32(&x180, &x181, x165, 0x0, x131); + uint32_t x182; + fiat_p224_uint1 x183; + fiat_p224_addcarryx_u32(&x182, &x183, x179, 0x0, (fiat_p224_uint1)x180); + uint32_t x184; + uint32_t x185; + fiat_p224_mulx_u32(&x184, &x185, x166, UINT32_C(0xffffffff)); + uint32_t x186; + uint32_t x187; + fiat_p224_mulx_u32(&x186, &x187, x184, UINT32_C(0xffffffff)); + uint32_t x188; + uint32_t x189; + fiat_p224_mulx_u32(&x188, &x189, x184, UINT32_C(0xffffffff)); + uint32_t x190; + uint32_t x191; + fiat_p224_mulx_u32(&x190, &x191, x184, UINT32_C(0xffffffff)); + uint32_t x192; + uint32_t x193; + fiat_p224_mulx_u32(&x192, &x193, x184, UINT32_C(0xffffffff)); + uint32_t x194; + fiat_p224_uint1 x195; + fiat_p224_addcarryx_u32(&x194, &x195, 0x0, x190, x193); + uint32_t x196; + fiat_p224_uint1 x197; + fiat_p224_addcarryx_u32(&x196, &x197, x195, x188, x191); + uint32_t x198; + fiat_p224_uint1 x199; + fiat_p224_addcarryx_u32(&x198, &x199, x197, x186, x189); + uint32_t x200; + fiat_p224_uint1 x201; + fiat_p224_addcarryx_u32(&x200, &x201, 0x0, x184, x166); + uint32_t x202; + fiat_p224_uint1 x203; + fiat_p224_addcarryx_u32(&x202, &x203, x201, 0x0, x168); + uint32_t x204; + fiat_p224_uint1 x205; + fiat_p224_addcarryx_u32(&x204, &x205, x203, 0x0, x170); + uint32_t x206; + fiat_p224_uint1 x207; + fiat_p224_addcarryx_u32(&x206, &x207, x205, x192, x172); + uint32_t x208; + fiat_p224_uint1 x209; + fiat_p224_addcarryx_u32(&x208, &x209, x207, x194, x174); + uint32_t x210; + fiat_p224_uint1 x211; + fiat_p224_addcarryx_u32(&x210, &x211, x209, x196, x176); + uint32_t x212; + fiat_p224_uint1 x213; + fiat_p224_addcarryx_u32(&x212, &x213, x211, x198, x178); + uint32_t x214; + fiat_p224_uint1 x215; + fiat_p224_addcarryx_u32(&x214, &x215, x199, 0x0, x187); + uint32_t x216; + fiat_p224_uint1 x217; + fiat_p224_addcarryx_u32(&x216, &x217, x213, x214, x182); + uint32_t x218; + fiat_p224_uint1 x219; + fiat_p224_addcarryx_u32(&x218, &x219, 0x0, (arg1[5]), x202); + uint32_t x220; + fiat_p224_uint1 x221; + fiat_p224_addcarryx_u32(&x220, &x221, x219, 0x0, x204); + uint32_t x222; + fiat_p224_uint1 x223; + fiat_p224_addcarryx_u32(&x222, &x223, x221, 0x0, x206); + uint32_t x224; + fiat_p224_uint1 x225; + fiat_p224_addcarryx_u32(&x224, &x225, x223, 0x0, x208); + uint32_t x226; + fiat_p224_uint1 x227; + fiat_p224_addcarryx_u32(&x226, &x227, x225, 0x0, x210); + uint32_t x228; + fiat_p224_uint1 x229; + fiat_p224_addcarryx_u32(&x228, &x229, x227, 0x0, x212); + uint32_t x230; + fiat_p224_uint1 x231; + fiat_p224_addcarryx_u32(&x230, &x231, x229, 0x0, x216); + uint32_t x232; + fiat_p224_uint1 x233; + fiat_p224_addcarryx_u32(&x232, &x233, x217, 0x0, x183); + uint32_t x234; + fiat_p224_uint1 x235; + fiat_p224_addcarryx_u32(&x234, &x235, x231, 0x0, (fiat_p224_uint1)x232); + uint32_t x236; + uint32_t x237; + fiat_p224_mulx_u32(&x236, &x237, x218, UINT32_C(0xffffffff)); + uint32_t x238; + uint32_t x239; + fiat_p224_mulx_u32(&x238, &x239, x236, UINT32_C(0xffffffff)); + uint32_t x240; + uint32_t x241; + fiat_p224_mulx_u32(&x240, &x241, x236, UINT32_C(0xffffffff)); + uint32_t x242; + uint32_t x243; + fiat_p224_mulx_u32(&x242, &x243, x236, UINT32_C(0xffffffff)); + uint32_t x244; + uint32_t x245; + fiat_p224_mulx_u32(&x244, &x245, x236, UINT32_C(0xffffffff)); + uint32_t x246; + fiat_p224_uint1 x247; + fiat_p224_addcarryx_u32(&x246, &x247, 0x0, x242, x245); + uint32_t x248; + fiat_p224_uint1 x249; + fiat_p224_addcarryx_u32(&x248, &x249, x247, x240, x243); + uint32_t x250; + fiat_p224_uint1 x251; + fiat_p224_addcarryx_u32(&x250, &x251, x249, x238, x241); + uint32_t x252; + fiat_p224_uint1 x253; + fiat_p224_addcarryx_u32(&x252, &x253, 0x0, x236, x218); + uint32_t x254; + fiat_p224_uint1 x255; + fiat_p224_addcarryx_u32(&x254, &x255, x253, 0x0, x220); + uint32_t x256; + fiat_p224_uint1 x257; + fiat_p224_addcarryx_u32(&x256, &x257, x255, 0x0, x222); + uint32_t x258; + fiat_p224_uint1 x259; + fiat_p224_addcarryx_u32(&x258, &x259, x257, x244, x224); + uint32_t x260; + fiat_p224_uint1 x261; + fiat_p224_addcarryx_u32(&x260, &x261, x259, x246, x226); + uint32_t x262; + fiat_p224_uint1 x263; + fiat_p224_addcarryx_u32(&x262, &x263, x261, x248, x228); + uint32_t x264; + fiat_p224_uint1 x265; + fiat_p224_addcarryx_u32(&x264, &x265, x263, x250, x230); + uint32_t x266; + fiat_p224_uint1 x267; + fiat_p224_addcarryx_u32(&x266, &x267, x251, 0x0, x239); + uint32_t x268; + fiat_p224_uint1 x269; + fiat_p224_addcarryx_u32(&x268, &x269, x265, x266, x234); + uint32_t x270; + fiat_p224_uint1 x271; + fiat_p224_addcarryx_u32(&x270, &x271, 0x0, (arg1[6]), x254); + uint32_t x272; + fiat_p224_uint1 x273; + fiat_p224_addcarryx_u32(&x272, &x273, x271, 0x0, x256); + uint32_t x274; + fiat_p224_uint1 x275; + fiat_p224_addcarryx_u32(&x274, &x275, x273, 0x0, x258); + uint32_t x276; + fiat_p224_uint1 x277; + fiat_p224_addcarryx_u32(&x276, &x277, x275, 0x0, x260); + uint32_t x278; + fiat_p224_uint1 x279; + fiat_p224_addcarryx_u32(&x278, &x279, x277, 0x0, x262); + uint32_t x280; + fiat_p224_uint1 x281; + fiat_p224_addcarryx_u32(&x280, &x281, x279, 0x0, x264); + uint32_t x282; + fiat_p224_uint1 x283; + fiat_p224_addcarryx_u32(&x282, &x283, x281, 0x0, x268); + uint32_t x284; + fiat_p224_uint1 x285; + fiat_p224_addcarryx_u32(&x284, &x285, x269, 0x0, x235); + uint32_t x286; + fiat_p224_uint1 x287; + fiat_p224_addcarryx_u32(&x286, &x287, x283, 0x0, (fiat_p224_uint1)x284); + uint32_t x288; + uint32_t x289; + fiat_p224_mulx_u32(&x288, &x289, x270, UINT32_C(0xffffffff)); + uint32_t x290; + uint32_t x291; + fiat_p224_mulx_u32(&x290, &x291, x288, UINT32_C(0xffffffff)); + uint32_t x292; + uint32_t x293; + fiat_p224_mulx_u32(&x292, &x293, x288, UINT32_C(0xffffffff)); + uint32_t x294; + uint32_t x295; + fiat_p224_mulx_u32(&x294, &x295, x288, UINT32_C(0xffffffff)); + uint32_t x296; + uint32_t x297; + fiat_p224_mulx_u32(&x296, &x297, x288, UINT32_C(0xffffffff)); + uint32_t x298; + fiat_p224_uint1 x299; + fiat_p224_addcarryx_u32(&x298, &x299, 0x0, x294, x297); + uint32_t x300; + fiat_p224_uint1 x301; + fiat_p224_addcarryx_u32(&x300, &x301, x299, x292, x295); + uint32_t x302; + fiat_p224_uint1 x303; + fiat_p224_addcarryx_u32(&x302, &x303, x301, x290, x293); + uint32_t x304; + fiat_p224_uint1 x305; + fiat_p224_addcarryx_u32(&x304, &x305, 0x0, x288, x270); + uint32_t x306; + fiat_p224_uint1 x307; + fiat_p224_addcarryx_u32(&x306, &x307, x305, 0x0, x272); + uint32_t x308; + fiat_p224_uint1 x309; + fiat_p224_addcarryx_u32(&x308, &x309, x307, 0x0, x274); + uint32_t x310; + fiat_p224_uint1 x311; + fiat_p224_addcarryx_u32(&x310, &x311, x309, x296, x276); + uint32_t x312; + fiat_p224_uint1 x313; + fiat_p224_addcarryx_u32(&x312, &x313, x311, x298, x278); + uint32_t x314; + fiat_p224_uint1 x315; + fiat_p224_addcarryx_u32(&x314, &x315, x313, x300, x280); + uint32_t x316; + fiat_p224_uint1 x317; + fiat_p224_addcarryx_u32(&x316, &x317, x315, x302, x282); + uint32_t x318; + fiat_p224_uint1 x319; + fiat_p224_addcarryx_u32(&x318, &x319, x303, 0x0, x291); + uint32_t x320; + fiat_p224_uint1 x321; + fiat_p224_addcarryx_u32(&x320, &x321, x317, x318, x286); + uint32_t x322; + fiat_p224_uint1 x323; + fiat_p224_subborrowx_u32(&x322, &x323, 0x0, x306, 0x1); + uint32_t x324; + fiat_p224_uint1 x325; + fiat_p224_subborrowx_u32(&x324, &x325, x323, x308, 0x0); + uint32_t x326; + fiat_p224_uint1 x327; + fiat_p224_subborrowx_u32(&x326, &x327, x325, x310, 0x0); + uint32_t x328; + fiat_p224_uint1 x329; + fiat_p224_subborrowx_u32(&x328, &x329, x327, x312, UINT32_C(0xffffffff)); + uint32_t x330; + fiat_p224_uint1 x331; + fiat_p224_subborrowx_u32(&x330, &x331, x329, x314, UINT32_C(0xffffffff)); + uint32_t x332; + fiat_p224_uint1 x333; + fiat_p224_subborrowx_u32(&x332, &x333, x331, x316, UINT32_C(0xffffffff)); + uint32_t x334; + fiat_p224_uint1 x335; + fiat_p224_subborrowx_u32(&x334, &x335, x333, x320, UINT32_C(0xffffffff)); + uint32_t x336; + fiat_p224_uint1 x337; + fiat_p224_addcarryx_u32(&x336, &x337, x321, 0x0, x287); + uint32_t x338; + fiat_p224_uint1 x339; + fiat_p224_subborrowx_u32(&x338, &x339, x335, (fiat_p224_uint1)x336, 0x0); + uint32_t x340; + fiat_p224_cmovznz_u32(&x340, x339, x322, x306); + uint32_t x341; + fiat_p224_cmovznz_u32(&x341, x339, x324, x308); + uint32_t x342; + fiat_p224_cmovznz_u32(&x342, x339, x326, x310); + uint32_t x343; + fiat_p224_cmovznz_u32(&x343, x339, x328, x312); + uint32_t x344; + fiat_p224_cmovznz_u32(&x344, x339, x330, x314); + uint32_t x345; + fiat_p224_cmovznz_u32(&x345, x339, x332, x316); + uint32_t x346; + fiat_p224_cmovznz_u32(&x346, x339, x334, x320); + out1[0] = x340; + out1[1] = x341; + out1[2] = x342; + out1[3] = x343; + out1[4] = x344; + out1[5] = x345; + out1[6] = x346; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_p224_nonzero(uint32_t* out1, const uint32_t arg1[7]) { + uint32_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | ((arg1[5]) | ((arg1[6]) | (uint32_t)0x0))))))); + *out1 = x1; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_selectznz(uint32_t out1[7], fiat_p224_uint1 arg1, const uint32_t arg2[7], const uint32_t arg3[7]) { + uint32_t x1; + fiat_p224_cmovznz_u32(&x1, arg1, (arg2[0]), (arg3[0])); + uint32_t x2; + fiat_p224_cmovznz_u32(&x2, arg1, (arg2[1]), (arg3[1])); + uint32_t x3; + fiat_p224_cmovznz_u32(&x3, arg1, (arg2[2]), (arg3[2])); + uint32_t x4; + fiat_p224_cmovznz_u32(&x4, arg1, (arg2[3]), (arg3[3])); + uint32_t x5; + fiat_p224_cmovznz_u32(&x5, arg1, (arg2[4]), (arg3[4])); + uint32_t x6; + fiat_p224_cmovznz_u32(&x6, arg1, (arg2[5]), (arg3[5])); + uint32_t x7; + fiat_p224_cmovznz_u32(&x7, arg1, (arg2[6]), (arg3[6])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_p224_to_bytes(uint8_t out1[28], const uint32_t arg1[7]) { + uint32_t x1 = (arg1[6]); + uint32_t x2 = (arg1[5]); + uint32_t x3 = (arg1[4]); + uint32_t x4 = (arg1[3]); + uint32_t x5 = (arg1[2]); + uint32_t x6 = (arg1[1]); + uint32_t x7 = (arg1[0]); + uint32_t x8 = (x7 >> 8); + uint8_t x9 = (uint8_t)(x7 & UINT8_C(0xff)); + uint32_t x10 = (x8 >> 8); + uint8_t x11 = (uint8_t)(x8 & UINT8_C(0xff)); + uint8_t x12 = (uint8_t)(x10 >> 8); + uint8_t x13 = (uint8_t)(x10 & UINT8_C(0xff)); + fiat_p224_uint1 x14 = (fiat_p224_uint1)(x12 >> 8); + uint8_t x15 = (uint8_t)(x12 & UINT8_C(0xff)); + uint32_t x16 = (x14 + x6); + uint32_t x17 = (x16 >> 8); + uint8_t x18 = (uint8_t)(x16 & UINT8_C(0xff)); + uint32_t x19 = (x17 >> 8); + uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff)); + uint8_t x21 = (uint8_t)(x19 >> 8); + uint8_t x22 = (uint8_t)(x19 & UINT8_C(0xff)); + fiat_p224_uint1 x23 = (fiat_p224_uint1)(x21 >> 8); + uint8_t x24 = (uint8_t)(x21 & UINT8_C(0xff)); + uint32_t x25 = (x23 + x5); + uint32_t x26 = (x25 >> 8); + uint8_t x27 = (uint8_t)(x25 & UINT8_C(0xff)); + uint32_t x28 = (x26 >> 8); + uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff)); + uint8_t x30 = (uint8_t)(x28 >> 8); + uint8_t x31 = (uint8_t)(x28 & UINT8_C(0xff)); + fiat_p224_uint1 x32 = (fiat_p224_uint1)(x30 >> 8); + uint8_t x33 = (uint8_t)(x30 & UINT8_C(0xff)); + uint32_t x34 = (x32 + x4); + uint32_t x35 = (x34 >> 8); + uint8_t x36 = (uint8_t)(x34 & UINT8_C(0xff)); + uint32_t x37 = (x35 >> 8); + uint8_t x38 = (uint8_t)(x35 & UINT8_C(0xff)); + uint8_t x39 = (uint8_t)(x37 >> 8); + uint8_t x40 = (uint8_t)(x37 & UINT8_C(0xff)); + fiat_p224_uint1 x41 = (fiat_p224_uint1)(x39 >> 8); + uint8_t x42 = (uint8_t)(x39 & UINT8_C(0xff)); + uint32_t x43 = (x41 + x3); + uint32_t x44 = (x43 >> 8); + uint8_t x45 = (uint8_t)(x43 & UINT8_C(0xff)); + uint32_t x46 = (x44 >> 8); + uint8_t x47 = (uint8_t)(x44 & UINT8_C(0xff)); + uint8_t x48 = (uint8_t)(x46 >> 8); + uint8_t x49 = (uint8_t)(x46 & UINT8_C(0xff)); + fiat_p224_uint1 x50 = (fiat_p224_uint1)(x48 >> 8); + uint8_t x51 = (uint8_t)(x48 & UINT8_C(0xff)); + uint32_t x52 = (x50 + x2); + uint32_t x53 = (x52 >> 8); + uint8_t x54 = (uint8_t)(x52 & UINT8_C(0xff)); + uint32_t x55 = (x53 >> 8); + uint8_t x56 = (uint8_t)(x53 & UINT8_C(0xff)); + uint8_t x57 = (uint8_t)(x55 >> 8); + uint8_t x58 = (uint8_t)(x55 & UINT8_C(0xff)); + fiat_p224_uint1 x59 = (fiat_p224_uint1)(x57 >> 8); + uint8_t x60 = (uint8_t)(x57 & UINT8_C(0xff)); + uint32_t x61 = (x59 + x1); + uint32_t x62 = (x61 >> 8); + uint8_t x63 = (uint8_t)(x61 & UINT8_C(0xff)); + uint32_t x64 = (x62 >> 8); + uint8_t x65 = (uint8_t)(x62 & UINT8_C(0xff)); + uint8_t x66 = (uint8_t)(x64 >> 8); + uint8_t x67 = (uint8_t)(x64 & UINT8_C(0xff)); + out1[0] = x9; + out1[1] = x11; + out1[2] = x13; + out1[3] = x15; + out1[4] = x18; + out1[5] = x20; + out1[6] = x22; + out1[7] = x24; + out1[8] = x27; + out1[9] = x29; + out1[10] = x31; + out1[11] = x33; + out1[12] = x36; + out1[13] = x38; + out1[14] = x40; + out1[15] = x42; + out1[16] = x45; + out1[17] = x47; + out1[18] = x49; + out1[19] = x51; + out1[20] = x54; + out1[21] = x56; + out1[22] = x58; + out1[23] = x60; + out1[24] = x63; + out1[25] = x65; + out1[26] = x67; + out1[27] = x66; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_from_bytes(uint32_t out1[7], const uint8_t arg1[28]) { + uint32_t x1 = ((uint32_t)(arg1[27]) << 24); + uint32_t x2 = ((uint32_t)(arg1[26]) << 16); + uint32_t x3 = ((uint32_t)(arg1[25]) << 8); + uint8_t x4 = (arg1[24]); + uint32_t x5 = ((uint32_t)(arg1[23]) << 24); + uint32_t x6 = ((uint32_t)(arg1[22]) << 16); + uint32_t x7 = ((uint32_t)(arg1[21]) << 8); + uint8_t x8 = (arg1[20]); + uint32_t x9 = ((uint32_t)(arg1[19]) << 24); + uint32_t x10 = ((uint32_t)(arg1[18]) << 16); + uint32_t x11 = ((uint32_t)(arg1[17]) << 8); + uint8_t x12 = (arg1[16]); + uint32_t x13 = ((uint32_t)(arg1[15]) << 24); + uint32_t x14 = ((uint32_t)(arg1[14]) << 16); + uint32_t x15 = ((uint32_t)(arg1[13]) << 8); + uint8_t x16 = (arg1[12]); + uint32_t x17 = ((uint32_t)(arg1[11]) << 24); + uint32_t x18 = ((uint32_t)(arg1[10]) << 16); + uint32_t x19 = ((uint32_t)(arg1[9]) << 8); + uint8_t x20 = (arg1[8]); + uint32_t x21 = ((uint32_t)(arg1[7]) << 24); + uint32_t x22 = ((uint32_t)(arg1[6]) << 16); + uint32_t x23 = ((uint32_t)(arg1[5]) << 8); + uint8_t x24 = (arg1[4]); + uint32_t x25 = ((uint32_t)(arg1[3]) << 24); + uint32_t x26 = ((uint32_t)(arg1[2]) << 16); + uint32_t x27 = ((uint32_t)(arg1[1]) << 8); + uint8_t x28 = (arg1[0]); + uint32_t x29 = (x28 + (x27 + (x26 + x25))); + fiat_p224_uint1 x30 = (fiat_p224_uint1)((uint64_t)x29 >> 32); + uint32_t x31 = (x29 & UINT32_C(0xffffffff)); + uint32_t x32 = (x4 + (x3 + (x2 + x1))); + uint32_t x33 = (x8 + (x7 + (x6 + x5))); + uint32_t x34 = (x12 + (x11 + (x10 + x9))); + uint32_t x35 = (x16 + (x15 + (x14 + x13))); + uint32_t x36 = (x20 + (x19 + (x18 + x17))); + uint32_t x37 = (x24 + (x23 + (x22 + x21))); + uint32_t x38 = (x30 + x37); + fiat_p224_uint1 x39 = (fiat_p224_uint1)((uint64_t)x38 >> 32); + uint32_t x40 = (x38 & UINT32_C(0xffffffff)); + uint32_t x41 = (x39 + x36); + fiat_p224_uint1 x42 = (fiat_p224_uint1)((uint64_t)x41 >> 32); + uint32_t x43 = (x41 & UINT32_C(0xffffffff)); + uint32_t x44 = (x42 + x35); + fiat_p224_uint1 x45 = (fiat_p224_uint1)((uint64_t)x44 >> 32); + uint32_t x46 = (x44 & UINT32_C(0xffffffff)); + uint32_t x47 = (x45 + x34); + fiat_p224_uint1 x48 = (fiat_p224_uint1)((uint64_t)x47 >> 32); + uint32_t x49 = (x47 & UINT32_C(0xffffffff)); + uint32_t x50 = (x48 + x33); + fiat_p224_uint1 x51 = (fiat_p224_uint1)((uint64_t)x50 >> 32); + uint32_t x52 = (x50 & UINT32_C(0xffffffff)); + uint32_t x53 = (x51 + x32); + out1[0] = x31; + out1[1] = x40; + out1[2] = x43; + out1[3] = x46; + out1[4] = x49; + out1[5] = x52; + out1[6] = x53; +} + diff --git a/p224_64.c b/p224_64.c new file mode 100644 index 000000000..6ef3781bb --- /dev/null +++ b/p224_64.c @@ -0,0 +1,1329 @@ +/* Autogenerated */ +/* curve description: p224 */ +/* requested operations: (all) */ +/* s = 0x100000000000000000000000000000000000000000000000000000000 (from "2^224") */ +/* c = [(79228162514264337593543950336, 1), (1, -1)] (from "2^96,1;1,-1") */ +/* machine_wordsize = 64 (from "64") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ + +#include <stdint.h> +typedef unsigned char fiat_p224_uint1; +typedef signed char fiat_p224_int1; +typedef signed __int128 fiat_p224_int128; +typedef unsigned __int128 fiat_p224_uint128; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p224_addcarryx_u64(uint64_t* out1, fiat_p224_uint1* out2, fiat_p224_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p224_uint128 x1 = ((arg1 + (fiat_p224_uint128)arg2) + arg3); + uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + fiat_p224_uint1 x3 = (fiat_p224_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p224_subborrowx_u64(uint64_t* out1, fiat_p224_uint1* out2, fiat_p224_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p224_int128 x1 = ((arg2 - (fiat_p224_int128)arg1) - arg3); + fiat_p224_int1 x2 = (fiat_p224_int1)((fiat_p224_uint128)x1 >> 64); + uint64_t x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_p224_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p224_mulx_u64(uint64_t* out1, uint64_t* out2, uint64_t arg1, uint64_t arg2) { + fiat_p224_uint128 x1 = ((fiat_p224_uint128)arg1 * arg2); + uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p224_cmovznz_u64(uint64_t* out1, fiat_p224_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p224_uint1 x1 = (!(!arg1)); + uint64_t x2 = ((fiat_p224_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = ((x2 & arg3) | (uint64_t)((fiat_p224_uint128)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_mul(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1 = (arg1[1]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[0]); + uint64_t x5; + uint64_t x6; + fiat_p224_mulx_u64(&x5, &x6, x4, (arg2[3])); + uint64_t x7; + uint64_t x8; + fiat_p224_mulx_u64(&x7, &x8, x4, (arg2[2])); + uint64_t x9; + uint64_t x10; + fiat_p224_mulx_u64(&x9, &x10, x4, (arg2[1])); + uint64_t x11; + uint64_t x12; + fiat_p224_mulx_u64(&x11, &x12, x4, (arg2[0])); + uint64_t x13; + fiat_p224_uint1 x14; + fiat_p224_addcarryx_u64(&x13, &x14, 0x0, x9, x12); + uint64_t x15; + fiat_p224_uint1 x16; + fiat_p224_addcarryx_u64(&x15, &x16, x14, x7, x10); + uint64_t x17; + fiat_p224_uint1 x18; + fiat_p224_addcarryx_u64(&x17, &x18, x16, x5, x8); + uint64_t x19; + fiat_p224_uint1 x20; + fiat_p224_addcarryx_u64(&x19, &x20, x18, 0x0, x6); + uint64_t x21; + uint64_t x22; + fiat_p224_mulx_u64(&x21, &x22, x11, UINT64_C(0xffffffffffffffff)); + uint64_t x23; + uint64_t x24; + fiat_p224_mulx_u64(&x23, &x24, x21, UINT32_C(0xffffffff)); + uint64_t x25; + uint64_t x26; + fiat_p224_mulx_u64(&x25, &x26, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x27; + uint64_t x28; + fiat_p224_mulx_u64(&x27, &x28, x21, UINT64_C(0xffffffff00000000)); + uint64_t x29; + fiat_p224_uint1 x30; + fiat_p224_addcarryx_u64(&x29, &x30, 0x0, x25, x28); + uint64_t x31; + fiat_p224_uint1 x32; + fiat_p224_addcarryx_u64(&x31, &x32, x30, x23, x26); + uint64_t x33; + fiat_p224_uint1 x34; + fiat_p224_addcarryx_u64(&x33, &x34, x32, 0x0, x24); + uint64_t x35; + fiat_p224_uint1 x36; + fiat_p224_addcarryx_u64(&x35, &x36, 0x0, x21, x11); + uint64_t x37; + fiat_p224_uint1 x38; + fiat_p224_addcarryx_u64(&x37, &x38, x36, x27, x13); + uint64_t x39; + fiat_p224_uint1 x40; + fiat_p224_addcarryx_u64(&x39, &x40, x38, x29, x15); + uint64_t x41; + fiat_p224_uint1 x42; + fiat_p224_addcarryx_u64(&x41, &x42, x40, x31, x17); + uint64_t x43; + fiat_p224_uint1 x44; + fiat_p224_addcarryx_u64(&x43, &x44, x42, x33, x19); + uint64_t x45; + fiat_p224_uint1 x46; + fiat_p224_addcarryx_u64(&x45, &x46, x44, 0x0, 0x0); + uint64_t x47; + uint64_t x48; + fiat_p224_mulx_u64(&x47, &x48, x1, (arg2[3])); + uint64_t x49; + uint64_t x50; + fiat_p224_mulx_u64(&x49, &x50, x1, (arg2[2])); + uint64_t x51; + uint64_t x52; + fiat_p224_mulx_u64(&x51, &x52, x1, (arg2[1])); + uint64_t x53; + uint64_t x54; + fiat_p224_mulx_u64(&x53, &x54, x1, (arg2[0])); + uint64_t x55; + fiat_p224_uint1 x56; + fiat_p224_addcarryx_u64(&x55, &x56, 0x0, x51, x54); + uint64_t x57; + fiat_p224_uint1 x58; + fiat_p224_addcarryx_u64(&x57, &x58, x56, x49, x52); + uint64_t x59; + fiat_p224_uint1 x60; + fiat_p224_addcarryx_u64(&x59, &x60, x58, x47, x50); + uint64_t x61; + fiat_p224_uint1 x62; + fiat_p224_addcarryx_u64(&x61, &x62, x60, 0x0, x48); + uint64_t x63; + fiat_p224_uint1 x64; + fiat_p224_addcarryx_u64(&x63, &x64, 0x0, x53, x37); + uint64_t x65; + fiat_p224_uint1 x66; + fiat_p224_addcarryx_u64(&x65, &x66, x64, x55, x39); + uint64_t x67; + fiat_p224_uint1 x68; + fiat_p224_addcarryx_u64(&x67, &x68, x66, x57, x41); + uint64_t x69; + fiat_p224_uint1 x70; + fiat_p224_addcarryx_u64(&x69, &x70, x68, x59, x43); + uint64_t x71; + fiat_p224_uint1 x72; + fiat_p224_addcarryx_u64(&x71, &x72, x70, x61, (fiat_p224_uint1)x45); + uint64_t x73; + uint64_t x74; + fiat_p224_mulx_u64(&x73, &x74, x63, UINT64_C(0xffffffffffffffff)); + uint64_t x75; + uint64_t x76; + fiat_p224_mulx_u64(&x75, &x76, x73, UINT32_C(0xffffffff)); + uint64_t x77; + uint64_t x78; + fiat_p224_mulx_u64(&x77, &x78, x73, UINT64_C(0xffffffffffffffff)); + uint64_t x79; + uint64_t x80; + fiat_p224_mulx_u64(&x79, &x80, x73, UINT64_C(0xffffffff00000000)); + uint64_t x81; + fiat_p224_uint1 x82; + fiat_p224_addcarryx_u64(&x81, &x82, 0x0, x77, x80); + uint64_t x83; + fiat_p224_uint1 x84; + fiat_p224_addcarryx_u64(&x83, &x84, x82, x75, x78); + uint64_t x85; + fiat_p224_uint1 x86; + fiat_p224_addcarryx_u64(&x85, &x86, x84, 0x0, x76); + uint64_t x87; + fiat_p224_uint1 x88; + fiat_p224_addcarryx_u64(&x87, &x88, 0x0, x73, x63); + uint64_t x89; + fiat_p224_uint1 x90; + fiat_p224_addcarryx_u64(&x89, &x90, x88, x79, x65); + uint64_t x91; + fiat_p224_uint1 x92; + fiat_p224_addcarryx_u64(&x91, &x92, x90, x81, x67); + uint64_t x93; + fiat_p224_uint1 x94; + fiat_p224_addcarryx_u64(&x93, &x94, x92, x83, x69); + uint64_t x95; + fiat_p224_uint1 x96; + fiat_p224_addcarryx_u64(&x95, &x96, x94, x85, x71); + uint64_t x97; + fiat_p224_uint1 x98; + fiat_p224_addcarryx_u64(&x97, &x98, x96, 0x0, x72); + uint64_t x99; + uint64_t x100; + fiat_p224_mulx_u64(&x99, &x100, x2, (arg2[3])); + uint64_t x101; + uint64_t x102; + fiat_p224_mulx_u64(&x101, &x102, x2, (arg2[2])); + uint64_t x103; + uint64_t x104; + fiat_p224_mulx_u64(&x103, &x104, x2, (arg2[1])); + uint64_t x105; + uint64_t x106; + fiat_p224_mulx_u64(&x105, &x106, x2, (arg2[0])); + uint64_t x107; + fiat_p224_uint1 x108; + fiat_p224_addcarryx_u64(&x107, &x108, 0x0, x103, x106); + uint64_t x109; + fiat_p224_uint1 x110; + fiat_p224_addcarryx_u64(&x109, &x110, x108, x101, x104); + uint64_t x111; + fiat_p224_uint1 x112; + fiat_p224_addcarryx_u64(&x111, &x112, x110, x99, x102); + uint64_t x113; + fiat_p224_uint1 x114; + fiat_p224_addcarryx_u64(&x113, &x114, x112, 0x0, x100); + uint64_t x115; + fiat_p224_uint1 x116; + fiat_p224_addcarryx_u64(&x115, &x116, 0x0, x105, x89); + uint64_t x117; + fiat_p224_uint1 x118; + fiat_p224_addcarryx_u64(&x117, &x118, x116, x107, x91); + uint64_t x119; + fiat_p224_uint1 x120; + fiat_p224_addcarryx_u64(&x119, &x120, x118, x109, x93); + uint64_t x121; + fiat_p224_uint1 x122; + fiat_p224_addcarryx_u64(&x121, &x122, x120, x111, x95); + uint64_t x123; + fiat_p224_uint1 x124; + fiat_p224_addcarryx_u64(&x123, &x124, x122, x113, x97); + uint64_t x125; + uint64_t x126; + fiat_p224_mulx_u64(&x125, &x126, x115, UINT64_C(0xffffffffffffffff)); + uint64_t x127; + uint64_t x128; + fiat_p224_mulx_u64(&x127, &x128, x125, UINT32_C(0xffffffff)); + uint64_t x129; + uint64_t x130; + fiat_p224_mulx_u64(&x129, &x130, x125, UINT64_C(0xffffffffffffffff)); + uint64_t x131; + uint64_t x132; + fiat_p224_mulx_u64(&x131, &x132, x125, UINT64_C(0xffffffff00000000)); + uint64_t x133; + fiat_p224_uint1 x134; + fiat_p224_addcarryx_u64(&x133, &x134, 0x0, x129, x132); + uint64_t x135; + fiat_p224_uint1 x136; + fiat_p224_addcarryx_u64(&x135, &x136, x134, x127, x130); + uint64_t x137; + fiat_p224_uint1 x138; + fiat_p224_addcarryx_u64(&x137, &x138, x136, 0x0, x128); + uint64_t x139; + fiat_p224_uint1 x140; + fiat_p224_addcarryx_u64(&x139, &x140, 0x0, x125, x115); + uint64_t x141; + fiat_p224_uint1 x142; + fiat_p224_addcarryx_u64(&x141, &x142, x140, x131, x117); + uint64_t x143; + fiat_p224_uint1 x144; + fiat_p224_addcarryx_u64(&x143, &x144, x142, x133, x119); + uint64_t x145; + fiat_p224_uint1 x146; + fiat_p224_addcarryx_u64(&x145, &x146, x144, x135, x121); + uint64_t x147; + fiat_p224_uint1 x148; + fiat_p224_addcarryx_u64(&x147, &x148, x146, x137, x123); + uint64_t x149; + fiat_p224_uint1 x150; + fiat_p224_addcarryx_u64(&x149, &x150, x148, 0x0, x124); + uint64_t x151; + uint64_t x152; + fiat_p224_mulx_u64(&x151, &x152, x3, (arg2[3])); + uint64_t x153; + uint64_t x154; + fiat_p224_mulx_u64(&x153, &x154, x3, (arg2[2])); + uint64_t x155; + uint64_t x156; + fiat_p224_mulx_u64(&x155, &x156, x3, (arg2[1])); + uint64_t x157; + uint64_t x158; + fiat_p224_mulx_u64(&x157, &x158, x3, (arg2[0])); + uint64_t x159; + fiat_p224_uint1 x160; + fiat_p224_addcarryx_u64(&x159, &x160, 0x0, x155, x158); + uint64_t x161; + fiat_p224_uint1 x162; + fiat_p224_addcarryx_u64(&x161, &x162, x160, x153, x156); + uint64_t x163; + fiat_p224_uint1 x164; + fiat_p224_addcarryx_u64(&x163, &x164, x162, x151, x154); + uint64_t x165; + fiat_p224_uint1 x166; + fiat_p224_addcarryx_u64(&x165, &x166, x164, 0x0, x152); + uint64_t x167; + fiat_p224_uint1 x168; + fiat_p224_addcarryx_u64(&x167, &x168, 0x0, x157, x141); + uint64_t x169; + fiat_p224_uint1 x170; + fiat_p224_addcarryx_u64(&x169, &x170, x168, x159, x143); + uint64_t x171; + fiat_p224_uint1 x172; + fiat_p224_addcarryx_u64(&x171, &x172, x170, x161, x145); + uint64_t x173; + fiat_p224_uint1 x174; + fiat_p224_addcarryx_u64(&x173, &x174, x172, x163, x147); + uint64_t x175; + fiat_p224_uint1 x176; + fiat_p224_addcarryx_u64(&x175, &x176, x174, x165, x149); + uint64_t x177; + uint64_t x178; + fiat_p224_mulx_u64(&x177, &x178, x167, UINT64_C(0xffffffffffffffff)); + uint64_t x179; + uint64_t x180; + fiat_p224_mulx_u64(&x179, &x180, x177, UINT32_C(0xffffffff)); + uint64_t x181; + uint64_t x182; + fiat_p224_mulx_u64(&x181, &x182, x177, UINT64_C(0xffffffffffffffff)); + uint64_t x183; + uint64_t x184; + fiat_p224_mulx_u64(&x183, &x184, x177, UINT64_C(0xffffffff00000000)); + uint64_t x185; + fiat_p224_uint1 x186; + fiat_p224_addcarryx_u64(&x185, &x186, 0x0, x181, x184); + uint64_t x187; + fiat_p224_uint1 x188; + fiat_p224_addcarryx_u64(&x187, &x188, x186, x179, x182); + uint64_t x189; + fiat_p224_uint1 x190; + fiat_p224_addcarryx_u64(&x189, &x190, x188, 0x0, x180); + uint64_t x191; + fiat_p224_uint1 x192; + fiat_p224_addcarryx_u64(&x191, &x192, 0x0, x177, x167); + uint64_t x193; + fiat_p224_uint1 x194; + fiat_p224_addcarryx_u64(&x193, &x194, x192, x183, x169); + uint64_t x195; + fiat_p224_uint1 x196; + fiat_p224_addcarryx_u64(&x195, &x196, x194, x185, x171); + uint64_t x197; + fiat_p224_uint1 x198; + fiat_p224_addcarryx_u64(&x197, &x198, x196, x187, x173); + uint64_t x199; + fiat_p224_uint1 x200; + fiat_p224_addcarryx_u64(&x199, &x200, x198, x189, x175); + uint64_t x201; + fiat_p224_uint1 x202; + fiat_p224_addcarryx_u64(&x201, &x202, x200, 0x0, x176); + uint64_t x203; + fiat_p224_uint1 x204; + fiat_p224_subborrowx_u64(&x203, &x204, 0x0, x193, 0x1); + uint64_t x205; + fiat_p224_uint1 x206; + fiat_p224_subborrowx_u64(&x205, &x206, x204, x195, UINT64_C(0xffffffff00000000)); + uint64_t x207; + fiat_p224_uint1 x208; + fiat_p224_subborrowx_u64(&x207, &x208, x206, x197, UINT64_C(0xffffffffffffffff)); + uint64_t x209; + fiat_p224_uint1 x210; + fiat_p224_subborrowx_u64(&x209, &x210, x208, x199, UINT32_C(0xffffffff)); + uint64_t x211; + fiat_p224_uint1 x212; + fiat_p224_subborrowx_u64(&x211, &x212, x210, x201, 0x0); + uint64_t x213; + fiat_p224_cmovznz_u64(&x213, x212, x203, x193); + uint64_t x214; + fiat_p224_cmovznz_u64(&x214, x212, x205, x195); + uint64_t x215; + fiat_p224_cmovznz_u64(&x215, x212, x207, x197); + uint64_t x216; + fiat_p224_cmovznz_u64(&x216, x212, x209, x199); + out1[0] = x213; + out1[1] = x214; + out1[2] = x215; + out1[3] = x216; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_square(uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1 = (arg1[1]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[0]); + uint64_t x5; + uint64_t x6; + fiat_p224_mulx_u64(&x5, &x6, x4, (arg1[3])); + uint64_t x7; + uint64_t x8; + fiat_p224_mulx_u64(&x7, &x8, x4, (arg1[2])); + uint64_t x9; + uint64_t x10; + fiat_p224_mulx_u64(&x9, &x10, x4, (arg1[1])); + uint64_t x11; + uint64_t x12; + fiat_p224_mulx_u64(&x11, &x12, x4, (arg1[0])); + uint64_t x13; + fiat_p224_uint1 x14; + fiat_p224_addcarryx_u64(&x13, &x14, 0x0, x9, x12); + uint64_t x15; + fiat_p224_uint1 x16; + fiat_p224_addcarryx_u64(&x15, &x16, x14, x7, x10); + uint64_t x17; + fiat_p224_uint1 x18; + fiat_p224_addcarryx_u64(&x17, &x18, x16, x5, x8); + uint64_t x19; + fiat_p224_uint1 x20; + fiat_p224_addcarryx_u64(&x19, &x20, x18, 0x0, x6); + uint64_t x21; + uint64_t x22; + fiat_p224_mulx_u64(&x21, &x22, x11, UINT64_C(0xffffffffffffffff)); + uint64_t x23; + uint64_t x24; + fiat_p224_mulx_u64(&x23, &x24, x21, UINT32_C(0xffffffff)); + uint64_t x25; + uint64_t x26; + fiat_p224_mulx_u64(&x25, &x26, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x27; + uint64_t x28; + fiat_p224_mulx_u64(&x27, &x28, x21, UINT64_C(0xffffffff00000000)); + uint64_t x29; + fiat_p224_uint1 x30; + fiat_p224_addcarryx_u64(&x29, &x30, 0x0, x25, x28); + uint64_t x31; + fiat_p224_uint1 x32; + fiat_p224_addcarryx_u64(&x31, &x32, x30, x23, x26); + uint64_t x33; + fiat_p224_uint1 x34; + fiat_p224_addcarryx_u64(&x33, &x34, x32, 0x0, x24); + uint64_t x35; + fiat_p224_uint1 x36; + fiat_p224_addcarryx_u64(&x35, &x36, 0x0, x21, x11); + uint64_t x37; + fiat_p224_uint1 x38; + fiat_p224_addcarryx_u64(&x37, &x38, x36, x27, x13); + uint64_t x39; + fiat_p224_uint1 x40; + fiat_p224_addcarryx_u64(&x39, &x40, x38, x29, x15); + uint64_t x41; + fiat_p224_uint1 x42; + fiat_p224_addcarryx_u64(&x41, &x42, x40, x31, x17); + uint64_t x43; + fiat_p224_uint1 x44; + fiat_p224_addcarryx_u64(&x43, &x44, x42, x33, x19); + uint64_t x45; + fiat_p224_uint1 x46; + fiat_p224_addcarryx_u64(&x45, &x46, x44, 0x0, 0x0); + uint64_t x47; + uint64_t x48; + fiat_p224_mulx_u64(&x47, &x48, x1, (arg1[3])); + uint64_t x49; + uint64_t x50; + fiat_p224_mulx_u64(&x49, &x50, x1, (arg1[2])); + uint64_t x51; + uint64_t x52; + fiat_p224_mulx_u64(&x51, &x52, x1, (arg1[1])); + uint64_t x53; + uint64_t x54; + fiat_p224_mulx_u64(&x53, &x54, x1, (arg1[0])); + uint64_t x55; + fiat_p224_uint1 x56; + fiat_p224_addcarryx_u64(&x55, &x56, 0x0, x51, x54); + uint64_t x57; + fiat_p224_uint1 x58; + fiat_p224_addcarryx_u64(&x57, &x58, x56, x49, x52); + uint64_t x59; + fiat_p224_uint1 x60; + fiat_p224_addcarryx_u64(&x59, &x60, x58, x47, x50); + uint64_t x61; + fiat_p224_uint1 x62; + fiat_p224_addcarryx_u64(&x61, &x62, x60, 0x0, x48); + uint64_t x63; + fiat_p224_uint1 x64; + fiat_p224_addcarryx_u64(&x63, &x64, 0x0, x53, x37); + uint64_t x65; + fiat_p224_uint1 x66; + fiat_p224_addcarryx_u64(&x65, &x66, x64, x55, x39); + uint64_t x67; + fiat_p224_uint1 x68; + fiat_p224_addcarryx_u64(&x67, &x68, x66, x57, x41); + uint64_t x69; + fiat_p224_uint1 x70; + fiat_p224_addcarryx_u64(&x69, &x70, x68, x59, x43); + uint64_t x71; + fiat_p224_uint1 x72; + fiat_p224_addcarryx_u64(&x71, &x72, x70, x61, (fiat_p224_uint1)x45); + uint64_t x73; + uint64_t x74; + fiat_p224_mulx_u64(&x73, &x74, x63, UINT64_C(0xffffffffffffffff)); + uint64_t x75; + uint64_t x76; + fiat_p224_mulx_u64(&x75, &x76, x73, UINT32_C(0xffffffff)); + uint64_t x77; + uint64_t x78; + fiat_p224_mulx_u64(&x77, &x78, x73, UINT64_C(0xffffffffffffffff)); + uint64_t x79; + uint64_t x80; + fiat_p224_mulx_u64(&x79, &x80, x73, UINT64_C(0xffffffff00000000)); + uint64_t x81; + fiat_p224_uint1 x82; + fiat_p224_addcarryx_u64(&x81, &x82, 0x0, x77, x80); + uint64_t x83; + fiat_p224_uint1 x84; + fiat_p224_addcarryx_u64(&x83, &x84, x82, x75, x78); + uint64_t x85; + fiat_p224_uint1 x86; + fiat_p224_addcarryx_u64(&x85, &x86, x84, 0x0, x76); + uint64_t x87; + fiat_p224_uint1 x88; + fiat_p224_addcarryx_u64(&x87, &x88, 0x0, x73, x63); + uint64_t x89; + fiat_p224_uint1 x90; + fiat_p224_addcarryx_u64(&x89, &x90, x88, x79, x65); + uint64_t x91; + fiat_p224_uint1 x92; + fiat_p224_addcarryx_u64(&x91, &x92, x90, x81, x67); + uint64_t x93; + fiat_p224_uint1 x94; + fiat_p224_addcarryx_u64(&x93, &x94, x92, x83, x69); + uint64_t x95; + fiat_p224_uint1 x96; + fiat_p224_addcarryx_u64(&x95, &x96, x94, x85, x71); + uint64_t x97; + fiat_p224_uint1 x98; + fiat_p224_addcarryx_u64(&x97, &x98, x96, 0x0, x72); + uint64_t x99; + uint64_t x100; + fiat_p224_mulx_u64(&x99, &x100, x2, (arg1[3])); + uint64_t x101; + uint64_t x102; + fiat_p224_mulx_u64(&x101, &x102, x2, (arg1[2])); + uint64_t x103; + uint64_t x104; + fiat_p224_mulx_u64(&x103, &x104, x2, (arg1[1])); + uint64_t x105; + uint64_t x106; + fiat_p224_mulx_u64(&x105, &x106, x2, (arg1[0])); + uint64_t x107; + fiat_p224_uint1 x108; + fiat_p224_addcarryx_u64(&x107, &x108, 0x0, x103, x106); + uint64_t x109; + fiat_p224_uint1 x110; + fiat_p224_addcarryx_u64(&x109, &x110, x108, x101, x104); + uint64_t x111; + fiat_p224_uint1 x112; + fiat_p224_addcarryx_u64(&x111, &x112, x110, x99, x102); + uint64_t x113; + fiat_p224_uint1 x114; + fiat_p224_addcarryx_u64(&x113, &x114, x112, 0x0, x100); + uint64_t x115; + fiat_p224_uint1 x116; + fiat_p224_addcarryx_u64(&x115, &x116, 0x0, x105, x89); + uint64_t x117; + fiat_p224_uint1 x118; + fiat_p224_addcarryx_u64(&x117, &x118, x116, x107, x91); + uint64_t x119; + fiat_p224_uint1 x120; + fiat_p224_addcarryx_u64(&x119, &x120, x118, x109, x93); + uint64_t x121; + fiat_p224_uint1 x122; + fiat_p224_addcarryx_u64(&x121, &x122, x120, x111, x95); + uint64_t x123; + fiat_p224_uint1 x124; + fiat_p224_addcarryx_u64(&x123, &x124, x122, x113, x97); + uint64_t x125; + uint64_t x126; + fiat_p224_mulx_u64(&x125, &x126, x115, UINT64_C(0xffffffffffffffff)); + uint64_t x127; + uint64_t x128; + fiat_p224_mulx_u64(&x127, &x128, x125, UINT32_C(0xffffffff)); + uint64_t x129; + uint64_t x130; + fiat_p224_mulx_u64(&x129, &x130, x125, UINT64_C(0xffffffffffffffff)); + uint64_t x131; + uint64_t x132; + fiat_p224_mulx_u64(&x131, &x132, x125, UINT64_C(0xffffffff00000000)); + uint64_t x133; + fiat_p224_uint1 x134; + fiat_p224_addcarryx_u64(&x133, &x134, 0x0, x129, x132); + uint64_t x135; + fiat_p224_uint1 x136; + fiat_p224_addcarryx_u64(&x135, &x136, x134, x127, x130); + uint64_t x137; + fiat_p224_uint1 x138; + fiat_p224_addcarryx_u64(&x137, &x138, x136, 0x0, x128); + uint64_t x139; + fiat_p224_uint1 x140; + fiat_p224_addcarryx_u64(&x139, &x140, 0x0, x125, x115); + uint64_t x141; + fiat_p224_uint1 x142; + fiat_p224_addcarryx_u64(&x141, &x142, x140, x131, x117); + uint64_t x143; + fiat_p224_uint1 x144; + fiat_p224_addcarryx_u64(&x143, &x144, x142, x133, x119); + uint64_t x145; + fiat_p224_uint1 x146; + fiat_p224_addcarryx_u64(&x145, &x146, x144, x135, x121); + uint64_t x147; + fiat_p224_uint1 x148; + fiat_p224_addcarryx_u64(&x147, &x148, x146, x137, x123); + uint64_t x149; + fiat_p224_uint1 x150; + fiat_p224_addcarryx_u64(&x149, &x150, x148, 0x0, x124); + uint64_t x151; + uint64_t x152; + fiat_p224_mulx_u64(&x151, &x152, x3, (arg1[3])); + uint64_t x153; + uint64_t x154; + fiat_p224_mulx_u64(&x153, &x154, x3, (arg1[2])); + uint64_t x155; + uint64_t x156; + fiat_p224_mulx_u64(&x155, &x156, x3, (arg1[1])); + uint64_t x157; + uint64_t x158; + fiat_p224_mulx_u64(&x157, &x158, x3, (arg1[0])); + uint64_t x159; + fiat_p224_uint1 x160; + fiat_p224_addcarryx_u64(&x159, &x160, 0x0, x155, x158); + uint64_t x161; + fiat_p224_uint1 x162; + fiat_p224_addcarryx_u64(&x161, &x162, x160, x153, x156); + uint64_t x163; + fiat_p224_uint1 x164; + fiat_p224_addcarryx_u64(&x163, &x164, x162, x151, x154); + uint64_t x165; + fiat_p224_uint1 x166; + fiat_p224_addcarryx_u64(&x165, &x166, x164, 0x0, x152); + uint64_t x167; + fiat_p224_uint1 x168; + fiat_p224_addcarryx_u64(&x167, &x168, 0x0, x157, x141); + uint64_t x169; + fiat_p224_uint1 x170; + fiat_p224_addcarryx_u64(&x169, &x170, x168, x159, x143); + uint64_t x171; + fiat_p224_uint1 x172; + fiat_p224_addcarryx_u64(&x171, &x172, x170, x161, x145); + uint64_t x173; + fiat_p224_uint1 x174; + fiat_p224_addcarryx_u64(&x173, &x174, x172, x163, x147); + uint64_t x175; + fiat_p224_uint1 x176; + fiat_p224_addcarryx_u64(&x175, &x176, x174, x165, x149); + uint64_t x177; + uint64_t x178; + fiat_p224_mulx_u64(&x177, &x178, x167, UINT64_C(0xffffffffffffffff)); + uint64_t x179; + uint64_t x180; + fiat_p224_mulx_u64(&x179, &x180, x177, UINT32_C(0xffffffff)); + uint64_t x181; + uint64_t x182; + fiat_p224_mulx_u64(&x181, &x182, x177, UINT64_C(0xffffffffffffffff)); + uint64_t x183; + uint64_t x184; + fiat_p224_mulx_u64(&x183, &x184, x177, UINT64_C(0xffffffff00000000)); + uint64_t x185; + fiat_p224_uint1 x186; + fiat_p224_addcarryx_u64(&x185, &x186, 0x0, x181, x184); + uint64_t x187; + fiat_p224_uint1 x188; + fiat_p224_addcarryx_u64(&x187, &x188, x186, x179, x182); + uint64_t x189; + fiat_p224_uint1 x190; + fiat_p224_addcarryx_u64(&x189, &x190, x188, 0x0, x180); + uint64_t x191; + fiat_p224_uint1 x192; + fiat_p224_addcarryx_u64(&x191, &x192, 0x0, x177, x167); + uint64_t x193; + fiat_p224_uint1 x194; + fiat_p224_addcarryx_u64(&x193, &x194, x192, x183, x169); + uint64_t x195; + fiat_p224_uint1 x196; + fiat_p224_addcarryx_u64(&x195, &x196, x194, x185, x171); + uint64_t x197; + fiat_p224_uint1 x198; + fiat_p224_addcarryx_u64(&x197, &x198, x196, x187, x173); + uint64_t x199; + fiat_p224_uint1 x200; + fiat_p224_addcarryx_u64(&x199, &x200, x198, x189, x175); + uint64_t x201; + fiat_p224_uint1 x202; + fiat_p224_addcarryx_u64(&x201, &x202, x200, 0x0, x176); + uint64_t x203; + fiat_p224_uint1 x204; + fiat_p224_subborrowx_u64(&x203, &x204, 0x0, x193, 0x1); + uint64_t x205; + fiat_p224_uint1 x206; + fiat_p224_subborrowx_u64(&x205, &x206, x204, x195, UINT64_C(0xffffffff00000000)); + uint64_t x207; + fiat_p224_uint1 x208; + fiat_p224_subborrowx_u64(&x207, &x208, x206, x197, UINT64_C(0xffffffffffffffff)); + uint64_t x209; + fiat_p224_uint1 x210; + fiat_p224_subborrowx_u64(&x209, &x210, x208, x199, UINT32_C(0xffffffff)); + uint64_t x211; + fiat_p224_uint1 x212; + fiat_p224_subborrowx_u64(&x211, &x212, x210, x201, 0x0); + uint64_t x213; + fiat_p224_cmovznz_u64(&x213, x212, x203, x193); + uint64_t x214; + fiat_p224_cmovznz_u64(&x214, x212, x205, x195); + uint64_t x215; + fiat_p224_cmovznz_u64(&x215, x212, x207, x197); + uint64_t x216; + fiat_p224_cmovznz_u64(&x216, x212, x209, x199); + out1[0] = x213; + out1[1] = x214; + out1[2] = x215; + out1[3] = x216; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_add(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_p224_uint1 x2; + fiat_p224_addcarryx_u64(&x1, &x2, 0x0, (arg2[0]), (arg1[0])); + uint64_t x3; + fiat_p224_uint1 x4; + fiat_p224_addcarryx_u64(&x3, &x4, x2, (arg2[1]), (arg1[1])); + uint64_t x5; + fiat_p224_uint1 x6; + fiat_p224_addcarryx_u64(&x5, &x6, x4, (arg2[2]), (arg1[2])); + uint64_t x7; + fiat_p224_uint1 x8; + fiat_p224_addcarryx_u64(&x7, &x8, x6, (arg2[3]), (arg1[3])); + uint64_t x9; + fiat_p224_uint1 x10; + fiat_p224_subborrowx_u64(&x9, &x10, 0x0, x1, 0x1); + uint64_t x11; + fiat_p224_uint1 x12; + fiat_p224_subborrowx_u64(&x11, &x12, x10, x3, UINT64_C(0xffffffff00000000)); + uint64_t x13; + fiat_p224_uint1 x14; + fiat_p224_subborrowx_u64(&x13, &x14, x12, x5, UINT64_C(0xffffffffffffffff)); + uint64_t x15; + fiat_p224_uint1 x16; + fiat_p224_subborrowx_u64(&x15, &x16, x14, x7, UINT32_C(0xffffffff)); + uint64_t x17; + fiat_p224_uint1 x18; + fiat_p224_subborrowx_u64(&x17, &x18, x16, x8, 0x0); + uint64_t x19; + fiat_p224_cmovznz_u64(&x19, x18, x9, x1); + uint64_t x20; + fiat_p224_cmovznz_u64(&x20, x18, x11, x3); + uint64_t x21; + fiat_p224_cmovznz_u64(&x21, x18, x13, x5); + uint64_t x22; + fiat_p224_cmovznz_u64(&x22, x18, x15, x7); + out1[0] = x19; + out1[1] = x20; + out1[2] = x21; + out1[3] = x22; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_sub(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_p224_uint1 x2; + fiat_p224_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + uint64_t x3; + fiat_p224_uint1 x4; + fiat_p224_subborrowx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1])); + uint64_t x5; + fiat_p224_uint1 x6; + fiat_p224_subborrowx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2])); + uint64_t x7; + fiat_p224_uint1 x8; + fiat_p224_subborrowx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3])); + uint64_t x9; + fiat_p224_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x10; + fiat_p224_uint1 x11; + fiat_p224_addcarryx_u64(&x10, &x11, 0x0, (fiat_p224_uint1)(x9 & 0x1), x1); + uint64_t x12; + fiat_p224_uint1 x13; + fiat_p224_addcarryx_u64(&x12, &x13, x11, (x9 & UINT64_C(0xffffffff00000000)), x3); + uint64_t x14; + fiat_p224_uint1 x15; + fiat_p224_addcarryx_u64(&x14, &x15, x13, (x9 & UINT64_C(0xffffffffffffffff)), x5); + uint64_t x16; + fiat_p224_uint1 x17; + fiat_p224_addcarryx_u64(&x16, &x17, x15, (x9 & UINT32_C(0xffffffff)), x7); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_opp(uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1; + fiat_p224_uint1 x2; + fiat_p224_subborrowx_u64(&x1, &x2, 0x0, 0x0, (arg1[0])); + uint64_t x3; + fiat_p224_uint1 x4; + fiat_p224_subborrowx_u64(&x3, &x4, x2, 0x0, (arg1[1])); + uint64_t x5; + fiat_p224_uint1 x6; + fiat_p224_subborrowx_u64(&x5, &x6, x4, 0x0, (arg1[2])); + uint64_t x7; + fiat_p224_uint1 x8; + fiat_p224_subborrowx_u64(&x7, &x8, x6, 0x0, (arg1[3])); + uint64_t x9; + fiat_p224_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x10; + fiat_p224_uint1 x11; + fiat_p224_addcarryx_u64(&x10, &x11, 0x0, (fiat_p224_uint1)(x9 & 0x1), x1); + uint64_t x12; + fiat_p224_uint1 x13; + fiat_p224_addcarryx_u64(&x12, &x13, x11, (x9 & UINT64_C(0xffffffff00000000)), x3); + uint64_t x14; + fiat_p224_uint1 x15; + fiat_p224_addcarryx_u64(&x14, &x15, x13, (x9 & UINT64_C(0xffffffffffffffff)), x5); + uint64_t x16; + fiat_p224_uint1 x17; + fiat_p224_addcarryx_u64(&x16, &x17, x15, (x9 & UINT32_C(0xffffffff)), x7); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_from_montgomery(uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1 = (arg1[0]); + uint64_t x2; + uint64_t x3; + fiat_p224_mulx_u64(&x2, &x3, x1, UINT64_C(0xffffffffffffffff)); + uint64_t x4; + uint64_t x5; + fiat_p224_mulx_u64(&x4, &x5, x2, UINT32_C(0xffffffff)); + uint64_t x6; + uint64_t x7; + fiat_p224_mulx_u64(&x6, &x7, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x8; + uint64_t x9; + fiat_p224_mulx_u64(&x8, &x9, x2, UINT64_C(0xffffffff00000000)); + uint64_t x10; + fiat_p224_uint1 x11; + fiat_p224_addcarryx_u64(&x10, &x11, 0x0, x6, x9); + uint64_t x12; + fiat_p224_uint1 x13; + fiat_p224_addcarryx_u64(&x12, &x13, x11, x4, x7); + uint64_t x14; + fiat_p224_uint1 x15; + fiat_p224_addcarryx_u64(&x14, &x15, 0x0, x2, x1); + uint64_t x16; + fiat_p224_uint1 x17; + fiat_p224_addcarryx_u64(&x16, &x17, x15, x8, 0x0); + uint64_t x18; + fiat_p224_uint1 x19; + fiat_p224_addcarryx_u64(&x18, &x19, x17, x10, 0x0); + uint64_t x20; + fiat_p224_uint1 x21; + fiat_p224_addcarryx_u64(&x20, &x21, x19, x12, 0x0); + uint64_t x22; + fiat_p224_uint1 x23; + fiat_p224_addcarryx_u64(&x22, &x23, x13, 0x0, x5); + uint64_t x24; + fiat_p224_uint1 x25; + fiat_p224_addcarryx_u64(&x24, &x25, x21, x22, 0x0); + uint64_t x26; + fiat_p224_uint1 x27; + fiat_p224_addcarryx_u64(&x26, &x27, 0x0, (arg1[1]), x16); + uint64_t x28; + fiat_p224_uint1 x29; + fiat_p224_addcarryx_u64(&x28, &x29, x27, 0x0, x18); + uint64_t x30; + fiat_p224_uint1 x31; + fiat_p224_addcarryx_u64(&x30, &x31, x29, 0x0, x20); + uint64_t x32; + fiat_p224_uint1 x33; + fiat_p224_addcarryx_u64(&x32, &x33, x31, 0x0, x24); + uint64_t x34; + fiat_p224_uint1 x35; + fiat_p224_addcarryx_u64(&x34, &x35, x25, 0x0, 0x0); + uint64_t x36; + fiat_p224_uint1 x37; + fiat_p224_addcarryx_u64(&x36, &x37, x33, 0x0, (fiat_p224_uint1)x34); + uint64_t x38; + uint64_t x39; + fiat_p224_mulx_u64(&x38, &x39, x26, UINT64_C(0xffffffffffffffff)); + uint64_t x40; + uint64_t x41; + fiat_p224_mulx_u64(&x40, &x41, x38, UINT32_C(0xffffffff)); + uint64_t x42; + uint64_t x43; + fiat_p224_mulx_u64(&x42, &x43, x38, UINT64_C(0xffffffffffffffff)); + uint64_t x44; + uint64_t x45; + fiat_p224_mulx_u64(&x44, &x45, x38, UINT64_C(0xffffffff00000000)); + uint64_t x46; + fiat_p224_uint1 x47; + fiat_p224_addcarryx_u64(&x46, &x47, 0x0, x42, x45); + uint64_t x48; + fiat_p224_uint1 x49; + fiat_p224_addcarryx_u64(&x48, &x49, x47, x40, x43); + uint64_t x50; + fiat_p224_uint1 x51; + fiat_p224_addcarryx_u64(&x50, &x51, 0x0, x38, x26); + uint64_t x52; + fiat_p224_uint1 x53; + fiat_p224_addcarryx_u64(&x52, &x53, x51, x44, x28); + uint64_t x54; + fiat_p224_uint1 x55; + fiat_p224_addcarryx_u64(&x54, &x55, x53, x46, x30); + uint64_t x56; + fiat_p224_uint1 x57; + fiat_p224_addcarryx_u64(&x56, &x57, x55, x48, x32); + uint64_t x58; + fiat_p224_uint1 x59; + fiat_p224_addcarryx_u64(&x58, &x59, x49, 0x0, x41); + uint64_t x60; + fiat_p224_uint1 x61; + fiat_p224_addcarryx_u64(&x60, &x61, x57, x58, (fiat_p224_uint1)x36); + uint64_t x62; + fiat_p224_uint1 x63; + fiat_p224_addcarryx_u64(&x62, &x63, 0x0, (arg1[2]), x52); + uint64_t x64; + fiat_p224_uint1 x65; + fiat_p224_addcarryx_u64(&x64, &x65, x63, 0x0, x54); + uint64_t x66; + fiat_p224_uint1 x67; + fiat_p224_addcarryx_u64(&x66, &x67, x65, 0x0, x56); + uint64_t x68; + fiat_p224_uint1 x69; + fiat_p224_addcarryx_u64(&x68, &x69, x67, 0x0, x60); + uint64_t x70; + fiat_p224_uint1 x71; + fiat_p224_addcarryx_u64(&x70, &x71, x61, 0x0, x37); + uint64_t x72; + fiat_p224_uint1 x73; + fiat_p224_addcarryx_u64(&x72, &x73, x69, 0x0, (fiat_p224_uint1)x70); + uint64_t x74; + uint64_t x75; + fiat_p224_mulx_u64(&x74, &x75, x62, UINT64_C(0xffffffffffffffff)); + uint64_t x76; + uint64_t x77; + fiat_p224_mulx_u64(&x76, &x77, x74, UINT32_C(0xffffffff)); + uint64_t x78; + uint64_t x79; + fiat_p224_mulx_u64(&x78, &x79, x74, UINT64_C(0xffffffffffffffff)); + uint64_t x80; + uint64_t x81; + fiat_p224_mulx_u64(&x80, &x81, x74, UINT64_C(0xffffffff00000000)); + uint64_t x82; + fiat_p224_uint1 x83; + fiat_p224_addcarryx_u64(&x82, &x83, 0x0, x78, x81); + uint64_t x84; + fiat_p224_uint1 x85; + fiat_p224_addcarryx_u64(&x84, &x85, x83, x76, x79); + uint64_t x86; + fiat_p224_uint1 x87; + fiat_p224_addcarryx_u64(&x86, &x87, 0x0, x74, x62); + uint64_t x88; + fiat_p224_uint1 x89; + fiat_p224_addcarryx_u64(&x88, &x89, x87, x80, x64); + uint64_t x90; + fiat_p224_uint1 x91; + fiat_p224_addcarryx_u64(&x90, &x91, x89, x82, x66); + uint64_t x92; + fiat_p224_uint1 x93; + fiat_p224_addcarryx_u64(&x92, &x93, x91, x84, x68); + uint64_t x94; + fiat_p224_uint1 x95; + fiat_p224_addcarryx_u64(&x94, &x95, x85, 0x0, x77); + uint64_t x96; + fiat_p224_uint1 x97; + fiat_p224_addcarryx_u64(&x96, &x97, x93, x94, (fiat_p224_uint1)x72); + uint64_t x98; + fiat_p224_uint1 x99; + fiat_p224_addcarryx_u64(&x98, &x99, 0x0, (arg1[3]), x88); + uint64_t x100; + fiat_p224_uint1 x101; + fiat_p224_addcarryx_u64(&x100, &x101, x99, 0x0, x90); + uint64_t x102; + fiat_p224_uint1 x103; + fiat_p224_addcarryx_u64(&x102, &x103, x101, 0x0, x92); + uint64_t x104; + fiat_p224_uint1 x105; + fiat_p224_addcarryx_u64(&x104, &x105, x103, 0x0, x96); + uint64_t x106; + fiat_p224_uint1 x107; + fiat_p224_addcarryx_u64(&x106, &x107, x97, 0x0, x73); + uint64_t x108; + fiat_p224_uint1 x109; + fiat_p224_addcarryx_u64(&x108, &x109, x105, 0x0, (fiat_p224_uint1)x106); + uint64_t x110; + uint64_t x111; + fiat_p224_mulx_u64(&x110, &x111, x98, UINT64_C(0xffffffffffffffff)); + uint64_t x112; + uint64_t x113; + fiat_p224_mulx_u64(&x112, &x113, x110, UINT32_C(0xffffffff)); + uint64_t x114; + uint64_t x115; + fiat_p224_mulx_u64(&x114, &x115, x110, UINT64_C(0xffffffffffffffff)); + uint64_t x116; + uint64_t x117; + fiat_p224_mulx_u64(&x116, &x117, x110, UINT64_C(0xffffffff00000000)); + uint64_t x118; + fiat_p224_uint1 x119; + fiat_p224_addcarryx_u64(&x118, &x119, 0x0, x114, x117); + uint64_t x120; + fiat_p224_uint1 x121; + fiat_p224_addcarryx_u64(&x120, &x121, x119, x112, x115); + uint64_t x122; + fiat_p224_uint1 x123; + fiat_p224_addcarryx_u64(&x122, &x123, 0x0, x110, x98); + uint64_t x124; + fiat_p224_uint1 x125; + fiat_p224_addcarryx_u64(&x124, &x125, x123, x116, x100); + uint64_t x126; + fiat_p224_uint1 x127; + fiat_p224_addcarryx_u64(&x126, &x127, x125, x118, x102); + uint64_t x128; + fiat_p224_uint1 x129; + fiat_p224_addcarryx_u64(&x128, &x129, x127, x120, x104); + uint64_t x130; + fiat_p224_uint1 x131; + fiat_p224_addcarryx_u64(&x130, &x131, x121, 0x0, x113); + uint64_t x132; + fiat_p224_uint1 x133; + fiat_p224_addcarryx_u64(&x132, &x133, x129, x130, (fiat_p224_uint1)x108); + uint64_t x134; + fiat_p224_uint1 x135; + fiat_p224_subborrowx_u64(&x134, &x135, 0x0, x124, 0x1); + uint64_t x136; + fiat_p224_uint1 x137; + fiat_p224_subborrowx_u64(&x136, &x137, x135, x126, UINT64_C(0xffffffff00000000)); + uint64_t x138; + fiat_p224_uint1 x139; + fiat_p224_subborrowx_u64(&x138, &x139, x137, x128, UINT64_C(0xffffffffffffffff)); + uint64_t x140; + fiat_p224_uint1 x141; + fiat_p224_subborrowx_u64(&x140, &x141, x139, x132, UINT32_C(0xffffffff)); + uint64_t x142; + fiat_p224_uint1 x143; + fiat_p224_addcarryx_u64(&x142, &x143, x133, 0x0, x109); + uint64_t x144; + fiat_p224_uint1 x145; + fiat_p224_subborrowx_u64(&x144, &x145, x141, (fiat_p224_uint1)x142, 0x0); + uint64_t x146; + fiat_p224_cmovznz_u64(&x146, x145, x134, x124); + uint64_t x147; + fiat_p224_cmovznz_u64(&x147, x145, x136, x126); + uint64_t x148; + fiat_p224_cmovznz_u64(&x148, x145, x138, x128); + uint64_t x149; + fiat_p224_cmovznz_u64(&x149, x145, x140, x132); + out1[0] = x146; + out1[1] = x147; + out1[2] = x148; + out1[3] = x149; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p224_nonzero(uint64_t* out1, const uint64_t arg1[4]) { + uint64_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0)))); + *out1 = x1; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p224_selectznz(uint64_t out1[4], fiat_p224_uint1 arg1, const uint64_t arg2[4], const uint64_t arg3[4]) { + uint64_t x1; + fiat_p224_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0])); + uint64_t x2; + fiat_p224_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1])); + uint64_t x3; + fiat_p224_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2])); + uint64_t x4; + fiat_p224_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0]] + */ +static void fiat_p224_to_bytes(uint8_t out1[32], const uint64_t arg1[4]) { + uint64_t x1 = (arg1[3]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[1]); + uint64_t x4 = (arg1[0]); + uint64_t x5 = (x4 >> 8); + uint8_t x6 = (uint8_t)(x4 & UINT8_C(0xff)); + uint64_t x7 = (x5 >> 8); + uint8_t x8 = (uint8_t)(x5 & UINT8_C(0xff)); + uint64_t x9 = (x7 >> 8); + uint8_t x10 = (uint8_t)(x7 & UINT8_C(0xff)); + uint64_t x11 = (x9 >> 8); + uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff)); + uint64_t x13 = (x11 >> 8); + uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff)); + uint64_t x15 = (x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint8_t x17 = (uint8_t)(x15 >> 8); + uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff)); + fiat_p224_uint1 x19 = (fiat_p224_uint1)(x17 >> 8); + uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff)); + uint64_t x21 = (x19 + x3); + uint64_t x22 = (x21 >> 8); + uint8_t x23 = (uint8_t)(x21 & UINT8_C(0xff)); + uint64_t x24 = (x22 >> 8); + uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); + uint64_t x26 = (x24 >> 8); + uint8_t x27 = (uint8_t)(x24 & UINT8_C(0xff)); + uint64_t x28 = (x26 >> 8); + uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff)); + uint64_t x30 = (x28 >> 8); + uint8_t x31 = (uint8_t)(x28 & UINT8_C(0xff)); + uint64_t x32 = (x30 >> 8); + uint8_t x33 = (uint8_t)(x30 & UINT8_C(0xff)); + uint8_t x34 = (uint8_t)(x32 >> 8); + uint8_t x35 = (uint8_t)(x32 & UINT8_C(0xff)); + fiat_p224_uint1 x36 = (fiat_p224_uint1)(x34 >> 8); + uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff)); + uint64_t x38 = (x36 + x2); + uint64_t x39 = (x38 >> 8); + uint8_t x40 = (uint8_t)(x38 & UINT8_C(0xff)); + uint64_t x41 = (x39 >> 8); + uint8_t x42 = (uint8_t)(x39 & UINT8_C(0xff)); + uint64_t x43 = (x41 >> 8); + uint8_t x44 = (uint8_t)(x41 & UINT8_C(0xff)); + uint64_t x45 = (x43 >> 8); + uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff)); + uint64_t x47 = (x45 >> 8); + uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); + uint64_t x49 = (x47 >> 8); + uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); + uint8_t x51 = (uint8_t)(x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + fiat_p224_uint1 x53 = (fiat_p224_uint1)(x51 >> 8); + uint8_t x54 = (uint8_t)(x51 & UINT8_C(0xff)); + uint64_t x55 = (x53 + x1); + uint64_t x56 = (x55 >> 8); + uint8_t x57 = (uint8_t)(x55 & UINT8_C(0xff)); + uint64_t x58 = (x56 >> 8); + uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff)); + uint8_t x60 = (uint8_t)(x58 >> 8); + uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); + fiat_p224_uint1 x62 = (fiat_p224_uint1)(x60 >> 8); + uint8_t x63 = (uint8_t)(x60 & UINT8_C(0xff)); + fiat_p224_uint1 x64 = (fiat_p224_uint1)(x62 >> 8); + fiat_p224_uint1 x65 = (fiat_p224_uint1)(x62 & UINT8_C(0xff)); + fiat_p224_uint1 x66 = (fiat_p224_uint1)(x64 >> 8); + fiat_p224_uint1 x67 = (fiat_p224_uint1)(x64 & UINT8_C(0xff)); + fiat_p224_uint1 x68 = (fiat_p224_uint1)(x66 >> 8); + fiat_p224_uint1 x69 = (fiat_p224_uint1)(x66 & UINT8_C(0xff)); + out1[0] = x6; + out1[1] = x8; + out1[2] = x10; + out1[3] = x12; + out1[4] = x14; + out1[5] = x16; + out1[6] = x18; + out1[7] = x20; + out1[8] = x23; + out1[9] = x25; + out1[10] = x27; + out1[11] = x29; + out1[12] = x31; + out1[13] = x33; + out1[14] = x35; + out1[15] = x37; + out1[16] = x40; + out1[17] = x42; + out1[18] = x44; + out1[19] = x46; + out1[20] = x48; + out1[21] = x50; + out1[22] = x52; + out1[23] = x54; + out1[24] = x57; + out1[25] = x59; + out1[26] = x61; + out1[27] = x63; + out1[28] = x65; + out1[29] = x67; + out1[30] = x69; + out1[31] = x68; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0], [0x0 ~> 0x0]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p224_from_bytes(uint64_t out1[4], const uint8_t arg1[32]) { + fiat_p224_uint1 x1 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[31]) << 56); + fiat_p224_uint1 x2 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[30]) << 48); + fiat_p224_uint1 x3 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[29]) << 40); + fiat_p224_uint1 x4 = (fiat_p224_uint1)((uint64_t)(fiat_p224_uint1)(arg1[28]) << 32); + uint64_t x5 = ((uint64_t)(arg1[27]) << 24); + uint64_t x6 = ((uint64_t)(arg1[26]) << 16); + uint64_t x7 = ((uint64_t)(arg1[25]) << 8); + uint8_t x8 = (arg1[24]); + uint64_t x9 = ((uint64_t)(arg1[23]) << 56); + uint64_t x10 = ((uint64_t)(arg1[22]) << 48); + uint64_t x11 = ((uint64_t)(arg1[21]) << 40); + uint64_t x12 = ((uint64_t)(arg1[20]) << 32); + uint64_t x13 = ((uint64_t)(arg1[19]) << 24); + uint64_t x14 = ((uint64_t)(arg1[18]) << 16); + uint64_t x15 = ((uint64_t)(arg1[17]) << 8); + uint8_t x16 = (arg1[16]); + uint64_t x17 = ((uint64_t)(arg1[15]) << 56); + uint64_t x18 = ((uint64_t)(arg1[14]) << 48); + uint64_t x19 = ((uint64_t)(arg1[13]) << 40); + uint64_t x20 = ((uint64_t)(arg1[12]) << 32); + uint64_t x21 = ((uint64_t)(arg1[11]) << 24); + uint64_t x22 = ((uint64_t)(arg1[10]) << 16); + uint64_t x23 = ((uint64_t)(arg1[9]) << 8); + uint8_t x24 = (arg1[8]); + uint64_t x25 = ((uint64_t)(arg1[7]) << 56); + uint64_t x26 = ((uint64_t)(arg1[6]) << 48); + uint64_t x27 = ((uint64_t)(arg1[5]) << 40); + uint64_t x28 = ((uint64_t)(arg1[4]) << 32); + uint64_t x29 = ((uint64_t)(arg1[3]) << 24); + uint64_t x30 = ((uint64_t)(arg1[2]) << 16); + uint64_t x31 = ((uint64_t)(arg1[1]) << 8); + uint8_t x32 = (arg1[0]); + uint64_t x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + fiat_p224_uint1 x34 = (fiat_p224_uint1)((fiat_p224_uint128)x33 >> 64); + uint64_t x35 = (x33 & UINT64_C(0xffffffffffffffff)); + uint64_t x36 = (x8 + (x7 + (x6 + (x5 + (uint64_t)(fiat_p224_uint1)(x4 + (fiat_p224_uint1)(x3 + (fiat_p224_uint1)(x2 + x1))))))); + uint64_t x37 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + uint64_t x38 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + uint64_t x39 = (x34 + x38); + fiat_p224_uint1 x40 = (fiat_p224_uint1)((fiat_p224_uint128)x39 >> 64); + uint64_t x41 = (x39 & UINT64_C(0xffffffffffffffff)); + uint64_t x42 = (x40 + x37); + fiat_p224_uint1 x43 = (fiat_p224_uint1)((fiat_p224_uint128)x42 >> 64); + uint64_t x44 = (x42 & UINT64_C(0xffffffffffffffff)); + uint64_t x45 = (x43 + x36); + out1[0] = x35; + out1[1] = x41; + out1[2] = x44; + out1[3] = x45; +} + @@ -4,6 +4,13 @@ /* s = 0x10000000000000000000000000000000000000000000000000000000000000000 (from "2^256") */ /* c = [(26959946667150639794667015087019630673637144422540572481103610249216, 1), (6277101735386680763835789423207666416102355444464034512896, -1), (79228162514264337593543950336, -1), (1, 1)] (from "2^224,1;2^192,-1;2^96,-1;1,1") */ /* machine_wordsize = 32 (from "32") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ #include <stdint.h> typedef unsigned char fiat_p256_uint1; @@ -3165,157 +3172,115 @@ static void fiat_p256_selectznz(uint32_t out1[8], fiat_p256_uint1 arg1, const ui * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] */ static void fiat_p256_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) { - uint32_t x1; - fiat_p256_uint1 x2; - fiat_p256_subborrowx_u32(&x1, &x2, 0x0, (arg1[0]), UINT32_C(0xffffffff)); - uint32_t x3; - fiat_p256_uint1 x4; - fiat_p256_subborrowx_u32(&x3, &x4, x2, (arg1[1]), UINT32_C(0xffffffff)); - uint32_t x5; - fiat_p256_uint1 x6; - fiat_p256_subborrowx_u32(&x5, &x6, x4, (arg1[2]), UINT32_C(0xffffffff)); - uint32_t x7; - fiat_p256_uint1 x8; - fiat_p256_subborrowx_u32(&x7, &x8, x6, (arg1[3]), 0x0); - uint32_t x9; - fiat_p256_uint1 x10; - fiat_p256_subborrowx_u32(&x9, &x10, x8, (arg1[4]), 0x0); - uint32_t x11; - fiat_p256_uint1 x12; - fiat_p256_subborrowx_u32(&x11, &x12, x10, (arg1[5]), 0x0); - uint32_t x13; - fiat_p256_uint1 x14; - fiat_p256_subborrowx_u32(&x13, &x14, x12, (arg1[6]), 0x1); - uint32_t x15; - fiat_p256_uint1 x16; - fiat_p256_subborrowx_u32(&x15, &x16, x14, (arg1[7]), UINT32_C(0xffffffff)); - uint32_t x17; - fiat_p256_cmovznz_u32(&x17, x16, 0x0, UINT32_C(0xffffffff)); - uint32_t x18; - fiat_p256_uint1 x19; - fiat_p256_addcarryx_u32(&x18, &x19, 0x0, (x17 & UINT32_C(0xffffffff)), x1); - uint32_t x20; - fiat_p256_uint1 x21; - fiat_p256_addcarryx_u32(&x20, &x21, x19, (x17 & UINT32_C(0xffffffff)), x3); - uint32_t x22; - fiat_p256_uint1 x23; - fiat_p256_addcarryx_u32(&x22, &x23, x21, (x17 & UINT32_C(0xffffffff)), x5); - uint32_t x24; - fiat_p256_uint1 x25; - fiat_p256_addcarryx_u32(&x24, &x25, x23, 0x0, x7); - uint32_t x26; - fiat_p256_uint1 x27; - fiat_p256_addcarryx_u32(&x26, &x27, x25, 0x0, x9); - uint32_t x28; - fiat_p256_uint1 x29; - fiat_p256_addcarryx_u32(&x28, &x29, x27, 0x0, x11); - uint32_t x30; - fiat_p256_uint1 x31; - fiat_p256_addcarryx_u32(&x30, &x31, x29, (fiat_p256_uint1)(x17 & 0x1), x13); - uint32_t x32; - fiat_p256_uint1 x33; - fiat_p256_addcarryx_u32(&x32, &x33, x31, (x17 & UINT32_C(0xffffffff)), x15); - uint32_t x34 = (x18 >> 8); - uint8_t x35 = (uint8_t)(x18 & UINT8_C(0xff)); - uint32_t x36 = (x34 >> 8); - uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff)); - uint8_t x38 = (uint8_t)(x36 >> 8); + uint32_t x1 = (arg1[7]); + uint32_t x2 = (arg1[6]); + uint32_t x3 = (arg1[5]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[3]); + uint32_t x6 = (arg1[2]); + uint32_t x7 = (arg1[1]); + uint32_t x8 = (arg1[0]); + uint32_t x9 = (x8 >> 8); + uint8_t x10 = (uint8_t)(x8 & UINT8_C(0xff)); + uint32_t x11 = (x9 >> 8); + uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff)); + uint8_t x13 = (uint8_t)(x11 >> 8); + uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff)); + fiat_p256_uint1 x15 = (fiat_p256_uint1)(x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint32_t x17 = (x15 + x7); + uint32_t x18 = (x17 >> 8); + uint8_t x19 = (uint8_t)(x17 & UINT8_C(0xff)); + uint32_t x20 = (x18 >> 8); + uint8_t x21 = (uint8_t)(x18 & UINT8_C(0xff)); + uint8_t x22 = (uint8_t)(x20 >> 8); + uint8_t x23 = (uint8_t)(x20 & UINT8_C(0xff)); + fiat_p256_uint1 x24 = (fiat_p256_uint1)(x22 >> 8); + uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); + uint32_t x26 = (x24 + x6); + uint32_t x27 = (x26 >> 8); + uint8_t x28 = (uint8_t)(x26 & UINT8_C(0xff)); + uint32_t x29 = (x27 >> 8); + uint8_t x30 = (uint8_t)(x27 & UINT8_C(0xff)); + uint8_t x31 = (uint8_t)(x29 >> 8); + uint8_t x32 = (uint8_t)(x29 & UINT8_C(0xff)); + fiat_p256_uint1 x33 = (fiat_p256_uint1)(x31 >> 8); + uint8_t x34 = (uint8_t)(x31 & UINT8_C(0xff)); + uint32_t x35 = (x33 + x5); + uint32_t x36 = (x35 >> 8); + uint8_t x37 = (uint8_t)(x35 & UINT8_C(0xff)); + uint32_t x38 = (x36 >> 8); uint8_t x39 = (uint8_t)(x36 & UINT8_C(0xff)); - fiat_p256_uint1 x40 = (fiat_p256_uint1)(x38 >> 8); + uint8_t x40 = (uint8_t)(x38 >> 8); uint8_t x41 = (uint8_t)(x38 & UINT8_C(0xff)); - uint32_t x42 = (x40 + x20); - uint32_t x43 = (x42 >> 8); - uint8_t x44 = (uint8_t)(x42 & UINT8_C(0xff)); - uint32_t x45 = (x43 >> 8); - uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff)); - uint8_t x47 = (uint8_t)(x45 >> 8); + fiat_p256_uint1 x42 = (fiat_p256_uint1)(x40 >> 8); + uint8_t x43 = (uint8_t)(x40 & UINT8_C(0xff)); + uint32_t x44 = (x42 + x4); + uint32_t x45 = (x44 >> 8); + uint8_t x46 = (uint8_t)(x44 & UINT8_C(0xff)); + uint32_t x47 = (x45 >> 8); uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); - fiat_p256_uint1 x49 = (fiat_p256_uint1)(x47 >> 8); + uint8_t x49 = (uint8_t)(x47 >> 8); uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); - uint32_t x51 = (x49 + x22); - uint32_t x52 = (x51 >> 8); - uint8_t x53 = (uint8_t)(x51 & UINT8_C(0xff)); - uint32_t x54 = (x52 >> 8); - uint8_t x55 = (uint8_t)(x52 & UINT8_C(0xff)); - uint8_t x56 = (uint8_t)(x54 >> 8); + fiat_p256_uint1 x51 = (fiat_p256_uint1)(x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + uint32_t x53 = (x51 + x3); + uint32_t x54 = (x53 >> 8); + uint8_t x55 = (uint8_t)(x53 & UINT8_C(0xff)); + uint32_t x56 = (x54 >> 8); uint8_t x57 = (uint8_t)(x54 & UINT8_C(0xff)); - fiat_p256_uint1 x58 = (fiat_p256_uint1)(x56 >> 8); + uint8_t x58 = (uint8_t)(x56 >> 8); uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff)); - uint32_t x60 = (x58 + x24); - uint32_t x61 = (x60 >> 8); - uint8_t x62 = (uint8_t)(x60 & UINT8_C(0xff)); - uint32_t x63 = (x61 >> 8); - uint8_t x64 = (uint8_t)(x61 & UINT8_C(0xff)); - uint8_t x65 = (uint8_t)(x63 >> 8); + fiat_p256_uint1 x60 = (fiat_p256_uint1)(x58 >> 8); + uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); + uint32_t x62 = (x60 + x2); + uint32_t x63 = (x62 >> 8); + uint8_t x64 = (uint8_t)(x62 & UINT8_C(0xff)); + uint32_t x65 = (x63 >> 8); uint8_t x66 = (uint8_t)(x63 & UINT8_C(0xff)); - fiat_p256_uint1 x67 = (fiat_p256_uint1)(x65 >> 8); + uint8_t x67 = (uint8_t)(x65 >> 8); uint8_t x68 = (uint8_t)(x65 & UINT8_C(0xff)); - uint32_t x69 = (x67 + x26); - uint32_t x70 = (x69 >> 8); - uint8_t x71 = (uint8_t)(x69 & UINT8_C(0xff)); - uint32_t x72 = (x70 >> 8); - uint8_t x73 = (uint8_t)(x70 & UINT8_C(0xff)); - uint8_t x74 = (uint8_t)(x72 >> 8); + fiat_p256_uint1 x69 = (fiat_p256_uint1)(x67 >> 8); + uint8_t x70 = (uint8_t)(x67 & UINT8_C(0xff)); + uint32_t x71 = (x69 + x1); + uint32_t x72 = (x71 >> 8); + uint8_t x73 = (uint8_t)(x71 & UINT8_C(0xff)); + uint32_t x74 = (x72 >> 8); uint8_t x75 = (uint8_t)(x72 & UINT8_C(0xff)); - fiat_p256_uint1 x76 = (fiat_p256_uint1)(x74 >> 8); + uint8_t x76 = (uint8_t)(x74 >> 8); uint8_t x77 = (uint8_t)(x74 & UINT8_C(0xff)); - uint32_t x78 = (x76 + x28); - uint32_t x79 = (x78 >> 8); - uint8_t x80 = (uint8_t)(x78 & UINT8_C(0xff)); - uint32_t x81 = (x79 >> 8); - uint8_t x82 = (uint8_t)(x79 & UINT8_C(0xff)); - uint8_t x83 = (uint8_t)(x81 >> 8); - uint8_t x84 = (uint8_t)(x81 & UINT8_C(0xff)); - fiat_p256_uint1 x85 = (fiat_p256_uint1)(x83 >> 8); - uint8_t x86 = (uint8_t)(x83 & UINT8_C(0xff)); - uint32_t x87 = (x85 + x30); - uint32_t x88 = (x87 >> 8); - uint8_t x89 = (uint8_t)(x87 & UINT8_C(0xff)); - uint32_t x90 = (x88 >> 8); - uint8_t x91 = (uint8_t)(x88 & UINT8_C(0xff)); - uint8_t x92 = (uint8_t)(x90 >> 8); - uint8_t x93 = (uint8_t)(x90 & UINT8_C(0xff)); - fiat_p256_uint1 x94 = (fiat_p256_uint1)(x92 >> 8); - uint8_t x95 = (uint8_t)(x92 & UINT8_C(0xff)); - uint32_t x96 = (x94 + x32); - uint32_t x97 = (x96 >> 8); - uint8_t x98 = (uint8_t)(x96 & UINT8_C(0xff)); - uint32_t x99 = (x97 >> 8); - uint8_t x100 = (uint8_t)(x97 & UINT8_C(0xff)); - uint8_t x101 = (uint8_t)(x99 >> 8); - uint8_t x102 = (uint8_t)(x99 & UINT8_C(0xff)); - out1[0] = x35; - out1[1] = x37; - out1[2] = x39; - out1[3] = x41; - out1[4] = x44; - out1[5] = x46; - out1[6] = x48; - out1[7] = x50; - out1[8] = x53; - out1[9] = x55; - out1[10] = x57; - out1[11] = x59; - out1[12] = x62; - out1[13] = x64; - out1[14] = x66; - out1[15] = x68; - out1[16] = x71; - out1[17] = x73; - out1[18] = x75; - out1[19] = x77; - out1[20] = x80; - out1[21] = x82; - out1[22] = x84; - out1[23] = x86; - out1[24] = x89; - out1[25] = x91; - out1[26] = x93; - out1[27] = x95; - out1[28] = x98; - out1[29] = x100; - out1[30] = x102; - out1[31] = x101; + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; + out1[4] = x19; + out1[5] = x21; + out1[6] = x23; + out1[7] = x25; + out1[8] = x28; + out1[9] = x30; + out1[10] = x32; + out1[11] = x34; + out1[12] = x37; + out1[13] = x39; + out1[14] = x41; + out1[15] = x43; + out1[16] = x46; + out1[17] = x48; + out1[18] = x50; + out1[19] = x52; + out1[20] = x55; + out1[21] = x57; + out1[22] = x59; + out1[23] = x61; + out1[24] = x64; + out1[25] = x66; + out1[26] = x68; + out1[27] = x70; + out1[28] = x73; + out1[29] = x75; + out1[30] = x77; + out1[31] = x76; } /* @@ -4,6 +4,13 @@ /* s = 0x10000000000000000000000000000000000000000000000000000000000000000 (from "2^256") */ /* c = [(26959946667150639794667015087019630673637144422540572481103610249216, 1), (6277101735386680763835789423207666416102355444464034512896, -1), (79228162514264337593543950336, -1), (1, 1)] (from "2^224,1;2^192,-1;2^96,-1;1,1") */ /* machine_wordsize = 64 (from "64") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ #include <stdint.h> typedef unsigned char fiat_p256_uint1; @@ -1159,129 +1166,107 @@ static void fiat_p256_selectznz(uint64_t out1[4], fiat_p256_uint1 arg1, const ui * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] */ static void fiat_p256_to_bytes(uint8_t out1[32], const uint64_t arg1[4]) { - uint64_t x1; - fiat_p256_uint1 x2; - fiat_p256_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), UINT64_C(0xffffffffffffffff)); - uint64_t x3; - fiat_p256_uint1 x4; - fiat_p256_subborrowx_u64(&x3, &x4, x2, (arg1[1]), UINT32_C(0xffffffff)); - uint64_t x5; - fiat_p256_uint1 x6; - fiat_p256_subborrowx_u64(&x5, &x6, x4, (arg1[2]), 0x0); - uint64_t x7; - fiat_p256_uint1 x8; - fiat_p256_subborrowx_u64(&x7, &x8, x6, (arg1[3]), UINT64_C(0xffffffff00000001)); - uint64_t x9; - fiat_p256_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); - uint64_t x10; - fiat_p256_uint1 x11; - fiat_p256_addcarryx_u64(&x10, &x11, 0x0, (x9 & UINT64_C(0xffffffffffffffff)), x1); - uint64_t x12; - fiat_p256_uint1 x13; - fiat_p256_addcarryx_u64(&x12, &x13, x11, (x9 & UINT32_C(0xffffffff)), x3); - uint64_t x14; - fiat_p256_uint1 x15; - fiat_p256_addcarryx_u64(&x14, &x15, x13, 0x0, x5); - uint64_t x16; - fiat_p256_uint1 x17; - fiat_p256_addcarryx_u64(&x16, &x17, x15, (x9 & UINT64_C(0xffffffff00000001)), x7); - uint64_t x18 = (x10 >> 8); - uint8_t x19 = (uint8_t)(x10 & UINT8_C(0xff)); - uint64_t x20 = (x18 >> 8); - uint8_t x21 = (uint8_t)(x18 & UINT8_C(0xff)); - uint64_t x22 = (x20 >> 8); - uint8_t x23 = (uint8_t)(x20 & UINT8_C(0xff)); + uint64_t x1 = (arg1[3]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[1]); + uint64_t x4 = (arg1[0]); + uint64_t x5 = (x4 >> 8); + uint8_t x6 = (uint8_t)(x4 & UINT8_C(0xff)); + uint64_t x7 = (x5 >> 8); + uint8_t x8 = (uint8_t)(x5 & UINT8_C(0xff)); + uint64_t x9 = (x7 >> 8); + uint8_t x10 = (uint8_t)(x7 & UINT8_C(0xff)); + uint64_t x11 = (x9 >> 8); + uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff)); + uint64_t x13 = (x11 >> 8); + uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff)); + uint64_t x15 = (x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint8_t x17 = (uint8_t)(x15 >> 8); + uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff)); + fiat_p256_uint1 x19 = (fiat_p256_uint1)(x17 >> 8); + uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff)); + uint64_t x21 = (x19 + x3); + uint64_t x22 = (x21 >> 8); + uint8_t x23 = (uint8_t)(x21 & UINT8_C(0xff)); uint64_t x24 = (x22 >> 8); uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); uint64_t x26 = (x24 >> 8); uint8_t x27 = (uint8_t)(x24 & UINT8_C(0xff)); uint64_t x28 = (x26 >> 8); uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff)); - uint8_t x30 = (uint8_t)(x28 >> 8); + uint64_t x30 = (x28 >> 8); uint8_t x31 = (uint8_t)(x28 & UINT8_C(0xff)); - fiat_p256_uint1 x32 = (fiat_p256_uint1)(x30 >> 8); + uint64_t x32 = (x30 >> 8); uint8_t x33 = (uint8_t)(x30 & UINT8_C(0xff)); - uint64_t x34 = (x32 + x12); - uint64_t x35 = (x34 >> 8); - uint8_t x36 = (uint8_t)(x34 & UINT8_C(0xff)); - uint64_t x37 = (x35 >> 8); - uint8_t x38 = (uint8_t)(x35 & UINT8_C(0xff)); - uint64_t x39 = (x37 >> 8); - uint8_t x40 = (uint8_t)(x37 & UINT8_C(0xff)); + uint8_t x34 = (uint8_t)(x32 >> 8); + uint8_t x35 = (uint8_t)(x32 & UINT8_C(0xff)); + fiat_p256_uint1 x36 = (fiat_p256_uint1)(x34 >> 8); + uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff)); + uint64_t x38 = (x36 + x2); + uint64_t x39 = (x38 >> 8); + uint8_t x40 = (uint8_t)(x38 & UINT8_C(0xff)); uint64_t x41 = (x39 >> 8); uint8_t x42 = (uint8_t)(x39 & UINT8_C(0xff)); uint64_t x43 = (x41 >> 8); uint8_t x44 = (uint8_t)(x41 & UINT8_C(0xff)); uint64_t x45 = (x43 >> 8); uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff)); - uint8_t x47 = (uint8_t)(x45 >> 8); + uint64_t x47 = (x45 >> 8); uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); - fiat_p256_uint1 x49 = (fiat_p256_uint1)(x47 >> 8); + uint64_t x49 = (x47 >> 8); uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); - uint64_t x51 = (x49 + x14); - uint64_t x52 = (x51 >> 8); - uint8_t x53 = (uint8_t)(x51 & UINT8_C(0xff)); - uint64_t x54 = (x52 >> 8); - uint8_t x55 = (uint8_t)(x52 & UINT8_C(0xff)); - uint64_t x56 = (x54 >> 8); - uint8_t x57 = (uint8_t)(x54 & UINT8_C(0xff)); + uint8_t x51 = (uint8_t)(x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + fiat_p256_uint1 x53 = (fiat_p256_uint1)(x51 >> 8); + uint8_t x54 = (uint8_t)(x51 & UINT8_C(0xff)); + uint64_t x55 = (x53 + x1); + uint64_t x56 = (x55 >> 8); + uint8_t x57 = (uint8_t)(x55 & UINT8_C(0xff)); uint64_t x58 = (x56 >> 8); uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff)); uint64_t x60 = (x58 >> 8); uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); uint64_t x62 = (x60 >> 8); uint8_t x63 = (uint8_t)(x60 & UINT8_C(0xff)); - uint8_t x64 = (uint8_t)(x62 >> 8); + uint64_t x64 = (x62 >> 8); uint8_t x65 = (uint8_t)(x62 & UINT8_C(0xff)); - fiat_p256_uint1 x66 = (fiat_p256_uint1)(x64 >> 8); + uint64_t x66 = (x64 >> 8); uint8_t x67 = (uint8_t)(x64 & UINT8_C(0xff)); - uint64_t x68 = (x66 + x16); - uint64_t x69 = (x68 >> 8); - uint8_t x70 = (uint8_t)(x68 & UINT8_C(0xff)); - uint64_t x71 = (x69 >> 8); - uint8_t x72 = (uint8_t)(x69 & UINT8_C(0xff)); - uint64_t x73 = (x71 >> 8); - uint8_t x74 = (uint8_t)(x71 & UINT8_C(0xff)); - uint64_t x75 = (x73 >> 8); - uint8_t x76 = (uint8_t)(x73 & UINT8_C(0xff)); - uint64_t x77 = (x75 >> 8); - uint8_t x78 = (uint8_t)(x75 & UINT8_C(0xff)); - uint64_t x79 = (x77 >> 8); - uint8_t x80 = (uint8_t)(x77 & UINT8_C(0xff)); - uint8_t x81 = (uint8_t)(x79 >> 8); - uint8_t x82 = (uint8_t)(x79 & UINT8_C(0xff)); - out1[0] = x19; - out1[1] = x21; - out1[2] = x23; - out1[3] = x25; - out1[4] = x27; - out1[5] = x29; - out1[6] = x31; - out1[7] = x33; - out1[8] = x36; - out1[9] = x38; - out1[10] = x40; - out1[11] = x42; - out1[12] = x44; - out1[13] = x46; - out1[14] = x48; - out1[15] = x50; - out1[16] = x53; - out1[17] = x55; - out1[18] = x57; - out1[19] = x59; - out1[20] = x61; - out1[21] = x63; - out1[22] = x65; - out1[23] = x67; - out1[24] = x70; - out1[25] = x72; - out1[26] = x74; - out1[27] = x76; - out1[28] = x78; - out1[29] = x80; - out1[30] = x82; - out1[31] = x81; + uint8_t x68 = (uint8_t)(x66 >> 8); + uint8_t x69 = (uint8_t)(x66 & UINT8_C(0xff)); + out1[0] = x6; + out1[1] = x8; + out1[2] = x10; + out1[3] = x12; + out1[4] = x14; + out1[5] = x16; + out1[6] = x18; + out1[7] = x20; + out1[8] = x23; + out1[9] = x25; + out1[10] = x27; + out1[11] = x29; + out1[12] = x31; + out1[13] = x33; + out1[14] = x35; + out1[15] = x37; + out1[16] = x40; + out1[17] = x42; + out1[18] = x44; + out1[19] = x46; + out1[20] = x48; + out1[21] = x50; + out1[22] = x52; + out1[23] = x54; + out1[24] = x57; + out1[25] = x59; + out1[26] = x61; + out1[27] = x63; + out1[28] = x65; + out1[29] = x67; + out1[30] = x69; + out1[31] = x68; } /* diff --git a/p384_32.c b/p384_32.c new file mode 100644 index 000000000..b3af80385 --- /dev/null +++ b/p384_32.c @@ -0,0 +1,7566 @@ +/* Autogenerated */ +/* curve description: p384 */ +/* requested operations: (all) */ +/* s = 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (from "2^384") */ +/* c = [(340282366920938463463374607431768211456, 1), (79228162514264337593543950336, 1), (4294967296, -1), (1, 1)] (from "2^128,1;2^96,1;2^32,-1;1,1") */ +/* machine_wordsize = 32 (from "32") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ + +#include <stdint.h> +typedef unsigned char fiat_p384_uint1; +typedef signed char fiat_p384_int1; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p384_addcarryx_u32(uint32_t* out1, fiat_p384_uint1* out2, fiat_p384_uint1 arg1, uint32_t arg2, uint32_t arg3) { + uint64_t x1 = ((arg1 + (uint64_t)arg2) + arg3); + uint32_t x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + fiat_p384_uint1 x3 = (fiat_p384_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p384_subborrowx_u32(uint32_t* out1, fiat_p384_uint1* out2, fiat_p384_uint1 arg1, uint32_t arg2, uint32_t arg3) { + int64_t x1 = ((arg2 - (int64_t)arg1) - arg3); + fiat_p384_int1 x2 = (fiat_p384_int1)((uint64_t)x1 >> 32); + uint32_t x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_p384_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_p384_mulx_u32(uint32_t* out1, uint32_t* out2, uint32_t arg1, uint32_t arg2) { + uint64_t x1 = ((uint64_t)arg1 * arg2); + uint32_t x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + uint32_t x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_p384_cmovznz_u32(uint32_t* out1, fiat_p384_uint1 arg1, uint32_t arg2, uint32_t arg3) { + fiat_p384_uint1 x1 = (!(!arg1)); + uint32_t x2 = ((fiat_p384_int1)(0x0 - x1) & UINT32_C(0xffffffff)); + uint32_t x3 = ((x2 & arg3) | (uint32_t)((uint64_t)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_mul(uint32_t out1[12], const uint32_t arg1[12], const uint32_t arg2[12]) { + uint32_t x1 = (arg1[1]); + uint32_t x2 = (arg1[2]); + uint32_t x3 = (arg1[3]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[5]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[7]); + uint32_t x8 = (arg1[8]); + uint32_t x9 = (arg1[9]); + uint32_t x10 = (arg1[10]); + uint32_t x11 = (arg1[11]); + uint32_t x12 = (arg1[0]); + uint32_t x13; + uint32_t x14; + fiat_p384_mulx_u32(&x13, &x14, x12, (arg2[11])); + uint32_t x15; + uint32_t x16; + fiat_p384_mulx_u32(&x15, &x16, x12, (arg2[10])); + uint32_t x17; + uint32_t x18; + fiat_p384_mulx_u32(&x17, &x18, x12, (arg2[9])); + uint32_t x19; + uint32_t x20; + fiat_p384_mulx_u32(&x19, &x20, x12, (arg2[8])); + uint32_t x21; + uint32_t x22; + fiat_p384_mulx_u32(&x21, &x22, x12, (arg2[7])); + uint32_t x23; + uint32_t x24; + fiat_p384_mulx_u32(&x23, &x24, x12, (arg2[6])); + uint32_t x25; + uint32_t x26; + fiat_p384_mulx_u32(&x25, &x26, x12, (arg2[5])); + uint32_t x27; + uint32_t x28; + fiat_p384_mulx_u32(&x27, &x28, x12, (arg2[4])); + uint32_t x29; + uint32_t x30; + fiat_p384_mulx_u32(&x29, &x30, x12, (arg2[3])); + uint32_t x31; + uint32_t x32; + fiat_p384_mulx_u32(&x31, &x32, x12, (arg2[2])); + uint32_t x33; + uint32_t x34; + fiat_p384_mulx_u32(&x33, &x34, x12, (arg2[1])); + uint32_t x35; + uint32_t x36; + fiat_p384_mulx_u32(&x35, &x36, x12, (arg2[0])); + uint32_t x37; + fiat_p384_uint1 x38; + fiat_p384_addcarryx_u32(&x37, &x38, 0x0, x33, x36); + uint32_t x39; + fiat_p384_uint1 x40; + fiat_p384_addcarryx_u32(&x39, &x40, x38, x31, x34); + uint32_t x41; + fiat_p384_uint1 x42; + fiat_p384_addcarryx_u32(&x41, &x42, x40, x29, x32); + uint32_t x43; + fiat_p384_uint1 x44; + fiat_p384_addcarryx_u32(&x43, &x44, x42, x27, x30); + uint32_t x45; + fiat_p384_uint1 x46; + fiat_p384_addcarryx_u32(&x45, &x46, x44, x25, x28); + uint32_t x47; + fiat_p384_uint1 x48; + fiat_p384_addcarryx_u32(&x47, &x48, x46, x23, x26); + uint32_t x49; + fiat_p384_uint1 x50; + fiat_p384_addcarryx_u32(&x49, &x50, x48, x21, x24); + uint32_t x51; + fiat_p384_uint1 x52; + fiat_p384_addcarryx_u32(&x51, &x52, x50, x19, x22); + uint32_t x53; + fiat_p384_uint1 x54; + fiat_p384_addcarryx_u32(&x53, &x54, x52, x17, x20); + uint32_t x55; + fiat_p384_uint1 x56; + fiat_p384_addcarryx_u32(&x55, &x56, x54, x15, x18); + uint32_t x57; + fiat_p384_uint1 x58; + fiat_p384_addcarryx_u32(&x57, &x58, x56, x13, x16); + uint32_t x59; + fiat_p384_uint1 x60; + fiat_p384_addcarryx_u32(&x59, &x60, x58, 0x0, x14); + uint32_t x61; + uint32_t x62; + fiat_p384_mulx_u32(&x61, &x62, x35, UINT32_C(0xffffffff)); + uint32_t x63; + uint32_t x64; + fiat_p384_mulx_u32(&x63, &x64, x35, UINT32_C(0xffffffff)); + uint32_t x65; + uint32_t x66; + fiat_p384_mulx_u32(&x65, &x66, x35, UINT32_C(0xffffffff)); + uint32_t x67; + uint32_t x68; + fiat_p384_mulx_u32(&x67, &x68, x35, UINT32_C(0xffffffff)); + uint32_t x69; + uint32_t x70; + fiat_p384_mulx_u32(&x69, &x70, x35, UINT32_C(0xffffffff)); + uint32_t x71; + uint32_t x72; + fiat_p384_mulx_u32(&x71, &x72, x35, UINT32_C(0xffffffff)); + uint32_t x73; + uint32_t x74; + fiat_p384_mulx_u32(&x73, &x74, x35, UINT32_C(0xffffffff)); + uint32_t x75; + uint32_t x76; + fiat_p384_mulx_u32(&x75, &x76, x35, UINT32_C(0xfffffffe)); + uint32_t x77; + uint32_t x78; + fiat_p384_mulx_u32(&x77, &x78, x35, UINT32_C(0xffffffff)); + uint32_t x79; + uint32_t x80; + fiat_p384_mulx_u32(&x79, &x80, x35, UINT32_C(0xffffffff)); + uint32_t x81; + fiat_p384_uint1 x82; + fiat_p384_addcarryx_u32(&x81, &x82, 0x0, x75, x78); + uint32_t x83; + fiat_p384_uint1 x84; + fiat_p384_addcarryx_u32(&x83, &x84, x82, x73, x76); + uint32_t x85; + fiat_p384_uint1 x86; + fiat_p384_addcarryx_u32(&x85, &x86, x84, x71, x74); + uint32_t x87; + fiat_p384_uint1 x88; + fiat_p384_addcarryx_u32(&x87, &x88, x86, x69, x72); + uint32_t x89; + fiat_p384_uint1 x90; + fiat_p384_addcarryx_u32(&x89, &x90, x88, x67, x70); + uint32_t x91; + fiat_p384_uint1 x92; + fiat_p384_addcarryx_u32(&x91, &x92, x90, x65, x68); + uint32_t x93; + fiat_p384_uint1 x94; + fiat_p384_addcarryx_u32(&x93, &x94, x92, x63, x66); + uint32_t x95; + fiat_p384_uint1 x96; + fiat_p384_addcarryx_u32(&x95, &x96, x94, x61, x64); + uint32_t x97; + fiat_p384_uint1 x98; + fiat_p384_addcarryx_u32(&x97, &x98, x96, 0x0, x62); + uint32_t x99; + fiat_p384_uint1 x100; + fiat_p384_addcarryx_u32(&x99, &x100, 0x0, x79, x35); + uint32_t x101; + fiat_p384_uint1 x102; + fiat_p384_addcarryx_u32(&x101, &x102, x100, x80, x37); + uint32_t x103; + fiat_p384_uint1 x104; + fiat_p384_addcarryx_u32(&x103, &x104, x102, 0x0, x39); + uint32_t x105; + fiat_p384_uint1 x106; + fiat_p384_addcarryx_u32(&x105, &x106, x104, x77, x41); + uint32_t x107; + fiat_p384_uint1 x108; + fiat_p384_addcarryx_u32(&x107, &x108, x106, x81, x43); + uint32_t x109; + fiat_p384_uint1 x110; + fiat_p384_addcarryx_u32(&x109, &x110, x108, x83, x45); + uint32_t x111; + fiat_p384_uint1 x112; + fiat_p384_addcarryx_u32(&x111, &x112, x110, x85, x47); + uint32_t x113; + fiat_p384_uint1 x114; + fiat_p384_addcarryx_u32(&x113, &x114, x112, x87, x49); + uint32_t x115; + fiat_p384_uint1 x116; + fiat_p384_addcarryx_u32(&x115, &x116, x114, x89, x51); + uint32_t x117; + fiat_p384_uint1 x118; + fiat_p384_addcarryx_u32(&x117, &x118, x116, x91, x53); + uint32_t x119; + fiat_p384_uint1 x120; + fiat_p384_addcarryx_u32(&x119, &x120, x118, x93, x55); + uint32_t x121; + fiat_p384_uint1 x122; + fiat_p384_addcarryx_u32(&x121, &x122, x120, x95, x57); + uint32_t x123; + fiat_p384_uint1 x124; + fiat_p384_addcarryx_u32(&x123, &x124, x122, x97, x59); + uint32_t x125; + fiat_p384_uint1 x126; + fiat_p384_addcarryx_u32(&x125, &x126, x124, 0x0, 0x0); + uint32_t x127; + uint32_t x128; + fiat_p384_mulx_u32(&x127, &x128, x1, (arg2[11])); + uint32_t x129; + uint32_t x130; + fiat_p384_mulx_u32(&x129, &x130, x1, (arg2[10])); + uint32_t x131; + uint32_t x132; + fiat_p384_mulx_u32(&x131, &x132, x1, (arg2[9])); + uint32_t x133; + uint32_t x134; + fiat_p384_mulx_u32(&x133, &x134, x1, (arg2[8])); + uint32_t x135; + uint32_t x136; + fiat_p384_mulx_u32(&x135, &x136, x1, (arg2[7])); + uint32_t x137; + uint32_t x138; + fiat_p384_mulx_u32(&x137, &x138, x1, (arg2[6])); + uint32_t x139; + uint32_t x140; + fiat_p384_mulx_u32(&x139, &x140, x1, (arg2[5])); + uint32_t x141; + uint32_t x142; + fiat_p384_mulx_u32(&x141, &x142, x1, (arg2[4])); + uint32_t x143; + uint32_t x144; + fiat_p384_mulx_u32(&x143, &x144, x1, (arg2[3])); + uint32_t x145; + uint32_t x146; + fiat_p384_mulx_u32(&x145, &x146, x1, (arg2[2])); + uint32_t x147; + uint32_t x148; + fiat_p384_mulx_u32(&x147, &x148, x1, (arg2[1])); + uint32_t x149; + uint32_t x150; + fiat_p384_mulx_u32(&x149, &x150, x1, (arg2[0])); + uint32_t x151; + fiat_p384_uint1 x152; + fiat_p384_addcarryx_u32(&x151, &x152, 0x0, x147, x150); + uint32_t x153; + fiat_p384_uint1 x154; + fiat_p384_addcarryx_u32(&x153, &x154, x152, x145, x148); + uint32_t x155; + fiat_p384_uint1 x156; + fiat_p384_addcarryx_u32(&x155, &x156, x154, x143, x146); + uint32_t x157; + fiat_p384_uint1 x158; + fiat_p384_addcarryx_u32(&x157, &x158, x156, x141, x144); + uint32_t x159; + fiat_p384_uint1 x160; + fiat_p384_addcarryx_u32(&x159, &x160, x158, x139, x142); + uint32_t x161; + fiat_p384_uint1 x162; + fiat_p384_addcarryx_u32(&x161, &x162, x160, x137, x140); + uint32_t x163; + fiat_p384_uint1 x164; + fiat_p384_addcarryx_u32(&x163, &x164, x162, x135, x138); + uint32_t x165; + fiat_p384_uint1 x166; + fiat_p384_addcarryx_u32(&x165, &x166, x164, x133, x136); + uint32_t x167; + fiat_p384_uint1 x168; + fiat_p384_addcarryx_u32(&x167, &x168, x166, x131, x134); + uint32_t x169; + fiat_p384_uint1 x170; + fiat_p384_addcarryx_u32(&x169, &x170, x168, x129, x132); + uint32_t x171; + fiat_p384_uint1 x172; + fiat_p384_addcarryx_u32(&x171, &x172, x170, x127, x130); + uint32_t x173; + fiat_p384_uint1 x174; + fiat_p384_addcarryx_u32(&x173, &x174, x172, 0x0, x128); + uint32_t x175; + fiat_p384_uint1 x176; + fiat_p384_addcarryx_u32(&x175, &x176, 0x0, x149, x101); + uint32_t x177; + fiat_p384_uint1 x178; + fiat_p384_addcarryx_u32(&x177, &x178, x176, x151, x103); + uint32_t x179; + fiat_p384_uint1 x180; + fiat_p384_addcarryx_u32(&x179, &x180, x178, x153, x105); + uint32_t x181; + fiat_p384_uint1 x182; + fiat_p384_addcarryx_u32(&x181, &x182, x180, x155, x107); + uint32_t x183; + fiat_p384_uint1 x184; + fiat_p384_addcarryx_u32(&x183, &x184, x182, x157, x109); + uint32_t x185; + fiat_p384_uint1 x186; + fiat_p384_addcarryx_u32(&x185, &x186, x184, x159, x111); + uint32_t x187; + fiat_p384_uint1 x188; + fiat_p384_addcarryx_u32(&x187, &x188, x186, x161, x113); + uint32_t x189; + fiat_p384_uint1 x190; + fiat_p384_addcarryx_u32(&x189, &x190, x188, x163, x115); + uint32_t x191; + fiat_p384_uint1 x192; + fiat_p384_addcarryx_u32(&x191, &x192, x190, x165, x117); + uint32_t x193; + fiat_p384_uint1 x194; + fiat_p384_addcarryx_u32(&x193, &x194, x192, x167, x119); + uint32_t x195; + fiat_p384_uint1 x196; + fiat_p384_addcarryx_u32(&x195, &x196, x194, x169, x121); + uint32_t x197; + fiat_p384_uint1 x198; + fiat_p384_addcarryx_u32(&x197, &x198, x196, x171, x123); + uint32_t x199; + fiat_p384_uint1 x200; + fiat_p384_addcarryx_u32(&x199, &x200, x198, x173, (fiat_p384_uint1)x125); + uint32_t x201; + uint32_t x202; + fiat_p384_mulx_u32(&x201, &x202, x175, UINT32_C(0xffffffff)); + uint32_t x203; + uint32_t x204; + fiat_p384_mulx_u32(&x203, &x204, x175, UINT32_C(0xffffffff)); + uint32_t x205; + uint32_t x206; + fiat_p384_mulx_u32(&x205, &x206, x175, UINT32_C(0xffffffff)); + uint32_t x207; + uint32_t x208; + fiat_p384_mulx_u32(&x207, &x208, x175, UINT32_C(0xffffffff)); + uint32_t x209; + uint32_t x210; + fiat_p384_mulx_u32(&x209, &x210, x175, UINT32_C(0xffffffff)); + uint32_t x211; + uint32_t x212; + fiat_p384_mulx_u32(&x211, &x212, x175, UINT32_C(0xffffffff)); + uint32_t x213; + uint32_t x214; + fiat_p384_mulx_u32(&x213, &x214, x175, UINT32_C(0xffffffff)); + uint32_t x215; + uint32_t x216; + fiat_p384_mulx_u32(&x215, &x216, x175, UINT32_C(0xfffffffe)); + uint32_t x217; + uint32_t x218; + fiat_p384_mulx_u32(&x217, &x218, x175, UINT32_C(0xffffffff)); + uint32_t x219; + uint32_t x220; + fiat_p384_mulx_u32(&x219, &x220, x175, UINT32_C(0xffffffff)); + uint32_t x221; + fiat_p384_uint1 x222; + fiat_p384_addcarryx_u32(&x221, &x222, 0x0, x215, x218); + uint32_t x223; + fiat_p384_uint1 x224; + fiat_p384_addcarryx_u32(&x223, &x224, x222, x213, x216); + uint32_t x225; + fiat_p384_uint1 x226; + fiat_p384_addcarryx_u32(&x225, &x226, x224, x211, x214); + uint32_t x227; + fiat_p384_uint1 x228; + fiat_p384_addcarryx_u32(&x227, &x228, x226, x209, x212); + uint32_t x229; + fiat_p384_uint1 x230; + fiat_p384_addcarryx_u32(&x229, &x230, x228, x207, x210); + uint32_t x231; + fiat_p384_uint1 x232; + fiat_p384_addcarryx_u32(&x231, &x232, x230, x205, x208); + uint32_t x233; + fiat_p384_uint1 x234; + fiat_p384_addcarryx_u32(&x233, &x234, x232, x203, x206); + uint32_t x235; + fiat_p384_uint1 x236; + fiat_p384_addcarryx_u32(&x235, &x236, x234, x201, x204); + uint32_t x237; + fiat_p384_uint1 x238; + fiat_p384_addcarryx_u32(&x237, &x238, x236, 0x0, x202); + uint32_t x239; + fiat_p384_uint1 x240; + fiat_p384_addcarryx_u32(&x239, &x240, 0x0, x219, x175); + uint32_t x241; + fiat_p384_uint1 x242; + fiat_p384_addcarryx_u32(&x241, &x242, x240, x220, x177); + uint32_t x243; + fiat_p384_uint1 x244; + fiat_p384_addcarryx_u32(&x243, &x244, x242, 0x0, x179); + uint32_t x245; + fiat_p384_uint1 x246; + fiat_p384_addcarryx_u32(&x245, &x246, x244, x217, x181); + uint32_t x247; + fiat_p384_uint1 x248; + fiat_p384_addcarryx_u32(&x247, &x248, x246, x221, x183); + uint32_t x249; + fiat_p384_uint1 x250; + fiat_p384_addcarryx_u32(&x249, &x250, x248, x223, x185); + uint32_t x251; + fiat_p384_uint1 x252; + fiat_p384_addcarryx_u32(&x251, &x252, x250, x225, x187); + uint32_t x253; + fiat_p384_uint1 x254; + fiat_p384_addcarryx_u32(&x253, &x254, x252, x227, x189); + uint32_t x255; + fiat_p384_uint1 x256; + fiat_p384_addcarryx_u32(&x255, &x256, x254, x229, x191); + uint32_t x257; + fiat_p384_uint1 x258; + fiat_p384_addcarryx_u32(&x257, &x258, x256, x231, x193); + uint32_t x259; + fiat_p384_uint1 x260; + fiat_p384_addcarryx_u32(&x259, &x260, x258, x233, x195); + uint32_t x261; + fiat_p384_uint1 x262; + fiat_p384_addcarryx_u32(&x261, &x262, x260, x235, x197); + uint32_t x263; + fiat_p384_uint1 x264; + fiat_p384_addcarryx_u32(&x263, &x264, x262, x237, x199); + uint32_t x265; + fiat_p384_uint1 x266; + fiat_p384_addcarryx_u32(&x265, &x266, x264, 0x0, x200); + uint32_t x267; + uint32_t x268; + fiat_p384_mulx_u32(&x267, &x268, x2, (arg2[11])); + uint32_t x269; + uint32_t x270; + fiat_p384_mulx_u32(&x269, &x270, x2, (arg2[10])); + uint32_t x271; + uint32_t x272; + fiat_p384_mulx_u32(&x271, &x272, x2, (arg2[9])); + uint32_t x273; + uint32_t x274; + fiat_p384_mulx_u32(&x273, &x274, x2, (arg2[8])); + uint32_t x275; + uint32_t x276; + fiat_p384_mulx_u32(&x275, &x276, x2, (arg2[7])); + uint32_t x277; + uint32_t x278; + fiat_p384_mulx_u32(&x277, &x278, x2, (arg2[6])); + uint32_t x279; + uint32_t x280; + fiat_p384_mulx_u32(&x279, &x280, x2, (arg2[5])); + uint32_t x281; + uint32_t x282; + fiat_p384_mulx_u32(&x281, &x282, x2, (arg2[4])); + uint32_t x283; + uint32_t x284; + fiat_p384_mulx_u32(&x283, &x284, x2, (arg2[3])); + uint32_t x285; + uint32_t x286; + fiat_p384_mulx_u32(&x285, &x286, x2, (arg2[2])); + uint32_t x287; + uint32_t x288; + fiat_p384_mulx_u32(&x287, &x288, x2, (arg2[1])); + uint32_t x289; + uint32_t x290; + fiat_p384_mulx_u32(&x289, &x290, x2, (arg2[0])); + uint32_t x291; + fiat_p384_uint1 x292; + fiat_p384_addcarryx_u32(&x291, &x292, 0x0, x287, x290); + uint32_t x293; + fiat_p384_uint1 x294; + fiat_p384_addcarryx_u32(&x293, &x294, x292, x285, x288); + uint32_t x295; + fiat_p384_uint1 x296; + fiat_p384_addcarryx_u32(&x295, &x296, x294, x283, x286); + uint32_t x297; + fiat_p384_uint1 x298; + fiat_p384_addcarryx_u32(&x297, &x298, x296, x281, x284); + uint32_t x299; + fiat_p384_uint1 x300; + fiat_p384_addcarryx_u32(&x299, &x300, x298, x279, x282); + uint32_t x301; + fiat_p384_uint1 x302; + fiat_p384_addcarryx_u32(&x301, &x302, x300, x277, x280); + uint32_t x303; + fiat_p384_uint1 x304; + fiat_p384_addcarryx_u32(&x303, &x304, x302, x275, x278); + uint32_t x305; + fiat_p384_uint1 x306; + fiat_p384_addcarryx_u32(&x305, &x306, x304, x273, x276); + uint32_t x307; + fiat_p384_uint1 x308; + fiat_p384_addcarryx_u32(&x307, &x308, x306, x271, x274); + uint32_t x309; + fiat_p384_uint1 x310; + fiat_p384_addcarryx_u32(&x309, &x310, x308, x269, x272); + uint32_t x311; + fiat_p384_uint1 x312; + fiat_p384_addcarryx_u32(&x311, &x312, x310, x267, x270); + uint32_t x313; + fiat_p384_uint1 x314; + fiat_p384_addcarryx_u32(&x313, &x314, x312, 0x0, x268); + uint32_t x315; + fiat_p384_uint1 x316; + fiat_p384_addcarryx_u32(&x315, &x316, 0x0, x289, x241); + uint32_t x317; + fiat_p384_uint1 x318; + fiat_p384_addcarryx_u32(&x317, &x318, x316, x291, x243); + uint32_t x319; + fiat_p384_uint1 x320; + fiat_p384_addcarryx_u32(&x319, &x320, x318, x293, x245); + uint32_t x321; + fiat_p384_uint1 x322; + fiat_p384_addcarryx_u32(&x321, &x322, x320, x295, x247); + uint32_t x323; + fiat_p384_uint1 x324; + fiat_p384_addcarryx_u32(&x323, &x324, x322, x297, x249); + uint32_t x325; + fiat_p384_uint1 x326; + fiat_p384_addcarryx_u32(&x325, &x326, x324, x299, x251); + uint32_t x327; + fiat_p384_uint1 x328; + fiat_p384_addcarryx_u32(&x327, &x328, x326, x301, x253); + uint32_t x329; + fiat_p384_uint1 x330; + fiat_p384_addcarryx_u32(&x329, &x330, x328, x303, x255); + uint32_t x331; + fiat_p384_uint1 x332; + fiat_p384_addcarryx_u32(&x331, &x332, x330, x305, x257); + uint32_t x333; + fiat_p384_uint1 x334; + fiat_p384_addcarryx_u32(&x333, &x334, x332, x307, x259); + uint32_t x335; + fiat_p384_uint1 x336; + fiat_p384_addcarryx_u32(&x335, &x336, x334, x309, x261); + uint32_t x337; + fiat_p384_uint1 x338; + fiat_p384_addcarryx_u32(&x337, &x338, x336, x311, x263); + uint32_t x339; + fiat_p384_uint1 x340; + fiat_p384_addcarryx_u32(&x339, &x340, x338, x313, x265); + uint32_t x341; + uint32_t x342; + fiat_p384_mulx_u32(&x341, &x342, x315, UINT32_C(0xffffffff)); + uint32_t x343; + uint32_t x344; + fiat_p384_mulx_u32(&x343, &x344, x315, UINT32_C(0xffffffff)); + uint32_t x345; + uint32_t x346; + fiat_p384_mulx_u32(&x345, &x346, x315, UINT32_C(0xffffffff)); + uint32_t x347; + uint32_t x348; + fiat_p384_mulx_u32(&x347, &x348, x315, UINT32_C(0xffffffff)); + uint32_t x349; + uint32_t x350; + fiat_p384_mulx_u32(&x349, &x350, x315, UINT32_C(0xffffffff)); + uint32_t x351; + uint32_t x352; + fiat_p384_mulx_u32(&x351, &x352, x315, UINT32_C(0xffffffff)); + uint32_t x353; + uint32_t x354; + fiat_p384_mulx_u32(&x353, &x354, x315, UINT32_C(0xffffffff)); + uint32_t x355; + uint32_t x356; + fiat_p384_mulx_u32(&x355, &x356, x315, UINT32_C(0xfffffffe)); + uint32_t x357; + uint32_t x358; + fiat_p384_mulx_u32(&x357, &x358, x315, UINT32_C(0xffffffff)); + uint32_t x359; + uint32_t x360; + fiat_p384_mulx_u32(&x359, &x360, x315, UINT32_C(0xffffffff)); + uint32_t x361; + fiat_p384_uint1 x362; + fiat_p384_addcarryx_u32(&x361, &x362, 0x0, x355, x358); + uint32_t x363; + fiat_p384_uint1 x364; + fiat_p384_addcarryx_u32(&x363, &x364, x362, x353, x356); + uint32_t x365; + fiat_p384_uint1 x366; + fiat_p384_addcarryx_u32(&x365, &x366, x364, x351, x354); + uint32_t x367; + fiat_p384_uint1 x368; + fiat_p384_addcarryx_u32(&x367, &x368, x366, x349, x352); + uint32_t x369; + fiat_p384_uint1 x370; + fiat_p384_addcarryx_u32(&x369, &x370, x368, x347, x350); + uint32_t x371; + fiat_p384_uint1 x372; + fiat_p384_addcarryx_u32(&x371, &x372, x370, x345, x348); + uint32_t x373; + fiat_p384_uint1 x374; + fiat_p384_addcarryx_u32(&x373, &x374, x372, x343, x346); + uint32_t x375; + fiat_p384_uint1 x376; + fiat_p384_addcarryx_u32(&x375, &x376, x374, x341, x344); + uint32_t x377; + fiat_p384_uint1 x378; + fiat_p384_addcarryx_u32(&x377, &x378, x376, 0x0, x342); + uint32_t x379; + fiat_p384_uint1 x380; + fiat_p384_addcarryx_u32(&x379, &x380, 0x0, x359, x315); + uint32_t x381; + fiat_p384_uint1 x382; + fiat_p384_addcarryx_u32(&x381, &x382, x380, x360, x317); + uint32_t x383; + fiat_p384_uint1 x384; + fiat_p384_addcarryx_u32(&x383, &x384, x382, 0x0, x319); + uint32_t x385; + fiat_p384_uint1 x386; + fiat_p384_addcarryx_u32(&x385, &x386, x384, x357, x321); + uint32_t x387; + fiat_p384_uint1 x388; + fiat_p384_addcarryx_u32(&x387, &x388, x386, x361, x323); + uint32_t x389; + fiat_p384_uint1 x390; + fiat_p384_addcarryx_u32(&x389, &x390, x388, x363, x325); + uint32_t x391; + fiat_p384_uint1 x392; + fiat_p384_addcarryx_u32(&x391, &x392, x390, x365, x327); + uint32_t x393; + fiat_p384_uint1 x394; + fiat_p384_addcarryx_u32(&x393, &x394, x392, x367, x329); + uint32_t x395; + fiat_p384_uint1 x396; + fiat_p384_addcarryx_u32(&x395, &x396, x394, x369, x331); + uint32_t x397; + fiat_p384_uint1 x398; + fiat_p384_addcarryx_u32(&x397, &x398, x396, x371, x333); + uint32_t x399; + fiat_p384_uint1 x400; + fiat_p384_addcarryx_u32(&x399, &x400, x398, x373, x335); + uint32_t x401; + fiat_p384_uint1 x402; + fiat_p384_addcarryx_u32(&x401, &x402, x400, x375, x337); + uint32_t x403; + fiat_p384_uint1 x404; + fiat_p384_addcarryx_u32(&x403, &x404, x402, x377, x339); + uint32_t x405; + fiat_p384_uint1 x406; + fiat_p384_addcarryx_u32(&x405, &x406, x404, 0x0, x340); + uint32_t x407; + uint32_t x408; + fiat_p384_mulx_u32(&x407, &x408, x3, (arg2[11])); + uint32_t x409; + uint32_t x410; + fiat_p384_mulx_u32(&x409, &x410, x3, (arg2[10])); + uint32_t x411; + uint32_t x412; + fiat_p384_mulx_u32(&x411, &x412, x3, (arg2[9])); + uint32_t x413; + uint32_t x414; + fiat_p384_mulx_u32(&x413, &x414, x3, (arg2[8])); + uint32_t x415; + uint32_t x416; + fiat_p384_mulx_u32(&x415, &x416, x3, (arg2[7])); + uint32_t x417; + uint32_t x418; + fiat_p384_mulx_u32(&x417, &x418, x3, (arg2[6])); + uint32_t x419; + uint32_t x420; + fiat_p384_mulx_u32(&x419, &x420, x3, (arg2[5])); + uint32_t x421; + uint32_t x422; + fiat_p384_mulx_u32(&x421, &x422, x3, (arg2[4])); + uint32_t x423; + uint32_t x424; + fiat_p384_mulx_u32(&x423, &x424, x3, (arg2[3])); + uint32_t x425; + uint32_t x426; + fiat_p384_mulx_u32(&x425, &x426, x3, (arg2[2])); + uint32_t x427; + uint32_t x428; + fiat_p384_mulx_u32(&x427, &x428, x3, (arg2[1])); + uint32_t x429; + uint32_t x430; + fiat_p384_mulx_u32(&x429, &x430, x3, (arg2[0])); + uint32_t x431; + fiat_p384_uint1 x432; + fiat_p384_addcarryx_u32(&x431, &x432, 0x0, x427, x430); + uint32_t x433; + fiat_p384_uint1 x434; + fiat_p384_addcarryx_u32(&x433, &x434, x432, x425, x428); + uint32_t x435; + fiat_p384_uint1 x436; + fiat_p384_addcarryx_u32(&x435, &x436, x434, x423, x426); + uint32_t x437; + fiat_p384_uint1 x438; + fiat_p384_addcarryx_u32(&x437, &x438, x436, x421, x424); + uint32_t x439; + fiat_p384_uint1 x440; + fiat_p384_addcarryx_u32(&x439, &x440, x438, x419, x422); + uint32_t x441; + fiat_p384_uint1 x442; + fiat_p384_addcarryx_u32(&x441, &x442, x440, x417, x420); + uint32_t x443; + fiat_p384_uint1 x444; + fiat_p384_addcarryx_u32(&x443, &x444, x442, x415, x418); + uint32_t x445; + fiat_p384_uint1 x446; + fiat_p384_addcarryx_u32(&x445, &x446, x444, x413, x416); + uint32_t x447; + fiat_p384_uint1 x448; + fiat_p384_addcarryx_u32(&x447, &x448, x446, x411, x414); + uint32_t x449; + fiat_p384_uint1 x450; + fiat_p384_addcarryx_u32(&x449, &x450, x448, x409, x412); + uint32_t x451; + fiat_p384_uint1 x452; + fiat_p384_addcarryx_u32(&x451, &x452, x450, x407, x410); + uint32_t x453; + fiat_p384_uint1 x454; + fiat_p384_addcarryx_u32(&x453, &x454, x452, 0x0, x408); + uint32_t x455; + fiat_p384_uint1 x456; + fiat_p384_addcarryx_u32(&x455, &x456, 0x0, x429, x381); + uint32_t x457; + fiat_p384_uint1 x458; + fiat_p384_addcarryx_u32(&x457, &x458, x456, x431, x383); + uint32_t x459; + fiat_p384_uint1 x460; + fiat_p384_addcarryx_u32(&x459, &x460, x458, x433, x385); + uint32_t x461; + fiat_p384_uint1 x462; + fiat_p384_addcarryx_u32(&x461, &x462, x460, x435, x387); + uint32_t x463; + fiat_p384_uint1 x464; + fiat_p384_addcarryx_u32(&x463, &x464, x462, x437, x389); + uint32_t x465; + fiat_p384_uint1 x466; + fiat_p384_addcarryx_u32(&x465, &x466, x464, x439, x391); + uint32_t x467; + fiat_p384_uint1 x468; + fiat_p384_addcarryx_u32(&x467, &x468, x466, x441, x393); + uint32_t x469; + fiat_p384_uint1 x470; + fiat_p384_addcarryx_u32(&x469, &x470, x468, x443, x395); + uint32_t x471; + fiat_p384_uint1 x472; + fiat_p384_addcarryx_u32(&x471, &x472, x470, x445, x397); + uint32_t x473; + fiat_p384_uint1 x474; + fiat_p384_addcarryx_u32(&x473, &x474, x472, x447, x399); + uint32_t x475; + fiat_p384_uint1 x476; + fiat_p384_addcarryx_u32(&x475, &x476, x474, x449, x401); + uint32_t x477; + fiat_p384_uint1 x478; + fiat_p384_addcarryx_u32(&x477, &x478, x476, x451, x403); + uint32_t x479; + fiat_p384_uint1 x480; + fiat_p384_addcarryx_u32(&x479, &x480, x478, x453, x405); + uint32_t x481; + uint32_t x482; + fiat_p384_mulx_u32(&x481, &x482, x455, UINT32_C(0xffffffff)); + uint32_t x483; + uint32_t x484; + fiat_p384_mulx_u32(&x483, &x484, x455, UINT32_C(0xffffffff)); + uint32_t x485; + uint32_t x486; + fiat_p384_mulx_u32(&x485, &x486, x455, UINT32_C(0xffffffff)); + uint32_t x487; + uint32_t x488; + fiat_p384_mulx_u32(&x487, &x488, x455, UINT32_C(0xffffffff)); + uint32_t x489; + uint32_t x490; + fiat_p384_mulx_u32(&x489, &x490, x455, UINT32_C(0xffffffff)); + uint32_t x491; + uint32_t x492; + fiat_p384_mulx_u32(&x491, &x492, x455, UINT32_C(0xffffffff)); + uint32_t x493; + uint32_t x494; + fiat_p384_mulx_u32(&x493, &x494, x455, UINT32_C(0xffffffff)); + uint32_t x495; + uint32_t x496; + fiat_p384_mulx_u32(&x495, &x496, x455, UINT32_C(0xfffffffe)); + uint32_t x497; + uint32_t x498; + fiat_p384_mulx_u32(&x497, &x498, x455, UINT32_C(0xffffffff)); + uint32_t x499; + uint32_t x500; + fiat_p384_mulx_u32(&x499, &x500, x455, UINT32_C(0xffffffff)); + uint32_t x501; + fiat_p384_uint1 x502; + fiat_p384_addcarryx_u32(&x501, &x502, 0x0, x495, x498); + uint32_t x503; + fiat_p384_uint1 x504; + fiat_p384_addcarryx_u32(&x503, &x504, x502, x493, x496); + uint32_t x505; + fiat_p384_uint1 x506; + fiat_p384_addcarryx_u32(&x505, &x506, x504, x491, x494); + uint32_t x507; + fiat_p384_uint1 x508; + fiat_p384_addcarryx_u32(&x507, &x508, x506, x489, x492); + uint32_t x509; + fiat_p384_uint1 x510; + fiat_p384_addcarryx_u32(&x509, &x510, x508, x487, x490); + uint32_t x511; + fiat_p384_uint1 x512; + fiat_p384_addcarryx_u32(&x511, &x512, x510, x485, x488); + uint32_t x513; + fiat_p384_uint1 x514; + fiat_p384_addcarryx_u32(&x513, &x514, x512, x483, x486); + uint32_t x515; + fiat_p384_uint1 x516; + fiat_p384_addcarryx_u32(&x515, &x516, x514, x481, x484); + uint32_t x517; + fiat_p384_uint1 x518; + fiat_p384_addcarryx_u32(&x517, &x518, x516, 0x0, x482); + uint32_t x519; + fiat_p384_uint1 x520; + fiat_p384_addcarryx_u32(&x519, &x520, 0x0, x499, x455); + uint32_t x521; + fiat_p384_uint1 x522; + fiat_p384_addcarryx_u32(&x521, &x522, x520, x500, x457); + uint32_t x523; + fiat_p384_uint1 x524; + fiat_p384_addcarryx_u32(&x523, &x524, x522, 0x0, x459); + uint32_t x525; + fiat_p384_uint1 x526; + fiat_p384_addcarryx_u32(&x525, &x526, x524, x497, x461); + uint32_t x527; + fiat_p384_uint1 x528; + fiat_p384_addcarryx_u32(&x527, &x528, x526, x501, x463); + uint32_t x529; + fiat_p384_uint1 x530; + fiat_p384_addcarryx_u32(&x529, &x530, x528, x503, x465); + uint32_t x531; + fiat_p384_uint1 x532; + fiat_p384_addcarryx_u32(&x531, &x532, x530, x505, x467); + uint32_t x533; + fiat_p384_uint1 x534; + fiat_p384_addcarryx_u32(&x533, &x534, x532, x507, x469); + uint32_t x535; + fiat_p384_uint1 x536; + fiat_p384_addcarryx_u32(&x535, &x536, x534, x509, x471); + uint32_t x537; + fiat_p384_uint1 x538; + fiat_p384_addcarryx_u32(&x537, &x538, x536, x511, x473); + uint32_t x539; + fiat_p384_uint1 x540; + fiat_p384_addcarryx_u32(&x539, &x540, x538, x513, x475); + uint32_t x541; + fiat_p384_uint1 x542; + fiat_p384_addcarryx_u32(&x541, &x542, x540, x515, x477); + uint32_t x543; + fiat_p384_uint1 x544; + fiat_p384_addcarryx_u32(&x543, &x544, x542, x517, x479); + uint32_t x545; + fiat_p384_uint1 x546; + fiat_p384_addcarryx_u32(&x545, &x546, x544, 0x0, x480); + uint32_t x547; + uint32_t x548; + fiat_p384_mulx_u32(&x547, &x548, x4, (arg2[11])); + uint32_t x549; + uint32_t x550; + fiat_p384_mulx_u32(&x549, &x550, x4, (arg2[10])); + uint32_t x551; + uint32_t x552; + fiat_p384_mulx_u32(&x551, &x552, x4, (arg2[9])); + uint32_t x553; + uint32_t x554; + fiat_p384_mulx_u32(&x553, &x554, x4, (arg2[8])); + uint32_t x555; + uint32_t x556; + fiat_p384_mulx_u32(&x555, &x556, x4, (arg2[7])); + uint32_t x557; + uint32_t x558; + fiat_p384_mulx_u32(&x557, &x558, x4, (arg2[6])); + uint32_t x559; + uint32_t x560; + fiat_p384_mulx_u32(&x559, &x560, x4, (arg2[5])); + uint32_t x561; + uint32_t x562; + fiat_p384_mulx_u32(&x561, &x562, x4, (arg2[4])); + uint32_t x563; + uint32_t x564; + fiat_p384_mulx_u32(&x563, &x564, x4, (arg2[3])); + uint32_t x565; + uint32_t x566; + fiat_p384_mulx_u32(&x565, &x566, x4, (arg2[2])); + uint32_t x567; + uint32_t x568; + fiat_p384_mulx_u32(&x567, &x568, x4, (arg2[1])); + uint32_t x569; + uint32_t x570; + fiat_p384_mulx_u32(&x569, &x570, x4, (arg2[0])); + uint32_t x571; + fiat_p384_uint1 x572; + fiat_p384_addcarryx_u32(&x571, &x572, 0x0, x567, x570); + uint32_t x573; + fiat_p384_uint1 x574; + fiat_p384_addcarryx_u32(&x573, &x574, x572, x565, x568); + uint32_t x575; + fiat_p384_uint1 x576; + fiat_p384_addcarryx_u32(&x575, &x576, x574, x563, x566); + uint32_t x577; + fiat_p384_uint1 x578; + fiat_p384_addcarryx_u32(&x577, &x578, x576, x561, x564); + uint32_t x579; + fiat_p384_uint1 x580; + fiat_p384_addcarryx_u32(&x579, &x580, x578, x559, x562); + uint32_t x581; + fiat_p384_uint1 x582; + fiat_p384_addcarryx_u32(&x581, &x582, x580, x557, x560); + uint32_t x583; + fiat_p384_uint1 x584; + fiat_p384_addcarryx_u32(&x583, &x584, x582, x555, x558); + uint32_t x585; + fiat_p384_uint1 x586; + fiat_p384_addcarryx_u32(&x585, &x586, x584, x553, x556); + uint32_t x587; + fiat_p384_uint1 x588; + fiat_p384_addcarryx_u32(&x587, &x588, x586, x551, x554); + uint32_t x589; + fiat_p384_uint1 x590; + fiat_p384_addcarryx_u32(&x589, &x590, x588, x549, x552); + uint32_t x591; + fiat_p384_uint1 x592; + fiat_p384_addcarryx_u32(&x591, &x592, x590, x547, x550); + uint32_t x593; + fiat_p384_uint1 x594; + fiat_p384_addcarryx_u32(&x593, &x594, x592, 0x0, x548); + uint32_t x595; + fiat_p384_uint1 x596; + fiat_p384_addcarryx_u32(&x595, &x596, 0x0, x569, x521); + uint32_t x597; + fiat_p384_uint1 x598; + fiat_p384_addcarryx_u32(&x597, &x598, x596, x571, x523); + uint32_t x599; + fiat_p384_uint1 x600; + fiat_p384_addcarryx_u32(&x599, &x600, x598, x573, x525); + uint32_t x601; + fiat_p384_uint1 x602; + fiat_p384_addcarryx_u32(&x601, &x602, x600, x575, x527); + uint32_t x603; + fiat_p384_uint1 x604; + fiat_p384_addcarryx_u32(&x603, &x604, x602, x577, x529); + uint32_t x605; + fiat_p384_uint1 x606; + fiat_p384_addcarryx_u32(&x605, &x606, x604, x579, x531); + uint32_t x607; + fiat_p384_uint1 x608; + fiat_p384_addcarryx_u32(&x607, &x608, x606, x581, x533); + uint32_t x609; + fiat_p384_uint1 x610; + fiat_p384_addcarryx_u32(&x609, &x610, x608, x583, x535); + uint32_t x611; + fiat_p384_uint1 x612; + fiat_p384_addcarryx_u32(&x611, &x612, x610, x585, x537); + uint32_t x613; + fiat_p384_uint1 x614; + fiat_p384_addcarryx_u32(&x613, &x614, x612, x587, x539); + uint32_t x615; + fiat_p384_uint1 x616; + fiat_p384_addcarryx_u32(&x615, &x616, x614, x589, x541); + uint32_t x617; + fiat_p384_uint1 x618; + fiat_p384_addcarryx_u32(&x617, &x618, x616, x591, x543); + uint32_t x619; + fiat_p384_uint1 x620; + fiat_p384_addcarryx_u32(&x619, &x620, x618, x593, x545); + uint32_t x621; + uint32_t x622; + fiat_p384_mulx_u32(&x621, &x622, x595, UINT32_C(0xffffffff)); + uint32_t x623; + uint32_t x624; + fiat_p384_mulx_u32(&x623, &x624, x595, UINT32_C(0xffffffff)); + uint32_t x625; + uint32_t x626; + fiat_p384_mulx_u32(&x625, &x626, x595, UINT32_C(0xffffffff)); + uint32_t x627; + uint32_t x628; + fiat_p384_mulx_u32(&x627, &x628, x595, UINT32_C(0xffffffff)); + uint32_t x629; + uint32_t x630; + fiat_p384_mulx_u32(&x629, &x630, x595, UINT32_C(0xffffffff)); + uint32_t x631; + uint32_t x632; + fiat_p384_mulx_u32(&x631, &x632, x595, UINT32_C(0xffffffff)); + uint32_t x633; + uint32_t x634; + fiat_p384_mulx_u32(&x633, &x634, x595, UINT32_C(0xffffffff)); + uint32_t x635; + uint32_t x636; + fiat_p384_mulx_u32(&x635, &x636, x595, UINT32_C(0xfffffffe)); + uint32_t x637; + uint32_t x638; + fiat_p384_mulx_u32(&x637, &x638, x595, UINT32_C(0xffffffff)); + uint32_t x639; + uint32_t x640; + fiat_p384_mulx_u32(&x639, &x640, x595, UINT32_C(0xffffffff)); + uint32_t x641; + fiat_p384_uint1 x642; + fiat_p384_addcarryx_u32(&x641, &x642, 0x0, x635, x638); + uint32_t x643; + fiat_p384_uint1 x644; + fiat_p384_addcarryx_u32(&x643, &x644, x642, x633, x636); + uint32_t x645; + fiat_p384_uint1 x646; + fiat_p384_addcarryx_u32(&x645, &x646, x644, x631, x634); + uint32_t x647; + fiat_p384_uint1 x648; + fiat_p384_addcarryx_u32(&x647, &x648, x646, x629, x632); + uint32_t x649; + fiat_p384_uint1 x650; + fiat_p384_addcarryx_u32(&x649, &x650, x648, x627, x630); + uint32_t x651; + fiat_p384_uint1 x652; + fiat_p384_addcarryx_u32(&x651, &x652, x650, x625, x628); + uint32_t x653; + fiat_p384_uint1 x654; + fiat_p384_addcarryx_u32(&x653, &x654, x652, x623, x626); + uint32_t x655; + fiat_p384_uint1 x656; + fiat_p384_addcarryx_u32(&x655, &x656, x654, x621, x624); + uint32_t x657; + fiat_p384_uint1 x658; + fiat_p384_addcarryx_u32(&x657, &x658, x656, 0x0, x622); + uint32_t x659; + fiat_p384_uint1 x660; + fiat_p384_addcarryx_u32(&x659, &x660, 0x0, x639, x595); + uint32_t x661; + fiat_p384_uint1 x662; + fiat_p384_addcarryx_u32(&x661, &x662, x660, x640, x597); + uint32_t x663; + fiat_p384_uint1 x664; + fiat_p384_addcarryx_u32(&x663, &x664, x662, 0x0, x599); + uint32_t x665; + fiat_p384_uint1 x666; + fiat_p384_addcarryx_u32(&x665, &x666, x664, x637, x601); + uint32_t x667; + fiat_p384_uint1 x668; + fiat_p384_addcarryx_u32(&x667, &x668, x666, x641, x603); + uint32_t x669; + fiat_p384_uint1 x670; + fiat_p384_addcarryx_u32(&x669, &x670, x668, x643, x605); + uint32_t x671; + fiat_p384_uint1 x672; + fiat_p384_addcarryx_u32(&x671, &x672, x670, x645, x607); + uint32_t x673; + fiat_p384_uint1 x674; + fiat_p384_addcarryx_u32(&x673, &x674, x672, x647, x609); + uint32_t x675; + fiat_p384_uint1 x676; + fiat_p384_addcarryx_u32(&x675, &x676, x674, x649, x611); + uint32_t x677; + fiat_p384_uint1 x678; + fiat_p384_addcarryx_u32(&x677, &x678, x676, x651, x613); + uint32_t x679; + fiat_p384_uint1 x680; + fiat_p384_addcarryx_u32(&x679, &x680, x678, x653, x615); + uint32_t x681; + fiat_p384_uint1 x682; + fiat_p384_addcarryx_u32(&x681, &x682, x680, x655, x617); + uint32_t x683; + fiat_p384_uint1 x684; + fiat_p384_addcarryx_u32(&x683, &x684, x682, x657, x619); + uint32_t x685; + fiat_p384_uint1 x686; + fiat_p384_addcarryx_u32(&x685, &x686, x684, 0x0, x620); + uint32_t x687; + uint32_t x688; + fiat_p384_mulx_u32(&x687, &x688, x5, (arg2[11])); + uint32_t x689; + uint32_t x690; + fiat_p384_mulx_u32(&x689, &x690, x5, (arg2[10])); + uint32_t x691; + uint32_t x692; + fiat_p384_mulx_u32(&x691, &x692, x5, (arg2[9])); + uint32_t x693; + uint32_t x694; + fiat_p384_mulx_u32(&x693, &x694, x5, (arg2[8])); + uint32_t x695; + uint32_t x696; + fiat_p384_mulx_u32(&x695, &x696, x5, (arg2[7])); + uint32_t x697; + uint32_t x698; + fiat_p384_mulx_u32(&x697, &x698, x5, (arg2[6])); + uint32_t x699; + uint32_t x700; + fiat_p384_mulx_u32(&x699, &x700, x5, (arg2[5])); + uint32_t x701; + uint32_t x702; + fiat_p384_mulx_u32(&x701, &x702, x5, (arg2[4])); + uint32_t x703; + uint32_t x704; + fiat_p384_mulx_u32(&x703, &x704, x5, (arg2[3])); + uint32_t x705; + uint32_t x706; + fiat_p384_mulx_u32(&x705, &x706, x5, (arg2[2])); + uint32_t x707; + uint32_t x708; + fiat_p384_mulx_u32(&x707, &x708, x5, (arg2[1])); + uint32_t x709; + uint32_t x710; + fiat_p384_mulx_u32(&x709, &x710, x5, (arg2[0])); + uint32_t x711; + fiat_p384_uint1 x712; + fiat_p384_addcarryx_u32(&x711, &x712, 0x0, x707, x710); + uint32_t x713; + fiat_p384_uint1 x714; + fiat_p384_addcarryx_u32(&x713, &x714, x712, x705, x708); + uint32_t x715; + fiat_p384_uint1 x716; + fiat_p384_addcarryx_u32(&x715, &x716, x714, x703, x706); + uint32_t x717; + fiat_p384_uint1 x718; + fiat_p384_addcarryx_u32(&x717, &x718, x716, x701, x704); + uint32_t x719; + fiat_p384_uint1 x720; + fiat_p384_addcarryx_u32(&x719, &x720, x718, x699, x702); + uint32_t x721; + fiat_p384_uint1 x722; + fiat_p384_addcarryx_u32(&x721, &x722, x720, x697, x700); + uint32_t x723; + fiat_p384_uint1 x724; + fiat_p384_addcarryx_u32(&x723, &x724, x722, x695, x698); + uint32_t x725; + fiat_p384_uint1 x726; + fiat_p384_addcarryx_u32(&x725, &x726, x724, x693, x696); + uint32_t x727; + fiat_p384_uint1 x728; + fiat_p384_addcarryx_u32(&x727, &x728, x726, x691, x694); + uint32_t x729; + fiat_p384_uint1 x730; + fiat_p384_addcarryx_u32(&x729, &x730, x728, x689, x692); + uint32_t x731; + fiat_p384_uint1 x732; + fiat_p384_addcarryx_u32(&x731, &x732, x730, x687, x690); + uint32_t x733; + fiat_p384_uint1 x734; + fiat_p384_addcarryx_u32(&x733, &x734, x732, 0x0, x688); + uint32_t x735; + fiat_p384_uint1 x736; + fiat_p384_addcarryx_u32(&x735, &x736, 0x0, x709, x661); + uint32_t x737; + fiat_p384_uint1 x738; + fiat_p384_addcarryx_u32(&x737, &x738, x736, x711, x663); + uint32_t x739; + fiat_p384_uint1 x740; + fiat_p384_addcarryx_u32(&x739, &x740, x738, x713, x665); + uint32_t x741; + fiat_p384_uint1 x742; + fiat_p384_addcarryx_u32(&x741, &x742, x740, x715, x667); + uint32_t x743; + fiat_p384_uint1 x744; + fiat_p384_addcarryx_u32(&x743, &x744, x742, x717, x669); + uint32_t x745; + fiat_p384_uint1 x746; + fiat_p384_addcarryx_u32(&x745, &x746, x744, x719, x671); + uint32_t x747; + fiat_p384_uint1 x748; + fiat_p384_addcarryx_u32(&x747, &x748, x746, x721, x673); + uint32_t x749; + fiat_p384_uint1 x750; + fiat_p384_addcarryx_u32(&x749, &x750, x748, x723, x675); + uint32_t x751; + fiat_p384_uint1 x752; + fiat_p384_addcarryx_u32(&x751, &x752, x750, x725, x677); + uint32_t x753; + fiat_p384_uint1 x754; + fiat_p384_addcarryx_u32(&x753, &x754, x752, x727, x679); + uint32_t x755; + fiat_p384_uint1 x756; + fiat_p384_addcarryx_u32(&x755, &x756, x754, x729, x681); + uint32_t x757; + fiat_p384_uint1 x758; + fiat_p384_addcarryx_u32(&x757, &x758, x756, x731, x683); + uint32_t x759; + fiat_p384_uint1 x760; + fiat_p384_addcarryx_u32(&x759, &x760, x758, x733, x685); + uint32_t x761; + uint32_t x762; + fiat_p384_mulx_u32(&x761, &x762, x735, UINT32_C(0xffffffff)); + uint32_t x763; + uint32_t x764; + fiat_p384_mulx_u32(&x763, &x764, x735, UINT32_C(0xffffffff)); + uint32_t x765; + uint32_t x766; + fiat_p384_mulx_u32(&x765, &x766, x735, UINT32_C(0xffffffff)); + uint32_t x767; + uint32_t x768; + fiat_p384_mulx_u32(&x767, &x768, x735, UINT32_C(0xffffffff)); + uint32_t x769; + uint32_t x770; + fiat_p384_mulx_u32(&x769, &x770, x735, UINT32_C(0xffffffff)); + uint32_t x771; + uint32_t x772; + fiat_p384_mulx_u32(&x771, &x772, x735, UINT32_C(0xffffffff)); + uint32_t x773; + uint32_t x774; + fiat_p384_mulx_u32(&x773, &x774, x735, UINT32_C(0xffffffff)); + uint32_t x775; + uint32_t x776; + fiat_p384_mulx_u32(&x775, &x776, x735, UINT32_C(0xfffffffe)); + uint32_t x777; + uint32_t x778; + fiat_p384_mulx_u32(&x777, &x778, x735, UINT32_C(0xffffffff)); + uint32_t x779; + uint32_t x780; + fiat_p384_mulx_u32(&x779, &x780, x735, UINT32_C(0xffffffff)); + uint32_t x781; + fiat_p384_uint1 x782; + fiat_p384_addcarryx_u32(&x781, &x782, 0x0, x775, x778); + uint32_t x783; + fiat_p384_uint1 x784; + fiat_p384_addcarryx_u32(&x783, &x784, x782, x773, x776); + uint32_t x785; + fiat_p384_uint1 x786; + fiat_p384_addcarryx_u32(&x785, &x786, x784, x771, x774); + uint32_t x787; + fiat_p384_uint1 x788; + fiat_p384_addcarryx_u32(&x787, &x788, x786, x769, x772); + uint32_t x789; + fiat_p384_uint1 x790; + fiat_p384_addcarryx_u32(&x789, &x790, x788, x767, x770); + uint32_t x791; + fiat_p384_uint1 x792; + fiat_p384_addcarryx_u32(&x791, &x792, x790, x765, x768); + uint32_t x793; + fiat_p384_uint1 x794; + fiat_p384_addcarryx_u32(&x793, &x794, x792, x763, x766); + uint32_t x795; + fiat_p384_uint1 x796; + fiat_p384_addcarryx_u32(&x795, &x796, x794, x761, x764); + uint32_t x797; + fiat_p384_uint1 x798; + fiat_p384_addcarryx_u32(&x797, &x798, x796, 0x0, x762); + uint32_t x799; + fiat_p384_uint1 x800; + fiat_p384_addcarryx_u32(&x799, &x800, 0x0, x779, x735); + uint32_t x801; + fiat_p384_uint1 x802; + fiat_p384_addcarryx_u32(&x801, &x802, x800, x780, x737); + uint32_t x803; + fiat_p384_uint1 x804; + fiat_p384_addcarryx_u32(&x803, &x804, x802, 0x0, x739); + uint32_t x805; + fiat_p384_uint1 x806; + fiat_p384_addcarryx_u32(&x805, &x806, x804, x777, x741); + uint32_t x807; + fiat_p384_uint1 x808; + fiat_p384_addcarryx_u32(&x807, &x808, x806, x781, x743); + uint32_t x809; + fiat_p384_uint1 x810; + fiat_p384_addcarryx_u32(&x809, &x810, x808, x783, x745); + uint32_t x811; + fiat_p384_uint1 x812; + fiat_p384_addcarryx_u32(&x811, &x812, x810, x785, x747); + uint32_t x813; + fiat_p384_uint1 x814; + fiat_p384_addcarryx_u32(&x813, &x814, x812, x787, x749); + uint32_t x815; + fiat_p384_uint1 x816; + fiat_p384_addcarryx_u32(&x815, &x816, x814, x789, x751); + uint32_t x817; + fiat_p384_uint1 x818; + fiat_p384_addcarryx_u32(&x817, &x818, x816, x791, x753); + uint32_t x819; + fiat_p384_uint1 x820; + fiat_p384_addcarryx_u32(&x819, &x820, x818, x793, x755); + uint32_t x821; + fiat_p384_uint1 x822; + fiat_p384_addcarryx_u32(&x821, &x822, x820, x795, x757); + uint32_t x823; + fiat_p384_uint1 x824; + fiat_p384_addcarryx_u32(&x823, &x824, x822, x797, x759); + uint32_t x825; + fiat_p384_uint1 x826; + fiat_p384_addcarryx_u32(&x825, &x826, x824, 0x0, x760); + uint32_t x827; + uint32_t x828; + fiat_p384_mulx_u32(&x827, &x828, x6, (arg2[11])); + uint32_t x829; + uint32_t x830; + fiat_p384_mulx_u32(&x829, &x830, x6, (arg2[10])); + uint32_t x831; + uint32_t x832; + fiat_p384_mulx_u32(&x831, &x832, x6, (arg2[9])); + uint32_t x833; + uint32_t x834; + fiat_p384_mulx_u32(&x833, &x834, x6, (arg2[8])); + uint32_t x835; + uint32_t x836; + fiat_p384_mulx_u32(&x835, &x836, x6, (arg2[7])); + uint32_t x837; + uint32_t x838; + fiat_p384_mulx_u32(&x837, &x838, x6, (arg2[6])); + uint32_t x839; + uint32_t x840; + fiat_p384_mulx_u32(&x839, &x840, x6, (arg2[5])); + uint32_t x841; + uint32_t x842; + fiat_p384_mulx_u32(&x841, &x842, x6, (arg2[4])); + uint32_t x843; + uint32_t x844; + fiat_p384_mulx_u32(&x843, &x844, x6, (arg2[3])); + uint32_t x845; + uint32_t x846; + fiat_p384_mulx_u32(&x845, &x846, x6, (arg2[2])); + uint32_t x847; + uint32_t x848; + fiat_p384_mulx_u32(&x847, &x848, x6, (arg2[1])); + uint32_t x849; + uint32_t x850; + fiat_p384_mulx_u32(&x849, &x850, x6, (arg2[0])); + uint32_t x851; + fiat_p384_uint1 x852; + fiat_p384_addcarryx_u32(&x851, &x852, 0x0, x847, x850); + uint32_t x853; + fiat_p384_uint1 x854; + fiat_p384_addcarryx_u32(&x853, &x854, x852, x845, x848); + uint32_t x855; + fiat_p384_uint1 x856; + fiat_p384_addcarryx_u32(&x855, &x856, x854, x843, x846); + uint32_t x857; + fiat_p384_uint1 x858; + fiat_p384_addcarryx_u32(&x857, &x858, x856, x841, x844); + uint32_t x859; + fiat_p384_uint1 x860; + fiat_p384_addcarryx_u32(&x859, &x860, x858, x839, x842); + uint32_t x861; + fiat_p384_uint1 x862; + fiat_p384_addcarryx_u32(&x861, &x862, x860, x837, x840); + uint32_t x863; + fiat_p384_uint1 x864; + fiat_p384_addcarryx_u32(&x863, &x864, x862, x835, x838); + uint32_t x865; + fiat_p384_uint1 x866; + fiat_p384_addcarryx_u32(&x865, &x866, x864, x833, x836); + uint32_t x867; + fiat_p384_uint1 x868; + fiat_p384_addcarryx_u32(&x867, &x868, x866, x831, x834); + uint32_t x869; + fiat_p384_uint1 x870; + fiat_p384_addcarryx_u32(&x869, &x870, x868, x829, x832); + uint32_t x871; + fiat_p384_uint1 x872; + fiat_p384_addcarryx_u32(&x871, &x872, x870, x827, x830); + uint32_t x873; + fiat_p384_uint1 x874; + fiat_p384_addcarryx_u32(&x873, &x874, x872, 0x0, x828); + uint32_t x875; + fiat_p384_uint1 x876; + fiat_p384_addcarryx_u32(&x875, &x876, 0x0, x849, x801); + uint32_t x877; + fiat_p384_uint1 x878; + fiat_p384_addcarryx_u32(&x877, &x878, x876, x851, x803); + uint32_t x879; + fiat_p384_uint1 x880; + fiat_p384_addcarryx_u32(&x879, &x880, x878, x853, x805); + uint32_t x881; + fiat_p384_uint1 x882; + fiat_p384_addcarryx_u32(&x881, &x882, x880, x855, x807); + uint32_t x883; + fiat_p384_uint1 x884; + fiat_p384_addcarryx_u32(&x883, &x884, x882, x857, x809); + uint32_t x885; + fiat_p384_uint1 x886; + fiat_p384_addcarryx_u32(&x885, &x886, x884, x859, x811); + uint32_t x887; + fiat_p384_uint1 x888; + fiat_p384_addcarryx_u32(&x887, &x888, x886, x861, x813); + uint32_t x889; + fiat_p384_uint1 x890; + fiat_p384_addcarryx_u32(&x889, &x890, x888, x863, x815); + uint32_t x891; + fiat_p384_uint1 x892; + fiat_p384_addcarryx_u32(&x891, &x892, x890, x865, x817); + uint32_t x893; + fiat_p384_uint1 x894; + fiat_p384_addcarryx_u32(&x893, &x894, x892, x867, x819); + uint32_t x895; + fiat_p384_uint1 x896; + fiat_p384_addcarryx_u32(&x895, &x896, x894, x869, x821); + uint32_t x897; + fiat_p384_uint1 x898; + fiat_p384_addcarryx_u32(&x897, &x898, x896, x871, x823); + uint32_t x899; + fiat_p384_uint1 x900; + fiat_p384_addcarryx_u32(&x899, &x900, x898, x873, x825); + uint32_t x901; + uint32_t x902; + fiat_p384_mulx_u32(&x901, &x902, x875, UINT32_C(0xffffffff)); + uint32_t x903; + uint32_t x904; + fiat_p384_mulx_u32(&x903, &x904, x875, UINT32_C(0xffffffff)); + uint32_t x905; + uint32_t x906; + fiat_p384_mulx_u32(&x905, &x906, x875, UINT32_C(0xffffffff)); + uint32_t x907; + uint32_t x908; + fiat_p384_mulx_u32(&x907, &x908, x875, UINT32_C(0xffffffff)); + uint32_t x909; + uint32_t x910; + fiat_p384_mulx_u32(&x909, &x910, x875, UINT32_C(0xffffffff)); + uint32_t x911; + uint32_t x912; + fiat_p384_mulx_u32(&x911, &x912, x875, UINT32_C(0xffffffff)); + uint32_t x913; + uint32_t x914; + fiat_p384_mulx_u32(&x913, &x914, x875, UINT32_C(0xffffffff)); + uint32_t x915; + uint32_t x916; + fiat_p384_mulx_u32(&x915, &x916, x875, UINT32_C(0xfffffffe)); + uint32_t x917; + uint32_t x918; + fiat_p384_mulx_u32(&x917, &x918, x875, UINT32_C(0xffffffff)); + uint32_t x919; + uint32_t x920; + fiat_p384_mulx_u32(&x919, &x920, x875, UINT32_C(0xffffffff)); + uint32_t x921; + fiat_p384_uint1 x922; + fiat_p384_addcarryx_u32(&x921, &x922, 0x0, x915, x918); + uint32_t x923; + fiat_p384_uint1 x924; + fiat_p384_addcarryx_u32(&x923, &x924, x922, x913, x916); + uint32_t x925; + fiat_p384_uint1 x926; + fiat_p384_addcarryx_u32(&x925, &x926, x924, x911, x914); + uint32_t x927; + fiat_p384_uint1 x928; + fiat_p384_addcarryx_u32(&x927, &x928, x926, x909, x912); + uint32_t x929; + fiat_p384_uint1 x930; + fiat_p384_addcarryx_u32(&x929, &x930, x928, x907, x910); + uint32_t x931; + fiat_p384_uint1 x932; + fiat_p384_addcarryx_u32(&x931, &x932, x930, x905, x908); + uint32_t x933; + fiat_p384_uint1 x934; + fiat_p384_addcarryx_u32(&x933, &x934, x932, x903, x906); + uint32_t x935; + fiat_p384_uint1 x936; + fiat_p384_addcarryx_u32(&x935, &x936, x934, x901, x904); + uint32_t x937; + fiat_p384_uint1 x938; + fiat_p384_addcarryx_u32(&x937, &x938, x936, 0x0, x902); + uint32_t x939; + fiat_p384_uint1 x940; + fiat_p384_addcarryx_u32(&x939, &x940, 0x0, x919, x875); + uint32_t x941; + fiat_p384_uint1 x942; + fiat_p384_addcarryx_u32(&x941, &x942, x940, x920, x877); + uint32_t x943; + fiat_p384_uint1 x944; + fiat_p384_addcarryx_u32(&x943, &x944, x942, 0x0, x879); + uint32_t x945; + fiat_p384_uint1 x946; + fiat_p384_addcarryx_u32(&x945, &x946, x944, x917, x881); + uint32_t x947; + fiat_p384_uint1 x948; + fiat_p384_addcarryx_u32(&x947, &x948, x946, x921, x883); + uint32_t x949; + fiat_p384_uint1 x950; + fiat_p384_addcarryx_u32(&x949, &x950, x948, x923, x885); + uint32_t x951; + fiat_p384_uint1 x952; + fiat_p384_addcarryx_u32(&x951, &x952, x950, x925, x887); + uint32_t x953; + fiat_p384_uint1 x954; + fiat_p384_addcarryx_u32(&x953, &x954, x952, x927, x889); + uint32_t x955; + fiat_p384_uint1 x956; + fiat_p384_addcarryx_u32(&x955, &x956, x954, x929, x891); + uint32_t x957; + fiat_p384_uint1 x958; + fiat_p384_addcarryx_u32(&x957, &x958, x956, x931, x893); + uint32_t x959; + fiat_p384_uint1 x960; + fiat_p384_addcarryx_u32(&x959, &x960, x958, x933, x895); + uint32_t x961; + fiat_p384_uint1 x962; + fiat_p384_addcarryx_u32(&x961, &x962, x960, x935, x897); + uint32_t x963; + fiat_p384_uint1 x964; + fiat_p384_addcarryx_u32(&x963, &x964, x962, x937, x899); + uint32_t x965; + fiat_p384_uint1 x966; + fiat_p384_addcarryx_u32(&x965, &x966, x964, 0x0, x900); + uint32_t x967; + uint32_t x968; + fiat_p384_mulx_u32(&x967, &x968, x7, (arg2[11])); + uint32_t x969; + uint32_t x970; + fiat_p384_mulx_u32(&x969, &x970, x7, (arg2[10])); + uint32_t x971; + uint32_t x972; + fiat_p384_mulx_u32(&x971, &x972, x7, (arg2[9])); + uint32_t x973; + uint32_t x974; + fiat_p384_mulx_u32(&x973, &x974, x7, (arg2[8])); + uint32_t x975; + uint32_t x976; + fiat_p384_mulx_u32(&x975, &x976, x7, (arg2[7])); + uint32_t x977; + uint32_t x978; + fiat_p384_mulx_u32(&x977, &x978, x7, (arg2[6])); + uint32_t x979; + uint32_t x980; + fiat_p384_mulx_u32(&x979, &x980, x7, (arg2[5])); + uint32_t x981; + uint32_t x982; + fiat_p384_mulx_u32(&x981, &x982, x7, (arg2[4])); + uint32_t x983; + uint32_t x984; + fiat_p384_mulx_u32(&x983, &x984, x7, (arg2[3])); + uint32_t x985; + uint32_t x986; + fiat_p384_mulx_u32(&x985, &x986, x7, (arg2[2])); + uint32_t x987; + uint32_t x988; + fiat_p384_mulx_u32(&x987, &x988, x7, (arg2[1])); + uint32_t x989; + uint32_t x990; + fiat_p384_mulx_u32(&x989, &x990, x7, (arg2[0])); + uint32_t x991; + fiat_p384_uint1 x992; + fiat_p384_addcarryx_u32(&x991, &x992, 0x0, x987, x990); + uint32_t x993; + fiat_p384_uint1 x994; + fiat_p384_addcarryx_u32(&x993, &x994, x992, x985, x988); + uint32_t x995; + fiat_p384_uint1 x996; + fiat_p384_addcarryx_u32(&x995, &x996, x994, x983, x986); + uint32_t x997; + fiat_p384_uint1 x998; + fiat_p384_addcarryx_u32(&x997, &x998, x996, x981, x984); + uint32_t x999; + fiat_p384_uint1 x1000; + fiat_p384_addcarryx_u32(&x999, &x1000, x998, x979, x982); + uint32_t x1001; + fiat_p384_uint1 x1002; + fiat_p384_addcarryx_u32(&x1001, &x1002, x1000, x977, x980); + uint32_t x1003; + fiat_p384_uint1 x1004; + fiat_p384_addcarryx_u32(&x1003, &x1004, x1002, x975, x978); + uint32_t x1005; + fiat_p384_uint1 x1006; + fiat_p384_addcarryx_u32(&x1005, &x1006, x1004, x973, x976); + uint32_t x1007; + fiat_p384_uint1 x1008; + fiat_p384_addcarryx_u32(&x1007, &x1008, x1006, x971, x974); + uint32_t x1009; + fiat_p384_uint1 x1010; + fiat_p384_addcarryx_u32(&x1009, &x1010, x1008, x969, x972); + uint32_t x1011; + fiat_p384_uint1 x1012; + fiat_p384_addcarryx_u32(&x1011, &x1012, x1010, x967, x970); + uint32_t x1013; + fiat_p384_uint1 x1014; + fiat_p384_addcarryx_u32(&x1013, &x1014, x1012, 0x0, x968); + uint32_t x1015; + fiat_p384_uint1 x1016; + fiat_p384_addcarryx_u32(&x1015, &x1016, 0x0, x989, x941); + uint32_t x1017; + fiat_p384_uint1 x1018; + fiat_p384_addcarryx_u32(&x1017, &x1018, x1016, x991, x943); + uint32_t x1019; + fiat_p384_uint1 x1020; + fiat_p384_addcarryx_u32(&x1019, &x1020, x1018, x993, x945); + uint32_t x1021; + fiat_p384_uint1 x1022; + fiat_p384_addcarryx_u32(&x1021, &x1022, x1020, x995, x947); + uint32_t x1023; + fiat_p384_uint1 x1024; + fiat_p384_addcarryx_u32(&x1023, &x1024, x1022, x997, x949); + uint32_t x1025; + fiat_p384_uint1 x1026; + fiat_p384_addcarryx_u32(&x1025, &x1026, x1024, x999, x951); + uint32_t x1027; + fiat_p384_uint1 x1028; + fiat_p384_addcarryx_u32(&x1027, &x1028, x1026, x1001, x953); + uint32_t x1029; + fiat_p384_uint1 x1030; + fiat_p384_addcarryx_u32(&x1029, &x1030, x1028, x1003, x955); + uint32_t x1031; + fiat_p384_uint1 x1032; + fiat_p384_addcarryx_u32(&x1031, &x1032, x1030, x1005, x957); + uint32_t x1033; + fiat_p384_uint1 x1034; + fiat_p384_addcarryx_u32(&x1033, &x1034, x1032, x1007, x959); + uint32_t x1035; + fiat_p384_uint1 x1036; + fiat_p384_addcarryx_u32(&x1035, &x1036, x1034, x1009, x961); + uint32_t x1037; + fiat_p384_uint1 x1038; + fiat_p384_addcarryx_u32(&x1037, &x1038, x1036, x1011, x963); + uint32_t x1039; + fiat_p384_uint1 x1040; + fiat_p384_addcarryx_u32(&x1039, &x1040, x1038, x1013, x965); + uint32_t x1041; + uint32_t x1042; + fiat_p384_mulx_u32(&x1041, &x1042, x1015, UINT32_C(0xffffffff)); + uint32_t x1043; + uint32_t x1044; + fiat_p384_mulx_u32(&x1043, &x1044, x1015, UINT32_C(0xffffffff)); + uint32_t x1045; + uint32_t x1046; + fiat_p384_mulx_u32(&x1045, &x1046, x1015, UINT32_C(0xffffffff)); + uint32_t x1047; + uint32_t x1048; + fiat_p384_mulx_u32(&x1047, &x1048, x1015, UINT32_C(0xffffffff)); + uint32_t x1049; + uint32_t x1050; + fiat_p384_mulx_u32(&x1049, &x1050, x1015, UINT32_C(0xffffffff)); + uint32_t x1051; + uint32_t x1052; + fiat_p384_mulx_u32(&x1051, &x1052, x1015, UINT32_C(0xffffffff)); + uint32_t x1053; + uint32_t x1054; + fiat_p384_mulx_u32(&x1053, &x1054, x1015, UINT32_C(0xffffffff)); + uint32_t x1055; + uint32_t x1056; + fiat_p384_mulx_u32(&x1055, &x1056, x1015, UINT32_C(0xfffffffe)); + uint32_t x1057; + uint32_t x1058; + fiat_p384_mulx_u32(&x1057, &x1058, x1015, UINT32_C(0xffffffff)); + uint32_t x1059; + uint32_t x1060; + fiat_p384_mulx_u32(&x1059, &x1060, x1015, UINT32_C(0xffffffff)); + uint32_t x1061; + fiat_p384_uint1 x1062; + fiat_p384_addcarryx_u32(&x1061, &x1062, 0x0, x1055, x1058); + uint32_t x1063; + fiat_p384_uint1 x1064; + fiat_p384_addcarryx_u32(&x1063, &x1064, x1062, x1053, x1056); + uint32_t x1065; + fiat_p384_uint1 x1066; + fiat_p384_addcarryx_u32(&x1065, &x1066, x1064, x1051, x1054); + uint32_t x1067; + fiat_p384_uint1 x1068; + fiat_p384_addcarryx_u32(&x1067, &x1068, x1066, x1049, x1052); + uint32_t x1069; + fiat_p384_uint1 x1070; + fiat_p384_addcarryx_u32(&x1069, &x1070, x1068, x1047, x1050); + uint32_t x1071; + fiat_p384_uint1 x1072; + fiat_p384_addcarryx_u32(&x1071, &x1072, x1070, x1045, x1048); + uint32_t x1073; + fiat_p384_uint1 x1074; + fiat_p384_addcarryx_u32(&x1073, &x1074, x1072, x1043, x1046); + uint32_t x1075; + fiat_p384_uint1 x1076; + fiat_p384_addcarryx_u32(&x1075, &x1076, x1074, x1041, x1044); + uint32_t x1077; + fiat_p384_uint1 x1078; + fiat_p384_addcarryx_u32(&x1077, &x1078, x1076, 0x0, x1042); + uint32_t x1079; + fiat_p384_uint1 x1080; + fiat_p384_addcarryx_u32(&x1079, &x1080, 0x0, x1059, x1015); + uint32_t x1081; + fiat_p384_uint1 x1082; + fiat_p384_addcarryx_u32(&x1081, &x1082, x1080, x1060, x1017); + uint32_t x1083; + fiat_p384_uint1 x1084; + fiat_p384_addcarryx_u32(&x1083, &x1084, x1082, 0x0, x1019); + uint32_t x1085; + fiat_p384_uint1 x1086; + fiat_p384_addcarryx_u32(&x1085, &x1086, x1084, x1057, x1021); + uint32_t x1087; + fiat_p384_uint1 x1088; + fiat_p384_addcarryx_u32(&x1087, &x1088, x1086, x1061, x1023); + uint32_t x1089; + fiat_p384_uint1 x1090; + fiat_p384_addcarryx_u32(&x1089, &x1090, x1088, x1063, x1025); + uint32_t x1091; + fiat_p384_uint1 x1092; + fiat_p384_addcarryx_u32(&x1091, &x1092, x1090, x1065, x1027); + uint32_t x1093; + fiat_p384_uint1 x1094; + fiat_p384_addcarryx_u32(&x1093, &x1094, x1092, x1067, x1029); + uint32_t x1095; + fiat_p384_uint1 x1096; + fiat_p384_addcarryx_u32(&x1095, &x1096, x1094, x1069, x1031); + uint32_t x1097; + fiat_p384_uint1 x1098; + fiat_p384_addcarryx_u32(&x1097, &x1098, x1096, x1071, x1033); + uint32_t x1099; + fiat_p384_uint1 x1100; + fiat_p384_addcarryx_u32(&x1099, &x1100, x1098, x1073, x1035); + uint32_t x1101; + fiat_p384_uint1 x1102; + fiat_p384_addcarryx_u32(&x1101, &x1102, x1100, x1075, x1037); + uint32_t x1103; + fiat_p384_uint1 x1104; + fiat_p384_addcarryx_u32(&x1103, &x1104, x1102, x1077, x1039); + uint32_t x1105; + fiat_p384_uint1 x1106; + fiat_p384_addcarryx_u32(&x1105, &x1106, x1104, 0x0, x1040); + uint32_t x1107; + uint32_t x1108; + fiat_p384_mulx_u32(&x1107, &x1108, x8, (arg2[11])); + uint32_t x1109; + uint32_t x1110; + fiat_p384_mulx_u32(&x1109, &x1110, x8, (arg2[10])); + uint32_t x1111; + uint32_t x1112; + fiat_p384_mulx_u32(&x1111, &x1112, x8, (arg2[9])); + uint32_t x1113; + uint32_t x1114; + fiat_p384_mulx_u32(&x1113, &x1114, x8, (arg2[8])); + uint32_t x1115; + uint32_t x1116; + fiat_p384_mulx_u32(&x1115, &x1116, x8, (arg2[7])); + uint32_t x1117; + uint32_t x1118; + fiat_p384_mulx_u32(&x1117, &x1118, x8, (arg2[6])); + uint32_t x1119; + uint32_t x1120; + fiat_p384_mulx_u32(&x1119, &x1120, x8, (arg2[5])); + uint32_t x1121; + uint32_t x1122; + fiat_p384_mulx_u32(&x1121, &x1122, x8, (arg2[4])); + uint32_t x1123; + uint32_t x1124; + fiat_p384_mulx_u32(&x1123, &x1124, x8, (arg2[3])); + uint32_t x1125; + uint32_t x1126; + fiat_p384_mulx_u32(&x1125, &x1126, x8, (arg2[2])); + uint32_t x1127; + uint32_t x1128; + fiat_p384_mulx_u32(&x1127, &x1128, x8, (arg2[1])); + uint32_t x1129; + uint32_t x1130; + fiat_p384_mulx_u32(&x1129, &x1130, x8, (arg2[0])); + uint32_t x1131; + fiat_p384_uint1 x1132; + fiat_p384_addcarryx_u32(&x1131, &x1132, 0x0, x1127, x1130); + uint32_t x1133; + fiat_p384_uint1 x1134; + fiat_p384_addcarryx_u32(&x1133, &x1134, x1132, x1125, x1128); + uint32_t x1135; + fiat_p384_uint1 x1136; + fiat_p384_addcarryx_u32(&x1135, &x1136, x1134, x1123, x1126); + uint32_t x1137; + fiat_p384_uint1 x1138; + fiat_p384_addcarryx_u32(&x1137, &x1138, x1136, x1121, x1124); + uint32_t x1139; + fiat_p384_uint1 x1140; + fiat_p384_addcarryx_u32(&x1139, &x1140, x1138, x1119, x1122); + uint32_t x1141; + fiat_p384_uint1 x1142; + fiat_p384_addcarryx_u32(&x1141, &x1142, x1140, x1117, x1120); + uint32_t x1143; + fiat_p384_uint1 x1144; + fiat_p384_addcarryx_u32(&x1143, &x1144, x1142, x1115, x1118); + uint32_t x1145; + fiat_p384_uint1 x1146; + fiat_p384_addcarryx_u32(&x1145, &x1146, x1144, x1113, x1116); + uint32_t x1147; + fiat_p384_uint1 x1148; + fiat_p384_addcarryx_u32(&x1147, &x1148, x1146, x1111, x1114); + uint32_t x1149; + fiat_p384_uint1 x1150; + fiat_p384_addcarryx_u32(&x1149, &x1150, x1148, x1109, x1112); + uint32_t x1151; + fiat_p384_uint1 x1152; + fiat_p384_addcarryx_u32(&x1151, &x1152, x1150, x1107, x1110); + uint32_t x1153; + fiat_p384_uint1 x1154; + fiat_p384_addcarryx_u32(&x1153, &x1154, x1152, 0x0, x1108); + uint32_t x1155; + fiat_p384_uint1 x1156; + fiat_p384_addcarryx_u32(&x1155, &x1156, 0x0, x1129, x1081); + uint32_t x1157; + fiat_p384_uint1 x1158; + fiat_p384_addcarryx_u32(&x1157, &x1158, x1156, x1131, x1083); + uint32_t x1159; + fiat_p384_uint1 x1160; + fiat_p384_addcarryx_u32(&x1159, &x1160, x1158, x1133, x1085); + uint32_t x1161; + fiat_p384_uint1 x1162; + fiat_p384_addcarryx_u32(&x1161, &x1162, x1160, x1135, x1087); + uint32_t x1163; + fiat_p384_uint1 x1164; + fiat_p384_addcarryx_u32(&x1163, &x1164, x1162, x1137, x1089); + uint32_t x1165; + fiat_p384_uint1 x1166; + fiat_p384_addcarryx_u32(&x1165, &x1166, x1164, x1139, x1091); + uint32_t x1167; + fiat_p384_uint1 x1168; + fiat_p384_addcarryx_u32(&x1167, &x1168, x1166, x1141, x1093); + uint32_t x1169; + fiat_p384_uint1 x1170; + fiat_p384_addcarryx_u32(&x1169, &x1170, x1168, x1143, x1095); + uint32_t x1171; + fiat_p384_uint1 x1172; + fiat_p384_addcarryx_u32(&x1171, &x1172, x1170, x1145, x1097); + uint32_t x1173; + fiat_p384_uint1 x1174; + fiat_p384_addcarryx_u32(&x1173, &x1174, x1172, x1147, x1099); + uint32_t x1175; + fiat_p384_uint1 x1176; + fiat_p384_addcarryx_u32(&x1175, &x1176, x1174, x1149, x1101); + uint32_t x1177; + fiat_p384_uint1 x1178; + fiat_p384_addcarryx_u32(&x1177, &x1178, x1176, x1151, x1103); + uint32_t x1179; + fiat_p384_uint1 x1180; + fiat_p384_addcarryx_u32(&x1179, &x1180, x1178, x1153, x1105); + uint32_t x1181; + uint32_t x1182; + fiat_p384_mulx_u32(&x1181, &x1182, x1155, UINT32_C(0xffffffff)); + uint32_t x1183; + uint32_t x1184; + fiat_p384_mulx_u32(&x1183, &x1184, x1155, UINT32_C(0xffffffff)); + uint32_t x1185; + uint32_t x1186; + fiat_p384_mulx_u32(&x1185, &x1186, x1155, UINT32_C(0xffffffff)); + uint32_t x1187; + uint32_t x1188; + fiat_p384_mulx_u32(&x1187, &x1188, x1155, UINT32_C(0xffffffff)); + uint32_t x1189; + uint32_t x1190; + fiat_p384_mulx_u32(&x1189, &x1190, x1155, UINT32_C(0xffffffff)); + uint32_t x1191; + uint32_t x1192; + fiat_p384_mulx_u32(&x1191, &x1192, x1155, UINT32_C(0xffffffff)); + uint32_t x1193; + uint32_t x1194; + fiat_p384_mulx_u32(&x1193, &x1194, x1155, UINT32_C(0xffffffff)); + uint32_t x1195; + uint32_t x1196; + fiat_p384_mulx_u32(&x1195, &x1196, x1155, UINT32_C(0xfffffffe)); + uint32_t x1197; + uint32_t x1198; + fiat_p384_mulx_u32(&x1197, &x1198, x1155, UINT32_C(0xffffffff)); + uint32_t x1199; + uint32_t x1200; + fiat_p384_mulx_u32(&x1199, &x1200, x1155, UINT32_C(0xffffffff)); + uint32_t x1201; + fiat_p384_uint1 x1202; + fiat_p384_addcarryx_u32(&x1201, &x1202, 0x0, x1195, x1198); + uint32_t x1203; + fiat_p384_uint1 x1204; + fiat_p384_addcarryx_u32(&x1203, &x1204, x1202, x1193, x1196); + uint32_t x1205; + fiat_p384_uint1 x1206; + fiat_p384_addcarryx_u32(&x1205, &x1206, x1204, x1191, x1194); + uint32_t x1207; + fiat_p384_uint1 x1208; + fiat_p384_addcarryx_u32(&x1207, &x1208, x1206, x1189, x1192); + uint32_t x1209; + fiat_p384_uint1 x1210; + fiat_p384_addcarryx_u32(&x1209, &x1210, x1208, x1187, x1190); + uint32_t x1211; + fiat_p384_uint1 x1212; + fiat_p384_addcarryx_u32(&x1211, &x1212, x1210, x1185, x1188); + uint32_t x1213; + fiat_p384_uint1 x1214; + fiat_p384_addcarryx_u32(&x1213, &x1214, x1212, x1183, x1186); + uint32_t x1215; + fiat_p384_uint1 x1216; + fiat_p384_addcarryx_u32(&x1215, &x1216, x1214, x1181, x1184); + uint32_t x1217; + fiat_p384_uint1 x1218; + fiat_p384_addcarryx_u32(&x1217, &x1218, x1216, 0x0, x1182); + uint32_t x1219; + fiat_p384_uint1 x1220; + fiat_p384_addcarryx_u32(&x1219, &x1220, 0x0, x1199, x1155); + uint32_t x1221; + fiat_p384_uint1 x1222; + fiat_p384_addcarryx_u32(&x1221, &x1222, x1220, x1200, x1157); + uint32_t x1223; + fiat_p384_uint1 x1224; + fiat_p384_addcarryx_u32(&x1223, &x1224, x1222, 0x0, x1159); + uint32_t x1225; + fiat_p384_uint1 x1226; + fiat_p384_addcarryx_u32(&x1225, &x1226, x1224, x1197, x1161); + uint32_t x1227; + fiat_p384_uint1 x1228; + fiat_p384_addcarryx_u32(&x1227, &x1228, x1226, x1201, x1163); + uint32_t x1229; + fiat_p384_uint1 x1230; + fiat_p384_addcarryx_u32(&x1229, &x1230, x1228, x1203, x1165); + uint32_t x1231; + fiat_p384_uint1 x1232; + fiat_p384_addcarryx_u32(&x1231, &x1232, x1230, x1205, x1167); + uint32_t x1233; + fiat_p384_uint1 x1234; + fiat_p384_addcarryx_u32(&x1233, &x1234, x1232, x1207, x1169); + uint32_t x1235; + fiat_p384_uint1 x1236; + fiat_p384_addcarryx_u32(&x1235, &x1236, x1234, x1209, x1171); + uint32_t x1237; + fiat_p384_uint1 x1238; + fiat_p384_addcarryx_u32(&x1237, &x1238, x1236, x1211, x1173); + uint32_t x1239; + fiat_p384_uint1 x1240; + fiat_p384_addcarryx_u32(&x1239, &x1240, x1238, x1213, x1175); + uint32_t x1241; + fiat_p384_uint1 x1242; + fiat_p384_addcarryx_u32(&x1241, &x1242, x1240, x1215, x1177); + uint32_t x1243; + fiat_p384_uint1 x1244; + fiat_p384_addcarryx_u32(&x1243, &x1244, x1242, x1217, x1179); + uint32_t x1245; + fiat_p384_uint1 x1246; + fiat_p384_addcarryx_u32(&x1245, &x1246, x1244, 0x0, x1180); + uint32_t x1247; + uint32_t x1248; + fiat_p384_mulx_u32(&x1247, &x1248, x9, (arg2[11])); + uint32_t x1249; + uint32_t x1250; + fiat_p384_mulx_u32(&x1249, &x1250, x9, (arg2[10])); + uint32_t x1251; + uint32_t x1252; + fiat_p384_mulx_u32(&x1251, &x1252, x9, (arg2[9])); + uint32_t x1253; + uint32_t x1254; + fiat_p384_mulx_u32(&x1253, &x1254, x9, (arg2[8])); + uint32_t x1255; + uint32_t x1256; + fiat_p384_mulx_u32(&x1255, &x1256, x9, (arg2[7])); + uint32_t x1257; + uint32_t x1258; + fiat_p384_mulx_u32(&x1257, &x1258, x9, (arg2[6])); + uint32_t x1259; + uint32_t x1260; + fiat_p384_mulx_u32(&x1259, &x1260, x9, (arg2[5])); + uint32_t x1261; + uint32_t x1262; + fiat_p384_mulx_u32(&x1261, &x1262, x9, (arg2[4])); + uint32_t x1263; + uint32_t x1264; + fiat_p384_mulx_u32(&x1263, &x1264, x9, (arg2[3])); + uint32_t x1265; + uint32_t x1266; + fiat_p384_mulx_u32(&x1265, &x1266, x9, (arg2[2])); + uint32_t x1267; + uint32_t x1268; + fiat_p384_mulx_u32(&x1267, &x1268, x9, (arg2[1])); + uint32_t x1269; + uint32_t x1270; + fiat_p384_mulx_u32(&x1269, &x1270, x9, (arg2[0])); + uint32_t x1271; + fiat_p384_uint1 x1272; + fiat_p384_addcarryx_u32(&x1271, &x1272, 0x0, x1267, x1270); + uint32_t x1273; + fiat_p384_uint1 x1274; + fiat_p384_addcarryx_u32(&x1273, &x1274, x1272, x1265, x1268); + uint32_t x1275; + fiat_p384_uint1 x1276; + fiat_p384_addcarryx_u32(&x1275, &x1276, x1274, x1263, x1266); + uint32_t x1277; + fiat_p384_uint1 x1278; + fiat_p384_addcarryx_u32(&x1277, &x1278, x1276, x1261, x1264); + uint32_t x1279; + fiat_p384_uint1 x1280; + fiat_p384_addcarryx_u32(&x1279, &x1280, x1278, x1259, x1262); + uint32_t x1281; + fiat_p384_uint1 x1282; + fiat_p384_addcarryx_u32(&x1281, &x1282, x1280, x1257, x1260); + uint32_t x1283; + fiat_p384_uint1 x1284; + fiat_p384_addcarryx_u32(&x1283, &x1284, x1282, x1255, x1258); + uint32_t x1285; + fiat_p384_uint1 x1286; + fiat_p384_addcarryx_u32(&x1285, &x1286, x1284, x1253, x1256); + uint32_t x1287; + fiat_p384_uint1 x1288; + fiat_p384_addcarryx_u32(&x1287, &x1288, x1286, x1251, x1254); + uint32_t x1289; + fiat_p384_uint1 x1290; + fiat_p384_addcarryx_u32(&x1289, &x1290, x1288, x1249, x1252); + uint32_t x1291; + fiat_p384_uint1 x1292; + fiat_p384_addcarryx_u32(&x1291, &x1292, x1290, x1247, x1250); + uint32_t x1293; + fiat_p384_uint1 x1294; + fiat_p384_addcarryx_u32(&x1293, &x1294, x1292, 0x0, x1248); + uint32_t x1295; + fiat_p384_uint1 x1296; + fiat_p384_addcarryx_u32(&x1295, &x1296, 0x0, x1269, x1221); + uint32_t x1297; + fiat_p384_uint1 x1298; + fiat_p384_addcarryx_u32(&x1297, &x1298, x1296, x1271, x1223); + uint32_t x1299; + fiat_p384_uint1 x1300; + fiat_p384_addcarryx_u32(&x1299, &x1300, x1298, x1273, x1225); + uint32_t x1301; + fiat_p384_uint1 x1302; + fiat_p384_addcarryx_u32(&x1301, &x1302, x1300, x1275, x1227); + uint32_t x1303; + fiat_p384_uint1 x1304; + fiat_p384_addcarryx_u32(&x1303, &x1304, x1302, x1277, x1229); + uint32_t x1305; + fiat_p384_uint1 x1306; + fiat_p384_addcarryx_u32(&x1305, &x1306, x1304, x1279, x1231); + uint32_t x1307; + fiat_p384_uint1 x1308; + fiat_p384_addcarryx_u32(&x1307, &x1308, x1306, x1281, x1233); + uint32_t x1309; + fiat_p384_uint1 x1310; + fiat_p384_addcarryx_u32(&x1309, &x1310, x1308, x1283, x1235); + uint32_t x1311; + fiat_p384_uint1 x1312; + fiat_p384_addcarryx_u32(&x1311, &x1312, x1310, x1285, x1237); + uint32_t x1313; + fiat_p384_uint1 x1314; + fiat_p384_addcarryx_u32(&x1313, &x1314, x1312, x1287, x1239); + uint32_t x1315; + fiat_p384_uint1 x1316; + fiat_p384_addcarryx_u32(&x1315, &x1316, x1314, x1289, x1241); + uint32_t x1317; + fiat_p384_uint1 x1318; + fiat_p384_addcarryx_u32(&x1317, &x1318, x1316, x1291, x1243); + uint32_t x1319; + fiat_p384_uint1 x1320; + fiat_p384_addcarryx_u32(&x1319, &x1320, x1318, x1293, x1245); + uint32_t x1321; + uint32_t x1322; + fiat_p384_mulx_u32(&x1321, &x1322, x1295, UINT32_C(0xffffffff)); + uint32_t x1323; + uint32_t x1324; + fiat_p384_mulx_u32(&x1323, &x1324, x1295, UINT32_C(0xffffffff)); + uint32_t x1325; + uint32_t x1326; + fiat_p384_mulx_u32(&x1325, &x1326, x1295, UINT32_C(0xffffffff)); + uint32_t x1327; + uint32_t x1328; + fiat_p384_mulx_u32(&x1327, &x1328, x1295, UINT32_C(0xffffffff)); + uint32_t x1329; + uint32_t x1330; + fiat_p384_mulx_u32(&x1329, &x1330, x1295, UINT32_C(0xffffffff)); + uint32_t x1331; + uint32_t x1332; + fiat_p384_mulx_u32(&x1331, &x1332, x1295, UINT32_C(0xffffffff)); + uint32_t x1333; + uint32_t x1334; + fiat_p384_mulx_u32(&x1333, &x1334, x1295, UINT32_C(0xffffffff)); + uint32_t x1335; + uint32_t x1336; + fiat_p384_mulx_u32(&x1335, &x1336, x1295, UINT32_C(0xfffffffe)); + uint32_t x1337; + uint32_t x1338; + fiat_p384_mulx_u32(&x1337, &x1338, x1295, UINT32_C(0xffffffff)); + uint32_t x1339; + uint32_t x1340; + fiat_p384_mulx_u32(&x1339, &x1340, x1295, UINT32_C(0xffffffff)); + uint32_t x1341; + fiat_p384_uint1 x1342; + fiat_p384_addcarryx_u32(&x1341, &x1342, 0x0, x1335, x1338); + uint32_t x1343; + fiat_p384_uint1 x1344; + fiat_p384_addcarryx_u32(&x1343, &x1344, x1342, x1333, x1336); + uint32_t x1345; + fiat_p384_uint1 x1346; + fiat_p384_addcarryx_u32(&x1345, &x1346, x1344, x1331, x1334); + uint32_t x1347; + fiat_p384_uint1 x1348; + fiat_p384_addcarryx_u32(&x1347, &x1348, x1346, x1329, x1332); + uint32_t x1349; + fiat_p384_uint1 x1350; + fiat_p384_addcarryx_u32(&x1349, &x1350, x1348, x1327, x1330); + uint32_t x1351; + fiat_p384_uint1 x1352; + fiat_p384_addcarryx_u32(&x1351, &x1352, x1350, x1325, x1328); + uint32_t x1353; + fiat_p384_uint1 x1354; + fiat_p384_addcarryx_u32(&x1353, &x1354, x1352, x1323, x1326); + uint32_t x1355; + fiat_p384_uint1 x1356; + fiat_p384_addcarryx_u32(&x1355, &x1356, x1354, x1321, x1324); + uint32_t x1357; + fiat_p384_uint1 x1358; + fiat_p384_addcarryx_u32(&x1357, &x1358, x1356, 0x0, x1322); + uint32_t x1359; + fiat_p384_uint1 x1360; + fiat_p384_addcarryx_u32(&x1359, &x1360, 0x0, x1339, x1295); + uint32_t x1361; + fiat_p384_uint1 x1362; + fiat_p384_addcarryx_u32(&x1361, &x1362, x1360, x1340, x1297); + uint32_t x1363; + fiat_p384_uint1 x1364; + fiat_p384_addcarryx_u32(&x1363, &x1364, x1362, 0x0, x1299); + uint32_t x1365; + fiat_p384_uint1 x1366; + fiat_p384_addcarryx_u32(&x1365, &x1366, x1364, x1337, x1301); + uint32_t x1367; + fiat_p384_uint1 x1368; + fiat_p384_addcarryx_u32(&x1367, &x1368, x1366, x1341, x1303); + uint32_t x1369; + fiat_p384_uint1 x1370; + fiat_p384_addcarryx_u32(&x1369, &x1370, x1368, x1343, x1305); + uint32_t x1371; + fiat_p384_uint1 x1372; + fiat_p384_addcarryx_u32(&x1371, &x1372, x1370, x1345, x1307); + uint32_t x1373; + fiat_p384_uint1 x1374; + fiat_p384_addcarryx_u32(&x1373, &x1374, x1372, x1347, x1309); + uint32_t x1375; + fiat_p384_uint1 x1376; + fiat_p384_addcarryx_u32(&x1375, &x1376, x1374, x1349, x1311); + uint32_t x1377; + fiat_p384_uint1 x1378; + fiat_p384_addcarryx_u32(&x1377, &x1378, x1376, x1351, x1313); + uint32_t x1379; + fiat_p384_uint1 x1380; + fiat_p384_addcarryx_u32(&x1379, &x1380, x1378, x1353, x1315); + uint32_t x1381; + fiat_p384_uint1 x1382; + fiat_p384_addcarryx_u32(&x1381, &x1382, x1380, x1355, x1317); + uint32_t x1383; + fiat_p384_uint1 x1384; + fiat_p384_addcarryx_u32(&x1383, &x1384, x1382, x1357, x1319); + uint32_t x1385; + fiat_p384_uint1 x1386; + fiat_p384_addcarryx_u32(&x1385, &x1386, x1384, 0x0, x1320); + uint32_t x1387; + uint32_t x1388; + fiat_p384_mulx_u32(&x1387, &x1388, x10, (arg2[11])); + uint32_t x1389; + uint32_t x1390; + fiat_p384_mulx_u32(&x1389, &x1390, x10, (arg2[10])); + uint32_t x1391; + uint32_t x1392; + fiat_p384_mulx_u32(&x1391, &x1392, x10, (arg2[9])); + uint32_t x1393; + uint32_t x1394; + fiat_p384_mulx_u32(&x1393, &x1394, x10, (arg2[8])); + uint32_t x1395; + uint32_t x1396; + fiat_p384_mulx_u32(&x1395, &x1396, x10, (arg2[7])); + uint32_t x1397; + uint32_t x1398; + fiat_p384_mulx_u32(&x1397, &x1398, x10, (arg2[6])); + uint32_t x1399; + uint32_t x1400; + fiat_p384_mulx_u32(&x1399, &x1400, x10, (arg2[5])); + uint32_t x1401; + uint32_t x1402; + fiat_p384_mulx_u32(&x1401, &x1402, x10, (arg2[4])); + uint32_t x1403; + uint32_t x1404; + fiat_p384_mulx_u32(&x1403, &x1404, x10, (arg2[3])); + uint32_t x1405; + uint32_t x1406; + fiat_p384_mulx_u32(&x1405, &x1406, x10, (arg2[2])); + uint32_t x1407; + uint32_t x1408; + fiat_p384_mulx_u32(&x1407, &x1408, x10, (arg2[1])); + uint32_t x1409; + uint32_t x1410; + fiat_p384_mulx_u32(&x1409, &x1410, x10, (arg2[0])); + uint32_t x1411; + fiat_p384_uint1 x1412; + fiat_p384_addcarryx_u32(&x1411, &x1412, 0x0, x1407, x1410); + uint32_t x1413; + fiat_p384_uint1 x1414; + fiat_p384_addcarryx_u32(&x1413, &x1414, x1412, x1405, x1408); + uint32_t x1415; + fiat_p384_uint1 x1416; + fiat_p384_addcarryx_u32(&x1415, &x1416, x1414, x1403, x1406); + uint32_t x1417; + fiat_p384_uint1 x1418; + fiat_p384_addcarryx_u32(&x1417, &x1418, x1416, x1401, x1404); + uint32_t x1419; + fiat_p384_uint1 x1420; + fiat_p384_addcarryx_u32(&x1419, &x1420, x1418, x1399, x1402); + uint32_t x1421; + fiat_p384_uint1 x1422; + fiat_p384_addcarryx_u32(&x1421, &x1422, x1420, x1397, x1400); + uint32_t x1423; + fiat_p384_uint1 x1424; + fiat_p384_addcarryx_u32(&x1423, &x1424, x1422, x1395, x1398); + uint32_t x1425; + fiat_p384_uint1 x1426; + fiat_p384_addcarryx_u32(&x1425, &x1426, x1424, x1393, x1396); + uint32_t x1427; + fiat_p384_uint1 x1428; + fiat_p384_addcarryx_u32(&x1427, &x1428, x1426, x1391, x1394); + uint32_t x1429; + fiat_p384_uint1 x1430; + fiat_p384_addcarryx_u32(&x1429, &x1430, x1428, x1389, x1392); + uint32_t x1431; + fiat_p384_uint1 x1432; + fiat_p384_addcarryx_u32(&x1431, &x1432, x1430, x1387, x1390); + uint32_t x1433; + fiat_p384_uint1 x1434; + fiat_p384_addcarryx_u32(&x1433, &x1434, x1432, 0x0, x1388); + uint32_t x1435; + fiat_p384_uint1 x1436; + fiat_p384_addcarryx_u32(&x1435, &x1436, 0x0, x1409, x1361); + uint32_t x1437; + fiat_p384_uint1 x1438; + fiat_p384_addcarryx_u32(&x1437, &x1438, x1436, x1411, x1363); + uint32_t x1439; + fiat_p384_uint1 x1440; + fiat_p384_addcarryx_u32(&x1439, &x1440, x1438, x1413, x1365); + uint32_t x1441; + fiat_p384_uint1 x1442; + fiat_p384_addcarryx_u32(&x1441, &x1442, x1440, x1415, x1367); + uint32_t x1443; + fiat_p384_uint1 x1444; + fiat_p384_addcarryx_u32(&x1443, &x1444, x1442, x1417, x1369); + uint32_t x1445; + fiat_p384_uint1 x1446; + fiat_p384_addcarryx_u32(&x1445, &x1446, x1444, x1419, x1371); + uint32_t x1447; + fiat_p384_uint1 x1448; + fiat_p384_addcarryx_u32(&x1447, &x1448, x1446, x1421, x1373); + uint32_t x1449; + fiat_p384_uint1 x1450; + fiat_p384_addcarryx_u32(&x1449, &x1450, x1448, x1423, x1375); + uint32_t x1451; + fiat_p384_uint1 x1452; + fiat_p384_addcarryx_u32(&x1451, &x1452, x1450, x1425, x1377); + uint32_t x1453; + fiat_p384_uint1 x1454; + fiat_p384_addcarryx_u32(&x1453, &x1454, x1452, x1427, x1379); + uint32_t x1455; + fiat_p384_uint1 x1456; + fiat_p384_addcarryx_u32(&x1455, &x1456, x1454, x1429, x1381); + uint32_t x1457; + fiat_p384_uint1 x1458; + fiat_p384_addcarryx_u32(&x1457, &x1458, x1456, x1431, x1383); + uint32_t x1459; + fiat_p384_uint1 x1460; + fiat_p384_addcarryx_u32(&x1459, &x1460, x1458, x1433, x1385); + uint32_t x1461; + uint32_t x1462; + fiat_p384_mulx_u32(&x1461, &x1462, x1435, UINT32_C(0xffffffff)); + uint32_t x1463; + uint32_t x1464; + fiat_p384_mulx_u32(&x1463, &x1464, x1435, UINT32_C(0xffffffff)); + uint32_t x1465; + uint32_t x1466; + fiat_p384_mulx_u32(&x1465, &x1466, x1435, UINT32_C(0xffffffff)); + uint32_t x1467; + uint32_t x1468; + fiat_p384_mulx_u32(&x1467, &x1468, x1435, UINT32_C(0xffffffff)); + uint32_t x1469; + uint32_t x1470; + fiat_p384_mulx_u32(&x1469, &x1470, x1435, UINT32_C(0xffffffff)); + uint32_t x1471; + uint32_t x1472; + fiat_p384_mulx_u32(&x1471, &x1472, x1435, UINT32_C(0xffffffff)); + uint32_t x1473; + uint32_t x1474; + fiat_p384_mulx_u32(&x1473, &x1474, x1435, UINT32_C(0xffffffff)); + uint32_t x1475; + uint32_t x1476; + fiat_p384_mulx_u32(&x1475, &x1476, x1435, UINT32_C(0xfffffffe)); + uint32_t x1477; + uint32_t x1478; + fiat_p384_mulx_u32(&x1477, &x1478, x1435, UINT32_C(0xffffffff)); + uint32_t x1479; + uint32_t x1480; + fiat_p384_mulx_u32(&x1479, &x1480, x1435, UINT32_C(0xffffffff)); + uint32_t x1481; + fiat_p384_uint1 x1482; + fiat_p384_addcarryx_u32(&x1481, &x1482, 0x0, x1475, x1478); + uint32_t x1483; + fiat_p384_uint1 x1484; + fiat_p384_addcarryx_u32(&x1483, &x1484, x1482, x1473, x1476); + uint32_t x1485; + fiat_p384_uint1 x1486; + fiat_p384_addcarryx_u32(&x1485, &x1486, x1484, x1471, x1474); + uint32_t x1487; + fiat_p384_uint1 x1488; + fiat_p384_addcarryx_u32(&x1487, &x1488, x1486, x1469, x1472); + uint32_t x1489; + fiat_p384_uint1 x1490; + fiat_p384_addcarryx_u32(&x1489, &x1490, x1488, x1467, x1470); + uint32_t x1491; + fiat_p384_uint1 x1492; + fiat_p384_addcarryx_u32(&x1491, &x1492, x1490, x1465, x1468); + uint32_t x1493; + fiat_p384_uint1 x1494; + fiat_p384_addcarryx_u32(&x1493, &x1494, x1492, x1463, x1466); + uint32_t x1495; + fiat_p384_uint1 x1496; + fiat_p384_addcarryx_u32(&x1495, &x1496, x1494, x1461, x1464); + uint32_t x1497; + fiat_p384_uint1 x1498; + fiat_p384_addcarryx_u32(&x1497, &x1498, x1496, 0x0, x1462); + uint32_t x1499; + fiat_p384_uint1 x1500; + fiat_p384_addcarryx_u32(&x1499, &x1500, 0x0, x1479, x1435); + uint32_t x1501; + fiat_p384_uint1 x1502; + fiat_p384_addcarryx_u32(&x1501, &x1502, x1500, x1480, x1437); + uint32_t x1503; + fiat_p384_uint1 x1504; + fiat_p384_addcarryx_u32(&x1503, &x1504, x1502, 0x0, x1439); + uint32_t x1505; + fiat_p384_uint1 x1506; + fiat_p384_addcarryx_u32(&x1505, &x1506, x1504, x1477, x1441); + uint32_t x1507; + fiat_p384_uint1 x1508; + fiat_p384_addcarryx_u32(&x1507, &x1508, x1506, x1481, x1443); + uint32_t x1509; + fiat_p384_uint1 x1510; + fiat_p384_addcarryx_u32(&x1509, &x1510, x1508, x1483, x1445); + uint32_t x1511; + fiat_p384_uint1 x1512; + fiat_p384_addcarryx_u32(&x1511, &x1512, x1510, x1485, x1447); + uint32_t x1513; + fiat_p384_uint1 x1514; + fiat_p384_addcarryx_u32(&x1513, &x1514, x1512, x1487, x1449); + uint32_t x1515; + fiat_p384_uint1 x1516; + fiat_p384_addcarryx_u32(&x1515, &x1516, x1514, x1489, x1451); + uint32_t x1517; + fiat_p384_uint1 x1518; + fiat_p384_addcarryx_u32(&x1517, &x1518, x1516, x1491, x1453); + uint32_t x1519; + fiat_p384_uint1 x1520; + fiat_p384_addcarryx_u32(&x1519, &x1520, x1518, x1493, x1455); + uint32_t x1521; + fiat_p384_uint1 x1522; + fiat_p384_addcarryx_u32(&x1521, &x1522, x1520, x1495, x1457); + uint32_t x1523; + fiat_p384_uint1 x1524; + fiat_p384_addcarryx_u32(&x1523, &x1524, x1522, x1497, x1459); + uint32_t x1525; + fiat_p384_uint1 x1526; + fiat_p384_addcarryx_u32(&x1525, &x1526, x1524, 0x0, x1460); + uint32_t x1527; + uint32_t x1528; + fiat_p384_mulx_u32(&x1527, &x1528, x11, (arg2[11])); + uint32_t x1529; + uint32_t x1530; + fiat_p384_mulx_u32(&x1529, &x1530, x11, (arg2[10])); + uint32_t x1531; + uint32_t x1532; + fiat_p384_mulx_u32(&x1531, &x1532, x11, (arg2[9])); + uint32_t x1533; + uint32_t x1534; + fiat_p384_mulx_u32(&x1533, &x1534, x11, (arg2[8])); + uint32_t x1535; + uint32_t x1536; + fiat_p384_mulx_u32(&x1535, &x1536, x11, (arg2[7])); + uint32_t x1537; + uint32_t x1538; + fiat_p384_mulx_u32(&x1537, &x1538, x11, (arg2[6])); + uint32_t x1539; + uint32_t x1540; + fiat_p384_mulx_u32(&x1539, &x1540, x11, (arg2[5])); + uint32_t x1541; + uint32_t x1542; + fiat_p384_mulx_u32(&x1541, &x1542, x11, (arg2[4])); + uint32_t x1543; + uint32_t x1544; + fiat_p384_mulx_u32(&x1543, &x1544, x11, (arg2[3])); + uint32_t x1545; + uint32_t x1546; + fiat_p384_mulx_u32(&x1545, &x1546, x11, (arg2[2])); + uint32_t x1547; + uint32_t x1548; + fiat_p384_mulx_u32(&x1547, &x1548, x11, (arg2[1])); + uint32_t x1549; + uint32_t x1550; + fiat_p384_mulx_u32(&x1549, &x1550, x11, (arg2[0])); + uint32_t x1551; + fiat_p384_uint1 x1552; + fiat_p384_addcarryx_u32(&x1551, &x1552, 0x0, x1547, x1550); + uint32_t x1553; + fiat_p384_uint1 x1554; + fiat_p384_addcarryx_u32(&x1553, &x1554, x1552, x1545, x1548); + uint32_t x1555; + fiat_p384_uint1 x1556; + fiat_p384_addcarryx_u32(&x1555, &x1556, x1554, x1543, x1546); + uint32_t x1557; + fiat_p384_uint1 x1558; + fiat_p384_addcarryx_u32(&x1557, &x1558, x1556, x1541, x1544); + uint32_t x1559; + fiat_p384_uint1 x1560; + fiat_p384_addcarryx_u32(&x1559, &x1560, x1558, x1539, x1542); + uint32_t x1561; + fiat_p384_uint1 x1562; + fiat_p384_addcarryx_u32(&x1561, &x1562, x1560, x1537, x1540); + uint32_t x1563; + fiat_p384_uint1 x1564; + fiat_p384_addcarryx_u32(&x1563, &x1564, x1562, x1535, x1538); + uint32_t x1565; + fiat_p384_uint1 x1566; + fiat_p384_addcarryx_u32(&x1565, &x1566, x1564, x1533, x1536); + uint32_t x1567; + fiat_p384_uint1 x1568; + fiat_p384_addcarryx_u32(&x1567, &x1568, x1566, x1531, x1534); + uint32_t x1569; + fiat_p384_uint1 x1570; + fiat_p384_addcarryx_u32(&x1569, &x1570, x1568, x1529, x1532); + uint32_t x1571; + fiat_p384_uint1 x1572; + fiat_p384_addcarryx_u32(&x1571, &x1572, x1570, x1527, x1530); + uint32_t x1573; + fiat_p384_uint1 x1574; + fiat_p384_addcarryx_u32(&x1573, &x1574, x1572, 0x0, x1528); + uint32_t x1575; + fiat_p384_uint1 x1576; + fiat_p384_addcarryx_u32(&x1575, &x1576, 0x0, x1549, x1501); + uint32_t x1577; + fiat_p384_uint1 x1578; + fiat_p384_addcarryx_u32(&x1577, &x1578, x1576, x1551, x1503); + uint32_t x1579; + fiat_p384_uint1 x1580; + fiat_p384_addcarryx_u32(&x1579, &x1580, x1578, x1553, x1505); + uint32_t x1581; + fiat_p384_uint1 x1582; + fiat_p384_addcarryx_u32(&x1581, &x1582, x1580, x1555, x1507); + uint32_t x1583; + fiat_p384_uint1 x1584; + fiat_p384_addcarryx_u32(&x1583, &x1584, x1582, x1557, x1509); + uint32_t x1585; + fiat_p384_uint1 x1586; + fiat_p384_addcarryx_u32(&x1585, &x1586, x1584, x1559, x1511); + uint32_t x1587; + fiat_p384_uint1 x1588; + fiat_p384_addcarryx_u32(&x1587, &x1588, x1586, x1561, x1513); + uint32_t x1589; + fiat_p384_uint1 x1590; + fiat_p384_addcarryx_u32(&x1589, &x1590, x1588, x1563, x1515); + uint32_t x1591; + fiat_p384_uint1 x1592; + fiat_p384_addcarryx_u32(&x1591, &x1592, x1590, x1565, x1517); + uint32_t x1593; + fiat_p384_uint1 x1594; + fiat_p384_addcarryx_u32(&x1593, &x1594, x1592, x1567, x1519); + uint32_t x1595; + fiat_p384_uint1 x1596; + fiat_p384_addcarryx_u32(&x1595, &x1596, x1594, x1569, x1521); + uint32_t x1597; + fiat_p384_uint1 x1598; + fiat_p384_addcarryx_u32(&x1597, &x1598, x1596, x1571, x1523); + uint32_t x1599; + fiat_p384_uint1 x1600; + fiat_p384_addcarryx_u32(&x1599, &x1600, x1598, x1573, x1525); + uint32_t x1601; + uint32_t x1602; + fiat_p384_mulx_u32(&x1601, &x1602, x1575, UINT32_C(0xffffffff)); + uint32_t x1603; + uint32_t x1604; + fiat_p384_mulx_u32(&x1603, &x1604, x1575, UINT32_C(0xffffffff)); + uint32_t x1605; + uint32_t x1606; + fiat_p384_mulx_u32(&x1605, &x1606, x1575, UINT32_C(0xffffffff)); + uint32_t x1607; + uint32_t x1608; + fiat_p384_mulx_u32(&x1607, &x1608, x1575, UINT32_C(0xffffffff)); + uint32_t x1609; + uint32_t x1610; + fiat_p384_mulx_u32(&x1609, &x1610, x1575, UINT32_C(0xffffffff)); + uint32_t x1611; + uint32_t x1612; + fiat_p384_mulx_u32(&x1611, &x1612, x1575, UINT32_C(0xffffffff)); + uint32_t x1613; + uint32_t x1614; + fiat_p384_mulx_u32(&x1613, &x1614, x1575, UINT32_C(0xffffffff)); + uint32_t x1615; + uint32_t x1616; + fiat_p384_mulx_u32(&x1615, &x1616, x1575, UINT32_C(0xfffffffe)); + uint32_t x1617; + uint32_t x1618; + fiat_p384_mulx_u32(&x1617, &x1618, x1575, UINT32_C(0xffffffff)); + uint32_t x1619; + uint32_t x1620; + fiat_p384_mulx_u32(&x1619, &x1620, x1575, UINT32_C(0xffffffff)); + uint32_t x1621; + fiat_p384_uint1 x1622; + fiat_p384_addcarryx_u32(&x1621, &x1622, 0x0, x1615, x1618); + uint32_t x1623; + fiat_p384_uint1 x1624; + fiat_p384_addcarryx_u32(&x1623, &x1624, x1622, x1613, x1616); + uint32_t x1625; + fiat_p384_uint1 x1626; + fiat_p384_addcarryx_u32(&x1625, &x1626, x1624, x1611, x1614); + uint32_t x1627; + fiat_p384_uint1 x1628; + fiat_p384_addcarryx_u32(&x1627, &x1628, x1626, x1609, x1612); + uint32_t x1629; + fiat_p384_uint1 x1630; + fiat_p384_addcarryx_u32(&x1629, &x1630, x1628, x1607, x1610); + uint32_t x1631; + fiat_p384_uint1 x1632; + fiat_p384_addcarryx_u32(&x1631, &x1632, x1630, x1605, x1608); + uint32_t x1633; + fiat_p384_uint1 x1634; + fiat_p384_addcarryx_u32(&x1633, &x1634, x1632, x1603, x1606); + uint32_t x1635; + fiat_p384_uint1 x1636; + fiat_p384_addcarryx_u32(&x1635, &x1636, x1634, x1601, x1604); + uint32_t x1637; + fiat_p384_uint1 x1638; + fiat_p384_addcarryx_u32(&x1637, &x1638, x1636, 0x0, x1602); + uint32_t x1639; + fiat_p384_uint1 x1640; + fiat_p384_addcarryx_u32(&x1639, &x1640, 0x0, x1619, x1575); + uint32_t x1641; + fiat_p384_uint1 x1642; + fiat_p384_addcarryx_u32(&x1641, &x1642, x1640, x1620, x1577); + uint32_t x1643; + fiat_p384_uint1 x1644; + fiat_p384_addcarryx_u32(&x1643, &x1644, x1642, 0x0, x1579); + uint32_t x1645; + fiat_p384_uint1 x1646; + fiat_p384_addcarryx_u32(&x1645, &x1646, x1644, x1617, x1581); + uint32_t x1647; + fiat_p384_uint1 x1648; + fiat_p384_addcarryx_u32(&x1647, &x1648, x1646, x1621, x1583); + uint32_t x1649; + fiat_p384_uint1 x1650; + fiat_p384_addcarryx_u32(&x1649, &x1650, x1648, x1623, x1585); + uint32_t x1651; + fiat_p384_uint1 x1652; + fiat_p384_addcarryx_u32(&x1651, &x1652, x1650, x1625, x1587); + uint32_t x1653; + fiat_p384_uint1 x1654; + fiat_p384_addcarryx_u32(&x1653, &x1654, x1652, x1627, x1589); + uint32_t x1655; + fiat_p384_uint1 x1656; + fiat_p384_addcarryx_u32(&x1655, &x1656, x1654, x1629, x1591); + uint32_t x1657; + fiat_p384_uint1 x1658; + fiat_p384_addcarryx_u32(&x1657, &x1658, x1656, x1631, x1593); + uint32_t x1659; + fiat_p384_uint1 x1660; + fiat_p384_addcarryx_u32(&x1659, &x1660, x1658, x1633, x1595); + uint32_t x1661; + fiat_p384_uint1 x1662; + fiat_p384_addcarryx_u32(&x1661, &x1662, x1660, x1635, x1597); + uint32_t x1663; + fiat_p384_uint1 x1664; + fiat_p384_addcarryx_u32(&x1663, &x1664, x1662, x1637, x1599); + uint32_t x1665; + fiat_p384_uint1 x1666; + fiat_p384_addcarryx_u32(&x1665, &x1666, x1664, 0x0, x1600); + uint32_t x1667; + fiat_p384_uint1 x1668; + fiat_p384_subborrowx_u32(&x1667, &x1668, 0x0, x1641, UINT32_C(0xffffffff)); + uint32_t x1669; + fiat_p384_uint1 x1670; + fiat_p384_subborrowx_u32(&x1669, &x1670, x1668, x1643, 0x0); + uint32_t x1671; + fiat_p384_uint1 x1672; + fiat_p384_subborrowx_u32(&x1671, &x1672, x1670, x1645, 0x0); + uint32_t x1673; + fiat_p384_uint1 x1674; + fiat_p384_subborrowx_u32(&x1673, &x1674, x1672, x1647, UINT32_C(0xffffffff)); + uint32_t x1675; + fiat_p384_uint1 x1676; + fiat_p384_subborrowx_u32(&x1675, &x1676, x1674, x1649, UINT32_C(0xfffffffe)); + uint32_t x1677; + fiat_p384_uint1 x1678; + fiat_p384_subborrowx_u32(&x1677, &x1678, x1676, x1651, UINT32_C(0xffffffff)); + uint32_t x1679; + fiat_p384_uint1 x1680; + fiat_p384_subborrowx_u32(&x1679, &x1680, x1678, x1653, UINT32_C(0xffffffff)); + uint32_t x1681; + fiat_p384_uint1 x1682; + fiat_p384_subborrowx_u32(&x1681, &x1682, x1680, x1655, UINT32_C(0xffffffff)); + uint32_t x1683; + fiat_p384_uint1 x1684; + fiat_p384_subborrowx_u32(&x1683, &x1684, x1682, x1657, UINT32_C(0xffffffff)); + uint32_t x1685; + fiat_p384_uint1 x1686; + fiat_p384_subborrowx_u32(&x1685, &x1686, x1684, x1659, UINT32_C(0xffffffff)); + uint32_t x1687; + fiat_p384_uint1 x1688; + fiat_p384_subborrowx_u32(&x1687, &x1688, x1686, x1661, UINT32_C(0xffffffff)); + uint32_t x1689; + fiat_p384_uint1 x1690; + fiat_p384_subborrowx_u32(&x1689, &x1690, x1688, x1663, UINT32_C(0xffffffff)); + uint32_t x1691; + fiat_p384_uint1 x1692; + fiat_p384_subborrowx_u32(&x1691, &x1692, x1690, x1665, 0x0); + uint32_t x1693; + fiat_p384_cmovznz_u32(&x1693, x1692, x1667, x1641); + uint32_t x1694; + fiat_p384_cmovznz_u32(&x1694, x1692, x1669, x1643); + uint32_t x1695; + fiat_p384_cmovznz_u32(&x1695, x1692, x1671, x1645); + uint32_t x1696; + fiat_p384_cmovznz_u32(&x1696, x1692, x1673, x1647); + uint32_t x1697; + fiat_p384_cmovznz_u32(&x1697, x1692, x1675, x1649); + uint32_t x1698; + fiat_p384_cmovznz_u32(&x1698, x1692, x1677, x1651); + uint32_t x1699; + fiat_p384_cmovznz_u32(&x1699, x1692, x1679, x1653); + uint32_t x1700; + fiat_p384_cmovznz_u32(&x1700, x1692, x1681, x1655); + uint32_t x1701; + fiat_p384_cmovznz_u32(&x1701, x1692, x1683, x1657); + uint32_t x1702; + fiat_p384_cmovznz_u32(&x1702, x1692, x1685, x1659); + uint32_t x1703; + fiat_p384_cmovznz_u32(&x1703, x1692, x1687, x1661); + uint32_t x1704; + fiat_p384_cmovznz_u32(&x1704, x1692, x1689, x1663); + out1[0] = x1693; + out1[1] = x1694; + out1[2] = x1695; + out1[3] = x1696; + out1[4] = x1697; + out1[5] = x1698; + out1[6] = x1699; + out1[7] = x1700; + out1[8] = x1701; + out1[9] = x1702; + out1[10] = x1703; + out1[11] = x1704; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_square(uint32_t out1[12], const uint32_t arg1[12]) { + uint32_t x1 = (arg1[1]); + uint32_t x2 = (arg1[2]); + uint32_t x3 = (arg1[3]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[5]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[7]); + uint32_t x8 = (arg1[8]); + uint32_t x9 = (arg1[9]); + uint32_t x10 = (arg1[10]); + uint32_t x11 = (arg1[11]); + uint32_t x12 = (arg1[0]); + uint32_t x13; + uint32_t x14; + fiat_p384_mulx_u32(&x13, &x14, x12, (arg1[11])); + uint32_t x15; + uint32_t x16; + fiat_p384_mulx_u32(&x15, &x16, x12, (arg1[10])); + uint32_t x17; + uint32_t x18; + fiat_p384_mulx_u32(&x17, &x18, x12, (arg1[9])); + uint32_t x19; + uint32_t x20; + fiat_p384_mulx_u32(&x19, &x20, x12, (arg1[8])); + uint32_t x21; + uint32_t x22; + fiat_p384_mulx_u32(&x21, &x22, x12, (arg1[7])); + uint32_t x23; + uint32_t x24; + fiat_p384_mulx_u32(&x23, &x24, x12, (arg1[6])); + uint32_t x25; + uint32_t x26; + fiat_p384_mulx_u32(&x25, &x26, x12, (arg1[5])); + uint32_t x27; + uint32_t x28; + fiat_p384_mulx_u32(&x27, &x28, x12, (arg1[4])); + uint32_t x29; + uint32_t x30; + fiat_p384_mulx_u32(&x29, &x30, x12, (arg1[3])); + uint32_t x31; + uint32_t x32; + fiat_p384_mulx_u32(&x31, &x32, x12, (arg1[2])); + uint32_t x33; + uint32_t x34; + fiat_p384_mulx_u32(&x33, &x34, x12, (arg1[1])); + uint32_t x35; + uint32_t x36; + fiat_p384_mulx_u32(&x35, &x36, x12, (arg1[0])); + uint32_t x37; + fiat_p384_uint1 x38; + fiat_p384_addcarryx_u32(&x37, &x38, 0x0, x33, x36); + uint32_t x39; + fiat_p384_uint1 x40; + fiat_p384_addcarryx_u32(&x39, &x40, x38, x31, x34); + uint32_t x41; + fiat_p384_uint1 x42; + fiat_p384_addcarryx_u32(&x41, &x42, x40, x29, x32); + uint32_t x43; + fiat_p384_uint1 x44; + fiat_p384_addcarryx_u32(&x43, &x44, x42, x27, x30); + uint32_t x45; + fiat_p384_uint1 x46; + fiat_p384_addcarryx_u32(&x45, &x46, x44, x25, x28); + uint32_t x47; + fiat_p384_uint1 x48; + fiat_p384_addcarryx_u32(&x47, &x48, x46, x23, x26); + uint32_t x49; + fiat_p384_uint1 x50; + fiat_p384_addcarryx_u32(&x49, &x50, x48, x21, x24); + uint32_t x51; + fiat_p384_uint1 x52; + fiat_p384_addcarryx_u32(&x51, &x52, x50, x19, x22); + uint32_t x53; + fiat_p384_uint1 x54; + fiat_p384_addcarryx_u32(&x53, &x54, x52, x17, x20); + uint32_t x55; + fiat_p384_uint1 x56; + fiat_p384_addcarryx_u32(&x55, &x56, x54, x15, x18); + uint32_t x57; + fiat_p384_uint1 x58; + fiat_p384_addcarryx_u32(&x57, &x58, x56, x13, x16); + uint32_t x59; + fiat_p384_uint1 x60; + fiat_p384_addcarryx_u32(&x59, &x60, x58, 0x0, x14); + uint32_t x61; + uint32_t x62; + fiat_p384_mulx_u32(&x61, &x62, x35, UINT32_C(0xffffffff)); + uint32_t x63; + uint32_t x64; + fiat_p384_mulx_u32(&x63, &x64, x35, UINT32_C(0xffffffff)); + uint32_t x65; + uint32_t x66; + fiat_p384_mulx_u32(&x65, &x66, x35, UINT32_C(0xffffffff)); + uint32_t x67; + uint32_t x68; + fiat_p384_mulx_u32(&x67, &x68, x35, UINT32_C(0xffffffff)); + uint32_t x69; + uint32_t x70; + fiat_p384_mulx_u32(&x69, &x70, x35, UINT32_C(0xffffffff)); + uint32_t x71; + uint32_t x72; + fiat_p384_mulx_u32(&x71, &x72, x35, UINT32_C(0xffffffff)); + uint32_t x73; + uint32_t x74; + fiat_p384_mulx_u32(&x73, &x74, x35, UINT32_C(0xffffffff)); + uint32_t x75; + uint32_t x76; + fiat_p384_mulx_u32(&x75, &x76, x35, UINT32_C(0xfffffffe)); + uint32_t x77; + uint32_t x78; + fiat_p384_mulx_u32(&x77, &x78, x35, UINT32_C(0xffffffff)); + uint32_t x79; + uint32_t x80; + fiat_p384_mulx_u32(&x79, &x80, x35, UINT32_C(0xffffffff)); + uint32_t x81; + fiat_p384_uint1 x82; + fiat_p384_addcarryx_u32(&x81, &x82, 0x0, x75, x78); + uint32_t x83; + fiat_p384_uint1 x84; + fiat_p384_addcarryx_u32(&x83, &x84, x82, x73, x76); + uint32_t x85; + fiat_p384_uint1 x86; + fiat_p384_addcarryx_u32(&x85, &x86, x84, x71, x74); + uint32_t x87; + fiat_p384_uint1 x88; + fiat_p384_addcarryx_u32(&x87, &x88, x86, x69, x72); + uint32_t x89; + fiat_p384_uint1 x90; + fiat_p384_addcarryx_u32(&x89, &x90, x88, x67, x70); + uint32_t x91; + fiat_p384_uint1 x92; + fiat_p384_addcarryx_u32(&x91, &x92, x90, x65, x68); + uint32_t x93; + fiat_p384_uint1 x94; + fiat_p384_addcarryx_u32(&x93, &x94, x92, x63, x66); + uint32_t x95; + fiat_p384_uint1 x96; + fiat_p384_addcarryx_u32(&x95, &x96, x94, x61, x64); + uint32_t x97; + fiat_p384_uint1 x98; + fiat_p384_addcarryx_u32(&x97, &x98, x96, 0x0, x62); + uint32_t x99; + fiat_p384_uint1 x100; + fiat_p384_addcarryx_u32(&x99, &x100, 0x0, x79, x35); + uint32_t x101; + fiat_p384_uint1 x102; + fiat_p384_addcarryx_u32(&x101, &x102, x100, x80, x37); + uint32_t x103; + fiat_p384_uint1 x104; + fiat_p384_addcarryx_u32(&x103, &x104, x102, 0x0, x39); + uint32_t x105; + fiat_p384_uint1 x106; + fiat_p384_addcarryx_u32(&x105, &x106, x104, x77, x41); + uint32_t x107; + fiat_p384_uint1 x108; + fiat_p384_addcarryx_u32(&x107, &x108, x106, x81, x43); + uint32_t x109; + fiat_p384_uint1 x110; + fiat_p384_addcarryx_u32(&x109, &x110, x108, x83, x45); + uint32_t x111; + fiat_p384_uint1 x112; + fiat_p384_addcarryx_u32(&x111, &x112, x110, x85, x47); + uint32_t x113; + fiat_p384_uint1 x114; + fiat_p384_addcarryx_u32(&x113, &x114, x112, x87, x49); + uint32_t x115; + fiat_p384_uint1 x116; + fiat_p384_addcarryx_u32(&x115, &x116, x114, x89, x51); + uint32_t x117; + fiat_p384_uint1 x118; + fiat_p384_addcarryx_u32(&x117, &x118, x116, x91, x53); + uint32_t x119; + fiat_p384_uint1 x120; + fiat_p384_addcarryx_u32(&x119, &x120, x118, x93, x55); + uint32_t x121; + fiat_p384_uint1 x122; + fiat_p384_addcarryx_u32(&x121, &x122, x120, x95, x57); + uint32_t x123; + fiat_p384_uint1 x124; + fiat_p384_addcarryx_u32(&x123, &x124, x122, x97, x59); + uint32_t x125; + fiat_p384_uint1 x126; + fiat_p384_addcarryx_u32(&x125, &x126, x124, 0x0, 0x0); + uint32_t x127; + uint32_t x128; + fiat_p384_mulx_u32(&x127, &x128, x1, (arg1[11])); + uint32_t x129; + uint32_t x130; + fiat_p384_mulx_u32(&x129, &x130, x1, (arg1[10])); + uint32_t x131; + uint32_t x132; + fiat_p384_mulx_u32(&x131, &x132, x1, (arg1[9])); + uint32_t x133; + uint32_t x134; + fiat_p384_mulx_u32(&x133, &x134, x1, (arg1[8])); + uint32_t x135; + uint32_t x136; + fiat_p384_mulx_u32(&x135, &x136, x1, (arg1[7])); + uint32_t x137; + uint32_t x138; + fiat_p384_mulx_u32(&x137, &x138, x1, (arg1[6])); + uint32_t x139; + uint32_t x140; + fiat_p384_mulx_u32(&x139, &x140, x1, (arg1[5])); + uint32_t x141; + uint32_t x142; + fiat_p384_mulx_u32(&x141, &x142, x1, (arg1[4])); + uint32_t x143; + uint32_t x144; + fiat_p384_mulx_u32(&x143, &x144, x1, (arg1[3])); + uint32_t x145; + uint32_t x146; + fiat_p384_mulx_u32(&x145, &x146, x1, (arg1[2])); + uint32_t x147; + uint32_t x148; + fiat_p384_mulx_u32(&x147, &x148, x1, (arg1[1])); + uint32_t x149; + uint32_t x150; + fiat_p384_mulx_u32(&x149, &x150, x1, (arg1[0])); + uint32_t x151; + fiat_p384_uint1 x152; + fiat_p384_addcarryx_u32(&x151, &x152, 0x0, x147, x150); + uint32_t x153; + fiat_p384_uint1 x154; + fiat_p384_addcarryx_u32(&x153, &x154, x152, x145, x148); + uint32_t x155; + fiat_p384_uint1 x156; + fiat_p384_addcarryx_u32(&x155, &x156, x154, x143, x146); + uint32_t x157; + fiat_p384_uint1 x158; + fiat_p384_addcarryx_u32(&x157, &x158, x156, x141, x144); + uint32_t x159; + fiat_p384_uint1 x160; + fiat_p384_addcarryx_u32(&x159, &x160, x158, x139, x142); + uint32_t x161; + fiat_p384_uint1 x162; + fiat_p384_addcarryx_u32(&x161, &x162, x160, x137, x140); + uint32_t x163; + fiat_p384_uint1 x164; + fiat_p384_addcarryx_u32(&x163, &x164, x162, x135, x138); + uint32_t x165; + fiat_p384_uint1 x166; + fiat_p384_addcarryx_u32(&x165, &x166, x164, x133, x136); + uint32_t x167; + fiat_p384_uint1 x168; + fiat_p384_addcarryx_u32(&x167, &x168, x166, x131, x134); + uint32_t x169; + fiat_p384_uint1 x170; + fiat_p384_addcarryx_u32(&x169, &x170, x168, x129, x132); + uint32_t x171; + fiat_p384_uint1 x172; + fiat_p384_addcarryx_u32(&x171, &x172, x170, x127, x130); + uint32_t x173; + fiat_p384_uint1 x174; + fiat_p384_addcarryx_u32(&x173, &x174, x172, 0x0, x128); + uint32_t x175; + fiat_p384_uint1 x176; + fiat_p384_addcarryx_u32(&x175, &x176, 0x0, x149, x101); + uint32_t x177; + fiat_p384_uint1 x178; + fiat_p384_addcarryx_u32(&x177, &x178, x176, x151, x103); + uint32_t x179; + fiat_p384_uint1 x180; + fiat_p384_addcarryx_u32(&x179, &x180, x178, x153, x105); + uint32_t x181; + fiat_p384_uint1 x182; + fiat_p384_addcarryx_u32(&x181, &x182, x180, x155, x107); + uint32_t x183; + fiat_p384_uint1 x184; + fiat_p384_addcarryx_u32(&x183, &x184, x182, x157, x109); + uint32_t x185; + fiat_p384_uint1 x186; + fiat_p384_addcarryx_u32(&x185, &x186, x184, x159, x111); + uint32_t x187; + fiat_p384_uint1 x188; + fiat_p384_addcarryx_u32(&x187, &x188, x186, x161, x113); + uint32_t x189; + fiat_p384_uint1 x190; + fiat_p384_addcarryx_u32(&x189, &x190, x188, x163, x115); + uint32_t x191; + fiat_p384_uint1 x192; + fiat_p384_addcarryx_u32(&x191, &x192, x190, x165, x117); + uint32_t x193; + fiat_p384_uint1 x194; + fiat_p384_addcarryx_u32(&x193, &x194, x192, x167, x119); + uint32_t x195; + fiat_p384_uint1 x196; + fiat_p384_addcarryx_u32(&x195, &x196, x194, x169, x121); + uint32_t x197; + fiat_p384_uint1 x198; + fiat_p384_addcarryx_u32(&x197, &x198, x196, x171, x123); + uint32_t x199; + fiat_p384_uint1 x200; + fiat_p384_addcarryx_u32(&x199, &x200, x198, x173, (fiat_p384_uint1)x125); + uint32_t x201; + uint32_t x202; + fiat_p384_mulx_u32(&x201, &x202, x175, UINT32_C(0xffffffff)); + uint32_t x203; + uint32_t x204; + fiat_p384_mulx_u32(&x203, &x204, x175, UINT32_C(0xffffffff)); + uint32_t x205; + uint32_t x206; + fiat_p384_mulx_u32(&x205, &x206, x175, UINT32_C(0xffffffff)); + uint32_t x207; + uint32_t x208; + fiat_p384_mulx_u32(&x207, &x208, x175, UINT32_C(0xffffffff)); + uint32_t x209; + uint32_t x210; + fiat_p384_mulx_u32(&x209, &x210, x175, UINT32_C(0xffffffff)); + uint32_t x211; + uint32_t x212; + fiat_p384_mulx_u32(&x211, &x212, x175, UINT32_C(0xffffffff)); + uint32_t x213; + uint32_t x214; + fiat_p384_mulx_u32(&x213, &x214, x175, UINT32_C(0xffffffff)); + uint32_t x215; + uint32_t x216; + fiat_p384_mulx_u32(&x215, &x216, x175, UINT32_C(0xfffffffe)); + uint32_t x217; + uint32_t x218; + fiat_p384_mulx_u32(&x217, &x218, x175, UINT32_C(0xffffffff)); + uint32_t x219; + uint32_t x220; + fiat_p384_mulx_u32(&x219, &x220, x175, UINT32_C(0xffffffff)); + uint32_t x221; + fiat_p384_uint1 x222; + fiat_p384_addcarryx_u32(&x221, &x222, 0x0, x215, x218); + uint32_t x223; + fiat_p384_uint1 x224; + fiat_p384_addcarryx_u32(&x223, &x224, x222, x213, x216); + uint32_t x225; + fiat_p384_uint1 x226; + fiat_p384_addcarryx_u32(&x225, &x226, x224, x211, x214); + uint32_t x227; + fiat_p384_uint1 x228; + fiat_p384_addcarryx_u32(&x227, &x228, x226, x209, x212); + uint32_t x229; + fiat_p384_uint1 x230; + fiat_p384_addcarryx_u32(&x229, &x230, x228, x207, x210); + uint32_t x231; + fiat_p384_uint1 x232; + fiat_p384_addcarryx_u32(&x231, &x232, x230, x205, x208); + uint32_t x233; + fiat_p384_uint1 x234; + fiat_p384_addcarryx_u32(&x233, &x234, x232, x203, x206); + uint32_t x235; + fiat_p384_uint1 x236; + fiat_p384_addcarryx_u32(&x235, &x236, x234, x201, x204); + uint32_t x237; + fiat_p384_uint1 x238; + fiat_p384_addcarryx_u32(&x237, &x238, x236, 0x0, x202); + uint32_t x239; + fiat_p384_uint1 x240; + fiat_p384_addcarryx_u32(&x239, &x240, 0x0, x219, x175); + uint32_t x241; + fiat_p384_uint1 x242; + fiat_p384_addcarryx_u32(&x241, &x242, x240, x220, x177); + uint32_t x243; + fiat_p384_uint1 x244; + fiat_p384_addcarryx_u32(&x243, &x244, x242, 0x0, x179); + uint32_t x245; + fiat_p384_uint1 x246; + fiat_p384_addcarryx_u32(&x245, &x246, x244, x217, x181); + uint32_t x247; + fiat_p384_uint1 x248; + fiat_p384_addcarryx_u32(&x247, &x248, x246, x221, x183); + uint32_t x249; + fiat_p384_uint1 x250; + fiat_p384_addcarryx_u32(&x249, &x250, x248, x223, x185); + uint32_t x251; + fiat_p384_uint1 x252; + fiat_p384_addcarryx_u32(&x251, &x252, x250, x225, x187); + uint32_t x253; + fiat_p384_uint1 x254; + fiat_p384_addcarryx_u32(&x253, &x254, x252, x227, x189); + uint32_t x255; + fiat_p384_uint1 x256; + fiat_p384_addcarryx_u32(&x255, &x256, x254, x229, x191); + uint32_t x257; + fiat_p384_uint1 x258; + fiat_p384_addcarryx_u32(&x257, &x258, x256, x231, x193); + uint32_t x259; + fiat_p384_uint1 x260; + fiat_p384_addcarryx_u32(&x259, &x260, x258, x233, x195); + uint32_t x261; + fiat_p384_uint1 x262; + fiat_p384_addcarryx_u32(&x261, &x262, x260, x235, x197); + uint32_t x263; + fiat_p384_uint1 x264; + fiat_p384_addcarryx_u32(&x263, &x264, x262, x237, x199); + uint32_t x265; + fiat_p384_uint1 x266; + fiat_p384_addcarryx_u32(&x265, &x266, x264, 0x0, x200); + uint32_t x267; + uint32_t x268; + fiat_p384_mulx_u32(&x267, &x268, x2, (arg1[11])); + uint32_t x269; + uint32_t x270; + fiat_p384_mulx_u32(&x269, &x270, x2, (arg1[10])); + uint32_t x271; + uint32_t x272; + fiat_p384_mulx_u32(&x271, &x272, x2, (arg1[9])); + uint32_t x273; + uint32_t x274; + fiat_p384_mulx_u32(&x273, &x274, x2, (arg1[8])); + uint32_t x275; + uint32_t x276; + fiat_p384_mulx_u32(&x275, &x276, x2, (arg1[7])); + uint32_t x277; + uint32_t x278; + fiat_p384_mulx_u32(&x277, &x278, x2, (arg1[6])); + uint32_t x279; + uint32_t x280; + fiat_p384_mulx_u32(&x279, &x280, x2, (arg1[5])); + uint32_t x281; + uint32_t x282; + fiat_p384_mulx_u32(&x281, &x282, x2, (arg1[4])); + uint32_t x283; + uint32_t x284; + fiat_p384_mulx_u32(&x283, &x284, x2, (arg1[3])); + uint32_t x285; + uint32_t x286; + fiat_p384_mulx_u32(&x285, &x286, x2, (arg1[2])); + uint32_t x287; + uint32_t x288; + fiat_p384_mulx_u32(&x287, &x288, x2, (arg1[1])); + uint32_t x289; + uint32_t x290; + fiat_p384_mulx_u32(&x289, &x290, x2, (arg1[0])); + uint32_t x291; + fiat_p384_uint1 x292; + fiat_p384_addcarryx_u32(&x291, &x292, 0x0, x287, x290); + uint32_t x293; + fiat_p384_uint1 x294; + fiat_p384_addcarryx_u32(&x293, &x294, x292, x285, x288); + uint32_t x295; + fiat_p384_uint1 x296; + fiat_p384_addcarryx_u32(&x295, &x296, x294, x283, x286); + uint32_t x297; + fiat_p384_uint1 x298; + fiat_p384_addcarryx_u32(&x297, &x298, x296, x281, x284); + uint32_t x299; + fiat_p384_uint1 x300; + fiat_p384_addcarryx_u32(&x299, &x300, x298, x279, x282); + uint32_t x301; + fiat_p384_uint1 x302; + fiat_p384_addcarryx_u32(&x301, &x302, x300, x277, x280); + uint32_t x303; + fiat_p384_uint1 x304; + fiat_p384_addcarryx_u32(&x303, &x304, x302, x275, x278); + uint32_t x305; + fiat_p384_uint1 x306; + fiat_p384_addcarryx_u32(&x305, &x306, x304, x273, x276); + uint32_t x307; + fiat_p384_uint1 x308; + fiat_p384_addcarryx_u32(&x307, &x308, x306, x271, x274); + uint32_t x309; + fiat_p384_uint1 x310; + fiat_p384_addcarryx_u32(&x309, &x310, x308, x269, x272); + uint32_t x311; + fiat_p384_uint1 x312; + fiat_p384_addcarryx_u32(&x311, &x312, x310, x267, x270); + uint32_t x313; + fiat_p384_uint1 x314; + fiat_p384_addcarryx_u32(&x313, &x314, x312, 0x0, x268); + uint32_t x315; + fiat_p384_uint1 x316; + fiat_p384_addcarryx_u32(&x315, &x316, 0x0, x289, x241); + uint32_t x317; + fiat_p384_uint1 x318; + fiat_p384_addcarryx_u32(&x317, &x318, x316, x291, x243); + uint32_t x319; + fiat_p384_uint1 x320; + fiat_p384_addcarryx_u32(&x319, &x320, x318, x293, x245); + uint32_t x321; + fiat_p384_uint1 x322; + fiat_p384_addcarryx_u32(&x321, &x322, x320, x295, x247); + uint32_t x323; + fiat_p384_uint1 x324; + fiat_p384_addcarryx_u32(&x323, &x324, x322, x297, x249); + uint32_t x325; + fiat_p384_uint1 x326; + fiat_p384_addcarryx_u32(&x325, &x326, x324, x299, x251); + uint32_t x327; + fiat_p384_uint1 x328; + fiat_p384_addcarryx_u32(&x327, &x328, x326, x301, x253); + uint32_t x329; + fiat_p384_uint1 x330; + fiat_p384_addcarryx_u32(&x329, &x330, x328, x303, x255); + uint32_t x331; + fiat_p384_uint1 x332; + fiat_p384_addcarryx_u32(&x331, &x332, x330, x305, x257); + uint32_t x333; + fiat_p384_uint1 x334; + fiat_p384_addcarryx_u32(&x333, &x334, x332, x307, x259); + uint32_t x335; + fiat_p384_uint1 x336; + fiat_p384_addcarryx_u32(&x335, &x336, x334, x309, x261); + uint32_t x337; + fiat_p384_uint1 x338; + fiat_p384_addcarryx_u32(&x337, &x338, x336, x311, x263); + uint32_t x339; + fiat_p384_uint1 x340; + fiat_p384_addcarryx_u32(&x339, &x340, x338, x313, x265); + uint32_t x341; + uint32_t x342; + fiat_p384_mulx_u32(&x341, &x342, x315, UINT32_C(0xffffffff)); + uint32_t x343; + uint32_t x344; + fiat_p384_mulx_u32(&x343, &x344, x315, UINT32_C(0xffffffff)); + uint32_t x345; + uint32_t x346; + fiat_p384_mulx_u32(&x345, &x346, x315, UINT32_C(0xffffffff)); + uint32_t x347; + uint32_t x348; + fiat_p384_mulx_u32(&x347, &x348, x315, UINT32_C(0xffffffff)); + uint32_t x349; + uint32_t x350; + fiat_p384_mulx_u32(&x349, &x350, x315, UINT32_C(0xffffffff)); + uint32_t x351; + uint32_t x352; + fiat_p384_mulx_u32(&x351, &x352, x315, UINT32_C(0xffffffff)); + uint32_t x353; + uint32_t x354; + fiat_p384_mulx_u32(&x353, &x354, x315, UINT32_C(0xffffffff)); + uint32_t x355; + uint32_t x356; + fiat_p384_mulx_u32(&x355, &x356, x315, UINT32_C(0xfffffffe)); + uint32_t x357; + uint32_t x358; + fiat_p384_mulx_u32(&x357, &x358, x315, UINT32_C(0xffffffff)); + uint32_t x359; + uint32_t x360; + fiat_p384_mulx_u32(&x359, &x360, x315, UINT32_C(0xffffffff)); + uint32_t x361; + fiat_p384_uint1 x362; + fiat_p384_addcarryx_u32(&x361, &x362, 0x0, x355, x358); + uint32_t x363; + fiat_p384_uint1 x364; + fiat_p384_addcarryx_u32(&x363, &x364, x362, x353, x356); + uint32_t x365; + fiat_p384_uint1 x366; + fiat_p384_addcarryx_u32(&x365, &x366, x364, x351, x354); + uint32_t x367; + fiat_p384_uint1 x368; + fiat_p384_addcarryx_u32(&x367, &x368, x366, x349, x352); + uint32_t x369; + fiat_p384_uint1 x370; + fiat_p384_addcarryx_u32(&x369, &x370, x368, x347, x350); + uint32_t x371; + fiat_p384_uint1 x372; + fiat_p384_addcarryx_u32(&x371, &x372, x370, x345, x348); + uint32_t x373; + fiat_p384_uint1 x374; + fiat_p384_addcarryx_u32(&x373, &x374, x372, x343, x346); + uint32_t x375; + fiat_p384_uint1 x376; + fiat_p384_addcarryx_u32(&x375, &x376, x374, x341, x344); + uint32_t x377; + fiat_p384_uint1 x378; + fiat_p384_addcarryx_u32(&x377, &x378, x376, 0x0, x342); + uint32_t x379; + fiat_p384_uint1 x380; + fiat_p384_addcarryx_u32(&x379, &x380, 0x0, x359, x315); + uint32_t x381; + fiat_p384_uint1 x382; + fiat_p384_addcarryx_u32(&x381, &x382, x380, x360, x317); + uint32_t x383; + fiat_p384_uint1 x384; + fiat_p384_addcarryx_u32(&x383, &x384, x382, 0x0, x319); + uint32_t x385; + fiat_p384_uint1 x386; + fiat_p384_addcarryx_u32(&x385, &x386, x384, x357, x321); + uint32_t x387; + fiat_p384_uint1 x388; + fiat_p384_addcarryx_u32(&x387, &x388, x386, x361, x323); + uint32_t x389; + fiat_p384_uint1 x390; + fiat_p384_addcarryx_u32(&x389, &x390, x388, x363, x325); + uint32_t x391; + fiat_p384_uint1 x392; + fiat_p384_addcarryx_u32(&x391, &x392, x390, x365, x327); + uint32_t x393; + fiat_p384_uint1 x394; + fiat_p384_addcarryx_u32(&x393, &x394, x392, x367, x329); + uint32_t x395; + fiat_p384_uint1 x396; + fiat_p384_addcarryx_u32(&x395, &x396, x394, x369, x331); + uint32_t x397; + fiat_p384_uint1 x398; + fiat_p384_addcarryx_u32(&x397, &x398, x396, x371, x333); + uint32_t x399; + fiat_p384_uint1 x400; + fiat_p384_addcarryx_u32(&x399, &x400, x398, x373, x335); + uint32_t x401; + fiat_p384_uint1 x402; + fiat_p384_addcarryx_u32(&x401, &x402, x400, x375, x337); + uint32_t x403; + fiat_p384_uint1 x404; + fiat_p384_addcarryx_u32(&x403, &x404, x402, x377, x339); + uint32_t x405; + fiat_p384_uint1 x406; + fiat_p384_addcarryx_u32(&x405, &x406, x404, 0x0, x340); + uint32_t x407; + uint32_t x408; + fiat_p384_mulx_u32(&x407, &x408, x3, (arg1[11])); + uint32_t x409; + uint32_t x410; + fiat_p384_mulx_u32(&x409, &x410, x3, (arg1[10])); + uint32_t x411; + uint32_t x412; + fiat_p384_mulx_u32(&x411, &x412, x3, (arg1[9])); + uint32_t x413; + uint32_t x414; + fiat_p384_mulx_u32(&x413, &x414, x3, (arg1[8])); + uint32_t x415; + uint32_t x416; + fiat_p384_mulx_u32(&x415, &x416, x3, (arg1[7])); + uint32_t x417; + uint32_t x418; + fiat_p384_mulx_u32(&x417, &x418, x3, (arg1[6])); + uint32_t x419; + uint32_t x420; + fiat_p384_mulx_u32(&x419, &x420, x3, (arg1[5])); + uint32_t x421; + uint32_t x422; + fiat_p384_mulx_u32(&x421, &x422, x3, (arg1[4])); + uint32_t x423; + uint32_t x424; + fiat_p384_mulx_u32(&x423, &x424, x3, (arg1[3])); + uint32_t x425; + uint32_t x426; + fiat_p384_mulx_u32(&x425, &x426, x3, (arg1[2])); + uint32_t x427; + uint32_t x428; + fiat_p384_mulx_u32(&x427, &x428, x3, (arg1[1])); + uint32_t x429; + uint32_t x430; + fiat_p384_mulx_u32(&x429, &x430, x3, (arg1[0])); + uint32_t x431; + fiat_p384_uint1 x432; + fiat_p384_addcarryx_u32(&x431, &x432, 0x0, x427, x430); + uint32_t x433; + fiat_p384_uint1 x434; + fiat_p384_addcarryx_u32(&x433, &x434, x432, x425, x428); + uint32_t x435; + fiat_p384_uint1 x436; + fiat_p384_addcarryx_u32(&x435, &x436, x434, x423, x426); + uint32_t x437; + fiat_p384_uint1 x438; + fiat_p384_addcarryx_u32(&x437, &x438, x436, x421, x424); + uint32_t x439; + fiat_p384_uint1 x440; + fiat_p384_addcarryx_u32(&x439, &x440, x438, x419, x422); + uint32_t x441; + fiat_p384_uint1 x442; + fiat_p384_addcarryx_u32(&x441, &x442, x440, x417, x420); + uint32_t x443; + fiat_p384_uint1 x444; + fiat_p384_addcarryx_u32(&x443, &x444, x442, x415, x418); + uint32_t x445; + fiat_p384_uint1 x446; + fiat_p384_addcarryx_u32(&x445, &x446, x444, x413, x416); + uint32_t x447; + fiat_p384_uint1 x448; + fiat_p384_addcarryx_u32(&x447, &x448, x446, x411, x414); + uint32_t x449; + fiat_p384_uint1 x450; + fiat_p384_addcarryx_u32(&x449, &x450, x448, x409, x412); + uint32_t x451; + fiat_p384_uint1 x452; + fiat_p384_addcarryx_u32(&x451, &x452, x450, x407, x410); + uint32_t x453; + fiat_p384_uint1 x454; + fiat_p384_addcarryx_u32(&x453, &x454, x452, 0x0, x408); + uint32_t x455; + fiat_p384_uint1 x456; + fiat_p384_addcarryx_u32(&x455, &x456, 0x0, x429, x381); + uint32_t x457; + fiat_p384_uint1 x458; + fiat_p384_addcarryx_u32(&x457, &x458, x456, x431, x383); + uint32_t x459; + fiat_p384_uint1 x460; + fiat_p384_addcarryx_u32(&x459, &x460, x458, x433, x385); + uint32_t x461; + fiat_p384_uint1 x462; + fiat_p384_addcarryx_u32(&x461, &x462, x460, x435, x387); + uint32_t x463; + fiat_p384_uint1 x464; + fiat_p384_addcarryx_u32(&x463, &x464, x462, x437, x389); + uint32_t x465; + fiat_p384_uint1 x466; + fiat_p384_addcarryx_u32(&x465, &x466, x464, x439, x391); + uint32_t x467; + fiat_p384_uint1 x468; + fiat_p384_addcarryx_u32(&x467, &x468, x466, x441, x393); + uint32_t x469; + fiat_p384_uint1 x470; + fiat_p384_addcarryx_u32(&x469, &x470, x468, x443, x395); + uint32_t x471; + fiat_p384_uint1 x472; + fiat_p384_addcarryx_u32(&x471, &x472, x470, x445, x397); + uint32_t x473; + fiat_p384_uint1 x474; + fiat_p384_addcarryx_u32(&x473, &x474, x472, x447, x399); + uint32_t x475; + fiat_p384_uint1 x476; + fiat_p384_addcarryx_u32(&x475, &x476, x474, x449, x401); + uint32_t x477; + fiat_p384_uint1 x478; + fiat_p384_addcarryx_u32(&x477, &x478, x476, x451, x403); + uint32_t x479; + fiat_p384_uint1 x480; + fiat_p384_addcarryx_u32(&x479, &x480, x478, x453, x405); + uint32_t x481; + uint32_t x482; + fiat_p384_mulx_u32(&x481, &x482, x455, UINT32_C(0xffffffff)); + uint32_t x483; + uint32_t x484; + fiat_p384_mulx_u32(&x483, &x484, x455, UINT32_C(0xffffffff)); + uint32_t x485; + uint32_t x486; + fiat_p384_mulx_u32(&x485, &x486, x455, UINT32_C(0xffffffff)); + uint32_t x487; + uint32_t x488; + fiat_p384_mulx_u32(&x487, &x488, x455, UINT32_C(0xffffffff)); + uint32_t x489; + uint32_t x490; + fiat_p384_mulx_u32(&x489, &x490, x455, UINT32_C(0xffffffff)); + uint32_t x491; + uint32_t x492; + fiat_p384_mulx_u32(&x491, &x492, x455, UINT32_C(0xffffffff)); + uint32_t x493; + uint32_t x494; + fiat_p384_mulx_u32(&x493, &x494, x455, UINT32_C(0xffffffff)); + uint32_t x495; + uint32_t x496; + fiat_p384_mulx_u32(&x495, &x496, x455, UINT32_C(0xfffffffe)); + uint32_t x497; + uint32_t x498; + fiat_p384_mulx_u32(&x497, &x498, x455, UINT32_C(0xffffffff)); + uint32_t x499; + uint32_t x500; + fiat_p384_mulx_u32(&x499, &x500, x455, UINT32_C(0xffffffff)); + uint32_t x501; + fiat_p384_uint1 x502; + fiat_p384_addcarryx_u32(&x501, &x502, 0x0, x495, x498); + uint32_t x503; + fiat_p384_uint1 x504; + fiat_p384_addcarryx_u32(&x503, &x504, x502, x493, x496); + uint32_t x505; + fiat_p384_uint1 x506; + fiat_p384_addcarryx_u32(&x505, &x506, x504, x491, x494); + uint32_t x507; + fiat_p384_uint1 x508; + fiat_p384_addcarryx_u32(&x507, &x508, x506, x489, x492); + uint32_t x509; + fiat_p384_uint1 x510; + fiat_p384_addcarryx_u32(&x509, &x510, x508, x487, x490); + uint32_t x511; + fiat_p384_uint1 x512; + fiat_p384_addcarryx_u32(&x511, &x512, x510, x485, x488); + uint32_t x513; + fiat_p384_uint1 x514; + fiat_p384_addcarryx_u32(&x513, &x514, x512, x483, x486); + uint32_t x515; + fiat_p384_uint1 x516; + fiat_p384_addcarryx_u32(&x515, &x516, x514, x481, x484); + uint32_t x517; + fiat_p384_uint1 x518; + fiat_p384_addcarryx_u32(&x517, &x518, x516, 0x0, x482); + uint32_t x519; + fiat_p384_uint1 x520; + fiat_p384_addcarryx_u32(&x519, &x520, 0x0, x499, x455); + uint32_t x521; + fiat_p384_uint1 x522; + fiat_p384_addcarryx_u32(&x521, &x522, x520, x500, x457); + uint32_t x523; + fiat_p384_uint1 x524; + fiat_p384_addcarryx_u32(&x523, &x524, x522, 0x0, x459); + uint32_t x525; + fiat_p384_uint1 x526; + fiat_p384_addcarryx_u32(&x525, &x526, x524, x497, x461); + uint32_t x527; + fiat_p384_uint1 x528; + fiat_p384_addcarryx_u32(&x527, &x528, x526, x501, x463); + uint32_t x529; + fiat_p384_uint1 x530; + fiat_p384_addcarryx_u32(&x529, &x530, x528, x503, x465); + uint32_t x531; + fiat_p384_uint1 x532; + fiat_p384_addcarryx_u32(&x531, &x532, x530, x505, x467); + uint32_t x533; + fiat_p384_uint1 x534; + fiat_p384_addcarryx_u32(&x533, &x534, x532, x507, x469); + uint32_t x535; + fiat_p384_uint1 x536; + fiat_p384_addcarryx_u32(&x535, &x536, x534, x509, x471); + uint32_t x537; + fiat_p384_uint1 x538; + fiat_p384_addcarryx_u32(&x537, &x538, x536, x511, x473); + uint32_t x539; + fiat_p384_uint1 x540; + fiat_p384_addcarryx_u32(&x539, &x540, x538, x513, x475); + uint32_t x541; + fiat_p384_uint1 x542; + fiat_p384_addcarryx_u32(&x541, &x542, x540, x515, x477); + uint32_t x543; + fiat_p384_uint1 x544; + fiat_p384_addcarryx_u32(&x543, &x544, x542, x517, x479); + uint32_t x545; + fiat_p384_uint1 x546; + fiat_p384_addcarryx_u32(&x545, &x546, x544, 0x0, x480); + uint32_t x547; + uint32_t x548; + fiat_p384_mulx_u32(&x547, &x548, x4, (arg1[11])); + uint32_t x549; + uint32_t x550; + fiat_p384_mulx_u32(&x549, &x550, x4, (arg1[10])); + uint32_t x551; + uint32_t x552; + fiat_p384_mulx_u32(&x551, &x552, x4, (arg1[9])); + uint32_t x553; + uint32_t x554; + fiat_p384_mulx_u32(&x553, &x554, x4, (arg1[8])); + uint32_t x555; + uint32_t x556; + fiat_p384_mulx_u32(&x555, &x556, x4, (arg1[7])); + uint32_t x557; + uint32_t x558; + fiat_p384_mulx_u32(&x557, &x558, x4, (arg1[6])); + uint32_t x559; + uint32_t x560; + fiat_p384_mulx_u32(&x559, &x560, x4, (arg1[5])); + uint32_t x561; + uint32_t x562; + fiat_p384_mulx_u32(&x561, &x562, x4, (arg1[4])); + uint32_t x563; + uint32_t x564; + fiat_p384_mulx_u32(&x563, &x564, x4, (arg1[3])); + uint32_t x565; + uint32_t x566; + fiat_p384_mulx_u32(&x565, &x566, x4, (arg1[2])); + uint32_t x567; + uint32_t x568; + fiat_p384_mulx_u32(&x567, &x568, x4, (arg1[1])); + uint32_t x569; + uint32_t x570; + fiat_p384_mulx_u32(&x569, &x570, x4, (arg1[0])); + uint32_t x571; + fiat_p384_uint1 x572; + fiat_p384_addcarryx_u32(&x571, &x572, 0x0, x567, x570); + uint32_t x573; + fiat_p384_uint1 x574; + fiat_p384_addcarryx_u32(&x573, &x574, x572, x565, x568); + uint32_t x575; + fiat_p384_uint1 x576; + fiat_p384_addcarryx_u32(&x575, &x576, x574, x563, x566); + uint32_t x577; + fiat_p384_uint1 x578; + fiat_p384_addcarryx_u32(&x577, &x578, x576, x561, x564); + uint32_t x579; + fiat_p384_uint1 x580; + fiat_p384_addcarryx_u32(&x579, &x580, x578, x559, x562); + uint32_t x581; + fiat_p384_uint1 x582; + fiat_p384_addcarryx_u32(&x581, &x582, x580, x557, x560); + uint32_t x583; + fiat_p384_uint1 x584; + fiat_p384_addcarryx_u32(&x583, &x584, x582, x555, x558); + uint32_t x585; + fiat_p384_uint1 x586; + fiat_p384_addcarryx_u32(&x585, &x586, x584, x553, x556); + uint32_t x587; + fiat_p384_uint1 x588; + fiat_p384_addcarryx_u32(&x587, &x588, x586, x551, x554); + uint32_t x589; + fiat_p384_uint1 x590; + fiat_p384_addcarryx_u32(&x589, &x590, x588, x549, x552); + uint32_t x591; + fiat_p384_uint1 x592; + fiat_p384_addcarryx_u32(&x591, &x592, x590, x547, x550); + uint32_t x593; + fiat_p384_uint1 x594; + fiat_p384_addcarryx_u32(&x593, &x594, x592, 0x0, x548); + uint32_t x595; + fiat_p384_uint1 x596; + fiat_p384_addcarryx_u32(&x595, &x596, 0x0, x569, x521); + uint32_t x597; + fiat_p384_uint1 x598; + fiat_p384_addcarryx_u32(&x597, &x598, x596, x571, x523); + uint32_t x599; + fiat_p384_uint1 x600; + fiat_p384_addcarryx_u32(&x599, &x600, x598, x573, x525); + uint32_t x601; + fiat_p384_uint1 x602; + fiat_p384_addcarryx_u32(&x601, &x602, x600, x575, x527); + uint32_t x603; + fiat_p384_uint1 x604; + fiat_p384_addcarryx_u32(&x603, &x604, x602, x577, x529); + uint32_t x605; + fiat_p384_uint1 x606; + fiat_p384_addcarryx_u32(&x605, &x606, x604, x579, x531); + uint32_t x607; + fiat_p384_uint1 x608; + fiat_p384_addcarryx_u32(&x607, &x608, x606, x581, x533); + uint32_t x609; + fiat_p384_uint1 x610; + fiat_p384_addcarryx_u32(&x609, &x610, x608, x583, x535); + uint32_t x611; + fiat_p384_uint1 x612; + fiat_p384_addcarryx_u32(&x611, &x612, x610, x585, x537); + uint32_t x613; + fiat_p384_uint1 x614; + fiat_p384_addcarryx_u32(&x613, &x614, x612, x587, x539); + uint32_t x615; + fiat_p384_uint1 x616; + fiat_p384_addcarryx_u32(&x615, &x616, x614, x589, x541); + uint32_t x617; + fiat_p384_uint1 x618; + fiat_p384_addcarryx_u32(&x617, &x618, x616, x591, x543); + uint32_t x619; + fiat_p384_uint1 x620; + fiat_p384_addcarryx_u32(&x619, &x620, x618, x593, x545); + uint32_t x621; + uint32_t x622; + fiat_p384_mulx_u32(&x621, &x622, x595, UINT32_C(0xffffffff)); + uint32_t x623; + uint32_t x624; + fiat_p384_mulx_u32(&x623, &x624, x595, UINT32_C(0xffffffff)); + uint32_t x625; + uint32_t x626; + fiat_p384_mulx_u32(&x625, &x626, x595, UINT32_C(0xffffffff)); + uint32_t x627; + uint32_t x628; + fiat_p384_mulx_u32(&x627, &x628, x595, UINT32_C(0xffffffff)); + uint32_t x629; + uint32_t x630; + fiat_p384_mulx_u32(&x629, &x630, x595, UINT32_C(0xffffffff)); + uint32_t x631; + uint32_t x632; + fiat_p384_mulx_u32(&x631, &x632, x595, UINT32_C(0xffffffff)); + uint32_t x633; + uint32_t x634; + fiat_p384_mulx_u32(&x633, &x634, x595, UINT32_C(0xffffffff)); + uint32_t x635; + uint32_t x636; + fiat_p384_mulx_u32(&x635, &x636, x595, UINT32_C(0xfffffffe)); + uint32_t x637; + uint32_t x638; + fiat_p384_mulx_u32(&x637, &x638, x595, UINT32_C(0xffffffff)); + uint32_t x639; + uint32_t x640; + fiat_p384_mulx_u32(&x639, &x640, x595, UINT32_C(0xffffffff)); + uint32_t x641; + fiat_p384_uint1 x642; + fiat_p384_addcarryx_u32(&x641, &x642, 0x0, x635, x638); + uint32_t x643; + fiat_p384_uint1 x644; + fiat_p384_addcarryx_u32(&x643, &x644, x642, x633, x636); + uint32_t x645; + fiat_p384_uint1 x646; + fiat_p384_addcarryx_u32(&x645, &x646, x644, x631, x634); + uint32_t x647; + fiat_p384_uint1 x648; + fiat_p384_addcarryx_u32(&x647, &x648, x646, x629, x632); + uint32_t x649; + fiat_p384_uint1 x650; + fiat_p384_addcarryx_u32(&x649, &x650, x648, x627, x630); + uint32_t x651; + fiat_p384_uint1 x652; + fiat_p384_addcarryx_u32(&x651, &x652, x650, x625, x628); + uint32_t x653; + fiat_p384_uint1 x654; + fiat_p384_addcarryx_u32(&x653, &x654, x652, x623, x626); + uint32_t x655; + fiat_p384_uint1 x656; + fiat_p384_addcarryx_u32(&x655, &x656, x654, x621, x624); + uint32_t x657; + fiat_p384_uint1 x658; + fiat_p384_addcarryx_u32(&x657, &x658, x656, 0x0, x622); + uint32_t x659; + fiat_p384_uint1 x660; + fiat_p384_addcarryx_u32(&x659, &x660, 0x0, x639, x595); + uint32_t x661; + fiat_p384_uint1 x662; + fiat_p384_addcarryx_u32(&x661, &x662, x660, x640, x597); + uint32_t x663; + fiat_p384_uint1 x664; + fiat_p384_addcarryx_u32(&x663, &x664, x662, 0x0, x599); + uint32_t x665; + fiat_p384_uint1 x666; + fiat_p384_addcarryx_u32(&x665, &x666, x664, x637, x601); + uint32_t x667; + fiat_p384_uint1 x668; + fiat_p384_addcarryx_u32(&x667, &x668, x666, x641, x603); + uint32_t x669; + fiat_p384_uint1 x670; + fiat_p384_addcarryx_u32(&x669, &x670, x668, x643, x605); + uint32_t x671; + fiat_p384_uint1 x672; + fiat_p384_addcarryx_u32(&x671, &x672, x670, x645, x607); + uint32_t x673; + fiat_p384_uint1 x674; + fiat_p384_addcarryx_u32(&x673, &x674, x672, x647, x609); + uint32_t x675; + fiat_p384_uint1 x676; + fiat_p384_addcarryx_u32(&x675, &x676, x674, x649, x611); + uint32_t x677; + fiat_p384_uint1 x678; + fiat_p384_addcarryx_u32(&x677, &x678, x676, x651, x613); + uint32_t x679; + fiat_p384_uint1 x680; + fiat_p384_addcarryx_u32(&x679, &x680, x678, x653, x615); + uint32_t x681; + fiat_p384_uint1 x682; + fiat_p384_addcarryx_u32(&x681, &x682, x680, x655, x617); + uint32_t x683; + fiat_p384_uint1 x684; + fiat_p384_addcarryx_u32(&x683, &x684, x682, x657, x619); + uint32_t x685; + fiat_p384_uint1 x686; + fiat_p384_addcarryx_u32(&x685, &x686, x684, 0x0, x620); + uint32_t x687; + uint32_t x688; + fiat_p384_mulx_u32(&x687, &x688, x5, (arg1[11])); + uint32_t x689; + uint32_t x690; + fiat_p384_mulx_u32(&x689, &x690, x5, (arg1[10])); + uint32_t x691; + uint32_t x692; + fiat_p384_mulx_u32(&x691, &x692, x5, (arg1[9])); + uint32_t x693; + uint32_t x694; + fiat_p384_mulx_u32(&x693, &x694, x5, (arg1[8])); + uint32_t x695; + uint32_t x696; + fiat_p384_mulx_u32(&x695, &x696, x5, (arg1[7])); + uint32_t x697; + uint32_t x698; + fiat_p384_mulx_u32(&x697, &x698, x5, (arg1[6])); + uint32_t x699; + uint32_t x700; + fiat_p384_mulx_u32(&x699, &x700, x5, (arg1[5])); + uint32_t x701; + uint32_t x702; + fiat_p384_mulx_u32(&x701, &x702, x5, (arg1[4])); + uint32_t x703; + uint32_t x704; + fiat_p384_mulx_u32(&x703, &x704, x5, (arg1[3])); + uint32_t x705; + uint32_t x706; + fiat_p384_mulx_u32(&x705, &x706, x5, (arg1[2])); + uint32_t x707; + uint32_t x708; + fiat_p384_mulx_u32(&x707, &x708, x5, (arg1[1])); + uint32_t x709; + uint32_t x710; + fiat_p384_mulx_u32(&x709, &x710, x5, (arg1[0])); + uint32_t x711; + fiat_p384_uint1 x712; + fiat_p384_addcarryx_u32(&x711, &x712, 0x0, x707, x710); + uint32_t x713; + fiat_p384_uint1 x714; + fiat_p384_addcarryx_u32(&x713, &x714, x712, x705, x708); + uint32_t x715; + fiat_p384_uint1 x716; + fiat_p384_addcarryx_u32(&x715, &x716, x714, x703, x706); + uint32_t x717; + fiat_p384_uint1 x718; + fiat_p384_addcarryx_u32(&x717, &x718, x716, x701, x704); + uint32_t x719; + fiat_p384_uint1 x720; + fiat_p384_addcarryx_u32(&x719, &x720, x718, x699, x702); + uint32_t x721; + fiat_p384_uint1 x722; + fiat_p384_addcarryx_u32(&x721, &x722, x720, x697, x700); + uint32_t x723; + fiat_p384_uint1 x724; + fiat_p384_addcarryx_u32(&x723, &x724, x722, x695, x698); + uint32_t x725; + fiat_p384_uint1 x726; + fiat_p384_addcarryx_u32(&x725, &x726, x724, x693, x696); + uint32_t x727; + fiat_p384_uint1 x728; + fiat_p384_addcarryx_u32(&x727, &x728, x726, x691, x694); + uint32_t x729; + fiat_p384_uint1 x730; + fiat_p384_addcarryx_u32(&x729, &x730, x728, x689, x692); + uint32_t x731; + fiat_p384_uint1 x732; + fiat_p384_addcarryx_u32(&x731, &x732, x730, x687, x690); + uint32_t x733; + fiat_p384_uint1 x734; + fiat_p384_addcarryx_u32(&x733, &x734, x732, 0x0, x688); + uint32_t x735; + fiat_p384_uint1 x736; + fiat_p384_addcarryx_u32(&x735, &x736, 0x0, x709, x661); + uint32_t x737; + fiat_p384_uint1 x738; + fiat_p384_addcarryx_u32(&x737, &x738, x736, x711, x663); + uint32_t x739; + fiat_p384_uint1 x740; + fiat_p384_addcarryx_u32(&x739, &x740, x738, x713, x665); + uint32_t x741; + fiat_p384_uint1 x742; + fiat_p384_addcarryx_u32(&x741, &x742, x740, x715, x667); + uint32_t x743; + fiat_p384_uint1 x744; + fiat_p384_addcarryx_u32(&x743, &x744, x742, x717, x669); + uint32_t x745; + fiat_p384_uint1 x746; + fiat_p384_addcarryx_u32(&x745, &x746, x744, x719, x671); + uint32_t x747; + fiat_p384_uint1 x748; + fiat_p384_addcarryx_u32(&x747, &x748, x746, x721, x673); + uint32_t x749; + fiat_p384_uint1 x750; + fiat_p384_addcarryx_u32(&x749, &x750, x748, x723, x675); + uint32_t x751; + fiat_p384_uint1 x752; + fiat_p384_addcarryx_u32(&x751, &x752, x750, x725, x677); + uint32_t x753; + fiat_p384_uint1 x754; + fiat_p384_addcarryx_u32(&x753, &x754, x752, x727, x679); + uint32_t x755; + fiat_p384_uint1 x756; + fiat_p384_addcarryx_u32(&x755, &x756, x754, x729, x681); + uint32_t x757; + fiat_p384_uint1 x758; + fiat_p384_addcarryx_u32(&x757, &x758, x756, x731, x683); + uint32_t x759; + fiat_p384_uint1 x760; + fiat_p384_addcarryx_u32(&x759, &x760, x758, x733, x685); + uint32_t x761; + uint32_t x762; + fiat_p384_mulx_u32(&x761, &x762, x735, UINT32_C(0xffffffff)); + uint32_t x763; + uint32_t x764; + fiat_p384_mulx_u32(&x763, &x764, x735, UINT32_C(0xffffffff)); + uint32_t x765; + uint32_t x766; + fiat_p384_mulx_u32(&x765, &x766, x735, UINT32_C(0xffffffff)); + uint32_t x767; + uint32_t x768; + fiat_p384_mulx_u32(&x767, &x768, x735, UINT32_C(0xffffffff)); + uint32_t x769; + uint32_t x770; + fiat_p384_mulx_u32(&x769, &x770, x735, UINT32_C(0xffffffff)); + uint32_t x771; + uint32_t x772; + fiat_p384_mulx_u32(&x771, &x772, x735, UINT32_C(0xffffffff)); + uint32_t x773; + uint32_t x774; + fiat_p384_mulx_u32(&x773, &x774, x735, UINT32_C(0xffffffff)); + uint32_t x775; + uint32_t x776; + fiat_p384_mulx_u32(&x775, &x776, x735, UINT32_C(0xfffffffe)); + uint32_t x777; + uint32_t x778; + fiat_p384_mulx_u32(&x777, &x778, x735, UINT32_C(0xffffffff)); + uint32_t x779; + uint32_t x780; + fiat_p384_mulx_u32(&x779, &x780, x735, UINT32_C(0xffffffff)); + uint32_t x781; + fiat_p384_uint1 x782; + fiat_p384_addcarryx_u32(&x781, &x782, 0x0, x775, x778); + uint32_t x783; + fiat_p384_uint1 x784; + fiat_p384_addcarryx_u32(&x783, &x784, x782, x773, x776); + uint32_t x785; + fiat_p384_uint1 x786; + fiat_p384_addcarryx_u32(&x785, &x786, x784, x771, x774); + uint32_t x787; + fiat_p384_uint1 x788; + fiat_p384_addcarryx_u32(&x787, &x788, x786, x769, x772); + uint32_t x789; + fiat_p384_uint1 x790; + fiat_p384_addcarryx_u32(&x789, &x790, x788, x767, x770); + uint32_t x791; + fiat_p384_uint1 x792; + fiat_p384_addcarryx_u32(&x791, &x792, x790, x765, x768); + uint32_t x793; + fiat_p384_uint1 x794; + fiat_p384_addcarryx_u32(&x793, &x794, x792, x763, x766); + uint32_t x795; + fiat_p384_uint1 x796; + fiat_p384_addcarryx_u32(&x795, &x796, x794, x761, x764); + uint32_t x797; + fiat_p384_uint1 x798; + fiat_p384_addcarryx_u32(&x797, &x798, x796, 0x0, x762); + uint32_t x799; + fiat_p384_uint1 x800; + fiat_p384_addcarryx_u32(&x799, &x800, 0x0, x779, x735); + uint32_t x801; + fiat_p384_uint1 x802; + fiat_p384_addcarryx_u32(&x801, &x802, x800, x780, x737); + uint32_t x803; + fiat_p384_uint1 x804; + fiat_p384_addcarryx_u32(&x803, &x804, x802, 0x0, x739); + uint32_t x805; + fiat_p384_uint1 x806; + fiat_p384_addcarryx_u32(&x805, &x806, x804, x777, x741); + uint32_t x807; + fiat_p384_uint1 x808; + fiat_p384_addcarryx_u32(&x807, &x808, x806, x781, x743); + uint32_t x809; + fiat_p384_uint1 x810; + fiat_p384_addcarryx_u32(&x809, &x810, x808, x783, x745); + uint32_t x811; + fiat_p384_uint1 x812; + fiat_p384_addcarryx_u32(&x811, &x812, x810, x785, x747); + uint32_t x813; + fiat_p384_uint1 x814; + fiat_p384_addcarryx_u32(&x813, &x814, x812, x787, x749); + uint32_t x815; + fiat_p384_uint1 x816; + fiat_p384_addcarryx_u32(&x815, &x816, x814, x789, x751); + uint32_t x817; + fiat_p384_uint1 x818; + fiat_p384_addcarryx_u32(&x817, &x818, x816, x791, x753); + uint32_t x819; + fiat_p384_uint1 x820; + fiat_p384_addcarryx_u32(&x819, &x820, x818, x793, x755); + uint32_t x821; + fiat_p384_uint1 x822; + fiat_p384_addcarryx_u32(&x821, &x822, x820, x795, x757); + uint32_t x823; + fiat_p384_uint1 x824; + fiat_p384_addcarryx_u32(&x823, &x824, x822, x797, x759); + uint32_t x825; + fiat_p384_uint1 x826; + fiat_p384_addcarryx_u32(&x825, &x826, x824, 0x0, x760); + uint32_t x827; + uint32_t x828; + fiat_p384_mulx_u32(&x827, &x828, x6, (arg1[11])); + uint32_t x829; + uint32_t x830; + fiat_p384_mulx_u32(&x829, &x830, x6, (arg1[10])); + uint32_t x831; + uint32_t x832; + fiat_p384_mulx_u32(&x831, &x832, x6, (arg1[9])); + uint32_t x833; + uint32_t x834; + fiat_p384_mulx_u32(&x833, &x834, x6, (arg1[8])); + uint32_t x835; + uint32_t x836; + fiat_p384_mulx_u32(&x835, &x836, x6, (arg1[7])); + uint32_t x837; + uint32_t x838; + fiat_p384_mulx_u32(&x837, &x838, x6, (arg1[6])); + uint32_t x839; + uint32_t x840; + fiat_p384_mulx_u32(&x839, &x840, x6, (arg1[5])); + uint32_t x841; + uint32_t x842; + fiat_p384_mulx_u32(&x841, &x842, x6, (arg1[4])); + uint32_t x843; + uint32_t x844; + fiat_p384_mulx_u32(&x843, &x844, x6, (arg1[3])); + uint32_t x845; + uint32_t x846; + fiat_p384_mulx_u32(&x845, &x846, x6, (arg1[2])); + uint32_t x847; + uint32_t x848; + fiat_p384_mulx_u32(&x847, &x848, x6, (arg1[1])); + uint32_t x849; + uint32_t x850; + fiat_p384_mulx_u32(&x849, &x850, x6, (arg1[0])); + uint32_t x851; + fiat_p384_uint1 x852; + fiat_p384_addcarryx_u32(&x851, &x852, 0x0, x847, x850); + uint32_t x853; + fiat_p384_uint1 x854; + fiat_p384_addcarryx_u32(&x853, &x854, x852, x845, x848); + uint32_t x855; + fiat_p384_uint1 x856; + fiat_p384_addcarryx_u32(&x855, &x856, x854, x843, x846); + uint32_t x857; + fiat_p384_uint1 x858; + fiat_p384_addcarryx_u32(&x857, &x858, x856, x841, x844); + uint32_t x859; + fiat_p384_uint1 x860; + fiat_p384_addcarryx_u32(&x859, &x860, x858, x839, x842); + uint32_t x861; + fiat_p384_uint1 x862; + fiat_p384_addcarryx_u32(&x861, &x862, x860, x837, x840); + uint32_t x863; + fiat_p384_uint1 x864; + fiat_p384_addcarryx_u32(&x863, &x864, x862, x835, x838); + uint32_t x865; + fiat_p384_uint1 x866; + fiat_p384_addcarryx_u32(&x865, &x866, x864, x833, x836); + uint32_t x867; + fiat_p384_uint1 x868; + fiat_p384_addcarryx_u32(&x867, &x868, x866, x831, x834); + uint32_t x869; + fiat_p384_uint1 x870; + fiat_p384_addcarryx_u32(&x869, &x870, x868, x829, x832); + uint32_t x871; + fiat_p384_uint1 x872; + fiat_p384_addcarryx_u32(&x871, &x872, x870, x827, x830); + uint32_t x873; + fiat_p384_uint1 x874; + fiat_p384_addcarryx_u32(&x873, &x874, x872, 0x0, x828); + uint32_t x875; + fiat_p384_uint1 x876; + fiat_p384_addcarryx_u32(&x875, &x876, 0x0, x849, x801); + uint32_t x877; + fiat_p384_uint1 x878; + fiat_p384_addcarryx_u32(&x877, &x878, x876, x851, x803); + uint32_t x879; + fiat_p384_uint1 x880; + fiat_p384_addcarryx_u32(&x879, &x880, x878, x853, x805); + uint32_t x881; + fiat_p384_uint1 x882; + fiat_p384_addcarryx_u32(&x881, &x882, x880, x855, x807); + uint32_t x883; + fiat_p384_uint1 x884; + fiat_p384_addcarryx_u32(&x883, &x884, x882, x857, x809); + uint32_t x885; + fiat_p384_uint1 x886; + fiat_p384_addcarryx_u32(&x885, &x886, x884, x859, x811); + uint32_t x887; + fiat_p384_uint1 x888; + fiat_p384_addcarryx_u32(&x887, &x888, x886, x861, x813); + uint32_t x889; + fiat_p384_uint1 x890; + fiat_p384_addcarryx_u32(&x889, &x890, x888, x863, x815); + uint32_t x891; + fiat_p384_uint1 x892; + fiat_p384_addcarryx_u32(&x891, &x892, x890, x865, x817); + uint32_t x893; + fiat_p384_uint1 x894; + fiat_p384_addcarryx_u32(&x893, &x894, x892, x867, x819); + uint32_t x895; + fiat_p384_uint1 x896; + fiat_p384_addcarryx_u32(&x895, &x896, x894, x869, x821); + uint32_t x897; + fiat_p384_uint1 x898; + fiat_p384_addcarryx_u32(&x897, &x898, x896, x871, x823); + uint32_t x899; + fiat_p384_uint1 x900; + fiat_p384_addcarryx_u32(&x899, &x900, x898, x873, x825); + uint32_t x901; + uint32_t x902; + fiat_p384_mulx_u32(&x901, &x902, x875, UINT32_C(0xffffffff)); + uint32_t x903; + uint32_t x904; + fiat_p384_mulx_u32(&x903, &x904, x875, UINT32_C(0xffffffff)); + uint32_t x905; + uint32_t x906; + fiat_p384_mulx_u32(&x905, &x906, x875, UINT32_C(0xffffffff)); + uint32_t x907; + uint32_t x908; + fiat_p384_mulx_u32(&x907, &x908, x875, UINT32_C(0xffffffff)); + uint32_t x909; + uint32_t x910; + fiat_p384_mulx_u32(&x909, &x910, x875, UINT32_C(0xffffffff)); + uint32_t x911; + uint32_t x912; + fiat_p384_mulx_u32(&x911, &x912, x875, UINT32_C(0xffffffff)); + uint32_t x913; + uint32_t x914; + fiat_p384_mulx_u32(&x913, &x914, x875, UINT32_C(0xffffffff)); + uint32_t x915; + uint32_t x916; + fiat_p384_mulx_u32(&x915, &x916, x875, UINT32_C(0xfffffffe)); + uint32_t x917; + uint32_t x918; + fiat_p384_mulx_u32(&x917, &x918, x875, UINT32_C(0xffffffff)); + uint32_t x919; + uint32_t x920; + fiat_p384_mulx_u32(&x919, &x920, x875, UINT32_C(0xffffffff)); + uint32_t x921; + fiat_p384_uint1 x922; + fiat_p384_addcarryx_u32(&x921, &x922, 0x0, x915, x918); + uint32_t x923; + fiat_p384_uint1 x924; + fiat_p384_addcarryx_u32(&x923, &x924, x922, x913, x916); + uint32_t x925; + fiat_p384_uint1 x926; + fiat_p384_addcarryx_u32(&x925, &x926, x924, x911, x914); + uint32_t x927; + fiat_p384_uint1 x928; + fiat_p384_addcarryx_u32(&x927, &x928, x926, x909, x912); + uint32_t x929; + fiat_p384_uint1 x930; + fiat_p384_addcarryx_u32(&x929, &x930, x928, x907, x910); + uint32_t x931; + fiat_p384_uint1 x932; + fiat_p384_addcarryx_u32(&x931, &x932, x930, x905, x908); + uint32_t x933; + fiat_p384_uint1 x934; + fiat_p384_addcarryx_u32(&x933, &x934, x932, x903, x906); + uint32_t x935; + fiat_p384_uint1 x936; + fiat_p384_addcarryx_u32(&x935, &x936, x934, x901, x904); + uint32_t x937; + fiat_p384_uint1 x938; + fiat_p384_addcarryx_u32(&x937, &x938, x936, 0x0, x902); + uint32_t x939; + fiat_p384_uint1 x940; + fiat_p384_addcarryx_u32(&x939, &x940, 0x0, x919, x875); + uint32_t x941; + fiat_p384_uint1 x942; + fiat_p384_addcarryx_u32(&x941, &x942, x940, x920, x877); + uint32_t x943; + fiat_p384_uint1 x944; + fiat_p384_addcarryx_u32(&x943, &x944, x942, 0x0, x879); + uint32_t x945; + fiat_p384_uint1 x946; + fiat_p384_addcarryx_u32(&x945, &x946, x944, x917, x881); + uint32_t x947; + fiat_p384_uint1 x948; + fiat_p384_addcarryx_u32(&x947, &x948, x946, x921, x883); + uint32_t x949; + fiat_p384_uint1 x950; + fiat_p384_addcarryx_u32(&x949, &x950, x948, x923, x885); + uint32_t x951; + fiat_p384_uint1 x952; + fiat_p384_addcarryx_u32(&x951, &x952, x950, x925, x887); + uint32_t x953; + fiat_p384_uint1 x954; + fiat_p384_addcarryx_u32(&x953, &x954, x952, x927, x889); + uint32_t x955; + fiat_p384_uint1 x956; + fiat_p384_addcarryx_u32(&x955, &x956, x954, x929, x891); + uint32_t x957; + fiat_p384_uint1 x958; + fiat_p384_addcarryx_u32(&x957, &x958, x956, x931, x893); + uint32_t x959; + fiat_p384_uint1 x960; + fiat_p384_addcarryx_u32(&x959, &x960, x958, x933, x895); + uint32_t x961; + fiat_p384_uint1 x962; + fiat_p384_addcarryx_u32(&x961, &x962, x960, x935, x897); + uint32_t x963; + fiat_p384_uint1 x964; + fiat_p384_addcarryx_u32(&x963, &x964, x962, x937, x899); + uint32_t x965; + fiat_p384_uint1 x966; + fiat_p384_addcarryx_u32(&x965, &x966, x964, 0x0, x900); + uint32_t x967; + uint32_t x968; + fiat_p384_mulx_u32(&x967, &x968, x7, (arg1[11])); + uint32_t x969; + uint32_t x970; + fiat_p384_mulx_u32(&x969, &x970, x7, (arg1[10])); + uint32_t x971; + uint32_t x972; + fiat_p384_mulx_u32(&x971, &x972, x7, (arg1[9])); + uint32_t x973; + uint32_t x974; + fiat_p384_mulx_u32(&x973, &x974, x7, (arg1[8])); + uint32_t x975; + uint32_t x976; + fiat_p384_mulx_u32(&x975, &x976, x7, (arg1[7])); + uint32_t x977; + uint32_t x978; + fiat_p384_mulx_u32(&x977, &x978, x7, (arg1[6])); + uint32_t x979; + uint32_t x980; + fiat_p384_mulx_u32(&x979, &x980, x7, (arg1[5])); + uint32_t x981; + uint32_t x982; + fiat_p384_mulx_u32(&x981, &x982, x7, (arg1[4])); + uint32_t x983; + uint32_t x984; + fiat_p384_mulx_u32(&x983, &x984, x7, (arg1[3])); + uint32_t x985; + uint32_t x986; + fiat_p384_mulx_u32(&x985, &x986, x7, (arg1[2])); + uint32_t x987; + uint32_t x988; + fiat_p384_mulx_u32(&x987, &x988, x7, (arg1[1])); + uint32_t x989; + uint32_t x990; + fiat_p384_mulx_u32(&x989, &x990, x7, (arg1[0])); + uint32_t x991; + fiat_p384_uint1 x992; + fiat_p384_addcarryx_u32(&x991, &x992, 0x0, x987, x990); + uint32_t x993; + fiat_p384_uint1 x994; + fiat_p384_addcarryx_u32(&x993, &x994, x992, x985, x988); + uint32_t x995; + fiat_p384_uint1 x996; + fiat_p384_addcarryx_u32(&x995, &x996, x994, x983, x986); + uint32_t x997; + fiat_p384_uint1 x998; + fiat_p384_addcarryx_u32(&x997, &x998, x996, x981, x984); + uint32_t x999; + fiat_p384_uint1 x1000; + fiat_p384_addcarryx_u32(&x999, &x1000, x998, x979, x982); + uint32_t x1001; + fiat_p384_uint1 x1002; + fiat_p384_addcarryx_u32(&x1001, &x1002, x1000, x977, x980); + uint32_t x1003; + fiat_p384_uint1 x1004; + fiat_p384_addcarryx_u32(&x1003, &x1004, x1002, x975, x978); + uint32_t x1005; + fiat_p384_uint1 x1006; + fiat_p384_addcarryx_u32(&x1005, &x1006, x1004, x973, x976); + uint32_t x1007; + fiat_p384_uint1 x1008; + fiat_p384_addcarryx_u32(&x1007, &x1008, x1006, x971, x974); + uint32_t x1009; + fiat_p384_uint1 x1010; + fiat_p384_addcarryx_u32(&x1009, &x1010, x1008, x969, x972); + uint32_t x1011; + fiat_p384_uint1 x1012; + fiat_p384_addcarryx_u32(&x1011, &x1012, x1010, x967, x970); + uint32_t x1013; + fiat_p384_uint1 x1014; + fiat_p384_addcarryx_u32(&x1013, &x1014, x1012, 0x0, x968); + uint32_t x1015; + fiat_p384_uint1 x1016; + fiat_p384_addcarryx_u32(&x1015, &x1016, 0x0, x989, x941); + uint32_t x1017; + fiat_p384_uint1 x1018; + fiat_p384_addcarryx_u32(&x1017, &x1018, x1016, x991, x943); + uint32_t x1019; + fiat_p384_uint1 x1020; + fiat_p384_addcarryx_u32(&x1019, &x1020, x1018, x993, x945); + uint32_t x1021; + fiat_p384_uint1 x1022; + fiat_p384_addcarryx_u32(&x1021, &x1022, x1020, x995, x947); + uint32_t x1023; + fiat_p384_uint1 x1024; + fiat_p384_addcarryx_u32(&x1023, &x1024, x1022, x997, x949); + uint32_t x1025; + fiat_p384_uint1 x1026; + fiat_p384_addcarryx_u32(&x1025, &x1026, x1024, x999, x951); + uint32_t x1027; + fiat_p384_uint1 x1028; + fiat_p384_addcarryx_u32(&x1027, &x1028, x1026, x1001, x953); + uint32_t x1029; + fiat_p384_uint1 x1030; + fiat_p384_addcarryx_u32(&x1029, &x1030, x1028, x1003, x955); + uint32_t x1031; + fiat_p384_uint1 x1032; + fiat_p384_addcarryx_u32(&x1031, &x1032, x1030, x1005, x957); + uint32_t x1033; + fiat_p384_uint1 x1034; + fiat_p384_addcarryx_u32(&x1033, &x1034, x1032, x1007, x959); + uint32_t x1035; + fiat_p384_uint1 x1036; + fiat_p384_addcarryx_u32(&x1035, &x1036, x1034, x1009, x961); + uint32_t x1037; + fiat_p384_uint1 x1038; + fiat_p384_addcarryx_u32(&x1037, &x1038, x1036, x1011, x963); + uint32_t x1039; + fiat_p384_uint1 x1040; + fiat_p384_addcarryx_u32(&x1039, &x1040, x1038, x1013, x965); + uint32_t x1041; + uint32_t x1042; + fiat_p384_mulx_u32(&x1041, &x1042, x1015, UINT32_C(0xffffffff)); + uint32_t x1043; + uint32_t x1044; + fiat_p384_mulx_u32(&x1043, &x1044, x1015, UINT32_C(0xffffffff)); + uint32_t x1045; + uint32_t x1046; + fiat_p384_mulx_u32(&x1045, &x1046, x1015, UINT32_C(0xffffffff)); + uint32_t x1047; + uint32_t x1048; + fiat_p384_mulx_u32(&x1047, &x1048, x1015, UINT32_C(0xffffffff)); + uint32_t x1049; + uint32_t x1050; + fiat_p384_mulx_u32(&x1049, &x1050, x1015, UINT32_C(0xffffffff)); + uint32_t x1051; + uint32_t x1052; + fiat_p384_mulx_u32(&x1051, &x1052, x1015, UINT32_C(0xffffffff)); + uint32_t x1053; + uint32_t x1054; + fiat_p384_mulx_u32(&x1053, &x1054, x1015, UINT32_C(0xffffffff)); + uint32_t x1055; + uint32_t x1056; + fiat_p384_mulx_u32(&x1055, &x1056, x1015, UINT32_C(0xfffffffe)); + uint32_t x1057; + uint32_t x1058; + fiat_p384_mulx_u32(&x1057, &x1058, x1015, UINT32_C(0xffffffff)); + uint32_t x1059; + uint32_t x1060; + fiat_p384_mulx_u32(&x1059, &x1060, x1015, UINT32_C(0xffffffff)); + uint32_t x1061; + fiat_p384_uint1 x1062; + fiat_p384_addcarryx_u32(&x1061, &x1062, 0x0, x1055, x1058); + uint32_t x1063; + fiat_p384_uint1 x1064; + fiat_p384_addcarryx_u32(&x1063, &x1064, x1062, x1053, x1056); + uint32_t x1065; + fiat_p384_uint1 x1066; + fiat_p384_addcarryx_u32(&x1065, &x1066, x1064, x1051, x1054); + uint32_t x1067; + fiat_p384_uint1 x1068; + fiat_p384_addcarryx_u32(&x1067, &x1068, x1066, x1049, x1052); + uint32_t x1069; + fiat_p384_uint1 x1070; + fiat_p384_addcarryx_u32(&x1069, &x1070, x1068, x1047, x1050); + uint32_t x1071; + fiat_p384_uint1 x1072; + fiat_p384_addcarryx_u32(&x1071, &x1072, x1070, x1045, x1048); + uint32_t x1073; + fiat_p384_uint1 x1074; + fiat_p384_addcarryx_u32(&x1073, &x1074, x1072, x1043, x1046); + uint32_t x1075; + fiat_p384_uint1 x1076; + fiat_p384_addcarryx_u32(&x1075, &x1076, x1074, x1041, x1044); + uint32_t x1077; + fiat_p384_uint1 x1078; + fiat_p384_addcarryx_u32(&x1077, &x1078, x1076, 0x0, x1042); + uint32_t x1079; + fiat_p384_uint1 x1080; + fiat_p384_addcarryx_u32(&x1079, &x1080, 0x0, x1059, x1015); + uint32_t x1081; + fiat_p384_uint1 x1082; + fiat_p384_addcarryx_u32(&x1081, &x1082, x1080, x1060, x1017); + uint32_t x1083; + fiat_p384_uint1 x1084; + fiat_p384_addcarryx_u32(&x1083, &x1084, x1082, 0x0, x1019); + uint32_t x1085; + fiat_p384_uint1 x1086; + fiat_p384_addcarryx_u32(&x1085, &x1086, x1084, x1057, x1021); + uint32_t x1087; + fiat_p384_uint1 x1088; + fiat_p384_addcarryx_u32(&x1087, &x1088, x1086, x1061, x1023); + uint32_t x1089; + fiat_p384_uint1 x1090; + fiat_p384_addcarryx_u32(&x1089, &x1090, x1088, x1063, x1025); + uint32_t x1091; + fiat_p384_uint1 x1092; + fiat_p384_addcarryx_u32(&x1091, &x1092, x1090, x1065, x1027); + uint32_t x1093; + fiat_p384_uint1 x1094; + fiat_p384_addcarryx_u32(&x1093, &x1094, x1092, x1067, x1029); + uint32_t x1095; + fiat_p384_uint1 x1096; + fiat_p384_addcarryx_u32(&x1095, &x1096, x1094, x1069, x1031); + uint32_t x1097; + fiat_p384_uint1 x1098; + fiat_p384_addcarryx_u32(&x1097, &x1098, x1096, x1071, x1033); + uint32_t x1099; + fiat_p384_uint1 x1100; + fiat_p384_addcarryx_u32(&x1099, &x1100, x1098, x1073, x1035); + uint32_t x1101; + fiat_p384_uint1 x1102; + fiat_p384_addcarryx_u32(&x1101, &x1102, x1100, x1075, x1037); + uint32_t x1103; + fiat_p384_uint1 x1104; + fiat_p384_addcarryx_u32(&x1103, &x1104, x1102, x1077, x1039); + uint32_t x1105; + fiat_p384_uint1 x1106; + fiat_p384_addcarryx_u32(&x1105, &x1106, x1104, 0x0, x1040); + uint32_t x1107; + uint32_t x1108; + fiat_p384_mulx_u32(&x1107, &x1108, x8, (arg1[11])); + uint32_t x1109; + uint32_t x1110; + fiat_p384_mulx_u32(&x1109, &x1110, x8, (arg1[10])); + uint32_t x1111; + uint32_t x1112; + fiat_p384_mulx_u32(&x1111, &x1112, x8, (arg1[9])); + uint32_t x1113; + uint32_t x1114; + fiat_p384_mulx_u32(&x1113, &x1114, x8, (arg1[8])); + uint32_t x1115; + uint32_t x1116; + fiat_p384_mulx_u32(&x1115, &x1116, x8, (arg1[7])); + uint32_t x1117; + uint32_t x1118; + fiat_p384_mulx_u32(&x1117, &x1118, x8, (arg1[6])); + uint32_t x1119; + uint32_t x1120; + fiat_p384_mulx_u32(&x1119, &x1120, x8, (arg1[5])); + uint32_t x1121; + uint32_t x1122; + fiat_p384_mulx_u32(&x1121, &x1122, x8, (arg1[4])); + uint32_t x1123; + uint32_t x1124; + fiat_p384_mulx_u32(&x1123, &x1124, x8, (arg1[3])); + uint32_t x1125; + uint32_t x1126; + fiat_p384_mulx_u32(&x1125, &x1126, x8, (arg1[2])); + uint32_t x1127; + uint32_t x1128; + fiat_p384_mulx_u32(&x1127, &x1128, x8, (arg1[1])); + uint32_t x1129; + uint32_t x1130; + fiat_p384_mulx_u32(&x1129, &x1130, x8, (arg1[0])); + uint32_t x1131; + fiat_p384_uint1 x1132; + fiat_p384_addcarryx_u32(&x1131, &x1132, 0x0, x1127, x1130); + uint32_t x1133; + fiat_p384_uint1 x1134; + fiat_p384_addcarryx_u32(&x1133, &x1134, x1132, x1125, x1128); + uint32_t x1135; + fiat_p384_uint1 x1136; + fiat_p384_addcarryx_u32(&x1135, &x1136, x1134, x1123, x1126); + uint32_t x1137; + fiat_p384_uint1 x1138; + fiat_p384_addcarryx_u32(&x1137, &x1138, x1136, x1121, x1124); + uint32_t x1139; + fiat_p384_uint1 x1140; + fiat_p384_addcarryx_u32(&x1139, &x1140, x1138, x1119, x1122); + uint32_t x1141; + fiat_p384_uint1 x1142; + fiat_p384_addcarryx_u32(&x1141, &x1142, x1140, x1117, x1120); + uint32_t x1143; + fiat_p384_uint1 x1144; + fiat_p384_addcarryx_u32(&x1143, &x1144, x1142, x1115, x1118); + uint32_t x1145; + fiat_p384_uint1 x1146; + fiat_p384_addcarryx_u32(&x1145, &x1146, x1144, x1113, x1116); + uint32_t x1147; + fiat_p384_uint1 x1148; + fiat_p384_addcarryx_u32(&x1147, &x1148, x1146, x1111, x1114); + uint32_t x1149; + fiat_p384_uint1 x1150; + fiat_p384_addcarryx_u32(&x1149, &x1150, x1148, x1109, x1112); + uint32_t x1151; + fiat_p384_uint1 x1152; + fiat_p384_addcarryx_u32(&x1151, &x1152, x1150, x1107, x1110); + uint32_t x1153; + fiat_p384_uint1 x1154; + fiat_p384_addcarryx_u32(&x1153, &x1154, x1152, 0x0, x1108); + uint32_t x1155; + fiat_p384_uint1 x1156; + fiat_p384_addcarryx_u32(&x1155, &x1156, 0x0, x1129, x1081); + uint32_t x1157; + fiat_p384_uint1 x1158; + fiat_p384_addcarryx_u32(&x1157, &x1158, x1156, x1131, x1083); + uint32_t x1159; + fiat_p384_uint1 x1160; + fiat_p384_addcarryx_u32(&x1159, &x1160, x1158, x1133, x1085); + uint32_t x1161; + fiat_p384_uint1 x1162; + fiat_p384_addcarryx_u32(&x1161, &x1162, x1160, x1135, x1087); + uint32_t x1163; + fiat_p384_uint1 x1164; + fiat_p384_addcarryx_u32(&x1163, &x1164, x1162, x1137, x1089); + uint32_t x1165; + fiat_p384_uint1 x1166; + fiat_p384_addcarryx_u32(&x1165, &x1166, x1164, x1139, x1091); + uint32_t x1167; + fiat_p384_uint1 x1168; + fiat_p384_addcarryx_u32(&x1167, &x1168, x1166, x1141, x1093); + uint32_t x1169; + fiat_p384_uint1 x1170; + fiat_p384_addcarryx_u32(&x1169, &x1170, x1168, x1143, x1095); + uint32_t x1171; + fiat_p384_uint1 x1172; + fiat_p384_addcarryx_u32(&x1171, &x1172, x1170, x1145, x1097); + uint32_t x1173; + fiat_p384_uint1 x1174; + fiat_p384_addcarryx_u32(&x1173, &x1174, x1172, x1147, x1099); + uint32_t x1175; + fiat_p384_uint1 x1176; + fiat_p384_addcarryx_u32(&x1175, &x1176, x1174, x1149, x1101); + uint32_t x1177; + fiat_p384_uint1 x1178; + fiat_p384_addcarryx_u32(&x1177, &x1178, x1176, x1151, x1103); + uint32_t x1179; + fiat_p384_uint1 x1180; + fiat_p384_addcarryx_u32(&x1179, &x1180, x1178, x1153, x1105); + uint32_t x1181; + uint32_t x1182; + fiat_p384_mulx_u32(&x1181, &x1182, x1155, UINT32_C(0xffffffff)); + uint32_t x1183; + uint32_t x1184; + fiat_p384_mulx_u32(&x1183, &x1184, x1155, UINT32_C(0xffffffff)); + uint32_t x1185; + uint32_t x1186; + fiat_p384_mulx_u32(&x1185, &x1186, x1155, UINT32_C(0xffffffff)); + uint32_t x1187; + uint32_t x1188; + fiat_p384_mulx_u32(&x1187, &x1188, x1155, UINT32_C(0xffffffff)); + uint32_t x1189; + uint32_t x1190; + fiat_p384_mulx_u32(&x1189, &x1190, x1155, UINT32_C(0xffffffff)); + uint32_t x1191; + uint32_t x1192; + fiat_p384_mulx_u32(&x1191, &x1192, x1155, UINT32_C(0xffffffff)); + uint32_t x1193; + uint32_t x1194; + fiat_p384_mulx_u32(&x1193, &x1194, x1155, UINT32_C(0xffffffff)); + uint32_t x1195; + uint32_t x1196; + fiat_p384_mulx_u32(&x1195, &x1196, x1155, UINT32_C(0xfffffffe)); + uint32_t x1197; + uint32_t x1198; + fiat_p384_mulx_u32(&x1197, &x1198, x1155, UINT32_C(0xffffffff)); + uint32_t x1199; + uint32_t x1200; + fiat_p384_mulx_u32(&x1199, &x1200, x1155, UINT32_C(0xffffffff)); + uint32_t x1201; + fiat_p384_uint1 x1202; + fiat_p384_addcarryx_u32(&x1201, &x1202, 0x0, x1195, x1198); + uint32_t x1203; + fiat_p384_uint1 x1204; + fiat_p384_addcarryx_u32(&x1203, &x1204, x1202, x1193, x1196); + uint32_t x1205; + fiat_p384_uint1 x1206; + fiat_p384_addcarryx_u32(&x1205, &x1206, x1204, x1191, x1194); + uint32_t x1207; + fiat_p384_uint1 x1208; + fiat_p384_addcarryx_u32(&x1207, &x1208, x1206, x1189, x1192); + uint32_t x1209; + fiat_p384_uint1 x1210; + fiat_p384_addcarryx_u32(&x1209, &x1210, x1208, x1187, x1190); + uint32_t x1211; + fiat_p384_uint1 x1212; + fiat_p384_addcarryx_u32(&x1211, &x1212, x1210, x1185, x1188); + uint32_t x1213; + fiat_p384_uint1 x1214; + fiat_p384_addcarryx_u32(&x1213, &x1214, x1212, x1183, x1186); + uint32_t x1215; + fiat_p384_uint1 x1216; + fiat_p384_addcarryx_u32(&x1215, &x1216, x1214, x1181, x1184); + uint32_t x1217; + fiat_p384_uint1 x1218; + fiat_p384_addcarryx_u32(&x1217, &x1218, x1216, 0x0, x1182); + uint32_t x1219; + fiat_p384_uint1 x1220; + fiat_p384_addcarryx_u32(&x1219, &x1220, 0x0, x1199, x1155); + uint32_t x1221; + fiat_p384_uint1 x1222; + fiat_p384_addcarryx_u32(&x1221, &x1222, x1220, x1200, x1157); + uint32_t x1223; + fiat_p384_uint1 x1224; + fiat_p384_addcarryx_u32(&x1223, &x1224, x1222, 0x0, x1159); + uint32_t x1225; + fiat_p384_uint1 x1226; + fiat_p384_addcarryx_u32(&x1225, &x1226, x1224, x1197, x1161); + uint32_t x1227; + fiat_p384_uint1 x1228; + fiat_p384_addcarryx_u32(&x1227, &x1228, x1226, x1201, x1163); + uint32_t x1229; + fiat_p384_uint1 x1230; + fiat_p384_addcarryx_u32(&x1229, &x1230, x1228, x1203, x1165); + uint32_t x1231; + fiat_p384_uint1 x1232; + fiat_p384_addcarryx_u32(&x1231, &x1232, x1230, x1205, x1167); + uint32_t x1233; + fiat_p384_uint1 x1234; + fiat_p384_addcarryx_u32(&x1233, &x1234, x1232, x1207, x1169); + uint32_t x1235; + fiat_p384_uint1 x1236; + fiat_p384_addcarryx_u32(&x1235, &x1236, x1234, x1209, x1171); + uint32_t x1237; + fiat_p384_uint1 x1238; + fiat_p384_addcarryx_u32(&x1237, &x1238, x1236, x1211, x1173); + uint32_t x1239; + fiat_p384_uint1 x1240; + fiat_p384_addcarryx_u32(&x1239, &x1240, x1238, x1213, x1175); + uint32_t x1241; + fiat_p384_uint1 x1242; + fiat_p384_addcarryx_u32(&x1241, &x1242, x1240, x1215, x1177); + uint32_t x1243; + fiat_p384_uint1 x1244; + fiat_p384_addcarryx_u32(&x1243, &x1244, x1242, x1217, x1179); + uint32_t x1245; + fiat_p384_uint1 x1246; + fiat_p384_addcarryx_u32(&x1245, &x1246, x1244, 0x0, x1180); + uint32_t x1247; + uint32_t x1248; + fiat_p384_mulx_u32(&x1247, &x1248, x9, (arg1[11])); + uint32_t x1249; + uint32_t x1250; + fiat_p384_mulx_u32(&x1249, &x1250, x9, (arg1[10])); + uint32_t x1251; + uint32_t x1252; + fiat_p384_mulx_u32(&x1251, &x1252, x9, (arg1[9])); + uint32_t x1253; + uint32_t x1254; + fiat_p384_mulx_u32(&x1253, &x1254, x9, (arg1[8])); + uint32_t x1255; + uint32_t x1256; + fiat_p384_mulx_u32(&x1255, &x1256, x9, (arg1[7])); + uint32_t x1257; + uint32_t x1258; + fiat_p384_mulx_u32(&x1257, &x1258, x9, (arg1[6])); + uint32_t x1259; + uint32_t x1260; + fiat_p384_mulx_u32(&x1259, &x1260, x9, (arg1[5])); + uint32_t x1261; + uint32_t x1262; + fiat_p384_mulx_u32(&x1261, &x1262, x9, (arg1[4])); + uint32_t x1263; + uint32_t x1264; + fiat_p384_mulx_u32(&x1263, &x1264, x9, (arg1[3])); + uint32_t x1265; + uint32_t x1266; + fiat_p384_mulx_u32(&x1265, &x1266, x9, (arg1[2])); + uint32_t x1267; + uint32_t x1268; + fiat_p384_mulx_u32(&x1267, &x1268, x9, (arg1[1])); + uint32_t x1269; + uint32_t x1270; + fiat_p384_mulx_u32(&x1269, &x1270, x9, (arg1[0])); + uint32_t x1271; + fiat_p384_uint1 x1272; + fiat_p384_addcarryx_u32(&x1271, &x1272, 0x0, x1267, x1270); + uint32_t x1273; + fiat_p384_uint1 x1274; + fiat_p384_addcarryx_u32(&x1273, &x1274, x1272, x1265, x1268); + uint32_t x1275; + fiat_p384_uint1 x1276; + fiat_p384_addcarryx_u32(&x1275, &x1276, x1274, x1263, x1266); + uint32_t x1277; + fiat_p384_uint1 x1278; + fiat_p384_addcarryx_u32(&x1277, &x1278, x1276, x1261, x1264); + uint32_t x1279; + fiat_p384_uint1 x1280; + fiat_p384_addcarryx_u32(&x1279, &x1280, x1278, x1259, x1262); + uint32_t x1281; + fiat_p384_uint1 x1282; + fiat_p384_addcarryx_u32(&x1281, &x1282, x1280, x1257, x1260); + uint32_t x1283; + fiat_p384_uint1 x1284; + fiat_p384_addcarryx_u32(&x1283, &x1284, x1282, x1255, x1258); + uint32_t x1285; + fiat_p384_uint1 x1286; + fiat_p384_addcarryx_u32(&x1285, &x1286, x1284, x1253, x1256); + uint32_t x1287; + fiat_p384_uint1 x1288; + fiat_p384_addcarryx_u32(&x1287, &x1288, x1286, x1251, x1254); + uint32_t x1289; + fiat_p384_uint1 x1290; + fiat_p384_addcarryx_u32(&x1289, &x1290, x1288, x1249, x1252); + uint32_t x1291; + fiat_p384_uint1 x1292; + fiat_p384_addcarryx_u32(&x1291, &x1292, x1290, x1247, x1250); + uint32_t x1293; + fiat_p384_uint1 x1294; + fiat_p384_addcarryx_u32(&x1293, &x1294, x1292, 0x0, x1248); + uint32_t x1295; + fiat_p384_uint1 x1296; + fiat_p384_addcarryx_u32(&x1295, &x1296, 0x0, x1269, x1221); + uint32_t x1297; + fiat_p384_uint1 x1298; + fiat_p384_addcarryx_u32(&x1297, &x1298, x1296, x1271, x1223); + uint32_t x1299; + fiat_p384_uint1 x1300; + fiat_p384_addcarryx_u32(&x1299, &x1300, x1298, x1273, x1225); + uint32_t x1301; + fiat_p384_uint1 x1302; + fiat_p384_addcarryx_u32(&x1301, &x1302, x1300, x1275, x1227); + uint32_t x1303; + fiat_p384_uint1 x1304; + fiat_p384_addcarryx_u32(&x1303, &x1304, x1302, x1277, x1229); + uint32_t x1305; + fiat_p384_uint1 x1306; + fiat_p384_addcarryx_u32(&x1305, &x1306, x1304, x1279, x1231); + uint32_t x1307; + fiat_p384_uint1 x1308; + fiat_p384_addcarryx_u32(&x1307, &x1308, x1306, x1281, x1233); + uint32_t x1309; + fiat_p384_uint1 x1310; + fiat_p384_addcarryx_u32(&x1309, &x1310, x1308, x1283, x1235); + uint32_t x1311; + fiat_p384_uint1 x1312; + fiat_p384_addcarryx_u32(&x1311, &x1312, x1310, x1285, x1237); + uint32_t x1313; + fiat_p384_uint1 x1314; + fiat_p384_addcarryx_u32(&x1313, &x1314, x1312, x1287, x1239); + uint32_t x1315; + fiat_p384_uint1 x1316; + fiat_p384_addcarryx_u32(&x1315, &x1316, x1314, x1289, x1241); + uint32_t x1317; + fiat_p384_uint1 x1318; + fiat_p384_addcarryx_u32(&x1317, &x1318, x1316, x1291, x1243); + uint32_t x1319; + fiat_p384_uint1 x1320; + fiat_p384_addcarryx_u32(&x1319, &x1320, x1318, x1293, x1245); + uint32_t x1321; + uint32_t x1322; + fiat_p384_mulx_u32(&x1321, &x1322, x1295, UINT32_C(0xffffffff)); + uint32_t x1323; + uint32_t x1324; + fiat_p384_mulx_u32(&x1323, &x1324, x1295, UINT32_C(0xffffffff)); + uint32_t x1325; + uint32_t x1326; + fiat_p384_mulx_u32(&x1325, &x1326, x1295, UINT32_C(0xffffffff)); + uint32_t x1327; + uint32_t x1328; + fiat_p384_mulx_u32(&x1327, &x1328, x1295, UINT32_C(0xffffffff)); + uint32_t x1329; + uint32_t x1330; + fiat_p384_mulx_u32(&x1329, &x1330, x1295, UINT32_C(0xffffffff)); + uint32_t x1331; + uint32_t x1332; + fiat_p384_mulx_u32(&x1331, &x1332, x1295, UINT32_C(0xffffffff)); + uint32_t x1333; + uint32_t x1334; + fiat_p384_mulx_u32(&x1333, &x1334, x1295, UINT32_C(0xffffffff)); + uint32_t x1335; + uint32_t x1336; + fiat_p384_mulx_u32(&x1335, &x1336, x1295, UINT32_C(0xfffffffe)); + uint32_t x1337; + uint32_t x1338; + fiat_p384_mulx_u32(&x1337, &x1338, x1295, UINT32_C(0xffffffff)); + uint32_t x1339; + uint32_t x1340; + fiat_p384_mulx_u32(&x1339, &x1340, x1295, UINT32_C(0xffffffff)); + uint32_t x1341; + fiat_p384_uint1 x1342; + fiat_p384_addcarryx_u32(&x1341, &x1342, 0x0, x1335, x1338); + uint32_t x1343; + fiat_p384_uint1 x1344; + fiat_p384_addcarryx_u32(&x1343, &x1344, x1342, x1333, x1336); + uint32_t x1345; + fiat_p384_uint1 x1346; + fiat_p384_addcarryx_u32(&x1345, &x1346, x1344, x1331, x1334); + uint32_t x1347; + fiat_p384_uint1 x1348; + fiat_p384_addcarryx_u32(&x1347, &x1348, x1346, x1329, x1332); + uint32_t x1349; + fiat_p384_uint1 x1350; + fiat_p384_addcarryx_u32(&x1349, &x1350, x1348, x1327, x1330); + uint32_t x1351; + fiat_p384_uint1 x1352; + fiat_p384_addcarryx_u32(&x1351, &x1352, x1350, x1325, x1328); + uint32_t x1353; + fiat_p384_uint1 x1354; + fiat_p384_addcarryx_u32(&x1353, &x1354, x1352, x1323, x1326); + uint32_t x1355; + fiat_p384_uint1 x1356; + fiat_p384_addcarryx_u32(&x1355, &x1356, x1354, x1321, x1324); + uint32_t x1357; + fiat_p384_uint1 x1358; + fiat_p384_addcarryx_u32(&x1357, &x1358, x1356, 0x0, x1322); + uint32_t x1359; + fiat_p384_uint1 x1360; + fiat_p384_addcarryx_u32(&x1359, &x1360, 0x0, x1339, x1295); + uint32_t x1361; + fiat_p384_uint1 x1362; + fiat_p384_addcarryx_u32(&x1361, &x1362, x1360, x1340, x1297); + uint32_t x1363; + fiat_p384_uint1 x1364; + fiat_p384_addcarryx_u32(&x1363, &x1364, x1362, 0x0, x1299); + uint32_t x1365; + fiat_p384_uint1 x1366; + fiat_p384_addcarryx_u32(&x1365, &x1366, x1364, x1337, x1301); + uint32_t x1367; + fiat_p384_uint1 x1368; + fiat_p384_addcarryx_u32(&x1367, &x1368, x1366, x1341, x1303); + uint32_t x1369; + fiat_p384_uint1 x1370; + fiat_p384_addcarryx_u32(&x1369, &x1370, x1368, x1343, x1305); + uint32_t x1371; + fiat_p384_uint1 x1372; + fiat_p384_addcarryx_u32(&x1371, &x1372, x1370, x1345, x1307); + uint32_t x1373; + fiat_p384_uint1 x1374; + fiat_p384_addcarryx_u32(&x1373, &x1374, x1372, x1347, x1309); + uint32_t x1375; + fiat_p384_uint1 x1376; + fiat_p384_addcarryx_u32(&x1375, &x1376, x1374, x1349, x1311); + uint32_t x1377; + fiat_p384_uint1 x1378; + fiat_p384_addcarryx_u32(&x1377, &x1378, x1376, x1351, x1313); + uint32_t x1379; + fiat_p384_uint1 x1380; + fiat_p384_addcarryx_u32(&x1379, &x1380, x1378, x1353, x1315); + uint32_t x1381; + fiat_p384_uint1 x1382; + fiat_p384_addcarryx_u32(&x1381, &x1382, x1380, x1355, x1317); + uint32_t x1383; + fiat_p384_uint1 x1384; + fiat_p384_addcarryx_u32(&x1383, &x1384, x1382, x1357, x1319); + uint32_t x1385; + fiat_p384_uint1 x1386; + fiat_p384_addcarryx_u32(&x1385, &x1386, x1384, 0x0, x1320); + uint32_t x1387; + uint32_t x1388; + fiat_p384_mulx_u32(&x1387, &x1388, x10, (arg1[11])); + uint32_t x1389; + uint32_t x1390; + fiat_p384_mulx_u32(&x1389, &x1390, x10, (arg1[10])); + uint32_t x1391; + uint32_t x1392; + fiat_p384_mulx_u32(&x1391, &x1392, x10, (arg1[9])); + uint32_t x1393; + uint32_t x1394; + fiat_p384_mulx_u32(&x1393, &x1394, x10, (arg1[8])); + uint32_t x1395; + uint32_t x1396; + fiat_p384_mulx_u32(&x1395, &x1396, x10, (arg1[7])); + uint32_t x1397; + uint32_t x1398; + fiat_p384_mulx_u32(&x1397, &x1398, x10, (arg1[6])); + uint32_t x1399; + uint32_t x1400; + fiat_p384_mulx_u32(&x1399, &x1400, x10, (arg1[5])); + uint32_t x1401; + uint32_t x1402; + fiat_p384_mulx_u32(&x1401, &x1402, x10, (arg1[4])); + uint32_t x1403; + uint32_t x1404; + fiat_p384_mulx_u32(&x1403, &x1404, x10, (arg1[3])); + uint32_t x1405; + uint32_t x1406; + fiat_p384_mulx_u32(&x1405, &x1406, x10, (arg1[2])); + uint32_t x1407; + uint32_t x1408; + fiat_p384_mulx_u32(&x1407, &x1408, x10, (arg1[1])); + uint32_t x1409; + uint32_t x1410; + fiat_p384_mulx_u32(&x1409, &x1410, x10, (arg1[0])); + uint32_t x1411; + fiat_p384_uint1 x1412; + fiat_p384_addcarryx_u32(&x1411, &x1412, 0x0, x1407, x1410); + uint32_t x1413; + fiat_p384_uint1 x1414; + fiat_p384_addcarryx_u32(&x1413, &x1414, x1412, x1405, x1408); + uint32_t x1415; + fiat_p384_uint1 x1416; + fiat_p384_addcarryx_u32(&x1415, &x1416, x1414, x1403, x1406); + uint32_t x1417; + fiat_p384_uint1 x1418; + fiat_p384_addcarryx_u32(&x1417, &x1418, x1416, x1401, x1404); + uint32_t x1419; + fiat_p384_uint1 x1420; + fiat_p384_addcarryx_u32(&x1419, &x1420, x1418, x1399, x1402); + uint32_t x1421; + fiat_p384_uint1 x1422; + fiat_p384_addcarryx_u32(&x1421, &x1422, x1420, x1397, x1400); + uint32_t x1423; + fiat_p384_uint1 x1424; + fiat_p384_addcarryx_u32(&x1423, &x1424, x1422, x1395, x1398); + uint32_t x1425; + fiat_p384_uint1 x1426; + fiat_p384_addcarryx_u32(&x1425, &x1426, x1424, x1393, x1396); + uint32_t x1427; + fiat_p384_uint1 x1428; + fiat_p384_addcarryx_u32(&x1427, &x1428, x1426, x1391, x1394); + uint32_t x1429; + fiat_p384_uint1 x1430; + fiat_p384_addcarryx_u32(&x1429, &x1430, x1428, x1389, x1392); + uint32_t x1431; + fiat_p384_uint1 x1432; + fiat_p384_addcarryx_u32(&x1431, &x1432, x1430, x1387, x1390); + uint32_t x1433; + fiat_p384_uint1 x1434; + fiat_p384_addcarryx_u32(&x1433, &x1434, x1432, 0x0, x1388); + uint32_t x1435; + fiat_p384_uint1 x1436; + fiat_p384_addcarryx_u32(&x1435, &x1436, 0x0, x1409, x1361); + uint32_t x1437; + fiat_p384_uint1 x1438; + fiat_p384_addcarryx_u32(&x1437, &x1438, x1436, x1411, x1363); + uint32_t x1439; + fiat_p384_uint1 x1440; + fiat_p384_addcarryx_u32(&x1439, &x1440, x1438, x1413, x1365); + uint32_t x1441; + fiat_p384_uint1 x1442; + fiat_p384_addcarryx_u32(&x1441, &x1442, x1440, x1415, x1367); + uint32_t x1443; + fiat_p384_uint1 x1444; + fiat_p384_addcarryx_u32(&x1443, &x1444, x1442, x1417, x1369); + uint32_t x1445; + fiat_p384_uint1 x1446; + fiat_p384_addcarryx_u32(&x1445, &x1446, x1444, x1419, x1371); + uint32_t x1447; + fiat_p384_uint1 x1448; + fiat_p384_addcarryx_u32(&x1447, &x1448, x1446, x1421, x1373); + uint32_t x1449; + fiat_p384_uint1 x1450; + fiat_p384_addcarryx_u32(&x1449, &x1450, x1448, x1423, x1375); + uint32_t x1451; + fiat_p384_uint1 x1452; + fiat_p384_addcarryx_u32(&x1451, &x1452, x1450, x1425, x1377); + uint32_t x1453; + fiat_p384_uint1 x1454; + fiat_p384_addcarryx_u32(&x1453, &x1454, x1452, x1427, x1379); + uint32_t x1455; + fiat_p384_uint1 x1456; + fiat_p384_addcarryx_u32(&x1455, &x1456, x1454, x1429, x1381); + uint32_t x1457; + fiat_p384_uint1 x1458; + fiat_p384_addcarryx_u32(&x1457, &x1458, x1456, x1431, x1383); + uint32_t x1459; + fiat_p384_uint1 x1460; + fiat_p384_addcarryx_u32(&x1459, &x1460, x1458, x1433, x1385); + uint32_t x1461; + uint32_t x1462; + fiat_p384_mulx_u32(&x1461, &x1462, x1435, UINT32_C(0xffffffff)); + uint32_t x1463; + uint32_t x1464; + fiat_p384_mulx_u32(&x1463, &x1464, x1435, UINT32_C(0xffffffff)); + uint32_t x1465; + uint32_t x1466; + fiat_p384_mulx_u32(&x1465, &x1466, x1435, UINT32_C(0xffffffff)); + uint32_t x1467; + uint32_t x1468; + fiat_p384_mulx_u32(&x1467, &x1468, x1435, UINT32_C(0xffffffff)); + uint32_t x1469; + uint32_t x1470; + fiat_p384_mulx_u32(&x1469, &x1470, x1435, UINT32_C(0xffffffff)); + uint32_t x1471; + uint32_t x1472; + fiat_p384_mulx_u32(&x1471, &x1472, x1435, UINT32_C(0xffffffff)); + uint32_t x1473; + uint32_t x1474; + fiat_p384_mulx_u32(&x1473, &x1474, x1435, UINT32_C(0xffffffff)); + uint32_t x1475; + uint32_t x1476; + fiat_p384_mulx_u32(&x1475, &x1476, x1435, UINT32_C(0xfffffffe)); + uint32_t x1477; + uint32_t x1478; + fiat_p384_mulx_u32(&x1477, &x1478, x1435, UINT32_C(0xffffffff)); + uint32_t x1479; + uint32_t x1480; + fiat_p384_mulx_u32(&x1479, &x1480, x1435, UINT32_C(0xffffffff)); + uint32_t x1481; + fiat_p384_uint1 x1482; + fiat_p384_addcarryx_u32(&x1481, &x1482, 0x0, x1475, x1478); + uint32_t x1483; + fiat_p384_uint1 x1484; + fiat_p384_addcarryx_u32(&x1483, &x1484, x1482, x1473, x1476); + uint32_t x1485; + fiat_p384_uint1 x1486; + fiat_p384_addcarryx_u32(&x1485, &x1486, x1484, x1471, x1474); + uint32_t x1487; + fiat_p384_uint1 x1488; + fiat_p384_addcarryx_u32(&x1487, &x1488, x1486, x1469, x1472); + uint32_t x1489; + fiat_p384_uint1 x1490; + fiat_p384_addcarryx_u32(&x1489, &x1490, x1488, x1467, x1470); + uint32_t x1491; + fiat_p384_uint1 x1492; + fiat_p384_addcarryx_u32(&x1491, &x1492, x1490, x1465, x1468); + uint32_t x1493; + fiat_p384_uint1 x1494; + fiat_p384_addcarryx_u32(&x1493, &x1494, x1492, x1463, x1466); + uint32_t x1495; + fiat_p384_uint1 x1496; + fiat_p384_addcarryx_u32(&x1495, &x1496, x1494, x1461, x1464); + uint32_t x1497; + fiat_p384_uint1 x1498; + fiat_p384_addcarryx_u32(&x1497, &x1498, x1496, 0x0, x1462); + uint32_t x1499; + fiat_p384_uint1 x1500; + fiat_p384_addcarryx_u32(&x1499, &x1500, 0x0, x1479, x1435); + uint32_t x1501; + fiat_p384_uint1 x1502; + fiat_p384_addcarryx_u32(&x1501, &x1502, x1500, x1480, x1437); + uint32_t x1503; + fiat_p384_uint1 x1504; + fiat_p384_addcarryx_u32(&x1503, &x1504, x1502, 0x0, x1439); + uint32_t x1505; + fiat_p384_uint1 x1506; + fiat_p384_addcarryx_u32(&x1505, &x1506, x1504, x1477, x1441); + uint32_t x1507; + fiat_p384_uint1 x1508; + fiat_p384_addcarryx_u32(&x1507, &x1508, x1506, x1481, x1443); + uint32_t x1509; + fiat_p384_uint1 x1510; + fiat_p384_addcarryx_u32(&x1509, &x1510, x1508, x1483, x1445); + uint32_t x1511; + fiat_p384_uint1 x1512; + fiat_p384_addcarryx_u32(&x1511, &x1512, x1510, x1485, x1447); + uint32_t x1513; + fiat_p384_uint1 x1514; + fiat_p384_addcarryx_u32(&x1513, &x1514, x1512, x1487, x1449); + uint32_t x1515; + fiat_p384_uint1 x1516; + fiat_p384_addcarryx_u32(&x1515, &x1516, x1514, x1489, x1451); + uint32_t x1517; + fiat_p384_uint1 x1518; + fiat_p384_addcarryx_u32(&x1517, &x1518, x1516, x1491, x1453); + uint32_t x1519; + fiat_p384_uint1 x1520; + fiat_p384_addcarryx_u32(&x1519, &x1520, x1518, x1493, x1455); + uint32_t x1521; + fiat_p384_uint1 x1522; + fiat_p384_addcarryx_u32(&x1521, &x1522, x1520, x1495, x1457); + uint32_t x1523; + fiat_p384_uint1 x1524; + fiat_p384_addcarryx_u32(&x1523, &x1524, x1522, x1497, x1459); + uint32_t x1525; + fiat_p384_uint1 x1526; + fiat_p384_addcarryx_u32(&x1525, &x1526, x1524, 0x0, x1460); + uint32_t x1527; + uint32_t x1528; + fiat_p384_mulx_u32(&x1527, &x1528, x11, (arg1[11])); + uint32_t x1529; + uint32_t x1530; + fiat_p384_mulx_u32(&x1529, &x1530, x11, (arg1[10])); + uint32_t x1531; + uint32_t x1532; + fiat_p384_mulx_u32(&x1531, &x1532, x11, (arg1[9])); + uint32_t x1533; + uint32_t x1534; + fiat_p384_mulx_u32(&x1533, &x1534, x11, (arg1[8])); + uint32_t x1535; + uint32_t x1536; + fiat_p384_mulx_u32(&x1535, &x1536, x11, (arg1[7])); + uint32_t x1537; + uint32_t x1538; + fiat_p384_mulx_u32(&x1537, &x1538, x11, (arg1[6])); + uint32_t x1539; + uint32_t x1540; + fiat_p384_mulx_u32(&x1539, &x1540, x11, (arg1[5])); + uint32_t x1541; + uint32_t x1542; + fiat_p384_mulx_u32(&x1541, &x1542, x11, (arg1[4])); + uint32_t x1543; + uint32_t x1544; + fiat_p384_mulx_u32(&x1543, &x1544, x11, (arg1[3])); + uint32_t x1545; + uint32_t x1546; + fiat_p384_mulx_u32(&x1545, &x1546, x11, (arg1[2])); + uint32_t x1547; + uint32_t x1548; + fiat_p384_mulx_u32(&x1547, &x1548, x11, (arg1[1])); + uint32_t x1549; + uint32_t x1550; + fiat_p384_mulx_u32(&x1549, &x1550, x11, (arg1[0])); + uint32_t x1551; + fiat_p384_uint1 x1552; + fiat_p384_addcarryx_u32(&x1551, &x1552, 0x0, x1547, x1550); + uint32_t x1553; + fiat_p384_uint1 x1554; + fiat_p384_addcarryx_u32(&x1553, &x1554, x1552, x1545, x1548); + uint32_t x1555; + fiat_p384_uint1 x1556; + fiat_p384_addcarryx_u32(&x1555, &x1556, x1554, x1543, x1546); + uint32_t x1557; + fiat_p384_uint1 x1558; + fiat_p384_addcarryx_u32(&x1557, &x1558, x1556, x1541, x1544); + uint32_t x1559; + fiat_p384_uint1 x1560; + fiat_p384_addcarryx_u32(&x1559, &x1560, x1558, x1539, x1542); + uint32_t x1561; + fiat_p384_uint1 x1562; + fiat_p384_addcarryx_u32(&x1561, &x1562, x1560, x1537, x1540); + uint32_t x1563; + fiat_p384_uint1 x1564; + fiat_p384_addcarryx_u32(&x1563, &x1564, x1562, x1535, x1538); + uint32_t x1565; + fiat_p384_uint1 x1566; + fiat_p384_addcarryx_u32(&x1565, &x1566, x1564, x1533, x1536); + uint32_t x1567; + fiat_p384_uint1 x1568; + fiat_p384_addcarryx_u32(&x1567, &x1568, x1566, x1531, x1534); + uint32_t x1569; + fiat_p384_uint1 x1570; + fiat_p384_addcarryx_u32(&x1569, &x1570, x1568, x1529, x1532); + uint32_t x1571; + fiat_p384_uint1 x1572; + fiat_p384_addcarryx_u32(&x1571, &x1572, x1570, x1527, x1530); + uint32_t x1573; + fiat_p384_uint1 x1574; + fiat_p384_addcarryx_u32(&x1573, &x1574, x1572, 0x0, x1528); + uint32_t x1575; + fiat_p384_uint1 x1576; + fiat_p384_addcarryx_u32(&x1575, &x1576, 0x0, x1549, x1501); + uint32_t x1577; + fiat_p384_uint1 x1578; + fiat_p384_addcarryx_u32(&x1577, &x1578, x1576, x1551, x1503); + uint32_t x1579; + fiat_p384_uint1 x1580; + fiat_p384_addcarryx_u32(&x1579, &x1580, x1578, x1553, x1505); + uint32_t x1581; + fiat_p384_uint1 x1582; + fiat_p384_addcarryx_u32(&x1581, &x1582, x1580, x1555, x1507); + uint32_t x1583; + fiat_p384_uint1 x1584; + fiat_p384_addcarryx_u32(&x1583, &x1584, x1582, x1557, x1509); + uint32_t x1585; + fiat_p384_uint1 x1586; + fiat_p384_addcarryx_u32(&x1585, &x1586, x1584, x1559, x1511); + uint32_t x1587; + fiat_p384_uint1 x1588; + fiat_p384_addcarryx_u32(&x1587, &x1588, x1586, x1561, x1513); + uint32_t x1589; + fiat_p384_uint1 x1590; + fiat_p384_addcarryx_u32(&x1589, &x1590, x1588, x1563, x1515); + uint32_t x1591; + fiat_p384_uint1 x1592; + fiat_p384_addcarryx_u32(&x1591, &x1592, x1590, x1565, x1517); + uint32_t x1593; + fiat_p384_uint1 x1594; + fiat_p384_addcarryx_u32(&x1593, &x1594, x1592, x1567, x1519); + uint32_t x1595; + fiat_p384_uint1 x1596; + fiat_p384_addcarryx_u32(&x1595, &x1596, x1594, x1569, x1521); + uint32_t x1597; + fiat_p384_uint1 x1598; + fiat_p384_addcarryx_u32(&x1597, &x1598, x1596, x1571, x1523); + uint32_t x1599; + fiat_p384_uint1 x1600; + fiat_p384_addcarryx_u32(&x1599, &x1600, x1598, x1573, x1525); + uint32_t x1601; + uint32_t x1602; + fiat_p384_mulx_u32(&x1601, &x1602, x1575, UINT32_C(0xffffffff)); + uint32_t x1603; + uint32_t x1604; + fiat_p384_mulx_u32(&x1603, &x1604, x1575, UINT32_C(0xffffffff)); + uint32_t x1605; + uint32_t x1606; + fiat_p384_mulx_u32(&x1605, &x1606, x1575, UINT32_C(0xffffffff)); + uint32_t x1607; + uint32_t x1608; + fiat_p384_mulx_u32(&x1607, &x1608, x1575, UINT32_C(0xffffffff)); + uint32_t x1609; + uint32_t x1610; + fiat_p384_mulx_u32(&x1609, &x1610, x1575, UINT32_C(0xffffffff)); + uint32_t x1611; + uint32_t x1612; + fiat_p384_mulx_u32(&x1611, &x1612, x1575, UINT32_C(0xffffffff)); + uint32_t x1613; + uint32_t x1614; + fiat_p384_mulx_u32(&x1613, &x1614, x1575, UINT32_C(0xffffffff)); + uint32_t x1615; + uint32_t x1616; + fiat_p384_mulx_u32(&x1615, &x1616, x1575, UINT32_C(0xfffffffe)); + uint32_t x1617; + uint32_t x1618; + fiat_p384_mulx_u32(&x1617, &x1618, x1575, UINT32_C(0xffffffff)); + uint32_t x1619; + uint32_t x1620; + fiat_p384_mulx_u32(&x1619, &x1620, x1575, UINT32_C(0xffffffff)); + uint32_t x1621; + fiat_p384_uint1 x1622; + fiat_p384_addcarryx_u32(&x1621, &x1622, 0x0, x1615, x1618); + uint32_t x1623; + fiat_p384_uint1 x1624; + fiat_p384_addcarryx_u32(&x1623, &x1624, x1622, x1613, x1616); + uint32_t x1625; + fiat_p384_uint1 x1626; + fiat_p384_addcarryx_u32(&x1625, &x1626, x1624, x1611, x1614); + uint32_t x1627; + fiat_p384_uint1 x1628; + fiat_p384_addcarryx_u32(&x1627, &x1628, x1626, x1609, x1612); + uint32_t x1629; + fiat_p384_uint1 x1630; + fiat_p384_addcarryx_u32(&x1629, &x1630, x1628, x1607, x1610); + uint32_t x1631; + fiat_p384_uint1 x1632; + fiat_p384_addcarryx_u32(&x1631, &x1632, x1630, x1605, x1608); + uint32_t x1633; + fiat_p384_uint1 x1634; + fiat_p384_addcarryx_u32(&x1633, &x1634, x1632, x1603, x1606); + uint32_t x1635; + fiat_p384_uint1 x1636; + fiat_p384_addcarryx_u32(&x1635, &x1636, x1634, x1601, x1604); + uint32_t x1637; + fiat_p384_uint1 x1638; + fiat_p384_addcarryx_u32(&x1637, &x1638, x1636, 0x0, x1602); + uint32_t x1639; + fiat_p384_uint1 x1640; + fiat_p384_addcarryx_u32(&x1639, &x1640, 0x0, x1619, x1575); + uint32_t x1641; + fiat_p384_uint1 x1642; + fiat_p384_addcarryx_u32(&x1641, &x1642, x1640, x1620, x1577); + uint32_t x1643; + fiat_p384_uint1 x1644; + fiat_p384_addcarryx_u32(&x1643, &x1644, x1642, 0x0, x1579); + uint32_t x1645; + fiat_p384_uint1 x1646; + fiat_p384_addcarryx_u32(&x1645, &x1646, x1644, x1617, x1581); + uint32_t x1647; + fiat_p384_uint1 x1648; + fiat_p384_addcarryx_u32(&x1647, &x1648, x1646, x1621, x1583); + uint32_t x1649; + fiat_p384_uint1 x1650; + fiat_p384_addcarryx_u32(&x1649, &x1650, x1648, x1623, x1585); + uint32_t x1651; + fiat_p384_uint1 x1652; + fiat_p384_addcarryx_u32(&x1651, &x1652, x1650, x1625, x1587); + uint32_t x1653; + fiat_p384_uint1 x1654; + fiat_p384_addcarryx_u32(&x1653, &x1654, x1652, x1627, x1589); + uint32_t x1655; + fiat_p384_uint1 x1656; + fiat_p384_addcarryx_u32(&x1655, &x1656, x1654, x1629, x1591); + uint32_t x1657; + fiat_p384_uint1 x1658; + fiat_p384_addcarryx_u32(&x1657, &x1658, x1656, x1631, x1593); + uint32_t x1659; + fiat_p384_uint1 x1660; + fiat_p384_addcarryx_u32(&x1659, &x1660, x1658, x1633, x1595); + uint32_t x1661; + fiat_p384_uint1 x1662; + fiat_p384_addcarryx_u32(&x1661, &x1662, x1660, x1635, x1597); + uint32_t x1663; + fiat_p384_uint1 x1664; + fiat_p384_addcarryx_u32(&x1663, &x1664, x1662, x1637, x1599); + uint32_t x1665; + fiat_p384_uint1 x1666; + fiat_p384_addcarryx_u32(&x1665, &x1666, x1664, 0x0, x1600); + uint32_t x1667; + fiat_p384_uint1 x1668; + fiat_p384_subborrowx_u32(&x1667, &x1668, 0x0, x1641, UINT32_C(0xffffffff)); + uint32_t x1669; + fiat_p384_uint1 x1670; + fiat_p384_subborrowx_u32(&x1669, &x1670, x1668, x1643, 0x0); + uint32_t x1671; + fiat_p384_uint1 x1672; + fiat_p384_subborrowx_u32(&x1671, &x1672, x1670, x1645, 0x0); + uint32_t x1673; + fiat_p384_uint1 x1674; + fiat_p384_subborrowx_u32(&x1673, &x1674, x1672, x1647, UINT32_C(0xffffffff)); + uint32_t x1675; + fiat_p384_uint1 x1676; + fiat_p384_subborrowx_u32(&x1675, &x1676, x1674, x1649, UINT32_C(0xfffffffe)); + uint32_t x1677; + fiat_p384_uint1 x1678; + fiat_p384_subborrowx_u32(&x1677, &x1678, x1676, x1651, UINT32_C(0xffffffff)); + uint32_t x1679; + fiat_p384_uint1 x1680; + fiat_p384_subborrowx_u32(&x1679, &x1680, x1678, x1653, UINT32_C(0xffffffff)); + uint32_t x1681; + fiat_p384_uint1 x1682; + fiat_p384_subborrowx_u32(&x1681, &x1682, x1680, x1655, UINT32_C(0xffffffff)); + uint32_t x1683; + fiat_p384_uint1 x1684; + fiat_p384_subborrowx_u32(&x1683, &x1684, x1682, x1657, UINT32_C(0xffffffff)); + uint32_t x1685; + fiat_p384_uint1 x1686; + fiat_p384_subborrowx_u32(&x1685, &x1686, x1684, x1659, UINT32_C(0xffffffff)); + uint32_t x1687; + fiat_p384_uint1 x1688; + fiat_p384_subborrowx_u32(&x1687, &x1688, x1686, x1661, UINT32_C(0xffffffff)); + uint32_t x1689; + fiat_p384_uint1 x1690; + fiat_p384_subborrowx_u32(&x1689, &x1690, x1688, x1663, UINT32_C(0xffffffff)); + uint32_t x1691; + fiat_p384_uint1 x1692; + fiat_p384_subborrowx_u32(&x1691, &x1692, x1690, x1665, 0x0); + uint32_t x1693; + fiat_p384_cmovznz_u32(&x1693, x1692, x1667, x1641); + uint32_t x1694; + fiat_p384_cmovznz_u32(&x1694, x1692, x1669, x1643); + uint32_t x1695; + fiat_p384_cmovznz_u32(&x1695, x1692, x1671, x1645); + uint32_t x1696; + fiat_p384_cmovznz_u32(&x1696, x1692, x1673, x1647); + uint32_t x1697; + fiat_p384_cmovznz_u32(&x1697, x1692, x1675, x1649); + uint32_t x1698; + fiat_p384_cmovznz_u32(&x1698, x1692, x1677, x1651); + uint32_t x1699; + fiat_p384_cmovznz_u32(&x1699, x1692, x1679, x1653); + uint32_t x1700; + fiat_p384_cmovznz_u32(&x1700, x1692, x1681, x1655); + uint32_t x1701; + fiat_p384_cmovznz_u32(&x1701, x1692, x1683, x1657); + uint32_t x1702; + fiat_p384_cmovznz_u32(&x1702, x1692, x1685, x1659); + uint32_t x1703; + fiat_p384_cmovznz_u32(&x1703, x1692, x1687, x1661); + uint32_t x1704; + fiat_p384_cmovznz_u32(&x1704, x1692, x1689, x1663); + out1[0] = x1693; + out1[1] = x1694; + out1[2] = x1695; + out1[3] = x1696; + out1[4] = x1697; + out1[5] = x1698; + out1[6] = x1699; + out1[7] = x1700; + out1[8] = x1701; + out1[9] = x1702; + out1[10] = x1703; + out1[11] = x1704; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_add(uint32_t out1[12], const uint32_t arg1[12], const uint32_t arg2[12]) { + uint32_t x1; + fiat_p384_uint1 x2; + fiat_p384_addcarryx_u32(&x1, &x2, 0x0, (arg2[0]), (arg1[0])); + uint32_t x3; + fiat_p384_uint1 x4; + fiat_p384_addcarryx_u32(&x3, &x4, x2, (arg2[1]), (arg1[1])); + uint32_t x5; + fiat_p384_uint1 x6; + fiat_p384_addcarryx_u32(&x5, &x6, x4, (arg2[2]), (arg1[2])); + uint32_t x7; + fiat_p384_uint1 x8; + fiat_p384_addcarryx_u32(&x7, &x8, x6, (arg2[3]), (arg1[3])); + uint32_t x9; + fiat_p384_uint1 x10; + fiat_p384_addcarryx_u32(&x9, &x10, x8, (arg2[4]), (arg1[4])); + uint32_t x11; + fiat_p384_uint1 x12; + fiat_p384_addcarryx_u32(&x11, &x12, x10, (arg2[5]), (arg1[5])); + uint32_t x13; + fiat_p384_uint1 x14; + fiat_p384_addcarryx_u32(&x13, &x14, x12, (arg2[6]), (arg1[6])); + uint32_t x15; + fiat_p384_uint1 x16; + fiat_p384_addcarryx_u32(&x15, &x16, x14, (arg2[7]), (arg1[7])); + uint32_t x17; + fiat_p384_uint1 x18; + fiat_p384_addcarryx_u32(&x17, &x18, x16, (arg2[8]), (arg1[8])); + uint32_t x19; + fiat_p384_uint1 x20; + fiat_p384_addcarryx_u32(&x19, &x20, x18, (arg2[9]), (arg1[9])); + uint32_t x21; + fiat_p384_uint1 x22; + fiat_p384_addcarryx_u32(&x21, &x22, x20, (arg2[10]), (arg1[10])); + uint32_t x23; + fiat_p384_uint1 x24; + fiat_p384_addcarryx_u32(&x23, &x24, x22, (arg2[11]), (arg1[11])); + uint32_t x25; + fiat_p384_uint1 x26; + fiat_p384_subborrowx_u32(&x25, &x26, 0x0, x1, UINT32_C(0xffffffff)); + uint32_t x27; + fiat_p384_uint1 x28; + fiat_p384_subborrowx_u32(&x27, &x28, x26, x3, 0x0); + uint32_t x29; + fiat_p384_uint1 x30; + fiat_p384_subborrowx_u32(&x29, &x30, x28, x5, 0x0); + uint32_t x31; + fiat_p384_uint1 x32; + fiat_p384_subborrowx_u32(&x31, &x32, x30, x7, UINT32_C(0xffffffff)); + uint32_t x33; + fiat_p384_uint1 x34; + fiat_p384_subborrowx_u32(&x33, &x34, x32, x9, UINT32_C(0xfffffffe)); + uint32_t x35; + fiat_p384_uint1 x36; + fiat_p384_subborrowx_u32(&x35, &x36, x34, x11, UINT32_C(0xffffffff)); + uint32_t x37; + fiat_p384_uint1 x38; + fiat_p384_subborrowx_u32(&x37, &x38, x36, x13, UINT32_C(0xffffffff)); + uint32_t x39; + fiat_p384_uint1 x40; + fiat_p384_subborrowx_u32(&x39, &x40, x38, x15, UINT32_C(0xffffffff)); + uint32_t x41; + fiat_p384_uint1 x42; + fiat_p384_subborrowx_u32(&x41, &x42, x40, x17, UINT32_C(0xffffffff)); + uint32_t x43; + fiat_p384_uint1 x44; + fiat_p384_subborrowx_u32(&x43, &x44, x42, x19, UINT32_C(0xffffffff)); + uint32_t x45; + fiat_p384_uint1 x46; + fiat_p384_subborrowx_u32(&x45, &x46, x44, x21, UINT32_C(0xffffffff)); + uint32_t x47; + fiat_p384_uint1 x48; + fiat_p384_subborrowx_u32(&x47, &x48, x46, x23, UINT32_C(0xffffffff)); + uint32_t x49; + fiat_p384_uint1 x50; + fiat_p384_subborrowx_u32(&x49, &x50, x48, x24, 0x0); + uint32_t x51; + fiat_p384_cmovznz_u32(&x51, x50, x25, x1); + uint32_t x52; + fiat_p384_cmovznz_u32(&x52, x50, x27, x3); + uint32_t x53; + fiat_p384_cmovznz_u32(&x53, x50, x29, x5); + uint32_t x54; + fiat_p384_cmovznz_u32(&x54, x50, x31, x7); + uint32_t x55; + fiat_p384_cmovznz_u32(&x55, x50, x33, x9); + uint32_t x56; + fiat_p384_cmovznz_u32(&x56, x50, x35, x11); + uint32_t x57; + fiat_p384_cmovznz_u32(&x57, x50, x37, x13); + uint32_t x58; + fiat_p384_cmovznz_u32(&x58, x50, x39, x15); + uint32_t x59; + fiat_p384_cmovznz_u32(&x59, x50, x41, x17); + uint32_t x60; + fiat_p384_cmovznz_u32(&x60, x50, x43, x19); + uint32_t x61; + fiat_p384_cmovznz_u32(&x61, x50, x45, x21); + uint32_t x62; + fiat_p384_cmovznz_u32(&x62, x50, x47, x23); + out1[0] = x51; + out1[1] = x52; + out1[2] = x53; + out1[3] = x54; + out1[4] = x55; + out1[5] = x56; + out1[6] = x57; + out1[7] = x58; + out1[8] = x59; + out1[9] = x60; + out1[10] = x61; + out1[11] = x62; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_sub(uint32_t out1[12], const uint32_t arg1[12], const uint32_t arg2[12]) { + uint32_t x1; + fiat_p384_uint1 x2; + fiat_p384_subborrowx_u32(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + uint32_t x3; + fiat_p384_uint1 x4; + fiat_p384_subborrowx_u32(&x3, &x4, x2, (arg1[1]), (arg2[1])); + uint32_t x5; + fiat_p384_uint1 x6; + fiat_p384_subborrowx_u32(&x5, &x6, x4, (arg1[2]), (arg2[2])); + uint32_t x7; + fiat_p384_uint1 x8; + fiat_p384_subborrowx_u32(&x7, &x8, x6, (arg1[3]), (arg2[3])); + uint32_t x9; + fiat_p384_uint1 x10; + fiat_p384_subborrowx_u32(&x9, &x10, x8, (arg1[4]), (arg2[4])); + uint32_t x11; + fiat_p384_uint1 x12; + fiat_p384_subborrowx_u32(&x11, &x12, x10, (arg1[5]), (arg2[5])); + uint32_t x13; + fiat_p384_uint1 x14; + fiat_p384_subborrowx_u32(&x13, &x14, x12, (arg1[6]), (arg2[6])); + uint32_t x15; + fiat_p384_uint1 x16; + fiat_p384_subborrowx_u32(&x15, &x16, x14, (arg1[7]), (arg2[7])); + uint32_t x17; + fiat_p384_uint1 x18; + fiat_p384_subborrowx_u32(&x17, &x18, x16, (arg1[8]), (arg2[8])); + uint32_t x19; + fiat_p384_uint1 x20; + fiat_p384_subborrowx_u32(&x19, &x20, x18, (arg1[9]), (arg2[9])); + uint32_t x21; + fiat_p384_uint1 x22; + fiat_p384_subborrowx_u32(&x21, &x22, x20, (arg1[10]), (arg2[10])); + uint32_t x23; + fiat_p384_uint1 x24; + fiat_p384_subborrowx_u32(&x23, &x24, x22, (arg1[11]), (arg2[11])); + uint32_t x25; + fiat_p384_cmovznz_u32(&x25, x24, 0x0, UINT32_C(0xffffffff)); + uint32_t x26; + fiat_p384_uint1 x27; + fiat_p384_addcarryx_u32(&x26, &x27, 0x0, (x25 & UINT32_C(0xffffffff)), x1); + uint32_t x28; + fiat_p384_uint1 x29; + fiat_p384_addcarryx_u32(&x28, &x29, x27, 0x0, x3); + uint32_t x30; + fiat_p384_uint1 x31; + fiat_p384_addcarryx_u32(&x30, &x31, x29, 0x0, x5); + uint32_t x32; + fiat_p384_uint1 x33; + fiat_p384_addcarryx_u32(&x32, &x33, x31, (x25 & UINT32_C(0xffffffff)), x7); + uint32_t x34; + fiat_p384_uint1 x35; + fiat_p384_addcarryx_u32(&x34, &x35, x33, (x25 & UINT32_C(0xfffffffe)), x9); + uint32_t x36; + fiat_p384_uint1 x37; + fiat_p384_addcarryx_u32(&x36, &x37, x35, (x25 & UINT32_C(0xffffffff)), x11); + uint32_t x38; + fiat_p384_uint1 x39; + fiat_p384_addcarryx_u32(&x38, &x39, x37, (x25 & UINT32_C(0xffffffff)), x13); + uint32_t x40; + fiat_p384_uint1 x41; + fiat_p384_addcarryx_u32(&x40, &x41, x39, (x25 & UINT32_C(0xffffffff)), x15); + uint32_t x42; + fiat_p384_uint1 x43; + fiat_p384_addcarryx_u32(&x42, &x43, x41, (x25 & UINT32_C(0xffffffff)), x17); + uint32_t x44; + fiat_p384_uint1 x45; + fiat_p384_addcarryx_u32(&x44, &x45, x43, (x25 & UINT32_C(0xffffffff)), x19); + uint32_t x46; + fiat_p384_uint1 x47; + fiat_p384_addcarryx_u32(&x46, &x47, x45, (x25 & UINT32_C(0xffffffff)), x21); + uint32_t x48; + fiat_p384_uint1 x49; + fiat_p384_addcarryx_u32(&x48, &x49, x47, (x25 & UINT32_C(0xffffffff)), x23); + out1[0] = x26; + out1[1] = x28; + out1[2] = x30; + out1[3] = x32; + out1[4] = x34; + out1[5] = x36; + out1[6] = x38; + out1[7] = x40; + out1[8] = x42; + out1[9] = x44; + out1[10] = x46; + out1[11] = x48; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_opp(uint32_t out1[12], const uint32_t arg1[12]) { + uint32_t x1; + fiat_p384_uint1 x2; + fiat_p384_subborrowx_u32(&x1, &x2, 0x0, 0x0, (arg1[0])); + uint32_t x3; + fiat_p384_uint1 x4; + fiat_p384_subborrowx_u32(&x3, &x4, x2, 0x0, (arg1[1])); + uint32_t x5; + fiat_p384_uint1 x6; + fiat_p384_subborrowx_u32(&x5, &x6, x4, 0x0, (arg1[2])); + uint32_t x7; + fiat_p384_uint1 x8; + fiat_p384_subborrowx_u32(&x7, &x8, x6, 0x0, (arg1[3])); + uint32_t x9; + fiat_p384_uint1 x10; + fiat_p384_subborrowx_u32(&x9, &x10, x8, 0x0, (arg1[4])); + uint32_t x11; + fiat_p384_uint1 x12; + fiat_p384_subborrowx_u32(&x11, &x12, x10, 0x0, (arg1[5])); + uint32_t x13; + fiat_p384_uint1 x14; + fiat_p384_subborrowx_u32(&x13, &x14, x12, 0x0, (arg1[6])); + uint32_t x15; + fiat_p384_uint1 x16; + fiat_p384_subborrowx_u32(&x15, &x16, x14, 0x0, (arg1[7])); + uint32_t x17; + fiat_p384_uint1 x18; + fiat_p384_subborrowx_u32(&x17, &x18, x16, 0x0, (arg1[8])); + uint32_t x19; + fiat_p384_uint1 x20; + fiat_p384_subborrowx_u32(&x19, &x20, x18, 0x0, (arg1[9])); + uint32_t x21; + fiat_p384_uint1 x22; + fiat_p384_subborrowx_u32(&x21, &x22, x20, 0x0, (arg1[10])); + uint32_t x23; + fiat_p384_uint1 x24; + fiat_p384_subborrowx_u32(&x23, &x24, x22, 0x0, (arg1[11])); + uint32_t x25; + fiat_p384_cmovznz_u32(&x25, x24, 0x0, UINT32_C(0xffffffff)); + uint32_t x26; + fiat_p384_uint1 x27; + fiat_p384_addcarryx_u32(&x26, &x27, 0x0, (x25 & UINT32_C(0xffffffff)), x1); + uint32_t x28; + fiat_p384_uint1 x29; + fiat_p384_addcarryx_u32(&x28, &x29, x27, 0x0, x3); + uint32_t x30; + fiat_p384_uint1 x31; + fiat_p384_addcarryx_u32(&x30, &x31, x29, 0x0, x5); + uint32_t x32; + fiat_p384_uint1 x33; + fiat_p384_addcarryx_u32(&x32, &x33, x31, (x25 & UINT32_C(0xffffffff)), x7); + uint32_t x34; + fiat_p384_uint1 x35; + fiat_p384_addcarryx_u32(&x34, &x35, x33, (x25 & UINT32_C(0xfffffffe)), x9); + uint32_t x36; + fiat_p384_uint1 x37; + fiat_p384_addcarryx_u32(&x36, &x37, x35, (x25 & UINT32_C(0xffffffff)), x11); + uint32_t x38; + fiat_p384_uint1 x39; + fiat_p384_addcarryx_u32(&x38, &x39, x37, (x25 & UINT32_C(0xffffffff)), x13); + uint32_t x40; + fiat_p384_uint1 x41; + fiat_p384_addcarryx_u32(&x40, &x41, x39, (x25 & UINT32_C(0xffffffff)), x15); + uint32_t x42; + fiat_p384_uint1 x43; + fiat_p384_addcarryx_u32(&x42, &x43, x41, (x25 & UINT32_C(0xffffffff)), x17); + uint32_t x44; + fiat_p384_uint1 x45; + fiat_p384_addcarryx_u32(&x44, &x45, x43, (x25 & UINT32_C(0xffffffff)), x19); + uint32_t x46; + fiat_p384_uint1 x47; + fiat_p384_addcarryx_u32(&x46, &x47, x45, (x25 & UINT32_C(0xffffffff)), x21); + uint32_t x48; + fiat_p384_uint1 x49; + fiat_p384_addcarryx_u32(&x48, &x49, x47, (x25 & UINT32_C(0xffffffff)), x23); + out1[0] = x26; + out1[1] = x28; + out1[2] = x30; + out1[3] = x32; + out1[4] = x34; + out1[5] = x36; + out1[6] = x38; + out1[7] = x40; + out1[8] = x42; + out1[9] = x44; + out1[10] = x46; + out1[11] = x48; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_from_montgomery(uint32_t out1[12], const uint32_t arg1[12]) { + uint32_t x1 = (arg1[0]); + uint32_t x2; + uint32_t x3; + fiat_p384_mulx_u32(&x2, &x3, x1, UINT32_C(0xffffffff)); + uint32_t x4; + uint32_t x5; + fiat_p384_mulx_u32(&x4, &x5, x1, UINT32_C(0xffffffff)); + uint32_t x6; + uint32_t x7; + fiat_p384_mulx_u32(&x6, &x7, x1, UINT32_C(0xffffffff)); + uint32_t x8; + uint32_t x9; + fiat_p384_mulx_u32(&x8, &x9, x1, UINT32_C(0xffffffff)); + uint32_t x10; + uint32_t x11; + fiat_p384_mulx_u32(&x10, &x11, x1, UINT32_C(0xffffffff)); + uint32_t x12; + uint32_t x13; + fiat_p384_mulx_u32(&x12, &x13, x1, UINT32_C(0xffffffff)); + uint32_t x14; + uint32_t x15; + fiat_p384_mulx_u32(&x14, &x15, x1, UINT32_C(0xffffffff)); + uint32_t x16; + uint32_t x17; + fiat_p384_mulx_u32(&x16, &x17, x1, UINT32_C(0xfffffffe)); + uint32_t x18; + uint32_t x19; + fiat_p384_mulx_u32(&x18, &x19, x1, UINT32_C(0xffffffff)); + uint32_t x20; + uint32_t x21; + fiat_p384_mulx_u32(&x20, &x21, x1, UINT32_C(0xffffffff)); + uint32_t x22; + fiat_p384_uint1 x23; + fiat_p384_addcarryx_u32(&x22, &x23, 0x0, x16, x19); + uint32_t x24; + fiat_p384_uint1 x25; + fiat_p384_addcarryx_u32(&x24, &x25, x23, x14, x17); + uint32_t x26; + fiat_p384_uint1 x27; + fiat_p384_addcarryx_u32(&x26, &x27, x25, x12, x15); + uint32_t x28; + fiat_p384_uint1 x29; + fiat_p384_addcarryx_u32(&x28, &x29, x27, x10, x13); + uint32_t x30; + fiat_p384_uint1 x31; + fiat_p384_addcarryx_u32(&x30, &x31, x29, x8, x11); + uint32_t x32; + fiat_p384_uint1 x33; + fiat_p384_addcarryx_u32(&x32, &x33, x31, x6, x9); + uint32_t x34; + fiat_p384_uint1 x35; + fiat_p384_addcarryx_u32(&x34, &x35, x33, x4, x7); + uint32_t x36; + fiat_p384_uint1 x37; + fiat_p384_addcarryx_u32(&x36, &x37, x35, x2, x5); + uint32_t x38; + fiat_p384_uint1 x39; + fiat_p384_addcarryx_u32(&x38, &x39, 0x0, x20, x1); + uint32_t x40; + fiat_p384_uint1 x41; + fiat_p384_addcarryx_u32(&x40, &x41, x39, x21, 0x0); + uint32_t x42; + fiat_p384_uint1 x43; + fiat_p384_addcarryx_u32(&x42, &x43, 0x0, (arg1[1]), x40); + uint32_t x44; + fiat_p384_uint1 x45; + fiat_p384_addcarryx_u32(&x44, &x45, x41, 0x0, 0x0); + uint32_t x46; + fiat_p384_uint1 x47; + fiat_p384_addcarryx_u32(&x46, &x47, x43, 0x0, (fiat_p384_uint1)x44); + uint32_t x48; + fiat_p384_uint1 x49; + fiat_p384_addcarryx_u32(&x48, &x49, x47, 0x0, x18); + uint32_t x50; + fiat_p384_uint1 x51; + fiat_p384_addcarryx_u32(&x50, &x51, x49, 0x0, x22); + uint32_t x52; + fiat_p384_uint1 x53; + fiat_p384_addcarryx_u32(&x52, &x53, x51, 0x0, x24); + uint32_t x54; + fiat_p384_uint1 x55; + fiat_p384_addcarryx_u32(&x54, &x55, x53, 0x0, x26); + uint32_t x56; + fiat_p384_uint1 x57; + fiat_p384_addcarryx_u32(&x56, &x57, x55, 0x0, x28); + uint32_t x58; + fiat_p384_uint1 x59; + fiat_p384_addcarryx_u32(&x58, &x59, x57, 0x0, x30); + uint32_t x60; + fiat_p384_uint1 x61; + fiat_p384_addcarryx_u32(&x60, &x61, x59, 0x0, x32); + uint32_t x62; + fiat_p384_uint1 x63; + fiat_p384_addcarryx_u32(&x62, &x63, x61, 0x0, x34); + uint32_t x64; + fiat_p384_uint1 x65; + fiat_p384_addcarryx_u32(&x64, &x65, x63, 0x0, x36); + uint32_t x66; + fiat_p384_uint1 x67; + fiat_p384_addcarryx_u32(&x66, &x67, x37, 0x0, x3); + uint32_t x68; + fiat_p384_uint1 x69; + fiat_p384_addcarryx_u32(&x68, &x69, x65, 0x0, x66); + uint32_t x70; + uint32_t x71; + fiat_p384_mulx_u32(&x70, &x71, x42, UINT32_C(0xffffffff)); + uint32_t x72; + uint32_t x73; + fiat_p384_mulx_u32(&x72, &x73, x42, UINT32_C(0xffffffff)); + uint32_t x74; + uint32_t x75; + fiat_p384_mulx_u32(&x74, &x75, x42, UINT32_C(0xffffffff)); + uint32_t x76; + uint32_t x77; + fiat_p384_mulx_u32(&x76, &x77, x42, UINT32_C(0xffffffff)); + uint32_t x78; + uint32_t x79; + fiat_p384_mulx_u32(&x78, &x79, x42, UINT32_C(0xffffffff)); + uint32_t x80; + uint32_t x81; + fiat_p384_mulx_u32(&x80, &x81, x42, UINT32_C(0xffffffff)); + uint32_t x82; + uint32_t x83; + fiat_p384_mulx_u32(&x82, &x83, x42, UINT32_C(0xffffffff)); + uint32_t x84; + uint32_t x85; + fiat_p384_mulx_u32(&x84, &x85, x42, UINT32_C(0xfffffffe)); + uint32_t x86; + uint32_t x87; + fiat_p384_mulx_u32(&x86, &x87, x42, UINT32_C(0xffffffff)); + uint32_t x88; + uint32_t x89; + fiat_p384_mulx_u32(&x88, &x89, x42, UINT32_C(0xffffffff)); + uint32_t x90; + fiat_p384_uint1 x91; + fiat_p384_addcarryx_u32(&x90, &x91, 0x0, x84, x87); + uint32_t x92; + fiat_p384_uint1 x93; + fiat_p384_addcarryx_u32(&x92, &x93, x91, x82, x85); + uint32_t x94; + fiat_p384_uint1 x95; + fiat_p384_addcarryx_u32(&x94, &x95, x93, x80, x83); + uint32_t x96; + fiat_p384_uint1 x97; + fiat_p384_addcarryx_u32(&x96, &x97, x95, x78, x81); + uint32_t x98; + fiat_p384_uint1 x99; + fiat_p384_addcarryx_u32(&x98, &x99, x97, x76, x79); + uint32_t x100; + fiat_p384_uint1 x101; + fiat_p384_addcarryx_u32(&x100, &x101, x99, x74, x77); + uint32_t x102; + fiat_p384_uint1 x103; + fiat_p384_addcarryx_u32(&x102, &x103, x101, x72, x75); + uint32_t x104; + fiat_p384_uint1 x105; + fiat_p384_addcarryx_u32(&x104, &x105, x103, x70, x73); + uint32_t x106; + fiat_p384_uint1 x107; + fiat_p384_addcarryx_u32(&x106, &x107, 0x0, x88, x42); + uint32_t x108; + fiat_p384_uint1 x109; + fiat_p384_addcarryx_u32(&x108, &x109, x107, x89, (fiat_p384_uint1)x46); + uint32_t x110; + fiat_p384_uint1 x111; + fiat_p384_addcarryx_u32(&x110, &x111, x109, 0x0, x48); + uint32_t x112; + fiat_p384_uint1 x113; + fiat_p384_addcarryx_u32(&x112, &x113, x111, x86, x50); + uint32_t x114; + fiat_p384_uint1 x115; + fiat_p384_addcarryx_u32(&x114, &x115, x113, x90, x52); + uint32_t x116; + fiat_p384_uint1 x117; + fiat_p384_addcarryx_u32(&x116, &x117, x115, x92, x54); + uint32_t x118; + fiat_p384_uint1 x119; + fiat_p384_addcarryx_u32(&x118, &x119, x117, x94, x56); + uint32_t x120; + fiat_p384_uint1 x121; + fiat_p384_addcarryx_u32(&x120, &x121, x119, x96, x58); + uint32_t x122; + fiat_p384_uint1 x123; + fiat_p384_addcarryx_u32(&x122, &x123, x121, x98, x60); + uint32_t x124; + fiat_p384_uint1 x125; + fiat_p384_addcarryx_u32(&x124, &x125, x123, x100, x62); + uint32_t x126; + fiat_p384_uint1 x127; + fiat_p384_addcarryx_u32(&x126, &x127, x125, x102, x64); + uint32_t x128; + fiat_p384_uint1 x129; + fiat_p384_addcarryx_u32(&x128, &x129, x127, x104, x68); + uint32_t x130; + fiat_p384_uint1 x131; + fiat_p384_addcarryx_u32(&x130, &x131, x69, 0x0, 0x0); + uint32_t x132; + fiat_p384_uint1 x133; + fiat_p384_addcarryx_u32(&x132, &x133, x105, 0x0, x71); + uint32_t x134; + fiat_p384_uint1 x135; + fiat_p384_addcarryx_u32(&x134, &x135, x129, x132, (fiat_p384_uint1)x130); + uint32_t x136; + fiat_p384_uint1 x137; + fiat_p384_addcarryx_u32(&x136, &x137, 0x0, (arg1[2]), x108); + uint32_t x138; + fiat_p384_uint1 x139; + fiat_p384_addcarryx_u32(&x138, &x139, x137, 0x0, x110); + uint32_t x140; + fiat_p384_uint1 x141; + fiat_p384_addcarryx_u32(&x140, &x141, x139, 0x0, x112); + uint32_t x142; + fiat_p384_uint1 x143; + fiat_p384_addcarryx_u32(&x142, &x143, x141, 0x0, x114); + uint32_t x144; + fiat_p384_uint1 x145; + fiat_p384_addcarryx_u32(&x144, &x145, x143, 0x0, x116); + uint32_t x146; + fiat_p384_uint1 x147; + fiat_p384_addcarryx_u32(&x146, &x147, x145, 0x0, x118); + uint32_t x148; + fiat_p384_uint1 x149; + fiat_p384_addcarryx_u32(&x148, &x149, x147, 0x0, x120); + uint32_t x150; + fiat_p384_uint1 x151; + fiat_p384_addcarryx_u32(&x150, &x151, x149, 0x0, x122); + uint32_t x152; + fiat_p384_uint1 x153; + fiat_p384_addcarryx_u32(&x152, &x153, x151, 0x0, x124); + uint32_t x154; + fiat_p384_uint1 x155; + fiat_p384_addcarryx_u32(&x154, &x155, x153, 0x0, x126); + uint32_t x156; + fiat_p384_uint1 x157; + fiat_p384_addcarryx_u32(&x156, &x157, x155, 0x0, x128); + uint32_t x158; + fiat_p384_uint1 x159; + fiat_p384_addcarryx_u32(&x158, &x159, x157, 0x0, x134); + uint32_t x160; + fiat_p384_uint1 x161; + fiat_p384_addcarryx_u32(&x160, &x161, x135, 0x0, 0x0); + uint32_t x162; + fiat_p384_uint1 x163; + fiat_p384_addcarryx_u32(&x162, &x163, x159, 0x0, (fiat_p384_uint1)x160); + uint32_t x164; + uint32_t x165; + fiat_p384_mulx_u32(&x164, &x165, x136, UINT32_C(0xffffffff)); + uint32_t x166; + uint32_t x167; + fiat_p384_mulx_u32(&x166, &x167, x136, UINT32_C(0xffffffff)); + uint32_t x168; + uint32_t x169; + fiat_p384_mulx_u32(&x168, &x169, x136, UINT32_C(0xffffffff)); + uint32_t x170; + uint32_t x171; + fiat_p384_mulx_u32(&x170, &x171, x136, UINT32_C(0xffffffff)); + uint32_t x172; + uint32_t x173; + fiat_p384_mulx_u32(&x172, &x173, x136, UINT32_C(0xffffffff)); + uint32_t x174; + uint32_t x175; + fiat_p384_mulx_u32(&x174, &x175, x136, UINT32_C(0xffffffff)); + uint32_t x176; + uint32_t x177; + fiat_p384_mulx_u32(&x176, &x177, x136, UINT32_C(0xffffffff)); + uint32_t x178; + uint32_t x179; + fiat_p384_mulx_u32(&x178, &x179, x136, UINT32_C(0xfffffffe)); + uint32_t x180; + uint32_t x181; + fiat_p384_mulx_u32(&x180, &x181, x136, UINT32_C(0xffffffff)); + uint32_t x182; + uint32_t x183; + fiat_p384_mulx_u32(&x182, &x183, x136, UINT32_C(0xffffffff)); + uint32_t x184; + fiat_p384_uint1 x185; + fiat_p384_addcarryx_u32(&x184, &x185, 0x0, x178, x181); + uint32_t x186; + fiat_p384_uint1 x187; + fiat_p384_addcarryx_u32(&x186, &x187, x185, x176, x179); + uint32_t x188; + fiat_p384_uint1 x189; + fiat_p384_addcarryx_u32(&x188, &x189, x187, x174, x177); + uint32_t x190; + fiat_p384_uint1 x191; + fiat_p384_addcarryx_u32(&x190, &x191, x189, x172, x175); + uint32_t x192; + fiat_p384_uint1 x193; + fiat_p384_addcarryx_u32(&x192, &x193, x191, x170, x173); + uint32_t x194; + fiat_p384_uint1 x195; + fiat_p384_addcarryx_u32(&x194, &x195, x193, x168, x171); + uint32_t x196; + fiat_p384_uint1 x197; + fiat_p384_addcarryx_u32(&x196, &x197, x195, x166, x169); + uint32_t x198; + fiat_p384_uint1 x199; + fiat_p384_addcarryx_u32(&x198, &x199, x197, x164, x167); + uint32_t x200; + fiat_p384_uint1 x201; + fiat_p384_addcarryx_u32(&x200, &x201, 0x0, x182, x136); + uint32_t x202; + fiat_p384_uint1 x203; + fiat_p384_addcarryx_u32(&x202, &x203, x201, x183, x138); + uint32_t x204; + fiat_p384_uint1 x205; + fiat_p384_addcarryx_u32(&x204, &x205, x203, 0x0, x140); + uint32_t x206; + fiat_p384_uint1 x207; + fiat_p384_addcarryx_u32(&x206, &x207, x205, x180, x142); + uint32_t x208; + fiat_p384_uint1 x209; + fiat_p384_addcarryx_u32(&x208, &x209, x207, x184, x144); + uint32_t x210; + fiat_p384_uint1 x211; + fiat_p384_addcarryx_u32(&x210, &x211, x209, x186, x146); + uint32_t x212; + fiat_p384_uint1 x213; + fiat_p384_addcarryx_u32(&x212, &x213, x211, x188, x148); + uint32_t x214; + fiat_p384_uint1 x215; + fiat_p384_addcarryx_u32(&x214, &x215, x213, x190, x150); + uint32_t x216; + fiat_p384_uint1 x217; + fiat_p384_addcarryx_u32(&x216, &x217, x215, x192, x152); + uint32_t x218; + fiat_p384_uint1 x219; + fiat_p384_addcarryx_u32(&x218, &x219, x217, x194, x154); + uint32_t x220; + fiat_p384_uint1 x221; + fiat_p384_addcarryx_u32(&x220, &x221, x219, x196, x156); + uint32_t x222; + fiat_p384_uint1 x223; + fiat_p384_addcarryx_u32(&x222, &x223, x221, x198, x158); + uint32_t x224; + fiat_p384_uint1 x225; + fiat_p384_addcarryx_u32(&x224, &x225, x199, 0x0, x165); + uint32_t x226; + fiat_p384_uint1 x227; + fiat_p384_addcarryx_u32(&x226, &x227, x223, x224, x162); + uint32_t x228; + fiat_p384_uint1 x229; + fiat_p384_addcarryx_u32(&x228, &x229, 0x0, (arg1[3]), x202); + uint32_t x230; + fiat_p384_uint1 x231; + fiat_p384_addcarryx_u32(&x230, &x231, x229, 0x0, x204); + uint32_t x232; + fiat_p384_uint1 x233; + fiat_p384_addcarryx_u32(&x232, &x233, x231, 0x0, x206); + uint32_t x234; + fiat_p384_uint1 x235; + fiat_p384_addcarryx_u32(&x234, &x235, x233, 0x0, x208); + uint32_t x236; + fiat_p384_uint1 x237; + fiat_p384_addcarryx_u32(&x236, &x237, x235, 0x0, x210); + uint32_t x238; + fiat_p384_uint1 x239; + fiat_p384_addcarryx_u32(&x238, &x239, x237, 0x0, x212); + uint32_t x240; + fiat_p384_uint1 x241; + fiat_p384_addcarryx_u32(&x240, &x241, x239, 0x0, x214); + uint32_t x242; + fiat_p384_uint1 x243; + fiat_p384_addcarryx_u32(&x242, &x243, x241, 0x0, x216); + uint32_t x244; + fiat_p384_uint1 x245; + fiat_p384_addcarryx_u32(&x244, &x245, x243, 0x0, x218); + uint32_t x246; + fiat_p384_uint1 x247; + fiat_p384_addcarryx_u32(&x246, &x247, x245, 0x0, x220); + uint32_t x248; + fiat_p384_uint1 x249; + fiat_p384_addcarryx_u32(&x248, &x249, x247, 0x0, x222); + uint32_t x250; + fiat_p384_uint1 x251; + fiat_p384_addcarryx_u32(&x250, &x251, x249, 0x0, x226); + uint32_t x252; + fiat_p384_uint1 x253; + fiat_p384_addcarryx_u32(&x252, &x253, x227, 0x0, x163); + uint32_t x254; + fiat_p384_uint1 x255; + fiat_p384_addcarryx_u32(&x254, &x255, x251, 0x0, (fiat_p384_uint1)x252); + uint32_t x256; + uint32_t x257; + fiat_p384_mulx_u32(&x256, &x257, x228, UINT32_C(0xffffffff)); + uint32_t x258; + uint32_t x259; + fiat_p384_mulx_u32(&x258, &x259, x228, UINT32_C(0xffffffff)); + uint32_t x260; + uint32_t x261; + fiat_p384_mulx_u32(&x260, &x261, x228, UINT32_C(0xffffffff)); + uint32_t x262; + uint32_t x263; + fiat_p384_mulx_u32(&x262, &x263, x228, UINT32_C(0xffffffff)); + uint32_t x264; + uint32_t x265; + fiat_p384_mulx_u32(&x264, &x265, x228, UINT32_C(0xffffffff)); + uint32_t x266; + uint32_t x267; + fiat_p384_mulx_u32(&x266, &x267, x228, UINT32_C(0xffffffff)); + uint32_t x268; + uint32_t x269; + fiat_p384_mulx_u32(&x268, &x269, x228, UINT32_C(0xffffffff)); + uint32_t x270; + uint32_t x271; + fiat_p384_mulx_u32(&x270, &x271, x228, UINT32_C(0xfffffffe)); + uint32_t x272; + uint32_t x273; + fiat_p384_mulx_u32(&x272, &x273, x228, UINT32_C(0xffffffff)); + uint32_t x274; + uint32_t x275; + fiat_p384_mulx_u32(&x274, &x275, x228, UINT32_C(0xffffffff)); + uint32_t x276; + fiat_p384_uint1 x277; + fiat_p384_addcarryx_u32(&x276, &x277, 0x0, x270, x273); + uint32_t x278; + fiat_p384_uint1 x279; + fiat_p384_addcarryx_u32(&x278, &x279, x277, x268, x271); + uint32_t x280; + fiat_p384_uint1 x281; + fiat_p384_addcarryx_u32(&x280, &x281, x279, x266, x269); + uint32_t x282; + fiat_p384_uint1 x283; + fiat_p384_addcarryx_u32(&x282, &x283, x281, x264, x267); + uint32_t x284; + fiat_p384_uint1 x285; + fiat_p384_addcarryx_u32(&x284, &x285, x283, x262, x265); + uint32_t x286; + fiat_p384_uint1 x287; + fiat_p384_addcarryx_u32(&x286, &x287, x285, x260, x263); + uint32_t x288; + fiat_p384_uint1 x289; + fiat_p384_addcarryx_u32(&x288, &x289, x287, x258, x261); + uint32_t x290; + fiat_p384_uint1 x291; + fiat_p384_addcarryx_u32(&x290, &x291, x289, x256, x259); + uint32_t x292; + fiat_p384_uint1 x293; + fiat_p384_addcarryx_u32(&x292, &x293, 0x0, x274, x228); + uint32_t x294; + fiat_p384_uint1 x295; + fiat_p384_addcarryx_u32(&x294, &x295, x293, x275, x230); + uint32_t x296; + fiat_p384_uint1 x297; + fiat_p384_addcarryx_u32(&x296, &x297, x295, 0x0, x232); + uint32_t x298; + fiat_p384_uint1 x299; + fiat_p384_addcarryx_u32(&x298, &x299, x297, x272, x234); + uint32_t x300; + fiat_p384_uint1 x301; + fiat_p384_addcarryx_u32(&x300, &x301, x299, x276, x236); + uint32_t x302; + fiat_p384_uint1 x303; + fiat_p384_addcarryx_u32(&x302, &x303, x301, x278, x238); + uint32_t x304; + fiat_p384_uint1 x305; + fiat_p384_addcarryx_u32(&x304, &x305, x303, x280, x240); + uint32_t x306; + fiat_p384_uint1 x307; + fiat_p384_addcarryx_u32(&x306, &x307, x305, x282, x242); + uint32_t x308; + fiat_p384_uint1 x309; + fiat_p384_addcarryx_u32(&x308, &x309, x307, x284, x244); + uint32_t x310; + fiat_p384_uint1 x311; + fiat_p384_addcarryx_u32(&x310, &x311, x309, x286, x246); + uint32_t x312; + fiat_p384_uint1 x313; + fiat_p384_addcarryx_u32(&x312, &x313, x311, x288, x248); + uint32_t x314; + fiat_p384_uint1 x315; + fiat_p384_addcarryx_u32(&x314, &x315, x313, x290, x250); + uint32_t x316; + fiat_p384_uint1 x317; + fiat_p384_addcarryx_u32(&x316, &x317, x291, 0x0, x257); + uint32_t x318; + fiat_p384_uint1 x319; + fiat_p384_addcarryx_u32(&x318, &x319, x315, x316, x254); + uint32_t x320; + fiat_p384_uint1 x321; + fiat_p384_addcarryx_u32(&x320, &x321, 0x0, (arg1[4]), x294); + uint32_t x322; + fiat_p384_uint1 x323; + fiat_p384_addcarryx_u32(&x322, &x323, x321, 0x0, x296); + uint32_t x324; + fiat_p384_uint1 x325; + fiat_p384_addcarryx_u32(&x324, &x325, x323, 0x0, x298); + uint32_t x326; + fiat_p384_uint1 x327; + fiat_p384_addcarryx_u32(&x326, &x327, x325, 0x0, x300); + uint32_t x328; + fiat_p384_uint1 x329; + fiat_p384_addcarryx_u32(&x328, &x329, x327, 0x0, x302); + uint32_t x330; + fiat_p384_uint1 x331; + fiat_p384_addcarryx_u32(&x330, &x331, x329, 0x0, x304); + uint32_t x332; + fiat_p384_uint1 x333; + fiat_p384_addcarryx_u32(&x332, &x333, x331, 0x0, x306); + uint32_t x334; + fiat_p384_uint1 x335; + fiat_p384_addcarryx_u32(&x334, &x335, x333, 0x0, x308); + uint32_t x336; + fiat_p384_uint1 x337; + fiat_p384_addcarryx_u32(&x336, &x337, x335, 0x0, x310); + uint32_t x338; + fiat_p384_uint1 x339; + fiat_p384_addcarryx_u32(&x338, &x339, x337, 0x0, x312); + uint32_t x340; + fiat_p384_uint1 x341; + fiat_p384_addcarryx_u32(&x340, &x341, x339, 0x0, x314); + uint32_t x342; + fiat_p384_uint1 x343; + fiat_p384_addcarryx_u32(&x342, &x343, x341, 0x0, x318); + uint32_t x344; + fiat_p384_uint1 x345; + fiat_p384_addcarryx_u32(&x344, &x345, x319, 0x0, x255); + uint32_t x346; + fiat_p384_uint1 x347; + fiat_p384_addcarryx_u32(&x346, &x347, x343, 0x0, (fiat_p384_uint1)x344); + uint32_t x348; + uint32_t x349; + fiat_p384_mulx_u32(&x348, &x349, x320, UINT32_C(0xffffffff)); + uint32_t x350; + uint32_t x351; + fiat_p384_mulx_u32(&x350, &x351, x320, UINT32_C(0xffffffff)); + uint32_t x352; + uint32_t x353; + fiat_p384_mulx_u32(&x352, &x353, x320, UINT32_C(0xffffffff)); + uint32_t x354; + uint32_t x355; + fiat_p384_mulx_u32(&x354, &x355, x320, UINT32_C(0xffffffff)); + uint32_t x356; + uint32_t x357; + fiat_p384_mulx_u32(&x356, &x357, x320, UINT32_C(0xffffffff)); + uint32_t x358; + uint32_t x359; + fiat_p384_mulx_u32(&x358, &x359, x320, UINT32_C(0xffffffff)); + uint32_t x360; + uint32_t x361; + fiat_p384_mulx_u32(&x360, &x361, x320, UINT32_C(0xffffffff)); + uint32_t x362; + uint32_t x363; + fiat_p384_mulx_u32(&x362, &x363, x320, UINT32_C(0xfffffffe)); + uint32_t x364; + uint32_t x365; + fiat_p384_mulx_u32(&x364, &x365, x320, UINT32_C(0xffffffff)); + uint32_t x366; + uint32_t x367; + fiat_p384_mulx_u32(&x366, &x367, x320, UINT32_C(0xffffffff)); + uint32_t x368; + fiat_p384_uint1 x369; + fiat_p384_addcarryx_u32(&x368, &x369, 0x0, x362, x365); + uint32_t x370; + fiat_p384_uint1 x371; + fiat_p384_addcarryx_u32(&x370, &x371, x369, x360, x363); + uint32_t x372; + fiat_p384_uint1 x373; + fiat_p384_addcarryx_u32(&x372, &x373, x371, x358, x361); + uint32_t x374; + fiat_p384_uint1 x375; + fiat_p384_addcarryx_u32(&x374, &x375, x373, x356, x359); + uint32_t x376; + fiat_p384_uint1 x377; + fiat_p384_addcarryx_u32(&x376, &x377, x375, x354, x357); + uint32_t x378; + fiat_p384_uint1 x379; + fiat_p384_addcarryx_u32(&x378, &x379, x377, x352, x355); + uint32_t x380; + fiat_p384_uint1 x381; + fiat_p384_addcarryx_u32(&x380, &x381, x379, x350, x353); + uint32_t x382; + fiat_p384_uint1 x383; + fiat_p384_addcarryx_u32(&x382, &x383, x381, x348, x351); + uint32_t x384; + fiat_p384_uint1 x385; + fiat_p384_addcarryx_u32(&x384, &x385, 0x0, x366, x320); + uint32_t x386; + fiat_p384_uint1 x387; + fiat_p384_addcarryx_u32(&x386, &x387, x385, x367, x322); + uint32_t x388; + fiat_p384_uint1 x389; + fiat_p384_addcarryx_u32(&x388, &x389, x387, 0x0, x324); + uint32_t x390; + fiat_p384_uint1 x391; + fiat_p384_addcarryx_u32(&x390, &x391, x389, x364, x326); + uint32_t x392; + fiat_p384_uint1 x393; + fiat_p384_addcarryx_u32(&x392, &x393, x391, x368, x328); + uint32_t x394; + fiat_p384_uint1 x395; + fiat_p384_addcarryx_u32(&x394, &x395, x393, x370, x330); + uint32_t x396; + fiat_p384_uint1 x397; + fiat_p384_addcarryx_u32(&x396, &x397, x395, x372, x332); + uint32_t x398; + fiat_p384_uint1 x399; + fiat_p384_addcarryx_u32(&x398, &x399, x397, x374, x334); + uint32_t x400; + fiat_p384_uint1 x401; + fiat_p384_addcarryx_u32(&x400, &x401, x399, x376, x336); + uint32_t x402; + fiat_p384_uint1 x403; + fiat_p384_addcarryx_u32(&x402, &x403, x401, x378, x338); + uint32_t x404; + fiat_p384_uint1 x405; + fiat_p384_addcarryx_u32(&x404, &x405, x403, x380, x340); + uint32_t x406; + fiat_p384_uint1 x407; + fiat_p384_addcarryx_u32(&x406, &x407, x405, x382, x342); + uint32_t x408; + fiat_p384_uint1 x409; + fiat_p384_addcarryx_u32(&x408, &x409, x383, 0x0, x349); + uint32_t x410; + fiat_p384_uint1 x411; + fiat_p384_addcarryx_u32(&x410, &x411, x407, x408, x346); + uint32_t x412; + fiat_p384_uint1 x413; + fiat_p384_addcarryx_u32(&x412, &x413, 0x0, (arg1[5]), x386); + uint32_t x414; + fiat_p384_uint1 x415; + fiat_p384_addcarryx_u32(&x414, &x415, x413, 0x0, x388); + uint32_t x416; + fiat_p384_uint1 x417; + fiat_p384_addcarryx_u32(&x416, &x417, x415, 0x0, x390); + uint32_t x418; + fiat_p384_uint1 x419; + fiat_p384_addcarryx_u32(&x418, &x419, x417, 0x0, x392); + uint32_t x420; + fiat_p384_uint1 x421; + fiat_p384_addcarryx_u32(&x420, &x421, x419, 0x0, x394); + uint32_t x422; + fiat_p384_uint1 x423; + fiat_p384_addcarryx_u32(&x422, &x423, x421, 0x0, x396); + uint32_t x424; + fiat_p384_uint1 x425; + fiat_p384_addcarryx_u32(&x424, &x425, x423, 0x0, x398); + uint32_t x426; + fiat_p384_uint1 x427; + fiat_p384_addcarryx_u32(&x426, &x427, x425, 0x0, x400); + uint32_t x428; + fiat_p384_uint1 x429; + fiat_p384_addcarryx_u32(&x428, &x429, x427, 0x0, x402); + uint32_t x430; + fiat_p384_uint1 x431; + fiat_p384_addcarryx_u32(&x430, &x431, x429, 0x0, x404); + uint32_t x432; + fiat_p384_uint1 x433; + fiat_p384_addcarryx_u32(&x432, &x433, x431, 0x0, x406); + uint32_t x434; + fiat_p384_uint1 x435; + fiat_p384_addcarryx_u32(&x434, &x435, x433, 0x0, x410); + uint32_t x436; + fiat_p384_uint1 x437; + fiat_p384_addcarryx_u32(&x436, &x437, x411, 0x0, x347); + uint32_t x438; + fiat_p384_uint1 x439; + fiat_p384_addcarryx_u32(&x438, &x439, x435, 0x0, (fiat_p384_uint1)x436); + uint32_t x440; + uint32_t x441; + fiat_p384_mulx_u32(&x440, &x441, x412, UINT32_C(0xffffffff)); + uint32_t x442; + uint32_t x443; + fiat_p384_mulx_u32(&x442, &x443, x412, UINT32_C(0xffffffff)); + uint32_t x444; + uint32_t x445; + fiat_p384_mulx_u32(&x444, &x445, x412, UINT32_C(0xffffffff)); + uint32_t x446; + uint32_t x447; + fiat_p384_mulx_u32(&x446, &x447, x412, UINT32_C(0xffffffff)); + uint32_t x448; + uint32_t x449; + fiat_p384_mulx_u32(&x448, &x449, x412, UINT32_C(0xffffffff)); + uint32_t x450; + uint32_t x451; + fiat_p384_mulx_u32(&x450, &x451, x412, UINT32_C(0xffffffff)); + uint32_t x452; + uint32_t x453; + fiat_p384_mulx_u32(&x452, &x453, x412, UINT32_C(0xffffffff)); + uint32_t x454; + uint32_t x455; + fiat_p384_mulx_u32(&x454, &x455, x412, UINT32_C(0xfffffffe)); + uint32_t x456; + uint32_t x457; + fiat_p384_mulx_u32(&x456, &x457, x412, UINT32_C(0xffffffff)); + uint32_t x458; + uint32_t x459; + fiat_p384_mulx_u32(&x458, &x459, x412, UINT32_C(0xffffffff)); + uint32_t x460; + fiat_p384_uint1 x461; + fiat_p384_addcarryx_u32(&x460, &x461, 0x0, x454, x457); + uint32_t x462; + fiat_p384_uint1 x463; + fiat_p384_addcarryx_u32(&x462, &x463, x461, x452, x455); + uint32_t x464; + fiat_p384_uint1 x465; + fiat_p384_addcarryx_u32(&x464, &x465, x463, x450, x453); + uint32_t x466; + fiat_p384_uint1 x467; + fiat_p384_addcarryx_u32(&x466, &x467, x465, x448, x451); + uint32_t x468; + fiat_p384_uint1 x469; + fiat_p384_addcarryx_u32(&x468, &x469, x467, x446, x449); + uint32_t x470; + fiat_p384_uint1 x471; + fiat_p384_addcarryx_u32(&x470, &x471, x469, x444, x447); + uint32_t x472; + fiat_p384_uint1 x473; + fiat_p384_addcarryx_u32(&x472, &x473, x471, x442, x445); + uint32_t x474; + fiat_p384_uint1 x475; + fiat_p384_addcarryx_u32(&x474, &x475, x473, x440, x443); + uint32_t x476; + fiat_p384_uint1 x477; + fiat_p384_addcarryx_u32(&x476, &x477, 0x0, x458, x412); + uint32_t x478; + fiat_p384_uint1 x479; + fiat_p384_addcarryx_u32(&x478, &x479, x477, x459, x414); + uint32_t x480; + fiat_p384_uint1 x481; + fiat_p384_addcarryx_u32(&x480, &x481, x479, 0x0, x416); + uint32_t x482; + fiat_p384_uint1 x483; + fiat_p384_addcarryx_u32(&x482, &x483, x481, x456, x418); + uint32_t x484; + fiat_p384_uint1 x485; + fiat_p384_addcarryx_u32(&x484, &x485, x483, x460, x420); + uint32_t x486; + fiat_p384_uint1 x487; + fiat_p384_addcarryx_u32(&x486, &x487, x485, x462, x422); + uint32_t x488; + fiat_p384_uint1 x489; + fiat_p384_addcarryx_u32(&x488, &x489, x487, x464, x424); + uint32_t x490; + fiat_p384_uint1 x491; + fiat_p384_addcarryx_u32(&x490, &x491, x489, x466, x426); + uint32_t x492; + fiat_p384_uint1 x493; + fiat_p384_addcarryx_u32(&x492, &x493, x491, x468, x428); + uint32_t x494; + fiat_p384_uint1 x495; + fiat_p384_addcarryx_u32(&x494, &x495, x493, x470, x430); + uint32_t x496; + fiat_p384_uint1 x497; + fiat_p384_addcarryx_u32(&x496, &x497, x495, x472, x432); + uint32_t x498; + fiat_p384_uint1 x499; + fiat_p384_addcarryx_u32(&x498, &x499, x497, x474, x434); + uint32_t x500; + fiat_p384_uint1 x501; + fiat_p384_addcarryx_u32(&x500, &x501, x475, 0x0, x441); + uint32_t x502; + fiat_p384_uint1 x503; + fiat_p384_addcarryx_u32(&x502, &x503, x499, x500, x438); + uint32_t x504; + fiat_p384_uint1 x505; + fiat_p384_addcarryx_u32(&x504, &x505, 0x0, (arg1[6]), x478); + uint32_t x506; + fiat_p384_uint1 x507; + fiat_p384_addcarryx_u32(&x506, &x507, x505, 0x0, x480); + uint32_t x508; + fiat_p384_uint1 x509; + fiat_p384_addcarryx_u32(&x508, &x509, x507, 0x0, x482); + uint32_t x510; + fiat_p384_uint1 x511; + fiat_p384_addcarryx_u32(&x510, &x511, x509, 0x0, x484); + uint32_t x512; + fiat_p384_uint1 x513; + fiat_p384_addcarryx_u32(&x512, &x513, x511, 0x0, x486); + uint32_t x514; + fiat_p384_uint1 x515; + fiat_p384_addcarryx_u32(&x514, &x515, x513, 0x0, x488); + uint32_t x516; + fiat_p384_uint1 x517; + fiat_p384_addcarryx_u32(&x516, &x517, x515, 0x0, x490); + uint32_t x518; + fiat_p384_uint1 x519; + fiat_p384_addcarryx_u32(&x518, &x519, x517, 0x0, x492); + uint32_t x520; + fiat_p384_uint1 x521; + fiat_p384_addcarryx_u32(&x520, &x521, x519, 0x0, x494); + uint32_t x522; + fiat_p384_uint1 x523; + fiat_p384_addcarryx_u32(&x522, &x523, x521, 0x0, x496); + uint32_t x524; + fiat_p384_uint1 x525; + fiat_p384_addcarryx_u32(&x524, &x525, x523, 0x0, x498); + uint32_t x526; + fiat_p384_uint1 x527; + fiat_p384_addcarryx_u32(&x526, &x527, x525, 0x0, x502); + uint32_t x528; + fiat_p384_uint1 x529; + fiat_p384_addcarryx_u32(&x528, &x529, x503, 0x0, x439); + uint32_t x530; + fiat_p384_uint1 x531; + fiat_p384_addcarryx_u32(&x530, &x531, x527, 0x0, (fiat_p384_uint1)x528); + uint32_t x532; + uint32_t x533; + fiat_p384_mulx_u32(&x532, &x533, x504, UINT32_C(0xffffffff)); + uint32_t x534; + uint32_t x535; + fiat_p384_mulx_u32(&x534, &x535, x504, UINT32_C(0xffffffff)); + uint32_t x536; + uint32_t x537; + fiat_p384_mulx_u32(&x536, &x537, x504, UINT32_C(0xffffffff)); + uint32_t x538; + uint32_t x539; + fiat_p384_mulx_u32(&x538, &x539, x504, UINT32_C(0xffffffff)); + uint32_t x540; + uint32_t x541; + fiat_p384_mulx_u32(&x540, &x541, x504, UINT32_C(0xffffffff)); + uint32_t x542; + uint32_t x543; + fiat_p384_mulx_u32(&x542, &x543, x504, UINT32_C(0xffffffff)); + uint32_t x544; + uint32_t x545; + fiat_p384_mulx_u32(&x544, &x545, x504, UINT32_C(0xffffffff)); + uint32_t x546; + uint32_t x547; + fiat_p384_mulx_u32(&x546, &x547, x504, UINT32_C(0xfffffffe)); + uint32_t x548; + uint32_t x549; + fiat_p384_mulx_u32(&x548, &x549, x504, UINT32_C(0xffffffff)); + uint32_t x550; + uint32_t x551; + fiat_p384_mulx_u32(&x550, &x551, x504, UINT32_C(0xffffffff)); + uint32_t x552; + fiat_p384_uint1 x553; + fiat_p384_addcarryx_u32(&x552, &x553, 0x0, x546, x549); + uint32_t x554; + fiat_p384_uint1 x555; + fiat_p384_addcarryx_u32(&x554, &x555, x553, x544, x547); + uint32_t x556; + fiat_p384_uint1 x557; + fiat_p384_addcarryx_u32(&x556, &x557, x555, x542, x545); + uint32_t x558; + fiat_p384_uint1 x559; + fiat_p384_addcarryx_u32(&x558, &x559, x557, x540, x543); + uint32_t x560; + fiat_p384_uint1 x561; + fiat_p384_addcarryx_u32(&x560, &x561, x559, x538, x541); + uint32_t x562; + fiat_p384_uint1 x563; + fiat_p384_addcarryx_u32(&x562, &x563, x561, x536, x539); + uint32_t x564; + fiat_p384_uint1 x565; + fiat_p384_addcarryx_u32(&x564, &x565, x563, x534, x537); + uint32_t x566; + fiat_p384_uint1 x567; + fiat_p384_addcarryx_u32(&x566, &x567, x565, x532, x535); + uint32_t x568; + fiat_p384_uint1 x569; + fiat_p384_addcarryx_u32(&x568, &x569, 0x0, x550, x504); + uint32_t x570; + fiat_p384_uint1 x571; + fiat_p384_addcarryx_u32(&x570, &x571, x569, x551, x506); + uint32_t x572; + fiat_p384_uint1 x573; + fiat_p384_addcarryx_u32(&x572, &x573, x571, 0x0, x508); + uint32_t x574; + fiat_p384_uint1 x575; + fiat_p384_addcarryx_u32(&x574, &x575, x573, x548, x510); + uint32_t x576; + fiat_p384_uint1 x577; + fiat_p384_addcarryx_u32(&x576, &x577, x575, x552, x512); + uint32_t x578; + fiat_p384_uint1 x579; + fiat_p384_addcarryx_u32(&x578, &x579, x577, x554, x514); + uint32_t x580; + fiat_p384_uint1 x581; + fiat_p384_addcarryx_u32(&x580, &x581, x579, x556, x516); + uint32_t x582; + fiat_p384_uint1 x583; + fiat_p384_addcarryx_u32(&x582, &x583, x581, x558, x518); + uint32_t x584; + fiat_p384_uint1 x585; + fiat_p384_addcarryx_u32(&x584, &x585, x583, x560, x520); + uint32_t x586; + fiat_p384_uint1 x587; + fiat_p384_addcarryx_u32(&x586, &x587, x585, x562, x522); + uint32_t x588; + fiat_p384_uint1 x589; + fiat_p384_addcarryx_u32(&x588, &x589, x587, x564, x524); + uint32_t x590; + fiat_p384_uint1 x591; + fiat_p384_addcarryx_u32(&x590, &x591, x589, x566, x526); + uint32_t x592; + fiat_p384_uint1 x593; + fiat_p384_addcarryx_u32(&x592, &x593, x567, 0x0, x533); + uint32_t x594; + fiat_p384_uint1 x595; + fiat_p384_addcarryx_u32(&x594, &x595, x591, x592, x530); + uint32_t x596; + fiat_p384_uint1 x597; + fiat_p384_addcarryx_u32(&x596, &x597, 0x0, (arg1[7]), x570); + uint32_t x598; + fiat_p384_uint1 x599; + fiat_p384_addcarryx_u32(&x598, &x599, x597, 0x0, x572); + uint32_t x600; + fiat_p384_uint1 x601; + fiat_p384_addcarryx_u32(&x600, &x601, x599, 0x0, x574); + uint32_t x602; + fiat_p384_uint1 x603; + fiat_p384_addcarryx_u32(&x602, &x603, x601, 0x0, x576); + uint32_t x604; + fiat_p384_uint1 x605; + fiat_p384_addcarryx_u32(&x604, &x605, x603, 0x0, x578); + uint32_t x606; + fiat_p384_uint1 x607; + fiat_p384_addcarryx_u32(&x606, &x607, x605, 0x0, x580); + uint32_t x608; + fiat_p384_uint1 x609; + fiat_p384_addcarryx_u32(&x608, &x609, x607, 0x0, x582); + uint32_t x610; + fiat_p384_uint1 x611; + fiat_p384_addcarryx_u32(&x610, &x611, x609, 0x0, x584); + uint32_t x612; + fiat_p384_uint1 x613; + fiat_p384_addcarryx_u32(&x612, &x613, x611, 0x0, x586); + uint32_t x614; + fiat_p384_uint1 x615; + fiat_p384_addcarryx_u32(&x614, &x615, x613, 0x0, x588); + uint32_t x616; + fiat_p384_uint1 x617; + fiat_p384_addcarryx_u32(&x616, &x617, x615, 0x0, x590); + uint32_t x618; + fiat_p384_uint1 x619; + fiat_p384_addcarryx_u32(&x618, &x619, x617, 0x0, x594); + uint32_t x620; + fiat_p384_uint1 x621; + fiat_p384_addcarryx_u32(&x620, &x621, x595, 0x0, x531); + uint32_t x622; + fiat_p384_uint1 x623; + fiat_p384_addcarryx_u32(&x622, &x623, x619, 0x0, (fiat_p384_uint1)x620); + uint32_t x624; + uint32_t x625; + fiat_p384_mulx_u32(&x624, &x625, x596, UINT32_C(0xffffffff)); + uint32_t x626; + uint32_t x627; + fiat_p384_mulx_u32(&x626, &x627, x596, UINT32_C(0xffffffff)); + uint32_t x628; + uint32_t x629; + fiat_p384_mulx_u32(&x628, &x629, x596, UINT32_C(0xffffffff)); + uint32_t x630; + uint32_t x631; + fiat_p384_mulx_u32(&x630, &x631, x596, UINT32_C(0xffffffff)); + uint32_t x632; + uint32_t x633; + fiat_p384_mulx_u32(&x632, &x633, x596, UINT32_C(0xffffffff)); + uint32_t x634; + uint32_t x635; + fiat_p384_mulx_u32(&x634, &x635, x596, UINT32_C(0xffffffff)); + uint32_t x636; + uint32_t x637; + fiat_p384_mulx_u32(&x636, &x637, x596, UINT32_C(0xffffffff)); + uint32_t x638; + uint32_t x639; + fiat_p384_mulx_u32(&x638, &x639, x596, UINT32_C(0xfffffffe)); + uint32_t x640; + uint32_t x641; + fiat_p384_mulx_u32(&x640, &x641, x596, UINT32_C(0xffffffff)); + uint32_t x642; + uint32_t x643; + fiat_p384_mulx_u32(&x642, &x643, x596, UINT32_C(0xffffffff)); + uint32_t x644; + fiat_p384_uint1 x645; + fiat_p384_addcarryx_u32(&x644, &x645, 0x0, x638, x641); + uint32_t x646; + fiat_p384_uint1 x647; + fiat_p384_addcarryx_u32(&x646, &x647, x645, x636, x639); + uint32_t x648; + fiat_p384_uint1 x649; + fiat_p384_addcarryx_u32(&x648, &x649, x647, x634, x637); + uint32_t x650; + fiat_p384_uint1 x651; + fiat_p384_addcarryx_u32(&x650, &x651, x649, x632, x635); + uint32_t x652; + fiat_p384_uint1 x653; + fiat_p384_addcarryx_u32(&x652, &x653, x651, x630, x633); + uint32_t x654; + fiat_p384_uint1 x655; + fiat_p384_addcarryx_u32(&x654, &x655, x653, x628, x631); + uint32_t x656; + fiat_p384_uint1 x657; + fiat_p384_addcarryx_u32(&x656, &x657, x655, x626, x629); + uint32_t x658; + fiat_p384_uint1 x659; + fiat_p384_addcarryx_u32(&x658, &x659, x657, x624, x627); + uint32_t x660; + fiat_p384_uint1 x661; + fiat_p384_addcarryx_u32(&x660, &x661, 0x0, x642, x596); + uint32_t x662; + fiat_p384_uint1 x663; + fiat_p384_addcarryx_u32(&x662, &x663, x661, x643, x598); + uint32_t x664; + fiat_p384_uint1 x665; + fiat_p384_addcarryx_u32(&x664, &x665, x663, 0x0, x600); + uint32_t x666; + fiat_p384_uint1 x667; + fiat_p384_addcarryx_u32(&x666, &x667, x665, x640, x602); + uint32_t x668; + fiat_p384_uint1 x669; + fiat_p384_addcarryx_u32(&x668, &x669, x667, x644, x604); + uint32_t x670; + fiat_p384_uint1 x671; + fiat_p384_addcarryx_u32(&x670, &x671, x669, x646, x606); + uint32_t x672; + fiat_p384_uint1 x673; + fiat_p384_addcarryx_u32(&x672, &x673, x671, x648, x608); + uint32_t x674; + fiat_p384_uint1 x675; + fiat_p384_addcarryx_u32(&x674, &x675, x673, x650, x610); + uint32_t x676; + fiat_p384_uint1 x677; + fiat_p384_addcarryx_u32(&x676, &x677, x675, x652, x612); + uint32_t x678; + fiat_p384_uint1 x679; + fiat_p384_addcarryx_u32(&x678, &x679, x677, x654, x614); + uint32_t x680; + fiat_p384_uint1 x681; + fiat_p384_addcarryx_u32(&x680, &x681, x679, x656, x616); + uint32_t x682; + fiat_p384_uint1 x683; + fiat_p384_addcarryx_u32(&x682, &x683, x681, x658, x618); + uint32_t x684; + fiat_p384_uint1 x685; + fiat_p384_addcarryx_u32(&x684, &x685, x659, 0x0, x625); + uint32_t x686; + fiat_p384_uint1 x687; + fiat_p384_addcarryx_u32(&x686, &x687, x683, x684, x622); + uint32_t x688; + fiat_p384_uint1 x689; + fiat_p384_addcarryx_u32(&x688, &x689, 0x0, (arg1[8]), x662); + uint32_t x690; + fiat_p384_uint1 x691; + fiat_p384_addcarryx_u32(&x690, &x691, x689, 0x0, x664); + uint32_t x692; + fiat_p384_uint1 x693; + fiat_p384_addcarryx_u32(&x692, &x693, x691, 0x0, x666); + uint32_t x694; + fiat_p384_uint1 x695; + fiat_p384_addcarryx_u32(&x694, &x695, x693, 0x0, x668); + uint32_t x696; + fiat_p384_uint1 x697; + fiat_p384_addcarryx_u32(&x696, &x697, x695, 0x0, x670); + uint32_t x698; + fiat_p384_uint1 x699; + fiat_p384_addcarryx_u32(&x698, &x699, x697, 0x0, x672); + uint32_t x700; + fiat_p384_uint1 x701; + fiat_p384_addcarryx_u32(&x700, &x701, x699, 0x0, x674); + uint32_t x702; + fiat_p384_uint1 x703; + fiat_p384_addcarryx_u32(&x702, &x703, x701, 0x0, x676); + uint32_t x704; + fiat_p384_uint1 x705; + fiat_p384_addcarryx_u32(&x704, &x705, x703, 0x0, x678); + uint32_t x706; + fiat_p384_uint1 x707; + fiat_p384_addcarryx_u32(&x706, &x707, x705, 0x0, x680); + uint32_t x708; + fiat_p384_uint1 x709; + fiat_p384_addcarryx_u32(&x708, &x709, x707, 0x0, x682); + uint32_t x710; + fiat_p384_uint1 x711; + fiat_p384_addcarryx_u32(&x710, &x711, x709, 0x0, x686); + uint32_t x712; + fiat_p384_uint1 x713; + fiat_p384_addcarryx_u32(&x712, &x713, x687, 0x0, x623); + uint32_t x714; + fiat_p384_uint1 x715; + fiat_p384_addcarryx_u32(&x714, &x715, x711, 0x0, (fiat_p384_uint1)x712); + uint32_t x716; + uint32_t x717; + fiat_p384_mulx_u32(&x716, &x717, x688, UINT32_C(0xffffffff)); + uint32_t x718; + uint32_t x719; + fiat_p384_mulx_u32(&x718, &x719, x688, UINT32_C(0xffffffff)); + uint32_t x720; + uint32_t x721; + fiat_p384_mulx_u32(&x720, &x721, x688, UINT32_C(0xffffffff)); + uint32_t x722; + uint32_t x723; + fiat_p384_mulx_u32(&x722, &x723, x688, UINT32_C(0xffffffff)); + uint32_t x724; + uint32_t x725; + fiat_p384_mulx_u32(&x724, &x725, x688, UINT32_C(0xffffffff)); + uint32_t x726; + uint32_t x727; + fiat_p384_mulx_u32(&x726, &x727, x688, UINT32_C(0xffffffff)); + uint32_t x728; + uint32_t x729; + fiat_p384_mulx_u32(&x728, &x729, x688, UINT32_C(0xffffffff)); + uint32_t x730; + uint32_t x731; + fiat_p384_mulx_u32(&x730, &x731, x688, UINT32_C(0xfffffffe)); + uint32_t x732; + uint32_t x733; + fiat_p384_mulx_u32(&x732, &x733, x688, UINT32_C(0xffffffff)); + uint32_t x734; + uint32_t x735; + fiat_p384_mulx_u32(&x734, &x735, x688, UINT32_C(0xffffffff)); + uint32_t x736; + fiat_p384_uint1 x737; + fiat_p384_addcarryx_u32(&x736, &x737, 0x0, x730, x733); + uint32_t x738; + fiat_p384_uint1 x739; + fiat_p384_addcarryx_u32(&x738, &x739, x737, x728, x731); + uint32_t x740; + fiat_p384_uint1 x741; + fiat_p384_addcarryx_u32(&x740, &x741, x739, x726, x729); + uint32_t x742; + fiat_p384_uint1 x743; + fiat_p384_addcarryx_u32(&x742, &x743, x741, x724, x727); + uint32_t x744; + fiat_p384_uint1 x745; + fiat_p384_addcarryx_u32(&x744, &x745, x743, x722, x725); + uint32_t x746; + fiat_p384_uint1 x747; + fiat_p384_addcarryx_u32(&x746, &x747, x745, x720, x723); + uint32_t x748; + fiat_p384_uint1 x749; + fiat_p384_addcarryx_u32(&x748, &x749, x747, x718, x721); + uint32_t x750; + fiat_p384_uint1 x751; + fiat_p384_addcarryx_u32(&x750, &x751, x749, x716, x719); + uint32_t x752; + fiat_p384_uint1 x753; + fiat_p384_addcarryx_u32(&x752, &x753, 0x0, x734, x688); + uint32_t x754; + fiat_p384_uint1 x755; + fiat_p384_addcarryx_u32(&x754, &x755, x753, x735, x690); + uint32_t x756; + fiat_p384_uint1 x757; + fiat_p384_addcarryx_u32(&x756, &x757, x755, 0x0, x692); + uint32_t x758; + fiat_p384_uint1 x759; + fiat_p384_addcarryx_u32(&x758, &x759, x757, x732, x694); + uint32_t x760; + fiat_p384_uint1 x761; + fiat_p384_addcarryx_u32(&x760, &x761, x759, x736, x696); + uint32_t x762; + fiat_p384_uint1 x763; + fiat_p384_addcarryx_u32(&x762, &x763, x761, x738, x698); + uint32_t x764; + fiat_p384_uint1 x765; + fiat_p384_addcarryx_u32(&x764, &x765, x763, x740, x700); + uint32_t x766; + fiat_p384_uint1 x767; + fiat_p384_addcarryx_u32(&x766, &x767, x765, x742, x702); + uint32_t x768; + fiat_p384_uint1 x769; + fiat_p384_addcarryx_u32(&x768, &x769, x767, x744, x704); + uint32_t x770; + fiat_p384_uint1 x771; + fiat_p384_addcarryx_u32(&x770, &x771, x769, x746, x706); + uint32_t x772; + fiat_p384_uint1 x773; + fiat_p384_addcarryx_u32(&x772, &x773, x771, x748, x708); + uint32_t x774; + fiat_p384_uint1 x775; + fiat_p384_addcarryx_u32(&x774, &x775, x773, x750, x710); + uint32_t x776; + fiat_p384_uint1 x777; + fiat_p384_addcarryx_u32(&x776, &x777, x751, 0x0, x717); + uint32_t x778; + fiat_p384_uint1 x779; + fiat_p384_addcarryx_u32(&x778, &x779, x775, x776, x714); + uint32_t x780; + fiat_p384_uint1 x781; + fiat_p384_addcarryx_u32(&x780, &x781, 0x0, (arg1[9]), x754); + uint32_t x782; + fiat_p384_uint1 x783; + fiat_p384_addcarryx_u32(&x782, &x783, x781, 0x0, x756); + uint32_t x784; + fiat_p384_uint1 x785; + fiat_p384_addcarryx_u32(&x784, &x785, x783, 0x0, x758); + uint32_t x786; + fiat_p384_uint1 x787; + fiat_p384_addcarryx_u32(&x786, &x787, x785, 0x0, x760); + uint32_t x788; + fiat_p384_uint1 x789; + fiat_p384_addcarryx_u32(&x788, &x789, x787, 0x0, x762); + uint32_t x790; + fiat_p384_uint1 x791; + fiat_p384_addcarryx_u32(&x790, &x791, x789, 0x0, x764); + uint32_t x792; + fiat_p384_uint1 x793; + fiat_p384_addcarryx_u32(&x792, &x793, x791, 0x0, x766); + uint32_t x794; + fiat_p384_uint1 x795; + fiat_p384_addcarryx_u32(&x794, &x795, x793, 0x0, x768); + uint32_t x796; + fiat_p384_uint1 x797; + fiat_p384_addcarryx_u32(&x796, &x797, x795, 0x0, x770); + uint32_t x798; + fiat_p384_uint1 x799; + fiat_p384_addcarryx_u32(&x798, &x799, x797, 0x0, x772); + uint32_t x800; + fiat_p384_uint1 x801; + fiat_p384_addcarryx_u32(&x800, &x801, x799, 0x0, x774); + uint32_t x802; + fiat_p384_uint1 x803; + fiat_p384_addcarryx_u32(&x802, &x803, x801, 0x0, x778); + uint32_t x804; + fiat_p384_uint1 x805; + fiat_p384_addcarryx_u32(&x804, &x805, x779, 0x0, x715); + uint32_t x806; + fiat_p384_uint1 x807; + fiat_p384_addcarryx_u32(&x806, &x807, x803, 0x0, (fiat_p384_uint1)x804); + uint32_t x808; + uint32_t x809; + fiat_p384_mulx_u32(&x808, &x809, x780, UINT32_C(0xffffffff)); + uint32_t x810; + uint32_t x811; + fiat_p384_mulx_u32(&x810, &x811, x780, UINT32_C(0xffffffff)); + uint32_t x812; + uint32_t x813; + fiat_p384_mulx_u32(&x812, &x813, x780, UINT32_C(0xffffffff)); + uint32_t x814; + uint32_t x815; + fiat_p384_mulx_u32(&x814, &x815, x780, UINT32_C(0xffffffff)); + uint32_t x816; + uint32_t x817; + fiat_p384_mulx_u32(&x816, &x817, x780, UINT32_C(0xffffffff)); + uint32_t x818; + uint32_t x819; + fiat_p384_mulx_u32(&x818, &x819, x780, UINT32_C(0xffffffff)); + uint32_t x820; + uint32_t x821; + fiat_p384_mulx_u32(&x820, &x821, x780, UINT32_C(0xffffffff)); + uint32_t x822; + uint32_t x823; + fiat_p384_mulx_u32(&x822, &x823, x780, UINT32_C(0xfffffffe)); + uint32_t x824; + uint32_t x825; + fiat_p384_mulx_u32(&x824, &x825, x780, UINT32_C(0xffffffff)); + uint32_t x826; + uint32_t x827; + fiat_p384_mulx_u32(&x826, &x827, x780, UINT32_C(0xffffffff)); + uint32_t x828; + fiat_p384_uint1 x829; + fiat_p384_addcarryx_u32(&x828, &x829, 0x0, x822, x825); + uint32_t x830; + fiat_p384_uint1 x831; + fiat_p384_addcarryx_u32(&x830, &x831, x829, x820, x823); + uint32_t x832; + fiat_p384_uint1 x833; + fiat_p384_addcarryx_u32(&x832, &x833, x831, x818, x821); + uint32_t x834; + fiat_p384_uint1 x835; + fiat_p384_addcarryx_u32(&x834, &x835, x833, x816, x819); + uint32_t x836; + fiat_p384_uint1 x837; + fiat_p384_addcarryx_u32(&x836, &x837, x835, x814, x817); + uint32_t x838; + fiat_p384_uint1 x839; + fiat_p384_addcarryx_u32(&x838, &x839, x837, x812, x815); + uint32_t x840; + fiat_p384_uint1 x841; + fiat_p384_addcarryx_u32(&x840, &x841, x839, x810, x813); + uint32_t x842; + fiat_p384_uint1 x843; + fiat_p384_addcarryx_u32(&x842, &x843, x841, x808, x811); + uint32_t x844; + fiat_p384_uint1 x845; + fiat_p384_addcarryx_u32(&x844, &x845, 0x0, x826, x780); + uint32_t x846; + fiat_p384_uint1 x847; + fiat_p384_addcarryx_u32(&x846, &x847, x845, x827, x782); + uint32_t x848; + fiat_p384_uint1 x849; + fiat_p384_addcarryx_u32(&x848, &x849, x847, 0x0, x784); + uint32_t x850; + fiat_p384_uint1 x851; + fiat_p384_addcarryx_u32(&x850, &x851, x849, x824, x786); + uint32_t x852; + fiat_p384_uint1 x853; + fiat_p384_addcarryx_u32(&x852, &x853, x851, x828, x788); + uint32_t x854; + fiat_p384_uint1 x855; + fiat_p384_addcarryx_u32(&x854, &x855, x853, x830, x790); + uint32_t x856; + fiat_p384_uint1 x857; + fiat_p384_addcarryx_u32(&x856, &x857, x855, x832, x792); + uint32_t x858; + fiat_p384_uint1 x859; + fiat_p384_addcarryx_u32(&x858, &x859, x857, x834, x794); + uint32_t x860; + fiat_p384_uint1 x861; + fiat_p384_addcarryx_u32(&x860, &x861, x859, x836, x796); + uint32_t x862; + fiat_p384_uint1 x863; + fiat_p384_addcarryx_u32(&x862, &x863, x861, x838, x798); + uint32_t x864; + fiat_p384_uint1 x865; + fiat_p384_addcarryx_u32(&x864, &x865, x863, x840, x800); + uint32_t x866; + fiat_p384_uint1 x867; + fiat_p384_addcarryx_u32(&x866, &x867, x865, x842, x802); + uint32_t x868; + fiat_p384_uint1 x869; + fiat_p384_addcarryx_u32(&x868, &x869, x843, 0x0, x809); + uint32_t x870; + fiat_p384_uint1 x871; + fiat_p384_addcarryx_u32(&x870, &x871, x867, x868, x806); + uint32_t x872; + fiat_p384_uint1 x873; + fiat_p384_addcarryx_u32(&x872, &x873, 0x0, (arg1[10]), x846); + uint32_t x874; + fiat_p384_uint1 x875; + fiat_p384_addcarryx_u32(&x874, &x875, x873, 0x0, x848); + uint32_t x876; + fiat_p384_uint1 x877; + fiat_p384_addcarryx_u32(&x876, &x877, x875, 0x0, x850); + uint32_t x878; + fiat_p384_uint1 x879; + fiat_p384_addcarryx_u32(&x878, &x879, x877, 0x0, x852); + uint32_t x880; + fiat_p384_uint1 x881; + fiat_p384_addcarryx_u32(&x880, &x881, x879, 0x0, x854); + uint32_t x882; + fiat_p384_uint1 x883; + fiat_p384_addcarryx_u32(&x882, &x883, x881, 0x0, x856); + uint32_t x884; + fiat_p384_uint1 x885; + fiat_p384_addcarryx_u32(&x884, &x885, x883, 0x0, x858); + uint32_t x886; + fiat_p384_uint1 x887; + fiat_p384_addcarryx_u32(&x886, &x887, x885, 0x0, x860); + uint32_t x888; + fiat_p384_uint1 x889; + fiat_p384_addcarryx_u32(&x888, &x889, x887, 0x0, x862); + uint32_t x890; + fiat_p384_uint1 x891; + fiat_p384_addcarryx_u32(&x890, &x891, x889, 0x0, x864); + uint32_t x892; + fiat_p384_uint1 x893; + fiat_p384_addcarryx_u32(&x892, &x893, x891, 0x0, x866); + uint32_t x894; + fiat_p384_uint1 x895; + fiat_p384_addcarryx_u32(&x894, &x895, x893, 0x0, x870); + uint32_t x896; + fiat_p384_uint1 x897; + fiat_p384_addcarryx_u32(&x896, &x897, x871, 0x0, x807); + uint32_t x898; + fiat_p384_uint1 x899; + fiat_p384_addcarryx_u32(&x898, &x899, x895, 0x0, (fiat_p384_uint1)x896); + uint32_t x900; + uint32_t x901; + fiat_p384_mulx_u32(&x900, &x901, x872, UINT32_C(0xffffffff)); + uint32_t x902; + uint32_t x903; + fiat_p384_mulx_u32(&x902, &x903, x872, UINT32_C(0xffffffff)); + uint32_t x904; + uint32_t x905; + fiat_p384_mulx_u32(&x904, &x905, x872, UINT32_C(0xffffffff)); + uint32_t x906; + uint32_t x907; + fiat_p384_mulx_u32(&x906, &x907, x872, UINT32_C(0xffffffff)); + uint32_t x908; + uint32_t x909; + fiat_p384_mulx_u32(&x908, &x909, x872, UINT32_C(0xffffffff)); + uint32_t x910; + uint32_t x911; + fiat_p384_mulx_u32(&x910, &x911, x872, UINT32_C(0xffffffff)); + uint32_t x912; + uint32_t x913; + fiat_p384_mulx_u32(&x912, &x913, x872, UINT32_C(0xffffffff)); + uint32_t x914; + uint32_t x915; + fiat_p384_mulx_u32(&x914, &x915, x872, UINT32_C(0xfffffffe)); + uint32_t x916; + uint32_t x917; + fiat_p384_mulx_u32(&x916, &x917, x872, UINT32_C(0xffffffff)); + uint32_t x918; + uint32_t x919; + fiat_p384_mulx_u32(&x918, &x919, x872, UINT32_C(0xffffffff)); + uint32_t x920; + fiat_p384_uint1 x921; + fiat_p384_addcarryx_u32(&x920, &x921, 0x0, x914, x917); + uint32_t x922; + fiat_p384_uint1 x923; + fiat_p384_addcarryx_u32(&x922, &x923, x921, x912, x915); + uint32_t x924; + fiat_p384_uint1 x925; + fiat_p384_addcarryx_u32(&x924, &x925, x923, x910, x913); + uint32_t x926; + fiat_p384_uint1 x927; + fiat_p384_addcarryx_u32(&x926, &x927, x925, x908, x911); + uint32_t x928; + fiat_p384_uint1 x929; + fiat_p384_addcarryx_u32(&x928, &x929, x927, x906, x909); + uint32_t x930; + fiat_p384_uint1 x931; + fiat_p384_addcarryx_u32(&x930, &x931, x929, x904, x907); + uint32_t x932; + fiat_p384_uint1 x933; + fiat_p384_addcarryx_u32(&x932, &x933, x931, x902, x905); + uint32_t x934; + fiat_p384_uint1 x935; + fiat_p384_addcarryx_u32(&x934, &x935, x933, x900, x903); + uint32_t x936; + fiat_p384_uint1 x937; + fiat_p384_addcarryx_u32(&x936, &x937, 0x0, x918, x872); + uint32_t x938; + fiat_p384_uint1 x939; + fiat_p384_addcarryx_u32(&x938, &x939, x937, x919, x874); + uint32_t x940; + fiat_p384_uint1 x941; + fiat_p384_addcarryx_u32(&x940, &x941, x939, 0x0, x876); + uint32_t x942; + fiat_p384_uint1 x943; + fiat_p384_addcarryx_u32(&x942, &x943, x941, x916, x878); + uint32_t x944; + fiat_p384_uint1 x945; + fiat_p384_addcarryx_u32(&x944, &x945, x943, x920, x880); + uint32_t x946; + fiat_p384_uint1 x947; + fiat_p384_addcarryx_u32(&x946, &x947, x945, x922, x882); + uint32_t x948; + fiat_p384_uint1 x949; + fiat_p384_addcarryx_u32(&x948, &x949, x947, x924, x884); + uint32_t x950; + fiat_p384_uint1 x951; + fiat_p384_addcarryx_u32(&x950, &x951, x949, x926, x886); + uint32_t x952; + fiat_p384_uint1 x953; + fiat_p384_addcarryx_u32(&x952, &x953, x951, x928, x888); + uint32_t x954; + fiat_p384_uint1 x955; + fiat_p384_addcarryx_u32(&x954, &x955, x953, x930, x890); + uint32_t x956; + fiat_p384_uint1 x957; + fiat_p384_addcarryx_u32(&x956, &x957, x955, x932, x892); + uint32_t x958; + fiat_p384_uint1 x959; + fiat_p384_addcarryx_u32(&x958, &x959, x957, x934, x894); + uint32_t x960; + fiat_p384_uint1 x961; + fiat_p384_addcarryx_u32(&x960, &x961, x935, 0x0, x901); + uint32_t x962; + fiat_p384_uint1 x963; + fiat_p384_addcarryx_u32(&x962, &x963, x959, x960, x898); + uint32_t x964; + fiat_p384_uint1 x965; + fiat_p384_addcarryx_u32(&x964, &x965, 0x0, (arg1[11]), x938); + uint32_t x966; + fiat_p384_uint1 x967; + fiat_p384_addcarryx_u32(&x966, &x967, x965, 0x0, x940); + uint32_t x968; + fiat_p384_uint1 x969; + fiat_p384_addcarryx_u32(&x968, &x969, x967, 0x0, x942); + uint32_t x970; + fiat_p384_uint1 x971; + fiat_p384_addcarryx_u32(&x970, &x971, x969, 0x0, x944); + uint32_t x972; + fiat_p384_uint1 x973; + fiat_p384_addcarryx_u32(&x972, &x973, x971, 0x0, x946); + uint32_t x974; + fiat_p384_uint1 x975; + fiat_p384_addcarryx_u32(&x974, &x975, x973, 0x0, x948); + uint32_t x976; + fiat_p384_uint1 x977; + fiat_p384_addcarryx_u32(&x976, &x977, x975, 0x0, x950); + uint32_t x978; + fiat_p384_uint1 x979; + fiat_p384_addcarryx_u32(&x978, &x979, x977, 0x0, x952); + uint32_t x980; + fiat_p384_uint1 x981; + fiat_p384_addcarryx_u32(&x980, &x981, x979, 0x0, x954); + uint32_t x982; + fiat_p384_uint1 x983; + fiat_p384_addcarryx_u32(&x982, &x983, x981, 0x0, x956); + uint32_t x984; + fiat_p384_uint1 x985; + fiat_p384_addcarryx_u32(&x984, &x985, x983, 0x0, x958); + uint32_t x986; + fiat_p384_uint1 x987; + fiat_p384_addcarryx_u32(&x986, &x987, x985, 0x0, x962); + uint32_t x988; + fiat_p384_uint1 x989; + fiat_p384_addcarryx_u32(&x988, &x989, x963, 0x0, x899); + uint32_t x990; + fiat_p384_uint1 x991; + fiat_p384_addcarryx_u32(&x990, &x991, x987, 0x0, (fiat_p384_uint1)x988); + uint32_t x992; + uint32_t x993; + fiat_p384_mulx_u32(&x992, &x993, x964, UINT32_C(0xffffffff)); + uint32_t x994; + uint32_t x995; + fiat_p384_mulx_u32(&x994, &x995, x964, UINT32_C(0xffffffff)); + uint32_t x996; + uint32_t x997; + fiat_p384_mulx_u32(&x996, &x997, x964, UINT32_C(0xffffffff)); + uint32_t x998; + uint32_t x999; + fiat_p384_mulx_u32(&x998, &x999, x964, UINT32_C(0xffffffff)); + uint32_t x1000; + uint32_t x1001; + fiat_p384_mulx_u32(&x1000, &x1001, x964, UINT32_C(0xffffffff)); + uint32_t x1002; + uint32_t x1003; + fiat_p384_mulx_u32(&x1002, &x1003, x964, UINT32_C(0xffffffff)); + uint32_t x1004; + uint32_t x1005; + fiat_p384_mulx_u32(&x1004, &x1005, x964, UINT32_C(0xffffffff)); + uint32_t x1006; + uint32_t x1007; + fiat_p384_mulx_u32(&x1006, &x1007, x964, UINT32_C(0xfffffffe)); + uint32_t x1008; + uint32_t x1009; + fiat_p384_mulx_u32(&x1008, &x1009, x964, UINT32_C(0xffffffff)); + uint32_t x1010; + uint32_t x1011; + fiat_p384_mulx_u32(&x1010, &x1011, x964, UINT32_C(0xffffffff)); + uint32_t x1012; + fiat_p384_uint1 x1013; + fiat_p384_addcarryx_u32(&x1012, &x1013, 0x0, x1006, x1009); + uint32_t x1014; + fiat_p384_uint1 x1015; + fiat_p384_addcarryx_u32(&x1014, &x1015, x1013, x1004, x1007); + uint32_t x1016; + fiat_p384_uint1 x1017; + fiat_p384_addcarryx_u32(&x1016, &x1017, x1015, x1002, x1005); + uint32_t x1018; + fiat_p384_uint1 x1019; + fiat_p384_addcarryx_u32(&x1018, &x1019, x1017, x1000, x1003); + uint32_t x1020; + fiat_p384_uint1 x1021; + fiat_p384_addcarryx_u32(&x1020, &x1021, x1019, x998, x1001); + uint32_t x1022; + fiat_p384_uint1 x1023; + fiat_p384_addcarryx_u32(&x1022, &x1023, x1021, x996, x999); + uint32_t x1024; + fiat_p384_uint1 x1025; + fiat_p384_addcarryx_u32(&x1024, &x1025, x1023, x994, x997); + uint32_t x1026; + fiat_p384_uint1 x1027; + fiat_p384_addcarryx_u32(&x1026, &x1027, x1025, x992, x995); + uint32_t x1028; + fiat_p384_uint1 x1029; + fiat_p384_addcarryx_u32(&x1028, &x1029, 0x0, x1010, x964); + uint32_t x1030; + fiat_p384_uint1 x1031; + fiat_p384_addcarryx_u32(&x1030, &x1031, x1029, x1011, x966); + uint32_t x1032; + fiat_p384_uint1 x1033; + fiat_p384_addcarryx_u32(&x1032, &x1033, x1031, 0x0, x968); + uint32_t x1034; + fiat_p384_uint1 x1035; + fiat_p384_addcarryx_u32(&x1034, &x1035, x1033, x1008, x970); + uint32_t x1036; + fiat_p384_uint1 x1037; + fiat_p384_addcarryx_u32(&x1036, &x1037, x1035, x1012, x972); + uint32_t x1038; + fiat_p384_uint1 x1039; + fiat_p384_addcarryx_u32(&x1038, &x1039, x1037, x1014, x974); + uint32_t x1040; + fiat_p384_uint1 x1041; + fiat_p384_addcarryx_u32(&x1040, &x1041, x1039, x1016, x976); + uint32_t x1042; + fiat_p384_uint1 x1043; + fiat_p384_addcarryx_u32(&x1042, &x1043, x1041, x1018, x978); + uint32_t x1044; + fiat_p384_uint1 x1045; + fiat_p384_addcarryx_u32(&x1044, &x1045, x1043, x1020, x980); + uint32_t x1046; + fiat_p384_uint1 x1047; + fiat_p384_addcarryx_u32(&x1046, &x1047, x1045, x1022, x982); + uint32_t x1048; + fiat_p384_uint1 x1049; + fiat_p384_addcarryx_u32(&x1048, &x1049, x1047, x1024, x984); + uint32_t x1050; + fiat_p384_uint1 x1051; + fiat_p384_addcarryx_u32(&x1050, &x1051, x1049, x1026, x986); + uint32_t x1052; + fiat_p384_uint1 x1053; + fiat_p384_addcarryx_u32(&x1052, &x1053, x1027, 0x0, x993); + uint32_t x1054; + fiat_p384_uint1 x1055; + fiat_p384_addcarryx_u32(&x1054, &x1055, x1051, x1052, x990); + uint32_t x1056; + fiat_p384_uint1 x1057; + fiat_p384_subborrowx_u32(&x1056, &x1057, 0x0, x1030, UINT32_C(0xffffffff)); + uint32_t x1058; + fiat_p384_uint1 x1059; + fiat_p384_subborrowx_u32(&x1058, &x1059, x1057, x1032, 0x0); + uint32_t x1060; + fiat_p384_uint1 x1061; + fiat_p384_subborrowx_u32(&x1060, &x1061, x1059, x1034, 0x0); + uint32_t x1062; + fiat_p384_uint1 x1063; + fiat_p384_subborrowx_u32(&x1062, &x1063, x1061, x1036, UINT32_C(0xffffffff)); + uint32_t x1064; + fiat_p384_uint1 x1065; + fiat_p384_subborrowx_u32(&x1064, &x1065, x1063, x1038, UINT32_C(0xfffffffe)); + uint32_t x1066; + fiat_p384_uint1 x1067; + fiat_p384_subborrowx_u32(&x1066, &x1067, x1065, x1040, UINT32_C(0xffffffff)); + uint32_t x1068; + fiat_p384_uint1 x1069; + fiat_p384_subborrowx_u32(&x1068, &x1069, x1067, x1042, UINT32_C(0xffffffff)); + uint32_t x1070; + fiat_p384_uint1 x1071; + fiat_p384_subborrowx_u32(&x1070, &x1071, x1069, x1044, UINT32_C(0xffffffff)); + uint32_t x1072; + fiat_p384_uint1 x1073; + fiat_p384_subborrowx_u32(&x1072, &x1073, x1071, x1046, UINT32_C(0xffffffff)); + uint32_t x1074; + fiat_p384_uint1 x1075; + fiat_p384_subborrowx_u32(&x1074, &x1075, x1073, x1048, UINT32_C(0xffffffff)); + uint32_t x1076; + fiat_p384_uint1 x1077; + fiat_p384_subborrowx_u32(&x1076, &x1077, x1075, x1050, UINT32_C(0xffffffff)); + uint32_t x1078; + fiat_p384_uint1 x1079; + fiat_p384_subborrowx_u32(&x1078, &x1079, x1077, x1054, UINT32_C(0xffffffff)); + uint32_t x1080; + fiat_p384_uint1 x1081; + fiat_p384_addcarryx_u32(&x1080, &x1081, x1055, 0x0, x991); + uint32_t x1082; + fiat_p384_uint1 x1083; + fiat_p384_subborrowx_u32(&x1082, &x1083, x1079, (fiat_p384_uint1)x1080, 0x0); + uint32_t x1084; + fiat_p384_cmovznz_u32(&x1084, x1083, x1056, x1030); + uint32_t x1085; + fiat_p384_cmovznz_u32(&x1085, x1083, x1058, x1032); + uint32_t x1086; + fiat_p384_cmovznz_u32(&x1086, x1083, x1060, x1034); + uint32_t x1087; + fiat_p384_cmovznz_u32(&x1087, x1083, x1062, x1036); + uint32_t x1088; + fiat_p384_cmovznz_u32(&x1088, x1083, x1064, x1038); + uint32_t x1089; + fiat_p384_cmovznz_u32(&x1089, x1083, x1066, x1040); + uint32_t x1090; + fiat_p384_cmovznz_u32(&x1090, x1083, x1068, x1042); + uint32_t x1091; + fiat_p384_cmovznz_u32(&x1091, x1083, x1070, x1044); + uint32_t x1092; + fiat_p384_cmovznz_u32(&x1092, x1083, x1072, x1046); + uint32_t x1093; + fiat_p384_cmovznz_u32(&x1093, x1083, x1074, x1048); + uint32_t x1094; + fiat_p384_cmovznz_u32(&x1094, x1083, x1076, x1050); + uint32_t x1095; + fiat_p384_cmovznz_u32(&x1095, x1083, x1078, x1054); + out1[0] = x1084; + out1[1] = x1085; + out1[2] = x1086; + out1[3] = x1087; + out1[4] = x1088; + out1[5] = x1089; + out1[6] = x1090; + out1[7] = x1091; + out1[8] = x1092; + out1[9] = x1093; + out1[10] = x1094; + out1[11] = x1095; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_p384_nonzero(uint32_t* out1, const uint32_t arg1[12]) { + uint32_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | ((arg1[8]) | ((arg1[9]) | ((arg1[10]) | ((arg1[11]) | (uint32_t)0x0)))))))))))); + *out1 = x1; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_selectznz(uint32_t out1[12], fiat_p384_uint1 arg1, const uint32_t arg2[12], const uint32_t arg3[12]) { + uint32_t x1; + fiat_p384_cmovznz_u32(&x1, arg1, (arg2[0]), (arg3[0])); + uint32_t x2; + fiat_p384_cmovznz_u32(&x2, arg1, (arg2[1]), (arg3[1])); + uint32_t x3; + fiat_p384_cmovznz_u32(&x3, arg1, (arg2[2]), (arg3[2])); + uint32_t x4; + fiat_p384_cmovznz_u32(&x4, arg1, (arg2[3]), (arg3[3])); + uint32_t x5; + fiat_p384_cmovznz_u32(&x5, arg1, (arg2[4]), (arg3[4])); + uint32_t x6; + fiat_p384_cmovznz_u32(&x6, arg1, (arg2[5]), (arg3[5])); + uint32_t x7; + fiat_p384_cmovznz_u32(&x7, arg1, (arg2[6]), (arg3[6])); + uint32_t x8; + fiat_p384_cmovznz_u32(&x8, arg1, (arg2[7]), (arg3[7])); + uint32_t x9; + fiat_p384_cmovznz_u32(&x9, arg1, (arg2[8]), (arg3[8])); + uint32_t x10; + fiat_p384_cmovznz_u32(&x10, arg1, (arg2[9]), (arg3[9])); + uint32_t x11; + fiat_p384_cmovznz_u32(&x11, arg1, (arg2[10]), (arg3[10])); + uint32_t x12; + fiat_p384_cmovznz_u32(&x12, arg1, (arg2[11]), (arg3[11])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_p384_to_bytes(uint8_t out1[48], const uint32_t arg1[12]) { + uint32_t x1 = (arg1[11]); + uint32_t x2 = (arg1[10]); + uint32_t x3 = (arg1[9]); + uint32_t x4 = (arg1[8]); + uint32_t x5 = (arg1[7]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[5]); + uint32_t x8 = (arg1[4]); + uint32_t x9 = (arg1[3]); + uint32_t x10 = (arg1[2]); + uint32_t x11 = (arg1[1]); + uint32_t x12 = (arg1[0]); + uint32_t x13 = (x12 >> 8); + uint8_t x14 = (uint8_t)(x12 & UINT8_C(0xff)); + uint32_t x15 = (x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint8_t x17 = (uint8_t)(x15 >> 8); + uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff)); + fiat_p384_uint1 x19 = (fiat_p384_uint1)(x17 >> 8); + uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff)); + uint32_t x21 = (x19 + x11); + uint32_t x22 = (x21 >> 8); + uint8_t x23 = (uint8_t)(x21 & UINT8_C(0xff)); + uint32_t x24 = (x22 >> 8); + uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); + uint8_t x26 = (uint8_t)(x24 >> 8); + uint8_t x27 = (uint8_t)(x24 & UINT8_C(0xff)); + fiat_p384_uint1 x28 = (fiat_p384_uint1)(x26 >> 8); + uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff)); + uint32_t x30 = (x28 + x10); + uint32_t x31 = (x30 >> 8); + uint8_t x32 = (uint8_t)(x30 & UINT8_C(0xff)); + uint32_t x33 = (x31 >> 8); + uint8_t x34 = (uint8_t)(x31 & UINT8_C(0xff)); + uint8_t x35 = (uint8_t)(x33 >> 8); + uint8_t x36 = (uint8_t)(x33 & UINT8_C(0xff)); + fiat_p384_uint1 x37 = (fiat_p384_uint1)(x35 >> 8); + uint8_t x38 = (uint8_t)(x35 & UINT8_C(0xff)); + uint32_t x39 = (x37 + x9); + uint32_t x40 = (x39 >> 8); + uint8_t x41 = (uint8_t)(x39 & UINT8_C(0xff)); + uint32_t x42 = (x40 >> 8); + uint8_t x43 = (uint8_t)(x40 & UINT8_C(0xff)); + uint8_t x44 = (uint8_t)(x42 >> 8); + uint8_t x45 = (uint8_t)(x42 & UINT8_C(0xff)); + fiat_p384_uint1 x46 = (fiat_p384_uint1)(x44 >> 8); + uint8_t x47 = (uint8_t)(x44 & UINT8_C(0xff)); + uint32_t x48 = (x46 + x8); + uint32_t x49 = (x48 >> 8); + uint8_t x50 = (uint8_t)(x48 & UINT8_C(0xff)); + uint32_t x51 = (x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + uint8_t x53 = (uint8_t)(x51 >> 8); + uint8_t x54 = (uint8_t)(x51 & UINT8_C(0xff)); + fiat_p384_uint1 x55 = (fiat_p384_uint1)(x53 >> 8); + uint8_t x56 = (uint8_t)(x53 & UINT8_C(0xff)); + uint32_t x57 = (x55 + x7); + uint32_t x58 = (x57 >> 8); + uint8_t x59 = (uint8_t)(x57 & UINT8_C(0xff)); + uint32_t x60 = (x58 >> 8); + uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); + uint8_t x62 = (uint8_t)(x60 >> 8); + uint8_t x63 = (uint8_t)(x60 & UINT8_C(0xff)); + fiat_p384_uint1 x64 = (fiat_p384_uint1)(x62 >> 8); + uint8_t x65 = (uint8_t)(x62 & UINT8_C(0xff)); + uint32_t x66 = (x64 + x6); + uint32_t x67 = (x66 >> 8); + uint8_t x68 = (uint8_t)(x66 & UINT8_C(0xff)); + uint32_t x69 = (x67 >> 8); + uint8_t x70 = (uint8_t)(x67 & UINT8_C(0xff)); + uint8_t x71 = (uint8_t)(x69 >> 8); + uint8_t x72 = (uint8_t)(x69 & UINT8_C(0xff)); + fiat_p384_uint1 x73 = (fiat_p384_uint1)(x71 >> 8); + uint8_t x74 = (uint8_t)(x71 & UINT8_C(0xff)); + uint32_t x75 = (x73 + x5); + uint32_t x76 = (x75 >> 8); + uint8_t x77 = (uint8_t)(x75 & UINT8_C(0xff)); + uint32_t x78 = (x76 >> 8); + uint8_t x79 = (uint8_t)(x76 & UINT8_C(0xff)); + uint8_t x80 = (uint8_t)(x78 >> 8); + uint8_t x81 = (uint8_t)(x78 & UINT8_C(0xff)); + fiat_p384_uint1 x82 = (fiat_p384_uint1)(x80 >> 8); + uint8_t x83 = (uint8_t)(x80 & UINT8_C(0xff)); + uint32_t x84 = (x82 + x4); + uint32_t x85 = (x84 >> 8); + uint8_t x86 = (uint8_t)(x84 & UINT8_C(0xff)); + uint32_t x87 = (x85 >> 8); + uint8_t x88 = (uint8_t)(x85 & UINT8_C(0xff)); + uint8_t x89 = (uint8_t)(x87 >> 8); + uint8_t x90 = (uint8_t)(x87 & UINT8_C(0xff)); + fiat_p384_uint1 x91 = (fiat_p384_uint1)(x89 >> 8); + uint8_t x92 = (uint8_t)(x89 & UINT8_C(0xff)); + uint32_t x93 = (x91 + x3); + uint32_t x94 = (x93 >> 8); + uint8_t x95 = (uint8_t)(x93 & UINT8_C(0xff)); + uint32_t x96 = (x94 >> 8); + uint8_t x97 = (uint8_t)(x94 & UINT8_C(0xff)); + uint8_t x98 = (uint8_t)(x96 >> 8); + uint8_t x99 = (uint8_t)(x96 & UINT8_C(0xff)); + fiat_p384_uint1 x100 = (fiat_p384_uint1)(x98 >> 8); + uint8_t x101 = (uint8_t)(x98 & UINT8_C(0xff)); + uint32_t x102 = (x100 + x2); + uint32_t x103 = (x102 >> 8); + uint8_t x104 = (uint8_t)(x102 & UINT8_C(0xff)); + uint32_t x105 = (x103 >> 8); + uint8_t x106 = (uint8_t)(x103 & UINT8_C(0xff)); + uint8_t x107 = (uint8_t)(x105 >> 8); + uint8_t x108 = (uint8_t)(x105 & UINT8_C(0xff)); + fiat_p384_uint1 x109 = (fiat_p384_uint1)(x107 >> 8); + uint8_t x110 = (uint8_t)(x107 & UINT8_C(0xff)); + uint32_t x111 = (x109 + x1); + uint32_t x112 = (x111 >> 8); + uint8_t x113 = (uint8_t)(x111 & UINT8_C(0xff)); + uint32_t x114 = (x112 >> 8); + uint8_t x115 = (uint8_t)(x112 & UINT8_C(0xff)); + uint8_t x116 = (uint8_t)(x114 >> 8); + uint8_t x117 = (uint8_t)(x114 & UINT8_C(0xff)); + out1[0] = x14; + out1[1] = x16; + out1[2] = x18; + out1[3] = x20; + out1[4] = x23; + out1[5] = x25; + out1[6] = x27; + out1[7] = x29; + out1[8] = x32; + out1[9] = x34; + out1[10] = x36; + out1[11] = x38; + out1[12] = x41; + out1[13] = x43; + out1[14] = x45; + out1[15] = x47; + out1[16] = x50; + out1[17] = x52; + out1[18] = x54; + out1[19] = x56; + out1[20] = x59; + out1[21] = x61; + out1[22] = x63; + out1[23] = x65; + out1[24] = x68; + out1[25] = x70; + out1[26] = x72; + out1[27] = x74; + out1[28] = x77; + out1[29] = x79; + out1[30] = x81; + out1[31] = x83; + out1[32] = x86; + out1[33] = x88; + out1[34] = x90; + out1[35] = x92; + out1[36] = x95; + out1[37] = x97; + out1[38] = x99; + out1[39] = x101; + out1[40] = x104; + out1[41] = x106; + out1[42] = x108; + out1[43] = x110; + out1[44] = x113; + out1[45] = x115; + out1[46] = x117; + out1[47] = x116; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p384_from_bytes(uint32_t out1[12], const uint8_t arg1[48]) { + uint32_t x1 = ((uint32_t)(arg1[47]) << 24); + uint32_t x2 = ((uint32_t)(arg1[46]) << 16); + uint32_t x3 = ((uint32_t)(arg1[45]) << 8); + uint8_t x4 = (arg1[44]); + uint32_t x5 = ((uint32_t)(arg1[43]) << 24); + uint32_t x6 = ((uint32_t)(arg1[42]) << 16); + uint32_t x7 = ((uint32_t)(arg1[41]) << 8); + uint8_t x8 = (arg1[40]); + uint32_t x9 = ((uint32_t)(arg1[39]) << 24); + uint32_t x10 = ((uint32_t)(arg1[38]) << 16); + uint32_t x11 = ((uint32_t)(arg1[37]) << 8); + uint8_t x12 = (arg1[36]); + uint32_t x13 = ((uint32_t)(arg1[35]) << 24); + uint32_t x14 = ((uint32_t)(arg1[34]) << 16); + uint32_t x15 = ((uint32_t)(arg1[33]) << 8); + uint8_t x16 = (arg1[32]); + uint32_t x17 = ((uint32_t)(arg1[31]) << 24); + uint32_t x18 = ((uint32_t)(arg1[30]) << 16); + uint32_t x19 = ((uint32_t)(arg1[29]) << 8); + uint8_t x20 = (arg1[28]); + uint32_t x21 = ((uint32_t)(arg1[27]) << 24); + uint32_t x22 = ((uint32_t)(arg1[26]) << 16); + uint32_t x23 = ((uint32_t)(arg1[25]) << 8); + uint8_t x24 = (arg1[24]); + uint32_t x25 = ((uint32_t)(arg1[23]) << 24); + uint32_t x26 = ((uint32_t)(arg1[22]) << 16); + uint32_t x27 = ((uint32_t)(arg1[21]) << 8); + uint8_t x28 = (arg1[20]); + uint32_t x29 = ((uint32_t)(arg1[19]) << 24); + uint32_t x30 = ((uint32_t)(arg1[18]) << 16); + uint32_t x31 = ((uint32_t)(arg1[17]) << 8); + uint8_t x32 = (arg1[16]); + uint32_t x33 = ((uint32_t)(arg1[15]) << 24); + uint32_t x34 = ((uint32_t)(arg1[14]) << 16); + uint32_t x35 = ((uint32_t)(arg1[13]) << 8); + uint8_t x36 = (arg1[12]); + uint32_t x37 = ((uint32_t)(arg1[11]) << 24); + uint32_t x38 = ((uint32_t)(arg1[10]) << 16); + uint32_t x39 = ((uint32_t)(arg1[9]) << 8); + uint8_t x40 = (arg1[8]); + uint32_t x41 = ((uint32_t)(arg1[7]) << 24); + uint32_t x42 = ((uint32_t)(arg1[6]) << 16); + uint32_t x43 = ((uint32_t)(arg1[5]) << 8); + uint8_t x44 = (arg1[4]); + uint32_t x45 = ((uint32_t)(arg1[3]) << 24); + uint32_t x46 = ((uint32_t)(arg1[2]) << 16); + uint32_t x47 = ((uint32_t)(arg1[1]) << 8); + uint8_t x48 = (arg1[0]); + uint32_t x49 = (x48 + (x47 + (x46 + x45))); + fiat_p384_uint1 x50 = (fiat_p384_uint1)((uint64_t)x49 >> 32); + uint32_t x51 = (x49 & UINT32_C(0xffffffff)); + uint32_t x52 = (x4 + (x3 + (x2 + x1))); + uint32_t x53 = (x8 + (x7 + (x6 + x5))); + uint32_t x54 = (x12 + (x11 + (x10 + x9))); + uint32_t x55 = (x16 + (x15 + (x14 + x13))); + uint32_t x56 = (x20 + (x19 + (x18 + x17))); + uint32_t x57 = (x24 + (x23 + (x22 + x21))); + uint32_t x58 = (x28 + (x27 + (x26 + x25))); + uint32_t x59 = (x32 + (x31 + (x30 + x29))); + uint32_t x60 = (x36 + (x35 + (x34 + x33))); + uint32_t x61 = (x40 + (x39 + (x38 + x37))); + uint32_t x62 = (x44 + (x43 + (x42 + x41))); + uint32_t x63 = (x50 + x62); + fiat_p384_uint1 x64 = (fiat_p384_uint1)((uint64_t)x63 >> 32); + uint32_t x65 = (x63 & UINT32_C(0xffffffff)); + uint32_t x66 = (x64 + x61); + fiat_p384_uint1 x67 = (fiat_p384_uint1)((uint64_t)x66 >> 32); + uint32_t x68 = (x66 & UINT32_C(0xffffffff)); + uint32_t x69 = (x67 + x60); + fiat_p384_uint1 x70 = (fiat_p384_uint1)((uint64_t)x69 >> 32); + uint32_t x71 = (x69 & UINT32_C(0xffffffff)); + uint32_t x72 = (x70 + x59); + fiat_p384_uint1 x73 = (fiat_p384_uint1)((uint64_t)x72 >> 32); + uint32_t x74 = (x72 & UINT32_C(0xffffffff)); + uint32_t x75 = (x73 + x58); + fiat_p384_uint1 x76 = (fiat_p384_uint1)((uint64_t)x75 >> 32); + uint32_t x77 = (x75 & UINT32_C(0xffffffff)); + uint32_t x78 = (x76 + x57); + fiat_p384_uint1 x79 = (fiat_p384_uint1)((uint64_t)x78 >> 32); + uint32_t x80 = (x78 & UINT32_C(0xffffffff)); + uint32_t x81 = (x79 + x56); + fiat_p384_uint1 x82 = (fiat_p384_uint1)((uint64_t)x81 >> 32); + uint32_t x83 = (x81 & UINT32_C(0xffffffff)); + uint32_t x84 = (x82 + x55); + fiat_p384_uint1 x85 = (fiat_p384_uint1)((uint64_t)x84 >> 32); + uint32_t x86 = (x84 & UINT32_C(0xffffffff)); + uint32_t x87 = (x85 + x54); + fiat_p384_uint1 x88 = (fiat_p384_uint1)((uint64_t)x87 >> 32); + uint32_t x89 = (x87 & UINT32_C(0xffffffff)); + uint32_t x90 = (x88 + x53); + fiat_p384_uint1 x91 = (fiat_p384_uint1)((uint64_t)x90 >> 32); + uint32_t x92 = (x90 & UINT32_C(0xffffffff)); + uint32_t x93 = (x91 + x52); + out1[0] = x51; + out1[1] = x65; + out1[2] = x68; + out1[3] = x71; + out1[4] = x74; + out1[5] = x77; + out1[6] = x80; + out1[7] = x83; + out1[8] = x86; + out1[9] = x89; + out1[10] = x92; + out1[11] = x93; +} + diff --git a/p384_64.c b/p384_64.c new file mode 100644 index 000000000..accfa964a --- /dev/null +++ b/p384_64.c @@ -0,0 +1,2585 @@ +/* Autogenerated */ +/* curve description: p384 */ +/* requested operations: (all) */ +/* s = 0x1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (from "2^384") */ +/* c = [(340282366920938463463374607431768211456, 1), (79228162514264337593543950336, 1), (4294967296, -1), (1, 1)] (from "2^128,1;2^96,1;2^32,-1;1,1") */ +/* machine_wordsize = 64 (from "64") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ + +#include <stdint.h> +typedef unsigned char fiat_p384_uint1; +typedef signed char fiat_p384_int1; +typedef signed __int128 fiat_p384_int128; +typedef unsigned __int128 fiat_p384_uint128; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p384_addcarryx_u64(uint64_t* out1, fiat_p384_uint1* out2, fiat_p384_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p384_uint128 x1 = ((arg1 + (fiat_p384_uint128)arg2) + arg3); + uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + fiat_p384_uint1 x3 = (fiat_p384_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p384_subborrowx_u64(uint64_t* out1, fiat_p384_uint1* out2, fiat_p384_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p384_int128 x1 = ((arg2 - (fiat_p384_int128)arg1) - arg3); + fiat_p384_int1 x2 = (fiat_p384_int1)((fiat_p384_uint128)x1 >> 64); + uint64_t x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_p384_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p384_mulx_u64(uint64_t* out1, uint64_t* out2, uint64_t arg1, uint64_t arg2) { + fiat_p384_uint128 x1 = ((fiat_p384_uint128)arg1 * arg2); + uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p384_cmovznz_u64(uint64_t* out1, fiat_p384_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p384_uint1 x1 = (!(!arg1)); + uint64_t x2 = ((fiat_p384_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = ((x2 & arg3) | (uint64_t)((fiat_p384_uint128)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_mul(uint64_t out1[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + uint64_t x1 = (arg1[1]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[4]); + uint64_t x5 = (arg1[5]); + uint64_t x6 = (arg1[0]); + uint64_t x7; + uint64_t x8; + fiat_p384_mulx_u64(&x7, &x8, x6, (arg2[5])); + uint64_t x9; + uint64_t x10; + fiat_p384_mulx_u64(&x9, &x10, x6, (arg2[4])); + uint64_t x11; + uint64_t x12; + fiat_p384_mulx_u64(&x11, &x12, x6, (arg2[3])); + uint64_t x13; + uint64_t x14; + fiat_p384_mulx_u64(&x13, &x14, x6, (arg2[2])); + uint64_t x15; + uint64_t x16; + fiat_p384_mulx_u64(&x15, &x16, x6, (arg2[1])); + uint64_t x17; + uint64_t x18; + fiat_p384_mulx_u64(&x17, &x18, x6, (arg2[0])); + uint64_t x19; + fiat_p384_uint1 x20; + fiat_p384_addcarryx_u64(&x19, &x20, 0x0, x15, x18); + uint64_t x21; + fiat_p384_uint1 x22; + fiat_p384_addcarryx_u64(&x21, &x22, x20, x13, x16); + uint64_t x23; + fiat_p384_uint1 x24; + fiat_p384_addcarryx_u64(&x23, &x24, x22, x11, x14); + uint64_t x25; + fiat_p384_uint1 x26; + fiat_p384_addcarryx_u64(&x25, &x26, x24, x9, x12); + uint64_t x27; + fiat_p384_uint1 x28; + fiat_p384_addcarryx_u64(&x27, &x28, x26, x7, x10); + uint64_t x29; + fiat_p384_uint1 x30; + fiat_p384_addcarryx_u64(&x29, &x30, x28, 0x0, x8); + uint64_t x31; + uint64_t x32; + fiat_p384_mulx_u64(&x31, &x32, x17, UINT64_C(0x100000001)); + uint64_t x33; + uint64_t x34; + fiat_p384_mulx_u64(&x33, &x34, x31, UINT64_C(0xffffffffffffffff)); + uint64_t x35; + uint64_t x36; + fiat_p384_mulx_u64(&x35, &x36, x31, UINT64_C(0xffffffffffffffff)); + uint64_t x37; + uint64_t x38; + fiat_p384_mulx_u64(&x37, &x38, x31, UINT64_C(0xffffffffffffffff)); + uint64_t x39; + uint64_t x40; + fiat_p384_mulx_u64(&x39, &x40, x31, UINT64_C(0xfffffffffffffffe)); + uint64_t x41; + uint64_t x42; + fiat_p384_mulx_u64(&x41, &x42, x31, UINT64_C(0xffffffff00000000)); + uint64_t x43; + uint64_t x44; + fiat_p384_mulx_u64(&x43, &x44, x31, UINT32_C(0xffffffff)); + uint64_t x45; + fiat_p384_uint1 x46; + fiat_p384_addcarryx_u64(&x45, &x46, 0x0, x41, x44); + uint64_t x47; + fiat_p384_uint1 x48; + fiat_p384_addcarryx_u64(&x47, &x48, x46, x39, x42); + uint64_t x49; + fiat_p384_uint1 x50; + fiat_p384_addcarryx_u64(&x49, &x50, x48, x37, x40); + uint64_t x51; + fiat_p384_uint1 x52; + fiat_p384_addcarryx_u64(&x51, &x52, x50, x35, x38); + uint64_t x53; + fiat_p384_uint1 x54; + fiat_p384_addcarryx_u64(&x53, &x54, x52, x33, x36); + uint64_t x55; + fiat_p384_uint1 x56; + fiat_p384_addcarryx_u64(&x55, &x56, x54, 0x0, x34); + uint64_t x57; + fiat_p384_uint1 x58; + fiat_p384_addcarryx_u64(&x57, &x58, 0x0, x43, x17); + uint64_t x59; + fiat_p384_uint1 x60; + fiat_p384_addcarryx_u64(&x59, &x60, x58, x45, x19); + uint64_t x61; + fiat_p384_uint1 x62; + fiat_p384_addcarryx_u64(&x61, &x62, x60, x47, x21); + uint64_t x63; + fiat_p384_uint1 x64; + fiat_p384_addcarryx_u64(&x63, &x64, x62, x49, x23); + uint64_t x65; + fiat_p384_uint1 x66; + fiat_p384_addcarryx_u64(&x65, &x66, x64, x51, x25); + uint64_t x67; + fiat_p384_uint1 x68; + fiat_p384_addcarryx_u64(&x67, &x68, x66, x53, x27); + uint64_t x69; + fiat_p384_uint1 x70; + fiat_p384_addcarryx_u64(&x69, &x70, x68, x55, x29); + uint64_t x71; + fiat_p384_uint1 x72; + fiat_p384_addcarryx_u64(&x71, &x72, x70, 0x0, 0x0); + uint64_t x73; + uint64_t x74; + fiat_p384_mulx_u64(&x73, &x74, x1, (arg2[5])); + uint64_t x75; + uint64_t x76; + fiat_p384_mulx_u64(&x75, &x76, x1, (arg2[4])); + uint64_t x77; + uint64_t x78; + fiat_p384_mulx_u64(&x77, &x78, x1, (arg2[3])); + uint64_t x79; + uint64_t x80; + fiat_p384_mulx_u64(&x79, &x80, x1, (arg2[2])); + uint64_t x81; + uint64_t x82; + fiat_p384_mulx_u64(&x81, &x82, x1, (arg2[1])); + uint64_t x83; + uint64_t x84; + fiat_p384_mulx_u64(&x83, &x84, x1, (arg2[0])); + uint64_t x85; + fiat_p384_uint1 x86; + fiat_p384_addcarryx_u64(&x85, &x86, 0x0, x81, x84); + uint64_t x87; + fiat_p384_uint1 x88; + fiat_p384_addcarryx_u64(&x87, &x88, x86, x79, x82); + uint64_t x89; + fiat_p384_uint1 x90; + fiat_p384_addcarryx_u64(&x89, &x90, x88, x77, x80); + uint64_t x91; + fiat_p384_uint1 x92; + fiat_p384_addcarryx_u64(&x91, &x92, x90, x75, x78); + uint64_t x93; + fiat_p384_uint1 x94; + fiat_p384_addcarryx_u64(&x93, &x94, x92, x73, x76); + uint64_t x95; + fiat_p384_uint1 x96; + fiat_p384_addcarryx_u64(&x95, &x96, x94, 0x0, x74); + uint64_t x97; + fiat_p384_uint1 x98; + fiat_p384_addcarryx_u64(&x97, &x98, 0x0, x83, x59); + uint64_t x99; + fiat_p384_uint1 x100; + fiat_p384_addcarryx_u64(&x99, &x100, x98, x85, x61); + uint64_t x101; + fiat_p384_uint1 x102; + fiat_p384_addcarryx_u64(&x101, &x102, x100, x87, x63); + uint64_t x103; + fiat_p384_uint1 x104; + fiat_p384_addcarryx_u64(&x103, &x104, x102, x89, x65); + uint64_t x105; + fiat_p384_uint1 x106; + fiat_p384_addcarryx_u64(&x105, &x106, x104, x91, x67); + uint64_t x107; + fiat_p384_uint1 x108; + fiat_p384_addcarryx_u64(&x107, &x108, x106, x93, x69); + uint64_t x109; + fiat_p384_uint1 x110; + fiat_p384_addcarryx_u64(&x109, &x110, x108, x95, (fiat_p384_uint1)x71); + uint64_t x111; + uint64_t x112; + fiat_p384_mulx_u64(&x111, &x112, x97, UINT64_C(0x100000001)); + uint64_t x113; + uint64_t x114; + fiat_p384_mulx_u64(&x113, &x114, x111, UINT64_C(0xffffffffffffffff)); + uint64_t x115; + uint64_t x116; + fiat_p384_mulx_u64(&x115, &x116, x111, UINT64_C(0xffffffffffffffff)); + uint64_t x117; + uint64_t x118; + fiat_p384_mulx_u64(&x117, &x118, x111, UINT64_C(0xffffffffffffffff)); + uint64_t x119; + uint64_t x120; + fiat_p384_mulx_u64(&x119, &x120, x111, UINT64_C(0xfffffffffffffffe)); + uint64_t x121; + uint64_t x122; + fiat_p384_mulx_u64(&x121, &x122, x111, UINT64_C(0xffffffff00000000)); + uint64_t x123; + uint64_t x124; + fiat_p384_mulx_u64(&x123, &x124, x111, UINT32_C(0xffffffff)); + uint64_t x125; + fiat_p384_uint1 x126; + fiat_p384_addcarryx_u64(&x125, &x126, 0x0, x121, x124); + uint64_t x127; + fiat_p384_uint1 x128; + fiat_p384_addcarryx_u64(&x127, &x128, x126, x119, x122); + uint64_t x129; + fiat_p384_uint1 x130; + fiat_p384_addcarryx_u64(&x129, &x130, x128, x117, x120); + uint64_t x131; + fiat_p384_uint1 x132; + fiat_p384_addcarryx_u64(&x131, &x132, x130, x115, x118); + uint64_t x133; + fiat_p384_uint1 x134; + fiat_p384_addcarryx_u64(&x133, &x134, x132, x113, x116); + uint64_t x135; + fiat_p384_uint1 x136; + fiat_p384_addcarryx_u64(&x135, &x136, x134, 0x0, x114); + uint64_t x137; + fiat_p384_uint1 x138; + fiat_p384_addcarryx_u64(&x137, &x138, 0x0, x123, x97); + uint64_t x139; + fiat_p384_uint1 x140; + fiat_p384_addcarryx_u64(&x139, &x140, x138, x125, x99); + uint64_t x141; + fiat_p384_uint1 x142; + fiat_p384_addcarryx_u64(&x141, &x142, x140, x127, x101); + uint64_t x143; + fiat_p384_uint1 x144; + fiat_p384_addcarryx_u64(&x143, &x144, x142, x129, x103); + uint64_t x145; + fiat_p384_uint1 x146; + fiat_p384_addcarryx_u64(&x145, &x146, x144, x131, x105); + uint64_t x147; + fiat_p384_uint1 x148; + fiat_p384_addcarryx_u64(&x147, &x148, x146, x133, x107); + uint64_t x149; + fiat_p384_uint1 x150; + fiat_p384_addcarryx_u64(&x149, &x150, x148, x135, x109); + uint64_t x151; + fiat_p384_uint1 x152; + fiat_p384_addcarryx_u64(&x151, &x152, x150, 0x0, x110); + uint64_t x153; + uint64_t x154; + fiat_p384_mulx_u64(&x153, &x154, x2, (arg2[5])); + uint64_t x155; + uint64_t x156; + fiat_p384_mulx_u64(&x155, &x156, x2, (arg2[4])); + uint64_t x157; + uint64_t x158; + fiat_p384_mulx_u64(&x157, &x158, x2, (arg2[3])); + uint64_t x159; + uint64_t x160; + fiat_p384_mulx_u64(&x159, &x160, x2, (arg2[2])); + uint64_t x161; + uint64_t x162; + fiat_p384_mulx_u64(&x161, &x162, x2, (arg2[1])); + uint64_t x163; + uint64_t x164; + fiat_p384_mulx_u64(&x163, &x164, x2, (arg2[0])); + uint64_t x165; + fiat_p384_uint1 x166; + fiat_p384_addcarryx_u64(&x165, &x166, 0x0, x161, x164); + uint64_t x167; + fiat_p384_uint1 x168; + fiat_p384_addcarryx_u64(&x167, &x168, x166, x159, x162); + uint64_t x169; + fiat_p384_uint1 x170; + fiat_p384_addcarryx_u64(&x169, &x170, x168, x157, x160); + uint64_t x171; + fiat_p384_uint1 x172; + fiat_p384_addcarryx_u64(&x171, &x172, x170, x155, x158); + uint64_t x173; + fiat_p384_uint1 x174; + fiat_p384_addcarryx_u64(&x173, &x174, x172, x153, x156); + uint64_t x175; + fiat_p384_uint1 x176; + fiat_p384_addcarryx_u64(&x175, &x176, x174, 0x0, x154); + uint64_t x177; + fiat_p384_uint1 x178; + fiat_p384_addcarryx_u64(&x177, &x178, 0x0, x163, x139); + uint64_t x179; + fiat_p384_uint1 x180; + fiat_p384_addcarryx_u64(&x179, &x180, x178, x165, x141); + uint64_t x181; + fiat_p384_uint1 x182; + fiat_p384_addcarryx_u64(&x181, &x182, x180, x167, x143); + uint64_t x183; + fiat_p384_uint1 x184; + fiat_p384_addcarryx_u64(&x183, &x184, x182, x169, x145); + uint64_t x185; + fiat_p384_uint1 x186; + fiat_p384_addcarryx_u64(&x185, &x186, x184, x171, x147); + uint64_t x187; + fiat_p384_uint1 x188; + fiat_p384_addcarryx_u64(&x187, &x188, x186, x173, x149); + uint64_t x189; + fiat_p384_uint1 x190; + fiat_p384_addcarryx_u64(&x189, &x190, x188, x175, x151); + uint64_t x191; + uint64_t x192; + fiat_p384_mulx_u64(&x191, &x192, x177, UINT64_C(0x100000001)); + uint64_t x193; + uint64_t x194; + fiat_p384_mulx_u64(&x193, &x194, x191, UINT64_C(0xffffffffffffffff)); + uint64_t x195; + uint64_t x196; + fiat_p384_mulx_u64(&x195, &x196, x191, UINT64_C(0xffffffffffffffff)); + uint64_t x197; + uint64_t x198; + fiat_p384_mulx_u64(&x197, &x198, x191, UINT64_C(0xffffffffffffffff)); + uint64_t x199; + uint64_t x200; + fiat_p384_mulx_u64(&x199, &x200, x191, UINT64_C(0xfffffffffffffffe)); + uint64_t x201; + uint64_t x202; + fiat_p384_mulx_u64(&x201, &x202, x191, UINT64_C(0xffffffff00000000)); + uint64_t x203; + uint64_t x204; + fiat_p384_mulx_u64(&x203, &x204, x191, UINT32_C(0xffffffff)); + uint64_t x205; + fiat_p384_uint1 x206; + fiat_p384_addcarryx_u64(&x205, &x206, 0x0, x201, x204); + uint64_t x207; + fiat_p384_uint1 x208; + fiat_p384_addcarryx_u64(&x207, &x208, x206, x199, x202); + uint64_t x209; + fiat_p384_uint1 x210; + fiat_p384_addcarryx_u64(&x209, &x210, x208, x197, x200); + uint64_t x211; + fiat_p384_uint1 x212; + fiat_p384_addcarryx_u64(&x211, &x212, x210, x195, x198); + uint64_t x213; + fiat_p384_uint1 x214; + fiat_p384_addcarryx_u64(&x213, &x214, x212, x193, x196); + uint64_t x215; + fiat_p384_uint1 x216; + fiat_p384_addcarryx_u64(&x215, &x216, x214, 0x0, x194); + uint64_t x217; + fiat_p384_uint1 x218; + fiat_p384_addcarryx_u64(&x217, &x218, 0x0, x203, x177); + uint64_t x219; + fiat_p384_uint1 x220; + fiat_p384_addcarryx_u64(&x219, &x220, x218, x205, x179); + uint64_t x221; + fiat_p384_uint1 x222; + fiat_p384_addcarryx_u64(&x221, &x222, x220, x207, x181); + uint64_t x223; + fiat_p384_uint1 x224; + fiat_p384_addcarryx_u64(&x223, &x224, x222, x209, x183); + uint64_t x225; + fiat_p384_uint1 x226; + fiat_p384_addcarryx_u64(&x225, &x226, x224, x211, x185); + uint64_t x227; + fiat_p384_uint1 x228; + fiat_p384_addcarryx_u64(&x227, &x228, x226, x213, x187); + uint64_t x229; + fiat_p384_uint1 x230; + fiat_p384_addcarryx_u64(&x229, &x230, x228, x215, x189); + uint64_t x231; + fiat_p384_uint1 x232; + fiat_p384_addcarryx_u64(&x231, &x232, x230, 0x0, x190); + uint64_t x233; + uint64_t x234; + fiat_p384_mulx_u64(&x233, &x234, x3, (arg2[5])); + uint64_t x235; + uint64_t x236; + fiat_p384_mulx_u64(&x235, &x236, x3, (arg2[4])); + uint64_t x237; + uint64_t x238; + fiat_p384_mulx_u64(&x237, &x238, x3, (arg2[3])); + uint64_t x239; + uint64_t x240; + fiat_p384_mulx_u64(&x239, &x240, x3, (arg2[2])); + uint64_t x241; + uint64_t x242; + fiat_p384_mulx_u64(&x241, &x242, x3, (arg2[1])); + uint64_t x243; + uint64_t x244; + fiat_p384_mulx_u64(&x243, &x244, x3, (arg2[0])); + uint64_t x245; + fiat_p384_uint1 x246; + fiat_p384_addcarryx_u64(&x245, &x246, 0x0, x241, x244); + uint64_t x247; + fiat_p384_uint1 x248; + fiat_p384_addcarryx_u64(&x247, &x248, x246, x239, x242); + uint64_t x249; + fiat_p384_uint1 x250; + fiat_p384_addcarryx_u64(&x249, &x250, x248, x237, x240); + uint64_t x251; + fiat_p384_uint1 x252; + fiat_p384_addcarryx_u64(&x251, &x252, x250, x235, x238); + uint64_t x253; + fiat_p384_uint1 x254; + fiat_p384_addcarryx_u64(&x253, &x254, x252, x233, x236); + uint64_t x255; + fiat_p384_uint1 x256; + fiat_p384_addcarryx_u64(&x255, &x256, x254, 0x0, x234); + uint64_t x257; + fiat_p384_uint1 x258; + fiat_p384_addcarryx_u64(&x257, &x258, 0x0, x243, x219); + uint64_t x259; + fiat_p384_uint1 x260; + fiat_p384_addcarryx_u64(&x259, &x260, x258, x245, x221); + uint64_t x261; + fiat_p384_uint1 x262; + fiat_p384_addcarryx_u64(&x261, &x262, x260, x247, x223); + uint64_t x263; + fiat_p384_uint1 x264; + fiat_p384_addcarryx_u64(&x263, &x264, x262, x249, x225); + uint64_t x265; + fiat_p384_uint1 x266; + fiat_p384_addcarryx_u64(&x265, &x266, x264, x251, x227); + uint64_t x267; + fiat_p384_uint1 x268; + fiat_p384_addcarryx_u64(&x267, &x268, x266, x253, x229); + uint64_t x269; + fiat_p384_uint1 x270; + fiat_p384_addcarryx_u64(&x269, &x270, x268, x255, x231); + uint64_t x271; + uint64_t x272; + fiat_p384_mulx_u64(&x271, &x272, x257, UINT64_C(0x100000001)); + uint64_t x273; + uint64_t x274; + fiat_p384_mulx_u64(&x273, &x274, x271, UINT64_C(0xffffffffffffffff)); + uint64_t x275; + uint64_t x276; + fiat_p384_mulx_u64(&x275, &x276, x271, UINT64_C(0xffffffffffffffff)); + uint64_t x277; + uint64_t x278; + fiat_p384_mulx_u64(&x277, &x278, x271, UINT64_C(0xffffffffffffffff)); + uint64_t x279; + uint64_t x280; + fiat_p384_mulx_u64(&x279, &x280, x271, UINT64_C(0xfffffffffffffffe)); + uint64_t x281; + uint64_t x282; + fiat_p384_mulx_u64(&x281, &x282, x271, UINT64_C(0xffffffff00000000)); + uint64_t x283; + uint64_t x284; + fiat_p384_mulx_u64(&x283, &x284, x271, UINT32_C(0xffffffff)); + uint64_t x285; + fiat_p384_uint1 x286; + fiat_p384_addcarryx_u64(&x285, &x286, 0x0, x281, x284); + uint64_t x287; + fiat_p384_uint1 x288; + fiat_p384_addcarryx_u64(&x287, &x288, x286, x279, x282); + uint64_t x289; + fiat_p384_uint1 x290; + fiat_p384_addcarryx_u64(&x289, &x290, x288, x277, x280); + uint64_t x291; + fiat_p384_uint1 x292; + fiat_p384_addcarryx_u64(&x291, &x292, x290, x275, x278); + uint64_t x293; + fiat_p384_uint1 x294; + fiat_p384_addcarryx_u64(&x293, &x294, x292, x273, x276); + uint64_t x295; + fiat_p384_uint1 x296; + fiat_p384_addcarryx_u64(&x295, &x296, x294, 0x0, x274); + uint64_t x297; + fiat_p384_uint1 x298; + fiat_p384_addcarryx_u64(&x297, &x298, 0x0, x283, x257); + uint64_t x299; + fiat_p384_uint1 x300; + fiat_p384_addcarryx_u64(&x299, &x300, x298, x285, x259); + uint64_t x301; + fiat_p384_uint1 x302; + fiat_p384_addcarryx_u64(&x301, &x302, x300, x287, x261); + uint64_t x303; + fiat_p384_uint1 x304; + fiat_p384_addcarryx_u64(&x303, &x304, x302, x289, x263); + uint64_t x305; + fiat_p384_uint1 x306; + fiat_p384_addcarryx_u64(&x305, &x306, x304, x291, x265); + uint64_t x307; + fiat_p384_uint1 x308; + fiat_p384_addcarryx_u64(&x307, &x308, x306, x293, x267); + uint64_t x309; + fiat_p384_uint1 x310; + fiat_p384_addcarryx_u64(&x309, &x310, x308, x295, x269); + uint64_t x311; + fiat_p384_uint1 x312; + fiat_p384_addcarryx_u64(&x311, &x312, x310, 0x0, x270); + uint64_t x313; + uint64_t x314; + fiat_p384_mulx_u64(&x313, &x314, x4, (arg2[5])); + uint64_t x315; + uint64_t x316; + fiat_p384_mulx_u64(&x315, &x316, x4, (arg2[4])); + uint64_t x317; + uint64_t x318; + fiat_p384_mulx_u64(&x317, &x318, x4, (arg2[3])); + uint64_t x319; + uint64_t x320; + fiat_p384_mulx_u64(&x319, &x320, x4, (arg2[2])); + uint64_t x321; + uint64_t x322; + fiat_p384_mulx_u64(&x321, &x322, x4, (arg2[1])); + uint64_t x323; + uint64_t x324; + fiat_p384_mulx_u64(&x323, &x324, x4, (arg2[0])); + uint64_t x325; + fiat_p384_uint1 x326; + fiat_p384_addcarryx_u64(&x325, &x326, 0x0, x321, x324); + uint64_t x327; + fiat_p384_uint1 x328; + fiat_p384_addcarryx_u64(&x327, &x328, x326, x319, x322); + uint64_t x329; + fiat_p384_uint1 x330; + fiat_p384_addcarryx_u64(&x329, &x330, x328, x317, x320); + uint64_t x331; + fiat_p384_uint1 x332; + fiat_p384_addcarryx_u64(&x331, &x332, x330, x315, x318); + uint64_t x333; + fiat_p384_uint1 x334; + fiat_p384_addcarryx_u64(&x333, &x334, x332, x313, x316); + uint64_t x335; + fiat_p384_uint1 x336; + fiat_p384_addcarryx_u64(&x335, &x336, x334, 0x0, x314); + uint64_t x337; + fiat_p384_uint1 x338; + fiat_p384_addcarryx_u64(&x337, &x338, 0x0, x323, x299); + uint64_t x339; + fiat_p384_uint1 x340; + fiat_p384_addcarryx_u64(&x339, &x340, x338, x325, x301); + uint64_t x341; + fiat_p384_uint1 x342; + fiat_p384_addcarryx_u64(&x341, &x342, x340, x327, x303); + uint64_t x343; + fiat_p384_uint1 x344; + fiat_p384_addcarryx_u64(&x343, &x344, x342, x329, x305); + uint64_t x345; + fiat_p384_uint1 x346; + fiat_p384_addcarryx_u64(&x345, &x346, x344, x331, x307); + uint64_t x347; + fiat_p384_uint1 x348; + fiat_p384_addcarryx_u64(&x347, &x348, x346, x333, x309); + uint64_t x349; + fiat_p384_uint1 x350; + fiat_p384_addcarryx_u64(&x349, &x350, x348, x335, x311); + uint64_t x351; + uint64_t x352; + fiat_p384_mulx_u64(&x351, &x352, x337, UINT64_C(0x100000001)); + uint64_t x353; + uint64_t x354; + fiat_p384_mulx_u64(&x353, &x354, x351, UINT64_C(0xffffffffffffffff)); + uint64_t x355; + uint64_t x356; + fiat_p384_mulx_u64(&x355, &x356, x351, UINT64_C(0xffffffffffffffff)); + uint64_t x357; + uint64_t x358; + fiat_p384_mulx_u64(&x357, &x358, x351, UINT64_C(0xffffffffffffffff)); + uint64_t x359; + uint64_t x360; + fiat_p384_mulx_u64(&x359, &x360, x351, UINT64_C(0xfffffffffffffffe)); + uint64_t x361; + uint64_t x362; + fiat_p384_mulx_u64(&x361, &x362, x351, UINT64_C(0xffffffff00000000)); + uint64_t x363; + uint64_t x364; + fiat_p384_mulx_u64(&x363, &x364, x351, UINT32_C(0xffffffff)); + uint64_t x365; + fiat_p384_uint1 x366; + fiat_p384_addcarryx_u64(&x365, &x366, 0x0, x361, x364); + uint64_t x367; + fiat_p384_uint1 x368; + fiat_p384_addcarryx_u64(&x367, &x368, x366, x359, x362); + uint64_t x369; + fiat_p384_uint1 x370; + fiat_p384_addcarryx_u64(&x369, &x370, x368, x357, x360); + uint64_t x371; + fiat_p384_uint1 x372; + fiat_p384_addcarryx_u64(&x371, &x372, x370, x355, x358); + uint64_t x373; + fiat_p384_uint1 x374; + fiat_p384_addcarryx_u64(&x373, &x374, x372, x353, x356); + uint64_t x375; + fiat_p384_uint1 x376; + fiat_p384_addcarryx_u64(&x375, &x376, x374, 0x0, x354); + uint64_t x377; + fiat_p384_uint1 x378; + fiat_p384_addcarryx_u64(&x377, &x378, 0x0, x363, x337); + uint64_t x379; + fiat_p384_uint1 x380; + fiat_p384_addcarryx_u64(&x379, &x380, x378, x365, x339); + uint64_t x381; + fiat_p384_uint1 x382; + fiat_p384_addcarryx_u64(&x381, &x382, x380, x367, x341); + uint64_t x383; + fiat_p384_uint1 x384; + fiat_p384_addcarryx_u64(&x383, &x384, x382, x369, x343); + uint64_t x385; + fiat_p384_uint1 x386; + fiat_p384_addcarryx_u64(&x385, &x386, x384, x371, x345); + uint64_t x387; + fiat_p384_uint1 x388; + fiat_p384_addcarryx_u64(&x387, &x388, x386, x373, x347); + uint64_t x389; + fiat_p384_uint1 x390; + fiat_p384_addcarryx_u64(&x389, &x390, x388, x375, x349); + uint64_t x391; + fiat_p384_uint1 x392; + fiat_p384_addcarryx_u64(&x391, &x392, x390, 0x0, x350); + uint64_t x393; + uint64_t x394; + fiat_p384_mulx_u64(&x393, &x394, x5, (arg2[5])); + uint64_t x395; + uint64_t x396; + fiat_p384_mulx_u64(&x395, &x396, x5, (arg2[4])); + uint64_t x397; + uint64_t x398; + fiat_p384_mulx_u64(&x397, &x398, x5, (arg2[3])); + uint64_t x399; + uint64_t x400; + fiat_p384_mulx_u64(&x399, &x400, x5, (arg2[2])); + uint64_t x401; + uint64_t x402; + fiat_p384_mulx_u64(&x401, &x402, x5, (arg2[1])); + uint64_t x403; + uint64_t x404; + fiat_p384_mulx_u64(&x403, &x404, x5, (arg2[0])); + uint64_t x405; + fiat_p384_uint1 x406; + fiat_p384_addcarryx_u64(&x405, &x406, 0x0, x401, x404); + uint64_t x407; + fiat_p384_uint1 x408; + fiat_p384_addcarryx_u64(&x407, &x408, x406, x399, x402); + uint64_t x409; + fiat_p384_uint1 x410; + fiat_p384_addcarryx_u64(&x409, &x410, x408, x397, x400); + uint64_t x411; + fiat_p384_uint1 x412; + fiat_p384_addcarryx_u64(&x411, &x412, x410, x395, x398); + uint64_t x413; + fiat_p384_uint1 x414; + fiat_p384_addcarryx_u64(&x413, &x414, x412, x393, x396); + uint64_t x415; + fiat_p384_uint1 x416; + fiat_p384_addcarryx_u64(&x415, &x416, x414, 0x0, x394); + uint64_t x417; + fiat_p384_uint1 x418; + fiat_p384_addcarryx_u64(&x417, &x418, 0x0, x403, x379); + uint64_t x419; + fiat_p384_uint1 x420; + fiat_p384_addcarryx_u64(&x419, &x420, x418, x405, x381); + uint64_t x421; + fiat_p384_uint1 x422; + fiat_p384_addcarryx_u64(&x421, &x422, x420, x407, x383); + uint64_t x423; + fiat_p384_uint1 x424; + fiat_p384_addcarryx_u64(&x423, &x424, x422, x409, x385); + uint64_t x425; + fiat_p384_uint1 x426; + fiat_p384_addcarryx_u64(&x425, &x426, x424, x411, x387); + uint64_t x427; + fiat_p384_uint1 x428; + fiat_p384_addcarryx_u64(&x427, &x428, x426, x413, x389); + uint64_t x429; + fiat_p384_uint1 x430; + fiat_p384_addcarryx_u64(&x429, &x430, x428, x415, x391); + uint64_t x431; + uint64_t x432; + fiat_p384_mulx_u64(&x431, &x432, x417, UINT64_C(0x100000001)); + uint64_t x433; + uint64_t x434; + fiat_p384_mulx_u64(&x433, &x434, x431, UINT64_C(0xffffffffffffffff)); + uint64_t x435; + uint64_t x436; + fiat_p384_mulx_u64(&x435, &x436, x431, UINT64_C(0xffffffffffffffff)); + uint64_t x437; + uint64_t x438; + fiat_p384_mulx_u64(&x437, &x438, x431, UINT64_C(0xffffffffffffffff)); + uint64_t x439; + uint64_t x440; + fiat_p384_mulx_u64(&x439, &x440, x431, UINT64_C(0xfffffffffffffffe)); + uint64_t x441; + uint64_t x442; + fiat_p384_mulx_u64(&x441, &x442, x431, UINT64_C(0xffffffff00000000)); + uint64_t x443; + uint64_t x444; + fiat_p384_mulx_u64(&x443, &x444, x431, UINT32_C(0xffffffff)); + uint64_t x445; + fiat_p384_uint1 x446; + fiat_p384_addcarryx_u64(&x445, &x446, 0x0, x441, x444); + uint64_t x447; + fiat_p384_uint1 x448; + fiat_p384_addcarryx_u64(&x447, &x448, x446, x439, x442); + uint64_t x449; + fiat_p384_uint1 x450; + fiat_p384_addcarryx_u64(&x449, &x450, x448, x437, x440); + uint64_t x451; + fiat_p384_uint1 x452; + fiat_p384_addcarryx_u64(&x451, &x452, x450, x435, x438); + uint64_t x453; + fiat_p384_uint1 x454; + fiat_p384_addcarryx_u64(&x453, &x454, x452, x433, x436); + uint64_t x455; + fiat_p384_uint1 x456; + fiat_p384_addcarryx_u64(&x455, &x456, x454, 0x0, x434); + uint64_t x457; + fiat_p384_uint1 x458; + fiat_p384_addcarryx_u64(&x457, &x458, 0x0, x443, x417); + uint64_t x459; + fiat_p384_uint1 x460; + fiat_p384_addcarryx_u64(&x459, &x460, x458, x445, x419); + uint64_t x461; + fiat_p384_uint1 x462; + fiat_p384_addcarryx_u64(&x461, &x462, x460, x447, x421); + uint64_t x463; + fiat_p384_uint1 x464; + fiat_p384_addcarryx_u64(&x463, &x464, x462, x449, x423); + uint64_t x465; + fiat_p384_uint1 x466; + fiat_p384_addcarryx_u64(&x465, &x466, x464, x451, x425); + uint64_t x467; + fiat_p384_uint1 x468; + fiat_p384_addcarryx_u64(&x467, &x468, x466, x453, x427); + uint64_t x469; + fiat_p384_uint1 x470; + fiat_p384_addcarryx_u64(&x469, &x470, x468, x455, x429); + uint64_t x471; + fiat_p384_uint1 x472; + fiat_p384_addcarryx_u64(&x471, &x472, x470, 0x0, x430); + uint64_t x473; + fiat_p384_uint1 x474; + fiat_p384_subborrowx_u64(&x473, &x474, 0x0, x459, UINT32_C(0xffffffff)); + uint64_t x475; + fiat_p384_uint1 x476; + fiat_p384_subborrowx_u64(&x475, &x476, x474, x461, UINT64_C(0xffffffff00000000)); + uint64_t x477; + fiat_p384_uint1 x478; + fiat_p384_subborrowx_u64(&x477, &x478, x476, x463, UINT64_C(0xfffffffffffffffe)); + uint64_t x479; + fiat_p384_uint1 x480; + fiat_p384_subborrowx_u64(&x479, &x480, x478, x465, UINT64_C(0xffffffffffffffff)); + uint64_t x481; + fiat_p384_uint1 x482; + fiat_p384_subborrowx_u64(&x481, &x482, x480, x467, UINT64_C(0xffffffffffffffff)); + uint64_t x483; + fiat_p384_uint1 x484; + fiat_p384_subborrowx_u64(&x483, &x484, x482, x469, UINT64_C(0xffffffffffffffff)); + uint64_t x485; + fiat_p384_uint1 x486; + fiat_p384_subborrowx_u64(&x485, &x486, x484, x471, 0x0); + uint64_t x487; + fiat_p384_cmovznz_u64(&x487, x486, x473, x459); + uint64_t x488; + fiat_p384_cmovznz_u64(&x488, x486, x475, x461); + uint64_t x489; + fiat_p384_cmovznz_u64(&x489, x486, x477, x463); + uint64_t x490; + fiat_p384_cmovznz_u64(&x490, x486, x479, x465); + uint64_t x491; + fiat_p384_cmovznz_u64(&x491, x486, x481, x467); + uint64_t x492; + fiat_p384_cmovznz_u64(&x492, x486, x483, x469); + out1[0] = x487; + out1[1] = x488; + out1[2] = x489; + out1[3] = x490; + out1[4] = x491; + out1[5] = x492; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_square(uint64_t out1[6], const uint64_t arg1[6]) { + uint64_t x1 = (arg1[1]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[4]); + uint64_t x5 = (arg1[5]); + uint64_t x6 = (arg1[0]); + uint64_t x7; + uint64_t x8; + fiat_p384_mulx_u64(&x7, &x8, x6, (arg1[5])); + uint64_t x9; + uint64_t x10; + fiat_p384_mulx_u64(&x9, &x10, x6, (arg1[4])); + uint64_t x11; + uint64_t x12; + fiat_p384_mulx_u64(&x11, &x12, x6, (arg1[3])); + uint64_t x13; + uint64_t x14; + fiat_p384_mulx_u64(&x13, &x14, x6, (arg1[2])); + uint64_t x15; + uint64_t x16; + fiat_p384_mulx_u64(&x15, &x16, x6, (arg1[1])); + uint64_t x17; + uint64_t x18; + fiat_p384_mulx_u64(&x17, &x18, x6, (arg1[0])); + uint64_t x19; + fiat_p384_uint1 x20; + fiat_p384_addcarryx_u64(&x19, &x20, 0x0, x15, x18); + uint64_t x21; + fiat_p384_uint1 x22; + fiat_p384_addcarryx_u64(&x21, &x22, x20, x13, x16); + uint64_t x23; + fiat_p384_uint1 x24; + fiat_p384_addcarryx_u64(&x23, &x24, x22, x11, x14); + uint64_t x25; + fiat_p384_uint1 x26; + fiat_p384_addcarryx_u64(&x25, &x26, x24, x9, x12); + uint64_t x27; + fiat_p384_uint1 x28; + fiat_p384_addcarryx_u64(&x27, &x28, x26, x7, x10); + uint64_t x29; + fiat_p384_uint1 x30; + fiat_p384_addcarryx_u64(&x29, &x30, x28, 0x0, x8); + uint64_t x31; + uint64_t x32; + fiat_p384_mulx_u64(&x31, &x32, x17, UINT64_C(0x100000001)); + uint64_t x33; + uint64_t x34; + fiat_p384_mulx_u64(&x33, &x34, x31, UINT64_C(0xffffffffffffffff)); + uint64_t x35; + uint64_t x36; + fiat_p384_mulx_u64(&x35, &x36, x31, UINT64_C(0xffffffffffffffff)); + uint64_t x37; + uint64_t x38; + fiat_p384_mulx_u64(&x37, &x38, x31, UINT64_C(0xffffffffffffffff)); + uint64_t x39; + uint64_t x40; + fiat_p384_mulx_u64(&x39, &x40, x31, UINT64_C(0xfffffffffffffffe)); + uint64_t x41; + uint64_t x42; + fiat_p384_mulx_u64(&x41, &x42, x31, UINT64_C(0xffffffff00000000)); + uint64_t x43; + uint64_t x44; + fiat_p384_mulx_u64(&x43, &x44, x31, UINT32_C(0xffffffff)); + uint64_t x45; + fiat_p384_uint1 x46; + fiat_p384_addcarryx_u64(&x45, &x46, 0x0, x41, x44); + uint64_t x47; + fiat_p384_uint1 x48; + fiat_p384_addcarryx_u64(&x47, &x48, x46, x39, x42); + uint64_t x49; + fiat_p384_uint1 x50; + fiat_p384_addcarryx_u64(&x49, &x50, x48, x37, x40); + uint64_t x51; + fiat_p384_uint1 x52; + fiat_p384_addcarryx_u64(&x51, &x52, x50, x35, x38); + uint64_t x53; + fiat_p384_uint1 x54; + fiat_p384_addcarryx_u64(&x53, &x54, x52, x33, x36); + uint64_t x55; + fiat_p384_uint1 x56; + fiat_p384_addcarryx_u64(&x55, &x56, x54, 0x0, x34); + uint64_t x57; + fiat_p384_uint1 x58; + fiat_p384_addcarryx_u64(&x57, &x58, 0x0, x43, x17); + uint64_t x59; + fiat_p384_uint1 x60; + fiat_p384_addcarryx_u64(&x59, &x60, x58, x45, x19); + uint64_t x61; + fiat_p384_uint1 x62; + fiat_p384_addcarryx_u64(&x61, &x62, x60, x47, x21); + uint64_t x63; + fiat_p384_uint1 x64; + fiat_p384_addcarryx_u64(&x63, &x64, x62, x49, x23); + uint64_t x65; + fiat_p384_uint1 x66; + fiat_p384_addcarryx_u64(&x65, &x66, x64, x51, x25); + uint64_t x67; + fiat_p384_uint1 x68; + fiat_p384_addcarryx_u64(&x67, &x68, x66, x53, x27); + uint64_t x69; + fiat_p384_uint1 x70; + fiat_p384_addcarryx_u64(&x69, &x70, x68, x55, x29); + uint64_t x71; + fiat_p384_uint1 x72; + fiat_p384_addcarryx_u64(&x71, &x72, x70, 0x0, 0x0); + uint64_t x73; + uint64_t x74; + fiat_p384_mulx_u64(&x73, &x74, x1, (arg1[5])); + uint64_t x75; + uint64_t x76; + fiat_p384_mulx_u64(&x75, &x76, x1, (arg1[4])); + uint64_t x77; + uint64_t x78; + fiat_p384_mulx_u64(&x77, &x78, x1, (arg1[3])); + uint64_t x79; + uint64_t x80; + fiat_p384_mulx_u64(&x79, &x80, x1, (arg1[2])); + uint64_t x81; + uint64_t x82; + fiat_p384_mulx_u64(&x81, &x82, x1, (arg1[1])); + uint64_t x83; + uint64_t x84; + fiat_p384_mulx_u64(&x83, &x84, x1, (arg1[0])); + uint64_t x85; + fiat_p384_uint1 x86; + fiat_p384_addcarryx_u64(&x85, &x86, 0x0, x81, x84); + uint64_t x87; + fiat_p384_uint1 x88; + fiat_p384_addcarryx_u64(&x87, &x88, x86, x79, x82); + uint64_t x89; + fiat_p384_uint1 x90; + fiat_p384_addcarryx_u64(&x89, &x90, x88, x77, x80); + uint64_t x91; + fiat_p384_uint1 x92; + fiat_p384_addcarryx_u64(&x91, &x92, x90, x75, x78); + uint64_t x93; + fiat_p384_uint1 x94; + fiat_p384_addcarryx_u64(&x93, &x94, x92, x73, x76); + uint64_t x95; + fiat_p384_uint1 x96; + fiat_p384_addcarryx_u64(&x95, &x96, x94, 0x0, x74); + uint64_t x97; + fiat_p384_uint1 x98; + fiat_p384_addcarryx_u64(&x97, &x98, 0x0, x83, x59); + uint64_t x99; + fiat_p384_uint1 x100; + fiat_p384_addcarryx_u64(&x99, &x100, x98, x85, x61); + uint64_t x101; + fiat_p384_uint1 x102; + fiat_p384_addcarryx_u64(&x101, &x102, x100, x87, x63); + uint64_t x103; + fiat_p384_uint1 x104; + fiat_p384_addcarryx_u64(&x103, &x104, x102, x89, x65); + uint64_t x105; + fiat_p384_uint1 x106; + fiat_p384_addcarryx_u64(&x105, &x106, x104, x91, x67); + uint64_t x107; + fiat_p384_uint1 x108; + fiat_p384_addcarryx_u64(&x107, &x108, x106, x93, x69); + uint64_t x109; + fiat_p384_uint1 x110; + fiat_p384_addcarryx_u64(&x109, &x110, x108, x95, (fiat_p384_uint1)x71); + uint64_t x111; + uint64_t x112; + fiat_p384_mulx_u64(&x111, &x112, x97, UINT64_C(0x100000001)); + uint64_t x113; + uint64_t x114; + fiat_p384_mulx_u64(&x113, &x114, x111, UINT64_C(0xffffffffffffffff)); + uint64_t x115; + uint64_t x116; + fiat_p384_mulx_u64(&x115, &x116, x111, UINT64_C(0xffffffffffffffff)); + uint64_t x117; + uint64_t x118; + fiat_p384_mulx_u64(&x117, &x118, x111, UINT64_C(0xffffffffffffffff)); + uint64_t x119; + uint64_t x120; + fiat_p384_mulx_u64(&x119, &x120, x111, UINT64_C(0xfffffffffffffffe)); + uint64_t x121; + uint64_t x122; + fiat_p384_mulx_u64(&x121, &x122, x111, UINT64_C(0xffffffff00000000)); + uint64_t x123; + uint64_t x124; + fiat_p384_mulx_u64(&x123, &x124, x111, UINT32_C(0xffffffff)); + uint64_t x125; + fiat_p384_uint1 x126; + fiat_p384_addcarryx_u64(&x125, &x126, 0x0, x121, x124); + uint64_t x127; + fiat_p384_uint1 x128; + fiat_p384_addcarryx_u64(&x127, &x128, x126, x119, x122); + uint64_t x129; + fiat_p384_uint1 x130; + fiat_p384_addcarryx_u64(&x129, &x130, x128, x117, x120); + uint64_t x131; + fiat_p384_uint1 x132; + fiat_p384_addcarryx_u64(&x131, &x132, x130, x115, x118); + uint64_t x133; + fiat_p384_uint1 x134; + fiat_p384_addcarryx_u64(&x133, &x134, x132, x113, x116); + uint64_t x135; + fiat_p384_uint1 x136; + fiat_p384_addcarryx_u64(&x135, &x136, x134, 0x0, x114); + uint64_t x137; + fiat_p384_uint1 x138; + fiat_p384_addcarryx_u64(&x137, &x138, 0x0, x123, x97); + uint64_t x139; + fiat_p384_uint1 x140; + fiat_p384_addcarryx_u64(&x139, &x140, x138, x125, x99); + uint64_t x141; + fiat_p384_uint1 x142; + fiat_p384_addcarryx_u64(&x141, &x142, x140, x127, x101); + uint64_t x143; + fiat_p384_uint1 x144; + fiat_p384_addcarryx_u64(&x143, &x144, x142, x129, x103); + uint64_t x145; + fiat_p384_uint1 x146; + fiat_p384_addcarryx_u64(&x145, &x146, x144, x131, x105); + uint64_t x147; + fiat_p384_uint1 x148; + fiat_p384_addcarryx_u64(&x147, &x148, x146, x133, x107); + uint64_t x149; + fiat_p384_uint1 x150; + fiat_p384_addcarryx_u64(&x149, &x150, x148, x135, x109); + uint64_t x151; + fiat_p384_uint1 x152; + fiat_p384_addcarryx_u64(&x151, &x152, x150, 0x0, x110); + uint64_t x153; + uint64_t x154; + fiat_p384_mulx_u64(&x153, &x154, x2, (arg1[5])); + uint64_t x155; + uint64_t x156; + fiat_p384_mulx_u64(&x155, &x156, x2, (arg1[4])); + uint64_t x157; + uint64_t x158; + fiat_p384_mulx_u64(&x157, &x158, x2, (arg1[3])); + uint64_t x159; + uint64_t x160; + fiat_p384_mulx_u64(&x159, &x160, x2, (arg1[2])); + uint64_t x161; + uint64_t x162; + fiat_p384_mulx_u64(&x161, &x162, x2, (arg1[1])); + uint64_t x163; + uint64_t x164; + fiat_p384_mulx_u64(&x163, &x164, x2, (arg1[0])); + uint64_t x165; + fiat_p384_uint1 x166; + fiat_p384_addcarryx_u64(&x165, &x166, 0x0, x161, x164); + uint64_t x167; + fiat_p384_uint1 x168; + fiat_p384_addcarryx_u64(&x167, &x168, x166, x159, x162); + uint64_t x169; + fiat_p384_uint1 x170; + fiat_p384_addcarryx_u64(&x169, &x170, x168, x157, x160); + uint64_t x171; + fiat_p384_uint1 x172; + fiat_p384_addcarryx_u64(&x171, &x172, x170, x155, x158); + uint64_t x173; + fiat_p384_uint1 x174; + fiat_p384_addcarryx_u64(&x173, &x174, x172, x153, x156); + uint64_t x175; + fiat_p384_uint1 x176; + fiat_p384_addcarryx_u64(&x175, &x176, x174, 0x0, x154); + uint64_t x177; + fiat_p384_uint1 x178; + fiat_p384_addcarryx_u64(&x177, &x178, 0x0, x163, x139); + uint64_t x179; + fiat_p384_uint1 x180; + fiat_p384_addcarryx_u64(&x179, &x180, x178, x165, x141); + uint64_t x181; + fiat_p384_uint1 x182; + fiat_p384_addcarryx_u64(&x181, &x182, x180, x167, x143); + uint64_t x183; + fiat_p384_uint1 x184; + fiat_p384_addcarryx_u64(&x183, &x184, x182, x169, x145); + uint64_t x185; + fiat_p384_uint1 x186; + fiat_p384_addcarryx_u64(&x185, &x186, x184, x171, x147); + uint64_t x187; + fiat_p384_uint1 x188; + fiat_p384_addcarryx_u64(&x187, &x188, x186, x173, x149); + uint64_t x189; + fiat_p384_uint1 x190; + fiat_p384_addcarryx_u64(&x189, &x190, x188, x175, x151); + uint64_t x191; + uint64_t x192; + fiat_p384_mulx_u64(&x191, &x192, x177, UINT64_C(0x100000001)); + uint64_t x193; + uint64_t x194; + fiat_p384_mulx_u64(&x193, &x194, x191, UINT64_C(0xffffffffffffffff)); + uint64_t x195; + uint64_t x196; + fiat_p384_mulx_u64(&x195, &x196, x191, UINT64_C(0xffffffffffffffff)); + uint64_t x197; + uint64_t x198; + fiat_p384_mulx_u64(&x197, &x198, x191, UINT64_C(0xffffffffffffffff)); + uint64_t x199; + uint64_t x200; + fiat_p384_mulx_u64(&x199, &x200, x191, UINT64_C(0xfffffffffffffffe)); + uint64_t x201; + uint64_t x202; + fiat_p384_mulx_u64(&x201, &x202, x191, UINT64_C(0xffffffff00000000)); + uint64_t x203; + uint64_t x204; + fiat_p384_mulx_u64(&x203, &x204, x191, UINT32_C(0xffffffff)); + uint64_t x205; + fiat_p384_uint1 x206; + fiat_p384_addcarryx_u64(&x205, &x206, 0x0, x201, x204); + uint64_t x207; + fiat_p384_uint1 x208; + fiat_p384_addcarryx_u64(&x207, &x208, x206, x199, x202); + uint64_t x209; + fiat_p384_uint1 x210; + fiat_p384_addcarryx_u64(&x209, &x210, x208, x197, x200); + uint64_t x211; + fiat_p384_uint1 x212; + fiat_p384_addcarryx_u64(&x211, &x212, x210, x195, x198); + uint64_t x213; + fiat_p384_uint1 x214; + fiat_p384_addcarryx_u64(&x213, &x214, x212, x193, x196); + uint64_t x215; + fiat_p384_uint1 x216; + fiat_p384_addcarryx_u64(&x215, &x216, x214, 0x0, x194); + uint64_t x217; + fiat_p384_uint1 x218; + fiat_p384_addcarryx_u64(&x217, &x218, 0x0, x203, x177); + uint64_t x219; + fiat_p384_uint1 x220; + fiat_p384_addcarryx_u64(&x219, &x220, x218, x205, x179); + uint64_t x221; + fiat_p384_uint1 x222; + fiat_p384_addcarryx_u64(&x221, &x222, x220, x207, x181); + uint64_t x223; + fiat_p384_uint1 x224; + fiat_p384_addcarryx_u64(&x223, &x224, x222, x209, x183); + uint64_t x225; + fiat_p384_uint1 x226; + fiat_p384_addcarryx_u64(&x225, &x226, x224, x211, x185); + uint64_t x227; + fiat_p384_uint1 x228; + fiat_p384_addcarryx_u64(&x227, &x228, x226, x213, x187); + uint64_t x229; + fiat_p384_uint1 x230; + fiat_p384_addcarryx_u64(&x229, &x230, x228, x215, x189); + uint64_t x231; + fiat_p384_uint1 x232; + fiat_p384_addcarryx_u64(&x231, &x232, x230, 0x0, x190); + uint64_t x233; + uint64_t x234; + fiat_p384_mulx_u64(&x233, &x234, x3, (arg1[5])); + uint64_t x235; + uint64_t x236; + fiat_p384_mulx_u64(&x235, &x236, x3, (arg1[4])); + uint64_t x237; + uint64_t x238; + fiat_p384_mulx_u64(&x237, &x238, x3, (arg1[3])); + uint64_t x239; + uint64_t x240; + fiat_p384_mulx_u64(&x239, &x240, x3, (arg1[2])); + uint64_t x241; + uint64_t x242; + fiat_p384_mulx_u64(&x241, &x242, x3, (arg1[1])); + uint64_t x243; + uint64_t x244; + fiat_p384_mulx_u64(&x243, &x244, x3, (arg1[0])); + uint64_t x245; + fiat_p384_uint1 x246; + fiat_p384_addcarryx_u64(&x245, &x246, 0x0, x241, x244); + uint64_t x247; + fiat_p384_uint1 x248; + fiat_p384_addcarryx_u64(&x247, &x248, x246, x239, x242); + uint64_t x249; + fiat_p384_uint1 x250; + fiat_p384_addcarryx_u64(&x249, &x250, x248, x237, x240); + uint64_t x251; + fiat_p384_uint1 x252; + fiat_p384_addcarryx_u64(&x251, &x252, x250, x235, x238); + uint64_t x253; + fiat_p384_uint1 x254; + fiat_p384_addcarryx_u64(&x253, &x254, x252, x233, x236); + uint64_t x255; + fiat_p384_uint1 x256; + fiat_p384_addcarryx_u64(&x255, &x256, x254, 0x0, x234); + uint64_t x257; + fiat_p384_uint1 x258; + fiat_p384_addcarryx_u64(&x257, &x258, 0x0, x243, x219); + uint64_t x259; + fiat_p384_uint1 x260; + fiat_p384_addcarryx_u64(&x259, &x260, x258, x245, x221); + uint64_t x261; + fiat_p384_uint1 x262; + fiat_p384_addcarryx_u64(&x261, &x262, x260, x247, x223); + uint64_t x263; + fiat_p384_uint1 x264; + fiat_p384_addcarryx_u64(&x263, &x264, x262, x249, x225); + uint64_t x265; + fiat_p384_uint1 x266; + fiat_p384_addcarryx_u64(&x265, &x266, x264, x251, x227); + uint64_t x267; + fiat_p384_uint1 x268; + fiat_p384_addcarryx_u64(&x267, &x268, x266, x253, x229); + uint64_t x269; + fiat_p384_uint1 x270; + fiat_p384_addcarryx_u64(&x269, &x270, x268, x255, x231); + uint64_t x271; + uint64_t x272; + fiat_p384_mulx_u64(&x271, &x272, x257, UINT64_C(0x100000001)); + uint64_t x273; + uint64_t x274; + fiat_p384_mulx_u64(&x273, &x274, x271, UINT64_C(0xffffffffffffffff)); + uint64_t x275; + uint64_t x276; + fiat_p384_mulx_u64(&x275, &x276, x271, UINT64_C(0xffffffffffffffff)); + uint64_t x277; + uint64_t x278; + fiat_p384_mulx_u64(&x277, &x278, x271, UINT64_C(0xffffffffffffffff)); + uint64_t x279; + uint64_t x280; + fiat_p384_mulx_u64(&x279, &x280, x271, UINT64_C(0xfffffffffffffffe)); + uint64_t x281; + uint64_t x282; + fiat_p384_mulx_u64(&x281, &x282, x271, UINT64_C(0xffffffff00000000)); + uint64_t x283; + uint64_t x284; + fiat_p384_mulx_u64(&x283, &x284, x271, UINT32_C(0xffffffff)); + uint64_t x285; + fiat_p384_uint1 x286; + fiat_p384_addcarryx_u64(&x285, &x286, 0x0, x281, x284); + uint64_t x287; + fiat_p384_uint1 x288; + fiat_p384_addcarryx_u64(&x287, &x288, x286, x279, x282); + uint64_t x289; + fiat_p384_uint1 x290; + fiat_p384_addcarryx_u64(&x289, &x290, x288, x277, x280); + uint64_t x291; + fiat_p384_uint1 x292; + fiat_p384_addcarryx_u64(&x291, &x292, x290, x275, x278); + uint64_t x293; + fiat_p384_uint1 x294; + fiat_p384_addcarryx_u64(&x293, &x294, x292, x273, x276); + uint64_t x295; + fiat_p384_uint1 x296; + fiat_p384_addcarryx_u64(&x295, &x296, x294, 0x0, x274); + uint64_t x297; + fiat_p384_uint1 x298; + fiat_p384_addcarryx_u64(&x297, &x298, 0x0, x283, x257); + uint64_t x299; + fiat_p384_uint1 x300; + fiat_p384_addcarryx_u64(&x299, &x300, x298, x285, x259); + uint64_t x301; + fiat_p384_uint1 x302; + fiat_p384_addcarryx_u64(&x301, &x302, x300, x287, x261); + uint64_t x303; + fiat_p384_uint1 x304; + fiat_p384_addcarryx_u64(&x303, &x304, x302, x289, x263); + uint64_t x305; + fiat_p384_uint1 x306; + fiat_p384_addcarryx_u64(&x305, &x306, x304, x291, x265); + uint64_t x307; + fiat_p384_uint1 x308; + fiat_p384_addcarryx_u64(&x307, &x308, x306, x293, x267); + uint64_t x309; + fiat_p384_uint1 x310; + fiat_p384_addcarryx_u64(&x309, &x310, x308, x295, x269); + uint64_t x311; + fiat_p384_uint1 x312; + fiat_p384_addcarryx_u64(&x311, &x312, x310, 0x0, x270); + uint64_t x313; + uint64_t x314; + fiat_p384_mulx_u64(&x313, &x314, x4, (arg1[5])); + uint64_t x315; + uint64_t x316; + fiat_p384_mulx_u64(&x315, &x316, x4, (arg1[4])); + uint64_t x317; + uint64_t x318; + fiat_p384_mulx_u64(&x317, &x318, x4, (arg1[3])); + uint64_t x319; + uint64_t x320; + fiat_p384_mulx_u64(&x319, &x320, x4, (arg1[2])); + uint64_t x321; + uint64_t x322; + fiat_p384_mulx_u64(&x321, &x322, x4, (arg1[1])); + uint64_t x323; + uint64_t x324; + fiat_p384_mulx_u64(&x323, &x324, x4, (arg1[0])); + uint64_t x325; + fiat_p384_uint1 x326; + fiat_p384_addcarryx_u64(&x325, &x326, 0x0, x321, x324); + uint64_t x327; + fiat_p384_uint1 x328; + fiat_p384_addcarryx_u64(&x327, &x328, x326, x319, x322); + uint64_t x329; + fiat_p384_uint1 x330; + fiat_p384_addcarryx_u64(&x329, &x330, x328, x317, x320); + uint64_t x331; + fiat_p384_uint1 x332; + fiat_p384_addcarryx_u64(&x331, &x332, x330, x315, x318); + uint64_t x333; + fiat_p384_uint1 x334; + fiat_p384_addcarryx_u64(&x333, &x334, x332, x313, x316); + uint64_t x335; + fiat_p384_uint1 x336; + fiat_p384_addcarryx_u64(&x335, &x336, x334, 0x0, x314); + uint64_t x337; + fiat_p384_uint1 x338; + fiat_p384_addcarryx_u64(&x337, &x338, 0x0, x323, x299); + uint64_t x339; + fiat_p384_uint1 x340; + fiat_p384_addcarryx_u64(&x339, &x340, x338, x325, x301); + uint64_t x341; + fiat_p384_uint1 x342; + fiat_p384_addcarryx_u64(&x341, &x342, x340, x327, x303); + uint64_t x343; + fiat_p384_uint1 x344; + fiat_p384_addcarryx_u64(&x343, &x344, x342, x329, x305); + uint64_t x345; + fiat_p384_uint1 x346; + fiat_p384_addcarryx_u64(&x345, &x346, x344, x331, x307); + uint64_t x347; + fiat_p384_uint1 x348; + fiat_p384_addcarryx_u64(&x347, &x348, x346, x333, x309); + uint64_t x349; + fiat_p384_uint1 x350; + fiat_p384_addcarryx_u64(&x349, &x350, x348, x335, x311); + uint64_t x351; + uint64_t x352; + fiat_p384_mulx_u64(&x351, &x352, x337, UINT64_C(0x100000001)); + uint64_t x353; + uint64_t x354; + fiat_p384_mulx_u64(&x353, &x354, x351, UINT64_C(0xffffffffffffffff)); + uint64_t x355; + uint64_t x356; + fiat_p384_mulx_u64(&x355, &x356, x351, UINT64_C(0xffffffffffffffff)); + uint64_t x357; + uint64_t x358; + fiat_p384_mulx_u64(&x357, &x358, x351, UINT64_C(0xffffffffffffffff)); + uint64_t x359; + uint64_t x360; + fiat_p384_mulx_u64(&x359, &x360, x351, UINT64_C(0xfffffffffffffffe)); + uint64_t x361; + uint64_t x362; + fiat_p384_mulx_u64(&x361, &x362, x351, UINT64_C(0xffffffff00000000)); + uint64_t x363; + uint64_t x364; + fiat_p384_mulx_u64(&x363, &x364, x351, UINT32_C(0xffffffff)); + uint64_t x365; + fiat_p384_uint1 x366; + fiat_p384_addcarryx_u64(&x365, &x366, 0x0, x361, x364); + uint64_t x367; + fiat_p384_uint1 x368; + fiat_p384_addcarryx_u64(&x367, &x368, x366, x359, x362); + uint64_t x369; + fiat_p384_uint1 x370; + fiat_p384_addcarryx_u64(&x369, &x370, x368, x357, x360); + uint64_t x371; + fiat_p384_uint1 x372; + fiat_p384_addcarryx_u64(&x371, &x372, x370, x355, x358); + uint64_t x373; + fiat_p384_uint1 x374; + fiat_p384_addcarryx_u64(&x373, &x374, x372, x353, x356); + uint64_t x375; + fiat_p384_uint1 x376; + fiat_p384_addcarryx_u64(&x375, &x376, x374, 0x0, x354); + uint64_t x377; + fiat_p384_uint1 x378; + fiat_p384_addcarryx_u64(&x377, &x378, 0x0, x363, x337); + uint64_t x379; + fiat_p384_uint1 x380; + fiat_p384_addcarryx_u64(&x379, &x380, x378, x365, x339); + uint64_t x381; + fiat_p384_uint1 x382; + fiat_p384_addcarryx_u64(&x381, &x382, x380, x367, x341); + uint64_t x383; + fiat_p384_uint1 x384; + fiat_p384_addcarryx_u64(&x383, &x384, x382, x369, x343); + uint64_t x385; + fiat_p384_uint1 x386; + fiat_p384_addcarryx_u64(&x385, &x386, x384, x371, x345); + uint64_t x387; + fiat_p384_uint1 x388; + fiat_p384_addcarryx_u64(&x387, &x388, x386, x373, x347); + uint64_t x389; + fiat_p384_uint1 x390; + fiat_p384_addcarryx_u64(&x389, &x390, x388, x375, x349); + uint64_t x391; + fiat_p384_uint1 x392; + fiat_p384_addcarryx_u64(&x391, &x392, x390, 0x0, x350); + uint64_t x393; + uint64_t x394; + fiat_p384_mulx_u64(&x393, &x394, x5, (arg1[5])); + uint64_t x395; + uint64_t x396; + fiat_p384_mulx_u64(&x395, &x396, x5, (arg1[4])); + uint64_t x397; + uint64_t x398; + fiat_p384_mulx_u64(&x397, &x398, x5, (arg1[3])); + uint64_t x399; + uint64_t x400; + fiat_p384_mulx_u64(&x399, &x400, x5, (arg1[2])); + uint64_t x401; + uint64_t x402; + fiat_p384_mulx_u64(&x401, &x402, x5, (arg1[1])); + uint64_t x403; + uint64_t x404; + fiat_p384_mulx_u64(&x403, &x404, x5, (arg1[0])); + uint64_t x405; + fiat_p384_uint1 x406; + fiat_p384_addcarryx_u64(&x405, &x406, 0x0, x401, x404); + uint64_t x407; + fiat_p384_uint1 x408; + fiat_p384_addcarryx_u64(&x407, &x408, x406, x399, x402); + uint64_t x409; + fiat_p384_uint1 x410; + fiat_p384_addcarryx_u64(&x409, &x410, x408, x397, x400); + uint64_t x411; + fiat_p384_uint1 x412; + fiat_p384_addcarryx_u64(&x411, &x412, x410, x395, x398); + uint64_t x413; + fiat_p384_uint1 x414; + fiat_p384_addcarryx_u64(&x413, &x414, x412, x393, x396); + uint64_t x415; + fiat_p384_uint1 x416; + fiat_p384_addcarryx_u64(&x415, &x416, x414, 0x0, x394); + uint64_t x417; + fiat_p384_uint1 x418; + fiat_p384_addcarryx_u64(&x417, &x418, 0x0, x403, x379); + uint64_t x419; + fiat_p384_uint1 x420; + fiat_p384_addcarryx_u64(&x419, &x420, x418, x405, x381); + uint64_t x421; + fiat_p384_uint1 x422; + fiat_p384_addcarryx_u64(&x421, &x422, x420, x407, x383); + uint64_t x423; + fiat_p384_uint1 x424; + fiat_p384_addcarryx_u64(&x423, &x424, x422, x409, x385); + uint64_t x425; + fiat_p384_uint1 x426; + fiat_p384_addcarryx_u64(&x425, &x426, x424, x411, x387); + uint64_t x427; + fiat_p384_uint1 x428; + fiat_p384_addcarryx_u64(&x427, &x428, x426, x413, x389); + uint64_t x429; + fiat_p384_uint1 x430; + fiat_p384_addcarryx_u64(&x429, &x430, x428, x415, x391); + uint64_t x431; + uint64_t x432; + fiat_p384_mulx_u64(&x431, &x432, x417, UINT64_C(0x100000001)); + uint64_t x433; + uint64_t x434; + fiat_p384_mulx_u64(&x433, &x434, x431, UINT64_C(0xffffffffffffffff)); + uint64_t x435; + uint64_t x436; + fiat_p384_mulx_u64(&x435, &x436, x431, UINT64_C(0xffffffffffffffff)); + uint64_t x437; + uint64_t x438; + fiat_p384_mulx_u64(&x437, &x438, x431, UINT64_C(0xffffffffffffffff)); + uint64_t x439; + uint64_t x440; + fiat_p384_mulx_u64(&x439, &x440, x431, UINT64_C(0xfffffffffffffffe)); + uint64_t x441; + uint64_t x442; + fiat_p384_mulx_u64(&x441, &x442, x431, UINT64_C(0xffffffff00000000)); + uint64_t x443; + uint64_t x444; + fiat_p384_mulx_u64(&x443, &x444, x431, UINT32_C(0xffffffff)); + uint64_t x445; + fiat_p384_uint1 x446; + fiat_p384_addcarryx_u64(&x445, &x446, 0x0, x441, x444); + uint64_t x447; + fiat_p384_uint1 x448; + fiat_p384_addcarryx_u64(&x447, &x448, x446, x439, x442); + uint64_t x449; + fiat_p384_uint1 x450; + fiat_p384_addcarryx_u64(&x449, &x450, x448, x437, x440); + uint64_t x451; + fiat_p384_uint1 x452; + fiat_p384_addcarryx_u64(&x451, &x452, x450, x435, x438); + uint64_t x453; + fiat_p384_uint1 x454; + fiat_p384_addcarryx_u64(&x453, &x454, x452, x433, x436); + uint64_t x455; + fiat_p384_uint1 x456; + fiat_p384_addcarryx_u64(&x455, &x456, x454, 0x0, x434); + uint64_t x457; + fiat_p384_uint1 x458; + fiat_p384_addcarryx_u64(&x457, &x458, 0x0, x443, x417); + uint64_t x459; + fiat_p384_uint1 x460; + fiat_p384_addcarryx_u64(&x459, &x460, x458, x445, x419); + uint64_t x461; + fiat_p384_uint1 x462; + fiat_p384_addcarryx_u64(&x461, &x462, x460, x447, x421); + uint64_t x463; + fiat_p384_uint1 x464; + fiat_p384_addcarryx_u64(&x463, &x464, x462, x449, x423); + uint64_t x465; + fiat_p384_uint1 x466; + fiat_p384_addcarryx_u64(&x465, &x466, x464, x451, x425); + uint64_t x467; + fiat_p384_uint1 x468; + fiat_p384_addcarryx_u64(&x467, &x468, x466, x453, x427); + uint64_t x469; + fiat_p384_uint1 x470; + fiat_p384_addcarryx_u64(&x469, &x470, x468, x455, x429); + uint64_t x471; + fiat_p384_uint1 x472; + fiat_p384_addcarryx_u64(&x471, &x472, x470, 0x0, x430); + uint64_t x473; + fiat_p384_uint1 x474; + fiat_p384_subborrowx_u64(&x473, &x474, 0x0, x459, UINT32_C(0xffffffff)); + uint64_t x475; + fiat_p384_uint1 x476; + fiat_p384_subborrowx_u64(&x475, &x476, x474, x461, UINT64_C(0xffffffff00000000)); + uint64_t x477; + fiat_p384_uint1 x478; + fiat_p384_subborrowx_u64(&x477, &x478, x476, x463, UINT64_C(0xfffffffffffffffe)); + uint64_t x479; + fiat_p384_uint1 x480; + fiat_p384_subborrowx_u64(&x479, &x480, x478, x465, UINT64_C(0xffffffffffffffff)); + uint64_t x481; + fiat_p384_uint1 x482; + fiat_p384_subborrowx_u64(&x481, &x482, x480, x467, UINT64_C(0xffffffffffffffff)); + uint64_t x483; + fiat_p384_uint1 x484; + fiat_p384_subborrowx_u64(&x483, &x484, x482, x469, UINT64_C(0xffffffffffffffff)); + uint64_t x485; + fiat_p384_uint1 x486; + fiat_p384_subborrowx_u64(&x485, &x486, x484, x471, 0x0); + uint64_t x487; + fiat_p384_cmovznz_u64(&x487, x486, x473, x459); + uint64_t x488; + fiat_p384_cmovznz_u64(&x488, x486, x475, x461); + uint64_t x489; + fiat_p384_cmovznz_u64(&x489, x486, x477, x463); + uint64_t x490; + fiat_p384_cmovznz_u64(&x490, x486, x479, x465); + uint64_t x491; + fiat_p384_cmovznz_u64(&x491, x486, x481, x467); + uint64_t x492; + fiat_p384_cmovznz_u64(&x492, x486, x483, x469); + out1[0] = x487; + out1[1] = x488; + out1[2] = x489; + out1[3] = x490; + out1[4] = x491; + out1[5] = x492; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_add(uint64_t out1[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + uint64_t x1; + fiat_p384_uint1 x2; + fiat_p384_addcarryx_u64(&x1, &x2, 0x0, (arg2[0]), (arg1[0])); + uint64_t x3; + fiat_p384_uint1 x4; + fiat_p384_addcarryx_u64(&x3, &x4, x2, (arg2[1]), (arg1[1])); + uint64_t x5; + fiat_p384_uint1 x6; + fiat_p384_addcarryx_u64(&x5, &x6, x4, (arg2[2]), (arg1[2])); + uint64_t x7; + fiat_p384_uint1 x8; + fiat_p384_addcarryx_u64(&x7, &x8, x6, (arg2[3]), (arg1[3])); + uint64_t x9; + fiat_p384_uint1 x10; + fiat_p384_addcarryx_u64(&x9, &x10, x8, (arg2[4]), (arg1[4])); + uint64_t x11; + fiat_p384_uint1 x12; + fiat_p384_addcarryx_u64(&x11, &x12, x10, (arg2[5]), (arg1[5])); + uint64_t x13; + fiat_p384_uint1 x14; + fiat_p384_subborrowx_u64(&x13, &x14, 0x0, x1, UINT32_C(0xffffffff)); + uint64_t x15; + fiat_p384_uint1 x16; + fiat_p384_subborrowx_u64(&x15, &x16, x14, x3, UINT64_C(0xffffffff00000000)); + uint64_t x17; + fiat_p384_uint1 x18; + fiat_p384_subborrowx_u64(&x17, &x18, x16, x5, UINT64_C(0xfffffffffffffffe)); + uint64_t x19; + fiat_p384_uint1 x20; + fiat_p384_subborrowx_u64(&x19, &x20, x18, x7, UINT64_C(0xffffffffffffffff)); + uint64_t x21; + fiat_p384_uint1 x22; + fiat_p384_subborrowx_u64(&x21, &x22, x20, x9, UINT64_C(0xffffffffffffffff)); + uint64_t x23; + fiat_p384_uint1 x24; + fiat_p384_subborrowx_u64(&x23, &x24, x22, x11, UINT64_C(0xffffffffffffffff)); + uint64_t x25; + fiat_p384_uint1 x26; + fiat_p384_subborrowx_u64(&x25, &x26, x24, x12, 0x0); + uint64_t x27; + fiat_p384_cmovznz_u64(&x27, x26, x13, x1); + uint64_t x28; + fiat_p384_cmovznz_u64(&x28, x26, x15, x3); + uint64_t x29; + fiat_p384_cmovznz_u64(&x29, x26, x17, x5); + uint64_t x30; + fiat_p384_cmovznz_u64(&x30, x26, x19, x7); + uint64_t x31; + fiat_p384_cmovznz_u64(&x31, x26, x21, x9); + uint64_t x32; + fiat_p384_cmovznz_u64(&x32, x26, x23, x11); + out1[0] = x27; + out1[1] = x28; + out1[2] = x29; + out1[3] = x30; + out1[4] = x31; + out1[5] = x32; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_sub(uint64_t out1[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + uint64_t x1; + fiat_p384_uint1 x2; + fiat_p384_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + uint64_t x3; + fiat_p384_uint1 x4; + fiat_p384_subborrowx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1])); + uint64_t x5; + fiat_p384_uint1 x6; + fiat_p384_subborrowx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2])); + uint64_t x7; + fiat_p384_uint1 x8; + fiat_p384_subborrowx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3])); + uint64_t x9; + fiat_p384_uint1 x10; + fiat_p384_subborrowx_u64(&x9, &x10, x8, (arg1[4]), (arg2[4])); + uint64_t x11; + fiat_p384_uint1 x12; + fiat_p384_subborrowx_u64(&x11, &x12, x10, (arg1[5]), (arg2[5])); + uint64_t x13; + fiat_p384_cmovznz_u64(&x13, x12, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x14; + fiat_p384_uint1 x15; + fiat_p384_addcarryx_u64(&x14, &x15, 0x0, (x13 & UINT32_C(0xffffffff)), x1); + uint64_t x16; + fiat_p384_uint1 x17; + fiat_p384_addcarryx_u64(&x16, &x17, x15, (x13 & UINT64_C(0xffffffff00000000)), x3); + uint64_t x18; + fiat_p384_uint1 x19; + fiat_p384_addcarryx_u64(&x18, &x19, x17, (x13 & UINT64_C(0xfffffffffffffffe)), x5); + uint64_t x20; + fiat_p384_uint1 x21; + fiat_p384_addcarryx_u64(&x20, &x21, x19, (x13 & UINT64_C(0xffffffffffffffff)), x7); + uint64_t x22; + fiat_p384_uint1 x23; + fiat_p384_addcarryx_u64(&x22, &x23, x21, (x13 & UINT64_C(0xffffffffffffffff)), x9); + uint64_t x24; + fiat_p384_uint1 x25; + fiat_p384_addcarryx_u64(&x24, &x25, x23, (x13 & UINT64_C(0xffffffffffffffff)), x11); + out1[0] = x14; + out1[1] = x16; + out1[2] = x18; + out1[3] = x20; + out1[4] = x22; + out1[5] = x24; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_opp(uint64_t out1[6], const uint64_t arg1[6]) { + uint64_t x1; + fiat_p384_uint1 x2; + fiat_p384_subborrowx_u64(&x1, &x2, 0x0, 0x0, (arg1[0])); + uint64_t x3; + fiat_p384_uint1 x4; + fiat_p384_subborrowx_u64(&x3, &x4, x2, 0x0, (arg1[1])); + uint64_t x5; + fiat_p384_uint1 x6; + fiat_p384_subborrowx_u64(&x5, &x6, x4, 0x0, (arg1[2])); + uint64_t x7; + fiat_p384_uint1 x8; + fiat_p384_subborrowx_u64(&x7, &x8, x6, 0x0, (arg1[3])); + uint64_t x9; + fiat_p384_uint1 x10; + fiat_p384_subborrowx_u64(&x9, &x10, x8, 0x0, (arg1[4])); + uint64_t x11; + fiat_p384_uint1 x12; + fiat_p384_subborrowx_u64(&x11, &x12, x10, 0x0, (arg1[5])); + uint64_t x13; + fiat_p384_cmovznz_u64(&x13, x12, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x14; + fiat_p384_uint1 x15; + fiat_p384_addcarryx_u64(&x14, &x15, 0x0, (x13 & UINT32_C(0xffffffff)), x1); + uint64_t x16; + fiat_p384_uint1 x17; + fiat_p384_addcarryx_u64(&x16, &x17, x15, (x13 & UINT64_C(0xffffffff00000000)), x3); + uint64_t x18; + fiat_p384_uint1 x19; + fiat_p384_addcarryx_u64(&x18, &x19, x17, (x13 & UINT64_C(0xfffffffffffffffe)), x5); + uint64_t x20; + fiat_p384_uint1 x21; + fiat_p384_addcarryx_u64(&x20, &x21, x19, (x13 & UINT64_C(0xffffffffffffffff)), x7); + uint64_t x22; + fiat_p384_uint1 x23; + fiat_p384_addcarryx_u64(&x22, &x23, x21, (x13 & UINT64_C(0xffffffffffffffff)), x9); + uint64_t x24; + fiat_p384_uint1 x25; + fiat_p384_addcarryx_u64(&x24, &x25, x23, (x13 & UINT64_C(0xffffffffffffffff)), x11); + out1[0] = x14; + out1[1] = x16; + out1[2] = x18; + out1[3] = x20; + out1[4] = x22; + out1[5] = x24; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_from_montgomery(uint64_t out1[6], const uint64_t arg1[6]) { + uint64_t x1 = (arg1[0]); + uint64_t x2; + uint64_t x3; + fiat_p384_mulx_u64(&x2, &x3, x1, UINT64_C(0x100000001)); + uint64_t x4; + uint64_t x5; + fiat_p384_mulx_u64(&x4, &x5, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x6; + uint64_t x7; + fiat_p384_mulx_u64(&x6, &x7, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x8; + uint64_t x9; + fiat_p384_mulx_u64(&x8, &x9, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x10; + uint64_t x11; + fiat_p384_mulx_u64(&x10, &x11, x2, UINT64_C(0xfffffffffffffffe)); + uint64_t x12; + uint64_t x13; + fiat_p384_mulx_u64(&x12, &x13, x2, UINT64_C(0xffffffff00000000)); + uint64_t x14; + uint64_t x15; + fiat_p384_mulx_u64(&x14, &x15, x2, UINT32_C(0xffffffff)); + uint64_t x16; + fiat_p384_uint1 x17; + fiat_p384_addcarryx_u64(&x16, &x17, 0x0, x12, x15); + uint64_t x18; + fiat_p384_uint1 x19; + fiat_p384_addcarryx_u64(&x18, &x19, x17, x10, x13); + uint64_t x20; + fiat_p384_uint1 x21; + fiat_p384_addcarryx_u64(&x20, &x21, x19, x8, x11); + uint64_t x22; + fiat_p384_uint1 x23; + fiat_p384_addcarryx_u64(&x22, &x23, x21, x6, x9); + uint64_t x24; + fiat_p384_uint1 x25; + fiat_p384_addcarryx_u64(&x24, &x25, x23, x4, x7); + uint64_t x26; + fiat_p384_uint1 x27; + fiat_p384_addcarryx_u64(&x26, &x27, 0x0, x14, x1); + uint64_t x28; + fiat_p384_uint1 x29; + fiat_p384_addcarryx_u64(&x28, &x29, x27, x16, 0x0); + uint64_t x30; + fiat_p384_uint1 x31; + fiat_p384_addcarryx_u64(&x30, &x31, x29, x18, 0x0); + uint64_t x32; + fiat_p384_uint1 x33; + fiat_p384_addcarryx_u64(&x32, &x33, x31, x20, 0x0); + uint64_t x34; + fiat_p384_uint1 x35; + fiat_p384_addcarryx_u64(&x34, &x35, x33, x22, 0x0); + uint64_t x36; + fiat_p384_uint1 x37; + fiat_p384_addcarryx_u64(&x36, &x37, x35, x24, 0x0); + uint64_t x38; + fiat_p384_uint1 x39; + fiat_p384_addcarryx_u64(&x38, &x39, x25, 0x0, x5); + uint64_t x40; + fiat_p384_uint1 x41; + fiat_p384_addcarryx_u64(&x40, &x41, x37, x38, 0x0); + uint64_t x42; + fiat_p384_uint1 x43; + fiat_p384_addcarryx_u64(&x42, &x43, 0x0, (arg1[1]), x28); + uint64_t x44; + fiat_p384_uint1 x45; + fiat_p384_addcarryx_u64(&x44, &x45, x43, 0x0, x30); + uint64_t x46; + fiat_p384_uint1 x47; + fiat_p384_addcarryx_u64(&x46, &x47, x45, 0x0, x32); + uint64_t x48; + fiat_p384_uint1 x49; + fiat_p384_addcarryx_u64(&x48, &x49, x47, 0x0, x34); + uint64_t x50; + fiat_p384_uint1 x51; + fiat_p384_addcarryx_u64(&x50, &x51, x49, 0x0, x36); + uint64_t x52; + fiat_p384_uint1 x53; + fiat_p384_addcarryx_u64(&x52, &x53, x51, 0x0, x40); + uint64_t x54; + fiat_p384_uint1 x55; + fiat_p384_addcarryx_u64(&x54, &x55, x41, 0x0, 0x0); + uint64_t x56; + fiat_p384_uint1 x57; + fiat_p384_addcarryx_u64(&x56, &x57, x53, 0x0, (fiat_p384_uint1)x54); + uint64_t x58; + uint64_t x59; + fiat_p384_mulx_u64(&x58, &x59, x42, UINT64_C(0x100000001)); + uint64_t x60; + uint64_t x61; + fiat_p384_mulx_u64(&x60, &x61, x58, UINT64_C(0xffffffffffffffff)); + uint64_t x62; + uint64_t x63; + fiat_p384_mulx_u64(&x62, &x63, x58, UINT64_C(0xffffffffffffffff)); + uint64_t x64; + uint64_t x65; + fiat_p384_mulx_u64(&x64, &x65, x58, UINT64_C(0xffffffffffffffff)); + uint64_t x66; + uint64_t x67; + fiat_p384_mulx_u64(&x66, &x67, x58, UINT64_C(0xfffffffffffffffe)); + uint64_t x68; + uint64_t x69; + fiat_p384_mulx_u64(&x68, &x69, x58, UINT64_C(0xffffffff00000000)); + uint64_t x70; + uint64_t x71; + fiat_p384_mulx_u64(&x70, &x71, x58, UINT32_C(0xffffffff)); + uint64_t x72; + fiat_p384_uint1 x73; + fiat_p384_addcarryx_u64(&x72, &x73, 0x0, x68, x71); + uint64_t x74; + fiat_p384_uint1 x75; + fiat_p384_addcarryx_u64(&x74, &x75, x73, x66, x69); + uint64_t x76; + fiat_p384_uint1 x77; + fiat_p384_addcarryx_u64(&x76, &x77, x75, x64, x67); + uint64_t x78; + fiat_p384_uint1 x79; + fiat_p384_addcarryx_u64(&x78, &x79, x77, x62, x65); + uint64_t x80; + fiat_p384_uint1 x81; + fiat_p384_addcarryx_u64(&x80, &x81, x79, x60, x63); + uint64_t x82; + fiat_p384_uint1 x83; + fiat_p384_addcarryx_u64(&x82, &x83, 0x0, x70, x42); + uint64_t x84; + fiat_p384_uint1 x85; + fiat_p384_addcarryx_u64(&x84, &x85, x83, x72, x44); + uint64_t x86; + fiat_p384_uint1 x87; + fiat_p384_addcarryx_u64(&x86, &x87, x85, x74, x46); + uint64_t x88; + fiat_p384_uint1 x89; + fiat_p384_addcarryx_u64(&x88, &x89, x87, x76, x48); + uint64_t x90; + fiat_p384_uint1 x91; + fiat_p384_addcarryx_u64(&x90, &x91, x89, x78, x50); + uint64_t x92; + fiat_p384_uint1 x93; + fiat_p384_addcarryx_u64(&x92, &x93, x91, x80, x52); + uint64_t x94; + fiat_p384_uint1 x95; + fiat_p384_addcarryx_u64(&x94, &x95, x81, 0x0, x61); + uint64_t x96; + fiat_p384_uint1 x97; + fiat_p384_addcarryx_u64(&x96, &x97, x93, x94, x56); + uint64_t x98; + fiat_p384_uint1 x99; + fiat_p384_addcarryx_u64(&x98, &x99, 0x0, (arg1[2]), x84); + uint64_t x100; + fiat_p384_uint1 x101; + fiat_p384_addcarryx_u64(&x100, &x101, x99, 0x0, x86); + uint64_t x102; + fiat_p384_uint1 x103; + fiat_p384_addcarryx_u64(&x102, &x103, x101, 0x0, x88); + uint64_t x104; + fiat_p384_uint1 x105; + fiat_p384_addcarryx_u64(&x104, &x105, x103, 0x0, x90); + uint64_t x106; + fiat_p384_uint1 x107; + fiat_p384_addcarryx_u64(&x106, &x107, x105, 0x0, x92); + uint64_t x108; + fiat_p384_uint1 x109; + fiat_p384_addcarryx_u64(&x108, &x109, x107, 0x0, x96); + uint64_t x110; + fiat_p384_uint1 x111; + fiat_p384_addcarryx_u64(&x110, &x111, x97, 0x0, x57); + uint64_t x112; + fiat_p384_uint1 x113; + fiat_p384_addcarryx_u64(&x112, &x113, x109, 0x0, (fiat_p384_uint1)x110); + uint64_t x114; + uint64_t x115; + fiat_p384_mulx_u64(&x114, &x115, x98, UINT64_C(0x100000001)); + uint64_t x116; + uint64_t x117; + fiat_p384_mulx_u64(&x116, &x117, x114, UINT64_C(0xffffffffffffffff)); + uint64_t x118; + uint64_t x119; + fiat_p384_mulx_u64(&x118, &x119, x114, UINT64_C(0xffffffffffffffff)); + uint64_t x120; + uint64_t x121; + fiat_p384_mulx_u64(&x120, &x121, x114, UINT64_C(0xffffffffffffffff)); + uint64_t x122; + uint64_t x123; + fiat_p384_mulx_u64(&x122, &x123, x114, UINT64_C(0xfffffffffffffffe)); + uint64_t x124; + uint64_t x125; + fiat_p384_mulx_u64(&x124, &x125, x114, UINT64_C(0xffffffff00000000)); + uint64_t x126; + uint64_t x127; + fiat_p384_mulx_u64(&x126, &x127, x114, UINT32_C(0xffffffff)); + uint64_t x128; + fiat_p384_uint1 x129; + fiat_p384_addcarryx_u64(&x128, &x129, 0x0, x124, x127); + uint64_t x130; + fiat_p384_uint1 x131; + fiat_p384_addcarryx_u64(&x130, &x131, x129, x122, x125); + uint64_t x132; + fiat_p384_uint1 x133; + fiat_p384_addcarryx_u64(&x132, &x133, x131, x120, x123); + uint64_t x134; + fiat_p384_uint1 x135; + fiat_p384_addcarryx_u64(&x134, &x135, x133, x118, x121); + uint64_t x136; + fiat_p384_uint1 x137; + fiat_p384_addcarryx_u64(&x136, &x137, x135, x116, x119); + uint64_t x138; + fiat_p384_uint1 x139; + fiat_p384_addcarryx_u64(&x138, &x139, 0x0, x126, x98); + uint64_t x140; + fiat_p384_uint1 x141; + fiat_p384_addcarryx_u64(&x140, &x141, x139, x128, x100); + uint64_t x142; + fiat_p384_uint1 x143; + fiat_p384_addcarryx_u64(&x142, &x143, x141, x130, x102); + uint64_t x144; + fiat_p384_uint1 x145; + fiat_p384_addcarryx_u64(&x144, &x145, x143, x132, x104); + uint64_t x146; + fiat_p384_uint1 x147; + fiat_p384_addcarryx_u64(&x146, &x147, x145, x134, x106); + uint64_t x148; + fiat_p384_uint1 x149; + fiat_p384_addcarryx_u64(&x148, &x149, x147, x136, x108); + uint64_t x150; + fiat_p384_uint1 x151; + fiat_p384_addcarryx_u64(&x150, &x151, x137, 0x0, x117); + uint64_t x152; + fiat_p384_uint1 x153; + fiat_p384_addcarryx_u64(&x152, &x153, x149, x150, x112); + uint64_t x154; + fiat_p384_uint1 x155; + fiat_p384_addcarryx_u64(&x154, &x155, 0x0, (arg1[3]), x140); + uint64_t x156; + fiat_p384_uint1 x157; + fiat_p384_addcarryx_u64(&x156, &x157, x155, 0x0, x142); + uint64_t x158; + fiat_p384_uint1 x159; + fiat_p384_addcarryx_u64(&x158, &x159, x157, 0x0, x144); + uint64_t x160; + fiat_p384_uint1 x161; + fiat_p384_addcarryx_u64(&x160, &x161, x159, 0x0, x146); + uint64_t x162; + fiat_p384_uint1 x163; + fiat_p384_addcarryx_u64(&x162, &x163, x161, 0x0, x148); + uint64_t x164; + fiat_p384_uint1 x165; + fiat_p384_addcarryx_u64(&x164, &x165, x163, 0x0, x152); + uint64_t x166; + fiat_p384_uint1 x167; + fiat_p384_addcarryx_u64(&x166, &x167, x153, 0x0, x113); + uint64_t x168; + fiat_p384_uint1 x169; + fiat_p384_addcarryx_u64(&x168, &x169, x165, 0x0, (fiat_p384_uint1)x166); + uint64_t x170; + uint64_t x171; + fiat_p384_mulx_u64(&x170, &x171, x154, UINT64_C(0x100000001)); + uint64_t x172; + uint64_t x173; + fiat_p384_mulx_u64(&x172, &x173, x170, UINT64_C(0xffffffffffffffff)); + uint64_t x174; + uint64_t x175; + fiat_p384_mulx_u64(&x174, &x175, x170, UINT64_C(0xffffffffffffffff)); + uint64_t x176; + uint64_t x177; + fiat_p384_mulx_u64(&x176, &x177, x170, UINT64_C(0xffffffffffffffff)); + uint64_t x178; + uint64_t x179; + fiat_p384_mulx_u64(&x178, &x179, x170, UINT64_C(0xfffffffffffffffe)); + uint64_t x180; + uint64_t x181; + fiat_p384_mulx_u64(&x180, &x181, x170, UINT64_C(0xffffffff00000000)); + uint64_t x182; + uint64_t x183; + fiat_p384_mulx_u64(&x182, &x183, x170, UINT32_C(0xffffffff)); + uint64_t x184; + fiat_p384_uint1 x185; + fiat_p384_addcarryx_u64(&x184, &x185, 0x0, x180, x183); + uint64_t x186; + fiat_p384_uint1 x187; + fiat_p384_addcarryx_u64(&x186, &x187, x185, x178, x181); + uint64_t x188; + fiat_p384_uint1 x189; + fiat_p384_addcarryx_u64(&x188, &x189, x187, x176, x179); + uint64_t x190; + fiat_p384_uint1 x191; + fiat_p384_addcarryx_u64(&x190, &x191, x189, x174, x177); + uint64_t x192; + fiat_p384_uint1 x193; + fiat_p384_addcarryx_u64(&x192, &x193, x191, x172, x175); + uint64_t x194; + fiat_p384_uint1 x195; + fiat_p384_addcarryx_u64(&x194, &x195, 0x0, x182, x154); + uint64_t x196; + fiat_p384_uint1 x197; + fiat_p384_addcarryx_u64(&x196, &x197, x195, x184, x156); + uint64_t x198; + fiat_p384_uint1 x199; + fiat_p384_addcarryx_u64(&x198, &x199, x197, x186, x158); + uint64_t x200; + fiat_p384_uint1 x201; + fiat_p384_addcarryx_u64(&x200, &x201, x199, x188, x160); + uint64_t x202; + fiat_p384_uint1 x203; + fiat_p384_addcarryx_u64(&x202, &x203, x201, x190, x162); + uint64_t x204; + fiat_p384_uint1 x205; + fiat_p384_addcarryx_u64(&x204, &x205, x203, x192, x164); + uint64_t x206; + fiat_p384_uint1 x207; + fiat_p384_addcarryx_u64(&x206, &x207, x193, 0x0, x173); + uint64_t x208; + fiat_p384_uint1 x209; + fiat_p384_addcarryx_u64(&x208, &x209, x205, x206, x168); + uint64_t x210; + fiat_p384_uint1 x211; + fiat_p384_addcarryx_u64(&x210, &x211, 0x0, (arg1[4]), x196); + uint64_t x212; + fiat_p384_uint1 x213; + fiat_p384_addcarryx_u64(&x212, &x213, x211, 0x0, x198); + uint64_t x214; + fiat_p384_uint1 x215; + fiat_p384_addcarryx_u64(&x214, &x215, x213, 0x0, x200); + uint64_t x216; + fiat_p384_uint1 x217; + fiat_p384_addcarryx_u64(&x216, &x217, x215, 0x0, x202); + uint64_t x218; + fiat_p384_uint1 x219; + fiat_p384_addcarryx_u64(&x218, &x219, x217, 0x0, x204); + uint64_t x220; + fiat_p384_uint1 x221; + fiat_p384_addcarryx_u64(&x220, &x221, x219, 0x0, x208); + uint64_t x222; + fiat_p384_uint1 x223; + fiat_p384_addcarryx_u64(&x222, &x223, x209, 0x0, x169); + uint64_t x224; + fiat_p384_uint1 x225; + fiat_p384_addcarryx_u64(&x224, &x225, x221, 0x0, (fiat_p384_uint1)x222); + uint64_t x226; + uint64_t x227; + fiat_p384_mulx_u64(&x226, &x227, x210, UINT64_C(0x100000001)); + uint64_t x228; + uint64_t x229; + fiat_p384_mulx_u64(&x228, &x229, x226, UINT64_C(0xffffffffffffffff)); + uint64_t x230; + uint64_t x231; + fiat_p384_mulx_u64(&x230, &x231, x226, UINT64_C(0xffffffffffffffff)); + uint64_t x232; + uint64_t x233; + fiat_p384_mulx_u64(&x232, &x233, x226, UINT64_C(0xffffffffffffffff)); + uint64_t x234; + uint64_t x235; + fiat_p384_mulx_u64(&x234, &x235, x226, UINT64_C(0xfffffffffffffffe)); + uint64_t x236; + uint64_t x237; + fiat_p384_mulx_u64(&x236, &x237, x226, UINT64_C(0xffffffff00000000)); + uint64_t x238; + uint64_t x239; + fiat_p384_mulx_u64(&x238, &x239, x226, UINT32_C(0xffffffff)); + uint64_t x240; + fiat_p384_uint1 x241; + fiat_p384_addcarryx_u64(&x240, &x241, 0x0, x236, x239); + uint64_t x242; + fiat_p384_uint1 x243; + fiat_p384_addcarryx_u64(&x242, &x243, x241, x234, x237); + uint64_t x244; + fiat_p384_uint1 x245; + fiat_p384_addcarryx_u64(&x244, &x245, x243, x232, x235); + uint64_t x246; + fiat_p384_uint1 x247; + fiat_p384_addcarryx_u64(&x246, &x247, x245, x230, x233); + uint64_t x248; + fiat_p384_uint1 x249; + fiat_p384_addcarryx_u64(&x248, &x249, x247, x228, x231); + uint64_t x250; + fiat_p384_uint1 x251; + fiat_p384_addcarryx_u64(&x250, &x251, 0x0, x238, x210); + uint64_t x252; + fiat_p384_uint1 x253; + fiat_p384_addcarryx_u64(&x252, &x253, x251, x240, x212); + uint64_t x254; + fiat_p384_uint1 x255; + fiat_p384_addcarryx_u64(&x254, &x255, x253, x242, x214); + uint64_t x256; + fiat_p384_uint1 x257; + fiat_p384_addcarryx_u64(&x256, &x257, x255, x244, x216); + uint64_t x258; + fiat_p384_uint1 x259; + fiat_p384_addcarryx_u64(&x258, &x259, x257, x246, x218); + uint64_t x260; + fiat_p384_uint1 x261; + fiat_p384_addcarryx_u64(&x260, &x261, x259, x248, x220); + uint64_t x262; + fiat_p384_uint1 x263; + fiat_p384_addcarryx_u64(&x262, &x263, x249, 0x0, x229); + uint64_t x264; + fiat_p384_uint1 x265; + fiat_p384_addcarryx_u64(&x264, &x265, x261, x262, x224); + uint64_t x266; + fiat_p384_uint1 x267; + fiat_p384_addcarryx_u64(&x266, &x267, 0x0, (arg1[5]), x252); + uint64_t x268; + fiat_p384_uint1 x269; + fiat_p384_addcarryx_u64(&x268, &x269, x267, 0x0, x254); + uint64_t x270; + fiat_p384_uint1 x271; + fiat_p384_addcarryx_u64(&x270, &x271, x269, 0x0, x256); + uint64_t x272; + fiat_p384_uint1 x273; + fiat_p384_addcarryx_u64(&x272, &x273, x271, 0x0, x258); + uint64_t x274; + fiat_p384_uint1 x275; + fiat_p384_addcarryx_u64(&x274, &x275, x273, 0x0, x260); + uint64_t x276; + fiat_p384_uint1 x277; + fiat_p384_addcarryx_u64(&x276, &x277, x275, 0x0, x264); + uint64_t x278; + fiat_p384_uint1 x279; + fiat_p384_addcarryx_u64(&x278, &x279, x265, 0x0, x225); + uint64_t x280; + fiat_p384_uint1 x281; + fiat_p384_addcarryx_u64(&x280, &x281, x277, 0x0, (fiat_p384_uint1)x278); + uint64_t x282; + uint64_t x283; + fiat_p384_mulx_u64(&x282, &x283, x266, UINT64_C(0x100000001)); + uint64_t x284; + uint64_t x285; + fiat_p384_mulx_u64(&x284, &x285, x282, UINT64_C(0xffffffffffffffff)); + uint64_t x286; + uint64_t x287; + fiat_p384_mulx_u64(&x286, &x287, x282, UINT64_C(0xffffffffffffffff)); + uint64_t x288; + uint64_t x289; + fiat_p384_mulx_u64(&x288, &x289, x282, UINT64_C(0xffffffffffffffff)); + uint64_t x290; + uint64_t x291; + fiat_p384_mulx_u64(&x290, &x291, x282, UINT64_C(0xfffffffffffffffe)); + uint64_t x292; + uint64_t x293; + fiat_p384_mulx_u64(&x292, &x293, x282, UINT64_C(0xffffffff00000000)); + uint64_t x294; + uint64_t x295; + fiat_p384_mulx_u64(&x294, &x295, x282, UINT32_C(0xffffffff)); + uint64_t x296; + fiat_p384_uint1 x297; + fiat_p384_addcarryx_u64(&x296, &x297, 0x0, x292, x295); + uint64_t x298; + fiat_p384_uint1 x299; + fiat_p384_addcarryx_u64(&x298, &x299, x297, x290, x293); + uint64_t x300; + fiat_p384_uint1 x301; + fiat_p384_addcarryx_u64(&x300, &x301, x299, x288, x291); + uint64_t x302; + fiat_p384_uint1 x303; + fiat_p384_addcarryx_u64(&x302, &x303, x301, x286, x289); + uint64_t x304; + fiat_p384_uint1 x305; + fiat_p384_addcarryx_u64(&x304, &x305, x303, x284, x287); + uint64_t x306; + fiat_p384_uint1 x307; + fiat_p384_addcarryx_u64(&x306, &x307, 0x0, x294, x266); + uint64_t x308; + fiat_p384_uint1 x309; + fiat_p384_addcarryx_u64(&x308, &x309, x307, x296, x268); + uint64_t x310; + fiat_p384_uint1 x311; + fiat_p384_addcarryx_u64(&x310, &x311, x309, x298, x270); + uint64_t x312; + fiat_p384_uint1 x313; + fiat_p384_addcarryx_u64(&x312, &x313, x311, x300, x272); + uint64_t x314; + fiat_p384_uint1 x315; + fiat_p384_addcarryx_u64(&x314, &x315, x313, x302, x274); + uint64_t x316; + fiat_p384_uint1 x317; + fiat_p384_addcarryx_u64(&x316, &x317, x315, x304, x276); + uint64_t x318; + fiat_p384_uint1 x319; + fiat_p384_addcarryx_u64(&x318, &x319, x305, 0x0, x285); + uint64_t x320; + fiat_p384_uint1 x321; + fiat_p384_addcarryx_u64(&x320, &x321, x317, x318, x280); + uint64_t x322; + fiat_p384_uint1 x323; + fiat_p384_subborrowx_u64(&x322, &x323, 0x0, x308, UINT32_C(0xffffffff)); + uint64_t x324; + fiat_p384_uint1 x325; + fiat_p384_subborrowx_u64(&x324, &x325, x323, x310, UINT64_C(0xffffffff00000000)); + uint64_t x326; + fiat_p384_uint1 x327; + fiat_p384_subborrowx_u64(&x326, &x327, x325, x312, UINT64_C(0xfffffffffffffffe)); + uint64_t x328; + fiat_p384_uint1 x329; + fiat_p384_subborrowx_u64(&x328, &x329, x327, x314, UINT64_C(0xffffffffffffffff)); + uint64_t x330; + fiat_p384_uint1 x331; + fiat_p384_subborrowx_u64(&x330, &x331, x329, x316, UINT64_C(0xffffffffffffffff)); + uint64_t x332; + fiat_p384_uint1 x333; + fiat_p384_subborrowx_u64(&x332, &x333, x331, x320, UINT64_C(0xffffffffffffffff)); + uint64_t x334; + fiat_p384_uint1 x335; + fiat_p384_addcarryx_u64(&x334, &x335, x321, 0x0, x281); + uint64_t x336; + fiat_p384_uint1 x337; + fiat_p384_subborrowx_u64(&x336, &x337, x333, (fiat_p384_uint1)x334, 0x0); + uint64_t x338; + fiat_p384_cmovznz_u64(&x338, x337, x322, x308); + uint64_t x339; + fiat_p384_cmovznz_u64(&x339, x337, x324, x310); + uint64_t x340; + fiat_p384_cmovznz_u64(&x340, x337, x326, x312); + uint64_t x341; + fiat_p384_cmovznz_u64(&x341, x337, x328, x314); + uint64_t x342; + fiat_p384_cmovznz_u64(&x342, x337, x330, x316); + uint64_t x343; + fiat_p384_cmovznz_u64(&x343, x337, x332, x320); + out1[0] = x338; + out1[1] = x339; + out1[2] = x340; + out1[3] = x341; + out1[4] = x342; + out1[5] = x343; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p384_nonzero(uint64_t* out1, const uint64_t arg1[6]) { + uint64_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | ((arg1[5]) | (uint64_t)0x0)))))); + *out1 = x1; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_selectznz(uint64_t out1[6], fiat_p384_uint1 arg1, const uint64_t arg2[6], const uint64_t arg3[6]) { + uint64_t x1; + fiat_p384_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0])); + uint64_t x2; + fiat_p384_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1])); + uint64_t x3; + fiat_p384_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2])); + uint64_t x4; + fiat_p384_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3])); + uint64_t x5; + fiat_p384_cmovznz_u64(&x5, arg1, (arg2[4]), (arg3[4])); + uint64_t x6; + fiat_p384_cmovznz_u64(&x6, arg1, (arg2[5]), (arg3[5])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_p384_to_bytes(uint8_t out1[48], const uint64_t arg1[6]) { + uint64_t x1 = (arg1[5]); + uint64_t x2 = (arg1[4]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[2]); + uint64_t x5 = (arg1[1]); + uint64_t x6 = (arg1[0]); + uint64_t x7 = (x6 >> 8); + uint8_t x8 = (uint8_t)(x6 & UINT8_C(0xff)); + uint64_t x9 = (x7 >> 8); + uint8_t x10 = (uint8_t)(x7 & UINT8_C(0xff)); + uint64_t x11 = (x9 >> 8); + uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff)); + uint64_t x13 = (x11 >> 8); + uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff)); + uint64_t x15 = (x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint64_t x17 = (x15 >> 8); + uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff)); + uint8_t x19 = (uint8_t)(x17 >> 8); + uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff)); + fiat_p384_uint1 x21 = (fiat_p384_uint1)(x19 >> 8); + uint8_t x22 = (uint8_t)(x19 & UINT8_C(0xff)); + uint64_t x23 = (x21 + x5); + uint64_t x24 = (x23 >> 8); + uint8_t x25 = (uint8_t)(x23 & UINT8_C(0xff)); + uint64_t x26 = (x24 >> 8); + uint8_t x27 = (uint8_t)(x24 & UINT8_C(0xff)); + uint64_t x28 = (x26 >> 8); + uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff)); + uint64_t x30 = (x28 >> 8); + uint8_t x31 = (uint8_t)(x28 & UINT8_C(0xff)); + uint64_t x32 = (x30 >> 8); + uint8_t x33 = (uint8_t)(x30 & UINT8_C(0xff)); + uint64_t x34 = (x32 >> 8); + uint8_t x35 = (uint8_t)(x32 & UINT8_C(0xff)); + uint8_t x36 = (uint8_t)(x34 >> 8); + uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff)); + fiat_p384_uint1 x38 = (fiat_p384_uint1)(x36 >> 8); + uint8_t x39 = (uint8_t)(x36 & UINT8_C(0xff)); + uint64_t x40 = (x38 + x4); + uint64_t x41 = (x40 >> 8); + uint8_t x42 = (uint8_t)(x40 & UINT8_C(0xff)); + uint64_t x43 = (x41 >> 8); + uint8_t x44 = (uint8_t)(x41 & UINT8_C(0xff)); + uint64_t x45 = (x43 >> 8); + uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff)); + uint64_t x47 = (x45 >> 8); + uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); + uint64_t x49 = (x47 >> 8); + uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); + uint64_t x51 = (x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + uint8_t x53 = (uint8_t)(x51 >> 8); + uint8_t x54 = (uint8_t)(x51 & UINT8_C(0xff)); + fiat_p384_uint1 x55 = (fiat_p384_uint1)(x53 >> 8); + uint8_t x56 = (uint8_t)(x53 & UINT8_C(0xff)); + uint64_t x57 = (x55 + x3); + uint64_t x58 = (x57 >> 8); + uint8_t x59 = (uint8_t)(x57 & UINT8_C(0xff)); + uint64_t x60 = (x58 >> 8); + uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); + uint64_t x62 = (x60 >> 8); + uint8_t x63 = (uint8_t)(x60 & UINT8_C(0xff)); + uint64_t x64 = (x62 >> 8); + uint8_t x65 = (uint8_t)(x62 & UINT8_C(0xff)); + uint64_t x66 = (x64 >> 8); + uint8_t x67 = (uint8_t)(x64 & UINT8_C(0xff)); + uint64_t x68 = (x66 >> 8); + uint8_t x69 = (uint8_t)(x66 & UINT8_C(0xff)); + uint8_t x70 = (uint8_t)(x68 >> 8); + uint8_t x71 = (uint8_t)(x68 & UINT8_C(0xff)); + fiat_p384_uint1 x72 = (fiat_p384_uint1)(x70 >> 8); + uint8_t x73 = (uint8_t)(x70 & UINT8_C(0xff)); + uint64_t x74 = (x72 + x2); + uint64_t x75 = (x74 >> 8); + uint8_t x76 = (uint8_t)(x74 & UINT8_C(0xff)); + uint64_t x77 = (x75 >> 8); + uint8_t x78 = (uint8_t)(x75 & UINT8_C(0xff)); + uint64_t x79 = (x77 >> 8); + uint8_t x80 = (uint8_t)(x77 & UINT8_C(0xff)); + uint64_t x81 = (x79 >> 8); + uint8_t x82 = (uint8_t)(x79 & UINT8_C(0xff)); + uint64_t x83 = (x81 >> 8); + uint8_t x84 = (uint8_t)(x81 & UINT8_C(0xff)); + uint64_t x85 = (x83 >> 8); + uint8_t x86 = (uint8_t)(x83 & UINT8_C(0xff)); + uint8_t x87 = (uint8_t)(x85 >> 8); + uint8_t x88 = (uint8_t)(x85 & UINT8_C(0xff)); + fiat_p384_uint1 x89 = (fiat_p384_uint1)(x87 >> 8); + uint8_t x90 = (uint8_t)(x87 & UINT8_C(0xff)); + uint64_t x91 = (x89 + x1); + uint64_t x92 = (x91 >> 8); + uint8_t x93 = (uint8_t)(x91 & UINT8_C(0xff)); + uint64_t x94 = (x92 >> 8); + uint8_t x95 = (uint8_t)(x92 & UINT8_C(0xff)); + uint64_t x96 = (x94 >> 8); + uint8_t x97 = (uint8_t)(x94 & UINT8_C(0xff)); + uint64_t x98 = (x96 >> 8); + uint8_t x99 = (uint8_t)(x96 & UINT8_C(0xff)); + uint64_t x100 = (x98 >> 8); + uint8_t x101 = (uint8_t)(x98 & UINT8_C(0xff)); + uint64_t x102 = (x100 >> 8); + uint8_t x103 = (uint8_t)(x100 & UINT8_C(0xff)); + uint8_t x104 = (uint8_t)(x102 >> 8); + uint8_t x105 = (uint8_t)(x102 & UINT8_C(0xff)); + out1[0] = x8; + out1[1] = x10; + out1[2] = x12; + out1[3] = x14; + out1[4] = x16; + out1[5] = x18; + out1[6] = x20; + out1[7] = x22; + out1[8] = x25; + out1[9] = x27; + out1[10] = x29; + out1[11] = x31; + out1[12] = x33; + out1[13] = x35; + out1[14] = x37; + out1[15] = x39; + out1[16] = x42; + out1[17] = x44; + out1[18] = x46; + out1[19] = x48; + out1[20] = x50; + out1[21] = x52; + out1[22] = x54; + out1[23] = x56; + out1[24] = x59; + out1[25] = x61; + out1[26] = x63; + out1[27] = x65; + out1[28] = x67; + out1[29] = x69; + out1[30] = x71; + out1[31] = x73; + out1[32] = x76; + out1[33] = x78; + out1[34] = x80; + out1[35] = x82; + out1[36] = x84; + out1[37] = x86; + out1[38] = x88; + out1[39] = x90; + out1[40] = x93; + out1[41] = x95; + out1[42] = x97; + out1[43] = x99; + out1[44] = x101; + out1[45] = x103; + out1[46] = x105; + out1[47] = x104; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p384_from_bytes(uint64_t out1[6], const uint8_t arg1[48]) { + uint64_t x1 = ((uint64_t)(arg1[47]) << 56); + uint64_t x2 = ((uint64_t)(arg1[46]) << 48); + uint64_t x3 = ((uint64_t)(arg1[45]) << 40); + uint64_t x4 = ((uint64_t)(arg1[44]) << 32); + uint64_t x5 = ((uint64_t)(arg1[43]) << 24); + uint64_t x6 = ((uint64_t)(arg1[42]) << 16); + uint64_t x7 = ((uint64_t)(arg1[41]) << 8); + uint8_t x8 = (arg1[40]); + uint64_t x9 = ((uint64_t)(arg1[39]) << 56); + uint64_t x10 = ((uint64_t)(arg1[38]) << 48); + uint64_t x11 = ((uint64_t)(arg1[37]) << 40); + uint64_t x12 = ((uint64_t)(arg1[36]) << 32); + uint64_t x13 = ((uint64_t)(arg1[35]) << 24); + uint64_t x14 = ((uint64_t)(arg1[34]) << 16); + uint64_t x15 = ((uint64_t)(arg1[33]) << 8); + uint8_t x16 = (arg1[32]); + uint64_t x17 = ((uint64_t)(arg1[31]) << 56); + uint64_t x18 = ((uint64_t)(arg1[30]) << 48); + uint64_t x19 = ((uint64_t)(arg1[29]) << 40); + uint64_t x20 = ((uint64_t)(arg1[28]) << 32); + uint64_t x21 = ((uint64_t)(arg1[27]) << 24); + uint64_t x22 = ((uint64_t)(arg1[26]) << 16); + uint64_t x23 = ((uint64_t)(arg1[25]) << 8); + uint8_t x24 = (arg1[24]); + uint64_t x25 = ((uint64_t)(arg1[23]) << 56); + uint64_t x26 = ((uint64_t)(arg1[22]) << 48); + uint64_t x27 = ((uint64_t)(arg1[21]) << 40); + uint64_t x28 = ((uint64_t)(arg1[20]) << 32); + uint64_t x29 = ((uint64_t)(arg1[19]) << 24); + uint64_t x30 = ((uint64_t)(arg1[18]) << 16); + uint64_t x31 = ((uint64_t)(arg1[17]) << 8); + uint8_t x32 = (arg1[16]); + uint64_t x33 = ((uint64_t)(arg1[15]) << 56); + uint64_t x34 = ((uint64_t)(arg1[14]) << 48); + uint64_t x35 = ((uint64_t)(arg1[13]) << 40); + uint64_t x36 = ((uint64_t)(arg1[12]) << 32); + uint64_t x37 = ((uint64_t)(arg1[11]) << 24); + uint64_t x38 = ((uint64_t)(arg1[10]) << 16); + uint64_t x39 = ((uint64_t)(arg1[9]) << 8); + uint8_t x40 = (arg1[8]); + uint64_t x41 = ((uint64_t)(arg1[7]) << 56); + uint64_t x42 = ((uint64_t)(arg1[6]) << 48); + uint64_t x43 = ((uint64_t)(arg1[5]) << 40); + uint64_t x44 = ((uint64_t)(arg1[4]) << 32); + uint64_t x45 = ((uint64_t)(arg1[3]) << 24); + uint64_t x46 = ((uint64_t)(arg1[2]) << 16); + uint64_t x47 = ((uint64_t)(arg1[1]) << 8); + uint8_t x48 = (arg1[0]); + uint64_t x49 = (x48 + (x47 + (x46 + (x45 + (x44 + (x43 + (x42 + x41))))))); + fiat_p384_uint1 x50 = (fiat_p384_uint1)((fiat_p384_uint128)x49 >> 64); + uint64_t x51 = (x49 & UINT64_C(0xffffffffffffffff)); + uint64_t x52 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + uint64_t x53 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + uint64_t x54 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + uint64_t x55 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + uint64_t x56 = (x40 + (x39 + (x38 + (x37 + (x36 + (x35 + (x34 + x33))))))); + uint64_t x57 = (x50 + x56); + fiat_p384_uint1 x58 = (fiat_p384_uint1)((fiat_p384_uint128)x57 >> 64); + uint64_t x59 = (x57 & UINT64_C(0xffffffffffffffff)); + uint64_t x60 = (x58 + x55); + fiat_p384_uint1 x61 = (fiat_p384_uint1)((fiat_p384_uint128)x60 >> 64); + uint64_t x62 = (x60 & UINT64_C(0xffffffffffffffff)); + uint64_t x63 = (x61 + x54); + fiat_p384_uint1 x64 = (fiat_p384_uint1)((fiat_p384_uint128)x63 >> 64); + uint64_t x65 = (x63 & UINT64_C(0xffffffffffffffff)); + uint64_t x66 = (x64 + x53); + fiat_p384_uint1 x67 = (fiat_p384_uint1)((fiat_p384_uint128)x66 >> 64); + uint64_t x68 = (x66 & UINT64_C(0xffffffffffffffff)); + uint64_t x69 = (x67 + x52); + out1[0] = x51; + out1[1] = x59; + out1[2] = x62; + out1[3] = x65; + out1[4] = x68; + out1[5] = x69; +} + diff --git a/p521_32.c b/p521_32.c new file mode 100644 index 000000000..a41c8199e --- /dev/null +++ b/p521_32.c @@ -0,0 +1,1524 @@ +/* Autogenerated */ +/* curve description: p521 */ +/* requested operations: (all) */ +/* n = 17 (from "17") */ +/* s = 0x20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (from "2^521") */ +/* c = [(1, 1)] (from "1,1") */ +/* machine_wordsize = 32 (from "32") */ + +#include <stdint.h> +typedef unsigned char fiat_p521_uint1; +typedef signed char fiat_p521_int1; +typedef signed __int128 fiat_p521_int128; +typedef unsigned __int128 fiat_p521_uint128; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x3fffffff] + * arg3: [0x0 ~> 0x3fffffff] + * Output Bounds: + * out1: [0x0 ~> 0x3fffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_addcarryx_u30(uint32_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint32_t arg2, uint32_t arg3) { + uint32_t x1 = ((arg1 + arg2) + arg3); + uint32_t x2 = (x1 & UINT32_C(0x3fffffff)); + fiat_p521_uint1 x3 = (fiat_p521_uint1)(x1 >> 30); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x3fffffff] + * arg3: [0x0 ~> 0x3fffffff] + * Output Bounds: + * out1: [0x0 ~> 0x3fffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_subborrowx_u30(uint32_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint32_t arg2, uint32_t arg3) { + int32_t x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + fiat_p521_int1 x2 = (fiat_p521_int1)((uint32_t)x1 >> 30); + uint32_t x3 = (x1 & UINT32_C(0x3fffffff)); + *out1 = x3; + *out2 = (fiat_p521_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x7fffffff] + * arg3: [0x0 ~> 0x7fffffff] + * Output Bounds: + * out1: [0x0 ~> 0x7fffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_addcarryx_u31(uint32_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint32_t arg2, uint32_t arg3) { + uint32_t x1 = ((arg1 + arg2) + arg3); + uint32_t x2 = (x1 & UINT32_C(0x7fffffff)); + fiat_p521_uint1 x3 = (fiat_p521_uint1)(x1 >> 31); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x7fffffff] + * arg3: [0x0 ~> 0x7fffffff] + * Output Bounds: + * out1: [0x0 ~> 0x7fffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_subborrowx_u31(uint32_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint32_t arg2, uint32_t arg3) { + int32_t x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + fiat_p521_int1 x2 = (fiat_p521_int1)((uint32_t)x1 >> 31); + uint32_t x3 = (x1 & UINT32_C(0x7fffffff)); + *out1 = x3; + *out2 = (fiat_p521_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_p521_cmovznz_u32(uint32_t* out1, fiat_p521_uint1 arg1, uint32_t arg2, uint32_t arg3) { + fiat_p521_uint1 x1 = (!(!arg1)); + uint32_t x2 = ((fiat_p521_int1)(0x0 - x1) & UINT32_C(0xffffffff)); + uint32_t x3 = ((x2 & arg3) | (uint32_t)((uint64_t)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + * arg2: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + */ +static void fiat_p521_carry_mul(uint32_t out1[17], const uint64_t arg1[17], const uint64_t arg2[17]) { + fiat_p521_uint128 x1 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x2 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(arg2[15])); + fiat_p521_uint128 x3 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x4 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x5 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(arg2[12])); + fiat_p521_uint128 x6 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x7 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x8 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(arg2[9])); + fiat_p521_uint128 x9 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x10 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x11 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(arg2[6])); + fiat_p521_uint128 x12 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x13 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x14 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(arg2[3])); + fiat_p521_uint128 x15 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x16 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x17 = ((fiat_p521_uint128)(arg1[15]) * (uint32_t)(arg2[16])); + fiat_p521_uint128 x18 = ((fiat_p521_uint128)(arg1[15]) * (arg2[15])); + fiat_p521_uint128 x19 = ((fiat_p521_uint128)(arg1[15]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x20 = ((fiat_p521_uint128)(arg1[15]) * (arg2[13])); + fiat_p521_uint128 x21 = ((fiat_p521_uint128)(arg1[15]) * (arg2[12])); + fiat_p521_uint128 x22 = ((fiat_p521_uint128)(arg1[15]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x23 = ((fiat_p521_uint128)(arg1[15]) * (arg2[10])); + fiat_p521_uint128 x24 = ((fiat_p521_uint128)(arg1[15]) * (arg2[9])); + fiat_p521_uint128 x25 = ((fiat_p521_uint128)(arg1[15]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x26 = ((fiat_p521_uint128)(arg1[15]) * (arg2[7])); + fiat_p521_uint128 x27 = ((fiat_p521_uint128)(arg1[15]) * (arg2[6])); + fiat_p521_uint128 x28 = ((fiat_p521_uint128)(arg1[15]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x29 = ((fiat_p521_uint128)(arg1[15]) * (arg2[4])); + fiat_p521_uint128 x30 = ((fiat_p521_uint128)(arg1[15]) * (arg2[3])); + fiat_p521_uint128 x31 = ((fiat_p521_uint128)(arg1[15]) * ((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x32 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x33 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[15]) * (uint64_t)0x2)); + fiat_p521_uint128 x34 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x35 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x36 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[12]) * (uint64_t)0x2)); + fiat_p521_uint128 x37 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x38 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x39 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[9]) * (uint64_t)0x2)); + fiat_p521_uint128 x40 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x41 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x42 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x43 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x44 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x45 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[3]) * (uint64_t)0x2)); + fiat_p521_uint128 x46 = ((fiat_p521_uint128)(arg1[13]) * ((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x47 = ((fiat_p521_uint128)(arg1[13]) * (arg2[15])); + fiat_p521_uint128 x48 = ((fiat_p521_uint128)(arg1[13]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x49 = ((fiat_p521_uint128)(arg1[13]) * ((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x50 = ((fiat_p521_uint128)(arg1[13]) * (arg2[12])); + fiat_p521_uint128 x51 = ((fiat_p521_uint128)(arg1[13]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x52 = ((fiat_p521_uint128)(arg1[13]) * ((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x53 = ((fiat_p521_uint128)(arg1[13]) * (arg2[9])); + fiat_p521_uint128 x54 = ((fiat_p521_uint128)(arg1[13]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x55 = ((fiat_p521_uint128)(arg1[13]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x56 = ((fiat_p521_uint128)(arg1[13]) * (arg2[6])); + fiat_p521_uint128 x57 = ((fiat_p521_uint128)(arg1[13]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x58 = ((fiat_p521_uint128)(arg1[13]) * ((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x59 = ((fiat_p521_uint128)(arg1[12]) * (uint32_t)(arg2[16])); + fiat_p521_uint128 x60 = ((fiat_p521_uint128)(arg1[12]) * (arg2[15])); + fiat_p521_uint128 x61 = ((fiat_p521_uint128)(arg1[12]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x62 = ((fiat_p521_uint128)(arg1[12]) * (arg2[13])); + fiat_p521_uint128 x63 = ((fiat_p521_uint128)(arg1[12]) * (arg2[12])); + fiat_p521_uint128 x64 = ((fiat_p521_uint128)(arg1[12]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x65 = ((fiat_p521_uint128)(arg1[12]) * (arg2[10])); + fiat_p521_uint128 x66 = ((fiat_p521_uint128)(arg1[12]) * (arg2[9])); + fiat_p521_uint128 x67 = ((fiat_p521_uint128)(arg1[12]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x68 = ((fiat_p521_uint128)(arg1[12]) * (arg2[7])); + fiat_p521_uint128 x69 = ((fiat_p521_uint128)(arg1[12]) * (arg2[6])); + fiat_p521_uint128 x70 = ((fiat_p521_uint128)(arg1[12]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x71 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x72 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[15]) * (uint64_t)0x2)); + fiat_p521_uint128 x73 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x74 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x75 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[12]) * (uint64_t)0x2)); + fiat_p521_uint128 x76 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x77 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x78 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[9]) * (uint64_t)0x2)); + fiat_p521_uint128 x79 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x80 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x81 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x82 = ((fiat_p521_uint128)(arg1[10]) * ((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x83 = ((fiat_p521_uint128)(arg1[10]) * (arg2[15])); + fiat_p521_uint128 x84 = ((fiat_p521_uint128)(arg1[10]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x85 = ((fiat_p521_uint128)(arg1[10]) * ((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x86 = ((fiat_p521_uint128)(arg1[10]) * (arg2[12])); + fiat_p521_uint128 x87 = ((fiat_p521_uint128)(arg1[10]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x88 = ((fiat_p521_uint128)(arg1[10]) * ((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x89 = ((fiat_p521_uint128)(arg1[10]) * (arg2[9])); + fiat_p521_uint128 x90 = ((fiat_p521_uint128)(arg1[10]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x91 = ((fiat_p521_uint128)(arg1[10]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x92 = ((fiat_p521_uint128)(arg1[9]) * (uint32_t)(arg2[16])); + fiat_p521_uint128 x93 = ((fiat_p521_uint128)(arg1[9]) * (arg2[15])); + fiat_p521_uint128 x94 = ((fiat_p521_uint128)(arg1[9]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x95 = ((fiat_p521_uint128)(arg1[9]) * (arg2[13])); + fiat_p521_uint128 x96 = ((fiat_p521_uint128)(arg1[9]) * (arg2[12])); + fiat_p521_uint128 x97 = ((fiat_p521_uint128)(arg1[9]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x98 = ((fiat_p521_uint128)(arg1[9]) * (arg2[10])); + fiat_p521_uint128 x99 = ((fiat_p521_uint128)(arg1[9]) * (arg2[9])); + fiat_p521_uint128 x100 = ((fiat_p521_uint128)(arg1[9]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x101 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x102 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[15]) * (uint64_t)0x2)); + fiat_p521_uint128 x103 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x104 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x105 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[12]) * (uint64_t)0x2)); + fiat_p521_uint128 x106 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x107 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x108 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[9]) * (uint64_t)0x2)); + fiat_p521_uint128 x109 = ((fiat_p521_uint128)(arg1[7]) * ((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x110 = ((fiat_p521_uint128)(arg1[7]) * (arg2[15])); + fiat_p521_uint128 x111 = ((fiat_p521_uint128)(arg1[7]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x112 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x113 = ((fiat_p521_uint128)(arg1[7]) * (arg2[12])); + fiat_p521_uint128 x114 = ((fiat_p521_uint128)(arg1[7]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x115 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x116 = ((fiat_p521_uint128)(arg1[6]) * (uint32_t)(arg2[16])); + fiat_p521_uint128 x117 = ((fiat_p521_uint128)(arg1[6]) * (arg2[15])); + fiat_p521_uint128 x118 = ((fiat_p521_uint128)(arg1[6]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x119 = ((fiat_p521_uint128)(arg1[6]) * (arg2[13])); + fiat_p521_uint128 x120 = ((fiat_p521_uint128)(arg1[6]) * (arg2[12])); + fiat_p521_uint128 x121 = ((fiat_p521_uint128)(arg1[6]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x122 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x123 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[15]) * (uint64_t)0x2)); + fiat_p521_uint128 x124 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x125 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x126 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[12]) * (uint64_t)0x2)); + fiat_p521_uint128 x127 = ((fiat_p521_uint128)(arg1[4]) * ((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x128 = ((fiat_p521_uint128)(arg1[4]) * (arg2[15])); + fiat_p521_uint128 x129 = ((fiat_p521_uint128)(arg1[4]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x130 = ((fiat_p521_uint128)(arg1[4]) * ((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x131 = ((fiat_p521_uint128)(arg1[3]) * (uint32_t)(arg2[16])); + fiat_p521_uint128 x132 = ((fiat_p521_uint128)(arg1[3]) * (arg2[15])); + fiat_p521_uint128 x133 = ((fiat_p521_uint128)(arg1[3]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x134 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x135 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((arg2[15]) * (uint64_t)0x2)); + fiat_p521_uint128 x136 = ((fiat_p521_uint128)(arg1[1]) * ((uint32_t)(arg2[16]) * (uint64_t)0x2)); + fiat_p521_uint128 x137 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(arg2[0])); + fiat_p521_uint128 x138 = ((fiat_p521_uint128)(arg1[15]) * (arg2[1])); + fiat_p521_uint128 x139 = ((fiat_p521_uint128)(arg1[15]) * (arg2[0])); + fiat_p521_uint128 x140 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x141 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x142 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)(arg2[0])); + fiat_p521_uint128 x143 = ((fiat_p521_uint128)(arg1[13]) * (arg2[3])); + fiat_p521_uint128 x144 = ((fiat_p521_uint128)(arg1[13]) * ((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x145 = ((fiat_p521_uint128)(arg1[13]) * (arg2[1])); + fiat_p521_uint128 x146 = ((fiat_p521_uint128)(arg1[13]) * (arg2[0])); + fiat_p521_uint128 x147 = ((fiat_p521_uint128)(arg1[12]) * (arg2[4])); + fiat_p521_uint128 x148 = ((fiat_p521_uint128)(arg1[12]) * (arg2[3])); + fiat_p521_uint128 x149 = ((fiat_p521_uint128)(arg1[12]) * (uint32_t)(arg2[2])); + fiat_p521_uint128 x150 = ((fiat_p521_uint128)(arg1[12]) * (arg2[1])); + fiat_p521_uint128 x151 = ((fiat_p521_uint128)(arg1[12]) * (arg2[0])); + fiat_p521_uint128 x152 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x153 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x154 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(arg2[3])); + fiat_p521_uint128 x155 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x156 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x157 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(arg2[0])); + fiat_p521_uint128 x158 = ((fiat_p521_uint128)(arg1[10]) * (arg2[6])); + fiat_p521_uint128 x159 = ((fiat_p521_uint128)(arg1[10]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x160 = ((fiat_p521_uint128)(arg1[10]) * (arg2[4])); + fiat_p521_uint128 x161 = ((fiat_p521_uint128)(arg1[10]) * (arg2[3])); + fiat_p521_uint128 x162 = ((fiat_p521_uint128)(arg1[10]) * ((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x163 = ((fiat_p521_uint128)(arg1[10]) * (arg2[1])); + fiat_p521_uint128 x164 = ((fiat_p521_uint128)(arg1[10]) * (arg2[0])); + fiat_p521_uint128 x165 = ((fiat_p521_uint128)(arg1[9]) * (arg2[7])); + fiat_p521_uint128 x166 = ((fiat_p521_uint128)(arg1[9]) * (arg2[6])); + fiat_p521_uint128 x167 = ((fiat_p521_uint128)(arg1[9]) * (uint32_t)(arg2[5])); + fiat_p521_uint128 x168 = ((fiat_p521_uint128)(arg1[9]) * (arg2[4])); + fiat_p521_uint128 x169 = ((fiat_p521_uint128)(arg1[9]) * (arg2[3])); + fiat_p521_uint128 x170 = ((fiat_p521_uint128)(arg1[9]) * (uint32_t)(arg2[2])); + fiat_p521_uint128 x171 = ((fiat_p521_uint128)(arg1[9]) * (arg2[1])); + fiat_p521_uint128 x172 = ((fiat_p521_uint128)(arg1[9]) * (arg2[0])); + fiat_p521_uint128 x173 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x174 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x175 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(arg2[6])); + fiat_p521_uint128 x176 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x177 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x178 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(arg2[3])); + fiat_p521_uint128 x179 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x180 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x181 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(arg2[0])); + fiat_p521_uint128 x182 = ((fiat_p521_uint128)(arg1[7]) * (arg2[9])); + fiat_p521_uint128 x183 = ((fiat_p521_uint128)(arg1[7]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x184 = ((fiat_p521_uint128)(arg1[7]) * (arg2[7])); + fiat_p521_uint128 x185 = ((fiat_p521_uint128)(arg1[7]) * (arg2[6])); + fiat_p521_uint128 x186 = ((fiat_p521_uint128)(arg1[7]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x187 = ((fiat_p521_uint128)(arg1[7]) * (arg2[4])); + fiat_p521_uint128 x188 = ((fiat_p521_uint128)(arg1[7]) * (arg2[3])); + fiat_p521_uint128 x189 = ((fiat_p521_uint128)(arg1[7]) * ((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x190 = ((fiat_p521_uint128)(arg1[7]) * (arg2[1])); + fiat_p521_uint128 x191 = ((fiat_p521_uint128)(arg1[7]) * (arg2[0])); + fiat_p521_uint128 x192 = ((fiat_p521_uint128)(arg1[6]) * (arg2[10])); + fiat_p521_uint128 x193 = ((fiat_p521_uint128)(arg1[6]) * (arg2[9])); + fiat_p521_uint128 x194 = ((fiat_p521_uint128)(arg1[6]) * (uint32_t)(arg2[8])); + fiat_p521_uint128 x195 = ((fiat_p521_uint128)(arg1[6]) * (arg2[7])); + fiat_p521_uint128 x196 = ((fiat_p521_uint128)(arg1[6]) * (arg2[6])); + fiat_p521_uint128 x197 = ((fiat_p521_uint128)(arg1[6]) * (uint32_t)(arg2[5])); + fiat_p521_uint128 x198 = ((fiat_p521_uint128)(arg1[6]) * (arg2[4])); + fiat_p521_uint128 x199 = ((fiat_p521_uint128)(arg1[6]) * (arg2[3])); + fiat_p521_uint128 x200 = ((fiat_p521_uint128)(arg1[6]) * (uint32_t)(arg2[2])); + fiat_p521_uint128 x201 = ((fiat_p521_uint128)(arg1[6]) * (arg2[1])); + fiat_p521_uint128 x202 = ((fiat_p521_uint128)(arg1[6]) * (arg2[0])); + fiat_p521_uint128 x203 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x204 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x205 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(arg2[9])); + fiat_p521_uint128 x206 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x207 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x208 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(arg2[6])); + fiat_p521_uint128 x209 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x210 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x211 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(arg2[3])); + fiat_p521_uint128 x212 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x213 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x214 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(arg2[0])); + fiat_p521_uint128 x215 = ((fiat_p521_uint128)(arg1[4]) * (arg2[12])); + fiat_p521_uint128 x216 = ((fiat_p521_uint128)(arg1[4]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x217 = ((fiat_p521_uint128)(arg1[4]) * (arg2[10])); + fiat_p521_uint128 x218 = ((fiat_p521_uint128)(arg1[4]) * (arg2[9])); + fiat_p521_uint128 x219 = ((fiat_p521_uint128)(arg1[4]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x220 = ((fiat_p521_uint128)(arg1[4]) * (arg2[7])); + fiat_p521_uint128 x221 = ((fiat_p521_uint128)(arg1[4]) * (arg2[6])); + fiat_p521_uint128 x222 = ((fiat_p521_uint128)(arg1[4]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x223 = ((fiat_p521_uint128)(arg1[4]) * (arg2[4])); + fiat_p521_uint128 x224 = ((fiat_p521_uint128)(arg1[4]) * (arg2[3])); + fiat_p521_uint128 x225 = ((fiat_p521_uint128)(arg1[4]) * ((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x226 = ((fiat_p521_uint128)(arg1[4]) * (arg2[1])); + fiat_p521_uint128 x227 = ((fiat_p521_uint128)(arg1[4]) * (arg2[0])); + fiat_p521_uint128 x228 = ((fiat_p521_uint128)(arg1[3]) * (arg2[13])); + fiat_p521_uint128 x229 = ((fiat_p521_uint128)(arg1[3]) * (arg2[12])); + fiat_p521_uint128 x230 = ((fiat_p521_uint128)(arg1[3]) * (uint32_t)(arg2[11])); + fiat_p521_uint128 x231 = ((fiat_p521_uint128)(arg1[3]) * (arg2[10])); + fiat_p521_uint128 x232 = ((fiat_p521_uint128)(arg1[3]) * (arg2[9])); + fiat_p521_uint128 x233 = ((fiat_p521_uint128)(arg1[3]) * (uint32_t)(arg2[8])); + fiat_p521_uint128 x234 = ((fiat_p521_uint128)(arg1[3]) * (arg2[7])); + fiat_p521_uint128 x235 = ((fiat_p521_uint128)(arg1[3]) * (arg2[6])); + fiat_p521_uint128 x236 = ((fiat_p521_uint128)(arg1[3]) * (uint32_t)(arg2[5])); + fiat_p521_uint128 x237 = ((fiat_p521_uint128)(arg1[3]) * (arg2[4])); + fiat_p521_uint128 x238 = ((fiat_p521_uint128)(arg1[3]) * (arg2[3])); + fiat_p521_uint128 x239 = ((fiat_p521_uint128)(arg1[3]) * (uint32_t)(arg2[2])); + fiat_p521_uint128 x240 = ((fiat_p521_uint128)(arg1[3]) * (arg2[1])); + fiat_p521_uint128 x241 = ((fiat_p521_uint128)(arg1[3]) * (arg2[0])); + fiat_p521_uint128 x242 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x243 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((arg2[13]) * (uint64_t)0x2)); + fiat_p521_uint128 x244 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(arg2[12])); + fiat_p521_uint128 x245 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x246 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((arg2[10]) * (uint64_t)0x2)); + fiat_p521_uint128 x247 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(arg2[9])); + fiat_p521_uint128 x248 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x249 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x250 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(arg2[6])); + fiat_p521_uint128 x251 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x252 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x253 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(arg2[3])); + fiat_p521_uint128 x254 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x255 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x256 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(arg2[0])); + fiat_p521_uint128 x257 = ((fiat_p521_uint128)(arg1[1]) * (arg2[15])); + fiat_p521_uint128 x258 = ((fiat_p521_uint128)(arg1[1]) * ((uint32_t)(arg2[14]) * (uint64_t)0x2)); + fiat_p521_uint128 x259 = ((fiat_p521_uint128)(arg1[1]) * (arg2[13])); + fiat_p521_uint128 x260 = ((fiat_p521_uint128)(arg1[1]) * (arg2[12])); + fiat_p521_uint128 x261 = ((fiat_p521_uint128)(arg1[1]) * ((uint32_t)(arg2[11]) * (uint64_t)0x2)); + fiat_p521_uint128 x262 = ((fiat_p521_uint128)(arg1[1]) * (arg2[10])); + fiat_p521_uint128 x263 = ((fiat_p521_uint128)(arg1[1]) * (arg2[9])); + fiat_p521_uint128 x264 = ((fiat_p521_uint128)(arg1[1]) * ((uint32_t)(arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x265 = ((fiat_p521_uint128)(arg1[1]) * (arg2[7])); + fiat_p521_uint128 x266 = ((fiat_p521_uint128)(arg1[1]) * (arg2[6])); + fiat_p521_uint128 x267 = ((fiat_p521_uint128)(arg1[1]) * ((uint32_t)(arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x268 = ((fiat_p521_uint128)(arg1[1]) * (arg2[4])); + fiat_p521_uint128 x269 = ((fiat_p521_uint128)(arg1[1]) * (arg2[3])); + fiat_p521_uint128 x270 = ((fiat_p521_uint128)(arg1[1]) * ((uint32_t)(arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x271 = ((fiat_p521_uint128)(arg1[1]) * (arg2[1])); + fiat_p521_uint128 x272 = ((fiat_p521_uint128)(arg1[1]) * (arg2[0])); + fiat_p521_uint128 x273 = ((fiat_p521_uint128)(arg1[0]) * (uint32_t)(arg2[16])); + fiat_p521_uint128 x274 = ((fiat_p521_uint128)(arg1[0]) * (arg2[15])); + fiat_p521_uint128 x275 = ((fiat_p521_uint128)(arg1[0]) * (uint32_t)(arg2[14])); + fiat_p521_uint128 x276 = ((fiat_p521_uint128)(arg1[0]) * (arg2[13])); + fiat_p521_uint128 x277 = ((fiat_p521_uint128)(arg1[0]) * (arg2[12])); + fiat_p521_uint128 x278 = ((fiat_p521_uint128)(arg1[0]) * (uint32_t)(arg2[11])); + fiat_p521_uint128 x279 = ((fiat_p521_uint128)(arg1[0]) * (arg2[10])); + fiat_p521_uint128 x280 = ((fiat_p521_uint128)(arg1[0]) * (arg2[9])); + fiat_p521_uint128 x281 = ((fiat_p521_uint128)(arg1[0]) * (uint32_t)(arg2[8])); + fiat_p521_uint128 x282 = ((fiat_p521_uint128)(arg1[0]) * (arg2[7])); + fiat_p521_uint128 x283 = ((fiat_p521_uint128)(arg1[0]) * (arg2[6])); + fiat_p521_uint128 x284 = ((fiat_p521_uint128)(arg1[0]) * (uint32_t)(arg2[5])); + fiat_p521_uint128 x285 = ((fiat_p521_uint128)(arg1[0]) * (arg2[4])); + fiat_p521_uint128 x286 = ((fiat_p521_uint128)(arg1[0]) * (arg2[3])); + fiat_p521_uint128 x287 = ((fiat_p521_uint128)(arg1[0]) * (uint32_t)(arg2[2])); + fiat_p521_uint128 x288 = ((fiat_p521_uint128)(arg1[0]) * (arg2[1])); + fiat_p521_uint128 x289 = ((fiat_p521_uint128)(arg1[0]) * (arg2[0])); + fiat_p521_uint128 x290 = (x289 + (x136 + (x135 + (x133 + (x130 + (x126 + (x121 + (x115 + (x108 + (x100 + (x91 + (x81 + (x70 + (x58 + (x45 + (x31 + x16)))))))))))))))); + uint64_t x291 = (uint64_t)(x290 >> 31); + uint32_t x292 = (uint32_t)(x290 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x293 = (x273 + (x257 + (x242 + (x228 + (x215 + (x203 + (x192 + (x182 + (x173 + (x165 + (x158 + (x152 + (x147 + (x143 + (x140 + (x138 + x137)))))))))))))))); + fiat_p521_uint128 x294 = (x274 + (x258 + (x243 + (x229 + (x216 + (x204 + (x193 + (x183 + (x174 + (x166 + (x159 + (x153 + (x148 + (x144 + (x141 + (x139 + x1)))))))))))))))); + fiat_p521_uint128 x295 = (x275 + (x259 + (x244 + (x230 + (x217 + (x205 + (x194 + (x184 + (x175 + (x167 + (x160 + (x154 + (x149 + (x145 + (x142 + (x17 + x2)))))))))))))))); + fiat_p521_uint128 x296 = (x276 + (x260 + (x245 + (x231 + (x218 + (x206 + (x195 + (x185 + (x176 + (x168 + (x161 + (x155 + (x150 + (x146 + (x32 + (x18 + x3)))))))))))))))); + fiat_p521_uint128 x297 = (x277 + (x261 + (x246 + (x232 + (x219 + (x207 + (x196 + (x186 + (x177 + (x169 + (x162 + (x156 + (x151 + (x46 + (x33 + (x19 + x4)))))))))))))))); + fiat_p521_uint128 x298 = (x278 + (x262 + (x247 + (x233 + (x220 + (x208 + (x197 + (x187 + (x178 + (x170 + (x163 + (x157 + (x59 + (x47 + (x34 + (x20 + x5)))))))))))))))); + fiat_p521_uint128 x299 = (x279 + (x263 + (x248 + (x234 + (x221 + (x209 + (x198 + (x188 + (x179 + (x171 + (x164 + (x71 + (x60 + (x48 + (x35 + (x21 + x6)))))))))))))))); + fiat_p521_uint128 x300 = (x280 + (x264 + (x249 + (x235 + (x222 + (x210 + (x199 + (x189 + (x180 + (x172 + (x82 + (x72 + (x61 + (x49 + (x36 + (x22 + x7)))))))))))))))); + fiat_p521_uint128 x301 = (x281 + (x265 + (x250 + (x236 + (x223 + (x211 + (x200 + (x190 + (x181 + (x92 + (x83 + (x73 + (x62 + (x50 + (x37 + (x23 + x8)))))))))))))))); + fiat_p521_uint128 x302 = (x282 + (x266 + (x251 + (x237 + (x224 + (x212 + (x201 + (x191 + (x101 + (x93 + (x84 + (x74 + (x63 + (x51 + (x38 + (x24 + x9)))))))))))))))); + fiat_p521_uint128 x303 = (x283 + (x267 + (x252 + (x238 + (x225 + (x213 + (x202 + (x109 + (x102 + (x94 + (x85 + (x75 + (x64 + (x52 + (x39 + (x25 + x10)))))))))))))))); + fiat_p521_uint128 x304 = (x284 + (x268 + (x253 + (x239 + (x226 + (x214 + (x116 + (x110 + (x103 + (x95 + (x86 + (x76 + (x65 + (x53 + (x40 + (x26 + x11)))))))))))))))); + fiat_p521_uint128 x305 = (x285 + (x269 + (x254 + (x240 + (x227 + (x122 + (x117 + (x111 + (x104 + (x96 + (x87 + (x77 + (x66 + (x54 + (x41 + (x27 + x12)))))))))))))))); + fiat_p521_uint128 x306 = (x286 + (x270 + (x255 + (x241 + (x127 + (x123 + (x118 + (x112 + (x105 + (x97 + (x88 + (x78 + (x67 + (x55 + (x42 + (x28 + x13)))))))))))))))); + fiat_p521_uint128 x307 = (x287 + (x271 + (x256 + (x131 + (x128 + (x124 + (x119 + (x113 + (x106 + (x98 + (x89 + (x79 + (x68 + (x56 + (x43 + (x29 + x14)))))))))))))))); + fiat_p521_uint128 x308 = (x288 + (x272 + (x134 + (x132 + (x129 + (x125 + (x120 + (x114 + (x107 + (x99 + (x90 + (x80 + (x69 + (x57 + (x44 + (x30 + x15)))))))))))))))); + fiat_p521_uint128 x309 = (x291 + x308); + uint64_t x310 = (uint64_t)(x309 >> 31); + uint32_t x311 = (uint32_t)(x309 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x312 = (x310 + x307); + uint64_t x313 = (uint64_t)(x312 >> 30); + uint32_t x314 = (uint32_t)(x312 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x315 = (x313 + x306); + uint64_t x316 = (uint64_t)(x315 >> 31); + uint32_t x317 = (uint32_t)(x315 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x318 = (x316 + x305); + uint64_t x319 = (uint64_t)(x318 >> 31); + uint32_t x320 = (uint32_t)(x318 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x321 = (x319 + x304); + uint64_t x322 = (uint64_t)(x321 >> 30); + uint32_t x323 = (uint32_t)(x321 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x324 = (x322 + x303); + uint64_t x325 = (uint64_t)(x324 >> 31); + uint32_t x326 = (uint32_t)(x324 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x327 = (x325 + x302); + uint64_t x328 = (uint64_t)(x327 >> 31); + uint32_t x329 = (uint32_t)(x327 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x330 = (x328 + x301); + uint64_t x331 = (uint64_t)(x330 >> 30); + uint32_t x332 = (uint32_t)(x330 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x333 = (x331 + x300); + uint64_t x334 = (uint64_t)(x333 >> 31); + uint32_t x335 = (uint32_t)(x333 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x336 = (x334 + x299); + uint64_t x337 = (uint64_t)(x336 >> 31); + uint32_t x338 = (uint32_t)(x336 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x339 = (x337 + x298); + uint64_t x340 = (uint64_t)(x339 >> 30); + uint32_t x341 = (uint32_t)(x339 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x342 = (x340 + x297); + uint64_t x343 = (uint64_t)(x342 >> 31); + uint32_t x344 = (uint32_t)(x342 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x345 = (x343 + x296); + uint64_t x346 = (uint64_t)(x345 >> 31); + uint32_t x347 = (uint32_t)(x345 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x348 = (x346 + x295); + uint64_t x349 = (uint64_t)(x348 >> 30); + uint32_t x350 = (uint32_t)(x348 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x351 = (x349 + x294); + uint64_t x352 = (uint64_t)(x351 >> 31); + uint32_t x353 = (uint32_t)(x351 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x354 = (x352 + x293); + uint64_t x355 = (uint64_t)(x354 >> 30); + uint32_t x356 = (uint32_t)(x354 & UINT32_C(0x3fffffff)); + uint64_t x357 = (x292 + x355); + uint32_t x358 = (uint32_t)(x357 >> 31); + uint32_t x359 = (uint32_t)(x357 & UINT32_C(0x7fffffff)); + uint32_t x360 = (x358 + x311); + uint32_t x361 = (x360 >> 31); + uint32_t x362 = (x360 & UINT32_C(0x7fffffff)); + uint32_t x363 = (x361 + x314); + out1[0] = x359; + out1[1] = x362; + out1[2] = x363; + out1[3] = x317; + out1[4] = x320; + out1[5] = x323; + out1[6] = x326; + out1[7] = x329; + out1[8] = x332; + out1[9] = x335; + out1[10] = x338; + out1[11] = x341; + out1[12] = x344; + out1[13] = x347; + out1[14] = x350; + out1[15] = x353; + out1[16] = x356; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + */ +static void fiat_p521_carry_square(uint32_t out1[17], const uint64_t arg1[17]) { + uint32_t x1 = (uint32_t)(arg1[16]); + uint64_t x2 = (x1 * (uint64_t)0x2); + uint64_t x3 = ((uint32_t)(arg1[16]) * (uint64_t)0x2); + uint64_t x4 = (arg1[15]); + uint64_t x5 = (x4 * (uint64_t)0x2); + uint64_t x6 = ((arg1[15]) * (uint64_t)0x2); + uint32_t x7 = (uint32_t)(arg1[14]); + uint64_t x8 = (x7 * (uint64_t)0x2); + uint64_t x9 = ((uint32_t)(arg1[14]) * (uint64_t)0x2); + uint64_t x10 = (arg1[13]); + uint64_t x11 = (x10 * (uint64_t)0x2); + uint64_t x12 = ((arg1[13]) * (uint64_t)0x2); + uint64_t x13 = (arg1[12]); + uint64_t x14 = (x13 * (uint64_t)0x2); + uint64_t x15 = ((arg1[12]) * (uint64_t)0x2); + uint32_t x16 = (uint32_t)(arg1[11]); + uint64_t x17 = (x16 * (uint64_t)0x2); + uint64_t x18 = ((uint32_t)(arg1[11]) * (uint64_t)0x2); + uint64_t x19 = (arg1[10]); + uint64_t x20 = (x19 * (uint64_t)0x2); + uint64_t x21 = ((arg1[10]) * (uint64_t)0x2); + uint64_t x22 = (arg1[9]); + uint64_t x23 = (x22 * (uint64_t)0x2); + uint64_t x24 = ((arg1[9]) * (uint64_t)0x2); + uint64_t x25 = ((uint32_t)(arg1[8]) * (uint64_t)0x2); + uint64_t x26 = ((arg1[7]) * (uint64_t)0x2); + uint64_t x27 = ((arg1[6]) * (uint64_t)0x2); + uint64_t x28 = ((uint32_t)(arg1[5]) * (uint64_t)0x2); + uint64_t x29 = ((arg1[4]) * (uint64_t)0x2); + uint64_t x30 = ((arg1[3]) * (uint64_t)0x2); + uint64_t x31 = ((uint32_t)(arg1[2]) * (uint64_t)0x2); + uint64_t x32 = ((arg1[1]) * (uint64_t)0x2); + fiat_p521_uint128 x33 = ((uint32_t)(arg1[16]) * (fiat_p521_uint128)(x1 * (uint64_t)0x2)); + fiat_p521_uint128 x34 = ((fiat_p521_uint128)(arg1[15]) * x2); + fiat_p521_uint128 x35 = ((fiat_p521_uint128)(arg1[15]) * x4); + fiat_p521_uint128 x36 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)(x2 * (uint64_t)0x2)); + fiat_p521_uint128 x37 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)(x5 * (uint64_t)0x2)); + fiat_p521_uint128 x38 = ((uint32_t)(arg1[14]) * (fiat_p521_uint128)(x7 * (uint64_t)0x2)); + fiat_p521_uint128 x39 = ((fiat_p521_uint128)(arg1[13]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x40 = ((fiat_p521_uint128)(arg1[13]) * x5); + fiat_p521_uint128 x41 = ((fiat_p521_uint128)(arg1[13]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x42 = ((fiat_p521_uint128)(arg1[13]) * (x10 * (uint64_t)0x2)); + fiat_p521_uint128 x43 = ((fiat_p521_uint128)(arg1[12]) * x2); + fiat_p521_uint128 x44 = ((fiat_p521_uint128)(arg1[12]) * x5); + fiat_p521_uint128 x45 = ((fiat_p521_uint128)(arg1[12]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x46 = ((fiat_p521_uint128)(arg1[12]) * x11); + fiat_p521_uint128 x47 = ((fiat_p521_uint128)(arg1[12]) * x13); + fiat_p521_uint128 x48 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(x2 * (uint64_t)0x2)); + fiat_p521_uint128 x49 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(x5 * (uint64_t)0x2)); + fiat_p521_uint128 x50 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(x8 * (uint64_t)0x2)); + fiat_p521_uint128 x51 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(x11 * (uint64_t)0x2)); + fiat_p521_uint128 x52 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(x14 * (uint64_t)0x2)); + fiat_p521_uint128 x53 = ((uint32_t)(arg1[11]) * (fiat_p521_uint128)(x16 * (uint64_t)0x2)); + fiat_p521_uint128 x54 = ((fiat_p521_uint128)(arg1[10]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x55 = ((fiat_p521_uint128)(arg1[10]) * x5); + fiat_p521_uint128 x56 = ((fiat_p521_uint128)(arg1[10]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x57 = ((fiat_p521_uint128)(arg1[10]) * (x11 * (uint64_t)0x2)); + fiat_p521_uint128 x58 = ((fiat_p521_uint128)(arg1[10]) * x14); + fiat_p521_uint128 x59 = ((fiat_p521_uint128)(arg1[10]) * (x17 * (uint64_t)0x2)); + fiat_p521_uint128 x60 = ((fiat_p521_uint128)(arg1[10]) * (x19 * (uint64_t)0x2)); + fiat_p521_uint128 x61 = ((fiat_p521_uint128)(arg1[9]) * x2); + fiat_p521_uint128 x62 = ((fiat_p521_uint128)(arg1[9]) * x5); + fiat_p521_uint128 x63 = ((fiat_p521_uint128)(arg1[9]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x64 = ((fiat_p521_uint128)(arg1[9]) * x11); + fiat_p521_uint128 x65 = ((fiat_p521_uint128)(arg1[9]) * x14); + fiat_p521_uint128 x66 = ((fiat_p521_uint128)(arg1[9]) * (x17 * (uint64_t)0x2)); + fiat_p521_uint128 x67 = ((fiat_p521_uint128)(arg1[9]) * x20); + fiat_p521_uint128 x68 = ((fiat_p521_uint128)(arg1[9]) * x22); + fiat_p521_uint128 x69 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x2 * (uint64_t)0x2)); + fiat_p521_uint128 x70 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x5 * (uint64_t)0x2)); + fiat_p521_uint128 x71 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x8 * (uint64_t)0x2)); + fiat_p521_uint128 x72 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x11 * (uint64_t)0x2)); + fiat_p521_uint128 x73 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x14 * (uint64_t)0x2)); + fiat_p521_uint128 x74 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x17 * (uint64_t)0x2)); + fiat_p521_uint128 x75 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x20 * (uint64_t)0x2)); + fiat_p521_uint128 x76 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)(x23 * (uint64_t)0x2)); + fiat_p521_uint128 x77 = ((uint32_t)(arg1[8]) * (fiat_p521_uint128)((uint32_t)(arg1[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x78 = ((fiat_p521_uint128)(arg1[7]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x79 = ((fiat_p521_uint128)(arg1[7]) * x5); + fiat_p521_uint128 x80 = ((fiat_p521_uint128)(arg1[7]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x81 = ((fiat_p521_uint128)(arg1[7]) * (x11 * (uint64_t)0x2)); + fiat_p521_uint128 x82 = ((fiat_p521_uint128)(arg1[7]) * x14); + fiat_p521_uint128 x83 = ((fiat_p521_uint128)(arg1[7]) * (x17 * (uint64_t)0x2)); + fiat_p521_uint128 x84 = ((fiat_p521_uint128)(arg1[7]) * (x20 * (uint64_t)0x2)); + fiat_p521_uint128 x85 = ((fiat_p521_uint128)(arg1[7]) * x24); + fiat_p521_uint128 x86 = ((fiat_p521_uint128)(arg1[7]) * (x25 * (uint64_t)0x2)); + fiat_p521_uint128 x87 = ((fiat_p521_uint128)(arg1[7]) * (arg1[7])); + fiat_p521_uint128 x88 = ((fiat_p521_uint128)(arg1[6]) * x2); + fiat_p521_uint128 x89 = ((fiat_p521_uint128)(arg1[6]) * x5); + fiat_p521_uint128 x90 = ((fiat_p521_uint128)(arg1[6]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x91 = ((fiat_p521_uint128)(arg1[6]) * x11); + fiat_p521_uint128 x92 = ((fiat_p521_uint128)(arg1[6]) * x14); + fiat_p521_uint128 x93 = ((fiat_p521_uint128)(arg1[6]) * (x17 * (uint64_t)0x2)); + fiat_p521_uint128 x94 = ((fiat_p521_uint128)(arg1[6]) * x21); + fiat_p521_uint128 x95 = ((fiat_p521_uint128)(arg1[6]) * x24); + fiat_p521_uint128 x96 = ((fiat_p521_uint128)(arg1[6]) * x25); + fiat_p521_uint128 x97 = ((fiat_p521_uint128)(arg1[6]) * x26); + fiat_p521_uint128 x98 = ((fiat_p521_uint128)(arg1[6]) * (arg1[6])); + fiat_p521_uint128 x99 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x2 * (uint64_t)0x2)); + fiat_p521_uint128 x100 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x5 * (uint64_t)0x2)); + fiat_p521_uint128 x101 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x8 * (uint64_t)0x2)); + fiat_p521_uint128 x102 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x11 * (uint64_t)0x2)); + fiat_p521_uint128 x103 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x14 * (uint64_t)0x2)); + fiat_p521_uint128 x104 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x18 * (uint64_t)0x2)); + fiat_p521_uint128 x105 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x21 * (uint64_t)0x2)); + fiat_p521_uint128 x106 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)x24); + fiat_p521_uint128 x107 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x25 * (uint64_t)0x2)); + fiat_p521_uint128 x108 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)(x26 * (uint64_t)0x2)); + fiat_p521_uint128 x109 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)x27); + fiat_p521_uint128 x110 = ((uint32_t)(arg1[5]) * (fiat_p521_uint128)((uint32_t)(arg1[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x111 = ((fiat_p521_uint128)(arg1[4]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x112 = ((fiat_p521_uint128)(arg1[4]) * x5); + fiat_p521_uint128 x113 = ((fiat_p521_uint128)(arg1[4]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x114 = ((fiat_p521_uint128)(arg1[4]) * (x11 * (uint64_t)0x2)); + fiat_p521_uint128 x115 = ((fiat_p521_uint128)(arg1[4]) * x15); + fiat_p521_uint128 x116 = ((fiat_p521_uint128)(arg1[4]) * (x18 * (uint64_t)0x2)); + fiat_p521_uint128 x117 = ((fiat_p521_uint128)(arg1[4]) * x21); + fiat_p521_uint128 x118 = ((fiat_p521_uint128)(arg1[4]) * x24); + fiat_p521_uint128 x119 = ((fiat_p521_uint128)(arg1[4]) * (x25 * (uint64_t)0x2)); + fiat_p521_uint128 x120 = ((fiat_p521_uint128)(arg1[4]) * x26); + fiat_p521_uint128 x121 = ((fiat_p521_uint128)(arg1[4]) * x27); + fiat_p521_uint128 x122 = ((fiat_p521_uint128)(arg1[4]) * (x28 * (uint64_t)0x2)); + fiat_p521_uint128 x123 = ((fiat_p521_uint128)(arg1[4]) * (arg1[4])); + fiat_p521_uint128 x124 = ((fiat_p521_uint128)(arg1[3]) * x2); + fiat_p521_uint128 x125 = ((fiat_p521_uint128)(arg1[3]) * x5); + fiat_p521_uint128 x126 = ((fiat_p521_uint128)(arg1[3]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x127 = ((fiat_p521_uint128)(arg1[3]) * x12); + fiat_p521_uint128 x128 = ((fiat_p521_uint128)(arg1[3]) * x15); + fiat_p521_uint128 x129 = ((fiat_p521_uint128)(arg1[3]) * x18); + fiat_p521_uint128 x130 = ((fiat_p521_uint128)(arg1[3]) * x21); + fiat_p521_uint128 x131 = ((fiat_p521_uint128)(arg1[3]) * x24); + fiat_p521_uint128 x132 = ((fiat_p521_uint128)(arg1[3]) * x25); + fiat_p521_uint128 x133 = ((fiat_p521_uint128)(arg1[3]) * x26); + fiat_p521_uint128 x134 = ((fiat_p521_uint128)(arg1[3]) * x27); + fiat_p521_uint128 x135 = ((fiat_p521_uint128)(arg1[3]) * x28); + fiat_p521_uint128 x136 = ((fiat_p521_uint128)(arg1[3]) * x29); + fiat_p521_uint128 x137 = ((fiat_p521_uint128)(arg1[3]) * (arg1[3])); + fiat_p521_uint128 x138 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x2 * (uint64_t)0x2)); + fiat_p521_uint128 x139 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x5 * (uint64_t)0x2)); + fiat_p521_uint128 x140 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x9 * (uint64_t)0x2)); + fiat_p521_uint128 x141 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x12 * (uint64_t)0x2)); + fiat_p521_uint128 x142 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)x15); + fiat_p521_uint128 x143 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x18 * (uint64_t)0x2)); + fiat_p521_uint128 x144 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x21 * (uint64_t)0x2)); + fiat_p521_uint128 x145 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)x24); + fiat_p521_uint128 x146 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x25 * (uint64_t)0x2)); + fiat_p521_uint128 x147 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x26 * (uint64_t)0x2)); + fiat_p521_uint128 x148 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)x27); + fiat_p521_uint128 x149 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x28 * (uint64_t)0x2)); + fiat_p521_uint128 x150 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)(x29 * (uint64_t)0x2)); + fiat_p521_uint128 x151 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)x30); + fiat_p521_uint128 x152 = ((uint32_t)(arg1[2]) * (fiat_p521_uint128)((uint32_t)(arg1[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x153 = ((fiat_p521_uint128)(arg1[1]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x154 = ((fiat_p521_uint128)(arg1[1]) * x6); + fiat_p521_uint128 x155 = ((fiat_p521_uint128)(arg1[1]) * (x9 * (uint64_t)0x2)); + fiat_p521_uint128 x156 = ((fiat_p521_uint128)(arg1[1]) * x12); + fiat_p521_uint128 x157 = ((fiat_p521_uint128)(arg1[1]) * x15); + fiat_p521_uint128 x158 = ((fiat_p521_uint128)(arg1[1]) * (x18 * (uint64_t)0x2)); + fiat_p521_uint128 x159 = ((fiat_p521_uint128)(arg1[1]) * x21); + fiat_p521_uint128 x160 = ((fiat_p521_uint128)(arg1[1]) * x24); + fiat_p521_uint128 x161 = ((fiat_p521_uint128)(arg1[1]) * (x25 * (uint64_t)0x2)); + fiat_p521_uint128 x162 = ((fiat_p521_uint128)(arg1[1]) * x26); + fiat_p521_uint128 x163 = ((fiat_p521_uint128)(arg1[1]) * x27); + fiat_p521_uint128 x164 = ((fiat_p521_uint128)(arg1[1]) * (x28 * (uint64_t)0x2)); + fiat_p521_uint128 x165 = ((fiat_p521_uint128)(arg1[1]) * x29); + fiat_p521_uint128 x166 = ((fiat_p521_uint128)(arg1[1]) * x30); + fiat_p521_uint128 x167 = ((fiat_p521_uint128)(arg1[1]) * (x31 * (uint64_t)0x2)); + fiat_p521_uint128 x168 = ((fiat_p521_uint128)(arg1[1]) * (arg1[1])); + fiat_p521_uint128 x169 = ((fiat_p521_uint128)(arg1[0]) * x3); + fiat_p521_uint128 x170 = ((fiat_p521_uint128)(arg1[0]) * x6); + fiat_p521_uint128 x171 = ((fiat_p521_uint128)(arg1[0]) * x9); + fiat_p521_uint128 x172 = ((fiat_p521_uint128)(arg1[0]) * x12); + fiat_p521_uint128 x173 = ((fiat_p521_uint128)(arg1[0]) * x15); + fiat_p521_uint128 x174 = ((fiat_p521_uint128)(arg1[0]) * x18); + fiat_p521_uint128 x175 = ((fiat_p521_uint128)(arg1[0]) * x21); + fiat_p521_uint128 x176 = ((fiat_p521_uint128)(arg1[0]) * x24); + fiat_p521_uint128 x177 = ((fiat_p521_uint128)(arg1[0]) * x25); + fiat_p521_uint128 x178 = ((fiat_p521_uint128)(arg1[0]) * x26); + fiat_p521_uint128 x179 = ((fiat_p521_uint128)(arg1[0]) * x27); + fiat_p521_uint128 x180 = ((fiat_p521_uint128)(arg1[0]) * x28); + fiat_p521_uint128 x181 = ((fiat_p521_uint128)(arg1[0]) * x29); + fiat_p521_uint128 x182 = ((fiat_p521_uint128)(arg1[0]) * x30); + fiat_p521_uint128 x183 = ((fiat_p521_uint128)(arg1[0]) * x31); + fiat_p521_uint128 x184 = ((fiat_p521_uint128)(arg1[0]) * x32); + fiat_p521_uint128 x185 = ((fiat_p521_uint128)(arg1[0]) * (arg1[0])); + fiat_p521_uint128 x186 = (x185 + (x153 + (x139 + (x126 + (x114 + (x103 + (x93 + (x84 + x76)))))))); + uint64_t x187 = (uint64_t)(x186 >> 31); + uint32_t x188 = (uint32_t)(x186 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x189 = (x169 + (x154 + (x140 + (x127 + (x115 + (x104 + (x94 + (x85 + x77)))))))); + fiat_p521_uint128 x190 = (x170 + (x155 + (x141 + (x128 + (x116 + (x105 + (x95 + (x86 + x33)))))))); + fiat_p521_uint128 x191 = (x171 + (x156 + (x142 + (x129 + (x117 + (x106 + (x96 + (x87 + x34)))))))); + fiat_p521_uint128 x192 = (x172 + (x157 + (x143 + (x130 + (x118 + (x107 + (x97 + (x36 + x35)))))))); + fiat_p521_uint128 x193 = (x173 + (x158 + (x144 + (x131 + (x119 + (x108 + (x98 + (x39 + x37)))))))); + fiat_p521_uint128 x194 = (x174 + (x159 + (x145 + (x132 + (x120 + (x109 + (x43 + (x40 + x38)))))))); + fiat_p521_uint128 x195 = (x175 + (x160 + (x146 + (x133 + (x121 + (x110 + (x48 + (x44 + x41)))))))); + fiat_p521_uint128 x196 = (x176 + (x161 + (x147 + (x134 + (x122 + (x54 + (x49 + (x45 + x42)))))))); + fiat_p521_uint128 x197 = (x177 + (x162 + (x148 + (x135 + (x123 + (x61 + (x55 + (x50 + x46)))))))); + fiat_p521_uint128 x198 = (x178 + (x163 + (x149 + (x136 + (x69 + (x62 + (x56 + (x51 + x47)))))))); + fiat_p521_uint128 x199 = (x179 + (x164 + (x150 + (x137 + (x78 + (x70 + (x63 + (x57 + x52)))))))); + fiat_p521_uint128 x200 = (x180 + (x165 + (x151 + (x88 + (x79 + (x71 + (x64 + (x58 + x53)))))))); + fiat_p521_uint128 x201 = (x181 + (x166 + (x152 + (x99 + (x89 + (x80 + (x72 + (x65 + x59)))))))); + fiat_p521_uint128 x202 = (x182 + (x167 + (x111 + (x100 + (x90 + (x81 + (x73 + (x66 + x60)))))))); + fiat_p521_uint128 x203 = (x183 + (x168 + (x124 + (x112 + (x101 + (x91 + (x82 + (x74 + x67)))))))); + fiat_p521_uint128 x204 = (x184 + (x138 + (x125 + (x113 + (x102 + (x92 + (x83 + (x75 + x68)))))))); + fiat_p521_uint128 x205 = (x187 + x204); + uint64_t x206 = (uint64_t)(x205 >> 31); + uint32_t x207 = (uint32_t)(x205 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x208 = (x206 + x203); + uint64_t x209 = (uint64_t)(x208 >> 30); + uint32_t x210 = (uint32_t)(x208 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x211 = (x209 + x202); + uint64_t x212 = (uint64_t)(x211 >> 31); + uint32_t x213 = (uint32_t)(x211 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x214 = (x212 + x201); + uint64_t x215 = (uint64_t)(x214 >> 31); + uint32_t x216 = (uint32_t)(x214 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x217 = (x215 + x200); + uint64_t x218 = (uint64_t)(x217 >> 30); + uint32_t x219 = (uint32_t)(x217 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x220 = (x218 + x199); + uint64_t x221 = (uint64_t)(x220 >> 31); + uint32_t x222 = (uint32_t)(x220 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x223 = (x221 + x198); + uint64_t x224 = (uint64_t)(x223 >> 31); + uint32_t x225 = (uint32_t)(x223 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x226 = (x224 + x197); + uint64_t x227 = (uint64_t)(x226 >> 30); + uint32_t x228 = (uint32_t)(x226 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x229 = (x227 + x196); + uint64_t x230 = (uint64_t)(x229 >> 31); + uint32_t x231 = (uint32_t)(x229 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x232 = (x230 + x195); + uint64_t x233 = (uint64_t)(x232 >> 31); + uint32_t x234 = (uint32_t)(x232 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x235 = (x233 + x194); + uint64_t x236 = (uint64_t)(x235 >> 30); + uint32_t x237 = (uint32_t)(x235 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x238 = (x236 + x193); + uint64_t x239 = (uint64_t)(x238 >> 31); + uint32_t x240 = (uint32_t)(x238 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x241 = (x239 + x192); + uint64_t x242 = (uint64_t)(x241 >> 31); + uint32_t x243 = (uint32_t)(x241 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x244 = (x242 + x191); + uint64_t x245 = (uint64_t)(x244 >> 30); + uint32_t x246 = (uint32_t)(x244 & UINT32_C(0x3fffffff)); + fiat_p521_uint128 x247 = (x245 + x190); + uint64_t x248 = (uint64_t)(x247 >> 31); + uint32_t x249 = (uint32_t)(x247 & UINT32_C(0x7fffffff)); + fiat_p521_uint128 x250 = (x248 + x189); + uint64_t x251 = (uint64_t)(x250 >> 30); + uint32_t x252 = (uint32_t)(x250 & UINT32_C(0x3fffffff)); + uint64_t x253 = (x188 + x251); + uint32_t x254 = (uint32_t)(x253 >> 31); + uint32_t x255 = (uint32_t)(x253 & UINT32_C(0x7fffffff)); + uint32_t x256 = (x254 + x207); + uint32_t x257 = (x256 >> 31); + uint32_t x258 = (x256 & UINT32_C(0x7fffffff)); + uint32_t x259 = (x257 + x210); + out1[0] = x255; + out1[1] = x258; + out1[2] = x259; + out1[3] = x213; + out1[4] = x216; + out1[5] = x219; + out1[6] = x222; + out1[7] = x225; + out1[8] = x228; + out1[9] = x231; + out1[10] = x234; + out1[11] = x237; + out1[12] = x240; + out1[13] = x243; + out1[14] = x246; + out1[15] = x249; + out1[16] = x252; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + */ +static void fiat_p521_carry(uint32_t out1[17], const uint64_t arg1[17]) { + uint64_t x1 = (arg1[0]); + uint64_t x2 = ((uint32_t)(x1 >> 31) + (arg1[1])); + uint32_t x3 = ((uint32_t)(x2 >> 31) + (uint32_t)(arg1[2])); + uint64_t x4 = ((x3 >> 30) + (arg1[3])); + uint64_t x5 = ((uint32_t)(x4 >> 31) + (arg1[4])); + uint32_t x6 = ((uint32_t)(x5 >> 31) + (uint32_t)(arg1[5])); + uint64_t x7 = ((x6 >> 30) + (arg1[6])); + uint64_t x8 = ((uint32_t)(x7 >> 31) + (arg1[7])); + uint32_t x9 = ((uint32_t)(x8 >> 31) + (uint32_t)(arg1[8])); + uint64_t x10 = ((x9 >> 30) + (arg1[9])); + uint64_t x11 = ((uint32_t)(x10 >> 31) + (arg1[10])); + uint32_t x12 = ((uint32_t)(x11 >> 31) + (uint32_t)(arg1[11])); + uint64_t x13 = ((x12 >> 30) + (arg1[12])); + uint64_t x14 = ((uint32_t)(x13 >> 31) + (arg1[13])); + uint32_t x15 = ((uint32_t)(x14 >> 31) + (uint32_t)(arg1[14])); + uint64_t x16 = ((x15 >> 30) + (arg1[15])); + uint32_t x17 = ((uint32_t)(x16 >> 31) + (uint32_t)(arg1[16])); + uint32_t x18 = ((uint32_t)(x1 & UINT32_C(0x7fffffff)) + (x17 >> 30)); + uint32_t x19 = ((x18 >> 31) + (uint32_t)(x2 & UINT32_C(0x7fffffff))); + uint32_t x20 = (x18 & UINT32_C(0x7fffffff)); + uint32_t x21 = (x19 & UINT32_C(0x7fffffff)); + uint32_t x22 = ((x19 >> 31) + (x3 & UINT32_C(0x3fffffff))); + uint32_t x23 = (uint32_t)(x4 & UINT32_C(0x7fffffff)); + uint32_t x24 = (uint32_t)(x5 & UINT32_C(0x7fffffff)); + uint32_t x25 = (x6 & UINT32_C(0x3fffffff)); + uint32_t x26 = (uint32_t)(x7 & UINT32_C(0x7fffffff)); + uint32_t x27 = (uint32_t)(x8 & UINT32_C(0x7fffffff)); + uint32_t x28 = (x9 & UINT32_C(0x3fffffff)); + uint32_t x29 = (uint32_t)(x10 & UINT32_C(0x7fffffff)); + uint32_t x30 = (uint32_t)(x11 & UINT32_C(0x7fffffff)); + uint32_t x31 = (x12 & UINT32_C(0x3fffffff)); + uint32_t x32 = (uint32_t)(x13 & UINT32_C(0x7fffffff)); + uint32_t x33 = (uint32_t)(x14 & UINT32_C(0x7fffffff)); + uint32_t x34 = (x15 & UINT32_C(0x3fffffff)); + uint32_t x35 = (uint32_t)(x16 & UINT32_C(0x7fffffff)); + uint32_t x36 = (x17 & UINT32_C(0x3fffffff)); + out1[0] = x20; + out1[1] = x21; + out1[2] = x22; + out1[3] = x23; + out1[4] = x24; + out1[5] = x25; + out1[6] = x26; + out1[7] = x27; + out1[8] = x28; + out1[9] = x29; + out1[10] = x30; + out1[11] = x31; + out1[12] = x32; + out1[13] = x33; + out1[14] = x34; + out1[15] = x35; + out1[16] = x36; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + * arg2: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + */ +static void fiat_p521_add(uint64_t out1[17], const uint32_t arg1[17], const uint32_t arg2[17]) { + uint64_t x1 = ((uint64_t)(arg1[0]) + (arg2[0])); + uint64_t x2 = ((uint64_t)(arg1[1]) + (arg2[1])); + uint32_t x3 = ((arg1[2]) + (arg2[2])); + uint64_t x4 = ((uint64_t)(arg1[3]) + (arg2[3])); + uint64_t x5 = ((uint64_t)(arg1[4]) + (arg2[4])); + uint32_t x6 = ((arg1[5]) + (arg2[5])); + uint64_t x7 = ((uint64_t)(arg1[6]) + (arg2[6])); + uint64_t x8 = ((uint64_t)(arg1[7]) + (arg2[7])); + uint32_t x9 = ((arg1[8]) + (arg2[8])); + uint64_t x10 = ((uint64_t)(arg1[9]) + (arg2[9])); + uint64_t x11 = ((uint64_t)(arg1[10]) + (arg2[10])); + uint32_t x12 = ((arg1[11]) + (arg2[11])); + uint64_t x13 = ((uint64_t)(arg1[12]) + (arg2[12])); + uint64_t x14 = ((uint64_t)(arg1[13]) + (arg2[13])); + uint32_t x15 = ((arg1[14]) + (arg2[14])); + uint64_t x16 = ((uint64_t)(arg1[15]) + (arg2[15])); + uint32_t x17 = ((arg1[16]) + (arg2[16])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + * arg2: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + */ +static void fiat_p521_sub(uint64_t out1[17], const uint32_t arg1[17], const uint32_t arg2[17]) { + uint64_t x1 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[0])) - (arg2[0])); + uint64_t x2 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[1])) - (arg2[1])); + uint32_t x3 = ((UINT32_C(0x7ffffffe) + (arg1[2])) - (arg2[2])); + uint64_t x4 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[3])) - (arg2[3])); + uint64_t x5 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[4])) - (arg2[4])); + uint32_t x6 = ((UINT32_C(0x7ffffffe) + (arg1[5])) - (arg2[5])); + uint64_t x7 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[6])) - (arg2[6])); + uint64_t x8 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[7])) - (arg2[7])); + uint32_t x9 = ((UINT32_C(0x7ffffffe) + (arg1[8])) - (arg2[8])); + uint64_t x10 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[9])) - (arg2[9])); + uint64_t x11 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[10])) - (arg2[10])); + uint32_t x12 = ((UINT32_C(0x7ffffffe) + (arg1[11])) - (arg2[11])); + uint64_t x13 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[12])) - (arg2[12])); + uint64_t x14 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[13])) - (arg2[13])); + uint32_t x15 = ((UINT32_C(0x7ffffffe) + (arg1[14])) - (arg2[14])); + uint64_t x16 = (((uint64_t)UINT32_C(0xfffffffe) + (arg1[15])) - (arg2[15])); + uint32_t x17 = ((UINT32_C(0x7ffffffe) + (arg1[16])) - (arg2[16])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332], [0x0 ~> 0x1a6666664], [0x0 ~> 0xd3333332]] + */ +static void fiat_p521_opp(uint32_t out1[17], const uint32_t arg1[17]) { + uint32_t x1 = (UINT32_C(0xfffffffe) - (arg1[0])); + uint32_t x2 = (UINT32_C(0xfffffffe) - (arg1[1])); + uint32_t x3 = (UINT32_C(0x7ffffffe) - (arg1[2])); + uint32_t x4 = (UINT32_C(0xfffffffe) - (arg1[3])); + uint32_t x5 = (UINT32_C(0xfffffffe) - (arg1[4])); + uint32_t x6 = (UINT32_C(0x7ffffffe) - (arg1[5])); + uint32_t x7 = (UINT32_C(0xfffffffe) - (arg1[6])); + uint32_t x8 = (UINT32_C(0xfffffffe) - (arg1[7])); + uint32_t x9 = (UINT32_C(0x7ffffffe) - (arg1[8])); + uint32_t x10 = (UINT32_C(0xfffffffe) - (arg1[9])); + uint32_t x11 = (UINT32_C(0xfffffffe) - (arg1[10])); + uint32_t x12 = (UINT32_C(0x7ffffffe) - (arg1[11])); + uint32_t x13 = (UINT32_C(0xfffffffe) - (arg1[12])); + uint32_t x14 = (UINT32_C(0xfffffffe) - (arg1[13])); + uint32_t x15 = (UINT32_C(0x7ffffffe) - (arg1[14])); + uint32_t x16 = (UINT32_C(0xfffffffe) - (arg1[15])); + uint32_t x17 = (UINT32_C(0x7ffffffe) - (arg1[16])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_p521_selectznz(uint32_t out1[17], fiat_p521_uint1 arg1, const uint32_t arg2[17], const uint32_t arg3[17]) { + uint32_t x1; + fiat_p521_cmovznz_u32(&x1, arg1, (arg2[0]), (arg3[0])); + uint32_t x2; + fiat_p521_cmovznz_u32(&x2, arg1, (arg2[1]), (arg3[1])); + uint32_t x3; + fiat_p521_cmovznz_u32(&x3, arg1, (arg2[2]), (arg3[2])); + uint32_t x4; + fiat_p521_cmovznz_u32(&x4, arg1, (arg2[3]), (arg3[3])); + uint32_t x5; + fiat_p521_cmovznz_u32(&x5, arg1, (arg2[4]), (arg3[4])); + uint32_t x6; + fiat_p521_cmovznz_u32(&x6, arg1, (arg2[5]), (arg3[5])); + uint32_t x7; + fiat_p521_cmovznz_u32(&x7, arg1, (arg2[6]), (arg3[6])); + uint32_t x8; + fiat_p521_cmovznz_u32(&x8, arg1, (arg2[7]), (arg3[7])); + uint32_t x9; + fiat_p521_cmovznz_u32(&x9, arg1, (arg2[8]), (arg3[8])); + uint32_t x10; + fiat_p521_cmovznz_u32(&x10, arg1, (arg2[9]), (arg3[9])); + uint32_t x11; + fiat_p521_cmovznz_u32(&x11, arg1, (arg2[10]), (arg3[10])); + uint32_t x12; + fiat_p521_cmovznz_u32(&x12, arg1, (arg2[11]), (arg3[11])); + uint32_t x13; + fiat_p521_cmovznz_u32(&x13, arg1, (arg2[12]), (arg3[12])); + uint32_t x14; + fiat_p521_cmovznz_u32(&x14, arg1, (arg2[13]), (arg3[13])); + uint32_t x15; + fiat_p521_cmovznz_u32(&x15, arg1, (arg2[14]), (arg3[14])); + uint32_t x16; + fiat_p521_cmovznz_u32(&x16, arg1, (arg2[15]), (arg3[15])); + uint32_t x17; + fiat_p521_cmovznz_u32(&x17, arg1, (arg2[16]), (arg3[16])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; + out1[9] = x10; + out1[10] = x11; + out1[11] = x12; + out1[12] = x13; + out1[13] = x14; + out1[14] = x15; + out1[15] = x16; + out1[16] = x17; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]] + */ +static void fiat_p521_to_bytes(uint8_t out1[66], const uint32_t arg1[17]) { + uint32_t x1; + fiat_p521_uint1 x2; + fiat_p521_subborrowx_u31(&x1, &x2, 0x0, (arg1[0]), UINT32_C(0x7fffffff)); + uint32_t x3; + fiat_p521_uint1 x4; + fiat_p521_subborrowx_u31(&x3, &x4, x2, (arg1[1]), UINT32_C(0x7fffffff)); + uint32_t x5; + fiat_p521_uint1 x6; + fiat_p521_subborrowx_u30(&x5, &x6, x4, (arg1[2]), UINT32_C(0x3fffffff)); + uint32_t x7; + fiat_p521_uint1 x8; + fiat_p521_subborrowx_u31(&x7, &x8, x6, (arg1[3]), UINT32_C(0x7fffffff)); + uint32_t x9; + fiat_p521_uint1 x10; + fiat_p521_subborrowx_u31(&x9, &x10, x8, (arg1[4]), UINT32_C(0x7fffffff)); + uint32_t x11; + fiat_p521_uint1 x12; + fiat_p521_subborrowx_u30(&x11, &x12, x10, (arg1[5]), UINT32_C(0x3fffffff)); + uint32_t x13; + fiat_p521_uint1 x14; + fiat_p521_subborrowx_u31(&x13, &x14, x12, (arg1[6]), UINT32_C(0x7fffffff)); + uint32_t x15; + fiat_p521_uint1 x16; + fiat_p521_subborrowx_u31(&x15, &x16, x14, (arg1[7]), UINT32_C(0x7fffffff)); + uint32_t x17; + fiat_p521_uint1 x18; + fiat_p521_subborrowx_u30(&x17, &x18, x16, (arg1[8]), UINT32_C(0x3fffffff)); + uint32_t x19; + fiat_p521_uint1 x20; + fiat_p521_subborrowx_u31(&x19, &x20, x18, (arg1[9]), UINT32_C(0x7fffffff)); + uint32_t x21; + fiat_p521_uint1 x22; + fiat_p521_subborrowx_u31(&x21, &x22, x20, (arg1[10]), UINT32_C(0x7fffffff)); + uint32_t x23; + fiat_p521_uint1 x24; + fiat_p521_subborrowx_u30(&x23, &x24, x22, (arg1[11]), UINT32_C(0x3fffffff)); + uint32_t x25; + fiat_p521_uint1 x26; + fiat_p521_subborrowx_u31(&x25, &x26, x24, (arg1[12]), UINT32_C(0x7fffffff)); + uint32_t x27; + fiat_p521_uint1 x28; + fiat_p521_subborrowx_u31(&x27, &x28, x26, (arg1[13]), UINT32_C(0x7fffffff)); + uint32_t x29; + fiat_p521_uint1 x30; + fiat_p521_subborrowx_u30(&x29, &x30, x28, (arg1[14]), UINT32_C(0x3fffffff)); + uint32_t x31; + fiat_p521_uint1 x32; + fiat_p521_subborrowx_u31(&x31, &x32, x30, (arg1[15]), UINT32_C(0x7fffffff)); + uint32_t x33; + fiat_p521_uint1 x34; + fiat_p521_subborrowx_u30(&x33, &x34, x32, (arg1[16]), UINT32_C(0x3fffffff)); + uint32_t x35; + fiat_p521_cmovznz_u32(&x35, x34, 0x0, UINT32_C(0xffffffff)); + uint32_t x36; + fiat_p521_uint1 x37; + fiat_p521_addcarryx_u31(&x36, &x37, 0x0, (x35 & UINT32_C(0x7fffffff)), x1); + uint32_t x38; + fiat_p521_uint1 x39; + fiat_p521_addcarryx_u31(&x38, &x39, x37, (x35 & UINT32_C(0x7fffffff)), x3); + uint32_t x40; + fiat_p521_uint1 x41; + fiat_p521_addcarryx_u30(&x40, &x41, x39, (x35 & UINT32_C(0x3fffffff)), x5); + uint32_t x42; + fiat_p521_uint1 x43; + fiat_p521_addcarryx_u31(&x42, &x43, x41, (x35 & UINT32_C(0x7fffffff)), x7); + uint32_t x44; + fiat_p521_uint1 x45; + fiat_p521_addcarryx_u31(&x44, &x45, x43, (x35 & UINT32_C(0x7fffffff)), x9); + uint32_t x46; + fiat_p521_uint1 x47; + fiat_p521_addcarryx_u30(&x46, &x47, x45, (x35 & UINT32_C(0x3fffffff)), x11); + uint32_t x48; + fiat_p521_uint1 x49; + fiat_p521_addcarryx_u31(&x48, &x49, x47, (x35 & UINT32_C(0x7fffffff)), x13); + uint32_t x50; + fiat_p521_uint1 x51; + fiat_p521_addcarryx_u31(&x50, &x51, x49, (x35 & UINT32_C(0x7fffffff)), x15); + uint32_t x52; + fiat_p521_uint1 x53; + fiat_p521_addcarryx_u30(&x52, &x53, x51, (x35 & UINT32_C(0x3fffffff)), x17); + uint32_t x54; + fiat_p521_uint1 x55; + fiat_p521_addcarryx_u31(&x54, &x55, x53, (x35 & UINT32_C(0x7fffffff)), x19); + uint32_t x56; + fiat_p521_uint1 x57; + fiat_p521_addcarryx_u31(&x56, &x57, x55, (x35 & UINT32_C(0x7fffffff)), x21); + uint32_t x58; + fiat_p521_uint1 x59; + fiat_p521_addcarryx_u30(&x58, &x59, x57, (x35 & UINT32_C(0x3fffffff)), x23); + uint32_t x60; + fiat_p521_uint1 x61; + fiat_p521_addcarryx_u31(&x60, &x61, x59, (x35 & UINT32_C(0x7fffffff)), x25); + uint32_t x62; + fiat_p521_uint1 x63; + fiat_p521_addcarryx_u31(&x62, &x63, x61, (x35 & UINT32_C(0x7fffffff)), x27); + uint32_t x64; + fiat_p521_uint1 x65; + fiat_p521_addcarryx_u30(&x64, &x65, x63, (x35 & UINT32_C(0x3fffffff)), x29); + uint32_t x66; + fiat_p521_uint1 x67; + fiat_p521_addcarryx_u31(&x66, &x67, x65, (x35 & UINT32_C(0x7fffffff)), x31); + uint32_t x68; + fiat_p521_uint1 x69; + fiat_p521_addcarryx_u30(&x68, &x69, x67, (x35 & UINT32_C(0x3fffffff)), x33); + uint64_t x70 = ((uint64_t)x68 << 3); + uint64_t x71 = ((uint64_t)x66 << 4); + uint64_t x72 = ((uint64_t)x64 << 6); + uint64_t x73 = ((uint64_t)x62 << 7); + uint32_t x74 = (x58 << 2); + uint64_t x75 = ((uint64_t)x56 << 3); + uint64_t x76 = ((uint64_t)x54 << 4); + uint64_t x77 = ((uint64_t)x52 << 6); + uint64_t x78 = ((uint64_t)x50 << 7); + uint32_t x79 = (x46 << 2); + uint64_t x80 = ((uint64_t)x44 << 3); + uint64_t x81 = ((uint64_t)x42 << 4); + uint64_t x82 = ((uint64_t)x40 << 6); + uint64_t x83 = ((uint64_t)x38 << 7); + uint32_t x84 = (x36 >> 8); + uint8_t x85 = (uint8_t)(x36 & UINT8_C(0xff)); + uint32_t x86 = (x84 >> 8); + uint8_t x87 = (uint8_t)(x84 & UINT8_C(0xff)); + uint8_t x88 = (uint8_t)(x86 >> 8); + uint8_t x89 = (uint8_t)(x86 & UINT8_C(0xff)); + uint64_t x90 = (x88 + x83); + uint32_t x91 = (uint32_t)(x90 >> 8); + uint8_t x92 = (uint8_t)(x90 & UINT8_C(0xff)); + uint32_t x93 = (x91 >> 8); + uint8_t x94 = (uint8_t)(x91 & UINT8_C(0xff)); + uint32_t x95 = (x93 >> 8); + uint8_t x96 = (uint8_t)(x93 & UINT8_C(0xff)); + uint8_t x97 = (uint8_t)(x95 >> 8); + uint8_t x98 = (uint8_t)(x95 & UINT8_C(0xff)); + uint64_t x99 = (x97 + x82); + uint32_t x100 = (uint32_t)(x99 >> 8); + uint8_t x101 = (uint8_t)(x99 & UINT8_C(0xff)); + uint32_t x102 = (x100 >> 8); + uint8_t x103 = (uint8_t)(x100 & UINT8_C(0xff)); + uint32_t x104 = (x102 >> 8); + uint8_t x105 = (uint8_t)(x102 & UINT8_C(0xff)); + uint8_t x106 = (uint8_t)(x104 >> 8); + uint8_t x107 = (uint8_t)(x104 & UINT8_C(0xff)); + uint64_t x108 = (x106 + x81); + uint32_t x109 = (uint32_t)(x108 >> 8); + uint8_t x110 = (uint8_t)(x108 & UINT8_C(0xff)); + uint32_t x111 = (x109 >> 8); + uint8_t x112 = (uint8_t)(x109 & UINT8_C(0xff)); + uint32_t x113 = (x111 >> 8); + uint8_t x114 = (uint8_t)(x111 & UINT8_C(0xff)); + uint8_t x115 = (uint8_t)(x113 >> 8); + uint8_t x116 = (uint8_t)(x113 & UINT8_C(0xff)); + uint64_t x117 = (x115 + x80); + uint32_t x118 = (uint32_t)(x117 >> 8); + uint8_t x119 = (uint8_t)(x117 & UINT8_C(0xff)); + uint32_t x120 = (x118 >> 8); + uint8_t x121 = (uint8_t)(x118 & UINT8_C(0xff)); + uint32_t x122 = (x120 >> 8); + uint8_t x123 = (uint8_t)(x120 & UINT8_C(0xff)); + uint8_t x124 = (uint8_t)(x122 >> 8); + uint8_t x125 = (uint8_t)(x122 & UINT8_C(0xff)); + uint32_t x126 = (x124 + x79); + uint32_t x127 = (x126 >> 8); + uint8_t x128 = (uint8_t)(x126 & UINT8_C(0xff)); + uint32_t x129 = (x127 >> 8); + uint8_t x130 = (uint8_t)(x127 & UINT8_C(0xff)); + uint8_t x131 = (uint8_t)(x129 >> 8); + uint8_t x132 = (uint8_t)(x129 & UINT8_C(0xff)); + fiat_p521_uint1 x133 = (fiat_p521_uint1)(x131 >> 8); + uint8_t x134 = (uint8_t)(x131 & UINT8_C(0xff)); + uint32_t x135 = (x133 + x48); + uint32_t x136 = (x135 >> 8); + uint8_t x137 = (uint8_t)(x135 & UINT8_C(0xff)); + uint32_t x138 = (x136 >> 8); + uint8_t x139 = (uint8_t)(x136 & UINT8_C(0xff)); + uint8_t x140 = (uint8_t)(x138 >> 8); + uint8_t x141 = (uint8_t)(x138 & UINT8_C(0xff)); + uint64_t x142 = (x140 + x78); + uint32_t x143 = (uint32_t)(x142 >> 8); + uint8_t x144 = (uint8_t)(x142 & UINT8_C(0xff)); + uint32_t x145 = (x143 >> 8); + uint8_t x146 = (uint8_t)(x143 & UINT8_C(0xff)); + uint32_t x147 = (x145 >> 8); + uint8_t x148 = (uint8_t)(x145 & UINT8_C(0xff)); + uint8_t x149 = (uint8_t)(x147 >> 8); + uint8_t x150 = (uint8_t)(x147 & UINT8_C(0xff)); + uint64_t x151 = (x149 + x77); + uint32_t x152 = (uint32_t)(x151 >> 8); + uint8_t x153 = (uint8_t)(x151 & UINT8_C(0xff)); + uint32_t x154 = (x152 >> 8); + uint8_t x155 = (uint8_t)(x152 & UINT8_C(0xff)); + uint32_t x156 = (x154 >> 8); + uint8_t x157 = (uint8_t)(x154 & UINT8_C(0xff)); + uint8_t x158 = (uint8_t)(x156 >> 8); + uint8_t x159 = (uint8_t)(x156 & UINT8_C(0xff)); + uint64_t x160 = (x158 + x76); + uint32_t x161 = (uint32_t)(x160 >> 8); + uint8_t x162 = (uint8_t)(x160 & UINT8_C(0xff)); + uint32_t x163 = (x161 >> 8); + uint8_t x164 = (uint8_t)(x161 & UINT8_C(0xff)); + uint32_t x165 = (x163 >> 8); + uint8_t x166 = (uint8_t)(x163 & UINT8_C(0xff)); + uint8_t x167 = (uint8_t)(x165 >> 8); + uint8_t x168 = (uint8_t)(x165 & UINT8_C(0xff)); + uint64_t x169 = (x167 + x75); + uint32_t x170 = (uint32_t)(x169 >> 8); + uint8_t x171 = (uint8_t)(x169 & UINT8_C(0xff)); + uint32_t x172 = (x170 >> 8); + uint8_t x173 = (uint8_t)(x170 & UINT8_C(0xff)); + uint32_t x174 = (x172 >> 8); + uint8_t x175 = (uint8_t)(x172 & UINT8_C(0xff)); + uint8_t x176 = (uint8_t)(x174 >> 8); + uint8_t x177 = (uint8_t)(x174 & UINT8_C(0xff)); + uint32_t x178 = (x176 + x74); + uint32_t x179 = (x178 >> 8); + uint8_t x180 = (uint8_t)(x178 & UINT8_C(0xff)); + uint32_t x181 = (x179 >> 8); + uint8_t x182 = (uint8_t)(x179 & UINT8_C(0xff)); + uint8_t x183 = (uint8_t)(x181 >> 8); + uint8_t x184 = (uint8_t)(x181 & UINT8_C(0xff)); + fiat_p521_uint1 x185 = (fiat_p521_uint1)(x183 >> 8); + uint8_t x186 = (uint8_t)(x183 & UINT8_C(0xff)); + uint32_t x187 = (x185 + x60); + uint32_t x188 = (x187 >> 8); + uint8_t x189 = (uint8_t)(x187 & UINT8_C(0xff)); + uint32_t x190 = (x188 >> 8); + uint8_t x191 = (uint8_t)(x188 & UINT8_C(0xff)); + uint8_t x192 = (uint8_t)(x190 >> 8); + uint8_t x193 = (uint8_t)(x190 & UINT8_C(0xff)); + uint64_t x194 = (x192 + x73); + uint32_t x195 = (uint32_t)(x194 >> 8); + uint8_t x196 = (uint8_t)(x194 & UINT8_C(0xff)); + uint32_t x197 = (x195 >> 8); + uint8_t x198 = (uint8_t)(x195 & UINT8_C(0xff)); + uint32_t x199 = (x197 >> 8); + uint8_t x200 = (uint8_t)(x197 & UINT8_C(0xff)); + uint8_t x201 = (uint8_t)(x199 >> 8); + uint8_t x202 = (uint8_t)(x199 & UINT8_C(0xff)); + uint64_t x203 = (x201 + x72); + uint32_t x204 = (uint32_t)(x203 >> 8); + uint8_t x205 = (uint8_t)(x203 & UINT8_C(0xff)); + uint32_t x206 = (x204 >> 8); + uint8_t x207 = (uint8_t)(x204 & UINT8_C(0xff)); + uint32_t x208 = (x206 >> 8); + uint8_t x209 = (uint8_t)(x206 & UINT8_C(0xff)); + uint8_t x210 = (uint8_t)(x208 >> 8); + uint8_t x211 = (uint8_t)(x208 & UINT8_C(0xff)); + uint64_t x212 = (x210 + x71); + uint32_t x213 = (uint32_t)(x212 >> 8); + uint8_t x214 = (uint8_t)(x212 & UINT8_C(0xff)); + uint32_t x215 = (x213 >> 8); + uint8_t x216 = (uint8_t)(x213 & UINT8_C(0xff)); + uint32_t x217 = (x215 >> 8); + uint8_t x218 = (uint8_t)(x215 & UINT8_C(0xff)); + uint8_t x219 = (uint8_t)(x217 >> 8); + uint8_t x220 = (uint8_t)(x217 & UINT8_C(0xff)); + uint64_t x221 = (x219 + x70); + uint32_t x222 = (uint32_t)(x221 >> 8); + uint8_t x223 = (uint8_t)(x221 & UINT8_C(0xff)); + uint32_t x224 = (x222 >> 8); + uint8_t x225 = (uint8_t)(x222 & UINT8_C(0xff)); + uint32_t x226 = (x224 >> 8); + uint8_t x227 = (uint8_t)(x224 & UINT8_C(0xff)); + fiat_p521_uint1 x228 = (fiat_p521_uint1)(x226 >> 8); + uint8_t x229 = (uint8_t)(x226 & UINT8_C(0xff)); + out1[0] = x85; + out1[1] = x87; + out1[2] = x89; + out1[3] = x92; + out1[4] = x94; + out1[5] = x96; + out1[6] = x98; + out1[7] = x101; + out1[8] = x103; + out1[9] = x105; + out1[10] = x107; + out1[11] = x110; + out1[12] = x112; + out1[13] = x114; + out1[14] = x116; + out1[15] = x119; + out1[16] = x121; + out1[17] = x123; + out1[18] = x125; + out1[19] = x128; + out1[20] = x130; + out1[21] = x132; + out1[22] = x134; + out1[23] = x137; + out1[24] = x139; + out1[25] = x141; + out1[26] = x144; + out1[27] = x146; + out1[28] = x148; + out1[29] = x150; + out1[30] = x153; + out1[31] = x155; + out1[32] = x157; + out1[33] = x159; + out1[34] = x162; + out1[35] = x164; + out1[36] = x166; + out1[37] = x168; + out1[38] = x171; + out1[39] = x173; + out1[40] = x175; + out1[41] = x177; + out1[42] = x180; + out1[43] = x182; + out1[44] = x184; + out1[45] = x186; + out1[46] = x189; + out1[47] = x191; + out1[48] = x193; + out1[49] = x196; + out1[50] = x198; + out1[51] = x200; + out1[52] = x202; + out1[53] = x205; + out1[54] = x207; + out1[55] = x209; + out1[56] = x211; + out1[57] = x214; + out1[58] = x216; + out1[59] = x218; + out1[60] = x220; + out1[61] = x223; + out1[62] = x225; + out1[63] = x227; + out1[64] = x229; + out1[65] = x228; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666], [0x0 ~> 0x8ccccccc], [0x0 ~> 0x46666666]] + */ +static void fiat_p521_from_bytes(uint32_t out1[17], const uint8_t arg1[66]) { + uint32_t x1 = ((uint32_t)(fiat_p521_uint1)(arg1[65]) << 29); + uint32_t x2 = ((uint32_t)(arg1[64]) << 21); + uint32_t x3 = ((uint32_t)(arg1[63]) << 13); + uint32_t x4 = ((uint32_t)(arg1[62]) << 5); + uint64_t x5 = ((uint64_t)(arg1[61]) << 28); + uint32_t x6 = ((uint32_t)(arg1[60]) << 20); + uint32_t x7 = ((uint32_t)(arg1[59]) << 12); + uint32_t x8 = ((uint32_t)(arg1[58]) << 4); + uint64_t x9 = ((uint64_t)(arg1[57]) << 26); + uint32_t x10 = ((uint32_t)(arg1[56]) << 18); + uint32_t x11 = ((uint32_t)(arg1[55]) << 10); + uint32_t x12 = ((uint32_t)(arg1[54]) << 2); + uint64_t x13 = ((uint64_t)(arg1[53]) << 25); + uint32_t x14 = ((uint32_t)(arg1[52]) << 17); + uint32_t x15 = ((uint32_t)(arg1[51]) << 9); + uint32_t x16 = ((uint32_t)(arg1[50]) * 0x2); + uint32_t x17 = ((uint32_t)(arg1[49]) << 24); + uint32_t x18 = ((uint32_t)(arg1[48]) << 16); + uint32_t x19 = ((uint32_t)(arg1[47]) << 8); + uint8_t x20 = (arg1[46]); + uint32_t x21 = ((uint32_t)(arg1[45]) << 22); + uint32_t x22 = ((uint32_t)(arg1[44]) << 14); + uint32_t x23 = ((uint32_t)(arg1[43]) << 6); + uint64_t x24 = ((uint64_t)(arg1[42]) << 29); + uint32_t x25 = ((uint32_t)(arg1[41]) << 21); + uint32_t x26 = ((uint32_t)(arg1[40]) << 13); + uint32_t x27 = ((uint32_t)(arg1[39]) << 5); + uint64_t x28 = ((uint64_t)(arg1[38]) << 28); + uint32_t x29 = ((uint32_t)(arg1[37]) << 20); + uint32_t x30 = ((uint32_t)(arg1[36]) << 12); + uint32_t x31 = ((uint32_t)(arg1[35]) << 4); + uint64_t x32 = ((uint64_t)(arg1[34]) << 26); + uint32_t x33 = ((uint32_t)(arg1[33]) << 18); + uint32_t x34 = ((uint32_t)(arg1[32]) << 10); + uint32_t x35 = ((uint32_t)(arg1[31]) << 2); + uint64_t x36 = ((uint64_t)(arg1[30]) << 25); + uint32_t x37 = ((uint32_t)(arg1[29]) << 17); + uint32_t x38 = ((uint32_t)(arg1[28]) << 9); + uint32_t x39 = ((uint32_t)(arg1[27]) * 0x2); + uint32_t x40 = ((uint32_t)(arg1[26]) << 24); + uint32_t x41 = ((uint32_t)(arg1[25]) << 16); + uint32_t x42 = ((uint32_t)(arg1[24]) << 8); + uint8_t x43 = (arg1[23]); + uint32_t x44 = ((uint32_t)(arg1[22]) << 22); + uint32_t x45 = ((uint32_t)(arg1[21]) << 14); + uint32_t x46 = ((uint32_t)(arg1[20]) << 6); + uint64_t x47 = ((uint64_t)(arg1[19]) << 29); + uint32_t x48 = ((uint32_t)(arg1[18]) << 21); + uint32_t x49 = ((uint32_t)(arg1[17]) << 13); + uint32_t x50 = ((uint32_t)(arg1[16]) << 5); + uint64_t x51 = ((uint64_t)(arg1[15]) << 28); + uint32_t x52 = ((uint32_t)(arg1[14]) << 20); + uint32_t x53 = ((uint32_t)(arg1[13]) << 12); + uint32_t x54 = ((uint32_t)(arg1[12]) << 4); + uint64_t x55 = ((uint64_t)(arg1[11]) << 26); + uint32_t x56 = ((uint32_t)(arg1[10]) << 18); + uint32_t x57 = ((uint32_t)(arg1[9]) << 10); + uint32_t x58 = ((uint32_t)(arg1[8]) << 2); + uint64_t x59 = ((uint64_t)(arg1[7]) << 25); + uint32_t x60 = ((uint32_t)(arg1[6]) << 17); + uint32_t x61 = ((uint32_t)(arg1[5]) << 9); + uint32_t x62 = ((uint32_t)(arg1[4]) * 0x2); + uint32_t x63 = ((uint32_t)(arg1[3]) << 24); + uint32_t x64 = ((uint32_t)(arg1[2]) << 16); + uint32_t x65 = ((uint32_t)(arg1[1]) << 8); + uint8_t x66 = (arg1[0]); + uint32_t x67 = (x66 + (x65 + (x64 + x63))); + fiat_p521_uint1 x68 = (fiat_p521_uint1)(x67 >> 31); + uint32_t x69 = (x67 & UINT32_C(0x7fffffff)); + uint32_t x70 = (x4 + (x3 + (x2 + x1))); + uint64_t x71 = (x8 + (x7 + (x6 + x5))); + uint64_t x72 = (x12 + (x11 + (x10 + x9))); + uint64_t x73 = (x16 + (x15 + (x14 + x13))); + uint32_t x74 = (x20 + (x19 + (x18 + x17))); + uint32_t x75 = (x23 + (x22 + x21)); + uint64_t x76 = (x27 + (x26 + (x25 + x24))); + uint64_t x77 = (x31 + (x30 + (x29 + x28))); + uint64_t x78 = (x35 + (x34 + (x33 + x32))); + uint64_t x79 = (x39 + (x38 + (x37 + x36))); + uint32_t x80 = (x43 + (x42 + (x41 + x40))); + uint32_t x81 = (x46 + (x45 + x44)); + uint64_t x82 = (x50 + (x49 + (x48 + x47))); + uint64_t x83 = (x54 + (x53 + (x52 + x51))); + uint64_t x84 = (x58 + (x57 + (x56 + x55))); + uint64_t x85 = (x62 + (x61 + (x60 + x59))); + uint64_t x86 = (x68 + x85); + uint8_t x87 = (uint8_t)(x86 >> 31); + uint32_t x88 = (uint32_t)(x86 & UINT32_C(0x7fffffff)); + uint64_t x89 = (x87 + x84); + uint8_t x90 = (uint8_t)(x89 >> 30); + uint32_t x91 = (uint32_t)(x89 & UINT32_C(0x3fffffff)); + uint64_t x92 = (x90 + x83); + uint8_t x93 = (uint8_t)(x92 >> 31); + uint32_t x94 = (uint32_t)(x92 & UINT32_C(0x7fffffff)); + uint64_t x95 = (x93 + x82); + uint8_t x96 = (uint8_t)(x95 >> 31); + uint32_t x97 = (uint32_t)(x95 & UINT32_C(0x7fffffff)); + uint32_t x98 = (x96 + x81); + fiat_p521_uint1 x99 = (fiat_p521_uint1)(x98 >> 30); + uint32_t x100 = (x98 & UINT32_C(0x3fffffff)); + uint32_t x101 = (x99 + x80); + fiat_p521_uint1 x102 = (fiat_p521_uint1)(x101 >> 31); + uint32_t x103 = (x101 & UINT32_C(0x7fffffff)); + uint64_t x104 = (x102 + x79); + uint8_t x105 = (uint8_t)(x104 >> 31); + uint32_t x106 = (uint32_t)(x104 & UINT32_C(0x7fffffff)); + uint64_t x107 = (x105 + x78); + uint8_t x108 = (uint8_t)(x107 >> 30); + uint32_t x109 = (uint32_t)(x107 & UINT32_C(0x3fffffff)); + uint64_t x110 = (x108 + x77); + uint8_t x111 = (uint8_t)(x110 >> 31); + uint32_t x112 = (uint32_t)(x110 & UINT32_C(0x7fffffff)); + uint64_t x113 = (x111 + x76); + uint8_t x114 = (uint8_t)(x113 >> 31); + uint32_t x115 = (uint32_t)(x113 & UINT32_C(0x7fffffff)); + uint32_t x116 = (x114 + x75); + fiat_p521_uint1 x117 = (fiat_p521_uint1)(x116 >> 30); + uint32_t x118 = (x116 & UINT32_C(0x3fffffff)); + uint32_t x119 = (x117 + x74); + fiat_p521_uint1 x120 = (fiat_p521_uint1)(x119 >> 31); + uint32_t x121 = (x119 & UINT32_C(0x7fffffff)); + uint64_t x122 = (x120 + x73); + uint8_t x123 = (uint8_t)(x122 >> 31); + uint32_t x124 = (uint32_t)(x122 & UINT32_C(0x7fffffff)); + uint64_t x125 = (x123 + x72); + uint8_t x126 = (uint8_t)(x125 >> 30); + uint32_t x127 = (uint32_t)(x125 & UINT32_C(0x3fffffff)); + uint64_t x128 = (x126 + x71); + uint8_t x129 = (uint8_t)(x128 >> 31); + uint32_t x130 = (uint32_t)(x128 & UINT32_C(0x7fffffff)); + uint32_t x131 = (x129 + x70); + out1[0] = x69; + out1[1] = x88; + out1[2] = x91; + out1[3] = x94; + out1[4] = x97; + out1[5] = x100; + out1[6] = x103; + out1[7] = x106; + out1[8] = x109; + out1[9] = x112; + out1[10] = x115; + out1[11] = x118; + out1[12] = x121; + out1[13] = x124; + out1[14] = x127; + out1[15] = x130; + out1[16] = x131; +} + diff --git a/p521_64.c b/p521_64.c new file mode 100644 index 000000000..069a596d1 --- /dev/null +++ b/p521_64.c @@ -0,0 +1,912 @@ +/* Autogenerated */ +/* curve description: p521 */ +/* requested operations: (all) */ +/* n = 9 (from "9") */ +/* s = 0x20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (from "2^521") */ +/* c = [(1, 1)] (from "1,1") */ +/* machine_wordsize = 64 (from "64") */ + +#include <stdint.h> +typedef unsigned char fiat_p521_uint1; +typedef signed char fiat_p521_int1; +typedef signed __int128 fiat_p521_int128; +typedef unsigned __int128 fiat_p521_uint128; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x3ffffffffffffff] + * arg3: [0x0 ~> 0x3ffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0x3ffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_addcarryx_u58(uint64_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint64_t arg2, uint64_t arg3) { + uint64_t x1 = ((arg1 + arg2) + arg3); + uint64_t x2 = (x1 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint1 x3 = (fiat_p521_uint1)(x1 >> 58); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x3ffffffffffffff] + * arg3: [0x0 ~> 0x3ffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0x3ffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_subborrowx_u58(uint64_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint64_t arg2, uint64_t arg3) { + int64_t x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + fiat_p521_int1 x2 = (fiat_p521_int1)((uint64_t)x1 >> 58); + uint64_t x3 = (x1 & UINT64_C(0x3ffffffffffffff)); + *out1 = x3; + *out2 = (fiat_p521_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x1ffffffffffffff] + * arg3: [0x0 ~> 0x1ffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0x1ffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_addcarryx_u57(uint64_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint64_t arg2, uint64_t arg3) { + uint64_t x1 = ((arg1 + arg2) + arg3); + uint64_t x2 = (x1 & UINT64_C(0x1ffffffffffffff)); + fiat_p521_uint1 x3 = (fiat_p521_uint1)(x1 >> 57); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0x1ffffffffffffff] + * arg3: [0x0 ~> 0x1ffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0x1ffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_p521_subborrowx_u57(uint64_t* out1, fiat_p521_uint1* out2, fiat_p521_uint1 arg1, uint64_t arg2, uint64_t arg3) { + int64_t x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + fiat_p521_int1 x2 = (fiat_p521_int1)((uint64_t)x1 >> 57); + uint64_t x3 = (x1 & UINT64_C(0x1ffffffffffffff)); + *out1 = x3; + *out2 = (fiat_p521_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_p521_cmovznz_u64(uint64_t* out1, fiat_p521_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_p521_uint1 x1 = (!(!arg1)); + uint64_t x2 = ((fiat_p521_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = ((x2 & arg3) | (uint64_t)((fiat_p521_uint128)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + * arg2: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + * Output Bounds: + * out1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + */ +static void fiat_p521_carry_mul(uint64_t out1[9], const uint64_t arg1[9], const uint64_t arg2[9]) { + fiat_p521_uint128 x1 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x2 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x3 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x4 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x5 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x6 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[3]) * (uint64_t)0x2)); + fiat_p521_uint128 x7 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x8 = ((fiat_p521_uint128)(arg1[8]) * ((arg2[1]) * (uint64_t)0x2)); + fiat_p521_uint128 x9 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x10 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x11 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x12 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x13 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x14 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[3]) * (uint64_t)0x2)); + fiat_p521_uint128 x15 = ((fiat_p521_uint128)(arg1[7]) * ((arg2[2]) * (uint64_t)0x2)); + fiat_p521_uint128 x16 = ((fiat_p521_uint128)(arg1[6]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x17 = ((fiat_p521_uint128)(arg1[6]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x18 = ((fiat_p521_uint128)(arg1[6]) * ((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x19 = ((fiat_p521_uint128)(arg1[6]) * ((arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x20 = ((fiat_p521_uint128)(arg1[6]) * ((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x21 = ((fiat_p521_uint128)(arg1[6]) * ((arg2[3]) * (uint64_t)0x2)); + fiat_p521_uint128 x22 = ((fiat_p521_uint128)(arg1[5]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x23 = ((fiat_p521_uint128)(arg1[5]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x24 = ((fiat_p521_uint128)(arg1[5]) * ((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x25 = ((fiat_p521_uint128)(arg1[5]) * ((arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x26 = ((fiat_p521_uint128)(arg1[5]) * ((arg2[4]) * (uint64_t)0x2)); + fiat_p521_uint128 x27 = ((fiat_p521_uint128)(arg1[4]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x28 = ((fiat_p521_uint128)(arg1[4]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x29 = ((fiat_p521_uint128)(arg1[4]) * ((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x30 = ((fiat_p521_uint128)(arg1[4]) * ((arg2[5]) * (uint64_t)0x2)); + fiat_p521_uint128 x31 = ((fiat_p521_uint128)(arg1[3]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x32 = ((fiat_p521_uint128)(arg1[3]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x33 = ((fiat_p521_uint128)(arg1[3]) * ((arg2[6]) * (uint64_t)0x2)); + fiat_p521_uint128 x34 = ((fiat_p521_uint128)(arg1[2]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x35 = ((fiat_p521_uint128)(arg1[2]) * ((arg2[7]) * (uint64_t)0x2)); + fiat_p521_uint128 x36 = ((fiat_p521_uint128)(arg1[1]) * ((arg2[8]) * (uint64_t)0x2)); + fiat_p521_uint128 x37 = ((fiat_p521_uint128)(arg1[8]) * (arg2[0])); + fiat_p521_uint128 x38 = ((fiat_p521_uint128)(arg1[7]) * (arg2[1])); + fiat_p521_uint128 x39 = ((fiat_p521_uint128)(arg1[7]) * (arg2[0])); + fiat_p521_uint128 x40 = ((fiat_p521_uint128)(arg1[6]) * (arg2[2])); + fiat_p521_uint128 x41 = ((fiat_p521_uint128)(arg1[6]) * (arg2[1])); + fiat_p521_uint128 x42 = ((fiat_p521_uint128)(arg1[6]) * (arg2[0])); + fiat_p521_uint128 x43 = ((fiat_p521_uint128)(arg1[5]) * (arg2[3])); + fiat_p521_uint128 x44 = ((fiat_p521_uint128)(arg1[5]) * (arg2[2])); + fiat_p521_uint128 x45 = ((fiat_p521_uint128)(arg1[5]) * (arg2[1])); + fiat_p521_uint128 x46 = ((fiat_p521_uint128)(arg1[5]) * (arg2[0])); + fiat_p521_uint128 x47 = ((fiat_p521_uint128)(arg1[4]) * (arg2[4])); + fiat_p521_uint128 x48 = ((fiat_p521_uint128)(arg1[4]) * (arg2[3])); + fiat_p521_uint128 x49 = ((fiat_p521_uint128)(arg1[4]) * (arg2[2])); + fiat_p521_uint128 x50 = ((fiat_p521_uint128)(arg1[4]) * (arg2[1])); + fiat_p521_uint128 x51 = ((fiat_p521_uint128)(arg1[4]) * (arg2[0])); + fiat_p521_uint128 x52 = ((fiat_p521_uint128)(arg1[3]) * (arg2[5])); + fiat_p521_uint128 x53 = ((fiat_p521_uint128)(arg1[3]) * (arg2[4])); + fiat_p521_uint128 x54 = ((fiat_p521_uint128)(arg1[3]) * (arg2[3])); + fiat_p521_uint128 x55 = ((fiat_p521_uint128)(arg1[3]) * (arg2[2])); + fiat_p521_uint128 x56 = ((fiat_p521_uint128)(arg1[3]) * (arg2[1])); + fiat_p521_uint128 x57 = ((fiat_p521_uint128)(arg1[3]) * (arg2[0])); + fiat_p521_uint128 x58 = ((fiat_p521_uint128)(arg1[2]) * (arg2[6])); + fiat_p521_uint128 x59 = ((fiat_p521_uint128)(arg1[2]) * (arg2[5])); + fiat_p521_uint128 x60 = ((fiat_p521_uint128)(arg1[2]) * (arg2[4])); + fiat_p521_uint128 x61 = ((fiat_p521_uint128)(arg1[2]) * (arg2[3])); + fiat_p521_uint128 x62 = ((fiat_p521_uint128)(arg1[2]) * (arg2[2])); + fiat_p521_uint128 x63 = ((fiat_p521_uint128)(arg1[2]) * (arg2[1])); + fiat_p521_uint128 x64 = ((fiat_p521_uint128)(arg1[2]) * (arg2[0])); + fiat_p521_uint128 x65 = ((fiat_p521_uint128)(arg1[1]) * (arg2[7])); + fiat_p521_uint128 x66 = ((fiat_p521_uint128)(arg1[1]) * (arg2[6])); + fiat_p521_uint128 x67 = ((fiat_p521_uint128)(arg1[1]) * (arg2[5])); + fiat_p521_uint128 x68 = ((fiat_p521_uint128)(arg1[1]) * (arg2[4])); + fiat_p521_uint128 x69 = ((fiat_p521_uint128)(arg1[1]) * (arg2[3])); + fiat_p521_uint128 x70 = ((fiat_p521_uint128)(arg1[1]) * (arg2[2])); + fiat_p521_uint128 x71 = ((fiat_p521_uint128)(arg1[1]) * (arg2[1])); + fiat_p521_uint128 x72 = ((fiat_p521_uint128)(arg1[1]) * (arg2[0])); + fiat_p521_uint128 x73 = ((fiat_p521_uint128)(arg1[0]) * (arg2[8])); + fiat_p521_uint128 x74 = ((fiat_p521_uint128)(arg1[0]) * (arg2[7])); + fiat_p521_uint128 x75 = ((fiat_p521_uint128)(arg1[0]) * (arg2[6])); + fiat_p521_uint128 x76 = ((fiat_p521_uint128)(arg1[0]) * (arg2[5])); + fiat_p521_uint128 x77 = ((fiat_p521_uint128)(arg1[0]) * (arg2[4])); + fiat_p521_uint128 x78 = ((fiat_p521_uint128)(arg1[0]) * (arg2[3])); + fiat_p521_uint128 x79 = ((fiat_p521_uint128)(arg1[0]) * (arg2[2])); + fiat_p521_uint128 x80 = ((fiat_p521_uint128)(arg1[0]) * (arg2[1])); + fiat_p521_uint128 x81 = ((fiat_p521_uint128)(arg1[0]) * (arg2[0])); + fiat_p521_uint128 x82 = (x81 + (x36 + (x35 + (x33 + (x30 + (x26 + (x21 + (x15 + x8)))))))); + fiat_p521_uint128 x83 = (x82 >> 58); + uint64_t x84 = (uint64_t)(x82 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x85 = (x73 + (x65 + (x58 + (x52 + (x47 + (x43 + (x40 + (x38 + x37)))))))); + fiat_p521_uint128 x86 = (x74 + (x66 + (x59 + (x53 + (x48 + (x44 + (x41 + (x39 + x1)))))))); + fiat_p521_uint128 x87 = (x75 + (x67 + (x60 + (x54 + (x49 + (x45 + (x42 + (x9 + x2)))))))); + fiat_p521_uint128 x88 = (x76 + (x68 + (x61 + (x55 + (x50 + (x46 + (x16 + (x10 + x3)))))))); + fiat_p521_uint128 x89 = (x77 + (x69 + (x62 + (x56 + (x51 + (x22 + (x17 + (x11 + x4)))))))); + fiat_p521_uint128 x90 = (x78 + (x70 + (x63 + (x57 + (x27 + (x23 + (x18 + (x12 + x5)))))))); + fiat_p521_uint128 x91 = (x79 + (x71 + (x64 + (x31 + (x28 + (x24 + (x19 + (x13 + x6)))))))); + fiat_p521_uint128 x92 = (x80 + (x72 + (x34 + (x32 + (x29 + (x25 + (x20 + (x14 + x7)))))))); + fiat_p521_uint128 x93 = (x83 + x92); + fiat_p521_uint128 x94 = (x93 >> 58); + uint64_t x95 = (uint64_t)(x93 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x96 = (x94 + x91); + fiat_p521_uint128 x97 = (x96 >> 58); + uint64_t x98 = (uint64_t)(x96 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x99 = (x97 + x90); + fiat_p521_uint128 x100 = (x99 >> 58); + uint64_t x101 = (uint64_t)(x99 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x102 = (x100 + x89); + fiat_p521_uint128 x103 = (x102 >> 58); + uint64_t x104 = (uint64_t)(x102 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x105 = (x103 + x88); + fiat_p521_uint128 x106 = (x105 >> 58); + uint64_t x107 = (uint64_t)(x105 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x108 = (x106 + x87); + fiat_p521_uint128 x109 = (x108 >> 58); + uint64_t x110 = (uint64_t)(x108 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x111 = (x109 + x86); + fiat_p521_uint128 x112 = (x111 >> 58); + uint64_t x113 = (uint64_t)(x111 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x114 = (x112 + x85); + fiat_p521_uint128 x115 = (x114 >> 57); + uint64_t x116 = (uint64_t)(x114 & UINT64_C(0x1ffffffffffffff)); + fiat_p521_uint128 x117 = (x84 + x115); + uint64_t x118 = (uint64_t)(x117 >> 58); + uint64_t x119 = (uint64_t)(x117 & UINT64_C(0x3ffffffffffffff)); + uint64_t x120 = (x118 + x95); + uint64_t x121 = (x120 >> 58); + uint64_t x122 = (x120 & UINT64_C(0x3ffffffffffffff)); + uint64_t x123 = (x121 + x98); + out1[0] = x119; + out1[1] = x122; + out1[2] = x123; + out1[3] = x101; + out1[4] = x104; + out1[5] = x107; + out1[6] = x110; + out1[7] = x113; + out1[8] = x116; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + * Output Bounds: + * out1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + */ +static void fiat_p521_carry_square(uint64_t out1[9], const uint64_t arg1[9]) { + uint64_t x1 = (arg1[8]); + uint64_t x2 = (x1 * (uint64_t)0x2); + uint64_t x3 = ((arg1[8]) * (uint64_t)0x2); + uint64_t x4 = (arg1[7]); + uint64_t x5 = (x4 * (uint64_t)0x2); + uint64_t x6 = ((arg1[7]) * (uint64_t)0x2); + uint64_t x7 = (arg1[6]); + uint64_t x8 = (x7 * (uint64_t)0x2); + uint64_t x9 = ((arg1[6]) * (uint64_t)0x2); + uint64_t x10 = (arg1[5]); + uint64_t x11 = (x10 * (uint64_t)0x2); + uint64_t x12 = ((arg1[5]) * (uint64_t)0x2); + uint64_t x13 = ((arg1[4]) * (uint64_t)0x2); + uint64_t x14 = ((arg1[3]) * (uint64_t)0x2); + uint64_t x15 = ((arg1[2]) * (uint64_t)0x2); + uint64_t x16 = ((arg1[1]) * (uint64_t)0x2); + fiat_p521_uint128 x17 = ((fiat_p521_uint128)(arg1[8]) * (x1 * (uint64_t)0x2)); + fiat_p521_uint128 x18 = ((fiat_p521_uint128)(arg1[7]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x19 = ((fiat_p521_uint128)(arg1[7]) * (x4 * (uint64_t)0x2)); + fiat_p521_uint128 x20 = ((fiat_p521_uint128)(arg1[6]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x21 = ((fiat_p521_uint128)(arg1[6]) * (x5 * (uint64_t)0x2)); + fiat_p521_uint128 x22 = ((fiat_p521_uint128)(arg1[6]) * (x7 * (uint64_t)0x2)); + fiat_p521_uint128 x23 = ((fiat_p521_uint128)(arg1[5]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x24 = ((fiat_p521_uint128)(arg1[5]) * (x5 * (uint64_t)0x2)); + fiat_p521_uint128 x25 = ((fiat_p521_uint128)(arg1[5]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x26 = ((fiat_p521_uint128)(arg1[5]) * (x10 * (uint64_t)0x2)); + fiat_p521_uint128 x27 = ((fiat_p521_uint128)(arg1[4]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x28 = ((fiat_p521_uint128)(arg1[4]) * (x5 * (uint64_t)0x2)); + fiat_p521_uint128 x29 = ((fiat_p521_uint128)(arg1[4]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x30 = ((fiat_p521_uint128)(arg1[4]) * (x11 * (uint64_t)0x2)); + fiat_p521_uint128 x31 = ((fiat_p521_uint128)(arg1[4]) * (arg1[4])); + fiat_p521_uint128 x32 = ((fiat_p521_uint128)(arg1[3]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x33 = ((fiat_p521_uint128)(arg1[3]) * (x5 * (uint64_t)0x2)); + fiat_p521_uint128 x34 = ((fiat_p521_uint128)(arg1[3]) * (x8 * (uint64_t)0x2)); + fiat_p521_uint128 x35 = ((fiat_p521_uint128)(arg1[3]) * x12); + fiat_p521_uint128 x36 = ((fiat_p521_uint128)(arg1[3]) * x13); + fiat_p521_uint128 x37 = ((fiat_p521_uint128)(arg1[3]) * (arg1[3])); + fiat_p521_uint128 x38 = ((fiat_p521_uint128)(arg1[2]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x39 = ((fiat_p521_uint128)(arg1[2]) * (x5 * (uint64_t)0x2)); + fiat_p521_uint128 x40 = ((fiat_p521_uint128)(arg1[2]) * x9); + fiat_p521_uint128 x41 = ((fiat_p521_uint128)(arg1[2]) * x12); + fiat_p521_uint128 x42 = ((fiat_p521_uint128)(arg1[2]) * x13); + fiat_p521_uint128 x43 = ((fiat_p521_uint128)(arg1[2]) * x14); + fiat_p521_uint128 x44 = ((fiat_p521_uint128)(arg1[2]) * (arg1[2])); + fiat_p521_uint128 x45 = ((fiat_p521_uint128)(arg1[1]) * (x2 * (uint64_t)0x2)); + fiat_p521_uint128 x46 = ((fiat_p521_uint128)(arg1[1]) * x6); + fiat_p521_uint128 x47 = ((fiat_p521_uint128)(arg1[1]) * x9); + fiat_p521_uint128 x48 = ((fiat_p521_uint128)(arg1[1]) * x12); + fiat_p521_uint128 x49 = ((fiat_p521_uint128)(arg1[1]) * x13); + fiat_p521_uint128 x50 = ((fiat_p521_uint128)(arg1[1]) * x14); + fiat_p521_uint128 x51 = ((fiat_p521_uint128)(arg1[1]) * x15); + fiat_p521_uint128 x52 = ((fiat_p521_uint128)(arg1[1]) * (arg1[1])); + fiat_p521_uint128 x53 = ((fiat_p521_uint128)(arg1[0]) * x3); + fiat_p521_uint128 x54 = ((fiat_p521_uint128)(arg1[0]) * x6); + fiat_p521_uint128 x55 = ((fiat_p521_uint128)(arg1[0]) * x9); + fiat_p521_uint128 x56 = ((fiat_p521_uint128)(arg1[0]) * x12); + fiat_p521_uint128 x57 = ((fiat_p521_uint128)(arg1[0]) * x13); + fiat_p521_uint128 x58 = ((fiat_p521_uint128)(arg1[0]) * x14); + fiat_p521_uint128 x59 = ((fiat_p521_uint128)(arg1[0]) * x15); + fiat_p521_uint128 x60 = ((fiat_p521_uint128)(arg1[0]) * x16); + fiat_p521_uint128 x61 = ((fiat_p521_uint128)(arg1[0]) * (arg1[0])); + fiat_p521_uint128 x62 = (x61 + (x45 + (x39 + (x34 + x30)))); + fiat_p521_uint128 x63 = (x62 >> 58); + uint64_t x64 = (uint64_t)(x62 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x65 = (x53 + (x46 + (x40 + (x35 + x31)))); + fiat_p521_uint128 x66 = (x54 + (x47 + (x41 + (x36 + x17)))); + fiat_p521_uint128 x67 = (x55 + (x48 + (x42 + (x37 + x18)))); + fiat_p521_uint128 x68 = (x56 + (x49 + (x43 + (x20 + x19)))); + fiat_p521_uint128 x69 = (x57 + (x50 + (x44 + (x23 + x21)))); + fiat_p521_uint128 x70 = (x58 + (x51 + (x27 + (x24 + x22)))); + fiat_p521_uint128 x71 = (x59 + (x52 + (x32 + (x28 + x25)))); + fiat_p521_uint128 x72 = (x60 + (x38 + (x33 + (x29 + x26)))); + fiat_p521_uint128 x73 = (x63 + x72); + fiat_p521_uint128 x74 = (x73 >> 58); + uint64_t x75 = (uint64_t)(x73 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x76 = (x74 + x71); + fiat_p521_uint128 x77 = (x76 >> 58); + uint64_t x78 = (uint64_t)(x76 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x79 = (x77 + x70); + fiat_p521_uint128 x80 = (x79 >> 58); + uint64_t x81 = (uint64_t)(x79 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x82 = (x80 + x69); + fiat_p521_uint128 x83 = (x82 >> 58); + uint64_t x84 = (uint64_t)(x82 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x85 = (x83 + x68); + fiat_p521_uint128 x86 = (x85 >> 58); + uint64_t x87 = (uint64_t)(x85 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x88 = (x86 + x67); + fiat_p521_uint128 x89 = (x88 >> 58); + uint64_t x90 = (uint64_t)(x88 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x91 = (x89 + x66); + fiat_p521_uint128 x92 = (x91 >> 58); + uint64_t x93 = (uint64_t)(x91 & UINT64_C(0x3ffffffffffffff)); + fiat_p521_uint128 x94 = (x92 + x65); + fiat_p521_uint128 x95 = (x94 >> 57); + uint64_t x96 = (uint64_t)(x94 & UINT64_C(0x1ffffffffffffff)); + fiat_p521_uint128 x97 = (x64 + x95); + uint64_t x98 = (uint64_t)(x97 >> 58); + uint64_t x99 = (uint64_t)(x97 & UINT64_C(0x3ffffffffffffff)); + uint64_t x100 = (x98 + x75); + uint64_t x101 = (x100 >> 58); + uint64_t x102 = (x100 & UINT64_C(0x3ffffffffffffff)); + uint64_t x103 = (x101 + x78); + out1[0] = x99; + out1[1] = x102; + out1[2] = x103; + out1[3] = x81; + out1[4] = x84; + out1[5] = x87; + out1[6] = x90; + out1[7] = x93; + out1[8] = x96; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + * Output Bounds: + * out1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + */ +static void fiat_p521_carry(uint64_t out1[9], const uint64_t arg1[9]) { + uint64_t x1 = (arg1[0]); + uint64_t x2 = ((x1 >> 58) + (arg1[1])); + uint64_t x3 = ((x2 >> 58) + (arg1[2])); + uint64_t x4 = ((x3 >> 58) + (arg1[3])); + uint64_t x5 = ((x4 >> 58) + (arg1[4])); + uint64_t x6 = ((x5 >> 58) + (arg1[5])); + uint64_t x7 = ((x6 >> 58) + (arg1[6])); + uint64_t x8 = ((x7 >> 58) + (arg1[7])); + uint64_t x9 = ((x8 >> 58) + (arg1[8])); + uint64_t x10 = ((x1 & UINT64_C(0x3ffffffffffffff)) + (x9 >> 57)); + uint64_t x11 = ((x10 >> 58) + (x2 & UINT64_C(0x3ffffffffffffff))); + uint64_t x12 = (x10 & UINT64_C(0x3ffffffffffffff)); + uint64_t x13 = (x11 & UINT64_C(0x3ffffffffffffff)); + uint64_t x14 = ((x11 >> 58) + (x3 & UINT64_C(0x3ffffffffffffff))); + uint64_t x15 = (x4 & UINT64_C(0x3ffffffffffffff)); + uint64_t x16 = (x5 & UINT64_C(0x3ffffffffffffff)); + uint64_t x17 = (x6 & UINT64_C(0x3ffffffffffffff)); + uint64_t x18 = (x7 & UINT64_C(0x3ffffffffffffff)); + uint64_t x19 = (x8 & UINT64_C(0x3ffffffffffffff)); + uint64_t x20 = (x9 & UINT64_C(0x1ffffffffffffff)); + out1[0] = x12; + out1[1] = x13; + out1[2] = x14; + out1[3] = x15; + out1[4] = x16; + out1[5] = x17; + out1[6] = x18; + out1[7] = x19; + out1[8] = x20; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + * arg2: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + * Output Bounds: + * out1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + */ +static void fiat_p521_add(uint64_t out1[9], const uint64_t arg1[9], const uint64_t arg2[9]) { + uint64_t x1 = ((arg1[0]) + (arg2[0])); + uint64_t x2 = ((arg1[1]) + (arg2[1])); + uint64_t x3 = ((arg1[2]) + (arg2[2])); + uint64_t x4 = ((arg1[3]) + (arg2[3])); + uint64_t x5 = ((arg1[4]) + (arg2[4])); + uint64_t x6 = ((arg1[5]) + (arg2[5])); + uint64_t x7 = ((arg1[6]) + (arg2[6])); + uint64_t x8 = ((arg1[7]) + (arg2[7])); + uint64_t x9 = ((arg1[8]) + (arg2[8])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + * arg2: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + * Output Bounds: + * out1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + */ +static void fiat_p521_sub(uint64_t out1[9], const uint64_t arg1[9], const uint64_t arg2[9]) { + uint64_t x1 = ((UINT64_C(0x7fffffffffffffe) + (arg1[0])) - (arg2[0])); + uint64_t x2 = ((UINT64_C(0x7fffffffffffffe) + (arg1[1])) - (arg2[1])); + uint64_t x3 = ((UINT64_C(0x7fffffffffffffe) + (arg1[2])) - (arg2[2])); + uint64_t x4 = ((UINT64_C(0x7fffffffffffffe) + (arg1[3])) - (arg2[3])); + uint64_t x5 = ((UINT64_C(0x7fffffffffffffe) + (arg1[4])) - (arg2[4])); + uint64_t x6 = ((UINT64_C(0x7fffffffffffffe) + (arg1[5])) - (arg2[5])); + uint64_t x7 = ((UINT64_C(0x7fffffffffffffe) + (arg1[6])) - (arg2[6])); + uint64_t x8 = ((UINT64_C(0x7fffffffffffffe) + (arg1[7])) - (arg2[7])); + uint64_t x9 = ((UINT64_C(0x3fffffffffffffe) + (arg1[8])) - (arg2[8])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + * Output Bounds: + * out1: [[0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0xd33333333333332], [0x0 ~> 0x699999999999999]] + */ +static void fiat_p521_opp(uint64_t out1[9], const uint64_t arg1[9]) { + uint64_t x1 = (UINT64_C(0x7fffffffffffffe) - (arg1[0])); + uint64_t x2 = (UINT64_C(0x7fffffffffffffe) - (arg1[1])); + uint64_t x3 = (UINT64_C(0x7fffffffffffffe) - (arg1[2])); + uint64_t x4 = (UINT64_C(0x7fffffffffffffe) - (arg1[3])); + uint64_t x5 = (UINT64_C(0x7fffffffffffffe) - (arg1[4])); + uint64_t x6 = (UINT64_C(0x7fffffffffffffe) - (arg1[5])); + uint64_t x7 = (UINT64_C(0x7fffffffffffffe) - (arg1[6])); + uint64_t x8 = (UINT64_C(0x7fffffffffffffe) - (arg1[7])); + uint64_t x9 = (UINT64_C(0x3fffffffffffffe) - (arg1[8])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_p521_selectznz(uint64_t out1[9], fiat_p521_uint1 arg1, const uint64_t arg2[9], const uint64_t arg3[9]) { + uint64_t x1; + fiat_p521_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0])); + uint64_t x2; + fiat_p521_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1])); + uint64_t x3; + fiat_p521_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2])); + uint64_t x4; + fiat_p521_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3])); + uint64_t x5; + fiat_p521_cmovznz_u64(&x5, arg1, (arg2[4]), (arg3[4])); + uint64_t x6; + fiat_p521_cmovznz_u64(&x6, arg1, (arg2[5]), (arg3[5])); + uint64_t x7; + fiat_p521_cmovznz_u64(&x7, arg1, (arg2[6]), (arg3[6])); + uint64_t x8; + fiat_p521_cmovznz_u64(&x8, arg1, (arg2[7]), (arg3[7])); + uint64_t x9; + fiat_p521_cmovznz_u64(&x9, arg1, (arg2[8]), (arg3[8])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; + out1[8] = x9; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]] + */ +static void fiat_p521_to_bytes(uint8_t out1[66], const uint64_t arg1[9]) { + uint64_t x1; + fiat_p521_uint1 x2; + fiat_p521_subborrowx_u58(&x1, &x2, 0x0, (arg1[0]), UINT64_C(0x3ffffffffffffff)); + uint64_t x3; + fiat_p521_uint1 x4; + fiat_p521_subborrowx_u58(&x3, &x4, x2, (arg1[1]), UINT64_C(0x3ffffffffffffff)); + uint64_t x5; + fiat_p521_uint1 x6; + fiat_p521_subborrowx_u58(&x5, &x6, x4, (arg1[2]), UINT64_C(0x3ffffffffffffff)); + uint64_t x7; + fiat_p521_uint1 x8; + fiat_p521_subborrowx_u58(&x7, &x8, x6, (arg1[3]), UINT64_C(0x3ffffffffffffff)); + uint64_t x9; + fiat_p521_uint1 x10; + fiat_p521_subborrowx_u58(&x9, &x10, x8, (arg1[4]), UINT64_C(0x3ffffffffffffff)); + uint64_t x11; + fiat_p521_uint1 x12; + fiat_p521_subborrowx_u58(&x11, &x12, x10, (arg1[5]), UINT64_C(0x3ffffffffffffff)); + uint64_t x13; + fiat_p521_uint1 x14; + fiat_p521_subborrowx_u58(&x13, &x14, x12, (arg1[6]), UINT64_C(0x3ffffffffffffff)); + uint64_t x15; + fiat_p521_uint1 x16; + fiat_p521_subborrowx_u58(&x15, &x16, x14, (arg1[7]), UINT64_C(0x3ffffffffffffff)); + uint64_t x17; + fiat_p521_uint1 x18; + fiat_p521_subborrowx_u57(&x17, &x18, x16, (arg1[8]), UINT64_C(0x1ffffffffffffff)); + uint64_t x19; + fiat_p521_cmovznz_u64(&x19, x18, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x20; + fiat_p521_uint1 x21; + fiat_p521_addcarryx_u58(&x20, &x21, 0x0, (x19 & UINT64_C(0x3ffffffffffffff)), x1); + uint64_t x22; + fiat_p521_uint1 x23; + fiat_p521_addcarryx_u58(&x22, &x23, x21, (x19 & UINT64_C(0x3ffffffffffffff)), x3); + uint64_t x24; + fiat_p521_uint1 x25; + fiat_p521_addcarryx_u58(&x24, &x25, x23, (x19 & UINT64_C(0x3ffffffffffffff)), x5); + uint64_t x26; + fiat_p521_uint1 x27; + fiat_p521_addcarryx_u58(&x26, &x27, x25, (x19 & UINT64_C(0x3ffffffffffffff)), x7); + uint64_t x28; + fiat_p521_uint1 x29; + fiat_p521_addcarryx_u58(&x28, &x29, x27, (x19 & UINT64_C(0x3ffffffffffffff)), x9); + uint64_t x30; + fiat_p521_uint1 x31; + fiat_p521_addcarryx_u58(&x30, &x31, x29, (x19 & UINT64_C(0x3ffffffffffffff)), x11); + uint64_t x32; + fiat_p521_uint1 x33; + fiat_p521_addcarryx_u58(&x32, &x33, x31, (x19 & UINT64_C(0x3ffffffffffffff)), x13); + uint64_t x34; + fiat_p521_uint1 x35; + fiat_p521_addcarryx_u58(&x34, &x35, x33, (x19 & UINT64_C(0x3ffffffffffffff)), x15); + uint64_t x36; + fiat_p521_uint1 x37; + fiat_p521_addcarryx_u57(&x36, &x37, x35, (x19 & UINT64_C(0x1ffffffffffffff)), x17); + uint64_t x38 = (x34 << 6); + uint64_t x39 = (x32 << 4); + uint64_t x40 = (x30 << 2); + uint64_t x41 = (x26 << 6); + uint64_t x42 = (x24 << 4); + uint64_t x43 = (x22 << 2); + uint64_t x44 = (x20 >> 8); + uint8_t x45 = (uint8_t)(x20 & UINT8_C(0xff)); + uint64_t x46 = (x44 >> 8); + uint8_t x47 = (uint8_t)(x44 & UINT8_C(0xff)); + uint64_t x48 = (x46 >> 8); + uint8_t x49 = (uint8_t)(x46 & UINT8_C(0xff)); + uint64_t x50 = (x48 >> 8); + uint8_t x51 = (uint8_t)(x48 & UINT8_C(0xff)); + uint64_t x52 = (x50 >> 8); + uint8_t x53 = (uint8_t)(x50 & UINT8_C(0xff)); + uint64_t x54 = (x52 >> 8); + uint8_t x55 = (uint8_t)(x52 & UINT8_C(0xff)); + uint8_t x56 = (uint8_t)(x54 >> 8); + uint8_t x57 = (uint8_t)(x54 & UINT8_C(0xff)); + uint64_t x58 = (x56 + x43); + uint64_t x59 = (x58 >> 8); + uint8_t x60 = (uint8_t)(x58 & UINT8_C(0xff)); + uint64_t x61 = (x59 >> 8); + uint8_t x62 = (uint8_t)(x59 & UINT8_C(0xff)); + uint64_t x63 = (x61 >> 8); + uint8_t x64 = (uint8_t)(x61 & UINT8_C(0xff)); + uint64_t x65 = (x63 >> 8); + uint8_t x66 = (uint8_t)(x63 & UINT8_C(0xff)); + uint64_t x67 = (x65 >> 8); + uint8_t x68 = (uint8_t)(x65 & UINT8_C(0xff)); + uint64_t x69 = (x67 >> 8); + uint8_t x70 = (uint8_t)(x67 & UINT8_C(0xff)); + uint8_t x71 = (uint8_t)(x69 >> 8); + uint8_t x72 = (uint8_t)(x69 & UINT8_C(0xff)); + uint64_t x73 = (x71 + x42); + uint64_t x74 = (x73 >> 8); + uint8_t x75 = (uint8_t)(x73 & UINT8_C(0xff)); + uint64_t x76 = (x74 >> 8); + uint8_t x77 = (uint8_t)(x74 & UINT8_C(0xff)); + uint64_t x78 = (x76 >> 8); + uint8_t x79 = (uint8_t)(x76 & UINT8_C(0xff)); + uint64_t x80 = (x78 >> 8); + uint8_t x81 = (uint8_t)(x78 & UINT8_C(0xff)); + uint64_t x82 = (x80 >> 8); + uint8_t x83 = (uint8_t)(x80 & UINT8_C(0xff)); + uint64_t x84 = (x82 >> 8); + uint8_t x85 = (uint8_t)(x82 & UINT8_C(0xff)); + uint8_t x86 = (uint8_t)(x84 >> 8); + uint8_t x87 = (uint8_t)(x84 & UINT8_C(0xff)); + uint64_t x88 = (x86 + x41); + uint64_t x89 = (x88 >> 8); + uint8_t x90 = (uint8_t)(x88 & UINT8_C(0xff)); + uint64_t x91 = (x89 >> 8); + uint8_t x92 = (uint8_t)(x89 & UINT8_C(0xff)); + uint64_t x93 = (x91 >> 8); + uint8_t x94 = (uint8_t)(x91 & UINT8_C(0xff)); + uint64_t x95 = (x93 >> 8); + uint8_t x96 = (uint8_t)(x93 & UINT8_C(0xff)); + uint64_t x97 = (x95 >> 8); + uint8_t x98 = (uint8_t)(x95 & UINT8_C(0xff)); + uint64_t x99 = (x97 >> 8); + uint8_t x100 = (uint8_t)(x97 & UINT8_C(0xff)); + uint8_t x101 = (uint8_t)(x99 >> 8); + uint8_t x102 = (uint8_t)(x99 & UINT8_C(0xff)); + fiat_p521_uint1 x103 = (fiat_p521_uint1)(x101 >> 8); + uint8_t x104 = (uint8_t)(x101 & UINT8_C(0xff)); + uint64_t x105 = (x103 + x28); + uint64_t x106 = (x105 >> 8); + uint8_t x107 = (uint8_t)(x105 & UINT8_C(0xff)); + uint64_t x108 = (x106 >> 8); + uint8_t x109 = (uint8_t)(x106 & UINT8_C(0xff)); + uint64_t x110 = (x108 >> 8); + uint8_t x111 = (uint8_t)(x108 & UINT8_C(0xff)); + uint64_t x112 = (x110 >> 8); + uint8_t x113 = (uint8_t)(x110 & UINT8_C(0xff)); + uint64_t x114 = (x112 >> 8); + uint8_t x115 = (uint8_t)(x112 & UINT8_C(0xff)); + uint64_t x116 = (x114 >> 8); + uint8_t x117 = (uint8_t)(x114 & UINT8_C(0xff)); + uint8_t x118 = (uint8_t)(x116 >> 8); + uint8_t x119 = (uint8_t)(x116 & UINT8_C(0xff)); + uint64_t x120 = (x118 + x40); + uint64_t x121 = (x120 >> 8); + uint8_t x122 = (uint8_t)(x120 & UINT8_C(0xff)); + uint64_t x123 = (x121 >> 8); + uint8_t x124 = (uint8_t)(x121 & UINT8_C(0xff)); + uint64_t x125 = (x123 >> 8); + uint8_t x126 = (uint8_t)(x123 & UINT8_C(0xff)); + uint64_t x127 = (x125 >> 8); + uint8_t x128 = (uint8_t)(x125 & UINT8_C(0xff)); + uint64_t x129 = (x127 >> 8); + uint8_t x130 = (uint8_t)(x127 & UINT8_C(0xff)); + uint64_t x131 = (x129 >> 8); + uint8_t x132 = (uint8_t)(x129 & UINT8_C(0xff)); + uint8_t x133 = (uint8_t)(x131 >> 8); + uint8_t x134 = (uint8_t)(x131 & UINT8_C(0xff)); + uint64_t x135 = (x133 + x39); + uint64_t x136 = (x135 >> 8); + uint8_t x137 = (uint8_t)(x135 & UINT8_C(0xff)); + uint64_t x138 = (x136 >> 8); + uint8_t x139 = (uint8_t)(x136 & UINT8_C(0xff)); + uint64_t x140 = (x138 >> 8); + uint8_t x141 = (uint8_t)(x138 & UINT8_C(0xff)); + uint64_t x142 = (x140 >> 8); + uint8_t x143 = (uint8_t)(x140 & UINT8_C(0xff)); + uint64_t x144 = (x142 >> 8); + uint8_t x145 = (uint8_t)(x142 & UINT8_C(0xff)); + uint64_t x146 = (x144 >> 8); + uint8_t x147 = (uint8_t)(x144 & UINT8_C(0xff)); + uint8_t x148 = (uint8_t)(x146 >> 8); + uint8_t x149 = (uint8_t)(x146 & UINT8_C(0xff)); + uint64_t x150 = (x148 + x38); + uint64_t x151 = (x150 >> 8); + uint8_t x152 = (uint8_t)(x150 & UINT8_C(0xff)); + uint64_t x153 = (x151 >> 8); + uint8_t x154 = (uint8_t)(x151 & UINT8_C(0xff)); + uint64_t x155 = (x153 >> 8); + uint8_t x156 = (uint8_t)(x153 & UINT8_C(0xff)); + uint64_t x157 = (x155 >> 8); + uint8_t x158 = (uint8_t)(x155 & UINT8_C(0xff)); + uint64_t x159 = (x157 >> 8); + uint8_t x160 = (uint8_t)(x157 & UINT8_C(0xff)); + uint64_t x161 = (x159 >> 8); + uint8_t x162 = (uint8_t)(x159 & UINT8_C(0xff)); + uint8_t x163 = (uint8_t)(x161 >> 8); + uint8_t x164 = (uint8_t)(x161 & UINT8_C(0xff)); + fiat_p521_uint1 x165 = (fiat_p521_uint1)(x163 >> 8); + uint8_t x166 = (uint8_t)(x163 & UINT8_C(0xff)); + uint64_t x167 = (x165 + x36); + uint64_t x168 = (x167 >> 8); + uint8_t x169 = (uint8_t)(x167 & UINT8_C(0xff)); + uint64_t x170 = (x168 >> 8); + uint8_t x171 = (uint8_t)(x168 & UINT8_C(0xff)); + uint64_t x172 = (x170 >> 8); + uint8_t x173 = (uint8_t)(x170 & UINT8_C(0xff)); + uint64_t x174 = (x172 >> 8); + uint8_t x175 = (uint8_t)(x172 & UINT8_C(0xff)); + uint64_t x176 = (x174 >> 8); + uint8_t x177 = (uint8_t)(x174 & UINT8_C(0xff)); + uint64_t x178 = (x176 >> 8); + uint8_t x179 = (uint8_t)(x176 & UINT8_C(0xff)); + fiat_p521_uint1 x180 = (fiat_p521_uint1)(x178 >> 8); + uint8_t x181 = (uint8_t)(x178 & UINT8_C(0xff)); + out1[0] = x45; + out1[1] = x47; + out1[2] = x49; + out1[3] = x51; + out1[4] = x53; + out1[5] = x55; + out1[6] = x57; + out1[7] = x60; + out1[8] = x62; + out1[9] = x64; + out1[10] = x66; + out1[11] = x68; + out1[12] = x70; + out1[13] = x72; + out1[14] = x75; + out1[15] = x77; + out1[16] = x79; + out1[17] = x81; + out1[18] = x83; + out1[19] = x85; + out1[20] = x87; + out1[21] = x90; + out1[22] = x92; + out1[23] = x94; + out1[24] = x96; + out1[25] = x98; + out1[26] = x100; + out1[27] = x102; + out1[28] = x104; + out1[29] = x107; + out1[30] = x109; + out1[31] = x111; + out1[32] = x113; + out1[33] = x115; + out1[34] = x117; + out1[35] = x119; + out1[36] = x122; + out1[37] = x124; + out1[38] = x126; + out1[39] = x128; + out1[40] = x130; + out1[41] = x132; + out1[42] = x134; + out1[43] = x137; + out1[44] = x139; + out1[45] = x141; + out1[46] = x143; + out1[47] = x145; + out1[48] = x147; + out1[49] = x149; + out1[50] = x152; + out1[51] = x154; + out1[52] = x156; + out1[53] = x158; + out1[54] = x160; + out1[55] = x162; + out1[56] = x164; + out1[57] = x166; + out1[58] = x169; + out1[59] = x171; + out1[60] = x173; + out1[61] = x175; + out1[62] = x177; + out1[63] = x179; + out1[64] = x181; + out1[65] = x180; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]] + * Output Bounds: + * out1: [[0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x466666666666666], [0x0 ~> 0x233333333333333]] + */ +static void fiat_p521_from_bytes(uint64_t out1[9], const uint8_t arg1[66]) { + uint64_t x1 = ((uint64_t)(fiat_p521_uint1)(arg1[65]) << 56); + uint64_t x2 = ((uint64_t)(arg1[64]) << 48); + uint64_t x3 = ((uint64_t)(arg1[63]) << 40); + uint64_t x4 = ((uint64_t)(arg1[62]) << 32); + uint64_t x5 = ((uint64_t)(arg1[61]) << 24); + uint64_t x6 = ((uint64_t)(arg1[60]) << 16); + uint64_t x7 = ((uint64_t)(arg1[59]) << 8); + uint8_t x8 = (arg1[58]); + uint64_t x9 = ((uint64_t)(arg1[57]) << 50); + uint64_t x10 = ((uint64_t)(arg1[56]) << 42); + uint64_t x11 = ((uint64_t)(arg1[55]) << 34); + uint64_t x12 = ((uint64_t)(arg1[54]) << 26); + uint64_t x13 = ((uint64_t)(arg1[53]) << 18); + uint64_t x14 = ((uint64_t)(arg1[52]) << 10); + uint64_t x15 = ((uint64_t)(arg1[51]) << 2); + uint64_t x16 = ((uint64_t)(arg1[50]) << 52); + uint64_t x17 = ((uint64_t)(arg1[49]) << 44); + uint64_t x18 = ((uint64_t)(arg1[48]) << 36); + uint64_t x19 = ((uint64_t)(arg1[47]) << 28); + uint64_t x20 = ((uint64_t)(arg1[46]) << 20); + uint64_t x21 = ((uint64_t)(arg1[45]) << 12); + uint64_t x22 = ((uint64_t)(arg1[44]) << 4); + uint64_t x23 = ((uint64_t)(arg1[43]) << 54); + uint64_t x24 = ((uint64_t)(arg1[42]) << 46); + uint64_t x25 = ((uint64_t)(arg1[41]) << 38); + uint64_t x26 = ((uint64_t)(arg1[40]) << 30); + uint64_t x27 = ((uint64_t)(arg1[39]) << 22); + uint64_t x28 = ((uint64_t)(arg1[38]) << 14); + uint64_t x29 = ((uint64_t)(arg1[37]) << 6); + uint64_t x30 = ((uint64_t)(arg1[36]) << 56); + uint64_t x31 = ((uint64_t)(arg1[35]) << 48); + uint64_t x32 = ((uint64_t)(arg1[34]) << 40); + uint64_t x33 = ((uint64_t)(arg1[33]) << 32); + uint64_t x34 = ((uint64_t)(arg1[32]) << 24); + uint64_t x35 = ((uint64_t)(arg1[31]) << 16); + uint64_t x36 = ((uint64_t)(arg1[30]) << 8); + uint8_t x37 = (arg1[29]); + uint64_t x38 = ((uint64_t)(arg1[28]) << 50); + uint64_t x39 = ((uint64_t)(arg1[27]) << 42); + uint64_t x40 = ((uint64_t)(arg1[26]) << 34); + uint64_t x41 = ((uint64_t)(arg1[25]) << 26); + uint64_t x42 = ((uint64_t)(arg1[24]) << 18); + uint64_t x43 = ((uint64_t)(arg1[23]) << 10); + uint64_t x44 = ((uint64_t)(arg1[22]) << 2); + uint64_t x45 = ((uint64_t)(arg1[21]) << 52); + uint64_t x46 = ((uint64_t)(arg1[20]) << 44); + uint64_t x47 = ((uint64_t)(arg1[19]) << 36); + uint64_t x48 = ((uint64_t)(arg1[18]) << 28); + uint64_t x49 = ((uint64_t)(arg1[17]) << 20); + uint64_t x50 = ((uint64_t)(arg1[16]) << 12); + uint64_t x51 = ((uint64_t)(arg1[15]) << 4); + uint64_t x52 = ((uint64_t)(arg1[14]) << 54); + uint64_t x53 = ((uint64_t)(arg1[13]) << 46); + uint64_t x54 = ((uint64_t)(arg1[12]) << 38); + uint64_t x55 = ((uint64_t)(arg1[11]) << 30); + uint64_t x56 = ((uint64_t)(arg1[10]) << 22); + uint64_t x57 = ((uint64_t)(arg1[9]) << 14); + uint64_t x58 = ((uint64_t)(arg1[8]) << 6); + uint64_t x59 = ((uint64_t)(arg1[7]) << 56); + uint64_t x60 = ((uint64_t)(arg1[6]) << 48); + uint64_t x61 = ((uint64_t)(arg1[5]) << 40); + uint64_t x62 = ((uint64_t)(arg1[4]) << 32); + uint64_t x63 = ((uint64_t)(arg1[3]) << 24); + uint64_t x64 = ((uint64_t)(arg1[2]) << 16); + uint64_t x65 = ((uint64_t)(arg1[1]) << 8); + uint8_t x66 = (arg1[0]); + uint64_t x67 = (x66 + (x65 + (x64 + (x63 + (x62 + (x61 + (x60 + x59))))))); + uint8_t x68 = (uint8_t)(x67 >> 58); + uint64_t x69 = (x67 & UINT64_C(0x3ffffffffffffff)); + uint64_t x70 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + uint64_t x71 = (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9)))))); + uint64_t x72 = (x22 + (x21 + (x20 + (x19 + (x18 + (x17 + x16)))))); + uint64_t x73 = (x29 + (x28 + (x27 + (x26 + (x25 + (x24 + x23)))))); + uint64_t x74 = (x37 + (x36 + (x35 + (x34 + (x33 + (x32 + (x31 + x30))))))); + uint64_t x75 = (x44 + (x43 + (x42 + (x41 + (x40 + (x39 + x38)))))); + uint64_t x76 = (x51 + (x50 + (x49 + (x48 + (x47 + (x46 + x45)))))); + uint64_t x77 = (x58 + (x57 + (x56 + (x55 + (x54 + (x53 + x52)))))); + uint64_t x78 = (x68 + x77); + uint8_t x79 = (uint8_t)(x78 >> 58); + uint64_t x80 = (x78 & UINT64_C(0x3ffffffffffffff)); + uint64_t x81 = (x79 + x76); + uint8_t x82 = (uint8_t)(x81 >> 58); + uint64_t x83 = (x81 & UINT64_C(0x3ffffffffffffff)); + uint64_t x84 = (x82 + x75); + fiat_p521_uint1 x85 = (fiat_p521_uint1)(x84 >> 58); + uint64_t x86 = (x84 & UINT64_C(0x3ffffffffffffff)); + uint64_t x87 = (x85 + x74); + uint8_t x88 = (uint8_t)(x87 >> 58); + uint64_t x89 = (x87 & UINT64_C(0x3ffffffffffffff)); + uint64_t x90 = (x88 + x73); + uint8_t x91 = (uint8_t)(x90 >> 58); + uint64_t x92 = (x90 & UINT64_C(0x3ffffffffffffff)); + uint64_t x93 = (x91 + x72); + uint8_t x94 = (uint8_t)(x93 >> 58); + uint64_t x95 = (x93 & UINT64_C(0x3ffffffffffffff)); + uint64_t x96 = (x94 + x71); + fiat_p521_uint1 x97 = (fiat_p521_uint1)(x96 >> 58); + uint64_t x98 = (x96 & UINT64_C(0x3ffffffffffffff)); + uint64_t x99 = (x97 + x70); + out1[0] = x69; + out1[1] = x80; + out1[2] = x83; + out1[3] = x86; + out1[4] = x89; + out1[5] = x92; + out1[6] = x95; + out1[7] = x98; + out1[8] = x99; +} + diff --git a/secp256k1_32.c b/secp256k1_32.c new file mode 100644 index 000000000..0bc344bd1 --- /dev/null +++ b/secp256k1_32.c @@ -0,0 +1,4023 @@ +/* Autogenerated */ +/* curve description: secp256k1 */ +/* requested operations: (all) */ +/* s = 0x10000000000000000000000000000000000000000000000000000000000000000 (from "2^256") */ +/* c = [(4294967296, 1), (1, 977)] (from "2^32,1;1,977") */ +/* machine_wordsize = 32 (from "32") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ + +#include <stdint.h> +typedef unsigned char fiat_secp256k1_uint1; +typedef signed char fiat_secp256k1_int1; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_secp256k1_addcarryx_u32(uint32_t* out1, fiat_secp256k1_uint1* out2, fiat_secp256k1_uint1 arg1, uint32_t arg2, uint32_t arg3) { + uint64_t x1 = ((arg1 + (uint64_t)arg2) + arg3); + uint32_t x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + fiat_secp256k1_uint1 x3 = (fiat_secp256k1_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_secp256k1_subborrowx_u32(uint32_t* out1, fiat_secp256k1_uint1* out2, fiat_secp256k1_uint1 arg1, uint32_t arg2, uint32_t arg3) { + int64_t x1 = ((arg2 - (int64_t)arg1) - arg3); + fiat_secp256k1_int1 x2 = (fiat_secp256k1_int1)((uint64_t)x1 >> 32); + uint32_t x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_secp256k1_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_secp256k1_mulx_u32(uint32_t* out1, uint32_t* out2, uint32_t arg1, uint32_t arg2) { + uint64_t x1 = ((uint64_t)arg1 * arg2); + uint32_t x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + uint32_t x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_secp256k1_cmovznz_u32(uint32_t* out1, fiat_secp256k1_uint1 arg1, uint32_t arg2, uint32_t arg3) { + fiat_secp256k1_uint1 x1 = (!(!arg1)); + uint32_t x2 = ((fiat_secp256k1_int1)(0x0 - x1) & UINT32_C(0xffffffff)); + uint32_t x3 = ((x2 & arg3) | (uint32_t)((uint64_t)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_mul(uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1 = (arg1[1]); + uint32_t x2 = (arg1[2]); + uint32_t x3 = (arg1[3]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[5]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[7]); + uint32_t x8 = (arg1[0]); + uint32_t x9; + uint32_t x10; + fiat_secp256k1_mulx_u32(&x9, &x10, x8, (arg2[7])); + uint32_t x11; + uint32_t x12; + fiat_secp256k1_mulx_u32(&x11, &x12, x8, (arg2[6])); + uint32_t x13; + uint32_t x14; + fiat_secp256k1_mulx_u32(&x13, &x14, x8, (arg2[5])); + uint32_t x15; + uint32_t x16; + fiat_secp256k1_mulx_u32(&x15, &x16, x8, (arg2[4])); + uint32_t x17; + uint32_t x18; + fiat_secp256k1_mulx_u32(&x17, &x18, x8, (arg2[3])); + uint32_t x19; + uint32_t x20; + fiat_secp256k1_mulx_u32(&x19, &x20, x8, (arg2[2])); + uint32_t x21; + uint32_t x22; + fiat_secp256k1_mulx_u32(&x21, &x22, x8, (arg2[1])); + uint32_t x23; + uint32_t x24; + fiat_secp256k1_mulx_u32(&x23, &x24, x8, (arg2[0])); + uint32_t x25; + fiat_secp256k1_uint1 x26; + fiat_secp256k1_addcarryx_u32(&x25, &x26, 0x0, x21, x24); + uint32_t x27; + fiat_secp256k1_uint1 x28; + fiat_secp256k1_addcarryx_u32(&x27, &x28, x26, x19, x22); + uint32_t x29; + fiat_secp256k1_uint1 x30; + fiat_secp256k1_addcarryx_u32(&x29, &x30, x28, x17, x20); + uint32_t x31; + fiat_secp256k1_uint1 x32; + fiat_secp256k1_addcarryx_u32(&x31, &x32, x30, x15, x18); + uint32_t x33; + fiat_secp256k1_uint1 x34; + fiat_secp256k1_addcarryx_u32(&x33, &x34, x32, x13, x16); + uint32_t x35; + fiat_secp256k1_uint1 x36; + fiat_secp256k1_addcarryx_u32(&x35, &x36, x34, x11, x14); + uint32_t x37; + fiat_secp256k1_uint1 x38; + fiat_secp256k1_addcarryx_u32(&x37, &x38, x36, x9, x12); + uint32_t x39; + fiat_secp256k1_uint1 x40; + fiat_secp256k1_addcarryx_u32(&x39, &x40, x38, 0x0, x10); + uint32_t x41; + uint32_t x42; + fiat_secp256k1_mulx_u32(&x41, &x42, x23, UINT32_C(0xd2253531)); + uint32_t x43; + uint32_t x44; + fiat_secp256k1_mulx_u32(&x43, &x44, x41, UINT32_C(0xffffffff)); + uint32_t x45; + uint32_t x46; + fiat_secp256k1_mulx_u32(&x45, &x46, x41, UINT32_C(0xffffffff)); + uint32_t x47; + uint32_t x48; + fiat_secp256k1_mulx_u32(&x47, &x48, x41, UINT32_C(0xffffffff)); + uint32_t x49; + uint32_t x50; + fiat_secp256k1_mulx_u32(&x49, &x50, x41, UINT32_C(0xffffffff)); + uint32_t x51; + uint32_t x52; + fiat_secp256k1_mulx_u32(&x51, &x52, x41, UINT32_C(0xffffffff)); + uint32_t x53; + uint32_t x54; + fiat_secp256k1_mulx_u32(&x53, &x54, x41, UINT32_C(0xffffffff)); + uint32_t x55; + uint32_t x56; + fiat_secp256k1_mulx_u32(&x55, &x56, x41, UINT32_C(0xfffffffe)); + uint32_t x57; + uint32_t x58; + fiat_secp256k1_mulx_u32(&x57, &x58, x41, UINT32_C(0xfffffc2f)); + uint32_t x59; + fiat_secp256k1_uint1 x60; + fiat_secp256k1_addcarryx_u32(&x59, &x60, 0x0, x55, x58); + uint32_t x61; + fiat_secp256k1_uint1 x62; + fiat_secp256k1_addcarryx_u32(&x61, &x62, x60, x53, x56); + uint32_t x63; + fiat_secp256k1_uint1 x64; + fiat_secp256k1_addcarryx_u32(&x63, &x64, x62, x51, x54); + uint32_t x65; + fiat_secp256k1_uint1 x66; + fiat_secp256k1_addcarryx_u32(&x65, &x66, x64, x49, x52); + uint32_t x67; + fiat_secp256k1_uint1 x68; + fiat_secp256k1_addcarryx_u32(&x67, &x68, x66, x47, x50); + uint32_t x69; + fiat_secp256k1_uint1 x70; + fiat_secp256k1_addcarryx_u32(&x69, &x70, x68, x45, x48); + uint32_t x71; + fiat_secp256k1_uint1 x72; + fiat_secp256k1_addcarryx_u32(&x71, &x72, x70, x43, x46); + uint32_t x73; + fiat_secp256k1_uint1 x74; + fiat_secp256k1_addcarryx_u32(&x73, &x74, x72, 0x0, x44); + uint32_t x75; + fiat_secp256k1_uint1 x76; + fiat_secp256k1_addcarryx_u32(&x75, &x76, 0x0, x57, x23); + uint32_t x77; + fiat_secp256k1_uint1 x78; + fiat_secp256k1_addcarryx_u32(&x77, &x78, x76, x59, x25); + uint32_t x79; + fiat_secp256k1_uint1 x80; + fiat_secp256k1_addcarryx_u32(&x79, &x80, x78, x61, x27); + uint32_t x81; + fiat_secp256k1_uint1 x82; + fiat_secp256k1_addcarryx_u32(&x81, &x82, x80, x63, x29); + uint32_t x83; + fiat_secp256k1_uint1 x84; + fiat_secp256k1_addcarryx_u32(&x83, &x84, x82, x65, x31); + uint32_t x85; + fiat_secp256k1_uint1 x86; + fiat_secp256k1_addcarryx_u32(&x85, &x86, x84, x67, x33); + uint32_t x87; + fiat_secp256k1_uint1 x88; + fiat_secp256k1_addcarryx_u32(&x87, &x88, x86, x69, x35); + uint32_t x89; + fiat_secp256k1_uint1 x90; + fiat_secp256k1_addcarryx_u32(&x89, &x90, x88, x71, x37); + uint32_t x91; + fiat_secp256k1_uint1 x92; + fiat_secp256k1_addcarryx_u32(&x91, &x92, x90, x73, x39); + uint32_t x93; + fiat_secp256k1_uint1 x94; + fiat_secp256k1_addcarryx_u32(&x93, &x94, x92, 0x0, 0x0); + uint32_t x95; + uint32_t x96; + fiat_secp256k1_mulx_u32(&x95, &x96, x1, (arg2[7])); + uint32_t x97; + uint32_t x98; + fiat_secp256k1_mulx_u32(&x97, &x98, x1, (arg2[6])); + uint32_t x99; + uint32_t x100; + fiat_secp256k1_mulx_u32(&x99, &x100, x1, (arg2[5])); + uint32_t x101; + uint32_t x102; + fiat_secp256k1_mulx_u32(&x101, &x102, x1, (arg2[4])); + uint32_t x103; + uint32_t x104; + fiat_secp256k1_mulx_u32(&x103, &x104, x1, (arg2[3])); + uint32_t x105; + uint32_t x106; + fiat_secp256k1_mulx_u32(&x105, &x106, x1, (arg2[2])); + uint32_t x107; + uint32_t x108; + fiat_secp256k1_mulx_u32(&x107, &x108, x1, (arg2[1])); + uint32_t x109; + uint32_t x110; + fiat_secp256k1_mulx_u32(&x109, &x110, x1, (arg2[0])); + uint32_t x111; + fiat_secp256k1_uint1 x112; + fiat_secp256k1_addcarryx_u32(&x111, &x112, 0x0, x107, x110); + uint32_t x113; + fiat_secp256k1_uint1 x114; + fiat_secp256k1_addcarryx_u32(&x113, &x114, x112, x105, x108); + uint32_t x115; + fiat_secp256k1_uint1 x116; + fiat_secp256k1_addcarryx_u32(&x115, &x116, x114, x103, x106); + uint32_t x117; + fiat_secp256k1_uint1 x118; + fiat_secp256k1_addcarryx_u32(&x117, &x118, x116, x101, x104); + uint32_t x119; + fiat_secp256k1_uint1 x120; + fiat_secp256k1_addcarryx_u32(&x119, &x120, x118, x99, x102); + uint32_t x121; + fiat_secp256k1_uint1 x122; + fiat_secp256k1_addcarryx_u32(&x121, &x122, x120, x97, x100); + uint32_t x123; + fiat_secp256k1_uint1 x124; + fiat_secp256k1_addcarryx_u32(&x123, &x124, x122, x95, x98); + uint32_t x125; + fiat_secp256k1_uint1 x126; + fiat_secp256k1_addcarryx_u32(&x125, &x126, x124, 0x0, x96); + uint32_t x127; + fiat_secp256k1_uint1 x128; + fiat_secp256k1_addcarryx_u32(&x127, &x128, 0x0, x109, x77); + uint32_t x129; + fiat_secp256k1_uint1 x130; + fiat_secp256k1_addcarryx_u32(&x129, &x130, x128, x111, x79); + uint32_t x131; + fiat_secp256k1_uint1 x132; + fiat_secp256k1_addcarryx_u32(&x131, &x132, x130, x113, x81); + uint32_t x133; + fiat_secp256k1_uint1 x134; + fiat_secp256k1_addcarryx_u32(&x133, &x134, x132, x115, x83); + uint32_t x135; + fiat_secp256k1_uint1 x136; + fiat_secp256k1_addcarryx_u32(&x135, &x136, x134, x117, x85); + uint32_t x137; + fiat_secp256k1_uint1 x138; + fiat_secp256k1_addcarryx_u32(&x137, &x138, x136, x119, x87); + uint32_t x139; + fiat_secp256k1_uint1 x140; + fiat_secp256k1_addcarryx_u32(&x139, &x140, x138, x121, x89); + uint32_t x141; + fiat_secp256k1_uint1 x142; + fiat_secp256k1_addcarryx_u32(&x141, &x142, x140, x123, x91); + uint32_t x143; + fiat_secp256k1_uint1 x144; + fiat_secp256k1_addcarryx_u32(&x143, &x144, x142, x125, (fiat_secp256k1_uint1)x93); + uint32_t x145; + uint32_t x146; + fiat_secp256k1_mulx_u32(&x145, &x146, x127, UINT32_C(0xd2253531)); + uint32_t x147; + uint32_t x148; + fiat_secp256k1_mulx_u32(&x147, &x148, x145, UINT32_C(0xffffffff)); + uint32_t x149; + uint32_t x150; + fiat_secp256k1_mulx_u32(&x149, &x150, x145, UINT32_C(0xffffffff)); + uint32_t x151; + uint32_t x152; + fiat_secp256k1_mulx_u32(&x151, &x152, x145, UINT32_C(0xffffffff)); + uint32_t x153; + uint32_t x154; + fiat_secp256k1_mulx_u32(&x153, &x154, x145, UINT32_C(0xffffffff)); + uint32_t x155; + uint32_t x156; + fiat_secp256k1_mulx_u32(&x155, &x156, x145, UINT32_C(0xffffffff)); + uint32_t x157; + uint32_t x158; + fiat_secp256k1_mulx_u32(&x157, &x158, x145, UINT32_C(0xffffffff)); + uint32_t x159; + uint32_t x160; + fiat_secp256k1_mulx_u32(&x159, &x160, x145, UINT32_C(0xfffffffe)); + uint32_t x161; + uint32_t x162; + fiat_secp256k1_mulx_u32(&x161, &x162, x145, UINT32_C(0xfffffc2f)); + uint32_t x163; + fiat_secp256k1_uint1 x164; + fiat_secp256k1_addcarryx_u32(&x163, &x164, 0x0, x159, x162); + uint32_t x165; + fiat_secp256k1_uint1 x166; + fiat_secp256k1_addcarryx_u32(&x165, &x166, x164, x157, x160); + uint32_t x167; + fiat_secp256k1_uint1 x168; + fiat_secp256k1_addcarryx_u32(&x167, &x168, x166, x155, x158); + uint32_t x169; + fiat_secp256k1_uint1 x170; + fiat_secp256k1_addcarryx_u32(&x169, &x170, x168, x153, x156); + uint32_t x171; + fiat_secp256k1_uint1 x172; + fiat_secp256k1_addcarryx_u32(&x171, &x172, x170, x151, x154); + uint32_t x173; + fiat_secp256k1_uint1 x174; + fiat_secp256k1_addcarryx_u32(&x173, &x174, x172, x149, x152); + uint32_t x175; + fiat_secp256k1_uint1 x176; + fiat_secp256k1_addcarryx_u32(&x175, &x176, x174, x147, x150); + uint32_t x177; + fiat_secp256k1_uint1 x178; + fiat_secp256k1_addcarryx_u32(&x177, &x178, x176, 0x0, x148); + uint32_t x179; + fiat_secp256k1_uint1 x180; + fiat_secp256k1_addcarryx_u32(&x179, &x180, 0x0, x161, x127); + uint32_t x181; + fiat_secp256k1_uint1 x182; + fiat_secp256k1_addcarryx_u32(&x181, &x182, x180, x163, x129); + uint32_t x183; + fiat_secp256k1_uint1 x184; + fiat_secp256k1_addcarryx_u32(&x183, &x184, x182, x165, x131); + uint32_t x185; + fiat_secp256k1_uint1 x186; + fiat_secp256k1_addcarryx_u32(&x185, &x186, x184, x167, x133); + uint32_t x187; + fiat_secp256k1_uint1 x188; + fiat_secp256k1_addcarryx_u32(&x187, &x188, x186, x169, x135); + uint32_t x189; + fiat_secp256k1_uint1 x190; + fiat_secp256k1_addcarryx_u32(&x189, &x190, x188, x171, x137); + uint32_t x191; + fiat_secp256k1_uint1 x192; + fiat_secp256k1_addcarryx_u32(&x191, &x192, x190, x173, x139); + uint32_t x193; + fiat_secp256k1_uint1 x194; + fiat_secp256k1_addcarryx_u32(&x193, &x194, x192, x175, x141); + uint32_t x195; + fiat_secp256k1_uint1 x196; + fiat_secp256k1_addcarryx_u32(&x195, &x196, x194, x177, x143); + uint32_t x197; + fiat_secp256k1_uint1 x198; + fiat_secp256k1_addcarryx_u32(&x197, &x198, x196, 0x0, x144); + uint32_t x199; + uint32_t x200; + fiat_secp256k1_mulx_u32(&x199, &x200, x2, (arg2[7])); + uint32_t x201; + uint32_t x202; + fiat_secp256k1_mulx_u32(&x201, &x202, x2, (arg2[6])); + uint32_t x203; + uint32_t x204; + fiat_secp256k1_mulx_u32(&x203, &x204, x2, (arg2[5])); + uint32_t x205; + uint32_t x206; + fiat_secp256k1_mulx_u32(&x205, &x206, x2, (arg2[4])); + uint32_t x207; + uint32_t x208; + fiat_secp256k1_mulx_u32(&x207, &x208, x2, (arg2[3])); + uint32_t x209; + uint32_t x210; + fiat_secp256k1_mulx_u32(&x209, &x210, x2, (arg2[2])); + uint32_t x211; + uint32_t x212; + fiat_secp256k1_mulx_u32(&x211, &x212, x2, (arg2[1])); + uint32_t x213; + uint32_t x214; + fiat_secp256k1_mulx_u32(&x213, &x214, x2, (arg2[0])); + uint32_t x215; + fiat_secp256k1_uint1 x216; + fiat_secp256k1_addcarryx_u32(&x215, &x216, 0x0, x211, x214); + uint32_t x217; + fiat_secp256k1_uint1 x218; + fiat_secp256k1_addcarryx_u32(&x217, &x218, x216, x209, x212); + uint32_t x219; + fiat_secp256k1_uint1 x220; + fiat_secp256k1_addcarryx_u32(&x219, &x220, x218, x207, x210); + uint32_t x221; + fiat_secp256k1_uint1 x222; + fiat_secp256k1_addcarryx_u32(&x221, &x222, x220, x205, x208); + uint32_t x223; + fiat_secp256k1_uint1 x224; + fiat_secp256k1_addcarryx_u32(&x223, &x224, x222, x203, x206); + uint32_t x225; + fiat_secp256k1_uint1 x226; + fiat_secp256k1_addcarryx_u32(&x225, &x226, x224, x201, x204); + uint32_t x227; + fiat_secp256k1_uint1 x228; + fiat_secp256k1_addcarryx_u32(&x227, &x228, x226, x199, x202); + uint32_t x229; + fiat_secp256k1_uint1 x230; + fiat_secp256k1_addcarryx_u32(&x229, &x230, x228, 0x0, x200); + uint32_t x231; + fiat_secp256k1_uint1 x232; + fiat_secp256k1_addcarryx_u32(&x231, &x232, 0x0, x213, x181); + uint32_t x233; + fiat_secp256k1_uint1 x234; + fiat_secp256k1_addcarryx_u32(&x233, &x234, x232, x215, x183); + uint32_t x235; + fiat_secp256k1_uint1 x236; + fiat_secp256k1_addcarryx_u32(&x235, &x236, x234, x217, x185); + uint32_t x237; + fiat_secp256k1_uint1 x238; + fiat_secp256k1_addcarryx_u32(&x237, &x238, x236, x219, x187); + uint32_t x239; + fiat_secp256k1_uint1 x240; + fiat_secp256k1_addcarryx_u32(&x239, &x240, x238, x221, x189); + uint32_t x241; + fiat_secp256k1_uint1 x242; + fiat_secp256k1_addcarryx_u32(&x241, &x242, x240, x223, x191); + uint32_t x243; + fiat_secp256k1_uint1 x244; + fiat_secp256k1_addcarryx_u32(&x243, &x244, x242, x225, x193); + uint32_t x245; + fiat_secp256k1_uint1 x246; + fiat_secp256k1_addcarryx_u32(&x245, &x246, x244, x227, x195); + uint32_t x247; + fiat_secp256k1_uint1 x248; + fiat_secp256k1_addcarryx_u32(&x247, &x248, x246, x229, x197); + uint32_t x249; + uint32_t x250; + fiat_secp256k1_mulx_u32(&x249, &x250, x231, UINT32_C(0xd2253531)); + uint32_t x251; + uint32_t x252; + fiat_secp256k1_mulx_u32(&x251, &x252, x249, UINT32_C(0xffffffff)); + uint32_t x253; + uint32_t x254; + fiat_secp256k1_mulx_u32(&x253, &x254, x249, UINT32_C(0xffffffff)); + uint32_t x255; + uint32_t x256; + fiat_secp256k1_mulx_u32(&x255, &x256, x249, UINT32_C(0xffffffff)); + uint32_t x257; + uint32_t x258; + fiat_secp256k1_mulx_u32(&x257, &x258, x249, UINT32_C(0xffffffff)); + uint32_t x259; + uint32_t x260; + fiat_secp256k1_mulx_u32(&x259, &x260, x249, UINT32_C(0xffffffff)); + uint32_t x261; + uint32_t x262; + fiat_secp256k1_mulx_u32(&x261, &x262, x249, UINT32_C(0xffffffff)); + uint32_t x263; + uint32_t x264; + fiat_secp256k1_mulx_u32(&x263, &x264, x249, UINT32_C(0xfffffffe)); + uint32_t x265; + uint32_t x266; + fiat_secp256k1_mulx_u32(&x265, &x266, x249, UINT32_C(0xfffffc2f)); + uint32_t x267; + fiat_secp256k1_uint1 x268; + fiat_secp256k1_addcarryx_u32(&x267, &x268, 0x0, x263, x266); + uint32_t x269; + fiat_secp256k1_uint1 x270; + fiat_secp256k1_addcarryx_u32(&x269, &x270, x268, x261, x264); + uint32_t x271; + fiat_secp256k1_uint1 x272; + fiat_secp256k1_addcarryx_u32(&x271, &x272, x270, x259, x262); + uint32_t x273; + fiat_secp256k1_uint1 x274; + fiat_secp256k1_addcarryx_u32(&x273, &x274, x272, x257, x260); + uint32_t x275; + fiat_secp256k1_uint1 x276; + fiat_secp256k1_addcarryx_u32(&x275, &x276, x274, x255, x258); + uint32_t x277; + fiat_secp256k1_uint1 x278; + fiat_secp256k1_addcarryx_u32(&x277, &x278, x276, x253, x256); + uint32_t x279; + fiat_secp256k1_uint1 x280; + fiat_secp256k1_addcarryx_u32(&x279, &x280, x278, x251, x254); + uint32_t x281; + fiat_secp256k1_uint1 x282; + fiat_secp256k1_addcarryx_u32(&x281, &x282, x280, 0x0, x252); + uint32_t x283; + fiat_secp256k1_uint1 x284; + fiat_secp256k1_addcarryx_u32(&x283, &x284, 0x0, x265, x231); + uint32_t x285; + fiat_secp256k1_uint1 x286; + fiat_secp256k1_addcarryx_u32(&x285, &x286, x284, x267, x233); + uint32_t x287; + fiat_secp256k1_uint1 x288; + fiat_secp256k1_addcarryx_u32(&x287, &x288, x286, x269, x235); + uint32_t x289; + fiat_secp256k1_uint1 x290; + fiat_secp256k1_addcarryx_u32(&x289, &x290, x288, x271, x237); + uint32_t x291; + fiat_secp256k1_uint1 x292; + fiat_secp256k1_addcarryx_u32(&x291, &x292, x290, x273, x239); + uint32_t x293; + fiat_secp256k1_uint1 x294; + fiat_secp256k1_addcarryx_u32(&x293, &x294, x292, x275, x241); + uint32_t x295; + fiat_secp256k1_uint1 x296; + fiat_secp256k1_addcarryx_u32(&x295, &x296, x294, x277, x243); + uint32_t x297; + fiat_secp256k1_uint1 x298; + fiat_secp256k1_addcarryx_u32(&x297, &x298, x296, x279, x245); + uint32_t x299; + fiat_secp256k1_uint1 x300; + fiat_secp256k1_addcarryx_u32(&x299, &x300, x298, x281, x247); + uint32_t x301; + fiat_secp256k1_uint1 x302; + fiat_secp256k1_addcarryx_u32(&x301, &x302, x300, 0x0, x248); + uint32_t x303; + uint32_t x304; + fiat_secp256k1_mulx_u32(&x303, &x304, x3, (arg2[7])); + uint32_t x305; + uint32_t x306; + fiat_secp256k1_mulx_u32(&x305, &x306, x3, (arg2[6])); + uint32_t x307; + uint32_t x308; + fiat_secp256k1_mulx_u32(&x307, &x308, x3, (arg2[5])); + uint32_t x309; + uint32_t x310; + fiat_secp256k1_mulx_u32(&x309, &x310, x3, (arg2[4])); + uint32_t x311; + uint32_t x312; + fiat_secp256k1_mulx_u32(&x311, &x312, x3, (arg2[3])); + uint32_t x313; + uint32_t x314; + fiat_secp256k1_mulx_u32(&x313, &x314, x3, (arg2[2])); + uint32_t x315; + uint32_t x316; + fiat_secp256k1_mulx_u32(&x315, &x316, x3, (arg2[1])); + uint32_t x317; + uint32_t x318; + fiat_secp256k1_mulx_u32(&x317, &x318, x3, (arg2[0])); + uint32_t x319; + fiat_secp256k1_uint1 x320; + fiat_secp256k1_addcarryx_u32(&x319, &x320, 0x0, x315, x318); + uint32_t x321; + fiat_secp256k1_uint1 x322; + fiat_secp256k1_addcarryx_u32(&x321, &x322, x320, x313, x316); + uint32_t x323; + fiat_secp256k1_uint1 x324; + fiat_secp256k1_addcarryx_u32(&x323, &x324, x322, x311, x314); + uint32_t x325; + fiat_secp256k1_uint1 x326; + fiat_secp256k1_addcarryx_u32(&x325, &x326, x324, x309, x312); + uint32_t x327; + fiat_secp256k1_uint1 x328; + fiat_secp256k1_addcarryx_u32(&x327, &x328, x326, x307, x310); + uint32_t x329; + fiat_secp256k1_uint1 x330; + fiat_secp256k1_addcarryx_u32(&x329, &x330, x328, x305, x308); + uint32_t x331; + fiat_secp256k1_uint1 x332; + fiat_secp256k1_addcarryx_u32(&x331, &x332, x330, x303, x306); + uint32_t x333; + fiat_secp256k1_uint1 x334; + fiat_secp256k1_addcarryx_u32(&x333, &x334, x332, 0x0, x304); + uint32_t x335; + fiat_secp256k1_uint1 x336; + fiat_secp256k1_addcarryx_u32(&x335, &x336, 0x0, x317, x285); + uint32_t x337; + fiat_secp256k1_uint1 x338; + fiat_secp256k1_addcarryx_u32(&x337, &x338, x336, x319, x287); + uint32_t x339; + fiat_secp256k1_uint1 x340; + fiat_secp256k1_addcarryx_u32(&x339, &x340, x338, x321, x289); + uint32_t x341; + fiat_secp256k1_uint1 x342; + fiat_secp256k1_addcarryx_u32(&x341, &x342, x340, x323, x291); + uint32_t x343; + fiat_secp256k1_uint1 x344; + fiat_secp256k1_addcarryx_u32(&x343, &x344, x342, x325, x293); + uint32_t x345; + fiat_secp256k1_uint1 x346; + fiat_secp256k1_addcarryx_u32(&x345, &x346, x344, x327, x295); + uint32_t x347; + fiat_secp256k1_uint1 x348; + fiat_secp256k1_addcarryx_u32(&x347, &x348, x346, x329, x297); + uint32_t x349; + fiat_secp256k1_uint1 x350; + fiat_secp256k1_addcarryx_u32(&x349, &x350, x348, x331, x299); + uint32_t x351; + fiat_secp256k1_uint1 x352; + fiat_secp256k1_addcarryx_u32(&x351, &x352, x350, x333, x301); + uint32_t x353; + uint32_t x354; + fiat_secp256k1_mulx_u32(&x353, &x354, x335, UINT32_C(0xd2253531)); + uint32_t x355; + uint32_t x356; + fiat_secp256k1_mulx_u32(&x355, &x356, x353, UINT32_C(0xffffffff)); + uint32_t x357; + uint32_t x358; + fiat_secp256k1_mulx_u32(&x357, &x358, x353, UINT32_C(0xffffffff)); + uint32_t x359; + uint32_t x360; + fiat_secp256k1_mulx_u32(&x359, &x360, x353, UINT32_C(0xffffffff)); + uint32_t x361; + uint32_t x362; + fiat_secp256k1_mulx_u32(&x361, &x362, x353, UINT32_C(0xffffffff)); + uint32_t x363; + uint32_t x364; + fiat_secp256k1_mulx_u32(&x363, &x364, x353, UINT32_C(0xffffffff)); + uint32_t x365; + uint32_t x366; + fiat_secp256k1_mulx_u32(&x365, &x366, x353, UINT32_C(0xffffffff)); + uint32_t x367; + uint32_t x368; + fiat_secp256k1_mulx_u32(&x367, &x368, x353, UINT32_C(0xfffffffe)); + uint32_t x369; + uint32_t x370; + fiat_secp256k1_mulx_u32(&x369, &x370, x353, UINT32_C(0xfffffc2f)); + uint32_t x371; + fiat_secp256k1_uint1 x372; + fiat_secp256k1_addcarryx_u32(&x371, &x372, 0x0, x367, x370); + uint32_t x373; + fiat_secp256k1_uint1 x374; + fiat_secp256k1_addcarryx_u32(&x373, &x374, x372, x365, x368); + uint32_t x375; + fiat_secp256k1_uint1 x376; + fiat_secp256k1_addcarryx_u32(&x375, &x376, x374, x363, x366); + uint32_t x377; + fiat_secp256k1_uint1 x378; + fiat_secp256k1_addcarryx_u32(&x377, &x378, x376, x361, x364); + uint32_t x379; + fiat_secp256k1_uint1 x380; + fiat_secp256k1_addcarryx_u32(&x379, &x380, x378, x359, x362); + uint32_t x381; + fiat_secp256k1_uint1 x382; + fiat_secp256k1_addcarryx_u32(&x381, &x382, x380, x357, x360); + uint32_t x383; + fiat_secp256k1_uint1 x384; + fiat_secp256k1_addcarryx_u32(&x383, &x384, x382, x355, x358); + uint32_t x385; + fiat_secp256k1_uint1 x386; + fiat_secp256k1_addcarryx_u32(&x385, &x386, x384, 0x0, x356); + uint32_t x387; + fiat_secp256k1_uint1 x388; + fiat_secp256k1_addcarryx_u32(&x387, &x388, 0x0, x369, x335); + uint32_t x389; + fiat_secp256k1_uint1 x390; + fiat_secp256k1_addcarryx_u32(&x389, &x390, x388, x371, x337); + uint32_t x391; + fiat_secp256k1_uint1 x392; + fiat_secp256k1_addcarryx_u32(&x391, &x392, x390, x373, x339); + uint32_t x393; + fiat_secp256k1_uint1 x394; + fiat_secp256k1_addcarryx_u32(&x393, &x394, x392, x375, x341); + uint32_t x395; + fiat_secp256k1_uint1 x396; + fiat_secp256k1_addcarryx_u32(&x395, &x396, x394, x377, x343); + uint32_t x397; + fiat_secp256k1_uint1 x398; + fiat_secp256k1_addcarryx_u32(&x397, &x398, x396, x379, x345); + uint32_t x399; + fiat_secp256k1_uint1 x400; + fiat_secp256k1_addcarryx_u32(&x399, &x400, x398, x381, x347); + uint32_t x401; + fiat_secp256k1_uint1 x402; + fiat_secp256k1_addcarryx_u32(&x401, &x402, x400, x383, x349); + uint32_t x403; + fiat_secp256k1_uint1 x404; + fiat_secp256k1_addcarryx_u32(&x403, &x404, x402, x385, x351); + uint32_t x405; + fiat_secp256k1_uint1 x406; + fiat_secp256k1_addcarryx_u32(&x405, &x406, x404, 0x0, x352); + uint32_t x407; + uint32_t x408; + fiat_secp256k1_mulx_u32(&x407, &x408, x4, (arg2[7])); + uint32_t x409; + uint32_t x410; + fiat_secp256k1_mulx_u32(&x409, &x410, x4, (arg2[6])); + uint32_t x411; + uint32_t x412; + fiat_secp256k1_mulx_u32(&x411, &x412, x4, (arg2[5])); + uint32_t x413; + uint32_t x414; + fiat_secp256k1_mulx_u32(&x413, &x414, x4, (arg2[4])); + uint32_t x415; + uint32_t x416; + fiat_secp256k1_mulx_u32(&x415, &x416, x4, (arg2[3])); + uint32_t x417; + uint32_t x418; + fiat_secp256k1_mulx_u32(&x417, &x418, x4, (arg2[2])); + uint32_t x419; + uint32_t x420; + fiat_secp256k1_mulx_u32(&x419, &x420, x4, (arg2[1])); + uint32_t x421; + uint32_t x422; + fiat_secp256k1_mulx_u32(&x421, &x422, x4, (arg2[0])); + uint32_t x423; + fiat_secp256k1_uint1 x424; + fiat_secp256k1_addcarryx_u32(&x423, &x424, 0x0, x419, x422); + uint32_t x425; + fiat_secp256k1_uint1 x426; + fiat_secp256k1_addcarryx_u32(&x425, &x426, x424, x417, x420); + uint32_t x427; + fiat_secp256k1_uint1 x428; + fiat_secp256k1_addcarryx_u32(&x427, &x428, x426, x415, x418); + uint32_t x429; + fiat_secp256k1_uint1 x430; + fiat_secp256k1_addcarryx_u32(&x429, &x430, x428, x413, x416); + uint32_t x431; + fiat_secp256k1_uint1 x432; + fiat_secp256k1_addcarryx_u32(&x431, &x432, x430, x411, x414); + uint32_t x433; + fiat_secp256k1_uint1 x434; + fiat_secp256k1_addcarryx_u32(&x433, &x434, x432, x409, x412); + uint32_t x435; + fiat_secp256k1_uint1 x436; + fiat_secp256k1_addcarryx_u32(&x435, &x436, x434, x407, x410); + uint32_t x437; + fiat_secp256k1_uint1 x438; + fiat_secp256k1_addcarryx_u32(&x437, &x438, x436, 0x0, x408); + uint32_t x439; + fiat_secp256k1_uint1 x440; + fiat_secp256k1_addcarryx_u32(&x439, &x440, 0x0, x421, x389); + uint32_t x441; + fiat_secp256k1_uint1 x442; + fiat_secp256k1_addcarryx_u32(&x441, &x442, x440, x423, x391); + uint32_t x443; + fiat_secp256k1_uint1 x444; + fiat_secp256k1_addcarryx_u32(&x443, &x444, x442, x425, x393); + uint32_t x445; + fiat_secp256k1_uint1 x446; + fiat_secp256k1_addcarryx_u32(&x445, &x446, x444, x427, x395); + uint32_t x447; + fiat_secp256k1_uint1 x448; + fiat_secp256k1_addcarryx_u32(&x447, &x448, x446, x429, x397); + uint32_t x449; + fiat_secp256k1_uint1 x450; + fiat_secp256k1_addcarryx_u32(&x449, &x450, x448, x431, x399); + uint32_t x451; + fiat_secp256k1_uint1 x452; + fiat_secp256k1_addcarryx_u32(&x451, &x452, x450, x433, x401); + uint32_t x453; + fiat_secp256k1_uint1 x454; + fiat_secp256k1_addcarryx_u32(&x453, &x454, x452, x435, x403); + uint32_t x455; + fiat_secp256k1_uint1 x456; + fiat_secp256k1_addcarryx_u32(&x455, &x456, x454, x437, x405); + uint32_t x457; + uint32_t x458; + fiat_secp256k1_mulx_u32(&x457, &x458, x439, UINT32_C(0xd2253531)); + uint32_t x459; + uint32_t x460; + fiat_secp256k1_mulx_u32(&x459, &x460, x457, UINT32_C(0xffffffff)); + uint32_t x461; + uint32_t x462; + fiat_secp256k1_mulx_u32(&x461, &x462, x457, UINT32_C(0xffffffff)); + uint32_t x463; + uint32_t x464; + fiat_secp256k1_mulx_u32(&x463, &x464, x457, UINT32_C(0xffffffff)); + uint32_t x465; + uint32_t x466; + fiat_secp256k1_mulx_u32(&x465, &x466, x457, UINT32_C(0xffffffff)); + uint32_t x467; + uint32_t x468; + fiat_secp256k1_mulx_u32(&x467, &x468, x457, UINT32_C(0xffffffff)); + uint32_t x469; + uint32_t x470; + fiat_secp256k1_mulx_u32(&x469, &x470, x457, UINT32_C(0xffffffff)); + uint32_t x471; + uint32_t x472; + fiat_secp256k1_mulx_u32(&x471, &x472, x457, UINT32_C(0xfffffffe)); + uint32_t x473; + uint32_t x474; + fiat_secp256k1_mulx_u32(&x473, &x474, x457, UINT32_C(0xfffffc2f)); + uint32_t x475; + fiat_secp256k1_uint1 x476; + fiat_secp256k1_addcarryx_u32(&x475, &x476, 0x0, x471, x474); + uint32_t x477; + fiat_secp256k1_uint1 x478; + fiat_secp256k1_addcarryx_u32(&x477, &x478, x476, x469, x472); + uint32_t x479; + fiat_secp256k1_uint1 x480; + fiat_secp256k1_addcarryx_u32(&x479, &x480, x478, x467, x470); + uint32_t x481; + fiat_secp256k1_uint1 x482; + fiat_secp256k1_addcarryx_u32(&x481, &x482, x480, x465, x468); + uint32_t x483; + fiat_secp256k1_uint1 x484; + fiat_secp256k1_addcarryx_u32(&x483, &x484, x482, x463, x466); + uint32_t x485; + fiat_secp256k1_uint1 x486; + fiat_secp256k1_addcarryx_u32(&x485, &x486, x484, x461, x464); + uint32_t x487; + fiat_secp256k1_uint1 x488; + fiat_secp256k1_addcarryx_u32(&x487, &x488, x486, x459, x462); + uint32_t x489; + fiat_secp256k1_uint1 x490; + fiat_secp256k1_addcarryx_u32(&x489, &x490, x488, 0x0, x460); + uint32_t x491; + fiat_secp256k1_uint1 x492; + fiat_secp256k1_addcarryx_u32(&x491, &x492, 0x0, x473, x439); + uint32_t x493; + fiat_secp256k1_uint1 x494; + fiat_secp256k1_addcarryx_u32(&x493, &x494, x492, x475, x441); + uint32_t x495; + fiat_secp256k1_uint1 x496; + fiat_secp256k1_addcarryx_u32(&x495, &x496, x494, x477, x443); + uint32_t x497; + fiat_secp256k1_uint1 x498; + fiat_secp256k1_addcarryx_u32(&x497, &x498, x496, x479, x445); + uint32_t x499; + fiat_secp256k1_uint1 x500; + fiat_secp256k1_addcarryx_u32(&x499, &x500, x498, x481, x447); + uint32_t x501; + fiat_secp256k1_uint1 x502; + fiat_secp256k1_addcarryx_u32(&x501, &x502, x500, x483, x449); + uint32_t x503; + fiat_secp256k1_uint1 x504; + fiat_secp256k1_addcarryx_u32(&x503, &x504, x502, x485, x451); + uint32_t x505; + fiat_secp256k1_uint1 x506; + fiat_secp256k1_addcarryx_u32(&x505, &x506, x504, x487, x453); + uint32_t x507; + fiat_secp256k1_uint1 x508; + fiat_secp256k1_addcarryx_u32(&x507, &x508, x506, x489, x455); + uint32_t x509; + fiat_secp256k1_uint1 x510; + fiat_secp256k1_addcarryx_u32(&x509, &x510, x508, 0x0, x456); + uint32_t x511; + uint32_t x512; + fiat_secp256k1_mulx_u32(&x511, &x512, x5, (arg2[7])); + uint32_t x513; + uint32_t x514; + fiat_secp256k1_mulx_u32(&x513, &x514, x5, (arg2[6])); + uint32_t x515; + uint32_t x516; + fiat_secp256k1_mulx_u32(&x515, &x516, x5, (arg2[5])); + uint32_t x517; + uint32_t x518; + fiat_secp256k1_mulx_u32(&x517, &x518, x5, (arg2[4])); + uint32_t x519; + uint32_t x520; + fiat_secp256k1_mulx_u32(&x519, &x520, x5, (arg2[3])); + uint32_t x521; + uint32_t x522; + fiat_secp256k1_mulx_u32(&x521, &x522, x5, (arg2[2])); + uint32_t x523; + uint32_t x524; + fiat_secp256k1_mulx_u32(&x523, &x524, x5, (arg2[1])); + uint32_t x525; + uint32_t x526; + fiat_secp256k1_mulx_u32(&x525, &x526, x5, (arg2[0])); + uint32_t x527; + fiat_secp256k1_uint1 x528; + fiat_secp256k1_addcarryx_u32(&x527, &x528, 0x0, x523, x526); + uint32_t x529; + fiat_secp256k1_uint1 x530; + fiat_secp256k1_addcarryx_u32(&x529, &x530, x528, x521, x524); + uint32_t x531; + fiat_secp256k1_uint1 x532; + fiat_secp256k1_addcarryx_u32(&x531, &x532, x530, x519, x522); + uint32_t x533; + fiat_secp256k1_uint1 x534; + fiat_secp256k1_addcarryx_u32(&x533, &x534, x532, x517, x520); + uint32_t x535; + fiat_secp256k1_uint1 x536; + fiat_secp256k1_addcarryx_u32(&x535, &x536, x534, x515, x518); + uint32_t x537; + fiat_secp256k1_uint1 x538; + fiat_secp256k1_addcarryx_u32(&x537, &x538, x536, x513, x516); + uint32_t x539; + fiat_secp256k1_uint1 x540; + fiat_secp256k1_addcarryx_u32(&x539, &x540, x538, x511, x514); + uint32_t x541; + fiat_secp256k1_uint1 x542; + fiat_secp256k1_addcarryx_u32(&x541, &x542, x540, 0x0, x512); + uint32_t x543; + fiat_secp256k1_uint1 x544; + fiat_secp256k1_addcarryx_u32(&x543, &x544, 0x0, x525, x493); + uint32_t x545; + fiat_secp256k1_uint1 x546; + fiat_secp256k1_addcarryx_u32(&x545, &x546, x544, x527, x495); + uint32_t x547; + fiat_secp256k1_uint1 x548; + fiat_secp256k1_addcarryx_u32(&x547, &x548, x546, x529, x497); + uint32_t x549; + fiat_secp256k1_uint1 x550; + fiat_secp256k1_addcarryx_u32(&x549, &x550, x548, x531, x499); + uint32_t x551; + fiat_secp256k1_uint1 x552; + fiat_secp256k1_addcarryx_u32(&x551, &x552, x550, x533, x501); + uint32_t x553; + fiat_secp256k1_uint1 x554; + fiat_secp256k1_addcarryx_u32(&x553, &x554, x552, x535, x503); + uint32_t x555; + fiat_secp256k1_uint1 x556; + fiat_secp256k1_addcarryx_u32(&x555, &x556, x554, x537, x505); + uint32_t x557; + fiat_secp256k1_uint1 x558; + fiat_secp256k1_addcarryx_u32(&x557, &x558, x556, x539, x507); + uint32_t x559; + fiat_secp256k1_uint1 x560; + fiat_secp256k1_addcarryx_u32(&x559, &x560, x558, x541, x509); + uint32_t x561; + uint32_t x562; + fiat_secp256k1_mulx_u32(&x561, &x562, x543, UINT32_C(0xd2253531)); + uint32_t x563; + uint32_t x564; + fiat_secp256k1_mulx_u32(&x563, &x564, x561, UINT32_C(0xffffffff)); + uint32_t x565; + uint32_t x566; + fiat_secp256k1_mulx_u32(&x565, &x566, x561, UINT32_C(0xffffffff)); + uint32_t x567; + uint32_t x568; + fiat_secp256k1_mulx_u32(&x567, &x568, x561, UINT32_C(0xffffffff)); + uint32_t x569; + uint32_t x570; + fiat_secp256k1_mulx_u32(&x569, &x570, x561, UINT32_C(0xffffffff)); + uint32_t x571; + uint32_t x572; + fiat_secp256k1_mulx_u32(&x571, &x572, x561, UINT32_C(0xffffffff)); + uint32_t x573; + uint32_t x574; + fiat_secp256k1_mulx_u32(&x573, &x574, x561, UINT32_C(0xffffffff)); + uint32_t x575; + uint32_t x576; + fiat_secp256k1_mulx_u32(&x575, &x576, x561, UINT32_C(0xfffffffe)); + uint32_t x577; + uint32_t x578; + fiat_secp256k1_mulx_u32(&x577, &x578, x561, UINT32_C(0xfffffc2f)); + uint32_t x579; + fiat_secp256k1_uint1 x580; + fiat_secp256k1_addcarryx_u32(&x579, &x580, 0x0, x575, x578); + uint32_t x581; + fiat_secp256k1_uint1 x582; + fiat_secp256k1_addcarryx_u32(&x581, &x582, x580, x573, x576); + uint32_t x583; + fiat_secp256k1_uint1 x584; + fiat_secp256k1_addcarryx_u32(&x583, &x584, x582, x571, x574); + uint32_t x585; + fiat_secp256k1_uint1 x586; + fiat_secp256k1_addcarryx_u32(&x585, &x586, x584, x569, x572); + uint32_t x587; + fiat_secp256k1_uint1 x588; + fiat_secp256k1_addcarryx_u32(&x587, &x588, x586, x567, x570); + uint32_t x589; + fiat_secp256k1_uint1 x590; + fiat_secp256k1_addcarryx_u32(&x589, &x590, x588, x565, x568); + uint32_t x591; + fiat_secp256k1_uint1 x592; + fiat_secp256k1_addcarryx_u32(&x591, &x592, x590, x563, x566); + uint32_t x593; + fiat_secp256k1_uint1 x594; + fiat_secp256k1_addcarryx_u32(&x593, &x594, x592, 0x0, x564); + uint32_t x595; + fiat_secp256k1_uint1 x596; + fiat_secp256k1_addcarryx_u32(&x595, &x596, 0x0, x577, x543); + uint32_t x597; + fiat_secp256k1_uint1 x598; + fiat_secp256k1_addcarryx_u32(&x597, &x598, x596, x579, x545); + uint32_t x599; + fiat_secp256k1_uint1 x600; + fiat_secp256k1_addcarryx_u32(&x599, &x600, x598, x581, x547); + uint32_t x601; + fiat_secp256k1_uint1 x602; + fiat_secp256k1_addcarryx_u32(&x601, &x602, x600, x583, x549); + uint32_t x603; + fiat_secp256k1_uint1 x604; + fiat_secp256k1_addcarryx_u32(&x603, &x604, x602, x585, x551); + uint32_t x605; + fiat_secp256k1_uint1 x606; + fiat_secp256k1_addcarryx_u32(&x605, &x606, x604, x587, x553); + uint32_t x607; + fiat_secp256k1_uint1 x608; + fiat_secp256k1_addcarryx_u32(&x607, &x608, x606, x589, x555); + uint32_t x609; + fiat_secp256k1_uint1 x610; + fiat_secp256k1_addcarryx_u32(&x609, &x610, x608, x591, x557); + uint32_t x611; + fiat_secp256k1_uint1 x612; + fiat_secp256k1_addcarryx_u32(&x611, &x612, x610, x593, x559); + uint32_t x613; + fiat_secp256k1_uint1 x614; + fiat_secp256k1_addcarryx_u32(&x613, &x614, x612, 0x0, x560); + uint32_t x615; + uint32_t x616; + fiat_secp256k1_mulx_u32(&x615, &x616, x6, (arg2[7])); + uint32_t x617; + uint32_t x618; + fiat_secp256k1_mulx_u32(&x617, &x618, x6, (arg2[6])); + uint32_t x619; + uint32_t x620; + fiat_secp256k1_mulx_u32(&x619, &x620, x6, (arg2[5])); + uint32_t x621; + uint32_t x622; + fiat_secp256k1_mulx_u32(&x621, &x622, x6, (arg2[4])); + uint32_t x623; + uint32_t x624; + fiat_secp256k1_mulx_u32(&x623, &x624, x6, (arg2[3])); + uint32_t x625; + uint32_t x626; + fiat_secp256k1_mulx_u32(&x625, &x626, x6, (arg2[2])); + uint32_t x627; + uint32_t x628; + fiat_secp256k1_mulx_u32(&x627, &x628, x6, (arg2[1])); + uint32_t x629; + uint32_t x630; + fiat_secp256k1_mulx_u32(&x629, &x630, x6, (arg2[0])); + uint32_t x631; + fiat_secp256k1_uint1 x632; + fiat_secp256k1_addcarryx_u32(&x631, &x632, 0x0, x627, x630); + uint32_t x633; + fiat_secp256k1_uint1 x634; + fiat_secp256k1_addcarryx_u32(&x633, &x634, x632, x625, x628); + uint32_t x635; + fiat_secp256k1_uint1 x636; + fiat_secp256k1_addcarryx_u32(&x635, &x636, x634, x623, x626); + uint32_t x637; + fiat_secp256k1_uint1 x638; + fiat_secp256k1_addcarryx_u32(&x637, &x638, x636, x621, x624); + uint32_t x639; + fiat_secp256k1_uint1 x640; + fiat_secp256k1_addcarryx_u32(&x639, &x640, x638, x619, x622); + uint32_t x641; + fiat_secp256k1_uint1 x642; + fiat_secp256k1_addcarryx_u32(&x641, &x642, x640, x617, x620); + uint32_t x643; + fiat_secp256k1_uint1 x644; + fiat_secp256k1_addcarryx_u32(&x643, &x644, x642, x615, x618); + uint32_t x645; + fiat_secp256k1_uint1 x646; + fiat_secp256k1_addcarryx_u32(&x645, &x646, x644, 0x0, x616); + uint32_t x647; + fiat_secp256k1_uint1 x648; + fiat_secp256k1_addcarryx_u32(&x647, &x648, 0x0, x629, x597); + uint32_t x649; + fiat_secp256k1_uint1 x650; + fiat_secp256k1_addcarryx_u32(&x649, &x650, x648, x631, x599); + uint32_t x651; + fiat_secp256k1_uint1 x652; + fiat_secp256k1_addcarryx_u32(&x651, &x652, x650, x633, x601); + uint32_t x653; + fiat_secp256k1_uint1 x654; + fiat_secp256k1_addcarryx_u32(&x653, &x654, x652, x635, x603); + uint32_t x655; + fiat_secp256k1_uint1 x656; + fiat_secp256k1_addcarryx_u32(&x655, &x656, x654, x637, x605); + uint32_t x657; + fiat_secp256k1_uint1 x658; + fiat_secp256k1_addcarryx_u32(&x657, &x658, x656, x639, x607); + uint32_t x659; + fiat_secp256k1_uint1 x660; + fiat_secp256k1_addcarryx_u32(&x659, &x660, x658, x641, x609); + uint32_t x661; + fiat_secp256k1_uint1 x662; + fiat_secp256k1_addcarryx_u32(&x661, &x662, x660, x643, x611); + uint32_t x663; + fiat_secp256k1_uint1 x664; + fiat_secp256k1_addcarryx_u32(&x663, &x664, x662, x645, x613); + uint32_t x665; + uint32_t x666; + fiat_secp256k1_mulx_u32(&x665, &x666, x647, UINT32_C(0xd2253531)); + uint32_t x667; + uint32_t x668; + fiat_secp256k1_mulx_u32(&x667, &x668, x665, UINT32_C(0xffffffff)); + uint32_t x669; + uint32_t x670; + fiat_secp256k1_mulx_u32(&x669, &x670, x665, UINT32_C(0xffffffff)); + uint32_t x671; + uint32_t x672; + fiat_secp256k1_mulx_u32(&x671, &x672, x665, UINT32_C(0xffffffff)); + uint32_t x673; + uint32_t x674; + fiat_secp256k1_mulx_u32(&x673, &x674, x665, UINT32_C(0xffffffff)); + uint32_t x675; + uint32_t x676; + fiat_secp256k1_mulx_u32(&x675, &x676, x665, UINT32_C(0xffffffff)); + uint32_t x677; + uint32_t x678; + fiat_secp256k1_mulx_u32(&x677, &x678, x665, UINT32_C(0xffffffff)); + uint32_t x679; + uint32_t x680; + fiat_secp256k1_mulx_u32(&x679, &x680, x665, UINT32_C(0xfffffffe)); + uint32_t x681; + uint32_t x682; + fiat_secp256k1_mulx_u32(&x681, &x682, x665, UINT32_C(0xfffffc2f)); + uint32_t x683; + fiat_secp256k1_uint1 x684; + fiat_secp256k1_addcarryx_u32(&x683, &x684, 0x0, x679, x682); + uint32_t x685; + fiat_secp256k1_uint1 x686; + fiat_secp256k1_addcarryx_u32(&x685, &x686, x684, x677, x680); + uint32_t x687; + fiat_secp256k1_uint1 x688; + fiat_secp256k1_addcarryx_u32(&x687, &x688, x686, x675, x678); + uint32_t x689; + fiat_secp256k1_uint1 x690; + fiat_secp256k1_addcarryx_u32(&x689, &x690, x688, x673, x676); + uint32_t x691; + fiat_secp256k1_uint1 x692; + fiat_secp256k1_addcarryx_u32(&x691, &x692, x690, x671, x674); + uint32_t x693; + fiat_secp256k1_uint1 x694; + fiat_secp256k1_addcarryx_u32(&x693, &x694, x692, x669, x672); + uint32_t x695; + fiat_secp256k1_uint1 x696; + fiat_secp256k1_addcarryx_u32(&x695, &x696, x694, x667, x670); + uint32_t x697; + fiat_secp256k1_uint1 x698; + fiat_secp256k1_addcarryx_u32(&x697, &x698, x696, 0x0, x668); + uint32_t x699; + fiat_secp256k1_uint1 x700; + fiat_secp256k1_addcarryx_u32(&x699, &x700, 0x0, x681, x647); + uint32_t x701; + fiat_secp256k1_uint1 x702; + fiat_secp256k1_addcarryx_u32(&x701, &x702, x700, x683, x649); + uint32_t x703; + fiat_secp256k1_uint1 x704; + fiat_secp256k1_addcarryx_u32(&x703, &x704, x702, x685, x651); + uint32_t x705; + fiat_secp256k1_uint1 x706; + fiat_secp256k1_addcarryx_u32(&x705, &x706, x704, x687, x653); + uint32_t x707; + fiat_secp256k1_uint1 x708; + fiat_secp256k1_addcarryx_u32(&x707, &x708, x706, x689, x655); + uint32_t x709; + fiat_secp256k1_uint1 x710; + fiat_secp256k1_addcarryx_u32(&x709, &x710, x708, x691, x657); + uint32_t x711; + fiat_secp256k1_uint1 x712; + fiat_secp256k1_addcarryx_u32(&x711, &x712, x710, x693, x659); + uint32_t x713; + fiat_secp256k1_uint1 x714; + fiat_secp256k1_addcarryx_u32(&x713, &x714, x712, x695, x661); + uint32_t x715; + fiat_secp256k1_uint1 x716; + fiat_secp256k1_addcarryx_u32(&x715, &x716, x714, x697, x663); + uint32_t x717; + fiat_secp256k1_uint1 x718; + fiat_secp256k1_addcarryx_u32(&x717, &x718, x716, 0x0, x664); + uint32_t x719; + uint32_t x720; + fiat_secp256k1_mulx_u32(&x719, &x720, x7, (arg2[7])); + uint32_t x721; + uint32_t x722; + fiat_secp256k1_mulx_u32(&x721, &x722, x7, (arg2[6])); + uint32_t x723; + uint32_t x724; + fiat_secp256k1_mulx_u32(&x723, &x724, x7, (arg2[5])); + uint32_t x725; + uint32_t x726; + fiat_secp256k1_mulx_u32(&x725, &x726, x7, (arg2[4])); + uint32_t x727; + uint32_t x728; + fiat_secp256k1_mulx_u32(&x727, &x728, x7, (arg2[3])); + uint32_t x729; + uint32_t x730; + fiat_secp256k1_mulx_u32(&x729, &x730, x7, (arg2[2])); + uint32_t x731; + uint32_t x732; + fiat_secp256k1_mulx_u32(&x731, &x732, x7, (arg2[1])); + uint32_t x733; + uint32_t x734; + fiat_secp256k1_mulx_u32(&x733, &x734, x7, (arg2[0])); + uint32_t x735; + fiat_secp256k1_uint1 x736; + fiat_secp256k1_addcarryx_u32(&x735, &x736, 0x0, x731, x734); + uint32_t x737; + fiat_secp256k1_uint1 x738; + fiat_secp256k1_addcarryx_u32(&x737, &x738, x736, x729, x732); + uint32_t x739; + fiat_secp256k1_uint1 x740; + fiat_secp256k1_addcarryx_u32(&x739, &x740, x738, x727, x730); + uint32_t x741; + fiat_secp256k1_uint1 x742; + fiat_secp256k1_addcarryx_u32(&x741, &x742, x740, x725, x728); + uint32_t x743; + fiat_secp256k1_uint1 x744; + fiat_secp256k1_addcarryx_u32(&x743, &x744, x742, x723, x726); + uint32_t x745; + fiat_secp256k1_uint1 x746; + fiat_secp256k1_addcarryx_u32(&x745, &x746, x744, x721, x724); + uint32_t x747; + fiat_secp256k1_uint1 x748; + fiat_secp256k1_addcarryx_u32(&x747, &x748, x746, x719, x722); + uint32_t x749; + fiat_secp256k1_uint1 x750; + fiat_secp256k1_addcarryx_u32(&x749, &x750, x748, 0x0, x720); + uint32_t x751; + fiat_secp256k1_uint1 x752; + fiat_secp256k1_addcarryx_u32(&x751, &x752, 0x0, x733, x701); + uint32_t x753; + fiat_secp256k1_uint1 x754; + fiat_secp256k1_addcarryx_u32(&x753, &x754, x752, x735, x703); + uint32_t x755; + fiat_secp256k1_uint1 x756; + fiat_secp256k1_addcarryx_u32(&x755, &x756, x754, x737, x705); + uint32_t x757; + fiat_secp256k1_uint1 x758; + fiat_secp256k1_addcarryx_u32(&x757, &x758, x756, x739, x707); + uint32_t x759; + fiat_secp256k1_uint1 x760; + fiat_secp256k1_addcarryx_u32(&x759, &x760, x758, x741, x709); + uint32_t x761; + fiat_secp256k1_uint1 x762; + fiat_secp256k1_addcarryx_u32(&x761, &x762, x760, x743, x711); + uint32_t x763; + fiat_secp256k1_uint1 x764; + fiat_secp256k1_addcarryx_u32(&x763, &x764, x762, x745, x713); + uint32_t x765; + fiat_secp256k1_uint1 x766; + fiat_secp256k1_addcarryx_u32(&x765, &x766, x764, x747, x715); + uint32_t x767; + fiat_secp256k1_uint1 x768; + fiat_secp256k1_addcarryx_u32(&x767, &x768, x766, x749, x717); + uint32_t x769; + uint32_t x770; + fiat_secp256k1_mulx_u32(&x769, &x770, x751, UINT32_C(0xd2253531)); + uint32_t x771; + uint32_t x772; + fiat_secp256k1_mulx_u32(&x771, &x772, x769, UINT32_C(0xffffffff)); + uint32_t x773; + uint32_t x774; + fiat_secp256k1_mulx_u32(&x773, &x774, x769, UINT32_C(0xffffffff)); + uint32_t x775; + uint32_t x776; + fiat_secp256k1_mulx_u32(&x775, &x776, x769, UINT32_C(0xffffffff)); + uint32_t x777; + uint32_t x778; + fiat_secp256k1_mulx_u32(&x777, &x778, x769, UINT32_C(0xffffffff)); + uint32_t x779; + uint32_t x780; + fiat_secp256k1_mulx_u32(&x779, &x780, x769, UINT32_C(0xffffffff)); + uint32_t x781; + uint32_t x782; + fiat_secp256k1_mulx_u32(&x781, &x782, x769, UINT32_C(0xffffffff)); + uint32_t x783; + uint32_t x784; + fiat_secp256k1_mulx_u32(&x783, &x784, x769, UINT32_C(0xfffffffe)); + uint32_t x785; + uint32_t x786; + fiat_secp256k1_mulx_u32(&x785, &x786, x769, UINT32_C(0xfffffc2f)); + uint32_t x787; + fiat_secp256k1_uint1 x788; + fiat_secp256k1_addcarryx_u32(&x787, &x788, 0x0, x783, x786); + uint32_t x789; + fiat_secp256k1_uint1 x790; + fiat_secp256k1_addcarryx_u32(&x789, &x790, x788, x781, x784); + uint32_t x791; + fiat_secp256k1_uint1 x792; + fiat_secp256k1_addcarryx_u32(&x791, &x792, x790, x779, x782); + uint32_t x793; + fiat_secp256k1_uint1 x794; + fiat_secp256k1_addcarryx_u32(&x793, &x794, x792, x777, x780); + uint32_t x795; + fiat_secp256k1_uint1 x796; + fiat_secp256k1_addcarryx_u32(&x795, &x796, x794, x775, x778); + uint32_t x797; + fiat_secp256k1_uint1 x798; + fiat_secp256k1_addcarryx_u32(&x797, &x798, x796, x773, x776); + uint32_t x799; + fiat_secp256k1_uint1 x800; + fiat_secp256k1_addcarryx_u32(&x799, &x800, x798, x771, x774); + uint32_t x801; + fiat_secp256k1_uint1 x802; + fiat_secp256k1_addcarryx_u32(&x801, &x802, x800, 0x0, x772); + uint32_t x803; + fiat_secp256k1_uint1 x804; + fiat_secp256k1_addcarryx_u32(&x803, &x804, 0x0, x785, x751); + uint32_t x805; + fiat_secp256k1_uint1 x806; + fiat_secp256k1_addcarryx_u32(&x805, &x806, x804, x787, x753); + uint32_t x807; + fiat_secp256k1_uint1 x808; + fiat_secp256k1_addcarryx_u32(&x807, &x808, x806, x789, x755); + uint32_t x809; + fiat_secp256k1_uint1 x810; + fiat_secp256k1_addcarryx_u32(&x809, &x810, x808, x791, x757); + uint32_t x811; + fiat_secp256k1_uint1 x812; + fiat_secp256k1_addcarryx_u32(&x811, &x812, x810, x793, x759); + uint32_t x813; + fiat_secp256k1_uint1 x814; + fiat_secp256k1_addcarryx_u32(&x813, &x814, x812, x795, x761); + uint32_t x815; + fiat_secp256k1_uint1 x816; + fiat_secp256k1_addcarryx_u32(&x815, &x816, x814, x797, x763); + uint32_t x817; + fiat_secp256k1_uint1 x818; + fiat_secp256k1_addcarryx_u32(&x817, &x818, x816, x799, x765); + uint32_t x819; + fiat_secp256k1_uint1 x820; + fiat_secp256k1_addcarryx_u32(&x819, &x820, x818, x801, x767); + uint32_t x821; + fiat_secp256k1_uint1 x822; + fiat_secp256k1_addcarryx_u32(&x821, &x822, x820, 0x0, x768); + uint32_t x823; + fiat_secp256k1_uint1 x824; + fiat_secp256k1_subborrowx_u32(&x823, &x824, 0x0, x805, UINT32_C(0xfffffc2f)); + uint32_t x825; + fiat_secp256k1_uint1 x826; + fiat_secp256k1_subborrowx_u32(&x825, &x826, x824, x807, UINT32_C(0xfffffffe)); + uint32_t x827; + fiat_secp256k1_uint1 x828; + fiat_secp256k1_subborrowx_u32(&x827, &x828, x826, x809, UINT32_C(0xffffffff)); + uint32_t x829; + fiat_secp256k1_uint1 x830; + fiat_secp256k1_subborrowx_u32(&x829, &x830, x828, x811, UINT32_C(0xffffffff)); + uint32_t x831; + fiat_secp256k1_uint1 x832; + fiat_secp256k1_subborrowx_u32(&x831, &x832, x830, x813, UINT32_C(0xffffffff)); + uint32_t x833; + fiat_secp256k1_uint1 x834; + fiat_secp256k1_subborrowx_u32(&x833, &x834, x832, x815, UINT32_C(0xffffffff)); + uint32_t x835; + fiat_secp256k1_uint1 x836; + fiat_secp256k1_subborrowx_u32(&x835, &x836, x834, x817, UINT32_C(0xffffffff)); + uint32_t x837; + fiat_secp256k1_uint1 x838; + fiat_secp256k1_subborrowx_u32(&x837, &x838, x836, x819, UINT32_C(0xffffffff)); + uint32_t x839; + fiat_secp256k1_uint1 x840; + fiat_secp256k1_subborrowx_u32(&x839, &x840, x838, x821, 0x0); + uint32_t x841; + fiat_secp256k1_cmovznz_u32(&x841, x840, x823, x805); + uint32_t x842; + fiat_secp256k1_cmovznz_u32(&x842, x840, x825, x807); + uint32_t x843; + fiat_secp256k1_cmovznz_u32(&x843, x840, x827, x809); + uint32_t x844; + fiat_secp256k1_cmovznz_u32(&x844, x840, x829, x811); + uint32_t x845; + fiat_secp256k1_cmovznz_u32(&x845, x840, x831, x813); + uint32_t x846; + fiat_secp256k1_cmovznz_u32(&x846, x840, x833, x815); + uint32_t x847; + fiat_secp256k1_cmovznz_u32(&x847, x840, x835, x817); + uint32_t x848; + fiat_secp256k1_cmovznz_u32(&x848, x840, x837, x819); + out1[0] = x841; + out1[1] = x842; + out1[2] = x843; + out1[3] = x844; + out1[4] = x845; + out1[5] = x846; + out1[6] = x847; + out1[7] = x848; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_square(uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1 = (arg1[1]); + uint32_t x2 = (arg1[2]); + uint32_t x3 = (arg1[3]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[5]); + uint32_t x6 = (arg1[6]); + uint32_t x7 = (arg1[7]); + uint32_t x8 = (arg1[0]); + uint32_t x9; + uint32_t x10; + fiat_secp256k1_mulx_u32(&x9, &x10, x8, (arg1[7])); + uint32_t x11; + uint32_t x12; + fiat_secp256k1_mulx_u32(&x11, &x12, x8, (arg1[6])); + uint32_t x13; + uint32_t x14; + fiat_secp256k1_mulx_u32(&x13, &x14, x8, (arg1[5])); + uint32_t x15; + uint32_t x16; + fiat_secp256k1_mulx_u32(&x15, &x16, x8, (arg1[4])); + uint32_t x17; + uint32_t x18; + fiat_secp256k1_mulx_u32(&x17, &x18, x8, (arg1[3])); + uint32_t x19; + uint32_t x20; + fiat_secp256k1_mulx_u32(&x19, &x20, x8, (arg1[2])); + uint32_t x21; + uint32_t x22; + fiat_secp256k1_mulx_u32(&x21, &x22, x8, (arg1[1])); + uint32_t x23; + uint32_t x24; + fiat_secp256k1_mulx_u32(&x23, &x24, x8, (arg1[0])); + uint32_t x25; + fiat_secp256k1_uint1 x26; + fiat_secp256k1_addcarryx_u32(&x25, &x26, 0x0, x21, x24); + uint32_t x27; + fiat_secp256k1_uint1 x28; + fiat_secp256k1_addcarryx_u32(&x27, &x28, x26, x19, x22); + uint32_t x29; + fiat_secp256k1_uint1 x30; + fiat_secp256k1_addcarryx_u32(&x29, &x30, x28, x17, x20); + uint32_t x31; + fiat_secp256k1_uint1 x32; + fiat_secp256k1_addcarryx_u32(&x31, &x32, x30, x15, x18); + uint32_t x33; + fiat_secp256k1_uint1 x34; + fiat_secp256k1_addcarryx_u32(&x33, &x34, x32, x13, x16); + uint32_t x35; + fiat_secp256k1_uint1 x36; + fiat_secp256k1_addcarryx_u32(&x35, &x36, x34, x11, x14); + uint32_t x37; + fiat_secp256k1_uint1 x38; + fiat_secp256k1_addcarryx_u32(&x37, &x38, x36, x9, x12); + uint32_t x39; + fiat_secp256k1_uint1 x40; + fiat_secp256k1_addcarryx_u32(&x39, &x40, x38, 0x0, x10); + uint32_t x41; + uint32_t x42; + fiat_secp256k1_mulx_u32(&x41, &x42, x23, UINT32_C(0xd2253531)); + uint32_t x43; + uint32_t x44; + fiat_secp256k1_mulx_u32(&x43, &x44, x41, UINT32_C(0xffffffff)); + uint32_t x45; + uint32_t x46; + fiat_secp256k1_mulx_u32(&x45, &x46, x41, UINT32_C(0xffffffff)); + uint32_t x47; + uint32_t x48; + fiat_secp256k1_mulx_u32(&x47, &x48, x41, UINT32_C(0xffffffff)); + uint32_t x49; + uint32_t x50; + fiat_secp256k1_mulx_u32(&x49, &x50, x41, UINT32_C(0xffffffff)); + uint32_t x51; + uint32_t x52; + fiat_secp256k1_mulx_u32(&x51, &x52, x41, UINT32_C(0xffffffff)); + uint32_t x53; + uint32_t x54; + fiat_secp256k1_mulx_u32(&x53, &x54, x41, UINT32_C(0xffffffff)); + uint32_t x55; + uint32_t x56; + fiat_secp256k1_mulx_u32(&x55, &x56, x41, UINT32_C(0xfffffffe)); + uint32_t x57; + uint32_t x58; + fiat_secp256k1_mulx_u32(&x57, &x58, x41, UINT32_C(0xfffffc2f)); + uint32_t x59; + fiat_secp256k1_uint1 x60; + fiat_secp256k1_addcarryx_u32(&x59, &x60, 0x0, x55, x58); + uint32_t x61; + fiat_secp256k1_uint1 x62; + fiat_secp256k1_addcarryx_u32(&x61, &x62, x60, x53, x56); + uint32_t x63; + fiat_secp256k1_uint1 x64; + fiat_secp256k1_addcarryx_u32(&x63, &x64, x62, x51, x54); + uint32_t x65; + fiat_secp256k1_uint1 x66; + fiat_secp256k1_addcarryx_u32(&x65, &x66, x64, x49, x52); + uint32_t x67; + fiat_secp256k1_uint1 x68; + fiat_secp256k1_addcarryx_u32(&x67, &x68, x66, x47, x50); + uint32_t x69; + fiat_secp256k1_uint1 x70; + fiat_secp256k1_addcarryx_u32(&x69, &x70, x68, x45, x48); + uint32_t x71; + fiat_secp256k1_uint1 x72; + fiat_secp256k1_addcarryx_u32(&x71, &x72, x70, x43, x46); + uint32_t x73; + fiat_secp256k1_uint1 x74; + fiat_secp256k1_addcarryx_u32(&x73, &x74, x72, 0x0, x44); + uint32_t x75; + fiat_secp256k1_uint1 x76; + fiat_secp256k1_addcarryx_u32(&x75, &x76, 0x0, x57, x23); + uint32_t x77; + fiat_secp256k1_uint1 x78; + fiat_secp256k1_addcarryx_u32(&x77, &x78, x76, x59, x25); + uint32_t x79; + fiat_secp256k1_uint1 x80; + fiat_secp256k1_addcarryx_u32(&x79, &x80, x78, x61, x27); + uint32_t x81; + fiat_secp256k1_uint1 x82; + fiat_secp256k1_addcarryx_u32(&x81, &x82, x80, x63, x29); + uint32_t x83; + fiat_secp256k1_uint1 x84; + fiat_secp256k1_addcarryx_u32(&x83, &x84, x82, x65, x31); + uint32_t x85; + fiat_secp256k1_uint1 x86; + fiat_secp256k1_addcarryx_u32(&x85, &x86, x84, x67, x33); + uint32_t x87; + fiat_secp256k1_uint1 x88; + fiat_secp256k1_addcarryx_u32(&x87, &x88, x86, x69, x35); + uint32_t x89; + fiat_secp256k1_uint1 x90; + fiat_secp256k1_addcarryx_u32(&x89, &x90, x88, x71, x37); + uint32_t x91; + fiat_secp256k1_uint1 x92; + fiat_secp256k1_addcarryx_u32(&x91, &x92, x90, x73, x39); + uint32_t x93; + fiat_secp256k1_uint1 x94; + fiat_secp256k1_addcarryx_u32(&x93, &x94, x92, 0x0, 0x0); + uint32_t x95; + uint32_t x96; + fiat_secp256k1_mulx_u32(&x95, &x96, x1, (arg1[7])); + uint32_t x97; + uint32_t x98; + fiat_secp256k1_mulx_u32(&x97, &x98, x1, (arg1[6])); + uint32_t x99; + uint32_t x100; + fiat_secp256k1_mulx_u32(&x99, &x100, x1, (arg1[5])); + uint32_t x101; + uint32_t x102; + fiat_secp256k1_mulx_u32(&x101, &x102, x1, (arg1[4])); + uint32_t x103; + uint32_t x104; + fiat_secp256k1_mulx_u32(&x103, &x104, x1, (arg1[3])); + uint32_t x105; + uint32_t x106; + fiat_secp256k1_mulx_u32(&x105, &x106, x1, (arg1[2])); + uint32_t x107; + uint32_t x108; + fiat_secp256k1_mulx_u32(&x107, &x108, x1, (arg1[1])); + uint32_t x109; + uint32_t x110; + fiat_secp256k1_mulx_u32(&x109, &x110, x1, (arg1[0])); + uint32_t x111; + fiat_secp256k1_uint1 x112; + fiat_secp256k1_addcarryx_u32(&x111, &x112, 0x0, x107, x110); + uint32_t x113; + fiat_secp256k1_uint1 x114; + fiat_secp256k1_addcarryx_u32(&x113, &x114, x112, x105, x108); + uint32_t x115; + fiat_secp256k1_uint1 x116; + fiat_secp256k1_addcarryx_u32(&x115, &x116, x114, x103, x106); + uint32_t x117; + fiat_secp256k1_uint1 x118; + fiat_secp256k1_addcarryx_u32(&x117, &x118, x116, x101, x104); + uint32_t x119; + fiat_secp256k1_uint1 x120; + fiat_secp256k1_addcarryx_u32(&x119, &x120, x118, x99, x102); + uint32_t x121; + fiat_secp256k1_uint1 x122; + fiat_secp256k1_addcarryx_u32(&x121, &x122, x120, x97, x100); + uint32_t x123; + fiat_secp256k1_uint1 x124; + fiat_secp256k1_addcarryx_u32(&x123, &x124, x122, x95, x98); + uint32_t x125; + fiat_secp256k1_uint1 x126; + fiat_secp256k1_addcarryx_u32(&x125, &x126, x124, 0x0, x96); + uint32_t x127; + fiat_secp256k1_uint1 x128; + fiat_secp256k1_addcarryx_u32(&x127, &x128, 0x0, x109, x77); + uint32_t x129; + fiat_secp256k1_uint1 x130; + fiat_secp256k1_addcarryx_u32(&x129, &x130, x128, x111, x79); + uint32_t x131; + fiat_secp256k1_uint1 x132; + fiat_secp256k1_addcarryx_u32(&x131, &x132, x130, x113, x81); + uint32_t x133; + fiat_secp256k1_uint1 x134; + fiat_secp256k1_addcarryx_u32(&x133, &x134, x132, x115, x83); + uint32_t x135; + fiat_secp256k1_uint1 x136; + fiat_secp256k1_addcarryx_u32(&x135, &x136, x134, x117, x85); + uint32_t x137; + fiat_secp256k1_uint1 x138; + fiat_secp256k1_addcarryx_u32(&x137, &x138, x136, x119, x87); + uint32_t x139; + fiat_secp256k1_uint1 x140; + fiat_secp256k1_addcarryx_u32(&x139, &x140, x138, x121, x89); + uint32_t x141; + fiat_secp256k1_uint1 x142; + fiat_secp256k1_addcarryx_u32(&x141, &x142, x140, x123, x91); + uint32_t x143; + fiat_secp256k1_uint1 x144; + fiat_secp256k1_addcarryx_u32(&x143, &x144, x142, x125, (fiat_secp256k1_uint1)x93); + uint32_t x145; + uint32_t x146; + fiat_secp256k1_mulx_u32(&x145, &x146, x127, UINT32_C(0xd2253531)); + uint32_t x147; + uint32_t x148; + fiat_secp256k1_mulx_u32(&x147, &x148, x145, UINT32_C(0xffffffff)); + uint32_t x149; + uint32_t x150; + fiat_secp256k1_mulx_u32(&x149, &x150, x145, UINT32_C(0xffffffff)); + uint32_t x151; + uint32_t x152; + fiat_secp256k1_mulx_u32(&x151, &x152, x145, UINT32_C(0xffffffff)); + uint32_t x153; + uint32_t x154; + fiat_secp256k1_mulx_u32(&x153, &x154, x145, UINT32_C(0xffffffff)); + uint32_t x155; + uint32_t x156; + fiat_secp256k1_mulx_u32(&x155, &x156, x145, UINT32_C(0xffffffff)); + uint32_t x157; + uint32_t x158; + fiat_secp256k1_mulx_u32(&x157, &x158, x145, UINT32_C(0xffffffff)); + uint32_t x159; + uint32_t x160; + fiat_secp256k1_mulx_u32(&x159, &x160, x145, UINT32_C(0xfffffffe)); + uint32_t x161; + uint32_t x162; + fiat_secp256k1_mulx_u32(&x161, &x162, x145, UINT32_C(0xfffffc2f)); + uint32_t x163; + fiat_secp256k1_uint1 x164; + fiat_secp256k1_addcarryx_u32(&x163, &x164, 0x0, x159, x162); + uint32_t x165; + fiat_secp256k1_uint1 x166; + fiat_secp256k1_addcarryx_u32(&x165, &x166, x164, x157, x160); + uint32_t x167; + fiat_secp256k1_uint1 x168; + fiat_secp256k1_addcarryx_u32(&x167, &x168, x166, x155, x158); + uint32_t x169; + fiat_secp256k1_uint1 x170; + fiat_secp256k1_addcarryx_u32(&x169, &x170, x168, x153, x156); + uint32_t x171; + fiat_secp256k1_uint1 x172; + fiat_secp256k1_addcarryx_u32(&x171, &x172, x170, x151, x154); + uint32_t x173; + fiat_secp256k1_uint1 x174; + fiat_secp256k1_addcarryx_u32(&x173, &x174, x172, x149, x152); + uint32_t x175; + fiat_secp256k1_uint1 x176; + fiat_secp256k1_addcarryx_u32(&x175, &x176, x174, x147, x150); + uint32_t x177; + fiat_secp256k1_uint1 x178; + fiat_secp256k1_addcarryx_u32(&x177, &x178, x176, 0x0, x148); + uint32_t x179; + fiat_secp256k1_uint1 x180; + fiat_secp256k1_addcarryx_u32(&x179, &x180, 0x0, x161, x127); + uint32_t x181; + fiat_secp256k1_uint1 x182; + fiat_secp256k1_addcarryx_u32(&x181, &x182, x180, x163, x129); + uint32_t x183; + fiat_secp256k1_uint1 x184; + fiat_secp256k1_addcarryx_u32(&x183, &x184, x182, x165, x131); + uint32_t x185; + fiat_secp256k1_uint1 x186; + fiat_secp256k1_addcarryx_u32(&x185, &x186, x184, x167, x133); + uint32_t x187; + fiat_secp256k1_uint1 x188; + fiat_secp256k1_addcarryx_u32(&x187, &x188, x186, x169, x135); + uint32_t x189; + fiat_secp256k1_uint1 x190; + fiat_secp256k1_addcarryx_u32(&x189, &x190, x188, x171, x137); + uint32_t x191; + fiat_secp256k1_uint1 x192; + fiat_secp256k1_addcarryx_u32(&x191, &x192, x190, x173, x139); + uint32_t x193; + fiat_secp256k1_uint1 x194; + fiat_secp256k1_addcarryx_u32(&x193, &x194, x192, x175, x141); + uint32_t x195; + fiat_secp256k1_uint1 x196; + fiat_secp256k1_addcarryx_u32(&x195, &x196, x194, x177, x143); + uint32_t x197; + fiat_secp256k1_uint1 x198; + fiat_secp256k1_addcarryx_u32(&x197, &x198, x196, 0x0, x144); + uint32_t x199; + uint32_t x200; + fiat_secp256k1_mulx_u32(&x199, &x200, x2, (arg1[7])); + uint32_t x201; + uint32_t x202; + fiat_secp256k1_mulx_u32(&x201, &x202, x2, (arg1[6])); + uint32_t x203; + uint32_t x204; + fiat_secp256k1_mulx_u32(&x203, &x204, x2, (arg1[5])); + uint32_t x205; + uint32_t x206; + fiat_secp256k1_mulx_u32(&x205, &x206, x2, (arg1[4])); + uint32_t x207; + uint32_t x208; + fiat_secp256k1_mulx_u32(&x207, &x208, x2, (arg1[3])); + uint32_t x209; + uint32_t x210; + fiat_secp256k1_mulx_u32(&x209, &x210, x2, (arg1[2])); + uint32_t x211; + uint32_t x212; + fiat_secp256k1_mulx_u32(&x211, &x212, x2, (arg1[1])); + uint32_t x213; + uint32_t x214; + fiat_secp256k1_mulx_u32(&x213, &x214, x2, (arg1[0])); + uint32_t x215; + fiat_secp256k1_uint1 x216; + fiat_secp256k1_addcarryx_u32(&x215, &x216, 0x0, x211, x214); + uint32_t x217; + fiat_secp256k1_uint1 x218; + fiat_secp256k1_addcarryx_u32(&x217, &x218, x216, x209, x212); + uint32_t x219; + fiat_secp256k1_uint1 x220; + fiat_secp256k1_addcarryx_u32(&x219, &x220, x218, x207, x210); + uint32_t x221; + fiat_secp256k1_uint1 x222; + fiat_secp256k1_addcarryx_u32(&x221, &x222, x220, x205, x208); + uint32_t x223; + fiat_secp256k1_uint1 x224; + fiat_secp256k1_addcarryx_u32(&x223, &x224, x222, x203, x206); + uint32_t x225; + fiat_secp256k1_uint1 x226; + fiat_secp256k1_addcarryx_u32(&x225, &x226, x224, x201, x204); + uint32_t x227; + fiat_secp256k1_uint1 x228; + fiat_secp256k1_addcarryx_u32(&x227, &x228, x226, x199, x202); + uint32_t x229; + fiat_secp256k1_uint1 x230; + fiat_secp256k1_addcarryx_u32(&x229, &x230, x228, 0x0, x200); + uint32_t x231; + fiat_secp256k1_uint1 x232; + fiat_secp256k1_addcarryx_u32(&x231, &x232, 0x0, x213, x181); + uint32_t x233; + fiat_secp256k1_uint1 x234; + fiat_secp256k1_addcarryx_u32(&x233, &x234, x232, x215, x183); + uint32_t x235; + fiat_secp256k1_uint1 x236; + fiat_secp256k1_addcarryx_u32(&x235, &x236, x234, x217, x185); + uint32_t x237; + fiat_secp256k1_uint1 x238; + fiat_secp256k1_addcarryx_u32(&x237, &x238, x236, x219, x187); + uint32_t x239; + fiat_secp256k1_uint1 x240; + fiat_secp256k1_addcarryx_u32(&x239, &x240, x238, x221, x189); + uint32_t x241; + fiat_secp256k1_uint1 x242; + fiat_secp256k1_addcarryx_u32(&x241, &x242, x240, x223, x191); + uint32_t x243; + fiat_secp256k1_uint1 x244; + fiat_secp256k1_addcarryx_u32(&x243, &x244, x242, x225, x193); + uint32_t x245; + fiat_secp256k1_uint1 x246; + fiat_secp256k1_addcarryx_u32(&x245, &x246, x244, x227, x195); + uint32_t x247; + fiat_secp256k1_uint1 x248; + fiat_secp256k1_addcarryx_u32(&x247, &x248, x246, x229, x197); + uint32_t x249; + uint32_t x250; + fiat_secp256k1_mulx_u32(&x249, &x250, x231, UINT32_C(0xd2253531)); + uint32_t x251; + uint32_t x252; + fiat_secp256k1_mulx_u32(&x251, &x252, x249, UINT32_C(0xffffffff)); + uint32_t x253; + uint32_t x254; + fiat_secp256k1_mulx_u32(&x253, &x254, x249, UINT32_C(0xffffffff)); + uint32_t x255; + uint32_t x256; + fiat_secp256k1_mulx_u32(&x255, &x256, x249, UINT32_C(0xffffffff)); + uint32_t x257; + uint32_t x258; + fiat_secp256k1_mulx_u32(&x257, &x258, x249, UINT32_C(0xffffffff)); + uint32_t x259; + uint32_t x260; + fiat_secp256k1_mulx_u32(&x259, &x260, x249, UINT32_C(0xffffffff)); + uint32_t x261; + uint32_t x262; + fiat_secp256k1_mulx_u32(&x261, &x262, x249, UINT32_C(0xffffffff)); + uint32_t x263; + uint32_t x264; + fiat_secp256k1_mulx_u32(&x263, &x264, x249, UINT32_C(0xfffffffe)); + uint32_t x265; + uint32_t x266; + fiat_secp256k1_mulx_u32(&x265, &x266, x249, UINT32_C(0xfffffc2f)); + uint32_t x267; + fiat_secp256k1_uint1 x268; + fiat_secp256k1_addcarryx_u32(&x267, &x268, 0x0, x263, x266); + uint32_t x269; + fiat_secp256k1_uint1 x270; + fiat_secp256k1_addcarryx_u32(&x269, &x270, x268, x261, x264); + uint32_t x271; + fiat_secp256k1_uint1 x272; + fiat_secp256k1_addcarryx_u32(&x271, &x272, x270, x259, x262); + uint32_t x273; + fiat_secp256k1_uint1 x274; + fiat_secp256k1_addcarryx_u32(&x273, &x274, x272, x257, x260); + uint32_t x275; + fiat_secp256k1_uint1 x276; + fiat_secp256k1_addcarryx_u32(&x275, &x276, x274, x255, x258); + uint32_t x277; + fiat_secp256k1_uint1 x278; + fiat_secp256k1_addcarryx_u32(&x277, &x278, x276, x253, x256); + uint32_t x279; + fiat_secp256k1_uint1 x280; + fiat_secp256k1_addcarryx_u32(&x279, &x280, x278, x251, x254); + uint32_t x281; + fiat_secp256k1_uint1 x282; + fiat_secp256k1_addcarryx_u32(&x281, &x282, x280, 0x0, x252); + uint32_t x283; + fiat_secp256k1_uint1 x284; + fiat_secp256k1_addcarryx_u32(&x283, &x284, 0x0, x265, x231); + uint32_t x285; + fiat_secp256k1_uint1 x286; + fiat_secp256k1_addcarryx_u32(&x285, &x286, x284, x267, x233); + uint32_t x287; + fiat_secp256k1_uint1 x288; + fiat_secp256k1_addcarryx_u32(&x287, &x288, x286, x269, x235); + uint32_t x289; + fiat_secp256k1_uint1 x290; + fiat_secp256k1_addcarryx_u32(&x289, &x290, x288, x271, x237); + uint32_t x291; + fiat_secp256k1_uint1 x292; + fiat_secp256k1_addcarryx_u32(&x291, &x292, x290, x273, x239); + uint32_t x293; + fiat_secp256k1_uint1 x294; + fiat_secp256k1_addcarryx_u32(&x293, &x294, x292, x275, x241); + uint32_t x295; + fiat_secp256k1_uint1 x296; + fiat_secp256k1_addcarryx_u32(&x295, &x296, x294, x277, x243); + uint32_t x297; + fiat_secp256k1_uint1 x298; + fiat_secp256k1_addcarryx_u32(&x297, &x298, x296, x279, x245); + uint32_t x299; + fiat_secp256k1_uint1 x300; + fiat_secp256k1_addcarryx_u32(&x299, &x300, x298, x281, x247); + uint32_t x301; + fiat_secp256k1_uint1 x302; + fiat_secp256k1_addcarryx_u32(&x301, &x302, x300, 0x0, x248); + uint32_t x303; + uint32_t x304; + fiat_secp256k1_mulx_u32(&x303, &x304, x3, (arg1[7])); + uint32_t x305; + uint32_t x306; + fiat_secp256k1_mulx_u32(&x305, &x306, x3, (arg1[6])); + uint32_t x307; + uint32_t x308; + fiat_secp256k1_mulx_u32(&x307, &x308, x3, (arg1[5])); + uint32_t x309; + uint32_t x310; + fiat_secp256k1_mulx_u32(&x309, &x310, x3, (arg1[4])); + uint32_t x311; + uint32_t x312; + fiat_secp256k1_mulx_u32(&x311, &x312, x3, (arg1[3])); + uint32_t x313; + uint32_t x314; + fiat_secp256k1_mulx_u32(&x313, &x314, x3, (arg1[2])); + uint32_t x315; + uint32_t x316; + fiat_secp256k1_mulx_u32(&x315, &x316, x3, (arg1[1])); + uint32_t x317; + uint32_t x318; + fiat_secp256k1_mulx_u32(&x317, &x318, x3, (arg1[0])); + uint32_t x319; + fiat_secp256k1_uint1 x320; + fiat_secp256k1_addcarryx_u32(&x319, &x320, 0x0, x315, x318); + uint32_t x321; + fiat_secp256k1_uint1 x322; + fiat_secp256k1_addcarryx_u32(&x321, &x322, x320, x313, x316); + uint32_t x323; + fiat_secp256k1_uint1 x324; + fiat_secp256k1_addcarryx_u32(&x323, &x324, x322, x311, x314); + uint32_t x325; + fiat_secp256k1_uint1 x326; + fiat_secp256k1_addcarryx_u32(&x325, &x326, x324, x309, x312); + uint32_t x327; + fiat_secp256k1_uint1 x328; + fiat_secp256k1_addcarryx_u32(&x327, &x328, x326, x307, x310); + uint32_t x329; + fiat_secp256k1_uint1 x330; + fiat_secp256k1_addcarryx_u32(&x329, &x330, x328, x305, x308); + uint32_t x331; + fiat_secp256k1_uint1 x332; + fiat_secp256k1_addcarryx_u32(&x331, &x332, x330, x303, x306); + uint32_t x333; + fiat_secp256k1_uint1 x334; + fiat_secp256k1_addcarryx_u32(&x333, &x334, x332, 0x0, x304); + uint32_t x335; + fiat_secp256k1_uint1 x336; + fiat_secp256k1_addcarryx_u32(&x335, &x336, 0x0, x317, x285); + uint32_t x337; + fiat_secp256k1_uint1 x338; + fiat_secp256k1_addcarryx_u32(&x337, &x338, x336, x319, x287); + uint32_t x339; + fiat_secp256k1_uint1 x340; + fiat_secp256k1_addcarryx_u32(&x339, &x340, x338, x321, x289); + uint32_t x341; + fiat_secp256k1_uint1 x342; + fiat_secp256k1_addcarryx_u32(&x341, &x342, x340, x323, x291); + uint32_t x343; + fiat_secp256k1_uint1 x344; + fiat_secp256k1_addcarryx_u32(&x343, &x344, x342, x325, x293); + uint32_t x345; + fiat_secp256k1_uint1 x346; + fiat_secp256k1_addcarryx_u32(&x345, &x346, x344, x327, x295); + uint32_t x347; + fiat_secp256k1_uint1 x348; + fiat_secp256k1_addcarryx_u32(&x347, &x348, x346, x329, x297); + uint32_t x349; + fiat_secp256k1_uint1 x350; + fiat_secp256k1_addcarryx_u32(&x349, &x350, x348, x331, x299); + uint32_t x351; + fiat_secp256k1_uint1 x352; + fiat_secp256k1_addcarryx_u32(&x351, &x352, x350, x333, x301); + uint32_t x353; + uint32_t x354; + fiat_secp256k1_mulx_u32(&x353, &x354, x335, UINT32_C(0xd2253531)); + uint32_t x355; + uint32_t x356; + fiat_secp256k1_mulx_u32(&x355, &x356, x353, UINT32_C(0xffffffff)); + uint32_t x357; + uint32_t x358; + fiat_secp256k1_mulx_u32(&x357, &x358, x353, UINT32_C(0xffffffff)); + uint32_t x359; + uint32_t x360; + fiat_secp256k1_mulx_u32(&x359, &x360, x353, UINT32_C(0xffffffff)); + uint32_t x361; + uint32_t x362; + fiat_secp256k1_mulx_u32(&x361, &x362, x353, UINT32_C(0xffffffff)); + uint32_t x363; + uint32_t x364; + fiat_secp256k1_mulx_u32(&x363, &x364, x353, UINT32_C(0xffffffff)); + uint32_t x365; + uint32_t x366; + fiat_secp256k1_mulx_u32(&x365, &x366, x353, UINT32_C(0xffffffff)); + uint32_t x367; + uint32_t x368; + fiat_secp256k1_mulx_u32(&x367, &x368, x353, UINT32_C(0xfffffffe)); + uint32_t x369; + uint32_t x370; + fiat_secp256k1_mulx_u32(&x369, &x370, x353, UINT32_C(0xfffffc2f)); + uint32_t x371; + fiat_secp256k1_uint1 x372; + fiat_secp256k1_addcarryx_u32(&x371, &x372, 0x0, x367, x370); + uint32_t x373; + fiat_secp256k1_uint1 x374; + fiat_secp256k1_addcarryx_u32(&x373, &x374, x372, x365, x368); + uint32_t x375; + fiat_secp256k1_uint1 x376; + fiat_secp256k1_addcarryx_u32(&x375, &x376, x374, x363, x366); + uint32_t x377; + fiat_secp256k1_uint1 x378; + fiat_secp256k1_addcarryx_u32(&x377, &x378, x376, x361, x364); + uint32_t x379; + fiat_secp256k1_uint1 x380; + fiat_secp256k1_addcarryx_u32(&x379, &x380, x378, x359, x362); + uint32_t x381; + fiat_secp256k1_uint1 x382; + fiat_secp256k1_addcarryx_u32(&x381, &x382, x380, x357, x360); + uint32_t x383; + fiat_secp256k1_uint1 x384; + fiat_secp256k1_addcarryx_u32(&x383, &x384, x382, x355, x358); + uint32_t x385; + fiat_secp256k1_uint1 x386; + fiat_secp256k1_addcarryx_u32(&x385, &x386, x384, 0x0, x356); + uint32_t x387; + fiat_secp256k1_uint1 x388; + fiat_secp256k1_addcarryx_u32(&x387, &x388, 0x0, x369, x335); + uint32_t x389; + fiat_secp256k1_uint1 x390; + fiat_secp256k1_addcarryx_u32(&x389, &x390, x388, x371, x337); + uint32_t x391; + fiat_secp256k1_uint1 x392; + fiat_secp256k1_addcarryx_u32(&x391, &x392, x390, x373, x339); + uint32_t x393; + fiat_secp256k1_uint1 x394; + fiat_secp256k1_addcarryx_u32(&x393, &x394, x392, x375, x341); + uint32_t x395; + fiat_secp256k1_uint1 x396; + fiat_secp256k1_addcarryx_u32(&x395, &x396, x394, x377, x343); + uint32_t x397; + fiat_secp256k1_uint1 x398; + fiat_secp256k1_addcarryx_u32(&x397, &x398, x396, x379, x345); + uint32_t x399; + fiat_secp256k1_uint1 x400; + fiat_secp256k1_addcarryx_u32(&x399, &x400, x398, x381, x347); + uint32_t x401; + fiat_secp256k1_uint1 x402; + fiat_secp256k1_addcarryx_u32(&x401, &x402, x400, x383, x349); + uint32_t x403; + fiat_secp256k1_uint1 x404; + fiat_secp256k1_addcarryx_u32(&x403, &x404, x402, x385, x351); + uint32_t x405; + fiat_secp256k1_uint1 x406; + fiat_secp256k1_addcarryx_u32(&x405, &x406, x404, 0x0, x352); + uint32_t x407; + uint32_t x408; + fiat_secp256k1_mulx_u32(&x407, &x408, x4, (arg1[7])); + uint32_t x409; + uint32_t x410; + fiat_secp256k1_mulx_u32(&x409, &x410, x4, (arg1[6])); + uint32_t x411; + uint32_t x412; + fiat_secp256k1_mulx_u32(&x411, &x412, x4, (arg1[5])); + uint32_t x413; + uint32_t x414; + fiat_secp256k1_mulx_u32(&x413, &x414, x4, (arg1[4])); + uint32_t x415; + uint32_t x416; + fiat_secp256k1_mulx_u32(&x415, &x416, x4, (arg1[3])); + uint32_t x417; + uint32_t x418; + fiat_secp256k1_mulx_u32(&x417, &x418, x4, (arg1[2])); + uint32_t x419; + uint32_t x420; + fiat_secp256k1_mulx_u32(&x419, &x420, x4, (arg1[1])); + uint32_t x421; + uint32_t x422; + fiat_secp256k1_mulx_u32(&x421, &x422, x4, (arg1[0])); + uint32_t x423; + fiat_secp256k1_uint1 x424; + fiat_secp256k1_addcarryx_u32(&x423, &x424, 0x0, x419, x422); + uint32_t x425; + fiat_secp256k1_uint1 x426; + fiat_secp256k1_addcarryx_u32(&x425, &x426, x424, x417, x420); + uint32_t x427; + fiat_secp256k1_uint1 x428; + fiat_secp256k1_addcarryx_u32(&x427, &x428, x426, x415, x418); + uint32_t x429; + fiat_secp256k1_uint1 x430; + fiat_secp256k1_addcarryx_u32(&x429, &x430, x428, x413, x416); + uint32_t x431; + fiat_secp256k1_uint1 x432; + fiat_secp256k1_addcarryx_u32(&x431, &x432, x430, x411, x414); + uint32_t x433; + fiat_secp256k1_uint1 x434; + fiat_secp256k1_addcarryx_u32(&x433, &x434, x432, x409, x412); + uint32_t x435; + fiat_secp256k1_uint1 x436; + fiat_secp256k1_addcarryx_u32(&x435, &x436, x434, x407, x410); + uint32_t x437; + fiat_secp256k1_uint1 x438; + fiat_secp256k1_addcarryx_u32(&x437, &x438, x436, 0x0, x408); + uint32_t x439; + fiat_secp256k1_uint1 x440; + fiat_secp256k1_addcarryx_u32(&x439, &x440, 0x0, x421, x389); + uint32_t x441; + fiat_secp256k1_uint1 x442; + fiat_secp256k1_addcarryx_u32(&x441, &x442, x440, x423, x391); + uint32_t x443; + fiat_secp256k1_uint1 x444; + fiat_secp256k1_addcarryx_u32(&x443, &x444, x442, x425, x393); + uint32_t x445; + fiat_secp256k1_uint1 x446; + fiat_secp256k1_addcarryx_u32(&x445, &x446, x444, x427, x395); + uint32_t x447; + fiat_secp256k1_uint1 x448; + fiat_secp256k1_addcarryx_u32(&x447, &x448, x446, x429, x397); + uint32_t x449; + fiat_secp256k1_uint1 x450; + fiat_secp256k1_addcarryx_u32(&x449, &x450, x448, x431, x399); + uint32_t x451; + fiat_secp256k1_uint1 x452; + fiat_secp256k1_addcarryx_u32(&x451, &x452, x450, x433, x401); + uint32_t x453; + fiat_secp256k1_uint1 x454; + fiat_secp256k1_addcarryx_u32(&x453, &x454, x452, x435, x403); + uint32_t x455; + fiat_secp256k1_uint1 x456; + fiat_secp256k1_addcarryx_u32(&x455, &x456, x454, x437, x405); + uint32_t x457; + uint32_t x458; + fiat_secp256k1_mulx_u32(&x457, &x458, x439, UINT32_C(0xd2253531)); + uint32_t x459; + uint32_t x460; + fiat_secp256k1_mulx_u32(&x459, &x460, x457, UINT32_C(0xffffffff)); + uint32_t x461; + uint32_t x462; + fiat_secp256k1_mulx_u32(&x461, &x462, x457, UINT32_C(0xffffffff)); + uint32_t x463; + uint32_t x464; + fiat_secp256k1_mulx_u32(&x463, &x464, x457, UINT32_C(0xffffffff)); + uint32_t x465; + uint32_t x466; + fiat_secp256k1_mulx_u32(&x465, &x466, x457, UINT32_C(0xffffffff)); + uint32_t x467; + uint32_t x468; + fiat_secp256k1_mulx_u32(&x467, &x468, x457, UINT32_C(0xffffffff)); + uint32_t x469; + uint32_t x470; + fiat_secp256k1_mulx_u32(&x469, &x470, x457, UINT32_C(0xffffffff)); + uint32_t x471; + uint32_t x472; + fiat_secp256k1_mulx_u32(&x471, &x472, x457, UINT32_C(0xfffffffe)); + uint32_t x473; + uint32_t x474; + fiat_secp256k1_mulx_u32(&x473, &x474, x457, UINT32_C(0xfffffc2f)); + uint32_t x475; + fiat_secp256k1_uint1 x476; + fiat_secp256k1_addcarryx_u32(&x475, &x476, 0x0, x471, x474); + uint32_t x477; + fiat_secp256k1_uint1 x478; + fiat_secp256k1_addcarryx_u32(&x477, &x478, x476, x469, x472); + uint32_t x479; + fiat_secp256k1_uint1 x480; + fiat_secp256k1_addcarryx_u32(&x479, &x480, x478, x467, x470); + uint32_t x481; + fiat_secp256k1_uint1 x482; + fiat_secp256k1_addcarryx_u32(&x481, &x482, x480, x465, x468); + uint32_t x483; + fiat_secp256k1_uint1 x484; + fiat_secp256k1_addcarryx_u32(&x483, &x484, x482, x463, x466); + uint32_t x485; + fiat_secp256k1_uint1 x486; + fiat_secp256k1_addcarryx_u32(&x485, &x486, x484, x461, x464); + uint32_t x487; + fiat_secp256k1_uint1 x488; + fiat_secp256k1_addcarryx_u32(&x487, &x488, x486, x459, x462); + uint32_t x489; + fiat_secp256k1_uint1 x490; + fiat_secp256k1_addcarryx_u32(&x489, &x490, x488, 0x0, x460); + uint32_t x491; + fiat_secp256k1_uint1 x492; + fiat_secp256k1_addcarryx_u32(&x491, &x492, 0x0, x473, x439); + uint32_t x493; + fiat_secp256k1_uint1 x494; + fiat_secp256k1_addcarryx_u32(&x493, &x494, x492, x475, x441); + uint32_t x495; + fiat_secp256k1_uint1 x496; + fiat_secp256k1_addcarryx_u32(&x495, &x496, x494, x477, x443); + uint32_t x497; + fiat_secp256k1_uint1 x498; + fiat_secp256k1_addcarryx_u32(&x497, &x498, x496, x479, x445); + uint32_t x499; + fiat_secp256k1_uint1 x500; + fiat_secp256k1_addcarryx_u32(&x499, &x500, x498, x481, x447); + uint32_t x501; + fiat_secp256k1_uint1 x502; + fiat_secp256k1_addcarryx_u32(&x501, &x502, x500, x483, x449); + uint32_t x503; + fiat_secp256k1_uint1 x504; + fiat_secp256k1_addcarryx_u32(&x503, &x504, x502, x485, x451); + uint32_t x505; + fiat_secp256k1_uint1 x506; + fiat_secp256k1_addcarryx_u32(&x505, &x506, x504, x487, x453); + uint32_t x507; + fiat_secp256k1_uint1 x508; + fiat_secp256k1_addcarryx_u32(&x507, &x508, x506, x489, x455); + uint32_t x509; + fiat_secp256k1_uint1 x510; + fiat_secp256k1_addcarryx_u32(&x509, &x510, x508, 0x0, x456); + uint32_t x511; + uint32_t x512; + fiat_secp256k1_mulx_u32(&x511, &x512, x5, (arg1[7])); + uint32_t x513; + uint32_t x514; + fiat_secp256k1_mulx_u32(&x513, &x514, x5, (arg1[6])); + uint32_t x515; + uint32_t x516; + fiat_secp256k1_mulx_u32(&x515, &x516, x5, (arg1[5])); + uint32_t x517; + uint32_t x518; + fiat_secp256k1_mulx_u32(&x517, &x518, x5, (arg1[4])); + uint32_t x519; + uint32_t x520; + fiat_secp256k1_mulx_u32(&x519, &x520, x5, (arg1[3])); + uint32_t x521; + uint32_t x522; + fiat_secp256k1_mulx_u32(&x521, &x522, x5, (arg1[2])); + uint32_t x523; + uint32_t x524; + fiat_secp256k1_mulx_u32(&x523, &x524, x5, (arg1[1])); + uint32_t x525; + uint32_t x526; + fiat_secp256k1_mulx_u32(&x525, &x526, x5, (arg1[0])); + uint32_t x527; + fiat_secp256k1_uint1 x528; + fiat_secp256k1_addcarryx_u32(&x527, &x528, 0x0, x523, x526); + uint32_t x529; + fiat_secp256k1_uint1 x530; + fiat_secp256k1_addcarryx_u32(&x529, &x530, x528, x521, x524); + uint32_t x531; + fiat_secp256k1_uint1 x532; + fiat_secp256k1_addcarryx_u32(&x531, &x532, x530, x519, x522); + uint32_t x533; + fiat_secp256k1_uint1 x534; + fiat_secp256k1_addcarryx_u32(&x533, &x534, x532, x517, x520); + uint32_t x535; + fiat_secp256k1_uint1 x536; + fiat_secp256k1_addcarryx_u32(&x535, &x536, x534, x515, x518); + uint32_t x537; + fiat_secp256k1_uint1 x538; + fiat_secp256k1_addcarryx_u32(&x537, &x538, x536, x513, x516); + uint32_t x539; + fiat_secp256k1_uint1 x540; + fiat_secp256k1_addcarryx_u32(&x539, &x540, x538, x511, x514); + uint32_t x541; + fiat_secp256k1_uint1 x542; + fiat_secp256k1_addcarryx_u32(&x541, &x542, x540, 0x0, x512); + uint32_t x543; + fiat_secp256k1_uint1 x544; + fiat_secp256k1_addcarryx_u32(&x543, &x544, 0x0, x525, x493); + uint32_t x545; + fiat_secp256k1_uint1 x546; + fiat_secp256k1_addcarryx_u32(&x545, &x546, x544, x527, x495); + uint32_t x547; + fiat_secp256k1_uint1 x548; + fiat_secp256k1_addcarryx_u32(&x547, &x548, x546, x529, x497); + uint32_t x549; + fiat_secp256k1_uint1 x550; + fiat_secp256k1_addcarryx_u32(&x549, &x550, x548, x531, x499); + uint32_t x551; + fiat_secp256k1_uint1 x552; + fiat_secp256k1_addcarryx_u32(&x551, &x552, x550, x533, x501); + uint32_t x553; + fiat_secp256k1_uint1 x554; + fiat_secp256k1_addcarryx_u32(&x553, &x554, x552, x535, x503); + uint32_t x555; + fiat_secp256k1_uint1 x556; + fiat_secp256k1_addcarryx_u32(&x555, &x556, x554, x537, x505); + uint32_t x557; + fiat_secp256k1_uint1 x558; + fiat_secp256k1_addcarryx_u32(&x557, &x558, x556, x539, x507); + uint32_t x559; + fiat_secp256k1_uint1 x560; + fiat_secp256k1_addcarryx_u32(&x559, &x560, x558, x541, x509); + uint32_t x561; + uint32_t x562; + fiat_secp256k1_mulx_u32(&x561, &x562, x543, UINT32_C(0xd2253531)); + uint32_t x563; + uint32_t x564; + fiat_secp256k1_mulx_u32(&x563, &x564, x561, UINT32_C(0xffffffff)); + uint32_t x565; + uint32_t x566; + fiat_secp256k1_mulx_u32(&x565, &x566, x561, UINT32_C(0xffffffff)); + uint32_t x567; + uint32_t x568; + fiat_secp256k1_mulx_u32(&x567, &x568, x561, UINT32_C(0xffffffff)); + uint32_t x569; + uint32_t x570; + fiat_secp256k1_mulx_u32(&x569, &x570, x561, UINT32_C(0xffffffff)); + uint32_t x571; + uint32_t x572; + fiat_secp256k1_mulx_u32(&x571, &x572, x561, UINT32_C(0xffffffff)); + uint32_t x573; + uint32_t x574; + fiat_secp256k1_mulx_u32(&x573, &x574, x561, UINT32_C(0xffffffff)); + uint32_t x575; + uint32_t x576; + fiat_secp256k1_mulx_u32(&x575, &x576, x561, UINT32_C(0xfffffffe)); + uint32_t x577; + uint32_t x578; + fiat_secp256k1_mulx_u32(&x577, &x578, x561, UINT32_C(0xfffffc2f)); + uint32_t x579; + fiat_secp256k1_uint1 x580; + fiat_secp256k1_addcarryx_u32(&x579, &x580, 0x0, x575, x578); + uint32_t x581; + fiat_secp256k1_uint1 x582; + fiat_secp256k1_addcarryx_u32(&x581, &x582, x580, x573, x576); + uint32_t x583; + fiat_secp256k1_uint1 x584; + fiat_secp256k1_addcarryx_u32(&x583, &x584, x582, x571, x574); + uint32_t x585; + fiat_secp256k1_uint1 x586; + fiat_secp256k1_addcarryx_u32(&x585, &x586, x584, x569, x572); + uint32_t x587; + fiat_secp256k1_uint1 x588; + fiat_secp256k1_addcarryx_u32(&x587, &x588, x586, x567, x570); + uint32_t x589; + fiat_secp256k1_uint1 x590; + fiat_secp256k1_addcarryx_u32(&x589, &x590, x588, x565, x568); + uint32_t x591; + fiat_secp256k1_uint1 x592; + fiat_secp256k1_addcarryx_u32(&x591, &x592, x590, x563, x566); + uint32_t x593; + fiat_secp256k1_uint1 x594; + fiat_secp256k1_addcarryx_u32(&x593, &x594, x592, 0x0, x564); + uint32_t x595; + fiat_secp256k1_uint1 x596; + fiat_secp256k1_addcarryx_u32(&x595, &x596, 0x0, x577, x543); + uint32_t x597; + fiat_secp256k1_uint1 x598; + fiat_secp256k1_addcarryx_u32(&x597, &x598, x596, x579, x545); + uint32_t x599; + fiat_secp256k1_uint1 x600; + fiat_secp256k1_addcarryx_u32(&x599, &x600, x598, x581, x547); + uint32_t x601; + fiat_secp256k1_uint1 x602; + fiat_secp256k1_addcarryx_u32(&x601, &x602, x600, x583, x549); + uint32_t x603; + fiat_secp256k1_uint1 x604; + fiat_secp256k1_addcarryx_u32(&x603, &x604, x602, x585, x551); + uint32_t x605; + fiat_secp256k1_uint1 x606; + fiat_secp256k1_addcarryx_u32(&x605, &x606, x604, x587, x553); + uint32_t x607; + fiat_secp256k1_uint1 x608; + fiat_secp256k1_addcarryx_u32(&x607, &x608, x606, x589, x555); + uint32_t x609; + fiat_secp256k1_uint1 x610; + fiat_secp256k1_addcarryx_u32(&x609, &x610, x608, x591, x557); + uint32_t x611; + fiat_secp256k1_uint1 x612; + fiat_secp256k1_addcarryx_u32(&x611, &x612, x610, x593, x559); + uint32_t x613; + fiat_secp256k1_uint1 x614; + fiat_secp256k1_addcarryx_u32(&x613, &x614, x612, 0x0, x560); + uint32_t x615; + uint32_t x616; + fiat_secp256k1_mulx_u32(&x615, &x616, x6, (arg1[7])); + uint32_t x617; + uint32_t x618; + fiat_secp256k1_mulx_u32(&x617, &x618, x6, (arg1[6])); + uint32_t x619; + uint32_t x620; + fiat_secp256k1_mulx_u32(&x619, &x620, x6, (arg1[5])); + uint32_t x621; + uint32_t x622; + fiat_secp256k1_mulx_u32(&x621, &x622, x6, (arg1[4])); + uint32_t x623; + uint32_t x624; + fiat_secp256k1_mulx_u32(&x623, &x624, x6, (arg1[3])); + uint32_t x625; + uint32_t x626; + fiat_secp256k1_mulx_u32(&x625, &x626, x6, (arg1[2])); + uint32_t x627; + uint32_t x628; + fiat_secp256k1_mulx_u32(&x627, &x628, x6, (arg1[1])); + uint32_t x629; + uint32_t x630; + fiat_secp256k1_mulx_u32(&x629, &x630, x6, (arg1[0])); + uint32_t x631; + fiat_secp256k1_uint1 x632; + fiat_secp256k1_addcarryx_u32(&x631, &x632, 0x0, x627, x630); + uint32_t x633; + fiat_secp256k1_uint1 x634; + fiat_secp256k1_addcarryx_u32(&x633, &x634, x632, x625, x628); + uint32_t x635; + fiat_secp256k1_uint1 x636; + fiat_secp256k1_addcarryx_u32(&x635, &x636, x634, x623, x626); + uint32_t x637; + fiat_secp256k1_uint1 x638; + fiat_secp256k1_addcarryx_u32(&x637, &x638, x636, x621, x624); + uint32_t x639; + fiat_secp256k1_uint1 x640; + fiat_secp256k1_addcarryx_u32(&x639, &x640, x638, x619, x622); + uint32_t x641; + fiat_secp256k1_uint1 x642; + fiat_secp256k1_addcarryx_u32(&x641, &x642, x640, x617, x620); + uint32_t x643; + fiat_secp256k1_uint1 x644; + fiat_secp256k1_addcarryx_u32(&x643, &x644, x642, x615, x618); + uint32_t x645; + fiat_secp256k1_uint1 x646; + fiat_secp256k1_addcarryx_u32(&x645, &x646, x644, 0x0, x616); + uint32_t x647; + fiat_secp256k1_uint1 x648; + fiat_secp256k1_addcarryx_u32(&x647, &x648, 0x0, x629, x597); + uint32_t x649; + fiat_secp256k1_uint1 x650; + fiat_secp256k1_addcarryx_u32(&x649, &x650, x648, x631, x599); + uint32_t x651; + fiat_secp256k1_uint1 x652; + fiat_secp256k1_addcarryx_u32(&x651, &x652, x650, x633, x601); + uint32_t x653; + fiat_secp256k1_uint1 x654; + fiat_secp256k1_addcarryx_u32(&x653, &x654, x652, x635, x603); + uint32_t x655; + fiat_secp256k1_uint1 x656; + fiat_secp256k1_addcarryx_u32(&x655, &x656, x654, x637, x605); + uint32_t x657; + fiat_secp256k1_uint1 x658; + fiat_secp256k1_addcarryx_u32(&x657, &x658, x656, x639, x607); + uint32_t x659; + fiat_secp256k1_uint1 x660; + fiat_secp256k1_addcarryx_u32(&x659, &x660, x658, x641, x609); + uint32_t x661; + fiat_secp256k1_uint1 x662; + fiat_secp256k1_addcarryx_u32(&x661, &x662, x660, x643, x611); + uint32_t x663; + fiat_secp256k1_uint1 x664; + fiat_secp256k1_addcarryx_u32(&x663, &x664, x662, x645, x613); + uint32_t x665; + uint32_t x666; + fiat_secp256k1_mulx_u32(&x665, &x666, x647, UINT32_C(0xd2253531)); + uint32_t x667; + uint32_t x668; + fiat_secp256k1_mulx_u32(&x667, &x668, x665, UINT32_C(0xffffffff)); + uint32_t x669; + uint32_t x670; + fiat_secp256k1_mulx_u32(&x669, &x670, x665, UINT32_C(0xffffffff)); + uint32_t x671; + uint32_t x672; + fiat_secp256k1_mulx_u32(&x671, &x672, x665, UINT32_C(0xffffffff)); + uint32_t x673; + uint32_t x674; + fiat_secp256k1_mulx_u32(&x673, &x674, x665, UINT32_C(0xffffffff)); + uint32_t x675; + uint32_t x676; + fiat_secp256k1_mulx_u32(&x675, &x676, x665, UINT32_C(0xffffffff)); + uint32_t x677; + uint32_t x678; + fiat_secp256k1_mulx_u32(&x677, &x678, x665, UINT32_C(0xffffffff)); + uint32_t x679; + uint32_t x680; + fiat_secp256k1_mulx_u32(&x679, &x680, x665, UINT32_C(0xfffffffe)); + uint32_t x681; + uint32_t x682; + fiat_secp256k1_mulx_u32(&x681, &x682, x665, UINT32_C(0xfffffc2f)); + uint32_t x683; + fiat_secp256k1_uint1 x684; + fiat_secp256k1_addcarryx_u32(&x683, &x684, 0x0, x679, x682); + uint32_t x685; + fiat_secp256k1_uint1 x686; + fiat_secp256k1_addcarryx_u32(&x685, &x686, x684, x677, x680); + uint32_t x687; + fiat_secp256k1_uint1 x688; + fiat_secp256k1_addcarryx_u32(&x687, &x688, x686, x675, x678); + uint32_t x689; + fiat_secp256k1_uint1 x690; + fiat_secp256k1_addcarryx_u32(&x689, &x690, x688, x673, x676); + uint32_t x691; + fiat_secp256k1_uint1 x692; + fiat_secp256k1_addcarryx_u32(&x691, &x692, x690, x671, x674); + uint32_t x693; + fiat_secp256k1_uint1 x694; + fiat_secp256k1_addcarryx_u32(&x693, &x694, x692, x669, x672); + uint32_t x695; + fiat_secp256k1_uint1 x696; + fiat_secp256k1_addcarryx_u32(&x695, &x696, x694, x667, x670); + uint32_t x697; + fiat_secp256k1_uint1 x698; + fiat_secp256k1_addcarryx_u32(&x697, &x698, x696, 0x0, x668); + uint32_t x699; + fiat_secp256k1_uint1 x700; + fiat_secp256k1_addcarryx_u32(&x699, &x700, 0x0, x681, x647); + uint32_t x701; + fiat_secp256k1_uint1 x702; + fiat_secp256k1_addcarryx_u32(&x701, &x702, x700, x683, x649); + uint32_t x703; + fiat_secp256k1_uint1 x704; + fiat_secp256k1_addcarryx_u32(&x703, &x704, x702, x685, x651); + uint32_t x705; + fiat_secp256k1_uint1 x706; + fiat_secp256k1_addcarryx_u32(&x705, &x706, x704, x687, x653); + uint32_t x707; + fiat_secp256k1_uint1 x708; + fiat_secp256k1_addcarryx_u32(&x707, &x708, x706, x689, x655); + uint32_t x709; + fiat_secp256k1_uint1 x710; + fiat_secp256k1_addcarryx_u32(&x709, &x710, x708, x691, x657); + uint32_t x711; + fiat_secp256k1_uint1 x712; + fiat_secp256k1_addcarryx_u32(&x711, &x712, x710, x693, x659); + uint32_t x713; + fiat_secp256k1_uint1 x714; + fiat_secp256k1_addcarryx_u32(&x713, &x714, x712, x695, x661); + uint32_t x715; + fiat_secp256k1_uint1 x716; + fiat_secp256k1_addcarryx_u32(&x715, &x716, x714, x697, x663); + uint32_t x717; + fiat_secp256k1_uint1 x718; + fiat_secp256k1_addcarryx_u32(&x717, &x718, x716, 0x0, x664); + uint32_t x719; + uint32_t x720; + fiat_secp256k1_mulx_u32(&x719, &x720, x7, (arg1[7])); + uint32_t x721; + uint32_t x722; + fiat_secp256k1_mulx_u32(&x721, &x722, x7, (arg1[6])); + uint32_t x723; + uint32_t x724; + fiat_secp256k1_mulx_u32(&x723, &x724, x7, (arg1[5])); + uint32_t x725; + uint32_t x726; + fiat_secp256k1_mulx_u32(&x725, &x726, x7, (arg1[4])); + uint32_t x727; + uint32_t x728; + fiat_secp256k1_mulx_u32(&x727, &x728, x7, (arg1[3])); + uint32_t x729; + uint32_t x730; + fiat_secp256k1_mulx_u32(&x729, &x730, x7, (arg1[2])); + uint32_t x731; + uint32_t x732; + fiat_secp256k1_mulx_u32(&x731, &x732, x7, (arg1[1])); + uint32_t x733; + uint32_t x734; + fiat_secp256k1_mulx_u32(&x733, &x734, x7, (arg1[0])); + uint32_t x735; + fiat_secp256k1_uint1 x736; + fiat_secp256k1_addcarryx_u32(&x735, &x736, 0x0, x731, x734); + uint32_t x737; + fiat_secp256k1_uint1 x738; + fiat_secp256k1_addcarryx_u32(&x737, &x738, x736, x729, x732); + uint32_t x739; + fiat_secp256k1_uint1 x740; + fiat_secp256k1_addcarryx_u32(&x739, &x740, x738, x727, x730); + uint32_t x741; + fiat_secp256k1_uint1 x742; + fiat_secp256k1_addcarryx_u32(&x741, &x742, x740, x725, x728); + uint32_t x743; + fiat_secp256k1_uint1 x744; + fiat_secp256k1_addcarryx_u32(&x743, &x744, x742, x723, x726); + uint32_t x745; + fiat_secp256k1_uint1 x746; + fiat_secp256k1_addcarryx_u32(&x745, &x746, x744, x721, x724); + uint32_t x747; + fiat_secp256k1_uint1 x748; + fiat_secp256k1_addcarryx_u32(&x747, &x748, x746, x719, x722); + uint32_t x749; + fiat_secp256k1_uint1 x750; + fiat_secp256k1_addcarryx_u32(&x749, &x750, x748, 0x0, x720); + uint32_t x751; + fiat_secp256k1_uint1 x752; + fiat_secp256k1_addcarryx_u32(&x751, &x752, 0x0, x733, x701); + uint32_t x753; + fiat_secp256k1_uint1 x754; + fiat_secp256k1_addcarryx_u32(&x753, &x754, x752, x735, x703); + uint32_t x755; + fiat_secp256k1_uint1 x756; + fiat_secp256k1_addcarryx_u32(&x755, &x756, x754, x737, x705); + uint32_t x757; + fiat_secp256k1_uint1 x758; + fiat_secp256k1_addcarryx_u32(&x757, &x758, x756, x739, x707); + uint32_t x759; + fiat_secp256k1_uint1 x760; + fiat_secp256k1_addcarryx_u32(&x759, &x760, x758, x741, x709); + uint32_t x761; + fiat_secp256k1_uint1 x762; + fiat_secp256k1_addcarryx_u32(&x761, &x762, x760, x743, x711); + uint32_t x763; + fiat_secp256k1_uint1 x764; + fiat_secp256k1_addcarryx_u32(&x763, &x764, x762, x745, x713); + uint32_t x765; + fiat_secp256k1_uint1 x766; + fiat_secp256k1_addcarryx_u32(&x765, &x766, x764, x747, x715); + uint32_t x767; + fiat_secp256k1_uint1 x768; + fiat_secp256k1_addcarryx_u32(&x767, &x768, x766, x749, x717); + uint32_t x769; + uint32_t x770; + fiat_secp256k1_mulx_u32(&x769, &x770, x751, UINT32_C(0xd2253531)); + uint32_t x771; + uint32_t x772; + fiat_secp256k1_mulx_u32(&x771, &x772, x769, UINT32_C(0xffffffff)); + uint32_t x773; + uint32_t x774; + fiat_secp256k1_mulx_u32(&x773, &x774, x769, UINT32_C(0xffffffff)); + uint32_t x775; + uint32_t x776; + fiat_secp256k1_mulx_u32(&x775, &x776, x769, UINT32_C(0xffffffff)); + uint32_t x777; + uint32_t x778; + fiat_secp256k1_mulx_u32(&x777, &x778, x769, UINT32_C(0xffffffff)); + uint32_t x779; + uint32_t x780; + fiat_secp256k1_mulx_u32(&x779, &x780, x769, UINT32_C(0xffffffff)); + uint32_t x781; + uint32_t x782; + fiat_secp256k1_mulx_u32(&x781, &x782, x769, UINT32_C(0xffffffff)); + uint32_t x783; + uint32_t x784; + fiat_secp256k1_mulx_u32(&x783, &x784, x769, UINT32_C(0xfffffffe)); + uint32_t x785; + uint32_t x786; + fiat_secp256k1_mulx_u32(&x785, &x786, x769, UINT32_C(0xfffffc2f)); + uint32_t x787; + fiat_secp256k1_uint1 x788; + fiat_secp256k1_addcarryx_u32(&x787, &x788, 0x0, x783, x786); + uint32_t x789; + fiat_secp256k1_uint1 x790; + fiat_secp256k1_addcarryx_u32(&x789, &x790, x788, x781, x784); + uint32_t x791; + fiat_secp256k1_uint1 x792; + fiat_secp256k1_addcarryx_u32(&x791, &x792, x790, x779, x782); + uint32_t x793; + fiat_secp256k1_uint1 x794; + fiat_secp256k1_addcarryx_u32(&x793, &x794, x792, x777, x780); + uint32_t x795; + fiat_secp256k1_uint1 x796; + fiat_secp256k1_addcarryx_u32(&x795, &x796, x794, x775, x778); + uint32_t x797; + fiat_secp256k1_uint1 x798; + fiat_secp256k1_addcarryx_u32(&x797, &x798, x796, x773, x776); + uint32_t x799; + fiat_secp256k1_uint1 x800; + fiat_secp256k1_addcarryx_u32(&x799, &x800, x798, x771, x774); + uint32_t x801; + fiat_secp256k1_uint1 x802; + fiat_secp256k1_addcarryx_u32(&x801, &x802, x800, 0x0, x772); + uint32_t x803; + fiat_secp256k1_uint1 x804; + fiat_secp256k1_addcarryx_u32(&x803, &x804, 0x0, x785, x751); + uint32_t x805; + fiat_secp256k1_uint1 x806; + fiat_secp256k1_addcarryx_u32(&x805, &x806, x804, x787, x753); + uint32_t x807; + fiat_secp256k1_uint1 x808; + fiat_secp256k1_addcarryx_u32(&x807, &x808, x806, x789, x755); + uint32_t x809; + fiat_secp256k1_uint1 x810; + fiat_secp256k1_addcarryx_u32(&x809, &x810, x808, x791, x757); + uint32_t x811; + fiat_secp256k1_uint1 x812; + fiat_secp256k1_addcarryx_u32(&x811, &x812, x810, x793, x759); + uint32_t x813; + fiat_secp256k1_uint1 x814; + fiat_secp256k1_addcarryx_u32(&x813, &x814, x812, x795, x761); + uint32_t x815; + fiat_secp256k1_uint1 x816; + fiat_secp256k1_addcarryx_u32(&x815, &x816, x814, x797, x763); + uint32_t x817; + fiat_secp256k1_uint1 x818; + fiat_secp256k1_addcarryx_u32(&x817, &x818, x816, x799, x765); + uint32_t x819; + fiat_secp256k1_uint1 x820; + fiat_secp256k1_addcarryx_u32(&x819, &x820, x818, x801, x767); + uint32_t x821; + fiat_secp256k1_uint1 x822; + fiat_secp256k1_addcarryx_u32(&x821, &x822, x820, 0x0, x768); + uint32_t x823; + fiat_secp256k1_uint1 x824; + fiat_secp256k1_subborrowx_u32(&x823, &x824, 0x0, x805, UINT32_C(0xfffffc2f)); + uint32_t x825; + fiat_secp256k1_uint1 x826; + fiat_secp256k1_subborrowx_u32(&x825, &x826, x824, x807, UINT32_C(0xfffffffe)); + uint32_t x827; + fiat_secp256k1_uint1 x828; + fiat_secp256k1_subborrowx_u32(&x827, &x828, x826, x809, UINT32_C(0xffffffff)); + uint32_t x829; + fiat_secp256k1_uint1 x830; + fiat_secp256k1_subborrowx_u32(&x829, &x830, x828, x811, UINT32_C(0xffffffff)); + uint32_t x831; + fiat_secp256k1_uint1 x832; + fiat_secp256k1_subborrowx_u32(&x831, &x832, x830, x813, UINT32_C(0xffffffff)); + uint32_t x833; + fiat_secp256k1_uint1 x834; + fiat_secp256k1_subborrowx_u32(&x833, &x834, x832, x815, UINT32_C(0xffffffff)); + uint32_t x835; + fiat_secp256k1_uint1 x836; + fiat_secp256k1_subborrowx_u32(&x835, &x836, x834, x817, UINT32_C(0xffffffff)); + uint32_t x837; + fiat_secp256k1_uint1 x838; + fiat_secp256k1_subborrowx_u32(&x837, &x838, x836, x819, UINT32_C(0xffffffff)); + uint32_t x839; + fiat_secp256k1_uint1 x840; + fiat_secp256k1_subborrowx_u32(&x839, &x840, x838, x821, 0x0); + uint32_t x841; + fiat_secp256k1_cmovznz_u32(&x841, x840, x823, x805); + uint32_t x842; + fiat_secp256k1_cmovznz_u32(&x842, x840, x825, x807); + uint32_t x843; + fiat_secp256k1_cmovznz_u32(&x843, x840, x827, x809); + uint32_t x844; + fiat_secp256k1_cmovznz_u32(&x844, x840, x829, x811); + uint32_t x845; + fiat_secp256k1_cmovznz_u32(&x845, x840, x831, x813); + uint32_t x846; + fiat_secp256k1_cmovznz_u32(&x846, x840, x833, x815); + uint32_t x847; + fiat_secp256k1_cmovznz_u32(&x847, x840, x835, x817); + uint32_t x848; + fiat_secp256k1_cmovznz_u32(&x848, x840, x837, x819); + out1[0] = x841; + out1[1] = x842; + out1[2] = x843; + out1[3] = x844; + out1[4] = x845; + out1[5] = x846; + out1[6] = x847; + out1[7] = x848; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_add(uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1; + fiat_secp256k1_uint1 x2; + fiat_secp256k1_addcarryx_u32(&x1, &x2, 0x0, (arg2[0]), (arg1[0])); + uint32_t x3; + fiat_secp256k1_uint1 x4; + fiat_secp256k1_addcarryx_u32(&x3, &x4, x2, (arg2[1]), (arg1[1])); + uint32_t x5; + fiat_secp256k1_uint1 x6; + fiat_secp256k1_addcarryx_u32(&x5, &x6, x4, (arg2[2]), (arg1[2])); + uint32_t x7; + fiat_secp256k1_uint1 x8; + fiat_secp256k1_addcarryx_u32(&x7, &x8, x6, (arg2[3]), (arg1[3])); + uint32_t x9; + fiat_secp256k1_uint1 x10; + fiat_secp256k1_addcarryx_u32(&x9, &x10, x8, (arg2[4]), (arg1[4])); + uint32_t x11; + fiat_secp256k1_uint1 x12; + fiat_secp256k1_addcarryx_u32(&x11, &x12, x10, (arg2[5]), (arg1[5])); + uint32_t x13; + fiat_secp256k1_uint1 x14; + fiat_secp256k1_addcarryx_u32(&x13, &x14, x12, (arg2[6]), (arg1[6])); + uint32_t x15; + fiat_secp256k1_uint1 x16; + fiat_secp256k1_addcarryx_u32(&x15, &x16, x14, (arg2[7]), (arg1[7])); + uint32_t x17; + fiat_secp256k1_uint1 x18; + fiat_secp256k1_subborrowx_u32(&x17, &x18, 0x0, x1, UINT32_C(0xfffffc2f)); + uint32_t x19; + fiat_secp256k1_uint1 x20; + fiat_secp256k1_subborrowx_u32(&x19, &x20, x18, x3, UINT32_C(0xfffffffe)); + uint32_t x21; + fiat_secp256k1_uint1 x22; + fiat_secp256k1_subborrowx_u32(&x21, &x22, x20, x5, UINT32_C(0xffffffff)); + uint32_t x23; + fiat_secp256k1_uint1 x24; + fiat_secp256k1_subborrowx_u32(&x23, &x24, x22, x7, UINT32_C(0xffffffff)); + uint32_t x25; + fiat_secp256k1_uint1 x26; + fiat_secp256k1_subborrowx_u32(&x25, &x26, x24, x9, UINT32_C(0xffffffff)); + uint32_t x27; + fiat_secp256k1_uint1 x28; + fiat_secp256k1_subborrowx_u32(&x27, &x28, x26, x11, UINT32_C(0xffffffff)); + uint32_t x29; + fiat_secp256k1_uint1 x30; + fiat_secp256k1_subborrowx_u32(&x29, &x30, x28, x13, UINT32_C(0xffffffff)); + uint32_t x31; + fiat_secp256k1_uint1 x32; + fiat_secp256k1_subborrowx_u32(&x31, &x32, x30, x15, UINT32_C(0xffffffff)); + uint32_t x33; + fiat_secp256k1_uint1 x34; + fiat_secp256k1_subborrowx_u32(&x33, &x34, x32, x16, 0x0); + uint32_t x35; + fiat_secp256k1_cmovznz_u32(&x35, x34, x17, x1); + uint32_t x36; + fiat_secp256k1_cmovznz_u32(&x36, x34, x19, x3); + uint32_t x37; + fiat_secp256k1_cmovznz_u32(&x37, x34, x21, x5); + uint32_t x38; + fiat_secp256k1_cmovznz_u32(&x38, x34, x23, x7); + uint32_t x39; + fiat_secp256k1_cmovznz_u32(&x39, x34, x25, x9); + uint32_t x40; + fiat_secp256k1_cmovznz_u32(&x40, x34, x27, x11); + uint32_t x41; + fiat_secp256k1_cmovznz_u32(&x41, x34, x29, x13); + uint32_t x42; + fiat_secp256k1_cmovznz_u32(&x42, x34, x31, x15); + out1[0] = x35; + out1[1] = x36; + out1[2] = x37; + out1[3] = x38; + out1[4] = x39; + out1[5] = x40; + out1[6] = x41; + out1[7] = x42; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_sub(uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1; + fiat_secp256k1_uint1 x2; + fiat_secp256k1_subborrowx_u32(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + uint32_t x3; + fiat_secp256k1_uint1 x4; + fiat_secp256k1_subborrowx_u32(&x3, &x4, x2, (arg1[1]), (arg2[1])); + uint32_t x5; + fiat_secp256k1_uint1 x6; + fiat_secp256k1_subborrowx_u32(&x5, &x6, x4, (arg1[2]), (arg2[2])); + uint32_t x7; + fiat_secp256k1_uint1 x8; + fiat_secp256k1_subborrowx_u32(&x7, &x8, x6, (arg1[3]), (arg2[3])); + uint32_t x9; + fiat_secp256k1_uint1 x10; + fiat_secp256k1_subborrowx_u32(&x9, &x10, x8, (arg1[4]), (arg2[4])); + uint32_t x11; + fiat_secp256k1_uint1 x12; + fiat_secp256k1_subborrowx_u32(&x11, &x12, x10, (arg1[5]), (arg2[5])); + uint32_t x13; + fiat_secp256k1_uint1 x14; + fiat_secp256k1_subborrowx_u32(&x13, &x14, x12, (arg1[6]), (arg2[6])); + uint32_t x15; + fiat_secp256k1_uint1 x16; + fiat_secp256k1_subborrowx_u32(&x15, &x16, x14, (arg1[7]), (arg2[7])); + uint32_t x17; + fiat_secp256k1_cmovznz_u32(&x17, x16, 0x0, UINT32_C(0xffffffff)); + uint32_t x18; + fiat_secp256k1_uint1 x19; + fiat_secp256k1_addcarryx_u32(&x18, &x19, 0x0, (x17 & UINT32_C(0xfffffc2f)), x1); + uint32_t x20; + fiat_secp256k1_uint1 x21; + fiat_secp256k1_addcarryx_u32(&x20, &x21, x19, (x17 & UINT32_C(0xfffffffe)), x3); + uint32_t x22; + fiat_secp256k1_uint1 x23; + fiat_secp256k1_addcarryx_u32(&x22, &x23, x21, (x17 & UINT32_C(0xffffffff)), x5); + uint32_t x24; + fiat_secp256k1_uint1 x25; + fiat_secp256k1_addcarryx_u32(&x24, &x25, x23, (x17 & UINT32_C(0xffffffff)), x7); + uint32_t x26; + fiat_secp256k1_uint1 x27; + fiat_secp256k1_addcarryx_u32(&x26, &x27, x25, (x17 & UINT32_C(0xffffffff)), x9); + uint32_t x28; + fiat_secp256k1_uint1 x29; + fiat_secp256k1_addcarryx_u32(&x28, &x29, x27, (x17 & UINT32_C(0xffffffff)), x11); + uint32_t x30; + fiat_secp256k1_uint1 x31; + fiat_secp256k1_addcarryx_u32(&x30, &x31, x29, (x17 & UINT32_C(0xffffffff)), x13); + uint32_t x32; + fiat_secp256k1_uint1 x33; + fiat_secp256k1_addcarryx_u32(&x32, &x33, x31, (x17 & UINT32_C(0xffffffff)), x15); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_opp(uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1; + fiat_secp256k1_uint1 x2; + fiat_secp256k1_subborrowx_u32(&x1, &x2, 0x0, 0x0, (arg1[0])); + uint32_t x3; + fiat_secp256k1_uint1 x4; + fiat_secp256k1_subborrowx_u32(&x3, &x4, x2, 0x0, (arg1[1])); + uint32_t x5; + fiat_secp256k1_uint1 x6; + fiat_secp256k1_subborrowx_u32(&x5, &x6, x4, 0x0, (arg1[2])); + uint32_t x7; + fiat_secp256k1_uint1 x8; + fiat_secp256k1_subborrowx_u32(&x7, &x8, x6, 0x0, (arg1[3])); + uint32_t x9; + fiat_secp256k1_uint1 x10; + fiat_secp256k1_subborrowx_u32(&x9, &x10, x8, 0x0, (arg1[4])); + uint32_t x11; + fiat_secp256k1_uint1 x12; + fiat_secp256k1_subborrowx_u32(&x11, &x12, x10, 0x0, (arg1[5])); + uint32_t x13; + fiat_secp256k1_uint1 x14; + fiat_secp256k1_subborrowx_u32(&x13, &x14, x12, 0x0, (arg1[6])); + uint32_t x15; + fiat_secp256k1_uint1 x16; + fiat_secp256k1_subborrowx_u32(&x15, &x16, x14, 0x0, (arg1[7])); + uint32_t x17; + fiat_secp256k1_cmovznz_u32(&x17, x16, 0x0, UINT32_C(0xffffffff)); + uint32_t x18; + fiat_secp256k1_uint1 x19; + fiat_secp256k1_addcarryx_u32(&x18, &x19, 0x0, (x17 & UINT32_C(0xfffffc2f)), x1); + uint32_t x20; + fiat_secp256k1_uint1 x21; + fiat_secp256k1_addcarryx_u32(&x20, &x21, x19, (x17 & UINT32_C(0xfffffffe)), x3); + uint32_t x22; + fiat_secp256k1_uint1 x23; + fiat_secp256k1_addcarryx_u32(&x22, &x23, x21, (x17 & UINT32_C(0xffffffff)), x5); + uint32_t x24; + fiat_secp256k1_uint1 x25; + fiat_secp256k1_addcarryx_u32(&x24, &x25, x23, (x17 & UINT32_C(0xffffffff)), x7); + uint32_t x26; + fiat_secp256k1_uint1 x27; + fiat_secp256k1_addcarryx_u32(&x26, &x27, x25, (x17 & UINT32_C(0xffffffff)), x9); + uint32_t x28; + fiat_secp256k1_uint1 x29; + fiat_secp256k1_addcarryx_u32(&x28, &x29, x27, (x17 & UINT32_C(0xffffffff)), x11); + uint32_t x30; + fiat_secp256k1_uint1 x31; + fiat_secp256k1_addcarryx_u32(&x30, &x31, x29, (x17 & UINT32_C(0xffffffff)), x13); + uint32_t x32; + fiat_secp256k1_uint1 x33; + fiat_secp256k1_addcarryx_u32(&x32, &x33, x31, (x17 & UINT32_C(0xffffffff)), x15); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_from_montgomery(uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1 = (arg1[0]); + uint32_t x2; + uint32_t x3; + fiat_secp256k1_mulx_u32(&x2, &x3, x1, UINT32_C(0xd2253531)); + uint32_t x4; + uint32_t x5; + fiat_secp256k1_mulx_u32(&x4, &x5, x2, UINT32_C(0xffffffff)); + uint32_t x6; + uint32_t x7; + fiat_secp256k1_mulx_u32(&x6, &x7, x2, UINT32_C(0xffffffff)); + uint32_t x8; + uint32_t x9; + fiat_secp256k1_mulx_u32(&x8, &x9, x2, UINT32_C(0xffffffff)); + uint32_t x10; + uint32_t x11; + fiat_secp256k1_mulx_u32(&x10, &x11, x2, UINT32_C(0xffffffff)); + uint32_t x12; + uint32_t x13; + fiat_secp256k1_mulx_u32(&x12, &x13, x2, UINT32_C(0xffffffff)); + uint32_t x14; + uint32_t x15; + fiat_secp256k1_mulx_u32(&x14, &x15, x2, UINT32_C(0xffffffff)); + uint32_t x16; + uint32_t x17; + fiat_secp256k1_mulx_u32(&x16, &x17, x2, UINT32_C(0xfffffffe)); + uint32_t x18; + uint32_t x19; + fiat_secp256k1_mulx_u32(&x18, &x19, x2, UINT32_C(0xfffffc2f)); + uint32_t x20; + fiat_secp256k1_uint1 x21; + fiat_secp256k1_addcarryx_u32(&x20, &x21, 0x0, x16, x19); + uint32_t x22; + fiat_secp256k1_uint1 x23; + fiat_secp256k1_addcarryx_u32(&x22, &x23, x21, x14, x17); + uint32_t x24; + fiat_secp256k1_uint1 x25; + fiat_secp256k1_addcarryx_u32(&x24, &x25, x23, x12, x15); + uint32_t x26; + fiat_secp256k1_uint1 x27; + fiat_secp256k1_addcarryx_u32(&x26, &x27, x25, x10, x13); + uint32_t x28; + fiat_secp256k1_uint1 x29; + fiat_secp256k1_addcarryx_u32(&x28, &x29, x27, x8, x11); + uint32_t x30; + fiat_secp256k1_uint1 x31; + fiat_secp256k1_addcarryx_u32(&x30, &x31, x29, x6, x9); + uint32_t x32; + fiat_secp256k1_uint1 x33; + fiat_secp256k1_addcarryx_u32(&x32, &x33, x31, x4, x7); + uint32_t x34; + fiat_secp256k1_uint1 x35; + fiat_secp256k1_addcarryx_u32(&x34, &x35, 0x0, x18, x1); + uint32_t x36; + fiat_secp256k1_uint1 x37; + fiat_secp256k1_addcarryx_u32(&x36, &x37, x35, x20, 0x0); + uint32_t x38; + fiat_secp256k1_uint1 x39; + fiat_secp256k1_addcarryx_u32(&x38, &x39, x37, x22, 0x0); + uint32_t x40; + fiat_secp256k1_uint1 x41; + fiat_secp256k1_addcarryx_u32(&x40, &x41, x39, x24, 0x0); + uint32_t x42; + fiat_secp256k1_uint1 x43; + fiat_secp256k1_addcarryx_u32(&x42, &x43, x41, x26, 0x0); + uint32_t x44; + fiat_secp256k1_uint1 x45; + fiat_secp256k1_addcarryx_u32(&x44, &x45, x43, x28, 0x0); + uint32_t x46; + fiat_secp256k1_uint1 x47; + fiat_secp256k1_addcarryx_u32(&x46, &x47, x45, x30, 0x0); + uint32_t x48; + fiat_secp256k1_uint1 x49; + fiat_secp256k1_addcarryx_u32(&x48, &x49, x47, x32, 0x0); + uint32_t x50; + fiat_secp256k1_uint1 x51; + fiat_secp256k1_addcarryx_u32(&x50, &x51, x33, 0x0, x5); + uint32_t x52; + fiat_secp256k1_uint1 x53; + fiat_secp256k1_addcarryx_u32(&x52, &x53, x49, x50, 0x0); + uint32_t x54; + fiat_secp256k1_uint1 x55; + fiat_secp256k1_addcarryx_u32(&x54, &x55, 0x0, (arg1[1]), x36); + uint32_t x56; + fiat_secp256k1_uint1 x57; + fiat_secp256k1_addcarryx_u32(&x56, &x57, x55, 0x0, x38); + uint32_t x58; + fiat_secp256k1_uint1 x59; + fiat_secp256k1_addcarryx_u32(&x58, &x59, x57, 0x0, x40); + uint32_t x60; + fiat_secp256k1_uint1 x61; + fiat_secp256k1_addcarryx_u32(&x60, &x61, x59, 0x0, x42); + uint32_t x62; + fiat_secp256k1_uint1 x63; + fiat_secp256k1_addcarryx_u32(&x62, &x63, x61, 0x0, x44); + uint32_t x64; + fiat_secp256k1_uint1 x65; + fiat_secp256k1_addcarryx_u32(&x64, &x65, x63, 0x0, x46); + uint32_t x66; + fiat_secp256k1_uint1 x67; + fiat_secp256k1_addcarryx_u32(&x66, &x67, x65, 0x0, x48); + uint32_t x68; + fiat_secp256k1_uint1 x69; + fiat_secp256k1_addcarryx_u32(&x68, &x69, x67, 0x0, x52); + uint32_t x70; + fiat_secp256k1_uint1 x71; + fiat_secp256k1_addcarryx_u32(&x70, &x71, x53, 0x0, 0x0); + uint32_t x72; + fiat_secp256k1_uint1 x73; + fiat_secp256k1_addcarryx_u32(&x72, &x73, x69, 0x0, (fiat_secp256k1_uint1)x70); + uint32_t x74; + uint32_t x75; + fiat_secp256k1_mulx_u32(&x74, &x75, x54, UINT32_C(0xd2253531)); + uint32_t x76; + uint32_t x77; + fiat_secp256k1_mulx_u32(&x76, &x77, x74, UINT32_C(0xffffffff)); + uint32_t x78; + uint32_t x79; + fiat_secp256k1_mulx_u32(&x78, &x79, x74, UINT32_C(0xffffffff)); + uint32_t x80; + uint32_t x81; + fiat_secp256k1_mulx_u32(&x80, &x81, x74, UINT32_C(0xffffffff)); + uint32_t x82; + uint32_t x83; + fiat_secp256k1_mulx_u32(&x82, &x83, x74, UINT32_C(0xffffffff)); + uint32_t x84; + uint32_t x85; + fiat_secp256k1_mulx_u32(&x84, &x85, x74, UINT32_C(0xffffffff)); + uint32_t x86; + uint32_t x87; + fiat_secp256k1_mulx_u32(&x86, &x87, x74, UINT32_C(0xffffffff)); + uint32_t x88; + uint32_t x89; + fiat_secp256k1_mulx_u32(&x88, &x89, x74, UINT32_C(0xfffffffe)); + uint32_t x90; + uint32_t x91; + fiat_secp256k1_mulx_u32(&x90, &x91, x74, UINT32_C(0xfffffc2f)); + uint32_t x92; + fiat_secp256k1_uint1 x93; + fiat_secp256k1_addcarryx_u32(&x92, &x93, 0x0, x88, x91); + uint32_t x94; + fiat_secp256k1_uint1 x95; + fiat_secp256k1_addcarryx_u32(&x94, &x95, x93, x86, x89); + uint32_t x96; + fiat_secp256k1_uint1 x97; + fiat_secp256k1_addcarryx_u32(&x96, &x97, x95, x84, x87); + uint32_t x98; + fiat_secp256k1_uint1 x99; + fiat_secp256k1_addcarryx_u32(&x98, &x99, x97, x82, x85); + uint32_t x100; + fiat_secp256k1_uint1 x101; + fiat_secp256k1_addcarryx_u32(&x100, &x101, x99, x80, x83); + uint32_t x102; + fiat_secp256k1_uint1 x103; + fiat_secp256k1_addcarryx_u32(&x102, &x103, x101, x78, x81); + uint32_t x104; + fiat_secp256k1_uint1 x105; + fiat_secp256k1_addcarryx_u32(&x104, &x105, x103, x76, x79); + uint32_t x106; + fiat_secp256k1_uint1 x107; + fiat_secp256k1_addcarryx_u32(&x106, &x107, 0x0, x90, x54); + uint32_t x108; + fiat_secp256k1_uint1 x109; + fiat_secp256k1_addcarryx_u32(&x108, &x109, x107, x92, x56); + uint32_t x110; + fiat_secp256k1_uint1 x111; + fiat_secp256k1_addcarryx_u32(&x110, &x111, x109, x94, x58); + uint32_t x112; + fiat_secp256k1_uint1 x113; + fiat_secp256k1_addcarryx_u32(&x112, &x113, x111, x96, x60); + uint32_t x114; + fiat_secp256k1_uint1 x115; + fiat_secp256k1_addcarryx_u32(&x114, &x115, x113, x98, x62); + uint32_t x116; + fiat_secp256k1_uint1 x117; + fiat_secp256k1_addcarryx_u32(&x116, &x117, x115, x100, x64); + uint32_t x118; + fiat_secp256k1_uint1 x119; + fiat_secp256k1_addcarryx_u32(&x118, &x119, x117, x102, x66); + uint32_t x120; + fiat_secp256k1_uint1 x121; + fiat_secp256k1_addcarryx_u32(&x120, &x121, x119, x104, x68); + uint32_t x122; + fiat_secp256k1_uint1 x123; + fiat_secp256k1_addcarryx_u32(&x122, &x123, x105, 0x0, x77); + uint32_t x124; + fiat_secp256k1_uint1 x125; + fiat_secp256k1_addcarryx_u32(&x124, &x125, x121, x122, x72); + uint32_t x126; + fiat_secp256k1_uint1 x127; + fiat_secp256k1_addcarryx_u32(&x126, &x127, 0x0, (arg1[2]), x108); + uint32_t x128; + fiat_secp256k1_uint1 x129; + fiat_secp256k1_addcarryx_u32(&x128, &x129, x127, 0x0, x110); + uint32_t x130; + fiat_secp256k1_uint1 x131; + fiat_secp256k1_addcarryx_u32(&x130, &x131, x129, 0x0, x112); + uint32_t x132; + fiat_secp256k1_uint1 x133; + fiat_secp256k1_addcarryx_u32(&x132, &x133, x131, 0x0, x114); + uint32_t x134; + fiat_secp256k1_uint1 x135; + fiat_secp256k1_addcarryx_u32(&x134, &x135, x133, 0x0, x116); + uint32_t x136; + fiat_secp256k1_uint1 x137; + fiat_secp256k1_addcarryx_u32(&x136, &x137, x135, 0x0, x118); + uint32_t x138; + fiat_secp256k1_uint1 x139; + fiat_secp256k1_addcarryx_u32(&x138, &x139, x137, 0x0, x120); + uint32_t x140; + fiat_secp256k1_uint1 x141; + fiat_secp256k1_addcarryx_u32(&x140, &x141, x139, 0x0, x124); + uint32_t x142; + fiat_secp256k1_uint1 x143; + fiat_secp256k1_addcarryx_u32(&x142, &x143, x125, 0x0, x73); + uint32_t x144; + fiat_secp256k1_uint1 x145; + fiat_secp256k1_addcarryx_u32(&x144, &x145, x141, 0x0, (fiat_secp256k1_uint1)x142); + uint32_t x146; + uint32_t x147; + fiat_secp256k1_mulx_u32(&x146, &x147, x126, UINT32_C(0xd2253531)); + uint32_t x148; + uint32_t x149; + fiat_secp256k1_mulx_u32(&x148, &x149, x146, UINT32_C(0xffffffff)); + uint32_t x150; + uint32_t x151; + fiat_secp256k1_mulx_u32(&x150, &x151, x146, UINT32_C(0xffffffff)); + uint32_t x152; + uint32_t x153; + fiat_secp256k1_mulx_u32(&x152, &x153, x146, UINT32_C(0xffffffff)); + uint32_t x154; + uint32_t x155; + fiat_secp256k1_mulx_u32(&x154, &x155, x146, UINT32_C(0xffffffff)); + uint32_t x156; + uint32_t x157; + fiat_secp256k1_mulx_u32(&x156, &x157, x146, UINT32_C(0xffffffff)); + uint32_t x158; + uint32_t x159; + fiat_secp256k1_mulx_u32(&x158, &x159, x146, UINT32_C(0xffffffff)); + uint32_t x160; + uint32_t x161; + fiat_secp256k1_mulx_u32(&x160, &x161, x146, UINT32_C(0xfffffffe)); + uint32_t x162; + uint32_t x163; + fiat_secp256k1_mulx_u32(&x162, &x163, x146, UINT32_C(0xfffffc2f)); + uint32_t x164; + fiat_secp256k1_uint1 x165; + fiat_secp256k1_addcarryx_u32(&x164, &x165, 0x0, x160, x163); + uint32_t x166; + fiat_secp256k1_uint1 x167; + fiat_secp256k1_addcarryx_u32(&x166, &x167, x165, x158, x161); + uint32_t x168; + fiat_secp256k1_uint1 x169; + fiat_secp256k1_addcarryx_u32(&x168, &x169, x167, x156, x159); + uint32_t x170; + fiat_secp256k1_uint1 x171; + fiat_secp256k1_addcarryx_u32(&x170, &x171, x169, x154, x157); + uint32_t x172; + fiat_secp256k1_uint1 x173; + fiat_secp256k1_addcarryx_u32(&x172, &x173, x171, x152, x155); + uint32_t x174; + fiat_secp256k1_uint1 x175; + fiat_secp256k1_addcarryx_u32(&x174, &x175, x173, x150, x153); + uint32_t x176; + fiat_secp256k1_uint1 x177; + fiat_secp256k1_addcarryx_u32(&x176, &x177, x175, x148, x151); + uint32_t x178; + fiat_secp256k1_uint1 x179; + fiat_secp256k1_addcarryx_u32(&x178, &x179, 0x0, x162, x126); + uint32_t x180; + fiat_secp256k1_uint1 x181; + fiat_secp256k1_addcarryx_u32(&x180, &x181, x179, x164, x128); + uint32_t x182; + fiat_secp256k1_uint1 x183; + fiat_secp256k1_addcarryx_u32(&x182, &x183, x181, x166, x130); + uint32_t x184; + fiat_secp256k1_uint1 x185; + fiat_secp256k1_addcarryx_u32(&x184, &x185, x183, x168, x132); + uint32_t x186; + fiat_secp256k1_uint1 x187; + fiat_secp256k1_addcarryx_u32(&x186, &x187, x185, x170, x134); + uint32_t x188; + fiat_secp256k1_uint1 x189; + fiat_secp256k1_addcarryx_u32(&x188, &x189, x187, x172, x136); + uint32_t x190; + fiat_secp256k1_uint1 x191; + fiat_secp256k1_addcarryx_u32(&x190, &x191, x189, x174, x138); + uint32_t x192; + fiat_secp256k1_uint1 x193; + fiat_secp256k1_addcarryx_u32(&x192, &x193, x191, x176, x140); + uint32_t x194; + fiat_secp256k1_uint1 x195; + fiat_secp256k1_addcarryx_u32(&x194, &x195, x177, 0x0, x149); + uint32_t x196; + fiat_secp256k1_uint1 x197; + fiat_secp256k1_addcarryx_u32(&x196, &x197, x193, x194, x144); + uint32_t x198; + fiat_secp256k1_uint1 x199; + fiat_secp256k1_addcarryx_u32(&x198, &x199, 0x0, (arg1[3]), x180); + uint32_t x200; + fiat_secp256k1_uint1 x201; + fiat_secp256k1_addcarryx_u32(&x200, &x201, x199, 0x0, x182); + uint32_t x202; + fiat_secp256k1_uint1 x203; + fiat_secp256k1_addcarryx_u32(&x202, &x203, x201, 0x0, x184); + uint32_t x204; + fiat_secp256k1_uint1 x205; + fiat_secp256k1_addcarryx_u32(&x204, &x205, x203, 0x0, x186); + uint32_t x206; + fiat_secp256k1_uint1 x207; + fiat_secp256k1_addcarryx_u32(&x206, &x207, x205, 0x0, x188); + uint32_t x208; + fiat_secp256k1_uint1 x209; + fiat_secp256k1_addcarryx_u32(&x208, &x209, x207, 0x0, x190); + uint32_t x210; + fiat_secp256k1_uint1 x211; + fiat_secp256k1_addcarryx_u32(&x210, &x211, x209, 0x0, x192); + uint32_t x212; + fiat_secp256k1_uint1 x213; + fiat_secp256k1_addcarryx_u32(&x212, &x213, x211, 0x0, x196); + uint32_t x214; + fiat_secp256k1_uint1 x215; + fiat_secp256k1_addcarryx_u32(&x214, &x215, x197, 0x0, x145); + uint32_t x216; + fiat_secp256k1_uint1 x217; + fiat_secp256k1_addcarryx_u32(&x216, &x217, x213, 0x0, (fiat_secp256k1_uint1)x214); + uint32_t x218; + uint32_t x219; + fiat_secp256k1_mulx_u32(&x218, &x219, x198, UINT32_C(0xd2253531)); + uint32_t x220; + uint32_t x221; + fiat_secp256k1_mulx_u32(&x220, &x221, x218, UINT32_C(0xffffffff)); + uint32_t x222; + uint32_t x223; + fiat_secp256k1_mulx_u32(&x222, &x223, x218, UINT32_C(0xffffffff)); + uint32_t x224; + uint32_t x225; + fiat_secp256k1_mulx_u32(&x224, &x225, x218, UINT32_C(0xffffffff)); + uint32_t x226; + uint32_t x227; + fiat_secp256k1_mulx_u32(&x226, &x227, x218, UINT32_C(0xffffffff)); + uint32_t x228; + uint32_t x229; + fiat_secp256k1_mulx_u32(&x228, &x229, x218, UINT32_C(0xffffffff)); + uint32_t x230; + uint32_t x231; + fiat_secp256k1_mulx_u32(&x230, &x231, x218, UINT32_C(0xffffffff)); + uint32_t x232; + uint32_t x233; + fiat_secp256k1_mulx_u32(&x232, &x233, x218, UINT32_C(0xfffffffe)); + uint32_t x234; + uint32_t x235; + fiat_secp256k1_mulx_u32(&x234, &x235, x218, UINT32_C(0xfffffc2f)); + uint32_t x236; + fiat_secp256k1_uint1 x237; + fiat_secp256k1_addcarryx_u32(&x236, &x237, 0x0, x232, x235); + uint32_t x238; + fiat_secp256k1_uint1 x239; + fiat_secp256k1_addcarryx_u32(&x238, &x239, x237, x230, x233); + uint32_t x240; + fiat_secp256k1_uint1 x241; + fiat_secp256k1_addcarryx_u32(&x240, &x241, x239, x228, x231); + uint32_t x242; + fiat_secp256k1_uint1 x243; + fiat_secp256k1_addcarryx_u32(&x242, &x243, x241, x226, x229); + uint32_t x244; + fiat_secp256k1_uint1 x245; + fiat_secp256k1_addcarryx_u32(&x244, &x245, x243, x224, x227); + uint32_t x246; + fiat_secp256k1_uint1 x247; + fiat_secp256k1_addcarryx_u32(&x246, &x247, x245, x222, x225); + uint32_t x248; + fiat_secp256k1_uint1 x249; + fiat_secp256k1_addcarryx_u32(&x248, &x249, x247, x220, x223); + uint32_t x250; + fiat_secp256k1_uint1 x251; + fiat_secp256k1_addcarryx_u32(&x250, &x251, 0x0, x234, x198); + uint32_t x252; + fiat_secp256k1_uint1 x253; + fiat_secp256k1_addcarryx_u32(&x252, &x253, x251, x236, x200); + uint32_t x254; + fiat_secp256k1_uint1 x255; + fiat_secp256k1_addcarryx_u32(&x254, &x255, x253, x238, x202); + uint32_t x256; + fiat_secp256k1_uint1 x257; + fiat_secp256k1_addcarryx_u32(&x256, &x257, x255, x240, x204); + uint32_t x258; + fiat_secp256k1_uint1 x259; + fiat_secp256k1_addcarryx_u32(&x258, &x259, x257, x242, x206); + uint32_t x260; + fiat_secp256k1_uint1 x261; + fiat_secp256k1_addcarryx_u32(&x260, &x261, x259, x244, x208); + uint32_t x262; + fiat_secp256k1_uint1 x263; + fiat_secp256k1_addcarryx_u32(&x262, &x263, x261, x246, x210); + uint32_t x264; + fiat_secp256k1_uint1 x265; + fiat_secp256k1_addcarryx_u32(&x264, &x265, x263, x248, x212); + uint32_t x266; + fiat_secp256k1_uint1 x267; + fiat_secp256k1_addcarryx_u32(&x266, &x267, x249, 0x0, x221); + uint32_t x268; + fiat_secp256k1_uint1 x269; + fiat_secp256k1_addcarryx_u32(&x268, &x269, x265, x266, x216); + uint32_t x270; + fiat_secp256k1_uint1 x271; + fiat_secp256k1_addcarryx_u32(&x270, &x271, 0x0, (arg1[4]), x252); + uint32_t x272; + fiat_secp256k1_uint1 x273; + fiat_secp256k1_addcarryx_u32(&x272, &x273, x271, 0x0, x254); + uint32_t x274; + fiat_secp256k1_uint1 x275; + fiat_secp256k1_addcarryx_u32(&x274, &x275, x273, 0x0, x256); + uint32_t x276; + fiat_secp256k1_uint1 x277; + fiat_secp256k1_addcarryx_u32(&x276, &x277, x275, 0x0, x258); + uint32_t x278; + fiat_secp256k1_uint1 x279; + fiat_secp256k1_addcarryx_u32(&x278, &x279, x277, 0x0, x260); + uint32_t x280; + fiat_secp256k1_uint1 x281; + fiat_secp256k1_addcarryx_u32(&x280, &x281, x279, 0x0, x262); + uint32_t x282; + fiat_secp256k1_uint1 x283; + fiat_secp256k1_addcarryx_u32(&x282, &x283, x281, 0x0, x264); + uint32_t x284; + fiat_secp256k1_uint1 x285; + fiat_secp256k1_addcarryx_u32(&x284, &x285, x283, 0x0, x268); + uint32_t x286; + fiat_secp256k1_uint1 x287; + fiat_secp256k1_addcarryx_u32(&x286, &x287, x269, 0x0, x217); + uint32_t x288; + fiat_secp256k1_uint1 x289; + fiat_secp256k1_addcarryx_u32(&x288, &x289, x285, 0x0, (fiat_secp256k1_uint1)x286); + uint32_t x290; + uint32_t x291; + fiat_secp256k1_mulx_u32(&x290, &x291, x270, UINT32_C(0xd2253531)); + uint32_t x292; + uint32_t x293; + fiat_secp256k1_mulx_u32(&x292, &x293, x290, UINT32_C(0xffffffff)); + uint32_t x294; + uint32_t x295; + fiat_secp256k1_mulx_u32(&x294, &x295, x290, UINT32_C(0xffffffff)); + uint32_t x296; + uint32_t x297; + fiat_secp256k1_mulx_u32(&x296, &x297, x290, UINT32_C(0xffffffff)); + uint32_t x298; + uint32_t x299; + fiat_secp256k1_mulx_u32(&x298, &x299, x290, UINT32_C(0xffffffff)); + uint32_t x300; + uint32_t x301; + fiat_secp256k1_mulx_u32(&x300, &x301, x290, UINT32_C(0xffffffff)); + uint32_t x302; + uint32_t x303; + fiat_secp256k1_mulx_u32(&x302, &x303, x290, UINT32_C(0xffffffff)); + uint32_t x304; + uint32_t x305; + fiat_secp256k1_mulx_u32(&x304, &x305, x290, UINT32_C(0xfffffffe)); + uint32_t x306; + uint32_t x307; + fiat_secp256k1_mulx_u32(&x306, &x307, x290, UINT32_C(0xfffffc2f)); + uint32_t x308; + fiat_secp256k1_uint1 x309; + fiat_secp256k1_addcarryx_u32(&x308, &x309, 0x0, x304, x307); + uint32_t x310; + fiat_secp256k1_uint1 x311; + fiat_secp256k1_addcarryx_u32(&x310, &x311, x309, x302, x305); + uint32_t x312; + fiat_secp256k1_uint1 x313; + fiat_secp256k1_addcarryx_u32(&x312, &x313, x311, x300, x303); + uint32_t x314; + fiat_secp256k1_uint1 x315; + fiat_secp256k1_addcarryx_u32(&x314, &x315, x313, x298, x301); + uint32_t x316; + fiat_secp256k1_uint1 x317; + fiat_secp256k1_addcarryx_u32(&x316, &x317, x315, x296, x299); + uint32_t x318; + fiat_secp256k1_uint1 x319; + fiat_secp256k1_addcarryx_u32(&x318, &x319, x317, x294, x297); + uint32_t x320; + fiat_secp256k1_uint1 x321; + fiat_secp256k1_addcarryx_u32(&x320, &x321, x319, x292, x295); + uint32_t x322; + fiat_secp256k1_uint1 x323; + fiat_secp256k1_addcarryx_u32(&x322, &x323, 0x0, x306, x270); + uint32_t x324; + fiat_secp256k1_uint1 x325; + fiat_secp256k1_addcarryx_u32(&x324, &x325, x323, x308, x272); + uint32_t x326; + fiat_secp256k1_uint1 x327; + fiat_secp256k1_addcarryx_u32(&x326, &x327, x325, x310, x274); + uint32_t x328; + fiat_secp256k1_uint1 x329; + fiat_secp256k1_addcarryx_u32(&x328, &x329, x327, x312, x276); + uint32_t x330; + fiat_secp256k1_uint1 x331; + fiat_secp256k1_addcarryx_u32(&x330, &x331, x329, x314, x278); + uint32_t x332; + fiat_secp256k1_uint1 x333; + fiat_secp256k1_addcarryx_u32(&x332, &x333, x331, x316, x280); + uint32_t x334; + fiat_secp256k1_uint1 x335; + fiat_secp256k1_addcarryx_u32(&x334, &x335, x333, x318, x282); + uint32_t x336; + fiat_secp256k1_uint1 x337; + fiat_secp256k1_addcarryx_u32(&x336, &x337, x335, x320, x284); + uint32_t x338; + fiat_secp256k1_uint1 x339; + fiat_secp256k1_addcarryx_u32(&x338, &x339, x321, 0x0, x293); + uint32_t x340; + fiat_secp256k1_uint1 x341; + fiat_secp256k1_addcarryx_u32(&x340, &x341, x337, x338, x288); + uint32_t x342; + fiat_secp256k1_uint1 x343; + fiat_secp256k1_addcarryx_u32(&x342, &x343, 0x0, (arg1[5]), x324); + uint32_t x344; + fiat_secp256k1_uint1 x345; + fiat_secp256k1_addcarryx_u32(&x344, &x345, x343, 0x0, x326); + uint32_t x346; + fiat_secp256k1_uint1 x347; + fiat_secp256k1_addcarryx_u32(&x346, &x347, x345, 0x0, x328); + uint32_t x348; + fiat_secp256k1_uint1 x349; + fiat_secp256k1_addcarryx_u32(&x348, &x349, x347, 0x0, x330); + uint32_t x350; + fiat_secp256k1_uint1 x351; + fiat_secp256k1_addcarryx_u32(&x350, &x351, x349, 0x0, x332); + uint32_t x352; + fiat_secp256k1_uint1 x353; + fiat_secp256k1_addcarryx_u32(&x352, &x353, x351, 0x0, x334); + uint32_t x354; + fiat_secp256k1_uint1 x355; + fiat_secp256k1_addcarryx_u32(&x354, &x355, x353, 0x0, x336); + uint32_t x356; + fiat_secp256k1_uint1 x357; + fiat_secp256k1_addcarryx_u32(&x356, &x357, x355, 0x0, x340); + uint32_t x358; + fiat_secp256k1_uint1 x359; + fiat_secp256k1_addcarryx_u32(&x358, &x359, x341, 0x0, x289); + uint32_t x360; + fiat_secp256k1_uint1 x361; + fiat_secp256k1_addcarryx_u32(&x360, &x361, x357, 0x0, (fiat_secp256k1_uint1)x358); + uint32_t x362; + uint32_t x363; + fiat_secp256k1_mulx_u32(&x362, &x363, x342, UINT32_C(0xd2253531)); + uint32_t x364; + uint32_t x365; + fiat_secp256k1_mulx_u32(&x364, &x365, x362, UINT32_C(0xffffffff)); + uint32_t x366; + uint32_t x367; + fiat_secp256k1_mulx_u32(&x366, &x367, x362, UINT32_C(0xffffffff)); + uint32_t x368; + uint32_t x369; + fiat_secp256k1_mulx_u32(&x368, &x369, x362, UINT32_C(0xffffffff)); + uint32_t x370; + uint32_t x371; + fiat_secp256k1_mulx_u32(&x370, &x371, x362, UINT32_C(0xffffffff)); + uint32_t x372; + uint32_t x373; + fiat_secp256k1_mulx_u32(&x372, &x373, x362, UINT32_C(0xffffffff)); + uint32_t x374; + uint32_t x375; + fiat_secp256k1_mulx_u32(&x374, &x375, x362, UINT32_C(0xffffffff)); + uint32_t x376; + uint32_t x377; + fiat_secp256k1_mulx_u32(&x376, &x377, x362, UINT32_C(0xfffffffe)); + uint32_t x378; + uint32_t x379; + fiat_secp256k1_mulx_u32(&x378, &x379, x362, UINT32_C(0xfffffc2f)); + uint32_t x380; + fiat_secp256k1_uint1 x381; + fiat_secp256k1_addcarryx_u32(&x380, &x381, 0x0, x376, x379); + uint32_t x382; + fiat_secp256k1_uint1 x383; + fiat_secp256k1_addcarryx_u32(&x382, &x383, x381, x374, x377); + uint32_t x384; + fiat_secp256k1_uint1 x385; + fiat_secp256k1_addcarryx_u32(&x384, &x385, x383, x372, x375); + uint32_t x386; + fiat_secp256k1_uint1 x387; + fiat_secp256k1_addcarryx_u32(&x386, &x387, x385, x370, x373); + uint32_t x388; + fiat_secp256k1_uint1 x389; + fiat_secp256k1_addcarryx_u32(&x388, &x389, x387, x368, x371); + uint32_t x390; + fiat_secp256k1_uint1 x391; + fiat_secp256k1_addcarryx_u32(&x390, &x391, x389, x366, x369); + uint32_t x392; + fiat_secp256k1_uint1 x393; + fiat_secp256k1_addcarryx_u32(&x392, &x393, x391, x364, x367); + uint32_t x394; + fiat_secp256k1_uint1 x395; + fiat_secp256k1_addcarryx_u32(&x394, &x395, 0x0, x378, x342); + uint32_t x396; + fiat_secp256k1_uint1 x397; + fiat_secp256k1_addcarryx_u32(&x396, &x397, x395, x380, x344); + uint32_t x398; + fiat_secp256k1_uint1 x399; + fiat_secp256k1_addcarryx_u32(&x398, &x399, x397, x382, x346); + uint32_t x400; + fiat_secp256k1_uint1 x401; + fiat_secp256k1_addcarryx_u32(&x400, &x401, x399, x384, x348); + uint32_t x402; + fiat_secp256k1_uint1 x403; + fiat_secp256k1_addcarryx_u32(&x402, &x403, x401, x386, x350); + uint32_t x404; + fiat_secp256k1_uint1 x405; + fiat_secp256k1_addcarryx_u32(&x404, &x405, x403, x388, x352); + uint32_t x406; + fiat_secp256k1_uint1 x407; + fiat_secp256k1_addcarryx_u32(&x406, &x407, x405, x390, x354); + uint32_t x408; + fiat_secp256k1_uint1 x409; + fiat_secp256k1_addcarryx_u32(&x408, &x409, x407, x392, x356); + uint32_t x410; + fiat_secp256k1_uint1 x411; + fiat_secp256k1_addcarryx_u32(&x410, &x411, x393, 0x0, x365); + uint32_t x412; + fiat_secp256k1_uint1 x413; + fiat_secp256k1_addcarryx_u32(&x412, &x413, x409, x410, x360); + uint32_t x414; + fiat_secp256k1_uint1 x415; + fiat_secp256k1_addcarryx_u32(&x414, &x415, 0x0, (arg1[6]), x396); + uint32_t x416; + fiat_secp256k1_uint1 x417; + fiat_secp256k1_addcarryx_u32(&x416, &x417, x415, 0x0, x398); + uint32_t x418; + fiat_secp256k1_uint1 x419; + fiat_secp256k1_addcarryx_u32(&x418, &x419, x417, 0x0, x400); + uint32_t x420; + fiat_secp256k1_uint1 x421; + fiat_secp256k1_addcarryx_u32(&x420, &x421, x419, 0x0, x402); + uint32_t x422; + fiat_secp256k1_uint1 x423; + fiat_secp256k1_addcarryx_u32(&x422, &x423, x421, 0x0, x404); + uint32_t x424; + fiat_secp256k1_uint1 x425; + fiat_secp256k1_addcarryx_u32(&x424, &x425, x423, 0x0, x406); + uint32_t x426; + fiat_secp256k1_uint1 x427; + fiat_secp256k1_addcarryx_u32(&x426, &x427, x425, 0x0, x408); + uint32_t x428; + fiat_secp256k1_uint1 x429; + fiat_secp256k1_addcarryx_u32(&x428, &x429, x427, 0x0, x412); + uint32_t x430; + fiat_secp256k1_uint1 x431; + fiat_secp256k1_addcarryx_u32(&x430, &x431, x413, 0x0, x361); + uint32_t x432; + fiat_secp256k1_uint1 x433; + fiat_secp256k1_addcarryx_u32(&x432, &x433, x429, 0x0, (fiat_secp256k1_uint1)x430); + uint32_t x434; + uint32_t x435; + fiat_secp256k1_mulx_u32(&x434, &x435, x414, UINT32_C(0xd2253531)); + uint32_t x436; + uint32_t x437; + fiat_secp256k1_mulx_u32(&x436, &x437, x434, UINT32_C(0xffffffff)); + uint32_t x438; + uint32_t x439; + fiat_secp256k1_mulx_u32(&x438, &x439, x434, UINT32_C(0xffffffff)); + uint32_t x440; + uint32_t x441; + fiat_secp256k1_mulx_u32(&x440, &x441, x434, UINT32_C(0xffffffff)); + uint32_t x442; + uint32_t x443; + fiat_secp256k1_mulx_u32(&x442, &x443, x434, UINT32_C(0xffffffff)); + uint32_t x444; + uint32_t x445; + fiat_secp256k1_mulx_u32(&x444, &x445, x434, UINT32_C(0xffffffff)); + uint32_t x446; + uint32_t x447; + fiat_secp256k1_mulx_u32(&x446, &x447, x434, UINT32_C(0xffffffff)); + uint32_t x448; + uint32_t x449; + fiat_secp256k1_mulx_u32(&x448, &x449, x434, UINT32_C(0xfffffffe)); + uint32_t x450; + uint32_t x451; + fiat_secp256k1_mulx_u32(&x450, &x451, x434, UINT32_C(0xfffffc2f)); + uint32_t x452; + fiat_secp256k1_uint1 x453; + fiat_secp256k1_addcarryx_u32(&x452, &x453, 0x0, x448, x451); + uint32_t x454; + fiat_secp256k1_uint1 x455; + fiat_secp256k1_addcarryx_u32(&x454, &x455, x453, x446, x449); + uint32_t x456; + fiat_secp256k1_uint1 x457; + fiat_secp256k1_addcarryx_u32(&x456, &x457, x455, x444, x447); + uint32_t x458; + fiat_secp256k1_uint1 x459; + fiat_secp256k1_addcarryx_u32(&x458, &x459, x457, x442, x445); + uint32_t x460; + fiat_secp256k1_uint1 x461; + fiat_secp256k1_addcarryx_u32(&x460, &x461, x459, x440, x443); + uint32_t x462; + fiat_secp256k1_uint1 x463; + fiat_secp256k1_addcarryx_u32(&x462, &x463, x461, x438, x441); + uint32_t x464; + fiat_secp256k1_uint1 x465; + fiat_secp256k1_addcarryx_u32(&x464, &x465, x463, x436, x439); + uint32_t x466; + fiat_secp256k1_uint1 x467; + fiat_secp256k1_addcarryx_u32(&x466, &x467, 0x0, x450, x414); + uint32_t x468; + fiat_secp256k1_uint1 x469; + fiat_secp256k1_addcarryx_u32(&x468, &x469, x467, x452, x416); + uint32_t x470; + fiat_secp256k1_uint1 x471; + fiat_secp256k1_addcarryx_u32(&x470, &x471, x469, x454, x418); + uint32_t x472; + fiat_secp256k1_uint1 x473; + fiat_secp256k1_addcarryx_u32(&x472, &x473, x471, x456, x420); + uint32_t x474; + fiat_secp256k1_uint1 x475; + fiat_secp256k1_addcarryx_u32(&x474, &x475, x473, x458, x422); + uint32_t x476; + fiat_secp256k1_uint1 x477; + fiat_secp256k1_addcarryx_u32(&x476, &x477, x475, x460, x424); + uint32_t x478; + fiat_secp256k1_uint1 x479; + fiat_secp256k1_addcarryx_u32(&x478, &x479, x477, x462, x426); + uint32_t x480; + fiat_secp256k1_uint1 x481; + fiat_secp256k1_addcarryx_u32(&x480, &x481, x479, x464, x428); + uint32_t x482; + fiat_secp256k1_uint1 x483; + fiat_secp256k1_addcarryx_u32(&x482, &x483, x465, 0x0, x437); + uint32_t x484; + fiat_secp256k1_uint1 x485; + fiat_secp256k1_addcarryx_u32(&x484, &x485, x481, x482, x432); + uint32_t x486; + fiat_secp256k1_uint1 x487; + fiat_secp256k1_addcarryx_u32(&x486, &x487, 0x0, (arg1[7]), x468); + uint32_t x488; + fiat_secp256k1_uint1 x489; + fiat_secp256k1_addcarryx_u32(&x488, &x489, x487, 0x0, x470); + uint32_t x490; + fiat_secp256k1_uint1 x491; + fiat_secp256k1_addcarryx_u32(&x490, &x491, x489, 0x0, x472); + uint32_t x492; + fiat_secp256k1_uint1 x493; + fiat_secp256k1_addcarryx_u32(&x492, &x493, x491, 0x0, x474); + uint32_t x494; + fiat_secp256k1_uint1 x495; + fiat_secp256k1_addcarryx_u32(&x494, &x495, x493, 0x0, x476); + uint32_t x496; + fiat_secp256k1_uint1 x497; + fiat_secp256k1_addcarryx_u32(&x496, &x497, x495, 0x0, x478); + uint32_t x498; + fiat_secp256k1_uint1 x499; + fiat_secp256k1_addcarryx_u32(&x498, &x499, x497, 0x0, x480); + uint32_t x500; + fiat_secp256k1_uint1 x501; + fiat_secp256k1_addcarryx_u32(&x500, &x501, x499, 0x0, x484); + uint32_t x502; + fiat_secp256k1_uint1 x503; + fiat_secp256k1_addcarryx_u32(&x502, &x503, x485, 0x0, x433); + uint32_t x504; + fiat_secp256k1_uint1 x505; + fiat_secp256k1_addcarryx_u32(&x504, &x505, x501, 0x0, (fiat_secp256k1_uint1)x502); + uint32_t x506; + uint32_t x507; + fiat_secp256k1_mulx_u32(&x506, &x507, x486, UINT32_C(0xd2253531)); + uint32_t x508; + uint32_t x509; + fiat_secp256k1_mulx_u32(&x508, &x509, x506, UINT32_C(0xffffffff)); + uint32_t x510; + uint32_t x511; + fiat_secp256k1_mulx_u32(&x510, &x511, x506, UINT32_C(0xffffffff)); + uint32_t x512; + uint32_t x513; + fiat_secp256k1_mulx_u32(&x512, &x513, x506, UINT32_C(0xffffffff)); + uint32_t x514; + uint32_t x515; + fiat_secp256k1_mulx_u32(&x514, &x515, x506, UINT32_C(0xffffffff)); + uint32_t x516; + uint32_t x517; + fiat_secp256k1_mulx_u32(&x516, &x517, x506, UINT32_C(0xffffffff)); + uint32_t x518; + uint32_t x519; + fiat_secp256k1_mulx_u32(&x518, &x519, x506, UINT32_C(0xffffffff)); + uint32_t x520; + uint32_t x521; + fiat_secp256k1_mulx_u32(&x520, &x521, x506, UINT32_C(0xfffffffe)); + uint32_t x522; + uint32_t x523; + fiat_secp256k1_mulx_u32(&x522, &x523, x506, UINT32_C(0xfffffc2f)); + uint32_t x524; + fiat_secp256k1_uint1 x525; + fiat_secp256k1_addcarryx_u32(&x524, &x525, 0x0, x520, x523); + uint32_t x526; + fiat_secp256k1_uint1 x527; + fiat_secp256k1_addcarryx_u32(&x526, &x527, x525, x518, x521); + uint32_t x528; + fiat_secp256k1_uint1 x529; + fiat_secp256k1_addcarryx_u32(&x528, &x529, x527, x516, x519); + uint32_t x530; + fiat_secp256k1_uint1 x531; + fiat_secp256k1_addcarryx_u32(&x530, &x531, x529, x514, x517); + uint32_t x532; + fiat_secp256k1_uint1 x533; + fiat_secp256k1_addcarryx_u32(&x532, &x533, x531, x512, x515); + uint32_t x534; + fiat_secp256k1_uint1 x535; + fiat_secp256k1_addcarryx_u32(&x534, &x535, x533, x510, x513); + uint32_t x536; + fiat_secp256k1_uint1 x537; + fiat_secp256k1_addcarryx_u32(&x536, &x537, x535, x508, x511); + uint32_t x538; + fiat_secp256k1_uint1 x539; + fiat_secp256k1_addcarryx_u32(&x538, &x539, 0x0, x522, x486); + uint32_t x540; + fiat_secp256k1_uint1 x541; + fiat_secp256k1_addcarryx_u32(&x540, &x541, x539, x524, x488); + uint32_t x542; + fiat_secp256k1_uint1 x543; + fiat_secp256k1_addcarryx_u32(&x542, &x543, x541, x526, x490); + uint32_t x544; + fiat_secp256k1_uint1 x545; + fiat_secp256k1_addcarryx_u32(&x544, &x545, x543, x528, x492); + uint32_t x546; + fiat_secp256k1_uint1 x547; + fiat_secp256k1_addcarryx_u32(&x546, &x547, x545, x530, x494); + uint32_t x548; + fiat_secp256k1_uint1 x549; + fiat_secp256k1_addcarryx_u32(&x548, &x549, x547, x532, x496); + uint32_t x550; + fiat_secp256k1_uint1 x551; + fiat_secp256k1_addcarryx_u32(&x550, &x551, x549, x534, x498); + uint32_t x552; + fiat_secp256k1_uint1 x553; + fiat_secp256k1_addcarryx_u32(&x552, &x553, x551, x536, x500); + uint32_t x554; + fiat_secp256k1_uint1 x555; + fiat_secp256k1_addcarryx_u32(&x554, &x555, x537, 0x0, x509); + uint32_t x556; + fiat_secp256k1_uint1 x557; + fiat_secp256k1_addcarryx_u32(&x556, &x557, x553, x554, x504); + uint32_t x558; + fiat_secp256k1_uint1 x559; + fiat_secp256k1_subborrowx_u32(&x558, &x559, 0x0, x540, UINT32_C(0xfffffc2f)); + uint32_t x560; + fiat_secp256k1_uint1 x561; + fiat_secp256k1_subborrowx_u32(&x560, &x561, x559, x542, UINT32_C(0xfffffffe)); + uint32_t x562; + fiat_secp256k1_uint1 x563; + fiat_secp256k1_subborrowx_u32(&x562, &x563, x561, x544, UINT32_C(0xffffffff)); + uint32_t x564; + fiat_secp256k1_uint1 x565; + fiat_secp256k1_subborrowx_u32(&x564, &x565, x563, x546, UINT32_C(0xffffffff)); + uint32_t x566; + fiat_secp256k1_uint1 x567; + fiat_secp256k1_subborrowx_u32(&x566, &x567, x565, x548, UINT32_C(0xffffffff)); + uint32_t x568; + fiat_secp256k1_uint1 x569; + fiat_secp256k1_subborrowx_u32(&x568, &x569, x567, x550, UINT32_C(0xffffffff)); + uint32_t x570; + fiat_secp256k1_uint1 x571; + fiat_secp256k1_subborrowx_u32(&x570, &x571, x569, x552, UINT32_C(0xffffffff)); + uint32_t x572; + fiat_secp256k1_uint1 x573; + fiat_secp256k1_subborrowx_u32(&x572, &x573, x571, x556, UINT32_C(0xffffffff)); + uint32_t x574; + fiat_secp256k1_uint1 x575; + fiat_secp256k1_addcarryx_u32(&x574, &x575, x557, 0x0, x505); + uint32_t x576; + fiat_secp256k1_uint1 x577; + fiat_secp256k1_subborrowx_u32(&x576, &x577, x573, (fiat_secp256k1_uint1)x574, 0x0); + uint32_t x578; + fiat_secp256k1_cmovznz_u32(&x578, x577, x558, x540); + uint32_t x579; + fiat_secp256k1_cmovznz_u32(&x579, x577, x560, x542); + uint32_t x580; + fiat_secp256k1_cmovznz_u32(&x580, x577, x562, x544); + uint32_t x581; + fiat_secp256k1_cmovznz_u32(&x581, x577, x564, x546); + uint32_t x582; + fiat_secp256k1_cmovznz_u32(&x582, x577, x566, x548); + uint32_t x583; + fiat_secp256k1_cmovznz_u32(&x583, x577, x568, x550); + uint32_t x584; + fiat_secp256k1_cmovznz_u32(&x584, x577, x570, x552); + uint32_t x585; + fiat_secp256k1_cmovznz_u32(&x585, x577, x572, x556); + out1[0] = x578; + out1[1] = x579; + out1[2] = x580; + out1[3] = x581; + out1[4] = x582; + out1[5] = x583; + out1[6] = x584; + out1[7] = x585; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_secp256k1_nonzero(uint32_t* out1, const uint32_t arg1[8]) { + uint32_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint32_t)0x0)))))))); + *out1 = x1; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_selectznz(uint32_t out1[8], fiat_secp256k1_uint1 arg1, const uint32_t arg2[8], const uint32_t arg3[8]) { + uint32_t x1; + fiat_secp256k1_cmovznz_u32(&x1, arg1, (arg2[0]), (arg3[0])); + uint32_t x2; + fiat_secp256k1_cmovznz_u32(&x2, arg1, (arg2[1]), (arg3[1])); + uint32_t x3; + fiat_secp256k1_cmovznz_u32(&x3, arg1, (arg2[2]), (arg3[2])); + uint32_t x4; + fiat_secp256k1_cmovznz_u32(&x4, arg1, (arg2[3]), (arg3[3])); + uint32_t x5; + fiat_secp256k1_cmovznz_u32(&x5, arg1, (arg2[4]), (arg3[4])); + uint32_t x6; + fiat_secp256k1_cmovznz_u32(&x6, arg1, (arg2[5]), (arg3[5])); + uint32_t x7; + fiat_secp256k1_cmovznz_u32(&x7, arg1, (arg2[6]), (arg3[6])); + uint32_t x8; + fiat_secp256k1_cmovznz_u32(&x8, arg1, (arg2[7]), (arg3[7])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) { + uint32_t x1 = (arg1[7]); + uint32_t x2 = (arg1[6]); + uint32_t x3 = (arg1[5]); + uint32_t x4 = (arg1[4]); + uint32_t x5 = (arg1[3]); + uint32_t x6 = (arg1[2]); + uint32_t x7 = (arg1[1]); + uint32_t x8 = (arg1[0]); + uint32_t x9 = (x8 >> 8); + uint8_t x10 = (uint8_t)(x8 & UINT8_C(0xff)); + uint32_t x11 = (x9 >> 8); + uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff)); + uint8_t x13 = (uint8_t)(x11 >> 8); + uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x15 = (fiat_secp256k1_uint1)(x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint32_t x17 = (x15 + x7); + uint32_t x18 = (x17 >> 8); + uint8_t x19 = (uint8_t)(x17 & UINT8_C(0xff)); + uint32_t x20 = (x18 >> 8); + uint8_t x21 = (uint8_t)(x18 & UINT8_C(0xff)); + uint8_t x22 = (uint8_t)(x20 >> 8); + uint8_t x23 = (uint8_t)(x20 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x24 = (fiat_secp256k1_uint1)(x22 >> 8); + uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); + uint32_t x26 = (x24 + x6); + uint32_t x27 = (x26 >> 8); + uint8_t x28 = (uint8_t)(x26 & UINT8_C(0xff)); + uint32_t x29 = (x27 >> 8); + uint8_t x30 = (uint8_t)(x27 & UINT8_C(0xff)); + uint8_t x31 = (uint8_t)(x29 >> 8); + uint8_t x32 = (uint8_t)(x29 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x33 = (fiat_secp256k1_uint1)(x31 >> 8); + uint8_t x34 = (uint8_t)(x31 & UINT8_C(0xff)); + uint32_t x35 = (x33 + x5); + uint32_t x36 = (x35 >> 8); + uint8_t x37 = (uint8_t)(x35 & UINT8_C(0xff)); + uint32_t x38 = (x36 >> 8); + uint8_t x39 = (uint8_t)(x36 & UINT8_C(0xff)); + uint8_t x40 = (uint8_t)(x38 >> 8); + uint8_t x41 = (uint8_t)(x38 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x42 = (fiat_secp256k1_uint1)(x40 >> 8); + uint8_t x43 = (uint8_t)(x40 & UINT8_C(0xff)); + uint32_t x44 = (x42 + x4); + uint32_t x45 = (x44 >> 8); + uint8_t x46 = (uint8_t)(x44 & UINT8_C(0xff)); + uint32_t x47 = (x45 >> 8); + uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); + uint8_t x49 = (uint8_t)(x47 >> 8); + uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x51 = (fiat_secp256k1_uint1)(x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + uint32_t x53 = (x51 + x3); + uint32_t x54 = (x53 >> 8); + uint8_t x55 = (uint8_t)(x53 & UINT8_C(0xff)); + uint32_t x56 = (x54 >> 8); + uint8_t x57 = (uint8_t)(x54 & UINT8_C(0xff)); + uint8_t x58 = (uint8_t)(x56 >> 8); + uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x60 = (fiat_secp256k1_uint1)(x58 >> 8); + uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); + uint32_t x62 = (x60 + x2); + uint32_t x63 = (x62 >> 8); + uint8_t x64 = (uint8_t)(x62 & UINT8_C(0xff)); + uint32_t x65 = (x63 >> 8); + uint8_t x66 = (uint8_t)(x63 & UINT8_C(0xff)); + uint8_t x67 = (uint8_t)(x65 >> 8); + uint8_t x68 = (uint8_t)(x65 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x69 = (fiat_secp256k1_uint1)(x67 >> 8); + uint8_t x70 = (uint8_t)(x67 & UINT8_C(0xff)); + uint32_t x71 = (x69 + x1); + uint32_t x72 = (x71 >> 8); + uint8_t x73 = (uint8_t)(x71 & UINT8_C(0xff)); + uint32_t x74 = (x72 >> 8); + uint8_t x75 = (uint8_t)(x72 & UINT8_C(0xff)); + uint8_t x76 = (uint8_t)(x74 >> 8); + uint8_t x77 = (uint8_t)(x74 & UINT8_C(0xff)); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; + out1[4] = x19; + out1[5] = x21; + out1[6] = x23; + out1[7] = x25; + out1[8] = x28; + out1[9] = x30; + out1[10] = x32; + out1[11] = x34; + out1[12] = x37; + out1[13] = x39; + out1[14] = x41; + out1[15] = x43; + out1[16] = x46; + out1[17] = x48; + out1[18] = x50; + out1[19] = x52; + out1[20] = x55; + out1[21] = x57; + out1[22] = x59; + out1[23] = x61; + out1[24] = x64; + out1[25] = x66; + out1[26] = x68; + out1[27] = x70; + out1[28] = x73; + out1[29] = x75; + out1[30] = x77; + out1[31] = x76; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_secp256k1_from_bytes(uint32_t out1[8], const uint8_t arg1[32]) { + uint32_t x1 = ((uint32_t)(arg1[31]) << 24); + uint32_t x2 = ((uint32_t)(arg1[30]) << 16); + uint32_t x3 = ((uint32_t)(arg1[29]) << 8); + uint8_t x4 = (arg1[28]); + uint32_t x5 = ((uint32_t)(arg1[27]) << 24); + uint32_t x6 = ((uint32_t)(arg1[26]) << 16); + uint32_t x7 = ((uint32_t)(arg1[25]) << 8); + uint8_t x8 = (arg1[24]); + uint32_t x9 = ((uint32_t)(arg1[23]) << 24); + uint32_t x10 = ((uint32_t)(arg1[22]) << 16); + uint32_t x11 = ((uint32_t)(arg1[21]) << 8); + uint8_t x12 = (arg1[20]); + uint32_t x13 = ((uint32_t)(arg1[19]) << 24); + uint32_t x14 = ((uint32_t)(arg1[18]) << 16); + uint32_t x15 = ((uint32_t)(arg1[17]) << 8); + uint8_t x16 = (arg1[16]); + uint32_t x17 = ((uint32_t)(arg1[15]) << 24); + uint32_t x18 = ((uint32_t)(arg1[14]) << 16); + uint32_t x19 = ((uint32_t)(arg1[13]) << 8); + uint8_t x20 = (arg1[12]); + uint32_t x21 = ((uint32_t)(arg1[11]) << 24); + uint32_t x22 = ((uint32_t)(arg1[10]) << 16); + uint32_t x23 = ((uint32_t)(arg1[9]) << 8); + uint8_t x24 = (arg1[8]); + uint32_t x25 = ((uint32_t)(arg1[7]) << 24); + uint32_t x26 = ((uint32_t)(arg1[6]) << 16); + uint32_t x27 = ((uint32_t)(arg1[5]) << 8); + uint8_t x28 = (arg1[4]); + uint32_t x29 = ((uint32_t)(arg1[3]) << 24); + uint32_t x30 = ((uint32_t)(arg1[2]) << 16); + uint32_t x31 = ((uint32_t)(arg1[1]) << 8); + uint8_t x32 = (arg1[0]); + uint32_t x33 = (x32 + (x31 + (x30 + x29))); + fiat_secp256k1_uint1 x34 = (fiat_secp256k1_uint1)((uint64_t)x33 >> 32); + uint32_t x35 = (x33 & UINT32_C(0xffffffff)); + uint32_t x36 = (x4 + (x3 + (x2 + x1))); + uint32_t x37 = (x8 + (x7 + (x6 + x5))); + uint32_t x38 = (x12 + (x11 + (x10 + x9))); + uint32_t x39 = (x16 + (x15 + (x14 + x13))); + uint32_t x40 = (x20 + (x19 + (x18 + x17))); + uint32_t x41 = (x24 + (x23 + (x22 + x21))); + uint32_t x42 = (x28 + (x27 + (x26 + x25))); + uint32_t x43 = (x34 + x42); + fiat_secp256k1_uint1 x44 = (fiat_secp256k1_uint1)((uint64_t)x43 >> 32); + uint32_t x45 = (x43 & UINT32_C(0xffffffff)); + uint32_t x46 = (x44 + x41); + fiat_secp256k1_uint1 x47 = (fiat_secp256k1_uint1)((uint64_t)x46 >> 32); + uint32_t x48 = (x46 & UINT32_C(0xffffffff)); + uint32_t x49 = (x47 + x40); + fiat_secp256k1_uint1 x50 = (fiat_secp256k1_uint1)((uint64_t)x49 >> 32); + uint32_t x51 = (x49 & UINT32_C(0xffffffff)); + uint32_t x52 = (x50 + x39); + fiat_secp256k1_uint1 x53 = (fiat_secp256k1_uint1)((uint64_t)x52 >> 32); + uint32_t x54 = (x52 & UINT32_C(0xffffffff)); + uint32_t x55 = (x53 + x38); + fiat_secp256k1_uint1 x56 = (fiat_secp256k1_uint1)((uint64_t)x55 >> 32); + uint32_t x57 = (x55 & UINT32_C(0xffffffff)); + uint32_t x58 = (x56 + x37); + fiat_secp256k1_uint1 x59 = (fiat_secp256k1_uint1)((uint64_t)x58 >> 32); + uint32_t x60 = (x58 & UINT32_C(0xffffffff)); + uint32_t x61 = (x59 + x36); + out1[0] = x35; + out1[1] = x45; + out1[2] = x48; + out1[3] = x51; + out1[4] = x54; + out1[5] = x57; + out1[6] = x60; + out1[7] = x61; +} + diff --git a/secp256k1_64.c b/secp256k1_64.c new file mode 100644 index 000000000..729a8a2c2 --- /dev/null +++ b/secp256k1_64.c @@ -0,0 +1,1401 @@ +/* Autogenerated */ +/* curve description: secp256k1 */ +/* requested operations: (all) */ +/* s = 0x10000000000000000000000000000000000000000000000000000000000000000 (from "2^256") */ +/* c = [(4294967296, 1), (1, 977)] (from "2^32,1;1,977") */ +/* machine_wordsize = 64 (from "64") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (s-c), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ + +#include <stdint.h> +typedef unsigned char fiat_secp256k1_uint1; +typedef signed char fiat_secp256k1_int1; +typedef signed __int128 fiat_secp256k1_int128; +typedef unsigned __int128 fiat_secp256k1_uint128; + + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_secp256k1_addcarryx_u64(uint64_t* out1, fiat_secp256k1_uint1* out2, fiat_secp256k1_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_secp256k1_uint128 x1 = ((arg1 + (fiat_secp256k1_uint128)arg2) + arg3); + uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + fiat_secp256k1_uint1 x3 = (fiat_secp256k1_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_secp256k1_subborrowx_u64(uint64_t* out1, fiat_secp256k1_uint1* out2, fiat_secp256k1_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_secp256k1_int128 x1 = ((arg2 - (fiat_secp256k1_int128)arg1) - arg3); + fiat_secp256k1_int1 x2 = (fiat_secp256k1_int1)((fiat_secp256k1_uint128)x1 >> 64); + uint64_t x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_secp256k1_uint1)(0x0 - x2); +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_secp256k1_mulx_u64(uint64_t* out1, uint64_t* out2, uint64_t arg1, uint64_t arg2) { + fiat_secp256k1_uint128 x1 = ((fiat_secp256k1_uint128)arg1 * arg2); + uint64_t x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_secp256k1_cmovznz_u64(uint64_t* out1, fiat_secp256k1_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_secp256k1_uint1 x1 = (!(!arg1)); + uint64_t x2 = ((fiat_secp256k1_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff)); + uint64_t x3 = ((x2 & arg3) | (uint64_t)((fiat_secp256k1_uint128)(~x2) & arg2)); + *out1 = x3; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_mul(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1 = (arg1[1]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[0]); + uint64_t x5; + uint64_t x6; + fiat_secp256k1_mulx_u64(&x5, &x6, x4, (arg2[3])); + uint64_t x7; + uint64_t x8; + fiat_secp256k1_mulx_u64(&x7, &x8, x4, (arg2[2])); + uint64_t x9; + uint64_t x10; + fiat_secp256k1_mulx_u64(&x9, &x10, x4, (arg2[1])); + uint64_t x11; + uint64_t x12; + fiat_secp256k1_mulx_u64(&x11, &x12, x4, (arg2[0])); + uint64_t x13; + fiat_secp256k1_uint1 x14; + fiat_secp256k1_addcarryx_u64(&x13, &x14, 0x0, x9, x12); + uint64_t x15; + fiat_secp256k1_uint1 x16; + fiat_secp256k1_addcarryx_u64(&x15, &x16, x14, x7, x10); + uint64_t x17; + fiat_secp256k1_uint1 x18; + fiat_secp256k1_addcarryx_u64(&x17, &x18, x16, x5, x8); + uint64_t x19; + fiat_secp256k1_uint1 x20; + fiat_secp256k1_addcarryx_u64(&x19, &x20, x18, 0x0, x6); + uint64_t x21; + uint64_t x22; + fiat_secp256k1_mulx_u64(&x21, &x22, x11, UINT64_C(0xd838091dd2253531)); + uint64_t x23; + uint64_t x24; + fiat_secp256k1_mulx_u64(&x23, &x24, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x25; + uint64_t x26; + fiat_secp256k1_mulx_u64(&x25, &x26, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x27; + uint64_t x28; + fiat_secp256k1_mulx_u64(&x27, &x28, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x29; + uint64_t x30; + fiat_secp256k1_mulx_u64(&x29, &x30, x21, UINT64_C(0xfffffffefffffc2f)); + uint64_t x31; + fiat_secp256k1_uint1 x32; + fiat_secp256k1_addcarryx_u64(&x31, &x32, 0x0, x27, x30); + uint64_t x33; + fiat_secp256k1_uint1 x34; + fiat_secp256k1_addcarryx_u64(&x33, &x34, x32, x25, x28); + uint64_t x35; + fiat_secp256k1_uint1 x36; + fiat_secp256k1_addcarryx_u64(&x35, &x36, x34, x23, x26); + uint64_t x37; + fiat_secp256k1_uint1 x38; + fiat_secp256k1_addcarryx_u64(&x37, &x38, x36, 0x0, x24); + uint64_t x39; + fiat_secp256k1_uint1 x40; + fiat_secp256k1_addcarryx_u64(&x39, &x40, 0x0, x29, x11); + uint64_t x41; + fiat_secp256k1_uint1 x42; + fiat_secp256k1_addcarryx_u64(&x41, &x42, x40, x31, x13); + uint64_t x43; + fiat_secp256k1_uint1 x44; + fiat_secp256k1_addcarryx_u64(&x43, &x44, x42, x33, x15); + uint64_t x45; + fiat_secp256k1_uint1 x46; + fiat_secp256k1_addcarryx_u64(&x45, &x46, x44, x35, x17); + uint64_t x47; + fiat_secp256k1_uint1 x48; + fiat_secp256k1_addcarryx_u64(&x47, &x48, x46, x37, x19); + uint64_t x49; + fiat_secp256k1_uint1 x50; + fiat_secp256k1_addcarryx_u64(&x49, &x50, x48, 0x0, 0x0); + uint64_t x51; + uint64_t x52; + fiat_secp256k1_mulx_u64(&x51, &x52, x1, (arg2[3])); + uint64_t x53; + uint64_t x54; + fiat_secp256k1_mulx_u64(&x53, &x54, x1, (arg2[2])); + uint64_t x55; + uint64_t x56; + fiat_secp256k1_mulx_u64(&x55, &x56, x1, (arg2[1])); + uint64_t x57; + uint64_t x58; + fiat_secp256k1_mulx_u64(&x57, &x58, x1, (arg2[0])); + uint64_t x59; + fiat_secp256k1_uint1 x60; + fiat_secp256k1_addcarryx_u64(&x59, &x60, 0x0, x55, x58); + uint64_t x61; + fiat_secp256k1_uint1 x62; + fiat_secp256k1_addcarryx_u64(&x61, &x62, x60, x53, x56); + uint64_t x63; + fiat_secp256k1_uint1 x64; + fiat_secp256k1_addcarryx_u64(&x63, &x64, x62, x51, x54); + uint64_t x65; + fiat_secp256k1_uint1 x66; + fiat_secp256k1_addcarryx_u64(&x65, &x66, x64, 0x0, x52); + uint64_t x67; + fiat_secp256k1_uint1 x68; + fiat_secp256k1_addcarryx_u64(&x67, &x68, 0x0, x57, x41); + uint64_t x69; + fiat_secp256k1_uint1 x70; + fiat_secp256k1_addcarryx_u64(&x69, &x70, x68, x59, x43); + uint64_t x71; + fiat_secp256k1_uint1 x72; + fiat_secp256k1_addcarryx_u64(&x71, &x72, x70, x61, x45); + uint64_t x73; + fiat_secp256k1_uint1 x74; + fiat_secp256k1_addcarryx_u64(&x73, &x74, x72, x63, x47); + uint64_t x75; + fiat_secp256k1_uint1 x76; + fiat_secp256k1_addcarryx_u64(&x75, &x76, x74, x65, (fiat_secp256k1_uint1)x49); + uint64_t x77; + uint64_t x78; + fiat_secp256k1_mulx_u64(&x77, &x78, x67, UINT64_C(0xd838091dd2253531)); + uint64_t x79; + uint64_t x80; + fiat_secp256k1_mulx_u64(&x79, &x80, x77, UINT64_C(0xffffffffffffffff)); + uint64_t x81; + uint64_t x82; + fiat_secp256k1_mulx_u64(&x81, &x82, x77, UINT64_C(0xffffffffffffffff)); + uint64_t x83; + uint64_t x84; + fiat_secp256k1_mulx_u64(&x83, &x84, x77, UINT64_C(0xffffffffffffffff)); + uint64_t x85; + uint64_t x86; + fiat_secp256k1_mulx_u64(&x85, &x86, x77, UINT64_C(0xfffffffefffffc2f)); + uint64_t x87; + fiat_secp256k1_uint1 x88; + fiat_secp256k1_addcarryx_u64(&x87, &x88, 0x0, x83, x86); + uint64_t x89; + fiat_secp256k1_uint1 x90; + fiat_secp256k1_addcarryx_u64(&x89, &x90, x88, x81, x84); + uint64_t x91; + fiat_secp256k1_uint1 x92; + fiat_secp256k1_addcarryx_u64(&x91, &x92, x90, x79, x82); + uint64_t x93; + fiat_secp256k1_uint1 x94; + fiat_secp256k1_addcarryx_u64(&x93, &x94, x92, 0x0, x80); + uint64_t x95; + fiat_secp256k1_uint1 x96; + fiat_secp256k1_addcarryx_u64(&x95, &x96, 0x0, x85, x67); + uint64_t x97; + fiat_secp256k1_uint1 x98; + fiat_secp256k1_addcarryx_u64(&x97, &x98, x96, x87, x69); + uint64_t x99; + fiat_secp256k1_uint1 x100; + fiat_secp256k1_addcarryx_u64(&x99, &x100, x98, x89, x71); + uint64_t x101; + fiat_secp256k1_uint1 x102; + fiat_secp256k1_addcarryx_u64(&x101, &x102, x100, x91, x73); + uint64_t x103; + fiat_secp256k1_uint1 x104; + fiat_secp256k1_addcarryx_u64(&x103, &x104, x102, x93, x75); + uint64_t x105; + fiat_secp256k1_uint1 x106; + fiat_secp256k1_addcarryx_u64(&x105, &x106, x104, 0x0, x76); + uint64_t x107; + uint64_t x108; + fiat_secp256k1_mulx_u64(&x107, &x108, x2, (arg2[3])); + uint64_t x109; + uint64_t x110; + fiat_secp256k1_mulx_u64(&x109, &x110, x2, (arg2[2])); + uint64_t x111; + uint64_t x112; + fiat_secp256k1_mulx_u64(&x111, &x112, x2, (arg2[1])); + uint64_t x113; + uint64_t x114; + fiat_secp256k1_mulx_u64(&x113, &x114, x2, (arg2[0])); + uint64_t x115; + fiat_secp256k1_uint1 x116; + fiat_secp256k1_addcarryx_u64(&x115, &x116, 0x0, x111, x114); + uint64_t x117; + fiat_secp256k1_uint1 x118; + fiat_secp256k1_addcarryx_u64(&x117, &x118, x116, x109, x112); + uint64_t x119; + fiat_secp256k1_uint1 x120; + fiat_secp256k1_addcarryx_u64(&x119, &x120, x118, x107, x110); + uint64_t x121; + fiat_secp256k1_uint1 x122; + fiat_secp256k1_addcarryx_u64(&x121, &x122, x120, 0x0, x108); + uint64_t x123; + fiat_secp256k1_uint1 x124; + fiat_secp256k1_addcarryx_u64(&x123, &x124, 0x0, x113, x97); + uint64_t x125; + fiat_secp256k1_uint1 x126; + fiat_secp256k1_addcarryx_u64(&x125, &x126, x124, x115, x99); + uint64_t x127; + fiat_secp256k1_uint1 x128; + fiat_secp256k1_addcarryx_u64(&x127, &x128, x126, x117, x101); + uint64_t x129; + fiat_secp256k1_uint1 x130; + fiat_secp256k1_addcarryx_u64(&x129, &x130, x128, x119, x103); + uint64_t x131; + fiat_secp256k1_uint1 x132; + fiat_secp256k1_addcarryx_u64(&x131, &x132, x130, x121, x105); + uint64_t x133; + uint64_t x134; + fiat_secp256k1_mulx_u64(&x133, &x134, x123, UINT64_C(0xd838091dd2253531)); + uint64_t x135; + uint64_t x136; + fiat_secp256k1_mulx_u64(&x135, &x136, x133, UINT64_C(0xffffffffffffffff)); + uint64_t x137; + uint64_t x138; + fiat_secp256k1_mulx_u64(&x137, &x138, x133, UINT64_C(0xffffffffffffffff)); + uint64_t x139; + uint64_t x140; + fiat_secp256k1_mulx_u64(&x139, &x140, x133, UINT64_C(0xffffffffffffffff)); + uint64_t x141; + uint64_t x142; + fiat_secp256k1_mulx_u64(&x141, &x142, x133, UINT64_C(0xfffffffefffffc2f)); + uint64_t x143; + fiat_secp256k1_uint1 x144; + fiat_secp256k1_addcarryx_u64(&x143, &x144, 0x0, x139, x142); + uint64_t x145; + fiat_secp256k1_uint1 x146; + fiat_secp256k1_addcarryx_u64(&x145, &x146, x144, x137, x140); + uint64_t x147; + fiat_secp256k1_uint1 x148; + fiat_secp256k1_addcarryx_u64(&x147, &x148, x146, x135, x138); + uint64_t x149; + fiat_secp256k1_uint1 x150; + fiat_secp256k1_addcarryx_u64(&x149, &x150, x148, 0x0, x136); + uint64_t x151; + fiat_secp256k1_uint1 x152; + fiat_secp256k1_addcarryx_u64(&x151, &x152, 0x0, x141, x123); + uint64_t x153; + fiat_secp256k1_uint1 x154; + fiat_secp256k1_addcarryx_u64(&x153, &x154, x152, x143, x125); + uint64_t x155; + fiat_secp256k1_uint1 x156; + fiat_secp256k1_addcarryx_u64(&x155, &x156, x154, x145, x127); + uint64_t x157; + fiat_secp256k1_uint1 x158; + fiat_secp256k1_addcarryx_u64(&x157, &x158, x156, x147, x129); + uint64_t x159; + fiat_secp256k1_uint1 x160; + fiat_secp256k1_addcarryx_u64(&x159, &x160, x158, x149, x131); + uint64_t x161; + fiat_secp256k1_uint1 x162; + fiat_secp256k1_addcarryx_u64(&x161, &x162, x160, 0x0, x132); + uint64_t x163; + uint64_t x164; + fiat_secp256k1_mulx_u64(&x163, &x164, x3, (arg2[3])); + uint64_t x165; + uint64_t x166; + fiat_secp256k1_mulx_u64(&x165, &x166, x3, (arg2[2])); + uint64_t x167; + uint64_t x168; + fiat_secp256k1_mulx_u64(&x167, &x168, x3, (arg2[1])); + uint64_t x169; + uint64_t x170; + fiat_secp256k1_mulx_u64(&x169, &x170, x3, (arg2[0])); + uint64_t x171; + fiat_secp256k1_uint1 x172; + fiat_secp256k1_addcarryx_u64(&x171, &x172, 0x0, x167, x170); + uint64_t x173; + fiat_secp256k1_uint1 x174; + fiat_secp256k1_addcarryx_u64(&x173, &x174, x172, x165, x168); + uint64_t x175; + fiat_secp256k1_uint1 x176; + fiat_secp256k1_addcarryx_u64(&x175, &x176, x174, x163, x166); + uint64_t x177; + fiat_secp256k1_uint1 x178; + fiat_secp256k1_addcarryx_u64(&x177, &x178, x176, 0x0, x164); + uint64_t x179; + fiat_secp256k1_uint1 x180; + fiat_secp256k1_addcarryx_u64(&x179, &x180, 0x0, x169, x153); + uint64_t x181; + fiat_secp256k1_uint1 x182; + fiat_secp256k1_addcarryx_u64(&x181, &x182, x180, x171, x155); + uint64_t x183; + fiat_secp256k1_uint1 x184; + fiat_secp256k1_addcarryx_u64(&x183, &x184, x182, x173, x157); + uint64_t x185; + fiat_secp256k1_uint1 x186; + fiat_secp256k1_addcarryx_u64(&x185, &x186, x184, x175, x159); + uint64_t x187; + fiat_secp256k1_uint1 x188; + fiat_secp256k1_addcarryx_u64(&x187, &x188, x186, x177, x161); + uint64_t x189; + uint64_t x190; + fiat_secp256k1_mulx_u64(&x189, &x190, x179, UINT64_C(0xd838091dd2253531)); + uint64_t x191; + uint64_t x192; + fiat_secp256k1_mulx_u64(&x191, &x192, x189, UINT64_C(0xffffffffffffffff)); + uint64_t x193; + uint64_t x194; + fiat_secp256k1_mulx_u64(&x193, &x194, x189, UINT64_C(0xffffffffffffffff)); + uint64_t x195; + uint64_t x196; + fiat_secp256k1_mulx_u64(&x195, &x196, x189, UINT64_C(0xffffffffffffffff)); + uint64_t x197; + uint64_t x198; + fiat_secp256k1_mulx_u64(&x197, &x198, x189, UINT64_C(0xfffffffefffffc2f)); + uint64_t x199; + fiat_secp256k1_uint1 x200; + fiat_secp256k1_addcarryx_u64(&x199, &x200, 0x0, x195, x198); + uint64_t x201; + fiat_secp256k1_uint1 x202; + fiat_secp256k1_addcarryx_u64(&x201, &x202, x200, x193, x196); + uint64_t x203; + fiat_secp256k1_uint1 x204; + fiat_secp256k1_addcarryx_u64(&x203, &x204, x202, x191, x194); + uint64_t x205; + fiat_secp256k1_uint1 x206; + fiat_secp256k1_addcarryx_u64(&x205, &x206, x204, 0x0, x192); + uint64_t x207; + fiat_secp256k1_uint1 x208; + fiat_secp256k1_addcarryx_u64(&x207, &x208, 0x0, x197, x179); + uint64_t x209; + fiat_secp256k1_uint1 x210; + fiat_secp256k1_addcarryx_u64(&x209, &x210, x208, x199, x181); + uint64_t x211; + fiat_secp256k1_uint1 x212; + fiat_secp256k1_addcarryx_u64(&x211, &x212, x210, x201, x183); + uint64_t x213; + fiat_secp256k1_uint1 x214; + fiat_secp256k1_addcarryx_u64(&x213, &x214, x212, x203, x185); + uint64_t x215; + fiat_secp256k1_uint1 x216; + fiat_secp256k1_addcarryx_u64(&x215, &x216, x214, x205, x187); + uint64_t x217; + fiat_secp256k1_uint1 x218; + fiat_secp256k1_addcarryx_u64(&x217, &x218, x216, 0x0, x188); + uint64_t x219; + fiat_secp256k1_uint1 x220; + fiat_secp256k1_subborrowx_u64(&x219, &x220, 0x0, x209, UINT64_C(0xfffffffefffffc2f)); + uint64_t x221; + fiat_secp256k1_uint1 x222; + fiat_secp256k1_subborrowx_u64(&x221, &x222, x220, x211, UINT64_C(0xffffffffffffffff)); + uint64_t x223; + fiat_secp256k1_uint1 x224; + fiat_secp256k1_subborrowx_u64(&x223, &x224, x222, x213, UINT64_C(0xffffffffffffffff)); + uint64_t x225; + fiat_secp256k1_uint1 x226; + fiat_secp256k1_subborrowx_u64(&x225, &x226, x224, x215, UINT64_C(0xffffffffffffffff)); + uint64_t x227; + fiat_secp256k1_uint1 x228; + fiat_secp256k1_subborrowx_u64(&x227, &x228, x226, x217, 0x0); + uint64_t x229; + fiat_secp256k1_cmovznz_u64(&x229, x228, x219, x209); + uint64_t x230; + fiat_secp256k1_cmovznz_u64(&x230, x228, x221, x211); + uint64_t x231; + fiat_secp256k1_cmovznz_u64(&x231, x228, x223, x213); + uint64_t x232; + fiat_secp256k1_cmovznz_u64(&x232, x228, x225, x215); + out1[0] = x229; + out1[1] = x230; + out1[2] = x231; + out1[3] = x232; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_square(uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1 = (arg1[1]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[3]); + uint64_t x4 = (arg1[0]); + uint64_t x5; + uint64_t x6; + fiat_secp256k1_mulx_u64(&x5, &x6, x4, (arg1[3])); + uint64_t x7; + uint64_t x8; + fiat_secp256k1_mulx_u64(&x7, &x8, x4, (arg1[2])); + uint64_t x9; + uint64_t x10; + fiat_secp256k1_mulx_u64(&x9, &x10, x4, (arg1[1])); + uint64_t x11; + uint64_t x12; + fiat_secp256k1_mulx_u64(&x11, &x12, x4, (arg1[0])); + uint64_t x13; + fiat_secp256k1_uint1 x14; + fiat_secp256k1_addcarryx_u64(&x13, &x14, 0x0, x9, x12); + uint64_t x15; + fiat_secp256k1_uint1 x16; + fiat_secp256k1_addcarryx_u64(&x15, &x16, x14, x7, x10); + uint64_t x17; + fiat_secp256k1_uint1 x18; + fiat_secp256k1_addcarryx_u64(&x17, &x18, x16, x5, x8); + uint64_t x19; + fiat_secp256k1_uint1 x20; + fiat_secp256k1_addcarryx_u64(&x19, &x20, x18, 0x0, x6); + uint64_t x21; + uint64_t x22; + fiat_secp256k1_mulx_u64(&x21, &x22, x11, UINT64_C(0xd838091dd2253531)); + uint64_t x23; + uint64_t x24; + fiat_secp256k1_mulx_u64(&x23, &x24, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x25; + uint64_t x26; + fiat_secp256k1_mulx_u64(&x25, &x26, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x27; + uint64_t x28; + fiat_secp256k1_mulx_u64(&x27, &x28, x21, UINT64_C(0xffffffffffffffff)); + uint64_t x29; + uint64_t x30; + fiat_secp256k1_mulx_u64(&x29, &x30, x21, UINT64_C(0xfffffffefffffc2f)); + uint64_t x31; + fiat_secp256k1_uint1 x32; + fiat_secp256k1_addcarryx_u64(&x31, &x32, 0x0, x27, x30); + uint64_t x33; + fiat_secp256k1_uint1 x34; + fiat_secp256k1_addcarryx_u64(&x33, &x34, x32, x25, x28); + uint64_t x35; + fiat_secp256k1_uint1 x36; + fiat_secp256k1_addcarryx_u64(&x35, &x36, x34, x23, x26); + uint64_t x37; + fiat_secp256k1_uint1 x38; + fiat_secp256k1_addcarryx_u64(&x37, &x38, x36, 0x0, x24); + uint64_t x39; + fiat_secp256k1_uint1 x40; + fiat_secp256k1_addcarryx_u64(&x39, &x40, 0x0, x29, x11); + uint64_t x41; + fiat_secp256k1_uint1 x42; + fiat_secp256k1_addcarryx_u64(&x41, &x42, x40, x31, x13); + uint64_t x43; + fiat_secp256k1_uint1 x44; + fiat_secp256k1_addcarryx_u64(&x43, &x44, x42, x33, x15); + uint64_t x45; + fiat_secp256k1_uint1 x46; + fiat_secp256k1_addcarryx_u64(&x45, &x46, x44, x35, x17); + uint64_t x47; + fiat_secp256k1_uint1 x48; + fiat_secp256k1_addcarryx_u64(&x47, &x48, x46, x37, x19); + uint64_t x49; + fiat_secp256k1_uint1 x50; + fiat_secp256k1_addcarryx_u64(&x49, &x50, x48, 0x0, 0x0); + uint64_t x51; + uint64_t x52; + fiat_secp256k1_mulx_u64(&x51, &x52, x1, (arg1[3])); + uint64_t x53; + uint64_t x54; + fiat_secp256k1_mulx_u64(&x53, &x54, x1, (arg1[2])); + uint64_t x55; + uint64_t x56; + fiat_secp256k1_mulx_u64(&x55, &x56, x1, (arg1[1])); + uint64_t x57; + uint64_t x58; + fiat_secp256k1_mulx_u64(&x57, &x58, x1, (arg1[0])); + uint64_t x59; + fiat_secp256k1_uint1 x60; + fiat_secp256k1_addcarryx_u64(&x59, &x60, 0x0, x55, x58); + uint64_t x61; + fiat_secp256k1_uint1 x62; + fiat_secp256k1_addcarryx_u64(&x61, &x62, x60, x53, x56); + uint64_t x63; + fiat_secp256k1_uint1 x64; + fiat_secp256k1_addcarryx_u64(&x63, &x64, x62, x51, x54); + uint64_t x65; + fiat_secp256k1_uint1 x66; + fiat_secp256k1_addcarryx_u64(&x65, &x66, x64, 0x0, x52); + uint64_t x67; + fiat_secp256k1_uint1 x68; + fiat_secp256k1_addcarryx_u64(&x67, &x68, 0x0, x57, x41); + uint64_t x69; + fiat_secp256k1_uint1 x70; + fiat_secp256k1_addcarryx_u64(&x69, &x70, x68, x59, x43); + uint64_t x71; + fiat_secp256k1_uint1 x72; + fiat_secp256k1_addcarryx_u64(&x71, &x72, x70, x61, x45); + uint64_t x73; + fiat_secp256k1_uint1 x74; + fiat_secp256k1_addcarryx_u64(&x73, &x74, x72, x63, x47); + uint64_t x75; + fiat_secp256k1_uint1 x76; + fiat_secp256k1_addcarryx_u64(&x75, &x76, x74, x65, (fiat_secp256k1_uint1)x49); + uint64_t x77; + uint64_t x78; + fiat_secp256k1_mulx_u64(&x77, &x78, x67, UINT64_C(0xd838091dd2253531)); + uint64_t x79; + uint64_t x80; + fiat_secp256k1_mulx_u64(&x79, &x80, x77, UINT64_C(0xffffffffffffffff)); + uint64_t x81; + uint64_t x82; + fiat_secp256k1_mulx_u64(&x81, &x82, x77, UINT64_C(0xffffffffffffffff)); + uint64_t x83; + uint64_t x84; + fiat_secp256k1_mulx_u64(&x83, &x84, x77, UINT64_C(0xffffffffffffffff)); + uint64_t x85; + uint64_t x86; + fiat_secp256k1_mulx_u64(&x85, &x86, x77, UINT64_C(0xfffffffefffffc2f)); + uint64_t x87; + fiat_secp256k1_uint1 x88; + fiat_secp256k1_addcarryx_u64(&x87, &x88, 0x0, x83, x86); + uint64_t x89; + fiat_secp256k1_uint1 x90; + fiat_secp256k1_addcarryx_u64(&x89, &x90, x88, x81, x84); + uint64_t x91; + fiat_secp256k1_uint1 x92; + fiat_secp256k1_addcarryx_u64(&x91, &x92, x90, x79, x82); + uint64_t x93; + fiat_secp256k1_uint1 x94; + fiat_secp256k1_addcarryx_u64(&x93, &x94, x92, 0x0, x80); + uint64_t x95; + fiat_secp256k1_uint1 x96; + fiat_secp256k1_addcarryx_u64(&x95, &x96, 0x0, x85, x67); + uint64_t x97; + fiat_secp256k1_uint1 x98; + fiat_secp256k1_addcarryx_u64(&x97, &x98, x96, x87, x69); + uint64_t x99; + fiat_secp256k1_uint1 x100; + fiat_secp256k1_addcarryx_u64(&x99, &x100, x98, x89, x71); + uint64_t x101; + fiat_secp256k1_uint1 x102; + fiat_secp256k1_addcarryx_u64(&x101, &x102, x100, x91, x73); + uint64_t x103; + fiat_secp256k1_uint1 x104; + fiat_secp256k1_addcarryx_u64(&x103, &x104, x102, x93, x75); + uint64_t x105; + fiat_secp256k1_uint1 x106; + fiat_secp256k1_addcarryx_u64(&x105, &x106, x104, 0x0, x76); + uint64_t x107; + uint64_t x108; + fiat_secp256k1_mulx_u64(&x107, &x108, x2, (arg1[3])); + uint64_t x109; + uint64_t x110; + fiat_secp256k1_mulx_u64(&x109, &x110, x2, (arg1[2])); + uint64_t x111; + uint64_t x112; + fiat_secp256k1_mulx_u64(&x111, &x112, x2, (arg1[1])); + uint64_t x113; + uint64_t x114; + fiat_secp256k1_mulx_u64(&x113, &x114, x2, (arg1[0])); + uint64_t x115; + fiat_secp256k1_uint1 x116; + fiat_secp256k1_addcarryx_u64(&x115, &x116, 0x0, x111, x114); + uint64_t x117; + fiat_secp256k1_uint1 x118; + fiat_secp256k1_addcarryx_u64(&x117, &x118, x116, x109, x112); + uint64_t x119; + fiat_secp256k1_uint1 x120; + fiat_secp256k1_addcarryx_u64(&x119, &x120, x118, x107, x110); + uint64_t x121; + fiat_secp256k1_uint1 x122; + fiat_secp256k1_addcarryx_u64(&x121, &x122, x120, 0x0, x108); + uint64_t x123; + fiat_secp256k1_uint1 x124; + fiat_secp256k1_addcarryx_u64(&x123, &x124, 0x0, x113, x97); + uint64_t x125; + fiat_secp256k1_uint1 x126; + fiat_secp256k1_addcarryx_u64(&x125, &x126, x124, x115, x99); + uint64_t x127; + fiat_secp256k1_uint1 x128; + fiat_secp256k1_addcarryx_u64(&x127, &x128, x126, x117, x101); + uint64_t x129; + fiat_secp256k1_uint1 x130; + fiat_secp256k1_addcarryx_u64(&x129, &x130, x128, x119, x103); + uint64_t x131; + fiat_secp256k1_uint1 x132; + fiat_secp256k1_addcarryx_u64(&x131, &x132, x130, x121, x105); + uint64_t x133; + uint64_t x134; + fiat_secp256k1_mulx_u64(&x133, &x134, x123, UINT64_C(0xd838091dd2253531)); + uint64_t x135; + uint64_t x136; + fiat_secp256k1_mulx_u64(&x135, &x136, x133, UINT64_C(0xffffffffffffffff)); + uint64_t x137; + uint64_t x138; + fiat_secp256k1_mulx_u64(&x137, &x138, x133, UINT64_C(0xffffffffffffffff)); + uint64_t x139; + uint64_t x140; + fiat_secp256k1_mulx_u64(&x139, &x140, x133, UINT64_C(0xffffffffffffffff)); + uint64_t x141; + uint64_t x142; + fiat_secp256k1_mulx_u64(&x141, &x142, x133, UINT64_C(0xfffffffefffffc2f)); + uint64_t x143; + fiat_secp256k1_uint1 x144; + fiat_secp256k1_addcarryx_u64(&x143, &x144, 0x0, x139, x142); + uint64_t x145; + fiat_secp256k1_uint1 x146; + fiat_secp256k1_addcarryx_u64(&x145, &x146, x144, x137, x140); + uint64_t x147; + fiat_secp256k1_uint1 x148; + fiat_secp256k1_addcarryx_u64(&x147, &x148, x146, x135, x138); + uint64_t x149; + fiat_secp256k1_uint1 x150; + fiat_secp256k1_addcarryx_u64(&x149, &x150, x148, 0x0, x136); + uint64_t x151; + fiat_secp256k1_uint1 x152; + fiat_secp256k1_addcarryx_u64(&x151, &x152, 0x0, x141, x123); + uint64_t x153; + fiat_secp256k1_uint1 x154; + fiat_secp256k1_addcarryx_u64(&x153, &x154, x152, x143, x125); + uint64_t x155; + fiat_secp256k1_uint1 x156; + fiat_secp256k1_addcarryx_u64(&x155, &x156, x154, x145, x127); + uint64_t x157; + fiat_secp256k1_uint1 x158; + fiat_secp256k1_addcarryx_u64(&x157, &x158, x156, x147, x129); + uint64_t x159; + fiat_secp256k1_uint1 x160; + fiat_secp256k1_addcarryx_u64(&x159, &x160, x158, x149, x131); + uint64_t x161; + fiat_secp256k1_uint1 x162; + fiat_secp256k1_addcarryx_u64(&x161, &x162, x160, 0x0, x132); + uint64_t x163; + uint64_t x164; + fiat_secp256k1_mulx_u64(&x163, &x164, x3, (arg1[3])); + uint64_t x165; + uint64_t x166; + fiat_secp256k1_mulx_u64(&x165, &x166, x3, (arg1[2])); + uint64_t x167; + uint64_t x168; + fiat_secp256k1_mulx_u64(&x167, &x168, x3, (arg1[1])); + uint64_t x169; + uint64_t x170; + fiat_secp256k1_mulx_u64(&x169, &x170, x3, (arg1[0])); + uint64_t x171; + fiat_secp256k1_uint1 x172; + fiat_secp256k1_addcarryx_u64(&x171, &x172, 0x0, x167, x170); + uint64_t x173; + fiat_secp256k1_uint1 x174; + fiat_secp256k1_addcarryx_u64(&x173, &x174, x172, x165, x168); + uint64_t x175; + fiat_secp256k1_uint1 x176; + fiat_secp256k1_addcarryx_u64(&x175, &x176, x174, x163, x166); + uint64_t x177; + fiat_secp256k1_uint1 x178; + fiat_secp256k1_addcarryx_u64(&x177, &x178, x176, 0x0, x164); + uint64_t x179; + fiat_secp256k1_uint1 x180; + fiat_secp256k1_addcarryx_u64(&x179, &x180, 0x0, x169, x153); + uint64_t x181; + fiat_secp256k1_uint1 x182; + fiat_secp256k1_addcarryx_u64(&x181, &x182, x180, x171, x155); + uint64_t x183; + fiat_secp256k1_uint1 x184; + fiat_secp256k1_addcarryx_u64(&x183, &x184, x182, x173, x157); + uint64_t x185; + fiat_secp256k1_uint1 x186; + fiat_secp256k1_addcarryx_u64(&x185, &x186, x184, x175, x159); + uint64_t x187; + fiat_secp256k1_uint1 x188; + fiat_secp256k1_addcarryx_u64(&x187, &x188, x186, x177, x161); + uint64_t x189; + uint64_t x190; + fiat_secp256k1_mulx_u64(&x189, &x190, x179, UINT64_C(0xd838091dd2253531)); + uint64_t x191; + uint64_t x192; + fiat_secp256k1_mulx_u64(&x191, &x192, x189, UINT64_C(0xffffffffffffffff)); + uint64_t x193; + uint64_t x194; + fiat_secp256k1_mulx_u64(&x193, &x194, x189, UINT64_C(0xffffffffffffffff)); + uint64_t x195; + uint64_t x196; + fiat_secp256k1_mulx_u64(&x195, &x196, x189, UINT64_C(0xffffffffffffffff)); + uint64_t x197; + uint64_t x198; + fiat_secp256k1_mulx_u64(&x197, &x198, x189, UINT64_C(0xfffffffefffffc2f)); + uint64_t x199; + fiat_secp256k1_uint1 x200; + fiat_secp256k1_addcarryx_u64(&x199, &x200, 0x0, x195, x198); + uint64_t x201; + fiat_secp256k1_uint1 x202; + fiat_secp256k1_addcarryx_u64(&x201, &x202, x200, x193, x196); + uint64_t x203; + fiat_secp256k1_uint1 x204; + fiat_secp256k1_addcarryx_u64(&x203, &x204, x202, x191, x194); + uint64_t x205; + fiat_secp256k1_uint1 x206; + fiat_secp256k1_addcarryx_u64(&x205, &x206, x204, 0x0, x192); + uint64_t x207; + fiat_secp256k1_uint1 x208; + fiat_secp256k1_addcarryx_u64(&x207, &x208, 0x0, x197, x179); + uint64_t x209; + fiat_secp256k1_uint1 x210; + fiat_secp256k1_addcarryx_u64(&x209, &x210, x208, x199, x181); + uint64_t x211; + fiat_secp256k1_uint1 x212; + fiat_secp256k1_addcarryx_u64(&x211, &x212, x210, x201, x183); + uint64_t x213; + fiat_secp256k1_uint1 x214; + fiat_secp256k1_addcarryx_u64(&x213, &x214, x212, x203, x185); + uint64_t x215; + fiat_secp256k1_uint1 x216; + fiat_secp256k1_addcarryx_u64(&x215, &x216, x214, x205, x187); + uint64_t x217; + fiat_secp256k1_uint1 x218; + fiat_secp256k1_addcarryx_u64(&x217, &x218, x216, 0x0, x188); + uint64_t x219; + fiat_secp256k1_uint1 x220; + fiat_secp256k1_subborrowx_u64(&x219, &x220, 0x0, x209, UINT64_C(0xfffffffefffffc2f)); + uint64_t x221; + fiat_secp256k1_uint1 x222; + fiat_secp256k1_subborrowx_u64(&x221, &x222, x220, x211, UINT64_C(0xffffffffffffffff)); + uint64_t x223; + fiat_secp256k1_uint1 x224; + fiat_secp256k1_subborrowx_u64(&x223, &x224, x222, x213, UINT64_C(0xffffffffffffffff)); + uint64_t x225; + fiat_secp256k1_uint1 x226; + fiat_secp256k1_subborrowx_u64(&x225, &x226, x224, x215, UINT64_C(0xffffffffffffffff)); + uint64_t x227; + fiat_secp256k1_uint1 x228; + fiat_secp256k1_subborrowx_u64(&x227, &x228, x226, x217, 0x0); + uint64_t x229; + fiat_secp256k1_cmovznz_u64(&x229, x228, x219, x209); + uint64_t x230; + fiat_secp256k1_cmovznz_u64(&x230, x228, x221, x211); + uint64_t x231; + fiat_secp256k1_cmovznz_u64(&x231, x228, x223, x213); + uint64_t x232; + fiat_secp256k1_cmovznz_u64(&x232, x228, x225, x215); + out1[0] = x229; + out1[1] = x230; + out1[2] = x231; + out1[3] = x232; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_add(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_secp256k1_uint1 x2; + fiat_secp256k1_addcarryx_u64(&x1, &x2, 0x0, (arg2[0]), (arg1[0])); + uint64_t x3; + fiat_secp256k1_uint1 x4; + fiat_secp256k1_addcarryx_u64(&x3, &x4, x2, (arg2[1]), (arg1[1])); + uint64_t x5; + fiat_secp256k1_uint1 x6; + fiat_secp256k1_addcarryx_u64(&x5, &x6, x4, (arg2[2]), (arg1[2])); + uint64_t x7; + fiat_secp256k1_uint1 x8; + fiat_secp256k1_addcarryx_u64(&x7, &x8, x6, (arg2[3]), (arg1[3])); + uint64_t x9; + fiat_secp256k1_uint1 x10; + fiat_secp256k1_subborrowx_u64(&x9, &x10, 0x0, x1, UINT64_C(0xfffffffefffffc2f)); + uint64_t x11; + fiat_secp256k1_uint1 x12; + fiat_secp256k1_subborrowx_u64(&x11, &x12, x10, x3, UINT64_C(0xffffffffffffffff)); + uint64_t x13; + fiat_secp256k1_uint1 x14; + fiat_secp256k1_subborrowx_u64(&x13, &x14, x12, x5, UINT64_C(0xffffffffffffffff)); + uint64_t x15; + fiat_secp256k1_uint1 x16; + fiat_secp256k1_subborrowx_u64(&x15, &x16, x14, x7, UINT64_C(0xffffffffffffffff)); + uint64_t x17; + fiat_secp256k1_uint1 x18; + fiat_secp256k1_subborrowx_u64(&x17, &x18, x16, x8, 0x0); + uint64_t x19; + fiat_secp256k1_cmovznz_u64(&x19, x18, x9, x1); + uint64_t x20; + fiat_secp256k1_cmovznz_u64(&x20, x18, x11, x3); + uint64_t x21; + fiat_secp256k1_cmovznz_u64(&x21, x18, x13, x5); + uint64_t x22; + fiat_secp256k1_cmovznz_u64(&x22, x18, x15, x7); + out1[0] = x19; + out1[1] = x20; + out1[2] = x21; + out1[3] = x22; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_sub(uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_secp256k1_uint1 x2; + fiat_secp256k1_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + uint64_t x3; + fiat_secp256k1_uint1 x4; + fiat_secp256k1_subborrowx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1])); + uint64_t x5; + fiat_secp256k1_uint1 x6; + fiat_secp256k1_subborrowx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2])); + uint64_t x7; + fiat_secp256k1_uint1 x8; + fiat_secp256k1_subborrowx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3])); + uint64_t x9; + fiat_secp256k1_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x10; + fiat_secp256k1_uint1 x11; + fiat_secp256k1_addcarryx_u64(&x10, &x11, 0x0, (x9 & UINT64_C(0xfffffffefffffc2f)), x1); + uint64_t x12; + fiat_secp256k1_uint1 x13; + fiat_secp256k1_addcarryx_u64(&x12, &x13, x11, (x9 & UINT64_C(0xffffffffffffffff)), x3); + uint64_t x14; + fiat_secp256k1_uint1 x15; + fiat_secp256k1_addcarryx_u64(&x14, &x15, x13, (x9 & UINT64_C(0xffffffffffffffff)), x5); + uint64_t x16; + fiat_secp256k1_uint1 x17; + fiat_secp256k1_addcarryx_u64(&x16, &x17, x15, (x9 & UINT64_C(0xffffffffffffffff)), x7); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_opp(uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1; + fiat_secp256k1_uint1 x2; + fiat_secp256k1_subborrowx_u64(&x1, &x2, 0x0, 0x0, (arg1[0])); + uint64_t x3; + fiat_secp256k1_uint1 x4; + fiat_secp256k1_subborrowx_u64(&x3, &x4, x2, 0x0, (arg1[1])); + uint64_t x5; + fiat_secp256k1_uint1 x6; + fiat_secp256k1_subborrowx_u64(&x5, &x6, x4, 0x0, (arg1[2])); + uint64_t x7; + fiat_secp256k1_uint1 x8; + fiat_secp256k1_subborrowx_u64(&x7, &x8, x6, 0x0, (arg1[3])); + uint64_t x9; + fiat_secp256k1_cmovznz_u64(&x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + uint64_t x10; + fiat_secp256k1_uint1 x11; + fiat_secp256k1_addcarryx_u64(&x10, &x11, 0x0, (x9 & UINT64_C(0xfffffffefffffc2f)), x1); + uint64_t x12; + fiat_secp256k1_uint1 x13; + fiat_secp256k1_addcarryx_u64(&x12, &x13, x11, (x9 & UINT64_C(0xffffffffffffffff)), x3); + uint64_t x14; + fiat_secp256k1_uint1 x15; + fiat_secp256k1_addcarryx_u64(&x14, &x15, x13, (x9 & UINT64_C(0xffffffffffffffff)), x5); + uint64_t x16; + fiat_secp256k1_uint1 x17; + fiat_secp256k1_addcarryx_u64(&x16, &x17, x15, (x9 & UINT64_C(0xffffffffffffffff)), x7); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_from_montgomery(uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1 = (arg1[0]); + uint64_t x2; + uint64_t x3; + fiat_secp256k1_mulx_u64(&x2, &x3, x1, UINT64_C(0xd838091dd2253531)); + uint64_t x4; + uint64_t x5; + fiat_secp256k1_mulx_u64(&x4, &x5, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x6; + uint64_t x7; + fiat_secp256k1_mulx_u64(&x6, &x7, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x8; + uint64_t x9; + fiat_secp256k1_mulx_u64(&x8, &x9, x2, UINT64_C(0xffffffffffffffff)); + uint64_t x10; + uint64_t x11; + fiat_secp256k1_mulx_u64(&x10, &x11, x2, UINT64_C(0xfffffffefffffc2f)); + uint64_t x12; + fiat_secp256k1_uint1 x13; + fiat_secp256k1_addcarryx_u64(&x12, &x13, 0x0, x8, x11); + uint64_t x14; + fiat_secp256k1_uint1 x15; + fiat_secp256k1_addcarryx_u64(&x14, &x15, x13, x6, x9); + uint64_t x16; + fiat_secp256k1_uint1 x17; + fiat_secp256k1_addcarryx_u64(&x16, &x17, x15, x4, x7); + uint64_t x18; + fiat_secp256k1_uint1 x19; + fiat_secp256k1_addcarryx_u64(&x18, &x19, 0x0, x10, x1); + uint64_t x20; + fiat_secp256k1_uint1 x21; + fiat_secp256k1_addcarryx_u64(&x20, &x21, x19, x12, 0x0); + uint64_t x22; + fiat_secp256k1_uint1 x23; + fiat_secp256k1_addcarryx_u64(&x22, &x23, x21, x14, 0x0); + uint64_t x24; + fiat_secp256k1_uint1 x25; + fiat_secp256k1_addcarryx_u64(&x24, &x25, x23, x16, 0x0); + uint64_t x26; + fiat_secp256k1_uint1 x27; + fiat_secp256k1_addcarryx_u64(&x26, &x27, x17, 0x0, x5); + uint64_t x28; + fiat_secp256k1_uint1 x29; + fiat_secp256k1_addcarryx_u64(&x28, &x29, x25, x26, 0x0); + uint64_t x30; + fiat_secp256k1_uint1 x31; + fiat_secp256k1_addcarryx_u64(&x30, &x31, 0x0, (arg1[1]), x20); + uint64_t x32; + fiat_secp256k1_uint1 x33; + fiat_secp256k1_addcarryx_u64(&x32, &x33, x31, 0x0, x22); + uint64_t x34; + fiat_secp256k1_uint1 x35; + fiat_secp256k1_addcarryx_u64(&x34, &x35, x33, 0x0, x24); + uint64_t x36; + fiat_secp256k1_uint1 x37; + fiat_secp256k1_addcarryx_u64(&x36, &x37, x35, 0x0, x28); + uint64_t x38; + fiat_secp256k1_uint1 x39; + fiat_secp256k1_addcarryx_u64(&x38, &x39, x29, 0x0, 0x0); + uint64_t x40; + fiat_secp256k1_uint1 x41; + fiat_secp256k1_addcarryx_u64(&x40, &x41, x37, 0x0, (fiat_secp256k1_uint1)x38); + uint64_t x42; + uint64_t x43; + fiat_secp256k1_mulx_u64(&x42, &x43, x30, UINT64_C(0xd838091dd2253531)); + uint64_t x44; + uint64_t x45; + fiat_secp256k1_mulx_u64(&x44, &x45, x42, UINT64_C(0xffffffffffffffff)); + uint64_t x46; + uint64_t x47; + fiat_secp256k1_mulx_u64(&x46, &x47, x42, UINT64_C(0xffffffffffffffff)); + uint64_t x48; + uint64_t x49; + fiat_secp256k1_mulx_u64(&x48, &x49, x42, UINT64_C(0xffffffffffffffff)); + uint64_t x50; + uint64_t x51; + fiat_secp256k1_mulx_u64(&x50, &x51, x42, UINT64_C(0xfffffffefffffc2f)); + uint64_t x52; + fiat_secp256k1_uint1 x53; + fiat_secp256k1_addcarryx_u64(&x52, &x53, 0x0, x48, x51); + uint64_t x54; + fiat_secp256k1_uint1 x55; + fiat_secp256k1_addcarryx_u64(&x54, &x55, x53, x46, x49); + uint64_t x56; + fiat_secp256k1_uint1 x57; + fiat_secp256k1_addcarryx_u64(&x56, &x57, x55, x44, x47); + uint64_t x58; + fiat_secp256k1_uint1 x59; + fiat_secp256k1_addcarryx_u64(&x58, &x59, 0x0, x50, x30); + uint64_t x60; + fiat_secp256k1_uint1 x61; + fiat_secp256k1_addcarryx_u64(&x60, &x61, x59, x52, x32); + uint64_t x62; + fiat_secp256k1_uint1 x63; + fiat_secp256k1_addcarryx_u64(&x62, &x63, x61, x54, x34); + uint64_t x64; + fiat_secp256k1_uint1 x65; + fiat_secp256k1_addcarryx_u64(&x64, &x65, x63, x56, x36); + uint64_t x66; + fiat_secp256k1_uint1 x67; + fiat_secp256k1_addcarryx_u64(&x66, &x67, x57, 0x0, x45); + uint64_t x68; + fiat_secp256k1_uint1 x69; + fiat_secp256k1_addcarryx_u64(&x68, &x69, x65, x66, x40); + uint64_t x70; + fiat_secp256k1_uint1 x71; + fiat_secp256k1_addcarryx_u64(&x70, &x71, 0x0, (arg1[2]), x60); + uint64_t x72; + fiat_secp256k1_uint1 x73; + fiat_secp256k1_addcarryx_u64(&x72, &x73, x71, 0x0, x62); + uint64_t x74; + fiat_secp256k1_uint1 x75; + fiat_secp256k1_addcarryx_u64(&x74, &x75, x73, 0x0, x64); + uint64_t x76; + fiat_secp256k1_uint1 x77; + fiat_secp256k1_addcarryx_u64(&x76, &x77, x75, 0x0, x68); + uint64_t x78; + fiat_secp256k1_uint1 x79; + fiat_secp256k1_addcarryx_u64(&x78, &x79, x69, 0x0, x41); + uint64_t x80; + fiat_secp256k1_uint1 x81; + fiat_secp256k1_addcarryx_u64(&x80, &x81, x77, 0x0, (fiat_secp256k1_uint1)x78); + uint64_t x82; + uint64_t x83; + fiat_secp256k1_mulx_u64(&x82, &x83, x70, UINT64_C(0xd838091dd2253531)); + uint64_t x84; + uint64_t x85; + fiat_secp256k1_mulx_u64(&x84, &x85, x82, UINT64_C(0xffffffffffffffff)); + uint64_t x86; + uint64_t x87; + fiat_secp256k1_mulx_u64(&x86, &x87, x82, UINT64_C(0xffffffffffffffff)); + uint64_t x88; + uint64_t x89; + fiat_secp256k1_mulx_u64(&x88, &x89, x82, UINT64_C(0xffffffffffffffff)); + uint64_t x90; + uint64_t x91; + fiat_secp256k1_mulx_u64(&x90, &x91, x82, UINT64_C(0xfffffffefffffc2f)); + uint64_t x92; + fiat_secp256k1_uint1 x93; + fiat_secp256k1_addcarryx_u64(&x92, &x93, 0x0, x88, x91); + uint64_t x94; + fiat_secp256k1_uint1 x95; + fiat_secp256k1_addcarryx_u64(&x94, &x95, x93, x86, x89); + uint64_t x96; + fiat_secp256k1_uint1 x97; + fiat_secp256k1_addcarryx_u64(&x96, &x97, x95, x84, x87); + uint64_t x98; + fiat_secp256k1_uint1 x99; + fiat_secp256k1_addcarryx_u64(&x98, &x99, 0x0, x90, x70); + uint64_t x100; + fiat_secp256k1_uint1 x101; + fiat_secp256k1_addcarryx_u64(&x100, &x101, x99, x92, x72); + uint64_t x102; + fiat_secp256k1_uint1 x103; + fiat_secp256k1_addcarryx_u64(&x102, &x103, x101, x94, x74); + uint64_t x104; + fiat_secp256k1_uint1 x105; + fiat_secp256k1_addcarryx_u64(&x104, &x105, x103, x96, x76); + uint64_t x106; + fiat_secp256k1_uint1 x107; + fiat_secp256k1_addcarryx_u64(&x106, &x107, x97, 0x0, x85); + uint64_t x108; + fiat_secp256k1_uint1 x109; + fiat_secp256k1_addcarryx_u64(&x108, &x109, x105, x106, x80); + uint64_t x110; + fiat_secp256k1_uint1 x111; + fiat_secp256k1_addcarryx_u64(&x110, &x111, 0x0, (arg1[3]), x100); + uint64_t x112; + fiat_secp256k1_uint1 x113; + fiat_secp256k1_addcarryx_u64(&x112, &x113, x111, 0x0, x102); + uint64_t x114; + fiat_secp256k1_uint1 x115; + fiat_secp256k1_addcarryx_u64(&x114, &x115, x113, 0x0, x104); + uint64_t x116; + fiat_secp256k1_uint1 x117; + fiat_secp256k1_addcarryx_u64(&x116, &x117, x115, 0x0, x108); + uint64_t x118; + fiat_secp256k1_uint1 x119; + fiat_secp256k1_addcarryx_u64(&x118, &x119, x109, 0x0, x81); + uint64_t x120; + fiat_secp256k1_uint1 x121; + fiat_secp256k1_addcarryx_u64(&x120, &x121, x117, 0x0, (fiat_secp256k1_uint1)x118); + uint64_t x122; + uint64_t x123; + fiat_secp256k1_mulx_u64(&x122, &x123, x110, UINT64_C(0xd838091dd2253531)); + uint64_t x124; + uint64_t x125; + fiat_secp256k1_mulx_u64(&x124, &x125, x122, UINT64_C(0xffffffffffffffff)); + uint64_t x126; + uint64_t x127; + fiat_secp256k1_mulx_u64(&x126, &x127, x122, UINT64_C(0xffffffffffffffff)); + uint64_t x128; + uint64_t x129; + fiat_secp256k1_mulx_u64(&x128, &x129, x122, UINT64_C(0xffffffffffffffff)); + uint64_t x130; + uint64_t x131; + fiat_secp256k1_mulx_u64(&x130, &x131, x122, UINT64_C(0xfffffffefffffc2f)); + uint64_t x132; + fiat_secp256k1_uint1 x133; + fiat_secp256k1_addcarryx_u64(&x132, &x133, 0x0, x128, x131); + uint64_t x134; + fiat_secp256k1_uint1 x135; + fiat_secp256k1_addcarryx_u64(&x134, &x135, x133, x126, x129); + uint64_t x136; + fiat_secp256k1_uint1 x137; + fiat_secp256k1_addcarryx_u64(&x136, &x137, x135, x124, x127); + uint64_t x138; + fiat_secp256k1_uint1 x139; + fiat_secp256k1_addcarryx_u64(&x138, &x139, 0x0, x130, x110); + uint64_t x140; + fiat_secp256k1_uint1 x141; + fiat_secp256k1_addcarryx_u64(&x140, &x141, x139, x132, x112); + uint64_t x142; + fiat_secp256k1_uint1 x143; + fiat_secp256k1_addcarryx_u64(&x142, &x143, x141, x134, x114); + uint64_t x144; + fiat_secp256k1_uint1 x145; + fiat_secp256k1_addcarryx_u64(&x144, &x145, x143, x136, x116); + uint64_t x146; + fiat_secp256k1_uint1 x147; + fiat_secp256k1_addcarryx_u64(&x146, &x147, x137, 0x0, x125); + uint64_t x148; + fiat_secp256k1_uint1 x149; + fiat_secp256k1_addcarryx_u64(&x148, &x149, x145, x146, x120); + uint64_t x150; + fiat_secp256k1_uint1 x151; + fiat_secp256k1_subborrowx_u64(&x150, &x151, 0x0, x140, UINT64_C(0xfffffffefffffc2f)); + uint64_t x152; + fiat_secp256k1_uint1 x153; + fiat_secp256k1_subborrowx_u64(&x152, &x153, x151, x142, UINT64_C(0xffffffffffffffff)); + uint64_t x154; + fiat_secp256k1_uint1 x155; + fiat_secp256k1_subborrowx_u64(&x154, &x155, x153, x144, UINT64_C(0xffffffffffffffff)); + uint64_t x156; + fiat_secp256k1_uint1 x157; + fiat_secp256k1_subborrowx_u64(&x156, &x157, x155, x148, UINT64_C(0xffffffffffffffff)); + uint64_t x158; + fiat_secp256k1_uint1 x159; + fiat_secp256k1_addcarryx_u64(&x158, &x159, x149, 0x0, x121); + uint64_t x160; + fiat_secp256k1_uint1 x161; + fiat_secp256k1_subborrowx_u64(&x160, &x161, x157, (fiat_secp256k1_uint1)x158, 0x0); + uint64_t x162; + fiat_secp256k1_cmovznz_u64(&x162, x161, x150, x140); + uint64_t x163; + fiat_secp256k1_cmovznz_u64(&x163, x161, x152, x142); + uint64_t x164; + fiat_secp256k1_cmovznz_u64(&x164, x161, x154, x144); + uint64_t x165; + fiat_secp256k1_cmovznz_u64(&x165, x161, x156, x148); + out1[0] = x162; + out1[1] = x163; + out1[2] = x164; + out1[3] = x165; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_secp256k1_nonzero(uint64_t* out1, const uint64_t arg1[4]) { + uint64_t x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0)))); + *out1 = x1; +} + +/* + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_selectznz(uint64_t out1[4], fiat_secp256k1_uint1 arg1, const uint64_t arg2[4], const uint64_t arg3[4]) { + uint64_t x1; + fiat_secp256k1_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0])); + uint64_t x2; + fiat_secp256k1_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1])); + uint64_t x3; + fiat_secp256k1_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2])); + uint64_t x4; + fiat_secp256k1_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + */ +static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint64_t arg1[4]) { + uint64_t x1 = (arg1[3]); + uint64_t x2 = (arg1[2]); + uint64_t x3 = (arg1[1]); + uint64_t x4 = (arg1[0]); + uint64_t x5 = (x4 >> 8); + uint8_t x6 = (uint8_t)(x4 & UINT8_C(0xff)); + uint64_t x7 = (x5 >> 8); + uint8_t x8 = (uint8_t)(x5 & UINT8_C(0xff)); + uint64_t x9 = (x7 >> 8); + uint8_t x10 = (uint8_t)(x7 & UINT8_C(0xff)); + uint64_t x11 = (x9 >> 8); + uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff)); + uint64_t x13 = (x11 >> 8); + uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff)); + uint64_t x15 = (x13 >> 8); + uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff)); + uint8_t x17 = (uint8_t)(x15 >> 8); + uint8_t x18 = (uint8_t)(x15 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x19 = (fiat_secp256k1_uint1)(x17 >> 8); + uint8_t x20 = (uint8_t)(x17 & UINT8_C(0xff)); + uint64_t x21 = (x19 + x3); + uint64_t x22 = (x21 >> 8); + uint8_t x23 = (uint8_t)(x21 & UINT8_C(0xff)); + uint64_t x24 = (x22 >> 8); + uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff)); + uint64_t x26 = (x24 >> 8); + uint8_t x27 = (uint8_t)(x24 & UINT8_C(0xff)); + uint64_t x28 = (x26 >> 8); + uint8_t x29 = (uint8_t)(x26 & UINT8_C(0xff)); + uint64_t x30 = (x28 >> 8); + uint8_t x31 = (uint8_t)(x28 & UINT8_C(0xff)); + uint64_t x32 = (x30 >> 8); + uint8_t x33 = (uint8_t)(x30 & UINT8_C(0xff)); + uint8_t x34 = (uint8_t)(x32 >> 8); + uint8_t x35 = (uint8_t)(x32 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x36 = (fiat_secp256k1_uint1)(x34 >> 8); + uint8_t x37 = (uint8_t)(x34 & UINT8_C(0xff)); + uint64_t x38 = (x36 + x2); + uint64_t x39 = (x38 >> 8); + uint8_t x40 = (uint8_t)(x38 & UINT8_C(0xff)); + uint64_t x41 = (x39 >> 8); + uint8_t x42 = (uint8_t)(x39 & UINT8_C(0xff)); + uint64_t x43 = (x41 >> 8); + uint8_t x44 = (uint8_t)(x41 & UINT8_C(0xff)); + uint64_t x45 = (x43 >> 8); + uint8_t x46 = (uint8_t)(x43 & UINT8_C(0xff)); + uint64_t x47 = (x45 >> 8); + uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff)); + uint64_t x49 = (x47 >> 8); + uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff)); + uint8_t x51 = (uint8_t)(x49 >> 8); + uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff)); + fiat_secp256k1_uint1 x53 = (fiat_secp256k1_uint1)(x51 >> 8); + uint8_t x54 = (uint8_t)(x51 & UINT8_C(0xff)); + uint64_t x55 = (x53 + x1); + uint64_t x56 = (x55 >> 8); + uint8_t x57 = (uint8_t)(x55 & UINT8_C(0xff)); + uint64_t x58 = (x56 >> 8); + uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff)); + uint64_t x60 = (x58 >> 8); + uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff)); + uint64_t x62 = (x60 >> 8); + uint8_t x63 = (uint8_t)(x60 & UINT8_C(0xff)); + uint64_t x64 = (x62 >> 8); + uint8_t x65 = (uint8_t)(x62 & UINT8_C(0xff)); + uint64_t x66 = (x64 >> 8); + uint8_t x67 = (uint8_t)(x64 & UINT8_C(0xff)); + uint8_t x68 = (uint8_t)(x66 >> 8); + uint8_t x69 = (uint8_t)(x66 & UINT8_C(0xff)); + out1[0] = x6; + out1[1] = x8; + out1[2] = x10; + out1[3] = x12; + out1[4] = x14; + out1[5] = x16; + out1[6] = x18; + out1[7] = x20; + out1[8] = x23; + out1[9] = x25; + out1[10] = x27; + out1[11] = x29; + out1[12] = x31; + out1[13] = x33; + out1[14] = x35; + out1[15] = x37; + out1[16] = x40; + out1[17] = x42; + out1[18] = x44; + out1[19] = x46; + out1[20] = x48; + out1[21] = x50; + out1[22] = x52; + out1[23] = x54; + out1[24] = x57; + out1[25] = x59; + out1[26] = x61; + out1[27] = x63; + out1[28] = x65; + out1[29] = x67; + out1[30] = x69; + out1[31] = x68; +} + +/* + * Input Bounds: + * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_secp256k1_from_bytes(uint64_t out1[4], const uint8_t arg1[32]) { + uint64_t x1 = ((uint64_t)(arg1[31]) << 56); + uint64_t x2 = ((uint64_t)(arg1[30]) << 48); + uint64_t x3 = ((uint64_t)(arg1[29]) << 40); + uint64_t x4 = ((uint64_t)(arg1[28]) << 32); + uint64_t x5 = ((uint64_t)(arg1[27]) << 24); + uint64_t x6 = ((uint64_t)(arg1[26]) << 16); + uint64_t x7 = ((uint64_t)(arg1[25]) << 8); + uint8_t x8 = (arg1[24]); + uint64_t x9 = ((uint64_t)(arg1[23]) << 56); + uint64_t x10 = ((uint64_t)(arg1[22]) << 48); + uint64_t x11 = ((uint64_t)(arg1[21]) << 40); + uint64_t x12 = ((uint64_t)(arg1[20]) << 32); + uint64_t x13 = ((uint64_t)(arg1[19]) << 24); + uint64_t x14 = ((uint64_t)(arg1[18]) << 16); + uint64_t x15 = ((uint64_t)(arg1[17]) << 8); + uint8_t x16 = (arg1[16]); + uint64_t x17 = ((uint64_t)(arg1[15]) << 56); + uint64_t x18 = ((uint64_t)(arg1[14]) << 48); + uint64_t x19 = ((uint64_t)(arg1[13]) << 40); + uint64_t x20 = ((uint64_t)(arg1[12]) << 32); + uint64_t x21 = ((uint64_t)(arg1[11]) << 24); + uint64_t x22 = ((uint64_t)(arg1[10]) << 16); + uint64_t x23 = ((uint64_t)(arg1[9]) << 8); + uint8_t x24 = (arg1[8]); + uint64_t x25 = ((uint64_t)(arg1[7]) << 56); + uint64_t x26 = ((uint64_t)(arg1[6]) << 48); + uint64_t x27 = ((uint64_t)(arg1[5]) << 40); + uint64_t x28 = ((uint64_t)(arg1[4]) << 32); + uint64_t x29 = ((uint64_t)(arg1[3]) << 24); + uint64_t x30 = ((uint64_t)(arg1[2]) << 16); + uint64_t x31 = ((uint64_t)(arg1[1]) << 8); + uint8_t x32 = (arg1[0]); + uint64_t x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + fiat_secp256k1_uint1 x34 = (fiat_secp256k1_uint1)((fiat_secp256k1_uint128)x33 >> 64); + uint64_t x35 = (x33 & UINT64_C(0xffffffffffffffff)); + uint64_t x36 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + uint64_t x37 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + uint64_t x38 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + uint64_t x39 = (x34 + x38); + fiat_secp256k1_uint1 x40 = (fiat_secp256k1_uint1)((fiat_secp256k1_uint128)x39 >> 64); + uint64_t x41 = (x39 & UINT64_C(0xffffffffffffffff)); + uint64_t x42 = (x40 + x37); + fiat_secp256k1_uint1 x43 = (fiat_secp256k1_uint1)((fiat_secp256k1_uint128)x42 >> 64); + uint64_t x44 = (x42 & UINT64_C(0xffffffffffffffff)); + uint64_t x45 = (x43 + x36); + out1[0] = x35; + out1[1] = x41; + out1[2] = x44; + out1[3] = x45; +} + |