summaryrefslogtreecommitdiff
path: root/lib/libcrypto/ripemd
diff options
context:
space:
mode:
authorBob Beck <beck@cvs.openbsd.org>2000-03-19 11:13:56 +0000
committerBob Beck <beck@cvs.openbsd.org>2000-03-19 11:13:56 +0000
commit49f56637dd22e4a7b21187190845bdf93f225b6c (patch)
tree53fb7836f5f49958bff0a86c3daad74163301583 /lib/libcrypto/ripemd
parent3fcaa7468f9b0354a53219db5fef7803a96ef49e (diff)
OpenSSL 0.9.5 merge
*warning* this bumps shared lib minors for libssl and libcrypto from 2.1 to 2.2 if you are using the ssl26 packages for ssh and other things to work you will need to get new ones (see ~beck/libsslsnap/<arch>) on cvs or ~beck/src-patent.tar.gz on cvs
Diffstat (limited to 'lib/libcrypto/ripemd')
-rw-r--r--lib/libcrypto/ripemd/Makefile.ssl5
-rw-r--r--lib/libcrypto/ripemd/asm/rips.cpp6
-rw-r--r--lib/libcrypto/ripemd/asm/rm-win32.asm3433
-rw-r--r--lib/libcrypto/ripemd/asm/rmd-586.pl108
-rw-r--r--lib/libcrypto/ripemd/ripemd.h27
-rw-r--r--lib/libcrypto/ripemd/rmd_dgst.c448
-rw-r--r--lib/libcrypto/ripemd/rmd_locl.h184
-rw-r--r--lib/libcrypto/ripemd/rmd_one.c5
-rw-r--r--lib/libcrypto/ripemd/rmdtest.c4
9 files changed, 2081 insertions, 2139 deletions
diff --git a/lib/libcrypto/ripemd/Makefile.ssl b/lib/libcrypto/ripemd/Makefile.ssl
index 5b6d1d25997..c6153d43615 100644
--- a/lib/libcrypto/ripemd/Makefile.ssl
+++ b/lib/libcrypto/ripemd/Makefile.ssl
@@ -102,6 +102,7 @@ clean:
# DO NOT DELETE THIS LINE -- make depend depends on it.
+rmd_dgst.o: ../../include/openssl/opensslconf.h
rmd_dgst.o: ../../include/openssl/opensslv.h ../../include/openssl/ripemd.h
-rmd_dgst.o: rmd_locl.h rmdconst.h
-rmd_one.o: ../../include/openssl/ripemd.h rmd_locl.h rmdconst.h
+rmd_dgst.o: ../md32_common.h rmd_locl.h rmdconst.h
+rmd_one.o: ../../include/openssl/ripemd.h
diff --git a/lib/libcrypto/ripemd/asm/rips.cpp b/lib/libcrypto/ripemd/asm/rips.cpp
index 321a98443e5..f7a13677a92 100644
--- a/lib/libcrypto/ripemd/asm/rips.cpp
+++ b/lib/libcrypto/ripemd/asm/rips.cpp
@@ -34,6 +34,8 @@ void GetTSC(unsigned long& tsc)
#include <stdlib.h>
#include <openssl/ripemd.h>
+#define ripemd160_block_x86 ripemd160_block_asm_host_order
+
extern "C" {
void ripemd160_block_x86(RIPEMD160_CTX *ctx, unsigned char *buffer,int num);
}
@@ -55,8 +57,10 @@ void main(int argc,char *argv[])
if (num == 0) num=16;
if (num > 250) num=16;
numm=num+2;
+#if 0
num*=64;
numm*=64;
+#endif
for (j=0; j<6; j++)
{
@@ -71,7 +75,7 @@ void main(int argc,char *argv[])
GetTSC(e2);
ripemd160_block_x86(&ctx,buffer,num);
}
- printf("ripemd160 (%d bytes) %d %d (%.2f)\n",num,
+ printf("ripemd160 (%d bytes) %d %d (%.2f)\n",num*64,
e1-s1,e2-s2,(double)((e1-s1)-(e2-s2))/2);
}
}
diff --git a/lib/libcrypto/ripemd/asm/rm-win32.asm b/lib/libcrypto/ripemd/asm/rm-win32.asm
index bd38791c13b..f07d517857b 100644
--- a/lib/libcrypto/ripemd/asm/rm-win32.asm
+++ b/lib/libcrypto/ripemd/asm/rm-win32.asm
@@ -8,1965 +8,1966 @@
.386
.model FLAT
_TEXT SEGMENT
-PUBLIC _ripemd160_block_x86
+PUBLIC _ripemd160_block_asm_host_order
-_ripemd160_block_x86 PROC NEAR
+_ripemd160_block_asm_host_order PROC NEAR
+ mov edx, DWORD PTR 4[esp]
+ mov eax, DWORD PTR 8[esp]
push esi
- mov ecx, DWORD PTR 16[esp]
+ mov ecx, DWORD PTR [edx]
push edi
- mov esi, DWORD PTR 16[esp]
+ mov esi, DWORD PTR 4[edx]
push ebp
- add ecx, esi
+ mov edi, DWORD PTR 8[edx]
push ebx
- sub ecx, 64
- sub esp, 88
- mov DWORD PTR [esp],ecx
- mov edi, DWORD PTR 108[esp]
+ sub esp, 108
L000start:
;
- mov eax, DWORD PTR [esi]
- mov ebx, DWORD PTR 4[esi]
- mov DWORD PTR 4[esp],eax
+ mov ebx, DWORD PTR [eax]
+ mov ebp, DWORD PTR 4[eax]
+ mov DWORD PTR [esp],ebx
+ mov DWORD PTR 4[esp],ebp
+ mov ebx, DWORD PTR 8[eax]
+ mov ebp, DWORD PTR 12[eax]
mov DWORD PTR 8[esp],ebx
- mov eax, DWORD PTR 8[esi]
- mov ebx, DWORD PTR 12[esi]
- mov DWORD PTR 12[esp],eax
+ mov DWORD PTR 12[esp],ebp
+ mov ebx, DWORD PTR 16[eax]
+ mov ebp, DWORD PTR 20[eax]
mov DWORD PTR 16[esp],ebx
- mov eax, DWORD PTR 16[esi]
- mov ebx, DWORD PTR 20[esi]
- mov DWORD PTR 20[esp],eax
+ mov DWORD PTR 20[esp],ebp
+ mov ebx, DWORD PTR 24[eax]
+ mov ebp, DWORD PTR 28[eax]
mov DWORD PTR 24[esp],ebx
- mov eax, DWORD PTR 24[esi]
- mov ebx, DWORD PTR 28[esi]
- mov DWORD PTR 28[esp],eax
+ mov DWORD PTR 28[esp],ebp
+ mov ebx, DWORD PTR 32[eax]
+ mov ebp, DWORD PTR 36[eax]
mov DWORD PTR 32[esp],ebx
- mov eax, DWORD PTR 32[esi]
- mov ebx, DWORD PTR 36[esi]
- mov DWORD PTR 36[esp],eax
+ mov DWORD PTR 36[esp],ebp
+ mov ebx, DWORD PTR 40[eax]
+ mov ebp, DWORD PTR 44[eax]
mov DWORD PTR 40[esp],ebx
- mov eax, DWORD PTR 40[esi]
- mov ebx, DWORD PTR 44[esi]
- mov DWORD PTR 44[esp],eax
+ mov DWORD PTR 44[esp],ebp
+ mov ebx, DWORD PTR 48[eax]
+ mov ebp, DWORD PTR 52[eax]
mov DWORD PTR 48[esp],ebx
- mov eax, DWORD PTR 48[esi]
- mov ebx, DWORD PTR 52[esi]
- mov DWORD PTR 52[esp],eax
+ mov DWORD PTR 52[esp],ebp
+ mov ebx, DWORD PTR 56[eax]
+ mov ebp, DWORD PTR 60[eax]
mov DWORD PTR 56[esp],ebx
- mov eax, DWORD PTR 56[esi]
- mov ebx, DWORD PTR 60[esi]
- mov DWORD PTR 60[esp],eax
- mov DWORD PTR 64[esp],ebx
- add esi, 64
- mov eax, DWORD PTR [edi]
- mov DWORD PTR 112[esp],esi
- mov ebx, DWORD PTR 4[edi]
- mov ecx, DWORD PTR 8[edi]
- mov edx, DWORD PTR 12[edi]
- mov ebp, DWORD PTR 16[edi]
+ mov DWORD PTR 60[esp],ebp
+ mov eax, edi
+ mov ebx, DWORD PTR 12[edx]
+ mov ebp, DWORD PTR 16[edx]
; 0
- mov esi, ecx
- xor esi, edx
- mov edi, DWORD PTR 4[esp]
- xor esi, ebx
- add eax, edi
- rol ecx, 10
- add eax, esi
- mov esi, ebx
- rol eax, 11
- add eax, ebp
+ xor eax, ebx
+ mov edx, DWORD PTR [esp]
+ xor eax, esi
+ add ecx, edx
+ rol edi, 10
+ add ecx, eax
+ mov eax, esi
+ rol ecx, 11
+ add ecx, ebp
; 1
- xor esi, ecx
- mov edi, DWORD PTR 8[esp]
- xor esi, eax
- add ebp, esi
- mov esi, eax
- rol ebx, 10
- add ebp, edi
- xor esi, ebx
- rol ebp, 14
+ xor eax, edi
+ mov edx, DWORD PTR 4[esp]
+ xor eax, ecx
+ add ebp, eax
+ mov eax, ecx
+ rol esi, 10
add ebp, edx
+ xor eax, esi
+ rol ebp, 14
+ add ebp, ebx
; 2
- mov edi, DWORD PTR 12[esp]
- xor esi, ebp
- add edx, edi
- rol eax, 10
- add edx, esi
- mov esi, ebp
- rol edx, 15
- add edx, ecx
+ mov edx, DWORD PTR 8[esp]
+ xor eax, ebp
+ add ebx, edx
+ rol ecx, 10
+ add ebx, eax
+ mov eax, ebp
+ rol ebx, 15
+ add ebx, edi
; 3
- xor esi, eax
- mov edi, DWORD PTR 16[esp]
- xor esi, edx
- add ecx, esi
- mov esi, edx
+ xor eax, ecx
+ mov edx, DWORD PTR 12[esp]
+ xor eax, ebx
+ add edi, eax
+ mov eax, ebx
rol ebp, 10
- add ecx, edi
- xor esi, ebp
- rol ecx, 12
- add ecx, ebx
+ add edi, edx
+ xor eax, ebp
+ rol edi, 12
+ add edi, esi
; 4
- mov edi, DWORD PTR 20[esp]
- xor esi, ecx
- add ebx, edi
- rol edx, 10
- add ebx, esi
- mov esi, ecx
- rol ebx, 5
- add ebx, eax
+ mov edx, DWORD PTR 16[esp]
+ xor eax, edi
+ add esi, edx
+ rol ebx, 10
+ add esi, eax
+ mov eax, edi
+ rol esi, 5
+ add esi, ecx
; 5
- xor esi, edx
- mov edi, DWORD PTR 24[esp]
- xor esi, ebx
- add eax, esi
- mov esi, ebx
- rol ecx, 10
- add eax, edi
- xor esi, ecx
- rol eax, 8
- add eax, ebp
+ xor eax, ebx
+ mov edx, DWORD PTR 20[esp]
+ xor eax, esi
+ add ecx, eax
+ mov eax, esi
+ rol edi, 10
+ add ecx, edx
+ xor eax, edi
+ rol ecx, 8
+ add ecx, ebp
; 6
- mov edi, DWORD PTR 28[esp]
- xor esi, eax
- add ebp, edi
- rol ebx, 10
- add ebp, esi
- mov esi, eax
- rol ebp, 7
+ mov edx, DWORD PTR 24[esp]
+ xor eax, ecx
add ebp, edx
+ rol esi, 10
+ add ebp, eax
+ mov eax, ecx
+ rol ebp, 7
+ add ebp, ebx
; 7
- xor esi, ebx
- mov edi, DWORD PTR 32[esp]
- xor esi, ebp
- add edx, esi
- mov esi, ebp
- rol eax, 10
- add edx, edi
- xor esi, eax
- rol edx, 9
- add edx, ecx
+ xor eax, esi
+ mov edx, DWORD PTR 28[esp]
+ xor eax, ebp
+ add ebx, eax
+ mov eax, ebp
+ rol ecx, 10
+ add ebx, edx
+ xor eax, ecx
+ rol ebx, 9
+ add ebx, edi
; 8
- mov edi, DWORD PTR 36[esp]
- xor esi, edx
- add ecx, edi
+ mov edx, DWORD PTR 32[esp]
+ xor eax, ebx
+ add edi, edx
rol ebp, 10
- add ecx, esi
- mov esi, edx
- rol ecx, 11
- add ecx, ebx
+ add edi, eax
+ mov eax, ebx
+ rol edi, 11
+ add edi, esi
; 9
- xor esi, ebp
- mov edi, DWORD PTR 40[esp]
- xor esi, ecx
- add ebx, esi
- mov esi, ecx
- rol edx, 10
- add ebx, edi
- xor esi, edx
- rol ebx, 13
- add ebx, eax
+ xor eax, ebp
+ mov edx, DWORD PTR 36[esp]
+ xor eax, edi
+ add esi, eax
+ mov eax, edi
+ rol ebx, 10
+ add esi, edx
+ xor eax, ebx
+ rol esi, 13
+ add esi, ecx
; 10
- mov edi, DWORD PTR 44[esp]
- xor esi, ebx
- add eax, edi
- rol ecx, 10
- add eax, esi
- mov esi, ebx
- rol eax, 14
- add eax, ebp
+ mov edx, DWORD PTR 40[esp]
+ xor eax, esi
+ add ecx, edx
+ rol edi, 10
+ add ecx, eax
+ mov eax, esi
+ rol ecx, 14
+ add ecx, ebp
; 11
- xor esi, ecx
- mov edi, DWORD PTR 48[esp]
- xor esi, eax
- add ebp, esi
- mov esi, eax
- rol ebx, 10
- add ebp, edi
- xor esi, ebx
- rol ebp, 15
+ xor eax, edi
+ mov edx, DWORD PTR 44[esp]
+ xor eax, ecx
+ add ebp, eax
+ mov eax, ecx
+ rol esi, 10
add ebp, edx
+ xor eax, esi
+ rol ebp, 15
+ add ebp, ebx
; 12
- mov edi, DWORD PTR 52[esp]
- xor esi, ebp
- add edx, edi
- rol eax, 10
- add edx, esi
- mov esi, ebp
- rol edx, 6
- add edx, ecx
+ mov edx, DWORD PTR 48[esp]
+ xor eax, ebp
+ add ebx, edx
+ rol ecx, 10
+ add ebx, eax
+ mov eax, ebp
+ rol ebx, 6
+ add ebx, edi
; 13
- xor esi, eax
- mov edi, DWORD PTR 56[esp]
- xor esi, edx
- add ecx, esi
- mov esi, edx
+ xor eax, ecx
+ mov edx, DWORD PTR 52[esp]
+ xor eax, ebx
+ add edi, eax
+ mov eax, ebx
rol ebp, 10
- add ecx, edi
- xor esi, ebp
- rol ecx, 7
- add ecx, ebx
+ add edi, edx
+ xor eax, ebp
+ rol edi, 7
+ add edi, esi
; 14
- mov edi, DWORD PTR 60[esp]
- xor esi, ecx
- add ebx, edi
- rol edx, 10
- add ebx, esi
- mov esi, ecx
- rol ebx, 9
- add ebx, eax
+ mov edx, DWORD PTR 56[esp]
+ xor eax, edi
+ add esi, edx
+ rol ebx, 10
+ add esi, eax
+ mov eax, edi
+ rol esi, 9
+ add esi, ecx
; 15
- xor esi, edx
- mov edi, DWORD PTR 64[esp]
- xor esi, ebx
- add eax, esi
- mov esi, -1
- rol ecx, 10
- add eax, edi
- mov edi, DWORD PTR 32[esp]
- rol eax, 8
- add eax, ebp
+ xor eax, ebx
+ mov edx, DWORD PTR 60[esp]
+ xor eax, esi
+ add ecx, eax
+ mov eax, -1
+ rol edi, 10
+ add ecx, edx
+ mov edx, DWORD PTR 28[esp]
+ rol ecx, 8
+ add ecx, ebp
; 16
- add ebp, edi
- mov edi, ebx
- sub esi, eax
- and edi, eax
- and esi, ecx
- or edi, esi
- mov esi, DWORD PTR 20[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1518500249[edi*1+ebp]
- mov edi, -1
- rol ebp, 7
add ebp, edx
+ mov edx, esi
+ sub eax, ecx
+ and edx, ecx
+ and eax, edi
+ or edx, eax
+ mov eax, DWORD PTR 16[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1518500249[edx*1+ebp]
+ mov edx, -1
+ rol ebp, 7
+ add ebp, ebx
; 17
- add edx, esi
- mov esi, eax
- sub edi, ebp
- and esi, ebp
- and edi, ebx
- or esi, edi
- mov edi, DWORD PTR 56[esp]
- rol eax, 10
- lea edx, DWORD PTR 1518500249[esi*1+edx]
- mov esi, -1
- rol edx, 6
- add edx, ecx
+ add ebx, eax
+ mov eax, ecx
+ sub edx, ebp
+ and eax, ebp
+ and edx, esi
+ or eax, edx
+ mov edx, DWORD PTR 52[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1518500249[eax*1+ebx]
+ mov eax, -1
+ rol ebx, 6
+ add ebx, edi
; 18
- add ecx, edi
- mov edi, ebp
- sub esi, edx
- and edi, edx
- and esi, eax
- or edi, esi
- mov esi, DWORD PTR 8[esp]
+ add edi, edx
+ mov edx, ebp
+ sub eax, ebx
+ and edx, ebx
+ and eax, ecx
+ or edx, eax
+ mov eax, DWORD PTR 4[esp]
rol ebp, 10
- lea ecx, DWORD PTR 1518500249[edi*1+ecx]
- mov edi, -1
- rol ecx, 8
- add ecx, ebx
+ lea edi, DWORD PTR 1518500249[edx*1+edi]
+ mov edx, -1
+ rol edi, 8
+ add edi, esi
; 19
- add ebx, esi
- mov esi, edx
- sub edi, ecx
- and esi, ecx
- and edi, ebp
- or esi, edi
- mov edi, DWORD PTR 44[esp]
- rol edx, 10
- lea ebx, DWORD PTR 1518500249[esi*1+ebx]
- mov esi, -1
- rol ebx, 13
- add ebx, eax
+ add esi, eax
+ mov eax, ebx
+ sub edx, edi
+ and eax, edi
+ and edx, ebp
+ or eax, edx
+ mov edx, DWORD PTR 40[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 1518500249[eax*1+esi]
+ mov eax, -1
+ rol esi, 13
+ add esi, ecx
; 20
- add eax, edi
- mov edi, ecx
- sub esi, ebx
- and edi, ebx
- and esi, edx
- or edi, esi
- mov esi, DWORD PTR 28[esp]
- rol ecx, 10
- lea eax, DWORD PTR 1518500249[edi*1+eax]
- mov edi, -1
- rol eax, 11
- add eax, ebp
+ add ecx, edx
+ mov edx, edi
+ sub eax, esi
+ and edx, esi
+ and eax, ebx
+ or edx, eax
+ mov eax, DWORD PTR 24[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 1518500249[edx*1+ecx]
+ mov edx, -1
+ rol ecx, 11
+ add ecx, ebp
; 21
- add ebp, esi
- mov esi, ebx
- sub edi, eax
- and esi, eax
- and edi, ecx
- or esi, edi
- mov edi, DWORD PTR 64[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1518500249[esi*1+ebp]
- mov esi, -1
+ add ebp, eax
+ mov eax, esi
+ sub edx, ecx
+ and eax, ecx
+ and edx, edi
+ or eax, edx
+ mov edx, DWORD PTR 60[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1518500249[eax*1+ebp]
+ mov eax, -1
rol ebp, 9
- add ebp, edx
+ add ebp, ebx
; 22
- add edx, edi
- mov edi, eax
- sub esi, ebp
- and edi, ebp
- and esi, ebx
- or edi, esi
- mov esi, DWORD PTR 16[esp]
- rol eax, 10
- lea edx, DWORD PTR 1518500249[edi*1+edx]
- mov edi, -1
- rol edx, 7
- add edx, ecx
+ add ebx, edx
+ mov edx, ecx
+ sub eax, ebp
+ and edx, ebp
+ and eax, esi
+ or edx, eax
+ mov eax, DWORD PTR 12[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1518500249[edx*1+ebx]
+ mov edx, -1
+ rol ebx, 7
+ add ebx, edi
; 23
- add ecx, esi
- mov esi, ebp
- sub edi, edx
- and esi, edx
- and edi, eax
- or esi, edi
- mov edi, DWORD PTR 52[esp]
+ add edi, eax
+ mov eax, ebp
+ sub edx, ebx
+ and eax, ebx
+ and edx, ecx
+ or eax, edx
+ mov edx, DWORD PTR 48[esp]
rol ebp, 10
- lea ecx, DWORD PTR 1518500249[esi*1+ecx]
- mov esi, -1
- rol ecx, 15
- add ecx, ebx
+ lea edi, DWORD PTR 1518500249[eax*1+edi]
+ mov eax, -1
+ rol edi, 15
+ add edi, esi
; 24
- add ebx, edi
- mov edi, edx
- sub esi, ecx
- and edi, ecx
- and esi, ebp
- or edi, esi
- mov esi, DWORD PTR 4[esp]
- rol edx, 10
- lea ebx, DWORD PTR 1518500249[edi*1+ebx]
- mov edi, -1
- rol ebx, 7
- add ebx, eax
+ add esi, edx
+ mov edx, ebx
+ sub eax, edi
+ and edx, edi
+ and eax, ebp
+ or edx, eax
+ mov eax, DWORD PTR [esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 1518500249[edx*1+esi]
+ mov edx, -1
+ rol esi, 7
+ add esi, ecx
; 25
- add eax, esi
- mov esi, ecx
- sub edi, ebx
- and esi, ebx
- and edi, edx
- or esi, edi
- mov edi, DWORD PTR 40[esp]
- rol ecx, 10
- lea eax, DWORD PTR 1518500249[esi*1+eax]
- mov esi, -1
- rol eax, 12
- add eax, ebp
+ add ecx, eax
+ mov eax, edi
+ sub edx, esi
+ and eax, esi
+ and edx, ebx
+ or eax, edx
+ mov edx, DWORD PTR 36[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 1518500249[eax*1+ecx]
+ mov eax, -1
+ rol ecx, 12
+ add ecx, ebp
; 26
- add ebp, edi
- mov edi, ebx
- sub esi, eax
- and edi, eax
- and esi, ecx
- or edi, esi
- mov esi, DWORD PTR 24[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1518500249[edi*1+ebp]
- mov edi, -1
- rol ebp, 15
add ebp, edx
+ mov edx, esi
+ sub eax, ecx
+ and edx, ecx
+ and eax, edi
+ or edx, eax
+ mov eax, DWORD PTR 20[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1518500249[edx*1+ebp]
+ mov edx, -1
+ rol ebp, 15
+ add ebp, ebx
; 27
- add edx, esi
- mov esi, eax
- sub edi, ebp
- and esi, ebp
- and edi, ebx
- or esi, edi
- mov edi, DWORD PTR 12[esp]
- rol eax, 10
- lea edx, DWORD PTR 1518500249[esi*1+edx]
- mov esi, -1
- rol edx, 9
- add edx, ecx
+ add ebx, eax
+ mov eax, ecx
+ sub edx, ebp
+ and eax, ebp
+ and edx, esi
+ or eax, edx
+ mov edx, DWORD PTR 8[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1518500249[eax*1+ebx]
+ mov eax, -1
+ rol ebx, 9
+ add ebx, edi
; 28
- add ecx, edi
- mov edi, ebp
- sub esi, edx
- and edi, edx
- and esi, eax
- or edi, esi
- mov esi, DWORD PTR 60[esp]
+ add edi, edx
+ mov edx, ebp
+ sub eax, ebx
+ and edx, ebx
+ and eax, ecx
+ or edx, eax
+ mov eax, DWORD PTR 56[esp]
rol ebp, 10
- lea ecx, DWORD PTR 1518500249[edi*1+ecx]
- mov edi, -1
- rol ecx, 11
- add ecx, ebx
+ lea edi, DWORD PTR 1518500249[edx*1+edi]
+ mov edx, -1
+ rol edi, 11
+ add edi, esi
; 29
- add ebx, esi
- mov esi, edx
- sub edi, ecx
- and esi, ecx
- and edi, ebp
- or esi, edi
- mov edi, DWORD PTR 48[esp]
- rol edx, 10
- lea ebx, DWORD PTR 1518500249[esi*1+ebx]
- mov esi, -1
- rol ebx, 7
- add ebx, eax
+ add esi, eax
+ mov eax, ebx
+ sub edx, edi
+ and eax, edi
+ and edx, ebp
+ or eax, edx
+ mov edx, DWORD PTR 44[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 1518500249[eax*1+esi]
+ mov eax, -1
+ rol esi, 7
+ add esi, ecx
; 30
- add eax, edi
- mov edi, ecx
- sub esi, ebx
- and edi, ebx
- and esi, edx
- or edi, esi
- mov esi, DWORD PTR 36[esp]
- rol ecx, 10
- lea eax, DWORD PTR 1518500249[edi*1+eax]
- mov edi, -1
- rol eax, 13
- add eax, ebp
+ add ecx, edx
+ mov edx, edi
+ sub eax, esi
+ and edx, esi
+ and eax, ebx
+ or edx, eax
+ mov eax, DWORD PTR 32[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 1518500249[edx*1+ecx]
+ mov edx, -1
+ rol ecx, 13
+ add ecx, ebp
; 31
- add ebp, esi
- mov esi, ebx
- sub edi, eax
- and esi, eax
- and edi, ecx
- or esi, edi
- mov edi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1518500249[esi*1+ebp]
- sub edi, eax
+ add ebp, eax
+ mov eax, esi
+ sub edx, ecx
+ and eax, ecx
+ and edx, edi
+ or eax, edx
+ mov edx, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1518500249[eax*1+ebp]
+ sub edx, ecx
rol ebp, 12
- add ebp, edx
+ add ebp, ebx
; 32
- mov esi, DWORD PTR 16[esp]
- or edi, ebp
- add edx, esi
- xor edi, ebx
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 1859775393[edi*1+edx]
- sub esi, ebp
- rol edx, 11
- add edx, ecx
+ mov eax, DWORD PTR 12[esp]
+ or edx, ebp
+ add ebx, eax
+ xor edx, esi
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1859775393[edx*1+ebx]
+ sub eax, ebp
+ rol ebx, 11
+ add ebx, edi
; 33
- mov edi, DWORD PTR 44[esp]
- or esi, edx
- add ecx, edi
- xor esi, eax
- mov edi, -1
+ mov edx, DWORD PTR 40[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 1859775393[esi*1+ecx]
- sub edi, edx
- rol ecx, 13
- add ecx, ebx
+ lea edi, DWORD PTR 1859775393[eax*1+edi]
+ sub edx, ebx
+ rol edi, 13
+ add edi, esi
; 34
- mov esi, DWORD PTR 60[esp]
- or edi, ecx
- add ebx, esi
- xor edi, ebp
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1859775393[edi*1+ebx]
- sub esi, ecx
- rol ebx, 6
- add ebx, eax
+ mov eax, DWORD PTR 56[esp]
+ or edx, edi
+ add esi, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1859775393[edx*1+esi]
+ sub eax, edi
+ rol esi, 6
+ add esi, ecx
; 35
- mov edi, DWORD PTR 20[esp]
- or esi, ebx
- add eax, edi
- xor esi, edx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1859775393[esi*1+eax]
- sub edi, ebx
- rol eax, 7
- add eax, ebp
+ mov edx, DWORD PTR 16[esp]
+ or eax, esi
+ add ecx, edx
+ xor eax, ebx
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1859775393[eax*1+ecx]
+ sub edx, esi
+ rol ecx, 7
+ add ecx, ebp
; 36
- mov esi, DWORD PTR 40[esp]
- or edi, eax
- add ebp, esi
- xor edi, ecx
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1859775393[edi*1+ebp]
- sub esi, eax
+ mov eax, DWORD PTR 36[esp]
+ or edx, ecx
+ add ebp, eax
+ xor edx, edi
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1859775393[edx*1+ebp]
+ sub eax, ecx
rol ebp, 14
- add ebp, edx
+ add ebp, ebx
; 37
- mov edi, DWORD PTR 64[esp]
- or esi, ebp
- add edx, edi
- xor esi, ebx
- mov edi, -1
- rol eax, 10
- lea edx, DWORD PTR 1859775393[esi*1+edx]
- sub edi, ebp
- rol edx, 9
- add edx, ecx
+ mov edx, DWORD PTR 60[esp]
+ or eax, ebp
+ add ebx, edx
+ xor eax, esi
+ mov edx, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1859775393[eax*1+ebx]
+ sub edx, ebp
+ rol ebx, 9
+ add ebx, edi
; 38
- mov esi, DWORD PTR 36[esp]
- or edi, edx
- add ecx, esi
- xor edi, eax
- mov esi, -1
+ mov eax, DWORD PTR 32[esp]
+ or edx, ebx
+ add edi, eax
+ xor edx, ecx
+ mov eax, -1
rol ebp, 10
- lea ecx, DWORD PTR 1859775393[edi*1+ecx]
- sub esi, edx
- rol ecx, 13
- add ecx, ebx
+ lea edi, DWORD PTR 1859775393[edx*1+edi]
+ sub eax, ebx
+ rol edi, 13
+ add edi, esi
; 39
- mov edi, DWORD PTR 8[esp]
- or esi, ecx
- add ebx, edi
- xor esi, ebp
- mov edi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1859775393[esi*1+ebx]
- sub edi, ecx
- rol ebx, 15
- add ebx, eax
+ mov edx, DWORD PTR 4[esp]
+ or eax, edi
+ add esi, edx
+ xor eax, ebp
+ mov edx, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1859775393[eax*1+esi]
+ sub edx, edi
+ rol esi, 15
+ add esi, ecx
; 40
- mov esi, DWORD PTR 12[esp]
- or edi, ebx
- add eax, esi
- xor edi, edx
- mov esi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1859775393[edi*1+eax]
- sub esi, ebx
- rol eax, 14
- add eax, ebp
+ mov eax, DWORD PTR 8[esp]
+ or edx, esi
+ add ecx, eax
+ xor edx, ebx
+ mov eax, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1859775393[edx*1+ecx]
+ sub eax, esi
+ rol ecx, 14
+ add ecx, ebp
; 41
- mov edi, DWORD PTR 32[esp]
- or esi, eax
- add ebp, edi
- xor esi, ecx
- mov edi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1859775393[esi*1+ebp]
- sub edi, eax
- rol ebp, 8
+ mov edx, DWORD PTR 28[esp]
+ or eax, ecx
add ebp, edx
+ xor eax, edi
+ mov edx, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1859775393[eax*1+ebp]
+ sub edx, ecx
+ rol ebp, 8
+ add ebp, ebx
; 42
- mov esi, DWORD PTR 4[esp]
- or edi, ebp
- add edx, esi
- xor edi, ebx
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 1859775393[edi*1+edx]
- sub esi, ebp
- rol edx, 13
- add edx, ecx
+ mov eax, DWORD PTR [esp]
+ or edx, ebp
+ add ebx, eax
+ xor edx, esi
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1859775393[edx*1+ebx]
+ sub eax, ebp
+ rol ebx, 13
+ add ebx, edi
; 43
- mov edi, DWORD PTR 28[esp]
- or esi, edx
- add ecx, edi
- xor esi, eax
- mov edi, -1
+ mov edx, DWORD PTR 24[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 1859775393[esi*1+ecx]
- sub edi, edx
- rol ecx, 6
- add ecx, ebx
+ lea edi, DWORD PTR 1859775393[eax*1+edi]
+ sub edx, ebx
+ rol edi, 6
+ add edi, esi
; 44
- mov esi, DWORD PTR 56[esp]
- or edi, ecx
- add ebx, esi
- xor edi, ebp
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1859775393[edi*1+ebx]
- sub esi, ecx
- rol ebx, 5
- add ebx, eax
+ mov eax, DWORD PTR 52[esp]
+ or edx, edi
+ add esi, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1859775393[edx*1+esi]
+ sub eax, edi
+ rol esi, 5
+ add esi, ecx
; 45
- mov edi, DWORD PTR 48[esp]
- or esi, ebx
- add eax, edi
- xor esi, edx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1859775393[esi*1+eax]
- sub edi, ebx
- rol eax, 12
- add eax, ebp
+ mov edx, DWORD PTR 44[esp]
+ or eax, esi
+ add ecx, edx
+ xor eax, ebx
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1859775393[eax*1+ecx]
+ sub edx, esi
+ rol ecx, 12
+ add ecx, ebp
; 46
- mov esi, DWORD PTR 24[esp]
- or edi, eax
- add ebp, esi
- xor edi, ecx
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1859775393[edi*1+ebp]
- sub esi, eax
+ mov eax, DWORD PTR 20[esp]
+ or edx, ecx
+ add ebp, eax
+ xor edx, edi
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1859775393[edx*1+ebp]
+ sub eax, ecx
rol ebp, 7
- add ebp, edx
+ add ebp, ebx
; 47
- mov edi, DWORD PTR 52[esp]
- or esi, ebp
- add edx, edi
- xor esi, ebx
- mov edi, -1
- rol eax, 10
- lea edx, DWORD PTR 1859775393[esi*1+edx]
- mov esi, eax
- rol edx, 5
- add edx, ecx
+ mov edx, DWORD PTR 48[esp]
+ or eax, ebp
+ add ebx, edx
+ xor eax, esi
+ mov edx, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1859775393[eax*1+ebx]
+ mov eax, ecx
+ rol ebx, 5
+ add ebx, edi
; 48
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 8[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 4[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2400959708[edi+ecx]
- mov edi, -1
- add ecx, esi
- mov esi, ebp
- rol ecx, 11
- add ecx, ebx
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 11
+ add edi, esi
; 49
- sub edi, ebp
- and esi, ecx
- and edi, edx
- or edi, esi
- mov esi, DWORD PTR 40[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2400959708[edi+ebx]
- mov edi, -1
- add ebx, esi
- mov esi, edx
- rol ebx, 12
- add ebx, eax
+ sub edx, ebp
+ and eax, edi
+ and edx, ebx
+ or edx, eax
+ mov eax, DWORD PTR 36[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2400959708[edx+esi]
+ mov edx, -1
+ add esi, eax
+ mov eax, ebx
+ rol esi, 12
+ add esi, ecx
; 50
- sub edi, edx
- and esi, ebx
- and edi, ecx
- or edi, esi
- mov esi, DWORD PTR 48[esp]
- rol ecx, 10
- lea eax, DWORD PTR 2400959708[edi+eax]
- mov edi, -1
- add eax, esi
- mov esi, ecx
- rol eax, 14
- add eax, ebp
+ sub edx, ebx
+ and eax, esi
+ and edx, edi
+ or edx, eax
+ mov eax, DWORD PTR 44[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 2400959708[edx+ecx]
+ mov edx, -1
+ add ecx, eax
+ mov eax, edi
+ rol ecx, 14
+ add ecx, ebp
; 51
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 44[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 2400959708[edi+ebp]
- mov edi, -1
- add ebp, esi
- mov esi, ebx
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 40[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 2400959708[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ mov eax, esi
rol ebp, 15
- add ebp, edx
+ add ebp, ebx
; 52
- sub edi, ebx
- and esi, ebp
- and edi, eax
- or edi, esi
- mov esi, DWORD PTR 4[esp]
- rol eax, 10
- lea edx, DWORD PTR 2400959708[edi+edx]
- mov edi, -1
- add edx, esi
- mov esi, eax
- rol edx, 14
- add edx, ecx
+ sub edx, esi
+ and eax, ebp
+ and edx, ecx
+ or edx, eax
+ mov eax, DWORD PTR [esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 2400959708[edx+ebx]
+ mov edx, -1
+ add ebx, eax
+ mov eax, ecx
+ rol ebx, 14
+ add ebx, edi
; 53
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 36[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 32[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2400959708[edi+ecx]
- mov edi, -1
- add ecx, esi
- mov esi, ebp
- rol ecx, 15
- add ecx, ebx
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 15
+ add edi, esi
; 54
- sub edi, ebp
- and esi, ecx
- and edi, edx
- or edi, esi
- mov esi, DWORD PTR 52[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2400959708[edi+ebx]
- mov edi, -1
- add ebx, esi
- mov esi, edx
- rol ebx, 9
- add ebx, eax
+ sub edx, ebp
+ and eax, edi
+ and edx, ebx
+ or edx, eax
+ mov eax, DWORD PTR 48[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2400959708[edx+esi]
+ mov edx, -1
+ add esi, eax
+ mov eax, ebx
+ rol esi, 9
+ add esi, ecx
; 55
- sub edi, edx
- and esi, ebx
- and edi, ecx
- or edi, esi
- mov esi, DWORD PTR 20[esp]
- rol ecx, 10
- lea eax, DWORD PTR 2400959708[edi+eax]
- mov edi, -1
- add eax, esi
- mov esi, ecx
- rol eax, 8
- add eax, ebp
+ sub edx, ebx
+ and eax, esi
+ and edx, edi
+ or edx, eax
+ mov eax, DWORD PTR 16[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 2400959708[edx+ecx]
+ mov edx, -1
+ add ecx, eax
+ mov eax, edi
+ rol ecx, 8
+ add ecx, ebp
; 56
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 56[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 2400959708[edi+ebp]
- mov edi, -1
- add ebp, esi
- mov esi, ebx
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 52[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 2400959708[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ mov eax, esi
rol ebp, 9
- add ebp, edx
+ add ebp, ebx
; 57
- sub edi, ebx
- and esi, ebp
- and edi, eax
- or edi, esi
- mov esi, DWORD PTR 16[esp]
- rol eax, 10
- lea edx, DWORD PTR 2400959708[edi+edx]
- mov edi, -1
- add edx, esi
- mov esi, eax
- rol edx, 14
- add edx, ecx
+ sub edx, esi
+ and eax, ebp
+ and edx, ecx
+ or edx, eax
+ mov eax, DWORD PTR 12[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 2400959708[edx+ebx]
+ mov edx, -1
+ add ebx, eax
+ mov eax, ecx
+ rol ebx, 14
+ add ebx, edi
; 58
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 32[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 28[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2400959708[edi+ecx]
- mov edi, -1
- add ecx, esi
- mov esi, ebp
- rol ecx, 5
- add ecx, ebx
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 5
+ add edi, esi
; 59
- sub edi, ebp
- and esi, ecx
- and edi, edx
- or edi, esi
- mov esi, DWORD PTR 64[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2400959708[edi+ebx]
- mov edi, -1
- add ebx, esi
- mov esi, edx
- rol ebx, 6
- add ebx, eax
+ sub edx, ebp
+ and eax, edi
+ and edx, ebx
+ or edx, eax
+ mov eax, DWORD PTR 60[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2400959708[edx+esi]
+ mov edx, -1
+ add esi, eax
+ mov eax, ebx
+ rol esi, 6
+ add esi, ecx
; 60
- sub edi, edx
- and esi, ebx
- and edi, ecx
- or edi, esi
- mov esi, DWORD PTR 60[esp]
- rol ecx, 10
- lea eax, DWORD PTR 2400959708[edi+eax]
- mov edi, -1
- add eax, esi
- mov esi, ecx
- rol eax, 8
- add eax, ebp
+ sub edx, ebx
+ and eax, esi
+ and edx, edi
+ or edx, eax
+ mov eax, DWORD PTR 56[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 2400959708[edx+ecx]
+ mov edx, -1
+ add ecx, eax
+ mov eax, edi
+ rol ecx, 8
+ add ecx, ebp
; 61
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 24[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 2400959708[edi+ebp]
- mov edi, -1
- add ebp, esi
- mov esi, ebx
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 20[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 2400959708[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ mov eax, esi
rol ebp, 6
- add ebp, edx
+ add ebp, ebx
; 62
- sub edi, ebx
- and esi, ebp
- and edi, eax
- or edi, esi
- mov esi, DWORD PTR 28[esp]
- rol eax, 10
- lea edx, DWORD PTR 2400959708[edi+edx]
- mov edi, -1
- add edx, esi
- mov esi, eax
- rol edx, 5
- add edx, ecx
+ sub edx, esi
+ and eax, ebp
+ and edx, ecx
+ or edx, eax
+ mov eax, DWORD PTR 24[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 2400959708[edx+ebx]
+ mov edx, -1
+ add ebx, eax
+ mov eax, ecx
+ rol ebx, 5
+ add ebx, edi
; 63
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 12[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 8[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2400959708[edi+ecx]
- mov edi, -1
- add ecx, esi
- sub edi, ebp
- rol ecx, 12
- add ecx, ebx
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ sub edx, ebp
+ rol edi, 12
+ add edi, esi
; 64
- mov esi, DWORD PTR 20[esp]
- or edi, edx
- add ebx, esi
- xor edi, ecx
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 2840853838[edi*1+ebx]
- sub esi, edx
- rol ebx, 9
- add ebx, eax
+ mov eax, DWORD PTR 16[esp]
+ or edx, ebx
+ add esi, eax
+ xor edx, edi
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 2840853838[edx*1+esi]
+ sub eax, ebx
+ rol esi, 9
+ add esi, ecx
; 65
- mov edi, DWORD PTR 4[esp]
- or esi, ecx
- add eax, edi
- xor esi, ebx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 2840853838[esi*1+eax]
- sub edi, ecx
- rol eax, 15
- add eax, ebp
+ mov edx, DWORD PTR [esp]
+ or eax, edi
+ add ecx, edx
+ xor eax, esi
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 2840853838[eax*1+ecx]
+ sub edx, edi
+ rol ecx, 15
+ add ecx, ebp
; 66
- mov esi, DWORD PTR 24[esp]
- or edi, ebx
- add ebp, esi
- xor edi, eax
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 2840853838[edi*1+ebp]
- sub esi, ebx
+ mov eax, DWORD PTR 20[esp]
+ or edx, esi
+ add ebp, eax
+ xor edx, ecx
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 2840853838[edx*1+ebp]
+ sub eax, esi
rol ebp, 5
- add ebp, edx
+ add ebp, ebx
; 67
- mov edi, DWORD PTR 40[esp]
- or esi, eax
- add edx, edi
- xor esi, ebp
- mov edi, -1
- rol eax, 10
- lea edx, DWORD PTR 2840853838[esi*1+edx]
- sub edi, eax
- rol edx, 11
- add edx, ecx
+ mov edx, DWORD PTR 36[esp]
+ or eax, ecx
+ add ebx, edx
+ xor eax, ebp
+ mov edx, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 2840853838[eax*1+ebx]
+ sub edx, ecx
+ rol ebx, 11
+ add ebx, edi
; 68
- mov esi, DWORD PTR 32[esp]
- or edi, ebp
- add ecx, esi
- xor edi, edx
- mov esi, -1
+ mov eax, DWORD PTR 28[esp]
+ or edx, ebp
+ add edi, eax
+ xor edx, ebx
+ mov eax, -1
rol ebp, 10
- lea ecx, DWORD PTR 2840853838[edi*1+ecx]
- sub esi, ebp
- rol ecx, 6
- add ecx, ebx
+ lea edi, DWORD PTR 2840853838[edx*1+edi]
+ sub eax, ebp
+ rol edi, 6
+ add edi, esi
; 69
- mov edi, DWORD PTR 52[esp]
- or esi, edx
- add ebx, edi
- xor esi, ecx
- mov edi, -1
- rol edx, 10
- lea ebx, DWORD PTR 2840853838[esi*1+ebx]
- sub edi, edx
- rol ebx, 8
- add ebx, eax
+ mov edx, DWORD PTR 48[esp]
+ or eax, ebx
+ add esi, edx
+ xor eax, edi
+ mov edx, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 2840853838[eax*1+esi]
+ sub edx, ebx
+ rol esi, 8
+ add esi, ecx
; 70
- mov esi, DWORD PTR 12[esp]
- or edi, ecx
- add eax, esi
- xor edi, ebx
- mov esi, -1
- rol ecx, 10
- lea eax, DWORD PTR 2840853838[edi*1+eax]
- sub esi, ecx
- rol eax, 13
- add eax, ebp
+ mov eax, DWORD PTR 8[esp]
+ or edx, edi
+ add ecx, eax
+ xor edx, esi
+ mov eax, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 2840853838[edx*1+ecx]
+ sub eax, edi
+ rol ecx, 13
+ add ecx, ebp
; 71
- mov edi, DWORD PTR 44[esp]
- or esi, ebx
- add ebp, edi
- xor esi, eax
- mov edi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 2840853838[esi*1+ebp]
- sub edi, ebx
- rol ebp, 12
+ mov edx, DWORD PTR 40[esp]
+ or eax, esi
add ebp, edx
+ xor eax, ecx
+ mov edx, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 2840853838[eax*1+ebp]
+ sub edx, esi
+ rol ebp, 12
+ add ebp, ebx
; 72
- mov esi, DWORD PTR 60[esp]
- or edi, eax
- add edx, esi
- xor edi, ebp
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 2840853838[edi*1+edx]
- sub esi, eax
- rol edx, 5
- add edx, ecx
+ mov eax, DWORD PTR 56[esp]
+ or edx, ecx
+ add ebx, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 2840853838[edx*1+ebx]
+ sub eax, ecx
+ rol ebx, 5
+ add ebx, edi
; 73
- mov edi, DWORD PTR 8[esp]
- or esi, ebp
- add ecx, edi
- xor esi, edx
- mov edi, -1
+ mov edx, DWORD PTR 4[esp]
+ or eax, ebp
+ add edi, edx
+ xor eax, ebx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 2840853838[esi*1+ecx]
- sub edi, ebp
- rol ecx, 12
- add ecx, ebx
+ lea edi, DWORD PTR 2840853838[eax*1+edi]
+ sub edx, ebp
+ rol edi, 12
+ add edi, esi
; 74
- mov esi, DWORD PTR 16[esp]
- or edi, edx
- add ebx, esi
- xor edi, ecx
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 2840853838[edi*1+ebx]
- sub esi, edx
- rol ebx, 13
- add ebx, eax
+ mov eax, DWORD PTR 12[esp]
+ or edx, ebx
+ add esi, eax
+ xor edx, edi
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 2840853838[edx*1+esi]
+ sub eax, ebx
+ rol esi, 13
+ add esi, ecx
; 75
- mov edi, DWORD PTR 36[esp]
- or esi, ecx
- add eax, edi
- xor esi, ebx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 2840853838[esi*1+eax]
- sub edi, ecx
- rol eax, 14
- add eax, ebp
+ mov edx, DWORD PTR 32[esp]
+ or eax, edi
+ add ecx, edx
+ xor eax, esi
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 2840853838[eax*1+ecx]
+ sub edx, edi
+ rol ecx, 14
+ add ecx, ebp
; 76
- mov esi, DWORD PTR 48[esp]
- or edi, ebx
- add ebp, esi
- xor edi, eax
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 2840853838[edi*1+ebp]
- sub esi, ebx
+ mov eax, DWORD PTR 44[esp]
+ or edx, esi
+ add ebp, eax
+ xor edx, ecx
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 2840853838[edx*1+ebp]
+ sub eax, esi
rol ebp, 11
- add ebp, edx
+ add ebp, ebx
; 77
- mov edi, DWORD PTR 28[esp]
- or esi, eax
- add edx, edi
- xor esi, ebp
- mov edi, -1
- rol eax, 10
- lea edx, DWORD PTR 2840853838[esi*1+edx]
- sub edi, eax
- rol edx, 8
- add edx, ecx
+ mov edx, DWORD PTR 24[esp]
+ or eax, ecx
+ add ebx, edx
+ xor eax, ebp
+ mov edx, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 2840853838[eax*1+ebx]
+ sub edx, ecx
+ rol ebx, 8
+ add ebx, edi
; 78
- mov esi, DWORD PTR 64[esp]
- or edi, ebp
- add ecx, esi
- xor edi, edx
- mov esi, -1
+ mov eax, DWORD PTR 60[esp]
+ or edx, ebp
+ add edi, eax
+ xor edx, ebx
+ mov eax, -1
rol ebp, 10
- lea ecx, DWORD PTR 2840853838[edi*1+ecx]
- sub esi, ebp
- rol ecx, 5
- add ecx, ebx
+ lea edi, DWORD PTR 2840853838[edx*1+edi]
+ sub eax, ebp
+ rol edi, 5
+ add edi, esi
; 79
- mov edi, DWORD PTR 56[esp]
- or esi, edx
- add ebx, edi
- xor esi, ecx
- mov edi, DWORD PTR 108[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2840853838[esi*1+ebx]
- mov DWORD PTR 68[esp],eax
- rol ebx, 6
- add ebx, eax
- mov eax, DWORD PTR [edi]
- mov DWORD PTR 72[esp],ebx
- mov DWORD PTR 76[esp],ecx
- mov ebx, DWORD PTR 4[edi]
- mov DWORD PTR 80[esp],edx
- mov ecx, DWORD PTR 8[edi]
- mov DWORD PTR 84[esp],ebp
- mov edx, DWORD PTR 12[edi]
- mov ebp, DWORD PTR 16[edi]
+ mov edx, DWORD PTR 52[esp]
+ or eax, ebx
+ add esi, edx
+ xor eax, edi
+ mov edx, DWORD PTR 128[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2840853838[eax*1+esi]
+ mov DWORD PTR 64[esp],ecx
+ rol esi, 6
+ add esi, ecx
+ mov ecx, DWORD PTR [edx]
+ mov DWORD PTR 68[esp],esi
+ mov DWORD PTR 72[esp],edi
+ mov esi, DWORD PTR 4[edx]
+ mov DWORD PTR 76[esp],ebx
+ mov edi, DWORD PTR 8[edx]
+ mov DWORD PTR 80[esp],ebp
+ mov ebx, DWORD PTR 12[edx]
+ mov ebp, DWORD PTR 16[edx]
; 80
- mov edi, -1
- sub edi, edx
- mov esi, DWORD PTR 24[esp]
- or edi, ecx
- add eax, esi
- xor edi, ebx
- mov esi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1352829926[edi*1+eax]
- sub esi, ecx
- rol eax, 8
- add eax, ebp
+ mov edx, -1
+ sub edx, ebx
+ mov eax, DWORD PTR 20[esp]
+ or edx, edi
+ add ecx, eax
+ xor edx, esi
+ mov eax, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1352829926[edx*1+ecx]
+ sub eax, edi
+ rol ecx, 8
+ add ecx, ebp
; 81
- mov edi, DWORD PTR 60[esp]
- or esi, ebx
- add ebp, edi
- xor esi, eax
- mov edi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1352829926[esi*1+ebp]
- sub edi, ebx
- rol ebp, 9
+ mov edx, DWORD PTR 56[esp]
+ or eax, esi
add ebp, edx
+ xor eax, ecx
+ mov edx, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1352829926[eax*1+ebp]
+ sub edx, esi
+ rol ebp, 9
+ add ebp, ebx
; 82
- mov esi, DWORD PTR 32[esp]
- or edi, eax
- add edx, esi
- xor edi, ebp
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 1352829926[edi*1+edx]
- sub esi, eax
- rol edx, 9
- add edx, ecx
+ mov eax, DWORD PTR 28[esp]
+ or edx, ecx
+ add ebx, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1352829926[edx*1+ebx]
+ sub eax, ecx
+ rol ebx, 9
+ add ebx, edi
; 83
- mov edi, DWORD PTR 4[esp]
- or esi, ebp
- add ecx, edi
- xor esi, edx
- mov edi, -1
+ mov edx, DWORD PTR [esp]
+ or eax, ebp
+ add edi, edx
+ xor eax, ebx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 1352829926[esi*1+ecx]
- sub edi, ebp
- rol ecx, 11
- add ecx, ebx
+ lea edi, DWORD PTR 1352829926[eax*1+edi]
+ sub edx, ebp
+ rol edi, 11
+ add edi, esi
; 84
- mov esi, DWORD PTR 40[esp]
- or edi, edx
- add ebx, esi
- xor edi, ecx
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1352829926[edi*1+ebx]
- sub esi, edx
- rol ebx, 13
- add ebx, eax
+ mov eax, DWORD PTR 36[esp]
+ or edx, ebx
+ add esi, eax
+ xor edx, edi
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1352829926[edx*1+esi]
+ sub eax, ebx
+ rol esi, 13
+ add esi, ecx
; 85
- mov edi, DWORD PTR 12[esp]
- or esi, ecx
- add eax, edi
- xor esi, ebx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1352829926[esi*1+eax]
- sub edi, ecx
- rol eax, 15
- add eax, ebp
+ mov edx, DWORD PTR 8[esp]
+ or eax, edi
+ add ecx, edx
+ xor eax, esi
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1352829926[eax*1+ecx]
+ sub edx, edi
+ rol ecx, 15
+ add ecx, ebp
; 86
- mov esi, DWORD PTR 48[esp]
- or edi, ebx
- add ebp, esi
- xor edi, eax
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1352829926[edi*1+ebp]
- sub esi, ebx
+ mov eax, DWORD PTR 44[esp]
+ or edx, esi
+ add ebp, eax
+ xor edx, ecx
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1352829926[edx*1+ebp]
+ sub eax, esi
rol ebp, 15
- add ebp, edx
+ add ebp, ebx
; 87
- mov edi, DWORD PTR 20[esp]
- or esi, eax
- add edx, edi
- xor esi, ebp
- mov edi, -1
- rol eax, 10
- lea edx, DWORD PTR 1352829926[esi*1+edx]
- sub edi, eax
- rol edx, 5
- add edx, ecx
+ mov edx, DWORD PTR 16[esp]
+ or eax, ecx
+ add ebx, edx
+ xor eax, ebp
+ mov edx, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1352829926[eax*1+ebx]
+ sub edx, ecx
+ rol ebx, 5
+ add ebx, edi
; 88
- mov esi, DWORD PTR 56[esp]
- or edi, ebp
- add ecx, esi
- xor edi, edx
- mov esi, -1
+ mov eax, DWORD PTR 52[esp]
+ or edx, ebp
+ add edi, eax
+ xor edx, ebx
+ mov eax, -1
rol ebp, 10
- lea ecx, DWORD PTR 1352829926[edi*1+ecx]
- sub esi, ebp
- rol ecx, 7
- add ecx, ebx
+ lea edi, DWORD PTR 1352829926[edx*1+edi]
+ sub eax, ebp
+ rol edi, 7
+ add edi, esi
; 89
- mov edi, DWORD PTR 28[esp]
- or esi, edx
- add ebx, edi
- xor esi, ecx
- mov edi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1352829926[esi*1+ebx]
- sub edi, edx
- rol ebx, 7
- add ebx, eax
+ mov edx, DWORD PTR 24[esp]
+ or eax, ebx
+ add esi, edx
+ xor eax, edi
+ mov edx, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1352829926[eax*1+esi]
+ sub edx, ebx
+ rol esi, 7
+ add esi, ecx
; 90
- mov esi, DWORD PTR 64[esp]
- or edi, ecx
- add eax, esi
- xor edi, ebx
- mov esi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1352829926[edi*1+eax]
- sub esi, ecx
- rol eax, 8
- add eax, ebp
+ mov eax, DWORD PTR 60[esp]
+ or edx, edi
+ add ecx, eax
+ xor edx, esi
+ mov eax, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1352829926[edx*1+ecx]
+ sub eax, edi
+ rol ecx, 8
+ add ecx, ebp
; 91
- mov edi, DWORD PTR 36[esp]
- or esi, ebx
- add ebp, edi
- xor esi, eax
- mov edi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1352829926[esi*1+ebp]
- sub edi, ebx
- rol ebp, 11
+ mov edx, DWORD PTR 32[esp]
+ or eax, esi
add ebp, edx
+ xor eax, ecx
+ mov edx, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1352829926[eax*1+ebp]
+ sub edx, esi
+ rol ebp, 11
+ add ebp, ebx
; 92
- mov esi, DWORD PTR 8[esp]
- or edi, eax
- add edx, esi
- xor edi, ebp
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 1352829926[edi*1+edx]
- sub esi, eax
- rol edx, 14
- add edx, ecx
+ mov eax, DWORD PTR 4[esp]
+ or edx, ecx
+ add ebx, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1352829926[edx*1+ebx]
+ sub eax, ecx
+ rol ebx, 14
+ add ebx, edi
; 93
- mov edi, DWORD PTR 44[esp]
- or esi, ebp
- add ecx, edi
- xor esi, edx
- mov edi, -1
+ mov edx, DWORD PTR 40[esp]
+ or eax, ebp
+ add edi, edx
+ xor eax, ebx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 1352829926[esi*1+ecx]
- sub edi, ebp
- rol ecx, 14
- add ecx, ebx
+ lea edi, DWORD PTR 1352829926[eax*1+edi]
+ sub edx, ebp
+ rol edi, 14
+ add edi, esi
; 94
- mov esi, DWORD PTR 16[esp]
- or edi, edx
- add ebx, esi
- xor edi, ecx
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1352829926[edi*1+ebx]
- sub esi, edx
- rol ebx, 12
- add ebx, eax
+ mov eax, DWORD PTR 12[esp]
+ or edx, ebx
+ add esi, eax
+ xor edx, edi
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1352829926[edx*1+esi]
+ sub eax, ebx
+ rol esi, 12
+ add esi, ecx
; 95
- mov edi, DWORD PTR 52[esp]
- or esi, ecx
- add eax, edi
- xor esi, ebx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1352829926[esi*1+eax]
- mov esi, ecx
- rol eax, 6
- add eax, ebp
+ mov edx, DWORD PTR 48[esp]
+ or eax, edi
+ add ecx, edx
+ xor eax, esi
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1352829926[eax*1+ecx]
+ mov eax, edi
+ rol ecx, 6
+ add ecx, ebp
; 96
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 28[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1548603684[edi+ebp]
- mov edi, -1
- add ebp, esi
- mov esi, ebx
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 24[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1548603684[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ mov eax, esi
rol ebp, 9
- add ebp, edx
+ add ebp, ebx
; 97
- sub edi, ebx
- and esi, ebp
- and edi, eax
- or edi, esi
- mov esi, DWORD PTR 48[esp]
- rol eax, 10
- lea edx, DWORD PTR 1548603684[edi+edx]
- mov edi, -1
- add edx, esi
- mov esi, eax
- rol edx, 13
- add edx, ecx
+ sub edx, esi
+ and eax, ebp
+ and edx, ecx
+ or edx, eax
+ mov eax, DWORD PTR 44[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1548603684[edx+ebx]
+ mov edx, -1
+ add ebx, eax
+ mov eax, ecx
+ rol ebx, 13
+ add ebx, edi
; 98
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 16[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 12[esp]
rol ebp, 10
- lea ecx, DWORD PTR 1548603684[edi+ecx]
- mov edi, -1
- add ecx, esi
- mov esi, ebp
- rol ecx, 15
- add ecx, ebx
+ lea edi, DWORD PTR 1548603684[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 15
+ add edi, esi
; 99
- sub edi, ebp
- and esi, ecx
- and edi, edx
- or edi, esi
- mov esi, DWORD PTR 32[esp]
- rol edx, 10
- lea ebx, DWORD PTR 1548603684[edi+ebx]
- mov edi, -1
- add ebx, esi
- mov esi, edx
- rol ebx, 7
- add ebx, eax
+ sub edx, ebp
+ and eax, edi
+ and edx, ebx
+ or edx, eax
+ mov eax, DWORD PTR 28[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 1548603684[edx+esi]
+ mov edx, -1
+ add esi, eax
+ mov eax, ebx
+ rol esi, 7
+ add esi, ecx
; 100
- sub edi, edx
- and esi, ebx
- and edi, ecx
- or edi, esi
- mov esi, DWORD PTR 4[esp]
- rol ecx, 10
- lea eax, DWORD PTR 1548603684[edi+eax]
- mov edi, -1
- add eax, esi
- mov esi, ecx
- rol eax, 12
- add eax, ebp
+ sub edx, ebx
+ and eax, esi
+ and edx, edi
+ or edx, eax
+ mov eax, DWORD PTR [esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 1548603684[edx+ecx]
+ mov edx, -1
+ add ecx, eax
+ mov eax, edi
+ rol ecx, 12
+ add ecx, ebp
; 101
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 56[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1548603684[edi+ebp]
- mov edi, -1
- add ebp, esi
- mov esi, ebx
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 52[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1548603684[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ mov eax, esi
rol ebp, 8
- add ebp, edx
+ add ebp, ebx
; 102
- sub edi, ebx
- and esi, ebp
- and edi, eax
- or edi, esi
- mov esi, DWORD PTR 24[esp]
- rol eax, 10
- lea edx, DWORD PTR 1548603684[edi+edx]
- mov edi, -1
- add edx, esi
- mov esi, eax
- rol edx, 9
- add edx, ecx
+ sub edx, esi
+ and eax, ebp
+ and edx, ecx
+ or edx, eax
+ mov eax, DWORD PTR 20[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1548603684[edx+ebx]
+ mov edx, -1
+ add ebx, eax
+ mov eax, ecx
+ rol ebx, 9
+ add ebx, edi
; 103
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 44[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 40[esp]
rol ebp, 10
- lea ecx, DWORD PTR 1548603684[edi+ecx]
- mov edi, -1
- add ecx, esi
- mov esi, ebp
- rol ecx, 11
- add ecx, ebx
+ lea edi, DWORD PTR 1548603684[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 11
+ add edi, esi
; 104
- sub edi, ebp
- and esi, ecx
- and edi, edx
- or edi, esi
- mov esi, DWORD PTR 60[esp]
- rol edx, 10
- lea ebx, DWORD PTR 1548603684[edi+ebx]
- mov edi, -1
- add ebx, esi
- mov esi, edx
- rol ebx, 7
- add ebx, eax
+ sub edx, ebp
+ and eax, edi
+ and edx, ebx
+ or edx, eax
+ mov eax, DWORD PTR 56[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 1548603684[edx+esi]
+ mov edx, -1
+ add esi, eax
+ mov eax, ebx
+ rol esi, 7
+ add esi, ecx
; 105
- sub edi, edx
- and esi, ebx
- and edi, ecx
- or edi, esi
- mov esi, DWORD PTR 64[esp]
- rol ecx, 10
- lea eax, DWORD PTR 1548603684[edi+eax]
- mov edi, -1
- add eax, esi
- mov esi, ecx
- rol eax, 7
- add eax, ebp
+ sub edx, ebx
+ and eax, esi
+ and edx, edi
+ or edx, eax
+ mov eax, DWORD PTR 60[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 1548603684[edx+ecx]
+ mov edx, -1
+ add ecx, eax
+ mov eax, edi
+ rol ecx, 7
+ add ecx, ebp
; 106
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 36[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1548603684[edi+ebp]
- mov edi, -1
- add ebp, esi
- mov esi, ebx
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 32[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1548603684[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ mov eax, esi
rol ebp, 12
- add ebp, edx
+ add ebp, ebx
; 107
- sub edi, ebx
- and esi, ebp
- and edi, eax
- or edi, esi
- mov esi, DWORD PTR 52[esp]
- rol eax, 10
- lea edx, DWORD PTR 1548603684[edi+edx]
- mov edi, -1
- add edx, esi
- mov esi, eax
- rol edx, 7
- add edx, ecx
+ sub edx, esi
+ and eax, ebp
+ and edx, ecx
+ or edx, eax
+ mov eax, DWORD PTR 48[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1548603684[edx+ebx]
+ mov edx, -1
+ add ebx, eax
+ mov eax, ecx
+ rol ebx, 7
+ add ebx, edi
; 108
- sub edi, eax
- and esi, edx
- and edi, ebp
- or edi, esi
- mov esi, DWORD PTR 20[esp]
+ sub edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 16[esp]
rol ebp, 10
- lea ecx, DWORD PTR 1548603684[edi+ecx]
- mov edi, -1
- add ecx, esi
- mov esi, ebp
- rol ecx, 6
- add ecx, ebx
+ lea edi, DWORD PTR 1548603684[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 6
+ add edi, esi
; 109
- sub edi, ebp
- and esi, ecx
- and edi, edx
- or edi, esi
- mov esi, DWORD PTR 40[esp]
- rol edx, 10
- lea ebx, DWORD PTR 1548603684[edi+ebx]
- mov edi, -1
- add ebx, esi
- mov esi, edx
- rol ebx, 15
- add ebx, eax
+ sub edx, ebp
+ and eax, edi
+ and edx, ebx
+ or edx, eax
+ mov eax, DWORD PTR 36[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 1548603684[edx+esi]
+ mov edx, -1
+ add esi, eax
+ mov eax, ebx
+ rol esi, 15
+ add esi, ecx
; 110
- sub edi, edx
- and esi, ebx
- and edi, ecx
- or edi, esi
- mov esi, DWORD PTR 8[esp]
- rol ecx, 10
- lea eax, DWORD PTR 1548603684[edi+eax]
- mov edi, -1
- add eax, esi
- mov esi, ecx
- rol eax, 13
- add eax, ebp
+ sub edx, ebx
+ and eax, esi
+ and edx, edi
+ or edx, eax
+ mov eax, DWORD PTR 4[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 1548603684[edx+ecx]
+ mov edx, -1
+ add ecx, eax
+ mov eax, edi
+ rol ecx, 13
+ add ecx, ebp
; 111
- sub edi, ecx
- and esi, eax
- and edi, ebx
- or edi, esi
- mov esi, DWORD PTR 12[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 1548603684[edi+ebp]
- mov edi, -1
- add ebp, esi
- sub edi, eax
+ sub edx, edi
+ and eax, ecx
+ and edx, esi
+ or edx, eax
+ mov eax, DWORD PTR 8[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 1548603684[edx+ebp]
+ mov edx, -1
+ add ebp, eax
+ sub edx, ecx
rol ebp, 11
- add ebp, edx
+ add ebp, ebx
; 112
- mov esi, DWORD PTR 64[esp]
- or edi, ebp
- add edx, esi
- xor edi, ebx
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 1836072691[edi*1+edx]
- sub esi, ebp
- rol edx, 9
- add edx, ecx
+ mov eax, DWORD PTR 60[esp]
+ or edx, ebp
+ add ebx, eax
+ xor edx, esi
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1836072691[edx*1+ebx]
+ sub eax, ebp
+ rol ebx, 9
+ add ebx, edi
; 113
- mov edi, DWORD PTR 24[esp]
- or esi, edx
- add ecx, edi
- xor esi, eax
- mov edi, -1
+ mov edx, DWORD PTR 20[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 1836072691[esi*1+ecx]
- sub edi, edx
- rol ecx, 7
- add ecx, ebx
+ lea edi, DWORD PTR 1836072691[eax*1+edi]
+ sub edx, ebx
+ rol edi, 7
+ add edi, esi
; 114
- mov esi, DWORD PTR 8[esp]
- or edi, ecx
- add ebx, esi
- xor edi, ebp
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1836072691[edi*1+ebx]
- sub esi, ecx
- rol ebx, 15
- add ebx, eax
+ mov eax, DWORD PTR 4[esp]
+ or edx, edi
+ add esi, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1836072691[edx*1+esi]
+ sub eax, edi
+ rol esi, 15
+ add esi, ecx
; 115
- mov edi, DWORD PTR 16[esp]
- or esi, ebx
- add eax, edi
- xor esi, edx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1836072691[esi*1+eax]
- sub edi, ebx
- rol eax, 11
- add eax, ebp
+ mov edx, DWORD PTR 12[esp]
+ or eax, esi
+ add ecx, edx
+ xor eax, ebx
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1836072691[eax*1+ecx]
+ sub edx, esi
+ rol ecx, 11
+ add ecx, ebp
; 116
- mov esi, DWORD PTR 32[esp]
- or edi, eax
- add ebp, esi
- xor edi, ecx
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1836072691[edi*1+ebp]
- sub esi, eax
+ mov eax, DWORD PTR 28[esp]
+ or edx, ecx
+ add ebp, eax
+ xor edx, edi
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1836072691[edx*1+ebp]
+ sub eax, ecx
rol ebp, 8
- add ebp, edx
+ add ebp, ebx
; 117
- mov edi, DWORD PTR 60[esp]
- or esi, ebp
- add edx, edi
- xor esi, ebx
- mov edi, -1
- rol eax, 10
- lea edx, DWORD PTR 1836072691[esi*1+edx]
- sub edi, ebp
- rol edx, 6
- add edx, ecx
+ mov edx, DWORD PTR 56[esp]
+ or eax, ebp
+ add ebx, edx
+ xor eax, esi
+ mov edx, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1836072691[eax*1+ebx]
+ sub edx, ebp
+ rol ebx, 6
+ add ebx, edi
; 118
- mov esi, DWORD PTR 28[esp]
- or edi, edx
- add ecx, esi
- xor edi, eax
- mov esi, -1
+ mov eax, DWORD PTR 24[esp]
+ or edx, ebx
+ add edi, eax
+ xor edx, ecx
+ mov eax, -1
rol ebp, 10
- lea ecx, DWORD PTR 1836072691[edi*1+ecx]
- sub esi, edx
- rol ecx, 6
- add ecx, ebx
+ lea edi, DWORD PTR 1836072691[edx*1+edi]
+ sub eax, ebx
+ rol edi, 6
+ add edi, esi
; 119
- mov edi, DWORD PTR 40[esp]
- or esi, ecx
- add ebx, edi
- xor esi, ebp
- mov edi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1836072691[esi*1+ebx]
- sub edi, ecx
- rol ebx, 14
- add ebx, eax
+ mov edx, DWORD PTR 36[esp]
+ or eax, edi
+ add esi, edx
+ xor eax, ebp
+ mov edx, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1836072691[eax*1+esi]
+ sub edx, edi
+ rol esi, 14
+ add esi, ecx
; 120
- mov esi, DWORD PTR 48[esp]
- or edi, ebx
- add eax, esi
- xor edi, edx
- mov esi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1836072691[edi*1+eax]
- sub esi, ebx
- rol eax, 12
- add eax, ebp
+ mov eax, DWORD PTR 44[esp]
+ or edx, esi
+ add ecx, eax
+ xor edx, ebx
+ mov eax, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1836072691[edx*1+ecx]
+ sub eax, esi
+ rol ecx, 12
+ add ecx, ebp
; 121
- mov edi, DWORD PTR 36[esp]
- or esi, eax
- add ebp, edi
- xor esi, ecx
- mov edi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1836072691[esi*1+ebp]
- sub edi, eax
- rol ebp, 13
+ mov edx, DWORD PTR 32[esp]
+ or eax, ecx
add ebp, edx
+ xor eax, edi
+ mov edx, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1836072691[eax*1+ebp]
+ sub edx, ecx
+ rol ebp, 13
+ add ebp, ebx
; 122
- mov esi, DWORD PTR 52[esp]
- or edi, ebp
- add edx, esi
- xor edi, ebx
- mov esi, -1
- rol eax, 10
- lea edx, DWORD PTR 1836072691[edi*1+edx]
- sub esi, ebp
- rol edx, 5
- add edx, ecx
+ mov eax, DWORD PTR 48[esp]
+ or edx, ebp
+ add ebx, eax
+ xor edx, esi
+ mov eax, -1
+ rol ecx, 10
+ lea ebx, DWORD PTR 1836072691[edx*1+ebx]
+ sub eax, ebp
+ rol ebx, 5
+ add ebx, edi
; 123
- mov edi, DWORD PTR 12[esp]
- or esi, edx
- add ecx, edi
- xor esi, eax
- mov edi, -1
+ mov edx, DWORD PTR 8[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
rol ebp, 10
- lea ecx, DWORD PTR 1836072691[esi*1+ecx]
- sub edi, edx
- rol ecx, 14
- add ecx, ebx
+ lea edi, DWORD PTR 1836072691[eax*1+edi]
+ sub edx, ebx
+ rol edi, 14
+ add edi, esi
; 124
- mov esi, DWORD PTR 44[esp]
- or edi, ecx
- add ebx, esi
- xor edi, ebp
- mov esi, -1
- rol edx, 10
- lea ebx, DWORD PTR 1836072691[edi*1+ebx]
- sub esi, ecx
- rol ebx, 13
- add ebx, eax
+ mov eax, DWORD PTR 40[esp]
+ or edx, edi
+ add esi, eax
+ xor edx, ebp
+ mov eax, -1
+ rol ebx, 10
+ lea esi, DWORD PTR 1836072691[edx*1+esi]
+ sub eax, edi
+ rol esi, 13
+ add esi, ecx
; 125
- mov edi, DWORD PTR 4[esp]
- or esi, ebx
- add eax, edi
- xor esi, edx
- mov edi, -1
- rol ecx, 10
- lea eax, DWORD PTR 1836072691[esi*1+eax]
- sub edi, ebx
- rol eax, 13
- add eax, ebp
+ mov edx, DWORD PTR [esp]
+ or eax, esi
+ add ecx, edx
+ xor eax, ebx
+ mov edx, -1
+ rol edi, 10
+ lea ecx, DWORD PTR 1836072691[eax*1+ecx]
+ sub edx, esi
+ rol ecx, 13
+ add ecx, ebp
; 126
- mov esi, DWORD PTR 20[esp]
- or edi, eax
- add ebp, esi
- xor edi, ecx
- mov esi, -1
- rol ebx, 10
- lea ebp, DWORD PTR 1836072691[edi*1+ebp]
- sub esi, eax
+ mov eax, DWORD PTR 16[esp]
+ or edx, ecx
+ add ebp, eax
+ xor edx, edi
+ mov eax, -1
+ rol esi, 10
+ lea ebp, DWORD PTR 1836072691[edx*1+ebp]
+ sub eax, ecx
rol ebp, 7
- add ebp, edx
+ add ebp, ebx
; 127
- mov edi, DWORD PTR 56[esp]
- or esi, ebp
- add edx, edi
- xor esi, ebx
- mov edi, DWORD PTR 36[esp]
- rol eax, 10
- lea edx, DWORD PTR 1836072691[esi*1+edx]
- mov esi, -1
- rol edx, 5
- add edx, ecx
+ mov edx, DWORD PTR 52[esp]
+ or eax, ebp
+ add ebx, edx
+ xor eax, esi
+ mov edx, DWORD PTR 32[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 1836072691[eax*1+ebx]
+ mov eax, -1
+ rol ebx, 5
+ add ebx, edi
; 128
- add ecx, edi
- mov edi, ebp
- sub esi, edx
- and edi, edx
- and esi, eax
- or edi, esi
- mov esi, DWORD PTR 28[esp]
+ add edi, edx
+ mov edx, ebp
+ sub eax, ebx
+ and edx, ebx
+ and eax, ecx
+ or edx, eax
+ mov eax, DWORD PTR 24[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2053994217[edi*1+ecx]
- mov edi, -1
- rol ecx, 15
- add ecx, ebx
+ lea edi, DWORD PTR 2053994217[edx*1+edi]
+ mov edx, -1
+ rol edi, 15
+ add edi, esi
; 129
- add ebx, esi
- mov esi, edx
- sub edi, ecx
- and esi, ecx
- and edi, ebp
- or esi, edi
- mov edi, DWORD PTR 20[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2053994217[esi*1+ebx]
- mov esi, -1
- rol ebx, 5
- add ebx, eax
+ add esi, eax
+ mov eax, ebx
+ sub edx, edi
+ and eax, edi
+ and edx, ebp
+ or eax, edx
+ mov edx, DWORD PTR 16[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2053994217[eax*1+esi]
+ mov eax, -1
+ rol esi, 5
+ add esi, ecx
; 130
- add eax, edi
- mov edi, ecx
- sub esi, ebx
- and edi, ebx
- and esi, edx
- or edi, esi
- mov esi, DWORD PTR 8[esp]
- rol ecx, 10
- lea eax, DWORD PTR 2053994217[edi*1+eax]
- mov edi, -1
- rol eax, 8
- add eax, ebp
+ add ecx, edx
+ mov edx, edi
+ sub eax, esi
+ and edx, esi
+ and eax, ebx
+ or edx, eax
+ mov eax, DWORD PTR 4[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 2053994217[edx*1+ecx]
+ mov edx, -1
+ rol ecx, 8
+ add ecx, ebp
; 131
- add ebp, esi
- mov esi, ebx
- sub edi, eax
- and esi, eax
- and edi, ecx
- or esi, edi
- mov edi, DWORD PTR 16[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 2053994217[esi*1+ebp]
- mov esi, -1
+ add ebp, eax
+ mov eax, esi
+ sub edx, ecx
+ and eax, ecx
+ and edx, edi
+ or eax, edx
+ mov edx, DWORD PTR 12[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 2053994217[eax*1+ebp]
+ mov eax, -1
rol ebp, 11
- add ebp, edx
+ add ebp, ebx
; 132
- add edx, edi
- mov edi, eax
- sub esi, ebp
- and edi, ebp
- and esi, ebx
- or edi, esi
- mov esi, DWORD PTR 48[esp]
- rol eax, 10
- lea edx, DWORD PTR 2053994217[edi*1+edx]
- mov edi, -1
- rol edx, 14
- add edx, ecx
+ add ebx, edx
+ mov edx, ecx
+ sub eax, ebp
+ and edx, ebp
+ and eax, esi
+ or edx, eax
+ mov eax, DWORD PTR 44[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 2053994217[edx*1+ebx]
+ mov edx, -1
+ rol ebx, 14
+ add ebx, edi
; 133
- add ecx, esi
- mov esi, ebp
- sub edi, edx
- and esi, edx
- and edi, eax
- or esi, edi
- mov edi, DWORD PTR 64[esp]
+ add edi, eax
+ mov eax, ebp
+ sub edx, ebx
+ and eax, ebx
+ and edx, ecx
+ or eax, edx
+ mov edx, DWORD PTR 60[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2053994217[esi*1+ecx]
- mov esi, -1
- rol ecx, 14
- add ecx, ebx
+ lea edi, DWORD PTR 2053994217[eax*1+edi]
+ mov eax, -1
+ rol edi, 14
+ add edi, esi
; 134
- add ebx, edi
- mov edi, edx
- sub esi, ecx
- and edi, ecx
- and esi, ebp
- or edi, esi
- mov esi, DWORD PTR 4[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2053994217[edi*1+ebx]
- mov edi, -1
- rol ebx, 6
- add ebx, eax
+ add esi, edx
+ mov edx, ebx
+ sub eax, edi
+ and edx, edi
+ and eax, ebp
+ or edx, eax
+ mov eax, DWORD PTR [esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2053994217[edx*1+esi]
+ mov edx, -1
+ rol esi, 6
+ add esi, ecx
; 135
- add eax, esi
- mov esi, ecx
- sub edi, ebx
- and esi, ebx
- and edi, edx
- or esi, edi
- mov edi, DWORD PTR 24[esp]
- rol ecx, 10
- lea eax, DWORD PTR 2053994217[esi*1+eax]
- mov esi, -1
- rol eax, 14
- add eax, ebp
+ add ecx, eax
+ mov eax, edi
+ sub edx, esi
+ and eax, esi
+ and edx, ebx
+ or eax, edx
+ mov edx, DWORD PTR 20[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 2053994217[eax*1+ecx]
+ mov eax, -1
+ rol ecx, 14
+ add ecx, ebp
; 136
- add ebp, edi
- mov edi, ebx
- sub esi, eax
- and edi, eax
- and esi, ecx
- or edi, esi
- mov esi, DWORD PTR 52[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 2053994217[edi*1+ebp]
- mov edi, -1
- rol ebp, 6
add ebp, edx
+ mov edx, esi
+ sub eax, ecx
+ and edx, ecx
+ and eax, edi
+ or edx, eax
+ mov eax, DWORD PTR 48[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 2053994217[edx*1+ebp]
+ mov edx, -1
+ rol ebp, 6
+ add ebp, ebx
; 137
- add edx, esi
- mov esi, eax
- sub edi, ebp
- and esi, ebp
- and edi, ebx
- or esi, edi
- mov edi, DWORD PTR 12[esp]
- rol eax, 10
- lea edx, DWORD PTR 2053994217[esi*1+edx]
- mov esi, -1
- rol edx, 9
- add edx, ecx
+ add ebx, eax
+ mov eax, ecx
+ sub edx, ebp
+ and eax, ebp
+ and edx, esi
+ or eax, edx
+ mov edx, DWORD PTR 8[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 2053994217[eax*1+ebx]
+ mov eax, -1
+ rol ebx, 9
+ add ebx, edi
; 138
- add ecx, edi
- mov edi, ebp
- sub esi, edx
- and edi, edx
- and esi, eax
- or edi, esi
- mov esi, DWORD PTR 56[esp]
+ add edi, edx
+ mov edx, ebp
+ sub eax, ebx
+ and edx, ebx
+ and eax, ecx
+ or edx, eax
+ mov eax, DWORD PTR 52[esp]
rol ebp, 10
- lea ecx, DWORD PTR 2053994217[edi*1+ecx]
- mov edi, -1
- rol ecx, 12
- add ecx, ebx
+ lea edi, DWORD PTR 2053994217[edx*1+edi]
+ mov edx, -1
+ rol edi, 12
+ add edi, esi
; 139
- add ebx, esi
- mov esi, edx
- sub edi, ecx
- and esi, ecx
- and edi, ebp
- or esi, edi
- mov edi, DWORD PTR 40[esp]
- rol edx, 10
- lea ebx, DWORD PTR 2053994217[esi*1+ebx]
- mov esi, -1
- rol ebx, 9
- add ebx, eax
+ add esi, eax
+ mov eax, ebx
+ sub edx, edi
+ and eax, edi
+ and edx, ebp
+ or eax, edx
+ mov edx, DWORD PTR 36[esp]
+ rol ebx, 10
+ lea esi, DWORD PTR 2053994217[eax*1+esi]
+ mov eax, -1
+ rol esi, 9
+ add esi, ecx
; 140
- add eax, edi
- mov edi, ecx
- sub esi, ebx
- and edi, ebx
- and esi, edx
- or edi, esi
- mov esi, DWORD PTR 32[esp]
- rol ecx, 10
- lea eax, DWORD PTR 2053994217[edi*1+eax]
- mov edi, -1
- rol eax, 12
- add eax, ebp
+ add ecx, edx
+ mov edx, edi
+ sub eax, esi
+ and edx, esi
+ and eax, ebx
+ or edx, eax
+ mov eax, DWORD PTR 28[esp]
+ rol edi, 10
+ lea ecx, DWORD PTR 2053994217[edx*1+ecx]
+ mov edx, -1
+ rol ecx, 12
+ add ecx, ebp
; 141
- add ebp, esi
- mov esi, ebx
- sub edi, eax
- and esi, eax
- and edi, ecx
- or esi, edi
- mov edi, DWORD PTR 44[esp]
- rol ebx, 10
- lea ebp, DWORD PTR 2053994217[esi*1+ebp]
- mov esi, -1
+ add ebp, eax
+ mov eax, esi
+ sub edx, ecx
+ and eax, ecx
+ and edx, edi
+ or eax, edx
+ mov edx, DWORD PTR 40[esp]
+ rol esi, 10
+ lea ebp, DWORD PTR 2053994217[eax*1+ebp]
+ mov eax, -1
rol ebp, 5
- add ebp, edx
+ add ebp, ebx
; 142
- add edx, edi
- mov edi, eax
- sub esi, ebp
- and edi, ebp
- and esi, ebx
- or edi, esi
- mov esi, DWORD PTR 60[esp]
- rol eax, 10
- lea edx, DWORD PTR 2053994217[edi*1+edx]
- mov edi, -1
- rol edx, 15
- add edx, ecx
+ add ebx, edx
+ mov edx, ecx
+ sub eax, ebp
+ and edx, ebp
+ and eax, esi
+ or edx, eax
+ mov eax, DWORD PTR 56[esp]
+ rol ecx, 10
+ lea ebx, DWORD PTR 2053994217[edx*1+ebx]
+ mov edx, -1
+ rol ebx, 15
+ add ebx, edi
; 143
- add ecx, esi
- mov esi, ebp
- sub edi, edx
- and esi, edx
- and edi, eax
- or edi, esi
- mov esi, edx
+ add edi, eax
+ mov eax, ebp
+ sub edx, ebx
+ and eax, ebx
+ and edx, ecx
+ or edx, eax
+ mov eax, ebx
rol ebp, 10
- lea ecx, DWORD PTR 2053994217[edi*1+ecx]
- xor esi, ebp
- rol ecx, 8
- add ecx, ebx
+ lea edi, DWORD PTR 2053994217[edx*1+edi]
+ xor eax, ebp
+ rol edi, 8
+ add edi, esi
; 144
- mov edi, DWORD PTR 52[esp]
- xor esi, ecx
- add ebx, edi
- rol edx, 10
- add ebx, esi
- mov esi, ecx
- rol ebx, 8
- add ebx, eax
+ mov edx, DWORD PTR 48[esp]
+ xor eax, edi
+ add esi, edx
+ rol ebx, 10
+ add esi, eax
+ mov eax, edi
+ rol esi, 8
+ add esi, ecx
; 145
- xor esi, edx
- mov edi, DWORD PTR 64[esp]
- xor esi, ebx
- add eax, esi
- mov esi, ebx
- rol ecx, 10
- add eax, edi
- xor esi, ecx
- rol eax, 5
- add eax, ebp
+ xor eax, ebx
+ mov edx, DWORD PTR 60[esp]
+ xor eax, esi
+ add ecx, eax
+ mov eax, esi
+ rol edi, 10
+ add ecx, edx
+ xor eax, edi
+ rol ecx, 5
+ add ecx, ebp
; 146
- mov edi, DWORD PTR 44[esp]
- xor esi, eax
- add ebp, edi
- rol ebx, 10
- add ebp, esi
- mov esi, eax
- rol ebp, 12
+ mov edx, DWORD PTR 40[esp]
+ xor eax, ecx
add ebp, edx
+ rol esi, 10
+ add ebp, eax
+ mov eax, ecx
+ rol ebp, 12
+ add ebp, ebx
; 147
- xor esi, ebx
- mov edi, DWORD PTR 20[esp]
- xor esi, ebp
- add edx, esi
- mov esi, ebp
- rol eax, 10
- add edx, edi
- xor esi, eax
- rol edx, 9
- add edx, ecx
+ xor eax, esi
+ mov edx, DWORD PTR 16[esp]
+ xor eax, ebp
+ add ebx, eax
+ mov eax, ebp
+ rol ecx, 10
+ add ebx, edx
+ xor eax, ecx
+ rol ebx, 9
+ add ebx, edi
; 148
- mov edi, DWORD PTR 8[esp]
- xor esi, edx
- add ecx, edi
+ mov edx, DWORD PTR 4[esp]
+ xor eax, ebx
+ add edi, edx
rol ebp, 10
- add ecx, esi
- mov esi, edx
- rol ecx, 12
- add ecx, ebx
+ add edi, eax
+ mov eax, ebx
+ rol edi, 12
+ add edi, esi
; 149
- xor esi, ebp
- mov edi, DWORD PTR 24[esp]
- xor esi, ecx
- add ebx, esi
- mov esi, ecx
- rol edx, 10
- add ebx, edi
- xor esi, edx
- rol ebx, 5
- add ebx, eax
+ xor eax, ebp
+ mov edx, DWORD PTR 20[esp]
+ xor eax, edi
+ add esi, eax
+ mov eax, edi
+ rol ebx, 10
+ add esi, edx
+ xor eax, ebx
+ rol esi, 5
+ add esi, ecx
; 150
- mov edi, DWORD PTR 36[esp]
- xor esi, ebx
- add eax, edi
- rol ecx, 10
- add eax, esi
- mov esi, ebx
- rol eax, 14
- add eax, ebp
+ mov edx, DWORD PTR 32[esp]
+ xor eax, esi
+ add ecx, edx
+ rol edi, 10
+ add ecx, eax
+ mov eax, esi
+ rol ecx, 14
+ add ecx, ebp
; 151
- xor esi, ecx
- mov edi, DWORD PTR 32[esp]
- xor esi, eax
- add ebp, esi
- mov esi, eax
- rol ebx, 10
- add ebp, edi
- xor esi, ebx
- rol ebp, 6
+ xor eax, edi
+ mov edx, DWORD PTR 28[esp]
+ xor eax, ecx
+ add ebp, eax
+ mov eax, ecx
+ rol esi, 10
add ebp, edx
+ xor eax, esi
+ rol ebp, 6
+ add ebp, ebx
; 152
- mov edi, DWORD PTR 28[esp]
- xor esi, ebp
- add edx, edi
- rol eax, 10
- add edx, esi
- mov esi, ebp
- rol edx, 8
- add edx, ecx
+ mov edx, DWORD PTR 24[esp]
+ xor eax, ebp
+ add ebx, edx
+ rol ecx, 10
+ add ebx, eax
+ mov eax, ebp
+ rol ebx, 8
+ add ebx, edi
; 153
- xor esi, eax
- mov edi, DWORD PTR 12[esp]
- xor esi, edx
- add ecx, esi
- mov esi, edx
+ xor eax, ecx
+ mov edx, DWORD PTR 8[esp]
+ xor eax, ebx
+ add edi, eax
+ mov eax, ebx
rol ebp, 10
- add ecx, edi
- xor esi, ebp
- rol ecx, 13
- add ecx, ebx
+ add edi, edx
+ xor eax, ebp
+ rol edi, 13
+ add edi, esi
; 154
- mov edi, DWORD PTR 56[esp]
- xor esi, ecx
- add ebx, edi
- rol edx, 10
- add ebx, esi
- mov esi, ecx
- rol ebx, 6
- add ebx, eax
+ mov edx, DWORD PTR 52[esp]
+ xor eax, edi
+ add esi, edx
+ rol ebx, 10
+ add esi, eax
+ mov eax, edi
+ rol esi, 6
+ add esi, ecx
; 155
- xor esi, edx
- mov edi, DWORD PTR 60[esp]
- xor esi, ebx
- add eax, esi
- mov esi, ebx
- rol ecx, 10
- add eax, edi
- xor esi, ecx
- rol eax, 5
- add eax, ebp
+ xor eax, ebx
+ mov edx, DWORD PTR 56[esp]
+ xor eax, esi
+ add ecx, eax
+ mov eax, esi
+ rol edi, 10
+ add ecx, edx
+ xor eax, edi
+ rol ecx, 5
+ add ecx, ebp
; 156
- mov edi, DWORD PTR 4[esp]
- xor esi, eax
- add ebp, edi
- rol ebx, 10
- add ebp, esi
- mov esi, eax
- rol ebp, 15
+ mov edx, DWORD PTR [esp]
+ xor eax, ecx
add ebp, edx
+ rol esi, 10
+ add ebp, eax
+ mov eax, ecx
+ rol ebp, 15
+ add ebp, ebx
; 157
- xor esi, ebx
- mov edi, DWORD PTR 16[esp]
- xor esi, ebp
- add edx, esi
- mov esi, ebp
- rol eax, 10
- add edx, edi
- xor esi, eax
- rol edx, 13
- add edx, ecx
+ xor eax, esi
+ mov edx, DWORD PTR 12[esp]
+ xor eax, ebp
+ add ebx, eax
+ mov eax, ebp
+ rol ecx, 10
+ add ebx, edx
+ xor eax, ecx
+ rol ebx, 13
+ add ebx, edi
; 158
- mov edi, DWORD PTR 40[esp]
- xor esi, edx
- add ecx, edi
+ mov edx, DWORD PTR 36[esp]
+ xor eax, ebx
+ add edi, edx
rol ebp, 10
- add ecx, esi
- mov esi, edx
- rol ecx, 11
- add ecx, ebx
+ add edi, eax
+ mov eax, ebx
+ rol edi, 11
+ add edi, esi
; 159
- xor esi, ebp
- mov edi, DWORD PTR 48[esp]
- xor esi, ecx
- add ebx, esi
- rol edx, 10
- add ebx, edi
- mov edi, DWORD PTR 108[esp]
- rol ebx, 11
+ xor eax, ebp
+ mov edx, DWORD PTR 44[esp]
+ xor eax, edi
+ add esi, eax
+ rol ebx, 10
+ add esi, edx
+ mov edx, DWORD PTR 128[esp]
+ rol esi, 11
+ add esi, ecx
+ mov eax, DWORD PTR 4[edx]
add ebx, eax
- mov esi, DWORD PTR 4[edi]
- add edx, esi
- mov esi, DWORD PTR 76[esp]
- add edx, esi
- mov esi, DWORD PTR 8[edi]
- add ebp, esi
- mov esi, DWORD PTR 80[esp]
- add ebp, esi
- mov esi, DWORD PTR 12[edi]
- add eax, esi
- mov esi, DWORD PTR 84[esp]
- add eax, esi
- mov esi, DWORD PTR 16[edi]
- add ebx, esi
- mov esi, DWORD PTR 68[esp]
- add ebx, esi
- mov esi, DWORD PTR [edi]
- add ecx, esi
- mov esi, DWORD PTR 72[esp]
- add ecx, esi
- mov DWORD PTR [edi],edx
- mov DWORD PTR 4[edi],ebp
- mov DWORD PTR 8[edi],eax
- mov DWORD PTR 12[edi],ebx
- mov DWORD PTR 16[edi],ecx
- mov edi, DWORD PTR [esp]
- mov esi, DWORD PTR 112[esp]
- cmp edi, esi
- mov edi, DWORD PTR 108[esp]
- jge L000start
- add esp, 88
+ mov eax, DWORD PTR 72[esp]
+ add ebx, eax
+ mov eax, DWORD PTR 8[edx]
+ add ebp, eax
+ mov eax, DWORD PTR 76[esp]
+ add ebp, eax
+ mov eax, DWORD PTR 12[edx]
+ add ecx, eax
+ mov eax, DWORD PTR 80[esp]
+ add ecx, eax
+ mov eax, DWORD PTR 16[edx]
+ add esi, eax
+ mov eax, DWORD PTR 64[esp]
+ add esi, eax
+ mov eax, DWORD PTR [edx]
+ add edi, eax
+ mov eax, DWORD PTR 68[esp]
+ add edi, eax
+ mov eax, DWORD PTR 136[esp]
+ mov DWORD PTR [edx],ebx
+ mov DWORD PTR 4[edx],ebp
+ mov DWORD PTR 8[edx],ecx
+ sub eax, 1
+ mov DWORD PTR 12[edx],esi
+ mov DWORD PTR 16[edx],edi
+ jle $L001get_out
+ mov DWORD PTR 136[esp],eax
+ mov edi, ecx
+ mov eax, DWORD PTR 132[esp]
+ mov ecx, ebx
+ add eax, 64
+ mov esi, ebp
+ mov DWORD PTR 132[esp],eax
+ jmp L000start
+$L001get_out:
+ add esp, 108
pop ebx
pop ebp
pop edi
pop esi
ret
-_ripemd160_block_x86 ENDP
+_ripemd160_block_asm_host_order ENDP
_TEXT ENDS
END
diff --git a/lib/libcrypto/ripemd/asm/rmd-586.pl b/lib/libcrypto/ripemd/asm/rmd-586.pl
index e53c5fadba7..0ab6f76bfff 100644
--- a/lib/libcrypto/ripemd/asm/rmd-586.pl
+++ b/lib/libcrypto/ripemd/asm/rmd-586.pl
@@ -1,9 +1,7 @@
#!/usr/local/bin/perl
# Normal is the
-# ripemd160_block_x86(MD5_CTX *c, ULONG *X);
-# version, non-normal is the
-# ripemd160_block_x86(MD5_CTX *c, ULONG *X,int blocks);
+# ripemd160_block_asm_host_order(RIPEMD160_CTX *c, ULONG *X,int blocks);
$normal=0;
@@ -12,13 +10,13 @@ require "x86asm.pl";
&asm_init($ARGV[0],$0);
-$A="eax";
-$B="ebx";
-$C="ecx";
-$D="edx";
+$A="ecx";
+$B="esi";
+$C="edi";
+$D="ebx";
$E="ebp";
-$tmp1="esi";
-$tmp2="edi";
+$tmp1="eax";
+$tmp2="edx";
$KL1=0x5A827999;
$KL2=0x6ED9EBA1;
@@ -58,13 +56,13 @@ $KR3=0x7A6D76E9;
8, 5,12, 9,12, 5,14, 6, 8,13, 6, 5,15,13,11,11,
);
-&ripemd160_block("ripemd160_block_x86");
+&ripemd160_block("ripemd160_block_asm_host_order");
&asm_finish();
sub Xv
{
local($n)=@_;
- return(&swtmp($n+1));
+ return(&swtmp($n));
# tmp on stack
}
@@ -82,7 +80,7 @@ sub RIP1
&comment($p++);
if ($p & 1)
{
- &mov($tmp1, $c) if $o == -1;
+ #&mov($tmp1, $c) if $o == -1;
&xor($tmp1, $d) if $o == -1;
&mov($tmp2, &Xv($pos));
&xor($tmp1, $b);
@@ -290,7 +288,7 @@ sub RIP5
&rotl($c, 10);
&lea($a, &DWP($K,$a,$tmp1,1));
&sub($tmp2, &Np($d)) if $o <= 0;
- &mov(&swtmp(1+16), $A) if $o == 1;
+ &mov(&swtmp(16), $A) if $o == 1;
&mov($tmp1, &Np($d)) if $o == 2;
&rotl($a, $s);
&add($a, $e);
@@ -310,19 +308,25 @@ sub ripemd160_block
# D 12
# E 16
+ &mov($tmp2, &wparam(0));
+ &mov($tmp1, &wparam(1));
&push("esi");
- &mov($C, &wparam(2));
+ &mov($A, &DWP( 0,$tmp2,"",0));
&push("edi");
- &mov($tmp1, &wparam(1)); # edi
+ &mov($B, &DWP( 4,$tmp2,"",0));
&push("ebp");
- &add($C, $tmp1); # offset we end at
+ &mov($C, &DWP( 8,$tmp2,"",0));
&push("ebx");
- &sub($C, 64);
- &stack_push(16+5+1);
- # XXX
-
- &mov(&swtmp(0), $C);
- &mov($tmp2, &wparam(0)); # Done at end of loop
+ &stack_push(16+5+6);
+ # Special comment about the figure of 6.
+ # Idea is to pad the current frame so
+ # that the top of the stack gets fairly
+ # aligned. Well, as you realize it would
+ # always depend on how the frame below is
+ # aligned. The good news are that gcc-2.95
+ # and later does keep first argument at
+ # least double-wise aligned.
+ # <appro@fy.chalmers.se>
&set_label("start") unless $normal;
&comment("");
@@ -332,16 +336,12 @@ sub ripemd160_block
for ($z=0; $z<16; $z+=2)
{
- &mov($A, &DWP( $z*4,$tmp1,"",0));
- &mov($B, &DWP( ($z+1)*4,$tmp1,"",0));
- &mov(&swtmp(1+$z), $A);
- &mov(&swtmp(1+$z+1), $B);
+ &mov($D, &DWP( $z*4,$tmp1,"",0));
+ &mov($E, &DWP( ($z+1)*4,$tmp1,"",0));
+ &mov(&swtmp($z), $D);
+ &mov(&swtmp($z+1), $E);
}
- &add($tmp1, 64);
- &mov($A, &DWP( 0,$tmp2,"",0));
- &mov(&wparam(1),$tmp1);
- &mov($B, &DWP( 4,$tmp2,"",0));
- &mov($C, &DWP( 8,$tmp2,"",0));
+ &mov($tmp1, $C);
&mov($D, &DWP(12,$tmp2,"",0));
&mov($E, &DWP(16,$tmp2,"",0));
@@ -431,14 +431,14 @@ sub ripemd160_block
&RIP5($B,$C,$D,$E,$A,$wl[79],$sl[79],$KL4,1);
# &mov($tmp2, &wparam(0)); # moved into last RIP5
- # &mov(&swtmp(1+16), $A);
+ # &mov(&swtmp(16), $A);
&mov($A, &DWP( 0,$tmp2,"",0));
- &mov(&swtmp(1+17), $B);
- &mov(&swtmp(1+18), $C);
+ &mov(&swtmp(16+1), $B);
+ &mov(&swtmp(16+2), $C);
&mov($B, &DWP( 4,$tmp2,"",0));
- &mov(&swtmp(1+19), $D);
+ &mov(&swtmp(16+3), $D);
&mov($C, &DWP( 8,$tmp2,"",0));
- &mov(&swtmp(1+20), $E);
+ &mov(&swtmp(16+4), $E);
&mov($D, &DWP(12,$tmp2,"",0));
&mov($E, &DWP(16,$tmp2,"",0));
@@ -531,46 +531,54 @@ sub ripemd160_block
&mov($tmp1, &DWP( 4,$tmp2,"",0)); # ctx->B
&add($D, $tmp1);
- &mov($tmp1, &swtmp(1+18)); # $c
+ &mov($tmp1, &swtmp(16+2)); # $c
&add($D, $tmp1);
&mov($tmp1, &DWP( 8,$tmp2,"",0)); # ctx->C
&add($E, $tmp1);
- &mov($tmp1, &swtmp(1+19)); # $d
+ &mov($tmp1, &swtmp(16+3)); # $d
&add($E, $tmp1);
&mov($tmp1, &DWP(12,$tmp2,"",0)); # ctx->D
&add($A, $tmp1);
- &mov($tmp1, &swtmp(1+20)); # $e
+ &mov($tmp1, &swtmp(16+4)); # $e
&add($A, $tmp1);
&mov($tmp1, &DWP(16,$tmp2,"",0)); # ctx->E
&add($B, $tmp1);
- &mov($tmp1, &swtmp(1+16)); # $a
+ &mov($tmp1, &swtmp(16+0)); # $a
&add($B, $tmp1);
&mov($tmp1, &DWP( 0,$tmp2,"",0)); # ctx->A
&add($C, $tmp1);
- &mov($tmp1, &swtmp(1+17)); # $b
+ &mov($tmp1, &swtmp(16+1)); # $b
&add($C, $tmp1);
+ &mov($tmp1, &wparam(2));
+
&mov(&DWP( 0,$tmp2,"",0), $D);
&mov(&DWP( 4,$tmp2,"",0), $E);
&mov(&DWP( 8,$tmp2,"",0), $A);
- &mov(&DWP(12,$tmp2,"",0), $B);
- &mov(&DWP(16,$tmp2,"",0), $C);
+ &sub($tmp1,1);
+ &mov(&DWP(12,$tmp2,"",0), $B);
+ &mov(&DWP(16,$tmp2,"",0), $C);
- &mov($tmp2, &swtmp(0));
- &mov($tmp1, &wparam(1));
+ &jle(&label("get_out"));
+
+ &mov(&wparam(2),$tmp1);
+ &mov($C, $A);
+ &mov($tmp1, &wparam(1));
+ &mov($A, $D);
+ &add($tmp1, 64);
+ &mov($B, $E);
+ &mov(&wparam(1),$tmp1);
- &cmp($tmp2,$tmp1);
- &mov($tmp2, &wparam(0));
+ &jmp(&label("start"));
- # XXX
- &jge(&label("start"));
+ &set_label("get_out");
- &stack_pop(16+5+1);
+ &stack_pop(16+5+6);
&pop("ebx");
&pop("ebp");
diff --git a/lib/libcrypto/ripemd/ripemd.h b/lib/libcrypto/ripemd/ripemd.h
index ab76be4c332..dd1627cf406 100644
--- a/lib/libcrypto/ripemd/ripemd.h
+++ b/lib/libcrypto/ripemd/ripemd.h
@@ -67,26 +67,33 @@ extern "C" {
#error RIPEMD is disabled.
#endif
+#if defined(WIN16) || defined(__LP32__)
+#define RIPEMD160_LONG unsigned long
+#elif defined(_CRAY) || defined(__ILP64__)
+#define RIPEMD160_LONG unsigned long
+#define RIPEMD160_LONG_LOG2 3
+#else
+#define RIPEMD160_LONG unsigned int
+#endif
+
#define RIPEMD160_CBLOCK 64
-#define RIPEMD160_LBLOCK 16
-#define RIPEMD160_BLOCK 16
-#define RIPEMD160_LAST_BLOCK 56
-#define RIPEMD160_LENGTH_BLOCK 8
+#define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4)
#define RIPEMD160_DIGEST_LENGTH 20
typedef struct RIPEMD160state_st
{
- unsigned long A,B,C,D,E;
- unsigned long Nl,Nh;
- unsigned long data[RIPEMD160_LBLOCK];
+ RIPEMD160_LONG A,B,C,D,E;
+ RIPEMD160_LONG Nl,Nh;
+ RIPEMD160_LONG data[RIPEMD160_LBLOCK];
int num;
} RIPEMD160_CTX;
void RIPEMD160_Init(RIPEMD160_CTX *c);
-void RIPEMD160_Update(RIPEMD160_CTX *c, unsigned char *data, unsigned long len);
+void RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, unsigned long len);
void RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c);
-unsigned char *RIPEMD160(unsigned char *d, unsigned long n, unsigned char *md);
-void RIPEMD160_Transform(RIPEMD160_CTX *c, unsigned char *b);
+unsigned char *RIPEMD160(const unsigned char *d, unsigned long n,
+ unsigned char *md);
+void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b);
#ifdef __cplusplus
}
#endif
diff --git a/lib/libcrypto/ripemd/rmd_dgst.c b/lib/libcrypto/ripemd/rmd_dgst.c
index b590856229f..bdfae270b63 100644
--- a/lib/libcrypto/ripemd/rmd_dgst.c
+++ b/lib/libcrypto/ripemd/rmd_dgst.c
@@ -60,7 +60,7 @@
#include "rmd_locl.h"
#include <openssl/opensslv.h>
-char *RMD160_version="RIPE-MD160" OPENSSL_VERSION_PTEXT;
+const char *RMD160_version="RIPE-MD160" OPENSSL_VERSION_PTEXT;
# ifdef RMD160_ASM
void ripemd160_block_x86(RIPEMD160_CTX *c, unsigned long *p,int num);
@@ -68,6 +68,7 @@ char *RMD160_version="RIPE-MD160" OPENSSL_VERSION_PTEXT;
# else
void ripemd160_block(RIPEMD160_CTX *c, unsigned long *p,int num);
# endif
+
void RIPEMD160_Init(RIPEMD160_CTX *c)
{
c->A=RIPEMD160_A;
@@ -80,180 +81,21 @@ void RIPEMD160_Init(RIPEMD160_CTX *c)
c->num=0;
}
-void RIPEMD160_Update(RIPEMD160_CTX *c, register unsigned char *data,
- unsigned long len)
- {
- register ULONG *p;
- int sw,sc;
- ULONG l;
-
- if (len == 0) return;
-
- l=(c->Nl+(len<<3))&0xffffffffL;
- if (l < c->Nl) /* overflow */
- c->Nh++;
- c->Nh+=(len>>29);
- c->Nl=l;
-
- if (c->num != 0)
- {
- p=c->data;
- sw=c->num>>2;
- sc=c->num&0x03;
-
- if ((c->num+len) >= RIPEMD160_CBLOCK)
- {
- l= p[sw];
- p_c2l(data,l,sc);
- p[sw++]=l;
- for (; sw<RIPEMD160_LBLOCK; sw++)
- {
- c2l(data,l);
- p[sw]=l;
- }
- len-=(RIPEMD160_CBLOCK-c->num);
-
- ripemd160_block(c,p,64);
- c->num=0;
- /* drop through and do the rest */
- }
- else
- {
- int ew,ec;
-
- c->num+=(int)len;
- if ((sc+len) < 4) /* ugly, add char's to a word */
- {
- l= p[sw];
- p_c2l_p(data,l,sc,len);
- p[sw]=l;
- }
- else
- {
- ew=(c->num>>2);
- ec=(c->num&0x03);
- l= p[sw];
- p_c2l(data,l,sc);
- p[sw++]=l;
- for (; sw < ew; sw++)
- { c2l(data,l); p[sw]=l; }
- if (ec)
- {
- c2l_p(data,l,ec);
- p[sw]=l;
- }
- }
- return;
- }
- }
- /* we now can process the input data in blocks of RIPEMD160_CBLOCK
- * chars and save the leftovers to c->data. */
-#ifdef L_ENDIAN
- if ((((unsigned long)data)%sizeof(ULONG)) == 0)
- {
- sw=(int)len/RIPEMD160_CBLOCK;
- if (sw > 0)
- {
- sw*=RIPEMD160_CBLOCK;
- ripemd160_block(c,(ULONG *)data,sw);
- data+=sw;
- len-=sw;
- }
- }
-#endif
- p=c->data;
- while (len >= RIPEMD160_CBLOCK)
- {
-#if defined(L_ENDIAN) || defined(B_ENDIAN)
- if (p != (unsigned long *)data)
- memcpy(p,data,RIPEMD160_CBLOCK);
- data+=RIPEMD160_CBLOCK;
-#ifdef B_ENDIAN
- for (sw=(RIPEMD160_LBLOCK/4); sw; sw--)
- {
- Endian_Reverse32(p[0]);
- Endian_Reverse32(p[1]);
- Endian_Reverse32(p[2]);
- Endian_Reverse32(p[3]);
- p+=4;
- }
-#endif
-#else
- for (sw=(RIPEMD160_LBLOCK/4); sw; sw--)
- {
- c2l(data,l); *(p++)=l;
- c2l(data,l); *(p++)=l;
- c2l(data,l); *(p++)=l;
- c2l(data,l); *(p++)=l;
- }
+#ifndef ripemd160_block_host_order
+#ifdef X
+#undef X
#endif
- p=c->data;
- ripemd160_block(c,p,64);
- len-=RIPEMD160_CBLOCK;
- }
- sc=(int)len;
- c->num=sc;
- if (sc)
- {
- sw=sc>>2; /* words to copy */
-#ifdef L_ENDIAN
- p[sw]=0;
- memcpy(p,data,sc);
-#else
- sc&=0x03;
- for ( ; sw; sw--)
- { c2l(data,l); *(p++)=l; }
- c2l_p(data,l,sc);
- *p=l;
-#endif
- }
- }
-
-void RIPEMD160_Transform(RIPEMD160_CTX *c, unsigned char *b)
+#define X(i) XX[i]
+void ripemd160_block_host_order (RIPEMD160_CTX *ctx, const void *p, int num)
{
- ULONG p[16];
-#if !defined(L_ENDIAN)
- ULONG *q;
- int i;
-#endif
+ const RIPEMD160_LONG *XX=p;
+ register unsigned long A,B,C,D,E;
+ register unsigned long a,b,c,d,e;
-#if defined(B_ENDIAN) || defined(L_ENDIAN)
- memcpy(p,b,64);
-#ifdef B_ENDIAN
- q=p;
- for (i=(RIPEMD160_LBLOCK/4); i; i--)
- {
- Endian_Reverse32(q[0]);
- Endian_Reverse32(q[1]);
- Endian_Reverse32(q[2]);
- Endian_Reverse32(q[3]);
- q+=4;
- }
-#endif
-#else
- q=p;
- for (i=(RIPEMD160_LBLOCK/4); i; i--)
+ for (;num--;XX+=HASH_LBLOCK)
{
- ULONG l;
- c2l(b,l); *(q++)=l;
- c2l(b,l); *(q++)=l;
- c2l(b,l); *(q++)=l;
- c2l(b,l); *(q++)=l;
- }
-#endif
- ripemd160_block(c,p,64);
- }
-
-#ifndef RMD160_ASM
-
-void ripemd160_block(RIPEMD160_CTX *ctx, register ULONG *X, int num)
- {
- register ULONG A,B,C,D,E;
- ULONG a,b,c,d,e;
- for (;;)
- {
- A=ctx->A; B=ctx->B; C=ctx->C; D=ctx->D; E=ctx->E;
+ A=ctx->A; B=ctx->B; C=ctx->C; D=ctx->D; E=ctx->E;
RIP1(A,B,C,D,E,WL00,SL00);
RIP1(E,A,B,C,D,WL01,SL01);
@@ -436,80 +278,216 @@ void ripemd160_block(RIPEMD160_CTX *ctx, register ULONG *X, int num)
ctx->E=ctx->A+b+C;
ctx->A=D;
- X+=16;
- num-=64;
- if (num <= 0) break;
}
}
#endif
-void RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c)
+#ifndef ripemd160_block_data_order
+#ifdef X
+#undef X
+#endif
+void ripemd160_block_data_order (RIPEMD160_CTX *ctx, const void *p, int num)
{
- register int i,j;
- register ULONG l;
- register ULONG *p;
- static unsigned char end[4]={0x80,0x00,0x00,0x00};
- unsigned char *cp=end;
-
- /* c->num should definitly have room for at least one more byte. */
- p=c->data;
- j=c->num;
- i=j>>2;
-
- /* purify often complains about the following line as an
- * Uninitialized Memory Read. While this can be true, the
- * following p_c2l macro will reset l when that case is true.
- * This is because j&0x03 contains the number of 'valid' bytes
- * already in p[i]. If and only if j&0x03 == 0, the UMR will
- * occur but this is also the only time p_c2l will do
- * l= *(cp++) instead of l|= *(cp++)
- * Many thanks to Alex Tang <altitude@cic.net> for pickup this
- * 'potential bug' */
-#ifdef PURIFY
- if ((j&0x03) == 0) p[i]=0;
+ const unsigned char *data=p;
+ register unsigned long A,B,C,D,E;
+ unsigned long a,b,c,d,e,l;
+#ifndef MD32_XARRAY
+ /* See comment in crypto/sha/sha_locl.h for details. */
+ unsigned long XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
+ XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
+# define X(i) XX##i
+#else
+ RIPEMD160_LONG XX[16];
+# define X(i) XX[i]
#endif
- l=p[i];
- p_c2l(cp,l,j&0x03);
- p[i]=l;
- i++;
- /* i is the next 'undefined word' */
- if (c->num >= RIPEMD160_LAST_BLOCK)
+
+ for (;num--;)
{
- for (; i<RIPEMD160_LBLOCK; i++)
- p[i]=0;
- ripemd160_block(c,p,64);
- i=0;
- }
- for (; i<(RIPEMD160_LBLOCK-2); i++)
- p[i]=0;
- p[RIPEMD160_LBLOCK-2]=c->Nl;
- p[RIPEMD160_LBLOCK-1]=c->Nh;
- ripemd160_block(c,p,64);
- cp=md;
- l=c->A; l2c(l,cp);
- l=c->B; l2c(l,cp);
- l=c->C; l2c(l,cp);
- l=c->D; l2c(l,cp);
- l=c->E; l2c(l,cp);
-
- /* clear stuff, ripemd160_block may be leaving some stuff on the stack
- * but I'm not worried :-) */
- c->num=0;
-/* memset((char *)&c,0,sizeof(c));*/
- }
-#ifdef undef
-int printit(unsigned long *l)
- {
- int i,ii;
+ A=ctx->A; B=ctx->B; C=ctx->C; D=ctx->D; E=ctx->E;
+
+ HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l;
+ RIP1(A,B,C,D,E,WL00,SL00); HOST_c2l(data,l); X( 2)=l;
+ RIP1(E,A,B,C,D,WL01,SL01); HOST_c2l(data,l); X( 3)=l;
+ RIP1(D,E,A,B,C,WL02,SL02); HOST_c2l(data,l); X( 4)=l;
+ RIP1(C,D,E,A,B,WL03,SL03); HOST_c2l(data,l); X( 5)=l;
+ RIP1(B,C,D,E,A,WL04,SL04); HOST_c2l(data,l); X( 6)=l;
+ RIP1(A,B,C,D,E,WL05,SL05); HOST_c2l(data,l); X( 7)=l;
+ RIP1(E,A,B,C,D,WL06,SL06); HOST_c2l(data,l); X( 8)=l;
+ RIP1(D,E,A,B,C,WL07,SL07); HOST_c2l(data,l); X( 9)=l;
+ RIP1(C,D,E,A,B,WL08,SL08); HOST_c2l(data,l); X(10)=l;
+ RIP1(B,C,D,E,A,WL09,SL09); HOST_c2l(data,l); X(11)=l;
+ RIP1(A,B,C,D,E,WL10,SL10); HOST_c2l(data,l); X(12)=l;
+ RIP1(E,A,B,C,D,WL11,SL11); HOST_c2l(data,l); X(13)=l;
+ RIP1(D,E,A,B,C,WL12,SL12); HOST_c2l(data,l); X(14)=l;
+ RIP1(C,D,E,A,B,WL13,SL13); HOST_c2l(data,l); X(15)=l;
+ RIP1(B,C,D,E,A,WL14,SL14);
+ RIP1(A,B,C,D,E,WL15,SL15);
+
+ RIP2(E,A,B,C,D,WL16,SL16,KL1);
+ RIP2(D,E,A,B,C,WL17,SL17,KL1);
+ RIP2(C,D,E,A,B,WL18,SL18,KL1);
+ RIP2(B,C,D,E,A,WL19,SL19,KL1);
+ RIP2(A,B,C,D,E,WL20,SL20,KL1);
+ RIP2(E,A,B,C,D,WL21,SL21,KL1);
+ RIP2(D,E,A,B,C,WL22,SL22,KL1);
+ RIP2(C,D,E,A,B,WL23,SL23,KL1);
+ RIP2(B,C,D,E,A,WL24,SL24,KL1);
+ RIP2(A,B,C,D,E,WL25,SL25,KL1);
+ RIP2(E,A,B,C,D,WL26,SL26,KL1);
+ RIP2(D,E,A,B,C,WL27,SL27,KL1);
+ RIP2(C,D,E,A,B,WL28,SL28,KL1);
+ RIP2(B,C,D,E,A,WL29,SL29,KL1);
+ RIP2(A,B,C,D,E,WL30,SL30,KL1);
+ RIP2(E,A,B,C,D,WL31,SL31,KL1);
+
+ RIP3(D,E,A,B,C,WL32,SL32,KL2);
+ RIP3(C,D,E,A,B,WL33,SL33,KL2);
+ RIP3(B,C,D,E,A,WL34,SL34,KL2);
+ RIP3(A,B,C,D,E,WL35,SL35,KL2);
+ RIP3(E,A,B,C,D,WL36,SL36,KL2);
+ RIP3(D,E,A,B,C,WL37,SL37,KL2);
+ RIP3(C,D,E,A,B,WL38,SL38,KL2);
+ RIP3(B,C,D,E,A,WL39,SL39,KL2);
+ RIP3(A,B,C,D,E,WL40,SL40,KL2);
+ RIP3(E,A,B,C,D,WL41,SL41,KL2);
+ RIP3(D,E,A,B,C,WL42,SL42,KL2);
+ RIP3(C,D,E,A,B,WL43,SL43,KL2);
+ RIP3(B,C,D,E,A,WL44,SL44,KL2);
+ RIP3(A,B,C,D,E,WL45,SL45,KL2);
+ RIP3(E,A,B,C,D,WL46,SL46,KL2);
+ RIP3(D,E,A,B,C,WL47,SL47,KL2);
+
+ RIP4(C,D,E,A,B,WL48,SL48,KL3);
+ RIP4(B,C,D,E,A,WL49,SL49,KL3);
+ RIP4(A,B,C,D,E,WL50,SL50,KL3);
+ RIP4(E,A,B,C,D,WL51,SL51,KL3);
+ RIP4(D,E,A,B,C,WL52,SL52,KL3);
+ RIP4(C,D,E,A,B,WL53,SL53,KL3);
+ RIP4(B,C,D,E,A,WL54,SL54,KL3);
+ RIP4(A,B,C,D,E,WL55,SL55,KL3);
+ RIP4(E,A,B,C,D,WL56,SL56,KL3);
+ RIP4(D,E,A,B,C,WL57,SL57,KL3);
+ RIP4(C,D,E,A,B,WL58,SL58,KL3);
+ RIP4(B,C,D,E,A,WL59,SL59,KL3);
+ RIP4(A,B,C,D,E,WL60,SL60,KL3);
+ RIP4(E,A,B,C,D,WL61,SL61,KL3);
+ RIP4(D,E,A,B,C,WL62,SL62,KL3);
+ RIP4(C,D,E,A,B,WL63,SL63,KL3);
+
+ RIP5(B,C,D,E,A,WL64,SL64,KL4);
+ RIP5(A,B,C,D,E,WL65,SL65,KL4);
+ RIP5(E,A,B,C,D,WL66,SL66,KL4);
+ RIP5(D,E,A,B,C,WL67,SL67,KL4);
+ RIP5(C,D,E,A,B,WL68,SL68,KL4);
+ RIP5(B,C,D,E,A,WL69,SL69,KL4);
+ RIP5(A,B,C,D,E,WL70,SL70,KL4);
+ RIP5(E,A,B,C,D,WL71,SL71,KL4);
+ RIP5(D,E,A,B,C,WL72,SL72,KL4);
+ RIP5(C,D,E,A,B,WL73,SL73,KL4);
+ RIP5(B,C,D,E,A,WL74,SL74,KL4);
+ RIP5(A,B,C,D,E,WL75,SL75,KL4);
+ RIP5(E,A,B,C,D,WL76,SL76,KL4);
+ RIP5(D,E,A,B,C,WL77,SL77,KL4);
+ RIP5(C,D,E,A,B,WL78,SL78,KL4);
+ RIP5(B,C,D,E,A,WL79,SL79,KL4);
+
+ a=A; b=B; c=C; d=D; e=E;
+ /* Do other half */
+ A=ctx->A; B=ctx->B; C=ctx->C; D=ctx->D; E=ctx->E;
+
+ RIP5(A,B,C,D,E,WR00,SR00,KR0);
+ RIP5(E,A,B,C,D,WR01,SR01,KR0);
+ RIP5(D,E,A,B,C,WR02,SR02,KR0);
+ RIP5(C,D,E,A,B,WR03,SR03,KR0);
+ RIP5(B,C,D,E,A,WR04,SR04,KR0);
+ RIP5(A,B,C,D,E,WR05,SR05,KR0);
+ RIP5(E,A,B,C,D,WR06,SR06,KR0);
+ RIP5(D,E,A,B,C,WR07,SR07,KR0);
+ RIP5(C,D,E,A,B,WR08,SR08,KR0);
+ RIP5(B,C,D,E,A,WR09,SR09,KR0);
+ RIP5(A,B,C,D,E,WR10,SR10,KR0);
+ RIP5(E,A,B,C,D,WR11,SR11,KR0);
+ RIP5(D,E,A,B,C,WR12,SR12,KR0);
+ RIP5(C,D,E,A,B,WR13,SR13,KR0);
+ RIP5(B,C,D,E,A,WR14,SR14,KR0);
+ RIP5(A,B,C,D,E,WR15,SR15,KR0);
+
+ RIP4(E,A,B,C,D,WR16,SR16,KR1);
+ RIP4(D,E,A,B,C,WR17,SR17,KR1);
+ RIP4(C,D,E,A,B,WR18,SR18,KR1);
+ RIP4(B,C,D,E,A,WR19,SR19,KR1);
+ RIP4(A,B,C,D,E,WR20,SR20,KR1);
+ RIP4(E,A,B,C,D,WR21,SR21,KR1);
+ RIP4(D,E,A,B,C,WR22,SR22,KR1);
+ RIP4(C,D,E,A,B,WR23,SR23,KR1);
+ RIP4(B,C,D,E,A,WR24,SR24,KR1);
+ RIP4(A,B,C,D,E,WR25,SR25,KR1);
+ RIP4(E,A,B,C,D,WR26,SR26,KR1);
+ RIP4(D,E,A,B,C,WR27,SR27,KR1);
+ RIP4(C,D,E,A,B,WR28,SR28,KR1);
+ RIP4(B,C,D,E,A,WR29,SR29,KR1);
+ RIP4(A,B,C,D,E,WR30,SR30,KR1);
+ RIP4(E,A,B,C,D,WR31,SR31,KR1);
+
+ RIP3(D,E,A,B,C,WR32,SR32,KR2);
+ RIP3(C,D,E,A,B,WR33,SR33,KR2);
+ RIP3(B,C,D,E,A,WR34,SR34,KR2);
+ RIP3(A,B,C,D,E,WR35,SR35,KR2);
+ RIP3(E,A,B,C,D,WR36,SR36,KR2);
+ RIP3(D,E,A,B,C,WR37,SR37,KR2);
+ RIP3(C,D,E,A,B,WR38,SR38,KR2);
+ RIP3(B,C,D,E,A,WR39,SR39,KR2);
+ RIP3(A,B,C,D,E,WR40,SR40,KR2);
+ RIP3(E,A,B,C,D,WR41,SR41,KR2);
+ RIP3(D,E,A,B,C,WR42,SR42,KR2);
+ RIP3(C,D,E,A,B,WR43,SR43,KR2);
+ RIP3(B,C,D,E,A,WR44,SR44,KR2);
+ RIP3(A,B,C,D,E,WR45,SR45,KR2);
+ RIP3(E,A,B,C,D,WR46,SR46,KR2);
+ RIP3(D,E,A,B,C,WR47,SR47,KR2);
+
+ RIP2(C,D,E,A,B,WR48,SR48,KR3);
+ RIP2(B,C,D,E,A,WR49,SR49,KR3);
+ RIP2(A,B,C,D,E,WR50,SR50,KR3);
+ RIP2(E,A,B,C,D,WR51,SR51,KR3);
+ RIP2(D,E,A,B,C,WR52,SR52,KR3);
+ RIP2(C,D,E,A,B,WR53,SR53,KR3);
+ RIP2(B,C,D,E,A,WR54,SR54,KR3);
+ RIP2(A,B,C,D,E,WR55,SR55,KR3);
+ RIP2(E,A,B,C,D,WR56,SR56,KR3);
+ RIP2(D,E,A,B,C,WR57,SR57,KR3);
+ RIP2(C,D,E,A,B,WR58,SR58,KR3);
+ RIP2(B,C,D,E,A,WR59,SR59,KR3);
+ RIP2(A,B,C,D,E,WR60,SR60,KR3);
+ RIP2(E,A,B,C,D,WR61,SR61,KR3);
+ RIP2(D,E,A,B,C,WR62,SR62,KR3);
+ RIP2(C,D,E,A,B,WR63,SR63,KR3);
+
+ RIP1(B,C,D,E,A,WR64,SR64);
+ RIP1(A,B,C,D,E,WR65,SR65);
+ RIP1(E,A,B,C,D,WR66,SR66);
+ RIP1(D,E,A,B,C,WR67,SR67);
+ RIP1(C,D,E,A,B,WR68,SR68);
+ RIP1(B,C,D,E,A,WR69,SR69);
+ RIP1(A,B,C,D,E,WR70,SR70);
+ RIP1(E,A,B,C,D,WR71,SR71);
+ RIP1(D,E,A,B,C,WR72,SR72);
+ RIP1(C,D,E,A,B,WR73,SR73);
+ RIP1(B,C,D,E,A,WR74,SR74);
+ RIP1(A,B,C,D,E,WR75,SR75);
+ RIP1(E,A,B,C,D,WR76,SR76);
+ RIP1(D,E,A,B,C,WR77,SR77);
+ RIP1(C,D,E,A,B,WR78,SR78);
+ RIP1(B,C,D,E,A,WR79,SR79);
+
+ D =ctx->B+c+D;
+ ctx->B=ctx->C+d+E;
+ ctx->C=ctx->D+e+A;
+ ctx->D=ctx->E+a+B;
+ ctx->E=ctx->A+b+C;
+ ctx->A=D;
- for (i=0; i<2; i++)
- {
- for (ii=0; ii<8; ii++)
- {
- fprintf(stderr,"%08lx ",l[i*8+ii]);
- }
- fprintf(stderr,"\n");
}
}
#endif
diff --git a/lib/libcrypto/ripemd/rmd_locl.h b/lib/libcrypto/ripemd/rmd_locl.h
index d6ba02001af..145cf316b90 100644
--- a/lib/libcrypto/ripemd/rmd_locl.h
+++ b/lib/libcrypto/ripemd/rmd_locl.h
@@ -58,134 +58,76 @@
#include <stdlib.h>
#include <string.h>
+#include <openssl/opensslconf.h>
#include <openssl/ripemd.h>
-#define ULONG unsigned long
-#define UCHAR unsigned char
-#define UINT unsigned int
-
-#undef c2nl
-#define c2nl(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++))) ))
-
-#undef p_c2nl
-#define p_c2nl(c,l,n) { \
- switch (n) { \
- case 0: l =((unsigned long)(*((c)++)))<<24; \
- case 1: l|=((unsigned long)(*((c)++)))<<16; \
- case 2: l|=((unsigned long)(*((c)++)))<< 8; \
- case 3: l|=((unsigned long)(*((c)++))); \
- } \
- }
-
-#undef c2nl_p
-/* NOTE the pointer is not incremented at the end of this */
-#define c2nl_p(c,l,n) { \
- l=0; \
- (c)+=n; \
- switch (n) { \
- case 3: l =((unsigned long)(*(--(c))))<< 8; \
- case 2: l|=((unsigned long)(*(--(c))))<<16; \
- case 1: l|=((unsigned long)(*(--(c))))<<24; \
- } \
- }
-
-#undef p_c2nl_p
-#define p_c2nl_p(c,l,sc,len) { \
- switch (sc) \
- { \
- case 0: l =((unsigned long)(*((c)++)))<<24; \
- if (--len == 0) break; \
- case 1: l|=((unsigned long)(*((c)++)))<<16; \
- if (--len == 0) break; \
- case 2: l|=((unsigned long)(*((c)++)))<< 8; \
- } \
- }
-
-#undef nl2c
-#define nl2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l) )&0xff))
-
-#undef c2l
-#define c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<<24))
-
-#undef p_c2l
-#define p_c2l(c,l,n) { \
- switch (n) { \
- case 0: l =((unsigned long)(*((c)++))); \
- case 1: l|=((unsigned long)(*((c)++)))<< 8; \
- case 2: l|=((unsigned long)(*((c)++)))<<16; \
- case 3: l|=((unsigned long)(*((c)++)))<<24; \
- } \
- }
-
-#undef c2l_p
-/* NOTE the pointer is not incremented at the end of this */
-#define c2l_p(c,l,n) { \
- l=0; \
- (c)+=n; \
- switch (n) { \
- case 3: l =((unsigned long)(*(--(c))))<<16; \
- case 2: l|=((unsigned long)(*(--(c))))<< 8; \
- case 1: l|=((unsigned long)(*(--(c)))); \
- } \
- }
-
-#undef p_c2l_p
-#define p_c2l_p(c,l,sc,len) { \
- switch (sc) \
- { \
- case 0: l =((unsigned long)(*((c)++))); \
- if (--len == 0) break; \
- case 1: l|=((unsigned long)(*((c)++)))<< 8; \
- if (--len == 0) break; \
- case 2: l|=((unsigned long)(*((c)++)))<<16; \
- } \
- }
-
-#undef l2c
-#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>>24)&0xff))
-
-#undef ROTATE
-#if defined(WIN32)
-#define ROTATE(a,n) _lrotl(a,n)
-#else
-#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
+#ifndef RIPEMD160_LONG_LOG2
+#define RIPEMD160_LONG_LOG2 2 /* default to 32 bits */
+#endif
+
+/*
+ * DO EXAMINE COMMENTS IN crypto/md5/md5_locl.h & crypto/md5/md5_dgst.c
+ * FOR EXPLANATIONS ON FOLLOWING "CODE."
+ * <appro@fy.chalmers.se>
+ */
+#ifdef RMD160_ASM
+# if defined(__i386) || defined(_M_IX86) || defined(__INTEL__)
+# define ripemd160_block_host_order ripemd160_block_asm_host_order
+# endif
+#endif
+
+void ripemd160_block_host_order (RIPEMD160_CTX *c, const void *p,int num);
+void ripemd160_block_data_order (RIPEMD160_CTX *c, const void *p,int num);
+
+#if defined(__i386) || defined(_M_IX86) || defined(__INTEL__)
+#define ripemd160_block_data_order ripemd160_block_host_order
+#endif
+
+#define DATA_ORDER_IS_LITTLE_ENDIAN
+
+#define HASH_LONG RIPEMD160_LONG
+#define HASH_LONG_LOG2 RIPEMD160_LONG_LOG2
+#define HASH_CTX RIPEMD160_CTX
+#define HASH_CBLOCK RIPEMD160_CBLOCK
+#define HASH_LBLOCK RIPEMD160_LBLOCK
+#define HASH_UPDATE RIPEMD160_Update
+#define HASH_TRANSFORM RIPEMD160_Transform
+#define HASH_FINAL RIPEMD160_Final
+#define HASH_BLOCK_HOST_ORDER ripemd160_block_host_order
+#define HASH_MAKE_STRING(c,s) do { \
+ unsigned long ll; \
+ ll=(c)->A; HOST_l2c(ll,(s)); \
+ ll=(c)->B; HOST_l2c(ll,(s)); \
+ ll=(c)->C; HOST_l2c(ll,(s)); \
+ ll=(c)->D; HOST_l2c(ll,(s)); \
+ ll=(c)->E; HOST_l2c(ll,(s)); \
+ } while (0)
+#if !defined(L_ENDIAN) || defined(ripemd160_block_data_order)
+#define HASH_BLOCK_DATA_ORDER ripemd160_block_data_order
#endif
-/* A nice byte order reversal from Wei Dai <weidai@eskimo.com> */
-#if defined(WIN32)
-/* 5 instructions with rotate instruction, else 9 */
-#define Endian_Reverse32(a) \
- { \
- unsigned long l=(a); \
- (a)=((ROTATE(l,8)&0x00FF00FF)|(ROTATE(l,24)&0xFF00FF00)); \
- }
+#ifndef FLAT_INC
+#include "../md32_common.h"
#else
-/* 6 instructions with rotate instruction, else 8 */
-#define Endian_Reverse32(a) \
- { \
- unsigned long l=(a); \
- l=(((l&0xFF00FF00)>>8L)|((l&0x00FF00FF)<<8L)); \
- (a)=ROTATE(l,16L); \
- }
+#include "md32_common.h"
#endif
+#if 0
#define F1(x,y,z) ((x)^(y)^(z))
#define F2(x,y,z) (((x)&(y))|((~x)&z))
#define F3(x,y,z) (((x)|(~y))^(z))
#define F4(x,y,z) (((x)&(z))|((y)&(~(z))))
#define F5(x,y,z) ((x)^((y)|(~(z))))
+#else
+/*
+ * Transformed F2 and F4 are courtesy of Wei Dai <weidai@eskimo.com>
+ */
+#define F1(x,y,z) ((x) ^ (y) ^ (z))
+#define F2(x,y,z) ((((y) ^ (z)) & (x)) ^ (z))
+#define F3(x,y,z) (((~(y)) | (x)) ^ (z))
+#define F4(x,y,z) ((((x) ^ (y)) & (z)) ^ (y))
+#define F5(x,y,z) (((~(z)) | (y)) ^ (x))
+#endif
#define RIPEMD160_A 0x67452301L
#define RIPEMD160_B 0xEFCDAB89L
@@ -196,27 +138,27 @@
#include "rmdconst.h"
#define RIP1(a,b,c,d,e,w,s) { \
- a+=F1(b,c,d)+X[w]; \
+ a+=F1(b,c,d)+X(w); \
a=ROTATE(a,s)+e; \
c=ROTATE(c,10); }
#define RIP2(a,b,c,d,e,w,s,K) { \
- a+=F2(b,c,d)+X[w]+K; \
+ a+=F2(b,c,d)+X(w)+K; \
a=ROTATE(a,s)+e; \
c=ROTATE(c,10); }
#define RIP3(a,b,c,d,e,w,s,K) { \
- a+=F3(b,c,d)+X[w]+K; \
+ a+=F3(b,c,d)+X(w)+K; \
a=ROTATE(a,s)+e; \
c=ROTATE(c,10); }
#define RIP4(a,b,c,d,e,w,s,K) { \
- a+=F4(b,c,d)+X[w]+K; \
+ a+=F4(b,c,d)+X(w)+K; \
a=ROTATE(a,s)+e; \
c=ROTATE(c,10); }
#define RIP5(a,b,c,d,e,w,s,K) { \
- a+=F5(b,c,d)+X[w]+K; \
+ a+=F5(b,c,d)+X(w)+K; \
a=ROTATE(a,s)+e; \
c=ROTATE(c,10); }
diff --git a/lib/libcrypto/ripemd/rmd_one.c b/lib/libcrypto/ripemd/rmd_one.c
index 5b6ff147145..efdf2dd6efc 100644
--- a/lib/libcrypto/ripemd/rmd_one.c
+++ b/lib/libcrypto/ripemd/rmd_one.c
@@ -57,9 +57,10 @@
*/
#include <stdio.h>
-#include "rmd_locl.h"
+#include <string.h>
+#include <openssl/ripemd.h>
-unsigned char *RIPEMD160(unsigned char *d, unsigned long n,
+unsigned char *RIPEMD160(const unsigned char *d, unsigned long n,
unsigned char *md)
{
RIPEMD160_CTX c;
diff --git a/lib/libcrypto/ripemd/rmdtest.c b/lib/libcrypto/ripemd/rmdtest.c
index 5e93d4627c9..5d79c997253 100644
--- a/lib/libcrypto/ripemd/rmdtest.c
+++ b/lib/libcrypto/ripemd/rmdtest.c
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
#include <openssl/ebcdic.h>
#endif
-char *test[]={
+static char *test[]={
"",
"a",
"abc",
@@ -85,7 +85,7 @@ char *test[]={
NULL,
};
-char *ret[]={
+static char *ret[]={
"9c1185a5c5e9fc54612808977ee8f548b2258d31",
"0bdc9d2d256b3ee9daae347be6f4dc835a467ffe",
"8eb208f7e05d987a9b044a8e98c6b087f15a0bfc",