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

Disassembly:
mov ecx, dword [0x7c3e14]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x58846c
sub esp, 0xac
mov eax, dword [esp + 0xb8]
cmp eax, 0x12
jge 0x5878be
xor ecx, ecx
jmp 0x5878ed
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
lea ecx, [0x60edf0]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x12
call fcn.00403320
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xb8]
test cl, cl
jne 0x5878fd
mov ecx, dword [esp + 0xb4]
jmp 0x58798c
mov ecx, dword [0x79d7d4]
lea edx, [0x5df8e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00410810
movzx eax, byte [esp + 0x14]
test al, al
je 0x587938
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x58798c
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x12
jb 0x588461
mov dword [esp], 0
lea eax, [0x60a314]
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 + 0xb4]
add eax, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00451520
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc4]
test edx, edx
je 0x588282
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], eax
mov ebx, edx
and edx, 0x1f
nop
cmp edx, 0x16
jne 0x5879e4
test ebx, 0x200
je 0x5879bf
mov edx, dword [esp + 0xc0]
jmp 0x5879eb
test ebx, 0x80
je 0x5879d2
mov edx, dword [esp + 0xc0]
mov ebp, dword [edx]
jmp 0x5879db
mov edx, dword [esp + 0xc0]
mov ebp, edx
test ebp, ebp
jne 0x5879eb
jmp 0x588282
mov edx, dword [esp + 0xc0]
nop
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov byte [esp + 0xc], 1
call fcn.0048ccf0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5881d4
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x10]
cmp eax, 0x8cac3de9
ja 0x587ad2
cmp eax, 0x4ffadaa
jne 0x587a72
lea eax, [0x5fa4c0]
cmp ecx, eax
jne 0x587d27
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], eax
call fcn.0058a470
add esp, 0xac
ret
cmp eax, 0x8cac3de9
jne 0x587d27
lea eax, [0x607680]
cmp ecx, eax
jne 0x587d27
mov eax, dword [esp + 0xb0]
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 + 0xbc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14], eax
call fcn.00589d40
add esp, 0xac
ret
cmp eax, 0x8ed6f7a2
jne 0x587b32
lea eax, [0x608840]
cmp ecx, eax
jne 0x587d27
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 8], eax
call fcn.0048c8a0
mov eax, dword [esp + 0xb0]
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.00589d40
add esp, 0xac
ret
cmp eax, 0x91392b9f
jne 0x587c67
lea eax, [0x5fd280]
cmp ecx, eax
jne 0x587d27
mov eax, dword [esp + 0xc4]
test eax, 0x100
je 0x587b6c
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
jmp 0x587c29
test eax, 0x200
jne 0x587b82
lea ecx, [0x65b040]
mov edx, dword [esp + 0xbc]
jmp 0x587bac
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
mov edx, dword [esp + 0xc0]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048f510
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.0048ffe0
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.0048c8a0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x54], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x14], ebx
call fcn.0048e460
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0048b7b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0058a470
add esp, 0xac
ret
cmp eax, 0xa21e82eb
jne 0x587d27
lea eax, [0x5fd1a0]
cmp ecx, eax
jne 0x587d27
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.004aec50
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
lea eax, [0x5dda40]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
test eax, eax
je 0x587cef
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x587ce6
or ecx, 0x80
mov edx, dword [esp + 0x84]
jmp 0x587cf5
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0xb0]
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], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.00589260
add esp, 0xac
ret
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], eax
lea edx, [0x5e45a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00409f90
mov eax, dword [esp + 0xc]
test eax, eax
je 0x587e8e
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x588405
mov eax, dword [esp + 4]
test eax, eax
je 0x587de0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x78]
test eax, eax
je 0x587da8
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x587da2
or ecx, 0x80
mov edx, dword [esp + 0x7c]
jmp 0x587dae
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0xb0]
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], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.00587890
add esp, 0xac
ret
nop
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea eax, [0x60a560]
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.0058a050
add esp, 0xac
ret
lea eax, [0x5e41e0]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
call fcn.00409f90
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x587ed1
lea ecx, [0x5dda40]
mov ebx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
jmp 0x587f42
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5883bf
mov dword [esp], 0
call fcn.004517c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c60
mov eax, dword [esp + 8]
lea ecx, [0x5dda40]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x70]
test edx, edx
je 0x587f3c
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x587f42
or ebx, 0x80
jmp 0x587f42
xor ebx, ebx
xor edx, edx
xor eax, eax
mov ebp, ebx
and ebx, 0x1f
nop
cmp ebx, 0x11
ja 0x58803f
cmp ebx, 6
ja 0x587fc4
cmp ebx, 1
je 0x587f94
cmp ebx, 2
jb 0x588330
mov ecx, dword [esp + 0xb0]
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.00589a20
jmp 0x5881cd
mov ecx, dword [esp + 0xb0]
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.00589910
jmp 0x5881cd
cmp ebx, 0xc
jbe 0x58800f
lea esi, [ebx - 0xd]
cmp esi, 1
jbe 0x587fdf
cmp ebx, 0x11
je 0x58813a
jmp 0x588330
mov ecx, dword [esp + 0xb0]
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.00589ea0
jmp 0x5881cd
mov ecx, dword [esp + 0xb0]
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.00589bb0
jmp 0x5881cd
cmp ebx, 0x16
ja 0x588135
cmp ebx, 0x14
je 0x588101
cmp ebx, 0x15
je 0x588093
cmp ebx, 0x16
jne 0x588330
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0048c8a0
mov eax, dword [esp + 0xb0]
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.00587890
jmp 0x5881cd
mov dword [esp + 0x5c], eax
lea edi, [esp + 0x98]
xor eax, eax
call fcn.0046860b
lea ecx, [0x588480]
mov dword [esp + 0x98], ecx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0xa8], ecx
mov dword [esp], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0xc], ecx
call fcn.00588d40
jmp 0x5881cd
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0048c8a0
mov eax, dword [esp + 0xb0]
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.00587890
jmp 0x5881cd
cmp ebx, 0x17
jne 0x588167
mov ecx, dword [esp + 0xb0]
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.00588ee0
jmp 0x5881cd
cmp ebx, 0x18
je 0x5881a2
cmp ebx, 0x19
jne 0x588330
mov ecx, dword [esp + 0xb0]
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.005886f0
jmp 0x5881cd
mov ecx, dword [esp + 0xb0]
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.00589260
add esp, 0xac
ret
nop
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea eax, [0x60a560]
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.0058a050
add esp, 0xac
ret
nop
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
lea eax, [0x60a560]
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.0058a050
add esp, 0xac
ret
test ebp, ebp
je 0x5883a5
test ebp, 0x200
jne 0x5883a5
lea eax, [0x65b040]
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, [0x610750]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.00451520
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409c60
mov eax, dword [esp + 8]
lea ecx, [0x5dda40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004382f0
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.0048f510
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x588342
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
nop
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
lea eax, [0x5e6180]
mov dword [esp], eax
lea ecx, [esp + 0x90]
mov dword [esp + 4], ecx
call fcn.00409a20
mov eax, dword [esp + 8]
lea ecx, [0x5e6180]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004382f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
nop
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
lea eax, [0x5e6180]
mov dword [esp], eax
lea ecx, [esp + 0x90]
mov dword [esp + 4], ecx
call fcn.00409a20
mov eax, dword [esp + 8]
lea ecx, [0x5e6180]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004382f0
mov eax, 0x12
call fcn.004684c0
nop
call fcn.00467000
jmp fcn.00587890