// File: /workspace/github_c_makefile_star2_O1/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, 0x20(%rsp)
movslq %edi, %r14
leaq 0x3aff00(%rip), %r15    # 0x3d67c0
movswq (%r15,%r14,2), %rax
leaq 0x4265a4(%rip), %rcx    # 0x44ce70
movzwl (%rcx,%rax,2), %ecx
movw %cx, 0x36(%rsp)
movswq %cx, %rcx
movswl %cx, %ebp
leaq (%rcx,%rcx,4), %r13
testq %rax, %rax
js 0x2696d
movq %r13, 0x8(%rsp)
movq %r14, 0x18(%rsp)
movb $-0x1, %bl
leaq 0x42a374(%rip), %r15    # 0x450c70
leaq 0x3b7ecd(%rip), %r13    # 0x3de7d0
movl %ebp, %r14d
movb $-0x1, %bpl
movzwl %ax, %r12d
leaq 0x42855c(%rip), %rdi    # 0x44ee70
movl %r12d, %esi
movl %r14d, %edx
xorl %ecx, %ecx
callq 0x23dab
andb %al, %bpl
movq %r15, %rdi
movl %r12d, %esi
movl %r14d, %edx
movl $0x1, %ecx
callq 0x23dab
andb %al, %bl
movzwl (%r13,%r12,2), %eax
testw %ax, %ax
jns 0x26909
notb %bpl
testb $0x3, %bpl
sete %al
notb %bl
testb $0xc, %bl
sete %r12b
movl %r14d, %ebp
movq 0x18(%rsp), %r14
leaq 0x3afe5a(%rip), %r15    # 0x3d67c0
movq 0x8(%rsp), %r13
jmp 0x26972
movb $0x1, %al
movb $0x1, %r12b
leaq 0x21c0e7(%rip), %rcx    # 0x242a60
leaq (%rcx,%r13,8), %rcx
movq %rcx, 0x38(%rsp)
testb %al, %al
movl %ebp, 0x58(%rsp)
jne 0x26bdd
movq 0x38(%rsp), %rax
movzwl 0xc(%rax), %eax
movl %eax, %ecx
andl $0x3, %ecx
cmpl $0x2, %ecx
jne 0x269d4
movswq (%r15,%r14,2), %rax
leaq 0x2440c3(%rip), %rcx    # 0x26aa70
movl (%rcx,%rax,4), %edi
leaq 0x3b1e09(%rip), %rax    # 0x3d87c0
movswq (%rax,%r14,2), %rax
leaq 0x2480bd(%rip), %rcx    # 0x26ea80
movl (%rcx,%rax,4), %esi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x3c6e7
jmp 0x26bdd
testb $0x1, %al
jne 0x26bd2
movswq (%r15,%r14,2), %rax
leaq 0x244088(%rip), %rcx    # 0x26aa70
movslq (%rcx,%rax,4), %rax
movq %rax, 0x10(%rsp)
leaq 0x3b1dc8(%rip), %rax    # 0x3d87c0
movswq (%rax,%r14,2), %rax
leaq 0x24807c(%rip), %rcx    # 0x26ea80
movslq (%rcx,%rax,4), %rbx
leaq 0x21c051(%rip), %rax    # 0x242a60
movzbl 0x15(%rax,%r13,8), %ecx
leaq 0x3710c4(%rip), %rax    # 0x397ae0
movq (%rax,%rcx,8), %rcx
cmpq 0x3e85e1(%rip), %rcx    # 0x40f008
je 0x26a53
movq %rcx, 0x3e85d8(%rip)    # 0x40f008
testq %rcx, %rcx
jne 0x26a47
movslq 0x3e85c8(%rip), %rcx    # 0x40f004
movq (%rax,%rcx,8), %rax
movq %rax, 0x3e85c1(%rip)    # 0x40f008
movq 0x3e85ba(%rip), %rdi    # 0x40f008
callq 0x6dcef
movq %rbx, 0x40(%rsp)
movq 0x38(%rsp), %rax
movl 0x4(%rax), %eax
subl 0x243ffa(%rip), %eax    # 0x26aa60
movl %eax, 0x42c080(%rip)    # 0x452aec
jg 0x26bdd
movq 0x38(%rsp), %rax
movzwl 0x10(%rax), %eax
xorl %ecx, %ecx
cmpl $0x2400, %eax           # imm = 0x2400
cmovbl %eax, %ecx
movw %cx, 0x3e8584(%rip)     # 0x40f010
movswl %cx, %ebx
movswq %cx, %rdi
leaq 0x406ca6(%rip), %rax    # 0x42d740
cmpb $-0x39, (%rdi,%rax)
ja 0x26aa4
movb $-0x39, (%rdi,%rax)
movl %ebx, %eax
andl $0x7, %eax
leaq 0x7ccf0(%rip), %rcx     # 0xa37a0
movb (%rax,%rcx), %al
movl %ebx, %ecx
sarl $0x3, %ecx
movslq %ecx, %rcx
leaq 0x4067ee(%rip), %rdx    # 0x42d2b0
orb %al, (%rcx,%rdx)
leaq 0x3e8554(%rip), %rax    # 0x40f020
cmpw $0x0, (%rax,%rdi,2)
jle 0x26bdd
leaq 0x3d9d02(%rip), %rax    # 0x4007e0
cmpw $0x0, (%rax,%rdi,2)
jle 0x26bdd
movq %r14, 0x18(%rsp)
leaq 0x212f6b(%rip), %rax    # 0x239a60
testb $-0x40, (%rax,%rdi,4)
je 0x26b0b
xorl %esi, %esi
callq 0x23d49
addl %eax, %ebx
movw %bx, 0x3e8505(%rip)     # 0x40f010
movswq 0x3e84fd(%rip), %rax    # 0x40f010
leaq 0x3717c6(%rip), %rbx    # 0x3982e0
cmpq $0x0, (%rbx,%rax,8)
movq 0x38(%rsp), %r14
jne 0x26b2e
movswl %ax, %edi
callq 0x2f106
movswq 0x3e84da(%rip), %rsi    # 0x40f010
movq (%rbx,%rsi,8), %r8
movq %r8, 0x3eccdf(%rip)     # 0x413820
movsbl 0x14(%r14), %eax
movl %eax, 0x3ecce0(%rip)    # 0x41382c
movslq 0x3a71f5(%rip), %rax    # 0x3cdd48
movl %eax, 0x3eccd7(%rip)    # 0x413830
movb 0x20(%r14), %cl
testb %cl, %cl
je 0x26b75
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3eccbb(%rip)    # 0x413830
movswl 0xc(%r14), %edi
movl %edi, 0x3e8480(%rip)    # 0x40f000
testb $0x40, %dil
movb %r12b, 0x28(%rsp)
jne 0x280a0
movl 0x247ee3(%rip), %eax    # 0x26ea78
movl %eax, 0x3ecc9d(%rip)    # 0x413838
movl %eax, 0x3ecc9f(%rip)    # 0x413840
movl 0x247ec9(%rip), %eax    # 0x26ea70
movl %eax, 0x3ecc8f(%rip)    # 0x41383c
movl %eax, 0x3ecc91(%rip)    # 0x413844
movl 0x212e97(%rip), %eax    # 0x239a50
shll $0x14, %eax
movl %eax, 0x42bf1e(%rip)    # 0x452ae0
movl 0x212e8c(%rip), %eax    # 0x239a54
shll $0x14, %eax
negl %eax
jmp 0x282a3
xorl %edi, %edi
movl 0x20(%rsp), %esi
callq 0x3d2bb
testb %r12b, %r12b
jne 0x26e31
movq 0x38(%rsp), %rax
movzwl 0xe(%rax), %eax
movl %eax, %ecx
andl $0x3, %ecx
cmpl $0x2, %ecx
jne 0x26c2f
movswq (%r15,%r14,2), %rax
leaq 0x243e6b(%rip), %rcx    # 0x26aa70
movl (%rcx,%rax,4), %edi
leaq 0x3b1bb1(%rip), %rax    # 0x3d87c0
movswq (%rax,%r14,2), %rax
leaq 0x247e65(%rip), %rcx    # 0x26ea80
movl (%rcx,%rax,4), %esi
movl %ebp, %edx
movl $0x1, %ecx
callq 0x3c6e7
jmp 0x26e31
testb $0x1, %al
jne 0x26e23
movswq (%r15,%r14,2), %rax
leaq 0x243e2d(%rip), %rcx    # 0x26aa70
movslq (%rcx,%rax,4), %r12
leaq 0x3b1b72(%rip), %rax    # 0x3d87c0
movswq (%rax,%r14,2), %rax
leaq 0x247e26(%rip), %rcx    # 0x26ea80
movslq (%rcx,%rax,4), %rax
movq %rax, 0x20(%rsp)
leaq 0x21bdf6(%rip), %rax    # 0x242a60
movzbl 0x1d(%rax,%r13,8), %ecx
leaq 0x370e69(%rip), %rax    # 0x397ae0
movq (%rax,%rcx,8), %rcx
cmpq 0x3e8386(%rip), %rcx    # 0x40f008
movq 0x38(%rsp), %rbx
je 0x26cb3
movq %rcx, 0x3e8378(%rip)    # 0x40f008
testq %rcx, %rcx
jne 0x26ca7
movslq 0x3e8368(%rip), %rcx    # 0x40f004
movq (%rax,%rcx,8), %rax
movq %rax, 0x3e8361(%rip)    # 0x40f008
movq 0x3e835a(%rip), %rdi    # 0x40f008
callq 0x6dcef
movl 0x243da7(%rip), %eax    # 0x26aa60
subl 0x8(%rbx), %eax
movl %eax, 0x42be2a(%rip)    # 0x452aec
jg 0x26e31
movq 0x38(%rsp), %rax
movzwl 0x18(%rax), %eax
xorl %ecx, %ecx
cmpl $0x2400, %eax           # imm = 0x2400
cmovbl %eax, %ecx
movw %cx, 0x3e832e(%rip)     # 0x40f010
movswl %cx, %ebx
movswq %cx, %rdi
leaq 0x406a50(%rip), %rax    # 0x42d740
cmpb $-0x39, (%rdi,%rax)
ja 0x26cfa
movb $-0x39, (%rdi,%rax)
movl %ebx, %eax
andl $0x7, %eax
leaq 0x7ca9a(%rip), %rcx     # 0xa37a0
movb (%rax,%rcx), %al
movl %ebx, %ecx
sarl $0x3, %ecx
movslq %ecx, %rcx
leaq 0x406598(%rip), %rdx    # 0x42d2b0
orb %al, (%rcx,%rdx)
leaq 0x3e82fe(%rip), %rax    # 0x40f020
cmpw $0x0, (%rax,%rdi,2)
jle 0x26e31
leaq 0x3d9aac(%rip), %rax    # 0x4007e0
cmpw $0x0, (%rax,%rdi,2)
jle 0x26e31
movq %r14, 0x18(%rsp)
leaq 0x212d15(%rip), %rax    # 0x239a60
testb $-0x40, (%rax,%rdi,4)
je 0x26d61
xorl %esi, %esi
callq 0x23d49
addl %eax, %ebx
movw %bx, 0x3e82af(%rip)     # 0x40f010
movswq 0x3e82a7(%rip), %rax    # 0x40f010
leaq 0x371570(%rip), %rbx    # 0x3982e0
cmpq $0x0, (%rbx,%rax,8)
movq 0x38(%rsp), %r14
jne 0x26d84
movswl %ax, %edi
callq 0x2f106
movswq 0x3e8284(%rip), %rsi    # 0x40f010
movq (%rbx,%rsi,8), %r8
movq %r8, 0x3eca89(%rip)     # 0x413820
movsbl 0x1c(%r14), %eax
movl %eax, 0x3eca8a(%rip)    # 0x41382c
movslq 0x3a6f9f(%rip), %rax    # 0x3cdd48
movl %eax, 0x3eca81(%rip)    # 0x413830
movb 0x20(%r14), %cl
testb %cl, %cl
je 0x26dcb
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3eca65(%rip)    # 0x413830
movswl 0xe(%r14), %edi
movl %edi, 0x3e822a(%rip)    # 0x40f000
testb $0x40, %dil
jne 0x28135
movl 0x247c92(%rip), %eax    # 0x26ea78
movl %eax, 0x3eca4c(%rip)    # 0x413838
movl %eax, 0x3eca4e(%rip)    # 0x413840
movl 0x247c78(%rip), %eax    # 0x26ea70
movl %eax, 0x3eca3e(%rip)    # 0x41383c
movl %eax, 0x3eca40(%rip)    # 0x413844
movl 0x212c46(%rip), %eax    # 0x239a50
shll $0x14, %eax
movl %eax, 0x42bccd(%rip)    # 0x452ae0
movl 0x212c3b(%rip), %eax    # 0x239a54
shll $0x14, %eax
negl %eax
jmp 0x28639
movl $0x1, %edi
movl 0x20(%rsp), %esi
callq 0x3d2bb
movzwl (%r15,%r14,2), %ebp
testw %bp, %bp
js 0x2808e
movq 0x38(%rsp), %rcx
leaq 0x4(%rcx), %rax
movq %rax, 0xa8(%rsp)
leaq 0x8(%rcx), %rax
movq %rax, 0xb0(%rsp)
leaq 0x243c0d(%rip), %r15    # 0x26aa70
leaq 0x3abd26(%rip), %r11    # 0x3d2b90
leaq 0x3adb1f(%rip), %r10    # 0x3d4990
movzwl %bp, %r14d
leal (,%r14,4), %eax
movl (%rax,%r15), %edi
movslq %edi, %rcx
movq %rcx, 0x20(%rsp)
leaq 0x247bf0(%rip), %rcx    # 0x26ea80
movslq (%rax,%rcx), %r8
movzwl (%r11,%r8,2), %eax
cmpw (%r10,%r8,2), %ax
jge 0x2711d
leaq 0x210ba5(%rip), %rax    # 0x237a50
movswq (%rax,%r14,2), %r9
cmpw $0x2, 0x370c18(%rip)    # 0x397ad0
jne 0x26f20
movslq 0x7cd7f(%rip), %rax     # 0xa3c40
cmpl %edi, %eax
setl %cl
cmpl %r8d, %eax
setg %dl
orb %cl, %dl
jne 0x26f20
movl 0x3f0f92(%rip), %edx    # 0x417e68
leaq 0x427f93(%rip), %rcx    # 0x44ee70
movswl (%rcx,%rax,2), %esi
movw $0x1, %cx
cmpl %esi, %edx
jle 0x26efc
leaq 0x429d80(%rip), %rcx    # 0x450c70
movswl (%rcx,%rax,2), %eax
movw $0x2, %cx
cmpl %eax, %edx
jl 0x26f20
movzwl 0x36(%rsp), %eax
movw %ax, 0x42dfe8(%rip)     # 0x454ef0
movw %r9w, 0x42dfe2(%rip)    # 0x454ef2
movw %cx, 0x370bbb(%rip)     # 0x397ad2
movw $0x1, 0x370bb0(%rip)    # 0x397ad0
movq %r8, 0x8(%rsp)
movl %edi, 0x18(%rsp)
movzwl %r9w, %eax
movl %eax, 0x4c(%rsp)
movq %r9, %rax
shlq $0x5, %rax
leaq 0x190b11(%rip), %rbx    # 0x1b7a50
leaq (%rbx,%rax), %r8
movswq 0xc(%rax,%rbx), %r12
leaq (%r12,%r12,4), %rax
leaq 0x21bb0c(%rip), %rcx    # 0x242a60
leaq (%rcx,%rax,8), %rax
movq %rax, 0x50(%rsp)
testw %r12w, %r12w
movq %r14, 0x10(%rsp)
movq %r12, 0x40(%rsp)
js 0x27194
movw %bp, 0x5e(%rsp)
movq %r9, 0x98(%rsp)
movl 0x7ccd0(%rip), %eax     # 0xa3c54
movl %eax, 0xa4(%rsp)
movzwl 0x3af80e(%rip), %eax    # 0x3d67a0
movw %ax, 0x5c(%rsp)
movl (%r8), %r14d
movl 0x4(%r8), %r13d
movl 0x58(%rsp), %ebp
movl %ebp, %edi
movq %r8, 0x28(%rsp)
movl %r14d, %esi
movl %r13d, %edx
leaq 0x80(%rsp), %rcx
leaq 0x60(%rsp), %r8
callq 0x2600d
movq 0x28(%rsp), %rax
movswq 0x8(%rax), %rax
shlq $0x5, %rax
movl (%rax,%rbx), %r15d
movl 0x4(%rax,%rbx), %ebx
movl %ebp, %edi
movl %r15d, %esi
movl %ebx, %edx
leaq 0x84(%rsp), %rcx
leaq 0x64(%rsp), %r8
callq 0x2600d
movl %r12d, %edi
movl %r14d, %esi
movl %r13d, %edx
leaq 0x88(%rsp), %rcx
leaq 0x68(%rsp), %r8
callq 0x2600d
movl %r12d, %edi
movl %r15d, %esi
movl %ebx, %edx
leaq 0x8c(%rsp), %rcx
leaq 0x6c(%rsp), %r8
callq 0x2600d
movl 0x212a25(%rip), %esi    # 0x239a50
movl 0x212a23(%rip), %edx    # 0x239a54
movl %r12d, %edi
leaq 0x90(%rsp), %rcx
leaq 0x70(%rsp), %r8
callq 0x2600d
movq 0x28(%rsp), %r8
movzwl 0xe(%r8), %eax
andl $0x30, %eax
cmpw $0x10, %ax
jne 0x2707b
movswq 0x3af73d(%rip), %rax    # 0x3d679e
leal 0x1(%rax), %ecx
movw %cx, 0x3af733(%rip)     # 0x3d679e
leaq 0x3ddf6e(%rip), %rcx    # 0x404fe0
movzwl 0x5e(%rsp), %edx
movw %dx, (%rcx,%rax,2)
movq 0x38(%rsp), %rax
testb $0x1, 0xc(%rax)
leaq 0x3abb05(%rip), %r11    # 0x3d2b90
leaq 0x3ad8fe(%rip), %r10    # 0x3d4990
leaq 0x427dd7(%rip), %r12    # 0x44ee70
leaq 0x480e70(%rip), %r14    # 0x4a7f10
je 0x270b3
xorl %ebp, %ebp
movq 0x50(%rsp), %rax
testb $0x1, 0xc(%rax)
jne 0x2765c
movl 0x80(%rsp), %r15d
movl 0x88(%rsp), %ebx
cmpl %r15d, %ebx
jg 0x270db
movl 0x8c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jle 0x274ae
movq %r14, %rdi
movq 0x10(%rsp), %rsi
movq 0x40(%rsp), %rdx
xorl %ecx, %ecx
callq 0x23dab
cmpl 0x60(%rsp), %ebx
jle 0x2719b
movl 0x18(%rsp), %r9d
movq 0x8(%rsp), %r10
cmpl %r9d, %r10d
leaq 0x429b63(%rip), %r8     # 0x450c70
movq 0x20(%rsp), %rcx
jge 0x271c3
jmp 0x271fa
cmpl %edi, %r8d
setg %al
jle 0x2716a
movq 0x20(%rsp), %rdx
movzwl (%r11,%rdx,2), %ecx
cmpw (%r10,%rdx,2), %cx
jl 0x27162
movl %edi, %eax
notl %eax
addl %r8d, %eax
movq 0x20(%rsp), %rcx
subl $0x1, %eax
jb 0x2716a
movzwl 0x2(%r11,%rcx,2), %esi
leaq 0x1(%rcx), %rdx
cmpw 0x2(%r10,%rcx,2), %si
movq %rdx, %rcx
jge 0x27142
cmpq %r8, %rdx
setl %al
testb %al, %al
jne 0x26ea4
movslq 0x7cae3(%rip), %rax     # 0xa3c54
leaq 0x47bd98(%rip), %rcx    # 0x4a2f10
movl %r14d, (%rcx,%rax,4)
leaq 0x47fd8d(%rip), %rcx    # 0x4a6f10
movb $0x0, (%rax,%rcx)
incl %eax
movl %eax, 0x7cac5(%rip)     # 0xa3c54
jmp 0x27f6a
xorl %ebp, %ebp
jmp 0x27c9c
movl 0x8c(%rsp), %eax
cmpl 0x64(%rsp), %eax
leaq 0x429ac3(%rip), %r8     # 0x450c70
movl 0x18(%rsp), %r9d
movq 0x8(%rsp), %r10
movq 0x20(%rsp), %rcx
jle 0x271fa
cmpl %r9d, %r10d
jl 0x271fa
cmpl %r10d, %r9d
movl %r10d, %eax
cmovgl %r9d, %eax
addq %rcx, %rcx
subl %r9d, %eax
incl %eax
xorl %edx, %edx
leaq (%rcx,%rdx,2), %rdi
movzwl (%r8,%rdi), %esi
cmpw %si, (%r14,%rdi)
jle 0x271f3
leaq (%rdx,%rdx), %rdi
addq %rcx, %rdi
movw %si, (%r14,%rdi)
incq %rdx
cmpl %edx, %eax
jne 0x271d7
movl %r15d, %ebp
cmpw $0x2, 0x3708cb(%rip)    # 0x397ad0
jne 0x27258
movslq 0x7ca32(%rip), %rax     # 0xa3c40
cmpl %r9d, %eax
setl %cl
cmpl %r10d, %eax
setg %dl
orb %cl, %dl
jne 0x27258
movswl (%r14,%rax,2), %eax
cmpl %eax, 0x3f0c3f(%rip)    # 0x417e68
jg 0x27258
movzwl 0x36(%rsp), %eax
movw %ax, 0x42dcb9(%rip)     # 0x454ef0
movq 0x98(%rsp), %rax
movw %ax, 0x42dcac(%rip)     # 0x454ef2
movw $0x0, 0x370883(%rip)    # 0x397ad2
movw $0x1, 0x370878(%rip)    # 0x397ad0
movq 0x28(%rsp), %rsi
movswl 0xe(%rsi), %r12d
movl %r12d, 0x3e7d97(%rip)   # 0x40f000
movzwl 0x10(%rsi), %eax
cmpl $0x2400, %eax           # imm = 0x2400
movl $0x0, %ecx
cmovael %ecx, %eax
movw %ax, 0x3e7d8f(%rip)     # 0x40f010
movzbl 0x18(%rsi), %ecx
movl %ecx, 0x42b855(%rip)    # 0x452ae0
movzbl 0x19(%rsi), %r15d
movl %r15d, 0x42b84d(%rip)   # 0x452ae4
movswq %ax, %r13
leaq 0x3ec5ae(%rip), %rax    # 0x413850
movzbl (%r13,%rax), %eax
shrl $0x4, %eax
movw %ax, 0x42b836(%rip)     # 0x452ae8
leaq 0x3d9527(%rip), %rcx    # 0x4007e0
movswl (%rcx,%r13,2), %ecx
leaq 0x7c4eb(%rip), %rdx     # 0xa37b0
cmpl %ecx, (%rdx,%rax,4)
je 0x272d6
movzwl %ax, %eax
incl %eax
movw %ax, 0x42b812(%rip)     # 0x452ae8
movw $0x20, %r14w
subw 0x42b805(%rip), %r14w   # 0x452ae8
movw %r14w, 0x42b7fd(%rip)   # 0x452ae8
leaq 0x21276e(%rip), %rax    # 0x239a60
testb $-0x40, (%rax,%r13,4)
je 0x27312
movl %r13d, %edi
xorl %esi, %esi
callq 0x23d49
movq 0x28(%rsp), %rsi
addl %r13d, %eax
movw %ax, 0x3e7cfe(%rip)     # 0x40f010
movsbl 0x14(%rsi), %eax
movl %eax, 0x3ec510(%rip)    # 0x41382c
movslq 0x3a6a1d(%rip), %rax    # 0x3cdd40
movl %eax, 0x3ec507(%rip)    # 0x413830
movq 0x38(%rsp), %rcx
movb 0x20(%rcx), %cl
testb %cl, %cl
je 0x27349
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ec4e7(%rip)    # 0x413830
movzbl 0x15(%rsi), %edx
leaq 0x37078c(%rip), %rax    # 0x397ae0
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, 0x3e7c90(%rip)    # 0x40f004
movl %eax, 0x42b776(%rip)    # 0x452af0
testb $0x4, %r12b
movl 0x2436dc(%rip), %ecx    # 0x26aa60
movq 0x38(%rsp), %rdx
cmoveq 0x50(%rsp), %rdx
subl 0x4(%rdx), %ecx
imull %eax, %ecx
shll $0x8, %ecx
shll $0x18, %r15d
addl %ecx, %r15d
movl %r15d, 0x42b746(%rip)   # 0x452aec
btl $0x8, %r12d
movl 0x18(%rsp), %r14d
movq 0x8(%rsp), %r12
jae 0x273c9
negl %eax
movl %eax, 0x42b731(%rip)    # 0x452af0
negl %r15d
movl %r15d, 0x42b723(%rip)   # 0x452aec
movq 0x10(%rsp), %rdi
callq 0x3d9ee
movl %r14d, %edi
movl %r12d, %esi
leaq 0x427a90(%rip), %r12    # 0x44ee70
movq %r12, %rdx
leaq 0x480b26(%rip), %r14    # 0x4a7f10
movq %r14, %rcx
leaq 0x48291c(%rip), %r8     # 0x4a9d10
leaq 0x486515(%rip), %r9     # 0x4ad910
callq 0x3de63
movl %ebp, %r15d
cmpl %ebp, %ebx
jl 0x2741b
movl 0x8c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jge 0x2752b
movl $0x1, %ebp
movl 0x18(%rsp), %esi
movq 0x8(%rsp), %rdx
cmpl %esi, %edx
leaq 0x3ab75e(%rip), %r11    # 0x3d2b90
leaq 0x3ad557(%rip), %r10    # 0x3d4990
jl 0x275a1
movzwl 0x3af352(%rip), %eax    # 0x3d6798
movq 0x20(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r9
movzwl (%r11,%r9), %r8d
movzwl (%r10,%r9), %edi
cmpw %di, %r8w
jg 0x274a2
movzwl (%r12,%r9), %r10d
movzwl (%r14,%r9), %r9d
cmpw %r9w, %r10w
cmovgl %r10d, %r9d
cmpw %r8w, %r9w
jle 0x2749b
leaq (%rsi,%rsi), %r8
addq %rcx, %r8
movw %r9w, (%r11,%r8)
cmpw %di, %r9w
jle 0x2749b
decl %eax
movw %ax, 0x3af2fd(%rip)     # 0x3d6798
leaq 0x3ad4ee(%rip), %r10    # 0x3d4990
incq %rsi
cmpl %esi, %edx
jne 0x27454
jmp 0x275a1
xorl %ebp, %ebp
cmpb $0x0, 0x3af2f1(%rip)    # 0x3d67a8
je 0x2801b
movl 0x18(%rsp), %esi
movq 0x8(%rsp), %rdx
cmpl %esi, %edx
movq 0x10(%rsp), %r14
jl 0x275a6
movzwl 0x3af2be(%rip), %eax    # 0x3d6798
movq 0x20(%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 0x27522
movzwl (%r10,%r8), %r8d
cmpw %r8w, %r9w
jg 0x27522
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%r11,%r9)
cmpw %r8w, %di
jle 0x27522
decl %eax
movw %ax, 0x3af276(%rip)     # 0x3d6798
incq %rsi
cmpl %esi, %edx
jne 0x274e8
jmp 0x275a6
movl $0x1, %ebp
movl 0x18(%rsp), %esi
movq 0x8(%rsp), %rdx
cmpl %esi, %edx
leaq 0x3ab64e(%rip), %r11    # 0x3d2b90
leaq 0x3ad447(%rip), %r10    # 0x3d4990
jl 0x275a1
movzwl 0x3af246(%rip), %eax    # 0x3d6798
movq 0x20(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%r14,%r8), %edi
movzwl (%r11,%r8), %r9d
cmpw %r9w, %di
jle 0x2759a
movzwl (%r10,%r8), %r8d
cmpw %r8w, %r9w
jg 0x2759a
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%r11,%r9)
cmpw %r8w, %di
jle 0x2759a
decl %eax
movw %ax, 0x3af1fe(%rip)     # 0x3d6798
incq %rsi
cmpl %esi, %edx
jne 0x27560
movq 0x10(%rsp), %r14
movq 0x28(%rsp), %r8
cmpl %r15d, %ebx
jl 0x275d3
movl 0x8c(%rsp), %eax
cmpl 0x84(%rsp), %eax
jl 0x275d3
movl 0x24349a(%rip), %eax    # 0x26aa60
cmpl 0x90(%rsp), %eax
jge 0x2765c
movq 0x8(%rsp), %rbx
subl 0x18(%rsp), %ebx
movswl 0x3af1bd(%rip), %eax    # 0x3d67a0
leal (%rbx,%rax), %ecx
incl %ecx
cmpl $0x77fff, %ecx          # imm = 0x77FFF
jg 0x2765c
incl %ebx
movslq %eax, %rcx
movslq 0x7c658(%rip), %rdx     # 0xa3c54
leaq 0x489f1d(%rip), %rsi    # 0x4b1520
movw %ax, (%rsi,%rdx,2)
leaq 0x47b902(%rip), %rax    # 0x4a2f10
movl %r14d, (%rax,%rdx,4)
leaq 0x47f8f7(%rip), %rax    # 0x4a6f10
movb $0x1, (%rdx,%rax)
leal 0x1(%rdx), %eax
movl %eax, 0x7c62e(%rip)     # 0xa3c54
movq 0x20(%rsp), %rax
leaq (%r11,%rax,2), %rdi
leaq 0x48beea(%rip), %rax    # 0x4b3520
leaq (%rax,%rcx,2), %rsi
leal (%rbx,%rbx), %edx
callq 0x4ac52
movq 0x28(%rsp), %r8
leaq 0x3ad342(%rip), %r10    # 0x3d4990
leaq 0x3ab53b(%rip), %r11    # 0x3d2b90
addw %bx, 0x3af144(%rip)     # 0x3d67a0
movq 0x38(%rsp), %rax
testb $0x1, 0xe(%rax)
je 0x27676
movq 0x50(%rsp), %rax
testb $0x1, 0xe(%rax)
jne 0x27c1c
movl 0x60(%rsp), %r14d
movl 0x68(%rsp), %r15d
cmpl %r14d, %r15d
leaq 0x57be96(%rip), %rbx    # 0x5a3520
jl 0x2769a
movl 0x6c(%rsp), %eax
cmpl 0x64(%rsp), %eax
jge 0x27abf
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movq 0x40(%rsp), %rdx
movl $0x1, %ecx
callq 0x23dab
cmpl 0x80(%rsp), %r15d
jge 0x276d0
movq 0x8(%rsp), %rax
cmpl 0x18(%rsp), %eax
movq 0x98(%rsp), %r8
jge 0x276f0
jmp 0x2772d
movl 0x6c(%rsp), %eax
cmpl 0x84(%rsp), %eax
movq 0x98(%rsp), %r8
jge 0x2772d
movq 0x8(%rsp), %rax
cmpl 0x18(%rsp), %eax
jl 0x2772d
movl 0x18(%rsp), %edx
movq 0x8(%rsp), %rax
cmpl %eax, %edx
cmovgl %edx, %eax
movq 0x20(%rsp), %rcx
addq %rcx, %rcx
subl %edx, %eax
incl %eax
xorl %edx, %edx
leaq (%rcx,%rdx,2), %rdi
movzwl (%r12,%rdi), %esi
cmpw %si, (%rbx,%rdi)
jge 0x27726
leaq (%rdx,%rdx), %rdi
addq %rcx, %rdi
movw %si, (%rbx,%rdi)
incq %rdx
cmpl %edx, %eax
jne 0x2770c
cmpw $0x2, 0x37039b(%rip)    # 0x397ad0
movq 0x28(%rsp), %rsi
jne 0x27798
movslq 0x7c4fd(%rip), %rax     # 0xa3c40
cmpl 0x18(%rsp), %eax
setl %cl
cmpl 0x8(%rsp), %eax
setg %dl
orb %cl, %dl
jne 0x27798
movswl (%rbx,%rax,2), %eax
cmpl %eax, 0x3f0709(%rip)    # 0x417e68
jl 0x27798
movzwl 0x36(%rsp), %eax
movw %ax, 0x42d783(%rip)     # 0x454ef0
movw %r8w, 0x42d77d(%rip)    # 0x454ef2
testb $0x2, 0xe(%rsi)
je 0x27786
movzwl 0xa(%rsi), %eax
movw %ax, 0x42d76c(%rip)     # 0x454ef2
movw $0x0, 0x370343(%rip)    # 0x397ad2
movw $0x1, 0x370338(%rip)    # 0x397ad0
movswl 0xe(%rsi), %eax
testb $0x2, %al
jne 0x2781c
movl %eax, 0x3e785a(%rip)    # 0x40f000
movzwl 0x10(%rsi), %ebx
cmpl $0x2400, %ebx           # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %ebx
movw %bx, 0x3e7851(%rip)     # 0x40f010
movzbl 0x18(%rsi), %eax
movl %eax, 0x42b317(%rip)    # 0x452ae0
movzbl 0x19(%rsi), %eax
movl %eax, 0x42b311(%rip)    # 0x452ae4
movswq %bx, %rax
leaq 0x212282(%rip), %rcx    # 0x239a60
testb $-0x40, (%rcx,%rax,4)
leaq 0x429487(%rip), %r12    # 0x450c70
je 0x27803
movswl %bx, %edi
xorl %esi, %esi
callq 0x23d49
movq 0x28(%rsp), %rsi
addl %eax, %ebx
movw %bx, 0x3e780d(%rip)     # 0x40f010
movsbl 0x14(%rsi), %eax
movl %eax, 0x3ec01f(%rip)    # 0x41382c
movzbl 0x15(%rsi), %eax
movl %eax, 0x3e77ed(%rip)    # 0x40f004
jmp 0x278d6
movswq 0xa(%rsi), %rbx
shlq $0x5, %rbx
leaq 0x190224(%rip), %rcx    # 0x1b7a50
movswl 0xe(%rbx,%rcx), %eax
movl %eax, 0x3e77c9(%rip)    # 0x40f000
movzwl 0x10(%rbx,%rcx), %r12d
cmpl $0x2400, %r12d          # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %r12d
movw %r12w, 0x3e77bb(%rip)   # 0x40f010
movzbl 0x18(%rbx,%rcx), %eax
movl %eax, 0x42b280(%rip)    # 0x452ae0
movzbl 0x19(%rbx,%rcx), %eax
movl %eax, 0x42b279(%rip)    # 0x452ae4
movswq %r12w, %rax
leaq 0x2121ea(%rip), %rdx    # 0x239a60
testb $-0x40, (%rdx,%rax,4)
je 0x27899
movswl %r12w, %edi
xorl %esi, %esi
callq 0x23d49
leaq 0x1901c2(%rip), %rcx    # 0x1b7a50
addl %eax, %r12d
movw %r12w, 0x3e7777(%rip)   # 0x40f010
addq %rcx, %rbx
movsbl 0x14(%rbx), %eax
movl %eax, 0x3ebf86(%rip)    # 0x41382c
movzbl 0x15(%rbx), %eax
movl %eax, 0x3e7754(%rip)    # 0x40f004
leaq 0x210199(%rip), %rax    # 0x237a50
movq 0x10(%rsp), %rdx
movswq (%rax,%rdx,2), %rsi
movzwl %si, %eax
movl %eax, 0x4c(%rsp)
shlq $0x5, %rsi
addq %rcx, %rsi
leaq 0x42939a(%rip), %r12    # 0x450c70
movslq 0x3e7727(%rip), %rax    # 0x40f004
leaq 0x3701fc(%rip), %rcx    # 0x397ae0
cmpq $0x0, (%rcx,%rax,8)
leaq 0x57bc30(%rip), %rbx    # 0x5a3520
jne 0x278fc
movl $0x0, 0x3e7708(%rip)    # 0x40f004
movslq 0x3a643d(%rip), %rax    # 0x3cdd40
movl %eax, 0x3ebf27(%rip)    # 0x413830
movq 0x38(%rsp), %rcx
movb 0x20(%rcx), %cl
testb %cl, %cl
je 0x27929
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ebf07(%rip)    # 0x413830
movswq 0x3e76df(%rip), %rcx    # 0x40f010
leaq 0x3ebf18(%rip), %rax    # 0x413850
movzbl (%rcx,%rax), %eax
shrl $0x4, %eax
movw %ax, 0x42b1a2(%rip)     # 0x452ae8
leaq 0x3d8e93(%rip), %rdx    # 0x4007e0
movswl (%rdx,%rcx,2), %ecx
leaq 0x7be58(%rip), %rdx     # 0xa37b0
cmpl %ecx, (%rdx,%rax,4)
je 0x27969
movzwl %ax, %eax
incl %eax
movw %ax, 0x42b17f(%rip)     # 0x452ae8
movw $0x20, %cx
subw 0x42b174(%rip), %cx     # 0x452ae8
movw %cx, 0x42b16d(%rip)     # 0x452ae8
movq %rsi, %r13
movzbl 0x17(%rsi), %eax
addb $-0x13, %cl
shll %cl, %eax
movl 0x3e7673(%rip), %edx    # 0x40f000
movq 0x50(%rsp), %rcx
addq $0x8, %rcx
testb $0x4, %dl
movl 0x2430c1(%rip), %esi    # 0x26aa60
cmovneq 0xa8(%rsp), %rcx
subl (%rcx), %esi
movl %eax, 0x42b140(%rip)    # 0x452af0
imull %eax, %esi
shll $0x8, %esi
movl 0x42b128(%rip), %ecx    # 0x452ae4
shll $0x18, %ecx
addl %esi, %ecx
movl %ecx, 0x42b125(%rip)    # 0x452aec
btl $0x8, %edx
jae 0x279dd
negl %eax
movl %eax, 0x42b11b(%rip)    # 0x452af0
negl %ecx
movl %ecx, 0x42b10f(%rip)    # 0x452aec
testl %ebp, %ebp
jne 0x279ee
movq 0x10(%rsp), %rdi
movq %r13, %rsi
callq 0x3d9ee
movl 0x18(%rsp), %edi
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
movq %r12, %rcx
leaq 0x48230c(%rip), %r8     # 0x4a9d10
leaq 0x485f05(%rip), %r9     # 0x4ad910
callq 0x3de63
cmpl %r14d, %r15d
jg 0x27a23
movl 0x6c(%rsp), %eax
cmpl 0x64(%rsp), %eax
jle 0x27b3e
movl $0x1, %ebp
movl 0x18(%rsp), %esi
movq 0x8(%rsp), %rdx
cmpl %esi, %edx
leaq 0x3ab156(%rip), %r11    # 0x3d2b90
leaq 0x3acf4f(%rip), %r10    # 0x3d4990
jl 0x27b62
movzwl 0x3aed4a(%rip), %eax    # 0x3d6798
movq 0x20(%rsp), %rcx
addq %rcx, %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%r11,%r8), %edi
movzwl (%r10,%r8), %r9d
cmpw %r9w, %di
jg 0x27ab3
movzwl (%r12,%r8), %r10d
movzwl (%rbx,%r8), %r8d
cmpw %r8w, %r10w
cmovll %r10d, %r8d
cmpw %r9w, %r8w
jge 0x27aac
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
leaq 0x3acefa(%rip), %r10    # 0x3d4990
movw %r8w, (%r10,%r9)
cmpw %r8w, %di
jle 0x27ab3
decl %eax
movw %ax, 0x3aecee(%rip)     # 0x3d6798
jmp 0x27ab3
leaq 0x3acedd(%rip), %r10    # 0x3d4990
incq %rsi
cmpl %esi, %edx
jne 0x27a5c
jmp 0x27b62
cmpb $0x0, 0x3aece3(%rip)    # 0x3d67a9
je 0x28025
movl 0x18(%rsp), %esi
movq 0x8(%rsp), %rdx
cmpl %esi, %edx
leaq 0x429192(%rip), %rbx    # 0x450c70
movq 0x20(%rsp), %r12
jl 0x27b37
movzwl 0x3aecac(%rip), %eax    # 0x3d6798
leaq (%r12,%r12), %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%rbx,%r8), %edi
movzwl (%r10,%r8), %r9d
cmpw %r9w, %di
jge 0x27b30
movzwl (%r11,%r8), %r8d
cmpw %r9w, %r8w
jg 0x27b30
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%r10,%r9)
cmpw %di, %r8w
jle 0x27b30
decl %eax
movw %ax, 0x3aec68(%rip)     # 0x3d6798
incq %rsi
cmpl %esi, %edx
jne 0x27af6
movq 0x28(%rsp), %r8
jmp 0x27b6a
movl $0x1, %ebp
movl 0x18(%rsp), %esi
movq 0x8(%rsp), %rdx
cmpl %esi, %edx
leaq 0x3ab03b(%rip), %r11    # 0x3d2b90
leaq 0x3ace34(%rip), %r10    # 0x3d4990
jge 0x27fbf
movq 0x20(%rsp), %r12
movq %r13, %r8
cmpl %r14d, %r15d
jg 0x27b89
movl 0x6c(%rsp), %eax
cmpl 0x64(%rsp), %eax
jg 0x27b89
movl 0x242ee1(%rip), %eax    # 0x26aa60
cmpl 0x70(%rsp), %eax
jle 0x27c1c
movq 0x8(%rsp), %rbx
subl 0x18(%rsp), %ebx
movswl 0x3aec07(%rip), %eax    # 0x3d67a0
leal (%rbx,%rax), %ecx
incl %ecx
cmpl $0x77fff, %ecx          # imm = 0x77FFF
leaq 0x242ec5(%rip), %r15    # 0x26aa70
movq 0x10(%rsp), %r14
jg 0x27c28
incl %ebx
movslq %eax, %rcx
movslq 0x7c096(%rip), %rdx     # 0xa3c54
movq %r8, %r13
leaq 0x489958(%rip), %rsi    # 0x4b1520
movw %ax, (%rsi,%rdx,2)
leaq 0x47b33d(%rip), %rax    # 0x4a2f10
movl %r14d, (%rax,%rdx,4)
leaq 0x47f332(%rip), %rax    # 0x4a6f10
movb $0x2, (%rdx,%rax)
leal 0x1(%rdx), %eax
movl %eax, 0x7c069(%rip)     # 0xa3c54
leaq (%r10,%r12,2), %rdi
leaq 0x48b92a(%rip), %rax    # 0x4b3520
leaq (%rax,%rcx,2), %rsi
leal (%rbx,%rbx), %edx
callq 0x4ac52
movq %r13, %r8
leaq 0x3acd84(%rip), %r10    # 0x3d4990
leaq 0x3aaf7d(%rip), %r11    # 0x3d2b90
addw %bx, 0x3aeb86(%rip)     # 0x3d67a0
jmp 0x27c28
leaq 0x242e4d(%rip), %r15    # 0x26aa70
movq 0x10(%rsp), %r14
cmpw $0x0, 0x3aeb68(%rip)    # 0x3d6798
js 0x2808e
testb $0x20, 0xe(%r8)
jne 0x27c9c
movq 0x40(%rsp), %rcx
movl %ecx, %eax
shrl $0x3, %eax
andl $0x7, %ecx
leaq 0x7bb4f(%rip), %rdx     # 0xa37a0
movb (%rcx,%rdx), %cl
leaq 0x3a7105(%rip), %rdx    # 0x3ced60
testb %cl, (%rax,%rdx)
leaq 0x42720b(%rip), %r12    # 0x44ee70
jne 0x27ca3
movq 0x8(%rsp), %rcx
movzwl (%r11,%rcx,2), %eax
cmpw (%r10,%rcx,2), %ax
jge 0x27f84
movq 0x40(%rsp), %rdi
movq %r8, %rbx
callq 0x26132
movq %rbx, %r8
leaq 0x3accfd(%rip), %r10    # 0x3d4990
leaq 0x3aaef6(%rip), %r11    # 0x3d2b90
jmp 0x27ca3
leaq 0x4271cd(%rip), %r12    # 0x44ee70
movswl 0xe(%r8), %eax
cmpw $0x0, 0x40(%rsp)
js 0x27cbe
movl $0x12, %ecx
testb $0x20, %al
jne 0x27cc3
jmp 0x27f6a
movl $0x10, %ecx
movl %eax, 0x3e7337(%rip)    # 0x40f000
movzwl (%r8,%rcx), %r14d
cmpl $0x2400, %r14d          # imm = 0x2400
movl $0x0, %eax
cmovael %eax, %r14d
movw %r14w, 0x3e732a(%rip)   # 0x40f010
movzbl 0x18(%r8), %eax
movl %eax, 0x42adef(%rip)    # 0x452ae0
movzbl 0x19(%r8), %ebx
movl %ebx, 0x42ade8(%rip)    # 0x452ae4
movswq %r14w, %rax
leaq 0x211d59(%rip), %rcx    # 0x239a60
testb $-0x40, (%rcx,%rax,4)
je 0x27d29
movswl %r14w, %edi
movq %r8, %r13
xorl %esi, %esi
callq 0x23d49
movq %r13, %r8
addl %eax, %r14d
movw %r14w, 0x3e72e7(%rip)   # 0x40f010
movsbl 0x14(%r8), %eax
movl %eax, 0x3ebaf8(%rip)    # 0x41382c
movslq 0x3a6005(%rip), %rax    # 0x3cdd40
movl %eax, 0x3ebaef(%rip)    # 0x413830
movq 0x38(%rsp), %rcx
movb 0x20(%rcx), %cl
testb %cl, %cl
je 0x27d61
addb $0x10, %cl
movzbl %cl, %ecx
imulq %rax, %rcx
shrq $0x4, %rcx
movl %ecx, 0x3ebacf(%rip)    # 0x413830
movq %r8, %rsi
movzbl 0x15(%r8), %eax
leaq 0x36fd70(%rip), %rcx    # 0x397ae0
cmpq $0x0, (%rcx,%rax,8)
movl $0x0, %ecx
cmovel %ecx, %eax
movl %eax, 0x3e7281(%rip)    # 0x40f004
movswq 0x3e7285(%rip), %rcx    # 0x40f010
leaq 0x3ebabe(%rip), %rax    # 0x413850
movzbl (%rcx,%rax), %eax
shrl $0x4, %eax
movw %ax, 0x42ad48(%rip)     # 0x452ae8
leaq 0x3d8a39(%rip), %rdx    # 0x4007e0
movswl (%rdx,%rcx,2), %ecx
leaq 0x7b9fe(%rip), %rdx     # 0xa37b0
cmpl %ecx, (%rdx,%rax,4)
movq 0x10(%rsp), %r14
movq 0x40(%rsp), %r8
je 0x27dcd
movzwl %ax, %eax
incl %eax
movw %ax, 0x42ad1b(%rip)     # 0x452ae8
movw $0x20, %cx
subw 0x42ad10(%rip), %cx     # 0x452ae8
movw %cx, 0x42ad09(%rip)     # 0x452ae8
movzbl 0x17(%rsi), %eax
addb $-0x13, %cl
shll %cl, %eax
movq 0x50(%rsp), %rdi
addq $0x4, %rdi
testb $0x4, 0x3e7208(%rip)    # 0x40f000
movq 0xb0(%rsp), %rcx
movq 0xa8(%rsp), %rdx
cmoveq %rdx, %rcx
cmovneq %rdx, %rdi
testw %r8w, %r8w
movl 0x242c46(%rip), %edx    # 0x26aa60
cmovsq %rcx, %rdi
subl (%rdi), %edx
movl %eax, 0x42acca(%rip)    # 0x452af0
imull %eax, %edx
shll $0x8, %edx
shll $0x18, %ebx
addl %edx, %ebx
movl %ebx, 0x42acb5(%rip)    # 0x452aec
testb $0x1, 0x3e71c3(%rip)    # 0x40f001
je 0x27e50
negl %eax
movl %eax, 0x42aca8(%rip)    # 0x452af0
negl %ebx
movl %ebx, 0x42ac9c(%rip)    # 0x452aec
testl %ebp, %ebp
jne 0x27e5c
movl %r14d, %edi
callq 0x3d9ee
movl 0x18(%rsp), %ebx
movl %ebx, %edi
movq 0x8(%rsp), %r13
movl %r13d, %esi
movq %r12, %rdx
leaq 0x428dfc(%rip), %rcx    # 0x450c70
leaq 0x481e95(%rip), %r8     # 0x4a9d10
leaq 0x485a8e(%rip), %r9     # 0x4ad910
callq 0x3de63
cmpl %ebx, %r13d
leaq 0x3aacff(%rip), %r11    # 0x3d2b90
leaq 0x3acaf8(%rip), %r10    # 0x3d4990
movq 0x20(%rsp), %r8
jl 0x27ee7
movzwl 0x3ae8f2(%rip), %eax    # 0x3d6798
addq %r8, %r8
movl %r13d, %ecx
subl %ebx, %ecx
incl %ecx
xorl %edx, %edx
leaq (%r8,%rdx,2), %rsi
movzwl (%r11,%rsi), %edi
cmpw (%r10,%rsi), %di
jg 0x27ee0
leaq (%rdx,%rdx), %rsi
addq %r8, %rsi
movw $0x1, (%r11,%rsi)
movw $0x0, (%r10,%rsi)
decl %eax
movw %ax, 0x3ae8b8(%rip)     # 0x3d6798
incq %rdx
cmpl %edx, %ecx
jne 0x27eb2
movslq 0x7bd66(%rip), %rax     # 0xa3c54
leaq 0x47b01b(%rip), %rcx    # 0x4a2f10
movl %r14d, (%rcx,%rax,4)
leaq 0x47f010(%rip), %rcx    # 0x4a6f10
movb $0x0, (%rax,%rcx)
incl %eax
movl %eax, 0x7bd48(%rip)     # 0xa3c54
cmpw $0x2, 0x36fbbc(%rip)    # 0x397ad0
jne 0x27f6a
movl 0x7bd24(%rip), %eax     # 0xa3c40
cmpl 0x18(%rsp), %eax
setl %cl
cmpl 0x8(%rsp), %eax
setg %al
orb %cl, %al
jne 0x27f6a
movw $0x1, 0x36fb99(%rip)    # 0x397ad0
movzwl 0x36(%rsp), %eax
movw %ax, 0x42cfad(%rip)     # 0x454ef0
movl 0x4c(%rsp), %eax
movw %ax, 0x42cfa4(%rip)     # 0x454ef2
cmpw $0x0, 0x40(%rsp)
js 0x27f61
movw $0x4, 0x36fb73(%rip)    # 0x397ad2
jmp 0x27f6a
movw $0x0, 0x36fb68(%rip)    # 0x397ad2
leaq 0x3b685f(%rip), %rax    # 0x3de7d0
movzwl (%rax,%r14,2), %ebp
testw %bp, %bp
jns 0x26e71
jmp 0x2808e
movl 0x18(%rsp), %eax
movl %eax, %ebx
cmpl %eax, %ecx
jle 0x2804d
movq 0x20(%rsp), %rax
addq %rax, %rax
movl 0x18(%rsp), %ebx
movzwl (%rax,%r11), %ecx
cmpw (%rax,%r10), %cx
jl 0x2802f
incl %ebx
addq $0x2, %rax
cmpl %ebx, 0x8(%rsp)
jne 0x27f9e
jmp 0x2804d
movzwl 0x3ae7d2(%rip), %eax    # 0x3d6798
movq 0x20(%rsp), %r12
leaq (%r12,%r12), %rcx
subl %esi, %edx
incl %edx
xorl %esi, %esi
leaq (%rcx,%rsi,2), %r8
movzwl (%rbx,%r8), %edi
movzwl (%r10,%r8), %r9d
cmpw %r9w, %di
jge 0x2800f
movzwl (%r11,%r8), %r8d
cmpw %r9w, %r8w
jg 0x2800f
leaq (%rsi,%rsi), %r9
addq %rcx, %r9
movw %di, (%r10,%r9)
cmpw %di, %r8w
jle 0x2800f
decl %eax
movw %ax, 0x3ae789(%rip)     # 0x3d6798
incq %rsi
cmpl %esi, %edx
jne 0x27fd5
jmp 0x27b67
movq 0x10(%rsp), %r14
jmp 0x275ab
movq 0x20(%rsp), %r12
jmp 0x27b6a
movq 0x40(%rsp), %rdi
movq %r8, %r13
callq 0x26132
movq %r13, %r8
leaq 0x3ac94a(%rip), %r10    # 0x3d4990
leaq 0x3aab43(%rip), %r11    # 0x3d2b90
cmpl 0x8(%rsp), %ebx
jne 0x27ca3
movslq 0xa4(%rsp), %rax
movzwl 0x5c(%rsp), %ecx
movw %cx, 0x3ae735(%rip)     # 0x3d67a0
leaq 0x47ae9e(%rip), %rcx    # 0x4a2f10
movl %r14d, (%rcx,%rax,4)
leaq 0x47ee93(%rip), %rcx    # 0x4a6f10
movb $0x0, (%rax,%rcx)
incl %eax
movl %eax, 0x7bbcb(%rip)     # 0xa3c54
jmp 0x27ca3
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movswq (%r14), %rax
shlq $0x5, %rax
leaq 0x18f9a1(%rip), %rcx    # 0x1b7a50
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, %r14d
imull %r14d, %r14d
addl %eax, %r14d
movl %r14d, %eax
shrl $0x18, %eax
orl $0x1000, %eax           # imm = 0x1000
movl %r14d, %ecx
shrl $0xc, %ecx
cmpl $0x1000000, %r14d       # imm = 0x1000000
cmovael %eax, %ecx
leaq 0x42cdfc(%rip), %rax    # 0x454f00
movzwl (%rax,%rcx,2), %ecx
shrl %cl, %r14d
leaq 0x42efee(%rip), %rax    # 0x457100
movzwl (%rax,%r14,2), %r14d
shrl $0x8, %ecx
shrl %cl, %r14d
testl %r14d, %r14d
je 0x281ca
movl $0x100000, %eax         # imm = 0x100000
xorl %edx, %edx
divl %r14d
jmp 0x281cf
movswq (%r14), %rax
shlq $0x5, %rax
leaq 0x18f90c(%rip), %rcx    # 0x1b7a50
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, %r14d
imull %r14d, %r14d
addl %eax, %r14d
movl %r14d, %eax
shrl $0x18, %eax
orl $0x1000, %eax           # imm = 0x1000
movl %r14d, %ecx
shrl $0xc, %ecx
cmpl $0x1000000, %r14d       # imm = 0x1000000
cmovael %eax, %ecx
leaq 0x42cd67(%rip), %rax    # 0x454f00
movzwl (%rax,%rcx,2), %ecx
shrl %cl, %r14d
leaq 0x42ef59(%rip), %rax    # 0x457100
movzwl (%rax,%r14,2), %r14d
shrl $0x8, %ecx
shrl %cl, %r14d
testl %r14d, %r14d
je 0x2855e
movl $0x100000, %eax         # imm = 0x100000
xorl %edx, %edx
divl %r14d
jmp 0x28563
movl $0x400, %eax            # imm = 0x400
movslq 0x2468a2(%rip), %r15    # 0x26ea78
movq %rbx, %rdx
negq %rdx
movslq 0x24688d(%rip), %rcx    # 0x26ea70
movslq %ebx, %rbx
imulq %r15, %rbx
movl 0x211860(%rip), %ebp    # 0x239a50
subl %ebp, %r10d
shll $0x6, %r10d
movl 0x211857(%rip), %ebp    # 0x239a54
subl %ebp, %r11d
shll $0x6, %r11d
movslq %r10d, %r14
negl %r10d
movslq %r11d, %r11
movq %r11, %r12
movslq %r10d, %r10
imulq %r15, %r10
imulq %r15, %r11
imulq %r9, %r15
imulq %rcx, %rdx
addq %r15, %rdx
shrq $0xa, %rdx
movslq %edx, %rdx
imulq %rax, %rdx
shrq $0xa, %rdx
movl %edx, 0x3eb5fd(%rip)    # 0x413838
imulq %rcx, %r9
addq %r9, %rbx
shrq $0xa, %rbx
movslq %ebx, %r9
imulq %rax, %r9
shrq $0xa, %r9
movl %r9d, 0x3eb5e4(%rip)    # 0x41383c
movl %edx, %eax
negl %eax
movl %eax, 0x3eb5de(%rip)    # 0x413840
movl %r9d, %ebx
negl %ebx
movl %ebx, 0x3eb5d7(%rip)    # 0x413844
imulq %rcx, %r12
addq %r12, %r10
shrq $0xe, %r10
imulq %rcx, %r14
addq %r14, %r11
shrq $0xe, %r11
imull %r10d, %edx
imull %r11d, %r9d
subl %r9d, %edx
movl %edx, 0x42a84c(%rip)    # 0x452ae0
imull %r10d, %ebx
imull %r11d, %eax
addl %ebx, %eax
movb 0x28(%rsp), %r12b
movl %eax, 0x42a83b(%rip)    # 0x452ae4
movslq 0x3eb590(%rip), %rcx    # 0x413840
movslq 0x3a5a81(%rip), %r9     # 0x3cdd38
imulq %r9, %rcx
shrq $0x10, %rcx
movl %ecx, 0x3eb57b(%rip)    # 0x413840
movslq 0x3eb570(%rip), %rdx    # 0x41383c
imulq %r9, %rdx
shrq $0x10, %rdx
movl %edx, 0x3eb562(%rip)    # 0x41383c
leaq 0x3eb56f(%rip), %rbx    # 0x413850
movzbl (%rsi,%rbx), %esi
movl %esi, %r9d
andb $0xf, %r9b
movb $0x8, %r11b
movb $0x8, %r10b
subb %r9b, %r10b
movb %r10b, 0x3ed954(%rip)   # 0x415c50
movl %esi, %r10d
shrb $0x4, %r10b
subb %r10b, %r11b
movb %r11b, 0x3ed944(%rip)   # 0x415c51
testb $0x8, %dil
movq 0x18(%rsp), %r14
je 0x28332
movb $0x9, %r11b
movb $0x9, %bpl
subb %r9b, %bpl
movb %bpl, 0x3ed928(%rip)    # 0x415c50
subb %r10b, %r11b
movb %r11b, 0x3ed91f(%rip)   # 0x415c51
testb $0x4, %dil
je 0x28374
movl 0x42a7a1(%rip), %r9d    # 0x452ae0
movl %eax, 0x42a79b(%rip)    # 0x452ae0
movl %r9d, 0x42a798(%rip)    # 0x452ae4
negl %edx
movl %edx, 0x3eb4ec(%rip)    # 0x413840
negl %ecx
movl %ecx, 0x3eb4e0(%rip)    # 0x41383c
movl 0x3eb4d6(%rip), %eax    # 0x413838
movl 0x3eb4dc(%rip), %ecx    # 0x413844
movl %ecx, 0x3eb4ca(%rip)    # 0x413838
movl %eax, 0x3eb4d0(%rip)    # 0x413844
testb $0x10, %dil
je 0x2838c
negl 0x3eb4b8(%rip)          # 0x413838
negl 0x3eb4b6(%rip)          # 0x41383c
negl 0x42a754(%rip)          # 0x452ae0
testb $0x20, %dil
je 0x283a4
negl 0x3eb4a8(%rip)          # 0x413840
negl 0x3eb4a6(%rip)          # 0x413844
negl 0x42a740(%rip)          # 0x452ae4
movb 0x3ed8a6(%rip), %al     # 0x415c50
movl 0x3eb487(%rip), %r9d    # 0x413838
movl %eax, %ecx
shll %cl, %r9d
movl 0x3eb480(%rip), %edi    # 0x41383c
shll %cl, %edi
movb 0x3ed88d(%rip), %dl     # 0x415c51
movl 0x3eb475(%rip), %r10d   # 0x413840
movl %edx, %ecx
shll %cl, %r10d
movl %r9d, 0x3eb461(%rip)    # 0x413838
movl %edi, 0x3eb45f(%rip)    # 0x41383c
movl 0x3eb460(%rip), %r11d   # 0x413844
shll %cl, %r11d
movl 0x42a6f3(%rip), %ebp    # 0x452ae0
movl %eax, %ecx
shll %cl, %ebp
movl %r10d, 0x3eb448(%rip)   # 0x413840
movl %r11d, 0x3eb445(%rip)   # 0x413844
movl %ebp, 0x42a6db(%rip)    # 0x452ae0
movl 0x42a6d9(%rip), %eax    # 0x452ae4
movl %edx, %ecx
shll %cl, %eax
movl %eax, 0x42a6cf(%rip)    # 0x452ae4
movq 0x38(%rsp), %rdx
movzbl 0x16(%rdx), %ecx
shll $0x18, %ecx
addl %ebp, %ecx
movl %ecx, 0x42a6b7(%rip)    # 0x452ae0
movzbl 0x17(%rdx), %ecx
shll $0x18, %ecx
addl %eax, %ecx
movl %ecx, 0x42a6ac(%rip)    # 0x452ae4
addl %r9d, %edi
movl 0x3efa23(%rip), %eax    # 0x417e64
imull %eax, %edi
negl %edi
movl %edi, 0x3eb3f0(%rip)    # 0x41383c
subl %r11d, %r10d
imull %eax, %r10d
movl %r10d, 0x3eb3e6(%rip)   # 0x413840
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
movq %r8, %rdx
callq 0x6dcdb
movslq 0x3eb3d3(%rip), %rax    # 0x413844
movq 0x10(%rsp), %r8
leaq -0x1(%r8), %rcx
movq %rax, %rdx
imulq %rcx, %rdx
movslq 0x3eb3b8(%rip), %rsi    # 0x413840
addq %rdx, %rsi
movslq 0x3eb3a6(%rip), %rdx    # 0x413838
movslq %ecx, %rcx
imulq %rdx, %rcx
movslq 0x3eb39c(%rip), %rdi    # 0x41383c
addq %rcx, %rdi
movslq 0x42a642(%rip), %rcx    # 0x452aec
imulq %rcx, %rdx
shrq $0x10, %rdx
movl %edx, 0x3eb380(%rip)    # 0x413838
imulq %rcx, %rsi
shrq $0x10, %rsi
movl %esi, 0x3eb37a(%rip)    # 0x413840
imulq %rcx, %rdi
shrq $0x10, %rdi
movl %edi, 0x3eb368(%rip)    # 0x41383c
imulq %rcx, %rax
shrq $0x10, %rax
movl %eax, 0x3eb362(%rip)    # 0x413844
movslq 0x3eb347(%rip), %rax    # 0x413830
imulq %rcx, %rax
shrq $0xa, %rax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movl %ecx, 0x3eb332(%rip)    # 0x413830
movl $0x180, %eax            # imm = 0x180
leaq 0x3aa686(%rip), %r9     # 0x3d2b90
andl 0x3e6af0(%rip), %eax    # 0x40f000
je 0x28543
shrl $0x7, %eax
leaq 0x4d8e4(%rip), %rcx     # 0x75e00
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movswq 0x3e6ae3(%rip), %rax    # 0x40f010
movzbl (%rax,%rbx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6dfe7
jmp 0x28cbb
movswl (%r9,%r8,2), %r15d
movq 0x40(%rsp), %rbx
cmpl %ebx, %r8d
jle 0x28901
movl %r15d, %ebp
jmp 0x29152
movl $0x400, %eax            # imm = 0x400
movslq 0x24650e(%rip), %r14    # 0x26ea78
movq %rbx, %rdx
negq %rdx
movslq 0x2464f9(%rip), %rcx    # 0x26ea70
movslq %ebx, %rbx
imulq %r14, %rbx
movl 0x2114cc(%rip), %ebp    # 0x239a50
subl %ebp, %r10d
shll $0x6, %r10d
movl 0x2114c3(%rip), %ebp    # 0x239a54
subl %ebp, %r11d
shll $0x6, %r11d
movslq %r10d, %r15
negl %r10d
movslq %r11d, %r11
movq %r11, %r13
movslq %r10d, %r10
imulq %r14, %r10
imulq %r14, %r11
imulq %r9, %r14
imulq %rcx, %rdx
addq %r14, %rdx
shrq $0xa, %rdx
movslq %edx, %rdx
imulq %rax, %rdx
shrq $0xa, %rdx
movl %edx, 0x3eb269(%rip)    # 0x413838
imulq %rcx, %r9
addq %r9, %rbx
shrq $0xa, %rbx
movslq %ebx, %r9
imulq %rax, %r9
shrq $0xa, %r9
movl %r9d, 0x3eb250(%rip)    # 0x41383c
movl %edx, %eax
negl %eax
movl %eax, 0x3eb24a(%rip)    # 0x413840
movl %r9d, %ebx
negl %ebx
movl %ebx, 0x3eb243(%rip)    # 0x413844
imulq %rcx, %r13
addq %r13, %r10
shrq $0xe, %r10
imulq %rcx, %r15
addq %r15, %r11
shrq $0xe, %r11
imull %r10d, %edx
imull %r11d, %r9d
subl %r9d, %edx
movl %edx, 0x42a4b8(%rip)    # 0x452ae0
imull %r10d, %ebx
imull %r11d, %eax
addl %ebx, %eax
leaq 0x3ae187(%rip), %r15    # 0x3d67c0
movl %eax, 0x42a4a5(%rip)    # 0x452ae4
movslq 0x3eb1fa(%rip), %rcx    # 0x413840
movslq 0x3a56eb(%rip), %r9     # 0x3cdd38
imulq %r9, %rcx
shrq $0x10, %rcx
movl %ecx, 0x3eb1e5(%rip)    # 0x413840
movslq 0x3eb1da(%rip), %rdx    # 0x41383c
imulq %r9, %rdx
shrq $0x10, %rdx
movl %edx, 0x3eb1cc(%rip)    # 0x41383c
leaq 0x3eb1d9(%rip), %rbx    # 0x413850
movzbl (%rsi,%rbx), %esi
movl %esi, %r9d
andb $0xf, %r9b
movb $0x8, %r11b
movb $0x8, %r10b
subb %r9b, %r10b
movb %r10b, 0x3ed5be(%rip)   # 0x415c50
movl %esi, %r10d
shrb $0x4, %r10b
subb %r10b, %r11b
movb %r11b, 0x3ed5ae(%rip)   # 0x415c51
testb $0x8, %dil
je 0x286c3
movb $0x9, %r11b
movb $0x9, %bpl
subb %r9b, %bpl
movb %bpl, 0x3ed597(%rip)    # 0x415c50
subb %r10b, %r11b
movb %r11b, 0x3ed58e(%rip)   # 0x415c51
testb $0x4, %dil
je 0x28705
movl 0x42a410(%rip), %r9d    # 0x452ae0
movl %eax, 0x42a40a(%rip)    # 0x452ae0
movl %r9d, 0x42a407(%rip)    # 0x452ae4
negl %edx
movl %edx, 0x3eb15b(%rip)    # 0x413840
negl %ecx
movl %ecx, 0x3eb14f(%rip)    # 0x41383c
movl 0x3eb145(%rip), %eax    # 0x413838
movl 0x3eb14b(%rip), %ecx    # 0x413844
movl %ecx, 0x3eb139(%rip)    # 0x413838
movl %eax, 0x3eb13f(%rip)    # 0x413844
testb $0x10, %dil
je 0x2871d
negl 0x3eb127(%rip)          # 0x413838
negl 0x3eb125(%rip)          # 0x41383c
negl 0x42a3c3(%rip)          # 0x452ae0
testb $0x20, %dil
je 0x28735
negl 0x3eb117(%rip)          # 0x413840
negl 0x3eb115(%rip)          # 0x413844
negl 0x42a3af(%rip)          # 0x452ae4
movb 0x3ed515(%rip), %al     # 0x415c50
movl 0x3eb0f6(%rip), %r9d    # 0x413838
movl %eax, %ecx
shll %cl, %r9d
movl 0x3eb0ef(%rip), %edi    # 0x41383c
shll %cl, %edi
movb 0x3ed4fc(%rip), %dl     # 0x415c51
movl 0x3eb0e4(%rip), %r10d   # 0x413840
movl %edx, %ecx
shll %cl, %r10d
movl %r9d, 0x3eb0d0(%rip)    # 0x413838
movl %edi, 0x3eb0ce(%rip)    # 0x41383c
movl 0x3eb0cf(%rip), %r11d   # 0x413844
shll %cl, %r11d
movl 0x42a362(%rip), %ebp    # 0x452ae0
movl %eax, %ecx
shll %cl, %ebp
movl %r10d, 0x3eb0b7(%rip)   # 0x413840
movl %r11d, 0x3eb0b4(%rip)   # 0x413844
movl %ebp, 0x42a34a(%rip)    # 0x452ae0
movl 0x42a348(%rip), %eax    # 0x452ae4
movl %edx, %ecx
shll %cl, %eax
movl %eax, 0x42a33e(%rip)    # 0x452ae4
movq 0x38(%rsp), %rdx
movzbl 0x1e(%rdx), %ecx
shll $0x18, %ecx
addl %ebp, %ecx
movl %ecx, 0x42a326(%rip)    # 0x452ae0
movzbl 0x1f(%rdx), %ecx
shll $0x18, %ecx
addl %eax, %ecx
movl %ecx, 0x42a31b(%rip)    # 0x452ae4
addl %r9d, %edi
movl 0x3ef692(%rip), %eax    # 0x417e64
imull %eax, %edi
negl %edi
movl %edi, 0x3eb05f(%rip)    # 0x41383c
subl %r11d, %r10d
imull %eax, %r10d
movl %r10d, 0x3eb055(%rip)   # 0x413840
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
movq %r8, %rdx
callq 0x6dcdb
movslq 0x3eb042(%rip), %rax    # 0x413844
leaq -0x1(%r12), %rcx
movq %rax, %rdx
imulq %rcx, %rdx
movslq 0x3eb02b(%rip), %rsi    # 0x413840
addq %rdx, %rsi
movslq 0x3eb019(%rip), %rdx    # 0x413838
movslq %ecx, %rcx
imulq %rdx, %rcx
movslq 0x3eb00f(%rip), %rdi    # 0x41383c
addq %rcx, %rdi
movslq 0x42a2b5(%rip), %rcx    # 0x452aec
imulq %rcx, %rdx
shrq $0x10, %rdx
movl %edx, 0x3eaff3(%rip)    # 0x413838
imulq %rcx, %rsi
shrq $0x10, %rsi
movl %esi, 0x3eafed(%rip)    # 0x413840
imulq %rcx, %rdi
shrq $0x10, %rdi
movl %edi, 0x3eafdb(%rip)    # 0x41383c
imulq %rcx, %rax
shrq $0x10, %rax
movl %eax, 0x3eafd5(%rip)    # 0x413844
movslq 0x3eafba(%rip), %rax    # 0x413830
imulq %rcx, %rax
shrq $0xa, %rax
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movl %ecx, 0x3eafa5(%rip)    # 0x413830
movl $0x180, %eax            # imm = 0x180
leaq 0x4283d9(%rip), %rdi    # 0x450c70
andl 0x3e6763(%rip), %eax    # 0x40f000
je 0x288d0
shrl $0x7, %eax
leaq 0x4d567(%rip), %rcx     # 0x75e10
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movswq 0x3e6756(%rip), %rax    # 0x40f010
movzbl (%rax,%rbx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6dfe7
jmp 0x28ed6
movzwl (%rdi,%r12,2), %eax
leaq 0x3aa2b4(%rip), %rcx    # 0x3d2b90
movzwl (%rcx,%r12,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %r14d
movq 0x20(%rsp), %rax
cmpl %eax, %r12d
jle 0x28ada
movl %r14d, %ebp
jmp 0x2919c
movq %r8, %rdi
leal 0x1(%rbx), %eax
movl %eax, 0x50(%rsp)
movl %r15d, %ebp
movq %r13, 0x8(%rsp)
movswl (%r9,%rdi,2), %r13d
leaq 0x426551(%rip), %rax    # 0x44ee70
movzwl (%rax,%rdi,2), %eax
leaq 0x3ac066(%rip), %rcx    # 0x3d4990
movzwl (%rcx,%rdi,2), %ecx
cmpw %cx, %ax
cmovll %eax, %ecx
cmpw %cx, %r13w
movq %rdi, 0x10(%rsp)
jge 0x28978
leal -0x1(%r13), %ebx
cmpl %r13d, %r15d
jge 0x2899b
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x289fa
movl %ecx, 0x4c(%rsp)
leal -0x1(%rdi), %r12d
incl %ebp
movq 0x8(%rsp), %r13
movl %r12d, %edi
movl %ebp, %esi
callq 0x3e1c2
incl %ebp
cmpl %ebp, %r15d
jne 0x28963
movl %ebx, %ebp
jmp 0x289c1
leal -0x1(%r15), %ebx
cmpl %ebx, %ebp
jge 0x289c8
leal -0x1(%rdi), %r12d
movq 0x8(%rsp), %r13
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3e1c2
cmpl %ebp, %ebx
jne 0x28989
jmp 0x289cd
movl %ecx, 0x4c(%rsp)
cmpl %ebx, %ebp
jge 0x289b7
leal -0x1(%rdi), %r12d
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3e1c2
cmpl %ebp, %ebx
jne 0x289a7
cmpl %r13d, %ebp
jge 0x28a03
movq 0x8(%rsp), %r13
movq 0x10(%rsp), %rdi
jmp 0x28a31
movq 0x8(%rsp), %r13
movq 0x40(%rsp), %rbx
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x29135
leaq 0x3aa1a9(%rip), %r9     # 0x3d2b90
movswl 0x2(%r9,%rdi,2), %ebp
movl %ebp, %r15d
movb 0x28(%rsp), %r12b
jmp 0x28ab0
movl %ebx, %ebp
movq 0x8(%rsp), %r13
jmp 0x28a35
movslq %ebp, %rax
movslq %r13d, %rcx
leaq 0x42a320(%rip), %rdx    # 0x452d30
leaq (%rdx,%rax,4), %rdx
incq %rax
movq 0x10(%rsp), %rdi
movl %edi, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x28a1c
movl %ebx, %ebp
movq 0x8(%rsp), %r13
movl 0x4c(%rsp), %ecx
movswl %cx, %ebx
cmpl %ebx, %r15d
jle 0x28a54
leal -0x1(%rdi), %r12d
decl %r15d
movl %r12d, %edi
movl %r15d, %esi
callq 0x3e1c2
cmpl %ebx, %r15d
jg 0x28a41
cmpl %ebx, %r15d
jge 0x28a9a
movslq %r15d, %rax
movslq %ebx, %rcx
subq %rax, %rcx
shlq $0x2, %rax
xorl %edx, %edx
movb 0x28(%rsp), %r12b
movq 0x10(%rsp), %rdi
leaq 0x3aa117(%rip), %r9     # 0x3d2b90
leaq 0x42a2b0(%rip), %r8     # 0x452d30
leaq (%rax,%rdx,4), %rsi
movl %edi, (%r8,%rsi)
incq %rdx
cmpq %rdx, %rcx
jne 0x28a80
addl %edx, %r15d
movq 0x40(%rsp), %rbx
jmp 0x28ab0
movb 0x28(%rsp), %r12b
movq 0x40(%rsp), %rbx
movq 0x10(%rsp), %rdi
leaq 0x3aa0e0(%rip), %r9     # 0x3d2b90
movl 0x3ead8e(%rip), %eax    # 0x413844
addl %eax, 0x3ead84(%rip)    # 0x413840
movl 0x3ead76(%rip), %eax    # 0x413838
addl %eax, 0x3ead74(%rip)    # 0x41383c
incq %rdi
cmpl %edi, 0x50(%rsp)
jne 0x28913
jmp 0x29152
incl %eax
movl %eax, 0x8(%rsp)
movl %r14d, %ebp
movzwl (%rdi,%r12,2), %ecx
leaq 0x3aa0a1(%rip), %rax    # 0x3d2b90
movzwl (%rax,%r12,2), %eax
cmpw %ax, %cx
cmovgl %ecx, %eax
leaq 0x3abe8f(%rip), %rcx    # 0x3d4990
movswl (%rcx,%r12,2), %ebx
cmpw %bx, %ax
jge 0x28b45
cwtl
leal -0x1(%rax), %r13d
cmpl %eax, %r14d
jge 0x28b9e
leal -0x1(%r14), %eax
cmpl %eax, %ebp
jge 0x28bfa
leal -0x1(%r12), %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3e1c2
incl %ebp
cmpl %ebp, %r14d
jne 0x28b2c
movl %r13d, %ebp
jmp 0x28bc7
movq %r15, %r13
leal -0x1(%r14), %ebx
cmpl %ebx, %ebp
jge 0x28b65
leal -0x1(%r12), %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3e1c2
cmpl %ebp, %ebx
jne 0x28b55
cmpq 0x20(%rsp), %r12
je 0x29181
leaq 0x4280f9(%rip), %rdi    # 0x450c70
movzwl 0x2(%rdi,%r12,2), %eax
leaq 0x3aa00c(%rip), %rcx    # 0x3d2b90
movzwl 0x2(%rcx,%r12,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %ebp
movl %ebp, %r14d
movq %r13, %r15
jmp 0x28c61
movq %rax, 0x10(%rsp)
cmpl %r13d, %ebp
jge 0x28bbe
leal -0x1(%r12), %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3e1c2
cmpl %ebp, %r13d
jne 0x28bad
movq 0x10(%rsp), %rcx
cmpl %ecx, %ebp
jge 0x28bd0
leaq 0x3adbf2(%rip), %r15    # 0x3d67c0
jmp 0x28bfd
movslq %ebp, %rax
movslq %ecx, %rcx
leaq 0x42a153(%rip), %rdx    # 0x452d30
leaq (%rdx,%rax,4), %rdx
incq %rax
leaq 0x3adbd5(%rip), %r15    # 0x3d67c0
movl %r12d, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x28beb
movl %r13d, %ebp
movq %r15, %r13
cmpl %ebx, %r14d
jle 0x28c1d
leal -0x1(%r12), %r15d
decl %r14d
movl %r15d, %edi
movl %r14d, %esi
callq 0x3e1c2
cmpl %ebx, %r14d
jg 0x28c0a
cmpl %ebx, %r14d
jge 0x28c57
movslq %r14d, %rax
movslq %ebx, %rcx
subq %rax, %rcx
shlq $0x2, %rax
xorl %edx, %edx
movq %r13, %r15
leaq 0x428035(%rip), %rdi    # 0x450c70
leaq 0x42a0ee(%rip), %r8     # 0x452d30
leaq (%rax,%rdx,4), %rsi
movl %r12d, (%r8,%rsi)
incq %rdx
cmpq %rdx, %rcx
jne 0x28c42
addl %edx, %r14d
jmp 0x28c61
movq %r13, %r15
leaq 0x42800f(%rip), %rdi    # 0x450c70
movl 0x3eabdd(%rip), %eax    # 0x413844
addl %eax, 0x3eabd3(%rip)    # 0x413840
movl 0x3eabc5(%rip), %eax    # 0x413838
addl %eax, 0x3eabc3(%rip)    # 0x41383c
incq %r12
cmpl %r12d, 0x8(%rsp)
jne 0x28ae3
jmp 0x2919c
callq 0x6dccb
jmp 0x28ca2
callq 0x6dccb
jmp 0x28ebd
callq 0x6dcd3
movswq 0x3e6366(%rip), %rax    # 0x40f010
movzbl (%rax,%rbx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6e08b
leaq 0x3a9ece(%rip), %r9     # 0x3d2b90
movq 0x10(%rsp), %rdi
movswl (%r9,%rdi,2), %r15d
movq 0x40(%rsp), %rbx
cmpl %ebx, %edi
jle 0x28cdd
movl %r15d, %ebp
jmp 0x290d2
leal 0x1(%rbx), %eax
movl %eax, 0x50(%rsp)
movl %r15d, %ebp
movq %r13, 0x8(%rsp)
movswl (%r9,%rdi,2), %r14d
leaq 0x426178(%rip), %rax    # 0x44ee70
movzwl (%rax,%rdi,2), %eax
leaq 0x3abc8d(%rip), %rcx    # 0x3d4990
movzwl (%rcx,%rdi,2), %r13d
cmpw %r13w, %ax
cmovll %eax, %r13d
cmpw %r13w, %r14w
movq %rdi, 0x10(%rsp)
jge 0x28d50
leal -0x1(%r14), %ebx
cmpl %r14d, %r15d
jge 0x28d78
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x28dff
leal -0x1(%rdi), %r12d
incl %ebp
movq 0x18(%rsp), %r14
movl %r12d, %edi
movl %ebp, %esi
callq 0x3e289
incl %ebp
cmpl %ebp, %r15d
jne 0x28d3b
movl %ebx, %ebp
jmp 0x28d9a
leal -0x1(%r15), %ebx
cmpl %ebx, %ebp
jge 0x28da1
leal -0x1(%rdi), %r12d
movq 0x18(%rsp), %r14
movq 0x8(%rsp), %r13
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3e289
cmpl %ebp, %ebx
jne 0x28d66
jmp 0x28dab
cmpl %ebx, %ebp
jge 0x28d90
leal -0x1(%rdi), %r12d
incl %ebp
movl %r12d, %edi
movl %ebp, %esi
callq 0x3e289
cmpl %ebp, %ebx
jne 0x28d80
cmpl %r14d, %ebp
jge 0x28dd8
movq 0x18(%rsp), %r14
movq 0x10(%rsp), %rdi
jmp 0x28e06
movq 0x18(%rsp), %r14
movq 0x8(%rsp), %r13
movq 0x40(%rsp), %rbx
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x290b5
leaq 0x3a9dcb(%rip), %r9     # 0x3d2b90
movswl 0x2(%r9,%rdi,2), %ebp
movl %ebp, %r15d
movb 0x28(%rsp), %r12b
jmp 0x28e8e
movslq %ebp, %rax
movslq %r14d, %rcx
leaq 0x429f4b(%rip), %rdx    # 0x452d30
leaq (%rdx,%rax,4), %rdx
incq %rax
movq 0x10(%rsp), %rdi
movl %edi, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x28df1
movl %ebx, %ebp
movq 0x18(%rsp), %r14
movswl %r13w, %ebx
cmpl %ebx, %r15d
jle 0x28e2d
leal -0x1(%rdi), %r12d
movq 0x8(%rsp), %r13
decl %r15d
movl %r12d, %edi
movl %r15d, %esi
callq 0x3e289
cmpl %ebx, %r15d
jg 0x28e18
jmp 0x28e32
movq 0x8(%rsp), %r13
cmpl %ebx, %r15d
jge 0x28e78
movslq %r15d, %rax
movslq %ebx, %rcx
subq %rax, %rcx
shlq $0x2, %rax
xorl %edx, %edx
movb 0x28(%rsp), %r12b
movq 0x10(%rsp), %rdi
leaq 0x3a9d39(%rip), %r9     # 0x3d2b90
leaq 0x429ed2(%rip), %r8     # 0x452d30
leaq (%rax,%rdx,4), %rsi
movl %edi, (%r8,%rsi)
incq %rdx
cmpq %rdx, %rcx
jne 0x28e5e
addl %edx, %r15d
movq 0x40(%rsp), %rbx
jmp 0x28e8e
movb 0x28(%rsp), %r12b
movq 0x40(%rsp), %rbx
movq 0x10(%rsp), %rdi
leaq 0x3a9d02(%rip), %r9     # 0x3d2b90
movl 0x3ea9b0(%rip), %eax    # 0x413844
addl %eax, 0x3ea9a6(%rip)    # 0x413840
movl 0x3ea998(%rip), %eax    # 0x413838
addl %eax, 0x3ea996(%rip)    # 0x41383c
incq %rdi
cmpl %edi, 0x50(%rsp)
jne 0x28cec
jmp 0x290d2
callq 0x6dcd3
movswq 0x3e614b(%rip), %rax    # 0x40f010
movzbl (%rax,%rbx), %esi
movl %esi, %edi
andl $0xf, %edi
shrl $0x4, %esi
callq 0x6e08b
leaq 0x427d93(%rip), %rdi    # 0x450c70
movzwl (%rdi,%r12,2), %eax
leaq 0x3a9ca7(%rip), %rcx    # 0x3d2b90
movzwl (%rcx,%r12,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %r14d
movq 0x20(%rsp), %rax
cmpl %eax, %r12d
jle 0x28f0a
movl %r14d, %ebp
jmp 0x2910d
incl %eax
movl %eax, 0x8(%rsp)
movl %r14d, %ebp
movzwl (%rdi,%r12,2), %ecx
leaq 0x3a9c71(%rip), %rax    # 0x3d2b90
movzwl (%rax,%r12,2), %eax
cmpw %ax, %cx
cmovgl %ecx, %eax
leaq 0x3aba5f(%rip), %rcx    # 0x3d4990
movswl (%rcx,%r12,2), %r13d
cmpw %r13w, %ax
jge 0x28f74
cwtl
leal -0x1(%rax), %ebx
cmpl %eax, %r14d
jge 0x28fcd
leal -0x1(%r14), %eax
cmpl %eax, %ebp
jge 0x29027
leal -0x1(%r12), %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3e289
incl %ebp
cmpl %ebp, %r14d
jne 0x28f5c
movl %ebx, %ebp
jmp 0x28ff4
movq %r15, %r13
leal -0x1(%r14), %ebx
cmpl %ebx, %ebp
jge 0x28f94
leal -0x1(%r12), %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3e289
cmpl %ebp, %ebx
jne 0x28f84
cmpq 0x20(%rsp), %r12
je 0x290f2
leaq 0x427cca(%rip), %rdi    # 0x450c70
movzwl 0x2(%rdi,%r12,2), %eax
leaq 0x3a9bdd(%rip), %rcx    # 0x3d2b90
movzwl 0x2(%rcx,%r12,2), %ecx
cmpw %cx, %ax
cmovgl %eax, %ecx
movswl %cx, %ebp
movl %ebp, %r14d
movq %r13, %r15
jmp 0x2908d
movq %rax, 0x10(%rsp)
cmpl %ebx, %ebp
jge 0x28feb
leal -0x1(%r12), %r15d
incl %ebp
movl %r15d, %edi
movl %ebp, %esi
callq 0x3e289
cmpl %ebp, %ebx
jne 0x28fdb
movq 0x10(%rsp), %rcx
cmpl %ecx, %ebp
jge 0x28ffd
leaq 0x3ad7c5(%rip), %r15    # 0x3d67c0
jmp 0x29029
movslq %ebp, %rax
movslq %ecx, %rcx
leaq 0x429d26(%rip), %rdx    # 0x452d30
leaq (%rdx,%rax,4), %rdx
incq %rax
leaq 0x3ad7a8(%rip), %r15    # 0x3d67c0
movl %r12d, (%rdx)
decq %rax
addq $-0x4, %rdx
cmpq %rcx, %rax
jg 0x29018
movl %ebx, %ebp
movq %r15, %rbx
cmpl %r13d, %r14d
jle 0x29049
leal -0x1(%r12), %r15d
decl %r14d
movl %r15d, %edi
movl %r14d, %esi
callq 0x3e289
cmpl %r13d, %r14d
jg 0x29036
cmpl %r13d, %r14d
jge 0x29083
movslq %r14d, %rax
movslq %r13d, %rcx
subq %rax, %rcx
shlq $0x2, %rax
xorl %edx, %edx
movq %rbx, %r15
leaq 0x427c09(%rip), %rdi    # 0x450c70
leaq 0x429cc2(%rip), %r8     # 0x452d30
leaq (%rax,%rdx,4), %rsi
movl %r12d, (%r8,%rsi)
incq %rdx
cmpq %rdx, %rcx
jne 0x2906e
addl %edx, %r14d
jmp 0x2908d
movq %rbx, %r15
leaq 0x427be3(%rip), %rdi    # 0x450c70
movl 0x3ea7b1(%rip), %eax    # 0x413844
addl %eax, 0x3ea7a7(%rip)    # 0x413840
movl 0x3ea799(%rip), %eax    # 0x413838
addl %eax, 0x3ea797(%rip)    # 0x41383c
incq %r12
cmpl %r12d, 0x8(%rsp)
jne 0x28f13
jmp 0x2910d
movl 0x3ea789(%rip), %eax    # 0x413844
addl %eax, 0x3ea77f(%rip)    # 0x413840
movl 0x3ea771(%rip), %eax    # 0x413838
addl %eax, 0x3ea76f(%rip)    # 0x41383c
movb 0x28(%rsp), %r12b
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x2916c
incl %ebp
movl %ebx, %edi
movl %ebp, %esi
callq 0x3e289
incl %ebp
cmpl %ebp, %r15d
jne 0x290e0
jmp 0x2916c
movl 0x3ea74c(%rip), %eax    # 0x413844
addl %eax, 0x3ea742(%rip)    # 0x413840
movl 0x3ea734(%rip), %eax    # 0x413838
addl %eax, 0x3ea732(%rip)    # 0x41383c
movq %r13, %r15
leal -0x1(%r14), %eax
cmpl %eax, %ebp
movq 0x20(%rsp), %rbx
jge 0x291bb
incl %ebp
movl %ebx, %edi
movl %ebp, %esi
callq 0x3e289
incl %ebp
cmpl %ebp, %r14d
jne 0x29120
jmp 0x291bb
movl 0x3ea709(%rip), %eax    # 0x413844
addl %eax, 0x3ea6ff(%rip)    # 0x413840
movl 0x3ea6f1(%rip), %eax    # 0x413838
addl %eax, 0x3ea6ef(%rip)    # 0x41383c
movb 0x28(%rsp), %r12b
leal -0x1(%r15), %eax
cmpl %eax, %ebp
jge 0x2916c
incl %ebp
movl %ebx, %edi
movl %ebp, %esi
callq 0x3e1c2
incl %ebp
cmpl %ebp, %r15d
jne 0x2915c
callq 0xab51
movl 0x58(%rsp), %ebp
leaq 0x3ad644(%rip), %r15    # 0x3d67c0
jmp 0x26bdd
movl 0x3ea6bd(%rip), %eax    # 0x413844
addl %eax, 0x3ea6b3(%rip)    # 0x413840
movl 0x3ea6a5(%rip), %eax    # 0x413838
addl %eax, 0x3ea6a3(%rip)    # 0x41383c
movq %r13, %r15
leal -0x1(%r14), %eax
cmpl %eax, %ebp
movq 0x20(%rsp), %rbx
jge 0x291bb
incl %ebp
movl %ebx, %edi
movl %ebp, %esi
callq 0x3e1c2
incl %ebp
cmpl %ebp, %r14d
jne 0x291ab
callq 0xab51
movq 0x18(%rsp), %r14
jmp 0x26e31