// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-spmfind.c
// Function: gt_spmfind_state_delete
static void gt_spmfind_state_delete(bool eqlen, GtBUstate_spm *state)
{
  if (state != NULL)
  {
    gt_logger_log(state->verbose_logger, "number of %ssuffix-prefix matches "
        "[thread %u] = "GT_WU"", state->elimtrans ? "irreducible " : "",
        state->threadnum, state->nofvalidspm);
    if (state->elimtrans)
      gt_logger_log(state->verbose_logger, "number of transitive "
          "suffix-prefix matches [thread %u] = "GT_WU"",
          state->threadnum, state->nof_transitive_withrc +
          (state->nof_transitive_other >> 1));
#ifdef GT_READJOINER_STATISTICS
    showstatistics_spm(state);
    gt_disc_distri_delete(state->w_per_terminal);
#endif

    gt_free(state->l_set);
    deletewset_spm(state->w_set, state->w_allocated);
    if (eqlen)
      gt_GtArrayGtBUItvinfo_delete_spmeq(
          (GtArrayGtBUItvinfo_spmeq *)state->stack, state);
    else
    {
      GtStr *path = gt_str_new_cstr(state->indexname);
      gt_str_append_cstr(path, GT_READJOINER_SUFFIX_CNTLIST);

      gt_logger_log(state->verbose_logger, "number of internally contained "
                    "reads [thread %u] = "GT_WU"", state->threadnum,
                    state->nof_contained);

      gt_str_delete(path);
      gt_GtArrayGtBUItvinfo_delete_spmvar(
          (GtArrayGtBUItvinfo_spmvar *)state->stack, state);
      gt_fa_fclose(state->cntfile);
    }
    if (state->procdata != NULL)
      /*@ignore@*/
      gt_fa_fclose((FILE*)state->procdata);
      /*@end@*/
    gt_free(state);
  }
}

// Assembly:
subq $0x18, %rsp
movb %dil, %al
andb $0x1, %al
movb %al, 0x17(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x288bb5
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x8(%rsp), %rax
movb 0x28(%rax), %cl
leaq 0x314bf2(%rip), %rdx    # 0x59d628
leaq 0x29c902(%rip), %rax    # 0x52533f
testb $0x1, %cl
cmovneq %rax, %rdx
movq 0x8(%rsp), %rax
movl 0xf8(%rax), %ecx
movq 0x8(%rsp), %rax
movq 0xc0(%rax), %r8
leaq 0x2f887b(%rip), %rsi    # 0x5812dd
movb $0x0, %al
callq 0xe7cd0
movq 0x8(%rsp), %rax
testb $0x1, 0x28(%rax)
je 0x288ab4
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x8(%rsp), %rax
movl 0xf8(%rax), %edx
movq 0x8(%rsp), %rax
movq 0xc8(%rax), %rcx
movq 0x8(%rsp), %rax
movq 0xd0(%rax), %rax
shrq %rax
addq %rax, %rcx
leaq 0x2f8864(%rip), %rsi    # 0x581311
movb $0x0, %al
callq 0xe7cd0
movq 0x8(%rsp), %rax
movq 0x60(%rax), %rdi
leaq 0x2f863f(%rip), %rsi    # 0x581103
movl $0x32a, %edx            # imm = 0x32A
callq 0xe88c0
movq 0x8(%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x8(%rsp), %rax
movq 0x88(%rax), %rsi
callq 0x28b3f0
testb $0x1, 0x17(%rsp)
je 0x288b03
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x287db0
jmp 0x288b7f
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11d510
movq %rax, (%rsp)
movq (%rsp), %rdi
leaq 0x29ad46(%rip), %rsi    # 0x523866
callq 0x11d550
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x8(%rsp), %rax
movl 0xf8(%rax), %edx
movq 0x8(%rsp), %rax
movq 0xe8(%rax), %rcx
leaq 0x2f8802(%rip), %rsi    # 0x58134e
movb $0x0, %al
callq 0xe7cd0
movq (%rsp), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x288090
movq 0x8(%rsp), %rax
movq 0xe0(%rax), %rdi
callq 0xd9390
movq 0x8(%rsp), %rax
cmpq $0x0, 0xb8(%rax)
je 0x288b9f
movq 0x8(%rsp), %rax
movq 0xb8(%rax), %rdi
callq 0xd9390
movq 0x8(%rsp), %rdi
leaq 0x2f8558(%rip), %rsi    # 0x581103
movl $0x341, %edx            # imm = 0x341
callq 0xe88c0
addq $0x18, %rsp
retq
nopw (%rax,%rax)