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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x64cd26
sub esp, 0xe0
mov eax, 0
mov dword [esp + 0xdc], eax
mov byte [esp + 0x37], 0
mov byte [esp + 0xec], 0
mov eax, dword [esp + 0xe4]
movzx ecx, byte [eax + 0x68]
test cl, cl
jne 0x64c7ec
mov dword [esp], eax
call fcn.0046a440
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [0x64cd70]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x54]
mov dword [esp + 0xdc], ecx
mov byte [esp + 0x37], 1
mov byte [eax + 8], 0
mov ecx, dword [esp + 0xe8]
test ecx, ecx
je 0x64c7cd
lea edi, [esp + 0x70]
mov edx, eax
xor eax, eax
call fcn.0046336b
mov ecx, dword [edx + 0x78]
test ecx, ecx
seta cl
mov ebx, dword [edx + 0x7c]
test ebx, ebx
setg bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ecx, ebp
or ebx, ecx
test bl, bl
je 0x64c780
call fcn.004ad470
lea edi, [esp + 0x98]
lea esi, [esp]
call fcn.0046384e
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x44], ecx
xor edx, edx
sub edx, ecx
mov ebx, dword [eax + 0x7c]
lea edi, [esp]
lea esi, [esp + 0x98]
call fcn.0046384e
xor ecx, ecx
mov ebp, dword [esp + 0x44]
sub ecx, ebp
mov ecx, 0
sbb ecx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
call fcn.004ac850
lea edi, [esp + 0x70]
lea esi, [esp + 0x1c]
call fcn.0046384e
mov edx, dword [esp + 0xe4]
mov eax, dword [edx + 0xc]
lea ecx, [0x6981c0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe8]
lea ebx, [eax + 0x18]
mov dword [esp + 0x50], ebx
mov dword [esp + 8], ebx
call fcn.0040c880
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
movzx edx, byte [esp + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
test dl, dl
je 0x64c7fb
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ecx
xor edx, edx
xor ebp, ebp
jmp 0x64c988
mov byte [esp + 0xec], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
call eax
add esp, 0xe0
ret
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x64c83a
call fcn.0040c2e0
mov eax, dword [0x90e260]
mov ecx, dword [esp]
test eax, eax
jne 0x64c827
mov eax, dword [esp + 0xe4]
mov dword [eax + 0x10], ecx
jmp 0x64c83a
mov edx, dword [esp + 0xe4]
lea edi, [edx + 0x10]
mov eax, ecx
call fcn.004630d0
mov eax, edx
mov ecx, dword [eax + 0x10]
lea edx, [0x698240]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040c6b0
mov esi, dword [esp + 0xc]
lea edi, [esp + 0xc0]
call fcn.0046383a
lea eax, [esp + 0xc0]
mov dword [esp], eax
call fcn.0064d870
nop
mov eax, dword [esp + 0xd4]
lea ecx, [eax + 1]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd8]
cmp ebx, ecx
jae 0x64c8cb
lea ebp, [0x6acee0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
call fcn.0044b8c0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xd0], edx
lea ecx, [eax + 1]
mov dword [esp + 0xd4], ecx
mov ecx, dword [0x90e260]
lea edi, [edx + eax*4]
test ecx, ecx
jne 0x64c8ee
mov ecx, dword [esp + 0xe8]
mov dword [edx + eax*4], ecx
jmp 0x64c8fa
mov eax, dword [esp + 0xe8]
call fcn.004630d0
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 0x10]
lea ecx, [0x698240]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.0040cc00
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x90e260]
test eax, eax
jne 0x64c93c
lea esi, [esp + 0xc0]
call fcn.0046383a
jmp 0x64c959
lea eax, [0x6aee60]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0xc0]
mov dword [esp + 8], eax
call fcn.00410e50
mov byte [esp + 0xec], 0
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
call eax
add esp, 0xe0
ret
mov ebx, dword [esp + 0x4c]
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
xchg ebp, eax
mov byte [esp + 0x35], al
xchg ebp, eax
mov byte [esp + 0x34], dl
test ebx, ebx
je 0x64ccc6
mov dword [esp + 0x38], ebx
test dl, dl
jne 0x64cc6f
mov eax, dword [ecx + ebx*4 - 4]
lea edi, [esp + 0x5c]
lea esi, [esp + 0x70]
call fcn.0046384e
mov ecx, dword [esp + 0x5c]
mov esi, edx
mov edx, dword [esp + 0x60]
test edx, 0x80000000
je 0x64ca02
shl edx, 1
mov edi, ecx
shr ecx, 0x1f
or edx, ecx
mov dword [esp + 0x44], edx
mov ecx, edi
shl edi, 1
shl edx, 1
shr edi, 0x1f
or edi, edx
mov edx, edi
add edi, 0xd7b17f80
mov ebp, dword [esp + 0x44]
shr ebp, 0x1f
add edx, 0xd7b17f80
adc ebp, 0xd
mov edx, ebp
movzx ebp, byte [esp + 0x35]
jmp 0x64ca0a
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x48], eax
test edx, edx
sete dl
test edi, edi
mov edi, ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
test dl, dl
je 0x64ca30
test ecx, 0x3fffffff
jne 0x64ca30
xor ecx, ecx
jmp 0x64caaf
test byte [eax], al
lea esi, [eax + 0x64]
lea edi, [esp + 0x84]
call fcn.0046384e
lea edi, [esp]
lea esi, [esp + 0x84]
call fcn.0046384e
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.004aec40
lea edi, [esp + 0xac]
lea esi, [esp + 0x1c]
call fcn.0046384e
lea edi, [esp]
lea esi, [esp + 0xac]
call fcn.0046384e
lea edi, [esp + 0x14]
lea esi, [esp + 0x70]
call fcn.0046384e
call fcn.004ab510
movzx eax, byte [esp + 0x28]
mov ebx, dword [esp + 0x38]
movzx esi, byte [esp + 0x34]
movzx edi, byte [esp + 0x35]
mov ecx, eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x33], cl
test cl, cl
je 0x64cb00
lea eax, [0x69f980]
mov dword [esp], eax
call fcn.0040b800
mov eax, dword [esp + 4]
lea ecx, [0x64cd30]
mov dword [eax], ecx
mov edx, dword [0x90e260]
test edx, edx
jne 0x64cae4
mov edx, dword [esp + 0x48]
mov dword [eax + 4], edx
jmp 0x64caf4
lea edi, [eax + 4]
mov edx, eax
mov eax, dword [esp + 0x48]
call fcn.004630d0
mov eax, edx
mov dword [esp], eax
call fcn.00442540
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.00651d40
mov eax, dword [esp + 0x38]
lea ecx, [eax - 1]
movzx edx, byte [esp + 4]
test dl, dl
jne 0x64cb21
movzx edx, byte [esp + 0x33]
test dl, dl
je 0x64cb30
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
jmp 0x64c978
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.0064d610
movzx eax, byte [esp + 0x10]
test al, al
je 0x64cc61
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
test edx, edx
je 0x64cb7b
mov ecx, dword [esp + 0x38]
jmp 0x64cc65
mov byte [esp + 0x36], al
nop
mov eax, dword [esp + 0xe4]
mov edx, dword [eax + 0x18]
lea ebp, [0x697dc0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0040e400
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x64cc56
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x14]
cmp dword [eax + 8], edx
jne 0x64cc39
mov edi, dword [eax + 4]
test byte [edi], al
nop
mov ebx, dword [0x90e260]
mov ebp, dword [eax]
test ebx, ebx
jne 0x64cbd8
mov dword [edi], ebp
jmp 0x64cbe3
mov ebx, eax
mov eax, ebp
call fcn.004630d0
mov eax, ebx
mov ebx, dword [eax]
test byte [ebx], al
mov ebp, dword [0x90e260]
mov esi, dword [eax + 4]
test ebp, ebp
jne 0x64cc0d
mov dword [ebx + 4], esi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x64cc36
lea edi, [ebx + 4]
mov ebx, eax
mov eax, esi
call fcn.004630d0
mov edi, ebx
xor eax, eax
call fcn.004630d0
lea ebp, [ebx + 4]
mov edi, ebp
call fcn.004630d0
lea edi, [ebx + 8]
xor eax, eax
call fcn.004630d0
dec dword [edx + 0x14]
mov eax, dword [esp + 0x48]
mov edx, dword [ecx + 0x18]
lea ebx, [0x697dc0]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.0040eb50
movzx eax, byte [esp + 0x36]
mov ecx, dword [esp + 0x40]
jmp 0x64cc65
mov ecx, dword [esp + 0x38]
mov edx, 1
jmp 0x64c978
test ebx, ebx
je 0x64ccc6
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0xc]
lea edx, [0x6981c0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040cc00
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 8], eax
mov eax, dword [0x90e260]
test eax, eax
jne 0x64ccbb
mov eax, dword [esp + 0x4c]
mov dword [edi], eax
jmp 0x64ccea
mov eax, dword [esp + 0x4c]
call fcn.004630d0
jmp 0x64ccea
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 0xc]
lea edx, [0x6981c0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
call fcn.0040d0f0
movzx eax, byte [esp + 0x34]
test al, al
je 0x64c7fb
movzx eax, byte [esp + 0x35]
mov byte [esp + 0xec], al
mov byte [esp + 0x37], 0
mov edx, dword [esp + 0xdc]
mov eax, dword [edx]
call eax
add esp, 0xe0
ret
call fcn.00461cc0
jmp fcn.0064c650