// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/polymost.c
// Function: polymost_drawsprite
void polymost_drawsprite (int snum)
{
	double px[6], py[6];
	float f, c, s, fx, fy, sx0, sy0, sx1, xp0, yp0, xp1, yp1, oxp0, oyp0, ryp0, ryp1, ft[4];
	float x0, y0, x1, y1, sc0, sf0, sc1, sf1, px2[6], py2[6], xv, yv, t0, t1;
	int i, j, spritenum, xoff=0, yoff=0, method, npoints;
	spritetype *tspr;

#ifdef DEBUGGINGAIDS
	polymostcallcounts.drawsprite++;
#endif

	tspr = tspriteptr[snum];
	if (tspr->owner < 0 || tspr->picnum < 0) return;

	globalpicnum      = tspr->picnum;
	globalshade       = tspr->shade;
	globalpal         = tspr->pal;
	globalorientation = tspr->cstat;
	spritenum         = tspr->owner;

	if ((globalorientation&48) != 48) {	// only non-voxel sprites should do this
		if (picanm[globalpicnum]&192) globalpicnum += animateoffs(globalpicnum,spritenum+32768);

		xoff = (int)((signed char)((picanm[globalpicnum]>>8)&255))+((int)tspr->xoffset);
		yoff = (int)((signed char)((picanm[globalpicnum]>>16)&255))+((int)tspr->yoffset);
	}

	method = METH_MASKED;
	if (tspr->cstat&2) { if (!(tspr->cstat&512)) method = METH_TRANS; else method = METH_INTRANS; }
	method |= METH_CLAMPED | METH_LAYERS;

#if USE_OPENGL
	gfogpalnum = sector[tspr->sectnum].floorpal;
	gfogdensity = gvisibility*((float)((unsigned char)(sector[tspr->sectnum].visibility+16)) / 255.f);

	while (rendmode == 3 && !(spriteext[tspr->owner].flags&SPREXT_NOTMD)) {
		if (usemodels && tile2model[tspr->picnum].modelid >= 0 && tile2model[tspr->picnum].framenum >= 0) {
			if (mddraw(tspr, 0)) {
				if (automapping == 1) show2dsprite[spritenum>>3] |= pow2char[spritenum&7];
				return;
			}
			break;	// else, render as flat sprite
		}
		if (usevoxels && (tspr->cstat&48)!=48 && tiletovox[tspr->picnum] >= 0 && voxmodels[ tiletovox[tspr->picnum] ]) {
			if (voxdraw(voxmodels[ tiletovox[tspr->picnum] ], tspr, 0)) {
				if (automapping == 1) show2dsprite[spritenum>>3] |= pow2char[spritenum&7];
				return;
			}
			break;	// else, render as flat sprite
		}
		if ((tspr->cstat&48)==48 && voxmodels[ tspr->picnum ]) {
			voxdraw(voxmodels[ tspr->picnum ], tspr, 0);
			if (automapping == 1) show2dsprite[spritenum>>3] |= pow2char[spritenum&7];
			return;
		}
		break;
	}
#endif

	switch((globalorientation>>4)&3)
	{
		case 0: //Face sprite

				//Project 3D to 2D
			sx0 = (float)(tspr->x-globalposx);
			sy0 = (float)(tspr->y-globalposy);
			xp0 = sy0*gcosang  - sx0*gsinang;
			yp0 = sx0*gcosang2 + sy0*gsinang2;
			if (yp0 <= SCISDIST) return;
			ryp0 = 1/yp0;
			sx0 = ghalfx*xp0*ryp0 + ghalfx;
			sy0 = ((float)(tspr->z-globalposz))*gyxscale*ryp0 + ghoriz;

			f = ryp0*(float)xdimen/160.0;
			fx = ((float)tspr->xrepeat)*f;
			fy = ((float)tspr->yrepeat)*f*((float)yxaspect/65536.0);
			sx0 -= fx*(float)xoff; if (tilesizx[globalpicnum]&1) sx0 += fx*.5;
			sy0 -= fy*(float)yoff;
			fx *= ((float)tilesizx[globalpicnum]);
			fy *= ((float)tilesizy[globalpicnum]);

			px[0] = px[3] = sx0-fx*.5; px[1] = px[2] = sx0+fx*.5;
			if (!(globalorientation&128)) { py[0] = py[1] = sy0-fy; py[2] = py[3] = sy0; }
											 else { py[0] = py[1] = sy0-fy*.5; py[2] = py[3] = sy0+fy*.5; }

			gdx = gdy = guy = gvx = 0; gdo = ryp0*gviewxrange;
			if (!(globalorientation&4))
				  { gux = (float)tilesizx[globalpicnum]*gdo/(px[1]-px[0]+.002); guo = -gux*(px[0]-.001); }
			else { gux = (float)tilesizx[globalpicnum]*gdo/(px[0]-px[1]-.002); guo = -gux*(px[1]+.001); }
			if (!(globalorientation&8))
				  { gvy = (float)tilesizy[globalpicnum]*gdo/(py[3]-py[0]+.002); gvo = -gvy*(py[0]-.001); }
			else { gvy = (float)tilesizy[globalpicnum]*gdo/(py[0]-py[3]-.002); gvo = -gvy*(py[3]+.001); }

			//Clip sprites to ceilings/floors when no parallaxing and not sloped
			if (!(sector[tspr->sectnum].ceilingstat&3))
			{
				sy0 = ((float)(sector[tspr->sectnum].ceilingz-globalposz))*gyxscale*ryp0 + ghoriz;
				if (py[0] < sy0) py[0] = py[1] = sy0;
			}
			if (!(sector[tspr->sectnum].floorstat&3))
			{
				sy0 = ((float)(sector[tspr->sectnum].floorz-globalposz))*gyxscale*ryp0 + ghoriz;
				if (py[2] > sy0) py[2] = py[3] = sy0;
			}

			drawpoly(px,py,4,method);
			break;
		case 1: //Wall sprite

				//Project 3D to 2D
			if (globalorientation&4) xoff = -xoff;
			if (globalorientation&8) yoff = -yoff;

			xv = (float)tspr->xrepeat * (float)sintable[(tspr->ang     )&2047] / 65536.0;
			yv = (float)tspr->xrepeat * (float)sintable[(tspr->ang+1536)&2047] / 65536.0;
			f = (float)(tilesizx[globalpicnum]>>1) + (float)xoff;
			x0 = (float)(tspr->x-globalposx) - xv*f; x1 = xv*(float)tilesizx[globalpicnum] + x0;
			y0 = (float)(tspr->y-globalposy) - yv*f; y1 = yv*(float)tilesizx[globalpicnum] + y0;

			yp0 = x0*gcosang2 + y0*gsinang2;
			yp1 = x1*gcosang2 + y1*gsinang2;
			if ((yp0 <= SCISDIST) && (yp1 <= SCISDIST)) return;
			xp0 = y0*gcosang - x0*gsinang;
			xp1 = y1*gcosang - x1*gsinang;

				//Clip to close parallel-screen plane
			oxp0 = xp0; oyp0 = yp0;
			if (yp0 < SCISDIST) { t0 = (SCISDIST-yp0)/(yp1-yp0); xp0 = (xp1-xp0)*t0+xp0; yp0 = SCISDIST; }
								else { t0 = 0.f; }
			if (yp1 < SCISDIST) { t1 = (SCISDIST-oyp0)/(yp1-oyp0); xp1 = (xp1-oxp0)*t1+oxp0; yp1 = SCISDIST; }
								else { t1 = 1.f; }

			f = ((float)tspr->yrepeat) * (float)tilesizy[globalpicnum] * 4;

			ryp0 = 1.0/yp0;
			ryp1 = 1.0/yp1;
			sx0 = ghalfx*xp0*ryp0 + ghalfx;
			sx1 = ghalfx*xp1*ryp1 + ghalfx;
			ryp0 *= gyxscale;
			ryp1 *= gyxscale;

			tspr->z -= ((yoff*tspr->yrepeat)<<2);
			if (globalorientation&128)
			{
				tspr->z += ((tilesizy[globalpicnum]*tspr->yrepeat)<<1);
				if (tilesizy[globalpicnum]&1) tspr->z += (tspr->yrepeat<<1); //Odd yspans
			}

			sc0 = ((float)(tspr->z-globalposz-f))*ryp0 + ghoriz;
			sc1 = ((float)(tspr->z-globalposz-f))*ryp1 + ghoriz;
			sf0 = ((float)(tspr->z-globalposz))*ryp0 + ghoriz;
			sf1 = ((float)(tspr->z-globalposz))*ryp1 + ghoriz;

			gdx = (ryp0-ryp1)*gxyaspect / (sx0-sx1);
			gdy = 0;
			gdo = ryp0*gxyaspect - gdx*sx0;

				//Original equations:
				//(gux*sx0 + guo)/(gdx*sx1 + gdo) = tilesizx[globalpicnum]*t0
				//(gux*sx1 + guo)/(gdx*sx1 + gdo) = tilesizx[globalpicnum]*t1
				//
				// gvx*sx0 + gvy*sc0 + gvo = 0
				// gvy*sx1 + gvy*sc1 + gvo = 0
				//(gvx*sx0 + gvy*sf0 + gvo)/(gdx*sx0 + gdo) = tilesizy[globalpicnum]
				//(gvx*sx1 + gvy*sf1 + gvo)/(gdx*sx1 + gdo) = tilesizy[globalpicnum]

				//gux*sx0 + guo = t0*tilesizx[globalpicnum]*yp0
				//gux*sx1 + guo = t1*tilesizx[globalpicnum]*yp1
			if (globalorientation&4) { t0 = 1.f-t0; t1 = 1.f-t1; }
			gux = (t0*ryp0 - t1*ryp1)*gxyaspect*(float)tilesizx[globalpicnum] / (sx0-sx1);
			guy = 0;
			guo = t0*ryp0*gxyaspect*(float)tilesizx[globalpicnum] - gux*sx0;

				//gvx*sx0 + gvy*sc0 + gvo = 0
				//gvx*sx1 + gvy*sc1 + gvo = 0
				//gvx*sx0 + gvy*sf0 + gvo = tilesizy[globalpicnum]*(gdx*sx0 + gdo)
			f = ((float)tilesizy[globalpicnum])*(gdx*sx0 + gdo) / ((sx0-sx1)*(sc0-sf0));
			if (!(globalorientation&8))
			{
				gvx = (sc0-sc1)*f;
				gvy = (sx1-sx0)*f;
				gvo = -gvx*sx0 - gvy*sc0;
			}
			else
			{
				gvx = (sf1-sf0)*f;
				gvy = (sx0-sx1)*f;
				gvo = -gvx*sx0 - gvy*sf0;
			}

			//Clip sprites to ceilings/floors when no parallaxing
			if (!(sector[tspr->sectnum].ceilingstat&1))
			{
				f = ((float)tspr->yrepeat) * (float)tilesizy[globalpicnum] * 4;
				if (sector[tspr->sectnum].ceilingz > tspr->z-f)
				{
					sc0 = ((float)(sector[tspr->sectnum].ceilingz-globalposz))*ryp0 + ghoriz;
					sc1 = ((float)(sector[tspr->sectnum].ceilingz-globalposz))*ryp1 + ghoriz;
				}
			}
			if (!(sector[tspr->sectnum].floorstat&1))
			{
				if (sector[tspr->sectnum].floorz < tspr->z)
				{
					sf0 = ((float)(sector[tspr->sectnum].floorz-globalposz))*ryp0 + ghoriz;
					sf1 = ((float)(sector[tspr->sectnum].floorz-globalposz))*ryp1 + ghoriz;
				}
			}

			if (sx0 > sx1)
			{
				if (globalorientation&64) return; //1-sided sprite
				f = sx0; sx0 = sx1; sx1 = f;
				f = sc0; sc0 = sc1; sc1 = f;
				f = sf0; sf0 = sf1; sf1 = f;
			}

			px[0] = sx0; py[0] = sc0;
			px[1] = sx1; py[1] = sc1;
			px[2] = sx1; py[2] = sf1;
			px[3] = sx0; py[3] = sf0;
			drawpoly(px,py,4,method);
			break;
		case 2: //Floor sprite

			if ((globalorientation&64) != 0)
				if ((globalposz > tspr->z) == (!(globalorientation&8)))
					return;
			if ((globalorientation&4) > 0) xoff = -xoff;
			if ((globalorientation&8) > 0) yoff = -yoff;

			i = (tspr->ang&2047);
			c = sintable[(i+512)&2047]/65536.0;
			s = sintable[i]/65536.0;
			x0 = ((tilesizx[globalpicnum]>>1)-xoff)*tspr->xrepeat;
			y0 = ((tilesizy[globalpicnum]>>1)-yoff)*tspr->yrepeat;
			x1 = ((tilesizx[globalpicnum]>>1)+xoff)*tspr->xrepeat;
			y1 = ((tilesizy[globalpicnum]>>1)+yoff)*tspr->yrepeat;

				//Project 3D to 2D
			for(j=0;j<4;j++)
			{
				sx0 = (float)(tspr->x-globalposx);
				sy0 = (float)(tspr->y-globalposy);
				if ((j+0)&2) { sy0 -= s*y0; sx0 -= c*y0; } else { sy0 += s*y1; sx0 += c*y1; }
				if ((j+1)&2) { sx0 -= s*x0; sy0 += c*x0; } else { sx0 += s*x1; sy0 -= c*x1; }
				px[j] = sy0*gcosang  - sx0*gsinang;
				py[j] = sx0*gcosang2 + sy0*gsinang2;
			}

			if (tspr->z < globalposz) //if floor sprite is above you, reverse order of points
			{
				f = px[0]; px[0] = px[1]; px[1] = f;
				f = py[0]; py[0] = py[1]; py[1] = f;
				f = px[2]; px[2] = px[3]; px[3] = f;
				f = py[2]; py[2] = py[3]; py[3] = f;
			}

				//Clip to SCISDIST plane
			npoints = 0;
			for(i=0;i<4;i++)
			{
				j = ((i+1)&3);
				if (py[i] >= SCISDIST) { px2[npoints] = px[i]; py2[npoints] = py[i]; npoints++; }
				if ((py[i] >= SCISDIST) != (py[j] >= SCISDIST))
				{
					f = (SCISDIST-py[i])/(py[j]-py[i]);
					px2[npoints] = (px[j]-px[i])*f + px[i];
					py2[npoints] = (py[j]-py[i])*f + py[i]; npoints++;
				}
			}
			if (npoints < 3) return;

				//Project rotated 3D points to screen
			f = ((float)(tspr->z-globalposz))*gyxscale;
			for(j=0;j<npoints;j++)
			{
				ryp0 = 1/py2[j];
				px[j] = ghalfx*px2[j]*ryp0 + ghalfx;
				py[j] = f*ryp0 + ghoriz;
			}

				//gd? Copied from floor rendering code
			gdx = 0;
			gdy = gxyaspect / (double)(tspr->z-globalposz);
			gdo = -ghoriz*gdy;
				//copied&modified from relative alignment
			xv = (float)tspr->x + s*x1 + c*y1; fx = (double)-(x0+x1)*s;
			yv = (float)tspr->y + s*y1 - c*x1; fy = (double)+(x0+x1)*c;
			f = 1.0/sqrt(fx*fx+fy*fy); fx *= f; fy *= f;
			ft[2] = singlobalang*fy + cosglobalang*fx;
			ft[3] = singlobalang*fx - cosglobalang*fy;
			ft[0] = ((double)(globalposy-yv))*fy + ((double)(globalposx-xv))*fx;
			ft[1] = ((double)(globalposx-xv))*fy - ((double)(globalposy-yv))*fx;
			gux = (double)ft[3]*((double)viewingrange)/(-65536.0*262144.0);
			gvx = (double)ft[2]*((double)viewingrange)/(-65536.0*262144.0);
			guy = (double)ft[0]*gdy; gvy = (double)ft[1]*gdy;
			guo = (double)ft[0]*gdo; gvo = (double)ft[1]*gdo;
			guo += (double)(ft[2]/262144.0-gux)*ghalfx;
			gvo -= (double)(ft[3]/262144.0+gvx)*ghalfx;
			f = 4.0/(float)tspr->xrepeat; gux *= f; guy *= f; guo *= f;
			f =-4.0/(float)tspr->yrepeat; gvx *= f; gvy *= f; gvo *= f;
			if (globalorientation&4)
			{
				gux = ((float)tilesizx[globalpicnum])*gdx - gux;
				guy = ((float)tilesizx[globalpicnum])*gdy - guy;
				guo = ((float)tilesizx[globalpicnum])*gdo - guo;
			}

			drawpoly(px,py,npoints,method);
			break;

		case 3: //Voxel sprite
		    break;
	}
	if (automapping == 1) show2dsprite[spritenum>>3] |= pow2char[spritenum&7];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movl %edi, -0x4(%rbp)
movl $0x0, -0x140(%rbp)
movl $0x0, -0x144(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x3ae113(%rip), %rax    # 0x432530
movq (%rax,%rcx,8), %rax
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rax
movswl 0x1e(%rax), %eax
cmpl $0x0, %eax
jl 0x84448
movq -0x158(%rbp), %rax
movswl 0xe(%rax), %eax
cmpl $0x0, %eax
jge 0x8444d
jmp 0x86e12
movq -0x158(%rbp), %rax
movw 0xe(%rax), %cx
leaq 0x3c6911(%rip), %rax    # 0x44ad70
movw %cx, (%rax)
movq -0x158(%rbp), %rax
movsbl 0x10(%rax), %ecx
leaq 0x3cb118(%rip), %rax    # 0x44f58c
movl %ecx, (%rax)
movq -0x158(%rbp), %rax
movzbl 0x11(%rax), %ecx
leaq 0x3c68dc(%rip), %rax    # 0x44ad64
movl %ecx, (%rax)
movq -0x158(%rbp), %rax
movswl 0xc(%rax), %ecx
leaq 0x3c68c4(%rip), %rax    # 0x44ad60
movl %ecx, (%rax)
movq -0x158(%rbp), %rax
movswl 0x1e(%rax), %eax
movl %eax, -0x13c(%rbp)
leaq 0x3c68aa(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x30, %eax
cmpl $0x30, %eax
je 0x84584
leaq 0x3c68a5(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x1f30ea(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x8451e
leaq 0x3c6886(%rip), %rax    # 0x44ad70
movw (%rax), %cx
movl -0x13c(%rbp), %eax
addl $0x8000, %eax           # imm = 0x8000
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
leaq 0x3c6864(%rip), %rax    # 0x44ad70
movswl (%rax), %eax
addl %ecx, %eax
movw %ax, %cx
leaq 0x3c6855(%rip), %rax    # 0x44ad70
movw %cx, (%rax)
leaq 0x3c684b(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x1f3090(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
sarl $0x8, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0x158(%rbp), %rcx
movsbl 0x16(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x140(%rbp)
leaq 0x3c6818(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x1f305d(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
sarl $0x10, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0x158(%rbp), %rcx
movsbl 0x17(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x144(%rbp)
movl $0x1, -0x148(%rbp)
movq -0x158(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x845ce
movq -0x158(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
jne 0x845c2
movl $0x2, -0x148(%rbp)
jmp 0x845cc
movl $0x3, -0x148(%rbp)
jmp 0x845ce
movb -0x148(%rbp), %al
orb $0xc, %al
movb %al, -0x148(%rbp)
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rax
leaq (%rax,%rax,4), %rcx
leaq 0x1fbfcd(%rip), %rax    # 0x2805c0
movzbl 0x1d(%rax,%rcx,8), %ecx
movl %ecx, 0x56934a(%rip)    # 0x5ed948
movsd 0x56d59a(%rip), %xmm0   # 0x5f1ba0
movq -0x158(%rbp), %rcx
movswq 0x18(%rcx), %rcx
leaq (%rcx,%rcx,4), %rcx
movb 0x20(%rax,%rcx,8), %al
addb $0x10, %al
movzbl %al, %eax
cvtsi2ss %eax, %xmm1
movss 0x31fad(%rip), %xmm2    # 0xb65d8
divss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x569309(%rip)   # 0x5ed94c
xorl %eax, %eax
cmpl $0x3, 0x5692d4(%rip)    # 0x5ed920
movb %al, -0x159(%rbp)
jne 0x84683
movq -0x158(%rbp), %rax
movswq 0x1e(%rax), %rcx
leaq 0x2e51a9(%rip), %rax    # 0x369810
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
movzbl 0x8(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x159(%rbp)
movb -0x159(%rbp), %al
testb $0x1, %al
jne 0x84692
jmp 0x848e9
cmpl $0x0, 0x5d4b7(%rip)     # 0xe1b50
je 0x8474a
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x5b796e(%rip), %rax    # 0x63c020
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, (%rax)
jl 0x8474a
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x5b794b(%rip), %rax    # 0x63c020
imulq $0xc, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x8(%rax)
jl 0x8474a
movq -0x158(%rbp), %rdi
xorl %esi, %esi
callq 0x94540
cmpl $0x0, %eax
je 0x84745
leaq 0x364944(%rip), %rax    # 0x3e9040
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x84740
movl -0x13c(%rbp), %eax
andl $0x7, %eax
movslq %eax, %rcx
leaq 0x5c579(%rip), %rax     # 0xe0c90
movzbl (%rax,%rcx), %edx
movl -0x13c(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x363912(%rip), %rax    # 0x3e8040
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x363903(%rip), %rax    # 0x3e8040
movb %dl, (%rax,%rcx)
jmp 0x86e12
jmp 0x848e9
leaq 0x5c51f(%rip), %rax     # 0xe0c70
cmpl $0x0, (%rax)
je 0x84841
movq -0x158(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x30, %eax
cmpl $0x30, %eax
je 0x84841
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x343eac(%rip), %rax    # 0x3c8630
cmpl $0x0, (%rax,%rcx,4)
jl 0x84841
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x343e8f(%rip), %rax    # 0x3c8630
movslq (%rax,%rcx,4), %rcx
leaq 0x5d2894(%rip), %rax    # 0x657040
cmpq $0x0, (%rax,%rcx,8)
je 0x84841
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x343e66(%rip), %rax    # 0x3c8630
movslq (%rax,%rcx,4), %rcx
leaq 0x5d286b(%rip), %rax    # 0x657040
movq (%rax,%rcx,8), %rdi
movq -0x158(%rbp), %rsi
xorl %edx, %edx
callq 0x924b0
cmpl $0x0, %eax
je 0x8483c
leaq 0x36484d(%rip), %rax    # 0x3e9040
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x84837
movl -0x13c(%rbp), %eax
andl $0x7, %eax
movslq %eax, %rcx
leaq 0x5c482(%rip), %rax     # 0xe0c90
movzbl (%rax,%rcx), %edx
movl -0x13c(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x36381b(%rip), %rax    # 0x3e8040
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x36380c(%rip), %rax    # 0x3e8040
movb %dl, (%rax,%rcx)
jmp 0x86e12
jmp 0x848e9
movq -0x158(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x30, %eax
cmpl $0x30, %eax
jne 0x848e7
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x5d27d5(%rip), %rax    # 0x657040
cmpq $0x0, (%rax,%rcx,8)
je 0x848e7
movq -0x158(%rbp), %rax
movswq 0xe(%rax), %rcx
leaq 0x5d27bb(%rip), %rax    # 0x657040
movq (%rax,%rcx,8), %rdi
movq -0x158(%rbp), %rsi
xorl %edx, %edx
callq 0x924b0
leaq 0x3647a2(%rip), %rax    # 0x3e9040
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x848e2
movl -0x13c(%rbp), %eax
andl $0x7, %eax
movslq %eax, %rcx
leaq 0x5c3d7(%rip), %rax     # 0xe0c90
movzbl (%rax,%rcx), %edx
movl -0x13c(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x363770(%rip), %rax    # 0x3e8040
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x363761(%rip), %rax    # 0x3e8040
movb %dl, (%rax,%rcx)
jmp 0x86e12
jmp 0x848e9
leaq 0x3c6470(%rip), %rax    # 0x44ad60
movl (%rax), %eax
shrl $0x4, %eax
andl $0x3, %eax
movl %eax, %ecx
movq %rcx, -0x168(%rbp)
subl $0x3, %eax
ja 0x86dc7
movq -0x168(%rbp), %rax
leaq 0x31d28(%rip), %rcx     # 0xb6640
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x158(%rbp), %rax
movl (%rax), %eax
leaq 0x1f2c7f(%rip), %rcx    # 0x2775b0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x88(%rbp)
movq -0x158(%rbp), %rax
movl 0x4(%rax), %eax
leaq 0x1f2c64(%rip), %rcx    # 0x2775b4
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56900e(%rip), %xmm2   # 0x5ed980
movss -0x88(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x56900a(%rip), %xmm1   # 0x5ed990
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
cvtss2sd %xmm0, %xmm0
movsd 0x568fb3(%rip), %xmm2   # 0x5ed978
movss -0x8c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x568faf(%rip), %xmm1   # 0x5ed988
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x98(%rbp)
movss -0x98(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2cfcf(%rip), %xmm0    # 0xb19d0
ucomisd %xmm1, %xmm0
jb 0x84a0c
jmp 0x86e12
movss -0x98(%rbp), %xmm1
movss 0x2e3e4(%rip), %xmm0    # 0xb2e00
divss %xmm1, %xmm0
movss %xmm0, -0xac(%rbp)
movsd 0x5690d0(%rip), %xmm1   # 0x5edb00
movss -0x94(%rbp), %xmm0
cvtss2sd %xmm0, %xmm2
movaps %xmm1, %xmm0
mulsd %xmm2, %xmm0
movss -0xac(%rbp), %xmm2
cvtss2sd %xmm2, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x88(%rbp)
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x223b4c(%rip), %rcx    # 0x2a85c0
movl (%rcx), %ecx
subl %ecx, %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56d100(%rip), %xmm1   # 0x5f1b88
mulsd %xmm1, %xmm0
movss -0xac(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x569068(%rip), %xmm1   # 0x5edb08
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0xac(%rbp), %xmm0
leaq 0x5c25d(%rip), %rax     # 0xe0d20
cvtsi2ssl (%rax), %xmm1
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2e211(%rip), %xmm1    # 0xb2ce8
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movq -0x158(%rbp), %rax
movzbl 0x14(%rax), %eax
cvtsi2ss %eax, %xmm0
movss -0x74(%rbp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, -0x80(%rbp)
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %eax
cvtsi2ss %eax, %xmm0
mulss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x3be228(%rip), %rax    # 0x442d48
cvtsi2ssl (%rax), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0x2c360(%rip), %xmm2    # 0xb0e90
divsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x80(%rbp), %xmm0
cvtsi2ssl -0x140(%rbp), %xmm2
movss -0x88(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x88(%rbp)
leaq 0x3c61f3(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3c61f8(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x84bc5
movss -0x80(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x88(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movsd 0x3189f(%rip), %xmm2    # 0xb6450
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x88(%rbp)
movss -0x84(%rbp), %xmm1
cvtsi2ssl -0x144(%rbp), %xmm2
movss -0x8c(%rbp), %xmm0
mulss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x8c(%rbp)
leaq 0x3c617c(%rip), %rax    # 0x44ad70
movswq (%rax), %rdx
leaq 0x3c6181(%rip), %rcx    # 0x44ad80
movswl (%rcx,%rdx,2), %ecx
cvtsi2ss %ecx, %xmm1
movss -0x80(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x80(%rbp)
movswq (%rax), %rcx
leaq 0x3b7920(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
mulss -0x84(%rbp), %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x88(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movss -0x80(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x317e4(%rip), %xmm2    # 0xb6450
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x28(%rbp)
movsd %xmm0, -0x40(%rbp)
movss -0x88(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movss -0x80(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x317b5(%rip), %xmm2    # 0xb6450
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd %xmm0, -0x38(%rbp)
leaq 0x3c60ac(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
jne 0x84cf6
movss -0x8c(%rbp), %xmm0
subss -0x84(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd %xmm0, -0x70(%rbp)
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd %xmm0, -0x60(%rbp)
jmp 0x84d71
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movss -0x84(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x31723(%rip), %xmm2    # 0xb6450
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd %xmm0, -0x70(%rbp)
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movss -0x84(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x316f1(%rip), %xmm2    # 0xb6450
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd %xmm0, -0x60(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x568dd4(%rip)   # 0x5edb50
xorps %xmm0, %xmm0
movsd %xmm0, 0x568db9(%rip)   # 0x5edb40
xorps %xmm0, %xmm0
movsd %xmm0, 0x568d96(%rip)   # 0x5edb28
xorps %xmm0, %xmm0
movsd %xmm0, 0x568d83(%rip)   # 0x5edb20
movss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x56cde7(%rip), %xmm0   # 0x5f1b98
movsd %xmm0, 0x568d77(%rip)   # 0x5edb30
leaq 0x3c5fa0(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x84e57
leaq 0x3c5f9b(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3c5fa0(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x568d3c(%rip), %xmm0   # 0x5edb30
movsd -0x38(%rbp), %xmm1
subsd -0x40(%rbp), %xmm1
movsd 0x31782(%rip), %xmm2    # 0xb6588
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x568d22(%rip)   # 0x5edb38
movsd 0x568d1a(%rip), %xmm0   # 0x5edb38
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd -0x40(%rbp), %xmm1
movsd 0x3162e(%rip), %xmm2    # 0xb6470
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x568cf6(%rip)   # 0x5edb48
jmp 0x84ed7
leaq 0x3c5f12(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3c5f17(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x568cb3(%rip), %xmm0   # 0x5edb30
movsd -0x40(%rbp), %xmm1
subsd -0x38(%rbp), %xmm1
movsd 0x316f9(%rip), %xmm2    # 0xb6588
subsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x568c99(%rip)   # 0x5edb38
movsd 0x568c91(%rip), %xmm0   # 0x5edb38
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x315aa(%rip), %xmm1    # 0xb6470
addsd -0x38(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x568c71(%rip)   # 0x5edb48
leaq 0x3c5e82(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x84f75
leaq 0x3c5e7d(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b7642(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x568c1e(%rip), %xmm0   # 0x5edb30
movsd -0x58(%rbp), %xmm1
subsd -0x70(%rbp), %xmm1
movsd 0x31664(%rip), %xmm2    # 0xb6588
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x568c24(%rip)   # 0x5edb58
movsd 0x568c1c(%rip), %xmm0   # 0x5edb58
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd -0x70(%rbp), %xmm1
movsd 0x31510(%rip), %xmm2    # 0xb6470
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x568bf0(%rip)   # 0x5edb60
jmp 0x84ff5
leaq 0x3c5df4(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b75b9(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x568b95(%rip), %xmm0   # 0x5edb30
movsd -0x70(%rbp), %xmm1
subsd -0x58(%rbp), %xmm1
movsd 0x315db(%rip), %xmm2    # 0xb6588
subsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x568b9b(%rip)   # 0x5edb58
movsd 0x568b93(%rip), %xmm0   # 0x5edb58
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x3148c(%rip), %xmm1    # 0xb6470
addsd -0x58(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x568b6b(%rip)   # 0x5edb60
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fb5b8(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x850ac
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fb58e(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
leaq 0x22357d(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x56cb33(%rip), %xmm0   # 0x5f1b88
movss -0xac(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x568a9f(%rip), %xmm1   # 0x5edb08
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8c(%rbp)
movsd -0x70(%rbp), %xmm1
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0x850aa
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd %xmm0, -0x70(%rbp)
jmp 0x850ac
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fb501(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xe(%rax), %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x85163
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fb4d7(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
leaq 0x2234c6(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x56ca7c(%rip), %xmm0   # 0x5f1b88
movss -0xac(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x5689e8(%rip), %xmm1   # 0x5edb08
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x8c(%rbp)
movsd -0x60(%rbp), %xmm0
movss -0x8c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x85161
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd %xmm0, -0x60(%rbp)
jmp 0x85163
leaq -0x40(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl -0x148(%rbp), %ecx
movl $0x4, %edx
callq 0x73b90
jmp 0x86dc7
leaq 0x3c5bd9(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x8519f
xorl %eax, %eax
subl -0x140(%rbp), %eax
movl %eax, -0x140(%rbp)
leaq 0x3c5bba(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x851be
xorl %eax, %eax
subl -0x144(%rbp), %eax
movl %eax, -0x144(%rbp)
movq -0x158(%rbp), %rax
movzbl 0x14(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movzwl 0x1c(%rax), %eax
andl $0x7ff, %eax            # imm = 0x7FF
movl %eax, %ecx
leaq 0x3866d1(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %ecx
cvtsi2ss %ecx, %xmm1
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x31389(%rip), %xmm1    # 0xb6580
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x124(%rbp)
movq -0x158(%rbp), %rcx
movzbl 0x14(%rcx), %edx
cvtsi2ss %edx, %xmm0
movl 0x1c(%rcx), %ecx
addl $0x600, %ecx            # imm = 0x600
andl $0x7ff, %ecx            # imm = 0x7FF
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm2
mulss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x128(%rbp)
leaq 0x3c5b24(%rip), %rcx    # 0x44ad70
movswq (%rcx), %rdx
leaq 0x3c5b29(%rip), %rax    # 0x44ad80
movswl (%rax,%rdx,2), %edx
sarl %edx
cvtsi2ss %edx, %xmm0
cvtsi2ssl -0x140(%rbp), %xmm1
addss %xmm1, %xmm0
movss %xmm0, -0x74(%rbp)
movq -0x158(%rbp), %rdx
movl (%rdx), %edx
leaq 0x1f232e(%rip), %rsi    # 0x2775b0
movl (%rsi), %esi
subl %esi, %edx
cvtsi2ss %edx, %xmm0
movss -0x124(%rbp), %xmm1
movss -0x74(%rbp), %xmm2
mulss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0xc4(%rbp)
movss -0x124(%rbp), %xmm0
movswq (%rcx), %rdx
movswl (%rax,%rdx,2), %edx
cvtsi2ss %edx, %xmm2
movss -0xc4(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xcc(%rbp)
movq -0x158(%rbp), %rdx
movl 0x4(%rdx), %edx
leaq 0x1f22d0(%rip), %rsi    # 0x2775b4
movl (%rsi), %esi
subl %esi, %edx
cvtsi2ss %edx, %xmm0
movss -0x128(%rbp), %xmm1
movss -0x74(%rbp), %xmm2
mulss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0xc8(%rbp)
movss -0x128(%rbp), %xmm0
movswq (%rcx), %rcx
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm2
movss -0xc8(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xd0(%rbp)
movss -0xc4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56862f(%rip), %xmm2   # 0x5ed978
movss -0xc8(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x56862b(%rip), %xmm1   # 0x5ed988
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x98(%rbp)
movss -0xcc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x5685f3(%rip), %xmm2   # 0x5ed978
movss -0xd0(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x5685ef(%rip), %xmm1   # 0x5ed988
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xa0(%rbp)
movss -0x98(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c60f(%rip), %xmm0    # 0xb19d0
ucomisd %xmm1, %xmm0
jb 0x853e6
movss -0xa0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c5f5(%rip), %xmm0    # 0xb19d0
ucomisd %xmm1, %xmm0
jb 0x853e6
jmp 0x86e12
movss -0xc8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x568586(%rip), %xmm2   # 0x5ed980
movss -0xc4(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x568582(%rip), %xmm1   # 0x5ed990
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 -0xd0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x568533(%rip), %xmm2   # 0x5ed980
movss -0xcc(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x56852f(%rip), %xmm1   # 0x5ed990
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, -0x9c(%rbp)
movss -0x94(%rbp), %xmm0
movss %xmm0, -0xa4(%rbp)
movss -0x98(%rbp), %xmm0
movss %xmm0, -0xa8(%rbp)
movss -0x98(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c510(%rip), %xmm0    # 0xb19d0
ucomisd %xmm1, %xmm0
jbe 0x85544
movss -0x98(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c4f6(%rip), %xmm0    # 0xb19d0
subsd %xmm1, %xmm0
movss -0xa0(%rbp), %xmm1
subss -0x98(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x12c(%rbp)
movss -0x9c(%rbp), %xmm0
subss -0x94(%rbp), %xmm0
movss -0x12c(%rbp), %xmm2
movss -0x94(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x94(%rbp)
movss 0x2d8c6(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0x98(%rbp)
jmp 0x8554f
xorps %xmm0, %xmm0
movss %xmm0, -0x12c(%rbp)
movss -0xa0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c46d(%rip), %xmm0    # 0xb19d0
ucomisd %xmm1, %xmm0
jbe 0x855e7
movss -0xa8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c453(%rip), %xmm0    # 0xb19d0
subsd %xmm1, %xmm0
movss -0xa0(%rbp), %xmm1
subss -0xa8(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x130(%rbp)
movss -0x9c(%rbp), %xmm0
subss -0xa4(%rbp), %xmm0
movss -0x130(%rbp), %xmm2
movss -0xa4(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x9c(%rbp)
movss 0x2d823(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0xa0(%rbp)
jmp 0x855f7
movss 0x2d811(%rip), %xmm0    # 0xb2e00
movss %xmm0, -0x130(%rbp)
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %eax
cvtsi2ss %eax, %xmm0
leaq 0x3c5763(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b6f28(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm1
mulss %xmm1, %xmm0
movss 0x30fcc(%rip), %xmm1    # 0xb65f8
mulss %xmm1, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x98(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c387(%rip), %xmm0    # 0xb19d0
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xac(%rbp)
movss -0xa0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2c363(%rip), %xmm0    # 0xb19d0
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xb0(%rbp)
movsd 0x56847b(%rip), %xmm0   # 0x5edb00
movss -0x94(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
movss -0xac(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x568457(%rip), %xmm1   # 0x5edb00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x88(%rbp)
movsd 0x56843b(%rip), %xmm0   # 0x5edb00
movss -0x9c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
movss -0xb0(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x568417(%rip), %xmm1   # 0x5edb00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x90(%rbp)
movsd 0x56c483(%rip), %xmm1   # 0x5f1b88
movss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xac(%rbp)
movsd 0x56c45f(%rip), %xmm1   # 0x5f1b88
movss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xb0(%rbp)
movl -0x144(%rbp), %edx
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %eax
imull %eax, %edx
shll $0x2, %edx
movq -0x158(%rbp), %rax
movl 0x8(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x8(%rax)
leaq 0x3c55ee(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x857eb
leaq 0x3c55eb(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b6db0(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %ecx
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %eax
imull %eax, %ecx
shll %ecx
movq -0x158(%rbp), %rax
addl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
leaq 0x3c55b8(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b6d7d(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x857e9
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %ecx
shll %ecx
movq -0x158(%rbp), %rax
addl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
jmp 0x857eb
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x222dc4(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
subss -0x74(%rbp), %xmm0
mulss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x5682ed(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd4(%rbp)
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x222d88(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
subss -0x74(%rbp), %xmm0
mulss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x5682b1(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xdc(%rbp)
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x222d4c(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
mulss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x56827a(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd8(%rbp)
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x222d15(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
mulss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x568243(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xe0(%rbp)
movss -0xac(%rbp), %xmm0
subss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x56c2a3(%rip), %xmm0   # 0x5f1b90
movss -0x88(%rbp), %xmm1
subss -0x90(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x568213(%rip)   # 0x5edb20
xorps %xmm0, %xmm0
movsd %xmm0, 0x568210(%rip)   # 0x5edb28
movss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56c264(%rip), %xmm2   # 0x5f1b90
movsd 0x5681ec(%rip), %xmm1   # 0x5edb20
movss -0x88(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x5681c5(%rip)   # 0x5edb30
leaq 0x3c53ee(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x859ac
movss 0x2d47c(%rip), %xmm0    # 0xb2e00
subss -0x12c(%rbp), %xmm0
movss %xmm0, -0x12c(%rbp)
movss 0x2d464(%rip), %xmm0    # 0xb2e00
subss -0x130(%rbp), %xmm0
movss %xmm0, -0x130(%rbp)
movss -0x12c(%rbp), %xmm0
movss -0xac(%rbp), %xmm2
movss -0x130(%rbp), %xmm1
movss -0xb0(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
subss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56c1ac(%rip), %xmm1   # 0x5f1b90
mulsd %xmm1, %xmm0
leaq 0x3c5381(%rip), %rax    # 0x44ad70
movswq (%rax), %rdx
leaq 0x3c5386(%rip), %rcx    # 0x44ad80
movswl (%rcx,%rdx,2), %edx
cvtsi2ss %edx, %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
movss -0x88(%rbp), %xmm1
movss -0x90(%rbp), %xmm2
subss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x56810a(%rip)   # 0x5edb38
movq $0x0, 0x568107(%rip) # 0x5edb40
movss -0x12c(%rbp), %xmm0
movss -0xac(%rbp), %xmm1
mulss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56c137(%rip), %xmm1   # 0x5f1b90
mulsd %xmm1, %xmm0
movswq (%rax), %rdx
movswl (%rcx,%rdx,2), %ecx
cvtsi2ss %ecx, %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x5680c3(%rip), %xmm1   # 0x5edb38
movss -0x88(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x5680b3(%rip)   # 0x5edb48
movswq (%rax), %rcx
leaq 0x3b6aa0(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x56806c(%rip), %xmm1   # 0x5edb20
movss -0x88(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0x568068(%rip), %xmm2   # 0x5edb30
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movss -0x88(%rbp), %xmm1
subss -0x90(%rbp), %xmm1
movss -0xd4(%rbp), %xmm2
subss -0xd8(%rbp), %xmm2
mulss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
leaq 0x3c5250(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x85bcf
movss -0xd4(%rbp), %xmm0
subss -0xdc(%rbp), %xmm0
mulss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x568011(%rip)   # 0x5edb50
movss -0x90(%rbp), %xmm0
subss -0x88(%rbp), %xmm0
mulss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x567ff8(%rip)   # 0x5edb58
movsd 0x567fe8(%rip), %xmm0   # 0x5edb50
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movss -0x88(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x567fc5(%rip), %xmm1   # 0x5edb58
movss -0xd4(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x567f96(%rip)   # 0x5edb60
jmp 0x85c7b
movss -0xe0(%rbp), %xmm0
subss -0xd8(%rbp), %xmm0
mulss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x567f60(%rip)   # 0x5edb50
movss -0x88(%rbp), %xmm0
subss -0x90(%rbp), %xmm0
mulss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x567f47(%rip)   # 0x5edb58
movsd 0x567f37(%rip), %xmm0   # 0x5edb50
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movss -0x88(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x567f14(%rip), %xmm1   # 0x5edb58
movss -0xd8(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x567ee5(%rip)   # 0x5edb60
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa932(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x85db2
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %eax
cvtsi2ss %eax, %xmm0
leaq 0x3c50b5(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b687a(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm1
mulss %xmm1, %xmm0
movss 0x3091e(%rip), %xmm1    # 0xb65f8
mulss %xmm1, %xmm0
movss %xmm0, -0x74(%rbp)
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa8ca(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cvtsi2ssl 0x4(%rax), %xmm0
movq -0x158(%rbp), %rax
cvtsi2ssl 0x8(%rax), %xmm1
subss -0x74(%rbp), %xmm1
ucomiss %xmm1, %xmm0
jbe 0x85db0
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa891(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
leaq 0x222880(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
mulss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x567dae(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd4(%rbp)
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa847(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
leaq 0x222836(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
mulss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x567d64(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xdc(%rbp)
jmp 0x85db2
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa7fb(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xe(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x85e9f
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa7d1(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x158(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x85e9d
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa7a4(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
leaq 0x222793(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
mulss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x567cc1(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd8(%rbp)
movq -0x158(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x1fa75a(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
leaq 0x222749(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
mulss -0xb0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x567c77(%rip), %xmm0   # 0x5edb08
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xe0(%rbp)
jmp 0x85e9f
movss -0x88(%rbp), %xmm0
ucomiss -0x90(%rbp), %xmm0
jbe 0x85f48
leaq 0x3c4ea5(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x85eca
jmp 0x86e12
movss -0x88(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x90(%rbp), %xmm0
movss %xmm0, -0x88(%rbp)
movss -0x74(%rbp), %xmm0
movss %xmm0, -0x90(%rbp)
movss -0xd4(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movss -0xdc(%rbp), %xmm0
movss %xmm0, -0xd4(%rbp)
movss -0x74(%rbp), %xmm0
movss %xmm0, -0xdc(%rbp)
movss -0xd8(%rbp), %xmm0
movss %xmm0, -0x74(%rbp)
movss -0xe0(%rbp), %xmm0
movss %xmm0, -0xd8(%rbp)
movss -0x74(%rbp), %xmm0
movss %xmm0, -0xe0(%rbp)
movss -0x88(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
movss -0xd4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
movss -0x90(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
movss -0xdc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
movss -0x90(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x30(%rbp)
movss -0xe0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movss -0x88(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
movss -0xd8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl -0x148(%rbp), %ecx
movl $0x4, %edx
callq 0x73b90
jmp 0x86dc7
leaq 0x3c4d6c(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x8603f
leaq 0x2225bb(%rip), %rax    # 0x2a85c0
movl (%rax), %eax
movq -0x158(%rbp), %rcx
cmpl 0x8(%rcx), %eax
setg %al
andb $0x1, %al
movzbl %al, %eax
leaq 0x3c4d40(%rip), %rcx    # 0x44ad60
movl (%rcx), %ecx
andl $0x8, %ecx
cmpl $0x0, %ecx
setne %cl
xorb $-0x1, %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0x8603d
jmp 0x86e12
jmp 0x8603f
leaq 0x3c4d1a(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x8605e
xorl %eax, %eax
subl -0x140(%rbp), %eax
movl %eax, -0x140(%rbp)
leaq 0x3c4cfb(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jle 0x8607d
xorl %eax, %eax
subl -0x144(%rbp), %eax
movl %eax, -0x144(%rbp)
movq -0x158(%rbp), %rax
movswl 0x1c(%rax), %eax
andl $0x7ff, %eax            # imm = 0x7FF
movl %eax, -0x134(%rbp)
movl -0x134(%rbp), %eax
addl $0x200, %eax            # imm = 0x200
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x385803(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %eax
cvtsi2sd %eax, %xmm0
movsd 0x2add3(%rip), %xmm1    # 0xb0e90
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x78(%rbp)
movslq -0x134(%rbp), %rcx
leaq 0x3857d8(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %eax
cvtsi2sd %eax, %xmm0
movsd 0x2ada8(%rip), %xmm1    # 0xb0e90
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x7c(%rbp)
leaq 0x3c4c74(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3c4c79(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
sarl %eax
subl -0x140(%rbp), %eax
movq -0x158(%rbp), %rcx
movzbl 0x14(%rcx), %ecx
imull %ecx, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0xc4(%rbp)
leaq 0x3c4c3c(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b6401(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
sarl %eax
subl -0x144(%rbp), %eax
movq -0x158(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0xc8(%rbp)
leaq 0x3c4c04(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3c4c09(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
sarl %eax
addl -0x140(%rbp), %eax
movq -0x158(%rbp), %rcx
movzbl 0x14(%rcx), %ecx
imull %ecx, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0xcc(%rbp)
leaq 0x3c4bcc(%rip), %rax    # 0x44ad70
movswq (%rax), %rcx
leaq 0x3b6391(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
sarl %eax
addl -0x144(%rbp), %eax
movq -0x158(%rbp), %rcx
movzbl 0x15(%rcx), %ecx
imull %ecx, %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0xd0(%rbp)
movl $0x0, -0x138(%rbp)
cmpl $0x4, -0x138(%rbp)
jge 0x86450
movq -0x158(%rbp), %rax
movl (%rax), %eax
leaq 0x1f13b4(%rip), %rcx    # 0x2775b0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x88(%rbp)
movq -0x158(%rbp), %rax
movl 0x4(%rax), %eax
leaq 0x1f1399(%rip), %rcx    # 0x2775b4
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
movss %xmm0, -0x8c(%rbp)
movl -0x138(%rbp), %eax
addl $0x0, %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x862a0
movss -0x7c(%rbp), %xmm0
movss -0xc8(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0x78(%rbp), %xmm0
movss -0xc8(%rbp), %xmm2
movss -0x88(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x88(%rbp)
jmp 0x862ea
movss -0x7c(%rbp), %xmm0
movss -0xd0(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0x78(%rbp), %xmm0
movss -0xd0(%rbp), %xmm2
movss -0x88(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x88(%rbp)
movl -0x138(%rbp), %eax
addl $0x1, %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x86354
movss -0x7c(%rbp), %xmm0
movss -0xc4(%rbp), %xmm2
movss -0x88(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x88(%rbp)
movss -0x78(%rbp), %xmm0
movss -0xc4(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x8c(%rbp)
jmp 0x863ab
movss -0x7c(%rbp), %xmm0
movss -0xcc(%rbp), %xmm2
movss -0x88(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x88(%rbp)
movss -0x78(%rbp), %xmm0
movss -0xcc(%rbp), %xmm2
movss -0x8c(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x8c(%rbp)
movss -0x8c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x5675c1(%rip), %xmm2   # 0x5ed980
movss -0x88(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x5675bd(%rip), %xmm1   # 0x5ed990
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x138(%rbp), %rax
movsd %xmm0, -0x40(%rbp,%rax,8)
movss -0x88(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x567565(%rip), %xmm2   # 0x5ed978
movss -0x8c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd 0x567561(%rip), %xmm1   # 0x5ed988
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x138(%rbp), %rax
movsd %xmm0, -0x70(%rbp,%rax,8)
movl -0x138(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x138(%rbp)
jmp 0x861df
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x22215f(%rip), %rcx    # 0x2a85c0
cmpl (%rcx), %eax
jge 0x86501
movsd -0x40(%rbp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movsd -0x38(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x70(%rbp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x30(%rbp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x60(%rbp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
movl $0x0, -0x14c(%rbp)
movl $0x0, -0x134(%rbp)
cmpl $0x4, -0x134(%rbp)
jge 0x866e4
movl -0x134(%rbp), %eax
addl $0x1, %eax
andl $0x3, %eax
movl %eax, -0x138(%rbp)
movslq -0x134(%rbp), %rax
movsd -0x70(%rbp,%rax,8), %xmm0
movsd 0x2b487(%rip), %xmm1    # 0xb19d0
ucomisd %xmm1, %xmm0
jb 0x865a0
movslq -0x134(%rbp), %rax
movsd -0x40(%rbp,%rax,8), %xmm0
cvtsd2ss %xmm0, %xmm0
movslq -0x14c(%rbp), %rax
movss %xmm0, -0x100(%rbp,%rax,4)
movslq -0x134(%rbp), %rax
movsd -0x70(%rbp,%rax,8), %xmm0
cvtsd2ss %xmm0, %xmm0
movslq -0x14c(%rbp), %rax
movss %xmm0, -0x120(%rbp,%rax,4)
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
movslq -0x134(%rbp), %rax
movsd -0x70(%rbp,%rax,8), %xmm0
movsd 0x2b41b(%rip), %xmm1    # 0xb19d0
ucomisd %xmm1, %xmm0
setae %al
andb $0x1, %al
movzbl %al, %eax
movslq -0x138(%rbp), %rcx
movsd -0x70(%rbp,%rcx,8), %xmm0
movsd 0x2b3fa(%rip), %xmm1    # 0xb19d0
ucomisd %xmm1, %xmm0
setae %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x866ce
movslq -0x134(%rbp), %rax
movsd 0x2b3d6(%rip), %xmm0    # 0xb19d0
subsd -0x70(%rbp,%rax,8), %xmm0
movslq -0x138(%rbp), %rax
movsd -0x70(%rbp,%rax,8), %xmm1
movslq -0x134(%rbp), %rax
subsd -0x70(%rbp,%rax,8), %xmm1
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movslq -0x138(%rbp), %rax
movsd -0x40(%rbp,%rax,8), %xmm0
movslq -0x134(%rbp), %rax
subsd -0x40(%rbp,%rax,8), %xmm0
movss -0x74(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movslq -0x134(%rbp), %rax
movsd -0x40(%rbp,%rax,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movslq -0x14c(%rbp), %rax
movss %xmm0, -0x100(%rbp,%rax,4)
movslq -0x138(%rbp), %rax
movsd -0x70(%rbp,%rax,8), %xmm0
movslq -0x134(%rbp), %rax
subsd -0x70(%rbp,%rax,8), %xmm0
movss -0x74(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movslq -0x134(%rbp), %rax
movsd -0x70(%rbp,%rax,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movslq -0x14c(%rbp), %rax
movss %xmm0, -0x120(%rbp,%rax,4)
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
jmp 0x866d0
movl -0x134(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x134(%rbp)
jmp 0x86515
cmpl $0x3, -0x14c(%rbp)
jge 0x866f2
jmp 0x86e12
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x221ebd(%rip), %rcx    # 0x2a85c0
subl (%rcx), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x56b473(%rip), %xmm0   # 0x5f1b88
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movl $0x0, -0x138(%rbp)
movl -0x138(%rbp), %eax
cmpl -0x14c(%rbp), %eax
jge 0x867dd
movslq -0x138(%rbp), %rax
movss 0x2c6b7(%rip), %xmm0    # 0xb2e00
divss -0x120(%rbp,%rax,4), %xmm0
movss %xmm0, -0xac(%rbp)
movsd 0x56739e(%rip), %xmm0   # 0x5edb00
movslq -0x138(%rbp), %rax
movss -0x100(%rbp,%rax,4), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
movss -0xac(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x567372(%rip), %xmm1   # 0x5edb00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x138(%rbp), %rax
movsd %xmm0, -0x40(%rbp,%rax,8)
movss -0x74(%rbp), %xmm0
mulss -0xac(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
addsd 0x56734c(%rip), %xmm0   # 0x5edb08
movslq -0x138(%rbp), %rax
movsd %xmm0, -0x70(%rbp,%rax,8)
movl -0x138(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x138(%rbp)
jmp 0x86728
movq $0x0, 0x567338(%rip) # 0x5edb20
movsd 0x56b3a0(%rip), %xmm0   # 0x5f1b90
movq -0x158(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x221dbf(%rip), %rcx    # 0x2a85c0
movl (%rcx), %ecx
subl %ecx, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x567313(%rip)   # 0x5edb28
movaps 0x2feb4(%rip), %xmm1    # 0xb66d0
movsd 0x5672e4(%rip), %xmm0   # 0x5edb08
pxor %xmm1, %xmm0
movsd 0x5672f8(%rip), %xmm1   # 0x5edb28
mulsd %xmm1, %xmm0
movsd %xmm0, 0x5672f4(%rip)   # 0x5edb30
movq -0x158(%rbp), %rax
cvtsi2ssl (%rax), %xmm0
movss -0x7c(%rbp), %xmm1
movss -0xcc(%rbp), %xmm2
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0x78(%rbp), %xmm0
movss -0xd0(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x124(%rbp)
movss -0xc4(%rbp), %xmm0
movss -0xcc(%rbp), %xmm1
addss %xmm1, %xmm0
movaps 0x2fe4c(%rip), %xmm1    # 0xb66e0
pxor %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x7c(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x80(%rbp)
movq -0x158(%rbp), %rax
cvtsi2ssl 0x4(%rax), %xmm1
movss -0x7c(%rbp), %xmm0
movss -0xd0(%rbp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss -0x78(%rbp), %xmm1
movss -0xcc(%rbp), %xmm2
mulss %xmm2, %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x128(%rbp)
movss -0xc4(%rbp), %xmm0
movss -0xcc(%rbp), %xmm1
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x78(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x80(%rbp), %xmm0
movss -0x84(%rbp), %xmm1
mulss %xmm1, %xmm1
mulss %xmm0, %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x6460
movaps %xmm0, %xmm1
movsd 0x2b082(%rip), %xmm0    # 0xb19d0
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x74(%rbp), %xmm1
movss -0x80(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x80(%rbp)
movss -0x74(%rbp), %xmm1
movss -0x84(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x84(%rbp)
leaq 0x225c4a(%rip), %rcx    # 0x2ac5d8
cvtsi2ssl (%rcx), %xmm0
movss -0x84(%rbp), %xmm2
leaq 0x225c2f(%rip), %rax    # 0x2ac5d0
cvtsi2ssl (%rax), %xmm1
movss -0x80(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0xb8(%rbp)
cvtsi2ssl (%rcx), %xmm0
movss -0x80(%rbp), %xmm2
cvtsi2ssl (%rax), %xmm1
movss -0x84(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
subss %xmm1, %xmm0
movss %xmm0, -0xb4(%rbp)
leaq 0x1f0bc6(%rip), %rax    # 0x2775b4
cvtsi2ssl (%rax), %xmm0
movss -0x128(%rbp), %xmm1
subss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x84(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
leaq 0x1f0b9b(%rip), %rcx    # 0x2775b0
cvtsi2ssl (%rcx), %xmm1
movss -0x124(%rbp), %xmm3
subss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x80(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc0(%rbp)
cvtsi2ssl (%rcx), %xmm0
movss -0x124(%rbp), %xmm1
subss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x84(%rbp), %xmm1
cvtss2sd %xmm1, %xmm2
cvtsi2ssl (%rax), %xmm1
movss -0x128(%rbp), %xmm3
subss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x80(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xbc(%rbp)
movss -0xb4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x385dfe(%rip), %rax    # 0x40c8b0
cvtsi2sdl (%rax), %xmm1
mulsd %xmm1, %xmm0
movsd 0x2faae(%rip), %xmm1    # 0xb6570
mulsd %xmm1, %xmm0
movsd %xmm0, 0x56706a(%rip)   # 0x5edb38
movss -0xb8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
cvtsi2sdl (%rax), %xmm2
mulsd %xmm2, %xmm0
mulsd %xmm1, %xmm0
movsd %xmm0, 0x567062(%rip)   # 0x5edb50
movss -0xc0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x567026(%rip), %xmm1   # 0x5edb28
mulsd %xmm1, %xmm0
movsd %xmm0, 0x567032(%rip)   # 0x5edb40
movss -0xbc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x567006(%rip), %xmm1   # 0x5edb28
mulsd %xmm1, %xmm0
movsd %xmm0, 0x56702a(%rip)   # 0x5edb58
movss -0xc0(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x566fee(%rip), %xmm1   # 0x5edb30
mulsd %xmm1, %xmm0
movsd %xmm0, 0x566ffa(%rip)   # 0x5edb48
movss -0xbc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x566fce(%rip), %xmm1   # 0x5edb30
mulsd %xmm1, %xmm0
movsd %xmm0, 0x566ff2(%rip)   # 0x5edb60
movss -0xb8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2f9c6(%rip), %xmm0    # 0xb6548
mulsd %xmm0, %xmm1
movsd 0x566faa(%rip), %xmm2   # 0x5edb38
subsd %xmm2, %xmm1
movsd 0x566f66(%rip), %xmm3   # 0x5edb00
movsd 0x566fa6(%rip), %xmm2   # 0x5edb48
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
movsd %xmm1, 0x566f96(%rip)   # 0x5edb48
movss -0xb4(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm0, %xmm1
movsd 0x566f86(%rip), %xmm0   # 0x5edb50
addsd %xmm0, %xmm1
movsd 0x566f2a(%rip), %xmm2   # 0x5edb00
movsd 0x566f82(%rip), %xmm0   # 0x5edb60
mulsd %xmm2, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x566f72(%rip)   # 0x5edb60
movq -0x158(%rbp), %rax
movzbl 0x14(%rax), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2f96f(%rip), %xmm0    # 0xb6578
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x566f11(%rip), %xmm0   # 0x5edb38
mulsd %xmm1, %xmm0
movsd %xmm0, 0x566f05(%rip)   # 0x5edb38
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x566efc(%rip), %xmm0   # 0x5edb40
mulsd %xmm1, %xmm0
movsd %xmm0, 0x566ef0(%rip)   # 0x5edb40
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x566ee7(%rip), %xmm0   # 0x5edb48
mulsd %xmm1, %xmm0
movsd %xmm0, 0x566edb(%rip)   # 0x5edb48
movq -0x158(%rbp), %rax
movzbl 0x15(%rax), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2f8e0(%rip), %xmm0    # 0xb6568
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x566eaa(%rip), %xmm0   # 0x5edb50
movsd %xmm0, 0x566ea2(%rip)   # 0x5edb50
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x566e99(%rip), %xmm0   # 0x5edb58
movsd %xmm0, 0x566e91(%rip)   # 0x5edb58
movss -0x74(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x566e88(%rip), %xmm0   # 0x5edb60
movsd %xmm0, 0x566e80(%rip)   # 0x5edb60
leaq 0x3c4079(%rip), %rax    # 0x44ad60
movl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x86daa
leaq 0x3c4074(%rip), %rcx    # 0x44ad70
movswq (%rcx), %rdx
leaq 0x3c4079(%rip), %rax    # 0x44ad80
movswl (%rax,%rdx,2), %edx
cvtsi2ss %edx, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x566e05(%rip), %xmm2   # 0x5edb20
movsd 0x566e15(%rip), %xmm1   # 0x5edb38
mulsd %xmm2, %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x566e05(%rip)   # 0x5edb38
movswq (%rcx), %rdx
movswl (%rax,%rdx,2), %edx
cvtsi2ss %edx, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x566ddd(%rip), %xmm2   # 0x5edb28
movsd 0x566ded(%rip), %xmm1   # 0x5edb40
mulsd %xmm2, %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, 0x566ddd(%rip)   # 0x5edb40
movswq (%rcx), %rcx
movswl (%rax,%rcx,2), %eax
cvtsi2ss %eax, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x566db5(%rip), %xmm2   # 0x5edb30
movsd 0x566dc5(%rip), %xmm1   # 0x5edb48
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x566d9e(%rip)   # 0x5edb48
leaq -0x40(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl -0x14c(%rbp), %edx
movl -0x148(%rbp), %ecx
callq 0x73b90
jmp 0x86dc7
jmp 0x86dc7
leaq 0x362272(%rip), %rax    # 0x3e9040
movzbl (%rax), %eax
cmpl $0x1, %eax
jne 0x86e12
movl -0x13c(%rbp), %eax
andl $0x7, %eax
movslq %eax, %rcx
leaq 0x59ea7(%rip), %rax     # 0xe0c90
movzbl (%rax,%rcx), %edx
movl -0x13c(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x361240(%rip), %rax    # 0x3e8040
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x361231(%rip), %rax    # 0x3e8040
movb %dl, (%rax,%rcx)
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopl (%rax,%rax)