// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-map.c
// Function: gt_freesuffixarray
void gt_freesuffixarray(Suffixarray *suffixarray)
{
  gt_fa_xmunmap((void *) suffixarray->suftab);
  suffixarray->suftab = NULL;
  gt_fa_xmunmap((void *) suffixarray->lcptab);
  suffixarray->lcptab = NULL;
  gt_fa_xmunmap((void *) suffixarray->llvtab);
  suffixarray->llvtab = NULL;
  gt_fa_xmunmap((void *) suffixarray->bwttab);
  suffixarray->bwttab = NULL;
  gt_fa_xfclose(suffixarray->suftabstream_GtUword.fp);
  suffixarray->suftabstream_GtUword.fp = NULL;
  gt_free(suffixarray->suftabstream_GtUword.bufferedfilespace);
#if defined (_LP64) || defined (_WIN64)
  gt_fa_xfclose(suffixarray->suftabstream_uint32_t.fp);
  suffixarray->suftabstream_uint32_t.fp = NULL;
  gt_free(suffixarray->suftabstream_uint32_t.bufferedfilespace);
#endif
  gt_fa_xfclose(suffixarray->lcptabstream.fp);
  suffixarray->lcptabstream.fp = NULL;
  gt_free(suffixarray->lcptabstream.bufferedfilespace);
  gt_fa_xfclose(suffixarray->llvtabstream.fp);
  suffixarray->llvtabstream.fp = NULL;
  gt_free(suffixarray->llvtabstream.bufferedfilespace);
  gt_fa_xfclose(suffixarray->bwttabstream.fp);
  suffixarray->bwttabstream.fp = NULL;
  gt_free(suffixarray->bwttabstream.bufferedfilespace);
  gt_encseq_delete(suffixarray->encseq);
  suffixarray->encseq = NULL;
  if (suffixarray->bcktab != NULL)
  {
    gt_bcktab_delete(suffixarray->bcktab);
    suffixarray->bcktab = NULL;
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
movq 0x58(%rax), %rdi
callq 0xdb2a0
movq (%rsp), %rax
movq $0x0, 0x58(%rax)
movq (%rsp), %rax
movq 0x60(%rax), %rdi
callq 0xdb2a0
movq (%rsp), %rax
movq $0x0, 0x60(%rax)
movq (%rsp), %rax
movq 0x68(%rax), %rdi
callq 0xdb2a0
movq (%rsp), %rax
movq $0x0, 0x68(%rax)
movq (%rsp), %rax
movq 0x70(%rax), %rdi
callq 0xdb2a0
movq (%rsp), %rax
movq $0x0, 0x70(%rax)
movq (%rsp), %rax
movq 0xb0(%rax), %rdi
callq 0xd9570
movq (%rsp), %rax
movq $0x0, 0xb0(%rax)
movq (%rsp), %rax
movq 0xa8(%rax), %rdi
leaq 0x3435df(%rip), %rsi    # 0x576999
movl $0x10f, %edx            # imm = 0x10F
callq 0xe88c0
movq (%rsp), %rax
movq 0x98(%rax), %rdi
callq 0xd9570
movq (%rsp), %rax
movq $0x0, 0x98(%rax)
movq (%rsp), %rax
movq 0x90(%rax), %rdi
leaq 0x3435a4(%rip), %rsi    # 0x576999
movl $0x113, %edx            # imm = 0x113
callq 0xe88c0
movq (%rsp), %rax
movq 0xe0(%rax), %rdi
callq 0xd9570
movq (%rsp), %rax
movq $0x0, 0xe0(%rax)
movq (%rsp), %rax
movq 0xd8(%rax), %rdi
leaq 0x343569(%rip), %rsi    # 0x576999
movl $0x117, %edx            # imm = 0x117
callq 0xe88c0
movq (%rsp), %rax
movq 0xf8(%rax), %rdi
callq 0xd9570
movq (%rsp), %rax
movq $0x0, 0xf8(%rax)
movq (%rsp), %rax
movq 0xf0(%rax), %rdi
leaq 0x34352e(%rip), %rsi    # 0x576999
movl $0x11a, %edx            # imm = 0x11A
callq 0xe88c0
movq (%rsp), %rax
movq 0xc8(%rax), %rdi
callq 0xd9570
movq (%rsp), %rax
movq $0x0, 0xc8(%rax)
movq (%rsp), %rax
movq 0xc0(%rax), %rdi
leaq 0x3434f3(%rip), %rsi    # 0x576999
movl $0x11d, %edx            # imm = 0x11D
callq 0xe88c0
movq (%rsp), %rax
movq (%rax), %rdi
callq 0xae070
movq (%rsp), %rax
movq $0x0, (%rax)
movq (%rsp), %rax
cmpq $0x0, 0x80(%rax)
je 0x2334f4
movq (%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x204540
movq (%rsp), %rax
movq $0x0, 0x80(%rax)
popq %rax
retq
nopw %cs:(%rax,%rax)