📄 d-win32.asm
字号:
; 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, gaswin (for GNU as on Win32) or Solaris ; eric <eay@cryptsoft.com> ; segment .textextern _des_SPtransglobal _des_encrypt1_des_encrypt1: push esi push edi ; ; Load the 2 words mov esi, [12+esp] xor ecx, ecx push ebx push ebp mov eax, [esi] mov ebx, [28+esp] mov edi, [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, [24+esp] cmp ebx, 0 je NEAR $L000start_decrypt ; ; Round 0 mov eax, [ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 1 mov eax, [8+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 2 mov eax, [16+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 3 mov eax, [24+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 4 mov eax, [32+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 5 mov eax, [40+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 6 mov eax, [48+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 7 mov eax, [56+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 8 mov eax, [64+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 9 mov eax, [72+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 10 mov eax, [80+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 11 mov eax, [88+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 12 mov eax, [96+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 13 mov eax, [104+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 14 mov eax, [112+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 15 mov eax, [120+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx jmp $L001end$L000start_decrypt: ; ; Round 15 mov eax, [120+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 14 mov eax, [112+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor esi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor esi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor esi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor esi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor esi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor esi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor esi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor esi, ebx ; ; Round 13 mov eax, [104+ebp] xor ebx, ebx mov edx, [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, [_des_SPtrans+ebx] mov bl, dl xor edi, ebp mov ebp, [_des_SPtrans+0200h+ecx] xor edi, ebp mov cl, dh shr eax, 16 mov ebp, [_des_SPtrans+0100h+ebx] xor edi, ebp mov bl, ah shr edx, 16 mov ebp, [_des_SPtrans+0300h+ecx] xor edi, ebp mov ebp, [24+esp] mov cl, dh and eax, 0ffh and edx, 0ffh mov ebx, [_des_SPtrans+0600h+ebx] xor edi, ebx mov ebx, [_des_SPtrans+0700h+ecx] xor edi, ebx mov ebx, [_des_SPtrans+0400h+eax] xor edi, ebx mov ebx, [_des_SPtrans+0500h+edx] xor edi, ebx ; ; Round 12 mov eax, [96+ebp] xor ebx, ebx mov edx, [100+ebp] xor eax, edi xor edx, edi and eax, 0fcfcfcfch and edx, 0cfcfcfcfh mov bl, al
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -