From 88f17a5e989b1ba64a9ea3b1cc80eaef2aa266f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodo=20M=C3=B6ller?= Date: Mon, 13 Mar 2000 08:04:20 +0000 Subject: Remove Win32 assembler files. They are always rebuilt (with some choice of parameters) when they are needed. --- crypto/bf/asm/b-win32.asm | 906 ------------ crypto/bn/asm/bn-win32.asm | 2122 --------------------------- crypto/bn/asm/x86w16.asm | 297 ---- crypto/bn/asm/x86w32.asm | 360 ----- crypto/cast/asm/c-win32.asm | 953 ------------ crypto/des/asm/d-win32.asm | 3132 ---------------------------------------- crypto/des/asm/y-win32.asm | 929 ------------ crypto/md5/asm/m5-win32.asm | 687 --------- crypto/rc4/asm/r4-win32.asm | 314 ---- crypto/rc5/asm/r5-win32.asm | 574 -------- crypto/ripemd/asm/rm-win32.asm | 1973 ------------------------- crypto/sha/asm/s1-win32.asm | 1716 ---------------------- 12 files changed, 13963 deletions(-) delete mode 100644 crypto/bf/asm/b-win32.asm delete mode 100644 crypto/bn/asm/bn-win32.asm delete mode 100644 crypto/bn/asm/x86w16.asm delete mode 100644 crypto/bn/asm/x86w32.asm delete mode 100644 crypto/cast/asm/c-win32.asm delete mode 100644 crypto/des/asm/d-win32.asm delete mode 100644 crypto/des/asm/y-win32.asm delete mode 100644 crypto/md5/asm/m5-win32.asm delete mode 100644 crypto/rc4/asm/r4-win32.asm delete mode 100644 crypto/rc5/asm/r5-win32.asm delete mode 100644 crypto/ripemd/asm/rm-win32.asm delete mode 100644 crypto/sha/asm/s1-win32.asm 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 Al