LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-shulen.c
// Function: gt_sfx_multiesashulengthdist_delete
void gt_sfx_multiesashulengthdist_delete(GtBUstate_shulen *bustate,
                                         GenomediffInfo *gd_info)
{
  if (bustate == NULL)
  {
    return;
  }
  gt_assert(bustate->shulengthdist != NULL);
  if (gd_info == NULL) {
    shulengthdist_print(bustate->unit_info->file_names,
                        (const uint64_t * const*) bustate->shulengthdist,
                        bustate->numofdbfiles);
    gt_array2dim_delete(bustate->shulengthdist);
    gt_shu_unit_info_delete(bustate->unit_info);
  }
  gt_GtArrayGtBUItvinfo_delete_shulen(bustate->stack,bustate);
#ifdef GENOMEDIFF_PAPER_IMPL
  gt_free(bustate->leafdist);
#endif
  gt_free(bustate);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x23edeb
jmp 0x23eecc
jmp 0x23eded
movq 0x10(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x23ee31
movq 0x3fd1a0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d7209(%rip), %rsi    # 0x516013
leaq 0x338b79(%rip), %rdx    # 0x57798a
leaq 0x338b91(%rip), %rcx    # 0x5779a9
leaq 0x338b10(%rip), %r8     # 0x57792f
movl $0x290, %r9d            # imm = 0x290
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x23ee33
cmpq $0x0, 0x8(%rsp)
jne 0x23eea3
movq 0x10(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rdi
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rsp), %rax
movq (%rax), %rdx
callq 0x23d470
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
leaq 0x338abe(%rip), %rsi    # 0x57792f
movl $0x295, %edx            # imm = 0x295
callq 0xe88c0
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x338aa4(%rip), %rsi    # 0x57792f
movl $0x295, %edx            # imm = 0x295
callq 0xe88c0
movq 0x10(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x2ee190
movq 0x10(%rsp), %rax
movq 0x40(%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x23c0a0
movq 0x10(%rsp), %rdi
leaq 0x338a6d(%rip), %rsi    # 0x57792f
movl $0x29c, %edx            # imm = 0x29C
callq 0xe88c0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-shulen.c
// Function: shu_compute_leaf_edge_contrib
static void shu_compute_leaf_edge_contrib(GtBUstate_shulen *state,
                                          const GtUword *fathernumdist,
                                          GtUword gnum,
                                          GtUword fatherdepth)
{
  GtUword idx;
#ifdef GENOMEDIFF_PAPER_IMPL
  gt_assert(state->leafdist != NULL);
  for (idx = 0; idx < state->numofdbfiles; idx++)
  {
    state->leafdist[idx] = 0;
  }
  state->leafdist[gnum] = 1UL;
  cartproduct_shulen(state,fatherdepth,fathernumdist,state->leafdist);
  cartproduct_shulen(state,fatherdepth,state->leafdist,fathernumdist);
#else
  for (idx = 0; idx < state->numofdbfiles; idx++)
  {
    if (idx != gnum && fathernumdist[idx] > 0)
    {
      contribute_shulen(__LINE__,
                        state->shulengthdist,
                        idx,
                        gnum,
                        1UL,
                        fatherdepth+1);
      if (fathernumdist[gnum] == 0)
      {
        contribute_shulen(__LINE__,
                          state->shulengthdist,
                          gnum,
                          idx,
                          fathernumdist[idx],
                          fatherdepth + 1);
      }
    }
  }
#endif
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq $0x0, (%rsp)
movq (%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x23f5e4
movq (%rsp), %rax
cmpq 0x10(%rsp), %rax
je 0x23f5d1
movq 0x18(%rsp), %rax
movq (%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x23f5d1
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
movq (%rsp), %rdx
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r9
addq $0x1, %r9
movl $0xb0, %edi
movl $0x1, %r8d
callq 0x23f5f0
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x23f5cf
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rsp), %rdx
movq (%rsp), %rcx
movq 0x18(%rsp), %rax
movq (%rsp), %rdi
movq (%rax,%rdi,8), %r8
movq 0x8(%rsp), %r9
addq $0x1, %r9
movl $0xb8, %edi
callq 0x23f5f0
jmp 0x23f5d1
jmp 0x23f5d3
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x23f530
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-shulen.c
// Function: cartproduct_shulen
static void cartproduct_shulen(GtBUstate_shulen *state,
                               GtUword depth,
                               const GtUword *refnumdist,
                               const GtUword *querynumdist)
{
  GtUword referidx, shulenidx;

  for (referidx=0; referidx < state->numofdbfiles; referidx++)
  {
    if (refnumdist[referidx] > 0 && querynumdist[referidx] == 0)
    {
      for (shulenidx=0; shulenidx < state->numofdbfiles; shulenidx++)
      {
        if (querynumdist[shulenidx] > 0)
        {
          gt_assert(referidx != shulenidx);
          contribute_shulen(__LINE__,
                            state->shulengthdist,
                            referidx,
                            shulenidx,
                            querynumdist[shulenidx],
                            depth + 1);
        }
      }
    }
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x23f773
movq 0x20(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x23f75e
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x23f75e
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x23f75c
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jbe 0x23f747
jmp 0x23f6cd
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jne 0x23f711
movq 0x3fc8c0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d6929(%rip), %rsi    # 0x516013
leaq 0x33834c(%rip), %rdx    # 0x577a3d
leaq 0x33835b(%rip), %rcx    # 0x577a53
leaq 0x338230(%rip), %r8     # 0x57792f
movl $0x8f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x23f713
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rdi
movq (%rax,%rdi,8), %r8
movq 0x28(%rsp), %r9
addq $0x1, %r9
movl $0x90, %edi
callq 0x23f5f0
jmp 0x23f749
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x23f6a7
jmp 0x23f75e
jmp 0x23f760
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x23f661
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-shulen.c
// Function: gt_esa2shulengthatposition
static GtUword gt_esa2shulengthatposition(const Suffixarray *suffixarray,
                                                GtUword totallength,
                                                GtUword offset,
                                                GtUword left,
                                                GtUword right,
                                                const GtUchar *qstart,
                                                const GtUchar *qend)
{
  Simplelcpinterval itv;
  const GtUchar *qptr;

  gt_assert(left < right);
  itv.left = left;
  itv.right = right;
  /*printf("\n");*/
  for (qptr = qstart; /* Nothing */; qptr++, offset++)
  {
    if (itv.left <= itv.right)
    {
      /*
      if (qptr < qend)
      {
        printf("read %u\n",(unsigned int) *qptr);
      }
      */
      if (qptr >= qend || GT_ISSPECIAL(*qptr) ||
          !gt_lcpintervalfindcharchildintv(suffixarray->encseq,
                                           suffixarray->readmode,
                                           totallength,
                                           suffixarray->suftab,
                                           &itv,
                                           *qptr,
                                           offset,
                                           itv.left,
                                           itv.right))
      {
        break;
      }
    } else
    {
      break;
    }
  }
  /*printf("add " GT_WU "\n",offset+1); */
  return offset+1;
}

// Assembly:
subq $0x68, %rsp
movq 0x70(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
movq 0x48(%rsp), %rax
cmpq 0x40(%rsp), %rax
jb 0x23f7eb
movq 0x3fc7e6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d684f(%rip), %rsi    # 0x516013
leaq 0x3382ba(%rip), %rdx    # 0x577a85
leaq 0x3382c0(%rip), %rcx    # 0x577a92
leaq 0x338156(%rip), %r8     # 0x57792f
movl $0x1a4, %r9d            # imm = 0x1A4
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x23f7ed
movq 0x48(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
cmpq 0x30(%rsp), %rax
ja 0x23f88b
movq 0x20(%rsp), %rax
cmpq 0x70(%rsp), %rax
jae 0x23f887
movq 0x20(%rsp), %rax
movzbl (%rax), %eax
cmpl $0xfe, %eax
jge 0x23f887
movq 0x60(%rsp), %rax
movq (%rax), %rdi
movq 0x60(%rsp), %rax
movl 0x48(%rax), %esi
movq 0x58(%rsp), %rdx
movq 0x60(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x20(%rsp), %rax
movb (%rax), %r9b
movq 0x50(%rsp), %r11
movq 0x28(%rsp), %r10
movq 0x30(%rsp), %rax
leaq 0x28(%rsp), %r8
movzbl %r9b, %r9d
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x23f8c0
testb $0x1, %al
jne 0x23f889
jmp 0x23f8b0
jmp 0x23f88d
jmp 0x23f8b0
jmp 0x23f88f
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x50(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x50(%rsp)
jmp 0x23f80b
movq 0x50(%rsp), %rax
addq $0x1, %rax
addq $0x68, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-splititv.c
// Function: lcpintervalfindrightbound
static GtUword lcpintervalfindrightbound(const GtEncseq *encseq,
                                        GtReadmode readmode,
                                        GtUword totallength,
                                        const ESASuffixptr *suftab,
                                        GtUchar cc,
                                        GtUword offset,
                                        GtUword left,
                                        GtUword right)
{
  GtUword pos, mid;
  GtUchar midcc;

  while (right > left+1)
  {
    mid = GT_DIV2(left+right);
    pos = ESASUFFIXPTRGET(suftab,mid) + offset;
    midcc = SEQUENCE(encseq,pos);
    if (cc < midcc)
    {
      right = mid;
    } else
    {
      left = mid;
    }
  }
  return left;
}

// Assembly:
subq $0x48, %rsp
movb %r8b, %al
movq 0x58(%rsp), %r8
movq 0x50(%rsp), %r8
movq %rdi, 0x40(%rsp)
movl %esi, 0x3c(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movb %al, 0x27(%rsp)
movq %r9, 0x18(%rsp)
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jbe 0x23fb6d
movq 0x50(%rsp), %rax
addq 0x58(%rsp), %rax
shrq %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x30(%rsp), %rax
jne 0x23fb24
movl $0xff, %eax
movl %eax, (%rsp)
jmp 0x23fb3d
movq 0x40(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl 0x3c(%rsp), %edx
callq 0xa9da0
movzbl %al, %eax
movl %eax, (%rsp)
movl (%rsp), %eax
movb %al, 0x7(%rsp)
movzbl 0x27(%rsp), %eax
movzbl 0x7(%rsp), %ecx
cmpl %ecx, %eax
jge 0x23fb5e
movq 0x8(%rsp), %rax
movq %rax, 0x58(%rsp)
jmp 0x23fb68
movq 0x8(%rsp), %rax
movq %rax, 0x50(%rsp)
jmp 0x23facd
movq 0x50(%rsp), %rax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-splititv.c
// Function: gt_findmaximalprefixinESA
GtUword gt_findmaximalprefixinESA(const GtEncseq *encseq,
                                  GtReadmode readmode,
                                  GtUword totallength,
                                  const ESASuffixptr *suftab,
                                  const GtUchar *query,
                                  GtUword querylen)
{
  Simplelcpinterval current_itv;
  GtUword idx;

  current_itv.left = 0;
  current_itv.right = totallength;

  for (idx = 0; idx < querylen; idx++)
  {
    if (GT_ISSPECIAL(query[idx]))
    {
      gt_assert(query[idx] != GT_SEPARATOR);
      break;
    }
    if (!gt_lcpintervalfindcharchildintv(encseq,
                                         readmode,
                                         totallength,
                                         suftab,
                                         &current_itv,
                                         query[idx],
                                         idx,
                                         current_itv.left,
                                         current_itv.right))
    {
      break;
    }
  }
  return idx;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movl %esi, 0x5c(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
movq $0x0, 0x28(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpq 0x38(%rsp), %rax
jae 0x23fc9c
movq 0x40(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0xfe, %eax
jl 0x23fc35
jmp 0x23fbe4
movq 0x40(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0xff, %eax
jne 0x23fc31
movq 0x3fc3a0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d6409(%rip), %rsi    # 0x516013
leaq 0x337f09(%rip), %rdx    # 0x577b1a
leaq 0x337f1d(%rip), %rcx    # 0x577b35
leaq 0x337f30(%rip), %r8     # 0x577b4f
movl $0x7a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x23fc33
jmp 0x23fc9c
movq 0x60(%rsp), %rdi
movl 0x5c(%rsp), %esi
movq 0x50(%rsp), %rdx
movq 0x48(%rsp), %rcx
movq 0x40(%rsp), %rax
movq 0x20(%rsp), %r8
movb (%rax,%r8), %r9b
movq 0x20(%rsp), %r11
movq 0x28(%rsp), %r10
movq 0x30(%rsp), %rax
leaq 0x28(%rsp), %r8
movzbl %r9b, %r9d
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x23f8c0
testb $0x1, %al
jne 0x23fc87
jmp 0x23fc9c
jmp 0x23fc89
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x23fbbd
movq 0x20(%rsp), %rax
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-splititv.c
// Function: gt_lcpintervalextendlcp
GtUchar gt_lcpintervalextendlcp(const GtEncseq *encseq,
                                GtReadmode readmode,
                                const ESASuffixptr *suftab,
                                GtUword totallength,
                                GtUchar alphasize,
                                GtUword parentoffset,
                                GtUword parentleft,
                                GtUword parentright)
{
  GtUchar ccl, ccr;

  ccl = SEQUENCE(encseq,ESASUFFIXPTRGET(suftab,parentleft) + parentoffset);
  ccr = SEQUENCE(encseq,ESASUFFIXPTRGET(suftab,parentright) + parentoffset);
  if (ccl != ccr || GT_ISSPECIAL(ccl))
  {
    return alphasize;
  }
  gt_assert(ccl < alphasize);
  return ccl;
}

// Assembly:
subq $0x48, %rsp
movb %r8b, %al
movq 0x58(%rsp), %r8
movq 0x50(%rsp), %r8
movq %rdi, 0x38(%rsp)
movl %esi, 0x34(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movb %al, 0x1f(%rsp)
movq %r9, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq 0x50(%rsp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x10(%rsp), %rax
cmpq 0x20(%rsp), %rax
jne 0x240032
movl $0xff, %eax
movl %eax, 0x8(%rsp)
jmp 0x24005a
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x50(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq 0x10(%rsp), %rsi
movl 0x34(%rsp), %edx
callq 0xa9da0
movzbl %al, %eax
movl %eax, 0x8(%rsp)
movl 0x8(%rsp), %eax
movb %al, 0xf(%rsp)
movq 0x28(%rsp), %rax
movq 0x58(%rsp), %rcx
movq (%rax,%rcx,8), %rax
addq 0x10(%rsp), %rax
cmpq 0x20(%rsp), %rax
jne 0x240087
movl $0xff, %eax
movl %eax, 0x4(%rsp)
jmp 0x2400af
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x58(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq 0x10(%rsp), %rsi
movl 0x34(%rsp), %edx
callq 0xa9da0
movzbl %al, %eax
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %eax
movb %al, 0xe(%rsp)
movzbl 0xf(%rsp), %eax
movzbl 0xe(%rsp), %ecx
cmpl %ecx, %eax
jne 0x2400d1
movzbl 0xf(%rsp), %eax
cmpl $0xfe, %eax
jl 0x2400db
movb 0x1f(%rsp), %al
movb %al, 0x47(%rsp)
jmp 0x24012d
jmp 0x2400dd
movzbl 0xf(%rsp), %eax
movzbl 0x1f(%rsp), %ecx
cmpl %ecx, %eax
jl 0x240123
movq 0x3fbeae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d5f17(%rip), %rsi    # 0x516013
leaq 0x337ac4(%rip), %rdx    # 0x577bc7
leaq 0x337acd(%rip), %rcx    # 0x577bd7
leaq 0x337a3e(%rip), %r8     # 0x577b4f
movl $0xd5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x240125
movb 0xf(%rsp), %al
movb %al, 0x47(%rsp)
movb 0x47(%rsp), %al
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-spmitvs.c
// Function: gt_process_spmitv
int gt_process_spmitv(const char *inputindex, GtLogger *logger, GtError *err)
{
  bool haserr = false;
  Sequentialsuffixarrayreader *ssar;

  gt_error_check(err);
  ssar = gt_newSequentialsuffixarrayreaderfromfile(inputindex,
                                                   SARR_LCPTAB |
                                                   SARR_SUFTAB |
                                                   SARR_ESQTAB,
                                                   true,
                                                   logger,
                                                   err);
  if (ssar == NULL)
  {
    haserr = true;
  }
  if (!haserr)
  {
    GtESAVisitor *ev;
    GtUword nonspecials;

    nonspecials = gt_Sequentialsuffixarrayreader_nonspecials(ssar);
    ev = gt_esa_spmitvs_visitor_new(
                              gt_encseqSequentialsuffixarrayreader(ssar),
                              gt_readmodeSequentialsuffixarrayreader(ssar),
                              gt_Sequentialsuffixarrayreader_prefixlength(ssar),
                              err);

    if (gt_esa_bottomup(ssar, ev, err) != 0)
    {
      haserr = true;
    } else
    {
      gt_esa_spmitvs_visitor_print_results((GtESASpmitvsVisitor*) ev,
                                           nonspecials);
    }
    gt_esa_visitor_delete(ev);
  }
  if (ssar != NULL)
  {
    gt_freeSequentialsuffixarrayreader(&ssar);
  }
  return haserr ? -1 : 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movb $0x0, 0x2f(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x2401a8
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x240170
jmp 0x2401a8
movq 0x3fbe29(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d5e92(%rip), %rsi    # 0x516013
leaq 0x2d6037(%rip), %rdx    # 0x5161bf
leaq 0x337a60(%rip), %rcx    # 0x577bef
leaq 0x337a6b(%rip), %r8     # 0x577c01
movl $0x1e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2401aa
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq 0x30(%rsp), %r8
movl $0x7, %esi
movl $0x1, %edx
callq 0x23b3e0
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x2401da
movb $0x1, 0x2f(%rsp)
testb $0x1, 0x2f(%rsp)
jne 0x24026c
movq 0x20(%rsp), %rdi
callq 0x23bed0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
callq 0x23bd50
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
callq 0x23bda0
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rdi
callq 0x23bff0
movq (%rsp), %rdi
movl 0xc(%rsp), %esi
movl %eax, %edx
movq 0x30(%rsp), %rcx
callq 0x242150
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x30(%rsp), %rdx
callq 0x4b2f60
cmpl $0x0, %eax
je 0x240253
movb $0x1, 0x2f(%rsp)
jmp 0x240262
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x242260
movq 0x18(%rsp), %rdi
callq 0x242b70
cmpq $0x0, 0x20(%rsp)
je 0x24027e
leaq 0x20(%rsp), %rdi
callq 0x23b5e0
movb 0x2f(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-spmsk.c
// Function: gt_spmsk_inl_new
GtBUstate_spmsk *gt_spmsk_inl_new(const GtEncseq *encseq,
                            GtReadmode readmode,
                            GtUword minmatchlength,
                            bool countspms,
                            bool outputspms,
                            GT_UNUSED const char *indexname)
{
  GtBUstate_spmsk *state = gt_malloc(sizeof (*state));

  state->encseq = encseq;
  state->readmode = readmode;
  state->totallength = gt_encseq_total_length(encseq);
  state->minmatchlength = minmatchlength;
  state->countspms = countspms;
  state->outputspms = outputspms;
  state->spmcounter = 0;
  state->stack = (void *) gt_GtArrayGtBUItvinfo_new();
  GT_INITARRAY(&state->Wset,GtUword);
  GT_INITARRAY(&state->Lset,GtUword);
  return state;
}

// Assembly:
subq $0x38, %rsp
movb %r8b, %al
movq %rdi, 0x30(%rsp)
movl %esi, 0x2c(%rsp)
movq %rdx, 0x20(%rsp)
andb $0x1, %cl
movb %cl, 0x1f(%rsp)
andb $0x1, %al
movb %al, 0x1e(%rsp)
movq %r9, 0x10(%rsp)
movl $0x70, %edi
leaq 0x337877(%rip), %rsi    # 0x577c3a
movl $0x87, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movl 0x2c(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x8(%rax)
movq 0x30(%rsp), %rdi
callq 0xa9d00
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movb 0x1f(%rsp), %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x30(%rax)
movb 0x1e(%rsp), %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x31(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x20(%rax)
callq 0x4b2e80
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x68(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x40(%rax)
jmp 0x240474
movq 0x8(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x60(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x58(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-spmsk.c
// Function: gt_spmsk_inl_delete
GtUword gt_spmsk_inl_delete(GtBUstate_spmsk *state)
{
  if (state != NULL)
  {
    GtUword tmpcount;

    GT_FREEARRAY(&state->Wset,GtUword);
    GT_FREEARRAY(&state->Lset,GtUword);
    gt_GtArrayGtBUItvinfo_delete_spmsk(
                 (GtArrayGtBUItvinfo_spmsk *) state->stack,state);
    tmpcount = state->spmcounter;
    gt_free(state);
    return tmpcount;
  }
  return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x2405a8
jmp 0x2404c7
movq 0x8(%rsp), %rax
cmpq $0x0, 0x38(%rax)
je 0x240514
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
leaq 0x337757(%rip), %rsi    # 0x577c3a
movl $0x9c, %edx
callq 0xe88c0
movq 0x8(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x38(%rax)
jmp 0x240516
jmp 0x240518
movq 0x8(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x240565
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
leaq 0x337706(%rip), %rsi    # 0x577c3a
movl $0x9d, %edx
callq 0xe88c0
movq 0x8(%rsp), %rax
movq $0x0, 0x58(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x60(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x50(%rax)
jmp 0x240567
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x2402f0
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
leaq 0x3376a7(%rip), %rsi    # 0x577c3a
movl $0xa1, %edx
callq 0xe88c0
movq (%rsp), %rax
movq %rax, 0x10(%rsp)
jmp 0x2405b1
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa-spmsk.c
// Function: gt_spmsk_inl_process
int gt_spmsk_inl_process(void *data,
                         const GtUword *seqnum_relpos_bucket,
                         const GtSeqnumrelpos *snrp,
                         const uint16_t *lcptab_bucket,
                         GtUword nonspecials,
                         GtUword spaceforbucketprocessing,
                         GtError *err)
{
  GtBUstate_spmsk *state = (GtBUstate_spmsk *) data;

  gt_assert(snrp != NULL);
  gt_assert(lcptab_bucket != NULL);
  state->spaceforbucketprocessing = spaceforbucketprocessing;
  if (gt_esa_bottomup_RAM_spmsk(seqnum_relpos_bucket,
                                lcptab_bucket,
                                nonspecials,
                                (GtArrayGtBUItvinfo_spmsk *) state->stack,
                                state,
                                snrp,
                                err) != 0)
  {
    return -1;
  }
  return 0;
}

// Assembly:
subq $0x48, %rsp
movq 0x50(%rsp), %rax
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq %r8, 0x18(%rsp)
movq %r9, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x240631
movq 0x3fb9a0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d5a09(%rip), %rsi    # 0x516013
leaq 0x33763f(%rip), %rdx    # 0x577c50
leaq 0x337645(%rip), %rcx    # 0x577c5d
leaq 0x33761b(%rip), %r8     # 0x577c3a
movl $0xb1, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x240633
jmp 0x240635
cmpq $0x0, 0x20(%rsp)
jne 0x240675
movq 0x3fb95c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d59c5(%rip), %rsi    # 0x516013
leaq 0x33761d(%rip), %rdx    # 0x577c72
leaq 0x337601(%rip), %rcx    # 0x577c5d
leaq 0x3375d7(%rip), %r8     # 0x577c3a
movl $0xb2, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x240677
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rcx
movq 0x8(%rsp), %r8
movq 0x28(%rsp), %r9
movq 0x50(%rsp), %rax
movq %rax, (%rsp)
callq 0x2406e0
cmpl $0x0, %eax
je 0x2406c4
movl $0xffffffff, 0x44(%rsp) # imm = 0xFFFFFFFF
jmp 0x2406cc
movl $0x0, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_lcpintervals_visitor.c
// Function: gt_esa_lcpitvs_visitor_class
static const GtESAVisitorClass* gt_esa_lcpitvs_visitor_class(void)
{
  static const GtESAVisitorClass *esc = NULL;
  gt_class_alloc_lock_enter();
  if (!esc) {
    esc = gt_esa_visitor_class_new(sizeof (GtESALcpintervalsVisitor),
                                   NULL,
                                   gt_esa_lcpitvs_visitor_processleafedge,
                                   gt_esa_lcpitvs_visitor_processbranchingedge,
                                   NULL,
                                   NULL,
                                   NULL);
  }
  gt_class_alloc_lock_leave();
  return esc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x4015c2(%rip)    # 0x642f70
jne 0x2419e2
movl $0x10, %edi
xorl %eax, %eax
movl %eax, %r9d
leaq 0x2f(%rip), %rdx        # 0x2419f0
leaq 0x98(%rip), %rcx        # 0x241a60
movq %r9, %rsi
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x242480
movq %rax, 0x40158e(%rip)    # 0x642f70
callq 0x9f280
movq 0x401582(%rip), %rax    # 0x642f70
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_spmitvs_visitor.c
// Function: gt_esa_spmitvs_visitor_class
const GtESAVisitorClass* gt_esa_spmitvs_visitor_class()
{
  static const GtESAVisitorClass *esc = NULL;
  gt_class_alloc_lock_enter();
  if (!esc) {
    esc = gt_esa_visitor_class_new(sizeof (GtESASpmitvsVisitor),
                                   gt_esa_spmitvs_visitor_delete,
                                   gt_esa_spmitvs_visitor_processleafedge,
                                   gt_esa_spmitvs_visitor_processbranchingedge,
                                   gt_esa_spmitvs_visitor_processlcpinterval,
                                   NULL,
                                   NULL);
  }
  gt_class_alloc_lock_leave();
  return esc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x4013fa(%rip)    # 0x642f78
jne 0x241bba
movl $0x58, %edi
leaq -0xac(%rip), %rsi       # 0x241ae0
leaq 0x3d(%rip), %rdx        # 0x241bd0
leaq 0x1a6(%rip), %rcx       # 0x241d40
leaq 0x3cf(%rip), %r8        # 0x241f70
xorl %eax, %eax
movl %eax, %r9d
movq $0x0, (%rsp)
callq 0x242480
movq %rax, 0x4013be(%rip)    # 0x642f78
callq 0x9f280
movq 0x4013b2(%rip), %rax    # 0x642f78
popq %rcx
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_spmitvs_visitor.c
// Function: gt_esa_spmitvs_visitor_processleafedge
static int gt_esa_spmitvs_visitor_processleafedge(GtESAVisitor *ev,
                                                  GT_UNUSED bool firstsucc,
                                                  GtUword fd,
                                                  GT_UNUSED GtUword flb,
                                                  GT_UNUSED
                                                         GtESAVisitorInfo *info,
                                                  GtUword leafnumber,
                                                  GT_UNUSED GtError *err)

{
  GtESASpmitvsVisitor *esv;
  gt_assert(ev);
  esv = gt_esa_spmitvs_visitor_cast(ev);

  if (gt_esa_spmitvs_visitor_iswholeleaf(esv->encseq,esv->readmode,leafnumber))
  {
    gt_assert(esv->currentleafindex != esv->totallength);
    esv->lastwholeleaf = esv->currentleafindex;
  } else
  {
    if (leafnumber + fd < esv->totallength &&
        !gt_encseq_position_is_separator(esv->encseq,
                                         leafnumber + fd,
                                         esv->readmode))
    {
      esv->unnecessaryleaves++;
    }
  }
  esv->currentleafindex++;
  return 0;
}

// Assembly:
subq $0x38, %rsp
movb %sil, %al
movq 0x40(%rsp), %rsi
movq %rdi, 0x30(%rsp)
andb $0x1, %al
movb %al, 0x2f(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x241c3b
movq 0x3fa396(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d43ff(%rip), %rsi    # 0x516013
leaq 0x2fd36b(%rip), %rdx    # 0x53ef86
leaq 0x3361bc(%rip), %rcx    # 0x577dde
leaq 0x336145(%rip), %r8     # 0x577d6e
movl $0x46, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x241c3d
callq 0x241b70
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x2425f0
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x48(%rax), %rdi
movq (%rsp), %rax
movl 0x50(%rax), %esi
movq 0x8(%rsp), %rdx
callq 0x242420
testb $0x1, %al
jne 0x241c72
jmp 0x241cd2
jmp 0x241c74
movq (%rsp), %rax
movq 0x20(%rax), %rax
movq (%rsp), %rcx
cmpq 0x18(%rcx), %rax
jne 0x241cbe
movq 0x3fa313(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d437c(%rip), %rsi    # 0x516013
leaq 0x336167(%rip), %rdx    # 0x577e05
leaq 0x336139(%rip), %rcx    # 0x577dde
leaq 0x3360c2(%rip), %r8     # 0x577d6e
movl $0x4b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x241cc0
movq (%rsp), %rax
movq 0x20(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
jmp 0x241d1a
movq 0x8(%rsp), %rax
addq 0x20(%rsp), %rax
movq (%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x241d18
movq (%rsp), %rax
movq 0x48(%rax), %rdi
movq 0x8(%rsp), %rsi
addq 0x20(%rsp), %rsi
movq (%rsp), %rax
movl 0x50(%rax), %edx
callq 0xaaca0
testb $0x1, %al
jne 0x241d18
movq (%rsp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
jmp 0x241d1a
movq (%rsp), %rax
movq 0x20(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rax)
xorl %eax, %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_spmitvs_visitor.c
// Function: gt_esa_spmitvs_visitor_new
GtESAVisitor* gt_esa_spmitvs_visitor_new(const GtEncseq *encseq,
                                         GtReadmode readmode,
                                         unsigned int prefixlength,
                                         GT_UNUSED GtError *err)
{
  GtESAVisitor *ev = gt_esa_visitor_create(gt_esa_spmitvs_visitor_class());
  GtESASpmitvsVisitor *esv = gt_esa_spmitvs_visitor_cast(ev);

  esv->encseq = encseq;
  esv->readmode = readmode;
  esv->maxlen = gt_encseq_max_seq_length(encseq);
  esv->unnecessaryleaves = 0;
  esv->totallength = gt_encseq_total_length(encseq);
  esv->currentleafindex = 0;
  esv->lastwholeleaf = esv->totallength; /* undefined */
  esv->prefixlength = prefixlength;
  esv->wholeleafcount = gt_malloc(sizeof (*esv->wholeleafcount) *
                                 (esv->maxlen+1));
  memset(esv->wholeleafcount, 0,
         sizeof (*esv->wholeleafcount) * (esv->maxlen+1));

  return ev;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl %esi, 0x1c(%rsp)
movl %edx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
callq 0x241b70
movq %rax, %rdi
callq 0x242560
movq %rax, 0x8(%rsp)
callq 0x241b70
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x2425f0
movq %rax, (%rsp)
movq 0x20(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x48(%rax)
movl 0x1c(%rsp), %ecx
movq (%rsp), %rax
movl %ecx, 0x50(%rax)
movq 0x20(%rsp), %rdi
callq 0xb10b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x20(%rsp), %rdi
callq 0xa9d00
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
movq (%rsp), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movl 0x18(%rsp), %ecx
movq (%rsp), %rax
movl %ecx, 0x38(%rax)
movq (%rsp), %rax
movq 0x30(%rax), %rdi
addq $0x1, %rdi
shlq $0x5, %rdi
leaq 0x335b54(%rip), %rsi    # 0x577d6e
movl $0xc4, %edx
callq 0xe80f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x40(%rax)
movq (%rsp), %rax
movq 0x40(%rax), %rdi
movq (%rsp), %rax
movq 0x30(%rax), %rdx
addq $0x1, %rdx
shlq $0x5, %rdx
xorl %esi, %esi
callq 0x19360
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_class_new
const GtESAVisitorClass*
gt_esa_visitor_class_new(size_t size,
                         GtESAVisitorFreeFunc free,
                         GtESAVisitorLeafEdgeFunc leafedge_func,
                         GtESAVisitorBranchingEdgeFunc branchingedge_func,
                         GtESAVisitorLCPIntervalFunc lcpinterval_func,
                         GtESAVisitorInfoCreatorFunc create_info_func,
                         GtESAVisitorInfoDestructorFunc delete_info_func)
{
  GtESAVisitorClass *c_class;
  gt_assert(size);
  c_class = gt_class_alloc(sizeof *c_class);
  c_class->size = size;
  c_class->free = free;
  c_class->leafedge_func = leafedge_func;
  c_class->branchingedge_func = branchingedge_func;
  c_class->lcpinterval_func = lcpinterval_func;
  c_class->create_info_func = create_info_func;
  c_class->delete_info_func = delete_info_func;
  return c_class;
}

// Assembly:
subq $0x38, %rsp
movq 0x40(%rsp), %rax
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x2424e7
movq 0x3f9aea(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d3b53(%rip), %rsi    # 0x516013
leaq 0x2f2629(%rip), %rdx    # 0x534af0
leaq 0x335a1a(%rip), %rcx    # 0x577ee8
leaq 0x335a2c(%rip), %r8     # 0x577f01
movl $0x2f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2424e9
movl $0x38, %edi
callq 0x481160
movq %rax, (%rsp)
movq 0x30(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x40(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
movq (%rsp), %rax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_create
GtESAVisitor* gt_esa_visitor_create(const GtESAVisitorClass *evc)
{
  GtESAVisitor *ev;
  gt_assert(evc && evc->size);
  ev = gt_calloc((size_t) 1, evc->size);
  ev->c_class = evc;
  return ev;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x24257c
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2425b4
movq 0x3f9a1d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d3a86(%rip), %rsi    # 0x516013
leaq 0x335985(%rip), %rdx    # 0x577f19
leaq 0x33598f(%rip), %rcx    # 0x577f2a
leaq 0x33595f(%rip), %r8     # 0x577f01
movl $0x3e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2425b6
movq 0x10(%rsp), %rax
movq (%rax), %rsi
movl $0x1, %edi
leaq 0x335937(%rip), %rdx    # 0x577f01
movl $0x3f, %ecx
callq 0xe83c0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_info_new
GtESAVisitorInfo* gt_esa_visitor_info_new(GtESAVisitor *ev)
{
  gt_assert(ev && ev->c_class);
  if (ev->c_class->create_info_func != NULL)
    return ev->c_class->create_info_func(ev);
  return NULL;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x24268c
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2426c4
movq 0x3f990d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d3976(%rip), %rsi    # 0x516013
leaq 0x3358d0(%rip), %rdx    # 0x577f74
leaq 0x3358db(%rip), %rcx    # 0x577f86
leaq 0x33584f(%rip), %r8     # 0x577f01
movl $0x4d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2426c6
movq 0x8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x28(%rax)
je 0x2426ef
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rax), %rax
movq 0x8(%rsp), %rdi
callq *%rax
movq %rax, 0x10(%rsp)
jmp 0x2426f8
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_visit_leaf_edge
int gt_esa_visitor_visit_leaf_edge(GtESAVisitor *ev,
                                   bool firstsucc,
                                   GtUword fd,
                                   GtUword flb,
                                   GtESAVisitorInfo *info,
                                   GtUword leafnumber,
                                   GtError *err)
{
  gt_error_check(err);
  gt_assert(ev && ev->c_class);
  if (ev->c_class->leafedge_func != NULL)
    return ev->c_class->leafedge_func(ev, firstsucc, fd, flb, info, leafnumber,
                                      err);
  return 0;
}

// Assembly:
subq $0x48, %rsp
movb %sil, %al
movq 0x50(%rsp), %rsi
movq %rdi, 0x38(%rsp)
andb $0x1, %al
movb %al, 0x37(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq %r8, 0x18(%rsp)
movq %r9, 0x10(%rsp)
cmpq $0x0, 0x50(%rsp)
je 0x24281b
movq 0x50(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x2427e3
jmp 0x24281b
movq 0x3f97b6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d381f(%rip), %rsi    # 0x516013
leaq 0x2d39c4(%rip), %rdx    # 0x5161bf
leaq 0x3357b7(%rip), %rcx    # 0x577fb9
leaq 0x3356f8(%rip), %r8     # 0x577f01
movl $0x62, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24281d
jmp 0x24281f
cmpq $0x0, 0x38(%rsp)
je 0x242832
movq 0x38(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x24286a
movq 0x3f9767(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d37d0(%rip), %rsi    # 0x516013
leaq 0x33572a(%rip), %rdx    # 0x577f74
leaq 0x335768(%rip), %rcx    # 0x577fb9
leaq 0x3356a9(%rip), %r8     # 0x577f01
movl $0x63, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24286c
movq 0x38(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x10(%rax)
je 0x2428be
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rdi
movb 0x37(%rsp), %sil
movq 0x28(%rsp), %rdx
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %r8
movq 0x10(%rsp), %r9
movq 0x50(%rsp), %r10
andb $0x1, %sil
movzbl %sil, %esi
movq %r10, (%rsp)
callq *%rax
movl %eax, 0x44(%rsp)
jmp 0x2428c6
movl $0x0, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_visit_branching_edge
int gt_esa_visitor_visit_branching_edge(GtESAVisitor *ev,
                                        bool firstsucc,
                                        GtUword fd,
                                        GtUword flb,
                                        GtESAVisitorInfo *finfo,
                                        GtUword sd,
                                        GtUword slb,
                                        GtUword srb,
                                        GtESAVisitorInfo *sinfo,
                                        GtError *err)
{
  gt_error_check(err);
  gt_assert(ev && ev->c_class);
  if (ev->c_class->branchingedge_func != NULL)
    return ev->c_class->branchingedge_func(ev, firstsucc, fd, flb, finfo, sd,
                                           slb, srb, sinfo, err);
  return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x58, %rsp
movb %sil, %al
movq 0x88(%rsp), %rsi
movq 0x80(%rsp), %rsi
movq 0x78(%rsp), %rsi
movq 0x70(%rsp), %rsi
movq %rdi, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq %rdx, 0x38(%rsp)
movq %rcx, 0x30(%rsp)
movq %r8, 0x28(%rsp)
movq %r9, 0x20(%rsp)
cmpq $0x0, 0x88(%rsp)
je 0x242969
movq 0x88(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x242931
jmp 0x242969
movq 0x3f9668(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d36d1(%rip), %rsi    # 0x516013
leaq 0x2d3876(%rip), %rdx    # 0x5161bf
leaq 0x335688(%rip), %rcx    # 0x577fd8
leaq 0x3355aa(%rip), %r8     # 0x577f01
movl $0x75, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24296b
jmp 0x24296d
cmpq $0x0, 0x48(%rsp)
je 0x242980
movq 0x48(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2429b8
movq 0x3f9619(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d3682(%rip), %rsi    # 0x516013
leaq 0x3355dc(%rip), %rdx    # 0x577f74
leaq 0x335639(%rip), %rcx    # 0x577fd8
leaq 0x33555b(%rip), %r8     # 0x577f01
movl $0x76, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2429ba
movq 0x48(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x242a30
movq 0x48(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movq 0x48(%rsp), %rdi
movb 0x47(%rsp), %sil
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x20(%rsp), %r9
movq 0x70(%rsp), %r14
movq 0x78(%rsp), %rbx
movq 0x80(%rsp), %r11
movq 0x88(%rsp), %r10
andb $0x1, %sil
movzbl %sil, %esi
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
callq *%rax
movl %eax, 0x54(%rsp)
jmp 0x242a38
movl $0x0, 0x54(%rsp)
movl 0x54(%rsp), %eax
addq $0x58, %rsp
popq %rbx
popq %r14
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_visit_lcp_interval
int gt_esa_visitor_visit_lcp_interval(GtESAVisitor *ev,
                                      GtUword lcp,
                                      GtUword lb,
                                      GtUword rb,
                                      GtESAVisitorInfo *info,
                                      GtError *err)
{
  gt_error_check(err);
  gt_assert(ev && ev->c_class);
  if (ev->c_class->lcpinterval_func != NULL)
    return ev->c_class->lcpinterval_func(ev, lcp, lb, rb, info, err);
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
movq %r9, (%rsp)
cmpq $0x0, (%rsp)
je 0x242abf
movq (%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x242a87
jmp 0x242abf
movq 0x3f9512(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d357b(%rip), %rsi    # 0x516013
leaq 0x2d3720(%rip), %rdx    # 0x5161bf
leaq 0x335556(%rip), %rcx    # 0x577ffc
leaq 0x335454(%rip), %r8     # 0x577f01
movl $0x84, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x242ac1
jmp 0x242ac3
cmpq $0x0, 0x28(%rsp)
je 0x242ad6
movq 0x28(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x242b0e
movq 0x3f94c3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d352c(%rip), %rsi    # 0x516013
leaq 0x335486(%rip), %rdx    # 0x577f74
leaq 0x335507(%rip), %rcx    # 0x577ffc
leaq 0x335405(%rip), %r8     # 0x577f01
movl $0x85, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x242b10
movq 0x28(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x20(%rax)
je 0x242b50
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rax), %rax
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r8
movq (%rsp), %r9
callq *%rax
movl %eax, 0x34(%rsp)
jmp 0x242b58
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/esa_visitor.c
// Function: gt_esa_visitor_delete
void gt_esa_visitor_delete(GtESAVisitor *ev)
{
  if (!ev) return;
  gt_assert(ev->c_class);
  if (ev->c_class->free != NULL)
    ev->c_class->free(ev);
  gt_free(ev);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x242b7e
jmp 0x242bf8
jmp 0x242b80
movq (%rsp), %rax
cmpq $0x0, (%rax)
jne 0x242bc2
movq 0x3f940f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2d3478(%rip), %rsi    # 0x516013
leaq 0x3353d8(%rip), %rdx    # 0x577f7a
leaq 0x335475(%rip), %rcx    # 0x57801e
leaq 0x335351(%rip), %r8     # 0x577f01
movl $0x8e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x242bc4
movq (%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0x242be3
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rdi
callq *%rax
movq (%rsp), %rdi
leaq 0x335313(%rip), %rsi    # 0x577f01
movl $0x91, %edx
callq 0xe88c0
popq %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/firstcodes-scan.c
// Function: gt_firstcodes_kmerscan_eqlen
GtUword gt_firstcodes_kmerscan_eqlen(const GtBitsequence *twobitencoding,
                                           bool withcheck,
                                           GtUword equallength,
                                           GtUword totallength,
                                           GtUword numofsequences,
                                           GtUword maxunitindex,
                                           unsigned int kmersize,
                                           unsigned int minmatchlength,
                                           GtProcesskmercode processcode,
                                           void *data)
{
  GtUword startpos, encodingsum = 0, fseqnum;

  if (equallength >= (GtUword) minmatchlength)
  {
    for (startpos = 0, fseqnum = 0; startpos < totallength;
         startpos += equallength+1, fseqnum++)
    {
      encodingsum += (GtUword) gt_firstcodes_kmerscan_range(
                                                  twobitencoding,
                                                  withcheck,
                                                  kmersize,
                                                  minmatchlength,
                                                  startpos,
                                                  startpos + equallength,
                                                  fseqnum,
                                                  numofsequences - 1 - fseqnum,
                                                  maxunitindex,
                                                  processcode,
                                                  data);
    }
  }
  return encodingsum;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x78, %rsp
movb %sil, %al
movq 0xa8(%rsp), %rsi
movq 0xa0(%rsp), %rsi
movl 0x98(%rsp), %esi
movl 0x90(%rsp), %esi
movq %rdi, 0x70(%rsp)
andb $0x1, %al
movb %al, 0x6f(%rsp)
movq %rdx, 0x60(%rsp)
movq %rcx, 0x58(%rsp)
movq %r8, 0x50(%rsp)
movq %r9, 0x48(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x60(%rsp), %rax
movl 0x98(%rsp), %ecx
cmpq %rcx, %rax
jb 0x242d2d
movq $0x0, 0x40(%rsp)
movq $0x0, 0x30(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x242d2b
movq 0x70(%rsp), %rdi
movb 0x6f(%rsp), %sil
movl 0x90(%rsp), %edx
movl 0x98(%rsp), %ecx
movq 0x40(%rsp), %r8
movq 0x40(%rsp), %r9
addq 0x60(%rsp), %r9
movq 0x30(%rsp), %r14
movq 0x50(%rsp), %rbx
subq $0x1, %rbx
subq 0x30(%rsp), %rbx
movq 0x48(%rsp), %r11
movq 0xa0(%rsp), %r10
movq 0xa8(%rsp), %rax
andb $0x1, %sil
movzbl %sil, %esi
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x242d40
addq 0x38(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x60(%rsp), %rax
addq $0x1, %rax
addq 0x40(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x30(%rsp)
jmp 0x242c77
jmp 0x242d2d
movq 0x38(%rsp), %rax
addq $0x78, %rsp
popq %rbx
popq %r14
retq
nopw (%rax,%rax)