// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/eis-voiditf.c
// Function: gt_loadvoidBWTSeqForSA
FMindex *gt_loadvoidBWTSeqForSA(const char *indexname,
                                bool withpckbt,
                                GtError *err)
{
  BWTSeq *bwtseq = NULL;
  bool haserr = false;
  GtEncseqMetadata *emd;
  GtAlphabet *alphabet;

  emd = gt_encseq_metadata_new(indexname, err);
  if (emd == NULL) {
    gt_assert(gt_error_is_set(err));
    haserr = true;
  }
  if (!haserr) {
    alphabet = gt_encseq_metadata_alphabet(emd);
    if (alphabet == NULL)
    {
      gt_assert(gt_error_is_set(err));
      haserr = true;
    }
  }
  if (!haserr)
  {
    bwtseq = gt_loadBWTSeqForSA(indexname,
                                BWT_ON_BLOCK_ENC,
                                BWTDEFOPT_MULTI_QUERY,
                                alphabet,
                                err);
    if (bwtseq == NULL)
    {
      gt_assert(gt_error_is_set(err));
      haserr = true;
    }
  }
  if (!haserr)
  {
    if (withpckbt && gt_pckbuckettable_exists(indexname))
    {
      unsigned int numofchars = gt_alphabet_num_of_chars(alphabet);
      bwtseq->pckbuckettable = gt_pckbuckettable_map(indexname,numofchars,err);
      if (bwtseq->pckbuckettable == NULL)
      {
        gt_assert(gt_error_is_set(err));
        haserr = true;
      }
    } else
    {
      bwtseq->pckbuckettable = NULL;
    }
  }
  gt_encseq_metadata_delete(emd);
  if (haserr && bwtseq != NULL)
  {
    gt_deletevoidBWTSeq((FMindex *) bwtseq);
    bwtseq = NULL;
  }
  return haserr ? NULL : (FMindex *) bwtseq;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movl %esi, %ebp
movq %rdi, %r12
movq %rdx, %rsi
callq 0x87eb0
movq %rax, %rbx
testq %rax, %rax
je 0x14b5f8
movq %rbx, %rdi
callq 0x88545
testq %rax, %rax
je 0x14b639
movq %rax, %r13
pushq $0x2
popq %rdx
movq %r12, %rdi
movl %edx, %esi
movq %rax, %rcx
movq %r15, %r8
callq 0x143419
testq %rax, %rax
je 0x14b67f
movq %rax, %r14
testb %bpl, %bpl
je 0x14b676
movq %r12, %rdi
callq 0x167482
testb %al, %al
je 0x14b676
movq %r13, %rdi
callq 0x56c8e
movq %r12, %rdi
movl %eax, %esi
movq %r15, %rdx
callq 0x1674bf
movq %rax, 0x50(%r14)
testq %rax, %rax
jne 0x14b67b
movq %r15, %rdi
callq 0x89eb7
movb $0x1, %bpl
testb %al, %al
jne 0x14b691
movq 0x2ec99a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x199a3b(%rip), %rsi    # 0x2e5013
leaq 0x1bd496(%rip), %rdx    # 0x308a75
leaq 0x1f8b8e(%rip), %rcx    # 0x344174
leaq 0x1f8b2d(%rip), %r8     # 0x34411a
movl $0xf0, %r9d
jmp 0x14b6f7
movq %r15, %rdi
callq 0x89eb7
testb %al, %al
jne 0x14b68b
movq 0x2ec959(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1999fa(%rip), %rsi    # 0x2e5013
leaq 0x1bd455(%rip), %rdx    # 0x308a75
leaq 0x1f8b4d(%rip), %rcx    # 0x344174
leaq 0x1f8aec(%rip), %r8     # 0x34411a
movl $0xd0, %r9d
jmp 0x14b6f7
movq %r15, %rdi
callq 0x89eb7
testb %al, %al
jne 0x14b68b
movq 0x2ec91c(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1999bd(%rip), %rsi    # 0x2e5013
leaq 0x1bd418(%rip), %rdx    # 0x308a75
leaq 0x1f8b10(%rip), %rcx    # 0x344174
leaq 0x1f8aaf(%rip), %r8     # 0x34411a
movl $0xd7, %r9d
jmp 0x14b6f7
andq $0x0, 0x50(%r14)
xorl %ebp, %ebp
jmp 0x14b691
movq %r15, %rdi
callq 0x89eb7
testb %al, %al
je 0x14b6cb
movb $0x1, %bpl
xorl %r14d, %r14d
movq %rbx, %rdi
callq 0x888b5
testq %r14, %r14
sete %al
movl %ebp, %ecx
xorb $0x1, %cl
orb %al, %cl
jne 0x14b6b3
movq %r14, %rdi
callq 0x14b703
xorl %r14d, %r14d
xorl %eax, %eax
testb %bpl, %bpl
cmoveq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2ec896(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x199937(%rip), %rsi    # 0x2e5013
leaq 0x1bd392(%rip), %rdx    # 0x308a75
leaq 0x1f8a8a(%rip), %rcx    # 0x344174
leaq 0x1f8a29(%rip), %r8     # 0x34411a
movl $0xe4, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390