// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/ft-trimstat.c
// Function: gt_ft_trimstat_out
void gt_ft_trimstat_out(const GtFtTrimstat *trimstat,bool verbose)
{
  if (trimstat != NULL)
  {
    printf("died_out=" GT_WU "\t",trimstat->diedout);
    if (trimstat->distance_dist.nextfreeGtUword > 0)
    {
      printf("mean_valid=%.2f\t",
             trimstat->sum_meanvalid/trimstat->distance_dist.nextfreeGtUword);
      printf("frontspace=%.2f\n",
             MEGABYTES((double) trimstat->spaceforfront_total/
                       trimstat->distance_dist.nextfreeGtUword));
    } else
    {
      printf("mean_valid=undef\t");
      printf("frontspace=undef\n");
    }
    if (verbose)
    {
      GtUword idx, count = 1UL, matchlength_sum = 0, matchlength_cum = 0;

      for (idx = 0; idx <= 100UL; idx++)
      {
        matchlength_sum += trimstat->matchlength_dist[idx];
      }
      for (idx = 0; idx <= 100UL; idx++)
      {
        if (trimstat->matchlength_dist[idx] > 0)
        {
          matchlength_cum += trimstat->matchlength_dist[idx];
          printf("# matchlength%s" GT_WU ": " GT_WU " times, "
                 "total=" GT_WU " (%.2f), "
                 "cum=%.2f%%\n",
                 idx < 100UL ? "=" : ">=",
                 idx,trimstat->matchlength_dist[idx],
                 idx * trimstat->matchlength_dist[idx],
                 (double) trimstat->matchlength_dist[idx]/matchlength_sum,
                 100.0 * (double) matchlength_cum/matchlength_sum);
        }
      }
      for (idx = 0; idx <= 100UL; idx++)
      {
        if (trimstat->trim_dist[idx] > 0)
        {
          printf("# trim by " GT_WU "%%: " GT_WU " times\n",
                 idx,trimstat->trim_dist[idx]);
        }
      }
      qsort(trimstat->distance_dist.spaceGtUword,
            trimstat->distance_dist.nextfreeGtUword,
            sizeof *trimstat->distance_dist.spaceGtUword,
            gt_ft_trimstat_compare_GtUword);
      if (trimstat->distance_dist.nextfreeGtUword > 0)
      {
        GtUword previous = trimstat->distance_dist.spaceGtUword[0];
        for (idx = 1UL; idx < trimstat->distance_dist.nextfreeGtUword; idx++)
        {
          if (previous == trimstat->distance_dist.spaceGtUword[idx])
          {
            count++;
          } else
          {
            printf("distance " GT_WU ": " GT_WU " times\n",previous,count);
            count = 1UL;
            previous = trimstat->distance_dist.spaceGtUword[idx];
          }
        }
        printf("distance " GT_WU ": " GT_WU " times\n",previous,count);
      }
      for (idx = 0; idx < trimstat->maxvalid_dist.allocatedGtUword; idx++)
      {
        if (trimstat->maxvalid_dist.spaceGtUword[idx] > 0)
        {
          printf("maxvalid=" GT_WU ": " GT_WU " times\n",idx,
                 trimstat->maxvalid_dist.spaceGtUword[idx]);
        }
      }
    }
  }
}

// Assembly:
subq $0x58, %rsp
movb %sil, %al
movq %rdi, 0x50(%rsp)
andb $0x1, %al
movb %al, 0x4f(%rsp)
cmpq $0x0, 0x50(%rsp)
je 0x2506cd
movq 0x50(%rsp), %rax
movq (%rax), %rsi
leaq 0x329482(%rip), %rdi    # 0x57974f
movb $0x0, %al
callq 0x19070
movq 0x50(%rsp), %rax
cmpq $0x0, 0x28(%rax)
jbe 0x25038e
movq 0x50(%rsp), %rax
movsd 0x50(%rax), %xmm0
movq 0x28(%rax), %xmm1
movaps 0x2c8636(%rip), %xmm2   # 0x518930
movaps %xmm2, (%rsp)
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x2c8636(%rip), %xmm2   # 0x518940
movaps %xmm2, 0x10(%rsp)
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
leaq 0x329434(%rip), %rdi    # 0x57975d
movb $0x1, %al
callq 0x19070
movaps (%rsp), %xmm3
movaps 0x10(%rsp), %xmm2
movq 0x50(%rsp), %rax
movq 0x48(%rax), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x28(%rax), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd 0x2c85a6(%rip), %xmm1   # 0x518920
divsd %xmm1, %xmm0
leaq 0x3293e9(%rip), %rdi    # 0x57976e
movb $0x1, %al
callq 0x19070
jmp 0x2503aa
leaq 0x3293ea(%rip), %rdi    # 0x57977f
movb $0x0, %al
callq 0x19070
leaq 0x3293ee(%rip), %rdi    # 0x579791
movb $0x0, %al
callq 0x19070
testb $0x1, 0x4f(%rsp)
je 0x2506cb
movq $0x1, 0x38(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
movq $0x0, 0x40(%rsp)
cmpq $0x64, 0x40(%rsp)
ja 0x25040d
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x30(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x2503d9
movq $0x0, 0x40(%rsp)
cmpq $0x64, 0x40(%rsp)
ja 0x25051c
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x250507
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x28(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rdx
movq %rdx, %rax
subq $0x64, %rax
leaq 0x32d7b6(%rip), %rax    # 0x57dc23
leaq 0x32936c(%rip), %rsi    # 0x5797e0
cmovbq %rax, %rsi
movq 0x50(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax,%rdx,8), %rcx
movq %rdx, %r8
imulq %rcx, %r8
movq %rcx, %xmm0
movaps 0x2c8498(%rip), %xmm4   # 0x518930
punpckldq %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
movapd 0x2c849c(%rip), %xmm3   # 0x518940
subpd %xmm3, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq 0x30(%rsp), %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm3, %xmm2
movaps %xmm2, %xmm1
unpckhpd %xmm2, %xmm2            # xmm2 = xmm2[1,1]
addsd %xmm1, %xmm2
divsd %xmm2, %xmm0
movq 0x28(%rsp), %xmm1
punpckldq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
subpd %xmm3, %xmm1
movaps %xmm1, %xmm3
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm3, %xmm1
movsd 0x2ca347(%rip), %xmm3   # 0x51a838
mulsd %xmm3, %xmm1
divsd %xmm2, %xmm1
leaq 0x3292a3(%rip), %rdi    # 0x5797a3
movb $0x2, %al
callq 0x19070
jmp 0x250509
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x250416
movq $0x0, 0x40(%rsp)
cmpq $0x64, 0x40(%rsp)
ja 0x250579
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x250567
movq 0x40(%rsp), %rsi
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x329283(%rip), %rdi    # 0x5797e3
movb $0x0, %al
callq 0x19070
jmp 0x250569
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x250525
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x50(%rsp), %rax
movq 0x28(%rax), %rsi
movl $0x8, %edx
leaq 0x149(%rip), %rcx       # 0x2506e0
callq 0x19e70
movq 0x50(%rsp), %rax
cmpq $0x0, 0x28(%rax)
jbe 0x250664
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq $0x1, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x50(%rsp), %rcx
cmpq 0x28(%rcx), %rax
jae 0x25064c
movq 0x20(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
jne 0x2505ff
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x250637
movq 0x20(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq 0x3291ef(%rip), %rdi    # 0x5797ff
movb $0x0, %al
callq 0x19070
movq $0x1, 0x38(%rsp)
movq 0x50(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
jmp 0x250639
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x2505c6
movq 0x20(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq 0x3291a2(%rip), %rdi    # 0x5797ff
movb $0x0, %al
callq 0x19070
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x50(%rsp), %rcx
cmpq 0x38(%rcx), %rax
jae 0x2506c9
movq 0x50(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x40(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x2506b7
movq 0x40(%rsp), %rsi
movq 0x50(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x329168(%rip), %rdi    # 0x579818
movb $0x0, %al
callq 0x19070
jmp 0x2506b9
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x25066d
jmp 0x2506cb
jmp 0x2506cd
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)