// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hpol_processor.c
// Function: gt_hpol_processor_process_hpol_end
static void gt_hpol_processor_process_hpol_end(GtHpolProcessor *hpp,
    GtUchar c, GtUword endpos, GtUword hlen)
{
  bool edited = false;
  gt_disc_distri_add(hpp->hdist, hlen);
  hpp->nof_h++;
  if (hlen > hpp->hlen_max)
    hpp->hlen_max = hlen;
  if (hpp->adjust_s_hlen)
  {
    char ch = gt_alphabet_decode(hpp->alpha, c);
    GtUword a_supp_max = ULONG_MAX, a_supp = 0, piled, r_supp = 0, a_hlen,
                  r_supp_min = 0;
    gt_aligned_segments_pile_move_over_position(hpp->asp, endpos + 1UL);
    piled = gt_aligned_segments_pile_size(hpp->asp);
    if (piled >= hpp->covmin)
    {
      gt_hpol_processor_determine_alternative_consensus(hpp, ch,
          endpos + 1UL - hlen, hlen, &a_hlen, &a_supp, &piled,
          &r_supp);
      a_supp_max = (GtUword)(hpp->altmax * (double)piled);
      r_supp_min = (GtUword)(hpp->refmin * (double)piled);
      if (r_supp < piled && r_supp >= r_supp_min && a_supp <= a_supp_max)
      {
        edited = gt_hpol_processor_adjust_hlen_of_all_segments(hpp->asp, ch,
            endpos + 1UL - hlen, piled, hlen, r_supp, a_hlen, a_supp,
            hpp->clenmax, hpp->allow_partial, hpp->allow_multiple,
            hpp->read_hmin, hpp->qmax, hpp->mapqmin, hpp->output_stats,
            hpp->outfp_stats, hpp->processed_segments,
            hpp->output_multihit_stats);
      }
    }
  }
  if (edited)
  {
    hpp->nof_h_e++;
    gt_disc_distri_add(hpp->hdist_e, hlen);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movb %sil, %al
movq %rdi, 0xd0(%rsp)
movb %al, 0xcf(%rsp)
movq %rdx, 0xc0(%rsp)
movq %rcx, 0xb8(%rsp)
movb $0x0, 0xb7(%rsp)
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
movq 0xb8(%rsp), %rsi
callq 0xa50a0
movq 0xd0(%rsp), %rax
movq 0x90(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x90(%rax)
movq 0xb8(%rsp), %rax
movq 0xd0(%rsp), %rcx
cmpq 0xa0(%rcx), %rax
jbe 0x18edde
movq 0xb8(%rsp), %rcx
movq 0xd0(%rsp), %rax
movq %rcx, 0xa0(%rax)
movq 0xd0(%rsp), %rax
testb $0x1, 0xb8(%rax)
je 0x18f14b
movq 0xd0(%rsp), %rax
movq 0xf0(%rax), %rdi
movzbl 0xcf(%rsp), %esi
callq 0x7f7b0
movb %al, 0xb6(%rsp)
movq $-0x1, 0xa8(%rsp)
movq $0x0, 0xa0(%rsp)
movq $0x0, 0x90(%rsp)
movq $0x0, 0x80(%rsp)
movq 0xd0(%rsp), %rax
movq 0x68(%rax), %rdi
movq 0xc0(%rsp), %rsi
addq $0x1, %rsi
callq 0x129780
movq 0xd0(%rsp), %rax
movq 0x68(%rax), %rdi
callq 0x129720
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rax
movq 0xd0(%rsp), %rcx
cmpq 0x28(%rcx), %rax
jb 0x18f149
movq 0xd0(%rsp), %rdi
movsbl 0xb6(%rsp), %esi
movq 0xc0(%rsp), %rdx
movq 0xb8(%rsp), %rcx
subq %rcx, %rdx
incq %rdx
movq %rsp, %rax
leaq 0x90(%rsp), %r8
movq %r8, 0x8(%rax)
leaq 0x98(%rsp), %r8
movq %r8, (%rax)
leaq 0x88(%rsp), %r8
leaq 0xa0(%rsp), %r9
callq 0x18fdb0
movq 0xd0(%rsp), %rax
movsd 0x40(%rax), %xmm0
movq 0x98(%rsp), %xmm1
movaps 0x389a28(%rip), %xmm4   # 0x518930
punpckldq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
movapd 0x389a2c(%rip), %xmm3   # 0x518940
subpd %xmm3, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x389e32(%rip), %xmm1   # 0x518d70
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0xa8(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x48(%rax), %xmm0
movq 0x98(%rsp), %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm3, %xmm2
movaps %xmm2, %xmm3
unpckhpd %xmm2, %xmm2            # xmm2 = xmm2[1,1]
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
movaps %xmm0, %xmm2
cvttsd2si %xmm2, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x80(%rsp)
movq 0x90(%rsp), %rax
cmpq 0x98(%rsp), %rax
jae 0x18f147
movq 0x90(%rsp), %rax
cmpq 0x80(%rsp), %rax
jb 0x18f147
movq 0xa0(%rsp), %rax
cmpq 0xa8(%rsp), %rax
ja 0x18f147
movq 0xd0(%rsp), %rax
movq 0x68(%rax), %rdi
movb 0xb6(%rsp), %sil
movq 0xc0(%rsp), %rdx
addq $0x1, %rdx
subq 0xb8(%rsp), %rdx
movq 0x98(%rsp), %rcx
movq 0xb8(%rsp), %r8
movq 0x90(%rsp), %r9
movq 0x88(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0xd0(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x70(%rsp)
movq 0xd0(%rsp), %rax
movb 0x38(%rax), %r13b
movq 0xd0(%rsp), %rax
movb 0x39(%rax), %bpl
movq 0xd0(%rsp), %rax
movq 0x18(%rax), %r12
movq 0xd0(%rsp), %rax
movq 0x30(%rax), %r15
movq 0xd0(%rsp), %rax
movq 0x20(%rax), %r14
movq 0xd0(%rsp), %rax
movb 0xf9(%rax), %bl
movq 0xd0(%rsp), %rax
movq 0xc8(%rax), %r11
movq 0xd0(%rsp), %rax
movq 0xe8(%rax), %r10
movq 0xd0(%rsp), %rax
movb 0xfa(%rax), %al
andb $0x1, %r13b
andb $0x1, %bpl
andb $0x1, %bl
andb $0x1, %al
movb %al, 0x7f(%rsp)
movq 0x60(%rsp), %rax
movsbl %sil, %esi
movq %rax, (%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x10(%rsp)
movb 0x7f(%rsp), %al
movzbl %r13b, %r13d
movl %r13d, 0x18(%rsp)
movzbl %bpl, %ebp
movl %ebp, 0x20(%rsp)
movq %r12, 0x28(%rsp)
movq %r15, 0x30(%rsp)
movq %r14, 0x38(%rsp)
movzbl %bl, %ebx
movl %ebx, 0x40(%rsp)
movq %r11, 0x48(%rsp)
movq %r10, 0x50(%rsp)
movzbl %al, %eax
movl %eax, 0x58(%rsp)
callq 0x190040
andb $0x1, %al
movb %al, 0xb7(%rsp)
jmp 0x18f149
jmp 0x18f14b
testb $0x1, 0xb7(%rsp)
je 0x18f188
movq 0xd0(%rsp), %rax
movq 0x98(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x98(%rax)
movq 0xd0(%rsp), %rax
movq 0x58(%rax), %rdi
movq 0xb8(%rsp), %rsi
callq 0xa50a0
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw (%rax,%rax)