summaryrefslogtreecommitdiffstats
path: root/third_party/boringssl
diff options
context:
space:
mode:
authoragl <agl@chromium.org>2015-01-26 12:41:14 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-26 20:43:36 +0000
commit219c3430f08e264b469a329651c253b9b3c8e2b3 (patch)
treeef0b5ed871005ba314853fd03fe26526fd977893 /third_party/boringssl
parent8a282af93f01dd53540eb1cd3531598ce687f668 (diff)
downloadchromium_src-219c3430f08e264b469a329651c253b9b3c8e2b3.zip
chromium_src-219c3430f08e264b469a329651c253b9b3c8e2b3.tar.gz
chromium_src-219c3430f08e264b469a329651c253b9b3c8e2b3.tar.bz2
Roll BoringSSL.
347f025 Remove unused modexp512-x86_64.pl. 6ae7f07 Only send sigalgs extension in 1.2-capable ClientHellos. 4189bd9 Test application data and Finished reordering. 78e6978 Disable NPN and Channel ID in DTLS. 33e799f Don't allow CCS just before CertificateVerify in DTLS. c898ce7 Add generated documentation to .gitignore 2a0e72f Fix segfault with empty fields as last in the config. df1cda3 Use inner algorithm when printing certificate. e3b2467 sha256-armv4.pl: fix typo. 8604eda Add Broadwell performance results. See https://code.google.com/p/webrtc/issues/detail?id=4223 BUG=none Review URL: https://codereview.chromium.org/874363003 Cr-Commit-Position: refs/heads/master@{#313124}
Diffstat (limited to 'third_party/boringssl')
-rw-r--r--third_party/boringssl/boringssl.gypi3
-rw-r--r--third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S2
-rw-r--r--third_party/boringssl/linux-x86_64/crypto/bn/modexp512-x86_64.S1776
-rw-r--r--third_party/boringssl/mac-x86_64/crypto/bn/modexp512-x86_64.S1776
-rw-r--r--third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm1885
5 files changed, 1 insertions, 5441 deletions
diff --git a/third_party/boringssl/boringssl.gypi b/third_party/boringssl/boringssl.gypi
index b61dc77..2691ef8 100644
--- a/third_party/boringssl/boringssl.gypi
+++ b/third_party/boringssl/boringssl.gypi
@@ -353,7 +353,6 @@
'linux-x86_64/crypto/aes/aesni-x86_64.S',
'linux-x86_64/crypto/aes/bsaes-x86_64.S',
'linux-x86_64/crypto/aes/vpaes-x86_64.S',
- 'linux-x86_64/crypto/bn/modexp512-x86_64.S',
'linux-x86_64/crypto/bn/rsaz-avx2.S',
'linux-x86_64/crypto/bn/rsaz-x86_64.S',
'linux-x86_64/crypto/bn/x86_64-mont.S',
@@ -388,7 +387,6 @@
'mac-x86_64/crypto/aes/aesni-x86_64.S',
'mac-x86_64/crypto/aes/bsaes-x86_64.S',
'mac-x86_64/crypto/aes/vpaes-x86_64.S',
- 'mac-x86_64/crypto/bn/modexp512-x86_64.S',
'mac-x86_64/crypto/bn/rsaz-avx2.S',
'mac-x86_64/crypto/bn/rsaz-x86_64.S',
'mac-x86_64/crypto/bn/x86_64-mont.S',
@@ -423,7 +421,6 @@
'win-x86_64/crypto/aes/aesni-x86_64.asm',
'win-x86_64/crypto/aes/bsaes-x86_64.asm',
'win-x86_64/crypto/aes/vpaes-x86_64.asm',
- 'win-x86_64/crypto/bn/modexp512-x86_64.asm',
'win-x86_64/crypto/bn/rsaz-avx2.asm',
'win-x86_64/crypto/bn/rsaz-x86_64.asm',
'win-x86_64/crypto/bn/x86_64-mont.asm',
diff --git a/third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S b/third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S
index 289b58f..bf1ce4f 100644
--- a/third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S
+++ b/third_party/boringssl/linux-arm/crypto/sha/sha256-armv4.S
@@ -2690,6 +2690,6 @@ sha256_block_data_order_armv8:
#endif
.asciz "SHA256 block transform for ARMv4/NEON/ARMv8, CRYPTOGAMS by <appro@openssl.org>"
.align 2
-#if __ARM_MARCH_ARCH__>=7
+#if __ARM_MAX_ARCH__>=7
.comm OPENSSL_armcap_P,4,4
#endif
diff --git a/third_party/boringssl/linux-x86_64/crypto/bn/modexp512-x86_64.S b/third_party/boringssl/linux-x86_64/crypto/bn/modexp512-x86_64.S
deleted file mode 100644
index e49a2cb..0000000
--- a/third_party/boringssl/linux-x86_64/crypto/bn/modexp512-x86_64.S
+++ /dev/null
@@ -1,1776 +0,0 @@
-#if defined(__x86_64__)
-.text
-
-.type MULADD_128x512,@function
-.align 16
-MULADD_128x512:
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- movq %r8,0(%rcx)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq 8(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- movq %r9,8(%rcx)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%r9
- .byte 0xf3,0xc3
-.size MULADD_128x512,.-MULADD_128x512
-.type mont_reduce,@function
-.align 16
-mont_reduce:
- leaq 192(%rsp),%rdi
- movq 32(%rsp),%rsi
- addq $576,%rsi
- leaq 520(%rsp),%rcx
-
- movq 96(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- movq (%rcx),%r8
- addq %rax,%r8
- adcq $0,%rdx
- movq %r8,0(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- movq 8(%rcx),%r9
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- movq 16(%rcx),%r10
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- movq 24(%rcx),%r11
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- movq 32(%rcx),%r12
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- movq 40(%rcx),%r13
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- movq 48(%rcx),%r14
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- movq 56(%rcx),%r15
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq 104(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- movq %r9,8(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%r9
- movq 112(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- movq %r10,16(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%r10
- movq 120(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,24(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- xorq %rax,%rax
-
- addq 64(%rcx),%r8
- adcq 72(%rcx),%r9
- adcq 80(%rcx),%r10
- adcq 88(%rcx),%r11
- adcq $0,%rax
-
-
-
-
- movq %r8,64(%rdi)
- movq %r9,72(%rdi)
- movq %r10,%rbp
- movq %r11,88(%rdi)
-
- movq %rax,384(%rsp)
-
- movq 0(%rdi),%r8
- movq 8(%rdi),%r9
- movq 16(%rdi),%r10
- movq 24(%rdi),%r11
-
-
-
-
-
-
-
-
- addq $80,%rdi
-
- addq $64,%rsi
- leaq 296(%rsp),%rcx
-
- call MULADD_128x512
-
- movq 384(%rsp),%rax
-
-
- addq -16(%rdi),%r8
- adcq -8(%rdi),%r9
- movq %r8,64(%rcx)
- movq %r9,72(%rcx)
-
- adcq %rax,%rax
- movq %rax,384(%rsp)
-
- leaq 192(%rsp),%rdi
- addq $64,%rsi
-
-
-
-
-
- movq (%rsi),%r8
- movq 8(%rsi),%rbx
-
- movq (%rcx),%rax
- mulq %r8
- movq %rax,%rbp
- movq %rdx,%r9
-
- movq 8(%rcx),%rax
- mulq %r8
- addq %rax,%r9
-
- movq (%rcx),%rax
- mulq %rbx
- addq %rax,%r9
-
- movq %r9,8(%rdi)
-
-
- subq $192,%rsi
-
- movq (%rcx),%r8
- movq 8(%rcx),%r9
-
- call MULADD_128x512
-
-
-
-
- movq 0(%rsi),%rax
- movq 8(%rsi),%rbx
- movq 16(%rsi),%rdi
- movq 24(%rsi),%rdx
-
-
- movq 384(%rsp),%rbp
-
- addq 64(%rcx),%r8
- adcq 72(%rcx),%r9
-
-
- adcq %rbp,%rbp
-
-
-
- shlq $3,%rbp
- movq 32(%rsp),%rcx
- addq %rcx,%rbp
-
-
- xorq %rsi,%rsi
-
- addq 0(%rbp),%r10
- adcq 64(%rbp),%r11
- adcq 128(%rbp),%r12
- adcq 192(%rbp),%r13
- adcq 256(%rbp),%r14
- adcq 320(%rbp),%r15
- adcq 384(%rbp),%r8
- adcq 448(%rbp),%r9
-
-
-
- sbbq $0,%rsi
-
-
- andq %rsi,%rax
- andq %rsi,%rbx
- andq %rsi,%rdi
- andq %rsi,%rdx
-
- movq $1,%rbp
- subq %rax,%r10
- sbbq %rbx,%r11
- sbbq %rdi,%r12
- sbbq %rdx,%r13
-
-
-
-
- sbbq $0,%rbp
-
-
-
- addq $512,%rcx
- movq 32(%rcx),%rax
- movq 40(%rcx),%rbx
- movq 48(%rcx),%rdi
- movq 56(%rcx),%rdx
-
-
-
- andq %rsi,%rax
- andq %rsi,%rbx
- andq %rsi,%rdi
- andq %rsi,%rdx
-
-
-
- subq $1,%rbp
-
- sbbq %rax,%r14
- sbbq %rbx,%r15
- sbbq %rdi,%r8
- sbbq %rdx,%r9
-
-
-
- movq 144(%rsp),%rsi
- movq %r10,0(%rsi)
- movq %r11,8(%rsi)
- movq %r12,16(%rsi)
- movq %r13,24(%rsi)
- movq %r14,32(%rsi)
- movq %r15,40(%rsi)
- movq %r8,48(%rsi)
- movq %r9,56(%rsi)
-
- .byte 0xf3,0xc3
-.size mont_reduce,.-mont_reduce
-.type mont_mul_a3b,@function
-.align 16
-mont_mul_a3b:
-
-
-
-
- movq 0(%rdi),%rbp
-
- movq %r10,%rax
- mulq %rbp
- movq %rax,520(%rsp)
- movq %rdx,%r10
- movq %r11,%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- movq %r12,%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- movq %rdx,%r12
- movq %r13,%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- movq %rdx,%r13
- movq %r14,%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- movq %rdx,%r14
- movq %r15,%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- movq %rdx,%r15
- movq %r8,%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq %r9,%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- movq %rdx,%r9
- movq 8(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- movq %r10,528(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%r10
- movq 16(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,536(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- movq 24(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- movq %r12,544(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%r12
- movq 32(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- movq %r13,552(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%r13
- movq 40(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- movq %r14,560(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%r14
- movq 48(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- movq %r15,568(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%r15
- movq 56(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- movq %r8,576(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq %r9,584(%rsp)
- movq %r10,592(%rsp)
- movq %r11,600(%rsp)
- movq %r12,608(%rsp)
- movq %r13,616(%rsp)
- movq %r14,624(%rsp)
- movq %r15,632(%rsp)
- movq %r8,640(%rsp)
-
-
-
-
-
- jmp mont_reduce
-
-
-.size mont_mul_a3b,.-mont_mul_a3b
-.type sqr_reduce,@function
-.align 16
-sqr_reduce:
- movq 16(%rsp),%rcx
-
-
-
- movq %r10,%rbx
-
- movq %r11,%rax
- mulq %rbx
- movq %rax,528(%rsp)
- movq %rdx,%r10
- movq %r12,%rax
- mulq %rbx
- addq %rax,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- movq %r13,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- movq %rdx,%r12
- movq %r14,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- movq %rdx,%r13
- movq %r15,%rax
- mulq %rbx
- addq %rax,%r13
- adcq $0,%rdx
- movq %rdx,%r14
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r14
- adcq $0,%rdx
- movq %rdx,%r15
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- movq %rdx,%rsi
-
- movq %r10,536(%rsp)
-
-
-
-
-
- movq 8(%rcx),%rbx
-
- movq 16(%rcx),%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,544(%rsp)
-
- movq %rdx,%r10
- movq 24(%rcx),%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- addq %r10,%r12
- adcq $0,%rdx
- movq %r12,552(%rsp)
-
- movq %rdx,%r10
- movq 32(%rcx),%rax
- mulq %rbx
- addq %rax,%r13
- adcq $0,%rdx
- addq %r10,%r13
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%r14
- adcq $0,%rdx
- addq %r10,%r14
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- addq %r10,%r15
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%rsi
- adcq $0,%rdx
- addq %r10,%rsi
- adcq $0,%rdx
-
- movq %rdx,%r11
-
-
-
-
- movq 16(%rcx),%rbx
-
- movq 24(%rcx),%rax
- mulq %rbx
- addq %rax,%r13
- adcq $0,%rdx
- movq %r13,560(%rsp)
-
- movq %rdx,%r10
- movq 32(%rcx),%rax
- mulq %rbx
- addq %rax,%r14
- adcq $0,%rdx
- addq %r10,%r14
- adcq $0,%rdx
- movq %r14,568(%rsp)
-
- movq %rdx,%r10
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- addq %r10,%r15
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%rsi
- adcq $0,%rdx
- addq %r10,%rsi
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- addq %r10,%r11
- adcq $0,%rdx
-
- movq %rdx,%r12
-
-
-
-
-
- movq 24(%rcx),%rbx
-
- movq 32(%rcx),%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- movq %r15,576(%rsp)
-
- movq %rdx,%r10
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%rsi
- adcq $0,%rdx
- addq %r10,%rsi
- adcq $0,%rdx
- movq %rsi,584(%rsp)
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- addq %r10,%r11
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- addq %r10,%r12
- adcq $0,%rdx
-
- movq %rdx,%r15
-
-
-
-
- movq 32(%rcx),%rbx
-
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,592(%rsp)
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- addq %r10,%r12
- adcq $0,%rdx
- movq %r12,600(%rsp)
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- addq %r10,%r15
- adcq $0,%rdx
-
- movq %rdx,%r11
-
-
-
-
- movq 40(%rcx),%rbx
-
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- movq %r15,608(%rsp)
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- addq %r10,%r11
- adcq $0,%rdx
- movq %r11,616(%rsp)
-
- movq %rdx,%r12
-
-
-
-
- movq %r8,%rbx
-
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- movq %r12,624(%rsp)
-
- movq %rdx,632(%rsp)
-
-
- movq 528(%rsp),%r10
- movq 536(%rsp),%r11
- movq 544(%rsp),%r12
- movq 552(%rsp),%r13
- movq 560(%rsp),%r14
- movq 568(%rsp),%r15
-
- movq 24(%rcx),%rax
- mulq %rax
- movq %rax,%rdi
- movq %rdx,%r8
-
- addq %r10,%r10
- adcq %r11,%r11
- adcq %r12,%r12
- adcq %r13,%r13
- adcq %r14,%r14
- adcq %r15,%r15
- adcq $0,%r8
-
- movq 0(%rcx),%rax
- mulq %rax
- movq %rax,520(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rcx),%rax
- mulq %rax
-
- addq %rbx,%r10
- adcq %rax,%r11
- adcq $0,%rdx
-
- movq %rdx,%rbx
- movq %r10,528(%rsp)
- movq %r11,536(%rsp)
-
- movq 16(%rcx),%rax
- mulq %rax
-
- addq %rbx,%r12
- adcq %rax,%r13
- adcq $0,%rdx
-
- movq %rdx,%rbx
-
- movq %r12,544(%rsp)
- movq %r13,552(%rsp)
-
- xorq %rbp,%rbp
- addq %rbx,%r14
- adcq %rdi,%r15
- adcq $0,%rbp
-
- movq %r14,560(%rsp)
- movq %r15,568(%rsp)
-
-
-
-
- movq 576(%rsp),%r10
- movq 584(%rsp),%r11
- movq 592(%rsp),%r12
- movq 600(%rsp),%r13
- movq 608(%rsp),%r14
- movq 616(%rsp),%r15
- movq 624(%rsp),%rdi
- movq 632(%rsp),%rsi
-
- movq %r9,%rax
- mulq %rax
- movq %rax,%r9
- movq %rdx,%rbx
-
- addq %r10,%r10
- adcq %r11,%r11
- adcq %r12,%r12
- adcq %r13,%r13
- adcq %r14,%r14
- adcq %r15,%r15
- adcq %rdi,%rdi
- adcq %rsi,%rsi
- adcq $0,%rbx
-
- addq %rbp,%r10
-
- movq 32(%rcx),%rax
- mulq %rax
-
- addq %r8,%r10
- adcq %rax,%r11
- adcq $0,%rdx
-
- movq %rdx,%rbp
-
- movq %r10,576(%rsp)
- movq %r11,584(%rsp)
-
- movq 40(%rcx),%rax
- mulq %rax
-
- addq %rbp,%r12
- adcq %rax,%r13
- adcq $0,%rdx
-
- movq %rdx,%rbp
-
- movq %r12,592(%rsp)
- movq %r13,600(%rsp)
-
- movq 48(%rcx),%rax
- mulq %rax
-
- addq %rbp,%r14
- adcq %rax,%r15
- adcq $0,%rdx
-
- movq %r14,608(%rsp)
- movq %r15,616(%rsp)
-
- addq %rdx,%rdi
- adcq %r9,%rsi
- adcq $0,%rbx
-
- movq %rdi,624(%rsp)
- movq %rsi,632(%rsp)
- movq %rbx,640(%rsp)
-
- jmp mont_reduce
-
-
-.size sqr_reduce,.-sqr_reduce
-.globl mod_exp_512
-.hidden mod_exp_512
-.type mod_exp_512,@function
-mod_exp_512:
- pushq %rbp
- pushq %rbx
- pushq %r12
- pushq %r13
- pushq %r14
- pushq %r15
-
-
- movq %rsp,%r8
- subq $2688,%rsp
- andq $-64,%rsp
-
-
- movq %r8,0(%rsp)
- movq %rdi,8(%rsp)
- movq %rsi,16(%rsp)
- movq %rcx,24(%rsp)
-.Lbody:
-
-
-
- pxor %xmm4,%xmm4
- movdqu 0(%rsi),%xmm0
- movdqu 16(%rsi),%xmm1
- movdqu 32(%rsi),%xmm2
- movdqu 48(%rsi),%xmm3
- movdqa %xmm4,512(%rsp)
- movdqa %xmm4,528(%rsp)
- movdqa %xmm4,608(%rsp)
- movdqa %xmm4,624(%rsp)
- movdqa %xmm0,544(%rsp)
- movdqa %xmm1,560(%rsp)
- movdqa %xmm2,576(%rsp)
- movdqa %xmm3,592(%rsp)
-
-
- movdqu 0(%rdx),%xmm0
- movdqu 16(%rdx),%xmm1
- movdqu 32(%rdx),%xmm2
- movdqu 48(%rdx),%xmm3
-
- leaq 384(%rsp),%rbx
- movq %rbx,136(%rsp)
- call mont_reduce
-
-
- leaq 448(%rsp),%rcx
- xorq %rax,%rax
- movq %rax,0(%rcx)
- movq %rax,8(%rcx)
- movq %rax,24(%rcx)
- movq %rax,32(%rcx)
- movq %rax,40(%rcx)
- movq %rax,48(%rcx)
- movq %rax,56(%rcx)
- movq %rax,128(%rsp)
- movq $1,16(%rcx)
-
- leaq 640(%rsp),%rbp
- movq %rcx,%rsi
- movq %rbp,%rdi
- movq $8,%rax
-loop_0:
- movq (%rcx),%rbx
- movw %bx,(%rdi)
- shrq $16,%rbx
- movw %bx,64(%rdi)
- shrq $16,%rbx
- movw %bx,128(%rdi)
- shrq $16,%rbx
- movw %bx,192(%rdi)
- leaq 8(%rcx),%rcx
- leaq 256(%rdi),%rdi
- decq %rax
- jnz loop_0
- movq $31,%rax
- movq %rax,32(%rsp)
- movq %rbp,40(%rsp)
-
- movq %rsi,136(%rsp)
- movq 0(%rsi),%r10
- movq 8(%rsi),%r11
- movq 16(%rsi),%r12
- movq 24(%rsi),%r13
- movq 32(%rsi),%r14
- movq 40(%rsi),%r15
- movq 48(%rsi),%r8
- movq 56(%rsi),%r9
-init_loop:
- leaq 384(%rsp),%rdi
- call mont_mul_a3b
- leaq 448(%rsp),%rsi
- movq 40(%rsp),%rbp
- addq $2,%rbp
- movq %rbp,40(%rsp)
- movq %rsi,%rcx
- movq $8,%rax
-loop_1:
- movq (%rcx),%rbx
- movw %bx,(%rbp)
- shrq $16,%rbx
- movw %bx,64(%rbp)
- shrq $16,%rbx
- movw %bx,128(%rbp)
- shrq $16,%rbx
- movw %bx,192(%rbp)
- leaq 8(%rcx),%rcx
- leaq 256(%rbp),%rbp
- decq %rax
- jnz loop_1
- movq 32(%rsp),%rax
- subq $1,%rax
- movq %rax,32(%rsp)
- jne init_loop
-
-
-
- movdqa %xmm0,64(%rsp)
- movdqa %xmm1,80(%rsp)
- movdqa %xmm2,96(%rsp)
- movdqa %xmm3,112(%rsp)
-
-
-
-
-
- movl 126(%rsp),%eax
- movq %rax,%rdx
- shrq $11,%rax
- andl $2047,%edx
- movl %edx,126(%rsp)
- leaq 640(%rsp,%rax,2),%rsi
- movq 8(%rsp),%rdx
- movq $4,%rbp
-loop_2:
- movzwq 192(%rsi),%rbx
- movzwq 448(%rsi),%rax
- shlq $16,%rbx
- shlq $16,%rax
- movw 128(%rsi),%bx
- movw 384(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 64(%rsi),%bx
- movw 320(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 0(%rsi),%bx
- movw 256(%rsi),%ax
- movq %rbx,0(%rdx)
- movq %rax,8(%rdx)
- leaq 512(%rsi),%rsi
- leaq 16(%rdx),%rdx
- subq $1,%rbp
- jnz loop_2
- movq $505,48(%rsp)
-
- movq 8(%rsp),%rcx
- movq %rcx,136(%rsp)
- movq 0(%rcx),%r10
- movq 8(%rcx),%r11
- movq 16(%rcx),%r12
- movq 24(%rcx),%r13
- movq 32(%rcx),%r14
- movq 40(%rcx),%r15
- movq 48(%rcx),%r8
- movq 56(%rcx),%r9
- jmp sqr_2
-
-main_loop_a3b:
- call sqr_reduce
- call sqr_reduce
- call sqr_reduce
-sqr_2:
- call sqr_reduce
- call sqr_reduce
-
-
-
- movq 48(%rsp),%rcx
- movq %rcx,%rax
- shrq $4,%rax
- movl 64(%rsp,%rax,2),%edx
- andq $15,%rcx
- shrq %cl,%rdx
- andq $31,%rdx
-
- leaq 640(%rsp,%rdx,2),%rsi
- leaq 448(%rsp),%rdx
- movq %rdx,%rdi
- movq $4,%rbp
-loop_3:
- movzwq 192(%rsi),%rbx
- movzwq 448(%rsi),%rax
- shlq $16,%rbx
- shlq $16,%rax
- movw 128(%rsi),%bx
- movw 384(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 64(%rsi),%bx
- movw 320(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 0(%rsi),%bx
- movw 256(%rsi),%ax
- movq %rbx,0(%rdx)
- movq %rax,8(%rdx)
- leaq 512(%rsi),%rsi
- leaq 16(%rdx),%rdx
- subq $1,%rbp
- jnz loop_3
- movq 8(%rsp),%rsi
- call mont_mul_a3b
-
-
-
- movq 48(%rsp),%rcx
- subq $5,%rcx
- movq %rcx,48(%rsp)
- jge main_loop_a3b
-
-
-
-end_main_loop_a3b:
-
-
- movq 8(%rsp),%rdx
- pxor %xmm4,%xmm4
- movdqu 0(%rdx),%xmm0
- movdqu 16(%rdx),%xmm1
- movdqu 32(%rdx),%xmm2
- movdqu 48(%rdx),%xmm3
- movdqa %xmm4,576(%rsp)
- movdqa %xmm4,592(%rsp)
- movdqa %xmm4,608(%rsp)
- movdqa %xmm4,624(%rsp)
- movdqa %xmm0,512(%rsp)
- movdqa %xmm1,528(%rsp)
- movdqa %xmm2,544(%rsp)
- movdqa %xmm3,560(%rsp)
- call mont_reduce
-
-
-
- movq 8(%rsp),%rax
- movq 0(%rax),%r8
- movq 8(%rax),%r9
- movq 16(%rax),%r10
- movq 24(%rax),%r11
- movq 32(%rax),%r12
- movq 40(%rax),%r13
- movq 48(%rax),%r14
- movq 56(%rax),%r15
-
-
- movq 24(%rsp),%rbx
- addq $512,%rbx
-
- subq 0(%rbx),%r8
- sbbq 8(%rbx),%r9
- sbbq 16(%rbx),%r10
- sbbq 24(%rbx),%r11
- sbbq 32(%rbx),%r12
- sbbq 40(%rbx),%r13
- sbbq 48(%rbx),%r14
- sbbq 56(%rbx),%r15
-
-
- movq 0(%rax),%rsi
- movq 8(%rax),%rdi
- movq 16(%rax),%rcx
- movq 24(%rax),%rdx
- cmovncq %r8,%rsi
- cmovncq %r9,%rdi
- cmovncq %r10,%rcx
- cmovncq %r11,%rdx
- movq %rsi,0(%rax)
- movq %rdi,8(%rax)
- movq %rcx,16(%rax)
- movq %rdx,24(%rax)
-
- movq 32(%rax),%rsi
- movq 40(%rax),%rdi
- movq 48(%rax),%rcx
- movq 56(%rax),%rdx
- cmovncq %r12,%rsi
- cmovncq %r13,%rdi
- cmovncq %r14,%rcx
- cmovncq %r15,%rdx
- movq %rsi,32(%rax)
- movq %rdi,40(%rax)
- movq %rcx,48(%rax)
- movq %rdx,56(%rax)
-
- movq 0(%rsp),%rsi
- movq 0(%rsi),%r15
- movq 8(%rsi),%r14
- movq 16(%rsi),%r13
- movq 24(%rsi),%r12
- movq 32(%rsi),%rbx
- movq 40(%rsi),%rbp
- leaq 48(%rsi),%rsp
-.Lepilogue:
- .byte 0xf3,0xc3
-.size mod_exp_512, . - mod_exp_512
-#endif
diff --git a/third_party/boringssl/mac-x86_64/crypto/bn/modexp512-x86_64.S b/third_party/boringssl/mac-x86_64/crypto/bn/modexp512-x86_64.S
deleted file mode 100644
index beb133e..0000000
--- a/third_party/boringssl/mac-x86_64/crypto/bn/modexp512-x86_64.S
+++ /dev/null
@@ -1,1776 +0,0 @@
-#if defined(__x86_64__)
-.text
-
-
-.p2align 4
-MULADD_128x512:
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- movq %r8,0(%rcx)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq 8(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- movq %r9,8(%rcx)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%r9
- .byte 0xf3,0xc3
-
-
-.p2align 4
-mont_reduce:
- leaq 192(%rsp),%rdi
- movq 32(%rsp),%rsi
- addq $576,%rsi
- leaq 520(%rsp),%rcx
-
- movq 96(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- movq (%rcx),%r8
- addq %rax,%r8
- adcq $0,%rdx
- movq %r8,0(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- movq 8(%rcx),%r9
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- movq 16(%rcx),%r10
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- movq 24(%rcx),%r11
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- movq 32(%rcx),%r12
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- movq 40(%rcx),%r13
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- movq 48(%rcx),%r14
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- movq 56(%rcx),%r15
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq 104(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- movq %r9,8(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%r9
- movq 112(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- movq %r10,16(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%r10
- movq 120(%rcx),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,24(%rdi)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- xorq %rax,%rax
-
- addq 64(%rcx),%r8
- adcq 72(%rcx),%r9
- adcq 80(%rcx),%r10
- adcq 88(%rcx),%r11
- adcq $0,%rax
-
-
-
-
- movq %r8,64(%rdi)
- movq %r9,72(%rdi)
- movq %r10,%rbp
- movq %r11,88(%rdi)
-
- movq %rax,384(%rsp)
-
- movq 0(%rdi),%r8
- movq 8(%rdi),%r9
- movq 16(%rdi),%r10
- movq 24(%rdi),%r11
-
-
-
-
-
-
-
-
- addq $80,%rdi
-
- addq $64,%rsi
- leaq 296(%rsp),%rcx
-
- call MULADD_128x512
-
- movq 384(%rsp),%rax
-
-
- addq -16(%rdi),%r8
- adcq -8(%rdi),%r9
- movq %r8,64(%rcx)
- movq %r9,72(%rcx)
-
- adcq %rax,%rax
- movq %rax,384(%rsp)
-
- leaq 192(%rsp),%rdi
- addq $64,%rsi
-
-
-
-
-
- movq (%rsi),%r8
- movq 8(%rsi),%rbx
-
- movq (%rcx),%rax
- mulq %r8
- movq %rax,%rbp
- movq %rdx,%r9
-
- movq 8(%rcx),%rax
- mulq %r8
- addq %rax,%r9
-
- movq (%rcx),%rax
- mulq %rbx
- addq %rax,%r9
-
- movq %r9,8(%rdi)
-
-
- subq $192,%rsi
-
- movq (%rcx),%r8
- movq 8(%rcx),%r9
-
- call MULADD_128x512
-
-
-
-
- movq 0(%rsi),%rax
- movq 8(%rsi),%rbx
- movq 16(%rsi),%rdi
- movq 24(%rsi),%rdx
-
-
- movq 384(%rsp),%rbp
-
- addq 64(%rcx),%r8
- adcq 72(%rcx),%r9
-
-
- adcq %rbp,%rbp
-
-
-
- shlq $3,%rbp
- movq 32(%rsp),%rcx
- addq %rcx,%rbp
-
-
- xorq %rsi,%rsi
-
- addq 0(%rbp),%r10
- adcq 64(%rbp),%r11
- adcq 128(%rbp),%r12
- adcq 192(%rbp),%r13
- adcq 256(%rbp),%r14
- adcq 320(%rbp),%r15
- adcq 384(%rbp),%r8
- adcq 448(%rbp),%r9
-
-
-
- sbbq $0,%rsi
-
-
- andq %rsi,%rax
- andq %rsi,%rbx
- andq %rsi,%rdi
- andq %rsi,%rdx
-
- movq $1,%rbp
- subq %rax,%r10
- sbbq %rbx,%r11
- sbbq %rdi,%r12
- sbbq %rdx,%r13
-
-
-
-
- sbbq $0,%rbp
-
-
-
- addq $512,%rcx
- movq 32(%rcx),%rax
- movq 40(%rcx),%rbx
- movq 48(%rcx),%rdi
- movq 56(%rcx),%rdx
-
-
-
- andq %rsi,%rax
- andq %rsi,%rbx
- andq %rsi,%rdi
- andq %rsi,%rdx
-
-
-
- subq $1,%rbp
-
- sbbq %rax,%r14
- sbbq %rbx,%r15
- sbbq %rdi,%r8
- sbbq %rdx,%r9
-
-
-
- movq 144(%rsp),%rsi
- movq %r10,0(%rsi)
- movq %r11,8(%rsi)
- movq %r12,16(%rsi)
- movq %r13,24(%rsi)
- movq %r14,32(%rsi)
- movq %r15,40(%rsi)
- movq %r8,48(%rsi)
- movq %r9,56(%rsi)
-
- .byte 0xf3,0xc3
-
-
-.p2align 4
-mont_mul_a3b:
-
-
-
-
- movq 0(%rdi),%rbp
-
- movq %r10,%rax
- mulq %rbp
- movq %rax,520(%rsp)
- movq %rdx,%r10
- movq %r11,%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- movq %r12,%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- movq %rdx,%r12
- movq %r13,%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- movq %rdx,%r13
- movq %r14,%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- movq %rdx,%r14
- movq %r15,%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- movq %rdx,%r15
- movq %r8,%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq %r9,%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- movq %rdx,%r9
- movq 8(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- movq %r10,528(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%r10
- movq 16(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,536(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- movq 24(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- movq %r12,544(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%r12
- movq 32(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- movq %r13,552(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%r13
- movq 40(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- movq %r14,560(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%r14
- movq 48(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- movq %r15,568(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- addq %rbx,%r8
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%r15
- movq 56(%rdi),%rbp
- movq 0(%rsi),%rax
- mulq %rbp
- addq %rax,%r8
- adcq $0,%rdx
- movq %r8,576(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rsi),%rax
- mulq %rbp
- addq %rax,%r9
- adcq $0,%rdx
- addq %rbx,%r9
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 16(%rsi),%rax
- mulq %rbp
- addq %rax,%r10
- adcq $0,%rdx
- addq %rbx,%r10
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 24(%rsi),%rax
- mulq %rbp
- addq %rax,%r11
- adcq $0,%rdx
- addq %rbx,%r11
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 32(%rsi),%rax
- mulq %rbp
- addq %rax,%r12
- adcq $0,%rdx
- addq %rbx,%r12
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 40(%rsi),%rax
- mulq %rbp
- addq %rax,%r13
- adcq $0,%rdx
- addq %rbx,%r13
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 48(%rsi),%rax
- mulq %rbp
- addq %rax,%r14
- adcq $0,%rdx
- addq %rbx,%r14
- adcq $0,%rdx
- movq %rdx,%rbx
-
- movq 56(%rsi),%rax
- mulq %rbp
- addq %rax,%r15
- adcq $0,%rdx
- addq %rbx,%r15
- adcq $0,%rdx
- movq %rdx,%r8
- movq %r9,584(%rsp)
- movq %r10,592(%rsp)
- movq %r11,600(%rsp)
- movq %r12,608(%rsp)
- movq %r13,616(%rsp)
- movq %r14,624(%rsp)
- movq %r15,632(%rsp)
- movq %r8,640(%rsp)
-
-
-
-
-
- jmp mont_reduce
-
-
-
-
-.p2align 4
-sqr_reduce:
- movq 16(%rsp),%rcx
-
-
-
- movq %r10,%rbx
-
- movq %r11,%rax
- mulq %rbx
- movq %rax,528(%rsp)
- movq %rdx,%r10
- movq %r12,%rax
- mulq %rbx
- addq %rax,%r10
- adcq $0,%rdx
- movq %rdx,%r11
- movq %r13,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- movq %rdx,%r12
- movq %r14,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- movq %rdx,%r13
- movq %r15,%rax
- mulq %rbx
- addq %rax,%r13
- adcq $0,%rdx
- movq %rdx,%r14
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r14
- adcq $0,%rdx
- movq %rdx,%r15
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- movq %rdx,%rsi
-
- movq %r10,536(%rsp)
-
-
-
-
-
- movq 8(%rcx),%rbx
-
- movq 16(%rcx),%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,544(%rsp)
-
- movq %rdx,%r10
- movq 24(%rcx),%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- addq %r10,%r12
- adcq $0,%rdx
- movq %r12,552(%rsp)
-
- movq %rdx,%r10
- movq 32(%rcx),%rax
- mulq %rbx
- addq %rax,%r13
- adcq $0,%rdx
- addq %r10,%r13
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%r14
- adcq $0,%rdx
- addq %r10,%r14
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- addq %r10,%r15
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%rsi
- adcq $0,%rdx
- addq %r10,%rsi
- adcq $0,%rdx
-
- movq %rdx,%r11
-
-
-
-
- movq 16(%rcx),%rbx
-
- movq 24(%rcx),%rax
- mulq %rbx
- addq %rax,%r13
- adcq $0,%rdx
- movq %r13,560(%rsp)
-
- movq %rdx,%r10
- movq 32(%rcx),%rax
- mulq %rbx
- addq %rax,%r14
- adcq $0,%rdx
- addq %r10,%r14
- adcq $0,%rdx
- movq %r14,568(%rsp)
-
- movq %rdx,%r10
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- addq %r10,%r15
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%rsi
- adcq $0,%rdx
- addq %r10,%rsi
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- addq %r10,%r11
- adcq $0,%rdx
-
- movq %rdx,%r12
-
-
-
-
-
- movq 24(%rcx),%rbx
-
- movq 32(%rcx),%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- movq %r15,576(%rsp)
-
- movq %rdx,%r10
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%rsi
- adcq $0,%rdx
- addq %r10,%rsi
- adcq $0,%rdx
- movq %rsi,584(%rsp)
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- addq %r10,%r11
- adcq $0,%rdx
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- addq %r10,%r12
- adcq $0,%rdx
-
- movq %rdx,%r15
-
-
-
-
- movq 32(%rcx),%rbx
-
- movq 40(%rcx),%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- movq %r11,592(%rsp)
-
- movq %rdx,%r10
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- addq %r10,%r12
- adcq $0,%rdx
- movq %r12,600(%rsp)
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- addq %r10,%r15
- adcq $0,%rdx
-
- movq %rdx,%r11
-
-
-
-
- movq 40(%rcx),%rbx
-
- movq %r8,%rax
- mulq %rbx
- addq %rax,%r15
- adcq $0,%rdx
- movq %r15,608(%rsp)
-
- movq %rdx,%r10
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r11
- adcq $0,%rdx
- addq %r10,%r11
- adcq $0,%rdx
- movq %r11,616(%rsp)
-
- movq %rdx,%r12
-
-
-
-
- movq %r8,%rbx
-
- movq %r9,%rax
- mulq %rbx
- addq %rax,%r12
- adcq $0,%rdx
- movq %r12,624(%rsp)
-
- movq %rdx,632(%rsp)
-
-
- movq 528(%rsp),%r10
- movq 536(%rsp),%r11
- movq 544(%rsp),%r12
- movq 552(%rsp),%r13
- movq 560(%rsp),%r14
- movq 568(%rsp),%r15
-
- movq 24(%rcx),%rax
- mulq %rax
- movq %rax,%rdi
- movq %rdx,%r8
-
- addq %r10,%r10
- adcq %r11,%r11
- adcq %r12,%r12
- adcq %r13,%r13
- adcq %r14,%r14
- adcq %r15,%r15
- adcq $0,%r8
-
- movq 0(%rcx),%rax
- mulq %rax
- movq %rax,520(%rsp)
- movq %rdx,%rbx
-
- movq 8(%rcx),%rax
- mulq %rax
-
- addq %rbx,%r10
- adcq %rax,%r11
- adcq $0,%rdx
-
- movq %rdx,%rbx
- movq %r10,528(%rsp)
- movq %r11,536(%rsp)
-
- movq 16(%rcx),%rax
- mulq %rax
-
- addq %rbx,%r12
- adcq %rax,%r13
- adcq $0,%rdx
-
- movq %rdx,%rbx
-
- movq %r12,544(%rsp)
- movq %r13,552(%rsp)
-
- xorq %rbp,%rbp
- addq %rbx,%r14
- adcq %rdi,%r15
- adcq $0,%rbp
-
- movq %r14,560(%rsp)
- movq %r15,568(%rsp)
-
-
-
-
- movq 576(%rsp),%r10
- movq 584(%rsp),%r11
- movq 592(%rsp),%r12
- movq 600(%rsp),%r13
- movq 608(%rsp),%r14
- movq 616(%rsp),%r15
- movq 624(%rsp),%rdi
- movq 632(%rsp),%rsi
-
- movq %r9,%rax
- mulq %rax
- movq %rax,%r9
- movq %rdx,%rbx
-
- addq %r10,%r10
- adcq %r11,%r11
- adcq %r12,%r12
- adcq %r13,%r13
- adcq %r14,%r14
- adcq %r15,%r15
- adcq %rdi,%rdi
- adcq %rsi,%rsi
- adcq $0,%rbx
-
- addq %rbp,%r10
-
- movq 32(%rcx),%rax
- mulq %rax
-
- addq %r8,%r10
- adcq %rax,%r11
- adcq $0,%rdx
-
- movq %rdx,%rbp
-
- movq %r10,576(%rsp)
- movq %r11,584(%rsp)
-
- movq 40(%rcx),%rax
- mulq %rax
-
- addq %rbp,%r12
- adcq %rax,%r13
- adcq $0,%rdx
-
- movq %rdx,%rbp
-
- movq %r12,592(%rsp)
- movq %r13,600(%rsp)
-
- movq 48(%rcx),%rax
- mulq %rax
-
- addq %rbp,%r14
- adcq %rax,%r15
- adcq $0,%rdx
-
- movq %r14,608(%rsp)
- movq %r15,616(%rsp)
-
- addq %rdx,%rdi
- adcq %r9,%rsi
- adcq $0,%rbx
-
- movq %rdi,624(%rsp)
- movq %rsi,632(%rsp)
- movq %rbx,640(%rsp)
-
- jmp mont_reduce
-
-
-
-.globl _mod_exp_512
-.private_extern _mod_exp_512
-
-_mod_exp_512:
- pushq %rbp
- pushq %rbx
- pushq %r12
- pushq %r13
- pushq %r14
- pushq %r15
-
-
- movq %rsp,%r8
- subq $2688,%rsp
- andq $-64,%rsp
-
-
- movq %r8,0(%rsp)
- movq %rdi,8(%rsp)
- movq %rsi,16(%rsp)
- movq %rcx,24(%rsp)
-L$body:
-
-
-
- pxor %xmm4,%xmm4
- movdqu 0(%rsi),%xmm0
- movdqu 16(%rsi),%xmm1
- movdqu 32(%rsi),%xmm2
- movdqu 48(%rsi),%xmm3
- movdqa %xmm4,512(%rsp)
- movdqa %xmm4,528(%rsp)
- movdqa %xmm4,608(%rsp)
- movdqa %xmm4,624(%rsp)
- movdqa %xmm0,544(%rsp)
- movdqa %xmm1,560(%rsp)
- movdqa %xmm2,576(%rsp)
- movdqa %xmm3,592(%rsp)
-
-
- movdqu 0(%rdx),%xmm0
- movdqu 16(%rdx),%xmm1
- movdqu 32(%rdx),%xmm2
- movdqu 48(%rdx),%xmm3
-
- leaq 384(%rsp),%rbx
- movq %rbx,136(%rsp)
- call mont_reduce
-
-
- leaq 448(%rsp),%rcx
- xorq %rax,%rax
- movq %rax,0(%rcx)
- movq %rax,8(%rcx)
- movq %rax,24(%rcx)
- movq %rax,32(%rcx)
- movq %rax,40(%rcx)
- movq %rax,48(%rcx)
- movq %rax,56(%rcx)
- movq %rax,128(%rsp)
- movq $1,16(%rcx)
-
- leaq 640(%rsp),%rbp
- movq %rcx,%rsi
- movq %rbp,%rdi
- movq $8,%rax
-loop_0:
- movq (%rcx),%rbx
- movw %bx,(%rdi)
- shrq $16,%rbx
- movw %bx,64(%rdi)
- shrq $16,%rbx
- movw %bx,128(%rdi)
- shrq $16,%rbx
- movw %bx,192(%rdi)
- leaq 8(%rcx),%rcx
- leaq 256(%rdi),%rdi
- decq %rax
- jnz loop_0
- movq $31,%rax
- movq %rax,32(%rsp)
- movq %rbp,40(%rsp)
-
- movq %rsi,136(%rsp)
- movq 0(%rsi),%r10
- movq 8(%rsi),%r11
- movq 16(%rsi),%r12
- movq 24(%rsi),%r13
- movq 32(%rsi),%r14
- movq 40(%rsi),%r15
- movq 48(%rsi),%r8
- movq 56(%rsi),%r9
-init_loop:
- leaq 384(%rsp),%rdi
- call mont_mul_a3b
- leaq 448(%rsp),%rsi
- movq 40(%rsp),%rbp
- addq $2,%rbp
- movq %rbp,40(%rsp)
- movq %rsi,%rcx
- movq $8,%rax
-loop_1:
- movq (%rcx),%rbx
- movw %bx,(%rbp)
- shrq $16,%rbx
- movw %bx,64(%rbp)
- shrq $16,%rbx
- movw %bx,128(%rbp)
- shrq $16,%rbx
- movw %bx,192(%rbp)
- leaq 8(%rcx),%rcx
- leaq 256(%rbp),%rbp
- decq %rax
- jnz loop_1
- movq 32(%rsp),%rax
- subq $1,%rax
- movq %rax,32(%rsp)
- jne init_loop
-
-
-
- movdqa %xmm0,64(%rsp)
- movdqa %xmm1,80(%rsp)
- movdqa %xmm2,96(%rsp)
- movdqa %xmm3,112(%rsp)
-
-
-
-
-
- movl 126(%rsp),%eax
- movq %rax,%rdx
- shrq $11,%rax
- andl $2047,%edx
- movl %edx,126(%rsp)
- leaq 640(%rsp,%rax,2),%rsi
- movq 8(%rsp),%rdx
- movq $4,%rbp
-loop_2:
- movzwq 192(%rsi),%rbx
- movzwq 448(%rsi),%rax
- shlq $16,%rbx
- shlq $16,%rax
- movw 128(%rsi),%bx
- movw 384(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 64(%rsi),%bx
- movw 320(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 0(%rsi),%bx
- movw 256(%rsi),%ax
- movq %rbx,0(%rdx)
- movq %rax,8(%rdx)
- leaq 512(%rsi),%rsi
- leaq 16(%rdx),%rdx
- subq $1,%rbp
- jnz loop_2
- movq $505,48(%rsp)
-
- movq 8(%rsp),%rcx
- movq %rcx,136(%rsp)
- movq 0(%rcx),%r10
- movq 8(%rcx),%r11
- movq 16(%rcx),%r12
- movq 24(%rcx),%r13
- movq 32(%rcx),%r14
- movq 40(%rcx),%r15
- movq 48(%rcx),%r8
- movq 56(%rcx),%r9
- jmp sqr_2
-
-main_loop_a3b:
- call sqr_reduce
- call sqr_reduce
- call sqr_reduce
-sqr_2:
- call sqr_reduce
- call sqr_reduce
-
-
-
- movq 48(%rsp),%rcx
- movq %rcx,%rax
- shrq $4,%rax
- movl 64(%rsp,%rax,2),%edx
- andq $15,%rcx
- shrq %cl,%rdx
- andq $31,%rdx
-
- leaq 640(%rsp,%rdx,2),%rsi
- leaq 448(%rsp),%rdx
- movq %rdx,%rdi
- movq $4,%rbp
-loop_3:
- movzwq 192(%rsi),%rbx
- movzwq 448(%rsi),%rax
- shlq $16,%rbx
- shlq $16,%rax
- movw 128(%rsi),%bx
- movw 384(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 64(%rsi),%bx
- movw 320(%rsi),%ax
- shlq $16,%rbx
- shlq $16,%rax
- movw 0(%rsi),%bx
- movw 256(%rsi),%ax
- movq %rbx,0(%rdx)
- movq %rax,8(%rdx)
- leaq 512(%rsi),%rsi
- leaq 16(%rdx),%rdx
- subq $1,%rbp
- jnz loop_3
- movq 8(%rsp),%rsi
- call mont_mul_a3b
-
-
-
- movq 48(%rsp),%rcx
- subq $5,%rcx
- movq %rcx,48(%rsp)
- jge main_loop_a3b
-
-
-
-end_main_loop_a3b:
-
-
- movq 8(%rsp),%rdx
- pxor %xmm4,%xmm4
- movdqu 0(%rdx),%xmm0
- movdqu 16(%rdx),%xmm1
- movdqu 32(%rdx),%xmm2
- movdqu 48(%rdx),%xmm3
- movdqa %xmm4,576(%rsp)
- movdqa %xmm4,592(%rsp)
- movdqa %xmm4,608(%rsp)
- movdqa %xmm4,624(%rsp)
- movdqa %xmm0,512(%rsp)
- movdqa %xmm1,528(%rsp)
- movdqa %xmm2,544(%rsp)
- movdqa %xmm3,560(%rsp)
- call mont_reduce
-
-
-
- movq 8(%rsp),%rax
- movq 0(%rax),%r8
- movq 8(%rax),%r9
- movq 16(%rax),%r10
- movq 24(%rax),%r11
- movq 32(%rax),%r12
- movq 40(%rax),%r13
- movq 48(%rax),%r14
- movq 56(%rax),%r15
-
-
- movq 24(%rsp),%rbx
- addq $512,%rbx
-
- subq 0(%rbx),%r8
- sbbq 8(%rbx),%r9
- sbbq 16(%rbx),%r10
- sbbq 24(%rbx),%r11
- sbbq 32(%rbx),%r12
- sbbq 40(%rbx),%r13
- sbbq 48(%rbx),%r14
- sbbq 56(%rbx),%r15
-
-
- movq 0(%rax),%rsi
- movq 8(%rax),%rdi
- movq 16(%rax),%rcx
- movq 24(%rax),%rdx
- cmovncq %r8,%rsi
- cmovncq %r9,%rdi
- cmovncq %r10,%rcx
- cmovncq %r11,%rdx
- movq %rsi,0(%rax)
- movq %rdi,8(%rax)
- movq %rcx,16(%rax)
- movq %rdx,24(%rax)
-
- movq 32(%rax),%rsi
- movq 40(%rax),%rdi
- movq 48(%rax),%rcx
- movq 56(%rax),%rdx
- cmovncq %r12,%rsi
- cmovncq %r13,%rdi
- cmovncq %r14,%rcx
- cmovncq %r15,%rdx
- movq %rsi,32(%rax)
- movq %rdi,40(%rax)
- movq %rcx,48(%rax)
- movq %rdx,56(%rax)
-
- movq 0(%rsp),%rsi
- movq 0(%rsi),%r15
- movq 8(%rsi),%r14
- movq 16(%rsi),%r13
- movq 24(%rsi),%r12
- movq 32(%rsi),%rbx
- movq 40(%rsi),%rbp
- leaq 48(%rsi),%rsp
-L$epilogue:
- .byte 0xf3,0xc3
-
-#endif
diff --git a/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm b/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm
deleted file mode 100644
index f3b306e..0000000
--- a/third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm
+++ /dev/null
@@ -1,1885 +0,0 @@
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-
-ALIGN 16
-MULADD_128x512:
- mov rax,QWORD[rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- mov QWORD[rcx],r8
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov r8,rdx
- mov rbp,QWORD[8+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- mov QWORD[8+rcx],r9
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov r9,rdx
- DB 0F3h,0C3h ;repret
-
-
-ALIGN 16
-mont_reduce:
- lea rdi,[192+rsp]
- mov rsi,QWORD[32+rsp]
- add rsi,576
- lea rcx,[520+rsp]
-
- mov rbp,QWORD[96+rcx]
- mov rax,QWORD[rsi]
- mul rbp
- mov r8,QWORD[rcx]
- add r8,rax
- adc rdx,0
- mov QWORD[rdi],r8
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- mov r9,QWORD[8+rcx]
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- mov r10,QWORD[16+rcx]
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- mov r11,QWORD[24+rcx]
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- mov r12,QWORD[32+rcx]
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- mov r13,QWORD[40+rcx]
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- mov r14,QWORD[48+rcx]
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- mov r15,QWORD[56+rcx]
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov r8,rdx
- mov rbp,QWORD[104+rcx]
- mov rax,QWORD[rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- mov QWORD[8+rdi],r9
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov r9,rdx
- mov rbp,QWORD[112+rcx]
- mov rax,QWORD[rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- mov QWORD[16+rdi],r10
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov r10,rdx
- mov rbp,QWORD[120+rcx]
- mov rax,QWORD[rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- mov QWORD[24+rdi],r11
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov r11,rdx
- xor rax,rax
-
- add r8,QWORD[64+rcx]
- adc r9,QWORD[72+rcx]
- adc r10,QWORD[80+rcx]
- adc r11,QWORD[88+rcx]
- adc rax,0
-
-
-
-
- mov QWORD[64+rdi],r8
- mov QWORD[72+rdi],r9
- mov rbp,r10
- mov QWORD[88+rdi],r11
-
- mov QWORD[384+rsp],rax
-
- mov r8,QWORD[rdi]
- mov r9,QWORD[8+rdi]
- mov r10,QWORD[16+rdi]
- mov r11,QWORD[24+rdi]
-
-
-
-
-
-
-
-
- add rdi,8*10
-
- add rsi,64
- lea rcx,[296+rsp]
-
- call MULADD_128x512
-
- mov rax,QWORD[384+rsp]
-
-
- add r8,QWORD[((-16))+rdi]
- adc r9,QWORD[((-8))+rdi]
- mov QWORD[64+rcx],r8
- mov QWORD[72+rcx],r9
-
- adc rax,rax
- mov QWORD[384+rsp],rax
-
- lea rdi,[192+rsp]
- add rsi,64
-
-
-
-
-
- mov r8,QWORD[rsi]
- mov rbx,QWORD[8+rsi]
-
- mov rax,QWORD[rcx]
- mul r8
- mov rbp,rax
- mov r9,rdx
-
- mov rax,QWORD[8+rcx]
- mul r8
- add r9,rax
-
- mov rax,QWORD[rcx]
- mul rbx
- add r9,rax
-
- mov QWORD[8+rdi],r9
-
-
- sub rsi,192
-
- mov r8,QWORD[rcx]
- mov r9,QWORD[8+rcx]
-
- call MULADD_128x512
-
-
-
-
- mov rax,QWORD[rsi]
- mov rbx,QWORD[8+rsi]
- mov rdi,QWORD[16+rsi]
- mov rdx,QWORD[24+rsi]
-
-
- mov rbp,QWORD[384+rsp]
-
- add r8,QWORD[64+rcx]
- adc r9,QWORD[72+rcx]
-
-
- adc rbp,rbp
-
-
-
- shl rbp,3
- mov rcx,QWORD[32+rsp]
- add rbp,rcx
-
-
- xor rsi,rsi
-
- add r10,QWORD[rbp]
- adc r11,QWORD[64+rbp]
- adc r12,QWORD[128+rbp]
- adc r13,QWORD[192+rbp]
- adc r14,QWORD[256+rbp]
- adc r15,QWORD[320+rbp]
- adc r8,QWORD[384+rbp]
- adc r9,QWORD[448+rbp]
-
-
-
- sbb rsi,0
-
-
- and rax,rsi
- and rbx,rsi
- and rdi,rsi
- and rdx,rsi
-
- mov rbp,1
- sub r10,rax
- sbb r11,rbx
- sbb r12,rdi
- sbb r13,rdx
-
-
-
-
- sbb rbp,0
-
-
-
- add rcx,512
- mov rax,QWORD[32+rcx]
- mov rbx,QWORD[40+rcx]
- mov rdi,QWORD[48+rcx]
- mov rdx,QWORD[56+rcx]
-
-
-
- and rax,rsi
- and rbx,rsi
- and rdi,rsi
- and rdx,rsi
-
-
-
- sub rbp,1
-
- sbb r14,rax
- sbb r15,rbx
- sbb r8,rdi
- sbb r9,rdx
-
-
-
- mov rsi,QWORD[144+rsp]
- mov QWORD[rsi],r10
- mov QWORD[8+rsi],r11
- mov QWORD[16+rsi],r12
- mov QWORD[24+rsi],r13
- mov QWORD[32+rsi],r14
- mov QWORD[40+rsi],r15
- mov QWORD[48+rsi],r8
- mov QWORD[56+rsi],r9
-
- DB 0F3h,0C3h ;repret
-
-
-ALIGN 16
-mont_mul_a3b:
-
-
-
-
- mov rbp,QWORD[rdi]
-
- mov rax,r10
- mul rbp
- mov QWORD[520+rsp],rax
- mov r10,rdx
- mov rax,r11
- mul rbp
- add r10,rax
- adc rdx,0
- mov r11,rdx
- mov rax,r12
- mul rbp
- add r11,rax
- adc rdx,0
- mov r12,rdx
- mov rax,r13
- mul rbp
- add r12,rax
- adc rdx,0
- mov r13,rdx
- mov rax,r14
- mul rbp
- add r13,rax
- adc rdx,0
- mov r14,rdx
- mov rax,r15
- mul rbp
- add r14,rax
- adc rdx,0
- mov r15,rdx
- mov rax,r8
- mul rbp
- add r15,rax
- adc rdx,0
- mov r8,rdx
- mov rax,r9
- mul rbp
- add r8,rax
- adc rdx,0
- mov r9,rdx
- mov rbp,QWORD[8+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- mov QWORD[528+rsp],r10
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov r10,rdx
- mov rbp,QWORD[16+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- mov QWORD[536+rsp],r11
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov r11,rdx
- mov rbp,QWORD[24+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- mov QWORD[544+rsp],r12
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov r12,rdx
- mov rbp,QWORD[32+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- mov QWORD[552+rsp],r13
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov r13,rdx
- mov rbp,QWORD[40+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- mov QWORD[560+rsp],r14
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov r14,rdx
- mov rbp,QWORD[48+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- mov QWORD[568+rsp],r15
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- add r8,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov r15,rdx
- mov rbp,QWORD[56+rdi]
- mov rax,QWORD[rsi]
- mul rbp
- add r8,rax
- adc rdx,0
- mov QWORD[576+rsp],r8
- mov rbx,rdx
-
- mov rax,QWORD[8+rsi]
- mul rbp
- add r9,rax
- adc rdx,0
- add r9,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[16+rsi]
- mul rbp
- add r10,rax
- adc rdx,0
- add r10,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[24+rsi]
- mul rbp
- add r11,rax
- adc rdx,0
- add r11,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[32+rsi]
- mul rbp
- add r12,rax
- adc rdx,0
- add r12,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[40+rsi]
- mul rbp
- add r13,rax
- adc rdx,0
- add r13,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[48+rsi]
- mul rbp
- add r14,rax
- adc rdx,0
- add r14,rbx
- adc rdx,0
- mov rbx,rdx
-
- mov rax,QWORD[56+rsi]
- mul rbp
- add r15,rax
- adc rdx,0
- add r15,rbx
- adc rdx,0
- mov r8,rdx
- mov QWORD[584+rsp],r9
- mov QWORD[592+rsp],r10
- mov QWORD[600+rsp],r11
- mov QWORD[608+rsp],r12
- mov QWORD[616+rsp],r13
- mov QWORD[624+rsp],r14
- mov QWORD[632+rsp],r15
- mov QWORD[640+rsp],r8
-
-
-
-
-
- jmp NEAR mont_reduce
-
-
-
-
-ALIGN 16
-sqr_reduce:
- mov rcx,QWORD[16+rsp]
-
-
-
- mov rbx,r10
-
- mov rax,r11
- mul rbx
- mov QWORD[528+rsp],rax
- mov r10,rdx
- mov rax,r12
- mul rbx
- add r10,rax
- adc rdx,0
- mov r11,rdx
- mov rax,r13
- mul rbx
- add r11,rax
- adc rdx,0
- mov r12,rdx
- mov rax,r14
- mul rbx
- add r12,rax
- adc rdx,0
- mov r13,rdx
- mov rax,r15
- mul rbx
- add r13,rax
- adc rdx,0
- mov r14,rdx
- mov rax,r8
- mul rbx
- add r14,rax
- adc rdx,0
- mov r15,rdx
- mov rax,r9
- mul rbx
- add r15,rax
- adc rdx,0
- mov rsi,rdx
-
- mov QWORD[536+rsp],r10
-
-
-
-
-
- mov rbx,QWORD[8+rcx]
-
- mov rax,QWORD[16+rcx]
- mul rbx
- add r11,rax
- adc rdx,0
- mov QWORD[544+rsp],r11
-
- mov r10,rdx
- mov rax,QWORD[24+rcx]
- mul rbx
- add r12,rax
- adc rdx,0
- add r12,r10
- adc rdx,0
- mov QWORD[552+rsp],r12
-
- mov r10,rdx
- mov rax,QWORD[32+rcx]
- mul rbx
- add r13,rax
- adc rdx,0
- add r13,r10
- adc rdx,0
-
- mov r10,rdx
- mov rax,QWORD[40+rcx]
- mul rbx
- add r14,rax
- adc rdx,0
- add r14,r10
- adc rdx,0
-
- mov r10,rdx
- mov rax,r8
- mul rbx
- add r15,rax
- adc rdx,0
- add r15,r10
- adc rdx,0
-
- mov r10,rdx
- mov rax,r9
- mul rbx
- add rsi,rax
- adc rdx,0
- add rsi,r10
- adc rdx,0
-
- mov r11,rdx
-
-
-
-
- mov rbx,QWORD[16+rcx]
-
- mov rax,QWORD[24+rcx]
- mul rbx
- add r13,rax
- adc rdx,0
- mov QWORD[560+rsp],r13
-
- mov r10,rdx
- mov rax,QWORD[32+rcx]
- mul rbx
- add r14,rax
- adc rdx,0
- add r14,r10
- adc rdx,0
- mov QWORD[568+rsp],r14
-
- mov r10,rdx
- mov rax,QWORD[40+rcx]
- mul rbx
- add r15,rax
- adc rdx,0
- add r15,r10
- adc rdx,0
-
- mov r10,rdx
- mov rax,r8
- mul rbx
- add rsi,rax
- adc rdx,0
- add rsi,r10
- adc rdx,0
-
- mov r10,rdx
- mov rax,r9
- mul rbx
- add r11,rax
- adc rdx,0
- add r11,r10
- adc rdx,0
-
- mov r12,rdx
-
-
-
-
-
- mov rbx,QWORD[24+rcx]
-
- mov rax,QWORD[32+rcx]
- mul rbx
- add r15,rax
- adc rdx,0
- mov QWORD[576+rsp],r15
-
- mov r10,rdx
- mov rax,QWORD[40+rcx]
- mul rbx
- add rsi,rax
- adc rdx,0
- add rsi,r10
- adc rdx,0
- mov QWORD[584+rsp],rsi
-
- mov r10,rdx
- mov rax,r8
- mul rbx
- add r11,rax
- adc rdx,0
- add r11,r10
- adc rdx,0
-
- mov r10,rdx
- mov rax,r9
- mul rbx
- add r12,rax
- adc rdx,0
- add r12,r10
- adc rdx,0
-
- mov r15,rdx
-
-
-
-
- mov rbx,QWORD[32+rcx]
-
- mov rax,QWORD[40+rcx]
- mul rbx
- add r11,rax
- adc rdx,0
- mov QWORD[592+rsp],r11
-
- mov r10,rdx
- mov rax,r8
- mul rbx
- add r12,rax
- adc rdx,0
- add r12,r10
- adc rdx,0
- mov QWORD[600+rsp],r12
-
- mov r10,rdx
- mov rax,r9
- mul rbx
- add r15,rax
- adc rdx,0
- add r15,r10
- adc rdx,0
-
- mov r11,rdx
-
-
-
-
- mov rbx,QWORD[40+rcx]
-
- mov rax,r8
- mul rbx
- add r15,rax
- adc rdx,0
- mov QWORD[608+rsp],r15
-
- mov r10,rdx
- mov rax,r9
- mul rbx
- add r11,rax
- adc rdx,0
- add r11,r10
- adc rdx,0
- mov QWORD[616+rsp],r11
-
- mov r12,rdx
-
-
-
-
- mov rbx,r8
-
- mov rax,r9
- mul rbx
- add r12,rax
- adc rdx,0
- mov QWORD[624+rsp],r12
-
- mov QWORD[632+rsp],rdx
-
-
- mov r10,QWORD[528+rsp]
- mov r11,QWORD[536+rsp]
- mov r12,QWORD[544+rsp]
- mov r13,QWORD[552+rsp]
- mov r14,QWORD[560+rsp]
- mov r15,QWORD[568+rsp]
-
- mov rax,QWORD[24+rcx]
- mul rax
- mov rdi,rax
- mov r8,rdx
-
- add r10,r10
- adc r11,r11
- adc r12,r12
- adc r13,r13
- adc r14,r14
- adc r15,r15
- adc r8,0
-
- mov rax,QWORD[rcx]
- mul rax
- mov QWORD[520+rsp],rax
- mov rbx,rdx
-
- mov rax,QWORD[8+rcx]
- mul rax
-
- add r10,rbx
- adc r11,rax
- adc rdx,0
-
- mov rbx,rdx
- mov QWORD[528+rsp],r10
- mov QWORD[536+rsp],r11
-
- mov rax,QWORD[16+rcx]
- mul rax
-
- add r12,rbx
- adc r13,rax
- adc rdx,0
-
- mov rbx,rdx
-
- mov QWORD[544+rsp],r12
- mov QWORD[552+rsp],r13
-
- xor rbp,rbp
- add r14,rbx
- adc r15,rdi
- adc rbp,0
-
- mov QWORD[560+rsp],r14
- mov QWORD[568+rsp],r15
-
-
-
-
- mov r10,QWORD[576+rsp]
- mov r11,QWORD[584+rsp]
- mov r12,QWORD[592+rsp]
- mov r13,QWORD[600+rsp]
- mov r14,QWORD[608+rsp]
- mov r15,QWORD[616+rsp]
- mov rdi,QWORD[624+rsp]
- mov rsi,QWORD[632+rsp]
-
- mov rax,r9
- mul rax
- mov r9,rax
- mov rbx,rdx
-
- add r10,r10
- adc r11,r11
- adc r12,r12
- adc r13,r13
- adc r14,r14
- adc r15,r15
- adc rdi,rdi
- adc rsi,rsi
- adc rbx,0
-
- add r10,rbp
-
- mov rax,QWORD[32+rcx]
- mul rax
-
- add r10,r8
- adc r11,rax
- adc rdx,0
-
- mov rbp,rdx
-
- mov QWORD[576+rsp],r10
- mov QWORD[584+rsp],r11
-
- mov rax,QWORD[40+rcx]
- mul rax
-
- add r12,rbp
- adc r13,rax
- adc rdx,0
-
- mov rbp,rdx
-
- mov QWORD[592+rsp],r12
- mov QWORD[600+rsp],r13
-
- mov rax,QWORD[48+rcx]
- mul rax
-
- add r14,rbp
- adc r15,rax
- adc rdx,0
-
- mov QWORD[608+rsp],r14
- mov QWORD[616+rsp],r15
-
- add rdi,rdx
- adc rsi,r9
- adc rbx,0
-
- mov QWORD[624+rsp],rdi
- mov QWORD[632+rsp],rsi
- mov QWORD[640+rsp],rbx
-
- jmp NEAR mont_reduce
-
-
-
-global mod_exp_512
-
-mod_exp_512:
- mov QWORD[8+rsp],rdi ;WIN64 prologue
- mov QWORD[16+rsp],rsi
- mov rax,rsp
-$L$SEH_begin_mod_exp_512:
- mov rdi,rcx
- mov rsi,rdx
- mov rdx,r8
- mov rcx,r9
-
-
- push rbp
- push rbx
- push r12
- push r13
- push r14
- push r15
-
-
- mov r8,rsp
- sub rsp,2688
- and rsp,-64
-
-
- mov QWORD[rsp],r8
- mov QWORD[8+rsp],rdi
- mov QWORD[16+rsp],rsi
- mov QWORD[24+rsp],rcx
-$L$body:
-
-
-
- pxor xmm4,xmm4
- movdqu xmm0,XMMWORD[rsi]
- movdqu xmm1,XMMWORD[16+rsi]
- movdqu xmm2,XMMWORD[32+rsi]
- movdqu xmm3,XMMWORD[48+rsi]
- movdqa XMMWORD[512+rsp],xmm4
- movdqa XMMWORD[528+rsp],xmm4
- movdqa XMMWORD[608+rsp],xmm4
- movdqa XMMWORD[624+rsp],xmm4
- movdqa XMMWORD[544+rsp],xmm0
- movdqa XMMWORD[560+rsp],xmm1
- movdqa XMMWORD[576+rsp],xmm2
- movdqa XMMWORD[592+rsp],xmm3
-
-
- movdqu xmm0,XMMWORD[rdx]
- movdqu xmm1,XMMWORD[16+rdx]
- movdqu xmm2,XMMWORD[32+rdx]
- movdqu xmm3,XMMWORD[48+rdx]
-
- lea rbx,[384+rsp]
- mov QWORD[136+rsp],rbx
- call mont_reduce
-
-
- lea rcx,[448+rsp]
- xor rax,rax
- mov QWORD[rcx],rax
- mov QWORD[8+rcx],rax
- mov QWORD[24+rcx],rax
- mov QWORD[32+rcx],rax
- mov QWORD[40+rcx],rax
- mov QWORD[48+rcx],rax
- mov QWORD[56+rcx],rax
- mov QWORD[128+rsp],rax
- mov QWORD[16+rcx],1
-
- lea rbp,[640+rsp]
- mov rsi,rcx
- mov rdi,rbp
- mov rax,8
-loop_0:
- mov rbx,QWORD[rcx]
- mov WORD[rdi],bx
- shr rbx,16
- mov WORD[64+rdi],bx
- shr rbx,16
- mov WORD[128+rdi],bx
- shr rbx,16
- mov WORD[192+rdi],bx
- lea rcx,[8+rcx]
- lea rdi,[256+rdi]
- dec rax
- jnz NEAR loop_0
- mov rax,31
- mov QWORD[32+rsp],rax
- mov QWORD[40+rsp],rbp
-
- mov QWORD[136+rsp],rsi
- mov r10,QWORD[rsi]
- mov r11,QWORD[8+rsi]
- mov r12,QWORD[16+rsi]
- mov r13,QWORD[24+rsi]
- mov r14,QWORD[32+rsi]
- mov r15,QWORD[40+rsi]
- mov r8,QWORD[48+rsi]
- mov r9,QWORD[56+rsi]
-init_loop:
- lea rdi,[384+rsp]
- call mont_mul_a3b
- lea rsi,[448+rsp]
- mov rbp,QWORD[40+rsp]
- add rbp,2
- mov QWORD[40+rsp],rbp
- mov rcx,rsi
- mov rax,8
-loop_1:
- mov rbx,QWORD[rcx]
- mov WORD[rbp],bx
- shr rbx,16
- mov WORD[64+rbp],bx
- shr rbx,16
- mov WORD[128+rbp],bx
- shr rbx,16
- mov WORD[192+rbp],bx
- lea rcx,[8+rcx]
- lea rbp,[256+rbp]
- dec rax
- jnz NEAR loop_1
- mov rax,QWORD[32+rsp]
- sub rax,1
- mov QWORD[32+rsp],rax
- jne NEAR init_loop
-
-
-
- movdqa XMMWORD[64+rsp],xmm0
- movdqa XMMWORD[80+rsp],xmm1
- movdqa XMMWORD[96+rsp],xmm2
- movdqa XMMWORD[112+rsp],xmm3
-
-
-
-
-
- mov eax,DWORD[126+rsp]
- mov rdx,rax
- shr rax,11
- and edx,0x07FF
- mov DWORD[126+rsp],edx
- lea rsi,[640+rax*2+rsp]
- mov rdx,QWORD[8+rsp]
- mov rbp,4
-loop_2:
- movzx rbx,WORD[192+rsi]
- movzx rax,WORD[448+rsi]
- shl rbx,16
- shl rax,16
- mov bx,WORD[128+rsi]
- mov ax,WORD[384+rsi]
- shl rbx,16
- shl rax,16
- mov bx,WORD[64+rsi]
- mov ax,WORD[320+rsi]
- shl rbx,16
- shl rax,16
- mov bx,WORD[rsi]
- mov ax,WORD[256+rsi]
- mov QWORD[rdx],rbx
- mov QWORD[8+rdx],rax
- lea rsi,[512+rsi]
- lea rdx,[16+rdx]
- sub rbp,1
- jnz NEAR loop_2
- mov QWORD[48+rsp],505
-
- mov rcx,QWORD[8+rsp]
- mov QWORD[136+rsp],rcx
- mov r10,QWORD[rcx]
- mov r11,QWORD[8+rcx]
- mov r12,QWORD[16+rcx]
- mov r13,QWORD[24+rcx]
- mov r14,QWORD[32+rcx]
- mov r15,QWORD[40+rcx]
- mov r8,QWORD[48+rcx]
- mov r9,QWORD[56+rcx]
- jmp NEAR sqr_2
-
-main_loop_a3b:
- call sqr_reduce
- call sqr_reduce
- call sqr_reduce
-sqr_2:
- call sqr_reduce
- call sqr_reduce
-
-
-
- mov rcx,QWORD[48+rsp]
- mov rax,rcx
- shr rax,4
- mov edx,DWORD[64+rax*2+rsp]
- and rcx,15
- shr rdx,cl
- and rdx,0x1F
-
- lea rsi,[640+rdx*2+rsp]
- lea rdx,[448+rsp]
- mov rdi,rdx
- mov rbp,4
-loop_3:
- movzx rbx,WORD[192+rsi]
- movzx rax,WORD[448+rsi]
- shl rbx,16
- shl rax,16
- mov bx,WORD[128+rsi]
- mov ax,WORD[384+rsi]
- shl rbx,16
- shl rax,16
- mov bx,WORD[64+rsi]
- mov ax,WORD[320+rsi]
- shl rbx,16
- shl rax,16
- mov bx,WORD[rsi]
- mov ax,WORD[256+rsi]
- mov QWORD[rdx],rbx
- mov QWORD[8+rdx],rax
- lea rsi,[512+rsi]
- lea rdx,[16+rdx]
- sub rbp,1
- jnz NEAR loop_3
- mov rsi,QWORD[8+rsp]
- call mont_mul_a3b
-
-
-
- mov rcx,QWORD[48+rsp]
- sub rcx,5
- mov QWORD[48+rsp],rcx
- jge NEAR main_loop_a3b
-
-
-
-end_main_loop_a3b:
-
-
- mov rdx,QWORD[8+rsp]
- pxor xmm4,xmm4
- movdqu xmm0,XMMWORD[rdx]
- movdqu xmm1,XMMWORD[16+rdx]
- movdqu xmm2,XMMWORD[32+rdx]
- movdqu xmm3,XMMWORD[48+rdx]
- movdqa XMMWORD[576+rsp],xmm4
- movdqa XMMWORD[592+rsp],xmm4
- movdqa XMMWORD[608+rsp],xmm4
- movdqa XMMWORD[624+rsp],xmm4
- movdqa XMMWORD[512+rsp],xmm0
- movdqa XMMWORD[528+rsp],xmm1
- movdqa XMMWORD[544+rsp],xmm2
- movdqa XMMWORD[560+rsp],xmm3
- call mont_reduce
-
-
-
- mov rax,QWORD[8+rsp]
- mov r8,QWORD[rax]
- mov r9,QWORD[8+rax]
- mov r10,QWORD[16+rax]
- mov r11,QWORD[24+rax]
- mov r12,QWORD[32+rax]
- mov r13,QWORD[40+rax]
- mov r14,QWORD[48+rax]
- mov r15,QWORD[56+rax]
-
-
- mov rbx,QWORD[24+rsp]
- add rbx,512
-
- sub r8,QWORD[rbx]
- sbb r9,QWORD[8+rbx]
- sbb r10,QWORD[16+rbx]
- sbb r11,QWORD[24+rbx]
- sbb r12,QWORD[32+rbx]
- sbb r13,QWORD[40+rbx]
- sbb r14,QWORD[48+rbx]
- sbb r15,QWORD[56+rbx]
-
-
- mov rsi,QWORD[rax]
- mov rdi,QWORD[8+rax]
- mov rcx,QWORD[16+rax]
- mov rdx,QWORD[24+rax]
- cmovnc rsi,r8
- cmovnc rdi,r9
- cmovnc rcx,r10
- cmovnc rdx,r11
- mov QWORD[rax],rsi
- mov QWORD[8+rax],rdi
- mov QWORD[16+rax],rcx
- mov QWORD[24+rax],rdx
-
- mov rsi,QWORD[32+rax]
- mov rdi,QWORD[40+rax]
- mov rcx,QWORD[48+rax]
- mov rdx,QWORD[56+rax]
- cmovnc rsi,r12
- cmovnc rdi,r13
- cmovnc rcx,r14
- cmovnc rdx,r15
- mov QWORD[32+rax],rsi
- mov QWORD[40+rax],rdi
- mov QWORD[48+rax],rcx
- mov QWORD[56+rax],rdx
-
- mov rsi,QWORD[rsp]
- mov r15,QWORD[rsi]
- mov r14,QWORD[8+rsi]
- mov r13,QWORD[16+rsi]
- mov r12,QWORD[24+rsi]
- mov rbx,QWORD[32+rsi]
- mov rbp,QWORD[40+rsi]
- lea rsp,[48+rsi]
-$L$epilogue:
- mov rdi,QWORD[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD[16+rsp]
- DB 0F3h,0C3h ;repret
-$L$SEH_end_mod_exp_512:
-EXTERN __imp_RtlVirtualUnwind
-
-ALIGN 16
-mod_exp_512_se_handler:
- push rsi
- push rdi
- push rbx
- push rbp
- push r12
- push r13
- push r14
- push r15
- pushfq
- sub rsp,64
-
- mov rax,QWORD[120+r8]
- mov rbx,QWORD[248+r8]
-
- lea r10,[$L$body]
- cmp rbx,r10
- jb NEAR $L$in_prologue
-
- mov rax,QWORD[152+r8]
-
- lea r10,[$L$epilogue]
- cmp rbx,r10
- jae NEAR $L$in_prologue
-
- mov rax,QWORD[rax]
-
- mov rbx,QWORD[32+rax]
- mov rbp,QWORD[40+rax]
- mov r12,QWORD[24+rax]
- mov r13,QWORD[16+rax]
- mov r14,QWORD[8+rax]
- mov r15,QWORD[rax]
- lea rax,[48+rax]
- mov QWORD[144+r8],rbx
- mov QWORD[160+r8],rbp
- mov QWORD[216+r8],r12
- mov QWORD[224+r8],r13
- mov QWORD[232+r8],r14
- mov QWORD[240+r8],r15
-
-$L$in_prologue:
- mov rdi,QWORD[8+rax]
- mov rsi,QWORD[16+rax]
- mov QWORD[152+r8],rax
- mov QWORD[168+r8],rsi
- mov QWORD[176+r8],rdi
-
- mov rdi,QWORD[40+r9]
- mov rsi,r8
- mov ecx,154
- DD 0xa548f3fc
-
- mov rsi,r9
- xor rcx,rcx
- mov rdx,QWORD[8+rsi]
- mov r8,QWORD[rsi]
- mov r9,QWORD[16+rsi]
- mov r10,QWORD[40+rsi]
- lea r11,[56+rsi]
- lea r12,[24+rsi]
- mov QWORD[32+rsp],r10
- mov QWORD[40+rsp],r11
- mov QWORD[48+rsp],r12
- mov QWORD[56+rsp],rcx
- call QWORD[__imp_RtlVirtualUnwind]
-
- mov eax,1
- add rsp,64
- popfq
- pop r15
- pop r14
- pop r13
- pop r12
- pop rbp
- pop rbx
- pop rdi
- pop rsi
- DB 0F3h,0C3h ;repret
-
-
-section .pdata rdata align=4
-ALIGN 4
- DD $L$SEH_begin_mod_exp_512 wrt ..imagebase
- DD $L$SEH_end_mod_exp_512 wrt ..imagebase
- DD $L$SEH_info_mod_exp_512 wrt ..imagebase
-
-section .xdata rdata align=8
-ALIGN 8
-$L$SEH_info_mod_exp_512:
-DB 9,0,0,0
- DD mod_exp_512_se_handler wrt ..imagebase