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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x59184a
sub esp, 0x8c
mov eax, dword [esp + 0x98]
cmp eax, 0x12
jge 0x590c50
xor ecx, ecx
jmp 0x590c7f
mov eax, dword [esp + 0x94]
mov dword [esp], eax
lea ecx, [0x610276]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x12
call fcn.00402a50
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x98]
test cl, cl
jne 0x590c8f
mov edx, dword [esp + 0x94]
jmp 0x590d1c
mov ecx, dword [0x7a102c]
lea edx, [0x5e3660]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.0040fa80
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [eax]
mov eax, dword [eax + 4]
test cl, cl
jne 0x590d1c
mov ecx, dword [esp + 0x98]
cmp ecx, 0x12
jb 0x59183f
mov dword [esp], 0
lea eax, [0x60b3eb]
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 + 0x94]
add eax, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044dc10
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x591670
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edx
nop
mov ebx, ecx
and ecx, 0x1f
cmp ecx, 0x16
jne 0x590d74
test ebx, 0x200
je 0x590d4f
mov ecx, dword [esp + 0xa0]
jmp 0x590d7b
test ebx, 0x80
je 0x590d62
mov ecx, dword [esp + 0xa0]
mov ebp, dword [ecx]
jmp 0x590d6b
mov ecx, dword [esp + 0xa0]
mov ebp, ecx
test ebp, ebp
jne 0x590d7b
jmp 0x591670
mov ecx, dword [esp + 0xa0]
nop
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x5915c2
mov eax, dword [eax + 8]
cmp eax, 0x8cac3de9
ja 0x590e6a
cmp eax, 0x4ffadaa
jne 0x590e0a
lea eax, [0x5fc6a0]
cmp edx, eax
jne 0x5910e0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc], eax
call fcn.00593910
add esp, 0x8c
ret
cmp eax, 0x8cac3de9
jne 0x5910e0
lea eax, [0x608ba0]
cmp edx, eax
jne 0x5910e0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], eax
call fcn.00593200
add esp, 0x8c
ret
cmp eax, 0x8ed6f7a2
jne 0x590eca
lea eax, [0x6099e0]
cmp edx, eax
jne 0x5910e0
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.004bc180
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.00593200
add esp, 0x8c
ret
cmp eax, 0x91392b9f
jne 0x590fff
lea eax, [0x5ff800]
cmp edx, eax
jne 0x5910e0
mov eax, dword [esp + 0xa4]
test eax, 0x100
je 0x590f04
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
jmp 0x590fc1
test eax, 0x200
jne 0x590f1a
lea ecx, [0x663100]
mov edx, dword [esp + 0x9c]
jmp 0x590f44
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004be9f0
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.004bf830
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.004bc180
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x64], edx
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x14], ebx
call fcn.004bd9d0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.004bb060
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00593910
add esp, 0x8c
ret
cmp eax, 0xa21e82eb
jne 0x5910e0
lea eax, [0x5ff8e0]
cmp edx, eax
jne 0x5910e0
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00486950
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x591078
lea ecx, [0x5e1fa0]
mov dword [0x7a1de4], ecx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x59106b
mov dword [0x7a1de8], eax
jmp 0x59107e
lea edi, [0x7a1de8]
call fcn.00463730
jmp 0x59107e
lea ecx, [0x5e1fa0]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x5910a8
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x5910ae
or edx, 0x80
jmp 0x5910ae
xor edx, edx
xor ecx, ecx
xor eax, eax
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.00592720
add esp, 0x8c
ret
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ebx
lea eax, [0x5e71c0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004099b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59127c
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 4]
test eax, eax
jne 0x5917eb
test ecx, ecx
je 0x5911ce
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x59116f
mov dword [0x7a1de4], esi
mov ecx, dword [0x7c78f0]
test ecx, ecx
jne 0x591162
mov dword [0x7a1de8], ebp
jmp 0x59116f
lea edi, [0x7a1de8]
mov eax, ebp
call fcn.00463730
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebp
mov eax, dword [esp + 0x74]
test eax, eax
je 0x591196
nop
movzx ecx, byte [eax + 0xf]
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x59119c
or ecx, 0x80
jmp 0x59119c
xor ecx, ecx
xor eax, eax
xor ebp, ebp
mov edx, dword [esp + 0x90]
mov dword [esp], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
call fcn.00590c20
add esp, 0x8c
ret
nop
mov eax, dword [esp + 0x90]
mov dword [esp], eax
lea eax, [0x60b8d8]
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.00593510
add esp, 0x8c
ret
lea eax, [0x5e6c20]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.004099b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x5912c6
lea ecx, [0x5e1fa0]
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
jmp 0x591372
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x5917ad
mov dword [esp], 0
call fcn.0044dec0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x59133d
lea ecx, [0x5e1fa0]
mov dword [0x7a1de4], ecx
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x591330
mov dword [0x7a1de8], eax
jmp 0x591343
lea edi, [0x7a1de8]
call fcn.00463730
jmp 0x591343
lea ecx, [0x5e1fa0]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x59136c
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x591372
or ebx, 0x80
jmp 0x591372
xor ebx, ebx
xor edx, edx
xor eax, eax
nop
mov ebp, ebx
and ebx, 0x1f
cmp ebx, 0x11
ja 0x59146f
cmp ebx, 6
ja 0x5913f4
cmp ebx, 1
je 0x5913c4
cmp ebx, 2
jb 0x59171e
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00592ee0
jmp 0x5915bb
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00592dd0
jmp 0x5915bb
cmp ebx, 0xc
jbe 0x59143f
lea esi, [ebx - 0xd]
cmp esi, 1
jbe 0x59140f
cmp ebx, 0x11
je 0x591528
jmp 0x59171e
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00593360
jmp 0x5915bb
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00593070
jmp 0x5915bb
cmp ebx, 0x16
ja 0x591523
cmp ebx, 0x14
je 0x5914ef
cmp ebx, 0x15
je 0x5914bf
cmp ebx, 0x16
jne 0x59171e
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004bc180
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.00590c20
jmp 0x5915bb
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00591860
jmp 0x5915bb
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004bc180
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.00590c20
jmp 0x5915bb
cmp ebx, 0x17
jne 0x591555
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.005923a0
jmp 0x5915bb
cmp ebx, 0x18
je 0x591590
cmp ebx, 0x19
jne 0x59171e
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00591b60
jmp 0x5915bb
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call fcn.00592720
add esp, 0x8c
ret
nop
mov eax, dword [esp + 0x90]
mov dword [esp], eax
lea eax, [0x60b8d8]
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.00593510
add esp, 0x8c
ret
nop
mov eax, dword [esp + 0x90]
mov dword [esp], eax
lea eax, [0x60b8d8]
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.00593510
add esp, 0x8c
ret
test ebp, ebp
je 0x591793
test ebp, 0x200
jne 0x591793
lea eax, [0x663100]
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, [0x611869]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044dc10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov eax, dword [esp + 8]
lea ecx, [0x5e1fa0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435720
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x591730
nop
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
lea eax, [0x5e8640]
mov dword [esp], eax
lea ecx, [esp + 0x84]
mov dword [esp + 4], ecx
call fcn.004094a0
mov eax, dword [esp + 8]
lea ecx, [0x5e8640]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435720
nop
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ebx
lea eax, [0x5e8640]
mov dword [esp], eax
lea ecx, [esp + 0x84]
mov dword [esp + 4], ecx
call fcn.004094a0
mov eax, dword [esp + 8]
lea ecx, [0x5e8640]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435720
mov eax, 0x12
call fcn.00463810
nop
call fcn.00462320
jmp fcn.00590c20