// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/mdsprite.c
// Function: md2draw
static int md2draw (md2model *m, spritetype *tspr, int method)
{
	point3d m0, m1, a0;
	md2frame_t *f0, *f1;
	md2vert_t *c0, *c1;
	int i, j, vbi;
	float f, g, k0, k1, k2, k3, k4, k5, k6, k7, mat[16], pc[4];
	PTMHead *ptmh = 0;
	struct polymostdrawpolycall draw;

	updateanimation(m,tspr);

// -------- Unnecessarily clean (lol) code to generate translation/rotation matrix for MD2 ---------

		//create current&next frame's vertex list from whole list
	f0 = (md2frame_t *)&m->frames[m->cframe*m->framebytes];
	f1 = (md2frame_t *)&m->frames[m->nframe*m->framebytes];
	f = m->interpol; g = 1-f;
	m0.x = f0->mul.x*m->scale*g; m1.x = f1->mul.x*m->scale*f;
	m0.y = f0->mul.y*m->scale*g; m1.y = f1->mul.y*m->scale*f;
	m0.z = f0->mul.z*m->scale*g; m1.z = f1->mul.z*m->scale*f;
	a0.x = f0->add.x*m->scale; a0.x = (f1->add.x*m->scale-a0.x)*f+a0.x;
	a0.y = f0->add.y*m->scale; a0.y = (f1->add.y*m->scale-a0.y)*f+a0.y;
	a0.z = f0->add.z*m->scale; a0.z = (f1->add.z*m->scale-a0.z)*f+a0.z + m->zadd*m->scale;
	c0 = &f0->verts[0]; c1 = &f1->verts[0];

	// 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;

// ------ Unnecessarily clean (lol) code to generate translation/rotation matrix for MD2 ends ------

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

	ptmh = mdloadskin(m,tile2model[tspr->picnum].skinnum,globalpal,0);
	if (!ptmh || !ptmh->glpic) return 0;

	//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

	for (i=0, vbi=0; i<m->numtris; i++, vbi+=3) {
		md2tri_t *tri = &m->tris[i];
		for (j=2; j>=0; j--) {
			elementvbo[vbi+j].v.x = vertlist[ tri->ivert[j] ].x;
			elementvbo[vbi+j].v.y = vertlist[ tri->ivert[j] ].y;
			elementvbo[vbi+j].v.z = vertlist[ tri->ivert[j] ].z;
			elementvbo[vbi+j].t.s = (GLfloat)m->uvs[ tri->iuv[j] ].u / m->skinxsiz;
			elementvbo[vbi+j].t.t = (GLfloat)m->uvs[ tri->iuv[j] ].v / m->skinysiz;
		}
	}

	draw.texture0 = ptmh->glpic;
	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;

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

	draw.indexcount = 3 * m->numtris;
	draw.indexbuffer = 0;
	draw.elementbuffer = 0;
	draw.elementcount = 3 * m->numtris;
	draw.elementvbo = elementvbo;
	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 $0x170, %rsp            # imm = 0x170
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movq $0x0, -0xf8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x98670
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x10(%rbp), %rcx
movl 0x24(%rcx), %ecx
movq -0x10(%rbp), %rdx
imull 0x64(%rdx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x10(%rbp), %rcx
movl 0x28(%rcx), %ecx
movq -0x10(%rbp), %rdx
imull 0x64(%rdx), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movss 0x3c(%rax), %xmm0
movss %xmm0, -0x70(%rbp)
movss 0x1e6ca(%rip), %xmm0    # 0xb2e00
subss -0x70(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movq -0x48(%rbp), %rax
movss (%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
mulss -0x74(%rbp), %xmm0
movss %xmm0, -0x28(%rbp)
movq -0x50(%rbp), %rax
movss (%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
mulss -0x70(%rbp), %xmm0
movss %xmm0, -0x34(%rbp)
movq -0x48(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
mulss -0x74(%rbp), %xmm0
movss %xmm0, -0x24(%rbp)
movq -0x50(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
mulss -0x70(%rbp), %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x48(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
mulss -0x74(%rbp), %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x50(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
mulss -0x70(%rbp), %xmm0
movss %xmm0, -0x2c(%rbp)
movq -0x48(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x50(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
movss -0x40(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss -0x70(%rbp), %xmm2
movss -0x40(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x48(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
movss %xmm0, -0x3c(%rbp)
movq -0x50(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
movss -0x3c(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss -0x70(%rbp), %xmm2
movss -0x3c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x3c(%rbp)
movq -0x48(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x8(%rax), %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x50(%rbp), %rax
movss 0x14(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
movss -0x38(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x70(%rbp), %xmm2
movss -0x38(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x10(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x48(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rax
cvtsi2ssl 0x8(%rax), %xmm0
movss %xmm0, -0x78(%rbp)
leaq 0x3b6425(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x94987
leaq 0x3b6412(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
je 0x94987
movq -0x18(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x3a7bd8(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movq -0x18(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
shll %eax
cvtsi2ss %eax, %xmm0
addss -0x78(%rbp), %xmm0
movss %xmm0, -0x78(%rbp)
leaq 0x3b63d2(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x94a11
movss -0x20(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x2c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x38(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x3a7b53(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movq -0x18(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
shll $0x2, %eax
cvtsi2ss %eax, %xmm1
movss -0x78(%rbp), %xmm0
subss %xmm1, %xmm0
movss %xmm0, -0x78(%rbp)
leaq 0x3b6348(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x94a67
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 -0x3c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x3c(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x14(%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x226f5(%rip), %xmm1    # 0xb7170
mulss %xmm1, %xmm0
movq -0x10(%rbp), %rax
movss 0xc(%rax), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x28(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x34(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x40(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movaps 0x21c0f(%rip), %xmm1    # 0xb66e0
movss -0x70(%rbp), %xmm0
pxor %xmm1, %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x24(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x30(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x30(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x3c(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x3c(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x15(%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x21ae0(%rip), %xmm1    # 0xb660c
divss %xmm1, %xmm0
movq -0x10(%rbp), %rax
mulss 0xc(%rax), %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x70(%rbp), %xmm0
mulss -0x20(%rbp), %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x70(%rbp), %xmm0
mulss -0x2c(%rbp), %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x70(%rbp), %xmm0
mulss -0x38(%rbp), %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
cvtsi2ssl 0x4(%rax), %xmm0
movss %xmm0, -0x7c(%rbp)
leaq 0x3b61e0(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
jne 0x94c66
movss -0x20(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x2c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x38(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x38(%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 -0x3c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x40(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x38(%rbp), %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x70(%rbp), %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x3a78fa(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movq -0x18(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
sarl $0x3, %eax
cvtsi2ss %eax, %xmm0
addss -0x7c(%rbp), %xmm0
movss %xmm0, -0x7c(%rbp)
leaq 0x4c0b3(%rip), %rax     # 0xe0d20
cvtsi2ssl (%rax), %xmm0
leaq 0x377c38(%rip), %rcx    # 0x40c8b0
cvtsi2ssl (%rcx), %xmm1
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x217fc(%rip), %xmm0    # 0xb6488
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x70(%rbp)
cvtsi2ssl (%rax), %xmm0
cvtss2sd %xmm0, %xmm1
leaq 0x55cee8(%rip), %rax    # 0x5f1b90
movsd (%rax), %xmm0
mulsd %xmm0, %xmm1
movsd 0x21848(%rip), %xmm0    # 0xb6500
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x24(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x24(%rbp)
movss -0x70(%rbp), %xmm1
movss -0x30(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
leaq 0x1e28b8(%rip), %rdx    # 0x2775b0
movl (%rdx), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1dffc(%rip), %xmm1    # 0xb2d08
mulsd %xmm1, %xmm0
movss -0x3c(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
addsd %xmm2, %xmm0
movss -0x70(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x70(%rbp), %xmm2
movaps 0x219a1(%rip), %xmm3    # 0xb66e0
pxor %xmm3, %xmm2
movss -0x28(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x28(%rbp)
movss -0x70(%rbp), %xmm2
pxor %xmm3, %xmm2
movss -0x34(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x7c(%rbp), %xmm0
leaq 0x1e2840(%rip), %rcx    # 0x2775b4
cvtsi2ssl (%rcx), %xmm2
subss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x223c8(%rip), %xmm2    # 0xb7150
mulsd %xmm2, %xmm0
movss -0x40(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
addsd %xmm2, %xmm0
movss -0x70(%rbp), %xmm2
pxor %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x74(%rbp), %xmm2
movss -0x20(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x20(%rbp)
movss -0x74(%rbp), %xmm2
movss -0x2c(%rbp), %xmm0
mulss %xmm2, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x78(%rbp), %xmm0
leaq 0x2137db(%rip), %rax    # 0x2a85c0
cvtsi2ssl (%rax), %xmm2
subss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2235f(%rip), %xmm2    # 0xb7158
mulsd %xmm2, %xmm0
movss -0x38(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
addsd %xmm2, %xmm0
movss -0x74(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl (%rdx), %edx
subl %edx, %eax
cvtsi2ss %eax, %xmm0
movss -0x70(%rbp), %xmm2
mulss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x78(%rbp)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movl (%rcx), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
movss -0x70(%rbp), %xmm2
mulss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x7c(%rbp)
leaq 0x558b00(%rip), %rax    # 0x5ed978
movsd (%rax), %xmm0
leaq 0x558c8d(%rip), %rax    # 0x5edb10
movsd (%rax), %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x70(%rbp)
leaq 0x558aed(%rip), %rcx    # 0x5ed988
movsd (%rcx), %xmm0
movsd (%rax), %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movq -0x18(%rbp), %rax
movl 0x1c(%rax), %edx
movswq 0x1e(%rax), %rax
leaq (%rax,%rax,2), %rax
leaq 0x2d4949(%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 0x3769cb(%rip), %rax    # 0x40b8b0
movswl (%rax,%rdx,2), %edx
cvtsi2ss %edx, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x22267(%rip), %xmm1    # 0xb7160
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x88(%rbp)
movq -0x18(%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 0x1ddcd(%rip), %xmm1    # 0xb2d10
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0x78(%rbp), %xmm0
movss 0x1dea0(%rip), %xmm2    # 0xb2e00
subss -0x88(%rbp), %xmm2
movss -0x7c(%rbp), %xmm1
mulss -0x8c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x80(%rbp)
movss -0x7c(%rbp), %xmm0
movss 0x1de71(%rip), %xmm2    # 0xb2e00
subss -0x88(%rbp), %xmm2
movss -0x78(%rbp), %xmm1
mulss -0x8c(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x70(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x558b47(%rip), %rax    # 0x5edb18
movsd (%rax), %xmm2
leaq 0x5589b4(%rip), %rax    # 0x5ed990
movsd (%rax), %xmm1
leaq 0x558b11(%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, -0x90(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x558af2(%rip), %rax    # 0x5edb18
movsd (%rax), %xmm2
leaq 0x55894f(%rip), %rax    # 0x5ed980
movsd (%rax), %xmm1
leaq 0x558abc(%rip), %rax    # 0x5edaf8
mulsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x94(%rbp)
movss -0x88(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xe0(%rbp)
leaq 0x558a65(%rip), %rax    # 0x5edaf0
movsd (%rax), %xmm0
leaq 0x558a82(%rip), %rax    # 0x5edb18
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd0(%rbp)
movss -0x88(%rbp), %xmm0
movss -0x94(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss -0x90(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xc0(%rbp)
movss -0x80(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
movss -0x84(%rbp), %xmm1
mulss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xb0(%rbp)
movss -0x70(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x5589d8(%rip), %rax    # 0x5edaf8
movsd (%rax), %xmm2
leaq 0x558865(%rip), %rax    # 0x5ed990
movsd (%rax), %xmm1
leaq 0x5589e2(%rip), %rax    # 0x5edb18
mulsd (%rax), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x90(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x55899a(%rip), %rax    # 0x5edaf8
movsd (%rax), %xmm2
leaq 0x558817(%rip), %rax    # 0x5ed980
movsd (%rax), %xmm1
leaq 0x5589a4(%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, -0x94(%rbp)
movss -0x88(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xdc(%rbp)
leaq 0x558916(%rip), %rax    # 0x5edaf0
movsd (%rax), %xmm0
leaq 0x558913(%rip), %rax    # 0x5edaf8
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xcc(%rbp)
movss -0x88(%rbp), %xmm0
movss -0x94(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss -0x90(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xbc(%rbp)
movss -0x80(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
movss -0x84(%rbp), %xmm1
mulss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xac(%rbp)
leaq 0x558712(%rip), %rax    # 0x5ed978
movsd (%rax), %xmm0
leaq 0x55887f(%rip), %rax    # 0x5edaf0
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x90(%rbp)
leaq 0x558700(%rip), %rax    # 0x5ed988
movsd (%rax), %xmm0
leaq 0x55885d(%rip), %rax    # 0x5edaf0
mulsd (%rax), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x94(%rbp)
movss -0x88(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xd8(%rbp)
leaq 0x558836(%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, -0xc8(%rbp)
movss -0x88(%rbp), %xmm0
movss -0x94(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss -0x90(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xb8(%rbp)
movss -0x80(%rbp), %xmm0
movss -0x90(%rbp), %xmm2
movss -0x84(%rbp), %xmm1
mulss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xa8(%rbp)
movss -0x3c(%rbp), %xmm1
movss -0xe0(%rbp), %xmm2
movss -0x38(%rbp), %xmm0
mulss -0xd0(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x40(%rbp), %xmm0
movss -0xc0(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
addss -0xb0(%rbp), %xmm0
movss %xmm0, -0xb0(%rbp)
movss -0x3c(%rbp), %xmm1
movss -0xdc(%rbp), %xmm2
movss -0x38(%rbp), %xmm0
mulss -0xcc(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x40(%rbp), %xmm0
movss -0xbc(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
addss -0xac(%rbp), %xmm0
movss %xmm0, -0xac(%rbp)
movss -0x3c(%rbp), %xmm1
movss -0xd8(%rbp), %xmm2
movss -0x38(%rbp), %xmm0
mulss -0xc8(%rbp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x40(%rbp), %xmm0
movss -0xb8(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
addss -0xa8(%rbp), %xmm0
movss %xmm0, -0xa8(%rbp)
leaq 0x3b5919(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
jne 0x95572
movss -0xd0(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movss -0xc0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20fe2(%rip), %xmm1    # 0xb6458
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd0(%rbp)
movss -0x70(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20fa4(%rip), %xmm1    # 0xb6448
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc0(%rbp)
movss -0xcc(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movss -0xbc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20f83(%rip), %xmm1    # 0xb6458
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xcc(%rbp)
movss -0x70(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20f45(%rip), %xmm1    # 0xb6448
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xbc(%rbp)
movss -0xc8(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movss -0xb8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20f24(%rip), %xmm1    # 0xb6458
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc8(%rbp)
movss -0x70(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x20ee6(%rip), %xmm1    # 0xb6448
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xb8(%rbp)
xorps %xmm0, %xmm0
leaq 0x5585f4(%rip), %rax    # 0x5edb70
ucomisd (%rax), %xmm0
jbe 0x955f6
movss -0xe0(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0xe0(%rbp)
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)
xorps %xmm0, %xmm0
movss %xmm0, -0xb4(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xc4(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xd4(%rbp)
movss 0x1d7e1(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0xa4(%rbp)
movq -0x10(%rbp), %rax
movl 0x58(%rax), %eax
subl $0x1, %eax
movl %eax, -0x64(%rbp)
cmpl $0x0, -0x64(%rbp)
jl 0x9571a
movq -0x58(%rbp), %rax
movslq -0x64(%rbp), %rcx
movzbl (%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
movss -0x28(%rbp), %xmm2
movq -0x60(%rbp), %rax
movzbl (%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm1
movss -0x34(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x5c19a9(%rip), %rax    # 0x657020
leaq (%rcx,%rcx,2), %rcx
movss %xmm0, 0x8(%rax,%rcx,4)
movq -0x58(%rbp), %rax
movslq -0x64(%rbp), %rcx
movzbl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
movss -0x20(%rbp), %xmm2
movq -0x60(%rbp), %rax
movzbl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm1
movss -0x2c(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x5c1964(%rip), %rax    # 0x657020
leaq (%rcx,%rcx,2), %rcx
movss %xmm0, 0x4(%rax,%rcx,4)
movq -0x58(%rbp), %rax
movslq -0x64(%rbp), %rcx
movzbl 0x1(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
movss -0x24(%rbp), %xmm2
movq -0x60(%rbp), %rax
movzbl 0x1(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm1
mulss -0x30(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x5c1923(%rip), %rax    # 0x657020
movslq -0x64(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, (%rax)
movl -0x64(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x95634
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x5a68f2(%rip), %rax    # 0x63c020
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %esi
leaq 0x3b5625(%rip), %rax    # 0x44ad64
movl (%rax), %edx
xorl %ecx, %ecx
callq 0x8f7a0
movq %rax, -0xf8(%rbp)
cmpq $0x0, -0xf8(%rbp)
je 0x95765
movq -0xf8(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x95771
movl $0x0, -0x4(%rbp)
jmp 0x95dee
movq -0x18(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x957ad
movl $0x201, %edi            # imm = 0x201
leaq 0x557f81(%rip), %rax    # 0x5ed710
callq *0x98(%rax)
xorps %xmm0, %xmm0
movsd 0x219c8(%rip), %xmm1    # 0xb7168
leaq 0x557f69(%rip), %rax    # 0x5ed710
callq *0xa8(%rax)
leaq 0x5583bc(%rip), %rax    # 0x5edb70
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
setae %al
andb $0x1, %al
movzbl %al, %eax
leaq 0x3b5592(%rip), %rcx    # 0x44ad60
movl (%rcx), %ecx
andl $0x8, %ecx
cmpl $0x0, %ecx
setne %cl
andb $0x1, %cl
movzbl %cl, %ecx
xorl %ecx, %eax
leaq 0x3b5578(%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 0x95811
movl $0x900, %edi            # imm = 0x900
leaq 0x557f04(%rip), %rax    # 0x5ed710
callq *0x28(%rax)
jmp 0x95820
movl $0x901, %edi            # imm = 0x901
leaq 0x557ef3(%rip), %rax    # 0x5ed710
callq *0x28(%rax)
movl $0xb44, %edi            # imm = 0xB44
leaq 0x557ee4(%rip), %rax    # 0x5ed710
callq *0x40(%rax)
movl $0x405, %edi            # imm = 0x405
leaq 0x557ed5(%rip), %rax    # 0x5ed710
callq *0x20(%rax)
leaq 0x3b9d43(%rip), %rax    # 0x44f588
movswl (%rax), %eax
movl %eax, -0x15c(%rbp)
leaq 0x3b9d37(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x4(%rcx), %eax
cmpl $0x0, %eax
jle 0x9587b
leaq 0x3b9d22(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x4(%rcx), %eax
movl %eax, -0x160(%rbp)
jmp 0x95885
xorl %eax, %eax
movl %eax, -0x160(%rbp)
jmp 0x95885
movl -0x160(%rbp), %eax
leaq 0x3b9cf6(%rip), %rcx    # 0x44f588
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x958de
leaq 0x3b9cec(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x4(%rcx), %eax
cmpl $0x0, %eax
jle 0x958c6
leaq 0x3b9cd7(%rip), %rax    # 0x44f58c
movl (%rax), %eax
movq -0x10(%rbp), %rcx
addl 0x4(%rcx), %eax
movl %eax, -0x164(%rbp)
jmp 0x958d0
xorl %eax, %eax
movl %eax, -0x164(%rbp)
jmp 0x958d0
movl -0x164(%rbp), %eax
movl %eax, -0x168(%rbp)
jmp 0x958ee
leaq 0x3b9ca3(%rip), %rax    # 0x44f588
movswl (%rax), %eax
movl %eax, -0x168(%rbp)
movl -0x15c(%rbp), %eax
movl -0x168(%rbp), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
leaq 0x3b9c81(%rip), %rax    # 0x44f588
movswl (%rax), %eax
cvtsi2ss %eax, %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0xe8(%rbp)
movss %xmm0, -0xec(%rbp)
movss %xmm0, -0xf0(%rbp)
leaq 0x3b5433(%rip), %rcx    # 0x44ad64
movslq (%rcx), %rdx
leaq 0x5a62c5(%rip), %rax    # 0x63bc00
movzbl (%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm0
cvtss2sd %xmm0, %xmm2
movsd 0x1d3d1(%rip), %xmm0    # 0xb2d20
divsd %xmm0, %xmm2
movss -0xf0(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm1
cvtsd2ss %xmm1, %xmm1
movss %xmm1, -0xf0(%rbp)
movslq (%rcx), %rdx
movzbl 0x1(%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm0, %xmm1
movss -0xec(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xec(%rbp)
movslq (%rcx), %rcx
movzbl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x1d369(%rip), %xmm0    # 0xb2d20
divsd %xmm0, %xmm1
movss -0xe8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xe8(%rbp)
movq -0x18(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x95a1d
movq -0x18(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
jne 0x95a0b
movss 0x20be7(%rip), %xmm0    # 0xb65e8
movss %xmm0, -0xe4(%rbp)
jmp 0x95a1b
movss 0x20bd1(%rip), %xmm0    # 0xb65e4
movss %xmm0, -0xe4(%rbp)
jmp 0x95a2d
movss 0x1d3db(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0xe4(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x30(%rax)
jne 0x95a47
movq -0x18(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x95a58
movl $0xbe2, %edi            # imm = 0xBE2
leaq 0x557cbd(%rip), %rax    # 0x5ed710
callq *0x40(%rax)
jmp 0x95a67
movl $0xbe2, %edi            # imm = 0xBE2
leaq 0x557cac(%rip), %rax    # 0x5ed710
callq *0x48(%rax)
movl $0x0, -0x64(%rbp)
movl $0x0, -0x6c(%rbp)
movl -0x64(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x60(%rcx), %eax
jge 0x95c1c
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rax
movslq -0x64(%rbp), %rcx
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x158(%rbp)
movl $0x2, -0x68(%rbp)
cmpl $0x0, -0x68(%rbp)
jl 0x95c03
movq 0x5c1566(%rip), %rax    # 0x657020
movq -0x158(%rbp), %rcx
movslq -0x68(%rbp), %rsi
movl %esi, %edx
movswq (%rcx,%rsi,2), %rcx
leaq (%rcx,%rcx,2), %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x5c1554(%rip), %rax    # 0x657030
movl -0x6c(%rbp), %ecx
addl %edx, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,4), %rcx
movss %xmm0, (%rax,%rcx,4)
movq 0x5c152c(%rip), %rax    # 0x657020
movq -0x158(%rbp), %rcx
movslq -0x68(%rbp), %rsi
movl %esi, %edx
movswq (%rcx,%rsi,2), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x4(%rax,%rcx,4), %xmm0
movq 0x5c1519(%rip), %rax    # 0x657030
movl -0x6c(%rbp), %ecx
addl %edx, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,4), %rcx
movss %xmm0, 0x4(%rax,%rcx,4)
movq 0x5c14f0(%rip), %rax    # 0x657020
movq -0x158(%rbp), %rcx
movslq -0x68(%rbp), %rsi
movl %esi, %edx
movswq (%rcx,%rsi,2), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x8(%rax,%rcx,4), %xmm0
movq 0x5c14dd(%rip), %rax    # 0x657030
movl -0x6c(%rbp), %ecx
addl %edx, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,4), %rcx
movss %xmm0, 0x8(%rax,%rcx,4)
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rcx
movq -0x158(%rbp), %rsi
movslq -0x68(%rbp), %rdi
movl %edi, %edx
movswq 0x6(%rsi,%rdi,2), %rsi
movswl (%rcx,%rsi,4), %ecx
cvtsi2ss %ecx, %xmm0
cvtsi2ssl 0x68(%rax), %xmm1
divss %xmm1, %xmm0
movq 0x5c1498(%rip), %rax    # 0x657030
movl -0x6c(%rbp), %ecx
addl %edx, %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,4), %rcx
movss %xmm0, 0xc(%rax,%rcx,4)
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rax
movq -0x158(%rbp), %rcx
movslq -0x68(%rbp), %rdx
movswq 0x6(%rcx,%rdx,2), %rcx
movswl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
movq -0x10(%rbp), %rax
cvtsi2ssl 0x6c(%rax), %xmm1
divss %xmm1, %xmm0
movq 0x5c1450(%rip), %rax    # 0x657030
movl -0x6c(%rbp), %ecx
addl -0x68(%rbp), %ecx
movslq %ecx, %rcx
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movss %xmm0, 0x10(%rax)
movl -0x68(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x68(%rbp)
jmp 0x95aa9
jmp 0x95c05
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
movl -0x6c(%rbp), %eax
addl $0x3, %eax
movl %eax, -0x6c(%rbp)
jmp 0x95a75
movq -0xf8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x150(%rbp)
movl $0x0, -0x14c(%rbp)
movl $0x3ea3d70a, -0x148(%rbp) # imm = 0x3EA3D70A
movss -0xf0(%rbp), %xmm0
movss %xmm0, -0x144(%rbp)
movss -0xec(%rbp), %xmm0
movss %xmm0, -0x140(%rbp)
movss -0xe8(%rbp), %xmm0
movss %xmm0, -0x13c(%rbp)
movss -0xe4(%rbp), %xmm0
movss %xmm0, -0x138(%rbp)
leaq 0x557cc2(%rip), %rcx    # 0x5ed948
movslq (%rcx), %rdx
leaq 0x3db170(%rip), %rax    # 0x470e00
movzbl (%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm0
movss 0x20940(%rip), %xmm1    # 0xb65e0
divss %xmm1, %xmm0
movss %xmm0, -0x134(%rbp)
movslq (%rcx), %rdx
movzbl 0x1(%rax,%rdx,4), %edx
cvtsi2ss %edx, %xmm0
divss %xmm1, %xmm0
movss %xmm0, -0x130(%rbp)
movslq (%rcx), %rcx
movzbl 0x2(%rax,%rcx,4), %eax
cvtsi2ss %eax, %xmm0
movss 0x20908(%rip), %xmm1    # 0xb65e0
divss %xmm1, %xmm0
movss %xmm0, -0x12c(%rbp)
movss 0x1d114(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0x128(%rbp)
leaq 0x557c51(%rip), %rax    # 0x5ed94c
movss (%rax), %xmm0
movss %xmm0, -0x124(%rbp)
movl -0x1c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x95d22
leaq 0x557d57(%rip), %rax    # 0x5eda70
movq %rax, -0x118(%rbp)
jmp 0x95d30
leaq 0x557d07(%rip), %rax    # 0x5eda30
movq %rax, -0x118(%rbp)
leaq -0xe0(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x10(%rbp), %rax
imull $0x3, 0x60(%rax), %eax
movl %eax, -0x10c(%rbp)
movl $0x0, -0x110(%rbp)
movl $0x0, -0x108(%rbp)
movq -0x10(%rbp), %rax
imull $0x3, 0x60(%rax), %eax
movl %eax, -0x104(%rbp)
movq 0x5c12bb(%rip), %rax    # 0x657030
movq %rax, -0x100(%rbp)
movl $0x4, %edi
leaq -0x150(%rbp), %rsi
callq 0x73570
movl $0xb44, %edi            # imm = 0xB44
leaq 0x557977(%rip), %rax    # 0x5ed710
callq *0x48(%rax)
movl $0x901, %edi            # imm = 0x901
leaq 0x557968(%rip), %rax    # 0x5ed710
callq *0x28(%rax)
movq -0x18(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x95de7
movl $0x203, %edi            # imm = 0x203
leaq 0x557947(%rip), %rax    # 0x5ed710
callq *0x98(%rax)
xorps %xmm0, %xmm0
movsd 0x206c6(%rip), %xmm1    # 0xb64a0
leaq 0x55792f(%rip), %rax    # 0x5ed710
callq *0xa8(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopw (%rax,%rax)