// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/mdsprite.c
// Function: md3draw
static int md3draw (md3model *m, spritetype *tspr, int method)
{
	point3d m0, m1, a0;
	md3xyzn_t *v0, *v1;
	int i, j, k, vbi, surfi;
	float f, g, k0, k1, k2, k3, k4, k5, k6, k7, mat[16], pc[4];
	md3surf_t *s;
	PTMHead * ptmh = 0;
	struct polymostdrawpolycall draw;

	updateanimation((md2model *)m,tspr);

		//create current&next frame's vertex list from whole list

	f = m->interpol; g = 1-f;
	m0.x = (1.0/64.0)*m->scale*g; m1.x = (1.0/64.0)*m->scale*f;
	m0.y = (1.0/64.0)*m->scale*g; m1.y = (1.0/64.0)*m->scale*f;
	m0.z = (1.0/64.0)*m->scale*g; m1.z = (1.0/64.0)*m->scale*f;
	a0.x = a0.y = 0; a0.z = m->zadd*m->scale;

    // Parkar: Moved up to be able to use k0 for the y-flipping code
	k0 = tspr->z;
	if ((globalorientation&128) && !((globalorientation&48)==32)) k0 += (float)((tilesizy[tspr->picnum]*tspr->yrepeat)<<1);

    // Parkar: Changed to use the same method as centeroriented sprites
	if (globalorientation&8) //y-flipping
	{
		m0.z = -m0.z; m1.z = -m1.z; a0.z = -a0.z;
		k0 -= (float)((tilesizy[tspr->picnum]*tspr->yrepeat)<<2);
	}
	if (globalorientation&4) { m0.y = -m0.y; m1.y = -m1.y; a0.y = -a0.y; } //x-flipping

	f = ((float)tspr->xrepeat)/64*m->bscale;
	m0.x *= f; m1.x *= f; a0.x *= f; f = -f;   // 20040610: backwards models aren't cool
	m0.y *= f; m1.y *= f; a0.y *= f;
	f = ((float)tspr->yrepeat)/64*m->bscale;
	m0.z *= f; m1.z *= f; a0.z *= f;

	// floor aligned
	k1 = tspr->y;
	if((globalorientation&48)==32)
	{
		m0.z = -m0.z; m1.z = -m1.z; a0.z = -a0.z;
		m0.y = -m0.y; m1.y = -m1.y; a0.y = -a0.y;
		f = a0.x; a0.x = a0.z; a0.z = f;
		k1 += (float)((tilesizy[tspr->picnum]*tspr->yrepeat)>>3);
	}

	f = (65536.0*512.0)/((float)xdimen*viewingrange);
	g = 32.0/((float)xdimen*gxyaspect);
	m0.y *= f; m1.y *= f; a0.y = (((float)(tspr->x-globalposx))/  1024.0 + a0.y)*f;
	m0.x *=-f; m1.x *=-f; a0.x = (((float)(k1     -globalposy))/ -1024.0 + a0.x)*-f;
	m0.z *= g; m1.z *= g; a0.z = (((float)(k0     -globalposz))/-16384.0 + a0.z)*g;

	k0 = ((float)(tspr->x-globalposx))*f/1024.0;
	k1 = ((float)(tspr->y-globalposy))*f/1024.0;
	f = gcosang2*gshang;
	g = gsinang2*gshang;
	k4 = (float)sintable[(tspr->ang+spriteext[tspr->owner].angoff+1024)&2047] / 16384.0;
	k5 = (float)sintable[(tspr->ang+spriteext[tspr->owner].angoff+ 512)&2047] / 16384.0;
	k2 = k0*(1-k4)+k1*k5;
	k3 = k1*(1-k4)-k0*k5;
	k6 = f*gstang - gsinang*gctang; k7 = g*gstang + gcosang*gctang;
	mat[0] = k4*k6 + k5*k7; mat[4] = gchang*gstang; mat[ 8] = k4*k7 - k5*k6; mat[12] = k2*k6 + k3*k7;
	k6 = f*gctang + gsinang*gstang; k7 = g*gctang - gcosang*gstang;
	mat[1] = k4*k6 + k5*k7; mat[5] = gchang*gctang; mat[ 9] = k4*k7 - k5*k6; mat[13] = k2*k6 + k3*k7;
	k6 =           gcosang2*gchang; k7 =           gsinang2*gchang;
	mat[2] = k4*k6 + k5*k7; mat[6] =-gshang;        mat[10] = k4*k7 - k5*k6; mat[14] = k2*k6 + k3*k7;

	mat[12] += a0.y*mat[0] + a0.z*mat[4] + a0.x*mat[ 8];
	mat[13] += a0.y*mat[1] + a0.z*mat[5] + a0.x*mat[ 9];
	mat[14] += a0.y*mat[2] + a0.z*mat[6] + a0.x*mat[10];

	// floor aligned
	if((globalorientation&48)==32)
	{
		f = mat[4]; mat[4] = mat[8]*16.0; mat[8] = -f*(1.0/16.0);
		f = mat[5]; mat[5] = mat[9]*16.0; mat[9] = -f*(1.0/16.0);
		f = mat[6]; mat[6] = mat[10]*16.0; mat[10] = -f*(1.0/16.0);
	}

	//Mirrors
	if (grhalfxdown10x < 0) { mat[0] = -mat[0]; mat[4] = -mat[4]; mat[8] = -mat[8]; mat[12] = -mat[12]; }

	mat[3] = mat[7] = mat[11] = 0.f; mat[15] = 1.f;

//------------
	//bit 10 is an ugly hack in game.c\animatesprites telling MD2SPRITE
	//to use Z-buffer hacks to hide overdraw problems with the shadows
	if (tspr->cstat&1024)
	{
		glfunc.glDepthFunc(GL_LESS); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS
#if (USE_OPENGL == USE_GLES2)
		glfunc.glDepthRangef(0.f,0.9999f);
#else
		glfunc.glDepthRange(0.0,0.9999);
#endif
	}
	if ((grhalfxdown10x >= 0) ^ ((globalorientation&8) != 0) ^ ((globalorientation&4) != 0)) glfunc.glFrontFace(GL_CW); else glfunc.glFrontFace(GL_CCW);
	glfunc.glEnable(GL_CULL_FACE);
	glfunc.glCullFace(GL_BACK);

	pc[0] = pc[1] = pc[2] = ((float)(numpalookups-min(max(globalshade+m->shadeoff,0),numpalookups)))/((float)numpalookups);
	pc[0] *= (float)hictinting[globalpal].r / 255.0;
	pc[1] *= (float)hictinting[globalpal].g / 255.0;
	pc[2] *= (float)hictinting[globalpal].b / 255.0;
	if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66; else pc[3] = 0.33; } else pc[3] = 1.0;
	if (m->usesalpha || (tspr->cstat&2)) glfunc.glEnable(GL_BLEND); else glfunc.glDisable(GL_BLEND); //Sprites with alpha in texture
//------------

	draw.texture1 = 0;
	draw.alphacut = 0.32;
	draw.colour.r = pc[0];
	draw.colour.g = pc[1];
	draw.colour.b = pc[2];
	draw.colour.a = pc[3];
	draw.fogcolour.r = (float)palookupfog[gfogpalnum].r / 63.f;
	draw.fogcolour.g = (float)palookupfog[gfogpalnum].g / 63.f;
	draw.fogcolour.b = (float)palookupfog[gfogpalnum].b / 63.f;
	draw.fogcolour.a = 1.f;
	draw.fogdensity = gfogdensity;
	draw.indexbuffer = 0;
	draw.elementbuffer = 0;
	draw.elementvbo = elementvbo;

	if (method & 1) {
		draw.projection = &grotatespriteprojmat[0][0];
	} else {
		draw.projection = &gdrawroomsprojmat[0][0];
	}
	draw.modelview = mat;

	for(surfi=0;surfi<m->head.numsurfs;surfi++)
	{
		s = &m->head.surfs[surfi];
		v0 = &s->xyzn[m->cframe*s->numverts];
		v1 = &s->xyzn[m->nframe*s->numverts];

		for(i=s->numverts-1;i>=0;i--) //interpolate (for animation) & transform to Build coords
		{
			vertlist[i].z = ((float)v0[i].x)*m0.x + ((float)v1[i].x)*m1.x;
			vertlist[i].y = ((float)v0[i].z)*m0.z + ((float)v1[i].z)*m1.z;
			vertlist[i].x = ((float)v0[i].y)*m0.y + ((float)v1[i].y)*m1.y;
		}

#if 0
		//precalc:
	float sinlut256[256+(256>>2)];
	for(i=0;i<sizeof(sinlut256)/sizeof(sinlut256[0]);i++) sinlut256[i] = sin(((float)i)*(PI*2/255.0));

		//normal to xyz:
	md3vert_t *mv = &md3vert[?];
	z = sinlut256[mv->nlng+(256>>2)];
	x = sinlut256[mv->nlat]*z;
	y = sinlut256[mv->nlat+(256>>2)]*z;
	z = sinlut256[mv->nlng];
#endif

		ptmh = mdloadskin((md2model *)m,tile2model[tspr->picnum].skinnum,globalpal,surfi);
		if (!ptmh || !ptmh->glpic) continue;

		draw.texture0 = ptmh->glpic;

		for(i=0, vbi=0; i<s->numtris; i++, vbi+=3)
			for(j=2;j>=0;j--)
			{
				k = s->tris[i].i[j];

				elementvbo[vbi+j].v.x = vertlist[k].x;
				elementvbo[vbi+j].v.y = vertlist[k].y;
				elementvbo[vbi+j].v.z = vertlist[k].z;
				elementvbo[vbi+j].t.s = s->uv[k].u;
				elementvbo[vbi+j].t.t = s->uv[k].v;
			}

		draw.indexcount = 3 * s->numtris;
		draw.elementcount = 3 * s->numtris;
		polymost_drawpoly_glcall(GL_TRIANGLES, &draw);
	}

//------------
	glfunc.glDisable(GL_CULL_FACE);
	glfunc.glFrontFace(GL_CCW);
	if (tspr->cstat&1024)
	{
		glfunc.glDepthFunc(GL_LEQUAL); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS
#if (USE_OPENGL == USE_GLES2)
		glfunc.glDepthRangef(0.f,0.99999f);
#else
		glfunc.glDepthRange(0.0,0.99999);
#endif
	}

	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq $0x0, -0xf0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x98670
movq -0x8(%rbp), %rax
movss 0x3c(%rax), %xmm0
movss %xmm0, -0x60(%rbp)
movss 0x1cfbc(%rip), %xmm0    # 0xb2e00
subss -0x60(%rbp), %xmm0
movss %xmm0, -0x64(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x212e5(%rip), %xmm0    # 0xb7148
mulsd %xmm1, %xmm0
movss -0x64(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x212b6(%rip), %xmm0    # 0xb7148
mulsd %xmm1, %xmm0
movss -0x60(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x21287(%rip), %xmm0    # 0xb7148
mulsd %xmm1, %xmm0
movss -0x64(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x21258(%rip), %xmm0    # 0xb7148
mulsd %xmm1, %xmm0
movss -0x60(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x21229(%rip), %xmm0    # 0xb7148
mulsd %xmm1, %xmm0
movss -0x64(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x211fa(%rip), %xmm0    # 0xb7148
mulsd %xmm1, %xmm0
movss -0x60(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x34(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
mulss 0x8(%rax), %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x10(%rbp), %rax
cvtsi2ssl 0x8(%rax), %xmm0
movss %xmm0, -0x68(%rbp)
leaq 0x3b4dbc(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x95ff0
leaq 0x3b4da9(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
je 0x95ff0
movq -0x10(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x3a656f(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movq -0x10(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
shll %eax
cvtsi2ss %eax, %xmm0
addss -0x68(%rbp), %xmm0
movss %xmm0, -0x68(%rbp)
leaq 0x3b4d69(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x9607a
movss -0x18(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x18(%rbp)
movss -0x24(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x30(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x3a64ea(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movq -0x10(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
shll $0x2, %eax
cvtsi2ss %eax, %xmm1
movss -0x68(%rbp), %xmm0
subss %xmm1, %xmm0
movss %xmm0, -0x68(%rbp)
leaq 0x3b4cdf(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x960d0
movss -0x1c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x28(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x34(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x34(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x14(%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x2108c(%rip), %xmm1    # 0xb7170
mulss %xmm1, %xmm0
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x60(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x20(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x2c(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x38(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x38(%rbp)
movaps 0x205a6(%rip), %xmm1    # 0xb66e0
movss -0x60(%rbp), %xmm0
pxor %xmm1, %xmm0
movss %xmm0, -0x60(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x1c(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x28(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x34(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x34(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x15(%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x20477(%rip), %xmm1    # 0xb660c
divss %xmm1, %xmm0
movq -0x8(%rbp), %rax
mulss 0xc(%rax), %xmm0
movss %xmm0, -0x60(%rbp)
movss -0x60(%rbp), %xmm0
mulss -0x18(%rbp), %xmm0
movss %xmm0, -0x18(%rbp)
movss -0x60(%rbp), %xmm0
mulss -0x24(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x60(%rbp), %xmm0
mulss -0x30(%rbp), %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x10(%rbp), %rax
cvtsi2ssl 0x4(%rax), %xmm0
movss %xmm0, -0x6c(%rbp)
leaq 0x3b4b77(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
jne 0x962cf
movss -0x18(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x18(%rbp)
movss -0x24(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x30(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x30(%rbp)
movss -0x1c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x28(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x34(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0x60(%rbp)
movss -0x30(%rbp), %xmm0
movss %xmm0, -0x38(%rbp)
movss -0x60(%rbp), %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x3a6291(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movq -0x10(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
sarl $0x3, %eax
cvtsi2ss %eax, %xmm0
addss -0x6c(%rbp), %xmm0
movss %xmm0, -0x6c(%rbp)
leaq 0x4aa4a(%rip), %rax     # 0xe0d20
cvtsi2ssl (%rax), %xmm0
leaq 0x3765cf(%rip), %rcx    # 0x40c8b0
cvtsi2ssl (%rcx), %xmm1
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x20193(%rip), %xmm0    # 0xb6488
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x60(%rbp)
cvtsi2ssl (%rax), %xmm0
cvtss2sd %xmm0, %xmm1
leaq 0x55b87f(%rip), %rax    # 0x5f1b90
movsd (%rax), %xmm0
mulsd %xmm0, %xmm1
movsd 0x201df(%rip), %xmm0    # 0xb6500
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x64(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x1c(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x1c(%rbp)
movss -0x60(%rbp), %xmm1
movss -0x28(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
leaq 0x1e124f(%rip), %rdx    # 0x2775b0
movl (%rdx), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1c993(%rip), %xmm1    # 0xb2d08
mulsd %xmm1, %xmm0
movss -0x34(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
addsd %xmm2, %xmm0
movss -0x60(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x60(%rbp), %xmm2
movaps 0x20338(%rip), %xmm3    # 0xb66e0
pxor %xmm3, %xmm2
movss -0x20(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x60(%rbp), %xmm2
pxor %xmm3, %xmm2
movss -0x2c(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x6c(%rbp), %xmm0
leaq 0x1e11d7(%rip), %rcx    # 0x2775b4
cvtsi2ssl (%rcx), %xmm2
subss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20d5f(%rip), %xmm2    # 0xb7150
mulsd %xmm2, %xmm0
movss -0x38(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
addsd %xmm2, %xmm0
movss -0x60(%rbp), %xmm2
pxor %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
movss -0x64(%rbp), %xmm2
movss -0x18(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x18(%rbp)
movss -0x64(%rbp), %xmm2
movss -0x24(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x68(%rbp), %xmm0
leaq 0x212172(%rip), %rax    # 0x2a85c0
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20cf6(%rip), %xmm2    # 0xb7158
mulsd %xmm2, %xmm0
movss -0x30(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
addsd %xmm2, %xmm0
movss -0x64(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl (%rdx), %edx
subl %edx, %eax
cvtsi2ss %eax, %xmm0
movss -0x60(%rbp), %xmm2
mulss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x68(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl (%rcx), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
movss -0x60(%rbp), %xmm2
mulss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x6c(%rbp)
leaq 0x557497(%rip), %rax    # 0x5ed978
movsd (%rax), %xmm0
leaq 0x557624(%rip), %rax    # 0x5edb10
movsd (%rax), %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x60(%rbp)
leaq 0x557484(%rip), %rcx    # 0x5ed988
movsd (%rcx), %xmm0
movsd (%rax), %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x64(%rbp)
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %edx
movswq 0x1e(%rax), %rax
leaq (%rax,%rax,2), %rax
leaq 0x2d32e0(%rip), %rcx    # 0x369810
movzwl 0x6(%rcx,%rax,4), %esi
movl %edx, %eax
movl %esi, %edx
leal 0x400(%rax,%rdx), %eax
andl $0x7ff, %eax            # imm = 0x7FF
movl %eax, %edx
leaq 0x375362(%rip), %rax    # 0x40b8b0
movswl (%rax,%rdx,2), %edx
cvtsi2ss %edx, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20bfe(%rip), %xmm1    # 0xb7160
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x78(%rbp)
movq -0x10(%rbp), %rsi
movl 0x1c(%rsi), %edx
movswq 0x1e(%rsi), %rsi
leaq (%rsi,%rsi,2), %rsi
movzwl 0x6(%rcx,%rsi,4), %esi
movl %edx, %ecx
movl %esi, %edx
leal 0x200(%rcx,%rdx), %ecx
andl $0x7ff, %ecx            # imm = 0x7FF
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1c767(%rip), %xmm1    # 0xb2d10
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x7c(%rbp)
movss -0x68(%rbp), %xmm0
movss 0x1c83d(%rip), %xmm2    # 0xb2e00
subss -0x78(%rbp), %xmm2
movss -0x6c(%rbp), %xmm1
mulss -0x7c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x6c(%rbp), %xmm0
movss 0x1c814(%rip), %xmm2    # 0xb2e00
subss -0x78(%rbp), %xmm2
movss -0x68(%rbp), %xmm1
mulss -0x7c(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x60(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x5574f3(%rip), %rax    # 0x5edb18
movsd (%rax), %xmm2
leaq 0x557360(%rip), %rax    # 0x5ed990
movsd (%rax), %xmm1
leaq 0x5574bd(%rip), %rax    # 0x5edaf8
mulsd (%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x80(%rbp)
movss -0x64(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x5574a1(%rip), %rax    # 0x5edb18
movsd (%rax), %xmm2
leaq 0x5572fe(%rip), %rax    # 0x5ed980
movsd (%rax), %xmm1
leaq 0x55746b(%rip), %rax    # 0x5edaf8
mulsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x78(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x84(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xd0(%rbp)
leaq 0x55741d(%rip), %rax    # 0x5edaf0
movsd (%rax), %xmm0
leaq 0x55743a(%rip), %rax    # 0x5edb18
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc0(%rbp)
movss -0x78(%rbp), %xmm0
movss -0x84(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x80(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xb0(%rbp)
movss -0x70(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
movss -0x74(%rbp), %xmm1
mulss -0x84(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xa0(%rbp)
movss -0x60(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x55739f(%rip), %rax    # 0x5edaf8
movsd (%rax), %xmm2
leaq 0x55722c(%rip), %rax    # 0x5ed990
movsd (%rax), %xmm1
leaq 0x5573a9(%rip), %rax    # 0x5edb18
mulsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x80(%rbp)
movss -0x64(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x557364(%rip), %rax    # 0x5edaf8
movsd (%rax), %xmm2
leaq 0x5571e1(%rip), %rax    # 0x5ed980
movsd (%rax), %xmm1
leaq 0x55736e(%rip), %rax    # 0x5edb18
mulsd (%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x78(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x84(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xcc(%rbp)
leaq 0x5572e9(%rip), %rax    # 0x5edaf0
movsd (%rax), %xmm0
leaq 0x5572e6(%rip), %rax    # 0x5edaf8
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xbc(%rbp)
movss -0x78(%rbp), %xmm0
movss -0x84(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x80(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xac(%rbp)
movss -0x70(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
movss -0x74(%rbp), %xmm1
mulss -0x84(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x9c(%rbp)
leaq 0x5570f4(%rip), %rax    # 0x5ed978
movsd (%rax), %xmm0
leaq 0x557261(%rip), %rax    # 0x5edaf0
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x80(%rbp)
leaq 0x5570e5(%rip), %rax    # 0x5ed988
movsd (%rax), %xmm0
leaq 0x557242(%rip), %rax    # 0x5edaf0
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x78(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x84(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xc8(%rbp)
leaq 0x557224(%rip), %rax    # 0x5edb10
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xb8(%rbp)
movss -0x78(%rbp), %xmm0
movss -0x84(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x80(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xa8(%rbp)
movss -0x70(%rbp), %xmm0
movss -0x80(%rbp), %xmm2
movss -0x74(%rbp), %xmm1
mulss -0x84(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x98(%rbp)
movss -0x34(%rbp), %xmm1
movss -0xd0(%rbp), %xmm2
movss -0x30(%rbp), %xmm0
mulss -0xc0(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
movss -0xb0(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
addss -0xa0(%rbp), %xmm0
movss %xmm0, -0xa0(%rbp)
movss -0x34(%rbp), %xmm1
movss -0xcc(%rbp), %xmm2
movss -0x30(%rbp), %xmm0
mulss -0xbc(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
movss -0xac(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
addss -0x9c(%rbp), %xmm0
movss %xmm0, -0x9c(%rbp)
movss -0x34(%rbp), %xmm1
movss -0xc8(%rbp), %xmm2
movss -0x30(%rbp), %xmm0
mulss -0xb8(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x38(%rbp), %xmm0
movss -0xa8(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
addss -0x98(%rbp), %xmm0
movss %xmm0, -0x98(%rbp)
leaq 0x3b4316(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
jne 0x96b75
movss -0xc0(%rbp), %xmm0
movss %xmm0, -0x60(%rbp)
movss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1f9df(%rip), %xmm1    # 0xb6458
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc0(%rbp)
movss -0x60(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1f9a1(%rip), %xmm1    # 0xb6448
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xb0(%rbp)
movss -0xbc(%rbp), %xmm0
movss %xmm0, -0x60(%rbp)
movss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1f980(%rip), %xmm1    # 0xb6458
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xbc(%rbp)
movss -0x60(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1f942(%rip), %xmm1    # 0xb6448
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xac(%rbp)
movss -0xb8(%rbp), %xmm0
movss %xmm0, -0x60(%rbp)
movss -0xa8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1f921(%rip), %xmm1    # 0xb6458
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xb8(%rbp)
movss -0x60(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1f8e3(%rip), %xmm1    # 0xb6448
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xa8(%rbp)
xorps %xmm0, %xmm0
leaq 0x556ff1(%rip), %rax    # 0x5edb70
ucomisd (%rax), %xmm0
jbe 0x96bf9
movss -0xd0(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xd0(%rbp)
movss -0xc0(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xc0(%rbp)
movss -0xb0(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xb0(%rbp)
movss -0xa0(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xa0(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xa4(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xb4(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xc4(%rbp)
movss 0x1c1de(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0x94(%rbp)
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x96c66
movl $0x201, %edi            # imm = 0x201
leaq 0x556ac8(%rip), %rax    # 0x5ed710
callq *0x98(%rax)
xorps %xmm0, %xmm0
movsd 0x2050f(%rip), %xmm1    # 0xb7168
leaq 0x556ab0(%rip), %rax    # 0x5ed710
callq *0xa8(%rax)
leaq 0x556f03(%rip), %rax    # 0x5edb70
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
setae %al
andb $0x1, %al
movzbl %al, %eax
leaq 0x3b40d9(%rip), %rcx    # 0x44ad60
movl (%rcx), %ecx
andl $0x8, %ecx
cmpl $0x0, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
xorl %ecx, %eax
leaq 0x3b40bf(%rip), %rcx    # 0x44ad60
movl (%rcx), %ecx
andl $0x4, %ecx
cmpl $0x0, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
xorl %ecx, %eax
cmpl $0x0, %eax
je 0x96cca
movl $0x900, %edi            # imm = 0x900
leaq 0x556a4b(%rip), %rax    # 0x5ed710
callq *0x28(%rax)
jmp 0x96cd9
movl $0x901, %edi            # imm = 0x901
leaq 0x556a3a(%rip), %rax    # 0x5ed710
callq *0x28(%rax)
movl $0xb44, %edi            # imm = 0xB44
leaq 0x556a2b(%rip), %rax    # 0x5ed710
callq *0x40(%rax)
movl $0x405, %edi            # imm = 0x405
leaq 0x556a1c(%rip), %rax    # 0x5ed710
callq *0x20(%rax)
leaq 0x3b888a(%rip), %rax    # 0x44f588
movswl (%rax), %eax
movl %eax, -0x14c(%rbp)
leaq 0x3b887e(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x4(%rcx), %eax
cmpl $0x0, %eax
jle 0x96d34
leaq 0x3b8869(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x4(%rcx), %eax
movl %eax, -0x150(%rbp)
jmp 0x96d3e
xorl %eax, %eax
movl %eax, -0x150(%rbp)
jmp 0x96d3e
movl -0x150(%rbp), %eax
leaq 0x3b883d(%rip), %rcx    # 0x44f588
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x96d97
leaq 0x3b8833(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x4(%rcx), %eax
cmpl $0x0, %eax
jle 0x96d7f
leaq 0x3b881e(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x8(%rbp), %rcx
addl 0x4(%rcx), %eax
movl %eax, -0x154(%rbp)
jmp 0x96d89
xorl %eax, %eax
movl %eax, -0x154(%rbp)
jmp 0x96d89
movl -0x154(%rbp), %eax
movl %eax, -0x158(%rbp)
jmp 0x96da7
leaq 0x3b87ea(%rip), %rax    # 0x44f588
movswl (%rax), %eax
movl %eax, -0x158(%rbp)
movl -0x14c(%rbp), %eax
movl -0x158(%rbp), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
leaq 0x3b87c8(%rip), %rax    # 0x44f588
movswl (%rax), %eax
cvtsi2ss %eax, %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0xd8(%rbp)
movss %xmm0, -0xdc(%rbp)
movss %xmm0, -0xe0(%rbp)
leaq 0x3b3f7a(%rip), %rcx    # 0x44ad64
movslq (%rcx), %rdx
leaq 0x5a4e0c(%rip), %rax    # 0x63bc00
movzbl (%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm0
cvtss2sd %xmm0, %xmm2
movsd 0x1bf18(%rip), %xmm0    # 0xb2d20
divsd %xmm0, %xmm2
movss -0xe0(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm1
cvtsd2ss %xmm1, %xmm1
movss %xmm1, -0xe0(%rbp)
movslq (%rcx), %rdx
movzbl 0x1(%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm0, %xmm1
movss -0xdc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xdc(%rbp)
movslq (%rcx), %rcx
movzbl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x1beb0(%rip), %xmm0    # 0xb2d20
divsd %xmm0, %xmm1
movss -0xd8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd8(%rbp)
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x96ed6
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
jne 0x96ec4
movss 0x1f72e(%rip), %xmm0    # 0xb65e8
movss %xmm0, -0xd4(%rbp)
jmp 0x96ed4
movss 0x1f718(%rip), %xmm0    # 0xb65e4
movss %xmm0, -0xd4(%rbp)
jmp 0x96ee6
movss 0x1bf22(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0xd4(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x30(%rax)
jne 0x96f00
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x96f11
movl $0xbe2, %edi            # imm = 0xBE2
leaq 0x556804(%rip), %rax    # 0x5ed710
callq *0x40(%rax)
jmp 0x96f20
movl $0xbe2, %edi            # imm = 0xBE2
leaq 0x5567f3(%rip), %rax    # 0x5ed710
callq *0x48(%rax)
movl $0x0, -0x144(%rbp)
movl $0x3ea3d70a, -0x140(%rbp) # imm = 0x3EA3D70A
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0x13c(%rbp)
movss -0xdc(%rbp), %xmm0
movss %xmm0, -0x138(%rbp)
movss -0xd8(%rbp), %xmm0
movss %xmm0, -0x134(%rbp)
movss -0xd4(%rbp), %xmm0
movss %xmm0, -0x130(%rbp)
leaq 0x5569cd(%rip), %rcx    # 0x5ed948
movslq (%rcx), %rdx
leaq 0x3d9e7b(%rip), %rax    # 0x470e00
movzbl (%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm0
movss 0x1f64b(%rip), %xmm1    # 0xb65e0
divss %xmm1, %xmm0
movss %xmm0, -0x12c(%rbp)
movslq (%rcx), %rdx
movzbl 0x1(%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm0
divss %xmm1, %xmm0
movss %xmm0, -0x128(%rbp)
movslq (%rcx), %rcx
movzbl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
movss 0x1f613(%rip), %xmm1    # 0xb65e0
divss %xmm1, %xmm0
movss %xmm0, -0x124(%rbp)
movss 0x1be1f(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0x120(%rbp)
leaq 0x55695c(%rip), %rax    # 0x5ed94c
movss (%rax), %xmm0
movss %xmm0, -0x11c(%rbp)
movl $0x0, -0x108(%rbp)
movl $0x0, -0x100(%rbp)
movq 0x5c0019(%rip), %rax    # 0x657030
movq %rax, -0xf8(%rbp)
movl -0x14(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x97039
leaq 0x556a40(%rip), %rax    # 0x5eda70
movq %rax, -0x110(%rbp)
jmp 0x97047
leaq 0x5569f0(%rip), %rax    # 0x5eda30
movq %rax, -0x110(%rbp)
leaq -0xd0(%rbp), %rax
movq %rax, -0x118(%rbp)
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xac(%rcx), %eax
jge 0x973ea
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x7, %rcx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x24(%rcx), %ecx
movq -0xe8(%rbp), %rdx
imull 0x50(%rdx), %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0xe8(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x28(%rcx), %ecx
movq -0xe8(%rbp), %rdx
imull 0x50(%rdx), %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0xe8(%rbp), %rax
movl 0x50(%rax), %eax
subl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jl 0x971d8
movq -0x40(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movswl (%rax,%rcx,8), %eax
cvtsi2ss %eax, %xmm0
movss -0x20(%rbp), %xmm2
movq -0x48(%rbp), %rax
movswl (%rax,%rcx,8), %eax
cvtsi2ss %eax, %xmm1
movss -0x2c(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x5bfeeb(%rip), %rax    # 0x657020
leaq (%rcx,%rcx,2), %rcx
movss %xmm0, 0x8(%rax,%rcx,4)
movq -0x40(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movswl 0x4(%rax,%rcx,8), %eax
cvtsi2ss %eax, %xmm0
movss -0x18(%rbp), %xmm2
movq -0x48(%rbp), %rax
movswl 0x4(%rax,%rcx,8), %eax
cvtsi2ss %eax, %xmm1
movss -0x24(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x5bfea6(%rip), %rax    # 0x657020
leaq (%rcx,%rcx,2), %rcx
movss %xmm0, 0x4(%rax,%rcx,4)
movq -0x40(%rbp), %rax
movslq -0x4c(%rbp), %rcx
movswl 0x2(%rax,%rcx,8), %eax
cvtsi2ss %eax, %xmm0
movss -0x1c(%rbp), %xmm2
movq -0x48(%rbp), %rax
movswl 0x2(%rax,%rcx,8), %eax
cvtsi2ss %eax, %xmm1
mulss -0x28(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x5bfe65(%rip), %rax    # 0x657020
movslq -0x4c(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, (%rax)
movl -0x4c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x970f2
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x5a4e34(%rip), %rax    # 0x63c020
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %esi
leaq 0x3b3b67(%rip), %rax    # 0x44ad64
movl (%rax), %edx
movl -0x5c(%rbp), %ecx
callq 0x8f7a0
movq %rax, -0xf0(%rbp)
cmpq $0x0, -0xf0(%rbp)
je 0x97224
movq -0xf0(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x97229
jmp 0x973dc
movq -0xf0(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x148(%rbp)
movl $0x0, -0x4c(%rbp)
movl $0x0, -0x58(%rbp)
movl -0x4c(%rbp), %eax
movq -0xe8(%rbp), %rcx
cmpl 0x54(%rcx), %eax
jge 0x973a9
movl $0x2, -0x50(%rbp)
cmpl $0x0, -0x50(%rbp)
jl 0x97390
movq -0xe8(%rbp), %rax
movq 0x58(%rax), %rax
movslq -0x4c(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movslq -0x50(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x54(%rbp)
movq 0x5bfd8f(%rip), %rax    # 0x657020
movslq -0x54(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss (%rax), %xmm0
movq 0x5bfd89(%rip), %rax    # 0x657030
movl -0x58(%rbp), %ecx
addl -0x50(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, (%rax)
movq 0x5bfd5e(%rip), %rax    # 0x657020
movslq -0x54(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss 0x4(%rax), %xmm0
movq 0x5bfd57(%rip), %rax    # 0x657030
movl -0x58(%rbp), %ecx
addl -0x50(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, 0x4(%rax)
movq 0x5bfd2b(%rip), %rax    # 0x657020
movslq -0x54(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss 0x8(%rax), %xmm0
movq 0x5bfd24(%rip), %rax    # 0x657030
movl -0x58(%rbp), %ecx
addl -0x50(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, 0x8(%rax)
movq -0xe8(%rbp), %rax
movq 0x68(%rax), %rax
movslq -0x54(%rbp), %rcx
movss (%rax,%rcx,8), %xmm0
movq 0x5bfcf4(%rip), %rax    # 0x657030
movl -0x58(%rbp), %ecx
addl -0x50(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, 0xc(%rax)
movq -0xe8(%rbp), %rax
movq 0x68(%rax), %rax
movslq -0x54(%rbp), %rcx
movss 0x4(%rax,%rcx,8), %xmm0
movq 0x5bfcc3(%rip), %rax    # 0x657030
movl -0x58(%rbp), %ecx
addl -0x50(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, 0x10(%rax)
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x97260
jmp 0x97392
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
movl -0x58(%rbp), %eax
addl $0x3, %eax
movl %eax, -0x58(%rbp)
jmp 0x97246
movq -0xe8(%rbp), %rax
imull $0x3, 0x54(%rax), %eax
movl %eax, -0x104(%rbp)
movq -0xe8(%rbp), %rax
imull $0x3, 0x54(%rax), %eax
movl %eax, -0xfc(%rbp)
movl $0x4, %edi
leaq -0x148(%rbp), %rsi
callq 0x73570
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x9705c
movl $0xb44, %edi            # imm = 0xB44
leaq 0x55631a(%rip), %rax    # 0x5ed710
callq *0x48(%rax)
movl $0x901, %edi            # imm = 0x901
leaq 0x55630b(%rip), %rax    # 0x5ed710
callq *0x28(%rax)
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x97444
movl $0x203, %edi            # imm = 0x203
leaq 0x5562ea(%rip), %rax    # 0x5ed710
callq *0x98(%rax)
xorps %xmm0, %xmm0
movsd 0x1f069(%rip), %xmm1    # 0xb64a0
leaq 0x5562d2(%rip), %rax    # 0x5ed710
callq *0xa8(%rax)
movl $0x1, %eax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
nopw %cs:(%rax,%rax)