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

Disassembly:
mov ecx, dword [0x7da588]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x58ee91
sub esp, 0xcc
mov eax, dword [esp + 0xd8]
cmp eax, 0x12
jge 0x58e28e
xor ecx, ecx
jmp 0x58e2bd
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
lea ecx, [0x60e5bd]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x12
call fcn.004030b0
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xd8]
test cl, cl
jne 0x58e2cd
mov ecx, dword [esp + 0xd4]
jmp 0x58e35c
mov ecx, dword [0x79ad08]
lea edx, [0x5df100]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00411540
movzx eax, byte [esp + 0x14]
test al, al
je 0x58e308
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x58e35c
mov ecx, dword [esp + 0xd8]
cmp ecx, 0x12
jb 0x58ee86
mov dword [esp], 0
lea eax, [0x609c81]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
lea eax, [ecx - 0x12]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 0x12
mov edx, dword [esp + 0xd4]
add eax, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00453a60
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xe4]
test edx, edx
je 0x58eca5
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x70], eax
mov ebx, edx
and edx, 0x1f
nop
cmp edx, 0x16
jne 0x58e3b4
test ebx, 0x200
je 0x58e38f
mov edx, dword [esp + 0xe0]
jmp 0x58e3bb
test ebx, 0x80
je 0x58e3a2
mov edx, dword [esp + 0xe0]
mov ebp, dword [edx]
jmp 0x58e3ab
mov edx, dword [esp + 0xe0]
mov ebp, edx
test ebp, ebp
jne 0x58e3bb
jmp 0x58eca5
mov edx, dword [esp + 0xe0]
nop
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 1
call fcn.004c2c90
mov eax, dword [esp + 0x10]
test eax, eax
je 0x58ebf7
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x84], edx
cmp ecx, 0x8cac3de9
ja 0x58e4ac
cmp ecx, 0x4ffadaa
jne 0x58e44b
lea ecx, [0x5f98a0]
cmp eax, ecx
jne 0x58e75a
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
call fcn.00590f20
add esp, 0xcc
ret
cmp ecx, 0x8cac3de9
jne 0x58e75a
lea ecx, [0x606ce0]
cmp eax, ecx
jne 0x58e75a
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x14], eax
call fcn.005907b0
add esp, 0xcc
ret
cmp ecx, 0x8ed6f7a2
jne 0x58e50d
lea ecx, [0x608200]
cmp eax, ecx
jne 0x58e75a
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], eax
call fcn.004c2840
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.005907b0
add esp, 0xcc
ret
cmp ecx, 0x91392b9f
jne 0x58e64f
lea ecx, [0x5fc2e0]
cmp eax, ecx
jne 0x58e75a
mov eax, dword [esp + 0xe4]
test eax, 0x100
je 0x58e548
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe0]
jmp 0x58e611
test eax, 0x200
jne 0x58e55e
lea ecx, [0x65a1a0]
mov edx, dword [esp + 0xdc]
jmp 0x58e588
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov edx, dword [esp + 0xe0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004c5b70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004c6640
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004c2840
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x78], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x14], ebx
call fcn.004c4ac0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004c1750
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xd0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00590f20
add esp, 0xcc
ret
cmp ecx, 0xa21e82eb
jne 0x58e75a
lea ecx, [0x5fcd60]
cmp eax, ecx
jne 0x58e75a
mov ecx, dword [edx]
mov dword [esp + 0x74], ecx
mov edx, dword [edx + 4]
lea edi, [esp + 0x50]
xor eax, eax
call fcn.0046c088
mov ecx, dword [esp + 0x74]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0048c7b0
mov eax, dword [esp + 0xc]
cmp eax, 0x20
ja 0x58ee7c
mov dword [esp], 0
lea ecx, [eax - 0x20]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
lea eax, [esp + ecx + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00453d00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
lea eax, [0x5dd3e0]
mov dword [esp + 0x98], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x98]
test eax, eax
je 0x58e722
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x58e719
or ecx, 0x80
mov edx, dword [esp + 0x9c]
jmp 0x58e728
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0xd0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.0058fcb0
add esp, 0xcc
ret
lea ecx, [0x790d50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040ac40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x58eab3
cmp eax, 1
je 0x58e79e
lea ecx, [0x5dd3e0]
mov ebx, dword [esp + 0xe4]
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0xe0]
jmp 0x58e81b
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x58ee3a
mov dword [esp], 0
call fcn.00453d00
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040aa80
mov eax, dword [esp + 8]
lea ecx, [0x5dd3e0]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x88]
test edx, edx
je 0x58e815
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x58e81b
or ebx, 0x80
jmp 0x58e81b
xor ebx, ebx
xor edx, edx
xor eax, eax
mov ebp, ebx
and ebx, 0x1f
nop
cmp ebx, 0x11
ja 0x58e918
cmp ebx, 6
ja 0x58e89d
cmp ebx, 1
je 0x58e86d
cmp ebx, 2
jb 0x58edab
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00590490
jmp 0x58eaac
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00590380
jmp 0x58eaac
cmp ebx, 0xc
jbe 0x58e8e8
lea esi, [ebx - 0xd]
cmp esi, 1
jbe 0x58e8b8
cmp ebx, 0x11
je 0x58ea19
jmp 0x58edab
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00590910
jmp 0x58eaac
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00590620
jmp 0x58eaac
cmp ebx, 0x16
ja 0x58ea14
cmp ebx, 0x14
je 0x58e9e0
cmp ebx, 0x15
je 0x58e96c
cmp ebx, 0x16
jne 0x58edab
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004c2840
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.0058e260
jmp 0x58eaac
mov dword [esp + 0x80], eax
lea edi, [esp + 0xb0]
xor eax, eax
call fcn.0046c08b
lea ecx, [0x58eea0]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb4], edx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0xc0], ecx
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0xc], ecx
call fcn.0058f790
jmp 0x58eaac
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004c2840
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call fcn.0058e260
jmp 0x58eaac
cmp ebx, 0x17
jne 0x58ea46
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0058f930
jmp 0x58eaac
cmp ebx, 0x18
je 0x58ea81
cmp ebx, 0x19
jne 0x58edab
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0058f110
jmp 0x58eaac
mov ecx, dword [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.0058fcb0
add esp, 0xcc
ret
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x58ed53
mov eax, dword [esp + 4]
test eax, eax
je 0x58eb49
mov ecx, dword [esp + 8]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov eax, dword [esp + 0x90]
test eax, eax
je 0x58eb11
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x58eb08
or ecx, 0x80
mov edx, dword [esp + 0x94]
jmp 0x58eb17
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0xd0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.0058e260
add esp, 0xcc
ret
nop
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
lea eax, [0x60a01f]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.00590b30
add esp, 0xcc
ret
nop
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
lea eax, [0x60a01f]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.00590b30
add esp, 0xcc
ret
nop
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
lea eax, [0x60a01f]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 2
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call fcn.00590b30
add esp, 0xcc
ret
mov ecx, dword [esp + 0x10]
nop
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
lea eax, [0x5e56e0]
mov dword [esp], eax
lea ecx, [esp + 0xc4]
mov dword [esp + 4], ecx
call fcn.0040a8c0
mov eax, dword [esp + 8]
lea ecx, [0x5e56e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004391b0
test ebp, ebp
je 0x58ee20
test ebp, 0x200
jne 0x58ee20
lea eax, [0x65a1a0]
mov eax, dword [eax + 0x80]
mov dword [esp], edx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x60fdf3]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00453a60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040aa80
mov eax, dword [esp + 8]
lea ecx, [0x5dd3e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004391b0
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004c5b70
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x58edbd
mov ecx, dword [esp + 0x14]
nop
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ecx
lea eax, [0x5e56e0]
mov dword [esp], eax
lea ecx, [esp + 0xc4]
mov dword [esp + 4], ecx
call fcn.0040a8c0
mov eax, dword [esp + 8]
lea ecx, [0x5e56e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004391b0
mov ecx, 0x20
call fcn.0046bf50
mov eax, 0x12
call fcn.0046bf50
nop
call fcn.0046aa70
jmp fcn.0058e260