aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/ripemd
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/ripemd')
-rw-r--r--crypto/ripemd/Makefile.ssl4
-rw-r--r--crypto/ripemd/Makefile.uni109
-rw-r--r--crypto/ripemd/asm/rm-win32.asm1973
-rw-r--r--crypto/ripemd/rmd_locl.h4
4 files changed, 2088 insertions, 2 deletions
diff --git a/crypto/ripemd/Makefile.ssl b/crypto/ripemd/Makefile.ssl
index 79948bb69b4..890952764d7 100644
--- a/crypto/ripemd/Makefile.ssl
+++ b/crypto/ripemd/Makefile.ssl
@@ -47,7 +47,7 @@ lib: $(LIBOBJ)
# elf
asm/rm86-elf.o: asm/rm86unix.cpp
- $(CPP) -DELF -x c asm/rm86unix.cpp | as -o asm/rm86-elf.o
+ $(CPP) -DELF asm/rm86unix.cpp | as -o asm/rm86-elf.o
# solaris
asm/rm86-sol.o: asm/rm86unix.cpp
@@ -63,7 +63,7 @@ asm/rm86-out.o: asm/rm86unix.cpp
asm/rm86bsdi.o: asm/rm86unix.cpp
$(CPP) -DBSDI asm/rm86unix.cpp | sed 's/ :/:/' | as -o asm/rm86bsdi.o
-asm/rm86unix.cpp: asm/rmd-586.pl ../perlasm/x86asm.pl
+asm/rm86unix.cpp: asm/rmd-586.pl
(cd asm; $(PERL) rmd-586.pl cpp >rm86unix.cpp)
files:
diff --git a/crypto/ripemd/Makefile.uni b/crypto/ripemd/Makefile.uni
new file mode 100644
index 00000000000..5310020eb11
--- /dev/null
+++ b/crypto/ripemd/Makefile.uni
@@ -0,0 +1,109 @@
+# Targets
+# make - twidle the options yourself :-)
+# make cc - standard cc options
+# make gcc - standard gcc options
+# make x86-elf - linux-elf etc
+# make x86-out - linux-a.out, FreeBSD etc
+# make x86-solaris
+# make x86-bdsi
+
+DIR= md5
+TOP= .
+CC= gcc
+CFLAG= -O3 -fomit-frame-pointer
+
+CPP= $(CC) -E
+INCLUDES=
+INSTALLTOP=/usr/local/lib
+MAKE= make
+MAKEDEPEND= makedepend
+MAKEFILE= Makefile.uni
+AR= ar r
+
+MD5_ASM_OBJ=
+
+CFLAGS= $(INCLUDES) $(CFLAG)
+
+GENERAL=Makefile
+TEST=md5test
+APPS=md5
+
+LIB=libmd5.a
+LIBSRC=md5_dgst.c md5_one.c
+LIBOBJ=md5_dgst.o md5_one.o $(MD5_ASM_OBJ)
+
+SRC= $(LIBSRC)
+
+EXHEADER= md5.h
+HEADER= md5_locl.h $(EXHEADER)
+
+ALL= $(GENERAL) $(SRC) $(HEADER)
+
+all: $(LIB) $(TEST) $(APPS)
+
+$(LIB): $(LIBOBJ)
+ $(AR) $(LIB) $(LIBOBJ)
+ $(RANLIB) $(LIB)
+
+# elf
+asm/mx86-elf.o: asm/mx86unix.cpp
+ $(CPP) -DELF asm/mx86unix.cpp | as -o asm/mx86-elf.o
+
+# solaris
+asm/mx86-sol.o: asm/mx86unix.cpp
+ $(CC) -E -DSOL asm/mx86unix.cpp | sed 's/^#.*//' > asm/mx86-sol.s
+ as -o asm/mx86-sol.o asm/mx86-sol.s
+ rm -f asm/mx86-sol.s
+
+# a.out
+asm/mx86-out.o: asm/mx86unix.cpp
+ $(CPP) -DOUT asm/mx86unix.cpp | as -o asm/mx86-out.o
+
+# bsdi
+asm/mx86bsdi.o: asm/mx86unix.cpp
+ $(CPP) -DBSDI asm/mx86unix.cpp | as -o asm/mx86bsdi.o
+
+asm/mx86unix.cpp:
+ (cd asm; perl md5-586.pl cpp >mx86unix.cpp)
+
+test: $(TEST)
+ ./$(TEST)
+
+$(TEST): $(TEST).c $(LIB)
+ $(CC) -o $(TEST) $(CFLAGS) $(TEST).c $(LIB)
+
+$(APPS): $(APPS).c $(LIB)
+ $(CC) -o $(APPS) $(CFLAGS) $(APPS).c $(LIB)
+
+lint:
+ lint -DLINT $(INCLUDES) $(SRC)>fluff
+
+depend:
+ $(MAKEDEPEND) $(INCLUDES) $(PROGS) $(LIBSRC)
+
+dclean:
+ perl -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
+ mv -f Makefile.new $(MAKEFILE)
+
+clean:
+ /bin/rm -f $(LIB) $(TEST) $(APPS) *.o asm/*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
+
+cc:
+ $(MAKE) MD5_ASM_OBJ="" CC="cc" CFLAG="-O" all
+
+gcc:
+ $(MAKE) MD5_ASM_OBJ="" CC="gcc" CFLAGS="-O3 -fomit-frame-pointer" all
+
+x86-elf:
+ $(MAKE) MD5_ASM_OBJ="asm/mx86-elf.o" CFLAG="-DELF -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
+
+x86-out:
+ $(MAKE) MD5_ASM_OBJ="asm/mx86-out.o" CFLAG="-DOUT -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
+
+x86-solaris:
+ $(MAKE) MD5_ASM_OBJ="asm/mx86-sol.o" CFLAG="-DSOL -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
+
+x86-bdsi:
+ $(MAKE) MD5_ASM_OBJ="asm/mx86-bdsi.o" CFLAG="-DBDSI -DMD5_ASM -DL_ENDIAN $(CFLAGS)" all
+
+# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/crypto/ripemd/asm/rm-win32.asm b/crypto/ripemd/asm/rm-win32.asm
new file mode 100644
index 00000000000..f07d517857b
--- /dev/null
+++ b/crypto/ripemd/asm/rm-win32.asm
@@ -0,0 +1,1973 @@
+ ; Don't even think of reading this code
+ ; It was automatically generated by rmd-586.pl
+ ; Which is a perl program used to generate the x86 assember for
+ ; any of elf, a.out, BSDI,Win32, or Solaris
+ ;
+ TITLE rmd-586.asm
+ .386
+.model FLAT
+_TEXT SEGMENT
+PUBLIC _ripemd160_block_asm_host_order
+
+_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 [edx]
+ push edi
+ mov esi, DWORD PTR 4[edx]
+ push ebp
+ mov edi, DWORD PTR 8[edx]
+ push ebx
+ sub esp, 108
+L000start:
+ ;
+ 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 DWORD PTR 12[esp],ebp
+ mov ebx, DWORD PTR 16[eax]
+ mov ebp, DWORD PTR 20[eax]
+ mov DWORD PTR 16[esp],ebx
+ 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 DWORD PTR 28[esp],ebp
+ mov ebx, DWORD PTR 32[eax]
+ mov ebp, DWORD PTR 36[eax]
+ mov DWORD PTR 32[esp],ebx
+ 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 DWORD PTR 44[esp],ebp
+ mov ebx, DWORD PTR 48[eax]
+ mov ebp, DWORD PTR 52[eax]
+ mov DWORD PTR 48[esp],ebx
+ 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 DWORD PTR 60[esp],ebp
+ mov eax, edi
+ mov ebx, DWORD PTR 12[edx]
+ mov ebp, DWORD PTR 16[edx]
+ ; 0
+ 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 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 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 eax, ecx
+ mov edx, DWORD PTR 12[esp]
+ xor eax, ebx
+ add edi, eax
+ mov eax, ebx
+ rol ebp, 10
+ add edi, edx
+ xor eax, ebp
+ rol edi, 12
+ add edi, esi
+ ; 4
+ 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 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 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 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 edx, DWORD PTR 32[esp]
+ xor eax, ebx
+ add edi, edx
+ rol ebp, 10
+ add edi, eax
+ mov eax, ebx
+ rol edi, 11
+ add edi, esi
+ ; 9
+ 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 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 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 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 eax, ecx
+ mov edx, DWORD PTR 52[esp]
+ xor eax, ebx
+ add edi, eax
+ mov eax, ebx
+ rol ebp, 10
+ add edi, edx
+ xor eax, ebp
+ rol edi, 7
+ add edi, esi
+ ; 14
+ 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 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, 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 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 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 edi, DWORD PTR 1518500249[edx*1+edi]
+ mov edx, -1
+ rol edi, 8
+ add edi, esi
+ ; 19
+ 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 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, 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, ebx
+ ; 22
+ 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 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 edi, DWORD PTR 1518500249[eax*1+edi]
+ mov eax, -1
+ rol edi, 15
+ add edi, esi
+ ; 24
+ 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 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, 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 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 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 edi, DWORD PTR 1518500249[edx*1+edi]
+ mov edx, -1
+ rol edi, 11
+ add edi, esi
+ ; 29
+ 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 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, 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, ebx
+ ; 32
+ 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 edx, DWORD PTR 40[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1859775393[eax*1+edi]
+ sub edx, ebx
+ rol edi, 13
+ add edi, esi
+ ; 34
+ 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 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 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, ebx
+ ; 37
+ 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 eax, DWORD PTR 32[esp]
+ or edx, ebx
+ add edi, eax
+ xor edx, ecx
+ mov eax, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1859775393[edx*1+edi]
+ sub eax, ebx
+ rol edi, 13
+ add edi, esi
+ ; 39
+ 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 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 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 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 edx, DWORD PTR 24[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1859775393[eax*1+edi]
+ sub edx, ebx
+ rol edi, 6
+ add edi, esi
+ ; 44
+ 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 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 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, ebx
+ ; 47
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 4[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 11
+ add edi, esi
+ ; 49
+ 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 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 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, ebx
+ ; 52
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 32[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 15
+ add edi, esi
+ ; 54
+ 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 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 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, ebx
+ ; 57
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 28[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 5
+ add edi, esi
+ ; 59
+ 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 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 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, ebx
+ ; 62
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 8[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 2400959708[edx+edi]
+ mov edx, -1
+ add edi, eax
+ sub edx, ebp
+ rol edi, 12
+ add edi, esi
+ ; 64
+ 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 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 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, ebx
+ ; 67
+ 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 eax, DWORD PTR 28[esp]
+ or edx, ebp
+ add edi, eax
+ xor edx, ebx
+ mov eax, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 2840853838[edx*1+edi]
+ sub eax, ebp
+ rol edi, 6
+ add edi, esi
+ ; 69
+ 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 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 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 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 edx, DWORD PTR 4[esp]
+ or eax, ebp
+ add edi, edx
+ xor eax, ebx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 2840853838[eax*1+edi]
+ sub edx, ebp
+ rol edi, 12
+ add edi, esi
+ ; 74
+ 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 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 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, ebx
+ ; 77
+ 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 eax, DWORD PTR 60[esp]
+ or edx, ebp
+ add edi, eax
+ xor edx, ebx
+ mov eax, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 2840853838[edx*1+edi]
+ sub eax, ebp
+ rol edi, 5
+ add edi, esi
+ ; 79
+ 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 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 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 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 edx, DWORD PTR [esp]
+ or eax, ebp
+ add edi, edx
+ xor eax, ebx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1352829926[eax*1+edi]
+ sub edx, ebp
+ rol edi, 11
+ add edi, esi
+ ; 84
+ 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 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 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, ebx
+ ; 87
+ 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 eax, DWORD PTR 52[esp]
+ or edx, ebp
+ add edi, eax
+ xor edx, ebx
+ mov eax, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1352829926[edx*1+edi]
+ sub eax, ebp
+ rol edi, 7
+ add edi, esi
+ ; 89
+ 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 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 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 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 edx, DWORD PTR 40[esp]
+ or eax, ebp
+ add edi, edx
+ xor eax, ebx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1352829926[eax*1+edi]
+ sub edx, ebp
+ rol edi, 14
+ add edi, esi
+ ; 94
+ 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 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 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, ebx
+ ; 97
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 12[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 1548603684[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 15
+ add edi, esi
+ ; 99
+ 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 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 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, ebx
+ ; 102
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 40[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 1548603684[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 11
+ add edi, esi
+ ; 104
+ 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 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 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, ebx
+ ; 107
+ 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 edx, ecx
+ and eax, ebx
+ and edx, ebp
+ or edx, eax
+ mov eax, DWORD PTR 16[esp]
+ rol ebp, 10
+ lea edi, DWORD PTR 1548603684[edx+edi]
+ mov edx, -1
+ add edi, eax
+ mov eax, ebp
+ rol edi, 6
+ add edi, esi
+ ; 109
+ 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 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 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, ebx
+ ; 112
+ 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 edx, DWORD PTR 20[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1836072691[eax*1+edi]
+ sub edx, ebx
+ rol edi, 7
+ add edi, esi
+ ; 114
+ 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 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 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, ebx
+ ; 117
+ 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 eax, DWORD PTR 24[esp]
+ or edx, ebx
+ add edi, eax
+ xor edx, ecx
+ mov eax, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1836072691[edx*1+edi]
+ sub eax, ebx
+ rol edi, 6
+ add edi, esi
+ ; 119
+ 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 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 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 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 edx, DWORD PTR 8[esp]
+ or eax, ebx
+ add edi, edx
+ xor eax, ecx
+ mov edx, -1
+ rol ebp, 10
+ lea edi, DWORD PTR 1836072691[eax*1+edi]
+ sub edx, ebx
+ rol edi, 14
+ add edi, esi
+ ; 124
+ 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 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 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, ebx
+ ; 127
+ 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 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 edi, DWORD PTR 2053994217[edx*1+edi]
+ mov edx, -1
+ rol edi, 15
+ add edi, esi
+ ; 129
+ 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 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, 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, ebx
+ ; 132
+ 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 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 edi, DWORD PTR 2053994217[eax*1+edi]
+ mov eax, -1
+ rol edi, 14
+ add edi, esi
+ ; 134
+ 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 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, 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 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 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 edi, DWORD PTR 2053994217[edx*1+edi]
+ mov edx, -1
+ rol edi, 12
+ add edi, esi
+ ; 139
+ 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 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, 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, ebx
+ ; 142
+ 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 edi, eax
+ mov eax, ebp
+ sub edx, ebx
+ and eax, ebx
+ and edx, ecx
+ or edx, eax
+ mov eax, ebx
+ rol ebp, 10
+ lea edi, DWORD PTR 2053994217[edx*1+edi]
+ xor eax, ebp
+ rol edi, 8
+ add edi, esi
+ ; 144
+ 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 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 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 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 edx, DWORD PTR 4[esp]
+ xor eax, ebx
+ add edi, edx
+ rol ebp, 10
+ add edi, eax
+ mov eax, ebx
+ rol edi, 12
+ add edi, esi
+ ; 149
+ 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 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 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 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 eax, ecx
+ mov edx, DWORD PTR 8[esp]
+ xor eax, ebx
+ add edi, eax
+ mov eax, ebx
+ rol ebp, 10
+ add edi, edx
+ xor eax, ebp
+ rol edi, 13
+ add edi, esi
+ ; 154
+ 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 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 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 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 edx, DWORD PTR 36[esp]
+ xor eax, ebx
+ add edi, edx
+ rol ebp, 10
+ add edi, eax
+ mov eax, ebx
+ rol edi, 11
+ add edi, esi
+ ; 159
+ 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 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_asm_host_order ENDP
+_TEXT ENDS
+END
diff --git a/crypto/ripemd/rmd_locl.h b/crypto/ripemd/rmd_locl.h
index f537b888675..145cf316b90 100644
--- a/crypto/ripemd/rmd_locl.h
+++ b/crypto/ripemd/rmd_locl.h
@@ -106,7 +106,11 @@ void ripemd160_block_data_order (RIPEMD160_CTX *c, const void *p,int num);
#define HASH_BLOCK_DATA_ORDER ripemd160_block_data_order
#endif
+#ifndef FLAT_INC
+#include "../md32_common.h"
+#else
#include "md32_common.h"
+#endif
#if 0
#define F1(x,y,z) ((x)^(y)^(z))