LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/clustered_set_uf.c
// Function: gt_clustered_set_union_find_append_elem
static void
gt_clustered_set_union_find_append_elem(GtClusteredSetUF *cs_uf,
                                        GtUword c,
                                        GtUword elem,
                                        GT_UNUSED GtError *err)
{
  GtClusteredSetUFClusterInfo *cluster_info;
  cs_uf->cluster_elems[elem].cluster_num = c;
  cs_uf->cluster_elems[elem].next_elem = cs_uf->num_of_elems;
  cluster_info = CINFO(c);
  cs_uf->cluster_elems[cluster_info->last_elem].next_elem = elem;
  cluster_info->last_elem = elem;
  cluster_info->cluster_size++;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq %rax, (%rsp)
movq 0x10(%rsp), %rcx
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rsp), %rdx
movq 0x8(%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/clustered_set_uf.c
// Function: gt_clustered_set_union_find_join_clusters
static void
gt_clustered_set_union_find_join_clusters(GtClusteredSetUF *cs_uf,
                                           GtUword c1,
                                           GtUword c2,
                                           GT_UNUSED GtError *err)
{
  GtClusteredSetUFClusterInfo *cluster_info_c1;
  GtClusteredSetUFClusterInfo *cluster_info_c2;

  cluster_info_c1 = CINFO(c1);
  cluster_info_c2 = CINFO(c2);

  gt_clustered_set_union_find_change_cluster_number(cs_uf,
                                                    cluster_info_c2->first_elem,
                                                    c1);

  cs_uf->cluster_elems[cluster_info_c1->last_elem].next_elem =
    cluster_info_c2->first_elem;

  cluster_info_c2->first_elem = cs_uf->num_of_elems;
  cluster_info_c1->cluster_size += cluster_info_c2->cluster_size;
  cluster_info_c1->last_elem = cluster_info_c2->last_elem;
  cluster_info_c2->cluster_size = (GtUword) 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0x80b60
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x80b60
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x28(%rsp), %rdx
callq 0x48d2b0
movq 0x8(%rsp), %rax
movq (%rax), %rcx
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rdx
movq 0x8(%rdx), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x10(%rsp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x10(%rax)
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/clustered_set_uf.c
// Function: gt_clustered_set_union_find_class
const GtClusteredSetClass* gt_clustered_set_union_find_class(void)
{

  static const GtClusteredSetClass *csc = NULL;
  gt_class_alloc_lock_enter();
  if (!csc) {
    csc = gt_clustered_set_class_new(sizeof (GtClusteredSetUF),
      gt_clustered_set_union_find_num_of_clusters,
      gt_clustered_set_union_find_merge_clusters,
      gt_clustered_set_union_find_delete,
      gt_clustered_set_union_find_iterator_new,
      gt_clustered_set_union_find_num_of_elements,
      gt_clustered_set_union_find_cluster_num);
  }
  gt_class_alloc_lock_leave();
  return csc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x1b6cb2(%rip)    # 0x643630
jne 0x48c9bf
movl $0x38, %edi
leaq -0x88c(%rip), %rsi      # 0x48c100
leaq -0x703(%rip), %rdx      # 0x48c290
leaq -0x8fa(%rip), %rcx      # 0x48c0a0
leaq -0xb21(%rip), %r8       # 0x48be80
leaq -0x838(%rip), %r9       # 0x48c170
leaq -0x7cf(%rip), %rax      # 0x48c1e0
movq %rax, (%rsp)
callq 0x48bb10
movq %rax, 0x1b6c71(%rip)    # 0x643630
callq 0x9f280
movq 0x1b6c65(%rip), %rax    # 0x643630
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/clustered_set_uf.c
// Function: gt_clustered_set_union_find_new
GtClusteredSet*
gt_clustered_set_union_find_new(GtUword num_of_elems,
                                GT_UNUSED GtError *err)
{
  GtClusteredSet *cs;
  GtClusteredSetUF *cs_uf;
  cs = gt_clustered_set_create(gt_clustered_set_union_find_class());
  cs_uf = (GtClusteredSetUF*) cs;
  cs_uf->num_of_elems = num_of_elems;
  cs_uf->cluster_elems = gt_calloc(num_of_elems, sizeof (GtClusteredSetUFElem));
  cs_uf->cluster_info = gt_array_new(sizeof (GtClusteredSetUFClusterInfo));
  cs_uf->in_cluster = gt_bittab_new(num_of_elems);
  cs_uf->next_free_cluster_info = (GtUword) 0;

  return cs;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
callq 0x48c970
movq %rax, %rdi
callq 0x48bbb0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x20(%rsp), %rdi
movl $0x10, %esi
leaq 0x12576a(%rip), %rdx    # 0x5b2183
movl $0x139, %ecx            # imm = 0x139
callq 0xe83c0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movl $0x18, %edi
callq 0x80990
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x20(%rsp), %rdi
callq 0x89a20
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x30(%rax)
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/clustered_set_uf.c
// Function: gt_clustered_set_union_find_change_cluster_number
static void
gt_clustered_set_union_find_change_cluster_number(GtClusteredSetUF *cs_uf,
                                                  GtUword first_elem,
                                                  GtUword target)
{

  GtUword i;
  i = first_elem;
  while (1)
  {
    cs_uf->cluster_elems[i].cluster_num = target;
    if ((i = cs_uf->cluster_elems[i].next_elem) == cs_uf->num_of_elems)
      break;
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq -0x10(%rsp), %rax
movq %rax, -0x20(%rsp)
movq -0x18(%rsp), %rcx
movq -0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x8(%rsp), %rcx
cmpq 0x28(%rcx), %rax
jne 0x48d311
jmp 0x48d313
jmp 0x48d2c9
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/coin_hmm.c
// Function: gt_coin_hmm_loaded
GtHMM* gt_coin_hmm_loaded(void)
{
  GtHMM *hmm;

  /* create the GtHMM */
  hmm = gt_hmm_new(COIN_NUM_OF_STATES, COIN_NUM_OF_SYMBOLS);

  /* set emmission probabilities */
  gt_hmm_set_emission_probability(hmm, COIN_FAIR, HEAD, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_FAIR, TAIL, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_LOADED, HEAD, 0.75);
  gt_hmm_set_emission_probability(hmm, COIN_LOADED, TAIL, 0.25);

  /* set transition probabilities */
  gt_hmm_set_transition_probability(hmm, COIN_FAIR, COIN_LOADED, 0.1);
  gt_hmm_set_transition_probability(hmm, COIN_LOADED, COIN_FAIR, 0.1);
  gt_hmm_set_missing_transition_probabilities(hmm);
  gt_assert(gt_hmm_is_valid(hmm));

  return hmm;
}

// Assembly:
pushq %rax
movl $0x2, %esi
movl %esi, %edi
callq 0x18a550
movq %rax, (%rsp)
movq (%rsp), %rdi
xorl %edx, %edx
movsd 0x99bc9(%rip), %xmm0    # 0x526f08
movl %edx, %esi
callq 0x18ab50
movq (%rsp), %rdi
xorl %esi, %esi
movl $0x1, %edx
movsd 0x99baf(%rip), %xmm0    # 0x526f08
callq 0x18ab50
movq (%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
movsd 0xc1d37(%rip), %xmm0    # 0x54f0a8
callq 0x18ab50
movq (%rsp), %rdi
movl $0x1, %edx
movsd 0x953d1(%rip), %xmm0    # 0x522758
movl %edx, %esi
callq 0x18ab50
movq (%rsp), %rdi
xorl %esi, %esi
movl $0x1, %edx
movsd 0x91eaf(%rip), %xmm0    # 0x51f250
callq 0x18a9b0
movq (%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
movsd 0x91e97(%rip), %xmm0    # 0x51f250
callq 0x18a9b0
movq (%rsp), %rdi
callq 0x18af60
movq (%rsp), %rdi
callq 0x18b260
testb $0x1, %al
jne 0x48d40c
movq 0x1aebc5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x88c2e(%rip), %rsi     # 0x516013
leaq 0xc8246(%rip), %rdx     # 0x555632
leaq 0x12527a(%rip), %rcx    # 0x5b266d
leaq 0x125286(%rip), %r8     # 0x5b2680
movl $0x26, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48d40e
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/coin_hmm.c
// Function: gt_coin_hmm_fair
GtHMM* gt_coin_hmm_fair(void)
{
  GtHMM *hmm;

  /* create the GtHMM */
  hmm = gt_hmm_new(COIN_NUM_OF_STATES, COIN_NUM_OF_SYMBOLS);

  /* set emmission probabilities */
  gt_hmm_set_emission_probability(hmm, COIN_FAIR, HEAD, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_FAIR, TAIL, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_LOADED, HEAD, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_LOADED, TAIL, 0.5);

  /* set transition probabilities */
  gt_hmm_set_transition_probability(hmm, COIN_FAIR, COIN_LOADED, 0.5);
  gt_hmm_set_transition_probability(hmm, COIN_LOADED, COIN_FAIR, 0.5);
  gt_hmm_set_missing_transition_probabilities(hmm);
  gt_assert(gt_hmm_is_valid(hmm));

  return hmm;
}

// Assembly:
pushq %rax
movl $0x2, %esi
movl %esi, %edi
callq 0x18a550
movq %rax, (%rsp)
movq (%rsp), %rdi
xorl %edx, %edx
movsd 0x99ac9(%rip), %xmm0    # 0x526f08
movl %edx, %esi
callq 0x18ab50
movq (%rsp), %rdi
xorl %esi, %esi
movl $0x1, %edx
movsd 0x99aaf(%rip), %xmm0    # 0x526f08
callq 0x18ab50
movq (%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
movsd 0x99a97(%rip), %xmm0    # 0x526f08
callq 0x18ab50
movq (%rsp), %rdi
movl $0x1, %edx
movsd 0x99a81(%rip), %xmm0    # 0x526f08
movl %edx, %esi
callq 0x18ab50
movq (%rsp), %rdi
xorl %esi, %esi
movl $0x1, %edx
movsd 0x99a67(%rip), %xmm0    # 0x526f08
callq 0x18a9b0
movq (%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
movsd 0x99a4f(%rip), %xmm0    # 0x526f08
callq 0x18a9b0
movq (%rsp), %rdi
callq 0x18af60
movq (%rsp), %rdi
callq 0x18b260
testb $0x1, %al
jne 0x48d50c
movq 0x1aeac5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x88b2e(%rip), %rsi     # 0x516013
leaq 0xc8146(%rip), %rdx     # 0x555632
leaq 0x1251a5(%rip), %rcx    # 0x5b2698
leaq 0x125186(%rip), %r8     # 0x5b2680
movl $0x3c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48d50e
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/coin_hmm.c
// Function: gt_coin_hmm_alphabet
GtAlphabet* gt_coin_hmm_alphabet(void)
{
  GtAlphabet *a = gt_alphabet_new_empty();
  gt_alphabet_add_mapping(a, "Hh");
  gt_alphabet_add_mapping(a, "Tt");
  gt_assert(gt_alphabet_size(a) == 2);
  return a;
}

// Assembly:
pushq %rax
callq 0x7e250
movq %rax, (%rsp)
movq (%rsp), %rdi
leaq 0x125174(%rip), %rsi    # 0x5b26a9
callq 0x7de40
movq (%rsp), %rdi
leaq 0xb7995(%rip), %rsi     # 0x544eda
callq 0x7de40
movq (%rsp), %rdi
callq 0x7e920
cmpl $0x2, %eax
je 0x48d590
movq 0x1aea41(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x88aaa(%rip), %rsi     # 0x516013
leaq 0x12513c(%rip), %rdx    # 0x5b26ac
leaq 0x12514e(%rip), %rcx    # 0x5b26c5
leaq 0x125102(%rip), %r8     # 0x5b2680
movl $0x46, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48d592
movq (%rsp), %rax
popq %rcx
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_reset
int gt_cstr_iterator_reset(GtCstrIterator *cstr_iterator,
                           GtError *err)
{
  gt_error_check(err);
  gt_assert(cstr_iterator && cstr_iterator->c_class);
  if (cstr_iterator->c_class->reset_func != NULL)
    return cstr_iterator->c_class->reset_func(cstr_iterator, err);
  return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
cmpq $0x0, (%rsp)
je 0x48e9bb
movq (%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x48e983
jmp 0x48e9bb
movq 0x1ad616(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x8767f(%rip), %rsi     # 0x516013
leaq 0x87824(%rip), %rdx     # 0x5161bf
leaq 0x1241c9(%rip), %rcx    # 0x5b2b6b
leaq 0x1241d9(%rip), %r8     # 0x5b2b82
movl $0x1c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48e9bd
jmp 0x48e9bf
cmpq $0x0, 0x8(%rsp)
je 0x48e9d2
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x48ea0a
movq 0x1ad5c7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x87630(%rip), %rsi     # 0x516013
leaq 0x1241b5(%rip), %rdx    # 0x5b2b9f
leaq 0x12417a(%rip), %rcx    # 0x5b2b6b
leaq 0x12418a(%rip), %r8     # 0x5b2b82
movl $0x1d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48ea0c
movq 0x8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0x48ea38
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq *%rax
movl %eax, 0x14(%rsp)
jmp 0x48ea40
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_next
int gt_cstr_iterator_next(GtCstrIterator *cstr_iterator,
                          const char **string,
                          GtError *err)
{
  gt_error_check(err);
  gt_assert(cstr_iterator && cstr_iterator->c_class);
  if (cstr_iterator->c_class->next_func != NULL)
    return cstr_iterator->c_class->next_func(cstr_iterator,
                                             string,
                                             err);
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x48eab3
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x48ea7b
jmp 0x48eab3
movq 0x1ad51e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x87587(%rip), %rsi     # 0x516013
leaq 0x8772c(%rip), %rdx     # 0x5161bf
leaq 0x12412d(%rip), %rcx    # 0x5b2bc7
leaq 0x1240e1(%rip), %r8     # 0x5b2b82
movl $0x27, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48eab5
jmp 0x48eab7
cmpq $0x0, 0x18(%rsp)
je 0x48eaca
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x48eb02
movq 0x1ad4cf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x87538(%rip), %rsi     # 0x516013
leaq 0x1240bd(%rip), %rdx    # 0x5b2b9f
leaq 0x1240de(%rip), %rcx    # 0x5b2bc7
leaq 0x124092(%rip), %r8     # 0x5b2b82
movl $0x28, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48eb04
movq 0x18(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, (%rax)
je 0x48eb34
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq *%rax
movl %eax, 0x24(%rsp)
jmp 0x48eb3c
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_delete
void gt_cstr_iterator_delete(GtCstrIterator *cstr_iterator)
{
  if (cstr_iterator != NULL) {
    gt_assert(cstr_iterator->c_class != NULL);
    if (cstr_iterator->c_class->delete_func != NULL)
      cstr_iterator->c_class->delete_func(cstr_iterator);
    gt_free(cstr_iterator);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x48ebd6
jmp 0x48eb5e
movq (%rsp), %rax
cmpq $0x0, (%rax)
jne 0x48eba0
movq 0x1ad431(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x8749a(%rip), %rsi     # 0x516013
leaq 0x12405d(%rip), %rdx    # 0x5b2bdd
leaq 0x124075(%rip), %rcx    # 0x5b2bfc
leaq 0x123ff4(%rip), %r8     # 0x5b2b82
movl $0x33, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48eba2
movq (%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x10(%rax)
je 0x48ebc1
movq (%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq (%rsp), %rdi
callq *%rax
movq (%rsp), %rdi
leaq 0x123fb6(%rip), %rsi    # 0x5b2b82
movl $0x36, %edx
callq 0xe88c0
popq %rax
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_class_new
GtCstrIteratorClass *
gt_cstr_iterator_class_new(size_t size,
                           GtCstrIteratorNextFunc next,
                           GtCstrIteratorResetFunc reset,
                           GtCstrIteratorDeleteFunc delete)
{
  GtCstrIteratorClass *cstr_iterator_c;
  gt_assert(size != 0);
  cstr_iterator_c = gt_class_alloc(sizeof (*cstr_iterator_c));
  cstr_iterator_c->size = size;
  cstr_iterator_c->next_func = next;
  cstr_iterator_c->reset_func = reset;
  cstr_iterator_c->delete_func = delete;
  return cstr_iterator_c;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x48ec38
movq 0x1ad399(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x87402(%rip), %rsi     # 0x516013
leaq 0x123ffc(%rip), %rdx    # 0x5b2c14
leaq 0x123fff(%rip), %rcx    # 0x5b2c1e
leaq 0x123f5c(%rip), %r8     # 0x5b2b82
movl $0x41, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48ec3a
movl $0x20, %edi
callq 0x481160
movq %rax, (%rsp)
movq 0x20(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_create
GtCstrIterator *
gt_cstr_iterator_create(const GtCstrIteratorClass *cstr_iterator_c)
{
  GtCstrIterator *cstr_iterator;
  gt_assert(cstr_iterator_c && cstr_iterator_c->size);
  cstr_iterator = gt_calloc((size_t) 1, cstr_iterator_c->size);
  cstr_iterator->c_class = cstr_iterator_c;
  return cstr_iterator;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x48ecad
movq 0x10(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x48ece5
movq 0x1ad2ec(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x87355(%rip), %rsi     # 0x516013
leaq 0x123f74(%rip), %rdx    # 0x5b2c39
leaq 0x123f96(%rip), %rcx    # 0x5b2c62
leaq 0x123eaf(%rip), %r8     # 0x5b2b82
movl $0x4e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48ece7
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rsi
movl $0x1, %edi
leaq 0x123e86(%rip), %rdx    # 0x5b2b82
movl $0x4f, %ecx
callq 0xe83c0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dice_hmm.c
// Function: gt_dice_hmm_alphabet
GtAlphabet* gt_dice_hmm_alphabet(void)
{
  GtAlphabet *a = gt_alphabet_new_empty();
  gt_alphabet_add_mapping(a, "1");
  gt_alphabet_add_mapping(a, "2");
  gt_alphabet_add_mapping(a, "3");
  gt_alphabet_add_mapping(a, "4");
  gt_alphabet_add_mapping(a, "5");
  gt_alphabet_add_mapping(a, "6");
  gt_assert(gt_alphabet_size(a) == 6);
  return a;
}

// Assembly:
pushq %rax
callq 0x7e250
movq %rax, (%rsp)
movq (%rsp), %rdi
leaq 0xb1535(%rip), %rsi     # 0x54070a
callq 0x7de40
movq (%rsp), %rdi
leaq 0xd0575(%rip), %rsi     # 0x55f75a
callq 0x7de40
movq (%rsp), %rdi
leaq 0xd06d3(%rip), %rsi     # 0x55f8c8
callq 0x7de40
movq (%rsp), %rdi
leaq 0xa9cd0(%rip), %rsi     # 0x538ed5
callq 0x7de40
movq (%rsp), %rdi
leaq 0xd078f(%rip), %rsi     # 0x55f9a4
callq 0x7de40
movq (%rsp), %rdi
leaq 0xf298d(%rip), %rsi     # 0x581bb2
callq 0x7de40
movq (%rsp), %rdi
callq 0x7e920
cmpl $0x6, %eax
je 0x48f270
movq 0x1acd61(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x86dca(%rip), %rsi     # 0x516013
leaq 0x123adc(%rip), %rdx    # 0x5b2d2c
leaq 0x123aee(%rip), %rcx    # 0x5b2d45
leaq 0x123aa5(%rip), %r8     # 0x5b2d03
movl $0x5c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x48f272
movq (%rsp), %rax
popq %rcx
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_class
const GtCstrIteratorClass* gt_fasta_header_iterator_class(void)
{
  static const GtCstrIteratorClass *sic = NULL;
  gt_class_alloc_lock_enter();
  if (sic == NULL) {
    sic = gt_cstr_iterator_class_new(sizeof (GtFastaHeaderIterator),
                                     gt_fasta_header_iterator_next,
                                     gt_fasta_header_iterator_reset,
                                     gt_fasta_header_iterator_delete);
  }
  gt_class_alloc_lock_leave();
  return sic;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x1b35aa(%rip)    # 0x643648
jne 0x4900c6
movl $0x20, %edi
leaq 0x34(%rip), %rsi        # 0x4900e0
leaq 0x7d(%rip), %rdx        # 0x490130
leaq 0x156(%rip), %rcx       # 0x490210
callq 0x48ebe0
movq %rax, 0x1b3582(%rip)    # 0x643648
callq 0x9f280
movq 0x1b3576(%rip), %rax    # 0x643648
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_next
static int gt_fasta_header_iterator_next(GtCstrIterator *cstr_iterator,
                                   const char **desc_str,
                                   GtError *err)
{
  GtFastaHeaderIterator *fhi = gt_fasta_header_iterator_cast(cstr_iterator);
  GT_UNUSED GtUword len;
  return gt_seq_iterator_next(fhi->seq_iter, NULL, &len,
                             (char **) desc_str, err);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
callq 0x490090
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x48ed30
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %r8
xorl %eax, %eax
movl %eax, %esi
movq %rsp, %rdx
callq 0x111ab0
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_reset
static int gt_fasta_header_iterator_reset(GtCstrIterator *cstr_iterator,
                                    GtError *err)
{
  GtFastaHeaderIterator *fhi = gt_fasta_header_iterator_cast(cstr_iterator);
  gt_error_check(err);
  gt_seq_iterator_delete(fhi->seq_iter);
  fhi->seq_iter = gt_seq_iterator_sequence_buffer_new(fhi->filenametab, err);
  if (fhi->seq_iter == NULL)
    return -1;
  gt_seq_iterator_set_sequence_output(fhi->seq_iter, false);
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
callq 0x490090
movq %rax, %rdi
movq 0x18(%rsp), %rsi
callq 0x48ed30
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x4901a5
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x49016d
jmp 0x4901a5
movq 0x1abe2c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x85e95(%rip), %rsi     # 0x516013
leaq 0x8603a(%rip), %rdx     # 0x5161bf
leaq 0x122cc5(%rip), %rcx    # 0x5b2e51
leaq 0x122cdd(%rip), %r8     # 0x5b2e70
movl $0x30, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4901a7
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x111c10
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x113240
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x4901ea
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x490202
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
xorl %esi, %esi
callq 0x111a20
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_new
GtCstrIterator* gt_fasta_header_iterator_new(GtStrArray *filenametab,
                                               GtError *err)
{
  GtCstrIterator *cstr_iterator =
    gt_cstr_iterator_create(gt_fasta_header_iterator_class());
  GtFastaHeaderIterator *fhi = gt_fasta_header_iterator_cast(cstr_iterator);
  fhi->filenametab = gt_str_array_ref(filenametab);
  if (gt_fasta_header_iterator_reset(cstr_iterator, err) != 0)
    return NULL;
  return cstr_iterator;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
callq 0x490090
movq %rax, %rdi
callq 0x48ec90
movq %rax, 0x8(%rsp)
callq 0x490090
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x48ed30
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x11f600
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x490130
cmpl $0x0, %eax
je 0x4902ca
movq $0x0, 0x20(%rsp)
jmp 0x4902d4
movq 0x8(%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/globalchaining.c
// Function: log_fragments
static void log_fragments(GtFragment *fragments, GtUword num_of_fragments)
{
  GtUword i;
  gt_log_log("show chaining fragments");
  for (i = 0; i < num_of_fragments; i++) {
    GtFragment *frag = fragments + i;
    gt_log_log("#"GT_WU": s1="GT_WU", s1="GT_WU", l1="GT_WU", s2="GT_WU", "
               "e2="GT_WU", l2="GT_WU", w="GT_WU, i, frag->startpos1,
               frag->endpos1, frag->endpos1 - frag->startpos1 + 1,
               frag->startpos2, frag->endpos2,
               frag->endpos2 - frag->startpos2 + 1, frag->weight);
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
leaq 0x12196f(%rip), %rdi    # 0x5b3334
movb $0x0, %al
callq 0xe7740
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpq 0x28(%rsp), %rax
jae 0x491a83
movq 0x30(%rsp), %rax
imulq $0x30, 0x20(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rax
movq (%rax), %rdx
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x8(%rax), %r8
movq 0x18(%rsp), %rax
subq (%rax), %r8
addq $0x1, %r8
movq 0x18(%rsp), %rax
movq 0x10(%rax), %r9
movq 0x18(%rsp), %rax
movq 0x18(%rax), %r11
movq 0x18(%rsp), %rax
movq 0x18(%rax), %r10
movq 0x18(%rsp), %rax
subq 0x10(%rax), %r10
addq $0x1, %r10
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
leaq 0x1218f1(%rip), %rdi    # 0x5b334c
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0xe7740
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x4919d5
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: initoverlapinfo
static void initoverlapinfo(Overlapinfo *overlapinfo,
                            GtFragment *fragments,
                            GtUword num_of_fragments)
{
  GtUword i;

  for (i = 0; i < num_of_fragments; i++) {
    overlapinfo[i].active            = true;
    overlapinfo[i].startofchain      = i;
    overlapinfo[i].dim1lengthofchain = GETSTOREDLENGTH(1, i);
    overlapinfo[i].chainarray        = UNDEFPREVIOUS;
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq $0x0, -0x20(%rsp)
movq -0x20(%rsp), %rax
cmpq -0x18(%rsp), %rax
jae 0x491b4b
movq -0x8(%rsp), %rax
movq -0x20(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movb $0x1, (%rax)
movq -0x20(%rsp), %rcx
movq -0x8(%rsp), %rax
movq -0x20(%rsp), %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rsp), %rax
imulq $0x30, -0x20(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
movq -0x10(%rsp), %rax
imulq $0x30, -0x20(%rsp), %rdx
addq %rdx, %rax
subq (%rax), %rcx
movq -0x8(%rsp), %rax
movq -0x20(%rsp), %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x18(%rsp), %rcx
movq -0x8(%rsp), %rax
movq -0x20(%rsp), %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movq -0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rsp)
jmp 0x491aa8
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: findmaximalscores
static void findmaximalscores(GtChain *chain, GtChaininfo *chaininfo,
                              GtFragment *fragments,
                              GtUword num_of_fragments,
                              GtUword max_gap_width,
                              GtChainProc chainprocessor, void *cpinfo)
{
  GtWord minscore;
  bool minscoredefined = false;

  minscoredefined = retrievemaximalscore(&minscore, chaininfo,
                                         num_of_fragments);

  if (minscoredefined) {
    retrievechainthreshold(chaininfo, fragments, num_of_fragments,
                           max_gap_width, chain, minscore, chainprocessor,
                           cpinfo);
  }
}

// Assembly:
subq $0x58, %rsp
movq 0x60(%rsp), %rax
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq %r8, 0x30(%rsp)
movq %r9, 0x28(%rsp)
movb $0x0, 0x1f(%rsp)
movq 0x48(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq 0x20(%rsp), %rdi
callq 0x492610
andb $0x1, %al
movb %al, 0x1f(%rsp)
testb $0x1, 0x1f(%rsp)
je 0x491f23
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x20(%rsp), %r9
movq 0x28(%rsp), %r10
movq 0x60(%rsp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x4926d0
addq $0x58, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: chainingboundarycases
static void chainingboundarycases(GtChain *chain,
                                  GtFragment *fragments,
                                  GtUword num_of_fragments)
{
  if (num_of_fragments == 0)
    gt_chain_reset(chain);
  else if (num_of_fragments == 1UL) {
    gt_chain_reset(chain);
    gt_chain_set_score(chain, fragments[0].weight);
    gt_chain_add_fragnum(chain, 0);
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, (%rsp)
jne 0x492315
movq 0x10(%rsp), %rdi
callq 0x48b730
jmp 0x492349
cmpq $0x1, (%rsp)
jne 0x492347
movq 0x10(%rsp), %rdi
callq 0x48b730
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rsi
callq 0x48b7e0
movq 0x10(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x48b850
jmp 0x492349
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: check_max_gap_width
static bool check_max_gap_width(GtFragment *fragments,
                                GtUword max_gap_width,
                                GtUword leftfrag,
                                GtUword rightfrag)
{
  GtUword gapwidth, startpoint, endpoint;

  startpoint = GETSTOREDSTARTPOINT(1,rightfrag);
  endpoint = GETSTOREDENDPOINT(1,leftfrag);
  if (startpoint <= endpoint)
    gapwidth = 0;
  else
    gapwidth = startpoint - endpoint - 1;
  if (gapwidth > max_gap_width)
    return false;

  startpoint = GETSTOREDSTARTPOINT(2,rightfrag);
  endpoint = GETSTOREDENDPOINT(2,leftfrag);
  if (startpoint <= endpoint)
    gapwidth = 0;
  else
    gapwidth = startpoint - endpoint - 1;
  if (gapwidth > max_gap_width)
    return false;

  return true;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq %rcx, -0x28(%rsp)
movq -0x10(%rsp), %rax
imulq $0x30, -0x28(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x38(%rsp)
movq -0x10(%rsp), %rax
imulq $0x30, -0x20(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rsp)
movq -0x38(%rsp), %rax
cmpq -0x40(%rsp), %rax
ja 0x4923a8
movq $0x0, -0x30(%rsp)
jmp 0x4923bb
movq -0x38(%rsp), %rax
subq -0x40(%rsp), %rax
subq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x30(%rsp), %rax
cmpq -0x18(%rsp), %rax
jbe 0x4923ce
movb $0x0, -0x1(%rsp)
jmp 0x49243e
movq -0x10(%rsp), %rax
imulq $0x30, -0x28(%rsp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rsp)
movq -0x10(%rsp), %rax
imulq $0x30, -0x20(%rsp), %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rsp)
movq -0x38(%rsp), %rax
cmpq -0x40(%rsp), %rax
ja 0x492413
movq $0x0, -0x30(%rsp)
jmp 0x492426
movq -0x38(%rsp), %rax
subq -0x40(%rsp), %rax
subq $0x1, %rax
movq %rax, -0x30(%rsp)
movq -0x30(%rsp), %rax
cmpq -0x18(%rsp), %rax
jbe 0x492439
movb $0x0, -0x1(%rsp)
jmp 0x49243e
movb $0x1, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: colinearfragments
static bool colinearfragments(GtFragment *fragments,
                              GtUword i, GtUword j)
{
  if (GETSTOREDSTARTPOINT(1, i) < GETSTOREDSTARTPOINT(1, j) &&
      GETSTOREDENDPOINT(1, i)   < GETSTOREDENDPOINT(1, j)   &&
      GETSTOREDSTARTPOINT(2, i) < GETSTOREDSTARTPOINT(2, j) &&
      GETSTOREDENDPOINT(2, i)   < GETSTOREDENDPOINT(2, j)) {
    return true;
  }
  return false;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq -0x10(%rsp), %rax
imulq $0x30, -0x18(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rax
movq -0x10(%rsp), %rcx
imulq $0x30, -0x20(%rsp), %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jae 0x4924fc
movq -0x10(%rsp), %rax
imulq $0x30, -0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x10(%rsp), %rcx
imulq $0x30, -0x20(%rsp), %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
jae 0x4924fc
movq -0x10(%rsp), %rax
imulq $0x30, -0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq -0x10(%rsp), %rcx
imulq $0x30, -0x20(%rsp), %rdx
addq %rdx, %rcx
cmpq 0x10(%rcx), %rax
jae 0x4924fc
movq -0x10(%rsp), %rax
imulq $0x30, -0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq -0x10(%rsp), %rcx
imulq $0x30, -0x20(%rsp), %rdx
addq %rdx, %rcx
cmpq 0x18(%rcx), %rax
jae 0x4924fc
movb $0x1, -0x1(%rsp)
jmp 0x492501
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: overlapcost
static GtWord overlapcost(GtFragment *fragments,
                        GtUword i, GtUword j)
{
  GtUword overlaplength = 0;

  /* add overlap in first dimension */
  if (GETSTOREDSTARTPOINT(1, j) <= GETSTOREDENDPOINT(1, i))
    overlaplength += GETSTOREDENDPOINT(1, i) - GETSTOREDSTARTPOINT(1, j) + 1;

  /* add overlap in second dimension */
  if (GETSTOREDSTARTPOINT(2, j) <= GETSTOREDENDPOINT(2, i))
    overlaplength += GETSTOREDENDPOINT(2, i) - GETSTOREDSTARTPOINT(2, j) + 1;

  gt_log_log("overlap total  (#"GT_WU", #"GT_WU")="GT_WU"", i, j,
             overlaplength);

  return (GtWord) overlaplength;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq $0x0, 0x8(%rsp)
movq 0x20(%rsp), %rax
imulq $0x30, 0x10(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x20(%rsp), %rcx
imulq $0x30, 0x18(%rsp), %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
ja 0x492582
movq 0x20(%rsp), %rax
imulq $0x30, 0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imulq $0x30, 0x10(%rsp), %rdx
addq %rdx, %rcx
subq (%rcx), %rax
addq $0x1, %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
imulq $0x30, 0x10(%rsp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
imulq $0x30, 0x18(%rsp), %rdx
addq %rdx, %rcx
cmpq 0x18(%rcx), %rax
ja 0x4925da
movq 0x20(%rsp), %rax
imulq $0x30, 0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq 0x20(%rsp), %rcx
imulq $0x30, 0x10(%rsp), %rdx
addq %rdx, %rcx
subq 0x10(%rcx), %rax
addq $0x1, %rax
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rcx
leaq 0x120d98(%rip), %rdi    # 0x5b3388
movb $0x0, %al
callq 0xe7740
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: retrievemaximalscore
static bool retrievemaximalscore(GtWord *maxscore, GtChaininfo *chaininfo,
                                 GtUword num_of_fragments)
{
  GtUword i;
  bool maxscoredefined = false;

  *maxscore = 0;
  for (i=0; i< num_of_fragments; i++) {
    if (isrightmaximallocalchain(chaininfo, num_of_fragments,i)) {
      if (!maxscoredefined || *maxscore < chaininfo[i].score) {
        *maxscore = chaininfo[i].score;
        maxscoredefined = true;
      }
    }
  }
  return maxscoredefined;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movb $0x0, 0x7(%rsp)
movq 0x20(%rsp), %rax
movq $0x0, (%rax)
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x4926c2
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x4927d0
testb $0x1, %al
jne 0x492663
jmp 0x4926ad
testb $0x1, 0x7(%rsp)
je 0x492689
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
jge 0x4926ab
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movb $0x1, 0x7(%rsp)
jmp 0x4926ad
jmp 0x4926af
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x49263d
movb 0x7(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: retrievechainthreshold
static void retrievechainthreshold(GtChaininfo *chaininfo,
                                   GtFragment *fragments,
                                   GtUword num_of_fragments,
                                   GtUword max_gap_width,
                                   GtChain *chain, GtWord minscore,
                                   GtChainProc chainprocessor,
                                   void *cpinfo)
{
  GtUword i;

  for (i = 0; i < num_of_fragments; i++) {
    if (isrightmaximallocalchain(chaininfo, num_of_fragments,i)) {
      if (chaininfo[i].score >= minscore) {
        gt_chain_reset(chain);
        gt_chain_set_score(chain, chaininfo[i].score);
        retracepreviousinchain(chain, chaininfo, num_of_fragments, i);
        chainprocessor(chain, fragments, num_of_fragments, max_gap_width,
                       cpinfo);
      }
    }
  }
}

// Assembly:
subq $0x38, %rsp
movq 0x48(%rsp), %rax
movq 0x40(%rsp), %rax
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
movq $0x0, (%rsp)
movq (%rsp), %rax
cmpq 0x20(%rsp), %rax
jae 0x4927bc
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq (%rsp), %rdx
callq 0x4927d0
testb $0x1, %al
jne 0x49272c
jmp 0x4927a9
movq 0x30(%rsp), %rax
movq (%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
cmpq 0x8(%rsp), %rax
jl 0x4927a7
movq 0x10(%rsp), %rdi
callq 0x48b730
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rax
movq (%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
callq 0x48b7e0
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq (%rsp), %rcx
callq 0x492870
movq 0x40(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq 0x48(%rsp), %r8
callq *%rax
jmp 0x4927a9
jmp 0x4927ab
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x492704
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: isrightmaximallocalchain
static bool isrightmaximallocalchain(GtChaininfo *chaininfo,
                                     GtUword num_of_fragments,
                                     GtUword currentfrag)
{
  if (currentfrag == num_of_fragments - 1)
    return true;
  if (chaininfo[currentfrag+1].previousinchain != currentfrag)
    return true;
  if (chaininfo[currentfrag+1].score < chaininfo[currentfrag].score)
    return true;
  return false;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq -0x20(%rsp), %rax
movq -0x18(%rsp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x4927f9
movb $0x1, -0x1(%rsp)
jmp 0x49285b
movq -0x10(%rsp), %rax
movq -0x20(%rsp), %rcx
addq $0x1, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
cmpq -0x20(%rsp), %rax
je 0x49281f
movb $0x1, -0x1(%rsp)
jmp 0x49285b
movq -0x10(%rsp), %rax
movq -0x20(%rsp), %rcx
addq $0x1, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x10(%rsp), %rcx
movq -0x20(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
jge 0x492856
movb $0x1, -0x1(%rsp)
jmp 0x49285b
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/globalchaining.c
// Function: retracepreviousinchain
static void retracepreviousinchain(GtChain *chain, GtChaininfo *chaininfo,
                                   GtUword num_of_fragments,
                                   GtUword retracestart)
{
  GtUword fragnum, idx, lengthofchain;

  for (lengthofchain = 0, fragnum = retracestart;
       fragnum != UNDEFPREVIOUS; lengthofchain++) {
    gt_chain_add_fragnum(chain, UNDEFPREVIOUS); /* add dummy */
    fragnum = chaininfo[fragnum].previousinchain;
  }
  fragnum = retracestart;
  idx = lengthofchain;
  while (fragnum != UNDEFPREVIOUS) {
    gt_assert(idx != 0);
    idx--;
    gt_chain_set_fragnum(chain, idx, fragnum); /* set dummy */
    fragnum = chaininfo[fragnum].previousinchain;
  }
  gt_assert(idx == 0);
  gt_assert(gt_chain_size(chain) == lengthofchain);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq $0x0, (%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x20(%rsp), %rax
je 0x4928dc
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x48b850
movq 0x28(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x49289a
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq (%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x20(%rsp), %rax
je 0x492983
jmp 0x492901
cmpq $0x0, 0x8(%rsp)
jne 0x492941
movq 0x1a9690(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x836f9(%rip), %rsi     # 0x516013
leaq 0x120a87(%rip), %rdx    # 0x5b33a8
leaq 0x120a89(%rip), %rcx    # 0x5b33b1
leaq 0x1209e7(%rip), %r8     # 0x5b3316
movl $0x87, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x492943
movq 0x8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x48b8c0
movq 0x28(%rsp), %rax
movq 0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x4928ef
jmp 0x492985
cmpq $0x0, 0x8(%rsp)
je 0x4929c5
movq 0x1a960c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x83675(%rip), %rsi     # 0x516013
leaq 0xfb6d2(%rip), %rdx     # 0x58e077
leaq 0x120a05(%rip), %rcx    # 0x5b33b1
leaq 0x120963(%rip), %r8     # 0x5b3316
movl $0x8c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4929c7
jmp 0x4929c9
movq 0x30(%rsp), %rdi
callq 0x48ba70
cmpq (%rsp), %rax
je 0x492a11
movq 0x1a95c0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x83629(%rip), %rsi     # 0x516013
leaq 0x1209d7(%rip), %rdx    # 0x5b33c8
leaq 0x1209b9(%rip), %rcx    # 0x5b33b1
leaq 0x120917(%rip), %r8     # 0x5b3316
movl $0x8d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x492a13
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_new
GtIntset* gt_intset_16_new(GtUword maxelement, GtUword num_of_elems)
{
  GtIntset *intset;
  GtIntset16 *intset_16;
  GtIntsetMembers *members;
  GtUword idx;

  gt_assert(num_of_elems != 0);

  intset = gt_intset_create(gt_intset_16_class());
  intset_16 = gt_intset_16_cast(intset);
  members = intset->members;

  members->currentsectionnum = 0;
  members->maxelement = maxelement;
  members->nextfree = 0;
  members->num_of_elems = num_of_elems;
  members->previouselem = ULONG_MAX;
  members->refcount = 0;

  members->logsectionsize = GT_BITS_FOR_TYPE(uint16_t);
  members->numofsections = GT_ELEM2SECTION_M(maxelement) + 1;

  intset_16->elements =
    gt_malloc(sizeof (*intset_16->elements) * num_of_elems);

  members->sectionstart = gt_malloc(sizeof (*members->sectionstart) *
                                    (members->numofsections + 1));

  members->sectionstart[0] = 0;
  for (idx = (GtUword) 1; idx <= members->numofsections; idx++) {
    members->sectionstart[idx] = num_of_elems;
  }
  return intset;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x492a6e
movq 0x1a9563(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x835cc(%rip), %rsi     # 0x516013
leaq 0x120a2b(%rip), %rdx    # 0x5b3479
leaq 0x120a36(%rip), %rcx    # 0x5b348b
leaq 0x120a40(%rip), %r8     # 0x5b349c
movl $0x3b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x492a70
callq 0x492bd0
movq %rax, %rdi
callq 0x1967b0
movq %rax, 0x20(%rsp)
callq 0x492bd0
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1968d0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x30(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x28(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $-0x1, 0x38(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x10(%rsp), %rax
movq $0x10, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rcx
shrq %cl, %rax
movq %rax, %rcx
addq $0x1, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x28(%rsp), %rdi
shlq %rdi
leaq 0x120968(%rip), %rsi    # 0x5b349c
movl $0x4c, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq 0x30(%rax), %rdi
addq $0x1, %rdi
shlq $0x3, %rdi
leaq 0x12093a(%rip), %rsi    # 0x5b349c
movl $0x4f, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq $0x0, (%rax)
movq $0x1, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x30(%rcx), %rax
ja 0x492bc5
movq 0x28(%rsp), %rdx
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x492b8f
movq 0x20(%rsp), %rax
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_io
GtIntset *gt_intset_16_io(GtIntset *intset, FILE *fp, GtError *err)
{
  GtIntset16 *intset_16;
  if (intset == NULL) {
    intset = gt_intset_create(gt_intset_16_class());
    intset->members->sectionstart = NULL;
    intset->members->refcount = 0;
    intset_16 = gt_intset_16_cast(intset);
    intset_16->elements = NULL;
    intset = gt_intset_16_io_fp(intset, fp, err, gt_io_error_fread);
  }
  else {
    intset = gt_intset_16_io_fp(intset, fp, err, gt_io_error_fwrite);
  }
  return intset;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x493094
callq 0x492bd0
movq %rax, %rdi
callq 0x1967b0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq $0x0, (%rax)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq $0x0, 0x40(%rax)
callq 0x492bd0
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1968d0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq -0x2fb7a8(%rip), %rcx   # 0x1978e0
callq 0x492c70
movq %rax, 0x20(%rsp)
jmp 0x4930b4
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq -0x2fb85a(%rip), %rcx   # 0x197850
callq 0x492c70
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nop