// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/encseq.c
// Function: gt_encseq_showatstartpos
void gt_encseq_showatstartpos(FILE *fp,
                              bool fwd,
                              bool complement,
                              const GtEncseq *encseq,
                              GtUword startpos)
{
  GtUword pos, endpos;
  GtUchar buffer[GT_UNITSIN2BITENC];
  gt_assert(fp != NULL);
  /* scan-build was complaining about uninitialized values */
  memset(buffer, GT_UNDEF_UCHAR, GT_UNITSIN2BITENC);

  fprintf(fp, "          0123456789012345");
  if (GT_UNITSIN2BITENC == 32) {
    fprintf(fp, "6789012345678901");
  }
  fprintf(fp, "\nsequence=\"");
  if (fwd) {
    endpos = GT_MIN(startpos + GT_UNITSIN2BITENC - 1, encseq->totallength-1);
    gt_encseq_extract_encoded(encseq, buffer, startpos, endpos);
    for (pos=0; pos < endpos - startpos + 1; pos++) {
      showbufchar(fp, complement, buffer[pos]);
    }
  }
  else {
    if (startpos > (GtUword) (GT_UNITSIN2BITENC-1)) {
      endpos = startpos - (GT_UNITSIN2BITENC-1);
    }
    else {
      endpos = 0;
    }
    gt_encseq_extract_encoded(encseq, buffer, endpos, startpos);
    for (pos=0; pos < startpos - endpos + 1; pos++) {
      showbufchar(fp, complement, buffer[pos]);
    }
  }
  fprintf(fp, "\"\n");
}

// Assembly:
subq $0x68, %rsp
movb %dl, %al
movb %sil, %dl
movq %rdi, 0x60(%rsp)
andb $0x1, %dl
movb %dl, 0x5f(%rsp)
andb $0x1, %al
movb %al, 0x5e(%rsp)
movq %rcx, 0x50(%rsp)
movq %r8, 0x48(%rsp)
cmpq $0x0, 0x60(%rsp)
jne 0x11f785
movq 0x94884(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x3e908(%rip), %rsi     # 0x15e066
leaq 0x6728e(%rip), %rdx     # 0x1869f3
leaq 0x67292(%rip), %rcx     # 0x1869fe
leaq 0x65eeb(%rip), %r8      # 0x18565e
movl $0x1ada, %r9d           # imm = 0x1ADA
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x11f787
leaq 0x10(%rsp), %rdi
movl $0xff, %esi
movl $0x20, %edx
callq 0xb2d0
movq 0x60(%rsp), %rdi
leaq 0x67270(%rip), %rsi     # 0x186a17
movb $0x0, %al
callq 0xb890
movq 0x60(%rsp), %rdi
leaq 0x67278(%rip), %rsi     # 0x186a32
movb $0x0, %al
callq 0xb890
movq 0x60(%rsp), %rdi
leaq 0x67276(%rip), %rsi     # 0x186a43
movb $0x0, %al
callq 0xb890
testb $0x1, 0x5f(%rsp)
je 0x11f89b
movq 0x48(%rsp), %rax
addq $0x20, %rax
subq $0x1, %rax
movq 0x50(%rsp), %rcx
movq 0x30(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x11f812
movq 0x48(%rsp), %rax
addq $0x20, %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x11f824
movq 0x50(%rsp), %rax
movq 0x30(%rax), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq 0x38(%rsp), %rcx
callq 0x116460
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x38(%rsp), %rcx
subq 0x48(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jae 0x11f896
movq 0x60(%rsp), %rdi
movb 0x5e(%rsp), %cl
movq 0x40(%rsp), %rax
andb $0x1, %cl
movzbl %cl, %esi
movzbl 0x10(%rsp,%rax), %edx
callq 0x11f940
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x11f850
jmp 0x11f926
cmpq $0x1f, 0x48(%rsp)
jbe 0x11f8b3
movq 0x48(%rsp), %rax
subq $0x1f, %rax
movq %rax, 0x38(%rsp)
jmp 0x11f8bc
movq $0x0, 0x38(%rsp)
movq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x48(%rsp), %rcx
callq 0x116460
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x48(%rsp), %rcx
subq 0x38(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jae 0x11f924
movq 0x60(%rsp), %rdi
movb 0x5e(%rsp), %cl
movq 0x40(%rsp), %rax
andb $0x1, %cl
movzbl %cl, %esi
movzbl 0x10(%rsp,%rax), %edx
callq 0x11f940
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x11f8de
jmp 0x11f926
movq 0x60(%rsp), %rdi
leaq 0x64c53(%rip), %rsi     # 0x184585
movb $0x0, %al
callq 0xb890
addq $0x68, %rsp
retq
nop