Function at 0x50aa50
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.00402cd8
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + 0x71b928]
and cl, 7
mov eax, 0x80
shr eax, cl
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx + 0x71b928]
shr edx, 3
mov ecx, dword [ebp - 8]
movzx edx, byte [ecx + edx]
and eax, edx
je 0x50aab4
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x5c], 1
jmp 0x50aabc
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x5c], 0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x38
jne 0x50aa7f
xor eax, eax
mov dword [ebp - 0xc], eax
cmp byte [ebp + 8], 0
je 0x50aadf
mov eax, 0xf
sub eax, dword [ebp - 0xc]
add eax, eax
mov dword [ebp - 0x18], eax
jmp 0x50aae7
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 + 0x71f9b8]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x1c
jae 0x50ab1c
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x5c]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x94], al
jmp 0x50ab2d
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 0x50aaf3
mov dword [ebp - 0x10], 0x1c
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0x71f9b8]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x38
jae 0x50ab66
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x5c]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x94], al
jmp 0x50ab77
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 0x50ab3d
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 + 0x71b960]
cmp byte [ebp + eax - 0x94], 0
je 0x50abb0
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 + 0x71b978]
cmp byte [ebp + eax - 0x94], 0
je 0x50abd1
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 0x50ab8c
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x10
jne 0x50aaca
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 0x50abec
mov esp, ebp
pop ebp
ret 8