📄 win32.asm
字号:
; Don't even think of reading this code ; It was automatically generated by bf586.pl ; Which is a perl program used to generate the x86 assember for ; any of elf, a.out, Win32, or Solaris ; It can be found in SSLeay 0.7.0+ ; eric <eay@cryptsoft.com> ; TITLE bfx86xxxx.asm .386.model FLAT_TEXT SEGMENTPUBLIC _BF_encryptEXTRN _des_SPtrans:DWORD_BF_encrypt PROC NEAR push ebp push ebx push esi push edi ; ; Load the 2 words mov eax, DWORD PTR 20[esp] mov ecx, DWORD PTR [eax] mov edx, DWORD PTR 4[eax] ; ; P pointer, s and enc flag mov edi, DWORD PTR 24[esp] xor eax, eax xor ebx, ebx mov ebp, DWORD PTR 28[esp] cmp ebp, 0 je $L000start_decrypt xor ecx, DWORD PTR [edi] ; ; Round 0 ror ecx, 16 mov esi, DWORD PTR 4[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 1 ror edx, 16 mov esi, DWORD PTR 8[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 2 ror ecx, 16 mov esi, DWORD PTR 12[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 3 ror edx, 16 mov esi, DWORD PTR 16[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 4 ror ecx, 16 mov esi, DWORD PTR 20[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 5 ror edx, 16 mov esi, DWORD PTR 24[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 6 ror ecx, 16 mov esi, DWORD PTR 28[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 7 ror edx, 16 mov esi, DWORD PTR 32[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 8 ror ecx, 16 mov esi, DWORD PTR 36[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 9 ror edx, 16 mov esi, DWORD PTR 40[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 10 ror ecx, 16 mov esi, DWORD PTR 44[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 11 ror edx, 16 mov esi, DWORD PTR 48[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 12 ror ecx, 16 mov esi, DWORD PTR 52[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 13 ror edx, 16 mov esi, DWORD PTR 56[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 14 ror ecx, 16 mov esi, DWORD PTR 60[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 15 ror edx, 16 mov esi, DWORD PTR 64[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi xor edx, DWORD PTR 68[edi] mov eax, DWORD PTR 20[esp] mov DWORD PTR [eax],edx mov DWORD PTR 4[eax],ecx pop edi pop esi pop ebx pop ebp ret$L000start_decrypt: xor ecx, DWORD PTR 68[edi] ; ; Round 16 ror ecx, 16 mov esi, DWORD PTR 64[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 15 ror edx, 16 mov esi, DWORD PTR 60[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 14 ror ecx, 16 mov esi, DWORD PTR 56[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 13 ror edx, 16 mov esi, DWORD PTR 52[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 12 ror ecx, 16 mov esi, DWORD PTR 48[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 11 ror edx, 16 mov esi, DWORD PTR 44[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 10 ror ecx, 16 mov esi, DWORD PTR 40[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 9 ror edx, 16 mov esi, DWORD PTR 36[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 8 ror ecx, 16 mov esi, DWORD PTR 32[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 7 ror edx, 16 mov esi, DWORD PTR 28[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 6 ror ecx, 16 mov esi, DWORD PTR 24[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 5 ror edx, 16 mov esi, DWORD PTR 20[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 4 ror ecx, 16 mov esi, DWORD PTR 16[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 3 ror edx, 16 mov esi, DWORD PTR 12[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi ; ; Round 2 ror ecx, 16 mov esi, DWORD PTR 8[edi] mov al, ch mov bl, cl ror ecx, 16 xor edx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, ch mov bl, cl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor edx, esi ; ; Round 1 ror edx, 16 mov esi, DWORD PTR 4[edi] mov al, dh mov bl, dl ror edx, 16 xor ecx, esi mov esi, DWORD PTR 72[eax*4+edi] mov ebp, DWORD PTR 1096[ebx*4+edi] mov al, dh mov bl, dl add esi, ebp mov eax, DWORD PTR 2120[eax*4+edi] xor esi, eax mov ebp, DWORD PTR 3144[ebx*4+edi] add esi, ebp xor eax, eax xor ecx, esi xor edx, DWORD PTR [edi] mov eax, DWORD PTR 20[esp] mov DWORD PTR [eax],edx mov DWORD PTR 4[eax],ecx pop edi pop esi pop ebx pop ebp ret_BF_encrypt ENDP_TEXT ENDSEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -