aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/sha/asm/s1-win32.asm
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/sha/asm/s1-win32.asm')
-rw-r--r--crypto/sha/asm/s1-win32.asm1716
1 files changed, 1716 insertions, 0 deletions
diff --git a/crypto/sha/asm/s1-win32.asm b/crypto/sha/asm/s1-win32.asm
new file mode 100644
index 00000000000..699afdb0223
--- /dev/null
+++ b/crypto/sha/asm/s1-win32.asm
@@ -0,0 +1,1716 @@
+ ; Don't even think of reading this code
+ ; It was automatically generated by sha1-586.pl
+ ; Which is a perl program used to generate the x86 assember for
+ ; any of elf, a.out, BSDI,Win32, or Solaris
+ ;
+ TITLE sha1-586.asm
+ .486
+.model FLAT
+_TEXT SEGMENT
+PUBLIC _sha1_block_asm_data_order
+
+_sha1_block_asm_data_order PROC NEAR
+ mov ecx, DWORD PTR 12[esp]
+ push esi
+ shl ecx, 6
+ mov esi, DWORD PTR 12[esp]
+ push ebp
+ add ecx, esi
+ push ebx
+ mov ebp, DWORD PTR 16[esp]
+ push edi
+ mov edx, DWORD PTR 12[ebp]
+ sub esp, 108
+ mov edi, DWORD PTR 16[ebp]
+ mov ebx, DWORD PTR 8[ebp]
+ mov DWORD PTR 68[esp],ecx
+ ; First we need to setup the X array
+L000start:
+ ; First, load the words onto the stack in network byte order
+ mov eax, DWORD PTR [esi]
+ mov ecx, DWORD PTR 4[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR [esp],eax
+ mov DWORD PTR 4[esp],ecx
+ mov eax, DWORD PTR 8[esi]
+ mov ecx, DWORD PTR 12[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 8[esp],eax
+ mov DWORD PTR 12[esp],ecx
+ mov eax, DWORD PTR 16[esi]
+ mov ecx, DWORD PTR 20[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 16[esp],eax
+ mov DWORD PTR 20[esp],ecx
+ mov eax, DWORD PTR 24[esi]
+ mov ecx, DWORD PTR 28[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 24[esp],eax
+ mov DWORD PTR 28[esp],ecx
+ mov eax, DWORD PTR 32[esi]
+ mov ecx, DWORD PTR 36[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 32[esp],eax
+ mov DWORD PTR 36[esp],ecx
+ mov eax, DWORD PTR 40[esi]
+ mov ecx, DWORD PTR 44[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 40[esp],eax
+ mov DWORD PTR 44[esp],ecx
+ mov eax, DWORD PTR 48[esi]
+ mov ecx, DWORD PTR 52[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 48[esp],eax
+ mov DWORD PTR 52[esp],ecx
+ mov eax, DWORD PTR 56[esi]
+ mov ecx, DWORD PTR 60[esi]
+ bswap eax
+ bswap ecx
+ mov DWORD PTR 56[esp],eax
+ mov DWORD PTR 60[esp],ecx
+ ; We now have the X array on the stack
+ ; starting at sp-4
+ mov DWORD PTR 132[esp],esi
+L001shortcut:
+ ;
+ ; Start processing
+ mov eax, DWORD PTR [ebp]
+ mov ecx, DWORD PTR 4[ebp]
+ ; 00_15 0
+ mov esi, ebx
+ mov ebp, eax
+ xor esi, edx
+ rol ebp, 5
+ and esi, ecx
+ add ebp, edi
+ ror ecx, 1
+ mov edi, DWORD PTR [esp]
+ ror ecx, 1
+ xor esi, edx
+ lea ebp, DWORD PTR 1518500249[edi*1+ebp]
+ mov edi, ecx
+ add esi, ebp
+ xor edi, ebx
+ mov ebp, esi
+ and edi, eax
+ rol ebp, 5
+ add ebp, edx
+ mov edx, DWORD PTR 4[esp]
+ ror eax, 1
+ xor edi, ebx
+ ror eax, 1
+ lea ebp, DWORD PTR 1518500249[edx*1+ebp]
+ add edi, ebp
+ ; 00_15 2
+ mov edx, eax
+ mov ebp, edi
+ xor edx, ecx
+ rol ebp, 5
+ and edx, esi
+ add ebp, ebx
+ ror esi, 1
+ mov ebx, DWORD PTR 8[esp]
+ ror esi, 1
+ xor edx, ecx
+ lea ebp, DWORD PTR 1518500249[ebx*1+ebp]
+ mov ebx, esi
+ add edx, ebp
+ xor ebx, eax
+ mov ebp, edx
+ and ebx, edi
+ rol ebp, 5
+ add ebp, ecx
+ mov ecx, DWORD PTR 12[esp]
+ ror edi, 1
+ xor ebx, eax
+ ror edi, 1
+ lea ebp, DWORD PTR 1518500249[ecx*1+ebp]
+ add ebx, ebp
+ ; 00_15 4
+ mov ecx, edi
+ mov ebp, ebx
+ xor ecx, esi
+ rol ebp, 5
+ and ecx, edx
+ add ebp, eax
+ ror edx, 1
+ mov eax, DWORD PTR 16[esp]
+ ror edx, 1
+ xor ecx, esi
+ lea ebp, DWORD PTR 1518500249[eax*1+ebp]
+ mov eax, edx
+ add ecx, ebp
+ xor eax, edi
+ mov ebp, ecx
+ and eax, ebx
+ rol ebp, 5
+ add ebp, esi
+ mov esi, DWORD PTR 20[esp]
+ ror ebx, 1
+ xor eax, edi
+ ror ebx, 1
+ lea ebp, DWORD PTR 1518500249[esi*1+ebp]
+ add eax, ebp
+ ; 00_15 6
+ mov esi, ebx
+ mov ebp, eax
+ xor esi, edx
+ rol ebp, 5
+ and esi, ecx
+ add ebp, edi
+ ror ecx, 1
+ mov edi, DWORD PTR 24[esp]
+ ror ecx, 1
+ xor esi, edx
+ lea ebp, DWORD PTR 1518500249[edi*1+ebp]
+ mov edi, ecx
+ add esi, ebp
+ xor edi, ebx
+ mov ebp, esi
+ and edi, eax
+ rol ebp, 5
+ add ebp, edx
+ mov edx, DWORD PTR 28[esp]
+ ror eax, 1
+ xor edi, ebx
+ ror eax, 1
+ lea ebp, DWORD PTR 1518500249[edx*1+ebp]
+ add edi, ebp
+ ; 00_15 8
+ mov edx, eax
+ mov ebp, edi
+ xor edx, ecx
+ rol ebp, 5
+ and edx, esi
+ add ebp, ebx
+ ror esi, 1
+ mov ebx, DWORD PTR 32[esp]
+ ror esi, 1
+ xor edx, ecx
+ lea ebp, DWORD PTR 1518500249[ebx*1+ebp]
+ mov ebx, esi
+ add edx, ebp
+ xor ebx, eax
+ mov ebp, edx
+ and ebx, edi
+ rol ebp, 5
+ add ebp, ecx
+ mov ecx, DWORD PTR 36[esp]
+ ror edi, 1
+ xor ebx, eax
+ ror edi, 1
+ lea ebp, DWORD PTR 1518500249[ecx*1+ebp]
+ add ebx, ebp
+ ; 00_15 10
+ mov ecx, edi
+ mov ebp, ebx
+ xor ecx, esi
+ rol ebp, 5
+ and ecx, edx
+ add ebp, eax
+ ror edx, 1
+ mov eax, DWORD PTR 40[esp]
+ ror edx, 1
+ xor ecx, esi
+ lea ebp, DWORD PTR 1518500249[eax*1+ebp]
+ mov eax, edx
+ add ecx, ebp
+ xor eax, edi
+ mov ebp, ecx
+ and eax, ebx
+ rol ebp, 5
+ add ebp, esi
+ mov esi, DWORD PTR 44[esp]
+ ror ebx, 1
+ xor eax, edi
+ ror ebx, 1
+ lea ebp, DWORD PTR 1518500249[esi*1+ebp]
+ add eax, ebp
+ ; 00_15 12
+ mov esi, ebx
+ mov ebp, eax
+ xor esi, edx
+ rol ebp, 5
+ and esi, ecx
+ add ebp, edi
+ ror ecx, 1
+ mov edi, DWORD PTR 48[esp]
+ ror ecx, 1
+ xor esi, edx
+ lea ebp, DWORD PTR 1518500249[edi*1+ebp]
+ mov edi, ecx
+ add esi, ebp
+ xor edi, ebx
+ mov ebp, esi
+ and edi, eax
+ rol ebp, 5
+ add ebp, edx
+ mov edx, DWORD PTR 52[esp]
+ ror eax, 1
+ xor edi, ebx
+ ror eax, 1
+ lea ebp, DWORD PTR 1518500249[edx*1+ebp]
+ add edi, ebp
+ ; 00_15 14
+ mov edx, eax
+ mov ebp, edi
+ xor edx, ecx
+ rol ebp, 5
+ and edx, esi
+ add ebp, ebx
+ ror esi, 1
+ mov ebx, DWORD PTR 56[esp]
+ ror esi, 1
+ xor edx, ecx
+ lea ebp, DWORD PTR 1518500249[ebx*1+ebp]
+ mov ebx, esi
+ add edx, ebp
+ xor ebx, eax
+ mov ebp, edx
+ and ebx, edi
+ rol ebp, 5
+ add ebp, ecx
+ mov ecx, DWORD PTR 60[esp]
+ ror edi, 1
+ xor ebx, eax
+ ror edi, 1
+ lea ebp, DWORD PTR 1518500249[ecx*1+ebp]
+ add ebx, ebp
+ ; 16_19 16
+ nop
+ mov ebp, DWORD PTR [esp]
+ mov ecx, DWORD PTR 8[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 32[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor ecx, ebp
+ mov ebp, edi
+ rol ecx, 1
+ xor ebp, esi
+ mov DWORD PTR [esp],ecx
+ and ebp, edx
+ lea ecx, DWORD PTR 1518500249[eax*1+ecx]
+ xor ebp, esi
+ mov eax, ebx
+ add ecx, ebp
+ rol eax, 5
+ ror edx, 1
+ add ecx, eax
+ mov eax, DWORD PTR 4[esp]
+ mov ebp, DWORD PTR 12[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 56[esp]
+ ror edx, 1
+ xor eax, ebp
+ rol eax, 1
+ mov ebp, edx
+ xor ebp, edi
+ mov DWORD PTR 4[esp],eax
+ and ebp, ebx
+ lea eax, DWORD PTR 1518500249[esi*1+eax]
+ xor ebp, edi
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add eax, esi
+ ror ebx, 1
+ add eax, ebp
+ ; 16_19 18
+ mov ebp, DWORD PTR 8[esp]
+ mov esi, DWORD PTR 16[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor esi, ebp
+ mov ebp, ebx
+ rol esi, 1
+ xor ebp, edx
+ mov DWORD PTR 8[esp],esi
+ and ebp, ecx
+ lea esi, DWORD PTR 1518500249[edi*1+esi]
+ xor ebp, edx
+ mov edi, eax
+ add esi, ebp
+ rol edi, 5
+ ror ecx, 1
+ add esi, edi
+ mov edi, DWORD PTR 12[esp]
+ mov ebp, DWORD PTR 20[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR [esp]
+ ror ecx, 1
+ xor edi, ebp
+ rol edi, 1
+ mov ebp, ecx
+ xor ebp, ebx
+ mov DWORD PTR 12[esp],edi
+ and ebp, eax
+ lea edi, DWORD PTR 1518500249[edx*1+edi]
+ xor ebp, ebx
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edi, edx
+ ror eax, 1
+ add edi, ebp
+ ; 20_39 20
+ mov edx, DWORD PTR 16[esp]
+ mov ebp, DWORD PTR 24[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR 16[esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 1859775393[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 21
+ mov ebx, DWORD PTR 20[esp]
+ mov ebp, DWORD PTR 28[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 20[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 1859775393[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 20_39 22
+ mov ecx, DWORD PTR 24[esp]
+ mov ebp, DWORD PTR 32[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 56[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ xor ebp, edi
+ mov DWORD PTR 24[esp],ecx
+ xor ebp, esi
+ lea ecx, DWORD PTR 1859775393[eax*1+ecx]
+ mov eax, ebx
+ rol eax, 5
+ ror edx, 1
+ add eax, ebp
+ ror edx, 1
+ add ecx, eax
+ ; 20_39 23
+ mov eax, DWORD PTR 28[esp]
+ mov ebp, DWORD PTR 36[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor eax, ebp
+ mov ebp, ebx
+ rol eax, 1
+ xor ebp, edx
+ mov DWORD PTR 28[esp],eax
+ xor ebp, edi
+ lea eax, DWORD PTR 1859775393[esi*1+eax]
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add esi, ebp
+ ror ebx, 1
+ add eax, esi
+ ; 20_39 24
+ mov esi, DWORD PTR 32[esp]
+ mov ebp, DWORD PTR 40[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR [esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 32[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 1859775393[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 25
+ mov edi, DWORD PTR 36[esp]
+ mov ebp, DWORD PTR 44[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 24[esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 36[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 1859775393[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edx, ebp
+ ror eax, 1
+ add edi, edx
+ ; 20_39 26
+ mov edx, DWORD PTR 40[esp]
+ mov ebp, DWORD PTR 48[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR 40[esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 1859775393[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 27
+ mov ebx, DWORD PTR 44[esp]
+ mov ebp, DWORD PTR 52[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 32[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 44[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 1859775393[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 20_39 28
+ mov ecx, DWORD PTR 48[esp]
+ mov ebp, DWORD PTR 56[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ xor ebp, edi
+ mov DWORD PTR 48[esp],ecx
+ xor ebp, esi
+ lea ecx, DWORD PTR 1859775393[eax*1+ecx]
+ mov eax, ebx
+ rol eax, 5
+ ror edx, 1
+ add eax, ebp
+ ror edx, 1
+ add ecx, eax
+ ; 20_39 29
+ mov eax, DWORD PTR 52[esp]
+ mov ebp, DWORD PTR 60[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor eax, ebp
+ mov ebp, ebx
+ rol eax, 1
+ xor ebp, edx
+ mov DWORD PTR 52[esp],eax
+ xor ebp, edi
+ lea eax, DWORD PTR 1859775393[esi*1+eax]
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add esi, ebp
+ ror ebx, 1
+ add eax, esi
+ ; 20_39 30
+ mov esi, DWORD PTR 56[esp]
+ mov ebp, DWORD PTR [esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 24[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 56[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 1859775393[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 31
+ mov edi, DWORD PTR 60[esp]
+ mov ebp, DWORD PTR 4[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 60[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 1859775393[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edx, ebp
+ ror eax, 1
+ add edi, edx
+ ; 20_39 32
+ mov edx, DWORD PTR [esp]
+ mov ebp, DWORD PTR 8[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 32[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR [esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 1859775393[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 33
+ mov ebx, DWORD PTR 4[esp]
+ mov ebp, DWORD PTR 12[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 56[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 4[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 1859775393[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 20_39 34
+ mov ecx, DWORD PTR 8[esp]
+ mov ebp, DWORD PTR 16[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ xor ebp, edi
+ mov DWORD PTR 8[esp],ecx
+ xor ebp, esi
+ lea ecx, DWORD PTR 1859775393[eax*1+ecx]
+ mov eax, ebx
+ rol eax, 5
+ ror edx, 1
+ add eax, ebp
+ ror edx, 1
+ add ecx, eax
+ ; 20_39 35
+ mov eax, DWORD PTR 12[esp]
+ mov ebp, DWORD PTR 20[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR [esp]
+ xor eax, ebp
+ mov ebp, ebx
+ rol eax, 1
+ xor ebp, edx
+ mov DWORD PTR 12[esp],eax
+ xor ebp, edi
+ lea eax, DWORD PTR 1859775393[esi*1+eax]
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add esi, ebp
+ ror ebx, 1
+ add eax, esi
+ ; 20_39 36
+ mov esi, DWORD PTR 16[esp]
+ mov ebp, DWORD PTR 24[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 16[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 1859775393[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 37
+ mov edi, DWORD PTR 20[esp]
+ mov ebp, DWORD PTR 28[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 20[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 1859775393[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edx, ebp
+ ror eax, 1
+ add edi, edx
+ ; 20_39 38
+ mov edx, DWORD PTR 24[esp]
+ mov ebp, DWORD PTR 32[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 56[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR 24[esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 1859775393[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 39
+ mov ebx, DWORD PTR 28[esp]
+ mov ebp, DWORD PTR 36[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 28[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 1859775393[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 40_59 40
+ mov ecx, DWORD PTR 32[esp]
+ mov ebp, DWORD PTR 40[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR [esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ or ebp, edi
+ mov DWORD PTR 32[esp],ecx
+ and ebp, esi
+ lea ecx, DWORD PTR 2400959708[eax*1+ecx]
+ mov eax, edx
+ ror edx, 1
+ and eax, edi
+ or ebp, eax
+ mov eax, ebx
+ rol eax, 5
+ add ebp, eax
+ mov eax, DWORD PTR 36[esp]
+ add ecx, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 24[esp]
+ ror edx, 1
+ xor eax, ebp
+ rol eax, 1
+ mov ebp, ebx
+ mov DWORD PTR 36[esp],eax
+ or ebp, edx
+ lea eax, DWORD PTR 2400959708[esi*1+eax]
+ mov esi, ebx
+ and ebp, edi
+ and esi, edx
+ or ebp, esi
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add ebp, esi
+ ror ebx, 1
+ add eax, ebp
+ ; 40_59 41
+ ; 40_59 42
+ mov esi, DWORD PTR 40[esp]
+ mov ebp, DWORD PTR 48[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ or ebp, ebx
+ mov DWORD PTR 40[esp],esi
+ and ebp, edx
+ lea esi, DWORD PTR 2400959708[edi*1+esi]
+ mov edi, ecx
+ ror ecx, 1
+ and edi, ebx
+ or ebp, edi
+ mov edi, eax
+ rol edi, 5
+ add ebp, edi
+ mov edi, DWORD PTR 44[esp]
+ add esi, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 32[esp]
+ ror ecx, 1
+ xor edi, ebp
+ rol edi, 1
+ mov ebp, eax
+ mov DWORD PTR 44[esp],edi
+ or ebp, ecx
+ lea edi, DWORD PTR 2400959708[edx*1+edi]
+ mov edx, eax
+ and ebp, ebx
+ and edx, ecx
+ or ebp, edx
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add ebp, edx
+ ror eax, 1
+ add edi, ebp
+ ; 40_59 43
+ ; 40_59 44
+ mov edx, DWORD PTR 48[esp]
+ mov ebp, DWORD PTR 56[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ or ebp, eax
+ mov DWORD PTR 48[esp],edx
+ and ebp, ecx
+ lea edx, DWORD PTR 2400959708[ebx*1+edx]
+ mov ebx, esi
+ ror esi, 1
+ and ebx, eax
+ or ebp, ebx
+ mov ebx, edi
+ rol ebx, 5
+ add ebp, ebx
+ mov ebx, DWORD PTR 52[esp]
+ add edx, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 40[esp]
+ ror esi, 1
+ xor ebx, ebp
+ rol ebx, 1
+ mov ebp, edi
+ mov DWORD PTR 52[esp],ebx
+ or ebp, esi
+ lea ebx, DWORD PTR 2400959708[ecx*1+ebx]
+ mov ecx, edi
+ and ebp, eax
+ and ecx, esi
+ or ebp, ecx
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ebp, ecx
+ ror edi, 1
+ add ebx, ebp
+ ; 40_59 45
+ ; 40_59 46
+ mov ecx, DWORD PTR 56[esp]
+ mov ebp, DWORD PTR [esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 24[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ or ebp, edi
+ mov DWORD PTR 56[esp],ecx
+ and ebp, esi
+ lea ecx, DWORD PTR 2400959708[eax*1+ecx]
+ mov eax, edx
+ ror edx, 1
+ and eax, edi
+ or ebp, eax
+ mov eax, ebx
+ rol eax, 5
+ add ebp, eax
+ mov eax, DWORD PTR 60[esp]
+ add ecx, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 48[esp]
+ ror edx, 1
+ xor eax, ebp
+ rol eax, 1
+ mov ebp, ebx
+ mov DWORD PTR 60[esp],eax
+ or ebp, edx
+ lea eax, DWORD PTR 2400959708[esi*1+eax]
+ mov esi, ebx
+ and ebp, edi
+ and esi, edx
+ or ebp, esi
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add ebp, esi
+ ror ebx, 1
+ add eax, ebp
+ ; 40_59 47
+ ; 40_59 48
+ mov esi, DWORD PTR [esp]
+ mov ebp, DWORD PTR 8[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 32[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ or ebp, ebx
+ mov DWORD PTR [esp],esi
+ and ebp, edx
+ lea esi, DWORD PTR 2400959708[edi*1+esi]
+ mov edi, ecx
+ ror ecx, 1
+ and edi, ebx
+ or ebp, edi
+ mov edi, eax
+ rol edi, 5
+ add ebp, edi
+ mov edi, DWORD PTR 4[esp]
+ add esi, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 56[esp]
+ ror ecx, 1
+ xor edi, ebp
+ rol edi, 1
+ mov ebp, eax
+ mov DWORD PTR 4[esp],edi
+ or ebp, ecx
+ lea edi, DWORD PTR 2400959708[edx*1+edi]
+ mov edx, eax
+ and ebp, ebx
+ and edx, ecx
+ or ebp, edx
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add ebp, edx
+ ror eax, 1
+ add edi, ebp
+ ; 40_59 49
+ ; 40_59 50
+ mov edx, DWORD PTR 8[esp]
+ mov ebp, DWORD PTR 16[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ or ebp, eax
+ mov DWORD PTR 8[esp],edx
+ and ebp, ecx
+ lea edx, DWORD PTR 2400959708[ebx*1+edx]
+ mov ebx, esi
+ ror esi, 1
+ and ebx, eax
+ or ebp, ebx
+ mov ebx, edi
+ rol ebx, 5
+ add ebp, ebx
+ mov ebx, DWORD PTR 12[esp]
+ add edx, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR [esp]
+ ror esi, 1
+ xor ebx, ebp
+ rol ebx, 1
+ mov ebp, edi
+ mov DWORD PTR 12[esp],ebx
+ or ebp, esi
+ lea ebx, DWORD PTR 2400959708[ecx*1+ebx]
+ mov ecx, edi
+ and ebp, eax
+ and ecx, esi
+ or ebp, ecx
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ebp, ecx
+ ror edi, 1
+ add ebx, ebp
+ ; 40_59 51
+ ; 40_59 52
+ mov ecx, DWORD PTR 16[esp]
+ mov ebp, DWORD PTR 24[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ or ebp, edi
+ mov DWORD PTR 16[esp],ecx
+ and ebp, esi
+ lea ecx, DWORD PTR 2400959708[eax*1+ecx]
+ mov eax, edx
+ ror edx, 1
+ and eax, edi
+ or ebp, eax
+ mov eax, ebx
+ rol eax, 5
+ add ebp, eax
+ mov eax, DWORD PTR 20[esp]
+ add ecx, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 8[esp]
+ ror edx, 1
+ xor eax, ebp
+ rol eax, 1
+ mov ebp, ebx
+ mov DWORD PTR 20[esp],eax
+ or ebp, edx
+ lea eax, DWORD PTR 2400959708[esi*1+eax]
+ mov esi, ebx
+ and ebp, edi
+ and esi, edx
+ or ebp, esi
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add ebp, esi
+ ror ebx, 1
+ add eax, ebp
+ ; 40_59 53
+ ; 40_59 54
+ mov esi, DWORD PTR 24[esp]
+ mov ebp, DWORD PTR 32[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 56[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ or ebp, ebx
+ mov DWORD PTR 24[esp],esi
+ and ebp, edx
+ lea esi, DWORD PTR 2400959708[edi*1+esi]
+ mov edi, ecx
+ ror ecx, 1
+ and edi, ebx
+ or ebp, edi
+ mov edi, eax
+ rol edi, 5
+ add ebp, edi
+ mov edi, DWORD PTR 28[esp]
+ add esi, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 16[esp]
+ ror ecx, 1
+ xor edi, ebp
+ rol edi, 1
+ mov ebp, eax
+ mov DWORD PTR 28[esp],edi
+ or ebp, ecx
+ lea edi, DWORD PTR 2400959708[edx*1+edi]
+ mov edx, eax
+ and ebp, ebx
+ and edx, ecx
+ or ebp, edx
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add ebp, edx
+ ror eax, 1
+ add edi, ebp
+ ; 40_59 55
+ ; 40_59 56
+ mov edx, DWORD PTR 32[esp]
+ mov ebp, DWORD PTR 40[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR [esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ or ebp, eax
+ mov DWORD PTR 32[esp],edx
+ and ebp, ecx
+ lea edx, DWORD PTR 2400959708[ebx*1+edx]
+ mov ebx, esi
+ ror esi, 1
+ and ebx, eax
+ or ebp, ebx
+ mov ebx, edi
+ rol ebx, 5
+ add ebp, ebx
+ mov ebx, DWORD PTR 36[esp]
+ add edx, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 24[esp]
+ ror esi, 1
+ xor ebx, ebp
+ rol ebx, 1
+ mov ebp, edi
+ mov DWORD PTR 36[esp],ebx
+ or ebp, esi
+ lea ebx, DWORD PTR 2400959708[ecx*1+ebx]
+ mov ecx, edi
+ and ebp, eax
+ and ecx, esi
+ or ebp, ecx
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ebp, ecx
+ ror edi, 1
+ add ebx, ebp
+ ; 40_59 57
+ ; 40_59 58
+ mov ecx, DWORD PTR 40[esp]
+ mov ebp, DWORD PTR 48[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ or ebp, edi
+ mov DWORD PTR 40[esp],ecx
+ and ebp, esi
+ lea ecx, DWORD PTR 2400959708[eax*1+ecx]
+ mov eax, edx
+ ror edx, 1
+ and eax, edi
+ or ebp, eax
+ mov eax, ebx
+ rol eax, 5
+ add ebp, eax
+ mov eax, DWORD PTR 44[esp]
+ add ecx, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 32[esp]
+ ror edx, 1
+ xor eax, ebp
+ rol eax, 1
+ mov ebp, ebx
+ mov DWORD PTR 44[esp],eax
+ or ebp, edx
+ lea eax, DWORD PTR 2400959708[esi*1+eax]
+ mov esi, ebx
+ and ebp, edi
+ and esi, edx
+ or ebp, esi
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add ebp, esi
+ ror ebx, 1
+ add eax, ebp
+ ; 40_59 59
+ ; 20_39 60
+ mov esi, DWORD PTR 48[esp]
+ mov ebp, DWORD PTR 56[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 48[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 3395469782[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 61
+ mov edi, DWORD PTR 52[esp]
+ mov ebp, DWORD PTR 60[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 52[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 3395469782[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edx, ebp
+ ror eax, 1
+ add edi, edx
+ ; 20_39 62
+ mov edx, DWORD PTR 56[esp]
+ mov ebp, DWORD PTR [esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 24[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR 56[esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 3395469782[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 63
+ mov ebx, DWORD PTR 60[esp]
+ mov ebp, DWORD PTR 4[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 60[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 3395469782[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 20_39 64
+ mov ecx, DWORD PTR [esp]
+ mov ebp, DWORD PTR 8[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 32[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ xor ebp, edi
+ mov DWORD PTR [esp],ecx
+ xor ebp, esi
+ lea ecx, DWORD PTR 3395469782[eax*1+ecx]
+ mov eax, ebx
+ rol eax, 5
+ ror edx, 1
+ add eax, ebp
+ ror edx, 1
+ add ecx, eax
+ ; 20_39 65
+ mov eax, DWORD PTR 4[esp]
+ mov ebp, DWORD PTR 12[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 56[esp]
+ xor eax, ebp
+ mov ebp, ebx
+ rol eax, 1
+ xor ebp, edx
+ mov DWORD PTR 4[esp],eax
+ xor ebp, edi
+ lea eax, DWORD PTR 3395469782[esi*1+eax]
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add esi, ebp
+ ror ebx, 1
+ add eax, esi
+ ; 20_39 66
+ mov esi, DWORD PTR 8[esp]
+ mov ebp, DWORD PTR 16[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 8[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 3395469782[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 67
+ mov edi, DWORD PTR 12[esp]
+ mov ebp, DWORD PTR 20[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR [esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 12[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 3395469782[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edx, ebp
+ ror eax, 1
+ add edi, edx
+ ; 20_39 68
+ mov edx, DWORD PTR 16[esp]
+ mov ebp, DWORD PTR 24[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR 16[esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 3395469782[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 69
+ mov ebx, DWORD PTR 20[esp]
+ mov ebp, DWORD PTR 28[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 52[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 20[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 3395469782[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 20_39 70
+ mov ecx, DWORD PTR 24[esp]
+ mov ebp, DWORD PTR 32[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 56[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ xor ebp, edi
+ mov DWORD PTR 24[esp],ecx
+ xor ebp, esi
+ lea ecx, DWORD PTR 3395469782[eax*1+ecx]
+ mov eax, ebx
+ rol eax, 5
+ ror edx, 1
+ add eax, ebp
+ ror edx, 1
+ add ecx, eax
+ ; 20_39 71
+ mov eax, DWORD PTR 28[esp]
+ mov ebp, DWORD PTR 36[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 60[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor eax, ebp
+ mov ebp, ebx
+ rol eax, 1
+ xor ebp, edx
+ mov DWORD PTR 28[esp],eax
+ xor ebp, edi
+ lea eax, DWORD PTR 3395469782[esi*1+eax]
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add esi, ebp
+ ror ebx, 1
+ add eax, esi
+ ; 20_39 72
+ mov esi, DWORD PTR 32[esp]
+ mov ebp, DWORD PTR 40[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR [esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 32[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 3395469782[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 73
+ mov edi, DWORD PTR 36[esp]
+ mov ebp, DWORD PTR 44[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 4[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 24[esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 36[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 3395469782[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ ror eax, 1
+ add edx, ebp
+ ror eax, 1
+ add edi, edx
+ ; 20_39 74
+ mov edx, DWORD PTR 40[esp]
+ mov ebp, DWORD PTR 48[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 8[esp]
+ xor edx, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor edx, ebp
+ mov ebp, esi
+ rol edx, 1
+ xor ebp, eax
+ mov DWORD PTR 40[esp],edx
+ xor ebp, ecx
+ lea edx, DWORD PTR 3395469782[ebx*1+edx]
+ mov ebx, edi
+ rol ebx, 5
+ ror esi, 1
+ add ebx, ebp
+ ror esi, 1
+ add edx, ebx
+ ; 20_39 75
+ mov ebx, DWORD PTR 44[esp]
+ mov ebp, DWORD PTR 52[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 12[esp]
+ xor ebx, ebp
+ mov ebp, DWORD PTR 32[esp]
+ xor ebx, ebp
+ mov ebp, edi
+ rol ebx, 1
+ xor ebp, esi
+ mov DWORD PTR 44[esp],ebx
+ xor ebp, eax
+ lea ebx, DWORD PTR 3395469782[ecx*1+ebx]
+ mov ecx, edx
+ rol ecx, 5
+ ror edi, 1
+ add ecx, ebp
+ ror edi, 1
+ add ebx, ecx
+ ; 20_39 76
+ mov ecx, DWORD PTR 48[esp]
+ mov ebp, DWORD PTR 56[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 16[esp]
+ xor ecx, ebp
+ mov ebp, DWORD PTR 36[esp]
+ xor ecx, ebp
+ mov ebp, edx
+ rol ecx, 1
+ xor ebp, edi
+ mov DWORD PTR 48[esp],ecx
+ xor ebp, esi
+ lea ecx, DWORD PTR 3395469782[eax*1+ecx]
+ mov eax, ebx
+ rol eax, 5
+ ror edx, 1
+ add eax, ebp
+ ror edx, 1
+ add ecx, eax
+ ; 20_39 77
+ mov eax, DWORD PTR 52[esp]
+ mov ebp, DWORD PTR 60[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 20[esp]
+ xor eax, ebp
+ mov ebp, DWORD PTR 40[esp]
+ xor eax, ebp
+ mov ebp, ebx
+ rol eax, 1
+ xor ebp, edx
+ mov DWORD PTR 52[esp],eax
+ xor ebp, edi
+ lea eax, DWORD PTR 3395469782[esi*1+eax]
+ mov esi, ecx
+ rol esi, 5
+ ror ebx, 1
+ add esi, ebp
+ ror ebx, 1
+ add eax, esi
+ ; 20_39 78
+ mov esi, DWORD PTR 56[esp]
+ mov ebp, DWORD PTR [esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 24[esp]
+ xor esi, ebp
+ mov ebp, DWORD PTR 44[esp]
+ xor esi, ebp
+ mov ebp, ecx
+ rol esi, 1
+ xor ebp, ebx
+ mov DWORD PTR 56[esp],esi
+ xor ebp, edx
+ lea esi, DWORD PTR 3395469782[edi*1+esi]
+ mov edi, eax
+ rol edi, 5
+ ror ecx, 1
+ add edi, ebp
+ ror ecx, 1
+ add esi, edi
+ ; 20_39 79
+ mov edi, DWORD PTR 60[esp]
+ mov ebp, DWORD PTR 4[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 28[esp]
+ xor edi, ebp
+ mov ebp, DWORD PTR 48[esp]
+ xor edi, ebp
+ mov ebp, eax
+ rol edi, 1
+ xor ebp, ecx
+ mov DWORD PTR 60[esp],edi
+ xor ebp, ebx
+ lea edi, DWORD PTR 3395469782[edx*1+edi]
+ mov edx, esi
+ rol edx, 5
+ add edx, ebp
+ mov ebp, DWORD PTR 128[esp]
+ ror eax, 1
+ add edi, edx
+ ror eax, 1
+ ; End processing
+ ;
+ mov edx, DWORD PTR 12[ebp]
+ add edx, ecx
+ mov ecx, DWORD PTR 4[ebp]
+ add ecx, esi
+ mov esi, eax
+ mov eax, DWORD PTR [ebp]
+ mov DWORD PTR 12[ebp],edx
+ add eax, edi
+ mov edi, DWORD PTR 16[ebp]
+ add edi, ebx
+ mov ebx, DWORD PTR 8[ebp]
+ add ebx, esi
+ mov DWORD PTR [ebp],eax
+ mov esi, DWORD PTR 132[esp]
+ mov DWORD PTR 8[ebp],ebx
+ add esi, 64
+ mov eax, DWORD PTR 68[esp]
+ mov DWORD PTR 16[ebp],edi
+ cmp esi, eax
+ mov DWORD PTR 4[ebp],ecx
+ jl L000start
+ add esp, 108
+ pop edi
+ pop ebx
+ pop ebp
+ pop esi
+ ret
+_TEXT SEGMENT
+PUBLIC _sha1_block_asm_host_order
+
+_sha1_block_asm_host_order PROC NEAR
+ mov ecx, DWORD PTR 12[esp]
+ push esi
+ shl ecx, 6
+ mov esi, DWORD PTR 12[esp]
+ push ebp
+ add ecx, esi
+ push ebx
+ mov ebp, DWORD PTR 16[esp]
+ push edi
+ mov edx, DWORD PTR 12[ebp]
+ sub esp, 108
+ mov edi, DWORD PTR 16[ebp]
+ mov ebx, DWORD PTR 8[ebp]
+ mov DWORD PTR 68[esp],ecx
+ ; First we need to setup the X array
+ mov eax, DWORD PTR [esi]
+ mov ecx, DWORD PTR 4[esi]
+ mov DWORD PTR [esp],eax
+ mov DWORD PTR 4[esp],ecx
+ mov eax, DWORD PTR 8[esi]
+ mov ecx, DWORD PTR 12[esi]
+ mov DWORD PTR 8[esp],eax
+ mov DWORD PTR 12[esp],ecx
+ mov eax, DWORD PTR 16[esi]
+ mov ecx, DWORD PTR 20[esi]
+ mov DWORD PTR 16[esp],eax
+ mov DWORD PTR 20[esp],ecx
+ mov eax, DWORD PTR 24[esi]
+ mov ecx, DWORD PTR 28[esi]
+ mov DWORD PTR 24[esp],eax
+ mov DWORD PTR 28[esp],ecx
+ mov eax, DWORD PTR 32[esi]
+ mov ecx, DWORD PTR 36[esi]
+ mov DWORD PTR 32[esp],eax
+ mov DWORD PTR 36[esp],ecx
+ mov eax, DWORD PTR 40[esi]
+ mov ecx, DWORD PTR 44[esi]
+ mov DWORD PTR 40[esp],eax
+ mov DWORD PTR 44[esp],ecx
+ mov eax, DWORD PTR 48[esi]
+ mov ecx, DWORD PTR 52[esi]
+ mov DWORD PTR 48[esp],eax
+ mov DWORD PTR 52[esp],ecx
+ mov eax, DWORD PTR 56[esi]
+ mov ecx, DWORD PTR 60[esi]
+ mov DWORD PTR 56[esp],eax
+ mov DWORD PTR 60[esp],ecx
+ jmp L001shortcut
+_sha1_block_asm_host_order ENDP
+_TEXT ENDS
+_sha1_block_asm_data_order ENDP
+_TEXT ENDS
+END