Function at 0x459cb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x368
push ebx
push ebp
mov ebp, dword [esp + 0x374]
push esi
push edi
xor ebx, ebx
test ebx, ebx
je 0x459cd0
push ebx
call fcn.00462e52
add esp, 4
push 0x4a7210
push ebp
call fcn.00453c40
mov ebx, eax
push ebx
push 1
lea eax, [esp + 0x74]
push 0x314
push eax
call fcn.004640ed
add esp, 0x18
cmp eax, 1
jne 0x459cc3
mov ecx, 2
mov edi, 0x4aebd8
lea esi, [esp + 0x64]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x459f9e
mov ecx, 2
mov edi, 0x4aebd8
mov esi, 0x5b2c60
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x459d34
mov ecx, 0xc5
lea esi, [esp + 0x64]
mov edi, 0x5b2c60
jmp 0x459d42
mov ecx, 5
lea esi, [esp + 0x64]
mov edi, 0x5b2c60
rep movsd dword es:[edi], dword [esi]
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x5b2f74
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x4c2850
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x5b3078
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x74]
push ecx
call fcn.004527a0
mov edx, dword [esp + 0x78]
push ebx
push 1
mov esi, eax
push edx
push esi
mov dword [esp + 0x34], esi
call fcn.004640ed
add esp, 0x14
cmp eax, 1
jne 0x459cc3
push ebx
call fcn.00462e52
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push 0
push eax
push ecx
call fcn.00452570
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
xor eax, eax
lea ecx, [esp + 0x7a]
mov dl, byte [ecx - 2]
mov edi, dword [ebx + 0x24]
mov byte [eax + edi], dl
mov dl, byte [ecx]
mov edi, dword [ebx + 0x24]
mov byte [eax + edi + 2], dl
mov dl, byte [ecx - 1]
mov edi, dword [ebx + 0x24]
mov byte [eax + edi + 1], dl
add eax, 4
add ecx, 3
cmp eax, 0x400
jl 0x459dd9
mov eax, dword [esp + 0x6c]
mov edx, 3
sub edx, eax
mov dword [esp + 0x34], edx
mov edx, 2
sub edx, eax
mov dword [esp + 0x38], edx
mov ecx, eax
imul ecx, dword [esp + 0x70]
mov edi, dword [ebx + 0x28]
mov edx, 1
sub edx, eax
mov dword [esp + 0x3c], edx
mov edx, eax
neg edx
mov dword [esp + 0x40], edx
mov edx, 0xfffffffe
sub edx, eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], ecx
or ecx, 0xffffffff
mov edx, 0xfffffffd
sub edx, eax
mov dword [esp + 0x4c], edx
lea edx, [eax + eax]
mov dword [esp + 0x24], ecx
sub ecx, eax
neg eax
shl eax, 1
mov ebp, 2
sub ebp, edx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], eax
or eax, 0xffffffff
sub eax, edx
mov ebp, 1
sub ebp, edx
mov dl, byte [esi]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov ebp, 1
mov dword [esp + 0x44], ecx
add ecx, ecx
cmp eax, ebp
mov byte [edi], dl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], 0xfffffffe
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x30], 0xfffffffc
mov dword [esp + 0x60], ecx
mov edx, ebp
jle 0x459f56
xor eax, eax
mov al, byte [edx + esi]
inc edx
test al, 0x80
je 0x459f12
mov ecx, eax
sar ecx, 3
and eax, 7
and ecx, 0xf
cmp eax, 7
je 0x459ee2
add eax, 3
jmp 0x459eee
xor eax, eax
mov ax, word [edx + esi]
add eax, 0xa
add edx, 2
test eax, eax
jle 0x459f4c
mov ecx, dword [esp + ecx*4 + 0x24]
add ecx, ebp
add ecx, edi
mov dword [esp + 0x14], eax
mov al, byte [ecx]
mov byte [edi + ebp], al
mov eax, dword [esp + 0x14]
inc ebp
inc ecx
dec eax
mov dword [esp + 0x14], eax
jne 0x459efe
jmp 0x459f4c
cmp eax, 0x7f
je 0x459f1a
inc eax
jmp 0x459f28
xor eax, eax
mov ax, word [edx + esi]
add eax, 0x80
add edx, 2
mov ecx, eax
mov ebx, ecx
add edi, ebp
shr ecx, 2
add esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
add ebp, eax
add edx, eax
cmp ebp, dword [esp + 0x18]
jl 0x459ec3
push esi
call fcn.004631b4
mov eax, dword [ebx]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 8]
add esp, 4
cmp ecx, eax
je 0x459f91
mov esi, dword [ebx + 4]
dec esi
js 0x459f91
mov eax, dword [ebx]
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 0x28]
imul edx, esi
push eax
imul eax, esi
add eax, ecx
push eax
add edx, ecx
push edx
call fcn.004637e0
add esp, 0xc
dec esi
jns 0x459f71
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x368
ret
test ebx, ebx
je 0x459fab
push ebx
call fcn.00462e52
add esp, 4
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret