// File: FreeSlave[P]vhlt/hlrad/lerp.cpp
// Function: CalcInterpolation_Square(localtriangulation_t const*, int, float const*, interpolation_t*)
static void CalcInterpolation_Square (const localtriangulation_t *lt, int i, const vec3_t spot, interpolation_t *interp)
{
	const localtriangulation_t::Wedge *w1;
	const localtriangulation_t::Wedge *w2;
	const localtriangulation_t::Wedge *w3;
	vec_t weights[4];
	vec_t dot1;
	vec_t dot2;
	vec_t dot;
	vec3_t normal1;
	vec3_t normal2;
	vec3_t normal;
	vec_t frac;
	vec_t frac_near;
	vec_t frac_far;
	vec_t ratio;
	vec3_t mid_far;
	vec3_t mid_near;
	vec3_t test;
	
	w1 = &lt->sortedwedges[i];
	w2 = &lt->sortedwedges[(i + 1) % (int)lt->sortedwedges.size ()];
	w3 = &lt->sortedwedges[(i + 2) % (int)lt->sortedwedges.size ()];
	if (w1->shape != localtriangulation_t::Wedge::eSquareLeft || w2->shape != localtriangulation_t::Wedge::eSquareRight)
	{
		Error ("CalcInterpolation_Square: internal error: not square.");
	}

	weights[0] = 0.0;
	weights[1] = 0.0;
	weights[2] = 0.0;
	weights[3] = 0.0;

	// find mid_near on (o,p3), mid_far on (p1,p2), spot on (mid_near,mid_far)
	CrossProduct (w1->leftdirection, lt->normal, normal1);
	VectorNormalize (normal1);
	CrossProduct (w2->wedgenormal, lt->normal, normal2);
	VectorNormalize (normal2);
	dot1 = DotProduct (spot, normal1) - 0;
	dot2 = DotProduct (spot, normal2) - DotProduct (w3->leftspot, normal2);
	if (dot1 <= NORMAL_EPSILON)
	{
		frac = 0.0;
	}
	else if (dot2 <= NORMAL_EPSILON)
	{
		frac = 1.0;
	}
	else
	{
		frac = dot1 / (dot1 + dot2);
		frac = qmax (0, qmin (frac, 1));
	}

	dot1 = DotProduct (w3->leftspot, normal1) - 0;
	dot2 = 0 - DotProduct (w3->leftspot, normal2);
	if (dot1 <= NORMAL_EPSILON)
	{
		frac_near = 1.0;
	}
	else if (dot2 <= NORMAL_EPSILON)
	{
		frac_near = 0.0;
	}
	else
	{
		frac_near = (frac * dot2) / ((1 - frac) * dot1 + frac * dot2);
	}
	VectorScale (w3->leftspot, frac_near, mid_near);

	dot1 = DotProduct (w2->leftspot, normal1) - 0;
	dot2 = DotProduct (w1->leftspot, normal2) - DotProduct (w3->leftspot, normal2);
	if (dot1 <= NORMAL_EPSILON)
	{
		frac_far = 1.0;
	}
	else if (dot2 <= NORMAL_EPSILON)
	{
		frac_far = 0.0;
	}
	else
	{
		frac_far = (frac * dot2) / ((1 - frac) * dot1 + frac * dot2);
	}
	VectorScale (w1->leftspot, 1 - frac_far, mid_far);
	VectorMA (mid_far, frac_far, w2->leftspot, mid_far);

	CrossProduct (lt->normal, w3->leftdirection, normal);
	VectorNormalize (normal);
	dot = DotProduct (spot, normal) - 0;
	dot1 = (1 - frac_far) * DotProduct (w1->leftspot, normal) + frac_far * DotProduct (w2->leftspot, normal) - 0;
	if (dot <= NORMAL_EPSILON)
	{
		ratio = 0.0;
	}
	else if (dot >= dot1)
	{
		ratio = 1.0;
	}
	else
	{
		ratio = dot / dot1;
		ratio = qmax (0, qmin (ratio, 1));
	}

	VectorScale (mid_near, 1 - ratio, test);
	VectorMA (test, ratio, mid_far, test);
	VectorSubtract (test, spot, test);
	if (g_drawlerp && VectorLength (test) > 4 * ON_EPSILON)
	{
		Developer (DEVELOPER_LEVEL_SPAM, "Debug: triangulation: internal error 12.\n");
	}

	weights[0] += 0.5 * (1 - ratio) * (1 - frac_near);
	weights[3] += 0.5 * (1 - ratio) * frac_near;
	weights[1] += 0.5 * ratio * (1 - frac_far);
	weights[2] += 0.5 * ratio * frac_far;
	
	// find mid_near on (o,p1), mid_far on (p2,p3), spot on (mid_near,mid_far)
	CrossProduct (lt->normal, w3->leftdirection, normal1);
	VectorNormalize (normal1);
	CrossProduct (w1->wedgenormal, lt->normal, normal2);
	VectorNormalize (normal2);
	dot1 = DotProduct (spot, normal1) - 0;
	dot2 = DotProduct (spot, normal2) - DotProduct (w1->leftspot, normal2);
	if (dot1 <= NORMAL_EPSILON)
	{
		frac = 0.0;
	}
	else if (dot2 <= NORMAL_EPSILON)
	{
		frac = 1.0;
	}
	else
	{
		frac = dot1 / (dot1 + dot2);
		frac = qmax (0, qmin (frac, 1));
	}

	dot1 = DotProduct (w1->leftspot, normal1) - 0;
	dot2 = 0 - DotProduct (w1->leftspot, normal2);
	if (dot1 <= NORMAL_EPSILON)
	{
		frac_near = 1.0;
	}
	else if (dot2 <= NORMAL_EPSILON)
	{
		frac_near = 0.0;
	}
	else
	{
		frac_near = (frac * dot2) / ((1 - frac) * dot1 + frac * dot2);
	}
	VectorScale (w1->leftspot, frac_near, mid_near);

	dot1 = DotProduct (w2->leftspot, normal1) - 0;
	dot2 = DotProduct (w3->leftspot, normal2) - DotProduct (w1->leftspot, normal2);
	if (dot1 <= NORMAL_EPSILON)
	{
		frac_far = 1.0;
	}
	else if (dot2 <= NORMAL_EPSILON)
	{
		frac_far = 0.0;
	}
	else
	{
		frac_far = (frac * dot2) / ((1 - frac) * dot1 + frac * dot2);
	}
	VectorScale (w3->leftspot, 1 - frac_far, mid_far);
	VectorMA (mid_far, frac_far, w2->leftspot, mid_far);

	CrossProduct (w1->leftdirection, lt->normal, normal);
	VectorNormalize (normal);
	dot = DotProduct (spot, normal) - 0;
	dot1 = (1 - frac_far) * DotProduct (w3->leftspot, normal) + frac_far * DotProduct (w2->leftspot, normal) - 0;
	if (dot <= NORMAL_EPSILON)
	{
		ratio = 0.0;
	}
	else if (dot >= dot1)
	{
		ratio = 1.0;
	}
	else
	{
		ratio = dot / dot1;
		ratio = qmax (0, qmin (ratio, 1));
	}

	VectorScale (mid_near, 1 - ratio, test);
	VectorMA (test, ratio, mid_far, test);
	VectorSubtract (test, spot, test);
	if (g_drawlerp && VectorLength (test) > 4 * ON_EPSILON)
	{
		Developer (DEVELOPER_LEVEL_SPAM, "Debug: triangulation: internal error 13.\n");
	}

	weights[0] += 0.5 * (1 - ratio) * (1 - frac_near);
	weights[1] += 0.5 * (1 - ratio) * frac_near;
	weights[3] += 0.5 * ratio * (1 - frac_far);
	weights[2] += 0.5 * ratio * frac_far;

	interp->isbiased = false;
	interp->totalweight = 1.0;
	interp->points.resize (4);
	interp->points[0].patchnum = lt->patchnum;
	interp->points[0].weight = weights[0];
	interp->points[1].patchnum = w1->leftpatchnum;
	interp->points[1].weight = weights[1];
	interp->points[2].patchnum = w2->leftpatchnum;
	interp->points[2].weight = weights[2];
	interp->points[3].patchnum = w3->leftpatchnum;
	interp->points[3].weight = weights[3];
}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rdi, 0x110(%rsp)
movl %esi, 0x10c(%rsp)
movq %rdx, 0x100(%rsp)
movq %rcx, 0xf8(%rsp)
movq 0x110(%rsp), %rdi
addq $0x70, %rdi
movslq 0x10c(%rsp), %rsi
callq 0x1f6e0
movq %rax, 0xf0(%rsp)
movq 0x110(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x50(%rsp)
movl 0x10c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5c(%rsp)
movq 0x110(%rsp), %rdi
addq $0x70, %rdi
callq 0x1f6c0
movq 0x50(%rsp), %rdi
movq %rax, %rcx
movl 0x5c(%rsp), %eax
cltd
idivl %ecx
movslq %edx, %rsi
callq 0x1f6e0
movq %rax, 0xe8(%rsp)
movq 0x110(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x60(%rsp)
movl 0x10c(%rsp), %eax
addl $0x2, %eax
movl %eax, 0x68(%rsp)
movq 0x110(%rsp), %rdi
addq $0x70, %rdi
callq 0x1f6c0
movq 0x60(%rsp), %rdi
movq %rax, %rcx
movl 0x68(%rsp), %eax
cltd
idivl %ecx
movslq %edx, %rsi
callq 0x1f6e0
movq %rax, 0xe0(%rsp)
movq 0xf0(%rsp), %rax
cmpl $0x3, (%rax)
jne 0x18d4f
movq 0xe8(%rsp), %rax
cmpl $0x4, (%rax)
je 0x18d5d
leaq 0x54c9c(%rip), %rdi     # 0x6d9f2
movb $0x0, %al
callq 0xb580
xorps %xmm0, %xmm0
movss %xmm0, 0xd0(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, 0xd4(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, 0xd8(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, 0xdc(%rsp)
movq 0xf0(%rsp), %rax
movss 0x18(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x1c(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x48(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xb8(%rsp)
movq 0xf0(%rsp), %rax
movss 0x1c(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x14(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x4c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xbc(%rsp)
movq 0xf0(%rsp), %rax
movss 0x14(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x18(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x44(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xc0(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x11980
movq 0xe8(%rsp), %rax
movss 0x24(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm2
movq 0xe8(%rsp), %rax
movss 0x28(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x48(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xac(%rsp)
movq 0xe8(%rsp), %rax
movss 0x28(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm2
movq 0xe8(%rsp), %rax
movss 0x20(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x4c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xb0(%rsp)
movq 0xe8(%rsp), %rax
movss 0x20(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm2
movq 0xe8(%rsp), %rax
movss 0x24(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x44(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xb4(%rsp)
leaq 0xac(%rsp), %rdi
callq 0x11980
movq 0x100(%rsp), %rax
movss (%rax), %xmm1
movss 0xb8(%rsp), %xmm2
movq 0x100(%rsp), %rax
movss 0x4(%rax), %xmm0
mulss 0xbc(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0x100(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xc0(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movq 0x100(%rsp), %rax
movss (%rax), %xmm1
movss 0xac(%rsp), %xmm2
movq 0x100(%rsp), %rax
movss 0x4(%rax), %xmm0
mulss 0xb0(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0x100(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xb4(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm2
movss 0xac(%rsp), %xmm3
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm1
mulss 0xb0(%rsp), %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm1
movss 0xb4(%rsp), %xmm3
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xc8(%rsp)
movss 0xcc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x50faf(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x190d0
xorps %xmm0, %xmm0
movss %xmm0, 0x9c(%rsp)
jmp 0x191c5
movss 0xc8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x50f83(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x19101
movss 0x50f59(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x9c(%rsp)
jmp 0x191c3
movss 0xcc(%rsp), %xmm0
movss 0xcc(%rsp), %xmm1
addss 0xc8(%rsp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x9c(%rsp)
movss 0x50f1b(%rip), %xmm0    # 0x6a04c
ucomiss 0x9c(%rsp), %xmm0
jbe 0x1914c
movss 0x9c(%rsp), %xmm0
movss %xmm0, 0x4c(%rsp)
jmp 0x1915c
movss 0x50ef8(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x4c(%rsp)
jmp 0x1915c
movss 0x4c(%rsp), %xmm1
xorps %xmm0, %xmm0
ucomiss %xmm1, %xmm0
jbe 0x19175
xorps %xmm0, %xmm0
movss %xmm0, 0x48(%rsp)
jmp 0x191b4
movss 0x50ecf(%rip), %xmm0    # 0x6a04c
ucomiss 0x9c(%rsp), %xmm0
jbe 0x19198
movss 0x9c(%rsp), %xmm0
movss %xmm0, 0x44(%rsp)
jmp 0x191a8
movss 0x50eac(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x44(%rsp)
jmp 0x191a8
movss 0x44(%rsp), %xmm0
movss %xmm0, 0x48(%rsp)
movss 0x48(%rsp), %xmm0
movss %xmm0, 0x9c(%rsp)
jmp 0x191c5
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xb8(%rsp), %xmm2
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0xbc(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0xc0(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xac(%rsp), %xmm2
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm1
mulss 0xb0(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm1
movss 0xb4(%rsp), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
xorps %xmm0, %xmm0
subss %xmm1, %xmm0
movss %xmm0, 0xc8(%rsp)
movss 0xcc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x50dca(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x192b7
movss 0x50da0(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x98(%rsp)
jmp 0x19335
movss 0xc8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x50d9c(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x192e0
xorps %xmm0, %xmm0
movss %xmm0, 0x98(%rsp)
jmp 0x19333
movss 0x9c(%rsp), %xmm0
mulss 0xc8(%rsp), %xmm0
movss 0x50d52(%rip), %xmm1    # 0x6a04c
subss 0x9c(%rsp), %xmm1
movss 0xcc(%rsp), %xmm3
movss 0x9c(%rsp), %xmm2
mulss 0xc8(%rsp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x98(%rsp)
jmp 0x19335
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm0
mulss 0x98(%rsp), %xmm0
movss %xmm0, 0x78(%rsp)
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0x98(%rsp), %xmm0
movss %xmm0, 0x7c(%rsp)
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm0
mulss 0x98(%rsp), %xmm0
movss %xmm0, 0x80(%rsp)
movq 0xe8(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xb8(%rsp), %xmm2
movq 0xe8(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0xbc(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0xe8(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0xc0(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xac(%rsp), %xmm2
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0xb0(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0xb4(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm2
movss 0xac(%rsp), %xmm3
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm1
mulss 0xb0(%rsp), %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm1
movss 0xb4(%rsp), %xmm3
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xc8(%rsp)
movss 0xcc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x50bb4(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x194cd
movss 0x50b8a(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x94(%rsp)
jmp 0x1954b
movss 0xc8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x50b86(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x194f6
xorps %xmm0, %xmm0
movss %xmm0, 0x94(%rsp)
jmp 0x19549
movss 0x9c(%rsp), %xmm0
mulss 0xc8(%rsp), %xmm0
movss 0x50b3c(%rip), %xmm1    # 0x6a04c
subss 0x9c(%rsp), %xmm1
movss 0xcc(%rsp), %xmm3
movss 0x9c(%rsp), %xmm2
mulss 0xc8(%rsp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x94(%rsp)
jmp 0x1954b
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0x50aec(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x84(%rsp)
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm0
movss 0x50ac1(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x88(%rsp)
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0x50a96(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x8c(%rsp)
movss 0x84(%rsp), %xmm1
movss 0x94(%rsp), %xmm0
movq 0xe8(%rsp), %rax
movss 0x8(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x84(%rsp)
movss 0x88(%rsp), %xmm1
movss 0x94(%rsp), %xmm0
movq 0xe8(%rsp), %rax
movss 0xc(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x88(%rsp)
movss 0x8c(%rsp), %xmm1
movss 0x94(%rsp), %xmm0
movq 0xe8(%rsp), %rax
movss 0x10(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x8c(%rsp)
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm0
movq 0xe0(%rsp), %rax
movss 0x1c(%rax), %xmm2
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm1
movq 0xe0(%rsp), %rax
mulss 0x18(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xa0(%rsp)
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm0
movq 0xe0(%rsp), %rax
movss 0x14(%rax), %xmm2
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm1
movq 0xe0(%rsp), %rax
mulss 0x1c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xa4(%rsp)
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm0
movq 0xe0(%rsp), %rax
movss 0x18(%rax), %xmm2
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm1
movq 0xe0(%rsp), %rax
mulss 0x14(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xa8(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x11980
movq 0x100(%rsp), %rax
movss (%rax), %xmm1
movss 0xa0(%rsp), %xmm2
movq 0x100(%rsp), %rax
movss 0x4(%rax), %xmm0
mulss 0xa4(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0x100(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xa8(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xc4(%rsp)
movss 0x50884(%rip), %xmm0    # 0x6a04c
subss 0x94(%rsp), %xmm0
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xa0(%rsp), %xmm3
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm2
mulss 0xa4(%rsp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm2
movss 0xa8(%rsp), %xmm3
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movss 0x94(%rsp), %xmm1
movq 0xe8(%rsp), %rax
movss 0x8(%rax), %xmm4
movss 0xa0(%rsp), %xmm5
movq 0xe8(%rsp), %rax
movss 0xc(%rax), %xmm3
mulss 0xa4(%rsp), %xmm3
mulss %xmm5, %xmm4
addss %xmm3, %xmm4
movq 0xe8(%rsp), %rax
movss 0x10(%rax), %xmm3
movss 0xa8(%rsp), %xmm5
mulss %xmm5, %xmm3
addss %xmm4, %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movss 0xc4(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x507b9(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x198c6
xorps %xmm0, %xmm0
movss %xmm0, 0x90(%rsp)
jmp 0x199a6
movss 0xc4(%rsp), %xmm0
ucomiss 0xcc(%rsp), %xmm0
jb 0x198ef
movss 0x5076b(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x90(%rsp)
jmp 0x199a4
movss 0xc4(%rsp), %xmm0
divss 0xcc(%rsp), %xmm0
movss %xmm0, 0x90(%rsp)
movss 0x5073a(%rip), %xmm0    # 0x6a04c
ucomiss 0x90(%rsp), %xmm0
jbe 0x1992d
movss 0x90(%rsp), %xmm0
movss %xmm0, 0x40(%rsp)
jmp 0x1993d
movss 0x50717(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x40(%rsp)
jmp 0x1993d
movss 0x40(%rsp), %xmm1
xorps %xmm0, %xmm0
ucomiss %xmm1, %xmm0
jbe 0x19956
xorps %xmm0, %xmm0
movss %xmm0, 0x3c(%rsp)
jmp 0x19995
movss 0x506ee(%rip), %xmm0    # 0x6a04c
ucomiss 0x90(%rsp), %xmm0
jbe 0x19979
movss 0x90(%rsp), %xmm0
movss %xmm0, 0x38(%rsp)
jmp 0x19989
movss 0x506cb(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x38(%rsp)
jmp 0x19989
movss 0x38(%rsp), %xmm0
movss %xmm0, 0x3c(%rsp)
movss 0x3c(%rsp), %xmm0
movss %xmm0, 0x90(%rsp)
jmp 0x199a6
movss 0x78(%rsp), %xmm0
movss 0x50698(%rip), %xmm1    # 0x6a04c
subss 0x90(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x7c(%rsp), %xmm0
movss 0x50677(%rip), %xmm1    # 0x6a04c
subss 0x90(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x70(%rsp)
movss 0x80(%rsp), %xmm0
movss 0x50653(%rip), %xmm1    # 0x6a04c
subss 0x90(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x74(%rsp)
movss 0x6c(%rsp), %xmm1
movss 0x90(%rsp), %xmm0
movss 0x84(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x70(%rsp), %xmm1
movss 0x90(%rsp), %xmm0
movss 0x88(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x70(%rsp)
movss 0x74(%rsp), %xmm1
movss 0x90(%rsp), %xmm0
movss 0x8c(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x74(%rsp)
movss 0x6c(%rsp), %xmm0
movq 0x100(%rsp), %rax
subss (%rax), %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x70(%rsp), %xmm0
movq 0x100(%rsp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, 0x70(%rsp)
movss 0x74(%rsp), %xmm0
movq 0x100(%rsp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, 0x74(%rsp)
leaq 0x5515f92(%rip), %rax   # 0x552fa61
testb $0x1, (%rax)
je 0x19b32
movss 0x6c(%rsp), %xmm0
mulss 0x6c(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0x70(%rsp), %xmm1
mulss 0x70(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
movss 0x74(%rsp), %xmm1
mulss 0x74(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
callq 0x4270
movsd 0x53d1f(%rip), %xmm1    # 0x6d838
ucomisd %xmm1, %xmm0
jbe 0x19b32
movl $0x5, %edi
leaq 0x53efd(%rip), %rsi     # 0x6da28
movb $0x0, %al
callq 0xbbf0
movss 0x50512(%rip), %xmm0    # 0x6a04c
subss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x539a1(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x504f1(%rip), %xmm1    # 0x6a04c
subss 0x98(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xd0(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd0(%rsp)
movss 0x504ba(%rip), %xmm0    # 0x6a04c
subss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x53949(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x98(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xdc(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xdc(%rsp)
movss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x53901(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x50451(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xd4(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd4(%rsp)
movss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x538b1(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x94(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xd8(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd8(%rsp)
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm0
movq 0xe0(%rsp), %rax
movss 0x1c(%rax), %xmm2
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm1
movq 0xe0(%rsp), %rax
mulss 0x18(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xb8(%rsp)
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm0
movq 0xe0(%rsp), %rax
movss 0x14(%rax), %xmm2
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm1
movq 0xe0(%rsp), %rax
mulss 0x1c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xbc(%rsp)
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm0
movq 0xe0(%rsp), %rax
movss 0x18(%rax), %xmm2
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm1
movq 0xe0(%rsp), %rax
mulss 0x14(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xc0(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x11980
movq 0xf0(%rsp), %rax
movss 0x24(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x28(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x48(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xac(%rsp)
movq 0xf0(%rsp), %rax
movss 0x28(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x20(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x4c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xb0(%rsp)
movq 0xf0(%rsp), %rax
movss 0x20(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x24(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x44(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xb4(%rsp)
leaq 0xac(%rsp), %rdi
callq 0x11980
movq 0x100(%rsp), %rax
movss (%rax), %xmm1
movss 0xb8(%rsp), %xmm2
movq 0x100(%rsp), %rax
movss 0x4(%rax), %xmm0
mulss 0xbc(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0x100(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xc0(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movq 0x100(%rsp), %rax
movss (%rax), %xmm1
movss 0xac(%rsp), %xmm2
movq 0x100(%rsp), %rax
movss 0x4(%rax), %xmm0
mulss 0xb0(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0x100(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xb4(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm2
movss 0xac(%rsp), %xmm3
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm1
mulss 0xb0(%rsp), %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm1
movss 0xb4(%rsp), %xmm3
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xc8(%rsp)
movss 0xcc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x500ca(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x19fb5
xorps %xmm0, %xmm0
movss %xmm0, 0x9c(%rsp)
jmp 0x1a0aa
movss 0xc8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x5009e(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x19fe6
movss 0x50074(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x9c(%rsp)
jmp 0x1a0a8
movss 0xcc(%rsp), %xmm0
movss 0xcc(%rsp), %xmm1
addss 0xc8(%rsp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x9c(%rsp)
movss 0x50036(%rip), %xmm0    # 0x6a04c
ucomiss 0x9c(%rsp), %xmm0
jbe 0x1a031
movss 0x9c(%rsp), %xmm0
movss %xmm0, 0x34(%rsp)
jmp 0x1a041
movss 0x50013(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x34(%rsp)
jmp 0x1a041
movss 0x34(%rsp), %xmm1
xorps %xmm0, %xmm0
ucomiss %xmm1, %xmm0
jbe 0x1a05a
xorps %xmm0, %xmm0
movss %xmm0, 0x30(%rsp)
jmp 0x1a099
movss 0x4ffea(%rip), %xmm0    # 0x6a04c
ucomiss 0x9c(%rsp), %xmm0
jbe 0x1a07d
movss 0x9c(%rsp), %xmm0
movss %xmm0, 0x2c(%rsp)
jmp 0x1a08d
movss 0x4ffc7(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x2c(%rsp)
jmp 0x1a08d
movss 0x2c(%rsp), %xmm0
movss %xmm0, 0x30(%rsp)
movss 0x30(%rsp), %xmm0
movss %xmm0, 0x9c(%rsp)
jmp 0x1a0aa
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xb8(%rsp), %xmm2
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0xbc(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0xc0(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xac(%rsp), %xmm2
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm1
mulss 0xb0(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm1
movss 0xb4(%rsp), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
xorps %xmm0, %xmm0
subss %xmm1, %xmm0
movss %xmm0, 0xc8(%rsp)
movss 0xcc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x4fee5(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x1a19c
movss 0x4febb(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x98(%rsp)
jmp 0x1a21a
movss 0xc8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x4feb7(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x1a1c5
xorps %xmm0, %xmm0
movss %xmm0, 0x98(%rsp)
jmp 0x1a218
movss 0x9c(%rsp), %xmm0
mulss 0xc8(%rsp), %xmm0
movss 0x4fe6d(%rip), %xmm1    # 0x6a04c
subss 0x9c(%rsp), %xmm1
movss 0xcc(%rsp), %xmm3
movss 0x9c(%rsp), %xmm2
mulss 0xc8(%rsp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x98(%rsp)
jmp 0x1a21a
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm0
mulss 0x98(%rsp), %xmm0
movss %xmm0, 0x78(%rsp)
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0x98(%rsp), %xmm0
movss %xmm0, 0x7c(%rsp)
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm0
mulss 0x98(%rsp), %xmm0
movss %xmm0, 0x80(%rsp)
movq 0xe8(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xb8(%rsp), %xmm2
movq 0xe8(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0xbc(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0xe8(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0xc0(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xac(%rsp), %xmm2
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm0
mulss 0xb0(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0xb4(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0xf0(%rsp), %rax
movss 0x8(%rax), %xmm2
movss 0xac(%rsp), %xmm3
movq 0xf0(%rsp), %rax
movss 0xc(%rax), %xmm1
mulss 0xb0(%rsp), %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq 0xf0(%rsp), %rax
movss 0x10(%rax), %xmm1
movss 0xb4(%rsp), %xmm3
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xc8(%rsp)
movss 0xcc(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x4fccf(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x1a3b2
movss 0x4fca5(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x94(%rsp)
jmp 0x1a430
movss 0xc8(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x4fca1(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x1a3db
xorps %xmm0, %xmm0
movss %xmm0, 0x94(%rsp)
jmp 0x1a42e
movss 0x9c(%rsp), %xmm0
mulss 0xc8(%rsp), %xmm0
movss 0x4fc57(%rip), %xmm1    # 0x6a04c
subss 0x9c(%rsp), %xmm1
movss 0xcc(%rsp), %xmm3
movss 0x9c(%rsp), %xmm2
mulss 0xc8(%rsp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x94(%rsp)
jmp 0x1a430
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0x4fc07(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x84(%rsp)
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm0
movss 0x4fbdc(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x88(%rsp)
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm0
movss 0x4fbb1(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x8c(%rsp)
movss 0x84(%rsp), %xmm1
movss 0x94(%rsp), %xmm0
movq 0xe8(%rsp), %rax
movss 0x8(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x84(%rsp)
movss 0x88(%rsp), %xmm1
movss 0x94(%rsp), %xmm0
movq 0xe8(%rsp), %rax
movss 0xc(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x88(%rsp)
movss 0x8c(%rsp), %xmm1
movss 0x94(%rsp), %xmm0
movq 0xe8(%rsp), %rax
movss 0x10(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x8c(%rsp)
movq 0xf0(%rsp), %rax
movss 0x18(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x4c(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x1c(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x48(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xa0(%rsp)
movq 0xf0(%rsp), %rax
movss 0x1c(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x44(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x14(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x4c(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xa4(%rsp)
movq 0xf0(%rsp), %rax
movss 0x14(%rax), %xmm0
movq 0x110(%rsp), %rax
movss 0x48(%rax), %xmm2
movq 0xf0(%rsp), %rax
movss 0x18(%rax), %xmm1
movq 0x110(%rsp), %rax
mulss 0x44(%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xa8(%rsp)
leaq 0xa0(%rsp), %rdi
callq 0x11980
movq 0x100(%rsp), %rax
movss (%rax), %xmm1
movss 0xa0(%rsp), %xmm2
movq 0x100(%rsp), %rax
movss 0x4(%rax), %xmm0
mulss 0xa4(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq 0x100(%rsp), %rax
movss 0x8(%rax), %xmm0
movss 0xa8(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xc4(%rsp)
movss 0x4f99f(%rip), %xmm0    # 0x6a04c
subss 0x94(%rsp), %xmm0
movq 0xe0(%rsp), %rax
movss 0x8(%rax), %xmm1
movss 0xa0(%rsp), %xmm3
movq 0xe0(%rsp), %rax
movss 0xc(%rax), %xmm2
mulss 0xa4(%rsp), %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movq 0xe0(%rsp), %rax
movss 0x10(%rax), %xmm2
movss 0xa8(%rsp), %xmm3
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movss 0x94(%rsp), %xmm1
movq 0xe8(%rsp), %rax
movss 0x8(%rax), %xmm4
movss 0xa0(%rsp), %xmm5
movq 0xe8(%rsp), %rax
movss 0xc(%rax), %xmm3
mulss 0xa4(%rsp), %xmm3
mulss %xmm5, %xmm4
addss %xmm3, %xmm4
movq 0xe8(%rsp), %rax
movss 0x10(%rax), %xmm3
movss 0xa8(%rsp), %xmm5
mulss %xmm5, %xmm3
addss %xmm4, %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
xorps %xmm1, %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0xcc(%rsp)
movss 0xc4(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x4f8d4(%rip), %xmm0    # 0x6a068
ucomisd %xmm1, %xmm0
jb 0x1a7ab
xorps %xmm0, %xmm0
movss %xmm0, 0x90(%rsp)
jmp 0x1a88b
movss 0xc4(%rsp), %xmm0
ucomiss 0xcc(%rsp), %xmm0
jb 0x1a7d4
movss 0x4f886(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x90(%rsp)
jmp 0x1a889
movss 0xc4(%rsp), %xmm0
divss 0xcc(%rsp), %xmm0
movss %xmm0, 0x90(%rsp)
movss 0x4f855(%rip), %xmm0    # 0x6a04c
ucomiss 0x90(%rsp), %xmm0
jbe 0x1a812
movss 0x90(%rsp), %xmm0
movss %xmm0, 0x28(%rsp)
jmp 0x1a822
movss 0x4f832(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x28(%rsp)
jmp 0x1a822
movss 0x28(%rsp), %xmm1
xorps %xmm0, %xmm0
ucomiss %xmm1, %xmm0
jbe 0x1a83b
xorps %xmm0, %xmm0
movss %xmm0, 0x24(%rsp)
jmp 0x1a87a
movss 0x4f809(%rip), %xmm0    # 0x6a04c
ucomiss 0x90(%rsp), %xmm0
jbe 0x1a85e
movss 0x90(%rsp), %xmm0
movss %xmm0, 0x20(%rsp)
jmp 0x1a86e
movss 0x4f7e6(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x20(%rsp)
jmp 0x1a86e
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x24(%rsp)
movss 0x24(%rsp), %xmm0
movss %xmm0, 0x90(%rsp)
jmp 0x1a88b
movss 0x78(%rsp), %xmm0
movss 0x4f7b3(%rip), %xmm1    # 0x6a04c
subss 0x90(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x7c(%rsp), %xmm0
movss 0x4f792(%rip), %xmm1    # 0x6a04c
subss 0x90(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x70(%rsp)
movss 0x80(%rsp), %xmm0
movss 0x4f76e(%rip), %xmm1    # 0x6a04c
subss 0x90(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x74(%rsp)
movss 0x6c(%rsp), %xmm1
movss 0x90(%rsp), %xmm0
movss 0x84(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x70(%rsp), %xmm1
movss 0x90(%rsp), %xmm0
movss 0x88(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x70(%rsp)
movss 0x74(%rsp), %xmm1
movss 0x90(%rsp), %xmm0
movss 0x8c(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x74(%rsp)
movss 0x6c(%rsp), %xmm0
movq 0x100(%rsp), %rax
subss (%rax), %xmm0
movss %xmm0, 0x6c(%rsp)
movss 0x70(%rsp), %xmm0
movq 0x100(%rsp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, 0x70(%rsp)
movss 0x74(%rsp), %xmm0
movq 0x100(%rsp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, 0x74(%rsp)
leaq 0x55150ad(%rip), %rax   # 0x552fa61
testb $0x1, (%rax)
je 0x1aa17
movss 0x6c(%rsp), %xmm0
mulss 0x6c(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss 0x70(%rsp), %xmm1
mulss 0x70(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
movss 0x74(%rsp), %xmm1
mulss 0x74(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm0
callq 0x4270
movsd 0x52e3a(%rip), %xmm1    # 0x6d838
ucomisd %xmm1, %xmm0
jbe 0x1aa17
movl $0x5, %edi
leaq 0x53042(%rip), %rsi     # 0x6da52
movb $0x0, %al
callq 0xbbf0
movss 0x4f62d(%rip), %xmm0    # 0x6a04c
subss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x52abc(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x4f60c(%rip), %xmm1    # 0x6a04c
subss 0x98(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xd0(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd0(%rsp)
movss 0x4f5d5(%rip), %xmm0    # 0x6a04c
subss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x52a64(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x98(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xd4(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd4(%rsp)
movss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x52a1c(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x4f56c(%rip), %xmm1    # 0x6a04c
subss 0x94(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xdc(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xdc(%rsp)
movss 0x90(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x529cc(%rip), %xmm0    # 0x6d4f0
mulsd %xmm1, %xmm0
movss 0x94(%rsp), %xmm1
cvtss2sd %xmm1, %xmm2
movss 0xd8(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xd8(%rsp)
movq 0xf8(%rsp), %rax
movb $0x0, (%rax)
movq 0xf8(%rsp), %rax
movss 0x4f4da(%rip), %xmm0    # 0x6a04c
movss %xmm0, 0x4(%rax)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x4, %esi
callq 0x1f040
movq 0x110(%rsp), %rax
movl 0x50(%rax), %eax
movl %eax, (%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1f140
movl (%rsp), %ecx
movl %ecx, (%rax)
movss 0xd0(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1f140
movss 0x4(%rsp), %xmm0
movss %xmm0, 0x4(%rax)
movq 0xf0(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x8(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x1, %esi
callq 0x1f140
movl 0x8(%rsp), %ecx
movl %ecx, (%rax)
movss 0xd4(%rsp), %xmm0
movss %xmm0, 0xc(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x1, %esi
callq 0x1f140
movss 0xc(%rsp), %xmm0
movss %xmm0, 0x4(%rax)
movq 0xe8(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x10(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x2, %esi
callq 0x1f140
movl 0x10(%rsp), %ecx
movl %ecx, (%rax)
movss 0xd8(%rsp), %xmm0
movss %xmm0, 0x14(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x2, %esi
callq 0x1f140
movss 0x14(%rsp), %xmm0
movss %xmm0, 0x4(%rax)
movq 0xe0(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x18(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x3, %esi
callq 0x1f140
movl 0x18(%rsp), %ecx
movl %ecx, (%rax)
movss 0xdc(%rsp), %xmm0
movss %xmm0, 0x1c(%rsp)
movq 0xf8(%rsp), %rdi
addq $0x8, %rdi
movl $0x3, %esi
callq 0x1f140
movss 0x1c(%rsp), %xmm0
movss %xmm0, 0x4(%rax)
addq $0x118, %rsp            # imm = 0x118
retq
nopl (%rax)