Function at 0x404740
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0xf4
push ebx
push ebp
push esi
mov esi, eax
push edi
xor eax, eax
mov edi, edi
movzx ecx, byte [eax + str.80_]
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4190d8]
and ecx, edx
cmp ecx, edx
movzx ecx, byte [eax + 0x419159]
sete dl
mov byte [esp + eax + 0x4c], dl
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4190d8]
and ecx, edx
cmp ecx, edx
movzx ecx, byte [eax + 0x41915a]
sete dl
mov byte [esp + eax + 0x4d], dl
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4190d8]
and ecx, edx
cmp ecx, edx
movzx ecx, byte [eax + 0x41915b]
sete dl
mov byte [esp + eax + 0x4e], dl
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4190d8]
and ecx, edx
cmp ecx, edx
sete dl
mov byte [esp + eax + 0x4f], dl
add eax, 4
cmp eax, 0x38
jb 0x404750
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0x404800
cmp word [esp + 0x108], 1
jne 0x404816
mov eax, 0xf
sub eax, ecx
add eax, eax
jmp 0x404819
lea eax, [ecx + ecx]
movzx edi, byte [ecx + 0x419190]
lea ebp, [esp + eax*4 + 0x88]
lea edx, [esp + eax*4 + 0x84]
mov dword [ebp], 0
mov dword [edx], 0
xor eax, eax
lea esi, [edi + 3]
lea ecx, [edi + 2]
lea ebx, [esi - 3]
cmp ebx, 0x1c
jae 0x404851
mov bl, byte [esp + ecx + 0x4a]
jmp 0x404855
mov bl, byte [esp + esi + 0x2d]
mov byte [esp + eax + 0x14], bl
lea ebx, [esi - 2]
cmp ebx, 0x1c
jae 0x404867
mov bl, byte [esp + ecx + 0x4b]
jmp 0x40486b
mov bl, byte [esp + esi + 0x2e]
mov byte [esp + eax + 0x15], bl
cmp ecx, 0x1c
jae 0x40487a
mov bl, byte [esp + ecx + 0x4c]
jmp 0x40487e
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x16], bl
cmp esi, 0x1c
jae 0x40488d
mov bl, byte [esp + ecx + 0x4d]
jmp 0x404891
mov bl, byte [esp + esi + 0x30]
mov byte [esp + eax + 0x17], bl
add eax, 4
add ecx, 4
add esi, 4
cmp eax, 0x1c
jb 0x404843
cmp eax, 0x38
jae 0x4048ca
lea ecx, [edi + eax]
jmp 0x4048b0
cmp ecx, 0x38
jae 0x4048bb
mov bl, byte [esp + ecx + 0x4c]
jmp 0x4048bf
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x14], bl
inc eax
inc ecx
cmp eax, 0x38
jb 0x4048b0
xor eax, eax
lea esp, [esp]
movzx ecx, byte [eax + 0x4191a0]
cmp byte [esp + ecx + 0x14], 0
je 0x4048e7
mov ecx, dword [eax*4 + 0x4190f8]
or dword [edx], ecx
movzx ecx, byte [eax + 0x4191b8]
cmp byte [esp + ecx + 0x14], 0
je 0x4048ff
mov ecx, dword [eax*4 + 0x4190f8]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x4191a1]
cmp byte [esp + ecx + 0x14], 0
je 0x404916
mov ecx, dword [eax*4 + 0x4190fc]
or dword [edx], ecx
movzx ecx, byte [eax + 0x4191b9]
cmp byte [esp + ecx + 0x14], 0
je 0x40492e
mov ecx, dword [eax*4 + 0x4190fc]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x4191a2]
cmp byte [esp + ecx + 0x14], 0
je 0x404945
mov ecx, dword [eax*4 + 0x419100]
or dword [edx], ecx
movzx ecx, byte [eax + 0x4191ba]
cmp byte [esp + ecx + 0x14], 0
je 0x40495d
mov ecx, dword [eax*4 + 0x419100]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x4191a3]
cmp byte [esp + ecx + 0x14], 0
je 0x404974
mov ecx, dword [eax*4 + 0x419104]
or dword [edx], ecx
movzx ecx, byte [eax + 0x4191bb]
cmp byte [esp + ecx + 0x14], 0
je 0x40498c
mov ecx, dword [eax*4 + 0x419104]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x4191a4]
cmp byte [esp + ecx + 0x14], 0
je 0x4049a3
mov ecx, dword [eax*4 + 0x419108]
or dword [edx], ecx
movzx ecx, byte [eax + 0x4191bc]
cmp byte [esp + ecx + 0x14], 0
je 0x4049bb
mov ecx, dword [eax*4 + 0x419108]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x4191a5]
cmp byte [esp + ecx + 0x14], 0
je 0x4049d2
mov ecx, dword [eax*4 + 0x41910c]
or dword [edx], ecx
movzx ecx, byte [eax + 0x4191bd]
cmp byte [esp + ecx + 0x14], 0
je 0x4049ea
mov ecx, dword [eax*4 + 0x41910c]
or dword [ebp], ecx
add eax, 6
cmp eax, 0x18
jb 0x4048d0
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0x10
jb 0x404800
mov edx, dword [esp + 0x10c]
push edx
lea ecx, [esp + 0x88]
call fcn.00403030
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret