// File: /workspace/github_c_makefile_star2_O0/jonof[P]jftekwar/jfbuild/src/engine.c
// Function: parascan
static void parascan(int dax1, int dax2, int sectnum, unsigned char dastat, int bunch)
{
	sectortype *sec;
	int j, k, l, m, n, x, z, wallnum, nextsectnum, globalhorizbak;
	short *topptr, *botptr;

	(void)dax1; (void)dax2;

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

	globalhorizbak = globalhoriz;
	if (parallaxyscale != 65536)
		globalhoriz = mulscale16(globalhoriz-(ydimen>>1),parallaxyscale) + (ydimen>>1);
	globvis = globalpisibility;
	//globalorientation = 0L;
	if (sec->visibility != 0) globvis = mulscale4(globvis,(int)((unsigned char)(sec->visibility+16)));

	if (dastat == 0)
	{
		globalpal = sec->ceilingpal;
		globalpicnum = sec->ceilingpicnum;
		globalshade = (int)sec->ceilingshade;
		globalxpanning = (int)sec->ceilingxpanning;
		globalypanning = (int)sec->ceilingypanning;
		topptr = umost;
		botptr = uplc;
	}
	else
	{
		globalpal = sec->floorpal;
		globalpicnum = sec->floorpicnum;
		globalshade = (int)sec->floorshade;
		globalxpanning = (int)sec->floorxpanning;
		globalypanning = (int)sec->floorypanning;
		topptr = dplc;
		botptr = dmost;
	}

	if (palookup[globalpal] == 0) globalpal = 0;
	if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;
	if (picanm[globalpicnum]&192) globalpicnum += animateoffs(globalpicnum,(short)sectnum);
	globalshiftval = (picsiz[globalpicnum]>>4);
	if (pow2long[globalshiftval] != tilesizy[globalpicnum]) globalshiftval++;
	globalshiftval = 32-globalshiftval;
	globalzd = (((tilesizy[globalpicnum]>>1)+parallaxyoffs)<<globalshiftval)+(globalypanning<<24);
	globalyscale = (8<<(globalshiftval-19));
	//if (globalorientation&256) globalyscale = -globalyscale, globalzd = -globalzd;

	k = 11 - (picsiz[globalpicnum]&15) - pskybits;
	x = -1;

	for(z=bunchfirst[bunch];z>=0;z=p2[z])
	{
		wallnum = thewall[z]; nextsectnum = wall[wallnum].nextsector;

		if (dastat == 0) j = sector[nextsectnum].ceilingstat;
						else j = sector[nextsectnum].floorstat;

		if ((nextsectnum < 0) || (wall[wallnum].cstat&32) || ((j&1) == 0))
		{
			if (x == -1) x = xb1[z];

			if (parallaxtype == 0)
			{
				n = mulscale16(xdimenrecip,viewingrange);
				for(j=xb1[z];j<=xb2[z];j++)
					lplc[j] = (((mulscale23(j-halfxdimen,n)+globalang)&2047)>>k);
			}
			else
			{
				for(j=xb1[z];j<=xb2[z];j++)
					lplc[j] = ((((int)radarang2[j]+globalang)&2047)>>k);
			}
			if (parallaxtype == 2)
			{
				n = mulscale16(xdimscale,viewingrange);
				for(j=xb1[z];j<=xb2[z];j++)
					swplc[j] = mulscale14(sintable[((int)radarang2[j]+512)&2047],n);
			}
			else
				clearbuf(&swplc[xb1[z]],xb2[z]-xb1[z]+1,mulscale16(xdimscale,viewingrange));
		}
		else if (x >= 0)
		{
			l = globalpicnum; m = (picsiz[globalpicnum]&15);
			globalpicnum = l+pskyoff[lplc[x]>>m];

			if (((lplc[x]^lplc[xb1[z]-1])>>m) == 0)
				wallscan(x,xb1[z]-1,topptr,botptr,swplc,lplc);
			else
			{
				j = x;
				while (x < xb1[z])
				{
					n = l+pskyoff[lplc[x]>>m];
					if (n != globalpicnum)
					{
						wallscan(j,x-1,topptr,botptr,swplc,lplc);
						j = x;
						globalpicnum = n;
					}
					x++;
				}
				if (j < x)
					wallscan(j,x-1,topptr,botptr,swplc,lplc);
			}

			globalpicnum = l;
			x = -1;
		}
	}

	if (x >= 0)
	{
		l = globalpicnum; m = (picsiz[globalpicnum]&15);
		globalpicnum = l+pskyoff[lplc[x]>>m];

		if (((lplc[x]^lplc[xb2[bunchlast[bunch]]])>>m) == 0)
			wallscan(x,xb2[bunchlast[bunch]],topptr,botptr,swplc,lplc);
		else
		{
			j = x;
			while (x <= xb2[bunchlast[bunch]])
			{
				n = l+pskyoff[lplc[x]>>m];
				if (n != globalpicnum)
				{
					wallscan(j,x-1,topptr,botptr,swplc,lplc);
					j = x;
					globalpicnum = n;
				}
				x++;
			}
			if (j <= x)
				wallscan(j,x,topptr,botptr,swplc,lplc);
		}
		globalpicnum = l;
	}
	globalhoriz = globalhorizbak;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movb %cl, %al
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movb %al, -0xd(%rbp)
movl %r8d, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0x3b5a6b(%rip), %rax    # 0x412520
movswq (%rax,%rcx,2), %rcx
leaq 0x42710f(%rip), %rax    # 0x483bd0
movswl (%rax,%rcx,2), %eax
movl %eax, -0xc(%rbp)
movslq -0xc(%rbp), %rcx
leaq 0x223aed(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movl 0x25bb18(%rip), %eax    # 0x2b85fc
movl %eax, -0x48(%rbp)
cmpl $0x10000, 0x33db37(%rip) # imm = 0x10000
je 0x5cb1e
movl 0x25bb03(%rip), %edi    # 0x2b85fc
movl 0x25baf5(%rip), %eax    # 0x2b85f4
sarl %eax
subl %eax, %edi
movl 0x33db1f(%rip), %esi    # 0x39a628
callq 0x39010
movl 0x25bae0(%rip), %ecx    # 0x2b85f4
sarl %ecx
addl %ecx, %eax
movl %eax, 0x25bade(%rip)    # 0x2b85fc
movl 0x3aed78(%rip), %eax    # 0x40b89c
movl %eax, 0x3f2a66(%rip)    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x20(%rax), %eax
cmpl $0x0, %eax
je 0x5cb56
movl 0x3f2a53(%rip), %edi    # 0x44f590
movq -0x20(%rbp), %rax
movzbl 0x20(%rax), %eax
addl $0x10, %eax
movzbl %al, %esi
callq 0x44ff0
movl %eax, 0x3f2a3a(%rip)    # 0x44f590
movzbl -0xd(%rbp), %eax
cmpl $0x0, %eax
jne 0x5cbbe
movq -0x20(%rbp), %rax
movzbl 0x15(%rax), %eax
movl %eax, 0x3ee1f7(%rip)    # 0x44ad64
movq -0x20(%rbp), %rax
movw 0x10(%rax), %ax
movw %ax, 0x3ee1f4(%rip)     # 0x44ad70
movq -0x20(%rbp), %rax
movsbl 0x14(%rax), %eax
movl %eax, 0x3f2a02(%rip)    # 0x44f58c
movq -0x20(%rbp), %rax
movzbl 0x16(%rax), %eax
movl %eax, 0x42bda8(%rip)    # 0x488940
movq -0x20(%rbp), %rax
movzbl 0x17(%rax), %eax
movl %eax, 0x42bd9e(%rip)    # 0x488944
leaq 0x3b2c43(%rip), %rax    # 0x40f7f0
movq %rax, -0x50(%rbp)
leaq 0x429018(%rip), %rax    # 0x485bd0
movq %rax, -0x58(%rbp)
jmp 0x5cc1b
movq -0x20(%rbp), %rax
movzbl 0x1d(%rax), %eax
movl %eax, 0x3ee198(%rip)    # 0x44ad64
movq -0x20(%rbp), %rax
movw 0x18(%rax), %ax
movw %ax, 0x3ee195(%rip)     # 0x44ad70
movq -0x20(%rbp), %rax
movsbl 0x1c(%rax), %eax
movl %eax, 0x3f29a3(%rip)    # 0x44f58c
movq -0x20(%rbp), %rax
movzbl 0x1e(%rax), %eax
movl %eax, 0x42bd49(%rip)    # 0x488940
movq -0x20(%rbp), %rax
movzbl 0x1f(%rax), %eax
movl %eax, 0x42bd3f(%rip)    # 0x488944
leaq 0x42a644(%rip), %rax    # 0x487250
movq %rax, -0x50(%rbp)
leaq 0x3b4259(%rip), %rax    # 0x410e70
movq %rax, -0x58(%rbp)
movslq 0x3ee142(%rip), %rcx    # 0x44ad64
leaq 0x378a17(%rip), %rax    # 0x3d5640
cmpq $0x0, (%rax,%rcx,8)
jne 0x5cc3a
movl $0x0, 0x3ee12a(%rip)    # 0x44ad64
movswl 0x3ee12f(%rip), %eax    # 0x44ad70
cmpl $0x2400, %eax           # imm = 0x2400
jb 0x5cc51
movw $0x0, 0x3ee11f(%rip)    # 0x44ad70
movswq 0x3ee117(%rip), %rcx    # 0x44ad70
leaq 0x21a960(%rip), %rax    # 0x2775c0
movl (%rax,%rcx,4), %eax
andl $0xc0, %eax
cmpl $0x0, %eax
je 0x5cc94
movw 0x3ee0fc(%rip), %cx     # 0x44ad70
movl -0xc(%rbp), %eax
movswl %cx, %edi
movswl %ax, %esi
callq 0x361e0
movl %eax, %ecx
movswl 0x3ee0e5(%rip), %eax    # 0x44ad70
addl %ecx, %eax
movw %ax, 0x3ee0dc(%rip)     # 0x44ad70
movswq 0x3ee0d4(%rip), %rcx    # 0x44ad70
leaq 0x3f290d(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
sarl $0x4, %eax
movw %ax, 0x42bc97(%rip)     # 0x488948
movswq 0x42bc8f(%rip), %rcx    # 0x488948
leaq 0x83fe0(%rip), %rax     # 0xe0ca0
movl (%rax,%rcx,4), %eax
movswq 0x3ee0a5(%rip), %rdx    # 0x44ad70
leaq 0x3df86e(%rip), %rcx    # 0x43c540
movswl (%rcx,%rdx,2), %ecx
cmpl %ecx, %eax
je 0x5ccec
movw 0x42bc67(%rip), %ax     # 0x488948
addw $0x1, %ax
movw %ax, 0x42bc5c(%rip)     # 0x488948
movswl 0x42bc55(%rip), %ecx    # 0x488948
movl $0x20, %eax
subl %ecx, %eax
movw %ax, 0x42bc47(%rip)     # 0x488948
movswq 0x3ee067(%rip), %rcx    # 0x44ad70
leaq 0x3df830(%rip), %rax    # 0x43c540
movswl (%rax,%rcx,2), %eax
sarl %eax
addl 0x33d908(%rip), %eax    # 0x39a624
movswl 0x42bc25(%rip), %ecx    # 0x488948
shll %cl, %eax
movl 0x42bc19(%rip), %ecx    # 0x488944
shll $0x18, %ecx
addl %ecx, %eax
movl %eax, 0x42bc16(%rip)    # 0x48894c
movswl 0x42bc0b(%rip), %ecx    # 0x488948
subl $0x13, %ecx
movl $0x8, %eax
shll %cl, %eax
movl %eax, 0x42bc03(%rip)    # 0x488950
movswq 0x3ee01b(%rip), %rcx    # 0x44ad70
leaq 0x3f2854(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %ecx
andl $0xf, %ecx
movl $0xb, %eax
subl %ecx, %eax
movswl 0x33d8af(%rip), %ecx    # 0x39a620
subl %ecx, %eax
movl %eax, -0x28(%rbp)
movl $0xffffffff, -0x38(%rbp) # imm = 0xFFFFFFFF
movslq -0x14(%rbp), %rcx
leaq 0x3b5798(%rip), %rax    # 0x412520
movswl (%rax,%rcx,2), %eax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jl 0x5d1e2
movslq -0x3c(%rbp), %rcx
leaq 0x21880c(%rip), %rax    # 0x2755b0
movswl (%rax,%rcx,2), %eax
movl %eax, -0x40(%rbp)
movslq -0x40(%rbp), %rcx
leaq 0x1987fa(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
movl %eax, -0x44(%rbp)
movzbl -0xd(%rbp), %eax
cmpl $0x0, %eax
jne 0x5cde8
movslq -0x44(%rbp), %rcx
leaq 0x2237e8(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xc(%rax), %eax
movl %eax, -0x24(%rbp)
jmp 0x5ce01
movslq -0x44(%rbp), %rcx
leaq 0x2237cd(%rip), %rax    # 0x2805c0
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movswl 0xe(%rax), %eax
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x44(%rbp)
jl 0x5ce34
movslq -0x40(%rbp), %rcx
leaq 0x19879e(%rip), %rax    # 0x1f55b0
shlq $0x5, %rcx
addq %rcx, %rax
movswl 0xe(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
jne 0x5ce34
movl -0x24(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x5d02e
cmpl $-0x1, -0x38(%rbp)
jne 0x5ce4b
movslq -0x3c(%rbp), %rcx
leaq 0x24b78b(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %eax
movl %eax, -0x38(%rbp)
movzbl 0x33d7d0(%rip), %eax    # 0x39a622
cmpl $0x0, %eax
jne 0x5ced1
movl 0x413f8f(%rip), %edi    # 0x470dec
movl 0x3afa4d(%rip), %esi    # 0x40c8b0
callq 0x39010
movl %eax, -0x34(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x24b75a(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movslq -0x3c(%rbp), %rdx
leaq 0x24f756(%rip), %rcx    # 0x2ac5e0
cmpl (%rcx,%rdx,4), %eax
jg 0x5cecf
movl -0x24(%rbp), %edi
subl 0x3f680c(%rip), %edi    # 0x4536a4
movl -0x34(%rbp), %esi
callq 0x5ef90
movl %eax, %edx
movswl 0x3ae9e7(%rip), %eax    # 0x40b890
addl %eax, %edx
andl $0x7ff, %edx            # imm = 0x7FF
movl -0x28(%rbp), %ecx
sarl %cl, %edx
movslq -0x24(%rbp), %rcx
leaq 0x53e89f(%rip), %rax    # 0x59b760
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x5ce7c
jmp 0x5cf33
movslq -0x3c(%rbp), %rcx
leaq 0x24b6f4(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movslq -0x3c(%rbp), %rdx
leaq 0x24f6f0(%rip), %rcx    # 0x2ac5e0
cmpl (%rcx,%rdx,4), %eax
jg 0x5cf31
movslq -0x24(%rbp), %rcx
leaq 0x431ac0(%rip), %rax    # 0x48e9c0
movswl (%rax,%rcx,2), %edx
movswl 0x3ae985(%rip), %eax    # 0x40b890
addl %eax, %edx
andl $0x7ff, %edx            # imm = 0x7FF
movl -0x28(%rbp), %ecx
sarl %cl, %edx
movslq -0x24(%rbp), %rcx
leaq 0x53e83d(%rip), %rax    # 0x59b760
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x5cee2
jmp 0x5cf33
movzbl 0x33d6e8(%rip), %eax    # 0x39a622
cmpl $0x2, %eax
jne 0x5cfc7
movl 0x3ae94b(%rip), %edi    # 0x40b894
movl 0x3af961(%rip), %esi    # 0x40c8b0
callq 0x39010
movl %eax, -0x34(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x24b66e(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movslq -0x3c(%rbp), %rdx
leaq 0x24f66a(%rip), %rcx    # 0x2ac5e0
cmpl (%rcx,%rdx,4), %eax
jg 0x5cfc5
movslq -0x24(%rbp), %rcx
leaq 0x431a3a(%rip), %rax    # 0x48e9c0
movswl (%rax,%rcx,2), %eax
addl $0x200, %eax            # imm = 0x200
andl $0x7ff, %eax            # imm = 0x7FF
movslq %eax, %rcx
leaq 0x3ae912(%rip), %rax    # 0x40b8b0
movswl (%rax,%rcx,2), %edi
movl -0x34(%rbp), %esi
callq 0x52680
movl %eax, %edx
movslq -0x24(%rbp), %rcx
leaq 0x5414a9(%rip), %rax    # 0x59e460
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x5cf68
jmp 0x5d029
movslq -0x3c(%rbp), %rcx
leaq 0x24b5fe(%rip), %rax    # 0x2a85d0
movslq (%rax,%rcx,4), %rcx
leaq 0x541483(%rip), %rax    # 0x59e460
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movslq -0x3c(%rbp), %rcx
leaq 0x24f5ed(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %eax
movslq -0x3c(%rbp), %rdx
leaq 0x24b5cf(%rip), %rcx    # 0x2a85d0
subl (%rcx,%rdx,4), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
movl 0x3ae884(%rip), %edi    # 0x40b894
movl 0x3af89a(%rip), %esi    # 0x40c8b0
callq 0x39010
movq -0x68(%rbp), %rdi
movl -0x5c(%rbp), %esi
movl %eax, %edx
callq 0x6ed50
jmp 0x5d1c9
cmpl $0x0, -0x38(%rbp)
jl 0x5d1c7
movswl 0x3edd31(%rip), %eax    # 0x44ad70
movl %eax, -0x2c(%rbp)
movswq 0x3edd26(%rip), %rcx    # 0x44ad70
leaq 0x3f255f(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
andl $0xf, %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
movslq -0x38(%rbp), %rdx
leaq 0x53e6f7(%rip), %rcx    # 0x59b760
movl (%rcx,%rdx,4), %edx
movl -0x30(%rbp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rdx
leaq 0x33d3a3(%rip), %rcx    # 0x39a420
movswl (%rcx,%rdx,2), %ecx
addl %ecx, %eax
movw %ax, 0x3edce6(%rip)     # 0x44ad70
movslq -0x38(%rbp), %rcx
leaq 0x53e6cb(%rip), %rax    # 0x59b760
movl (%rax,%rcx,4), %eax
movslq -0x3c(%rbp), %rdx
leaq 0x24b52d(%rip), %rcx    # 0x2a85d0
movl (%rcx,%rdx,4), %ecx
subl $0x1, %ecx
movslq %ecx, %rdx
leaq 0x53e6ad(%rip), %rcx    # 0x59b760
xorl (%rcx,%rdx,4), %eax
movl -0x30(%rbp), %ecx
sarl %cl, %eax
cmpl $0x0, %eax
jne 0x5d0f4
movl -0x38(%rbp), %edi
movslq -0x3c(%rbp), %rcx
leaq 0x24b502(%rip), %rax    # 0x2a85d0
movl (%rax,%rcx,4), %esi
subl $0x1, %esi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x54137d(%rip), %r8     # 0x59e460
leaq 0x53e676(%rip), %r9     # 0x59b760
callq 0x5e710
jmp 0x5d1b6
movl -0x38(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x38(%rbp), %eax
movslq -0x3c(%rbp), %rdx
leaq 0x24b4c8(%rip), %rcx    # 0x2a85d0
cmpl (%rcx,%rdx,4), %eax
jge 0x5d188
movl -0x2c(%rbp), %eax
movslq -0x38(%rbp), %rdx
leaq 0x53e645(%rip), %rcx    # 0x59b760
movl (%rcx,%rdx,4), %edx
movl -0x30(%rbp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rdx
leaq 0x33d2f1(%rip), %rcx    # 0x39a420
movswl (%rcx,%rdx,2), %ecx
addl %ecx, %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
movswl 0x3edc2e(%rip), %ecx    # 0x44ad70
cmpl %ecx, %eax
je 0x5d17a
movl -0x24(%rbp), %edi
movl -0x38(%rbp), %esi
subl $0x1, %esi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x541302(%rip), %r8     # 0x59e460
leaq 0x53e5fb(%rip), %r9     # 0x59b760
callq 0x5e710
movl -0x38(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x34(%rbp), %eax
movw %ax, 0x3edbf6(%rip)     # 0x44ad70
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x5d0fa
movl -0x24(%rbp), %eax
cmpl -0x38(%rbp), %eax
jge 0x5d1b4
movl -0x24(%rbp), %edi
movl -0x38(%rbp), %esi
subl $0x1, %esi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x5412b8(%rip), %r8     # 0x59e460
leaq 0x53e5b1(%rip), %r9     # 0x59b760
callq 0x5e710
jmp 0x5d1b6
movl -0x2c(%rbp), %eax
movw %ax, 0x3edbb0(%rip)     # 0x44ad70
movl $0xffffffff, -0x38(%rbp) # imm = 0xFFFFFFFF
jmp 0x5d1c9
jmp 0x5d1cb
movslq -0x3c(%rbp), %rcx
leaq 0x3bd35a(%rip), %rax    # 0x41a530
movswl (%rax,%rcx,2), %eax
movl %eax, -0x3c(%rbp)
jmp 0x5cd8f
cmpl $0x0, -0x38(%rbp)
jl 0x5d38d
movswl 0x3edb7d(%rip), %eax    # 0x44ad70
movl %eax, -0x2c(%rbp)
movswq 0x3edb72(%rip), %rcx    # 0x44ad70
leaq 0x3f23ab(%rip), %rax    # 0x44f5b0
movzbl (%rax,%rcx), %eax
andl $0xf, %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
movslq -0x38(%rbp), %rdx
leaq 0x53e543(%rip), %rcx    # 0x59b760
movl (%rcx,%rdx,4), %edx
movl -0x30(%rbp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rdx
leaq 0x33d1ef(%rip), %rcx    # 0x39a420
movswl (%rcx,%rdx,2), %ecx
addl %ecx, %eax
movw %ax, 0x3edb32(%rip)     # 0x44ad70
movslq -0x38(%rbp), %rcx
leaq 0x53e517(%rip), %rax    # 0x59b760
movl (%rax,%rcx,4), %eax
movslq -0x14(%rbp), %rdx
leaq 0x3b72c9(%rip), %rcx    # 0x414520
movswq (%rcx,%rdx,2), %rdx
leaq 0x24f37d(%rip), %rcx    # 0x2ac5e0
movslq (%rcx,%rdx,4), %rdx
leaq 0x53e4f2(%rip), %rcx    # 0x59b760
xorl (%rcx,%rdx,4), %eax
movl -0x30(%rbp), %ecx
sarl %cl, %eax
cmpl $0x0, %eax
jne 0x5d2b8
movl -0x38(%rbp), %edi
movslq -0x14(%rbp), %rcx
leaq 0x3b7297(%rip), %rax    # 0x414520
movswq (%rax,%rcx,2), %rcx
leaq 0x24f34b(%rip), %rax    # 0x2ac5e0
movl (%rax,%rcx,4), %esi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x5411b9(%rip), %r8     # 0x59e460
leaq 0x53e4b2(%rip), %r9     # 0x59b760
callq 0x5e710
jmp 0x5d383
movl -0x38(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x38(%rbp), %eax
movslq -0x14(%rbp), %rdx
leaq 0x3b7254(%rip), %rcx    # 0x414520
movswq (%rcx,%rdx,2), %rdx
leaq 0x24f308(%rip), %rcx    # 0x2ac5e0
cmpl (%rcx,%rdx,4), %eax
jg 0x5d358
movl -0x2c(%rbp), %eax
movslq -0x38(%rbp), %rdx
leaq 0x53e475(%rip), %rcx    # 0x59b760
movl (%rcx,%rdx,4), %edx
movl -0x30(%rbp), %ecx
sarl %cl, %edx
movl %edx, %ecx
movslq %ecx, %rdx
leaq 0x33d121(%rip), %rcx    # 0x39a420
movswl (%rcx,%rdx,2), %ecx
addl %ecx, %eax
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
movswl 0x3eda5e(%rip), %ecx    # 0x44ad70
cmpl %ecx, %eax
je 0x5d34a
movl -0x24(%rbp), %edi
movl -0x38(%rbp), %esi
subl $0x1, %esi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x541132(%rip), %r8     # 0x59e460
leaq 0x53e42b(%rip), %r9     # 0x59b760
callq 0x5e710
movl -0x38(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x34(%rbp), %eax
movw %ax, 0x3eda26(%rip)     # 0x44ad70
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x5d2be
movl -0x24(%rbp), %eax
cmpl -0x38(%rbp), %eax
jg 0x5d381
movl -0x24(%rbp), %edi
movl -0x38(%rbp), %esi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
leaq 0x5410eb(%rip), %r8     # 0x59e460
leaq 0x53e3e4(%rip), %r9     # 0x59b760
callq 0x5e710
jmp 0x5d383
movl -0x2c(%rbp), %eax
movw %ax, 0x3ed9e3(%rip)     # 0x44ad70
movl -0x48(%rbp), %eax
movl %eax, 0x25b266(%rip)    # 0x2b85fc
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)