// File: FreeSlave[P]vhlt/hlrad/lerp.cpp
// Function: TestFarPatch(localtriangulation_t const*, float const*, Winding const&)
static bool TestFarPatch (const localtriangulation_t *lt, const vec3_t p2, const Winding &p2winding)
{
	int i;
	vec3_t v;
	vec_t dist;
	vec_t size1;
	vec_t size2;

	size1 = 0;
	for (i = 0; i < lt->winding.m_NumPoints; i++)
	{
		VectorSubtract (lt->winding.m_Points[i], lt->center, v);
		dist = VectorLength (v);
		if (dist > size1)
		{
			size1 = dist;
		}
	}

	size2 = 0;
	for (i = 0; i < p2winding.m_NumPoints; i++)
	{
		VectorSubtract (p2winding.m_Points[i], p2, v);
		dist = VectorLength (v);
		if (dist > size2)
		{
			size2 = dist;
		}
	}

	VectorSubtract (p2, lt->center, v);
	dist = VectorLength (v);

	return dist > 1.4 * (size1 + size2);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rsp)
movl $0x0, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
movq 0x30(%rsp), %rcx
cmpl 0x20(%rcx), %eax
jae 0x1e755
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rax
movslq 0x1c(%rsp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss (%rax), %xmm0
movq 0x30(%rsp), %rax
subss 0x38(%rax), %xmm0
movss %xmm0, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rax
movslq 0x1c(%rsp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss 0x4(%rax), %xmm0
movq 0x30(%rsp), %rax
subss 0x3c(%rax), %xmm0
movss %xmm0, 0x14(%rsp)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rax
movslq 0x1c(%rsp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss 0x8(%rax), %xmm0
movq 0x30(%rsp), %rax
subss 0x40(%rax), %xmm0
movss %xmm0, 0x18(%rsp)
movss 0x10(%rsp), %xmm0
mulss 0x10(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0x14(%rsp), %xmm1
mulss 0x14(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
movss 0x18(%rsp), %xmm1
mulss 0x18(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
callq 0x4270
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xc(%rsp)
movss 0xc(%rsp), %xmm0
ucomiss 0x8(%rsp), %xmm0
jbe 0x1e743
movss 0xc(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
jmp 0x1e745
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x1e654
xorps %xmm0, %xmm0
movss %xmm0, 0x4(%rsp)
movl $0x0, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jae 0x1e866
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x1c(%rsp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss (%rax), %xmm0
movq 0x28(%rsp), %rax
subss (%rax), %xmm0
movss %xmm0, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x1c(%rsp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss 0x4(%rax), %xmm0
movq 0x28(%rsp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, 0x14(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x1c(%rsp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss 0x8(%rax), %xmm0
movq 0x28(%rsp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, 0x18(%rsp)
movss 0x10(%rsp), %xmm0
mulss 0x10(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0x14(%rsp), %xmm1
mulss 0x14(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
movss 0x18(%rsp), %xmm1
mulss 0x18(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
callq 0x4270
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xc(%rsp)
movss 0xc(%rsp), %xmm0
ucomiss 0x4(%rsp), %xmm0
jbe 0x1e854
movss 0xc(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
jmp 0x1e856
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x1e766
movq 0x28(%rsp), %rax
movss (%rax), %xmm0
movq 0x30(%rsp), %rax
subss 0x38(%rax), %xmm0
movss %xmm0, 0x10(%rsp)
movq 0x28(%rsp), %rax
movss 0x4(%rax), %xmm0
movq 0x30(%rsp), %rax
subss 0x3c(%rax), %xmm0
movss %xmm0, 0x14(%rsp)
movq 0x28(%rsp), %rax
movss 0x8(%rax), %xmm0
movq 0x30(%rsp), %rax
subss 0x40(%rax), %xmm0
movss %xmm0, 0x18(%rsp)
movss 0x10(%rsp), %xmm0
mulss 0x10(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0x14(%rsp), %xmm1
mulss 0x14(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
movss 0x18(%rsp), %xmm1
mulss 0x18(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
callq 0x4270
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xc(%rsp)
movss 0xc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0x8(%rsp), %xmm1
addss 0x4(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x4ef34(%rip), %xmm1    # 0x6d850
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
addq $0x38, %rsp
retq
nop