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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x4c8
mov eax, dword [0x10444724]
xor eax, esp
mov dword [esp + 0x4c4], eax
mov eax, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x10]
push edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
push 0xd0
mov dword [esp + 0x58], eax
lea eax, [esp + 0x2fc]
push 0
push eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], esi
mov byte [esp + 0x4cd], 0
call sub.VCRUNTIME140.dll_memset
push 0xd0
xorps xmm0, xmm0
lea eax, [esp + 0x3f8]
push 0
push eax
movups xmmword [esp + 0x3e0], xmm0
movups xmmword [esp + 0x3f0], xmm0
call sub.VCRUNTIME140.dll_memset
xor eax, eax
mov word [esp + 0x4d7], 0x100
push 0xd0
push eax
mov word [esp + 0x4dc], ax
mov byte [esp + 0x4de], al
mov dword [esp + 0x4d8], eax
mov byte [esp + 0x301], al
lea eax, [esp + 0x138]
push eax
call sub.VCRUNTIME140.dll_memset
push 0xd0
xorps xmm0, xmm0
lea eax, [esp + 0x230]
push 0
push eax
movups xmmword [esp + 0x218], xmm0
movups xmmword [esp + 0x228], xmm0
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esi]
xor eax, eax
mov word [esp + 0x30c], ax
add esp, 0x30
mov byte [esp + 0x2de], al
mov dword [esp + 0x2d8], eax
mov word [esp + 0x2df], 0x100
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 4]
call eax
mov edi, dword [esi]
mov ecx, edi
movsd xmm0, qword [eax]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0xc0], xmm0
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0x44]
call eax
push eax
mov ecx, edi
call esi
mov edi, dword [esp + 0x14]
push 0
movsd xmm0, qword [eax]
mov ecx, dword [edi]
movsd qword [esp + 0xcc], xmm0
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0xd4], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
movsd xmm0, qword [eax]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [eax + 8]
mov edi, dword [edi]
mov ecx, edi
movsd qword [esp + 0xe0], xmm0
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0x44]
call eax
push eax
mov ecx, edi
call esi
mov esi, dword [esp + 0x3c]
lea edx, [esp + 0xb8]
push edx
lea edx, [esp + 0x2fc]
mov dword [esp + 0x44], 0
movsd xmm0, qword [eax]
mov ecx, dword [esi]
movsd qword [esp + 0xec], xmm0
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0xf4], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [0x103b6508]
push edx
movsd qword [esp + 0x60], xmm0
mov eax, dword [eax + 0x2c]
call eax
test eax, eax
je 0x102c9ac6
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xd8]
push edx
lea edx, [esp + 0x11c]
push edx
mov ecx, dword [ecx]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test eax, eax
je 0x102c9ac6
mov al, byte [esp + 0x4be]
movsd xmm3, qword [0x10386870]
cmp al, 1
jbe 0x102c8cca
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ecx
test al, al
je 0x102c8ca8
lea edi, [esp + 0x2f8]
nop dword [eax]
nop word [eax + eax]
movsd xmm4, qword [0x10399998]
lea esi, [esp + 0xc0]
mov dword [esp + 0xc], 2
nop word [eax + eax]
movsd xmm2, qword [edi]
movsd xmm1, qword [esi - 8]
movaps xmm0, xmm2
subsd xmm0, xmm1
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x102c8b42
movsd xmm0, qword [edi + 8]
subsd xmm0, qword [esi]
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x102c8b42
mov al, 1
jmp 0x102c8c68
cvtpd2ps xmm0, xmm1
sub esp, 8
movss dword [esp + 4], xmm0
cvtpd2ps xmm0, xmm2
movss dword [esp], xmm0
call fcn.10209e00
add esp, 8
test al, al
je 0x102c8c52
movsd xmm1, qword [esi]
sub esp, 8
movsd xmm0, qword [edi + 8]
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.10209e00
add esp, 8
test al, al
je 0x102c8c52
movsd xmm0, qword [edi + 8]
movsd xmm2, qword [esi]
movsd xmm1, qword [edi]
subsd xmm1, qword [esi - 8]
movsd qword [esp + 0x28], xmm0
subsd xmm0, xmm2
movsd qword [esp + 0x30], xmm2
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm2, qword [esi - 8]
movaps xmm5, xmm0
movsd xmm4, qword [edi]
comisd xmm4, xmm2
jbe 0x102c8be1
movaps xmm1, xmm2
jmp 0x102c8be4
movaps xmm1, xmm4
movsd xmm0, qword [esp + 0x28]
comisd xmm1, xmm0
jbe 0x102c8bf3
movaps xmm1, xmm0
movsd xmm3, qword [esp + 0x30]
comisd xmm1, xmm3
jbe 0x102c8c02
movaps xmm1, xmm3
comisd xmm2, xmm4
ja 0x102c8c0b
movaps xmm2, xmm4
comisd xmm0, xmm2
ja 0x102c8c14
movaps xmm0, xmm2
comisd xmm3, xmm0
ja 0x102c8c1d
movaps xmm3, xmm0
xorps xmm1, xmmword [0x1038b810]
sub esp, 8
maxsd xmm1, xmm3
movaps xmm0, xmm1
addsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esp + 4], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10209c00
add esp, 8
jmp 0x102c8c54
xor al, al
mov ecx, dword [esp + 0x18]
movsd xmm4, qword [0x10399998]
movsd xmm3, qword [0x10386870]
movzx eax, al
add esi, 0x10
add ecx, eax
sub dword [esp + 0xc], 1
mov dword [esp + 0x18], ecx
jne 0x102c8b10
mov edx, dword [esp + 0x20]
add edi, 0x10
movzx eax, byte [esp + 0x4be]
inc edx
mov dword [esp + 0x20], edx
cmp edx, eax
jl 0x102c8af0
cmp ecx, 2
je 0x102c8eca
mov esi, dword [esp + 0x3c]
push dword [esi]
lea eax, [esp + 0xbc]
push eax
call fcn.102c4710
add esp, 8
test al, al
jne 0x102c8eca
movsd xmm3, qword [0x10386870]
mov al, byte [esp + 0x2de]
cmp al, 1
jbe 0x102c8ef0
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ecx
test al, al
je 0x102c8eb0
lea edi, [esp + 0x118]
nop dword [eax]
nop word [eax + eax]
movsd xmm4, qword [0x10399998]
lea esi, [esp + 0xe0]
mov dword [esp + 0x20], 2
nop word [eax + eax]
movsd xmm2, qword [edi]
movsd xmm1, qword [esi - 8]
movaps xmm0, xmm2
subsd xmm0, xmm1
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x102c8d52
movsd xmm0, qword [edi + 8]
subsd xmm0, qword [esi]
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x102c8d52
mov al, 1
jmp 0x102c8e78
cvtpd2ps xmm0, xmm1
sub esp, 8
movss dword [esp + 4], xmm0
cvtpd2ps xmm0, xmm2
movss dword [esp], xmm0
call fcn.10209e00
add esp, 8
test al, al
je 0x102c8e62
movsd xmm1, qword [esi]
sub esp, 8
movsd xmm0, qword [edi + 8]
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.10209e00
add esp, 8
test al, al
je 0x102c8e62
movsd xmm0, qword [edi + 8]
movsd xmm2, qword [esi]
movsd xmm1, qword [edi]
subsd xmm1, qword [esi - 8]
movsd qword [esp + 0x28], xmm0
subsd xmm0, xmm2
movsd qword [esp + 0x30], xmm2
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm2, qword [esi - 8]
movaps xmm5, xmm0
movsd xmm4, qword [edi]
comisd xmm4, xmm2
jbe 0x102c8df1
movaps xmm1, xmm2
jmp 0x102c8df4
movaps xmm1, xmm4
movsd xmm0, qword [esp + 0x28]
comisd xmm1, xmm0
jbe 0x102c8e03
movaps xmm1, xmm0
movsd xmm3, qword [esp + 0x30]
comisd xmm1, xmm3
jbe 0x102c8e12
movaps xmm1, xmm3
comisd xmm2, xmm4
ja 0x102c8e1b
movaps xmm2, xmm4
comisd xmm0, xmm2
ja 0x102c8e24
movaps xmm0, xmm2
comisd xmm3, xmm0
ja 0x102c8e2d
movaps xmm3, xmm0
xorps xmm1, xmmword [0x1038b810]
sub esp, 8
maxsd xmm1, xmm3
movaps xmm0, xmm1
addsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esp + 4], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10209c00
add esp, 8
jmp 0x102c8e64
xor al, al
mov ecx, dword [esp + 0x18]
movsd xmm4, qword [0x10399998]
movsd xmm3, qword [0x10386870]
movzx eax, al
add esi, 0x10
add ecx, eax
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ecx
jne 0x102c8d20
mov edx, dword [esp + 0xc]
add edi, 0x10
movzx eax, byte [esp + 0x2de]
inc edx
mov dword [esp + 0xc], edx
cmp edx, eax
jl 0x102c8d00
cmp ecx, 2
je 0x102c8eca
mov eax, dword [esp + 0x10]
push dword [eax]
lea eax, [esp + 0xdc]
push eax
call fcn.102c4710
add esp, 8
test al, al
je 0x102c8ee5
mov eax, 2
pop edi
pop esi
mov ecx, dword [esp + 0x4c4]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x10
mov al, byte [esp + 0x2de]
nop dword [eax]
mov ecx, dword [esp + 0x40]
xor edi, edi
movsd xmm5, qword [0x103b6508]
movzx eax, al
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
test eax, eax
je 0x102c9448
mov eax, dword [esp + 0x48]
lea esi, [esp + 0x2f8]
movsd xmm7, qword [eax + 0x80]
movsd xmm6, qword [eax + 0x78]
nop word [eax + eax]
comisd xmm7, xmm6
movsd xmm1, qword [esp + edi*8 + 0x208]
movsd xmm2, qword [0x103999a0]
jb 0x102c8f6e
movaps xmm0, xmm6
subsd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x102c8f8f
subsd xmm1, xmm7
comisd xmm2, xmm1
jmp 0x102c8f86
movaps xmm0, xmm1
subsd xmm0, xmm6
comisd xmm2, xmm0
jbe 0x102c8f8f
movaps xmm0, xmm7
subsd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x102c8f8f
mov eax, 1
jmp 0x102c8f91
xor eax, eax
test al, al
je 0x102c905a
movzx eax, byte [esp + 0x4be]
xor ecx, ecx
mov dword [esp + 0x20], eax
test eax, eax
je 0x102c905a
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x118]
movsd xmm3, qword [eax + 0x80]
movsd xmm4, qword [eax + 0x78]
nop word [eax + eax]
comisd xmm3, xmm4
movsd xmm1, qword [esp + ecx*8 + 0x3e8]
jb 0x102c8ff6
movaps xmm0, xmm4
subsd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x102c9017
subsd xmm1, xmm3
comisd xmm2, xmm1
jmp 0x102c900e
movaps xmm0, xmm1
subsd xmm0, xmm4
comisd xmm2, xmm0
jbe 0x102c9017
movaps xmm0, xmm3
subsd xmm0, xmm1
comisd xmm2, xmm0
jbe 0x102c9017
mov eax, 1
jmp 0x102c9019
xor eax, eax
test al, al
je 0x102c904c
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
subsd xmm1, qword [edx + 8]
subsd xmm0, qword [edx]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm1, xmm0
comisd xmm5, xmm1
jbe 0x102c904c
movaps xmm5, xmm1
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], ecx
inc ecx
add edx, 0x10
cmp ecx, dword [esp + 0x20]
jl 0x102c8fd0
inc edi
add esi, 0x10
cmp edi, dword [esp + 0x30]
jl 0x102c8f40
ucomisd xmm5, qword [0x103b6508]
lahf
test ah, 0x44
jnp 0x102c9448
mov ecx, dword [esp + 0xc]
xorps xmm3, xmm3
mov eax, dword [esp + 0x18]
mov edi, ecx
mov esi, eax
add edi, edi
add esi, esi
movsd xmm0, qword [esp + ecx*8 + 0x208]
subsd xmm6, xmm0
subsd xmm7, xmm0
mulsd xmm6, xmm7
comisd xmm3, xmm6
jb 0x102c926b
mov edx, dword [esp + 0x14]
movsd xmm1, qword [esp + eax*8 + 0x3e8]
movsd xmm2, qword [edx + 0x78]
movsd xmm0, qword [edx + 0x80]
subsd xmm2, xmm1
subsd xmm0, xmm1
mulsd xmm2, xmm0
comisd xmm3, xmm2
jb 0x102c926b
movsd xmm2, qword [esp + esi*8 + 0x2f8]
movsd xmm1, qword [esp + edi*8 + 0x118]
movaps xmm0, xmm2
movsd xmm3, qword [0x10386870]
subsd xmm0, xmm1
movsd xmm4, qword [0x10399998]
andps xmm0, xmm3
comisd xmm4, xmm0
jbe 0x102c912d
movsd xmm0, qword [esp + esi*8 + 0x300]
subsd xmm0, qword [esp + edi*8 + 0x120]
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x102c940e
cvtpd2ps xmm0, xmm1
sub esp, 8
movss dword [esp + 4], xmm0
cvtpd2ps xmm0, xmm2
movss dword [esp], xmm0
call fcn.10209e00
add esp, 8
test al, al
je 0x102c9267
movsd xmm1, qword [esp + edi*8 + 0x120]
sub esp, 8
movsd xmm0, qword [esp + esi*8 + 0x308]
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.10209e00
add esp, 8
test al, al
je 0x102c9267
movsd xmm0, qword [esp + esi*8 + 0x300]
movsd xmm2, qword [esp + edi*8 + 0x120]
movsd xmm1, qword [esp + esi*8 + 0x2f8]
subsd xmm1, qword [esp + edi*8 + 0x118]
movsd qword [esp + 0x30], xmm0
subsd xmm0, xmm2
movsd qword [esp + 0x20], xmm2
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm2, qword [esp + edi*8 + 0x118]
movaps xmm5, xmm0
movsd xmm4, qword [esp + esi*8 + 0x2f8]
comisd xmm4, xmm2
jbe 0x102c91f0
movaps xmm1, xmm2
jmp 0x102c91f3
movaps xmm1, xmm4
movsd xmm0, qword [esp + 0x30]
comisd xmm1, xmm0
jbe 0x102c9202
movaps xmm1, xmm0
movsd xmm3, qword [esp + 0x20]
comisd xmm1, xmm3
jbe 0x102c9211
movaps xmm1, xmm3
comisd xmm2, xmm4
ja 0x102c921a
movaps xmm2, xmm4
comisd xmm0, xmm2
ja 0x102c9223
movaps xmm0, xmm2
comisd xmm3, xmm0
ja 0x102c922c
movaps xmm3, xmm0
xorps xmm1, xmmword [0x1038b810]
sub esp, 8
maxsd xmm1, xmm3
movaps xmm0, xmm1
addsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esp + 4], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10209c00
add esp, 8
test al, al
jne 0x102c9406
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esp + esi*8 + 0x2f8]
movsd xmm1, qword [esp + esi*8 + 0x300]
subsd xmm1, qword [esp + edi*8 + 0x120]
subsd xmm0, qword [esp + edi*8 + 0x118]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm1, xmm0
comisd xmm1, xmmword [esp + 0x58]
ja 0x102c9ac6
inc dword [esp + 0x40]
cmp dword [esp + 0x28], 5
jge 0x102c9ac6
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x2e8]
movsd xmm0, qword [esp + ecx*8 + 0x208]
sub esp, 8
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x30], xmm0
mov ecx, dword [edi]
movsd qword [esp], xmm0
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
mov ecx, dword [edi]
lea edx, [esp + 0xf8]
sub esp, 8
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xc0], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov esi, dword [esp + 0x3c]
lea edx, [esp + 0xb8]
push edx
lea edx, [esp + 0x2fc]
movsd xmm1, qword [eax]
movsd xmm0, qword [eax + 8]
addsd xmm1, qword [esp + 0xbc]
addsd xmm0, qword [esp + 0xc4]
mov ecx, dword [esi]
push edx
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xd8], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test eax, eax
je 0x102c944c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x60]
sub esp, 8
movsd xmm0, qword [esp + ecx*8 + 0x3f0]
mov ecx, dword [esi]
movsd qword [esp], xmm0
push edx
movsd qword [esp + 0x34], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x48]
call eax
mov ecx, dword [esi]
lea edx, [esp + 0x80]
sub esp, 8
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xe0], xmm0
mov eax, dword [ecx]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
push edx
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi]
lea edx, [esp + 0xd8]
push edx
lea edx, [esp + 0x11c]
movsd xmm1, qword [eax]
movsd xmm0, qword [eax + 8]
addsd xmm1, qword [esp + 0xdc]
addsd xmm0, qword [esp + 0xe4]
push edx
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xf8], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test eax, eax
je 0x102c944c
jmp 0x102c8ee5
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x54]
push eax
lea eax, [esp + 0x2fc]
push eax
push ecx
lea eax, [esp + 0x124]
mov ecx, esi
push eax
call fcn.1020c040
movzx eax, byte [esi + 0x1c6]
pop edi
pop esi
mov ecx, dword [esp + 0x4c4]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [esp + 0x10]
mov esi, dword [edi]
mov edi, dword [esp + 0x14]
movsd xmm1, qword [0x10399a08]
movaps xmm0, xmmword [0x103b2940]
push 0
mov ecx, dword [edi]
movsd qword [esp + 0x94], xmm1
mov byte [esp + 0x9c], 0
movups xmmword [esp + 0x84], xmm0
mov eax, dword [ecx]
movsd qword [esp + 0x74], xmm1
mov byte [esp + 0x7c], 0
movups xmmword [esp + 0x64], xmm0
mov eax, dword [eax + 4]
call eax
movsd xmm0, qword [edi + 0x78]
lea ecx, [esp + 0x80]
push esi
push eax
mov eax, dword [esp + 0x44]
sub esp, 8
movsd qword [esp], xmm0
push dword [eax]
call fcn.102ca4d0
mov ecx, dword [esp + 0x10]
mov edi, dword [edi]
mov eax, dword [ecx]
mov ecx, edi
mov dword [esp + 0x28], eax
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0x44]
call eax
push eax
mov ecx, edi
call esi
push dword [esp + 0x28]
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x64]
mov esi, dword [esp + 0x40]
push eax
sub esp, 8
movsd xmm0, qword [edi + 0x80]
movsd qword [esp], xmm0
push dword [esi]
call fcn.102ca4d0
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x70]
movaps xmm1, xmm0
comisd xmm0, xmm2
movsd qword [esp + 0x20], xmm1
seta al
mov byte [esp + 0x3b], al
test al, al
je 0x102c952e
movaps xmm1, xmm2
movsd qword [esp + 0x20], xmm2
movaps xmm2, xmm0
mov ecx, dword [esp + 0x48]
movsd xmm3, qword [ecx + 0x78]
comisd xmm3, xmm1
jbe 0x102c9546
movaps xmm1, xmm3
movsd qword [esp + 0x20], xmm1
movsd xmm0, qword [ecx + 0x80]
comisd xmm2, xmm0
movsd qword [esp + 0x30], xmm0
ja 0x102c9563
movaps xmm0, xmm2
movsd qword [esp + 0x30], xmm0
comisd xmm1, xmm0
ja 0x102c9ac6
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x102c9609
mov ecx, dword [ecx]
movsd xmm0, qword [0x10399a08]
mov esi, dword [esi]
movsd qword [esp + 0x108], xmm0
mov eax, dword [ecx]
movaps xmm0, xmmword [0x103b2940]
push 0
mov byte [esp + 0x114], 0
mov eax, dword [eax + 4]
movups xmmword [esp + 0xfc], xmm0
call eax
push esi
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x18]
sub esp, 8
movsd xmm0, qword [esi + 0x78]
movsd qword [esp], xmm0
push dword [eax]
call fcn.102ca4d0
mov ecx, dword [esi]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
movsd xmm1, qword [eax]
subsd xmm1, qword [esp + 0xf8]
movsd qword [esp + 0x18], xmm1
movsd xmm1, qword [eax + 8]
subsd xmm1, qword [esp + 0x100]
movsd qword [esp + 0x40], xmm1
jmp 0x102c9675
mov esi, dword [edi]
mov ecx, esi
mov edi, dword [esi]
test al, al
je 0x102c9643
mov eax, dword [edi + 0x44]
call eax
push eax
mov eax, dword [edi + 4]
mov ecx, esi
call eax
movsd xmm1, qword [esp + 0x60]
subsd xmm1, qword [eax]
movsd qword [esp + 0x18], xmm1
movsd xmm1, qword [esp + 0x68]
subsd xmm1, qword [eax + 8]
movsd qword [esp + 0x40], xmm1
jmp 0x102c9671
mov eax, dword [edi + 4]
push 0
call eax
movsd xmm0, qword [esp + 0x80]
subsd xmm0, qword [eax]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x88]
subsd xmm0, qword [eax + 8]
movsd qword [esp + 0x40], xmm0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x30]
ucomisd xmm0, qword [ecx + 0x80]
lahf
test ah, 0x44
jp 0x102c9731
mov eax, dword [esp + 0x3c]
mov edi, dword [ecx]
mov ecx, edi
movsd xmm0, qword [0x10399a08]
movsd qword [esp + 0x90], xmm0
mov eax, dword [eax]
movaps xmm0, xmmword [0x103b2940]
mov dword [esp + 0x28], eax
mov eax, dword [edi]
mov byte [esp + 0x98], 0
movups xmmword [esp + 0x80], xmm0
mov esi, dword [eax + 4]
mov eax, dword [eax + 0x44]
call eax
push eax
mov ecx, edi
call esi
push dword [esp + 0x28]
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x84]
push eax
mov eax, dword [esp + 0x18]
sub esp, 8
movsd xmm0, qword [esi + 0x80]
movsd qword [esp], xmm0
push dword [eax]
call fcn.102ca4d0
mov edi, dword [esi]
mov ecx, edi
mov eax, dword [edi]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0x44]
call eax
push eax
mov ecx, edi
call esi
movsd xmm1, qword [eax]
movsd xmm0, qword [eax + 8]
subsd xmm1, qword [esp + 0x80]
subsd xmm0, qword [esp + 0x88]
jmp 0x102c977b
cmp byte [esp + 0x3b], 0
mov esi, dword [edi]
mov ecx, esi
mov edi, dword [esi]
je 0x102c9759
mov eax, dword [edi + 4]
push 0
call eax
movsd xmm1, qword [esp + 0x80]
movsd xmm0, qword [esp + 0x88]
jmp 0x102c9772
mov eax, dword [edi + 0x44]
call eax
push eax
mov eax, dword [edi + 4]
mov ecx, esi
call eax
movsd xmm1, qword [esp + 0x60]
movsd xmm0, qword [esp + 0x68]
subsd xmm0, qword [eax + 8]
subsd xmm1, qword [eax]
mulsd xmm0, qword [esp + 0x40]
mulsd xmm1, qword [esp + 0x18]
addsd xmm0, xmm1
comisd xmm0, xmmword [0x10388450]
jae 0x102c9ac6
movsd xmm1, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x20]
movsd xmm0, qword [0x10399a08]
subsd xmm1, xmm2
movsd xmm3, qword [0x10399988]
movsd qword [esp + 0x70], xmm0
movaps xmm0, xmmword [0x103b2940]
movups xmmword [esp + 0x60], xmm0
mov byte [esp + 0x78], 0
mulsd xmm1, qword [0x103885a0]
movaps xmm0, xmm1
movsd qword [esp + 0x30], xmm1
andps xmm0, xmmword [0x10386870]
comisd xmm3, xmm0
ja 0x102c9ac6
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
nop word [eax + eax]
mov ecx, dword [esi]
lea edx, [esp + 0x80]
movaps xmm0, xmm1
sub esp, 8
addsd xmm2, xmm0
mov eax, dword [ecx]
movsd qword [esp], xmm2
mov eax, dword [eax + 0x48]
push edx
movsd qword [esp + 0x2c], xmm2
call eax
push dword [edi]
lea ecx, [esp + 0x64]
movups xmm0, xmmword [eax]
lea eax, [esp + 0xa4]
push eax
sub esp, 8
movups xmmword [esp + 0xb0], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
push dword [esi]
call fcn.102ca4d0
cmp byte [esp + 0x78], 0
xorps xmm6, xmm6
je 0x102c988a
mov eax, dword [esp + 0x14]
movsd xmm1, qword [eax + 0x78]
movsd xmm0, qword [eax + 0x80]
xor eax, eax
subsd xmm1, qword [esp + 0x70]
subsd xmm0, qword [esp + 0x70]
mulsd xmm1, xmm0
comisd xmm6, xmm1
setb al
jmp 0x102c9895
xor eax, eax
comisd xmm6, xmmword [esp + 0x70]
seta al
test eax, eax
jne 0x102c9a55
movsd xmm5, qword [esp + 0xa0]
xor ecx, ecx
movsd xmm0, qword [esp + 0x68]
movaps xmm4, xmm5
movsd xmm2, qword [esp + 0x60]
movsd xmm3, qword [esp + 0xa8]
subsd xmm4, xmm2
subsd xmm3, xmm0
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x58], xmm2
movaps xmm0, xmm4
mulsd xmm0, qword [esp + 0x18]
movaps xmm1, xmm3
mulsd xmm1, qword [esp + 0x40]
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x30]
comisd xmm1, xmm6
setae cl
comisd xmm6, xmm0
seta al
cmp ecx, eax
jne 0x102c990f
xorps xmm0, xmmword [0x1038b810]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [0x10386870]
movsd xmm1, qword [0x10399998]
andps xmm4, xmm0
comisd xmm1, xmm4
jbe 0x102c9935
andps xmm3, xmm0
comisd xmm1, xmm3
ja 0x102c9a8f
cvtpd2ps xmm0, xmm2
sub esp, 8
cvtpd2ps xmm1, xmm5
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.10209e00
add esp, 8
test al, al
je 0x102c9a55
movsd xmm0, qword [esp + 0x28]
sub esp, 8
movsd xmm1, qword [esp + 0xb0]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.10209e00
add esp, 8
test al, al
je 0x102c9a55
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xa0]
subsd xmm1, qword [esp + 0x58]
movsd qword [esp + 0x48], xmm0
subsd xmm0, qword [esp + 0x28]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movsd xmm4, qword [esp + 0xa0]
movaps xmm5, xmm0
movsd xmm0, qword [esp + 0x58]
comisd xmm4, xmm0
jbe 0x102c99e2
movaps xmm1, xmm0
jmp 0x102c99e5
movaps xmm1, xmm4
movsd xmm3, qword [esp + 0x48]
comisd xmm1, xmm3
jbe 0x102c99f4
movaps xmm1, xmm3
movsd xmm2, qword [esp + 0x28]
comisd xmm1, xmm2
jbe 0x102c9a03
movaps xmm1, xmm2
comisd xmm0, xmm4
ja 0x102c9a0c
movaps xmm0, xmm4
comisd xmm3, xmm0
ja 0x102c9a15
movaps xmm3, xmm0
comisd xmm2, xmm3
ja 0x102c9a1e
movaps xmm2, xmm3
xorps xmm1, xmmword [0x1038b810]
sub esp, 8
maxsd xmm1, xmm2
movaps xmm0, xmm1
addsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esp + 4], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [esp], xmm0
call fcn.10209c00
add esp, 8
test al, al
jne 0x102c9a8c
movsd xmm1, qword [esp + 0x30]
mulsd xmm1, qword [0x103885a0]
movsd xmm2, qword [0x10399988]
movaps xmm0, xmm1
movsd qword [esp + 0x30], xmm1
andps xmm0, xmmword [0x10386870]
comisd xmm2, xmm0
ja 0x102c9ac6
movsd xmm2, qword [esp + 0x20]
jmp 0x102c9800
xorps xmm6, xmm6
mov eax, dword [edi + 0x424]
movsd xmm2, qword [esp + 0x70]
nop dword [eax + eax]
movsd xmm1, qword [eax + 0x80]
movsd xmm0, qword [eax + 0x78]
subsd xmm1, xmm2
subsd xmm0, xmm2
mulsd xmm1, xmm0
comisd xmm6, xmm1
jae 0x102c9ade
mov eax, dword [eax + 0x50]
test eax, eax
jne 0x102c9aa0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x4c4]
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0xa0]
movsd xmm0, qword [esp + 0x20]
push ecx
sub esp, 0x10
mov ecx, eax
mov byte [eax + 0x1c7], 1
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm0
call fcn.1020bc10
mov ecx, dword [esp + 0x4cc]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.1037e005
mov esp, ebp
pop ebp
ret 0x10