// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/hpol_processor.c
// Function: gt_hpol_processor_output_segment
static void gt_hpol_processor_output_segment(GtAlignedSegment *as,
    bool may_be_gapped, GtFile *outfp, const char *desc)
{
  GtUword slen;
  if (may_be_gapped)
    gt_aligned_segment_ungap_seq_and_qual(as);
  slen = (GtUword)strlen(gt_aligned_segment_seq(as));
  gt_assert(slen == (GtUword)strlen(gt_aligned_segment_qual(as)));
  if (gt_aligned_segment_is_reverse(as))
  {
    GtError *err = gt_error_new();
    char *q = gt_aligned_segment_qual(as), tmp;
    GtUword i;
    for (i = 0; i < (slen + 1UL) >> 1; i++)
    {
      tmp = q[i];
      q[i] = q[slen - i - 1UL];
      q[slen - i - 1UL] = tmp;
    }
    gt_assert((GtUword)strlen(gt_aligned_segment_qual(as)) == slen);
    if (gt_reverse_complement(gt_aligned_segment_seq(as), slen, err) != 0)
    {
      fprintf(stderr, "error: %s", gt_error_get(err));
      exit(EXIT_FAILURE);
    }
    gt_error_delete(err);
  }
  gt_fastq_show_entry((desc != NULL) ? desc :
      gt_aligned_segment_description(as), gt_aligned_segment_seq(as),
      gt_aligned_segment_qual(as), slen, 0, false, outfp);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rcx, %r14
movq %rdx, %rbx
movq %rdi, %r15
testl %esi, %esi
je 0xefce5
movq %r15, %rdi
callq 0x29680e
movq %r15, %rdi
callq 0x29632e
movq %rax, %rdi
callq 0x172d0
movq %rax, %r12
movq %r15, %rdi
callq 0x296370
movq %rax, %rdi
callq 0x172d0
cmpq %rax, %r12
jne 0xefde4
movq %r15, %rdi
callq 0x2964bf
testb %al, %al
je 0xefd98
callq 0x89da4
movq %rax, %r13
movq %r15, %rdi
callq 0x296370
leaq 0x1(%r12), %rcx
shrq %rcx
leaq (%r12,%rax), %rdx
decq %rdx
xorl %esi, %esi
cmpq %rsi, %rcx
je 0xefd59
movb (%rax,%rsi), %dil
movb (%rdx), %r8b
movb %r8b, (%rax,%rsi)
movb %dil, (%rdx)
incq %rsi
decq %rdx
jmp 0xefd3e
movq %r15, %rdi
callq 0x296370
movq %rax, %rdi
callq 0x172d0
cmpq %r12, %rax
jne 0xefe0e
movq %r15, %rdi
callq 0x29632e
movq %rax, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x111ab8
testl %eax, %eax
jne 0xefe44
movq %r13, %rdi
callq 0x8a045
testq %r14, %r14
jne 0xefda8
movq %r15, %rdi
callq 0x29693c
movq %rax, %r14
movq %r15, %rdi
callq 0x29632e
movq %rax, %r13
movq %r15, %rdi
callq 0x296370
movq %rbx, (%rsp)
movq %r14, %rdi
movq %r13, %rsi
movq %rax, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8cb58
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq 0x34817d(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1f521e(%rip), %rsi    # 0x2e5013
leaq 0x233e50(%rip), %rdx    # 0x323c4c
leaq 0x233e7e(%rip), %rcx    # 0x323c81
leaq 0x233bb7(%rip), %r8     # 0x3239c1
pushq $0x71
jmp 0xefe36
movq 0x348153(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1f51f4(%rip), %rsi    # 0x2e5013
leaq 0x233e7c(%rip), %rdx    # 0x323ca2
leaq 0x233e54(%rip), %rcx    # 0x323c81
leaq 0x233b8d(%rip), %r8     # 0x3239c1
pushq $0x7d
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x34811d(%rip), %rax    # 0x437f68
movq (%rax), %rbx
movq %r13, %rdi
callq 0x89f41
leaq 0x22c591(%rip), %rsi    # 0x31c3ee
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x17a50
pushq $0x1
popq %rdi
callq 0x178f0