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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x458bd1
sub esp, 0x88
mov eax, dword [esp + 0x8c]
movzx ecx, byte [eax + 0x3d]
test cl, cl
jne 0x458b8c
mov byte [eax + 0x3c], 1
jmp 0x4583f1
mov ecx, ebx
mov edx, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x24]
mov ebp, dword [ecx + 0x20]
mov esi, dword [ecx + 0x1c]
cmp edx, ebp
ja 0x458b9b
cmp ebp, ebx
ja 0x458b9b
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov eax, dword [eax + 0x10]
sub ebx, edx
mov dword [esp + 0x40], ebx
neg ebx
sar ebx, 0x1f
and ebx, edx
add ebx, esi
mov dword [esp + 4], ebx
sub ebp, edx
mov dword [esp + 8], ebp
mov edx, dword [esp + 0x40]
mov dword [esp + 0xc], edx
mov dword [esp], edi
call eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [ebx + 0x2c]
add ebp, edx
mov dword [ebx + 0x2c], ebp
test ecx, ecx
jne 0x4585ff
test edx, edx
jg 0x4585f3
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, 0x64
jle 0x45832c
mov eax, dword [0x5c2d3c]
mov dword [esp + 0x68], eax
mov ecx, dword [0x5c2d38]
mov dword [esp + 0x58], ecx
mov ebp, dword [ebx + 0x34]
mov esi, dword [ebx + 0x30]
lea edi, [ebx + 0x34]
mov dword [esp + 0x80], edi
test esi, esi
je 0x4585a1
mov edi, dword [0x5c2d28]
cmp edi, esi
je 0x458582
mov eax, ebx
mov ecx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
cmp ecx, ebx
jg 0x4587a3
mov ebp, dword [eax + 0x30]
test ebp, ebp
jne 0x4587a3
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x458786
mov ecx, dword [eax + 0x28]
test ecx, ecx
jle 0x458482
mov edx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x20]
mov ebp, dword [eax + 0x1c]
mov esi, dword [eax + 0x24]
cmp edx, ebx
jne 0x458773
cmp ecx, edx
ja 0x458ba9
cmp edx, esi
ja 0x458ba9
sub edx, ecx
sub esi, ecx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ecx, esi
add ecx, ebp
cmp ebx, edx
jle 0x45876c
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044a820
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
sub ecx, edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x28], 0
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x20]
lea ebx, [eax + 0x1c]
cmp ecx, edx
jne 0x458765
mov ecx, dword [eax + 0xc]
cmp edx, ecx
jge 0x4586cb
cmp edx, 0x3fffffff
jg 0x4586cb
shl edx, 1
test edx, edx
jne 0x4584b5
mov edx, 0x1000
mov dword [esp + 0x84], ebx
cmp edx, ecx
jle 0x4586c4
lea eax, [0x500c80]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00436bf0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x8c]
mov ebp, dword [ebx + 0x24]
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
cmp edi, edx
ja 0x458ba2
cmp edx, ebp
ja 0x458ba2
mov dword [esp + 0x30], eax
sub edx, edi
sub ebp, edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
lea ebp, [esi + edi]
cmp eax, edx
jle 0x4586bd
mov dword [esp + 0x48], ecx
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call fcn.0044a820
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x24], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x45869a
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x1c], eax
mov eax, dword [ecx + 0x2c]
mov edx, dword [ecx + 0x28]
sub eax, edx
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x28], 0
xor eax, eax
jmp 0x45832e
mov dword [esp], esi
mov dword [esp + 4], ebp
mov eax, dword [0x5c2d2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x4585e7
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x4585c7
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x34], eax
mov ebx, ecx
jmp 0x4583ef
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0x8c]
jmp 0x4585c0
mov ebx, dword [esp + 0x8c]
jmp 0x4583ef
mov dword [ebx + 0x38], 0
jmp 0x4583ef
mov dword [esp + 0x70], eax
mov dword [esp + 0x54], ecx
mov ebp, dword [ebx + 0x34]
mov esi, dword [ebx + 0x30]
lea edi, [ebx + 0x34]
mov dword [esp + 0x80], edi
test esi, esi
je 0x458648
mov edi, dword [0x5c2d28]
cmp edi, esi
jne 0x4583ef
mov dword [esp], esi
mov dword [esp + 4], ebp
mov eax, dword [0x5c2d2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x45868e
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x45866e
mov eax, dword [esp + 0x70]
mov dword [ecx + 0x34], eax
mov ebx, ecx
jmp 0x4583ef
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0x8c]
jmp 0x458667
mov ebx, dword [esp + 0x8c]
jmp 0x4583ef
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0x8c]
jmp 0x458569
mov edx, eax
jmp 0x45852b
mov ecx, edx
jmp 0x4584c4
mov ecx, dword [0x5c2c54]
mov dword [esp + 0x74], ecx
mov edx, dword [0x5c2c50]
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x30]
mov ebp, dword [eax + 0x34]
lea esi, [eax + 0x34]
mov dword [esp + 0x80], esi
test ebx, ebx
je 0x45872b
mov edi, dword [0x5c2d28]
cmp edi, ebx
je 0x45870c
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov eax, dword [0x5c2d2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x4586fd
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x45874c
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x34], eax
jmp 0x4586fd
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
call fcn.0040d8c0
jmp 0x4586fd
mov ecx, eax
jmp 0x45857b
mov edx, ebx
jmp 0x458459
mov edi, ebx
shr ebx, 1
cmp ecx, ebx
jle 0x458482
mov ebx, edi
jmp 0x458430
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov ebp, dword [eax + 0x1c]
mov esi, dword [eax + 0x24]
cmp ebx, ecx
ja 0x458bca
cmp ecx, esi
ja 0x458bca
mov edx, dword [eax + 8]
mov edi, dword [eax + 0x30]
test edi, edi
xchg edi, ebx
setne bl
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0xc], al
xchg edi, eax
sub esi, ebx
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
add ebp, esi
mov dword [esp], ebp
sub ecx, ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov ecx, dword [edx]
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebp
mov esi, dword [esp + 0x18]
mov dword [esp + 0x28], esi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x44], edi
test ebx, ebx
jne 0x458a68
mov dword [esp + 0x38], eax
test eax, eax
jge 0x458980
mov ecx, dword [0x5c2c44]
mov dword [esp + 0x64], ecx
mov edx, dword [0x5c2c40]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x8c]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0x30]
lea edi, [ebx + 0x34]
mov dword [esp + 0x80], edi
test eax, eax
je 0x45891e
mov edi, dword [0x5c2d28]
cmp edi, eax
je 0x4588fb
xor eax, eax
test al, al
je 0x4588ec
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x18], ebp
mov eax, dword [0x5d3b70]
lea ecx, [ebx + 0x10]
test eax, eax
jne 0x4588cf
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x10], eax
test eax, eax
jne 0x458898
mov eax, ebx
jmp 0x45840a
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4588a7
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4588bd
mov dword [ebx + 0x38], 0
mov byte [esp + 0x90], 1
add esp, 0x88
ret
mov eax, dword [ebx + 0x38]
inc eax
mov dword [ebx + 0x38], eax
cmp eax, 0x64
jg 0x458bb0
jmp 0x4588ae
mov dword [esp], ecx
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x8c]
jmp 0x45888d
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [0x5c2d2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x45896c
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x45894c
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x34], eax
mov ebx, ecx
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x45886d
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0x8c]
jmp 0x45893d
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x45886d
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x28]
sub edx, ebx
cmp eax, edx
jle 0x458a56
mov edx, dword [0x5c2c1c]
mov dword [esp + 0x6c], edx
mov ebx, dword [0x5c2c18]
mov dword [esp + 0x50], ebx
mov eax, dword [ecx + 0x30]
mov edi, dword [ecx + 0x34]
mov dword [esp + 0x7c], edi
lea edi, [ecx + 0x34]
mov dword [esp + 0x80], edi
test eax, eax
je 0x4589f9
mov edi, dword [0x5c2d28]
cmp edi, eax
je 0x4589d6
mov ebx, ecx
xor eax, eax
jmp 0x45886f
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [0x5c2d2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x458a42
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x458a22
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x34], eax
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x4589cd
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0x8c]
jmp 0x458a18
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x4589cd
lea edx, [eax + ebx]
mov dword [ecx + 0x28], edx
mov ebx, ecx
mov eax, 1
jmp 0x45886f
mov dword [esp + 0x78], ecx
mov dword [esp + 0x5c], ebx
mov eax, dword [0x5c2c28]
cmp eax, ebx
je 0x458b0b
mov eax, dword [esp + 0x8c]
mov edx, dword [eax + 0x34]
mov ebp, dword [eax + 0x30]
lea esi, [eax + 0x34]
mov dword [esp + 0x80], esi
test ebp, ebp
je 0x458ad1
mov edi, dword [0x5c2d28]
cmp edi, ebp
je 0x458ab2
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov dword [esp], ebp
mov dword [esp + 4], edx
mov eax, dword [0x5c2d2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x458aa3
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x5d3b70]
test eax, eax
jne 0x458af2
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x34], eax
jmp 0x458aa3
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
call fcn.0040d8c0
jmp 0x458aa3
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov eax, dword [0x5c2c2c]
mov dword [esp + 8], eax
call fcn.00402130
movzx eax, byte [esp + 0xc]
test al, al
je 0x458b7f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
mov eax, dword [0x5d3b70]
lea edx, [ecx + 0x10]
test eax, eax
jne 0x458b66
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x3d], 1
mov byte [esp + 0x90], 1
add esp, 0x88
ret
mov dword [esp], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.0040d8c0
mov ecx, dword [esp + 0x8c]
jmp 0x458b53
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x5c]
jmp 0x458a7e
mov byte [esp + 0x90], 0
add esp, 0x88
ret
call fcn.004243c0
ud2
call fcn.004243c0
ud2
call fcn.004243c0
ud2
lea eax, [0x500ac0]
mov dword [esp], eax
lea eax, [0x53aaa0]
mov dword [esp + 4], eax
call fcn.004251b0
ud2
call fcn.004243c0
ud2
call fcn.004486e0
jmp fcn.004582f0