LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uniq_stream.c
// Function: nodes_are_equal_feature_trees
static bool nodes_are_equal_feature_trees(GtGenomeNode *first_node,
                                          GtGenomeNode *second_node)
{
  bool equal = false;
  GtFeatureNodeIterator *fni_a, *fni_b;
  GtFeatureNode *fn_a, *fn_b;
  fn_a = gt_feature_node_try_cast(first_node);
  fn_b = gt_feature_node_try_cast(second_node);
  if (fn_a && fn_b) {
    fni_a = gt_feature_node_iterator_new((GtFeatureNode*) first_node);
    fni_b = gt_feature_node_iterator_new((GtFeatureNode*) second_node);
    for (fn_a = gt_feature_node_iterator_next(fni_a),
         fn_b = gt_feature_node_iterator_next(fni_b);
         fn_a && fn_b;
         fn_a = gt_feature_node_iterator_next(fni_a),
         fn_b = gt_feature_node_iterator_next(fni_b)) {
      if (!fn_b || !gt_feature_node_is_similar(fn_a, fn_b))
        break;
    }
    fn_b = (GtFeatureNode*) gt_feature_node_iterator_next(fni_b);
    if (!fn_a && !fn_b)
      equal = true;
    gt_feature_node_iterator_delete(fni_a);
    gt_feature_node_iterator_delete(fni_b);
    return equal;
  }
  return false;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movb $0x0, 0x2f(%rsp)
movq 0x38(%rsp), %rdi
callq 0x170450
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
callq 0x170450
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1f69cd
cmpq $0x0, 0x8(%rsp)
je 0x1f69cd
movq 0x38(%rsp), %rdi
callq 0x170b00
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rdi
callq 0x170b00
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
callq 0x170e30
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
callq 0x170e30
movq %rax, 0x8(%rsp)
xorl %eax, %eax
cmpq $0x0, 0x10(%rsp)
movb %al, 0x7(%rsp)
je 0x1f6940
cmpq $0x0, 0x8(%rsp)
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x1f694a
jmp 0x1f6989
cmpq $0x0, 0x8(%rsp)
je 0x1f6965
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x16f430
testb $0x1, %al
jne 0x1f6967
jmp 0x1f6989
jmp 0x1f6969
movq 0x20(%rsp), %rdi
callq 0x170e30
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
callq 0x170e30
movq %rax, 0x8(%rsp)
jmp 0x1f6925
movq 0x18(%rsp), %rdi
callq 0x170e30
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1f69ad
cmpq $0x0, 0x8(%rsp)
jne 0x1f69ad
movb $0x1, 0x2f(%rsp)
movq 0x20(%rsp), %rdi
callq 0x170f50
movq 0x18(%rsp), %rdi
callq 0x170f50
movb 0x2f(%rsp), %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x1f69d2
movb $0x0, 0x47(%rsp)
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree.c
// Function: gt_wtree_create
GtWtree *gt_wtree_create(const GtWtreeClass *wtree_c)
{
  GtWtree *wtree;
  gt_assert(wtree_c && wtree_c->size);
  wtree = gt_calloc((size_t) 1, wtree_c->size);
  wtree->c_class = wtree_c;
  wtree->members = gt_calloc((size_t) 1, sizeof (GtWtreeMembers));
  return wtree;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1f6c6d
movq 0x10(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x1f6ca5
movq 0x44532c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f395(%rip), %rsi    # 0x516013
leaq 0x3785cf(%rip), %rdx    # 0x56f254
leaq 0x3785e1(%rip), %rcx    # 0x56f26d
leaq 0x3785ea(%rip), %r8     # 0x56f27d
movl $0x1c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f6ca7
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rsi
movl $0x1, %edi
leaq 0x3785c1(%rip), %rdx    # 0x56f27d
movl $0x1d, %ecx
callq 0xe83c0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movl $0x1, %edi
movl $0x18, %esi
leaq 0x378594(%rip), %rdx    # 0x56f27d
movl $0x1f, %ecx
callq 0xe83c0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree.c
// Function: gt_wtree_access
GtWtreeSymbol gt_wtree_access(GtWtree *wtree,
                              GtUword pos)
{
  gt_assert(wtree != NULL);
  gt_assert(wtree->c_class != NULL);
  if (wtree->c_class->access_func != NULL)
    return wtree->c_class->access_func(wtree, pos);
  return (GtWtreeSymbol) ULONG_MAX;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1f6e3d
movq 0x445194(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f1fd(%rip), %rsi    # 0x516013
leaq 0x3784be(%rip), %rdx    # 0x56f2db
leaq 0x3784c5(%rip), %rcx    # 0x56f2e9
leaq 0x378452(%rip), %r8     # 0x56f27d
movl $0x35, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f6e3f
jmp 0x1f6e41
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1f6e84
movq 0x44514d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f1b6(%rip), %rsi    # 0x516013
leaq 0x378495(%rip), %rdx    # 0x56f2f9
leaq 0x37847e(%rip), %rcx    # 0x56f2e9
leaq 0x37840b(%rip), %r8     # 0x56f27d
movl $0x36, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f6e86
movq 0x8(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, (%rax)
je 0x1f6eb1
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq *%rax
movq %rax, 0x10(%rsp)
jmp 0x1f6eba
movq $-0x1, 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/wtree.c
// Function: gt_wtree_rank
GtUword gt_wtree_rank(GtWtree *wtree,
                      GtUword pos,
                      GtWtreeSymbol symbol)
{
  gt_assert(wtree != NULL);
  gt_assert(wtree->c_class != NULL);
  if (wtree->c_class->rank_func != NULL)
    return wtree->c_class->rank_func(wtree, pos, symbol);
  return ULONG_MAX;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x1f6f23
movq 0x4450ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f117(%rip), %rsi    # 0x516013
leaq 0x3783d8(%rip), %rdx    # 0x56f2db
leaq 0x378406(%rip), %rcx    # 0x56f310
leaq 0x37836c(%rip), %r8     # 0x56f27d
movl $0x40, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f6f25
jmp 0x1f6f27
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1f6f6a
movq 0x445067(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f0d0(%rip), %rsi    # 0x516013
leaq 0x3783af(%rip), %rdx    # 0x56f2f9
leaq 0x3783bf(%rip), %rcx    # 0x56f310
leaq 0x378325(%rip), %r8     # 0x56f27d
movl $0x41, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f6f6c
movq 0x18(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x10(%rax)
je 0x1f6f9f
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq *%rax
movq %rax, 0x20(%rsp)
jmp 0x1f6fa8
movq $-0x1, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree.c
// Function: gt_wtree_select
GtUword gt_wtree_select(GtWtree *wtree,
                        GtUword i,
                        GtWtreeSymbol symbol)
{
  gt_assert(wtree != NULL);
  gt_assert(wtree->c_class != NULL);
  if (wtree->c_class->select_func != NULL)
    return wtree->c_class->select_func(wtree, i, symbol);
  return ULONG_MAX;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x1f7013
movq 0x444fbe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f027(%rip), %rsi    # 0x516013
leaq 0x3782e8(%rip), %rdx    # 0x56f2db
leaq 0x378324(%rip), %rcx    # 0x56f31e
leaq 0x37827c(%rip), %r8     # 0x56f27d
movl $0x4b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f7015
jmp 0x1f7017
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1f705a
movq 0x444f77(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31efe0(%rip), %rsi    # 0x516013
leaq 0x3782bf(%rip), %rdx    # 0x56f2f9
leaq 0x3782dd(%rip), %rcx    # 0x56f31e
leaq 0x378235(%rip), %r8     # 0x56f27d
movl $0x4c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f705c
movq 0x18(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x1f708f
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq *%rax
movq %rax, 0x20(%rsp)
jmp 0x1f7098
movq $-0x1, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree.c
// Function: gt_wtree_class_new
const GtWtreeClass* gt_wtree_class_new(size_t size,
                                       GtWtreeAccessFunc access_func,
                                       GtWtreeRankFunc rank_func,
                                       GtWtreeSelectFunc select_func,
                                       GtWtreeDeleteFunc delete_func)
{
  GtWtreeClass *wtree_c = gt_malloc(sizeof (*wtree_c));
  wtree_c->size = size;
  wtree_c->access_func = access_func;
  wtree_c->rank_func = rank_func;
  wtree_c->select_func = select_func;
  wtree_c-> delete_func = delete_func;
  return wtree_c;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movl $0x28, %edi
leaq 0x378164(%rip), %rsi    # 0x56f27d
movl $0x62, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x28(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree.c
// Function: gt_wtree_delete
void gt_wtree_delete(GtWtree *wtree)
{
  if (wtree != NULL) {
    if (wtree->members->refcount) {
      wtree->members->refcount--;
      return;
    }
    gt_assert(wtree->c_class);
    if (wtree->c_class->delete_func != NULL)
      wtree->c_class->delete_func(wtree);
    gt_free(wtree->members);
    gt_free(wtree);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x1f724b
movq (%rsp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, 0x10(%rax)
je 0x1f71b8
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x10(%rax)
jmp 0x1f724b
jmp 0x1f71ba
movq (%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1f71fc
movq 0x444dd5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31ee3e(%rip), %rsi    # 0x516013
leaq 0x378152(%rip), %rdx    # 0x56f32e
leaq 0x37815a(%rip), %rcx    # 0x56f33d
leaq 0x378093(%rip), %r8     # 0x56f27d
movl $0x72, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f71fe
movq (%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0x1f721d
movq (%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rdi
callq *%rax
movq (%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x378051(%rip), %rsi    # 0x56f27d
movl $0x75, %edx
callq 0xe88c0
movq (%rsp), %rdi
leaq 0x37803c(%rip), %rsi    # 0x56f27d
movl $0x76, %edx
callq 0xe88c0
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_unmap_decoded
char gt_wtree_encseq_unmap_decoded(GtWtree *wtree,
                                   GtWtreeSymbol symbol)
{
  GtWtreeEncseq *wtree_encseq;
  GtUchar encseq_sym = (GtUchar) symbol;
  gt_assert((symbol & ((GtUchar) 0)) == 0);
  gt_assert(wtree != NULL);
  wtree_encseq = gt_wtree_encseq_cast(wtree);
  switch (wtree_encseq->alpha_size - encseq_sym) {
    case 1:
      return (char) GT_SEPARATOR;
    case 2:
      return gt_alphabet_decode(wtree_encseq->alpha, (GtUchar) GT_WILDCARD);
    case 3:
      return (char) GT_UNDEFCHAR;
    default:
      return gt_alphabet_decode(wtree_encseq->alpha, encseq_sym);
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movb %al, 0x7(%rsp)
movq 0x10(%rsp), %rax
andq $0x0, %rax
cmpq $0x0, %rax
je 0x1f72ae
movq 0x444d23(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31ed8c(%rip), %rsi    # 0x516013
leaq 0x3780bf(%rip), %rdx    # 0x56f34d
leaq 0x3780d6(%rip), %rcx    # 0x56f36b
leaq 0x3780ed(%rip), %r8     # 0x56f389
movl $0x14a, %r9d            # imm = 0x14A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f72b0
jmp 0x1f72b2
cmpq $0x0, 0x18(%rsp)
jne 0x1f72f2
movq 0x444cdf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31ed48(%rip), %rsi    # 0x516013
leaq 0x378009(%rip), %rdx    # 0x56f2db
leaq 0x378092(%rip), %rcx    # 0x56f36b
leaq 0x3780a9(%rip), %r8     # 0x56f389
movl $0x14b, %r9d            # imm = 0x14B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f72f4
callq 0x1f7380
movq %rax, %rdi
movq 0x18(%rsp), %rsi
callq 0x1f6d70
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movl 0x58(%rax), %eax
movzbl 0x7(%rsp), %ecx
subl %ecx, %eax
movl %eax, (%rsp)
subl $0x1, %eax
je 0x1f7338
jmp 0x1f7324
movl (%rsp), %eax
subl $0x2, %eax
je 0x1f733f
jmp 0x1f732e
movl (%rsp), %eax
subl $0x3, %eax
je 0x1f7358
jmp 0x1f735f
movb $-0x1, 0x27(%rsp)
jmp 0x1f7376
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
movl $0xfe, %esi
callq 0x7f7b0
movb %al, 0x27(%rsp)
jmp 0x1f7376
movb $-0x3, 0x27(%rsp)
jmp 0x1f7376
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
movzbl 0x7(%rsp), %esi
callq 0x7f7b0
movb %al, 0x27(%rsp)
movb 0x27(%rsp), %al
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_class
const GtWtreeClass* gt_wtree_encseq_class(void)
{
  static const GtWtreeClass *this_c = NULL;
  if (this_c == NULL) {
    this_c =
      gt_wtree_class_new(sizeof (GtWtreeEncseq), gt_wtree_encseq_access,
                         gt_wtree_encseq_rank, gt_wtree_encseq_select,
                         gt_wtree_encseq_delete);
  }
  return this_c;
}

// Assembly:
pushq %rax
cmpq $0x0, 0x44bbd7(%rip)    # 0x642f60
jne 0x1f73b8
movl $0x60, %edi
leaq 0x39(%rip), %rsi        # 0x1f73d0
leaq 0x142(%rip), %rdx       # 0x1f74e0
leaq 0x25b(%rip), %rcx       # 0x1f7600
leaq 0x3b4(%rip), %r8        # 0x1f7760
callq 0x1f70f0
movq %rax, 0x44bba8(%rip)    # 0x642f60
movq 0x44bba1(%rip), %rax    # 0x642f60
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_access
static GtWtreeSymbol gt_wtree_encseq_access(GtWtree *wtree,
                                            GtUword pos)
{
  unsigned int alpha_start = 0,
               alpha_end;
  GtUword node_start = 0,
          node_size;
  GtWtreeEncseq *we;
  gt_assert(wtree != NULL);

  we = gt_wtree_encseq_cast(wtree);
  gt_assert(pos < wtree->members->length);

  alpha_end = we->alpha_size - 1;
  node_size = wtree->members->length;

  return gt_wtree_encseq_access_rec(we, pos, node_start, node_size, alpha_start,
                                    alpha_end);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl $0x0, 0x24(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x1f742f
movq 0x444ba2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31ec0b(%rip), %rsi    # 0x516013
leaq 0x377ecc(%rip), %rdx    # 0x56f2db
leaq 0x377f8f(%rip), %rcx    # 0x56f3a5
leaq 0x377f6c(%rip), %r8     # 0x56f389
movl $0x7a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f7431
callq 0x1f7380
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x1f6d70
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq 0x30(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq (%rcx), %rax
jb 0x1f7493
movq 0x444b3e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31eba7(%rip), %rsi    # 0x516013
leaq 0x377f49(%rip), %rdx    # 0x56f3bc
leaq 0x377f2b(%rip), %rcx    # 0x56f3a5
leaq 0x377f08(%rip), %r8     # 0x56f389
movl $0x7d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f7495
movq 0x8(%rsp), %rax
movl 0x58(%rax), %eax
subl $0x1, %eax
movl %eax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rcx
movl 0x24(%rsp), %r8d
movl 0x20(%rsp), %r9d
callq 0x1f7d10
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_rank
static GtUword gt_wtree_encseq_rank(GtWtree *wtree,
                                    GtUword pos,
                                    GtWtreeSymbol symbol)
{
  unsigned int alpha_start = 0,
               alpha_end;
  GtUword node_start = 0,
          node_size;
  GtWtreeEncseq *we;
  gt_assert(wtree != NULL);

  we = gt_wtree_encseq_cast(wtree);
  gt_assert(pos < wtree->members->length);

  alpha_end = we->alpha_size - 1;
  node_size = wtree->members->length;

  return gt_wtree_encseq_rank_rec(we, pos, symbol, node_start, node_size,
                                  alpha_start, alpha_end);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movl $0x0, 0x2c(%rsp)
movq $0x0, 0x20(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x1f7544
movq 0x444a8d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31eaf6(%rip), %rsi    # 0x516013
leaq 0x377db7(%rip), %rdx    # 0x56f2db
leaq 0x377ed9(%rip), %rcx    # 0x56f404
leaq 0x377e57(%rip), %r8     # 0x56f389
movl $0xcd, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f7546
callq 0x1f7380
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x1f6d70
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq (%rcx), %rax
jb 0x1f75a8
movq 0x444a29(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31ea92(%rip), %rsi    # 0x516013
leaq 0x377e34(%rip), %rdx    # 0x56f3bc
leaq 0x377e75(%rip), %rcx    # 0x56f404
leaq 0x377df3(%rip), %r8     # 0x56f389
movl $0xd0, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f75aa
movq 0x10(%rsp), %rax
movl 0x58(%rax), %eax
subl $0x1, %eax
movl %eax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %r8
movl 0x2c(%rsp), %r9d
movl 0x28(%rsp), %eax
movl %eax, (%rsp)
callq 0x1f7f70
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_select
static GtUword gt_wtree_encseq_select(GtWtree *wtree,
                                      GtUword i,
                                      GtWtreeSymbol symbol)
{
  unsigned int alpha_start = 0,
               alpha_end;
  GtUword node_start = 0,
          node_size;
  GtWtreeEncseq *we;
  gt_assert(wtree != NULL);

  we = gt_wtree_encseq_cast(wtree);
  gt_assert(i <= wtree->members->length);
  gt_assert(i != 0);

  alpha_end = we->alpha_size - 1;
  node_size = wtree->members->length;

  return gt_wtree_encseq_select_rec(we, i, symbol, node_start, node_size,
                                    alpha_start, alpha_end);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movl $0x0, 0x2c(%rsp)
movq $0x0, 0x20(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x1f7664
movq 0x44496d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31e9d6(%rip), %rsi    # 0x516013
leaq 0x377c97(%rip), %rdx    # 0x56f2db
leaq 0x377e2b(%rip), %rcx    # 0x56f476
leaq 0x377d37(%rip), %r8     # 0x56f389
movl $0x11d, %r9d            # imm = 0x11D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f7666
callq 0x1f7380
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x1f6d70
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq (%rcx), %rax
jbe 0x1f76c8
movq 0x444909(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31e972(%rip), %rsi    # 0x516013
leaq 0x377de5(%rip), %rdx    # 0x56f48d
leaq 0x377dc7(%rip), %rcx    # 0x56f476
leaq 0x377cd3(%rip), %r8     # 0x56f389
movl $0x120, %r9d            # imm = 0x120
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f76ca
jmp 0x1f76cc
cmpq $0x0, 0x38(%rsp)
jne 0x1f770c
movq 0x4448c5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31e92e(%rip), %rsi    # 0x516013
leaq 0x377dbd(%rip), %rdx    # 0x56f4a9
leaq 0x377d83(%rip), %rcx    # 0x56f476
leaq 0x377c8f(%rip), %r8     # 0x56f389
movl $0x121, %r9d            # imm = 0x121
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f770e
movq 0x10(%rsp), %rax
movl 0x58(%rax), %eax
subl $0x1, %eax
movl %eax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %r8
movl 0x2c(%rsp), %r9d
movl 0x28(%rsp), %eax
movl %eax, (%rsp)
callq 0x1f8230
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_delete
static void gt_wtree_encseq_delete(GT_UNUSED GtWtree *wtree)
{
  if (wtree != NULL) {
    GtWtreeEncseq *wtree_encseq = gt_wtree_encseq_cast(wtree);
    gt_encseq_delete(wtree_encseq->encseq);
    gt_alphabet_delete(wtree_encseq->alpha);
    gt_free(wtree_encseq->bits);
    gt_compressed_bitsequence_delete(wtree_encseq->c_bits);
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1f77cc
callq 0x1f7380
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1f6d70
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xae070
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x7e3d0
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x377bd5(%rip), %rsi    # 0x56f389
movl $0x130, %edx            # imm = 0x130
callq 0xe88c0
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x13d090
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_fill_offset_new
static inline GtWtreeEncseqFillOffset* gt_wtree_encseq_fill_offset_new(void)
{
  GtWtreeEncseqFillOffset *fo = gt_malloc(sizeof (*fo));
  fo->left = fo->right = NULL;
  fo->offset = 0;
  fo->left_size = 0;
  return fo;
}

// Assembly:
pushq %rax
movl $0x20, %edi
leaq 0x3779ac(%rip), %rsi    # 0x56f389
movl $0x168, %edx            # imm = 0x168
callq 0xe80f0
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
movq (%rsp), %rax
movq $0x0, (%rax)
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_map
static inline GtWtreeSymbol gt_wtree_encseq_map(GtWtreeEncseq *wtree_encseq,
                                                GtUchar symbol)
{
  if (GT_ISNOTSPECIAL(symbol))
    return (GtWtreeSymbol) symbol;
  else {
    if (symbol == (GtUchar) GT_SEPARATOR) {
      return (GtWtreeSymbol) wtree_encseq->alpha_size - 1;
    }
    if (symbol == (GtUchar) GT_WILDCARD)
      return (GtWtreeSymbol) wtree_encseq->alpha_size - 2;
  }
  gt_assert(symbol == (GtUchar) GT_UNDEFCHAR);
  return (GtWtreeSymbol) wtree_encseq->alpha_size - 3;
}

// Assembly:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x8(%rsp)
movb %al, 0x7(%rsp)
movzbl 0x7(%rsp), %eax
cmpl $0xfe, %eax
jge 0x1f84ab
movzbl 0x7(%rsp), %eax
movq %rax, 0x10(%rsp)
jmp 0x1f8544
movzbl 0x7(%rsp), %eax
cmpl $0xff, %eax
jne 0x1f84ca
movq 0x8(%rsp), %rax
movl 0x58(%rax), %eax
subq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1f8544
movzbl 0x7(%rsp), %eax
cmpl $0xfe, %eax
jne 0x1f84e9
movq 0x8(%rsp), %rax
movl 0x58(%rax), %eax
subq $0x2, %rax
movq %rax, 0x10(%rsp)
jmp 0x1f8544
jmp 0x1f84eb
jmp 0x1f84ed
movzbl 0x7(%rsp), %eax
cmpl $0xfd, %eax
je 0x1f8531
movq 0x443aa0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31db09(%rip), %rsi    # 0x516013
leaq 0x376ffe(%rip), %rdx    # 0x56f50f
leaq 0x377018(%rip), %rcx    # 0x56f530
leaq 0x376e6a(%rip), %r8     # 0x56f389
movl $0x141, %r9d            # imm = 0x141
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f8533
movq 0x8(%rsp), %rax
movl 0x58(%rax), %eax
subq $0x3, %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/wtree_encseq.c
// Function: gt_wtree_encseq_fill_offset_delete
static inline void
gt_wtree_encseq_fill_offset_delete(GtWtreeEncseqFillOffset *fo)
{
  if (fo != NULL) {
    gt_wtree_encseq_fill_offset_delete(fo->left);
    gt_wtree_encseq_fill_offset_delete(fo->right);
    gt_free(fo);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x1f878a
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x1f8750
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x1f8750
movq (%rsp), %rdi
leaq 0x376c09(%rip), %rsi    # 0x56f389
movl $0x175, %edx            # imm = 0x175
callq 0xe88c0
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/xrfcheck_info.c
// Function: gt_xrfcheck_info_delete
void gt_xrfcheck_info_delete(GtXRFCheckInfo *xci)
{
  if (!xci) return;
  gt_option_delete(xci->xrfcheck_option);
  gt_str_delete(xci->xrfcheck);
  gt_free(xci);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1fa7ce
jmp 0x1fa7fc
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xf5df0
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x11f560
movq (%rsp), %rdi
leaq 0x375495(%rip), %rsi    # 0x56fc87
movl $0x2a, %edx
callq 0xe88c0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/xrfcheck_info.c
// Function: gt_xrfcheck_info_register_options
void gt_xrfcheck_info_register_options(GtXRFCheckInfo *xci,
                                        GtOptionParser *op)
{
  GtOption *xrfcheck_option;
  gt_assert(xci && op);
  gt_assert(!xci->xrfcheck_option); /* can only called once */

  /* -xrfcheck */
  xrfcheck_option =
    gt_option_new_string("xrfcheck", "check Dbxref and Ontology_term "
                         "attributes for correct syntax according to a "
                         "abbreviation definition file.\nIf no argument is "
                         "given, the GO.xrf_abbs file from the "
                         "gtdata/xrf_abbr directory is used.\nIf an argument "
                         "is given, it is used as an specific filename for an "
                         "abbreviation file.\nIn the case that such a "
                         "file does not exist, '.xrf_abbr' is added to the "
                         "argument and loading the resulting filename from the "
                         "gtdata/xrf_abbr directory is attempted.",
                         xci->xrfcheck, NULL);
  gt_option_argument_is_optional(xrfcheck_option);
  gt_option_parser_add_option(op, xrfcheck_option);
  xci->xrfcheck_option = gt_option_ref(xrfcheck_option);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1fa81e
cmpq $0x0, 0x8(%rsp)
jne 0x1fa856
movq 0x44177b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31b7e4(%rip), %rsi    # 0x516013
leaq 0x37546e(%rip), %rdx    # 0x56fca4
leaq 0x375471(%rip), %rcx    # 0x56fcae
leaq 0x375443(%rip), %r8     # 0x56fc87
movl $0x31, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1fa858
jmp 0x1fa85a
movq 0x10(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1fa89e
movq 0x441733(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31b79c(%rip), %rsi    # 0x516013
leaq 0x375452(%rip), %rdx    # 0x56fcd0
leaq 0x375429(%rip), %rcx    # 0x56fcae
leaq 0x3753fb(%rip), %r8     # 0x56fc87
movl $0x32, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1fa8a0
movq 0x10(%rsp), %rax
movq (%rax), %rdx
leaq 0x375437(%rip), %rdi    # 0x56fce6
leaq 0x375439(%rip), %rsi    # 0x56fcef
xorl %eax, %eax
movl %eax, %ecx
callq 0xf69f0
movq %rax, (%rsp)
movq (%rsp), %rdi
callq 0xf7450
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf1600
movq (%rsp), %rdi
callq 0xf13c0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/xrfcheck_info.c
// Function: get_xrf_path
static GtStr* get_xrf_path(GtError *err)
{
  const char *progname;
  GtStr *xrf_path, *prog;
  gt_error_check(err);
  progname = gt_error_get_progname(err);
  gt_assert(progname != NULL);
  prog = gt_str_new();
  gt_str_append_cstr_nt(prog, progname,
                        gt_cstr_length_up_to_char(progname, ' '));
  xrf_path = gt_get_gtdata_path(gt_str_get(prog), err);
  if (xrf_path)
    gt_str_append_cstr(xrf_path, "/xrf_abbr/");
  gt_str_delete(prog);
  return xrf_path;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1fabc9
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1fab91
jmp 0x1fabc9
movq 0x441408(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31b471(%rip), %rsi    # 0x516013
leaq 0x31b616(%rip), %rdx    # 0x5161bf
leaq 0x375393(%rip), %rcx    # 0x56ff43
leaq 0x3750d0(%rip), %r8     # 0x56fc87
movl $0x50, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1fabcb
movq 0x30(%rsp), %rdi
callq 0xd8c20
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x1fac1a
movq 0x4413b7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31b420(%rip), %rsi    # 0x516013
leaq 0x3349bd(%rip), %rdx    # 0x52f5b7
leaq 0x375342(%rip), %rcx    # 0x56ff43
leaq 0x37507f(%rip), %r8     # 0x56fc87
movl $0x52, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1fac1c
callq 0x11d4a0
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movl $0x20, %esi
callq 0xa3030
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x11d830
movq 0x18(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0xe0950
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1fac90
movq 0x20(%rsp), %rdi
leaq 0x3752c5(%rip), %rsi    # 0x56ff50
callq 0x11d550
movq 0x18(%rsp), %rdi
callq 0x11f560
movq 0x20(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/asqg_writer.c
// Function: gt_asqg_writer_new
GtAsqgWriter* gt_asqg_writer_new(GtFile *file, const GtEncseq *encseq)
{
  GtAsqgWriter *aw;
  aw = gt_malloc(sizeof (*aw));
  aw->file = file;
  aw->encseq = encseq;
  return aw;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl $0x10, %edi
leaq 0x36ed2e(%rip), %rsi    # 0x570b38
movl $0x1f, %edx
callq 0xe80f0
movq %rax, (%rsp)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movq (%rsp), %rax
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/asqg_writer.c
// Function: gt_asqg_writer_show_header
int gt_asqg_writer_show_header(GtAsqgWriter *aw, float erate,
    GtUword minlen, const char *inputfilename, bool has_containments,
    bool has_transitives, GT_UNUSED GtError *err)
{
  gt_assert(aw != NULL);
  gt_file_xprintf(aw->file,
      "HT\tVN:i:%d\tER:f:%g\tOL:i:"GT_WU"\tIN:Z:%s\tCN:i:%c\tTE:i:%c\n",
      GT_ASQG_VERSION, erate, minlen, inputfilename,
      has_containments ? '1' : '0', has_transitives ? '1' : '0');
  return 0;
}

// Assembly:
subq $0x38, %rsp
movb %r8b, %al
movq %rdi, 0x30(%rsp)
movss %xmm0, 0x2c(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
andb $0x1, %cl
movb %cl, 0x17(%rsp)
andb $0x1, %al
movb %al, 0x16(%rsp)
movq %r9, 0x8(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x201eae
movq 0x43a123(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31418c(%rip), %rsi    # 0x516013
leaq 0x36ecc2(%rip), %rdx    # 0x570b50
leaq 0x36ecc6(%rip), %rcx    # 0x570b5b
leaq 0x36ec9c(%rip), %r8     # 0x570b38
movl $0x29, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x201eb0
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movss 0x2c(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x20(%rsp), %rcx
movq 0x18(%rsp), %r8
movb 0x17(%rsp), %dl
movl $0x30, %r9d
movl $0x31, %eax
testb $0x1, %dl
cmovnel %eax, %r9d
movb 0x16(%rsp), %sil
movl $0x30, %eax
movl $0x31, %edx
testb $0x1, %sil
cmovnel %edx, %eax
leaq 0x36ec77(%rip), %rsi    # 0x570b76
movl $0x1, %edx
movl %eax, (%rsp)
movb $0x1, %al
callq 0xddca0
xorl %eax, %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/asqg_writer.c
// Function: gt_spmproc_show_asqg
void gt_spmproc_show_asqg(GtUword suffix_readnum,
    GtUword prefix_readnum, GtUword length,
    bool suffixseq_direct, bool prefixseq_direct, void *asqg_writer)
{
  GtAsqgWriter *aw = asqg_writer;
  const GtUword sl1 = gt_encseq_seqlength(aw->encseq, suffix_readnum),
                      sl2 = gt_encseq_seqlength(aw->encseq, prefix_readnum);
  gt_asqg_writer_show_edge_line(aw->file, suffix_readnum, prefix_readnum,
      suffixseq_direct ? sl1 - length : 0,
      suffixseq_direct ? sl1 - 1UL : length - 1UL, sl1,
      prefixseq_direct ? 0 : sl2 - length,
      prefixseq_direct ? length - 1UL : sl2 - 1UL, sl2,
      !suffixseq_direct || !prefixseq_direct, 0);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xd8, %rsp
movb %r8b, %al
movq %rdi, 0xd0(%rsp)
movq %rsi, 0xc8(%rsp)
movq %rdx, 0xc0(%rsp)
andb $0x1, %cl
movb %cl, 0xbf(%rsp)
andb $0x1, %al
movb %al, 0xbe(%rsp)
movq %r9, 0xb0(%rsp)
movq 0xb0(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0xa8(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0xd0(%rsp), %rsi
callq 0xb09f0
movq %rax, 0xa0(%rsp)
movq 0xa8(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0xc8(%rsp), %rsi
callq 0xb09f0
movq %rax, 0x98(%rsp)
movq 0xa8(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x80(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0x90(%rsp)
testb $0x1, 0xbf(%rsp)
je 0x2022e6
movq 0xa0(%rsp), %rax
subq 0xc0(%rsp), %rax
movq %rax, 0x78(%rsp)
jmp 0x2022ef
xorl %eax, %eax
movq %rax, 0x78(%rsp)
jmp 0x2022ef
movq 0x78(%rsp), %rax
movq %rax, 0x70(%rsp)
testb $0x1, 0xbf(%rsp)
je 0x202316
movq 0xa0(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x68(%rsp)
jmp 0x202327
movq 0xc0(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0xa0(%rsp), %rax
movq %rax, 0x60(%rsp)
testb $0x1, 0xbe(%rsp)
je 0x202351
xorl %eax, %eax
movq %rax, 0x50(%rsp)
jmp 0x202366
movq 0x98(%rsp), %rax
subq 0xc0(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x48(%rsp)
testb $0x1, 0xbe(%rsp)
je 0x20238d
movq 0xc0(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x20239e
movq 0x98(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x98(%rsp), %rax
movq %rax, 0x30(%rsp)
movb $0x1, %al
testb $0x1, 0xbf(%rsp)
movb %al, 0x3f(%rsp)
je 0x2023d2
movb 0xbe(%rsp), %al
xorb $-0x1, %al
movb %al, 0x3f(%rsp)
movq 0x60(%rsp), %r9
movq 0x58(%rsp), %r8
movq 0x70(%rsp), %rcx
movq 0x90(%rsp), %rdx
movq 0x88(%rsp), %rsi
movq 0x80(%rsp), %rdi
movq 0x48(%rsp), %r11
movq 0x28(%rsp), %rbx
movq 0x30(%rsp), %r14
movb 0x3f(%rsp), %r10b
movq %rsp, %rax
movq %r14, 0x10(%rax)
movq %rbx, 0x8(%rax)
movq %r11, (%rax)
movzbl %r10b, %r10d
andl $0x1, %r10d
movl %r10d, 0x18(%rax)
movq $0x0, 0x20(%rax)
callq 0x202440
addq $0xd8, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bare-encseq.c
// Function: gt_bare_encseq_delete
void gt_bare_encseq_delete(GtBareEncseq *bare_encseq)
{
  if (bare_encseq != NULL)
  {
    gt_free(bare_encseq->charcount);
    GT_FREEARRAY(&bare_encseq->specialranges,GtBareSpecialrange);
    gt_free(bare_encseq);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x2025c4
movq (%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x36e6b0(%rip), %rsi    # 0x570c0b
movl $0x30, %edx
callq 0xe88c0
movq (%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x2025ad
movq (%rsp), %rax
movq 0x28(%rax), %rdi
leaq 0x36e68c(%rip), %rsi    # 0x570c0b
movl $0x31, %edx
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, 0x30(%rax)
movq (%rsp), %rax
movq $0x0, 0x38(%rax)
movq (%rsp), %rax
movq $0x0, 0x28(%rax)
jmp 0x2025af
movq (%rsp), %rdi
leaq 0x36e651(%rip), %rsi    # 0x570c0b
movl $0x32, %edx
callq 0xe88c0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bare-encseq.c
// Function: gt_bare_encseq_specialrangeiterator_new
GtBareSpecialrangeiterator* gt_bare_encseq_specialrangeiterator_new(
                       const GtBareEncseq *bare_encseq,
                       bool moveforward)
{
  gt_assert(bare_encseq != NULL);
  if (bare_encseq->specialranges.nextfreeGtBareSpecialrange == 0)
  {
    return NULL;
  } else
  {
    GtBareSpecialrangeiterator *sri = gt_malloc(sizeof *sri);

    sri->startptr = bare_encseq->specialranges.spaceGtBareSpecialrange;
    sri->endptr = bare_encseq->specialranges.spaceGtBareSpecialrange +
                  bare_encseq->specialranges.nextfreeGtBareSpecialrange;
    sri->moveforward = moveforward;
    sri->current = moveforward ? sri->startptr : sri->endptr - 1;
    return sri;
  }
}

// Assembly:
subq $0x28, %rsp
movb %sil, %al
movq %rdi, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x2032b2
movq 0x438d1f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x312d88(%rip), %rsi    # 0x516013
leaq 0x3238f7(%rip), %rdx    # 0x526b89
leaq 0x36db0e(%rip), %rcx    # 0x570da7
leaq 0x36d96b(%rip), %r8     # 0x570c0b
movl $0xf6, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2032b4
movq 0x18(%rsp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x2032ce
movq $0x0, 0x20(%rsp)
jmp 0x203368
movl $0x20, %edi
leaq 0x36d931(%rip), %rsi    # 0x570c0b
movl $0xfc, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x18(%rsp), %rax
movq 0x38(%rax), %rax
shlq $0x4, %rax
addq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movb 0x17(%rsp), %cl
movq 0x8(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x18(%rax)
testb $0x1, 0x17(%rsp)
je 0x203340
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rax, (%rsp)
jmp 0x203351
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
addq $-0x10, %rax
movq %rax, (%rsp)
movq (%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bare-encseq.c
// Function: gt_bare_encseq_specialrangeiterator_next
bool gt_bare_encseq_specialrangeiterator_next(GtBareSpecialrangeiterator *sri,
                                              GtRange *range)
{
  if (sri->current != NULL)
  {
    range->start = sri->current->start;
    range->end = sri->current->start + sri->current->length;
    if (sri->moveforward)
    {
      if (sri->current < sri->endptr - 1)
      {
        sri->current++;
      } else
      {
        sri->current = NULL;
      }
    } else
    {
      if (sri->current > sri->startptr)
      {
        sri->current--;
      } else
      {
        sri->current = NULL;
      }
    }
    return true;
  }
  return false;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x203484
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
movq -0x18(%rsp), %rax
movq %rcx, (%rax)
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rcx
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
addq 0x8(%rax), %rcx
movq -0x18(%rsp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rsp), %rax
testb $0x1, 0x18(%rax)
je 0x203448
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rsp), %rcx
movq 0x8(%rcx), %rcx
addq $-0x10, %rcx
cmpq %rcx, %rax
jae 0x203439
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rcx
addq $0x10, %rcx
movq %rcx, 0x10(%rax)
jmp 0x203446
movq -0x10(%rsp), %rax
movq $0x0, 0x10(%rax)
jmp 0x20347d
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rsp), %rcx
cmpq (%rcx), %rax
jbe 0x20346e
movq -0x10(%rsp), %rax
movq 0x10(%rax), %rcx
addq $-0x10, %rcx
movq %rcx, 0x10(%rax)
jmp 0x20347b
movq -0x10(%rsp), %rax
movq $0x0, 0x10(%rax)
jmp 0x20347d
movb $0x1, -0x1(%rsp)
jmp 0x203489
movb $0x0, -0x1(%rsp)
movb -0x1(%rsp), %al
andb $0x1, %al
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bcktab.c
// Function: gt_bcktab_leftborder_assign
void gt_bcktab_leftborder_assign(GtLeftborder *lb,GtCodetype code,
                                 GtUword value)
{
  gt_assert(lb != NULL);
  if (lb->ulongbounds != NULL)
  {
    lb->ulongbounds[code] = value;
  } else
  {
    gt_assert(value <= (GtUword) UINT_MAX);
    gt_assert(lb->uintbounds != NULL);
    lb->uintbounds[code] = (uint32_t) value;
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x203712
movq 0x4388bf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x312928(%rip), %rsi    # 0x516013
leaq 0x36d6f9(%rip), %rdx    # 0x570deb
leaq 0x36d6fd(%rip), %rcx    # 0x570df6
leaq 0x36d712(%rip), %r8     # 0x570e12
movl $0x56, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x203714
movq 0x10(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x20373b
movq (%rsp), %rdx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x2037df
jmp 0x20373d
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, (%rsp)
jbe 0x203780
movq 0x438851(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3128ba(%rip), %rsi    # 0x516013
leaq 0x38afee(%rip), %rdx    # 0x58e74e
leaq 0x36d68f(%rip), %rcx    # 0x570df6
leaq 0x36d6a4(%rip), %r8     # 0x570e12
movl $0x5c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x203782
jmp 0x203784
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2037c7
movq 0x43880a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x312873(%rip), %rsi    # 0x516013
leaq 0x36d67e(%rip), %rdx    # 0x570e25
leaq 0x36d648(%rip), %rcx    # 0x570df6
leaq 0x36d65d(%rip), %r8     # 0x570e12
movl $0x5d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2037c9
movq (%rsp), %rax
movl %eax, %edx
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movl %edx, (%rax,%rcx,4)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bcktab.c
// Function: gt_bcktab_get_leftborder
GtUword gt_bcktab_get_leftborder(const GtBcktab *bcktab,GtCodetype code)
{
  gt_assert(bcktab != NULL);
  if (bcktab->leftborder.ulongbounds != NULL)
  {
    return bcktab->leftborder.ulongbounds[code];
  }
  gt_assert(bcktab->leftborder.uintbounds != NULL);
  return (GtUword) bcktab->leftborder.uintbounds[code];
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x20383d
movq 0x438794(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3127fd(%rip), %rsi    # 0x516013
leaq 0x389f0b(%rip), %rdx    # 0x58d728
leaq 0x36d618(%rip), %rcx    # 0x570e3c
leaq 0x36d5e7(%rip), %r8     # 0x570e12
movl $0x64, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x20383f
movq 0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x203863
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
jmp 0x2038be
jmp 0x203865
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2038a8
movq 0x438729(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x312792(%rip), %rsi    # 0x516013
leaq 0x36d5cd(%rip), %rdx    # 0x570e55
leaq 0x36d5ad(%rip), %rcx    # 0x570e3c
leaq 0x36d57c(%rip), %r8     # 0x570e12
movl $0x69, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2038aa
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rsp), %rcx
movl (%rax,%rcx,4), %eax
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/match/bcktab.c
// Function: gt_bcktab_storetmp
void gt_bcktab_storetmp(GtBcktab *bcktab)
{
  if (bcktab->useulong) {
    gt_Sfxmappedrange_storetmp_ulong(bcktab->mappedleftborder,
                                     &bcktab->leftborder.ulongbounds,
                                     true);
    if (bcktab->withspecialsuffixes)
    {
      gt_Sfxmappedrange_storetmp_ulong(bcktab->mappedcountspecialcodes,
                                       &bcktab->ulongcountspecialcodes,
                                       true);
    }
  } else {
    gt_Sfxmappedrange_storetmp_uint32(bcktab->mappedleftborder,
                                      &bcktab->leftborder.uintbounds,
                                      true);
    if (bcktab->withspecialsuffixes)
    {
      gt_Sfxmappedrange_storetmp_uint32(bcktab->mappedcountspecialcodes,
                                        &bcktab->uintcountspecialcodes,
                                        true);
    }
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
testb $0x1, 0xa2(%rax)
je 0x20392b
movq (%rsp), %rax
movq 0xb0(%rax), %rdi
movq (%rsp), %rsi
addq $0x8, %rsi
movl $0x1, %edx
callq 0x2cbd60
movq (%rsp), %rax
testb $0x1, 0xa1(%rax)
je 0x203929
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
movq (%rsp), %rsi
addq $0x20, %rsi
movl $0x1, %edx
callq 0x2cbd60
jmp 0x203970
movq (%rsp), %rax
movq 0xb0(%rax), %rdi
movq (%rsp), %rsi
movl $0x1, %edx
callq 0x2cc070
movq (%rsp), %rax
testb $0x1, 0xa1(%rax)
je 0x20396e
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
movq (%rsp), %rsi
addq $0x10, %rsi
movl $0x1, %edx
callq 0x2cc070
jmp 0x203970
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bcktab.c
// Function: gt_bcktab_maprange_lb_cs
void gt_bcktab_maprange_lb_cs(GtSfxmappedrangelist *sfxmrlist,GtBcktab *bcktab)
{
  bcktab->mappedleftborder
    = gt_Sfxmappedrange_new("leftborder",
                            bcktab->numofallcodes+1,
                            bcktab->useulong
                              ? GtSfxunsignedlong
                              : GtSfxuint32_t,
                            NULL,
                            NULL);
  gt_Sfxmappedrangelist_add(sfxmrlist,bcktab->mappedleftborder);
  if (bcktab->withspecialsuffixes)
  {
    bcktab->mappedcountspecialcodes
      = gt_Sfxmappedrange_new("countspecialcodes",
                              bcktab->numofspecialcodes,
                              bcktab->useulong
                                ? GtSfxunsignedlong
                                : GtSfxuint32_t,
                              gt_bcktab_transform_minmax_code,
                              &bcktab->numofchars);
    gt_Sfxmappedrangelist_add(sfxmrlist,bcktab->mappedcountspecialcodes);
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x58(%rax), %rsi
addq $0x1, %rsi
movq 0x8(%rsp), %rax
movb 0xa2(%rax), %cl
movl $0x2, %edx
movl $0x1, %eax
testb $0x1, %cl
cmovnel %eax, %edx
leaq 0x33d347(%rip), %rdi    # 0x540d04
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0x2cbb80
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0xb0(%rax)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xb0(%rax), %rsi
callq 0x2ccb80
movq 0x8(%rsp), %rax
testb $0x1, 0xa1(%rax)
je 0x203a62
movq 0x8(%rsp), %rax
movq 0x60(%rax), %rsi
movq 0x8(%rsp), %rax
movb 0xa2(%rax), %cl
movl $0x2, %edx
movl $0x1, %eax
testb $0x1, %cl
cmovnel %eax, %edx
movq 0x8(%rsp), %r8
addq $0x4c, %r8
leaq 0x36d939(%rip), %rdi    # 0x57136a
leaq 0x38(%rip), %rcx        # 0x203a70
callq 0x2cbb80
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0xb8(%rax)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0xb8(%rax), %rsi
callq 0x2ccb80
addq $0x18, %rsp
retq
nopw (%rax,%rax)