// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hpol_processor.c
// Function: gt_hpol_processor_output_stats
static void gt_hpol_processor_output_stats(GtAlignedSegment *as,
    GtUword r_hpos, GtUword coverage, GtUword r_hlen,
    GtUword r_supp, GtUword s_hlen, GtUword a_hlen,
    GtUword a_supp, char s_char, double s_q_ave,
    GtUword c_len, GtFile *outfp)
{
  GtUword i, pos, s_hpos = 0, s_offset, s_q_bef, s_q_aft, s_q_value,
                s_q_min, s_q_max, s_q_range, s_q_first, s_q_last = 0, s_hend,
                s_mapq;
  char *s_qual, *q, edit, s_or;
  const char *s_id;
  gt_assert(r_hlen != s_hlen);
  edit = r_hlen > s_hlen ? 'I' : 'D';
  gt_assert(coverage > 0);
  r_supp = r_supp * 100 / coverage;
  a_supp = a_supp * 100 / coverage;
  s_id = gt_aligned_segment_description(as);
  s_mapq = gt_aligned_segment_mapping_quality(as);
  q = gt_aligned_segment_qual(as);
  gt_assert(s_hlen > 0);
  s_hpos = gt_aligned_segment_orig_seqpos_for_refpos(as, r_hpos);
  s_offset = gt_aligned_segment_offset_for_refpos(as, r_hpos);
  s_qual = gt_malloc(sizeof (*s_qual) * (s_hlen + 1UL));
  s_q_bef = GT_UNDEF_UWORD;
  for (i = s_offset; i > 0; /**/)
  {
    i--;
    if (q[i] != GT_UNDEF_CHAR)
    {
      s_q_bef = GT_HPOL_PROCESSOR_QUAL(q[i]);
      break;
    }
  }
  gt_assert(s_q_bef != GT_UNDEF_UWORD);
  s_q_min = ULONG_MAX;
  s_q_max = 0;
  s_q_first = GT_UNDEF_UWORD;
  if (!gt_aligned_segment_is_reverse(as))
  {
    for (i = s_offset, pos = 0; pos < s_hlen; i++)
    {
      if (q[i] != GT_UNDEF_CHAR)
      {
        s_qual[pos] = q[i];
        pos++;
        s_q_value = GT_HPOL_PROCESSOR_QUAL(q[i]);
        if (s_q_value < s_q_min)
          s_q_min = s_q_value;
        if (s_q_value > s_q_max)
          s_q_max = s_q_value;
        if (s_q_first == GT_UNDEF_UWORD)
          s_q_first = s_q_value;
        s_q_last = s_q_value;
      }
    }
  }
  else
  {
    for (i = s_offset, pos = s_hlen; pos > 0; i++)
    {
      if (q[i] != GT_UNDEF_CHAR)
      {
        s_qual[pos - 1UL] = q[i];
        pos--;
        s_q_value = GT_HPOL_PROCESSOR_QUAL(q[i]);
        if (s_q_value < s_q_min)
          s_q_min = s_q_value;
        if (s_q_value > s_q_max)
          s_q_max = s_q_value;
        if (s_q_first == GT_UNDEF_UWORD)
          s_q_first = s_q_value;
        s_q_last = s_q_value;
      }
    }
  }
  s_qual[s_hlen] = '\0';
  s_q_aft = GT_UNDEF_UWORD;
  for (/**/; i < gt_aligned_segment_length(as); i++)
  {
    if (q[i] != GT_UNDEF_CHAR)
    {
      s_q_aft = GT_HPOL_PROCESSOR_QUAL(q[i]);
      break;
    }
  }
  gt_assert(s_q_aft != GT_UNDEF_UWORD);
  gt_assert(s_q_min < ULONG_MAX);
  gt_assert(s_q_max >= s_q_min);
  s_q_range = s_q_max - s_q_min + 1UL;
  /* convert to 1-based coordinates */
  r_hpos++;
  s_hpos++;
  /* handle reverse alignments */
  if (gt_aligned_segment_is_reverse(as))
  {
    /* complement char */
    GtError *err = gt_error_new();
    (void)gt_complement(&s_char, s_char, err);
    gt_error_delete(err);
    /* correct coords on s */
    s_hend = s_hpos;
    s_hpos = s_hpos - s_hlen + 1UL;
    s_or = '-';
    /* swap q values */
    s_q_value = s_q_aft;
    s_q_aft = s_q_bef;
    s_q_bef = s_q_value;
    s_q_value = s_q_last;
    s_q_last = s_q_first;
    s_q_first = s_q_value;
  }
  else
  {
    s_hend = s_hpos + s_hlen - 1UL;
    s_or = '+';
  }
  gt_file_xprintf(outfp,
                  GT_WU "\t%c\t" GT_WU "\t" GT_WU "\t%c\t%c\t" GT_WU "\t" GT_WU
                  "\t" GT_WU "\t" GT_WU "\t" GT_WU "\t" GT_WU "\t" GT_WU "\t"
                  GT_WU "\t" GT_WU "\t" GT_WU "\t" GT_WU "\t%.2f\t" GT_WU "\t"
                  GT_WU "\t" GT_WU "\t" GT_WU "\t%s\t%s\n",
                  r_hpos, edit, s_hpos, s_hend, s_char, s_or, c_len, coverage,
                  r_hlen, r_supp, s_hlen, a_hlen, a_supp, s_mapq, s_q_bef,
                  s_q_first, s_q_min, s_q_ave, s_q_max, s_q_range, s_q_last,
                  s_q_aft, s_qual, s_id);
  gt_free(s_qual);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq 0x220(%rsp), %rax
movq 0x218(%rsp), %rax
movb 0x210(%rsp), %al
movq 0x208(%rsp), %rax
movq 0x200(%rsp), %rax
movq %rdi, 0x1c0(%rsp)
movq %rsi, 0x1b8(%rsp)
movq %rdx, 0x1b0(%rsp)
movq %rcx, 0x1a8(%rsp)
movq %r8, 0x1a0(%rsp)
movq %r9, 0x198(%rsp)
movsd %xmm0, 0x190(%rsp)
movq $0x0, 0x178(%rsp)
movq $0x0, 0x130(%rsp)
movq 0x1a8(%rsp), %rax
cmpq 0x198(%rsp), %rax
jne 0x190c73
movq 0x4ab35e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3853c7(%rip), %rsi    # 0x516013
leaq 0x3c5a07(%rip), %rdx    # 0x55665a
leaq 0x3c5a11(%rip), %rcx    # 0x55666b
leaq 0x3c509f(%rip), %r8     # 0x555d00
movl $0x194, %r9d            # imm = 0x194
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x190c75
movq 0x1a8(%rsp), %rdx
movq 0x198(%rsp), %rsi
movl $0x44, %eax
movl $0x49, %ecx
cmpq %rsi, %rdx
cmoval %ecx, %eax
movb %al, 0x10f(%rsp)
cmpq $0x0, 0x1b0(%rsp)
ja 0x190cdf
movq 0x4ab2f2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38535b(%rip), %rsi    # 0x516013
leaq 0x3c59cb(%rip), %rdx    # 0x55668a
leaq 0x3c59a5(%rip), %rcx    # 0x55666b
leaq 0x3c5033(%rip), %r8     # 0x555d00
movl $0x196, %r9d            # imm = 0x196
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x190ce1
imulq $0x64, 0x1a0(%rsp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x1b0(%rsp)
movq %rax, 0x1a0(%rsp)
imulq $0x64, 0x208(%rsp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x1b0(%rsp)
movq %rax, 0x208(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0x488bd0
movq %rax, 0x100(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0x488170
movq %rax, 0x120(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0x488260
movq %rax, 0x110(%rsp)
cmpq $0x0, 0x198(%rsp)
ja 0x190d9d
movq 0x4ab234(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38529d(%rip), %rsi    # 0x516013
leaq 0x3c591a(%rip), %rdx    # 0x556697
leaq 0x3c58e7(%rip), %rcx    # 0x55666b
leaq 0x3c4f75(%rip), %r8     # 0x555d00
movl $0x19c, %r9d            # imm = 0x19C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x190d9f
movq 0x1c0(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0x4885f0
movq %rax, 0x178(%rsp)
movq 0x1c0(%rsp), %rdi
movq 0x1b8(%rsp), %rsi
callq 0x488450
movq %rax, 0x170(%rsp)
movq 0x198(%rsp), %rdi
addq $0x1, %rdi
shlq $0x0, %rdi
leaq 0x3c4f10(%rip), %rsi    # 0x555d00
movl $0x19f, %edx            # imm = 0x19F
callq 0xe80f0
movq %rax, 0x118(%rsp)
movq $-0x1, 0x168(%rsp)
movq 0x170(%rsp), %rax
movq %rax, 0x188(%rsp)
cmpq $0x0, 0x188(%rsp)
jbe 0x190e7b
movq 0x188(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x188(%rsp)
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x7f, %eax
je 0x190e79
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbq (%rax,%rcx), %rax
subq $0x21, %rax
movq %rax, 0x168(%rsp)
jmp 0x190e7b
jmp 0x190e1e
jmp 0x190e7d
cmpq $-0x1, 0x168(%rsp)
jne 0x190ec0
movq 0x4ab111(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38517a(%rip), %rsi    # 0x516013
leaq 0x3c5802(%rip), %rdx    # 0x5566a2
leaq 0x3c57c4(%rip), %rcx    # 0x55666b
leaq 0x3c4e52(%rip), %r8     # 0x555d00
movl $0x1aa, %r9d            # imm = 0x1AA
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x190ec2
movq $-0x1, 0x150(%rsp)
movq $0x0, 0x148(%rsp)
movq $-0x1, 0x138(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0x4883f0
testb $0x1, %al
jne 0x191034
movq 0x170(%rsp), %rax
movq %rax, 0x188(%rsp)
movq $0x0, 0x180(%rsp)
movq 0x180(%rsp), %rax
cmpq 0x198(%rsp), %rax
jae 0x19102f
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x7f, %eax
je 0x191014
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x118(%rsp), %rax
movq 0x180(%rsp), %rcx
movb %dl, (%rax,%rcx)
movq 0x180(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x180(%rsp)
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbq (%rax,%rcx), %rax
subq $0x21, %rax
movq %rax, 0x158(%rsp)
movq 0x158(%rsp), %rax
cmpq 0x150(%rsp), %rax
jae 0x190fc7
movq 0x158(%rsp), %rax
movq %rax, 0x150(%rsp)
movq 0x158(%rsp), %rax
cmpq 0x148(%rsp), %rax
jbe 0x190fe9
movq 0x158(%rsp), %rax
movq %rax, 0x148(%rsp)
cmpq $-0x1, 0x138(%rsp)
jne 0x191004
movq 0x158(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x130(%rsp)
jmp 0x191016
movq 0x188(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x188(%rsp)
jmp 0x190f17
jmp 0x19116b
movq 0x170(%rsp), %rax
movq %rax, 0x188(%rsp)
movq 0x198(%rsp), %rax
movq %rax, 0x180(%rsp)
cmpq $0x0, 0x180(%rsp)
jbe 0x191169
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x7f, %eax
je 0x19114e
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x118(%rsp), %rax
movq 0x180(%rsp), %rcx
subq $0x1, %rcx
movb %dl, (%rax,%rcx)
movq 0x180(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x180(%rsp)
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbq (%rax,%rcx), %rax
subq $0x21, %rax
movq %rax, 0x158(%rsp)
movq 0x158(%rsp), %rax
cmpq 0x150(%rsp), %rax
jae 0x191101
movq 0x158(%rsp), %rax
movq %rax, 0x150(%rsp)
movq 0x158(%rsp), %rax
cmpq 0x148(%rsp), %rax
jbe 0x191123
movq 0x158(%rsp), %rax
movq %rax, 0x148(%rsp)
cmpq $-0x1, 0x138(%rsp)
jne 0x19113e
movq 0x158(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x130(%rsp)
jmp 0x191150
movq 0x188(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x188(%rsp)
jmp 0x191054
jmp 0x19116b
movq 0x118(%rsp), %rax
movq 0x198(%rsp), %rcx
movb $0x0, (%rax,%rcx)
movq $-0x1, 0x160(%rsp)
movq 0x188(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0x488300
movq %rax, %rcx
movq 0xf0(%rsp), %rax
cmpq %rcx, %rax
jae 0x19120f
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x7f, %eax
je 0x1911f4
movq 0x110(%rsp), %rax
movq 0x188(%rsp), %rcx
movsbq (%rax,%rcx), %rax
subq $0x21, %rax
movq %rax, 0x160(%rsp)
jmp 0x19120f
jmp 0x1911f6
movq 0x188(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x188(%rsp)
jmp 0x19118b
jmp 0x191211
cmpq $-0x1, 0x160(%rsp)
jne 0x191254
movq 0x4aad7d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x384de6(%rip), %rsi    # 0x516013
leaq 0x3c5488(%rip), %rdx    # 0x5566bc
leaq 0x3c5430(%rip), %rcx    # 0x55666b
leaq 0x3c4abe(%rip), %r8     # 0x555d00
movl $0x1de, %r9d            # imm = 0x1DE
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x191256
jmp 0x191258
cmpq $-0x1, 0x150(%rsp)
jb 0x19129b
movq 0x4aad36(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x384d9f(%rip), %rsi    # 0x516013
leaq 0x3c545b(%rip), %rdx    # 0x5566d6
leaq 0x3c53e9(%rip), %rcx    # 0x55666b
leaq 0x3c4a77(%rip), %r8     # 0x555d00
movl $0x1df, %r9d            # imm = 0x1DF
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x19129d
jmp 0x19129f
movq 0x148(%rsp), %rax
cmpq 0x150(%rsp), %rax
jae 0x1912e9
movq 0x4aace8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x384d51(%rip), %rsi    # 0x516013
leaq 0x3c5421(%rip), %rdx    # 0x5566ea
leaq 0x3c539b(%rip), %rcx    # 0x55666b
leaq 0x3c4a29(%rip), %r8     # 0x555d00
movl $0x1e0, %r9d            # imm = 0x1E0
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1912eb
movq 0x148(%rsp), %rax
subq 0x150(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x140(%rsp)
movq 0x1b8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1b8(%rsp)
movq 0x178(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x178(%rsp)
movq 0x1c0(%rsp), %rdi
callq 0x4883f0
testb $0x1, %al
jne 0x191345
jmp 0x191414
callq 0xd88a0
movq %rax, 0xf8(%rsp)
movb 0x210(%rsp), %al
movq 0xf8(%rsp), %rdx
leaq 0x210(%rsp), %rdi
movsbl %al, %esi
callq 0x481260
movq 0xf8(%rsp), %rdi
callq 0xd8c80
movq 0x178(%rsp), %rax
movq %rax, 0x128(%rsp)
movq 0x178(%rsp), %rax
subq 0x198(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x178(%rsp)
movb $0x2d, 0x10e(%rsp)
movq 0x160(%rsp), %rax
movq %rax, 0x158(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0x160(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x130(%rsp), %rax
movq %rax, 0x158(%rsp)
movq 0x138(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x138(%rsp)
jmp 0x191438
movq 0x178(%rsp), %rax
addq 0x198(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x128(%rsp)
movb $0x2b, 0x10e(%rsp)
movq 0x220(%rsp), %rdi
movq 0x1b8(%rsp), %rdx
movsbl 0x10f(%rsp), %ecx
movq 0x178(%rsp), %r8
movq 0x128(%rsp), %r9
movsbl 0x210(%rsp), %eax
movsbl 0x10e(%rsp), %esi
movl %esi, 0xa4(%rsp)
movq 0x218(%rsp), %rsi
movq %rsi, 0xa8(%rsp)
movq 0x1b0(%rsp), %rsi
movq %rsi, 0xb0(%rsp)
movq 0x1a8(%rsp), %rsi
movq %rsi, 0xb8(%rsp)
movq 0x1a0(%rsp), %rsi
movq %rsi, 0xc0(%rsp)
movq 0x198(%rsp), %rsi
movq %rsi, 0xc8(%rsp)
movq 0x200(%rsp), %rsi
movq %rsi, 0xd0(%rsp)
movq 0x208(%rsp), %rsi
movq %rsi, 0xd8(%rsp)
movq 0x120(%rsp), %rsi
movq %rsi, 0xe0(%rsp)
movq 0x168(%rsp), %rbp
movq 0x138(%rsp), %r13
movq 0x150(%rsp), %r12
movsd 0x190(%rsp), %xmm0
movq 0x148(%rsp), %r15
movq 0x140(%rsp), %r14
movq 0x130(%rsp), %rbx
movq 0x160(%rsp), %r11
movq 0x118(%rsp), %r10
movq 0x100(%rsp), %rsi
movq %rsi, 0xe8(%rsp)
leaq 0x3c51a6(%rip), %rsi    # 0x5566fd
movl %eax, (%rsp)
movl 0xa4(%rsp), %eax
movl %eax, 0x8(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xb0(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0xd8(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xe0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0xe8(%rsp), %rax
movq %rbp, 0x50(%rsp)
movq %r13, 0x58(%rsp)
movq %r12, 0x60(%rsp)
movq %r15, 0x68(%rsp)
movq %r14, 0x70(%rsp)
movq %rbx, 0x78(%rsp)
movq %r11, 0x80(%rsp)
movq %r10, 0x88(%rsp)
movq %rax, 0x90(%rsp)
movb $0x1, %al
callq 0xddca0
movq 0x118(%rsp), %rdi
leaq 0x3c46df(%rip), %rsi    # 0x555d00
movl $0x206, %edx            # imm = 0x206
callq 0xe88c0
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)