// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/engine.c
// Function: drawalls
static void drawalls(int bunch)
{
	sectortype *sec, *nextsec;
	walltype *wal;
	int i, x, x1, x2, cz[5], fz[5];
	int z, wallnum, sectnum, nextsectnum;
	int startsmostwallcnt, startsmostcnt, gotswall;
	unsigned char andwstat1, andwstat2;

	z = bunchfirst[bunch];
	sectnum = thesector[z]; sec = &sector[sectnum];

	andwstat1 = 0xff; andwstat2 = 0xff;
	for(;z>=0;z=p2[z])  //uplc/dplc calculation
	{
		andwstat1 &= wallmost(uplc,z,sectnum,(char)0);
		andwstat2 &= wallmost(dplc,z,sectnum,(char)1);
	}

	if ((andwstat1&3) != 3)     //draw ceilings
	{
		if ((sec->ceilingstat&3) == 2)
			grouscan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,0);
		else if ((sec->ceilingstat&1) == 0)
			ceilscan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum);
		else
			parascan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,0,bunch);
	}
	if ((andwstat2&12) != 12)   //draw floors
	{
		if ((sec->floorstat&3) == 2)
			grouscan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,1);
		else if ((sec->floorstat&1) == 0)
			florscan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum);
		else
			parascan(xb1[bunchfirst[bunch]],xb2[bunchlast[bunch]],sectnum,1,bunch);
	}

		//DRAW WALLS SECTION!
	for(z=bunchfirst[bunch];z>=0;z=p2[z])
	{
		x1 = xb1[z]; x2 = xb2[z];
		if (umost[x2] >= dmost[x2])
		{
			for(x=x1;x<x2;x++)
				if (umost[x] < dmost[x]) break;
			if (x >= x2)
			{
				smostwall[smostwallcnt] = z;
				smostwalltype[smostwallcnt] = 0;
				smostwallcnt++;
				continue;
			}
		}

		wallnum = thewall[z]; wal = &wall[wallnum];
		nextsectnum = wal->nextsector; nextsec = &sector[nextsectnum];

		gotswall = 0;

		startsmostwallcnt = smostwallcnt;
		startsmostcnt = smostcnt;

		if ((searchit == 2) && (searchx >= x1) && (searchx <= x2))
		{
			if (searchy <= uplc[searchx]) //ceiling
			{
				searchsector = sectnum; searchwall = wallnum;
				searchstat = 1; searchit = 1;
			}
			else if (searchy >= dplc[searchx]) //floor
			{
				searchsector = sectnum; searchwall = wallnum;
				searchstat = 2; searchit = 1;
			}
		}

		if (nextsectnum >= 0)
		{
			getzsofslope((short)sectnum,wal->x,wal->y,&cz[0],&fz[0]);
			getzsofslope((short)sectnum,wall[wal->point2].x,wall[wal->point2].y,&cz[1],&fz[1]);
			getzsofslope((short)nextsectnum,wal->x,wal->y,&cz[2],&fz[2]);
			getzsofslope((short)nextsectnum,wall[wal->point2].x,wall[wal->point2].y,&cz[3],&fz[3]);
			getzsofslope((short)nextsectnum,globalposx,globalposy,&cz[4],&fz[4]);

			if ((wal->cstat&48) == 16) maskwall[maskwallcnt++] = z;

			if (((sec->ceilingstat&1) == 0) || ((nextsec->ceilingstat&1) == 0))
			{
				if ((cz[2] <= cz[0]) && (cz[3] <= cz[1]))
				{
					if (globparaceilclip)
						for(x=x1;x<=x2;x++)
							if (uplc[x] > umost[x])
								if (umost[x] <= dmost[x])
								{
									umost[x] = uplc[x];
									if (umost[x] > dmost[x]) numhits--;
								}
				}
				else
				{
					wallmost(dwall,z,nextsectnum,(char)0);
					if ((cz[2] > fz[0]) || (cz[3] > fz[1]))
						for(i=x1;i<=x2;i++) if (dwall[i] > dplc[i]) dwall[i] = dplc[i];

					if ((searchit == 2) && (searchx >= x1) && (searchx <= x2))
						if (searchy <= dwall[searchx]) //wall
						{
							searchsector = sectnum; searchwall = wallnum;
							searchstat = 0; searchit = 1;
						}

					globalorientation = (int)wal->cstat;
					globalpicnum = wal->picnum;
					if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
					globalxpanning = (int)wal->xpanning;
					globalypanning = (int)wal->ypanning;
					globalshiftval = (picsiz[globalpicnum]>>4);
					if (pow2long[globalshiftval] != tilesizy[globalpicnum]) globalshiftval++;
					globalshiftval = 32-globalshiftval;
					if (picanm[globalpicnum]&192) globalpicnum += animateoffs(globalpicnum,(short)wallnum+16384);
					globalshade = (int)wal->shade;
					globvis = globalvisibility;
					if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));
					globalpal = (int)wal->pal;
					if (palookup[globalpal] == 0) globalpal = 0;	// JBF: fixes crash
					globalyscale = (wal->yrepeat<<(globalshiftval-19));
					if ((globalorientation&4) == 0)
						globalzd = (((globalposz-nextsec->ceilingz)*globalyscale)<<8);
					else
						globalzd = (((globalposz-sec->ceilingz)*globalyscale)<<8);
					globalzd += (globalypanning<<24);
					if (globalorientation&256) globalyscale = -globalyscale, globalzd = -globalzd;

					if (gotswall == 0) { gotswall = 1; prepwall(z,wal); }
					wallscan(x1,x2,uplc,dwall,swall,lwall);

					if ((cz[2] >= cz[0]) && (cz[3] >= cz[1]))
					{
						for(x=x1;x<=x2;x++)
							if (dwall[x] > umost[x])
								if (umost[x] <= dmost[x])
								{
									umost[x] = dwall[x];
									if (umost[x] > dmost[x]) numhits--;
								}
					}
					else
					{
						for(x=x1;x<=x2;x++)
							if (umost[x] <= dmost[x])
							{
								i = max(uplc[x],dwall[x]);
								if (i > umost[x])
								{
									umost[x] = i;
									if (umost[x] > dmost[x]) numhits--;
								}
							}
					}
				}
				if ((cz[2] < cz[0]) || (cz[3] < cz[1]) || (globalposz < cz[4]))
				{
					i = x2-x1+1;
					if (smostcnt+i < MAXYSAVES)
					{
						smoststart[smostwallcnt] = smostcnt;
						smostwall[smostwallcnt] = z;
						smostwalltype[smostwallcnt] = 1;   //1 for umost
						smostwallcnt++;
						copybufbyte(&umost[x1],&smost[smostcnt],i*sizeof(smost[0]));
						smostcnt += i;
					}
				}
			}
			if (((sec->floorstat&1) == 0) || ((nextsec->floorstat&1) == 0))
			{
				if ((fz[2] >= fz[0]) && (fz[3] >= fz[1]))
				{
					if (globparaflorclip)
						for(x=x1;x<=x2;x++)
							if (dplc[x] < dmost[x])
								if (umost[x] <= dmost[x])
								{
									dmost[x] = dplc[x];
									if (umost[x] > dmost[x]) numhits--;
								}
				}
				else
				{
					wallmost(uwall,z,nextsectnum,(char)1);
					if ((fz[2] < cz[0]) || (fz[3] < cz[1]))
						for(i=x1;i<=x2;i++) if (uwall[i] < uplc[i]) uwall[i] = uplc[i];

					if ((searchit == 2) && (searchx >= x1) && (searchx <= x2))
						if (searchy >= uwall[searchx]) //wall
						{
							searchsector = sectnum; searchwall = wallnum;
							if ((wal->cstat&2) > 0) searchwall = wal->nextwall;
							searchstat = 0; searchit = 1;
						}

					if ((wal->cstat&2) > 0)
					{
						wallnum = wal->nextwall; wal = &wall[wallnum];
						globalorientation = (int)wal->cstat;
						globalpicnum = wal->picnum;
						if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
						globalxpanning = (int)wal->xpanning;
						globalypanning = (int)wal->ypanning;
						if (picanm[globalpicnum]&192) globalpicnum += animateoffs(globalpicnum,(short)wallnum+16384);
						globalshade = (int)wal->shade;
						globalpal = (int)wal->pal;
						wallnum = thewall[z]; wal = &wall[wallnum];
					}
					else
					{
						globalorientation = (int)wal->cstat;
						globalpicnum = wal->picnum;
						if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
						globalxpanning = (int)wal->xpanning;
						globalypanning = (int)wal->ypanning;
						if (picanm[globalpicnum]&192) globalpicnum += animateoffs(globalpicnum,(short)wallnum+16384);
						globalshade = (int)wal->shade;
						globalpal = (int)wal->pal;
					}
					if (palookup[globalpal] == 0) globalpal = 0;	// JBF: fixes crash
					globvis = globalvisibility;
					if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));
					globalshiftval = (picsiz[globalpicnum]>>4);
					if (pow2long[globalshiftval] != tilesizy[globalpicnum]) globalshiftval++;
					globalshiftval = 32-globalshiftval;
					globalyscale = (wal->yrepeat<<(globalshiftval-19));
					if ((globalorientation&4) == 0)
						globalzd = (((globalposz-nextsec->floorz)*globalyscale)<<8);
					else
						globalzd = (((globalposz-sec->ceilingz)*globalyscale)<<8);
					globalzd += (globalypanning<<24);
					if (globalorientation&256) globalyscale = -globalyscale, globalzd = -globalzd;

					if (gotswall == 0) { gotswall = 1; prepwall(z,wal); }
					wallscan(x1,x2,uwall,dplc,swall,lwall);

					if ((fz[2] <= fz[0]) && (fz[3] <= fz[1]))
					{
						for(x=x1;x<=x2;x++)
							if (uwall[x] < dmost[x])
								if (umost[x] <= dmost[x])
								{
									dmost[x] = uwall[x];
									if (umost[x] > dmost[x]) numhits--;
								}
					}
					else
					{
						for(x=x1;x<=x2;x++)
							if (umost[x] <= dmost[x])
							{
								i = min(dplc[x],uwall[x]);
								if (i < dmost[x])
								{
									dmost[x] = i;
									if (umost[x] > dmost[x]) numhits--;
								}
							}
					}
				}
				if ((fz[2] > fz[0]) || (fz[3] > fz[1]) || (globalposz > fz[4]))
				{
					i = x2-x1+1;
					if (smostcnt+i < MAXYSAVES)
					{
						smoststart[smostwallcnt] = smostcnt;
						smostwall[smostwallcnt] = z;
						smostwalltype[smostwallcnt] = 2;   //2 for dmost
						smostwallcnt++;
						copybufbyte(&dmost[x1],&smost[smostcnt],i*sizeof(smost[0]));
						smostcnt += i;
					}
				}
			}
			if (numhits < 0) return;
			if ((!(wal->cstat&32)) && ((gotsector[nextsectnum>>3]&pow2char[nextsectnum&7]) == 0))
			{
				if (umost[x2] < dmost[x2])
					scansector(nextsectnum);
				else
				{
					for(x=x1;x<x2;x++)
						if (umost[x] < dmost[x])
							{ scansector(nextsectnum); break; }

						//If can't see sector beyond, then cancel smost array and just
						//store wall!
					if (x == x2)
					{
						smostwallcnt = startsmostwallcnt;
						smostcnt = startsmostcnt;
						smostwall[smostwallcnt] = z;
						smostwalltype[smostwallcnt] = 0;
						smostwallcnt++;
					}
				}
			}
		}
		if ((nextsectnum < 0) || (wal->cstat&32))   //White/1-way wall
		{
			globalorientation = (int)wal->cstat;
			if (nextsectnum < 0) globalpicnum = wal->picnum;
								  else globalpicnum = wal->overpicnum;
			if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
			globalxpanning = (int)wal->xpanning;
			globalypanning = (int)wal->ypanning;
			if (picanm[globalpicnum]&192) globalpicnum += animateoffs(globalpicnum,(short)wallnum+16384);
			globalshade = (int)wal->shade;
			globvis = globalvisibility;
			if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));
			globalpal = (int)wal->pal;
			if (palookup[globalpal] == 0) globalpal = 0;	// JBF: fixes crash
			globalshiftval = (picsiz[globalpicnum]>>4);
			if (pow2long[globalshiftval] != tilesizy[globalpicnum]) globalshiftval++;
			globalshiftval = 32-globalshiftval;
			globalyscale = (wal->yrepeat<<(globalshiftval-19));
			if (nextsectnum >= 0)
			{
				if ((globalorientation&4) == 0) globalzd = globalposz-nextsec->ceilingz;
													else globalzd = globalposz-sec->ceilingz;
			}
			else
			{
				if ((globalorientation&4) == 0) globalzd = globalposz-sec->ceilingz;
													else globalzd = globalposz-sec->floorz;
			}
			globalzd = ((globalzd*globalyscale)<<8) + (globalypanning<<24);
			if (globalorientation&256) globalyscale = -globalyscale, globalzd = -globalzd;

			if (gotswall == 0) { gotswall = 1; prepwall(z,wal); }
			wallscan(x1,x2,uplc,dplc,swall,lwall);

			for(x=x1;x<=x2;x++)
				if (umost[x] <= dmost[x])
					{ umost[x] = 1; dmost[x] = 0; numhits--; }
			smostwall[smostwallcnt] = z;
			smostwalltype[smostwallcnt] = 0;
			smostwallcnt++;

			if ((searchit == 2) && (searchx >= x1) && (searchx <= x2))
			{
				searchit = 1; searchsector = sectnum; searchwall = wallnum;
				if (nextsectnum < 0) searchstat = 0; else searchstat = 4;
			}
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movl %edi, -0x4(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0x3d8567(%rip), %rax    # 0x412520
movswl (%rax,%rcx,2), %eax
movl %eax, -0x74(%rbp)
movslq -0x74(%rbp), %rcx
leaq 0x449c05(%rip), %rax    # 0x483bd0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x7c(%rbp)
movslq -0x7c(%rbp), %rcx
leaq 0x2465e3(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movb $-0x1, -0x8d(%rbp)
movb $-0x1, -0x8e(%rbp)
cmpl $0x0, -0x74(%rbp)
jl 0x3a05d
movl -0x74(%rbp), %esi
movl -0x7c(%rbp), %edx
leaq 0x44bbc7(%rip), %rdi    # 0x485bd0
xorl %ecx, %ecx
callq 0x36310
movl %eax, %ecx
movzbl -0x8d(%rbp), %eax
andl %ecx, %eax
movb %al, -0x8d(%rbp)
movl -0x74(%rbp), %esi
movl -0x7c(%rbp), %edx
leaq 0x44d222(%rip), %rdi    # 0x487250
movl $0x1, %ecx
callq 0x36310
movl %eax, %ecx
movzbl -0x8e(%rbp), %eax
andl %ecx, %eax
movb %al, -0x8e(%rbp)
movslq -0x74(%rbp), %rcx
leaq 0x3e04dc(%rip), %rax    # 0x41a530
movswl (%rax,%rcx,2), %eax
movl %eax, -0x74(%rbp)
jmp 0x39ff6
movzbl -0x8d(%rbp), %eax
andl $0x3, %eax
cmpl $0x3, %eax
je 0x3a157
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x3, %eax
cmpl $0x2, %eax
jne 0x3a0c3
movslq -0x4(%rbp), %rcx
leaq 0x3d8495(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x26e539(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %edi
movslq -0x4(%rbp), %rcx
leaq 0x3da47b(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x27252f(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movl -0x7c(%rbp), %edx
xorl %ecx, %ecx
callq 0x5aee0
jmp 0x3a155
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x3a111
movslq -0x4(%rbp), %rcx
leaq 0x3d8442(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x26e4e6(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %edi
movslq -0x4(%rbp), %rcx
leaq 0x3da428(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x2724dc(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movl -0x7c(%rbp), %edx
callq 0x5bdc0
jmp 0x3a153
movslq -0x4(%rbp), %rcx
leaq 0x3d8404(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x26e4a8(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %edi
movslq -0x4(%rbp), %rcx
leaq 0x3da3ea(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x27249e(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movl -0x7c(%rbp), %edx
movl -0x4(%rbp), %r8d
xorl %ecx, %ecx
callq 0x5ca90
jmp 0x3a155
jmp 0x3a157
movzbl -0x8e(%rbp), %eax
andl $0xc, %eax
cmpl $0xc, %eax
je 0x3a257
movq -0x10(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x3, %eax
cmpl $0x2, %eax
jne 0x3a1c0
movslq -0x4(%rbp), %rcx
leaq 0x3d839b(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x26e43f(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %edi
movslq -0x4(%rbp), %rcx
leaq 0x3da381(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x272435(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movl -0x7c(%rbp), %edx
movl $0x1, %ecx
callq 0x5aee0
jmp 0x3a255
movq -0x10(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x3a20e
movslq -0x4(%rbp), %rcx
leaq 0x3d8345(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x26e3e9(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %edi
movslq -0x4(%rbp), %rcx
leaq 0x3da32b(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x2723df(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movl -0x7c(%rbp), %edx
callq 0x5d3a0
jmp 0x3a253
movslq -0x4(%rbp), %rcx
leaq 0x3d8307(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x26e3ab(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %edi
movslq -0x4(%rbp), %rcx
leaq 0x3da2ed(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x2723a1(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movl -0x7c(%rbp), %edx
movl -0x4(%rbp), %r8d
movl $0x1, %ecx
callq 0x5ca90
jmp 0x3a255
jmp 0x3a257
movslq -0x4(%rbp), %rcx
leaq 0x3d82be(%rip), %rax    # 0x412520
movswl (%rax,%rcx,2), %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jl 0x3ba21
movslq -0x74(%rbp), %rcx
leaq 0x26e352(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %eax
movl %eax, -0x2c(%rbp)
movslq -0x74(%rbp), %rcx
leaq 0x272351(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %eax
movl %eax, -0x30(%rbp)
movslq -0x30(%rbp), %rcx
leaq 0x3d5550(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x30(%rbp), %rdx
leaq 0x3d6bc1(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jl 0x3a33e
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x3a2fa
movslq -0x28(%rbp), %rcx
leaq 0x3d551c(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d6b8d(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3a2ed
jmp 0x3a2fa
jmp 0x3a2ef
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3a2c1
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jl 0x3a33c
movl -0x74(%rbp), %edx
movslq 0xa6e40(%rip), %rcx     # 0xe114c
leaq 0x49dd3d(%rip), %rax    # 0x4d8050
movl %edx, (%rax,%rcx,4)
movslq 0xa6e2f(%rip), %rcx     # 0xe114c
leaq 0x4a1d2c(%rip), %rax    # 0x4dc050
movb $0x0, (%rax,%rcx)
movl 0xa6e1e(%rip), %eax     # 0xe114c
addl $0x1, %eax
movl %eax, 0xa6e15(%rip)     # 0xe114c
jmp 0x3ba0a
jmp 0x3a33e
movslq -0x74(%rbp), %rcx
leaq 0x23b267(%rip), %rax    # 0x2755b0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x78(%rbp)
movslq -0x78(%rbp), %rcx
leaq 0x1bb255(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movswl 0xc(%rax), %eax
movl %eax, -0x80(%rbp)
movslq -0x80(%rbp), %rcx
leaq 0x246244(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movl $0x0, -0x8c(%rbp)
movl 0xa6db5(%rip), %eax     # 0xe114c
movl %eax, -0x84(%rbp)
movswl 0x3d815c(%rip), %eax    # 0x412500
movl %eax, -0x88(%rbp)
movswl 0x39b27f(%rip), %eax    # 0x3d5630
cmpl $0x2, %eax
jne 0x3a462
movl 0xa6d70(%rip), %eax     # 0xe1130
cmpl -0x2c(%rbp), %eax
jl 0x3a462
movl 0xa6d61(%rip), %eax     # 0xe1130
cmpl -0x30(%rbp), %eax
jg 0x3a462
movl 0x4192ca(%rip), %eax    # 0x4536a8
movslq 0xa6d4b(%rip), %rdx     # 0xe1130
leaq 0x44b7e4(%rip), %rcx    # 0x485bd0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3a41c
movl -0x7c(%rbp), %eax
movw %ax, 0x4503b2(%rip)     # 0x48a7b0
movl -0x78(%rbp), %eax
movw %ax, 0x4503aa(%rip)     # 0x48a7b2
movw $0x1, 0x39b221(%rip)    # 0x3d5632
movw $0x1, 0x39b216(%rip)    # 0x3d5630
jmp 0x3a460
movl 0x419286(%rip), %eax    # 0x4536a8
movslq 0xa6d07(%rip), %rdx     # 0xe1130
leaq 0x44ce20(%rip), %rcx    # 0x487250
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jl 0x3a45e
movl -0x7c(%rbp), %eax
movw %ax, 0x45036e(%rip)     # 0x48a7b0
movl -0x78(%rbp), %eax
movw %ax, 0x450366(%rip)     # 0x48a7b2
movw $0x2, 0x39b1dd(%rip)    # 0x3d5632
movw $0x1, 0x39b1d2(%rip)    # 0x3d5630
jmp 0x3a460
jmp 0x3a462
cmpl $0x0, -0x80(%rbp)
jl 0x3b638
movl -0x7c(%rbp), %eax
movq -0x20(%rbp), %rcx
movl (%rcx), %esi
movq -0x20(%rbp), %rcx
movl 0x4(%rcx), %edx
leaq -0x50(%rbp), %rcx
leaq -0x70(%rbp), %r8
movswl %ax, %edi
callq 0x393f0
movl -0x7c(%rbp), %eax
movq -0x20(%rbp), %rcx
movswq 0x8(%rcx), %rdx
leaq 0x1bb111(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
movl (%rcx), %esi
movq -0x20(%rbp), %rcx
movswq 0x8(%rcx), %rdx
leaq 0x1bb0f8(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
movl 0x4(%rcx), %edx
leaq -0x50(%rbp), %rcx
addq $0x4, %rcx
leaq -0x70(%rbp), %r8
addq $0x4, %r8
movswl %ax, %edi
callq 0x393f0
movl -0x80(%rbp), %eax
movq -0x20(%rbp), %rcx
movl (%rcx), %esi
movq -0x20(%rbp), %rcx
movl 0x4(%rcx), %edx
leaq -0x50(%rbp), %rcx
addq $0x8, %rcx
leaq -0x70(%rbp), %r8
addq $0x8, %r8
movswl %ax, %edi
callq 0x393f0
movl -0x80(%rbp), %eax
movq -0x20(%rbp), %rcx
movswq 0x8(%rcx), %rdx
leaq 0x1bb09b(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
movl (%rcx), %esi
movq -0x20(%rbp), %rcx
movswq 0x8(%rcx), %rdx
leaq 0x1bb082(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
movl 0x4(%rcx), %edx
leaq -0x50(%rbp), %rcx
addq $0xc, %rcx
leaq -0x70(%rbp), %r8
addq $0xc, %r8
movswl %ax, %edi
callq 0x393f0
movl -0x80(%rbp), %eax
movl 0x23d057(%rip), %esi    # 0x2775b0
movl 0x23d055(%rip), %edx    # 0x2775b4
leaq -0x50(%rbp), %rcx
addq $0x10, %rcx
leaq -0x70(%rbp), %r8
addq $0x10, %r8
movswl %ax, %edi
callq 0x393f0
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x30, %eax
cmpl $0x10, %eax
jne 0x3a5b1
movl -0x74(%rbp), %eax
movw %ax, %dx
movw 0x3d7f6a(%rip), %ax     # 0x4124fe
movw %ax, %cx
addw $0x1, %cx
movw %cx, 0x3d7f5c(%rip)     # 0x4124fe
movswq %ax, %rcx
leaq 0x406793(%rip), %rax    # 0x440d40
movw %dx, (%rax,%rcx,2)
movq -0x10(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x3a5d5
movq -0x18(%rbp), %rax
movswl 0xc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x3acc0
movl -0x48(%rbp), %eax
cmpl -0x50(%rbp), %eax
jg 0x3a6bd
movl -0x44(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jg 0x3a6bd
cmpb $0x0, 0x3d7f14(%rip)    # 0x412508
je 0x3a6b8
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3a6b6
movslq -0x28(%rbp), %rcx
leaq 0x44b5b9(%rip), %rax    # 0x485bd0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d51ca(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3a6a6
movslq -0x28(%rbp), %rcx
leaq 0x3d51b7(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d6828(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3a6a4
movslq -0x28(%rbp), %rcx
leaq 0x44b575(%rip), %rax    # 0x485bd0
movw (%rax,%rcx,2), %dx
movslq -0x28(%rbp), %rcx
leaq 0x3d5186(%rip), %rax    # 0x40f7f0
movw %dx, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d5177(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d67e8(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3a6a2
movw 0x3d7e61(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d7e56(%rip)     # 0x4124f8
jmp 0x3a6a4
jmp 0x3a6a6
jmp 0x3a6a8
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3a600
jmp 0x3a6b8
jmp 0x3abe7
movl -0x74(%rbp), %esi
movl -0x80(%rbp), %edx
leaq 0x4a2986(%rip), %rdi    # 0x4dd050
xorl %ecx, %ecx
callq 0x36310
movl -0x48(%rbp), %eax
cmpl -0x70(%rbp), %eax
jg 0x3a6e1
movl -0x44(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jle 0x3a73e
movl -0x2c(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3a73c
movslq -0x24(%rbp), %rcx
leaq 0x4a2956(%rip), %rax    # 0x4dd050
movswl (%rax,%rcx,2), %eax
movslq -0x24(%rbp), %rdx
leaq 0x44cb47(%rip), %rcx    # 0x487250
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3a72f
movslq -0x24(%rbp), %rcx
leaq 0x44cb34(%rip), %rax    # 0x487250
movw (%rax,%rcx,2), %dx
movslq -0x24(%rbp), %rcx
leaq 0x4a2925(%rip), %rax    # 0x4dd050
movw %dx, (%rax,%rcx,2)
jmp 0x3a731
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x3a6e7
jmp 0x3a73e
movswl 0x39aeeb(%rip), %eax    # 0x3d5630
cmpl $0x2, %eax
jne 0x3a7a4
movl 0xa69e0(%rip), %eax     # 0xe1130
cmpl -0x2c(%rbp), %eax
jl 0x3a7a4
movl 0xa69d5(%rip), %eax     # 0xe1130
cmpl -0x30(%rbp), %eax
jg 0x3a7a4
movl 0x418f42(%rip), %eax    # 0x4536a8
movslq 0xa69c3(%rip), %rdx     # 0xe1130
leaq 0x4a28dc(%rip), %rcx    # 0x4dd050
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3a7a2
movl -0x7c(%rbp), %eax
movw %ax, 0x45002a(%rip)     # 0x48a7b0
movl -0x78(%rbp), %eax
movw %ax, 0x450022(%rip)     # 0x48a7b2
movw $0x0, 0x39ae99(%rip)    # 0x3d5632
movw $0x1, 0x39ae8e(%rip)    # 0x3d5630
jmp 0x3a7a4
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, 0x4105ae(%rip)    # 0x44ad60
movq -0x20(%rbp), %rax
movw 0x10(%rax), %ax
movw %ax, 0x4105af(%rip)     # 0x44ad70
movswl 0x4105a8(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x3a7d8
movw $0x0, 0x410598(%rip)    # 0x44ad70
movq -0x20(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, 0x44e15a(%rip)    # 0x488940
movq -0x20(%rbp), %rax
movzbl 0x19(%rax), %eax
movl %eax, 0x44e150(%rip)    # 0x488944
movswq 0x410574(%rip), %rcx    # 0x44ad70
leaq 0x414dad(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
sarl $0x4, %eax
movw %ax, 0x44e137(%rip)     # 0x488948
movswq 0x44e12f(%rip), %rcx    # 0x488948
leaq 0xa6480(%rip), %rax     # 0xe0ca0
movl (%rax,%rcx,4), %eax
movswq 0x410545(%rip), %rdx    # 0x44ad70
leaq 0x401d0e(%rip), %rcx    # 0x43c540
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
je 0x3a84c
movw 0x44e107(%rip), %ax     # 0x488948
addw $0x1, %ax
movw %ax, 0x44e0fc(%rip)     # 0x488948
movswl 0x44e0f5(%rip), %ecx    # 0x488948
movl $0x20, %eax
subl %ecx, %eax
movw %ax, 0x44e0e7(%rip)     # 0x488948
movswq 0x410507(%rip), %rcx    # 0x44ad70
leaq 0x23cd50(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x3a8aa
movw 0x4104ec(%rip), %cx     # 0x44ad70
movl -0x78(%rbp), %eax
cwtl
addl $0x4000, %eax           # imm = 0x4000
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x4104cf(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x4104c6(%rip)     # 0x44ad70
movq -0x20(%rbp), %rax
movsbl 0x14(%rax), %eax
movl %eax, 0x414cd4(%rip)    # 0x44f58c
movl 0x3d0fe2(%rip), %eax    # 0x40b8a0
movl %eax, 0x414ccc(%rip)    # 0x44f590
movq -0x10(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x3a8f0
movl 0x414cb9(%rip), %edi    # 0x44f590
movq -0x10(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x414ca0(%rip)    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, 0x410466(%rip)    # 0x44ad64
movslq 0x41045f(%rip), %rcx    # 0x44ad64
leaq 0x39ad34(%rip), %rax    # 0x3d5640
cmpq $0x0, (%rax,%rcx,8)
jne 0x3a91d
movl $0x0, 0x410447(%rip)    # 0x44ad64
movq -0x20(%rbp), %rax
movzbl 0x17(%rax), %eax
movswl 0x44e01c(%rip), %ecx    # 0x488948
subl $0x13, %ecx
shll %cl, %eax
movl %eax, 0x44e019(%rip)    # 0x488950
movl 0x410423(%rip), %eax    # 0x44ad60
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x3a964
movl 0x26dc75(%rip), %eax    # 0x2a85c0
movq -0x18(%rbp), %rcx
subl 0x4(%rcx), %eax
imull 0x44dff7(%rip), %eax    # 0x488950
shll $0x8, %eax
movl %eax, 0x44dfea(%rip)    # 0x48894c
jmp 0x3a981
movl 0x26dc56(%rip), %eax    # 0x2a85c0
movq -0x10(%rbp), %rcx
subl 0x4(%rcx), %eax
imull 0x44dfd8(%rip), %eax    # 0x488950
shll $0x8, %eax
movl %eax, 0x44dfcb(%rip)    # 0x48894c
movl 0x44dfbd(%rip), %eax    # 0x488944
shll $0x18, %eax
addl 0x44dfbc(%rip), %eax    # 0x48894c
movl %eax, 0x44dfb6(%rip)    # 0x48894c
movl 0x4103c4(%rip), %eax    # 0x44ad60
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x3a9c2
xorl %eax, %eax
subl 0x44dfa2(%rip), %eax    # 0x488950
movl %eax, 0x44df9c(%rip)    # 0x488950
xorl %eax, %eax
subl 0x44df90(%rip), %eax    # 0x48894c
movl %eax, 0x44df8a(%rip)    # 0x48894c
cmpl $0x0, -0x8c(%rbp)
jne 0x3a9e1
movl $0x1, -0x8c(%rbp)
movl -0x74(%rbp), %edi
movq -0x20(%rbp), %rsi
callq 0x5e180
movl -0x2c(%rbp), %edi
movl -0x30(%rbp), %esi
leaq 0x44b1e2(%rip), %rdx    # 0x485bd0
leaq 0x4a265b(%rip), %rcx    # 0x4dd050
leaq 0x4a3cd4(%rip), %r8     # 0x4de6d0
leaq 0x4a69cd(%rip), %r9     # 0x4e13d0
callq 0x5e710
movl -0x48(%rbp), %eax
cmpl -0x50(%rbp), %eax
jl 0x3aae1
movl -0x44(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jl 0x3aae1
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3aadc
movslq -0x28(%rbp), %rcx
leaq 0x4a2613(%rip), %rax    # 0x4dd050
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d4da4(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3aacc
movslq -0x28(%rbp), %rcx
leaq 0x3d4d91(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d6402(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3aaca
movslq -0x28(%rbp), %rcx
leaq 0x4a25cf(%rip), %rax    # 0x4dd050
movw (%rax,%rcx,2), %dx
movslq -0x28(%rbp), %rcx
leaq 0x3d4d60(%rip), %rax    # 0x40f7f0
movw %dx, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d4d51(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d63c2(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3aac8
movw 0x3d7a3b(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d7a30(%rip)     # 0x4124f8
jmp 0x3aaca
jmp 0x3aacc
jmp 0x3aace
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3aa26
jmp 0x3abe5
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3abe3
movslq -0x28(%rbp), %rcx
leaq 0x3d4cf2(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d6363(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3abd3
movslq -0x28(%rbp), %rcx
leaq 0x44b0ac(%rip), %rax    # 0x485bd0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x4a251d(%rip), %rcx    # 0x4dd050
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3ab52
movslq -0x28(%rbp), %rcx
leaq 0x44b08a(%rip), %rax    # 0x485bd0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x94(%rbp)
jmp 0x3ab67
movslq -0x28(%rbp), %rcx
leaq 0x4a24f3(%rip), %rax    # 0x4dd050
movswl (%rax,%rcx,2), %eax
movl %eax, -0x94(%rbp)
movl -0x94(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d4c72(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3abd1
movl -0x24(%rbp), %eax
movw %ax, %dx
movslq -0x28(%rbp), %rcx
leaq 0x3d4c59(%rip), %rax    # 0x40f7f0
movw %dx, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d4c4a(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d62bb(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3abcf
movw 0x3d7934(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d7929(%rip)     # 0x4124f8
jmp 0x3abd1
jmp 0x3abd3
jmp 0x3abd5
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3aae7
jmp 0x3abe5
jmp 0x3abe7
movl -0x48(%rbp), %eax
cmpl -0x50(%rbp), %eax
jl 0x3ac06
movl -0x44(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jl 0x3ac06
movl 0x26d9c3(%rip), %eax    # 0x2a85c0
cmpl -0x40(%rbp), %eax
jge 0x3acbe
movl -0x30(%rbp), %eax
subl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movswl 0x3d78e7(%rip), %eax    # 0x412500
addl -0x24(%rbp), %eax
cmpl $0x5a000, %eax          # imm = 0x5A000
jge 0x3acbc
movw 0x3d78d2(%rip), %dx     # 0x412500
movslq 0xa6517(%rip), %rcx     # 0xe114c
leaq 0x4a94a4(%rip), %rax    # 0x4e40e0
movw %dx, (%rax,%rcx,2)
movl -0x74(%rbp), %edx
movslq 0xa6502(%rip), %rcx     # 0xe114c
leaq 0x49d3ff(%rip), %rax    # 0x4d8050
movl %edx, (%rax,%rcx,4)
movslq 0xa64f1(%rip), %rcx     # 0xe114c
leaq 0x4a13ee(%rip), %rax    # 0x4dc050
movb $0x1, (%rax,%rcx)
movl 0xa64e0(%rip), %eax     # 0xe114c
addl $0x1, %eax
movl %eax, 0xa64d7(%rip)     # 0xe114c
movslq -0x2c(%rbp), %rax
leaq 0x3d4b70(%rip), %rdi    # 0x40f7f0
shlq %rax
addq %rax, %rdi
movswq 0x3d7872(%rip), %rax    # 0x412500
leaq 0x4ab44b(%rip), %rsi    # 0x4e60e0
shlq %rax
addq %rax, %rsi
movslq -0x24(%rbp), %rax
shlq %rax
movl %eax, %edx
callq 0x6ef00
movl -0x24(%rbp), %ecx
movswl 0x3d784d(%rip), %eax    # 0x412500
addl %ecx, %eax
movw %ax, 0x3d7844(%rip)     # 0x412500
jmp 0x3acbe
jmp 0x3acc0
movq -0x10(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x3ace4
movq -0x18(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x3b508
movl -0x68(%rbp), %eax
cmpl -0x70(%rbp), %eax
jl 0x3adcc
movl -0x64(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jl 0x3adcc
cmpb $0x0, 0x3d7806(%rip)    # 0x412509
je 0x3adc7
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3adc5
movslq -0x28(%rbp), %rcx
leaq 0x44c52a(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d613b(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3adb5
movslq -0x28(%rbp), %rcx
leaq 0x3d4aa8(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d6119(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3adb3
movslq -0x28(%rbp), %rcx
leaq 0x44c4e6(%rip), %rax    # 0x487250
movw (%rax,%rcx,2), %dx
movslq -0x28(%rbp), %rcx
leaq 0x3d60f7(%rip), %rax    # 0x410e70
movw %dx, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d4a68(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d60d9(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3adb1
movw 0x3d7752(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d7747(%rip)     # 0x4124f8
jmp 0x3adb3
jmp 0x3adb5
jmp 0x3adb7
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3ad0f
jmp 0x3adc7
jmp 0x3b42f
movl -0x74(%rbp), %esi
movl -0x80(%rbp), %edx
leaq 0x55f307(%rip), %rdi    # 0x59a0e0
movl $0x1, %ecx
callq 0x36310
movl -0x68(%rbp), %eax
cmpl -0x50(%rbp), %eax
jl 0x3adf3
movl -0x64(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jge 0x3ae50
movl -0x2c(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3ae4e
movslq -0x24(%rbp), %rcx
leaq 0x55f2d4(%rip), %rax    # 0x59a0e0
movswl (%rax,%rcx,2), %eax
movslq -0x24(%rbp), %rdx
leaq 0x44adb5(%rip), %rcx    # 0x485bd0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3ae41
movslq -0x24(%rbp), %rcx
leaq 0x44ada2(%rip), %rax    # 0x485bd0
movw (%rax,%rcx,2), %dx
movslq -0x24(%rbp), %rcx
leaq 0x55f2a3(%rip), %rax    # 0x59a0e0
movw %dx, (%rax,%rcx,2)
jmp 0x3ae43
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x3adf9
jmp 0x3ae50
movswl 0x39a7d9(%rip), %eax    # 0x3d5630
cmpl $0x2, %eax
jne 0x3aed5
movl 0xa62ce(%rip), %eax     # 0xe1130
cmpl -0x2c(%rbp), %eax
jl 0x3aed5
movl 0xa62c3(%rip), %eax     # 0xe1130
cmpl -0x30(%rbp), %eax
jg 0x3aed5
movl 0x418830(%rip), %eax    # 0x4536a8
movslq 0xa62b1(%rip), %rdx     # 0xe1130
leaq 0x55f25a(%rip), %rcx    # 0x59a0e0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jl 0x3aed3
movl -0x7c(%rbp), %eax
movw %ax, 0x44f918(%rip)     # 0x48a7b0
movl -0x78(%rbp), %eax
movw %ax, 0x44f910(%rip)     # 0x48a7b2
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jle 0x3aec1
movq -0x20(%rbp), %rax
movw 0xa(%rax), %ax
movw %ax, 0x44f8f1(%rip)     # 0x48a7b2
movw $0x0, 0x39a768(%rip)    # 0x3d5632
movw $0x1, 0x39a75d(%rip)    # 0x3d5630
jmp 0x3aed5
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jle 0x3afec
movq -0x20(%rbp), %rax
movswl 0xa(%rax), %eax
movl %eax, -0x78(%rbp)
movslq -0x78(%rbp), %rcx
leaq 0x1ba6b1(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, 0x40fe48(%rip)    # 0x44ad60
movq -0x20(%rbp), %rax
movw 0x10(%rax), %ax
movw %ax, 0x40fe49(%rip)     # 0x44ad70
movswl 0x40fe42(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x3af3e
movw $0x0, 0x40fe32(%rip)    # 0x44ad70
movq -0x20(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, 0x44d9f4(%rip)    # 0x488940
movq -0x20(%rbp), %rax
movzbl 0x19(%rax), %eax
movl %eax, 0x44d9ea(%rip)    # 0x488944
movswq 0x40fe0e(%rip), %rcx    # 0x44ad70
leaq 0x23c657(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x3afa3
movw 0x40fdf3(%rip), %cx     # 0x44ad70
movl -0x78(%rbp), %eax
cwtl
addl $0x4000, %eax           # imm = 0x4000
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x40fdd6(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x40fdcd(%rip)     # 0x44ad70
movq -0x20(%rbp), %rax
movsbl 0x14(%rax), %eax
movl %eax, 0x4145db(%rip)    # 0x44f58c
movq -0x20(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, 0x40fda5(%rip)    # 0x44ad64
movslq -0x74(%rbp), %rcx
leaq 0x23a5e6(%rip), %rax    # 0x2755b0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x78(%rbp)
movslq -0x78(%rbp), %rcx
leaq 0x1ba5d4(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
jmp 0x3b0a1
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, 0x40fd66(%rip)    # 0x44ad60
movq -0x20(%rbp), %rax
movw 0x10(%rax), %ax
movw %ax, 0x40fd67(%rip)     # 0x44ad70
movswl 0x40fd60(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x3b020
movw $0x0, 0x40fd50(%rip)    # 0x44ad70
movq -0x20(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, 0x44d912(%rip)    # 0x488940
movq -0x20(%rbp), %rax
movzbl 0x19(%rax), %eax
movl %eax, 0x44d908(%rip)    # 0x488944
movswq 0x40fd2c(%rip), %rcx    # 0x44ad70
leaq 0x23c575(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x3b085
movw 0x40fd11(%rip), %cx     # 0x44ad70
movl -0x78(%rbp), %eax
cwtl
addl $0x4000, %eax           # imm = 0x4000
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x40fcf4(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x40fceb(%rip)     # 0x44ad70
movq -0x20(%rbp), %rax
movsbl 0x14(%rax), %eax
movl %eax, 0x4144f9(%rip)    # 0x44f58c
movq -0x20(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, 0x40fcc3(%rip)    # 0x44ad64
movslq 0x40fcbc(%rip), %rcx    # 0x44ad64
leaq 0x39a591(%rip), %rax    # 0x3d5640
cmpq $0x0, (%rax,%rcx,8)
jne 0x3b0c0
movl $0x0, 0x40fca4(%rip)    # 0x44ad64
movl 0x3d07da(%rip), %eax    # 0x40b8a0
movl %eax, 0x4144c4(%rip)    # 0x44f590
movq -0x10(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x3b0f8
movl 0x4144b1(%rip), %edi    # 0x44f590
movq -0x10(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x414498(%rip)    # 0x44f590
movswq 0x40fc70(%rip), %rcx    # 0x44ad70
leaq 0x4144a9(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
sarl $0x4, %eax
movw %ax, 0x44d833(%rip)     # 0x488948
movswq 0x44d82b(%rip), %rcx    # 0x488948
leaq 0xa5b7c(%rip), %rax     # 0xe0ca0
movl (%rax,%rcx,4), %eax
movswq 0x40fc41(%rip), %rdx    # 0x44ad70
leaq 0x40140a(%rip), %rcx    # 0x43c540
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
je 0x3b150
movw 0x44d803(%rip), %ax     # 0x488948
addw $0x1, %ax
movw %ax, 0x44d7f8(%rip)     # 0x488948
movswl 0x44d7f1(%rip), %ecx    # 0x488948
movl $0x20, %eax
subl %ecx, %eax
movw %ax, 0x44d7e3(%rip)     # 0x488948
movq -0x20(%rbp), %rax
movzbl 0x17(%rax), %eax
movswl 0x44d7d4(%rip), %ecx    # 0x488948
subl $0x13, %ecx
shll %cl, %eax
movl %eax, 0x44d7d1(%rip)    # 0x488950
movl 0x40fbdb(%rip), %eax    # 0x44ad60
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x3b1ac
movl 0x26d42d(%rip), %eax    # 0x2a85c0
movq -0x18(%rbp), %rcx
subl 0x8(%rcx), %eax
imull 0x44d7af(%rip), %eax    # 0x488950
shll $0x8, %eax
movl %eax, 0x44d7a2(%rip)    # 0x48894c
jmp 0x3b1c9
movl 0x26d40e(%rip), %eax    # 0x2a85c0
movq -0x10(%rbp), %rcx
subl 0x4(%rcx), %eax
imull 0x44d790(%rip), %eax    # 0x488950
shll $0x8, %eax
movl %eax, 0x44d783(%rip)    # 0x48894c
movl 0x44d775(%rip), %eax    # 0x488944
shll $0x18, %eax
addl 0x44d774(%rip), %eax    # 0x48894c
movl %eax, 0x44d76e(%rip)    # 0x48894c
movl 0x40fb7c(%rip), %eax    # 0x44ad60
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x3b20a
xorl %eax, %eax
subl 0x44d75a(%rip), %eax    # 0x488950
movl %eax, 0x44d754(%rip)    # 0x488950
xorl %eax, %eax
subl 0x44d748(%rip), %eax    # 0x48894c
movl %eax, 0x44d742(%rip)    # 0x48894c
cmpl $0x0, -0x8c(%rbp)
jne 0x3b229
movl $0x1, -0x8c(%rbp)
movl -0x74(%rbp), %edi
movq -0x20(%rbp), %rsi
callq 0x5e180
movl -0x2c(%rbp), %edi
movl -0x30(%rbp), %esi
leaq 0x55eeaa(%rip), %rdx    # 0x59a0e0
leaq 0x44c013(%rip), %rcx    # 0x487250
leaq 0x4a348c(%rip), %r8     # 0x4de6d0
leaq 0x4a6185(%rip), %r9     # 0x4e13d0
callq 0x5e710
movl -0x68(%rbp), %eax
cmpl -0x70(%rbp), %eax
jg 0x3b329
movl -0x64(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jg 0x3b329
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3b324
movslq -0x28(%rbp), %rcx
leaq 0x55ee5b(%rip), %rax    # 0x59a0e0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5bdc(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3b314
movslq -0x28(%rbp), %rcx
leaq 0x3d4549(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5bba(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3b312
movslq -0x28(%rbp), %rcx
leaq 0x55ee17(%rip), %rax    # 0x59a0e0
movw (%rax,%rcx,2), %dx
movslq -0x28(%rbp), %rcx
leaq 0x3d5b98(%rip), %rax    # 0x410e70
movw %dx, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d4509(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5b7a(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3b310
movw 0x3d71f3(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d71e8(%rip)     # 0x4124f8
jmp 0x3b312
jmp 0x3b314
jmp 0x3b316
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3b26e
jmp 0x3b42d
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3b42b
movslq -0x28(%rbp), %rcx
leaq 0x3d44aa(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5b1b(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3b41b
movslq -0x28(%rbp), %rcx
leaq 0x44bee4(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x55ed65(%rip), %rcx    # 0x59a0e0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3b39a
movslq -0x28(%rbp), %rcx
leaq 0x44bec2(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x98(%rbp)
jmp 0x3b3af
movslq -0x28(%rbp), %rcx
leaq 0x55ed3b(%rip), %rax    # 0x59a0e0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x98(%rbp)
movl -0x98(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5aaa(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3b419
movl -0x24(%rbp), %eax
movw %ax, %dx
movslq -0x28(%rbp), %rcx
leaq 0x3d5a91(%rip), %rax    # 0x410e70
movw %dx, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d4402(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5a73(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x3b417
movw 0x3d70ec(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d70e1(%rip)     # 0x4124f8
jmp 0x3b419
jmp 0x3b41b
jmp 0x3b41d
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3b32f
jmp 0x3b42d
jmp 0x3b42f
movl -0x68(%rbp), %eax
cmpl -0x70(%rbp), %eax
jg 0x3b44e
movl -0x64(%rbp), %eax
cmpl -0x6c(%rbp), %eax
jg 0x3b44e
movl 0x26d17b(%rip), %eax    # 0x2a85c0
cmpl -0x60(%rbp), %eax
jle 0x3b506
movl -0x30(%rbp), %eax
subl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movswl 0x3d709f(%rip), %eax    # 0x412500
addl -0x24(%rbp), %eax
cmpl $0x5a000, %eax          # imm = 0x5A000
jge 0x3b504
movw 0x3d708a(%rip), %dx     # 0x412500
movslq 0xa5ccf(%rip), %rcx     # 0xe114c
leaq 0x4a8c5c(%rip), %rax    # 0x4e40e0
movw %dx, (%rax,%rcx,2)
movl -0x74(%rbp), %edx
movslq 0xa5cba(%rip), %rcx     # 0xe114c
leaq 0x49cbb7(%rip), %rax    # 0x4d8050
movl %edx, (%rax,%rcx,4)
movslq 0xa5ca9(%rip), %rcx     # 0xe114c
leaq 0x4a0ba6(%rip), %rax    # 0x4dc050
movb $0x2, (%rax,%rcx)
movl 0xa5c98(%rip), %eax     # 0xe114c
addl $0x1, %eax
movl %eax, 0xa5c8f(%rip)     # 0xe114c
movslq -0x2c(%rbp), %rax
leaq 0x3d59a8(%rip), %rdi    # 0x410e70
shlq %rax
addq %rax, %rdi
movswq 0x3d702a(%rip), %rax    # 0x412500
leaq 0x4aac03(%rip), %rsi    # 0x4e60e0
shlq %rax
addq %rax, %rsi
movslq -0x24(%rbp), %rax
shlq %rax
movl %eax, %edx
callq 0x6ef00
movl -0x24(%rbp), %ecx
movswl 0x3d7005(%rip), %eax    # 0x412500
addl %ecx, %eax
movw %ax, 0x3d6ffc(%rip)     # 0x412500
jmp 0x3b506
jmp 0x3b508
movswl 0x3d6fe9(%rip), %eax    # 0x4124f8
cmpl $0x0, %eax
jge 0x3b519
jmp 0x3ba21
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
jne 0x3b636
movl -0x80(%rbp), %eax
sarl $0x3, %eax
movslq %eax, %rcx
leaq 0x3d1383(%rip), %rax    # 0x40c8c0
movzbl (%rax,%rcx), %eax
movl -0x80(%rbp), %ecx
andl $0x7, %ecx
movslq %ecx, %rdx
leaq 0xa573f(%rip), %rcx     # 0xe0c90
movzbl (%rcx,%rdx), %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x3b636
movslq -0x30(%rbp), %rcx
leaq 0x3d4285(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x30(%rbp), %rdx
leaq 0x3d58f6(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3b592
movl -0x80(%rbp), %eax
movswl %ax, %edi
callq 0x39570
jmp 0x3b634
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x3b5dc
movslq -0x28(%rbp), %rcx
leaq 0x3d4245(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d58b6(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jge 0x3b5cf
movl -0x80(%rbp), %eax
movswl %ax, %edi
callq 0x39570
jmp 0x3b5dc
jmp 0x3b5d1
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3b598
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jne 0x3b632
movl -0x84(%rbp), %eax
movl %eax, 0xa5b5c(%rip)     # 0xe114c
movl -0x88(%rbp), %eax
movw %ax, 0x3d6f03(%rip)     # 0x412500
movl -0x74(%rbp), %edx
movslq 0xa5b45(%rip), %rcx     # 0xe114c
leaq 0x49ca42(%rip), %rax    # 0x4d8050
movl %edx, (%rax,%rcx,4)
movslq 0xa5b34(%rip), %rcx     # 0xe114c
leaq 0x4a0a31(%rip), %rax    # 0x4dc050
movb $0x0, (%rax,%rcx)
movl 0xa5b23(%rip), %eax     # 0xe114c
addl $0x1, %eax
movl %eax, 0xa5b1a(%rip)     # 0xe114c
jmp 0x3b634
jmp 0x3b636
jmp 0x3b638
cmpl $0x0, -0x80(%rbp)
jl 0x3b652
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x3ba08
movq -0x20(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, 0x40f700(%rip)    # 0x44ad60
cmpl $0x0, -0x80(%rbp)
jge 0x3b677
movq -0x20(%rbp), %rax
movw 0x10(%rax), %ax
movw %ax, 0x40f6fb(%rip)     # 0x44ad70
jmp 0x3b686
movq -0x20(%rbp), %rax
movw 0x12(%rax), %ax
movw %ax, 0x40f6ea(%rip)     # 0x44ad70
movswl 0x40f6e3(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x3b69d
movw $0x0, 0x40f6d3(%rip)    # 0x44ad70
movq -0x20(%rbp), %rax
movzbl 0x18(%rax), %eax
movl %eax, 0x44d295(%rip)    # 0x488940
movq -0x20(%rbp), %rax
movzbl 0x19(%rax), %eax
movl %eax, 0x44d28b(%rip)    # 0x488944
movswq 0x40f6af(%rip), %rcx    # 0x44ad70
leaq 0x23bef8(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x3b702
movw 0x40f694(%rip), %cx     # 0x44ad70
movl -0x78(%rbp), %eax
cwtl
addl $0x4000, %eax           # imm = 0x4000
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x40f677(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x40f66e(%rip)     # 0x44ad70
movq -0x20(%rbp), %rax
movsbl 0x14(%rax), %eax
movl %eax, 0x413e7c(%rip)    # 0x44f58c
movl 0x3d018a(%rip), %eax    # 0x40b8a0
movl %eax, 0x413e74(%rip)    # 0x44f590
movq -0x10(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x3b748
movl 0x413e61(%rip), %edi    # 0x44f590
movq -0x10(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x413e48(%rip)    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, 0x40f60e(%rip)    # 0x44ad64
movslq 0x40f607(%rip), %rcx    # 0x44ad64
leaq 0x399edc(%rip), %rax    # 0x3d5640
cmpq $0x0, (%rax,%rcx,8)
jne 0x3b775
movl $0x0, 0x40f5ef(%rip)    # 0x44ad64
movswq 0x40f5f3(%rip), %rcx    # 0x44ad70
leaq 0x413e2c(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
sarl $0x4, %eax
movw %ax, 0x44d1b6(%rip)     # 0x488948
movswq 0x44d1ae(%rip), %rcx    # 0x488948
leaq 0xa54ff(%rip), %rax     # 0xe0ca0
movl (%rax,%rcx,4), %eax
movswq 0x40f5c4(%rip), %rdx    # 0x44ad70
leaq 0x400d8d(%rip), %rcx    # 0x43c540
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
je 0x3b7cd
movw 0x44d186(%rip), %ax     # 0x488948
addw $0x1, %ax
movw %ax, 0x44d17b(%rip)     # 0x488948
movswl 0x44d174(%rip), %ecx    # 0x488948
movl $0x20, %eax
subl %ecx, %eax
movw %ax, 0x44d166(%rip)     # 0x488948
movq -0x20(%rbp), %rax
movzbl 0x17(%rax), %eax
movswl 0x44d157(%rip), %ecx    # 0x488948
subl $0x13, %ecx
shll %cl, %eax
movl %eax, 0x44d154(%rip)    # 0x488950
cmpl $0x0, -0x80(%rbp)
jl 0x3b83a
movl 0x40f558(%rip), %eax    # 0x44ad60
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x3b825
movl 0x26cdaa(%rip), %eax    # 0x2a85c0
movq -0x18(%rbp), %rcx
subl 0x4(%rcx), %eax
movl %eax, 0x44d129(%rip)    # 0x48894c
jmp 0x3b838
movl 0x26cd95(%rip), %eax    # 0x2a85c0
movq -0x10(%rbp), %rcx
subl 0x4(%rcx), %eax
movl %eax, 0x44d114(%rip)    # 0x48894c
jmp 0x3b872
movl 0x40f520(%rip), %eax    # 0x44ad60
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x3b85d
movl 0x26cd72(%rip), %eax    # 0x2a85c0
movq -0x10(%rbp), %rcx
subl 0x4(%rcx), %eax
movl %eax, 0x44d0f1(%rip)    # 0x48894c
jmp 0x3b870
movl 0x26cd5d(%rip), %eax    # 0x2a85c0
movq -0x10(%rbp), %rcx
subl 0x8(%rcx), %eax
movl %eax, 0x44d0dc(%rip)    # 0x48894c
jmp 0x3b872
movl 0x44d0d4(%rip), %eax    # 0x48894c
imull 0x44d0d1(%rip), %eax    # 0x488950
shll $0x8, %eax
movl 0x44d0bc(%rip), %ecx    # 0x488944
shll $0x18, %ecx
addl %ecx, %eax
movl %eax, 0x44d0b9(%rip)    # 0x48894c
movl 0x40f4c7(%rip), %eax    # 0x44ad60
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x3b8bf
xorl %eax, %eax
subl 0x44d0a5(%rip), %eax    # 0x488950
movl %eax, 0x44d09f(%rip)    # 0x488950
xorl %eax, %eax
subl 0x44d093(%rip), %eax    # 0x48894c
movl %eax, 0x44d08d(%rip)    # 0x48894c
cmpl $0x0, -0x8c(%rbp)
jne 0x3b8de
movl $0x1, -0x8c(%rbp)
movl -0x74(%rbp), %edi
movq -0x20(%rbp), %rsi
callq 0x5e180
movl -0x2c(%rbp), %edi
movl -0x30(%rbp), %esi
leaq 0x44a2e5(%rip), %rdx    # 0x485bd0
leaq 0x44b95e(%rip), %rcx    # 0x487250
leaq 0x4a2dd7(%rip), %r8     # 0x4de6d0
leaq 0x4a5ad0(%rip), %r9     # 0x4e13d0
callq 0x5e710
movl -0x2c(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x3b976
movslq -0x28(%rbp), %rcx
leaq 0x3d3ed2(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movslq -0x28(%rbp), %rdx
leaq 0x3d5543(%rip), %rcx    # 0x410e70
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jg 0x3b969
movslq -0x28(%rbp), %rcx
leaq 0x3d3eb0(%rip), %rax    # 0x40f7f0
movw $0x1, (%rax,%rcx,2)
movslq -0x28(%rbp), %rcx
leaq 0x3d551f(%rip), %rax    # 0x410e70
movw $0x0, (%rax,%rcx,2)
movw 0x3d6b9a(%rip), %ax     # 0x4124f8
addw $-0x1, %ax
movw %ax, 0x3d6b8f(%rip)     # 0x4124f8
jmp 0x3b96b
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3b90b
movl -0x74(%rbp), %edx
movslq 0xa57cc(%rip), %rcx     # 0xe114c
leaq 0x49c6c9(%rip), %rax    # 0x4d8050
movl %edx, (%rax,%rcx,4)
movslq 0xa57bb(%rip), %rcx     # 0xe114c
leaq 0x4a06b8(%rip), %rax    # 0x4dc050
movb $0x0, (%rax,%rcx)
movl 0xa57aa(%rip), %eax     # 0xe114c
addl $0x1, %eax
movl %eax, 0xa57a1(%rip)     # 0xe114c
movswl 0x399c7e(%rip), %eax    # 0x3d5630
cmpl $0x2, %eax
jne 0x3ba06
movl 0xa5773(%rip), %eax     # 0xe1130
cmpl -0x2c(%rbp), %eax
jl 0x3ba06
movl 0xa5768(%rip), %eax     # 0xe1130
cmpl -0x30(%rbp), %eax
jg 0x3ba06
movw $0x1, 0x399c5a(%rip)    # 0x3d5630
movl -0x7c(%rbp), %eax
movw %ax, 0x44edd0(%rip)     # 0x48a7b0
movl -0x78(%rbp), %eax
movw %ax, 0x44edc8(%rip)     # 0x48a7b2
cmpl $0x0, -0x80(%rbp)
jge 0x3b9fb
movw $0x0, 0x399c39(%rip)    # 0x3d5632
jmp 0x3ba04
movw $0x4, 0x399c2e(%rip)    # 0x3d5632
jmp 0x3ba06
jmp 0x3ba08
jmp 0x3ba0a
movslq -0x74(%rbp), %rcx
leaq 0x3deb1b(%rip), %rax    # 0x41a530
movswl (%rax,%rcx,2), %eax
movl %eax, -0x74(%rbp)
jmp 0x3a269
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)