Remove Win32 assembler files. They are always rebuilt (with some
authorBodo Möller <bodo@openssl.org>
Mon, 13 Mar 2000 08:04:20 +0000 (08:04 +0000)
committerBodo Möller <bodo@openssl.org>
Mon, 13 Mar 2000 08:04:20 +0000 (08:04 +0000)
choice of parameters) when they are needed.

12 files changed:
crypto/bf/asm/b-win32.asm [deleted file]
crypto/bn/asm/bn-win32.asm [deleted file]
crypto/bn/asm/x86w16.asm [deleted file]
crypto/bn/asm/x86w32.asm [deleted file]
crypto/cast/asm/c-win32.asm [deleted file]
crypto/des/asm/d-win32.asm [deleted file]
crypto/des/asm/y-win32.asm [deleted file]
crypto/md5/asm/m5-win32.asm [deleted file]
crypto/rc4/asm/r4-win32.asm [deleted file]
crypto/rc5/asm/r5-win32.asm [deleted file]
crypto/ripemd/asm/rm-win32.asm [deleted file]
crypto/sha/asm/s1-win32.asm [deleted file]

diff --git a/crypto/bf/asm/b-win32.asm b/crypto/bf/asm/b-win32.asm
deleted file mode 100644 (file)
index 138c99d..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index 871bd88..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index 80a9ed6..0000000
+++ /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 (file)
index 957d71e..0000000
+++ /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 (file)
index ba78a3c..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index 9e3dc9c..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index af5c102..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index 51f5f17..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index 70b0f74..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index f43d371..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index f07d517..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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 (file)
index 699afdb..0000000
+++ /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 <eay@cryptsoft.com>
-       ; 
-       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