Function at 0x431e50
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeec
mov dword [ebp - 0x24], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x114]
xor ecx, ecx
mov edx, 0x80
call fcn.004038bc
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + str.80_]
and cl, 7
mov eax, 0x80
shr eax, cl
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx + str.80_]
shr edx, 3
mov ecx, dword [ebp - 8]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x431eb4
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x5c], 1
jmp 0x431ebc
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x5c], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x38
jne 0x431e7f
xor eax, eax
mov dword [ebp - 0xc], eax
cmp byte [ebp + 8], 0
je 0x431edf
mov eax, 0xf
sub eax, dword [ebp - 0xc]
add eax, eax
mov dword [ebp - 0x18], eax
jmp 0x431ee7
mov eax, dword [ebp - 0xc]
add eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0x583d5c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x1c
jae 0x431f1c
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x5c]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x94], al
jmp 0x431f2d
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x78]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x94], al
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x1c
jne 0x431ef3
mov dword [ebp - 0x10], 0x1c
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0x583d5c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x38
jae 0x431f66
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x5c]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x94], al
jmp 0x431f77
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x78]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x94], al
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x38
jne 0x431f3d
mov dword [ebp - 0x14], 0x1000000
xor eax, eax
mov dword [ebp - 0x10], eax
shr dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x57fce4]
cmp byte [ebp + eax - 0x94], 0
je 0x431fb0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
or dword [ebp + eax*4 - 0x114], edx
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x57fcfc]
cmp byte [ebp + eax - 0x94], 0
je 0x431fd1
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
or dword [ebp + eax*4 - 0x114], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x18
jne 0x431f8c
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x10
jne 0x431eca
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x114]
and eax, 0xfc0000
shl eax, 6
mov edx, dword [ebp - 0x18]
mov edx, dword [ebp + edx*4 - 0x114]
and edx, 0xfc0
shl edx, 0xa
or eax, edx
mov edx, dword [ebp - 0x1c]
mov edx, dword [ebp + edx*4 - 0x114]
and edx, 0xfc0000
shr edx, 0xa
or eax, edx
mov edx, dword [ebp - 0x1c]
mov edx, dword [ebp + edx*4 - 0x114]
and edx, 0xfc0
shr edx, 6
or eax, edx
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
add dword [ebp - 0x20], 4
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x114]
and eax, 0x3f000
shl eax, 0xc
mov edx, dword [ebp - 0x18]
mov edx, dword [ebp + edx*4 - 0x114]
and edx, 0x3f
shl edx, 0x10
or eax, edx
mov edx, dword [ebp - 0x1c]
mov edx, dword [ebp + edx*4 - 0x114]
and edx, 0x3f000
shr edx, 4
or eax, edx
mov edx, dword [ebp - 0x1c]
mov edx, dword [ebp + edx*4 - 0x114]
and edx, 0x3f
or eax, edx
mov edx, dword [ebp - 0x20]
mov dword [edx], eax
add dword [ebp - 0x20], 4
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x10
jne 0x431fec
mov esp, ebp
pop ebp
ret 8