From 995eddf2bf5705ad44abb888486cd150f3bd417e Mon Sep 17 00:00:00 2001
From: magnum <magnum>
Date: Wed, 2 Nov 2011 23:05:56 +0100
Subject: [PATCH] j7: raw-md4 using intrinsics

---
 src/rawMD4_fmt_plug.c |  138 +++-
 src/sse-intrinsics.S  | 2961 +++++++++++++++++++++++++++++--------------------
 src/x86-64.h          |    2 +-
 3 files changed, 1912 insertions(+), 1189 deletions(-)

diff --git a/src/rawMD4_fmt_plug.c b/src/rawMD4_fmt_plug.c
index cc1db16..fc5810e 100644
--- a/src/rawMD4_fmt_plug.c
+++ b/src/rawMD4_fmt_plug.c
@@ -1,6 +1,9 @@
 /*
  * This file is part of John the Ripper password cracker,
  * Copyright (c) 2010 by Solar Designer
+ *
+ * Use of Bartavelle's intrinsics added by magnum in 2011,
+ * no rights reserved
  */
 
 #include <string.h>
@@ -9,34 +12,59 @@
 #include "params.h"
 #include "common.h"
 #include "formats.h"
-#include "md4.h"
 
 #define FORMAT_LABEL			"raw-md4"
 #define FORMAT_NAME			"Raw MD4"
+
+#ifdef MD4_SSE_PARA
+#define MMX_COEF			4
+#include "sse-intrinsics.h"
+#define NBKEYS				(MMX_COEF * MD4_SSE_PARA)
+#define ALGORITHM_NAME			MD4_N_STR
+#define PLAINTEXT_LENGTH		54
+#define MIN_KEYS_PER_CRYPT		NBKEYS
+#define MAX_KEYS_PER_CRYPT		NBKEYS
+#define GETPOS(i, index)		( (index&(MMX_COEF-1))*4 + ((i)&(0xffffffff-3))*MMX_COEF + ((i)&3) + (index>>(MMX_COEF>>1))*16*MMX_COEF*4 )
+#else
+#include "md4.h"
 #define ALGORITHM_NAME			"32/" ARCH_BITS_STR
+#define PLAINTEXT_LENGTH		125
+#define MIN_KEYS_PER_CRYPT		1
+#define MAX_KEYS_PER_CRYPT		1
+#endif
 
 #define BENCHMARK_COMMENT		""
 #define BENCHMARK_LENGTH		-1
 
-#define PLAINTEXT_LENGTH		125
 #define CIPHERTEXT_LENGTH		32
 
 #define BINARY_SIZE			16
 #define SALT_SIZE			0
 
-#define MIN_KEYS_PER_CRYPT		1
-#define MAX_KEYS_PER_CRYPT		1
-
 static struct fmt_tests tests[] = {
 	{"8a9d093f14f8701df17732b2bb182c74", "password"},
 	{"$MD4$8a9d093f14f8701df17732b2bb182c74", "password"},
 	{NULL}
 };
 
+#ifdef MD4_SSE_PARA
+#if defined (_MSC_VER)
+#define saved_key rawmd4_saved_key
+#define crypt_key rawmd4_crypt_key
+/* Cygwin would not guarantee the alignment if these were declared static */
+__declspec(align(16)) char saved_key[64*MAX_KEYS_PER_CRYPT];
+__declspec(align(16)) char crypt_key[BINARY_SIZE*MAX_KEYS_PER_CRYPT];
+#else
+static char saved_key[64*MAX_KEYS_PER_CRYPT] __attribute__ ((aligned(16)));
+static char crypt_key[BINARY_SIZE*MAX_KEYS_PER_CRYPT] __attribute__ ((aligned(16)));
+#endif
+static unsigned char out[PLAINTEXT_LENGTH + 1];
+#else
 static int saved_key_length;
 static char saved_key[PLAINTEXT_LENGTH + 1];
 static MD4_CTX ctx;
 static ARCH_WORD_32 crypt_out[4];
+#endif
 
 static int valid(char *ciphertext, struct fmt_main *pFmt)
 {
@@ -111,6 +139,43 @@ static int binary_hash_4(void *binary)
 	return *(ARCH_WORD_32 *)binary & 0xFFFFF;
 }
 
+#ifdef MD4_SSE_PARA
+static int get_hash_0(int index)
+{
+	unsigned int x,y;
+	x = index&3;
+	y = index/4;
+	return ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] & 0xf;
+}
+static int get_hash_1(int index)
+{
+	unsigned int x,y;
+        x = index&3;
+        y = index/4;
+	return ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] & 0xff;
+}
+static int get_hash_2(int index)
+{
+	unsigned int x,y;
+        x = index&3;
+        y = index/4;
+	return ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] & 0xfff;
+}
+static int get_hash_3(int index)
+{
+	unsigned int x,y;
+        x = index&3;
+        y = index/4;
+	return ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] & 0xffff;
+}
+static int get_hash_4(int index)
+{
+	unsigned int x,y;
+        x = index&3;
+        y = index/4;
+	return ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] & 0xfffff;
+}
+#else
 static int get_hash_0(int index)
 {
 	return crypt_out[0] & 0xF;
@@ -135,31 +200,92 @@ static int get_hash_4(int index)
 {
 	return crypt_out[0] & 0xFFFFF;
 }
+#endif
 
 static void set_key(char *key, int index)
 {
+#ifdef MD4_SSE_PARA
+	int i;
+
+	if(index==0)
+		memset(saved_key, 0, sizeof(saved_key));
+
+	for(i=0;key[i];i++)
+		saved_key[GETPOS(i, index)] = key[i];
+
+	saved_key[GETPOS(i, index)] = 0x80;
+	saved_key[GETPOS(56,index)] = i << 3;
+#else
 	saved_key_length = strlen(key);
 	if (saved_key_length > PLAINTEXT_LENGTH)
 		saved_key_length = PLAINTEXT_LENGTH;
 	memcpy(saved_key, key, saved_key_length);
+#endif
 }
 
 static char *get_key(int index)
 {
+#ifdef MD4_SSE_PARA
+	unsigned int i,len;
+
+	len = (unsigned char)saved_key[GETPOS(56,index)] >> 3;
+	for(i=0;i<len;i++)
+		out[i] = saved_key[GETPOS(i, index)];
+	out[i] = 0;
+	return (char*)out;
+#else
 	saved_key[saved_key_length] = 0;
 	return saved_key;
+#endif
 }
 
 static void crypt_all(int count)
 {
+#ifdef MD4_SSE_PARA
+	SSEmd4body(saved_key, (unsigned int *)crypt_key, 1);
+#else
 	MD4_Init(&ctx);
 	MD4_Update(&ctx, saved_key, saved_key_length);
 	MD4_Final((unsigned char *)crypt_out, &ctx);
+#endif
 }
 
 static int cmp_all(void *binary, int count)
 {
+#ifdef MD4_SSE_PARA
+	unsigned int x,y;
+
+	for(y=0;y<MD4_SSE_PARA;y++)
+	for(x=0;x<MMX_COEF;x++)
+	{
+		if( ((unsigned int *)binary)[0] == ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] )
+			return 1;
+	}
+	return 0;
+#else
 	return !memcmp(binary, crypt_out, BINARY_SIZE);
+#endif
+}
+
+static int cmp_one(void * binary, int index)
+{
+#ifdef MD4_SSE_PARA
+	unsigned int x,y;
+	x = index&3;
+	y = index/4;
+
+	if( ((unsigned int *)binary)[0] != ((unsigned int *)crypt_key)[x+y*MMX_COEF*4] )
+		return 0;
+	if( ((unsigned int *)binary)[1] != ((unsigned int *)crypt_key)[x+y*MMX_COEF*4+4] )
+		return 0;
+	if( ((unsigned int *)binary)[2] != ((unsigned int *)crypt_key)[x+y*MMX_COEF*4+8] )
+		return 0;
+	if( ((unsigned int *)binary)[3] != ((unsigned int *)crypt_key)[x+y*MMX_COEF*4+12] )
+		return 0;
+	return 1;
+#else
+	return cmp_all(binary, index);
+#endif
 }
 
 static int cmp_exact(char *source, int index)
@@ -209,7 +335,7 @@ struct fmt_main fmt_rawMD4 = {
 			get_hash_4
 		},
 		cmp_all,
-		cmp_all,
+		cmp_one,
 		cmp_exact
 	}
 };
diff --git a/src/sse-intrinsics.S b/src/sse-intrinsics.S
index e7de06b..3c7225b 100644
--- a/src/sse-intrinsics.S
+++ b/src/sse-intrinsics.S
@@ -5096,1212 +5096,1809 @@ SSEmd4body:
 # parameter 3: %edx
 ..B8.1:                         # Preds ..B8.0
 ..___tag_value_SSEmd4body.139:                                  #423.1
-        subq      $472, %rsp                                    #423.1
+        subq      $776, %rsp                                    #423.1
 ..___tag_value_SSEmd4body.141:                                  #
         testl     %edx, %edx                                    #433.5
         je        ..B8.3        # Prob 50%                      #433.5
                                 # LOE rbx rbp rsi rdi r12 r13 r14 r15
 ..B8.2:                         # Preds ..B8.1
-        movdqa    .L_2il0floatpacket.468(%rip), %xmm2           #437.11
-        movdqa    .L_2il0floatpacket.469(%rip), %xmm6           #438.11
-        movdqa    %xmm2, %xmm4                                  #437.11
-        movdqa    .L_2il0floatpacket.470(%rip), %xmm10          #439.11
-        movdqa    %xmm6, %xmm9                                  #438.11
-        movdqa    .L_2il0floatpacket.471(%rip), %xmm5           #440.11
-        movdqa    %xmm10, %xmm3                                 #439.11
-        movdqa    %xmm5, %xmm0                                  #440.11
+        movdqa    .L_2il0floatpacket.474(%rip), %xmm1           #437.11
+        movdqa    .L_2il0floatpacket.475(%rip), %xmm3           #438.11
+        movdqa    %xmm1, %xmm4                                  #437.11
+        movdqa    .L_2il0floatpacket.476(%rip), %xmm2           #439.11
+        movdqa    %xmm3, %xmm5                                  #438.11
+        movdqa    .L_2il0floatpacket.477(%rip), %xmm9           #440.11
+        movdqa    %xmm2, %xmm14                                 #439.11
+        movdqa    %xmm9, %xmm10                                 #440.11
+        movdqa    %xmm1, %xmm7                                  #437.11
+        movdqa    %xmm3, %xmm13                                 #438.11
+        movdqa    %xmm2, %xmm15                                 #439.11
+        movdqa    %xmm9, %xmm11                                 #440.11
         jmp       ..B8.4        # Prob 100%                     #440.11
-                                # LOE rbx rbp rsi rdi r12 r13 r14 r15 xmm0 xmm2 xmm3 xmm4 xmm5 xmm6 xmm9 xmm10
+                                # LOE rbx rbp rsi rdi r12 r13 r14 r15 xmm1 xmm2 xmm3 xmm4 xmm5 xmm7 xmm9 xmm10 xmm11 xmm13 xmm14 xmm15
 ..B8.3:                         # Preds ..B8.1
-        movdqa    (%rsi), %xmm2                                 #422.6
-        movdqa    16(%rsi), %xmm6                               #422.6
-        movdqa    32(%rsi), %xmm10                              #422.6
-        movdqa    48(%rsi), %xmm5                               #422.6
+        movdqa    (%rsi), %xmm1                                 #422.6
+        movdqa    16(%rsi), %xmm3                               #422.6
+        movdqa    32(%rsi), %xmm2                               #422.6
+        movdqa    48(%rsi), %xmm9                               #422.6
         movdqa    64(%rsi), %xmm4                               #422.6
-        movdqa    80(%rsi), %xmm9                               #422.6
-        movdqa    96(%rsi), %xmm3                               #422.6
-        movdqa    112(%rsi), %xmm0                              #422.6
-                                # LOE rbx rbp rsi rdi r12 r13 r14 r15 xmm0 xmm2 xmm3 xmm4 xmm5 xmm6 xmm9 xmm10
+        movdqa    80(%rsi), %xmm5                               #422.6
+        movdqa    96(%rsi), %xmm14                              #422.6
+        movdqa    112(%rsi), %xmm10                             #422.6
+        movdqa    128(%rsi), %xmm7                              #422.6
+        movdqa    144(%rsi), %xmm13                             #422.6
+        movdqa    160(%rsi), %xmm15                             #422.6
+        movdqa    176(%rsi), %xmm11                             #422.6
+                                # LOE rbx rbp rsi rdi r12 r13 r14 r15 xmm1 xmm2 xmm3 xmm4 xmm5 xmm7 xmm9 xmm10 xmm11 xmm13 xmm14 xmm15
 ..B8.4:                         # Preds ..B8.2 ..B8.3
-        movdqa    %xmm3, %xmm8                                  #456.3
-        movdqa    %xmm10, %xmm1                                 #456.3
-        pxor      %xmm0, %xmm8                                  #456.3
-        pxor      %xmm5, %xmm1                                  #456.3
-        pxor      %xmm11, %xmm11                                #455.9
-        pand      %xmm9, %xmm8                                  #456.3
-        pand      %xmm6, %xmm1                                  #456.3
-        paddd     %xmm11, %xmm4                                 #456.3
-        pxor      %xmm0, %xmm8                                  #456.3
-        paddd     %xmm11, %xmm2                                 #456.3
-        movdqa    256(%rdi), %xmm14                             #422.6
-        pxor      %xmm5, %xmm1                                  #456.3
-        paddd     %xmm8, %xmm4                                  #456.3
-        paddd     %xmm1, %xmm2                                  #456.3
-        movdqa    (%rdi), %xmm12                                #422.6
-        paddd     %xmm14, %xmm4                                 #456.3
-        paddd     %xmm12, %xmm2                                 #456.3
-        movdqa    %xmm4, %xmm1                                  #456.3
-        movdqa    %xmm2, %xmm13                                 #456.3
-        pslld     $3, %xmm1                                     #456.3
+        movdqa    %xmm2, %xmm6                                  #456.3
+        movdqa    %xmm14, %xmm12                                #456.3
+        pxor      %xmm9, %xmm6                                  #456.3
+        pxor      %xmm0, %xmm0                                  #455.9
+        pand      %xmm3, %xmm6                                  #456.3
+        paddd     %xmm0, %xmm1                                  #456.3
+        pxor      %xmm9, %xmm6                                  #456.3
+        pxor      %xmm10, %xmm12                                #456.3
+        movdqa    (%rdi), %xmm8                                 #422.6
+        paddd     %xmm6, %xmm1                                  #456.3
+        movdqa    %xmm8, 720(%rsp)                              #422.6
+        paddd     %xmm8, %xmm1                                  #456.3
+        movdqa    %xmm15, %xmm8                                 #456.3
+        pand      %xmm5, %xmm12                                 #456.3
+        pxor      %xmm11, %xmm8                                 #456.3
+        paddd     %xmm0, %xmm4                                  #456.3
+        pxor      %xmm10, %xmm12                                #456.3
+        pand      %xmm13, %xmm8                                 #456.3
+        movdqa    256(%rdi), %xmm6                              #422.6
+        paddd     %xmm12, %xmm4                                 #456.3
+        paddd     %xmm0, %xmm7                                  #456.3
+        pxor      %xmm11, %xmm8                                 #456.3
+        movdqa    512(%rdi), %xmm12                             #422.6
+        paddd     %xmm6, %xmm4                                  #456.3
+        paddd     %xmm8, %xmm7                                  #456.3
+        movdqa    %xmm1, %xmm8                                  #456.3
+        movdqa    %xmm12, 752(%rsp)                             #422.6
+        paddd     %xmm12, %xmm7                                 #456.3
+        movdqa    %xmm4, %xmm12                                 #456.3
         psrld     $29, %xmm4                                    #456.3
-        movdqa    %xmm9, %xmm7                                  #457.3
-        pslld     $3, %xmm13                                    #456.3
-        psrld     $29, %xmm2                                    #456.3
-        por       %xmm4, %xmm1                                  #456.3
-        movdqa    %xmm6, %xmm4                                  #457.3
-        pxor      %xmm3, %xmm7                                  #457.3
-        por       %xmm2, %xmm13                                 #456.3
-        pxor      %xmm10, %xmm4                                 #457.3
-        pand      %xmm1, %xmm7                                  #457.3
-        pand      %xmm13, %xmm4                                 #457.3
-        paddd     %xmm11, %xmm0                                 #457.3
-        pxor      %xmm3, %xmm7                                  #457.3
-        paddd     %xmm11, %xmm5                                 #457.3
-        movdqa    272(%rdi), %xmm15                             #422.6
-        pxor      %xmm10, %xmm4                                 #457.3
-        paddd     %xmm7, %xmm0                                  #457.3
-        paddd     %xmm4, %xmm5                                  #457.3
-        movdqa    16(%rdi), %xmm2                               #422.6
-        paddd     %xmm15, %xmm0                                 #457.3
-        paddd     %xmm2, %xmm5                                  #457.3
-        movdqa    %xmm0, %xmm8                                  #457.3
-        movdqa    %xmm2, 112(%rsp)                              #422.6
-        movdqa    %xmm5, %xmm2                                  #457.3
-        pslld     $7, %xmm8                                     #457.3
-        psrld     $25, %xmm0                                    #457.3
-        pslld     $7, %xmm2                                     #457.3
-        psrld     $25, %xmm5                                    #457.3
-        por       %xmm0, %xmm8                                  #457.3
-        movdqa    %xmm6, %xmm0                                  #458.3
-        por       %xmm5, %xmm2                                  #457.3
-        pxor      %xmm13, %xmm0                                 #458.3
-        pand      %xmm2, %xmm0                                  #458.3
-        paddd     %xmm11, %xmm10                                #458.3
-        pxor      %xmm6, %xmm0                                  #458.3
-        paddd     %xmm11, %xmm3                                 #458.3
-        paddd     %xmm0, %xmm10                                 #458.3
-        movdqa    %xmm9, %xmm0                                  #458.3
-        pxor      %xmm1, %xmm0                                  #458.3
-        paddd     %xmm11, %xmm6                                 #459.3
-        movdqa    32(%rdi), %xmm5                               #422.6
-        pand      %xmm8, %xmm0                                  #458.3
-        paddd     %xmm5, %xmm10                                 #458.3
-        pxor      %xmm9, %xmm0                                  #458.3
-        paddd     %xmm0, %xmm3                                  #458.3
-        movdqa    %xmm10, %xmm0                                 #458.3
-        movdqa    288(%rdi), %xmm4                              #422.6
-        pslld     $11, %xmm0                                    #458.3
-        psrld     $21, %xmm10                                   #458.3
-        paddd     %xmm4, %xmm3                                  #458.3
-        por       %xmm10, %xmm0                                 #458.3
-        movdqa    %xmm2, %xmm10                                 #459.3
-        movdqa    %xmm3, %xmm7                                  #458.3
-        pxor      %xmm13, %xmm10                                #459.3
-        movdqa    %xmm5, 272(%rsp)                              #422.6
-        pslld     $11, %xmm7                                    #458.3
-        psrld     $21, %xmm3                                    #458.3
-        pand      %xmm0, %xmm10                                 #459.3
-        movdqa    %xmm8, %xmm5                                  #459.3
-        por       %xmm3, %xmm7                                  #458.3
-        pxor      %xmm13, %xmm10                                #459.3
-        pxor      %xmm1, %xmm5                                  #459.3
-        movdqa    %xmm4, 208(%rsp)                              #422.6
-        paddd     %xmm10, %xmm6                                 #459.3
-        movdqa    48(%rdi), %xmm4                               #422.6
-        pand      %xmm7, %xmm5                                  #459.3
-        paddd     %xmm4, %xmm6                                  #459.3
-        paddd     %xmm11, %xmm9                                 #459.3
-        pxor      %xmm1, %xmm5                                  #459.3
-        paddd     %xmm11, %xmm13                                #460.3
-        paddd     %xmm5, %xmm9                                  #459.3
-        movdqa    %xmm6, %xmm5                                  #459.3
-        pslld     $19, %xmm5                                    #459.3
-        psrld     $13, %xmm6                                    #459.3
-        movdqa    304(%rdi), %xmm10                             #422.6
-        por       %xmm6, %xmm5                                  #459.3
-        movdqa    %xmm0, %xmm6                                  #460.3
-        paddd     %xmm10, %xmm9                                 #459.3
-        pxor      %xmm2, %xmm6                                  #460.3
-        movdqa    %xmm7, %xmm3                                  #460.3
-        movdqa    %xmm4, 16(%rsp)                               #422.6
-        movdqa    %xmm9, %xmm4                                  #459.3
-        pand      %xmm5, %xmm6                                  #460.3
-        pslld     $19, %xmm4                                    #459.3
-        psrld     $13, %xmm9                                    #459.3
-        pxor      %xmm2, %xmm6                                  #460.3
-        por       %xmm9, %xmm4                                  #459.3
-        paddd     %xmm6, %xmm13                                 #460.3
-        movdqa    64(%rdi), %xmm9                               #422.6
-        pxor      %xmm8, %xmm3                                  #460.3
-        paddd     %xmm9, %xmm13                                 #460.3
-        pand      %xmm4, %xmm3                                  #460.3
-        movdqa    %xmm13, %xmm6                                 #460.3
-        psrld     $29, %xmm13                                   #460.3
-        pslld     $3, %xmm6                                     #460.3
-        paddd     %xmm11, %xmm1                                 #460.3
-        pxor      %xmm8, %xmm3                                  #460.3
-        por       %xmm13, %xmm6                                 #460.3
-        movdqa    %xmm5, %xmm13                                 #461.3
-        paddd     %xmm3, %xmm1                                  #460.3
-        movdqa    %xmm10, (%rsp)                                #422.6
-        pxor      %xmm0, %xmm13                                 #461.3
-        movdqa    320(%rdi), %xmm10                             #422.6
-        pand      %xmm6, %xmm13                                 #461.3
-        paddd     %xmm10, %xmm1                                 #460.3
-        paddd     %xmm11, %xmm2                                 #461.3
-        movdqa    %xmm1, %xmm3                                  #460.3
-        pxor      %xmm0, %xmm13                                 #461.3
+        pslld     $3, %xmm12                                    #456.3
+        pslld     $3, %xmm8                                     #456.3
+        psrld     $29, %xmm1                                    #456.3
+        por       %xmm4, %xmm12                                 #456.3
+        movdqa    %xmm3, %xmm4                                  #457.3
+        por       %xmm1, %xmm8                                  #456.3
+        pxor      %xmm2, %xmm4                                  #457.3
+        paddd     %xmm0, %xmm9                                  #457.3
+        movdqa    %xmm6, 736(%rsp)                              #422.6
+        movdqa    %xmm7, %xmm6                                  #456.3
+        pand      %xmm8, %xmm4                                  #457.3
+        pslld     $3, %xmm6                                     #456.3
+        psrld     $29, %xmm7                                    #456.3
+        pxor      %xmm2, %xmm4                                  #457.3
+        movdqa    %xmm5, %xmm1                                  #457.3
+        por       %xmm7, %xmm6                                  #456.3
+        movdqa    16(%rdi), %xmm7                               #422.6
+        paddd     %xmm4, %xmm9                                  #457.3
+        pxor      %xmm14, %xmm1                                 #457.3
+        paddd     %xmm7, %xmm9                                  #457.3
+        movdqa    %xmm7, 48(%rsp)                               #422.6
+        pand      %xmm12, %xmm1                                 #457.3
+        movdqa    %xmm13, %xmm7                                 #457.3
+        paddd     %xmm0, %xmm10                                 #457.3
+        pxor      %xmm14, %xmm1                                 #457.3
+        pxor      %xmm15, %xmm7                                 #457.3
+        movdqa    272(%rdi), %xmm4                              #422.6
+        paddd     %xmm1, %xmm10                                 #457.3
+        pand      %xmm6, %xmm7                                  #457.3
+        paddd     %xmm4, %xmm10                                 #457.3
+        movdqa    %xmm4, 112(%rsp)                              #422.6
+        paddd     %xmm0, %xmm11                                 #457.3
+        pxor      %xmm15, %xmm7                                 #457.3
+        movdqa    %xmm9, %xmm4                                  #457.3
+        movdqa    528(%rdi), %xmm1                              #422.6
+        paddd     %xmm7, %xmm11                                 #457.3
+        pslld     $7, %xmm4                                     #457.3
+        psrld     $25, %xmm9                                    #457.3
+        paddd     %xmm1, %xmm11                                 #457.3
+        por       %xmm9, %xmm4                                  #457.3
+        movdqa    %xmm3, %xmm9                                  #458.3
+        movdqa    %xmm10, %xmm7                                 #457.3
+        movdqa    %xmm1, 128(%rsp)                              #422.6
+        movdqa    %xmm11, %xmm1                                 #457.3
+        pxor      %xmm8, %xmm9                                  #458.3
+        pslld     $7, %xmm1                                     #457.3
+        psrld     $25, %xmm11                                   #457.3
+        pand      %xmm4, %xmm9                                  #458.3
+        pslld     $7, %xmm7                                     #457.3
+        psrld     $25, %xmm10                                   #457.3
+        por       %xmm11, %xmm1                                 #457.3
+        paddd     %xmm0, %xmm2                                  #458.3
+        pxor      %xmm3, %xmm9                                  #458.3
+        movdqa    %xmm5, %xmm11                                 #458.3
+        por       %xmm10, %xmm7                                 #457.3
+        paddd     %xmm9, %xmm2                                  #458.3
+        movdqa    32(%rdi), %xmm10                              #422.6
+        pxor      %xmm12, %xmm11                                #458.3
+        movdqa    %xmm10, 208(%rsp)                             #422.6
+        paddd     %xmm10, %xmm2                                 #458.3
+        pand      %xmm7, %xmm11                                 #458.3
+        movdqa    %xmm13, %xmm10                                #458.3
+        paddd     %xmm0, %xmm14                                 #458.3
+        pxor      %xmm5, %xmm11                                 #458.3
+        pxor      %xmm6, %xmm10                                 #458.3
+        paddd     %xmm11, %xmm14                                #458.3
+        movdqa    288(%rdi), %xmm9                              #422.6
+        pand      %xmm1, %xmm10                                 #458.3
+        paddd     %xmm9, %xmm14                                 #458.3
+        paddd     %xmm0, %xmm15                                 #458.3
+        pxor      %xmm13, %xmm10                                #458.3
+        paddd     %xmm0, %xmm3                                  #459.3
+        paddd     %xmm10, %xmm15                                #458.3
+        movdqa    %xmm14, %xmm10                                #458.3
+        movdqa    %xmm9, 224(%rsp)                              #422.6
+        movdqa    %xmm2, %xmm9                                  #458.3
+        pslld     $11, %xmm10                                   #458.3
+        psrld     $21, %xmm14                                   #458.3
+        movdqa    544(%rdi), %xmm11                             #422.6
+        pslld     $11, %xmm9                                    #458.3
+        psrld     $21, %xmm2                                    #458.3
+        por       %xmm14, %xmm10                                #458.3
+        movdqa    %xmm4, %xmm14                                 #459.3
+        paddd     %xmm11, %xmm15                                #458.3
+        por       %xmm2, %xmm9                                  #458.3
+        pxor      %xmm8, %xmm14                                 #459.3
+        movdqa    %xmm11, 240(%rsp)                             #422.6
+        movdqa    %xmm15, %xmm11                                #458.3
+        pand      %xmm9, %xmm14                                 #459.3
+        pslld     $11, %xmm11                                   #458.3
+        psrld     $21, %xmm15                                   #458.3
+        pxor      %xmm8, %xmm14                                 #459.3
+        por       %xmm15, %xmm11                                #458.3
+        paddd     %xmm14, %xmm3                                 #459.3
+        movdqa    48(%rdi), %xmm15                              #422.6
+        movdqa    %xmm7, %xmm2                                  #459.3
+        movdqa    %xmm15, (%rsp)                                #422.6
+        paddd     %xmm15, %xmm3                                 #459.3
+        pxor      %xmm12, %xmm2                                 #459.3
+        movdqa    %xmm1, %xmm15                                 #459.3
+        pand      %xmm10, %xmm2                                 #459.3
+        pxor      %xmm6, %xmm15                                 #459.3
+        paddd     %xmm0, %xmm5                                  #459.3
+        pxor      %xmm12, %xmm2                                 #459.3
+        pand      %xmm11, %xmm15                                #459.3
+        paddd     %xmm2, %xmm5                                  #459.3
+        movdqa    304(%rdi), %xmm14                             #422.6
+        paddd     %xmm0, %xmm13                                 #459.3
+        pxor      %xmm6, %xmm15                                 #459.3
+        paddd     %xmm14, %xmm5                                 #459.3
+        movdqa    560(%rdi), %xmm2                              #422.6
+        paddd     %xmm15, %xmm13                                #459.3
+        paddd     %xmm2, %xmm13                                 #459.3
+        movdqa    %xmm5, %xmm15                                 #459.3
+        movdqa    %xmm14, 16(%rsp)                              #422.6
+        movdqa    %xmm3, %xmm14                                 #459.3
+        movdqa    %xmm2, 32(%rsp)                               #422.6
+        pslld     $19, %xmm15                                   #459.3
+        psrld     $13, %xmm5                                    #459.3
+        movdqa    %xmm13, %xmm2                                 #459.3
+        pslld     $19, %xmm14                                   #459.3
+        psrld     $13, %xmm3                                    #459.3
+        por       %xmm5, %xmm15                                 #459.3
+        pslld     $19, %xmm2                                    #459.3
+        psrld     $13, %xmm13                                   #459.3
+        movdqa    %xmm9, %xmm5                                  #460.3
+        por       %xmm3, %xmm14                                 #459.3
+        por       %xmm13, %xmm2                                 #459.3
+        pxor      %xmm4, %xmm5                                  #460.3
+        movdqa    %xmm10, %xmm13                                #460.3
+        pand      %xmm14, %xmm5                                 #460.3
+        pxor      %xmm7, %xmm13                                 #460.3
+        paddd     %xmm0, %xmm8                                  #460.3
+        pxor      %xmm4, %xmm5                                  #460.3
+        pand      %xmm15, %xmm13                                #460.3
+        paddd     %xmm5, %xmm8                                  #460.3
+        movdqa    64(%rdi), %xmm3                               #422.6
+        paddd     %xmm0, %xmm12                                 #460.3
+        pxor      %xmm7, %xmm13                                 #460.3
+        paddd     %xmm3, %xmm8                                  #460.3
+        movdqa    320(%rdi), %xmm5                              #422.6
+        paddd     %xmm13, %xmm12                                #460.3
+        movdqa    %xmm5, 432(%rsp)                              #422.6
+        paddd     %xmm5, %xmm12                                 #460.3
+        movdqa    %xmm8, %xmm5                                  #460.3
+        psrld     $29, %xmm8                                    #460.3
+        movdqa    %xmm3, 416(%rsp)                              #422.6
+        movdqa    %xmm11, %xmm3                                 #460.3
+        pslld     $3, %xmm5                                     #460.3
+        pxor      %xmm1, %xmm3                                  #460.3
+        por       %xmm8, %xmm5                                  #460.3
+        movdqa    %xmm12, %xmm8                                 #460.3
+        pand      %xmm2, %xmm3                                  #460.3
+        pslld     $3, %xmm8                                     #460.3
+        psrld     $29, %xmm12                                   #460.3
+        paddd     %xmm0, %xmm6                                  #460.3
+        pxor      %xmm1, %xmm3                                  #460.3
+        por       %xmm12, %xmm8                                 #460.3
+        movdqa    %xmm14, %xmm12                                #461.3
+        paddd     %xmm3, %xmm6                                  #460.3
+        movdqa    576(%rdi), %xmm13                             #422.6
+        pxor      %xmm9, %xmm12                                 #461.3
+        paddd     %xmm13, %xmm6                                 #460.3
+        pand      %xmm5, %xmm12                                 #461.3
+        movdqa    %xmm6, %xmm3                                  #460.3
+        paddd     %xmm0, %xmm4                                  #461.3
+        pxor      %xmm9, %xmm12                                 #461.3
         pslld     $3, %xmm3                                     #460.3
