LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq.c
// Function: gt_condenseq_size
GtUword gt_condenseq_size(const GtCondenseq *condenseq,
                          GtUword *uniques,
                          GtUword *links,
                          GtUword *editscripts,
                          GtUword *descriptions,
                          GtUword *separators) {
  GtUword idx;
  *uniques = condenseq->uds_nelems * sizeof (*condenseq->uniques);
  for (idx = 0; idx < condenseq->uds_nelems; idx++) {
    *uniques += condenseq->uniques[idx].links.allocateduint32_t *
      sizeof (*condenseq->uniques[idx].links.spaceuint32_t);
  }
  *links = condenseq->lds_nelems * sizeof (*condenseq->links);
  *editscripts = 0;
  for (idx = 0; idx < condenseq->lds_nelems; idx++)
    *editscripts += gt_editscript_size(condenseq->links[idx].editscript);
  *descriptions = condenseq->ids_total_len;
  *descriptions += gt_intset_size_of_struct(condenseq->sdstab);
  *descriptions += gt_intset_size_of_rep(condenseq->sdstab);
  *separators = gt_intset_size_of_struct(condenseq->ssptab);
  *separators = gt_intset_size_of_rep(condenseq->ssptab);
  return *uniques + *links + *editscripts + *descriptions + *separators;
}

