LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/ranked_list.c
// Function: gt_ranked_list_new
GtRankedList* gt_ranked_list_new(GtUword maxsize,
                                 GtCompareWithData comparefunction,
                                 GtFree free_func,
                                 void *compareinfo)
{
  GtRankedList *ranked_list;
  gt_assert(maxsize > 0 && comparefunction != NULL);

  ranked_list = gt_malloc(sizeof (*ranked_list));
  ranked_list->currentsize = 0;
  ranked_list->maxsize = maxsize;
  ranked_list->free_func = free_func;
  ranked_list->comparefunction = comparefunction;
  ranked_list->compareinfo = compareinfo;
  /* ranked_list->root = gt_rbtree_new(comparefunction, free_func, NULL); */
  ranked_list->worstelement = NULL;
  ranked_list->list = gt_dlist_new_with_data(comparefunction, compareinfo);
  return ranked_list;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
jbe 0x1b6f68
cmpq $0x0, 0x18(%rsp)
jne 0x1b6fa0
movq 0x485031(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35f09a(%rip), %rsi    # 0x516013
leaq 0x3a9bea(%rip), %rdx    # 0x560b6a
leaq 0x3a9c0a(%rip), %rcx    # 0x560b91
leaq 0x3a9c16(%rip), %r8     # 0x560ba4
movl $0x33, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b6fa2
movl $0x38, %edi
leaq 0x3a9bf6(%rip), %rsi    # 0x560ba4
movl $0x35, %edx
callq 0xe80f0
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x0, (%rax)
movq 0x20(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xa5ef0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/ranked_list.c
// Function: gt_ranked_list_last
void* gt_ranked_list_last(const GtRankedList *ranked_list)
{
  /* return gt_rbtree_minimum_key(ranked_list->root); */
  GtDlistelem *elem = gt_dlist_first(ranked_list->list);
  if (elem != NULL)
    return gt_dlistelem_get_data(elem);
  else
    return NULL;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xa5f40
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x1b71d2
movq (%rsp), %rdi
callq 0xa60d0
movq %rax, 0x10(%rsp)
jmp 0x1b71db
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/ranked_list.c
// Function: gt_ranked_list_first
void* gt_ranked_list_first(const GtRankedList *ranked_list)
{
  /* return gt_rbtree_maximum_key(ranked_list->root); */
  GtDlistelem *elem = gt_dlist_last(ranked_list->list);
  if (elem != NULL)
    return gt_dlistelem_get_data(elem);
  else
    return NULL;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xa5f90
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x1b7222
movq (%rsp), %rdi
callq 0xa60d0
movq %rax, 0x10(%rsp)
jmp 0x1b722b
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/ranked_list.c
// Function: gt_ranked_list_iter_next
void *gt_ranked_list_iter_next(GtRankedListIter *ranked_list_iter)
{
  /* return gt_rbtree_iter_prev(ranked_list_iter); */
  void *data = NULL;
  if (ranked_list_iter->current_elem != NULL) {
    data = gt_dlistelem_get_data(ranked_list_iter->current_elem);
    ranked_list_iter->current_elem =
                          gt_dlistelem_previous(ranked_list_iter->current_elem);
  }
  return data;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1b7347
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0xa60d0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0xa7950
movq %rax, %rcx
movq 0x10(%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/ranked_list.c
// Function: gt_ranked_list_iter_prev
void *gt_ranked_list_iter_prev(GtRankedListIter *ranked_list_iter)
{
 /* return gt_rbtree_iter_next(ranked_list_iter); */
  void *data = NULL;
  if (ranked_list_iter->current_elem != NULL) {
    data =  gt_dlistelem_get_data(ranked_list_iter->current_elem);
    ranked_list_iter->current_elem =
                              gt_dlistelem_next(ranked_list_iter->current_elem);
  }
  return data;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1b73a7
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0xa60d0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0xa6120
movq %rax, %rcx
movq 0x10(%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/ranked_list.c
// Function: gt_ranked_list_delete
void gt_ranked_list_delete(GtRankedList *ranked_list)
{
  if (ranked_list == NULL) return;
  /* gt_rbtree_delete(ranked_list->root); */
  if (ranked_list->free_func != NULL) {
    GtDlistelem *dlistelem;
    for (dlistelem = gt_dlist_first(ranked_list->list); dlistelem != NULL;
         dlistelem = gt_dlistelem_next(dlistelem)) {
      void *data = gt_dlistelem_get_data(dlistelem);
      ranked_list->free_func(data);
    }
  }

  gt_dlist_delete(ranked_list->list);

  gt_free(ranked_list);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1b73d3
jmp 0x1b744e
movq 0x10(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1b742a
movq 0x10(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xa5f40
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x1b7428
movq 0x8(%rsp), %rdi
callq 0xa60d0
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rsp), %rdi
callq *%rax
movq 0x8(%rsp), %rdi
callq 0xa6120
movq %rax, 0x8(%rsp)
jmp 0x1b73f2
jmp 0x1b742a
movq 0x10(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xa6910
movq 0x10(%rsp), %rdi
leaq 0x3a9760(%rip), %rsi    # 0x560ba4
movl $0xc2, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/ranked_list.c
// Function: gt_ranked_list_cmp_numbers
static int gt_ranked_list_cmp_numbers(const void *n1, const void *n2,
                                      GT_UNUSED void *info)
{
  int l1 = *(int*) n1;
  int l2 = *(int*) n2;
  if (l1 == l2)
    return 0;
  else if (l1 < l2)
    return -1;
  else
    return 1;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq -0x10(%rsp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rsp)
movq -0x18(%rsp), %rax
movl (%rax), %eax
movl %eax, -0x28(%rsp)
movl -0x24(%rsp), %eax
cmpl -0x28(%rsp), %eax
jne 0x1b7df9
movl $0x0, -0x4(%rsp)
jmp 0x1b7e15
movl -0x24(%rsp), %eax
cmpl -0x28(%rsp), %eax
jge 0x1b7e0d
movl $0xffffffff, -0x4(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b7e15
movl $0x1, -0x4(%rsp)
movl -0x4(%rsp), %eax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/ranked_list.c
// Function: gt_ranked_list_cmp_teststructs
static int gt_ranked_list_cmp_teststructs(const void *n1, const void *n2,
                                          GT_UNUSED void *info)
{
  GtRankedListTestStruct *l1 = (GtRankedListTestStruct*) n1;
  GtRankedListTestStruct *l2 = (GtRankedListTestStruct*) n2;
  if (l1->score == l2->score)
    return 0;
  else if (l1->score < l2->score)
    return -1;
  else
    return 1;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq %rdx, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x18(%rsp), %rax
movq %rax, -0x30(%rsp)
movq -0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1b7e61
movl $0x0, -0x4(%rsp)
jmp 0x1b7e87
movq -0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x30(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x1b7e7f
movl $0xffffffff, -0x4(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b7e87
movl $0x1, -0x4(%rsp)
movl -0x4(%rsp), %eax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_new
GtRBTree *gt_rbtree_new(GtCompareWithData cmp, GtRBTreeFreeFunc free,
                        void *info)
{
  GtRBTree *rt = (GtRBTree *) gt_malloc(sizeof *rt);
  gt_assert(cmp);

  rt->root = NULL;
  rt->cmp = cmp;
  rt->free = free;
  rt->info = info;
  rt->size = 0;

  return rt;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movl $0x28, %edi
leaq 0x3a8e81(%rip), %rsi    # 0x560d30
movl $0x7e, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1b7efe
movq 0x4840d3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35e13c(%rip), %rsi    # 0x516013
leaq 0x3845c1(%rip), %rdx    # 0x53c49f
leaq 0x3a8e61(%rip), %rcx    # 0x560d46
leaq 0x3a8e44(%rip), %r8     # 0x560d30
movl $0x7f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b7f00
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_clear
void gt_rbtree_clear(GtRBTree *tree)
{
  GtRBTreeNode *it;
  GtRBTreeNode *save;
  if (tree != NULL) {
    it = tree->root;
    if (it != NULL) {

      /* Rotate away the left links so that we can treat this like the
         destruction of a linked list */
      while (it != NULL) {
        if (it->link[0] == NULL) {
          /* No left links, just kill the node and move on */
          save = it->link[1];
          if (tree->free != NULL)
            tree->free(it->key);
          gt_free(it);
        } else {
          /* Rotate away the left link and check again */
          save = it->link[0];
          it->link[0] = save->link[1];
          save->link[1] = it;
        }
        it = save;
      }
      tree->size = 0;
      tree->root = NULL;
    }
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1b8061
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x1b805f
jmp 0x1b7fb0
cmpq $0x0, 0x8(%rsp)
je 0x1b8046
movq 0x8(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1b800d
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1b7ff5
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rdi
callq *%rax
movq 0x8(%rsp), %rdi
leaq 0x3a8d2f(%rip), %rsi    # 0x560d30
movl $0xa0, %edx
callq 0xe88c0
jmp 0x1b8038
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0x1b7fb0
movq 0x10(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x10(%rsp), %rax
movq $0x0, (%rax)
jmp 0x1b8061
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_find_with_cmp
void *gt_rbtree_find_with_cmp(const GtRBTree *tree, void *key,
                              GtCompareWithData cmpfunc, void *info)
{
  gt_assert(tree);
  gt_assert(cmpfunc);
  gt_assert(key);
  return gt_rbtree_find_with_cmp_g(tree, key, cmpfunc, info);
}

// 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 0x1b80c8
movq 0x483f09(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35df72(%rip), %rsi    # 0x516013
leaq 0x403150(%rip), %rdx    # 0x5bb1f8
leaq 0x3a8ca5(%rip), %rcx    # 0x560d54
leaq 0x3a8c7a(%rip), %r8     # 0x560d30
movl $0xc4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b80ca
jmp 0x1b80cc
cmpq $0x0, 0x10(%rsp)
jne 0x1b810c
movq 0x483ec5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35df2e(%rip), %rsi    # 0x516013
leaq 0x3a8c80(%rip), %rdx    # 0x560d6c
leaq 0x3a8c61(%rip), %rcx    # 0x560d54
leaq 0x3a8c36(%rip), %r8     # 0x560d30
movl $0xc5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b810e
jmp 0x1b8110
cmpq $0x0, 0x18(%rsp)
jne 0x1b8150
movq 0x483e81(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35deea(%rip), %rsi    # 0x516013
leaq 0x38c1ae(%rip), %rdx    # 0x5442de
leaq 0x3a8c1d(%rip), %rcx    # 0x560d54
leaq 0x3a8bf2(%rip), %r8     # 0x560d30
movl $0xc6, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b8152
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rcx
callq 0x1b8170
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_find_with_cmp_g
static inline void *gt_rbtree_find_with_cmp_g(const GtRBTree *tree, void *key,
                                              GtCompareWithData cmpfunc,
                                              void *info)
{
  GtRBTreeNode *it = tree->root;

  while (it != NULL) {
    int cmp = cmpfunc(it->key, key, info);

    if (cmp == 0)
      break;

    it = it->link[(int) (cmp < 0)];
  }

  return it == NULL ? NULL : it->key;
}

// 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 (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1b81e6
movq 0x20(%rsp), %rax
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x28(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq *%rax
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x1b81c4
jmp 0x1b81e6
movq 0x10(%rsp), %rax
cmpl $0x0, 0xc(%rsp)
setl %cl
andb $0x1, %cl
movzbl %cl, %ecx
movslq %ecx, %rcx
movq 0x10(%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b8195
cmpq $0x0, 0x10(%rsp)
jne 0x1b81f6
xorl %eax, %eax
movq %rax, (%rsp)
jmp 0x1b8203
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_insert_with_cmp
void gt_rbtree_insert_with_cmp(GtRBTree *tree, void *key,
                               GtCompareWithData cmpfunc, void *info)
{
  GT_UNUSED bool nodecreated;
  gt_assert(tree);
  gt_assert(key);
  gt_assert(cmpfunc);
  gt_rbtree_insert_g(tree, key, &nodecreated, cmpfunc, info);
}

// 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 0x1b86d8
movq 0x4838f9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d962(%rip), %rsi    # 0x516013
leaq 0x402b40(%rip), %rdx    # 0x5bb1f8
leaq 0x3a86d5(%rip), %rcx    # 0x560d94
leaq 0x3a866a(%rip), %r8     # 0x560d30
movl $0x12b, %r9d            # imm = 0x12B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b86da
jmp 0x1b86dc
cmpq $0x0, 0x18(%rsp)
jne 0x1b871c
movq 0x4838b5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d91e(%rip), %rsi    # 0x516013
leaq 0x38bbe2(%rip), %rdx    # 0x5442de
leaq 0x3a8691(%rip), %rcx    # 0x560d94
leaq 0x3a8626(%rip), %r8     # 0x560d30
movl $0x12c, %r9d            # imm = 0x12C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b871e
jmp 0x1b8720
cmpq $0x0, 0x10(%rsp)
jne 0x1b8760
movq 0x483871(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d8da(%rip), %rsi    # 0x516013
leaq 0x3a862c(%rip), %rdx    # 0x560d6c
leaq 0x3a864d(%rip), %rcx    # 0x560d94
leaq 0x3a85e2(%rip), %r8     # 0x560d30
movl $0x12d, %r9d            # imm = 0x12D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b8762
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r8
leaq 0x7(%rsp), %rdx
callq 0x1b8390
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_search
void* gt_rbtree_search(GtRBTree *tree, void *key, bool *nodecreated)
{
  gt_assert(tree);
  gt_assert(key);
  gt_assert(nodecreated);
  gt_rbtree_insert_g(tree, key, nodecreated, tree->cmp, tree->info);
  return key;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1b87e2
movq 0x4837ef(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d858(%rip), %rsi    # 0x516013
leaq 0x402a36(%rip), %rdx    # 0x5bb1f8
leaq 0x3a85e5(%rip), %rcx    # 0x560dae
leaq 0x3a8560(%rip), %r8     # 0x560d30
movl $0x133, %r9d            # imm = 0x133
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b87e4
jmp 0x1b87e6
cmpq $0x0, 0x8(%rsp)
jne 0x1b8826
movq 0x4837ab(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d814(%rip), %rsi    # 0x516013
leaq 0x38bad8(%rip), %rdx    # 0x5442de
leaq 0x3a85a1(%rip), %rcx    # 0x560dae
leaq 0x3a851c(%rip), %r8     # 0x560d30
movl $0x134, %r9d            # imm = 0x134
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b8828
jmp 0x1b882a
cmpq $0x0, (%rsp)
jne 0x1b8869
movq 0x483768(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d7d1(%rip), %rsi    # 0x516013
leaq 0x39390c(%rip), %rdx    # 0x54c155
leaq 0x3a855e(%rip), %rcx    # 0x560dae
leaq 0x3a84d9(%rip), %r8     # 0x560d30
movl $0x135, %r9d            # imm = 0x135
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b886b
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq (%rsp), %rdx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rsp), %rax
movq 0x20(%rax), %r8
callq 0x1b8390
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_search_with_cmp
void* gt_rbtree_search_with_cmp(GtRBTree *tree, void *key,
                                GtCompareWithData cmpfunc, void *info,
                                bool *nodecreated)
{
  gt_assert(tree);
  gt_assert(nodecreated);
  gt_assert(cmpfunc);
  gt_assert(key);
  gt_rbtree_insert_g(tree, key, nodecreated, cmpfunc, info);
  return key;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq %r8, (%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1b88fc
movq 0x4836d5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d73e(%rip), %rsi    # 0x516013
leaq 0x40291c(%rip), %rdx    # 0x5bb1f8
leaq 0x3a84dc(%rip), %rcx    # 0x560dbf
leaq 0x3a8446(%rip), %r8     # 0x560d30
movl $0x13e, %r9d            # imm = 0x13E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b88fe
jmp 0x1b8900
cmpq $0x0, (%rsp)
jne 0x1b893f
movq 0x483692(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d6fb(%rip), %rsi    # 0x516013
leaq 0x393836(%rip), %rdx    # 0x54c155
leaq 0x3a8499(%rip), %rcx    # 0x560dbf
leaq 0x3a8403(%rip), %r8     # 0x560d30
movl $0x13f, %r9d            # imm = 0x13F
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b8941
jmp 0x1b8943
cmpq $0x0, 0x10(%rsp)
jne 0x1b8983
movq 0x48364e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d6b7(%rip), %rsi    # 0x516013
leaq 0x3a8409(%rip), %rdx    # 0x560d6c
leaq 0x3a8455(%rip), %rcx    # 0x560dbf
leaq 0x3a83bf(%rip), %r8     # 0x560d30
movl $0x140, %r9d            # imm = 0x140
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b8985
jmp 0x1b8987
cmpq $0x0, 0x18(%rsp)
jne 0x1b89c7
movq 0x48360a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35d673(%rip), %rsi    # 0x516013
leaq 0x38b937(%rip), %rdx    # 0x5442de
leaq 0x3a8411(%rip), %rcx    # 0x560dbf
leaq 0x3a837b(%rip), %r8     # 0x560d30
movl $0x141, %r9d            # imm = 0x141
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b89c9
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq (%rsp), %rdx
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r8
callq 0x1b8390
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_single
static inline GtRBTreeNode *gt_rbtree_single(GtRBTreeNode *root, int dir)
{
  GtRBTreeNode *save;
  save = root->link[(int) !dir];
  root->link[(int) !dir] = save->link[dir];
  save->link[dir] = root;

  root->red = 1;
  save->red = 0;

  return save;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movl %esi, -0xc(%rsp)
movq -0x8(%rsp), %rax
cmpl $0x0, -0xc(%rsp)
setne %cl
xorb $-0x1, %cl
andb $0x1, %cl
movzbl %cl, %ecx
movslq %ecx, %rcx
movq 0x10(%rax,%rcx,8), %rax
movq %rax, -0x18(%rsp)
movq -0x18(%rsp), %rax
movslq -0xc(%rsp), %rcx
movq 0x10(%rax,%rcx,8), %rdx
movq -0x8(%rsp), %rax
cmpl $0x0, -0xc(%rsp)
setne %cl
xorb $-0x1, %cl
andb $0x1, %cl
movzbl %cl, %ecx
movslq %ecx, %rcx
movq %rdx, 0x10(%rax,%rcx,8)
movq -0x8(%rsp), %rdx
movq -0x18(%rsp), %rax
movslq -0xc(%rsp), %rcx
movq %rdx, 0x10(%rax,%rcx,8)
movq -0x8(%rsp), %rax
movl $0x1, (%rax)
movq -0x18(%rsp), %rax
movl $0x0, (%rax)
movq -0x18(%rsp), %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_walk
int gt_rbtree_walk(const GtRBTree *tree, GtRBTreeAction action, void *actinfo)
{
  gt_assert(tree);
  gt_assert(action);
  if (tree->root != NULL) {
    if (gt_rbtree_recurse(tree->root, action, 0, actinfo) != 0) {
      return -1;
    }
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x1b9183
movq 0x482e4e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35ceb7(%rip), %rsi    # 0x516013
leaq 0x402095(%rip), %rdx    # 0x5bb1f8
leaq 0x3a7c8e(%rip), %rcx    # 0x560df8
leaq 0x3a7bbf(%rip), %r8     # 0x560d30
movl $0x20b, %r9d            # imm = 0x20B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9185
jmp 0x1b9187
cmpq $0x0, 0x10(%rsp)
jne 0x1b91c7
movq 0x482e0a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35ce73(%rip), %rsi    # 0x516013
leaq 0x392a75(%rip), %rdx    # 0x54bc1c
leaq 0x3a7c4a(%rip), %rcx    # 0x560df8
leaq 0x3a7b7b(%rip), %r8     # 0x560d30
movl $0x20c, %r9d            # imm = 0x20C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b91c9
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1b9200
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x1b9220
cmpl $0x0, %eax
je 0x1b91fe
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b9208
jmp 0x1b9200
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/rbtree.c
// Function: gt_rbtree_recurse
static int gt_rbtree_recurse(const GtRBTreeNode *root, GtRBTreeAction action,
                             GtUword level, void *actinfo)
{
  if (root->link[0] == NULL && root->link[1] == NULL) {
    if (action(root->key, GT_RBTREE_LEAF, level, actinfo) != 0) {
      return -1;
    }
  } else {
    if (action(root->key, GT_RBTREE_PREORDER, level, actinfo) != 0) {
      return -2;
    }
    if (root->link[0] != NULL) {
      if (gt_rbtree_recurse(root->link[0], action, level + 1, actinfo) != 0) {
        return -3;
      }
    }
    if (action(root->key, GT_RBTREE_POSTORDER, level, actinfo) != 0) {
      return -4;
    }
    if (root->link[1] != NULL) {
      if (gt_rbtree_recurse(root->link[1], action, level + 1, actinfo) != 0) {
        return -5;
      }
    }
    if (action(root->key, GT_RBTREE_ENDORDER, level, actinfo) != 0) {
      return -6;
    }
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
movq %rcx, (%rsp)
movq 0x18(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1b9284
movq 0x18(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1b9284
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
movl $0x3, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b927f
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b9392
jmp 0x1b938a
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
xorl %esi, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b92b1
movl $0xfffffffe, 0x24(%rsp) # imm = 0xFFFFFFFE
jmp 0x1b9392
movq 0x18(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1b92f1
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
addq $0x1, %rdx
movq (%rsp), %rcx
callq 0x1b9220
cmpl $0x0, %eax
je 0x1b92ef
movl $0xfffffffd, 0x24(%rsp) # imm = 0xFFFFFFFD
jmp 0x1b9392
jmp 0x1b92f1
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
movl $0x1, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b931e
movl $0xfffffffc, 0x24(%rsp) # imm = 0xFFFFFFFC
jmp 0x1b9392
movq 0x18(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1b935b
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
addq $0x1, %rdx
movq (%rsp), %rcx
callq 0x1b9220
cmpl $0x0, %eax
je 0x1b9359
movl $0xfffffffb, 0x24(%rsp) # imm = 0xFFFFFFFB
jmp 0x1b9392
jmp 0x1b935b
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
movl $0x2, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b9388
movl $0xfffffffa, 0x24(%rsp) # imm = 0xFFFFFFFA
jmp 0x1b9392
jmp 0x1b938a
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/rbtree.c
// Function: gt_rbtree_walk_stop
int gt_rbtree_walk_stop(const GtRBTree *tree, GtRBTreeAction action,
                        void *actinfo)
{
  gt_assert(tree);
  gt_assert(action);
  if (tree->root != NULL) {
    int retcode = gt_rbtree_recursewithstop(tree->root, action, 0, actinfo);
    RBT_CHECK_RETURN_CODE;
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x1b93f3
movq 0x482bde(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35cc47(%rip), %rsi    # 0x516013
leaq 0x401e25(%rip), %rdx    # 0x5bb1f8
leaq 0x3a7a2d(%rip), %rcx    # 0x560e07
leaq 0x3a794f(%rip), %r8     # 0x560d30
movl $0x218, %r9d            # imm = 0x218
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b93f5
jmp 0x1b93f7
cmpq $0x0, 0x10(%rsp)
jne 0x1b9437
movq 0x482b9a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35cc03(%rip), %rsi    # 0x516013
leaq 0x392805(%rip), %rdx    # 0x54bc1c
leaq 0x3a79e9(%rip), %rcx    # 0x560e07
leaq 0x3a790b(%rip), %r8     # 0x560d30
movl $0x219, %r9d            # imm = 0x219
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9439
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1b947d
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x1b9490
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jl 0x1b9471
cmpl $0x1, 0x4(%rsp)
jne 0x1b947b
movl 0x4(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x1b9485
jmp 0x1b947d
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_walk_reverse
int gt_rbtree_walk_reverse(const GtRBTree *tree, GtRBTreeAction action,
                           void *actinfo)
{
  gt_assert(tree);
  gt_assert(action);
  if (tree->root != NULL) {
    if (gt_rbtree_recursereverseorder(tree->root, action, 0, actinfo) != 0) {
      return -1;
    }
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x1b96c3
movq 0x48290e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c977(%rip), %rsi    # 0x516013
leaq 0x401b55(%rip), %rdx    # 0x5bb1f8
leaq 0x3a7771(%rip), %rcx    # 0x560e1b
leaq 0x3a767f(%rip), %r8     # 0x560d30
movl $0x224, %r9d            # imm = 0x224
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b96c5
jmp 0x1b96c7
cmpq $0x0, 0x10(%rsp)
jne 0x1b9707
movq 0x4828ca(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c933(%rip), %rsi    # 0x516013
leaq 0x392535(%rip), %rdx    # 0x54bc1c
leaq 0x3a772d(%rip), %rcx    # 0x560e1b
leaq 0x3a763b(%rip), %r8     # 0x560d30
movl $0x225, %r9d            # imm = 0x225
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9709
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1b9740
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x1b9760
cmpl $0x0, %eax
je 0x1b973e
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b9748
jmp 0x1b9740
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/rbtree.c
// Function: gt_rbtree_recursereverseorder
static int gt_rbtree_recursereverseorder(const GtRBTreeNode *root,
                                         GtRBTreeAction action,
                                         GtUword level, void *actinfo)
{
  if (root->link[0] == NULL && root->link[1] == NULL) {
    if (action(root->key, GT_RBTREE_LEAF, level, actinfo) != 0)
    {
      return -1;
    }
  } else {
    if (action(root->key, GT_RBTREE_PREORDER, level, actinfo) != 0) {
      return -2;
    }
    if (root->link[1] != NULL) {
      if (gt_rbtree_recursereverseorder(root->link[1], action, level + 1,
                                        actinfo) != 0) {
        return -3;
      }
    }
    if (action(root->key, GT_RBTREE_POSTORDER, level, actinfo) != 0) {
      return -4;
    }
    if (root->link[0] != NULL) {
      if (gt_rbtree_recursereverseorder(root->link[0], action, level + 1,
                                        actinfo) != 0) {
        return -5;
      }
    }
    if (action (root->key, GT_RBTREE_ENDORDER, level, actinfo) != 0) {
      return -6;
    }
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
movq %rcx, (%rsp)
movq 0x18(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1b97c4
movq 0x18(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1b97c4
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
movl $0x3, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b97bf
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b98d2
jmp 0x1b98ca
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
xorl %esi, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b97f1
movl $0xfffffffe, 0x24(%rsp) # imm = 0xFFFFFFFE
jmp 0x1b98d2
movq 0x18(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1b9831
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
addq $0x1, %rdx
movq (%rsp), %rcx
callq 0x1b9760
cmpl $0x0, %eax
je 0x1b982f
movl $0xfffffffd, 0x24(%rsp) # imm = 0xFFFFFFFD
jmp 0x1b98d2
jmp 0x1b9831
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
movl $0x1, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b985e
movl $0xfffffffc, 0x24(%rsp) # imm = 0xFFFFFFFC
jmp 0x1b98d2
movq 0x18(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1b989b
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
addq $0x1, %rdx
movq (%rsp), %rcx
callq 0x1b9760
cmpl $0x0, %eax
je 0x1b9899
movl $0xfffffffb, 0x24(%rsp) # imm = 0xFFFFFFFB
jmp 0x1b98d2
jmp 0x1b989b
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
movl $0x2, %esi
callq *%rax
cmpl $0x0, %eax
je 0x1b98c8
movl $0xfffffffa, 0x24(%rsp) # imm = 0xFFFFFFFA
jmp 0x1b98d2
jmp 0x1b98ca
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/rbtree.c
// Function: gt_rbtree_minimum_key_for_node
static inline void* gt_rbtree_minimum_key_for_node(const GtRBTreeNode *root)
{
  if (root == NULL) {
    return NULL;
  }
  while (root->link[0] != NULL) {
    root = root->link[0];
  }
  return root->key;
}

// Assembly:
movq %rdi, -0x10(%rsp)
cmpq $0x0, -0x10(%rsp)
jne 0x1b9958
movq $0x0, -0x8(%rsp)
jmp 0x1b9984
jmp 0x1b995a
movq -0x10(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x1b9976
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rsp)
jmp 0x1b995a
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_maximum_key_for_node
static inline void* gt_rbtree_maximum_key_for_node(const GtRBTreeNode *root)
{
  if (root == NULL) {
    return NULL;
  }
  while (root->link[1] != NULL) {
    root = root->link[1];
  }
  return root->key;
}

// Assembly:
movq %rdi, -0x10(%rsp)
cmpq $0x0, -0x10(%rsp)
jne 0x1b9a08
movq $0x0, -0x8(%rsp)
jmp 0x1b9a34
jmp 0x1b9a0a
movq -0x10(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1b9a26
movq -0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rsp)
jmp 0x1b9a0a
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_root_key
void* gt_rbtree_root_key(const GtRBTree *tree)
{
  gt_assert(tree);
  if (tree->size == 0 || tree->root == NULL)
    return NULL;
  else
    return tree->root->key;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1b9a89
movq 0x482548(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c5b1(%rip), %rsi    # 0x516013
leaq 0x40178f(%rip), %rdx    # 0x5bb1f8
leaq 0x3a73ee(%rip), %rcx    # 0x560e5e
leaq 0x3a72b9(%rip), %r8     # 0x560d30
movl $0x252, %r9d            # imm = 0x252
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9a8b
movq 0x8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1b9aa2
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1b9aad
movq $0x0, 0x10(%rsp)
jmp 0x1b9abe
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_previous_key
void* gt_rbtree_previous_key(const GtRBTree *tree, void *key,
                             GtCompareWithData cmpfun, void *cmpinfo)
{
  int cmp;
  const GtRBTreeNode *current,
                     *found = NULL;
  gt_assert(tree);
  gt_assert(key);
  gt_assert(cmpfun);
  current = tree->root;

  while (current != NULL) {
    cmp = cmpfun(key, current->key, cmpinfo);
    if (cmp == 0) {
      if (current->link[0] == NULL) {
        if (found == NULL) {
          return NULL;
        }
        return found->key;
      }
      return gt_rbtree_maximum_key_for_node(current->link[0]);
    } else {
      if (cmp < 0) {
        current = current->link[0];
      } else {
        found = current;
        current = current->link[1];
      }
    }
  }
  if (found == NULL) {
    return NULL;
  }
  return found->key;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq $0x0, 0x8(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x1b9b31
movq 0x4824a0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c509(%rip), %rsi    # 0x516013
leaq 0x4016e7(%rip), %rdx    # 0x5bb1f8
leaq 0x3a7359(%rip), %rcx    # 0x560e71
leaq 0x3a7211(%rip), %r8     # 0x560d30
movl $0x25f, %r9d            # imm = 0x25F
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9b33
jmp 0x1b9b35
cmpq $0x0, 0x30(%rsp)
jne 0x1b9b75
movq 0x48245c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c4c5(%rip), %rsi    # 0x516013
leaq 0x38a789(%rip), %rdx    # 0x5442de
leaq 0x3a7315(%rip), %rcx    # 0x560e71
leaq 0x3a71cd(%rip), %r8     # 0x560d30
movl $0x260, %r9d            # imm = 0x260
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9b77
jmp 0x1b9b79
cmpq $0x0, 0x28(%rsp)
jne 0x1b9bb9
movq 0x482418(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c481(%rip), %rsi    # 0x516013
leaq 0x3a72ef(%rip), %rdx    # 0x560e88
leaq 0x3a72d1(%rip), %rcx    # 0x560e71
leaq 0x3a7189(%rip), %r8     # 0x560d30
movl $0x261, %r9d            # imm = 0x261
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9bbb
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1b9c73
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
movq 0x20(%rsp), %rdx
callq *%rax
movl %eax, 0x1c(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x1b9c3d
movq 0x10(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1b9c28
cmpq $0x0, 0x8(%rsp)
jne 0x1b9c18
movq $0x0, 0x40(%rsp)
jmp 0x1b9c94
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x1b9c94
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x1b99f0
movq %rax, 0x40(%rsp)
jmp 0x1b9c94
cmpl $0x0, 0x1c(%rsp)
jge 0x1b9c54
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b9c6c
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b9c6e
jmp 0x1b9bc8
cmpq $0x0, 0x8(%rsp)
jne 0x1b9c86
movq $0x0, 0x40(%rsp)
jmp 0x1b9c94
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_previous_equal_key
void* gt_rbtree_previous_equal_key(const GtRBTree *tree, void *key,
                                   GtCompareWithData cmpfun, void *cmpinfo)
{
  int cmp;
  const GtRBTreeNode *current,
                     *found = NULL;
  gt_assert(tree);
  gt_assert(key);
  gt_assert(cmpfun);
  current = tree->root;

  while (current != NULL) {
    cmp = cmpfun(key, current->key, cmpinfo);
    if (cmp == 0) {
      return current->key;
    } else {
      if (cmp < 0) {
        current = current->link[0];
      } else {
        found = current;
        current = current->link[1];
      }
    }
  }
  if (found == NULL) {
    return NULL;
  }
  return found->key;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq $0x0, 0x8(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x1b9d01
movq 0x4822d0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c339(%rip), %rsi    # 0x516013
leaq 0x401517(%rip), %rdx    # 0x5bb1f8
leaq 0x3a71a7(%rip), %rcx    # 0x560e8f
leaq 0x3a7041(%rip), %r8     # 0x560d30
movl $0x283, %r9d            # imm = 0x283
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9d03
jmp 0x1b9d05
cmpq $0x0, 0x30(%rsp)
jne 0x1b9d45
movq 0x48228c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c2f5(%rip), %rsi    # 0x516013
leaq 0x38a5b9(%rip), %rdx    # 0x5442de
leaq 0x3a7163(%rip), %rcx    # 0x560e8f
leaq 0x3a6ffd(%rip), %r8     # 0x560d30
movl $0x284, %r9d            # imm = 0x284
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9d47
jmp 0x1b9d49
cmpq $0x0, 0x28(%rsp)
jne 0x1b9d89
movq 0x482248(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c2b1(%rip), %rsi    # 0x516013
leaq 0x3a711f(%rip), %rdx    # 0x560e88
leaq 0x3a711f(%rip), %rcx    # 0x560e8f
leaq 0x3a6fb9(%rip), %r8     # 0x560d30
movl $0x285, %r9d            # imm = 0x285
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9d8b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1b9e08
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
movq 0x20(%rsp), %rdx
callq *%rax
movl %eax, 0x1c(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x1b9dd5
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x1b9e29
cmpl $0x0, 0x1c(%rsp)
jge 0x1b9dec
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b9e04
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b9e06
jmp 0x1b9d98
cmpq $0x0, 0x8(%rsp)
jne 0x1b9e1b
movq $0x0, 0x40(%rsp)
jmp 0x1b9e29
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_next_key
void* gt_rbtree_next_key(const GtRBTree *tree, void *key,
                         GtCompareWithData cmpfun, void *cmpinfo)
{
  int cmp;
  const GtRBTreeNode *current,
                     *found = NULL;
  gt_assert(tree);
  gt_assert(key);
  gt_assert(cmpfun);
  current = tree->root;

  while (current != NULL) {
    cmp = cmpfun(key, current->key, cmpinfo);
    if (cmp == 0) {
      if (current->link[1] == NULL) {
        if (found == NULL) {
          return NULL;
        }
        return found->key;
      }
      return gt_rbtree_minimum_key_for_node(current->link[1]);
    } else {
      if (cmp < 0) {
        found = current;
        current = current->link[0];
      } else {
        current = current->link[1];
      }
    }
  }
  if (found == NULL) {
    return NULL;
  }
  return found->key;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq $0x0, 0x8(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x1b9ea1
movq 0x482130(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c199(%rip), %rsi    # 0x516013
leaq 0x401377(%rip), %rdx    # 0x5bb1f8
leaq 0x3a7024(%rip), %rcx    # 0x560eac
leaq 0x3a6ea1(%rip), %r8     # 0x560d30
movl $0x2a1, %r9d            # imm = 0x2A1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9ea3
jmp 0x1b9ea5
cmpq $0x0, 0x30(%rsp)
jne 0x1b9ee5
movq 0x4820ec(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c155(%rip), %rsi    # 0x516013
leaq 0x38a419(%rip), %rdx    # 0x5442de
leaq 0x3a6fe0(%rip), %rcx    # 0x560eac
leaq 0x3a6e5d(%rip), %r8     # 0x560d30
movl $0x2a2, %r9d            # imm = 0x2A2
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9ee7
jmp 0x1b9ee9
cmpq $0x0, 0x28(%rsp)
jne 0x1b9f29
movq 0x4820a8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35c111(%rip), %rsi    # 0x516013
leaq 0x3a6f7f(%rip), %rdx    # 0x560e88
leaq 0x3a6f9c(%rip), %rcx    # 0x560eac
leaq 0x3a6e19(%rip), %r8     # 0x560d30
movl $0x2a3, %r9d            # imm = 0x2A3
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b9f2b
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1b9fe3
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rsi
movq 0x20(%rsp), %rdx
callq *%rax
movl %eax, 0x1c(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x1b9fad
movq 0x10(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1b9f98
cmpq $0x0, 0x8(%rsp)
jne 0x1b9f88
movq $0x0, 0x40(%rsp)
jmp 0x1ba004
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x1ba004
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1b9940
movq %rax, 0x40(%rsp)
jmp 0x1ba004
cmpl $0x0, 0x1c(%rsp)
jge 0x1b9fce
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b9fdc
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1b9fde
jmp 0x1b9f38
cmpq $0x0, 0x8(%rsp)
jne 0x1b9ff6
movq $0x0, 0x40(%rsp)
jmp 0x1ba004
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_iter_new_from_first
GtRBTreeIter* gt_rbtree_iter_new_from_first(const GtRBTree *tree)
{
  GtRBTreeIter *trav = gt_malloc(sizeof (GtRBTreeIter));
  gt_assert(tree);
  (void) start(trav, tree, 0);
  return trav;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x218, %edi            # imm = 0x218
leaq 0x3a6b6b(%rip), %rsi    # 0x560d30
movl $0x30f, %edx            # imm = 0x30F
callq 0xe80f0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1ba214
movq 0x481dbd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35be26(%rip), %rsi    # 0x516013
leaq 0x401004(%rip), %rdx    # 0x5bb1f8
leaq 0x3a6cdd(%rip), %rcx    # 0x560ed8
leaq 0x3a6b2e(%rip), %r8     # 0x560d30
movl $0x310, %r9d            # imm = 0x310
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ba216
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
xorl %edx, %edx
callq 0x1ba240
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: start
static inline void *start(GtRBTreeIter *trav, const GtRBTree *tree, int dir)
{
  trav->tree = tree;
  trav->it = tree->root;
  trav->top = 0;

  /* Save the path for later traversal */
  if (trav->it != NULL)
    {
      while (trav->it->link[dir] != NULL)
        {
          trav->path[trav->top++] = trav->it;
          trav->it = trav->it->link[dir];
        }
    }

  return trav->it == NULL ? NULL : trav->it->key;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movl %edx, -0x14(%rsp)
movq -0x10(%rsp), %rcx
movq -0x8(%rsp), %rax
movq %rcx, (%rax)
movq -0x10(%rsp), %rax
movq (%rax), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rsp), %rax
movq $0x0, 0x210(%rax)
movq -0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1ba2ed
jmp 0x1ba28a
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x14(%rsp), %rcx
cmpq $0x0, 0x10(%rax,%rcx,8)
je 0x1ba2eb
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rdx
movq -0x8(%rsp), %rax
movq -0x8(%rsp), %rsi
movq 0x210(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x210(%rsi)
movq %rdx, 0x10(%rax,%rcx,8)
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x14(%rsp), %rcx
movq 0x10(%rax,%rcx,8), %rcx
movq -0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1ba28a
jmp 0x1ba2ed
movq -0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1ba302
xorl %eax, %eax
movq %rax, -0x20(%rsp)
jmp 0x1ba314
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x20(%rsp), %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/rbtree.c
// Function: gt_rbtree_iter_new_from_last
GtRBTreeIter* gt_rbtree_iter_new_from_last(const GtRBTree *tree)
{
  GtRBTreeIter *trav = gt_malloc(sizeof (GtRBTreeIter));
  gt_assert(tree);
  (void) start(trav, tree, 1);
  return trav;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x218, %edi            # imm = 0x218
leaq 0x3a69fb(%rip), %rsi    # 0x560d30
movl $0x317, %edx            # imm = 0x317
callq 0xe80f0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1ba384
movq 0x481c4d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x35bcb6(%rip), %rsi    # 0x516013
leaq 0x400e94(%rip), %rdx    # 0x5bb1f8
leaq 0x3a6b8b(%rip), %rcx    # 0x560ef6
leaq 0x3a69be(%rip), %r8     # 0x560d30
movl $0x318, %r9d            # imm = 0x318
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ba386
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl $0x1, %edx
callq 0x1ba240
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)