-        psrld     $29, %xmm1                                    #460.3
-        paddd     %xmm13, %xmm2                                 #461.3
-        movdqa    %xmm4, %xmm13                                 #461.3
-        por       %xmm1, %xmm3                                  #460.3
-        pxor      %xmm7, %xmm13                                 #461.3
+        movdqa    %xmm13, 448(%rsp)                             #422.6
+        psrld     $29, %xmm6                                    #460.3
+        paddd     %xmm12, %xmm4                                 #461.3
+        movdqa    %xmm15, %xmm12                                #461.3
+        movdqa    %xmm2, %xmm13                                 #461.3
+        por       %xmm6, %xmm3                                  #460.3
+        pxor      %xmm10, %xmm12                                #461.3
+        pxor      %xmm11, %xmm13                                #461.3
+        pand      %xmm8, %xmm12                                 #461.3
         pand      %xmm3, %xmm13                                 #461.3
-        paddd     %xmm11, %xmm8                                 #461.3
-        pxor      %xmm7, %xmm13                                 #461.3
-        paddd     %xmm11, %xmm0                                 #462.3
-        movdqa    %xmm15, 80(%rsp)                              #422.6
-        paddd     %xmm13, %xmm8                                 #461.3
-        movdqa    336(%rdi), %xmm15                             #422.6
-        paddd     %xmm11, %xmm7                                 #462.3
-        movdqa    80(%rdi), %xmm1                               #422.6
-        paddd     %xmm15, %xmm8                                 #461.3
-        movdqa    %xmm15, 32(%rsp)                              #422.6
-        paddd     %xmm1, %xmm2                                  #461.3
-        movdqa    %xmm8, %xmm15                                 #461.3
-        psrld     $25, %xmm8                                    #461.3
-        movdqa    %xmm1, 48(%rsp)                               #422.6
-        movdqa    %xmm2, %xmm1                                  #461.3
-        pslld     $7, %xmm15                                    #461.3
-        pslld     $7, %xmm1                                     #461.3
-        psrld     $25, %xmm2                                    #461.3
-        por       %xmm8, %xmm15                                 #461.3
-        movdqa    %xmm6, %xmm8                                  #462.3
-        por       %xmm2, %xmm1                                  #461.3
-        pxor      %xmm5, %xmm8                                  #462.3
-        pand      %xmm1, %xmm8                                  #462.3
-        pxor      %xmm5, %xmm8                                  #462.3
-        paddd     %xmm11, %xmm5                                 #463.3
-        paddd     %xmm8, %xmm0                                  #462.3
-        movdqa    %xmm3, %xmm8                                  #462.3
-        pxor      %xmm4, %xmm8                                  #462.3
-        pand      %xmm15, %xmm8                                 #462.3
-        pxor      %xmm4, %xmm8                                  #462.3
-        paddd     %xmm11, %xmm4                                 #463.3
-        movdqa    96(%rdi), %xmm2                               #422.6
-        paddd     %xmm8, %xmm7                                  #462.3
-        movdqa    352(%rdi), %xmm13                             #422.6
-        paddd     %xmm2, %xmm0                                  #462.3
-        paddd     %xmm13, %xmm7                                 #462.3
-        movdqa    %xmm2, 176(%rsp)                              #422.6
-        movdqa    %xmm7, %xmm2                                  #462.3
-        movdqa    %xmm13, 160(%rsp)                             #422.6
-        movdqa    %xmm0, %xmm13                                 #462.3
-        pslld     $11, %xmm13                                   #462.3
-        psrld     $21, %xmm0                                    #462.3
-        pslld     $11, %xmm2                                    #462.3
-        psrld     $21, %xmm7                                    #462.3
-        por       %xmm0, %xmm13                                 #462.3
-        por       %xmm7, %xmm2                                  #462.3
-        movdqa    %xmm1, %xmm7                                  #463.3
-        movdqa    %xmm15, %xmm0                                 #463.3
-        pxor      %xmm6, %xmm7                                  #463.3
-        pxor      %xmm3, %xmm0                                  #463.3
-        pand      %xmm13, %xmm7                                 #463.3
-        pand      %xmm2, %xmm0                                  #463.3
-        pxor      %xmm6, %xmm7                                  #463.3
-        pxor      %xmm3, %xmm0                                  #463.3
-        paddd     %xmm7, %xmm5                                  #463.3
-        paddd     %xmm0, %xmm4                                  #463.3
-        movdqa    368(%rdi), %xmm7                              #422.6
-        paddd     %xmm11, %xmm6                                 #464.3
-        movdqa    112(%rdi), %xmm8                              #422.6
-        paddd     %xmm7, %xmm4                                  #463.3
-        paddd     %xmm8, %xmm5                                  #463.3
-        movdqa    %xmm4, %xmm0                                  #463.3
-        movdqa    %xmm8, 64(%rsp)                               #422.6
-        movdqa    %xmm5, %xmm8                                  #463.3
-        pslld     $19, %xmm0                                    #463.3
-        psrld     $13, %xmm4                                    #463.3
-        pslld     $19, %xmm8                                    #463.3
-        psrld     $13, %xmm5                                    #463.3
-        por       %xmm4, %xmm0                                  #463.3
-        movdqa    %xmm13, %xmm4                                 #464.3
-        por       %xmm5, %xmm8                                  #463.3
-        pxor      %xmm1, %xmm4                                  #464.3
-        pand      %xmm8, %xmm4                                  #464.3
-        paddd     %xmm11, %xmm3                                 #464.3
-        pxor      %xmm1, %xmm4                                  #464.3
-        paddd     %xmm11, %xmm1                                 #465.3
-        movdqa    128(%rdi), %xmm5                              #422.6
-        paddd     %xmm4, %xmm6                                  #464.3
-        movdqa    %xmm7, 96(%rsp)                               #422.6
-        paddd     %xmm5, %xmm6                                  #464.3
-        movdqa    %xmm2, %xmm7                                  #464.3
-        movdqa    %xmm6, %xmm4                                  #464.3
-        pxor      %xmm15, %xmm7                                 #464.3
-        pslld     $3, %xmm4                                     #464.3
-        pand      %xmm0, %xmm7                                  #464.3
-        psrld     $29, %xmm6                                    #464.3
-        pxor      %xmm15, %xmm7                                 #464.3
-        por       %xmm6, %xmm4                                  #464.3
-        movdqa    %xmm8, %xmm6                                  #465.3
-        paddd     %xmm7, %xmm3                                  #464.3
-        pxor      %xmm13, %xmm6                                 #465.3
-        paddd     %xmm11, %xmm15                                #465.3
-        paddd     384(%rdi), %xmm3                              #464.3
-        pand      %xmm4, %xmm6                                  #465.3
-        movdqa    %xmm3, %xmm7                                  #464.3
-        pxor      %xmm13, %xmm6                                 #465.3
-        pslld     $3, %xmm7                                     #464.3
+        movdqa    80(%rdi), %xmm6                               #422.6
+        paddd     %xmm0, %xmm7                                  #461.3
+        pxor      %xmm10, %xmm12                                #461.3
+        paddd     %xmm0, %xmm1                                  #461.3
+        pxor      %xmm11, %xmm13                                #461.3
+        paddd     %xmm6, %xmm4                                  #461.3
+        paddd     %xmm12, %xmm7                                 #461.3
+        paddd     %xmm13, %xmm1                                 #461.3
+        movdqa    592(%rdi), %xmm12                             #422.6
+        paddd     %xmm0, %xmm9                                  #462.3
+        movdqa    %xmm6, 144(%rsp)                              #422.6
+        paddd     %xmm12, %xmm1                                 #461.3
+        movdqa    336(%rdi), %xmm6                              #422.6
+        movdqa    %xmm3, %xmm13                                 #462.3
+        movdqa    %xmm12, 176(%rsp)                             #422.6
+        movdqa    %xmm4, %xmm12                                 #461.3
+        paddd     %xmm6, %xmm7                                  #461.3
+        pslld     $7, %xmm12                                    #461.3
+        psrld     $25, %xmm4                                    #461.3
+        pxor      %xmm2, %xmm13                                 #462.3
+        por       %xmm4, %xmm12                                 #461.3
+        movdqa    %xmm7, %xmm4                                  #461.3
+        pslld     $7, %xmm4                                     #461.3
+        psrld     $25, %xmm7                                    #461.3
+        por       %xmm7, %xmm4                                  #461.3
+        movdqa    %xmm5, %xmm7                                  #462.3
+        pxor      %xmm14, %xmm7                                 #462.3
+        paddd     %xmm0, %xmm10                                 #462.3
+        pand      %xmm12, %xmm7                                 #462.3
+        paddd     %xmm0, %xmm11                                 #462.3
+        movdqa    %xmm6, 160(%rsp)                              #422.6
+        movdqa    %xmm1, %xmm6                                  #461.3
+        pxor      %xmm14, %xmm7                                 #462.3
+        pslld     $7, %xmm6                                     #461.3
+        psrld     $25, %xmm1                                    #461.3
+        paddd     %xmm7, %xmm9                                  #462.3
+        movdqa    %xmm8, %xmm7                                  #462.3
+        por       %xmm1, %xmm6                                  #461.3
+        pxor      %xmm15, %xmm7                                 #462.3
+        pand      %xmm6, %xmm13                                 #462.3
+        pand      %xmm4, %xmm7                                  #462.3
+        pxor      %xmm2, %xmm13                                 #462.3
+        movdqa    96(%rdi), %xmm1                               #422.6
+        pxor      %xmm15, %xmm7                                 #462.3
+        paddd     %xmm1, %xmm9                                  #462.3
+        paddd     %xmm7, %xmm10                                 #462.3
+        movdqa    608(%rdi), %xmm7                              #422.6
+        paddd     %xmm13, %xmm11                                #462.3
+        movdqa    %xmm1, 336(%rsp)                              #422.6
+        paddd     %xmm7, %xmm11                                 #462.3
+        movdqa    352(%rdi), %xmm1                              #422.6
+        paddd     %xmm0, %xmm14                                 #463.3
+        movdqa    %xmm7, 368(%rsp)                              #422.6
+        movdqa    %xmm9, %xmm7                                  #462.3
+        paddd     %xmm1, %xmm10                                 #462.3
+        pslld     $11, %xmm7                                    #462.3
+        psrld     $21, %xmm9                                    #462.3
+        movdqa    %xmm6, %xmm13                                 #463.3
+        por       %xmm9, %xmm7                                  #462.3
+        movdqa    %xmm10, %xmm9                                 #462.3
+        pslld     $11, %xmm9                                    #462.3
+        psrld     $21, %xmm10                                   #462.3
+        por       %xmm10, %xmm9                                 #462.3
+        movdqa    %xmm12, %xmm10                                #463.3
+        pxor      %xmm5, %xmm10                                 #463.3
+        pxor      %xmm3, %xmm13                                 #463.3
+        pand      %xmm7, %xmm10                                 #463.3
+        paddd     %xmm0, %xmm15                                 #463.3
+        movdqa    %xmm1, 352(%rsp)                              #422.6
+        movdqa    %xmm11, %xmm1                                 #462.3
+        pxor      %xmm5, %xmm10                                 #463.3
+        pslld     $11, %xmm1                                    #462.3
+        psrld     $21, %xmm11                                   #462.3
+        paddd     %xmm10, %xmm14                                #463.3
+        movdqa    %xmm4, %xmm10                                 #463.3
+        por       %xmm11, %xmm1                                 #462.3
+        pxor      %xmm8, %xmm10                                 #463.3
+        pand      %xmm1, %xmm13                                 #463.3
+        pand      %xmm9, %xmm10                                 #463.3
+        paddd     %xmm0, %xmm2                                  #463.3
+        movdqa    112(%rdi), %xmm11                             #422.6
+        pxor      %xmm8, %xmm10                                 #463.3
+        pxor      %xmm3, %xmm13                                 #463.3
+        paddd     %xmm11, %xmm14                                #463.3
+        paddd     %xmm10, %xmm15                                #463.3
+        paddd     %xmm13, %xmm2                                 #463.3
+        movdqa    624(%rdi), %xmm10                             #422.6
+        paddd     %xmm0, %xmm5                                  #464.3
+        movdqa    %xmm10, 64(%rsp)                              #422.6
+        paddd     %xmm10, %xmm2                                 #463.3
+        movdqa    %xmm14, %xmm10                                #463.3
+        psrld     $13, %xmm14                                   #463.3
+        pslld     $19, %xmm10                                   #463.3
+        movdqa    %xmm2, %xmm13                                 #463.3
+        movdqa    %xmm11, 96(%rsp)                              #422.6
+        por       %xmm14, %xmm10                                #463.3
+        movdqa    368(%rdi), %xmm11                             #422.6
+        movdqa    %xmm7, %xmm14                                 #464.3
+        paddd     %xmm11, %xmm15                                #463.3
+        pxor      %xmm12, %xmm14                                #464.3
+        movdqa    %xmm11, 80(%rsp)                              #422.6
+        movdqa    %xmm15, %xmm11                                #463.3
+        pand      %xmm10, %xmm14                                #464.3
+        pslld     $19, %xmm11                                   #463.3
+        psrld     $13, %xmm15                                   #463.3
+        pxor      %xmm12, %xmm14                                #464.3
+        por       %xmm15, %xmm11                                #463.3
+        pslld     $19, %xmm13                                   #463.3
+        movdqa    128(%rdi), %xmm15                             #422.6
+        psrld     $13, %xmm2                                    #463.3
+        paddd     %xmm14, %xmm5                                 #464.3
+        por       %xmm2, %xmm13                                 #463.3
+        movdqa    %xmm15, 624(%rsp)                             #422.6
+        paddd     %xmm15, %xmm5                                 #464.3
+        movdqa    %xmm9, %xmm2                                  #464.3
+        movdqa    %xmm1, %xmm15                                 #464.3
+        pxor      %xmm4, %xmm2                                  #464.3
+        pxor      %xmm6, %xmm15                                 #464.3
+        pand      %xmm11, %xmm2                                 #464.3
+        pand      %xmm13, %xmm15                                #464.3
+        paddd     %xmm0, %xmm8                                  #464.3
+        pxor      %xmm4, %xmm2                                  #464.3
+        paddd     %xmm0, %xmm3                                  #464.3
+        pxor      %xmm6, %xmm15                                 #464.3
+        paddd     %xmm2, %xmm8                                  #464.3
+        paddd     %xmm15, %xmm3                                 #464.3
+        movdqa    640(%rdi), %xmm2                              #422.6
+        paddd     %xmm0, %xmm12                                 #465.3
+        movdqa    384(%rdi), %xmm14                             #422.6
+        paddd     %xmm2, %xmm3                                  #464.3
+        movdqa    %xmm2, 592(%rsp)                              #422.6
+        movdqa    %xmm5, %xmm2                                  #464.3
+        paddd     %xmm14, %xmm8                                 #464.3
+        pslld     $3, %xmm2                                     #464.3
+        psrld     $29, %xmm5                                    #464.3
+        movdqa    %xmm11, %xmm15                                #465.3
+        por       %xmm5, %xmm2                                  #464.3
+        movdqa    %xmm8, %xmm5                                  #464.3
+        pslld     $3, %xmm5                                     #464.3
+        psrld     $29, %xmm8                                    #464.3
+        por       %xmm8, %xmm5                                  #464.3
+        movdqa    %xmm3, %xmm8                                  #464.3
+        pslld     $3, %xmm8                                     #464.3
         psrld     $29, %xmm3                                    #464.3
-        paddd     %xmm6, %xmm1                                  #465.3
-        movdqa    %xmm0, %xmm6                                  #465.3
-        por       %xmm3, %xmm7                                  #464.3
-        pxor      %xmm2, %xmm6                                  #465.3
-        movdqa    144(%rdi), %xmm3                              #422.6
-        pand      %xmm7, %xmm6                                  #465.3
-        paddd     %xmm3, %xmm1                                  #465.3
-        pxor      %xmm2, %xmm6                                  #465.3
-        paddd     %xmm6, %xmm15                                 #465.3
-        movdqa    %xmm1, %xmm6                                  #465.3
-        pslld     $7, %xmm6                                     #465.3
-        psrld     $25, %xmm1                                    #465.3
-        por       %xmm1, %xmm6                                  #465.3
-        movdqa    %xmm4, %xmm1                                  #466.3
-        movdqa    %xmm3, 144(%rsp)                              #422.6
-        pxor      %xmm8, %xmm1                                  #466.3
+        por       %xmm3, %xmm8                                  #464.3
+        movdqa    %xmm10, %xmm3                                 #465.3
+        pxor      %xmm7, %xmm3                                  #465.3
+        pxor      %xmm9, %xmm15                                 #465.3
+        pand      %xmm2, %xmm3                                  #465.3
+        pand      %xmm5, %xmm15                                 #465.3
+        pxor      %xmm7, %xmm3                                  #465.3
+        paddd     %xmm0, %xmm4                                  #465.3
+        movdqa    %xmm14, 576(%rsp)                             #422.6
+        paddd     %xmm3, %xmm12                                 #465.3
+        movdqa    144(%rdi), %xmm14                             #422.6
+        pxor      %xmm9, %xmm15                                 #465.3
+        movdqa    %xmm14, 320(%rsp)                             #422.6
+        paddd     %xmm14, %xmm12                                #465.3
+        movdqa    %xmm13, %xmm14                                #465.3
+        paddd     %xmm15, %xmm4                                 #465.3
+        pxor      %xmm1, %xmm14                                 #465.3
+        paddd     %xmm0, %xmm6                                  #465.3
+        pand      %xmm8, %xmm14                                 #465.3
+        paddd     %xmm0, %xmm7                                  #466.3
         movdqa    400(%rdi), %xmm3                              #422.6
-        pand      %xmm6, %xmm1                                  #466.3
-        paddd     %xmm3, %xmm15                                 #465.3
-        paddd     %xmm11, %xmm13                                #466.3
-        movdqa    %xmm3, 128(%rsp)                              #422.6
-        movdqa    %xmm15, %xmm3                                 #465.3
-        pxor      %xmm8, %xmm1                                  #466.3
+        pxor      %xmm1, %xmm14                                 #465.3
+        movdqa    %xmm3, 304(%rsp)                              #422.6
+        paddd     %xmm3, %xmm4                                  #465.3
+        movdqa    656(%rdi), %xmm3                              #422.6
+        paddd     %xmm14, %xmm6                                 #465.3
+        movdqa    %xmm3, 288(%rsp)                              #422.6
+        paddd     %xmm3, %xmm6                                  #465.3
+        movdqa    %xmm12, %xmm3                                 #465.3
+        psrld     $25, %xmm12                                   #465.3
         pslld     $7, %xmm3                                     #465.3
-        psrld     $25, %xmm15                                   #465.3
-        paddd     %xmm1, %xmm13                                 #466.3
-        movdqa    %xmm7, %xmm1                                  #466.3
-        por       %xmm15, %xmm3                                 #465.3
-        pxor      %xmm0, %xmm1                                  #466.3
-        paddd     %xmm11, %xmm2                                 #466.3
-        pand      %xmm3, %xmm1                                  #466.3
-        paddd     %xmm11, %xmm8                                 #467.3
-        movdqa    160(%rdi), %xmm15                             #422.6
-        pxor      %xmm0, %xmm1                                  #466.3
-        movdqa    %xmm15, 240(%rsp)                             #422.6
-        paddd     %xmm15, %xmm13                                #466.3
-        movdqa    416(%rdi), %xmm15                             #422.6
-        paddd     %xmm1, %xmm2                                  #466.3
-        paddd     %xmm15, %xmm2                                 #466.3
-        movdqa    %xmm13, %xmm1                                 #466.3
-        movdqa    %xmm15, 256(%rsp)                             #422.6
-        movdqa    %xmm2, %xmm15                                 #466.3
-        pslld     $11, %xmm15                                   #466.3
-        psrld     $21, %xmm2                                    #466.3
-        pslld     $11, %xmm1                                    #466.3
-        psrld     $21, %xmm13                                   #466.3
-        por       %xmm2, %xmm15                                 #466.3
-        movdqa    %xmm6, %xmm2                                  #467.3
-        por       %xmm13, %xmm1                                 #466.3
-        pxor      %xmm4, %xmm2                                  #467.3
-        pand      %xmm1, %xmm2                                  #467.3
-        paddd     %xmm11, %xmm0                                 #467.3
-        pxor      %xmm4, %xmm2                                  #467.3
-        paddd     %xmm11, %xmm4                                 #468.3
-        paddd     %xmm2, %xmm8                                  #467.3
-        movdqa    %xmm3, %xmm2                                  #467.3
-        pxor      %xmm7, %xmm2                                  #467.3
-        pand      %xmm15, %xmm2                                 #467.3
-        movdqa    176(%rdi), %xmm13                             #422.6
-        pxor      %xmm7, %xmm2                                  #467.3
-        movdqa    %xmm13, 192(%rsp)                             #422.6
-        paddd     %xmm13, %xmm8                                 #467.3
-        movdqa    432(%rdi), %xmm13                             #422.6
-        paddd     %xmm2, %xmm0                                  #467.3
-        movdqa    %xmm13, 224(%rsp)                             #422.6
-        paddd     %xmm13, %xmm0                                 #467.3
-        movdqa    %xmm8, %xmm13                                 #467.3
-        psrld     $13, %xmm8                                    #467.3
-        pslld     $19, %xmm13                                   #467.3
-        movdqa    %xmm15, %xmm2                                 #468.3
-        por       %xmm8, %xmm13                                 #467.3
-        movdqa    %xmm0, %xmm8                                  #467.3
-        pslld     $19, %xmm8                                    #467.3
-        psrld     $13, %xmm0                                    #467.3
-        por       %xmm0, %xmm8                                  #467.3
-        movdqa    %xmm1, %xmm0                                  #468.3
-        pxor      %xmm6, %xmm0                                  #468.3
-        pxor      %xmm3, %xmm2                                  #468.3
-        pand      %xmm13, %xmm0                                 #468.3
-        pand      %xmm8, %xmm2                                  #468.3
-        pxor      %xmm6, %xmm0                                  #468.3
-        paddd     %xmm11, %xmm7                                 #468.3
-        paddd     %xmm0, %xmm4                                  #468.3
-        pxor      %xmm3, %xmm2                                  #468.3
-        paddd     192(%rdi), %xmm4                              #468.3
-        paddd     %xmm2, %xmm7                                  #468.3
-        movdqa    448(%rdi), %xmm0                              #422.6
-        paddd     %xmm11, %xmm6                                 #469.3
-        movdqa    %xmm0, 288(%rsp)                              #422.6
-        paddd     %xmm0, %xmm7                                  #468.3
-        movdqa    %xmm4, %xmm0                                  #468.3
-        psrld     $29, %xmm4                                    #468.3
+        movdqa    %xmm5, %xmm15                                 #466.3
+        por       %xmm12, %xmm3                                 #465.3
+        movdqa    %xmm4, %xmm12                                 #465.3
+        pslld     $7, %xmm12                                    #465.3
+        psrld     $25, %xmm4                                    #465.3
+        por       %xmm4, %xmm12                                 #465.3
+        movdqa    %xmm6, %xmm4                                  #465.3
+        pslld     $7, %xmm4                                     #465.3
+        psrld     $25, %xmm6                                    #465.3
+        por       %xmm6, %xmm4                                  #465.3
+        movdqa    %xmm2, %xmm6                                  #466.3
+        pxor      %xmm10, %xmm6                                 #466.3
+        pxor      %xmm11, %xmm15                                #466.3
+        pand      %xmm3, %xmm6                                  #466.3
+        pand      %xmm12, %xmm15                                #466.3
+        pxor      %xmm10, %xmm6                                 #466.3
+        paddd     %xmm0, %xmm9                                  #466.3
+        movdqa    160(%rdi), %xmm14                             #422.6
+        paddd     %xmm6, %xmm7                                  #466.3
+        movdqa    %xmm14, 496(%rsp)                             #422.6
+        paddd     %xmm14, %xmm7                                 #466.3
+        movdqa    %xmm8, %xmm14                                 #466.3
+        pxor      %xmm11, %xmm15                                #466.3
+        pxor      %xmm13, %xmm14                                #466.3
+        paddd     %xmm15, %xmm9                                 #466.3
+        pand      %xmm4, %xmm14                                 #466.3
+        paddd     %xmm0, %xmm1                                  #466.3
+        movdqa    416(%rdi), %xmm6                              #422.6
+        pxor      %xmm13, %xmm14                                #466.3
+        movdqa    %xmm6, 528(%rsp)                              #422.6
+        paddd     %xmm6, %xmm9                                  #466.3
+        movdqa    672(%rdi), %xmm6                              #422.6
+        paddd     %xmm14, %xmm1                                 #466.3
+        movdqa    %xmm6, 512(%rsp)                              #422.6
+        paddd     %xmm6, %xmm1                                  #466.3
+        movdqa    %xmm7, %xmm6                                  #466.3
+        psrld     $21, %xmm7                                    #466.3
+        pslld     $11, %xmm6                                    #466.3
+        paddd     %xmm0, %xmm10                                 #467.3
+        por       %xmm7, %xmm6                                  #466.3
+        movdqa    %xmm9, %xmm7                                  #466.3
+        pslld     $11, %xmm7                                    #466.3
+        psrld     $21, %xmm9                                    #466.3
+        por       %xmm9, %xmm7                                  #466.3
+        movdqa    %xmm1, %xmm9                                  #466.3
+        pslld     $11, %xmm9                                    #466.3
+        psrld     $21, %xmm1                                    #466.3
+        por       %xmm1, %xmm9                                  #466.3
+        movdqa    %xmm3, %xmm1                                  #467.3
+        pxor      %xmm2, %xmm1                                  #467.3
+        movdqa    %xmm12, %xmm15                                #467.3
+        pand      %xmm6, %xmm1                                  #467.3
+        pxor      %xmm5, %xmm15                                 #467.3
+        pxor      %xmm2, %xmm1                                  #467.3
+        pand      %xmm7, %xmm15                                 #467.3
+        movdqa    176(%rdi), %xmm14                             #422.6
+        paddd     %xmm1, %xmm10                                 #467.3
+        movdqa    %xmm14, 192(%rsp)                             #422.6
+        paddd     %xmm14, %xmm10                                #467.3
+        movdqa    %xmm4, %xmm14                                 #467.3
+        paddd     %xmm0, %xmm11                                 #467.3
+        pxor      %xmm8, %xmm14                                 #467.3
+        pxor      %xmm5, %xmm15                                 #467.3
+        pand      %xmm9, %xmm14                                 #467.3
+        paddd     %xmm15, %xmm11                                #467.3
+        movdqa    432(%rdi), %xmm1                              #422.6
+        paddd     %xmm0, %xmm13                                 #467.3
+        pxor      %xmm8, %xmm14                                 #467.3
+        paddd     %xmm1, %xmm11                                 #467.3
+        movdqa    %xmm1, 256(%rsp)                              #422.6
+        paddd     %xmm14, %xmm13                                #467.3
+        movdqa    688(%rdi), %xmm1                              #422.6
+        movdqa    %xmm7, %xmm15                                 #468.3
+        movdqa    %xmm1, 272(%rsp)                              #422.6
+        paddd     %xmm1, %xmm13                                 #467.3
+        movdqa    %xmm10, %xmm1                                 #467.3
+        psrld     $13, %xmm10                                   #467.3
+        pslld     $19, %xmm1                                    #467.3
+        paddd     %xmm0, %xmm2                                  #468.3
+        por       %xmm10, %xmm1                                 #467.3
+        movdqa    %xmm11, %xmm10                                #467.3
+        pslld     $19, %xmm10                                   #467.3
+        psrld     $13, %xmm11                                   #467.3
+        por       %xmm11, %xmm10                                #467.3
+        movdqa    %xmm13, %xmm11                                #467.3
+        pslld     $19, %xmm11                                   #467.3
+        psrld     $13, %xmm13                                   #467.3
+        por       %xmm13, %xmm11                                #467.3
+        movdqa    %xmm6, %xmm13                                 #468.3
+        pxor      %xmm3, %xmm13                                 #468.3
+        paddd     %xmm0, %xmm5                                  #468.3
+        pand      %xmm1, %xmm13                                 #468.3
+        pxor      %xmm12, %xmm15                                #468.3
+        paddd     %xmm0, %xmm8                                  #468.3
+        movdqa    %xmm9, %xmm0                                  #468.3
+        pxor      %xmm3, %xmm13                                 #468.3
+        pand      %xmm10, %xmm15                                #468.3
+        pxor      %xmm4, %xmm0                                  #468.3
+        paddd     %xmm13, %xmm2                                 #468.3
+        movdqa    192(%rdi), %xmm14                             #422.6
+        pxor      %xmm12, %xmm15                                #468.3
+        pand      %xmm11, %xmm0                                 #468.3
+        paddd     %xmm14, %xmm2                                 #468.3
+        movdqa    448(%rdi), %xmm13                             #422.6
+        paddd     %xmm15, %xmm5                                 #468.3
+        pxor      %xmm4, %xmm0                                  #468.3
+        paddd     %xmm13, %xmm5                                 #468.3
+        movdqa    %xmm13, 672(%rsp)                             #422.6
+        paddd     %xmm0, %xmm8                                  #468.3
+        movdqa    704(%rdi), %xmm13                             #422.6
+        movdqa    %xmm2, %xmm0                                  #468.3
+        movdqa    %xmm13, 656(%rsp)                             #422.6
+        paddd     %xmm13, %xmm8                                 #468.3
         pslld     $3, %xmm0                                     #468.3
-        movdqa    %xmm7, %xmm2                                  #468.3
-        por       %xmm4, %xmm0                                  #468.3
-        movdqa    %xmm13, %xmm4                                 #469.3
-        pxor      %xmm1, %xmm4                                  #469.3
+        psrld     $29, %xmm2                                    #468.3
+        movdqa    %xmm5, %xmm13                                 #468.3
+        por       %xmm2, %xmm0                                  #468.3
+        movdqa    %xmm14, 640(%rsp)                             #422.6
+        pslld     $3, %xmm13                                    #468.3
+        psrld     $29, %xmm5                                    #468.3
+                                # LOE rbx rbp rsi rdi r12 r13 r14 r15 xmm0 xmm1 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13
+..B8.9:                         # Preds ..B8.4
+        movdqa    %xmm8, %xmm2                                  #468.3
+        movdqa    %xmm10, %xmm15                                #469.3
         pslld     $3, %xmm2                                     #468.3
-        pand      %xmm0, %xmm4                                  #469.3
-        psrld     $29, %xmm7                                    #468.3
-        pxor      %xmm1, %xmm4                                  #469.3
-        por       %xmm7, %xmm2                                  #468.3
-        paddd     %xmm4, %xmm6                                  #469.3
-        movdqa    %xmm8, %xmm4                                  #469.3
-        pxor      %xmm15, %xmm4                                 #469.3
-        paddd     %xmm11, %xmm3                                 #469.3
-        movdqa    208(%rdi), %xmm7                              #422.6
-        pand      %xmm2, %xmm4                                  #469.3
-        paddd     %xmm7, %xmm6                                  #469.3
-        pxor      %xmm15, %xmm4                                 #469.3
-        movdqa    %xmm7, 304(%rsp)                              #422.6
-        paddd     %xmm4, %xmm3                                  #469.3
-        movdqa    464(%rdi), %xmm7                              #422.6
-        movdqa    %xmm6, %xmm4                                  #469.3
-        paddd     %xmm7, %xmm3                                  #469.3
-        pslld     $7, %xmm4                                     #469.3
-        psrld     $25, %xmm6                                    #469.3
-        paddd     %xmm11, %xmm1                                 #470.3
-        por       %xmm6, %xmm4                                  #469.3
-        movdqa    %xmm3, %xmm6                                  #469.3
-        pslld     $7, %xmm6                                     #469.3
+        psrld     $29, %xmm8                                    #468.3
+        por       %xmm5, %xmm13                                 #468.3
+        pxor      %xmm7, %xmm15                                 #469.3
+        por       %xmm8, %xmm2                                  #468.3
+        pand      %xmm13, %xmm15                                #469.3
+        pxor      %xmm8, %xmm8                                  #469.3
+        movdqa    %xmm1, %xmm14                                 #469.3
+        paddd     %xmm8, %xmm12                                 #469.3
+        pxor      %xmm7, %xmm15                                 #469.3
+        pxor      %xmm6, %xmm14                                 #469.3
+        paddd     %xmm15, %xmm12                                #469.3
+        movdqa    %xmm11, %xmm15                                #469.3
+        pand      %xmm0, %xmm14                                 #469.3
+        pxor      %xmm9, %xmm15                                 #469.3
+        paddd     %xmm8, %xmm3                                  #469.3
+        pxor      %xmm6, %xmm14                                 #469.3
+        pand      %xmm2, %xmm15                                 #469.3
+        paddd     %xmm14, %xmm3                                 #469.3
+        paddd     %xmm8, %xmm4                                  #469.3
+        movdqa    464(%rdi), %xmm14                             #422.6
+        pxor      %xmm9, %xmm15                                 #469.3
+        movdqa    %xmm14, 480(%rsp)                             #422.6
+        paddd     %xmm14, %xmm12                                #469.3
+        movdqa    720(%rdi), %xmm14                             #422.6
+        paddd     %xmm15, %xmm4                                 #469.3
+        movdqa    208(%rdi), %xmm5                              #422.6
+        paddd     %xmm14, %xmm4                                 #469.3
+        movdqa    %xmm14, 400(%rsp)                             #422.6
+        paddd     %xmm5, %xmm3                                  #469.3
+        movdqa    %xmm4, %xmm14                                 #469.3
+        movdqa    %xmm3, %xmm15                                 #469.3
+        pslld     $7, %xmm14                                    #469.3
+        psrld     $25, %xmm4                                    #469.3
+        pslld     $7, %xmm15                                    #469.3
         psrld     $25, %xmm3                                    #469.3
-        por       %xmm3, %xmm6                                  #469.3
-        movdqa    %xmm0, %xmm3                                  #470.3
-        pxor      %xmm13, %xmm3                                 #470.3
-        paddd     %xmm11, %xmm15                                #470.3
-        pand      %xmm4, %xmm3                                  #470.3
-        pxor      %xmm13, %xmm3                                 #470.3
-        paddd     %xmm11, %xmm13                                #471.3
-        paddd     %xmm3, %xmm1                                  #470.3
-        movdqa    %xmm2, %xmm3                                  #470.3
-        pxor      %xmm8, %xmm3                                  #470.3
-        movdqa    %xmm7, 320(%rsp)                              #422.6
-        pand      %xmm6, %xmm3                                  #470.3
-        movdqa    224(%rdi), %xmm7                              #422.6
-        pxor      %xmm8, %xmm3                                  #470.3
-        paddd     %xmm7, %xmm1                                  #470.3
-        paddd     %xmm3, %xmm15                                 #470.3
-        movdqa    %xmm7, 336(%rsp)                              #422.6
-        movdqa    %xmm1, %xmm3                                  #470.3
-        movdqa    480(%rdi), %xmm7                              #422.6
-        pslld     $11, %xmm3                                    #470.3
-        paddd     %xmm7, %xmm15                                 #470.3
-        psrld     $21, %xmm1                                    #470.3
-        movdqa    %xmm7, 352(%rsp)                              #422.6
-        por       %xmm1, %xmm3                                  #470.3
-        movdqa    %xmm15, %xmm7                                 #470.3
-        movdqa    %xmm4, %xmm1                                  #471.3
+        por       %xmm4, %xmm14                                 #469.3
+        movdqa    %xmm0, %xmm4                                  #470.3
+        por       %xmm3, %xmm15                                 #469.3
+        pxor      %xmm1, %xmm4                                  #470.3
+        pand      %xmm15, %xmm4                                 #470.3
+        movdqa    %xmm12, %xmm3                                 #469.3
+        paddd     %xmm8, %xmm6                                  #470.3
+        pxor      %xmm1, %xmm4                                  #470.3
+        pslld     $7, %xmm3                                     #469.3
+        psrld     $25, %xmm12                                   #469.3
+        paddd     %xmm4, %xmm6                                  #470.3
+        movdqa    %xmm10, %xmm4                                 #470.3
+        por       %xmm12, %xmm3                                 #469.3
+        pxor      %xmm13, %xmm4                                 #470.3
+        pand      %xmm3, %xmm4                                  #470.3
+        paddd     %xmm8, %xmm7                                  #470.3
+        pxor      %xmm10, %xmm4                                 #470.3
+        paddd     %xmm8, %xmm9                                  #470.3
+        paddd     %xmm4, %xmm7                                  #470.3
+        movdqa    %xmm11, %xmm4                                 #470.3
+        pxor      %xmm2, %xmm4                                  #470.3
+        paddd     %xmm8, %xmm1                                  #471.3
+        movdqa    224(%rdi), %xmm12                             #422.6
+        pand      %xmm14, %xmm4                                 #470.3
+        paddd     %xmm12, %xmm6                                 #470.3
+        pxor      %xmm11, %xmm4                                 #470.3
+        movdqa    %xmm12, 608(%rsp)                             #422.6
+        paddd     %xmm4, %xmm9                                  #470.3
+        movdqa    480(%rdi), %xmm12                             #422.6
+        movdqa    %xmm6, %xmm4                                  #470.3
+        paddd     %xmm12, %xmm7                                 #470.3
+        pslld     $11, %xmm4                                    #470.3
+        psrld     $21, %xmm6                                    #470.3
+        paddd     %xmm8, %xmm10                                 #471.3
+        movdqa    %xmm12, 544(%rsp)                             #422.6
+        por       %xmm6, %xmm4                                  #470.3
+        movdqa    736(%rdi), %xmm12                             #422.6
+        movdqa    %xmm7, %xmm6                                  #470.3
+        paddd     %xmm12, %xmm9                                 #470.3
+        pslld     $11, %xmm6                                    #470.3
+        psrld     $21, %xmm7                                    #470.3
+        paddd     %xmm8, %xmm11                                 #471.3
+        por       %xmm7, %xmm6                                  #470.3
+        movdqa    %xmm9, %xmm7                                  #470.3
         pslld     $11, %xmm7                                    #470.3
-        psrld     $21, %xmm15                                   #470.3
-        pxor      %xmm0, %xmm1                                  #471.3
-        paddd     %xmm11, %xmm8                                 #471.3
-        movdqa    %xmm6, %xmm11                                 #471.3
-        por       %xmm15, %xmm7                                 #470.3
-        pand      %xmm3, %xmm1                                  #471.3
-        pxor      %xmm2, %xmm11                                 #471.3
-        pxor      %xmm0, %xmm1                                  #471.3
-        pand      %xmm7, %xmm11                                 #471.3
-        movdqa    240(%rdi), %xmm15                             #422.6
-        paddd     %xmm1, %xmm13                                 #471.3
-        pxor      %xmm2, %xmm11                                 #471.3
-        paddd     %xmm15, %xmm13                                #471.3
-        movdqa    496(%rdi), %xmm1                              #422.6
-        paddd     %xmm11, %xmm8                                 #471.3
-        movdqa    %xmm1, 416(%rsp)                              #422.6
-        paddd     %xmm1, %xmm8                                  #471.3
-        movdqa    %xmm13, %xmm1                                 #471.3
-        psrld     $13, %xmm13                                   #471.3
+        psrld     $21, %xmm9                                    #470.3
+        por       %xmm9, %xmm7                                  #470.3
+        movdqa    %xmm0, %xmm9                                  #471.3
+        pxor      %xmm15, %xmm9                                 #471.3
+        movdqa    %xmm14, %xmm8                                 #471.3
+        pand      %xmm4, %xmm9                                  #471.3
+        pxor      %xmm2, %xmm8                                  #471.3
+        pxor      %xmm0, %xmm9                                  #471.3
+        pand      %xmm7, %xmm8                                  #471.3
+        paddd     %xmm9, %xmm1                                  #471.3
+        movdqa    %xmm3, %xmm9                                  #471.3
+        pxor      %xmm13, %xmm9                                 #471.3
+        pxor      %xmm2, %xmm8                                  #471.3
+        movdqa    %xmm12, 560(%rsp)                             #422.6
+        pand      %xmm6, %xmm9                                  #471.3
+        movdqa    240(%rdi), %xmm12                             #422.6
+        pxor      %xmm13, %xmm9                                 #471.3
+        paddd     %xmm12, %xmm1                                 #471.3
+        paddd     %xmm9, %xmm10                                 #471.3
+        movdqa    752(%rdi), %xmm9                              #422.6
+        paddd     %xmm8, %xmm11                                 #471.3
+        movdqa    %xmm1, %xmm8                                  #471.3
+        paddd     %xmm9, %xmm11                                 #471.3
+        movdqa    %xmm12, 384(%rsp)                             #422.6
+        pslld     $19, %xmm8                                    #471.3
+        movdqa    496(%rdi), %xmm12                             #422.6
+        psrld     $13, %xmm1                                    #471.3
+        paddd     %xmm12, %xmm10                                #471.3
+        por       %xmm1, %xmm8                                  #471.3
+        movdqa    %xmm11, %xmm1                                 #471.3
+        psrld     $13, %xmm11                                   #471.3
+        movdqa    %xmm12, 688(%rsp)                             #422.6
         pslld     $19, %xmm1                                    #471.3
-        movdqa    %xmm3, %xmm11                                 #475.3
-        por       %xmm13, %xmm1                                 #471.3
-        movdqa    %xmm8, %xmm13                                 #471.3
-        movdqa    %xmm15, 368(%rsp)                             #422.6
-        pslld     $19, %xmm13                                   #471.3
-        psrld     $13, %xmm8                                    #471.3
-        por       %xmm4, %xmm11                                 #475.3
-        movdqa    %xmm3, %xmm15                                 #475.3
-        por       %xmm8, %xmm13                                 #471.3
-        movdqa    .L_2il0floatpacket.472(%rip), %xmm8           #474.9
-        pand      %xmm1, %xmm11                                 #475.3
-        pand      %xmm4, %xmm15                                 #475.3
-        paddd     %xmm8, %xmm0                                  #475.3
-        por       %xmm15, %xmm11                                #475.3
-        movdqa    %xmm7, %xmm15                                 #475.3
-        paddd     %xmm11, %xmm0                                 #475.3
-        movdqa    %xmm7, %xmm11                                 #475.3
-        por       %xmm6, %xmm11                                 #475.3
-        pand      %xmm6, %xmm15                                 #475.3
-        pand      %xmm13, %xmm11                                #475.3
-        paddd     %xmm8, %xmm2                                  #475.3
-        por       %xmm15, %xmm11                                #475.3
+        movdqa    %xmm9, 704(%rsp)                              #422.6
+        movdqa    %xmm10, %xmm9                                 #471.3
+        movdqa    %xmm4, %xmm12                                 #475.3
+        pslld     $19, %xmm9                                    #471.3
+        psrld     $13, %xmm10                                   #471.3
+        por       %xmm11, %xmm1                                 #471.3
+        por       %xmm15, %xmm12                                #475.3
+        movdqa    %xmm4, %xmm11                                 #475.3
+        por       %xmm10, %xmm9                                 #471.3
+        pand      %xmm8, %xmm12                                 #475.3
+        movdqa    .L_2il0floatpacket.478(%rip), %xmm10          #474.9
+        pand      %xmm15, %xmm11                                #475.3
+        paddd     %xmm10, %xmm0                                 #475.3
+        por       %xmm11, %xmm12                                #475.3
         paddd     %xmm12, %xmm0                                 #475.3
-        paddd     %xmm11, %xmm2                                 #475.3
-        movdqa    %xmm1, %xmm11                                 #476.3
-        movdqa    %xmm14, 400(%rsp)                             #422.6
-        paddd     %xmm14, %xmm2                                 #475.3
-        movdqa    %xmm0, %xmm14                                 #475.3
-        psrld     $29, %xmm0                                    #475.3
-        pslld     $3, %xmm14                                    #475.3
-        por       %xmm3, %xmm11                                 #476.3
-        por       %xmm0, %xmm14                                 #475.3
-        movdqa    %xmm2, %xmm0                                  #475.3
-        pslld     $3, %xmm0                                     #475.3
+        movdqa    %xmm6, %xmm12                                 #475.3
+        por       %xmm3, %xmm12                                 #475.3
+        movdqa    %xmm6, %xmm11                                 #475.3
+        pand      %xmm9, %xmm12                                 #475.3
+        pand      %xmm3, %xmm11                                 #475.3
+        paddd     %xmm10, %xmm13                                #475.3
+        por       %xmm11, %xmm12                                #475.3
+        paddd     %xmm12, %xmm13                                #475.3
+        movdqa    %xmm7, %xmm12                                 #475.3
+        por       %xmm14, %xmm12                                #475.3
+        movdqa    %xmm7, %xmm11                                 #475.3
+        pand      %xmm1, %xmm12                                 #475.3
+        pand      %xmm14, %xmm11                                #475.3
+        paddd     736(%rsp), %xmm13                             #475.3
+        paddd     %xmm10, %xmm2                                 #475.3
+        por       %xmm11, %xmm12                                #475.3
+        paddd     %xmm10, %xmm15                                #476.3
+        paddd     %xmm12, %xmm2                                 #475.3
+        movdqa    %xmm13, %xmm12                                #475.3
+        paddd     752(%rsp), %xmm2                              #475.3
+        pslld     $3, %xmm12                                    #475.3
+        psrld     $29, %xmm13                                   #475.3
+        paddd     %xmm10, %xmm3                                 #476.3
+        paddd     720(%rsp), %xmm0                              #475.3
+        por       %xmm13, %xmm12                                #475.3
+        movdqa    %xmm2, %xmm13                                 #475.3
+        movdqa    %xmm0, %xmm11                                 #475.3
+        pslld     $3, %xmm13                                    #475.3
         psrld     $29, %xmm2                                    #475.3
-        por       %xmm2, %xmm0                                  #475.3
+        pslld     $3, %xmm11                                    #475.3
+        psrld     $29, %xmm0                                    #475.3
+        por       %xmm2, %xmm13                                 #475.3
+        movdqa    %xmm8, %xmm2                                  #476.3
+        por       %xmm0, %xmm11                                 #475.3
+        por       %xmm4, %xmm2                                  #476.3
+        movdqa    %xmm8, %xmm0                                  #476.3
+        pand      %xmm11, %xmm2                                 #476.3
+        pand      %xmm4, %xmm0                                  #476.3
+        paddd     %xmm10, %xmm14                                #476.3
+        por       %xmm0, %xmm2                                  #476.3
+        movdqa    %xmm9, %xmm0                                  #476.3
+        paddd     %xmm2, %xmm15                                 #476.3
+        movdqa    %xmm9, %xmm2                                  #476.3
+        por       %xmm6, %xmm2                                  #476.3
+        pand      %xmm6, %xmm0                                  #476.3
+        pand      %xmm12, %xmm2                                 #476.3
+        paddd     %xmm10, %xmm4                                 #477.3
+        por       %xmm0, %xmm2                                  #476.3
+        movdqa    %xmm1, %xmm0                                  #476.3
+        paddd     %xmm2, %xmm3                                  #476.3
         movdqa    %xmm1, %xmm2                                  #476.3
-        pand      %xmm14, %xmm11                                #476.3
-        pand      %xmm3, %xmm2                                  #476.3
-        por       %xmm2, %xmm11                                 #476.3
-        movdqa    %xmm13, %xmm2                                 #476.3
-        paddd     %xmm8, %xmm4                                  #476.3
         por       %xmm7, %xmm2                                  #476.3
-        movdqa    %xmm13, %xmm15                                #476.3
-        paddd     %xmm11, %xmm4                                 #476.3
-        pand      %xmm0, %xmm2                                  #476.3
-        pand      %xmm7, %xmm15                                 #476.3
-        paddd     %xmm9, %xmm4                                  #476.3
-        paddd     %xmm8, %xmm6                                  #476.3
-        por       %xmm15, %xmm2                                 #476.3
-        movdqa    %xmm14, %xmm11                                #477.3
-        paddd     %xmm2, %xmm6                                  #476.3
-        movdqa    %xmm4, %xmm2                                  #476.3
-        paddd     %xmm10, %xmm6                                 #476.3
+        pand      %xmm7, %xmm0                                  #476.3
+        pand      %xmm13, %xmm2                                 #476.3
+        paddd     %xmm10, %xmm6                                 #477.3
+        paddd     416(%rsp), %xmm15                             #476.3
+        por       %xmm0, %xmm2                                  #476.3
+        paddd     %xmm2, %xmm14                                 #476.3
+        movdqa    %xmm15, %xmm0                                 #476.3
+        paddd     448(%rsp), %xmm14                             #476.3
+        pslld     $5, %xmm0                                     #476.3
+        psrld     $27, %xmm15                                   #476.3
+        paddd     %xmm10, %xmm7                                 #477.3
+        paddd     432(%rsp), %xmm3                              #476.3
+        por       %xmm15, %xmm0                                 #476.3
+        movdqa    %xmm14, %xmm15                                #476.3
+        movdqa    %xmm3, %xmm2                                  #476.3
+        pslld     $5, %xmm15                                    #476.3
+        psrld     $27, %xmm14                                   #476.3
         pslld     $5, %xmm2                                     #476.3
-        psrld     $27, %xmm4                                    #476.3
-        por       %xmm1, %xmm11                                 #477.3
-        por       %xmm4, %xmm2                                  #476.3
-        movdqa    %xmm6, %xmm4                                  #476.3
-        pslld     $5, %xmm4                                     #476.3
-        psrld     $27, %xmm6                                    #476.3
-        por       %xmm6, %xmm4                                  #476.3
-        movdqa    %xmm14, %xmm6                                 #477.3
-        pand      %xmm2, %xmm11                                 #477.3
-        pand      %xmm1, %xmm6                                  #477.3
-        paddd     %xmm8, %xmm3                                  #477.3
-        por       %xmm6, %xmm11                                 #477.3
-        paddd     %xmm11, %xmm3                                 #477.3
-        movdqa    %xmm0, %xmm6                                  #477.3
-        movdqa    %xmm5, 384(%rsp)                              #422.6
-        paddd     %xmm5, %xmm3                                  #477.3
-        por       %xmm13, %xmm6                                 #477.3
-        movdqa    %xmm0, %xmm5                                  #477.3
-        pand      %xmm4, %xmm6                                  #477.3
-        pand      %xmm13, %xmm5                                 #477.3
-        paddd     %xmm8, %xmm7                                  #477.3
-        por       %xmm5, %xmm6                                  #477.3
-        movdqa    384(%rdi), %xmm5                              #477.3
-        paddd     %xmm6, %xmm7                                  #477.3
-        paddd     %xmm5, %xmm7                                  #477.3
-        paddd     %xmm8, %xmm1                                  #478.3
+        psrld     $27, %xmm3                                    #476.3
+        por       %xmm14, %xmm15                                #476.3
+        movdqa    %xmm11, %xmm14                                #477.3
+        por       %xmm3, %xmm2                                  #476.3
+        por       %xmm8, %xmm14                                 #477.3
+        movdqa    %xmm11, %xmm3                                 #477.3
+        pand      %xmm0, %xmm14                                 #477.3
+        pand      %xmm8, %xmm3                                  #477.3
+        paddd     %xmm10, %xmm8                                 #478.3
+        por       %xmm3, %xmm14                                 #477.3
+        movdqa    %xmm12, %xmm3                                 #477.3
+        paddd     %xmm14, %xmm4                                 #477.3
+        movdqa    %xmm12, %xmm14                                #477.3
+        por       %xmm9, %xmm14                                 #477.3
+        pand      %xmm9, %xmm3                                  #477.3
+        pand      %xmm2, %xmm14                                 #477.3
+        paddd     %xmm10, %xmm9                                 #478.3
+        por       %xmm3, %xmm14                                 #477.3
+        movdqa    %xmm13, %xmm3                                 #477.3
+        paddd     %xmm14, %xmm6                                 #477.3
+        movdqa    %xmm13, %xmm14                                #477.3
+        por       %xmm1, %xmm14                                 #477.3
+        pand      %xmm1, %xmm3                                  #477.3
+        paddd     624(%rsp), %xmm4                              #477.3
+        pand      %xmm15, %xmm14                                #477.3
+        por       %xmm3, %xmm14                                 #477.3
+        movdqa    %xmm4, %xmm3                                  #477.3
+        paddd     576(%rsp), %xmm6                              #477.3
+        pslld     $9, %xmm3                                     #477.3
+        psrld     $23, %xmm4                                    #477.3
+        paddd     %xmm14, %xmm7                                 #477.3
+        por       %xmm4, %xmm3                                  #477.3
+        movdqa    %xmm6, %xmm4                                  #477.3
+        paddd     592(%rsp), %xmm7                              #477.3
+        pslld     $9, %xmm4                                     #477.3
+        psrld     $23, %xmm6                                    #477.3
+        movdqa    %xmm0, %xmm14                                 #478.3
+        por       %xmm6, %xmm4                                  #477.3
         movdqa    %xmm7, %xmm6                                  #477.3
-        psrld     $23, %xmm7                                    #477.3
-        movdqa    %xmm5, 448(%rsp)                              #477.3
-        movdqa    %xmm3, %xmm5                                  #477.3
         pslld     $9, %xmm6                                     #477.3
-        pslld     $9, %xmm5                                     #477.3
-        psrld     $23, %xmm3                                    #477.3
+        psrld     $23, %xmm7                                    #477.3
         por       %xmm7, %xmm6                                  #477.3
+        por       %xmm11, %xmm14                                #478.3
+        movdqa    %xmm0, %xmm7                                  #478.3
+        pand      %xmm3, %xmm14                                 #478.3
+        pand      %xmm11, %xmm7                                 #478.3
+        paddd     %xmm10, %xmm1                                 #478.3
+        por       %xmm7, %xmm14                                 #478.3
         movdqa    %xmm2, %xmm7                                  #478.3
-        por       %xmm3, %xmm5                                  #477.3
-        por       %xmm14, %xmm7                                 #478.3
-        movdqa    %xmm2, %xmm3                                  #478.3
-        pand      %xmm5, %xmm7                                  #478.3
-        pand      %xmm14, %xmm3                                 #478.3
-        por       %xmm3, %xmm7                                  #478.3
-        paddd     %xmm8, %xmm13                                 #478.3
-        movdqa    192(%rdi), %xmm3                              #478.3
-        paddd     %xmm7, %xmm1                                  #478.3
-        movdqa    %xmm4, %xmm7                                  #478.3
-        paddd     %xmm3, %xmm1                                  #478.3
-        movdqa    %xmm3, 432(%rsp)                              #478.3
-        por       %xmm0, %xmm7                                  #478.3
-                                # LOE rbx rbp rsi r12 r13 r14 r15 xmm0 xmm1 xmm2 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm12 xmm13 xmm14
-..B8.8:                         # Preds ..B8.4
-        movdqa    %xmm4, %xmm3                                  #478.3
-        pand      %xmm6, %xmm7                                  #478.3
-        pand      %xmm0, %xmm3                                  #478.3
-        movdqa    %xmm5, %xmm15                                 #479.3
-        por       %xmm3, %xmm7                                  #478.3
-        por       %xmm2, %xmm15                                 #479.3
-        movdqa    288(%rsp), %xmm11                             #478.3
-        paddd     %xmm7, %xmm13                                 #478.3
-        paddd     %xmm11, %xmm13                                #478.3
-        movdqa    %xmm1, %xmm7                                  #478.3
+        paddd     %xmm14, %xmm8                                 #478.3
+        movdqa    %xmm2, %xmm14                                 #478.3
+        por       %xmm12, %xmm14                                #478.3
+        pand      %xmm12, %xmm7                                 #478.3
+        pand      %xmm4, %xmm14                                 #478.3
+        paddd     %xmm10, %xmm11                                #479.3
+        por       %xmm7, %xmm14                                 #478.3
+        movdqa    %xmm15, %xmm7                                 #478.3
+        paddd     %xmm14, %xmm9                                 #478.3
+        movdqa    %xmm15, %xmm14                                #478.3
+        por       %xmm13, %xmm14                                #478.3
+        pand      %xmm13, %xmm7                                 #478.3
+        pand      %xmm6, %xmm14                                 #478.3
+        paddd     %xmm10, %xmm12                                #479.3
+        paddd     640(%rsp), %xmm8                              #478.3
+        por       %xmm7, %xmm14                                 #478.3
+        paddd     672(%rsp), %xmm9                              #478.3
+        paddd     %xmm14, %xmm1                                 #478.3
+        movdqa    %xmm8, %xmm14                                 #478.3
+        psrld     $19, %xmm8                                    #478.3
+        paddd     656(%rsp), %xmm1                              #478.3
+        pslld     $13, %xmm14                                   #478.3
+        movdqa    %xmm9, %xmm7                                  #478.3
+        por       %xmm8, %xmm14                                 #478.3
         pslld     $13, %xmm7                                    #478.3
+        psrld     $19, %xmm9                                    #478.3
+        movdqa    %xmm1, %xmm8                                  #478.3
+        por       %xmm9, %xmm7                                  #478.3
+        pslld     $13, %xmm8                                    #478.3
         psrld     $19, %xmm1                                    #478.3
-        movdqa    %xmm13, %xmm3                                 #478.3
-        por       %xmm1, %xmm7                                  #478.3
-        pslld     $13, %xmm3                                    #478.3
-        psrld     $19, %xmm13                                   #478.3
-        movdqa    %xmm5, %xmm1                                  #479.3
-        por       %xmm13, %xmm3                                 #478.3
-        pand      %xmm7, %xmm15                                 #479.3
+        movdqa    %xmm3, %xmm9                                  #479.3
+        por       %xmm1, %xmm8                                  #478.3
+        por       %xmm0, %xmm9                                  #479.3
+        movdqa    %xmm3, %xmm1                                  #479.3
+        pand      %xmm14, %xmm9                                 #479.3
+        pand      %xmm0, %xmm1                                  #479.3
+        por       %xmm1, %xmm9                                  #479.3
+        movdqa    %xmm4, %xmm1                                  #479.3
+        paddd     %xmm9, %xmm11                                 #479.3
+        movdqa    %xmm4, %xmm9                                  #479.3
+        por       %xmm2, %xmm9                                  #479.3
         pand      %xmm2, %xmm1                                  #479.3
-        movdqa    %xmm6, %xmm13                                 #479.3
-        paddd     %xmm8, %xmm14                                 #479.3
-        por       %xmm1, %xmm15                                 #479.3
-        por       %xmm4, %xmm13                                 #479.3
+        pand      %xmm7, %xmm9                                  #479.3
+        paddd     %xmm10, %xmm13                                #479.3
+        por       %xmm1, %xmm9                                  #479.3
         movdqa    %xmm6, %xmm1                                  #479.3
-        paddd     %xmm15, %xmm14                                #479.3
-        pand      %xmm3, %xmm13                                 #479.3
-        pand      %xmm4, %xmm1                                  #479.3
-        paddd     112(%rsp), %xmm14                             #479.3
-        paddd     %xmm8, %xmm0                                  #479.3
-        por       %xmm1, %xmm13                                 #479.3
-        movdqa    %xmm14, %xmm1                                 #479.3
-        paddd     %xmm13, %xmm0                                 #479.3
-        pslld     $3, %xmm1                                     #479.3
-        paddd     80(%rsp), %xmm0                               #479.3
-        psrld     $29, %xmm14                                   #479.3
-        por       %xmm14, %xmm1                                 #479.3
-        movdqa    %xmm0, %xmm14                                 #479.3
-        pslld     $3, %xmm14                                    #479.3
-        psrld     $29, %xmm0                                    #479.3
-        movdqa    %xmm5, %xmm13                                 #480.3
-        por       %xmm0, %xmm14                                 #479.3
-        por       %xmm7, %xmm13                                 #480.3
-        movdqa    %xmm5, %xmm0                                  #480.3
-        pand      %xmm1, %xmm13                                 #480.3
-        pand      %xmm7, %xmm0                                  #480.3
+        paddd     %xmm9, %xmm12                                 #479.3
+        movdqa    %xmm6, %xmm9                                  #479.3
+        por       %xmm15, %xmm9                                 #479.3
+        pand      %xmm15, %xmm1                                 #479.3
+        pand      %xmm8, %xmm9                                  #479.3
+        paddd     %xmm10, %xmm0                                 #480.3
+        paddd     48(%rsp), %xmm11                              #479.3
+        por       %xmm1, %xmm9                                  #479.3
+        paddd     %xmm9, %xmm13                                 #479.3
+        movdqa    %xmm11, %xmm9                                 #479.3
+        paddd     112(%rsp), %xmm12                             #479.3
+        pslld     $3, %xmm9                                     #479.3
+        psrld     $29, %xmm11                                   #479.3
+        movdqa    %xmm14, %xmm1                                 #480.3
+        por       %xmm11, %xmm9                                 #479.3
+        movdqa    %xmm12, %xmm11                                #479.3
+        paddd     128(%rsp), %xmm13                             #479.3
+        pslld     $3, %xmm11                                    #479.3
+        psrld     $29, %xmm12                                   #479.3
+        por       %xmm3, %xmm1                                  #480.3
+        por       %xmm12, %xmm11                                #479.3
+        movdqa    %xmm13, %xmm12                                #479.3
+        pslld     $3, %xmm12                                    #479.3
+        psrld     $29, %xmm13                                   #479.3
+        por       %xmm13, %xmm12                                #479.3
+        movdqa    %xmm14, %xmm13                                #480.3
+        pand      %xmm9, %xmm1                                  #480.3
+        pand      %xmm3, %xmm13                                 #480.3
+        por       %xmm13, %xmm1                                 #480.3
+        movdqa    %xmm7, %xmm13                                 #480.3
+        paddd     %xmm1, %xmm0                                  #480.3
+        movdqa    %xmm7, %xmm1                                  #480.3
+        por       %xmm4, %xmm1                                  #480.3
+        pand      %xmm4, %xmm13                                 #480.3
+        pand      %xmm11, %xmm1                                 #480.3
+        paddd     %xmm10, %xmm2                                 #480.3
+        por       %xmm13, %xmm1                                 #480.3
+        movdqa    %xmm8, %xmm13                                 #480.3
+        paddd     %xmm1, %xmm2                                  #480.3
+        movdqa    %xmm8, %xmm1                                  #480.3
+        por       %xmm6, %xmm1                                  #480.3
+        pand      %xmm6, %xmm13                                 #480.3
+        paddd     144(%rsp), %xmm0                              #480.3
+        pand      %xmm12, %xmm1                                 #480.3
+        paddd     %xmm10, %xmm15                                #480.3
+        por       %xmm13, %xmm1                                 #480.3
+        movdqa    %xmm0, %xmm13                                 #480.3
+        paddd     %xmm1, %xmm15                                 #480.3
+        paddd     160(%rsp), %xmm2                              #480.3
+        pslld     $5, %xmm13                                    #480.3
+        psrld     $27, %xmm0                                    #480.3
+        paddd     %xmm10, %xmm3                                 #481.3
+        paddd     176(%rsp), %xmm15                             #480.3
         por       %xmm0, %xmm13                                 #480.3
-        movdqa    %xmm6, %xmm0                                  #480.3
-        paddd     %xmm8, %xmm2                                  #480.3
-        por       %xmm3, %xmm0                                  #480.3
-        movdqa    %xmm6, %xmm15                                 #480.3
-        paddd     %xmm13, %xmm2                                 #480.3
-        pand      %xmm14, %xmm0                                 #480.3
-        pand      %xmm3, %xmm15                                 #480.3
-        paddd     48(%rsp), %xmm2                               #480.3
-        paddd     %xmm8, %xmm4                                  #480.3
-        por       %xmm15, %xmm0                                 #480.3
-        movdqa    %xmm1, %xmm13                                 #481.3
-        paddd     %xmm0, %xmm4                                  #480.3
         movdqa    %xmm2, %xmm0                                  #480.3
-        paddd     32(%rsp), %xmm4                               #480.3
-        pslld     $5, %xmm0                                     #480.3
         psrld     $27, %xmm2                                    #480.3
-        por       %xmm7, %xmm13                                 #481.3
+        pslld     $5, %xmm0                                     #480.3
+        movdqa    %xmm15, %xmm1                                 #480.3
         por       %xmm2, %xmm0                                  #480.3