// 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 %r9, 0x8(%rsp)
movq 0x30(%rsp), %rax
imulq $0x28, 0x98(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movq $0x0, (%rsp)
movq (%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0x98(%rcx), %rax
jae 0x142c13
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, (%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
shlq $0x2, %rcx
movq 0x28(%rsp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x142bcf
movq 0x30(%rsp), %rax
movq 0x70(%rax), %rcx
shlq $0x5, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq $0x0, (%rax)
movq $0x0, (%rsp)
movq (%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0x70(%rcx), %rax
jae 0x142c83
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rdi
callq 0x15c340
movq %rax, %rcx
movq 0x18(%rsp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x142c3c
movq 0x30(%rsp), %rax
movq 0x60(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x196f70
movq %rax, %rcx
movq 0x10(%rsp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x196e80
movq %rax, %rcx
movq 0x10(%rsp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x196f70
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x196e80
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rsp), %rcx
addq (%rcx), %rax
movq 0x18(%rsp), %rcx
addq (%rcx), %rax
movq 0x10(%rsp), %rcx
addq (%rcx), %rax
movq 0x8(%rsp), %rcx
addq (%rcx), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq.c
// Function: condenseq_idlen
static inline GtUword condenseq_idlen(const char *desc, GtUword desclen)
{
  GtUword idx;
  for (idx = 0; idx < desclen; ++idx) {
    if (isspace(desc[idx]) || desc[idx] == '\0')
      return idx;
  }
  return desclen;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x142dab
callq 0x197c0
movq (%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rdx
movsbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
jne 0x142d8d
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x142d99
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0x142db5
jmp 0x142d9b
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x142d47
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq.c
// Function: condenseq_linkentry_io
static int condenseq_linkentry_io(GtCondenseqLink* link,
                                  FILE* fp,
                                  GtIOFunc io_func,
                                  GtError *err)
{
  int had_err = 0;
  gt_assert (link != NULL);
  had_err = gt_condenseq_io_one(link->orig_startpos);
  if (!had_err)
    had_err = gt_condenseq_io_one(link->len);
  if (!had_err)
    had_err = gt_condenseq_io_one(link->unique_id);
  if (!had_err)
    had_err = gt_condenseq_io_one(link->unique_offset);
  if (!had_err) {
    link->editscript = gt_editscript_io(link->editscript, fp, err);
    if (link->editscript == NULL) {
      had_err = 1;
    }
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x142e20
movq 0x4f91b1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d321a(%rip), %rsi    # 0x516013
leaq 0x408732(%rip), %rdx    # 0x54b532
leaq 0x408a8c(%rip), %rcx    # 0x54b893
leaq 0x408136(%rip), %r8     # 0x54af44
movl $0x19d, %r9d            # imm = 0x19D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x142e22
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x8, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x8, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x142e79
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x10, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x4, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x142ea8
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x14, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x4, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x142ed7
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x18, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x4, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x142f15
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x15c3a0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x142f13
movl $0x1, 0x4(%rsp)
jmp 0x142f15
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq.c
// Function: condenseq_uniqueentry_io
static int condenseq_uniqueentry_io(GtCondenseqUnique* unique,
                                    FILE* fp,
                                    GtIOFunc io_func,
                                    GtError *err)
{
  int had_err = 0;
  gt_assert (unique != NULL);
  had_err = gt_condenseq_io_one(unique->orig_startpos);
  if (!had_err)
    had_err = gt_condenseq_io_one(unique->len);
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x142f80
movq 0x4f9051(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d30ba(%rip), %rsi    # 0x516013
leaq 0x40894a(%rip), %rdx    # 0x54b8aa
leaq 0x408952(%rip), %rcx    # 0x54b8b9
leaq 0x407fd6(%rip), %r8     # 0x54af44
movl $0x1b5, %r9d            # imm = 0x1B5
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x142f82
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x18, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x8, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x142fd9
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x20, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x4, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_xdrop_init
static void ces_c_xdrop_init(GtXdropArbitraryscores *scores,
                             GtWord xdropscore,
                             GtCondenseqCreatorXdrop *xdrop)
{
  xdrop->left_xdrop_res = gt_xdrop_resources_new(scores);
  xdrop->right_xdrop_res = gt_xdrop_resources_new(scores);
  xdrop->best_left_res = gt_xdrop_resources_new(scores);
  xdrop->best_right_res = gt_xdrop_resources_new(scores);
  xdrop->current_seq_fwd = gt_seqabstract_new_empty();
  xdrop->current_seq_bwd = gt_seqabstract_new_empty();
  xdrop->unique_seq_fwd = gt_seqabstract_new_empty();
  xdrop->unique_seq_bwd = gt_seqabstract_new_empty();
  xdrop->left = gt_malloc(sizeof (*xdrop->left));
  xdrop->right = gt_malloc(sizeof (*xdrop->left));
  xdrop->xdropscore = xdropscore;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
movq 0x10(%rsp), %rdi
callq 0x2f8350
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
callq 0x2f8350
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rdi
callq 0x2f8350
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rdi
callq 0x2f8350
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
callq 0x2b0770
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
callq 0x2b0770
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
callq 0x2b0770
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
callq 0x2b0770
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
movl $0x28, %edi
leaq 0x407ddd(%rip), %rsi    # 0x54b9ee
movl $0x1b6, %edx            # imm = 0x1B6
callq 0xe80f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x40(%rax)
movl $0x28, %edi
leaq 0x407dbc(%rip), %rsi    # 0x54b9ee
movl $0x1b7, %edx            # imm = 0x1B7
callq 0xe80f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x50(%rax)
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: gt_condenseq_creator_enable_brute_force
void gt_condenseq_creator_enable_brute_force(
                                          GtCondenseqCreator *condenseq_creator)
{
  condenseq_creator->extend = ces_c_extend_seeds_brute_force;
  condenseq_creator->extend_all_kmers = true;
  condenseq_creator->use_diagonals = false;
  condenseq_creator->use_full_diags = false;
  condenseq_creator->use_cutoff = false;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
leaq 0x3f(%rip), %rcx        # 0x143d20
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movb $0x1, 0x146(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x144(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x145(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x147(%rax)
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: gt_condenseq_creator_enable_opt
void gt_condenseq_creator_enable_opt(GtCondenseqCreator *condenseq_creator)
{
  condenseq_creator->extend = ces_c_extend_seeds_window;
  condenseq_creator->extend_all_kmers = false;
  condenseq_creator->use_diagonals = false;
  condenseq_creator->use_full_diags = false;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
leaq 0x2f(%rip), %rcx        # 0x1442f0
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x146(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x144(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x145(%rax)
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: gt_condenseq_creator_disable_diagonals
void gt_condenseq_creator_disable_diagonals(
                                          GtCondenseqCreator *condenseq_creator)
{
  if (!condenseq_creator->use_full_diags ||
      !condenseq_creator->extend_all_kmers)
    condenseq_creator->extend = ces_c_extend_seeds_window;
  condenseq_creator->use_diagonals = false;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
testb $0x1, 0x145(%rax)
je 0x144d41
movq -0x8(%rsp), %rax
testb $0x1, 0x146(%rax)
jne 0x144d51
movq -0x8(%rsp), %rax
leaq -0xa5d(%rip), %rcx      # 0x1442f0
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movb $0x0, 0x144(%rax)
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: gt_condenseq_creator_disable_full_diagonals
void gt_condenseq_creator_disable_full_diagonals(
                                          GtCondenseqCreator *condenseq_creator)
{
  if (!condenseq_creator->use_diagonals ||
      !condenseq_creator->extend_all_kmers)
    condenseq_creator->extend = ces_c_extend_seeds_window;
  condenseq_creator->use_full_diags = true;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
testb $0x1, 0x144(%rax)
je 0x144db1
movq -0x8(%rsp), %rax
testb $0x1, 0x146(%rax)
jne 0x144dc1
movq -0x8(%rsp), %rax
leaq -0xacd(%rip), %rcx      # 0x1442f0
movq %rcx, 0x50(%rax)
movq -0x8(%rsp), %rax
movb $0x1, 0x145(%rax)
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: gt_condenseq_creator_delete
void gt_condenseq_creator_delete(GtCondenseqCreator *condenseq_creator)
{
  if (condenseq_creator != NULL) {
#ifdef GT_CONDENSEQ_CREATOR_DIST_DEBUG
    gt_disc_distri_delete(condenseq_creator->add);
    gt_disc_distri_delete(condenseq_creator->replace);
    gt_disc_distri_delete(condenseq_creator->delete);
#endif
    gt_free(condenseq_creator->window.idxs);
    gt_free(condenseq_creator->window.pos_arrs);
    gt_kmer_database_delete(condenseq_creator->kmer_db);
    gt_seqabstract_delete(condenseq_creator->xdrop.current_seq_bwd);
    gt_seqabstract_delete(condenseq_creator->xdrop.current_seq_fwd);
    gt_seqabstract_delete(condenseq_creator->xdrop.unique_seq_bwd);
    gt_seqabstract_delete(condenseq_creator->xdrop.unique_seq_fwd);
    gt_xdrop_resources_delete(condenseq_creator->xdrop.best_left_res);
    gt_xdrop_resources_delete(condenseq_creator->xdrop.best_right_res);
    gt_xdrop_resources_delete(condenseq_creator->xdrop.left_xdrop_res);
    gt_xdrop_resources_delete(condenseq_creator->xdrop.right_xdrop_res);
    gt_free(condenseq_creator->xdrop.left);
    gt_free(condenseq_creator->xdrop.right);

    gt_free(condenseq_creator);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x145153
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0x40698c(%rip), %rsi    # 0x54b9ee
movl $0x47b, %edx            # imm = 0x47B
callq 0xe88c0
movq (%rsp), %rax
movq 0xb0(%rax), %rdi
leaq 0x406970(%rip), %rsi    # 0x54b9ee
movl $0x47c, %edx            # imm = 0x47C
callq 0xe88c0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x197d90
movq (%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x2b0d20
movq (%rsp), %rax
movq 0x78(%rax), %rdi
callq 0x2b0d20
movq (%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x2b0d20
movq (%rsp), %rax
movq 0x88(%rax), %rdi
callq 0x2b0d20
movq (%rsp), %rax
movq 0x68(%rax), %rdi
callq 0x2f85d0
movq (%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x2f85d0
movq (%rsp), %rax
movq 0x58(%rax), %rdi
callq 0x2f85d0
movq (%rsp), %rax
movq 0x60(%rax), %rdi
callq 0x2f85d0
movq (%rsp), %rax
movq 0x98(%rax), %rdi
leaq 0x4068d6(%rip), %rsi    # 0x54b9ee
movl $0x486, %edx            # imm = 0x486
callq 0xe88c0
movq (%rsp), %rax
movq 0xa0(%rax), %rdi
leaq 0x4068ba(%rip), %rsi    # 0x54b9ee
movl $0x487, %edx            # imm = 0x487
callq 0xe88c0
movq (%rsp), %rdi
leaq 0x4068a5(%rip), %rsi    # 0x54b9ee
movl $0x489, %edx            # imm = 0x489
callq 0xe88c0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_diagonals_full_new
static CesCFullDiags * ces_c_diagonals_full_new(size_t size)
{
  size_t idx;
  CesCFullDiags *diags = gt_malloc(sizeof (*diags));
  diags->space = gt_malloc(size * sizeof (*diags->space));
  for (idx = 0; idx < size; idx++)
    diags->space[idx] = GT_UNDEF_UWORD;
  diags->allocated = (GtUword) size;
  diags->nextfree = (GtUword) size;
  return diags;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x18, %edi
leaq 0x405e79(%rip), %rsi    # 0x54b9ee
movl $0x5d, %edx
callq 0xe80f0
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x405e5b(%rip), %rsi    # 0x54b9ee
movl $0x5e, %edx
callq 0xe80f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x145be0
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movq $-0x1, (%rax,%rcx,8)
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x145bb0
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq (%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_sparse_diags_new
static CesCSparseDiags *ces_c_sparse_diags_new(size_t size)
{
  CesCSparseDiags *diags = gt_malloc(sizeof (*diags));
  diags->space = gt_malloc(size * sizeof (*diags->space));
  diags->allocated = (GtUword) size;
  diags->nextfree = 0;
  diags->add_space = gt_malloc(size * sizeof (*diags->add_space));
  diags->add_size = (GtUword) size;
  diags->max = 0;
  diags->add_iterator = NULL;
  diags->add_nextfree = 0;
  diags->marked = 0;
  diags->add_tree = gt_rbtree_new(ces_c_diag_cmp, NULL, NULL);
  return diags;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x50, %edi
leaq 0x405dc9(%rip), %rsi    # 0x54b9ee
movl $0x75, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
shlq $0x4, %rdi
leaq 0x405daa(%rip), %rsi    # 0x54b9ee
movl $0x76, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x10(%rsp), %rdi
shlq $0x4, %rdi
leaq 0x405d69(%rip), %rsi    # 0x54b9ee
movl $0x79, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x38(%rax)
leaq 0x19bd(%rip), %rdi      # 0x1476a0
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x1b7e90
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_diags_delete
static void ces_c_diags_delete(CesCDiags *diags)
{
  if (diags != NULL) {
    if (diags->full != NULL) {
      gt_free(diags->full->space);
      gt_free(diags->full);
    }
    if (diags->sparse != NULL) {
      gt_free(diags->sparse->space);
      gt_rbtree_delete(diags->sparse->add_tree);
      gt_rbtree_iter_delete(diags->sparse->add_iterator);
      gt_free(diags->sparse->add_space);
      gt_free(diags->sparse);
    }
    gt_free(diags);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x146421
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x14638d
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rdi
leaq 0x405683(%rip), %rsi    # 0x54b9ee
movl $0x87, %edx
callq 0xe88c0
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x40566b(%rip), %rsi    # 0x54b9ee
movl $0x88, %edx
callq 0xe88c0
movq (%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x14640c
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x405643(%rip), %rsi    # 0x54b9ee
movl $0x8b, %edx
callq 0xe88c0
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x1b7f50
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rdi
callq 0x1ba760
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
leaq 0x405605(%rip), %rsi    # 0x54b9ee
movl $0x8e, %edx
callq 0xe88c0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x4055ec(%rip), %rsi    # 0x54b9ee
movl $0x8f, %edx
callq 0xe88c0
movq (%rsp), %rdi
leaq 0x4055d7(%rip), %rsi    # 0x54b9ee
movl $0x91, %edx
callq 0xe88c0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_sparse_diags_mark
static void ces_c_sparse_diags_mark(CesCSparseDiags *diags,
                                    GtUword j_max,
                                    GtUword d_min,
                                    GtUword d)
{
  if (diags != NULL) {
    /* move to end of block (last diagonal that was valid for this i or
       smaller) only a few steps? Do not cross current d! */
    CesCDiag *d_ptr = ces_c_diags_bs_lseq(diags, d_min);

    /* mark all within same j-range after block as deleted */
    /* do not cross current d! */
    while (d_ptr >= diags->space &&
           d_ptr->d > d &&
           d_ptr->j <= j_max) {/* old diag of last block */
      d_ptr->j = GT_UNDEF_UWORD;
      diags->marked++;
      d_ptr--;
    }
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1464e2
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x147010
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rcx
movq 0x30(%rsp), %rdx
xorl %eax, %eax
cmpq 0x8(%rdx), %rcx
movb %al, 0xf(%rsp)
jb 0x1464a8
movq 0x10(%rsp), %rax
movq (%rax), %rcx
xorl %eax, %eax
cmpq 0x18(%rsp), %rcx
movb %al, 0xf(%rsp)
jbe 0x1464a8
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x28(%rsp), %rax
setbe %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x1464b2
jmp 0x1464e0
movq 0x10(%rsp), %rax
movq $-0x1, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x38(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x38(%rax)
movq 0x10(%rsp), %rax
addq $-0x10, %rax
movq %rax, 0x10(%rsp)
jmp 0x146468
jmp 0x1464e2
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_diags_bs_lseq_r
static CesCDiag *ces_c_diags_bs_lseq_r(CesCDiag *left,
                                       CesCDiag *right,
                                       GtUword d)
{
  CesCDiag *middle;
  ptrdiff_t diff = right - left;
  gt_assert(diff >= 0);
  middle = left + GT_DIV2(diff);

  while (right - left > (ptrdiff_t) 1) {
    if (d < middle->d)
      right = middle;
    else
      left = middle;
    diff = right - left;
    middle = left + GT_DIV2(diff);
  }
  return middle;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
subq %rcx, %rax
sarq $0x4, %rax
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jge 0x1470c7
movq 0x4f4f0a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3cef73(%rip), %rsi    # 0x516013
leaq 0x404f56(%rip), %rdx    # 0x54bffd
leaq 0x404f59(%rip), %rcx    # 0x54c007
leaq 0x404939(%rip), %r8     # 0x54b9ee
movl $0x9d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1470c9
movq 0x20(%rsp), %rax
movq (%rsp), %rcx
sarq %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
subq %rcx, %rax
sarq $0x4, %rax
cmpq $0x1, %rax
jle 0x14714c
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x147113
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x14711d
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
subq %rcx, %rax
sarq $0x4, %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq (%rsp), %rcx
sarq %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, 0x8(%rsp)
jmp 0x1470e1
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_sparse_diags_clean
static void ces_c_sparse_diags_clean(GtCondenseqCreator *ces_c)
{
  CesCSparseDiags *diags = ces_c->diagonals->sparse;
  CesCDiag *d_dest = diags->space,
                      *d_src = diags->space,
                      *end = diags->space + diags->nextfree;
  while (d_src < end) {
    if (d_src->j != GT_UNDEF_UWORD) {
      *d_dest = *d_src;
      d_dest++;
    }
    d_src++;
  }
  gt_assert(d_dest < d_src);
#ifdef GT_CONDENSEQ_CREATOR_DIST_DEBUG
  if (gt_log_enabled())
    gt_disc_distri_add(ces_c->delete, (GtUword) (end - d_dest));
#endif
  diags->nextfree = (GtUword) (d_dest - diags->space);
  diags->marked = 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x48(%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rax
cmpq (%rsp), %rax
jae 0x147201
movq 0x8(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x1471f1
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x8(%rsp)
jmp 0x1471b4
jmp 0x147203
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jb 0x147247
movq 0x4f4d8a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3cedf3(%rip), %rsi    # 0x516013
leaq 0x404f8d(%rip), %rdx    # 0x54c1b4
leaq 0x404f95(%rip), %rcx    # 0x54c1c3
leaq 0x4047b9(%rip), %r8     # 0x54b9ee
movl $0x15c, %r9d            # imm = 0x15C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x147249
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
subq %rax, %rcx
sarq $0x4, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x38(%rax)
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_diag_cmp
static int ces_c_diag_cmp(const void *a, const void *b,
                          GT_UNUSED void *data)
{
  const CesCDiag *diag_a = a,
                   *diag_b = b;
  gt_assert(a != NULL && b != NULL);
  if (diag_a->d < diag_b->d)
    return -1;
  if (diag_a->d > diag_b->d)
    return 1;
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x1476d7
cmpq $0x0, 0x20(%rsp)
jne 0x14770f
movq 0x4f48c2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3ce92b(%rip), %rsi    # 0x516013
leaq 0x404c81(%rip), %rdx    # 0x54c370
leaq 0x404c91(%rip), %rcx    # 0x54c387
leaq 0x4042f1(%rip), %r8     # 0x54b9ee
movl $0x6b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x147711
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x14772d
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x147751
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
cmpq (%rcx), %rax
jbe 0x147749
movl $0x1, 0x34(%rsp)
jmp 0x147751
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_process_kmer
static CesCState ces_c_process_kmer(GtCondenseqCreator *ces_c,
                                    const GtKmercode *main_kmercode,
                                    GtError *err)
{
  CesCState state = GT_CONDENSEQ_CREATOR_CONT;
  if (!main_kmercode->definedspecialposition) {
    GtKmerStartpos positions =
      gt_kmer_database_get_startpos(ces_c->kmer_db,
                                    main_kmercode->code);
    ces_c_advance_window(ces_c, positions);
    state = ces_c_extend_seed_kmer(ces_c, err);
  }
  /* check if special in kmer is end of sequence, we can add previous kmers and
     the current unique to the database */
  else if (ces_c->current_seq_pos + ces_c->kmersize > ces_c->current_seq_len) {
    state = ces_c_handle_seqend(ces_c, err);
    if (state != GT_CONDENSEQ_CREATOR_ERROR) {
      ces_c->window.count = 0;
      gt_assert(state == GT_CONDENSEQ_CREATOR_RESET ||
                state == GT_CONDENSEQ_CREATOR_EOD);
    }
  }
  return state;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movl $0x0, 0x3c(%rsp)
movq 0x48(%rsp), %rax
testb $0x1, (%rax)
jne 0x147e71
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
callq 0x199540
movq 0x50(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x148250
movq 0x50(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x148360
movl %eax, 0x3c(%rsp)
jmp 0x147f10
movq 0x50(%rsp), %rax
movq 0xd8(%rax), %rax
movq 0x50(%rsp), %rcx
movl 0x138(%rcx), %ecx
addq %rcx, %rax
movq 0x50(%rsp), %rcx
cmpq 0xd0(%rcx), %rax
jbe 0x147f0e
movq 0x50(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x148820
movl %eax, 0x3c(%rsp)
cmpl $0x3, 0x3c(%rsp)
je 0x147f0c
movq 0x50(%rsp), %rax
movl $0x0, 0xc4(%rax)
cmpl $0x2, 0x3c(%rsp)
je 0x147f08
cmpl $0x1, 0x3c(%rsp)
je 0x147f08
movq 0x4f40c9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3ce132(%rip), %rsi    # 0x516013
leaq 0x404775(%rip), %rdx    # 0x54c65d
leaq 0x4047b7(%rip), %rcx    # 0x54c6a6
leaq 0x403af8(%rip), %r8     # 0x54b9ee
movl $0x582, %r9d            # imm = 0x582
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x147f0a
jmp 0x147f0c
jmp 0x147f0e
jmp 0x147f10
movl 0x3c(%rsp), %eax
addq $0x58, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_skip_short_seqs
static CesCState ces_c_skip_short_seqs(GtCondenseqCreator *ces_c)
{

  while (ces_c->main_seqnum < ces_c->ces->orig_num_seq) {
    ces_c->current_seq_len = gt_condenseq_seqlength(ces_c->ces,
                                                    ces_c->main_seqnum);
    if (ces_c->current_seq_len < ces_c->min_align_len) {
      GtUword start = gt_condenseq_seqstartpos(ces_c->ces,
                                               ces_c->main_seqnum);
      /* no check for overflow of length necessary, as minalignlength was
         checked not to overflow */
      gt_condenseq_add_unique_to_db(ces_c->ces, start,
                                    ces_c->current_seq_len);
      ces_c->main_seqnum++;
    }
    else
      break;
  }
  return ces_c->main_seqnum >= ces_c->ces->orig_num_seq ?
    GT_CONDENSEQ_CREATOR_EOD : GT_CONDENSEQ_CREATOR_CONT;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0xf8(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x28(%rcx), %rcx
cmpq 0x80(%rcx), %rax
jae 0x147fee
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x10(%rsp), %rax
movq 0xf8(%rax), %rsi
callq 0x13e4c0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0xd0(%rax)
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rax
movq 0x10(%rsp), %rcx
cmpq 0x100(%rcx), %rax
jae 0x147fe7
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x10(%rsp), %rax
movq 0xf8(%rax), %rsi
callq 0x13e470
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rax
movl %eax, %edx
callq 0x13f0b0
movq 0x10(%rsp), %rax
movq 0xf8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xf8(%rax)
jmp 0x147fe9
jmp 0x147fee
jmp 0x147f29
movq 0x10(%rsp), %rax
movq 0xf8(%rax), %rdx
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x80(%rax), %rsi
xorl %eax, %eax
movl $0x1, %ecx
cmpq %rsi, %rdx
cmovael %ecx, %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_reset_pos_and_iter_to_current_seq
static CesCState
ces_c_reset_pos_and_iter_to_current_seq(GtCondenseqCreator *ces_c)
{
  if (ces_c->main_seqnum >= ces_c->ces->orig_num_seq) {
    return GT_CONDENSEQ_CREATOR_EOD;
  }
  ces_c->current_seq_start =
    gt_condenseq_seqstartpos(ces_c->ces,
                             ces_c->main_seqnum);
  return ces_c_reset_pos_and_iter(ces_c, ces_c->current_seq_start);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0xf8(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rcx
cmpq 0x80(%rcx), %rax
jb 0x148051
movl $0x1, 0x14(%rsp)
jmp 0x148094
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x8(%rsp), %rax
movq 0xf8(%rax), %rsi
callq 0x13e470
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0xe0(%rax)
movq 0x8(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xe0(%rax), %rsi
callq 0x148150
movl %eax, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_add_kmers
static void ces_c_add_kmers(GtCondenseqCreator *ces_c,
                            GtUword start,
                            GtUword end)
{
  gt_assert(start < end);
  if (start + ces_c->min_align_len <= end)
    gt_kmer_database_add_interval(ces_c->kmer_db, start, end - 1,
                                  ces_c->ces->uds_nelems - 1);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
movq 0x8(%rsp), %rax
cmpq (%rsp), %rax
jb 0x1480f5
movq 0x4f3edc(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3cdf45(%rip), %rsi    # 0x516013
leaq 0x40456c(%rip), %rdx    # 0x54c641
leaq 0x404571(%rip), %rcx    # 0x54c64d
leaq 0x40390b(%rip), %r8     # 0x54b9ee
movl $0x4dc, %r9d            # imm = 0x4DC
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1480f7
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
addq 0x100(%rcx), %rax
cmpq (%rsp), %rax
ja 0x14813d
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x8(%rsp), %rsi
movq (%rsp), %rdx
subq $0x1, %rdx
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x98(%rax), %rcx
subq $0x1, %rcx
callq 0x198960
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_reset_pos_and_iter
static CesCState ces_c_reset_pos_and_iter(GtCondenseqCreator *ces_c,
                                          GtUword pos)
{
  unsigned int idx;
  if (pos >= ces_c->ces->orig_len) {
    return GT_CONDENSEQ_CREATOR_EOD;
  }
  ces_c->current_orig_start =
    ces_c->main_pos = pos;
  ces_c->current_seq_pos =
    ces_c->main_pos - ces_c->current_seq_start;
  ces_c->window.count = 0;
  ces_c->window.next = 0;
  for (idx = 0; idx < ces_c->windowsize; idx++)
    ces_c->window.pos_arrs[idx].no_positions = 0;
  gt_kmercodeiterator_reset(ces_c->main_kmer_iter,
                            GT_READMODE_FORWARD,
                            ces_c->main_pos);
  return GT_CONDENSEQ_CREATOR_RESET;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x28(%rcx), %rcx
cmpq 0x78(%rcx), %rax
jb 0x14817f
movl $0x1, 0x24(%rsp)
jmp 0x148247
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0xf0(%rax)
movq 0x18(%rsp), %rax
movq %rcx, 0xc8(%rax)
movq 0x18(%rsp), %rax
movq 0xf0(%rax), %rcx
movq 0x18(%rsp), %rax
subq 0xe0(%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0xd8(%rax)
movq 0x18(%rsp), %rax
movl $0x0, 0xc4(%rax)
movq 0x18(%rsp), %rax
movl $0x0, 0xc0(%rax)
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq 0x18(%rsp), %rcx
cmpl 0x13c(%rcx), %eax
jae 0x148223
movq 0x18(%rsp), %rax
movq 0xb0(%rax), %rax
movl 0xc(%rsp), %ecx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq $0x0, 0x10(%rax)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x1481e6
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x18(%rsp), %rax
movq 0xf0(%rax), %rdx
xorl %esi, %esi
callq 0x2ca370
movl $0x2, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_advance_window
static void ces_c_advance_window(GtCondenseqCreator *ces_c,
                                 GtKmerStartpos positions)
{
  GtCondenseqCreatorWindow *win = &ces_c->window;
  gt_assert(win->next != 0 ||
            (win->count == 0 || win->count == ces_c->windowsize));
  win->pos_arrs[win->next] = positions;
  win->next++;
  if (win->next == ces_c->windowsize)
    win->next = 0;
  if (win->count < ces_c->windowsize)
    win->count++;
}

// Assembly:
subq $0x18, %rsp
leaq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0xb0, %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x1482d5
movq 0x8(%rsp), %rax
cmpl $0x0, 0x14(%rax)
je 0x1482d5
movq 0x8(%rsp), %rax
movl 0x14(%rax), %eax
movq 0x10(%rsp), %rcx
cmpl 0x13c(%rcx), %eax
je 0x1482d5
movq 0x4f3cfc(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3cdd65(%rip), %rsi    # 0x516013
leaq 0x404404(%rip), %rdx    # 0x54c6b9
leaq 0x404444(%rip), %rcx    # 0x54c700
leaq 0x40372b(%rip), %r8     # 0x54b9ee
movl $0x566, %r9d            # imm = 0x566
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1482d7
movq (%rsp), %rcx
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdx
movl 0x10(%rdx), %edx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq 0x8(%rsp), %rax
movl 0x10(%rax), %eax
movq 0x10(%rsp), %rcx
cmpl 0x13c(%rcx), %eax
jne 0x148337
movq 0x8(%rsp), %rax
movl $0x0, 0x10(%rax)
movq 0x8(%rsp), %rax
movl 0x14(%rax), %eax
movq 0x10(%rsp), %rcx
cmpl 0x13c(%rcx), %eax
jae 0x14835a
movq 0x8(%rsp), %rax
movl 0x14(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x14(%rax)
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_handle_seqend
static CesCState ces_c_handle_seqend(GtCondenseqCreator *ces_c,
                                     GtError *err)
{
  CesCState state = GT_CONDENSEQ_CREATOR_CONT;
  /* rest of sequence length */
  GtUword length = ces_c->current_seq_len - ces_c->current_seq_pos;
  /* add length of unique before this pos */
  length += ces_c->main_pos - ces_c->current_orig_start;
  if (length != 0) {
    GT_CES_LENCHECK_STATE(length);
    if (state != GT_CONDENSEQ_CREATOR_ERROR) {
      gt_condenseq_add_unique_to_db(ces_c->ces,
                                    ces_c->current_orig_start,
                                    length);
      if (length >= ces_c->min_align_len)
        ces_c_add_kmers(ces_c, ces_c->current_orig_start,
                        ces_c->current_orig_start + length);
    }
  }
  if (state != GT_CONDENSEQ_CREATOR_ERROR) {
    ces_c->main_seqnum++;
    state = ces_c_skip_short_seqs(ces_c);
    if (state == GT_CONDENSEQ_CREATOR_CONT) {
      state = ces_c_reset_pos_and_iter_to_current_seq(ces_c);
    }
  }
  return state;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movq 0x20(%rsp), %rax
movq 0xd0(%rax), %rax
movq 0x20(%rsp), %rcx
subq 0xd8(%rcx), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0xf0(%rax), %rax
movq 0x20(%rsp), %rcx
subq 0xc8(%rcx), %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x14891c
jmp 0x148883
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x8(%rsp)
jbe 0x1488b4
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rdx
leaq 0x403834(%rip), %rsi    # 0x54c0d4
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movb $0x0, %al
callq 0xd88c0
movl $0x3, 0x14(%rsp)
jmp 0x1488b6
cmpl $0x3, 0x14(%rsp)
je 0x14891a
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0xc8(%rax), %rsi
movq 0x8(%rsp), %rax
movl %eax, %edx
callq 0x13f0b0
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x100(%rcx), %rax
jb 0x148918
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0xc8(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0xc8(%rax), %rdx
addq 0x8(%rsp), %rdx
callq 0x1480a0
jmp 0x14891a
jmp 0x14891c
cmpl $0x3, 0x14(%rsp)
je 0x14895f
movq 0x20(%rsp), %rax
movq 0xf8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0xf8(%rax)
movq 0x20(%rsp), %rdi
callq 0x147f20
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jne 0x14895d
movq 0x20(%rsp), %rdi
callq 0x148020
movl %eax, 0x14(%rsp)
jmp 0x14895f
movl 0x14(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_creator.c
// Function: ces_c_xdrop_backtrack
static
GtMultieoplist *ces_c_xdrop_backtrack(const GtCondenseqCreatorXdrop xdrop)
{
  GtMultieoplist *meops;
  GtXdropbest *left = xdrop.left,
              *right = xdrop.right;
  const bool backward = false;
  if (right->ivalue > 0 || right->jvalue > 0) {
    meops = gt_xdrop_backtrack(xdrop.best_right_res, right);
  }
  else
    meops = gt_multieoplist_new();
  if (left->ivalue > 0 || left->ivalue > 0) {
    GtMultieoplist *meopsleft = gt_xdrop_backtrack(xdrop.best_left_res,
                                                   left);
    gt_multieoplist_combine(meops, meopsleft, backward);
    gt_multieoplist_delete(meopsleft);
  }
  return meops;
}

// Assembly:
subq $0x38, %rsp
leaq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rax), %rcx
movq %rcx, 0x28(%rsp)
movq 0x48(%rax), %rax
movq %rax, 0x20(%rsp)
movb $0x0, 0x1f(%rsp)
movq 0x20(%rsp), %rax
cmpq $0x0, (%rax)
ja 0x1489ac
movq 0x20(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jbe 0x1489c6
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x2f98e0
movq %rax, 0x30(%rsp)
jmp 0x1489d0
callq 0x1af960
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rax
cmpq $0x0, (%rax)
ja 0x1489e6
movq 0x28(%rsp), %rax
cmpq $0x0, (%rax)
jbe 0x148a19
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0x2f98e0
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rsi
xorl %edx, %edx
callq 0x1b0850
movq 0x10(%rsp), %rdi
callq 0x1afba0
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq_search_arguments.c
// Function: gt_condenseq_search_register_options
void gt_condenseq_search_register_options(
                         GtCondenseqSearchArguments *condenseq_search_arguments,
                         GtOptionParser *option_parser)
{
  GtOption *option;
   /* -db */
  option = gt_option_new_filename("db", "path of (compressed) fasta database",
                                  condenseq_search_arguments->dbpath);
  gt_option_is_mandatory(option);
  gt_option_parser_add_option(option_parser, option);

  /* -verbose */
  option = gt_option_new_bool("verbose", "verbose output",
                              &condenseq_search_arguments->verbose, false);
  gt_option_parser_add_option(option_parser, option);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdx
leaq 0x3fec44(%rip), %rdi    # 0x547741
leaq 0x403c93(%rip), %rsi    # 0x54c797
callq 0xf6aa0
movq %rax, (%rsp)
movq (%rsp), %rdi
callq 0xf6ca0
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq 0x10(%rsp), %rdx
addq $0x8, %rdx
leaq 0x3cf5f3(%rip), %rdi    # 0x518127
leaq 0x3d1123(%rip), %rsi    # 0x519c5e
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign.c
// Function: gt_diagonalbandalignment_in_square_space
GtUword gt_diagonalbandalignment_in_square_space(GtLinspaceManagement
                                                 *spacemanager,
                                                 GtAlignment *alignment,
                                                 const GtUchar *useq,
                                                 GtUword ustart,
                                                 GtUword ulen,
                                                 const GtUchar *vseq,
                                                 GtUword vstart,
                                                 GtUword vlen,
                                                 GtWord left_dist,
                                                 GtWord right_dist,
                                                 GtUword matchcost,
                                                 GtUword mismatchcost,
                                                 GtUword gapcost)
{
  GtUword distance;
  GtScoreHandler *scorehandler;

  scorehandler = gt_scorehandler_new(matchcost, mismatchcost, 0, gapcost);
  distance = gt_diagonalbandalignment_in_square_space_generic(spacemanager,
                                                           alignment,
                                                           useq, ustart, ulen,
                                                           vseq, vstart, vlen,
                                                           left_dist,
                                                           right_dist,
                                                           scorehandler);
  gt_scorehandler_delete(scorehandler);
  return distance;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq 0xb0(%rsp), %rax
movq 0xa8(%rsp), %rax
movq 0xa0(%rsp), %rax
movq 0x98(%rsp), %rax
movq 0x90(%rsp), %rax
movq 0x88(%rsp), %rax
movq 0x80(%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 0xa0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x1d0fb0
movq %rax, 0x28(%rsp)
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x48(%rsp), %rcx
movq 0x40(%rsp), %r8
movq 0x38(%rsp), %r9
movq 0x80(%rsp), %r14
movq 0x88(%rsp), %rbx
movq 0x90(%rsp), %r11
movq 0x98(%rsp), %r10
movq 0x28(%rsp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x14ccf0
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rdi
callq 0x1d1150
movq 0x30(%rsp), %rax
addq $0x68, %rsp
popq %rbx
popq %r14
retq
nop