// File: /workspace/github_c_makefile_star2_O3/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:
testq %rsi, %rsi
je 0x1cb582
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x188db9(%rip), %rax    # 0x35425e
leaq 0x1fecc4(%rip), %rdx    # 0x3ca170
cmpb $0x0, 0x28(%rsi)
cmovneq %rax, %rdx
movl 0xf8(%rsi), %ecx
movq 0x10(%rsi), %rdi
movq 0xc0(%rsi), %r8
leaq 0x1e322a(%rip), %rsi    # 0x3ae6f6
xorl %eax, %eax
callq 0x103fe1
cmpb $0x1, 0x28(%rbx)
jne 0x1cb502
movl 0xf8(%rbx), %edx
movq 0x10(%rbx), %rdi
movq 0xd0(%rbx), %rcx
shrq %rcx
addq 0xc8(%rbx), %rcx
leaq 0x1e322f(%rip), %rsi    # 0x3ae72a
xorl %eax, %eax
callq 0x103fe1
movq 0x60(%rbx), %rdi
leaq 0x1e300f(%rip), %rsi    # 0x3ae51c
movl $0x32a, %edx            # imm = 0x32A
callq 0x1045eb
movq 0x78(%rbx), %r14
movq 0x88(%rbx), %r15
testq %r15, %r15
je 0x1cb53d
leaq 0x8(%r14), %r12
movq (%r12), %rdi
callq 0x1e6192
addq $0x10, %r12
decq %r15
jne 0x1cb52b
leaq 0x1e2fd8(%rip), %rsi    # 0x3ae51c
movq %r14, %rdi
movl $0xe9, %edx
callq 0x1045eb
testb %bpl, %bpl
je 0x1cb583
movq (%rbx), %r14
movq (%r14), %rdi
leaq 0x1e2f5d(%rip), %r15    # 0x3ae4c0
movq %r15, %rsi
movl $0x6f, %edx
callq 0x1045eb
movq %r14, %rdi
movq %r15, %rsi
movl $0x70, %edx
callq 0x1045eb
jmp 0x1cb5fb
retq
movq 0x30(%rbx), %rdi
callq 0x11acc9
movq %rax, %r14
leaq 0x187250(%rip), %rsi    # 0x3527e6
movq %rax, %rdi
callq 0x11acf3
movl 0xf8(%rbx), %edx
movq 0x10(%rbx), %rdi
movq 0xe8(%rbx), %rcx
leaq 0x1e31b1(%rip), %rsi    # 0x3ae767
xorl %eax, %eax
callq 0x103fe1
movq %r14, %rdi
callq 0x11bdbf
movq (%rbx), %r14
movq (%r14), %rdi
leaq 0x1e2f0f(%rip), %r15    # 0x3ae4e1
movq %r15, %rsi
movl $0x71, %edx
callq 0x1045eb
movq %r14, %rdi
movq %r15, %rsi
movl $0x72, %edx
callq 0x1045eb
movq 0xe0(%rbx), %rdi
callq 0xfd018
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0x1cb60c
callq 0xfd018
leaq 0x1e2f09(%rip), %rsi    # 0x3ae51c
movq %rbx, %rdi
movl $0x341, %edx            # imm = 0x341
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1045eb