aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile26
-rw-r--r--_CoqProject34
-rwxr-xr-xcapture.sh2
-rwxr-xr-xextract-function.sh1
-rw-r--r--liblow/cmovznz.c10
-rw-r--r--liblow/liblow.h2
-rw-r--r--measure.c18
-rw-r--r--src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.log19
-rwxr-xr-xsrc/Specific/NISTP256/AMD64/compiler.sh2
-rw-r--r--src/Specific/NISTP256/AMD64/feadd.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Add.v)0
-rw-r--r--src/Specific/NISTP256/AMD64/feaddDisplay.log (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.log)0
-rw-r--r--src/Specific/NISTP256/AMD64/feaddDisplay.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.v)2
-rw-r--r--src/Specific/NISTP256/AMD64/femul.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256.v)0
-rw-r--r--src/Specific/NISTP256/AMD64/femulDisplay.log (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.log)0
-rw-r--r--src/Specific/NISTP256/AMD64/femulDisplay.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.v)2
-rw-r--r--src/Specific/NISTP256/AMD64/fenz.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Nonzero.v)0
-rw-r--r--src/Specific/NISTP256/AMD64/fenzDisplay.log (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.log)0
-rw-r--r--src/Specific/NISTP256/AMD64/fenzDisplay.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.v)2
-rw-r--r--src/Specific/NISTP256/AMD64/feopp.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Opp.v)0
-rw-r--r--src/Specific/NISTP256/AMD64/feoppDisplay.log0
-rw-r--r--src/Specific/NISTP256/AMD64/feoppDisplay.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.v)0
-rw-r--r--src/Specific/NISTP256/AMD64/fesub.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Sub.v)0
-rw-r--r--src/Specific/NISTP256/AMD64/fesubDisplay.log (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.log)0
-rw-r--r--src/Specific/NISTP256/AMD64/fesubDisplay.v (renamed from src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.v)2
-rw-r--r--src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s6031
-rw-r--r--src/Specific/NISTP256/AMD64/icc/measurements.txt2
-rw-r--r--src/Specific/NISTP256/AMD64/measurements.txt2
-rw-r--r--src/Specific/NISTP256/AMD64/p256.h7
-rw-r--r--src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c363
-rw-r--r--src/Specific/X25519/C64/measurements.txt2
-rw-r--r--third_party/openssl-nistp256c64/measurements.txt1
31 files changed, 3088 insertions, 3442 deletions
diff --git a/Makefile b/Makefile
index d8d62fbe4..54cfaa124 100644
--- a/Makefile
+++ b/Makefile
@@ -151,40 +151,40 @@ $(DISPLAY_JAVA_VO:.vo=.log) : %JavaDisplay.log : %.vo %JavaDisplay.v src/Compile
DISPLAY_X25519_C64_VO := $(filter src/Specific/X25519/C64/%,$(DISPLAY_NON_JAVA_VO))
src/Specific/X25519/C64/measure: src/Specific/X25519/C64/compiler.sh measure.c $(DISPLAY_X25519_C64_VO:Display.vo=.c) $(DISPLAY_X25519_C64_VO:Display.vo=.h) src/Specific/X25519/C64/scalarmult.c
- src/Specific/X25519/C64/compiler.sh -o src/Specific/X25519/C64/measure -I src/Specific/X25519/C64/ measure.c $(DISPLAY_X25519_C64_VO:Display.vo=.c) src/Specific/X25519/C64/scalarmult.c -D TIMINGS=2047 -D UUT=crypto_scalarmult_bench
+ src/Specific/X25519/C64/compiler.sh -o src/Specific/X25519/C64/measure -I liblow -I src/Specific/X25519/C64/ measure.c $(DISPLAY_X25519_C64_VO:Display.vo=.c) src/Specific/X25519/C64/scalarmult.c -D UUT=crypto_scalarmult_bench
src/Specific/X25519/C64/measurements.txt: src/Specific/X25519/C64/measure capture.sh etc/machine.sh etc/freq.sh
- ./capture.sh src/Specific/X25519/C64
+ ./capture.sh src/Specific/X25519/C64 2047
third_party/openssl-curve25519/measure: third_party/openssl-curve25519/compiler.sh third_party/openssl-curve25519/crypto_scalarmult_bench.c third_party/openssl-curve25519/ec_curve25519.c third_party/openssl-curve25519/ec_curve25519.h
- third_party/openssl-curve25519/compiler.sh -o third_party/openssl-curve25519/measure measure.c third_party/openssl-curve25519/crypto_scalarmult_bench.c third_party/openssl-curve25519/ec_curve25519.c -I third_party/openssl-curve25519 -D TIMINGS=2047 -D UUT=crypto_scalarmult_bench
+ third_party/openssl-curve25519/compiler.sh -o third_party/openssl-curve25519/measure measure.c third_party/openssl-curve25519/crypto_scalarmult_bench.c third_party/openssl-curve25519/ec_curve25519.c -I liblow -I third_party/openssl-curve25519 -D UUT=crypto_scalarmult_bench
third_party/openssl-curve25519/measurements.txt: third_party/openssl-curve25519/measure
- ./capture.sh third_party/openssl-curve25519
+ ./capture.sh third_party/openssl-curve25519 2047
third_party/openssl-nistz256/measure: third_party/openssl-nistz256/compiler.sh third_party/openssl-nistz256/bench_madd.c third_party/openssl-nistz256/cpu_intel.c third_party/openssl-nistz256/ecp_nistz256-x86_64.s third_party/openssl-nistz256/nistz256.h
- third_party/openssl-nistz256/compiler.sh -o third_party/openssl-nistz256/measure measure.c third_party/openssl-nistz256/bench_madd.c third_party/openssl-nistz256/cpu_intel.c third_party/openssl-nistz256/ecp_nistz256-x86_64.s src/Specific/X25519/C64/scalarmult.c -I third_party/openssl-nistz256 -D TIMINGS=2047 -D UUT=bench_madd
+ third_party/openssl-nistz256/compiler.sh -o third_party/openssl-nistz256/measure measure.c third_party/openssl-nistz256/bench_madd.c third_party/openssl-nistz256/cpu_intel.c third_party/openssl-nistz256/ecp_nistz256-x86_64.s src/Specific/X25519/C64/scalarmult.c -I liblow -I third_party/openssl-nistz256 -D UUT=bench_madd
third_party/openssl-nistz256/measurements.txt: third_party/openssl-nistz256/measure
- ./capture.sh third_party/openssl-nistz256
+ ./capture.sh third_party/openssl-nistz256 65535
third_party/openssl-nistp256c64/measure: third_party/openssl-nistp256c64/compiler.sh third_party/openssl-nistp256c64/bench_madd.c third_party/openssl-nistp256c64/ecp_nistp256.c third_party/openssl-nistp256c64/ecp_nistp256.h
- third_party/openssl-nistp256c64/compiler.sh -o third_party/openssl-nistp256c64/measure measure.c third_party/openssl-nistp256c64/bench_madd.c third_party/openssl-nistp256c64/ecp_nistp256.c third_party/openssl-nistp256c64/ecp_nistp256.h -I third_party/openssl-nistp256c64 -D TIMINGS=2047 -D UUT=bench_madd
+ third_party/openssl-nistp256c64/compiler.sh -o third_party/openssl-nistp256c64/measure measure.c third_party/openssl-nistp256c64/bench_madd.c third_party/openssl-nistp256c64/ecp_nistp256.c third_party/openssl-nistp256c64/ecp_nistp256.h -I liblow -I third_party/openssl-nistp256c64 -D UUT=bench_madd
third_party/openssl-nistp256c64/measurements.txt: third_party/openssl-nistp256c64/measure
- ./capture.sh third_party/openssl-nistp256c64
+ ./capture.sh third_party/openssl-nistp256c64 65535
-src/Specific/NISTP256/AMD64/measure: src/Specific/NISTP256/AMD64/compiler.sh src/Specific/NISTP256/AMD64/p256.h src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c src/Specific/NISTP256/AMD64/bench_madd.c
- src/Specific/NISTP256/AMD64/compiler.sh -o src/Specific/NISTP256/AMD64/measure src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c src/Specific/NISTP256/AMD64/bench_madd.c -I src/Specific/NISTP256/AMD64 measure.c -D TIMINGS=2047 -D UUT=bench_madd
+src/Specific/NISTP256/AMD64/measure: src/Specific/NISTP256/AMD64/bench_madd.c src/Specific/NISTP256/AMD64/feadd.c src/Specific/NISTP256/AMD64/femul.c src/Specific/NISTP256/AMD64/fenz.c src/Specific/NISTP256/AMD64/feopp.c src/Specific/NISTP256/AMD64/fesub.c src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c liblow/cmovznz.c measure.c src/Specific/NISTP256/AMD64/compiler.sh measure.c
+ src/Specific/NISTP256/AMD64/compiler.sh -o src/Specific/NISTP256/AMD64/measure src/Specific/NISTP256/AMD64/*.c -I src/Specific/NISTP256/AMD64/ measure.c -D UUT=bench_madd -I liblow liblow/*.c
src/Specific/NISTP256/AMD64/measurements.txt: src/Specific/NISTP256/AMD64/measure
- ./capture.sh src/Specific/NISTP256/AMD64
+ ./capture.sh src/Specific/NISTP256/AMD64 65535
src/Specific/NISTP256/AMD64/icc/measure: src/Specific/NISTP256/AMD64/compiler.sh src/Specific/NISTP256/AMD64/p256.h src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s src/Specific/NISTP256/AMD64/bench_madd.c
- src/Specific/NISTP256/AMD64/icc/compiler.sh -o src/Specific/NISTP256/AMD64/icc/measure src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s src/Specific/NISTP256/AMD64/bench_madd.c -I src/Specific/NISTP256/AMD64 measure.c -D TIMINGS=2047 -D UUT=bench_madd
+ src/Specific/NISTP256/AMD64/icc/compiler.sh -o src/Specific/NISTP256/AMD64/icc/measure src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s src/Specific/NISTP256/AMD64/bench_madd.c -I liblow -I src/Specific/NISTP256/AMD64 measure.c -D UUT=bench_madd
src/Specific/NISTP256/AMD64/icc/measurements.txt: src/Specific/NISTP256/AMD64/icc/measure
- ./capture.sh src/Specific/NISTP256/AMD64/icc
+ ./capture.sh src/Specific/NISTP256/AMD64/icc 65535
bench: src/Specific/X25519/C64/measurements.txt third_party/openssl-curve25519/measurements.txt src/Specific/NISTP256/AMD64/measurements.txt src/Specific/NISTP256/AMD64/icc/measurements.txt third_party/openssl-nistz256/measurements.txt third_party/openssl-nistp256c64/measurements.txt
head -999999 $?
diff --git a/_CoqProject b/_CoqProject
index d46c94a1f..aadb4a93d 100644
--- a/_CoqProject
+++ b/_CoqProject
@@ -18,13 +18,6 @@ src/Arithmetic/Karatsuba.v
src/Arithmetic/ModularArithmeticPre.v
src/Arithmetic/ModularArithmeticTheorems.v
src/Arithmetic/PrimeFieldTheorems.v
-src/Arithmetic/Saturated/AddSub.v
-src/Arithmetic/Saturated/Core.v
-src/Arithmetic/Saturated/Freeze.v
-src/Arithmetic/Saturated/MontgomeryAPI.v
-src/Arithmetic/Saturated/MulSplit.v
-src/Arithmetic/Saturated/UniformWeight.v
-src/Arithmetic/Saturated/Wrappers.v
src/Arithmetic/BarrettReduction/Generalized.v
src/Arithmetic/BarrettReduction/HAC.v
src/Arithmetic/BarrettReduction/Wikipedia.v
@@ -36,6 +29,13 @@ src/Arithmetic/MontgomeryReduction/WordByWord/Abstract/Definition.v
src/Arithmetic/MontgomeryReduction/WordByWord/Abstract/Proofs.v
src/Arithmetic/MontgomeryReduction/WordByWord/Abstract/Dependent/Definition.v
src/Arithmetic/MontgomeryReduction/WordByWord/Abstract/Dependent/Proofs.v
+src/Arithmetic/Saturated/AddSub.v
+src/Arithmetic/Saturated/Core.v
+src/Arithmetic/Saturated/Freeze.v
+src/Arithmetic/Saturated/MontgomeryAPI.v
+src/Arithmetic/Saturated/MulSplit.v
+src/Arithmetic/Saturated/UniformWeight.v
+src/Arithmetic/Saturated/Wrappers.v
src/Compilers/CommonSubexpressionElimination.v
src/Compilers/CommonSubexpressionEliminationDenote.v
src/Compilers/CommonSubexpressionEliminationInterp.v
@@ -246,17 +246,17 @@ src/Specific/IntegrationTestSubDisplay.v
src/Specific/IntegrationTestTemporaryMiscCommon.v
src/Specific/Karatsuba.v
src/Specific/MontgomeryP256_128.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Add.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Nonzero.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Opp.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Sub.v
-src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.v
src/Specific/NISTP256/AMD64/MontgomeryP256.v
+src/Specific/NISTP256/AMD64/feadd.v
+src/Specific/NISTP256/AMD64/feaddDisplay.v
+src/Specific/NISTP256/AMD64/femul.v
+src/Specific/NISTP256/AMD64/femulDisplay.v
+src/Specific/NISTP256/AMD64/fenz.v
+src/Specific/NISTP256/AMD64/fenzDisplay.v
+src/Specific/NISTP256/AMD64/feopp.v
+src/Specific/NISTP256/AMD64/feoppDisplay.v
+src/Specific/NISTP256/AMD64/fesub.v
+src/Specific/NISTP256/AMD64/fesubDisplay.v
src/Specific/NISTP256/FancyMachine256/Barrett.v
src/Specific/NISTP256/FancyMachine256/Core.v
src/Specific/NISTP256/FancyMachine256/Montgomery.v
diff --git a/capture.sh b/capture.sh
index 123058628..868cc4384 100755
--- a/capture.sh
+++ b/capture.sh
@@ -4,7 +4,7 @@ set -eu
machine=$(etc/machine.sh)
freq=$(etc/freq.sh)
compiler=$($1/compiler.sh -dumpversion)
-measurement=$($1/measure | (LC_ALL=C sort -n || true) | head -1024 | tail -1)
+measurement=$($1/measure $2 | (LC_ALL=C sort -n || true) | head "-$(($2/2))" | tail -1)
revision=$(git rev-parse --short HEAD)
(
diff --git a/extract-function.sh b/extract-function.sh
index dc967070b..c4345674f 100755
--- a/extract-function.sh
+++ b/extract-function.sh
@@ -17,6 +17,7 @@ cat <<EOF
#include <stdint.h>
#include <stdbool.h>
#include <x86intrin.h>
+#include "liblow.h"
#include "$funcname.h"
diff --git a/liblow/cmovznz.c b/liblow/cmovznz.c
new file mode 100644
index 000000000..8533ade99
--- /dev/null
+++ b/liblow/cmovznz.c
@@ -0,0 +1,10 @@
+#include <stdint.h>
+#include "liblow.h"
+uint64_t cmovznz(uint64_t t, uint64_t z, uint64_t nz) {
+ asm ("testq %1, %1;" "\n"
+ "\t" "cmovnzq %3, %0;"
+ :"=r"(z)
+ :"r"(t), "0"(z), "r"(nz)
+ );
+ return z;
+}
diff --git a/liblow/liblow.h b/liblow/liblow.h
new file mode 100644
index 000000000..a8af0f52f
--- /dev/null
+++ b/liblow/liblow.h
@@ -0,0 +1,2 @@
+#include <stdint.h>
+uint64_t cmovznz(uint64_t t, uint64_t z, uint64_t nz);
diff --git a/measure.c b/measure.c
index 91a4aa82a..ea827f618 100644
--- a/measure.c
+++ b/measure.c
@@ -85,24 +85,28 @@ void limits()
void UUT(unsigned char*);
-void measure(void)
+void measure(int n)
{
unsigned char *buf = aligned_alloc(64, 1024);
- static long long cycles[TIMINGS + 1];
+ long long* cycles = calloc(n + 1, sizeof(long long));
- for (int i = 0;i <= TIMINGS;++i) {
+ for (int i = 0;i <= n;++i) {
cycles[i] = cpucycles();
UUT(buf);
}
- for (int i = 0;i < TIMINGS;++i) cycles[i] = cycles[i + 1] - cycles[i];
- for (int i = 0;i < TIMINGS;++i) printf("%lld\n", cycles[i]);
+ for (int i = 0;i < n;++i) cycles[i] = cycles[i + 1] - cycles[i];
+ for (int i = 0;i < n;++i) printf("%lld\n", cycles[i]);
__asm__ __volatile__("" :: "m" (buf)); // do not optimize buf away
+ free(cycles);
}
-int main()
+int main(int argc, char** argv)
{
+ int n = 0;
+ if (argc != 2) return 111;
+ sscanf(argv[1], "%d", &n);
limits();
- measure();
+ measure(n);
return 0;
}
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.log b/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.log
deleted file mode 100644
index 211b2b863..000000000
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.log
+++ /dev/null
@@ -1,19 +0,0 @@
-λ x : word64 * word64 * word64 * word64,
-Interp-η
-(λ var : Syntax.base_type → Type,
- λ '(x5, x6, x4, x2)%core,
- uint64_t x8, uint8_t x9 = subborrow_u64(0x0, 0x0, x2);
- uint64_t x11, uint8_t x12 = subborrow_u64(x9, 0x0, x4);
- uint64_t x14, uint8_t x15 = subborrow_u64(x12, 0x0, x6);
- uint64_t x17, uint8_t x18 = subborrow_u64(x15, 0x0, x5);
- uint64_t x19 = (uint64_t)cmovznz(x18, 0x0, 0xffffffffffffffffL);
- uint64_t x20 = x19 & 0xffffffffffffffffL;
- uint64_t x22, uint8_t x23 = addcarryx_u64(0x0, x8, x20);
- uint64_t x24 = x19 & 0xffffffff;
- uint64_t x26, uint8_t x27 = addcarryx_u64(x23, x11, x24);
- uint64_t x29, uint8_t x30 = addcarryx_u64(x27, x14, 0x0);
- uint64_t x31 = x19 & 0xffffffff00000001L;
- uint64_t x33, uint8_t _ = addcarryx_u64(x30, x17, x31);
- (Return x33, Return x29, Return x26, Return x22))
-x
- : word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/NISTP256/AMD64/compiler.sh b/src/Specific/NISTP256/AMD64/compiler.sh
index e64df574a..90136bfbe 100755
--- a/src/Specific/NISTP256/AMD64/compiler.sh
+++ b/src/Specific/NISTP256/AMD64/compiler.sh
@@ -1,4 +1,4 @@
#!/bin/sh
set -eu
-gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes $@
+gcc -march=native -mtune=native -std=gnu11 -O3 -flto -fomit-frame-pointer -fwrapv -Wno-attributes -Wno-incompatible-pointer-types -fno-strict-aliasing $@
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Add.v b/src/Specific/NISTP256/AMD64/feadd.v
index 1ea0fbc35..1ea0fbc35 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Add.v
+++ b/src/Specific/NISTP256/AMD64/feadd.v
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.log b/src/Specific/NISTP256/AMD64/feaddDisplay.log
index ba7a2f50d..ba7a2f50d 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.log
+++ b/src/Specific/NISTP256/AMD64/feaddDisplay.log
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.v b/src/Specific/NISTP256/AMD64/feaddDisplay.v
index 505b77a40..452044402 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_AddDisplay.v
+++ b/src/Specific/NISTP256/AMD64/feaddDisplay.v
@@ -1,4 +1,4 @@
-Require Import Crypto.Specific.NISTP256.AMD64.IntegrationTestMontgomeryP256_Add.
+Require Import Crypto.Specific.NISTP256.AMD64.feadd.
Require Import Crypto.Specific.IntegrationTestDisplayCommon.
Check display add.
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256.v b/src/Specific/NISTP256/AMD64/femul.v
index d600869bd..d600869bd 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256.v
+++ b/src/Specific/NISTP256/AMD64/femul.v
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.log b/src/Specific/NISTP256/AMD64/femulDisplay.log
index 982d44aaf..982d44aaf 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.log
+++ b/src/Specific/NISTP256/AMD64/femulDisplay.log
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.v b/src/Specific/NISTP256/AMD64/femulDisplay.v
index 590879c0c..f47c0ba06 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256Display.v
+++ b/src/Specific/NISTP256/AMD64/femulDisplay.v
@@ -1,4 +1,4 @@
-Require Import Crypto.Specific.NISTP256.AMD64.IntegrationTestMontgomeryP256.
+Require Import Crypto.Specific.NISTP256.AMD64.femul.
Require Import Crypto.Specific.IntegrationTestDisplayCommon.
Check display mul.
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Nonzero.v b/src/Specific/NISTP256/AMD64/fenz.v
index cfea6e957..cfea6e957 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Nonzero.v
+++ b/src/Specific/NISTP256/AMD64/fenz.v
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.log b/src/Specific/NISTP256/AMD64/fenzDisplay.log
index 399df24d4..399df24d4 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.log
+++ b/src/Specific/NISTP256/AMD64/fenzDisplay.log
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.v b/src/Specific/NISTP256/AMD64/fenzDisplay.v
index c56e9a92d..c4119449f 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_NonzeroDisplay.v
+++ b/src/Specific/NISTP256/AMD64/fenzDisplay.v
@@ -1,4 +1,4 @@
-Require Import Crypto.Specific.NISTP256.AMD64.IntegrationTestMontgomeryP256_Nonzero.
+Require Import Crypto.Specific.NISTP256.AMD64.fenz.
Require Import Crypto.Specific.IntegrationTestDisplayCommon.
Check display nonzero.
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Opp.v b/src/Specific/NISTP256/AMD64/feopp.v
index ef4ea6aa6..ef4ea6aa6 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Opp.v
+++ b/src/Specific/NISTP256/AMD64/feopp.v
diff --git a/src/Specific/NISTP256/AMD64/feoppDisplay.log b/src/Specific/NISTP256/AMD64/feoppDisplay.log
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/Specific/NISTP256/AMD64/feoppDisplay.log
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.v b/src/Specific/NISTP256/AMD64/feoppDisplay.v
index af0987565..af0987565 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_OppDisplay.v
+++ b/src/Specific/NISTP256/AMD64/feoppDisplay.v
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Sub.v b/src/Specific/NISTP256/AMD64/fesub.v
index d01471804..d01471804 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_Sub.v
+++ b/src/Specific/NISTP256/AMD64/fesub.v
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.log b/src/Specific/NISTP256/AMD64/fesubDisplay.log
index eb4289fd2..eb4289fd2 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.log
+++ b/src/Specific/NISTP256/AMD64/fesubDisplay.log
diff --git a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.v b/src/Specific/NISTP256/AMD64/fesubDisplay.v
index a4c25bb05..0f771869c 100644
--- a/src/Specific/NISTP256/AMD64/IntegrationTestMontgomeryP256_SubDisplay.v
+++ b/src/Specific/NISTP256/AMD64/fesubDisplay.v
@@ -1,4 +1,4 @@
-Require Import Crypto.Specific.NISTP256.AMD64.IntegrationTestMontgomeryP256_Sub.
+Require Import Crypto.Specific.NISTP256.AMD64.fesub.
Require Import Crypto.Specific.IntegrationTestDisplayCommon.
Check display sub.
diff --git a/src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s b/src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s
index 08822f667..8dc77ca47 100644
--- a/src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s
+++ b/src/Specific/NISTP256/AMD64/icc/icc17_p256_jacobian_add_affine.s
@@ -3,3057 +3,2984 @@
.globl p256_jacobian_add_affine
.type p256_jacobian_add_affine, @function
p256_jacobian_add_affine:
- push r12 #306.3
- push r13 #306.3
- push r14 #306.3
- push r15 #306.3
- push rbx #306.3
- push rbp #306.3
- sub rsp, 424 #306.3
- mov QWORD PTR [104+rsp], rdx #306.3[spill]
- pxor xmm0, xmm0 #315.20
- mov QWORD PTR [96+rsp], rsi #306.3[spill]
- mov QWORD PTR [112+rsp], rdi #306.3[spill]
- movups XMMWORD PTR [64+rsp], xmm0 #315.20
- movups XMMWORD PTR [80+rsp], xmm0 #315.20
- mov r8, rdi #315.41
- mov r15, -1 #196.33
- xor r9d, r9d #192.32
- vpxor xmm0, xmm0, xmm0 #317.20
- mov r10, QWORD PTR [64+r8] #315.62
- mov rdx, r10 #188.33
- mov r11, QWORD PTR [72+r8] #315.55
- mov rdi, QWORD PTR [88+r8] #315.41
- mov rsi, QWORD PTR [80+r8] #315.48
- mulx r13, r12, r10 #188.33
- mulx r8, rbp, r11 #189.33
- adcx r12, r8 #192.32
- mov QWORD PTR [168+rsp], rsi #315.48[spill]
- mulx rbx, rsi, rsi #190.33
- adcx rbp, rbx #193.32
- mov rbx, 0x0ffffffff #197.33
- mulx rcx, rax, rdi #191.33
- mov rdx, r13 #196.33
- adcx rsi, rcx #194.32
- mov rcx, 0xffffffff00000001 #198.33
- mov QWORD PTR [160+rsp], rdi #315.41[spill]
- mov edi, 0 #192.32
- mov r8d, edi #194.32
- setb r8b #194.32
- adox r9d, edi #195.30
- mov r9d, edi #195.30
- adox r8, rax #195.30
- mulx r15, r14, r15 #196.33
- seto r9b #195.30
- clc #199.32
- mulx r9, rax, rbx #197.33
- adcx r14, r9 #199.32
- mov r9d, 0 #200.32
- mulx rcx, rbx, rcx #198.33
- mov edx, edi #202.30
- adcx rax, r9 #200.32
- mov QWORD PTR [176+rsp], r11 #315.55[spill]
- adcx rcx, r9 #201.32
- mov r9d, edi #201.32
- mov QWORD PTR [152+rsp], r10 #315.62[spill]
- setb r9b #201.32
- adox edx, edi #202.30
- mov rdx, r11 #208.33
- adox r9, rbx #202.30
- clc #203.30
- adcx r13, r15 #203.30
- mulx r15, r13, QWORD PTR [168+rsp] #210.33[spill]
- adcx r12, r14 #204.32
- adcx rbp, rax #205.32
- mulx rax, r14, r11 #209.33
- mov r11d, edi #212.32
- adcx rsi, rcx #206.32
- mulx r10, rcx, r10 #208.33
- adcx r8, r9 #207.32
- mov r9d, edi #207.32
- mulx rdx, rbx, QWORD PTR [160+rsp] #211.33[spill]
- setb r9b #207.32
- adox r11d, edi #212.32
- mov r11, 0xffffffff00000001 #223.35
- adox rcx, rax #212.32
- mov eax, edi #214.32
- adox r14, r15 #213.32
- mov r15d, edi #216.34
- adox r13, rdx #214.32
- seto al #214.32
- clc #215.30
- adcx rax, rbx #215.30
- adox r15d, edi #216.34
- mov ebx, edi #220.34
- adox r12, r10 #216.34
- mov rdx, r12 #221.35
- adox rbp, rcx #217.34
- mov rcx, -1 #221.35
- mulx r15, r10, rcx #221.35
- adox rsi, r14 #218.34
- mov r14, 0x0ffffffff #222.35
- adox r8, r13 #219.34
- adox r9, rax #220.34
- mulx r13, rax, r14 #222.35
- mov r14d, 0 #225.34
- seto bl #220.34
- clc #224.34
- adcx r10, r13 #224.34
- mulx rcx, r13, r11 #223.35
- mov r11d, edi #227.31
- adcx rax, r14 #225.34
- mov rdx, QWORD PTR [168+rsp] #234.35[spill]
- adcx rcx, r14 #226.34
- mov r14d, edi #226.34
- setb r14b #226.34
- adox r11d, edi #227.31
- adox r14, r13 #227.31
- mov r13d, edi #238.34
- clc #228.31
- adcx r12, r15 #228.31
- mulx r15, r11, rdx #236.35
- adcx rbp, r10 #229.34
- mov r10d, edi #232.34
- adcx rsi, rax #230.34
- adcx r8, rcx #231.34
- adcx r9, r14 #232.34
- mulx rax, r14, QWORD PTR [176+rsp] #235.35[spill]
- setb r10b #232.34
- adox r13d, edi #238.34
- mov DWORD PTR [32+rsp], r10d #232.34[spill]
- mulx r10, r12, QWORD PTR [152+rsp] #234.35[spill]
- adox r12, rax #238.34
- mov eax, edi #240.34
- mulx rdx, rcx, QWORD PTR [160+rsp] #237.35[spill]
- adox r14, r15 #239.34
- mov r15d, edi #242.34
- adox r11, rdx #240.34
- seto al #240.34
- clc #241.31
- adcx rax, rcx #241.31
- adox r15d, edi #242.34
- mov r15, 0x0ffffffff #248.35
- adox rbp, r10 #242.34
- mov rdx, rbp #247.35
- adox rsi, r12 #243.34
- mov r12d, edi #245.34
- mulx r10, r15, r15 #248.35
- adox r8, r14 #244.34
- adox r9, r11 #245.34
- seto r12b #245.34
- xor ecx, ecx #245.34
- add ebx, DWORD PTR [32+rsp] #246.34[spill]
- cmp edi, r12d #246.34
- mov r12, 0xffffffff00000001 #249.35
- adcx rbx, rax #246.34
- mov rax, -1 #247.35
- mulx r14, r13, rax #247.35
- mulx r12, r11, r12 #249.35
- mov edx, edi #250.34
- setb cl #246.34
- adox edx, edi #250.34
- mov rdx, QWORD PTR [160+rsp] #260.35[spill]
- adox r13, r10 #250.34
- mov r10d, 0 #251.34
- adox r15, r10 #251.34
- adox r12, r10 #252.34
- mov r10d, edi #252.34
- seto r10b #252.34
- clc #253.31
- adcx r10, r11 #253.31
- mov r11d, edi #254.31
- adox r11d, edi #254.31
- adox rbp, r14 #254.31
- adox rsi, r13 #255.34
- mov r13d, edi #258.34
- adox r8, r15 #256.34
- mulx rbp, r15, QWORD PTR [176+rsp] #261.35[spill]
- adox r9, r12 #257.34
- mulx r12, r11, QWORD PTR [152+rsp] #260.35[spill]
- adox rbx, r10 #258.34
- seto r13b #258.34
- clc #264.34
- adcx r11, rbp #264.34
- mulx rbp, r14, QWORD PTR [168+rsp] #262.35[spill]
- adcx r15, rbp #265.34
- mulx rbp, r10, rdx #263.35
- mov edx, edi #267.31
- adcx r14, rbp #266.34
- mov ebp, edi #266.34
- setb bpl #266.34
- adox edx, edi #267.31
- adox rbp, r10 #267.31
- clc #268.34
- adcx rsi, r12 #268.34
- mov rdx, rsi #273.35
- adcx r8, r11 #269.34
- adcx r9, r15 #270.34
- mov r15, 0x0ffffffff #274.35
- mulx r15, r11, r15 #274.35
- adcx rbx, r14 #271.34
- mov r14d, edi #271.34
- setb r14b #271.34
- xor r10d, r10d #271.34
- add ecx, r13d #272.34
- cmp edi, r14d #272.34
- mov r13, 0xffffffff00000001 #275.35
- mulx r14, r12, rax #273.35
- adcx rcx, rbp #272.34
- mulx rbp, r13, r13 #275.35
- mov edx, edi #276.34
- setb r10b #272.34
- adox edx, edi #276.34
- mov edx, edi #278.34
- adox r12, r15 #276.34
- mov r15d, 0 #277.34
- adox r11, r15 #277.34
- adox rbp, r15 #278.34
- seto dl #278.34
- clc #279.31
- adcx rdx, r13 #279.31
- mov r13d, edi #280.31
- adox r13d, edi #280.31
- adox rsi, r14 #280.31
- mov esi, edi #284.34
- adox r8, r12 #281.34
- adox r9, r11 #282.34
- mov r11, 0xffffffff00000001 #289.34
- adox rbx, rbp #283.34
- mov rbp, r9 #287.34
- adox rcx, rdx #284.34
- mov rdx, rcx #289.34
- seto sil #284.34
- xor r12d, r12d #284.34
- add r10d, esi #290.31
- mov rsi, r8 #286.34
- sub rsi, rax #286.34
- mov rax, 0x0ffffffff #287.34
- sbb rbp, rax #287.34
- mov rax, rbx #288.34
- sbb rax, r15 #288.34
- sbb rdx, r11 #289.34
- setb r12b #289.34
- cmp edi, r12d #290.31
- sbb r10, r15 #290.31
- setb dil #290.31
- dec rdi #9.35
- and rdx, rdi #10.31
- and rax, rdi #10.31
- and rbp, rdi #10.31
- and rsi, rdi #10.31
- not rdi #10.43
- and rcx, rdi #10.60
- and rbx, rdi #10.60
- and r9, rdi #10.60
- and rdi, r8 #10.60
- or rdx, rcx #10.60
- or rax, rbx #10.60
- or rbp, r9 #10.60
- or rsi, rdi #10.60
- mov QWORD PTR [64+rsp], rdx #315.37
- mov QWORD PTR [72+rsp], rax #315.37
- mov QWORD PTR [80+rsp], rbp #315.37
- mov QWORD PTR [88+rsp], rsi #315.37
- vmovups XMMWORD PTR [rsp], xmm0 #317.20
- vmovups XMMWORD PTR [16+rsp], xmm0 #317.20
- mov r9, QWORD PTR [96+rsp] #317.66[spill]
- mov r14, -1 #81.33
- mov QWORD PTR [128+rsp], rsi #[spill]
- mov QWORD PTR [120+rsp], rbp #[spill]
- vpxor xmm0, xmm0, xmm0 #319.21
- mov rdi, QWORD PTR [24+r9] #317.66
- mov r8, QWORD PTR [16+r9] #317.73
- mov rsi, QWORD PTR [8+r9] #317.80
- mov r11, QWORD PTR [r9] #317.87
- xor r9d, r9d #77.32
- mulx r10, r12, r11 #73.33
- mulx rbx, rbp, rsi #74.33
- adcx r12, rbx #77.32
- mov rbx, 0x0ffffffff #82.33
- mov QWORD PTR [200+rsp], rsi #317.80[spill]
- mulx rcx, rsi, r8 #75.33
- adcx rbp, rcx #78.32
- mov rcx, 0xffffffff00000001 #83.33
- mov QWORD PTR [192+rsp], r8 #317.73[spill]
- mulx r8, r15, rdi #76.33
- mov rdx, r10 #81.33
- adcx rsi, r8 #79.32
- mov r8d, 0 #79.32
- mov QWORD PTR [184+rsp], rdi #317.66[spill]
- mov edi, r8d #80.30
- setb r9b #79.32
- adox edi, r8d #80.30
- mov edi, r8d #80.30
- adox r9, r15 #80.30
- mulx r14, r13, r14 #81.33
- seto dil #80.30
- clc #84.32
- mulx rdi, r15, rbx #82.33
- adcx r13, rdi #84.32
- mov edi, 0 #85.32
- mulx rcx, rbx, rcx #83.33
- mov edx, r8d #87.30
- adcx r15, rdi #85.32
- mov QWORD PTR [208+rsp], r11 #317.87[spill]
- adcx rcx, rdi #86.32
- mov edi, r8d #86.32
- setb dil #86.32
- adox edx, r8d #87.30
- mov rdx, rax #93.33
- adox rdi, rbx #87.30
- mov eax, r8d #97.32
- clc #88.30
- adcx r10, r14 #88.30
- adcx r12, r13 #89.32
- mulx r10, r13, QWORD PTR [192+rsp] #95.33[spill]
- adcx rbp, r15 #90.32
- adcx rsi, rcx #91.32
- mulx r14, rcx, r11 #93.33
- adcx r9, rdi #92.32
- mov edi, r8d #92.32
- mulx r15, r11, QWORD PTR [200+rsp] #94.33[spill]
- setb dil #92.32
- adox eax, r8d #97.32
- mulx rdx, rbx, QWORD PTR [184+rsp] #96.33[spill]
- adox rcx, r15 #97.32
- mov r15d, r8d #99.32
- adox r11, r10 #98.32
- mov r10d, r8d #101.34
- adox r13, rdx #99.32
- seto r15b #99.32
- clc #100.30
- adcx r15, rbx #100.30
- adox r10d, r8d #101.34
- mov ebx, r8d #105.34
- adox r12, r14 #101.34
- mov rdx, r12 #106.35
- adox rbp, rcx #102.34
- mov rcx, 0x0ffffffff #107.35
- mulx r14, rax, rcx #107.35
- adox rsi, r11 #103.34
- mov r11, -1 #106.35
- adox r9, r13 #104.34
- adox rdi, r15 #105.34
- mulx r15, r10, r11 #106.35
- mov r11, 0xffffffff00000001 #108.35
- seto bl #105.34
- clc #109.34
- mulx rcx, r13, r11 #108.35
- mov r11d, r8d #112.31
- adcx r10, r14 #109.34
- mov r14d, 0 #110.34
- mov rdx, QWORD PTR [120+rsp] #119.35[spill]
- adcx rax, r14 #110.34
- adcx rcx, r14 #111.34
- mov r14d, r8d #111.34
- setb r14b #111.34
- adox r11d, r8d #112.31
- adox r14, r13 #112.31
- clc #113.31
- mov r13d, r8d #123.34
- adcx r12, r15 #113.31
- mov r12d, r8d #117.34
- adcx rbp, r10 #114.34
- mulx r15, r11, QWORD PTR [192+rsp] #121.35[spill]
- adcx rsi, rax #115.34
- adcx r9, rcx #116.34
- adcx rdi, r14 #117.34
- mulx rax, r14, QWORD PTR [200+rsp] #120.35[spill]
- setb r12b #117.34
- adox r13d, r8d #123.34
- mov DWORD PTR [136+rsp], r12d #117.34[spill]
- mulx r10, r12, QWORD PTR [208+rsp] #119.35[spill]
- adox r12, rax #123.34
- mov eax, r8d #125.34
- mulx rdx, rcx, QWORD PTR [184+rsp] #122.35[spill]
- adox r14, r15 #124.34
- mov r15d, r8d #127.34
- adox r11, rdx #125.34
- seto al #125.34
- clc #126.31
- adcx rax, rcx #126.31
- adox r15d, r8d #127.34
- adox rbp, r10 #127.34
- mov r10d, r8d #130.34
- mov rdx, rbp #132.35
- adox rsi, r12 #128.34
- mov r12, 0x0ffffffff #133.35
- adox r9, r14 #129.34
- adox rdi, r11 #130.34
- mov r11, 0xffffffff00000001 #134.35
- seto r10b #130.34
- xor ecx, ecx #130.34
- add ebx, DWORD PTR [136+rsp] #131.34[spill]
- cmp r8d, r10d #131.34
- mulx r10, r15, r12 #133.35
- adcx rbx, rax #131.34
- mov rax, -1 #132.35
- mulx r14, r13, rax #132.35
- mulx r12, r11, r11 #134.35
- mov edx, r8d #135.34
- setb cl #131.34
- adox edx, r8d #135.34
- mov rdx, QWORD PTR [128+rsp] #145.35[spill]
- adox r13, r10 #135.34
- mov r10d, 0 #136.34
- adox r15, r10 #136.34
- adox r12, r10 #137.34
- mov r10d, r8d #137.34
- seto r10b #137.34
- clc #138.31
- adcx r10, r11 #138.31
- mov r11d, r8d #139.31
- adox r11d, r8d #139.31
- adox rbp, r14 #139.31
- adox rsi, r13 #140.34
- mov r13d, r8d #143.34
- adox r9, r15 #141.34
- mulx rbp, r15, QWORD PTR [200+rsp] #146.35[spill]
- adox rdi, r12 #142.34
- mulx r12, r11, QWORD PTR [208+rsp] #145.35[spill]
- adox rbx, r10 #143.34
- seto r13b #143.34
- clc #149.34
- adcx r11, rbp #149.34
- mulx rbp, r14, QWORD PTR [192+rsp] #147.35[spill]
- adcx r15, rbp #150.34
- mulx rbp, r10, QWORD PTR [184+rsp] #148.35[spill]
- mov edx, r8d #152.31
- adcx r14, rbp #151.34
- mov ebp, r8d #151.34
- setb bpl #151.34
- adox edx, r8d #152.31
- adox rbp, r10 #152.31
- clc #153.34
- adcx rsi, r12 #153.34
- mov rdx, rsi #158.35
- adcx r9, r11 #154.34
- adcx rdi, r15 #155.34
- mov r15, 0x0ffffffff #159.35
- mulx r15, r11, r15 #159.35
- adcx rbx, r14 #156.34
- mov r14d, r8d #156.34
- setb r14b #156.34
- xor r10d, r10d #156.34
- add ecx, r13d #157.34
- cmp r8d, r14d #157.34
- mov r13, 0xffffffff00000001 #160.35
- mulx r14, r12, rax #158.35
- adcx rcx, rbp #157.34
- mulx rbp, r13, r13 #160.35
- mov edx, r8d #161.34
- setb r10b #157.34
- adox edx, r8d #161.34
- mov edx, r8d #163.34
- adox r12, r15 #161.34
- mov r15d, 0 #162.34
- adox r11, r15 #162.34
- adox rbp, r15 #163.34
- seto dl #163.34
- clc #164.31
- adcx rdx, r13 #164.31
- mov r13d, r8d #165.31
- adox r13d, r8d #165.31
- adox rsi, r14 #165.31
- mov esi, r8d #169.34
- adox r9, r12 #166.34
- adox rdi, r11 #167.34
- mov r11, 0xffffffff00000001 #174.34
- adox rbx, rbp #168.34
- mov rbp, rdi #172.34
- adox rcx, rdx #169.34
- mov rdx, rcx #174.34
- seto sil #169.34
- xor r12d, r12d #169.34
- add r10d, esi #175.31
- mov rsi, r9 #171.34
- sub rsi, rax #171.34
- mov rax, 0x0ffffffff #172.34
- sbb rbp, rax #172.34
- mov rax, rbx #173.34
- sbb rax, r15 #173.34
- sbb rdx, r11 #174.34
- setb r12b #174.34
- cmp r8d, r12d #175.31
- sbb r10, r15 #175.31
- setb r8b #175.31
- dec r8 #9.35
- and rdx, r8 #10.31
- and rax, r8 #10.31
- and rbp, r8 #10.31
- and rsi, r8 #10.31
- not r8 #10.43
- and rcx, r8 #10.60
- and rbx, r8 #10.60
- and rdi, r8 #10.60
- and r8, r9 #10.60
- or rdx, rcx #10.60
- or rax, rbx #10.60
- or rbp, rdi #10.60
- or rsi, r8 #10.60
- mov QWORD PTR [64+rsp], rdx #317.34
- mov QWORD PTR [72+rsp], rax #317.34
- mov QWORD PTR [80+rsp], rbp #317.34
- mov QWORD PTR [88+rsp], rsi #317.34
- vmovups XMMWORD PTR [32+rsp], xmm0 #319.21
- vmovups XMMWORD PTR [48+rsp], xmm0 #319.21
- mov QWORD PTR [128+rsp], rsi #[spill]
- mov r15, -1 #81.33
- xor r9d, r9d #77.32
- mov r11, QWORD PTR [152+rsp] #73.33[spill]
- vpxor xmm0, xmm0, xmm0 #320.19
- mulx r8, rsi, QWORD PTR [176+rsp] #74.33[spill]
- mulx r10, r12, r11 #73.33
- adcx r12, r8 #77.32
- mov r8d, 0 #79.32
- mov QWORD PTR [120+rsp], rbp #[spill]
- mulx rbp, rdi, QWORD PTR [168+rsp] #75.33[spill]
- adcx rsi, rbp #78.32
- mov ebp, r8d #80.30
- mulx rcx, rbx, QWORD PTR [160+rsp] #76.33[spill]
- mov rdx, r10 #81.33
- adcx rdi, rcx #79.32
- mov rcx, 0xffffffff00000001 #83.33
- mulx r14, r13, r15 #81.33
- setb r9b #79.32
- adox ebp, r8d #80.30
- adox r9, rbx #80.30
- mulx rbx, rcx, rcx #83.33
- mov rbp, 0x0ffffffff #82.33
- clc #84.32
- mulx rbp, r15, rbp #82.33
- mov edx, r8d #87.30
- adcx r13, rbp #84.32
- mov ebp, 0 #85.32
- adcx r15, rbp #85.32
- adcx rbx, rbp #86.32
- mov ebp, r8d #86.32
- setb bpl #86.32
- adox edx, r8d #87.30
- mov rdx, rax #93.33
- adox rbp, rcx #87.30
- mov eax, r8d #97.32
- clc #88.30
- adcx r10, r14 #88.30
- adcx r12, r13 #89.32
- adcx rsi, r15 #90.32
- mulx r15, r13, QWORD PTR [168+rsp] #95.33[spill]
- adcx rdi, rbx #91.32
- mulx r10, rbx, r11 #93.33
- adcx r9, rbp #92.32
- mov ebp, r8d #92.32
- mulx r11, r14, QWORD PTR [176+rsp] #94.33[spill]
- setb bpl #92.32
- adox eax, r8d #97.32
- mulx rdx, rcx, QWORD PTR [160+rsp] #96.33[spill]
- adox rbx, r11 #97.32
- mov r11d, r8d #99.32
- adox r14, r15 #98.32
- mov r15d, r8d #101.34
- adox r13, rdx #99.32
- seto r11b #99.32
- clc #100.30
- adcx r11, rcx #100.30
- adox r15d, r8d #101.34
- mov ecx, r8d #105.34
- adox r12, r10 #101.34
- mov r10, -1 #106.35
- mov rdx, r12 #106.35
- adox rsi, rbx #102.34
- mov rbx, 0x0ffffffff #107.35
- adox rdi, r14 #103.34
- mulx r14, rax, rbx #107.35
- adox r9, r13 #104.34
- adox rbp, r11 #105.34
- mulx r11, r15, r10 #106.35
- mov r10, 0xffffffff00000001 #108.35
- seto cl #105.34
- clc #109.34
- mulx rbx, r13, r10 #108.35
- mov r10d, r8d #111.34
- adcx r15, r14 #109.34
- mov r14d, 0 #110.34
- mov rdx, QWORD PTR [120+rsp] #119.35[spill]
- adcx rax, r14 #110.34
- adcx rbx, r14 #111.34
- mov r14d, r8d #112.31
- setb r10b #111.34
- adox r14d, r8d #112.31
- adox r10, r13 #112.31
- clc #113.31
- mov r13d, r8d #123.34
- adcx r12, r11 #113.31
- mov r12d, r8d #117.34
- adcx rsi, r15 #114.34
- mulx r11, r14, QWORD PTR [168+rsp] #121.35[spill]
- adcx rdi, rax #115.34
- adcx r9, rbx #116.34
- adcx rbp, r10 #117.34
- mulx r15, r10, QWORD PTR [152+rsp] #119.35[spill]
- setb r12b #117.34
- adox r13d, r8d #123.34
- mov DWORD PTR [136+rsp], r12d #117.34[spill]
- mulx rbx, r12, QWORD PTR [176+rsp] #120.35[spill]
- adox r10, rbx #123.34
- mov ebx, r8d #125.34
- mulx rdx, rax, QWORD PTR [160+rsp] #122.35[spill]
- adox r12, r11 #124.34
- mov r11d, r8d #127.34
- adox r14, rdx #125.34
- seto bl #125.34
- clc #126.31
- adcx rbx, rax #126.31
- adox r11d, r8d #127.34
- adox rsi, r15 #127.34
- mov r15d, r8d #130.34
- mov rdx, rsi #132.35
- adox rdi, r10 #128.34
- mov r10, 0x0ffffffff #133.35
- adox r9, r12 #129.34
- mov r12, 0xffffffff00000001 #134.35
- adox rbp, r14 #130.34
- seto r15b #130.34
- xor eax, eax #130.34
- add ecx, DWORD PTR [136+rsp] #131.34[spill]
- cmp r8d, r15d #131.34
- mulx r11, r15, r10 #133.35
- adcx rcx, rbx #131.34
- mov rbx, -1 #132.35
- mulx r14, r13, rbx #132.35
- mulx r10, r12, r12 #134.35
- mov edx, r8d #135.34
- setb al #131.34
- adox edx, r8d #135.34
- mov rdx, QWORD PTR [128+rsp] #145.35[spill]
- adox r13, r11 #135.34
- mov r11d, 0 #136.34
- adox r15, r11 #136.34
- adox r10, r11 #137.34
- mov r11d, r8d #137.34
- seto r11b #137.34
- clc #138.31
- adcx r11, r12 #138.31
- mov r12d, r8d #139.31
- adox r12d, r8d #139.31
- adox rsi, r14 #139.31
- mulx r12, rsi, QWORD PTR [152+rsp] #145.35[spill]
- adox rdi, r13 #140.34
- mov r13d, r8d #143.34
- adox r9, r15 #141.34
- mulx r14, r15, QWORD PTR [176+rsp] #146.35[spill]
- adox rbp, r10 #142.34
- adox rcx, r11 #143.34
- seto r13b #143.34
- clc #149.34
- adcx rsi, r14 #149.34
- mulx r10, r14, QWORD PTR [168+rsp] #147.35[spill]
- adcx r15, r10 #150.34
- mulx r11, r10, QWORD PTR [160+rsp] #148.35[spill]
- mov edx, r8d #152.31
- adcx r14, r11 #151.34
- mov r11d, r8d #151.34
- setb r11b #151.34
- adox edx, r8d #152.31
- adox r11, r10 #152.31
- clc #153.34
- adcx rdi, r12 #153.34
- mov rdx, rdi #158.35
- adcx r9, rsi #154.34
- mov esi, r8d #156.34
- adcx rbp, r15 #155.34
- adcx rcx, r14 #156.34
- mulx r14, r12, rbx #158.35
- setb sil #156.34
- xor r10d, r10d #156.34
- add eax, r13d #157.34
- cmp r8d, esi #157.34
- mov rsi, 0xffffffff00000001 #160.35
- mulx rsi, r13, rsi #160.35
- adcx rax, r11 #157.34
- mov r11, 0x0ffffffff #159.35
- mulx r15, r11, r11 #159.35
- mov edx, r8d #161.34
- setb r10b #157.34
- adox edx, r8d #161.34
- mov edx, r8d #163.34
- adox r12, r15 #161.34
- mov r15d, 0 #162.34
- adox r11, r15 #162.34
- adox rsi, r15 #163.34
- seto dl #163.34
- clc #164.31
- adcx rdx, r13 #164.31
- mov r13d, r8d #165.31
- adox r13d, r8d #165.31
- adox rdi, r14 #165.31
- mov r14, 0xffffffff00000001 #174.34
- mov edi, r8d #169.34
- adox r9, r12 #166.34
- mov r12, 0x0ffffffff #172.34
- adox rbp, r11 #167.34
- adox rcx, rsi #168.34
- mov r11, rcx #173.34
- adox rax, rdx #169.34
- mov rsi, rax #174.34
- seto dil #169.34
- add r10d, edi #175.31
- mov rdi, r9 #171.34
- sub rdi, rbx #171.34
- mov rbx, rbp #172.34
- sbb rbx, r12 #172.34
- sbb r11, r15 #173.34
- sbb rsi, r14 #174.34
- mov r14d, r8d #174.34
- setb r14b #174.34
- cmp r8d, r14d #175.31
- sbb r10, r15 #175.31
- setb r8b #175.31
- dec r8 #9.35
- and rsi, r8 #10.31
- and r11, r8 #10.31
- and rbx, r8 #10.31
- and rdi, r8 #10.31
- not r8 #10.43
- and rax, r8 #10.60
- and rcx, r8 #10.60
- and rbp, r8 #10.60
- and r8, r9 #10.60
- or rsi, rax #10.60
- or r11, rcx #10.60
- or rbx, rbp #10.60
- or rdi, r8 #10.60
- mov QWORD PTR [216+rsp], rsi #10.60[spill]
- mov QWORD PTR [32+rsp], rsi #319.35
- mov QWORD PTR [40+rsp], r11 #319.35
- mov QWORD PTR [224+rsp], rdi #10.60[spill]
- mov QWORD PTR [48+rsp], rbx #319.35
- mov QWORD PTR [56+rsp], rdi #319.35
- vmovups XMMWORD PTR [64+rsp], xmm0 #320.19
- vmovups XMMWORD PTR [80+rsp], xmm0 #320.19
- mov r8, QWORD PTR [112+rsp] #41.32[spill]
- xor ebp, ebp #41.32
- mov r14, QWORD PTR [rsp] #41.32
- xor edi, edi #44.32
- mov rsi, QWORD PTR [8+rsp] #42.32
- xor r9d, r9d #48.32
- sub r14, QWORD PTR [r8] #41.32
- mov r12, 0xffffffff00000001 #49.30
- mov rcx, QWORD PTR [16+rsp] #43.32
- sbb rsi, QWORD PTR [8+r8] #42.32
- mov r10, QWORD PTR [24+rsp] #44.32
- vpxor xmm0, xmm0, xmm0 #323.20
- sbb rcx, QWORD PTR [16+r8] #43.32
- mov QWORD PTR [120+rsp], r11 #[spill]
- sbb r10, QWORD PTR [24+r8] #44.32
- setb dil #44.32
- xor r13d, r13d #44.32
- mov r11, -1 #44.32
- xor r8d, r8d #44.32
- xor edx, edx #44.32
- test edi, edi #45.38
- mov QWORD PTR [232+rsp], rbx #[spill]
- cmovne rdx, r11 #45.38
- clc #46.32
- mov eax, edx #47.32
- adcx r14, rdx #46.32
- mov QWORD PTR [288+rsp], r14 #46.32[spill]
- adcx rsi, rax #47.32
- mov QWORD PTR [296+rsp], rsi #47.32[spill]
- adcx rcx, r8 #48.32
- mov QWORD PTR [80+rsp], rsi #320.33
- setb r9b #48.32
- and rdx, r12 #49.30
- cmp ebp, r9d #49.30
- mov QWORD PTR [88+rsp], r14 #320.33
- adcx r10, rdx #49.30
- mov rdx, QWORD PTR [152+rsp] #73.33[spill]
- adox r13d, ebp #77.32
- mulx rax, rbx, r10 #73.33
- mulx r15, r9, rcx #74.33
- adox rbx, r15 #77.32
- mulx rdi, rsi, rsi #75.33
- adox r9, rdi #78.32
- mov edi, ebp #79.32
- mov QWORD PTR [304+rsp], rcx #48.32[spill]
- mov QWORD PTR [72+rsp], rcx #320.33
- mulx r14, rcx, r14 #76.33
- mov rdx, rax #81.33
- adox rsi, r14 #79.32
- mulx r14, r15, r11 #81.33
- mov r11, 0x0ffffffff #82.33
- seto dil #79.32
- clc #80.30
- adcx rdi, rcx #80.30
- mov QWORD PTR [280+rsp], r10 #49.30[spill]
- mulx r13, rcx, r11 #82.33
- mov r11d, ebp #84.32
- adox r11d, ebp #84.32
- mulx r12, rdx, r12 #83.33
- mov r11d, ebp #86.32
- adox r15, r13 #84.32
- mov QWORD PTR [64+rsp], r10 #320.33
- adox rcx, r8 #85.32
- adox r12, r8 #86.32
- seto r11b #86.32
- clc #87.30
- adcx r11, rdx #87.30
- mov rdx, QWORD PTR [176+rsp] #93.33[spill]
- mov r13d, ebp #88.30
- adox r13d, ebp #88.30
- adox rax, r14 #88.30
- mulx r14, r13, r10 #93.33
- adox rbx, r15 #89.32
- adox r9, rcx #90.32
- mov ecx, ebp #92.32
- adox rsi, r12 #91.32
- mulx rax, r12, QWORD PTR [304+rsp] #94.33[spill]
- adox rdi, r11 #92.32
- seto cl #92.32
- clc #97.32
- adcx r13, rax #97.32
- mulx rax, r15, QWORD PTR [296+rsp] #95.33[spill]
- adcx r12, rax #98.32
- mulx rax, r11, QWORD PTR [288+rsp] #96.33[spill]
- mov edx, ebp #100.30
- adcx r15, rax #99.32
- mov eax, ebp #99.32
- setb al #99.32
- adox edx, ebp #100.30
- adox rax, r11 #100.30
- mov r11d, ebp #100.30
- seto r11b #100.30
- clc #101.34
- adcx rbx, r14 #101.34
- mov rdx, rbx #106.35
- adcx r9, r13 #102.34
- adcx rsi, r12 #103.34
- mov r12d, ebp #105.34
- adcx rdi, r15 #104.34
- mov r15, -1 #106.35
- mulx r15, r14, r15 #106.35
- adcx rcx, rax #105.34
- mov rax, 0x0ffffffff #107.35
- mulx r11, r13, rax #107.35
- setb r12b #105.34
- mov DWORD PTR [128+rsp], r12d #105.34[spill]
- mov r12, 0xffffffff00000001 #108.35
- mulx rax, r12, r12 #108.35
- mov edx, ebp #109.34
- adox edx, ebp #109.34
- mov rdx, QWORD PTR [168+rsp] #119.35[spill]
- adox r14, r11 #109.34
- mov r11d, ebp #111.34
- adox r13, r8 #110.34
- adox rax, r8 #111.34
- seto r11b #111.34
- clc #112.31
- adcx r11, r12 #112.31
- mov r12d, ebp #113.31
- adox r12d, ebp #113.31
- adox rbx, r15 #113.31
- mulx rbx, r15, r10 #119.35
- adox r9, r14 #114.34
- mov r14d, ebp #117.34
- adox rsi, r13 #115.34
- adox rdi, rax #116.34
- mulx rax, r13, QWORD PTR [304+rsp] #120.35[spill]
- adox rcx, r11 #117.34
- mulx r11, r12, QWORD PTR [296+rsp] #121.35[spill]
- seto r14b #117.34
- clc #123.34
- adcx r15, rax #123.34
- adcx r13, r11 #124.34
- mulx r11, rax, QWORD PTR [288+rsp] #122.35[spill]
- mov edx, ebp #126.31
- adcx r12, r11 #125.34
- mov r11d, ebp #125.34
- setb r11b #125.34
- adox edx, ebp #126.31
- adox r11, rax #126.31
- clc #127.34
- mov eax, DWORD PTR [128+rsp] #131.34[spill]
- adcx r9, rbx #127.34
- mov ebx, ebp #130.34
- mov rdx, r9 #132.35
- adcx rsi, r15 #128.34
- mov r15, 0x0ffffffff #133.35
- adcx rdi, r13 #129.34
- adcx rcx, r12 #130.34
- setb bl #130.34
- add eax, r14d #131.34
- xor r14d, r14d #131.34
- cmp ebp, ebx #131.34
- adcx rax, r11 #131.34
- mov r11, -1 #132.35
- mulx r12, rbx, r11 #132.35
- setb r14b #131.34
- mov DWORD PTR [136+rsp], r14d #131.34[spill]
- mov r14, 0xffffffff00000001 #134.35
- mulx r15, r11, r15 #133.35
- mulx r14, r13, r14 #134.35
- mov edx, ebp #135.34
- adox edx, ebp #135.34
- mov rdx, QWORD PTR [160+rsp] #145.35[spill]
- adox rbx, r15 #135.34
- mov r15d, ebp #137.34
- adox r11, r8 #136.34
- adox r14, r8 #137.34
- seto r15b #137.34
- clc #138.31
- adcx r15, r13 #138.31
- mov r13d, ebp #139.31
- adox r13d, ebp #139.31
- mov r13d, ebp #152.31
- adox r9, r12 #139.31
- adox rsi, rbx #140.34
- mulx r10, rbx, r10 #145.35
- adox rdi, r11 #141.34
- adox rcx, r14 #142.34
- mov r14d, ebp #143.34
- adox rax, r15 #143.34
- mulx r9, r15, QWORD PTR [304+rsp] #146.35[spill]
- seto r14b #143.34
- clc #149.34
- adcx rbx, r9 #149.34
- mulx r11, r9, QWORD PTR [296+rsp] #147.35[spill]
- adcx r15, r11 #150.34
- mulx r12, r11, QWORD PTR [288+rsp] #148.35[spill]
- adcx r9, r12 #151.34
- mov r12d, ebp #151.34
- setb r12b #151.34
- adox r13d, ebp #152.31
- adox r12, r11 #152.31
- clc #153.34
- mov r11d, DWORD PTR [136+rsp] #157.34[spill]
- adcx rsi, r10 #153.34
- mov r10d, ebp #156.34
- mov rdx, rsi #158.35
- adcx rdi, rbx #154.34
- mov rbx, 0x0ffffffff #159.35
- adcx rcx, r15 #155.34
- mov r15, 0xffffffff00000001 #160.35
- mulx r15, r13, r15 #160.35
- adcx rax, r9 #156.34
- setb r10b #156.34
- mov r9, -1 #156.34
- add r11d, r14d #157.34
- cmp ebp, r10d #157.34
- mulx r9, r10, r9 #158.35
- adcx r11, r12 #157.34
- mov r12d, ebp #157.34
- mulx r14, rbx, rbx #159.35
- mov edx, ebp #161.34
- setb r12b #157.34
- adox edx, ebp #161.34
- mov rdx, 0x0ffffffff #172.34
- adox r10, r14 #161.34
- mov r14d, ebp #163.34
- adox rbx, r8 #162.34
- adox r15, r8 #163.34
- seto r14b #163.34
- clc #164.31
- adcx r14, r13 #164.31
- mov r13d, ebp #165.31
- adox r13d, ebp #165.31
- adox rsi, r9 #165.31
- mov esi, ebp #169.34
- adox rdi, r10 #166.34
- mov r9, rdi #171.34
- adox rcx, rbx #167.34
- mov rbx, 0xffffffff00000001 #174.34
- adox rax, r15 #168.34
- adox r11, r14 #169.34
- seto sil #169.34
- mov r10, -1 #169.34
- xor r15d, r15d #169.34
- add r12d, esi #175.31
- sub r9, r10 #171.34
- mov r10, rcx #172.34
- mov rsi, r11 #174.34
- sbb r10, rdx #172.34
- mov rdx, rax #173.34
- sbb rdx, r8 #173.34
- sbb rsi, rbx #174.34
- mov rbx, QWORD PTR [104+rsp] #180.1[spill]
- setb r15b #174.34
- cmp ebp, r15d #175.31
- sbb r12, r8 #175.31
- setb bpl #175.31
- dec rbp #9.35
- and rsi, rbp #10.31
- and rdx, rbp #10.31
- and r10, rbp #10.31
- and r9, rbp #10.31
- not rbp #10.43
- and r11, rbp #10.60
- and rax, rbp #10.60
- or rsi, r11 #10.60
- and rcx, rbp #10.60
- mov QWORD PTR [64+rbx], rsi #180.1
- and rbp, rdi #10.60
- mov rsi, QWORD PTR [96+rsp] #322.60[spill]
- or rdx, rax #10.60
- or r10, rcx #10.60
- or r9, rbp #10.60
- mov QWORD PTR [72+rbx], rdx #181.1
- mov QWORD PTR [80+rbx], r10 #182.1
- mov QWORD PTR [88+rbx], r9 #183.1
- mov rax, QWORD PTR [32+rsi] #322.60
- mov rdx, QWORD PTR [40+rsi] #322.53
- mov rcx, QWORD PTR [48+rsi] #322.46
- mov rdi, QWORD PTR [56+rsi] #322.39
- mov QWORD PTR [272+rsp], rax #322.60[spill]
- mov QWORD PTR [264+rsp], rdx #322.53[spill]
- mov QWORD PTR [256+rsp], rcx #322.46[spill]
- mov QWORD PTR [248+rsp], rdi #322.39[spill]
- vmovups XMMWORD PTR [32+rsp], xmm0 #323.20
- vmovups XMMWORD PTR [48+rsp], xmm0 #323.20
- mov rbx, QWORD PTR [232+rsp] #323.20[spill]
- mov r11, QWORD PTR [120+rsp] #323.20[spill]
- mov rdx, QWORD PTR [216+rsp] #73.33[spill]
- xor ecx, ecx #77.32
- xor r12d, r12d #77.32
- xor esi, esi #77.32
- vpxor xmm0, xmm0, xmm0 #324.19
- mov r9, rax #73.33
- mov QWORD PTR [232+rsp], rbx #[spill]
- mulx r15, r10, r9 #73.33
- mulx r8, rbx, QWORD PTR [264+rsp] #74.33[spill]
- adcx r10, r8 #77.32
- mov r8d, 0 #79.32
- mulx rbp, rdi, QWORD PTR [256+rsp] #75.33[spill]
- adcx rbx, rbp #78.32
- mulx rax, r14, QWORD PTR [248+rsp] #76.33[spill]
- adcx rdi, rax #79.32
- mov rbp, -1 #81.33
- mov rdx, r15 #81.33
- mov rax, 0xffffffff00000001 #83.33
- setb sil #79.32
- adox ecx, r8d #80.30
- adox rsi, r14 #80.30
- mulx rcx, rax, rax #83.33
- seto r12b #80.30
- mulx r12, r13, rbp #81.33
- mov rbp, 0x0ffffffff #82.33
- clc #84.32
- mulx rbp, r14, rbp #82.33
- mov edx, r8d #87.30
- adcx r13, rbp #84.32
- mov ebp, 0 #85.32
- adcx r14, rbp #85.32
- adcx rcx, rbp #86.32
- mov ebp, r8d #86.32
- setb bpl #86.32
- adox edx, r8d #87.30
- mov rdx, r11 #93.33
- adox rbp, rax #87.30
- mov r11d, r8d #97.32
- clc #88.30
- adcx r15, r12 #88.30
- adcx r10, r13 #89.32
- adcx rbx, r14 #90.32
- mulx r14, r13, QWORD PTR [264+rsp] #94.33[spill]
- adcx rdi, rcx #91.32
- mulx r12, rcx, r9 #93.33
- adcx rsi, rbp #92.32
- mov ebp, r8d #92.32
- mulx r9, r15, QWORD PTR [256+rsp] #95.33[spill]
- setb bpl #92.32
- adox r11d, r8d #97.32
- mulx rdx, rax, QWORD PTR [248+rsp] #96.33[spill]
- mov r11, 0x0ffffffff #107.35
- adox rcx, r14 #97.32
- mov r14d, r8d #99.32
- adox r13, r9 #98.32
- mov r9d, r8d #101.34
- adox r15, rdx #99.32
- seto r14b #99.32
- clc #100.30
- adcx r14, rax #100.30
- adox r9d, r8d #101.34
- mov eax, r8d #105.34
- adox r10, r12 #101.34
- mov rdx, r10 #106.35
- adox rbx, rcx #102.34
- mov rcx, -1 #106.35
- mulx r9, r12, rcx #106.35
- adox rdi, r13 #103.34
- adox rsi, r15 #104.34
- mov r15, 0xffffffff00000001 #108.35
- mulx r15, rcx, r15 #108.35
- adox rbp, r14 #105.34
- mulx r13, r14, r11 #107.35
- mov r11d, 0 #110.34
- seto al #105.34
- clc #109.34
- mov rdx, QWORD PTR [232+rsp] #119.35[spill]
- adcx r12, r13 #109.34
- mov r13d, r8d #112.31
- adcx r14, r11 #110.34
- adcx r15, r11 #111.34
- mov r11d, r8d #111.34
- setb r11b #111.34
- adox r13d, r8d #112.31
- adox r11, rcx #112.31
- mov ecx, r8d #112.31
- seto cl #112.31
- clc #113.31
- adcx r10, r9 #113.31
- mov r10d, r8d #117.34
- adcx rbx, r12 #114.34
- mulx r9, r12, QWORD PTR [272+rsp] #119.35[spill]
- adcx rdi, r14 #115.34
- adcx rsi, r15 #116.34
- mov r15d, r8d #123.34
- adcx rbp, r11 #117.34
- mulx rcx, r11, QWORD PTR [264+rsp] #120.35[spill]
- setb r10b #117.34
- adox r15d, r8d #123.34
- mov DWORD PTR [rsp], r10d #117.34[spill]
- adox r12, rcx #123.34
- mov ecx, r8d #125.34
- mulx r10, r13, QWORD PTR [256+rsp] #121.35[spill]
- adox r11, r10 #124.34
- mov r10d, r8d #127.34
- mulx rdx, r14, QWORD PTR [248+rsp] #122.35[spill]
- adox r13, rdx #125.34
- seto cl #125.34
- clc #126.31
- adcx rcx, r14 #126.31
- adox r10d, r8d #127.34
- mov r10, 0xffffffff00000001 #134.35
- adox rbx, r9 #127.34
- mov r9d, r8d #130.34
- mov rdx, rbx #132.35
- adox rdi, r12 #128.34
- mulx r10, r15, r10 #134.35
- adox rsi, r11 #129.34
- adox rbp, r13 #130.34
- mov r13, 0x0ffffffff #133.35
- seto r9b #130.34
- xor r14d, r14d #130.34
- add eax, DWORD PTR [rsp] #131.34[spill]
- cmp r8d, r9d #131.34
- mulx r9, r13, r13 #133.35
- adcx rax, rcx #131.34
- mov rcx, -1 #132.35
- mulx r12, r11, rcx #132.35
- mov edx, r8d #135.34
- setb r14b #131.34
- adox edx, r8d #135.34
- mov rdx, QWORD PTR [224+rsp] #145.35[spill]
- adox r11, r9 #135.34
- mov r9d, 0 #136.34
- adox r13, r9 #136.34
- adox r10, r9 #137.34
- mov r9d, r8d #137.34
- seto r9b #137.34
- clc #138.31
- adcx r9, r15 #138.31
- mov r15d, r8d #139.31
- adox r15d, r8d #139.31
- adox rbx, r12 #139.31
- adox rdi, r11 #140.34
- mulx r11, rbx, QWORD PTR [264+rsp] #146.35[spill]
- adox rsi, r13 #141.34
- mov r13d, r8d #143.34
- adox rbp, r10 #142.34
- mulx r10, r12, QWORD PTR [272+rsp] #145.35[spill]
- adox rax, r9 #143.34
- seto r13b #143.34
- clc #149.34
- adcx r12, r11 #149.34
- mulx r9, r11, QWORD PTR [256+rsp] #147.35[spill]
- adcx rbx, r9 #150.34
- mulx r9, r15, QWORD PTR [248+rsp] #148.35[spill]
- mov edx, r8d #152.31
- adcx r11, r9 #151.34
- mov r9d, r8d #151.34
- setb r9b #151.34
- adox edx, r8d #152.31
- adox r9, r15 #152.31
- clc #153.34
- mov r15, 0xffffffff00000001 #160.35
- adcx rdi, r10 #153.34
- mov r10, 0x0ffffffff #159.35
- mov rdx, rdi #158.35
- adcx rsi, r12 #154.34
- adcx rbp, rbx #155.34
- mov ebx, r8d #156.34
- adcx rax, r11 #156.34
- mulx r11, r12, rcx #158.35
- setb bl #156.34
- add r14d, r13d #157.34
- cmp r8d, ebx #157.34
- mulx r10, r13, r10 #159.35
- adcx r14, r9 #157.34
- mov r9d, r8d #157.34
- mulx r15, rbx, r15 #160.35
- mov edx, r8d #161.34
- setb r9b #157.34
- adox edx, r8d #161.34
- mov edx, r8d #163.34
- adox r12, r10 #161.34
- mov r10d, 0 #162.34
- adox r13, r10 #162.34
- adox r15, r10 #163.34
- seto dl #163.34
- clc #164.31
- adcx rdx, rbx #164.31
- mov ebx, r8d #165.31
- adox ebx, r8d #165.31
- adox rdi, r11 #165.31
- mov r11, 0x0ffffffff #172.34
- mov edi, r8d #169.34
- adox rsi, r12 #166.34
- mov r12, 0xffffffff00000001 #174.34
- adox rbp, r13 #167.34
- adox rax, r15 #168.34
- mov rbx, rax #173.34
- adox r14, rdx #169.34
- mov rdx, r14 #174.34
- seto dil #169.34
- xor r13d, r13d #169.34
- add r9d, edi #175.31
- mov rdi, rsi #171.34
- sub rdi, rcx #171.34
- mov rcx, rbp #172.34
- sbb rcx, r11 #172.34
- sbb rbx, r10 #173.34
- sbb rdx, r12 #174.34
- setb r13b #174.34
- cmp r8d, r13d #175.31
- sbb r9, r10 #175.31
- setb r8b #175.31
- dec r8 #9.35
- and rdx, r8 #10.31
- and rbx, r8 #10.31
- and rcx, r8 #10.31
- and rdi, r8 #10.31
- not r8 #10.43
- and r14, r8 #10.60
- and rax, r8 #10.60
- and rbp, r8 #10.60
- and r8, rsi #10.60
- or rdx, r14 #10.60
- or rbx, rax #10.60
- or rcx, rbp #10.60
- or rdi, r8 #10.60
- mov QWORD PTR [120+rsp], rdx #10.60[spill]
- mov QWORD PTR [32+rsp], rdx #323.34
- mov QWORD PTR [136+rsp], rbx #10.60[spill]
- mov QWORD PTR [40+rsp], rbx #323.34
- mov QWORD PTR [128+rsp], rcx #10.60[spill]
- mov QWORD PTR [144+rsp], rdi #10.60[spill]
- mov QWORD PTR [48+rsp], rcx #323.34
- mov QWORD PTR [56+rsp], rdi #323.34
- vmovups XMMWORD PTR [64+rsp], xmm0 #324.19
- vmovups XMMWORD PTR [80+rsp], xmm0 #324.19
- mov r12, rdi #44.32
- mov rsi, rcx #43.32
- mov rax, QWORD PTR [112+rsp] #41.32[spill]
- xor r11d, r11d #41.32
- mov rcx, rdx #41.32
- xor edx, edx #44.32
- mov rdi, rbx #42.32
- xor ebp, ebp #45.38
- sub rcx, QWORD PTR [32+rax] #41.32
- sbb rdi, QWORD PTR [40+rax] #42.32
- mov r10, 0xffffffff00000001 #49.30
- sbb rsi, QWORD PTR [48+rax] #43.32
- vpxor xmm0, xmm0, xmm0 #325.20
- sbb r12, QWORD PTR [56+rax] #44.32
- setb dl #44.32
- mov r8, -1 #44.32
- xor r9d, r9d #44.32
- test edx, edx #45.38
- cmove r8, rbp #45.38
- clc #46.32
- mov ebx, r8d #47.32
- adcx rcx, r8 #46.32
- mov QWORD PTR [120+rsp], rcx #46.32[spill]
- adcx rdi, rbx #47.32
- mov QWORD PTR [88+rsp], rcx #324.33
- adcx rsi, rbp #48.32
- mov QWORD PTR [136+rsp], rdi #47.32[spill]
- setb r9b #48.32
- and r10, r8 #49.30
- cmp r11d, r9d #49.30
- mov QWORD PTR [128+rsp], rsi #48.32[spill]
- adcx r12, r10 #49.30
- mov QWORD PTR [72+rsp], rsi #324.33
- mov QWORD PTR [80+rsp], rdi #324.33
- mov QWORD PTR [144+rsp], r12 #49.30[spill]
- mov QWORD PTR [64+rsp], r12 #324.33
- vmovups XMMWORD PTR [rsp], xmm0 #325.20
- vmovups XMMWORD PTR [16+rsp], xmm0 #325.20
- mov rsi, QWORD PTR [280+rsp] #188.33[spill]
- mov rdx, rsi #188.33
- mov rdi, QWORD PTR [304+rsp] #189.33[spill]
- xor r9d, r9d #192.32
- mov r15, -1 #192.32
- xor r12d, r12d #192.32
- mulx rbx, r8, rsi #188.33
- mulx rbp, r11, rdi #189.33
- adox r8, rbp #192.32
- vpxor xmm0, xmm0, xmm0 #326.20
- mulx rax, r10, QWORD PTR [296+rsp] #190.33[spill]
- adox r11, rax #193.32
- mulx r13, r14, QWORD PTR [288+rsp] #191.33[spill]
- mov rdx, rbx #196.33
- adox r10, r13 #194.32
- mov r13, 0x0ffffffff #197.33
- mulx rbp, rax, r15 #196.33
- seto r12b #194.32
- clc #195.30
- adcx r12, r14 #195.30
- mov r14, 0xffffffff00000001 #198.33
- mulx r14, r15, r14 #198.33
- mulx r13, rcx, r13 #197.33
- mov edx, r9d #199.32
- adox edx, r9d #199.32
- mov edx, r9d #201.32
- adox rax, r13 #199.32
- mov r13d, 0 #200.32
- adox rcx, r13 #200.32
- adox r14, r13 #201.32
- seto dl #201.32
- clc #202.30
- adcx rdx, r15 #202.30
- mov r15d, r9d #203.30
- adox r15d, r9d #203.30
- adox rbx, rbp #203.30
- mov ebp, r9d #207.32
- adox r8, rax #204.32
- adox r11, rcx #205.32
- adox r10, r14 #206.32
- adox r12, rdx #207.32
- mov rdx, rdi #208.33
- mulx rsi, r14, rsi #208.33
- seto bpl #207.32
- clc #212.32
- mulx rbx, rax, rdi #209.33
- adcx r14, rbx #212.32
- mov rbx, QWORD PTR [296+rsp] #210.33[spill]
- mulx r15, rcx, rbx #210.33
- adcx rax, r15 #213.32
- mulx rdi, r15, QWORD PTR [288+rsp] #211.33[spill]
- mov edx, r9d #215.30
- adcx rcx, rdi #214.32
- mov edi, r9d #214.32
- setb dil #214.32
- adox edx, r9d #215.30
- adox rdi, r15 #215.30
- mov r15d, r9d #215.30
- seto r15b #215.30
- clc #216.34
- adcx r8, rsi #216.34
- mov esi, r9d #220.34
- mov rdx, r8 #221.35
- adcx r11, r14 #217.34
- mov r14, 0xffffffff00000001 #223.35
- adcx r10, rax #218.34
- mov rax, -1 #221.35
- adcx r12, rcx #219.34
- adcx rbp, rdi #220.34
- mulx r15, rdi, rax #221.35
- mov rax, 0x0ffffffff #222.35
- setb sil #220.34
- mov DWORD PTR [64+rsp], esi #220.34[spill]
- mulx rcx, rax, rax #222.35
- mulx r14, rsi, r14 #223.35
- mov edx, r9d #224.34
- adox edx, r9d #224.34
- mov rdx, rbx #234.35
- adox rdi, rcx #224.34
- mov ecx, r9d #226.34
- adox rax, r13 #225.34
- adox r14, r13 #226.34
- seto cl #226.34
- clc #227.31
- adcx rcx, rsi #227.31
- mov esi, r9d #228.31
- adox esi, r9d #228.31
- adox r8, r15 #228.31
- mov r15d, r9d #232.34
- adox r11, rdi #229.34
- adox r10, rax #230.34
- mulx r8, rax, QWORD PTR [280+rsp] #234.35[spill]
- adox r12, r14 #231.34
- mulx r14, rdi, QWORD PTR [304+rsp] #235.35[spill]
- adox rbp, rcx #232.34
- mulx rcx, rsi, rbx #236.35
- seto r15b #232.34
- clc #238.34
- adcx rax, r14 #238.34
- adcx rdi, rcx #239.34
- mov rcx, QWORD PTR [288+rsp] #237.35[spill]
- mulx r14, rbx, rcx #237.35
- mov edx, r9d #241.31
- adcx rsi, r14 #240.34
- mov r14d, r9d #240.34
- setb r14b #240.34
- adox edx, r9d #241.31
- adox r14, rbx #241.31
- clc #242.34
- adcx r11, r8 #242.34
- mov r8d, r9d #245.34
- mov rdx, r11 #247.35
- adcx r10, rax #243.34
- mov eax, DWORD PTR [64+rsp] #246.34[spill]
- adcx r12, rdi #244.34
- mov rdi, 0x0ffffffff #248.35
- adcx rbp, rsi #245.34
- setb r8b #245.34
- xor ebx, ebx #245.34
- add eax, r15d #246.34
- cmp r9d, r8d #246.34
- mov r15, 0xffffffff00000001 #249.35
- mulx r15, rsi, r15 #249.35
- adcx rax, r14 #246.34
- mov r14, -1 #247.35
- setb bl #246.34
- mov DWORD PTR [72+rsp], ebx #246.34[spill]
- mulx r8, rbx, r14 #247.35
- mulx rdi, r14, rdi #248.35
- mov edx, r9d #250.34
- adox edx, r9d #250.34
- mov rdx, rcx #260.35
- adox rbx, rdi #250.34
- mov edi, r9d #252.34
- adox r14, r13 #251.34
- adox r15, r13 #252.34
- seto dil #252.34
- clc #253.31
- adcx rdi, rsi #253.31
- mov esi, r9d #254.31
- adox esi, r9d #254.31
- adox r11, r8 #254.31
- mulx r11, rsi, QWORD PTR [304+rsp] #261.35[spill]
- adox r10, rbx #255.34
- adox r12, r14 #256.34
- mov r14d, r9d #266.34
- adox rbp, r15 #257.34
- mov r15d, r9d #258.34
- adox rax, rdi #258.34
- mulx r8, rdi, QWORD PTR [280+rsp] #260.35[spill]
- seto r15b #258.34
- clc #264.34
- adcx rdi, r11 #264.34
- mulx rbx, r11, QWORD PTR [296+rsp] #262.35[spill]
- adcx rsi, rbx #265.34
- mulx rcx, rbx, rcx #263.35
- adcx r11, rcx #266.34
- mov ecx, r9d #267.31
- setb r14b #266.34
- adox ecx, r9d #267.31
- adox r14, rbx #267.31
- clc #268.34
- mov ebx, DWORD PTR [72+rsp] #272.34[spill]
- adcx r10, r8 #268.34
- mov r8d, r9d #271.34
- mov rdx, r10 #273.35
- adcx r12, rdi #269.34
- mov rdi, 0xffffffff00000001 #275.35
- adcx rbp, rsi #270.34
- mulx rdi, rsi, rdi #275.35
- adcx rax, r11 #271.34
- mov r11, -1 #273.35
- mulx rcx, r11, r11 #273.35
- setb r8b #271.34
- add ebx, r15d #272.34
- cmp r9d, r8d #272.34
- mov r8, 0x0ffffffff #274.35
- mulx r15, r8, r8 #274.35
- mov edx, r9d #276.34
- adcx rbx, r14 #272.34
- mov r14d, r9d #272.34
- setb r14b #272.34
- adox edx, r9d #276.34
- adox r11, r15 #276.34
- mov r15d, r9d #278.34
- adox r8, r13 #277.34
- adox rdi, r13 #278.34
- seto r15b #278.34
- clc #279.31
- adcx r15, rsi #279.31
- mov esi, r9d #280.31
- adox esi, r9d #280.31
- adox r10, rcx #280.31
- mov rcx, 0x0ffffffff #287.34
- mov r10d, r9d #284.34
- adox r12, r11 #281.34
- mov rdx, r12 #286.34
- adox rbp, r8 #282.34
- adox rax, rdi #283.34
- mov rdi, 0xffffffff00000001 #289.34
- adox rbx, r15 #284.34
- mov r15, rax #288.34
- mov r11, rbx #289.34
- seto r10b #284.34
- xor r8d, r8d #284.34
- add r14d, r10d #290.31
- mov r10, -1 #286.34
- sub rdx, r10 #286.34
- mov r10, rbp #287.34
- sbb r10, rcx #287.34
- sbb r15, r13 #288.34
- sbb r11, rdi #289.34
- setb r8b #289.34
- cmp r9d, r8d #290.31
- sbb r14, r13 #290.31
- setb r9b #290.31
- dec r9 #9.35
- and r11, r9 #10.31
- and r15, r9 #10.31
- and r10, r9 #10.31
- and rdx, r9 #10.31
- not r9 #10.43
- and rbx, r9 #10.60
- and rax, r9 #10.60
- and rbp, r9 #10.60
- and r9, r12 #10.60
- or r11, rbx #10.60
- or r15, rax #10.60
- or r10, rbp #10.60
- or rdx, r9 #10.60
- mov QWORD PTR [376+rsp], r11 #10.60[spill]
- mov QWORD PTR [rsp], r11 #325.37
- mov QWORD PTR [400+rsp], r15 #10.60[spill]
- mov QWORD PTR [8+rsp], r15 #325.37
- mov QWORD PTR [392+rsp], r10 #10.60[spill]
- mov QWORD PTR [384+rsp], rdx #10.60[spill]
- mov QWORD PTR [16+rsp], r10 #325.37
- mov QWORD PTR [24+rsp], rdx #325.37
- vmovups XMMWORD PTR [32+rsp], xmm0 #326.20
- vmovups XMMWORD PTR [48+rsp], xmm0 #326.20
- mov r12, QWORD PTR [144+rsp] #188.33[spill]
- mov rdx, r12 #188.33
- mov r13, QWORD PTR [128+rsp] #189.33[spill]
- xor r9d, r9d #192.32
- xor ebx, ebx #192.32
- xor r10d, r10d #192.32
- mulx r15, r14, r12 #188.33
- mulx r11, rdi, r13 #189.33
- adcx r14, r11 #192.32
- mov r11, -1 #196.33
- vpxor xmm0, xmm0, xmm0 #327.21
- mulx rbp, r8, QWORD PTR [136+rsp] #190.33[spill]
- adcx rdi, rbp #193.32
- mov rbp, 0xffffffff00000001 #198.33
- mulx rsi, rcx, QWORD PTR [120+rsp] #191.33[spill]
- mov rdx, r15 #196.33
- adcx r8, rsi #194.32
- mulx rsi, rbp, rbp #198.33
- setb r10b #194.32
- adox ebx, r9d #195.30
- adox r10, rcx #195.30
- mulx rcx, rax, r11 #196.33
- mov r11, 0x0ffffffff #197.33
- clc #199.32
- mulx r11, rbx, r11 #197.33
- mov edx, r9d #202.30
- adcx rax, r11 #199.32
- mov r11d, 0 #200.32
- adcx rbx, r11 #200.32
- adcx rsi, r11 #201.32
- mov r11d, r9d #201.32
- setb r11b #201.32
- adox edx, r9d #202.30
- mov rdx, r13 #208.33
- adox r11, rbp #202.30
- clc #203.30
- adcx r15, rcx #203.30
- mulx rcx, r15, QWORD PTR [136+rsp] #210.33[spill]
- adcx r14, rax #204.32
- adcx rdi, rbx #205.32
- adcx r8, rsi #206.32
- mulx rax, rsi, r12 #208.33
- adcx r10, r11 #207.32
- mov r11d, r9d #207.32
- mulx rbx, r12, r13 #209.33
- mov r13d, r9d #212.32
- setb r11b #207.32
- adox r13d, r9d #212.32
- mulx rdx, rbp, QWORD PTR [120+rsp] #211.33[spill]
- mov r13, 0x0ffffffff #222.35
- adox rsi, rbx #212.32
- mov ebx, r9d #214.32
- adox r12, rcx #213.32
- mov ecx, r9d #216.34
- adox r15, rdx #214.32
- seto bl #214.32
- clc #215.30
- adcx rbx, rbp #215.30
- adox ecx, r9d #216.34
- mov ebp, r9d #220.34
- adox r14, rax #216.34
- mov rdx, r14 #221.35
- adox rdi, rsi #217.34
- mov rsi, -1 #221.35
- mulx rcx, rax, rsi #221.35
- adox r8, r12 #218.34
- adox r10, r15 #219.34
- mov r15, 0xffffffff00000001 #223.35
- mulx rsi, r15, r15 #223.35
- adox r11, rbx #220.34
- mulx r12, rbx, r13 #222.35
- mov r13d, 0 #225.34
- seto bpl #220.34
- clc #224.34
- mov rdx, QWORD PTR [136+rsp] #234.35[spill]
- adcx rax, r12 #224.34
- mov r12d, r9d #227.31
- adcx rbx, r13 #225.34
- adcx rsi, r13 #226.34
- mov r13d, r9d #226.34
- setb r13b #226.34
- adox r12d, r9d #227.31
- adox r13, r15 #227.31
- mov r15d, r9d #238.34
- clc #228.31
- adcx r14, rcx #228.31
- mov r14d, r9d #232.34
- adcx rdi, rax #229.34
- mulx rcx, r12, rdx #236.35
- adcx r8, rbx #230.34
- adcx r10, rsi #231.34
- adcx r11, r13 #232.34
- mulx rax, r13, QWORD PTR [144+rsp] #234.35[spill]
- setb r14b #232.34
- adox r15d, r9d #238.34
- mov DWORD PTR [216+rsp], r14d #232.34[spill]
- mulx rsi, r14, QWORD PTR [128+rsp] #235.35[spill]
- adox r13, rsi #238.34
- mov esi, r9d #240.34
- mulx rdx, rbx, QWORD PTR [120+rsp] #237.35[spill]
- adox r14, rcx #239.34
- mov ecx, r9d #242.34
- adox r12, rdx #240.34
- seto sil #240.34
- clc #241.31
- adcx rsi, rbx #241.31
- adox ecx, r9d #242.34
- adox rdi, rax #242.34
- mov eax, r9d #245.34
- mov rdx, rdi #247.35
- adox r8, r13 #243.34
- mov r13, 0x0ffffffff #248.35
- adox r10, r14 #244.34
- mov r14, 0xffffffff00000001 #249.35
- adox r11, r12 #245.34
- mulx r14, r12, r14 #249.35
- seto al #245.34
- xor ebx, ebx #245.34
- add ebp, DWORD PTR [216+rsp] #246.34[spill]
- cmp r9d, eax #246.34
- mulx r13, rax, r13 #248.35
- adcx rbp, rsi #246.34
- mov rsi, -1 #247.35
- mulx rcx, r15, rsi #247.35
- mov edx, r9d #250.34
- setb bl #246.34
- adox edx, r9d #250.34
- mov rdx, QWORD PTR [120+rsp] #260.35[spill]
- adox r15, r13 #250.34
- mov r13d, 0 #251.34
- adox rax, r13 #251.34
- adox r14, r13 #252.34
- mov r13d, r9d #252.34
- seto r13b #252.34
- clc #253.31
- adcx r13, r12 #253.31
- mov r12d, r9d #254.31
- adox r12d, r9d #254.31
- adox rdi, rcx #254.31
- mov ecx, r9d #258.34
- mulx rdi, r12, QWORD PTR [128+rsp] #261.35[spill]
- adox r8, r15 #255.34
- adox r10, rax #256.34
- adox r11, r14 #257.34
- adox rbp, r13 #258.34
- mulx r13, r15, QWORD PTR [144+rsp] #260.35[spill]
- seto cl #258.34
- clc #264.34
- adcx r15, rdi #264.34
- mulx rdi, r14, QWORD PTR [136+rsp] #262.35[spill]
- adcx r12, rdi #265.34
- mulx rdi, rax, rdx #263.35
- mov edx, r9d #267.31
- adcx r14, rdi #266.34
- mov edi, r9d #266.34
- setb dil #266.34
- adox edx, r9d #267.31
- adox rdi, rax #267.31
- clc #268.34
- adcx r8, r13 #268.34
- mov r13d, r9d #271.34
- mov rdx, r8 #273.35
- adcx r10, r15 #269.34
- mov r15, 0xffffffff00000001 #275.35
- adcx r11, r12 #270.34
- adcx rbp, r14 #271.34
- setb r13b #271.34
- xor eax, eax #271.34
- add ebx, ecx #272.34
- cmp r9d, r13d #272.34
- mov rcx, 0x0ffffffff #274.35
- mulx r14, r13, rsi #273.35
- adcx rbx, rdi #272.34
- mulx rcx, r12, rcx #274.35
- mulx rdi, r15, r15 #275.35
- mov edx, r9d #276.34
- setb al #272.34
- adox edx, r9d #276.34
- mov edx, r9d #278.34
- adox r13, rcx #276.34
- mov ecx, 0 #277.34
- adox r12, rcx #277.34
- adox rdi, rcx #278.34
- seto dl #278.34
- clc #279.31
- adcx rdx, r15 #279.31
- mov r15d, r9d #280.31
- adox r15d, r9d #280.31
- adox r8, r14 #280.31
- mov r8d, r9d #284.34
- adox r10, r13 #281.34
- adox r11, r12 #282.34
- adox rbp, rdi #283.34
- mov rdi, r10 #286.34
- adox rbx, rdx #284.34
- mov rdx, 0x0ffffffff #287.34
- mov r13, rbx #289.34
- seto r8b #284.34
- xor r12d, r12d #284.34
- add eax, r8d #290.31
- sub rdi, rsi #286.34
- mov rsi, r11 #287.34
- mov r8, 0xffffffff00000001 #289.34
- sbb rsi, rdx #287.34
- mov rdx, rbp #288.34
- sbb rdx, rcx #288.34
- sbb r13, r8 #289.34
- setb r12b #289.34
- cmp r9d, r12d #290.31
- sbb rax, rcx #290.31
- setb r9b #290.31
- dec r9 #9.35
- and r13, r9 #10.31
- and rdx, r9 #10.31
- and rsi, r9 #10.31
- and rdi, r9 #10.31
- not r9 #10.43
- and rbx, r9 #10.60
- and rbp, r9 #10.60
- and r11, r9 #10.60
- and r9, r10 #10.60
- or r13, rbx #10.60
- or rdx, rbp #10.60
- or rsi, r11 #10.60
- or rdi, r9 #10.60
- mov QWORD PTR [312+rsp], r13 #10.60[spill]
- mov QWORD PTR [32+rsp], r13 #326.37
- mov QWORD PTR [40+rsp], rdx #326.37
- mov QWORD PTR [48+rsp], rsi #326.37
- mov QWORD PTR [56+rsp], rdi #326.37
- vmovups XMMWORD PTR [64+rsp], xmm0 #327.21
- vmovups XMMWORD PTR [80+rsp], xmm0 #327.21
- mov r8, QWORD PTR [192+rsp] #14.23[spill]
- mov rax, QWORD PTR [256+rsp] #14.23[spill]
- vpxor xmm0, xmm0, xmm0 #336.21
- mov QWORD PTR [352+rsp], rdi #[spill]
- mov rdi, QWORD PTR [168+rsp] #14.23[spill]
- or r8, QWORD PTR [184+rsp] #14.23[spill]
- or rax, QWORD PTR [248+rsp] #14.23[spill]
- mov QWORD PTR [360+rsp], rsi #[spill]
- mov rsi, QWORD PTR [200+rsp] #15.23[spill]
- mov r15, QWORD PTR [264+rsp] #15.23[spill]
- or rsi, r8 #15.23
- or rdi, QWORD PTR [160+rsp] #14.23[spill]
- or r15, rax #15.23
- or QWORD PTR [176+rsp], rdi #15.23[spill]
- or QWORD PTR [208+rsp], rsi #16.23[spill]
- or QWORD PTR [272+rsp], r15 #16.23[spill]
- xor r8d, r8d #77.32
- xor esi, esi #77.32
- xor r15d, r15d #77.32
- xor r13d, r13d #77.32
- mov QWORD PTR [368+rsp], rdx #[spill]
- mov r13, 0x0ffffffff #82.33
- mov rdx, QWORD PTR [376+rsp] #73.33[spill]
- mov r9, QWORD PTR [280+rsp] #73.33[spill]
- mov r10, QWORD PTR [304+rsp] #74.33[spill]
- mulx r12, r11, r9 #73.33
- mulx rcx, rbx, r10 #74.33
- adcx r11, rcx #77.32
- mulx rdi, rbp, QWORD PTR [296+rsp] #75.33[spill]
- adcx rbx, rdi #78.32
- mov edi, 0 #79.32
- mulx r14, rax, QWORD PTR [288+rsp] #76.33[spill]
- adcx rbp, r14 #79.32
- mov rdx, r12 #81.33
- setb r8b #79.32
- adox esi, edi #80.30
- mov rsi, -1 #81.33
- adox r8, rax #80.30
- mov rax, 0xffffffff00000001 #83.33
- mulx rcx, r14, rsi #81.33
- seto r15b #80.30
- clc #84.32
- mulx rsi, r13, r13 #82.33
- adcx r14, rsi #84.32
- mov esi, 0 #85.32
- mulx r15, rax, rax #83.33
- mov edx, edi #87.30
- adcx r13, rsi #85.32
- adcx r15, rsi #86.32
- mov esi, edi #86.32
- setb sil #86.32
- adox edx, edi #87.30
- adox rsi, rax #87.30
- mov rdx, QWORD PTR [400+rsp] #93.33[spill]
- clc #88.30
- adcx r12, rcx #88.30
- adcx r11, r14 #89.32
- mulx r14, r12, r9 #93.33
- adcx rbx, r13 #90.32
- mulx r13, r9, QWORD PTR [296+rsp] #95.33[spill]
- adcx rbp, r15 #91.32
- mulx r15, rcx, r10 #94.33
- mov r10d, edi #97.32
- adcx r8, rsi #92.32
- mov esi, edi #92.32
- mulx rdx, rax, QWORD PTR [288+rsp] #96.33[spill]
- setb sil #92.32
- adox r10d, edi #97.32
- mov r10, 0x0ffffffff #107.35
- adox r12, r15 #97.32
- mov r15d, edi #99.32
- adox rcx, r13 #98.32
- mov r13d, edi #101.34
- adox r9, rdx #99.32
- seto r15b #99.32
- clc #100.30
- adcx r15, rax #100.30
- adox r13d, edi #101.34
- mov eax, edi #105.34
- adox r11, r14 #101.34
- mov r14, 0xffffffff00000001 #108.35
- mov rdx, r11 #106.35
- adox rbx, r12 #102.34
- adox rbp, rcx #103.34
- mov rcx, -1 #106.35
- adox r8, r9 #104.34
- mulx r13, r9, rcx #106.35
- adox rsi, r15 #105.34
- mulx r12, r15, r10 #107.35
- mov r10d, 0 #110.34
- seto al #105.34
- clc #109.34
- adcx r9, r12 #109.34
- mulx r12, rcx, r14 #108.35
- mov r14d, edi #112.31
- adcx r15, r10 #110.34
- mov rdx, QWORD PTR [392+rsp] #119.35[spill]
- adcx r12, r10 #111.34
- mov r10d, edi #111.34
- setb r10b #111.34
- adox r14d, edi #112.31
- adox r10, rcx #112.31
- clc #113.31
- adcx r11, r13 #113.31
- mulx r13, r11, QWORD PTR [296+rsp] #121.35[spill]
- adcx rbx, r9 #114.34
- mov r9d, edi #117.34
- adcx rbp, r15 #115.34
- mulx r15, r14, QWORD PTR [304+rsp] #120.35[spill]
- adcx r8, r12 #116.34
- mov r12d, edi #123.34
- adcx rsi, r10 #117.34
- setb r9b #117.34
- adox r12d, edi #123.34
- mov DWORD PTR [408+rsp], r9d #117.34[spill]
- mulx r9, r10, QWORD PTR [280+rsp] #119.35[spill]
- adox r10, r15 #123.34
- mov r15d, edi #125.34
- mulx rdx, rcx, QWORD PTR [288+rsp] #122.35[spill]
- adox r14, r13 #124.34
- mov r13d, edi #126.31
- adox r11, rdx #125.34
- seto r15b #125.34
- clc #126.31
- adcx r15, rcx #126.31
- mov ecx, edi #127.34
- setb r13b #126.31
- adox ecx, edi #127.34
- mov rcx, -1 #132.35
- adox rbx, r9 #127.34
- mov r9, 0x0ffffffff #133.35
- mov rdx, rbx #132.35
- adox rbp, r10 #128.34
- mulx r13, r12, rcx #132.35
- adox r8, r14 #129.34
- mulx r10, r14, r9 #133.35
- adox rsi, r11 #130.34
- mov r11d, edi #130.34
- seto r11b #130.34
- add eax, DWORD PTR [408+rsp] #131.34[spill]
- cmp edi, r11d #131.34
- mov r11, 0xffffffff00000001 #134.35
- adcx rax, r15 #131.34
- mov r15d, edi #131.34
- mulx r9, r11, r11 #134.35
- mov edx, edi #135.34
- setb r15b #131.34
- adox edx, edi #135.34
- mov rdx, QWORD PTR [384+rsp] #145.35[spill]
- adox r12, r10 #135.34
- mov r10d, 0 #136.34
- adox r14, r10 #136.34
- adox r9, r10 #137.34
- mov r10d, edi #137.34
- seto r10b #137.34
- clc #138.31
- adcx r10, r11 #138.31
- mov r11d, edi #139.31
- adox r11d, edi #139.31
- adox rbx, r13 #139.31
- mov r13d, edi #143.34
- adox rbp, r12 #140.34
- mulx rbx, r12, QWORD PTR [280+rsp] #145.35[spill]
- adox r8, r14 #141.34
- adox rsi, r9 #142.34
- mulx r14, r9, QWORD PTR [304+rsp] #146.35[spill]
- adox rax, r10 #143.34
- mulx r10, r11, QWORD PTR [296+rsp] #147.35[spill]
- seto r13b #143.34
- clc #149.34
- adcx r12, r14 #149.34
- adcx r9, r10 #150.34
- mulx r10, r14, QWORD PTR [288+rsp] #148.35[spill]
- mov edx, edi #152.31
- adcx r11, r10 #151.34
- mov r10d, edi #151.34
- setb r10b #151.34
- adox edx, edi #152.31
- adox r10, r14 #152.31
- clc #153.34
- adcx rbp, rbx #153.34
- mov ebx, edi #156.34
- mov rdx, rbp #158.35
- adcx r8, r12 #154.34
- adcx rsi, r9 #155.34
- mov r9, 0x0ffffffff #159.35
- adcx rax, r11 #156.34
- mulx r9, r11, r9 #159.35
- setb bl #156.34
- add r15d, r13d #157.34
- cmp edi, ebx #157.34
- mov rbx, 0xffffffff00000001 #160.35
- mulx r13, r14, rcx #158.35
- adcx r15, r10 #157.34
- mov r10d, edi #157.34
- mulx rbx, r12, rbx #160.35
- mov edx, edi #161.34
- setb r10b #157.34
- adox edx, edi #161.34
- mov edx, edi #163.34
- adox r14, r9 #161.34
- mov r9d, 0 #162.34
- adox r11, r9 #162.34
- adox rbx, r9 #163.34
- seto dl #163.34
- clc #164.31
- adcx rdx, r12 #164.31
- mov r12d, edi #165.31
- adox r12d, edi #165.31
- adox rbp, r13 #165.31
- mov ebp, edi #169.34
- adox r8, r14 #166.34
- mov r13, r8 #171.34
- adox rsi, r11 #167.34
- mov r11, 0xffffffff00000001 #174.34
- adox rax, rbx #168.34
- mov rbx, QWORD PTR [152+rsp] #16.23[spill]
- adox r15, rdx #169.34
- mov rdx, rsi #172.34
- seto bpl #169.34
- xor r12d, r12d #169.34
- xor r14d, r14d #169.34
- add r10d, ebp #175.31
- sub r13, rcx #171.34
- mov rcx, 0x0ffffffff #172.34
- mov rbp, r15 #174.34
- sbb rdx, rcx #172.34
- mov rcx, rax #173.34
- sbb rcx, r9 #173.34
- sbb rbp, r11 #174.34
- mov r11, QWORD PTR [208+rsp] #322.29[spill]
- setb r14b #174.34
- cmp edi, r14d #175.31
- sbb r10, r9 #175.31
- mov r9d, edi #175.31
- setb r9b #175.31
- mov r10d, 1 #175.31
- or rbx, QWORD PTR [176+rsp] #16.23[spill]
- cmove r12d, r10d #328.5
- dec r9 #9.35
- and rbp, r9 #10.31
- and rcx, r9 #10.31
- and rdx, r9 #10.31
- and r13, r9 #10.31
- not r9 #10.43
- and rsi, r9 #10.60
- dec r12 #9.35
- or rdx, rsi #10.60
- mov rsi, r12 #10.43
- and r15, r9 #10.60
- and rax, r9 #10.60
- and r9, r8 #10.60
- not rsi #10.43
- mov r8, QWORD PTR [104+rsp] #328.25[spill]
- or rcx, rax #10.60
- mov rax, rsi #10.60
- or rbp, r15 #10.60
- or r11, QWORD PTR [272+rsp] #322.29[spill]
- mov r15, QWORD PTR [88+r8] #328.25
- mov QWORD PTR [336+rsp], rdx #10.60[spill]
- cmove edi, r10d #332.5
- and r15, r12 #10.31
- and rax, 1 #10.60
- mov QWORD PTR [80+rsp], rdx #327.35
- mov rdx, 0xffffffff00000000 #10.60
- or r15, rax #10.60
- and rdx, rsi #10.60
- mov rax, QWORD PTR [80+r8] #329.25
- or r13, r9 #10.60
- and rax, r12 #10.31
- mov QWORD PTR [344+rsp], rcx #10.60[spill]
- or rax, rdx #10.60
- mov QWORD PTR [72+rsp], rcx #327.35
- mov rdx, QWORD PTR [72+r8] #330.25
- mov rcx, QWORD PTR [64+r8] #331.25
- and rdx, r12 #10.31
- mov QWORD PTR [320+rsp], rbp #10.60[spill]
- and rcx, r12 #10.31
- mov QWORD PTR [64+rsp], rbp #327.35
- or rdx, rsi #10.60
- or rcx, rsi #10.60
- mov rbp, QWORD PTR [112+rsp] #332.32[spill]
- dec rdi #9.35
- mov QWORD PTR [88+r8], r15 #328.5
- and r15, rdi #10.31
- mov QWORD PTR [80+r8], rax #329.5
- and rax, rdi #10.31
- mov QWORD PTR [72+r8], rdx #330.5
- and rdx, rdi #10.31
- mov QWORD PTR [64+r8], rcx #331.5
- and rcx, rdi #10.31
- mov QWORD PTR [232+rsp], rdi #9.35[spill]
- not rdi #10.43
- mov QWORD PTR [328+rsp], r13 #10.60[spill]
- mov QWORD PTR [88+rsp], r13 #327.35
- mov r13, QWORD PTR [88+rbp] #332.32
- and r13, rdi #10.60
- or r15, r13 #10.60
- mov QWORD PTR [88+r8], r15 #332.5
- mov r13, QWORD PTR [80+rbp] #333.32
- and r13, rdi #10.60
- or rax, r13 #10.60
- mov QWORD PTR [80+r8], rax #333.5
- mov QWORD PTR [224+rsp], rsi #10.43[spill]
- mov rsi, QWORD PTR [72+rbp] #334.32
- and rsi, rdi #10.60
- or rdx, rsi #10.60
- mov QWORD PTR [72+r8], rdx #334.5
- mov QWORD PTR [240+rsp], r12 #9.35[spill]
- mov r12, QWORD PTR [64+rbp] #335.32
- and r12, rdi #10.60
- or rcx, r12 #10.60
- mov QWORD PTR [216+rsp], rdi #10.43[spill]
- mov QWORD PTR [64+r8], rcx #335.5
- vmovups XMMWORD PTR [32+rsp], xmm0 #336.21
- vmovups XMMWORD PTR [48+rsp], xmm0 #336.21
- mov rdx, QWORD PTR [368+rsp] #336.21[spill]
- mov rsi, QWORD PTR [360+rsp] #336.21[spill]
- mov rdi, QWORD PTR [352+rsp] #336.21[spill]
- mov r9, rbp #73.33
- xor ebp, ebp #77.32
- mov QWORD PTR [368+rsp], rdx #[spill]
- xor r11d, r11d #80.30
- mov QWORD PTR [352+rsp], rdi #[spill]
- mov rdx, QWORD PTR [376+rsp] #73.33[spill]
- xor edi, edi #77.32
- mulx r12, r10, QWORD PTR [r9] #73.33
- mulx r8, r14, QWORD PTR [8+r9] #74.33
- vpxor xmm0, xmm0, xmm0 #337.21
- adcx r10, r8 #77.32
- mov QWORD PTR [360+rsp], rsi #[spill]
- mulx rcx, rsi, QWORD PTR [16+r9] #75.33
- adcx r14, rcx #78.32
- mov rcx, -1 #81.33
- mulx rax, r15, QWORD PTR [24+r9] #76.33
- mov rdx, r12 #81.33
- adcx rsi, rax #79.32
- mov rax, 0x0ffffffff #82.33
- mulx r13, rbx, rcx #81.33
- setb dil #79.32
- adox r11d, ebp #80.30
- adox rdi, r15 #80.30
- mov r15, 0xffffffff00000001 #83.33
- mulx r11, rax, rax #82.33
- clc #84.32
- mulx rcx, r8, r15 #83.33
- mov r15d, ebp #87.30
- adcx rbx, r11 #84.32
- mov r11d, 0 #85.32
- mov rdx, QWORD PTR [400+rsp] #93.33[spill]
- adcx rax, r11 #85.32
- adcx rcx, r11 #86.32
- mov r11d, ebp #86.32
- setb r11b #86.32
- adox r15d, ebp #87.30
- adox r11, r8 #87.30
- clc #88.30
- mov r8d, ebp #92.32
- adcx r12, r13 #88.30
- mulx r13, r12, QWORD PTR [8+r9] #94.33
- adcx r10, rbx #89.32
- adcx r14, rax #90.32
- mulx rax, rbx, QWORD PTR [r9] #93.33
- adcx rsi, rcx #91.32
- adcx rdi, r11 #92.32
- mulx r11, r15, QWORD PTR [16+r9] #95.33
- mulx rdx, rcx, QWORD PTR [24+r9] #96.33
- mov r9d, ebp #97.32
- setb r8b #92.32
- adox r9d, ebp #97.32
- mov r9, 0xffffffff00000001 #108.35
- adox rbx, r13 #97.32
- mov r13d, ebp #99.32
- adox r12, r11 #98.32
- mov r11d, ebp #101.34
- adox r15, rdx #99.32
- seto r13b #99.32
- clc #100.30
- adcx r13, rcx #100.30
- adox r11d, ebp #101.34
- mov ecx, ebp #105.34
- adox r10, rax #101.34
- mov rax, -1 #106.35
- mov rdx, r10 #106.35
- adox r14, rbx #102.34
- mov rbx, 0x0ffffffff #107.35
- adox rsi, r12 #103.34
- adox rdi, r15 #104.34
- mov r15d, 0 #110.34
+ push rbx #187.3
+ mov rbx, rsp #187.3
+ and rsp, -32 #187.3
+ push rbp #187.3
+ push rbp #187.3
+ mov rbp, QWORD PTR [8+rbx] #187.3
+ mov QWORD PTR [8+rsp], rbp #187.3
+ mov rbp, rsp #187.3
+ push r12 #187.3
+ push r13 #187.3
+ push r14 #187.3
+ push r15 #187.3
+ sub rsp, 304 #187.3
+ vpxor ymm0, ymm0, ymm0 #196.20
+ mov QWORD PTR [-104+rbp], rdx #187.3[spill]
+ mov QWORD PTR [-88+rbp], rsi #187.3[spill]
+ mov QWORD PTR [-96+rbp], rdi #187.3[spill]
+ vmovups YMMWORD PTR [-240+rbp], ymm0 #196.20
+ xor r13d, r13d #42.32
+ xor eax, eax #42.32
+ xor r9d, r9d #42.32
+ mov rdx, QWORD PTR [64+rsi] #38.33
+ mulx r12, r15, QWORD PTR [64+rsi] #38.33
+ mulx r10, rdi, QWORD PTR [72+rsi] #39.33
+ adcx r15, r10 #42.32
+ mov r10, -1 #46.33
+ mulx r14, r8, QWORD PTR [80+rsi] #40.33
+ adcx rdi, r14 #43.32
+ mov r14, 0x0ffffffff #47.33
+ mulx rcx, r11, QWORD PTR [88+rsi] #41.33
+ mov esi, 0 #42.32
+ adcx r8, rcx #44.32
+ setb r13b #44.32
+ mov rdx, r12 #46.33
+ adox eax, esi #45.30
+ adox r13, r11 #45.30
+ mulx rax, r11, r10 #46.33
+ mov r10, 0xffffffff00000001 #48.33
+ seto r9b #45.30
+ clc #49.32
+ mulx r9, rcx, r14 #47.33
+ adcx r11, r9 #49.32
+ mulx r14, r9, r10 #48.33
+ mov r10d, 0 #50.32
+ adcx rcx, r10 #50.32
+ mov edx, esi #52.30
+ adcx r14, r10 #51.32
+ mov r10d, esi #51.32
+ setb r10b #51.32
+ adox edx, esi #52.30
+ adox r10, r9 #52.30
+ clc #53.30
+ adcx r12, rax #53.30
+ adcx r15, r11 #54.32
+ adcx rdi, rcx #55.32
+ mov ecx, esi #57.32
+ adcx r8, r14 #56.32
+ mov r14, QWORD PTR [-88+rbp] #58.33[spill]
+ adcx r13, r10 #57.32
+ mov rdx, QWORD PTR [72+r14] #58.33
+ setb cl #57.32
+ mov QWORD PTR [-304+rbp], r13 #57.32[spill]
+ mov QWORD PTR [-296+rbp], rcx #70.34[spill]
+ mulx r11, r13, QWORD PTR [64+r14] #58.33
+ mulx rcx, r12, QWORD PTR [72+r14] #59.33
+ mulx rax, r10, QWORD PTR [80+r14] #60.33
+ mulx rdx, r9, QWORD PTR [88+r14] #61.33
+ mov r14d, esi #62.32
+ adox r14d, esi #62.32
+ adox r13, rcx #62.32
+ mov ecx, esi #64.32
+ adox r12, rax #63.32
+ adox r10, rdx #64.32
+ seto cl #64.32
+ clc #65.30
+ adcx rcx, r9 #65.30
+ mov r9d, esi #66.34
+ adox r9d, esi #66.34
+ mov rax, 0x0ffffffff #72.35
+ mov r9, QWORD PTR [-304+rbp] #69.34[spill]
+ adox r15, r11 #66.34
+ mov rdx, r15 #71.35
+ adox rdi, r13 #67.34
+ mov r13, QWORD PTR [-296+rbp] #70.34[spill]
+ adox r8, r12 #68.34
+ mov r12d, esi #70.34
+ adox r9, r10 #69.34
+ mulx r10, r14, rax #72.35
+ mov eax, 0 #75.34
+ adox r13, rcx #70.34
+ mov rcx, -1 #71.35
+ seto r12b #70.34
+ clc #74.34
+ mov DWORD PTR [-288+rbp], r12d #70.34[spill]
+ mulx r12, r11, rcx #71.35
+ mov rcx, 0xffffffff00000001 #73.35
+ adcx r11, r10 #74.34
+ mulx r10, rcx, rcx #73.35
+ mov edx, esi #77.31
+ adcx r14, rax #75.34
+ adcx r10, rax #76.34
+ mov eax, esi #76.34
+ setb al #76.34
+ adox edx, esi #77.31
+ adox rax, rcx #77.31
+ clc #78.31
+ mov rcx, QWORD PTR [-88+rbp] #84.35[spill]
+ adcx r15, r12 #78.31
+ mov r15d, esi #82.34
+ adcx rdi, r11 #79.34
+ mov rdx, QWORD PTR [80+rcx] #84.35
+ adcx r8, r14 #80.34
+ mulx r11, r14, QWORD PTR [72+rcx] #85.35
+ adcx r9, r10 #81.34
+ mulx r12, r10, QWORD PTR [64+rcx] #84.35
+ adcx r13, rax #82.34
+ mov QWORD PTR [-296+rbp], r13 #82.34[spill]
+ setb r15b #82.34
+ mov DWORD PTR [-280+rbp], r15d #82.34[spill]
+ mov r15d, esi #88.34
+ adox r15d, esi #88.34
+ mulx r13, rax, QWORD PTR [80+rcx] #86.35
+ mov r15d, esi #90.34
+ adox r10, r11 #88.34
+ mov r11d, esi #95.34
+ mulx rdx, rcx, QWORD PTR [88+rcx] #87.35
+ adox r14, r13 #89.34
+ adox rax, rdx #90.34
+ seto r15b #90.34
+ clc #91.31
+ adcx r15, rcx #91.31
+ mov ecx, esi #92.34
+ adox ecx, esi #92.34
+ mov rcx, QWORD PTR [-296+rbp] #95.34[spill]
+ adox rdi, r12 #92.34
+ mov rdx, rdi #97.35
+ adox r8, r10 #93.34
+ adox r9, r14 #94.34
+ mov r14, 0x0ffffffff #98.35
+ adox rcx, rax #95.34
+ mov eax, DWORD PTR [-288+rbp] #96.34[spill]
+ seto r11b #95.34
+ xor r12d, r12d #95.34
+ mov r10, -1 #95.34
+ add eax, DWORD PTR [-280+rbp] #96.34[spill]
+ cmp esi, r11d #96.34
+ adcx rax, r15 #96.34
+ mulx r15, r13, r10 #97.35
+ mov r10, 0xffffffff00000001 #99.35
+ setb r12b #96.34
+ mov DWORD PTR [-272+rbp], r12d #96.34[spill]
+ mulx r12, r11, r14 #98.35
+ mulx r14, r10, r10 #99.35
+ mov edx, esi #100.34
+ adox edx, esi #100.34
+ adox r13, r12 #100.34
+ mov r12d, 0 #101.34
+ adox r11, r12 #101.34
+ adox r14, r12 #102.34
+ mov r12d, esi #102.34
+ seto r12b #102.34
+ clc #103.31
+ adcx r12, r10 #103.31
+ mov r10d, esi #104.31
+ adox r10d, esi #104.31
+ adox rdi, r15 #104.31
+ mov edi, esi #108.34
adox r8, r13 #105.34
- mulx r11, r13, rax #106.35
- seto cl #105.34
- clc #109.34
- mulx rax, r12, rbx #107.35
- adcx r13, rax #109.34
- mulx rbx, rax, r9 #108.35
- mov r9d, ebp #111.34
- adcx r12, r15 #110.34
- mov rdx, QWORD PTR [392+rsp] #119.35[spill]
- adcx rbx, r15 #111.34
- mov r15d, ebp #112.31
- setb r9b #111.34
- adox r15d, ebp #112.31
- adox r9, rax #112.31
- clc #113.31
- mov eax, ebp #123.34
- adcx r10, r11 #113.31
+ adox r9, r11 #106.34
+ mov r11, QWORD PTR [-88+rbp] #110.35[spill]
+ adox rcx, r14 #107.34
+ mov rdx, QWORD PTR [88+r11] #110.35
+ adox rax, r12 #108.34
+ mulx r12, r14, QWORD PTR [64+r11] #110.35
+ seto dil #108.34
+ clc #114.34
+ mulx r13, r15, QWORD PTR [72+r11] #111.35
adcx r14, r13 #114.34
- adcx rsi, r12 #115.34
- mov r12d, ebp #117.34
- adcx rdi, rbx #116.34
- mov rbx, QWORD PTR [112+rsp] #119.35[spill]
- adcx r8, r9 #117.34
- mulx r13, r9, QWORD PTR [rbx] #119.35
- setb r12b #117.34
- adox eax, ebp #123.34
- mov DWORD PTR [152+rsp], r12d #117.34[spill]
- mov eax, ebp #125.34
- mulx r12, r10, QWORD PTR [8+rbx] #120.35
- adox r9, r12 #123.34
- mulx r11, r15, QWORD PTR [16+rbx] #121.35
- adox r10, r11 #124.34
- mulx rdx, rbx, QWORD PTR [24+rbx] #122.35
- adox r15, rdx #125.34
- seto al #125.34
- clc #126.31
- adcx rax, rbx #126.31
- mov ebx, ebp #127.34
- adox ebx, ebp #127.34
- mov rbx, -1 #132.35
- adox r14, r13 #127.34
- mov r13, 0x0ffffffff #133.35
- mov rdx, r14 #132.35
- adox rsi, r9 #128.34
- mov r9, 0xffffffff00000001 #134.35
- mulx r12, r11, rbx #132.35
- adox rdi, r10 #129.34
- mov r10d, ebp #130.34
- adox r8, r15 #130.34
- mulx r15, r13, r13 #133.35
- seto r10b #130.34
- add ecx, DWORD PTR [152+rsp] #131.34[spill]
- cmp ebp, r10d #131.34
- mulx r9, r10, r9 #134.35
- mov edx, ebp #135.34
- adcx rcx, rax #131.34
- mov eax, ebp #131.34
- setb al #131.34
- adox edx, ebp #135.34
- mov rdx, QWORD PTR [384+rsp] #145.35[spill]
- adox r11, r15 #135.34
- mov r15d, 0 #136.34
- adox r13, r15 #136.34
- adox r9, r15 #137.34
- mov r15d, ebp #137.34
- seto r15b #137.34
- clc #138.31
- adcx r15, r10 #138.31
- mov r10d, ebp #139.31
- adox r10d, ebp #139.31
- adox r14, r12 #139.31
- adox rsi, r11 #140.34
- adox rdi, r13 #141.34
- adox r8, r9 #142.34
- mov r9, QWORD PTR [112+rsp] #145.35[spill]
- adox rcx, r15 #143.34
- mov r15d, ebp #143.34
- mulx r14, r11, QWORD PTR [r9] #145.35
- seto r15b #143.34
- clc #149.34
- mulx r12, r13, QWORD PTR [8+r9] #146.35
- adcx r11, r12 #149.34
- mulx r10, r12, QWORD PTR [16+r9] #147.35
- adcx r13, r10 #150.34
- mulx r9, r10, QWORD PTR [24+r9] #148.35
- mov edx, ebp #152.31
- adcx r12, r9 #151.34
- mov r9d, ebp #151.34
- setb r9b #151.34
- adox edx, ebp #152.31
- adox r9, r10 #152.31
- mov r10d, ebp #152.31
- seto r10b #152.31
- clc #153.34
- adcx rsi, r14 #153.34
- mov r14d, ebp #156.34
- mov rdx, rsi #158.35
- adcx rdi, r11 #154.34
- mov r11, 0x0ffffffff #159.35
- adcx r8, r13 #155.34
- mulx r13, r11, r11 #159.35
- adcx rcx, r12 #156.34
- setb r14b #156.34
- xor r12d, r12d #156.34
- add eax, r15d #157.34
- cmp ebp, r14d #157.34
- mov r15, 0xffffffff00000001 #160.35
- mulx r10, r15, r15 #160.35
- adcx rax, r9 #157.34
- mulx r9, r14, rbx #158.35
- mov edx, ebp #161.34
- setb r12b #157.34
- adox edx, ebp #161.34
- mov edx, ebp #163.34
- adox r14, r13 #161.34
- mov r13d, 0 #162.34
- adox r11, r13 #162.34
- adox r10, r13 #163.34
- seto dl #163.34
- clc #164.31
- adcx rdx, r15 #164.31
- mov r15d, ebp #165.31
- adox r15d, ebp #165.31
- adox rsi, r9 #165.31
- mov r9, 0x0ffffffff #172.34
- mov esi, ebp #169.34
- adox rdi, r14 #166.34
- adox r8, r11 #167.34
- adox rcx, r10 #168.34
- mov r10, 0xffffffff00000001 #174.34
- adox rax, rdx #169.34
- mov rdx, rax #174.34
- seto sil #169.34
- add r12d, esi #175.31
- mov rsi, rdi #171.34
- sub rsi, rbx #171.34
- mov rbx, r8 #172.34
- sbb rbx, r9 #172.34
- mov r9, rcx #173.34
- sbb r9, r13 #173.34
- sbb rdx, r10 #174.34
- mov r10d, ebp #174.34
- setb r10b #174.34
- cmp ebp, r10d #175.31
- sbb r12, r13 #175.31
- setb bpl #175.31
- dec rbp #9.35
- and rdx, rbp #10.31
- and r9, rbp #10.31
- and rbx, rbp #10.31
- and rsi, rbp #10.31
- not rbp #10.43
- and rax, rbp #10.60
- and rcx, rbp #10.60
- and r8, rbp #10.60
- and rbp, rdi #10.60
- or rdx, rax #10.60
- or r9, rcx #10.60
- or rbx, r8 #10.60
- or rsi, rbp #10.60
- mov QWORD PTR [rsp], rdx #336.35
- mov QWORD PTR [8+rsp], r9 #336.35
- mov QWORD PTR [16+rsp], rbx #336.35
- mov QWORD PTR [24+rsp], rsi #336.35
- vmovups XMMWORD PTR [64+rsp], xmm0 #337.21
- vmovups XMMWORD PTR [80+rsp], xmm0 #337.21
- mov rdx, QWORD PTR [368+rsp] #337.21[spill]
- mov rsi, QWORD PTR [360+rsp] #337.21[spill]
- mov rdi, QWORD PTR [352+rsp] #337.21[spill]
- mov r12, QWORD PTR [32+rsp] #337.64
- xor ebp, ebp #24.32
- xor r9d, r9d #21.32
- mov QWORD PTR [152+rsp], r12 #337.64[spill]
- mov rax, 0x0ffffffff #26.32
- adcx r12, r12 #21.32
- vpxor xmm0, xmm0, xmm0 #338.20
- mov r11, QWORD PTR [40+rsp] #337.88
- mov r9, r12 #25.32
- mov QWORD PTR [160+rsp], r11 #337.88[spill]
- mov r13, 0xffffffff00000001 #28.32
- adcx r11, r11 #22.32
- mov r10, QWORD PTR [48+rsp] #337.80
- mov QWORD PTR [168+rsp], r10 #337.80[spill]
- adcx r10, r10 #23.32
- mov r8, QWORD PTR [56+rsp] #337.72
- mov QWORD PTR [176+rsp], r8 #337.72[spill]
- adcx r8, r8 #24.32
- mov rcx, r8 #28.32
- setb bpl #24.32
- mov rbx, -1 #24.32
- xor r14d, r14d #24.32
- xor r15d, r15d #24.32
- sub r9, rbx #25.32
- mov rbx, r11 #26.32
- sbb rbx, rax #26.32
- mov rax, r10 #27.32
- sbb rax, r14 #27.32
- sbb rcx, r13 #28.32
- sbb rbp, r14 #29.30
- setb r15b #29.30
- dec r15 #9.35
- and rcx, r15 #10.31
- and rax, r15 #10.31
- and rbx, r15 #10.31
- and r9, r15 #10.31
- not r15 #10.43
- and r8, r15 #10.60
- and r10, r15 #10.60
- and r11, r15 #10.60
- and r15, r12 #10.60
- or rcx, r8 #10.60
- or rax, r10 #10.60
- or rbx, r11 #10.60
- or r9, r15 #10.60
- mov QWORD PTR [64+rsp], rcx #337.35
- mov QWORD PTR [72+rsp], rax #337.35
- mov QWORD PTR [80+rsp], rbx #337.35
- mov QWORD PTR [88+rsp], r9 #337.35
- vmovups XMMWORD PTR [rsp], xmm0 #338.20
- vmovups XMMWORD PTR [16+rsp], xmm0 #338.20
- mov r8, QWORD PTR [312+rsp] #41.32[spill]
- xor ebp, ebp #41.32
- sub r8, rcx #41.32
- mov rcx, 0xffffffff00000001 #49.30
- sbb rdx, rax #42.32
- sbb rsi, rbx #43.32
- sbb rdi, r9 #44.32
- mov r9d, ebp #44.32
- vpxor xmm0, xmm0, xmm0 #348.21
- setb r9b #44.32
- xor r10d, r10d #44.32
- xor r12d, r12d #44.32
- xor r15d, r15d #44.32
- xor eax, eax #44.32
- xor ebx, ebx #44.32
- xor r13d, r13d #44.32
- test r9d, r9d #45.38
- mov r9, -1 #45.38
- cmovne r13, r9 #45.38
- adox r10d, ebp #46.32
- mov r11d, r13d #47.32
- adox r8, r13 #46.32
- mov QWORD PTR [24+rsp], r8 #338.34
- adox rdx, r11 #47.32
- mov QWORD PTR [16+rsp], rdx #338.34
- adox rsi, rbx #48.32
- mov QWORD PTR [8+rsp], rsi #338.34
- seto r12b #48.32
- and r13, rcx #49.30
- cmp ebp, r12d #49.30
- mov r11, QWORD PTR [240+rsp] #10.31[spill]
- adcx rdi, r13 #49.30
- mov QWORD PTR [rsp], rdi #338.34
- sub rdi, QWORD PTR [320+rsp] #41.32[spill]
- sbb rsi, QWORD PTR [344+rsp] #42.32[spill]
- sbb rdx, QWORD PTR [336+rsp] #43.32[spill]
- sbb r8, QWORD PTR [328+rsp] #44.32[spill]
- setb r15b #44.32
- test r15d, r15d #45.38
- mov r15, QWORD PTR [96+rsp] #340.32[spill]
- cmove r9, rbx #45.38
- adox eax, ebp #46.32
- mov r10d, r9d #47.32
- adox rdi, r9 #46.32
- mov rax, QWORD PTR [104+rsp] #53.1[spill]
- adox rsi, r10 #47.32
- mov QWORD PTR [24+rax], rdi #53.1
- adox rdx, rbx #48.32
- mov ebx, ebp #48.32
- mov QWORD PTR [8+rax], rdx #51.1
- seto bl #48.32
- and rcx, r9 #49.30
- cmp ebp, ebx #49.30
- mov QWORD PTR [16+rax], rsi #52.1
- adcx r8, rcx #49.30
- mov QWORD PTR [rax], r8 #50.1
- mov r12, QWORD PTR [24+r15] #340.32
- mov rcx, QWORD PTR [224+rsp] #10.60[spill]
- and rdi, r11 #10.31
- and r12, rcx #10.60
- and rsi, r11 #10.31
- or rdi, r12 #10.60
- and rdx, r11 #10.31
- mov QWORD PTR [24+rax], rdi #340.5
- and r8, r11 #10.31
- mov r13, QWORD PTR [16+r15] #341.32
- and r13, rcx #10.60
- or rsi, r13 #10.60
- mov QWORD PTR [16+rax], rsi #341.5
- mov r14, QWORD PTR [8+r15] #342.32
- and r14, rcx #10.60
- or rdx, r14 #10.60
- mov QWORD PTR [8+rax], rdx #342.5
- mov r11, QWORD PTR [112+rsp] #344.32[spill]
- mov r13, QWORD PTR [r15] #343.32
- and r13, rcx #10.60
- or r8, r13 #10.60
- mov QWORD PTR [rax], r8 #343.5
- mov rbx, QWORD PTR [232+rsp] #10.31[spill]
- and rdi, rbx #10.31
- mov r12, QWORD PTR [216+rsp] #10.60[spill]
- and rsi, rbx #10.31
- mov rbp, QWORD PTR [24+r11] #344.32
- and rdx, rbx #10.31
- and rbp, r12 #10.60
- and r8, rbx #10.31
- or rdi, rbp #10.60
- mov QWORD PTR [24+rax], rdi #344.5
- mov r9, QWORD PTR [16+r11] #345.32
- and r9, r12 #10.60
- or rsi, r9 #10.60
- mov QWORD PTR [16+rax], rsi #345.5
- mov r10, QWORD PTR [8+r11] #346.32
- and r10, r12 #10.60
- or rdx, r10 #10.60
- mov QWORD PTR [8+rax], rdx #346.5
- mov rcx, QWORD PTR [r11] #347.32
- and rcx, r12 #10.60
- or r8, rcx #10.60
- mov QWORD PTR [312+rsp], r8 #10.60[spill]
- mov QWORD PTR [rax], r8 #347.5
- vmovups XMMWORD PTR [32+rsp], xmm0 #348.21
- vmovups XMMWORD PTR [48+rsp], xmm0 #348.21
- mov rbp, r11 #73.33
- xor r8d, r8d #77.32
- mov QWORD PTR [368+rsp], rdx #[spill]
- xor r10d, r10d #77.32
- mov rdx, QWORD PTR [320+rsp] #73.33[spill]
- mov QWORD PTR [352+rsp], rdi #[spill]
- mov r13, 0x0ffffffff #82.33
- mulx rax, rdi, QWORD PTR [32+rbp] #73.33
- mov r14, 0xffffffff00000001 #83.33
- mulx rbx, r9, QWORD PTR [40+rbp] #74.33
- adox rdi, rbx #77.32
- vpxor xmm0, xmm0, xmm0 #349.21
- mulx rcx, r11, QWORD PTR [48+rbp] #75.33
- adox r9, rcx #78.32
- mulx r12, r15, QWORD PTR [56+rbp] #76.33
- mov rdx, rax #81.33
- adox r11, r12 #79.32
- mov QWORD PTR [360+rsp], rsi #[spill]
- seto r10b #79.32
- clc #80.30
- adcx r10, r15 #80.30
- mulx r12, rcx, r13 #82.33
- mov rsi, -1 #81.33
- mulx r15, rbx, rsi #81.33
- mulx r13, r14, r14 #83.33
- mov edx, r8d #84.32
- adox edx, r8d #84.32
- mov edx, r8d #86.32
- adox rbx, r12 #84.32
- mov r12d, 0 #85.32
- adox rcx, r12 #85.32
- adox r13, r12 #86.32
- seto dl #86.32
- clc #87.30
- adcx rdx, r14 #87.30
- mov r14d, r8d #88.30
- adox r14d, r8d #88.30
- adox rax, r15 #88.30
- adox rdi, rbx #89.32
- mov ebx, r8d #92.32
- adox r9, rcx #90.32
- adox r11, r13 #91.32
- adox r10, rdx #92.32
- mov rdx, QWORD PTR [344+rsp] #93.33[spill]
- seto bl #92.32
- clc #97.32
- mulx r15, r13, QWORD PTR [32+rbp] #93.33
- mulx rcx, r14, QWORD PTR [40+rbp] #94.33
- adcx r13, rcx #97.32
- mulx rax, rcx, QWORD PTR [48+rbp] #95.33
- adcx r14, rax #98.32
- mulx rax, rbp, QWORD PTR [56+rbp] #96.33
- mov edx, r8d #100.30
- adcx rcx, rax #99.32
- mov eax, r8d #99.32
- setb al #99.32
- adox edx, r8d #100.30
- adox rax, rbp #100.30
- mov ebp, r8d #100.30
- seto bpl #100.30
- clc #101.34
- adcx rdi, r15 #101.34
- mov r15, 0x0ffffffff #107.35
- mov rdx, rdi #106.35
- adcx r9, r13 #102.34
- mov r13, 0xffffffff00000001 #108.35
- mulx rbp, rsi, rsi #106.35
- adcx r11, r14 #103.34
- mulx r13, r14, r13 #108.35
- adcx r10, rcx #104.34
- mov ecx, r8d #105.34
- adcx rbx, rax #105.34
- mulx r15, rax, r15 #107.35
- mov edx, r8d #109.34
- setb cl #105.34
- adox edx, r8d #109.34
- mov rdx, QWORD PTR [336+rsp] #119.35[spill]
- adox rsi, r15 #109.34
- mov r15d, r8d #111.34
- adox rax, r12 #110.34
- adox r13, r12 #111.34
- seto r15b #111.34
- clc #112.31
- adcx r15, r14 #112.31
- mov r14d, r8d #113.31
- adox r14d, r8d #113.31
- adox rdi, rbp #113.31
- mov edi, r8d #117.34
- adox r9, rsi #114.34
- adox r11, rax #115.34
- adox r10, r13 #116.34
- mov r13, QWORD PTR [112+rsp] #119.35[spill]
- adox rbx, r15 #117.34
- mulx rax, rsi, QWORD PTR [32+r13] #119.35
- seto dil #117.34
- clc #123.34
- mulx rbp, r15, QWORD PTR [40+r13] #120.35
- adcx rsi, rbp #123.34
- mulx r14, rbp, QWORD PTR [48+r13] #121.35
- adcx r15, r14 #124.34
- mulx r13, r14, QWORD PTR [56+r13] #122.35
- mov edx, r8d #126.31
- adcx rbp, r13 #125.34
- mov r13d, r8d #125.34
- setb r13b #125.34
- adox edx, r8d #126.31
- adox r13, r14 #126.31
- clc #127.34
- adcx r9, rax #127.34
- mov rdx, r9 #132.35
- adcx r11, rsi #128.34
- mov esi, r8d #130.34
- adcx r10, r15 #129.34
- adcx rbx, rbp #130.34
- mov rbp, 0x0ffffffff #133.35
- mulx r15, r14, rbp #133.35
- setb sil #130.34
- xor eax, eax #130.34
- add ecx, edi #131.34
- mov rdi, -1 #131.34
- cmp r8d, esi #131.34
- mov rsi, 0xffffffff00000001 #134.35
- adcx rcx, r13 #131.34
- mulx rdi, r13, rdi #132.35
- mulx rsi, rbp, rsi #134.35
- mov edx, r8d #135.34
- setb al #131.34
- adox edx, r8d #135.34
- mov rdx, QWORD PTR [328+rsp] #145.35[spill]
- adox r13, r15 #135.34
- mov r15d, r8d #137.34
- adox r14, r12 #136.34
- adox rsi, r12 #137.34
- seto r15b #137.34
- clc #138.31
- adcx r15, rbp #138.31
- mov ebp, r8d #139.31
- adox ebp, r8d #139.31
- mov rbp, QWORD PTR [112+rsp] #145.35[spill]
- adox r9, rdi #139.31
- mov r9d, r8d #143.34
- adox r11, r13 #140.34
- mulx rdi, r13, QWORD PTR [32+rbp] #145.35
- adox r10, r14 #141.34
- adox rbx, rsi #142.34
- adox rcx, r15 #143.34
- mulx r15, rsi, QWORD PTR [40+rbp] #146.35
- seto r9b #143.34
- clc #149.34
- adcx r13, r15 #149.34
- mulx r15, r14, QWORD PTR [48+rbp] #147.35
- adcx rsi, r15 #150.34
- mulx rbp, r15, QWORD PTR [56+rbp] #148.35
- mov edx, r8d #152.31
- adcx r14, rbp #151.34
- mov ebp, r8d #151.34
- setb bpl #151.34
- adox edx, r8d #152.31
- adox rbp, r15 #152.31
- clc #153.34
- adcx r11, rdi #153.34
- mov rdx, r11 #158.35
- adcx r10, r13 #154.34
- mov r13d, r8d #156.34
- adcx rbx, rsi #155.34
- mov rsi, 0xffffffff00000001 #160.35
- adcx rcx, r14 #156.34
- mov r14, 0x0ffffffff #159.35
- setb r13b #156.34
- xor edi, edi #156.34
- add eax, r9d #157.34
- mov r9, -1 #157.34
- cmp r8d, r13d #157.34
- mulx r9, r15, r9 #158.35
- adcx rax, rbp #157.34
- mulx r13, rbp, r14 #159.35
- mulx rsi, r14, rsi #160.35
- mov edx, r8d #161.34
- setb dil #157.34
- adox edx, r8d #161.34
- mov rdx, 0xffffffff00000001 #174.34
- adox r15, r13 #161.34
- mov r13d, r8d #163.34
- adox rbp, r12 #162.34
- adox rsi, r12 #163.34
- seto r13b #163.34
- clc #164.31
- adcx r13, r14 #164.31
- mov r14d, r8d #165.31
- adox r14d, r8d #165.31
- adox r11, r9 #165.31
- mov r11d, r8d #169.34
- adox r10, r15 #166.34
- adox rbx, rbp #167.34
- mov rbp, 0x0ffffffff #172.34
- adox rcx, rsi #168.34
- adox rax, r13 #169.34
- mov rsi, rax #174.34
- seto r11b #169.34
- mov r9, -1 #169.34
- xor r15d, r15d #169.34
- add edi, r11d #175.31
- mov r11, r10 #171.34
- sub r11, r9 #171.34
- mov r9, rbx #172.34
- sbb r9, rbp #172.34
- mov rbp, rcx #173.34
- sbb rbp, r12 #173.34
- sbb rsi, rdx #174.34
- setb r15b #174.34
- cmp r8d, r15d #175.31
- sbb rdi, r12 #175.31
- setb r8b #175.31
- dec r8 #9.35
- and rsi, r8 #10.31
- and rbp, r8 #10.31
- and r9, r8 #10.31
- and r11, r8 #10.31
- not r8 #10.43
- and rax, r8 #10.60
- and rcx, r8 #10.60
- and rbx, r8 #10.60
- and r8, r10 #10.60
- or rsi, rax #10.60
- or rbp, rcx #10.60
- or r9, rbx #10.60
- or r11, r8 #10.60
- mov QWORD PTR [64+rsp], rsi #10.60[spill]
- mov QWORD PTR [32+rsp], rsi #348.34
- mov QWORD PTR [40+rsp], rbp #348.34
- mov QWORD PTR [72+rsp], r11 #10.60[spill]
- mov QWORD PTR [48+rsp], r9 #348.34
- mov QWORD PTR [56+rsp], r11 #348.34
- vmovups XMMWORD PTR [rsp], xmm0 #349.21
- vmovups XMMWORD PTR [16+rsp], xmm0 #349.21
- mov rdx, QWORD PTR [368+rsp] #349.21[spill]
- mov rsi, QWORD PTR [360+rsp] #349.21[spill]
- mov rdi, QWORD PTR [352+rsp] #349.21[spill]
- mov rax, QWORD PTR [152+rsp] #41.32[spill]
- xor r12d, r12d #41.32
- sub rax, QWORD PTR [312+rsp] #41.32[spill]
- mov rbx, QWORD PTR [160+rsp] #42.32[spill]
- sbb rbx, rdx #42.32
- mov rcx, QWORD PTR [168+rsp] #43.32[spill]
- mov r11, 0xffffffff00000001 #49.30
- sbb rcx, rsi #43.32
- mov r13, QWORD PTR [176+rsp] #44.32[spill]
- vpxor xmm0, xmm0, xmm0 #350.21
- sbb r13, rdi #44.32
- mov edi, r12d #44.32
- setb dil #44.32
- mov r8, -1 #44.32
- xor r10d, r10d #44.32
- xor edx, edx #44.32
- test edi, edi #45.38
- cmove r8, rdx #45.38
- clc #46.32
- mov esi, r8d #47.32
- adcx rax, r8 #46.32
- mov QWORD PTR [152+rsp], rax #46.32[spill]
- adcx rbx, rsi #47.32
- mov QWORD PTR [24+rsp], rax #349.34
- adcx rcx, rdx #48.32
- mov QWORD PTR [160+rsp], rbx #47.32[spill]
- setb r10b #48.32
- and r11, r8 #49.30
- cmp r12d, r10d #49.30
- mov QWORD PTR [168+rsp], rcx #48.32[spill]
- adcx r13, r11 #49.30
- mov QWORD PTR [8+rsp], rcx #349.34
- mov QWORD PTR [16+rsp], rbx #349.34
- mov QWORD PTR [176+rsp], r13 #49.30[spill]
- mov QWORD PTR [rsp], r13 #349.34
- vmovups XMMWORD PTR [32+rsp], xmm0 #350.21
- vmovups XMMWORD PTR [48+rsp], xmm0 #350.21
- mov rdx, r13 #73.33
- mov QWORD PTR [rsp], rbp #[spill]
- mov r14, -1 #81.33
- xor r13d, r13d #77.32
- mov r12, 0x0ffffffff #82.33
- mov r13, 0xffffffff00000001 #83.33
- mov r8, QWORD PTR [144+rsp] #73.33[spill]
- mov rbp, QWORD PTR [128+rsp] #74.33[spill]
- mov QWORD PTR [8+rsp], r9 #[spill]
- mulx rax, rbx, r8 #73.33
- mulx r9, r11, rbp #74.33
- adox rbx, r9 #77.32
- mulx rsi, rdi, QWORD PTR [136+rsp] #75.33[spill]
- adox r11, rsi #78.32
- mov esi, 0 #79.32
- mulx r15, r10, QWORD PTR [120+rsp] #76.33[spill]
- mov r9d, esi #79.32
- adox rdi, r15 #79.32
- mov rdx, rax #81.33
- seto r9b #79.32
- clc #80.30
- adcx r9, r10 #80.30
- mulx r14, r15, r14 #81.33
- mulx r10, rcx, r12 #82.33
- mulx r12, r13, r13 #83.33
- mov edx, esi #84.32
- adox edx, esi #84.32
- mov edx, esi #86.32
- adox r15, r10 #84.32
- mov r10d, 0 #85.32
- adox rcx, r10 #85.32
- adox r12, r10 #86.32
- seto dl #86.32
- clc #87.30
- adcx rdx, r13 #87.30
- mov r13d, esi #88.30
- adox r13d, esi #88.30
- adox rax, r14 #88.30
- adox rbx, r15 #89.32
- adox r11, rcx #90.32
- mov ecx, esi #92.32
- adox rdi, r12 #91.32
- adox r9, rdx #92.32
- mov rdx, QWORD PTR [168+rsp] #93.33[spill]
- seto cl #92.32
- clc #97.32
- mulx r15, r12, r8 #93.33
- mulx rax, r14, rbp #94.33
- adcx r12, rax #97.32
- mulx r13, rbp, QWORD PTR [136+rsp] #95.33[spill]
- adcx r14, r13 #98.32
- mulx r13, rax, QWORD PTR [120+rsp] #96.33[spill]
- mov edx, esi #100.30
- adcx rbp, r13 #99.32
- mov r13d, esi #99.32
- setb r13b #99.32
- adox edx, esi #100.30
- adox r13, rax #100.30
- mov eax, esi #100.30
- seto al #100.30
- clc #101.34
- adcx rbx, r15 #101.34
- mov r15, 0x0ffffffff #107.35
- mov rdx, rbx #106.35
- adcx r11, r12 #102.34
- adcx rdi, r14 #103.34
- mulx r15, r14, r15 #107.35
- adcx r9, rbp #104.34
- mov ebp, esi #105.34
- adcx rcx, r13 #105.34
- mov r13, -1 #106.35
- mulx rax, r13, r13 #106.35
- setb bpl #105.34
- mov DWORD PTR [16+rsp], ebp #105.34[spill]
- mov rbp, 0xffffffff00000001 #108.35
- mulx rbp, r12, rbp #108.35
- mov edx, esi #109.34
- adox edx, esi #109.34
- mov rdx, QWORD PTR [160+rsp] #119.35[spill]
- adox r13, r15 #109.34
- mov r15d, esi #111.34
- adox r14, r10 #110.34
- adox rbp, r10 #111.34
- seto r15b #111.34
- clc #112.31
- adcx r15, r12 #112.31
- mov r12d, esi #113.31
- adox r12d, esi #113.31
- adox rbx, rax #113.31
- mulx rbx, r12, QWORD PTR [128+rsp] #120.35[spill]
- adox r11, r13 #114.34
- adox rdi, r14 #115.34
- adox r9, rbp #116.34
- mov ebp, esi #117.34
- adox rcx, r15 #117.34
- mulx r15, r14, r8 #119.35
- seto bpl #117.34
- clc #123.34
- adcx r14, rbx #123.34
- mulx rax, rbx, QWORD PTR [136+rsp] #121.35[spill]
- adcx r12, rax #124.34
- mulx r13, rax, QWORD PTR [120+rsp] #122.35[spill]
- mov edx, esi #126.31
- adcx rbx, r13 #125.34
- mov r13d, esi #125.34
- setb r13b #125.34
- adox edx, esi #126.31
- adox r13, rax #126.31
- clc #127.34
- mov eax, DWORD PTR [16+rsp] #131.34[spill]
- adcx r11, r15 #127.34
- mov r15d, esi #130.34
- mov rdx, r11 #132.35
- adcx rdi, r14 #128.34
- adcx r9, r12 #129.34
- adcx rcx, rbx #130.34
- setb r15b #130.34
- xor r14d, r14d #130.34
- mov rbx, -1 #130.34
- add eax, ebp #131.34
- cmp esi, r15d #131.34
- mov r15, 0x0ffffffff #133.35
- mov rbp, 0xffffffff00000001 #134.35
- adcx rax, r13 #131.34
- mulx r13, rbx, rbx #132.35
- setb r14b #131.34
- mov DWORD PTR [24+rsp], r14d #131.34[spill]
- mulx r15, r14, r15 #133.35
- mulx rbp, r12, rbp #134.35
- mov edx, esi #135.34
- adox edx, esi #135.34
- mov rdx, QWORD PTR [152+rsp] #145.35[spill]
- adox rbx, r15 #135.34
- mov r15d, esi #137.34
- adox r14, r10 #136.34
- adox rbp, r10 #137.34
- seto r15b #137.34
- clc #138.31
- adcx r15, r12 #138.31
- mov r12d, esi #139.31
- adox r12d, esi #139.31
- mov r12d, esi #152.31
- adox r11, r13 #139.31
- adox rdi, rbx #140.34
- mulx rbx, r8, r8 #145.35
- adox r9, r14 #141.34
- mulx r14, r13, QWORD PTR [136+rsp] #147.35[spill]
- adox rcx, rbp #142.34
- mov ebp, esi #143.34
- adox rax, r15 #143.34
- mulx r11, r15, QWORD PTR [128+rsp] #146.35[spill]
- seto bpl #143.34
- clc #149.34
- adcx r8, r11 #149.34
- adcx r15, r14 #150.34
- mulx r11, r14, QWORD PTR [120+rsp] #148.35[spill]
- adcx r13, r11 #151.34
- mov r11d, esi #151.34
- setb r11b #151.34
- adox r12d, esi #152.31
- adox r11, r14 #152.31
- clc #153.34
- mov r14d, DWORD PTR [24+rsp] #157.34[spill]
- adcx rdi, rbx #153.34
- mov rdx, rdi #158.35
- adcx r9, r8 #154.34
- mov r8d, esi #156.34
- adcx rcx, r15 #155.34
- mov r15, 0xffffffff00000001 #160.35
- adcx rax, r13 #156.34
- setb r8b #156.34
- mov r13, -1 #156.34
- add r14d, ebp #157.34
- cmp esi, r8d #157.34
- mov rbp, 0x0ffffffff #159.35
- mulx rbx, r8, r13 #158.35
- adcx r14, r11 #157.34
- mov r11d, esi #157.34
- mulx r12, r13, rbp #159.35
- mulx rbp, r15, r15 #160.35
- mov edx, esi #161.34
- setb r11b #157.34
- adox edx, esi #161.34
- adox r8, r12 #161.34
- mov r12d, esi #163.34
- adox r13, r10 #162.34
- adox rbp, r10 #163.34
- seto r12b #163.34
- clc #164.31
- adcx r12, r15 #164.31
- mov r15d, esi #165.31
- adox r15d, esi #165.31
- adox rdi, rbx #165.31
- mov rbx, 0x0ffffffff #172.34
- mov edi, esi #169.34
- adox r9, r8 #166.34
- mov r15, r9 #171.34
- adox rcx, r13 #167.34
- mov r13, rcx #172.34
- adox rax, rbp #168.34
- adox r14, r12 #169.34
- mov r8, r14 #174.34
- seto dil #169.34
- mov rdx, -1 #169.34
- xor ebp, ebp #169.34
- add r11d, edi #175.31
- sub r15, rdx #171.34
- mov rdi, 0xffffffff00000001 #174.34
- sbb r13, rbx #172.34
- mov rbx, rax #173.34
- sbb rbx, r10 #173.34
- sbb r8, rdi #174.34
- setb bpl #174.34
- cmp esi, ebp #175.31
- mov ebp, esi #175.31
- sbb r11, r10 #175.31
- setb bpl #175.31
- dec rbp #9.35
- and r8, rbp #10.31
- and rbx, rbp #10.31
- and r13, rbp #10.31
- and r15, rbp #10.31
- not rbp #10.43
- and r14, rbp #10.60
- and rax, rbp #10.60
- or r8, r14 #10.60
- and rcx, rbp #10.60
- and rbp, r9 #10.60
- or rbx, rax #10.60
- mov QWORD PTR [32+rsp], r8 #350.34
- or r13, rcx #10.60
- or r15, rbp #10.60
- xor r9d, r9d #44.32
- sub r8, QWORD PTR [64+rsp] #41.32[spill]
- mov QWORD PTR [40+rsp], rbx #350.34
- sbb rbx, QWORD PTR [rsp] #42.32[spill]
- mov QWORD PTR [48+rsp], r13 #350.34
- sbb r13, QWORD PTR [8+rsp] #43.32[spill]
- mov QWORD PTR [56+rsp], r15 #350.34
- sbb r15, QWORD PTR [72+rsp] #44.32[spill]
- setb r9b #44.32
- xor ecx, ecx #44.32
- test r9d, r9d #45.38
- mov r9, QWORD PTR [104+rsp] #53.1[spill]
- cmove rdx, r10 #45.38
- clc #46.32
- mov eax, edx #47.32
- adcx r8, rdx #46.32
- mov QWORD PTR [56+r9], r8 #53.1
- adcx rbx, rax #47.32
- mov QWORD PTR [48+r9], rbx #52.1
- adcx r13, r10 #48.32
- mov QWORD PTR [40+r9], r13 #51.1
- setb cl #48.32
- and rdi, rdx #49.30
- cmp esi, ecx #49.30
- mov rax, QWORD PTR [224+rsp] #10.60[spill]
- adcx r15, rdi #49.30
- mov QWORD PTR [32+r9], r15 #50.1
- mov rsi, QWORD PTR [240+rsp] #10.31[spill]
- and r8, rsi #10.31
- and rbx, rsi #10.31
- and r13, rsi #10.31
- and rsi, r15 #10.31
- mov r15, QWORD PTR [96+rsp] #352.32[spill]
- mov rcx, QWORD PTR [232+rsp] #10.31[spill]
- mov rdx, QWORD PTR [216+rsp] #10.60[spill]
- mov r10, QWORD PTR [56+r15] #352.32
- and r10, rax #10.60
- or r8, r10 #10.60
- mov QWORD PTR [56+r9], r8 #352.5
- and r8, rcx #10.31
- mov r12, QWORD PTR [48+r15] #353.32
- and r12, rax #10.60
- or rbx, r12 #10.60
- mov QWORD PTR [48+r9], rbx #353.5
- and rbx, rcx #10.31
- mov r14, QWORD PTR [40+r15] #354.32
- and r14, rax #10.60
- or r13, r14 #10.60
- mov QWORD PTR [40+r9], r13 #354.5
- and r13, rcx #10.31
- mov r14, QWORD PTR [112+rsp] #356.32[spill]
- and rax, QWORD PTR [32+r15] #10.60
- or rsi, rax #10.60
- mov QWORD PTR [32+r9], rsi #355.5
- and rcx, rsi #10.31
- mov r12, QWORD PTR [56+r14] #356.32
- and r12, rdx #10.60
- or r8, r12 #10.60
- mov QWORD PTR [56+r9], r8 #356.5
- mov r8, QWORD PTR [48+r14] #357.32
- and r8, rdx #10.60
- or rbx, r8 #10.60
- mov QWORD PTR [48+r9], rbx #357.5
- mov rbx, QWORD PTR [40+r14] #358.32
- and rbx, rdx #10.60
- or r13, rbx #10.60
- mov QWORD PTR [40+r9], r13 #358.5
- and rdx, QWORD PTR [32+r14] #10.60
- or rcx, rdx #10.60
- mov QWORD PTR [32+r9], rcx #359.5
- add rsp, 424 #360.1
- pop rbp #360.1
- pop rbx #360.1
- pop r15 #360.1
- pop r14 #360.1
- pop r13 #360.1
- pop r12 #360.1
- ret #360.1
+ mulx r13, r10, QWORD PTR [80+r11] #112.35
+ adcx r15, r13 #115.34
+ mulx r13, r11, QWORD PTR [88+r11] #113.35
+ mov edx, esi #117.31
+ adcx r10, r13 #116.34
+ mov r13d, esi #116.34
+ setb r13b #116.34
+ adox edx, esi #117.31
+ adox r13, r11 #117.31
+ clc #118.34
+ mov r11d, DWORD PTR [-272+rbp] #122.34[spill]
+ adcx r8, r12 #118.34
+ mov rdx, r8 #123.35
+ adcx r9, r14 #119.34
+ adcx rcx, r15 #120.34
+ mov r15d, esi #121.34
+ adcx rax, r10 #121.34
+ mov r10, 0x0ffffffff #124.35
+ setb r15b #121.34
+ add r11d, edi #122.34
+ xor edi, edi #122.34
+ cmp esi, r15d #122.34
+ adcx r11, r13 #122.34
+ mov r13, -1 #123.35
+ mulx r12, r14, r13 #123.35
+ setb dil #122.34
+ mov DWORD PTR [-264+rbp], edi #122.34[spill]
+ mov rdi, 0xffffffff00000001 #125.35
+ mulx r10, r13, r10 #124.35
+ mulx rdi, r15, rdi #125.35
+ mov edx, esi #126.34
+ adox edx, esi #126.34
+ mov edx, esi #128.34
+ adox r14, r10 #126.34
+ mov r10d, 0 #127.34
+ adox r13, r10 #127.34
+ adox rdi, r10 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r15 #129.31
+ mov r15d, esi #130.31
+ adox r15d, esi #130.31
+ adox r8, r12 #130.31
+ mov r8d, esi #134.34
+ adox r9, r14 #131.34
+ mov r14d, DWORD PTR [-264+rbp] #140.31[spill]
+ adox rcx, r13 #132.34
+ mov r13, r9 #136.34
+ adox rax, rdi #133.34
+ mov rdi, 0xffffffff00000001 #139.34
+ adox r11, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r8b #134.34
+ xor r15d, r15d #134.34
+ mov r12, -1 #134.34
+ add r14d, r8d #140.31
+ sub r13, r12 #136.34
+ mov r12, rcx #137.34
+ mov r8, rax #138.34
+ sbb r12, rdx #137.34
+ mov rdx, r11 #139.34
+ sbb r8, r10 #138.34
+ sbb rdx, rdi #139.34
+ setb r15b #139.34
+ cmp esi, r15d #140.31
+ sbb r14, r10 #140.31
+ setb sil #140.31
+ testq rsi, rsi;
+ cmovnzq r11, rdx;
+ testq rsi, rsi;
+ cmovnzq rax, r8;
+ testq rsi, rsi;
+ cmovnzq rcx, r12;
+ testq rsi, rsi;
+ cmovnzq r9, r13;
+ mov rax, QWORD PTR [-104+rbp] #197.39[spill]
+ mov QWORD PTR [-216+rbp], r13 #9.0
+ mov QWORD PTR [-240+rbp], rdx #196.37
+ mov rcx, QWORD PTR [16+rax] #197.39
+ or rcx, QWORD PTR [24+rax] #152.23
+ or rcx, QWORD PTR [8+rax] #153.23
+ or rcx, QWORD PTR [rax] #154.23
+ mov QWORD PTR [-232+rbp], r8 #196.37
+ mov QWORD PTR [-224+rbp], r12 #196.37
+ mov QWORD PTR [-112+rbp], rcx #154.23[spill]
+ vmovups YMMWORD PTR [-336+rbp], ymm0 #198.20
+ mov r8, rax #198.66
+ xor r14d, r14d #42.32
+ mov rdx, QWORD PTR [-240+rbp] #198.59
+ mov rcx, QWORD PTR [8+r8] #198.80
+ mov rsi, QWORD PTR [r8] #198.87
+ mulx r12, rdi, rsi #38.33
+ mulx r15, r9, rcx #39.33
+ adcx rdi, r15 #42.32
+ mov r15, 0x0ffffffff #47.33
+ mov rax, QWORD PTR [16+r8] #198.73
+ mov r11, QWORD PTR [24+r8] #198.66
+ mulx r8, r10, rax #40.33
+ adcx r9, r8 #43.32
+ mov r8d, 0 #44.32
+ mov QWORD PTR [-192+rbp], rcx #198.80[spill]
+ mulx r13, rcx, r11 #41.33
+ mov rdx, r12 #46.33
+ adcx r10, r13 #44.32
+ mov QWORD PTR [-80+rbp], rsi #198.87[spill]
+ mov esi, r8d #45.30
+ setb r14b #44.32
+ adox esi, r8d #45.30
+ adox r14, rcx #45.30
+ mov ecx, 0 #50.32
+ mov QWORD PTR [-200+rbp], rax #198.73[spill]
+ mov eax, r8d #45.30
+ mov QWORD PTR [-208+rbp], r11 #198.66[spill]
+ mov r11, -1 #46.33
+ seto al #45.30
+ clc #49.32
+ mulx r13, r11, r11 #46.33
+ mulx rsi, r15, r15 #47.33
+ adcx r11, rsi #49.32
+ mov rsi, 0xffffffff00000001 #48.33
+ mulx rax, rsi, rsi #48.33
+ mov edx, r8d #52.30
+ adcx r15, rcx #50.32
+ adcx rax, rcx #51.32
+ mov ecx, r8d #51.32
+ setb cl #51.32
+ adox edx, r8d #52.30
+ adox rcx, rsi #52.30
+ mov rdx, QWORD PTR [-232+rbp] #58.33
+ clc #53.30
+ adcx r12, r13 #53.30
+ mov r13d, r8d #62.32
+ mov r12d, r8d #57.32
+ adcx rdi, r11 #54.32
+ adcx r9, r15 #55.32
+ adcx r10, rax #56.32
+ adcx r14, rcx #57.32
+ mov QWORD PTR [-304+rbp], r14 #57.32[spill]
+ setb r12b #57.32
+ adox r13d, r8d #62.32
+ mov r13, 0x0ffffffff #72.35
+ mov QWORD PTR [-296+rbp], r12 #70.34[spill]
+ mulx r14, r15, QWORD PTR [-80+rbp] #58.33[spill]
+ mulx rax, r12, QWORD PTR [-192+rbp] #59.33[spill]
+ adox r15, rax #62.32
+ mov eax, r8d #64.32
+ mulx r11, rcx, QWORD PTR [-200+rbp] #60.33[spill]
+ adox r12, r11 #63.32
+ mulx rdx, rsi, QWORD PTR [-208+rbp] #61.33[spill]
+ adox rcx, rdx #64.32
+ seto al #64.32
+ clc #65.30
+ adcx rax, rsi #65.30
+ mov esi, r8d #66.34
+ adox esi, r8d #66.34
+ mov rsi, QWORD PTR [-304+rbp] #69.34[spill]
+ adox rdi, r14 #66.34
+ mov r14, QWORD PTR [-296+rbp] #70.34[spill]
+ mov rdx, rdi #71.35
+ adox r9, r15 #67.34
+ mov r15, -1 #71.35
+ adox r10, r12 #68.34
+ adox rsi, rcx #69.34
+ mov ecx, r8d #70.34
+ adox r14, rax #70.34
+ mulx r12, rax, r15 #71.35
+ mov r15, 0xffffffff00000001 #73.35
+ seto cl #70.34
+ clc #74.34
+ mov DWORD PTR [-288+rbp], ecx #70.34[spill]
+ mulx rcx, r11, r13 #72.35
+ mov r13d, 0 #75.34
+ adcx rax, rcx #74.34
+ mulx r15, rcx, r15 #73.35
+ mov edx, r8d #77.31
+ adcx r11, r13 #75.34
+ adcx r15, r13 #76.34
+ mov r13d, r8d #76.34
+ setb r13b #76.34
+ adox edx, r8d #77.31
+ adox r13, rcx #77.31
+ mov rdx, QWORD PTR [-224+rbp] #84.35
+ clc #78.31
+ adcx rdi, r12 #78.31
+ mov edi, r8d #82.34
+ adcx r9, rax #79.34
+ mulx rax, r12, QWORD PTR [-192+rbp] #85.35[spill]
+ adcx r10, r11 #80.34
+ adcx rsi, r15 #81.34
+ adcx r14, r13 #82.34
+ mov r13d, r8d #88.34
+ mov QWORD PTR [-296+rbp], r14 #82.34[spill]
+ setb dil #82.34
+ adox r13d, r8d #88.34
+ mulx r14, r15, QWORD PTR [-80+rbp] #84.35[spill]
+ adox r15, rax #88.34
+ mov DWORD PTR [-280+rbp], edi #82.34[spill]
+ mulx r11, rdi, QWORD PTR [-200+rbp] #86.35[spill]
+ adox r12, r11 #89.34
+ mov r11d, r8d #90.34
+ mulx rdx, rcx, QWORD PTR [-208+rbp] #87.35[spill]
+ adox rdi, rdx #90.34
+ seto r11b #90.34
+ clc #91.31
+ adcx r11, rcx #91.31
+ mov ecx, r8d #92.34
+ adox ecx, r8d #92.34
+ mov rcx, QWORD PTR [-296+rbp] #95.34[spill]
+ adox r9, r14 #92.34
+ mov r14d, r8d #95.34
+ mov eax, DWORD PTR [-288+rbp] #96.34[spill]
+ mov rdx, r9 #97.35
+ adox r10, r15 #93.34
+ adox rsi, r12 #94.34
+ adox rcx, rdi #95.34
+ mov rdi, 0x0ffffffff #98.35
+ seto r14b #95.34
+ xor r15d, r15d #95.34
+ mov r12, -1 #95.34
+ add eax, DWORD PTR [-280+rbp] #96.34[spill]
+ cmp r8d, r14d #96.34
+ mov r14, 0xffffffff00000001 #99.35
+ adcx rax, r11 #96.34
+ mulx r11, rdi, rdi #98.35
+ setb r15b #96.34
+ mov DWORD PTR [-184+rbp], r15d #96.34[spill]
+ mulx r15, r13, r12 #97.35
+ mulx r14, r12, r14 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-216+rbp] #110.35
+ adox r13, r11 #100.34
+ mov r11d, 0 #101.34
+ adox rdi, r11 #101.34
+ adox r14, r11 #102.34
+ mov r11d, r8d #102.34
+ seto r11b #102.34
+ clc #103.31
+ adcx r11, r12 #103.31
+ mov r12d, r8d #104.31
+ adox r12d, r8d #104.31
+ mov r12d, r8d #108.34
+ adox r9, r15 #104.31
+ adox r10, r13 #105.34
+ adox rsi, rdi #106.34
+ mulx r9, rdi, QWORD PTR [-192+rbp] #111.35[spill]
+ adox rcx, r14 #107.34
+ mulx r14, r15, QWORD PTR [-80+rbp] #110.35[spill]
+ adox rax, r11 #108.34
+ mulx r11, r13, QWORD PTR [-200+rbp] #112.35[spill]
+ seto r12b #108.34
+ clc #114.34
+ adcx r15, r9 #114.34
+ adcx rdi, r11 #115.34
+ mulx r9, r11, QWORD PTR [-208+rbp] #113.35[spill]
+ mov edx, r8d #117.31
+ adcx r13, r9 #116.34
+ mov r9d, r8d #116.34
+ setb r9b #116.34
+ adox edx, r8d #117.31
+ adox r9, r11 #117.31
+ clc #118.34
+ mov r11d, DWORD PTR [-184+rbp] #122.34[spill]
+ adcx r10, r14 #118.34
+ mov rdx, r10 #123.35
+ adcx rsi, r15 #119.34
+ mov r15, -1 #123.35
+ adcx rcx, rdi #120.34
+ mulx r15, rdi, r15 #123.35
+ adcx rax, r13 #121.34
+ mov r13d, r8d #121.34
+ setb r13b #121.34
+ xor r14d, r14d #121.34
+ add r11d, r12d #122.34
+ cmp r8d, r13d #122.34
+ mov r12, 0x0ffffffff #124.35
+ adcx r11, r9 #122.34
+ mov r9, 0xffffffff00000001 #125.35
+ mulx r9, r13, r9 #125.35
+ setb r14b #122.34
+ mov DWORD PTR [-176+rbp], r14d #122.34[spill]
+ mulx r12, r14, r12 #124.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox rdi, r12 #126.34
+ mov r12d, 0 #127.34
+ adox r14, r12 #127.34
+ adox r9, r12 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r15 #130.31
+ mov r10d, r8d #134.34
+ adox rsi, rdi #131.34
+ mov edi, DWORD PTR [-176+rbp] #140.31[spill]
+ adox rcx, r14 #132.34
+ mov r14, rsi #136.34
+ adox rax, r9 #133.34
+ mov r9, 0xffffffff00000001 #139.34
+ adox r11, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov r15, -1 #134.34
+ add edi, r10d #140.31
+ sub r14, r15 #136.34
+ mov r15, rcx #137.34
+ mov r10, rax #138.34
+ sbb r15, rdx #137.34
+ mov rdx, r11 #139.34
+ sbb r10, r12 #138.34
+ sbb rdx, r9 #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb rdi, r12 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq r11, rdx;
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, r15;
+ testq r8, r8;
+ cmovnzq rsi, r14;
+ mov QWORD PTR [-216+rbp], r14 #9.0
+ mov QWORD PTR [-240+rbp], rdx #198.34
+ mov QWORD PTR [-232+rbp], r10 #198.34
+ mov QWORD PTR [-224+rbp], r15 #198.34
+ vmovups YMMWORD PTR [-272+rbp], ymm0 #200.21
+ mov r8, QWORD PTR [-88+rbp] #38.33[spill]
+ mov rdx, QWORD PTR [-240+rbp] #200.61
+ xor r14d, r14d #42.32
+ xor r13d, r13d #42.32
+ xor esi, esi #42.32
+ mulx r12, rdi, QWORD PTR [64+r8] #38.33
+ mulx rcx, r9, QWORD PTR [72+r8] #39.33
+ adcx rdi, rcx #42.32
+ mov rcx, -1 #46.33
+ mulx rax, r10, QWORD PTR [80+r8] #40.33
+ adcx r9, rax #43.32
+ mov rax, 0x0ffffffff #47.33
+ mulx r15, r11, QWORD PTR [88+r8] #41.33
+ mov r8d, 0 #44.32
+ adcx r10, r15 #44.32
+ setb r14b #44.32
+ mov rdx, r12 #46.33
+ adox r13d, r8d #45.30
+ adox r14, r11 #45.30
+ mulx r13, r11, rcx #46.33
+ mov ecx, 0 #50.32
+ seto sil #45.30
+ clc #49.32
+ mulx rsi, r15, rax #47.33
+ adcx r11, rsi #49.32
+ mov rsi, 0xffffffff00000001 #48.33
+ mulx rax, rsi, rsi #48.33
+ mov edx, r8d #52.30
+ adcx r15, rcx #50.32
+ adcx rax, rcx #51.32
+ mov ecx, r8d #51.32
+ setb cl #51.32
+ adox edx, r8d #52.30
+ adox rcx, rsi #52.30
+ mov rdx, QWORD PTR [-232+rbp] #58.33
+ clc #53.30
+ adcx r12, r13 #53.30
+ mov r13, QWORD PTR [-88+rbp] #58.33[spill]
+ adcx rdi, r11 #54.32
+ adcx r9, r15 #55.32
+ mov r15d, r8d #57.32
+ adcx r10, rax #56.32
+ mulx rax, r11, QWORD PTR [72+r13] #59.33
+ adcx r14, rcx #57.32
+ mov QWORD PTR [-184+rbp], r14 #57.32[spill]
+ setb r15b #57.32
+ mov QWORD PTR [-176+rbp], r15 #70.34[spill]
+ mulx r12, r14, QWORD PTR [64+r13] #58.33
+ mulx r15, rcx, QWORD PTR [80+r13] #60.33
+ mulx rdx, rsi, QWORD PTR [88+r13] #61.33
+ mov r13d, r8d #62.32
+ adox r13d, r8d #62.32
+ mov r13d, 0 #75.34
+ adox r14, rax #62.32
+ mov eax, r8d #64.32
+ adox r11, r15 #63.32
+ mov r15d, r8d #66.34
+ adox rcx, rdx #64.32
+ seto al #64.32
+ clc #65.30
+ adcx rax, rsi #65.30
+ adox r15d, r8d #66.34
+ mov rsi, QWORD PTR [-184+rbp] #69.34[spill]
+ mov r15, 0xffffffff00000001 #73.35
+ adox rdi, r12 #66.34
+ mov r12d, r8d #70.34
+ mov rdx, rdi #71.35
+ adox r9, r14 #67.34
+ mov r14, QWORD PTR [-176+rbp] #70.34[spill]
+ adox r10, r11 #68.34
+ mov r11, 0x0ffffffff #72.35
+ adox rsi, rcx #69.34
+ mov rcx, -1 #71.35
+ adox r14, rax #70.34
+ seto r12b #70.34
+ clc #74.34
+ mov DWORD PTR [-168+rbp], r12d #70.34[spill]
+ mulx r12, rax, rcx #71.35
+ mulx rcx, r11, r11 #72.35
+ adcx rax, rcx #74.34
+ mulx r15, rcx, r15 #73.35
+ mov edx, r8d #77.31
+ adcx r11, r13 #75.34
+ adcx r15, r13 #76.34
+ mov r13d, r8d #76.34
+ setb r13b #76.34
+ adox edx, r8d #77.31
+ adox r13, rcx #77.31
+ mov rdx, QWORD PTR [-224+rbp] #84.35
+ clc #78.31
+ adcx rdi, r12 #78.31
+ mov edi, r8d #82.34
+ adcx r9, rax #79.34
+ adcx r10, r11 #80.34
+ adcx rsi, r15 #81.34
+ adcx r14, r13 #82.34
+ mov r13, QWORD PTR [-88+rbp] #84.35[spill]
+ setb dil #82.34
+ mov QWORD PTR [-176+rbp], r14 #82.34[spill]
+ mov DWORD PTR [-160+rbp], edi #82.34[spill]
+ mulx r12, r14, QWORD PTR [64+r13] #84.35
+ mulx rax, r11, QWORD PTR [72+r13] #85.35
+ mulx r15, rdi, QWORD PTR [80+r13] #86.35
+ mulx rdx, rcx, QWORD PTR [88+r13] #87.35
+ mov r13d, r8d #88.34
+ adox r13d, r8d #88.34
+ mov r13d, r8d #90.34
+ adox r14, rax #88.34
+ adox r11, r15 #89.34
+ mov r15d, r8d #95.34
+ adox rdi, rdx #90.34
+ seto r13b #90.34
+ clc #91.31
+ adcx r13, rcx #91.31
+ mov ecx, r8d #92.34
+ adox ecx, r8d #92.34
+ mov rcx, QWORD PTR [-176+rbp] #95.34[spill]
+ adox r9, r12 #92.34
+ mov eax, DWORD PTR [-168+rbp] #96.34[spill]
+ mov rdx, r9 #97.35
+ adox r10, r14 #93.34
+ mov r14, 0x0ffffffff #98.35
+ adox rsi, r11 #94.34
+ adox rcx, rdi #95.34
+ seto r15b #95.34
+ xor r12d, r12d #95.34
+ mov rdi, -1 #95.34
+ add eax, DWORD PTR [-160+rbp] #96.34[spill]
+ cmp r8d, r15d #96.34
+ adcx rax, r13 #96.34
+ mulx r15, r13, rdi #97.35
+ setb r12b #96.34
+ mov DWORD PTR [-152+rbp], r12d #96.34[spill]
+ mov r12, 0xffffffff00000001 #99.35
+ mulx r14, rdi, r14 #98.35
+ mulx r11, r12, r12 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-216+rbp] #110.35
+ adox r13, r14 #100.34
+ mov r14d, 0 #101.34
+ adox rdi, r14 #101.34
+ adox r11, r14 #102.34
+ mov r14d, r8d #102.34
+ seto r14b #102.34
+ clc #103.31
+ adcx r14, r12 #103.31
+ mov r12d, r8d #104.31
+ adox r12d, r8d #104.31
+ mov r12, QWORD PTR [-88+rbp] #110.35[spill]
+ adox r9, r15 #104.31
+ mov r9d, r8d #108.34
+ adox r10, r13 #105.34
+ mulx r13, r15, QWORD PTR [64+r12] #110.35
+ adox rsi, rdi #106.34
+ adox rcx, r11 #107.34
+ adox rax, r14 #108.34
+ mulx r11, r14, QWORD PTR [72+r12] #111.35
+ seto r9b #108.34
+ clc #114.34
+ adcx r15, r11 #114.34
+ mulx r11, rdi, QWORD PTR [80+r12] #112.35
+ adcx r14, r11 #115.34
+ mulx r12, r11, QWORD PTR [88+r12] #113.35
+ mov edx, r8d #117.31
+ adcx rdi, r12 #116.34
+ mov r12d, r8d #116.34
+ setb r12b #116.34
+ adox edx, r8d #117.31
+ adox r12, r11 #117.31
+ clc #118.34
+ adcx r10, r13 #118.34
+ mov rdx, r10 #123.35
+ adcx rsi, r15 #119.34
+ mov r15d, r8d #121.34
+ adcx rcx, r14 #120.34
+ mov r14, 0x0ffffffff #124.35
+ adcx rax, rdi #121.34
+ mov edi, DWORD PTR [-152+rbp] #122.34[spill]
+ setb r15b #121.34
+ add edi, r9d #122.34
+ xor r9d, r9d #122.34
+ cmp r8d, r15d #122.34
+ mov r15, -1 #123.35
+ adcx rdi, r12 #122.34
+ mulx r12, r11, r15 #123.35
+ setb r9b #122.34
+ mov DWORD PTR [-144+rbp], r9d #122.34[spill]
+ mov r9, 0xffffffff00000001 #125.35
+ mulx r14, r15, r14 #124.35
+ mulx r9, r13, r9 #125.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox r11, r14 #126.34
+ mov r14d, 0 #127.34
+ adox r15, r14 #127.34
+ adox r9, r14 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r12 #130.31
+ mov r10d, r8d #134.34
+ adox rsi, r11 #131.34
+ mov r11d, DWORD PTR [-144+rbp] #140.31[spill]
+ adox rcx, r15 #132.34
+ mov r15, rsi #136.34
+ adox rax, r9 #133.34
+ mov r9, 0xffffffff00000001 #139.34
+ adox rdi, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov r12, -1 #134.34
+ add r11d, r10d #140.31
+ sub r15, r12 #136.34
+ mov r12, rcx #137.34
+ mov r10, rax #138.34
+ sbb r12, rdx #137.34
+ mov rdx, rdi #139.34
+ sbb r10, r14 #138.34
+ sbb rdx, r9 #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb r11, r14 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq rdi, rdx;
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, r12;
+ testq r8, r8;
+ cmovnzq rsi, r15;
+ mov QWORD PTR [-248+rbp], r15 #9.0
+ mov QWORD PTR [-272+rbp], rdx #200.35
+ mov QWORD PTR [-264+rbp], r10 #200.35
+ mov QWORD PTR [-256+rbp], r12 #200.35
+ vmovups YMMWORD PTR [-304+rbp], ymm0 #201.19
+ mov r15, QWORD PTR [-88+rbp] #159.32[spill]
+ xor r11d, r11d #9.0
+ mov r12, QWORD PTR [-200+rbp] #152.23[spill]
+ xor edi, edi #168.32
+ or r12, QWORD PTR [-208+rbp] #152.23[spill]
+ mov rsi, QWORD PTR [-336+rbp] #159.32
+ mov r9, QWORD PTR [-192+rbp] #153.23[spill]
+ or r9, r12 #153.23
+ xor r12d, r12d #162.32
+ xor r10d, r10d #159.32
+ sub rsi, QWORD PTR [r15] #159.32
+ mov r14, QWORD PTR [-328+rbp] #160.32
+ sbb r14, QWORD PTR [8+r15] #160.32
+ mov rcx, QWORD PTR [-320+rbp] #161.32
+ sbb rcx, QWORD PTR [16+r15] #161.32
+ mov r13, QWORD PTR [-312+rbp] #162.32
+ sbb r13, QWORD PTR [24+r15] #162.32
+ setb r10b #162.32
+ xor r8d, r8d #162.32
+ or QWORD PTR [-80+rbp], r9 #154.23[spill]
+ mov r9, -1 #9.0
+ testq r10, r10;
+ cmovnzq r9, r11;
+ xor edx, edx #165.32
+ mov eax, r11d #167.32
+ mov r9, 0xffffffff00000001 #170.30
+ adcx rsi, r11 #165.32
+ mov rdx, QWORD PTR [64+r15] #38.33
+ adcx r14, rax #167.32
+ mov QWORD PTR [-184+rbp], rsi #165.32[spill]
+ adcx rcx, rdi #168.32
+ mov QWORD PTR [-168+rbp], rcx #168.32[spill]
+ setb r8b #168.32
+ xor r15d, r15d #168.32
+ and r11, r9 #170.30
+ cmp r12d, r8d #170.30
+ mov QWORD PTR [-296+rbp], rcx #201.33
+ adcx r13, r11 #170.30
+ mov QWORD PTR [-160+rbp], r13 #170.30[spill]
+ adox r15d, r12d #42.32
+ mov QWORD PTR [-304+rbp], r13 #201.33
+ mov r15d, r12d #44.32
+ mulx r8, r10, r13 #38.33
+ mulx rcx, r13, rcx #39.33
+ adox r10, rcx #42.32
+ mov rcx, -1 #46.33
+ mulx rax, r11, r14 #40.33
+ adox r13, rax #43.32
+ mov QWORD PTR [-280+rbp], rsi #201.33
+ mov QWORD PTR [-176+rbp], r14 #167.32[spill]
+ mov QWORD PTR [-288+rbp], r14 #201.33
+ mulx r14, rsi, rsi #41.33
+ mov rdx, r8 #46.33
+ adox r11, r14 #44.32
+ seto r15b #44.32
+ clc #45.30
+ adcx r15, rsi #45.30
+ mov QWORD PTR [-152+rbp], r15 #45.30[spill]
+ mulx r15, r14, rcx #46.33
+ mov ecx, r12d #49.32
+ adox ecx, r12d #49.32
+ mov rsi, 0x0ffffffff #47.33
+ mulx rax, rsi, rsi #47.33
+ mov ecx, r12d #51.32
+ adox r14, rax #49.32
+ mov eax, r12d #53.30
+ mulx r9, rdx, r9 #48.33
+ adox rsi, rdi #50.32
+ adox r9, rdi #51.32
+ seto cl #51.32
+ clc #52.30
+ adcx rcx, rdx #52.30
+ adox eax, r12d #53.30
+ adox r8, r15 #53.30
+ mov r15, QWORD PTR [-88+rbp] #58.33[spill]
+ adox r10, r14 #54.32
+ mov rdx, QWORD PTR [72+r15] #58.33
+ adox r13, rsi #55.32
+ mov rsi, QWORD PTR [-152+rbp] #57.32[spill]
+ adox r11, r9 #56.32
+ mulx r8, rdi, QWORD PTR [-160+rbp] #58.33[spill]
+ adox rsi, rcx #57.32
+ mov ecx, r12d #57.32
+ mulx r9, rax, QWORD PTR [-168+rbp] #59.33[spill]
+ seto cl #57.32
+ clc #62.32
+ adcx rdi, r9 #62.32
+ mulx r14, r9, QWORD PTR [-176+rbp] #60.33[spill]
+ adcx rax, r14 #63.32
+ mulx r15, r14, QWORD PTR [-184+rbp] #61.33[spill]
+ mov edx, r12d #65.30
+ adcx r9, r15 #64.32
+ mov r15d, r12d #64.32
+ setb r15b #64.32
+ adox edx, r12d #65.30
+ adox r15, r14 #65.30
+ clc #66.34
+ adcx r10, r8 #66.34
+ mov r8d, r12d #70.34
+ mov rdx, r10 #71.35
+ adcx r13, rdi #67.34
+ mov rdi, -1 #71.35
+ adcx r11, rax #68.34
+ adcx rsi, r9 #69.34
+ mov r9, 0x0ffffffff #72.35
+ adcx rcx, r15 #70.34
+ mulx rax, r15, r9 #72.35
+ mov r9, 0xffffffff00000001 #73.35
+ setb r8b #70.34
+ mov DWORD PTR [-144+rbp], r8d #70.34[spill]
+ mulx rdi, r8, rdi #71.35
+ mulx r9, r14, r9 #73.35
+ mov edx, r12d #74.34
+ adox edx, r12d #74.34
+ adox r8, rax #74.34
+ mov eax, 0 #75.34
+ adox r15, rax #75.34
+ adox r9, rax #76.34
+ mov eax, r12d #76.34
+ seto al #76.34
+ clc #77.31
+ adcx rax, r14 #77.31
+ mov r14d, r12d #78.31
+ adox r14d, r12d #78.31
+ mov r14, QWORD PTR [-88+rbp] #84.35[spill]
+ adox r10, rdi #78.31
+ mov r10d, r12d #82.34
+ adox r13, r8 #79.34
+ mov rdx, QWORD PTR [80+r14] #84.35
+ adox r11, r15 #80.34
+ mulx rdi, r15, QWORD PTR [-168+rbp] #85.35[spill]
+ adox rsi, r9 #81.34
+ adox rcx, rax #82.34
+ mulx rax, r8, QWORD PTR [-160+rbp] #84.35[spill]
+ seto r10b #82.34
+ clc #88.34
+ adcx r8, rdi #88.34
+ mulx r9, rdi, QWORD PTR [-176+rbp] #86.35[spill]
+ adcx r15, r9 #89.34
+ mulx r14, r9, QWORD PTR [-184+rbp] #87.35[spill]
+ mov edx, r12d #91.31
+ adcx rdi, r14 #90.34
+ mov r14d, r12d #90.34
+ setb r14b #90.34
+ adox edx, r12d #91.31
+ adox r14, r9 #91.31
+ clc #92.34
+ adcx r13, rax #92.34
+ mov eax, DWORD PTR [-144+rbp] #96.34[spill]
+ mov rdx, r13 #97.35
+ adcx r11, r8 #93.34
+ mov r8, 0x0ffffffff #98.35
+ adcx rsi, r15 #94.34
+ mov r15d, r12d #95.34
+ adcx rcx, rdi #95.34
+ setb r15b #95.34
+ mov r9, -1 #95.34
+ add eax, r10d #96.34
+ xor r10d, r10d #96.34
+ cmp r12d, r15d #96.34
+ adcx rax, r14 #96.34
+ mulx r15, r14, r8 #98.35
+ mov r8, 0xffffffff00000001 #99.35
+ setb r10b #96.34
+ mov DWORD PTR [-136+rbp], r10d #96.34[spill]
+ mulx r10, r9, r9 #97.35
+ mulx r8, rdi, r8 #99.35
+ mov edx, r12d #100.34
+ adox edx, r12d #100.34
+ adox r9, r15 #100.34
+ mov r15d, 0 #101.34
+ adox r14, r15 #101.34
+ adox r8, r15 #102.34
+ mov r15d, r12d #102.34
+ seto r15b #102.34
+ clc #103.31
+ adcx r15, rdi #103.31
+ mov edi, r12d #104.31
+ adox edi, r12d #104.31
+ adox r13, r10 #104.31
+ mov r13d, r12d #108.34
+ adox r11, r9 #105.34
+ adox rsi, r14 #106.34
+ adox rcx, r8 #107.34
+ adox rax, r15 #108.34
+ mov r15, QWORD PTR [-88+rbp] #110.35[spill]
+ seto r13b #108.34
+ clc #114.34
+ mov rdx, QWORD PTR [88+r15] #110.35
+ mulx r10, r9, QWORD PTR [-160+rbp] #110.35[spill]
+ mulx r14, r8, QWORD PTR [-168+rbp] #111.35[spill]
+ adcx r9, r14 #114.34
+ mulx rdi, r14, QWORD PTR [-176+rbp] #112.35[spill]
+ adcx r8, rdi #115.34
+ mulx r15, rdi, QWORD PTR [-184+rbp] #113.35[spill]
+ mov edx, r12d #117.31
+ adcx r14, r15 #116.34
+ mov r15d, r12d #116.34
+ setb r15b #116.34
+ adox edx, r12d #117.31
+ adox r15, rdi #117.31
+ clc #118.34
+ adcx r11, r10 #118.34
+ mov rdx, r11 #123.35
+ adcx rsi, r9 #119.34
+ mov r9d, r12d #121.34
+ adcx rcx, r8 #120.34
+ mov r8, 0x0ffffffff #124.35
+ adcx rax, r14 #121.34
+ mov r14d, DWORD PTR [-136+rbp] #122.34[spill]
+ setb r9b #121.34
+ add r14d, r13d #122.34
+ xor r13d, r13d #122.34
+ cmp r12d, r9d #122.34
+ mov r9, -1 #123.35
+ adcx r14, r15 #122.34
+ mulx r15, rdi, r9 #123.35
+ setb r13b #122.34
+ mov DWORD PTR [-128+rbp], r13d #122.34[spill]
+ mov r13, 0xffffffff00000001 #125.35
+ mulx r8, r9, r8 #124.35
+ mulx r13, r10, r13 #125.35
+ mov edx, r12d #126.34
+ adox edx, r12d #126.34
+ mov edx, r12d #128.34
+ adox rdi, r8 #126.34
+ mov r8d, 0 #127.34
+ adox r9, r8 #127.34
+ adox r13, r8 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r10 #129.31
+ mov r10d, r12d #130.31
+ adox r10d, r12d #130.31
+ adox r11, r15 #130.31
+ mov r15d, r12d #134.34
+ adox rsi, rdi #131.34
+ mov edi, DWORD PTR [-128+rbp] #140.31[spill]
+ adox rcx, r9 #132.34
+ mov r9, rsi #136.34
+ adox rax, r13 #133.34
+ mov r13, 0xffffffff00000001 #139.34
+ adox r14, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r15b #134.34
+ xor r10d, r10d #134.34
+ mov r11, -1 #134.34
+ add edi, r15d #140.31
+ sub r9, r11 #136.34
+ mov r15, rcx #137.34
+ mov r11, r14 #139.34
+ sbb r15, rdx #137.34
+ mov rdx, rax #138.34
+ sbb rdx, r8 #138.34
+ sbb r11, r13 #139.34
+ setb r10b #139.34
+ cmp r12d, r10d #140.31
+ sbb rdi, r8 #140.31
+ setb r12b #140.31
+ testq r12, r12;
+ cmovnzq r14, r11;
+ testq r12, r12;
+ cmovnzq rax, rdx;
+ testq r12, r12;
+ cmovnzq rcx, r15;
+ testq r12, r12;
+ cmovnzq rsi, r9;
+ mov rax, QWORD PTR [-96+rbp] #9.0[spill]
+ mov QWORD PTR [72+rax], rdx #146.1
+ mov rdx, QWORD PTR [-104+rbp] #203.39[spill]
+ mov QWORD PTR [88+rax], r9 #9.0
+ mov QWORD PTR [64+rax], r11 #145.1
+ mov QWORD PTR [80+rax], r15 #147.1
+ mov rcx, QWORD PTR [48+rdx] #203.39
+ or rcx, QWORD PTR [56+rdx] #152.23
+ or rcx, QWORD PTR [40+rdx] #153.23
+ or rcx, QWORD PTR [32+rdx] #154.23
+ or QWORD PTR [-80+rbp], rcx #204.28[spill]
+ vmovups YMMWORD PTR [-240+rbp], ymm0 #205.20
+ mov r8, rdx #38.33
+ mov rdx, QWORD PTR [-272+rbp] #205.62
+ xor r14d, r14d #42.32
+ xor r13d, r13d #42.32
+ xor esi, esi #42.32
+ mulx r12, rdi, QWORD PTR [32+r8] #38.33
+ mulx rcx, r9, QWORD PTR [40+r8] #39.33
+ adcx rdi, rcx #42.32
+ mov rcx, -1 #46.33
+ mulx rax, r10, QWORD PTR [48+r8] #40.33
+ adcx r9, rax #43.32
+ mov rax, 0x0ffffffff #47.33
+ mulx r15, r11, QWORD PTR [56+r8] #41.33
+ mov r8d, 0 #44.32
+ adcx r10, r15 #44.32
+ setb r14b #44.32
+ mov rdx, r12 #46.33
+ adox r13d, r8d #45.30
+ adox r14, r11 #45.30
+ mulx r13, r11, rcx #46.33
+ mov ecx, 0 #50.32
+ seto sil #45.30
+ clc #49.32
+ mulx rsi, r15, rax #47.33
+ adcx r11, rsi #49.32
+ mov rsi, 0xffffffff00000001 #48.33
+ mulx rax, rsi, rsi #48.33
+ mov edx, r8d #52.30
+ adcx r15, rcx #50.32
+ adcx rax, rcx #51.32
+ mov ecx, r8d #51.32
+ setb cl #51.32
+ adox edx, r8d #52.30
+ adox rcx, rsi #52.30
+ mov rdx, QWORD PTR [-264+rbp] #58.33
+ clc #53.30
+ adcx r12, r13 #53.30
+ mov r13, QWORD PTR [-104+rbp] #58.33[spill]
+ adcx rdi, r11 #54.32
+ adcx r9, r15 #55.32
+ mov r15d, r8d #57.32
+ adcx r10, rax #56.32
+ mulx rax, r11, QWORD PTR [40+r13] #59.33
+ adcx r14, rcx #57.32
+ mov QWORD PTR [-208+rbp], r14 #57.32[spill]
+ setb r15b #57.32
+ mov QWORD PTR [-200+rbp], r15 #70.34[spill]
+ mulx r12, r14, QWORD PTR [32+r13] #58.33
+ mulx r15, rcx, QWORD PTR [48+r13] #60.33
+ mulx rdx, rsi, QWORD PTR [56+r13] #61.33
+ mov r13d, r8d #62.32
+ adox r13d, r8d #62.32
+ mov r13d, 0 #75.34
+ adox r14, rax #62.32
+ mov eax, r8d #64.32
+ adox r11, r15 #63.32
+ mov r15d, r8d #66.34
+ adox rcx, rdx #64.32
+ seto al #64.32
+ clc #65.30
+ adcx rax, rsi #65.30
+ adox r15d, r8d #66.34
+ mov rsi, QWORD PTR [-208+rbp] #69.34[spill]
+ mov r15, 0xffffffff00000001 #73.35
+ adox rdi, r12 #66.34
+ mov r12d, r8d #70.34
+ mov rdx, rdi #71.35
+ adox r9, r14 #67.34
+ mov r14, QWORD PTR [-200+rbp] #70.34[spill]
+ adox r10, r11 #68.34
+ mov r11, 0x0ffffffff #72.35
+ adox rsi, rcx #69.34
+ mov rcx, -1 #71.35
+ adox r14, rax #70.34
+ seto r12b #70.34
+ clc #74.34
+ mov DWORD PTR [-192+rbp], r12d #70.34[spill]
+ mulx r12, rax, rcx #71.35
+ mulx rcx, r11, r11 #72.35
+ adcx rax, rcx #74.34
+ mulx r15, rcx, r15 #73.35
+ mov edx, r8d #77.31
+ adcx r11, r13 #75.34
+ adcx r15, r13 #76.34
+ mov r13d, r8d #76.34
+ setb r13b #76.34
+ adox edx, r8d #77.31
+ adox r13, rcx #77.31
+ mov rdx, QWORD PTR [-256+rbp] #84.35
+ clc #78.31
+ adcx rdi, r12 #78.31
+ mov edi, r8d #82.34
+ adcx r9, rax #79.34
+ adcx r10, r11 #80.34
+ adcx rsi, r15 #81.34
+ adcx r14, r13 #82.34
+ mov r13, QWORD PTR [-104+rbp] #84.35[spill]
+ setb dil #82.34
+ mov QWORD PTR [-200+rbp], r14 #82.34[spill]
+ mov DWORD PTR [-184+rbp], edi #82.34[spill]
+ mulx r12, r14, QWORD PTR [32+r13] #84.35
+ mulx rax, r11, QWORD PTR [40+r13] #85.35
+ mulx r15, rdi, QWORD PTR [48+r13] #86.35
+ mulx rdx, rcx, QWORD PTR [56+r13] #87.35
+ mov r13d, r8d #88.34
+ adox r13d, r8d #88.34
+ mov r13d, r8d #90.34
+ adox r14, rax #88.34
+ adox r11, r15 #89.34
+ mov r15d, r8d #95.34
+ adox rdi, rdx #90.34
+ seto r13b #90.34
+ clc #91.31
+ adcx r13, rcx #91.31
+ mov ecx, r8d #92.34
+ adox ecx, r8d #92.34
+ mov rcx, QWORD PTR [-200+rbp] #95.34[spill]
+ adox r9, r12 #92.34
+ mov eax, DWORD PTR [-192+rbp] #96.34[spill]
+ mov rdx, r9 #97.35
+ adox r10, r14 #93.34
+ mov r14, 0x0ffffffff #98.35
+ adox rsi, r11 #94.34
+ adox rcx, rdi #95.34
+ seto r15b #95.34
+ xor r12d, r12d #95.34
+ mov rdi, -1 #95.34
+ add eax, DWORD PTR [-184+rbp] #96.34[spill]
+ cmp r8d, r15d #96.34
+ adcx rax, r13 #96.34
+ mulx r15, r13, rdi #97.35
+ setb r12b #96.34
+ mov DWORD PTR [-176+rbp], r12d #96.34[spill]
+ mov r12, 0xffffffff00000001 #99.35
+ mulx r14, rdi, r14 #98.35
+ mulx r11, r12, r12 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-248+rbp] #110.35
+ adox r13, r14 #100.34
+ mov r14d, 0 #101.34
+ adox rdi, r14 #101.34
+ adox r11, r14 #102.34
+ mov r14d, r8d #102.34
+ seto r14b #102.34
+ clc #103.31
+ adcx r14, r12 #103.31
+ mov r12d, r8d #104.31
+ adox r12d, r8d #104.31
+ mov r12, QWORD PTR [-104+rbp] #110.35[spill]
+ adox r9, r15 #104.31
+ mov r9d, r8d #108.34
+ adox r10, r13 #105.34
+ mulx r13, r15, QWORD PTR [32+r12] #110.35
+ adox rsi, rdi #106.34
+ adox rcx, r11 #107.34
+ adox rax, r14 #108.34
+ mulx r11, r14, QWORD PTR [40+r12] #111.35
+ seto r9b #108.34
+ clc #114.34
+ adcx r15, r11 #114.34
+ mulx r11, rdi, QWORD PTR [48+r12] #112.35
+ adcx r14, r11 #115.34
+ mulx r12, r11, QWORD PTR [56+r12] #113.35
+ mov edx, r8d #117.31
+ adcx rdi, r12 #116.34
+ mov r12d, r8d #116.34
+ setb r12b #116.34
+ adox edx, r8d #117.31
+ adox r12, r11 #117.31
+ clc #118.34
+ adcx r10, r13 #118.34
+ mov rdx, r10 #123.35
+ adcx rsi, r15 #119.34
+ mov r15d, r8d #121.34
+ adcx rcx, r14 #120.34
+ mov r14, 0x0ffffffff #124.35
+ adcx rax, rdi #121.34
+ mov edi, DWORD PTR [-176+rbp] #122.34[spill]
+ setb r15b #121.34
+ add edi, r9d #122.34
+ xor r9d, r9d #122.34
+ cmp r8d, r15d #122.34
+ mov r15, -1 #123.35
+ adcx rdi, r12 #122.34
+ mulx r12, r11, r15 #123.35
+ setb r9b #122.34
+ mov DWORD PTR [-168+rbp], r9d #122.34[spill]
+ mov r9, 0xffffffff00000001 #125.35
+ mulx r14, r15, r14 #124.35
+ mulx r9, r13, r9 #125.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox r11, r14 #126.34
+ mov r14d, 0 #127.34
+ adox r15, r14 #127.34
+ adox r9, r14 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r12 #130.31
+ mov r10d, r8d #134.34
+ adox rsi, r11 #131.34
+ mov r11d, DWORD PTR [-168+rbp] #140.31[spill]
+ adox rcx, r15 #132.34
+ mov r15, rsi #136.34
+ adox rax, r9 #133.34
+ mov r9, 0xffffffff00000001 #139.34
+ adox rdi, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov r12, -1 #134.34
+ add r11d, r10d #140.31
+ sub r15, r12 #136.34
+ mov r12, rcx #137.34
+ mov r10, rax #138.34
+ sbb r12, rdx #137.34
+ mov rdx, rdi #139.34
+ sbb r10, r14 #138.34
+ sbb rdx, r9 #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb r11, r14 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq rdi, rdx;
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, r12;
+ testq r8, r8;
+ cmovnzq rsi, r15;
+ mov QWORD PTR [-216+rbp], r15 #9.0
+ mov QWORD PTR [-240+rbp], rdx #205.34
+ mov QWORD PTR [-232+rbp], r10 #205.34
+ mov QWORD PTR [-224+rbp], r12 #205.34
+ vmovups YMMWORD PTR [-336+rbp], ymm0 #206.19
+ mov rcx, QWORD PTR [-88+rbp] #159.32[spill]
+ xor eax, eax #162.32
+ mov r9, QWORD PTR [-240+rbp] #159.32
+ xor esi, esi #162.32
+ mov r11, QWORD PTR [-232+rbp] #160.32
+ mov rdi, -1 #9.0
+ sub r9, QWORD PTR [32+rcx] #159.32
+ mov r13, QWORD PTR [-224+rbp] #161.32
+ sbb r11, QWORD PTR [40+rcx] #160.32
+ mov r14, 0xffffffff00000001 #170.30
+ mov rdx, QWORD PTR [-216+rbp] #162.32
+ sbb r13, QWORD PTR [48+rcx] #161.32
+ sbb rdx, QWORD PTR [56+rcx] #162.32
+ setb sil #162.32
+ xor r12d, r12d #162.32
+ xor r15d, r15d #162.32
+ xor ecx, ecx #162.32
+ testq rsi, rsi;
+ cmovnzq rdi, rcx;
+ xor r8d, r8d #165.32
+ mov r10d, ecx #167.32
+ adcx r9, rcx #165.32
+ mov QWORD PTR [-312+rbp], r9 #206.33
+ adcx r11, r10 #167.32
+ mov QWORD PTR [-320+rbp], r11 #206.33
+ adcx r13, r12 #168.32
+ mov QWORD PTR [-328+rbp], r13 #206.33
+ setb r15b #168.32
+ and rcx, r14 #170.30
+ cmp eax, r15d #170.30
+ adcx rdx, rcx #170.30
+ mov QWORD PTR [-336+rbp], rdx #206.33
+ vmovups YMMWORD PTR [-176+rbp], ymm0 #207.20
+ setb al #170.30
+ mov rdx, QWORD PTR [-304+rbp] #207.59
+ mov r13, -1 #46.33
+ xor r9d, r9d #42.32
+ mov r15, 0xffffffff00000001 #48.33
+ mulx r8, rdi, QWORD PTR [-296+rbp] #39.33
+ mulx r11, rsi, rdx #38.33
+ adox rsi, r8 #42.32
+ mov r8d, 0 #44.32
+ mulx rcx, r10, QWORD PTR [-288+rbp] #40.33
+ adox rdi, rcx #43.32
+ mulx rax, r12, QWORD PTR [-280+rbp] #41.33
+ mov rdx, r11 #46.33
+ adox r10, rax #44.32
+ mov rcx, 0x0ffffffff #47.33
+ mulx rax, r15, r15 #48.33
+ seto r9b #44.32
+ clc #45.30
+ adcx r9, r12 #45.30
+ mulx r13, r12, r13 #46.33
+ mulx rcx, r14, rcx #47.33
+ mov edx, r8d #49.32
+ adox edx, r8d #49.32
+ mov rdx, QWORD PTR [-296+rbp] #58.33
+ adox r12, rcx #49.32
+ mov ecx, 0 #50.32
+ adox r14, rcx #50.32
+ adox rax, rcx #51.32
+ mov ecx, r8d #51.32
+ seto cl #51.32
+ clc #52.30
+ adcx rcx, r15 #52.30
+ mov r15d, r8d #53.30
+ adox r15d, r8d #53.30
+ adox r11, r13 #53.30
+ mulx r11, r13, rdx #59.33
+ adox rsi, r12 #54.32
+ adox rdi, r14 #55.32
+ mulx r12, r14, QWORD PTR [-304+rbp] #58.33
+ adox r10, rax #56.32
+ mulx rax, r15, QWORD PTR [-288+rbp] #60.33
+ adox r9, rcx #57.32
+ mov ecx, r8d #57.32
+ seto cl #57.32
+ clc #62.32
+ adcx r14, r11 #62.32
+ adcx r13, rax #63.32
+ mulx r11, rax, QWORD PTR [-280+rbp] #61.33
+ mov edx, r8d #65.30
+ adcx r15, r11 #64.32
+ mov r11d, r8d #64.32
+ setb r11b #64.32
+ adox edx, r8d #65.30
+ adox r11, rax #65.30
+ mov eax, r8d #65.30
+ seto al #65.30
+ clc #66.34
+ adcx rsi, r12 #66.34
+ mov r12, -1 #71.35
+ mov rdx, rsi #71.35
+ adcx rdi, r14 #67.34
+ mov r14, 0x0ffffffff #72.35
+ adcx r10, r13 #68.34
+ mov r13, 0xffffffff00000001 #73.35
+ adcx r9, r15 #69.34
+ mov r15d, r8d #70.34
+ adcx rcx, r11 #70.34
+ setb r15b #70.34
+ mov DWORD PTR [-272+rbp], r15d #70.34[spill]
+ mulx rax, r15, r12 #71.35
+ mulx r12, r11, r14 #72.35
+ mulx r14, r13, r13 #73.35
+ mov edx, r8d #74.34
+ adox edx, r8d #74.34
+ mov rdx, QWORD PTR [-288+rbp] #84.35
+ adox r15, r12 #74.34
+ mov r12d, 0 #75.34
+ adox r11, r12 #75.34
+ adox r14, r12 #76.34
+ mov r12d, r8d #76.34
+ seto r12b #76.34
+ clc #77.31
+ adcx r12, r13 #77.31
+ mov r13d, r8d #78.31
+ adox r13d, r8d #78.31
+ adox rsi, rax #78.31
+ mulx rax, r13, QWORD PTR [-296+rbp] #85.35
+ adox rdi, r15 #79.34
+ adox r10, r11 #80.34
+ mulx r11, r15, rdx #86.35
+ adox r9, r14 #81.34
+ mov r14d, r8d #82.34
+ adox rcx, r12 #82.34
+ mulx rsi, r12, QWORD PTR [-304+rbp] #84.35
+ seto r14b #82.34
+ clc #88.34
+ adcx r12, rax #88.34
+ adcx r13, r11 #89.34
+ mulx r11, rax, QWORD PTR [-280+rbp] #87.35
+ mov edx, r8d #91.31
+ adcx r15, r11 #90.34
+ mov r11d, r8d #90.34
+ setb r11b #90.34
+ adox edx, r8d #91.31
+ adox r11, rax #91.31
+ clc #92.34
+ mov eax, DWORD PTR [-272+rbp] #96.34[spill]
+ adcx rdi, rsi #92.34
+ mov esi, r8d #95.34
+ mov rdx, rdi #97.35
+ adcx r10, r12 #93.34
+ adcx r9, r13 #94.34
+ adcx rcx, r15 #95.34
+ setb sil #95.34
+ mov r15, -1 #95.34
+ add eax, r14d #96.34
+ cmp r8d, esi #96.34
+ mov r14, 0x0ffffffff #98.35
+ mulx r15, rsi, r15 #97.35
+ adcx rax, r11 #96.34
+ mov r11d, r8d #96.34
+ setb r11b #96.34
+ mov DWORD PTR [-264+rbp], r11d #96.34[spill]
+ mulx r11, r12, r14 #98.35
+ mov r14, 0xffffffff00000001 #99.35
+ mulx r14, r13, r14 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-280+rbp] #110.35
+ adox rsi, r11 #100.34
+ mov r11d, 0 #101.34
+ adox r12, r11 #101.34
+ adox r14, r11 #102.34
+ mov r11d, r8d #102.34
+ seto r11b #102.34
+ clc #103.31
+ adcx r11, r13 #103.31
+ mov r13d, r8d #104.31
+ adox r13d, r8d #104.31
+ adox rdi, r15 #104.31
+ adox r10, rsi #105.34
+ mulx r15, rsi, QWORD PTR [-304+rbp] #110.35
+ adox r9, r12 #106.34
+ mov r12d, r8d #108.34
+ adox rcx, r14 #107.34
+ mulx rdi, r14, QWORD PTR [-296+rbp] #111.35
+ adox rax, r11 #108.34
+ mulx r11, r13, QWORD PTR [-288+rbp] #112.35
+ seto r12b #108.34
+ clc #114.34
+ adcx rsi, rdi #114.34
+ adcx r14, r11 #115.34
+ mulx rdi, r11, rdx #113.35
+ mov edx, r8d #117.31
+ adcx r13, rdi #116.34
+ mov edi, r8d #116.34
+ setb dil #116.34
+ adox edx, r8d #117.31
+ adox rdi, r11 #117.31
+ clc #118.34
+ mov r11d, DWORD PTR [-264+rbp] #122.34[spill]
+ adcx r10, r15 #118.34
+ mov r15d, r8d #121.34
+ mov rdx, r10 #123.35
+ adcx r9, rsi #119.34
+ adcx rcx, r14 #120.34
+ adcx rax, r13 #121.34
+ mov r13, 0x0ffffffff #124.35
+ setb r15b #121.34
+ xor esi, esi #121.34
+ add r11d, r12d #122.34
+ mov r12, -1 #122.34
+ cmp r8d, r15d #122.34
+ adcx r11, rdi #122.34
+ mov rdi, 0xffffffff00000001 #125.35
+ setb sil #122.34
+ mov DWORD PTR [-256+rbp], esi #122.34[spill]
+ mulx r14, rsi, r12 #123.35
+ mulx r12, r15, r13 #124.35
+ mulx rdi, r13, rdi #125.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox rsi, r12 #126.34
+ mov r12d, 0 #127.34
+ adox r15, r12 #127.34
+ adox rdi, r12 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r14 #130.31
+ mov r10d, r8d #134.34
+ adox r9, rsi #131.34
+ mov r14d, DWORD PTR [-256+rbp] #140.31[spill]
+ adox rcx, r15 #132.34
+ mov r15, r9 #136.34
+ adox rax, rdi #133.34
+ mov rdi, 0xffffffff00000001 #139.34
+ adox r11, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov rsi, -1 #134.34
+ add r14d, r10d #140.31
+ sub r15, rsi #136.34
+ mov rsi, rcx #137.34
+ mov r10, rax #138.34
+ sbb rsi, rdx #137.34
+ mov rdx, r11 #139.34
+ sbb r10, r12 #138.34
+ sbb rdx, rdi #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb r14, r12 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq r11, rdx;
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, rsi;
+ testq r8, r8;
+ cmovnzq r9, r15;
+ mov QWORD PTR [-152+rbp], r15 #9.0
+ mov QWORD PTR [-176+rbp], rdx #207.37
+ mov QWORD PTR [-168+rbp], r10 #207.37
+ mov QWORD PTR [-160+rbp], rsi #207.37
+ vmovups YMMWORD PTR [-208+rbp], ymm0 #208.20
+ mov rdx, QWORD PTR [-336+rbp] #208.59
+ mov r15, 0x0ffffffff #47.33
+ xor r14d, r14d #42.32
+ xor r13d, r13d #42.32
+ xor r8d, r8d #42.32
+ mulx rsi, r9, QWORD PTR [-328+rbp] #39.33
+ mulx r12, rdi, rdx #38.33
+ adcx rdi, rsi #42.32
+ mulx rcx, r10, QWORD PTR [-320+rbp] #40.33
+ adcx r9, rcx #43.32
+ mov rcx, -1 #46.33
+ mulx rax, r11, QWORD PTR [-312+rbp] #41.33
+ mov rdx, r12 #46.33
+ adcx r10, rax #44.32
+ mulx rax, r15, r15 #47.33
+ setb r14b #44.32
+ adox r13d, r8d #45.30
+ adox r14, r11 #45.30
+ mulx r13, r11, rcx #46.33
+ mov ecx, 0 #50.32
+ clc #49.32
+ mov rsi, 0xffffffff00000001 #48.33
+ adcx r11, rax #49.32
+ mulx rax, rsi, rsi #48.33
+ mov edx, r8d #52.30
+ adcx r15, rcx #50.32
+ adcx rax, rcx #51.32
+ mov ecx, r8d #51.32
+ setb cl #51.32
+ adox edx, r8d #52.30
+ adox rcx, rsi #52.30
+ mov rdx, QWORD PTR [-328+rbp] #58.33
+ clc #53.30
+ adcx r12, r13 #53.30
+ mov r13d, r8d #62.32
+ adcx rdi, r11 #54.32
+ adcx r9, r15 #55.32
+ adcx r10, rax #56.32
+ mulx rax, r12, rdx #59.33
+ adcx r14, rcx #57.32
+ mov QWORD PTR [-240+rbp], r14 #57.32[spill]
+ mov r14d, r8d #57.32
+ setb r14b #57.32
+ adox r13d, r8d #62.32
+ mov r13d, 0 #75.34
+ mov QWORD PTR [-232+rbp], r14 #70.34[spill]
+ mulx r14, r15, QWORD PTR [-336+rbp] #58.33
+ adox r15, rax #62.32
+ mov eax, r8d #64.32
+ mulx r11, rcx, QWORD PTR [-320+rbp] #60.33
+ adox r12, r11 #63.32
+ mulx rdx, rsi, QWORD PTR [-312+rbp] #61.33
+ adox rcx, rdx #64.32
+ seto al #64.32
+ clc #65.30
+ adcx rax, rsi #65.30
+ mov esi, r8d #66.34
+ adox esi, r8d #66.34
+ mov rsi, QWORD PTR [-240+rbp] #69.34[spill]
+ adox rdi, r14 #66.34
+ mov r14, QWORD PTR [-232+rbp] #70.34[spill]
+ mov rdx, rdi #71.35
+ adox r9, r15 #67.34
+ mov r15, 0x0ffffffff #72.35
+ adox r10, r12 #68.34
+ mov r12d, r8d #70.34
+ adox rsi, rcx #69.34
+ mov rcx, -1 #71.35
+ adox r14, rax #70.34
+ seto r12b #70.34
+ clc #74.34
+ mov DWORD PTR [-224+rbp], r12d #70.34[spill]
+ mulx r12, rax, rcx #71.35
+ mulx rcx, r11, r15 #72.35
+ mov r15, 0xffffffff00000001 #73.35
+ adcx rax, rcx #74.34
+ mulx r15, rcx, r15 #73.35
+ mov edx, r8d #77.31
+ adcx r11, r13 #75.34
+ adcx r15, r13 #76.34
+ mov r13d, r8d #76.34
+ setb r13b #76.34
+ adox edx, r8d #77.31
+ adox r13, rcx #77.31
+ mov rdx, QWORD PTR [-320+rbp] #84.35
+ clc #78.31
+ adcx rdi, r12 #78.31
+ mov edi, r8d #82.34
+ adcx r9, rax #79.34
+ mulx rax, r12, QWORD PTR [-328+rbp] #85.35
+ adcx r10, r11 #80.34
+ adcx rsi, r15 #81.34
+ adcx r14, r13 #82.34
+ mov r13d, r8d #88.34
+ mov QWORD PTR [-232+rbp], r14 #82.34[spill]
+ setb dil #82.34
+ adox r13d, r8d #88.34
+ mulx r14, r15, QWORD PTR [-336+rbp] #84.35
+ adox r15, rax #88.34
+ mov DWORD PTR [-216+rbp], edi #82.34[spill]
+ mulx r11, rdi, rdx #86.35
+ adox r12, r11 #89.34
+ mov r11d, r8d #90.34
+ mulx rdx, rcx, QWORD PTR [-312+rbp] #87.35
+ adox rdi, rdx #90.34
+ seto r11b #90.34
+ clc #91.31
+ adcx r11, rcx #91.31
+ mov ecx, r8d #92.34
+ adox ecx, r8d #92.34
+ mov rcx, QWORD PTR [-232+rbp] #95.34[spill]
+ adox r9, r14 #92.34
+ mov r14d, r8d #95.34
+ mov eax, DWORD PTR [-224+rbp] #96.34[spill]
+ mov rdx, r9 #97.35
+ adox r10, r15 #93.34
+ adox rsi, r12 #94.34
+ adox rcx, rdi #95.34
+ mov rdi, 0x0ffffffff #98.35
+ seto r14b #95.34
+ xor r15d, r15d #95.34
+ mov r12, -1 #95.34
+ add eax, DWORD PTR [-216+rbp] #96.34[spill]
+ cmp r8d, r14d #96.34
+ mov r14, 0xffffffff00000001 #99.35
+ adcx rax, r11 #96.34
+ mulx r11, rdi, rdi #98.35
+ setb r15b #96.34
+ mov DWORD PTR [-144+rbp], r15d #96.34[spill]
+ mulx r15, r13, r12 #97.35
+ mulx r14, r12, r14 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-312+rbp] #110.35
+ adox r13, r11 #100.34
+ mov r11d, 0 #101.34
+ adox rdi, r11 #101.34
+ adox r14, r11 #102.34
+ mov r11d, r8d #102.34
+ seto r11b #102.34
+ clc #103.31
+ adcx r11, r12 #103.31
+ mov r12d, r8d #104.31
+ adox r12d, r8d #104.31
+ mov r12d, r8d #108.34
+ adox r9, r15 #104.31
+ adox r10, r13 #105.34
+ adox rsi, rdi #106.34
+ mulx r9, rdi, QWORD PTR [-328+rbp] #111.35
+ adox rcx, r14 #107.34
+ mulx r14, r15, QWORD PTR [-336+rbp] #110.35
+ adox rax, r11 #108.34
+ mulx r11, r13, QWORD PTR [-320+rbp] #112.35
+ seto r12b #108.34
+ clc #114.34
+ adcx r15, r9 #114.34
+ adcx rdi, r11 #115.34
+ mulx r9, r11, rdx #113.35
+ mov edx, r8d #117.31
+ adcx r13, r9 #116.34
+ mov r9d, r8d #116.34
+ setb r9b #116.34
+ adox edx, r8d #117.31
+ adox r9, r11 #117.31
+ clc #118.34
+ mov r11d, DWORD PTR [-144+rbp] #122.34[spill]
+ adcx r10, r14 #118.34
+ mov rdx, r10 #123.35
+ adcx rsi, r15 #119.34
+ mov r15, -1 #123.35
+ adcx rcx, rdi #120.34
+ mulx r15, rdi, r15 #123.35
+ adcx rax, r13 #121.34
+ mov r13d, r8d #121.34
+ setb r13b #121.34
+ xor r14d, r14d #121.34
+ add r11d, r12d #122.34
+ cmp r8d, r13d #122.34
+ mov r12, 0x0ffffffff #124.35
+ adcx r11, r9 #122.34
+ mov r9, 0xffffffff00000001 #125.35
+ mulx r9, r13, r9 #125.35
+ setb r14b #122.34
+ mov DWORD PTR [-136+rbp], r14d #122.34[spill]
+ mulx r12, r14, r12 #124.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox rdi, r12 #126.34
+ mov r12d, 0 #127.34
+ adox r14, r12 #127.34
+ adox r9, r12 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r15 #130.31
+ mov r10d, r8d #134.34
+ adox rsi, rdi #131.34
+ mov edi, DWORD PTR [-136+rbp] #140.31[spill]
+ adox rcx, r14 #132.34
+ mov r14, rsi #136.34
+ adox rax, r9 #133.34
+ mov r9, 0xffffffff00000001 #139.34
+ adox r11, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov r15, -1 #134.34
+ add edi, r10d #140.31
+ sub r14, r15 #136.34
+ mov r15, rcx #137.34
+ mov r10, rax #138.34
+ sbb r15, rdx #137.34
+ mov rdx, r11 #139.34
+ sbb r10, r12 #138.34
+ sbb rdx, r9 #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb rdi, r12 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq r11, rdx;
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, r15;
+ testq r8, r8;
+ cmovnzq rsi, r14;
+ mov QWORD PTR [-184+rbp], r14 #9.0
+ mov QWORD PTR [-208+rbp], rdx #208.37
+ mov QWORD PTR [-200+rbp], r10 #208.37
+ mov QWORD PTR [-192+rbp], r15 #208.37
+ vmovups YMMWORD PTR [-272+rbp], ymm0 #209.21
+ mov rdx, QWORD PTR [-176+rbp] #209.61
+ mov r15, 0x0ffffffff #47.33
+ xor r14d, r14d #42.32
+ xor r13d, r13d #42.32
+ xor r8d, r8d #42.32
+ mulx r12, rdi, QWORD PTR [-304+rbp] #38.33
+ mulx rsi, r9, QWORD PTR [-296+rbp] #39.33
+ adcx rdi, rsi #42.32
+ mulx rcx, r10, QWORD PTR [-288+rbp] #40.33
+ adcx r9, rcx #43.32
+ mov rcx, -1 #46.33
+ mulx rax, r11, QWORD PTR [-280+rbp] #41.33
+ mov rdx, r12 #46.33
+ adcx r10, rax #44.32
+ mulx rax, r15, r15 #47.33
+ setb r14b #44.32
+ adox r13d, r8d #45.30
+ adox r14, r11 #45.30
+ mulx r13, r11, rcx #46.33
+ mov ecx, 0 #50.32
+ clc #49.32
+ mov rsi, 0xffffffff00000001 #48.33
+ adcx r11, rax #49.32
+ mulx rax, rsi, rsi #48.33
+ mov edx, r8d #52.30
+ adcx r15, rcx #50.32
+ adcx rax, rcx #51.32
+ mov ecx, r8d #51.32
+ setb cl #51.32
+ adox edx, r8d #52.30
+ adox rcx, rsi #52.30
+ mov rdx, QWORD PTR [-168+rbp] #58.33
+ clc #53.30
+ adcx r12, r13 #53.30
+ mov r13d, r8d #62.32
+ adcx rdi, r11 #54.32
+ adcx r9, r15 #55.32
+ adcx r10, rax #56.32
+ mulx rax, r12, QWORD PTR [-296+rbp] #59.33
+ adcx r14, rcx #57.32
+ mov QWORD PTR [-144+rbp], r14 #57.32[spill]
+ mov r14d, r8d #57.32
+ setb r14b #57.32
+ adox r13d, r8d #62.32
+ mov r13d, 0 #75.34
+ mov QWORD PTR [-136+rbp], r14 #70.34[spill]
+ mulx r14, r15, QWORD PTR [-304+rbp] #58.33
+ adox r15, rax #62.32
+ mov eax, r8d #64.32
+ mulx r11, rcx, QWORD PTR [-288+rbp] #60.33
+ adox r12, r11 #63.32
+ mulx rdx, rsi, QWORD PTR [-280+rbp] #61.33
+ adox rcx, rdx #64.32
+ seto al #64.32
+ clc #65.30
+ adcx rax, rsi #65.30
+ mov esi, r8d #66.34
+ adox esi, r8d #66.34
+ mov rsi, QWORD PTR [-144+rbp] #69.34[spill]
+ adox rdi, r14 #66.34
+ mov r14, QWORD PTR [-136+rbp] #70.34[spill]
+ mov rdx, rdi #71.35
+ adox r9, r15 #67.34
+ mov r15, 0x0ffffffff #72.35
+ adox r10, r12 #68.34
+ mov r12d, r8d #70.34
+ adox rsi, rcx #69.34
+ mov rcx, -1 #71.35
+ adox r14, rax #70.34
+ seto r12b #70.34
+ clc #74.34
+ mov DWORD PTR [-128+rbp], r12d #70.34[spill]
+ mulx r12, rax, rcx #71.35
+ mulx rcx, r11, r15 #72.35
+ mov r15, 0xffffffff00000001 #73.35
+ adcx rax, rcx #74.34
+ mulx r15, rcx, r15 #73.35
+ mov edx, r8d #77.31
+ adcx r11, r13 #75.34
+ adcx r15, r13 #76.34
+ mov r13d, r8d #76.34
+ setb r13b #76.34
+ adox edx, r8d #77.31
+ adox r13, rcx #77.31
+ mov rdx, QWORD PTR [-160+rbp] #84.35
+ clc #78.31
+ adcx rdi, r12 #78.31
+ mov edi, r8d #82.34
+ adcx r9, rax #79.34
+ mulx rax, r12, QWORD PTR [-296+rbp] #85.35
+ adcx r10, r11 #80.34
+ adcx rsi, r15 #81.34
+ adcx r14, r13 #82.34
+ mov r13d, r8d #88.34
+ mov QWORD PTR [-136+rbp], r14 #82.34[spill]
+ setb dil #82.34
+ adox r13d, r8d #88.34
+ mulx r14, r15, QWORD PTR [-304+rbp] #84.35
+ adox r15, rax #88.34
+ mov DWORD PTR [-120+rbp], edi #82.34[spill]
+ mulx r11, rdi, QWORD PTR [-288+rbp] #86.35
+ adox r12, r11 #89.34
+ mov r11d, r8d #90.34
+ mulx rdx, rcx, QWORD PTR [-280+rbp] #87.35
+ adox rdi, rdx #90.34
+ seto r11b #90.34
+ clc #91.31
+ adcx r11, rcx #91.31
+ mov ecx, r8d #92.34
+ adox ecx, r8d #92.34
+ mov rcx, QWORD PTR [-136+rbp] #95.34[spill]
+ adox r9, r14 #92.34
+ mov r14d, r8d #95.34
+ mov eax, DWORD PTR [-128+rbp] #96.34[spill]
+ mov rdx, r9 #97.35
+ adox r10, r15 #93.34
+ adox rsi, r12 #94.34
+ adox rcx, rdi #95.34
+ mov rdi, 0x0ffffffff #98.35
+ seto r14b #95.34
+ xor r15d, r15d #95.34
+ mov r12, -1 #95.34
+ add eax, DWORD PTR [-120+rbp] #96.34[spill]
+ cmp r8d, r14d #96.34
+ mov r14, 0xffffffff00000001 #99.35
+ adcx rax, r11 #96.34
+ mulx r11, rdi, rdi #98.35
+ setb r15b #96.34
+ mov DWORD PTR [-72+rbp], r15d #96.34[spill]
+ mulx r15, r13, r12 #97.35
+ mulx r14, r12, r14 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-152+rbp] #110.35
+ adox r13, r11 #100.34
+ mov r11d, 0 #101.34
+ adox rdi, r11 #101.34
+ adox r14, r11 #102.34
+ mov r11d, r8d #102.34
+ seto r11b #102.34
+ clc #103.31
+ adcx r11, r12 #103.31
+ mov r12d, r8d #104.31
+ adox r12d, r8d #104.31
+ mov r12d, r8d #108.34
+ adox r9, r15 #104.31
+ adox r10, r13 #105.34
+ adox rsi, rdi #106.34
+ mulx r9, rdi, QWORD PTR [-296+rbp] #111.35
+ adox rcx, r14 #107.34
+ mulx r14, r15, QWORD PTR [-304+rbp] #110.35
+ adox rax, r11 #108.34
+ mulx r11, r13, QWORD PTR [-288+rbp] #112.35
+ seto r12b #108.34
+ clc #114.34
+ adcx r15, r9 #114.34
+ adcx rdi, r11 #115.34
+ mulx r9, r11, QWORD PTR [-280+rbp] #113.35
+ mov edx, r8d #117.31
+ adcx r13, r9 #116.34
+ mov r9d, r8d #116.34
+ setb r9b #116.34
+ adox edx, r8d #117.31
+ adox r9, r11 #117.31
+ clc #118.34
+ mov r11d, DWORD PTR [-72+rbp] #122.34[spill]
+ adcx r10, r14 #118.34
+ mov rdx, r10 #123.35
+ adcx rsi, r15 #119.34
+ mov r15, -1 #123.35
+ adcx rcx, rdi #120.34
+ mulx r15, rdi, r15 #123.35
+ adcx rax, r13 #121.34
+ mov r13d, r8d #121.34
+ setb r13b #121.34
+ xor r14d, r14d #121.34
+ add r11d, r12d #122.34
+ cmp r8d, r13d #122.34
+ mov r12, 0x0ffffffff #124.35
+ adcx r11, r9 #122.34
+ mov r9, 0xffffffff00000001 #125.35
+ mulx r9, r13, r9 #125.35
+ setb r14b #122.34
+ mov DWORD PTR [-64+rbp], r14d #122.34[spill]
+ mulx r12, r14, r12 #124.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox rdi, r12 #126.34
+ mov r12d, 0 #127.34
+ adox r14, r12 #127.34
+ adox r9, r12 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r15 #130.31
+ mov r10d, r8d #134.34
+ adox rsi, rdi #131.34
+ mov edi, DWORD PTR [-64+rbp] #140.31[spill]
+ adox rcx, r14 #132.34
+ mov r14, rsi #136.34
+ adox rax, r9 #133.34
+ mov r9, 0xffffffff00000001 #139.34
+ adox r11, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov r15, -1 #134.34
+ add edi, r10d #140.31
+ sub r14, r15 #136.34
+ mov r15, rcx #137.34
+ mov r10, rax #138.34
+ sbb r15, rdx #137.34
+ mov rdx, r11 #139.34
+ sbb r10, r12 #138.34
+ sbb rdx, r9 #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb rdi, r12 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq r11, rdx;
+ mov r11d, 1 #9.0
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, r15;
+ testq r8, r8;
+ cmovnzq rsi, r14;
+ mov rsi, QWORD PTR [-96+rbp] #9.0[spill]
+ mov rdi, QWORD PTR [-112+rbp] #9.0[spill]
+ mov QWORD PTR [-248+rbp], r14 #9.0
+ mov r14, 0xffffffff00000000 #9.0
+ mov QWORD PTR [-272+rbp], rdx #209.35
+ mov QWORD PTR [-264+rbp], r10 #209.35
+ mov QWORD PTR [-256+rbp], r15 #209.35
+ mov rax, QWORD PTR [88+rsi] #9.0
+ testq rdi, rdi;
+ cmovnzq rax, r11;
+ mov rax, -1 #9.0
+ mov QWORD PTR [88+rsi], r11 #210.5
+ mov rdx, QWORD PTR [80+rsi] #9.0
+ testq rdi, rdi;
+ cmovnzq rdx, r14;
+ mov rdx, -1 #9.0
+ mov QWORD PTR [80+rsi], r14 #211.5
+ mov rcx, QWORD PTR [72+rsi] #9.0
+ testq rdi, rdi;
+ cmovnzq rcx, rax;
+ mov QWORD PTR [72+rsi], rax #212.5
+ mov r9, QWORD PTR [64+rsi] #9.0
+ testq rdi, rdi;
+ cmovnzq r9, rdx;
+ mov r10, QWORD PTR [-88+rbp] #9.0[spill]
+ mov QWORD PTR [64+rsi], rdx #213.5
+ mov r13, QWORD PTR [-80+rbp] #9.0[spill]
+ mov r12, QWORD PTR [88+r10] #9.0
+ testq r13, r13;
+ cmovnzq r11, r12;
+ mov QWORD PTR [88+rsi], r12 #9.0
+ mov r11, QWORD PTR [80+r10] #9.0
+ testq r13, r13;
+ cmovnzq r14, r11;
+ mov QWORD PTR [80+rsi], r11 #9.0
+ mov r12, QWORD PTR [72+r10] #9.0
+ testq r13, r13;
+ cmovnzq rax, r12;
+ mov QWORD PTR [72+rsi], r12 #9.0
+ mov rcx, QWORD PTR [64+r10] #9.0
+ testq r13, r13;
+ cmovnzq rdx, rcx;
+ mov QWORD PTR [64+rsi], rcx #9.0
+ vmovups YMMWORD PTR [-240+rbp], ymm0 #218.21
+ mov r8, r10 #38.33
+ mov rdx, QWORD PTR [-176+rbp] #218.60
+ xor r14d, r14d #42.32
+ xor r13d, r13d #42.32
+ xor esi, esi #42.32
+ mulx r12, rdi, QWORD PTR [r8] #38.33
+ mulx rcx, r9, QWORD PTR [8+r8] #39.33
+ adcx rdi, rcx #42.32
+ mov rcx, -1 #46.33
+ mulx rax, r10, QWORD PTR [16+r8] #40.33
+ adcx r9, rax #43.32
+ mov rax, 0x0ffffffff #47.33
+ mulx r15, r11, QWORD PTR [24+r8] #41.33
+ mov r8d, 0 #44.32
+ adcx r10, r15 #44.32
+ setb r14b #44.32
+ mov rdx, r12 #46.33
+ adox r13d, r8d #45.30
+ adox r14, r11 #45.30
+ mulx r13, r11, rcx #46.33
+ mov ecx, 0 #50.32
+ seto sil #45.30
+ clc #49.32
+ mulx rsi, r15, rax #47.33
+ adcx r11, rsi #49.32
+ mov rsi, 0xffffffff00000001 #48.33
+ mulx rax, rsi, rsi #48.33
+ mov edx, r8d #52.30
+ adcx r15, rcx #50.32
+ adcx rax, rcx #51.32
+ mov ecx, r8d #51.32
+ setb cl #51.32
+ adox edx, r8d #52.30
+ adox rcx, rsi #52.30
+ mov rdx, QWORD PTR [-168+rbp] #58.33
+ clc #53.30
+ adcx r12, r13 #53.30
+ mov r13, QWORD PTR [-88+rbp] #58.33[spill]
+ adcx rdi, r11 #54.32
+ adcx r9, r15 #55.32
+ mov r15d, r8d #57.32
+ adcx r10, rax #56.32
+ mulx rax, r11, QWORD PTR [8+r13] #59.33
+ adcx r14, rcx #57.32
+ mov QWORD PTR [-304+rbp], r14 #57.32[spill]
+ setb r15b #57.32
+ mov QWORD PTR [-296+rbp], r15 #70.34[spill]
+ mulx r12, r14, QWORD PTR [r13] #58.33
+ mulx r15, rcx, QWORD PTR [16+r13] #60.33
+ mulx rdx, rsi, QWORD PTR [24+r13] #61.33
+ mov r13d, r8d #62.32
+ adox r13d, r8d #62.32
+ mov r13d, 0 #75.34
+ adox r14, rax #62.32
+ mov eax, r8d #64.32
+ adox r11, r15 #63.32
+ mov r15d, r8d #66.34
+ adox rcx, rdx #64.32
+ seto al #64.32
+ clc #65.30
+ adcx rax, rsi #65.30
+ adox r15d, r8d #66.34
+ mov rsi, QWORD PTR [-304+rbp] #69.34[spill]
+ mov r15, 0xffffffff00000001 #73.35
+ adox rdi, r12 #66.34
+ mov r12d, r8d #70.34
+ mov rdx, rdi #71.35
+ adox r9, r14 #67.34
+ mov r14, QWORD PTR [-296+rbp] #70.34[spill]
+ adox r10, r11 #68.34
+ mov r11, 0x0ffffffff #72.35
+ adox rsi, rcx #69.34
+ mov rcx, -1 #71.35
+ adox r14, rax #70.34
+ seto r12b #70.34
+ clc #74.34
+ mov DWORD PTR [-288+rbp], r12d #70.34[spill]
+ mulx r12, rax, rcx #71.35
+ mulx rcx, r11, r11 #72.35
+ adcx rax, rcx #74.34
+ mulx r15, rcx, r15 #73.35
+ mov edx, r8d #77.31
+ adcx r11, r13 #75.34
+ adcx r15, r13 #76.34
+ mov r13d, r8d #76.34
+ setb r13b #76.34
+ adox edx, r8d #77.31
+ adox r13, rcx #77.31
+ mov rdx, QWORD PTR [-160+rbp] #84.35
+ clc #78.31
+ adcx rdi, r12 #78.31
+ mov edi, r8d #82.34
+ adcx r9, rax #79.34
+ adcx r10, r11 #80.34
+ adcx rsi, r15 #81.34
+ adcx r14, r13 #82.34
+ mov r13, QWORD PTR [-88+rbp] #84.35[spill]
+ setb dil #82.34
+ mov QWORD PTR [-296+rbp], r14 #82.34[spill]
+ mov DWORD PTR [-280+rbp], edi #82.34[spill]
+ mulx r12, r14, QWORD PTR [r13] #84.35
+ mulx rax, r11, QWORD PTR [8+r13] #85.35
+ mulx r15, rdi, QWORD PTR [16+r13] #86.35
+ mulx rdx, rcx, QWORD PTR [24+r13] #87.35
+ mov r13d, r8d #88.34
+ adox r13d, r8d #88.34
+ mov r13d, r8d #90.34
+ adox r14, rax #88.34
+ adox r11, r15 #89.34
+ mov r15d, r8d #95.34
+ adox rdi, rdx #90.34
+ seto r13b #90.34
+ clc #91.31
+ adcx r13, rcx #91.31
+ mov ecx, r8d #92.34
+ adox ecx, r8d #92.34
+ mov rcx, QWORD PTR [-296+rbp] #95.34[spill]
+ adox r9, r12 #92.34
+ mov eax, DWORD PTR [-288+rbp] #96.34[spill]
+ mov rdx, r9 #97.35
+ adox r10, r14 #93.34
+ mov r14, 0x0ffffffff #98.35
+ adox rsi, r11 #94.34
+ adox rcx, rdi #95.34
+ seto r15b #95.34
+ xor r12d, r12d #95.34
+ mov rdi, -1 #95.34
+ add eax, DWORD PTR [-280+rbp] #96.34[spill]
+ cmp r8d, r15d #96.34
+ adcx rax, r13 #96.34
+ mulx r15, r13, rdi #97.35
+ setb r12b #96.34
+ mov DWORD PTR [-72+rbp], r12d #96.34[spill]
+ mov r12, 0xffffffff00000001 #99.35
+ mulx r14, rdi, r14 #98.35
+ mulx r11, r12, r12 #99.35
+ mov edx, r8d #100.34
+ adox edx, r8d #100.34
+ mov rdx, QWORD PTR [-152+rbp] #110.35
+ adox r13, r14 #100.34
+ mov r14d, 0 #101.34
+ adox rdi, r14 #101.34
+ adox r11, r14 #102.34
+ mov r14d, r8d #102.34
+ seto r14b #102.34
+ clc #103.31
+ adcx r14, r12 #103.31
+ mov r12d, r8d #104.31
+ adox r12d, r8d #104.31
+ mov r12, QWORD PTR [-88+rbp] #110.35[spill]
+ adox r9, r15 #104.31
+ mov r9d, r8d #108.34
+ adox r10, r13 #105.34
+ mulx r13, r15, QWORD PTR [r12] #110.35
+ adox rsi, rdi #106.34
+ adox rcx, r11 #107.34
+ adox rax, r14 #108.34
+ mulx r11, r14, QWORD PTR [8+r12] #111.35
+ seto r9b #108.34
+ clc #114.34
+ adcx r15, r11 #114.34
+ mulx r11, rdi, QWORD PTR [16+r12] #112.35
+ adcx r14, r11 #115.34
+ mulx r12, r11, QWORD PTR [24+r12] #113.35
+ mov edx, r8d #117.31
+ adcx rdi, r12 #116.34
+ mov r12d, r8d #116.34
+ setb r12b #116.34
+ adox edx, r8d #117.31
+ adox r12, r11 #117.31
+ clc #118.34
+ adcx r10, r13 #118.34
+ mov rdx, r10 #123.35
+ adcx rsi, r15 #119.34
+ mov r15d, r8d #121.34
+ adcx rcx, r14 #120.34
+ mov r14, 0x0ffffffff #124.35
+ adcx rax, rdi #121.34
+ mov edi, DWORD PTR [-72+rbp] #122.34[spill]
+ setb r15b #121.34
+ add edi, r9d #122.34
+ xor r9d, r9d #122.34
+ cmp r8d, r15d #122.34
+ mov r15, -1 #123.35
+ adcx rdi, r12 #122.34
+ mulx r12, r11, r15 #123.35
+ setb r9b #122.34
+ mov DWORD PTR [-64+rbp], r9d #122.34[spill]
+ mov r9, 0xffffffff00000001 #125.35
+ mulx r14, r15, r14 #124.35
+ mulx r9, r13, r9 #125.35
+ mov edx, r8d #126.34
+ adox edx, r8d #126.34
+ mov edx, r8d #128.34
+ adox r11, r14 #126.34
+ mov r14d, 0 #127.34
+ adox r15, r14 #127.34
+ adox r9, r14 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r13 #129.31
+ mov r13d, r8d #130.31
+ adox r13d, r8d #130.31
+ adox r10, r12 #130.31
+ mov r10d, r8d #134.34
+ adox rsi, r11 #131.34
+ mov r11d, DWORD PTR [-64+rbp] #140.31[spill]
+ adox rcx, r15 #132.34
+ mov r15, rsi #136.34
+ adox rax, r9 #133.34
+ mov r9, 0xffffffff00000001 #139.34
+ adox rdi, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r10b #134.34
+ xor r13d, r13d #134.34
+ mov r12, -1 #134.34
+ add r11d, r10d #140.31
+ sub r15, r12 #136.34
+ mov r12, rcx #137.34
+ mov r10, rax #138.34
+ sbb r12, rdx #137.34
+ mov rdx, rdi #139.34
+ sbb r10, r14 #138.34
+ sbb rdx, r9 #139.34
+ setb r13b #139.34
+ cmp r8d, r13d #140.31
+ sbb r11, r14 #140.31
+ setb r8b #140.31
+ testq r8, r8;
+ cmovnzq rdi, rdx;
+ testq r8, r8;
+ cmovnzq rax, r10;
+ testq r8, r8;
+ cmovnzq rcx, r12;
+ testq r8, r8;
+ cmovnzq rsi, r15;
+ mov QWORD PTR [-152+rbp], r15 #9.0
+ mov QWORD PTR [-176+rbp], rdx #218.35
+ mov QWORD PTR [-168+rbp], r10 #218.35
+ mov QWORD PTR [-160+rbp], r12 #218.35
+ vmovups YMMWORD PTR [-144+rbp], ymm0 #219.21
+ mov r12, QWORD PTR [-240+rbp] #219.64
+ xor r8d, r8d #21.32
+ xor edi, edi #18.32
+ xor r13d, r13d #18.32
+ mov r11, QWORD PTR [-232+rbp] #219.88
+ adcx r12, r12 #18.32
+ mov r15, 0x0ffffffff #23.32
+ mov r10, QWORD PTR [-224+rbp] #219.80
+ mov rsi, r12 #22.32
+ adcx r11, r11 #19.32
+ mov r13, 0xffffffff00000001 #25.32
+ mov r9, QWORD PTR [-216+rbp] #219.72
+ mov rcx, r11 #23.32
+ adcx r10, r10 #20.32
+ mov rdx, r10 #24.32
+ adcx r9, r9 #21.32
+ mov rax, r9 #25.32
+ setb dil #21.32
+ mov r14, -1 #21.32
+ sub rsi, r14 #22.32
+ mov r14d, 0 #24.32
+ sbb rcx, r15 #23.32
+ sbb rdx, r14 #24.32
+ sbb rax, r13 #25.32
+ sbb rdi, r14 #26.30
+ setb r8b #26.30
+ testq r8, r8;
+ cmovnzq r9, rax;
+ testq r8, r8;
+ cmovnzq r10, rdx;
+ testq r8, r8;
+ cmovnzq r11, rcx;
+ testq r8, r8;
+ cmovnzq r12, rsi;
+ mov QWORD PTR [-120+rbp], rsi #9.0
+ mov QWORD PTR [-144+rbp], rax #219.35
+ mov QWORD PTR [-136+rbp], rdx #219.35
+ mov QWORD PTR [-128+rbp], rcx #219.35
+ vmovups YMMWORD PTR [-176+rbp], ymm0 #220.20
+ mov r13, QWORD PTR [-208+rbp] #159.32
+ xor r10d, r10d #162.32
+ xor r15d, r15d #159.32
+ sub r13, QWORD PTR [-144+rbp] #159.32
+ mov r14, QWORD PTR [-200+rbp] #160.32
+ sbb r14, QWORD PTR [-136+rbp] #160.32
+ mov r12, QWORD PTR [-192+rbp] #161.32
+ sbb r12, QWORD PTR [-128+rbp] #161.32
+ mov r11, QWORD PTR [-184+rbp] #162.32
+ mov r8, 0xffffffff00000001 #170.30
+ sbb r11, QWORD PTR [-120+rbp] #162.32
+ setb r15b #162.32
+ mov rsi, -1 #162.32
+ xor edi, edi #162.32
+ xor r9d, r9d #162.32
+ xor ecx, ecx #162.32
+ testq r15, r15;
+ cmovnzq rsi, rdi;
+ xor eax, eax #165.32
+ mov edx, edi #167.32
+ adox r13, rdi #165.32
+ mov QWORD PTR [-152+rbp], r13 #220.34
+ adox r14, rdx #167.32
+ mov QWORD PTR [-160+rbp], r14 #220.34
+ adox r12, r9 #168.32
+ mov QWORD PTR [-168+rbp], r12 #220.34
+ seto cl #168.32
+ mov rdx, -1 #168.32
+ and rdi, r8 #170.30
+ cmp r10d, ecx #170.30
+ adcx r11, rdi #170.30
+ xor edi, edi #9.0
+ mov QWORD PTR [-176+rbp], r11 #220.34
+ sub r11, QWORD PTR [-272+rbp] #159.32
+ sbb r12, QWORD PTR [-264+rbp] #160.32
+ sbb r14, QWORD PTR [-256+rbp] #161.32
+ sbb r13, QWORD PTR [-248+rbp] #162.32
+ setb al #162.32
+ testq rax, rax;
+ cmovnzq rdx, rdi;
+ xor r15d, r15d #165.32
+ mov ecx, edi #167.32
+ adox r11, rdi #165.32
+ mov rsi, QWORD PTR [-96+rbp] #174.1[spill]
+ adox r12, rcx #167.32
+ mov QWORD PTR [24+rsi], r11 #174.1
+ adox r14, r9 #168.32
+ mov r9d, r10d #168.32
+ mov QWORD PTR [8+rsi], r14 #172.1
+ seto r9b #168.32
+ and rdi, r8 #170.30
+ cmp r10d, r9d #170.30
+ mov r8, QWORD PTR [-104+rbp] #9.0[spill]
+ adcx r13, rdi #170.30
+ mov QWORD PTR [16+rsi], r12 #173.1
+ mov QWORD PTR [rsi], r13 #171.1
+ mov rcx, QWORD PTR [24+r8] #9.0
+ mov rdi, QWORD PTR [-112+rbp] #9.0[spill]
+ testq rdi, rdi;
+ cmovnzq r11, rcx;
+ mov QWORD PTR [24+rsi], rcx #222.5
+ mov rdx, QWORD PTR [16+r8] #9.0
+ testq rdi, rdi;
+ cmovnzq r12, rdx;
+ mov QWORD PTR [16+rsi], rdx #223.5
+ mov rax, QWORD PTR [8+r8] #9.0
+ testq rdi, rdi;
+ cmovnzq r14, rax;
+ mov QWORD PTR [8+rsi], rax #224.5
+ mov r8, QWORD PTR [r8] #9.0
+ testq rdi, rdi;
+ cmovnzq r13, r8;
+ mov r14, QWORD PTR [-88+rbp] #9.0[spill]
+ mov QWORD PTR [rsi], r8 #225.5
+ mov rdi, QWORD PTR [-80+rbp] #9.0[spill]
+ mov r13, QWORD PTR [24+r14] #9.0
+ testq rdi, rdi;
+ cmovnzq rcx, r13;
+ mov QWORD PTR [24+rsi], r13 #9.0
+ mov r11, QWORD PTR [16+r14] #9.0
+ testq rdi, rdi;
+ cmovnzq rdx, r11;
+ mov QWORD PTR [16+rsi], r11 #9.0
+ mov r12, QWORD PTR [8+r14] #9.0
+ testq rdi, rdi;
+ cmovnzq rax, r12;
+ mov QWORD PTR [8+rsi], r12 #9.0
+ mov rax, QWORD PTR [r14] #9.0
+ testq rdi, rdi;
+ cmovnzq r8, rax;
+ mov QWORD PTR [rsi], rax #9.0
+ vmovups YMMWORD PTR [-304+rbp], ymm0 #230.21
+ mov r10, r14 #38.33
+ mov r13, -1 #46.33
+ mov rdx, QWORD PTR [-272+rbp] #230.63
+ xor edi, edi #42.32
+ mov r15, 0xffffffff00000001 #48.33
+ mulx r11, rsi, QWORD PTR [32+r10] #38.33
+ mulx rcx, r8, QWORD PTR [40+r10] #39.33
+ adox rsi, rcx #42.32
+ mov rcx, 0x0ffffffff #47.33
+ mulx rax, r9, QWORD PTR [48+r10] #40.33
+ adox r8, rax #43.32
+ mulx r10, r12, QWORD PTR [56+r10] #41.33
+ mov rdx, r11 #46.33
+ adox r9, r10 #44.32
+ mov r10d, edi #44.32
+ mulx rax, r15, r15 #48.33
+ seto r10b #44.32
+ clc #45.30
+ adcx r10, r12 #45.30
+ mulx r13, r12, r13 #46.33
+ mulx rcx, r14, rcx #47.33
+ mov edx, edi #49.32
+ adox edx, edi #49.32
+ mov rdx, QWORD PTR [-264+rbp] #58.33
+ adox r12, rcx #49.32
+ mov ecx, 0 #50.32
+ adox r14, rcx #50.32
+ adox rax, rcx #51.32
+ mov ecx, edi #51.32
+ seto cl #51.32
+ clc #52.30
+ adcx rcx, r15 #52.30
+ mov r15d, edi #53.30
+ adox r15d, edi #53.30
+ adox r11, r13 #53.30
+ adox rsi, r12 #54.32
+ adox r8, r14 #55.32
+ mov r14, QWORD PTR [-88+rbp] #58.33[spill]
+ adox r9, rax #56.32
+ mulx r15, rax, QWORD PTR [32+r14] #58.33
+ adox r10, rcx #57.32
+ mov ecx, edi #57.32
+ mulx r11, r12, QWORD PTR [40+r14] #59.33
+ seto cl #57.32
+ clc #62.32
+ adcx rax, r11 #62.32
+ mulx r13, r11, QWORD PTR [48+r14] #60.33
+ adcx r12, r13 #63.32
+ mulx r14, r13, QWORD PTR [56+r14] #61.33
+ mov edx, edi #65.30
+ adcx r11, r14 #64.32
+ mov r14d, edi #64.32
+ setb r14b #64.32
+ adox edx, edi #65.30
+ adox r14, r13 #65.30
+ clc #66.34
+ adcx rsi, r15 #66.34
+ mov rdx, rsi #71.35
+ adcx r8, rax #67.34
+ mov eax, edi #70.34
+ adcx r9, r12 #68.34
+ mov r12, 0x0ffffffff #72.35
+ adcx r10, r11 #69.34
+ mov r11, -1 #71.35
+ mulx r15, r13, r11 #71.35
+ mov r11, 0xffffffff00000001 #73.35
+ adcx rcx, r14 #70.34
+ setb al #70.34
+ mov DWORD PTR [-176+rbp], eax #70.34[spill]
+ mulx rax, r14, r12 #72.35
+ mulx r11, r12, r11 #73.35
+ mov edx, edi #74.34
+ adox edx, edi #74.34
+ mov rdx, QWORD PTR [-256+rbp] #84.35
+ adox r13, rax #74.34
+ mov eax, 0 #75.34
+ adox r14, rax #75.34
+ adox r11, rax #76.34
+ mov eax, edi #76.34
+ seto al #76.34
+ clc #77.31
+ adcx rax, r12 #77.31
+ mov r12d, edi #78.31
+ adox r12d, edi #78.31
+ adox rsi, r15 #78.31
+ mov esi, edi #82.34
+ adox r8, r13 #79.34
+ adox r9, r14 #80.34
+ adox r10, r11 #81.34
+ mov r11, QWORD PTR [-88+rbp] #84.35[spill]
+ adox rcx, rax #82.34
+ mulx rax, r15, QWORD PTR [32+r11] #84.35
+ seto sil #82.34
+ clc #88.34
+ mulx r13, r14, QWORD PTR [40+r11] #85.35
+ adcx r15, r13 #88.34
+ mulx r12, r13, QWORD PTR [48+r11] #86.35
+ adcx r14, r12 #89.34
+ mulx r11, r12, QWORD PTR [56+r11] #87.35
+ mov edx, edi #91.31
+ adcx r13, r11 #90.34
+ mov r11d, edi #90.34
+ setb r11b #90.34
+ adox edx, edi #91.31
+ adox r11, r12 #91.31
+ clc #92.34
+ adcx r8, rax #92.34
+ mov eax, DWORD PTR [-176+rbp] #96.34[spill]
+ mov rdx, r8 #97.35
+ adcx r9, r15 #93.34
+ mov r15, 0x0ffffffff #98.35
+ adcx r10, r14 #94.34
+ mov r14d, edi #95.34
+ adcx rcx, r13 #95.34
+ setb r14b #95.34
+ add eax, esi #96.34
+ xor esi, esi #96.34
+ cmp edi, r14d #96.34
+ mov r14, 0xffffffff00000001 #99.35
+ adcx rax, r11 #96.34
+ mov r11, -1 #97.35
+ mulx r13, r14, r14 #99.35
+ setb sil #96.34
+ mov DWORD PTR [-168+rbp], esi #96.34[spill]
+ mulx rsi, r12, r11 #97.35
+ mulx r15, r11, r15 #98.35
+ mov edx, edi #100.34
+ adox edx, edi #100.34
+ mov rdx, QWORD PTR [-248+rbp] #110.35
+ adox r12, r15 #100.34
+ mov r15d, 0 #101.34
+ adox r11, r15 #101.34
+ adox r13, r15 #102.34
+ mov r15d, edi #102.34
+ seto r15b #102.34
+ clc #103.31
+ adcx r15, r14 #103.31
+ mov r14d, edi #104.31
+ adox r14d, edi #104.31
+ mov r14, QWORD PTR [-88+rbp] #110.35[spill]
+ adox r8, rsi #104.31
+ mov r8d, edi #108.34
+ adox r9, r12 #105.34
+ mulx rsi, r12, QWORD PTR [32+r14] #110.35
+ adox r10, r11 #106.34
+ adox rcx, r13 #107.34
+ adox rax, r15 #108.34
+ mulx r13, r15, QWORD PTR [40+r14] #111.35
+ seto r8b #108.34
+ clc #114.34
+ adcx r12, r13 #114.34
+ mulx r13, r11, QWORD PTR [48+r14] #112.35
+ adcx r15, r13 #115.34
+ mulx r14, r13, QWORD PTR [56+r14] #113.35
+ mov edx, edi #117.31
+ adcx r11, r14 #116.34
+ mov r14d, edi #116.34
+ setb r14b #116.34
+ adox edx, edi #117.31
+ adox r14, r13 #117.31
+ clc #118.34
+ adcx r9, rsi #118.34
+ mov rdx, r9 #123.35
+ adcx r10, r12 #119.34
+ mov r12d, edi #121.34
+ adcx rcx, r15 #120.34
+ mov r15, 0x0ffffffff #124.35
+ adcx rax, r11 #121.34
+ mov r11d, DWORD PTR [-168+rbp] #122.34[spill]
+ setb r12b #121.34
+ add r11d, r8d #122.34
+ xor r8d, r8d #122.34
+ cmp edi, r12d #122.34
+ mov r12, -1 #123.35
+ adcx r11, r14 #122.34
+ mulx r14, r13, r12 #123.35
+ setb r8b #122.34
+ mov DWORD PTR [-160+rbp], r8d #122.34[spill]
+ mov r8, 0xffffffff00000001 #125.35
+ mulx r15, r12, r15 #124.35
+ mulx r8, rsi, r8 #125.35
+ mov edx, edi #126.34
+ adox edx, edi #126.34
+ mov edx, edi #128.34
+ adox r13, r15 #126.34
+ mov r15d, 0 #127.34
+ adox r12, r15 #127.34
+ adox r8, r15 #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, rsi #129.31
+ mov esi, edi #130.31
+ adox esi, edi #130.31
+ adox r9, r14 #130.31
+ mov r9d, edi #134.34
+ adox r10, r13 #131.34
+ mov r13d, DWORD PTR [-160+rbp] #140.31[spill]
+ adox rcx, r12 #132.34
+ mov r12, r10 #136.34
+ adox rax, r8 #133.34
+ mov r8, 0xffffffff00000001 #139.34
+ adox r11, rdx #134.34
+ mov rdx, 0x0ffffffff #137.34
+ seto r9b #134.34
+ xor esi, esi #134.34
+ mov r14, -1 #134.34
+ add r13d, r9d #140.31
+ sub r12, r14 #136.34
+ mov r14, rcx #137.34
+ mov r9, rax #138.34
+ sbb r14, rdx #137.34
+ mov rdx, r11 #139.34
+ sbb r9, r15 #138.34
+ sbb rdx, r8 #139.34
+ setb sil #139.34
+ cmp edi, esi #140.31
+ sbb r13, r15 #140.31
+ setb dil #140.31
+ testq rdi, rdi;
+ cmovnzq r11, rdx;
+ testq rdi, rdi;
+ cmovnzq rax, r9;
+ testq rdi, rdi;
+ cmovnzq rcx, r14;
+ testq rdi, rdi;
+ cmovnzq r10, r12;
+ mov QWORD PTR [-280+rbp], r12 #9.0
+ mov QWORD PTR [-304+rbp], rdx #230.34
+ mov QWORD PTR [-296+rbp], r9 #230.34
+ mov QWORD PTR [-288+rbp], r14 #230.34
+ vmovups YMMWORD PTR [-208+rbp], ymm0 #231.21
+ mov rcx, QWORD PTR [-96+rbp] #159.32[spill]
+ xor eax, eax #162.32
+ mov r9, QWORD PTR [-240+rbp] #159.32
+ xor esi, esi #162.32
+ mov r11, QWORD PTR [-232+rbp] #160.32
+ mov rdi, -1 #9.0
+ sub r9, QWORD PTR [rcx] #159.32
+ mov r13, QWORD PTR [-224+rbp] #161.32
+ sbb r11, QWORD PTR [8+rcx] #160.32
+ mov r14, 0xffffffff00000001 #170.30
+ mov rdx, QWORD PTR [-216+rbp] #162.32
+ sbb r13, QWORD PTR [16+rcx] #161.32
+ sbb rdx, QWORD PTR [24+rcx] #162.32
+ setb sil #162.32
+ xor r12d, r12d #162.32
+ xor r15d, r15d #162.32
+ xor ecx, ecx #162.32
+ testq rsi, rsi;
+ cmovnzq rdi, rcx;
+ xor r8d, r8d #165.32
+ mov r10d, ecx #167.32
+ adcx r9, rcx #165.32
+ mov QWORD PTR [-184+rbp], r9 #231.34
+ adcx r11, r10 #167.32
+ mov QWORD PTR [-192+rbp], r11 #231.34
+ adcx r13, r12 #168.32
+ mov QWORD PTR [-200+rbp], r13 #231.34
+ setb r15b #168.32
+ and rcx, r14 #170.30
+ cmp eax, r15d #170.30
+ adcx rdx, rcx #170.30
+ mov QWORD PTR [-208+rbp], rdx #231.34
+ vmovups YMMWORD PTR [-272+rbp], ymm0 #232.21
+ setb al #170.30
+ mov rdx, QWORD PTR [-208+rbp] #232.63
+ mov r15, -1 #46.33
+ xor esi, esi #42.32
+ xor r10d, r10d #42.32
+ mov rcx, 0xffffffff00000001 #48.33
+ mulx r13, r8, QWORD PTR [-336+rbp] #38.33
+ mulx r12, r9, QWORD PTR [-328+rbp] #39.33
+ adox r8, r12 #42.32
+ mov r12d, r10d #44.32
+ mulx rax, r11, QWORD PTR [-320+rbp] #40.33
+ adox r9, rax #43.32
+ mov rax, 0x0ffffffff #47.33
+ mulx rdi, r14, QWORD PTR [-312+rbp] #41.33
+ mov rdx, r13 #46.33
+ adox r11, rdi #44.32
+ mulx rdi, rax, rax #47.33
+ seto r12b #44.32
+ clc #45.30
+ adcx r12, r14 #45.30
+ mulx r15, r14, r15 #46.33
+ setb sil #45.30
+ mulx rsi, rcx, rcx #48.33
+ mov edx, r10d #49.32
+ adox edx, r10d #49.32
+ mov rdx, QWORD PTR [-200+rbp] #58.33
+ adox r14, rdi #49.32
+ mov edi, 0 #50.32
+ adox rax, rdi #50.32
+ adox rsi, rdi #51.32
+ mov edi, r10d #51.32
+ seto dil #51.32
+ clc #52.30
+ adcx rdi, rcx #52.30
+ mov ecx, r10d #53.30
+ adox ecx, r10d #53.30
+ adox r13, r15 #53.30
+ mulx r13, r15, QWORD PTR [-328+rbp] #59.33
+ adox r8, r14 #54.32
+ mulx r14, rcx, QWORD PTR [-336+rbp] #58.33
+ adox r9, rax #55.32
+ adox r11, rsi #56.32
+ adox r12, rdi #57.32
+ mov edi, r10d #57.32
+ seto dil #57.32
+ clc #62.32
+ adcx rcx, r13 #62.32
+ mulx rsi, r13, QWORD PTR [-320+rbp] #60.33
+ adcx r15, rsi #63.32
+ mulx rax, rsi, QWORD PTR [-312+rbp] #61.33
+ mov edx, r10d #65.30
+ adcx r13, rax #64.32
+ mov eax, r10d #64.32
+ setb al #64.32
+ adox edx, r10d #65.30
+ adox rax, rsi #65.30
+ clc #66.34
+ adcx r8, r14 #66.34
+ mov r14d, r10d #70.34
+ mov rdx, r8 #71.35
+ adcx r9, rcx #67.34
+ adcx r11, r15 #68.34
+ mov r15, 0x0ffffffff #72.35
+ adcx r12, r13 #69.34
+ mov r13, -1 #71.35
+ mulx rcx, rsi, r13 #71.35
+ adcx rdi, rax #70.34
+ mulx rax, r13, r15 #72.35
+ setb r14b #70.34
+ mov DWORD PTR [-240+rbp], r14d #70.34[spill]
+ mov r14, 0xffffffff00000001 #73.35
+ mulx r14, r15, r14 #73.35
+ mov edx, r10d #74.34
+ adox edx, r10d #74.34
+ mov rdx, QWORD PTR [-192+rbp] #84.35
+ adox rsi, rax #74.34
+ mov eax, 0 #75.34
+ adox r13, rax #75.34
+ adox r14, rax #76.34
+ mov eax, r10d #76.34
+ seto al #76.34
+ clc #77.31
+ adcx rax, r15 #77.31
+ mov r15d, r10d #78.31
+ adox r15d, r10d #78.31
+ adox r8, rcx #78.31
+ mov ecx, r10d #82.34
+ mulx r8, r15, QWORD PTR [-328+rbp] #85.35
+ adox r9, rsi #79.34
+ adox r11, r13 #80.34
+ adox r12, r14 #81.34
+ mulx r13, r14, QWORD PTR [-336+rbp] #84.35
+ adox rdi, rax #82.34
+ seto cl #82.34
+ clc #88.34
+ adcx r14, r8 #88.34
+ mulx rsi, r8, QWORD PTR [-320+rbp] #86.35
+ adcx r15, rsi #89.34
+ mulx rax, rsi, QWORD PTR [-312+rbp] #87.35
+ mov edx, r10d #91.31
+ adcx r8, rax #90.34
+ mov eax, r10d #90.34
+ setb al #90.34
+ adox edx, r10d #91.31
+ adox rax, rsi #91.31
+ clc #92.34
+ mov esi, DWORD PTR [-240+rbp] #96.34[spill]
+ adcx r9, r13 #92.34
+ mov r13d, r10d #95.34
+ mov rdx, r9 #97.35
+ adcx r11, r14 #93.34
+ adcx r12, r15 #94.34
+ adcx rdi, r8 #95.34
+ setb r13b #95.34
+ xor r14d, r14d #95.34
+ mov r8, -1 #95.34
+ add esi, ecx #96.34
+ cmp r10d, r13d #96.34
+ mov rcx, 0x0ffffffff #98.35
+ mov r13, 0xffffffff00000001 #99.35
+ adcx rsi, rax #96.34
+ mulx rcx, rax, rcx #98.35
+ setb r14b #96.34
+ mov DWORD PTR [-232+rbp], r14d #96.34[spill]
+ mulx r14, r8, r8 #97.35
+ mulx r13, r15, r13 #99.35
+ mov edx, r10d #100.34
+ adox edx, r10d #100.34
+ mov rdx, QWORD PTR [-184+rbp] #110.35
+ adox r8, rcx #100.34
+ mov ecx, 0 #101.34
+ adox rax, rcx #101.34
+ adox r13, rcx #102.34
+ mov ecx, r10d #102.34
+ seto cl #102.34
+ clc #103.31
+ adcx rcx, r15 #103.31
+ mov r15d, r10d #104.31
+ adox r15d, r10d #104.31
+ adox r9, r14 #104.31
+ mulx r9, r14, QWORD PTR [-328+rbp] #111.35
+ adox r11, r8 #105.34
+ mulx r15, r8, QWORD PTR [-336+rbp] #110.35
+ adox r12, rax #106.34
+ adox rdi, r13 #107.34
+ mov r13d, r10d #108.34
+ adox rsi, rcx #108.34
+ mulx rcx, rax, QWORD PTR [-320+rbp] #112.35
+ seto r13b #108.34
+ clc #114.34
+ adcx r8, r9 #114.34
+ adcx r14, rcx #115.34
+ mulx r9, rcx, QWORD PTR [-312+rbp] #113.35
+ mov edx, r10d #117.31
+ adcx rax, r9 #116.34
+ mov r9d, r10d #116.34
+ setb r9b #116.34
+ adox edx, r10d #117.31
+ adox r9, rcx #117.31
+ clc #118.34
+ mov ecx, DWORD PTR [-232+rbp] #122.34[spill]
+ adcx r11, r15 #118.34
+ mov r15, 0x0ffffffff #124.35
+ mov rdx, r11 #123.35
+ adcx r12, r8 #119.34
+ adcx rdi, r14 #120.34
+ adcx rsi, rax #121.34
+ mov eax, r10d #121.34
+ setb al #121.34
+ xor r8d, r8d #121.34
+ add ecx, r13d #122.34
+ mov r13, -1 #122.34
+ cmp r10d, eax #122.34
+ adcx rcx, r9 #122.34
+ mov r9, 0xffffffff00000001 #125.35
+ setb r8b #122.34
+ mov DWORD PTR [-224+rbp], r8d #122.34[spill]
+ mulx r8, r14, r13 #123.35
+ mulx rax, r13, r15 #124.35
+ mulx r9, r15, r9 #125.35
+ mov edx, r10d #126.34
+ adox edx, r10d #126.34
+ mov edx, r10d #128.34
+ adox r14, rax #126.34
+ mov eax, 0 #127.34
+ adox r13, rax #127.34
+ adox r9, rax #128.34
+ seto dl #128.34
+ clc #129.31
+ adcx rdx, r15 #129.31
+ mov r15d, r10d #130.31
+ adox r15d, r10d #130.31
+ adox r11, r8 #130.31
+ mov r11d, r10d #134.34
+ adox r12, r14 #131.34
+ mov r14, 0xffffffff00000001 #139.34
+ mov r8, r12 #136.34
+ adox rdi, r13 #132.34
+ adox rsi, r9 #133.34
+ mov r9d, DWORD PTR [-224+rbp] #140.31[spill]
+ adox rcx, rdx #134.34
+ mov r13, rcx #139.34
+ seto r11b #134.34
+ xor r15d, r15d #134.34
+ mov rdx, -1 #134.34
+ add r9d, r11d #140.31
+ sub r8, rdx #136.34
+ mov rdx, rdi #137.34
+ mov r11, 0x0ffffffff #137.34
+ sbb rdx, r11 #137.34
+ mov r11, rsi #138.34
+ sbb r11, rax #138.34
+ sbb r13, r14 #139.34
+ setb r15b #139.34
+ cmp r10d, r15d #140.31
+ mov r15d, r10d #140.31
+ sbb r9, rax #140.31
+ setb r15b #140.31
+ testq r15, r15;
+ cmovnzq rcx, r13;
+ xor ecx, ecx #9.0
+ testq r15, r15;
+ cmovnzq rsi, r11;
+ testq r15, r15;
+ cmovnzq rdi, rdx;
+ mov rdi, -1 #9.0
+ testq r15, r15;
+ cmovnzq r12, r8;
+ xor r12d, r12d #162.32
+ mov QWORD PTR [-272+rbp], r13 #232.34
+ sub r13, QWORD PTR [-304+rbp] #159.32
+ mov QWORD PTR [-264+rbp], r11 #232.34
+ sbb r11, QWORD PTR [-296+rbp] #160.32
+ mov QWORD PTR [-256+rbp], rdx #232.34
+ sbb rdx, QWORD PTR [-288+rbp] #161.32
+ mov QWORD PTR [-248+rbp], r8 #232.34
+ sbb r8, QWORD PTR [-280+rbp] #162.32
+ setb r12b #162.32
+ testq r12, r12;
+ cmovnzq rdi, rcx;
+ xor esi, esi #165.32
+ mov r12d, ecx #167.32
+ adcx r13, rcx #165.32
+ mov rsi, QWORD PTR [-112+rbp] #9.0[spill]
+ adcx r11, r12 #167.32
+ mov r12d, r10d #168.32
+ adcx rdx, rax #168.32
+ mov rax, QWORD PTR [-96+rbp] #172.1[spill]
+ setb r12b #168.32
+ and r14, rcx #170.30
+ cmp r10d, r12d #170.30
+ mov rcx, QWORD PTR [-104+rbp] #9.0[spill]
+ adcx r8, r14 #170.30
+ mov QWORD PTR [40+rax], rdx #172.1
+ mov QWORD PTR [48+rax], r11 #173.1
+ mov QWORD PTR [56+rax], r13 #174.1
+ mov QWORD PTR [32+rax], r8 #171.1
+ mov rdi, QWORD PTR [56+rcx] #9.0
+ testq rsi, rsi;
+ cmovnzq r13, rdi;
+ mov QWORD PTR [56+rax], rdi #234.5
+ mov r12, QWORD PTR [48+rcx] #9.0
+ testq rsi, rsi;
+ cmovnzq r11, r12;
+ mov QWORD PTR [48+rax], r12 #235.5
+ mov r10, QWORD PTR [40+rcx] #9.0
+ testq rsi, rsi;
+ cmovnzq rdx, r10;
+ mov QWORD PTR [40+rax], r10 #236.5
+ mov rcx, QWORD PTR [32+rcx] #9.0
+ testq rsi, rsi;
+ cmovnzq r8, rcx;
+ mov rsi, QWORD PTR [-88+rbp] #9.0[spill]
+ mov QWORD PTR [32+rax], rcx #237.5
+ mov rdx, QWORD PTR [-80+rbp] #9.0[spill]
+ mov r8, QWORD PTR [56+rsi] #9.0
+ testq rdx, rdx;
+ cmovnzq rdi, r8;
+ mov QWORD PTR [56+rax], r8 #9.0
+ mov r13, QWORD PTR [48+rsi] #9.0
+ testq rdx, rdx;
+ cmovnzq r12, r13;
+ mov QWORD PTR [48+rax], r13 #9.0
+ mov rdi, QWORD PTR [40+rsi] #9.0
+ testq rdx, rdx;
+ cmovnzq r10, rdi;
+ mov QWORD PTR [40+rax], rdi #9.0
+ mov r8, QWORD PTR [32+rsi] #9.0
+ testq rdx, rdx;
+ cmovnzq rcx, r8;
+ mov QWORD PTR [32+rax], r8 #9.0
+ vzeroupper #242.1
+ lea rsp, QWORD PTR [-32+rbp] #242.1
+ pop r15 #242.1
+ pop r14 #242.1
+ pop r13 #242.1
+ pop r12 #242.1
+ pop rbp #242.1
+ mov rsp, rbx #242.1
+ pop rbx #242.1
+ ret #242.1
diff --git a/src/Specific/NISTP256/AMD64/icc/measurements.txt b/src/Specific/NISTP256/AMD64/icc/measurements.txt
index 18729ea40..102afc182 100644
--- a/src/Specific/NISTP256/AMD64/icc/measurements.txt
+++ b/src/Specific/NISTP256/AMD64/icc/measurements.txt
@@ -1,2 +1,2 @@
1140 ashryn-noht-notb-noac-broadwell 2.60ghz 7.1.1 cac291e0
-1144 ashryn-noht-notb-ac-broadwell 2.60ghz 7.1.1 5397ade1
+1160 ashryn-noht-notb-ac-broadwell 2.50ghz 7.1.1 448af3b4
diff --git a/src/Specific/NISTP256/AMD64/measurements.txt b/src/Specific/NISTP256/AMD64/measurements.txt
index ac19ef2f4..1734b1b25 100644
--- a/src/Specific/NISTP256/AMD64/measurements.txt
+++ b/src/Specific/NISTP256/AMD64/measurements.txt
@@ -1,2 +1,2 @@
-1576 ashryn-noht-notb-ac-broadwell 2.60ghz 7.1.1 5397ade1
1576 ashryn-noht-notb-noac-broadwell 2.60ghz 7.1.1 cac291e0
+1688 ashryn-noht-notb-ac-broadwell 2.50ghz 7.1.1 448af3b4
diff --git a/src/Specific/NISTP256/AMD64/p256.h b/src/Specific/NISTP256/AMD64/p256.h
index db53b7696..4cf271dfd 100644
--- a/src/Specific/NISTP256/AMD64/p256.h
+++ b/src/Specific/NISTP256/AMD64/p256.h
@@ -1,2 +1,5 @@
-void p256_jacobian_add_affine(long long unsigned int r[12], long long unsigned int j[12], long long unsigned int a[8]);
-
+#include <stdint.h>
+void p256_jacobian_add_affine(
+ uint64_t P3[12],
+ uint64_t P1[12],
+ uint64_t P2[8]);
diff --git a/src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c b/src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c
index bd6d6dfb1..e51a45f17 100644
--- a/src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c
+++ b/src/Specific/NISTP256/AMD64/p256_jacobian_add_affine.c
@@ -1,311 +1,27 @@
#include <stdint.h>
#include <stdbool.h>
#include <x86intrin.h>
+#include "liblow.h"
#include "p256.h"
+#include "feadd.h"
+#include "fesub.h"
+#include "feopp.h"
+#include "femul.h"
+#include "fenz.h"
#undef force_inline
#define force_inline __attribute__((always_inline))
-#define uint64_t long long unsigned int
-
-inline uint64_t cmovcq(uint64_t c, uint64_t out_z, uint64_t out_nz) {
- uint64_t all_set_if_zero = (c-1);
- return (all_set_if_zero & out_z) | ((~all_set_if_zero)&out_nz);
+void force_inline fesquare(uint64_t o[4], uint64_t a, uint64_t b, uint64_t c, uint64_t d) {
+ femul(o,
+ a, b, c, d,
+ a, b, c, d);
}
-inline uint64_t fenonzero(uint64_t x5, uint64_t x6, uint64_t x4, uint64_t x2)
-{ uint64_t x7 = x6 | x5;
-{ uint64_t x8 = x4 | x7;
-{ uint64_t x9 = x2 | x8;
-return x9;
-}}}
-
-inline void feadd(uint64_t* out, uint64_t x8, uint64_t x9, uint64_t x7, uint64_t x5, uint64_t x14, uint64_t x15, uint64_t x13, uint64_t x11)
-{ uint64_t x17; uint8_t x18 = _addcarryx_u64(0x0, x5, x11, &x17);
-{ uint64_t x20; uint8_t x21 = _addcarryx_u64(x18, x7, x13, &x20);
-{ uint64_t x23; uint8_t x24 = _addcarryx_u64(x21, x9, x15, &x23);
-{ uint64_t x26; uint8_t x27 = _addcarryx_u64(x24, x8, x14, &x26);
-{ uint64_t x29; uint8_t x30 = _subborrow_u64(0x0, x17, 0xffffffffffffffffL, &x29);
-{ uint64_t x32; uint8_t x33 = _subborrow_u64(x30, x20, 0xffffffff, &x32);
-{ uint64_t x35; uint8_t x36 = _subborrow_u64(x33, x23, 0x0, &x35);
-{ uint64_t x38; uint8_t x39 = _subborrow_u64(x36, x26, 0xffffffff00000001L, &x38);
-{ uint64_t _; uint8_t x43 = _subborrow_u64(x39, x27, 0, &_);
-{ uint64_t x44 = cmovcq(x43, x38, x26);
-{ uint64_t x45 = cmovcq(x43, x35, x23);
-{ uint64_t x46 = cmovcq(x43, x32, x20);
-{ uint64_t x47 = cmovcq(x43, x29, x17);
-out[0] = x44;
-out[1] = x45;
-out[2] = x46;
-out[3] = x47;
-}}}}}}}}}}}}}
-
-inline void fesub(uint64_t* out, uint64_t x8, uint64_t x9, uint64_t x7, uint64_t x5, uint64_t x14, uint64_t x15, uint64_t x13, uint64_t x11)
-{ uint64_t x17; uint8_t x18 = _subborrow_u64(0x0, x5, x11, &x17);
-{ uint64_t x20; uint8_t x21 = _subborrow_u64(x18, x7, x13, &x20);
-{ uint64_t x23; uint8_t x24 = _subborrow_u64(x21, x9, x15, &x23);
-{ uint64_t x26; uint8_t x27 = _subborrow_u64(x24, x8, x14, &x26);
-{ uint64_t x28 = (uint64_t) (x27 == 0 ? 0x0 : 0xffffffffffffffffL); // subborrow_u64(x27, 0, 0)
-{ uint64_t x31; uint8_t x32 = _addcarryx_u64(0x0, x17, x28 & 0xffffffffffffffffL, &x31);
-{ uint64_t x35; uint8_t x36 = _addcarryx_u64(x32, x20, x28 & 0xffffffff, &x35);
-{ uint64_t x38; uint8_t x39 = _addcarryx_u64(x36, x23, 0x0, &x38);
-{ uint64_t x40; uint8_t _ = _addcarryx_u64(x39, x26, (x28 & 0xffffffff00000001L), &x40);
-out[0] = x40;
-out[1] = x38;
-out[2] = x35;
-out[3] = x31;
-}}}}}}}}}
-
-inline void feopp(uint64_t* out, uint64_t x5, uint64_t x6, uint64_t x4, uint64_t x2)
-{ uint64_t x8; uint8_t x9 = _subborrow_u64(0x0, 0x0, x2, &x8);
-{ uint64_t x11; uint8_t x12 = _subborrow_u64(x9, 0x0, x4, &x11);
-{ uint64_t x14; uint8_t x15 = _subborrow_u64(x12, 0x0, x6, &x14);
-{ uint64_t x17; uint8_t x18 = _subborrow_u64(x15, 0x0, x5, &x17);
-{ uint64_t x19 = (uint64_t) (x18 == 0 ? 0x0 : 0xffffffffffffffffL); // subborrow
-{ uint64_t x22; uint8_t x23 = _addcarryx_u64(0x0, x8, x19 & 0xffffffffffffffffL, &x22);
-{ uint64_t x26; uint8_t x27 = _addcarryx_u64(x23, x11, x19 & 0xffffffff, &x26);
-{ uint64_t x29; uint8_t x30 = _addcarryx_u64(x27, x14, 0x0, &x29);
-{ uint64_t x31; uint8_t _ = _addcarryx_u64(x30, x17, x19 & 0xffffffff00000001L, &x31);
-out[0] = x31;
-out[1] = x29;
-out[2] = x26;
-out[3] = x22;
-}}}}}}}}}
-
-inline void force_inline femul(uint64_t* out, uint64_t x8, uint64_t x9, uint64_t x7, uint64_t x5, uint64_t x14, uint64_t x15, uint64_t x13, uint64_t x11)
-{ uint64_t x17; uint64_t x18 = _mulx_u64(x5, x11, &x17);
-{ uint64_t x20; uint64_t x21 = _mulx_u64(x5, x13, &x20);
-{ uint64_t x23; uint64_t x24 = _mulx_u64(x5, x15, &x23);
-{ uint64_t x26; uint64_t x27 = _mulx_u64(x5, x14, &x26);
-{ uint64_t x29; uint8_t x30 = _addcarryx_u64(0x0, x18, x20, &x29);
-{ uint64_t x32; uint8_t x33 = _addcarryx_u64(x30, x21, x23, &x32);
-{ uint64_t x35; uint8_t x36 = _addcarryx_u64(x33, x24, x26, &x35);
-{ uint64_t x38; uint8_t _ = _addcarryx_u64(0x0, x36, x27, &x38);
-{ uint64_t x41; uint64_t x42 = _mulx_u64(x17, 0xffffffffffffffffL, &x41);
-{ uint64_t x44; uint64_t x45 = _mulx_u64(x17, 0xffffffff, &x44);
-{ uint64_t x47; uint64_t x48 = _mulx_u64(x17, 0xffffffff00000001L, &x47);
-{ uint64_t x50; uint8_t x51 = _addcarryx_u64(0x0, x42, x44, &x50);
-{ uint64_t x53; uint8_t x54 = _addcarryx_u64(x51, x45, 0x0, &x53);
-{ uint64_t x56; uint8_t x57 = _addcarryx_u64(x54, 0x0, x47, &x56);
-{ uint64_t x59; uint8_t _ = _addcarryx_u64(0x0, x57, x48, &x59);
-{ uint64_t _; uint8_t x63 = _addcarryx_u64(0x0, x17, x41, &_);
-{ uint64_t x65; uint8_t x66 = _addcarryx_u64(x63, x29, x50, &x65);
-{ uint64_t x68; uint8_t x69 = _addcarryx_u64(x66, x32, x53, &x68);
-{ uint64_t x71; uint8_t x72 = _addcarryx_u64(x69, x35, x56, &x71);
-{ uint64_t x74; uint8_t x75 = _addcarryx_u64(x72, x38, x59, &x74);
-{ uint64_t x77; uint64_t x78 = _mulx_u64(x7, x11, &x77);
-{ uint64_t x80; uint64_t x81 = _mulx_u64(x7, x13, &x80);
-{ uint64_t x83; uint64_t x84 = _mulx_u64(x7, x15, &x83);
-{ uint64_t x86; uint64_t x87 = _mulx_u64(x7, x14, &x86);
-{ uint64_t x89; uint8_t x90 = _addcarryx_u64(0x0, x78, x80, &x89);
-{ uint64_t x92; uint8_t x93 = _addcarryx_u64(x90, x81, x83, &x92);
-{ uint64_t x95; uint8_t x96 = _addcarryx_u64(x93, x84, x86, &x95);
-{ uint64_t x98; uint8_t _ = _addcarryx_u64(0x0, x96, x87, &x98);
-{ uint64_t x101; uint8_t x102 = _addcarryx_u64(0x0, x65, x77, &x101);
-{ uint64_t x104; uint8_t x105 = _addcarryx_u64(x102, x68, x89, &x104);
-{ uint64_t x107; uint8_t x108 = _addcarryx_u64(x105, x71, x92, &x107);
-{ uint64_t x110; uint8_t x111 = _addcarryx_u64(x108, x74, x95, &x110);
-{ uint64_t x113; uint8_t x114 = _addcarryx_u64(x111, x75, x98, &x113);
-{ uint64_t x116; uint64_t x117 = _mulx_u64(x101, 0xffffffffffffffffL, &x116);
-{ uint64_t x119; uint64_t x120 = _mulx_u64(x101, 0xffffffff, &x119);
-{ uint64_t x122; uint64_t x123 = _mulx_u64(x101, 0xffffffff00000001L, &x122);
-{ uint64_t x125; uint8_t x126 = _addcarryx_u64(0x0, x117, x119, &x125);
-{ uint64_t x128; uint8_t x129 = _addcarryx_u64(x126, x120, 0x0, &x128);
-{ uint64_t x131; uint8_t x132 = _addcarryx_u64(x129, 0x0, x122, &x131);
-{ uint64_t x134; uint8_t _ = _addcarryx_u64(0x0, x132, x123, &x134);
-{ uint64_t _; uint8_t x138 = _addcarryx_u64(0x0, x101, x116, &_);
-{ uint64_t x140; uint8_t x141 = _addcarryx_u64(x138, x104, x125, &x140);
-{ uint64_t x143; uint8_t x144 = _addcarryx_u64(x141, x107, x128, &x143);
-{ uint64_t x146; uint8_t x147 = _addcarryx_u64(x144, x110, x131, &x146);
-{ uint64_t x149; uint8_t x150 = _addcarryx_u64(x147, x113, x134, &x149);
-{ uint8_t x151 = x150 + x114;
-{ uint64_t x153; uint64_t x154 = _mulx_u64(x9, x11, &x153);
-{ uint64_t x156; uint64_t x157 = _mulx_u64(x9, x13, &x156);
-{ uint64_t x159; uint64_t x160 = _mulx_u64(x9, x15, &x159);
-{ uint64_t x162; uint64_t x163 = _mulx_u64(x9, x14, &x162);
-{ uint64_t x165; uint8_t x166 = _addcarryx_u64(0x0, x154, x156, &x165);
-{ uint64_t x168; uint8_t x169 = _addcarryx_u64(x166, x157, x159, &x168);
-{ uint64_t x171; uint8_t x172 = _addcarryx_u64(x169, x160, x162, &x171);
-{ uint64_t x174; uint8_t _ = _addcarryx_u64(0x0, x172, x163, &x174);
-{ uint64_t x177; uint8_t x178 = _addcarryx_u64(0x0, x140, x153, &x177);
-{ uint64_t x180; uint8_t x181 = _addcarryx_u64(x178, x143, x165, &x180);
-{ uint64_t x183; uint8_t x184 = _addcarryx_u64(x181, x146, x168, &x183);
-{ uint64_t x186; uint8_t x187 = _addcarryx_u64(x184, x149, x171, &x186);
-{ uint64_t x189; uint8_t x190 = _addcarryx_u64(x187, x151, x174, &x189);
-{ uint64_t x192; uint64_t x193 = _mulx_u64(x177, 0xffffffffffffffffL, &x192);
-{ uint64_t x195; uint64_t x196 = _mulx_u64(x177, 0xffffffff, &x195);
-{ uint64_t x198; uint64_t x199 = _mulx_u64(x177, 0xffffffff00000001L, &x198);
-{ uint64_t x201; uint8_t x202 = _addcarryx_u64(0x0, x193, x195, &x201);
-{ uint64_t x204; uint8_t x205 = _addcarryx_u64(x202, x196, 0x0, &x204);
-{ uint64_t x207; uint8_t x208 = _addcarryx_u64(x205, 0x0, x198, &x207);
-{ uint64_t x210; uint8_t _ = _addcarryx_u64(0x0, x208, x199, &x210);
-{ uint64_t _; uint8_t x214 = _addcarryx_u64(0x0, x177, x192, &_);
-{ uint64_t x216; uint8_t x217 = _addcarryx_u64(x214, x180, x201, &x216);
-{ uint64_t x219; uint8_t x220 = _addcarryx_u64(x217, x183, x204, &x219);
-{ uint64_t x222; uint8_t x223 = _addcarryx_u64(x220, x186, x207, &x222);
-{ uint64_t x225; uint8_t x226 = _addcarryx_u64(x223, x189, x210, &x225);
-{ uint8_t x227 = x226 + x190;
-{ uint64_t x229; uint64_t x230 = _mulx_u64(x8, x11, &x229);
-{ uint64_t x232; uint64_t x233 = _mulx_u64(x8, x13, &x232);
-{ uint64_t x235; uint64_t x236 = _mulx_u64(x8, x15, &x235);
-{ uint64_t x238; uint64_t x239 = _mulx_u64(x8, x14, &x238);
-{ uint64_t x241; uint8_t x242 = _addcarryx_u64(0x0, x230, x232, &x241);
-{ uint64_t x244; uint8_t x245 = _addcarryx_u64(x242, x233, x235, &x244);
-{ uint64_t x247; uint8_t x248 = _addcarryx_u64(x245, x236, x238, &x247);
-{ uint64_t x250; uint8_t _ = _addcarryx_u64(0x0, x248, x239, &x250);
-{ uint64_t x253; uint8_t x254 = _addcarryx_u64(0x0, x216, x229, &x253);
-{ uint64_t x256; uint8_t x257 = _addcarryx_u64(x254, x219, x241, &x256);
-{ uint64_t x259; uint8_t x260 = _addcarryx_u64(x257, x222, x244, &x259);
-{ uint64_t x262; uint8_t x263 = _addcarryx_u64(x260, x225, x247, &x262);
-{ uint64_t x265; uint8_t x266 = _addcarryx_u64(x263, x227, x250, &x265);
-{ uint64_t x268; uint64_t x269 = _mulx_u64(x253, 0xffffffffffffffffL, &x268);
-{ uint64_t x271; uint64_t x272 = _mulx_u64(x253, 0xffffffff, &x271);
-{ uint64_t x274; uint64_t x275 = _mulx_u64(x253, 0xffffffff00000001L, &x274);
-{ uint64_t x277; uint8_t x278 = _addcarryx_u64(0x0, x269, x271, &x277);
-{ uint64_t x280; uint8_t x281 = _addcarryx_u64(x278, x272, 0x0, &x280);
-{ uint64_t x283; uint8_t x284 = _addcarryx_u64(x281, 0x0, x274, &x283);
-{ uint64_t x286; uint8_t _ = _addcarryx_u64(0x0, x284, x275, &x286);
-{ uint64_t _; uint8_t x290 = _addcarryx_u64(0x0, x253, x268, &_);
-{ uint64_t x292; uint8_t x293 = _addcarryx_u64(x290, x256, x277, &x292);
-{ uint64_t x295; uint8_t x296 = _addcarryx_u64(x293, x259, x280, &x295);
-{ uint64_t x298; uint8_t x299 = _addcarryx_u64(x296, x262, x283, &x298);
-{ uint64_t x301; uint8_t x302 = _addcarryx_u64(x299, x265, x286, &x301);
-{ uint8_t x303 = x302 + x266;
-{ uint64_t x305; uint8_t x306 = _subborrow_u64(0x0, x292, 0xffffffffffffffffL, &x305);
-{ uint64_t x308; uint8_t x309 = _subborrow_u64(x306, x295, 0xffffffff, &x308);
-{ uint64_t x311; uint8_t x312 = _subborrow_u64(x309, x298, 0x0, &x311);
-{ uint64_t x314; uint8_t x315 = _subborrow_u64(x312, x301, 0xffffffff00000001L, &x314);
-{ uint64_t _; uint8_t x319 = _subborrow_u64(x315, x303, 0, &_);
-{ uint64_t x320 = cmovcq(x319, x314, x301);
-{ uint64_t x321 = cmovcq(x319, x311, x298);
-{ uint64_t x322 = cmovcq(x319, x308, x295);
-{ uint64_t x323 = cmovcq(x319, x305, x292);
-out[0] = x320;
-out[1] = x321;
-out[2] = x322;
-out[3] = x323;
-}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
-
-inline void force_inline fesquare(uint64_t* out, uint64_t x8, uint64_t x9, uint64_t x7, uint64_t x5)
-{ uint64_t x14 = x8; uint64_t x15 = x9; uint64_t x13 = x7; uint64_t x11 = x5;
-{ uint64_t x17; uint64_t x18 = _mulx_u64(x5, x11, &x17);
-{ uint64_t x20; uint64_t x21 = _mulx_u64(x5, x13, &x20);
-{ uint64_t x23; uint64_t x24 = _mulx_u64(x5, x15, &x23);
-{ uint64_t x26; uint64_t x27 = _mulx_u64(x5, x14, &x26);
-{ uint64_t x29; uint8_t x30 = _addcarryx_u64(0x0, x18, x20, &x29);
-{ uint64_t x32; uint8_t x33 = _addcarryx_u64(x30, x21, x23, &x32);
-{ uint64_t x35; uint8_t x36 = _addcarryx_u64(x33, x24, x26, &x35);
-{ uint64_t x38; uint8_t _ = _addcarryx_u64(0x0, x36, x27, &x38);
-{ uint64_t x41; uint64_t x42 = _mulx_u64(x17, 0xffffffffffffffffL, &x41);
-{ uint64_t x44; uint64_t x45 = _mulx_u64(x17, 0xffffffff, &x44);
-{ uint64_t x47; uint64_t x48 = _mulx_u64(x17, 0xffffffff00000001L, &x47);
-{ uint64_t x50; uint8_t x51 = _addcarryx_u64(0x0, x42, x44, &x50);
-{ uint64_t x53; uint8_t x54 = _addcarryx_u64(x51, x45, 0x0, &x53);
-{ uint64_t x56; uint8_t x57 = _addcarryx_u64(x54, 0x0, x47, &x56);
-{ uint64_t x59; uint8_t _ = _addcarryx_u64(0x0, x57, x48, &x59);
-{ uint64_t _; uint8_t x63 = _addcarryx_u64(0x0, x17, x41, &_);
-{ uint64_t x65; uint8_t x66 = _addcarryx_u64(x63, x29, x50, &x65);
-{ uint64_t x68; uint8_t x69 = _addcarryx_u64(x66, x32, x53, &x68);
-{ uint64_t x71; uint8_t x72 = _addcarryx_u64(x69, x35, x56, &x71);
-{ uint64_t x74; uint8_t x75 = _addcarryx_u64(x72, x38, x59, &x74);
-{ uint64_t x77; uint64_t x78 = _mulx_u64(x7, x11, &x77);
-{ uint64_t x80; uint64_t x81 = _mulx_u64(x7, x13, &x80);
-{ uint64_t x83; uint64_t x84 = _mulx_u64(x7, x15, &x83);
-{ uint64_t x86; uint64_t x87 = _mulx_u64(x7, x14, &x86);
-{ uint64_t x89; uint8_t x90 = _addcarryx_u64(0x0, x78, x80, &x89);
-{ uint64_t x92; uint8_t x93 = _addcarryx_u64(x90, x81, x83, &x92);
-{ uint64_t x95; uint8_t x96 = _addcarryx_u64(x93, x84, x86, &x95);
-{ uint64_t x98; uint8_t _ = _addcarryx_u64(0x0, x96, x87, &x98);
-{ uint64_t x101; uint8_t x102 = _addcarryx_u64(0x0, x65, x77, &x101);
-{ uint64_t x104; uint8_t x105 = _addcarryx_u64(x102, x68, x89, &x104);
-{ uint64_t x107; uint8_t x108 = _addcarryx_u64(x105, x71, x92, &x107);
-{ uint64_t x110; uint8_t x111 = _addcarryx_u64(x108, x74, x95, &x110);
-{ uint64_t x113; uint8_t x114 = _addcarryx_u64(x111, x75, x98, &x113);
-{ uint64_t x116; uint64_t x117 = _mulx_u64(x101, 0xffffffffffffffffL, &x116);
-{ uint64_t x119; uint64_t x120 = _mulx_u64(x101, 0xffffffff, &x119);
-{ uint64_t x122; uint64_t x123 = _mulx_u64(x101, 0xffffffff00000001L, &x122);
-{ uint64_t x125; uint8_t x126 = _addcarryx_u64(0x0, x117, x119, &x125);
-{ uint64_t x128; uint8_t x129 = _addcarryx_u64(x126, x120, 0x0, &x128);
-{ uint64_t x131; uint8_t x132 = _addcarryx_u64(x129, 0x0, x122, &x131);
-{ uint64_t x134; uint8_t _ = _addcarryx_u64(0x0, x132, x123, &x134);
-{ uint64_t _; uint8_t x138 = _addcarryx_u64(0x0, x101, x116, &_);
-{ uint64_t x140; uint8_t x141 = _addcarryx_u64(x138, x104, x125, &x140);
-{ uint64_t x143; uint8_t x144 = _addcarryx_u64(x141, x107, x128, &x143);
-{ uint64_t x146; uint8_t x147 = _addcarryx_u64(x144, x110, x131, &x146);
-{ uint64_t x149; uint8_t x150 = _addcarryx_u64(x147, x113, x134, &x149);
-{ uint8_t x151 = x150 + x114;
-{ uint64_t x153; uint64_t x154 = _mulx_u64(x9, x11, &x153);
-{ uint64_t x156; uint64_t x157 = _mulx_u64(x9, x13, &x156);
-{ uint64_t x159; uint64_t x160 = _mulx_u64(x9, x15, &x159);
-{ uint64_t x162; uint64_t x163 = _mulx_u64(x9, x14, &x162);
-{ uint64_t x165; uint8_t x166 = _addcarryx_u64(0x0, x154, x156, &x165);
-{ uint64_t x168; uint8_t x169 = _addcarryx_u64(x166, x157, x159, &x168);
-{ uint64_t x171; uint8_t x172 = _addcarryx_u64(x169, x160, x162, &x171);
-{ uint64_t x174; uint8_t _ = _addcarryx_u64(0x0, x172, x163, &x174);
-{ uint64_t x177; uint8_t x178 = _addcarryx_u64(0x0, x140, x153, &x177);
-{ uint64_t x180; uint8_t x181 = _addcarryx_u64(x178, x143, x165, &x180);
-{ uint64_t x183; uint8_t x184 = _addcarryx_u64(x181, x146, x168, &x183);
-{ uint64_t x186; uint8_t x187 = _addcarryx_u64(x184, x149, x171, &x186);
-{ uint64_t x189; uint8_t x190 = _addcarryx_u64(x187, x151, x174, &x189);
-{ uint64_t x192; uint64_t x193 = _mulx_u64(x177, 0xffffffffffffffffL, &x192);
-{ uint64_t x195; uint64_t x196 = _mulx_u64(x177, 0xffffffff, &x195);
-{ uint64_t x198; uint64_t x199 = _mulx_u64(x177, 0xffffffff00000001L, &x198);
-{ uint64_t x201; uint8_t x202 = _addcarryx_u64(0x0, x193, x195, &x201);
-{ uint64_t x204; uint8_t x205 = _addcarryx_u64(x202, x196, 0x0, &x204);
-{ uint64_t x207; uint8_t x208 = _addcarryx_u64(x205, 0x0, x198, &x207);
-{ uint64_t x210; uint8_t _ = _addcarryx_u64(0x0, x208, x199, &x210);
-{ uint64_t _; uint8_t x214 = _addcarryx_u64(0x0, x177, x192, &_);
-{ uint64_t x216; uint8_t x217 = _addcarryx_u64(x214, x180, x201, &x216);
-{ uint64_t x219; uint8_t x220 = _addcarryx_u64(x217, x183, x204, &x219);
-{ uint64_t x222; uint8_t x223 = _addcarryx_u64(x220, x186, x207, &x222);
-{ uint64_t x225; uint8_t x226 = _addcarryx_u64(x223, x189, x210, &x225);
-{ uint8_t x227 = x226 + x190;
-{ uint64_t x229; uint64_t x230 = _mulx_u64(x8, x11, &x229);
-{ uint64_t x232; uint64_t x233 = _mulx_u64(x8, x13, &x232);
-{ uint64_t x235; uint64_t x236 = _mulx_u64(x8, x15, &x235);
-{ uint64_t x238; uint64_t x239 = _mulx_u64(x8, x14, &x238);
-{ uint64_t x241; uint8_t x242 = _addcarryx_u64(0x0, x230, x232, &x241);
-{ uint64_t x244; uint8_t x245 = _addcarryx_u64(x242, x233, x235, &x244);
-{ uint64_t x247; uint8_t x248 = _addcarryx_u64(x245, x236, x238, &x247);
-{ uint64_t x250; uint8_t _ = _addcarryx_u64(0x0, x248, x239, &x250);
-{ uint64_t x253; uint8_t x254 = _addcarryx_u64(0x0, x216, x229, &x253);
-{ uint64_t x256; uint8_t x257 = _addcarryx_u64(x254, x219, x241, &x256);
-{ uint64_t x259; uint8_t x260 = _addcarryx_u64(x257, x222, x244, &x259);
-{ uint64_t x262; uint8_t x263 = _addcarryx_u64(x260, x225, x247, &x262);
-{ uint64_t x265; uint8_t x266 = _addcarryx_u64(x263, x227, x250, &x265);
-{ uint64_t x268; uint64_t x269 = _mulx_u64(x253, 0xffffffffffffffffL, &x268);
-{ uint64_t x271; uint64_t x272 = _mulx_u64(x253, 0xffffffff, &x271);
-{ uint64_t x274; uint64_t x275 = _mulx_u64(x253, 0xffffffff00000001L, &x274);
-{ uint64_t x277; uint8_t x278 = _addcarryx_u64(0x0, x269, x271, &x277);
-{ uint64_t x280; uint8_t x281 = _addcarryx_u64(x278, x272, 0x0, &x280);
-{ uint64_t x283; uint8_t x284 = _addcarryx_u64(x281, 0x0, x274, &x283);
-{ uint64_t x286; uint8_t _ = _addcarryx_u64(0x0, x284, x275, &x286);
-{ uint64_t _; uint8_t x290 = _addcarryx_u64(0x0, x253, x268, &_);
-{ uint64_t x292; uint8_t x293 = _addcarryx_u64(x290, x256, x277, &x292);
-{ uint64_t x295; uint8_t x296 = _addcarryx_u64(x293, x259, x280, &x295);
-{ uint64_t x298; uint8_t x299 = _addcarryx_u64(x296, x262, x283, &x298);
-{ uint64_t x301; uint8_t x302 = _addcarryx_u64(x299, x265, x286, &x301);
-{ uint8_t x303 = x302 + x266;
-{ uint64_t x305; uint8_t x306 = _subborrow_u64(0x0, x292, 0xffffffffffffffffL, &x305);
-{ uint64_t x308; uint8_t x309 = _subborrow_u64(x306, x295, 0xffffffff, &x308);
-{ uint64_t x311; uint8_t x312 = _subborrow_u64(x309, x298, 0x0, &x311);
-{ uint64_t x314; uint8_t x315 = _subborrow_u64(x312, x301, 0xffffffff00000001L, &x314);
-{ uint64_t _; uint8_t x319 = _subborrow_u64(x315, x303, 0, &_);
-{ uint64_t x320 = cmovcq(x319, x314, x301);
-{ uint64_t x321 = cmovcq(x319, x311, x298);
-{ uint64_t x322 = cmovcq(x319, x308, x295);
-{ uint64_t x323 = cmovcq(x319, x305, x292);
-out[0] = x320;
-out[1] = x321;
-out[2] = x322;
-out[3] = x323;
-}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
-
-
void p256_jacobian_add_affine(
+ uint64_t P3[12],
uint64_t P1[12],
- uint64_t P2[8],
- uint64_t P3[12]
+ uint64_t P2[8]
) {
uint64_t* X1 = P1;
uint64_t* Y1 = P1+4;
@@ -316,48 +32,49 @@ void p256_jacobian_add_affine(
uint64_t* Y3 = P3+4;
uint64_t* Z3 = P3+8;
uint64_t ZZ[4] = {0}; fesquare(ZZ, Z1[3], Z1[2], Z1[1], Z1[0]);
- uint64_t P1z = !fenonzero(Z1[3], Z1[2], Z1[1], Z1[0]);
+ uint64_t P1nz; fenz(&P1nz, X2[3], X2[2], X2[1], X2[0]);
uint64_t U2[4] = {0}; femul(ZZ, ZZ[3], ZZ[2], ZZ[1], ZZ[0], X2[3], X2[2], X2[1], X2[0]);
- uint64_t X2nz = fenonzero(X2[3], X2[2], X2[1], X2[0]);
+ uint64_t X2nz; fenz(&X2nz, X2[3], X2[2], X2[1], X2[0]);
uint64_t ZZZ[4] = {0}; femul(ZZZ, ZZ[3], ZZ[2], ZZ[1], ZZ[0], Z1[3], Z1[2], Z1[1], Z1[0]);
uint64_t H[4] = {0}; fesub(H, U2[3], U2[2], U2[1], U2[0], X1[3], X1[2], X1[1], X1[0]);
femul(Z3, Z1[3], Z1[2], Z1[1], Z1[0], H[3], H[2], H[1], H[0]);
- uint64_t P2z = !(X2nz | fenonzero(Y2[3], Y2[2], Y2[1], Y2[0]));
+ uint64_t Y2nz; fenz(&Y2nz, Y2[3], Y2[2], Y2[1], Y2[0]);
+ uint64_t P2nz = X2nz | Y2nz;
uint64_t S2[4] = {0}; femul(S2, ZZZ[3], ZZZ[2], ZZZ[1], ZZZ[0], Y2[3], Y2[2], Y2[1], Y2[0]);
uint64_t R[4] = {0}; fesub(R, S2[3], S2[2], S2[1], S2[0], Y1[3], Y1[2], Y1[1], Y1[0]);
uint64_t HH[4] = {0}; fesquare(HH, H[3], H[2], H[1], H[0]);
uint64_t RR[4] = {0}; fesquare(RR, R[3], R[2], R[1], R[0]);
uint64_t HHH[4] = {0}; femul(HHH, HH[3], HH[2], HH[1], HH[0], H[3], H[2], H[1], H[0]);
- Z3[3] = cmovcq(P1z, Z3[3], 0x0000000000000001);
- Z3[2] = cmovcq(P1z, Z3[2], 0xffffffff00000000);
- Z3[1] = cmovcq(P1z, Z3[1], 0xffffffffffffffff);
- Z3[0] = cmovcq(P1z, Z3[0], 0xffffffffffffffff);
- Z3[3] = cmovcq(P2z, Z3[3], Z1[3]);
- Z3[2] = cmovcq(P2z, Z3[2], Z1[2]);
- Z3[1] = cmovcq(P2z, Z3[1], Z1[1]);
- Z3[0] = cmovcq(P2z, Z3[0], Z1[0]);
+ Z3[3] = cmovznz(P1nz, 0x0000000000000001, Z3[3]);
+ Z3[2] = cmovznz(P1nz, 0xffffffff00000000, Z3[2]);
+ Z3[1] = cmovznz(P1nz, 0xffffffffffffffff, Z3[1]);
+ Z3[0] = cmovznz(P1nz, 0xffffffffffffffff, Z3[0]);
+ Z3[3] = cmovznz(P2nz, Z1[3], Z3[3]);
+ Z3[2] = cmovznz(P2nz, Z1[2], Z3[2]);
+ Z3[1] = cmovznz(P2nz, Z1[1], Z3[1]);
+ Z3[0] = cmovznz(P2nz, Z1[0], Z3[0]);
uint64_t HHX[4] = {0}; femul(HH, HH[3], HH[2], HH[1], HH[0], X1[3], X1[2], X1[1], X1[0]);
uint64_t T10[4] = {0}; feadd(T10, HHX[3], HHX[2], HHX[1], HHX[0], HHX[3], HHX[2], HHX[1], HHX[0]);
uint64_t E4[4] = {0}; fesub(E4, RR[3], RR[2], RR[1], RR[0], T10[3], T10[2], T10[1], T10[0]);
fesub(X3, E4[3], E4[2], E4[1], E4[0], HHH[3], HHH[2], HHH[1], HHH[0]);
- X3[3] = cmovcq(P1z, X3[3], X2[3]);
- X3[2] = cmovcq(P1z, X3[2], X2[2]);
- X3[1] = cmovcq(P1z, X3[1], X2[1]);
- X3[0] = cmovcq(P1z, X3[0], X2[0]);
- X3[3] = cmovcq(P2z, X3[3], X1[3]);
- X3[2] = cmovcq(P2z, X3[2], X1[2]);
- X3[1] = cmovcq(P2z, X3[1], X1[1]);
- X3[0] = cmovcq(P2z, X3[0], X1[0]);
+ X3[3] = cmovznz(P1nz, X2[3], X3[3]);
+ X3[2] = cmovznz(P1nz, X2[2], X3[2]);
+ X3[1] = cmovznz(P1nz, X2[1], X3[1]);
+ X3[0] = cmovznz(P1nz, X2[0], X3[0]);
+ X3[3] = cmovznz(P2nz, X1[3], X3[3]);
+ X3[2] = cmovznz(P2nz, X1[2], X3[2]);
+ X3[1] = cmovznz(P2nz, X1[1], X3[1]);
+ X3[0] = cmovznz(P2nz, X1[0], X3[0]);
uint64_t T13[4] = {0}; femul(T13, HHH[3], HHH[2], HHH[1], HHH[0], Y1[3], Y1[2], Y1[1], Y1[0]);
uint64_t T11[4] = {0}; fesub(T11, HHX[3], HHX[2], HHX[1], HHX[0], X3[3], X3[2], X3[1], X3[0]);
uint64_t T12[4] = {0}; femul(T12, T11[3], T11[2], T11[1], T11[0], R[3], R[2], R[1], R[0]);
fesub(Y3, T12[3], T12[2], T12[1], T12[0], T13[3], T13[2], T13[1], T13[0]);
- Y3[3] = cmovcq(P1z, Y3[3], Y2[3]);
- Y3[2] = cmovcq(P1z, Y3[2], Y2[2]);
- Y3[1] = cmovcq(P1z, Y3[1], Y2[1]);
- Y3[0] = cmovcq(P1z, Y3[0], Y2[0]);
- Y3[3] = cmovcq(P2z, Y3[3], Y1[3]);
- Y3[2] = cmovcq(P2z, Y3[2], Y1[2]);
- Y3[1] = cmovcq(P2z, Y3[1], Y1[1]);
- Y3[0] = cmovcq(P2z, Y3[0], Y1[0]);
+ Y3[3] = cmovznz(P1nz, Y2[3], Y3[3]);
+ Y3[2] = cmovznz(P1nz, Y2[2], Y3[2]);
+ Y3[1] = cmovznz(P1nz, Y2[1], Y3[1]);
+ Y3[0] = cmovznz(P1nz, Y2[0], Y3[0]);
+ Y3[3] = cmovznz(P2nz, Y1[3], Y3[3]);
+ Y3[2] = cmovznz(P2nz, Y1[2], Y3[2]);
+ Y3[1] = cmovznz(P2nz, Y1[1], Y3[1]);
+ Y3[0] = cmovznz(P2nz, Y1[0], Y3[0]);
}
diff --git a/src/Specific/X25519/C64/measurements.txt b/src/Specific/X25519/C64/measurements.txt
index ca5941207..e9ef5a5a7 100644
--- a/src/Specific/X25519/C64/measurements.txt
+++ b/src/Specific/X25519/C64/measurements.txt
@@ -1,4 +1,4 @@
-156081 ashryn-ht-tb-ac-broadwell 2.78ghz 7.1.1 83ddc573
+136156 ashryn-ht-tb-ac-broadwell 3.10ghz 7.1.1 448af3b4
168279 JASONGROSS-X230-ht-tb-nops-ivybridge 2.90ghz 6.3.0 c003b54
168380 ashryn-noht-notb-ac-broadwell 2.60ghz 7.1.1 5397ade1
168628 ashryn-noht-notb-noac-broadwell 2.60ghz 7.1.1 cac291e0
diff --git a/third_party/openssl-nistp256c64/measurements.txt b/third_party/openssl-nistp256c64/measurements.txt
new file mode 100644
index 000000000..7d03767b5
--- /dev/null
+++ b/third_party/openssl-nistp256c64/measurements.txt
@@ -0,0 +1 @@
+2040 ashryn-noht-notb-ac-broadwell 2.50ghz 7.1.1 8ae1ab29