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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
push ebx
push esi
push edi
lea eax, [ebp + 0x10]
mov ebx, ecx
push eax
push dword [ebp + 0xc]
mov dword [esp + 0x2c], ebx
call fcn.0064f6e0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x64e5a1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
movsd xmm4, qword [edi + 0xa0]
xorps xmm2, xmm2
mov eax, dword [edi + 0x70]
mov ecx, dword [edi + 0x74]
movsd xmm3, qword [edi + 0x40]
movsd qword [esp + 0x28], xmm4
movsd qword [esp + 0x30], xmm2
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x64e5fb
jmp 0x64e5d0
mov esi, dword [eax]
movsd xmm1, qword [esi + 0xa8]
movsd xmm0, qword [esi + 0xa0]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x64e5fd
mov eax, dword [eax + 4]
test eax, eax
jne 0x64e5d0
xor esi, esi
movsd xmm0, qword [edi + 0x60]
comisd xmm0, xmm3
seta byte [esp + 0x1b]
test ecx, ecx
je 0x64e76c
movsd xmm0, qword [ecx + 0xa8]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x64e76c
movsd xmm0, qword [ecx + 0xa0]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x3c]
mov ecx, ebx
push eax
sub esp, 0x10
subsd xmm0, xmm4
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm4
push dword [ebp + 8]
call fcn.0064ab50
test al, al
je 0x64e769
mov eax, dword [esp + 0x1c]
movsd xmm1, qword [esp + 0x38]
comisd xmm1, xmmword [eax + 0xa0]
jbe 0x64e769
movsd xmm0, qword [esp + 0x28]
comisd xmm0, xmm1
jbe 0x64e769
movsd xmm0, qword [esp + 0x30]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
call fcn.0065a510
test eax, eax
je 0x64e769
movsd xmm0, qword [esp + 0x38]
sub esp, 8
mov ecx, ebx
mov esi, eax
movsd qword [esp], xmm0
push dword [esp + 0x24]
call fcn.00649cc0
mov edi, eax
mov ecx, edi
mov dword [esp + 0x20], edi
call fcn.00659000
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x68], 0
jne 0x64e6e3
movsd xmm0, qword [0x6b7ea0]
movsd qword [eax + 0x60], xmm0
movsd xmm1, qword [esp + 0x30]
mov ebx, esi
mov byte [eax + 0x68], 1
comisd xmm1, xmmword [ebx + 0xa0]
jbe 0x64e769
movsd xmm0, qword [ebx + 0xa8]
comisd xmm0, xmm1
jbe 0x64e769
mov ecx, dword [ebp + 8]
sub esp, 8
movsd qword [esp], xmm1
push ebx
call fcn.00649cc0
cmp byte [esp + 0x1b], 0
mov dword [esp + 0x1c], eax
je 0x64e747
cmp byte [ebx + 0x68], 0
jne 0x64e736
movsd xmm0, qword [0x6b7ea0]
movsd qword [ebx + 0x60], xmm0
mov ecx, eax
mov byte [ebx + 0x68], 1
call fcn.00659000
mov esi, dword [esp + 0x1c]
jmp 0x64e769
mov ecx, ebx
call fcn.00659000
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x48], 0
jne 0x64e765
movsd xmm0, qword [0x6b7ea0]
movsd qword [eax + 0x40], xmm0
mov byte [eax + 0x48], 1
xorps xmm2, xmm2
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x70]
movsd xmm3, qword [edx + 0x60]
test eax, eax
je 0x64e7af
jmp 0x64e780
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
movsd xmm1, qword [ecx + 0xa8]
movsd xmm0, qword [ecx + 0xa0]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x64e7b5
mov eax, dword [eax + 4]
test eax, eax
jne 0x64e780
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp byte [esp + 0x1b], 0
jne 0x64e7c2
mov dword [esp + 0x1c], esi
mov esi, ecx
mov eax, dword [edx + 0x78]
mov ebx, edi
mov dword [esp + 0x28], eax
xor al, al
mov edi, dword [esp + 0x28]
mov byte [esp + 0x1a], al
mov ecx, ebx
call fcn.0065aec0
or byte [esp + 0x1a], al
mov ebx, dword [ebx + 0x78]
cmp ebx, edi
jne 0x64e7d5
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
push 1
push 8
add ecx, 4
mov dword [edi + 0x70], 0
call fcn.005cdc20
mov ebx, esi
mov dword [eax], esi
mov ecx, dword [edi + 0x70]
mov dword [eax + 4], ecx
mov dword [edi + 0x70], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x28], eax
xor al, al
mov edi, dword [esp + 0x28]
mov byte [esp + 0x19], al
mov ecx, ebx
call fcn.0065aec0
or byte [esp + 0x19], al
mov ebx, dword [ebx + 0x78]
cmp ebx, edi
jne 0x64e824
mov ecx, dword [ebp + 8]
push 1
push 8
mov dword [esi + 0x70], 0
lea ecx, [ecx + 4]
call fcn.005cdc20
mov edi, dword [esp + 0x20]
push dword [ebp + 0x10]
mov ebx, dword [esp + 0x28]
mov dword [eax], edi
mov ecx, dword [esi + 0x70]
mov dword [eax + 4], ecx
mov ecx, ebx
mov dword [esi + 0x70], eax
mov al, byte [esp + 0x1e]
or byte [esp + 0x1d], al
push edi
call fcn.0065c5e0
push dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
push esi
call fcn.0065c5e0
mov eax, dword [ebp + 0x10]
mov ecx, edi
movsd xmm0, qword [eax + 0xa8]
movsd qword [edi + 0xa8], xmm0
mov eax, dword [ebx]
push eax
mov word [edi + 0xba], 0
call fcn.006512f0
mov eax, dword [ebp + 8]
lea ecx, [edi + 0x30]
movsd xmm0, qword [edi + 0xa0]
push dword [eax]
push edi
sub esp, 8
movsd qword [esp], xmm0
push dword [ebx]
call fcn.0065d6b0
mov eax, dword [ebp + 8]
lea ecx, [edi + 0x50]
movsd xmm0, qword [edi + 0xa8]
push dword [eax]
lea eax, [edi + 0x20]
push eax
sub esp, 8
movsd qword [esp], xmm0
push dword [ebx]
call fcn.0065d6b0
movsd xmm4, qword [0x6f8788]
xorps xmm2, xmm2
movsd xmm5, qword [edi + 0x40]
movapd xmm1, xmm2
movsd xmm3, qword [edi + 0x60]
subsd xmm1, xmm5
movapd xmm0, xmm4
subsd xmm0, xmm5
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x64e974
movapd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x64e974
cmp byte [esp + 0x1b], 0
jne 0x64e943
movapd xmm0, xmm5
movaps xmm5, xmm3
movapd xmm3, xmm0
mov eax, dword [ebp + 8]
mov ecx, esi
movsd qword [esi + 0xa0], xmm5
movsd qword [esi + 0xa8], xmm3
mov eax, dword [eax]
push eax
mov word [esi + 0xba], 0
call fcn.006512f0
movsd xmm4, qword [0x6f8788]
xorps xmm2, xmm2
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x78]
mov dword [esp + 0x28], ecx
test eax, eax
je 0x64e98e
mov dword [eax + 0x78], ecx
test ecx, ecx
je 0x64e99c
mov dword [ecx + 0x74], eax
jmp 0x64e99c
mov dword [ebx + 0x18], ecx
test ecx, ecx
je 0x64e99c
mov dword [ecx + 0x74], 0
subsd xmm4, qword [edi + 0x40]
movapd xmm1, xmm2
subsd xmm1, qword [edi + 0x40]
dec dword [ebx + 0x24]
mulsd xmm1, xmm4
comisd xmm2, xmm1
jae 0x64e9c9
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x78], eax
mov dword [ebx + 0x20], edi
mov byte [edi + 0xbc], 1
jmp 0x64e9d2
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x78], eax
mov dword [ebx + 0x1c], edi
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x78]
mov edi, dword [ebp + 8]
test edx, edx
je 0x64e9eb
mov dword [edx + 0x78], eax
test eax, eax
je 0x64e9f9
mov dword [eax + 0x74], edx
jmp 0x64e9f9
mov dword [edi + 0x18], eax
test eax, eax
je 0x64e9f9
mov dword [eax + 0x74], 0
mov eax, dword [edi + 0x1c]
dec dword [edi + 0x24]
mov dword [esi + 0x78], eax
mov al, byte [esp + 0x19]
mov dword [edi + 0x1c], esi
test al, al
je 0x64ea1f
mov ecx, ebx
call fcn.0064ceb0
mov ecx, edi
call fcn.0064ceb0
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x64ea2c
cmp byte [ecx + 0xbc], 0
je 0x64ea2e
xor ecx, ecx
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc