Function at 0x659680
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 0x659a25
sub esp, 0x8c
mov ecx, dword [esp + 0x98]
test ecx, ecx
jbe 0x659a1b
mov edx, dword [esp + 0x94]
cmp byte [edx], 0x30
jne 0x659718
mov ebx, dword [0x70787c]
lea eax, [ebx + 1]
cmp ecx, eax
jl 0x6596ec
jb 0x659a16
mov ebp, dword [esp + 0x9c]
sub ebp, ebx
dec ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
sub ecx, ebx
add edx, eax
dec ecx
jmp 0x65971f
mov eax, dword [0x707040]
mov ecx, dword [0x707044]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
add esp, 0x8c
ret
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x38], ecx
lea edi, [esp + 0x4c]
xor eax, eax
call fcn.00456d50
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], esi
mov ecx, dword [esp + 0x90]
movzx edx, byte [ecx]
mov byte [esp + 0x7c], dl
xor eax, eax
xor edx, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x4c]
mov dword [esp], ecx
call fcn.0065bb50
movzx eax, byte [esp + 4]
test al, al
je 0x659996
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
test eax, eax
jne 0x65978d
mov ebx, dword [esp + 0x90]
jmp 0x659989
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov byte [esp + 0xc], 0x20
call fcn.00403350
cmp dword [esp + 0x10], 0xffffffff
je 0x6597b0
mov eax, 1
jmp 0x6597d9
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 9
call fcn.00403350
cmp dword [esp + 0x10], 0xffffffff
setne al
test al, al
je 0x659856
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409120
mov eax, dword [esp + 0xc]
lea ecx, [0x72d140]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x76f6cc]
mov dword [esp], eax
mov dword [esp + 4], 0x16
lea edx, [esp + 0x44]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a4ab0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x659750
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00659a30
movzx eax, byte [esp + 0xc]
test al, al
je 0x6598f4
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00409120
mov eax, dword [esp + 0xc]
lea ecx, [0x72d140]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x7707a8]
mov dword [esp], eax
mov dword [esp + 4], 0x18
lea edx, [esp + 0x44]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a4ab0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x659750
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x70]
mov edx, dword [eax + 0x74]
mov ebx, dword [eax + 0x78]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov byte [esp + 0x24], 0
call fcn.00649080
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x74], ecx
mov dword [ebx + 0x78], edx
mov ecx, dword [0x901e80]
test ecx, ecx
jne 0x659981
mov dword [ebx + 0x70], eax
jmp 0x659989
lea edi, [ebx + 0x70]
call fcn.00456ac0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
jmp 0x659750
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
test eax, eax
jne 0x6599f6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x6599ce
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa8], eax
add esp, 0x8c
ret
mov eax, dword [esp + 0x78]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
add esp, 0x8c
ret
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
add esp, 0x8c
ret
call fcn.00456ba0
xor eax, eax
mov ecx, eax
call fcn.00456b40
nop
call fcn.00455690
jmp fcn.00659680