// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/misc/codecs.cpp
// Function: CompressDelta(int*, int*, int, int, smooth::IO::OutStream*)
int CompressDelta(int line[], int prevline[], int x, int parts, PCIOut out)
{
	int	 pixb1 = (x > 0 ? line[x - 1] : 0);

	int	 md = 0;
	int	 bias;
	int	 redbias;
	int	 greenbias;
	int	 bluebias;
	int	 alphabias;

	switch (parts)
	{
		case 1:
			bias = line[x] - (pixb1 + prevline[x]) / 2;

			if (bias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - bias, 3);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(bias - 1, 3);
			}

			break;
		case 3:
			redbias	  = Color(line[x]).GetRed()   - (Color(pixb1).GetRed()	 + Color(prevline[x]).GetRed())	  / 2;
			greenbias = Color(line[x]).GetGreen() - (Color(pixb1).GetGreen() + Color(prevline[x]).GetGreen()) / 2;
			bluebias  = Color(line[x]).GetBlue()  - (Color(pixb1).GetBlue()	 + Color(prevline[x]).GetBlue())  / 2;

			if (((redbias > -Math::Pow(2l, 2)) && (redbias <= Math::Pow(2l, 2))) && ((greenbias > -Math::Pow(2l, 2)) && (greenbias <= Math::Pow(2l, 2))) && ((bluebias > -Math::Pow(2l, 2)) && (bluebias <= Math::Pow(2l, 2))))
			{
				out->OutputBits(0, 2);
				md = 2;
			}
			else if (((redbias > -Math::Pow(2l, 3)) && (redbias <= Math::Pow(2l, 3))) && ((greenbias > -Math::Pow(2l, 3)) && (greenbias <= Math::Pow(2l, 3))) && ((bluebias > -Math::Pow(2l, 3)) && (bluebias <= Math::Pow(2l, 3))))
			{
				out->OutputBits(1, 2);
				md = 3;
			}
			else if (((redbias > -Math::Pow(2l, 4)) && (redbias <= Math::Pow(2l, 4))) && ((greenbias > -Math::Pow(2l, 4)) && (greenbias <= Math::Pow(2l, 4))) && ((bluebias > -Math::Pow(2l, 4)) && (bluebias <= Math::Pow(2l, 4))))
			{
				out->OutputBits(2, 2);
				md = 4;
			}
			else if (((redbias > -Math::Pow(2l, 5)) && (redbias <= Math::Pow(2l, 5))) && ((greenbias > -Math::Pow(2l, 5)) && (greenbias <= Math::Pow(2l, 5))) && ((bluebias > -Math::Pow(2l, 5)) && (bluebias <= Math::Pow(2l, 5))))
			{
				out->OutputBits(3, 2);
				md = 5;
			}

			if (redbias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - redbias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(redbias - 1, md);
			}
			if (greenbias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - greenbias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(greenbias - 1, md);
			}
			if (bluebias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - bluebias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(bluebias - 1, md);
			}

			break;
		case 4:
			redbias	  = Color(line[x]).GetRed()   - (Color(pixb1).GetRed()	 + Color(prevline[x]).GetRed())	  / 2;
			greenbias = Color(line[x]).GetGreen() - (Color(pixb1).GetGreen() + Color(prevline[x]).GetGreen()) / 2;
			bluebias  = Color(line[x]).GetBlue()  - (Color(pixb1).GetBlue()	 + Color(prevline[x]).GetBlue())  / 2;
			alphabias = Color(line[x]).GetAlpha() - (Color(pixb1).GetAlpha() + Color(prevline[x]).GetAlpha()) / 2;

			if (((redbias > -Math::Pow(2l, 2)) && (redbias <= Math::Pow(2l, 2))) && ((greenbias > -Math::Pow(2l, 2)) && (greenbias <= Math::Pow(2l, 2))) && ((bluebias > -Math::Pow(2l, 2)) && (bluebias <= Math::Pow(2l, 2))) && ((alphabias > -Math::Pow(2l, 2)) && (alphabias <= Math::Pow(2l, 2))))
			{
				out->OutputBits(0, 2);
				md = 2;
			}
			else if (((redbias > -Math::Pow(2l, 3)) && (redbias <= Math::Pow(2l, 3))) && ((greenbias > -Math::Pow(2l, 3)) && (greenbias <= Math::Pow(2l, 3))) && ((bluebias > -Math::Pow(2l, 3)) && (bluebias <= Math::Pow(2l, 3))) && ((alphabias > -Math::Pow(2l, 3)) && (alphabias <= Math::Pow(2l, 3))))
			{
				out->OutputBits(1, 2);
				md = 3;
			}
			else if (((redbias > -Math::Pow(2l, 4)) && (redbias <= Math::Pow(2l, 4))) && ((greenbias > -Math::Pow(2l, 4)) && (greenbias <= Math::Pow(2l, 4))) && ((bluebias > -Math::Pow(2l, 4)) && (bluebias <= Math::Pow(2l, 4))) && ((alphabias > -Math::Pow(2l, 4)) && (alphabias <= Math::Pow(2l, 4))))
			{
				out->OutputBits(2, 2);
				md = 4;
			}
			else if (((redbias > -Math::Pow(2l, 5)) && (redbias <= Math::Pow(2l, 5))) && ((greenbias > -Math::Pow(2l, 5)) && (greenbias <= Math::Pow(2l, 5))) && ((bluebias > -Math::Pow(2l, 5)) && (bluebias <= Math::Pow(2l, 5))) && ((alphabias > -Math::Pow(2l, 5)) && (alphabias <= Math::Pow(2l, 5))))
			{
				out->OutputBits(3, 2);
				md = 5;
			}

			if (redbias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - redbias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(redbias - 1, md);
			}
			if (greenbias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - greenbias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(greenbias - 1, md);
			}
			if (bluebias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - bluebias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(bluebias - 1, md);
			}
			if (alphabias <= 0)
			{
				out->OutputBits(0, 1);
				out->OutputBits(0 - alphabias, md);
			}
			else
			{
				out->OutputBits(1, 1);
				out->OutputBits(alphabias - 1, md);
			}

			break;
	}

	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3a0, %rsp            # imm = 0x3A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
cmpl $0x0, -0x14(%rbp)
jle 0x11721b
movq -0x8(%rbp), %rax
movl -0x14(%rbp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x194(%rbp)
jmp 0x117225
xorl %eax, %eax
movl %eax, -0x194(%rbp)
jmp 0x117225
movl -0x194(%rbp), %eax
movl %eax, -0x24(%rbp)
movl $0x0, -0x28(%rbp)
movl -0x18(%rbp), %eax
movl %eax, -0x198(%rbp)
subl $0x1, %eax
je 0x11726a
jmp 0x117245
movl -0x198(%rbp), %eax
subl $0x3, %eax
je 0x1172fd
jmp 0x117256
movl -0x198(%rbp), %eax
subl $0x4, %eax
je 0x117b7d
jmp 0x1186cf
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x19c(%rbp)
movl -0x24(%rbp), %eax
movq -0x10(%rbp), %rcx
movslq -0x14(%rbp), %rdx
addl (%rcx,%rdx,4), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x19c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
jg 0x1172ce
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x2c(%rbp), %eax
movslq %eax, %rsi
movl $0x3, %edx
callq 0x5c5a0
jmp 0x1172f8
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x2c(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl $0x3, %edx
callq 0x5c5a0
jmp 0x1186cf
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x50(%rbp), %rdi
callq 0x59f20
movl %eax, -0x1bc(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0x60(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x60(%rbp), %rdi
callq 0x59f20
movl %eax, -0x1c0(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x70(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x70(%rbp), %rdi
callq 0x59f20
movl %eax, %ecx
movl -0x1c0(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x1bc(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x80(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x80(%rbp), %rdi
callq 0x5d920
movl %eax, -0x1b4(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0x90(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x90(%rbp), %rdi
callq 0x5d920
movl %eax, -0x1b8(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0xa0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0xa0(%rbp), %rdi
callq 0x5d920
movl %eax, %ecx
movl -0x1b8(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x1b4(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x34(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0xb0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0xb0(%rbp), %rdi
callq 0x5b650
movl %eax, -0x1ac(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0xc0(%rbp), %rdi
callq 0x5b650
movl %eax, -0x1b0(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0xd0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0xd0(%rbp), %rdi
callq 0x5b650
movl %eax, %ecx
movl -0x1b0(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x1ac(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x38(%rbp)
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x1a8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x1a8(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11760a
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x1c8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x1c8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11760a
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x1d0(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x1d0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11760a
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x1d8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x1d8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11760a
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x1e0(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x1e0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11760a
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x1e8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x1e8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11760a
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x2, -0x28(%rbp)
jmp 0x117a76
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x1f0(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x1f0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117783
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x1f8(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x1f8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117783
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x200(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x200(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117783
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x208(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x208(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117783
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x210(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x210(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117783
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x218(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x218(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117783
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x3, -0x28(%rbp)
jmp 0x117a74
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x220(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x220(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1178fc
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x228(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x228(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x1178fc
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x230(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x230(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1178fc
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x238(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x238(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x1178fc
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x240(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x240(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1178fc
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x248(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x248(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x1178fc
movq -0x20(%rbp), %rdi
movl $0x2, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x4, -0x28(%rbp)
jmp 0x117a72
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x250(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x250(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117a70
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x258(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x258(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117a70
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x260(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x260(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117a70
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x268(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x268(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117a70
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x270(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x270(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117a70
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x278(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x278(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117a70
movq -0x20(%rbp), %rdi
movl $0x3, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x5, -0x28(%rbp)
jmp 0x117a72
jmp 0x117a74
jmp 0x117a76
cmpl $0x0, -0x30(%rbp)
jg 0x117aa4
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x30(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x117acc
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
cmpl $0x0, -0x34(%rbp)
jg 0x117afa
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x34(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x117b22
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x34(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
cmpl $0x0, -0x38(%rbp)
jg 0x117b50
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x38(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x117b78
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x38(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x1186cf
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0xe0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0xe0(%rbp), %rdi
callq 0x59f20
movl %eax, -0x29c(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0xf0(%rbp), %rdi
callq 0x59f20
movl %eax, -0x2a0(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x100(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x100(%rbp), %rdi
callq 0x59f20
movl %eax, %ecx
movl -0x2a0(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x29c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x110(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x110(%rbp), %rdi
callq 0x5d920
movl %eax, -0x294(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0x120(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x120(%rbp), %rdi
callq 0x5d920
movl %eax, -0x298(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x130(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x130(%rbp), %rdi
callq 0x5d920
movl %eax, %ecx
movl -0x298(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x294(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x34(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x140(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x140(%rbp), %rdi
callq 0x5b650
movl %eax, -0x28c(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0x150(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x150(%rbp), %rdi
callq 0x5b650
movl %eax, -0x290(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x160(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x160(%rbp), %rdi
callq 0x5b650
movl %eax, %ecx
movl -0x290(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x28c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x170(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x170(%rbp), %rdi
callq 0x5bac0
movl %eax, -0x284(%rbp)
movslq -0x24(%rbp), %rsi
leaq -0x180(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x180(%rbp), %rdi
callq 0x5bac0
movl %eax, -0x288(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
movslq (%rax,%rcx,4), %rsi
leaq -0x190(%rbp), %rdi
xorl %edx, %edx
callq 0x59be0
leaq -0x190(%rbp), %rdi
callq 0x5bac0
movl %eax, %ecx
movl -0x288(%rbp), %eax
addl %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x284(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x280(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x280(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117fa7
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x2a8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x2a8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117fa7
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x2b0(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x2b0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117fa7
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x2b8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x2b8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117fa7
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x2c0(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x2c0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117fa7
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x2c8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x2c8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117fa7
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x2d0(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x2d0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x117fa7
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x2d8(%rbp)
movl $0x2, %esi
movl %esi, %edi
callq 0x5a330
movsd -0x2d8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x117fa7
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x2, -0x28(%rbp)
jmp 0x118575
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x2e0(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x2e0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118196
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x2e8(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x2e8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118196
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x2f0(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x2f0(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118196
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x2f8(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x2f8(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118196
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x300(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x300(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118196
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x308(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x308(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118196
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x310(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x310(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118196
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x318(%rbp)
movl $0x2, %edi
movl $0x3, %esi
callq 0x5a330
movsd -0x318(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118196
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x3, -0x28(%rbp)
jmp 0x118573
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x320(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x320(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118385
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x328(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x328(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118385
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x330(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x330(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118385
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x338(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x338(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118385
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x340(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x340(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118385
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x348(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x348(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118385
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x350(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x350(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x118385
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x358(%rbp)
movl $0x2, %edi
movl $0x4, %esi
callq 0x5a330
movsd -0x358(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x118385
movq -0x20(%rbp), %rdi
movl $0x2, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x4, -0x28(%rbp)
jmp 0x118571
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x360(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x360(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11856f
cvtsi2sdl -0x30(%rbp), %xmm0
movsd %xmm0, -0x368(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x368(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11856f
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x370(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x370(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11856f
cvtsi2sdl -0x34(%rbp), %xmm0
movsd %xmm0, -0x378(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x378(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11856f
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x380(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x380(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11856f
cvtsi2sdl -0x38(%rbp), %xmm0
movsd %xmm0, -0x388(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x388(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11856f
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x390(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movaps %xmm0, %xmm1
movsd -0x390(%rbp), %xmm0
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11856f
cvtsi2sdl -0x3c(%rbp), %xmm0
movsd %xmm0, -0x398(%rbp)
movl $0x2, %edi
movl $0x5, %esi
callq 0x5a330
movsd -0x398(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x11856f
movq -0x20(%rbp), %rdi
movl $0x3, %esi
movl $0x2, %edx
callq 0x5c5a0
movl $0x5, -0x28(%rbp)
jmp 0x118571
jmp 0x118573
jmp 0x118575
cmpl $0x0, -0x30(%rbp)
jg 0x1185a3
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x30(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x1185cb
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
cmpl $0x0, -0x34(%rbp)
jg 0x1185f9
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x34(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x118621
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x34(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
cmpl $0x0, -0x38(%rbp)
jg 0x11864f
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x38(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x118677
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x38(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
cmpl $0x0, -0x3c(%rbp)
jg 0x1186a5
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
xorl %eax, %eax
subl -0x3c(%rbp), %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x1186cd
movq -0x20(%rbp), %rdi
movl $0x1, %esi
movl $0x1, %edx
callq 0x5c5a0
movq -0x20(%rbp), %rdi
movl -0x3c(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
movl -0x28(%rbp), %edx
callq 0x5c5a0
jmp 0x1186cf
movl $0x1, %eax
addq $0x3a0, %rsp            # imm = 0x3A0
popq %rbp
retq
nopl (%rax)