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

Disassembly:
sub esp, 0x20
mov edx, dword [esp + 0x28]
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
xor edi, edi
mov dword [esp + 0x14], ecx
xor esi, esi
cmp byte [edx + 0x58], 0
je 0x1018f320
cmp byte [edx + 0x78], 0
je 0x1018f33b
test esi, esi
mov eax, edx
mov edi, edx
cmovne eax, esi
mov esi, eax
jmp 0x1018f32f
test esi, esi
je 0x1018f32d
cmp byte [edx + 0xc8], 0
jne 0x1018f342
xor edi, edi
cmp edx, ebp
je 0x1018f344
mov edx, dword [edx + 0x88]
jmp 0x1018f307
test edi, edi
cmovne ebp, edi
jmp 0x1018f344
mov ebp, edi
mov dword [esp + 0x10], esi
test esi, esi
jne 0x1018f358
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
movsd xmm4, qword [esi + 0xb0]
xorps xmm2, xmm2
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x84]
movsd xmm3, qword [esi + 0x50]
movsd qword [esp + 0x28], xmm4
movsd qword [esp + 0x18], xmm2
mov dword [esp + 0x3c], ecx
test eax, eax
je 0x1018f3bb
nop dword [eax + eax]
mov ebx, dword [eax]
movsd xmm1, qword [ebx + 0xb8]
movsd xmm0, qword [ebx + 0xb0]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x1018f3bd
mov eax, dword [eax + 4]
test eax, eax
jne 0x1018f390
xor ebx, ebx
movsd xmm0, qword [esi + 0x70]
comisd xmm0, xmm3
seta dl
mov byte [esp + 0x38], dl
test ecx, ecx
je 0x1018f4f9
movsd xmm0, qword [ecx + 0xb8]
ucomisd xmm0, xmm4
lahf
test ah, 0x44
jp 0x1018f4f9
movsd xmm0, qword [ecx + 0xb0]
lea eax, [esp + 0x18]
mov edi, dword [esp + 0x34]
subsd xmm0, xmm4
mov ecx, dword [esp + 0x14]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm4
push eax
lea eax, [esp + 0x34]
push eax
push edi
call fcn.10197820
test al, al
je 0x1018f6b9
mov edx, dword [esp + 0x3c]
movsd xmm4, qword [esp + 0x20]
comisd xmm4, xmmword [edx + 0xb0]
jbe 0x1018f6b9
movsd xmm0, qword [esp + 0x28]
comisd xmm0, xmm4
jbe 0x1018f6b9
movsd xmm1, qword [esp + 0x18]
mov ecx, edx
call fcn.101984d0
mov esi, eax
test esi, esi
je 0x1018f6b9
mov ecx, dword [esp + 0x14]
movaps xmm2, xmm4
push edx
mov ebx, esi
call fcn.10190ff0
mov ecx, eax
mov dword [esp + 0x10], ecx
call fcn.10190fc0
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x78], 0
jne 0x1018f495
movsd xmm0, qword [0x102265b8]
movsd qword [eax + 0x70], xmm0
movsd xmm1, qword [esp + 0x18]
mov byte [eax + 0x78], 1
comisd xmm1, xmmword [esi + 0xb0]
jbe 0x1018f6c2
movsd xmm0, qword [esi + 0xb8]
comisd xmm0, xmm1
jbe 0x1018f6c2
push esi
movaps xmm2, xmm1
mov ecx, edi
call fcn.10190ff0
mov dl, byte [esp + 0x38]
test dl, dl
je 0x1018f696
cmp byte [esi + 0x78], 0
jne 0x1018f4e9
movsd xmm0, qword [0x102265b8]
movsd qword [esi + 0x70], xmm0
mov ecx, eax
mov byte [esi + 0x78], 1
call fcn.10190fc0
mov ebx, eax
xorps xmm2, xmm2
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x80]
movsd xmm3, qword [ebp + 0x70]
test eax, eax
je 0x1018f53b
nop dword [eax]
mov edi, dword [eax]
movsd xmm1, qword [edi + 0xb8]
movsd xmm0, qword [edi + 0xb0]
subsd xmm1, xmm3
subsd xmm0, xmm3
mulsd xmm1, xmm0
comisd xmm2, xmm1
jae 0x1018f53d
mov eax, dword [eax + 4]
test eax, eax
jne 0x1018f510
xor edi, edi
test dl, dl
mov esi, ebx
cmovne esi, edi
cmovne edi, ebx
push edi
push ebp
push ecx
mov ecx, dword [esp + 0x20]
call fcn.10197f30
push dword [esp + 0x10]
mov ebx, dword [esp + 0x38]
mov ecx, ebx
push esi
push edi
mov byte [esp + 0x48], al
call fcn.10197f30
mov ecx, dword [esp + 0x14]
or byte [esp + 0x3c], al
push ebp
push dword [esp + 0x14]
call fcn.10197ed0
push esi
push edi
mov ecx, ebx
call fcn.10197ed0
movsd xmm0, qword [ebp + 0xb8]
mov ebp, dword [esp + 0x10]
mov ecx, ebp
mov esi, dword [esp + 0x14]
movsd qword [ebp + 0xb8], xmm0
mov eax, dword [esi]
push eax
mov word [ebp + 0xca], 0
call fcn.1018cfd0
movsd xmm0, qword [ebp + 0xb0]
lea ecx, [ebp + 0x40]
sub esp, 8
movsd qword [esp], xmm0
push dword [ebx]
push ebp
push dword [esi]
call fcn.10185b50
movsd xmm0, qword [ebp + 0xb8]
lea eax, [ebp + 0x30]
sub esp, 8
lea ecx, [ebp + 0x60]
movsd qword [esp], xmm0
push dword [ebx]
push eax
push dword [esi]
call fcn.10185b50
movsd xmm6, qword [ebp + 0x50]
xorps xmm1, xmm1
movsd xmm4, qword [0x10226358]
subsd xmm1, xmm6
movsd xmm3, qword [ebp + 0x70]
movaps xmm0, xmm4
subsd xmm0, xmm6
xorps xmm2, xmm2
movaps xmm5, xmm6
mulsd xmm1, xmm0
comisd xmm2, xmm1
jb 0x1018f660
xorps xmm0, xmm0
subsd xmm4, xmm3
subsd xmm0, xmm3
mulsd xmm0, xmm4
comisd xmm2, xmm0
jb 0x1018f660
cmp byte [esp + 0x38], 0
jne 0x1018f63d
movaps xmm5, xmm3
movaps xmm3, xmm6
movsd qword [edi + 0xb0], xmm5
mov ecx, edi
movsd qword [edi + 0xb8], xmm3
mov eax, dword [ebx]
push eax
mov word [edi + 0xca], 0
call fcn.1018cfd0
mov esi, dword [ebp + 0x88]
push 0
push ebp
mov ebp, dword [esp + 0x1c]
mov ecx, ebp
call fcn.10197e40
mov ecx, dword [edi + 0x84]
mov eax, dword [edi + 0x88]
test ecx, ecx
je 0x1018f6ce
mov dword [ecx + 0x88], eax
test eax, eax
je 0x1018f6df
mov dword [eax + 0x84], ecx
jmp 0x1018f6df
mov ecx, esi
call fcn.10190fc0
cmp byte [eax + 0x58], 0
jne 0x1018f6b0
movsd xmm0, qword [0x102265b8]
movsd qword [eax + 0x50], xmm0
mov byte [eax + 0x58], 1
jmp 0x1018f4f6
mov dl, byte [esp + 0x38]
jmp 0x1018f4f6
mov dl, byte [esp + 0x38]
xorps xmm2, xmm2
jmp 0x1018f4fd
mov dword [ebx + 0x18], eax
test eax, eax
je 0x1018f6df
mov dword [eax + 0x84], 0
dec dword [ebx + 0x24]
cmp byte [esp + 0x3c], 0
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x88], eax
mov dword [ebx + 0x1c], edi
je 0x1018f703
mov ecx, ebp
call fcn.10197dd0
mov ecx, ebx
call fcn.10197dd0
test esi, esi
je 0x1018f710
cmp byte [esi + 0xcc], 0
je 0x1018f712
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc