// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/engine.c
// Function: florscan
static void florscan(int x1, int x2, int sectnum)
{
	int i, j, ox, oy, x, y1, y2, twall, bwall;
	sectortype *sec;

	sec = &sector[sectnum];
	if (palookup[sec->floorpal] != globalpalwritten)
	{
		globalpalwritten = palookup[sec->floorpal];
		if (!globalpalwritten) globalpalwritten = palookup[globalpal];	// JBF: fixes null-pointer crash
		setpalookupaddress(globalpalwritten);
	}

	globalzd = globalposz-sec->floorz;
	if (globalzd > 0) return;
	globalpicnum = sec->floorpicnum;
	if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
	setgotpic(globalpicnum);
	if ((tilesizx[globalpicnum] <= 0) || (tilesizy[globalpicnum] <= 0)) return;
	if (picanm[globalpicnum]&192) globalpicnum += animateoffs((short)globalpicnum,(short)sectnum);

	if (waloff[globalpicnum] == 0) loadtile(globalpicnum);
	globalbufplc = waloff[globalpicnum];

	globalshade = (int)sec->floorshade;
	globvis = globalcisibility;
	if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));
	globalorientation = (int)sec->floorstat;


	if ((globalorientation&64) == 0)
	{
		globalx1 = singlobalang; globalx2 = singlobalang;
		globaly1 = cosglobalang; globaly2 = cosglobalang;
		globalxpanning = (globalposx<<20);
		globalypanning = -(globalposy<<20);
	}
	else
	{
		j = sec->wallptr;
		ox = wall[wall[j].point2].x - wall[j].x;
		oy = wall[wall[j].point2].y - wall[j].y;
		i = nsqrtasm(ox*ox+oy*oy); if (i == 0) i = 1024; else i = 1048576/i;
		globalx1 = mulscale10(dmulscale10(ox,singlobalang,-oy,cosglobalang),i);
		globaly1 = mulscale10(dmulscale10(ox,cosglobalang,oy,singlobalang),i);
		globalx2 = -globalx1;
		globaly2 = -globaly1;

		ox = ((wall[j].x-globalposx)<<6); oy = ((wall[j].y-globalposy)<<6);
		i = dmulscale14(oy,cosglobalang,-ox,singlobalang);
		j = dmulscale14(ox,cosglobalang,oy,singlobalang);
		ox = i; oy = j;
		globalxpanning = globalx1*ox - globaly1*oy;
		globalypanning = globaly2*ox + globalx2*oy;
	}
	globalx2 = mulscale16(globalx2,viewingrangerecip);
	globaly1 = mulscale16(globaly1,viewingrangerecip);
	globalxshift = (8-(picsiz[globalpicnum]&15));
	globalyshift = (8-(picsiz[globalpicnum]>>4));
	if (globalorientation&8) { globalxshift++; globalyshift++; }

	if ((globalorientation&0x4) > 0)
	{
		i = globalxpanning; globalxpanning = globalypanning; globalypanning = i;
		i = globalx2; globalx2 = -globaly1; globaly1 = -i;
		i = globalx1; globalx1 = globaly2; globaly2 = i;
	}
	if ((globalorientation&0x10) > 0) globalx1 = -globalx1, globaly1 = -globaly1, globalxpanning = -globalxpanning;
	if ((globalorientation&0x20) > 0) globalx2 = -globalx2, globaly2 = -globaly2, globalypanning = -globalypanning;
	globalx1 <<= globalxshift; globaly1 <<= globalxshift;
	globalx2 <<= globalyshift;  globaly2 <<= globalyshift;
	globalxpanning <<= globalxshift; globalypanning <<= globalyshift;
	globalxpanning += (((int)sec->floorxpanning)<<24);
	globalypanning += (((int)sec->floorypanning)<<24);
	globaly1 = (-globalx1-globaly1)*halfxdimen;
	globalx2 = (globalx2-globaly2)*halfxdimen;

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

	globalx2 += globaly2*(x1-1);
	globaly1 += globalx1*(x1-1);
	globalx1 = mulscale16(globalx1,globalzd);
	globalx2 = mulscale16(globalx2,globalzd);
	globaly1 = mulscale16(globaly1,globalzd);
	globaly2 = mulscale16(globaly2,globalzd);
	globvis = klabs(mulscale10(globvis,globalzd));

	if (!(globalorientation&0x180))
	{
		y1 = max(dplc[x1],umost[x1]); y2 = y1;
		for(x=x1;x<=x2;x++)
		{
			twall = max(dplc[x],umost[x])-1; bwall = dmost[x];
			if (twall < bwall-1)
			{
				if (twall >= y2)
				{
					while (y1 < y2-1) hline(x-1,++y1);
					y1 = twall;
				}
				else
				{
					while (y1 < twall) hline(x-1,++y1);
					while (y1 > twall) lastx[y1--] = x;
				}
				while (y2 > bwall) hline(x-1,--y2);
				while (y2 < bwall) lastx[y2++] = x;
			}
			else
			{
				while (y1 < y2-1) hline(x-1,++y1);
				if (x == x2) { globalx2 += globaly2; globaly1 += globalx1; break; }
				y1 = max(dplc[x+1],umost[x+1]); y2 = y1;
			}
			globalx2 += globaly2; globaly1 += globalx1;
		}
		while (y1 < y2-1) hline(x2,++y1);
		faketimerhandler();
		return;
	}

	switch(globalorientation&0x180)
	{
		case 128:
			msethlineshift(picsiz[globalpicnum]&15,picsiz[globalpicnum]>>4);
			break;
		case 256:
			settransnormal();
			tsethlineshift(picsiz[globalpicnum]&15,picsiz[globalpicnum]>>4);
			break;
		case 384:
			settransreverse();
			tsethlineshift(picsiz[globalpicnum]&15,picsiz[globalpicnum]>>4);
			break;
	}

	y1 = max(dplc[x1],umost[x1]); y2 = y1;
	for(x=x1;x<=x2;x++)
	{
		twall = max(dplc[x],umost[x])-1; bwall = dmost[x];
		if (twall < bwall-1)
		{
			if (twall >= y2)
			{
				while (y1 < y2-1) slowhline(x-1,++y1);
				y1 = twall;
			}
			else
			{
				while (y1 < twall) slowhline(x-1,++y1);
				while (y1 > twall) lastx[y1--] = x;
			}
			while (y2 > bwall) slowhline(x-1,--y2);
			while (y2 < bwall) lastx[y2++] = x;
		}
		else
		{
			while (y1 < y2-1) slowhline(x-1,++y1);
			if (x == x2) { globalx2 += globaly2; globaly1 += globalx1; break; }
			y1 = max(dplc[x+1],umost[x+1]); y2 = y1;
		}
		globalx2 += globaly2; globaly1 += globalx1;
	}
	while (y1 < y2-1) slowhline(x2,++y1);
	faketimerhandler();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x223204(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movzbl 0x1d(%rax), %eax
movl %eax, %ecx
leaq 0x378268(%rip), %rax    # 0x3d5640
movq (%rax,%rcx,8), %rax
cmpq 0x3ed985(%rip), %rax    # 0x44ad68
je 0x5d430
movq -0x38(%rbp), %rax
movzbl 0x1d(%rax), %eax
movl %eax, %ecx
leaq 0x37824a(%rip), %rax    # 0x3d5640
movq (%rax,%rcx,8), %rax
movq %rax, 0x3ed967(%rip)    # 0x44ad68
cmpq $0x0, 0x3ed95f(%rip)    # 0x44ad68
jne 0x5d424
movslq 0x3ed952(%rip), %rcx    # 0x44ad64
leaq 0x378227(%rip), %rax    # 0x3d5640
movq (%rax,%rcx,8), %rax
movq %rax, 0x3ed944(%rip)    # 0x44ad68
movq 0x3ed93d(%rip), %rdi    # 0x44ad68
callq 0xa75e0
movl 0x24b18a(%rip), %eax    # 0x2a85c0
movq -0x38(%rbp), %rcx
subl 0x8(%rcx), %eax
movl %eax, 0x42b509(%rip)    # 0x48894c
cmpl $0x0, 0x42b502(%rip)    # 0x48894c
jle 0x5d451
jmp 0x5e176
movq -0x38(%rbp), %rax
movw 0x18(%rax), %ax
movw %ax, 0x3ed910(%rip)     # 0x44ad70
movswl 0x3ed909(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x5d477
movw $0x0, 0x3ed8f9(%rip)    # 0x44ad70
movswl 0x3ed8f2(%rip), %edi    # 0x44ad70
callq 0x44d80
movswq 0x3ed8e5(%rip), %rcx    # 0x44ad70
leaq 0x3ed8ee(%rip), %rax    # 0x44ad80
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jle 0x5d4b3
movswq 0x3ed8cd(%rip), %rcx    # 0x44ad70
leaq 0x3df096(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
cmpl $0x0, %eax
jg 0x5d4b8
jmp 0x5e176
movswq 0x3ed8b0(%rip), %rcx    # 0x44ad70
leaq 0x21a0f9(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x5d4fb
movw 0x3ed895(%rip), %cx     # 0x44ad70
movl -0xc(%rbp), %eax
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x3ed87e(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x3ed875(%rip)     # 0x44ad70
movswq 0x3ed86d(%rip), %rcx    # 0x44ad70
leaq 0x378936(%rip), %rax    # 0x3d5e40
cmpq $0x0, (%rax,%rcx,8)
jne 0x5d51d
movswl 0x3ed858(%rip), %edi    # 0x44ad70
callq 0x44df0
movswq 0x3ed84b(%rip), %rcx    # 0x44ad70
leaq 0x378914(%rip), %rax    # 0x3d5e40
movq (%rax,%rcx,8), %rax
movq %rax, 0x3f2049(%rip)    # 0x44f580
movq -0x38(%rbp), %rax
movsbl 0x1c(%rax), %eax
movl %eax, 0x3f2047(%rip)    # 0x44f58c
movl 0x3ae35d(%rip), %eax    # 0x40b8a8
movl %eax, 0x3f203f(%rip)    # 0x44f590
movq -0x38(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x5d57d
movl 0x3f202c(%rip), %edi    # 0x44f590
movq -0x38(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x3f2013(%rip)    # 0x44f590
movq -0x38(%rbp), %rax
movswl 0xe(%rax), %eax
movl %eax, 0x3ed7d5(%rip)    # 0x44ad60
movl 0x3ed7cf(%rip), %eax    # 0x44ad60
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x5d5f0
movl 0x24f039(%rip), %eax    # 0x2ac5d8
movl %eax, 0x3f1ff3(%rip)    # 0x44f598
movl 0x24f02d(%rip), %eax    # 0x2ac5d8
movl %eax, 0x3f1fef(%rip)    # 0x44f5a0
movl 0x24f019(%rip), %eax    # 0x2ac5d0
movl %eax, 0x3f1fdf(%rip)    # 0x44f59c
movl 0x24f00d(%rip), %eax    # 0x2ac5d0
movl %eax, 0x3f1fdb(%rip)    # 0x44f5a4
movl 0x219fe1(%rip), %eax    # 0x2775b0
shll $0x14, %eax
movl %eax, 0x42b368(%rip)    # 0x488940
movl 0x219fd6(%rip), %ecx    # 0x2775b4
shll $0x14, %ecx
xorl %eax, %eax
subl %ecx, %eax
movl %eax, 0x42b359(%rip)    # 0x488944
jmp 0x5d7d2
movq -0x38(%rbp), %rax
movswl (%rax), %eax
movl %eax, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x197fab(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswq 0x8(%rax), %rcx
leaq 0x197f98(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
movslq -0x14(%rbp), %rdx
leaq 0x197f84(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
subl (%rcx), %eax
movl %eax, -0x18(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x197f6d(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswq 0x8(%rax), %rcx
leaq 0x197f5a(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movslq -0x14(%rbp), %rdx
leaq 0x197f45(%rip), %rcx    # 0x1f55b0
shlq $0x5, %rdx
addq %rdx, %rcx
subl 0x4(%rcx), %eax
movl %eax, -0x1c(%rbp)
movl -0x18(%rbp), %edi
imull -0x18(%rbp), %edi
movl -0x1c(%rbp), %eax
imull -0x1c(%rbp), %eax
addl %eax, %edi
callq 0x37570
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jne 0x5d69f
movl $0x400, -0x10(%rbp)     # imm = 0x400
jmp 0x5d6ab
movl $0x100000, %eax         # imm = 0x100000
cltd
idivl -0x10(%rbp)
movl %eax, -0x10(%rbp)
movl -0x18(%rbp), %edi
movl 0x24ef24(%rip), %esi    # 0x2ac5d8
xorl %edx, %edx
subl -0x1c(%rbp), %edx
movl 0x24ef11(%rip), %ecx    # 0x2ac5d0
callq 0x45030
movl %eax, %edi
movl -0x10(%rbp), %esi
callq 0x45010
movl %eax, 0x3f1ec4(%rip)    # 0x44f598
movl -0x18(%rbp), %edi
movl 0x24eef3(%rip), %esi    # 0x2ac5d0
movl -0x1c(%rbp), %edx
movl 0x24eef2(%rip), %ecx    # 0x2ac5d8
callq 0x45030
movl %eax, %edi
movl -0x10(%rbp), %esi
callq 0x45010
movl %eax, 0x3f1ea1(%rip)    # 0x44f59c
xorl %eax, %eax
subl 0x3f1e95(%rip), %eax    # 0x44f598
movl %eax, 0x3f1e97(%rip)    # 0x44f5a0
xorl %eax, %eax
subl 0x3f1e8b(%rip), %eax    # 0x44f59c
movl %eax, 0x3f1e8d(%rip)    # 0x44f5a4
movslq -0x14(%rbp), %rcx
leaq 0x197e8e(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl (%rax), %eax
subl 0x219e7f(%rip), %eax    # 0x2775b0
shll $0x6, %eax
movl %eax, -0x18(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x197e6e(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
subl 0x219e62(%rip), %eax    # 0x2775b4
shll $0x6, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %edi
movl 0x24ee6f(%rip), %esi    # 0x2ac5d0
xorl %edx, %edx
subl -0x18(%rbp), %edx
movl 0x24ee6c(%rip), %ecx    # 0x2ac5d8
callq 0x52880
movl %eax, -0x10(%rbp)
movl -0x18(%rbp), %edi
movl 0x24ee53(%rip), %esi    # 0x2ac5d0
movl -0x1c(%rbp), %edx
movl 0x24ee52(%rip), %ecx    # 0x2ac5d8
callq 0x52880
movl %eax, -0x14(%rbp)
movl -0x10(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl 0x3f1df8(%rip), %eax    # 0x44f598
imull -0x18(%rbp), %eax
movl 0x3f1df2(%rip), %ecx    # 0x44f59c
imull -0x1c(%rbp), %ecx
subl %ecx, %eax
movl %eax, 0x42b18a(%rip)    # 0x488940
movl 0x3f1de8(%rip), %eax    # 0x44f5a4
imull -0x18(%rbp), %eax
movl 0x3f1dda(%rip), %ecx    # 0x44f5a0
imull -0x1c(%rbp), %ecx
addl %ecx, %eax
movl %eax, 0x42b172(%rip)    # 0x488944
movl 0x3f1dc8(%rip), %edi    # 0x44f5a0
movl 0x3ae0ba(%rip), %esi    # 0x40b898
callq 0x39010
movl %eax, 0x3f1db7(%rip)    # 0x44f5a0
movl 0x3f1dad(%rip), %edi    # 0x44f59c
movl 0x3ae0a3(%rip), %esi    # 0x40b898
callq 0x39010
movl %eax, 0x3f1d9c(%rip)    # 0x44f59c
movswq 0x3ed568(%rip), %rcx    # 0x44ad70
leaq 0x3f1da1(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %ecx
andl $0xf, %ecx
movl $0x8, %eax
subl %ecx, %eax
movb %al, 0x3f418d(%rip)     # 0x4519b0
movswq 0x3ed545(%rip), %rcx    # 0x44ad70
leaq 0x3f1d7e(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %ecx
sarl $0x4, %ecx
movl $0x8, %eax
subl %ecx, %eax
movb %al, 0x3f416b(%rip)     # 0x4519b1
movl 0x3ed514(%rip), %eax    # 0x44ad60
andl $0x8, %eax
cmpl $0x0, %eax
je 0x5d870
movb 0x3f4156(%rip), %al     # 0x4519b0
addb $0x1, %al
movb %al, 0x3f414e(%rip)     # 0x4519b0
movb 0x3f4149(%rip), %al     # 0x4519b1
addb $0x1, %al
movb %al, 0x3f4141(%rip)     # 0x4519b1
movl 0x3ed4ea(%rip), %eax    # 0x44ad60
andl $0x4, %eax
cmpl $0x0, %eax
jle 0x5d8dc
movl 0x42b0bc(%rip), %eax    # 0x488940
movl %eax, -0x10(%rbp)
movl 0x42b0b7(%rip), %eax    # 0x488944
movl %eax, 0x42b0ad(%rip)    # 0x488940
movl -0x10(%rbp), %eax
movl %eax, 0x42b0a8(%rip)    # 0x488944
movl 0x3f1cfe(%rip), %eax    # 0x44f5a0
movl %eax, -0x10(%rbp)
xorl %eax, %eax
subl 0x3f1cef(%rip), %eax    # 0x44f59c
movl %eax, 0x3f1ced(%rip)    # 0x44f5a0
xorl %eax, %eax
subl -0x10(%rbp), %eax
movl %eax, 0x3f1cde(%rip)    # 0x44f59c
movl 0x3f1cd4(%rip), %eax    # 0x44f598
movl %eax, -0x10(%rbp)
movl 0x3f1cd7(%rip), %eax    # 0x44f5a4
movl %eax, 0x3f1cc5(%rip)    # 0x44f598
movl -0x10(%rbp), %eax
movl %eax, 0x3f1cc8(%rip)    # 0x44f5a4
movl 0x3ed47e(%rip), %eax    # 0x44ad60
andl $0x10, %eax
cmpl $0x0, %eax
jle 0x5d914
xorl %eax, %eax
subl 0x3f1ca6(%rip), %eax    # 0x44f598
movl %eax, 0x3f1ca0(%rip)    # 0x44f598
xorl %eax, %eax
subl 0x3f1c9c(%rip), %eax    # 0x44f59c
movl %eax, 0x3f1c96(%rip)    # 0x44f59c
xorl %eax, %eax
subl 0x42b032(%rip), %eax    # 0x488940
movl %eax, 0x42b02c(%rip)    # 0x488940
movl 0x3ed446(%rip), %eax    # 0x44ad60
andl $0x20, %eax
cmpl $0x0, %eax
jle 0x5d94c
xorl %eax, %eax
subl 0x3f1c76(%rip), %eax    # 0x44f5a0
movl %eax, 0x3f1c70(%rip)    # 0x44f5a0
xorl %eax, %eax
subl 0x3f1c6c(%rip), %eax    # 0x44f5a4
movl %eax, 0x3f1c66(%rip)    # 0x44f5a4
xorl %eax, %eax
subl 0x42affe(%rip), %eax    # 0x488944
movl %eax, 0x42aff8(%rip)    # 0x488944
movzbl 0x3f405d(%rip), %ecx    # 0x4519b0
movl 0x3f1c3f(%rip), %eax    # 0x44f598
shll %cl, %eax
movl %eax, 0x3f1c37(%rip)    # 0x44f598
movzbl 0x3f4048(%rip), %ecx    # 0x4519b0
movl 0x3f1c2e(%rip), %eax    # 0x44f59c
shll %cl, %eax
movl %eax, 0x3f1c26(%rip)    # 0x44f59c
movzbl 0x3f4034(%rip), %ecx    # 0x4519b1
movl 0x3f1c1d(%rip), %eax    # 0x44f5a0
shll %cl, %eax
movl %eax, 0x3f1c15(%rip)    # 0x44f5a0
movzbl 0x3f401f(%rip), %ecx    # 0x4519b1
movl 0x3f1c0c(%rip), %eax    # 0x44f5a4
shll %cl, %eax
movl %eax, 0x3f1c04(%rip)    # 0x44f5a4
movzbl 0x3f4009(%rip), %ecx    # 0x4519b0
movl 0x42af93(%rip), %eax    # 0x488940
shll %cl, %eax
movl %eax, 0x42af8b(%rip)    # 0x488940
movzbl 0x3f3ff5(%rip), %ecx    # 0x4519b1
movl 0x42af82(%rip), %eax    # 0x488944
shll %cl, %eax
movl %eax, 0x42af7a(%rip)    # 0x488944
movq -0x38(%rbp), %rax
movzbl 0x1e(%rax), %eax
shll $0x18, %eax
addl 0x42af65(%rip), %eax    # 0x488940
movl %eax, 0x42af5f(%rip)    # 0x488940
movq -0x38(%rbp), %rax
movzbl 0x1f(%rax), %eax
shll $0x18, %eax
addl 0x42af52(%rip), %eax    # 0x488944
movl %eax, 0x42af4c(%rip)    # 0x488944
xorl %eax, %eax
subl 0x3f1b98(%rip), %eax    # 0x44f598
subl 0x3f1b96(%rip), %eax    # 0x44f59c
imull 0x3f5c97(%rip), %eax    # 0x4536a4
movl %eax, 0x3f1b89(%rip)    # 0x44f59c
movl 0x3f1b87(%rip), %eax    # 0x44f5a0
subl 0x3f1b85(%rip), %eax    # 0x44f5a4
imull 0x3f5c7e(%rip), %eax    # 0x4536a4
movl %eax, 0x3f1b74(%rip)    # 0x44f5a0
movswq 0x3ed33c(%rip), %rcx    # 0x44ad70
leaq 0x3f1b75(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %edi
andl $0xf, %edi
movswq 0x3ed326(%rip), %rcx    # 0x44ad70
leaq 0x3f1b5f(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %esi
sarl $0x4, %esi
movq 0x3f1b21(%rip), %rdx    # 0x44f580
callq 0xa75b0
movl 0x3f1b3a(%rip), %eax    # 0x44f5a4
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
addl 0x3f1b27(%rip), %eax    # 0x44f5a0
movl %eax, 0x3f1b21(%rip)    # 0x44f5a0
movl 0x3f1b13(%rip), %eax    # 0x44f598
movl -0x4(%rbp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
addl 0x3f1b08(%rip), %eax    # 0x44f59c
movl %eax, 0x3f1b02(%rip)    # 0x44f59c
movl 0x3f1af8(%rip), %edi    # 0x44f598
movl 0x42aea6(%rip), %esi    # 0x48894c
callq 0x39010
movl %eax, 0x3f1ae7(%rip)    # 0x44f598
movl 0x3f1ae9(%rip), %edi    # 0x44f5a0
movl 0x42ae8f(%rip), %esi    # 0x48894c
callq 0x39010
movl %eax, 0x3f1ad8(%rip)    # 0x44f5a0
movl 0x3f1ace(%rip), %edi    # 0x44f59c
movl 0x42ae78(%rip), %esi    # 0x48894c
callq 0x39010
movl %eax, 0x3f1abd(%rip)    # 0x44f59c
movl 0x3f1abf(%rip), %edi    # 0x44f5a4
movl 0x42ae61(%rip), %esi    # 0x48894c
callq 0x39010
movl %eax, 0x3f1aae(%rip)    # 0x44f5a4
movl 0x3f1a94(%rip), %edi    # 0x44f590
movl 0x42ae4a(%rip), %esi    # 0x48894c
callq 0x45010
movl %eax, %edi
callq 0x37610
movl %eax, 0x3f1a7c(%rip)    # 0x44f590
movl 0x3ed246(%rip), %eax    # 0x44ad60
andl $0x180, %eax            # imm = 0x180
cmpl $0x0, %eax
jne 0x5dde8
movslq -0x4(%rbp), %rcx
leaq 0x42971d(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movslq -0x4(%rbp), %rdx
leaq 0x3b1cae(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x5db5e
movslq -0x4(%rbp), %rcx
leaq 0x4296fb(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x3c(%rbp)
jmp 0x5db70
movslq -0x4(%rbp), %rcx
leaq 0x3b1c87(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x4(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x8(%rbp), %eax
jg 0x5ddbc
movslq -0x20(%rbp), %rcx
leaq 0x4296b7(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movslq -0x20(%rbp), %rdx
leaq 0x3b1c48(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x5dbc4
movslq -0x20(%rbp), %rcx
leaq 0x429695(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x40(%rbp)
jmp 0x5dbd6
movslq -0x20(%rbp), %rcx
leaq 0x3b1c21(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x40(%rbp)
movl -0x40(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x2c(%rbp)
movslq -0x20(%rbp), %rcx
leaq 0x3b3286(%rip), %rax    # 0x410e70
movswl (%rax,%rcx,2), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5dccc
movl -0x2c(%rbp), %eax
cmpl -0x28(%rbp), %eax
jl 0x5dc37
jmp 0x5dc0c
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5dc2f
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ed00
jmp 0x5dc0c
movl -0x2c(%rbp), %eax
movl %eax, -0x24(%rbp)
jmp 0x5dc80
jmp 0x5dc39
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jge 0x5dc57
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ed00
jmp 0x5dc39
jmp 0x5dc59
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jle 0x5dc7e
movl -0x20(%rbp), %edx
movl -0x24(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x24(%rbp)
movslq %eax, %rcx
leaq 0x42af17(%rip), %rax    # 0x488b90
movl %edx, (%rax,%rcx,4)
jmp 0x5dc59
jmp 0x5dc80
jmp 0x5dc82
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jle 0x5dca0
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x28(%rbp), %esi
addl $-0x1, %esi
movl %esi, -0x28(%rbp)
callq 0x5ed00
jmp 0x5dc82
jmp 0x5dca2
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x5dcc7
movl -0x20(%rbp), %edx
movl -0x28(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x28(%rbp)
movslq %eax, %rcx
leaq 0x42aece(%rip), %rax    # 0x488b90
movl %edx, (%rax,%rcx,4)
jmp 0x5dca2
jmp 0x5dd8a
jmp 0x5dcce
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5dcf1
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ed00
jmp 0x5dcce
movl -0x20(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x5dd22
movl 0x3f18a5(%rip), %eax    # 0x44f5a4
addl 0x3f189b(%rip), %eax    # 0x44f5a0
movl %eax, 0x3f1895(%rip)    # 0x44f5a0
movl 0x3f1887(%rip), %eax    # 0x44f598
addl 0x3f1885(%rip), %eax    # 0x44f59c
movl %eax, 0x3f187f(%rip)    # 0x44f59c
jmp 0x5ddbc
movl -0x20(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x42951e(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl -0x20(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x3b1aaa(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x5dd67
movl -0x20(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x4294f2(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x44(%rbp)
jmp 0x5dd7e
movl -0x20(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x3b1a79(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x44(%rbp)
movl -0x44(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl 0x3f1814(%rip), %eax    # 0x44f5a4
addl 0x3f180a(%rip), %eax    # 0x44f5a0
movl %eax, 0x3f1804(%rip)    # 0x44f5a0
movl 0x3f17f6(%rip), %eax    # 0x44f598
addl 0x3f17f4(%rip), %eax    # 0x44f59c
movl %eax, 0x3f17ee(%rip)    # 0x44f59c
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x5db82
jmp 0x5ddbe
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5ddde
movl -0x8(%rbp), %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ed00
jmp 0x5ddbe
callq 0xc220
jmp 0x5e176
movl 0x3ecf72(%rip), %eax    # 0x44ad60
andl $0x180, %eax            # imm = 0x180
movl %eax, -0x48(%rbp)
subl $0x80, %eax
je 0x5de1a
jmp 0x5ddff
movl -0x48(%rbp), %eax
subl $0x100, %eax            # imm = 0x100
je 0x5de4d
jmp 0x5de0b
movl -0x48(%rbp), %eax
subl $0x180, %eax            # imm = 0x180
je 0x5de85
jmp 0x5debb
movswq 0x3ecf4e(%rip), %rcx    # 0x44ad70
leaq 0x3f1787(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %edi
andl $0xf, %edi
movswq 0x3ecf38(%rip), %rcx    # 0x44ad70
leaq 0x3f1771(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %esi
sarl $0x4, %esi
callq 0xa7b90
jmp 0x5debb
callq 0xa7590
movswq 0x3ecf16(%rip), %rcx    # 0x44ad70
leaq 0x3f174f(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %edi
andl $0xf, %edi
movswq 0x3ecf00(%rip), %rcx    # 0x44ad70
leaq 0x3f1739(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %esi
sarl $0x4, %esi
callq 0xa7ca0
jmp 0x5debb
callq 0xa75a0
movswq 0x3ecede(%rip), %rcx    # 0x44ad70
leaq 0x3f1717(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %edi
andl $0xf, %edi
movswq 0x3ecec8(%rip), %rcx    # 0x44ad70
leaq 0x3f1701(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %esi
sarl $0x4, %esi
callq 0xa7ca0
movslq -0x4(%rbp), %rcx
leaq 0x42938a(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movslq -0x4(%rbp), %rdx
leaq 0x3b191b(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x5def1
movslq -0x4(%rbp), %rcx
leaq 0x429368(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x4c(%rbp)
jmp 0x5df03
movslq -0x4(%rbp), %rcx
leaq 0x3b18f4(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl -0x4(%rbp), %eax
movl %eax, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x8(%rbp), %eax
jg 0x5e14f
movslq -0x20(%rbp), %rcx
leaq 0x429324(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movslq -0x20(%rbp), %rdx
leaq 0x3b18b5(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x5df57
movslq -0x20(%rbp), %rcx
leaq 0x429302(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x50(%rbp)
jmp 0x5df69
movslq -0x20(%rbp), %rcx
leaq 0x3b188e(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x2c(%rbp)
movslq -0x20(%rbp), %rcx
leaq 0x3b2ef3(%rip), %rax    # 0x410e70
movswl (%rax,%rcx,2), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
movl -0x30(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5e05f
movl -0x2c(%rbp), %eax
cmpl -0x28(%rbp), %eax
jl 0x5dfca
jmp 0x5df9f
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5dfc2
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ede0
jmp 0x5df9f
movl -0x2c(%rbp), %eax
movl %eax, -0x24(%rbp)
jmp 0x5e013
jmp 0x5dfcc
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jge 0x5dfea
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ede0
jmp 0x5dfcc
jmp 0x5dfec
movl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jle 0x5e011
movl -0x20(%rbp), %edx
movl -0x24(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x24(%rbp)
movslq %eax, %rcx
leaq 0x42ab84(%rip), %rax    # 0x488b90
movl %edx, (%rax,%rcx,4)
jmp 0x5dfec
jmp 0x5e013
jmp 0x5e015
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jle 0x5e033
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x28(%rbp), %esi
addl $-0x1, %esi
movl %esi, -0x28(%rbp)
callq 0x5ede0
jmp 0x5e015
jmp 0x5e035
movl -0x28(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x5e05a
movl -0x20(%rbp), %edx
movl -0x28(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x28(%rbp)
movslq %eax, %rcx
leaq 0x42ab3b(%rip), %rax    # 0x488b90
movl %edx, (%rax,%rcx,4)
jmp 0x5e035
jmp 0x5e11d
jmp 0x5e061
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5e084
movl -0x20(%rbp), %edi
subl $0x1, %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ede0
jmp 0x5e061
movl -0x20(%rbp), %eax
cmpl -0x8(%rbp), %eax
jne 0x5e0b5
movl 0x3f1512(%rip), %eax    # 0x44f5a4
addl 0x3f1508(%rip), %eax    # 0x44f5a0
movl %eax, 0x3f1502(%rip)    # 0x44f5a0
movl 0x3f14f4(%rip), %eax    # 0x44f598
addl 0x3f14f2(%rip), %eax    # 0x44f59c
movl %eax, 0x3f14ec(%rip)    # 0x44f59c
jmp 0x5e14f
movl -0x20(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x42918b(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl -0x20(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x3b1717(%rip), %rcx    # 0x40f7f0
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
jle 0x5e0fa
movl -0x20(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x42915f(%rip), %rax    # 0x487250
movswl (%rax,%rcx,2), %eax
movl %eax, -0x54(%rbp)
jmp 0x5e111
movl -0x20(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x3b16e6(%rip), %rax    # 0x40f7f0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl 0x3f1481(%rip), %eax    # 0x44f5a4
addl 0x3f1477(%rip), %eax    # 0x44f5a0
movl %eax, 0x3f1471(%rip)    # 0x44f5a0
movl 0x3f1463(%rip), %eax    # 0x44f598
addl 0x3f1461(%rip), %eax    # 0x44f59c
movl %eax, 0x3f145b(%rip)    # 0x44f59c
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x5df15
jmp 0x5e151
movl -0x24(%rbp), %eax
movl -0x28(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x5e171
movl -0x8(%rbp), %edi
movl -0x24(%rbp), %esi
addl $0x1, %esi
movl %esi, -0x24(%rbp)
callq 0x5ede0
jmp 0x5e151
callq 0xc220
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)