// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r8, %rbx
testl %edx, %edx
jle 0xb2c69
movl %edx, %eax
movl -0x4(%rdi,%rax,4), %eax
jmp 0xb2c6b
xorl %eax, %eax
movslq %edx, %r8
cmpl $0x4, %ecx
je 0xb2fa6
cmpl $0x3, %ecx
je 0xb2c9e
cmpl $0x1, %ecx
jne 0xb34ab
pushq $0x3
popq %r14
addl (%rsi,%r8,4), %eax
pushq $-0x2
popq %rcx
cltd
idivl %ecx
movl %eax, %ebp
addl (%rdi,%r8,4), %ebp
jmp 0xb3479
movl (%rdi,%r8,4), %ebp
movl $0xff, %edx
movl %ebp, %r13d
andl %edx, %r13d
movl (%rsi,%r8,4), %ecx
movl %eax, %esi
andl %edx, %esi
movl %ecx, %edi
andl %edx, %edi
addl %esi, %edi
shrl %edi
subl %edi, %r13d
movl %ebp, %r12d
shrl $0x8, %r12d
andl %edx, %r12d
movl %eax, %esi
shrl $0x8, %esi
movl %ecx, %edi
shrl $0x8, %edi
andl %edx, %esi
andl %edx, %edi
addl %esi, %edi
shrl %edi
subl %edi, %r12d
shrl $0x10, %ebp
andl %edx, %ebp
shrl $0x10, %eax
shrl $0x10, %ecx
andl %edx, %eax
andl %edx, %ecx
addl %eax, %ecx
shrl %ecx
subl %ecx, %ebp
cvtsi2sd %r13d, %xmm0
movsd %xmm0, 0x18(%rsp)
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
xorpd 0x3078f(%rip), %xmm0    # 0xe34a0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
cvtsi2sd %r12d, %xmm0
movsd %xmm0, 0x10(%rsp)
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x8(%rsp)
jbe 0xb2dae
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb2dae
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
xorpd 0x3074a(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2dae
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb2dae
pushq $0x2
popq %r15
movl %r15d, %edi
movl %r15d, %esi
callq 0x570f0
xorpd 0x30715(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2dae
movl %r15d, %edi
movl %r15d, %esi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jae 0xb33a6
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
xorpd 0x306df(%rip), %xmm0    # 0xe34a0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2e4c
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb2e4c
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
xorpd 0x306ad(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2e4c
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb2e4c
pushq $0x2
popq %rdi
pushq $0x3
popq %r15
movl %r15d, %esi
callq 0x570f0
xorpd 0x30677(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2e4c
pushq $0x2
popq %rdi
movl %r15d, %esi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jae 0xb33aa
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
xorpd 0x30641(%rip), %xmm0    # 0xe34a0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2eea
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb2eea
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
xorpd 0x3060f(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2eea
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb2eea
pushq $0x2
popq %rdi
pushq $0x4
popq %r15
movl %r15d, %esi
callq 0x570f0
xorpd 0x305d9(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb2eea
pushq $0x2
popq %rdi
movl %r15d, %esi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jae 0xb33ae
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
xorpd 0x305a3(%rip), %xmm0    # 0xe34a0
xorl %r14d, %r14d
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb340d
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb340d
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
xorpd 0x30566(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb340d
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb340d
pushq $0x2
popq %rdi
pushq $0x5
popq %r15
movl %r15d, %esi
callq 0x570f0
xorpd 0x30528(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb340d
pushq $0x2
popq %rdi
movl %r15d, %esi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jb 0xb340d
pushq $0x3
jmp 0xb33b0
movl (%rdi,%r8,4), %ebp
movl $0xff, %edx
movl %ebp, %r15d
andl %edx, %r15d
movl (%rsi,%r8,4), %ecx
movl %eax, %esi
andl %edx, %esi
movl %ecx, %edi
andl %edx, %edi
addl %esi, %edi
shrl %edi
subl %edi, %r15d
movl %ebp, %r13d
shrl $0x8, %r13d
andl %edx, %r13d
movl %eax, %esi
shrl $0x8, %esi
movl %ecx, %edi
shrl $0x8, %edi
andl %edx, %esi
andl %edx, %edi
addl %esi, %edi
shrl %edi
subl %edi, %r13d
movl %ebp, %r12d
shrl $0x10, %r12d
andl %edx, %r12d
movl %eax, %esi
shrl $0x10, %esi
movl %ecx, %edi
shrl $0x10, %edi
andl %edx, %esi
andl %edx, %edi
addl %esi, %edi
shrl %edi
subl %edi, %r12d
shrl $0x18, %ebp
shrl $0x18, %eax
shrl $0x18, %ecx
addl %eax, %ecx
shrl %ecx
subl %ecx, %ebp
cvtsi2sd %r15d, %xmm0
movsd %xmm0, 0x18(%rsp)
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
xorpd 0x3046e(%rip), %xmm0    # 0xe34a0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
cvtsi2sd %r13d, %xmm0
movsd %xmm0, 0x10(%rsp)
cvtsi2sd %r12d, %xmm0
movsd %xmm0, 0x8(%rsp)
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x20(%rsp)
jbe 0xb3112
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb3112
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
xorpd 0x30416(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb3112
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb3112
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
xorpd 0x303e6(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb3112
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jb 0xb3112
pushq $0x2
popq %r14
movl %r14d, %edi
movl %r14d, %esi
callq 0x570f0
xorpd 0x303b1(%rip), %xmm0    # 0xe34a0
movsd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb3112
movl %r14d, %edi
movl %r14d, %esi
callq 0x570f0
ucomisd 0x20(%rsp), %xmm0
jae 0xb33c1
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
xorpd 0x3037b(%rip), %xmm0    # 0xe34a0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb31ea
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb31ea
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
xorpd 0x30341(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb31ea
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb31ea
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
xorpd 0x3030f(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb31ea
pushq $0x2
popq %rdi
pushq $0x3
popq %rsi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jb 0xb31ea
pushq $0x2
popq %rdi
pushq $0x3
popq %r14
movl %r14d, %esi
callq 0x570f0
xorpd 0x302d9(%rip), %xmm0    # 0xe34a0
movsd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb31ea
pushq $0x2
popq %rdi
movl %r14d, %esi
callq 0x570f0
ucomisd 0x20(%rsp), %xmm0
jae 0xb33c5
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
xorpd 0x302a3(%rip), %xmm0    # 0xe34a0
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb32c2
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb32c2
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
xorpd 0x30269(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb32c2
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb32c2
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
xorpd 0x30237(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb32c2
pushq $0x2
popq %rdi
pushq $0x4
popq %rsi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jb 0xb32c2
pushq $0x2
popq %rdi
pushq $0x4
popq %r14
movl %r14d, %esi
callq 0x570f0
xorpd 0x30201(%rip), %xmm0    # 0xe34a0
movsd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb32c2
pushq $0x2
popq %rdi
movl %r14d, %esi
callq 0x570f0
ucomisd 0x20(%rsp), %xmm0
jae 0xb33c9
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
xorpd 0x301cb(%rip), %xmm0    # 0xe34a0
xorl %r14d, %r14d
movsd 0x18(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
ucomisd 0x18(%rsp), %xmm0
jb 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
xorpd 0x3018e(%rip), %xmm0    # 0xe34a0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
ucomisd 0x10(%rsp), %xmm0
jb 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
xorpd 0x30154(%rip), %xmm0    # 0xe34a0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
ucomisd 0x8(%rsp), %xmm0
jb 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
xorpd 0x30122(%rip), %xmm0    # 0xe34a0
movsd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0xb33d7
pushq $0x2
popq %rdi
pushq $0x5
popq %rsi
callq 0x570f0
ucomisd 0x20(%rsp), %xmm0
jb 0xb33d7
pushq $0x3
popq %rsi
pushq $0x5
popq %r14
jmp 0xb33cc
xorl %esi, %esi
jmp 0xb33b1
pushq $0x1
jmp 0xb33b0
pushq $0x2
popq %rsi
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0x58f60
movl %r15d, %r14d
jmp 0xb340d
xorl %esi, %esi
jmp 0xb33cc
pushq $0x1
jmp 0xb33cb
pushq $0x2
popq %rsi
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0x58f60
testl %r15d, %r15d
jle 0xb33ef
pushq $0x1
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x58f60
decl %r15d
jmp 0xb33ff
pushq $0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x58f60
negl %r15d
movl %r15d, %esi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x58f60
testl %r13d, %r13d
jle 0xb3425
pushq $0x1
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x58f60
decl %r13d
jmp 0xb3435
pushq $0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x58f60
negl %r13d
movl %r13d, %esi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x58f60
testl %r12d, %r12d
jle 0xb345b
pushq $0x1
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x58f60
decl %r12d
jmp 0xb346b
pushq $0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x58f60
negl %r12d
movl %r12d, %esi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x58f60
testl %ebp, %ebp
jle 0xb348f
pushq $0x1
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x58f60
decl %ebp
jmp 0xb349e
pushq $0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x58f60
negl %ebp
movl %ebp, %esi
movq %rbx, %rdi
movl %r14d, %edx
callq 0x58f60
pushq $0x1
popq %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq