// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/engine.c
// Function: drawmapview
void drawmapview(int dax, int day, int zoome, short ang)
{
	walltype *wal;
	sectortype *sec;
	spritetype *spr;
	int tilenum, xoff, yoff, i, j, k, l, cosang, sinang, xspan, yspan;
	int xrepeat, yrepeat, x, y, x1, y1, x2, y2, x3, y3, x4, y4, bakx1, baky1;
	int s, w, ox, oy, startwall, cx1, cy1, cx2, cy2;
	int bakgxvect, bakgyvect, sortnum, gap, npoints;
	int xvect, yvect, xvect2, yvect2, daslope;

	beforedrawrooms = 0;

	clearbuf(&gotsector[0],(int)((numsectors+31)>>5),0L);

	cx1 = (windowx1<<12); cy1 = (windowy1<<12);
	cx2 = ((windowx2+1)<<12)-1; cy2 = ((windowy2+1)<<12)-1;
	zoome <<= 8;
	bakgxvect = divscale28(sintable[(1536-ang)&2047],zoome);
	bakgyvect = divscale28(sintable[(2048-ang)&2047],zoome);
	xvect = mulscale8(sintable[(2048-ang)&2047],zoome);
	yvect = mulscale8(sintable[(1536-ang)&2047],zoome);
	xvect2 = mulscale16(xvect,yxaspect);
	yvect2 = mulscale16(yvect,yxaspect);

	sortnum = 0;

	for(s=0,sec=&sector[s];s<numsectors;s++,sec++)
		if (show2dsector[s>>3]&pow2char[s&7])
		{
			npoints = 0; i = 0;
			startwall = sec->wallptr;
#if 0
			for(w=sec->wallnum,wal=&wall[startwall];w>0;w--,wal++)
			{
				ox = wal->x - dax; oy = wal->y - day;
				x = dmulscale16(ox,xvect,-oy,yvect) + (xdim<<11);
				y = dmulscale16(oy,xvect2,ox,yvect2) + (ydim<<11);
				i |= getclipmask(x-cx1,cx2-x,y-cy1,cy2-y);
				rx1[npoints] = x;
				ry1[npoints] = y;
				xb1[npoints] = wal->point2 - startwall;
				npoints++;
			}
#else
			j = startwall; l = 0;
			for(w=sec->wallnum,wal=&wall[startwall];w>0;w--,wal++,j++)
			{
				k = lastwall(j);
				if ((k > j) && (npoints > 0)) { xb1[npoints-1] = l; l = npoints; } //overwrite point2
					//wall[k].x wal->x wall[wal->point2].x
					//wall[k].y wal->y wall[wal->point2].y
				if (!dmulscale1(wal->x-wall[k].x,wall[wal->point2].y-wal->y,-(wal->y-wall[k].y),wall[wal->point2].x-wal->x)) continue;
				ox = wal->x - dax; oy = wal->y - day;
				x = dmulscale16(ox,xvect,-oy,yvect) + (xdim<<11);
				y = dmulscale16(oy,xvect2,ox,yvect2) + (ydim<<11);
				i |= getclipmask(x-cx1,cx2-x,y-cy1,cy2-y);
				rx1[npoints] = x;
				ry1[npoints] = y;
				xb1[npoints] = npoints+1;
				npoints++;
			}
			if (npoints > 0) xb1[npoints-1] = l; //overwrite point2
#endif
			if ((i&0xf0) != 0xf0) continue;
			bakx1 = rx1[0]; baky1 = mulscale16(ry1[0]-(ydim<<11),xyaspect)+(ydim<<11);
			if (i&0x0f)
			{
				npoints = clippoly(npoints,i);
				if (npoints < 3) continue;
			}

				//Collect floor sprites to draw
			for(i=headspritesect[s];i>=0;i=nextspritesect[i])
				if ((sprite[i].cstat&48) == 32)
				{
					if ((sprite[i].cstat&(64+8)) == (64+8)) continue;
					tsprite[sortnum++].owner = i;
				}

			gotsector[s>>3] |= pow2char[s&7];

			globalorientation = (int)sec->floorstat;
			if ((globalorientation&1) != 0) continue;

			globalpal = sec->floorpal;
			if (palookup[sec->floorpal] != globalpalwritten)
			{
				globalpalwritten = palookup[sec->floorpal];
				if (!globalpalwritten) globalpalwritten = palookup[0];	// JBF: fixes null-pointer crash
				setpalookupaddress(globalpalwritten);
			}
			globalpicnum = sec->floorpicnum;
			if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
			setgotpic(globalpicnum);
			if ((tilesizx[globalpicnum] <= 0) || (tilesizy[globalpicnum] <= 0)) continue;
			if ((picanm[globalpicnum]&192) != 0) globalpicnum += animateoffs((short)globalpicnum,s);
			if (waloff[globalpicnum] == 0) loadtile(globalpicnum);
			globalbufplc = waloff[globalpicnum];
			globalshade = max(min(sec->floorshade,numpalookups-1),0);
			globvis = globalhisibility;
			if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));
			globalpolytype = 0;
			if ((globalorientation&64) == 0)
			{
				globalposx = dax; globalx1 = bakgxvect; globaly1 = bakgyvect;
				globalposy = day; globalx2 = bakgxvect; globaly2 = bakgyvect;
			}
			else
			{
				ox = wall[wall[startwall].point2].x - wall[startwall].x;
				oy = wall[wall[startwall].point2].y - wall[startwall].y;
				i = nsqrtasm(ox*ox+oy*oy); if (i == 0) continue;
				i = 1048576/i;
				globalx1 = mulscale10(dmulscale10(ox,bakgxvect,oy,bakgyvect),i);
				globaly1 = mulscale10(dmulscale10(ox,bakgyvect,-oy,bakgxvect),i);
				ox = (bakx1>>4)-(xdim<<7); oy = (baky1>>4)-(ydim<<7);
				globalposx = dmulscale28(-oy,globalx1,-ox,globaly1);
				globalposy = dmulscale28(-ox,globalx1,oy,globaly1);
				globalx2 = -globalx1;
				globaly2 = -globaly1;

				daslope = sector[s].floorheinum;
				i = nsqrtasm(daslope*daslope+16777216);
				globalposy = mulscale12(globalposy,i);
				globalx2 = mulscale12(globalx2,i);
				globaly2 = mulscale12(globaly2,i);
			}
			globalxshift = (8-(picsiz[globalpicnum]&15));
			globalyshift = (8-(picsiz[globalpicnum]>>4));
			if (globalorientation&8) {globalxshift++; globalyshift++; }

			sethlinesizes(picsiz[globalpicnum]&15,picsiz[globalpicnum]>>4,(void *)globalbufplc);

			if ((globalorientation&0x4) > 0)
			{
				i = globalposx; globalposx = -globalposy; globalposy = -i;
				i = globalx2; globalx2 = globaly1; globaly1 = i;
				i = globalx1; globalx1 = -globaly2; globaly2 = -i;
			}
			if ((globalorientation&0x10) > 0) globalx1 = -globalx1, globaly1 = -globaly1, globalposx = -globalposx;
			if ((globalorientation&0x20) > 0) globalx2 = -globalx2, globaly2 = -globaly2, globalposy = -globalposy;
			asm1 = (globaly1<<globalxshift);
			asm2 = (globalx2<<globalyshift);
			globalx1 <<= globalxshift;
			globaly2 <<= globalyshift;
			globalposx = (globalposx<<(20+globalxshift))+(((int)sec->floorxpanning)<<24);
			globalposy = (globalposy<<(20+globalyshift))-(((int)sec->floorypanning)<<24);

			fillpolygon(npoints);
		}

		//Sort sprite list
	gap = 1; while (gap < sortnum) gap = (gap<<1)+1;
	for(gap>>=1;gap>0;gap>>=1)
		for(i=0;i<sortnum-gap;i++)
			for(j=i;j>=0;j-=gap)
			{
				if (sprite[tsprite[j].owner].z <= sprite[tsprite[j+gap].owner].z) break;
				swapshort(&tsprite[j].owner,&tsprite[j+gap].owner);
			}

	for(s=sortnum-1;s>=0;s--)
	{
		spr = &sprite[tsprite[s].owner];
		if ((spr->cstat&48) == 32)
		{
			npoints = 0;

			tilenum = spr->picnum;
			xoff = (int)((signed char)((picanm[tilenum]>>8)&255))+((int)spr->xoffset);
			yoff = (int)((signed char)((picanm[tilenum]>>16)&255))+((int)spr->yoffset);
			if ((spr->cstat&4) > 0) xoff = -xoff;
			if ((spr->cstat&8) > 0) yoff = -yoff;

			k = spr->ang;
			cosang = sintable[(k+512)&2047]; sinang = sintable[k];
			xspan = tilesizx[tilenum]; xrepeat = spr->xrepeat;
			yspan = tilesizy[tilenum]; yrepeat = spr->yrepeat;

			ox = ((xspan>>1)+xoff)*xrepeat; oy = ((yspan>>1)+yoff)*yrepeat;
			x1 = spr->x + mulscale16(sinang,ox) + mulscale16(cosang,oy);
			y1 = spr->y + mulscale16(sinang,oy) - mulscale16(cosang,ox);
			l = xspan*xrepeat;
			x2 = x1 - mulscale16(sinang,l);
			y2 = y1 + mulscale16(cosang,l);
			l = yspan*yrepeat;
			k = -mulscale16(cosang,l); x3 = x2+k; x4 = x1+k;
			k = -mulscale16(sinang,l); y3 = y2+k; y4 = y1+k;

			xb1[0] = 1; xb1[1] = 2; xb1[2] = 3; xb1[3] = 0;
			npoints = 4;

			i = 0;

			ox = x1 - dax; oy = y1 - day;
			x = dmulscale16(ox,xvect,-oy,yvect) + (xdim<<11);
			y = dmulscale16(oy,xvect2,ox,yvect2) + (ydim<<11);
			i |= getclipmask(x-cx1,cx2-x,y-cy1,cy2-y);
			rx1[0] = x; ry1[0] = y;

			ox = x2 - dax; oy = y2 - day;
			x = dmulscale16(ox,xvect,-oy,yvect) + (xdim<<11);
			y = dmulscale16(oy,xvect2,ox,yvect2) + (ydim<<11);
			i |= getclipmask(x-cx1,cx2-x,y-cy1,cy2-y);
			rx1[1] = x; ry1[1] = y;

			ox = x3 - dax; oy = y3 - day;
			x = dmulscale16(ox,xvect,-oy,yvect) + (xdim<<11);
			y = dmulscale16(oy,xvect2,ox,yvect2) + (ydim<<11);
			i |= getclipmask(x-cx1,cx2-x,y-cy1,cy2-y);
			rx1[2] = x; ry1[2] = y;

			x = rx1[0]+rx1[2]-rx1[1];
			y = ry1[0]+ry1[2]-ry1[1];
			i |= getclipmask(x-cx1,cx2-x,y-cy1,cy2-y);
			rx1[3] = x; ry1[3] = y;

			if ((i&0xf0) != 0xf0) continue;
			bakx1 = rx1[0]; baky1 = mulscale16(ry1[0]-(ydim<<11),xyaspect)+(ydim<<11);
			if (i&0x0f)
			{
				npoints = clippoly(npoints,i);
				if (npoints < 3) continue;
			}

			globalpicnum = spr->picnum;
			if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
			setgotpic(globalpicnum);
			if ((tilesizx[globalpicnum] <= 0) || (tilesizy[globalpicnum] <= 0)) continue;
			if ((picanm[globalpicnum]&192) != 0) globalpicnum += animateoffs((short)globalpicnum,s);
			if (waloff[globalpicnum] == 0) loadtile(globalpicnum);
			globalbufplc = waloff[globalpicnum];
			if ((sector[spr->sectnum].ceilingstat&1) > 0)
				globalshade = ((int)sector[spr->sectnum].ceilingshade);
			else
				globalshade = ((int)sector[spr->sectnum].floorshade);
			globalshade = max(min(globalshade+spr->shade+6,numpalookups-1),0);
			asm3 = (intptr_t)palookup[spr->pal]+(globalshade<<8);
			globvis = globalhisibility;
			if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));
			globalpolytype = ((spr->cstat&2)>>1)+1;

				//relative alignment stuff
			ox = x2-x1; oy = y2-y1;
			i = ox*ox+oy*oy; if (i == 0) continue; i = (65536*16384)/i;
			globalx1 = mulscale10(dmulscale10(ox,bakgxvect,oy,bakgyvect),i);
			globaly1 = mulscale10(dmulscale10(ox,bakgyvect,-oy,bakgxvect),i);
			ox = y1-y4; oy = x4-x1;
			i = ox*ox+oy*oy; if (i == 0) continue; i = (65536*16384)/i;
			globalx2 = mulscale10(dmulscale10(ox,bakgxvect,oy,bakgyvect),i);
			globaly2 = mulscale10(dmulscale10(ox,bakgyvect,-oy,bakgxvect),i);

			ox = picsiz[globalpicnum]; oy = ((ox>>4)&15); ox &= 15;
			if (pow2long[ox] != xspan)
			{
				ox++;
				globalx1 = mulscale(globalx1,xspan,ox);
				globaly1 = mulscale(globaly1,xspan,ox);
			}

			bakx1 = (bakx1>>4)-(xdim<<7); baky1 = (baky1>>4)-(ydim<<7);
			globalposx = dmulscale28(-baky1,globalx1,-bakx1,globaly1);
			globalposy = dmulscale28(bakx1,globalx2,-baky1,globaly2);

			if ((spr->cstat&2) == 0)
				msethlineshift(ox,oy);
			else {
				if (spr->cstat&512) settransreverse(); else settransnormal();
				tsethlineshift(ox,oy);
			}

			if ((spr->cstat&0x4) > 0) globalx1 = -globalx1, globaly1 = -globaly1, globalposx = -globalposx;
			asm1 = (globaly1<<2); globalx1 <<= 2; globalposx <<= (20+2);
			asm2 = (globalx2<<2); globaly2 <<= 2; globalposy <<= (20+2);

			globalorientation = ((spr->cstat&2)<<7) | ((spr->cstat&512)>>2);	// so polymost can get the translucency. ignored in software mode.
			fillpolygon(npoints);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movw %cx, %ax
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movw %ax, -0xe(%rbp)
movl $0x0, 0x9ee13(%rip)     # 0xe0c78
movswl 0x3cac54(%rip), %esi    # 0x40cac0
addl $0x1f, %esi
sarl $0x5, %esi
leaq 0x3caa47(%rip), %rdi    # 0x40c8c0
xorl %edx, %edx
callq 0x6ed50
movl 0x3cc2ca(%rip), %eax    # 0x40e150
shll $0xc, %eax
movl %eax, -0xa4(%rbp)
movl 0x3cd94b(%rip), %eax    # 0x40f7e0
shll $0xc, %eax
movl %eax, -0xa8(%rbp)
movl 0x400e9c(%rip), %eax    # 0x442d40
addl $0x1, %eax
shll $0xc, %eax
subl $0x1, %eax
movl %eax, -0xac(%rbp)
movl 0x400e8b(%rip), %eax    # 0x442d44
addl $0x1, %eax
shll $0xc, %eax
subl $0x1, %eax
movl %eax, -0xb0(%rbp)
movl -0xc(%rbp), %eax
shll $0x8, %eax
movl %eax, -0xc(%rbp)
movswl -0xe(%rbp), %ecx
movl $0x600, %eax            # imm = 0x600
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x3c99c5(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %edi
movl -0xc(%rbp), %esi
callq 0x37640
movl %eax, -0xb4(%rbp)
movswl -0xe(%rbp), %ecx
movl $0x800, %eax            # imm = 0x800
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x3c9999(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %edi
movl -0xc(%rbp), %esi
callq 0x37640
movl %eax, -0xb8(%rbp)
movswl -0xe(%rbp), %ecx
movl $0x800, %eax            # imm = 0x800
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x3c996d(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %edi
movl -0xc(%rbp), %esi
callq 0x39030
movl %eax, -0xc8(%rbp)
movswl -0xe(%rbp), %ecx
movl $0x600, %eax            # imm = 0x600
subl %ecx, %eax
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x3c9941(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %edi
movl -0xc(%rbp), %esi
callq 0x39030
movl %eax, -0xcc(%rbp)
movl -0xc8(%rbp), %edi
movl 0x400dbb(%rip), %esi    # 0x442d48
callq 0x39010
movl %eax, -0xd0(%rbp)
movl -0xcc(%rbp), %edi
movl 0x400da4(%rip), %esi    # 0x442d48
callq 0x39010
movl %eax, -0xd4(%rbp)
movl $0x0, -0xbc(%rbp)
movl $0x0, -0x90(%rbp)
movslq -0x90(%rbp), %rcx
leaq 0x23e5ef(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movl -0x90(%rbp), %eax
movswl 0x3caad7(%rip), %ecx    # 0x40cac0
cmpl %ecx, %eax
jge 0x42b23
movl -0x90(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x3a5e3c(%rip), %rax    # 0x3e7e40
movzbl (%rax,%rcx), %eax
movl -0x90(%rbp), %ecx
andl $0x7, %ecx
movslq %ecx, %rdx
leaq 0x9ec75(%rip), %rcx     # 0xe0c90
movzbl (%rcx,%rdx), %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x42b01
movl $0x0, -0xc4(%rbp)
movl $0x0, -0x38(%rbp)
movq -0x20(%rbp), %rax
movswl (%rax), %eax
movl %eax, -0xa0(%rbp)
movl -0xa0(%rbp), %eax
movl %eax, -0x3c(%rbp)
movl $0x0, -0x44(%rbp)
movq -0x20(%rbp), %rax
movswl 0x2(%rax), %eax
movl %eax, -0x94(%rbp)
movslq -0xa0(%rbp), %rcx
leaq 0x1b353c(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
cmpl $0x0, -0x94(%rbp)
jle 0x42276
movl -0x3c(%rbp), %eax
movswl %ax, %edi
callq 0x43880
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
cmpl -0x3c(%rbp), %eax
jle 0x420cd
cmpl $0x0, -0xc4(%rbp)
jle 0x420cd
movl -0x44(%rbp), %edx
movl -0xc4(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rcx
leaq 0x26650f(%rip), %rax    # 0x2a85d0
movl %edx, (%rax,%rcx,4)
movl -0xc4(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %edi
movslq -0x40(%rbp), %rcx
leaq 0x1b34d2(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
subl (%rax), %edi
movq -0x18(%rbp), %rax
movswq 0x8(%rax), %rcx
leaq 0x1b34b9(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %esi
movq -0x18(%rbp), %rax
subl 0x4(%rax), %esi
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movslq -0x40(%rbp), %rdx
leaq 0x1b3496(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
subl 0x4(%rcx), %eax
xorl %edx, %edx
subl %eax, %edx
movq -0x18(%rbp), %rax
movswq 0x8(%rax), %rcx
leaq 0x1b3478(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %ecx
movq -0x18(%rbp), %rax
subl (%rax), %ecx
callq 0x43920
cmpl $0x0, %eax
jne 0x42156
jmp 0x4224d
movq -0x18(%rbp), %rax
movl (%rax), %eax
subl -0x4(%rbp), %eax
movl %eax, -0x98(%rbp)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
subl -0x8(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %edi
movl -0xc8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xcc(%rbp), %ecx
callq 0x43950
movl 0x400bb2(%rip), %ecx    # 0x442d4c
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x9c(%rbp), %edi
movl -0xd0(%rbp), %esi
movl -0x98(%rbp), %edx
movl -0xd4(%rbp), %ecx
callq 0x43950
movl 0x400b8b(%rip), %ecx    # 0x442d50
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x64(%rbp)
movl -0x60(%rbp), %edi
subl -0xa4(%rbp), %edi
movl -0xac(%rbp), %esi
subl -0x60(%rbp), %esi
movl -0x64(%rbp), %edx
subl -0xa8(%rbp), %edx
movl -0xb0(%rbp), %ecx
subl -0x64(%rbp), %ecx
callq 0x43990
orl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x60(%rbp), %edx
movslq -0xc4(%rbp), %rcx
leaq 0x400b53(%rip), %rax    # 0x442d60
movl %edx, (%rax,%rcx,4)
movl -0x64(%rbp), %edx
movslq -0xc4(%rbp), %rcx
leaq 0x404b3f(%rip), %rax    # 0x446d60
movl %edx, (%rax,%rcx,4)
movl -0xc4(%rbp), %edx
addl $0x1, %edx
movslq -0xc4(%rbp), %rcx
leaq 0x266395(%rip), %rax    # 0x2a85d0
movl %edx, (%rax,%rcx,4)
movl -0xc4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc4(%rbp)
movl -0x94(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x94(%rbp)
movq -0x18(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x18(%rbp)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x4207f
cmpl $0x0, -0xc4(%rbp)
jle 0x42298
movl -0x44(%rbp), %edx
movl -0xc4(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rcx
leaq 0x26633b(%rip), %rax    # 0x2a85d0
movl %edx, (%rax,%rcx,4)
movl -0x38(%rbp), %eax
andl $0xf0, %eax
cmpl $0xf0, %eax
je 0x422ac
jmp 0x42b03
movl 0x400aae(%rip), %eax    # 0x442d60
movl %eax, -0x88(%rbp)
movl 0x404aa2(%rip), %edi    # 0x446d60
movl 0x400a8c(%rip), %eax    # 0x442d50
shll $0xb, %eax
subl %eax, %edi
movl 0x358149(%rip), %esi    # 0x39a418
callq 0x39010
movl 0x400a76(%rip), %ecx    # 0x442d50
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x8c(%rbp)
movl -0x38(%rbp), %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x42314
movl -0xc4(%rbp), %edi
movl -0x38(%rbp), %esi
callq 0x43a00
movl %eax, -0xc4(%rbp)
cmpl $0x3, -0xc4(%rbp)
jge 0x42312
jmp 0x42b03
jmp 0x42314
movslq -0x90(%rbp), %rcx
leaq 0x3a6d4e(%rip), %rax    # 0x3e9070
movswl (%rax,%rcx,2), %eax
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
jl 0x423b6
movslq -0x38(%rbp), %rcx
leaq 0x2774d2(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
jne 0x4239d
movslq -0x38(%rbp), %rcx
leaq 0x2774b4(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
andl $0x48, %eax
cmpl $0x48, %eax
jne 0x42371
jmp 0x4239f
movl -0x38(%rbp), %eax
movw %ax, %cx
movl -0xbc(%rbp), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, -0xbc(%rbp)
movslq %eax, %rdx
leaq 0x3da19e(%rip), %rax    # 0x41c530
imulq $0x2c, %rdx, %rdx
addq %rdx, %rax
movw %cx, 0x1e(%rax)
jmp 0x4239f
movslq -0x38(%rbp), %rcx
leaq 0x3b0cd6(%rip), %rax    # 0x3f3080
movswl (%rax,%rcx,2), %eax
movl %eax, -0x38(%rbp)
jmp 0x42329
movl -0x90(%rbp), %eax
andl $0x7, %eax
movslq %eax, %rcx
leaq 0x9e8c7(%rip), %rax     # 0xe0c90
movzbl (%rax,%rcx), %edx
movl -0x90(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x3ca4e0(%rip), %rax    # 0x40c8c0
movzbl (%rax,%rcx), %eax
orl %edx, %eax
movb %al, %dl
leaq 0x3ca4d1(%rip), %rax    # 0x40c8c0
movb %dl, (%rax,%rcx)
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, 0x408960(%rip)    # 0x44ad60
movl 0x40895a(%rip), %eax    # 0x44ad60
andl $0x1, %eax
cmpl $0x0, %eax
je 0x42413
jmp 0x42b03
movq -0x20(%rbp), %rax
movzbl 0x1d(%rax), %eax
movl %eax, 0x408943(%rip)    # 0x44ad64
movq -0x20(%rbp), %rax
movzbl 0x1d(%rax), %eax
movl %eax, %ecx
leaq 0x39320e(%rip), %rax    # 0x3d5640
movq (%rax,%rcx,8), %rax
cmpq 0x40892b(%rip), %rax    # 0x44ad68
je 0x4247f
movq -0x20(%rbp), %rax
movzbl 0x1d(%rax), %eax
movl %eax, %ecx
leaq 0x3931f0(%rip), %rax    # 0x3d5640
movq (%rax,%rcx,8), %rax
movq %rax, 0x40890d(%rip)    # 0x44ad68
cmpq $0x0, 0x408905(%rip)    # 0x44ad68
jne 0x42473
movq 0x3931d4(%rip), %rax    # 0x3d5640
movq %rax, 0x4088f5(%rip)    # 0x44ad68
movq 0x4088ee(%rip), %rdi    # 0x44ad68
callq 0xa75e0
movq -0x20(%rbp), %rax
movw 0x18(%rax), %ax
movw %ax, 0x4088e2(%rip)     # 0x44ad70
movswl 0x4088db(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x424a5
movw $0x0, 0x4088cb(%rip)    # 0x44ad70
movswl 0x4088c4(%rip), %edi    # 0x44ad70
callq 0x44d80
movswq 0x4088b7(%rip), %rcx    # 0x44ad70
leaq 0x4088c0(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x424e1
movswq 0x40889f(%rip), %rcx    # 0x44ad70
leaq 0x3fa068(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jg 0x424e6
jmp 0x42b03
movswq 0x408882(%rip), %rcx    # 0x44ad70
leaq 0x2350cb(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x4252c
movw 0x408867(%rip), %cx     # 0x44ad70
movl -0x90(%rbp), %eax
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x40884d(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x408844(%rip)     # 0x44ad70
movswq 0x40883c(%rip), %rcx    # 0x44ad70
leaq 0x393905(%rip), %rax    # 0x3d5e40
cmpq $0x0, (%rax,%rcx,8)
jne 0x4254e
movswl 0x408827(%rip), %edi    # 0x44ad70
callq 0x44df0
movswq 0x40881a(%rip), %rcx    # 0x44ad70
leaq 0x3938e3(%rip), %rax    # 0x3d5e40
movq (%rax,%rcx,8), %rax
movq %rax, 0x40d018(%rip)    # 0x44f580
movq -0x20(%rbp), %rax
movsbl 0x1c(%rax), %eax
movswl 0x40d011(%rip), %ecx    # 0x44f588
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x4258e
movq -0x20(%rbp), %rax
movsbl 0x1c(%rax), %eax
movl %eax, -0xdc(%rbp)
jmp 0x4259e
movswl 0x40cff3(%rip), %eax    # 0x44f588
subl $0x1, %eax
movl %eax, -0xdc(%rbp)
movl -0xdc(%rbp), %eax
cmpl $0x0, %eax
jle 0x425ed
movq -0x20(%rbp), %rax
movsbl 0x1c(%rax), %eax
movswl 0x40cfd0(%rip), %ecx    # 0x44f588
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x425cf
movq -0x20(%rbp), %rax
movsbl 0x1c(%rax), %eax
movl %eax, -0xe0(%rbp)
jmp 0x425df
movswl 0x40cfb2(%rip), %eax    # 0x44f588
subl $0x1, %eax
movl %eax, -0xe0(%rbp)
movl -0xe0(%rbp), %eax
movl %eax, -0xe4(%rbp)
jmp 0x425f7
xorl %eax, %eax
movl %eax, -0xe4(%rbp)
jmp 0x425f7
movl -0xe4(%rbp), %eax
movl %eax, 0x40cf89(%rip)    # 0x44f58c
movl 0x3c929b(%rip), %eax    # 0x40b8a4
movl %eax, 0x40cf81(%rip)    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x4263b
movl 0x40cf6e(%rip), %edi    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x40cf55(%rip)    # 0x44f590
movb $0x0, 0x40cf52(%rip)    # 0x44f594
movl 0x408718(%rip), %eax    # 0x44ad60
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x42697
movl -0x4(%rbp), %eax
movl %eax, 0x234f57(%rip)    # 0x2775b0
movl -0xb4(%rbp), %eax
movl %eax, 0x40cf33(%rip)    # 0x44f598
movl -0xb8(%rbp), %eax
movl %eax, 0x40cf2b(%rip)    # 0x44f59c
movl -0x8(%rbp), %eax
movl %eax, 0x234f3a(%rip)    # 0x2775b4
movl -0xb4(%rbp), %eax
movl %eax, 0x40cf1a(%rip)    # 0x44f5a0
movl -0xb8(%rbp), %eax
movl %eax, 0x40cf12(%rip)    # 0x44f5a4
jmp 0x428d0
movslq -0xa0(%rbp), %rcx
leaq 0x1b2f0b(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswq 0x8(%rax), %rcx
leaq 0x1b2ef8(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movslq -0xa0(%rbp), %rdx
leaq 0x1b2ee1(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
subl (%rcx), %eax
movl %eax, -0x98(%rbp)
movslq -0xa0(%rbp), %rcx
leaq 0x1b2ec4(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswq 0x8(%rax), %rcx
leaq 0x1b2eb1(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movslq -0xa0(%rbp), %rdx
leaq 0x1b2e99(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
subl 0x4(%rcx), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %edi
imull -0x98(%rbp), %edi
movl -0x9c(%rbp), %eax
imull -0x9c(%rbp), %eax
addl %eax, %edi
callq 0x37570
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
jne 0x42756
jmp 0x42b03
movl $0x100000, %eax         # imm = 0x100000
cltd
idivl -0x38(%rbp)
movl %eax, -0x38(%rbp)
movl -0x98(%rbp), %edi
movl -0xb4(%rbp), %esi
movl -0x9c(%rbp), %edx
movl -0xb8(%rbp), %ecx
callq 0x45030
movl %eax, %edi
movl -0x38(%rbp), %esi
callq 0x45010
movl %eax, 0x40ce09(%rip)    # 0x44f598
movl -0x98(%rbp), %edi
movl -0xb8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xb4(%rbp), %ecx
callq 0x45030
movl %eax, %edi
movl -0x38(%rbp), %esi
callq 0x45010
movl %eax, 0x40cdde(%rip)    # 0x44f59c
movl -0x88(%rbp), %eax
sarl $0x4, %eax
movl 0x40057f(%rip), %ecx    # 0x442d4c
shll $0x7, %ecx
subl %ecx, %eax
movl %eax, -0x98(%rbp)
movl -0x8c(%rbp), %eax
sarl $0x4, %eax
movl 0x400569(%rip), %ecx    # 0x442d50
shll $0x7, %ecx
subl %ecx, %eax
movl %eax, -0x9c(%rbp)
xorl %edi, %edi
subl -0x9c(%rbp), %edi
movl 0x40cd98(%rip), %esi    # 0x44f598
xorl %edx, %edx
subl -0x98(%rbp), %edx
movl 0x40cd8e(%rip), %ecx    # 0x44f59c
callq 0x45070
movl %eax, 0x234d97(%rip)    # 0x2775b0
xorl %edi, %edi
subl -0x98(%rbp), %edi
movl 0x40cd71(%rip), %esi    # 0x44f598
movl -0x9c(%rbp), %edx
movl 0x40cd69(%rip), %ecx    # 0x44f59c
callq 0x45070
movl %eax, 0x234d76(%rip)    # 0x2775b4
xorl %eax, %eax
subl 0x40cd52(%rip), %eax    # 0x44f598
movl %eax, 0x40cd54(%rip)    # 0x44f5a0
xorl %eax, %eax
subl 0x40cd48(%rip), %eax    # 0x44f59c
movl %eax, 0x40cd4a(%rip)    # 0x44f5a4
movslq -0x90(%rbp), %rcx
leaq 0x23dd58(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0x1a(%rax), %eax
movl %eax, -0xd8(%rbp)
movl -0xd8(%rbp), %edi
imull -0xd8(%rbp), %edi
addl $0x1000000, %edi        # imm = 0x1000000
callq 0x37570
movl %eax, -0x38(%rbp)
movl 0x234d1a(%rip), %edi    # 0x2775b4
movl -0x38(%rbp), %esi
callq 0x450b0
movl %eax, 0x234d0c(%rip)    # 0x2775b4
movl 0x40ccf2(%rip), %edi    # 0x44f5a0
movl -0x38(%rbp), %esi
callq 0x450b0
movl %eax, 0x40cce4(%rip)    # 0x44f5a0
movl 0x40cce2(%rip), %edi    # 0x44f5a4
movl -0x38(%rbp), %esi
callq 0x450b0
movl %eax, 0x40ccd4(%rip)    # 0x44f5a4
movswq 0x408498(%rip), %rcx    # 0x44ad70
leaq 0x40ccd1(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %ecx
andl $0xf, %ecx
movl $0x8, %eax
subl %ecx, %eax
movb %al, 0x40f0bd(%rip)     # 0x4519b0
movswq 0x408475(%rip), %rcx    # 0x44ad70
leaq 0x40ccae(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %ecx
sarl $0x4, %ecx
movl $0x8, %eax
subl %ecx, %eax
movb %al, 0x40f09b(%rip)     # 0x4519b1
movl 0x408444(%rip), %eax    # 0x44ad60
andl $0x8, %eax
cmpl $0x0, %eax
je 0x42940
movb 0x40f086(%rip), %al     # 0x4519b0
addb $0x1, %al
movb %al, 0x40f07e(%rip)     # 0x4519b0
movb 0x40f079(%rip), %al     # 0x4519b1
addb $0x1, %al
movb %al, 0x40f071(%rip)     # 0x4519b1
movswq 0x408428(%rip), %rcx    # 0x44ad70
leaq 0x40cc61(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %edi
andl $0xf, %edi
movswq 0x408412(%rip), %rcx    # 0x44ad70
leaq 0x40cc4b(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %esi
sarl $0x4, %esi
movq 0x40cc0d(%rip), %rdx    # 0x44f580
callq 0xa75b0
movl 0x4083e2(%rip), %eax    # 0x44ad60
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x429e8
movl 0x234c24(%rip), %eax    # 0x2775b0
movl %eax, -0x38(%rbp)
xorl %eax, %eax
subl 0x234c1d(%rip), %eax    # 0x2775b4
movl %eax, 0x234c13(%rip)    # 0x2775b0
xorl %eax, %eax
subl -0x38(%rbp), %eax
movl %eax, 0x234c0c(%rip)    # 0x2775b4
movl 0x40cbf2(%rip), %eax    # 0x44f5a0
movl %eax, -0x38(%rbp)
movl 0x40cbe5(%rip), %eax    # 0x44f59c
movl %eax, 0x40cbe3(%rip)    # 0x44f5a0
movl -0x38(%rbp), %eax
movl %eax, 0x40cbd6(%rip)    # 0x44f59c
movl 0x40cbcc(%rip), %eax    # 0x44f598
movl %eax, -0x38(%rbp)
xorl %eax, %eax
subl 0x40cbcd(%rip), %eax    # 0x44f5a4
movl %eax, 0x40cbbb(%rip)    # 0x44f598
xorl %eax, %eax
subl -0x38(%rbp), %eax
movl %eax, 0x40cbbc(%rip)    # 0x44f5a4
movl 0x408372(%rip), %eax    # 0x44ad60
andl $0x10, %eax
cmpl $0x0, %eax
jle 0x42a20
xorl %eax, %eax
subl 0x40cb9a(%rip), %eax    # 0x44f598
movl %eax, 0x40cb94(%rip)    # 0x44f598
xorl %eax, %eax
subl 0x40cb90(%rip), %eax    # 0x44f59c
movl %eax, 0x40cb8a(%rip)    # 0x44f59c
xorl %eax, %eax
subl 0x234b96(%rip), %eax    # 0x2775b0
movl %eax, 0x234b90(%rip)    # 0x2775b0
movl 0x40833a(%rip), %eax    # 0x44ad60
andl $0x20, %eax
cmpl $0x0, %eax
jle 0x42a58
xorl %eax, %eax
subl 0x40cb6a(%rip), %eax    # 0x44f5a0
movl %eax, 0x40cb64(%rip)    # 0x44f5a0
xorl %eax, %eax
subl 0x40cb60(%rip), %eax    # 0x44f5a4
movl %eax, 0x40cb5a(%rip)    # 0x44f5a4
xorl %eax, %eax
subl 0x234b62(%rip), %eax    # 0x2775b4
movl %eax, 0x234b5c(%rip)    # 0x2775b4
movl 0x40cb3e(%rip), %eax    # 0x44f59c
movzbl 0x40ef4b(%rip), %ecx    # 0x4519b0
shll %cl, %eax
movl %eax, 0x40ef47(%rip)    # 0x4519b4
movl 0x40cb2d(%rip), %eax    # 0x44f5a0
movzbl 0x40ef37(%rip), %ecx    # 0x4519b1
shll %cl, %eax
movl %eax, 0x40ef36(%rip)    # 0x4519b8
movzbl 0x40ef27(%rip), %ecx    # 0x4519b0
movl 0x40cb09(%rip), %eax    # 0x44f598
shll %cl, %eax
movl %eax, 0x40cb01(%rip)    # 0x44f598
movzbl 0x40ef13(%rip), %ecx    # 0x4519b1
movl 0x40cb00(%rip), %eax    # 0x44f5a4
shll %cl, %eax
movl %eax, 0x40caf8(%rip)    # 0x44f5a4
movl 0x234afe(%rip), %eax    # 0x2775b0
movzbl 0x40eef7(%rip), %ecx    # 0x4519b0
addl $0x14, %ecx
shll %cl, %eax
movq -0x20(%rbp), %rcx
movzbl 0x1e(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
movl %eax, 0x234adf(%rip)    # 0x2775b0
movl 0x234add(%rip), %eax    # 0x2775b4
movzbl 0x40eed3(%rip), %ecx    # 0x4519b1
addl $0x14, %ecx
shll %cl, %eax
movq -0x20(%rbp), %rcx
movzbl 0x1f(%rcx), %ecx
shll $0x18, %ecx
subl %ecx, %eax
movl %eax, 0x234abe(%rip)    # 0x2775b4
movl -0xc4(%rbp), %edi
callq 0x450d0
jmp 0x42b03
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
movq -0x20(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x20(%rbp)
jmp 0x41fdc
movl $0x1, -0xc0(%rbp)
movl -0xc0(%rbp), %eax
cmpl -0xbc(%rbp), %eax
jge 0x42b4e
movl -0xc0(%rbp), %eax
shll %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
jmp 0x42b2d
movl -0xc0(%rbp), %eax
sarl %eax
movl %eax, -0xc0(%rbp)
cmpl $0x0, -0xc0(%rbp)
jle 0x42c63
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %eax
movl -0xbc(%rbp), %ecx
subl -0xc0(%rbp), %ecx
cmpl %ecx, %eax
jge 0x42c4e
movl -0x38(%rbp), %eax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jl 0x42c3e
movslq -0x3c(%rbp), %rcx
leaq 0x3d998e(%rip), %rax    # 0x41c530
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movswq 0x1e(%rax), %rcx
leaq 0x276c5b(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl -0x3c(%rbp), %ecx
addl -0xc0(%rbp), %ecx
movslq %ecx, %rdx
leaq 0x3d995e(%rip), %rcx    # 0x41c530
imulq $0x2c, %rdx, %rdx
addq %rdx, %rcx
movswq 0x1e(%rcx), %rdx
leaq 0x276c2b(%rip), %rcx    # 0x2b9810
imulq $0x2c, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x8(%rcx), %eax
jg 0x42bf3
jmp 0x42c3e
movslq -0x3c(%rbp), %rax
leaq 0x3d9932(%rip), %rdi    # 0x41c530
imulq $0x2c, %rax, %rax
addq %rax, %rdi
addq $0x1e, %rdi
movl -0x3c(%rbp), %eax
addl -0xc0(%rbp), %eax
cltq
leaq 0x3d9915(%rip), %rsi    # 0x41c530
imulq $0x2c, %rax, %rax
addq %rax, %rsi
addq $0x1e, %rsi
callq 0x456c0
movl -0xc0(%rbp), %ecx
movl -0x3c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
jmp 0x42b8d
jmp 0x42c40
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x42b70
jmp 0x42c50
movl -0xc0(%rbp), %eax
sarl %eax
movl %eax, -0xc0(%rbp)
jmp 0x42b5c
movl -0xbc(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x90(%rbp)
cmpl $0x0, -0x90(%rbp)
jl 0x43874
movslq -0x90(%rbp), %rcx
leaq 0x3d98a3(%rip), %rax    # 0x41c530
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movswq 0x1e(%rax), %rcx
leaq 0x276b70(%rip), %rax    # 0x2b9810
imulq $0x2c, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x30, %eax
cmpl $0x20, %eax
jne 0x4385e
movl $0x0, -0xc4(%rbp)
movq -0x28(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, -0x2c(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x2348e1(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
sarl $0x8, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0x28(%rbp), %rcx
movsbl 0x16(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x30(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x2348bb(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
sarl $0x10, %eax
andl $0xff, %eax
movsbl %al, %eax
movq -0x28(%rbp), %rcx
movsbl 0x17(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x34(%rbp)
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x42d38
xorl %eax, %eax
subl -0x30(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jle 0x42d50
xorl %eax, %eax
subl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
movq -0x28(%rbp), %rax
movswl 0x1c(%rax), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
addl $0x200, %eax            # imm = 0x200
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x3c8b3e(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x48(%rbp)
movslq -0x40(%rbp), %rcx
leaq 0x3c8b2c(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x4c(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x407fea(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
movl %eax, -0x50(%rbp)
movq -0x28(%rbp), %rax
movzbl 0x14(%rax), %eax
movl %eax, -0x58(%rbp)
movslq -0x2c(%rbp), %rcx
leaq 0x3f978d(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
movl %eax, -0x54(%rbp)
movq -0x28(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, -0x5c(%rbp)
movl -0x50(%rbp), %eax
sarl %eax
addl -0x30(%rbp), %eax
imull -0x58(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x54(%rbp), %eax
sarl %eax
addl -0x34(%rbp), %eax
imull -0x5c(%rbp), %eax
movl %eax, -0x9c(%rbp)
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xfc(%rbp)
movl -0x4c(%rbp), %edi
movl -0x98(%rbp), %esi
callq 0x39010
movl %eax, %ecx
movl -0xfc(%rbp), %eax
addl %ecx, %eax
movl %eax, -0xf8(%rbp)
movl -0x48(%rbp), %edi
movl -0x9c(%rbp), %esi
callq 0x39010
movl %eax, %ecx
movl -0xf8(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x68(%rbp)
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0xf4(%rbp)
movl -0x4c(%rbp), %edi
movl -0x9c(%rbp), %esi
callq 0x39010
movl %eax, %ecx
movl -0xf4(%rbp), %eax
addl %ecx, %eax
movl %eax, -0xf0(%rbp)
movl -0x48(%rbp), %edi
movl -0x98(%rbp), %esi
callq 0x39010
movl %eax, %ecx
movl -0xf0(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x6c(%rbp)
movl -0x50(%rbp), %eax
imull -0x58(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x68(%rbp), %eax
movl %eax, -0xec(%rbp)
movl -0x4c(%rbp), %edi
movl -0x44(%rbp), %esi
callq 0x39010
movl %eax, %ecx
movl -0xec(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x70(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0xe8(%rbp)
movl -0x48(%rbp), %edi
movl -0x44(%rbp), %esi
callq 0x39010
movl %eax, %ecx
movl -0xe8(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x74(%rbp)
movl -0x54(%rbp), %eax
imull -0x5c(%rbp), %eax
movl %eax, -0x44(%rbp)
movl -0x48(%rbp), %edi
movl -0x44(%rbp), %esi
callq 0x39010
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x70(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x78(%rbp)
movl -0x68(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x80(%rbp)
movl -0x4c(%rbp), %edi
movl -0x44(%rbp), %esi
callq 0x39010
movl %eax, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, -0x40(%rbp)
movl -0x74(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x6c(%rbp), %eax
addl -0x40(%rbp), %eax
movl %eax, -0x84(%rbp)
movl $0x1, 0x2656ad(%rip)    # 0x2a85d0
movl $0x2, 0x2656a7(%rip)    # 0x2a85d4
movl $0x3, 0x2656a1(%rip)    # 0x2a85d8
movl $0x0, 0x26569b(%rip)    # 0x2a85dc
movl $0x4, -0xc4(%rbp)
movl $0x0, -0x38(%rbp)
movl -0x68(%rbp), %eax
subl -0x4(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x6c(%rbp), %eax
subl -0x8(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %edi
movl -0xc8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xcc(%rbp), %ecx
callq 0x43950
movl 0x3ffdbd(%rip), %ecx    # 0x442d4c
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x9c(%rbp), %edi
movl -0xd0(%rbp), %esi
movl -0x98(%rbp), %edx
movl -0xd4(%rbp), %ecx
callq 0x43950
movl 0x3ffd96(%rip), %ecx    # 0x442d50
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x64(%rbp)
movl -0x60(%rbp), %edi
subl -0xa4(%rbp), %edi
movl -0xac(%rbp), %esi
subl -0x60(%rbp), %esi
movl -0x64(%rbp), %edx
subl -0xa8(%rbp), %edx
movl -0xb0(%rbp), %ecx
subl -0x64(%rbp), %ecx
callq 0x43990
orl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x60(%rbp), %eax
movl %eax, 0x3ffd66(%rip)    # 0x442d60
movl -0x64(%rbp), %eax
movl %eax, 0x403d5d(%rip)    # 0x446d60
movl -0x70(%rbp), %eax
subl -0x4(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x74(%rbp), %eax
subl -0x8(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %edi
movl -0xc8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xcc(%rbp), %ecx
callq 0x43950
movl 0x3ffd0c(%rip), %ecx    # 0x442d4c
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x9c(%rbp), %edi
movl -0xd0(%rbp), %esi
movl -0x98(%rbp), %edx
movl -0xd4(%rbp), %ecx
callq 0x43950
movl 0x3ffce5(%rip), %ecx    # 0x442d50
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x64(%rbp)
movl -0x60(%rbp), %edi
subl -0xa4(%rbp), %edi
movl -0xac(%rbp), %esi
subl -0x60(%rbp), %esi
movl -0x64(%rbp), %edx
subl -0xa8(%rbp), %edx
movl -0xb0(%rbp), %ecx
subl -0x64(%rbp), %ecx
callq 0x43990
orl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x60(%rbp), %eax
movl %eax, 0x3ffcb9(%rip)    # 0x442d64
movl -0x64(%rbp), %eax
movl %eax, 0x403cb0(%rip)    # 0x446d64
movl -0x78(%rbp), %eax
subl -0x4(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x7c(%rbp), %eax
subl -0x8(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %edi
movl -0xc8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xcc(%rbp), %ecx
callq 0x43950
movl 0x3ffc5b(%rip), %ecx    # 0x442d4c
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x60(%rbp)
movl -0x9c(%rbp), %edi
movl -0xd0(%rbp), %esi
movl -0x98(%rbp), %edx
movl -0xd4(%rbp), %ecx
callq 0x43950
movl 0x3ffc34(%rip), %ecx    # 0x442d50
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x64(%rbp)
movl -0x60(%rbp), %edi
subl -0xa4(%rbp), %edi
movl -0xac(%rbp), %esi
subl -0x60(%rbp), %esi
movl -0x64(%rbp), %edx
subl -0xa8(%rbp), %edx
movl -0xb0(%rbp), %ecx
subl -0x64(%rbp), %ecx
callq 0x43990
orl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x60(%rbp), %eax
movl %eax, 0x3ffc0c(%rip)    # 0x442d68
movl -0x64(%rbp), %eax
movl %eax, 0x403c03(%rip)    # 0x446d68
movl 0x3ffbf5(%rip), %eax    # 0x442d60
addl 0x3ffbf7(%rip), %eax    # 0x442d68
subl 0x3ffbed(%rip), %eax    # 0x442d64
movl %eax, -0x60(%rbp)
movl 0x403be0(%rip), %eax    # 0x446d60
addl 0x403be2(%rip), %eax    # 0x446d68
subl 0x403bd8(%rip), %eax    # 0x446d64
movl %eax, -0x64(%rbp)
movl -0x60(%rbp), %edi
subl -0xa4(%rbp), %edi
movl -0xac(%rbp), %esi
subl -0x60(%rbp), %esi
movl -0x64(%rbp), %edx
subl -0xa8(%rbp), %edx
movl -0xb0(%rbp), %ecx
subl -0x64(%rbp), %ecx
callq 0x43990
orl -0x38(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x60(%rbp), %eax
movl %eax, 0x3ffba5(%rip)    # 0x442d6c
movl -0x64(%rbp), %eax
movl %eax, 0x403b9c(%rip)    # 0x446d6c
movl -0x38(%rbp), %eax
andl $0xf0, %eax
cmpl $0xf0, %eax
je 0x431e4
jmp 0x43860
movl 0x3ffb76(%rip), %eax    # 0x442d60
movl %eax, -0x88(%rbp)
movl 0x403b6a(%rip), %edi    # 0x446d60
movl 0x3ffb54(%rip), %eax    # 0x442d50
shll $0xb, %eax
subl %eax, %edi
movl 0x357211(%rip), %esi    # 0x39a418
callq 0x39010
movl 0x3ffb3e(%rip), %ecx    # 0x442d50
shll $0xb, %ecx
addl %ecx, %eax
movl %eax, -0x8c(%rbp)
movl -0x38(%rbp), %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x4324c
movl -0xc4(%rbp), %edi
movl -0x38(%rbp), %esi
callq 0x43a00
movl %eax, -0xc4(%rbp)
cmpl $0x3, -0xc4(%rbp)
jge 0x4324a
jmp 0x43860
jmp 0x4324c
movq -0x28(%rbp), %rax
movw 0xe(%rax), %ax
movw %ax, 0x407b15(%rip)     # 0x44ad70
movswl 0x407b0e(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x43272
movw $0x0, 0x407afe(%rip)    # 0x44ad70
movswl 0x407af7(%rip), %edi    # 0x44ad70
callq 0x44d80
movswq 0x407aea(%rip), %rcx    # 0x44ad70
leaq 0x407af3(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x432ae
movswq 0x407ad2(%rip), %rcx    # 0x44ad70
leaq 0x3f929b(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jg 0x432b3
jmp 0x43860
movswq 0x407ab5(%rip), %rcx    # 0x44ad70
leaq 0x2342fe(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x432f9
movw 0x407a9a(%rip), %cx     # 0x44ad70
movl -0x90(%rbp), %eax
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x407a80(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x407a77(%rip)     # 0x44ad70
movswq 0x407a6f(%rip), %rcx    # 0x44ad70
leaq 0x392b38(%rip), %rax    # 0x3d5e40
cmpq $0x0, (%rax,%rcx,8)
jne 0x4331b
movswl 0x407a5a(%rip), %edi    # 0x44ad70
callq 0x44df0
movswq 0x407a4d(%rip), %rcx    # 0x44ad70
leaq 0x392b16(%rip), %rax    # 0x3d5e40
movq (%rax,%rcx,8), %rax
movq %rax, 0x40c24b(%rip)    # 0x44f580
movq -0x28(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x23d27b(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jle 0x4337b
movq -0x28(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x23d258(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movsbl 0x14(%rax), %eax
movl %eax, 0x40c213(%rip)    # 0x44f58c
jmp 0x4339c
movq -0x28(%rbp), %rax
movswq 0x18(%rax), %rcx
leaq 0x23d235(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movsbl 0x1c(%rax), %eax
movl %eax, 0x40c1f0(%rip)    # 0x44f58c
movl 0x40c1ea(%rip), %eax    # 0x44f58c
movq -0x28(%rbp), %rcx
movsbl 0x10(%rcx), %ecx
addl %ecx, %eax
addl $0x6, %eax
movswl 0x40c1d2(%rip), %ecx    # 0x44f588
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x433d8
movl 0x40c1c9(%rip), %eax    # 0x44f58c
movq -0x28(%rbp), %rcx
movsbl 0x10(%rcx), %ecx
addl %ecx, %eax
addl $0x6, %eax
movl %eax, -0x100(%rbp)
jmp 0x433e8
movswl 0x40c1a9(%rip), %eax    # 0x44f588
subl $0x1, %eax
movl %eax, -0x100(%rbp)
movl -0x100(%rbp), %eax
cmpl $0x0, %eax
jle 0x4344d
movl 0x40c193(%rip), %eax    # 0x44f58c
movq -0x28(%rbp), %rcx
movsbl 0x10(%rcx), %ecx
addl %ecx, %eax
addl $0x6, %eax
movswl 0x40c17b(%rip), %ecx    # 0x44f588
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x4342f
movl 0x40c172(%rip), %eax    # 0x44f58c
movq -0x28(%rbp), %rcx
movsbl 0x10(%rcx), %ecx
addl %ecx, %eax
addl $0x6, %eax
movl %eax, -0x104(%rbp)
jmp 0x4343f
movswl 0x40c152(%rip), %eax    # 0x44f588
subl $0x1, %eax
movl %eax, -0x104(%rbp)
movl -0x104(%rbp), %eax
movl %eax, -0x108(%rbp)
jmp 0x43457
xorl %eax, %eax
movl %eax, -0x108(%rbp)
jmp 0x43457
movl -0x108(%rbp), %eax
movl %eax, 0x40c129(%rip)    # 0x44f58c
movq -0x28(%rbp), %rax
movzbl 0x11(%rax), %eax
movl %eax, %ecx
leaq 0x3921cc(%rip), %rax    # 0x3d5640
movq (%rax,%rcx,8), %rax
movl 0x40c10e(%rip), %ecx    # 0x44f58c
shll $0x8, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, 0x40e532(%rip)    # 0x4519c0
movl 0x3c8410(%rip), %eax    # 0x40b8a4
movl %eax, 0x40c0f6(%rip)    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x434c6
movl 0x40c0e3(%rip), %edi    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x40c0ca(%rip)    # 0x44f590
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
sarl %eax
addl $0x1, %eax
movb %al, 0x40c0b8(%rip)     # 0x44f594
movl -0x70(%rbp), %eax
subl -0x68(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x74(%rbp), %eax
subl -0x6c(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %eax
imull -0x98(%rbp), %eax
movl -0x9c(%rbp), %ecx
imull -0x9c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
jne 0x4351e
jmp 0x43860
movl $0x40000000, %eax       # imm = 0x40000000
cltd
idivl -0x38(%rbp)
movl %eax, -0x38(%rbp)
movl -0x98(%rbp), %edi
movl -0xb4(%rbp), %esi
movl -0x9c(%rbp), %edx
movl -0xb8(%rbp), %ecx
callq 0x45030
movl %eax, %edi
movl -0x38(%rbp), %esi
callq 0x45010
movl %eax, 0x40c041(%rip)    # 0x44f598
movl -0x98(%rbp), %edi
movl -0xb8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xb4(%rbp), %ecx
callq 0x45030
movl %eax, %edi
movl -0x38(%rbp), %esi
callq 0x45010
movl %eax, 0x40c016(%rip)    # 0x44f59c
movl -0x6c(%rbp), %eax
subl -0x84(%rbp), %eax
movl %eax, -0x98(%rbp)
movl -0x80(%rbp), %eax
subl -0x68(%rbp), %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %eax
imull -0x98(%rbp), %eax
movl -0x9c(%rbp), %ecx
imull -0x9c(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x38(%rbp)
cmpl $0x0, -0x38(%rbp)
jne 0x435cb
jmp 0x43860
movl $0x40000000, %eax       # imm = 0x40000000
cltd
idivl -0x38(%rbp)
movl %eax, -0x38(%rbp)
movl -0x98(%rbp), %edi
movl -0xb4(%rbp), %esi
movl -0x9c(%rbp), %edx
movl -0xb8(%rbp), %ecx
callq 0x45030
movl %eax, %edi
movl -0x38(%rbp), %esi
callq 0x45010
movl %eax, 0x40bf9c(%rip)    # 0x44f5a0
movl -0x98(%rbp), %edi
movl -0xb8(%rbp), %esi
xorl %edx, %edx
subl -0x9c(%rbp), %edx
movl -0xb4(%rbp), %ecx
callq 0x45030
movl %eax, %edi
movl -0x38(%rbp), %esi
callq 0x45010
movl %eax, 0x40bf71(%rip)    # 0x44f5a4
movswq 0x407735(%rip), %rcx    # 0x44ad70
leaq 0x40bf6e(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %eax
sarl $0x4, %eax
andl $0xf, %eax
movl %eax, -0x9c(%rbp)
movl -0x98(%rbp), %eax
andl $0xf, %eax
movl %eax, -0x98(%rbp)
movslq -0x98(%rbp), %rcx
leaq 0x9d625(%rip), %rax     # 0xe0ca0
movl (%rax,%rcx,4), %eax
cmpl -0x50(%rbp), %eax
je 0x436c6
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
movl 0x40bf00(%rip), %edi    # 0x44f598
movl -0x50(%rbp), %esi
movl -0x98(%rbp), %edx
callq 0x45700
movl %eax, 0x40beec(%rip)    # 0x44f598
movl 0x40beea(%rip), %edi    # 0x44f59c
movl -0x50(%rbp), %esi
movl -0x98(%rbp), %edx
callq 0x45700
movl %eax, 0x40bed6(%rip)    # 0x44f59c
movl -0x88(%rbp), %eax
sarl $0x4, %eax
movl 0x3ff677(%rip), %ecx    # 0x442d4c
shll $0x7, %ecx
subl %ecx, %eax
movl %eax, -0x88(%rbp)
movl -0x8c(%rbp), %eax
sarl $0x4, %eax
movl 0x3ff661(%rip), %ecx    # 0x442d50
shll $0x7, %ecx
subl %ecx, %eax
movl %eax, -0x8c(%rbp)
xorl %edi, %edi
subl -0x8c(%rbp), %edi
movl 0x40be90(%rip), %esi    # 0x44f598
xorl %edx, %edx
subl -0x88(%rbp), %edx
movl 0x40be86(%rip), %ecx    # 0x44f59c
callq 0x45070
movl %eax, 0x233e8f(%rip)    # 0x2775b0
movl -0x88(%rbp), %edi
movl 0x40be73(%rip), %esi    # 0x44f5a0
xorl %edx, %edx
subl -0x8c(%rbp), %edx
movl 0x40be69(%rip), %ecx    # 0x44f5a4
callq 0x45070
movl %eax, 0x233e6e(%rip)    # 0x2775b4
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jne 0x43769
movl -0x98(%rbp), %edi
movl -0x9c(%rbp), %esi
callq 0xa7b90
jmp 0x43798
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x43782
callq 0xa75a0
jmp 0x43787
callq 0xa7590
movl -0x98(%rbp), %edi
movl -0x9c(%rbp), %esi
callq 0xa7ca0
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x437d2
xorl %eax, %eax
subl 0x40bde8(%rip), %eax    # 0x44f598
movl %eax, 0x40bde2(%rip)    # 0x44f598
xorl %eax, %eax
subl 0x40bdde(%rip), %eax    # 0x44f59c
movl %eax, 0x40bdd8(%rip)    # 0x44f59c
xorl %eax, %eax
subl 0x233de4(%rip), %eax    # 0x2775b0
movl %eax, 0x233dde(%rip)    # 0x2775b0
movl 0x40bdc4(%rip), %eax    # 0x44f59c
shll $0x2, %eax
movl %eax, 0x40e1d3(%rip)    # 0x4519b4
movl 0x40bdb1(%rip), %eax    # 0x44f598
shll $0x2, %eax
movl %eax, 0x40bda8(%rip)    # 0x44f598
movl 0x233dba(%rip), %eax    # 0x2775b0
shll $0x16, %eax
movl %eax, 0x233db1(%rip)    # 0x2775b0
movl 0x40bd9b(%rip), %eax    # 0x44f5a0
shll $0x2, %eax
movl %eax, 0x40e1aa(%rip)    # 0x4519b8
movl 0x40bd90(%rip), %eax    # 0x44f5a4
shll $0x2, %eax
movl %eax, 0x40bd87(%rip)    # 0x44f5a4
movl 0x233d91(%rip), %eax    # 0x2775b4
shll $0x16, %eax
movl %eax, 0x233d88(%rip)    # 0x2775b4
movq -0x28(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x2, %eax
shll $0x7, %eax
movq -0x28(%rbp), %rcx
movswl 0xc(%rcx), %ecx
andl $0x200, %ecx            # imm = 0x200
sarl $0x2, %ecx
orl %ecx, %eax
movl %eax, 0x40750d(%rip)    # 0x44ad60
movl -0xc4(%rbp), %edi
callq 0x450d0
jmp 0x43860
movl -0x90(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x42c72
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopl (%rax)