diff --git a/builds/msvc/vs2010/libsodium/libsodium.vcxproj b/builds/msvc/vs2010/libsodium/libsodium.vcxproj
index ad3cb086..123ded8a 100644
--- a/builds/msvc/vs2010/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2010/libsodium/libsodium.vcxproj
@@ -278,12 +278,10 @@
-
-
diff --git a/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
index 055b7476..4967e5b1 100644
--- a/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
@@ -623,9 +623,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\sandy2x
@@ -638,9 +635,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\ref10
diff --git a/builds/msvc/vs2012/libsodium/libsodium.vcxproj b/builds/msvc/vs2012/libsodium/libsodium.vcxproj
index 0954d10b..38de0070 100644
--- a/builds/msvc/vs2012/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2012/libsodium/libsodium.vcxproj
@@ -278,12 +278,10 @@
-
-
diff --git a/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
index 055b7476..4967e5b1 100644
--- a/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
@@ -623,9 +623,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\sandy2x
@@ -638,9 +635,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\ref10
diff --git a/builds/msvc/vs2013/libsodium/libsodium.vcxproj b/builds/msvc/vs2013/libsodium/libsodium.vcxproj
index 91d7a7c7..e63f6aa2 100644
--- a/builds/msvc/vs2013/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2013/libsodium/libsodium.vcxproj
@@ -278,12 +278,10 @@
-
-
diff --git a/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
index 055b7476..4967e5b1 100644
--- a/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
@@ -623,9 +623,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\sandy2x
@@ -638,9 +635,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\ref10
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
index f97869dd..24fcca6d 100644
--- a/builds/msvc/vs2015/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj
@@ -278,12 +278,10 @@
-
-
diff --git a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
index 055b7476..4967e5b1 100644
--- a/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
@@ -623,9 +623,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\sandy2x
@@ -638,9 +635,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\ref10
diff --git a/builds/msvc/vs2017/libsodium/libsodium.vcxproj b/builds/msvc/vs2017/libsodium/libsodium.vcxproj
index b216959d..9c9e3a5b 100644
--- a/builds/msvc/vs2017/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2017/libsodium/libsodium.vcxproj
@@ -278,12 +278,10 @@
-
-
diff --git a/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
index 055b7476..4967e5b1 100644
--- a/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
@@ -623,9 +623,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\sandy2x
@@ -638,9 +635,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\ref10
diff --git a/builds/msvc/vs2019/libsodium/libsodium.vcxproj b/builds/msvc/vs2019/libsodium/libsodium.vcxproj
index ce824a9c..06d4f3d3 100644
--- a/builds/msvc/vs2019/libsodium/libsodium.vcxproj
+++ b/builds/msvc/vs2019/libsodium/libsodium.vcxproj
@@ -278,12 +278,10 @@
-
-
diff --git a/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters b/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
index 055b7476..4967e5b1 100644
--- a/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
+++ b/builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
@@ -623,9 +623,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\sandy2x
@@ -638,9 +635,6 @@
crypto_scalarmult\curve25519\sandy2x
-
- crypto_scalarmult\curve25519\sandy2x
-
crypto_scalarmult\curve25519\ref10
diff --git a/libsodium.vcxproj b/libsodium.vcxproj
index e3b20729..ff6afe4b 100644
--- a/libsodium.vcxproj
+++ b/libsodium.vcxproj
@@ -516,12 +516,10 @@
-
-
diff --git a/libsodium.vcxproj.filters b/libsodium.vcxproj.filters
index c8866164..a13d68ce 100644
--- a/libsodium.vcxproj.filters
+++ b/libsodium.vcxproj.filters
@@ -614,9 +614,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -629,9 +626,6 @@
Header Files
-
- Header Files
-
Header Files
diff --git a/src/libsodium/Makefile.am b/src/libsodium/Makefile.am
index cf4cfc93..92de4fd3 100644
--- a/src/libsodium/Makefile.am
+++ b/src/libsodium/Makefile.am
@@ -127,8 +127,7 @@ noinst_HEADERS = \
crypto_scalarmult/curve25519/sandy2x/fe51_mul.S \
crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S \
crypto_scalarmult/curve25519/sandy2x/fe51_pack.S \
- crypto_scalarmult/curve25519/sandy2x/ladder.S \
- crypto_scalarmult/curve25519/sandy2x/ladder_base.S
+ crypto_scalarmult/curve25519/sandy2x/ladder.S
if HAVE_AVX_ASM
libsodium_la_SOURCES += \
@@ -141,8 +140,6 @@ libsodium_la_SOURCES += \
crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h \
crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c \
crypto_scalarmult/curve25519/sandy2x/ladder.h \
- crypto_scalarmult/curve25519/sandy2x/ladder_base.h \
- crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h \
crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h \
crypto_scalarmult/curve25519/sandy2x/sandy2x.S
endif
diff --git a/src/libsodium/Makefile.in b/src/libsodium/Makefile.in
index 8c3142a3..187f1772 100644
--- a/src/libsodium/Makefile.in
+++ b/src/libsodium/Makefile.in
@@ -123,8 +123,6 @@ host_triplet = @host@
@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h \
@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c \
@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/ladder.h \
-@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/ladder_base.h \
-@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h \
@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h \
@HAVE_AVX_ASM_TRUE@ crypto_scalarmult/curve25519/sandy2x/sandy2x.S
@@ -359,8 +357,6 @@ am__libsodium_la_SOURCES_DIST = \
crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h \
crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c \
crypto_scalarmult/curve25519/sandy2x/ladder.h \
- crypto_scalarmult/curve25519/sandy2x/ladder_base.h \
- crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h \
crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h \
crypto_scalarmult/curve25519/sandy2x/sandy2x.S \
crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c \
@@ -1002,8 +998,7 @@ noinst_HEADERS = \
crypto_scalarmult/curve25519/sandy2x/fe51_mul.S \
crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S \
crypto_scalarmult/curve25519/sandy2x/fe51_pack.S \
- crypto_scalarmult/curve25519/sandy2x/ladder.S \
- crypto_scalarmult/curve25519/sandy2x/ladder_base.S
+ crypto_scalarmult/curve25519/sandy2x/ladder.S
randombytes_internal_randombytes_internal_random_CFLAGS = @CFLAGS_RDRAND@
libsodium_la_LDFLAGS = $(AM_LDFLAGS) -export-dynamic -no-undefined \
diff --git a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c
index 98b7cf79..0f8f8b13 100644
--- a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c
+++ b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c
@@ -15,7 +15,6 @@
#include "fe.h"
#include "fe51.h"
#include "ladder.h"
-#include "ladder_base.h"
#define x1 var[0]
#define x2 var[1]
@@ -61,54 +60,10 @@ crypto_scalarmult_curve25519_sandy2x(unsigned char *q, const unsigned char *n,
return 0;
}
-#undef x2
-#undef z2
-
-#define x2 var[0]
-#define z2 var[1]
-
-static int
-crypto_scalarmult_curve25519_sandy2x_base(unsigned char *q,
- const unsigned char *n)
-{
- unsigned char *t = q;
- fe var[3];
- fe51 x_51;
- fe51 z_51;
- unsigned int i;
-
- for (i = 0;i < 32; i++) {
- t[i] = n[i];
- }
- t[0] &= 248;
- t[31] &= 127;
- t[31] |= 64;
-
- ladder_base(var, t);
-
- z_51.v[0] = (z2[1] << 26) + z2[0];
- z_51.v[1] = (z2[3] << 26) + z2[2];
- z_51.v[2] = (z2[5] << 26) + z2[4];
- z_51.v[3] = (z2[7] << 26) + z2[6];
- z_51.v[4] = (z2[9] << 26) + z2[8];
-
- x_51.v[0] = (x2[1] << 26) + x2[0];
- x_51.v[1] = (x2[3] << 26) + x2[2];
- x_51.v[2] = (x2[5] << 26) + x2[4];
- x_51.v[3] = (x2[7] << 26) + x2[6];
- x_51.v[4] = (x2[9] << 26) + x2[8];
-
- fe51_invert(&z_51, &z_51);
- fe51_mul(&x_51, &x_51, &z_51);
- fe51_pack(q, &x_51);
-
- return 0;
-}
-
struct crypto_scalarmult_curve25519_implementation
crypto_scalarmult_curve25519_sandy2x_implementation = {
SODIUM_C99(.mult = ) crypto_scalarmult_curve25519_sandy2x,
- SODIUM_C99(.mult_base = ) crypto_scalarmult_curve25519_sandy2x_base
+ SODIUM_C99(.mult_base = ) NULL
};
#endif
diff --git a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.S b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.S
deleted file mode 100644
index f290d256..00000000
--- a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.S
+++ /dev/null
@@ -1,1295 +0,0 @@
-#ifdef IN_SANDY2X
-
-#include "ladder_base_namespace.h"
-#include "consts_namespace.h"
-.p2align 5
-
-#ifdef ASM_HIDE_SYMBOL
-ASM_HIDE_SYMBOL ladder_base
-ASM_HIDE_SYMBOL _ladder_base
-#endif
-.globl ladder_base
-.globl _ladder_base
-#ifdef __ELF__
-.type ladder_base, @function
-.type _ladder_base, @function
-#endif
-ladder_base:
-_ladder_base:
-
-mov %rsp,%r11
-and $31,%r11
-add $1568,%r11
-sub %r11,%rsp
-movq %r11,1536(%rsp)
-movq %r12,1544(%rsp)
-movq %r13,1552(%rsp)
-vmovdqa v0_0(%rip),%xmm0
-vmovdqa v1_0(%rip),%xmm1
-vmovdqa v9_0(%rip),%xmm2
-vmovdqa %xmm2,0(%rsp)
-vmovdqa %xmm0,16(%rsp)
-vmovdqa %xmm0,32(%rsp)
-vmovdqa %xmm0,48(%rsp)
-vmovdqa %xmm0,64(%rsp)
-vmovdqa %xmm1,80(%rsp)
-vmovdqa %xmm0,96(%rsp)
-vmovdqa %xmm0,112(%rsp)
-vmovdqa %xmm0,128(%rsp)
-vmovdqa %xmm0,144(%rsp)
-vmovdqa %xmm1,%xmm0
-vpxor %xmm1,%xmm1,%xmm1
-vpxor %xmm2,%xmm2,%xmm2
-vpxor %xmm3,%xmm3,%xmm3
-vpxor %xmm4,%xmm4,%xmm4
-vpxor %xmm5,%xmm5,%xmm5
-vpxor %xmm6,%xmm6,%xmm6
-vpxor %xmm7,%xmm7,%xmm7
-vpxor %xmm8,%xmm8,%xmm8
-vpxor %xmm9,%xmm9,%xmm9
-movq 0(%rsi),%rdx
-movq 8(%rsi),%rcx
-movq 16(%rsi),%r8
-movq 24(%rsi),%r9
-shrd $1,%rcx,%rdx
-shrd $1,%r8,%rcx
-shrd $1,%r9,%r8
-shr $1,%r9
-xorq 0(%rsi),%rdx
-xorq 8(%rsi),%rcx
-xorq 16(%rsi),%r8
-xorq 24(%rsi),%r9
-leaq 512(%rsp),%rsi
-mov $64,%rax
-
-.p2align 4
-._ladder_base_small_loop:
-mov %rdx,%r10
-mov %rcx,%r11
-mov %r8,%r12
-mov %r9,%r13
-shr $1,%rdx
-shr $1,%rcx
-shr $1,%r8
-shr $1,%r9
-and $1,%r10d
-and $1,%r11d
-and $1,%r12d
-and $1,%r13d
-neg %r10
-neg %r11
-neg %r12
-neg %r13
-movl %r10d,0(%rsi)
-movl %r11d,256(%rsi)
-movl %r12d,512(%rsi)
-movl %r13d,768(%rsi)
-add $4,%rsi
-sub $1,%rax
-jne ._ladder_base_small_loop
-mov $255,%rdx
-add $760,%rsi
-
-.p2align 4
-._ladder_base_loop:
-sub $1,%rdx
-vbroadcastss 0(%rsi),%xmm10
-sub $4,%rsi
-vmovdqa 0(%rsp),%xmm11
-vmovdqa 80(%rsp),%xmm12
-vpxor %xmm11,%xmm0,%xmm13
-vpand %xmm10,%xmm13,%xmm13
-vpxor %xmm13,%xmm0,%xmm0
-vpxor %xmm13,%xmm11,%xmm11
-vpxor %xmm12,%xmm1,%xmm13
-vpand %xmm10,%xmm13,%xmm13
-vpxor %xmm13,%xmm1,%xmm1
-vpxor %xmm13,%xmm12,%xmm12
-vmovdqa 16(%rsp),%xmm13
-vmovdqa 96(%rsp),%xmm14
-vpxor %xmm13,%xmm2,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm2,%xmm2
-vpxor %xmm15,%xmm13,%xmm13
-vpxor %xmm14,%xmm3,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm3,%xmm3
-vpxor %xmm15,%xmm14,%xmm14
-vmovdqa %xmm13,0(%rsp)
-vmovdqa %xmm14,16(%rsp)
-vmovdqa 32(%rsp),%xmm13
-vmovdqa 112(%rsp),%xmm14
-vpxor %xmm13,%xmm4,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm4,%xmm4
-vpxor %xmm15,%xmm13,%xmm13
-vpxor %xmm14,%xmm5,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm5,%xmm5
-vpxor %xmm15,%xmm14,%xmm14
-vmovdqa %xmm13,32(%rsp)
-vmovdqa %xmm14,80(%rsp)
-vmovdqa 48(%rsp),%xmm13
-vmovdqa 128(%rsp),%xmm14
-vpxor %xmm13,%xmm6,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm6,%xmm6
-vpxor %xmm15,%xmm13,%xmm13
-vpxor %xmm14,%xmm7,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm7,%xmm7
-vpxor %xmm15,%xmm14,%xmm14
-vmovdqa %xmm13,48(%rsp)
-vmovdqa %xmm14,96(%rsp)
-vmovdqa 64(%rsp),%xmm13
-vmovdqa 144(%rsp),%xmm14
-vpxor %xmm13,%xmm8,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm8,%xmm8
-vpxor %xmm15,%xmm13,%xmm13
-vpxor %xmm14,%xmm9,%xmm15
-vpand %xmm10,%xmm15,%xmm15
-vpxor %xmm15,%xmm9,%xmm9
-vpxor %xmm15,%xmm14,%xmm14
-vmovdqa %xmm13,64(%rsp)
-vmovdqa %xmm14,112(%rsp)
-vpaddq subc0(%rip),%xmm11,%xmm10
-vpsubq %xmm12,%xmm10,%xmm10
-vpaddq %xmm12,%xmm11,%xmm11
-vpunpckhqdq %xmm10,%xmm11,%xmm12
-vpunpcklqdq %xmm10,%xmm11,%xmm10
-vpaddq %xmm1,%xmm0,%xmm11
-vpaddq subc0(%rip),%xmm0,%xmm0
-vpsubq %xmm1,%xmm0,%xmm0
-vpunpckhqdq %xmm11,%xmm0,%xmm1
-vpunpcklqdq %xmm11,%xmm0,%xmm0
-vpmuludq %xmm0,%xmm10,%xmm11
-vpmuludq %xmm1,%xmm10,%xmm13
-vmovdqa %xmm1,128(%rsp)
-vpaddq %xmm1,%xmm1,%xmm1
-vpmuludq %xmm0,%xmm12,%xmm14
-vmovdqa %xmm0,144(%rsp)
-vpaddq %xmm14,%xmm13,%xmm13
-vpmuludq %xmm1,%xmm12,%xmm0
-vmovdqa %xmm1,160(%rsp)
-vpaddq %xmm3,%xmm2,%xmm1
-vpaddq subc2(%rip),%xmm2,%xmm2
-vpsubq %xmm3,%xmm2,%xmm2
-vpunpckhqdq %xmm1,%xmm2,%xmm3
-vpunpcklqdq %xmm1,%xmm2,%xmm1
-vpmuludq %xmm1,%xmm10,%xmm2
-vpaddq %xmm2,%xmm0,%xmm0
-vpmuludq %xmm3,%xmm10,%xmm2
-vmovdqa %xmm3,176(%rsp)
-vpaddq %xmm3,%xmm3,%xmm3
-vpmuludq %xmm1,%xmm12,%xmm14
-vmovdqa %xmm1,192(%rsp)
-vpaddq %xmm14,%xmm2,%xmm2
-vpmuludq %xmm3,%xmm12,%xmm1
-vmovdqa %xmm3,208(%rsp)
-vpaddq %xmm5,%xmm4,%xmm3
-vpaddq subc2(%rip),%xmm4,%xmm4
-vpsubq %xmm5,%xmm4,%xmm4
-vpunpckhqdq %xmm3,%xmm4,%xmm5
-vpunpcklqdq %xmm3,%xmm4,%xmm3
-vpmuludq %xmm3,%xmm10,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vpmuludq %xmm5,%xmm10,%xmm4
-vmovdqa %xmm5,224(%rsp)
-vpaddq %xmm5,%xmm5,%xmm5
-vpmuludq %xmm3,%xmm12,%xmm14
-vmovdqa %xmm3,240(%rsp)
-vpaddq %xmm14,%xmm4,%xmm4
-vpaddq %xmm7,%xmm6,%xmm3
-vpaddq subc2(%rip),%xmm6,%xmm6
-vpsubq %xmm7,%xmm6,%xmm6
-vpunpckhqdq %xmm3,%xmm6,%xmm7
-vpunpcklqdq %xmm3,%xmm6,%xmm3
-vpmuludq %xmm3,%xmm10,%xmm6
-vpmuludq %xmm5,%xmm12,%xmm14
-vmovdqa %xmm5,256(%rsp)
-vpmuludq v19_19(%rip),%xmm5,%xmm5
-vmovdqa %xmm5,272(%rsp)
-vpaddq %xmm14,%xmm6,%xmm6
-vpmuludq %xmm7,%xmm10,%xmm5
-vmovdqa %xmm7,288(%rsp)
-vpaddq %xmm7,%xmm7,%xmm7
-vpmuludq %xmm3,%xmm12,%xmm14
-vmovdqa %xmm3,304(%rsp)
-vpaddq %xmm14,%xmm5,%xmm5
-vpmuludq v19_19(%rip),%xmm3,%xmm3
-vmovdqa %xmm3,320(%rsp)
-vpaddq %xmm9,%xmm8,%xmm3
-vpaddq subc2(%rip),%xmm8,%xmm8
-vpsubq %xmm9,%xmm8,%xmm8
-vpunpckhqdq %xmm3,%xmm8,%xmm9
-vpunpcklqdq %xmm3,%xmm8,%xmm3
-vmovdqa %xmm3,336(%rsp)
-vpmuludq %xmm7,%xmm12,%xmm8
-vmovdqa %xmm7,352(%rsp)
-vpmuludq v19_19(%rip),%xmm7,%xmm7
-vmovdqa %xmm7,368(%rsp)
-vpmuludq %xmm3,%xmm10,%xmm7
-vpaddq %xmm7,%xmm8,%xmm8
-vpmuludq %xmm9,%xmm10,%xmm7
-vmovdqa %xmm9,384(%rsp)
-vpaddq %xmm9,%xmm9,%xmm9
-vpmuludq %xmm3,%xmm12,%xmm10
-vpaddq %xmm10,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm3,%xmm3
-vmovdqa %xmm3,400(%rsp)
-vpmuludq v19_19(%rip),%xmm12,%xmm12
-vpmuludq %xmm9,%xmm12,%xmm3
-vmovdqa %xmm9,416(%rsp)
-vpaddq %xmm3,%xmm11,%xmm11
-vmovdqa 0(%rsp),%xmm3
-vmovdqa 16(%rsp),%xmm9
-vpaddq subc2(%rip),%xmm3,%xmm10
-vpsubq %xmm9,%xmm10,%xmm10
-vpaddq %xmm9,%xmm3,%xmm3
-vpunpckhqdq %xmm10,%xmm3,%xmm9
-vpunpcklqdq %xmm10,%xmm3,%xmm3
-vpmuludq 144(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm0,%xmm0
-vpmuludq 128(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm2,%xmm2
-vpmuludq 192(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm1,%xmm1
-vpmuludq 176(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm4,%xmm4
-vpmuludq 240(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm6,%xmm6
-vpmuludq 224(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm5,%xmm5
-vpmuludq 304(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm8,%xmm8
-vpmuludq 288(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm3,%xmm3
-vpmuludq 336(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm11,%xmm11
-vpmuludq 384(%rsp),%xmm3,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 144(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm2,%xmm2
-vpmuludq 160(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm1,%xmm1
-vpmuludq 192(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm4,%xmm4
-vpmuludq 208(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpmuludq 240(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 256(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm8,%xmm8
-vpmuludq 304(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm9,%xmm9
-vpmuludq 352(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm11,%xmm11
-vpmuludq 336(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 416(%rsp),%xmm9,%xmm9
-vpaddq %xmm9,%xmm0,%xmm0
-vmovdqa 32(%rsp),%xmm3
-vmovdqa 80(%rsp),%xmm9
-vpaddq subc2(%rip),%xmm3,%xmm10
-vpsubq %xmm9,%xmm10,%xmm10
-vpaddq %xmm9,%xmm3,%xmm3
-vpunpckhqdq %xmm10,%xmm3,%xmm9
-vpunpcklqdq %xmm10,%xmm3,%xmm3
-vpmuludq 144(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm1,%xmm1
-vpmuludq 128(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm4,%xmm4
-vpmuludq 192(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm6,%xmm6
-vpmuludq 176(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm5,%xmm5
-vpmuludq 240(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm8,%xmm8
-vpmuludq 224(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm3,%xmm3
-vpmuludq 304(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm11,%xmm11
-vpmuludq 288(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm13,%xmm13
-vpmuludq 336(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm0,%xmm0
-vpmuludq 384(%rsp),%xmm3,%xmm3
-vpaddq %xmm3,%xmm2,%xmm2
-vpmuludq 144(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm4,%xmm4
-vpmuludq 160(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpmuludq 192(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 208(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm8,%xmm8
-vpmuludq 240(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm9,%xmm9
-vpmuludq 256(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm11,%xmm11
-vpmuludq 304(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 352(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm0,%xmm0
-vpmuludq 336(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm2,%xmm2
-vpmuludq 416(%rsp),%xmm9,%xmm9
-vpaddq %xmm9,%xmm1,%xmm1
-vmovdqa 48(%rsp),%xmm3
-vmovdqa 96(%rsp),%xmm9
-vpaddq subc2(%rip),%xmm3,%xmm10
-vpsubq %xmm9,%xmm10,%xmm10
-vpaddq %xmm9,%xmm3,%xmm3
-vpunpckhqdq %xmm10,%xmm3,%xmm9
-vpunpcklqdq %xmm10,%xmm3,%xmm3
-vpmuludq 144(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm6,%xmm6
-vpmuludq 128(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm5,%xmm5
-vpmuludq 192(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm8,%xmm8
-vpmuludq 176(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm3,%xmm3
-vpmuludq 240(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm11,%xmm11
-vpmuludq 224(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm13,%xmm13
-vpmuludq 304(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm0,%xmm0
-vpmuludq 288(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm2,%xmm2
-vpmuludq 336(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm1,%xmm1
-vpmuludq 384(%rsp),%xmm3,%xmm3
-vpaddq %xmm3,%xmm4,%xmm4
-vpmuludq 144(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 160(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm8,%xmm8
-vpmuludq 192(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm9,%xmm9
-vpmuludq 208(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm11,%xmm11
-vpmuludq 240(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 256(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm0,%xmm0
-vpmuludq 304(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm2,%xmm2
-vpmuludq 352(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm1,%xmm1
-vpmuludq 336(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm4,%xmm4
-vpmuludq 416(%rsp),%xmm9,%xmm9
-vpaddq %xmm9,%xmm6,%xmm6
-vmovdqa 64(%rsp),%xmm3
-vmovdqa 112(%rsp),%xmm9
-vpaddq subc2(%rip),%xmm3,%xmm10
-vpsubq %xmm9,%xmm10,%xmm10
-vpaddq %xmm9,%xmm3,%xmm3
-vpunpckhqdq %xmm10,%xmm3,%xmm9
-vpunpcklqdq %xmm10,%xmm3,%xmm3
-vpmuludq 144(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm8,%xmm8
-vpmuludq 128(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm3,%xmm3
-vpmuludq 192(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm11,%xmm11
-vpmuludq 176(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm13,%xmm13
-vpmuludq 240(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm0,%xmm0
-vpmuludq 224(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm2,%xmm2
-vpmuludq 304(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm1,%xmm1
-vpmuludq 288(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm4,%xmm4
-vpmuludq 336(%rsp),%xmm3,%xmm10
-vpaddq %xmm10,%xmm6,%xmm6
-vpmuludq 384(%rsp),%xmm3,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 144(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpmuludq v19_19(%rip),%xmm9,%xmm9
-vpmuludq 160(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm11,%xmm11
-vpmuludq 192(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 208(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm0,%xmm0
-vpmuludq 240(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm2,%xmm2
-vpmuludq 256(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm1,%xmm1
-vpmuludq 304(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm4,%xmm4
-vpmuludq 352(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpmuludq 336(%rsp),%xmm9,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 416(%rsp),%xmm9,%xmm9
-vpaddq %xmm9,%xmm8,%xmm8
-vpsrlq $25,%xmm4,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpand m25(%rip),%xmm4,%xmm4
-vpsrlq $26,%xmm11,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpand m26(%rip),%xmm11,%xmm11
-vpsrlq $26,%xmm6,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpand m26(%rip),%xmm6,%xmm6
-vpsrlq $25,%xmm13,%xmm3
-vpaddq %xmm3,%xmm0,%xmm0
-vpand m25(%rip),%xmm13,%xmm13
-vpsrlq $25,%xmm5,%xmm3
-vpaddq %xmm3,%xmm8,%xmm8
-vpand m25(%rip),%xmm5,%xmm5
-vpsrlq $26,%xmm0,%xmm3
-vpaddq %xmm3,%xmm2,%xmm2
-vpand m26(%rip),%xmm0,%xmm0
-vpsrlq $26,%xmm8,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpand m26(%rip),%xmm8,%xmm8
-vpsrlq $25,%xmm2,%xmm3
-vpaddq %xmm3,%xmm1,%xmm1
-vpand m25(%rip),%xmm2,%xmm2
-vpsrlq $25,%xmm7,%xmm3
-vpsllq $4,%xmm3,%xmm9
-vpaddq %xmm3,%xmm11,%xmm11
-vpsllq $1,%xmm3,%xmm3
-vpaddq %xmm3,%xmm9,%xmm9
-vpaddq %xmm9,%xmm11,%xmm11
-vpand m25(%rip),%xmm7,%xmm7
-vpsrlq $26,%xmm1,%xmm3
-vpaddq %xmm3,%xmm4,%xmm4
-vpand m26(%rip),%xmm1,%xmm1
-vpsrlq $26,%xmm11,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpand m26(%rip),%xmm11,%xmm11
-vpsrlq $25,%xmm4,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpand m25(%rip),%xmm4,%xmm4
-vpunpcklqdq %xmm13,%xmm11,%xmm3
-vpunpckhqdq %xmm13,%xmm11,%xmm9
-vpaddq subc0(%rip),%xmm9,%xmm10
-vpsubq %xmm3,%xmm10,%xmm10
-vpaddq %xmm9,%xmm3,%xmm3
-vpunpckhqdq %xmm3,%xmm10,%xmm9
-vpunpcklqdq %xmm3,%xmm10,%xmm10
-vpmuludq %xmm10,%xmm10,%xmm3
-vpaddq %xmm10,%xmm10,%xmm10
-vpmuludq %xmm9,%xmm10,%xmm11
-vpunpcklqdq %xmm2,%xmm0,%xmm12
-vpunpckhqdq %xmm2,%xmm0,%xmm0
-vpaddq subc2(%rip),%xmm0,%xmm2
-vpsubq %xmm12,%xmm2,%xmm2
-vpaddq %xmm0,%xmm12,%xmm12
-vpunpckhqdq %xmm12,%xmm2,%xmm0
-vpunpcklqdq %xmm12,%xmm2,%xmm2
-vpmuludq %xmm2,%xmm10,%xmm12
-vpaddq %xmm9,%xmm9,%xmm13
-vpmuludq %xmm13,%xmm9,%xmm9
-vpaddq %xmm9,%xmm12,%xmm12
-vpmuludq %xmm0,%xmm10,%xmm9
-vpmuludq %xmm2,%xmm13,%xmm14
-vpaddq %xmm14,%xmm9,%xmm9
-vpunpcklqdq %xmm4,%xmm1,%xmm14
-vpunpckhqdq %xmm4,%xmm1,%xmm1
-vpaddq subc2(%rip),%xmm1,%xmm4
-vpsubq %xmm14,%xmm4,%xmm4
-vpaddq %xmm1,%xmm14,%xmm14
-vpunpckhqdq %xmm14,%xmm4,%xmm1
-vpunpcklqdq %xmm14,%xmm4,%xmm4
-vmovdqa %xmm1,0(%rsp)
-vpaddq %xmm1,%xmm1,%xmm1
-vmovdqa %xmm1,16(%rsp)
-vpmuludq v19_19(%rip),%xmm1,%xmm1
-vmovdqa %xmm1,32(%rsp)
-vpmuludq %xmm4,%xmm10,%xmm1
-vpmuludq %xmm2,%xmm2,%xmm14
-vpaddq %xmm14,%xmm1,%xmm1
-vpmuludq 0(%rsp),%xmm10,%xmm14
-vpmuludq %xmm4,%xmm13,%xmm15
-vpaddq %xmm15,%xmm14,%xmm14
-vpunpcklqdq %xmm5,%xmm6,%xmm15
-vpunpckhqdq %xmm5,%xmm6,%xmm5
-vpaddq subc2(%rip),%xmm5,%xmm6
-vpsubq %xmm15,%xmm6,%xmm6
-vpaddq %xmm5,%xmm15,%xmm15
-vpunpckhqdq %xmm15,%xmm6,%xmm5
-vpunpcklqdq %xmm15,%xmm6,%xmm6
-vmovdqa %xmm6,48(%rsp)
-vpmuludq v19_19(%rip),%xmm6,%xmm6
-vmovdqa %xmm6,64(%rsp)
-vmovdqa %xmm5,80(%rsp)
-vpmuludq v38_38(%rip),%xmm5,%xmm5
-vmovdqa %xmm5,96(%rsp)
-vpmuludq 48(%rsp),%xmm10,%xmm5
-vpaddq %xmm0,%xmm0,%xmm6
-vpmuludq %xmm6,%xmm0,%xmm0
-vpaddq %xmm0,%xmm5,%xmm5
-vpmuludq 80(%rsp),%xmm10,%xmm0
-vpmuludq %xmm4,%xmm6,%xmm15
-vpaddq %xmm15,%xmm0,%xmm0
-vpmuludq %xmm6,%xmm13,%xmm15
-vpaddq %xmm15,%xmm1,%xmm1
-vpmuludq %xmm6,%xmm2,%xmm15
-vpaddq %xmm15,%xmm14,%xmm14
-vpunpcklqdq %xmm7,%xmm8,%xmm15
-vpunpckhqdq %xmm7,%xmm8,%xmm7
-vpaddq subc2(%rip),%xmm7,%xmm8
-vpsubq %xmm15,%xmm8,%xmm8
-vpaddq %xmm7,%xmm15,%xmm15
-vpunpckhqdq %xmm15,%xmm8,%xmm7
-vpunpcklqdq %xmm15,%xmm8,%xmm8
-vmovdqa %xmm8,112(%rsp)
-vpmuludq v19_19(%rip),%xmm8,%xmm8
-vmovdqa %xmm8,160(%rsp)
-vpmuludq 112(%rsp),%xmm10,%xmm8
-vpmuludq %xmm7,%xmm10,%xmm10
-vpmuludq v38_38(%rip),%xmm7,%xmm15
-vpmuludq %xmm15,%xmm7,%xmm7
-vpaddq %xmm7,%xmm8,%xmm8
-vpmuludq %xmm15,%xmm13,%xmm7
-vpaddq %xmm7,%xmm3,%xmm3
-vpmuludq %xmm15,%xmm2,%xmm7
-vpaddq %xmm7,%xmm11,%xmm11
-vpmuludq 80(%rsp),%xmm13,%xmm7
-vpaddq %xmm7,%xmm7,%xmm7
-vpaddq %xmm7,%xmm8,%xmm8
-vpmuludq 16(%rsp),%xmm13,%xmm7
-vpaddq %xmm7,%xmm5,%xmm5
-vpmuludq 48(%rsp),%xmm13,%xmm7
-vpaddq %xmm7,%xmm0,%xmm0
-vpmuludq 112(%rsp),%xmm13,%xmm7
-vpaddq %xmm7,%xmm10,%xmm10
-vpmuludq %xmm15,%xmm6,%xmm7
-vpaddq %xmm7,%xmm12,%xmm12
-vpmuludq %xmm15,%xmm4,%xmm7
-vpaddq %xmm7,%xmm9,%xmm9
-vpaddq %xmm2,%xmm2,%xmm2
-vpmuludq %xmm4,%xmm2,%xmm7
-vpaddq %xmm7,%xmm5,%xmm5
-vpmuludq 160(%rsp),%xmm2,%xmm7
-vpaddq %xmm7,%xmm3,%xmm3
-vpmuludq 160(%rsp),%xmm6,%xmm7
-vpaddq %xmm7,%xmm11,%xmm11
-vpmuludq 0(%rsp),%xmm2,%xmm7
-vpaddq %xmm7,%xmm0,%xmm0
-vpmuludq 48(%rsp),%xmm2,%xmm7
-vpaddq %xmm7,%xmm8,%xmm8
-vpmuludq 80(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq 96(%rsp),%xmm4,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpmuludq %xmm4,%xmm4,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpaddq %xmm4,%xmm4,%xmm2
-vpmuludq 160(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm12,%xmm12
-vpmuludq 16(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vpmuludq 48(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm14,%xmm14
-vpmuludq 96(%rsp),%xmm6,%xmm4
-vpaddq %xmm4,%xmm3,%xmm3
-vmovdqa 16(%rsp),%xmm4
-vpmuludq 160(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm9,%xmm9
-vpmuludq 16(%rsp),%xmm6,%xmm4
-vpaddq %xmm4,%xmm8,%xmm8
-vpmuludq 48(%rsp),%xmm6,%xmm4
-vpaddq %xmm4,%xmm10,%xmm10
-vpmuludq 80(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm4,%xmm4
-vpaddq %xmm4,%xmm5,%xmm5
-vpmuludq 112(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm0,%xmm0
-vmovdqa 48(%rsp),%xmm4
-vpaddq %xmm4,%xmm4,%xmm4
-vpmuludq 160(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vmovdqa 80(%rsp),%xmm4
-vpaddq %xmm4,%xmm4,%xmm4
-vpmuludq 160(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm14,%xmm14
-vpmuludq 64(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm3,%xmm3
-vmovdqa 16(%rsp),%xmm4
-vpmuludq 64(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm11,%xmm11
-vmovdqa 16(%rsp),%xmm4
-vpmuludq 96(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm12,%xmm12
-vmovdqa 48(%rsp),%xmm4
-vpmuludq 96(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm9,%xmm9
-vpmuludq 0(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vmovdqa 32(%rsp),%xmm2
-vpmuludq 0(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm3,%xmm3
-vmovdqa 64(%rsp),%xmm2
-vpmuludq 48(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vmovdqa 96(%rsp),%xmm2
-vpmuludq 80(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm1,%xmm1
-vmovdqa 160(%rsp),%xmm2
-vpmuludq 112(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpsrlq $26,%xmm3,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpand m26(%rip),%xmm3,%xmm3
-vpsrlq $25,%xmm14,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpand m25(%rip),%xmm14,%xmm14
-vpsrlq $25,%xmm11,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpand m25(%rip),%xmm11,%xmm11
-vpsrlq $26,%xmm5,%xmm2
-vpaddq %xmm2,%xmm0,%xmm0
-vpand m26(%rip),%xmm5,%xmm5
-vpsrlq $26,%xmm12,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpand m26(%rip),%xmm12,%xmm12
-vpsrlq $25,%xmm0,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpand m25(%rip),%xmm0,%xmm0
-vpsrlq $25,%xmm9,%xmm2
-vpaddq %xmm2,%xmm1,%xmm1
-vpand m25(%rip),%xmm9,%xmm9
-vpsrlq $26,%xmm8,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpand m26(%rip),%xmm8,%xmm8
-vpsrlq $26,%xmm1,%xmm2
-vpaddq %xmm2,%xmm14,%xmm14
-vpand m26(%rip),%xmm1,%xmm1
-vpsrlq $25,%xmm10,%xmm2
-vpsllq $4,%xmm2,%xmm4
-vpaddq %xmm2,%xmm3,%xmm3
-vpsllq $1,%xmm2,%xmm2
-vpaddq %xmm2,%xmm4,%xmm4
-vpaddq %xmm4,%xmm3,%xmm3
-vpand m25(%rip),%xmm10,%xmm10
-vpsrlq $25,%xmm14,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpand m25(%rip),%xmm14,%xmm14
-vpsrlq $26,%xmm3,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpand m26(%rip),%xmm3,%xmm3
-vpunpckhqdq %xmm11,%xmm3,%xmm2
-vmovdqa %xmm2,0(%rsp)
-vpunpcklqdq %xmm11,%xmm3,%xmm2
-vpmuludq v9_9(%rip),%xmm2,%xmm2
-vmovdqa %xmm2,80(%rsp)
-vpunpckhqdq %xmm9,%xmm12,%xmm2
-vmovdqa %xmm2,16(%rsp)
-vpunpcklqdq %xmm9,%xmm12,%xmm2
-vpmuludq v9_9(%rip),%xmm2,%xmm2
-vmovdqa %xmm2,96(%rsp)
-vpunpckhqdq %xmm14,%xmm1,%xmm2
-vmovdqa %xmm2,32(%rsp)
-vpunpcklqdq %xmm14,%xmm1,%xmm1
-vpmuludq v9_9(%rip),%xmm1,%xmm1
-vmovdqa %xmm1,112(%rsp)
-vpunpckhqdq %xmm0,%xmm5,%xmm1
-vmovdqa %xmm1,48(%rsp)
-vpunpcklqdq %xmm0,%xmm5,%xmm0
-vpmuludq v9_9(%rip),%xmm0,%xmm0
-vmovdqa %xmm0,160(%rsp)
-vpunpckhqdq %xmm10,%xmm8,%xmm0
-vmovdqa %xmm0,64(%rsp)
-vpunpcklqdq %xmm10,%xmm8,%xmm0
-vpmuludq v9_9(%rip),%xmm0,%xmm0
-vmovdqa %xmm0,208(%rsp)
-vmovdqa 144(%rsp),%xmm0
-vpmuludq %xmm0,%xmm0,%xmm1
-vpaddq %xmm0,%xmm0,%xmm0
-vmovdqa 128(%rsp),%xmm2
-vpmuludq %xmm2,%xmm0,%xmm3
-vmovdqa 192(%rsp),%xmm4
-vpmuludq %xmm4,%xmm0,%xmm5
-vmovdqa 176(%rsp),%xmm6
-vpmuludq %xmm6,%xmm0,%xmm7
-vmovdqa 240(%rsp),%xmm8
-vpmuludq %xmm8,%xmm0,%xmm9
-vpmuludq 224(%rsp),%xmm0,%xmm10
-vpmuludq 304(%rsp),%xmm0,%xmm11
-vpmuludq 288(%rsp),%xmm0,%xmm12
-vpmuludq 336(%rsp),%xmm0,%xmm13
-vmovdqa 384(%rsp),%xmm14
-vpmuludq %xmm14,%xmm0,%xmm0
-vpmuludq v38_38(%rip),%xmm14,%xmm15
-vpmuludq %xmm15,%xmm14,%xmm14
-vpaddq %xmm14,%xmm13,%xmm13
-vpaddq %xmm6,%xmm6,%xmm14
-vpmuludq %xmm14,%xmm6,%xmm6
-vpaddq %xmm6,%xmm11,%xmm11
-vpaddq %xmm2,%xmm2,%xmm6
-vpmuludq %xmm6,%xmm2,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpmuludq %xmm15,%xmm6,%xmm2
-vpaddq %xmm2,%xmm1,%xmm1
-vpmuludq %xmm15,%xmm4,%xmm2
-vpaddq %xmm2,%xmm3,%xmm3
-vpmuludq 256(%rsp),%xmm6,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpmuludq 304(%rsp),%xmm6,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq 352(%rsp),%xmm6,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpmuludq 336(%rsp),%xmm6,%xmm2
-vpaddq %xmm2,%xmm0,%xmm0
-vpmuludq %xmm4,%xmm6,%xmm2
-vpaddq %xmm2,%xmm7,%xmm7
-vpmuludq %xmm14,%xmm6,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpmuludq %xmm8,%xmm6,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq %xmm15,%xmm14,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpmuludq %xmm15,%xmm8,%xmm2
-vpaddq %xmm2,%xmm7,%xmm7
-vpmuludq %xmm4,%xmm4,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpmuludq %xmm14,%xmm4,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpaddq %xmm4,%xmm4,%xmm2
-vpmuludq %xmm8,%xmm2,%xmm4
-vpaddq %xmm4,%xmm11,%xmm11
-vpmuludq 400(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vpmuludq 400(%rsp),%xmm14,%xmm4
-vpaddq %xmm4,%xmm3,%xmm3
-vpmuludq 224(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm12,%xmm12
-vpmuludq 304(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm13,%xmm13
-vpmuludq 288(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm0,%xmm0
-vpmuludq 368(%rsp),%xmm8,%xmm2
-vpaddq %xmm2,%xmm3,%xmm3
-vpmuludq %xmm8,%xmm14,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq %xmm8,%xmm8,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpaddq %xmm8,%xmm8,%xmm2
-vpmuludq 400(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm5,%xmm5
-vpmuludq 256(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm9,%xmm9
-vpmuludq 304(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm10,%xmm10
-vpmuludq 368(%rsp),%xmm14,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vmovdqa 256(%rsp),%xmm4
-vpmuludq 400(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm7,%xmm7
-vpmuludq 256(%rsp),%xmm14,%xmm4
-vpaddq %xmm4,%xmm13,%xmm13
-vpmuludq 304(%rsp),%xmm14,%xmm4
-vpaddq %xmm4,%xmm0,%xmm0
-vpmuludq 352(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm11,%xmm11
-vpmuludq 336(%rsp),%xmm15,%xmm4
-vpaddq %xmm4,%xmm12,%xmm12
-vmovdqa 304(%rsp),%xmm4
-vpaddq %xmm4,%xmm4,%xmm4
-vpmuludq 400(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm9,%xmm9
-vpmuludq 320(%rsp),%xmm2,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vmovdqa 256(%rsp),%xmm4
-vpmuludq 320(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm3,%xmm3
-vmovdqa 256(%rsp),%xmm4
-vpmuludq 368(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm5,%xmm5
-vmovdqa 304(%rsp),%xmm4
-vpmuludq 368(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm7,%xmm7
-vmovdqa 352(%rsp),%xmm4
-vpmuludq 400(%rsp),%xmm4,%xmm4
-vpaddq %xmm4,%xmm10,%xmm10
-vpmuludq 224(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm0,%xmm0
-vmovdqa 272(%rsp),%xmm2
-vpmuludq 224(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm1,%xmm1
-vmovdqa 320(%rsp),%xmm2
-vpmuludq 304(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vmovdqa 368(%rsp),%xmm2
-vpmuludq 288(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vmovdqa 400(%rsp),%xmm2
-vpmuludq 336(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpsrlq $26,%xmm1,%xmm2
-vpaddq %xmm2,%xmm3,%xmm3
-vpand m26(%rip),%xmm1,%xmm1
-vpsrlq $25,%xmm10,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpand m25(%rip),%xmm10,%xmm10
-vpsrlq $25,%xmm3,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpand m25(%rip),%xmm3,%xmm3
-vpsrlq $26,%xmm11,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpand m26(%rip),%xmm11,%xmm11
-vpsrlq $26,%xmm5,%xmm2
-vpaddq %xmm2,%xmm7,%xmm7
-vpand m26(%rip),%xmm5,%xmm5
-vpsrlq $25,%xmm12,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpand m25(%rip),%xmm12,%xmm12
-vpsrlq $25,%xmm7,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpand m25(%rip),%xmm7,%xmm7
-vpsrlq $26,%xmm13,%xmm2
-vpaddq %xmm2,%xmm0,%xmm0
-vpand m26(%rip),%xmm13,%xmm13
-vpsrlq $26,%xmm9,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpand m26(%rip),%xmm9,%xmm9
-vpsrlq $25,%xmm0,%xmm2
-vpsllq $4,%xmm2,%xmm4
-vpaddq %xmm2,%xmm1,%xmm1
-vpsllq $1,%xmm2,%xmm2
-vpaddq %xmm2,%xmm4,%xmm4
-vpaddq %xmm4,%xmm1,%xmm1
-vpand m25(%rip),%xmm0,%xmm0
-vpsrlq $25,%xmm10,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpand m25(%rip),%xmm10,%xmm10
-vpsrlq $26,%xmm1,%xmm2
-vpaddq %xmm2,%xmm3,%xmm3
-vpand m26(%rip),%xmm1,%xmm1
-vpunpckhqdq %xmm3,%xmm1,%xmm2
-vpunpcklqdq %xmm3,%xmm1,%xmm1
-vmovdqa %xmm1,176(%rsp)
-vpaddq subc0(%rip),%xmm2,%xmm3
-vpsubq %xmm1,%xmm3,%xmm3
-vpunpckhqdq %xmm3,%xmm2,%xmm1
-vpunpcklqdq %xmm3,%xmm2,%xmm2
-vmovdqa %xmm2,192(%rsp)
-vmovdqa %xmm1,224(%rsp)
-vpsllq $1,%xmm1,%xmm1
-vmovdqa %xmm1,240(%rsp)
-vpmuludq v121666_121666(%rip),%xmm3,%xmm3
-vmovdqa 80(%rsp),%xmm1
-vpunpcklqdq %xmm1,%xmm3,%xmm2
-vpunpckhqdq %xmm1,%xmm3,%xmm1
-vpunpckhqdq %xmm7,%xmm5,%xmm3
-vpunpcklqdq %xmm7,%xmm5,%xmm4
-vmovdqa %xmm4,256(%rsp)
-vpaddq subc2(%rip),%xmm3,%xmm5
-vpsubq %xmm4,%xmm5,%xmm5
-vpunpckhqdq %xmm5,%xmm3,%xmm4
-vpunpcklqdq %xmm5,%xmm3,%xmm3
-vmovdqa %xmm3,272(%rsp)
-vmovdqa %xmm4,288(%rsp)
-vpsllq $1,%xmm4,%xmm4
-vmovdqa %xmm4,304(%rsp)
-vpmuludq v121666_121666(%rip),%xmm5,%xmm5
-vmovdqa 96(%rsp),%xmm3
-vpunpcklqdq %xmm3,%xmm5,%xmm4
-vpunpckhqdq %xmm3,%xmm5,%xmm3
-vpunpckhqdq %xmm10,%xmm9,%xmm5
-vpunpcklqdq %xmm10,%xmm9,%xmm6
-vmovdqa %xmm6,320(%rsp)
-vpaddq subc2(%rip),%xmm5,%xmm7
-vpsubq %xmm6,%xmm7,%xmm7
-vpunpckhqdq %xmm7,%xmm5,%xmm6
-vpunpcklqdq %xmm7,%xmm5,%xmm5
-vmovdqa %xmm5,336(%rsp)
-vmovdqa %xmm6,352(%rsp)
-vpsllq $1,%xmm6,%xmm6
-vmovdqa %xmm6,368(%rsp)
-vpmuludq v121666_121666(%rip),%xmm7,%xmm7
-vmovdqa 112(%rsp),%xmm5
-vpunpcklqdq %xmm5,%xmm7,%xmm6
-vpunpckhqdq %xmm5,%xmm7,%xmm5
-vpunpckhqdq %xmm12,%xmm11,%xmm7
-vpunpcklqdq %xmm12,%xmm11,%xmm8
-vmovdqa %xmm8,384(%rsp)
-vpaddq subc2(%rip),%xmm7,%xmm9
-vpsubq %xmm8,%xmm9,%xmm9
-vpunpckhqdq %xmm9,%xmm7,%xmm8
-vpunpcklqdq %xmm9,%xmm7,%xmm7
-vmovdqa %xmm7,400(%rsp)
-vmovdqa %xmm8,416(%rsp)
-vpsllq $1,%xmm8,%xmm8
-vmovdqa %xmm8,432(%rsp)
-vpmuludq v121666_121666(%rip),%xmm9,%xmm9
-vmovdqa 160(%rsp),%xmm7
-vpunpcklqdq %xmm7,%xmm9,%xmm8
-vpunpckhqdq %xmm7,%xmm9,%xmm7
-vpunpckhqdq %xmm0,%xmm13,%xmm9
-vpunpcklqdq %xmm0,%xmm13,%xmm0
-vmovdqa %xmm0,160(%rsp)
-vpaddq subc2(%rip),%xmm9,%xmm10
-vpsubq %xmm0,%xmm10,%xmm10
-vpunpckhqdq %xmm10,%xmm9,%xmm0
-vpunpcklqdq %xmm10,%xmm9,%xmm9
-vmovdqa %xmm9,448(%rsp)
-vmovdqa %xmm0,464(%rsp)
-vpsllq $1,%xmm0,%xmm0
-vmovdqa %xmm0,480(%rsp)
-vpmuludq v121666_121666(%rip),%xmm10,%xmm10
-vmovdqa 208(%rsp),%xmm0
-vpunpcklqdq %xmm0,%xmm10,%xmm9
-vpunpckhqdq %xmm0,%xmm10,%xmm0
-vpsrlq $26,%xmm2,%xmm10
-vpaddq %xmm10,%xmm1,%xmm1
-vpand m26(%rip),%xmm2,%xmm2
-vpsrlq $25,%xmm5,%xmm10
-vpaddq %xmm10,%xmm8,%xmm8
-vpand m25(%rip),%xmm5,%xmm5
-vpsrlq $25,%xmm1,%xmm10
-vpaddq %xmm10,%xmm4,%xmm4
-vpand m25(%rip),%xmm1,%xmm1
-vpsrlq $26,%xmm8,%xmm10
-vpaddq %xmm10,%xmm7,%xmm7
-vpand m26(%rip),%xmm8,%xmm8
-vpsrlq $26,%xmm4,%xmm10
-vpaddq %xmm10,%xmm3,%xmm3
-vpand m26(%rip),%xmm4,%xmm4
-vpsrlq $25,%xmm7,%xmm10
-vpaddq %xmm10,%xmm9,%xmm9
-vpand m25(%rip),%xmm7,%xmm7
-vpsrlq $25,%xmm3,%xmm10
-vpaddq %xmm10,%xmm6,%xmm6
-vpand m25(%rip),%xmm3,%xmm3
-vpsrlq $26,%xmm9,%xmm10
-vpaddq %xmm10,%xmm0,%xmm0
-vpand m26(%rip),%xmm9,%xmm9
-vpsrlq $26,%xmm6,%xmm10
-vpaddq %xmm10,%xmm5,%xmm5
-vpand m26(%rip),%xmm6,%xmm6
-vpsrlq $25,%xmm0,%xmm10
-vpsllq $4,%xmm10,%xmm11
-vpaddq %xmm10,%xmm2,%xmm2
-vpsllq $1,%xmm10,%xmm10
-vpaddq %xmm10,%xmm11,%xmm11
-vpaddq %xmm11,%xmm2,%xmm2
-vpand m25(%rip),%xmm0,%xmm0
-vpsrlq $25,%xmm5,%xmm10
-vpaddq %xmm10,%xmm8,%xmm8
-vpand m25(%rip),%xmm5,%xmm5
-vpsrlq $26,%xmm2,%xmm10
-vpaddq %xmm10,%xmm1,%xmm1
-vpand m26(%rip),%xmm2,%xmm2
-vpunpckhqdq %xmm1,%xmm2,%xmm10
-vmovdqa %xmm10,80(%rsp)
-vpunpcklqdq %xmm1,%xmm2,%xmm1
-vpunpckhqdq %xmm3,%xmm4,%xmm2
-vmovdqa %xmm2,96(%rsp)
-vpunpcklqdq %xmm3,%xmm4,%xmm2
-vpunpckhqdq %xmm5,%xmm6,%xmm3
-vmovdqa %xmm3,112(%rsp)
-vpunpcklqdq %xmm5,%xmm6,%xmm3
-vpunpckhqdq %xmm7,%xmm8,%xmm4
-vmovdqa %xmm4,128(%rsp)
-vpunpcklqdq %xmm7,%xmm8,%xmm4
-vpunpckhqdq %xmm0,%xmm9,%xmm5
-vmovdqa %xmm5,144(%rsp)
-vpunpcklqdq %xmm0,%xmm9,%xmm0
-vmovdqa 176(%rsp),%xmm5
-vpaddq %xmm5,%xmm1,%xmm1
-vpunpcklqdq %xmm1,%xmm5,%xmm6
-vpunpckhqdq %xmm1,%xmm5,%xmm1
-vpmuludq 224(%rsp),%xmm6,%xmm5
-vpmuludq 192(%rsp),%xmm1,%xmm7
-vpaddq %xmm7,%xmm5,%xmm5
-vpmuludq 272(%rsp),%xmm6,%xmm7
-vpmuludq 240(%rsp),%xmm1,%xmm8
-vpaddq %xmm8,%xmm7,%xmm7
-vpmuludq 288(%rsp),%xmm6,%xmm8
-vpmuludq 272(%rsp),%xmm1,%xmm9
-vpaddq %xmm9,%xmm8,%xmm8
-vpmuludq 336(%rsp),%xmm6,%xmm9
-vpmuludq 304(%rsp),%xmm1,%xmm10
-vpaddq %xmm10,%xmm9,%xmm9
-vpmuludq 352(%rsp),%xmm6,%xmm10
-vpmuludq 336(%rsp),%xmm1,%xmm11
-vpaddq %xmm11,%xmm10,%xmm10
-vpmuludq 400(%rsp),%xmm6,%xmm11
-vpmuludq 368(%rsp),%xmm1,%xmm12
-vpaddq %xmm12,%xmm11,%xmm11
-vpmuludq 416(%rsp),%xmm6,%xmm12
-vpmuludq 400(%rsp),%xmm1,%xmm13
-vpaddq %xmm13,%xmm12,%xmm12
-vpmuludq 448(%rsp),%xmm6,%xmm13
-vpmuludq 432(%rsp),%xmm1,%xmm14
-vpaddq %xmm14,%xmm13,%xmm13
-vpmuludq 464(%rsp),%xmm6,%xmm14
-vpmuludq 448(%rsp),%xmm1,%xmm15
-vpaddq %xmm15,%xmm14,%xmm14
-vpmuludq 192(%rsp),%xmm6,%xmm6
-vpmuludq v19_19(%rip),%xmm1,%xmm1
-vpmuludq 480(%rsp),%xmm1,%xmm1
-vpaddq %xmm1,%xmm6,%xmm6
-vmovdqa 256(%rsp),%xmm1
-vpaddq %xmm1,%xmm2,%xmm2
-vpunpcklqdq %xmm2,%xmm1,%xmm15
-vpunpckhqdq %xmm2,%xmm1,%xmm1
-vpmuludq 192(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm7,%xmm7
-vpmuludq 224(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpmuludq 272(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpmuludq 288(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq 336(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpmuludq 352(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq 400(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpmuludq 416(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm15,%xmm15
-vpmuludq 448(%rsp),%xmm15,%xmm2
-vpaddq %xmm2,%xmm6,%xmm6
-vpmuludq 464(%rsp),%xmm15,%xmm15
-vpaddq %xmm15,%xmm5,%xmm5
-vpmuludq 192(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpmuludq 240(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpmuludq 272(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq 304(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpmuludq 336(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq 368(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpmuludq 400(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm1,%xmm1
-vpmuludq 432(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm6,%xmm6
-vpmuludq 448(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpmuludq 480(%rsp),%xmm1,%xmm1
-vpaddq %xmm1,%xmm7,%xmm7
-vmovdqa 320(%rsp),%xmm1
-vpaddq %xmm1,%xmm3,%xmm3
-vpunpcklqdq %xmm3,%xmm1,%xmm2
-vpunpckhqdq %xmm3,%xmm1,%xmm1
-vpmuludq 192(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm9,%xmm9
-vpmuludq 224(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm10,%xmm10
-vpmuludq 272(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm11,%xmm11
-vpmuludq 288(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm12,%xmm12
-vpmuludq 336(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 352(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm2,%xmm2
-vpmuludq 400(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpmuludq 416(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 448(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpmuludq 464(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpmuludq 192(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq 240(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm11,%xmm11
-vpmuludq 272(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq 304(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpmuludq 336(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm1,%xmm1
-vpmuludq 368(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm6,%xmm6
-vpmuludq 400(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpmuludq 432(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm7,%xmm7
-vpmuludq 448(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpmuludq 480(%rsp),%xmm1,%xmm1
-vpaddq %xmm1,%xmm9,%xmm9
-vmovdqa 384(%rsp),%xmm1
-vpaddq %xmm1,%xmm4,%xmm4
-vpunpcklqdq %xmm4,%xmm1,%xmm2
-vpunpckhqdq %xmm4,%xmm1,%xmm1
-vpmuludq 192(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm11,%xmm11
-vpmuludq 224(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm12,%xmm12
-vpmuludq 272(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm13,%xmm13
-vpmuludq 288(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm2,%xmm2
-vpmuludq 336(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm6,%xmm6
-vpmuludq 352(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm5,%xmm5
-vpmuludq 400(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm7,%xmm7
-vpmuludq 416(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm8,%xmm8
-vpmuludq 448(%rsp),%xmm2,%xmm3
-vpaddq %xmm3,%xmm9,%xmm9
-vpmuludq 464(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq 192(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq 240(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm13,%xmm13
-vpmuludq 272(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm1,%xmm1
-vpmuludq 304(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm6,%xmm6
-vpmuludq 336(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm5,%xmm5
-vpmuludq 368(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm7,%xmm7
-vpmuludq 400(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm8,%xmm8
-vpmuludq 432(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm9,%xmm9
-vpmuludq 448(%rsp),%xmm1,%xmm2
-vpaddq %xmm2,%xmm10,%xmm10
-vpmuludq 480(%rsp),%xmm1,%xmm1
-vpaddq %xmm1,%xmm11,%xmm11
-vmovdqa 160(%rsp),%xmm1
-vpaddq %xmm1,%xmm0,%xmm0
-vpunpcklqdq %xmm0,%xmm1,%xmm2
-vpunpckhqdq %xmm0,%xmm1,%xmm0
-vpmuludq 192(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm13,%xmm13
-vpmuludq 224(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm2,%xmm2
-vpmuludq 272(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm6,%xmm6
-vpmuludq 288(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm5,%xmm5
-vpmuludq 336(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm7,%xmm7
-vpmuludq 352(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm8,%xmm8
-vpmuludq 400(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm9,%xmm9
-vpmuludq 416(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm10,%xmm10
-vpmuludq 448(%rsp),%xmm2,%xmm1
-vpaddq %xmm1,%xmm11,%xmm11
-vpmuludq 464(%rsp),%xmm2,%xmm2
-vpaddq %xmm2,%xmm12,%xmm12
-vpmuludq 192(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm14,%xmm14
-vpmuludq v19_19(%rip),%xmm0,%xmm0
-vpmuludq 240(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm6,%xmm6
-vpmuludq 272(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm5,%xmm5
-vpmuludq 304(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm7,%xmm7
-vpmuludq 336(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm8,%xmm8
-vpmuludq 368(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm9,%xmm9
-vpmuludq 400(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm10,%xmm10
-vpmuludq 432(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm11,%xmm11
-vpmuludq 448(%rsp),%xmm0,%xmm1
-vpaddq %xmm1,%xmm12,%xmm12
-vpmuludq 480(%rsp),%xmm0,%xmm0
-vpaddq %xmm0,%xmm13,%xmm13
-vpsrlq $26,%xmm6,%xmm0
-vpaddq %xmm0,%xmm5,%xmm5
-vpand m26(%rip),%xmm6,%xmm6
-vpsrlq $25,%xmm10,%xmm0
-vpaddq %xmm0,%xmm11,%xmm11
-vpand m25(%rip),%xmm10,%xmm10
-vpsrlq $25,%xmm5,%xmm0
-vpaddq %xmm0,%xmm7,%xmm7
-vpand m25(%rip),%xmm5,%xmm5
-vpsrlq $26,%xmm11,%xmm0
-vpaddq %xmm0,%xmm12,%xmm12
-vpand m26(%rip),%xmm11,%xmm11
-vpsrlq $26,%xmm7,%xmm0
-vpaddq %xmm0,%xmm8,%xmm8
-vpand m26(%rip),%xmm7,%xmm7
-vpsrlq $25,%xmm12,%xmm0
-vpaddq %xmm0,%xmm13,%xmm13
-vpand m25(%rip),%xmm12,%xmm12
-vpsrlq $25,%xmm8,%xmm0
-vpaddq %xmm0,%xmm9,%xmm9
-vpand m25(%rip),%xmm8,%xmm8
-vpsrlq $26,%xmm13,%xmm0
-vpaddq %xmm0,%xmm14,%xmm14
-vpand m26(%rip),%xmm13,%xmm13
-vpsrlq $26,%xmm9,%xmm0
-vpaddq %xmm0,%xmm10,%xmm10
-vpand m26(%rip),%xmm9,%xmm9
-vpsrlq $25,%xmm14,%xmm0
-vpsllq $4,%xmm0,%xmm1
-vpaddq %xmm0,%xmm6,%xmm6
-vpsllq $1,%xmm0,%xmm0
-vpaddq %xmm0,%xmm1,%xmm1
-vpaddq %xmm1,%xmm6,%xmm6
-vpand m25(%rip),%xmm14,%xmm14
-vpsrlq $25,%xmm10,%xmm0
-vpaddq %xmm0,%xmm11,%xmm11
-vpand m25(%rip),%xmm10,%xmm10
-vpsrlq $26,%xmm6,%xmm0
-vpaddq %xmm0,%xmm5,%xmm5
-vpand m26(%rip),%xmm6,%xmm6
-vpunpckhqdq %xmm5,%xmm6,%xmm1
-vpunpcklqdq %xmm5,%xmm6,%xmm0
-vpunpckhqdq %xmm8,%xmm7,%xmm3
-vpunpcklqdq %xmm8,%xmm7,%xmm2
-vpunpckhqdq %xmm10,%xmm9,%xmm5
-vpunpcklqdq %xmm10,%xmm9,%xmm4
-vpunpckhqdq %xmm12,%xmm11,%xmm7
-vpunpcklqdq %xmm12,%xmm11,%xmm6
-vpunpckhqdq %xmm14,%xmm13,%xmm9
-vpunpcklqdq %xmm14,%xmm13,%xmm8
-cmp $0,%rdx
-jne ._ladder_base_loop
-vmovdqu %xmm1,80(%rdi)
-vmovdqu %xmm0,0(%rdi)
-vmovdqu %xmm3,96(%rdi)
-vmovdqu %xmm2,16(%rdi)
-vmovdqu %xmm5,112(%rdi)
-vmovdqu %xmm4,32(%rdi)
-vmovdqu %xmm7,128(%rdi)
-vmovdqu %xmm6,48(%rdi)
-vmovdqu %xmm9,144(%rdi)
-vmovdqu %xmm8,64(%rdi)
-movq 1536(%rsp),%r11
-movq 1544(%rsp),%r12
-movq 1552(%rsp),%r13
-add %r11,%rsp
-ret
-
-#endif
diff --git a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h
deleted file mode 100644
index a69be13f..00000000
--- a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef ladder_base_H
-#define ladder_base_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "fe.h"
-#include "ladder_base_namespace.h"
-
-extern void ladder_base(fe *, const unsigned char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ifndef ladder_base_H */
-
diff --git a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h
deleted file mode 100644
index 304546a1..00000000
--- a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef ladder_base_namespace_H
-#define ladder_base_namespace_H
-
-#define ladder_base crypto_scalarmult_curve25519_sandy2x_ladder_base
-#define _ladder_base _crypto_scalarmult_curve25519_sandy2x_ladder_base
-
-#endif /* ifndef ladder_base_namespace_H */
-
diff --git a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S
index 1fd63205..585804fb 100644
--- a/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S
+++ b/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S
@@ -8,7 +8,6 @@
#include "fe51_nsquare.S"
#include "fe51_pack.S"
#include "ladder.S"
-#include "ladder_base.S"
#if defined(__linux__) && defined(__ELF__)
.section .note.GNU-stack,"",%progbits
diff --git a/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c b/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c
index 2d3ffc05..c55e45e2 100644
--- a/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c
+++ b/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c
@@ -30,7 +30,8 @@ crypto_scalarmult_curve25519(unsigned char *q, const unsigned char *n,
int
crypto_scalarmult_curve25519_base(unsigned char *q, const unsigned char *n)
{
- return implementation->mult_base(q, n);
+ return crypto_scalarmult_curve25519_ref10_implementation
+ .mult_base(q, n);
}
size_t