Function at 0x401000
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
push esi
mov esi, eax
push edi
xor eax, eax
movzx ecx, byte [eax + str.80_]
mov edx, ecx
sar edx, 3
movzx edx, byte [edx + esi]
and ecx, 7
test byte [ecx*2 + 0x419080], dl
setne cl
mov byte [ebp + eax - 0x80], cl
movzx ecx, byte [eax + 0x4190f1]
mov edx, ecx
sar edx, 3
movzx edx, byte [edx + esi]
and ecx, 7
test byte [ecx*2 + 0x419080], dl
setne cl
mov byte [ebp + eax - 0x7f], cl
movzx ecx, byte [eax + 0x4190f2]
mov edx, ecx
sar edx, 3
movzx edx, byte [edx + esi]
and ecx, 7
test byte [ecx*2 + 0x419080], dl
setne cl
mov byte [ebp + eax - 0x7e], cl
movzx ecx, byte [eax + 0x4190f3]
mov edx, ecx
sar edx, 3
movzx edx, byte [edx + esi]
and ecx, 7
test byte [ecx*2 + 0x419080], dl
setne cl
mov byte [ebp + eax - 0x7d], cl
add eax, 4
cmp eax, 0x38
jl 0x401010
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], 0x1e
jmp 0x4010b3
mov edx, dword [ebp - 4]
cmp word [ebp + 8], 1
mov eax, dword [ebp - 8]
je 0x4010c0
lea eax, [edx + edx]
movzx ebx, byte [edx + 0x419128]
lea ecx, [ebp + eax*4 - 0xfc]
lea eax, [ebp + eax*4 - 0x100]
mov dword [ecx], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
mov dword [eax], 0
xor esi, esi
lea ecx, [ebx + 3]
lea eax, [ebx + 2]
nop
lea edi, [ecx - 3]
cmp edi, 0x1c
jge 0x401101
mov dl, byte [ebp + eax - 0x82]
jmp 0x401108
mov dl, byte [ebp + edi - 0x9c]
lea edi, [ecx - 2]
mov byte [ebp + esi - 0x48], dl
cmp edi, 0x1c
jge 0x40111d
mov dl, byte [ebp + eax - 0x81]
jmp 0x401124
mov dl, byte [ebp + edi - 0x9c]
mov byte [ebp + esi - 0x47], dl
cmp eax, 0x1c
jge 0x401133
mov dl, byte [ebp + eax - 0x80]
jmp 0x40113a
mov dl, byte [ebp + eax - 0x9c]
mov byte [ebp + esi - 0x46], dl
cmp ecx, 0x1c
jge 0x401149
mov dl, byte [ebp + eax - 0x7f]
jmp 0x401150
mov dl, byte [ebp + ecx - 0x9c]
mov byte [ebp + esi - 0x45], dl
add esi, 4
add eax, 4
add ecx, 4
cmp esi, 0x1c
jl 0x4010f0
mov edi, 0x1c
lea edx, [ebx + 0x1f]
lea eax, [ebx + 0x1e]
lea ecx, [ecx]
lea ecx, [edx - 3]
cmp ecx, 0x38
jge 0x401181
mov cl, byte [ebp + eax - 0x82]
jmp 0x401188
mov cl, byte [ebp + ecx - 0x9c]
lea esi, [edx - 2]
mov byte [ebp + edi - 0x48], cl
cmp esi, 0x38
jge 0x40119d
mov cl, byte [ebp + eax - 0x81]
jmp 0x4011a4
mov cl, byte [ebp + esi - 0x9c]
mov byte [ebp + edi - 0x47], cl
cmp eax, 0x38
jge 0x4011b3
mov cl, byte [ebp + eax - 0x80]
jmp 0x4011ba
mov cl, byte [ebp + eax - 0x9c]
mov byte [ebp + edi - 0x46], cl
cmp edx, 0x38
jge 0x4011c9
mov cl, byte [ebp + eax - 0x7f]
jmp 0x4011d0
mov cl, byte [ebp + edx - 0x9c]
mov byte [ebp + edi - 0x45], cl
add edi, 4
add eax, 4
add edx, 4
cmp edi, 0x38
jl 0x401170
xor eax, eax
jmp 0x4011f0
movzx edx, byte [eax + 0x419138]
cmp byte [ebp + edx - 0x48], 0
mov edx, dword [ebp - 0x10]
je 0x40120a
mov ecx, dword [eax*4 + 0x419090]
or dword [edx], ecx
movzx ecx, byte [eax + 0x419150]
cmp byte [ebp + ecx - 0x48], 0
mov ecx, dword [ebp - 0xc]
je 0x401224
mov esi, dword [eax*4 + 0x419090]
or dword [ecx], esi
movzx esi, byte [eax + 0x419139]
cmp byte [ebp + esi - 0x48], 0
je 0x40123b
mov esi, dword [eax*4 + 0x419094]
or dword [edx], esi
movzx esi, byte [eax + 0x419151]
cmp byte [ebp + esi - 0x48], 0
je 0x401252
mov esi, dword [eax*4 + 0x419094]
or dword [ecx], esi
movzx esi, byte [eax + 0x41913a]
cmp byte [ebp + esi - 0x48], 0
je 0x401269
mov esi, dword [eax*4 + 0x419098]
or dword [edx], esi
movzx esi, byte [eax + 0x419152]
cmp byte [ebp + esi - 0x48], 0
je 0x401280
mov esi, dword [eax*4 + 0x419098]
or dword [ecx], esi
movzx esi, byte [eax + 0x41913b]
cmp byte [ebp + esi - 0x48], 0
je 0x401297
mov esi, dword [eax*4 + 0x41909c]
or dword [edx], esi
movzx esi, byte [eax + 0x419153]
cmp byte [ebp + esi - 0x48], 0
je 0x4012ae
mov esi, dword [eax*4 + 0x41909c]
or dword [ecx], esi
movzx esi, byte [eax + 0x41913c]
cmp byte [ebp + esi - 0x48], 0
je 0x4012c5
mov esi, dword [eax*4 + 0x4190a0]
or dword [edx], esi
movzx esi, byte [eax + 0x419154]
cmp byte [ebp + esi - 0x48], 0
je 0x4012dc
mov esi, dword [eax*4 + 0x4190a0]
or dword [ecx], esi
movzx esi, byte [eax + 0x41913d]
cmp byte [ebp + esi - 0x48], 0
je 0x4012f3
mov esi, dword [eax*4 + 0x4190a4]
or dword [edx], esi
movzx edx, byte [eax + 0x419155]
cmp byte [ebp + edx - 0x48], 0
je 0x40130a
mov edx, dword [eax*4 + 0x4190a4]
or dword [ecx], edx
add eax, 6
cmp eax, 0x18
jl 0x4011f0
mov eax, dword [ebp - 8]
inc dword [ebp - 4]
sub eax, 2
mov dword [ebp - 8], eax
cmp eax, 0xfffffffe
jg 0x4010b0
lea ecx, [ebp - 0x100]
call fcn.00401340
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret