// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/gc_content.c
// Function: gt_gc_content_show
void gt_gc_content_show(const char *seq, GtUword len,
                        GtAlphabet *alphabet, GtFile *outfp)
{
  GtUword i,
                gc = 0, /* number of G/C bases */
                at = 0, /* number of A/T bases */
                n  = 0; /* number of N   bases */
  unsigned int a_code, c_code, g_code, t_code, n_code, cc;
  gt_assert(seq && alphabet);
  gt_assert(gt_alphabet_is_dna(alphabet));
  a_code = gt_alphabet_encode(alphabet, 'A');
  c_code = gt_alphabet_encode(alphabet, 'C');
  g_code = gt_alphabet_encode(alphabet, 'G');
  t_code = gt_alphabet_encode(alphabet, 'T');
  n_code = gt_alphabet_encode(alphabet, 'N');
  for (i = 0; i < len; i++) {
    cc = gt_alphabet_encode(alphabet, seq[i]);
    if (cc == g_code || cc == c_code)
      gc++;
    else if (cc == a_code || cc == t_code)
      at++;
    else if (cc == n_code)
      n++;
    else {
      gt_assert(0);
    }
  }
  gt_file_xprintf(outfp, "GC-content: %.2f%% (AT-content: %.2f%%, "
                         "N-content: %.2f%%)\n",
                  ((double) gc / len) * 100.0, ((double) at / len) * 100.0,
                  ((double) n  / len) * 100.0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
testq %rdi, %rdi
je 0xbd0a3
movq %rdx, %r15
testq %rdx, %rdx
je 0xbd0a3
movq %rsi, %r14
movq %rdi, %r12
movq %rcx, 0x20(%rsp)
movq %r15, %rdi
callq 0x9bd27
testb %al, %al
je 0xbd0cd
pushq $0x41
popq %rsi
movq %r15, %rdi
callq 0x9be5e
movb %al, 0xe(%rsp)
pushq $0x43
popq %rsi
movq %r15, %rdi
callq 0x9be5e
movb %al, 0xf(%rsp)
pushq $0x47
popq %rsi
movq %r15, %rdi
callq 0x9be5e
movl %eax, %ebx
pushq $0x54
popq %rsi
movq %r15, %rdi
callq 0x9be5e
movb %al, 0xd(%rsp)
pushq $0x4e
popq %rsi
movq %r15, %rdi
callq 0x9be5e
movb %al, 0xc(%rsp)
movq $0x0, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
xorl %ebp, %ebp
xorl %r13d, %r13d
cmpq %r13, %r14
je 0xbcfb6
movsbl (%r12,%r13), %esi
movq %r15, %rdi
callq 0x9be5e
cmpb %bl, %al
je 0xbcfa7
cmpb 0xf(%rsp), %al
je 0xbcfa7
cmpb 0xe(%rsp), %al
je 0xbcfac
cmpb 0xd(%rsp), %al
je 0xbcfac
cmpb 0xc(%rsp), %al
jne 0xbd06d
incq 0x10(%rsp)
jmp 0xbcfb1
incq %rbp
jmp 0xbcfb1
incq 0x18(%rsp)
incq %r13
jmp 0xbcf6e
movq %rbp, %xmm1
movq 0xd4bd(%rip), %xmm2     # 0xca480
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0xd4c1(%rip), %xmm3     # 0xca490
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %r14, %xmm1
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
subpd %xmm3, %xmm1
movapd %xmm1, %xmm4
unpckhpd %xmm1, %xmm4            # xmm4 = xmm4[1],xmm1[1]
addsd %xmm1, %xmm4
divsd %xmm4, %xmm0
movsd 0x1775c(%rip), %xmm5    # 0xd4760
mulsd %xmm5, %xmm0
movq 0x18(%rsp), %xmm6
punpckldq %xmm2, %xmm6    # xmm6 = xmm6[0],xmm2[0],xmm6[1],xmm2[1]
subpd %xmm3, %xmm6
movapd %xmm6, %xmm1
unpckhpd %xmm6, %xmm1            # xmm1 = xmm1[1],xmm6[1]
addsd %xmm6, %xmm1
divsd %xmm4, %xmm1
mulsd %xmm5, %xmm1
movq 0x10(%rsp), %xmm6
punpckldq %xmm2, %xmm6    # xmm6 = xmm6[0],xmm2[0],xmm6[1],xmm2[1]
subpd %xmm3, %xmm6
movapd %xmm6, %xmm2
unpckhpd %xmm6, %xmm2            # xmm2 = xmm2[1],xmm6[1]
addsd %xmm6, %xmm2
divsd %xmm4, %xmm2
mulsd %xmm5, %xmm2
leaq 0x35489(%rip), %rsi     # 0xf24dc
movq 0x20(%rsp), %rdi
movb $0x3, %al
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x542da
movq 0x70f44(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0xcfe8(%rip), %rsi      # 0xca066
leaq 0x1e5bc(%rip), %rdx     # 0xdb641
leaq 0x3540a(%rip), %rcx     # 0xf2496
leaq 0x35416(%rip), %r8      # 0xf24a9
pushq $0x2d
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300
movq 0x70f0e(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0xcfb2(%rip), %rsi      # 0xca066
leaq 0x353cb(%rip), %rdx     # 0xf2486
leaq 0x353d4(%rip), %rcx     # 0xf2496
leaq 0x353e0(%rip), %r8      # 0xf24a9
pushq $0x1d
jmp 0xbd095
movq 0x70ee4(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0xcf88(%rip), %rsi      # 0xca066
leaq 0x353da(%rip), %rdx     # 0xf24bf
leaq 0x353aa(%rip), %rcx     # 0xf2496
leaq 0x353b6(%rip), %r8      # 0xf24a9
pushq $0x1e
jmp 0xbd095
nop