diff options
author | Bodo Möller <bodo@openssl.org> | 2000-03-13 08:04:20 +0000 |
---|---|---|
committer | Bodo Möller <bodo@openssl.org> | 2000-03-13 08:04:20 +0000 |
commit | 88f17a5e989b1ba64a9ea3b1cc80eaef2aa266f9 (patch) | |
tree | c2423de96cb66fe274e1a580819ed25c176fc62e /crypto/des | |
parent | 863fe2ecac0a86475900655899ea78b472941e52 (diff) | |
download | openssl-new-88f17a5e989b1ba64a9ea3b1cc80eaef2aa266f9.tar.gz |
Remove Win32 assembler files. They are always rebuilt (with some
choice of parameters) when they are needed.
Diffstat (limited to 'crypto/des')
-rw-r--r-- | crypto/des/asm/d-win32.asm | 3132 | ||||
-rw-r--r-- | crypto/des/asm/y-win32.asm | 929 |
2 files changed, 0 insertions, 4061 deletions
diff --git a/crypto/des/asm/d-win32.asm b/crypto/des/asm/d-win32.asm deleted file mode 100644 index 9e3dc9cd87..0000000000 --- a/crypto/des/asm/d-win32.asm +++ /dev/null @@ -1,3132 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by des-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric <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 index af5c102422..0000000000 --- a/crypto/des/asm/y-win32.asm +++ /dev/null @@ -1,929 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by crypt586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric <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 |