Function at 0x6596b0
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 0x659a55
sub esp, 0x8c
mov ecx, dword [esp + 0x98]
test ecx, ecx
jbe 0x659a4b
mov edx, dword [esp + 0x94]
cmp byte [edx], 0x30
jne 0x659748
mov ebx, dword [0x70777c]
lea eax, [ebx + 1]
cmp ecx, eax
jl 0x65971c
jb 0x659a46
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 0x65974f
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 0x6599c6
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
test eax, eax
jne 0x6597bd
mov ebx, dword [esp + 0x90]
jmp 0x6599b9
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 0x6597e0
mov eax, 1
jmp 0x659809
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 0x659886
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 0x659780
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 0x659924
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 0x659780
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.006490c0
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 [0x900e70]
test ecx, ecx
jne 0x6599b1
mov dword [ebx + 0x70], eax
jmp 0x6599b9
lea edi, [ebx + 0x70]
call fcn.00456ac0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
jmp 0x659780
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
test eax, eax
jne 0x659a26
mov eax, dword [esp + 0x34]
test eax, eax
je 0x6599fe
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.006596b0