// File: /workspace/github_c_makefile_star2_O1/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 0x1d47dc
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x188b97(%rip), %rax    # 0x35d296
leaq 0x1ff18a(%rip), %rdx    # 0x3d3890
cmpb $0x0, 0x28(%rsi)
cmovneq %rax, %rdx
movl 0xf8(%rsi), %ecx
movq 0x10(%rsi), %rdi
movq 0xc0(%rsi), %r8
leaq 0x1e35d0(%rip), %rsi    # 0x3b7cf6
xorl %eax, %eax
callq 0x10906e
cmpb $0x1, 0x28(%rbx)
jne 0x1d475c
movl 0xf8(%rbx), %edx
movq 0x10(%rbx), %rdi
movq 0xd0(%rbx), %rcx
shrq %rcx
addq 0xc8(%rbx), %rcx
leaq 0x1e35d5(%rip), %rsi    # 0x3b7d2a
xorl %eax, %eax
callq 0x10906e
movq 0x60(%rbx), %rdi
leaq 0x1e33b5(%rip), %rsi    # 0x3b7b1c
movl $0x32a, %edx            # imm = 0x32A
callq 0x109670
movq 0x78(%rbx), %r14
movq 0x88(%rbx), %r15
testq %r15, %r15
je 0x1d4797
leaq 0x8(%r14), %r12
movq (%r12), %rdi
callq 0x1ef909
addq $0x10, %r12
decq %r15
jne 0x1d4785
leaq 0x1e337e(%rip), %rsi    # 0x3b7b1c
movq %r14, %rdi
movl $0xe9, %edx
callq 0x109670
testb %bpl, %bpl
je 0x1d47dd
movq (%rbx), %r14
movq (%r14), %rdi
leaq 0x1e3303(%rip), %r15    # 0x3b7ac0
movq %r15, %rsi
movl $0x6f, %edx
callq 0x109670
movq %r14, %rdi
movq %r15, %rsi
movl $0x70, %edx
callq 0x109670
jmp 0x1d4855
retq
movq 0x30(%rbx), %rdi
callq 0x120955
movq %rax, %r14
leaq 0x18702e(%rip), %rsi    # 0x35b81e
movq %rax, %rdi
callq 0x12097f
movl 0xf8(%rbx), %edx
movq 0x10(%rbx), %rdi
movq 0xe8(%rbx), %rcx
leaq 0x1e3557(%rip), %rsi    # 0x3b7d67
xorl %eax, %eax
callq 0x10906e
movq %r14, %rdi
callq 0x121b03
movq (%rbx), %r14
movq (%r14), %rdi
leaq 0x1e32b5(%rip), %r15    # 0x3b7ae1
movq %r15, %rsi
movl $0x71, %edx
callq 0x109670
movq %r14, %rdi
movq %r15, %rsi
movl $0x72, %edx
callq 0x109670
movq 0xe0(%rbx), %rdi
callq 0x101e80
movq 0xb8(%rbx), %rdi
testq %rdi, %rdi
je 0x1d4866
callq 0x101e80
leaq 0x1e32af(%rip), %rsi    # 0x3b7b1c
movq %rbx, %rdi
movl $0x341, %edx            # imm = 0x341
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x109670