// File: /workspace/github_c_makefile_star2_O1/jonof[P]jftekwar/jfbuild/src/polymost.c
// Function: polymost_dorotatesprite
void polymost_dorotatesprite (int sx, int sy, int z, short a, short picnum,
	signed char dashade, unsigned char dapalnum, unsigned char dastat, int cx1, int cy1, int cx2, int cy2, int uniqid)
{
	int n, nn, x, zz, xoff, yoff, xsiz, ysiz, method;
	int ogpicnum, ogshade, ogpal, oxdimen, oydimen;
	intptr_t ofoffset;
	double ogchang, ogshang, ogctang, ogstang, oghalfx, oghoriz, fx, fy, x1, y1, x2, y2;
	double ogrhalfxdown10, ogrhalfxdown10x;
	double d, cosang, sinang, cosang2, sinang2, px[8], py[8], px2[8], py2[8];

#if USE_OPENGL
	double z1;
	double ogxyaspect, ogfogdensity;
	int oldviewingrange;
	static int onumframes = 0;

	if (rendmode == 3 && usemodels && hudmem[(dastat&4)>>2][picnum].angadd)
	{
		if ((tile2model[picnum].modelid >= 0) && (tile2model[picnum].framenum >= 0))
		{
			spritetype tspr;
			memset(&tspr,0,sizeof(spritetype));

			if (hudmem[(dastat&4)>>2][picnum].flags&1) return; //"HIDE" is specified in DEF

			ogchang = gchang; gchang = 1.0;
			ogshang = gshang; gshang = 0.0; d = (double)z/(65536.0*16384.0);
			ogctang = gctang; gctang = (double)sintable[(a+512)&2047]*d;
			ogstang = gstang; gstang = (double)sintable[a&2047]*d;
			ogshade  = globalshade;  globalshade  = dashade;
			ogpal    = globalpal;    globalpal    = (int)((unsigned char)dapalnum);
			ogxyaspect = gxyaspect; gxyaspect = 1.0;
			ogfogdensity = gfogdensity; gfogdensity = 0.0;
			oldviewingrange = viewingrange; viewingrange = 65536;

			x1 = hudmem[(dastat&4)>>2][picnum].xadd;
			y1 = hudmem[(dastat&4)>>2][picnum].yadd;
			z1 = hudmem[(dastat&4)>>2][picnum].zadd;
			if (!(hudmem[(dastat&4)>>2][picnum].flags&2)) //"NOBOB" is specified in DEF
			{
				fx = ((double)sx)*(1.0/65536.0);
				fy = ((double)sy)*(1.0/65536.0);

				if (dastat&16)
				{
					xsiz = tilesizx[picnum]; ysiz = tilesizy[picnum];
					xoff = (int)((signed char)((picanm[picnum]>>8)&255))+(xsiz>>1);
					yoff = (int)((signed char)((picanm[picnum]>>16)&255))+(ysiz>>1);

					d = (double)z/(65536.0*16384.0);
					cosang2 = cosang = (double)sintable[(a+512)&2047]*d;
					sinang2 = sinang = (double)sintable[a&2047]*d;
					if ((dastat&2) || (!(dastat&8))) //Don't aspect unscaled perms
						{ d = (double)xyaspect/65536.0; cosang2 *= d; sinang2 *= d; }
					fx += -(double)xoff*cosang2+ (double)yoff*sinang2;
					fy += -(double)xoff*sinang - (double)yoff*cosang;
			}

				if (!(dastat&2))
			{
					x1 += fx/((double)(xdim<<15))-1.0; //-1: left of screen, +1: right of screen
					y1 += fy/((double)(ydim<<15))-1.0; //-1: top of screen, +1: bottom of screen
			}
			else
			{
					x1 += fx/160.0-1.0; //-1: left of screen, +1: right of screen
					y1 += fy/100.0-1.0; //-1: top of screen, +1: bottom of screen
			}
			}
			tspr.ang = hudmem[(dastat&4)>>2][picnum].angadd+globalang;
			tspr.xrepeat = tspr.yrepeat = 32;

			if (dastat&4) { x1 = -x1; y1 = -y1; }
			tspr.x = (int)(((double)gcosang*z1 - (double)gsinang*x1)*16384.0 + globalposx);
			tspr.y = (int)(((double)gsinang*z1 + (double)gcosang*x1)*16384.0 + globalposy);
			tspr.z = (int)(globalposz + y1*16384.0*0.8);
			tspr.picnum = picnum;
			tspr.shade = dashade;
			tspr.pal = dapalnum;
			tspr.owner = uniqid+MAXSPRITES;
			globalorientation = (dastat&1)+((dastat&32)<<4)+((dastat&4)<<1);

			if ((dastat&10) == 2) glfunc.glViewport(windowx1,yres-(windowy2+1),windowx2-windowx1+1,windowy2-windowy1+1);
			else { glfunc.glViewport(0,0,xdim,ydim); glox1 = -1; } //Force fullscreen (glox1=-1 forces it to restore)

			if (hudmem[(dastat&4)>>2][picnum].flags&8) //NODEPTH flag
				glfunc.glDisable(GL_DEPTH_TEST);
			else
			{
				glfunc.glEnable(GL_DEPTH_TEST);
				if (onumframes != numframes)
				{
					onumframes = numframes;
					glfunc.glClear(GL_DEPTH_BUFFER_BIT);
				}
			}

			mddraw(&tspr, !!((dastat&10) != 2));

			viewingrange = oldviewingrange;
			gfogdensity = ogfogdensity;
			gxyaspect = ogxyaspect;
			globalshade  = ogshade;
			globalpal    = ogpal;
			gchang = ogchang;
			gshang = ogshang;
			gctang = ogctang;
			gstang = ogstang;
			return;
		}
	}
#endif

	ogpicnum = globalpicnum; globalpicnum = picnum;
	ogshade  = globalshade;  globalshade  = dashade;
	ogpal    = globalpal;    globalpal    = (int)((unsigned char)dapalnum);
	oghalfx  = ghalfx;       ghalfx       = (double)(xdim>>1);
	ogrhalfxdown10 = grhalfxdown10;    grhalfxdown10 = 1.0/(((double)ghalfx)*1024);
	ogrhalfxdown10x = grhalfxdown10x;  grhalfxdown10x = grhalfxdown10;
	oghoriz  = ghoriz;       ghoriz       = (double)(ydim>>1);
	ofoffset = frameoffset;  frameoffset  = frameplace;
	oxdimen  = xdimen;       xdimen       = xdim;
	oydimen  = ydimen;       ydimen       = ydim;
	ogchang = gchang; gchang = 1.0;
	ogshang = gshang; gshang = 0.0;
	ogctang = gctang; gctang = 1.0;
	ogstang = gstang; gstang = 0.0;

#if USE_OPENGL
	if (rendmode == 3)
	{
		glfunc.glViewport(0,0,xdim,ydim); glox1 = -1; //Force fullscreen (glox1=-1 forces it to restore)
		glfunc.glDisable(GL_DEPTH_TEST);
	}
#endif

	method = METH_SOLID;
	if (!(dastat&64))
	{
		 method = METH_MASKED;
		 if (dastat&1) { if (!(dastat&32)) method = METH_TRANS; else method = METH_INTRANS; }
	}
	method |= METH_CLAMPED; //Use OpenGL clamping - dorotatesprite never repeats
	method |= METH_ROTATESPRITE;	//Use rotatesprite projection

	xsiz = tilesizx[globalpicnum]; ysiz = tilesizy[globalpicnum];
	if (dastat&16) { xoff = 0; yoff = 0; }
	else
	{
		xoff = (int)((signed char)((picanm[globalpicnum]>>8)&255))+(xsiz>>1);
		yoff = (int)((signed char)((picanm[globalpicnum]>>16)&255))+(ysiz>>1);
	}
	if (dastat&4) yoff = ysiz-yoff;

	if (dastat&2)  //Auto window size scaling
	{
		if (!(dastat&8))
		{
			if (widescreen) {
				x = ydimenscale;   //= scale(xdimen,yxaspect,320);
				sx = ((cx1+cx2+2)<<15)+scale(sx-(320<<15),oydimen<<16,200*pixelaspect);
			} else {
				x = xdimenscale;   //= scale(xdimen,yxaspect,320);
				sx = ((cx1+cx2+2)<<15)+scale(sx-(320<<15),oxdimen,320);
			}
			sy = ((cy1+cy2+2)<<15)+mulscale16(sy-(200<<15),x);
		}
		else
		{
				//If not clipping to startmosts, & auto-scaling on, as a
				//hard-coded bonus, scale to full screen instead
			if (widescreen) {
				x = scale(ydim<<16,yxaspect,200*pixelaspect);
				sx = (xdim<<15)+32768+scale(sx-(320<<15),ydim<<16,200*pixelaspect);
			} else {
				x = scale(xdim,yxaspect,320);
				sx = (xdim<<15)+32768+scale(sx-(320<<15),xdim,320);
			}
			sy = (ydim<<15)+32768+mulscale16(sy-(200<<15),x);
		}
		z = mulscale16(z,x);
	}

	d = (double)z/(65536.0*16384.0);
	cosang2 = cosang = (double)sintable[(a+512)&2047]*d;
	sinang2 = sinang = (double)sintable[a&2047]*d;
	if ((dastat&2) || (!(dastat&8))) //Don't aspect unscaled perms
		{ d = (double)xyaspect/65536.0; cosang2 *= d; sinang2 *= d; }
	px[0] = (double)sx/65536.0 - (double)xoff*cosang2+ (double)yoff*sinang2;
	py[0] = (double)sy/65536.0 - (double)xoff*sinang - (double)yoff*cosang;
	px[1] = px[0] + (double)xsiz*cosang2;
	py[1] = py[0] + (double)xsiz*sinang;
	px[3] = px[0] - (double)ysiz*sinang2;
	py[3] = py[0] + (double)ysiz*cosang;
	px[2] = px[1]+px[3]-px[0];
	py[2] = py[1]+py[3]-py[0];
	n = 4;

	gdx = 0; gdy = 0; gdo = 1.0;
		//px[0]*gux + py[0]*guy + guo = 0
		//px[1]*gux + py[1]*guy + guo = xsiz-.0001
		//px[3]*gux + py[3]*guy + guo = 0
	d = 1.0/(px[0]*(py[1]-py[3]) + px[1]*(py[3]-py[0]) + px[3]*(py[0]-py[1]));
	gux = (py[3]-py[0])*((double)xsiz-.0001)*d;
	guy = (px[0]-px[3])*((double)xsiz-.0001)*d;
	guo = 0 - px[0]*gux - py[0]*guy;

	if (!(dastat&4))
	{     //px[0]*gvx + py[0]*gvy + gvo = 0
			//px[1]*gvx + py[1]*gvy + gvo = 0
			//px[3]*gvx + py[3]*gvy + gvo = ysiz-.0001
		gvx = (py[0]-py[1])*((double)ysiz-.0001)*d;
		gvy = (px[1]-px[0])*((double)ysiz-.0001)*d;
		gvo = 0 - px[0]*gvx - py[0]*gvy;
	}
	else
	{     //px[0]*gvx + py[0]*gvy + gvo = ysiz-.0001
			//px[1]*gvx + py[1]*gvy + gvo = ysiz-.0001
			//px[3]*gvx + py[3]*gvy + gvo = 0
		gvx = (py[1]-py[0])*((double)ysiz-.0001)*d;
		gvy = (px[0]-px[1])*((double)ysiz-.0001)*d;
		gvo = (double)ysiz-.0001 - px[0]*gvx - py[0]*gvy;
	}

	cx2++; cy2++;
		//Clippoly4 (converted from int to double)
	nn = z = 0;
	do
	{
		zz = z+1; if (zz == n) zz = 0;
		x1 = px[z]; x2 = px[zz]-x1; if ((cx1 <= x1) && (x1 <= cx2)) { px2[nn] = x1; py2[nn] = py[z]; nn++; }
		if (x2 <= 0) fx = cx2; else fx = cx1;  d = fx-x1;
		if ((d < x2) != (d < 0)) { px2[nn] = fx; py2[nn] = (py[zz]-py[z])*d/x2 + py[z]; nn++; }
		if (x2 <= 0) fx = cx1; else fx = cx2;  d = fx-x1;
		if ((d < x2) != (d < 0)) { px2[nn] = fx; py2[nn] = (py[zz]-py[z])*d/x2 + py[z]; nn++; }
		z = zz;
	} while (z);
	if (nn >= 3)
	{
		n = z = 0;
		do
		{
			zz = z+1; if (zz == nn) zz = 0;
			y1 = py2[z]; y2 = py2[zz]-y1; if ((cy1 <= y1) && (y1 <= cy2)) { py[n] = y1; px[n] = px2[z]; n++; }
			if (y2 <= 0) fy = cy2; else fy = cy1;  d = fy-y1;
			if ((d < y2) != (d < 0)) { py[n] = fy; px[n] = (px2[zz]-px2[z])*d/y2 + px2[z]; n++; }
			if (y2 <= 0) fy = cy1; else fy = cy2;  d = fy-y1;
			if ((d < y2) != (d < 0)) { py[n] = fy; px[n] = (px2[zz]-px2[z])*d/y2 + px2[z]; n++; }
			z = zz;
		} while (z);
		drawpoly(px,py,n,method);
	}

	globalpicnum = ogpicnum;
	globalshade  = ogshade;
	globalpal    = ogpal;
	ghalfx       = oghalfx;
	grhalfxdown10 = ogrhalfxdown10;
	grhalfxdown10x = ogrhalfxdown10x;
	ghoriz       = oghoriz;
	frameoffset  = ofoffset;
	xdimen       = oxdimen;
	ydimen       = oydimen;
	gchang = ogchang;
	gshang = ogshang;
	gctang = ogctang;
	gstang = ogstang;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movl %ecx, 0x20(%rsp)
movl %edx, %r14d
movl %esi, %ebx
movl %edi, %r12d
movb 0x1c0(%rsp), %al
movl 0x5a0144(%rip), %esi    # 0x5f9950
movzbl 0x1c8(%rsp), %r13d
cmpl $0x3, %esi
jne 0x59a19
cmpl $0x0, 0x4aceb(%rip)     # 0xa4510
je 0x59a19
movl %r13d, %ecx
andl $0x4, %ecx
movl %ecx, %edx
shrl $0x2, %edx
movswq %r8w, %rdi
movq %rdi, %r10
shlq $0x4, %r10
leaq (%rdx,%rdx,8), %rbp
shll $0xe, %ebp
addq 0x38769(%rip), %rbp     # 0x91fb8
movzwl 0xc(%r10,%rbp), %edx
testw %dx, %dx
je 0x59a19
leaq (%rdi,%rdi,2), %r11
leaq 0x5ee7e7(%rip), %r15    # 0x648050
cmpl $0x0, (%r15,%r11,4)
js 0x59a19
leaq (%r15,%r11,4), %r11
cmpl $0x0, 0x8(%r11)
js 0x59a19
addq %r10, %rbp
xorps %xmm0, %xmm0
movups %xmm0, 0x5c(%rsp)
movaps %xmm0, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
movzwl 0xe(%rbp), %esi
testb $0x1, %sil
jne 0x5a4cd
movsd 0x5a0272(%rip), %xmm0   # 0x5f9b20
movsd %xmm0, (%rsp)
movabsq $0x3ff0000000000000, %r10 # imm = 0x3FF0000000000000
movq %r10, 0x5a025c(%rip)    # 0x5f9b20
movsd 0x5a0274(%rip), %xmm0   # 0x5f9b40
movsd %xmm0, 0x18(%rsp)
movq $0x0, 0x5a0263(%rip) # 0x5f9b40
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
mulsd 0x1fb3b(%rip), %xmm0    # 0x79428
movsd 0x5a0233(%rip), %xmm1   # 0x5f9b28
movsd %xmm1, 0x10(%rsp)
movzwl 0x20(%rsp), %r11d
leal 0x200(%r11), %r14d
movl $0x7ff, %r15d           # imm = 0x7FF
andl %r15d, %r14d
leaq 0x374438(%rip), %r10    # 0x3cdd50
movswl (%r10,%r14,2), %r14d
cvtsi2sd %r14d, %xmm4
mulsd %xmm0, %xmm4
movsd %xmm4, 0x5a01fa(%rip)   # 0x5f9b28
movsd 0x5a0212(%rip), %xmm1   # 0x5f9b48
movsd %xmm1, 0x20(%rsp)
andl %r15d, %r11d
movswl (%r10,%r11,2), %r10d
cvtsi2sd %r10d, %xmm5
mulsd %xmm0, %xmm5
movsd %xmm5, 0x5a01f3(%rip)   # 0x5f9b48
leaq 0x3b9ed0(%rip), %r11    # 0x41382c
movl (%r11), %r15d
movsbl %r9b, %r10d
movq %r11, %r14
movl %r10d, (%r11)
leaq 0x3b5694(%rip), %r11    # 0x40f004
movl (%r11), %r10d
movl %r10d, 0xc(%rsp)
movzbl %al, %r10d
movl %r10d, (%r11)
movsd 0x5a4239(%rip), %xmm0   # 0x5fdbc0
movsd %xmm0, 0x30(%rsp)
movabsq $0x3ff0000000000000, %r10 # imm = 0x3FF0000000000000
movq %r10, 0x5a4222(%rip)    # 0x5fdbc0
movss 0x59ffd6(%rip), %xmm0   # 0x5f997c
movss %xmm0, 0x8(%rsp)
movl $0x0, 0x59ffc6(%rip)    # 0x5f997c
leaq 0x375393(%rip), %r10    # 0x3ced50
movl (%r10), %r11d
movl %r11d, 0x28(%rsp)
xorps %xmm1, %xmm1
cvtss2sd (%rbp), %xmm1
movl $0x10000, (%r10)        # imm = 0x10000
xorps %xmm0, %xmm0
cvtss2sd 0x4(%rbp), %xmm0
testb $0x2, %sil
jne 0x5a4df
cvtsi2sd %r12d, %xmm3
movsd 0x1a5a5(%rip), %xmm6    # 0x73f98
mulsd %xmm6, %xmm3
cvtsi2sd %ebx, %xmm2
mulsd %xmm6, %xmm2
movb 0x1c8(%rsp), %sil
testb $0x10, %sil
jne 0x5a4e7
movl %r15d, %r12d
jmp 0x5a5a3
movl %r13d, (%rsp)
leaq 0x3ad5c8(%rip), %rcx    # 0x406fec
movl (%rcx), %edx
movl %edx, %r10d
sarl %r10d
leaq 0x3ad5bd(%rip), %rcx    # 0x406ff0
movq %rcx, %r13
movl (%rcx), %ecx
movl %ecx, %r11d
sarl %r11d
xorl %edi, %edi
leaq 0x3b55c9(%rip), %r15    # 0x40f010
movzwl (%r15), %ebp
movw %bp, 0xc(%rsp)
movw %r8w, (%r15)
leaq 0x3b9dd1(%rip), %rbp    # 0x41382c
movl (%rbp), %r8d
movl %r8d, 0x30(%rsp)
movsbl %r9b, %r8d
movl %r8d, (%rbp)
leaq 0x3b5591(%rip), %r8     # 0x40f004
movl (%r8), %r9d
movl %r9d, 0x8(%rsp)
movzbl %al, %eax
movl %eax, (%r8)
cvtsi2sd %r10d, %xmm0
movsd 0x5a00a2(%rip), %xmm1   # 0x5f9b30
movsd %xmm1, 0x28(%rsp)
movsd %xmm0, 0x5a0094(%rip)   # 0x5f9b30
mulsd 0x1c4a4(%rip), %xmm0    # 0x75f48
movsd 0x5a00fc(%rip), %xmm1   # 0x5f9ba8
movsd %xmm1, 0xb8(%rsp)
movsd 0x1b01a(%rip), %xmm12   # 0x74ad8
movapd %xmm12, %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x5a00d9(%rip)   # 0x5f9ba8
movsd 0x5a00c9(%rip), %xmm0   # 0x5f9ba0
movsd %xmm0, 0xb0(%rsp)
movsd %xmm1, 0x5a00b8(%rip)   # 0x5f9ba0
movsd 0x5a0048(%rip), %xmm0   # 0x5f9b38
movsd %xmm0, 0xa8(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r11d, %xmm0
movsd %xmm0, 0x5a002f(%rip)   # 0x5f9b38
leaq 0x37cc80(%rip), %r8     # 0x3d6790
movq (%r8), %rax
movq %rax, 0xa0(%rsp)
leaq 0x12358e(%rip), %rax    # 0x17d0b0
movq (%rax), %rax
movq %rax, (%r8)
leaq 0x49d01(%rip), %rax     # 0xa3830
movsd 0x5a0009(%rip), %xmm0   # 0x5f9b40
movsd %xmm0, 0x98(%rsp)
movq %rdi, 0x59fff9(%rip)    # 0x5f9b40
movsd 0x59fff9(%rip), %xmm0   # 0x5f9b48
movsd %xmm0, 0x90(%rsp)
movq %rdi, 0x59ffe9(%rip)    # 0x5f9b48
movl (%rax), %edi
movl %edi, 0x10(%rsp)
movl %edx, (%rax)
leaq 0x220f26(%rip), %rax    # 0x27aa94
movl (%rax), %edi
movl %edi, 0x18(%rsp)
movl %ecx, (%rax)
movsd 0x59ffa2(%rip), %xmm0   # 0x5f9b20
movsd %xmm0, 0x88(%rsp)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x59ff88(%rip)    # 0x5f9b20
movsd 0x59ff88(%rip), %xmm0   # 0x5f9b28
movsd %xmm0, 0x80(%rsp)
movq %rax, 0x59ff78(%rip)    # 0x5f9b28
cmpl $0x3, %esi
jne 0x59be9
movq %r15, %rbp
leaq 0x59fb81(%rip), %r15    # 0x5f9740
xorl %edi, %edi
xorl %esi, %esi
callq *0x80(%r15)
movl $0xbf800000, 0x59fdf4(%rip) # imm = 0xBF800000
movl $0xb71, %edi            # imm = 0xB71
callq *0x48(%r15)
movsd 0x1aef2(%rip), %xmm12   # 0x74ad8
movq %rbp, %r15
movl $0x24, %r10d
movb 0x1c8(%rsp), %sil
testb $0x40, %sil
jne 0x59c1c
movl $0x25, %r10d
testb $0x1, %sil
je 0x59c1c
movl (%rsp), %eax
andl $0x20, %eax
cmpl $0x1, %eax
movl $0x27, %r10d
sbbl $0x0, %r10d
movswq (%r15), %rax
leaq 0x3b53f9(%rip), %rcx    # 0x40f020
leaq 0x3a6bb2(%rip), %rdx    # 0x4007e0
movswl (%rdx,%rax,2), %r8d
movswl (%rcx,%rax,2), %ebp
testb $0x10, %sil
jne 0x59c6b
leaq 0x1dfe1c(%rip), %rcx    # 0x239a60
movl (%rcx,%rax,4), %eax
movl %eax, %ecx
shrl $0x8, %ecx
movsbl %cl, %ecx
movl %ebp, %edx
sarl %edx
addl %ecx, %edx
shrl $0x10, %eax
movsbl %al, %ecx
movl %r8d, %eax
sarl %eax
addl %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
jmp 0x59c71
xorpd %xmm0, %xmm0
xorl %eax, %eax
movl 0x1e8(%rsp), %ecx
movl 0x1e0(%rsp), %r9d
movl 0x1d0(%rsp), %edx
movl %r8d, %r11d
subl %eax, %r11d
testb $0x4, %sil
cmovel %eax, %r11d
testb $0x2, %sil
jne 0x59ca4
movl (%rsp), %r13d
jmp 0x59e54
leaq 0x3bbfc5(%rip), %rax    # 0x415c70
movl (%rax), %eax
testb $0x8, %sil
jne 0x59cff
movq %r15, %rcx
leal (%r9,%rdx), %r15d
shll $0xf, %r15d
addl $0x10000, %r15d         # imm = 0x10000
addl $0xff600000, %r12d      # imm = 0xFF600000
testl %eax, %eax
je 0x59d4f
movl 0x18(%rsp), %eax
shll $0x10, %eax
leaq 0x3bbf9a(%rip), %rdx    # 0x415c78
movslq (%rdx), %rdx
imulq $0xc8, %rdx, %rsi
movslq %r12d, %rdx
cltq
imulq %rdx, %rax
cqto
idivq %rsi
leaq 0x3db8a3(%rip), %rdx    # 0x4355a0
jmp 0x59d7d
movl %r10d, 0x3c(%rsp)
movq %r15, %rcx
testl %eax, %eax
je 0x59db1
movl (%r13), %edx
shll $0x10, %edx
leaq 0x3ad2cb(%rip), %rax    # 0x406fe8
movslq (%rax), %rax
leaq 0x3bbf51(%rip), %rsi    # 0x415c78
movslq (%rsi), %rsi
imulq $0xc8, %rsi, %rdi
movslq %edx, %r10
imulq %r10, %rax
cqto
idivq %rdi
movq %rax, %rsi
leaq 0x3ad2a5(%rip), %rax    # 0x406fec
movl (%rax), %r15d
jmp 0x59def
movslq 0x10(%rsp), %rdx
movslq %r12d, %rax
imulq %rdx, %rax
movabsq $0x6666666666666667, %rdx # imm = 0x6666666666666667
imulq %rdx
movq %rdx, %rax
shrq $0x3f, %rdx
sarq $0x7, %rax
addq %rdx, %rax
leaq 0x220d1b(%rip), %rdx    # 0x27aa98
movl (%rsp), %r13d
addl %eax, %r15d
movslq (%rdx), %rsi
movl 0x1e8(%rsp), %eax
movl 0x1d8(%rsp), %edx
addl %edx, %eax
shll $0xf, %eax
addl $0x10000, %eax          # imm = 0x10000
addl $0xff9c0000, %ebx       # imm = 0xFF9C0000
movslq %ebx, %rbx
imulq %rsi, %rbx
jmp 0x59e33
leaq 0x3ad234(%rip), %rax    # 0x406fec
movl (%rax), %r15d
leaq 0x3ad226(%rip), %rax    # 0x406fe8
movslq (%rax), %rax
movslq %r15d, %r10
imulq %r10, %rax
movabsq $0x6666666666666667, %rdx # imm = 0x6666666666666667
imulq %rdx
movq %rdx, %rsi
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x7, %rsi
addq %rax, %rsi
movl $0x140, %edi            # imm = 0x140
shll $0xf, %r15d
addl $0xff600000, %r12d      # imm = 0xFF600000
movslq %r12d, %rax
imulq %r10, %rax
cqto
idivq %rdi
movl $0x8000, %edx           # imm = 0x8000
addl %edx, %r15d
addl %eax, %r15d
movl (%r13), %eax
shll $0xf, %eax
addl %edx, %eax
addl $0xff9c0000, %ebx       # imm = 0xFF9C0000
movslq %ebx, %rdx
movslq %esi, %rbx
imulq %rdx, %rbx
movl 0x3c(%rsp), %r10d
movl (%rsp), %r13d
shrq $0x10, %rbx
addl %eax, %ebx
movslq %r14d, %rax
movslq %esi, %r14
imulq %rax, %r14
shrq $0x10, %r14
movl %r15d, %r12d
movq %rcx, %r15
movl 0x1e8(%rsp), %ecx
xorps %xmm1, %xmm1
cvtsi2sd %r14d, %xmm1
mulsd 0x1f5c4(%rip), %xmm1    # 0x79428
movzwl 0x20(%rsp), %eax
leal 0x200(%rax), %edx
movl $0x7ff, %esi            # imm = 0x7FF
andl %esi, %edx
leaq 0x373ed3(%rip), %rdi    # 0x3cdd50
movswl (%rdi,%rdx,2), %edx
cvtsi2sd %edx, %xmm4
mulsd %xmm1, %xmm4
andl %esi, %eax
movswl (%rdi,%rax,2), %eax
cvtsi2sd %eax, %xmm2
mulsd %xmm1, %xmm2
andl $0xa, %r13d
movapd %xmm4, %xmm1
movapd %xmm2, %xmm7
cmpl $0x8, %r13d
je 0x59ecb
leaq 0x302a08(%rip), %rax    # 0x35c8b8
xorps %xmm7, %xmm7
cvtsi2sdl (%rax), %xmm7
mulsd 0x1a0d9(%rip), %xmm7    # 0x73f98
movapd %xmm4, %xmm1
mulsd %xmm7, %xmm1
mulsd %xmm2, %xmm7
xorl %eax, %eax
cvtsi2sd %r12d, %xmm5
movsd 0x1a0be(%rip), %xmm6    # 0x73f98
mulsd %xmm6, %xmm5
movapd %xmm0, %xmm3
mulsd %xmm1, %xmm3
subsd %xmm3, %xmm5
cvtsi2sd %r11d, %xmm8
movapd %xmm8, %xmm3
mulsd %xmm7, %xmm3
addsd %xmm5, %xmm3
movsd %xmm3, 0x40(%rsp)
xorps %xmm5, %xmm5
cvtsi2sd %ebx, %xmm5
mulsd %xmm6, %xmm5
mulsd %xmm2, %xmm0
subsd %xmm0, %xmm5
mulsd %xmm4, %xmm8
subsd %xmm8, %xmm5
movsd %xmm5, 0xc0(%rsp)
xorps %xmm6, %xmm6
cvtsi2sd %ebp, %xmm6
mulsd %xmm6, %xmm1
addsd %xmm3, %xmm1
movsd %xmm1, 0x48(%rsp)
mulsd %xmm6, %xmm2
addsd %xmm5, %xmm2
movsd %xmm2, 0xc8(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %r8d, %xmm0
mulsd %xmm0, %xmm7
movapd %xmm3, %xmm8
subsd %xmm7, %xmm8
movsd %xmm8, 0x58(%rsp)
mulsd %xmm0, %xmm4
addsd %xmm5, %xmm4
movsd %xmm4, 0xd8(%rsp)
movapd %xmm1, %xmm7
addsd %xmm8, %xmm7
subsd %xmm3, %xmm7
movsd %xmm7, 0x50(%rsp)
movapd %xmm2, %xmm7
addsd %xmm4, %xmm7
subsd %xmm5, %xmm7
movsd %xmm7, 0xd0(%rsp)
movq %rax, 0x59fba5(%rip)    # 0x5f9b50
movq %rax, 0x59fba6(%rip)    # 0x5f9b58
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x59fb9d(%rip)    # 0x5f9b60
movapd %xmm2, %xmm7
subsd %xmm4, %xmm7
subsd %xmm5, %xmm4
movapd %xmm4, %xmm9
mulsd %xmm1, %xmm9
mulsd %xmm3, %xmm7
addsd %xmm9, %xmm7
movapd %xmm5, %xmm9
subsd %xmm2, %xmm9
movapd %xmm3, %xmm10
subsd %xmm8, %xmm10
mulsd %xmm9, %xmm8
addsd %xmm7, %xmm8
divsd %xmm8, %xmm12
addsd 0x1f43b(%rip), %xmm6    # 0x79448
mulsd %xmm6, %xmm4
mulsd %xmm12, %xmm4
movsd %xmm4, 0x59fb4a(%rip)   # 0x5f9b68
mulsd %xmm10, %xmm6
mulsd %xmm12, %xmm6
movsd %xmm6, 0x59fb40(%rip)   # 0x5f9b70
movapd 0x1cd08(%rip), %xmm7    # 0x76d40
movapd %xmm3, %xmm8
xorpd %xmm7, %xmm8
mulsd %xmm3, %xmm4
xorpd %xmm10, %xmm10
xorpd %xmm11, %xmm11
subsd %xmm4, %xmm11
xorpd %xmm5, %xmm7
mulsd %xmm5, %xmm6
subsd %xmm6, %xmm11
movsd %xmm11, 0x59fb0d(%rip)  # 0x5f9b78
testb $0x4, 0x1c8(%rsp)
movl 0x1d0(%rsp), %eax
addsd 0x1f3c6(%rip), %xmm0    # 0x79448
jne 0x5a0bc
mulsd %xmm0, %xmm9
mulsd %xmm12, %xmm9
movsd %xmm9, 0x59fae9(%rip)   # 0x5f9b80
subsd %xmm3, %xmm1
mulsd %xmm0, %xmm1
mulsd %xmm12, %xmm1
movsd %xmm1, 0x59fadc(%rip)   # 0x5f9b88
mulsd %xmm9, %xmm8
addsd %xmm10, %xmm8
mulsd %xmm1, %xmm7
jmp 0x5a0f4
subsd %xmm5, %xmm2
mulsd %xmm0, %xmm2
mulsd %xmm12, %xmm2
movsd %xmm2, 0x59faaf(%rip)   # 0x5f9b80
subsd %xmm1, %xmm3
mulsd %xmm0, %xmm3
mulsd %xmm12, %xmm3
movsd %xmm3, 0x59faa2(%rip)   # 0x5f9b88
mulsd %xmm2, %xmm8
addsd %xmm0, %xmm8
mulsd %xmm3, %xmm7
addsd %xmm8, %xmm7
movsd %xmm7, 0x59fa8f(%rip)   # 0x5f9b90
incl %r9d
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %r9d, %xmm1
xorl %edx, %edx
xorpd %xmm2, %xmm2
xorl %eax, %eax
xorl %esi, %esi
movl %esi, %edi
leal 0x1(%rdi), %esi
cmpl $0x4, %esi
cmovel %edx, %esi
movslq %edi, %r8
movsd 0x40(%rsp,%r8,8), %xmm3
ucomisd %xmm0, %xmm3
jb 0x5a15e
ucomisd %xmm3, %xmm1
jb 0x5a15e
cltq
movsd %xmm3, 0x100(%rsp,%rax,8)
movsd 0xc0(%rsp,%r8,8), %xmm4
movsd %xmm4, 0x140(%rsp,%rax,8)
incl %eax
movslq %esi, %r9
movsd 0x40(%rsp,%r9,8), %xmm4
subsd %xmm3, %xmm4
movapd %xmm4, %xmm5
cmplesd %xmm2, %xmm5
movapd %xmm5, %xmm6
andpd %xmm1, %xmm6
movapd %xmm5, %xmm7
andnpd %xmm0, %xmm7
orpd %xmm6, %xmm7
movapd %xmm7, %xmm6
subsd %xmm3, %xmm6
movapd %xmm6, %xmm8
cmpnltpd %xmm2, %xmm8
movapd %xmm6, %xmm9
cmpltpd %xmm4, %xmm9
xorpd %xmm8, %xmm9
movd %xmm9, %edi
testb $0x1, %dil
jne 0x5a1f3
cltq
movsd %xmm7, 0x100(%rsp,%rax,8)
movsd 0xc0(%rsp,%r9,8), %xmm7
movsd 0xc0(%rsp,%r8,8), %xmm8
subsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
divsd %xmm4, %xmm6
addsd %xmm8, %xmm6
movsd %xmm6, 0x140(%rsp,%rax,8)
incl %eax
movapd %xmm5, %xmm6
andpd %xmm0, %xmm6
andnpd %xmm1, %xmm5
orpd %xmm6, %xmm5
movapd %xmm5, %xmm6
subsd %xmm3, %xmm6
movapd %xmm6, %xmm3
cmpnltpd %xmm2, %xmm3
movapd %xmm6, %xmm7
cmpltpd %xmm4, %xmm7
xorpd %xmm3, %xmm7
movd %xmm7, %edi
testb $0x1, %dil
jne 0x5a265
cltq
movsd %xmm5, 0x100(%rsp,%rax,8)
movsd 0xc0(%rsp,%r9,8), %xmm3
movsd 0xc0(%rsp,%r8,8), %xmm5
subsd %xmm5, %xmm3
mulsd %xmm3, %xmm6
divsd %xmm4, %xmm6
addsd %xmm5, %xmm6
movsd %xmm6, 0x140(%rsp,%rax,8)
incl %eax
testl %esi, %esi
jne 0x5a11d
cmpl $0x3, %eax
jl 0x5a3f9
incl %ecx
movl 0x1d8(%rsp), %edx
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %ecx, %xmm1
xorl %esi, %esi
xorpd %xmm2, %xmm2
xorl %edx, %edx
xorl %edi, %edi
movl %edi, %ecx
leal 0x1(%rcx), %edi
cmpl %eax, %edi
cmovel %esi, %edi
movslq %ecx, %r8
movsd 0x140(%rsp,%r8,8), %xmm3
ucomisd %xmm0, %xmm3
jb 0x5a2d8
ucomisd %xmm3, %xmm1
jb 0x5a2d8
movslq %edx, %rdx
movsd %xmm3, 0xc0(%rsp,%rdx,8)
movsd 0x100(%rsp,%r8,8), %xmm4
movsd %xmm4, 0x40(%rsp,%rdx,8)
incl %edx
movslq %edi, %r9
movsd 0x140(%rsp,%r9,8), %xmm4
subsd %xmm3, %xmm4
movapd %xmm4, %xmm5
cmplesd %xmm2, %xmm5
movapd %xmm5, %xmm6
andpd %xmm1, %xmm6
movapd %xmm5, %xmm7
andnpd %xmm0, %xmm7
orpd %xmm6, %xmm7
movapd %xmm7, %xmm6
subsd %xmm3, %xmm6
movapd %xmm6, %xmm8
cmpnltpd %xmm2, %xmm8
movapd %xmm6, %xmm9
cmpltpd %xmm4, %xmm9
xorpd %xmm8, %xmm9
movd %xmm9, %ecx
testb $0x1, %cl
jne 0x5a36d
movslq %edx, %rdx
movsd %xmm7, 0xc0(%rsp,%rdx,8)
movsd 0x100(%rsp,%r9,8), %xmm7
movsd 0x100(%rsp,%r8,8), %xmm8
subsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
divsd %xmm4, %xmm6
addsd %xmm8, %xmm6
movsd %xmm6, 0x40(%rsp,%rdx,8)
incl %edx
movapd %xmm5, %xmm6
andpd %xmm0, %xmm6
andnpd %xmm1, %xmm5
orpd %xmm6, %xmm5
movapd %xmm5, %xmm6
subsd %xmm3, %xmm6
movapd %xmm6, %xmm3
cmpnltpd %xmm2, %xmm3
movapd %xmm6, %xmm7
cmpltpd %xmm4, %xmm7
xorpd %xmm3, %xmm7
movd %xmm7, %ecx
testb $0x1, %cl
jne 0x5a3dc
movslq %edx, %rdx
movsd %xmm5, 0xc0(%rsp,%rdx,8)
movsd 0x100(%rsp,%r9,8), %xmm3
movsd 0x100(%rsp,%r8,8), %xmm5
subsd %xmm5, %xmm3
mulsd %xmm3, %xmm6
divsd %xmm4, %xmm6
addsd %xmm5, %xmm6
movsd %xmm6, 0x40(%rsp,%rdx,8)
incl %edx
testl %edi, %edi
jne 0x5a297
leaq 0x40(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
movl %r10d, %ecx
callq 0x4e9e3
movzwl 0xc(%rsp), %eax
movw %ax, (%r15)
leaq 0x3b9423(%rip), %rax    # 0x41382c
movl 0x30(%rsp), %ecx
movl %ecx, (%rax)
leaq 0x3b4bee(%rip), %rax    # 0x40f004
movl 0x8(%rsp), %ecx
movl %ecx, (%rax)
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x59f706(%rip)   # 0x5f9b30
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, 0x59f76d(%rip)   # 0x5f9ba8
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x59f754(%rip)   # 0x5f9ba0
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x59f6db(%rip)   # 0x5f9b38
leaq 0x37c32c(%rip), %rax    # 0x3d6790
movq 0xa0(%rsp), %rcx
movq %rcx, (%rax)
leaq 0x493ba(%rip), %rax     # 0xa3830
movl 0x10(%rsp), %ecx
movl %ecx, (%rax)
leaq 0x220611(%rip), %rax    # 0x27aa94
movl 0x18(%rsp), %ecx
movl %ecx, (%rax)
movsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x59f686(%rip)   # 0x5f9b20
movsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x59f695(%rip)   # 0x5f9b40
movsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x59f66c(%rip)   # 0x5f9b28
movsd 0x90(%rsp), %xmm0
movsd %xmm0, 0x59f67b(%rip)   # 0x5f9b48
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl %r15d, %r12d
jmp 0x5a611
leaq 0x3b4b32(%rip), %rsi    # 0x40f020
movswl (%rsi,%rdi,2), %r10d
leaq 0x3a62e6(%rip), %rsi    # 0x4007e0
movswl (%rsi,%rdi,2), %esi
leaq 0x1df55b(%rip), %r11    # 0x239a60
movl (%r11,%rdi,4), %edi
movl %edi, %r11d
shrl $0x8, %r11d
movsbl %r11b, %r11d
sarl %r10d
addl %r11d, %r10d
shrl $0x10, %edi
movsbl %dil, %edi
sarl %esi
addl %edi, %esi
movl %r13d, %edi
andl $0xa, %edi
movapd %xmm4, %xmm7
movapd %xmm5, %xmm6
cmpl $0x8, %edi
movl %r15d, %r12d
je 0x5a55d
leaq 0x302376(%rip), %rdi    # 0x35c8b8
xorps %xmm6, %xmm6
cvtsi2sdl (%rdi), %xmm6
mulsd 0x19a47(%rip), %xmm6    # 0x73f98
movapd %xmm4, %xmm7
mulsd %xmm6, %xmm7
mulsd %xmm5, %xmm6
cvtsi2sd %r10d, %xmm8
movapd 0x1c7d5(%rip), %xmm9    # 0x76d40
xorpd %xmm8, %xmm9
cvtsi2sd %esi, %xmm10
mulsd %xmm10, %xmm6
mulsd %xmm8, %xmm7
subsd %xmm7, %xmm6
addsd %xmm6, %xmm3
mulsd %xmm10, %xmm4
mulsd %xmm5, %xmm9
subsd %xmm4, %xmm9
addsd %xmm9, %xmm2
movb 0x1c8(%rsp), %sil
testb $0x2, %sil
jne 0x5a5e9
leaq 0x3aca3c(%rip), %rsi    # 0x406fec
movl (%rsi), %esi
shll $0xf, %esi
xorps %xmm4, %xmm4
cvtsi2sd %esi, %xmm4
divsd %xmm4, %xmm3
movsd 0x1ee68(%rip), %xmm4    # 0x79430
addsd %xmm4, %xmm3
leaq 0x3aca1d(%rip), %rsi    # 0x406ff0
movl (%rsi), %esi
shll $0xf, %esi
xorps %xmm5, %xmm5
cvtsi2sd %esi, %xmm5
addsd %xmm3, %xmm1
divsd %xmm5, %xmm2
jmp 0x5a609
divsd 0x1b947(%rip), %xmm3    # 0x75f38
movsd 0x1ee37(%rip), %xmm4    # 0x79430
addsd %xmm4, %xmm3
addsd %xmm3, %xmm1
divsd 0x1ee2f(%rip), %xmm2    # 0x79438
addsd %xmm4, %xmm2
addsd %xmm2, %xmm0
xorps %xmm2, %xmm2
cvtss2sd 0x8(%rbp), %xmm2
leaq 0x373710(%rip), %rsi    # 0x3cdd30
addw (%rsi), %dx
movl 0x1f0(%rsp), %esi
movw %dx, 0x5c(%rsp)
movw $0x2020, 0x54(%rsp)     # imm = 0x2020
testl %ecx, %ecx
je 0x5a647
movaps 0x1c6ff(%rip), %xmm3    # 0x76d40
xorps %xmm3, %xmm1
xorps %xmm3, %xmm0
movsd 0x59f361(%rip), %xmm4   # 0x5f99b0
movsd 0x59f369(%rip), %xmm3   # 0x5f99c0
movaps %xmm1, %xmm5
mulsd %xmm3, %xmm5
mulsd %xmm4, %xmm1
mulsd %xmm2, %xmm4
subsd %xmm5, %xmm4
leaq 0x1df3df(%rip), %rdx    # 0x239a50
xorps %xmm5, %xmm5
cvtsi2sdl (%rdx), %xmm5
movsd 0x1b8a8(%rip), %xmm6    # 0x75f28
mulsd %xmm6, %xmm4
addsd %xmm5, %xmm4
cvttsd2si %xmm4, %edx
movl %edx, 0x40(%rsp)
mulsd %xmm2, %xmm3
leaq 0x1df3b9(%rip), %rdx    # 0x239a54
xorps %xmm2, %xmm2
cvtsi2sdl (%rdx), %xmm2
addsd %xmm1, %xmm3
mulsd %xmm6, %xmm3
addsd %xmm2, %xmm3
leaq 0x2103ab(%rip), %rdx    # 0x26aa60
xorps %xmm1, %xmm1
cvtsi2sdl (%rdx), %xmm1
cvttsd2si %xmm3, %edx
movl %edx, 0x44(%rsp)
mulsd %xmm6, %xmm0
mulsd 0x1ed70(%rip), %xmm0    # 0x79440
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %edx
movl %edx, 0x48(%rsp)
movw %r8w, 0x4e(%rsp)
movb %r9b, 0x50(%rsp)
movb %al, 0x51(%rsp)
addl $0x4000, %esi           # imm = 0x4000
movw %si, 0x5e(%rsp)
movl %r13d, %eax
shll $0x4, %eax
orl %r13d, %eax
andl $0x201, %eax            # imm = 0x201
leal (%rax,%rcx,2), %eax
leaq 0x3b48f2(%rip), %rcx    # 0x40f000
movl %eax, (%rcx)
andl $0xa, %r13d
leaq 0x59f025(%rip), %rbx    # 0x5f9740
movq 0x80(%rbx), %rax
cmpl $0x2, %r13d
jne 0x5a764
leaq 0x376641(%rip), %rcx    # 0x3d0d70
movl (%rcx), %edi
leaq 0x488fc(%rip), %rdx     # 0xa3034
leaq 0x3ac8a5(%rip), %rcx    # 0x406fe4
movl (%rcx), %ecx
movl %ecx, %esi
notl %esi
addl (%rdx), %esi
leaq 0x3ac892(%rip), %rdx    # 0x406fe0
movl (%rdx), %edx
subl %edi, %edx
incl %edx
leaq 0x378425(%rip), %r8     # 0x3d2b80
subl (%r8), %ecx
incl %ecx
callq *%rax
jmp 0x5a786
leaq 0x3ac881(%rip), %rcx    # 0x406fec
movl (%rcx), %edx
leaq 0x3ac87c(%rip), %rcx    # 0x406ff0
movl (%rcx), %ecx
xorl %edi, %edi
xorl %esi, %esi
callq *%rax
movl $0xbf800000, 0x59f242(%rip) # imm = 0xBF800000
testb $0x8, 0xe(%rbp)
jne 0x5a7b6
movl $0xb71, %edi            # imm = 0xB71
callq *0x40(%rbx)
leaq 0x3c76f1(%rip), %rax    # 0x421e8c
movl (%rax), %eax
cmpl %eax, 0x5a3435(%rip)    # 0x5fdbd8
je 0x5a7c1
movl %eax, 0x5a342d(%rip)    # 0x5fdbd8
addq $0x8, %rbx
movl $0x100, %edi            # imm = 0x100
jmp 0x5a7bf
addq $0x48, %rbx
movl $0xb71, %edi            # imm = 0xB71
callq *(%rbx)
xorl %esi, %esi
cmpl $0x2, %r13d
setne %sil
leaq 0x40(%rsp), %rdi
callq 0x61a37
leaq 0x374574(%rip), %rax    # 0x3ced50
movl 0x28(%rsp), %ecx
movl %ecx, (%rax)
movss 0x8(%rsp), %xmm0
movss %xmm0, 0x59f18c(%rip)   # 0x5f997c
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x5a33c2(%rip)   # 0x5fdbc0
movl %r12d, (%r14)
leaq 0x3b47fc(%rip), %rax    # 0x40f004
movl 0xc(%rsp), %ecx
movl %ecx, (%rax)
movsd (%rsp), %xmm0
movsd %xmm0, 0x59f305(%rip)   # 0x5f9b20
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x59f317(%rip)   # 0x5f9b40
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x59f2f1(%rip)   # 0x5f9b28
movsd 0x20(%rsp), %xmm0
jmp 0x5a4c5