-        movdqa    %xmm4, %xmm2                                  #480.3
-        pslld     $5, %xmm2                                     #480.3
-        psrld     $27, %xmm4                                    #480.3
-        por       %xmm4, %xmm2                                  #480.3
-        movdqa    %xmm1, %xmm4                                  #481.3
-        pand      %xmm0, %xmm13                                 #481.3
-        pand      %xmm7, %xmm4                                  #481.3
-        por       %xmm4, %xmm13                                 #481.3
-        movdqa    %xmm14, %xmm4                                 #481.3
-        paddd     %xmm8, %xmm5                                  #481.3
-        por       %xmm3, %xmm4                                  #481.3
-        movdqa    %xmm14, %xmm15                                #481.3
-        paddd     %xmm13, %xmm5                                 #481.3
-        pand      %xmm2, %xmm4                                  #481.3
-        pand      %xmm3, %xmm15                                 #481.3
-        paddd     144(%rsp), %xmm5                              #481.3
-        paddd     %xmm8, %xmm6                                  #481.3
-        por       %xmm15, %xmm4                                 #481.3
-        movdqa    %xmm0, %xmm13                                 #482.3
-        paddd     %xmm4, %xmm6                                  #481.3
-        movdqa    %xmm5, %xmm4                                  #481.3
-        paddd     128(%rsp), %xmm6                              #481.3
+        pslld     $5, %xmm1                                     #480.3
+        psrld     $27, %xmm15                                   #480.3
+        movdqa    %xmm9, %xmm2                                  #481.3
+        por       %xmm15, %xmm1                                 #480.3
+        por       %xmm14, %xmm2                                 #481.3
+        movdqa    %xmm9, %xmm15                                 #481.3
+        pand      %xmm13, %xmm2                                 #481.3
+        pand      %xmm14, %xmm15                                #481.3
+        paddd     %xmm10, %xmm4                                 #481.3
+        por       %xmm15, %xmm2                                 #481.3
+        movdqa    %xmm11, %xmm15                                #481.3
+        paddd     %xmm2, %xmm3                                  #481.3
+        movdqa    %xmm11, %xmm2                                 #481.3
+        por       %xmm7, %xmm2                                  #481.3
+        pand      %xmm7, %xmm15                                 #481.3
+        pand      %xmm0, %xmm2                                  #481.3
+        paddd     %xmm10, %xmm6                                 #481.3
+        por       %xmm15, %xmm2                                 #481.3
+        movdqa    %xmm12, %xmm15                                #481.3
+        paddd     %xmm2, %xmm4                                  #481.3
+        movdqa    %xmm12, %xmm2                                 #481.3
+        por       %xmm8, %xmm2                                  #481.3
+        pand      %xmm8, %xmm15                                 #481.3
+        pand      %xmm1, %xmm2                                  #481.3
+        paddd     %xmm10, %xmm14                                #482.3
+        paddd     320(%rsp), %xmm3                              #481.3
+        por       %xmm15, %xmm2                                 #481.3
+        paddd     %xmm2, %xmm6                                  #481.3
+        movdqa    %xmm3, %xmm2                                  #481.3
+        paddd     304(%rsp), %xmm4                              #481.3
+        pslld     $9, %xmm2                                     #481.3
+        psrld     $23, %xmm3                                    #481.3
+        movdqa    %xmm13, %xmm15                                #482.3
+        por       %xmm3, %xmm2                                  #481.3
+        movdqa    %xmm4, %xmm3                                  #481.3
+        paddd     288(%rsp), %xmm6                              #481.3
+        pslld     $9, %xmm3                                     #481.3
+        psrld     $23, %xmm4                                    #481.3
+        por       %xmm9, %xmm15                                 #482.3
+        por       %xmm4, %xmm3                                  #481.3
+        movdqa    %xmm6, %xmm4                                  #481.3
         pslld     $9, %xmm4                                     #481.3
-        psrld     $23, %xmm5                                    #481.3
-        por       %xmm1, %xmm13                                 #482.3
-        por       %xmm5, %xmm4                                  #481.3
-        movdqa    %xmm6, %xmm5                                  #481.3
-        pslld     $9, %xmm5                                     #481.3
         psrld     $23, %xmm6                                    #481.3
-        por       %xmm6, %xmm5                                  #481.3
+        por       %xmm6, %xmm4                                  #481.3
+        movdqa    %xmm13, %xmm6                                 #482.3
+        pand      %xmm2, %xmm15                                 #482.3
+        pand      %xmm9, %xmm6                                  #482.3
+        por       %xmm6, %xmm15                                 #482.3
         movdqa    %xmm0, %xmm6                                  #482.3
-        pand      %xmm4, %xmm13                                 #482.3
-        pand      %xmm1, %xmm6                                  #482.3
-        por       %xmm6, %xmm13                                 #482.3
-        movdqa    %xmm2, %xmm6                                  #482.3
-        paddd     %xmm8, %xmm7                                  #482.3
-        por       %xmm14, %xmm6                                 #482.3
-        movdqa    %xmm2, %xmm15                                 #482.3
-        paddd     %xmm13, %xmm7                                 #482.3
-        pand      %xmm5, %xmm6                                  #482.3
-        pand      %xmm14, %xmm15                                #482.3
-        paddd     304(%rsp), %xmm7                              #482.3
-        paddd     %xmm8, %xmm3                                  #482.3
-        por       %xmm15, %xmm6                                 #482.3
-        movdqa    %xmm4, %xmm13                                 #483.3
-        paddd     %xmm6, %xmm3                                  #482.3
+        paddd     %xmm15, %xmm14                                #482.3
+        por       %xmm11, %xmm6                                 #482.3
+        movdqa    %xmm5, 464(%rsp)                              #422.6
+        paddd     %xmm5, %xmm14                                 #482.3
+        movdqa    %xmm0, %xmm5                                  #482.3
+        pand      %xmm3, %xmm6                                  #482.3
+        pand      %xmm11, %xmm5                                 #482.3
+        paddd     %xmm10, %xmm7                                 #482.3
+        por       %xmm5, %xmm6                                  #482.3
+        movdqa    %xmm1, %xmm5                                  #482.3
+        por       %xmm12, %xmm5                                 #482.3
+        movdqa    %xmm1, %xmm15                                 #482.3
+        paddd     %xmm6, %xmm7                                  #482.3
+        pand      %xmm4, %xmm5                                  #482.3
+        pand      %xmm12, %xmm15                                #482.3
+        paddd     %xmm10, %xmm8                                 #482.3
+        paddd     464(%rdi), %xmm7                              #482.3
+        por       %xmm15, %xmm5                                 #482.3
+        paddd     %xmm5, %xmm8                                  #482.3
         movdqa    %xmm7, %xmm6                                  #482.3
-        paddd     320(%rsp), %xmm3                              #482.3
+        paddd     720(%rdi), %xmm8                              #482.3
+        movdqa    %xmm14, %xmm5                                 #482.3
         pslld     $13, %xmm6                                    #482.3
         psrld     $19, %xmm7                                    #482.3
-        por       %xmm0, %xmm13                                 #483.3
+        pslld     $13, %xmm5                                    #482.3
+        psrld     $19, %xmm14                                   #482.3
         por       %xmm7, %xmm6                                  #482.3
-        movdqa    %xmm3, %xmm7                                  #482.3
+        movdqa    %xmm8, %xmm7                                  #482.3
+        por       %xmm14, %xmm5                                 #482.3
         pslld     $13, %xmm7                                    #482.3
-        psrld     $19, %xmm3                                    #482.3
-        por       %xmm3, %xmm7                                  #482.3
-        movdqa    %xmm4, %xmm3                                  #483.3
-        pand      %xmm6, %xmm13                                 #483.3
-        pand      %xmm0, %xmm3                                  #483.3
-        paddd     %xmm8, %xmm1                                  #483.3
-        por       %xmm3, %xmm13                                 #483.3
-        paddd     %xmm13, %xmm1                                 #483.3
-        movdqa    %xmm5, %xmm13                                 #483.3
-        por       %xmm2, %xmm13                                 #483.3
-        movdqa    %xmm5, %xmm3                                  #483.3
-        movdqa    272(%rsp), %xmm15                             #483.3
-        pand      %xmm7, %xmm13                                 #483.3
-        pand      %xmm2, %xmm3                                  #483.3
-        paddd     %xmm15, %xmm1                                 #483.3
-        paddd     %xmm8, %xmm14                                 #483.3
-        por       %xmm3, %xmm13                                 #483.3
-        paddd     %xmm13, %xmm14                                #483.3
-        movdqa    %xmm1, %xmm13                                 #483.3
-        paddd     208(%rsp), %xmm14                             #483.3
-        pslld     $3, %xmm13                                    #483.3
-        psrld     $29, %xmm1                                    #483.3
-        movdqa    %xmm6, %xmm3                                  #484.3
-        por       %xmm1, %xmm13                                 #483.3
-        movdqa    %xmm14, %xmm1                                 #483.3
-        pslld     $3, %xmm1                                     #483.3
-        psrld     $29, %xmm14                                   #483.3
-        por       %xmm14, %xmm1                                 #483.3
-        por       %xmm4, %xmm3                                  #484.3
-        movdqa    %xmm6, %xmm14                                 #484.3
-        pand      %xmm13, %xmm3                                 #484.3
-        pand      %xmm4, %xmm14                                 #484.3
-        paddd     %xmm8, %xmm0                                  #484.3
-        por       %xmm14, %xmm3                                 #484.3
-        movdqa    %xmm7, %xmm14                                 #484.3
-        paddd     %xmm3, %xmm0                                  #484.3
-        movdqa    %xmm7, %xmm3                                  #484.3
-        por       %xmm5, %xmm3                                  #484.3
-        pand      %xmm5, %xmm14                                 #484.3
-        pand      %xmm1, %xmm3                                  #484.3
-        paddd     %xmm8, %xmm2                                  #484.3
-        paddd     176(%rsp), %xmm0                              #484.3
-        por       %xmm14, %xmm3                                 #484.3
-        paddd     %xmm3, %xmm2                                  #484.3
-        movdqa    %xmm0, %xmm14                                 #484.3
-        paddd     160(%rsp), %xmm2                              #484.3
-        pslld     $5, %xmm14                                    #484.3
+        psrld     $19, %xmm8                                    #482.3
+        movdqa    %xmm2, %xmm14                                 #483.3
+        por       %xmm8, %xmm7                                  #482.3
+        por       %xmm13, %xmm14                                #483.3
+        movdqa    %xmm2, %xmm8                                  #483.3
+        pand      %xmm5, %xmm14                                 #483.3
+        pand      %xmm13, %xmm8                                 #483.3
+        movdqa    %xmm3, %xmm15                                 #483.3
+        paddd     %xmm10, %xmm9                                 #483.3
+        por       %xmm8, %xmm14                                 #483.3
+        por       %xmm0, %xmm15                                 #483.3
+        movdqa    %xmm3, %xmm8                                  #483.3
+        paddd     %xmm14, %xmm9                                 #483.3
+        pand      %xmm6, %xmm15                                 #483.3
+        pand      %xmm0, %xmm8                                  #483.3
+        movdqa    %xmm4, %xmm14                                 #483.3
+        por       %xmm8, %xmm15                                 #483.3
+        por       %xmm1, %xmm14                                 #483.3
+        movdqa    %xmm4, %xmm8                                  #483.3
+        pand      %xmm7, %xmm14                                 #483.3
+        pand      %xmm1, %xmm8                                  #483.3
+        paddd     %xmm10, %xmm12                                #483.3
+        por       %xmm8, %xmm14                                 #483.3
+        paddd     %xmm10, %xmm11                                #483.3
+        paddd     208(%rsp), %xmm9                              #483.3
+        paddd     %xmm14, %xmm12                                #483.3
+        paddd     240(%rsp), %xmm12                             #483.3
+        paddd     %xmm15, %xmm11                                #483.3
+        movdqa    %xmm9, %xmm8                                  #483.3
+        psrld     $29, %xmm9                                    #483.3
+        paddd     224(%rsp), %xmm11                             #483.3
+        pslld     $3, %xmm8                                     #483.3
+        movdqa    %xmm12, %xmm14                                #483.3
+        por       %xmm9, %xmm8                                  #483.3
+        movdqa    %xmm11, %xmm9                                 #483.3
+        pslld     $3, %xmm14                                    #483.3
+        psrld     $29, %xmm12                                   #483.3
+        pslld     $3, %xmm9                                     #483.3
+        psrld     $29, %xmm11                                   #483.3
+        por       %xmm12, %xmm14                                #483.3
+        movdqa    %xmm5, %xmm12                                 #484.3
+        por       %xmm11, %xmm9                                 #483.3
+        por       %xmm2, %xmm12                                 #484.3
+        movdqa    %xmm5, %xmm11                                 #484.3
+        pand      %xmm8, %xmm12                                 #484.3
+        pand      %xmm2, %xmm11                                 #484.3
+        movdqa    %xmm6, %xmm15                                 #484.3
+        paddd     %xmm10, %xmm13                                #484.3
+        por       %xmm11, %xmm12                                #484.3
+        por       %xmm3, %xmm15                                 #484.3
+        movdqa    %xmm6, %xmm11                                 #484.3
+        paddd     %xmm12, %xmm13                                #484.3
+        pand      %xmm9, %xmm15                                 #484.3
+        pand      %xmm3, %xmm11                                 #484.3
+        movdqa    %xmm7, %xmm12                                 #484.3
+        por       %xmm11, %xmm15                                #484.3
+        por       %xmm4, %xmm12                                 #484.3
+        movdqa    %xmm7, %xmm11                                 #484.3
+        pand      %xmm14, %xmm12                                #484.3
+        pand      %xmm4, %xmm11                                 #484.3
+        paddd     336(%rsp), %xmm13                             #484.3
+        paddd     %xmm10, %xmm1                                 #484.3
+        por       %xmm11, %xmm12                                #484.3
+        paddd     %xmm10, %xmm0                                 #484.3
+        paddd     %xmm12, %xmm1                                 #484.3
+        movdqa    %xmm13, %xmm12                                #484.3
+        paddd     368(%rsp), %xmm1                              #484.3
+        paddd     %xmm15, %xmm0                                 #484.3
+        pslld     $5, %xmm12                                    #484.3
+        psrld     $27, %xmm13                                   #484.3
+        paddd     352(%rsp), %xmm0                              #484.3
+        por       %xmm13, %xmm12                                #484.3
+        movdqa    %xmm1, %xmm13                                 #484.3
+        movdqa    %xmm0, %xmm11                                 #484.3
+        pslld     $5, %xmm13                                    #484.3
+        psrld     $27, %xmm1                                    #484.3
+        pslld     $5, %xmm11                                    #484.3
         psrld     $27, %xmm0                                    #484.3
-        movdqa    %xmm13, %xmm3                                 #485.3
-        por       %xmm0, %xmm14                                 #484.3
-        movdqa    %xmm2, %xmm0                                  #484.3
-        pslld     $5, %xmm0                                     #484.3
-        psrld     $27, %xmm2                                    #484.3
-        por       %xmm2, %xmm0                                  #484.3
-        por       %xmm6, %xmm3                                  #485.3
-        movdqa    %xmm13, %xmm2                                 #485.3
-        pand      %xmm14, %xmm3                                 #485.3
-        pand      %xmm6, %xmm2                                  #485.3
-        paddd     %xmm8, %xmm4                                  #485.3
-        por       %xmm2, %xmm3                                  #485.3
-        movdqa    %xmm1, %xmm2                                  #485.3
-        paddd     %xmm3, %xmm4                                  #485.3
-        movdqa    %xmm1, %xmm3                                  #485.3
-        por       %xmm7, %xmm3                                  #485.3
-        pand      %xmm7, %xmm2                                  #485.3
-        pand      %xmm0, %xmm3                                  #485.3
-        paddd     %xmm8, %xmm5                                  #485.3
-        paddd     240(%rsp), %xmm4                              #485.3
-        por       %xmm2, %xmm3                                  #485.3
-        paddd     %xmm3, %xmm5                                  #485.3
-        movdqa    %xmm4, %xmm2                                  #485.3
-        paddd     256(%rsp), %xmm5                              #485.3
+        por       %xmm1, %xmm13                                 #484.3
+        movdqa    %xmm8, %xmm1                                  #485.3
+        por       %xmm0, %xmm11                                 #484.3
+        por       %xmm5, %xmm1                                  #485.3
+        movdqa    %xmm8, %xmm0                                  #485.3
+        pand      %xmm12, %xmm1                                 #485.3
+        pand      %xmm5, %xmm0                                  #485.3
+        paddd     %xmm10, %xmm2                                 #485.3
+        por       %xmm0, %xmm1                                  #485.3
+                                # LOE rbx rbp rsi r12 r13 r14 r15 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14
+..B8.8:                         # Preds ..B8.9
+        movdqa    %xmm9, %xmm15                                 #485.3
+        movdqa    %xmm9, %xmm0                                  #485.3
+        por       %xmm6, %xmm15                                 #485.3
+        pand      %xmm6, %xmm0                                  #485.3
+        pand      %xmm11, %xmm15                                #485.3
+        paddd     %xmm10, %xmm3                                 #485.3
+        por       %xmm0, %xmm15                                 #485.3
+        paddd     %xmm1, %xmm2                                  #485.3
+        paddd     %xmm15, %xmm3                                 #485.3
+        movdqa    %xmm14, %xmm15                                #485.3
+        movdqa    496(%rsp), %xmm1                              #485.3
+        por       %xmm7, %xmm15                                 #485.3
+        movdqa    %xmm14, %xmm0                                 #485.3
+        paddd     %xmm1, %xmm2                                  #485.3
+        pand      %xmm13, %xmm15                                #485.3
+        pand      %xmm7, %xmm0                                  #485.3
+        por       %xmm0, %xmm15                                 #485.3
+        movdqa    %xmm2, %xmm0                                  #485.3
+        paddd     528(%rsp), %xmm3                              #485.3
+        paddd     %xmm10, %xmm4                                 #485.3
+        pslld     $9, %xmm0                                     #485.3
+        psrld     $23, %xmm2                                    #485.3
+        paddd     %xmm15, %xmm4                                 #485.3
+        por       %xmm2, %xmm0                                  #485.3
+        movdqa    %xmm3, %xmm2                                  #485.3
+        psrld     $23, %xmm3                                    #485.3
+        paddd     512(%rsp), %xmm4                              #485.3
         pslld     $9, %xmm2                                     #485.3
+        por       %xmm3, %xmm2                                  #485.3
+        movdqa    %xmm4, %xmm3                                  #485.3
+        pslld     $9, %xmm3                                     #485.3
         psrld     $23, %xmm4                                    #485.3
-        movdqa    %xmm14, %xmm3                                 #486.3
-        por       %xmm4, %xmm2                                  #485.3
-        movdqa    %xmm5, %xmm4                                  #485.3
-        pslld     $9, %xmm4                                     #485.3
-        psrld     $23, %xmm5                                    #485.3
-        por       %xmm5, %xmm4                                  #485.3
-        por       %xmm13, %xmm3                                 #486.3
-        movdqa    %xmm14, %xmm5                                 #486.3
-        pand      %xmm2, %xmm3                                  #486.3
-        pand      %xmm13, %xmm5                                 #486.3
-        paddd     %xmm8, %xmm6                                  #486.3
-        por       %xmm5, %xmm3                                  #486.3
-        movdqa    %xmm0, %xmm5                                  #486.3
-        paddd     %xmm3, %xmm6                                  #486.3
-        movdqa    %xmm0, %xmm3                                  #486.3
-        por       %xmm1, %xmm3                                  #486.3
-        pand      %xmm1, %xmm5                                  #486.3
-        pand      %xmm4, %xmm3                                  #486.3
-        paddd     %xmm8, %xmm7                                  #486.3
-        por       %xmm5, %xmm3                                  #486.3
-        paddd     %xmm8, %xmm13                                 #487.3
-        paddd     336(%rsp), %xmm6                              #486.3
-        paddd     %xmm3, %xmm7                                  #486.3
-        paddd     352(%rsp), %xmm7                              #486.3
+        movdqa    %xmm12, %xmm15                                #486.3
+        por       %xmm4, %xmm3                                  #485.3
+        por       %xmm8, %xmm15                                 #486.3
+        movdqa    %xmm12, %xmm4                                 #486.3
+        pand      %xmm0, %xmm15                                 #486.3
+        pand      %xmm8, %xmm4                                  #486.3
+        paddd     %xmm10, %xmm5                                 #486.3
+        por       %xmm4, %xmm15                                 #486.3
+        paddd     %xmm15, %xmm5                                 #486.3
+        movdqa    %xmm11, %xmm15                                #486.3
+        por       %xmm9, %xmm15                                 #486.3
+        movdqa    %xmm11, %xmm4                                 #486.3
+        pand      %xmm2, %xmm15                                 #486.3
+        pand      %xmm9, %xmm4                                  #486.3
+        paddd     %xmm10, %xmm6                                 #486.3
+        por       %xmm4, %xmm15                                 #486.3
+        paddd     %xmm15, %xmm6                                 #486.3
+        movdqa    %xmm13, %xmm15                                #486.3
+        por       %xmm14, %xmm15                                #486.3
+        movdqa    %xmm13, %xmm4                                 #486.3
+        paddd     608(%rsp), %xmm5                              #486.3
+        pand      %xmm3, %xmm15                                 #486.3
+        pand      %xmm14, %xmm4                                 #486.3
+        paddd     %xmm10, %xmm7                                 #486.3
+        por       %xmm4, %xmm15                                 #486.3
+        movdqa    %xmm5, %xmm4                                  #486.3
+        paddd     544(%rsp), %xmm6                              #486.3
+        pslld     $13, %xmm4                                    #486.3
+        psrld     $19, %xmm5                                    #486.3
+        paddd     %xmm15, %xmm7                                 #486.3
+        por       %xmm5, %xmm4                                  #486.3
         movdqa    %xmm6, %xmm5                                  #486.3
+        paddd     560(%rsp), %xmm7                              #486.3
         pslld     $13, %xmm5                                    #486.3
         psrld     $19, %xmm6                                    #486.3
-        movdqa    %xmm7, %xmm3                                  #486.3
+        movdqa    %xmm12, %xmm15                                #487.3
         por       %xmm6, %xmm5                                  #486.3
-        pslld     $13, %xmm3                                    #486.3
+        movdqa    %xmm7, %xmm6                                  #486.3
+        pslld     $13, %xmm6                                    #486.3
         psrld     $19, %xmm7                                    #486.3
-        movdqa    %xmm2, %xmm6                                  #487.3
-        por       %xmm7, %xmm3                                  #486.3
-        por       %xmm14, %xmm6                                 #487.3
-        movdqa    %xmm2, %xmm7                                  #487.3
-        pand      %xmm5, %xmm6                                  #487.3
-        pand      %xmm14, %xmm7                                 #487.3
-        por       %xmm7, %xmm6                                  #487.3
-        movdqa    %xmm4, %xmm7                                  #487.3
-        paddd     %xmm6, %xmm13                                 #487.3
-        movdqa    %xmm4, %xmm6                                  #487.3
-        por       %xmm0, %xmm6                                  #487.3
+        por       %xmm7, %xmm6                                  #486.3
+        por       %xmm0, %xmm15                                 #487.3
+        movdqa    %xmm12, %xmm7                                 #487.3
+        pand      %xmm4, %xmm15                                 #487.3
         pand      %xmm0, %xmm7                                  #487.3
-        pand      %xmm3, %xmm6                                  #487.3
-        paddd     %xmm8, %xmm1                                  #487.3
-        por       %xmm7, %xmm6                                  #487.3
-        paddd     %xmm8, %xmm14                                 #488.3
-        paddd     16(%rsp), %xmm13                              #487.3
-        paddd     %xmm6, %xmm1                                  #487.3
-        paddd     (%rsp), %xmm1                                 #487.3
-        movdqa    %xmm13, %xmm6                                 #487.3
-        pslld     $3, %xmm6                                     #487.3
-        psrld     $29, %xmm13                                   #487.3
-        movdqa    %xmm1, %xmm7                                  #487.3
-        por       %xmm13, %xmm6                                 #487.3
+        paddd     %xmm10, %xmm8                                 #487.3
+        por       %xmm7, %xmm15                                 #487.3
+        movdqa    %xmm11, %xmm7                                 #487.3
+        paddd     %xmm15, %xmm8                                 #487.3
+        movdqa    %xmm11, %xmm15                                #487.3
+        por       %xmm2, %xmm15                                 #487.3
+        pand      %xmm2, %xmm7                                  #487.3
+        pand      %xmm5, %xmm15                                 #487.3
+        paddd     %xmm10, %xmm9                                 #487.3
+        por       %xmm7, %xmm15                                 #487.3
+        movdqa    %xmm13, %xmm7                                 #487.3
+        paddd     %xmm15, %xmm9                                 #487.3
+        movdqa    %xmm13, %xmm15                                #487.3
+        por       %xmm3, %xmm15                                 #487.3
+        pand      %xmm3, %xmm7                                  #487.3
+        paddd     (%rsp), %xmm8                                 #487.3
+        pand      %xmm6, %xmm15                                 #487.3
+        por       %xmm7, %xmm15                                 #487.3
+        movdqa    %xmm8, %xmm7                                  #487.3
+        paddd     16(%rsp), %xmm9                               #487.3
+        paddd     %xmm10, %xmm14                                #487.3
         pslld     $3, %xmm7                                     #487.3
-        psrld     $29, %xmm1                                    #487.3
-        movdqa    %xmm5, %xmm13                                 #488.3
-        por       %xmm1, %xmm7                                  #487.3
-        por       %xmm2, %xmm13                                 #488.3
-        movdqa    %xmm5, %xmm1                                  #488.3
-        pand      %xmm6, %xmm13                                 #488.3
-        pand      %xmm2, %xmm1                                  #488.3
-        por       %xmm1, %xmm13                                 #488.3
-        movdqa    %xmm3, %xmm1                                  #488.3
-        paddd     %xmm13, %xmm14                                #488.3
-        movdqa    %xmm3, %xmm13                                 #488.3
-        por       %xmm4, %xmm13                                 #488.3
-        pand      %xmm4, %xmm1                                  #488.3
-        pand      %xmm7, %xmm13                                 #488.3
-        paddd     %xmm8, %xmm0                                  #488.3
-        paddd     64(%rsp), %xmm14                              #488.3
-        por       %xmm1, %xmm13                                 #488.3
-        paddd     %xmm13, %xmm0                                 #488.3
-        movdqa    %xmm14, %xmm13                                #488.3
-        paddd     96(%rsp), %xmm0                               #488.3
-        pslld     $5, %xmm13                                    #488.3
-        psrld     $27, %xmm14                                   #488.3
-        movdqa    %xmm6, %xmm1                                  #489.3
-        por       %xmm14, %xmm13                                #488.3
-        movdqa    %xmm0, %xmm14                                 #488.3
+        psrld     $29, %xmm8                                    #487.3
+        paddd     %xmm15, %xmm14                                #487.3
+        por       %xmm8, %xmm7                                  #487.3
+        movdqa    %xmm9, %xmm8                                  #487.3
+        psrld     $29, %xmm9                                    #487.3
+        paddd     32(%rsp), %xmm14                              #487.3
+        pslld     $3, %xmm8                                     #487.3
+        por       %xmm9, %xmm8                                  #487.3
+        movdqa    %xmm14, %xmm9                                 #487.3
+        pslld     $3, %xmm9                                     #487.3
+        psrld     $29, %xmm14                                   #487.3
+        movdqa    %xmm4, %xmm15                                 #488.3
+        por       %xmm14, %xmm9                                 #487.3
+        por       %xmm0, %xmm15                                 #488.3
+        movdqa    %xmm4, %xmm14                                 #488.3
+        pand      %xmm7, %xmm15                                 #488.3
+        pand      %xmm0, %xmm14                                 #488.3
+        paddd     %xmm10, %xmm12                                #488.3
+        por       %xmm14, %xmm15                                #488.3
+        paddd     %xmm15, %xmm12                                #488.3
+        movdqa    %xmm5, %xmm15                                 #488.3
+        por       %xmm2, %xmm15                                 #488.3
+        movdqa    %xmm5, %xmm14                                 #488.3
+        pand      %xmm8, %xmm15                                 #488.3
+        pand      %xmm2, %xmm14                                 #488.3
+        paddd     %xmm10, %xmm11                                #488.3
+        por       %xmm14, %xmm15                                #488.3
+        paddd     %xmm15, %xmm11                                #488.3
+        movdqa    %xmm6, %xmm15                                 #488.3
+        por       %xmm3, %xmm15                                 #488.3
+        movdqa    %xmm6, %xmm14                                 #488.3
+        paddd     96(%rsp), %xmm12                              #488.3
+        pand      %xmm9, %xmm15                                 #488.3
+        pand      %xmm3, %xmm14                                 #488.3
+        paddd     %xmm10, %xmm13                                #488.3
+        por       %xmm14, %xmm15                                #488.3
+        movdqa    %xmm12, %xmm14                                #488.3
+        paddd     80(%rsp), %xmm11                              #488.3
         pslld     $5, %xmm14                                    #488.3
-        psrld     $27, %xmm0                                    #488.3
-        por       %xmm0, %xmm14                                 #488.3
-        por       %xmm5, %xmm1                                  #489.3
-        movdqa    %xmm6, %xmm0                                  #489.3
-        pand      %xmm13, %xmm1                                 #489.3
-        pand      %xmm5, %xmm0                                  #489.3
-        paddd     %xmm8, %xmm2                                  #489.3
-        por       %xmm0, %xmm1                                  #489.3
-        movdqa    %xmm7, %xmm0                                  #489.3
-        paddd     %xmm1, %xmm2                                  #489.3
-        movdqa    %xmm7, %xmm1                                  #489.3
-        por       %xmm3, %xmm1                                  #489.3
-        pand      %xmm3, %xmm0                                  #489.3
-        pand      %xmm14, %xmm1                                 #489.3
-        paddd     %xmm8, %xmm4                                  #489.3
-        paddd     192(%rsp), %xmm2                              #489.3
-        por       %xmm0, %xmm1                                  #489.3
-        paddd     %xmm1, %xmm4                                  #489.3
+        psrld     $27, %xmm12                                   #488.3
+        paddd     %xmm15, %xmm13                                #488.3
+        por       %xmm12, %xmm14                                #488.3
+        movdqa    %xmm11, %xmm12                                #488.3
+        paddd     64(%rsp), %xmm13                              #488.3
+        pslld     $5, %xmm12                                    #488.3
+        psrld     $27, %xmm11                                   #488.3
+        movdqa    %xmm7, %xmm15                                 #489.3
+        por       %xmm11, %xmm12                                #488.3
+        movdqa    %xmm13, %xmm11                                #488.3
+        pslld     $5, %xmm11                                    #488.3
+        psrld     $27, %xmm13                                   #488.3
+        por       %xmm13, %xmm11                                #488.3
+        por       %xmm4, %xmm15                                 #489.3
+        movdqa    %xmm7, %xmm13                                 #489.3
+        pand      %xmm14, %xmm15                                #489.3
+        pand      %xmm4, %xmm13                                 #489.3
+        paddd     %xmm10, %xmm0                                 #489.3
+        por       %xmm13, %xmm15                                #489.3
+        movdqa    %xmm8, %xmm13                                 #489.3
+        paddd     %xmm15, %xmm0                                 #489.3
+        movdqa    %xmm8, %xmm15                                 #489.3
+        por       %xmm5, %xmm15                                 #489.3
+        pand      %xmm5, %xmm13                                 #489.3
+        pand      %xmm12, %xmm15                                #489.3
+        paddd     %xmm10, %xmm2                                 #489.3
+        por       %xmm13, %xmm15                                #489.3
+        movdqa    %xmm9, %xmm13                                 #489.3
+        paddd     %xmm15, %xmm2                                 #489.3
+        movdqa    %xmm9, %xmm15                                 #489.3
+        por       %xmm6, %xmm15                                 #489.3
+        pand      %xmm6, %xmm13                                 #489.3
+        paddd     192(%rsp), %xmm0                              #489.3
+        pand      %xmm11, %xmm15                                #489.3
+        paddd     %xmm10, %xmm3                                 #489.3
+        por       %xmm13, %xmm15                                #489.3
+        movdqa    %xmm0, %xmm13                                 #489.3
+        paddd     %xmm15, %xmm3                                 #489.3
+        paddd     256(%rsp), %xmm2                              #489.3
+        pslld     $9, %xmm13                                    #489.3
+        psrld     $23, %xmm0                                    #489.3
+        paddd     %xmm10, %xmm4                                 #490.3
+        paddd     272(%rsp), %xmm3                              #489.3
+        por       %xmm0, %xmm13                                 #489.3
         movdqa    %xmm2, %xmm0                                  #489.3
-        paddd     224(%rsp), %xmm4                              #489.3
-        pslld     $9, %xmm0                                     #489.3
         psrld     $23, %xmm2                                    #489.3
-        movdqa    %xmm13, %xmm1                                 #490.3
+        pslld     $9, %xmm0                                     #489.3
+        movdqa    %xmm3, %xmm15                                 #489.3
         por       %xmm2, %xmm0                                  #489.3
-        movdqa    %xmm4, %xmm2                                  #489.3
-        pslld     $9, %xmm2                                     #489.3
-        psrld     $23, %xmm4                                    #489.3
-        por       %xmm4, %xmm2                                  #489.3
-        por       %xmm6, %xmm1                                  #490.3
-        movdqa    %xmm13, %xmm4                                 #490.3
-        pand      %xmm0, %xmm1                                  #490.3
-        pand      %xmm6, %xmm4                                  #490.3
-        paddd     %xmm8, %xmm5                                  #490.3
-        por       %xmm4, %xmm1                                  #490.3
-        paddd     %xmm8, %xmm3                                  #490.3
-        paddd     %xmm1, %xmm5                                  #490.3
-        movdqa    %xmm14, %xmm1                                 #490.3
-        por       %xmm7, %xmm1                                  #490.3
-        movdqa    %xmm14, %xmm8                                 #490.3
-        pand      %xmm2, %xmm1                                  #490.3
-        pand      %xmm7, %xmm8                                  #490.3
-        paddd     368(%rsp), %xmm5                              #490.3
-        por       %xmm8, %xmm1                                  #490.3
-        paddd     %xmm1, %xmm3                                  #490.3
-        movdqa    %xmm5, %xmm8                                  #490.3
-        paddd     416(%rsp), %xmm3                              #490.3
-        pslld     $13, %xmm8                                    #490.3
+        pslld     $9, %xmm15                                    #489.3
+        psrld     $23, %xmm3                                    #489.3
+        movdqa    %xmm14, %xmm2                                 #490.3
+        por       %xmm3, %xmm15                                 #489.3
+        por       %xmm7, %xmm2                                  #490.3
+        movdqa    %xmm14, %xmm3                                 #490.3
+        pand      %xmm13, %xmm2                                 #490.3
+        pand      %xmm7, %xmm3                                  #490.3
+        paddd     %xmm10, %xmm5                                 #490.3
+        por       %xmm3, %xmm2                                  #490.3
+        movdqa    %xmm12, %xmm3                                 #490.3
+        paddd     %xmm2, %xmm4                                  #490.3
+        movdqa    %xmm12, %xmm2                                 #490.3
+        por       %xmm8, %xmm2                                  #490.3
+        pand      %xmm8, %xmm3                                  #490.3
+        pand      %xmm0, %xmm2                                  #490.3
+        paddd     %xmm10, %xmm6                                 #490.3
+        por       %xmm3, %xmm2                                  #490.3
+        movdqa    %xmm11, %xmm3                                 #490.3
+        por       %xmm9, %xmm3                                  #490.3
+        movdqa    %xmm11, %xmm10                                #490.3
+        paddd     %xmm2, %xmm5                                  #490.3
+        pand      %xmm15, %xmm3                                 #490.3
+        pand      %xmm9, %xmm10                                 #490.3
+        paddd     688(%rsp), %xmm5                              #490.3
+        por       %xmm10, %xmm3                                 #490.3
+        paddd     %xmm3, %xmm6                                  #490.3
+        movdqa    %xmm5, %xmm10                                 #490.3
+        paddd     704(%rsp), %xmm6                              #490.3
+        pslld     $13, %xmm10                                   #490.3
         psrld     $19, %xmm5                                    #490.3
-        por       %xmm5, %xmm8                                  #490.3
-        movdqa    %xmm3, %xmm5                                  #490.3
+        paddd     384(%rsp), %xmm4                              #490.3
+        por       %xmm5, %xmm10                                 #490.3
+        movdqa    %xmm6, %xmm5                                  #490.3
+        movdqa    %xmm4, %xmm2                                  #490.3
         pslld     $13, %xmm5                                    #490.3
-        psrld     $19, %xmm3                                    #490.3
-        por       %xmm3, %xmm5                                  #490.3
-        movdqa    %xmm0, %xmm3                                  #494.3
-        movdqa    .L_2il0floatpacket.473(%rip), %xmm1           #493.9
-        pxor      %xmm13, %xmm3                                 #494.3
-        paddd     %xmm1, %xmm6                                  #494.3
-        pxor      %xmm8, %xmm3                                  #494.3
-        paddd     %xmm3, %xmm6                                  #494.3
-        paddd     %xmm1, %xmm7                                  #494.3
-        paddd     %xmm12, %xmm6                                 #494.3
-        movdqa    %xmm2, %xmm12                                 #494.3
-        pxor      %xmm14, %xmm12                                #494.3
-        movdqa    %xmm8, %xmm4                                  #495.3
-        pxor      %xmm5, %xmm12                                 #494.3
-        pxor      %xmm0, %xmm4                                  #495.3
-        paddd     %xmm12, %xmm7                                 #494.3
-        movdqa    %xmm6, %xmm12                                 #494.3
-        paddd     400(%rsp), %xmm7                              #494.3
-        pslld     $3, %xmm12                                    #494.3
-        psrld     $29, %xmm6                                    #494.3
-        paddd     %xmm1, %xmm13                                 #495.3
-        por       %xmm6, %xmm12                                 #494.3
+        psrld     $19, %xmm6                                    #490.3
+        pslld     $13, %xmm2                                    #490.3
+        psrld     $19, %xmm4                                    #490.3
+        por       %xmm6, %xmm5                                  #490.3
+        movdqa    %xmm13, %xmm6                                 #494.3
+        movdqa    .L_2il0floatpacket.479(%rip), %xmm3           #493.9
+        por       %xmm4, %xmm2                                  #490.3
+        pxor      %xmm14, %xmm6                                 #494.3
+        paddd     %xmm3, %xmm7                                  #494.3
+        pxor      %xmm2, %xmm6                                  #494.3
+        movdqa    %xmm0, %xmm4                                  #494.3
+        paddd     %xmm6, %xmm7                                  #494.3
+        movdqa    %xmm15, %xmm6                                 #494.3
+        pxor      %xmm12, %xmm4                                 #494.3
+        pxor      %xmm11, %xmm6                                 #494.3
+        paddd     720(%rsp), %xmm7                              #494.3
+        paddd     %xmm3, %xmm8                                  #494.3
+        pxor      %xmm10, %xmm4                                 #494.3
+        paddd     %xmm3, %xmm9                                  #494.3
+        pxor      %xmm5, %xmm6                                  #494.3
+        paddd     %xmm4, %xmm8                                  #494.3
+        paddd     %xmm6, %xmm9                                  #494.3
         movdqa    %xmm7, %xmm6                                  #494.3
+        paddd     736(%rsp), %xmm8                              #494.3
         pslld     $3, %xmm6                                     #494.3
         psrld     $29, %xmm7                                    #494.3
+        paddd     %xmm3, %xmm14                                 #495.3
         por       %xmm7, %xmm6                                  #494.3
-        pxor      %xmm12, %xmm4                                 #495.3
-        movdqa    %xmm5, %xmm7                                  #495.3
-        paddd     %xmm4, %xmm13                                 #495.3
-        pxor      %xmm2, %xmm7                                  #495.3
-        paddd     %xmm1, %xmm14                                 #495.3
-        paddd     384(%rsp), %xmm13                             #495.3
-        pxor      %xmm6, %xmm7                                  #495.3
-        paddd     %xmm7, %xmm14                                 #495.3
-        movdqa    %xmm13, %xmm7                                 #495.3
-        paddd     448(%rsp), %xmm14                             #495.3
-        pslld     $9, %xmm7                                     #495.3
-        psrld     $23, %xmm13                                   #495.3
-        paddd     %xmm1, %xmm0                                  #496.3
-        por       %xmm13, %xmm7                                 #495.3
-        movdqa    %xmm14, %xmm13                                #495.3
-        pslld     $9, %xmm13                                    #495.3
+        movdqa    %xmm8, %xmm7                                  #494.3
+        paddd     752(%rsp), %xmm9                              #494.3
+        pslld     $3, %xmm7                                     #494.3
+        psrld     $29, %xmm8                                    #494.3
+        movdqa    %xmm10, %xmm4                                 #495.3
+        por       %xmm8, %xmm7                                  #494.3
+        movdqa    %xmm9, %xmm8                                  #494.3
+        pslld     $3, %xmm8                                     #494.3
+        psrld     $29, %xmm9                                    #494.3
+        por       %xmm9, %xmm8                                  #494.3
+        movdqa    %xmm2, %xmm9                                  #495.3
+        pxor      %xmm13, %xmm9                                 #495.3
+        pxor      %xmm0, %xmm4                                  #495.3
+        pxor      %xmm6, %xmm9                                  #495.3
+        paddd     %xmm3, %xmm12                                 #495.3
+        paddd     %xmm9, %xmm14                                 #495.3
+        movdqa    %xmm5, %xmm9                                  #495.3
+        pxor      %xmm15, %xmm9                                 #495.3
+        pxor      %xmm7, %xmm4                                  #495.3
+        paddd     624(%rsp), %xmm14                             #495.3
+        paddd     %xmm3, %xmm11                                 #495.3
+        pxor      %xmm8, %xmm9                                  #495.3
+        paddd     %xmm4, %xmm12                                 #495.3
+        paddd     %xmm9, %xmm11                                 #495.3
+        movdqa    %xmm14, %xmm9                                 #495.3
+        paddd     576(%rsp), %xmm12                             #495.3
+        pslld     $9, %xmm9                                     #495.3
         psrld     $23, %xmm14                                   #495.3
-        por       %xmm14, %xmm13                                #495.3
-        movdqa    %xmm12, %xmm14                                #496.3
-        pxor      %xmm8, %xmm14                                 #496.3
-        paddd     %xmm1, %xmm2                                  #496.3
-        pxor      %xmm7, %xmm14                                 #496.3
-        paddd     %xmm1, %xmm8                                  #497.3
-        paddd     %xmm14, %xmm0                                 #496.3
-        paddd     %xmm9, %xmm0                                  #496.3
-        movdqa    %xmm6, %xmm9                                  #496.3
-        pxor      %xmm5, %xmm9                                  #496.3
-        movdqa    %xmm0, %xmm14                                 #496.3
-        pxor      %xmm13, %xmm9                                 #496.3
-        pslld     $11, %xmm14                                   #496.3
-        paddd     %xmm9, %xmm2                                  #496.3
+        paddd     %xmm3, %xmm13                                 #496.3
+        por       %xmm14, %xmm9                                 #495.3
+        movdqa    %xmm12, %xmm14                                #495.3
+        paddd     592(%rsp), %xmm11                             #495.3
+        pslld     $9, %xmm14                                    #495.3
+        psrld     $23, %xmm12                                   #495.3
+        movdqa    %xmm7, %xmm4                                  #496.3
+        por       %xmm12, %xmm14                                #495.3
+        movdqa    %xmm11, %xmm12                                #495.3
+        pslld     $9, %xmm12                                    #495.3
+        psrld     $23, %xmm11                                   #495.3
+        por       %xmm11, %xmm12                                #495.3
+        movdqa    %xmm6, %xmm11                                 #496.3
+        pxor      %xmm2, %xmm11                                 #496.3
+        pxor      %xmm10, %xmm4                                 #496.3
+        pxor      %xmm9, %xmm11                                 #496.3
+        paddd     %xmm3, %xmm0                                  #496.3
+        paddd     %xmm11, %xmm13                                #496.3
+        movdqa    %xmm8, %xmm11                                 #496.3
+        pxor      %xmm5, %xmm11                                 #496.3
+        pxor      %xmm14, %xmm4                                 #496.3
+        paddd     416(%rsp), %xmm13                             #496.3
+        paddd     %xmm3, %xmm15                                 #496.3
+        pxor      %xmm12, %xmm11                                #496.3
+        paddd     %xmm4, %xmm0                                  #496.3
+        paddd     %xmm11, %xmm15                                #496.3
+        movdqa    %xmm13, %xmm11                                #496.3
+        paddd     432(%rsp), %xmm0                              #496.3
+        pslld     $11, %xmm11                                   #496.3
+        psrld     $21, %xmm13                                   #496.3
+        movdqa    %xmm14, %xmm4                                 #497.3
+        por       %xmm13, %xmm11                                #496.3
+        movdqa    %xmm0, %xmm13                                 #496.3
+        paddd     448(%rsp), %xmm15                             #496.3
+        pslld     $11, %xmm13                                   #496.3
         psrld     $21, %xmm0                                    #496.3
-        paddd     %xmm10, %xmm2                                 #496.3
-        por       %xmm0, %xmm14                                 #496.3
-        movdqa    %xmm2, %xmm0                                  #496.3
-        psrld     $21, %xmm2                                    #496.3
+        paddd     %xmm3, %xmm2                                  #497.3
+        por       %xmm0, %xmm13                                 #496.3
+        movdqa    %xmm15, %xmm0                                 #496.3
         pslld     $11, %xmm0                                    #496.3
-        movdqa    %xmm7, %xmm10                                 #497.3
-        por       %xmm2, %xmm0                                  #496.3
-        movdqa    %xmm13, %xmm2                                 #497.3
-        pxor      %xmm6, %xmm2                                  #497.3
-        pxor      %xmm12, %xmm10                                #497.3
-        paddd     %xmm1, %xmm5                                  #497.3
-        pxor      %xmm0, %xmm2                                  #497.3
-        pxor      %xmm14, %xmm10                                #497.3
-        paddd     %xmm2, %xmm5                                  #497.3
-        paddd     %xmm10, %xmm8                                 #497.3
-        paddd     %xmm11, %xmm5                                 #497.3
-        paddd     432(%rsp), %xmm8                              #497.3
-        movdqa    %xmm5, %xmm11                                 #497.3
-        movdqa    %xmm8, %xmm9                                  #497.3
-        pslld     $15, %xmm11                                   #497.3
+        psrld     $21, %xmm15                                   #496.3
+        por       %xmm15, %xmm0                                 #496.3
+        movdqa    %xmm9, %xmm15                                 #497.3
+        pxor      %xmm6, %xmm15                                 #497.3
+        pxor      %xmm7, %xmm4                                  #497.3
+        pxor      %xmm11, %xmm15                                #497.3
+        paddd     %xmm3, %xmm10                                 #497.3
+        paddd     %xmm15, %xmm2                                 #497.3
+        pxor      %xmm13, %xmm4                                 #497.3
+        movdqa    %xmm12, %xmm15                                #497.3
+        paddd     %xmm4, %xmm10                                 #497.3
+        pxor      %xmm8, %xmm15                                 #497.3
+        paddd     %xmm3, %xmm5                                  #497.3
+        paddd     672(%rsp), %xmm10                             #497.3
+        pxor      %xmm0, %xmm15                                 #497.3
+        paddd     %xmm15, %xmm5                                 #497.3
+        movdqa    %xmm10, %xmm15                                #497.3
+        paddd     656(%rsp), %xmm5                              #497.3
+        pslld     $15, %xmm15                                   #497.3
+        psrld     $17, %xmm10                                   #497.3
+        paddd     %xmm3, %xmm6                                  #498.3
+        paddd     640(%rsp), %xmm2                              #497.3
+        por       %xmm10, %xmm15                                #497.3
+        movdqa    %xmm5, %xmm10                                 #497.3
+        movdqa    %xmm2, %xmm4                                  #497.3
+        pslld     $15, %xmm10                                   #497.3
         psrld     $17, %xmm5                                    #497.3
-        pslld     $15, %xmm9                                    #497.3
-        psrld     $17, %xmm8                                    #497.3
-        por       %xmm5, %xmm11                                 #497.3
-        movdqa    %xmm14, %xmm5                                 #498.3
-        por       %xmm8, %xmm9                                  #497.3
-        pxor      %xmm7, %xmm5                                  #498.3
-        paddd     %xmm1, %xmm12                                 #498.3
+        pslld     $15, %xmm4                                    #497.3
+        psrld     $17, %xmm2                                    #497.3
+        por       %xmm5, %xmm10                                 #497.3
+        movdqa    %xmm11, %xmm5                                 #498.3
+        por       %xmm2, %xmm4                                  #497.3
         pxor      %xmm9, %xmm5                                  #498.3
-        movdqa    %xmm0, %xmm4                                  #498.3
-        paddd     %xmm5, %xmm12                                 #498.3
-        pxor      %xmm13, %xmm4                                 #498.3
-        paddd     %xmm15, %xmm12                                #498.3
-        paddd     %xmm1, %xmm6                                  #498.3
-        pxor      %xmm11, %xmm4                                 #498.3
-        movdqa    %xmm12, %xmm10                                #498.3
-        paddd     %xmm4, %xmm6                                  #498.3
-        pslld     $3, %xmm10                                    #498.3
+        pxor      %xmm4, %xmm5                                  #498.3
+        movdqa    %xmm13, %xmm2                                 #498.3
+        paddd     %xmm5, %xmm6                                  #498.3
+        movdqa    %xmm0, %xmm5                                  #498.3
+        pxor      %xmm14, %xmm2                                 #498.3
+        pxor      %xmm12, %xmm5                                 #498.3
         paddd     208(%rsp), %xmm6                              #498.3
-        psrld     $29, %xmm12                                   #498.3
-        por       %xmm12, %xmm10                                #498.3
-        movdqa    %xmm6, %xmm12                                 #498.3
-        pslld     $3, %xmm12                                    #498.3
+        paddd     %xmm3, %xmm7                                  #498.3
+        pxor      %xmm15, %xmm2                                 #498.3
+        paddd     %xmm3, %xmm8                                  #498.3
+        pxor      %xmm10, %xmm5                                 #498.3
+        paddd     %xmm2, %xmm7                                  #498.3
+        paddd     %xmm5, %xmm8                                  #498.3
+        movdqa    %xmm6, %xmm5                                  #498.3
+        paddd     224(%rsp), %xmm7                              #498.3
+        pslld     $3, %xmm5                                     #498.3
         psrld     $29, %xmm6                                    #498.3
-        movdqa    %xmm11, %xmm15                                #499.3
-        por       %xmm6, %xmm12                                 #498.3
-        movdqa    %xmm9, %xmm6                                  #499.3
-        pxor      %xmm0, %xmm15                                 #499.3
-        pxor      %xmm14, %xmm6                                 #499.3
-        paddd     %xmm1, %xmm13                                 #499.3
-        pxor      %xmm12, %xmm15                                #499.3
-        paddd     %xmm1, %xmm7                                  #499.3
-        pxor      %xmm10, %xmm6                                 #499.3
-        paddd     %xmm15, %xmm13                                #499.3
-        paddd     256(%rsp), %xmm13                             #499.3
-        paddd     %xmm6, %xmm7                                  #499.3
-        paddd     240(%rsp), %xmm7                              #499.3
-        movdqa    %xmm13, %xmm5                                 #499.3
-        movdqa    %xmm7, %xmm6                                  #499.3
-        pslld     $9, %xmm5                                     #499.3
-        psrld     $23, %xmm13                                   #499.3
-        movdqa    %xmm12, %xmm2                                 #500.3
-        pslld     $9, %xmm6                                     #499.3
-        psrld     $23, %xmm7                                    #499.3
-        por       %xmm13, %xmm5                                 #499.3
-        movdqa    %xmm10, %xmm13                                #500.3
-        pxor      %xmm11, %xmm2                                 #500.3
-        por       %xmm7, %xmm6                                  #499.3
-        pxor      %xmm9, %xmm13                                 #500.3
-        paddd     %xmm1, %xmm0                                  #500.3
-        pxor      %xmm5, %xmm2                                  #500.3
-        paddd     %xmm1, %xmm14                                 #500.3
-        pxor      %xmm6, %xmm13                                 #500.3
-        paddd     %xmm2, %xmm0                                  #500.3
-        paddd     160(%rsp), %xmm0                              #500.3
-        paddd     %xmm13, %xmm14                                #500.3
-        paddd     176(%rsp), %xmm14                             #500.3
-        movdqa    %xmm0, %xmm2                                  #500.3
-        movdqa    %xmm14, %xmm4                                 #500.3
-        pslld     $11, %xmm2                                    #500.3
+        paddd     %xmm3, %xmm9                                  #499.3
+        por       %xmm6, %xmm5                                  #498.3
+        movdqa    %xmm7, %xmm6                                  #498.3
+        paddd     240(%rsp), %xmm8                              #498.3
+        pslld     $3, %xmm6                                     #498.3
+        psrld     $29, %xmm7                                    #498.3
+        paddd     %xmm3, %xmm14                                 #499.3
+        por       %xmm7, %xmm6                                  #498.3
+        movdqa    %xmm8, %xmm7                                  #498.3
+        pslld     $3, %xmm7                                     #498.3
+        psrld     $29, %xmm8                                    #498.3
+        por       %xmm8, %xmm7                                  #498.3
+        movdqa    %xmm4, %xmm8                                  #499.3
+        pxor      %xmm11, %xmm8                                 #499.3
+        movdqa    %xmm10, %xmm2                                 #499.3
+        pxor      %xmm5, %xmm8                                  #499.3
+        pxor      %xmm0, %xmm2                                  #499.3
+        paddd     %xmm8, %xmm9                                  #499.3
+        paddd     %xmm3, %xmm12                                 #499.3
+        paddd     %xmm1, %xmm9                                  #499.3
+        movdqa    %xmm15, %xmm1                                 #499.3
+        pxor      %xmm13, %xmm1                                 #499.3
+        pxor      %xmm7, %xmm2                                  #499.3
+        pxor      %xmm6, %xmm1                                  #499.3
+        paddd     %xmm2, %xmm12                                 #499.3
+        paddd     %xmm1, %xmm14                                 #499.3
+        movdqa    %xmm9, %xmm2                                  #499.3
+        paddd     528(%rsp), %xmm14                             #499.3
+        pslld     $9, %xmm2                                     #499.3
+        movdqa    %xmm14, %xmm1                                 #499.3
+        psrld     $23, %xmm14                                   #499.3
+        paddd     512(%rsp), %xmm12                             #499.3
+        pslld     $9, %xmm1                                     #499.3
+        psrld     $23, %xmm9                                    #499.3
+        por       %xmm14, %xmm1                                 #499.3
+        movdqa    %xmm12, %xmm14                                #499.3
+        por       %xmm9, %xmm2                                  #499.3
+        pslld     $9, %xmm14                                    #499.3
+        psrld     $23, %xmm12                                   #499.3
+        movdqa    %xmm7, %xmm9                                  #500.3
+        por       %xmm12, %xmm14                                #499.3
+        movdqa    %xmm5, %xmm12                                 #500.3
+        movdqa    %xmm6, %xmm8                                  #500.3
+        pxor      %xmm10, %xmm9                                 #500.3
+        pxor      %xmm4, %xmm12                                 #500.3
+        pxor      %xmm15, %xmm8                                 #500.3
+        paddd     %xmm3, %xmm0                                  #500.3
+        pxor      %xmm14, %xmm9                                 #500.3
+        paddd     %xmm3, %xmm11                                 #500.3
+        pxor      %xmm2, %xmm12                                 #500.3
+        paddd     %xmm3, %xmm13                                 #500.3
+        pxor      %xmm1, %xmm8                                  #500.3
+        paddd     %xmm9, %xmm0                                  #500.3
+        paddd     368(%rsp), %xmm0                              #500.3
+        paddd     %xmm12, %xmm11                                #500.3
+        paddd     %xmm8, %xmm13                                 #500.3
+        movdqa    %xmm0, %xmm12                                 #500.3
+        paddd     336(%rsp), %xmm11                             #500.3
+        pslld     $11, %xmm12                                   #500.3
+        paddd     352(%rsp), %xmm13                             #500.3
+        movdqa    %xmm11, %xmm9                                 #500.3
+        movdqa    %xmm13, %xmm8                                 #500.3
         psrld     $21, %xmm0                                    #500.3
-        movdqa    %xmm5, %xmm3                                  #501.3
-        pslld     $11, %xmm4                                    #500.3
-        psrld     $21, %xmm14                                   #500.3
-        por       %xmm0, %xmm2                                  #500.3
-        movdqa    %xmm6, %xmm0                                  #501.3
-        pxor      %xmm12, %xmm3                                 #501.3
-        por       %xmm14, %xmm4                                 #500.3
-        pxor      %xmm10, %xmm0                                 #501.3
-        paddd     %xmm1, %xmm11                                 #501.3
-        pxor      %xmm2, %xmm3                                  #501.3
-        paddd     %xmm1, %xmm9                                  #501.3
-        pxor      %xmm4, %xmm0                                  #501.3
-        paddd     %xmm3, %xmm11                                 #501.3
-        paddd     352(%rsp), %xmm11                             #501.3
-        paddd     %xmm0, %xmm9                                  #501.3
-        paddd     336(%rsp), %xmm9                              #501.3
-        movdqa    %xmm11, %xmm0                                 #501.3
-        movdqa    %xmm9, %xmm3                                  #501.3
+        pslld     $11, %xmm9                                    #500.3
+        psrld     $21, %xmm11                                   #500.3
+        pslld     $11, %xmm8                                    #500.3
+        psrld     $21, %xmm13                                   #500.3
+        por       %xmm0, %xmm12                                 #500.3
+        movdqa    %xmm2, %xmm0                                  #501.3
+        por       %xmm11, %xmm9                                 #500.3
+        por       %xmm13, %xmm8                                 #500.3
+        pxor      %xmm5, %xmm0                                  #501.3
+        movdqa    %xmm1, %xmm13                                 #501.3
+        paddd     %xmm3, %xmm4                                  #501.3
+        pxor      %xmm9, %xmm0                                  #501.3
+        pxor      %xmm6, %xmm13                                 #501.3
+        paddd     %xmm0, %xmm4                                  #501.3
+        paddd     %xmm3, %xmm15                                 #501.3
+        pxor      %xmm8, %xmm13                                 #501.3
+        movdqa    %xmm14, %xmm0                                 #501.3
+        paddd     %xmm13, %xmm15                                #501.3
+        paddd     608(%rsp), %xmm4                              #501.3
+        pxor      %xmm7, %xmm0                                  #501.3
+        paddd     544(%rsp), %xmm15                             #501.3
+        paddd     %xmm3, %xmm10                                 #501.3
+        pxor      %xmm12, %xmm0                                 #501.3
+        movdqa    %xmm4, %xmm11                                 #501.3
+        paddd     %xmm0, %xmm10                                 #501.3
+        pslld     $15, %xmm11                                   #501.3
+        psrld     $17, %xmm4                                    #501.3
+        movdqa    %xmm15, %xmm0                                 #501.3
+        paddd     560(%rsp), %xmm10                             #501.3
+        por       %xmm4, %xmm11                                 #501.3
         pslld     $15, %xmm0                                    #501.3
-        psrld     $17, %xmm11                                   #501.3
-        pslld     $15, %xmm3                                    #501.3
-        psrld     $17, %xmm9                                    #501.3
-        por       %xmm11, %xmm0                                 #501.3
-        movdqa    %xmm4, %xmm11                                 #502.3
-        por       %xmm9, %xmm3                                  #501.3
-        pxor      %xmm6, %xmm11                                 #502.3
-        paddd     %xmm1, %xmm10                                 #502.3
-        pxor      %xmm3, %xmm11                                 #502.3
-        movdqa    %xmm2, %xmm7                                  #502.3
-        paddd     %xmm11, %xmm10                                #502.3
-        pxor      %xmm5, %xmm7                                  #502.3
-        paddd     112(%rsp), %xmm10                             #502.3
-        paddd     %xmm1, %xmm12                                 #502.3
-        pxor      %xmm0, %xmm7                                  #502.3
-        movdqa    %xmm3, %xmm9                                  #503.3
-        paddd     %xmm7, %xmm12                                 #502.3
-        movdqa    %xmm10, %xmm7                                 #502.3
-        paddd     80(%rsp), %xmm12                              #502.3
-        pslld     $3, %xmm7                                     #502.3
-        psrld     $29, %xmm10                                   #502.3
-        movdqa    %xmm12, %xmm8                                 #502.3
-        por       %xmm10, %xmm7                                 #502.3
-        pxor      %xmm4, %xmm9                                  #503.3
-        pslld     $3, %xmm8                                     #502.3
-        psrld     $29, %xmm12                                   #502.3
-        paddd     %xmm1, %xmm6                                  #503.3
-        pxor      %xmm7, %xmm9                                  #503.3
-        por       %xmm12, %xmm8                                 #502.3
-        paddd     %xmm9, %xmm6                                  #503.3
-                                # LOE rbx rbp rsi r12 r13 r14 r15 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8
+        psrld     $17, %xmm15                                   #501.3
+        movdqa    %xmm8, %xmm4                                  #502.3
+        por       %xmm15, %xmm0                                 #501.3
+        movdqa    %xmm10, %xmm13                                #501.3
+        pxor      %xmm1, %xmm4                                  #502.3
+        pslld     $15, %xmm13                                   #501.3
+        psrld     $17, %xmm10                                   #501.3
+        paddd     %xmm3, %xmm6                                  #502.3
+        pxor      %xmm0, %xmm4                                  #502.3
+        movdqa    %xmm12, %xmm15                                #502.3
+        por       %xmm10, %xmm13                                #501.3
+        movdqa    %xmm9, %xmm10                                 #502.3
+        paddd     %xmm4, %xmm6                                  #502.3
+        pxor      %xmm14, %xmm15                                #502.3
+        pxor      %xmm2, %xmm10                                 #502.3
+        paddd     112(%rsp), %xmm6                              #502.3
+        paddd     %xmm3, %xmm7                                  #502.3
+        pxor      %xmm13, %xmm15                                #502.3
+        paddd     %xmm3, %xmm5                                  #502.3
+        pxor      %xmm11, %xmm10                                #502.3
+        paddd     %xmm15, %xmm7                                 #502.3
+        movdqa    %xmm6, %xmm4                                  #502.3
+        paddd     %xmm10, %xmm5                                 #502.3
+        paddd     128(%rsp), %xmm7                              #502.3
+        pslld     $3, %xmm4                                     #502.3
+        psrld     $29, %xmm6                                    #502.3
+        paddd     %xmm3, %xmm2                                  #503.3
+        paddd     48(%rsp), %xmm5                               #502.3
+        por       %xmm6, %xmm4                                  #502.3
+        movdqa    %xmm7, %xmm6                                  #502.3
+        movdqa    %xmm5, %xmm10                                 #502.3
+        pslld     $3, %xmm6                                     #502.3
+        psrld     $29, %xmm7                                    #502.3
+        pslld     $3, %xmm10                                    #502.3
+        psrld     $29, %xmm5                                    #502.3
+        por       %xmm7, %xmm6                                  #502.3
+        movdqa    %xmm11, %xmm7                                 #503.3
+        por       %xmm5, %xmm10                                 #502.3
+        pxor      %xmm9, %xmm7                                  #503.3
+        pxor      %xmm10, %xmm7                                 #503.3
+        movdqa    %xmm0, %xmm5                                  #503.3
+        paddd     %xmm7, %xmm2                                  #503.3
+        pxor      %xmm8, %xmm5                                  #503.3
+        paddd     320(%rsp), %xmm2                              #503.3
+        paddd     %xmm3, %xmm1                                  #503.3
+        pxor      %xmm4, %xmm5                                  #503.3
+                                # LOE rbx rbp rsi r12 r13 r14 r15 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14
 ..B8.7:                         # Preds ..B8.8
-        movdqa    %xmm0, %xmm13                                 #503.3
-        paddd     %xmm1, %xmm5                                  #503.3
-        pxor      %xmm2, %xmm13                                 #503.3
-        movdqa    %xmm7, %xmm14                                 #504.3
-        paddd     144(%rsp), %xmm6                              #503.3
-        pxor      %xmm8, %xmm13                                 #503.3
-        paddd     %xmm13, %xmm5                                 #503.3
-        movdqa    %xmm6, %xmm9                                  #503.3
-        paddd     128(%rsp), %xmm5                              #503.3
-        pslld     $9, %xmm9                                     #503.3
-        psrld     $23, %xmm6                                    #503.3
-        pxor      %xmm3, %xmm14                                 #504.3
-        por       %xmm6, %xmm9                                  #503.3
-        movdqa    %xmm5, %xmm6                                  #503.3
-        pslld     $9, %xmm6                                     #503.3
-        psrld     $23, %xmm5                                    #503.3
-        paddd     %xmm1, %xmm4                                  #504.3
-        pxor      %xmm9, %xmm14                                 #504.3
-        movdqa    %xmm8, %xmm15                                 #504.3
-        por       %xmm5, %xmm6                                  #503.3
-        paddd     %xmm14, %xmm4                                 #504.3
+        movdqa    %xmm13, %xmm7                                 #503.3
+        paddd     %xmm5, %xmm1                                  #503.3
+        pxor      %xmm12, %xmm7                                 #503.3
+        movdqa    %xmm2, %xmm5                                  #503.3
+        paddd     304(%rsp), %xmm1                              #503.3
+        paddd     %xmm3, %xmm14                                 #503.3
+        pxor      %xmm6, %xmm7                                  #503.3
+        pslld     $9, %xmm5                                     #503.3
+        psrld     $23, %xmm2                                    #503.3
+        paddd     %xmm7, %xmm14                                 #503.3
+        por       %xmm2, %xmm5                                  #503.3
+        movdqa    %xmm1, %xmm2                                  #503.3
+        paddd     288(%rsp), %xmm14                             #503.3
+        pslld     $9, %xmm2                                     #503.3
+        psrld     $23, %xmm1                                    #503.3
+        paddd     %xmm3, %xmm9                                  #504.3
+        por       %xmm1, %xmm2                                  #503.3
+        movdqa    %xmm14, %xmm1                                 #503.3
+        pslld     $9, %xmm1                                     #503.3
+        psrld     $23, %xmm14                                   #503.3
+        por       %xmm14, %xmm1                                 #503.3
+        movdqa    %xmm10, %xmm14                                #504.3
+        pxor      %xmm11, %xmm14                                #504.3
+        movdqa    %xmm4, %xmm15                                 #504.3
+        pxor      %xmm5, %xmm14                                 #504.3
         pxor      %xmm0, %xmm15                                 #504.3
-        paddd     48(%rsp), %xmm4                               #504.3
-        paddd     %xmm1, %xmm2                                  #504.3
-        pxor      %xmm6, %xmm15                                 #504.3
-        movdqa    %xmm4, %xmm5                                  #504.3
-        paddd     %xmm15, %xmm2                                 #504.3
-        pslld     $11, %xmm5                                    #504.3
-        paddd     32(%rsp), %xmm2                               #504.3
-        psrld     $21, %xmm4                                    #504.3
-        por       %xmm4, %xmm5                                  #504.3
-        movdqa    %xmm2, %xmm4                                  #504.3
-        pslld     $11, %xmm4                                    #504.3
-        psrld     $21, %xmm2                                    #504.3
-        movdqa    %xmm8, %xmm10                                 #505.3
-        por       %xmm2, %xmm4                                  #504.3
-        pxor      %xmm6, %xmm10                                 #505.3
-        movdqa    %xmm7, %xmm12                                 #505.3
-        paddd     %xmm1, %xmm0                                  #505.3
-        pxor      %xmm4, %xmm10                                 #505.3
-        pxor      %xmm9, %xmm12                                 #505.3
-        paddd     %xmm10, %xmm0                                 #505.3
-        paddd     320(%rsp), %xmm0                              #505.3
-        paddd     %xmm1, %xmm3                                  #505.3
+        paddd     %xmm14, %xmm9                                 #504.3
+        paddd     %xmm3, %xmm8                                  #504.3
+        paddd     144(%rsp), %xmm9                              #504.3
+        pxor      %xmm2, %xmm15                                 #504.3
+        movdqa    %xmm6, %xmm7                                  #504.3
+        paddd     %xmm15, %xmm8                                 #504.3
+        pxor      %xmm13, %xmm7                                 #504.3
+        movdqa    %xmm9, %xmm14                                 #504.3
+        paddd     160(%rsp), %xmm8                              #504.3
+        paddd     %xmm3, %xmm12                                 #504.3
+        pxor      %xmm1, %xmm7                                  #504.3
+        pslld     $11, %xmm14                                   #504.3
+        psrld     $21, %xmm9                                    #504.3
+        paddd     %xmm7, %xmm12                                 #504.3
+        por       %xmm9, %xmm14                                 #504.3
+        movdqa    %xmm8, %xmm9                                  #504.3
+        paddd     176(%rsp), %xmm12                             #504.3
+        pslld     $11, %xmm9                                    #504.3
+        psrld     $21, %xmm8                                    #504.3
+        paddd     %xmm3, %xmm11                                 #505.3
+        por       %xmm8, %xmm9                                  #504.3
+        movdqa    %xmm12, %xmm8                                 #504.3
+        pslld     $11, %xmm8                                    #504.3
+        psrld     $21, %xmm12                                   #504.3
+        por       %xmm12, %xmm8                                 #504.3
+        movdqa    %xmm10, %xmm12                                #505.3
         pxor      %xmm5, %xmm12                                 #505.3
-        movdqa    %xmm4, %xmm11                                 #506.3
-        paddd     %xmm12, %xmm3                                 #505.3
-        movdqa    %xmm0, %xmm12                                 #505.3
-        paddd     304(%rsp), %xmm3                              #505.3
+        movdqa    %xmm4, %xmm7                                  #505.3
+        pxor      %xmm14, %xmm12                                #505.3
+        pxor      %xmm2, %xmm7                                  #505.3
+        paddd     %xmm12, %xmm11                                #505.3
+        paddd     %xmm3, %xmm0                                  #505.3
+        paddd     464(%rsp), %xmm11                             #505.3
+        pxor      %xmm9, %xmm7                                  #505.3
+        movdqa    %xmm6, %xmm15                                 #505.3
+        paddd     %xmm7, %xmm0                                  #505.3
+        pxor      %xmm1, %xmm15                                 #505.3
+        movdqa    %xmm11, %xmm12                                #505.3
+        paddd     480(%rsp), %xmm0                              #505.3
+        paddd     %xmm3, %xmm13                                 #505.3
+        pxor      %xmm8, %xmm15                                 #505.3
         pslld     $15, %xmm12                                   #505.3
+        psrld     $17, %xmm11                                   #505.3
+        paddd     %xmm15, %xmm13                                #505.3
+        por       %xmm11, %xmm12                                #505.3
+        movdqa    %xmm0, %xmm11                                 #505.3
+        paddd     400(%rsp), %xmm13                             #505.3
+        pslld     $15, %xmm11                                   #505.3
         psrld     $17, %xmm0                                    #505.3
-        movdqa    %xmm3, %xmm2                                  #505.3
-        por       %xmm0, %xmm12                                 #505.3
-        pxor      %xmm6, %xmm11                                 #506.3
-        pslld     $15, %xmm2                                    #505.3
-        psrld     $17, %xmm3                                    #505.3
-        movdqa    %xmm5, %xmm0                                  #506.3
-        paddd     %xmm1, %xmm8                                  #506.3
-        pxor      %xmm12, %xmm11                                #506.3
-        por       %xmm3, %xmm2                                  #505.3
-        pxor      %xmm9, %xmm0                                  #506.3
-        paddd     %xmm11, %xmm8                                 #506.3
-        paddd     (%rsp), %xmm8                                 #506.3
-        paddd     %xmm1, %xmm7                                  #506.3
-        pxor      %xmm2, %xmm0                                  #506.3
-        movdqa    %xmm8, %xmm10                                 #506.3
-        paddd     %xmm0, %xmm7                                  #506.3
+        movdqa    %xmm8, %xmm15                                 #506.3
+        por       %xmm0, %xmm11                                 #505.3
+        movdqa    %xmm13, %xmm0                                 #505.3
+        pslld     $15, %xmm0                                    #505.3
+        psrld     $17, %xmm13                                   #505.3
+        por       %xmm13, %xmm0                                 #505.3
+        movdqa    %xmm14, %xmm13                                #506.3
+        pxor      %xmm5, %xmm13                                 #506.3
+        paddd     %xmm3, %xmm10                                 #506.3
+        pxor      %xmm12, %xmm13                                #506.3
+        movdqa    %xmm9, %xmm7                                  #506.3
+        pxor      %xmm1, %xmm15                                 #506.3
+        paddd     %xmm13, %xmm10                                #506.3
+        pxor      %xmm2, %xmm7                                  #506.3
+        paddd     %xmm3, %xmm6                                  #506.3
+        pxor      %xmm0, %xmm15                                 #506.3
+        paddd     %xmm3, %xmm4                                  #506.3
+        paddd     (%rsp), %xmm10                                #506.3
+        pxor      %xmm11, %xmm7                                 #506.3
+        paddd     %xmm15, %xmm6                                 #506.3
+        paddd     %xmm7, %xmm4                                  #506.3
+        paddd     32(%rsp), %xmm6                               #506.3
+        movdqa    %xmm10, %xmm13                                #506.3
+        paddd     16(%rsp), %xmm4                               #506.3
+        pslld     $3, %xmm13                                    #506.3
+        psrld     $29, %xmm10                                   #506.3
+        movdqa    %xmm6, %xmm7                                  #506.3
+        por       %xmm10, %xmm13                                #506.3
+        movdqa    %xmm4, %xmm10                                 #506.3
+        pslld     $3, %xmm7                                     #506.3
+        psrld     $29, %xmm6                                    #506.3
         pslld     $3, %xmm10                                    #506.3
-        paddd     16(%rsp), %xmm7                               #506.3
-        psrld     $29, %xmm8                                    #506.3
-        movdqa    %xmm12, %xmm3                                 #507.3
-        movdqa    %xmm7, %xmm11                                 #506.3
-        por       %xmm8, %xmm10                                 #506.3
-        pxor      %xmm4, %xmm3                                  #507.3
-        pslld     $3, %xmm11                                    #506.3
-        psrld     $29, %xmm7                                    #506.3
-        movdqa    %xmm2, %xmm8                                  #507.3
-        paddd     %xmm1, %xmm6                                  #507.3
-        pxor      %xmm10, %xmm3                                 #507.3
-        por       %xmm7, %xmm11                                 #506.3
-        pxor      %xmm5, %xmm8                                  #507.3
-        paddd     %xmm3, %xmm6                                  #507.3
-        paddd     224(%rsp), %xmm6                              #507.3
-        paddd     %xmm1, %xmm9                                  #507.3
-        pxor      %xmm11, %xmm8                                 #507.3
-        movdqa    %xmm6, %xmm0                                  #507.3
-        paddd     %xmm8, %xmm9                                  #507.3
-        pslld     $9, %xmm0                                     #507.3
-        paddd     192(%rsp), %xmm9                              #507.3
-        psrld     $23, %xmm6                                    #507.3
-        movdqa    %xmm9, %xmm3                                  #507.3
-        por       %xmm6, %xmm0                                  #507.3
-        movdqa    %xmm10, %xmm6                                 #508.3
-        pslld     $9, %xmm3                                     #507.3
-        psrld     $23, %xmm9                                    #507.3
-        movdqa    %xmm11, %xmm7                                 #508.3
-        pxor      %xmm12, %xmm6                                 #508.3
-        por       %xmm9, %xmm3                                  #507.3
-        pxor      %xmm2, %xmm7                                  #508.3
-        paddd     %xmm1, %xmm4                                  #508.3
-        pxor      %xmm0, %xmm6                                  #508.3
-        paddd     %xmm1, %xmm5                                  #508.3
-        pxor      %xmm3, %xmm7                                  #508.3
-        paddd     %xmm6, %xmm4                                  #508.3
-        paddd     96(%rsp), %xmm4                               #508.3
-        paddd     %xmm7, %xmm5                                  #508.3
-        paddd     64(%rsp), %xmm5                               #508.3
-        movdqa    %xmm4, %xmm8                                  #508.3
-        movdqa    %xmm5, %xmm7                                  #508.3
-        pslld     $11, %xmm8                                    #508.3
-        psrld     $21, %xmm4                                    #508.3
-        pslld     $11, %xmm7                                    #508.3
-        psrld     $21, %xmm5                                    #508.3
-        por       %xmm4, %xmm8                                  #508.3
-        paddd     %xmm1, %xmm2                                  #509.3
-        movdqa    %xmm3, %xmm4                                  #509.3
-        paddd     %xmm1, %xmm12                                 #509.3
-        movdqa    %xmm0, %xmm1                                  #509.3
-        por       %xmm5, %xmm7                                  #508.3
-        pxor      %xmm11, %xmm4                                 #509.3
-        pxor      %xmm10, %xmm1                                 #509.3
-        pxor      %xmm7, %xmm4                                  #509.3
-        pxor      %xmm8, %xmm1                                  #509.3
-        paddd     %xmm4, %xmm2                                  #509.3
-        paddd     %xmm1, %xmm12                                 #509.3
-        movdqa    .L_2il0floatpacket.471(%rip), %xmm6           #516.10
-        paddd     368(%rsp), %xmm2                              #509.3
-        paddd     %xmm6, %xmm3                                  #516.10
-        paddd     416(%rsp), %xmm12                             #509.3
-        movdqa    %xmm2, %xmm4                                  #509.3
-        movdqa    %xmm3, 48(%rsi)                               #422.6
+        psrld     $29, %xmm4                                    #506.3
+        por       %xmm6, %xmm7                                  #506.3
+        movdqa    %xmm12, %xmm6                                 #507.3
+        por       %xmm4, %xmm10                                 #506.3
+        pxor      %xmm14, %xmm6                                 #507.3
+        movdqa    %xmm11, %xmm4                                 #507.3
+        paddd     %xmm3, %xmm5                                  #507.3
+        pxor      %xmm13, %xmm6                                 #507.3
+        pxor      %xmm9, %xmm4                                  #507.3
+        paddd     %xmm6, %xmm5                                  #507.3
+        paddd     %xmm3, %xmm2                                  #507.3
+        pxor      %xmm10, %xmm4                                 #507.3
+        movdqa    %xmm0, %xmm6                                  #507.3
+        paddd     192(%rsp), %xmm5                              #507.3
+        paddd     %xmm4, %xmm2                                  #507.3
+        pxor      %xmm8, %xmm6                                  #507.3
+        paddd     %xmm3, %xmm1                                  #507.3
+        paddd     256(%rsp), %xmm2                              #507.3
+        pxor      %xmm7, %xmm6                                  #507.3
+        movdqa    %xmm5, %xmm4                                  #507.3
+        paddd     %xmm6, %xmm1                                  #507.3
+        pslld     $9, %xmm4                                     #507.3
+        psrld     $23, %xmm5                                    #507.3
+        movdqa    %xmm2, %xmm6                                  #507.3
+        por       %xmm5, %xmm4                                  #507.3
+        paddd     272(%rsp), %xmm1                              #507.3
+        pslld     $9, %xmm6                                     #507.3
+        psrld     $23, %xmm2                                    #507.3
+        movdqa    %xmm10, %xmm5                                 #508.3
+        por       %xmm2, %xmm6                                  #507.3
+        movdqa    %xmm1, %xmm2                                  #507.3
+        pxor      %xmm11, %xmm5                                 #508.3
+        pslld     $9, %xmm2                                     #507.3
+        psrld     $23, %xmm1                                    #507.3
+        paddd     %xmm3, %xmm9                                  #508.3
+        pxor      %xmm6, %xmm5                                  #508.3
+        movdqa    %xmm7, %xmm15                                 #508.3
+        por       %xmm1, %xmm2                                  #507.3
+        movdqa    %xmm13, %xmm1                                 #508.3
+        paddd     %xmm5, %xmm9                                  #508.3
+        pxor      %xmm0, %xmm15                                 #508.3
+        paddd     80(%rsp), %xmm9                               #508.3
+        pxor      %xmm12, %xmm1                                 #508.3
+        paddd     %xmm3, %xmm8                                  #508.3
+        pxor      %xmm2, %xmm15                                 #508.3
+        paddd     %xmm3, %xmm14                                 #508.3
+        pxor      %xmm4, %xmm1                                  #508.3
+        paddd     %xmm15, %xmm8                                 #508.3
+        movdqa    %xmm9, %xmm15                                 #508.3
+        paddd     64(%rsp), %xmm8                               #508.3
+        paddd     %xmm1, %xmm14                                 #508.3
+        pslld     $11, %xmm15                                   #508.3
+        psrld     $21, %xmm9                                    #508.3
+        paddd     96(%rsp), %xmm14                              #508.3
+        por       %xmm9, %xmm15                                 #508.3
+        movdqa    %xmm8, %xmm9                                  #508.3
+        movdqa    %xmm14, %xmm1                                 #508.3
+        pslld     $11, %xmm9                                    #508.3
+        psrld     $21, %xmm8                                    #508.3
+        pslld     $11, %xmm1                                    #508.3
+        psrld     $21, %xmm14                                   #508.3
+        por       %xmm8, %xmm9                                  #508.3
+        paddd     %xmm3, %xmm12                                 #509.3
+        movdqa    %xmm4, %xmm8                                  #509.3
+        paddd     %xmm3, %xmm11                                 #509.3
+        movdqa    %xmm6, %xmm5                                  #509.3
+        paddd     %xmm3, %xmm0                                  #509.3
+        movdqa    %xmm2, %xmm3                                  #509.3
+        por       %xmm14, %xmm1                                 #508.3
+        pxor      %xmm13, %xmm8                                 #509.3
+        pxor      %xmm10, %xmm5                                 #509.3
+        pxor      %xmm7, %xmm3                                  #509.3
+        pxor      %xmm1, %xmm8                                  #509.3
+        pxor      %xmm15, %xmm5                                 #509.3
+        pxor      %xmm9, %xmm3                                  #509.3
+        paddd     %xmm8, %xmm12                                 #509.3
+        paddd     %xmm5, %xmm11                                 #509.3
+        paddd     %xmm3, %xmm0                                  #509.3
+        movdqa    .L_2il0floatpacket.474(%rip), %xmm8           #513.10
+        movdqa    .L_2il0floatpacket.477(%rip), %xmm5           #516.10
+        paddd     %xmm8, %xmm10                                 #513.10
+        paddd     384(%rsp), %xmm12                             #509.3
+        paddd     %xmm5, %xmm4                                  #516.10
+        paddd     688(%rsp), %xmm11                             #509.3
         movdqa    %xmm12, %xmm3                                 #509.3
-        pslld     $15, %xmm4                                    #509.3
-        psrld     $17, %xmm2                                    #509.3
+        paddd     704(%rsp), %xmm0                              #509.3
         pslld     $15, %xmm3                                    #509.3
+        movdqa    %xmm4, 48(%rsi)                               #422.6
+        movdqa    %xmm11, %xmm4                                 #509.3
+        movdqa    %xmm10, 64(%rsi)                              #422.6
+        movdqa    %xmm0, %xmm10                                 #509.3
         psrld     $17, %xmm12                                   #509.3
-        movdqa    .L_2il0floatpacket.468(%rip), %xmm1           #513.10
-        por       %xmm2, %xmm4                                  #509.3
-        movdqa    .L_2il0floatpacket.469(%rip), %xmm2           #514.10
+        pslld     $15, %xmm4                                    #509.3
+        psrld     $17, %xmm11                                   #509.3
+        pslld     $15, %xmm10                                   #509.3
+        psrld     $17, %xmm0                                    #509.3
         por       %xmm12, %xmm3                                 #509.3
-        movdqa    .L_2il0floatpacket.470(%rip), %xmm5           #515.10
-        paddd     %xmm1, %xmm11                                 #513.10
-        paddd     %xmm2, %xmm4                                  #514.10
-        paddd     %xmm5, %xmm7                                  #515.10
-        paddd     %xmm1, %xmm10                                 #513.10
-        paddd     %xmm2, %xmm3                                  #514.10
-        paddd     %xmm5, %xmm8                                  #515.10
-        paddd     %xmm6, %xmm0                                  #516.10
-        movdqa    %xmm11, (%rsi)                                #422.6
-        movdqa    %xmm4, 16(%rsi)                               #422.6
-        movdqa    %xmm7, 32(%rsi)                               #422.6
-        movdqa    %xmm10, 64(%rsi)                              #422.6
-        movdqa    %xmm3, 80(%rsi)                               #422.6
-        movdqa    %xmm8, 96(%rsi)                               #422.6
-        movdqa    %xmm0, 112(%rsi)                              #422.6
-        addq      $472, %rsp                                    #522.1
+        movdqa    .L_2il0floatpacket.475(%rip), %xmm12          #514.10
+        por       %xmm11, %xmm4                                 #509.3
+        movdqa    .L_2il0floatpacket.476(%rip), %xmm14          #515.10
+        por       %xmm0, %xmm10                                 #509.3
+        paddd     %xmm8, %xmm13                                 #513.10
+        paddd     %xmm12, %xmm3                                 #514.10
+        paddd     %xmm14, %xmm1                                 #515.10
+        paddd     %xmm12, %xmm4                                 #514.10
+        paddd     %xmm14, %xmm15                                #515.10
+        paddd     %xmm5, %xmm6                                  #516.10
+        paddd     %xmm8, %xmm7                                  #513.10
+        paddd     %xmm12, %xmm10                                #514.10
+        paddd     %xmm14, %xmm9                                 #515.10
+        paddd     %xmm5, %xmm2                                  #516.10
+        movdqa    %xmm13, (%rsi)                                #422.6
+        movdqa    %xmm3, 16(%rsi)                               #422.6
+        movdqa    %xmm1, 32(%rsi)                               #422.6
+        movdqa    %xmm4, 80(%rsi)                               #422.6
+        movdqa    %xmm15, 96(%rsi)                              #422.6
+        movdqa    %xmm6, 112(%rsi)                              #422.6
+        movdqa    %xmm7, 128(%rsi)                              #422.6
+        movdqa    %xmm10, 144(%rsi)                             #422.6
+        movdqa    %xmm9, 160(%rsi)                              #422.6
+        movdqa    %xmm2, 176(%rsi)                              #422.6
+        addq      $776, %rsp                                    #522.1
 ..___tag_value_SSEmd4body.142:                                  #
         ret                                                     #522.1
         .align    16,0x90
@@ -6402,7 +6999,7 @@ SSESHA1body:
         movdqa    %xmm10, %xmm14                                #602.2
         movdqa    %xmm10, %xmm12                                #602.2
         paddd     %xmm8, %xmm11                                 #602.2
-        movdqa    .L_2il0floatpacket.497(%rip), %xmm4           #601.8
+        movdqa    .L_2il0floatpacket.503(%rip), %xmm4           #601.8
         pxor      %xmm3, %xmm13                                 #602.2
         pslld     $5, %xmm14                                    #602.2
         psrld     $27, %xmm12                                   #602.2
@@ -7082,7 +7679,7 @@ SSESHA1body:
         paddd     %xmm5, %xmm2                                  #624.2
         movdqa    %xmm11, %xmm5                                 #624.2
         pxor      %xmm9, %xmm8                                  #624.2
-        movdqa    .L_2il0floatpacket.498(%rip), %xmm0           #623.8
+        movdqa    .L_2il0floatpacket.504(%rip), %xmm0           #623.8
         movdqa    %xmm15, %xmm10                                #624.2
         movdqa    %xmm15, %xmm1                                 #624.2
         pslld     $30, %xmm5                                    #624.2
@@ -7745,7 +8342,7 @@ SSESHA1body:
         psrld     $2, %xmm1                                     #646.2
         pslld     $30, %xmm11                                   #646.2
         psrld     $2, %xmm3                                     #646.2
-        movdqa    .L_2il0floatpacket.499(%rip), %xmm13          #645.8
+        movdqa    .L_2il0floatpacket.505(%rip), %xmm13          #645.8
         por       %xmm1, %xmm12                                 #646.2
         por       %xmm3, %xmm11                                 #646.2
         movdqa    %xmm4, %xmm3                                  #647.2
@@ -8499,7 +9096,7 @@ SSESHA1body:
         psrld     $27, %xmm15                                   #668.2
         por       %xmm8, %xmm7                                  #668.2
         paddd     %xmm12, %xmm2                                 #668.2
-        movdqa    .L_2il0floatpacket.500(%rip), %xmm9           #667.8
+        movdqa    .L_2il0floatpacket.506(%rip), %xmm9           #667.8
         paddd     %xmm14, %xmm0                                 #668.2
         por       %xmm15, %xmm1                                 #668.2
         movdqa    %xmm7, %xmm8                                  #669.2
@@ -9174,14 +9771,14 @@ SSESHA1body:
         ret                                                     #733.1
                                 # LOE
 ..B9.11:                        # Preds ..B9.15                 # Infreq
-        movdqa    .L_2il0floatpacket.492(%rip), %xmm2           #693.11
-        movdqa    .L_2il0floatpacket.493(%rip), %xmm5           #694.11
+        movdqa    .L_2il0floatpacket.498(%rip), %xmm2           #693.11
+        movdqa    .L_2il0floatpacket.499(%rip), %xmm5           #694.11
         paddd     %xmm2, %xmm10                                 #693.11
-        movdqa    .L_2il0floatpacket.494(%rip), %xmm6           #695.11
+        movdqa    .L_2il0floatpacket.500(%rip), %xmm6           #695.11
         paddd     %xmm5, %xmm12                                 #694.11
-        movdqa    .L_2il0floatpacket.495(%rip), %xmm8           #696.11
+        movdqa    .L_2il0floatpacket.501(%rip), %xmm8           #696.11
         paddd     %xmm6, %xmm3                                  #695.11
-        movdqa    .L_2il0floatpacket.496(%rip), %xmm9           #697.11
+        movdqa    .L_2il0floatpacket.502(%rip), %xmm9           #697.11
         paddd     %xmm8, %xmm13                                 #696.11
         paddd     %xmm9, %xmm0                                  #697.11
         paddd     %xmm2, %xmm7                                  #693.11
@@ -9192,14 +9789,14 @@ SSESHA1body:
         jmp       ..B9.7        # Prob 100%                     #697.11
                                 # LOE rbx rbp rsi r12 r13 r14 r15 ecx xmm0 xmm1 xmm3 xmm4 xmm7 xmm10 xmm11 xmm12 xmm13 xmm14
 ..B9.12:                        # Preds ..B9.3                  # Infreq
-        movdqa    .L_2il0floatpacket.492(%rip), %xmm7           #582.11
-        movdqa    .L_2il0floatpacket.493(%rip), %xmm1           #583.11
+        movdqa    .L_2il0floatpacket.498(%rip), %xmm7           #582.11
+        movdqa    .L_2il0floatpacket.499(%rip), %xmm1           #583.11
         movdqa    %xmm7, %xmm10                                 #582.11
-        movdqa    .L_2il0floatpacket.494(%rip), %xmm6           #584.11
+        movdqa    .L_2il0floatpacket.500(%rip), %xmm6           #584.11
         movdqa    %xmm1, %xmm5                                  #583.11
-        movdqa    .L_2il0floatpacket.495(%rip), %xmm2           #585.11
+        movdqa    .L_2il0floatpacket.501(%rip), %xmm2           #585.11
         movdqa    %xmm6, %xmm9                                  #584.11
-        movdqa    .L_2il0floatpacket.496(%rip), %xmm11          #586.11
+        movdqa    .L_2il0floatpacket.502(%rip), %xmm11          #586.11
         movdqa    %xmm2, %xmm3                                  #585.11
         movdqa    %xmm11, %xmm0                                 #586.11
         jmp       ..B9.5        # Prob 100%                     #586.11
@@ -9562,80 +10159,80 @@ debug:
 	.type	.L_2il0floatpacket.128,@object
 	.size	.L_2il0floatpacket.128,16
 	.align 16
-.L_2il0floatpacket.468:
+.L_2il0floatpacket.474:
 	.long	0x67452301,0x67452301,0x67452301,0x67452301
-	.type	.L_2il0floatpacket.468,@object
-	.size	.L_2il0floatpacket.468,16
+	.type	.L_2il0floatpacket.474,@object
+	.size	.L_2il0floatpacket.474,16
 	.align 16
-.L_2il0floatpacket.469:
+.L_2il0floatpacket.475:
 	.long	0xefcdab89,0xefcdab89,0xefcdab89,0xefcdab89
-	.type	.L_2il0floatpacket.469,@object
-	.size	.L_2il0floatpacket.469,16
+	.type	.L_2il0floatpacket.475,@object
+	.size	.L_2il0floatpacket.475,16
 	.align 16
-.L_2il0floatpacket.470:
+.L_2il0floatpacket.476:
 	.long	0x98badcfe,0x98badcfe,0x98badcfe,0x98badcfe
-	.type	.L_2il0floatpacket.470,@object
-	.size	.L_2il0floatpacket.470,16
+	.type	.L_2il0floatpacket.476,@object
+	.size	.L_2il0floatpacket.476,16
 	.align 16
-.L_2il0floatpacket.471:
+.L_2il0floatpacket.477:
 	.long	0x10325476,0x10325476,0x10325476,0x10325476
-	.type	.L_2il0floatpacket.471,@object
-	.size	.L_2il0floatpacket.471,16
+	.type	.L_2il0floatpacket.477,@object
+	.size	.L_2il0floatpacket.477,16
 	.align 16
-.L_2il0floatpacket.472:
+.L_2il0floatpacket.478:
 	.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
-	.type	.L_2il0floatpacket.472,@object
-	.size	.L_2il0floatpacket.472,16
+	.type	.L_2il0floatpacket.478,@object
+	.size	.L_2il0floatpacket.478,16
 	.align 16
-.L_2il0floatpacket.473:
+.L_2il0floatpacket.479:
 	.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-	.type	.L_2il0floatpacket.473,@object
-	.size	.L_2il0floatpacket.473,16
+	.type	.L_2il0floatpacket.479,@object
+	.size	.L_2il0floatpacket.479,16
 	.align 16
-.L_2il0floatpacket.492:
+.L_2il0floatpacket.498:
 	.long	0x67452301,0x67452301,0x67452301,0x67452301
-	.type	.L_2il0floatpacket.492,@object
-	.size	.L_2il0floatpacket.492,16
+	.type	.L_2il0floatpacket.498,@object
+	.size	.L_2il0floatpacket.498,16
 	.align 16
-.L_2il0floatpacket.493:
+.L_2il0floatpacket.499:
 	.long	0xefcdab89,0xefcdab89,0xefcdab89,0xefcdab89
-	.type	.L_2il0floatpacket.493,@object
-	.size	.L_2il0floatpacket.493,16
+	.type	.L_2il0floatpacket.499,@object
+	.size	.L_2il0floatpacket.499,16
 	.align 16
-.L_2il0floatpacket.494:
+.L_2il0floatpacket.500:
 	.long	0x98badcfe,0x98badcfe,0x98badcfe,0x98badcfe
-	.type	.L_2il0floatpacket.494,@object
-	.size	.L_2il0floatpacket.494,16
+	.type	.L_2il0floatpacket.500,@object
+	.size	.L_2il0floatpacket.500,16
 	.align 16
-.L_2il0floatpacket.495:
+.L_2il0floatpacket.501:
 	.long	0x10325476,0x10325476,0x10325476,0x10325476
-	.type	.L_2il0floatpacket.495,@object
-	.size	.L_2il0floatpacket.495,16
+	.type	.L_2il0floatpacket.501,@object
+	.size	.L_2il0floatpacket.501,16
 	.align 16
-.L_2il0floatpacket.496:
+.L_2il0floatpacket.502:
 	.long	0xc3d2e1f0,0xc3d2e1f0,0xc3d2e1f0,0xc3d2e1f0
-	.type	.L_2il0floatpacket.496,@object
-	.size	.L_2il0floatpacket.496,16
+	.type	.L_2il0floatpacket.502,@object
+	.size	.L_2il0floatpacket.502,16
 	.align 16
-.L_2il0floatpacket.497:
+.L_2il0floatpacket.503:
 	.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999
-	.type	.L_2il0floatpacket.497,@object
-	.size	.L_2il0floatpacket.497,16
+	.type	.L_2il0floatpacket.503,@object
+	.size	.L_2il0floatpacket.503,16
 	.align 16
-.L_2il0floatpacket.498:
+.L_2il0floatpacket.504:
 	.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-	.type	.L_2il0floatpacket.498,@object
-	.size	.L_2il0floatpacket.498,16
+	.type	.L_2il0floatpacket.504,@object
+	.size	.L_2il0floatpacket.504,16
 	.align 16
-.L_2il0floatpacket.499:
+.L_2il0floatpacket.505:
 	.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-	.type	.L_2il0floatpacket.499,@object
-	.size	.L_2il0floatpacket.499,16
+	.type	.L_2il0floatpacket.505,@object
+	.size	.L_2il0floatpacket.505,16
 	.align 16
-.L_2il0floatpacket.500:
+.L_2il0floatpacket.506:
 	.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-	.type	.L_2il0floatpacket.500,@object
-	.size	.L_2il0floatpacket.500,16
+	.type	.L_2il0floatpacket.506,@object
+	.size	.L_2il0floatpacket.506,16
 	.align 4
 .L_2__STRING.3:
 	.byte	0
@@ -9912,7 +10509,7 @@ debug:
 	.8byte ..___tag_value_SSEmd4body.143-..___tag_value_SSEmd4body.139
 	.byte 0x04
 	.4byte ..___tag_value_SSEmd4body.141-..___tag_value_SSEmd4body.139
-	.4byte 0x03e0070c
+	.4byte 0x0690070c
 	.byte 0x04
 	.4byte ..___tag_value_SSEmd4body.142-..___tag_value_SSEmd4body.141
 	.8byte 0x000000000008070c
diff --git a/src/x86-64.h b/src/x86-64.h
index 98d4f0c..e56fd6f 100644
--- a/src/x86-64.h
+++ b/src/x86-64.h
@@ -149,7 +149,7 @@
 #define MD5_N_STR			"12x"
 #endif
 
-#ifdef __GNUC__
+#if !defined(USING_ICC_S_FILE) && defined(__GNUC__) && !defined(__INTEL_COMPILER)
 #define MD4_SSE_PARA		2
 #define MD4_N_STR			"8x"
 #else
-- 
1.7.5.4

