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

Disassembly:
mov eax, 0x1078
call fcn.00426210
mov eax, dword [esp + 0x1084]
mov ecx, dword [esp + 0x1088]
push ebx
mov ebx, dword [esp + 0x1084]
push ebp
mov ebp, dword [esp + 0x1084]
push esi
push edi
xor edi, edi
xor esi, esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
cmp eax, edi
je 0x4586fb
mov dword [eax], edi
cmp ecx, edi
jne 0x4580c4
mov dword [esp + 0x10], 0x10
jmp 0x4586e5
mov dword [ecx], edi
test ebx, 0x800
je 0x4580fb
test ebx, 0x2000
jne 0x4580fb
push 0xffffffffffffffff
push ebp
call fcn.00433bb1
mov ecx, dword [esp + 0x10a0]
add esp, 8
cmp eax, edi
mov dword [ecx], eax
jl 0x4580fb
mov dword [esp + 0x10], 0x2c
jmp 0x4586e5
test ebx, 0xfc038580
je 0x458110
mov dword [esp + 0x10], 0x11
jmp 0x4586d6
mov dword [esp + 0x28], 0x480cc8
mov dword [esp + 0x2c], 0x480dc8
mov dword [esp + 0x30], 0x480ec8
mov dword [esp + 0x34], 0x481008
cmp byte [ebp], 0x28
jne 0x458268
nop
cmp byte [esi + ebp + 1], 0x2a
jne 0x458268
push 3
lea eax, [esi + ebp + 2]
push 0x4871c4
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x458171
add esi, 5
mov eax, 0x100000
and ebx, 0xff8fffff
jmp 0x45825c
push 3
lea eax, [esi + ebp + 2]
push 0x4871c8
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x45819c
add esi, 5
mov eax, 0x200000
and ebx, 0xff8fffff
jmp 0x45825c
push 5
lea eax, [esi + ebp + 2]
push 0x4871cc
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x4581c7
add esi, 7
mov eax, 0x300000
and ebx, 0xff8fffff
jmp 0x45825c
push 4
lea eax, [esi + ebp + 2]
push 0x4871d4
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x4581ef
add esi, 6
mov eax, 0x400000
and ebx, 0xff8fffff
jmp 0x45825c
push 8
lea eax, [esi + ebp + 2]
push 0x4871dc
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x458217
add esi, 0xa
mov eax, 0x500000
and ebx, 0xff8fffff
jmp 0x45825c
push 0xc
lea eax, [esi + ebp + 2]
push 0x4871e8
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x458236
mov eax, 0x800000
jmp 0x458253
push 0xc
lea eax, [esi + ebp + 2]
push 0x4871f8
push eax
call fcn.004152e8
add esp, 0xc
test eax, eax
jne 0x458268
mov eax, 0x1000000
add esi, 0xe
and ebx, 0xfe7fffff
or ebx, eax
cmp byte [esi + ebp], 0x28
je 0x45813b
mov eax, ebx
and eax, 0x1800000
je 0x45828c
cmp eax, 0x800000
je 0x45828c
cmp eax, 0x1000000
je 0x45828c
mov dword [esp + 0x10], 0x38
jmp 0x4586d6
mov eax, ebx
and eax, 0x700000
cmp eax, 0x300000
mov ecx, 2
jg 0x4582ea
je 0x4582c1
cmp eax, edi
je 0x4582b3
cmp eax, 0x100000
je 0x4582ba
cmp eax, 0x200000
jne 0x45827f
mov eax, 0xa
jmp 0x4582c6
mov eax, 0xd
jmp 0x4582c6
mov eax, 0xd0a
cmp eax, 0xff
mov dword [esp + 0x78], edi
jle 0x458308
mov edx, eax
sar edx, 8
mov dword [esp + 0x7c], ecx
mov byte [esp + 0x80], dl
mov byte [esp + 0x81], al
jmp 0x458317
cmp eax, 0x400000
je 0x4582fe
cmp eax, 0x500000
jne 0x45827f
mov dword [esp + 0x78], ecx
jmp 0x458317
mov dword [esp + 0x78], 1
jmp 0x458317
mov dword [esp + 0x7c], 1
mov byte [esp + 0x80], al
lea edx, [esp + 0x88]
mov ecx, edx
push ebp
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ebp
call fcn.00414bb0
add eax, ebp
mov dword [esp + 0x48], eax
lea eax, [esi + ebp]
mov dword [esp + 0x88], eax
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x30]
push edx
push edi
lea eax, [esp + 0x98]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x38]
push ecx
push edi
push edi
push edi
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x48]
push ecx
mov edx, ebx
and edx, 7
push edx
push ebx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
mov byte [esp + 0xc0], 0x5e
call fcn.00456025
add esp, 0x38
cmp dword [esp + 0x10], edi
jne 0x4586d6
mov eax, dword [esp + 0x18]
cmp eax, 0x10000
jle 0x4583e6
mov dword [esp + 0x10], 0x14
jmp 0x4586d6
mov ecx, dword [esp + 0x54]
add ecx, 3
imul ecx, dword [esp + 0x50]
lea ebx, [ecx + eax + 0x28]
push ebx
call dword [0x48c650]
mov esi, eax
add esp, 4
cmp esi, edi
jne 0x458413
mov dword [esp + 0x10], 0x15
jmp 0x4586d6
mov dword [esi + 4], ebx
mov dword [esi], 0x50435245
mov edx, dword [esp + 0x68]
mov dword [esi + 8], edx
movzx eax, word [esp + 0x6c]
mov word [esi + 0xc], ax
xor ecx, ecx
mov word [esi + 0xe], cx
xor edx, edx
mov word [esi + 0x14], dx
xor eax, eax
mov word [esi + 0x16], ax
mov ecx, 0x28
mov word [esi + 0x18], cx
movzx edx, word [esp + 0x54]
mov word [esi + 0x1a], dx
movzx eax, word [esp + 0x50]
mov word [esi + 0x1c], ax
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
xor ecx, ecx
mov word [esi + 0x1e], cx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edi
movzx eax, word [esi + 0x18]
add eax, esi
mov dword [esp + 0x4c], eax
movzx ecx, word [esi + 0x1a]
movzx ebx, word [esi + 0x1c]
push edi
imul ebx, ecx
lea ecx, [esp + 0x2c]
push ecx
push edi
lea edx, [esp + 0x94]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x34]
push ecx
push edi
push edi
add ebx, eax
mov eax, dword [esp + 0xa0]
push edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x38], eax
mov byte [ebx], 0x5e
mov eax, dword [esi + 8]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x44]
mov ecx, eax
push edx
and ecx, 7
push ecx
push eax
mov dword [esp + 0x50], ebx
call fcn.00456025
movzx edx, word [esp + 0x8c]
mov word [esi + 0x10], dx
movzx eax, word [esp + 0x94]
mov word [esi + 0x12], ax
mov cx, word [esp + 0xa0]
add esp, 0x34
mov word [esi + 0xc], cx
cmp dword [esp + 0x74], edi
je 0x458522
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x10], edi
jne 0x458539
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x458539
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
inc eax
sub eax, ebx
cmp eax, dword [esp + 0x18]
jle 0x458556
mov dword [esp + 0x10], 0x17
jmp 0x4586cc
cmp dword [esp + 0x10], edi
jne 0x4586cc
jmp 0x45856b
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x88]
cmp eax, ecx
jbe 0x4586b6
sub eax, 2
mov dword [esp + 0x48], eax
movzx edx, byte [eax]
movzx edi, byte [eax + 1]
shl edx, 8
or edi, edx
movzx eax, byte [edi + ebx]
movzx ecx, byte [edi + ebx + 1]
shl eax, 8
or eax, ecx
mov ecx, dword [esi + 8]
shr ecx, 0xb
push eax
and ecx, 1
push ecx
push ebx
call fcn.004341bd
add esp, 0xc
test eax, eax
je 0x4585d3
mov edx, eax
sub edx, ebx
sar edx, 8
sub al, bl
mov byte [edi + ebx], dl
mov byte [edi + ebx + 1], al
cmp dword [esp + 0x10], 0
je 0x45856b
jmp 0x4586cc
mov dword [esp + 0x10], 0x35
jmp 0x4586cc
mov eax, dword [esi + 8]
test al, 0x10
jne 0x45866b
mov edx, dword [esp + 0x64]
push edx
mov dword [esp + 0x1c], eax
push 0
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.00441112
add esp, 0x10
test eax, eax
je 0x45860e
or dword [esi + 8], 0x10
jmp 0x45866b
mov eax, dword [esp + 0x24]
test eax, eax
jge 0x45862a
push 0
lea ecx, [esp + 0x1c]
push ecx
push ebx
call fcn.00440f44
add esp, 0xc
test eax, eax
jl 0x458652
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x458647
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x458647
mov eax, ecx
or word [esi + 0xc], 2
mov word [esi + 0x14], ax
jmp 0x45866b
mov eax, dword [esp + 0x64]
push eax
push 0
push ebx
call fcn.00441045
add esp, 0xc
test eax, eax
je 0x45866b
or word [esi + 0xc], 8
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x4586a9
test byte [esi + 8], 0x10
je 0x458680
test eax, 0x200
je 0x4586a9
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x4586a0
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x4586a0
and eax, 0xfffffeff
or word [esi + 0xc], 4
mov word [esi + 0x16], ax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1078
ret
mov ax, word [esi + 0x12]
cmp ax, word [esi + 0x10]
jbe 0x4585e0
mov dword [esp + 0x10], 0xf
push esi
call dword [0x48c654]
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1098]
sub eax, ebp
mov dword [ecx], eax
mov edx, dword [esp + 0x10]
push edx
call fcn.00434d46
mov ecx, dword [esp + 0x1098]
add esp, 4
mov dword [ecx], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1078
ret
jmp 0x45806b