LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-shortreadsort.c
// Function: gt_shortreadsort_new
GtShortreadsortworkinfo *gt_shortreadsort_new(GtUword maxwidth,
                                              GtUword maxremain,
                                              GtReadmode readmode,
                                              bool firstcodes,
                                              bool withmediumsizelcps)
{
  GtShortreadsortworkinfo *srsw;

  srsw = gt_malloc(sizeof (*srsw));
  srsw->fwd = GT_ISDIRREVERSE(readmode) ? false : true;
  srsw->complement = GT_ISDIRCOMPLEMENT(readmode) ? true : false;
  srsw->sssplcpvalues = NULL;
  srsw->sumofstoredvalues = 0;
  srsw->currentbucketsize = 0;
  srsw->shortreadsorttable = NULL;
  srsw->mediumsizelcpvalues = NULL;
  srsw->withmediumsizelcps = withmediumsizelcps;
  srsw->seqnum_relpos_bucket = NULL;
  GT_INITARRAY(&srsw->tbereservoir,GtTwobitencoding);
  if (maxwidth > 0)
  {
    gt_shortreadsort_resize(srsw,firstcodes,maxwidth,maxremain);
  }
  return srsw;
}

// Assembly:
subq $0x28, %rsp
movb %r8b, %al
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl %edx, 0x14(%rsp)
andb $0x1, %cl
movb %cl, 0x13(%rsp)
andb $0x1, %al
movb %al, 0x12(%rsp)
movl $0x58, %edi
leaq 0x2b28c9(%rip), %rsi    # 0x58cfc7
movl $0x8e, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movb $0x1, %al
cmpl $0x1, 0x14(%rsp)
movb %al, 0x7(%rsp)
je 0x2da726
cmpl $0x3, 0x14(%rsp)
sete %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %dl
movl $0x1, %eax
xorl %ecx, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
cmpl $0x0, %eax
setne %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x50(%rax)
movb $0x1, %al
cmpl $0x2, 0x14(%rsp)
movb %al, 0x6(%rsp)
je 0x2da761
cmpl $0x3, 0x14(%rsp)
sete %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
cmpl $0x0, %eax
setne %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x51(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x10(%rax)
movb 0x12(%rsp), %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x52(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x28(%rax)
cmpq $0x0, 0x20(%rsp)
jbe 0x2da82b
movq 0x8(%rsp), %rdi
movb 0x13(%rsp), %al
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
andb $0x1, %al
movzbl %al, %esi
callq 0x2da840
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-shortreadsort.c
// Function: gt_shortreadsort_delete
void gt_shortreadsort_delete(GtShortreadsortworkinfo *srsw)
{
  if (srsw != NULL)
  {
    gt_free(srsw->shortreadsorttable);
    srsw->shortreadsorttable = NULL;
    gt_free(srsw->mediumsizelcpvalues);
    srsw->mediumsizelcpvalues = NULL;
    gt_free(srsw->seqnum_relpos_bucket);
    srsw->seqnum_relpos_bucket = NULL;
    GT_FREEARRAY(&srsw->tbereservoir,GtTwobitencoding);
    gt_free(srsw);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x2dab3c
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x2b2549(%rip), %rsi    # 0x58cfc7
movl $0xa9, %edx
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, (%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rdi
leaq 0x2b2525(%rip), %rsi    # 0x58cfc7
movl $0xab, %edx
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq 0x18(%rax), %rdi
leaq 0x2b2500(%rip), %rsi    # 0x58cfc7
movl $0xad, %edx
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x2dab25
movq (%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x2b24d0(%rip), %rsi    # 0x58cfc7
movl $0xaf, %edx
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, 0x28(%rax)
movq (%rsp), %rax
movq $0x0, 0x30(%rax)
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
jmp 0x2dab27
movq (%rsp), %rdi
leaq 0x2b2495(%rip), %rsi    # 0x58cfc7
movl $0xb0, %edx
callq 0xe88c0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-shortreadsort.c
// Function: gt_shortreadsort_encoding_factor
static double gt_shortreadsort_encoding_factor(GtUword maxremain)
{
  double factor = 1.0;

  if (maxremain > (2UL * (GtUword) GT_UNITSIN2BITENC))
  {
    factor += maxremain/(2UL * (GtUword) GT_UNITSIN2BITENC);
  } else
  {
    factor = 1.0;
  }
  return factor;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movsd 0x239fa3(%rip), %xmm0   # 0x517240
movsd %xmm0, -0x10(%rsp)
cmpq $0x40, -0x8(%rsp)
jbe 0x2dd2c7
movq -0x8(%rsp), %rax
shrq $0x6, %rax
cvtsi2sd %rax, %xmm0
addsd -0x10(%rsp), %xmm0
movsd %xmm0, -0x10(%rsp)
jmp 0x2dd2d5
movsd 0x239f71(%rip), %xmm0   # 0x517240
movsd %xmm0, -0x10(%rsp)
movsd -0x10(%rsp), %xmm0
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-shortreadsort.c
// Function: shortread_gt_inlined_qsort_arr_r_med3
static inline GtUword QSORTNAME(gt_inlined_qsort_arr_r_med3)
                     (GtUword a, GtUword b, GtUword c,
                      QSORTNAME(Datatype) data)
{
  return QSORTNAME(qsortcmparr) (a, b, data) < 0
           ? (QSORTNAME(qsortcmparr) (b, c, data) < 0
                ? b
                : (QSORTNAME(qsortcmparr) (a, c, data) < 0 ? c : a))
           : (QSORTNAME(qsortcmparr) (b, c, data) > 0
                ? b
                : (QSORTNAME(qsortcmparr) (a, c, data) < 0 ? a : c));
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x28(%rsp), %rdx
callq 0x2dd360
cmpl $0x0, %eax
jge 0x2dd5bb
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdx
callq 0x2dd360
cmpl $0x0, %eax
jge 0x2dd576
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0x2dd5af
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdx
callq 0x2dd360
cmpl $0x0, %eax
jge 0x2dd59b
movq 0x30(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x2dd5a5
movq 0x40(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
jmp 0x2dd620
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdx
callq 0x2dd360
cmpl $0x0, %eax
jle 0x2dd5e0
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0x2dd616
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdx
callq 0x2dd360
cmpl $0x0, %eax
jge 0x2dd604
movq 0x40(%rsp), %rax
movq %rax, (%rsp)
jmp 0x2dd60d
movq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: getencseqkmersinsertkmerwithoutspecial
void getencseqkmersinsertkmerwithoutspecial(const GtEncseq *encseq,
                                            GtReadmode readmode,
                                            unsigned int kmersize,
                                            Sfxiterator *sfi)
{
  GtKmercodeiterator *kmercodeiterator;
  const GtKmercode *kmercodeptr;

  kmercodeiterator = gt_kmercodeiterator_encseq_new(encseq,readmode,kmersize,0);
  if (!gt_kmercodeiterator_inputexhausted(kmercodeiterator))
  {
    GtUword position = 0;

    while ((kmercodeptr = gt_kmercodeiterator_encseq_next(kmercodeiterator))
                          != NULL)
    {
      gt_insertkmerwithoutspecial(sfi,position++,kmercodeptr);
    }
    gt_kmercodeiterator_delete(kmercodeiterator);
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movl %esi, 0x2c(%rsp)
movl %edx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq 0x30(%rsp), %rdi
movl 0x2c(%rsp), %esi
movl 0x28(%rsp), %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x2ca880
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0x2cb510
testb $0x1, %al
jne 0x2ddbf9
movq $0x0, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x2cac00
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x2ddbef
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rsi, %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdx
callq 0x2ddc00
jmp 0x2ddbb8
movq 0x18(%rsp), %rdi
callq 0x2cb300
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: getencseqkmers_twobitencoding
void getencseqkmers_twobitencoding(const GtEncseq *encseq,
                                   GtReadmode readmode,
                                   unsigned int kmersize,
                                   unsigned int upperkmersize,
                                   bool onlyfirst,
                                   void(*processkmercode)(void *,
                                                          bool,
                                                          GtUword,
                                                          GtCodetype),
                                   void *processkmercodeinfo,
                                   void(*processkmerspecial)(void *,
                                                             unsigned int,
                                                             unsigned int,
                                                             GtUword),
                                   void *processkmerspecialinfo)
{
  gt_getencseqkmers_twobitencoding_slice(encseq,
                                         readmode,
                                         kmersize,
                                         upperkmersize,
                                         onlyfirst,
                                         processkmercode,
                                         processkmercodeinfo,
                                         processkmerspecial,
                                         processkmerspecialinfo,
                                         0,
                                         gt_encseq_total_length(encseq));
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x80, %rsp
movb %r8b, %al
movq 0xb0(%rsp), %r8
movq 0xa8(%rsp), %r8
movq 0xa0(%rsp), %r8
movq %rdi, 0x78(%rsp)
movl %esi, 0x74(%rsp)
movl %edx, 0x70(%rsp)
movl %ecx, 0x6c(%rsp)
andb $0x1, %al
movb %al, 0x6b(%rsp)
movq %r9, 0x60(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x30(%rsp)
movl 0x74(%rsp), %eax
movl %eax, 0x3c(%rsp)
movl 0x70(%rsp), %eax
movl %eax, 0x40(%rsp)
movl 0x6c(%rsp), %eax
movl %eax, 0x44(%rsp)
movb 0x6b(%rsp), %al
movb %al, 0x2f(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0xa0(%rsp), %rbx
movq 0xa8(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0xb0(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x78(%rsp), %rdi
callq 0xa9d00
movb 0x2f(%rsp), %r8b
movq 0x30(%rsp), %rdi
movl 0x3c(%rsp), %esi
movl 0x40(%rsp), %edx
movl 0x44(%rsp), %ecx
movq 0x48(%rsp), %r9
movq 0x50(%rsp), %r11
movq 0x58(%rsp), %r10
xorl %ebp, %ebp
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x2ddf00
addq $0x80, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_sfimarkprefixsuffixbuckets
static void gt_sfimarkprefixsuffixbuckets(void *processinfo,
                                          GT_UNUSED bool firstinrange,
                                          GT_UNUSED GtUword pos,
                                          GtCodetype scancode)
{
  Sfxiterator *sfi = (Sfxiterator *) processinfo;
  GtCodetype checkcode = GT_SCANCODE_TO_PREFIXCODE(sfi,scancode);

  gt_assert(firstinrange);
  if (!GT_ISIBITSET(sfi->markprefixbuckets,checkcode))
  {
    GT_SETIBIT(sfi->markprefixbuckets,checkcode);
  }
#if defined (_LP64) || defined (_WIN64)
  checkcode = GT_SCANCODE_TO_SUFFIXCODE(sfi,scancode);
  if (!GT_ISIBITSET(sfi->marksuffixbuckets,checkcode))
  {
    GT_SETIBIT(sfi->marksuffixbuckets,checkcode);
  }
#endif
}

// Assembly:
subq $0x38, %rsp
movb %sil, %al
movq %rdi, 0x30(%rsp)
andb $0x1, %al
movb %al, 0x2f(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
movl 0x128(%rcx), %ecx
shrq %cl, %rax
movq %rax, 0x8(%rsp)
testb $0x1, 0x2f(%rsp)
jne 0x2e0c5d
movq 0x35b374(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2353dd(%rip), %rsi    # 0x516013
leaq 0x2acd0f(%rip), %rdx    # 0x58d94c
leaq 0x2acd15(%rip), %rcx    # 0x58d959
leaq 0x2ac5e9(%rip), %r8     # 0x58d234
movl $0x4a8, %r9d            # imm = 0x4A8
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e0c5f
movq 0x10(%rsp), %rax
movq 0x130(%rax), %rax
movq 0x8(%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
jne 0x2e0ccd
movq 0x8(%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq 0x10(%rsp), %rax
movq 0x130(%rax), %rax
movq 0x8(%rsp), %rcx
shrq $0x6, %rcx
orq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
andq 0x140(%rcx), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x138(%rax), %rax
movq 0x8(%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
jne 0x2e0d51
movq 0x8(%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq 0x10(%rsp), %rax
movq 0x138(%rax), %rax
movq 0x8(%rsp), %rcx
shrq $0x6, %rcx
orq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: getencseqkmersupdatekmercount
static void getencseqkmersupdatekmercount(const GtEncseq *encseq,
                                          GtReadmode readmode,
                                          unsigned int kmersize,
                                          Sfxiterator *sfi)
{
  GtKmercodeiterator *kmercodeiterator;
  const GtKmercode *kmercodeptr;

  kmercodeiterator = gt_kmercodeiterator_encseq_new(encseq,readmode,kmersize,0);
  if (!gt_kmercodeiterator_inputexhausted(kmercodeiterator))
  {
    GtUword position = 0;

    while ((kmercodeptr = gt_kmercodeiterator_encseq_next(kmercodeiterator))
                          != NULL)
    {
      updatekmercount(sfi,position++,kmercodeptr);
    }
  }
  gt_kmercodeiterator_delete(kmercodeiterator);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movl %esi, 0x2c(%rsp)
movl %edx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq 0x30(%rsp), %rdi
movl 0x2c(%rsp), %esi
movl 0x28(%rsp), %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x2ca880
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0x2cb510
testb $0x1, %al
jne 0x2e1741
movq $0x0, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x2cac00
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x2e173f
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rsi, %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdx
callq 0x2e1750
jmp 0x2e1708
jmp 0x2e1741
movq 0x18(%rsp), %rdi
callq 0x2cb300
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_reversespecialcodes
static void gt_reversespecialcodes(Codeatposition *spaceCodeatposition,
                                   GtUword nextfreeCodeatposition)
{
  Codeatposition *front, *back, tmp;

  for (front = spaceCodeatposition,
       back = spaceCodeatposition + nextfreeCodeatposition - 1;
       front < back; front++, back--)
  {
    tmp = *front;
    *front = *back;
    *back = tmp;
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq -0x8(%rsp), %rax
movq %rax, -0x18(%rsp)
movq -0x8(%rsp), %rax
movq -0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
addq $-0x10, %rax
movq %rax, -0x20(%rsp)
movq -0x18(%rsp), %rax
cmpq -0x20(%rsp), %rax
jae 0x2e1aac
movq -0x18(%rsp), %rax
movq (%rax), %rcx
movq %rcx, -0x30(%rsp)
movq 0x8(%rax), %rax
movq %rax, -0x28(%rsp)
movq -0x18(%rsp), %rax
movq -0x20(%rsp), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rsp), %rax
movq -0x30(%rsp), %rcx
movq %rcx, (%rax)
movq -0x28(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq -0x18(%rsp), %rax
addq $0x10, %rax
movq %rax, -0x18(%rsp)
movq -0x20(%rsp), %rax
addq $-0x10, %rax
movq %rax, -0x20(%rsp)
jmp 0x2e1a3e
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_Sfxiterator_new
Sfxiterator *gt_Sfxiterator_new(const GtEncseq *encseq,
                                GtReadmode readmode,
                                unsigned int prefixlength,
                                unsigned int numofparts,
                                GtUword maximumspace,
                                const Sfxstrategy *sfxstrategy,
                                GtTimer *sfxprogress,
                                bool withprogressbar,
                                GtLogger *logger,
                                GtError *err)
{
  return gt_Sfxiterator_new_withadditionalvalues(
                                encseq,
                                readmode,
                                prefixlength,
                                numofparts,
                                maximumspace,
                                NULL,
                                NULL,
                                sfxstrategy,
                                sfxprogress,
                                withprogressbar,
                                logger,
                                err);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq 0x98(%rsp), %rax
movq 0x90(%rsp), %rax
movb 0x88(%rsp), %al
movq 0x80(%rsp), %r10
movq %rdi, 0x60(%rsp)
movl %esi, 0x5c(%rsp)
movl %edx, 0x58(%rsp)
movl %ecx, 0x54(%rsp)
movq %r8, 0x48(%rsp)
movq %r9, 0x40(%rsp)
andb $0x1, %al
movb %al, 0x3f(%rsp)
movq 0x60(%rsp), %rdi
movl 0x5c(%rsp), %esi
movl 0x58(%rsp), %edx
movl 0x54(%rsp), %ecx
movq 0x48(%rsp), %r8
movq 0x40(%rsp), %r14
movq 0x80(%rsp), %rbx
movb 0x3f(%rsp), %r11b
movq 0x90(%rsp), %r10
movq 0x98(%rsp), %rax
xorl %r9d, %r9d
andb $0x1, %r11b
movq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x18(%rsp)
movq %r10, 0x20(%rsp)
movq %rax, 0x28(%rsp)
callq 0x2deac0
addq $0x68, %rsp
popq %rbx
popq %r14
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_Sfxiterator_next
const GtSuffixsortspace *gt_Sfxiterator_next(GtUword *numberofsuffixes,
                                             bool *specialsuffixes,
                                             Sfxiterator *sfi)
{
  if (sfi->part < gt_suftabparts_numofparts(sfi->suftabparts))
  {
    gt_sfxiterator_preparethispart(sfi);
    *numberofsuffixes = sfi->widthofpart;
    if (specialsuffixes != NULL)
    {
      *specialsuffixes = false;
    }
    return sfi->suffixsortspace;
  }
  if (sfi->exhausted)
  {
    if (sfi->withprogressbar)
    {
      gt_progressbar_stop();
    }
    return NULL;
  }
  if (sfi->sfxstrategy.spmopt_minlength == 0)
  {
    gt_suffixsortspace_partoffset_set(sfi->suffixsortspace,
                                      sfi->totallength-sfi->specialcharacters);
    sfi->exhausted = gt_SSSPbuf_fillspecialnextpage(sfi->suffixsortspace,
                                                    sfi->readmode,
                                                    sfi->sri,
                                                    sfi->totallength,
                                                    sfi->sssp_buf);
    *numberofsuffixes = gt_SSSPbuf_filled(sfi->sssp_buf);
  } else
  {
    sfi->exhausted = true;
    *numberofsuffixes = 0;
  }
  if (specialsuffixes != NULL)
  {
    *specialsuffixes = true;
  }
  return sfi->suffixsortspace;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
movq 0x8(%rsp), %rax
movl 0xb0(%rax), %eax
movl %eax, 0x4(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rdi
callq 0x2ce430
movl %eax, %ecx
movl 0x4(%rsp), %eax
cmpl %ecx, %eax
jae 0x2e1bee
movq 0x8(%rsp), %rdi
callq 0x2e1d00
movq 0x8(%rsp), %rax
movq 0xa8(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
cmpq $0x0, 0x10(%rsp)
je 0x2e1bd8
movq 0x10(%rsp), %rax
movb $0x0, (%rax)
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x2e1ced
movq 0x8(%rsp), %rax
testb $0x1, 0xc0(%rax)
je 0x2e1c1a
movq 0x8(%rsp), %rax
testb $0x1, 0x60(%rax)
je 0x2e1c0c
callq 0xfa220
movq $0x0, 0x20(%rsp)
jmp 0x2e1ced
movq 0x8(%rsp), %rax
cmpl $0x0, 0x50(%rax)
jne 0x2e1cb4
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rdi
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rsi
movq 0x8(%rsp), %rax
subq 0x10(%rax), %rsi
callq 0x2ea4a0
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rdi
movq 0x8(%rsp), %rax
movl 0x8(%rax), %esi
movq 0x8(%rsp), %rax
movq 0xe8(%rax), %rdx
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x8(%rsp), %rax
movq 0xe0(%rax), %r8
callq 0x2eab40
movb %al, %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0xc0(%rax)
movq 0x8(%rsp), %rax
movq 0xe0(%rax), %rdi
callq 0x2eaac0
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
jmp 0x2e1ccc
movq 0x8(%rsp), %rax
movb $0x1, 0xc0(%rax)
movq 0x18(%rsp), %rax
movq $0x0, (%rax)
cmpq $0x0, 0x10(%rsp)
je 0x2e1cdc
movq 0x10(%rsp), %rax
movb $0x1, (%rax)
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_Sfxiterator_bcktab2file
int gt_Sfxiterator_bcktab2file(FILE *fp, Sfxiterator *sfi, GtError *err)
{
  gt_error_check(err);
  gt_assert(sfi != NULL && sfi->bcktab != NULL);
  if (gt_suftabparts_numofparts(sfi->suftabparts) <= 1U)
  {
    int ret = gt_bcktab_flush_to_file(fp,sfi->bcktab,err);
    gt_fa_fclose(fp);
    return ret;
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x2e2823
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x2e27eb
jmp 0x2e2823
movq 0x3597ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x233817(%rip), %rsi    # 0x516013
leaq 0x2339bc(%rip), %rdx    # 0x5161bf
leaq 0x2aaeef(%rip), %rcx    # 0x58d6f9
leaq 0x2aaa23(%rip), %r8     # 0x58d234
movl $0x8a0, %r9d            # imm = 0x8A0
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e2825
jmp 0x2e2827
cmpq $0x0, 0x10(%rsp)
je 0x2e283b
movq 0x10(%rsp), %rax
cmpq $0x0, 0x78(%rax)
jne 0x2e2873
movq 0x35975e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2337c7(%rip), %rsi    # 0x516013
leaq 0x2aaec1(%rip), %rdx    # 0x58d714
leaq 0x2aae9f(%rip), %rcx    # 0x58d6f9
leaq 0x2aa9d3(%rip), %r8     # 0x58d234
movl $0x8a1, %r9d            # imm = 0x8A1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e2875
movq 0x10(%rsp), %rax
movq 0x68(%rax), %rdi
callq 0x2ce430
cmpl $0x1, %eax
ja 0x2e28b8
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x78(%rax), %rsi
movq 0x8(%rsp), %rdx
callq 0x204860
movl %eax, 0x4(%rsp)
movq 0x18(%rsp), %rdi
callq 0xd9390
movl 0x4(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x2e28c0
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_Sfxiterator_longest
GtUword gt_Sfxiterator_longest(const Sfxiterator *sfi)
{
  gt_assert(sfi != NULL);
  if (sfi->sfxstrategy.spmopt_minlength == 0)
  {
    return gt_suffixsortspace_longest(sfi->suffixsortspace);
  } else
  {
    return 0;
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x2e2919
movq 0x3596b8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x233721(%rip), %rsi    # 0x516013
leaq 0x2642ac(%rip), %rdx    # 0x546ba5
leaq 0x2aae37(%rip), %rcx    # 0x58d737
leaq 0x2aa92d(%rip), %r8     # 0x58d234
movl $0x8ad, %r9d            # imm = 0x8AD
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e291b
movq 0x8(%rsp), %rax
cmpl $0x0, 0x50(%rax)
jne 0x2e293e
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x2ea820
movq %rax, 0x10(%rsp)
jmp 0x2e2947
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/sfx-suffixer.c
// Function: gt_checksuffixprefixbuckets
static bool gt_checksuffixprefixbuckets(const Sfxiterator *sfi,
                                        GtCodetype scancode)
{
  GtCodetype prefixcode = GT_SCANCODE_TO_PREFIXCODE(sfi,scancode);
  GtCodetype suffixcode = GT_SCANCODE_TO_SUFFIXCODE(sfi,scancode);

  gt_assert(prefixcode < sfi->spmopt_numofallprefixcodes);
  gt_assert(suffixcode < sfi->spmopt_numofallsuffixcodes);
  return (GT_ISIBITSET(sfi->markprefixbuckets,prefixcode) &&
          GT_ISIBITSET(sfi->marksuffixbuckets,suffixcode)) ? true : false;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rcx
movl 0x128(%rcx), %ecx
shrq %cl, %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rcx
andq 0x140(%rcx), %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0x148(%rcx), %rax
jb 0x2e2ad7
movq 0x3594fa(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x233563(%rip), %rsi    # 0x516013
leaq 0x2aad1d(%rip), %rdx    # 0x58d7d4
leaq 0x2aad43(%rip), %rcx    # 0x58d801
leaq 0x2aa76f(%rip), %r8     # 0x58d234
movl $0x163, %r9d            # imm = 0x163
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e2ad9
jmp 0x2e2adb
movq 0x18(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0x150(%rcx), %rax
jb 0x2e2b26
movq 0x3594ab(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x233514(%rip), %rsi    # 0x516013
leaq 0x2aad17(%rip), %rdx    # 0x58d81d
leaq 0x2aacf4(%rip), %rcx    # 0x58d801
leaq 0x2aa720(%rip), %r8     # 0x58d234
movl $0x164, %r9d            # imm = 0x164
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e2b28
movq 0x30(%rsp), %rax
movq 0x130(%rax), %rax
movq 0x20(%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
shrq %cl, %rax
movq 0x8(%rsp), %rcx
andq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, 0x17(%rsp)
je 0x2e2bb0
movq 0x30(%rsp), %rax
movq 0x138(%rax), %rax
movq 0x18(%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq 0x18(%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
setne %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_bcktab_code_to_prefix_index
static GtUword gt_bcktab_code_to_prefix_index(GtUword code,
                                                    const void *data)
{
  unsigned int additionalprefixchars, *ptr = (unsigned int *) data;

  additionalprefixchars = *ptr;
  if (GT_MULT2(additionalprefixchars) > (unsigned int) GT_LOGWORDSIZE)
  {
    return (GtUword) (code << (GT_MULT2(additionalprefixchars) -
                                 GT_LOGWORDSIZE));
  }
  return (GtUword) (code >> (GT_LOGWORDSIZE -
                                GT_MULT2(additionalprefixchars)));
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x18(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x28(%rsp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rsp)
movl -0x1c(%rsp), %eax
shll %eax
cmpl $0x6, %eax
jbe 0x2e5cb4
movq -0x10(%rsp), %rax
movl -0x1c(%rsp), %ecx
shll %ecx
subl $0x6, %ecx
movl %ecx, %ecx
shlq %cl, %rax
movq %rax, -0x8(%rsp)
jmp 0x2e5cd0
movq -0x10(%rsp), %rax
movl -0x1c(%rsp), %edx
shll %edx
movl $0x6, %ecx
subl %edx, %ecx
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_updateleftborderforspecialkmer
static void gt_updateleftborderforspecialkmer(Sfxiterator *sfi,
                                              unsigned int maxprefixindex,
                                              GtUword position,
                                              unsigned int code)
{
  unsigned int idx;

  gt_assert(sfi->sfxstrategy.spmopt_minlength == 0);
  if (sfi->sfxstrategy.storespecialcodes)
  {
    Codeatposition *spcaptr;
    spcaptr = sfi->spaceCodeatposition + sfi->nextfreeCodeatposition++;
    spcaptr->maxprefixindex = maxprefixindex;
    spcaptr->code = code;
    spcaptr->position = position;
  }
  for (idx=maxprefixindex; idx>=1U; idx--)
  {
    gt_bcktab_leftborder_addcode(sfi->leftborder,(GtCodetype) code);
    code = ((code << 2) | 3U) & sfi->kmerfastmaskright;
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl %esi, 0x1c(%rsp)
movq %rdx, 0x10(%rsp)
movl %ecx, 0xc(%rsp)
movq 0x20(%rsp), %rax
cmpl $0x0, 0x50(%rax)
je 0x2e6879
movq 0x355758(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22f7c1(%rip), %rsi    # 0x516013
leaq 0x2a726f(%rip), %rdx    # 0x58dac8
leaq 0x2a72aa(%rip), %rcx    # 0x58db0a
leaq 0x2a69cd(%rip), %r8     # 0x58d234
movl $0x440, %r9d            # imm = 0x440
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e687b
movq 0x20(%rsp), %rax
testb $0x1, 0x55(%rax)
je 0x2e68f2
movq 0x20(%rsp), %rax
movq 0x108(%rax), %rax
movq 0x20(%rsp), %rdx
movq 0x100(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x100(%rdx)
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, (%rsp)
movl 0x1c(%rsp), %edx
movq (%rsp), %rax
movl (%rax), %ecx
andl $0xf, %edx
andl $-0x10, %ecx
orl %edx, %ecx
movl %ecx, (%rax)
movl 0xc(%rsp), %edx
movq (%rsp), %rax
movl (%rax), %ecx
andl $0xfffffff, %edx        # imm = 0xFFFFFFF
shll $0x4, %edx
andl $0xf, %ecx
orl %edx, %ecx
movl %ecx, (%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movl 0x1c(%rsp), %eax
movl %eax, 0x8(%rsp)
cmpl $0x1, 0x8(%rsp)
jb 0x2e693e
movq 0x20(%rsp), %rax
movq 0x80(%rax), %rdi
movl 0xc(%rsp), %eax
movl %eax, %esi
callq 0x2e69e0
movl 0xc(%rsp), %eax
shll $0x2, %eax
orl $0x3, %eax
movq 0x20(%rsp), %rcx
andl 0x110(%rcx), %eax
movl %eax, 0xc(%rsp)
movl 0x8(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x8(%rsp)
jmp 0x2e68fa
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixer.c
// Function: gt_suffixer_sort_with_dcov
static void gt_suffixer_sort_with_dcov(void *voidsfi,
                                       GtSuffixsortspace *sssp,
                                       GtUword blisbl,
                                       GtUword width,
                                       GtUword depth)
{
  Sfxiterator *sfi = (Sfxiterator *) voidsfi;

  gt_assert(sfi != NULL);
  gt_differencecover_sortunsortedbucket(sssp,
                                        gt_Outlcpinfo_lcpvalues_ref(
                                               sfi->outlcpinfo),
                                        sfi->dcov, blisbl, width,depth);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x2e7e17
movq 0x3541ba(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22e223(%rip), %rsi    # 0x516013
leaq 0x25edae(%rip), %rdx    # 0x546ba5
leaq 0x2a616a(%rip), %rcx    # 0x58df68
leaq 0x2a542f(%rip), %r8     # 0x58d234
movl $0x794, %r9d            # imm = 0x794
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e7e19
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rax
movq 0xb8(%rax), %rdi
callq 0x2c7b20
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x8(%rsp), %rax
movq 0x88(%rax), %rdx
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %r8
movq 0x10(%rsp), %r9
callq 0x2c0320
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_requiredspace
uint64_t gt_suffixsortspace_requiredspace(GtUword numofentries,
                                          GtUword maxvalue,
                                          bool useuint)
{
  uint64_t requiredspace = (uint64_t) sizeof (GtSuffixsortspace);

  if (gt_decide_to_use_uint(useuint,maxvalue))
  {
    gt_assert(maxvalue <= (GtUword) UINT_MAX);
    requiredspace += (uint64_t) numofentries * (uint64_t) sizeof (uint32_t);
  } else
  {
    requiredspace += (uint64_t) numofentries *
                     (uint64_t) sizeof (GtUword);
  }
  return requiredspace;
}

// Assembly:
subq $0x28, %rsp
movb %dl, %al
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
movq $0x60, 0x8(%rsp)
movb 0x17(%rsp), %al
movq 0x18(%rsp), %rsi
andb $0x1, %al
movzbl %al, %edi
callq 0x2e9480
testb $0x1, %al
jne 0x2e93f8
jmp 0x2e9455
jmp 0x2e93fa
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x18(%rsp)
jbe 0x2e943e
movq 0x352b93(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22cbfc(%rip), %rsi    # 0x516013
leaq 0x2a4b65(%rip), %rdx    # 0x58df83
leaq 0x2a4b7d(%rip), %rcx    # 0x58dfa2
leaq 0x2a4b97(%rip), %r8     # 0x58dfc3
movl $0x41, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9440
movq 0x20(%rsp), %rax
shlq $0x2, %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0x2e9468
movq 0x20(%rsp), %rax
shlq $0x3, %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_new
GtSuffixsortspace *gt_suffixsortspace_new(GtUword numofentries,
                                          GtUword maxvalue,
                                          bool useuint,
                                          GtLogger *logger)
{
  return gt_suffixsortspace_new_generic(numofentries,
                                        maxvalue,
                                        useuint,
                                        NULL,
                                        logger);
}

// Assembly:
subq $0x28, %rsp
movb %dl, %al
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movb 0x17(%rsp), %al
movq 0x8(%rsp), %r8
xorl %ecx, %ecx
andb $0x1, %al
movzbl %al, %edx
callq 0x2e9500
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_clone
GtSuffixsortspace *gt_suffixsortspace_clone(GtSuffixsortspace *sssp,
                                            unsigned int clonenumber,
                                            GtLogger *logger)
{
  bool useuint;
  void *tab2clone;
  GtSuffixsortspace *cloned_sssp;

  gt_assert(sssp != NULL);
  useuint = sssp->uinttab != NULL ? true : false;
  tab2clone = useuint ? (void *) sssp->uinttab
                      : (void *) sssp->ulongtab;
  gt_assert(tab2clone != NULL);
  cloned_sssp = gt_suffixsortspace_new_generic(sssp->maxindex + 1,
                                               sssp->maxvalue,
                                               useuint,
                                               tab2clone,
                                               logger);
  gt_assert(clonenumber > 0);
  cloned_sssp->clonenumber = clonenumber;
  cloned_sssp->partoffset = sssp->partoffset;
  return cloned_sssp;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movl %esi, 0x2c(%rsp)
movq %rdx, 0x20(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x2e9802
movq 0x3527cf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c838(%rip), %rsi    # 0x516013
leaq 0x2a0e51(%rip), %rdx    # 0x58a633
leaq 0x2a47f7(%rip), %rcx    # 0x58dfe0
leaq 0x2a47d3(%rip), %r8     # 0x58dfc3
movl $0xb1, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9804
movq 0x30(%rsp), %rax
movq 0x58(%rax), %rdx
xorl %eax, %eax
movl $0x1, %ecx
cmpq $0x0, %rdx
cmovnel %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0x1f(%rsp)
testb $0x1, 0x1f(%rsp)
je 0x2e983d
movq 0x30(%rsp), %rax
movq 0x58(%rax), %rax
movq %rax, (%rsp)
jmp 0x2e984a
movq 0x30(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x2e9893
movq 0x35273e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c7a7(%rip), %rsi    # 0x516013
leaq 0x2a4786(%rip), %rdx    # 0x58dff9
leaq 0x2a4766(%rip), %rcx    # 0x58dfe0
leaq 0x2a4742(%rip), %r8     # 0x58dfc3
movl $0xb5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9895
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rdi
addq $0x1, %rdi
movq 0x30(%rsp), %rax
movq 0x30(%rax), %rsi
movb 0x1f(%rsp), %al
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %r8
andb $0x1, %al
movzbl %al, %edx
callq 0x2e9500
movq %rax, 0x8(%rsp)
cmpl $0x0, 0x2c(%rsp)
ja 0x2e9907
movq 0x3526ca(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c733(%rip), %rsi    # 0x516013
leaq 0x2a4724(%rip), %rdx    # 0x58e00b
leaq 0x2a46f2(%rip), %rcx    # 0x58dfe0
leaq 0x2a46ce(%rip), %r8     # 0x58dfc3
movl $0xbb, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9909
movl 0x2c(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x30(%rsp), %rax
movq 0x38(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x38(%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/sfx-suffixgetset.c
// Function: gt_suffixsortspace_delete
void gt_suffixsortspace_delete(GtSuffixsortspace *suffixsortspace,
                               bool checklongestdefined)
{
  if (suffixsortspace != NULL)
  {
    if (checklongestdefined && !suffixsortspace->longestidx.defined)
    {
      fprintf(stderr,"%s, l. %d: longest is not defined\n",__FILE__,__LINE__);
      exit(GT_EXIT_PROGRAMMING_ERROR);
    }
    if (suffixsortspace->clonenumber == 0)
    {
      gt_free(suffixsortspace->uinttab);
      gt_free(suffixsortspace->ulongtab);
    }
    gt_free(suffixsortspace);
  }
}

// Assembly:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x10(%rsp)
andb $0x1, %al
movb %al, 0xf(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x2e99f3
testb $0x1, 0xf(%rsp)
je 0x2e999e
movq 0x10(%rsp), %rax
testb $0x1, 0x8(%rax)
jne 0x2e999e
movq 0x352629(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2a469a(%rip), %rsi    # 0x58e01b
leaq 0x2a463b(%rip), %rdx    # 0x58dfc3
movl $0xc8, %ecx
movb $0x0, %al
callq 0x199f0
movl $0x2, %edi
callq 0x19890
movq 0x10(%rsp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x2e99dd
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rdi
leaq 0x2a460a(%rip), %rsi    # 0x58dfc3
movl $0xcd, %edx
callq 0xe88c0
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rdi
leaq 0x2a45f0(%rip), %rsi    # 0x58dfc3
movl $0xce, %edx
callq 0xe88c0
movq 0x10(%rsp), %rdi
leaq 0x2a45da(%rip), %rsi    # 0x58dfc3
movl $0xd0, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_getdirect
GtUword gt_suffixsortspace_getdirect(const GtSuffixsortspace *sssp,GtUword idx)
{
  gt_assert(sssp != NULL && idx <= sssp->maxindex);
  if (sssp->ulongtab != NULL)
  {
    return sssp->ulongtab[idx];
  }
  gt_assert(sssp->uinttab != NULL);
  return (GtUword) sssp->uinttab[idx];
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x2e9a84
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq 0x28(%rcx), %rax
jbe 0x2e9abc
movq 0x352515(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c57e(%rip), %rsi    # 0x516013
leaq 0x2a4601(%rip), %rdx    # 0x58e09d
leaq 0x2a4620(%rip), %rcx    # 0x58e0c3
leaq 0x2a4519(%rip), %r8     # 0x58dfc3
movl $0xdb, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9abe
movq 0x8(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x2e9ae2
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rax
movq (%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
jmp 0x2e9b3f
jmp 0x2e9ae4
movq 0x8(%rsp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x2e9b28
movq 0x3524a9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c512(%rip), %rsi    # 0x516013
leaq 0x2a45d8(%rip), %rdx    # 0x58e0e0
leaq 0x2a45b4(%rip), %rcx    # 0x58e0c3
leaq 0x2a44ad(%rip), %r8     # 0x58dfc3
movl $0xe0, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9b2a
movq 0x8(%rsp), %rax
movq 0x58(%rax), %rax
movq (%rsp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_showrange
void gt_suffixsortspace_showrange(const GtSuffixsortspace *sssp,
                                  GtUword subbucketleft,
                                  GtUword width)
{
  GtUword idx;

  gt_assert(sssp != NULL);
  printf(GT_WU","GT_WU"=",sssp->bucketleftidx+subbucketleft-sssp->partoffset,
                    sssp->bucketleftidx+subbucketleft+width-1-sssp->partoffset);
  for (idx=sssp->bucketleftidx+subbucketleft-sssp->partoffset;
       idx<sssp->bucketleftidx+subbucketleft+width-sssp->partoffset;
       idx++)
  {
    printf(" "GT_WU, gt_suffixsortspace_getdirect(sssp,idx));
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x2e9c23
movq 0x3523ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c417(%rip), %rsi    # 0x516013
leaq 0x2a0a30(%rip), %rdx    # 0x58a633
leaq 0x2a450d(%rip), %rcx    # 0x58e117
leaq 0x2a43b2(%rip), %r8     # 0x58dfc3
movl $0x106, %r9d            # imm = 0x106
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9c25
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rsi
addq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rax
subq 0x38(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rdx
addq 0x18(%rsp), %rdx
addq 0x10(%rsp), %rdx
subq $0x1, %rdx
movq 0x20(%rsp), %rax
subq 0x38(%rax), %rdx
leaq 0x2a44d1(%rip), %rdi    # 0x58e134
movb $0x0, %al
callq 0x19070
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rax
addq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
subq 0x38(%rcx), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movq 0x40(%rcx), %rcx
addq 0x18(%rsp), %rcx
addq 0x10(%rsp), %rcx
movq 0x20(%rsp), %rdx
subq 0x38(%rdx), %rcx
cmpq %rcx, %rax
jae 0x2e9cdc
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x2e9a60
movq %rax, %rsi
leaq 0x29955f(%rip), %rdi    # 0x583224
movb $0x0, %al
callq 0x19070
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x2e9c86
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_exportptr
GtSuffixsortspace_exportptr *gt_suffixsortspace_exportptr(
                                  GtSuffixsortspace *sssp,
                                  GtUword subbucketleft)
{
  gt_assert(sssp != NULL);
  if (sssp->ulongtab != NULL)
  {
    sssp->exportptr.ulongtabsectionptr = sssp->ulongtab + sssp->bucketleftidx
                                                        + subbucketleft
                                                        - sssp->partoffset;
    sssp->exportptr.uinttabsectionptr = NULL;
  } else
  {
    gt_assert(sssp->uinttab != NULL);
    sssp->exportptr.uinttabsectionptr = sssp->uinttab + sssp->bucketleftidx
                                                      + subbucketleft
                                                      - sssp->partoffset;
    sssp->exportptr.ulongtabsectionptr = NULL;
  }
  sssp->currentexport = true;
  return &sssp->exportptr;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x2e9d3e
movq 0x352293(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c2fc(%rip), %rsi    # 0x516013
leaq 0x2a0915(%rip), %rdx    # 0x58a633
leaq 0x2a4418(%rip), %rcx    # 0x58e13d
leaq 0x2a4297(%rip), %r8     # 0x58dfc3
movl $0x115, %r9d            # imm = 0x115
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9d40
movq 0x10(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x2e9d9e
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x40(%rax), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq 0x8(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq 0x10(%rsp), %rdx
xorl %eax, %eax
subq 0x38(%rdx), %rax
shlq $0x3, %rax
addq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x18(%rax)
jmp 0x2e9e33
jmp 0x2e9da0
movq 0x10(%rsp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x2e9de4
movq 0x3521ed(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c256(%rip), %rsi    # 0x516013
leaq 0x2a431c(%rip), %rdx    # 0x58e0e0
leaq 0x2a4372(%rip), %rcx    # 0x58e13d
leaq 0x2a41f1(%rip), %r8     # 0x58dfc3
movl $0x11e, %r9d            # imm = 0x11E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9de6
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x40(%rax), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq 0x8(%rsp), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq 0x10(%rsp), %rdx
xorl %eax, %eax
subq 0x38(%rdx), %rax
shlq $0x2, %rax
addq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x10(%rsp), %rax
movb $0x1, (%rax)
movq 0x10(%rsp), %rax
addq $0x18, %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_export_done
void gt_suffixsortspace_export_done (GtSuffixsortspace *sssp)
{
  gt_assert(sssp != NULL);
  sssp->exportptr.ulongtabsectionptr = NULL;
  sssp->exportptr.uinttabsectionptr = NULL;
  sssp->currentexport = false;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x2e9e94
movq 0x35213d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c1a6(%rip), %rsi    # 0x516013
leaq 0x2a07bf(%rip), %rdx    # 0x58a633
leaq 0x2a42df(%rip), %rcx    # 0x58e15a
leaq 0x2a4141(%rip), %r8     # 0x58dfc3
movl $0x12a, %r9d            # imm = 0x12A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9e96
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
movb $0x0, (%rax)
popq %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-suffixgetset.c
// Function: gt_suffixsortspace_get
GtUword gt_suffixsortspace_get (const GtSuffixsortspace *sssp,
                                GtUword subbucketleft,
                                GtUword idx)
{
  gt_assert(sssp != NULL);
  return gt_suffixsortspace_getdirect(sssp, sssp->bucketleftidx
                                              + subbucketleft
                                              + idx
                                              - sssp->partoffset);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x2e9f12
movq 0x3520bf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22c128(%rip), %rsi    # 0x516013
leaq 0x2a0741(%rip), %rdx    # 0x58a633
leaq 0x2a4280(%rip), %rcx    # 0x58e179
leaq 0x2a40c3(%rip), %r8     # 0x58dfc3
movl $0x134, %r9d            # imm = 0x134
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2e9f14
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x40(%rax), %rsi
addq 0x8(%rsp), %rsi
addq (%rsp), %rsi
movq 0x10(%rsp), %rax
subq 0x38(%rax), %rsi
callq 0x2e9a60
addq $0x18, %rsp
retq
nop