Function at 0x452e86
Capabilities:
Packed with generic packer

Disassembly:
pushal
popal
push ebp
mov ebp, esp
sub esp, 0x4c
push esi
lea eax, [ebp - 0x4c]
push eax
call dword [0x4b60b8]
push 0x40
push 0x20
pop esi
push esi
call fcn.00452a1e
pop ecx
pop ecx
sub ecx, ecx
cmp eax, ecx
jne 0x452eb4
or eax, 0xffffffff
jmp 0x4530c3
lea edx, [eax + 0x800]
mov dword [0x5f4560], eax
mov dword [0x5f4544], esi
cmp eax, edx
jae 0x452eff
add eax, 5
or dword [eax - 5], 0xffffffff
mov word [eax - 1], 0xa00
mov dword [eax + 3], ecx
mov word [eax + 0x1f], 0xa00
mov byte [eax + 0x21], 0xa
mov dword [eax + 0x33], ecx
mov byte [eax + 0x2f], cl
mov esi, dword [0x5f4560]
add eax, 0x40
lea edx, [eax - 5]
add esi, 0x800
cmp edx, esi
jb 0x452ecc
push ebx
push edi
cmp word [ebp - 0x1a], cx
je 0x453019
mov eax, dword [ebp - 0x18]
cmp eax, ecx
je 0x453019
mov ebx, dword [eax]
add eax, 4
mov dword [ebp - 4], eax
add eax, ebx
mov esi, 0x800
mov dword [ebp - 8], eax
cmp ebx, esi
jl 0x452f2e
push esi
pop ebx
cmp dword [0x5f4544], ebx
jge 0x452fa1
mov edi, 0x5f4564
push 0x40
push 0x20
call fcn.00452a1e
pop ecx
pop ecx
or eax, eax
je 0x452f9b
add dword [0x5f4544], 0x20
lea ecx, [eax + 0x800]
mov dword [edi], eax
cmp eax, ecx
jae 0x452f8e
add eax, 5
or dword [eax - 5], 0xffffffff
and dword [eax + 3], 0
and byte [eax + 0x1f], 0x80
and dword [eax + 0x33], 0
mov word [eax - 1], 0xa00
mov word [eax + 0x20], 0xa0a
mov byte [eax + 0x2f], 0
mov ecx, dword [edi]
add eax, 0x40
add ecx, esi
lea edx, [eax - 5]
cmp edx, ecx
jb 0x452f60
add edi, 4
cmp dword [0x5f4544], ebx
jl 0x452f3b
jmp 0x452fa1
mov ebx, dword [0x5f4544]
xor edi, edi
test ebx, ebx
jle 0x453019
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x45300d
cmp eax, 0xfffffffe
je 0x45300d
mov ecx, dword [ebp - 4]
mov cl, byte [ecx]
test cl, 1
je 0x45300d
test cl, 8
jne 0x452fd0
push eax
call dword [0x4b6110]
or eax, eax
je 0x45300d
push edi
pop esi
and esi, 0x1f
push edi
pop eax
sar eax, 5
shl esi, 6
add esi, dword [eax*4 + 0x5f4560]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [ebp - 4]
mov al, byte [eax]
mov byte [esi + 4], al
push 0xfa0
lea eax, [esi + 0xc]
push eax
call dword [0x4b610c]
test eax, eax
je 0x4530c6
inc dword [esi + 8]
add dword [ebp - 8], 4
inc edi
inc dword [ebp - 4]
cmp edi, ebx
jl 0x452fa7
xor ebx, ebx
mov esi, ebx
shl esi, 6
add esi, dword [0x5f4560]
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x453038
cmp eax, 0xfffffffe
je 0x453038
or byte [esi + 4], 0x80
jmp 0x4530a9
mov byte [esi + 4], 0x81
test ebx, ebx
jne 0x453045
push 0xfffffffffffffff6
pop eax
jmp 0x45304f
lea eax, [ebx - 1]
neg eax
sbb eax, eax
add eax, 0xfffffff5
push eax
call dword [0x4b60f4]
push eax
pop edi
cmp edi, 0xffffffff
je 0x45309f
or edi, edi
je 0x45309f
push edi
call dword [0x4b6110]
test eax, eax
je 0x45309f
and eax, 0xff
mov dword [esi], edi
cmp eax, 2
jne 0x45307e
or byte [esi + 4], 0x40
jmp 0x453087
cmp eax, 3
jne 0x453087
or byte [esi + 4], 8
push 0xfa0
lea eax, [esi + 0xc]
push eax
call dword [0x4b610c]
test eax, eax
je 0x4530c6
inc dword [esi + 8]
jmp 0x4530a9
or byte [esi + 4], 0x40
mov dword [esi], 0xfffffffe
inc ebx
cmp ebx, 3
jl 0x45301b
push dword [0x5f4544]
call dword [0x4b6108]
xor eax, eax
pop edi
pop ebx
pop esi
leave
ret
or eax, 0xffffffff
jmp 0x4530c1