Function at 0x401490
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
push edi
mov edi, eax
xor edx, edx
xor eax, eax
push ebx
movzx ecx, byte [eax + str.80_]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x60ac60], bl
mov ecx, edx
setne cl
mov dword [ebp + eax*4 - 0x1cc], ecx
movzx ecx, byte [eax + 0x60abf9]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x60ac60], bl
mov ecx, edx
setne cl
mov dword [ebp + eax*4 - 0x1c8], ecx
movzx ecx, byte [eax + 0x60abfa]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x60ac60], bl
mov ecx, edx
setne cl
mov dword [ebp + eax*4 - 0x1c4], ecx
movzx ecx, byte [eax + 0x60abfb]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x60ac60], bl
mov ecx, edx
setne cl
add eax, 4
mov dword [ebp + eax*4 - 0x1d0], ecx
cmp eax, 0x38
jl 0x4014a1
lea eax, [esi + 0x78]
mov dword [ebp - 8], edx
mov ecx, 0x1e
mov dword [ebp - 0xc], eax
pop ebx
mov dword [eax + 4], edx
mov dword [eax], edx
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x60ac70]
lea edi, [eax + 2]
mov dword [ebp - 4], edi
lea eax, [ebp + eax*4 - 0x234]
mov edi, dword [ebp - 4]
add edi, 0xfffffffe
cmp edi, 0x1c
jge 0x401580
mov edi, dword [eax + 0x68]
jmp 0x401583
mov edi, dword [eax - 8]
mov dword [ebp + edx*4 - 0xec], edi
mov edi, dword [ebp - 4]
dec edi
cmp edi, 0x1c
jge 0x401598
mov edi, dword [eax + 0x6c]
jmp 0x40159b
mov edi, dword [eax - 4]
cmp dword [ebp - 4], 0x1c
mov dword [ebp + edx*4 - 0xe8], edi
jge 0x4015ad
mov edi, dword [eax + 0x70]
jmp 0x4015af
mov edi, dword [eax]
mov dword [ebp + edx*4 - 0xe4], edi
mov edi, dword [ebp - 4]
inc edi
cmp edi, 0x1c
jge 0x4015c4
mov edi, dword [eax + 0x74]
jmp 0x4015c7
mov edi, dword [eax + 4]
add dword [ebp - 4], 4
mov dword [ebp + edx*4 - 0xe0], edi
add edx, 4
add eax, 0x10
cmp edx, 0x1c
jl 0x401570
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x60ac70]
lea edi, [eax + 0x1e]
mov edx, 0x1c
mov dword [ebp - 4], edi
lea eax, [ebp + eax*4 - 0x1c4]
lea esp, [esp]
mov edi, dword [ebp - 4]
add edi, 0xfffffffe
cmp edi, 0x38
jge 0x401610
mov edi, dword [eax + 0x68]
jmp 0x401613
mov edi, dword [eax - 8]
mov dword [ebp + edx*4 - 0xec], edi
mov edi, dword [ebp - 4]
dec edi
cmp edi, 0x38
jge 0x401628
mov edi, dword [eax + 0x6c]
jmp 0x40162b
mov edi, dword [eax - 4]
cmp dword [ebp - 4], 0x38
mov dword [ebp + edx*4 - 0xe8], edi
jge 0x40163d
mov edi, dword [eax + 0x70]
jmp 0x40163f
mov edi, dword [eax]
mov dword [ebp + edx*4 - 0xe4], edi
mov edi, dword [ebp - 4]
inc edi
cmp edi, 0x38
jge 0x401654
mov edi, dword [eax + 0x74]
jmp 0x401657
mov edi, dword [eax + 4]
add dword [ebp - 4], 4
mov dword [ebp + edx*4 - 0xe0], edi
add edx, 4
add eax, 0x10
cmp edx, 0x38
jl 0x401600
xor edx, edx
xor eax, eax
jmp 0x401680
movzx edi, byte [eax + 0x60ac30]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x40169a
mov edi, dword [eax*4 + 0x60ac80]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x60ac48]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x4016b5
mov edi, dword [eax*4 + 0x60ac80]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x60ac31]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x4016cf
mov edi, dword [eax*4 + 0x60ac84]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x60ac49]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x4016ea
mov edi, dword [eax*4 + 0x60ac84]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x60ac32]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x401704
mov edi, dword [eax*4 + 0x60ac88]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x60ac4a]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x40171f
mov edi, dword [eax*4 + 0x60ac88]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x60ac33]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x401739
mov edi, dword [eax*4 + 0x60ac8c]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x60ac4b]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x401754
mov edi, dword [eax*4 + 0x60ac8c]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x60ac34]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x40176e
mov edi, dword [eax*4 + 0x60ac90]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x60ac4c]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x401789
mov edi, dword [eax*4 + 0x60ac90]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x60ac35]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x4017a3
mov edi, dword [eax*4 + 0x60ac94]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x60ac4d]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x4017be
mov edi, dword [eax*4 + 0x60ac94]
or dword [esi + ecx*4 + 4], edi
add eax, 6
cmp eax, 0x18
jl 0x401680
mov eax, dword [ebp - 0xc]
inc dword [ebp - 8]
sub eax, 8
sub ecx, 2
mov dword [ebp - 0xc], eax
cmp ecx, 0xfffffffe
jg 0x401554
pop edi
mov esp, ebp
pop ebp
ret