Function at 0x453850
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x4c437c]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
lea eax, [ebp - 0x90]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0x38
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
add edx, 0x38
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x98], 0
jmp 0x45389b
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0x38
jge 0x4538f0
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + 0x4a7e68]
sub edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
and eax, 7
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x10]
sar ecx, 3
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + ecx]
mov ecx, dword [ebp - 0x94]
and eax, dword [ecx*4 + 0x4a7ee0]
neg eax
sbb eax, eax
neg eax
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0x98]
mov byte [edx], al
jmp 0x45388c
mov dword [ebp - 8], 0
jmp 0x453902
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x10
jge 0x453a95
push 8
push 0
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00469be0
add esp, 0xc
mov dword [ebp - 0x98], 0
jmp 0x453937
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 0x38
jge 0x45399c
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0x4a7ea0]
add ecx, dword [ebp - 0x98]
mov dword [ebp - 0x10], ecx
xor edx, edx
cmp dword [ebp - 0x98], 0x1c
setge dl
sub edx, 1
and edx, 0xffffffe4
add edx, 0x38
cmp dword [ebp - 0x10], edx
jge 0x453978
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xa8], eax
jmp 0x453984
mov ecx, dword [ebp - 0x10]
sub ecx, 0x1c
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x98]
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xa8]
mov cl, byte [eax]
mov byte [edx], cl
jmp 0x453928
mov dword [ebp - 0x98], 0
jmp 0x4539b7
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x98], 0x30
jge 0x453a24
mov eax, dword [ebp - 0x98]
movzx ecx, byte [eax + 0x4a7eb0]
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + ecx - 1]
test eax, eax
je 0x453a22
mov eax, dword [ebp - 0x98]
cdq
mov ecx, 6
idiv ecx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x98]
cdq
mov ecx, 6
idiv ecx
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx*4 + 0x4a7ee0]
sar ecx, 2
mov edx, dword [ebp - 0x14]
movzx ebx, byte [edx + eax]
or ebx, ecx
mov eax, dword [ebp - 0x98]
cdq
mov ecx, 6
idiv ecx
mov edx, dword [ebp - 0x14]
mov byte [edx + eax], bl
jmp 0x4539a8
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
shl ecx, 0x18
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 2]
shl eax, 0x10
or ecx, eax
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 4]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + 6]
or ecx, eax
mov edx, dword [ebp - 8]
shl edx, 1
mov eax, dword [ebp + 0x10]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 1]
shl edx, 0x18
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 3]
shl ecx, 0x10
or edx, ecx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 5]
shl ecx, 8
or edx, ecx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + 7]
or edx, ecx
mov eax, dword [ebp - 8]
shl eax, 1
mov ecx, dword [ebp + 0x10]
mov dword [ecx + eax*4 + 4], edx
jmp 0x4538f9
cmp dword [ebp + 8], 0
jne 0x453b32
mov dword [ebp - 8], 0
jmp 0x453ab1
mov edx, dword [ebp - 8]
add edx, 2
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0x10
jge 0x453b32
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x9c], edx
mov eax, 0x1e
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + eax*4]
mov dword [edx + ecx*4], eax
mov ecx, 0x1e
sub ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x9c]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + ecx*4 + 4]
mov dword [ebp - 0x9c], eax
mov ecx, 0x1f
sub ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + ecx*4]
mov dword [eax + edx*4 + 4], ecx
mov edx, 0x1f
sub edx, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x9c]
mov dword [eax + edx*4], ecx
jmp 0x453aa8
lea edx, [ebp - 0x90]
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xa0], 0x78
push 0x78
lea eax, [ebp - 0x90]
push eax
call fcn.004025c0
add esp, 8
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa0]
sub edx, 1
mov dword [ebp - 0xa0], edx
test ecx, ecx
je 0x453b8c
mov eax, dword [ebp - 0xa4]
mov byte [eax], 0
mov ecx, dword [ebp - 0xa4]
add ecx, 1
mov dword [ebp - 0xa4], ecx
jmp 0x453b59
xor edx, edx
jne 0x453b32
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0046a1be
mov esp, ebp
pop ebp
ret