// File: /workspace/github_c_makefile_star2_O2/thegenemyers[P]DASCRUBBER/QV.c
// Function: Compress_Next_QVentry
int Compress_Next_QVentry(FILE *input, FILE *output, QVcoding *coding, int lossy)
{ int rlen, clen;

  //  Get all 5 streams, compress each with its scheme, and output

  rlen = Read_Lines(input,5);
  if (rlen < 0)
    { if (rlen == -1)
        EPRINTF(EPLACE,"Line %d: incomplete last entry of .quiv file\n",Nline);
      EXIT (-1);
    }

  if (coding->delChar < 0)
    { Encode(coding->delScheme, output, (uint8 *) Read, rlen);
      clen = rlen;
    }
  else
    { Encode_Run(coding->delScheme, coding->dRunScheme, output,
                 (uint8 *) Read, rlen, coding->delChar);
      clen = Pack_Tag(Read+Rmax,Read,rlen,coding->delChar);
    }
  Number_Read(Read+Rmax);
  Compress_Read(clen,Read+Rmax);
  fwrite(Read+Rmax,1,COMPRESSED_LEN(clen),output);

  if (lossy)
    { uint8 *insert = (uint8 *) (Read+2*Rmax);
      uint8 *merge  = (uint8 *) (Read+3*Rmax);
      int    k;

      for (k = 0; k < rlen; k++)
        { insert[k] = (uint8) ((insert[k] >> 1) << 1);
          merge[k]  = (uint8) (( merge[k] >> 2) << 2);
        }
    }

  Encode(coding->insScheme, output, (uint8 *) (Read+2*Rmax), rlen);
  Encode(coding->mrgScheme, output, (uint8 *) (Read+3*Rmax), rlen);
  if (coding->subChar < 0)
    Encode(coding->subScheme, output, (uint8 *) (Read+4*Rmax), rlen);
  else
    Encode_Run(coding->subScheme, coding->sRunScheme, output,
               (uint8 *) (Read+4*Rmax), rlen, coding->subChar);

  return (rlen);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %ebp
movq %rdx, %r15
movq %rsi, %r14
pushq $0x5
popq %rsi
callq 0x66fe
movl %eax, %ebx
testl %eax, %eax
js 0x83f5
movl %ebp, 0x4(%rsp)
movl 0x30(%r15), %r9d
movq (%r15), %rdi
testl %r9d, %r9d
js 0x82c1
movq 0x20(%r15), %rsi
movq 0x86a1(%rip), %rcx      # 0x10930
movq %r14, %rdx
movl %ebx, %r8d
callq 0x7e98
movq 0x868f(%rip), %rbp      # 0x10930
movslq 0x5f10(%rip), %r13      # 0xe1b8
movq %rbp, %rdi
addq %r13, %rdi
movl 0x30(%r15), %ecx
movq %rbp, %rsi
movl %ebx, %edx
callq 0x821b
movl %eax, %r12d
jmp 0x82e3
movq 0x8668(%rip), %rdx      # 0x10930
movq %r14, %rsi
movl %ebx, %ecx
callq 0x7cc4
movq 0x8657(%rip), %rbp      # 0x10930
movslq 0x5ed8(%rip), %r13      # 0xe1b8
movl %ebx, %r12d
addq %rbp, %r13
movq %r13, %rdi
callq 0x23f2
movslq 0x5ec3(%rip), %rsi      # 0xe1b8
addq 0x8634(%rip), %rsi      # 0x10930
movl %r12d, %edi
callq 0x22dd
movslq 0x5ead(%rip), %rdi      # 0xe1b8
addq 0x861e(%rip), %rdi      # 0x10930
addl $0x3, %r12d
sarl $0x2, %r12d
movslq %r12d, %rdx
pushq $0x1
popq %rsi
movq %r14, %rcx
callq 0x1280
movl 0x5e8a(%rip), %esi      # 0xe1b8
leal (%rsi,%rsi), %eax
movq 0x85f8(%rip), %rdx      # 0x10930
cltq
cmpl $0x0, 0x4(%rsp)
je 0x8367
leaq (%rdx,%rax), %rcx
leal (%rsi,%rsi,2), %esi
movslq %esi, %rsi
addq %rdx, %rsi
movl %ebx, %edi
xorl %r8d, %r8d
cmpq %r8, %rdi
je 0x8367
andb $-0x2, (%rcx,%r8)
andb $-0x4, (%rsi,%r8)
incq %r8
jmp 0x8353
movq 0x8(%r15), %rdi
addq %rax, %rdx
movq %r14, %rsi
movl %ebx, %ecx
callq 0x7cc4
movq 0x10(%r15), %rdi
movslq 0x5e35(%rip), %rax      # 0xe1b8
leaq (%rax,%rax,2), %rdx
addq 0x85a2(%rip), %rdx      # 0x10930
movq %r14, %rsi
movl %ebx, %ecx
callq 0x7cc4
movl 0x34(%r15), %r9d
movq 0x18(%r15), %rdi
testl %r9d, %r9d
js 0x83c8
movq 0x28(%r15), %rsi
movslq 0x5e08(%rip), %rcx      # 0xe1b8
shlq $0x2, %rcx
addq 0x8575(%rip), %rcx      # 0x10930
movq %r14, %rdx
movl %ebx, %r8d
callq 0x7e98
jmp 0x83e4
movslq 0x5de9(%rip), %rdx      # 0xe1b8
shlq $0x2, %rdx
addq 0x8556(%rip), %rdx      # 0x10930
movq %r14, %rsi
movl %ebx, %ecx
callq 0x7cc4
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $-0x1, %ebx
jne 0x8418
movq 0x5bf7(%rip), %rax      # 0xdff8
movq (%rax), %rdi
movl 0x852e(%rip), %edx      # 0x10938
leaq 0x1dab(%rip), %rsi      # 0xa1bc
xorl %eax, %eax
callq 0x11a0
pushq $0x1
popq %rdi
callq 0x1270