; 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,