aboutsummaryrefslogtreecommitdiff
path: root/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm')
-rw-r--r--deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm3624
1 files changed, 2457 insertions, 1167 deletions
diff --git a/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm b/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
index 9323f2b26a..9589f7fa08 100644
--- a/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
+++ b/deps/openssl/asm/x64-win32-masm/sha/sha1-x86_64.asm
@@ -1,5 +1,7 @@
OPTION DOTNAME
.text$ SEGMENT ALIGN(64) 'CODE'
+EXTERN OPENSSL_ia32cap_P:NEAR
+
PUBLIC sha1_block_data_order
ALIGN 16
@@ -13,9 +15,18 @@ $L$SEH_begin_sha1_block_data_order::
mov rdx,r8
+ mov r9d,DWORD PTR[((OPENSSL_ia32cap_P+0))]
+ mov r8d,DWORD PTR[((OPENSSL_ia32cap_P+4))]
+ test r8d,512
+ jz $L$ialu
+ jmp _ssse3_shortcut
+
+ALIGN 16
+$L$ialu::
push rbx
push rbp
push r12
+ push r13
mov r11,rsp
mov r8,rdi
sub rsp,72
@@ -25,1278 +36,2499 @@ $L$SEH_begin_sha1_block_data_order::
mov QWORD PTR[64+rsp],r11
$L$prologue::
- mov edx,DWORD PTR[r8]
- mov esi,DWORD PTR[4+r8]
- mov edi,DWORD PTR[8+r8]
- mov ebp,DWORD PTR[12+r8]
- mov r11d,DWORD PTR[16+r8]
-ALIGN 4
+ mov esi,DWORD PTR[r8]
+ mov edi,DWORD PTR[4+r8]
+ mov r11d,DWORD PTR[8+r8]
+ mov r12d,DWORD PTR[12+r8]
+ mov r13d,DWORD PTR[16+r8]
+ jmp $L$loop
+
+ALIGN 16
$L$loop::
- mov eax,DWORD PTR[r9]
- bswap eax
- mov DWORD PTR[rsp],eax
- lea r12d,DWORD PTR[05a827999h+r11*1+rax]
- mov ebx,edi
- mov eax,DWORD PTR[4+r9]
- mov r11d,edx
- xor ebx,ebp
- bswap eax
- rol r11d,5
- and ebx,esi
- mov DWORD PTR[4+rsp],eax
- add r12d,r11d
- xor ebx,ebp
+ mov edx,DWORD PTR[r9]
+ bswap edx
+ mov DWORD PTR[rsp],edx
+ mov eax,r11d
+ mov ebp,DWORD PTR[4+r9]
+ mov ecx,esi
+ xor eax,r12d
+ bswap ebp
+ rol ecx,5
+ lea r13d,DWORD PTR[1518500249+r13*1+rdx]
+ and eax,edi
+ mov DWORD PTR[4+rsp],ebp
+ add r13d,ecx
+ xor eax,r12d
+ rol edi,30
+ add r13d,eax
+ mov eax,edi
+ mov edx,DWORD PTR[8+r9]
+ mov ecx,r13d
+ xor eax,r11d
+ bswap edx
+ rol ecx,5
+ lea r12d,DWORD PTR[1518500249+r12*1+rbp]
+ and eax,esi
+ mov DWORD PTR[8+rsp],edx
+ add r12d,ecx
+ xor eax,r11d
rol esi,30
- add r12d,ebx
- lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
- mov ebx,esi
- mov eax,DWORD PTR[8+r9]
- mov ebp,r12d
- xor ebx,edi
- bswap eax
- rol ebp,5
- and ebx,edx
- mov DWORD PTR[8+rsp],eax
- add r11d,ebp
- xor ebx,edi
- rol edx,30
- add r11d,ebx
- lea ebp,DWORD PTR[05a827999h+rdi*1+rax]
- mov ebx,edx
- mov eax,DWORD PTR[12+r9]
- mov edi,r11d
- xor ebx,esi
- bswap eax
- rol edi,5
- and ebx,r12d
- mov DWORD PTR[12+rsp],eax
- add ebp,edi
- xor ebx,esi
+ add r12d,eax
+ mov eax,esi
+ mov ebp,DWORD PTR[12+r9]
+ mov ecx,r12d
+ xor eax,edi
+ bswap ebp
+ rol ecx,5
+ lea r11d,DWORD PTR[1518500249+r11*1+rdx]
+ and eax,r13d
+ mov DWORD PTR[12+rsp],ebp
+ add r11d,ecx
+ xor eax,edi
+ rol r13d,30
+ add r11d,eax
+ mov eax,r13d
+ mov edx,DWORD PTR[16+r9]
+ mov ecx,r11d
+ xor eax,esi
+ bswap edx
+ rol ecx,5
+ lea edi,DWORD PTR[1518500249+rdi*1+rbp]
+ and eax,r12d
+ mov DWORD PTR[16+rsp],edx
+ add edi,ecx
+ xor eax,esi
rol r12d,30
- add ebp,ebx
- lea edi,DWORD PTR[05a827999h+rsi*1+rax]
- mov ebx,r12d
- mov eax,DWORD PTR[16+r9]
- mov esi,ebp
- xor ebx,edx
- bswap eax
- rol esi,5
- and ebx,r11d
- mov DWORD PTR[16+rsp],eax
- add edi,esi
- xor ebx,edx
+ add edi,eax
+ mov eax,r12d
+ mov ebp,DWORD PTR[20+r9]
+ mov ecx,edi
+ xor eax,r13d
+ bswap ebp
+ rol ecx,5
+ lea esi,DWORD PTR[1518500249+rsi*1+rdx]
+ and eax,r11d
+ mov DWORD PTR[20+rsp],ebp
+ add esi,ecx
+ xor eax,r13d
rol r11d,30
- add edi,ebx
- lea esi,DWORD PTR[05a827999h+rdx*1+rax]
+ add esi,eax
+ mov eax,r11d
+ mov edx,DWORD PTR[24+r9]
+ mov ecx,esi
+ xor eax,r12d
+ bswap edx
+ rol ecx,5
+ lea r13d,DWORD PTR[1518500249+r13*1+rbp]
+ and eax,edi
+ mov DWORD PTR[24+rsp],edx
+ add r13d,ecx
+ xor eax,r12d
+ rol edi,30
+ add r13d,eax
+ mov eax,edi
+ mov ebp,DWORD PTR[28+r9]
+ mov ecx,r13d
+ xor eax,r11d
+ bswap ebp
+ rol ecx,5
+ lea r12d,DWORD PTR[1518500249+r12*1+rdx]
+ and eax,esi
+ mov DWORD PTR[28+rsp],ebp
+ add r12d,ecx
+ xor eax,r11d
+ rol esi,30
+ add r12d,eax
+ mov eax,esi
+ mov edx,DWORD PTR[32+r9]
+ mov ecx,r12d
+ xor eax,edi
+ bswap edx
+ rol ecx,5
+ lea r11d,DWORD PTR[1518500249+r11*1+rbp]
+ and eax,r13d
+ mov DWORD PTR[32+rsp],edx
+ add r11d,ecx
+ xor eax,edi
+ rol r13d,30
+ add r11d,eax
+ mov eax,r13d
+ mov ebp,DWORD PTR[36+r9]
+ mov ecx,r11d
+ xor eax,esi
+ bswap ebp
+ rol ecx,5
+ lea edi,DWORD PTR[1518500249+rdi*1+rdx]
+ and eax,r12d
+ mov DWORD PTR[36+rsp],ebp
+ add edi,ecx
+ xor eax,esi
+ rol r12d,30
+ add edi,eax
+ mov eax,r12d
+ mov edx,DWORD PTR[40+r9]
+ mov ecx,edi
+ xor eax,r13d
+ bswap edx
+ rol ecx,5
+ lea esi,DWORD PTR[1518500249+rsi*1+rbp]
+ and eax,r11d
+ mov DWORD PTR[40+rsp],edx
+ add esi,ecx
+ xor eax,r13d
+ rol r11d,30
+ add esi,eax
+ mov eax,r11d
+ mov ebp,DWORD PTR[44+r9]
+ mov ecx,esi
+ xor eax,r12d
+ bswap ebp
+ rol ecx,5
+ lea r13d,DWORD PTR[1518500249+r13*1+rdx]
+ and eax,edi
+ mov DWORD PTR[44+rsp],ebp
+ add r13d,ecx
+ xor eax,r12d
+ rol edi,30
+ add r13d,eax
+ mov eax,edi
+ mov edx,DWORD PTR[48+r9]
+ mov ecx,r13d
+ xor eax,r11d
+ bswap edx
+ rol ecx,5
+ lea r12d,DWORD PTR[1518500249+r12*1+rbp]
+ and eax,esi
+ mov DWORD PTR[48+rsp],edx
+ add r12d,ecx
+ xor eax,r11d
+ rol esi,30
+ add r12d,eax
+ mov eax,esi
+ mov ebp,DWORD PTR[52+r9]
+ mov ecx,r12d
+ xor eax,edi
+ bswap ebp
+ rol ecx,5
+ lea r11d,DWORD PTR[1518500249+r11*1+rdx]
+ and eax,r13d
+ mov DWORD PTR[52+rsp],ebp
+ add r11d,ecx
+ xor eax,edi
+ rol r13d,30
+ add r11d,eax
+ mov eax,r13d
+ mov edx,DWORD PTR[56+r9]
+ mov ecx,r11d
+ xor eax,esi
+ bswap edx
+ rol ecx,5
+ lea edi,DWORD PTR[1518500249+rdi*1+rbp]
+ and eax,r12d
+ mov DWORD PTR[56+rsp],edx
+ add edi,ecx
+ xor eax,esi
+ rol r12d,30
+ add edi,eax
+ mov eax,r12d
+ mov ebp,DWORD PTR[60+r9]
+ mov ecx,edi
+ xor eax,r13d
+ bswap ebp
+ rol ecx,5
+ lea esi,DWORD PTR[1518500249+rsi*1+rdx]
+ and eax,r11d
+ mov DWORD PTR[60+rsp],ebp
+ add esi,ecx
+ xor eax,r13d
+ rol r11d,30
+ add esi,eax
+ mov edx,DWORD PTR[rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor edx,DWORD PTR[8+rsp]
+ xor eax,r12d
+ rol ecx,5
+ xor edx,DWORD PTR[32+rsp]
+ and eax,edi
+ lea r13d,DWORD PTR[1518500249+r13*1+rbp]
+ xor edx,DWORD PTR[52+rsp]
+ xor eax,r12d
+ rol edx,1
+ add r13d,ecx
+ rol edi,30
+ mov DWORD PTR[rsp],edx
+ add r13d,eax
+ mov ebp,DWORD PTR[4+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor ebp,DWORD PTR[12+rsp]
+ xor eax,r11d
+ rol ecx,5
+ xor ebp,DWORD PTR[36+rsp]
+ and eax,esi
+ lea r12d,DWORD PTR[1518500249+r12*1+rdx]
+ xor ebp,DWORD PTR[56+rsp]
+ xor eax,r11d
+ rol ebp,1
+ add r12d,ecx
+ rol esi,30
+ mov DWORD PTR[4+rsp],ebp
+ add r12d,eax
+ mov edx,DWORD PTR[8+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor edx,DWORD PTR[16+rsp]
+ xor eax,edi
+ rol ecx,5
+ xor edx,DWORD PTR[40+rsp]
+ and eax,r13d
+ lea r11d,DWORD PTR[1518500249+r11*1+rbp]
+ xor edx,DWORD PTR[60+rsp]
+ xor eax,edi
+ rol edx,1
+ add r11d,ecx
+ rol r13d,30
+ mov DWORD PTR[8+rsp],edx
+ add r11d,eax
+ mov ebp,DWORD PTR[12+rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor ebp,DWORD PTR[20+rsp]
+ xor eax,esi
+ rol ecx,5
+ xor ebp,DWORD PTR[44+rsp]
+ and eax,r12d
+ lea edi,DWORD PTR[1518500249+rdi*1+rdx]
+ xor ebp,DWORD PTR[rsp]
+ xor eax,esi
+ rol ebp,1
+ add edi,ecx
+ rol r12d,30
+ mov DWORD PTR[12+rsp],ebp
+ add edi,eax
+ mov edx,DWORD PTR[16+rsp]
+ mov eax,r12d
+ mov ecx,edi
+ xor edx,DWORD PTR[24+rsp]
+ xor eax,r13d
+ rol ecx,5
+ xor edx,DWORD PTR[48+rsp]
+ and eax,r11d
+ lea esi,DWORD PTR[1518500249+rsi*1+rbp]
+ xor edx,DWORD PTR[4+rsp]
+ xor eax,r13d
+ rol edx,1
+ add esi,ecx
+ rol r11d,30
+ mov DWORD PTR[16+rsp],edx
+ add esi,eax
+ mov ebp,DWORD PTR[20+rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor ebp,DWORD PTR[28+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[1859775393+r13*1+rdx]
+ xor ebp,DWORD PTR[52+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor ebp,DWORD PTR[8+rsp]
+ rol edi,30
+ add r13d,eax
+ rol ebp,1
+ mov DWORD PTR[20+rsp],ebp
+ mov edx,DWORD PTR[24+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor edx,DWORD PTR[32+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[1859775393+r12*1+rbp]
+ xor edx,DWORD PTR[56+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor edx,DWORD PTR[12+rsp]
+ rol esi,30
+ add r12d,eax
+ rol edx,1
+ mov DWORD PTR[24+rsp],edx
+ mov ebp,DWORD PTR[28+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor ebp,DWORD PTR[36+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[1859775393+r11*1+rdx]
+ xor ebp,DWORD PTR[60+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor ebp,DWORD PTR[16+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol ebp,1
+ mov DWORD PTR[28+rsp],ebp
+ mov edx,DWORD PTR[32+rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor edx,DWORD PTR[40+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[1859775393+rdi*1+rbp]
+ xor edx,DWORD PTR[rsp]
+ xor eax,esi
+ add edi,ecx
+ xor edx,DWORD PTR[20+rsp]
+ rol r12d,30
+ add edi,eax
+ rol edx,1
+ mov DWORD PTR[32+rsp],edx
+ mov ebp,DWORD PTR[36+rsp]
+ mov eax,r12d
+ mov ecx,edi
+ xor ebp,DWORD PTR[44+rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[1859775393+rsi*1+rdx]
+ xor ebp,DWORD PTR[4+rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor ebp,DWORD PTR[24+rsp]
+ rol r11d,30
+ add esi,eax
+ rol ebp,1
+ mov DWORD PTR[36+rsp],ebp
+ mov edx,DWORD PTR[40+rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor edx,DWORD PTR[48+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[1859775393+r13*1+rbp]
+ xor edx,DWORD PTR[8+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor edx,DWORD PTR[28+rsp]
+ rol edi,30
+ add r13d,eax
+ rol edx,1
+ mov DWORD PTR[40+rsp],edx
+ mov ebp,DWORD PTR[44+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor ebp,DWORD PTR[52+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[1859775393+r12*1+rdx]
+ xor ebp,DWORD PTR[12+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor ebp,DWORD PTR[32+rsp]
+ rol esi,30
+ add r12d,eax
+ rol ebp,1
+ mov DWORD PTR[44+rsp],ebp
+ mov edx,DWORD PTR[48+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor edx,DWORD PTR[56+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[1859775393+r11*1+rbp]
+ xor edx,DWORD PTR[16+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor edx,DWORD PTR[36+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol edx,1
+ mov DWORD PTR[48+rsp],edx
+ mov ebp,DWORD PTR[52+rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor ebp,DWORD PTR[60+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[1859775393+rdi*1+rdx]
+ xor ebp,DWORD PTR[20+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor ebp,DWORD PTR[40+rsp]
+ rol r12d,30
+ add edi,eax
+ rol ebp,1
+ mov DWORD PTR[52+rsp],ebp
+ mov edx,DWORD PTR[56+rsp]
+ mov eax,r12d
+ mov ecx,edi
+ xor edx,DWORD PTR[rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[1859775393+rsi*1+rbp]
+ xor edx,DWORD PTR[24+rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor edx,DWORD PTR[44+rsp]
+ rol r11d,30
+ add esi,eax
+ rol edx,1
+ mov DWORD PTR[56+rsp],edx
+ mov ebp,DWORD PTR[60+rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor ebp,DWORD PTR[4+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[1859775393+r13*1+rdx]
+ xor ebp,DWORD PTR[28+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor ebp,DWORD PTR[48+rsp]
+ rol edi,30
+ add r13d,eax
+ rol ebp,1
+ mov DWORD PTR[60+rsp],ebp
+ mov edx,DWORD PTR[rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor edx,DWORD PTR[8+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[1859775393+r12*1+rbp]
+ xor edx,DWORD PTR[32+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor edx,DWORD PTR[52+rsp]
+ rol esi,30
+ add r12d,eax
+ rol edx,1
+ mov DWORD PTR[rsp],edx
+ mov ebp,DWORD PTR[4+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor ebp,DWORD PTR[12+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[1859775393+r11*1+rdx]
+ xor ebp,DWORD PTR[36+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor ebp,DWORD PTR[56+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol ebp,1
+ mov DWORD PTR[4+rsp],ebp
+ mov edx,DWORD PTR[8+rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor edx,DWORD PTR[16+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[1859775393+rdi*1+rbp]
+ xor edx,DWORD PTR[40+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor edx,DWORD PTR[60+rsp]
+ rol r12d,30
+ add edi,eax
+ rol edx,1
+ mov DWORD PTR[8+rsp],edx
+ mov ebp,DWORD PTR[12+rsp]
+ mov eax,r12d
+ mov ecx,edi
+ xor ebp,DWORD PTR[20+rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[1859775393+rsi*1+rdx]
+ xor ebp,DWORD PTR[44+rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor ebp,DWORD PTR[rsp]
+ rol r11d,30
+ add esi,eax
+ rol ebp,1
+ mov DWORD PTR[12+rsp],ebp
+ mov edx,DWORD PTR[16+rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor edx,DWORD PTR[24+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[1859775393+r13*1+rbp]
+ xor edx,DWORD PTR[48+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor edx,DWORD PTR[4+rsp]
+ rol edi,30
+ add r13d,eax
+ rol edx,1
+ mov DWORD PTR[16+rsp],edx
+ mov ebp,DWORD PTR[20+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor ebp,DWORD PTR[28+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[1859775393+r12*1+rdx]
+ xor ebp,DWORD PTR[52+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor ebp,DWORD PTR[8+rsp]
+ rol esi,30
+ add r12d,eax
+ rol ebp,1
+ mov DWORD PTR[20+rsp],ebp
+ mov edx,DWORD PTR[24+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor edx,DWORD PTR[32+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[1859775393+r11*1+rbp]
+ xor edx,DWORD PTR[56+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor edx,DWORD PTR[12+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol edx,1
+ mov DWORD PTR[24+rsp],edx
+ mov ebp,DWORD PTR[28+rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor ebp,DWORD PTR[36+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[1859775393+rdi*1+rdx]
+ xor ebp,DWORD PTR[60+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor ebp,DWORD PTR[16+rsp]
+ rol r12d,30
+ add edi,eax
+ rol ebp,1
+ mov DWORD PTR[28+rsp],ebp
+ mov edx,DWORD PTR[32+rsp]
+ mov eax,r12d
+ mov ecx,edi
+ xor edx,DWORD PTR[40+rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[1859775393+rsi*1+rbp]
+ xor edx,DWORD PTR[rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor edx,DWORD PTR[20+rsp]
+ rol r11d,30
+ add esi,eax
+ rol edx,1
+ mov DWORD PTR[32+rsp],edx
+ mov ebp,DWORD PTR[36+rsp]
+ mov eax,r11d
mov ebx,r11d
- mov eax,DWORD PTR[20+r9]
- mov edx,edi
- xor ebx,r12d
- bswap eax
- rol edx,5
- and ebx,ebp
- mov DWORD PTR[20+rsp],eax
- add esi,edx
+ xor ebp,DWORD PTR[44+rsp]
+ and eax,r12d
+ mov ecx,esi
+ xor ebp,DWORD PTR[4+rsp]
xor ebx,r12d
- rol ebp,30
- add esi,ebx
- lea edx,DWORD PTR[05a827999h+r12*1+rax]
- mov ebx,ebp
- mov eax,DWORD PTR[24+r9]
- mov r12d,esi
- xor ebx,r11d
- bswap eax
- rol r12d,5
+ lea r13d,DWORD PTR[((-1894007588))+r13*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[24+rsp]
+ add r13d,eax
and ebx,edi
- mov DWORD PTR[24+rsp],eax
- add edx,r12d
- xor ebx,r11d
+ rol ebp,1
+ add r13d,ebx
rol edi,30
- add edx,ebx
- lea r12d,DWORD PTR[05a827999h+r11*1+rax]
+ mov DWORD PTR[36+rsp],ebp
+ add r13d,ecx
+ mov edx,DWORD PTR[40+rsp]
+ mov eax,edi
mov ebx,edi
- mov eax,DWORD PTR[28+r9]
- mov r11d,edx
- xor ebx,ebp
- bswap eax
- rol r11d,5
+ xor edx,DWORD PTR[48+rsp]
+ and eax,r11d
+ mov ecx,r13d
+ xor edx,DWORD PTR[8+rsp]
+ xor ebx,r11d
+ lea r12d,DWORD PTR[((-1894007588))+r12*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[28+rsp]
+ add r12d,eax
and ebx,esi
- mov DWORD PTR[28+rsp],eax
- add r12d,r11d
- xor ebx,ebp
- rol esi,30
+ rol edx,1
add r12d,ebx
- lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
+ rol esi,30
+ mov DWORD PTR[40+rsp],edx
+ add r12d,ecx
+ mov ebp,DWORD PTR[44+rsp]
+ mov eax,esi
mov ebx,esi
- mov eax,DWORD PTR[32+r9]
- mov ebp,r12d
- xor ebx,edi
- bswap eax
- rol ebp,5
- and ebx,edx
- mov DWORD PTR[32+rsp],eax
- add r11d,ebp
+ xor ebp,DWORD PTR[52+rsp]
+ and eax,edi
+ mov ecx,r12d
+ xor ebp,DWORD PTR[12+rsp]
xor ebx,edi
- rol edx,30
+ lea r11d,DWORD PTR[((-1894007588))+r11*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[32+rsp]
+ add r11d,eax
+ and ebx,r13d
+ rol ebp,1
add r11d,ebx
- lea ebp,DWORD PTR[05a827999h+rdi*1+rax]
- mov ebx,edx
- mov eax,DWORD PTR[36+r9]
- mov edi,r11d
+ rol r13d,30
+ mov DWORD PTR[44+rsp],ebp
+ add r11d,ecx
+ mov edx,DWORD PTR[48+rsp]
+ mov eax,r13d
+ mov ebx,r13d
+ xor edx,DWORD PTR[56+rsp]
+ and eax,esi
+ mov ecx,r11d
+ xor edx,DWORD PTR[16+rsp]
xor ebx,esi
- bswap eax
- rol edi,5
+ lea edi,DWORD PTR[((-1894007588))+rdi*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[36+rsp]
+ add edi,eax
and ebx,r12d
- mov DWORD PTR[36+rsp],eax
- add ebp,edi
- xor ebx,esi
+ rol edx,1
+ add edi,ebx
rol r12d,30
- add ebp,ebx
- lea edi,DWORD PTR[05a827999h+rsi*1+rax]
+ mov DWORD PTR[48+rsp],edx
+ add edi,ecx
+ mov ebp,DWORD PTR[52+rsp]
+ mov eax,r12d
mov ebx,r12d
- mov eax,DWORD PTR[40+r9]
- mov esi,ebp
- xor ebx,edx
- bswap eax
- rol esi,5
+ xor ebp,DWORD PTR[60+rsp]
+ and eax,r13d
+ mov ecx,edi
+ xor ebp,DWORD PTR[20+rsp]
+ xor ebx,r13d
+ lea esi,DWORD PTR[((-1894007588))+rsi*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[40+rsp]
+ add esi,eax
and ebx,r11d
- mov DWORD PTR[40+rsp],eax
- add edi,esi
- xor ebx,edx
+ rol ebp,1
+ add esi,ebx
rol r11d,30
- add edi,ebx
- lea esi,DWORD PTR[05a827999h+rdx*1+rax]
+ mov DWORD PTR[52+rsp],ebp
+ add esi,ecx
+ mov edx,DWORD PTR[56+rsp]
+ mov eax,r11d
mov ebx,r11d
- mov eax,DWORD PTR[44+r9]
- mov edx,edi
- xor ebx,r12d
- bswap eax
- rol edx,5
- and ebx,ebp
- mov DWORD PTR[44+rsp],eax
- add esi,edx
+ xor edx,DWORD PTR[rsp]
+ and eax,r12d
+ mov ecx,esi
+ xor edx,DWORD PTR[24+rsp]
xor ebx,r12d
- rol ebp,30
- add esi,ebx
- lea edx,DWORD PTR[05a827999h+r12*1+rax]
- mov ebx,ebp
- mov eax,DWORD PTR[48+r9]
- mov r12d,esi
- xor ebx,r11d
- bswap eax
- rol r12d,5
+ lea r13d,DWORD PTR[((-1894007588))+r13*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[44+rsp]
+ add r13d,eax
and ebx,edi
- mov DWORD PTR[48+rsp],eax
- add edx,r12d
- xor ebx,r11d
+ rol edx,1
+ add r13d,ebx
rol edi,30
- add edx,ebx
- lea r12d,DWORD PTR[05a827999h+r11*1+rax]
+ mov DWORD PTR[56+rsp],edx
+ add r13d,ecx
+ mov ebp,DWORD PTR[60+rsp]
+ mov eax,edi
mov ebx,edi
- mov eax,DWORD PTR[52+r9]
- mov r11d,edx
- xor ebx,ebp
- bswap eax
- rol r11d,5
+ xor ebp,DWORD PTR[4+rsp]
+ and eax,r11d
+ mov ecx,r13d
+ xor ebp,DWORD PTR[28+rsp]
+ xor ebx,r11d
+ lea r12d,DWORD PTR[((-1894007588))+r12*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[48+rsp]
+ add r12d,eax
and ebx,esi
- mov DWORD PTR[52+rsp],eax
- add r12d,r11d
- xor ebx,ebp
- rol esi,30
+ rol ebp,1
add r12d,ebx
- lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
+ rol esi,30
+ mov DWORD PTR[60+rsp],ebp
+ add r12d,ecx
+ mov edx,DWORD PTR[rsp]
+ mov eax,esi
mov ebx,esi
- mov eax,DWORD PTR[56+r9]
- mov ebp,r12d
- xor ebx,edi
- bswap eax
- rol ebp,5
- and ebx,edx
- mov DWORD PTR[56+rsp],eax
- add r11d,ebp
+ xor edx,DWORD PTR[8+rsp]
+ and eax,edi
+ mov ecx,r12d
+ xor edx,DWORD PTR[32+rsp]
xor ebx,edi
- rol edx,30
+ lea r11d,DWORD PTR[((-1894007588))+r11*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[52+rsp]
+ add r11d,eax
+ and ebx,r13d
+ rol edx,1
add r11d,ebx
- lea ebp,DWORD PTR[05a827999h+rdi*1+rax]
- mov ebx,edx
- mov eax,DWORD PTR[60+r9]
- mov edi,r11d
+ rol r13d,30
+ mov DWORD PTR[rsp],edx
+ add r11d,ecx
+ mov ebp,DWORD PTR[4+rsp]
+ mov eax,r13d
+ mov ebx,r13d
+ xor ebp,DWORD PTR[12+rsp]
+ and eax,esi
+ mov ecx,r11d
+ xor ebp,DWORD PTR[36+rsp]
xor ebx,esi
- bswap eax
- rol edi,5
+ lea edi,DWORD PTR[((-1894007588))+rdi*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[56+rsp]
+ add edi,eax
and ebx,r12d
- mov DWORD PTR[60+rsp],eax
- add ebp,edi
- xor ebx,esi
+ rol ebp,1
+ add edi,ebx
rol r12d,30
- add ebp,ebx
- lea edi,DWORD PTR[05a827999h+rsi*1+rax]
- mov eax,DWORD PTR[rsp]
+ mov DWORD PTR[4+rsp],ebp
+ add edi,ecx
+ mov edx,DWORD PTR[8+rsp]
+ mov eax,r12d
mov ebx,r12d
- mov esi,ebp
- xor eax,DWORD PTR[8+rsp]
- xor ebx,edx
- rol esi,5
- xor eax,DWORD PTR[32+rsp]
+ xor edx,DWORD PTR[16+rsp]
+ and eax,r13d
+ mov ecx,edi
+ xor edx,DWORD PTR[40+rsp]
+ xor ebx,r13d
+ lea esi,DWORD PTR[((-1894007588))+rsi*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[60+rsp]
+ add esi,eax
and ebx,r11d
- add edi,esi
- xor eax,DWORD PTR[52+rsp]
- xor ebx,edx
+ rol edx,1
+ add esi,ebx
rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[rsp],eax
- lea esi,DWORD PTR[05a827999h+rdx*1+rax]
- mov eax,DWORD PTR[4+rsp]
+ mov DWORD PTR[8+rsp],edx
+ add esi,ecx
+ mov ebp,DWORD PTR[12+rsp]
+ mov eax,r11d
mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[12+rsp]
- xor ebx,r12d
- rol edx,5
- xor eax,DWORD PTR[36+rsp]
- and ebx,ebp
- add esi,edx
- xor eax,DWORD PTR[56+rsp]
+ xor ebp,DWORD PTR[20+rsp]
+ and eax,r12d
+ mov ecx,esi
+ xor ebp,DWORD PTR[44+rsp]
xor ebx,r12d
- rol ebp,30
- add esi,ebx
- rol eax,1
- mov DWORD PTR[4+rsp],eax
- lea edx,DWORD PTR[05a827999h+r12*1+rax]
- mov eax,DWORD PTR[8+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[16+rsp]
- xor ebx,r11d
- rol r12d,5
- xor eax,DWORD PTR[40+rsp]
+ lea r13d,DWORD PTR[((-1894007588))+r13*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[rsp]
+ add r13d,eax
and ebx,edi
- add edx,r12d
- xor eax,DWORD PTR[60+rsp]
- xor ebx,r11d
+ rol ebp,1
+ add r13d,ebx
rol edi,30
- add edx,ebx
- rol eax,1
- mov DWORD PTR[8+rsp],eax
- lea r12d,DWORD PTR[05a827999h+r11*1+rax]
- mov eax,DWORD PTR[12+rsp]
+ mov DWORD PTR[12+rsp],ebp
+ add r13d,ecx
+ mov edx,DWORD PTR[16+rsp]
+ mov eax,edi
mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[20+rsp]
- xor ebx,ebp
- rol r11d,5
- xor eax,DWORD PTR[44+rsp]
+ xor edx,DWORD PTR[24+rsp]
+ and eax,r11d
+ mov ecx,r13d
+ xor edx,DWORD PTR[48+rsp]
+ xor ebx,r11d
+ lea r12d,DWORD PTR[((-1894007588))+r12*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[4+rsp]
+ add r12d,eax
and ebx,esi
- add r12d,r11d
- xor eax,DWORD PTR[rsp]
- xor ebx,ebp
- rol esi,30
+ rol edx,1
add r12d,ebx
- rol eax,1
- mov DWORD PTR[12+rsp],eax
- lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
- mov eax,DWORD PTR[16+rsp]
+ rol esi,30
+ mov DWORD PTR[16+rsp],edx
+ add r12d,ecx
+ mov ebp,DWORD PTR[20+rsp]
+ mov eax,esi
mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[24+rsp]
- xor ebx,edi
- rol ebp,5
- xor eax,DWORD PTR[48+rsp]
- and ebx,edx
- add r11d,ebp
- xor eax,DWORD PTR[4+rsp]
+ xor ebp,DWORD PTR[28+rsp]
+ and eax,edi
+ mov ecx,r12d
+ xor ebp,DWORD PTR[52+rsp]
xor ebx,edi
- rol edx,30
+ lea r11d,DWORD PTR[((-1894007588))+r11*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[8+rsp]
+ add r11d,eax
+ and ebx,r13d
+ rol ebp,1
add r11d,ebx
- rol eax,1
- mov DWORD PTR[16+rsp],eax
- lea ebp,DWORD PTR[1859775393+rdi*1+rax]
- mov eax,DWORD PTR[20+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[28+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[52+rsp]
+ rol r13d,30
+ mov DWORD PTR[20+rsp],ebp
+ add r11d,ecx
+ mov edx,DWORD PTR[24+rsp]
+ mov eax,r13d
+ mov ebx,r13d
+ xor edx,DWORD PTR[32+rsp]
+ and eax,esi
+ mov ecx,r11d
+ xor edx,DWORD PTR[56+rsp]
xor ebx,esi
- add ebp,edi
- xor eax,DWORD PTR[8+rsp]
+ lea edi,DWORD PTR[((-1894007588))+rdi*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[12+rsp]
+ add edi,eax
+ and ebx,r12d
+ rol edx,1
+ add edi,ebx
rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[20+rsp],eax
- lea edi,DWORD PTR[1859775393+rsi*1+rax]
- mov eax,DWORD PTR[24+rsp]
+ mov DWORD PTR[24+rsp],edx
+ add edi,ecx
+ mov ebp,DWORD PTR[28+rsp]
+ mov eax,r12d
mov ebx,r12d
- mov esi,ebp
- xor eax,DWORD PTR[32+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[56+rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[12+rsp]
+ xor ebp,DWORD PTR[36+rsp]
+ and eax,r13d
+ mov ecx,edi
+ xor ebp,DWORD PTR[60+rsp]
+ xor ebx,r13d
+ lea esi,DWORD PTR[((-1894007588))+rsi*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[16+rsp]
+ add esi,eax
+ and ebx,r11d
+ rol ebp,1
+ add esi,ebx
rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[24+rsp],eax
- lea esi,DWORD PTR[1859775393+rdx*1+rax]
- mov eax,DWORD PTR[28+rsp]
+ mov DWORD PTR[28+rsp],ebp
+ add esi,ecx
+ mov edx,DWORD PTR[32+rsp]
+ mov eax,r11d
mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[36+rsp]
- xor ebx,ebp
- rol edx,5
- xor eax,DWORD PTR[60+rsp]
+ xor edx,DWORD PTR[40+rsp]
+ and eax,r12d
+ mov ecx,esi
+ xor edx,DWORD PTR[rsp]
xor ebx,r12d
- add esi,edx
- xor eax,DWORD PTR[16+rsp]
- rol ebp,30
- add esi,ebx
- rol eax,1
- mov DWORD PTR[28+rsp],eax
- lea edx,DWORD PTR[1859775393+r12*1+rax]
- mov eax,DWORD PTR[32+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[40+rsp]
- xor ebx,edi
- rol r12d,5
- xor eax,DWORD PTR[rsp]
- xor ebx,r11d
- add edx,r12d
- xor eax,DWORD PTR[20+rsp]
+ lea r13d,DWORD PTR[((-1894007588))+r13*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[20+rsp]
+ add r13d,eax
+ and ebx,edi
+ rol edx,1
+ add r13d,ebx
rol edi,30
- add edx,ebx
- rol eax,1
- mov DWORD PTR[32+rsp],eax
- lea r12d,DWORD PTR[1859775393+r11*1+rax]
- mov eax,DWORD PTR[36+rsp]
+ mov DWORD PTR[32+rsp],edx
+ add r13d,ecx
+ mov ebp,DWORD PTR[36+rsp]
+ mov eax,edi
mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[44+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[4+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[24+rsp]
- rol esi,30
+ xor ebp,DWORD PTR[44+rsp]
+ and eax,r11d
+ mov ecx,r13d
+ xor ebp,DWORD PTR[4+rsp]
+ xor ebx,r11d
+ lea r12d,DWORD PTR[((-1894007588))+r12*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[24+rsp]
+ add r12d,eax
+ and ebx,esi
+ rol ebp,1
add r12d,ebx
- rol eax,1
- mov DWORD PTR[36+rsp],eax
- lea r11d,DWORD PTR[1859775393+rbp*1+rax]
- mov eax,DWORD PTR[40+rsp]
+ rol esi,30
+ mov DWORD PTR[36+rsp],ebp
+ add r12d,ecx
+ mov edx,DWORD PTR[40+rsp]
+ mov eax,esi
mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[48+rsp]
- xor ebx,edx
- rol ebp,5
- xor eax,DWORD PTR[8+rsp]
+ xor edx,DWORD PTR[48+rsp]
+ and eax,edi
+ mov ecx,r12d
+ xor edx,DWORD PTR[8+rsp]
xor ebx,edi
- add r11d,ebp
- xor eax,DWORD PTR[28+rsp]
- rol edx,30
+ lea r11d,DWORD PTR[((-1894007588))+r11*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[28+rsp]
+ add r11d,eax
+ and ebx,r13d
+ rol edx,1
add r11d,ebx
- rol eax,1
- mov DWORD PTR[40+rsp],eax
- lea ebp,DWORD PTR[1859775393+rdi*1+rax]
- mov eax,DWORD PTR[44+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[52+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[12+rsp]
+ rol r13d,30
+ mov DWORD PTR[40+rsp],edx
+ add r11d,ecx
+ mov ebp,DWORD PTR[44+rsp]
+ mov eax,r13d
+ mov ebx,r13d
+ xor ebp,DWORD PTR[52+rsp]
+ and eax,esi
+ mov ecx,r11d
+ xor ebp,DWORD PTR[12+rsp]
xor ebx,esi
- add ebp,edi
- xor eax,DWORD PTR[32+rsp]
+ lea edi,DWORD PTR[((-1894007588))+rdi*1+rdx]
+ rol ecx,5
+ xor ebp,DWORD PTR[32+rsp]
+ add edi,eax
+ and ebx,r12d
+ rol ebp,1
+ add edi,ebx
rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[44+rsp],eax
- lea edi,DWORD PTR[1859775393+rsi*1+rax]
- mov eax,DWORD PTR[48+rsp]
+ mov DWORD PTR[44+rsp],ebp
+ add edi,ecx
+ mov edx,DWORD PTR[48+rsp]
+ mov eax,r12d
mov ebx,r12d
- mov esi,ebp
- xor eax,DWORD PTR[56+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[16+rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[36+rsp]
- rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[48+rsp],eax
- lea esi,DWORD PTR[1859775393+rdx*1+rax]
- mov eax,DWORD PTR[52+rsp]
- mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[60+rsp]
- xor ebx,ebp
- rol edx,5
- xor eax,DWORD PTR[20+rsp]
- xor ebx,r12d
- add esi,edx
- xor eax,DWORD PTR[40+rsp]
- rol ebp,30
+ xor edx,DWORD PTR[56+rsp]
+ and eax,r13d
+ mov ecx,edi
+ xor edx,DWORD PTR[16+rsp]
+ xor ebx,r13d
+ lea esi,DWORD PTR[((-1894007588))+rsi*1+rbp]
+ rol ecx,5
+ xor edx,DWORD PTR[36+rsp]
+ add esi,eax
+ and ebx,r11d
+ rol edx,1
add esi,ebx
- rol eax,1
- mov DWORD PTR[52+rsp],eax
- lea edx,DWORD PTR[1859775393+r12*1+rax]
- mov eax,DWORD PTR[56+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[rsp]
- xor ebx,edi
- rol r12d,5
- xor eax,DWORD PTR[24+rsp]
- xor ebx,r11d
- add edx,r12d
- xor eax,DWORD PTR[44+rsp]
+ rol r11d,30
+ mov DWORD PTR[48+rsp],edx
+ add esi,ecx
+ mov ebp,DWORD PTR[52+rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor ebp,DWORD PTR[60+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[((-899497514))+r13*1+rdx]
+ xor ebp,DWORD PTR[20+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor ebp,DWORD PTR[40+rsp]
rol edi,30
- add edx,ebx
- rol eax,1
- mov DWORD PTR[56+rsp],eax
- lea r12d,DWORD PTR[1859775393+r11*1+rax]
- mov eax,DWORD PTR[60+rsp]
- mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[4+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[28+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[48+rsp]
+ add r13d,eax
+ rol ebp,1
+ mov DWORD PTR[52+rsp],ebp
+ mov edx,DWORD PTR[56+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor edx,DWORD PTR[rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[((-899497514))+r12*1+rbp]
+ xor edx,DWORD PTR[24+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor edx,DWORD PTR[44+rsp]
rol esi,30
- add r12d,ebx
- rol eax,1
- mov DWORD PTR[60+rsp],eax
- lea r11d,DWORD PTR[1859775393+rbp*1+rax]
- mov eax,DWORD PTR[rsp]
- mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[8+rsp]
- xor ebx,edx
- rol ebp,5
- xor eax,DWORD PTR[32+rsp]
- xor ebx,edi
- add r11d,ebp
- xor eax,DWORD PTR[52+rsp]
- rol edx,30
- add r11d,ebx
- rol eax,1
- mov DWORD PTR[rsp],eax
- lea ebp,DWORD PTR[1859775393+rdi*1+rax]
- mov eax,DWORD PTR[4+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[12+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[36+rsp]
- xor ebx,esi
- add ebp,edi
- xor eax,DWORD PTR[56+rsp]
+ add r12d,eax
+ rol edx,1
+ mov DWORD PTR[56+rsp],edx
+ mov ebp,DWORD PTR[60+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor ebp,DWORD PTR[4+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[((-899497514))+r11*1+rdx]
+ xor ebp,DWORD PTR[28+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor ebp,DWORD PTR[48+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol ebp,1
+ mov DWORD PTR[60+rsp],ebp
+ mov edx,DWORD PTR[rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor edx,DWORD PTR[8+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[((-899497514))+rdi*1+rbp]
+ xor edx,DWORD PTR[32+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor edx,DWORD PTR[52+rsp]
rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[4+rsp],eax
- lea edi,DWORD PTR[1859775393+rsi*1+rax]
- mov eax,DWORD PTR[8+rsp]
- mov ebx,r12d
- mov esi,ebp
- xor eax,DWORD PTR[16+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[40+rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[60+rsp]
+ add edi,eax
+ rol edx,1
+ mov DWORD PTR[rsp],edx
+ mov ebp,DWORD PTR[4+rsp]
+ mov eax,r12d
+ mov ecx,edi
+ xor ebp,DWORD PTR[12+rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[((-899497514))+rsi*1+rdx]
+ xor ebp,DWORD PTR[36+rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor ebp,DWORD PTR[56+rsp]
rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[8+rsp],eax
- lea esi,DWORD PTR[1859775393+rdx*1+rax]
- mov eax,DWORD PTR[12+rsp]
- mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[20+rsp]
- xor ebx,ebp
- rol edx,5
- xor eax,DWORD PTR[44+rsp]
- xor ebx,r12d
- add esi,edx
- xor eax,DWORD PTR[rsp]
- rol ebp,30
- add esi,ebx
- rol eax,1
- mov DWORD PTR[12+rsp],eax
- lea edx,DWORD PTR[1859775393+r12*1+rax]
- mov eax,DWORD PTR[16+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[24+rsp]
- xor ebx,edi
- rol r12d,5
- xor eax,DWORD PTR[48+rsp]
- xor ebx,r11d
- add edx,r12d
- xor eax,DWORD PTR[4+rsp]
+ add esi,eax
+ rol ebp,1
+ mov DWORD PTR[4+rsp],ebp
+ mov edx,DWORD PTR[8+rsp]
+ mov eax,r11d
+ mov ecx,esi
+ xor edx,DWORD PTR[16+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[((-899497514))+r13*1+rbp]
+ xor edx,DWORD PTR[40+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor edx,DWORD PTR[60+rsp]
rol edi,30
- add edx,ebx
- rol eax,1
- mov DWORD PTR[16+rsp],eax
- lea r12d,DWORD PTR[1859775393+r11*1+rax]
- mov eax,DWORD PTR[20+rsp]
- mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[28+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[52+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[8+rsp]
+ add r13d,eax
+ rol edx,1
+ mov DWORD PTR[8+rsp],edx
+ mov ebp,DWORD PTR[12+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor ebp,DWORD PTR[20+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[((-899497514))+r12*1+rdx]
+ xor ebp,DWORD PTR[44+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor ebp,DWORD PTR[rsp]
rol esi,30
- add r12d,ebx
- rol eax,1
- mov DWORD PTR[20+rsp],eax
- lea r11d,DWORD PTR[1859775393+rbp*1+rax]
- mov eax,DWORD PTR[24+rsp]
- mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[32+rsp]
- xor ebx,edx
- rol ebp,5
- xor eax,DWORD PTR[56+rsp]
- xor ebx,edi
- add r11d,ebp
- xor eax,DWORD PTR[12+rsp]
- rol edx,30
- add r11d,ebx
- rol eax,1
- mov DWORD PTR[24+rsp],eax
- lea ebp,DWORD PTR[1859775393+rdi*1+rax]
- mov eax,DWORD PTR[28+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[36+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[60+rsp]
- xor ebx,esi
- add ebp,edi
- xor eax,DWORD PTR[16+rsp]
+ add r12d,eax
+ rol ebp,1
+ mov DWORD PTR[12+rsp],ebp
+ mov edx,DWORD PTR[16+rsp]
+ mov eax,esi
+ mov ecx,r12d
+ xor edx,DWORD PTR[24+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[((-899497514))+r11*1+rbp]
+ xor edx,DWORD PTR[48+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor edx,DWORD PTR[4+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol edx,1
+ mov DWORD PTR[16+rsp],edx
+ mov ebp,DWORD PTR[20+rsp]
+ mov eax,r13d
+ mov ecx,r11d
+ xor ebp,DWORD PTR[28+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[((-899497514))+rdi*1+rdx]
+ xor ebp,DWORD PTR[52+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor ebp,DWORD PTR[8+rsp]
rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[28+rsp],eax
- lea edi,DWORD PTR[1859775393+rsi*1+rax]
- mov eax,DWORD PTR[32+rsp]
- mov ebx,r12d
- mov esi,ebp
- xor eax,DWORD PTR[40+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[20+rsp]
- rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[32+rsp],eax
- lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
- mov eax,DWORD PTR[36+rsp]
- mov ebx,ebp
- mov ecx,ebp
- xor eax,DWORD PTR[44+rsp]
- mov edx,edi
- and ebx,r11d
- xor eax,DWORD PTR[4+rsp]
- or ecx,r11d
- rol edx,5
- xor eax,DWORD PTR[24+rsp]
- and ecx,r12d
- add esi,edx
- rol eax,1
- or ebx,ecx
- rol ebp,30
- mov DWORD PTR[36+rsp],eax
- add esi,ebx
- lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
- mov eax,DWORD PTR[40+rsp]
- mov ebx,edi
+ add edi,eax
+ rol ebp,1
+ mov DWORD PTR[20+rsp],ebp
+ mov edx,DWORD PTR[24+rsp]
+ mov eax,r12d
mov ecx,edi
- xor eax,DWORD PTR[48+rsp]
- mov r12d,esi
- and ebx,ebp
- xor eax,DWORD PTR[8+rsp]
- or ecx,ebp
- rol r12d,5
- xor eax,DWORD PTR[28+rsp]
- and ecx,r11d
- add edx,r12d
- rol eax,1
- or ebx,ecx
- rol edi,30
- mov DWORD PTR[40+rsp],eax
- add edx,ebx
- lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax]
- mov eax,DWORD PTR[44+rsp]
- mov ebx,esi
+ xor edx,DWORD PTR[32+rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[((-899497514))+rsi*1+rbp]
+ xor edx,DWORD PTR[56+rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor edx,DWORD PTR[12+rsp]
+ rol r11d,30
+ add esi,eax
+ rol edx,1
+ mov DWORD PTR[24+rsp],edx
+ mov ebp,DWORD PTR[28+rsp]
+ mov eax,r11d
mov ecx,esi
- xor eax,DWORD PTR[52+rsp]
- mov r11d,edx
- and ebx,edi
- xor eax,DWORD PTR[12+rsp]
- or ecx,edi
- rol r11d,5
- xor eax,DWORD PTR[32+rsp]
- and ecx,ebp
- add r12d,r11d
- rol eax,1
- or ebx,ecx
+ xor ebp,DWORD PTR[36+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[((-899497514))+r13*1+rdx]
+ xor ebp,DWORD PTR[60+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor ebp,DWORD PTR[16+rsp]
+ rol edi,30
+ add r13d,eax
+ rol ebp,1
+ mov DWORD PTR[28+rsp],ebp
+ mov edx,DWORD PTR[32+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor edx,DWORD PTR[40+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[((-899497514))+r12*1+rbp]
+ xor edx,DWORD PTR[rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor edx,DWORD PTR[20+rsp]
rol esi,30
- mov DWORD PTR[44+rsp],eax
- add r12d,ebx
- lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax]
- mov eax,DWORD PTR[48+rsp]
- mov ebx,edx
- mov ecx,edx
- xor eax,DWORD PTR[56+rsp]
- mov ebp,r12d
- and ebx,esi
- xor eax,DWORD PTR[16+rsp]
- or ecx,esi
- rol ebp,5
- xor eax,DWORD PTR[36+rsp]
- and ecx,edi
- add r11d,ebp
- rol eax,1
- or ebx,ecx
- rol edx,30
- mov DWORD PTR[48+rsp],eax
- add r11d,ebx
- lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax]
- mov eax,DWORD PTR[52+rsp]
- mov ebx,r12d
+ add r12d,eax
+ rol edx,1
+ mov DWORD PTR[32+rsp],edx
+ mov ebp,DWORD PTR[36+rsp]
+ mov eax,esi
mov ecx,r12d
- xor eax,DWORD PTR[60+rsp]
- mov edi,r11d
- and ebx,edx
- xor eax,DWORD PTR[20+rsp]
- or ecx,edx
- rol edi,5
- xor eax,DWORD PTR[40+rsp]
- and ecx,esi
- add ebp,edi
- rol eax,1
- or ebx,ecx
- rol r12d,30
- mov DWORD PTR[52+rsp],eax
- add ebp,ebx
- lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax]
- mov eax,DWORD PTR[56+rsp]
- mov ebx,r11d
+ xor ebp,DWORD PTR[44+rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[((-899497514))+r11*1+rdx]
+ xor ebp,DWORD PTR[4+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor ebp,DWORD PTR[24+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol ebp,1
+ mov DWORD PTR[36+rsp],ebp
+ mov edx,DWORD PTR[40+rsp]
+ mov eax,r13d
mov ecx,r11d
- xor eax,DWORD PTR[rsp]
- mov esi,ebp
- and ebx,r12d
- xor eax,DWORD PTR[24+rsp]
- or ecx,r12d
- rol esi,5
- xor eax,DWORD PTR[44+rsp]
- and ecx,edx
- add edi,esi
- rol eax,1
- or ebx,ecx
- rol r11d,30
- mov DWORD PTR[56+rsp],eax
- add edi,ebx
- lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
- mov eax,DWORD PTR[60+rsp]
- mov ebx,ebp
- mov ecx,ebp
- xor eax,DWORD PTR[4+rsp]
- mov edx,edi
- and ebx,r11d
- xor eax,DWORD PTR[28+rsp]
- or ecx,r11d
- rol edx,5
- xor eax,DWORD PTR[48+rsp]
- and ecx,r12d
- add esi,edx
- rol eax,1
- or ebx,ecx
- rol ebp,30
- mov DWORD PTR[60+rsp],eax
- add esi,ebx
- lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
- mov eax,DWORD PTR[rsp]
- mov ebx,edi
+ xor edx,DWORD PTR[48+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[((-899497514))+rdi*1+rbp]
+ xor edx,DWORD PTR[8+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor edx,DWORD PTR[28+rsp]
+ rol r12d,30
+ add edi,eax
+ rol edx,1
+ mov DWORD PTR[40+rsp],edx
+ mov ebp,DWORD PTR[44+rsp]
+ mov eax,r12d
mov ecx,edi
- xor eax,DWORD PTR[8+rsp]
- mov r12d,esi
- and ebx,ebp
- xor eax,DWORD PTR[32+rsp]
- or ecx,ebp
- rol r12d,5
- xor eax,DWORD PTR[52+rsp]
- and ecx,r11d
- add edx,r12d
- rol eax,1
- or ebx,ecx
- rol edi,30
- mov DWORD PTR[rsp],eax
- add edx,ebx
- lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax]
- mov eax,DWORD PTR[4+rsp]
- mov ebx,esi
+ xor ebp,DWORD PTR[52+rsp]
+ xor eax,r11d
+ rol ecx,5
+ lea esi,DWORD PTR[((-899497514))+rsi*1+rdx]
+ xor ebp,DWORD PTR[12+rsp]
+ xor eax,r13d
+ add esi,ecx
+ xor ebp,DWORD PTR[32+rsp]
+ rol r11d,30
+ add esi,eax
+ rol ebp,1
+ mov DWORD PTR[44+rsp],ebp
+ mov edx,DWORD PTR[48+rsp]
+ mov eax,r11d
mov ecx,esi
- xor eax,DWORD PTR[12+rsp]
- mov r11d,edx
- and ebx,edi
- xor eax,DWORD PTR[36+rsp]
- or ecx,edi
- rol r11d,5
- xor eax,DWORD PTR[56+rsp]
- and ecx,ebp
- add r12d,r11d
- rol eax,1
- or ebx,ecx
+ xor edx,DWORD PTR[56+rsp]
+ xor eax,edi
+ rol ecx,5
+ lea r13d,DWORD PTR[((-899497514))+r13*1+rbp]
+ xor edx,DWORD PTR[16+rsp]
+ xor eax,r12d
+ add r13d,ecx
+ xor edx,DWORD PTR[36+rsp]
+ rol edi,30
+ add r13d,eax
+ rol edx,1
+ mov DWORD PTR[48+rsp],edx
+ mov ebp,DWORD PTR[52+rsp]
+ mov eax,edi
+ mov ecx,r13d
+ xor ebp,DWORD PTR[60+rsp]
+ xor eax,esi
+ rol ecx,5
+ lea r12d,DWORD PTR[((-899497514))+r12*1+rdx]
+ xor ebp,DWORD PTR[20+rsp]
+ xor eax,r11d
+ add r12d,ecx
+ xor ebp,DWORD PTR[40+rsp]
rol esi,30
- mov DWORD PTR[4+rsp],eax
- add r12d,ebx
- lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax]
- mov eax,DWORD PTR[8+rsp]
- mov ebx,edx
- mov ecx,edx
- xor eax,DWORD PTR[16+rsp]
- mov ebp,r12d
- and ebx,esi
- xor eax,DWORD PTR[40+rsp]
- or ecx,esi
- rol ebp,5
- xor eax,DWORD PTR[60+rsp]
- and ecx,edi
- add r11d,ebp
- rol eax,1
- or ebx,ecx
- rol edx,30
- mov DWORD PTR[8+rsp],eax
- add r11d,ebx
- lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax]
- mov eax,DWORD PTR[12+rsp]
- mov ebx,r12d
+ add r12d,eax
+ rol ebp,1
+ mov edx,DWORD PTR[56+rsp]
+ mov eax,esi
mov ecx,r12d
- xor eax,DWORD PTR[20+rsp]
- mov edi,r11d
- and ebx,edx
- xor eax,DWORD PTR[44+rsp]
- or ecx,edx
- rol edi,5
- xor eax,DWORD PTR[rsp]
- and ecx,esi
- add ebp,edi
- rol eax,1
- or ebx,ecx
- rol r12d,30
- mov DWORD PTR[12+rsp],eax
- add ebp,ebx
- lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax]
- mov eax,DWORD PTR[16+rsp]
- mov ebx,r11d
+ xor edx,DWORD PTR[rsp]
+ xor eax,r13d
+ rol ecx,5
+ lea r11d,DWORD PTR[((-899497514))+r11*1+rbp]
+ xor edx,DWORD PTR[24+rsp]
+ xor eax,edi
+ add r11d,ecx
+ xor edx,DWORD PTR[44+rsp]
+ rol r13d,30
+ add r11d,eax
+ rol edx,1
+ mov ebp,DWORD PTR[60+rsp]
+ mov eax,r13d
mov ecx,r11d
- xor eax,DWORD PTR[24+rsp]
- mov esi,ebp
- and ebx,r12d
- xor eax,DWORD PTR[48+rsp]
- or ecx,r12d
- rol esi,5
- xor eax,DWORD PTR[4+rsp]
- and ecx,edx
- add edi,esi
- rol eax,1
- or ebx,ecx
+ xor ebp,DWORD PTR[4+rsp]
+ xor eax,r12d
+ rol ecx,5
+ lea edi,DWORD PTR[((-899497514))+rdi*1+rdx]
+ xor ebp,DWORD PTR[28+rsp]
+ xor eax,esi
+ add edi,ecx
+ xor ebp,DWORD PTR[48+rsp]
+ rol r12d,30
+ add edi,eax
+ rol ebp,1
+ mov eax,r12d
+ mov ecx,edi
+ xor eax,r11d
+ lea esi,DWORD PTR[((-899497514))+rsi*1+rbp]
+ rol ecx,5
+ xor eax,r13d
+ add esi,ecx
rol r11d,30
- mov DWORD PTR[16+rsp],eax
- add edi,ebx
- lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
- mov eax,DWORD PTR[20+rsp]
- mov ebx,ebp
- mov ecx,ebp
- xor eax,DWORD PTR[28+rsp]
- mov edx,edi
- and ebx,r11d
- xor eax,DWORD PTR[52+rsp]
- or ecx,r11d
+ add esi,eax
+ add esi,DWORD PTR[r8]
+ add edi,DWORD PTR[4+r8]
+ add r11d,DWORD PTR[8+r8]
+ add r12d,DWORD PTR[12+r8]
+ add r13d,DWORD PTR[16+r8]
+ mov DWORD PTR[r8],esi
+ mov DWORD PTR[4+r8],edi
+ mov DWORD PTR[8+r8],r11d
+ mov DWORD PTR[12+r8],r12d
+ mov DWORD PTR[16+r8],r13d
+
+ sub r10,1
+ lea r9,QWORD PTR[64+r9]
+ jnz $L$loop
+
+ mov rsi,QWORD PTR[64+rsp]
+ mov r13,QWORD PTR[rsi]
+ mov r12,QWORD PTR[8+rsi]
+ mov rbp,QWORD PTR[16+rsi]
+ mov rbx,QWORD PTR[24+rsi]
+ lea rsp,QWORD PTR[32+rsi]
+$L$epilogue::
+ mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
+ mov rsi,QWORD PTR[16+rsp]
+ DB 0F3h,0C3h ;repret
+$L$SEH_end_sha1_block_data_order::
+sha1_block_data_order ENDP
+
+ALIGN 16
+sha1_block_data_order_ssse3 PROC PRIVATE
+ mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
+ mov QWORD PTR[16+rsp],rsi
+ mov rax,rsp
+$L$SEH_begin_sha1_block_data_order_ssse3::
+ mov rdi,rcx
+ mov rsi,rdx
+ mov rdx,r8
+
+
+_ssse3_shortcut::
+ push rbx
+ push rbp
+ push r12
+ lea rsp,QWORD PTR[((-144))+rsp]
+ movaps XMMWORD PTR[(64+0)+rsp],xmm6
+ movaps XMMWORD PTR[(64+16)+rsp],xmm7
+ movaps XMMWORD PTR[(64+32)+rsp],xmm8
+ movaps XMMWORD PTR[(64+48)+rsp],xmm9
+ movaps XMMWORD PTR[(64+64)+rsp],xmm10
+$L$prologue_ssse3::
+ mov r8,rdi
+ mov r9,rsi
+ mov r10,rdx
+
+ shl r10,6
+ add r10,r9
+ lea r11,QWORD PTR[K_XX_XX]
+
+ mov eax,DWORD PTR[r8]
+ mov ebx,DWORD PTR[4+r8]
+ mov ecx,DWORD PTR[8+r8]
+ mov edx,DWORD PTR[12+r8]
+ mov esi,ebx
+ mov ebp,DWORD PTR[16+r8]
+
+ movdqa xmm6,XMMWORD PTR[64+r11]
+ movdqa xmm9,XMMWORD PTR[r11]
+ movdqu xmm0,XMMWORD PTR[r9]
+ movdqu xmm1,XMMWORD PTR[16+r9]
+ movdqu xmm2,XMMWORD PTR[32+r9]
+ movdqu xmm3,XMMWORD PTR[48+r9]
+DB 102,15,56,0,198
+ add r9,64
+DB 102,15,56,0,206
+DB 102,15,56,0,214
+DB 102,15,56,0,222
+ paddd xmm0,xmm9
+ paddd xmm1,xmm9
+ paddd xmm2,xmm9
+ movdqa XMMWORD PTR[rsp],xmm0
+ psubd xmm0,xmm9
+ movdqa XMMWORD PTR[16+rsp],xmm1
+ psubd xmm1,xmm9
+ movdqa XMMWORD PTR[32+rsp],xmm2
+ psubd xmm2,xmm9
+ jmp $L$oop_ssse3
+ALIGN 16
+$L$oop_ssse3::
+ movdqa xmm4,xmm1
+ add ebp,DWORD PTR[rsp]
+ xor ecx,edx
+ movdqa xmm8,xmm3
+DB 102,15,58,15,224,8
+ mov edi,eax
+ rol eax,5
+ paddd xmm9,xmm3
+ and esi,ecx
+ xor ecx,edx
+ psrldq xmm8,4
+ xor esi,edx
+ add ebp,eax
+ pxor xmm4,xmm0
+ ror ebx,2
+ add ebp,esi
+ pxor xmm8,xmm2
+ add edx,DWORD PTR[4+rsp]
+ xor ebx,ecx
+ mov esi,ebp
+ rol ebp,5
+ pxor xmm4,xmm8
+ and edi,ebx
+ xor ebx,ecx
+ movdqa XMMWORD PTR[48+rsp],xmm9
+ xor edi,ecx
+ add edx,ebp
+ movdqa xmm10,xmm4
+ movdqa xmm8,xmm4
+ ror eax,7
+ add edx,edi
+ add ecx,DWORD PTR[8+rsp]
+ xor eax,ebx
+ pslldq xmm10,12
+ paddd xmm4,xmm4
+ mov edi,edx
rol edx,5
- xor eax,DWORD PTR[8+rsp]
- and ecx,r12d
- add esi,edx
- rol eax,1
- or ebx,ecx
- rol ebp,30
- mov DWORD PTR[20+rsp],eax
- add esi,ebx
- lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
- mov eax,DWORD PTR[24+rsp]
- mov ebx,edi
- mov ecx,edi
- xor eax,DWORD PTR[32+rsp]
- mov r12d,esi
- and ebx,ebp
- xor eax,DWORD PTR[56+rsp]
- or ecx,ebp
- rol r12d,5
- xor eax,DWORD PTR[12+rsp]
- and ecx,r11d
- add edx,r12d
- rol eax,1
- or ebx,ecx
- rol edi,30
- mov DWORD PTR[24+rsp],eax
- add edx,ebx
- lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax]
- mov eax,DWORD PTR[28+rsp]
- mov ebx,esi
- mov ecx,esi
- xor eax,DWORD PTR[36+rsp]
- mov r11d,edx
- and ebx,edi
- xor eax,DWORD PTR[60+rsp]
- or ecx,edi
- rol r11d,5
- xor eax,DWORD PTR[16+rsp]
- and ecx,ebp
- add r12d,r11d
- rol eax,1
- or ebx,ecx
- rol esi,30
- mov DWORD PTR[28+rsp],eax
- add r12d,ebx
- lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax]
- mov eax,DWORD PTR[32+rsp]
- mov ebx,edx
- mov ecx,edx
- xor eax,DWORD PTR[40+rsp]
- mov ebp,r12d
- and ebx,esi
- xor eax,DWORD PTR[rsp]
- or ecx,esi
+ and esi,eax
+ xor eax,ebx
+ psrld xmm8,31
+ xor esi,ebx
+ add ecx,edx
+ movdqa xmm9,xmm10
+ ror ebp,7
+ add ecx,esi
+ psrld xmm10,30
+ por xmm4,xmm8
+ add ebx,DWORD PTR[12+rsp]
+ xor ebp,eax
+ mov esi,ecx
+ rol ecx,5
+ pslld xmm9,2
+ pxor xmm4,xmm10
+ and edi,ebp
+ xor ebp,eax
+ movdqa xmm10,XMMWORD PTR[r11]
+ xor edi,eax
+ add ebx,ecx
+ pxor xmm4,xmm9
+ ror edx,7
+ add ebx,edi
+ movdqa xmm5,xmm2
+ add eax,DWORD PTR[16+rsp]
+ xor edx,ebp
+ movdqa xmm9,xmm4
+DB 102,15,58,15,233,8
+ mov edi,ebx
+ rol ebx,5
+ paddd xmm10,xmm4
+ and esi,edx
+ xor edx,ebp
+ psrldq xmm9,4
+ xor esi,ebp
+ add eax,ebx
+ pxor xmm5,xmm1
+ ror ecx,7
+ add eax,esi
+ pxor xmm9,xmm3
+ add ebp,DWORD PTR[20+rsp]
+ xor ecx,edx
+ mov esi,eax
+ rol eax,5
+ pxor xmm5,xmm9
+ and edi,ecx
+ xor ecx,edx
+ movdqa XMMWORD PTR[rsp],xmm10
+ xor edi,edx
+ add ebp,eax
+ movdqa xmm8,xmm5
+ movdqa xmm9,xmm5
+ ror ebx,7
+ add ebp,edi
+ add edx,DWORD PTR[24+rsp]
+ xor ebx,ecx
+ pslldq xmm8,12
+ paddd xmm5,xmm5
+ mov edi,ebp
rol ebp,5
- xor eax,DWORD PTR[20+rsp]
- and ecx,edi
- add r11d,ebp
- rol eax,1
- or ebx,ecx
- rol edx,30
- mov DWORD PTR[32+rsp],eax
- add r11d,ebx
- lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax]
- mov eax,DWORD PTR[36+rsp]
- mov ebx,r12d
- mov ecx,r12d
- xor eax,DWORD PTR[44+rsp]
- mov edi,r11d
- and ebx,edx
- xor eax,DWORD PTR[4+rsp]
- or ecx,edx
- rol edi,5
- xor eax,DWORD PTR[24+rsp]
- and ecx,esi
+ and esi,ebx
+ xor ebx,ecx
+ psrld xmm9,31
+ xor esi,ecx
+ add edx,ebp
+ movdqa xmm10,xmm8
+ ror eax,7
+ add edx,esi
+ psrld xmm8,30
+ por xmm5,xmm9
+ add ecx,DWORD PTR[28+rsp]
+ xor eax,ebx
+ mov esi,edx
+ rol edx,5
+ pslld xmm10,2
+ pxor xmm5,xmm8
+ and edi,eax
+ xor eax,ebx
+ movdqa xmm8,XMMWORD PTR[16+r11]
+ xor edi,ebx
+ add ecx,edx
+ pxor xmm5,xmm10
+ ror ebp,7
+ add ecx,edi
+ movdqa xmm6,xmm3
+ add ebx,DWORD PTR[32+rsp]
+ xor ebp,eax
+ movdqa xmm10,xmm5
+DB 102,15,58,15,242,8
+ mov edi,ecx
+ rol ecx,5
+ paddd xmm8,xmm5
+ and esi,ebp
+ xor ebp,eax
+ psrldq xmm10,4
+ xor esi,eax
+ add ebx,ecx
+ pxor xmm6,xmm2
+ ror edx,7
+ add ebx,esi
+ pxor xmm10,xmm4
+ add eax,DWORD PTR[36+rsp]
+ xor edx,ebp
+ mov esi,ebx
+ rol ebx,5
+ pxor xmm6,xmm10
+ and edi,edx
+ xor edx,ebp
+ movdqa XMMWORD PTR[16+rsp],xmm8
+ xor edi,ebp
+ add eax,ebx
+ movdqa xmm9,xmm6
+ movdqa xmm10,xmm6
+ ror ecx,7
+ add eax,edi
+ add ebp,DWORD PTR[40+rsp]
+ xor ecx,edx
+ pslldq xmm9,12
+ paddd xmm6,xmm6
+ mov edi,eax
+ rol eax,5
+ and esi,ecx
+ xor ecx,edx
+ psrld xmm10,31
+ xor esi,edx
+ add ebp,eax
+ movdqa xmm8,xmm9
+ ror ebx,7
+ add ebp,esi
+ psrld xmm9,30
+ por xmm6,xmm10
+ add edx,DWORD PTR[44+rsp]
+ xor ebx,ecx
+ mov esi,ebp
+ rol ebp,5
+ pslld xmm8,2
+ pxor xmm6,xmm9
+ and edi,ebx
+ xor ebx,ecx
+ movdqa xmm9,XMMWORD PTR[16+r11]
+ xor edi,ecx
+ add edx,ebp
+ pxor xmm6,xmm8
+ ror eax,7
+ add edx,edi
+ movdqa xmm7,xmm4
+ add ecx,DWORD PTR[48+rsp]
+ xor eax,ebx
+ movdqa xmm8,xmm6
+DB 102,15,58,15,251,8
+ mov edi,edx
+ rol edx,5
+ paddd xmm9,xmm6
+ and esi,eax
+ xor eax,ebx
+ psrldq xmm8,4
+ xor esi,ebx
+ add ecx,edx
+ pxor xmm7,xmm3
+ ror ebp,7
+ add ecx,esi
+ pxor xmm8,xmm5
+ add ebx,DWORD PTR[52+rsp]
+ xor ebp,eax
+ mov esi,ecx
+ rol ecx,5
+ pxor xmm7,xmm8
+ and edi,ebp
+ xor ebp,eax
+ movdqa XMMWORD PTR[32+rsp],xmm9
+ xor edi,eax
+ add ebx,ecx
+ movdqa xmm10,xmm7
+ movdqa xmm8,xmm7
+ ror edx,7
+ add ebx,edi
+ add eax,DWORD PTR[56+rsp]
+ xor edx,ebp
+ pslldq xmm10,12
+ paddd xmm7,xmm7
+ mov edi,ebx
+ rol ebx,5
+ and esi,edx
+ xor edx,ebp
+ psrld xmm8,31
+ xor esi,ebp
+ add eax,ebx
+ movdqa xmm9,xmm10
+ ror ecx,7
+ add eax,esi
+ psrld xmm10,30
+ por xmm7,xmm8
+ add ebp,DWORD PTR[60+rsp]
+ xor ecx,edx
+ mov esi,eax
+ rol eax,5
+ pslld xmm9,2
+ pxor xmm7,xmm10
+ and edi,ecx
+ xor ecx,edx
+ movdqa xmm10,XMMWORD PTR[16+r11]
+ xor edi,edx
+ add ebp,eax
+ pxor xmm7,xmm9
+ ror ebx,7
add ebp,edi
- rol eax,1
- or ebx,ecx
- rol r12d,30
- mov DWORD PTR[36+rsp],eax
- add ebp,ebx
- lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax]
- mov eax,DWORD PTR[40+rsp]
- mov ebx,r11d
- mov ecx,r11d
- xor eax,DWORD PTR[48+rsp]
+ movdqa xmm9,xmm7
+ add edx,DWORD PTR[rsp]
+ pxor xmm0,xmm4
+DB 102,68,15,58,15,206,8
+ xor ebx,ecx
+ mov edi,ebp
+ rol ebp,5
+ pxor xmm0,xmm1
+ and esi,ebx
+ xor ebx,ecx
+ movdqa xmm8,xmm10
+ paddd xmm10,xmm7
+ xor esi,ecx
+ add edx,ebp
+ pxor xmm0,xmm9
+ ror eax,7
+ add edx,esi
+ add ecx,DWORD PTR[4+rsp]
+ xor eax,ebx
+ movdqa xmm9,xmm0
+ movdqa XMMWORD PTR[48+rsp],xmm10
+ mov esi,edx
+ rol edx,5
+ and edi,eax
+ xor eax,ebx
+ pslld xmm0,2
+ xor edi,ebx
+ add ecx,edx
+ psrld xmm9,30
+ ror ebp,7
+ add ecx,edi
+ add ebx,DWORD PTR[8+rsp]
+ xor ebp,eax
+ mov edi,ecx
+ rol ecx,5
+ por xmm0,xmm9
+ and esi,ebp
+ xor ebp,eax
+ movdqa xmm10,xmm0
+ xor esi,eax
+ add ebx,ecx
+ ror edx,7
+ add ebx,esi
+ add eax,DWORD PTR[12+rsp]
+ xor edx,ebp
+ mov esi,ebx
+ rol ebx,5
+ and edi,edx
+ xor edx,ebp
+ xor edi,ebp
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ add ebp,DWORD PTR[16+rsp]
+ pxor xmm1,xmm5
+DB 102,68,15,58,15,215,8
+ xor esi,edx
+ mov edi,eax
+ rol eax,5
+ pxor xmm1,xmm2
+ xor esi,ecx
+ add ebp,eax
+ movdqa xmm9,xmm8
+ paddd xmm8,xmm0
+ ror ebx,7
+ add ebp,esi
+ pxor xmm1,xmm10
+ add edx,DWORD PTR[20+rsp]
+ xor edi,ecx
mov esi,ebp
- and ebx,r12d
- xor eax,DWORD PTR[8+rsp]
- or ecx,r12d
- rol esi,5
- xor eax,DWORD PTR[28+rsp]
- and ecx,edx
- add edi,esi
- rol eax,1
- or ebx,ecx
- rol r11d,30
- mov DWORD PTR[40+rsp],eax
- add edi,ebx
- lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
- mov eax,DWORD PTR[44+rsp]
- mov ebx,ebp
- mov ecx,ebp
- xor eax,DWORD PTR[52+rsp]
- mov edx,edi
- and ebx,r11d
- xor eax,DWORD PTR[12+rsp]
- or ecx,r11d
+ rol ebp,5
+ movdqa xmm10,xmm1
+ movdqa XMMWORD PTR[rsp],xmm8
+ xor edi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,edi
+ pslld xmm1,2
+ add ecx,DWORD PTR[24+rsp]
+ xor esi,ebx
+ psrld xmm10,30
+ mov edi,edx
rol edx,5
- xor eax,DWORD PTR[32+rsp]
- and ecx,r12d
- add esi,edx
- rol eax,1
- or ebx,ecx
- rol ebp,30
- mov DWORD PTR[44+rsp],eax
- add esi,ebx
- lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
- mov eax,DWORD PTR[48+rsp]
- mov ebx,edi
- mov ecx,edi
- xor eax,DWORD PTR[56+rsp]
- mov r12d,esi
- and ebx,ebp
- xor eax,DWORD PTR[16+rsp]
- or ecx,ebp
- rol r12d,5
- xor eax,DWORD PTR[36+rsp]
- and ecx,r11d
- add edx,r12d
- rol eax,1
- or ebx,ecx
- rol edi,30
- mov DWORD PTR[48+rsp],eax
- add edx,ebx
- lea r12d,DWORD PTR[3395469782+r11*1+rax]
- mov eax,DWORD PTR[52+rsp]
- mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[60+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[20+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[40+rsp]
- rol esi,30
- add r12d,ebx
- rol eax,1
- mov DWORD PTR[52+rsp],eax
- lea r11d,DWORD PTR[3395469782+rbp*1+rax]
- mov eax,DWORD PTR[56+rsp]
- mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[rsp]
- xor ebx,edx
+ xor esi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,esi
+ por xmm1,xmm10
+ add ebx,DWORD PTR[28+rsp]
+ xor edi,eax
+ movdqa xmm8,xmm1
+ mov esi,ecx
+ rol ecx,5
+ xor edi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,edi
+ add eax,DWORD PTR[32+rsp]
+ pxor xmm2,xmm6
+DB 102,68,15,58,15,192,8
+ xor esi,ebp
+ mov edi,ebx
+ rol ebx,5
+ pxor xmm2,xmm3
+ xor esi,edx
+ add eax,ebx
+ movdqa xmm10,XMMWORD PTR[32+r11]
+ paddd xmm9,xmm1
+ ror ecx,7
+ add eax,esi
+ pxor xmm2,xmm8
+ add ebp,DWORD PTR[36+rsp]
+ xor edi,edx
+ mov esi,eax
+ rol eax,5
+ movdqa xmm8,xmm2
+ movdqa XMMWORD PTR[16+rsp],xmm9
+ xor edi,ecx
+ add ebp,eax
+ ror ebx,7
+ add ebp,edi
+ pslld xmm2,2
+ add edx,DWORD PTR[40+rsp]
+ xor esi,ecx
+ psrld xmm8,30
+ mov edi,ebp
rol ebp,5
- xor eax,DWORD PTR[24+rsp]
- xor ebx,edi
- add r11d,ebp
- xor eax,DWORD PTR[44+rsp]
- rol edx,30
- add r11d,ebx
- rol eax,1
- mov DWORD PTR[56+rsp],eax
- lea ebp,DWORD PTR[3395469782+rdi*1+rax]
- mov eax,DWORD PTR[60+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[4+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[28+rsp]
- xor ebx,esi
+ xor esi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,esi
+ por xmm2,xmm8
+ add ecx,DWORD PTR[44+rsp]
+ xor edi,ebx
+ movdqa xmm9,xmm2
+ mov esi,edx
+ rol edx,5
+ xor edi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,edi
+ add ebx,DWORD PTR[48+rsp]
+ pxor xmm3,xmm7
+DB 102,68,15,58,15,201,8
+ xor esi,eax
+ mov edi,ecx
+ rol ecx,5
+ pxor xmm3,xmm4
+ xor esi,ebp
+ add ebx,ecx
+ movdqa xmm8,xmm10
+ paddd xmm10,xmm2
+ ror edx,7
+ add ebx,esi
+ pxor xmm3,xmm9
+ add eax,DWORD PTR[52+rsp]
+ xor edi,ebp
+ mov esi,ebx
+ rol ebx,5
+ movdqa xmm9,xmm3
+ movdqa XMMWORD PTR[32+rsp],xmm10
+ xor edi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ pslld xmm3,2
+ add ebp,DWORD PTR[56+rsp]
+ xor esi,edx
+ psrld xmm9,30
+ mov edi,eax
+ rol eax,5
+ xor esi,ecx
+ add ebp,eax
+ ror ebx,7
+ add ebp,esi
+ por xmm3,xmm9
+ add edx,DWORD PTR[60+rsp]
+ xor edi,ecx
+ movdqa xmm10,xmm3
+ mov esi,ebp
+ rol ebp,5
+ xor edi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,edi
+ add ecx,DWORD PTR[rsp]
+ pxor xmm4,xmm0
+DB 102,68,15,58,15,210,8
+ xor esi,ebx
+ mov edi,edx
+ rol edx,5
+ pxor xmm4,xmm5
+ xor esi,eax
+ add ecx,edx
+ movdqa xmm9,xmm8
+ paddd xmm8,xmm3
+ ror ebp,7
+ add ecx,esi
+ pxor xmm4,xmm10
+ add ebx,DWORD PTR[4+rsp]
+ xor edi,eax
+ mov esi,ecx
+ rol ecx,5
+ movdqa xmm10,xmm4
+ movdqa XMMWORD PTR[48+rsp],xmm8
+ xor edi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,edi
+ pslld xmm4,2
+ add eax,DWORD PTR[8+rsp]
+ xor esi,ebp
+ psrld xmm10,30
+ mov edi,ebx
+ rol ebx,5
+ xor esi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,esi
+ por xmm4,xmm10
+ add ebp,DWORD PTR[12+rsp]
+ xor edi,edx
+ movdqa xmm8,xmm4
+ mov esi,eax
+ rol eax,5
+ xor edi,ecx
+ add ebp,eax
+ ror ebx,7
add ebp,edi
- xor eax,DWORD PTR[48+rsp]
- rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[60+rsp],eax
- lea edi,DWORD PTR[3395469782+rsi*1+rax]
- mov eax,DWORD PTR[rsp]
- mov ebx,r12d
+ add edx,DWORD PTR[16+rsp]
+ pxor xmm5,xmm1
+DB 102,68,15,58,15,195,8
+ xor esi,ecx
+ mov edi,ebp
+ rol ebp,5
+ pxor xmm5,xmm6
+ xor esi,ebx
+ add edx,ebp
+ movdqa xmm10,xmm9
+ paddd xmm9,xmm4
+ ror eax,7
+ add edx,esi
+ pxor xmm5,xmm8
+ add ecx,DWORD PTR[20+rsp]
+ xor edi,ebx
+ mov esi,edx
+ rol edx,5
+ movdqa xmm8,xmm5
+ movdqa XMMWORD PTR[rsp],xmm9
+ xor edi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,edi
+ pslld xmm5,2
+ add ebx,DWORD PTR[24+rsp]
+ xor esi,eax
+ psrld xmm8,30
+ mov edi,ecx
+ rol ecx,5
+ xor esi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,esi
+ por xmm5,xmm8
+ add eax,DWORD PTR[28+rsp]
+ xor edi,ebp
+ movdqa xmm9,xmm5
+ mov esi,ebx
+ rol ebx,5
+ xor edi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ mov edi,ecx
+ pxor xmm6,xmm2
+DB 102,68,15,58,15,204,8
+ xor ecx,edx
+ add ebp,DWORD PTR[32+rsp]
+ and edi,edx
+ pxor xmm6,xmm7
+ and esi,ecx
+ ror ebx,7
+ movdqa xmm8,xmm10
+ paddd xmm10,xmm5
+ add ebp,edi
+ mov edi,eax
+ pxor xmm6,xmm9
+ rol eax,5
+ add ebp,esi
+ xor ecx,edx
+ add ebp,eax
+ movdqa xmm9,xmm6
+ movdqa XMMWORD PTR[16+rsp],xmm10
+ mov esi,ebx
+ xor ebx,ecx
+ add edx,DWORD PTR[36+rsp]
+ and esi,ecx
+ pslld xmm6,2
+ and edi,ebx
+ ror eax,7
+ psrld xmm9,30
+ add edx,esi
mov esi,ebp
- xor eax,DWORD PTR[8+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[32+rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[52+rsp]
- rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[rsp],eax
- lea esi,DWORD PTR[3395469782+rdx*1+rax]
- mov eax,DWORD PTR[4+rsp]
- mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[12+rsp]
- xor ebx,ebp
+ rol ebp,5
+ add edx,edi
+ xor ebx,ecx
+ add edx,ebp
+ por xmm6,xmm9
+ mov edi,eax
+ xor eax,ebx
+ movdqa xmm10,xmm6
+ add ecx,DWORD PTR[40+rsp]
+ and edi,ebx
+ and esi,eax
+ ror ebp,7
+ add ecx,edi
+ mov edi,edx
rol edx,5
- xor eax,DWORD PTR[36+rsp]
- xor ebx,r12d
- add esi,edx
- xor eax,DWORD PTR[56+rsp]
- rol ebp,30
- add esi,ebx
- rol eax,1
- mov DWORD PTR[4+rsp],eax
- lea edx,DWORD PTR[3395469782+r12*1+rax]
- mov eax,DWORD PTR[8+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[16+rsp]
- xor ebx,edi
- rol r12d,5
- xor eax,DWORD PTR[40+rsp]
- xor ebx,r11d
- add edx,r12d
- xor eax,DWORD PTR[60+rsp]
- rol edi,30
- add edx,ebx
- rol eax,1
- mov DWORD PTR[8+rsp],eax
- lea r12d,DWORD PTR[3395469782+r11*1+rax]
- mov eax,DWORD PTR[12+rsp]
- mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[20+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[44+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[rsp]
- rol esi,30
- add r12d,ebx
- rol eax,1
- mov DWORD PTR[12+rsp],eax
- lea r11d,DWORD PTR[3395469782+rbp*1+rax]
- mov eax,DWORD PTR[16+rsp]
- mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[24+rsp]
- xor ebx,edx
+ add ecx,esi
+ xor eax,ebx
+ add ecx,edx
+ mov esi,ebp
+ xor ebp,eax
+ add ebx,DWORD PTR[44+rsp]
+ and esi,eax
+ and edi,ebp
+ ror edx,7
+ add ebx,esi
+ mov esi,ecx
+ rol ecx,5
+ add ebx,edi
+ xor ebp,eax
+ add ebx,ecx
+ mov edi,edx
+ pxor xmm7,xmm3
+DB 102,68,15,58,15,213,8
+ xor edx,ebp
+ add eax,DWORD PTR[48+rsp]
+ and edi,ebp
+ pxor xmm7,xmm0
+ and esi,edx
+ ror ecx,7
+ movdqa xmm9,XMMWORD PTR[48+r11]
+ paddd xmm8,xmm6
+ add eax,edi
+ mov edi,ebx
+ pxor xmm7,xmm10
+ rol ebx,5
+ add eax,esi
+ xor edx,ebp
+ add eax,ebx
+ movdqa xmm10,xmm7
+ movdqa XMMWORD PTR[32+rsp],xmm8
+ mov esi,ecx
+ xor ecx,edx
+ add ebp,DWORD PTR[52+rsp]
+ and esi,edx
+ pslld xmm7,2
+ and edi,ecx
+ ror ebx,7
+ psrld xmm10,30
+ add ebp,esi
+ mov esi,eax
+ rol eax,5
+ add ebp,edi
+ xor ecx,edx
+ add ebp,eax
+ por xmm7,xmm10
+ mov edi,ebx
+ xor ebx,ecx
+ movdqa xmm8,xmm7
+ add edx,DWORD PTR[56+rsp]
+ and edi,ecx
+ and esi,ebx
+ ror eax,7
+ add edx,edi
+ mov edi,ebp
rol ebp,5
- xor eax,DWORD PTR[48+rsp]
- xor ebx,edi
- add r11d,ebp
- xor eax,DWORD PTR[4+rsp]
- rol edx,30
- add r11d,ebx
- rol eax,1
- mov DWORD PTR[16+rsp],eax
- lea ebp,DWORD PTR[3395469782+rdi*1+rax]
- mov eax,DWORD PTR[20+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[28+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[52+rsp]
- xor ebx,esi
+ add edx,esi
+ xor ebx,ecx
+ add edx,ebp
+ mov esi,eax
+ xor eax,ebx
+ add ecx,DWORD PTR[60+rsp]
+ and esi,ebx
+ and edi,eax
+ ror ebp,7
+ add ecx,esi
+ mov esi,edx
+ rol edx,5
+ add ecx,edi
+ xor eax,ebx
+ add ecx,edx
+ mov edi,ebp
+ pxor xmm0,xmm4
+DB 102,68,15,58,15,198,8
+ xor ebp,eax
+ add ebx,DWORD PTR[rsp]
+ and edi,eax
+ pxor xmm0,xmm1
+ and esi,ebp
+ ror edx,7
+ movdqa xmm10,xmm9
+ paddd xmm9,xmm7
+ add ebx,edi
+ mov edi,ecx
+ pxor xmm0,xmm8
+ rol ecx,5
+ add ebx,esi
+ xor ebp,eax
+ add ebx,ecx
+ movdqa xmm8,xmm0
+ movdqa XMMWORD PTR[48+rsp],xmm9
+ mov esi,edx
+ xor edx,ebp
+ add eax,DWORD PTR[4+rsp]
+ and esi,ebp
+ pslld xmm0,2
+ and edi,edx
+ ror ecx,7
+ psrld xmm8,30
+ add eax,esi
+ mov esi,ebx
+ rol ebx,5
+ add eax,edi
+ xor edx,ebp
+ add eax,ebx
+ por xmm0,xmm8
+ mov edi,ecx
+ xor ecx,edx
+ movdqa xmm9,xmm0
+ add ebp,DWORD PTR[8+rsp]
+ and edi,edx
+ and esi,ecx
+ ror ebx,7
add ebp,edi
- xor eax,DWORD PTR[8+rsp]
- rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[20+rsp],eax
- lea edi,DWORD PTR[3395469782+rsi*1+rax]
- mov eax,DWORD PTR[24+rsp]
- mov ebx,r12d
+ mov edi,eax
+ rol eax,5
+ add ebp,esi
+ xor ecx,edx
+ add ebp,eax
+ mov esi,ebx
+ xor ebx,ecx
+ add edx,DWORD PTR[12+rsp]
+ and esi,ecx
+ and edi,ebx
+ ror eax,7
+ add edx,esi
mov esi,ebp
- xor eax,DWORD PTR[32+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[56+rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[12+rsp]
- rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[24+rsp],eax
- lea esi,DWORD PTR[3395469782+rdx*1+rax]
- mov eax,DWORD PTR[28+rsp]
- mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[36+rsp]
- xor ebx,ebp
+ rol ebp,5
+ add edx,edi
+ xor ebx,ecx
+ add edx,ebp
+ mov edi,eax
+ pxor xmm1,xmm5
+DB 102,68,15,58,15,207,8
+ xor eax,ebx
+ add ecx,DWORD PTR[16+rsp]
+ and edi,ebx
+ pxor xmm1,xmm2
+ and esi,eax
+ ror ebp,7
+ movdqa xmm8,xmm10
+ paddd xmm10,xmm0
+ add ecx,edi
+ mov edi,edx
+ pxor xmm1,xmm9
rol edx,5
- xor eax,DWORD PTR[60+rsp]
- xor ebx,r12d
- add esi,edx
- xor eax,DWORD PTR[16+rsp]
- rol ebp,30
- add esi,ebx
- rol eax,1
- mov DWORD PTR[28+rsp],eax
- lea edx,DWORD PTR[3395469782+r12*1+rax]
- mov eax,DWORD PTR[32+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[40+rsp]
- xor ebx,edi
- rol r12d,5
- xor eax,DWORD PTR[rsp]
- xor ebx,r11d
- add edx,r12d
- xor eax,DWORD PTR[20+rsp]
- rol edi,30
- add edx,ebx
- rol eax,1
- mov DWORD PTR[32+rsp],eax
- lea r12d,DWORD PTR[3395469782+r11*1+rax]
- mov eax,DWORD PTR[36+rsp]
- mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[44+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[4+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[24+rsp]
- rol esi,30
- add r12d,ebx
- rol eax,1
- mov DWORD PTR[36+rsp],eax
- lea r11d,DWORD PTR[3395469782+rbp*1+rax]
- mov eax,DWORD PTR[40+rsp]
- mov ebx,esi
- mov ebp,r12d
- xor eax,DWORD PTR[48+rsp]
- xor ebx,edx
+ add ecx,esi
+ xor eax,ebx
+ add ecx,edx
+ movdqa xmm9,xmm1
+ movdqa XMMWORD PTR[rsp],xmm10
+ mov esi,ebp
+ xor ebp,eax
+ add ebx,DWORD PTR[20+rsp]
+ and esi,eax
+ pslld xmm1,2
+ and edi,ebp
+ ror edx,7
+ psrld xmm9,30
+ add ebx,esi
+ mov esi,ecx
+ rol ecx,5
+ add ebx,edi
+ xor ebp,eax
+ add ebx,ecx
+ por xmm1,xmm9
+ mov edi,edx
+ xor edx,ebp
+ movdqa xmm10,xmm1
+ add eax,DWORD PTR[24+rsp]
+ and edi,ebp
+ and esi,edx
+ ror ecx,7
+ add eax,edi
+ mov edi,ebx
+ rol ebx,5
+ add eax,esi
+ xor edx,ebp
+ add eax,ebx
+ mov esi,ecx
+ xor ecx,edx
+ add ebp,DWORD PTR[28+rsp]
+ and esi,edx
+ and edi,ecx
+ ror ebx,7
+ add ebp,esi
+ mov esi,eax
+ rol eax,5
+ add ebp,edi
+ xor ecx,edx
+ add ebp,eax
+ mov edi,ebx
+ pxor xmm2,xmm6
+DB 102,68,15,58,15,208,8
+ xor ebx,ecx
+ add edx,DWORD PTR[32+rsp]
+ and edi,ecx
+ pxor xmm2,xmm3
+ and esi,ebx
+ ror eax,7
+ movdqa xmm9,xmm8
+ paddd xmm8,xmm1
+ add edx,edi
+ mov edi,ebp
+ pxor xmm2,xmm10
rol ebp,5
- xor eax,DWORD PTR[8+rsp]
- xor ebx,edi
- add r11d,ebp
- xor eax,DWORD PTR[28+rsp]
- rol edx,30
- add r11d,ebx
- rol eax,1
- mov DWORD PTR[40+rsp],eax
- lea ebp,DWORD PTR[3395469782+rdi*1+rax]
- mov eax,DWORD PTR[44+rsp]
- mov ebx,edx
- mov edi,r11d
- xor eax,DWORD PTR[52+rsp]
- xor ebx,r12d
- rol edi,5
- xor eax,DWORD PTR[12+rsp]
- xor ebx,esi
+ add edx,esi
+ xor ebx,ecx
+ add edx,ebp
+ movdqa xmm10,xmm2
+ movdqa XMMWORD PTR[16+rsp],xmm8
+ mov esi,eax
+ xor eax,ebx
+ add ecx,DWORD PTR[36+rsp]
+ and esi,ebx
+ pslld xmm2,2
+ and edi,eax
+ ror ebp,7
+ psrld xmm10,30
+ add ecx,esi
+ mov esi,edx
+ rol edx,5
+ add ecx,edi
+ xor eax,ebx
+ add ecx,edx
+ por xmm2,xmm10
+ mov edi,ebp
+ xor ebp,eax
+ movdqa xmm8,xmm2
+ add ebx,DWORD PTR[40+rsp]
+ and edi,eax
+ and esi,ebp
+ ror edx,7
+ add ebx,edi
+ mov edi,ecx
+ rol ecx,5
+ add ebx,esi
+ xor ebp,eax
+ add ebx,ecx
+ mov esi,edx
+ xor edx,ebp
+ add eax,DWORD PTR[44+rsp]
+ and esi,ebp
+ and edi,edx
+ ror ecx,7
+ add eax,esi
+ mov esi,ebx
+ rol ebx,5
+ add eax,edi
+ xor edx,ebp
+ add eax,ebx
+ add ebp,DWORD PTR[48+rsp]
+ pxor xmm3,xmm7
+DB 102,68,15,58,15,193,8
+ xor esi,edx
+ mov edi,eax
+ rol eax,5
+ pxor xmm3,xmm4
+ xor esi,ecx
+ add ebp,eax
+ movdqa xmm10,xmm9
+ paddd xmm9,xmm2
+ ror ebx,7
+ add ebp,esi
+ pxor xmm3,xmm8
+ add edx,DWORD PTR[52+rsp]
+ xor edi,ecx
+ mov esi,ebp
+ rol ebp,5
+ movdqa xmm8,xmm3
+ movdqa XMMWORD PTR[32+rsp],xmm9
+ xor edi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,edi
+ pslld xmm3,2
+ add ecx,DWORD PTR[56+rsp]
+ xor esi,ebx
+ psrld xmm8,30
+ mov edi,edx
+ rol edx,5
+ xor esi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,esi
+ por xmm3,xmm8
+ add ebx,DWORD PTR[60+rsp]
+ xor edi,eax
+ mov esi,ecx
+ rol ecx,5
+ xor edi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,edi
+ add eax,DWORD PTR[rsp]
+ paddd xmm10,xmm3
+ xor esi,ebp
+ mov edi,ebx
+ rol ebx,5
+ xor esi,edx
+ movdqa XMMWORD PTR[48+rsp],xmm10
+ add eax,ebx
+ ror ecx,7
+ add eax,esi
+ add ebp,DWORD PTR[4+rsp]
+ xor edi,edx
+ mov esi,eax
+ rol eax,5
+ xor edi,ecx
+ add ebp,eax
+ ror ebx,7
add ebp,edi
- xor eax,DWORD PTR[32+rsp]
- rol r12d,30
- add ebp,ebx
- rol eax,1
- mov DWORD PTR[44+rsp],eax
- lea edi,DWORD PTR[3395469782+rsi*1+rax]
- mov eax,DWORD PTR[48+rsp]
- mov ebx,r12d
+ add edx,DWORD PTR[8+rsp]
+ xor esi,ecx
+ mov edi,ebp
+ rol ebp,5
+ xor esi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,esi
+ add ecx,DWORD PTR[12+rsp]
+ xor edi,ebx
+ mov esi,edx
+ rol edx,5
+ xor edi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,edi
+ cmp r9,r10
+ je $L$done_ssse3
+ movdqa xmm6,XMMWORD PTR[64+r11]
+ movdqa xmm9,XMMWORD PTR[r11]
+ movdqu xmm0,XMMWORD PTR[r9]
+ movdqu xmm1,XMMWORD PTR[16+r9]
+ movdqu xmm2,XMMWORD PTR[32+r9]
+ movdqu xmm3,XMMWORD PTR[48+r9]
+DB 102,15,56,0,198
+ add r9,64
+ add ebx,DWORD PTR[16+rsp]
+ xor esi,eax
+DB 102,15,56,0,206
+ mov edi,ecx
+ rol ecx,5
+ paddd xmm0,xmm9
+ xor esi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,esi
+ movdqa XMMWORD PTR[rsp],xmm0
+ add eax,DWORD PTR[20+rsp]
+ xor edi,ebp
+ psubd xmm0,xmm9
+ mov esi,ebx
+ rol ebx,5
+ xor edi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ add ebp,DWORD PTR[24+rsp]
+ xor esi,edx
+ mov edi,eax
+ rol eax,5
+ xor esi,ecx
+ add ebp,eax
+ ror ebx,7
+ add ebp,esi
+ add edx,DWORD PTR[28+rsp]
+ xor edi,ecx
mov esi,ebp
- xor eax,DWORD PTR[56+rsp]
- xor ebx,r11d
- rol esi,5
- xor eax,DWORD PTR[16+rsp]
- xor ebx,edx
- add edi,esi
- xor eax,DWORD PTR[36+rsp]
- rol r11d,30
- add edi,ebx
- rol eax,1
- mov DWORD PTR[48+rsp],eax
- lea esi,DWORD PTR[3395469782+rdx*1+rax]
- mov eax,DWORD PTR[52+rsp]
- mov ebx,r11d
- mov edx,edi
- xor eax,DWORD PTR[60+rsp]
- xor ebx,ebp
+ rol ebp,5
+ xor edi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,edi
+ add ecx,DWORD PTR[32+rsp]
+ xor esi,ebx
+DB 102,15,56,0,214
+ mov edi,edx
rol edx,5
- xor eax,DWORD PTR[20+rsp]
- xor ebx,r12d
- add esi,edx
- xor eax,DWORD PTR[40+rsp]
- rol ebp,30
- add esi,ebx
- rol eax,1
- lea edx,DWORD PTR[3395469782+r12*1+rax]
- mov eax,DWORD PTR[56+rsp]
- mov ebx,ebp
- mov r12d,esi
- xor eax,DWORD PTR[rsp]
- xor ebx,edi
- rol r12d,5
- xor eax,DWORD PTR[24+rsp]
- xor ebx,r11d
- add edx,r12d
- xor eax,DWORD PTR[44+rsp]
- rol edi,30
- add edx,ebx
- rol eax,1
- lea r12d,DWORD PTR[3395469782+r11*1+rax]
- mov eax,DWORD PTR[60+rsp]
- mov ebx,edi
- mov r11d,edx
- xor eax,DWORD PTR[4+rsp]
- xor ebx,esi
- rol r11d,5
- xor eax,DWORD PTR[28+rsp]
- xor ebx,ebp
- add r12d,r11d
- xor eax,DWORD PTR[48+rsp]
- rol esi,30
- add r12d,ebx
- rol eax,1
- lea r11d,DWORD PTR[3395469782+rbp*1+rax]
- mov ebx,esi
- mov ebp,r12d
- xor ebx,edx
+ paddd xmm1,xmm9
+ xor esi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,esi
+ movdqa XMMWORD PTR[16+rsp],xmm1
+ add ebx,DWORD PTR[36+rsp]
+ xor edi,eax
+ psubd xmm1,xmm9
+ mov esi,ecx
+ rol ecx,5
+ xor edi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,edi
+ add eax,DWORD PTR[40+rsp]
+ xor esi,ebp
+ mov edi,ebx
+ rol ebx,5
+ xor esi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,esi
+ add ebp,DWORD PTR[44+rsp]
+ xor edi,edx
+ mov esi,eax
+ rol eax,5
+ xor edi,ecx
+ add ebp,eax
+ ror ebx,7
+ add ebp,edi
+ add edx,DWORD PTR[48+rsp]
+ xor esi,ecx
+DB 102,15,56,0,222
+ mov edi,ebp
rol ebp,5
- xor ebx,edi
- add r11d,ebp
- rol edx,30
- add r11d,ebx
- add r11d,DWORD PTR[r8]
- add r12d,DWORD PTR[4+r8]
- add edx,DWORD PTR[8+r8]
- add esi,DWORD PTR[12+r8]
- add edi,DWORD PTR[16+r8]
- mov DWORD PTR[r8],r11d
- mov DWORD PTR[4+r8],r12d
- mov DWORD PTR[8+r8],edx
- mov DWORD PTR[12+r8],esi
- mov DWORD PTR[16+r8],edi
-
- xchg edx,r11d
- xchg esi,r12d
- xchg edi,r11d
- xchg ebp,r12d
+ paddd xmm2,xmm9
+ xor esi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,esi
+ movdqa XMMWORD PTR[32+rsp],xmm2
+ add ecx,DWORD PTR[52+rsp]
+ xor edi,ebx
+ psubd xmm2,xmm9
+ mov esi,edx
+ rol edx,5
+ xor edi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,edi
+ add ebx,DWORD PTR[56+rsp]
+ xor esi,eax
+ mov edi,ecx
+ rol ecx,5
+ xor esi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,esi
+ add eax,DWORD PTR[60+rsp]
+ xor edi,ebp
+ mov esi,ebx
+ rol ebx,5
+ xor edi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ add eax,DWORD PTR[r8]
+ add esi,DWORD PTR[4+r8]
+ add ecx,DWORD PTR[8+r8]
+ add edx,DWORD PTR[12+r8]
+ mov DWORD PTR[r8],eax
+ add ebp,DWORD PTR[16+r8]
+ mov DWORD PTR[4+r8],esi
+ mov ebx,esi
+ mov DWORD PTR[8+r8],ecx
+ mov DWORD PTR[12+r8],edx
+ mov DWORD PTR[16+r8],ebp
+ jmp $L$oop_ssse3
- lea r9,QWORD PTR[64+r9]
- sub r10,1
- jnz $L$loop
- mov rsi,QWORD PTR[64+rsp]
+ALIGN 16
+$L$done_ssse3::
+ add ebx,DWORD PTR[16+rsp]
+ xor esi,eax
+ mov edi,ecx
+ rol ecx,5
+ xor esi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,esi
+ add eax,DWORD PTR[20+rsp]
+ xor edi,ebp
+ mov esi,ebx
+ rol ebx,5
+ xor edi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ add ebp,DWORD PTR[24+rsp]
+ xor esi,edx
+ mov edi,eax
+ rol eax,5
+ xor esi,ecx
+ add ebp,eax
+ ror ebx,7
+ add ebp,esi
+ add edx,DWORD PTR[28+rsp]
+ xor edi,ecx
+ mov esi,ebp
+ rol ebp,5
+ xor edi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,edi
+ add ecx,DWORD PTR[32+rsp]
+ xor esi,ebx
+ mov edi,edx
+ rol edx,5
+ xor esi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,esi
+ add ebx,DWORD PTR[36+rsp]
+ xor edi,eax
+ mov esi,ecx
+ rol ecx,5
+ xor edi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,edi
+ add eax,DWORD PTR[40+rsp]
+ xor esi,ebp
+ mov edi,ebx
+ rol ebx,5
+ xor esi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,esi
+ add ebp,DWORD PTR[44+rsp]
+ xor edi,edx
+ mov esi,eax
+ rol eax,5
+ xor edi,ecx
+ add ebp,eax
+ ror ebx,7
+ add ebp,edi
+ add edx,DWORD PTR[48+rsp]
+ xor esi,ecx
+ mov edi,ebp
+ rol ebp,5
+ xor esi,ebx
+ add edx,ebp
+ ror eax,7
+ add edx,esi
+ add ecx,DWORD PTR[52+rsp]
+ xor edi,ebx
+ mov esi,edx
+ rol edx,5
+ xor edi,eax
+ add ecx,edx
+ ror ebp,7
+ add ecx,edi
+ add ebx,DWORD PTR[56+rsp]
+ xor esi,eax
+ mov edi,ecx
+ rol ecx,5
+ xor esi,ebp
+ add ebx,ecx
+ ror edx,7
+ add ebx,esi
+ add eax,DWORD PTR[60+rsp]
+ xor edi,ebp
+ mov esi,ebx
+ rol ebx,5
+ xor edi,edx
+ add eax,ebx
+ ror ecx,7
+ add eax,edi
+ add eax,DWORD PTR[r8]
+ add esi,DWORD PTR[4+r8]
+ add ecx,DWORD PTR[8+r8]
+ mov DWORD PTR[r8],eax
+ add edx,DWORD PTR[12+r8]
+ mov DWORD PTR[4+r8],esi
+ add ebp,DWORD PTR[16+r8]
+ mov DWORD PTR[8+r8],ecx
+ mov DWORD PTR[12+r8],edx
+ mov DWORD PTR[16+r8],ebp
+ movaps xmm6,XMMWORD PTR[((64+0))+rsp]
+ movaps xmm7,XMMWORD PTR[((64+16))+rsp]
+ movaps xmm8,XMMWORD PTR[((64+32))+rsp]
+ movaps xmm9,XMMWORD PTR[((64+48))+rsp]
+ movaps xmm10,XMMWORD PTR[((64+64))+rsp]
+ lea rsi,QWORD PTR[144+rsp]
mov r12,QWORD PTR[rsi]
mov rbp,QWORD PTR[8+rsi]
mov rbx,QWORD PTR[16+rsi]
lea rsp,QWORD PTR[24+rsi]
-$L$epilogue::
+$L$epilogue_ssse3::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
-$L$SEH_end_sha1_block_data_order::
-sha1_block_data_order ENDP
+$L$SEH_end_sha1_block_data_order_ssse3::
+sha1_block_data_order_ssse3 ENDP
+ALIGN 64
+K_XX_XX::
+ DD 05a827999h,05a827999h,05a827999h,05a827999h
+
+ DD 06ed9eba1h,06ed9eba1h,06ed9eba1h,06ed9eba1h
+
+ DD 08f1bbcdch,08f1bbcdch,08f1bbcdch,08f1bbcdch
+
+ DD 0ca62c1d6h,0ca62c1d6h,0ca62c1d6h,0ca62c1d6h
+
+ DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
+
DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44
DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60
DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114
DB 103,62,0
-ALIGN 16
+ALIGN 64
EXTERN __imp_RtlVirtualUnwind:NEAR
ALIGN 16
@@ -1317,16 +2549,67 @@ se_handler PROC PRIVATE
lea r10,QWORD PTR[$L$prologue]
cmp rbx,r10
- jb $L$in_prologue
+ jb $L$common_seh_tail
mov rax,QWORD PTR[152+r8]
lea r10,QWORD PTR[$L$epilogue]
cmp rbx,r10
- jae $L$in_prologue
+ jae $L$common_seh_tail
mov rax,QWORD PTR[64+rax]
- lea rax,QWORD PTR[24+rax]
+ lea rax,QWORD PTR[32+rax]
+
+ mov rbx,QWORD PTR[((-8))+rax]
+ mov rbp,QWORD PTR[((-16))+rax]
+ mov r12,QWORD PTR[((-24))+rax]
+ mov r13,QWORD PTR[((-32))+rax]
+ mov QWORD PTR[144+r8],rbx
+ mov QWORD PTR[160+r8],rbp
+ mov QWORD PTR[216+r8],r12
+ mov QWORD PTR[224+r8],r13
+
+ jmp $L$common_seh_tail
+se_handler ENDP
+
+
+ALIGN 16
+ssse3_handler PROC PRIVATE
+ push rsi
+ push rdi
+ push rbx
+ push rbp
+ push r12
+ push r13
+ push r14
+ push r15
+ pushfq
+ sub rsp,64
+
+ mov rax,QWORD PTR[120+r8]
+ mov rbx,QWORD PTR[248+r8]
+
+ mov rsi,QWORD PTR[8+r9]
+ mov r11,QWORD PTR[56+r9]
+
+ mov r10d,DWORD PTR[r11]
+ lea r10,QWORD PTR[r10*1+rsi]
+ cmp rbx,r10
+ jb $L$common_seh_tail
+
+ mov rax,QWORD PTR[152+r8]
+
+ mov r10d,DWORD PTR[4+r11]
+ lea r10,QWORD PTR[r10*1+rsi]
+ cmp rbx,r10
+ jae $L$common_seh_tail
+
+ lea rsi,QWORD PTR[64+rax]
+ lea rdi,QWORD PTR[512+r8]
+ mov ecx,10
+ DD 0a548f3fch
+
+ lea rax,QWORD PTR[168+rax]
mov rbx,QWORD PTR[((-8))+rax]
mov rbp,QWORD PTR[((-16))+rax]
@@ -1335,7 +2618,7 @@ se_handler PROC PRIVATE
mov QWORD PTR[160+r8],rbp
mov QWORD PTR[216+r8],r12
-$L$in_prologue::
+$L$common_seh_tail::
mov rdi,QWORD PTR[8+rax]
mov rsi,QWORD PTR[16+rax]
mov QWORD PTR[152+r8],rax
@@ -1374,7 +2657,7 @@ $L$in_prologue::
pop rdi
pop rsi
DB 0F3h,0C3h ;repret
-se_handler ENDP
+ssse3_handler ENDP
.text$ ENDS
.pdata SEGMENT READONLY ALIGN(4)
@@ -1382,13 +2665,20 @@ ALIGN 4
DD imagerel $L$SEH_begin_sha1_block_data_order
DD imagerel $L$SEH_end_sha1_block_data_order
DD imagerel $L$SEH_info_sha1_block_data_order
-
+ DD imagerel $L$SEH_begin_sha1_block_data_order_ssse3
+ DD imagerel $L$SEH_end_sha1_block_data_order_ssse3
+ DD imagerel $L$SEH_info_sha1_block_data_order_ssse3
.pdata ENDS
.xdata SEGMENT READONLY ALIGN(8)
ALIGN 8
$L$SEH_info_sha1_block_data_order::
DB 9,0,0,0
DD imagerel se_handler
+$L$SEH_info_sha1_block_data_order_ssse3::
+DB 9,0,0,0
+ DD imagerel ssse3_handler
+ DD imagerel $L$prologue_ssse3,imagerel $L$epilogue_ssse3
+
.xdata ENDS
END