// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/kplib.c
// Function: kpngrend
static int kpngrend (const char *kfilebuf, int kfilength,
	intptr_t daframeplace, int dabytesperline, int daxres, int dayres,
	int daglobxoffs, int daglobyoffs)
{
	int i, j, k, bfinal, btype, hlit, hdist;
	unsigned int leng;
	int slidew, slider;
	//int qhuf0v, qhuf1v;

	if (!pnginited) { pnginited = 1; initpngtables(); }

	if ((*(unsigned int *)&kfilebuf[0] != LSWAPIB(0x474e5089)) || (*(int *)&kfilebuf[4] != LSWAPIB(0x0a1a0a0d)))
		return(-1); //"Invalid PNG file signature"
	filptr = (unsigned char *)&kfilebuf[8];

	trnsrgb = 0; filter1st = -1; filterest = 0;

	while (1)
	{
		leng = LSWAPIL(*(int *)&filptr[0]); i = *(int *)&filptr[4];
		filptr = &filptr[8];
		if (4+leng+((intptr_t)filptr-(intptr_t)kfilebuf) >= kfilength) return(-1); //Chunk length is OOB

		if ((unsigned)i == LSWAPIB(0x52444849)) //IHDR (must be first)
		{
			xsiz = LSWAPIL(*(int *)&filptr[0]); if (xsiz <= 0) return(-1);
			ysiz = LSWAPIL(*(int *)&filptr[4]); if (ysiz <= 0) return(-1);
			bitdepth = filptr[8]; if (!((1<<bitdepth)&0x116)) return(-1); //"Bit depth not supported"
			coltype = filptr[9]; if (!((1<<coltype)&0x5d)) return(-1); //"Color type not supported"
			if (filptr[10]) return(-1); //"Only *flate is supported"
			if (filptr[11]) return(-1); //"Filter not supported"
			if (filptr[12] >= 2) return(-1); //"Unsupported interlace type"
			intlac = filptr[12]*7; //0=no interlace/1=Adam7 interlace

				//Save code by making grayscale look like a palette color scheme
			if ((!coltype) || (coltype == 4))
			{
				j = 0xff000000; k = (255 / ((1<<bitdepth)-1))*0x10101;
				paleng = (1<<bitdepth);
				for(i=0;i<paleng;i++,j+=k) palcol[i] = LSWAPIB(j);
			}
		}
		else if ((unsigned)i == LSWAPIB(0x45544c50)) //PLTE (must be before IDAT)
		{
			paleng = leng/3;
			for(i=paleng-1;i>=0;i--) palcol[i] = LSWAPIB((LSWAPIL(*(int *)&filptr[i*3])>>8)|0xff000000);
		}
		else if ((unsigned)i == LSWAPIB(0x44474b62)) //bKGD (must be after PLTE and before IDAT)
		{
			switch(coltype)
			{
				case 0: case 4:
					bakcol = (((int)filptr[0]<<8)+(int)filptr[1])*255/((1<<bitdepth)-1);
					bakcol = bakcol*0x10101+0xff000000; break;
				case 2: case 6:
					if (bitdepth == 8)
						{ bakcol = (((int)filptr[1])<<16)+(((int)filptr[3])<<8)+((int)filptr[5])+0xff000000; }
					else
					{
						for(i=0,bakcol=0xff000000;i<3;i++)
							bakcol += ((((((int)filptr[i<<1])<<8)+((int)filptr[(i<<1)+1]))/257)<<(16-(i<<3)));
					}
					break;
				case 3:
					bakcol = palcol[filptr[0]]; break;
			}
			bakr = ((bakcol>>16)&255);
			bakg = ((bakcol>>8)&255);
			bakb = (bakcol&255);
			bakcol = LSWAPIB(bakcol);
		}
		else if ((unsigned)i == LSWAPIB(0x534e5274)) //tRNS (must be after PLTE and before IDAT)
		{
			switch(coltype)
			{
				case 0:
					if (bitdepth <= 8)
						palcol[(int)filptr[1]] &= LSWAPIB(0xffffff);
					//else {} // /c0 /d16 not yet supported
					break;
				case 2:
					if (bitdepth == 8)
						{ trnsrgb = LSWAPIB((((int)filptr[1])<<16)+(((int)filptr[3])<<8)+((int)filptr[5])+0xff000000); }
					//else {} //WARNING: PNG docs say: MUST compare all 48 bits :(
					break;
				case 3:
					for(i=min((int)leng,paleng)-1;i>=0;i--)
						palcol[i] &= LSWAPIB((((int)filptr[i])<<24)|0xffffff);
					break;
				default:;
			}
		}
		else if ((unsigned)i == LSWAPIB(0x54414449)) { break; }  //IDAT

		filptr = &filptr[leng+4]; //crc = LSWAPIL(*(int *)&filptr[-4]);
	}

		//Initialize this for the getbits() function
	zipfilmode = 0;
	filptr = &filptr[leng-4]; bitpos = -((leng-4)<<3); nfilptr = 0;
	//if (leng < 4) will it crash?

	frameplace = daframeplace;
	bytesperline = dabytesperline;
	xres = daxres;
	yres = dayres;
	globxoffs = daglobxoffs;
	globyoffs = daglobyoffs;

	switch (coltype)
	{
		case 4: xmn[0] = 1; xmn[1] = 0; break;
		case 2: xmn[0] = 1; xmn[1] = 2; xmn[2] = 0; break;
		case 6: xmn[0] = 1; xmn[1] = 2; xmn[2] = 3; xmn[3] = 0; break;
		default: xmn[0] = 0; break;
	}
	switch (bitdepth)
	{
		case 1: for(i=2;i<256;i++) palcol[i] = palcol[i&1]; break;
		case 2: for(i=4;i<256;i++) palcol[i] = palcol[i&3]; break;
		case 4: for(i=16;i<256;i++) palcol[i] = palcol[i&15]; break;
	}

		//coltype: bitdepth:  format:
		//  0     1,2,4,8,16  I
		//  2           8,16  RGB
		//  3     1,2,4,8     P
		//  4           8,16  IA
		//  6           8,16  RGBA
	xsizbpl = ((0x04021301>>(coltype<<2))&15)*xsiz;
	switch (bitdepth)
	{
		case 1: xsizbpl = ((xsizbpl+7)>>3); break;
		case 2: xsizbpl = ((xsizbpl+3)>>2); break;
		case 4: xsizbpl = ((xsizbpl+1)>>1); break;
	}
		//Tests to see if xsiz > allocated space in olinbuf
		//Note: xsizbpl gets re-written inside initpass()
	if ((xsizbpl+1)*sizeof(olinbuf[0]) > sizeof(olinbuf)) return(-1);

	initpass();

	slidew = 0; slider = 16384;
	zlibcompflags = getbits(16); //Actually 2 fields: 8:compmethflags, 8:addflagscheck
	do
	{
		numhufblocks++;
		bfinal = getbits(1); btype = getbits(2);
		if (btype == 0)
		{
			  //Raw (uncompressed)
			suckbits((-bitpos)&7);  //Synchronize to start of next byte
			i = getbits(16); if ((getbits(16)^i) != 0xffff) return(-1);
			for(;i;i--)
			{
				if (slidew >= slider)
				{
					putbuf(&slidebuf[(slider-16384)&32767],16384); slider += 16384;
					if ((yplc >= yres) && (intlac < 2)) goto kpngrend_goodret;
				}
				slidebuf[(slidew++)&32767] = (unsigned char)getbits(8);
			}
			continue;
		}
		if (btype == 3) continue;

		if (btype == 1) //Fixed Huffman
		{
			hlit = 288; hdist = 32; i = 0;
			for(;i<144;i++) clen[i] = 8; //Fixed bit sizes (literals)
			for(;i<256;i++) clen[i] = 9; //Fixed bit sizes (literals)
			for(;i<280;i++) clen[i] = 7; //Fixed bit sizes (EOI,lengths)
			for(;i<288;i++) clen[i] = 8; //Fixed bit sizes (lengths)
			for(;i<320;i++) clen[i] = 5; //Fixed bit sizes (distances)
		}
		else  //Dynamic Huffman
		{
			hlit = getbits(5)+257; hdist = getbits(5)+1; j = getbits(4)+4;
			for(i=0;i<j;i++) cclen[ccind[i]] = getbits(3);
			for(;i<19;i++) cclen[ccind[i]] = 0;
			hufgencode(cclen,19,ibuf0,nbuf0);

			j = 0; k = hlit+hdist;
			while (j < k)
			{
				i = hufgetsym(ibuf0,nbuf0);
				if (i < 16) { clen[j++] = i; continue; }
				if (i == 16)
					{ for(i=getbits(2)+3;i;i--) { clen[j] = clen[j-1]; j++; } }
				else
				{
					if (i == 17) i = getbits(3)+3; else i = getbits(7)+11;
					for(;i;i--) clen[j++] = 0;
				}
			}
		}

		hufgencode(clen,hlit,ibuf0,nbuf0);
		//qhuf0v = //hufgetsym_skipb related code
		qhufgencode(ibuf0,nbuf0,qhufval0,qhufbit0,LOGQHUFSIZ0);

		hufgencode(&clen[hlit],hdist,ibuf1,nbuf1);
		//qhuf1v = //hufgetsym_skipb related code
		qhufgencode(ibuf1,nbuf1,qhufval1,qhufbit1,LOGQHUFSIZ1);

		while (1)
		{
			if (slidew >= slider)
			{
				putbuf(&slidebuf[(slider-16384)&32767],16384); slider += 16384;
				if ((yplc >= yres) && (intlac < 2)) goto kpngrend_goodret;
			}

			k = peekbits(LOGQHUFSIZ0);
			if (qhufbit0[k]) { i = qhufval0[k]; suckbits((int)qhufbit0[k]); } else i = hufgetsym(ibuf0,nbuf0);
			//else i = hufgetsym_skipb(ibuf0,nbuf0,LOGQHUFSIZ0,qhuf0v); //hufgetsym_skipb related code

			if (i < 256) { slidebuf[(slidew++)&32767] = (unsigned char)i; continue; }
			if (i == 256) break;
			i = getbits(hxbit[i+30-257][0]) + hxbit[i+30-257][1];

			k = peekbits(LOGQHUFSIZ1);
			if (qhufbit1[k]) { j = qhufval1[k]; suckbits((int)qhufbit1[k]); } else j = hufgetsym(ibuf1,nbuf1);
			//else j = hufgetsym_skipb(ibuf1,nbuf1,LOGQHUFSIZ1,qhuf1v); //hufgetsym_skipb related code

			j = getbits(hxbit[j][0]) + hxbit[j][1];
			i += slidew; do { slidebuf[slidew&32767] = slidebuf[(slidew-j)&32767]; slidew++; } while (slidew < i);
		}
	} while (!bfinal);

	slider -= 16384;
	if (!((slider^slidew)&32768))
		putbuf(&slidebuf[slider&32767],slidew-slider);
	else
	{
		putbuf(&slidebuf[slider&32767],(-slider)&32767);
		putbuf(slidebuf,slidew&32767);
	}

kpngrend_goodret:;
	if (!(filterest&~(1<<filter1st))) filtype = filter1st;
	else if ((filter1st == 1) && (!(filterest&~(1<<3)))) filtype = 3;
	else filtype = 5;
	if (coltype == 4) paleng = 0; //For /c4, palcol/paleng used as LUT for "*0x10101": alpha is invalid!
	return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl 0x18(%rbp), %eax
movl 0x10(%rbp), %eax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movl %r8d, -0x28(%rbp)
movl %r9d, -0x2c(%rbp)
cmpb $0x0, 0x546b0a(%rip)    # 0x5a8fb8
jne 0x624bc
movb $0x1, 0x546b01(%rip)    # 0x5a8fb8
callq 0x686c0
movq -0x10(%rbp), %rax
cmpl $0x474e5089, (%rax)     # imm = 0x474E5089
jne 0x624d5
movq -0x10(%rbp), %rax
cmpl $0xa1a0a0d, 0x4(%rax)   # imm = 0xA1A0A0D
je 0x624e1
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, 0x556c18(%rip)    # 0x5b9108
movl $0x0, 0x56088a(%rip)    # 0x5c2d84
movl $0xffffffff, 0x560884(%rip) # imm = 0xFFFFFFFF
movl $0x0, 0x56087e(%rip)    # 0x5c2d8c
movq 0x556bf3(%rip), %rax    # 0x5b9108
movl (%rax), %edi
callq 0x620c0
movl %eax, -0x4c(%rbp)
movq 0x556be2(%rip), %rax    # 0x5b9108
movl 0x4(%rax), %eax
movl %eax, -0x30(%rbp)
movq 0x556bd5(%rip), %rax    # 0x5b9108
addq $0x8, %rax
movq %rax, 0x556bca(%rip)    # 0x5b9108
movl -0x4c(%rbp), %eax
addl $0x4, %eax
movl %eax, %eax
movq 0x556bbb(%rip), %rcx    # 0x5b9108
movq -0x10(%rbp), %rdx
subq %rdx, %rcx
addq %rcx, %rax
movslq -0x14(%rbp), %rcx
cmpq %rcx, %rax
jl 0x6256c
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
cmpl $0x52444849, -0x30(%rbp) # imm = 0x52444849
jne 0x62726
movq 0x556b88(%rip), %rax    # 0x5b9108
movl (%rax), %edi
callq 0x620c0
movl %eax, 0x560803(%rip)    # 0x5c2d90
cmpl $0x0, 0x5607fc(%rip)    # 0x5c2d90
jg 0x625a2
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556b5f(%rip), %rax    # 0x5b9108
movl 0x4(%rax), %edi
callq 0x620c0
movl %eax, 0x5607dd(%rip)    # 0x5c2d94
cmpl $0x0, 0x5607d6(%rip)    # 0x5c2d94
jg 0x625cc
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556b35(%rip), %rax    # 0x5b9108
movb 0x8(%rax), %al
movb %al, 0x5607a5(%rip)     # 0x5c2d81
movsbl 0x56079e(%rip), %ecx    # 0x5c2d81
movl $0x1, %eax
shll %cl, %eax
andl $0x116, %eax            # imm = 0x116
cmpl $0x0, %eax
jne 0x62600
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556b01(%rip), %rax    # 0x5b9108
movb 0x9(%rax), %al
movb %al, 0x560770(%rip)     # 0x5c2d80
movsbl 0x560769(%rip), %ecx    # 0x5c2d80
movl $0x1, %eax
shll %cl, %eax
andl $0x5d, %eax
cmpl $0x0, %eax
jne 0x62632
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556acf(%rip), %rax    # 0x5b9108
cmpb $0x0, 0xa(%rax)
je 0x6264b
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556ab6(%rip), %rax    # 0x5b9108
cmpb $0x0, 0xb(%rax)
je 0x62664
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556a9d(%rip), %rax    # 0x5b9108
movzbl 0xc(%rax), %eax
cmpl $0x2, %eax
jl 0x62680
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
movq 0x556a81(%rip), %rax    # 0x5b9108
movzbl 0xc(%rax), %eax
imull $0x7, %eax, %eax
movl %eax, 0x560704(%rip)    # 0x5c2d98
cmpb $0x0, 0x5606e5(%rip)    # 0x5c2d80
je 0x626a9
movsbl 0x5606dc(%rip), %eax    # 0x5c2d80
cmpl $0x4, %eax
jne 0x62721
movl $0xff000000, -0x34(%rbp) # imm = 0xFF000000
movsbl 0x5606ca(%rip), %ecx    # 0x5c2d81
movl $0x1, %eax
shll %cl, %eax
movl %eax, %ecx
subl $0x1, %ecx
movl $0xff, %eax
cltd
idivl %ecx
imull $0x10101, %eax, %eax    # imm = 0x10101
movl %eax, -0x38(%rbp)
movsbl 0x5606a6(%rip), %ecx    # 0x5c2d81
movl $0x1, %eax
shll %cl, %eax
movl %eax, 0x546468(%rip)    # 0x5a8b50
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl 0x546458(%rip), %eax    # 0x5a8b50
jge 0x6271f
movl -0x34(%rbp), %edx
movslq -0x30(%rbp), %rcx
leaq 0x560278(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movl -0x38(%rbp), %eax
addl -0x34(%rbp), %eax
movl %eax, -0x34(%rbp)
jmp 0x626ef
jmp 0x62721
jmp 0x62a74
cmpl $0x45544c50, -0x30(%rbp) # imm = 0x45544C50
jne 0x62792
movl -0x4c(%rbp), %eax
movl $0x3, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, 0x54640f(%rip)    # 0x5a8b50
movl 0x546409(%rip), %eax    # 0x5a8b50
subl $0x1, %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
jl 0x6278d
movq 0x5569ae(%rip), %rax    # 0x5b9108
imull $0x3, -0x30(%rbp), %ecx
movslq %ecx, %rcx
movl (%rax,%rcx), %edi
callq 0x620c0
movl %eax, %edx
shrl $0x8, %edx
orl $0xff000000, %edx       # imm = 0xFF000000
movslq -0x30(%rbp), %rcx
leaq 0x560201(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x6274d
jmp 0x62a72
cmpl $0x44474b62, -0x30(%rbp) # imm = 0x44474B62
jne 0x62940
movsbl 0x5605da(%rip), %eax    # 0x5c2d80
movl %eax, %ecx
movq %rcx, -0x60(%rbp)
subl $0x6, %eax
ja 0x628f6
movq -0x60(%rbp), %rax
leaq 0x50eb0(%rip), %rcx     # 0xb3670
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x556938(%rip), %rax    # 0x5b9108
movzbl (%rax), %eax
shll $0x8, %eax
movq 0x55692b(%rip), %rcx    # 0x5b9108
movzbl 0x1(%rcx), %ecx
addl %ecx, %eax
imull $0xff, %eax, %eax
movsbl 0x560591(%rip), %ecx    # 0x5c2d81
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
cltd
idivl %ecx
movl %eax, 0x54634f(%rip)    # 0x5a8b54
imull $0x10101, 0x546345(%rip), %eax # imm = 0x10101
addl $0xff000000, %eax       # imm = 0xFF000000
movl %eax, 0x54633a(%rip)    # 0x5a8b54
jmp 0x628f6
movsbl 0x56055b(%rip), %eax    # 0x5c2d81
cmpl $0x8, %eax
jne 0x62863
movq 0x5568d6(%rip), %rax    # 0x5b9108
movzbl 0x1(%rax), %eax
shll $0x10, %eax
movq 0x5568c8(%rip), %rcx    # 0x5b9108
movzbl 0x3(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq 0x5568b8(%rip), %rcx    # 0x5b9108
movzbl 0x5(%rcx), %ecx
addl %ecx, %eax
addl $0xff000000, %eax       # imm = 0xFF000000
movl %eax, 0x5462f3(%rip)    # 0x5a8b54
jmp 0x628d8
movl $0x0, -0x30(%rbp)
movl $0xff000000, 0x5462e0(%rip) # imm = 0xFF000000
cmpl $0x3, -0x30(%rbp)
jge 0x628d6
movq 0x556887(%rip), %rax    # 0x5b9108
movl -0x30(%rbp), %ecx
shll %ecx
movslq %ecx, %rcx
movzbl (%rax,%rcx), %eax
shll $0x8, %eax
movq 0x556871(%rip), %rcx    # 0x5b9108
movl -0x30(%rbp), %edx
shll %edx
addl $0x1, %edx
movslq %edx, %rdx
movzbl (%rcx,%rdx), %ecx
addl %ecx, %eax
movl $0x101, %ecx            # imm = 0x101
cltd
idivl %ecx
movl -0x30(%rbp), %edx
shll $0x3, %edx
movl $0x10, %ecx
subl %edx, %ecx
shll %cl, %eax
addl 0x54628f(%rip), %eax    # 0x5a8b54
movl %eax, 0x546289(%rip)    # 0x5a8b54
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62874
jmp 0x628d8
jmp 0x628f6
movq 0x556827(%rip), %rax    # 0x5b9108
movzbl (%rax), %eax
movl %eax, %ecx
leaq 0x560093(%rip), %rax    # 0x5c2980
movl (%rax,%rcx,4), %eax
movl %eax, 0x54625e(%rip)    # 0x5a8b54
movl 0x546258(%rip), %eax    # 0x5a8b54
sarl $0x10, %eax
andl $0xff, %eax
movl %eax, 0x7e972(%rip)     # 0xe127c
movl 0x546244(%rip), %eax    # 0x5a8b54
sarl $0x8, %eax
andl $0xff, %eax
movl %eax, 0x7e962(%rip)     # 0xe1280
movl 0x546230(%rip), %eax    # 0x5a8b54
andl $0xff, %eax
movl %eax, 0x7e955(%rip)     # 0xe1284
movl 0x54621f(%rip), %eax    # 0x5a8b54
movl %eax, 0x546219(%rip)    # 0x5a8b54
jmp 0x62a70
cmpl $0x534e5274, -0x30(%rbp) # imm = 0x534E5274
jne 0x62a61
movsbl 0x56042c(%rip), %eax    # 0x5c2d80
movl %eax, -0x64(%rbp)
testl %eax, %eax
je 0x62978
jmp 0x6295d
movl -0x64(%rbp), %eax
subl $0x2, %eax
je 0x629b1
jmp 0x62967
movl -0x64(%rbp), %eax
subl $0x3, %eax
je 0x629f5
jmp 0x62a5d
movsbl 0x560402(%rip), %eax    # 0x5c2d81
cmpl $0x8, %eax
jg 0x629ac
movq 0x55677d(%rip), %rax    # 0x5b9108
movzbl 0x1(%rax), %eax
movslq %eax, %rcx
leaq 0x55ffe7(%rip), %rax    # 0x5c2980
movl (%rax,%rcx,4), %edx
andl $0xffffff, %edx         # imm = 0xFFFFFF
leaq 0x55ffd7(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
jmp 0x62a5f
movsbl 0x5603c9(%rip), %eax    # 0x5c2d81
cmpl $0x8, %eax
jne 0x629f3
movq 0x556744(%rip), %rax    # 0x5b9108
movzbl 0x1(%rax), %eax
shll $0x10, %eax
movq 0x556736(%rip), %rcx    # 0x5b9108
movzbl 0x3(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq 0x556726(%rip), %rcx    # 0x5b9108
movzbl 0x5(%rcx), %ecx
addl %ecx, %eax
addl $0xff000000, %eax       # imm = 0xFF000000
movl %eax, 0x560391(%rip)    # 0x5c2d84
jmp 0x62a5f
movl -0x4c(%rbp), %eax
cmpl 0x546152(%rip), %eax    # 0x5a8b50
jge 0x62a08
movl -0x4c(%rbp), %eax
movl %eax, -0x68(%rbp)
jmp 0x62a11
movl 0x546142(%rip), %eax    # 0x5a8b50
movl %eax, -0x68(%rbp)
movl -0x68(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
jl 0x62a5b
movq 0x5566e1(%rip), %rax    # 0x5b9108
movslq -0x30(%rbp), %rcx
movzbl (%rax,%rcx), %edx
shll $0x18, %edx
orl $0xffffff, %edx         # imm = 0xFFFFFF
movslq -0x30(%rbp), %rcx
leaq 0x55ff3d(%rip), %rax    # 0x5c2980
andl (%rax,%rcx,4), %edx
leaq 0x55ff33(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62a1a
jmp 0x62a5f
jmp 0x62a5f
jmp 0x62a6e
cmpl $0x54414449, -0x30(%rbp) # imm = 0x54414449
jne 0x62a6c
jmp 0x62a92
jmp 0x62a6e
jmp 0x62a70
jmp 0x62a72
jmp 0x62a74
movq 0x55668d(%rip), %rax    # 0x5b9108
movl -0x4c(%rbp), %ecx
addl $0x4, %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, 0x55667b(%rip)    # 0x5b9108
jmp 0x6250e
movl $0x0, 0x546644(%rip)    # 0x5a90e0
movq 0x556665(%rip), %rax    # 0x5b9108
movl -0x4c(%rbp), %ecx
addl $-0x4, %ecx
addq %rcx, %rax
movq %rax, 0x556655(%rip)    # 0x5b9108
movl -0x4c(%rbp), %ecx
shll $0x3, %ecx
movl $0x20, %eax
subl %ecx, %eax
movl %eax, 0x55663a(%rip)    # 0x5b9100
movq $0x0, 0x5602cf(%rip) # 0x5c2da0
movq -0x20(%rbp), %rax
movq %rax, 0x5602cc(%rip)    # 0x5c2da8
movl -0x24(%rbp), %eax
movl %eax, 0x5602cb(%rip)    # 0x5c2db0
movl -0x28(%rbp), %eax
movl %eax, 0x5602c6(%rip)    # 0x5c2db4
movl -0x2c(%rbp), %eax
movl %eax, 0x5602c1(%rip)    # 0x5c2db8
movl 0x10(%rbp), %eax
movl %eax, 0x5602bc(%rip)    # 0x5c2dbc
movl 0x18(%rbp), %eax
movl %eax, 0x5602b7(%rip)    # 0x5c2dc0
movsbl 0x560270(%rip), %eax    # 0x5c2d80
movl %eax, -0x6c(%rbp)
subl $0x2, %eax
je 0x62b44
jmp 0x62b1a
movl -0x6c(%rbp), %eax
subl $0x4, %eax
je 0x62b2e
jmp 0x62b24
movl -0x6c(%rbp), %eax
subl $0x6, %eax
je 0x62b64
jmp 0x62b8e
movl $0x1, 0x560298(%rip)    # 0x5c2dd0
movl $0x0, 0x560292(%rip)    # 0x5c2dd4
jmp 0x62b98
movl $0x1, 0x560282(%rip)    # 0x5c2dd0
movl $0x2, 0x56027c(%rip)    # 0x5c2dd4
movl $0x0, 0x560276(%rip)    # 0x5c2dd8
jmp 0x62b98
movl $0x1, 0x560262(%rip)    # 0x5c2dd0
movl $0x2, 0x56025c(%rip)    # 0x5c2dd4
movl $0x3, 0x560256(%rip)    # 0x5c2dd8
movl $0x0, 0x560250(%rip)    # 0x5c2ddc
jmp 0x62b98
movl $0x0, 0x560238(%rip)    # 0x5c2dd0
movsbl 0x5601e2(%rip), %eax    # 0x5c2d81
movl %eax, -0x70(%rbp)
subl $0x1, %eax
je 0x62bc4
jmp 0x62ba9
movl -0x70(%rbp), %eax
subl $0x2, %eax
je 0x62c02
jmp 0x62bb3
movl -0x70(%rbp), %eax
subl $0x4, %eax
je 0x62c40
jmp 0x62c7e
movl $0x2, -0x30(%rbp)
cmpl $0x100, -0x30(%rbp)     # imm = 0x100
jge 0x62c00
movl -0x30(%rbp), %eax
andl $0x1, %eax
movslq %eax, %rcx
leaq 0x55fd9c(%rip), %rax    # 0x5c2980
movl (%rax,%rcx,4), %edx
movslq -0x30(%rbp), %rcx
leaq 0x55fd8e(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62bcb
jmp 0x62c7e
movl $0x4, -0x30(%rbp)
cmpl $0x100, -0x30(%rbp)     # imm = 0x100
jge 0x62c3e
movl -0x30(%rbp), %eax
andl $0x3, %eax
movslq %eax, %rcx
leaq 0x55fd5e(%rip), %rax    # 0x5c2980
movl (%rax,%rcx,4), %edx
movslq -0x30(%rbp), %rcx
leaq 0x55fd50(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62c09
jmp 0x62c7e
movl $0x10, -0x30(%rbp)
cmpl $0x100, -0x30(%rbp)     # imm = 0x100
jge 0x62c7c
movl -0x30(%rbp), %eax
andl $0xf, %eax
movslq %eax, %rcx
leaq 0x55fd20(%rip), %rax    # 0x5c2980
movl (%rax,%rcx,4), %edx
movslq -0x30(%rbp), %rcx
leaq 0x55fd12(%rip), %rax    # 0x5c2980
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62c47
jmp 0x62c7e
movb 0x5600fc(%rip), %cl     # 0x5c2d80
shlb $0x2, %cl
movl $0x4021301, %eax        # imm = 0x4021301
shrl %cl, %eax
andl $0x7, %eax
movl 0x5600f9(%rip), %ecx    # 0x5c2d90
imull %ecx, %eax
movl %eax, 0x560140(%rip)    # 0x5c2de0
movsbl 0x5600da(%rip), %eax    # 0x5c2d81
movl %eax, -0x74(%rbp)
subl $0x1, %eax
je 0x62cc5
jmp 0x62cb1
movl -0x74(%rbp), %eax
subl $0x2, %eax
je 0x62cd9
jmp 0x62cbb
movl -0x74(%rbp), %eax
subl $0x4, %eax
je 0x62ced
jmp 0x62cfe
movl 0x560115(%rip), %eax    # 0x5c2de0
addl $0x7, %eax
sarl $0x3, %eax
movl %eax, 0x560109(%rip)    # 0x5c2de0
jmp 0x62cfe
movl 0x560101(%rip), %eax    # 0x5c2de0
addl $0x3, %eax
sarl $0x2, %eax
movl %eax, 0x5600f5(%rip)    # 0x5c2de0
jmp 0x62cfe
movl 0x5600ed(%rip), %eax    # 0x5c2de0
addl $0x1, %eax
sarl %eax
movl %eax, 0x5600e2(%rip)    # 0x5c2de0
movl 0x5600dc(%rip), %eax    # 0x5c2de0
addl $0x1, %eax
cltq
shlq $0x0, %rax
cmpq $0x10000, %rax          # imm = 0x10000
jbe 0x62d21
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
callq 0x6a010
movl $0x0, -0x50(%rbp)
movl $0x4000, -0x54(%rbp)    # imm = 0x4000
movl $0x10, %edi
callq 0x69980
movl %eax, 0x545e14(%rip)    # 0x5a8b58
movl 0x545e12(%rip), %eax    # 0x5a8b5c
addl $0x1, %eax
movl %eax, 0x545e09(%rip)    # 0x5a8b5c
movl $0x1, %edi
callq 0x69980
movl %eax, -0x3c(%rbp)
movl $0x2, %edi
callq 0x69980
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
jne 0x62e50
xorl %edi, %edi
subl 0x556381(%rip), %edi    # 0x5b9100
andl $0x7, %edi
callq 0x699b0
movl $0x10, %edi
callq 0x69980
movl %eax, -0x30(%rbp)
movl $0x10, %edi
callq 0x69980
xorl -0x30(%rbp), %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0x62db4
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x63490
jmp 0x62db6
cmpl $0x0, -0x30(%rbp)
je 0x62e4b
movl -0x50(%rbp), %eax
cmpl -0x54(%rbp), %eax
jl 0x62e14
movl -0x54(%rbp), %eax
subl $0x4000, %eax           # imm = 0x4000
andl $0x7fff, %eax           # imm = 0x7FFF
cltq
leaq 0x556332(%rip), %rdi    # 0x5b9110
addq %rax, %rdi
movl $0x4000, %esi           # imm = 0x4000
callq 0x6a4e0
movl -0x54(%rbp), %eax
addl $0x4000, %eax           # imm = 0x4000
movl %eax, -0x54(%rbp)
movl 0x55ffe8(%rip), %eax    # 0x5c2de4
cmpl 0x55ffb6(%rip), %eax    # 0x5c2db8
jl 0x62e12
cmpl $0x2, 0x55ff8d(%rip)    # 0x5c2d98
jge 0x62e12
jmp 0x6341d
jmp 0x62e14
movl $0x8, %edi
callq 0x69980
movb %al, %dl
movl -0x50(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x50(%rbp)
andl $0x7fff, %eax           # imm = 0x7FFF
movslq %eax, %rcx
leaq 0x5562d6(%rip), %rax    # 0x5b9110
movb %dl, (%rax,%rcx)
movl -0x30(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62db6
jmp 0x63395
cmpl $0x3, -0x40(%rbp)
jne 0x62e5b
jmp 0x63395
cmpl $0x1, -0x40(%rbp)
jne 0x62f45
movl $0x120, -0x44(%rbp)     # imm = 0x120
movl $0x20, -0x48(%rbp)
movl $0x0, -0x30(%rbp)
cmpl $0x90, -0x30(%rbp)
jge 0x62ea0
movslq -0x30(%rbp), %rcx
leaq 0x55e282(%rip), %rax    # 0x5c1110
movl $0x8, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62e7a
jmp 0x62ea2
cmpl $0x100, -0x30(%rbp)     # imm = 0x100
jge 0x62ec8
movslq -0x30(%rbp), %rcx
leaq 0x55e25a(%rip), %rax    # 0x5c1110
movl $0x9, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62ea2
jmp 0x62eca
cmpl $0x118, -0x30(%rbp)     # imm = 0x118
jge 0x62ef0
movslq -0x30(%rbp), %rcx
leaq 0x55e232(%rip), %rax    # 0x5c1110
movl $0x7, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62eca
jmp 0x62ef2
cmpl $0x120, -0x30(%rbp)     # imm = 0x120
jge 0x62f18
movslq -0x30(%rbp), %rcx
leaq 0x55e20a(%rip), %rax    # 0x5c1110
movl $0x8, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62ef2
jmp 0x62f1a
cmpl $0x140, -0x30(%rbp)     # imm = 0x140
jge 0x62f40
movslq -0x30(%rbp), %rcx
leaq 0x55e1e2(%rip), %rax    # 0x5c1110
movl $0x5, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62f1a
jmp 0x6310d
movl $0x5, %edi
callq 0x69980
addl $0x101, %eax            # imm = 0x101
movl %eax, -0x44(%rbp)
movl $0x5, %edi
callq 0x69980
addl $0x1, %eax
movl %eax, -0x48(%rbp)
movl $0x4, %edi
callq 0x69980
addl $0x4, %eax
movl %eax, -0x34(%rbp)
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x62fb6
movl $0x3, %edi
callq 0x69980
movl %eax, %edx
movslq -0x30(%rbp), %rcx
leaq 0x7e293(%rip), %rax     # 0xe1230
movslq (%rax,%rcx,4), %rcx
leaq 0x55e668(%rip), %rax    # 0x5c1610
movl %edx, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62f7e
jmp 0x62fb8
cmpl $0x13, -0x30(%rbp)
jge 0x62fe6
movslq -0x30(%rbp), %rcx
leaq 0x7e267(%rip), %rax     # 0xe1230
movslq (%rax,%rcx,4), %rcx
leaq 0x55e63c(%rip), %rax    # 0x5c1610
movl $0x0, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x62fb8
leaq 0x55e623(%rip), %rdi    # 0x5c1610
movl $0x13, %esi
leaq 0x55e667(%rip), %rdx    # 0x5c1660
leaq 0x55eae0(%rip), %rcx    # 0x5c1ae0
callq 0x699e0
movl $0x0, -0x34(%rbp)
movl -0x44(%rbp), %eax
addl -0x48(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x38(%rbp), %eax
jge 0x6310b
leaq 0x55e638(%rip), %rdi    # 0x5c1660
leaq 0x55eab1(%rip), %rsi    # 0x5c1ae0
callq 0x69b10
movl %eax, -0x30(%rbp)
cmpl $0x10, -0x30(%rbp)
jge 0x6305a
movl -0x30(%rbp), %edx
movl -0x34(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x34(%rbp)
movslq %eax, %rcx
leaq 0x55e0bb(%rip), %rax    # 0x5c1110
movl %edx, (%rax,%rcx,4)
jmp 0x63015
cmpl $0x10, -0x30(%rbp)
jne 0x630ad
movl $0x2, %edi
callq 0x69980
addl $0x3, %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
je 0x630ab
movl -0x34(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rcx
leaq 0x55e08a(%rip), %rax    # 0x5c1110
movl (%rax,%rcx,4), %edx
movslq -0x34(%rbp), %rcx
leaq 0x55e07c(%rip), %rax    # 0x5c1110
movl %edx, (%rax,%rcx,4)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
movl -0x30(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x63070
jmp 0x63106
cmpl $0x11, -0x30(%rbp)
jne 0x630c5
movl $0x3, %edi
callq 0x69980
addl $0x3, %eax
movl %eax, -0x30(%rbp)
jmp 0x630d5
movl $0x7, %edi
callq 0x69980
addl $0xb, %eax
movl %eax, -0x30(%rbp)
jmp 0x630d7
cmpl $0x0, -0x30(%rbp)
je 0x63104
movl -0x34(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x34(%rbp)
movslq %eax, %rcx
leaq 0x55e01e(%rip), %rax    # 0x5c1110
movl $0x0, (%rax,%rcx,4)
movl -0x30(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x630d7
jmp 0x63106
jmp 0x63015
jmp 0x6310d
movl -0x44(%rbp), %esi
leaq 0x55dff9(%rip), %rdi    # 0x5c1110
leaq 0x55e542(%rip), %rdx    # 0x5c1660
leaq 0x55e9bb(%rip), %rcx    # 0x5c1ae0
callq 0x699e0
leaq 0x55e52f(%rip), %rdi    # 0x5c1660
leaq 0x55e9a8(%rip), %rsi    # 0x5c1ae0
leaq 0x55ea21(%rip), %rdx    # 0x5c1b60
leaq 0x55f21a(%rip), %rcx    # 0x5c2360
movl $0x9, %r8d
callq 0x69ba0
movslq -0x44(%rbp), %rax
leaq 0x55dfb4(%rip), %rdi    # 0x5c1110
shlq $0x2, %rax
addq %rax, %rdi
movl -0x48(%rbp), %esi
leaq 0x55f3f3(%rip), %rdx    # 0x5c2560
leaq 0x55f46c(%rip), %rcx    # 0x5c25e0
callq 0x699e0
leaq 0x55f3e0(%rip), %rdi    # 0x5c2560
leaq 0x55f459(%rip), %rsi    # 0x5c25e0
leaq 0x55f4d2(%rip), %rdx    # 0x5c2660
leaq 0x55f5cb(%rip), %rcx    # 0x5c2760
movl $0x6, %r8d
callq 0x69ba0
movl -0x50(%rbp), %eax
cmpl -0x54(%rbp), %eax
jl 0x631f4
movl -0x54(%rbp), %eax
subl $0x4000, %eax           # imm = 0x4000
andl $0x7fff, %eax           # imm = 0x7FFF
cltq
leaq 0x555f52(%rip), %rdi    # 0x5b9110
addq %rax, %rdi
movl $0x4000, %esi           # imm = 0x4000
callq 0x6a4e0
movl -0x54(%rbp), %eax
addl $0x4000, %eax           # imm = 0x4000
movl %eax, -0x54(%rbp)
movl 0x55fc08(%rip), %eax    # 0x5c2de4
cmpl 0x55fbd6(%rip), %eax    # 0x5c2db8
jl 0x631f2
cmpl $0x2, 0x55fbad(%rip)    # 0x5c2d98
jge 0x631f2
jmp 0x6341d
jmp 0x631f4
movl $0x9, %edi
callq 0x69cd0
movl %eax, -0x38(%rbp)
movslq -0x38(%rbp), %rcx
leaq 0x55f154(%rip), %rax    # 0x5c2360
cmpb $0x0, (%rax,%rcx)
je 0x63239
movslq -0x38(%rbp), %rcx
leaq 0x55e943(%rip), %rax    # 0x5c1b60
movl (%rax,%rcx,4), %eax
movl %eax, -0x30(%rbp)
movslq -0x38(%rbp), %rcx
leaq 0x55f132(%rip), %rax    # 0x5c2360
movzbl (%rax,%rcx), %edi
callq 0x699b0
jmp 0x6324f
leaq 0x55e420(%rip), %rdi    # 0x5c1660
leaq 0x55e899(%rip), %rsi    # 0x5c1ae0
callq 0x69b10
movl %eax, -0x30(%rbp)
cmpl $0x100, -0x30(%rbp)     # imm = 0x100
jge 0x6327f
movl -0x30(%rbp), %eax
movb %al, %dl
movl -0x50(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x50(%rbp)
andl $0x7fff, %eax           # imm = 0x7FFF
movslq %eax, %rcx
leaq 0x555e99(%rip), %rax    # 0x5b9110
movb %dl, (%rax,%rcx)
jmp 0x631a0
cmpl $0x100, -0x30(%rbp)     # imm = 0x100
jne 0x6328d
jmp 0x63393
movl -0x30(%rbp), %eax
addl $0x1e, %eax
subl $0x101, %eax            # imm = 0x101
movslq %eax, %rcx
leaq 0x55f4fe(%rip), %rax    # 0x5c27a0
movl (%rax,%rcx,8), %edi
callq 0x69980
movl -0x30(%rbp), %ecx
addl $0x1e, %ecx
subl $0x101, %ecx            # imm = 0x101
movslq %ecx, %rdx
leaq 0x55f4e0(%rip), %rcx    # 0x5c27a0
addl 0x4(%rcx,%rdx,8), %eax
movl %eax, -0x30(%rbp)
movl $0x6, %edi
callq 0x69cd0
movl %eax, -0x38(%rbp)
movslq -0x38(%rbp), %rcx
leaq 0x55f481(%rip), %rax    # 0x5c2760
cmpb $0x0, (%rax,%rcx)
je 0x6330c
movslq -0x38(%rbp), %rcx
leaq 0x55f370(%rip), %rax    # 0x5c2660
movl (%rax,%rcx,4), %eax
movl %eax, -0x34(%rbp)
movslq -0x38(%rbp), %rcx
leaq 0x55f45f(%rip), %rax    # 0x5c2760
movzbl (%rax,%rcx), %edi
callq 0x699b0
jmp 0x63322
leaq 0x55f24d(%rip), %rdi    # 0x5c2560
leaq 0x55f2c6(%rip), %rsi    # 0x5c25e0
callq 0x69b10
movl %eax, -0x34(%rbp)
movslq -0x34(%rbp), %rcx
leaq 0x55f473(%rip), %rax    # 0x5c27a0
movl (%rax,%rcx,8), %edi
callq 0x69980
movslq -0x34(%rbp), %rdx
leaq 0x55f460(%rip), %rcx    # 0x5c27a0
addl 0x4(%rcx,%rdx,8), %eax
movl %eax, -0x34(%rbp)
movl -0x50(%rbp), %eax
addl -0x30(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x50(%rbp), %eax
subl -0x34(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movslq %eax, %rcx
leaq 0x555dab(%rip), %rax    # 0x5b9110
movb (%rax,%rcx), %dl
movl -0x50(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
movslq %eax, %rcx
leaq 0x555d96(%rip), %rax    # 0x5b9110
movb %dl, (%rax,%rcx)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x30(%rbp), %eax
jl 0x63350
jmp 0x631a0
jmp 0x63395
cmpl $0x0, -0x3c(%rbp)
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x62d44
movl -0x54(%rbp), %eax
subl $0x4000, %eax           # imm = 0x4000
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
xorl -0x50(%rbp), %eax
andl $0x8000, %eax           # imm = 0x8000
cmpl $0x0, %eax
jne 0x633e2
movl -0x54(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
cltq
leaq 0x555d3e(%rip), %rdi    # 0x5b9110
addq %rax, %rdi
movl -0x50(%rbp), %esi
subl -0x54(%rbp), %esi
callq 0x6a4e0
jmp 0x6341b
movl -0x54(%rbp), %eax
andl $0x7fff, %eax           # imm = 0x7FFF
cltq
leaq 0x555d1d(%rip), %rdi    # 0x5b9110
addq %rax, %rdi
xorl %esi, %esi
subl -0x54(%rbp), %esi
andl $0x7fff, %esi           # imm = 0x7FFF
callq 0x6a4e0
movl -0x50(%rbp), %esi
andl $0x7fff, %esi           # imm = 0x7FFF
leaq 0x555cfa(%rip), %rdi    # 0x5b9110
callq 0x6a4e0
jmp 0x6341d
movl 0x55f969(%rip), %eax    # 0x5c2d8c
movl 0x55f95f(%rip), %ecx    # 0x5c2d88
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x6344a
movl 0x55f946(%rip), %eax    # 0x5c2d88
movb %al, 0x545718(%rip)     # 0x5a8b60
jmp 0x63473
cmpl $0x1, 0x55f937(%rip)    # 0x5c2d88
jne 0x6346a
movl 0x55f933(%rip), %eax    # 0x5c2d8c
andl $-0x9, %eax
cmpl $0x0, %eax
jne 0x6346a
movb $0x3, 0x5456f8(%rip)    # 0x5a8b60
jmp 0x63471
movb $0x5, 0x5456ef(%rip)    # 0x5a8b60
jmp 0x63473
movsbl 0x55f906(%rip), %eax    # 0x5c2d80
cmpl $0x4, %eax
jne 0x63489
movl $0x0, 0x5456c7(%rip)    # 0x5a8b50
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)