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

Disassembly:
mov ecx, dword [0x9aee30]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x6579e7
sub esp, 0xd0
mov eax, 0
mov dword [esp + 0xcc], eax
mov byte [esp + 0x37], 0
mov byte [esp + 0xdc], 0
mov eax, dword [esp + 0xd4]
movzx ecx, byte [eax + 0x6c]
test cl, cl
jne 0x6574b6
mov dword [esp], eax
call fcn.00489310
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea eax, [0x657a40]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xb4], eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0xcc], ecx
mov byte [esp + 0x37], 1
mov byte [eax + 8], 0
mov ecx, dword [esp + 0xd8]
test ecx, ecx
je 0x657497
lea edi, [esp + 0x80]
mov edx, eax
xor eax, eax
call fcn.0046cb2b
mov ecx, dword [edx + 0x7c]
mov ebx, dword [edx + 0x80]
test ebx, ebx
sete bl
xchg ebp, ebx
setg bl
xchg ebp, ebx
test ecx, ecx
seta cl
and ecx, ebx
or ebp, ecx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x657447
call fcn.004b2490
lea edi, [esp + 0xb8]
lea esi, [esp]
call fcn.0046d00e
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x7c]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0x80]
lea edi, [esp]
lea esi, [esp + 0xb8]
call fcn.0046d00e
xor ecx, ecx
mov ebx, dword [esp + 0x44]
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov ecx, 0
sbb ecx, edx
mov dword [esp + 0x18], ecx
call fcn.004b1870
lea edi, [esp + 0x80]
lea esi, [esp + 0x1c]
call fcn.0046d00e
mov edx, dword [esp + 0xd4]
mov eax, dword [edx + 0xc]
lea ecx, [0x694d40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xd8]
lea ebx, [eax + 0x18]
mov dword [esp + 0x98], ebx
mov dword [esp + 8], ebx
call fcn.0040e290
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, dword [eax + 8]
test cl, cl
je 0x6574c5
mov dword [esp + 0x3c], edx
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 4]
xor ebx, ebx
xor ebp, ebp
jmp 0x65764f
mov byte [esp + 0xdc], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
call eax
add esp, 0xd0
ret
mov byte [esp + 0xdc], 0
add esp, 0xd0
ret
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x657505
call fcn.0040dcd0
mov eax, dword [0x9aef70]
mov ecx, dword [esp]
test eax, eax
jne 0x6574ee
mov eax, dword [esp + 0xd4]
jmp 0x657502
call fcn.0046c8a0
mov dword [edi], ecx
mov eax, dword [esp + 0xd4]
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x10]
lea edx, [0x694d80]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.0040e0a0
mov esi, dword [esp + 0xc]
lea edi, [esp + 0x48]
call fcn.0046cffa
lea eax, [esp + 0x48]
mov dword [esp], eax
call fcn.00658680
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
inc ecx
nop
mov edx, dword [esp + 0x58]
cmp eax, ecx
jae 0x657586
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6b1400]
mov dword [esp + 0x10], eax
call fcn.004508b0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [0x9aef70]
test eax, eax
jne 0x65759d
mov eax, dword [esp + 0xd8]
jmp 0x6575b2
call fcn.0046c8a0
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
mov ebx, dword [edx + ecx*4 - 4]
mov dword [edi + 4], ebx
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [esp + 0xd4]
mov eax, dword [eax + 0x10]
lea ecx, [0x694d80]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
call fcn.0040e630
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x9aef70]
test eax, eax
je 0x657615
mov dword [esp + 0x94], edi
lea eax, [0x6a9d80]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x48]
mov dword [esp + 8], eax
call fcn.00412800
mov edi, dword [esp + 0x94]
lea esi, [esp + 0x48]
call fcn.0046cffa
mov byte [esp + 0xdc], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
call eax
add esp, 0xd0
ret
mov ebx, dword [esp + 0x68]
mov ebx, edx
mov ebp, eax
mov edx, dword [esp + 0x3c]
mov eax, ecx
mov ecx, dword [esp + 0x68]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
mov byte [esp + 0x34], bl
test eax, eax
je 0x657984
mov dword [esp + 0x38], eax
test bl, bl
jne 0x657923
mov esi, dword [ecx + eax*4 - 4]
mov dword [esp + 0x64], esi
lea edi, [esp + 0x6c]
lea esi, [esp + 0x80]
call fcn.0046d00e
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
test ecx, 0x80000000
je 0x6576c1
mov dword [esp + 0x44], esi
shl ecx, 1
mov edi, esi
shl esi, 1
shr edi, 0x1f
or ecx, edi
mov edi, ecx
shl ecx, 1
shr esi, 0x1f
or esi, ecx
shr edi, 0x1f
add esi, 0xd7b17f80
adc edi, 0xd
mov ecx, esi
mov esi, dword [esp + 0x44]
jmp 0x6576c9
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
test ecx, ecx
sete cl
test edi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ecx
xchg edi, eax
test al, al
xchg edi, eax
je 0x6576ee
test esi, 0x3fffffff
jne 0x6576ee
xor ecx, ecx
jmp 0x657774
mov eax, dword [esp + 0x64]
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0x9c]
call fcn.0046d00e
lea edi, [esp]
lea esi, [esp + 0x9c]
call fcn.0046d00e
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.004b3520
lea edi, [esp + 0xb8]
lea esi, [esp + 0x1c]
call fcn.0046d00e
lea edi, [esp]
lea esi, [esp + 0xb8]
call fcn.0046d00e
lea edi, [esp + 0x14]
lea esi, [esp + 0x80]
call fcn.0046d00e
call fcn.004b07f0
movzx eax, byte [esp + 0x28]
mov edx, dword [esp + 0x3c]
movzx ebx, byte [esp + 0x34]
movzx ebp, byte [esp + 0x35]
mov ecx, eax
mov eax, dword [esp + 0x38]
mov byte [esp + 0x33], cl
test cl, cl
je 0x6577bc
lea eax, [0x69cc40]
mov dword [esp], eax
call fcn.0040d2a0
mov eax, dword [esp + 4]
lea ecx, [0x657a00]
mov dword [eax], ecx
mov edx, dword [0x9aef70]
test edx, edx
jne 0x6577a6
mov edx, dword [esp + 0x64]
jmp 0x6577b1
call fcn.0046c890
mov edx, dword [esp + 0x64]
mov dword [edi], edx
mov dword [eax + 4], edx
mov dword [esp], eax
call fcn.004462e0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.0065cab0
movzx eax, byte [esp + 4]
mov ecx, dword [esp + 0x38]
lea edx, [ecx - 1]
test al, al
jne 0x6577e1
movzx eax, byte [esp + 0x33]
test al, al
je 0x6577f2
mov ecx, edx
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x65763d
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00658420
movzx eax, byte [esp + 0x10]
test al, al
je 0x657915
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx]
test edx, edx
je 0x65783d
mov ecx, dword [esp + 0x38]
jmp 0x657919
mov byte [esp + 0x36], al
mov eax, dword [esp + 0xd4]
mov edx, dword [eax + 0x18]
nop
lea ebp, [0x694dc0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0040fd30
movzx eax, byte [esp + 0x10]
test al, al
je 0x65790a
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd4]
mov edx, dword [ecx + 0x14]
cmp dword [eax + 8], edx
jne 0x6578ed
mov ebx, dword [eax + 4]
test byte [ebx], al
mov ebp, dword [0x9aef70]
nop
mov esi, dword [eax]
test ebp, ebp
je 0x6578a2
call fcn.0046c8a0
mov dword [edi], esi
mov ebp, dword [ebx]
mov dword [edi + 4], ebp
mov dword [ebx], esi
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x9aef70]
mov esi, dword [eax + 4]
test ebp, ebp
je 0x6578d3
call fcn.0046c8d0
mov dword [edi], esi
mov ebp, dword [ebx + 4]
mov dword [edi + 4], ebp
mov ebp, dword [eax]
mov dword [edi + 8], ebp
mov ebp, dword [eax + 4]
mov dword [edi + 0xc], ebp
mov ebp, dword [eax + 8]
mov dword [edi + 0x10], ebp
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
dec dword [edx + 0x14]
mov eax, dword [esp + 0x64]
mov edx, dword [ecx + 0x18]
lea ebx, [0x694dc0]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00410460
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x657919
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x65763d
test eax, eax
je 0x657984
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0xc]
lea edx, [0x694d40]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.0040e630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov ecx, dword [0x9aef70]
test ecx, ecx
jne 0x657970
mov ecx, dword [esp + 0x68]
jmp 0x657980
call fcn.0046c8a0
mov ecx, dword [esp + 0x68]
mov dword [edi], ecx
mov ebx, dword [eax]
mov dword [edi + 4], ebx
mov dword [eax], ecx
jmp 0x6579ab
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0xc]
lea edx, [0x694d40]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 8], ecx
call fcn.0040eb00
movzx eax, byte [esp + 0x34]
test al, al
je 0x6574c5
movzx eax, byte [esp + 0x35]
mov byte [esp + 0xdc], al
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
call eax
add esp, 0xd0
ret
call fcn.0046b490
jmp fcn.00657300