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

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
mov esi, dword [esp + 0x24]
push edi
mov ecx, esi
call fcn.00444800
mov ebx, eax
mov eax, dword [esi + 0x28]
dec eax
mov dword [esp + 0x14], eax
mov eax, esi
call fcn.00410ed0
cmp dword [esp + 0x44], 0
mov dword [esp + 0x10], eax
jge 0x458931
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + 0x18]
push 0x31
push ebx
call fcn.0043a2b0
add esp, 8
mov edx, dword [esp + 0x38]
xor ebp, ebp
cmp dword [edx + 0x14], ebp
jle 0x458977
lea esp, [esp]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov ax, word [eax + ebp*4]
mov edi, dword [ecx]
call fcn.00414220
movsx edx, ax
mov eax, dword [esp + 0x40]
lea ecx, [edx + eax + 1]
mov eax, dword [esp + 0x10]
push 0x32
push ebx
call fcn.0043a2b0
mov ecx, dword [esp + 0x40]
inc ebp
add esp, 8
cmp ebp, dword [ecx + 0x14]
jl 0x458940
cmp dword [esp + 0x48], 0
jne 0x458bef
mov edi, dword [esp + 0x34]
mov eax, esi
test edi, edi
jne 0x458a5d
call fcn.00413930
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov edi, dword [ecx]
mov ebp, eax
mov ax, word [edx]
call fcn.00414220
mov edi, dword [esp + 0x40]
movsx edx, ax
push 0x51
lea ecx, [edx + edi + 1]
push ebx
mov eax, ebp
call fcn.0043a2b0
push 0xd
push ebx
xor eax, eax
mov ecx, ebp
call fcn.0043a2b0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
add esp, 0x10
cmp ecx, dword [eax]
jne 0x458a02
cmp dword [esp + 0x44], 1
jne 0x458a02
mov edx, dword [esp + 0x10]
push ebp
push edx
push edi
push 0x35
push ebx
call fcn.0043a200
add esp, 0x14
mov edx, 0x90
mov ecx, ebx
call fcn.00411050
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push 0x70
push edi
push esi
call fcn.0044d360
push ebp
push 0
push edi
push 0x1f
push ebx
call fcn.0043a200
mov eax, dword [esp + 0x30]
mov ecx, ebx
call fcn.0043a2d0
mov eax, ebx
call fcn.00411010
sub eax, 2
push eax
mov ecx, ebx
call fcn.0041cdc0
mov eax, dword [esp + 0x4c]
push eax
mov ecx, ebx
call fcn.0041cdc0
add esp, 0x28
mov edx, ebp
mov eax, esi
call fcn.00413950
jmp 0x458bef
mov ecx, dword [esp + 0x38]
mov ebp, dword [ecx + 0x14]
mov edx, ebp
call fcn.00413970
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push edx
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x2c]
push eax
push ecx
push 0x70
push ebx
call fcn.0043a200
add esp, 0x14
mov ecx, edi
mov eax, esi
call fcn.0044b460
xor esi, esi
test ebp, ebp
jle 0x458adf
jmp 0x458aa0
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
lea eax, [edx + esi]
mov edx, dword [esp + 0x38]
mov edi, dword [edx]
mov dword [esp + 0x18], eax
mov ax, word [ecx + esi*4]
call fcn.00414220
mov ecx, dword [esp + 0x40]
cwde
lea ecx, [eax + ecx + 1]
mov eax, dword [esp + 0x18]
push 0x50
push ebx
call fcn.0043a2b0
inc esi
add esp, 8
cmp esi, ebp
jl 0x458aa0
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
cmp edx, dword [eax]
jne 0x458b9c
cmp dword [esp + 0x44], 1
jne 0x458b9c
mov eax, ebx
call fcn.00411010
lea ecx, [eax + ebp + 1]
xor esi, esi
mov dword [esp + 0x1c], ecx
test ebp, ebp
jle 0x458b91
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ax, word [edx + esi*4]
mov edi, dword [ecx]
call fcn.00414220
movsx edx, ax
mov eax, dword [esp + 0x40]
lea ecx, [edx + eax + 1]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
movzx eax, word [edx + esi*2]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
call fcn.00414220
mov dx, word [esp + 0x18]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
cwde
lea eax, [eax + ecx + 1]
cmp dx, word [edi + 0x20]
jne 0x458b66
mov eax, ecx
mov ecx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
push 0x34
push ebx
call fcn.0043a200
add esp, 0x14
mov edx, 0x10
mov ecx, ebx
call fcn.00411050
inc esi
cmp esi, ebp
jl 0x458b13
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov ecx, ebx
call fcn.0043a2d0
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
push ebp
push eax
mov eax, edi
call fcn.0043dea0
mov ecx, dword [esp + 0x50]
add esp, 4
push eax
push ecx
push 0x60
xor eax, eax
mov ecx, ebp
mov edi, ebx
call fcn.0043a2f0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
push ebp
push edx
push 0x1d
mov esi, ebx
call fcn.0043a4c0
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x64]
push eax
mov ecx, ebp
call fcn.004139b0
mov esi, dword [esp + 0x48]
add esp, 0x20
mov ebp, dword [esp + 0x38]
mov dl, byte [ebp + 0x18]
test dl, dl
jne 0x458c2c
mov eax, dword [esi]
mov eax, dword [eax + 0x20]
and eax, 0x80000
xor ecx, ecx
or eax, ecx
jne 0x458c2c
cmp dword [esi + 0x78], eax
jne 0x458c2c
cmp byte [esi + 0x14], al
jne 0x458c2c
push 4
push 0xffffffffffffffff
push eax
push 0x313
push esi
lea esi, [ecx + 2]
call fcn.004485f0
add esp, 0x14
jmp 0x458c53
mov edi, dword [esp + 0x44]
test edi, edi
jle 0x458c3f
test dl, dl
jne 0x458c3f
mov ecx, esi
call fcn.00414a70
movzx ecx, byte [ebp + 0x18]
push 0x9e
push ebx
mov eax, edi
call fcn.0043a2b0
add esp, 8
mov ecx, dword [esp + 0x10]
mov edx, ebx
call fcn.00422330
mov eax, dword [esp + 0x14]
push ebx
mov ecx, 0x7a
call fcn.0043a290
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret