LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stat_visitor.c
// Function: stat_visitor_feature_node
static int stat_visitor_feature_node(GtNodeVisitor *nv, GtFeatureNode *fn,
                                     GtError *err)
{
  GtStatVisitor *sv;
  gt_error_check(err);
  sv = stat_visitor_cast(nv);
  return gt_feature_node_traverse_children(fn, sv, compute_statistics, false,
                                           err);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1e2e33
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1e2dfb
jmp 0x1e2e33
movq 0x45919e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x333207(%rip), %rsi    # 0x516013
leaq 0x3333ac(%rip), %rdx    # 0x5161bf
leaq 0x38468b(%rip), %rcx    # 0x5674a5
leaq 0x38469e(%rip), %r8     # 0x5674bf
movl $0xb3, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1e2e35
callq 0x1e2cc0
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %r8
leaq 0x65e(%rip), %rdx       # 0x1e34c0
xorl %ecx, %ecx
callq 0x16e2f0
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stat_visitor.c
// Function: stat_visitor_region_node
static int stat_visitor_region_node(GtNodeVisitor *nv, GtRegionNode *rn,
                                    GT_UNUSED GtError *err)
{
  GtStatVisitor *sv;
  GtRange range;
  gt_error_check(err);
  sv = stat_visitor_cast(nv);
  sv->number_of_sequence_regions++;
  range = gt_genome_node_get_range((GtGenomeNode*) rn);
  sv->total_length_of_sequence_regions += gt_range_length(&range);
  return 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1e2ed3
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1e2e9b
jmp 0x1e2ed3
movq 0x4590fe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x333167(%rip), %rsi    # 0x516013
leaq 0x33330c(%rip), %rdx    # 0x5161bf
leaq 0x3846b6(%rip), %rcx    # 0x567570
leaq 0x3845fe(%rip), %r8     # 0x5674bf
movl $0xbe, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1e2ed5
callq 0x1e2cc0
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
movq 0x38(%rsp), %rdi
callq 0x171cc0
movq %rax, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x18(%rsp), %rdi
callq 0x107320
movq %rax, %rcx
movq 0x28(%rsp), %rax
addq 0x68(%rax), %rcx
movq %rcx, 0x68(%rax)
xorl %eax, %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stat_visitor.c
// Function: gt_stat_visitor_new
GtNodeVisitor* gt_stat_visitor_new(bool gene_length_distri,
                                   bool gene_score_distri,
                                   bool exon_length_distri,
                                   bool exon_number_distri,
                                   bool intron_length_distri,
                                   bool cds_length_distri,
                                   bool used_sources)
{
  GtNodeVisitor *nv = gt_node_visitor_create(gt_stat_visitor_class());
  GtStatVisitor *sv = stat_visitor_cast(nv);
  if (gene_length_distri)
    sv->gene_length_distribution = gt_disc_distri_new();
  if (gene_score_distri)
    sv->gene_score_distribution = gt_disc_distri_new();
  if (exon_length_distri)
    sv->exon_length_distribution = gt_disc_distri_new();
  if (exon_number_distri)
    sv->exon_number_distribution = gt_disc_distri_new();
  if (intron_length_distri)
    sv->intron_length_distribution = gt_disc_distri_new();
  if (cds_length_distri)
    sv->cds_length_distribution = gt_disc_distri_new();
  sv->type_counts = gt_string_distri_new();
  if (used_sources)
    sv->used_sources = gt_cstr_table_new();
  return nv;
}

// Assembly:
subq $0x28, %rsp
movl %r8d, 0x4(%rsp)
movl %ecx, 0x8(%rsp)
movl %edx, %eax
movl 0x4(%rsp), %edx
movl %eax, 0xc(%rsp)
movl %esi, %r8d
movl 0x8(%rsp), %esi
movl %edi, %eax
movl 0xc(%rsp), %edi
movb %r9b, %cl
movb %al, %r9b
movb 0x30(%rsp), %al
andb $0x1, %r9b
movb %r9b, 0x27(%rsp)
andb $0x1, %r8b
movb %r8b, 0x26(%rsp)
andb $0x1, %dil
movb %dil, 0x25(%rsp)
andb $0x1, %sil
movb %sil, 0x24(%rsp)
andb $0x1, %dl
movb %dl, 0x23(%rsp)
andb $0x1, %cl
movb %cl, 0x22(%rsp)
andb $0x1, %al
movb %al, 0x21(%rsp)
callq 0x1e2cc0
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x18(%rsp)
callq 0x1e2cc0
movq %rax, %rdi
movq 0x18(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x10(%rsp)
testb $0x1, 0x27(%rsp)
je 0x1e2ff7
callq 0xa5080
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x70(%rax)
testb $0x1, 0x26(%rsp)
je 0x1e300f
callq 0xa5080
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x78(%rax)
testb $0x1, 0x25(%rsp)
je 0x1e302a
callq 0xa5080
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x80(%rax)
testb $0x1, 0x24(%rsp)
je 0x1e3045
callq 0xa5080
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x88(%rax)
testb $0x1, 0x23(%rsp)
je 0x1e3060
callq 0xa5080
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x90(%rax)
testb $0x1, 0x22(%rsp)
je 0x1e307b
callq 0xa5080
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x98(%rax)
callq 0x120120
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0xa8(%rax)
testb $0x1, 0x21(%rsp)
je 0x1e30aa
callq 0xa39d0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0xa0(%rax)
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stat_visitor.c
// Function: compute_source_statistics
static void compute_source_statistics(GtFeatureNode *fn,
                                      GtCstrTable *used_sources)
{
  const char *source;
  gt_assert(fn && used_sources);
  source = gt_feature_node_get_source(fn);
  if (!gt_cstr_table_get(used_sources, source))
    gt_cstr_table_add(used_sources, source);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1e370e
cmpq $0x0, 0x8(%rsp)
jne 0x1e3746
movq 0x45888b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3328f4(%rip), %rsi    # 0x516013
leaq 0x383dc8(%rip), %rdx    # 0x5674ee
leaq 0x383dd4(%rip), %rcx    # 0x567501
leaq 0x383d8b(%rip), %r8     # 0x5674bf
movl $0x58, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1e3748
movq 0x10(%rsp), %rdi
callq 0x16d800
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xa3b80
cmpq $0x0, %rax
jne 0x1e3778
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xa3a60
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stat_visitor.c
// Function: add_exon_or_cds_number
static int add_exon_or_cds_number(GtFeatureNode *fn, void *data,
                                  GT_UNUSED GtError *err)
{
  GtStatVisitor *sv = (GtStatVisitor*) data;
  gt_error_check(err);
  gt_assert(sv && fn);
  if (gt_feature_node_has_type(fn, gt_ft_exon))
    sv->exon_number_for_distri++;
  else if (gt_feature_node_has_type(fn, gt_ft_CDS)) {
    GtRange range = gt_genome_node_get_range((GtGenomeNode*) fn);
    sv->cds_length_for_distri += gt_range_length(&range);
  }
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1e3bad
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1e3b75
jmp 0x1e3bad
movq 0x458424(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33248d(%rip), %rsi    # 0x516013
leaq 0x332632(%rip), %rdx    # 0x5161bf
leaq 0x3839bc(%rip), %rcx    # 0x567550
leaq 0x383924(%rip), %r8     # 0x5674bf
movl $0x49, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1e3baf
jmp 0x1e3bb1
cmpq $0x0, 0x18(%rsp)
je 0x1e3bc1
cmpq $0x0, 0x30(%rsp)
jne 0x1e3bf9
movq 0x4583d8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x332441(%rip), %rsi    # 0x516013
leaq 0x38398e(%rip), %rdx    # 0x567567
leaq 0x383970(%rip), %rcx    # 0x567550
leaq 0x3838d8(%rip), %r8     # 0x5674bf
movl $0x4a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1e3bfb
movq 0x30(%rsp), %rdi
leaq 0x383515(%rip), %rsi    # 0x56711c
callq 0x16d960
testb $0x1, %al
jne 0x1e3c12
jmp 0x1e3c25
movq 0x18(%rsp), %rax
movq 0x58(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x58(%rax)
jmp 0x1e3c6c
movq 0x30(%rsp), %rdi
leaq 0x370e87(%rip), %rsi    # 0x554ab8
callq 0x16d960
testb $0x1, %al
jne 0x1e3c3c
jmp 0x1e3c6a
movq 0x30(%rsp), %rdi
callq 0x171cc0
movq %rax, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
leaq 0x8(%rsp), %rdi
callq 0x107320
movq %rax, %rcx
movq 0x18(%rsp), %rax
addq 0x60(%rax), %rcx
movq %rcx, 0x60(%rax)
jmp 0x1e3c6c
xorl %eax, %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/string_matching.c
// Function: compute_prefixtab
static GtUword* compute_prefixtab(const char *p, GtUword m)
{
  GtUword i, vlen = 0, *prefixtab;
  char b;
  gt_assert(p);
  prefixtab = gt_malloc(sizeof (GtUword) * (m+1));
  prefixtab[0] = GT_UNDEF_UWORD; /* paranoia */
  if (m)
    prefixtab[1] = 0;
  for (i = 2; i <= m; i++) {
    b = p[i-1];
    while (vlen > 0 && p[vlen] != b)
      vlen = prefixtab[vlen];
    if (p[vlen] == b)
      vlen++;
    prefixtab[i] = vlen;
  }
  return prefixtab;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x1e9f37
movq 0x45209a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32c103(%rip), %rsi    # 0x516013
leaq 0x37e22b(%rip), %rdx    # 0x568142
leaq 0x37e50c(%rip), %rcx    # 0x56842a
leaq 0x37e236(%rip), %r8     # 0x56815b
movl $0x3f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1e9f39
movq 0x28(%rsp), %rdi
addq $0x1, %rdi
shlq $0x3, %rdi
leaq 0x37e20e(%rip), %rsi    # 0x56815b
movl $0x40, %edx
callq 0xe80f0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq $-0x1, (%rax)
cmpq $0x0, 0x28(%rsp)
je 0x1e9f7d
movq 0x10(%rsp), %rax
movq $0x0, 0x8(%rax)
movq $0x2, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpq 0x28(%rsp), %rax
ja 0x1ea03f
movq 0x30(%rsp), %rax
movq 0x20(%rsp), %rcx
subq $0x1, %rcx
movb (%rax,%rcx), %al
movb %al, 0xf(%rsp)
xorl %eax, %eax
cmpq $0x0, 0x18(%rsp)
movb %al, 0xe(%rsp)
jbe 0x1e9fd5
movq 0x30(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
movsbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
setne %al
movb %al, 0xe(%rsp)
movb 0xe(%rsp), %al
testb $0x1, %al
jne 0x1e9fdf
jmp 0x1e9ff4
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x18(%rsp)
jmp 0x1e9fab
movq 0x30(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rax,%rcx), %eax
movsbl 0xf(%rsp), %ecx
cmpl %ecx, %eax
jne 0x1ea019
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x1e9f86
movq 0x10(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/string_matching.c
// Function: gt_string_matching_brute_force
void gt_string_matching_brute_force(const char *s, GtUword n,
                                    const char *p, GtUword m,
                                    GtProcessMatch process_match, void *data)
{
  GtUword i;
  gt_assert(s && p);
  if (m > n || !m || !n) /* no match possible */
    return;
  for (i = 0; i <= n - m; i++) {
    GtUword j = 0;
    while (j < m && s[i+j] == p[j])
      j++;
    if (j == m && process_match) {
      if (process_match(i, data))
        break;
    }
  }
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movq %r9, 0x18(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x1ea322
cmpq $0x0, 0x30(%rsp)
jne 0x1ea35a
movq 0x451c77(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32bce0(%rip), %rsi    # 0x516013
leaq 0x37de03(%rip), %rdx    # 0x56813d
leaq 0x37de6d(%rip), %rcx    # 0x5681ae
leaq 0x37de13(%rip), %r8     # 0x56815b
movl $0xa4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ea35c
movq 0x28(%rsp), %rax
cmpq 0x38(%rsp), %rax
ja 0x1ea378
cmpq $0x0, 0x28(%rsp)
je 0x1ea378
cmpq $0x0, 0x38(%rsp)
jne 0x1ea37d
jmp 0x1ea441
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x38(%rsp), %rcx
subq 0x28(%rsp), %rcx
cmpq %rcx, %rax
ja 0x1ea441
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rcx
xorl %eax, %eax
cmpq 0x28(%rsp), %rcx
movb %al, 0x7(%rsp)
jae 0x1ea3e3
movq 0x40(%rsp), %rax
movq 0x10(%rsp), %rcx
addq 0x8(%rsp), %rcx
movsbl (%rax,%rcx), %eax
movq 0x30(%rsp), %rcx
movq 0x8(%rsp), %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
sete %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x1ea3ed
jmp 0x1ea3fd
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x1ea3a7
movq 0x8(%rsp), %rax
cmpq 0x28(%rsp), %rax
jne 0x1ea42c
cmpq $0x0, 0x20(%rsp)
je 0x1ea42c
movq 0x20(%rsp), %rax
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq *%rax
testb $0x1, %al
jne 0x1ea428
jmp 0x1ea42a
jmp 0x1ea441
jmp 0x1ea42c
jmp 0x1ea42e
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1ea386
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/string_matching.c
// Function: store_match
static bool store_match(GtUword pos, void *data)
{
  GtArray *positions = data;
  gt_assert(positions);
  gt_array_add(positions, pos);
  return false;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1eae36
movq 0x45119b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32b204(%rip), %rsi    # 0x516013
leaq 0x33fa33(%rip), %rdx    # 0x52a849
leaq 0x37d61f(%rip), %rcx    # 0x56843c
leaq 0x37d337(%rip), %r8     # 0x56815b
movl $0xbd, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1eae38
movq (%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
xorl %eax, %eax
andb $0x1, %al
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/string_matching.c
// Function: store_first_match
static bool store_first_match(GtUword pos, void *data)
{
  GtUword *match = data;
  gt_assert(match);
  *match = pos;
  return true;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1eaeb6
movq 0x45111b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32b184(%rip), %rsi    # 0x516013
leaq 0x36e4e2(%rip), %rdx    # 0x559378
leaq 0x37d5ab(%rip), %rcx    # 0x568448
leaq 0x37d2b7(%rip), %r8     # 0x56815b
movl $0xb5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1eaeb8
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movb $0x1, %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/swalign.c
// Function: gt_swalign
GtAlignment* gt_swalign(GtSeq *u, GtSeq *v, const GtScoreFunction *sf)
{
  gt_assert(u && v && sf);
  return smith_waterman_align(gt_seq_get_orig(u), gt_seq_get_orig(v),
                              gt_seq_get_encoded(u), gt_seq_get_encoded(v),
                              gt_seq_length(u), gt_seq_length(v),
                              gt_score_function_get_scores(sf),
                              gt_score_function_get_deletion_score(sf),
                              gt_score_function_get_insertion_score(sf),
                              gt_seq_get_alphabet(u), gt_seq_get_alphabet(v));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
cmpq $0x0, 0x80(%rsp)
je 0x1eaf07
cmpq $0x0, 0x78(%rsp)
je 0x1eaf07
cmpq $0x0, 0x70(%rsp)
jne 0x1eaf3f
movq 0x451092(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32b0fb(%rip), %rsi    # 0x516013
leaq 0x37d53b(%rip), %rdx    # 0x56845a
leaq 0x37d541(%rip), %rcx    # 0x568467
leaq 0x37d545(%rip), %r8     # 0x568472
movl $0x96, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1eaf41
movq 0x80(%rsp), %rdi
callq 0x110670
movq %rax, 0x30(%rsp)
movq 0x78(%rsp), %rdi
callq 0x110670
movq %rax, 0x38(%rsp)
movq 0x80(%rsp), %rdi
callq 0x1106c0
movq %rax, 0x40(%rsp)
movq 0x78(%rsp), %rdi
callq 0x1106c0
movq %rax, 0x48(%rsp)
movq 0x80(%rsp), %rdi
callq 0x1107d0
movq %rax, 0x50(%rsp)
movq 0x78(%rsp), %rdi
callq 0x1107d0
movq %rax, 0x58(%rsp)
movq 0x70(%rsp), %rdi
callq 0x10eea0
movq %rax, %r14
movq 0x70(%rsp), %rdi
callq 0x10ef00
movl %eax, %ebx
movq 0x70(%rsp), %rdi
callq 0x10ef50
movl %eax, 0x64(%rsp)
movq 0x80(%rsp), %rdi
callq 0x110780
movq %rax, 0x68(%rsp)
movq 0x78(%rsp), %rdi
callq 0x110780
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x48(%rsp), %rcx
movq 0x50(%rsp), %r8
movq 0x58(%rsp), %r9
movl 0x64(%rsp), %r11d
movq 0x68(%rsp), %r10
movq %r14, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x1eb040
addq $0x88, %rsp
popq %rbx
popq %r14
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/targetbest_select_stream.c
// Function: gt_targetbest_select_stream_class
const GtNodeStreamClass* gt_targetbest_select_stream_class(void)
{
  static const GtNodeStreamClass *nsc = NULL;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtTargetbestSelectStream),
                                   targetbest_select_stream_free,
                                   targetbest_select_stream_next);
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x454ec2(%rip)    # 0x642f30
jne 0x1ee08f
movl $0x38, %edi
leaq 0x24(%rip), %rsi        # 0x1ee0a0
leaq 0xad(%rip), %rdx        # 0x1ee130
callq 0x1b1ae0
movq %rax, 0x454ea1(%rip)    # 0x642f30
callq 0x9f280
movq 0x454e95(%rip), %rax    # 0x642f30
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/targetbest_select_stream.c
// Function: targetbest_select_stream_free
static void targetbest_select_stream_free(GtNodeStream *ns)
{
  GtTargetbestSelectStream *tfs = targetbest_select_stream_cast(ns);
  for (; tfs->next != NULL; tfs->next = gt_dlistelem_next(tfs->next))
    gt_genome_node_delete(gt_dlistelem_get_data(tfs->next));
  gt_dlist_delete(tfs->trees);
  gt_hashmap_delete(tfs->target_to_elem);
  gt_node_stream_delete(tfs->in_stream);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x1ee060
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1ee0fe
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xa60d0
movq %rax, %rdi
callq 0x173180
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xa6120
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
jmp 0x1ee0c0
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xa6910
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xe1770
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x1b1cb0
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/targetbest_select_stream.c
// Function: gt_targetbest_select_stream_new
GtNodeStream* gt_targetbest_select_stream_new(GtNodeStream *in_stream)
{
  GtTargetbestSelectStream *tfs;
  GtNodeStream *ns;
  gt_assert(in_stream);
  ns = gt_node_stream_create(gt_targetbest_select_stream_class(),
                             gt_node_stream_is_sorted(in_stream));
  tfs = targetbest_select_stream_cast(ns);
  tfs->in_stream = gt_node_stream_ref(in_stream);
  tfs->in_stream_processed = false;
  tfs->trees = gt_dlist_new(NULL);
  tfs->target_to_elem = gt_hashmap_new(GT_HASH_STRING, gt_free_func, NULL);
  return ns;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1ee389
movq 0x44dc48(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x327cb1(%rip), %rsi    # 0x516013
leaq 0x3320ba(%rip), %rdx    # 0x520423
leaq 0x37abc8(%rip), %rcx    # 0x568f38
leaq 0x37abe1(%rip), %r8     # 0x568f58
movl $0xbb, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ee38b
callq 0x1ee060
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0x1b2090
movq 0x8(%rsp), %rdi
movzbl %al, %esi
andl $0x1, %esi
callq 0x1b1b80
movq %rax, 0x10(%rsp)
callq 0x1ee060
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
callq 0x1b1c50
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movb $0x0, 0x30(%rax)
xorl %eax, %eax
movl %eax, %edi
callq 0xa5e50
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movl $0x1, %edi
leaq -0x1059db(%rip), %rsi   # 0xe8a30
xorl %eax, %eax
movl %eax, %edx
callq 0xe0c40
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/targetbest_select_stream.c
// Function: build_key
static void build_key(GtStr *key, GtFeatureNode *feature, GtStr *target_id)
{
  gt_assert(key && feature && target_id);
  gt_str_reset(key);
  gt_str_append_str(key, gt_genome_node_get_seqid((GtGenomeNode*) feature));
  gt_str_append_char(key, '\t'); /* cannot occur in seqid or target_id */
  gt_str_append_str(key, target_id);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1ee69b
cmpq $0x0, 0x18(%rsp)
je 0x1ee69b
cmpq $0x0, 0x10(%rsp)
jne 0x1ee6d3
movq 0x44d8fe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x327967(%rip), %rsi    # 0x516013
leaq 0x37a92f(%rip), %rdx    # 0x568fe2
leaq 0x37a944(%rip), %rcx    # 0x568ffe
leaq 0x37a897(%rip), %r8     # 0x568f58
movl $0x2f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ee6d5
movq 0x20(%rsp), %rdi
callq 0x11e110
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x171b70
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x11d750
movq 0x20(%rsp), %rdi
movl $0x9, %esi
callq 0x11da70
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x11d750
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/targetbest_select_stream.c
// Function: remove_elem
static void remove_elem(GtDlistelem *elem, GtDlist *trees,
                        GtHashmap *target_to_elem, GtStr *key)
{
  GtGenomeNode *node = gt_dlistelem_get_data(elem);
  gt_genome_node_delete(node);
  gt_dlist_remove(trees, elem);
  gt_hashmap_remove(target_to_elem, gt_str_get(key));
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x30(%rsp), %rdi
callq 0xa60d0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x173180
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xa6660
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x11dee0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0xe1030
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/tir_stream.c
// Function: gt_tir_stream_free
static void gt_tir_stream_free(GtNodeStream *ns)
{
  GtTIRStream *tir_stream = gt_node_stream_cast(gt_tir_stream_class(), ns);
  GT_FREEARRAY(&tir_stream->first_pairs, TIRPair);
  gt_str_delete(tir_stream->str_indexname);
  if (tir_stream->ssar != NULL)
    gt_freeSequentialsuffixarrayreader(&tir_stream->ssar);
  if (tir_stream->tir_pairs != NULL)
    gt_free(tir_stream->tir_pairs);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x1ef3f0
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x78(%rax)
je 0x1ef4a3
movq 0x8(%rsp), %rax
movq 0x78(%rax), %rdi
leaq 0x379dc3(%rip), %rsi    # 0x56922f
movl $0x3be, %edx            # imm = 0x3BE
callq 0xe88c0
movq 0x8(%rsp), %rax
movq $0x0, 0x80(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x88(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x78(%rax)
jmp 0x1ef4a5
movq 0x8(%rsp), %rax
movq 0xb0(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1ef4d0
movq 0x8(%rsp), %rdi
addq $0x18, %rdi
callq 0x23b5e0
movq 0x8(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x1ef4f6
movq 0x8(%rsp), %rax
movq 0x70(%rax), %rdi
leaq 0x379d43(%rip), %rsi    # 0x56922f
movl $0x3c3, %edx            # imm = 0x3C3
callq 0xe88c0
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/tir_stream.c
// Function: gt_tir_compare_TIRs
static int gt_tir_compare_TIRs(const void *a, const void *b)
{
  const TIRPair *pair1 = (const TIRPair*) a;
  const TIRPair *pair2 = (const TIRPair*) b;
  if (pair1->contignumber < pair2->contignumber) {
    return -1;
  } else if (pair1->contignumber == pair2->contignumber) {
    if (pair1->left_tir_start < pair2->left_tir_start) {
      return -1;
    } else if (pair1->left_tir_start == pair2-> left_tir_start) {
      if (pair1->right_transformed_start < pair2->right_transformed_start) {
        return -1;
      } else if (pair1->right_transformed_start
                                            == pair2->right_transformed_start) {
        return 0;
      }
    }
  }
  return 1;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x10(%rsp), %rax
movq %rax, -0x20(%rsp)
movq -0x18(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x20(%rsp), %rax
movq (%rax), %rax
movq -0x28(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x1f220d
movl $0xffffffff, -0x4(%rsp) # imm = 0xFFFFFFFF
jmp 0x1f229f
movq -0x20(%rsp), %rax
movq (%rax), %rax
movq -0x28(%rsp), %rcx
cmpq (%rcx), %rax
jne 0x1f2295
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x1f223d
movl $0xffffffff, -0x4(%rsp) # imm = 0xFFFFFFFF
jmp 0x1f229f
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1f2291
movq -0x20(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x28(%rsp), %rcx
cmpq 0x40(%rcx), %rax
jae 0x1f226f
movl $0xffffffff, -0x4(%rsp) # imm = 0xFFFFFFFF
jmp 0x1f229f
movq -0x20(%rsp), %rax
movq 0x40(%rax), %rax
movq -0x28(%rsp), %rcx
cmpq 0x40(%rcx), %rax
jne 0x1f228d
movl $0x0, -0x4(%rsp)
jmp 0x1f229f
jmp 0x1f228f
jmp 0x1f2291
jmp 0x1f2293
jmp 0x1f2295
jmp 0x1f2297
movl $0x1, -0x4(%rsp)
movl -0x4(%rsp), %eax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/tir_stream.c
// Function: tir_compactboundaries
static const TIRPair** tir_compactboundaries(GtUword *numofboundaries,
                                             const GtArrayTIRPair *pairs)
{
  GtUword countboundaries = 0, nextfill = 0;
  const TIRPair *bd, **bdptrtab = NULL;

  for (bd = pairs->spaceTIRPair; bd < pairs->spaceTIRPair +
                                                 pairs->nextfreeTIRPair; bd++) {
    gt_assert(bd != NULL);
    if (!bd->skip)
      countboundaries++;
  }
  if (countboundaries > 0) {
    bdptrtab = gt_malloc(sizeof (TIRPair *) * countboundaries);
    nextfill = 0;
    for (bd = pairs->spaceTIRPair; bd < pairs->spaceTIRPair +
                                                 pairs->nextfreeTIRPair; bd++) {
      gt_assert(bd != NULL);
      if (!bd->skip)
        bdptrtab[nextfill++] = bd;
    }
  }
  *numofboundaries = countboundaries;
  return bdptrtab;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
movq 0x28(%rsp), %rdx
imulq $0x50, 0x10(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x1f2697
jmp 0x1f2627
cmpq $0x0, 0x10(%rsp)
jne 0x1f2667
movq 0x44996a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3239d3(%rip), %rsi    # 0x516013
leaq 0x376f4e(%rip), %rdx    # 0x569595
leaq 0x376f52(%rip), %rcx    # 0x5695a0
leaq 0x376bda(%rip), %r8     # 0x56922f
movl $0x120, %r9d            # imm = 0x120
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f2669
movq 0x10(%rsp), %rax
testb $0x1, 0x30(%rax)
jne 0x1f2682
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x1f2684
movq 0x10(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x10(%rsp)
jmp 0x1f2606
cmpq $0x0, 0x20(%rsp)
jbe 0x1f2780
movq 0x20(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x376b7c(%rip), %rsi    # 0x56922f
movl $0x125, %edx            # imm = 0x125
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
movq 0x28(%rsp), %rdx
imulq $0x50, 0x10(%rdx), %rdx
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x1f277e
jmp 0x1f26fd
cmpq $0x0, 0x10(%rsp)
jne 0x1f273d
movq 0x449894(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3238fd(%rip), %rsi    # 0x516013
leaq 0x376e78(%rip), %rdx    # 0x569595
leaq 0x376e7c(%rip), %rcx    # 0x5695a0
leaq 0x376b04(%rip), %r8     # 0x56922f
movl $0x129, %r9d            # imm = 0x129
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f273f
movq 0x10(%rsp), %rax
testb $0x1, 0x30(%rax)
jne 0x1f2769
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x18(%rsp)
movq %rdx, (%rax,%rcx,8)
jmp 0x1f276b
movq 0x10(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x10(%rsp)
jmp 0x1f26d8
jmp 0x1f2780
movq 0x20(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/tir_stream.c
// Function: gt_tir_store_TSDs
static void gt_tir_store_TSDs(void *info, const GtQuerymatch *querymatch)
{
  Seed *nextfree;
  TSDinfo *TSDs = (TSDinfo *) info;

  /* store the TSD  */
  GT_GETNEXTFREEINARRAY(nextfree, &TSDs->TSDs, Seed, 100);
  nextfree->pos1 = TSDs->left_start_pos + gt_querymatch_dbstart(querymatch);
  nextfree->offset = TSDs->right_start_pos
                       + gt_querymatch_querystart(querymatch)
                       - (nextfree->pos1);
  nextfree->len = gt_querymatch_querylen(querymatch);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x1f27ba
movq 0x18(%rsp), %rax
movq 0x20(%rax), %rax
addq $0x0, %rax
movq 0x18(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x1f2864
movq $0x64, 0x10(%rsp)
xorl %eax, %eax
cmpq 0x10(%rsp), %rax
jbe 0x1f2820
movq 0x4497b1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32381a(%rip), %rsi    # 0x516013
leaq 0x3269a7(%rip), %rdx    # 0x5191a7
leaq 0x376ccb(%rip), %rcx    # 0x5694d2
leaq 0x376a21(%rip), %r8     # 0x56922f
movl $0xba, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f2822
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %rax
addq 0x18(%rax), %rcx
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rax
imulq $0x28, 0x18(%rax), %rsi
leaq 0x3769e1(%rip), %rdx    # 0x56922f
movl $0xba, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x1f2866
movq 0x18(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x1f28aa
movq 0x449727(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x323790(%rip), %rsi    # 0x516013
leaq 0x376c5a(%rip), %rdx    # 0x5694e4
leaq 0x376c41(%rip), %rcx    # 0x5694d2
leaq 0x376997(%rip), %r8     # 0x56922f
movl $0xba, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f28ac
jmp 0x1f28ae
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rsp), %rdx
movq 0x20(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x20(%rdx)
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
callq 0x2676b0
movq (%rsp), %rcx
addq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
callq 0x2676f0
movq 0x8(%rsp), %rcx
addq %rax, %rcx
movq 0x20(%rsp), %rax
subq (%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rdi
callq 0x2676a0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x18(%rax)
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/type_checker_builtin.c
// Function: type_checker_builtin_find_type
static const char* type_checker_builtin_find_type(const char *gft_string)
{
  void *result;
  gt_assert(gft_string);
  /* do not convert undefined string */
  gt_assert(strcmp(gft_string, "undefined"));
  result = bsearch(&gft_string,
                   gt_feature_node_type_strings,
                   sizeof (gt_feature_node_type_strings) /
                   sizeof (gt_feature_node_type_strings[0]),
                   sizeof (char*),
                   gt_strcmpptr);
  if (result)
    return *(char**) result;
  return NULL;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1f4799
movq 0x447838(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3218a1(%rip), %rsi    # 0x516013
leaq 0x3756cf(%rip), %rdx    # 0x569e48
leaq 0x3756d3(%rip), %rcx    # 0x569e53
leaq 0x375671(%rip), %r8     # 0x569df8
movl $0x3e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f479b
jmp 0x1f479d
movq 0x8(%rsp), %rdi
leaq 0x33949c(%rip), %rsi    # 0x52dc45
callq 0x19980
cmpl $0x0, %eax
jne 0x1f47eb
movq 0x4477e6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x32184f(%rip), %rsi    # 0x516013
leaq 0x3756a7(%rip), %rdx    # 0x569e72
leaq 0x375681(%rip), %rcx    # 0x569e53
leaq 0x37561f(%rip), %r8     # 0x569df8
movl $0x40, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f47ed
leaq 0x8(%rsp), %rdi
leaq 0x4492e7(%rip), %rsi    # 0x63dae0
movl $0x15, %edx
movl $0x8, %ecx
leaq -0xd476a(%rip), %r8     # 0x1200a0
callq 0x198e0
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x1f4828
movq (%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x1f4831
movq $0x0, 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/typecheck_info.c
// Function: gt_typecheck_info_delete
void gt_typecheck_info_delete(GtTypecheckInfo *tci)
{
  if (!tci) return;
  gt_option_delete(tci->typecheck_option);
  gt_str_delete(tci->typecheck);
  gt_free(tci);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1f488e
jmp 0x1f48bc
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xf5df0
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x11f560
movq (%rsp), %rdi
leaq 0x375688(%rip), %rsi    # 0x569f3a
movl $0x2c, %edx
callq 0xe88c0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/typecheck_info.c
// Function: gt_typecheck_info_option_used
bool gt_typecheck_info_option_used(const GtTypecheckInfo *tci)
{
  gt_assert(tci && tci->typecheck_option);
  if (gt_option_is_set(tci->typecheck_option) || tci->typecheck_built_in)
    return true;
  return false;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x1f4a5d
movq 0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1f4a95
movq 0x44753c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3215a5(%rip), %rsi    # 0x516013
leaq 0x3756e9(%rip), %rdx    # 0x56a15e
leaq 0x3756ff(%rip), %rcx    # 0x56a17b
leaq 0x3754b7(%rip), %r8     # 0x569f3a
movl $0x58, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f4a97
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xf74a0
testb $0x1, %al
jne 0x1f4ab4
movq 0x8(%rsp), %rax
testb $0x1, 0x10(%rax)
je 0x1f4abb
movb $0x1, 0x17(%rsp)
jmp 0x1f4ac0
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/typecheck_info.c
// Function: get_obo_path
static GtStr* get_obo_path(GtError *err)
{
  const char *progname;
  GtStr *obo_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, ' '));
  obo_path = gt_get_gtdata_path(gt_str_get(prog), err);
  if (obo_path)
    gt_str_append_cstr(obo_path, "/obo_files/");
  gt_str_delete(prog);
  return obo_path;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1f4d49
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1f4d11
jmp 0x1f4d49
movq 0x447288(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3212f1(%rip), %rsi    # 0x516013
leaq 0x321496(%rip), %rdx    # 0x5161bf
leaq 0x3754c4(%rip), %rcx    # 0x56a1f4
leaq 0x375203(%rip), %r8     # 0x569f3a
movl $0x62, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f4d4b
movq 0x30(%rsp), %rdi
callq 0xd8c20
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x1f4d9a
movq 0x447237(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3212a0(%rip), %rsi    # 0x516013
leaq 0x33a83d(%rip), %rdx    # 0x52f5b7
leaq 0x375473(%rip), %rcx    # 0x56a1f4
leaq 0x3751b2(%rip), %r8     # 0x569f3a
movl $0x64, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f4d9c
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 0x1f4e10
movq 0x20(%rsp), %rdi
leaq 0x3753f6(%rip), %rsi    # 0x56a201
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/extended/uint64hashtable.c
// Function: gt_uint64hashtable_new
GtUint64hashtable *gt_uint64hashtable_new(size_t nof_elements)
{
  GtUint64hashtable *table;
  const double loadfactor = 1.30;

  table = gt_malloc(sizeof (*table));
  table->countcollisions = 0;
  table->allentries = 0;
  table->zero_occurs = false;
  table->zero_count = 0;
  table->alloc
    = gt_uint64hashtable_get_size((size_t)(1 + loadfactor *
                                               (double) nof_elements));
  table->hspace = gt_calloc(table->alloc, sizeof (*table->hspace));
  return table;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movabsq $0x3ff4cccccccccccd, %rax # imm = 0x3FF4CCCCCCCCCCCD
movq %rax, (%rsp)
leaq 0x3753ca(%rip), %rsi    # 0x56a218
movl $0x38, %edi
movl $0x7e, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x28(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x20(%rax)
movaps 0x323a97(%rip), %xmm1   # 0x518930
movq 0x10(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x323a95(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x37534e(%rip), %xmm1   # 0x56a210
mulsd %xmm1, %xmm0
movsd 0x322372(%rip), %xmm1   # 0x517240
addsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rdi
movq %rdi, %rcx
sarq $0x3f, %rcx
movsd 0x323e87(%rip), %xmm1   # 0x518d70
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
andq %rcx, %rax
orq %rax, %rdi
callq 0x1f4f40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movl $0x10, %esi
leaq 0x3752fa(%rip), %rdx    # 0x56a218
movl $0x86, %ecx
callq 0xe83c0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uint64hashtable.c
// Function: gt_uint64hashtable_countsum_get
GtUword gt_uint64hashtable_countsum_get(const GtUint64hashtable *table)
{
  size_t idx;
  GtUword sumcount = 0;

  for (idx=0; idx < table->alloc; idx++)
  {
    if (table->hspace[idx].count > 0)
    {
      sumcount += table->hspace[idx].count;
    }
  }
  return sumcount + table->zero_count;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq $0x0, -0x18(%rsp)
movq $0x0, -0x10(%rsp)
movq -0x10(%rsp), %rax
movq -0x8(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x1f59e6
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq -0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
jbe 0x1f59d4
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq -0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
addq -0x18(%rsp), %rax
movq %rax, -0x18(%rsp)
jmp 0x1f59d6
movq -0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rsp)
jmp 0x1f5987
movq -0x18(%rsp), %rax
movq -0x8(%rsp), %rcx
addq 0x20(%rcx), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uint64hashtable.c
// Function: compareGtUint64hashstoredvalue
static int compareGtUint64hashstoredvalue(const void *a,const void *b,
                                          void *data)
{
  GtUint64hashstoredvalue *hspace = (GtUint64hashstoredvalue *) data;
  uint32_t va = *(const uint32_t *) a;
  uint32_t vb = *(const uint32_t *) b;

  if (hspace[va].key < hspace[vb].key)
  {
    return -1;
  }
  if (hspace[va].key > hspace[vb].key)
  {
    return 1;
  }
  gt_assert(false);
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movl (%rax), %eax
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x10(%rsp), %rcx
movl 0x8(%rsp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jae 0x1f5d65
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x1f5dd1
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x10(%rsp), %rcx
movl 0x8(%rsp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jbe 0x1f5d97
movl $0x1, 0x34(%rsp)
jmp 0x1f5dd1
jmp 0x1f5d99
movq 0x446200(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x320269(%rip), %rsi    # 0x516013
leaq 0x362fb2(%rip), %rdx    # 0x558d63
leaq 0x374772(%rip), %rcx    # 0x56a52a
leaq 0x374459(%rip), %r8     # 0x56a218
movl $0x6b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uniq_stream.c
// Function: gt_uniq_stream_class
const GtNodeStreamClass* gt_uniq_stream_class(void)
{
  static const GtNodeStreamClass *nsc = NULL;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtUniqStream),
                                   uniq_stream_free,
                                   uniq_stream_next);
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x44cbd2(%rip)    # 0x642f50
jne 0x1f639f
movl $0x28, %edi
leaq 0x24(%rip), %rsi        # 0x1f63b0
leaq 0x6d(%rip), %rdx        # 0x1f6400
callq 0x1b1ae0
movq %rax, 0x44cbb1(%rip)    # 0x642f50
callq 0x9f280
movq 0x44cba5(%rip), %rax    # 0x642f50
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uniq_stream.c
// Function: uniq_stream_free
static void uniq_stream_free(GtNodeStream *ns)
{
  GtUniqStream *us = uniq_stream_cast(ns);
  gt_genome_node_delete(us->first_node);
  gt_genome_node_delete(us->second_node);
  gt_node_stream_delete(us->in_stream);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x1f6370
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x173180
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x173180
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x1b1cb0
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uniq_stream.c
// Function: gt_uniq_stream_new
GtNodeStream* gt_uniq_stream_new(GtNodeStream *in_stream)
{
  GtNodeStream *ns;
  GtUniqStream *us;
  gt_assert(in_stream && gt_node_stream_is_sorted(in_stream));
  ns = gt_node_stream_create(gt_uniq_stream_class(), true);
  us = uniq_stream_cast(ns);
  us->in_stream = gt_node_stream_ref(in_stream);
  return ns;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1f668f
movq 0x10(%rsp), %rdi
callq 0x1b2090
testb $0x1, %al
jne 0x1f66c7
movq 0x44590a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f973(%rip), %rsi    # 0x516013
leaq 0x378aa9(%rip), %rdx    # 0x56f150
leaq 0x378ad3(%rip), %rcx    # 0x56f181
leaq 0x378adf(%rip), %r8     # 0x56f194
movl $0xa5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f66c9
callq 0x1f6370
movq %rax, %rdi
movl $0x1, %esi
callq 0x1b1b80
movq %rax, 0x8(%rsp)
callq 0x1f6370
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b20f0
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
callq 0x1b1c50
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/uniq_stream.c
// Function: uniq
static bool uniq(GtGenomeNode **first_node, GtGenomeNode **second_node)
{
  bool first_score_is_defined, second_score_is_defined;
  float first_score = 0.0, second_score = 0.0;
  gt_assert(*first_node && *second_node);
  if (nodes_are_equal_feature_trees(*first_node, *second_node)) {
    if ((first_score_is_defined =
           gt_feature_node_score_is_defined((GtFeatureNode*) *first_node))) {
      first_score = gt_feature_node_get_score((GtFeatureNode*) *first_node);
    }
    if ((second_score_is_defined =
           gt_feature_node_score_is_defined((GtFeatureNode*) *second_node))) {
      second_score = gt_feature_node_get_score((GtFeatureNode*) *second_node);
    }
    if ((!first_score_is_defined && !second_score_is_defined) ||
        (first_score_is_defined && !second_score_is_defined) ||
        (first_score_is_defined && second_score_is_defined &&
         first_score >= second_score)) {
      /* keep first node */
      gt_genome_node_delete(*second_node);
    }
    else {
      /* keep second node */
      gt_genome_node_delete(*first_node);
      *first_node = *second_node;
    }
    *second_node = NULL;
    return true;
  }
  return false;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rsp)
xorps %xmm0, %xmm0
movss %xmm0, 0x4(%rsp)
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1f6756
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1f678e
movq 0x445843(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x31f8ac(%rip), %rsi    # 0x516013
leaq 0x368ab5(%rip), %rdx    # 0x55f223
leaq 0x34ac8b(%rip), %rcx    # 0x541400
leaq 0x378a18(%rip), %r8     # 0x56f194
movl $0x45, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1f6790
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rax
movq (%rax), %rsi
callq 0x1f68a0
testb $0x1, %al
jne 0x1f67ae
jmp 0x1f6882
movq 0x18(%rsp), %rax
movq (%rax), %rdi
callq 0x16d510
movb %al, %cl
andb $0x1, %cl
movb %cl, 0xf(%rsp)
testb $0x1, %al
jne 0x1f67ca
jmp 0x1f67dd
movq 0x18(%rsp), %rax
movq (%rax), %rdi
callq 0x16df90
movss %xmm0, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x16d510
movb %al, %cl
andb $0x1, %cl
movb %cl, 0xe(%rsp)
testb $0x1, %al
jne 0x1f67f9
jmp 0x1f680c
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x16df90
movss %xmm0, 0x4(%rsp)
testb $0x1, 0xf(%rsp)
jne 0x1f681a
testb $0x1, 0xe(%rsp)
je 0x1f6843
testb $0x1, 0xf(%rsp)
je 0x1f6828
testb $0x1, 0xe(%rsp)
je 0x1f6843
testb $0x1, 0xf(%rsp)
je 0x1f6852
testb $0x1, 0xe(%rsp)
je 0x1f6852
movss 0x8(%rsp), %xmm0
ucomiss 0x4(%rsp), %xmm0
jb 0x1f6852
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x173180
jmp 0x1f686f
movq 0x18(%rsp), %rax
movq (%rax), %rdi
callq 0x173180
movq 0x10(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq $0x0, (%rax)
movb $0x1, 0x27(%rsp)
jmp 0x1f6887
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)