// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/polymost.c
// Function: polymost_drawrooms
void polymost_drawrooms (void)
{
	int i, j, n, n2, closest;
	double ox, oy, oz, ox2, oy2, oz2, r, px[6], py[6], pz[6], px2[6], py2[6], pz2[6], sx[6], sy[6];
	static unsigned char tempbuf[MAXWALLS];

	if (!rendmode) return;

	frameoffset = frameplace + windowy1*bytesperline + windowx1;

#if USE_OPENGL
	if (rendmode == 3)
	{
		resizeglcheck();

		//glfunc.glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
		glfunc.glEnable(GL_DEPTH_TEST);
		glfunc.glDepthFunc(GL_ALWAYS); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS

		//glfunc.glPolygonOffset(1,1); //Supposed to make sprites pasted on walls or floors not disappear
#if (USE_OPENGL == USE_GLES2)
		glfunc.glDepthRangef(0.00001f,1.f); //<- this is more widely supported than glPolygonOffset
#else
		glfunc.glDepthRange(0.00001,1.0); //<- this is more widely supported than glPolygonOffset
#endif

		 //Enable this for OpenGL red-blue glasses mode :)
		if (glredbluemode)
		{
			static int grbfcnt = 0; grbfcnt++;
			if (redblueclearcnt < numpages) { redblueclearcnt++; glfunc.glColorMask(1,1,1,1); glfunc.glClear(GL_COLOR_BUFFER_BIT); }
			if (grbfcnt&1)
			{
				glfunc.glViewport(windowx1-16,yres-(windowy2+1),windowx2-(windowx1-16)+1,windowy2-windowy1+1);
				glfunc.glColorMask(1,0,0,1);
				globalposx += singlobalang/1024;
				globalposy -= cosglobalang/1024;
			}
			else
			{
				glfunc.glViewport(windowx1,yres-(windowy2+1),windowx2+16-windowx1+1,windowy2-windowy1+1);
				glfunc.glColorMask(0,1,1,1);
				globalposx -= singlobalang/1024;
				globalposy += cosglobalang/1024;
			}
		}
	}
#endif

		//Polymost supports true look up/down :) Here, we convert horizon to angle.
		//gchang&gshang are cos&sin of this angle (respectively)
	gyxscale = ((double)xdimenscale)/131072.0;
	gxyaspect = ((double)xyaspect*(double)viewingrange)*(5.0/(65536.0*262144.0));
	gviewxrange = ((double)viewingrange)*((double)xdimen)/(32768.0*1024.0);
	gcosang = ((double)cosglobalang)/262144.0;
	gsinang = ((double)singlobalang)/262144.0;
	gcosang2 = gcosang*((double)viewingrange)/65536.0;
	gsinang2 = gsinang*((double)viewingrange)/65536.0;
	ghalfx = (double)halfxdimen; grhalfxdown10 = 1.0/(((double)ghalfx)*1024);
	ghoriz = (double)globalhoriz;

	gvisibility = ((float)globalvisibility)*gxyaspect*FOGSCALE;

		//global cos/sin height angle
	r = (double)((ydimen>>1)-ghoriz);
	gshang = r/sqrt(r*r+ghalfx*ghalfx);
	gchang = sqrt(1.0-gshang*gshang);
	ghoriz = (double)(ydimen>>1);

	  //global cos/sin tilt angle
	gctang = cos(gtang);
	gstang = sin(gtang);
	if (fabs(gstang) < .001) //This hack avoids nasty precision bugs in domost()
		{ gstang = 0; if (gctang > 0) gctang = 1.0; else gctang = -1.0; }

	if (inpreparemirror)
		gstang = -gstang;

		//Generate viewport trapezoid (for handling screen up/down)
	px[0] = px[3] = 0-1; px[1] = px[2] = windowx2+1-windowx1+2;
	py[0] = py[1] = 0-1; py[2] = py[3] = windowy2+1-windowy1+2; n = 4;
	for(i=0;i<n;i++)
	{
		ox = px[i]-ghalfx; oy = py[i]-ghoriz; oz = ghalfx;

			//Tilt rotation (backwards)
		ox2 = ox*gctang + oy*gstang;
		oy2 = oy*gctang - ox*gstang;
		oz2 = oz;

			//Up/down rotation (backwards)
		px[i] = ox2;
		py[i] = oy2*gchang + oz2*gshang;
		pz[i] = oz2*gchang - oy2*gshang;
	}

		//Clip to SCISDIST plane
	n2 = 0;
	for(i=0;i<n;i++)
	{
		j = i+1; if (j >= n) j = 0;
		if (pz[i] >= SCISDIST) { px2[n2] = px[i]; py2[n2] = py[i]; pz2[n2] = pz[i]; n2++; }
		if ((pz[i] >= SCISDIST) != (pz[j] >= SCISDIST))
		{
			r = (SCISDIST-pz[i])/(pz[j]-pz[i]);
			px2[n2] = (px[j]-px[i])*r + px[i];
			py2[n2] = (py[j]-py[i])*r + py[i];
			pz2[n2] = SCISDIST; n2++;
		}
	}
	if (n2 < 3) return;
	for(i=0;i<n2;i++)
	{
		r = ghalfx / pz2[i];
		sx[i] = px2[i]*r + ghalfx;
		sy[i] = py2[i]*r + ghoriz;
	}
	initmosts(sx,sy,n2);

	if (searchit == 2)
	{
		short hitsect, hitwall, hitsprite;
		int vx, vy, vz, hitx, hity, hitz;

		ox2 = searchx-ghalfx; oy2 = searchy-ghoriz; oz2 = ghalfx;

			//Tilt rotation
		ox = ox2*gctang + oy2*gstang;
		oy = oy2*gctang - ox2*gstang;
		oz = oz2;

			//Up/down rotation
		ox2 = oz*gchang - oy*gshang;
		oy2 = ox;
		oz2 = oy*gchang + oz*gshang;

			//Standard Left/right rotation
		vx = (int)(ox2*((float)cosglobalang) - oy2*((float)singlobalang));
		vy = (int)(ox2*((float)singlobalang) + oy2*((float)cosglobalang));
		vz = (int)(oz2*16384.0);

		hitallsprites = 1;
		hitscan(globalposx,globalposy,globalposz,globalcursectnum, //Start position
			vx>>12,vy>>12,vz>>8,&hitsect,&hitwall,&hitsprite,&hitx,&hity,&hitz,0xffff0030);
		hitallsprites = 0;

		searchsector = hitsect;
		if (hitwall >= 0)
		{
			searchwall = hitwall; searchstat = 0;
			if (wall[hitwall].nextwall >= 0)
			{
				int cz, fz;
				getzsofslope(wall[hitwall].nextsector,hitx,hity,&cz,&fz);
				if (hitz > fz)
				{
					if (wall[hitwall].cstat&2) //'2' bottoms of walls
						searchwall = wall[hitwall].nextwall;
				}
				else if ((hitz > cz) && (wall[hitwall].cstat&(16+32))) //masking or 1-way
					searchstat = 4;
			}
		}
		else if (hitsprite >= 0) { searchwall = hitsprite; searchstat = 3; }
		else
		{
			int cz, fz;
			getzsofslope(hitsect,hitx,hity,&cz,&fz);
			if ((hitz<<1) < cz+fz) searchstat = 1; else searchstat = 2;
			//if (vz < 0) searchstat = 1; else searchstat = 2; //Won't work for slopes :/
		}
		searchit = 0;
	}

	numscans = numbunches = 0;

	if (globalcursectnum >= MAXSECTORS)
		globalcursectnum -= MAXSECTORS;
	else
	{
		i = globalcursectnum;
		updatesector(globalposx,globalposy,&globalcursectnum);
		if (globalcursectnum < 0) globalcursectnum = i;
	}

	polymost_scansector(globalcursectnum);

	if (inpreparemirror)
	{
		grhalfxdown10x = -grhalfxdown10;
		inpreparemirror = 0;
		polymost_drawalls(0);
		numbunches--;
		bunchfirst[0] = bunchfirst[numbunches];
		bunchlast[0] = bunchlast[numbunches];
	}
	else
		grhalfxdown10x = grhalfxdown10;

	while (numbunches > 0)
	{
		memset(tempbuf,0,numbunches+3); tempbuf[0] = 1;

		closest = 0;              //Almost works, but not quite :(
		for(i=1;i<numbunches;i++)
		{
			j = polymost_bunchfront(i,closest); if (j < 0) continue;
			tempbuf[i] = 1;
			if (!j) { tempbuf[closest] = 1; closest = i; }
		}
		for(i=0;i<numbunches;i++) //Double-check
		{
			if (tempbuf[i]) continue;
			j = polymost_bunchfront(i,closest); if (j < 0) continue;
			tempbuf[i] = 1;
			if (!j) { tempbuf[closest] = 1; closest = i; i = 0; }
		}

		polymost_drawalls(closest);

		if (automapping)
		{
			for(j=bunchfirst[closest];j>=0;j=p2[j])
				show2dwall[thewall[j]>>3] |= pow2char[thewall[j]&7];
		}

		numbunches--;
		bunchfirst[closest] = bunchfirst[numbunches];
		bunchlast[closest] = bunchlast[numbunches];
	}
#if USE_OPENGL
	if (rendmode == 3)
	{
		glfunc.glDepthFunc(GL_LEQUAL); //NEVER,LESS,(,L)EQUAL,GREATER,(NOT,G)EQUAL,ALWAYS

		//glfunc.glPolygonOffset(0,0);
#if (USE_OPENGL == USE_GLES2)
		glfunc.glDepthRangef(0.f,0.99999f); //<- this is more widely supported than glPolygonOffset
#else
		glfunc.glDepthRange(0.0,0.99999); //<- this is more widely supported than glPolygonOffset
#endif
	}
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x250, %rsp            # imm = 0x250
cmpl $0x0, 0x574ef7(%rip)    # 0x5ed920
jne 0x78a30
jmp 0x79c4c
leaq 0x1421d9(%rip), %rax    # 0x1bac10
movq (%rax), %rcx
leaq 0x396d9f(%rip), %rax    # 0x40f7e0
movl (%rax), %eax
leaq 0x14239a(%rip), %rdx    # 0x1bade4
imull (%rdx), %eax
cltq
addq %rax, %rcx
leaq 0x3956f7(%rip), %rax    # 0x40e150
movslq (%rax), %rax
addq %rax, %rcx
leaq 0x399a8a(%rip), %rax    # 0x4124f0
movq %rcx, (%rax)
cmpl $0x3, 0x574eb0(%rip)    # 0x5ed920
jne 0x78cb3
callq 0x73190
movl $0xb71, %edi            # imm = 0xB71
leaq 0x574c89(%rip), %rax    # 0x5ed710
callq *0x40(%rax)
movl $0x207, %edi            # imm = 0x207
leaq 0x574c7a(%rip), %rax    # 0x5ed710
callq *0x98(%rax)
movsd 0x3d9c4(%rip), %xmm0    # 0xb6468
movsd 0x38f24(%rip), %xmm1    # 0xb19d0
leaq 0x574c5d(%rip), %rax    # 0x5ed710
callq *0xa8(%rax)
cmpl $0x0, 0x574e90(%rip)    # 0x5ed950
je 0x78cb1
movl 0x5790b4(%rip), %eax    # 0x5f1b80
addl $0x1, %eax
movl %eax, 0x5790ab(%rip)    # 0x5f1b80
movl 0x574f41(%rip), %eax    # 0x5eda1c
leaq 0x3e4bde(%rip), %rcx    # 0x45d6c0
cmpl (%rcx), %eax
jge 0x78b19
movl 0x574f30(%rip), %eax    # 0x5eda1c
addl $0x1, %eax
movl %eax, 0x574f27(%rip)    # 0x5eda1c
movl $0x1, %ecx
leaq 0x574c0f(%rip), %rax    # 0x5ed710
movl %ecx, %edi
movl %ecx, %esi
movl %ecx, %edx
callq *0x10(%rax)
movl $0x4000, %edi           # imm = 0x4000
leaq 0x574bfa(%rip), %rax    # 0x5ed710
callq *0x8(%rax)
movl 0x579061(%rip), %eax    # 0x5f1b80
andl $0x1, %eax
cmpl $0x0, %eax
je 0x78bf2
leaq 0x574bde(%rip), %rax    # 0x5ed710
movq 0x80(%rax), %rax
leaq 0x395610(%rip), %rcx    # 0x40e150
movl (%rcx), %edi
subl $0x10, %edi
leaq 0x678ac(%rip), %rcx     # 0xe03f8
movl (%rcx), %esi
leaq 0x3ca1ef(%rip), %rcx    # 0x442d44
movl (%rcx), %ecx
addl $0x1, %ecx
subl %ecx, %esi
leaq 0x3ca1dd(%rip), %rcx    # 0x442d40
movl (%rcx), %edx
leaq 0x3955e4(%rip), %rcx    # 0x40e150
movl (%rcx), %ecx
subl $0x10, %ecx
subl %ecx, %edx
addl $0x1, %edx
leaq 0x3ca1c7(%rip), %rcx    # 0x442d44
movl (%rcx), %ecx
leaq 0x396c5a(%rip), %r8     # 0x40f7e0
subl (%r8), %ecx
addl $0x1, %ecx
callq *%rax
movl $0x1, %ecx
xorl %edx, %edx
leaq 0x574b74(%rip), %rax    # 0x5ed710
movl %ecx, %edi
movl %edx, %esi
callq *0x10(%rax)
leaq 0x233a2e(%rip), %rax    # 0x2ac5d8
movl (%rax), %eax
movl $0x400, %ecx            # imm = 0x400
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x1fe9f3(%rip), %rax    # 0x2775b0
addl (%rax), %ecx
leaq 0x1fe9ea(%rip), %rax    # 0x2775b0
movl %ecx, (%rax)
leaq 0x233a01(%rip), %rax    # 0x2ac5d0
movl (%rax), %eax
movl $0x400, %ecx            # imm = 0x400
cltd
idivl %ecx
leaq 0x1fe9d4(%rip), %rcx    # 0x2775b4
movl (%rcx), %ecx
subl %eax, %ecx
leaq 0x1fe9c9(%rip), %rax    # 0x2775b4
movl %ecx, (%rax)
jmp 0x78caf
leaq 0x574b17(%rip), %rax    # 0x5ed710
movq 0x80(%rax), %rax
leaq 0x395549(%rip), %rcx    # 0x40e150
movl (%rcx), %edi
leaq 0x677e8(%rip), %rcx     # 0xe03f8
movl (%rcx), %esi
leaq 0x3ca12b(%rip), %rcx    # 0x442d44
movl (%rcx), %ecx
addl $0x1, %ecx
subl %ecx, %esi
leaq 0x3ca119(%rip), %rcx    # 0x442d40
movl (%rcx), %edx
addl $0x10, %edx
leaq 0x39551d(%rip), %rcx    # 0x40e150
subl (%rcx), %edx
addl $0x1, %edx
leaq 0x3ca105(%rip), %rcx    # 0x442d44
movl (%rcx), %ecx
leaq 0x396b98(%rip), %r8     # 0x40f7e0
subl (%r8), %ecx
addl $0x1, %ecx
callq *%rax
xorl %edi, %edi
movl $0x1, %ecx
leaq 0x574ab2(%rip), %rax    # 0x5ed710
movl %ecx, %esi
movl %ecx, %edx
callq *0x10(%rax)
leaq 0x23396c(%rip), %rax    # 0x2ac5d8
movl (%rax), %eax
movl $0x400, %ecx            # imm = 0x400
cltd
idivl %ecx
leaq 0x1fe933(%rip), %rcx    # 0x2775b0
movl (%rcx), %ecx
subl %eax, %ecx
leaq 0x1fe928(%rip), %rax    # 0x2775b0
movl %ecx, (%rax)
leaq 0x23393f(%rip), %rax    # 0x2ac5d0
movl (%rax), %eax
movl $0x400, %ecx            # imm = 0x400
cltd
idivl %ecx
movl %eax, %ecx
leaq 0x1fe910(%rip), %rax    # 0x2775b4
addl (%rax), %ecx
leaq 0x1fe907(%rip), %rax    # 0x2775b4
movl %ecx, (%rax)
jmp 0x78cb1
jmp 0x78cb3
leaq 0x23f93e(%rip), %rax    # 0x2b85f8
cvtsi2sdl (%rax), %xmm0
movsd 0x3d7d2(%rip), %xmm1    # 0xb6498
divsd %xmm1, %xmm0
movsd %xmm0, 0x578eb6(%rip)   # 0x5f1b88
leaq 0x32173f(%rip), %rax    # 0x39a418
cvtsi2sdl (%rax), %xmm0
leaq 0x393bcc(%rip), %rax    # 0x40c8b0
cvtsi2sdl (%rax), %xmm1
mulsd %xmm1, %xmm0
movsd 0x3d79c(%rip), %xmm1    # 0xb6490
mulsd %xmm1, %xmm0
movsd %xmm0, 0x578e90(%rip)   # 0x5f1b90
leaq 0x393ba9(%rip), %rax    # 0x40c8b0
cvtsi2sdl (%rax), %xmm0
leaq 0x6800e(%rip), %rax     # 0xe0d20
cvtsi2sdl (%rax), %xmm1
mulsd %xmm1, %xmm0
movsd 0x3d766(%rip), %xmm1    # 0xb6488
divsd %xmm1, %xmm0
movsd %xmm0, 0x578e6a(%rip)   # 0x5f1b98
leaq 0x23389b(%rip), %rax    # 0x2ac5d0
cvtsi2sdl (%rax), %xmm0
movsd 0x3d73f(%rip), %xmm1    # 0xb6480
divsd %xmm1, %xmm0
movsd %xmm0, 0x574c33(%rip)   # 0x5ed980
leaq 0x233884(%rip), %rax    # 0x2ac5d8
cvtsi2sdl (%rax), %xmm0
movsd 0x3d720(%rip), %xmm1    # 0xb6480
divsd %xmm1, %xmm0
movsd %xmm0, 0x574c24(%rip)   # 0x5ed990
movsd 0x574c0c(%rip), %xmm0   # 0x5ed980
leaq 0x393b35(%rip), %rax    # 0x40c8b0
cvtsi2sdl (%rax), %xmm1
mulsd %xmm1, %xmm0
movsd 0x38105(%rip), %xmm1    # 0xb0e90
divsd %xmm1, %xmm0
movsd %xmm0, 0x574be1(%rip)   # 0x5ed978
movsd 0x574bf1(%rip), %xmm0   # 0x5ed990
leaq 0x393b0a(%rip), %rax    # 0x40c8b0
cvtsi2sdl (%rax), %xmm1
mulsd %xmm1, %xmm0
movsd 0x380da(%rip), %xmm1    # 0xb0e90
divsd %xmm1, %xmm0
movsd %xmm0, 0x574bc6(%rip)   # 0x5ed988
leaq 0x3da8db(%rip), %rax    # 0x4536a4
cvtsi2sdl (%rax), %xmm0
movsd %xmm0, 0x574d2b(%rip)   # 0x5edb00
movsd 0x39f1b(%rip), %xmm1    # 0xb2cf8
mulsd 0x574d1b(%rip), %xmm1   # 0x5edb00
movsd 0x38be3(%rip), %xmm0    # 0xb19d0
divsd %xmm1, %xmm0
movsd %xmm0, 0x574d7f(%rip)   # 0x5edb78
leaq 0x23f7fc(%rip), %rax    # 0x2b85fc
cvtsi2sdl (%rax), %xmm0
movsd %xmm0, 0x574cfc(%rip)   # 0x5edb08
leaq 0x392a8d(%rip), %rax    # 0x40b8a0
cvtsi2ssl (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
mulsd 0x578d6d(%rip), %xmm0   # 0x5f1b90
movsd 0x3d64d(%rip), %xmm1    # 0xb6478
mulsd %xmm1, %xmm0
movsd %xmm0, 0x578d69(%rip)   # 0x5f1ba0
leaq 0x23f7b6(%rip), %rax    # 0x2b85f4
movl (%rax), %eax
sarl %eax
cvtsi2sd %eax, %xmm0
subsd 0x574cba(%rip), %xmm0   # 0x5edb08
movsd %xmm0, -0x70(%rbp)
movsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x228(%rbp)
movsd -0x70(%rbp), %xmm0
movsd -0x70(%rbp), %xmm2
movsd 0x574c8e(%rip), %xmm1   # 0x5edb00
mulsd 0x574c86(%rip), %xmm1   # 0x5edb00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x6460
movaps %xmm0, %xmm1
movsd -0x228(%rbp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x574c72(%rip)   # 0x5edb10
movsd 0x574c6a(%rip), %xmm0   # 0x5edb10
movsd 0x574c62(%rip), %xmm1   # 0x5edb10
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm1, %xmm0
movsd 0x38aff(%rip), %xmm1    # 0xb19d0
addsd %xmm1, %xmm0
callq 0x6460
movsd %xmm0, 0x574c0e(%rip)   # 0x5edaf0
leaq 0x23f70b(%rip), %rax    # 0x2b85f4
movl (%rax), %eax
sarl %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, 0x574c0f(%rip)   # 0x5edb08
movss 0x574a27(%rip), %xmm0   # 0x5ed928
cvtss2sd %xmm0, %xmm0
callq 0x6940
movsd %xmm0, 0x574be6(%rip)   # 0x5edaf8
movss 0x574a0e(%rip), %xmm0   # 0x5ed928
cvtss2sd %xmm0, %xmm0
callq 0x6360
movsd %xmm0, 0x574bed(%rip)   # 0x5edb18
movsd 0x574be5(%rip), %xmm1   # 0x5edb18
movaps 0x3c6e6(%rip), %xmm0    # 0xb5620
pand %xmm0, %xmm1
movsd 0x3d52a(%rip), %xmm0    # 0xb6470
ucomisd %xmm1, %xmm0
jbe 0x78f8c
xorps %xmm0, %xmm0
movsd %xmm0, 0x574bc1(%rip)   # 0x5edb18
movsd 0x574b99(%rip), %xmm0   # 0x5edaf8
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x78f7a
movsd 0x38a60(%rip), %xmm0    # 0xb19d0
movsd %xmm0, 0x574b80(%rip)   # 0x5edaf8
jmp 0x78f8a
movsd 0x39166(%rip), %xmm0    # 0xb20e8
movsd %xmm0, 0x574b6e(%rip)   # 0x5edaf8
jmp 0x78f8c
leaq 0x17c60b(%rip), %rax    # 0x1f559e
cmpb $0x0, (%rax)
je 0x78fbf
movsd 0x574b78(%rip), %xmm0   # 0x5edb18
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x574b59(%rip)   # 0x5edb18
movsd 0x39121(%rip), %xmm0    # 0xb20e8
movsd %xmm0, -0x88(%rbp)
movsd 0x39111(%rip), %xmm0    # 0xb20e8
movsd %xmm0, -0xa0(%rbp)
leaq 0x3c9d5a(%rip), %rax    # 0x442d40
movl (%rax), %eax
addl $0x1, %eax
leaq 0x39515e(%rip), %rcx    # 0x40e150
subl (%rcx), %eax
addl $0x2, %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x90(%rbp)
movsd %xmm0, -0x98(%rbp)
movsd 0x390d5(%rip), %xmm0    # 0xb20e8
movsd %xmm0, -0xc8(%rbp)
movsd 0x390c5(%rip), %xmm0    # 0xb20e8
movsd %xmm0, -0xd0(%rbp)
leaq 0x3c9d12(%rip), %rax    # 0x442d44
movl (%rax), %eax
addl $0x1, %eax
leaq 0x3967a2(%rip), %rcx    # 0x40f7e0
subl (%rcx), %eax
addl $0x2, %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd %xmm0, -0xc0(%rbp)
movl $0x4, -0x2c(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jge 0x791b6
movslq -0x24(%rbp), %rax
movsd -0xa0(%rbp,%rax,8), %xmm0
subsd 0x574a7a(%rip), %xmm0   # 0x5edb00
movsd %xmm0, -0x40(%rbp)
movslq -0x24(%rbp), %rax
movsd -0xd0(%rbp,%rax,8), %xmm0
subsd 0x574a68(%rip), %xmm0   # 0x5edb08
movsd %xmm0, -0x48(%rbp)
movsd 0x574a53(%rip), %xmm0   # 0x5edb00
movsd %xmm0, -0x50(%rbp)
movsd -0x40(%rbp), %xmm0
movsd 0x574a39(%rip), %xmm2   # 0x5edaf8
movsd -0x48(%rbp), %xmm1
mulsd 0x574a4c(%rip), %xmm1   # 0x5edb18
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x48(%rbp), %xmm0
movsd 0x574a12(%rip), %xmm2   # 0x5edaf8
movsd -0x40(%rbp), %xmm1
mulsd 0x574a25(%rip), %xmm1   # 0x5edb18
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x50(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x58(%rbp), %xmm0
movslq -0x24(%rbp), %rax
movsd %xmm0, -0xa0(%rbp,%rax,8)
movsd -0x60(%rbp), %xmm0
movsd 0x5749b0(%rip), %xmm2   # 0x5edaf0
movsd -0x68(%rbp), %xmm1
mulsd 0x5749c3(%rip), %xmm1   # 0x5edb10
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x24(%rbp), %rax
movsd %xmm0, -0xd0(%rbp,%rax,8)
movsd -0x68(%rbp), %xmm0
movsd 0x574981(%rip), %xmm2   # 0x5edaf0
movsd -0x60(%rbp), %xmm1
mulsd 0x574994(%rip), %xmm1   # 0x5edb10
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x24(%rbp), %rax
movsd %xmm0, -0x100(%rbp,%rax,8)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x79065
movl $0x0, -0x30(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jge 0x7938d
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jl 0x791e8
movl $0x0, -0x28(%rbp)
movslq -0x24(%rbp), %rax
movsd -0x100(%rbp,%rax,8), %xmm0
movsd 0x387d3(%rip), %xmm1    # 0xb19d0
ucomisd %xmm1, %xmm0
jb 0x7925a
movslq -0x24(%rbp), %rax
movsd -0xa0(%rbp,%rax,8), %xmm0
movslq -0x30(%rbp), %rax
movsd %xmm0, -0x130(%rbp,%rax,8)
movslq -0x24(%rbp), %rax
movsd -0xd0(%rbp,%rax,8), %xmm0
movslq -0x30(%rbp), %rax
movsd %xmm0, -0x160(%rbp,%rax,8)
movslq -0x24(%rbp), %rax
movsd -0x100(%rbp,%rax,8), %xmm0
movslq -0x30(%rbp), %rax
movsd %xmm0, -0x190(%rbp,%rax,8)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movslq -0x24(%rbp), %rax
movsd -0x100(%rbp,%rax,8), %xmm0
movsd 0x38761(%rip), %xmm1    # 0xb19d0
ucomisd %xmm1, %xmm0
setae %al
andb $0x1, %al
movzbl %al, %eax
movslq -0x28(%rbp), %rcx
movsd -0x100(%rbp,%rcx,8), %xmm0
movsd 0x38740(%rip), %xmm1    # 0xb19d0
ucomisd %xmm1, %xmm0
setae %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x7937d
movslq -0x24(%rbp), %rax
movsd 0x3871f(%rip), %xmm0    # 0xb19d0
subsd -0x100(%rbp,%rax,8), %xmm0
movslq -0x28(%rbp), %rax
movsd -0x100(%rbp,%rax,8), %xmm1
movslq -0x24(%rbp), %rax
subsd -0x100(%rbp,%rax,8), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
movslq -0x28(%rbp), %rax
movsd -0xa0(%rbp,%rax,8), %xmm0
movslq -0x24(%rbp), %rax
subsd -0xa0(%rbp,%rax,8), %xmm0
movsd -0x70(%rbp), %xmm2
movslq -0x24(%rbp), %rax
movsd -0xa0(%rbp,%rax,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x30(%rbp), %rax
movsd %xmm0, -0x130(%rbp,%rax,8)
movslq -0x28(%rbp), %rax
movsd -0xd0(%rbp,%rax,8), %xmm0
movslq -0x24(%rbp), %rax
subsd -0xd0(%rbp,%rax,8), %xmm0
movsd -0x70(%rbp), %xmm2
movslq -0x24(%rbp), %rax
movsd -0xd0(%rbp,%rax,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x30(%rbp), %rax
movsd %xmm0, -0x160(%rbp,%rax,8)
movslq -0x30(%rbp), %rax
movsd 0x38665(%rip), %xmm0    # 0xb19d0
movsd %xmm0, -0x190(%rbp,%rax,8)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x7937f
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x791c4
cmpl $0x3, -0x30(%rbp)
jge 0x79398
jmp 0x79c4c
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x79431
movsd 0x57474d(%rip), %xmm0   # 0x5edb00
movslq -0x24(%rbp), %rax
divsd -0x190(%rbp,%rax,8), %xmm0
movsd %xmm0, -0x70(%rbp)
movslq -0x24(%rbp), %rax
movsd -0x130(%rbp,%rax,8), %xmm0
movsd -0x70(%rbp), %xmm2
movsd 0x574721(%rip), %xmm1   # 0x5edb00
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x24(%rbp), %rax
movsd %xmm0, -0x1c0(%rbp,%rax,8)
movslq -0x24(%rbp), %rax
movsd -0x160(%rbp,%rax,8), %xmm0
movsd -0x70(%rbp), %xmm2
movsd 0x5746fa(%rip), %xmm1   # 0x5edb08
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x24(%rbp), %rax
movsd %xmm0, -0x1f0(%rbp,%rax,8)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x7939f
leaq -0x1c0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
movl -0x30(%rbp), %edx
callq 0x79c60
leaq 0x35c1e2(%rip), %rax    # 0x3d5630
movswl (%rax), %eax
cmpl $0x2, %eax
jne 0x798a9
leaq 0x67ccf(%rip), %rax     # 0xe1130
cvtsi2sdl (%rax), %xmm0
subsd 0x574693(%rip), %xmm0   # 0x5edb00
movsd %xmm0, -0x58(%rbp)
leaq 0x3da22f(%rip), %rax    # 0x4536a8
cvtsi2sdl (%rax), %xmm0
subsd 0x574683(%rip), %xmm0   # 0x5edb08
movsd %xmm0, -0x60(%rbp)
movsd 0x57466e(%rip), %xmm0   # 0x5edb00
movsd %xmm0, -0x68(%rbp)
movsd -0x58(%rbp), %xmm0
movsd 0x574654(%rip), %xmm2   # 0x5edaf8
movsd -0x60(%rbp), %xmm1
mulsd 0x574667(%rip), %xmm1   # 0x5edb18
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x60(%rbp), %xmm0
movsd 0x57462d(%rip), %xmm2   # 0x5edaf8
movsd -0x58(%rbp), %xmm1
mulsd 0x574640(%rip), %xmm1   # 0x5edb18
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movsd 0x5745dd(%rip), %xmm2   # 0x5edaf0
movsd -0x48(%rbp), %xmm1
mulsd 0x5745f0(%rip), %xmm1   # 0x5edb10
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x48(%rbp), %xmm0
movsd 0x574595(%rip), %xmm2   # 0x5edaf0
movsd -0x50(%rbp), %xmm1
mulsd 0x5745a8(%rip), %xmm1   # 0x5edb10
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x58(%rbp), %xmm0
leaq 0x23304f(%rip), %rax    # 0x2ac5d0
cvtsi2ssl (%rax), %xmm1
cvtss2sd %xmm1, %xmm2
movsd -0x60(%rbp), %xmm1
leaq 0x233043(%rip), %rax    # 0x2ac5d8
cvtsi2ssl (%rax), %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
cvttsd2si %xmm0, %eax
movl %eax, -0x1fc(%rbp)
movsd -0x58(%rbp), %xmm0
leaq 0x233002(%rip), %rax    # 0x2ac5d8
cvtsi2ssl (%rax), %xmm1
cvtss2sd %xmm1, %xmm2
movsd -0x60(%rbp), %xmm1
leaq 0x232fe6(%rip), %rax    # 0x2ac5d0
cvtsi2ssl (%rax), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x200(%rbp)
movsd 0x39700(%rip), %xmm0    # 0xb2d10
mulsd -0x68(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x204(%rbp)
leaq 0x17bf72(%rip), %rax    # 0x1f5598
movl $0x1, (%rax)
leaq 0x1fdf7d(%rip), %rax    # 0x2775b0
movl (%rax), %edi
leaq 0x1fdf78(%rip), %rax    # 0x2775b4
movl (%rax), %esi
leaq 0x22ef7b(%rip), %rax    # 0x2a85c0
movl (%rax), %edx
leaq 0x39225e(%rip), %rax    # 0x40b8ac
movw (%rax), %cx
movl -0x1fc(%rbp), %r8d
sarl $0xc, %r8d
movl -0x200(%rbp), %r9d
sarl $0xc, %r9d
movl -0x204(%rbp), %r12d
sarl $0x8, %r12d
leaq -0x1f2(%rbp), %r15
leaq -0x1f4(%rbp), %r14
leaq -0x1f6(%rbp), %rbx
leaq -0x208(%rbp), %r11
leaq -0x20c(%rbp), %r10
leaq -0x210(%rbp), %rax
movswl %cx, %ecx
movl %r12d, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movl $0xffff0030, 0x38(%rsp) # imm = 0xFFFF0030
callq 0x50190
leaq 0x17bec3(%rip), %rax    # 0x1f5598
movl $0x0, (%rax)
movw -0x1f2(%rbp), %cx
leaq 0x4110c7(%rip), %rax    # 0x48a7b0
movw %cx, (%rax)
movswl -0x1f4(%rbp), %eax
cmpl $0x0, %eax
jl 0x79813
movw -0x1f4(%rbp), %cx
leaq 0x4110a8(%rip), %rax    # 0x48a7b2
movw %cx, (%rax)
leaq 0x35bf1e(%rip), %rax    # 0x3d5632
movw $0x0, (%rax)
movswq -0x1f4(%rbp), %rcx
leaq 0x17be88(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswl 0xa(%rax), %eax
cmpl $0x0, %eax
jl 0x7980e
movswq -0x1f4(%rbp), %rcx
leaq 0x17be65(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0xc(%rax), %ax
movl -0x208(%rbp), %esi
movl -0x20c(%rbp), %edx
leaq -0x214(%rbp), %rcx
leaq -0x218(%rbp), %r8
movswl %ax, %edi
callq 0x393f0
movl -0x210(%rbp), %eax
cmpl -0x218(%rbp), %eax
jle 0x797ce
movswq -0x1f4(%rbp), %rcx
leaq 0x17be1b(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswl 0xe(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x797cc
movswq -0x1f4(%rbp), %rcx
leaq 0x17bdf9(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movw 0xa(%rax), %cx
leaq 0x410fe9(%rip), %rax    # 0x48a7b2
movw %cx, (%rax)
jmp 0x7980c
movl -0x210(%rbp), %eax
cmpl -0x214(%rbp), %eax
jle 0x7980a
movswq -0x1f4(%rbp), %rcx
leaq 0x17bdc5(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswl 0xe(%rax), %eax
andl $0x30, %eax
cmpl $0x0, %eax
je 0x7980a
leaq 0x35be2d(%rip), %rax    # 0x3d5632
movw $0x4, (%rax)
jmp 0x7980c
jmp 0x7980e
jmp 0x7989d
movswl -0x1f6(%rbp), %eax
cmpl $0x0, %eax
jl 0x7983e
movw -0x1f6(%rbp), %cx
leaq 0x410f85(%rip), %rax    # 0x48a7b2
movw %cx, (%rax)
leaq 0x35bdfb(%rip), %rax    # 0x3d5632
movw $0x3, (%rax)
jmp 0x7989b
movw -0x1f2(%rbp), %ax
movl -0x208(%rbp), %esi
movl -0x20c(%rbp), %edx
leaq -0x21c(%rbp), %rcx
leaq -0x220(%rbp), %r8
movswl %ax, %edi
callq 0x393f0
movl -0x210(%rbp), %eax
shll %eax
movl -0x21c(%rbp), %ecx
addl -0x220(%rbp), %ecx
cmpl %ecx, %eax
jge 0x7988d
leaq 0x35bdac(%rip), %rax    # 0x3d5632
movw $0x1, (%rax)
jmp 0x79899
leaq 0x35bd9e(%rip), %rax    # 0x3d5632
movw $0x2, (%rax)
jmp 0x7989b
jmp 0x7989d
leaq 0x35bd8c(%rip), %rax    # 0x3d5630
movw $0x0, (%rax)
leaq 0x398c4c(%rip), %rax    # 0x4124fc
movw $0x0, (%rax)
leaq 0x398c3e(%rip), %rax    # 0x4124fa
movw $0x0, (%rax)
leaq 0x391fe4(%rip), %rax    # 0x40b8ac
movswl (%rax), %eax
cmpl $0x1000, %eax           # imm = 0x1000
jl 0x798f0
leaq 0x391fd3(%rip), %rax    # 0x40b8ac
movswl (%rax), %eax
subl $0x1000, %eax           # imm = 0x1000
movw %ax, %cx
leaq 0x391fc1(%rip), %rax    # 0x40b8ac
movw %cx, (%rax)
jmp 0x7993c
leaq 0x391fb5(%rip), %rax    # 0x40b8ac
movswl (%rax), %eax
movl %eax, -0x24(%rbp)
leaq 0x1fdcac(%rip), %rax    # 0x2775b0
movl (%rax), %edi
leaq 0x1fdca7(%rip), %rax    # 0x2775b4
movl (%rax), %esi
leaq 0x391f96(%rip), %rdx    # 0x40b8ac
callq 0x392a0
leaq 0x391f8a(%rip), %rax    # 0x40b8ac
movswl (%rax), %eax
cmpl $0x0, %eax
jge 0x7993a
movl -0x24(%rbp), %eax
movw %ax, %cx
leaq 0x391f75(%rip), %rax    # 0x40b8ac
movw %cx, (%rax)
jmp 0x7993c
leaq 0x391f69(%rip), %rax    # 0x40b8ac
movswl (%rax), %edi
callq 0x7a430
leaq 0x17bc4c(%rip), %rax    # 0x1f559e
cmpb $0x0, (%rax)
je 0x799ed
movsd 0x574215(%rip), %xmm0   # 0x5edb78
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x5741ee(%rip)   # 0x5edb70
leaq 0x17bc15(%rip), %rax    # 0x1f559e
movb $0x0, (%rax)
xorl %edi, %edi
callq 0x7ad90
leaq 0x398b62(%rip), %rax    # 0x4124fc
movw (%rax), %cx
addw $-0x1, %cx
leaq 0x398b54(%rip), %rax    # 0x4124fc
movw %cx, (%rax)
leaq 0x398b4a(%rip), %rax    # 0x4124fc
movswq (%rax), %rcx
leaq 0x398b63(%rip), %rax    # 0x412520
movw (%rax,%rcx,2), %cx
leaq 0x398b58(%rip), %rax    # 0x412520
movw %cx, (%rax)
leaq 0x398b2a(%rip), %rax    # 0x4124fc
movswq (%rax), %rcx
leaq 0x39ab43(%rip), %rax    # 0x414520
movw (%rax,%rcx,2), %cx
leaq 0x39ab38(%rip), %rax    # 0x414520
movw %cx, (%rax)
jmp 0x799fd
movsd 0x574183(%rip), %xmm0   # 0x5edb78
movsd %xmm0, 0x574173(%rip)   # 0x5edb70
jmp 0x799ff
leaq 0x398af6(%rip), %rax    # 0x4124fc
movswl (%rax), %eax
cmpl $0x0, %eax
jle 0x79c19
leaq 0x398ae3(%rip), %rax    # 0x4124fc
movswl (%rax), %eax
addl $0x3, %eax
movslq %eax, %rdx
leaq 0x574157(%rip), %rdi    # 0x5edb80
xorl %esi, %esi
callq 0x62d0
movb $0x1, 0x574149(%rip)    # 0x5edb80
movl $0x0, -0x34(%rbp)
movl $0x1, -0x24(%rbp)
movl -0x24(%rbp), %eax
leaq 0x398aad(%rip), %rcx    # 0x4124fc
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x79aa3
movl -0x24(%rbp), %edi
movl -0x34(%rbp), %esi
callq 0x82a80
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jge 0x79a6c
jmp 0x79a98
movslq -0x24(%rbp), %rcx
leaq 0x574109(%rip), %rax    # 0x5edb80
movb $0x1, (%rax,%rcx)
cmpl $0x0, -0x28(%rbp)
jne 0x79a96
movslq -0x34(%rbp), %rcx
leaq 0x5740f4(%rip), %rax    # 0x5edb80
movb $0x1, (%rax,%rcx)
movl -0x24(%rbp), %eax
movl %eax, -0x34(%rbp)
jmp 0x79a98
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x79a45
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
leaq 0x398a48(%rip), %rcx    # 0x4124fc
movswl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x79b22
movslq -0x24(%rbp), %rcx
leaq 0x5740ba(%rip), %rax    # 0x5edb80
cmpb $0x0, (%rax,%rcx)
je 0x79ace
jmp 0x79b17
movl -0x24(%rbp), %edi
movl -0x34(%rbp), %esi
callq 0x82a80
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jge 0x79ae4
jmp 0x79b17
movslq -0x24(%rbp), %rcx
leaq 0x574091(%rip), %rax    # 0x5edb80
movb $0x1, (%rax,%rcx)
cmpl $0x0, -0x28(%rbp)
jne 0x79b15
movslq -0x34(%rbp), %rcx
leaq 0x57407c(%rip), %rax    # 0x5edb80
movb $0x1, (%rax,%rcx)
movl -0x24(%rbp), %eax
movl %eax, -0x34(%rbp)
movl $0x0, -0x24(%rbp)
jmp 0x79b17
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x79aaa
movl -0x34(%rbp), %edi
callq 0x7ad90
leaq 0x36f50f(%rip), %rax    # 0x3e9040
cmpb $0x0, (%rax)
je 0x79bb2
movslq -0x34(%rbp), %rcx
leaq 0x3989df(%rip), %rax    # 0x412520
movswl (%rax,%rcx,2), %eax
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jl 0x79bb0
movslq -0x28(%rbp), %rcx
leaq 0x1fba57(%rip), %rax    # 0x2755b0
movswl (%rax,%rcx,2), %eax
andl $0x7, %eax
movslq %eax, %rcx
leaq 0x67126(%rip), %rax     # 0xe0c90
movzbl (%rax,%rcx), %edx
movslq -0x28(%rbp), %rcx
leaq 0x1fba37(%rip), %rax    # 0x2755b0
movswl (%rax,%rcx,2), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x36ecb6(%rip), %rax    # 0x3e8840
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x36eca7(%rip), %rax    # 0x3e8840
movb %dl, (%rax,%rcx)
movslq -0x28(%rbp), %rcx
leaq 0x3a0989(%rip), %rax    # 0x41a530
movswl (%rax,%rcx,2), %eax
movl %eax, -0x28(%rbp)
jmp 0x79b48
jmp 0x79bb2
leaq 0x398943(%rip), %rax    # 0x4124fc
movw (%rax), %cx
addw $-0x1, %cx
leaq 0x398935(%rip), %rax    # 0x4124fc
movw %cx, (%rax)
leaq 0x39892b(%rip), %rax    # 0x4124fc
movswq (%rax), %rcx
leaq 0x398944(%rip), %rax    # 0x412520
movw (%rax,%rcx,2), %dx
movslq -0x34(%rbp), %rcx
leaq 0x398935(%rip), %rax    # 0x412520
movw %dx, (%rax,%rcx,2)
leaq 0x398906(%rip), %rax    # 0x4124fc
movswq (%rax), %rcx
leaq 0x39a91f(%rip), %rax    # 0x414520
movw (%rax,%rcx,2), %dx
movslq -0x34(%rbp), %rcx
leaq 0x39a910(%rip), %rax    # 0x414520
movw %dx, (%rax,%rcx,2)
jmp 0x799ff
cmpl $0x3, 0x573d00(%rip)    # 0x5ed920
jne 0x79c4c
movl $0x203, %edi            # imm = 0x203
leaq 0x573ae2(%rip), %rax    # 0x5ed710
callq *0x98(%rax)
xorps %xmm0, %xmm0
movsd 0x3c861(%rip), %xmm1    # 0xb64a0
leaq 0x573aca(%rip), %rax    # 0x5ed710
callq *0xa8(%rax)
addq $0x250, %rsp            # imm = 0x250
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)