// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/core/encseq.c
// Function: gt_encseq_show_features
void gt_encseq_show_features(const GtEncseq *encseq,
                             GtLogger *logger,
                             bool withfilenames)
{
  GtUword idx;

  if (withfilenames) {
    for (idx = 0; idx < encseq->numofdbfiles; idx++) {
      gt_assert(encseq->filenametab != NULL);
      gt_logger_log(logger, "dbfile=%s " Formatuint64_t " " Formatuint64_t,
                     gt_str_array_get(encseq->filenametab, idx),
                PRINTuint64_tcast(encseq->headerptr.filelengthtab[idx].length),
                PRINTuint64_tcast(encseq->headerptr.filelengthtab[idx].
                                       effectivelength));
    }
  }
  gt_logger_log(logger, "totallength=" GT_WU,
                       gt_encseq_total_length(encseq));
  gt_logger_log(logger, "numofsequences=" GT_WU,
                       encseq->logicalnumofdbsequences);
  gt_logger_log(logger, "specialcharacters=" GT_WU,
                       gt_encseq_specialcharacters(encseq));
  gt_logger_log(logger, "specialranges=" GT_WU,
                       gt_encseq_specialranges(encseq));
  gt_logger_log(logger, "realspecialranges=" GT_WU,
                       gt_encseq_realspecialranges(encseq));
  gt_logger_log(logger, "wildcards=" GT_WU,
                       gt_encseq_wildcards(encseq));
  gt_logger_log(logger, "wildcardranges=" GT_WU,
                       gt_encseq_wildcardranges(encseq));
  gt_logger_log(logger, "realwildcardranges=" GT_WU,
                       gt_encseq_realwildcardranges(encseq));

  gt_assert(encseq->headerptr.characterdistribution != NULL);
  showcharacterdistribution(encseq, logger);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
testl %edx, %edx
je 0xc4e86
cmpq $0x0, 0x50(%r14)
je 0xc4e86
movl $0x8, %r13d
leaq 0x3f055(%rip), %r15     # 0x103e93
xorl %r12d, %r12d
movq 0x1f8(%r14), %rdi
testq %rdi, %rdi
je 0xc4ffa
movq %r12, %rsi
callq 0x3d3e2
movq 0xf0(%r14), %rdx
movq -0x8(%rdx,%r13), %rcx
movq (%rdx,%r13), %r8
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x35c9e
incq %r12
addq $0x10, %r13
cmpq 0x50(%r14), %r12
jb 0xc4e41
movq %r14, %rdi
callq 0xbef5c
leaq 0x3f010(%rip), %rsi     # 0x103ea5
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x35c9e
movq 0x48(%r14), %rdx
leaq 0x3f008(%rip), %rsi     # 0x103eb5
movq %rbx, %rdi
xorl %eax, %eax
callq 0x35c9e
movq 0x178(%r14), %rax
leaq 0x1(,%rax,2), %rdx
cmpb $0x0, 0x3a8(%r14)
cmoveq %rax, %rdx
leaq 0x3efef(%rip), %rsi     # 0x103ec8
movq %rbx, %rdi
xorl %eax, %eax
callq 0x35c9e
movq %r14, %rdi
callq 0xc3923
leaq 0x3eff0(%rip), %rsi     # 0x103ee2
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x35c9e
movq %r14, %rdi
callq 0xc39bb
leaq 0x3efd0(%rip), %rsi     # 0x103ede
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x35c9e
movb 0x3a8(%r14), %cl
movq 0x1a0(%r14), %rdx
shlq %cl, %rdx
leaq 0x3efc1(%rip), %rsi     # 0x103ef4
movq %rbx, %rdi
xorl %eax, %eax
callq 0x35c9e
movb 0x3a8(%r14), %cl
movq 0x1a8(%r14), %rdx
shlq %cl, %rdx
leaq 0x3efb1(%rip), %rsi     # 0x103f06
movq %rbx, %rdi
xorl %eax, %eax
callq 0x35c9e
movb 0x3a8(%r14), %cl
movq 0x1b0(%r14), %rdx
shlq %cl, %rdx
leaq 0x3ef8b(%rip), %rsi     # 0x103f02
movq %rbx, %rdi
xorl %eax, %eax
callq 0x35c9e
cmpq $0x0, 0xf8(%r14)
je 0xc4fff
movq 0x220(%r14), %rdi
callq 0xb96b7
cmpq $0x0, 0xf8(%r14)
je 0xc5004
movl %eax, %ebp
testl %eax, %eax
je 0xc4feb
leaq 0x41c72(%rip), %r15     # 0x106c20
xorl %r12d, %r12d
movq 0x220(%r14), %rdi
movl %r12d, %esi
callq 0xb9a86
movzbl %al, %r13d
movzbl %r12b, %esi
movq %r14, %rdi
callq 0xc307e
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x35c9e
incl %r12d
cmpl %r12d, %ebp
jne 0xc4fb1
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2c558
callq 0x2c5ca
callq 0x2c591