Function at 0x659300
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 0x6596a5
sub esp, 0x8c
mov ecx, dword [esp + 0x98]
test ecx, ecx
jbe 0x65969b
mov edx, dword [esp + 0x94]
cmp byte [edx], 0x30
jne 0x659398
mov ebx, dword [0x70777c]
lea eax, [ebx + 1]
cmp ecx, eax
jl 0x65936c
jb 0x659696
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 0x65939f
mov eax, dword [0x7073f8]
mov ecx, dword [0x7073fc]
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.0065bb80
movzx eax, byte [esp + 4]
test al, al
je 0x659616
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
test eax, eax
jne 0x65940d
mov ebx, dword [esp + 0x90]
jmp 0x659609
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 0x659430
mov eax, 1
jmp 0x659459
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 0x6594d6
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, [0x72cfa0]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x76f42c]
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.004a4ad0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x6593d0
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.00659a60
movzx eax, byte [esp + 0xc]
test al, al
je 0x659574
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, [0x72cfa0]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x770508]
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.004a4ad0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x6593d0
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x68]
mov edx, dword [eax + 0x6c]
mov ebx, dword [eax + 0x70]
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.006490c0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x90]
mov dword [ebx + 0x6c], ecx
mov dword [ebx + 0x70], edx
mov ecx, dword [0x900e70]
test ecx, ecx
jne 0x659601
mov dword [ebx + 0x68], eax
jmp 0x659609
lea edi, [ebx + 0x68]
call fcn.00456ac0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
jmp 0x6593d0
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
test eax, eax
jne 0x659676
mov eax, dword [esp + 0x34]
test eax, eax
je 0x65964e
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.00659300