diff options
Diffstat (limited to 'crypto/sha')
| -rw-r--r-- | crypto/sha/Makefile.ssl | 5 | ||||
| -rw-r--r-- | crypto/sha/Makefile.uni | 122 | ||||
| -rw-r--r-- | crypto/sha/asm/s1-win32.asm | 1716 | ||||
| -rw-r--r-- | crypto/sha/asm/sha1-586.pl | 2 | ||||
| -rw-r--r-- | crypto/sha/sha_locl.h | 4 |
5 files changed, 1845 insertions, 4 deletions
diff --git a/crypto/sha/Makefile.ssl b/crypto/sha/Makefile.ssl index 0e6e7b8940c..0494dca09b5 100644 --- a/crypto/sha/Makefile.ssl +++ b/crypto/sha/Makefile.ssl @@ -5,7 +5,6 @@ DIR= sha TOP= ../.. CC= cc -CPP= $(CC) -E INCLUDES= CFLAG=-g INSTALL_PREFIX= @@ -47,7 +46,7 @@ lib: $(LIBOBJ) # elf asm/sx86-elf.o: asm/sx86unix.cpp - $(CPP) -DELF -x c asm/sx86unix.cpp | as -o asm/sx86-elf.o + $(CPP) -DELF asm/sx86unix.cpp | as -o asm/sx86-elf.o # solaris asm/sx86-sol.o: asm/sx86unix.cpp @@ -63,7 +62,7 @@ asm/sx86-out.o: asm/sx86unix.cpp asm/sx86bsdi.o: asm/sx86unix.cpp $(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o -asm/sx86unix.cpp: asm/sha1-586.pl ../perlasm/x86asm.pl +asm/sx86unix.cpp: (cd asm; $(PERL) sha1-586.pl cpp $(PROCESSOR) >sx86unix.cpp) files: diff --git a/crypto/sha/Makefile.uni b/crypto/sha/Makefile.uni new file mode 100644 index 00000000000..b7ec5caa4e5 --- /dev/null +++ b/crypto/sha/Makefile.uni @@ -0,0 +1,122 @@ +# 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= sha +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 + +SHA_ASM_OBJ= + +CFLAGS= $(INCLUDES) $(CFLAG) + +GENERAL=Makefile + +TEST1=shatest +TEST2=sha1test +APP1=sha +APP2=sha1 + +TEST=$(TEST1) $(TEST2) +APPS=$(APP1) $(APP2) + +LIB=libsha.a +LIBSRC=sha_dgst.c sha1dgst.c sha_one.c sha1_one.c +LIBOBJ=sha_dgst.o sha1dgst.o sha_one.o sha1_one.o $(SHA_ASM_OBJ) + +SRC= $(LIBSRC) + +EXHEADER= sha.h +HEADER= sha_locl.h $(EXHEADER) + +ALL= $(GENERAL) $(SRC) $(HEADER) + +all: $(LIB) $(TEST) $(APPS) + +$(LIB): $(LIBOBJ) + $(AR) $(LIB) $(LIBOBJ) + $(RANLIB) $(LIB) + +# elf +asm/sx86-elf.o: asm/sx86unix.cpp + $(CPP) -DELF asm/sx86unix.cpp | as -o asm/sx86-elf.o + +# solaris +asm/sx86-sol.o: asm/sx86unix.cpp + $(CC) -E -DSOL asm/sx86unix.cpp | sed 's/^#.*//' > asm/sx86-sol.s + as -o asm/sx86-sol.o asm/sx86-sol.s + rm -f asm/sx86-sol.s + +# a.out +asm/sx86-out.o: asm/sx86unix.cpp + $(CPP) -DOUT asm/sx86unix.cpp | as -o asm/sx86-out.o + +# bsdi +asm/sx86bsdi.o: asm/sx86unix.cpp + $(CPP) -DBSDI asm/sx86unix.cpp | as -o asm/sx86bsdi.o + +asm/sx86unix.cpp: + (cd asm; perl sha1-586.pl cpp >sx86unix.cpp) + +test: $(TEST) + ./$(TEST1) + ./$(TEST2) + +$(TEST1): $(TEST1).c $(LIB) + $(CC) -o $(TEST1) $(CFLAGS) $(TEST1).c $(LIB) + +$(TEST2): $(TEST2).c $(LIB) + $(CC) -o $(TEST2) $(CFLAGS) $(TEST2).c $(LIB) + +$(APP1): $(APP1).c $(LIB) + $(CC) -o $(APP1) $(CFLAGS) $(APP1).c $(LIB) + +$(APP2): $(APP2).c $(LIB) + $(CC) -o $(APP2) $(CFLAGS) $(APP2).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) SHA_ASM_OBJ="" CC="cc" CFLAG="-O" all + +gcc: + $(MAKE) SHA_ASM_OBJ="" CC="gcc" CFLAGS="-O3 -fomit-frame-pointer" all + +x86-elf: + $(MAKE) SHA_ASM_OBJ="asm/sx86-elf.o" CFLAG="-DELF -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all + +x86-out: + $(MAKE) SHA_ASM_OBJ="asm/sx86-out.o" CFLAG="-DOUT -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all + +x86-solaris: + $(MAKE) SHA_ASM_OBJ="asm/sx86-sol.o" CFLAG="-DSOL -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all + +x86-bdsi: + $(MAKE) SHA_ASM_OBJ="asm/sx86-bdsi.o" CFLAG="-DBDSI -DSHA1_ASM -DL_ENDIAN $(CFLAGS)" all + +# DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/crypto/sha/asm/s1-win32.asm b/crypto/sha/asm/s1-win32.asm new file mode 100644 index 00000000000..699afdb0223 --- /dev/null +++ b/crypto/sha/asm/s1-win32.asm @@ -0,0 +1,1716 @@ + ; Don't even think of reading this code + ; It was automatically generated by sha1-586.pl + ; Which is a perl program used to generate the x86 assember for + ; any of elf, a.out, BSDI,Win32, or Solaris + ; eric <[email protected]> + ; + TITLE sha1-586.asm + .486 +.model FLAT +_TEXT SEGMENT +PUBLIC _sha1_block_asm_data_order + +_sha1_block_asm_data_order PROC NEAR + mov ecx, DWORD PTR 12[esp] + push esi + shl ecx, 6 + mov esi, DWORD PTR 12[esp] + push ebp + add ecx, esi + push ebx + mov ebp, DWORD PTR 16[esp] + push edi + mov edx, DWORD PTR 12[ebp] + sub esp, 108 + mov edi, DWORD PTR 16[ebp] + mov ebx, DWORD PTR 8[ebp] + mov DWORD PTR 68[esp],ecx + ; First we need to setup the X array +L000start: + ; First, load the words onto the stack in network byte order + mov eax, DWORD PTR [esi] + mov ecx, DWORD PTR 4[esi] + bswap eax + bswap ecx + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ecx + mov eax, DWORD PTR 8[esi] + mov ecx, DWORD PTR 12[esi] + bswap eax + bswap ecx + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ecx + mov eax, DWORD PTR 16[esi] + mov ecx, DWORD PTR 20[esi] + bswap eax + bswap ecx + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ecx + mov eax, DWORD PTR 24[esi] + mov ecx, DWORD PTR 28[esi] + bswap eax + bswap ecx + mov DWORD PTR 24[esp],eax + mov DWORD PTR 28[esp],ecx + mov eax, DWORD PTR 32[esi] + mov ecx, DWORD PTR 36[esi] + bswap eax + bswap ecx + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ecx + mov eax, DWORD PTR 40[esi] + mov ecx, DWORD PTR 44[esi] + bswap eax + bswap ecx + mov DWORD PTR 40[esp],eax + mov DWORD PTR 44[esp],ecx + mov eax, DWORD PTR 48[esi] + mov ecx, DWORD PTR 52[esi] + bswap eax + bswap ecx + mov DWORD PTR 48[esp],eax + mov DWORD PTR 52[esp],ecx + mov eax, DWORD PTR 56[esi] + mov ecx, DWORD PTR 60[esi] + bswap eax + bswap ecx + mov DWORD PTR 56[esp],eax + mov DWORD PTR 60[esp],ecx + ; We now have the X array on the stack + ; starting at sp-4 + mov DWORD PTR 132[esp],esi +L001shortcut: + ; + ; Start processing + mov eax, DWORD PTR [ebp] + mov ecx, DWORD PTR 4[ebp] + ; 00_15 0 + mov esi, ebx + mov ebp, eax + xor esi, edx + rol ebp, 5 + and esi, ecx + add ebp, edi + ror ecx, 1 + mov edi, DWORD PTR [esp] + ror ecx, 1 + xor esi, edx + lea ebp, DWORD PTR 1518500249[edi*1+ebp] + mov edi, ecx + add esi, ebp + xor edi, ebx + mov ebp, esi + and edi, eax + rol ebp, 5 + add ebp, edx + mov edx, DWORD PTR 4[esp] + ror eax, 1 + xor edi, ebx + ror eax, 1 + lea ebp, DWORD PTR 1518500249[edx*1+ebp] + add edi, ebp + ; 00_15 2 + mov edx, eax + mov ebp, edi + xor edx, ecx + rol ebp, 5 + and edx, esi + add ebp, ebx + ror esi, 1 + mov ebx, DWORD PTR 8[esp] + ror esi, 1 + xor edx, ecx + lea ebp, DWORD PTR 1518500249[ebx*1+ebp] + mov ebx, esi + add edx, ebp + xor ebx, eax + mov ebp, edx + and ebx, edi + rol ebp, 5 + add ebp, ecx + mov ecx, DWORD PTR 12[esp] + ror edi, 1 + xor ebx, eax + ror edi, 1 + lea ebp, DWORD PTR 1518500249[ecx*1+ebp] + add ebx, ebp + ; 00_15 4 + mov ecx, edi + mov ebp, ebx + xor ecx, esi + rol ebp, 5 + and ecx, edx + add ebp, eax + ror edx, 1 + mov eax, DWORD PTR 16[esp] + ror edx, 1 + xor ecx, esi + lea ebp, DWORD PTR 1518500249[eax*1+ebp] + mov eax, edx + add ecx, ebp + xor eax, edi + mov ebp, ecx + and eax, ebx + rol ebp, 5 + add ebp, esi + mov esi, DWORD PTR 20[esp] + ror ebx, 1 + xor eax, edi + ror ebx, 1 + lea ebp, DWORD PTR 1518500249[esi*1+ebp] + add eax, ebp + ; 00_15 6 + mov esi, ebx + mov ebp, eax + xor esi, edx + rol ebp, 5 + and esi, ecx + add ebp, edi + ror ecx, 1 + mov edi, DWORD PTR 24[esp] + ror ecx, 1 + xor esi, edx + lea ebp, DWORD PTR 1518500249[edi*1+ebp] + mov edi, ecx + add esi, ebp + xor edi, ebx + mov ebp, esi + and edi, eax + rol ebp, 5 + add ebp, edx + mov edx, DWORD PTR 28[esp] + ror eax, 1 + xor edi, ebx + ror eax, 1 + lea ebp, DWORD PTR 1518500249[edx*1+ebp] + add edi, ebp + ; 00_15 8 + mov edx, eax + mov ebp, edi + xor edx, ecx + rol ebp, 5 + and edx, esi + add ebp, ebx + ror esi, 1 + mov ebx, DWORD PTR 32[esp] + ror esi, 1 + xor edx, ecx + lea ebp, DWORD PTR 1518500249[ebx*1+ebp] + mov ebx, esi + add edx, ebp + xor ebx, eax + mov ebp, edx + and ebx, edi + rol ebp, 5 + add ebp, ecx + mov ecx, DWORD PTR 36[esp] + ror edi, 1 + xor ebx, eax + ror edi, 1 + lea ebp, DWORD PTR 1518500249[ecx*1+ebp] + add ebx, ebp + ; 00_15 10 + mov ecx, edi + mov ebp, ebx + xor ecx, esi + rol ebp, 5 + and ecx, edx + add ebp, eax + ror edx, 1 + mov eax, DWORD PTR 40[esp] + ror edx, 1 + xor ecx, esi + lea ebp, DWORD PTR 1518500249[eax*1+ebp] + mov eax, edx + add ecx, ebp + xor eax, edi + mov ebp, ecx + and eax, ebx + rol ebp, 5 + add ebp, esi + mov esi, DWORD PTR 44[esp] + ror ebx, 1 + xor eax, edi + ror ebx, 1 + lea ebp, DWORD PTR 1518500249[esi*1+ebp] + add eax, ebp + ; 00_15 12 + mov esi, ebx + mov ebp, eax + xor esi, edx + rol ebp, 5 + and esi, ecx + add ebp, edi + ror ecx, 1 + mov edi, DWORD PTR 48[esp] + ror ecx, 1 + xor esi, edx + lea ebp, DWORD PTR 1518500249[edi*1+ebp] + mov edi, ecx + add esi, ebp + xor edi, ebx + mov ebp, esi + and edi, eax + rol ebp, 5 + add ebp, edx + mov edx, DWORD PTR 52[esp] + ror eax, 1 + xor edi, ebx + ror eax, 1 + lea ebp, DWORD PTR 1518500249[edx*1+ebp] + add edi, ebp + ; 00_15 14 + mov edx, eax + mov ebp, edi + xor edx, ecx + rol ebp, 5 + and edx, esi + add ebp, ebx + ror esi, 1 + mov ebx, DWORD PTR 56[esp] + ror esi, 1 + xor edx, ecx + lea ebp, DWORD PTR 1518500249[ebx*1+ebp] + mov ebx, esi + add edx, ebp + xor ebx, eax + mov ebp, edx + and ebx, edi + rol ebp, 5 + add ebp, ecx + mov ecx, DWORD PTR 60[esp] + ror edi, 1 + xor ebx, eax + ror edi, 1 + lea ebp, DWORD PTR 1518500249[ecx*1+ebp] + add ebx, ebp + ; 16_19 16 + nop + mov ebp, DWORD PTR [esp] + mov ecx, DWORD PTR 8[esp] + xor ecx, ebp + mov ebp, DWORD PTR 32[esp] + xor ecx, ebp + mov ebp, DWORD PTR 52[esp] + xor ecx, ebp + mov ebp, edi + rol ecx, 1 + xor ebp, esi + mov DWORD PTR [esp],ecx + and ebp, edx + lea ecx, DWORD PTR 1518500249[eax*1+ecx] + xor ebp, esi + mov eax, ebx + add ecx, ebp + rol eax, 5 + ror edx, 1 + add ecx, eax + mov eax, DWORD PTR 4[esp] + mov ebp, DWORD PTR 12[esp] + xor eax, ebp + mov ebp, DWORD PTR 36[esp] + xor eax, ebp + mov ebp, DWORD PTR 56[esp] + ror edx, 1 + xor eax, ebp + rol eax, 1 + mov ebp, edx + xor ebp, edi + mov DWORD PTR 4[esp],eax + and ebp, ebx + lea eax, DWORD PTR 1518500249[esi*1+eax] + xor ebp, edi + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add eax, esi + ror ebx, 1 + add eax, ebp + ; 16_19 18 + mov ebp, DWORD PTR 8[esp] + mov esi, DWORD PTR 16[esp] + xor esi, ebp + mov ebp, DWORD PTR 40[esp] + xor esi, ebp + mov ebp, DWORD PTR 60[esp] + xor esi, ebp + mov ebp, ebx + rol esi, 1 + xor ebp, edx + mov DWORD PTR 8[esp],esi + and ebp, ecx + lea esi, DWORD PTR 1518500249[edi*1+esi] + xor ebp, edx + mov edi, eax + add esi, ebp + rol edi, 5 + ror ecx, 1 + add esi, edi + mov edi, DWORD PTR 12[esp] + mov ebp, DWORD PTR 20[esp] + xor edi, ebp + mov ebp, DWORD PTR 44[esp] + xor edi, ebp + mov ebp, DWORD PTR [esp] + ror ecx, 1 + xor edi, ebp + rol edi, 1 + mov ebp, ecx + xor ebp, ebx + mov DWORD PTR 12[esp],edi + and ebp, eax + lea edi, DWORD PTR 1518500249[edx*1+edi] + xor ebp, ebx + mov edx, esi + rol edx, 5 + ror eax, 1 + add edi, edx + ror eax, 1 + add edi, ebp + ; 20_39 20 + mov edx, DWORD PTR 16[esp] + mov ebp, DWORD PTR 24[esp] + xor edx, ebp + mov ebp, DWORD PTR 48[esp] + xor edx, ebp + mov ebp, DWORD PTR 4[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR 16[esp],edx + xor ebp, ecx + lea edx, DWORD PTR 1859775393[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 21 + mov ebx, DWORD PTR 20[esp] + mov ebp, DWORD PTR 28[esp] + xor ebx, ebp + mov ebp, DWORD PTR 52[esp] + xor ebx, ebp + mov ebp, DWORD PTR 8[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 20[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 1859775393[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 20_39 22 + mov ecx, DWORD PTR 24[esp] + mov ebp, DWORD PTR 32[esp] + xor ecx, ebp + mov ebp, DWORD PTR 56[esp] + xor ecx, ebp + mov ebp, DWORD PTR 12[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + xor ebp, edi + mov DWORD PTR 24[esp],ecx + xor ebp, esi + lea ecx, DWORD PTR 1859775393[eax*1+ecx] + mov eax, ebx + rol eax, 5 + ror edx, 1 + add eax, ebp + ror edx, 1 + add ecx, eax + ; 20_39 23 + mov eax, DWORD PTR 28[esp] + mov ebp, DWORD PTR 36[esp] + xor eax, ebp + mov ebp, DWORD PTR 60[esp] + xor eax, ebp + mov ebp, DWORD PTR 16[esp] + xor eax, ebp + mov ebp, ebx + rol eax, 1 + xor ebp, edx + mov DWORD PTR 28[esp],eax + xor ebp, edi + lea eax, DWORD PTR 1859775393[esi*1+eax] + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add esi, ebp + ror ebx, 1 + add eax, esi + ; 20_39 24 + mov esi, DWORD PTR 32[esp] + mov ebp, DWORD PTR 40[esp] + xor esi, ebp + mov ebp, DWORD PTR [esp] + xor esi, ebp + mov ebp, DWORD PTR 20[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 32[esp],esi + xor ebp, edx + lea esi, DWORD PTR 1859775393[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 25 + mov edi, DWORD PTR 36[esp] + mov ebp, DWORD PTR 44[esp] + xor edi, ebp + mov ebp, DWORD PTR 4[esp] + xor edi, ebp + mov ebp, DWORD PTR 24[esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 36[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 1859775393[edx*1+edi] + mov edx, esi + rol edx, 5 + ror eax, 1 + add edx, ebp + ror eax, 1 + add edi, edx + ; 20_39 26 + mov edx, DWORD PTR 40[esp] + mov ebp, DWORD PTR 48[esp] + xor edx, ebp + mov ebp, DWORD PTR 8[esp] + xor edx, ebp + mov ebp, DWORD PTR 28[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR 40[esp],edx + xor ebp, ecx + lea edx, DWORD PTR 1859775393[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 27 + mov ebx, DWORD PTR 44[esp] + mov ebp, DWORD PTR 52[esp] + xor ebx, ebp + mov ebp, DWORD PTR 12[esp] + xor ebx, ebp + mov ebp, DWORD PTR 32[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 44[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 1859775393[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 20_39 28 + mov ecx, DWORD PTR 48[esp] + mov ebp, DWORD PTR 56[esp] + xor ecx, ebp + mov ebp, DWORD PTR 16[esp] + xor ecx, ebp + mov ebp, DWORD PTR 36[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + xor ebp, edi + mov DWORD PTR 48[esp],ecx + xor ebp, esi + lea ecx, DWORD PTR 1859775393[eax*1+ecx] + mov eax, ebx + rol eax, 5 + ror edx, 1 + add eax, ebp + ror edx, 1 + add ecx, eax + ; 20_39 29 + mov eax, DWORD PTR 52[esp] + mov ebp, DWORD PTR 60[esp] + xor eax, ebp + mov ebp, DWORD PTR 20[esp] + xor eax, ebp + mov ebp, DWORD PTR 40[esp] + xor eax, ebp + mov ebp, ebx + rol eax, 1 + xor ebp, edx + mov DWORD PTR 52[esp],eax + xor ebp, edi + lea eax, DWORD PTR 1859775393[esi*1+eax] + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add esi, ebp + ror ebx, 1 + add eax, esi + ; 20_39 30 + mov esi, DWORD PTR 56[esp] + mov ebp, DWORD PTR [esp] + xor esi, ebp + mov ebp, DWORD PTR 24[esp] + xor esi, ebp + mov ebp, DWORD PTR 44[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 56[esp],esi + xor ebp, edx + lea esi, DWORD PTR 1859775393[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 31 + mov edi, DWORD PTR 60[esp] + mov ebp, DWORD PTR 4[esp] + xor edi, ebp + mov ebp, DWORD PTR 28[esp] + xor edi, ebp + mov ebp, DWORD PTR 48[esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 60[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 1859775393[edx*1+edi] + mov edx, esi + rol edx, 5 + ror eax, 1 + add edx, ebp + ror eax, 1 + add edi, edx + ; 20_39 32 + mov edx, DWORD PTR [esp] + mov ebp, DWORD PTR 8[esp] + xor edx, ebp + mov ebp, DWORD PTR 32[esp] + xor edx, ebp + mov ebp, DWORD PTR 52[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR [esp],edx + xor ebp, ecx + lea edx, DWORD PTR 1859775393[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 33 + mov ebx, DWORD PTR 4[esp] + mov ebp, DWORD PTR 12[esp] + xor ebx, ebp + mov ebp, DWORD PTR 36[esp] + xor ebx, ebp + mov ebp, DWORD PTR 56[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 4[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 1859775393[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 20_39 34 + mov ecx, DWORD PTR 8[esp] + mov ebp, DWORD PTR 16[esp] + xor ecx, ebp + mov ebp, DWORD PTR 40[esp] + xor ecx, ebp + mov ebp, DWORD PTR 60[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + xor ebp, edi + mov DWORD PTR 8[esp],ecx + xor ebp, esi + lea ecx, DWORD PTR 1859775393[eax*1+ecx] + mov eax, ebx + rol eax, 5 + ror edx, 1 + add eax, ebp + ror edx, 1 + add ecx, eax + ; 20_39 35 + mov eax, DWORD PTR 12[esp] + mov ebp, DWORD PTR 20[esp] + xor eax, ebp + mov ebp, DWORD PTR 44[esp] + xor eax, ebp + mov ebp, DWORD PTR [esp] + xor eax, ebp + mov ebp, ebx + rol eax, 1 + xor ebp, edx + mov DWORD PTR 12[esp],eax + xor ebp, edi + lea eax, DWORD PTR 1859775393[esi*1+eax] + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add esi, ebp + ror ebx, 1 + add eax, esi + ; 20_39 36 + mov esi, DWORD PTR 16[esp] + mov ebp, DWORD PTR 24[esp] + xor esi, ebp + mov ebp, DWORD PTR 48[esp] + xor esi, ebp + mov ebp, DWORD PTR 4[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 16[esp],esi + xor ebp, edx + lea esi, DWORD PTR 1859775393[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 37 + mov edi, DWORD PTR 20[esp] + mov ebp, DWORD PTR 28[esp] + xor edi, ebp + mov ebp, DWORD PTR 52[esp] + xor edi, ebp + mov ebp, DWORD PTR 8[esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 20[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 1859775393[edx*1+edi] + mov edx, esi + rol edx, 5 + ror eax, 1 + add edx, ebp + ror eax, 1 + add edi, edx + ; 20_39 38 + mov edx, DWORD PTR 24[esp] + mov ebp, DWORD PTR 32[esp] + xor edx, ebp + mov ebp, DWORD PTR 56[esp] + xor edx, ebp + mov ebp, DWORD PTR 12[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR 24[esp],edx + xor ebp, ecx + lea edx, DWORD PTR 1859775393[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 39 + mov ebx, DWORD PTR 28[esp] + mov ebp, DWORD PTR 36[esp] + xor ebx, ebp + mov ebp, DWORD PTR 60[esp] + xor ebx, ebp + mov ebp, DWORD PTR 16[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 28[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 1859775393[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 40_59 40 + mov ecx, DWORD PTR 32[esp] + mov ebp, DWORD PTR 40[esp] + xor ecx, ebp + mov ebp, DWORD PTR [esp] + xor ecx, ebp + mov ebp, DWORD PTR 20[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + or ebp, edi + mov DWORD PTR 32[esp],ecx + and ebp, esi + lea ecx, DWORD PTR 2400959708[eax*1+ecx] + mov eax, edx + ror edx, 1 + and eax, edi + or ebp, eax + mov eax, ebx + rol eax, 5 + add ebp, eax + mov eax, DWORD PTR 36[esp] + add ecx, ebp + mov ebp, DWORD PTR 44[esp] + xor eax, ebp + mov ebp, DWORD PTR 4[esp] + xor eax, ebp + mov ebp, DWORD PTR 24[esp] + ror edx, 1 + xor eax, ebp + rol eax, 1 + mov ebp, ebx + mov DWORD PTR 36[esp],eax + or ebp, edx + lea eax, DWORD PTR 2400959708[esi*1+eax] + mov esi, ebx + and ebp, edi + and esi, edx + or ebp, esi + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add ebp, esi + ror ebx, 1 + add eax, ebp + ; 40_59 41 + ; 40_59 42 + mov esi, DWORD PTR 40[esp] + mov ebp, DWORD PTR 48[esp] + xor esi, ebp + mov ebp, DWORD PTR 8[esp] + xor esi, ebp + mov ebp, DWORD PTR 28[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + or ebp, ebx + mov DWORD PTR 40[esp],esi + and ebp, edx + lea esi, DWORD PTR 2400959708[edi*1+esi] + mov edi, ecx + ror ecx, 1 + and edi, ebx + or ebp, edi + mov edi, eax + rol edi, 5 + add ebp, edi + mov edi, DWORD PTR 44[esp] + add esi, ebp + mov ebp, DWORD PTR 52[esp] + xor edi, ebp + mov ebp, DWORD PTR 12[esp] + xor edi, ebp + mov ebp, DWORD PTR 32[esp] + ror ecx, 1 + xor edi, ebp + rol edi, 1 + mov ebp, eax + mov DWORD PTR 44[esp],edi + or ebp, ecx + lea edi, DWORD PTR 2400959708[edx*1+edi] + mov edx, eax + and ebp, ebx + and edx, ecx + or ebp, edx + mov edx, esi + rol edx, 5 + ror eax, 1 + add ebp, edx + ror eax, 1 + add edi, ebp + ; 40_59 43 + ; 40_59 44 + mov edx, DWORD PTR 48[esp] + mov ebp, DWORD PTR 56[esp] + xor edx, ebp + mov ebp, DWORD PTR 16[esp] + xor edx, ebp + mov ebp, DWORD PTR 36[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + or ebp, eax + mov DWORD PTR 48[esp],edx + and ebp, ecx + lea edx, DWORD PTR 2400959708[ebx*1+edx] + mov ebx, esi + ror esi, 1 + and ebx, eax + or ebp, ebx + mov ebx, edi + rol ebx, 5 + add ebp, ebx + mov ebx, DWORD PTR 52[esp] + add edx, ebp + mov ebp, DWORD PTR 60[esp] + xor ebx, ebp + mov ebp, DWORD PTR 20[esp] + xor ebx, ebp + mov ebp, DWORD PTR 40[esp] + ror esi, 1 + xor ebx, ebp + rol ebx, 1 + mov ebp, edi + mov DWORD PTR 52[esp],ebx + or ebp, esi + lea ebx, DWORD PTR 2400959708[ecx*1+ebx] + mov ecx, edi + and ebp, eax + and ecx, esi + or ebp, ecx + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ebp, ecx + ror edi, 1 + add ebx, ebp + ; 40_59 45 + ; 40_59 46 + mov ecx, DWORD PTR 56[esp] + mov ebp, DWORD PTR [esp] + xor ecx, ebp + mov ebp, DWORD PTR 24[esp] + xor ecx, ebp + mov ebp, DWORD PTR 44[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + or ebp, edi + mov DWORD PTR 56[esp],ecx + and ebp, esi + lea ecx, DWORD PTR 2400959708[eax*1+ecx] + mov eax, edx + ror edx, 1 + and eax, edi + or ebp, eax + mov eax, ebx + rol eax, 5 + add ebp, eax + mov eax, DWORD PTR 60[esp] + add ecx, ebp + mov ebp, DWORD PTR 4[esp] + xor eax, ebp + mov ebp, DWORD PTR 28[esp] + xor eax, ebp + mov ebp, DWORD PTR 48[esp] + ror edx, 1 + xor eax, ebp + rol eax, 1 + mov ebp, ebx + mov DWORD PTR 60[esp],eax + or ebp, edx + lea eax, DWORD PTR 2400959708[esi*1+eax] + mov esi, ebx + and ebp, edi + and esi, edx + or ebp, esi + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add ebp, esi + ror ebx, 1 + add eax, ebp + ; 40_59 47 + ; 40_59 48 + mov esi, DWORD PTR [esp] + mov ebp, DWORD PTR 8[esp] + xor esi, ebp + mov ebp, DWORD PTR 32[esp] + xor esi, ebp + mov ebp, DWORD PTR 52[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + or ebp, ebx + mov DWORD PTR [esp],esi + and ebp, edx + lea esi, DWORD PTR 2400959708[edi*1+esi] + mov edi, ecx + ror ecx, 1 + and edi, ebx + or ebp, edi + mov edi, eax + rol edi, 5 + add ebp, edi + mov edi, DWORD PTR 4[esp] + add esi, ebp + mov ebp, DWORD PTR 12[esp] + xor edi, ebp + mov ebp, DWORD PTR 36[esp] + xor edi, ebp + mov ebp, DWORD PTR 56[esp] + ror ecx, 1 + xor edi, ebp + rol edi, 1 + mov ebp, eax + mov DWORD PTR 4[esp],edi + or ebp, ecx + lea edi, DWORD PTR 2400959708[edx*1+edi] + mov edx, eax + and ebp, ebx + and edx, ecx + or ebp, edx + mov edx, esi + rol edx, 5 + ror eax, 1 + add ebp, edx + ror eax, 1 + add edi, ebp + ; 40_59 49 + ; 40_59 50 + mov edx, DWORD PTR 8[esp] + mov ebp, DWORD PTR 16[esp] + xor edx, ebp + mov ebp, DWORD PTR 40[esp] + xor edx, ebp + mov ebp, DWORD PTR 60[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + or ebp, eax + mov DWORD PTR 8[esp],edx + and ebp, ecx + lea edx, DWORD PTR 2400959708[ebx*1+edx] + mov ebx, esi + ror esi, 1 + and ebx, eax + or ebp, ebx + mov ebx, edi + rol ebx, 5 + add ebp, ebx + mov ebx, DWORD PTR 12[esp] + add edx, ebp + mov ebp, DWORD PTR 20[esp] + xor ebx, ebp + mov ebp, DWORD PTR 44[esp] + xor ebx, ebp + mov ebp, DWORD PTR [esp] + ror esi, 1 + xor ebx, ebp + rol ebx, 1 + mov ebp, edi + mov DWORD PTR 12[esp],ebx + or ebp, esi + lea ebx, DWORD PTR 2400959708[ecx*1+ebx] + mov ecx, edi + and ebp, eax + and ecx, esi + or ebp, ecx + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ebp, ecx + ror edi, 1 + add ebx, ebp + ; 40_59 51 + ; 40_59 52 + mov ecx, DWORD PTR 16[esp] + mov ebp, DWORD PTR 24[esp] + xor ecx, ebp + mov ebp, DWORD PTR 48[esp] + xor ecx, ebp + mov ebp, DWORD PTR 4[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + or ebp, edi + mov DWORD PTR 16[esp],ecx + and ebp, esi + lea ecx, DWORD PTR 2400959708[eax*1+ecx] + mov eax, edx + ror edx, 1 + and eax, edi + or ebp, eax + mov eax, ebx + rol eax, 5 + add ebp, eax + mov eax, DWORD PTR 20[esp] + add ecx, ebp + mov ebp, DWORD PTR 28[esp] + xor eax, ebp + mov ebp, DWORD PTR 52[esp] + xor eax, ebp + mov ebp, DWORD PTR 8[esp] + ror edx, 1 + xor eax, ebp + rol eax, 1 + mov ebp, ebx + mov DWORD PTR 20[esp],eax + or ebp, edx + lea eax, DWORD PTR 2400959708[esi*1+eax] + mov esi, ebx + and ebp, edi + and esi, edx + or ebp, esi + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add ebp, esi + ror ebx, 1 + add eax, ebp + ; 40_59 53 + ; 40_59 54 + mov esi, DWORD PTR 24[esp] + mov ebp, DWORD PTR 32[esp] + xor esi, ebp + mov ebp, DWORD PTR 56[esp] + xor esi, ebp + mov ebp, DWORD PTR 12[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + or ebp, ebx + mov DWORD PTR 24[esp],esi + and ebp, edx + lea esi, DWORD PTR 2400959708[edi*1+esi] + mov edi, ecx + ror ecx, 1 + and edi, ebx + or ebp, edi + mov edi, eax + rol edi, 5 + add ebp, edi + mov edi, DWORD PTR 28[esp] + add esi, ebp + mov ebp, DWORD PTR 36[esp] + xor edi, ebp + mov ebp, DWORD PTR 60[esp] + xor edi, ebp + mov ebp, DWORD PTR 16[esp] + ror ecx, 1 + xor edi, ebp + rol edi, 1 + mov ebp, eax + mov DWORD PTR 28[esp],edi + or ebp, ecx + lea edi, DWORD PTR 2400959708[edx*1+edi] + mov edx, eax + and ebp, ebx + and edx, ecx + or ebp, edx + mov edx, esi + rol edx, 5 + ror eax, 1 + add ebp, edx + ror eax, 1 + add edi, ebp + ; 40_59 55 + ; 40_59 56 + mov edx, DWORD PTR 32[esp] + mov ebp, DWORD PTR 40[esp] + xor edx, ebp + mov ebp, DWORD PTR [esp] + xor edx, ebp + mov ebp, DWORD PTR 20[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + or ebp, eax + mov DWORD PTR 32[esp],edx + and ebp, ecx + lea edx, DWORD PTR 2400959708[ebx*1+edx] + mov ebx, esi + ror esi, 1 + and ebx, eax + or ebp, ebx + mov ebx, edi + rol ebx, 5 + add ebp, ebx + mov ebx, DWORD PTR 36[esp] + add edx, ebp + mov ebp, DWORD PTR 44[esp] + xor ebx, ebp + mov ebp, DWORD PTR 4[esp] + xor ebx, ebp + mov ebp, DWORD PTR 24[esp] + ror esi, 1 + xor ebx, ebp + rol ebx, 1 + mov ebp, edi + mov DWORD PTR 36[esp],ebx + or ebp, esi + lea ebx, DWORD PTR 2400959708[ecx*1+ebx] + mov ecx, edi + and ebp, eax + and ecx, esi + or ebp, ecx + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ebp, ecx + ror edi, 1 + add ebx, ebp + ; 40_59 57 + ; 40_59 58 + mov ecx, DWORD PTR 40[esp] + mov ebp, DWORD PTR 48[esp] + xor ecx, ebp + mov ebp, DWORD PTR 8[esp] + xor ecx, ebp + mov ebp, DWORD PTR 28[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + or ebp, edi + mov DWORD PTR 40[esp],ecx + and ebp, esi + lea ecx, DWORD PTR 2400959708[eax*1+ecx] + mov eax, edx + ror edx, 1 + and eax, edi + or ebp, eax + mov eax, ebx + rol eax, 5 + add ebp, eax + mov eax, DWORD PTR 44[esp] + add ecx, ebp + mov ebp, DWORD PTR 52[esp] + xor eax, ebp + mov ebp, DWORD PTR 12[esp] + xor eax, ebp + mov ebp, DWORD PTR 32[esp] + ror edx, 1 + xor eax, ebp + rol eax, 1 + mov ebp, ebx + mov DWORD PTR 44[esp],eax + or ebp, edx + lea eax, DWORD PTR 2400959708[esi*1+eax] + mov esi, ebx + and ebp, edi + and esi, edx + or ebp, esi + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add ebp, esi + ror ebx, 1 + add eax, ebp + ; 40_59 59 + ; 20_39 60 + mov esi, DWORD PTR 48[esp] + mov ebp, DWORD PTR 56[esp] + xor esi, ebp + mov ebp, DWORD PTR 16[esp] + xor esi, ebp + mov ebp, DWORD PTR 36[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 48[esp],esi + xor ebp, edx + lea esi, DWORD PTR 3395469782[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 61 + mov edi, DWORD PTR 52[esp] + mov ebp, DWORD PTR 60[esp] + xor edi, ebp + mov ebp, DWORD PTR 20[esp] + xor edi, ebp + mov ebp, DWORD PTR 40[esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 52[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 3395469782[edx*1+edi] + mov edx, esi + rol edx, 5 + ror eax, 1 + add edx, ebp + ror eax, 1 + add edi, edx + ; 20_39 62 + mov edx, DWORD PTR 56[esp] + mov ebp, DWORD PTR [esp] + xor edx, ebp + mov ebp, DWORD PTR 24[esp] + xor edx, ebp + mov ebp, DWORD PTR 44[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR 56[esp],edx + xor ebp, ecx + lea edx, DWORD PTR 3395469782[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 63 + mov ebx, DWORD PTR 60[esp] + mov ebp, DWORD PTR 4[esp] + xor ebx, ebp + mov ebp, DWORD PTR 28[esp] + xor ebx, ebp + mov ebp, DWORD PTR 48[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 60[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 3395469782[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 20_39 64 + mov ecx, DWORD PTR [esp] + mov ebp, DWORD PTR 8[esp] + xor ecx, ebp + mov ebp, DWORD PTR 32[esp] + xor ecx, ebp + mov ebp, DWORD PTR 52[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + xor ebp, edi + mov DWORD PTR [esp],ecx + xor ebp, esi + lea ecx, DWORD PTR 3395469782[eax*1+ecx] + mov eax, ebx + rol eax, 5 + ror edx, 1 + add eax, ebp + ror edx, 1 + add ecx, eax + ; 20_39 65 + mov eax, DWORD PTR 4[esp] + mov ebp, DWORD PTR 12[esp] + xor eax, ebp + mov ebp, DWORD PTR 36[esp] + xor eax, ebp + mov ebp, DWORD PTR 56[esp] + xor eax, ebp + mov ebp, ebx + rol eax, 1 + xor ebp, edx + mov DWORD PTR 4[esp],eax + xor ebp, edi + lea eax, DWORD PTR 3395469782[esi*1+eax] + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add esi, ebp + ror ebx, 1 + add eax, esi + ; 20_39 66 + mov esi, DWORD PTR 8[esp] + mov ebp, DWORD PTR 16[esp] + xor esi, ebp + mov ebp, DWORD PTR 40[esp] + xor esi, ebp + mov ebp, DWORD PTR 60[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 8[esp],esi + xor ebp, edx + lea esi, DWORD PTR 3395469782[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 67 + mov edi, DWORD PTR 12[esp] + mov ebp, DWORD PTR 20[esp] + xor edi, ebp + mov ebp, DWORD PTR 44[esp] + xor edi, ebp + mov ebp, DWORD PTR [esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 12[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 3395469782[edx*1+edi] + mov edx, esi + rol edx, 5 + ror eax, 1 + add edx, ebp + ror eax, 1 + add edi, edx + ; 20_39 68 + mov edx, DWORD PTR 16[esp] + mov ebp, DWORD PTR 24[esp] + xor edx, ebp + mov ebp, DWORD PTR 48[esp] + xor edx, ebp + mov ebp, DWORD PTR 4[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR 16[esp],edx + xor ebp, ecx + lea edx, DWORD PTR 3395469782[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 69 + mov ebx, DWORD PTR 20[esp] + mov ebp, DWORD PTR 28[esp] + xor ebx, ebp + mov ebp, DWORD PTR 52[esp] + xor ebx, ebp + mov ebp, DWORD PTR 8[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 20[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 3395469782[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 20_39 70 + mov ecx, DWORD PTR 24[esp] + mov ebp, DWORD PTR 32[esp] + xor ecx, ebp + mov ebp, DWORD PTR 56[esp] + xor ecx, ebp + mov ebp, DWORD PTR 12[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + xor ebp, edi + mov DWORD PTR 24[esp],ecx + xor ebp, esi + lea ecx, DWORD PTR 3395469782[eax*1+ecx] + mov eax, ebx + rol eax, 5 + ror edx, 1 + add eax, ebp + ror edx, 1 + add ecx, eax + ; 20_39 71 + mov eax, DWORD PTR 28[esp] + mov ebp, DWORD PTR 36[esp] + xor eax, ebp + mov ebp, DWORD PTR 60[esp] + xor eax, ebp + mov ebp, DWORD PTR 16[esp] + xor eax, ebp + mov ebp, ebx + rol eax, 1 + xor ebp, edx + mov DWORD PTR 28[esp],eax + xor ebp, edi + lea eax, DWORD PTR 3395469782[esi*1+eax] + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add esi, ebp + ror ebx, 1 + add eax, esi + ; 20_39 72 + mov esi, DWORD PTR 32[esp] + mov ebp, DWORD PTR 40[esp] + xor esi, ebp + mov ebp, DWORD PTR [esp] + xor esi, ebp + mov ebp, DWORD PTR 20[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 32[esp],esi + xor ebp, edx + lea esi, DWORD PTR 3395469782[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 73 + mov edi, DWORD PTR 36[esp] + mov ebp, DWORD PTR 44[esp] + xor edi, ebp + mov ebp, DWORD PTR 4[esp] + xor edi, ebp + mov ebp, DWORD PTR 24[esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 36[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 3395469782[edx*1+edi] + mov edx, esi + rol edx, 5 + ror eax, 1 + add edx, ebp + ror eax, 1 + add edi, edx + ; 20_39 74 + mov edx, DWORD PTR 40[esp] + mov ebp, DWORD PTR 48[esp] + xor edx, ebp + mov ebp, DWORD PTR 8[esp] + xor edx, ebp + mov ebp, DWORD PTR 28[esp] + xor edx, ebp + mov ebp, esi + rol edx, 1 + xor ebp, eax + mov DWORD PTR 40[esp],edx + xor ebp, ecx + lea edx, DWORD PTR 3395469782[ebx*1+edx] + mov ebx, edi + rol ebx, 5 + ror esi, 1 + add ebx, ebp + ror esi, 1 + add edx, ebx + ; 20_39 75 + mov ebx, DWORD PTR 44[esp] + mov ebp, DWORD PTR 52[esp] + xor ebx, ebp + mov ebp, DWORD PTR 12[esp] + xor ebx, ebp + mov ebp, DWORD PTR 32[esp] + xor ebx, ebp + mov ebp, edi + rol ebx, 1 + xor ebp, esi + mov DWORD PTR 44[esp],ebx + xor ebp, eax + lea ebx, DWORD PTR 3395469782[ecx*1+ebx] + mov ecx, edx + rol ecx, 5 + ror edi, 1 + add ecx, ebp + ror edi, 1 + add ebx, ecx + ; 20_39 76 + mov ecx, DWORD PTR 48[esp] + mov ebp, DWORD PTR 56[esp] + xor ecx, ebp + mov ebp, DWORD PTR 16[esp] + xor ecx, ebp + mov ebp, DWORD PTR 36[esp] + xor ecx, ebp + mov ebp, edx + rol ecx, 1 + xor ebp, edi + mov DWORD PTR 48[esp],ecx + xor ebp, esi + lea ecx, DWORD PTR 3395469782[eax*1+ecx] + mov eax, ebx + rol eax, 5 + ror edx, 1 + add eax, ebp + ror edx, 1 + add ecx, eax + ; 20_39 77 + mov eax, DWORD PTR 52[esp] + mov ebp, DWORD PTR 60[esp] + xor eax, ebp + mov ebp, DWORD PTR 20[esp] + xor eax, ebp + mov ebp, DWORD PTR 40[esp] + xor eax, ebp + mov ebp, ebx + rol eax, 1 + xor ebp, edx + mov DWORD PTR 52[esp],eax + xor ebp, edi + lea eax, DWORD PTR 3395469782[esi*1+eax] + mov esi, ecx + rol esi, 5 + ror ebx, 1 + add esi, ebp + ror ebx, 1 + add eax, esi + ; 20_39 78 + mov esi, DWORD PTR 56[esp] + mov ebp, DWORD PTR [esp] + xor esi, ebp + mov ebp, DWORD PTR 24[esp] + xor esi, ebp + mov ebp, DWORD PTR 44[esp] + xor esi, ebp + mov ebp, ecx + rol esi, 1 + xor ebp, ebx + mov DWORD PTR 56[esp],esi + xor ebp, edx + lea esi, DWORD PTR 3395469782[edi*1+esi] + mov edi, eax + rol edi, 5 + ror ecx, 1 + add edi, ebp + ror ecx, 1 + add esi, edi + ; 20_39 79 + mov edi, DWORD PTR 60[esp] + mov ebp, DWORD PTR 4[esp] + xor edi, ebp + mov ebp, DWORD PTR 28[esp] + xor edi, ebp + mov ebp, DWORD PTR 48[esp] + xor edi, ebp + mov ebp, eax + rol edi, 1 + xor ebp, ecx + mov DWORD PTR 60[esp],edi + xor ebp, ebx + lea edi, DWORD PTR 3395469782[edx*1+edi] + mov edx, esi + rol edx, 5 + add edx, ebp + mov ebp, DWORD PTR 128[esp] + ror eax, 1 + add edi, edx + ror eax, 1 + ; End processing + ; + mov edx, DWORD PTR 12[ebp] + add edx, ecx + mov ecx, DWORD PTR 4[ebp] + add ecx, esi + mov esi, eax + mov eax, DWORD PTR [ebp] + mov DWORD PTR 12[ebp],edx + add eax, edi + mov edi, DWORD PTR 16[ebp] + add edi, ebx + mov ebx, DWORD PTR 8[ebp] + add ebx, esi + mov DWORD PTR [ebp],eax + mov esi, DWORD PTR 132[esp] + mov DWORD PTR 8[ebp],ebx + add esi, 64 + mov eax, DWORD PTR 68[esp] + mov DWORD PTR 16[ebp],edi + cmp esi, eax + mov DWORD PTR 4[ebp],ecx + jl L000start + add esp, 108 + pop edi + pop ebx + pop ebp + pop esi + ret +_TEXT SEGMENT +PUBLIC _sha1_block_asm_host_order + +_sha1_block_asm_host_order PROC NEAR + mov ecx, DWORD PTR 12[esp] + push esi + shl ecx, 6 + mov esi, DWORD PTR 12[esp] + push ebp + add ecx, esi + push ebx + mov ebp, DWORD PTR 16[esp] + push edi + mov edx, DWORD PTR 12[ebp] + sub esp, 108 + mov edi, DWORD PTR 16[ebp] + mov ebx, DWORD PTR 8[ebp] + mov DWORD PTR 68[esp],ecx + ; First we need to setup the X array + mov eax, DWORD PTR [esi] + mov ecx, DWORD PTR 4[esi] + mov DWORD PTR [esp],eax + mov DWORD PTR 4[esp],ecx + mov eax, DWORD PTR 8[esi] + mov ecx, DWORD PTR 12[esi] + mov DWORD PTR 8[esp],eax + mov DWORD PTR 12[esp],ecx + mov eax, DWORD PTR 16[esi] + mov ecx, DWORD PTR 20[esi] + mov DWORD PTR 16[esp],eax + mov DWORD PTR 20[esp],ecx + mov eax, DWORD PTR 24[esi] + mov ecx, DWORD PTR 28[esi] + mov DWORD PTR 24[esp],eax + mov DWORD PTR 28[esp],ecx + mov eax, DWORD PTR 32[esi] + mov ecx, DWORD PTR 36[esi] + mov DWORD PTR 32[esp],eax + mov DWORD PTR 36[esp],ecx + mov eax, DWORD PTR 40[esi] + mov ecx, DWORD PTR 44[esi] + mov DWORD PTR 40[esp],eax + mov DWORD PTR 44[esp],ecx + mov eax, DWORD PTR 48[esi] + mov ecx, DWORD PTR 52[esi] + mov DWORD PTR 48[esp],eax + mov DWORD PTR 52[esp],ecx + mov eax, DWORD PTR 56[esi] + mov ecx, DWORD PTR 60[esi] + mov DWORD PTR 56[esp],eax + mov DWORD PTR 60[esp],ecx + jmp L001shortcut +_sha1_block_asm_host_order ENDP +_TEXT ENDS +_sha1_block_asm_data_order ENDP +_TEXT ENDS +END diff --git a/crypto/sha/asm/sha1-586.pl b/crypto/sha/asm/sha1-586.pl index 09df993ecd4..48d9192a4e6 100644 --- a/crypto/sha/asm/sha1-586.pl +++ b/crypto/sha/asm/sha1-586.pl @@ -392,7 +392,7 @@ sub sha1_block_data &X_expand("esi"); &mov(&wparam(1),"esi"); - &set_label("shortcut", 0, 1); + &set_label("shortcut", 1); &comment(""); &comment("Start processing"); diff --git a/crypto/sha/sha_locl.h b/crypto/sha/sha_locl.h index 2f8aef83f38..3e6f489b876 100644 --- a/crypto/sha/sha_locl.h +++ b/crypto/sha/sha_locl.h @@ -130,7 +130,11 @@ # error "Either SHA_0 or SHA_1 must be defined." #endif +#ifndef FLAT_INC +#include "../md32_common.h" +#else #include "md32_common.h" +#endif #define INIT_DATA_h0 0x67452301UL #define INIT_DATA_h1 0xefcdab89UL |
