// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movl %edi, 0x10(%rsp)
movslq %edi, %r14
leaq 0x3b0748(%rip), %rbp    # 0x3d77c0
movswq (%rbp,%r14,2), %rax
leaq 0x426deb(%rip), %rcx    # 0x44de70
movswq (%rcx,%rax,2), %rcx
movq %rcx, 0x48(%rsp)
leaq (%rcx,%rcx,4), %rcx
leaq 0x21c9c6(%rip), %rdx    # 0x243a60
leaq (%rdx,%rcx,8), %rcx
movq %rcx, 0x38(%rsp)
testq %rax, %rax
js 0x27596
movq %r14, 0x18(%rsp)
movb $-0x1, %bl
leaq 0x428db6(%rip), %rdi    # 0x44fe70
leaq 0x42abaf(%rip), %r12    # 0x451c70
leaq 0x3b8708(%rip), %r14    # 0x3df7d0
movb $-0x1, %bpl
movq 0x48(%rsp), %r13
movzwl %ax, %r15d
movl %r15d, %esi
movl %r13d, %edx
xorl %ecx, %ecx
callq 0x2432f
andb %al, %bpl
movq %r12, %rdi
movl %r15d, %esi
movl %r13d, %edx
movl $0x1, %ecx
callq 0x2432f
leaq 0x428d72(%rip), %rdi    # 0x44fe70
andb %al, %bl
movzwl (%r14,%r15,2), %eax
testw %ax, %ax
jns 0x270d0
notb %bpl
andb $0xc, %bl
testb $0x3, %bpl
movq 0x18(%rsp), %r14
leaq 0x3b06a0(%rip), %rbp    # 0x3d77c0
je 0x2735e
movq 0x38(%rsp), %rax
movzwl 0xc(%rax), %eax
movl %eax, %ecx
andl $0x3, %ecx
cmpl $0x2, %ecx
jne 0x27170
movswq (%rbp,%r14,2), %rax
leaq 0x24492a(%rip), %rcx    # 0x26ba70
movl (%rcx,%rax,4), %edi
leaq 0x3b2670(%rip), %rax    # 0x3d97c0
movswq (%rax,%r14,2), %rax
leaq 0x248924(%rip), %rcx    # 0x26fa80
movl (%rcx,%rax,4), %esi
movq 0x48(%rsp), %rdx
xorl %ecx, %ecx
callq 0x3db59
jmp 0x2735e
testb $0x1, %al
jne 0x27353
movswq (%rbp,%r14,2), %rax
leaq 0x2448eb(%rip), %rcx    # 0x26ba70
movslq (%rcx,%rax,4), %r15
leaq 0x3b2630(%rip), %rax    # 0x3d97c0
movswq (%rax,%r14,2), %rax
leaq 0x2488e4(%rip), %rcx    # 0x26fa80
movslq (%rcx,%rax,4), %r12
movq 0x38(%rsp), %rax
movzbl 0x15(%rax), %ecx
leaq 0x371930(%rip), %rax    # 0x398ae0
movq (%rax,%rcx,8), %rdi
cmpq 0x3e8e4d(%rip), %rdi    # 0x410008
je 0x271e0
movq %rdi, 0x3e8e44(%rip)    # 0x410008
testq %rdi, %rdi
jne 0x271db
movslq 0x3e8e34(%rip), %rcx    # 0x410004
movq (%rax,%rcx,8), %rdi
movq %rdi, 0x3e8e2d(%rip)    # 0x410008
callq 0x6fa7b
movq 0x38(%rsp), %rax
movl 0x4(%rax), %eax
subl 0x244872(%rip), %eax    # 0x26ba60
movl %eax, 0x42c8f8(%rip)    # 0x453aec
jg 0x2735e
movq 0x38(%rsp), %rax
movzwl 0x10(%rax), %ecx
xorl %eax, %eax
cmpl $0x2400, %ecx           # imm = 0x2400
cmovbl %ecx, %eax
movw %ax, 0x3e8dfb(%rip)     # 0x410010
movswl %ax, %r13d
movswq %ax, %rcx
leaq 0x40751c(%rip), %rdx    # 0x42e740
cmpb $-0x39, (%rcx,%rdx)
ja 0x2722e
movb $-0x39, (%rcx,%rdx)
movl %r13d, %edx
andl $0x7, %edx
leaq 0x7d565(%rip), %rsi     # 0xa47a0
movb (%rdx,%rsi), %dl
movl %r13d, %esi
sarl $0x3, %esi
movslq %esi, %rsi
leaq 0x407062(%rip), %rdi    # 0x42e2b0
orb %dl, (%rsi,%rdi)
leaq 0x3e8dc8(%rip), %rdx    # 0x410020
cmpw $0x0, (%rdx,%rcx,2)
jle 0x2735e
leaq 0x3da576(%rip), %rdx    # 0x4017e0
cmpw $0x0, (%rdx,%rcx,2)
jle 0x2735e
leaq 0x2137e4(%rip), %rdx    # 0x23aa60
testb $-0x40, (%rdx,%rcx,4)
je 0x2729e
movl %r13d, %edi
xorl %esi, %esi
callq 0x242cd
addl %eax, %r13d
movw %r13w, 0x3e8d79(%rip)   # 0x410010
movswq %r13w, %rcx
movl %r13d, %eax
leaq 0x37203b(%rip), %r14    # 0x3992e0
cmpq $0x0, (%r14,%rcx,8)
jne 0x272bb
movswl %ax, %edi
callq 0x2fc7e
movzwl 0x3e8d55(%rip), %eax    # 0x410010
movswq %ax, %rsi
movq (%r14,%rsi,8), %r8
movq %r8, 0x3ed556(%rip)     # 0x414820
movq 0x38(%rsp), %rcx
movsbl 0x14(%rcx), %eax
movl %eax, 0x3ed553(%rip)    # 0x41482c
movslq 0x3a7a68(%rip), %rax    # 0x3ced48
movl %eax, 0x3ed54a(%rip)    # 0x414830
movb 0x20(%rcx), %cl
testb %cl, %cl
je 0x27301
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ed52f(%rip)    # 0x414830
movq 0x38(%rsp), %rax
movswl 0xc(%rax), %ebp
movl %ebp, 0x3e8cf0(%rip)    # 0x410000
testb $0x40, %bpl
movq %r15, 0x20(%rsp)
movq %r8, 0x28(%rsp)
jne 0x287d4
movl 0x24874d(%rip), %r10d   # 0x26fa78
movl 0x24873e(%rip), %r9d    # 0x26fa70
movl 0x213717(%rip), %r11d   # 0x23aa50
shll $0x14, %r11d
movl 0x213711(%rip), %ecx    # 0x23aa54
shll $0x14, %ecx
negl %ecx
movl %r9d, %r15d
movl %r10d, %eax
jmp 0x289b7
xorl %edi, %edi
movl 0x10(%rsp), %esi
callq 0x3e6e4
cmpb $0xc, %bl
je 0x27596
movq 0x38(%rsp), %rbx
movzwl 0xe(%rbx), %eax
movl %eax, %ecx
andl $0x3, %ecx
cmpl $0x2, %ecx
jne 0x273b4
movswq (%rbp,%r14,2), %rax
leaq 0x2446e9(%rip), %rcx    # 0x26ba70
movl (%rcx,%rax,4), %edi
leaq 0x3b242f(%rip), %rax    # 0x3d97c0
movswq (%rax,%r14,2), %rax
leaq 0x2486e3(%rip), %rcx    # 0x26fa80
movl (%rcx,%rax,4), %esi
movq 0x48(%rsp), %rdx
movl $0x1, %ecx
callq 0x3db59
jmp 0x27596
testb $0x1, %al
jne 0x27588
movswq (%rbp,%r14,2), %rax
leaq 0x2446a7(%rip), %rcx    # 0x26ba70
movslq (%rcx,%rax,4), %r13
leaq 0x3b23ec(%rip), %rax    # 0x3d97c0
movswq (%rax,%r14,2), %rax
leaq 0x2486a0(%rip), %rcx    # 0x26fa80
movslq (%rcx,%rax,4), %r12
movzbl 0x1d(%rbx), %ecx
leaq 0x3716f1(%rip), %rax    # 0x398ae0
movq (%rax,%rcx,8), %rdi
cmpq 0x3e8c0e(%rip), %rdi    # 0x410008
je 0x2741f
movq %rdi, 0x3e8c05(%rip)    # 0x410008
testq %rdi, %rdi
jne 0x2741a
movslq 0x3e8bf5(%rip), %rcx    # 0x410004
movq (%rax,%rcx,8), %rdi
movq %rdi, 0x3e8bee(%rip)    # 0x410008
callq 0x6fa7b
movl 0x24463b(%rip), %eax    # 0x26ba60
subl 0x8(%rbx), %eax
movl %eax, 0x42c6be(%rip)    # 0x453aec
jg 0x27596
movq 0x38(%rsp), %rax
movzwl 0x18(%rax), %ecx
xorl %eax, %eax
cmpl $0x2400, %ecx           # imm = 0x2400
cmovbl %ecx, %eax
movw %ax, 0x3e8bc1(%rip)     # 0x410010
movswl %ax, %r15d
movswq %ax, %rcx
leaq 0x4072e2(%rip), %rdx    # 0x42e740
cmpb $-0x39, (%rcx,%rdx)
ja 0x27468
movb $-0x39, (%rcx,%rdx)
movl %r15d, %edx
andl $0x7, %edx
leaq 0x7d32b(%rip), %rsi     # 0xa47a0
movb (%rdx,%rsi), %dl
movl %r15d, %esi
sarl $0x3, %esi
movslq %esi, %rsi
leaq 0x406e28(%rip), %rdi    # 0x42e2b0
orb %dl, (%rsi,%rdi)
leaq 0x3e8b8e(%rip), %rdx    # 0x410020
cmpw $0x0, (%rdx,%rcx,2)
jle 0x27596
leaq 0x3da33c(%rip), %rdx    # 0x4017e0
cmpw $0x0, (%rdx,%rcx,2)
jle 0x27596
leaq 0x2135aa(%rip), %rdx    # 0x23aa60
testb $-0x40, (%rdx,%rcx,4)
je 0x274d8
movl %r15d, %edi
xorl %esi, %esi
callq 0x242cd
addl %eax, %r15d
movw %r15w, 0x3e8b3f(%rip)   # 0x410010
movswq %r15w, %rcx
movl %r15d, %eax
leaq 0x371e01(%rip), %rbx    # 0x3992e0
cmpq $0x0, (%rbx,%rcx,8)
jne 0x274f5
movswl %ax, %edi
callq 0x2fc7e
movzwl 0x3e8b1b(%rip), %eax    # 0x410010
movq 0x38(%rsp), %rdx
movswq %ax, %rsi
movq (%rbx,%rsi,8), %r14
movq %r14, 0x3ed317(%rip)    # 0x414820
movsbl 0x1c(%rdx), %eax
movl %eax, 0x3ed319(%rip)    # 0x41482c
movslq 0x3a782e(%rip), %rax    # 0x3ced48
movl %eax, 0x3ed310(%rip)    # 0x414830
movb 0x20(%rdx), %cl
testb %cl, %cl
je 0x2753b
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ed2f5(%rip)    # 0x414830
movswl 0xe(%rdx), %edi
movl %edi, 0x3e8abb(%rip)    # 0x410000
testb $0x40, %dil
movq %r12, 0x10(%rsp)
movq %r14, 0x8(%rsp)
jne 0x28863
movl 0x248518(%rip), %r10d   # 0x26fa78
movl 0x248509(%rip), %r9d    # 0x26fa70
movl 0x2134e2(%rip), %r11d   # 0x23aa50
shll $0x14, %r11d
movl 0x2134dc(%rip), %ecx    # 0x23aa54
shll $0x14, %ecx
negl %ecx
movl %r9d, %r14d
movl %r10d, %eax
jmp 0x28cca
movl $0x1, %edi
movl 0x10(%rsp), %esi
callq 0x3e6e4
movzwl (%rbp,%r14,2), %ebp
testw %bp, %bp
js 0x287c2
movq 0x38(%rsp), %rax
leaq 0x4(%rax), %rcx
movq %rcx, 0xa0(%rsp)
addq $0x8, %rax
movq %rax, 0xb0(%rsp)
leaq 0x3ac5c7(%rip), %r11    # 0x3d3b90
leaq 0x3ae3c0(%rip), %r8     # 0x3d5990
leaq 0x191479(%rip), %r14    # 0x1b8a50
movzwl %bp, %ebx
leal (,%rbx,4), %eax
leaq 0x244488(%rip), %rcx    # 0x26ba70
movl (%rax,%rcx), %r9d
movslq %r9d, %rcx
movq %rcx, 0x8(%rsp)
leaq 0x248485(%rip), %rcx    # 0x26fa80
movslq (%rax,%rcx), %r10
movzwl (%r11,%r10,2), %eax
cmpw (%r8,%r10,2), %ax
jge 0x2788d
leaq 0x21143a(%rip), %rax    # 0x238a50
movswq (%rax,%rbx,2), %rdi
cmpw $0x2, 0x3714ad(%rip)    # 0x398ad0
jne 0x2768b
movslq 0x7d614(%rip), %rax     # 0xa4c40
cmpl %r9d, %eax
setl %cl
cmpl %r10d, %eax
setg %dl
orb %cl, %dl
jne 0x2768b
movl 0x3f1826(%rip), %edx    # 0x418e68
leaq 0x428827(%rip), %rcx    # 0x44fe70
movswl (%rcx,%rax,2), %esi
movw $0x1, %cx
cmpl %esi, %edx
jle 0x27668
leaq 0x42a614(%rip), %rcx    # 0x451c70
movswl (%rcx,%rax,2), %eax
movw $0x2, %cx
cmpl %eax, %edx
jl 0x2768b
movq 0x48(%rsp), %rax
movw %ax, 0x42e87c(%rip)     # 0x455ef0
movw %di, 0x42e877(%rip)     # 0x455ef2
movw %cx, 0x371450(%rip)     # 0x398ad2
movw $0x1, 0x371445(%rip)    # 0x398ad0
movq %rbx, 0x28(%rsp)
movq %rdi, 0x98(%rsp)
movq %rdi, %rax
shlq $0x5, %rax
leaq (%r14,%rax), %rsi
movswq 0xc(%rax,%r14), %r11
leaq (%r11,%r11,4), %rax
leaq 0x21c3ac(%rip), %rcx    # 0x243a60
leaq (%rcx,%rax,8), %rax
movq %rax, 0x40(%rsp)
testw %r11w, %r11w
movl %r9d, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %r11, 0x50(%rsp)
js 0x278e6
movw %bp, 0x34(%rsp)
movslq 0x7d572(%rip), %rax     # 0xa4c54
movq %rax, 0xa8(%rsp)
movzwl 0x3b00af(%rip), %eax    # 0x3d77a0
movw %ax, 0x5e(%rsp)
movq %r14, %rbp
movl (%rsi), %r14d
movl 0x4(%rsi), %r13d
movswl 0x48(%rsp), %r15d
movl %r15d, %edi
movq %rsi, 0x20(%rsp)
movl %r14d, %esi
movl %r13d, %edx
leaq 0x80(%rsp), %rcx
leaq 0x60(%rsp), %r8
movq %r11, %r12
callq 0x26766
movq 0x20(%rsp), %rax
movswq 0x8(%rax), %rax
shlq $0x5, %rax
movl (%rax,%rbp), %ebx
movl 0x4(%rax,%rbp), %ebp
movl %r15d, %edi
movl %ebx, %esi
movl %ebp, %edx
leaq 0x84(%rsp), %rcx
leaq 0x64(%rsp), %r8
callq 0x26766
movl %r12d, %edi
movl %r14d, %esi
movl %r13d, %edx
leaq 0x88(%rsp), %rcx
leaq 0x68(%rsp), %r8
callq 0x26766
movl %r12d, %edi
movl %ebx, %esi
movl %ebp, %edx
leaq 0x8c(%rsp), %rcx
leaq 0x6c(%rsp), %r8
callq 0x26766
movl 0x2132bf(%rip), %esi    # 0x23aa50
movl 0x2132bd(%rip), %edx    # 0x23aa54
movl %r12d, %edi
leaq 0x90(%rsp), %rcx
leaq 0x70(%rsp), %r8
callq 0x26766
movq 0x20(%rsp), %rsi
movzwl 0xe(%rsi), %eax
andl $0x30, %eax
cmpw $0x10, %ax
jne 0x277e0
movswq 0x3affd8(%rip), %rax    # 0x3d779e
leal 0x1(%rax), %ecx
movw %cx, 0x3affce(%rip)     # 0x3d779e
leaq 0x3de809(%rip), %rcx    # 0x405fe0
movzwl 0x34(%rsp), %edx
movw %dx, (%rcx,%rax,2)
movq 0x38(%rsp), %r14
testb $0x1, 0xc(%r14)
leaq 0x3ac39f(%rip), %r11    # 0x3d3b90
leaq 0x3ae198(%rip), %rbx    # 0x3d5990
leaq 0x428671(%rip), %r12    # 0x44fe70
leaq 0x57cd1a(%rip), %r13    # 0x5a4520
je 0x2781f
movl $0x0, 0x34(%rsp)
movq 0x40(%rsp), %rax
testb $0x1, 0xc(%rax)
jne 0x27dbe
movl 0x80(%rsp), %ebp
movl 0x88(%rsp), %r15d
cmpl %ebp, %r15d
jg 0x27847
movl 0x8c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jle 0x27c08
leaq 0x4816c2(%rip), %rbx    # 0x4a8f10
movq %rbx, %rdi
movq 0x28(%rsp), %rsi
movq 0x50(%rsp), %rdx
xorl %ecx, %ecx
callq 0x2432f
cmpl 0x60(%rsp), %r15d
jle 0x278fb
movq 0x18(%rsp), %rax
cmpl 0x10(%rsp), %eax
leaq 0x42a3f3(%rip), %r8     # 0x451c70
movq 0x8(%rsp), %rcx
jge 0x2791f
jmp 0x27957
cmpl %r9d, %r10d
jle 0x278bd
movq 0x8(%rsp), %rax
addq %rax, %rax
movl %r10d, %ecx
subl %r9d, %ecx
xorl %edx, %edx
leaq (%rax,%rdx,2), %rsi
movzwl (%r11,%rsi), %edi
cmpw (%r8,%rsi), %di
jl 0x2760f
incq %rdx
cmpl %edx, %ecx
jne 0x278a2
movslq 0x7d390(%rip), %rax     # 0xa4c54
leaq 0x47c645(%rip), %rcx    # 0x4a3f10
movl %ebx, (%rcx,%rax,4)
leaq 0x48063b(%rip), %rcx    # 0x4a7f10
movb $0x0, (%rax,%rcx)
incl %eax
movl %eax, 0x7d373(%rip)     # 0xa4c54
jmp 0x287ae
movswl 0xe(%rsi), %ebp
movl %ebp, 0x3e8710(%rip)    # 0x410000
leaq 0x10(%rsi), %rax
movb $0x1, %bl
jmp 0x28510
movl 0x8c(%rsp), %eax
cmpl 0x64(%rsp), %eax
leaq 0x42a363(%rip), %r8     # 0x451c70
movq 0x8(%rsp), %rcx
jle 0x27957
movq 0x18(%rsp), %rax
cmpl 0x10(%rsp), %eax
jl 0x27957
movl 0x10(%rsp), %edx
movq 0x18(%rsp), %rax
cmpl %eax, %edx
cmovgl %edx, %eax
addq %rcx, %rcx
subl %edx, %eax
incl %eax
xorl %edx, %edx
leaq (%rcx,%rdx,2), %rdi
movzwl (%r8,%rdi), %esi
cmpw %si, (%rbx,%rdi)
jle 0x27950
leaq (%rdx,%rdx), %rdi
addq %rcx, %rdi
movw %si, (%rbx,%rdi)
incq %rdx
cmpl %edx, %eax
jne 0x27936
cmpw $0x2, 0x371171(%rip)    # 0x398ad0
jne 0x279b3
movslq 0x7d2d8(%rip), %rax     # 0xa4c40
cmpl 0x10(%rsp), %eax
setl %cl
cmpl 0x18(%rsp), %eax
setg %dl
orb %cl, %dl
jne 0x279b3
movswl (%rbx,%rax,2), %eax
cmpl %eax, 0x3f14e4(%rip)    # 0x418e68
jg 0x279b3
movq 0x48(%rsp), %rax
movw %ax, 0x42e55e(%rip)     # 0x455ef0
movq 0x98(%rsp), %rax
movw %ax, 0x42e551(%rip)     # 0x455ef2
movw $0x0, 0x371128(%rip)    # 0x398ad2
movw $0x1, 0x37111d(%rip)    # 0x398ad0
movq 0x20(%rsp), %rcx
movswl 0xe(%rcx), %ebx
movzwl 0x10(%rcx), %r13d
cmpl $0x2400, %r13d          # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %r13d
movl %ebx, 0x3e8629(%rip)    # 0x410000
movw %r13w, 0x3e8631(%rip)   # 0x410010
movzbl 0x18(%rcx), %eax
movl %eax, 0x42c0f7(%rip)    # 0x453ae0
movzbl 0x19(%rcx), %r12d
movswq %r13w, %rax
leaq 0x3ece57(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %ecx
shrl $0x4, %ecx
leaq 0x3d9dd9(%rip), %rdx    # 0x4017e0
movswl (%rdx,%rax,2), %edx
xorl %esi, %esi
leaq 0x7cd9c(%rip), %rdi     # 0xa47b0
cmpl %edx, (%rdi,%rcx,4)
movl %r12d, 0x42c0c6(%rip)   # 0x453ae4
setne %sil
addl %ecx, %esi
movl $0x20, %r14d
subl %esi, %r14d
movw %r14w, 0x42c0b3(%rip)   # 0x453ae8
leaq 0x213024(%rip), %rcx    # 0x23aa60
testb $-0x40, (%rcx,%rax,4)
je 0x27a58
movswl %r13w, %edi
xorl %esi, %esi
callq 0x242cd
addl %eax, %r13d
movw %r13w, 0x3e85b8(%rip)   # 0x410010
movq 0x20(%rsp), %rsi
movsbl 0x14(%rsi), %eax
movl %eax, 0x3ecdc5(%rip)    # 0x41482c
movslq 0x3a72d2(%rip), %rax    # 0x3ced40
movl %eax, 0x3ecdbc(%rip)    # 0x414830
movq 0x38(%rsp), %rcx
movb 0x20(%rcx), %cl
testb %cl, %cl
je 0x27a94
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ecd9c(%rip)    # 0x414830
movzbl 0x15(%rsi), %edx
leaq 0x371041(%rip), %rax    # 0x398ae0
cmpq $0x0, (%rax,%rdx,8)
movl $0x0, %eax
cmovel %eax, %edx
movzbl 0x17(%rsi), %eax
addb $-0x13, %r14b
movl %r14d, %ecx
shll %cl, %eax
movl %edx, 0x3e8545(%rip)    # 0x410004
movl %eax, 0x42c02b(%rip)    # 0x453af0
movq 0x40(%rsp), %rcx
addq $0x4, %rcx
testb $0x4, %bl
movl 0x243f89(%rip), %edx    # 0x26ba60
cmovneq 0xa0(%rsp), %rcx
subl (%rcx), %edx
imull %eax, %edx
shll $0x8, %edx
shll $0x18, %r12d
addl %edx, %r12d
movl %r12d, 0x42bff6(%rip)   # 0x453aec
btl $0x8, %ebx
leaq 0x57ca1f(%rip), %r13    # 0x5a4520
jae 0x27b15
negl %eax
movl %eax, 0x42bfe5(%rip)    # 0x453af0
negl %r12d
movl %r12d, 0x42bfd7(%rip)   # 0x453aec
movq 0x28(%rsp), %rdi
callq 0x3eead
movl 0x10(%rsp), %edi
movq 0x18(%rsp), %rsi
leaq 0x428341(%rip), %r12    # 0x44fe70
movq %r12, %rdx
leaq 0x4813d7(%rip), %rcx    # 0x4a8f10
leaq 0x4831d0(%rip), %r8     # 0x4aad10
leaq 0x486dc9(%rip), %r9     # 0x4ae910
callq 0x3f2ef
cmpl %ebp, %r15d
leaq 0x3ade3a(%rip), %rbx    # 0x3d5990
jl 0x27b6c
movl 0x8c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jge 0x27c86
movl $0x1, 0x34(%rsp)
movl 0x10(%rsp), %esi
movq 0x18(%rsp), %rdx
cmpl %esi, %edx
movq 0x38(%rsp), %r14
leaq 0x3ac005(%rip), %r11    # 0x3d3b90
jl 0x27d04
movzwl 0x3afc00(%rip), %eax    # 0x3d7798
movq 0x8(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r9
movzwl (%r11,%r9), %r8d
movzwl (%rbx,%r9), %edi
cmpw %di, %r8w
jg 0x27bfc
movzwl (%r12,%r9), %r10d
leaq 0x48134a(%rip), %r13    # 0x4a8f10
movzwl (%r13,%r9), %r9d
cmpw %r9w, %r10w
cmovgl %r10d, %r9d
cmpw %r8w, %r9w
jle 0x27bf5
leaq (%rsi,%rsi), %r8
addq %rcx, %r8
movw %r9w, (%r11,%r8)
cmpw %di, %r9w
jle 0x27bf5
decl %eax
movw %ax, 0x3afba3(%rip)     # 0x3d7798
leaq 0x57c924(%rip), %r13    # 0x5a4520
incq %rsi
cmpl %esi, %edx
jne 0x27ba6
jmp 0x27d04
movl $0x0, 0x34(%rsp)
cmpb $0x0, 0x3afb91(%rip)    # 0x3d77a8
je 0x27d09
movl 0x10(%rsp), %esi
movq 0x18(%rsp), %rdx
cmpl %esi, %edx
jl 0x27d04
movzwl 0x3afb63(%rip), %eax    # 0x3d7798
movq 0x8(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%r12,%r8), %edi
movzwl (%r11,%r8), %r9d
cmpw %r9w, %di
jle 0x27c7d
movzwl (%rbx,%r8), %r8d
cmpw %r8w, %r9w
jg 0x27c7d
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%r11,%r9)
cmpw %r8w, %di
jle 0x27c7d
decl %eax
movw %ax, 0x3afb1b(%rip)     # 0x3d7798
incq %rsi
cmpl %esi, %edx
jne 0x27c43
jmp 0x27d04
movl $0x1, 0x34(%rsp)
movl 0x10(%rsp), %esi
movq 0x18(%rsp), %rdx
cmpl %esi, %edx
movq 0x38(%rsp), %r14
leaq 0x3abeeb(%rip), %r11    # 0x3d3b90
jl 0x27d04
movzwl 0x3afaea(%rip), %eax    # 0x3d7798
movq 0x8(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
leaq 0x481249(%rip), %rdi    # 0x4a8f10
movzwl (%rdi,%r8), %edi
movzwl (%r11,%r8), %r9d
cmpw %r9w, %di
jle 0x27cfd
movzwl (%rbx,%r8), %r8d
cmpw %r8w, %r9w
jg 0x27cfd
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%r11,%r9)
cmpw %r8w, %di
jle 0x27cfd
decl %eax
movw %ax, 0x3afa9b(%rip)     # 0x3d7798
incq %rsi
cmpl %esi, %edx
jne 0x27cbc
movq 0x20(%rsp), %rsi
cmpl %ebp, %r15d
jl 0x27d31
movl 0x8c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jl 0x27d31
movl 0x243d3c(%rip), %eax    # 0x26ba60
cmpl 0x90(%rsp), %eax
jge 0x27dbe
movq 0x18(%rsp), %rbx
subl 0x10(%rsp), %ebx
movswl 0x3afa5f(%rip), %eax    # 0x3d77a0
leal (%rbx,%rax), %ecx
incl %ecx
cmpl $0x77fff, %ecx          # imm = 0x77FFF
jg 0x27db7
incl %ebx
movslq %eax, %rcx
movslq 0x7cefa(%rip), %rdx     # 0xa4c54
leaq 0x48a7bf(%rip), %rsi    # 0x4b2520
movw %ax, (%rsi,%rdx,2)
leaq 0x47c1a4(%rip), %rax    # 0x4a3f10
movq 0x28(%rsp), %rsi
movl %esi, (%rax,%rdx,4)
leaq 0x480195(%rip), %rax    # 0x4a7f10
movb $0x1, (%rdx,%rax)
leal 0x1(%rdx), %eax
movl %eax, 0x7cecc(%rip)     # 0xa4c54
movq 0x8(%rsp), %rax
leaq (%r11,%rax,2), %rdi
leaq 0x48c788(%rip), %rax    # 0x4b4520
leaq (%rax,%rcx,2), %rsi
leal (%rbx,%rbx), %edx
callq 0x4d437
movq 0x20(%rsp), %rsi
leaq 0x3abde0(%rip), %r11    # 0x3d3b90
addw %bx, 0x3af9e9(%rip)     # 0x3d77a0
leaq 0x3adbd2(%rip), %rbx    # 0x3d5990
testb $0x1, 0xe(%r14)
je 0x27dd4
movq 0x40(%rsp), %rax
testb $0x1, 0xe(%rax)
jne 0x28188
movl 0x60(%rsp), %ecx
movl 0x68(%rsp), %r14d
cmpl %ecx, %r14d
movl 0x10(%rsp), %r15d
jl 0x27df5
movl 0x6c(%rsp), %eax
cmpl 0x64(%rsp), %eax
jge 0x28210
movl %ecx, 0x58(%rsp)
movq %r13, %rdi
movq 0x28(%rsp), %rsi
movq 0x50(%rsp), %rdx
movl $0x1, %ecx
callq 0x2432f
cmpl 0x80(%rsp), %r14d
jl 0x27e27
movl 0x6c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jge 0x27e6e
cmpl %r15d, 0x18(%rsp)
jl 0x27e6e
movq 0x18(%rsp), %rax
cmpl %eax, %r15d
cmovgl %r15d, %eax
movq 0x8(%rsp), %rcx
addq %rcx, %rcx
subl %r15d, %eax
incl %eax
xorl %edx, %edx
leaq (%rcx,%rdx,2), %rdi
movzwl (%r12,%rdi), %esi
cmpw %si, (%r13,%rdi)
jge 0x27e67
leaq (%rdx,%rdx), %rdi
addq %rcx, %rdi
movw %si, (%r13,%rdi)
incq %rdx
cmpl %edx, %eax
jne 0x27e49
cmpw $0x2, 0x370c5a(%rip)    # 0x398ad0
movq 0x20(%rsp), %rbp
jne 0x27ee1
movslq 0x7cdbc(%rip), %rax     # 0xa4c40
cmpl %r15d, %eax
setl %cl
cmpl 0x18(%rsp), %eax
setg %dl
orb %cl, %dl
jne 0x27ee1
movswl (%r13,%rax,2), %eax
cmpl %eax, 0x3f0fc7(%rip)    # 0x418e68
jl 0x27ee1
movq 0x48(%rsp), %rax
movw %ax, 0x42e041(%rip)     # 0x455ef0
movq 0x98(%rsp), %rax
movw %ax, 0x42e034(%rip)     # 0x455ef2
testb $0x2, 0xe(%rbp)
je 0x27ecf
movzwl 0xa(%rbp), %eax
movw %ax, 0x42e023(%rip)     # 0x455ef2
movw $0x0, 0x370bfa(%rip)    # 0x398ad2
movw $0x1, 0x370bef(%rip)    # 0x398ad0
movswl 0xe(%rbp), %r15d
testb $0x2, %r15b
jne 0x27f6b
movl %r15d, 0x3e810d(%rip)   # 0x410000
movzwl 0x10(%rbp), %r13d
cmpl $0x2400, %r13d          # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %r13d
movw %r13w, 0x3e8100(%rip)   # 0x410010
movzbl 0x18(%rbp), %eax
movl %eax, 0x42bbc6(%rip)    # 0x453ae0
movzbl 0x19(%rbp), %r12d
movl %r12d, 0x42bbbe(%rip)   # 0x453ae4
movswq %r13w, %rax
leaq 0x212b2f(%rip), %rcx    # 0x23aa60
testb $-0x40, (%rcx,%rax,4)
je 0x27f52
movswl %r13w, %edi
xorl %esi, %esi
callq 0x242cd
movq 0x20(%rsp), %rbp
addl %eax, %r13d
movw %r13w, 0x3e80be(%rip)   # 0x410010
movsbl 0x14(%rbp), %eax
movl %eax, 0x3ec8d0(%rip)    # 0x41482c
movzbl 0x15(%rbp), %eax
movl %eax, 0x3e809e(%rip)    # 0x410004
jmp 0x2802a
movswq 0xa(%rbp), %rbx
shlq $0x5, %rbx
leaq 0x190ad5(%rip), %rcx    # 0x1b8a50
movswl 0xe(%rbx,%rcx), %r15d
movl %r15d, 0x3e8078(%rip)   # 0x410000
movzwl 0x10(%rbx,%rcx), %r13d
cmpl $0x2400, %r13d          # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %r13d
movw %r13w, 0x3e806a(%rip)   # 0x410010
movzbl 0x18(%rbx,%rcx), %eax
movl %eax, 0x42bb2f(%rip)    # 0x453ae0
movzbl 0x19(%rbx,%rcx), %r12d
movl %r12d, 0x42bb26(%rip)   # 0x453ae4
movswq %r13w, %rax
leaq 0x212a97(%rip), %rcx    # 0x23aa60
testb $-0x40, (%rcx,%rax,4)
je 0x27fe5
movswl %r13w, %edi
xorl %esi, %esi
callq 0x242cd
addl %eax, %r13d
movw %r13w, 0x3e802b(%rip)   # 0x410010
leaq 0x190a64(%rip), %rdx    # 0x1b8a50
addq %rdx, %rbx
movsbl 0x14(%rbx), %eax
movl %eax, 0x3ec833(%rip)    # 0x41482c
movzbl 0x15(%rbx), %eax
movl %eax, 0x3e8001(%rip)    # 0x410004
leaq 0x210a46(%rip), %rcx    # 0x238a50
movq 0x28(%rsp), %rsi
movswq (%rcx,%rsi,2), %rbp
movq %rbp, 0x98(%rsp)
shlq $0x5, %rbp
addq %rdx, %rbp
leaq 0x3ad966(%rip), %rbx    # 0x3d5990
movl %eax, %eax
leaq 0x370aad(%rip), %rcx    # 0x398ae0
cmpq $0x0, (%rcx,%rax,8)
jne 0x28044
movl $0x0, 0x3e7fc0(%rip)    # 0x410004
movslq 0x3a6cf5(%rip), %rax    # 0x3ced40
movl %eax, 0x3ec7df(%rip)    # 0x414830
movq 0x38(%rsp), %rcx
movb 0x20(%rcx), %cl
testb %cl, %cl
je 0x28071
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ec7bf(%rip)    # 0x414830
movswq %r13w, %rax
leaq 0x3ec7d4(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %ecx
shrl $0x4, %ecx
leaq 0x3d9756(%rip), %rdx    # 0x4017e0
movswl (%rdx,%rax,2), %eax
xorl %edx, %edx
leaq 0x7c719(%rip), %rsi     # 0xa47b0
cmpl %eax, (%rsi,%rcx,4)
setne %dl
addl %ecx, %edx
movl $0x20, %ecx
subl %edx, %ecx
movw %cx, 0x42ba3b(%rip)     # 0x453ae8
movzbl 0x17(%rbp), %eax
addb $-0x13, %cl
shll %cl, %eax
movl %eax, 0x42ba34(%rip)    # 0x453af0
movq 0x40(%rsp), %rcx
addq $0x8, %rcx
testb $0x4, %r15b
movl 0x243991(%rip), %edx    # 0x26ba60
cmovneq 0xa0(%rsp), %rcx
subl (%rcx), %edx
imull %eax, %edx
shll $0x8, %edx
shll $0x18, %r12d
addl %edx, %r12d
movl %r12d, 0x42b9fe(%rip)   # 0x453aec
btl $0x8, %r15d
jae 0x28107
negl %eax
movl %eax, 0x42b9f3(%rip)    # 0x453af0
negl %r12d
movl %r12d, 0x42b9e5(%rip)   # 0x453aec
cmpl $0x0, 0x34(%rsp)
leaq 0x57c40d(%rip), %r12    # 0x5a4520
movl 0x10(%rsp), %r15d
jne 0x28127
movq 0x28(%rsp), %rdi
movq %rbp, %rsi
callq 0x3eead
movl %r15d, %edi
movq 0x18(%rsp), %rsi
movq %r12, %rdx
leaq 0x429b37(%rip), %r15    # 0x451c70
movq %r15, %rcx
leaq 0x482bcd(%rip), %r8     # 0x4aad10
leaq 0x4867c6(%rip), %r9     # 0x4ae910
callq 0x3f2ef
movl 0x58(%rsp), %ecx
cmpl %ecx, %r14d
jg 0x28166
movl 0x6c(%rsp), %eax
cmpl 0x64(%rsp), %eax
jle 0x2829d
movl $0x1, %r13d
movl 0x10(%rsp), %esi
movq 0x18(%rsp), %rdx
cmpl %esi, %edx
leaq 0x3aba12(%rip), %r11    # 0x3d3b90
jge 0x281a3
movl %esi, %r15d
jmp 0x282b9
leaq 0x1908c1(%rip), %r14    # 0x1b8a50
movl 0x10(%rsp), %r15d
movq 0x8(%rsp), %r12
movl 0x34(%rsp), %r13d
jmp 0x283e9
movzwl 0x3af5ee(%rip), %eax    # 0x3d7798
movq 0x8(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%r11,%r8), %edi
movzwl (%rbx,%r8), %r9d
cmpw %r9w, %di
jg 0x281ff
movzwl (%r15,%r8), %r10d
movzwl (%r12,%r8), %r8d
cmpw %r8w, %r10w
cmovll %r10d, %r8d
cmpw %r9w, %r8w
jge 0x281ff
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %r8w, (%rbx,%r9)
cmpw %r8w, %di
jle 0x281ff
decl %eax
movw %ax, 0x3af599(%rip)     # 0x3d7798
incq %rsi
cmpl %esi, %edx
jne 0x281b8
movl 0x10(%rsp), %r15d
jmp 0x2831a
cmpb $0x0, 0x3af592(%rip)    # 0x3d77a9
je 0x28328
movq 0x18(%rsp), %rdx
cmpl %r15d, %edx
leaq 0x429a44(%rip), %r10    # 0x451c70
movq 0x8(%rsp), %r12
jl 0x2832d
movl %ecx, %ebp
movzwl 0x3af558(%rip), %eax    # 0x3d7798
leaq (%r12,%r12), %rcx
subl %r15d, %edx
incl %edx
xorl %esi, %esi
movl 0x34(%rsp), %r13d
leaq (%rcx,%rsi,2), %r8
movzwl (%r10,%r8), %edi
movzwl (%rbx,%r8), %r9d
cmpw %r9w, %di
jge 0x2828a
movzwl (%r11,%r8), %r8d
cmpw %r9w, %r8w
jg 0x2828a
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%rbx,%r9)
cmpw %di, %r8w
jle 0x2828a
decl %eax
movw %ax, 0x3af50e(%rip)     # 0x3d7798
incq %rsi
cmpl %esi, %edx
jne 0x28250
movq 0x20(%rsp), %rsi
movl %ebp, %ecx
jmp 0x28332
movl $0x1, %r13d
movl 0x10(%rsp), %r15d
movq 0x18(%rsp), %rdx
cmpl %r15d, %edx
leaq 0x3ab8d9(%rip), %r11    # 0x3d3b90
jge 0x282c3
movq 0x8(%rsp), %r12
movq %rbp, %rsi
jmp 0x28332
movzwl 0x3af4ce(%rip), %eax    # 0x3d7798
movq 0x8(%rsp), %rcx
addq %rcx, %rcx
subl %r15d, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%r12,%r8), %edi
movzwl (%rbx,%r8), %r9d
cmpw %r9w, %di
jge 0x28313
movzwl (%r11,%r8), %r8d
cmpw %r9w, %r8w
jg 0x28313
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%rbx,%r9)
cmpw %di, %r8w
jle 0x28313
decl %eax
movw %ax, 0x3af485(%rip)     # 0x3d7798
incq %rsi
cmpl %esi, %edx
jne 0x282d9
movq 0x8(%rsp), %r12
movq %rbp, %rsi
movl 0x58(%rsp), %ecx
jmp 0x28332
movq 0x8(%rsp), %r12
movl 0x34(%rsp), %r13d
cmpl %ecx, %r14d
jg 0x28351
movl 0x6c(%rsp), %eax
cmpl 0x64(%rsp), %eax
jg 0x28351
movl 0x243719(%rip), %eax    # 0x26ba60
cmpl 0x70(%rsp), %eax
jle 0x283e2
movq 0x18(%rsp), %rbx
subl %r15d, %ebx
movswl 0x3af440(%rip), %eax    # 0x3d77a0
leal (%rbx,%rax), %ecx
incl %ecx
cmpl $0x77fff, %ecx          # imm = 0x77FFF
leaq 0x1906de(%rip), %r14    # 0x1b8a50
jg 0x283e9
incl %ebx
movslq %eax, %rcx
movslq 0x7c8d4(%rip), %rdx     # 0xa4c54
movq %rsi, %rbp
leaq 0x48a196(%rip), %rsi    # 0x4b2520
movw %ax, (%rsi,%rdx,2)
leaq 0x47bb7b(%rip), %rax    # 0x4a3f10
movq 0x28(%rsp), %rsi
movl %esi, (%rax,%rdx,4)
leaq 0x47fb6c(%rip), %rax    # 0x4a7f10
movb $0x2, (%rdx,%rax)
leal 0x1(%rdx), %eax
movl %eax, 0x7c8a3(%rip)     # 0xa4c54
leaq 0x3ad5d8(%rip), %rax    # 0x3d5990
leaq (%rax,%r12,2), %rdi
leaq 0x48c15d(%rip), %rax    # 0x4b4520
leaq (%rax,%rcx,2), %rsi
leal (%rbx,%rbx), %edx
callq 0x4d437
movq %rbp, %rsi
leaq 0x3ab7b7(%rip), %r11    # 0x3d3b90
addw %bx, 0x3af3c0(%rip)     # 0x3d77a0
jmp 0x283e9
leaq 0x190667(%rip), %r14    # 0x1b8a50
cmpw $0x0, 0x3af3a7(%rip)    # 0x3d7798
js 0x287c2
testb $0x20, 0xe(%rsi)
jne 0x284e1
movq 0x50(%rsp), %rcx
movl %ecx, %eax
shrl $0x3, %eax
andl $0x7, %ecx
leaq 0x7c38b(%rip), %rdx     # 0xa47a0
movb (%rcx,%rdx), %cl
leaq 0x3a7941(%rip), %rdx    # 0x3cfd60
testb %cl, (%rax,%rdx)
jne 0x284e1
movq 0x18(%rsp), %rdx
movzwl (%r11,%rdx,2), %eax
leaq 0x3ad557(%rip), %rcx    # 0x3d5990
cmpw (%rcx,%rdx,2), %ax
jge 0x2845b
movq 0x50(%rsp), %rdi
movq %rsi, %rbx
callq 0x2688e
movq %rbx, %rsi
leaq 0x3ab73a(%rip), %r11    # 0x3d3b90
jmp 0x284e1
movl %r15d, %ebx
cmpl %r15d, %edx
jle 0x284a6
leaq (%r12,%r12), %rax
movl %r15d, %ebx
movzwl (%rax,%r11), %ecx
leaq 0x3ad51a(%rip), %rdx    # 0x3d5990
cmpw (%rax,%rdx), %cx
jl 0x2848a
incl %ebx
addq $0x2, %rax
cmpl %ebx, 0x18(%rsp)
jne 0x2846a
jmp 0x284aa
movq 0x50(%rsp), %rdi
movq %rsi, %r15
callq 0x2688e
movq %r15, %rsi
leaq 0x3ab6ef(%rip), %r11    # 0x3d3b90
movq 0x18(%rsp), %rdx
cmpl %edx, %ebx
jne 0x284e1
movzwl 0x5e(%rsp), %eax
movw %ax, 0x3af2ea(%rip)     # 0x3d77a0
leaq 0x47ba53(%rip), %rax    # 0x4a3f10
movq 0x28(%rsp), %rcx
movq 0xa8(%rsp), %rdx
movl %ecx, (%rax,%rdx,4)
leaq 0x47fa3c(%rip), %rax    # 0x4a7f10
movb $0x0, (%rdx,%rax)
leal 0x1(%rdx), %eax
movl %eax, 0x7c773(%rip)     # 0xa4c54
movswl 0xe(%rsi), %ebp
testb $0x20, %bpl
leaq 0x3ad4a0(%rip), %r8     # 0x3d5990
movq 0x28(%rsp), %rbx
je 0x287ae
movl %ebp, 0x3e7aff(%rip)    # 0x410000
leaq 0x12(%rsi), %rax
testl %r13d, %r13d
sete %bl
movq 0x50(%rsp), %r11
movzwl (%rax), %r15d
cmpl $0x2400, %r15d          # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %r15d
movw %r15w, 0x3e7ae4(%rip)   # 0x410010
movzbl 0x18(%rsi), %eax
movl %eax, 0x42b5aa(%rip)    # 0x453ae0
movzbl 0x19(%rsi), %r14d
movl %r14d, 0x42b5a2(%rip)   # 0x453ae4
movswq %r15w, %rax
leaq 0x212513(%rip), %rcx    # 0x23aa60
testb $-0x40, (%rcx,%rax,4)
movq 0x38(%rsp), %r12
je 0x28579
movswl %r15w, %edi
movq %rsi, %r13
xorl %esi, %esi
callq 0x242cd
movq %r13, %rsi
movq 0x50(%rsp), %r11
addl %eax, %r15d
movw %r15w, 0x3e7a97(%rip)   # 0x410010
movsbl 0x14(%rsi), %eax
movl %eax, 0x3ec2a9(%rip)    # 0x41482c
movslq 0x3a67b6(%rip), %rax    # 0x3ced40
movl %eax, 0x3ec2a0(%rip)    # 0x414830
movb 0x20(%r12), %cl
testb %cl, %cl
je 0x285ad
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ec283(%rip)    # 0x414830
movzbl 0x15(%rsi), %edx
leaq 0x370528(%rip), %rax    # 0x398ae0
cmpq $0x0, (%rax,%rdx,8)
movl $0x0, %eax
cmovel %eax, %edx
movswq %r15w, %rax
leaq 0x3ec280(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %ecx
shrl $0x4, %ecx
movq %rsi, %r8
leaq 0x3d91ff(%rip), %rsi    # 0x4017e0
movswl (%rsi,%rax,2), %eax
xorl %esi, %esi
leaq 0x7c1c2(%rip), %rdi     # 0xa47b0
cmpl %eax, (%rdi,%rcx,4)
setne %sil
addl %ecx, %esi
movl $0x20, %ecx
subl %esi, %ecx
movw %cx, 0x42b4e3(%rip)     # 0x453ae8
movq %r8, %rsi
movzbl 0x17(%r8), %eax
addb $-0x13, %cl
shll %cl, %eax
movq 0x40(%rsp), %rdi
addq $0x4, %rdi
testb $0x4, %bpl
movq 0xb0(%rsp), %rcx
movq 0xa0(%rsp), %r8
cmoveq %r8, %rcx
movl %edx, 0x3e79cb(%rip)    # 0x410004
cmovneq %r8, %rdi
testw %r11w, %r11w
movl %eax, 0x42b4a9(%rip)    # 0x453af0
movl 0x243413(%rip), %edx    # 0x26ba60
cmovsq %rcx, %rdi
subl (%rdi), %edx
imull %eax, %edx
shll $0x8, %edx
shll $0x18, %r14d
addl %edx, %r14d
movl %r14d, 0x42b485(%rip)   # 0x453aec
btl $0x8, %ebp
leaq 0x4277fe(%rip), %r15    # 0x44fe70
leaq 0x4295f7(%rip), %r12    # 0x451c70
jae 0x2868d
negl %eax
movl %eax, 0x42b46d(%rip)    # 0x453af0
negl %r14d
movl %r14d, 0x42b45f(%rip)   # 0x453aec
testb %bl, %bl
movq 0x28(%rsp), %rbx
je 0x2869d
movl %ebx, %edi
callq 0x3eead
movl 0x10(%rsp), %edi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
movq %rsi, %r15
movl %edi, %ebp
movq %r12, %rcx
leaq 0x482658(%rip), %r8     # 0x4aad10
leaq 0x486251(%rip), %r9     # 0x4ae910
callq 0x3f2ef
cmpl %ebp, %r15d
leaq 0x3ab4c2(%rip), %r11    # 0x3d3b90
leaq 0x3ad2bb(%rip), %r8     # 0x3d5990
leaq 0x190374(%rip), %r14    # 0x1b8a50
movq 0x8(%rsp), %r9
jl 0x2872b
movzwl 0x3af0ae(%rip), %eax    # 0x3d7798
addq %r9, %r9
movl %r15d, %ecx
subl %ebp, %ecx
incl %ecx
xorl %edx, %edx
leaq (%r9,%rdx,2), %rsi
movzwl (%r11,%rsi), %edi
cmpw (%r8,%rsi), %di
jg 0x28724
leaq (%rdx,%rdx), %rsi
addq %r9, %rsi
movw $0x1, (%r11,%rsi)
movw $0x0, (%r8,%rsi)
decl %eax
movw %ax, 0x3af074(%rip)     # 0x3d7798
incq %rdx
cmpl %edx, %ecx
jne 0x286f6
movslq 0x7c522(%rip), %rax     # 0xa4c54
leaq 0x47b7d7(%rip), %rcx    # 0x4a3f10
movl %ebx, (%rcx,%rax,4)
leaq 0x47f7cd(%rip), %rcx    # 0x4a7f10
movb $0x0, (%rax,%rcx)
incl %eax
movl %eax, 0x7c505(%rip)     # 0xa4c54
cmpw $0x2, 0x370379(%rip)    # 0x398ad0
jne 0x287ae
movl 0x7c4e1(%rip), %eax     # 0xa4c40
cmpl %ebp, %eax
setl %cl
cmpl %r15d, %eax
setg %al
orb %cl, %al
jne 0x287ae
movw $0x1, 0x370359(%rip)    # 0x398ad0
movq 0x48(%rsp), %rax
movw %ax, 0x42d76d(%rip)     # 0x455ef0
movq 0x98(%rsp), %rax
movw %ax, 0x42d760(%rip)     # 0x455ef2
cmpw $0x0, 0x50(%rsp)
js 0x287a5
movw $0x4, 0x37032f(%rip)    # 0x398ad2
jmp 0x287ae
movw $0x0, 0x370324(%rip)    # 0x398ad2
leaq 0x3b701b(%rip), %rax    # 0x3df7d0
movzwl (%rax,%rbx,2), %ebp
testw %bp, %bp
jns 0x275d7
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movswq (%rax), %rax
shlq $0x5, %rax
leaq 0x19026d(%rip), %rcx    # 0x1b8a50
movswq 0x8(%rax,%rcx), %rdx
shlq $0x5, %rdx
movslq (%rdx,%rcx), %r9
movslq (%rax,%rcx), %r10
subq %r10, %r9
movslq 0x4(%rdx,%rcx), %r14
movslq 0x4(%rax,%rcx), %r11
subq %r11, %r14
movl %r9d, %eax
imull %r9d, %eax
movl %r14d, %edi
imull %edi, %edi
addl %eax, %edi
movl %edi, %eax
shrl $0x18, %eax
orl $0x1000, %eax           # imm = 0x1000
movl %edi, %ecx
shrl $0xc, %ecx
cmpl $0x1000000, %edi        # imm = 0x1000000
cmovael %eax, %ecx
leaq 0x42d6cd(%rip), %rax    # 0x455f00
movzwl (%rax,%rcx,2), %ecx
shrl %cl, %edi
leaq 0x42f8c0(%rip), %rax    # 0x458100
movzwl (%rax,%rdi,2), %edi
shrl $0x8, %ecx
shrl %cl, %edi
testl %edi, %edi
movl %ebp, 0x40(%rsp)
je 0x288f8
movl $0x100000, %eax         # imm = 0x100000
xorl %edx, %edx
divl %edi
jmp 0x288fd
movswq (%rdx), %rax
shlq $0x5, %rax
leaq 0x1901de(%rip), %rcx    # 0x1b8a50
movswq 0x8(%rax,%rcx), %rdx
shlq $0x5, %rdx
movslq (%rdx,%rcx), %r9
movslq (%rax,%rcx), %r10
subq %r10, %r9
movslq 0x4(%rdx,%rcx), %rbx
movslq 0x4(%rax,%rcx), %r11
subq %r11, %rbx
movl %r9d, %eax
imull %r9d, %eax
movl %ebx, %r8d
imull %r8d, %r8d
addl %eax, %r8d
movl %r8d, %eax
shrl $0x18, %eax
orl $0x1000, %eax           # imm = 0x1000
movl %r8d, %ecx
shrl $0xc, %ecx
cmpl $0x1000000, %r8d        # imm = 0x1000000
cmovael %eax, %ecx
leaq 0x42d639(%rip), %rax    # 0x455f00
movzwl (%rax,%rcx,2), %ecx
shrl %cl, %r8d
leaq 0x42f82b(%rip), %rax    # 0x458100
movzwl (%rax,%r8,2), %r8d
shrl $0x8, %ecx
shrl %cl, %r8d
testl %r8d, %r8d
je 0x28c0e
movl $0x100000, %eax         # imm = 0x100000
xorl %edx, %edx
divl %r8d
jmp 0x28c13
movl $0x400, %eax            # imm = 0x400
movslq 0x247174(%rip), %r13    # 0x26fa78
movq %r14, %r15
negq %r15
movslq 0x24715f(%rip), %rdx    # 0x26fa70
movslq %r14d, %r14
imulq %r13, %r14
movl 0x212132(%rip), %ecx    # 0x23aa50
subl %ecx, %r10d
shll $0x6, %r10d
movl 0x212129(%rip), %ecx    # 0x23aa54
subl %ecx, %r11d
shll $0x6, %r11d
movslq %r10d, %rdi
negl %r10d
movslq %r11d, %rcx
movq %rcx, %r8
movslq %r10d, %rbp
imulq %r13, %rbp
imulq %r13, %rcx
imulq %r9, %r13
imulq %rdx, %r15
addq %r13, %r15
shrq $0xa, %r15
movslq %r15d, %r10
imulq %rax, %r10
shrq $0xa, %r10
imulq %rdx, %r9
addq %r9, %r14
shrq $0xa, %r14
movslq %r14d, %r15
imulq %rax, %r15
shrq $0xa, %r15
movl %r10d, %eax
negl %eax
movl %r15d, %r9d
negl %r9d
imulq %rdx, %r8
addq %r8, %rbp
shrq $0xe, %rbp
imulq %rdx, %rdi
addq %rdi, %rcx
shrq $0xe, %rcx
movl %ebp, %r11d
imull %r10d, %r11d
movl %ecx, %edx
imull %r15d, %edx
subl %edx, %r11d
imull %r9d, %ebp
imull %eax, %ecx
addl %ebp, %ecx
movl 0x40(%rsp), %ebp
movslq 0x3a637a(%rip), %rdx    # 0x3ced38
movslq %eax, %r14
imulq %rdx, %r14
shrq $0x10, %r14
movslq %r15d, %r13
imulq %rdx, %r13
shrq $0x10, %r13
leaq 0x3ebe75(%rip), %rax    # 0x414850
movzbl (%rsi,%rax), %esi
movl %esi, %edi
andb $0xf, %dil
movb $0x8, %al
movb $0x8, %dl
subb %dil, %dl
movb %dl, 0x3ee25e(%rip)     # 0x416c50
movl %esi, %r8d
shrb $0x4, %r8b
subb %r8b, %al
movb %al, 0x3ee24f(%rip)     # 0x416c51
testb $0x8, %bpl
je 0x28a1e
movb $0x9, %al
movb $0x9, %dl
subb %dil, %dl
movb %dl, 0x3ee23b(%rip)     # 0x416c50
subb %r8b, %al
movb %al, 0x3ee233(%rip)     # 0x416c51
testb $0x4, %bpl
jne 0x28a32
movl %ecx, %r8d
movl %r9d, %edi
movl %r11d, %ecx
movl %r10d, %r9d
jmp 0x28a4c
negl %r13d
movl %ebp, %r15d
movl %r14d, %ebp
negl %ebp
movl %r11d, %r8d
movl %r10d, %edi
movl %r13d, %r14d
movl %ebp, %r13d
movl %r15d, %ebp
movl %r9d, %r15d
negl %r15d
movl %r13d, %r10d
negl %r10d
movl %ecx, %r11d
negl %r11d
testb $0x10, %bpl
cmovel %ecx, %r11d
cmovnel %r13d, %r10d
cmovel %r9d, %r15d
movl %r14d, %r9d
negl %r9d
movl %edi, %r13d
negl %r13d
movl %ebp, %ecx
movl %r8d, %ebp
negl %ebp
testb $0x20, %cl
cmovel %r8d, %ebp
cmovel %edi, %r13d
cmovel %r14d, %r9d
subl %r15d, %r10d
movl %edx, %ecx
shll %cl, %r15d
movl %r15d, 0x3ebd99(%rip)   # 0x414838
subl %r13d, %r9d
movl %eax, %ecx
shll %cl, %r13d
movl %r13d, 0x3ebd96(%rip)   # 0x414844
movl %edx, %ecx
shll %cl, %r11d
movl %eax, %ecx
shll %cl, %ebp
movq 0x38(%rsp), %rdi
movzbl 0x16(%rdi), %ecx
shll $0x18, %ecx
addl %r11d, %ecx
movl %ecx, 0x42b014(%rip)    # 0x453ae0
movzbl 0x17(%rdi), %ecx
shll $0x18, %ecx
addl %ebp, %ecx
movl %ecx, 0x42b009(%rip)    # 0x453ae4
movl %edx, %ecx
shll %cl, %r10d
movl 0x3f037e(%rip), %edx    # 0x418e64
imull %edx, %r10d
movl %r10d, 0x3ebd4b(%rip)   # 0x41483c
movl %eax, %ecx
shll %cl, %r9d
imull %edx, %r9d
movl %r9d, 0x3ebd3f(%rip)    # 0x414840
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
movq 0x28(%rsp), %rdx
callq 0x6fa67
movslq 0x3ebd2a(%rip), %rax    # 0x414844
movq 0x20(%rsp), %r15
leaq -0x1(%r15), %rcx
movq %rax, %rdx
imulq %rcx, %rdx
movslq 0x3ebd0f(%rip), %rsi    # 0x414840
addq %rdx, %rsi
movslq 0x3ebcfd(%rip), %rdx    # 0x414838
movslq %ecx, %rcx
imulq %rdx, %rcx
movslq 0x3ebcf3(%rip), %rdi    # 0x41483c
addq %rcx, %rdi
movslq 0x42af99(%rip), %rcx    # 0x453aec
imulq %rcx, %rdx
shrq $0x10, %rdx
movl %edx, 0x3ebcd7(%rip)    # 0x414838
imulq %rcx, %rsi
shrq $0x10, %rsi
movl %esi, 0x3ebcd1(%rip)    # 0x414840
imulq %rcx, %rdi
shrq $0x10, %rdi
movl %edi, 0x3ebcbf(%rip)    # 0x41483c
imulq %rcx, %rax
shrq $0x10, %rax
movl %eax, 0x3ebcb9(%rip)    # 0x414844
movslq 0x3ebc9e(%rip), %rax    # 0x414830
imulq %rcx, %rax
shrq $0xa, %rax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movl %ecx, 0x3ebc89(%rip)    # 0x414830
movl $0x180, %eax            # imm = 0x180
andl 0x3e744e(%rip), %eax    # 0x410000
movq %r12, 0x8(%rsp)
je 0x28bf1
shrl $0x7, %eax
leaq 0x4e34d(%rip), %rcx     # 0x76f10
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movswq 0x3e743c(%rip), %rax    # 0x410010
leaq 0x3ebc75(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6fd6f
jmp 0x294ac
leaq 0x3aaf98(%rip), %rcx    # 0x3d3b90
movswl (%rcx,%r15,2), %r13d
cmpl %r12d, %r15d
jle 0x28f36
movl %r13d, %ebp
jmp 0x29ace
movl $0x400, %eax            # imm = 0x400
movslq 0x246e5e(%rip), %r15    # 0x26fa78
movq %rbx, %r14
negq %r14
movslq 0x246e49(%rip), %rdx    # 0x26fa70
movslq %ebx, %rbx
imulq %r15, %rbx
movl 0x211e1c(%rip), %ecx    # 0x23aa50
subl %ecx, %r10d
shll $0x6, %r10d
movl 0x211e13(%rip), %ecx    # 0x23aa54
subl %ecx, %r11d
shll $0x6, %r11d
movslq %r10d, %r8
negl %r10d
movslq %r11d, %rcx
movq %rcx, %r11
movslq %r10d, %r12
imulq %r15, %r12
imulq %r15, %rcx
imulq %r9, %r15
imulq %rdx, %r14
addq %r15, %r14
shrq $0xa, %r14
movslq %r14d, %r10
imulq %rax, %r10
shrq $0xa, %r10
imulq %rdx, %r9
addq %r9, %rbx
shrq $0xa, %rbx
movslq %ebx, %r14
imulq %rax, %r14
shrq $0xa, %r14
movl %r10d, %eax
negl %eax
movl %r14d, %r9d
negl %r9d
imulq %rdx, %r11
addq %r11, %r12
shrq $0xe, %r12
imulq %rdx, %r8
addq %r8, %rcx
shrq $0xe, %rcx
movl %r12d, %r11d
imull %r10d, %r11d
movl %ecx, %edx
imull %r14d, %edx
subl %edx, %r11d
imull %r9d, %r12d
imull %eax, %ecx
addl %r12d, %ecx
movslq 0x3a6067(%rip), %rdx    # 0x3ced38
movslq %eax, %rbx
imulq %rdx, %rbx
shrq $0x10, %rbx
movslq %r14d, %r14
imulq %rdx, %r14
shrq $0x10, %r14
leaq 0x3ebb62(%rip), %rax    # 0x414850
movzbl (%rsi,%rax), %esi
movl %esi, %r8d
andb $0xf, %r8b
movb $0x8, %al
movb $0x8, %dl
subb %r8b, %dl
movb %dl, 0x3edf4a(%rip)     # 0x416c50
movl %esi, %ebp
shrb $0x4, %bpl
subb %bpl, %al
movb %al, 0x3edf3c(%rip)     # 0x416c51
testb $0x8, %dil
je 0x28d31
movb $0x9, %al
movb $0x9, %dl
subb %r8b, %dl
movb %dl, 0x3edf28(%rip)     # 0x416c50
subb %bpl, %al
movb %al, 0x3edf20(%rip)     # 0x416c51
testb $0x4, %dil
jne 0x28d45
movl %ecx, %r15d
movl %r9d, %r8d
movl %r11d, %ecx
movl %r10d, %r9d
jmp 0x28d58
negl %r14d
movl %ebx, %ebp
negl %ebp
movl %r11d, %r15d
movl %r10d, %r8d
movl %r14d, %ebx
movl %ebp, %r14d
movl %r9d, %r12d
negl %r12d
movl %r14d, %r10d
negl %r10d
movl %ecx, %r11d
negl %r11d
testb $0x10, %dil
cmovel %ecx, %r11d
cmovnel %r14d, %r10d
cmovel %r9d, %r12d
movl %ebx, %r9d
negl %r9d
movl %r8d, %r14d
negl %r14d
movl %r15d, %ebp
negl %ebp
testb $0x20, %dil
cmovel %r15d, %ebp
cmovel %r8d, %r14d
cmovel %ebx, %r9d
subl %r12d, %r10d
movl %edx, %ecx
shll %cl, %r12d
movl %r12d, 0x3eba8e(%rip)   # 0x414838
subl %r14d, %r9d
movl %eax, %ecx
shll %cl, %r14d
movl %r14d, 0x3eba8b(%rip)   # 0x414844
movl %edx, %ecx
shll %cl, %r11d
movl %eax, %ecx
shll %cl, %ebp
movq 0x38(%rsp), %rdi
movzbl 0x1e(%rdi), %ecx
shll $0x18, %ecx
addl %r11d, %ecx
movl %ecx, 0x42ad09(%rip)    # 0x453ae0
movzbl 0x1f(%rdi), %ecx
shll $0x18, %ecx
addl %ebp, %ecx
movl %ecx, 0x42acfe(%rip)    # 0x453ae4
movl %edx, %ecx
shll %cl, %r10d
movl 0x3f0073(%rip), %edx    # 0x418e64
imull %edx, %r10d
movl %r10d, 0x3eba40(%rip)   # 0x41483c
movl %eax, %ecx
shll %cl, %r9d
imull %edx, %r9d
movl %r9d, 0x3eba34(%rip)    # 0x414840
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
movq 0x8(%rsp), %rdx
callq 0x6fa67
movslq 0x3eba1f(%rip), %rax    # 0x414844
leaq -0x1(%r13), %rcx
movq %rax, %rdx
imulq %rcx, %rdx
movslq 0x3eba09(%rip), %rsi    # 0x414840
addq %rdx, %rsi
movslq 0x3eb9f7(%rip), %rdx    # 0x414838
movslq %ecx, %rcx
imulq %rdx, %rcx
movslq 0x3eb9ed(%rip), %rdi    # 0x41483c
addq %rcx, %rdi
movslq 0x42ac93(%rip), %rcx    # 0x453aec
imulq %rcx, %rdx
shrq $0x10, %rdx
movl %edx, 0x3eb9d1(%rip)    # 0x414838
imulq %rcx, %rsi
shrq $0x10, %rsi
movl %esi, 0x3eb9cb(%rip)    # 0x414840
imulq %rcx, %rdi
shrq $0x10, %rdi
movl %edi, 0x3eb9b9(%rip)    # 0x41483c
imulq %rcx, %rax
shrq $0x10, %rax
movl %eax, 0x3eb9b3(%rip)    # 0x414844
movslq 0x3eb998(%rip), %rax    # 0x414830
imulq %rcx, %rax
shrq $0xa, %rax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movl %ecx, 0x3eb983(%rip)    # 0x414830
movl $0x180, %eax            # imm = 0x180
andl 0x3e7148(%rip), %eax    # 0x410000
je 0x28efe
shrl $0x7, %eax
leaq 0x4e05c(%rip), %rcx     # 0x76f20
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
leaq 0x428d9e(%rip), %r14    # 0x451c70
movq 0x10(%rsp), %r12
jmpq *%rax
movswq 0x3e712f(%rip), %rax    # 0x410010
leaq 0x3eb968(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6fd6f
jmp 0x29797
leaq 0x428d6b(%rip), %r14    # 0x451c70
movzwl (%r14,%r13,2), %eax
leaq 0x3aac7f(%rip), %rdx    # 0x3d3b90
movzwl (%rdx,%r13,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %r15d
movq 0x10(%rsp), %r12
cmpl %r12d, %r13d
jle 0x291f1
movl %r15d, %ebp
jmp 0x29b20
leal 0x1(%r12), %eax
movl %eax, 0x28(%rsp)
movl %r13d, %ebp
leaq 0x426f27(%rip), %rdi    # 0x44fe70
movswl (%rcx,%r15,2), %r14d
movzwl (%rdi,%r15,2), %eax
leaq 0x3aca36(%rip), %rdx    # 0x3d5990
movzwl (%rdx,%r15,2), %esi
cmpw %si, %ax
cmovll %eax, %esi
cmpw %si, %r14w
jge 0x28fb0
leal -0x1(%r14), %edi
cmpl %r14d, %r13d
jge 0x29002
leal -0x1(%r13), %eax
cmpl %eax, %ebp
jge 0x2905c
movl %edi, %r14d
movl %esi, 0x40(%rsp)
movq %r15, 0x20(%rsp)
decl %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r13d
jne 0x28f95
movl %r14d, %ebp
movq 0x20(%rsp), %r15
jmp 0x2902e
leal -0x1(%r13), %r14d
cmpl %r14d, %ebp
jge 0x28feb
movq %r15, %r12
decl %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r13d
jne 0x28fc1
movl %r14d, %ebp
leaq 0x426e94(%rip), %rdi    # 0x44fe70
movq %r12, %r15
movq 0x8(%rsp), %r12
leaq 0x3aaba5(%rip), %rcx    # 0x3d3b90
cmpq %r12, %r15
je 0x29ab6
movswl 0x2(%rcx,%r15,2), %ebp
movl %ebp, %r13d
jmp 0x291c6
cmpl %edi, %ebp
jge 0x29034
movl %edi, 0x20(%rsp)
movl %esi, 0x40(%rsp)
movq %r15, %r12
decl %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r14d
jne 0x29016
movl 0x20(%rsp), %ebp
movq %r12, %r15
movl 0x40(%rsp), %esi
jmp 0x2905e
cmpl %r14d, %ebp
jl 0x2905e
movslq %ebp, %rax
movslq %r14d, %rcx
leaq 0x42acea(%rip), %rdx    # 0x453d30
leaq (%rdx,%rax,4), %rdx
incq %rax
movl %r15d, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x2904d
movl %edi, %ebp
movswl %si, %r8d
cmpl %r8d, %r13d
jle 0x29088
movq %r15, %r14
decl %r15d
decl %r13d
movl %r15d, %edi
movl %r13d, %esi
movl %r8d, %r12d
callq 0x3f625
movl %r12d, %r8d
cmpl %r12d, %r13d
jg 0x2906d
jmp 0x2908b
movq %r15, %r14
cmpl %r8d, %r13d
jge 0x291b0
movslq %r13d, %rcx
movslq %r8d, %rdx
subq %rcx, %rdx
leaq 0x3(%rdx), %rax
andq $-0x4, %rax
decq %rdx
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq 0x42ac77(%rip), %rdx    # 0x453d30
leaq (%rdx,%rcx,4), %rcx
addq $0xc, %rcx
movdqa 0x4b027(%rip), %xmm7    # 0x740f0
pxor %xmm7, %xmm0
xorl %edx, %edx
leaq 0x426d9a(%rip), %rdi    # 0x44fe70
movq %r14, %r15
movdqa 0x4afef(%rip), %xmm5    # 0x740d0
movdqa 0x4aff7(%rip), %xmm6    # 0x740e0
pcmpeqd %xmm8, %xmm8
movq 0x8(%rsp), %r12
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
movdqa %xmm1, %xmm2
por %xmm6, %xmm2
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm3
pcmpgtd %xmm0, %xmm3
pcmpeqd %xmm0, %xmm2
pshufd $0xf5, %xmm2, %xmm4     # xmm4 = xmm2[1,1,3,3]
pand %xmm3, %xmm4
pshufd $0xf5, %xmm3, %xmm2     # xmm2 = xmm3[1,1,3,3]
por %xmm4, %xmm2
movd %xmm2, %esi
notl %esi
testb $0x1, %sil
je 0x29138
movl %r15d, -0xc(%rcx,%rdx,4)
pxor %xmm8, %xmm2
pextrw $0x4, %xmm2, %esi
testb $0x1, %sil
je 0x2914d
movl %r15d, -0x8(%rcx,%rdx,4)
por %xmm5, %xmm1
pxor %xmm7, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm0, %xmm2
pcmpeqd %xmm0, %xmm1
pshufd $0xf5, %xmm1, %xmm3     # xmm3 = xmm1[1,1,3,3]
pand %xmm2, %xmm3
pshufd $0xf5, %xmm2, %xmm1     # xmm1 = xmm2[1,1,3,3]
por %xmm3, %xmm1
pxor %xmm8, %xmm1
pextrw $0x0, %xmm1, %esi
testb $0x1, %sil
je 0x29188
movl %r15d, -0x4(%rcx,%rdx,4)
pextrw $0x4, %xmm1, %esi
testb $0x1, %sil
je 0x29197
movl %r15d, (%rcx,%rdx,4)
addq $0x4, %rdx
cmpq %rdx, %rax
jne 0x290f3
movl %r8d, %r13d
leaq 0x3aa9e2(%rip), %rcx    # 0x3d3b90
jmp 0x291c6
leaq 0x426cb9(%rip), %rdi    # 0x44fe70
movq %r14, %r15
leaq 0x3aa9cf(%rip), %rcx    # 0x3d3b90
movq 0x8(%rsp), %r12
movl 0x3eb678(%rip), %eax    # 0x414844
addl %eax, 0x3eb66e(%rip)    # 0x414840
movl 0x3eb660(%rip), %eax    # 0x414838
addl %eax, 0x3eb65e(%rip)    # 0x41483c
incq %r15
cmpl %r15d, 0x28(%rsp)
jne 0x28f49
jmp 0x29ace
leal 0x1(%r12), %eax
movl %eax, 0x8(%rsp)
movl %r15d, %ebp
movzwl (%r14,%r13,2), %ecx
movzwl (%rdx,%r13,2), %eax
cmpw %ax, %cx
cmovgl %ecx, %eax
leaq 0x3ac77c(%rip), %rcx    # 0x3d5990
movswl (%rcx,%r13,2), %ebx
cmpw %bx, %ax
jge 0x29266
movswl %ax, %r14d
leal -0x1(%r14), %esi
cmpl %r14d, %r15d
jge 0x292b9
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x29306
movl %esi, 0x28(%rsp)
leal -0x1(%r13), %r12d
incl %ebp
leaq 0x428a24(%rip), %r14    # 0x451c70
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r15d
jne 0x2924c
movl 0x28(%rsp), %ebp
jmp 0x2930f
leal -0x1(%r15), %ebx
cmpl %ebx, %ebp
jge 0x29293
leal -0x1(%r13), %r12d
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r15d
jne 0x29274
movl %ebx, %ebp
movq 0x10(%rsp), %r12
leaq 0x3aa8fd(%rip), %rdx    # 0x3d3b90
cmpq %r12, %r13
je 0x29b08
movzwl 0x2(%r14,%r13,2), %eax
movzwl 0x2(%rdx,%r13,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %ebp
movl %ebp, %r15d
jmp 0x2944b
cmpl %esi, %ebp
jge 0x292de
movl %esi, 0x28(%rsp)
leal -0x1(%r13), %r12d
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r14d
jne 0x292c7
movl 0x28(%rsp), %ebp
jmp 0x29308
cmpl %r14d, %ebp
jl 0x29308
movslq %ebp, %rax
movslq %r14d, %rcx
leaq 0x42aa40(%rip), %rdx    # 0x453d30
leaq (%rdx,%rax,4), %rdx
incq %rax
movl %r13d, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x292f7
movl %esi, %ebp
leaq 0x428961(%rip), %r14    # 0x451c70
cmpl %ebx, %r15d
jle 0x2932b
leal -0x1(%r13), %r12d
decl %r15d
movl %r12d, %edi
movl %r15d, %esi
callq 0x3f625
cmpl %ebx, %r15d
jg 0x29318
cmpl %ebx, %r15d
jge 0x2943f
movslq %r15d, %rcx
movslq %ebx, %rdx
subq %rcx, %rdx
leaq 0x3(%rdx), %rax
andq $-0x4, %rax
decq %rdx
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq 0x42a9d7(%rip), %rdx    # 0x453d30
leaq (%rdx,%rcx,4), %rcx
addq $0xc, %rcx
movdqa 0x4ad87(%rip), %xmm7    # 0x740f0
pxor %xmm7, %xmm0
xorl %edx, %edx
movq 0x10(%rsp), %r12
movdqa 0x4ad54(%rip), %xmm5    # 0x740d0
movdqa 0x4ad5c(%rip), %xmm6    # 0x740e0
pcmpeqd %xmm8, %xmm8
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
movdqa %xmm1, %xmm2
por %xmm6, %xmm2
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm3
pcmpgtd %xmm0, %xmm3
pcmpeqd %xmm0, %xmm2
pshufd $0xf5, %xmm2, %xmm4     # xmm4 = xmm2[1,1,3,3]
pand %xmm3, %xmm4
pshufd $0xf5, %xmm3, %xmm2     # xmm2 = xmm3[1,1,3,3]
por %xmm4, %xmm2
movd %xmm2, %esi
notl %esi
testb $0x1, %sil
je 0x293ce
movl %r13d, -0xc(%rcx,%rdx,4)
pxor %xmm8, %xmm2
pextrw $0x4, %xmm2, %esi
testb $0x1, %sil
je 0x293e3
movl %r13d, -0x8(%rcx,%rdx,4)
por %xmm5, %xmm1
pxor %xmm7, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm0, %xmm2
pcmpeqd %xmm0, %xmm1
pshufd $0xf5, %xmm1, %xmm3     # xmm3 = xmm1[1,1,3,3]
pand %xmm2, %xmm3
pshufd $0xf5, %xmm2, %xmm1     # xmm1 = xmm2[1,1,3,3]
por %xmm3, %xmm1
pxor %xmm8, %xmm1
pextrw $0x0, %xmm1, %esi
testb $0x1, %sil
je 0x2941e
movl %r13d, -0x4(%rcx,%rdx,4)
pextrw $0x4, %xmm1, %esi
testb $0x1, %sil
je 0x2942d
movl %r13d, (%rcx,%rdx,4)
addq $0x4, %rdx
cmpq %rdx, %rax
jne 0x29389
movl %ebx, %r15d
jmp 0x29444
movq 0x10(%rsp), %r12
leaq 0x3aa745(%rip), %rdx    # 0x3d3b90
movl 0x3eb3f3(%rip), %eax    # 0x414844
addl %eax, 0x3eb3e9(%rip)    # 0x414840
movl 0x3eb3db(%rip), %eax    # 0x414838
addl %eax, 0x3eb3d9(%rip)    # 0x41483c
incq %r13
cmpl %r13d, 0x8(%rsp)
jne 0x291fd
jmp 0x29b20
callq 0x6fa57
jmp 0x2948c
callq 0x6fa57
jmp 0x29777
callq 0x6fa5f
movswq 0x3e6b7c(%rip), %rax    # 0x410010
leaq 0x3eb3b5(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6fe13
leaq 0x3aa6dd(%rip), %rcx    # 0x3d3b90
movswl (%rcx,%r15,2), %r13d
cmpl %r12d, %r15d
jle 0x294c5
movl %r13d, %ebp
jmp 0x29a59
leal 0x1(%r12), %eax
movl %eax, 0x28(%rsp)
movl %r13d, %ebp
leaq 0x426998(%rip), %rdi    # 0x44fe70
movswl (%rcx,%r15,2), %r14d
movzwl (%rdi,%r15,2), %eax
leaq 0x3ac4a7(%rip), %rdx    # 0x3d5990
movzwl (%rdx,%r15,2), %esi
cmpw %si, %ax
cmovll %eax, %esi
cmpw %si, %r14w
jge 0x2953b
leal -0x1(%r14), %r12d
cmpl %r14d, %r13d
jge 0x2958d
leal -0x1(%r13), %eax
cmpl %eax, %ebp
jge 0x295e9
movl %esi, 0x20(%rsp)
movq %r15, %r14
decl %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r13d
jne 0x2951f
movl %r12d, %ebp
movq %r14, %r15
jmp 0x295bb
leal -0x1(%r13), %r14d
cmpl %r14d, %ebp
jge 0x29576
movq %r15, %r12
decl %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r13d
jne 0x2954c
movl %r14d, %ebp
leaq 0x426909(%rip), %rdi    # 0x44fe70
movq %r12, %r15
movq 0x8(%rsp), %r12
leaq 0x3aa61a(%rip), %rcx    # 0x3d3b90
cmpq %r12, %r15
je 0x29a41
movswl 0x2(%rcx,%r15,2), %ebp
movl %ebp, %r13d
jmp 0x29747
cmpl %r12d, %ebp
jge 0x295c1
movl %r12d, 0x40(%rsp)
movl %esi, 0x20(%rsp)
movq %r15, %r12
decl %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r14d
jne 0x295a3
movl 0x40(%rsp), %ebp
movq %r12, %r15
movl 0x20(%rsp), %esi
jmp 0x295ec
cmpl %r14d, %ebp
jl 0x295ec
movslq %ebp, %rax
movslq %r14d, %rcx
leaq 0x42a75d(%rip), %rdx    # 0x453d30
leaq (%rdx,%rax,4), %rdx
incq %rax
movl %r15d, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x295da
movl %r12d, %ebp
movswl %si, %r14d
cmpl %r14d, %r13d
jle 0x29610
movq %r15, %r12
decl %r15d
decl %r13d
movl %r15d, %edi
movl %r13d, %esi
callq 0x3f6ec
cmpl %r14d, %r13d
jg 0x295fb
jmp 0x29613
movq %r15, %r12
cmpl %r14d, %r13d
jge 0x29731
movslq %r13d, %rcx
movslq %r14d, %rdx
subq %rcx, %rdx
leaq 0x3(%rdx), %rax
andq $-0x4, %rax
decq %rdx
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq 0x42a6ef(%rip), %rdx    # 0x453d30
leaq (%rdx,%rcx,4), %rcx
addq $0xc, %rcx
movdqa 0x4aa9f(%rip), %xmm7    # 0x740f0
pxor %xmm7, %xmm0
xorl %edx, %edx
leaq 0x426812(%rip), %rdi    # 0x44fe70
movq %r12, %r15
movq 0x8(%rsp), %r12
movdqa 0x4aa62(%rip), %xmm5    # 0x740d0
movdqa 0x4aa6a(%rip), %xmm6    # 0x740e0
pcmpeqd %xmm8, %xmm8
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
movdqa %xmm1, %xmm2
por %xmm6, %xmm2
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm3
pcmpgtd %xmm0, %xmm3
pcmpeqd %xmm0, %xmm2
pshufd $0xf5, %xmm2, %xmm4     # xmm4 = xmm2[1,1,3,3]
pand %xmm3, %xmm4
pshufd $0xf5, %xmm3, %xmm2     # xmm2 = xmm3[1,1,3,3]
por %xmm4, %xmm2
movd %xmm2, %esi
notl %esi
testb $0x1, %sil
je 0x296c0
movl %r15d, -0xc(%rcx,%rdx,4)
pxor %xmm8, %xmm2
pextrw $0x4, %xmm2, %esi
testb $0x1, %sil
je 0x296d5
movl %r15d, -0x8(%rcx,%rdx,4)
por %xmm5, %xmm1
pxor %xmm7, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm0, %xmm2
pcmpeqd %xmm0, %xmm1
pshufd $0xf5, %xmm1, %xmm3     # xmm3 = xmm1[1,1,3,3]
pand %xmm2, %xmm3
pshufd $0xf5, %xmm2, %xmm1     # xmm1 = xmm2[1,1,3,3]
por %xmm3, %xmm1
pxor %xmm8, %xmm1
pextrw $0x0, %xmm1, %esi
testb $0x1, %sil
je 0x29710
movl %r15d, -0x4(%rcx,%rdx,4)
pextrw $0x4, %xmm1, %esi
testb $0x1, %sil
je 0x2971f
movl %r15d, (%rcx,%rdx,4)
addq $0x4, %rdx
cmpq %rdx, %rax
jne 0x2967b
movl %r14d, %r13d
jmp 0x29740
leaq 0x426738(%rip), %rdi    # 0x44fe70
movq %r12, %r15
movq 0x8(%rsp), %r12
leaq 0x3aa449(%rip), %rcx    # 0x3d3b90
movl 0x3eb0f7(%rip), %eax    # 0x414844
addl %eax, 0x3eb0ed(%rip)    # 0x414840
movl 0x3eb0df(%rip), %eax    # 0x414838
addl %eax, 0x3eb0dd(%rip)    # 0x41483c
incq %r15
cmpl %r15d, 0x28(%rsp)
jne 0x294d8
jmp 0x29a59
callq 0x6fa5f
movswq 0x3e6891(%rip), %rax    # 0x410010
leaq 0x3eb0ca(%rip), %rcx    # 0x414850
movzbl (%rax,%rcx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6fe13
movzwl (%r14,%r13,2), %eax
leaq 0x3aa3ed(%rip), %rdx    # 0x3d3b90
movzwl (%rdx,%r13,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %r15d
cmpl %r12d, %r13d
jle 0x297bf
movl %r15d, %ebp
jmp 0x29a92
leal 0x1(%r12), %eax
movl %eax, 0x8(%rsp)
movl %r15d, %ebp
movzwl (%r14,%r13,2), %ecx
movzwl (%rdx,%r13,2), %eax
cmpw %ax, %cx
cmovgl %ecx, %eax
leaq 0x3ac1ae(%rip), %rcx    # 0x3d5990
movswl (%rcx,%r13,2), %ebx
cmpw %bx, %ax
jge 0x29834
movswl %ax, %r14d
leal -0x1(%r14), %esi
cmpl %r14d, %r15d
jge 0x29887
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x298d4
movl %esi, 0x28(%rsp)
leal -0x1(%r13), %r12d
incl %ebp
leaq 0x428456(%rip), %r14    # 0x451c70
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r15d
jne 0x2981a
movl 0x28(%rsp), %ebp
jmp 0x298dd
leal -0x1(%r15), %ebx
cmpl %ebx, %ebp
jge 0x29861
leal -0x1(%r13), %r12d
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r15d
jne 0x29842
movl %ebx, %ebp
movq 0x10(%rsp), %r12
leaq 0x3aa32f(%rip), %rdx    # 0x3d3b90
cmpq %r12, %r13
je 0x29a7a
movzwl 0x2(%r14,%r13,2), %eax
movzwl 0x2(%rdx,%r13,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %ebp
movl %ebp, %r15d
jmp 0x29a19
cmpl %esi, %ebp
jge 0x298ac
movl %esi, 0x28(%rsp)
leal -0x1(%r13), %r12d
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r14d
jne 0x29895
movl 0x28(%rsp), %ebp
jmp 0x298d6
cmpl %r14d, %ebp
jl 0x298d6
movslq %ebp, %rax
movslq %r14d, %rcx
leaq 0x42a472(%rip), %rdx    # 0x453d30
leaq (%rdx,%rax,4), %rdx
incq %rax
movl %r13d, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x298c5
movl %esi, %ebp
leaq 0x428393(%rip), %r14    # 0x451c70
cmpl %ebx, %r15d
jle 0x298f9
leal -0x1(%r13), %r12d
decl %r15d
movl %r12d, %edi
movl %r15d, %esi
callq 0x3f6ec
cmpl %ebx, %r15d
jg 0x298e6
cmpl %ebx, %r15d
jge 0x29a0d
movslq %r15d, %rcx
movslq %ebx, %rdx
subq %rcx, %rdx
leaq 0x3(%rdx), %rax
andq $-0x4, %rax
decq %rdx
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
leaq 0x42a409(%rip), %rdx    # 0x453d30
leaq (%rdx,%rcx,4), %rcx
addq $0xc, %rcx
movdqa 0x4a7b9(%rip), %xmm7    # 0x740f0
pxor %xmm7, %xmm0
xorl %edx, %edx
movq 0x10(%rsp), %r12
movdqa 0x4a786(%rip), %xmm5    # 0x740d0
movdqa 0x4a78e(%rip), %xmm6    # 0x740e0
pcmpeqd %xmm8, %xmm8
movq %rdx, %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
movdqa %xmm1, %xmm2
por %xmm6, %xmm2
pxor %xmm7, %xmm2
movdqa %xmm2, %xmm3
pcmpgtd %xmm0, %xmm3
pcmpeqd %xmm0, %xmm2
pshufd $0xf5, %xmm2, %xmm4     # xmm4 = xmm2[1,1,3,3]
pand %xmm3, %xmm4
pshufd $0xf5, %xmm3, %xmm2     # xmm2 = xmm3[1,1,3,3]
por %xmm4, %xmm2
movd %xmm2, %esi
notl %esi
testb $0x1, %sil
je 0x2999c
movl %r13d, -0xc(%rcx,%rdx,4)
pxor %xmm8, %xmm2
pextrw $0x4, %xmm2, %esi
testb $0x1, %sil
je 0x299b1
movl %r13d, -0x8(%rcx,%rdx,4)
por %xmm5, %xmm1
pxor %xmm7, %xmm1
movdqa %xmm1, %xmm2
pcmpgtd %xmm0, %xmm2
pcmpeqd %xmm0, %xmm1
pshufd $0xf5, %xmm1, %xmm3     # xmm3 = xmm1[1,1,3,3]
pand %xmm2, %xmm3
pshufd $0xf5, %xmm2, %xmm1     # xmm1 = xmm2[1,1,3,3]
por %xmm3, %xmm1
pxor %xmm8, %xmm1
pextrw $0x0, %xmm1, %esi
testb $0x1, %sil
je 0x299ec
movl %r13d, -0x4(%rcx,%rdx,4)
pextrw $0x4, %xmm1, %esi
testb $0x1, %sil
je 0x299fb
movl %r13d, (%rcx,%rdx,4)
addq $0x4, %rdx
cmpq %rdx, %rax
jne 0x29957
movl %ebx, %r15d
jmp 0x29a12
movq 0x10(%rsp), %r12
leaq 0x3aa177(%rip), %rdx    # 0x3d3b90
movl 0x3eae25(%rip), %eax    # 0x414844
addl %eax, 0x3eae1b(%rip)    # 0x414840
movl 0x3eae0d(%rip), %eax    # 0x414838
addl %eax, 0x3eae0b(%rip)    # 0x41483c
incq %r13
cmpl %r13d, 0x8(%rsp)
jne 0x297cb
jmp 0x29a92
movl 0x3eadfd(%rip), %eax    # 0x414844
addl %eax, 0x3eadf3(%rip)    # 0x414840
movl 0x3eade5(%rip), %eax    # 0x414838
addl %eax, 0x3eade3(%rip)    # 0x41483c
leal -0x1(%r13), %eax
cmpl %eax, %ebp
jge 0x29ae9
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r13d
jne 0x29a67
jmp 0x29ae9
movl 0x3eadc4(%rip), %eax    # 0x414844
addl %eax, 0x3eadba(%rip)    # 0x414840
movl 0x3eadac(%rip), %eax    # 0x414838
addl %eax, 0x3eadaa(%rip)    # 0x41483c
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x29b3b
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f6ec
incl %ebp
cmpl %ebp, %r15d
jne 0x29aa0
jmp 0x29b3b
movl 0x3ead88(%rip), %eax    # 0x414844
addl %eax, 0x3ead7e(%rip)    # 0x414840
movl 0x3ead70(%rip), %eax    # 0x414838
addl %eax, 0x3ead6e(%rip)    # 0x41483c
leal -0x1(%r13), %eax
cmpl %eax, %ebp
jge 0x29ae9
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r13d
jne 0x29ad8
callq 0xacd7
cmpb $0xc, %bl
movq 0x18(%rsp), %r14
leaq 0x3adcc3(%rip), %rbp    # 0x3d77c0
jne 0x27367
jmp 0x27596
movl 0x3ead36(%rip), %eax    # 0x414844
addl %eax, 0x3ead2c(%rip)    # 0x414840
movl 0x3ead1e(%rip), %eax    # 0x414838
addl %eax, 0x3ead1c(%rip)    # 0x41483c
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x29b3b
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3f625
incl %ebp
cmpl %ebp, %r15d
jne 0x29b2a
callq 0xacd7
movq 0x18(%rsp), %r14
leaq 0x3adc74(%rip), %rbp    # 0x3d77c0
jmp 0x27596