From: Bodo Möller Date: Mon, 13 Mar 2000 08:04:20 +0000 (+0000) Subject: Remove Win32 assembler files. They are always rebuilt (with some X-Git-Tag: OpenSSL_0_9_5a-beta1~59 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=88f17a5e989b1ba64a9ea3b1cc80eaef2aa266f9;p=oweals%2Fopenssl.git Remove Win32 assembler files. They are always rebuilt (with some choice of parameters) when they are needed. --- diff --git a/crypto/bf/asm/b-win32.asm b/crypto/bf/asm/b-win32.asm deleted file mode 100644 index 138c99d0aa..0000000000 --- a/crypto/bf/asm/b-win32.asm +++ /dev/null @@ -1,906 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by bf-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE bf-586.asm - .486 -.model FLAT -_TEXT SEGMENT -PUBLIC _BF_encrypt - -_BF_encrypt PROC NEAR - ; - push ebp - push ebx - mov ebx, DWORD PTR 12[esp] - mov ebp, DWORD PTR 16[esp] - push esi - push edi - ; Load the 2 words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - xor eax, eax - mov ebx, DWORD PTR [ebp] - xor ecx, ecx - xor edi, ebx - ; - ; Round 0 - mov edx, DWORD PTR 4[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 1 - mov edx, DWORD PTR 8[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 2 - mov edx, DWORD PTR 12[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 3 - mov edx, DWORD PTR 16[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 4 - mov edx, DWORD PTR 20[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 5 - mov edx, DWORD PTR 24[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 6 - mov edx, DWORD PTR 28[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 7 - mov edx, DWORD PTR 32[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 8 - mov edx, DWORD PTR 36[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 9 - mov edx, DWORD PTR 40[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 10 - mov edx, DWORD PTR 44[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 11 - mov edx, DWORD PTR 48[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 12 - mov edx, DWORD PTR 52[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 13 - mov edx, DWORD PTR 56[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 14 - mov edx, DWORD PTR 60[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 15 - mov edx, DWORD PTR 64[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - ; Load parameter 0 (16) enc=1 - mov eax, DWORD PTR 20[esp] - xor edi, ebx - mov edx, DWORD PTR 68[ebp] - xor esi, edx - mov DWORD PTR 4[eax],edi - mov DWORD PTR [eax],esi - pop edi - pop esi - pop ebx - pop ebp - ret -_BF_encrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _BF_decrypt - -_BF_decrypt PROC NEAR - ; - push ebp - push ebx - mov ebx, DWORD PTR 12[esp] - mov ebp, DWORD PTR 16[esp] - push esi - push edi - ; Load the 2 words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - xor eax, eax - mov ebx, DWORD PTR 68[ebp] - xor ecx, ecx - xor edi, ebx - ; - ; Round 16 - mov edx, DWORD PTR 64[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 15 - mov edx, DWORD PTR 60[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 14 - mov edx, DWORD PTR 56[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 13 - mov edx, DWORD PTR 52[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 12 - mov edx, DWORD PTR 48[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 11 - mov edx, DWORD PTR 44[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 10 - mov edx, DWORD PTR 40[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 9 - mov edx, DWORD PTR 36[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 8 - mov edx, DWORD PTR 32[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 7 - mov edx, DWORD PTR 28[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 6 - mov edx, DWORD PTR 24[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 5 - mov edx, DWORD PTR 20[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 4 - mov edx, DWORD PTR 16[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 3 - mov edx, DWORD PTR 12[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor edi, ebx - ; - ; Round 2 - mov edx, DWORD PTR 8[ebp] - mov ebx, edi - xor esi, edx - shr ebx, 16 - mov edx, edi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - xor eax, eax - xor esi, ebx - ; - ; Round 1 - mov edx, DWORD PTR 4[ebp] - mov ebx, esi - xor edi, edx - shr ebx, 16 - mov edx, esi - mov al, bh - and ebx, 255 - mov cl, dh - and edx, 255 - mov eax, DWORD PTR 72[eax*4+ebp] - mov ebx, DWORD PTR 1096[ebx*4+ebp] - add ebx, eax - mov eax, DWORD PTR 2120[ecx*4+ebp] - xor ebx, eax - mov edx, DWORD PTR 3144[edx*4+ebp] - add ebx, edx - ; Load parameter 0 (1) enc=0 - mov eax, DWORD PTR 20[esp] - xor edi, ebx - mov edx, DWORD PTR [ebp] - xor esi, edx - mov DWORD PTR 4[eax],edi - mov DWORD PTR [eax],esi - pop edi - pop esi - pop ebx - pop ebp - ret -_BF_decrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _BF_cbc_encrypt - -_BF_cbc_encrypt PROC NEAR - ; - push ebp - push ebx - push esi - push edi - mov ebp, DWORD PTR 28[esp] - ; getting iv ptr from parameter 4 - mov ebx, DWORD PTR 36[esp] - mov esi, DWORD PTR [ebx] - mov edi, DWORD PTR 4[ebx] - push edi - push esi - push edi - push esi - mov ebx, esp - mov esi, DWORD PTR 36[esp] - mov edi, DWORD PTR 40[esp] - ; getting encrypt flag from parameter 5 - mov ecx, DWORD PTR 56[esp] - ; get and push parameter 3 - mov eax, DWORD PTR 48[esp] - push eax - push ebx - cmp ecx, 0 - jz $L000decrypt - and ebp, 4294967288 - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - jz $L001encrypt_finish -L002encrypt_loop: - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR 4[esi] - xor eax, ecx - xor ebx, edx - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _BF_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L002encrypt_loop -$L001encrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L003finish - xor ecx, ecx - xor edx, edx - mov ebp, DWORD PTR $L004cbc_enc_jmp_table[ebp*4] - jmp ebp -L005ej7: - mov dh, BYTE PTR 6[esi] - shl edx, 8 -L006ej6: - mov dh, BYTE PTR 5[esi] -L007ej5: - mov dl, BYTE PTR 4[esi] -L008ej4: - mov ecx, DWORD PTR [esi] - jmp $L009ejend -L010ej3: - mov ch, BYTE PTR 2[esi] - shl ecx, 8 -L011ej2: - mov ch, BYTE PTR 1[esi] -L012ej1: - mov cl, BYTE PTR [esi] -$L009ejend: - xor eax, ecx - xor ebx, edx - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _BF_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - jmp $L003finish -$L000decrypt: - and ebp, 4294967288 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - jz $L013decrypt_finish -L014decrypt_loop: - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _BF_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR [edi],ecx - mov DWORD PTR 4[edi],edx - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L014decrypt_loop -$L013decrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L003finish - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _BF_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] -L015dj7: - ror edx, 16 - mov BYTE PTR 6[edi],dl - shr edx, 16 -L016dj6: - mov BYTE PTR 5[edi],dh -L017dj5: - mov BYTE PTR 4[edi],dl -L018dj4: - mov DWORD PTR [edi],ecx - jmp $L019djend -L020dj3: - ror ecx, 16 - mov BYTE PTR 2[edi],cl - shl ecx, 16 -L021dj2: - mov BYTE PTR 1[esi],ch -L022dj1: - mov BYTE PTR [esi], cl -$L019djend: - jmp $L003finish -$L003finish: - mov ecx, DWORD PTR 60[esp] - add esp, 24 - mov DWORD PTR [ecx],eax - mov DWORD PTR 4[ecx],ebx - pop edi - pop esi - pop ebx - pop ebp - ret -$L004cbc_enc_jmp_table: - DD 0 - DD L012ej1 - DD L011ej2 - DD L010ej3 - DD L008ej4 - DD L007ej5 - DD L006ej6 - DD L005ej7 -L023cbc_dec_jmp_table: - DD 0 - DD L022dj1 - DD L021dj2 - DD L020dj3 - DD L018dj4 - DD L017dj5 - DD L016dj6 - DD L015dj7 -_BF_cbc_encrypt ENDP -_TEXT ENDS -END diff --git a/crypto/bn/asm/bn-win32.asm b/crypto/bn/asm/bn-win32.asm deleted file mode 100644 index 871bd88d77..0000000000 --- a/crypto/bn/asm/bn-win32.asm +++ /dev/null @@ -1,2122 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by bn-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE bn-586.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _bn_mul_add_words - -_bn_mul_add_words PROC NEAR - push ebp - push ebx - push esi - push edi - ; - xor esi, esi - mov edi, DWORD PTR 20[esp] - mov ecx, DWORD PTR 28[esp] - mov ebx, DWORD PTR 24[esp] - and ecx, 4294967288 - mov ebp, DWORD PTR 32[esp] - push ecx - jz $L000maw_finish -L001maw_loop: - mov DWORD PTR [esp],ecx - ; Round 0 - mov eax, DWORD PTR [ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR [edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR [edi],eax - mov esi, edx - ; Round 4 - mov eax, DWORD PTR 4[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 4[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 4[edi],eax - mov esi, edx - ; Round 8 - mov eax, DWORD PTR 8[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 8[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 8[edi],eax - mov esi, edx - ; Round 12 - mov eax, DWORD PTR 12[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 12[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 12[edi],eax - mov esi, edx - ; Round 16 - mov eax, DWORD PTR 16[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 16[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 16[edi],eax - mov esi, edx - ; Round 20 - mov eax, DWORD PTR 20[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 20[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 20[edi],eax - mov esi, edx - ; Round 24 - mov eax, DWORD PTR 24[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 24[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 24[edi],eax - mov esi, edx - ; Round 28 - mov eax, DWORD PTR 28[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 28[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 28[edi],eax - mov esi, edx - ; - mov ecx, DWORD PTR [esp] - add ebx, 32 - add edi, 32 - sub ecx, 8 - jnz L001maw_loop -$L000maw_finish: - mov ecx, DWORD PTR 32[esp] - and ecx, 7 - jnz $L002maw_finish2 - jmp $L003maw_end -$L002maw_finish2: - ; Tail Round 0 - mov eax, DWORD PTR [ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR [edi] - adc edx, 0 - add eax, esi - adc edx, 0 - dec ecx - mov DWORD PTR [edi],eax - mov esi, edx - jz $L003maw_end - ; Tail Round 1 - mov eax, DWORD PTR 4[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 4[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - dec ecx - mov DWORD PTR 4[edi],eax - mov esi, edx - jz $L003maw_end - ; Tail Round 2 - mov eax, DWORD PTR 8[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 8[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - dec ecx - mov DWORD PTR 8[edi],eax - mov esi, edx - jz $L003maw_end - ; Tail Round 3 - mov eax, DWORD PTR 12[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 12[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - dec ecx - mov DWORD PTR 12[edi],eax - mov esi, edx - jz $L003maw_end - ; Tail Round 4 - mov eax, DWORD PTR 16[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 16[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - dec ecx - mov DWORD PTR 16[edi],eax - mov esi, edx - jz $L003maw_end - ; Tail Round 5 - mov eax, DWORD PTR 20[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 20[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - dec ecx - mov DWORD PTR 20[edi],eax - mov esi, edx - jz $L003maw_end - ; Tail Round 6 - mov eax, DWORD PTR 24[ebx] - mul ebp - add eax, esi - mov esi, DWORD PTR 24[edi] - adc edx, 0 - add eax, esi - adc edx, 0 - mov DWORD PTR 24[edi],eax - mov esi, edx -$L003maw_end: - mov eax, esi - pop ecx - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_mul_add_words ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_mul_words - -_bn_mul_words PROC NEAR - push ebp - push ebx - push esi - push edi - ; - xor esi, esi - mov edi, DWORD PTR 20[esp] - mov ebx, DWORD PTR 24[esp] - mov ebp, DWORD PTR 28[esp] - mov ecx, DWORD PTR 32[esp] - and ebp, 4294967288 - jz $L004mw_finish -L005mw_loop: - ; Round 0 - mov eax, DWORD PTR [ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR [edi],eax - mov esi, edx - ; Round 4 - mov eax, DWORD PTR 4[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 4[edi],eax - mov esi, edx - ; Round 8 - mov eax, DWORD PTR 8[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 8[edi],eax - mov esi, edx - ; Round 12 - mov eax, DWORD PTR 12[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 12[edi],eax - mov esi, edx - ; Round 16 - mov eax, DWORD PTR 16[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 16[edi],eax - mov esi, edx - ; Round 20 - mov eax, DWORD PTR 20[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 20[edi],eax - mov esi, edx - ; Round 24 - mov eax, DWORD PTR 24[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 24[edi],eax - mov esi, edx - ; Round 28 - mov eax, DWORD PTR 28[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 28[edi],eax - mov esi, edx - ; - add ebx, 32 - add edi, 32 - sub ebp, 8 - jz $L004mw_finish - jmp L005mw_loop -$L004mw_finish: - mov ebp, DWORD PTR 28[esp] - and ebp, 7 - jnz $L006mw_finish2 - jmp $L007mw_end -$L006mw_finish2: - ; Tail Round 0 - mov eax, DWORD PTR [ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR [edi],eax - mov esi, edx - dec ebp - jz $L007mw_end - ; Tail Round 1 - mov eax, DWORD PTR 4[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 4[edi],eax - mov esi, edx - dec ebp - jz $L007mw_end - ; Tail Round 2 - mov eax, DWORD PTR 8[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 8[edi],eax - mov esi, edx - dec ebp - jz $L007mw_end - ; Tail Round 3 - mov eax, DWORD PTR 12[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 12[edi],eax - mov esi, edx - dec ebp - jz $L007mw_end - ; Tail Round 4 - mov eax, DWORD PTR 16[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 16[edi],eax - mov esi, edx - dec ebp - jz $L007mw_end - ; Tail Round 5 - mov eax, DWORD PTR 20[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 20[edi],eax - mov esi, edx - dec ebp - jz $L007mw_end - ; Tail Round 6 - mov eax, DWORD PTR 24[ebx] - mul ecx - add eax, esi - adc edx, 0 - mov DWORD PTR 24[edi],eax - mov esi, edx -$L007mw_end: - mov eax, esi - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_mul_words ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_sqr_words - -_bn_sqr_words PROC NEAR - push ebp - push ebx - push esi - push edi - ; - mov esi, DWORD PTR 20[esp] - mov edi, DWORD PTR 24[esp] - mov ebx, DWORD PTR 28[esp] - and ebx, 4294967288 - jz $L008sw_finish -L009sw_loop: - ; Round 0 - mov eax, DWORD PTR [edi] - mul eax - mov DWORD PTR [esi],eax - mov DWORD PTR 4[esi],edx - ; Round 4 - mov eax, DWORD PTR 4[edi] - mul eax - mov DWORD PTR 8[esi],eax - mov DWORD PTR 12[esi],edx - ; Round 8 - mov eax, DWORD PTR 8[edi] - mul eax - mov DWORD PTR 16[esi],eax - mov DWORD PTR 20[esi],edx - ; Round 12 - mov eax, DWORD PTR 12[edi] - mul eax - mov DWORD PTR 24[esi],eax - mov DWORD PTR 28[esi],edx - ; Round 16 - mov eax, DWORD PTR 16[edi] - mul eax - mov DWORD PTR 32[esi],eax - mov DWORD PTR 36[esi],edx - ; Round 20 - mov eax, DWORD PTR 20[edi] - mul eax - mov DWORD PTR 40[esi],eax - mov DWORD PTR 44[esi],edx - ; Round 24 - mov eax, DWORD PTR 24[edi] - mul eax - mov DWORD PTR 48[esi],eax - mov DWORD PTR 52[esi],edx - ; Round 28 - mov eax, DWORD PTR 28[edi] - mul eax - mov DWORD PTR 56[esi],eax - mov DWORD PTR 60[esi],edx - ; - add edi, 32 - add esi, 64 - sub ebx, 8 - jnz L009sw_loop -$L008sw_finish: - mov ebx, DWORD PTR 28[esp] - and ebx, 7 - jz $L010sw_end - ; Tail Round 0 - mov eax, DWORD PTR [edi] - mul eax - mov DWORD PTR [esi],eax - dec ebx - mov DWORD PTR 4[esi],edx - jz $L010sw_end - ; Tail Round 1 - mov eax, DWORD PTR 4[edi] - mul eax - mov DWORD PTR 8[esi],eax - dec ebx - mov DWORD PTR 12[esi],edx - jz $L010sw_end - ; Tail Round 2 - mov eax, DWORD PTR 8[edi] - mul eax - mov DWORD PTR 16[esi],eax - dec ebx - mov DWORD PTR 20[esi],edx - jz $L010sw_end - ; Tail Round 3 - mov eax, DWORD PTR 12[edi] - mul eax - mov DWORD PTR 24[esi],eax - dec ebx - mov DWORD PTR 28[esi],edx - jz $L010sw_end - ; Tail Round 4 - mov eax, DWORD PTR 16[edi] - mul eax - mov DWORD PTR 32[esi],eax - dec ebx - mov DWORD PTR 36[esi],edx - jz $L010sw_end - ; Tail Round 5 - mov eax, DWORD PTR 20[edi] - mul eax - mov DWORD PTR 40[esi],eax - dec ebx - mov DWORD PTR 44[esi],edx - jz $L010sw_end - ; Tail Round 6 - mov eax, DWORD PTR 24[edi] - mul eax - mov DWORD PTR 48[esi],eax - mov DWORD PTR 52[esi],edx -$L010sw_end: - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_sqr_words ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_div_words - -_bn_div_words PROC NEAR - push ebp - push ebx - push esi - push edi - mov edx, DWORD PTR 20[esp] - mov eax, DWORD PTR 24[esp] - mov ebx, DWORD PTR 28[esp] - div ebx - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_div_words ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_add_words - -_bn_add_words PROC NEAR - push ebp - push ebx - push esi - push edi - ; - mov ebx, DWORD PTR 20[esp] - mov esi, DWORD PTR 24[esp] - mov edi, DWORD PTR 28[esp] - mov ebp, DWORD PTR 32[esp] - xor eax, eax - and ebp, 4294967288 - jz $L011aw_finish -L012aw_loop: - ; Round 0 - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR [edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR [ebx],ecx - ; Round 1 - mov ecx, DWORD PTR 4[esi] - mov edx, DWORD PTR 4[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 4[ebx],ecx - ; Round 2 - mov ecx, DWORD PTR 8[esi] - mov edx, DWORD PTR 8[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 8[ebx],ecx - ; Round 3 - mov ecx, DWORD PTR 12[esi] - mov edx, DWORD PTR 12[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 12[ebx],ecx - ; Round 4 - mov ecx, DWORD PTR 16[esi] - mov edx, DWORD PTR 16[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 16[ebx],ecx - ; Round 5 - mov ecx, DWORD PTR 20[esi] - mov edx, DWORD PTR 20[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 20[ebx],ecx - ; Round 6 - mov ecx, DWORD PTR 24[esi] - mov edx, DWORD PTR 24[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 24[ebx],ecx - ; Round 7 - mov ecx, DWORD PTR 28[esi] - mov edx, DWORD PTR 28[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 28[ebx],ecx - ; - add esi, 32 - add edi, 32 - add ebx, 32 - sub ebp, 8 - jnz L012aw_loop -$L011aw_finish: - mov ebp, DWORD PTR 32[esp] - and ebp, 7 - jz $L013aw_end - ; Tail Round 0 - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR [edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR [ebx],ecx - jz $L013aw_end - ; Tail Round 1 - mov ecx, DWORD PTR 4[esi] - mov edx, DWORD PTR 4[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 4[ebx],ecx - jz $L013aw_end - ; Tail Round 2 - mov ecx, DWORD PTR 8[esi] - mov edx, DWORD PTR 8[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 8[ebx],ecx - jz $L013aw_end - ; Tail Round 3 - mov ecx, DWORD PTR 12[esi] - mov edx, DWORD PTR 12[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 12[ebx],ecx - jz $L013aw_end - ; Tail Round 4 - mov ecx, DWORD PTR 16[esi] - mov edx, DWORD PTR 16[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 16[ebx],ecx - jz $L013aw_end - ; Tail Round 5 - mov ecx, DWORD PTR 20[esi] - mov edx, DWORD PTR 20[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 20[ebx],ecx - jz $L013aw_end - ; Tail Round 6 - mov ecx, DWORD PTR 24[esi] - mov edx, DWORD PTR 24[edi] - add ecx, eax - mov eax, 0 - adc eax, eax - add ecx, edx - adc eax, 0 - mov DWORD PTR 24[ebx],ecx -$L013aw_end: - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_add_words ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_sub_words - -_bn_sub_words PROC NEAR - push ebp - push ebx - push esi - push edi - ; - mov ebx, DWORD PTR 20[esp] - mov esi, DWORD PTR 24[esp] - mov edi, DWORD PTR 28[esp] - mov ebp, DWORD PTR 32[esp] - xor eax, eax - and ebp, 4294967288 - jz $L014aw_finish -L015aw_loop: - ; Round 0 - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR [edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR [ebx],ecx - ; Round 1 - mov ecx, DWORD PTR 4[esi] - mov edx, DWORD PTR 4[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 4[ebx],ecx - ; Round 2 - mov ecx, DWORD PTR 8[esi] - mov edx, DWORD PTR 8[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 8[ebx],ecx - ; Round 3 - mov ecx, DWORD PTR 12[esi] - mov edx, DWORD PTR 12[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 12[ebx],ecx - ; Round 4 - mov ecx, DWORD PTR 16[esi] - mov edx, DWORD PTR 16[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 16[ebx],ecx - ; Round 5 - mov ecx, DWORD PTR 20[esi] - mov edx, DWORD PTR 20[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 20[ebx],ecx - ; Round 6 - mov ecx, DWORD PTR 24[esi] - mov edx, DWORD PTR 24[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 24[ebx],ecx - ; Round 7 - mov ecx, DWORD PTR 28[esi] - mov edx, DWORD PTR 28[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 28[ebx],ecx - ; - add esi, 32 - add edi, 32 - add ebx, 32 - sub ebp, 8 - jnz L015aw_loop -$L014aw_finish: - mov ebp, DWORD PTR 32[esp] - and ebp, 7 - jz $L016aw_end - ; Tail Round 0 - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR [edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR [ebx],ecx - jz $L016aw_end - ; Tail Round 1 - mov ecx, DWORD PTR 4[esi] - mov edx, DWORD PTR 4[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 4[ebx],ecx - jz $L016aw_end - ; Tail Round 2 - mov ecx, DWORD PTR 8[esi] - mov edx, DWORD PTR 8[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 8[ebx],ecx - jz $L016aw_end - ; Tail Round 3 - mov ecx, DWORD PTR 12[esi] - mov edx, DWORD PTR 12[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 12[ebx],ecx - jz $L016aw_end - ; Tail Round 4 - mov ecx, DWORD PTR 16[esi] - mov edx, DWORD PTR 16[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 16[ebx],ecx - jz $L016aw_end - ; Tail Round 5 - mov ecx, DWORD PTR 20[esi] - mov edx, DWORD PTR 20[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - dec ebp - mov DWORD PTR 20[ebx],ecx - jz $L016aw_end - ; Tail Round 6 - mov ecx, DWORD PTR 24[esi] - mov edx, DWORD PTR 24[edi] - sub ecx, eax - mov eax, 0 - adc eax, eax - sub ecx, edx - adc eax, 0 - mov DWORD PTR 24[ebx],ecx -$L016aw_end: - pop edi - pop esi - pop ebx - pop ebp - ret -_bn_sub_words ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_mul_comba8 - -_bn_mul_comba8 PROC NEAR - push esi - mov esi, DWORD PTR 12[esp] - push edi - mov edi, DWORD PTR 20[esp] - push ebp - push ebx - xor ebx, ebx - mov eax, DWORD PTR [esi] - xor ecx, ecx - mov edx, DWORD PTR [edi] - ; ################## Calculate word 0 - xor ebp, ebp - ; mul a[0]*b[0] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR [edi] - adc ebp, 0 - mov DWORD PTR [eax],ebx - mov eax, DWORD PTR 4[esi] - ; saved r[0] - ; ################## Calculate word 1 - xor ebx, ebx - ; mul a[1]*b[0] - mul edx - add ecx, eax - mov eax, DWORD PTR [esi] - adc ebp, edx - mov edx, DWORD PTR 4[edi] - adc ebx, 0 - ; mul a[0]*b[1] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR [edi] - adc ebx, 0 - mov DWORD PTR 4[eax],ecx - mov eax, DWORD PTR 8[esi] - ; saved r[1] - ; ################## Calculate word 2 - xor ecx, ecx - ; mul a[2]*b[0] - mul edx - add ebp, eax - mov eax, DWORD PTR 4[esi] - adc ebx, edx - mov edx, DWORD PTR 4[edi] - adc ecx, 0 - ; mul a[1]*b[1] - mul edx - add ebp, eax - mov eax, DWORD PTR [esi] - adc ebx, edx - mov edx, DWORD PTR 8[edi] - adc ecx, 0 - ; mul a[0]*b[2] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - mov edx, DWORD PTR [edi] - adc ecx, 0 - mov DWORD PTR 8[eax],ebp - mov eax, DWORD PTR 12[esi] - ; saved r[2] - ; ################## Calculate word 3 - xor ebp, ebp - ; mul a[3]*b[0] - mul edx - add ebx, eax - mov eax, DWORD PTR 8[esi] - adc ecx, edx - mov edx, DWORD PTR 4[edi] - adc ebp, 0 - ; mul a[2]*b[1] - mul edx - add ebx, eax - mov eax, DWORD PTR 4[esi] - adc ecx, edx - mov edx, DWORD PTR 8[edi] - adc ebp, 0 - ; mul a[1]*b[2] - mul edx - add ebx, eax - mov eax, DWORD PTR [esi] - adc ecx, edx - mov edx, DWORD PTR 12[edi] - adc ebp, 0 - ; mul a[0]*b[3] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR [edi] - adc ebp, 0 - mov DWORD PTR 12[eax],ebx - mov eax, DWORD PTR 16[esi] - ; saved r[3] - ; ################## Calculate word 4 - xor ebx, ebx - ; mul a[4]*b[0] - mul edx - add ecx, eax - mov eax, DWORD PTR 12[esi] - adc ebp, edx - mov edx, DWORD PTR 4[edi] - adc ebx, 0 - ; mul a[3]*b[1] - mul edx - add ecx, eax - mov eax, DWORD PTR 8[esi] - adc ebp, edx - mov edx, DWORD PTR 8[edi] - adc ebx, 0 - ; mul a[2]*b[2] - mul edx - add ecx, eax - mov eax, DWORD PTR 4[esi] - adc ebp, edx - mov edx, DWORD PTR 12[edi] - adc ebx, 0 - ; mul a[1]*b[3] - mul edx - add ecx, eax - mov eax, DWORD PTR [esi] - adc ebp, edx - mov edx, DWORD PTR 16[edi] - adc ebx, 0 - ; mul a[0]*b[4] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR [edi] - adc ebx, 0 - mov DWORD PTR 16[eax],ecx - mov eax, DWORD PTR 20[esi] - ; saved r[4] - ; ################## Calculate word 5 - xor ecx, ecx - ; mul a[5]*b[0] - mul edx - add ebp, eax - mov eax, DWORD PTR 16[esi] - adc ebx, edx - mov edx, DWORD PTR 4[edi] - adc ecx, 0 - ; mul a[4]*b[1] - mul edx - add ebp, eax - mov eax, DWORD PTR 12[esi] - adc ebx, edx - mov edx, DWORD PTR 8[edi] - adc ecx, 0 - ; mul a[3]*b[2] - mul edx - add ebp, eax - mov eax, DWORD PTR 8[esi] - adc ebx, edx - mov edx, DWORD PTR 12[edi] - adc ecx, 0 - ; mul a[2]*b[3] - mul edx - add ebp, eax - mov eax, DWORD PTR 4[esi] - adc ebx, edx - mov edx, DWORD PTR 16[edi] - adc ecx, 0 - ; mul a[1]*b[4] - mul edx - add ebp, eax - mov eax, DWORD PTR [esi] - adc ebx, edx - mov edx, DWORD PTR 20[edi] - adc ecx, 0 - ; mul a[0]*b[5] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - mov edx, DWORD PTR [edi] - adc ecx, 0 - mov DWORD PTR 20[eax],ebp - mov eax, DWORD PTR 24[esi] - ; saved r[5] - ; ################## Calculate word 6 - xor ebp, ebp - ; mul a[6]*b[0] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esi] - adc ecx, edx - mov edx, DWORD PTR 4[edi] - adc ebp, 0 - ; mul a[5]*b[1] - mul edx - add ebx, eax - mov eax, DWORD PTR 16[esi] - adc ecx, edx - mov edx, DWORD PTR 8[edi] - adc ebp, 0 - ; mul a[4]*b[2] - mul edx - add ebx, eax - mov eax, DWORD PTR 12[esi] - adc ecx, edx - mov edx, DWORD PTR 12[edi] - adc ebp, 0 - ; mul a[3]*b[3] - mul edx - add ebx, eax - mov eax, DWORD PTR 8[esi] - adc ecx, edx - mov edx, DWORD PTR 16[edi] - adc ebp, 0 - ; mul a[2]*b[4] - mul edx - add ebx, eax - mov eax, DWORD PTR 4[esi] - adc ecx, edx - mov edx, DWORD PTR 20[edi] - adc ebp, 0 - ; mul a[1]*b[5] - mul edx - add ebx, eax - mov eax, DWORD PTR [esi] - adc ecx, edx - mov edx, DWORD PTR 24[edi] - adc ebp, 0 - ; mul a[0]*b[6] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR [edi] - adc ebp, 0 - mov DWORD PTR 24[eax],ebx - mov eax, DWORD PTR 28[esi] - ; saved r[6] - ; ################## Calculate word 7 - xor ebx, ebx - ; mul a[7]*b[0] - mul edx - add ecx, eax - mov eax, DWORD PTR 24[esi] - adc ebp, edx - mov edx, DWORD PTR 4[edi] - adc ebx, 0 - ; mul a[6]*b[1] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esi] - adc ebp, edx - mov edx, DWORD PTR 8[edi] - adc ebx, 0 - ; mul a[5]*b[2] - mul edx - add ecx, eax - mov eax, DWORD PTR 16[esi] - adc ebp, edx - mov edx, DWORD PTR 12[edi] - adc ebx, 0 - ; mul a[4]*b[3] - mul edx - add ecx, eax - mov eax, DWORD PTR 12[esi] - adc ebp, edx - mov edx, DWORD PTR 16[edi] - adc ebx, 0 - ; mul a[3]*b[4] - mul edx - add ecx, eax - mov eax, DWORD PTR 8[esi] - adc ebp, edx - mov edx, DWORD PTR 20[edi] - adc ebx, 0 - ; mul a[2]*b[5] - mul edx - add ecx, eax - mov eax, DWORD PTR 4[esi] - adc ebp, edx - mov edx, DWORD PTR 24[edi] - adc ebx, 0 - ; mul a[1]*b[6] - mul edx - add ecx, eax - mov eax, DWORD PTR [esi] - adc ebp, edx - mov edx, DWORD PTR 28[edi] - adc ebx, 0 - ; mul a[0]*b[7] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR 4[edi] - adc ebx, 0 - mov DWORD PTR 28[eax],ecx - mov eax, DWORD PTR 28[esi] - ; saved r[7] - ; ################## Calculate word 8 - xor ecx, ecx - ; mul a[7]*b[1] - mul edx - add ebp, eax - mov eax, DWORD PTR 24[esi] - adc ebx, edx - mov edx, DWORD PTR 8[edi] - adc ecx, 0 - ; mul a[6]*b[2] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esi] - adc ebx, edx - mov edx, DWORD PTR 12[edi] - adc ecx, 0 - ; mul a[5]*b[3] - mul edx - add ebp, eax - mov eax, DWORD PTR 16[esi] - adc ebx, edx - mov edx, DWORD PTR 16[edi] - adc ecx, 0 - ; mul a[4]*b[4] - mul edx - add ebp, eax - mov eax, DWORD PTR 12[esi] - adc ebx, edx - mov edx, DWORD PTR 20[edi] - adc ecx, 0 - ; mul a[3]*b[5] - mul edx - add ebp, eax - mov eax, DWORD PTR 8[esi] - adc ebx, edx - mov edx, DWORD PTR 24[edi] - adc ecx, 0 - ; mul a[2]*b[6] - mul edx - add ebp, eax - mov eax, DWORD PTR 4[esi] - adc ebx, edx - mov edx, DWORD PTR 28[edi] - adc ecx, 0 - ; mul a[1]*b[7] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - mov edx, DWORD PTR 8[edi] - adc ecx, 0 - mov DWORD PTR 32[eax],ebp - mov eax, DWORD PTR 28[esi] - ; saved r[8] - ; ################## Calculate word 9 - xor ebp, ebp - ; mul a[7]*b[2] - mul edx - add ebx, eax - mov eax, DWORD PTR 24[esi] - adc ecx, edx - mov edx, DWORD PTR 12[edi] - adc ebp, 0 - ; mul a[6]*b[3] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esi] - adc ecx, edx - mov edx, DWORD PTR 16[edi] - adc ebp, 0 - ; mul a[5]*b[4] - mul edx - add ebx, eax - mov eax, DWORD PTR 16[esi] - adc ecx, edx - mov edx, DWORD PTR 20[edi] - adc ebp, 0 - ; mul a[4]*b[5] - mul edx - add ebx, eax - mov eax, DWORD PTR 12[esi] - adc ecx, edx - mov edx, DWORD PTR 24[edi] - adc ebp, 0 - ; mul a[3]*b[6] - mul edx - add ebx, eax - mov eax, DWORD PTR 8[esi] - adc ecx, edx - mov edx, DWORD PTR 28[edi] - adc ebp, 0 - ; mul a[2]*b[7] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR 12[edi] - adc ebp, 0 - mov DWORD PTR 36[eax],ebx - mov eax, DWORD PTR 28[esi] - ; saved r[9] - ; ################## Calculate word 10 - xor ebx, ebx - ; mul a[7]*b[3] - mul edx - add ecx, eax - mov eax, DWORD PTR 24[esi] - adc ebp, edx - mov edx, DWORD PTR 16[edi] - adc ebx, 0 - ; mul a[6]*b[4] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esi] - adc ebp, edx - mov edx, DWORD PTR 20[edi] - adc ebx, 0 - ; mul a[5]*b[5] - mul edx - add ecx, eax - mov eax, DWORD PTR 16[esi] - adc ebp, edx - mov edx, DWORD PTR 24[edi] - adc ebx, 0 - ; mul a[4]*b[6] - mul edx - add ecx, eax - mov eax, DWORD PTR 12[esi] - adc ebp, edx - mov edx, DWORD PTR 28[edi] - adc ebx, 0 - ; mul a[3]*b[7] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR 16[edi] - adc ebx, 0 - mov DWORD PTR 40[eax],ecx - mov eax, DWORD PTR 28[esi] - ; saved r[10] - ; ################## Calculate word 11 - xor ecx, ecx - ; mul a[7]*b[4] - mul edx - add ebp, eax - mov eax, DWORD PTR 24[esi] - adc ebx, edx - mov edx, DWORD PTR 20[edi] - adc ecx, 0 - ; mul a[6]*b[5] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esi] - adc ebx, edx - mov edx, DWORD PTR 24[edi] - adc ecx, 0 - ; mul a[5]*b[6] - mul edx - add ebp, eax - mov eax, DWORD PTR 16[esi] - adc ebx, edx - mov edx, DWORD PTR 28[edi] - adc ecx, 0 - ; mul a[4]*b[7] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - mov edx, DWORD PTR 20[edi] - adc ecx, 0 - mov DWORD PTR 44[eax],ebp - mov eax, DWORD PTR 28[esi] - ; saved r[11] - ; ################## Calculate word 12 - xor ebp, ebp - ; mul a[7]*b[5] - mul edx - add ebx, eax - mov eax, DWORD PTR 24[esi] - adc ecx, edx - mov edx, DWORD PTR 24[edi] - adc ebp, 0 - ; mul a[6]*b[6] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esi] - adc ecx, edx - mov edx, DWORD PTR 28[edi] - adc ebp, 0 - ; mul a[5]*b[7] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR 24[edi] - adc ebp, 0 - mov DWORD PTR 48[eax],ebx - mov eax, DWORD PTR 28[esi] - ; saved r[12] - ; ################## Calculate word 13 - xor ebx, ebx - ; mul a[7]*b[6] - mul edx - add ecx, eax - mov eax, DWORD PTR 24[esi] - adc ebp, edx - mov edx, DWORD PTR 28[edi] - adc ebx, 0 - ; mul a[6]*b[7] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR 28[edi] - adc ebx, 0 - mov DWORD PTR 52[eax],ecx - mov eax, DWORD PTR 28[esi] - ; saved r[13] - ; ################## Calculate word 14 - xor ecx, ecx - ; mul a[7]*b[7] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - adc ecx, 0 - mov DWORD PTR 56[eax],ebp - ; saved r[14] - ; save r[15] - mov DWORD PTR 60[eax],ebx - pop ebx - pop ebp - pop edi - pop esi - ret -_bn_mul_comba8 ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_mul_comba4 - -_bn_mul_comba4 PROC NEAR - push esi - mov esi, DWORD PTR 12[esp] - push edi - mov edi, DWORD PTR 20[esp] - push ebp - push ebx - xor ebx, ebx - mov eax, DWORD PTR [esi] - xor ecx, ecx - mov edx, DWORD PTR [edi] - ; ################## Calculate word 0 - xor ebp, ebp - ; mul a[0]*b[0] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR [edi] - adc ebp, 0 - mov DWORD PTR [eax],ebx - mov eax, DWORD PTR 4[esi] - ; saved r[0] - ; ################## Calculate word 1 - xor ebx, ebx - ; mul a[1]*b[0] - mul edx - add ecx, eax - mov eax, DWORD PTR [esi] - adc ebp, edx - mov edx, DWORD PTR 4[edi] - adc ebx, 0 - ; mul a[0]*b[1] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR [edi] - adc ebx, 0 - mov DWORD PTR 4[eax],ecx - mov eax, DWORD PTR 8[esi] - ; saved r[1] - ; ################## Calculate word 2 - xor ecx, ecx - ; mul a[2]*b[0] - mul edx - add ebp, eax - mov eax, DWORD PTR 4[esi] - adc ebx, edx - mov edx, DWORD PTR 4[edi] - adc ecx, 0 - ; mul a[1]*b[1] - mul edx - add ebp, eax - mov eax, DWORD PTR [esi] - adc ebx, edx - mov edx, DWORD PTR 8[edi] - adc ecx, 0 - ; mul a[0]*b[2] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - mov edx, DWORD PTR [edi] - adc ecx, 0 - mov DWORD PTR 8[eax],ebp - mov eax, DWORD PTR 12[esi] - ; saved r[2] - ; ################## Calculate word 3 - xor ebp, ebp - ; mul a[3]*b[0] - mul edx - add ebx, eax - mov eax, DWORD PTR 8[esi] - adc ecx, edx - mov edx, DWORD PTR 4[edi] - adc ebp, 0 - ; mul a[2]*b[1] - mul edx - add ebx, eax - mov eax, DWORD PTR 4[esi] - adc ecx, edx - mov edx, DWORD PTR 8[edi] - adc ebp, 0 - ; mul a[1]*b[2] - mul edx - add ebx, eax - mov eax, DWORD PTR [esi] - adc ecx, edx - mov edx, DWORD PTR 12[edi] - adc ebp, 0 - ; mul a[0]*b[3] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - mov edx, DWORD PTR 4[edi] - adc ebp, 0 - mov DWORD PTR 12[eax],ebx - mov eax, DWORD PTR 12[esi] - ; saved r[3] - ; ################## Calculate word 4 - xor ebx, ebx - ; mul a[3]*b[1] - mul edx - add ecx, eax - mov eax, DWORD PTR 8[esi] - adc ebp, edx - mov edx, DWORD PTR 8[edi] - adc ebx, 0 - ; mul a[2]*b[2] - mul edx - add ecx, eax - mov eax, DWORD PTR 4[esi] - adc ebp, edx - mov edx, DWORD PTR 12[edi] - adc ebx, 0 - ; mul a[1]*b[3] - mul edx - add ecx, eax - mov eax, DWORD PTR 20[esp] - adc ebp, edx - mov edx, DWORD PTR 8[edi] - adc ebx, 0 - mov DWORD PTR 16[eax],ecx - mov eax, DWORD PTR 12[esi] - ; saved r[4] - ; ################## Calculate word 5 - xor ecx, ecx - ; mul a[3]*b[2] - mul edx - add ebp, eax - mov eax, DWORD PTR 8[esi] - adc ebx, edx - mov edx, DWORD PTR 12[edi] - adc ecx, 0 - ; mul a[2]*b[3] - mul edx - add ebp, eax - mov eax, DWORD PTR 20[esp] - adc ebx, edx - mov edx, DWORD PTR 12[edi] - adc ecx, 0 - mov DWORD PTR 20[eax],ebp - mov eax, DWORD PTR 12[esi] - ; saved r[5] - ; ################## Calculate word 6 - xor ebp, ebp - ; mul a[3]*b[3] - mul edx - add ebx, eax - mov eax, DWORD PTR 20[esp] - adc ecx, edx - adc ebp, 0 - mov DWORD PTR 24[eax],ebx - ; saved r[6] - ; save r[7] - mov DWORD PTR 28[eax],ecx - pop ebx - pop ebp - pop edi - pop esi - ret -_bn_mul_comba4 ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_sqr_comba8 - -_bn_sqr_comba8 PROC NEAR - push esi - push edi - push ebp - push ebx - mov edi, DWORD PTR 20[esp] - mov esi, DWORD PTR 24[esp] - xor ebx, ebx - xor ecx, ecx - mov eax, DWORD PTR [esi] - ; ############### Calculate word 0 - xor ebp, ebp - ; sqr a[0]*a[0] - mul eax - add ebx, eax - adc ecx, edx - mov edx, DWORD PTR [esi] - adc ebp, 0 - mov DWORD PTR [edi],ebx - mov eax, DWORD PTR 4[esi] - ; saved r[0] - ; ############### Calculate word 1 - xor ebx, ebx - ; sqr a[1]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 8[esi] - adc ebx, 0 - mov DWORD PTR 4[edi],ecx - mov edx, DWORD PTR [esi] - ; saved r[1] - ; ############### Calculate word 2 - xor ecx, ecx - ; sqr a[2]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 4[esi] - adc ecx, 0 - ; sqr a[1]*a[1] - mul eax - add ebp, eax - adc ebx, edx - mov edx, DWORD PTR [esi] - adc ecx, 0 - mov DWORD PTR 8[edi],ebp - mov eax, DWORD PTR 12[esi] - ; saved r[2] - ; ############### Calculate word 3 - xor ebp, ebp - ; sqr a[3]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 8[esi] - adc ebp, 0 - mov edx, DWORD PTR 4[esi] - ; sqr a[2]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 16[esi] - adc ebp, 0 - mov DWORD PTR 12[edi],ebx - mov edx, DWORD PTR [esi] - ; saved r[3] - ; ############### Calculate word 4 - xor ebx, ebx - ; sqr a[4]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 12[esi] - adc ebx, 0 - mov edx, DWORD PTR 4[esi] - ; sqr a[3]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 8[esi] - adc ebx, 0 - ; sqr a[2]*a[2] - mul eax - add ecx, eax - adc ebp, edx - mov edx, DWORD PTR [esi] - adc ebx, 0 - mov DWORD PTR 16[edi],ecx - mov eax, DWORD PTR 20[esi] - ; saved r[4] - ; ############### Calculate word 5 - xor ecx, ecx - ; sqr a[5]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 16[esi] - adc ecx, 0 - mov edx, DWORD PTR 4[esi] - ; sqr a[4]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 12[esi] - adc ecx, 0 - mov edx, DWORD PTR 8[esi] - ; sqr a[3]*a[2] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 24[esi] - adc ecx, 0 - mov DWORD PTR 20[edi],ebp - mov edx, DWORD PTR [esi] - ; saved r[5] - ; ############### Calculate word 6 - xor ebp, ebp - ; sqr a[6]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 20[esi] - adc ebp, 0 - mov edx, DWORD PTR 4[esi] - ; sqr a[5]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 16[esi] - adc ebp, 0 - mov edx, DWORD PTR 8[esi] - ; sqr a[4]*a[2] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 12[esi] - adc ebp, 0 - ; sqr a[3]*a[3] - mul eax - add ebx, eax - adc ecx, edx - mov edx, DWORD PTR [esi] - adc ebp, 0 - mov DWORD PTR 24[edi],ebx - mov eax, DWORD PTR 28[esi] - ; saved r[6] - ; ############### Calculate word 7 - xor ebx, ebx - ; sqr a[7]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 24[esi] - adc ebx, 0 - mov edx, DWORD PTR 4[esi] - ; sqr a[6]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 20[esi] - adc ebx, 0 - mov edx, DWORD PTR 8[esi] - ; sqr a[5]*a[2] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 16[esi] - adc ebx, 0 - mov edx, DWORD PTR 12[esi] - ; sqr a[4]*a[3] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 28[esi] - adc ebx, 0 - mov DWORD PTR 28[edi],ecx - mov edx, DWORD PTR 4[esi] - ; saved r[7] - ; ############### Calculate word 8 - xor ecx, ecx - ; sqr a[7]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 24[esi] - adc ecx, 0 - mov edx, DWORD PTR 8[esi] - ; sqr a[6]*a[2] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 20[esi] - adc ecx, 0 - mov edx, DWORD PTR 12[esi] - ; sqr a[5]*a[3] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 16[esi] - adc ecx, 0 - ; sqr a[4]*a[4] - mul eax - add ebp, eax - adc ebx, edx - mov edx, DWORD PTR 8[esi] - adc ecx, 0 - mov DWORD PTR 32[edi],ebp - mov eax, DWORD PTR 28[esi] - ; saved r[8] - ; ############### Calculate word 9 - xor ebp, ebp - ; sqr a[7]*a[2] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 24[esi] - adc ebp, 0 - mov edx, DWORD PTR 12[esi] - ; sqr a[6]*a[3] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 20[esi] - adc ebp, 0 - mov edx, DWORD PTR 16[esi] - ; sqr a[5]*a[4] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 28[esi] - adc ebp, 0 - mov DWORD PTR 36[edi],ebx - mov edx, DWORD PTR 12[esi] - ; saved r[9] - ; ############### Calculate word 10 - xor ebx, ebx - ; sqr a[7]*a[3] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 24[esi] - adc ebx, 0 - mov edx, DWORD PTR 16[esi] - ; sqr a[6]*a[4] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 20[esi] - adc ebx, 0 - ; sqr a[5]*a[5] - mul eax - add ecx, eax - adc ebp, edx - mov edx, DWORD PTR 16[esi] - adc ebx, 0 - mov DWORD PTR 40[edi],ecx - mov eax, DWORD PTR 28[esi] - ; saved r[10] - ; ############### Calculate word 11 - xor ecx, ecx - ; sqr a[7]*a[4] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 24[esi] - adc ecx, 0 - mov edx, DWORD PTR 20[esi] - ; sqr a[6]*a[5] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 28[esi] - adc ecx, 0 - mov DWORD PTR 44[edi],ebp - mov edx, DWORD PTR 20[esi] - ; saved r[11] - ; ############### Calculate word 12 - xor ebp, ebp - ; sqr a[7]*a[5] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 24[esi] - adc ebp, 0 - ; sqr a[6]*a[6] - mul eax - add ebx, eax - adc ecx, edx - mov edx, DWORD PTR 24[esi] - adc ebp, 0 - mov DWORD PTR 48[edi],ebx - mov eax, DWORD PTR 28[esi] - ; saved r[12] - ; ############### Calculate word 13 - xor ebx, ebx - ; sqr a[7]*a[6] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 28[esi] - adc ebx, 0 - mov DWORD PTR 52[edi],ecx - ; saved r[13] - ; ############### Calculate word 14 - xor ecx, ecx - ; sqr a[7]*a[7] - mul eax - add ebp, eax - adc ebx, edx - adc ecx, 0 - mov DWORD PTR 56[edi],ebp - ; saved r[14] - mov DWORD PTR 60[edi],ebx - pop ebx - pop ebp - pop edi - pop esi - ret -_bn_sqr_comba8 ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _bn_sqr_comba4 - -_bn_sqr_comba4 PROC NEAR - push esi - push edi - push ebp - push ebx - mov edi, DWORD PTR 20[esp] - mov esi, DWORD PTR 24[esp] - xor ebx, ebx - xor ecx, ecx - mov eax, DWORD PTR [esi] - ; ############### Calculate word 0 - xor ebp, ebp - ; sqr a[0]*a[0] - mul eax - add ebx, eax - adc ecx, edx - mov edx, DWORD PTR [esi] - adc ebp, 0 - mov DWORD PTR [edi],ebx - mov eax, DWORD PTR 4[esi] - ; saved r[0] - ; ############### Calculate word 1 - xor ebx, ebx - ; sqr a[1]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 8[esi] - adc ebx, 0 - mov DWORD PTR 4[edi],ecx - mov edx, DWORD PTR [esi] - ; saved r[1] - ; ############### Calculate word 2 - xor ecx, ecx - ; sqr a[2]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 4[esi] - adc ecx, 0 - ; sqr a[1]*a[1] - mul eax - add ebp, eax - adc ebx, edx - mov edx, DWORD PTR [esi] - adc ecx, 0 - mov DWORD PTR 8[edi],ebp - mov eax, DWORD PTR 12[esi] - ; saved r[2] - ; ############### Calculate word 3 - xor ebp, ebp - ; sqr a[3]*a[0] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 8[esi] - adc ebp, 0 - mov edx, DWORD PTR 4[esi] - ; sqr a[2]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ebp, 0 - add ebx, eax - adc ecx, edx - mov eax, DWORD PTR 12[esi] - adc ebp, 0 - mov DWORD PTR 12[edi],ebx - mov edx, DWORD PTR 4[esi] - ; saved r[3] - ; ############### Calculate word 4 - xor ebx, ebx - ; sqr a[3]*a[1] - mul edx - add eax, eax - adc edx, edx - adc ebx, 0 - add ecx, eax - adc ebp, edx - mov eax, DWORD PTR 8[esi] - adc ebx, 0 - ; sqr a[2]*a[2] - mul eax - add ecx, eax - adc ebp, edx - mov edx, DWORD PTR 8[esi] - adc ebx, 0 - mov DWORD PTR 16[edi],ecx - mov eax, DWORD PTR 12[esi] - ; saved r[4] - ; ############### Calculate word 5 - xor ecx, ecx - ; sqr a[3]*a[2] - mul edx - add eax, eax - adc edx, edx - adc ecx, 0 - add ebp, eax - adc ebx, edx - mov eax, DWORD PTR 12[esi] - adc ecx, 0 - mov DWORD PTR 20[edi],ebp - ; saved r[5] - ; ############### Calculate word 6 - xor ebp, ebp - ; sqr a[3]*a[3] - mul eax - add ebx, eax - adc ecx, edx - adc ebp, 0 - mov DWORD PTR 24[edi],ebx - ; saved r[6] - mov DWORD PTR 28[edi],ecx - pop ebx - pop ebp - pop edi - pop esi - ret -_bn_sqr_comba4 ENDP -_TEXT ENDS -END diff --git a/crypto/bn/asm/x86w16.asm b/crypto/bn/asm/x86w16.asm deleted file mode 100644 index 80a9ed6eef..0000000000 --- a/crypto/bn/asm/x86w16.asm +++ /dev/null @@ -1,297 +0,0 @@ -; Static Name Aliases -; - TITLE bn_mulw.c - .8087 -F_TEXT SEGMENT WORD PUBLIC 'CODE' -F_TEXT ENDS -_DATA SEGMENT WORD PUBLIC 'DATA' -_DATA ENDS -_CONST SEGMENT WORD PUBLIC 'CONST' -_CONST ENDS -_BSS SEGMENT WORD PUBLIC 'BSS' -_BSS ENDS -DGROUP GROUP _CONST, _BSS, _DATA - ASSUME DS: DGROUP, SS: DGROUP -F_TEXT SEGMENT - ASSUME CS: F_TEXT - PUBLIC _bn_mul_add_words -_bn_mul_add_words PROC FAR -; Line 58 - push bp - push bx - push si - push di - push ds - push es - mov bp,sp -; w = 26 -; num = 24 -; ap = 20 -; rp = 16 - xor si,si ;c=0; - mov di,WORD PTR [bp+16] ; load r - mov ds,WORD PTR [bp+18] ; load r - mov bx,WORD PTR [bp+20] ; load a - mov es,WORD PTR [bp+22] ; load a - mov cx,WORD PTR [bp+26] ; load w - mov bp,WORD PTR [bp+24] ; load num - - shr bp,1 ; div count by 4 and do groups of 4 - shr bp,1 - je $L555 - -$L546: - mov ax,cx - mul WORD PTR es:[bx] ; w* *a - add ax,WORD PTR ds:[di] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di],ax - mov si,dx - ; - mov ax,cx - mul WORD PTR es:[bx+2] ; w* *a - add ax,WORD PTR ds:[di+2] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di+2],ax - mov si,dx - ; - mov ax,cx - mul WORD PTR es:[bx+4] ; w* *a - add ax,WORD PTR ds:[di+4] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di+4],ax - mov si,dx - ; - mov ax,cx - mul WORD PTR es:[bx+6] ; w* *a - add ax,WORD PTR ds:[di+6] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di+6],ax - mov si,dx - ; - add bx,8 - add di,8 - ; - dec bp - je $L555 - jmp $L546 -; -; -$L555: - mov bp,sp - mov bp,WORD PTR [bp+24] ; load num - and bp,3 - dec bp - js $L547 - - mov ax,cx - mul WORD PTR es:[bx] ; w* *a - add ax,WORD PTR ds:[di] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di],ax - mov si,dx - dec bp - js $L547 ; Note that we are now testing for -1 - ; - mov ax,cx - mul WORD PTR es:[bx+2] ; w* *a - add ax,WORD PTR ds:[di+2] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di+2],ax - mov si,dx - dec bp - js $L547 - ; - mov ax,cx - mul WORD PTR es:[bx+4] ; w* *a - add ax,WORD PTR ds:[di+4] ; + *r - adc dx,0 - adc ax,si - adc dx,0 - mov WORD PTR ds:[di+4],ax - mov si,dx -$L547: - mov ax,si - pop es - pop ds - pop di - pop si - pop bx - pop bp - ret - nop - -_bn_mul_add_words ENDP - PUBLIC _bn_mul_words -_bn_mul_words PROC FAR -; Line 76 - push bp - push bx - push si - push di - push ds - push es - xor si,si - mov bp,sp - mov di,WORD PTR [bp+16] ; r - mov ds,WORD PTR [bp+18] - mov bx,WORD PTR [bp+20] ; a - mov es,WORD PTR [bp+22] - mov cx,WORD PTR [bp+26] ; w - mov bp,WORD PTR [bp+24] ; num -$FC743: - mov ax,cx - mul WORD PTR es:[bx] - add ax,si - adc dx,0 - mov WORD PTR ds:[di],ax - mov si,dx - dec bp - je $L764 - ; - mov ax,cx - mul WORD PTR es:[bx+2] - add ax,si - adc dx,0 - mov WORD PTR ds:[di+2],ax - mov si,dx - dec bp - je $L764 - ; - mov ax,cx - mul WORD PTR es:[bx+4] - add ax,si - adc dx,0 - mov WORD PTR ds:[di+4],ax - mov si,dx - dec bp - je $L764 - ; - mov ax,cx - mul WORD PTR es:[bx+6] - add ax,si - adc dx,0 - mov WORD PTR ds:[di+6],ax - mov si,dx - dec bp - je $L764 - ; - add bx,8 - add di,8 - jmp $FC743 - nop -$L764: - mov ax,si - pop es - pop ds - pop di - pop si - pop bx - pop bp - ret - nop -_bn_mul_words ENDP - PUBLIC _bn_sqr_words -_bn_sqr_words PROC FAR -; Line 92 - push bp - push bx - push si - push di - push ds - push es - mov bp,sp - mov si,WORD PTR [bp+16] - mov ds,WORD PTR [bp+18] - mov di,WORD PTR [bp+20] - mov es,WORD PTR [bp+22] - mov bx,WORD PTR [bp+24] - - mov bp,bx ; save a memory lookup later - shr bx,1 ; div count by 4 and do groups of 4 - shr bx,1 - je $L666 - -$L765: - mov ax,WORD PTR es:[di] - mul ax - mov WORD PTR ds:[si],ax - mov WORD PTR ds:[si+2],dx - ; - mov ax,WORD PTR es:[di+2] - mul ax - mov WORD PTR ds:[si+4],ax - mov WORD PTR ds:[si+6],dx - ; - mov ax,WORD PTR es:[di+4] - mul ax - mov WORD PTR ds:[si+8],ax - mov WORD PTR ds:[si+10],dx - ; - mov ax,WORD PTR es:[di+6] - mul ax - mov WORD PTR ds:[si+12],ax - mov WORD PTR ds:[si+14],dx - ; - add di,8 - add si,16 - dec bx - je $L666 - jmp $L765 -$L666: - and bp,3 - dec bp ; The copied value of bx (num) - js $L645 - ; - mov ax,WORD PTR es:[di] - mul ax - mov WORD PTR ds:[si],ax - mov WORD PTR ds:[si+2],dx - dec bp - js $L645 - ; - mov ax,WORD PTR es:[di+2] - mul ax - mov WORD PTR ds:[si+4],ax - mov WORD PTR ds:[si+6],dx - dec bp - js $L645 - ; - mov ax,WORD PTR es:[di+4] - mul ax - mov WORD PTR ds:[si+8],ax - mov WORD PTR ds:[si+10],dx -$L645: - pop es - pop ds - pop di - pop si - pop bx - pop bp - ret - -_bn_sqr_words ENDP - PUBLIC _bn_div64 -_bn_div64 PROC FAR - push bp - mov bp,sp - mov dx, WORD PTR [bp+6] - mov ax, WORD PTR [bp+8] - div WORD PTR [bp+10] - pop bp - ret -_bn_div64 ENDP -F_TEXT ENDS -END diff --git a/crypto/bn/asm/x86w32.asm b/crypto/bn/asm/x86w32.asm deleted file mode 100644 index 957d71e3b1..0000000000 --- a/crypto/bn/asm/x86w32.asm +++ /dev/null @@ -1,360 +0,0 @@ -; Static Name Aliases -; - TITLE bn_mulw.c - .386 -F_TEXT SEGMENT WORD USE16 PUBLIC 'CODE' -F_TEXT ENDS -_DATA SEGMENT WORD USE16 PUBLIC 'DATA' -_DATA ENDS -_CONST SEGMENT WORD USE16 PUBLIC 'CONST' -_CONST ENDS -_BSS SEGMENT WORD USE16 PUBLIC 'BSS' -_BSS ENDS -DGROUP GROUP _CONST, _BSS, _DATA - ASSUME DS: DGROUP, SS: DGROUP -F_TEXT SEGMENT - ASSUME CS: F_TEXT - PUBLIC _bn_mul_add_words -_bn_mul_add_words PROC FAR -; Line 58 - push bp - push bx - push esi - push di - push ds - push es - mov bp,sp -; w = 28 -; num = 26 -; ap = 22 -; rp = 18 - xor esi,esi ;c=0; - mov di,WORD PTR [bp+18] ; load r - mov ds,WORD PTR [bp+20] ; load r - mov bx,WORD PTR [bp+22] ; load a - mov es,WORD PTR [bp+24] ; load a - mov ecx,DWORD PTR [bp+28] ; load w - mov bp,WORD PTR [bp+26] ; load num - shr bp,1 ; div count by 4 and do groups of 4 - shr bp,1 - je $L555 - -$L546: - mov eax,ecx - mul DWORD PTR es:[bx] ; w* *a - add eax,DWORD PTR ds:[di] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di],eax - mov esi,edx - ; - mov eax,ecx - mul DWORD PTR es:[bx+4] ; w* *a - add eax,DWORD PTR ds:[di+4] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di+4],eax - mov esi,edx - ; - mov eax,ecx - mul DWORD PTR es:[bx+8] ; w* *a - add eax,DWORD PTR ds:[di+8] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di+8],eax - mov esi,edx - ; - mov eax,ecx - mul DWORD PTR es:[bx+12] ; w* *a - add eax,DWORD PTR ds:[di+12] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di+12],eax - mov esi,edx - ; - add bx,16 - add di,16 - ; - dec bp - je $L555 - jmp $L546 -; -; -$L555: - mov bp,sp - mov bp,WORD PTR [bp+26] ; load num - and bp,3 - dec bp - js $L547m - - mov eax,ecx - mul DWORD PTR es:[bx] ; w* *a - add eax,DWORD PTR ds:[di] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di],eax - mov esi,edx - dec bp - js $L547m ; Note that we are now testing for -1 - ; - mov eax,ecx - mul DWORD PTR es:[bx+4] ; w* *a - add eax,DWORD PTR ds:[di+4] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di+4],eax - mov esi,edx - dec bp - js $L547m - ; - mov eax,ecx - mul DWORD PTR es:[bx+8] ; w* *a - add eax,DWORD PTR ds:[di+8] ; + *r - adc edx,0 - adc eax,esi - adc edx,0 - mov DWORD PTR ds:[di+8],eax - mov esi,edx -$L547m: - mov eax,esi - mov edx,esi - shr edx,16 - pop es - pop ds - pop di - pop esi - pop bx - pop bp - ret - nop -_bn_mul_add_words ENDP - - PUBLIC _bn_mul_words -_bn_mul_words PROC FAR -; Line 76 - push bp - push bx - push esi - push di - push ds - push es - xor esi,esi - mov bp,sp - mov di,WORD PTR [bp+18] ; r - mov ds,WORD PTR [bp+20] - mov bx,WORD PTR [bp+22] ; a - mov es,WORD PTR [bp+24] - mov ecx,DWORD PTR [bp+28] ; w - mov bp,WORD PTR [bp+26] ; num - -$FC743: - mov eax,ecx - mul DWORD PTR es:[bx] - add eax,esi - adc edx,0 - mov DWORD PTR ds:[di],eax - mov esi,edx - dec bp - je $L764 - ; - mov eax,ecx - mul DWORD PTR es:[bx+4] - add eax,esi - adc edx,0 - mov DWORD PTR ds:[di+4],eax - mov esi,edx - dec bp - je $L764 - ; - mov eax,ecx - mul DWORD PTR es:[bx+8] - add eax,esi - adc edx,0 - mov DWORD PTR ds:[di+8],eax - mov esi,edx - dec bp - je $L764 - ; - mov eax,ecx - mul DWORD PTR es:[bx+12] - add eax,esi - adc edx,0 - mov DWORD PTR ds:[di+12],eax - mov esi,edx - dec bp - je $L764 - ; - add bx,16 - add di,16 - jmp $FC743 - nop -$L764: - mov eax,esi - mov edx,esi - shr edx,16 - pop es - pop ds - pop di - pop esi - pop bx - pop bp - ret - nop -_bn_mul_words ENDP - PUBLIC _bn_sqr_words -_bn_sqr_words PROC FAR -; Line 92 - push bp - push bx - push si - push di - push ds - push es - mov bp,sp - mov si,WORD PTR [bp+16] - mov ds,WORD PTR [bp+18] - mov di,WORD PTR [bp+20] - mov es,WORD PTR [bp+22] - mov bx,WORD PTR [bp+24] - - mov bp,bx ; save a memory lookup later - shr bx,1 ; div count by 4 and do groups of 4 - shr bx,1 - je $L666 - -$L765: - mov eax,DWORD PTR es:[di] - mul eax - mov DWORD PTR ds:[si],eax - mov DWORD PTR ds:[si+4],edx - ; - mov eax,DWORD PTR es:[di+4] - mul eax - mov DWORD PTR ds:[si+8],eax - mov DWORD PTR ds:[si+12],edx - ; - mov eax,DWORD PTR es:[di+8] - mul eax - mov DWORD PTR ds:[si+16],eax - mov DWORD PTR ds:[si+20],edx - ; - mov eax,DWORD PTR es:[di+12] - mul eax - mov DWORD PTR ds:[si+24],eax - mov DWORD PTR ds:[si+28],edx - ; - add di,16 - add si,32 - dec bx - je $L666 - jmp $L765 -$L666: - and bp,3 - dec bp ; The copied value of bx (num) - js $L645 - ; - mov eax,DWORD PTR es:[di] - mul eax - mov DWORD PTR ds:[si],eax - mov DWORD PTR ds:[si+4],edx - dec bp - js $L645 - ; - mov eax,DWORD PTR es:[di+4] - mul eax - mov DWORD PTR ds:[si+8],eax - mov DWORD PTR ds:[si+12],edx - dec bp - js $L645 - ; - mov eax,DWORD PTR es:[di+8] - mul eax - mov DWORD PTR ds:[si+16],eax - mov DWORD PTR ds:[si+20],edx -$L645: - pop es - pop ds - pop di - pop si - pop bx - pop bp - ret -_bn_sqr_words ENDP - - PUBLIC _bn_div64 -_bn_div64 PROC FAR - push bp - mov bp,sp - mov edx, DWORD PTR [bp+6] - mov eax, DWORD PTR [bp+10] - div DWORD PTR [bp+14] - mov edx,eax - shr edx,16 - pop bp - ret -_bn_div64 ENDP - - PUBLIC _bn_add_words -_bn_add_words PROC FAR -; Line 58 - push bp - push bx - push esi - push di - push ds - push es - mov bp,sp -; w = 28 -; num = 26 -; ap = 22 -; rp = 18 - xor esi,esi ;c=0; - mov bx,WORD PTR [bp+18] ; load low r - mov si,WORD PTR [bp+22] ; load a - mov es,WORD PTR [bp+24] ; load a - mov di,WORD PTR [bp+26] ; load b - mov ds,WORD PTR [bp+28] ; load b - - mov dx,WORD PTR [bp+30] ; load num - xor ecx,ecx - dec dx - js $L547a - -$L5477: - mov eax,DWORD PTR es:[si] ; *a - add eax,ecx - mov ecx,0 - adc ecx,0 - add si,4 ; a++ - add eax,DWORD PTR ds:[di] ; + *b - adc ecx,0 - mov ds,WORD PTR [bp+20] - add di,4 - mov DWORD PTR ds:[bx],eax - mov ds,WORD PTR [bp+28] - add bx,4 - dec dx - js $L547a ; Note that we are now testing for -1 - jmp $L5477 - ; -$L547a: - mov eax,ecx - mov edx,ecx - shr edx,16 - pop es - pop ds - pop di - pop esi - pop bx - pop bp - ret - nop -_bn_add_words ENDP -F_TEXT ENDS -END diff --git a/crypto/cast/asm/c-win32.asm b/crypto/cast/asm/c-win32.asm deleted file mode 100644 index ba78a3c69c..0000000000 --- a/crypto/cast/asm/c-win32.asm +++ /dev/null @@ -1,953 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by cast-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE cast-586.asm - .486 -.model FLAT -_TEXT SEGMENT -PUBLIC _CAST_encrypt -EXTERN _CAST_S_table0:DWORD -EXTERN _CAST_S_table1:DWORD -EXTERN _CAST_S_table2:DWORD -EXTERN _CAST_S_table3:DWORD - -_CAST_encrypt PROC NEAR - ; - push ebp - push ebx - mov ebx, DWORD PTR 12[esp] - mov ebp, DWORD PTR 16[esp] - push esi - push edi - ; Load the 2 words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - ; Get short key flag - mov eax, DWORD PTR 128[ebp] - push eax - xor eax, eax - ; round 0 - mov edx, DWORD PTR [ebp] - mov ecx, DWORD PTR 4[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 1 - mov edx, DWORD PTR 8[ebp] - mov ecx, DWORD PTR 12[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 2 - mov edx, DWORD PTR 16[ebp] - mov ecx, DWORD PTR 20[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 3 - mov edx, DWORD PTR 24[ebp] - mov ecx, DWORD PTR 28[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - ; round 4 - mov edx, DWORD PTR 32[ebp] - mov ecx, DWORD PTR 36[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 5 - mov edx, DWORD PTR 40[ebp] - mov ecx, DWORD PTR 44[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 6 - mov edx, DWORD PTR 48[ebp] - mov ecx, DWORD PTR 52[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 7 - mov edx, DWORD PTR 56[ebp] - mov ecx, DWORD PTR 60[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 8 - mov edx, DWORD PTR 64[ebp] - mov ecx, DWORD PTR 68[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 9 - mov edx, DWORD PTR 72[ebp] - mov ecx, DWORD PTR 76[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - ; round 10 - mov edx, DWORD PTR 80[ebp] - mov ecx, DWORD PTR 84[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 11 - mov edx, DWORD PTR 88[ebp] - mov ecx, DWORD PTR 92[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; test short key flag - pop edx - or edx, edx - jnz $L000cast_enc_done - ; round 12 - mov edx, DWORD PTR 96[ebp] - mov ecx, DWORD PTR 100[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 13 - mov edx, DWORD PTR 104[ebp] - mov ecx, DWORD PTR 108[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 14 - mov edx, DWORD PTR 112[ebp] - mov ecx, DWORD PTR 116[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 15 - mov edx, DWORD PTR 120[ebp] - mov ecx, DWORD PTR 124[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx -$L000cast_enc_done: - nop - mov eax, DWORD PTR 20[esp] - mov DWORD PTR 4[eax],edi - mov DWORD PTR [eax],esi - pop edi - pop esi - pop ebx - pop ebp - ret -_CAST_encrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _CAST_decrypt -EXTERN _CAST_S_table0:DWORD -EXTERN _CAST_S_table1:DWORD -EXTERN _CAST_S_table2:DWORD -EXTERN _CAST_S_table3:DWORD - -_CAST_decrypt PROC NEAR - ; - push ebp - push ebx - mov ebx, DWORD PTR 12[esp] - mov ebp, DWORD PTR 16[esp] - push esi - push edi - ; Load the 2 words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - ; Get short key flag - mov eax, DWORD PTR 128[ebp] - or eax, eax - jnz $L001cast_dec_skip - xor eax, eax - ; round 15 - mov edx, DWORD PTR 120[ebp] - mov ecx, DWORD PTR 124[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 14 - mov edx, DWORD PTR 112[ebp] - mov ecx, DWORD PTR 116[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 13 - mov edx, DWORD PTR 104[ebp] - mov ecx, DWORD PTR 108[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 12 - mov edx, DWORD PTR 96[ebp] - mov ecx, DWORD PTR 100[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx -$L001cast_dec_skip: - ; round 11 - mov edx, DWORD PTR 88[ebp] - mov ecx, DWORD PTR 92[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 10 - mov edx, DWORD PTR 80[ebp] - mov ecx, DWORD PTR 84[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 9 - mov edx, DWORD PTR 72[ebp] - mov ecx, DWORD PTR 76[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 8 - mov edx, DWORD PTR 64[ebp] - mov ecx, DWORD PTR 68[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 7 - mov edx, DWORD PTR 56[ebp] - mov ecx, DWORD PTR 60[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 6 - mov edx, DWORD PTR 48[ebp] - mov ecx, DWORD PTR 52[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - ; round 5 - mov edx, DWORD PTR 40[ebp] - mov ecx, DWORD PTR 44[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 4 - mov edx, DWORD PTR 32[ebp] - mov ecx, DWORD PTR 36[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 3 - mov edx, DWORD PTR 24[ebp] - mov ecx, DWORD PTR 28[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 2 - mov edx, DWORD PTR 16[ebp] - mov ecx, DWORD PTR 20[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 1 - mov edx, DWORD PTR 8[ebp] - mov ecx, DWORD PTR 12[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 0 - mov edx, DWORD PTR [ebp] - mov ecx, DWORD PTR 4[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - nop - mov eax, DWORD PTR 20[esp] - mov DWORD PTR 4[eax],edi - mov DWORD PTR [eax],esi - pop edi - pop esi - pop ebx - pop ebp - ret -_CAST_decrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _CAST_cbc_encrypt - -_CAST_cbc_encrypt PROC NEAR - ; - push ebp - push ebx - push esi - push edi - mov ebp, DWORD PTR 28[esp] - ; getting iv ptr from parameter 4 - mov ebx, DWORD PTR 36[esp] - mov esi, DWORD PTR [ebx] - mov edi, DWORD PTR 4[ebx] - push edi - push esi - push edi - push esi - mov ebx, esp - mov esi, DWORD PTR 36[esp] - mov edi, DWORD PTR 40[esp] - ; getting encrypt flag from parameter 5 - mov ecx, DWORD PTR 56[esp] - ; get and push parameter 3 - mov eax, DWORD PTR 48[esp] - push eax - push ebx - cmp ecx, 0 - jz $L002decrypt - and ebp, 4294967288 - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - jz $L003encrypt_finish -L004encrypt_loop: - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR 4[esi] - xor eax, ecx - xor ebx, edx - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L004encrypt_loop -$L003encrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L005finish - xor ecx, ecx - xor edx, edx - mov ebp, DWORD PTR $L006cbc_enc_jmp_table[ebp*4] - jmp ebp -L007ej7: - xor edx, edx - mov dh, BYTE PTR 6[esi] - shl edx, 8 -L008ej6: - mov dh, BYTE PTR 5[esi] -L009ej5: - mov dl, BYTE PTR 4[esi] -L010ej4: - mov ecx, DWORD PTR [esi] - jmp $L011ejend -L012ej3: - mov ch, BYTE PTR 2[esi] - xor ecx, ecx - shl ecx, 8 -L013ej2: - mov ch, BYTE PTR 1[esi] -L014ej1: - mov cl, BYTE PTR [esi] -$L011ejend: - xor eax, ecx - xor ebx, edx - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - jmp $L005finish -$L002decrypt: - and ebp, 4294967288 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - jz $L015decrypt_finish -L016decrypt_loop: - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR [edi],ecx - mov DWORD PTR 4[edi],edx - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L016decrypt_loop -$L015decrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L005finish - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] -L017dj7: - ror edx, 16 - mov BYTE PTR 6[edi],dl - shr edx, 16 -L018dj6: - mov BYTE PTR 5[edi],dh -L019dj5: - mov BYTE PTR 4[edi],dl -L020dj4: - mov DWORD PTR [edi],ecx - jmp $L021djend -L022dj3: - ror ecx, 16 - mov BYTE PTR 2[edi],cl - shl ecx, 16 -L023dj2: - mov BYTE PTR 1[esi],ch -L024dj1: - mov BYTE PTR [esi], cl -$L021djend: - jmp $L005finish -$L005finish: - mov ecx, DWORD PTR 60[esp] - add esp, 24 - mov DWORD PTR [ecx],eax - mov DWORD PTR 4[ecx],ebx - pop edi - pop esi - pop ebx - pop ebp - ret -$L006cbc_enc_jmp_table: - DD 0 - DD L014ej1 - DD L013ej2 - DD L012ej3 - DD L010ej4 - DD L009ej5 - DD L008ej6 - DD L007ej7 -L025cbc_dec_jmp_table: - DD 0 - DD L024dj1 - DD L023dj2 - DD L022dj3 - DD L020dj4 - DD L019dj5 - DD L018dj6 - DD L017dj7 -_CAST_cbc_encrypt ENDP -_TEXT ENDS -END diff --git a/crypto/des/asm/d-win32.asm b/crypto/des/asm/d-win32.asm deleted file mode 100644 index 9e3dc9cd87..0000000000 --- a/crypto/des/asm/d-win32.asm +++ /dev/null @@ -1,3132 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by des-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE des-586.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _des_encrypt -EXTRN _des_SPtrans:DWORD -_des_encrypt PROC NEAR - push esi - push edi - ; - ; Load the 2 words - mov esi, DWORD PTR 12[esp] - xor ecx, ecx - push ebx - push ebp - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 28[esp] - mov edi, DWORD PTR 4[esi] - ; - ; IP - rol eax, 4 - mov esi, eax - xor eax, edi - and eax, 0f0f0f0f0h - xor esi, eax - xor edi, eax - ; - rol edi, 20 - mov eax, edi - xor edi, esi - and edi, 0fff0000fh - xor eax, edi - xor esi, edi - ; - rol eax, 14 - mov edi, eax - xor eax, esi - and eax, 033333333h - xor edi, eax - xor esi, eax - ; - rol esi, 22 - mov eax, esi - xor esi, edi - and esi, 003fc03fch - xor eax, esi - xor edi, esi - ; - rol eax, 9 - mov esi, eax - xor eax, edi - and eax, 0aaaaaaaah - xor esi, eax - xor edi, eax - ; - rol edi, 1 - mov ebp, DWORD PTR 24[esp] - cmp ebx, 0 - je $L000start_decrypt - ; - ; Round 0 - mov eax, DWORD PTR [ebp] - xor ebx, ebx - mov edx, DWORD PTR 4[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 1 - mov eax, DWORD PTR 8[ebp] - xor ebx, ebx - mov edx, DWORD PTR 12[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 2 - mov eax, DWORD PTR 16[ebp] - xor ebx, ebx - mov edx, DWORD PTR 20[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 3 - mov eax, DWORD PTR 24[ebp] - xor ebx, ebx - mov edx, DWORD PTR 28[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 4 - mov eax, DWORD PTR 32[ebp] - xor ebx, ebx - mov edx, DWORD PTR 36[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 5 - mov eax, DWORD PTR 40[ebp] - xor ebx, ebx - mov edx, DWORD PTR 44[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 6 - mov eax, DWORD PTR 48[ebp] - xor ebx, ebx - mov edx, DWORD PTR 52[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 7 - mov eax, DWORD PTR 56[ebp] - xor ebx, ebx - mov edx, DWORD PTR 60[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 8 - mov eax, DWORD PTR 64[ebp] - xor ebx, ebx - mov edx, DWORD PTR 68[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 9 - mov eax, DWORD PTR 72[ebp] - xor ebx, ebx - mov edx, DWORD PTR 76[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 10 - mov eax, DWORD PTR 80[ebp] - xor ebx, ebx - mov edx, DWORD PTR 84[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 11 - mov eax, DWORD PTR 88[ebp] - xor ebx, ebx - mov edx, DWORD PTR 92[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 12 - mov eax, DWORD PTR 96[ebp] - xor ebx, ebx - mov edx, DWORD PTR 100[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 13 - mov eax, DWORD PTR 104[ebp] - xor ebx, ebx - mov edx, DWORD PTR 108[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 14 - mov eax, DWORD PTR 112[ebp] - xor ebx, ebx - mov edx, DWORD PTR 116[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 15 - mov eax, DWORD PTR 120[ebp] - xor ebx, ebx - mov edx, DWORD PTR 124[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - jmp $L001end -$L000start_decrypt: - ; - ; Round 15 - mov eax, DWORD PTR 120[ebp] - xor ebx, ebx - mov edx, DWORD PTR 124[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 14 - mov eax, DWORD PTR 112[ebp] - xor ebx, ebx - mov edx, DWORD PTR 116[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 13 - mov eax, DWORD PTR 104[ebp] - xor ebx, ebx - mov edx, DWORD PTR 108[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 12 - mov eax, DWORD PTR 96[ebp] - xor ebx, ebx - mov edx, DWORD PTR 100[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 11 - mov eax, DWORD PTR 88[ebp] - xor ebx, ebx - mov edx, DWORD PTR 92[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 10 - mov eax, DWORD PTR 80[ebp] - xor ebx, ebx - mov edx, DWORD PTR 84[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 9 - mov eax, DWORD PTR 72[ebp] - xor ebx, ebx - mov edx, DWORD PTR 76[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 8 - mov eax, DWORD PTR 64[ebp] - xor ebx, ebx - mov edx, DWORD PTR 68[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 7 - mov eax, DWORD PTR 56[ebp] - xor ebx, ebx - mov edx, DWORD PTR 60[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 6 - mov eax, DWORD PTR 48[ebp] - xor ebx, ebx - mov edx, DWORD PTR 52[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 5 - mov eax, DWORD PTR 40[ebp] - xor ebx, ebx - mov edx, DWORD PTR 44[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 4 - mov eax, DWORD PTR 32[ebp] - xor ebx, ebx - mov edx, DWORD PTR 36[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 3 - mov eax, DWORD PTR 24[ebp] - xor ebx, ebx - mov edx, DWORD PTR 28[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 2 - mov eax, DWORD PTR 16[ebp] - xor ebx, ebx - mov edx, DWORD PTR 20[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 1 - mov eax, DWORD PTR 8[ebp] - xor ebx, ebx - mov edx, DWORD PTR 12[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 0 - mov eax, DWORD PTR [ebp] - xor ebx, ebx - mov edx, DWORD PTR 4[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx -$L001end: - ; - ; FP - mov edx, DWORD PTR 20[esp] - ror esi, 1 - mov eax, edi - xor edi, esi - and edi, 0aaaaaaaah - xor eax, edi - xor esi, edi - ; - rol eax, 23 - mov edi, eax - xor eax, esi - and eax, 003fc03fch - xor edi, eax - xor esi, eax - ; - rol edi, 10 - mov eax, edi - xor edi, esi - and edi, 033333333h - xor eax, edi - xor esi, edi - ; - rol esi, 18 - mov edi, esi - xor esi, eax - and esi, 0fff0000fh - xor edi, esi - xor eax, esi - ; - rol edi, 12 - mov esi, edi - xor edi, eax - and edi, 0f0f0f0f0h - xor esi, edi - xor eax, edi - ; - ror eax, 4 - mov DWORD PTR [edx],eax - mov DWORD PTR 4[edx],esi - pop ebp - pop ebx - pop edi - pop esi - ret -_des_encrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _des_encrypt2 -EXTRN _des_SPtrans:DWORD -_des_encrypt2 PROC NEAR - push esi - push edi - ; - ; Load the 2 words - mov eax, DWORD PTR 12[esp] - xor ecx, ecx - push ebx - push ebp - mov esi, DWORD PTR [eax] - mov ebx, DWORD PTR 28[esp] - rol esi, 3 - mov edi, DWORD PTR 4[eax] - rol edi, 3 - mov ebp, DWORD PTR 24[esp] - cmp ebx, 0 - je $L002start_decrypt - ; - ; Round 0 - mov eax, DWORD PTR [ebp] - xor ebx, ebx - mov edx, DWORD PTR 4[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 1 - mov eax, DWORD PTR 8[ebp] - xor ebx, ebx - mov edx, DWORD PTR 12[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 2 - mov eax, DWORD PTR 16[ebp] - xor ebx, ebx - mov edx, DWORD PTR 20[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 3 - mov eax, DWORD PTR 24[ebp] - xor ebx, ebx - mov edx, DWORD PTR 28[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 4 - mov eax, DWORD PTR 32[ebp] - xor ebx, ebx - mov edx, DWORD PTR 36[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 5 - mov eax, DWORD PTR 40[ebp] - xor ebx, ebx - mov edx, DWORD PTR 44[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 6 - mov eax, DWORD PTR 48[ebp] - xor ebx, ebx - mov edx, DWORD PTR 52[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 7 - mov eax, DWORD PTR 56[ebp] - xor ebx, ebx - mov edx, DWORD PTR 60[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 8 - mov eax, DWORD PTR 64[ebp] - xor ebx, ebx - mov edx, DWORD PTR 68[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 9 - mov eax, DWORD PTR 72[ebp] - xor ebx, ebx - mov edx, DWORD PTR 76[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 10 - mov eax, DWORD PTR 80[ebp] - xor ebx, ebx - mov edx, DWORD PTR 84[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 11 - mov eax, DWORD PTR 88[ebp] - xor ebx, ebx - mov edx, DWORD PTR 92[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 12 - mov eax, DWORD PTR 96[ebp] - xor ebx, ebx - mov edx, DWORD PTR 100[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 13 - mov eax, DWORD PTR 104[ebp] - xor ebx, ebx - mov edx, DWORD PTR 108[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 14 - mov eax, DWORD PTR 112[ebp] - xor ebx, ebx - mov edx, DWORD PTR 116[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 15 - mov eax, DWORD PTR 120[ebp] - xor ebx, ebx - mov edx, DWORD PTR 124[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - jmp $L003end -$L002start_decrypt: - ; - ; Round 15 - mov eax, DWORD PTR 120[ebp] - xor ebx, ebx - mov edx, DWORD PTR 124[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 14 - mov eax, DWORD PTR 112[ebp] - xor ebx, ebx - mov edx, DWORD PTR 116[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 13 - mov eax, DWORD PTR 104[ebp] - xor ebx, ebx - mov edx, DWORD PTR 108[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 12 - mov eax, DWORD PTR 96[ebp] - xor ebx, ebx - mov edx, DWORD PTR 100[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 11 - mov eax, DWORD PTR 88[ebp] - xor ebx, ebx - mov edx, DWORD PTR 92[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 10 - mov eax, DWORD PTR 80[ebp] - xor ebx, ebx - mov edx, DWORD PTR 84[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 9 - mov eax, DWORD PTR 72[ebp] - xor ebx, ebx - mov edx, DWORD PTR 76[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 8 - mov eax, DWORD PTR 64[ebp] - xor ebx, ebx - mov edx, DWORD PTR 68[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 7 - mov eax, DWORD PTR 56[ebp] - xor ebx, ebx - mov edx, DWORD PTR 60[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 6 - mov eax, DWORD PTR 48[ebp] - xor ebx, ebx - mov edx, DWORD PTR 52[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 5 - mov eax, DWORD PTR 40[ebp] - xor ebx, ebx - mov edx, DWORD PTR 44[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 4 - mov eax, DWORD PTR 32[ebp] - xor ebx, ebx - mov edx, DWORD PTR 36[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 3 - mov eax, DWORD PTR 24[ebp] - xor ebx, ebx - mov edx, DWORD PTR 28[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 2 - mov eax, DWORD PTR 16[ebp] - xor ebx, ebx - mov edx, DWORD PTR 20[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 1 - mov eax, DWORD PTR 8[ebp] - xor ebx, ebx - mov edx, DWORD PTR 12[ebp] - xor eax, esi - xor edx, esi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 0 - mov eax, DWORD PTR [ebp] - xor ebx, ebx - mov edx, DWORD PTR 4[ebp] - xor eax, edi - xor edx, edi - and eax, 0fcfcfcfch - and edx, 0cfcfcfcfh - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 24[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx -$L003end: - ; - ; Fixup - ror edi, 3 - mov eax, DWORD PTR 20[esp] - ror esi, 3 - mov DWORD PTR [eax],edi - mov DWORD PTR 4[eax],esi - pop ebp - pop ebx - pop edi - pop esi - ret -_des_encrypt2 ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _des_encrypt3 - -_des_encrypt3 PROC NEAR - push ebx - mov ebx, DWORD PTR 8[esp] - push ebp - push esi - push edi - ; - ; Load the data words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - sub esp, 12 - ; - ; IP - rol edi, 4 - mov edx, edi - xor edi, esi - and edi, 0f0f0f0f0h - xor edx, edi - xor esi, edi - ; - rol esi, 20 - mov edi, esi - xor esi, edx - and esi, 0fff0000fh - xor edi, esi - xor edx, esi - ; - rol edi, 14 - mov esi, edi - xor edi, edx - and edi, 033333333h - xor esi, edi - xor edx, edi - ; - rol edx, 22 - mov edi, edx - xor edx, esi - and edx, 003fc03fch - xor edi, edx - xor esi, edx - ; - rol edi, 9 - mov edx, edi - xor edi, esi - and edi, 0aaaaaaaah - xor edx, edi - xor esi, edi - ; - ror edx, 3 - ror esi, 2 - mov DWORD PTR 4[ebx],esi - mov eax, DWORD PTR 36[esp] - mov DWORD PTR [ebx],edx - mov edi, DWORD PTR 40[esp] - mov esi, DWORD PTR 44[esp] - mov DWORD PTR 8[esp],1 - mov DWORD PTR 4[esp],eax - mov DWORD PTR [esp],ebx - call _des_encrypt2 - mov DWORD PTR 8[esp],0 - mov DWORD PTR 4[esp],edi - mov DWORD PTR [esp],ebx - call _des_encrypt2 - mov DWORD PTR 8[esp],1 - mov DWORD PTR 4[esp],esi - mov DWORD PTR [esp],ebx - call _des_encrypt2 - add esp, 12 - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - ; - ; FP - rol esi, 2 - rol edi, 3 - mov eax, edi - xor edi, esi - and edi, 0aaaaaaaah - xor eax, edi - xor esi, edi - ; - rol eax, 23 - mov edi, eax - xor eax, esi - and eax, 003fc03fch - xor edi, eax - xor esi, eax - ; - rol edi, 10 - mov eax, edi - xor edi, esi - and edi, 033333333h - xor eax, edi - xor esi, edi - ; - rol esi, 18 - mov edi, esi - xor esi, eax - and esi, 0fff0000fh - xor edi, esi - xor eax, esi - ; - rol edi, 12 - mov esi, edi - xor edi, eax - and edi, 0f0f0f0f0h - xor esi, edi - xor eax, edi - ; - ror eax, 4 - mov DWORD PTR [ebx],eax - mov DWORD PTR 4[ebx],esi - pop edi - pop esi - pop ebp - pop ebx - ret -_des_encrypt3 ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _des_decrypt3 - -_des_decrypt3 PROC NEAR - push ebx - mov ebx, DWORD PTR 8[esp] - push ebp - push esi - push edi - ; - ; Load the data words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - sub esp, 12 - ; - ; IP - rol edi, 4 - mov edx, edi - xor edi, esi - and edi, 0f0f0f0f0h - xor edx, edi - xor esi, edi - ; - rol esi, 20 - mov edi, esi - xor esi, edx - and esi, 0fff0000fh - xor edi, esi - xor edx, esi - ; - rol edi, 14 - mov esi, edi - xor edi, edx - and edi, 033333333h - xor esi, edi - xor edx, edi - ; - rol edx, 22 - mov edi, edx - xor edx, esi - and edx, 003fc03fch - xor edi, edx - xor esi, edx - ; - rol edi, 9 - mov edx, edi - xor edi, esi - and edi, 0aaaaaaaah - xor edx, edi - xor esi, edi - ; - ror edx, 3 - ror esi, 2 - mov DWORD PTR 4[ebx],esi - mov esi, DWORD PTR 36[esp] - mov DWORD PTR [ebx],edx - mov edi, DWORD PTR 40[esp] - mov eax, DWORD PTR 44[esp] - mov DWORD PTR 8[esp],0 - mov DWORD PTR 4[esp],eax - mov DWORD PTR [esp],ebx - call _des_encrypt2 - mov DWORD PTR 8[esp],1 - mov DWORD PTR 4[esp],edi - mov DWORD PTR [esp],ebx - call _des_encrypt2 - mov DWORD PTR 8[esp],0 - mov DWORD PTR 4[esp],esi - mov DWORD PTR [esp],ebx - call _des_encrypt2 - add esp, 12 - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - ; - ; FP - rol esi, 2 - rol edi, 3 - mov eax, edi - xor edi, esi - and edi, 0aaaaaaaah - xor eax, edi - xor esi, edi - ; - rol eax, 23 - mov edi, eax - xor eax, esi - and eax, 003fc03fch - xor edi, eax - xor esi, eax - ; - rol edi, 10 - mov eax, edi - xor edi, esi - and edi, 033333333h - xor eax, edi - xor esi, edi - ; - rol esi, 18 - mov edi, esi - xor esi, eax - and esi, 0fff0000fh - xor edi, esi - xor eax, esi - ; - rol edi, 12 - mov esi, edi - xor edi, eax - and edi, 0f0f0f0f0h - xor esi, edi - xor eax, edi - ; - ror eax, 4 - mov DWORD PTR [ebx],eax - mov DWORD PTR 4[ebx],esi - pop edi - pop esi - pop ebp - pop ebx - ret -_des_decrypt3 ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _des_ncbc_encrypt - -_des_ncbc_encrypt PROC NEAR - ; - push ebp - push ebx - push esi - push edi - mov ebp, DWORD PTR 28[esp] - ; getting iv ptr from parameter 4 - mov ebx, DWORD PTR 36[esp] - mov esi, DWORD PTR [ebx] - mov edi, DWORD PTR 4[ebx] - push edi - push esi - push edi - push esi - mov ebx, esp - mov esi, DWORD PTR 36[esp] - mov edi, DWORD PTR 40[esp] - ; getting encrypt flag from parameter 5 - mov ecx, DWORD PTR 56[esp] - ; get and push parameter 5 - push ecx - ; get and push parameter 3 - mov eax, DWORD PTR 52[esp] - push eax - push ebx - cmp ecx, 0 - jz $L004decrypt - and ebp, 4294967288 - mov eax, DWORD PTR 12[esp] - mov ebx, DWORD PTR 16[esp] - jz $L005encrypt_finish -L006encrypt_loop: - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR 4[esi] - xor eax, ecx - xor ebx, edx - mov DWORD PTR 12[esp],eax - mov DWORD PTR 16[esp],ebx - call _des_encrypt - mov eax, DWORD PTR 12[esp] - mov ebx, DWORD PTR 16[esp] - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L006encrypt_loop -$L005encrypt_finish: - mov ebp, DWORD PTR 56[esp] - and ebp, 7 - jz $L007finish - xor ecx, ecx - xor edx, edx - mov ebp, DWORD PTR $L008cbc_enc_jmp_table[ebp*4] - jmp ebp -L009ej7: - mov dh, BYTE PTR 6[esi] - shl edx, 8 -L010ej6: - mov dh, BYTE PTR 5[esi] -L011ej5: - mov dl, BYTE PTR 4[esi] -L012ej4: - mov ecx, DWORD PTR [esi] - jmp $L013ejend -L014ej3: - mov ch, BYTE PTR 2[esi] - shl ecx, 8 -L015ej2: - mov ch, BYTE PTR 1[esi] -L016ej1: - mov cl, BYTE PTR [esi] -$L013ejend: - xor eax, ecx - xor ebx, edx - mov DWORD PTR 12[esp],eax - mov DWORD PTR 16[esp],ebx - call _des_encrypt - mov eax, DWORD PTR 12[esp] - mov ebx, DWORD PTR 16[esp] - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - jmp $L007finish -$L004decrypt: - and ebp, 4294967288 - mov eax, DWORD PTR 20[esp] - mov ebx, DWORD PTR 24[esp] - jz $L017decrypt_finish -L018decrypt_loop: - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR 12[esp],eax - mov DWORD PTR 16[esp],ebx - call _des_encrypt - mov eax, DWORD PTR 12[esp] - mov ebx, DWORD PTR 16[esp] - mov ecx, DWORD PTR 20[esp] - mov edx, DWORD PTR 24[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR [edi],ecx - mov DWORD PTR 4[edi],edx - mov DWORD PTR 20[esp],eax - mov DWORD PTR 24[esp],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L018decrypt_loop -$L017decrypt_finish: - mov ebp, DWORD PTR 56[esp] - and ebp, 7 - jz $L007finish - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR 12[esp],eax - mov DWORD PTR 16[esp],ebx - call _des_encrypt - mov eax, DWORD PTR 12[esp] - mov ebx, DWORD PTR 16[esp] - mov ecx, DWORD PTR 20[esp] - mov edx, DWORD PTR 24[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] -L019dj7: - ror edx, 16 - mov BYTE PTR 6[edi],dl - shr edx, 16 -L020dj6: - mov BYTE PTR 5[edi],dh -L021dj5: - mov BYTE PTR 4[edi],dl -L022dj4: - mov DWORD PTR [edi],ecx - jmp $L023djend -L024dj3: - ror ecx, 16 - mov BYTE PTR 2[edi],cl - shl ecx, 16 -L025dj2: - mov BYTE PTR 1[esi],ch -L026dj1: - mov BYTE PTR [esi], cl -$L023djend: - jmp $L007finish -$L007finish: - mov ecx, DWORD PTR 64[esp] - add esp, 28 - mov DWORD PTR [ecx],eax - mov DWORD PTR 4[ecx],ebx - pop edi - pop esi - pop ebx - pop ebp - ret -$L008cbc_enc_jmp_table: - DD 0 - DD L016ej1 - DD L015ej2 - DD L014ej3 - DD L012ej4 - DD L011ej5 - DD L010ej6 - DD L009ej7 -L027cbc_dec_jmp_table: - DD 0 - DD L026dj1 - DD L025dj2 - DD L024dj3 - DD L022dj4 - DD L021dj5 - DD L020dj6 - DD L019dj7 -_des_ncbc_encrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _des_ede3_cbc_encrypt - -_des_ede3_cbc_encrypt PROC NEAR - ; - push ebp - push ebx - push esi - push edi - mov ebp, DWORD PTR 28[esp] - ; getting iv ptr from parameter 6 - mov ebx, DWORD PTR 44[esp] - mov esi, DWORD PTR [ebx] - mov edi, DWORD PTR 4[ebx] - push edi - push esi - push edi - push esi - mov ebx, esp - mov esi, DWORD PTR 36[esp] - mov edi, DWORD PTR 40[esp] - ; getting encrypt flag from parameter 7 - mov ecx, DWORD PTR 64[esp] - ; get and push parameter 5 - mov eax, DWORD PTR 56[esp] - push eax - ; get and push parameter 4 - mov eax, DWORD PTR 56[esp] - push eax - ; get and push parameter 3 - mov eax, DWORD PTR 56[esp] - push eax - push ebx - cmp ecx, 0 - jz $L028decrypt - and ebp, 4294967288 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - jz $L029encrypt_finish -L030encrypt_loop: - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR 4[esi] - xor eax, ecx - xor ebx, edx - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - call _des_encrypt3 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L030encrypt_loop -$L029encrypt_finish: - mov ebp, DWORD PTR 60[esp] - and ebp, 7 - jz $L031finish - xor ecx, ecx - xor edx, edx - mov ebp, DWORD PTR $L032cbc_enc_jmp_table[ebp*4] - jmp ebp -L033ej7: - mov dh, BYTE PTR 6[esi] - shl edx, 8 -L034ej6: - mov dh, BYTE PTR 5[esi] -L035ej5: - mov dl, BYTE PTR 4[esi] -L036ej4: - mov ecx, DWORD PTR [esi] - jmp $L037ejend -L038ej3: - mov ch, BYTE PTR 2[esi] - shl ecx, 8 -L039ej2: - mov ch, BYTE PTR 1[esi] -L040ej1: - mov cl, BYTE PTR [esi] -$L037ejend: - xor eax, ecx - xor ebx, edx - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - call _des_encrypt3 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - jmp $L031finish -$L028decrypt: - and ebp, 4294967288 - mov eax, DWORD PTR 24[esp] - mov ebx, DWORD PTR 28[esp] - jz $L041decrypt_finish -L042decrypt_loop: - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - call _des_decrypt3 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - mov ecx, DWORD PTR 24[esp] - mov edx, DWORD PTR 28[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR [edi],ecx - mov DWORD PTR 4[edi],edx - mov DWORD PTR 24[esp],eax - mov DWORD PTR 28[esp],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L042decrypt_loop -$L041decrypt_finish: - mov ebp, DWORD PTR 60[esp] - and ebp, 7 - jz $L031finish - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - call _des_decrypt3 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - mov ecx, DWORD PTR 24[esp] - mov edx, DWORD PTR 28[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] -L043dj7: - ror edx, 16 - mov BYTE PTR 6[edi],dl - shr edx, 16 -L044dj6: - mov BYTE PTR 5[edi],dh -L045dj5: - mov BYTE PTR 4[edi],dl -L046dj4: - mov DWORD PTR [edi],ecx - jmp $L047djend -L048dj3: - ror ecx, 16 - mov BYTE PTR 2[edi],cl - shl ecx, 16 -L049dj2: - mov BYTE PTR 1[esi],ch -L050dj1: - mov BYTE PTR [esi], cl -$L047djend: - jmp $L031finish -$L031finish: - mov ecx, DWORD PTR 76[esp] - add esp, 32 - mov DWORD PTR [ecx],eax - mov DWORD PTR 4[ecx],ebx - pop edi - pop esi - pop ebx - pop ebp - ret -$L032cbc_enc_jmp_table: - DD 0 - DD L040ej1 - DD L039ej2 - DD L038ej3 - DD L036ej4 - DD L035ej5 - DD L034ej6 - DD L033ej7 -L051cbc_dec_jmp_table: - DD 0 - DD L050dj1 - DD L049dj2 - DD L048dj3 - DD L046dj4 - DD L045dj5 - DD L044dj6 - DD L043dj7 -_des_ede3_cbc_encrypt ENDP -_TEXT ENDS -END diff --git a/crypto/des/asm/y-win32.asm b/crypto/des/asm/y-win32.asm deleted file mode 100644 index af5c102422..0000000000 --- a/crypto/des/asm/y-win32.asm +++ /dev/null @@ -1,929 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by crypt586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE crypt586.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _fcrypt_body -EXTRN _des_SPtrans:DWORD -_fcrypt_body PROC NEAR - push ebp - push ebx - push esi - push edi - ; - ; Load the 2 words - xor edi, edi - xor esi, esi - mov ebp, DWORD PTR 24[esp] - push 25 -L000start: - ; - ; Round 0 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR [ebp] - xor eax, ebx - mov ecx, DWORD PTR 4[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 1 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 8[ebp] - xor eax, ebx - mov ecx, DWORD PTR 12[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 2 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 16[ebp] - xor eax, ebx - mov ecx, DWORD PTR 20[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 3 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 24[ebp] - xor eax, ebx - mov ecx, DWORD PTR 28[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 4 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 32[ebp] - xor eax, ebx - mov ecx, DWORD PTR 36[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 5 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 40[ebp] - xor eax, ebx - mov ecx, DWORD PTR 44[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 6 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 48[ebp] - xor eax, ebx - mov ecx, DWORD PTR 52[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 7 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 56[ebp] - xor eax, ebx - mov ecx, DWORD PTR 60[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 8 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 64[ebp] - xor eax, ebx - mov ecx, DWORD PTR 68[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 9 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 72[ebp] - xor eax, ebx - mov ecx, DWORD PTR 76[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 10 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 80[ebp] - xor eax, ebx - mov ecx, DWORD PTR 84[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 11 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 88[ebp] - xor eax, ebx - mov ecx, DWORD PTR 92[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 12 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 96[ebp] - xor eax, ebx - mov ecx, DWORD PTR 100[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 13 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 104[ebp] - xor eax, ebx - mov ecx, DWORD PTR 108[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - ; - ; Round 14 - mov eax, DWORD PTR 32[esp] - mov edx, esi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, esi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 112[ebp] - xor eax, ebx - mov ecx, DWORD PTR 116[ebp] - xor eax, esi - xor edx, esi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor edi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor edi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor edi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor edi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor edi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor edi, ebx - ; - ; Round 15 - mov eax, DWORD PTR 32[esp] - mov edx, edi - shr edx, 16 - mov ecx, DWORD PTR 36[esp] - xor edx, edi - and eax, edx - and edx, ecx - mov ebx, eax - shl ebx, 16 - mov ecx, edx - shl ecx, 16 - xor eax, ebx - xor edx, ecx - mov ebx, DWORD PTR 120[ebp] - xor eax, ebx - mov ecx, DWORD PTR 124[ebp] - xor eax, edi - xor edx, edi - xor edx, ecx - and eax, 0fcfcfcfch - xor ebx, ebx - and edx, 0cfcfcfcfh - xor ecx, ecx - mov bl, al - mov cl, ah - ror edx, 4 - mov ebp, DWORD PTR _des_SPtrans[ebx] - mov bl, dl - xor esi, ebp - mov ebp, DWORD PTR _des_SPtrans[0200h+ecx] - xor esi, ebp - mov cl, dh - shr eax, 16 - mov ebp, DWORD PTR _des_SPtrans[0100h+ebx] - xor esi, ebp - mov bl, ah - shr edx, 16 - mov ebp, DWORD PTR _des_SPtrans[0300h+ecx] - xor esi, ebp - mov ebp, DWORD PTR 28[esp] - mov cl, dh - and eax, 0ffh - and edx, 0ffh - mov ebx, DWORD PTR _des_SPtrans[0600h+ebx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0700h+ecx] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0400h+eax] - xor esi, ebx - mov ebx, DWORD PTR _des_SPtrans[0500h+edx] - xor esi, ebx - mov ebx, DWORD PTR [esp] - mov eax, edi - dec ebx - mov edi, esi - mov esi, eax - mov DWORD PTR [esp],ebx - jnz L000start - ; - ; FP - mov edx, DWORD PTR 24[esp] - ror edi, 1 - mov eax, esi - xor esi, edi - and esi, 0aaaaaaaah - xor eax, esi - xor edi, esi - ; - rol eax, 23 - mov esi, eax - xor eax, edi - and eax, 003fc03fch - xor esi, eax - xor edi, eax - ; - rol esi, 10 - mov eax, esi - xor esi, edi - and esi, 033333333h - xor eax, esi - xor edi, esi - ; - rol edi, 18 - mov esi, edi - xor edi, eax - and edi, 0fff0000fh - xor esi, edi - xor eax, edi - ; - rol esi, 12 - mov edi, esi - xor esi, eax - and esi, 0f0f0f0f0h - xor edi, esi - xor eax, esi - ; - ror eax, 4 - mov DWORD PTR [edx],eax - mov DWORD PTR 4[edx],edi - pop ecx - pop edi - pop esi - pop ebx - pop ebp - ret -_fcrypt_body ENDP -_TEXT ENDS -END diff --git a/crypto/md5/asm/m5-win32.asm b/crypto/md5/asm/m5-win32.asm deleted file mode 100644 index 51f5f17ca3..0000000000 --- a/crypto/md5/asm/m5-win32.asm +++ /dev/null @@ -1,687 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by md5-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE md5-586.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _md5_block_asm_host_order - -_md5_block_asm_host_order PROC NEAR - push esi - push edi - mov edi, DWORD PTR 12[esp] - mov esi, DWORD PTR 16[esp] - mov ecx, DWORD PTR 20[esp] - push ebp - shl ecx, 6 - push ebx - add ecx, esi - sub ecx, 64 - mov eax, DWORD PTR [edi] - push ecx - mov ebx, DWORD PTR 4[edi] - mov ecx, DWORD PTR 8[edi] - mov edx, DWORD PTR 12[edi] -L000start: - ; - ; R0 section - mov edi, ecx - mov ebp, DWORD PTR [esi] - ; R0 0 - xor edi, edx - and edi, ebx - lea eax, DWORD PTR 3614090360[ebp*1+eax] - xor edi, edx - add eax, edi - mov edi, ebx - rol eax, 7 - mov ebp, DWORD PTR 4[esi] - add eax, ebx - ; R0 1 - xor edi, ecx - and edi, eax - lea edx, DWORD PTR 3905402710[ebp*1+edx] - xor edi, ecx - add edx, edi - mov edi, eax - rol edx, 12 - mov ebp, DWORD PTR 8[esi] - add edx, eax - ; R0 2 - xor edi, ebx - and edi, edx - lea ecx, DWORD PTR 606105819[ebp*1+ecx] - xor edi, ebx - add ecx, edi - mov edi, edx - rol ecx, 17 - mov ebp, DWORD PTR 12[esi] - add ecx, edx - ; R0 3 - xor edi, eax - and edi, ecx - lea ebx, DWORD PTR 3250441966[ebp*1+ebx] - xor edi, eax - add ebx, edi - mov edi, ecx - rol ebx, 22 - mov ebp, DWORD PTR 16[esi] - add ebx, ecx - ; R0 4 - xor edi, edx - and edi, ebx - lea eax, DWORD PTR 4118548399[ebp*1+eax] - xor edi, edx - add eax, edi - mov edi, ebx - rol eax, 7 - mov ebp, DWORD PTR 20[esi] - add eax, ebx - ; R0 5 - xor edi, ecx - and edi, eax - lea edx, DWORD PTR 1200080426[ebp*1+edx] - xor edi, ecx - add edx, edi - mov edi, eax - rol edx, 12 - mov ebp, DWORD PTR 24[esi] - add edx, eax - ; R0 6 - xor edi, ebx - and edi, edx - lea ecx, DWORD PTR 2821735955[ebp*1+ecx] - xor edi, ebx - add ecx, edi - mov edi, edx - rol ecx, 17 - mov ebp, DWORD PTR 28[esi] - add ecx, edx - ; R0 7 - xor edi, eax - and edi, ecx - lea ebx, DWORD PTR 4249261313[ebp*1+ebx] - xor edi, eax - add ebx, edi - mov edi, ecx - rol ebx, 22 - mov ebp, DWORD PTR 32[esi] - add ebx, ecx - ; R0 8 - xor edi, edx - and edi, ebx - lea eax, DWORD PTR 1770035416[ebp*1+eax] - xor edi, edx - add eax, edi - mov edi, ebx - rol eax, 7 - mov ebp, DWORD PTR 36[esi] - add eax, ebx - ; R0 9 - xor edi, ecx - and edi, eax - lea edx, DWORD PTR 2336552879[ebp*1+edx] - xor edi, ecx - add edx, edi - mov edi, eax - rol edx, 12 - mov ebp, DWORD PTR 40[esi] - add edx, eax - ; R0 10 - xor edi, ebx - and edi, edx - lea ecx, DWORD PTR 4294925233[ebp*1+ecx] - xor edi, ebx - add ecx, edi - mov edi, edx - rol ecx, 17 - mov ebp, DWORD PTR 44[esi] - add ecx, edx - ; R0 11 - xor edi, eax - and edi, ecx - lea ebx, DWORD PTR 2304563134[ebp*1+ebx] - xor edi, eax - add ebx, edi - mov edi, ecx - rol ebx, 22 - mov ebp, DWORD PTR 48[esi] - add ebx, ecx - ; R0 12 - xor edi, edx - and edi, ebx - lea eax, DWORD PTR 1804603682[ebp*1+eax] - xor edi, edx - add eax, edi - mov edi, ebx - rol eax, 7 - mov ebp, DWORD PTR 52[esi] - add eax, ebx - ; R0 13 - xor edi, ecx - and edi, eax - lea edx, DWORD PTR 4254626195[ebp*1+edx] - xor edi, ecx - add edx, edi - mov edi, eax - rol edx, 12 - mov ebp, DWORD PTR 56[esi] - add edx, eax - ; R0 14 - xor edi, ebx - and edi, edx - lea ecx, DWORD PTR 2792965006[ebp*1+ecx] - xor edi, ebx - add ecx, edi - mov edi, edx - rol ecx, 17 - mov ebp, DWORD PTR 60[esi] - add ecx, edx - ; R0 15 - xor edi, eax - and edi, ecx - lea ebx, DWORD PTR 1236535329[ebp*1+ebx] - xor edi, eax - add ebx, edi - mov edi, ecx - rol ebx, 22 - mov ebp, DWORD PTR 4[esi] - add ebx, ecx - ; - ; R1 section - ; R1 16 - lea eax, DWORD PTR 4129170786[ebp*1+eax] - xor edi, ebx - and edi, edx - mov ebp, DWORD PTR 24[esi] - xor edi, ecx - add eax, edi - mov edi, ebx - rol eax, 5 - add eax, ebx - ; R1 17 - lea edx, DWORD PTR 3225465664[ebp*1+edx] - xor edi, eax - and edi, ecx - mov ebp, DWORD PTR 44[esi] - xor edi, ebx - add edx, edi - mov edi, eax - rol edx, 9 - add edx, eax - ; R1 18 - lea ecx, DWORD PTR 643717713[ebp*1+ecx] - xor edi, edx - and edi, ebx - mov ebp, DWORD PTR [esi] - xor edi, eax - add ecx, edi - mov edi, edx - rol ecx, 14 - add ecx, edx - ; R1 19 - lea ebx, DWORD PTR 3921069994[ebp*1+ebx] - xor edi, ecx - and edi, eax - mov ebp, DWORD PTR 20[esi] - xor edi, edx - add ebx, edi - mov edi, ecx - rol ebx, 20 - add ebx, ecx - ; R1 20 - lea eax, DWORD PTR 3593408605[ebp*1+eax] - xor edi, ebx - and edi, edx - mov ebp, DWORD PTR 40[esi] - xor edi, ecx - add eax, edi - mov edi, ebx - rol eax, 5 - add eax, ebx - ; R1 21 - lea edx, DWORD PTR 38016083[ebp*1+edx] - xor edi, eax - and edi, ecx - mov ebp, DWORD PTR 60[esi] - xor edi, ebx - add edx, edi - mov edi, eax - rol edx, 9 - add edx, eax - ; R1 22 - lea ecx, DWORD PTR 3634488961[ebp*1+ecx] - xor edi, edx - and edi, ebx - mov ebp, DWORD PTR 16[esi] - xor edi, eax - add ecx, edi - mov edi, edx - rol ecx, 14 - add ecx, edx - ; R1 23 - lea ebx, DWORD PTR 3889429448[ebp*1+ebx] - xor edi, ecx - and edi, eax - mov ebp, DWORD PTR 36[esi] - xor edi, edx - add ebx, edi - mov edi, ecx - rol ebx, 20 - add ebx, ecx - ; R1 24 - lea eax, DWORD PTR 568446438[ebp*1+eax] - xor edi, ebx - and edi, edx - mov ebp, DWORD PTR 56[esi] - xor edi, ecx - add eax, edi - mov edi, ebx - rol eax, 5 - add eax, ebx - ; R1 25 - lea edx, DWORD PTR 3275163606[ebp*1+edx] - xor edi, eax - and edi, ecx - mov ebp, DWORD PTR 12[esi] - xor edi, ebx - add edx, edi - mov edi, eax - rol edx, 9 - add edx, eax - ; R1 26 - lea ecx, DWORD PTR 4107603335[ebp*1+ecx] - xor edi, edx - and edi, ebx - mov ebp, DWORD PTR 32[esi] - xor edi, eax - add ecx, edi - mov edi, edx - rol ecx, 14 - add ecx, edx - ; R1 27 - lea ebx, DWORD PTR 1163531501[ebp*1+ebx] - xor edi, ecx - and edi, eax - mov ebp, DWORD PTR 52[esi] - xor edi, edx - add ebx, edi - mov edi, ecx - rol ebx, 20 - add ebx, ecx - ; R1 28 - lea eax, DWORD PTR 2850285829[ebp*1+eax] - xor edi, ebx - and edi, edx - mov ebp, DWORD PTR 8[esi] - xor edi, ecx - add eax, edi - mov edi, ebx - rol eax, 5 - add eax, ebx - ; R1 29 - lea edx, DWORD PTR 4243563512[ebp*1+edx] - xor edi, eax - and edi, ecx - mov ebp, DWORD PTR 28[esi] - xor edi, ebx - add edx, edi - mov edi, eax - rol edx, 9 - add edx, eax - ; R1 30 - lea ecx, DWORD PTR 1735328473[ebp*1+ecx] - xor edi, edx - and edi, ebx - mov ebp, DWORD PTR 48[esi] - xor edi, eax - add ecx, edi - mov edi, edx - rol ecx, 14 - add ecx, edx - ; R1 31 - lea ebx, DWORD PTR 2368359562[ebp*1+ebx] - xor edi, ecx - and edi, eax - mov ebp, DWORD PTR 20[esi] - xor edi, edx - add ebx, edi - mov edi, ecx - rol ebx, 20 - add ebx, ecx - ; - ; R2 section - ; R2 32 - xor edi, edx - xor edi, ebx - lea eax, DWORD PTR 4294588738[ebp*1+eax] - add eax, edi - rol eax, 4 - mov ebp, DWORD PTR 32[esi] - mov edi, ebx - ; R2 33 - lea edx, DWORD PTR 2272392833[ebp*1+edx] - add eax, ebx - xor edi, ecx - xor edi, eax - mov ebp, DWORD PTR 44[esi] - add edx, edi - mov edi, eax - rol edx, 11 - add edx, eax - ; R2 34 - xor edi, ebx - xor edi, edx - lea ecx, DWORD PTR 1839030562[ebp*1+ecx] - add ecx, edi - rol ecx, 16 - mov ebp, DWORD PTR 56[esi] - mov edi, edx - ; R2 35 - lea ebx, DWORD PTR 4259657740[ebp*1+ebx] - add ecx, edx - xor edi, eax - xor edi, ecx - mov ebp, DWORD PTR 4[esi] - add ebx, edi - mov edi, ecx - rol ebx, 23 - add ebx, ecx - ; R2 36 - xor edi, edx - xor edi, ebx - lea eax, DWORD PTR 2763975236[ebp*1+eax] - add eax, edi - rol eax, 4 - mov ebp, DWORD PTR 16[esi] - mov edi, ebx - ; R2 37 - lea edx, DWORD PTR 1272893353[ebp*1+edx] - add eax, ebx - xor edi, ecx - xor edi, eax - mov ebp, DWORD PTR 28[esi] - add edx, edi - mov edi, eax - rol edx, 11 - add edx, eax - ; R2 38 - xor edi, ebx - xor edi, edx - lea ecx, DWORD PTR 4139469664[ebp*1+ecx] - add ecx, edi - rol ecx, 16 - mov ebp, DWORD PTR 40[esi] - mov edi, edx - ; R2 39 - lea ebx, DWORD PTR 3200236656[ebp*1+ebx] - add ecx, edx - xor edi, eax - xor edi, ecx - mov ebp, DWORD PTR 52[esi] - add ebx, edi - mov edi, ecx - rol ebx, 23 - add ebx, ecx - ; R2 40 - xor edi, edx - xor edi, ebx - lea eax, DWORD PTR 681279174[ebp*1+eax] - add eax, edi - rol eax, 4 - mov ebp, DWORD PTR [esi] - mov edi, ebx - ; R2 41 - lea edx, DWORD PTR 3936430074[ebp*1+edx] - add eax, ebx - xor edi, ecx - xor edi, eax - mov ebp, DWORD PTR 12[esi] - add edx, edi - mov edi, eax - rol edx, 11 - add edx, eax - ; R2 42 - xor edi, ebx - xor edi, edx - lea ecx, DWORD PTR 3572445317[ebp*1+ecx] - add ecx, edi - rol ecx, 16 - mov ebp, DWORD PTR 24[esi] - mov edi, edx - ; R2 43 - lea ebx, DWORD PTR 76029189[ebp*1+ebx] - add ecx, edx - xor edi, eax - xor edi, ecx - mov ebp, DWORD PTR 36[esi] - add ebx, edi - mov edi, ecx - rol ebx, 23 - add ebx, ecx - ; R2 44 - xor edi, edx - xor edi, ebx - lea eax, DWORD PTR 3654602809[ebp*1+eax] - add eax, edi - rol eax, 4 - mov ebp, DWORD PTR 48[esi] - mov edi, ebx - ; R2 45 - lea edx, DWORD PTR 3873151461[ebp*1+edx] - add eax, ebx - xor edi, ecx - xor edi, eax - mov ebp, DWORD PTR 60[esi] - add edx, edi - mov edi, eax - rol edx, 11 - add edx, eax - ; R2 46 - xor edi, ebx - xor edi, edx - lea ecx, DWORD PTR 530742520[ebp*1+ecx] - add ecx, edi - rol ecx, 16 - mov ebp, DWORD PTR 8[esi] - mov edi, edx - ; R2 47 - lea ebx, DWORD PTR 3299628645[ebp*1+ebx] - add ecx, edx - xor edi, eax - xor edi, ecx - mov ebp, DWORD PTR [esi] - add ebx, edi - mov edi, -1 - rol ebx, 23 - add ebx, ecx - ; - ; R3 section - ; R3 48 - xor edi, edx - or edi, ebx - lea eax, DWORD PTR 4096336452[ebp*1+eax] - xor edi, ecx - mov ebp, DWORD PTR 28[esi] - add eax, edi - mov edi, -1 - rol eax, 6 - xor edi, ecx - add eax, ebx - ; R3 49 - or edi, eax - lea edx, DWORD PTR 1126891415[ebp*1+edx] - xor edi, ebx - mov ebp, DWORD PTR 56[esi] - add edx, edi - mov edi, -1 - rol edx, 10 - xor edi, ebx - add edx, eax - ; R3 50 - or edi, edx - lea ecx, DWORD PTR 2878612391[ebp*1+ecx] - xor edi, eax - mov ebp, DWORD PTR 20[esi] - add ecx, edi - mov edi, -1 - rol ecx, 15 - xor edi, eax - add ecx, edx - ; R3 51 - or edi, ecx - lea ebx, DWORD PTR 4237533241[ebp*1+ebx] - xor edi, edx - mov ebp, DWORD PTR 48[esi] - add ebx, edi - mov edi, -1 - rol ebx, 21 - xor edi, edx - add ebx, ecx - ; R3 52 - or edi, ebx - lea eax, DWORD PTR 1700485571[ebp*1+eax] - xor edi, ecx - mov ebp, DWORD PTR 12[esi] - add eax, edi - mov edi, -1 - rol eax, 6 - xor edi, ecx - add eax, ebx - ; R3 53 - or edi, eax - lea edx, DWORD PTR 2399980690[ebp*1+edx] - xor edi, ebx - mov ebp, DWORD PTR 40[esi] - add edx, edi - mov edi, -1 - rol edx, 10 - xor edi, ebx - add edx, eax - ; R3 54 - or edi, edx - lea ecx, DWORD PTR 4293915773[ebp*1+ecx] - xor edi, eax - mov ebp, DWORD PTR 4[esi] - add ecx, edi - mov edi, -1 - rol ecx, 15 - xor edi, eax - add ecx, edx - ; R3 55 - or edi, ecx - lea ebx, DWORD PTR 2240044497[ebp*1+ebx] - xor edi, edx - mov ebp, DWORD PTR 32[esi] - add ebx, edi - mov edi, -1 - rol ebx, 21 - xor edi, edx - add ebx, ecx - ; R3 56 - or edi, ebx - lea eax, DWORD PTR 1873313359[ebp*1+eax] - xor edi, ecx - mov ebp, DWORD PTR 60[esi] - add eax, edi - mov edi, -1 - rol eax, 6 - xor edi, ecx - add eax, ebx - ; R3 57 - or edi, eax - lea edx, DWORD PTR 4264355552[ebp*1+edx] - xor edi, ebx - mov ebp, DWORD PTR 24[esi] - add edx, edi - mov edi, -1 - rol edx, 10 - xor edi, ebx - add edx, eax - ; R3 58 - or edi, edx - lea ecx, DWORD PTR 2734768916[ebp*1+ecx] - xor edi, eax - mov ebp, DWORD PTR 52[esi] - add ecx, edi - mov edi, -1 - rol ecx, 15 - xor edi, eax - add ecx, edx - ; R3 59 - or edi, ecx - lea ebx, DWORD PTR 1309151649[ebp*1+ebx] - xor edi, edx - mov ebp, DWORD PTR 16[esi] - add ebx, edi - mov edi, -1 - rol ebx, 21 - xor edi, edx - add ebx, ecx - ; R3 60 - or edi, ebx - lea eax, DWORD PTR 4149444226[ebp*1+eax] - xor edi, ecx - mov ebp, DWORD PTR 44[esi] - add eax, edi - mov edi, -1 - rol eax, 6 - xor edi, ecx - add eax, ebx - ; R3 61 - or edi, eax - lea edx, DWORD PTR 3174756917[ebp*1+edx] - xor edi, ebx - mov ebp, DWORD PTR 8[esi] - add edx, edi - mov edi, -1 - rol edx, 10 - xor edi, ebx - add edx, eax - ; R3 62 - or edi, edx - lea ecx, DWORD PTR 718787259[ebp*1+ecx] - xor edi, eax - mov ebp, DWORD PTR 36[esi] - add ecx, edi - mov edi, -1 - rol ecx, 15 - xor edi, eax - add ecx, edx - ; R3 63 - or edi, ecx - lea ebx, DWORD PTR 3951481745[ebp*1+ebx] - xor edi, edx - mov ebp, DWORD PTR 24[esp] - add ebx, edi - add esi, 64 - rol ebx, 21 - mov edi, DWORD PTR [ebp] - add ebx, ecx - add eax, edi - mov edi, DWORD PTR 4[ebp] - add ebx, edi - mov edi, DWORD PTR 8[ebp] - add ecx, edi - mov edi, DWORD PTR 12[ebp] - add edx, edi - mov DWORD PTR [ebp],eax - mov DWORD PTR 4[ebp],ebx - mov edi, DWORD PTR [esp] - mov DWORD PTR 8[ebp],ecx - mov DWORD PTR 12[ebp],edx - cmp edi, esi - jge L000start - pop eax - pop ebx - pop ebp - pop edi - pop esi - ret -_md5_block_asm_host_order ENDP -_TEXT ENDS -END diff --git a/crypto/rc4/asm/r4-win32.asm b/crypto/rc4/asm/r4-win32.asm deleted file mode 100644 index 70b0f7484c..0000000000 --- a/crypto/rc4/asm/r4-win32.asm +++ /dev/null @@ -1,314 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by rc4-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE rc4-586.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _RC4 - -_RC4 PROC NEAR - ; - push ebp - push ebx - mov ebp, DWORD PTR 12[esp] - mov ebx, DWORD PTR 16[esp] - push esi - push edi - mov ecx, DWORD PTR [ebp] - mov edx, DWORD PTR 4[ebp] - mov esi, DWORD PTR 28[esp] - inc ecx - sub esp, 12 - add ebp, 8 - and ecx, 255 - lea ebx, DWORD PTR [esi+ebx-8] - mov edi, DWORD PTR 44[esp] - mov DWORD PTR 8[esp],ebx - mov eax, DWORD PTR [ecx*4+ebp] - cmp ebx, esi - jl $L000end -L001start: - add esi, 8 - ; Round 0 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR [esp], bl - ; Round 1 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR 1[esp],bl - ; Round 2 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR 2[esp],bl - ; Round 3 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR 3[esp],bl - ; Round 4 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR 4[esp],bl - ; Round 5 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR 5[esp],bl - ; Round 6 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov BYTE PTR 6[esp],bl - ; Round 7 - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - add edi, 8 - mov BYTE PTR 7[esp],bl - ; apply the cipher text - mov eax, DWORD PTR [esp] - mov ebx, DWORD PTR [esi-8] - xor eax, ebx - mov ebx, DWORD PTR [esi-4] - mov DWORD PTR [edi-8],eax - mov eax, DWORD PTR 4[esp] - xor eax, ebx - mov ebx, DWORD PTR 8[esp] - mov DWORD PTR [edi-4],eax - mov eax, DWORD PTR [ecx*4+ebp] - cmp esi, ebx - jle L001start -$L000end: - ; Round 0 - add ebx, 8 - inc esi - cmp ebx, esi - jl $L002finished - mov DWORD PTR 8[esp],ebx - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR [edi], bl - ; Round 1 - mov ebx, DWORD PTR 8[esp] - cmp ebx, esi - jle $L002finished - inc esi - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR 1[edi],bl - ; Round 2 - mov ebx, DWORD PTR 8[esp] - cmp ebx, esi - jle $L002finished - inc esi - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR 2[edi],bl - ; Round 3 - mov ebx, DWORD PTR 8[esp] - cmp ebx, esi - jle $L002finished - inc esi - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR 3[edi],bl - ; Round 4 - mov ebx, DWORD PTR 8[esp] - cmp ebx, esi - jle $L002finished - inc esi - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR 4[edi],bl - ; Round 5 - mov ebx, DWORD PTR 8[esp] - cmp ebx, esi - jle $L002finished - inc esi - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov eax, DWORD PTR [ecx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR 5[edi],bl - ; Round 6 - mov ebx, DWORD PTR 8[esp] - cmp ebx, esi - jle $L002finished - inc esi - add edx, eax - and edx, 255 - inc ecx - mov ebx, DWORD PTR [edx*4+ebp] - mov DWORD PTR [ecx*4+ebp-4],ebx - add ebx, eax - and ecx, 255 - and ebx, 255 - mov DWORD PTR [edx*4+ebp],eax - nop - mov ebx, DWORD PTR [ebx*4+ebp] - mov bh, BYTE PTR [esi-1] - xor bl, bh - mov BYTE PTR 6[edi],bl -$L002finished: - dec ecx - add esp, 12 - mov DWORD PTR [ebp-4],edx - mov BYTE PTR [ebp-8],cl - pop edi - pop esi - pop ebx - pop ebp - ret -_RC4 ENDP -_TEXT ENDS -END diff --git a/crypto/rc5/asm/r5-win32.asm b/crypto/rc5/asm/r5-win32.asm deleted file mode 100644 index f43d3711f0..0000000000 --- a/crypto/rc5/asm/r5-win32.asm +++ /dev/null @@ -1,574 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by rc5-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE rc5-586.asm - .386 -.model FLAT -_TEXT SEGMENT -PUBLIC _RC5_32_encrypt - -_RC5_32_encrypt PROC NEAR - ; - push ebp - push esi - push edi - mov edx, DWORD PTR 16[esp] - mov ebp, DWORD PTR 20[esp] - ; Load the 2 words - mov edi, DWORD PTR [edx] - mov esi, DWORD PTR 4[edx] - push ebx - mov ebx, DWORD PTR [ebp] - add edi, DWORD PTR 4[ebp] - add esi, DWORD PTR 8[ebp] - xor edi, esi - mov eax, DWORD PTR 12[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 16[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 20[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 24[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 28[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 32[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 36[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 40[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 44[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 48[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 52[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 56[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 60[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 64[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 68[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 72[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - cmp ebx, 8 - je $L000rc5_exit - xor edi, esi - mov eax, DWORD PTR 76[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 80[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 84[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 88[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 92[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 96[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 100[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 104[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - cmp ebx, 12 - je $L000rc5_exit - xor edi, esi - mov eax, DWORD PTR 108[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 112[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 116[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 120[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 124[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 128[ebp] - mov ecx, edi - rol esi, cl - add esi, eax - xor edi, esi - mov eax, DWORD PTR 132[ebp] - mov ecx, esi - rol edi, cl - add edi, eax - xor esi, edi - mov eax, DWORD PTR 136[ebp] - mov ecx, edi - rol esi, cl - add esi, eax -$L000rc5_exit: - mov DWORD PTR [edx],edi - mov DWORD PTR 4[edx],esi - pop ebx - pop edi - pop esi - pop ebp - ret -_RC5_32_encrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _RC5_32_decrypt - -_RC5_32_decrypt PROC NEAR - ; - push ebp - push esi - push edi - mov edx, DWORD PTR 16[esp] - mov ebp, DWORD PTR 20[esp] - ; Load the 2 words - mov edi, DWORD PTR [edx] - mov esi, DWORD PTR 4[edx] - push ebx - mov ebx, DWORD PTR [ebp] - cmp ebx, 12 - je $L001rc5_dec_12 - cmp ebx, 8 - je $L002rc5_dec_8 - mov eax, DWORD PTR 136[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 132[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 128[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 124[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 120[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 116[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 112[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 108[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi -$L001rc5_dec_12: - mov eax, DWORD PTR 104[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 100[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 96[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 92[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 88[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 84[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 80[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 76[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi -$L002rc5_dec_8: - mov eax, DWORD PTR 72[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 68[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 64[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 60[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 56[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 52[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 48[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 44[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 40[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 36[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 32[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 28[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 24[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 20[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - mov eax, DWORD PTR 16[ebp] - sub esi, eax - mov ecx, edi - ror esi, cl - xor esi, edi - mov eax, DWORD PTR 12[ebp] - sub edi, eax - mov ecx, esi - ror edi, cl - xor edi, esi - sub esi, DWORD PTR 8[ebp] - sub edi, DWORD PTR 4[ebp] -L003rc5_exit: - mov DWORD PTR [edx],edi - mov DWORD PTR 4[edx],esi - pop ebx - pop edi - pop esi - pop ebp - ret -_RC5_32_decrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _RC5_32_cbc_encrypt - -_RC5_32_cbc_encrypt PROC NEAR - ; - push ebp - push ebx - push esi - push edi - mov ebp, DWORD PTR 28[esp] - ; getting iv ptr from parameter 4 - mov ebx, DWORD PTR 36[esp] - mov esi, DWORD PTR [ebx] - mov edi, DWORD PTR 4[ebx] - push edi - push esi - push edi - push esi - mov ebx, esp - mov esi, DWORD PTR 36[esp] - mov edi, DWORD PTR 40[esp] - ; getting encrypt flag from parameter 5 - mov ecx, DWORD PTR 56[esp] - ; get and push parameter 3 - mov eax, DWORD PTR 48[esp] - push eax - push ebx - cmp ecx, 0 - jz $L004decrypt - and ebp, 4294967288 - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - jz $L005encrypt_finish -L006encrypt_loop: - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR 4[esi] - xor eax, ecx - xor ebx, edx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _RC5_32_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L006encrypt_loop -$L005encrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L007finish - xor ecx, ecx - xor edx, edx - mov ebp, DWORD PTR $L008cbc_enc_jmp_table[ebp*4] - jmp ebp -L009ej7: - mov dh, BYTE PTR 6[esi] - shl edx, 8 -L010ej6: - mov dh, BYTE PTR 5[esi] -L011ej5: - mov dl, BYTE PTR 4[esi] -L012ej4: - mov ecx, DWORD PTR [esi] - jmp $L013ejend -L014ej3: - mov ch, BYTE PTR 2[esi] - shl ecx, 8 -L015ej2: - mov ch, BYTE PTR 1[esi] -L016ej1: - mov cl, BYTE PTR [esi] -$L013ejend: - xor eax, ecx - xor ebx, edx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _RC5_32_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - jmp $L007finish -$L004decrypt: - and ebp, 4294967288 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - jz $L017decrypt_finish -L018decrypt_loop: - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _RC5_32_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR [edi],ecx - mov DWORD PTR 4[edi],edx - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L018decrypt_loop -$L017decrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L007finish - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _RC5_32_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] -L019dj7: - ror edx, 16 - mov BYTE PTR 6[edi],dl - shr edx, 16 -L020dj6: - mov BYTE PTR 5[edi],dh -L021dj5: - mov BYTE PTR 4[edi],dl -L022dj4: - mov DWORD PTR [edi],ecx - jmp $L023djend -L024dj3: - ror ecx, 16 - mov BYTE PTR 2[edi],cl - shl ecx, 16 -L025dj2: - mov BYTE PTR 1[esi],ch -L026dj1: - mov BYTE PTR [esi], cl -$L023djend: - jmp $L007finish -$L007finish: - mov ecx, DWORD PTR 60[esp] - add esp, 24 - mov DWORD PTR [ecx],eax - mov DWORD PTR 4[ecx],ebx - pop edi - pop esi - pop ebx - pop ebp - ret -$L008cbc_enc_jmp_table: - DD 0 - DD L016ej1 - DD L015ej2 - DD L014ej3 - DD L012ej4 - DD L011ej5 - DD L010ej6 - DD L009ej7 -L027cbc_dec_jmp_table: - DD 0 - DD L026dj1 - DD L025dj2 - DD L024dj3 - DD L022dj4 - DD L021dj5 - DD L020dj6 - DD L019dj7 -_RC5_32_cbc_encrypt ENDP -_TEXT ENDS -END diff --git a/crypto/ripemd/asm/rm-win32.asm b/crypto/ripemd/asm/rm-win32.asm deleted file mode 100644 index f07d517857..0000000000 --- a/crypto/ripemd/asm/rm-win32.asm +++ /dev/null @@ -1,1973 +0,0 @@ - ; 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 - ; eric - ; - 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/sha/asm/s1-win32.asm b/crypto/sha/asm/s1-win32.asm deleted file mode 100644 index 699afdb022..0000000000 --- a/crypto/sha/asm/s1-win32.asm +++ /dev/null @@ -1,1716 +0,0 @@ - ; 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 - ; - 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