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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x59993f
sub esp, 0xcc
mov eax, 0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov byte [esp + 0x2f], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
lea esi, [eax + 8]
mov dword [esp + 0x60], esi
lea edi, [esp + 0x6c]
call fcn.0045b46e
mov ecx, dword [esp + 0x70]
test ecx, 0x80000000
je 0x59991e
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
shl ebx, 1
mov ebp, ecx
shr ecx, 0x1f
or ebx, ecx
shl ebp, 1
mov ecx, ebx
shl ebx, 1
shr ebp, 0x1f
or ebp, ebx
mov ebx, ebp
add ebp, 0xd7b17f80
shr ecx, 0x1f
add ebx, 0xd7b17f80
adc ecx, 0xd
mov dword [esp + 0x34], edx
test ecx, ecx
sete cl
test ebp, ebp
sete bl
and ebx, ecx
test bl, bl
je 0x5998aa
mov ecx, dword [esp + 0x6c]
test ecx, 0x3fffffff
jne 0x5998aa
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
test edx, edx
setne bl
test ecx, ecx
xchg ebp, ebx
setne bl
xchg ebp, ebx
or ebx, ebp
mov byte [esp + 0x2e], bl
test bl, bl
je 0x599877
lea eax, [0x62c080]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.00404780
mov eax, dword [esp + 8]
movzx ecx, byte [esp + 0x2e]
test cl, cl
mov dword [esp + 0x50], eax
jne 0x599800
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xd4]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0x18], ebx
call fcn.004c7660
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ebx
test eax, eax
je 0x599513
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], ebx
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x5994fb
add esp, 0xcc
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.0049b580
jmp 0x5994f4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0xe8]
mov dword [esp + 4], ecx
lea edx, [0x66e884]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.004b9920
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
jne 0x599557
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xe8]
cmp eax, edx
ja 0x59992b
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x5997f5
mov edx, dword [ecx + 0x44]
test edx, edx
je 0x5997ae
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.005991e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x599799
mov dword [esp], 8
lea eax, [0x68930c]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0043a390
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
lea edi, [esp + 0x94]
xor eax, eax
call fcn.0045af84
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov word [esp + 0x9c], 1
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x94], eax
mov word [esp + 0xb4], 1
mov eax, dword [esp + 0x50]
mov dword [esp + 0xac], eax
lea eax, [esp + 0x64]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x94]
mov dword [esp], eax
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.0043f740
mov eax, dword [esp + 0xc]
test eax, eax
je 0x599776
cmp eax, 1
jne 0x59992b
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
test eax, eax
jne 0x59973b
test eax, eax
jne 0x5996d9
mov eax, dword [esp + 0x58]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x5996c1
add esp, 0xcc
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.0049b580
jmp 0x5996ba
mov dword [esp + 0x40], eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
call eax
mov dword [esp + 0xf0], 0
mov eax, dword [esp + 0x40]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xf8], eax
movzx eax, byte [esp + 0x2e]
test al, 1
jne 0x599723
add esp, 0xcc
ret
and eax, 0xfffffffe
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.0049b580
jmp 0x59971c
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0xd4]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
test eax, eax
jne 0x59968b
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
jmp 0x59968b
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0xd4]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
jmp 0x59968b
mov dword [esp], eax
call fcn.00583a80
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
jmp 0x59968b
mov dword [esp + 0x3c], eax
mov dword [esp], ecx
call fcn.0057afc0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x44], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x5997e0
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0x40], ecx
mov ecx, eax
jmp 0x599580
lea edi, [eax + 0x40]
mov ecx, eax
mov eax, dword [esp + 0xe4]
call fcn.0045ace0
mov eax, ecx
jmp 0x5997d9
lea ecx, [0x81ca60]
jmp 0x599575
lea eax, [0x63ce00]
mov dword [esp], eax
call fcn.0040b4f0
mov eax, dword [esp + 4]
lea ecx, [0x5a77a0]
mov dword [eax], ecx
mov ecx, dword [0x8326a0]
test ecx, ecx
jne 0x599865
mov ecx, dword [esp + 0x50]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0049b7d0
mov eax, dword [esp + 0xc]
lea ecx, [0x68990c]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xc4], eax
mov byte [esp + 0x2f], 1
jmp 0x599454
lea edi, [eax + 4]
mov ecx, eax
mov eax, dword [esp + 0x50]
call fcn.0045ace0
mov eax, ecx
jmp 0x59982b
mov eax, dword [esp + 0xd0]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0xd4]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 4]
test eax, eax
jne 0x599429
movzx ecx, byte [esp + 0x2e]
test cl, cl
mov eax, 0
jmp 0x59944a
lea edi, [esp + 0x80]
mov esi, dword [esp + 0x60]
call fcn.0045b46e
mov edi, esp
lea esi, [esp + 0x80]
call fcn.0045b46e
call fcn.0049d0d0
mov eax, dword [esp + 0x30]
test eax, eax
sete cl
mov edx, dword [esp + 0x34]
test edx, edx
sete bl
mov ebp, dword [esp + 0x14]
mov esi, edx
mov edx, dword [esp + 0x18]
and ebx, ecx
test bl, bl
je 0x5998fd
mov eax, dword [esp + 0xd8]
mov ecx, ebp
jmp 0x599405
cmp eax, ebp
seta cl
cmp esi, edx
sete bl
xchg edi, ebx
setg bl
xchg edi, ebx
and ecx, ebx
or edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x5998ef
mov edx, esi
mov ebp, eax
jmp 0x5998ef
mov ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
jmp 0x5993d9
mov ecx, eax
call fcn.0045ad80
nop
call fcn.0042fd30
add esp, 0xcc
ret
call fcn.00459790
jmp fcn.00599320