Function at 0x4a7868
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffedc
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x124]
xor ecx, ecx
mov edx, 0x78
call fcn.00402dac
lea eax, [ebp - 0xac]
xor ecx, ecx
mov edx, 0x80
call fcn.00402dac
lea eax, [ebp - 0x124]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, 0x38
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, 0x38
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x52a5e8]
dec eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
and eax, 7
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
shr eax, 3
mov edx, dword [ebp - 4]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 0x24]
and eax, dword [edx*4 + 0x52a650]
jbe 0x4a78f7
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 1
jmp 0x4a7901
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x38
jne 0x4a78bb
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, 8
call fcn.00402dac
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x1c
jae 0x4a7932
mov dword [ebp - 0x28], 0x1c
jmp 0x4a7939
mov dword [ebp - 0x28], 0x38
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0x52a670]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x28]
jae 0x4a7959
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x4a7962
mov eax, dword [ebp - 0x20]
sub eax, 0x1c
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x2c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x38
jne 0x4a7923
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x52a620]
mov edx, dword [ebp - 0x10]
cmp byte [edx + eax - 1], 0
jbe 0x4a79c4
mov eax, dword [ebp - 0x1c]
mov ecx, 6
xor edx, edx
div ecx
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x1c]
mov ecx, 6
xor edx, edx
div ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx*4 + 0x52a650]
shr ecx, 2
or byte [edx + eax], cl
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x30
jne 0x4a7982
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
shl eax, 0x18
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + 2]
shl edx, 0x10
or eax, edx
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + 4]
shl edx, 8
or eax, edx
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + 6]
or eax, edx
mov edx, dword [ebp - 0x18]
add edx, edx
mov dword [ebp + edx*4 - 0xac], eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + 1]
shl eax, 0x18
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + 3]
shl edx, 0x10
or eax, edx
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + 5]
shl edx, 8
or eax, edx
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + 7]
or eax, edx
mov edx, dword [ebp - 0x18]
add edx, edx
mov dword [ebp + edx*4 - 0xa8], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x10
jne 0x4a790f
mov edx, dword [ebp - 8]
lea eax, [ebp - 0xac]
mov ecx, 0x80
call fcn.004029a4
mov esp, ebp
pop ebp
ret