Function at 0x596e10
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 0x597a3a
sub esp, 0x8c
mov eax, dword [esp + 0x98]
cmp eax, 0x12
jge 0x596e40
xor ecx, ecx
jmp 0x596e6f
mov eax, dword [esp + 0x94]
mov dword [esp], eax
lea ecx, [0x620bb5]
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 0x596e7f
mov edx, dword [esp + 0x94]
jmp 0x596f0c
mov ecx, dword [0x7bc380]
lea edx, [0x5f25a0]
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.0040faf0
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [eax]
mov eax, dword [eax + 4]
test cl, cl
jne 0x596f0c
mov ecx, dword [esp + 0x98]
cmp ecx, 0x12
jb 0x597a2f
mov dword [esp], 0
lea eax, [0x61ba0d]
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.0044dd40
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x597860
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edx
nop
mov ebx, ecx
and ecx, 0x1f
cmp ecx, 0x16
jne 0x596f64
test ebx, 0x200
je 0x596f3f
mov ecx, dword [esp + 0xa0]
jmp 0x596f6b
test ebx, 0x80
je 0x596f52
mov ecx, dword [esp + 0xa0]
mov ebp, dword [ecx]
jmp 0x596f5b
mov ecx, dword [esp + 0xa0]
mov ebp, ecx
test ebp, ebp
jne 0x596f6b
jmp 0x597860
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.004c2fa0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x5977b2
mov eax, dword [eax + 8]
cmp eax, 0x8cac3de9
ja 0x59705a
cmp eax, 0x4ffadaa
jne 0x596ffa
lea eax, [0x60c400]
cmp edx, eax
jne 0x5972d0
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.00599b00
add esp, 0x8c
ret
cmp eax, 0x8cac3de9
jne 0x5972d0
lea eax, [0x6191c0]
cmp edx, eax
jne 0x5972d0
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.005993f0
add esp, 0x8c
ret
cmp eax, 0x8ed6f7a2
jne 0x5970ba
lea eax, [0x61a000]
cmp edx, eax
jne 0x5972d0
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.004c2b50
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.005993f0
add esp, 0x8c
ret
cmp eax, 0x91392b9f
jne 0x5971ef
lea eax, [0x60f700]
cmp edx, eax
jne 0x5972d0
mov eax, dword [esp + 0xa4]
test eax, 0x100
je 0x5970f4
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
jmp 0x5971b1
test eax, 0x200
jne 0x59710a
lea ecx, [0x676140]
mov edx, dword [esp + 0x9c]
jmp 0x597134
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.004c53c0
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.004c6200
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.004c2b50
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.004c43a0
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.004c1a30
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.00599b00
add esp, 0x8c
ret
cmp eax, 0xa21e82eb
jne 0x5972d0
lea eax, [0x60f7e0]
cmp edx, eax
jne 0x5972d0
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00486a80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004096f0
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x7bd150]
test cl, cl
je 0x597268
lea ecx, [0x5f0dc0]
mov dword [0x7bd154], ecx
mov edx, dword [0x7e34c0]
test edx, edx
jne 0x59725b
mov dword [0x7bd158], eax
jmp 0x59726e
lea edi, [0x7bd158]
call fcn.00463860
jmp 0x59726e
lea ecx, [0x5f0dc0]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x597298
nop
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
test bl, 0x20
jne 0x59729e
or edx, 0x80
jmp 0x59729e
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.00598910
add esp, 0x8c
ret
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ebx
lea eax, [0x5f6440]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409a20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x59746c
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 0x5979db
test ecx, ecx
je 0x5973be
nop
movzx ecx, byte [0x7bd150]
test cl, cl
je 0x59735f
mov dword [0x7bd154], esi
mov ecx, dword [0x7e34c0]
test ecx, ecx
jne 0x597352
mov dword [0x7bd158], ebp
jmp 0x59735f
lea edi, [0x7bd158]
mov eax, ebp
call fcn.00463860
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebp
mov eax, dword [esp + 0x74]
test eax, eax
je 0x597386
nop
movzx ecx, byte [eax + 0xf]
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x59738c
or ecx, 0x80
jmp 0x59738c
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.00596e10
add esp, 0x8c
ret
nop
mov eax, dword [esp + 0x90]
mov dword [esp], eax
lea eax, [0x61bf07]
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.00599700
add esp, 0x8c
ret
lea eax, [0x5f5ea0]
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.00409a20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x5974b6
lea ecx, [0x5f0dc0]
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
jmp 0x597562
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 0x59799d
mov dword [esp], 0
call fcn.0044dff0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004096f0
mov eax, dword [esp + 8]
nop
movzx ecx, byte [0x7bd150]
test cl, cl
je 0x59752d
lea ecx, [0x5f0dc0]
mov dword [0x7bd154], ecx
mov edx, dword [0x7e34c0]
test edx, edx
jne 0x597520
mov dword [0x7bd158], eax
jmp 0x597533
lea edi, [0x7bd158]
call fcn.00463860
jmp 0x597533
lea ecx, [0x5f0dc0]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x59755c
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x597562
or ebx, 0x80
jmp 0x597562
xor ebx, ebx
xor edx, edx
xor eax, eax
nop
mov ebp, ebx
and ebx, 0x1f
cmp ebx, 0x11
ja 0x59765f
cmp ebx, 6
ja 0x5975e4
cmp ebx, 1
je 0x5975b4
cmp ebx, 2
jb 0x59790e
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.005990d0
jmp 0x5977ab
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.00598fc0
jmp 0x5977ab
cmp ebx, 0xc
jbe 0x59762f
lea esi, [ebx - 0xd]
cmp esi, 1
jbe 0x5975ff
cmp ebx, 0x11
je 0x597718
jmp 0x59790e
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.00599550
jmp 0x5977ab
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.00599260
jmp 0x5977ab
cmp ebx, 0x16
ja 0x597713
cmp ebx, 0x14
je 0x5976df
cmp ebx, 0x15
je 0x5976af
cmp ebx, 0x16
jne 0x59790e
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004c2b50
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.00596e10
jmp 0x5977ab
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.00597a50
jmp 0x5977ab
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004c2b50
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.00596e10
jmp 0x5977ab
cmp ebx, 0x17
jne 0x597745
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.00598590
jmp 0x5977ab
cmp ebx, 0x18
je 0x597780
cmp ebx, 0x19
jne 0x59790e
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.00597d50
jmp 0x5977ab
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.00598910
add esp, 0x8c
ret
nop
mov eax, dword [esp + 0x90]
mov dword [esp], eax
lea eax, [0x61bf07]
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.00599700
add esp, 0x8c
ret
nop
mov eax, dword [esp + 0x90]
mov dword [esp], eax
lea eax, [0x61bf07]
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.00599700
add esp, 0x8c
ret
test ebp, ebp
je 0x597983
test ebp, 0x200
jne 0x597983
lea eax, [0x676140]
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, [0x6222a6]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044dd40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004096f0
mov eax, dword [esp + 8]
lea ecx, [0x5f0dc0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435790
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004c53c0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x597920
nop
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
lea eax, [0x5f7a40]
mov dword [esp], eax
lea ecx, [esp + 0x84]
mov dword [esp + 4], ecx
call fcn.004094a0
mov eax, dword [esp + 8]
lea ecx, [0x5f7a40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435790
nop
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ebx
lea eax, [0x5f7a40]
mov dword [esp], eax
lea ecx, [esp + 0x84]
mov dword [esp + 4], ecx
call fcn.004094a0
mov eax, dword [esp + 8]
lea ecx, [0x5f7a40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435790
mov eax, 0x12
call fcn.00463940
nop
call fcn.00462450
jmp fcn.00596e10