📄 d-win32.asm
字号:
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 SEGMENTPUBLIC _des_encrypt2EXTRN _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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -