// File: /workspace/github_c_makefile_star2_O3/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 0xc5e8e
cmpq $0x0, 0x50(%r14)
je 0xc5e8e
movl $0x8, %r13d
leaq 0x3dee8(%rip), %r15     # 0x103d2e
xorl %r12d, %r12d
movq 0x1f8(%r14), %rdi
testq %rdi, %rdi
je 0xc6002
movq %r12, %rsi
callq 0x3ca6f
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 0x3561d
incq %r12
addq $0x10, %r13
cmpq 0x50(%r14), %r12
jb 0xc5e49
movq %r14, %rdi
callq 0xbff64
leaq 0x3dea3(%rip), %rsi     # 0x103d40
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x3561d
movq 0x48(%r14), %rdx
leaq 0x3de9b(%rip), %rsi     # 0x103d50
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3561d
movq 0x178(%r14), %rax
leaq 0x1(,%rax,2), %rdx
cmpb $0x0, 0x3a8(%r14)
cmoveq %rax, %rdx
leaq 0x3de82(%rip), %rsi     # 0x103d63
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3561d
movq %r14, %rdi
callq 0xc496b
leaq 0x3de83(%rip), %rsi     # 0x103d7d
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x3561d
movq %r14, %rdi
callq 0xc4a03
leaq 0x3de63(%rip), %rsi     # 0x103d79
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x3561d
movb 0x3a8(%r14), %cl
movq 0x1a0(%r14), %rdx
shlq %cl, %rdx
leaq 0x3de54(%rip), %rsi     # 0x103d8f
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3561d
movb 0x3a8(%r14), %cl
movq 0x1a8(%r14), %rdx
shlq %cl, %rdx
leaq 0x3de44(%rip), %rsi     # 0x103da1
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3561d
movb 0x3a8(%r14), %cl
movq 0x1b0(%r14), %rdx
shlq %cl, %rdx
leaq 0x3de1e(%rip), %rsi     # 0x103d9d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x3561d
cmpq $0x0, 0xf8(%r14)
je 0xc6007
movq 0x220(%r14), %rdi
callq 0xba7a2
cmpq $0x0, 0xf8(%r14)
je 0xc600c
movl %eax, %ebp
testl %eax, %eax
je 0xc5ff3
leaq 0x40ab3(%rip), %r15     # 0x106a69
xorl %r12d, %r12d
movq 0x220(%r14), %rdi
movl %r12d, %esi
callq 0xbab8d
movzbl %al, %r13d
movzbl %r12b, %esi
movq %r14, %rdi
callq 0xc40c1
movq %rbx, %rdi
movq %r15, %rsi
movl %r13d, %edx
movq %rax, %rcx
xorl %eax, %eax
callq 0x3561d
incl %r12d
cmpl %r12d, %ebp
jne 0xc5fb9
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2c240
callq 0x2c2b2
callq 0x2c279