LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqid2file.c
// Function: seqid2file_check
static int seqid2file_check(void *data, GT_UNUSED GtError *err)
{
  GtSeqid2FileInfo *info = (GtSeqid2FileInfo*) data;
  gt_error_check(err);
  gt_assert(info);
  if (gt_str_length(info->seqfile)) {
    gt_assert(!gt_str_array_size(info->seqfiles));
    gt_str_array_add(info->seqfiles, info->seqfile);
  }
  return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x1d47f7
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d47bf
jmp 0x1d47f7
movq 0x4677da(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x341843(%rip), %rsi    # 0x516013
leaq 0x3419e8(%rip), %rdx    # 0x5161bf
leaq 0x390ab0(%rip), %rcx    # 0x56528e
leaq 0x3906e9(%rip), %r8     # 0x564ece
movl $0x38, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d47f9
jmp 0x1d47fb
cmpq $0x0, (%rsp)
jne 0x1d483a
movq 0x467797(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x341800(%rip), %rsi    # 0x516013
leaq 0x391886(%rip), %rdx    # 0x5660a0
leaq 0x390a6d(%rip), %rcx    # 0x56528e
leaq 0x3906a6(%rip), %r8     # 0x564ece
movl $0x39, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d483c
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
je 0x1d48b1
jmp 0x1d4851
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
je 0x1d489b
movq 0x467736(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x34179f(%rip), %rsi    # 0x516013
leaq 0x390a24(%rip), %rdx    # 0x56529f
leaq 0x390a0c(%rip), %rcx    # 0x56528e
leaq 0x390645(%rip), %r8     # 0x564ece
movl $0x3b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d489d
movq (%rsp), %rax
movq (%rax), %rdi
movq (%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x11f840
xorl %eax, %eax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqid2file.c
// Function: gt_seqid2file_option_used
bool gt_seqid2file_option_used(GtSeqid2FileInfo *s2fi)
{
  if (gt_str_array_size(s2fi->seqfiles) || gt_str_length(s2fi->region_mapping)
       || gt_str_length(s2fi->seqfile) || gt_str_length(s2fi->encseq))
    return true;
  return false;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jne 0x1d4948
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jne 0x1d4948
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jne 0x1d4948
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
je 0x1d494f
movb $0x1, 0x17(%rsp)
jmp 0x1d4954
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqpos_classifier.c
// Function: gt_seqpos_classifier_new
GtSeqposClassifier *gt_seqpos_classifier_new(const char *filename,
    const char *feature_type)
{
  GtSeqposClassifier *seqpos_classifier;
  seqpos_classifier = gt_malloc(sizeof (GtSeqposClassifier));
  seqpos_classifier->annotation_stream = gt_gff3_in_stream_new_sorted(filename);
  seqpos_classifier->fn = NULL;
  seqpos_classifier->fni = NULL;
  seqpos_classifier->gn = NULL;
  seqpos_classifier->nof_specified_ft_found = 0;
  seqpos_classifier->specified_ft = feature_type;
  return seqpos_classifier;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl $0x40, %edi
leaq 0x38fa1a(%rip), %rsi    # 0x5654f4
movl $0x2c, %edx
callq 0xe80f0
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
callq 0x1747b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
movq (%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqpos_classifier.c
// Function: gt_seqpos_classifier_delete
void gt_seqpos_classifier_delete(GtSeqposClassifier *seqpos_classifier)
{
  if (seqpos_classifier != NULL)
  {
    if (seqpos_classifier->fni != NULL)
    {
      gt_feature_node_iterator_delete(seqpos_classifier->fni);
    }
    if (seqpos_classifier->gn != NULL)
    {
      gt_genome_node_delete(seqpos_classifier->gn);
    }
    gt_node_stream_delete(seqpos_classifier->annotation_stream);
    gt_free(seqpos_classifier);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x1d619d
movq (%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1d6164
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x170f50
movq (%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1d617c
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x173180
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x1b1cb0
movq (%rsp), %rdi
leaq 0x38f361(%rip), %rsi    # 0x5654f4
movl $0xea, %edx
callq 0xe88c0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqpos_classifier.c
// Function: gt_seqpos_classifier_next_fn
static int gt_seqpos_classifier_next_fn(GtSeqposClassifier *seqpos_classifier,
    GtError *err)
{
  int had_err = 0;
  gt_assert(seqpos_classifier != NULL);
  if (seqpos_classifier->fni != NULL)
  {
    gt_feature_node_iterator_delete(seqpos_classifier->fni);
    seqpos_classifier->fni = NULL;
  }
  while (true)
  {
    if (seqpos_classifier->gn != NULL)
    {
      gt_genome_node_delete(seqpos_classifier->gn);
    }
    had_err = gt_node_stream_next(seqpos_classifier->annotation_stream,
        &seqpos_classifier->gn, err);
    if (had_err != 0 || seqpos_classifier->gn == NULL)
    {
      seqpos_classifier->fn = NULL;
      seqpos_classifier->gn = NULL;
      return had_err;
    }
    else
    {
      if ((seqpos_classifier->fn =
            gt_feature_node_try_cast(seqpos_classifier->gn)) != NULL)
      {
        seqpos_classifier->fni =
          gt_feature_node_iterator_new(seqpos_classifier->fn);
        return had_err;
      }
    }
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x1d61f6
movq 0x465ddb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33fe44(%rip), %rsi    # 0x516013
leaq 0x38f431(%rip), %rdx    # 0x565607
leaq 0x38f4aa(%rip), %rcx    # 0x565687
leaq 0x38f310(%rip), %r8     # 0x5654f4
movl $0x3a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d61f8
movq 0x18(%rsp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1d621f
movq 0x18(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x170f50
movq 0x18(%rsp), %rax
movq $0x0, 0x18(%rax)
jmp 0x1d6221
movq 0x18(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1d623b
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x173180
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
addq $0x8, %rsi
movq 0x10(%rsp), %rdx
callq 0x1b1d90
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x1d626d
movq 0x18(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1d6291
movq 0x18(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x8(%rax)
movl 0xc(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x1d62d9
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x170450
movq 0x18(%rsp), %rcx
movq %rax, 0x10(%rcx)
cmpq $0x0, %rax
je 0x1d62d2
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x170b00
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
movl 0xc(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x1d62d9
jmp 0x1d62d4
jmp 0x1d6221
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_add_stream.c
// Function: gt_sequence_node_add_stream_class
const GtNodeStreamClass* gt_sequence_node_add_stream_class(void)
{
  static const GtNodeStreamClass *nsc = NULL;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtSequenceNodeAddStream),
                                   sequence_node_add_stream_free,
                                   sequence_node_add_stream_next);
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x46c792(%rip)    # 0x642ed0
jne 0x1d675f
movl $0x40, %edi
leaq 0x24(%rip), %rsi        # 0x1d6770
leaq 0x7d(%rip), %rdx        # 0x1d67d0
callq 0x1b1ae0
movq %rax, 0x46c771(%rip)    # 0x642ed0
callq 0x9f280
movq 0x46c765(%rip), %rax    # 0x642ed0
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_add_stream.c
// Function: sequence_node_add_stream_free
static void sequence_node_add_stream_free(GtNodeStream *ns)
{
  GtSequenceNodeAddStream *fs = gt_sequence_node_add_stream_cast(ns);
  gt_node_visitor_delete(fs->collect_vis);
  gt_cstr_table_delete(fs->seqid_table);
  gt_str_array_delete(fs->seqids);
  gt_node_stream_delete(fs->in_stream);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x1d6730
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1b29d0
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xa40d0
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x11fd20
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/sequence_node_add_stream.c
// Function: gt_sequence_node_add_stream_new
GtNodeStream* gt_sequence_node_add_stream_new(GtNodeStream *in_stream,
                                              GtRegionMapping *rm,
                                              GT_UNUSED GtError *err)
{
  GtNodeStream *ns = gt_node_stream_create(gt_sequence_node_add_stream_class(),
                                           gt_node_stream_is_sorted(in_stream));
  GtSequenceNodeAddStream *s = gt_sequence_node_add_stream_cast(ns);
  gt_assert(in_stream);
  s->rm = rm;
  s->in_stream = gt_node_stream_ref(in_stream);
  s->seqid_table = gt_cstr_table_new();
  s->seqids = NULL;
  s->cur_seqid = 0;
  s->collect_vis = gt_collect_ids_visitor_new(s->seqid_table);
  return ns;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
callq 0x1d6730
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
callq 0x1b2090
movq 0x8(%rsp), %rdi
movzbl %al, %esi
andl $0x1, %esi
callq 0x1b1b80
movq %rax, 0x18(%rsp)
callq 0x1d6730
movq %rax, %rdi
movq 0x18(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x1d6b23
movq 0x4654ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33f517(%rip), %rsi    # 0x516013
leaq 0x349920(%rip), %rdx    # 0x520423
leaq 0x38ec84(%rip), %rcx    # 0x56578e
leaq 0x38ec9d(%rip), %r8     # 0x5657ae
movl $0x7e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d6b25
movq 0x28(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x30(%rsp), %rdi
callq 0x1b1c50
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
callq 0xa39d0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x13a1e0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_stream.c
// Function: gt_sequence_node_out_stream_class
const GtNodeStreamClass* gt_sequence_node_out_stream_class(void)
{
  static const GtNodeStreamClass *nsc = NULL;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtSequenceNodeOutStream),
                                   sequence_node_out_stream_free,
                                   sequence_node_out_stream_next);
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x46c32a(%rip)    # 0x642ed8
jne 0x1d6bcf
movl $0x20, %edi
leaq 0x24(%rip), %rsi        # 0x1d6be0
leaq 0x6d(%rip), %rdx        # 0x1d6c30
callq 0x1b1ae0
movq %rax, 0x46c309(%rip)    # 0x642ed8
callq 0x9f280
movq 0x46c2fd(%rip), %rax    # 0x642ed8
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_stream.c
// Function: gt_sequence_node_out_stream_new
GtNodeStream* gt_sequence_node_out_stream_new(GtNodeStream *in_stream,
                                              GtFile *outfile,
                                              GT_UNUSED GtError *err)
{
  GtNodeStream *ns = gt_node_stream_create(gt_sequence_node_out_stream_class(),
                                           gt_node_stream_is_sorted(in_stream));
  GtSequenceNodeOutStream *s = gt_sequence_node_out_stream_cast(ns);
  gt_assert(in_stream);
  s->in_stream = gt_node_stream_ref(in_stream);
  s->sequence_node_out_visitor =
    gt_sequence_node_out_visitor_new(outfile);
  if  (!s->sequence_node_out_visitor) {
    gt_node_stream_delete(ns);
    return NULL;
  }
  return ns;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
callq 0x1d6ba0
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
callq 0x1b2090
movq (%rsp), %rdi
movzbl %al, %esi
andl $0x1, %esi
callq 0x1b1b80
movq %rax, 0x10(%rsp)
callq 0x1d6ba0
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x1d6ef1
movq 0x4650e0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33f149(%rip), %rsi    # 0x516013
leaq 0x349552(%rip), %rdx    # 0x520423
leaq 0x38e926(%rip), %rcx    # 0x5657fe
leaq 0x38e93f(%rip), %r8     # 0x56581e
movl $0x68, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d6ef3
movq 0x28(%rsp), %rdi
callq 0x1b1c50
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rdi
callq 0x1d7610
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1d6f40
movq 0x10(%rsp), %rdi
callq 0x1b1cb0
movq $0x0, 0x30(%rsp)
jmp 0x1d6f4a
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: gt_sequence_node_out_visitor_class
const GtNodeVisitorClass* gt_sequence_node_out_visitor_class()
{
  static GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc) {
    nvc = gt_node_visitor_class_new(sizeof (GtSequenceNodeOutVisitor),
                                    sequence_node_out_visitor_free,
                                    sequence_node_out_visitor_comment_node,
                                    sequence_node_out_visitor_feature_node,
                                    sequence_node_out_visitor_region_node,
                                    sequence_node_out_visitor_sequence_node,
                                    sequence_node_out_visitor_eof_node);
    gt_node_visitor_class_set_meta_node_func(nvc,
                                           sequence_node_out_visitor_meta_node);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x46bf72(%rip)    # 0x642ee0
jne 0x1d6fc2
movl $0x30, %edi
leaq 0x54(%rip), %rsi        # 0x1d6fd0
leaq 0x8d(%rip), %rdx        # 0x1d7010
leaq 0x176(%rip), %rcx       # 0x1d7100
leaq 0x25f(%rip), %r8        # 0x1d71f0
leaq 0x348(%rip), %r9        # 0x1d72e0
leaq 0x491(%rip), %rax       # 0x1d7430
movq %rax, (%rsp)
callq 0x1b2170
movq %rax, 0x46bf31(%rip)    # 0x642ee0
movq 0x46bf2a(%rip), %rdi    # 0x642ee0
leaq 0x563(%rip), %rsi       # 0x1d7520
callq 0x1b2250
callq 0x9f280
movq 0x46bf12(%rip), %rax    # 0x642ee0
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: sequence_node_out_visitor_comment_node
static int sequence_node_out_visitor_comment_node(GtNodeVisitor *nv,
                                                   GtCommentNode *cn,
                                                   GT_UNUSED GtError *err)
{
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  int had_err = 0;
  gt_error_check(err);
  gt_assert(v && cn);

  gt_queue_add(v->node_buffer, cn);

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1d7092
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d705a
jmp 0x1d7092
movq 0x464f3f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33efa8(%rip), %rsi    # 0x516013
leaq 0x33f14d(%rip), %rdx    # 0x5161bf
leaq 0x38e845(%rip), %rcx    # 0x5658be
leaq 0x38e815(%rip), %r8     # 0x565895
movl $0x4a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d7094
jmp 0x1d7096
cmpq $0x0, 0x8(%rsp)
je 0x1d70a6
cmpq $0x0, 0x18(%rsp)
jne 0x1d70de
movq 0x464ef3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ef5c(%rip), %rsi    # 0x516013
leaq 0x37d259(%rip), %rdx    # 0x554317
leaq 0x38e7f9(%rip), %rcx    # 0x5658be
leaq 0x38e7c9(%rip), %r8     # 0x565895
movl $0x4b, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d70e0
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0xfd170
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: sequence_node_out_visitor_feature_node
static int sequence_node_out_visitor_feature_node(GtNodeVisitor *nv,
                                                  GtFeatureNode *fn,
                                                  GT_UNUSED GtError *err)
{
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  int had_err = 0;
  gt_error_check(err);
  gt_assert(v && fn);

  gt_queue_add(v->node_buffer, fn);

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1d7182
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d714a
jmp 0x1d7182
movq 0x464e4f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33eeb8(%rip), %rsi    # 0x516013
leaq 0x33f05d(%rip), %rdx    # 0x5161bf
leaq 0x38e77c(%rip), %rcx    # 0x5658e5
leaq 0x38e725(%rip), %r8     # 0x565895
movl $0x74, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d7184
jmp 0x1d7186
cmpq $0x0, 0x8(%rsp)
je 0x1d7196
cmpq $0x0, 0x18(%rsp)
jne 0x1d71ce
movq 0x464e03(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ee6c(%rip), %rsi    # 0x516013
leaq 0x3903ba(%rip), %rdx    # 0x567568
leaq 0x38e730(%rip), %rcx    # 0x5658e5
leaq 0x38e6d9(%rip), %r8     # 0x565895
movl $0x75, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d71d0
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0xfd170
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: sequence_node_out_visitor_region_node
static int sequence_node_out_visitor_region_node(GtNodeVisitor *nv,
                                                 GtRegionNode *rn,
                                                 GT_UNUSED GtError *err)
{
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  int had_err = 0;
  gt_error_check(err);
  gt_assert(v && rn);

  gt_queue_add(v->node_buffer, rn);

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1d7272
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d723a
jmp 0x1d7272
movq 0x464d5f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33edc8(%rip), %rsi    # 0x516013
leaq 0x33ef6d(%rip), %rdx    # 0x5161bf
leaq 0x38e6b3(%rip), %rcx    # 0x56590c
leaq 0x38e635(%rip), %r8     # 0x565895
movl $0x58, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d7274
jmp 0x1d7276
cmpq $0x0, 0x8(%rsp)
je 0x1d7286
cmpq $0x0, 0x18(%rsp)
jne 0x1d72be
movq 0x464d13(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ed7c(%rip), %rsi    # 0x516013
leaq 0x37d1cf(%rip), %rdx    # 0x55446d
leaq 0x38e667(%rip), %rcx    # 0x56590c
leaq 0x38e5e9(%rip), %r8     # 0x565895
movl $0x59, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d72c0
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0xfd170
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: sequence_node_out_visitor_sequence_node
static int sequence_node_out_visitor_sequence_node(GtNodeVisitor *nv,
                                                   GtSequenceNode *sn,
                                                   GT_UNUSED GtError *err)
{
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  GT_UNUSED GtFeatureNode *node;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(v && sn);

  gt_fasta_show_entry(gt_sequence_node_get_description(sn),
                      gt_sequence_node_get_sequence(sn),
                      gt_sequence_node_get_sequence_length(sn),
                      v->width, v->outfile);

  if (v->keep_sequence_nodes)
    gt_queue_add(v->node_buffer, sn);
  else
    gt_genome_node_delete((GtGenomeNode*) sn);

  return had_err;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x28(%rsp)
movl $0x0, 0x1c(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1d7362
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d732a
jmp 0x1d7362
movq 0x464c6f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ecd8(%rip), %rsi    # 0x516013
leaq 0x33ee7d(%rip), %rdx    # 0x5161bf
leaq 0x38e5e9(%rip), %rcx    # 0x565932
leaq 0x38e545(%rip), %r8     # 0x565895
movl $0x34, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d7364
jmp 0x1d7366
cmpq $0x0, 0x28(%rsp)
je 0x1d7376
cmpq $0x0, 0x38(%rsp)
jne 0x1d73ae
movq 0x464c23(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ec8c(%rip), %rsi    # 0x516013
leaq 0x37d114(%rip), %rdx    # 0x5544a2
leaq 0x38e59d(%rip), %rcx    # 0x565932
leaq 0x38e4f9(%rip), %r8     # 0x565895
movl $0x35, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d73b0
movq 0x38(%rsp), %rdi
callq 0x1d65f0
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
callq 0x1d6650
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rdi
callq 0x1d66b0
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x28(%rsp), %rax
movq 0x18(%rax), %r8
callq 0xdbd10
movq 0x28(%rsp), %rax
testb $0x1, 0x28(%rax)
je 0x1d741c
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0xfd170
jmp 0x1d7426
movq 0x38(%rsp), %rdi
callq 0x173180
movl 0x1c(%rsp), %eax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: sequence_node_out_visitor_eof_node
static int sequence_node_out_visitor_eof_node(GtNodeVisitor *nv,
                                              GtEOFNode *en,
                                              GT_UNUSED GtError *err)
{
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  int had_err = 0;
  gt_error_check(err);
  gt_assert(v && en);

  gt_queue_add(v->node_buffer, en);

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1d74b2
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d747a
jmp 0x1d74b2
movq 0x464b1f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33eb88(%rip), %rsi    # 0x516013
leaq 0x33ed2d(%rip), %rdx    # 0x5161bf
leaq 0x38e4c1(%rip), %rcx    # 0x56595a
leaq 0x38e3f5(%rip), %r8     # 0x565895
movl $0x66, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d74b4
jmp 0x1d74b6
cmpq $0x0, 0x8(%rsp)
je 0x1d74c6
cmpq $0x0, 0x18(%rsp)
jne 0x1d74fe
movq 0x464ad3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33eb3c(%rip), %rsi    # 0x516013
leaq 0x37cfe3(%rip), %rdx    # 0x5544c1
leaq 0x38e475(%rip), %rcx    # 0x56595a
leaq 0x38e3a9(%rip), %r8     # 0x565895
movl $0x67, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d7500
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0xfd170
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: sequence_node_out_visitor_meta_node
static int sequence_node_out_visitor_meta_node(GtNodeVisitor *nv,
                                               GtMetaNode *mn,
                                               GT_UNUSED GtError *err)
{
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  int had_err = 0;
  gt_error_check(err);
  gt_assert(v && mn);

  gt_queue_add(v->node_buffer, mn);

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1d75a2
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d756a
jmp 0x1d75a2
movq 0x464a2f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ea98(%rip), %rsi    # 0x516013
leaq 0x33ec3d(%rip), %rdx    # 0x5161bf
leaq 0x38e3f4(%rip), %rcx    # 0x56597d
leaq 0x38e305(%rip), %r8     # 0x565895
movl $0x82, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d75a4
jmp 0x1d75a6
cmpq $0x0, 0x8(%rsp)
je 0x1d75b6
cmpq $0x0, 0x18(%rsp)
jne 0x1d75ee
movq 0x4649e3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33ea4c(%rip), %rsi    # 0x516013
leaq 0x37cf13(%rip), %rdx    # 0x5544e1
leaq 0x38e3a8(%rip), %rcx    # 0x56597d
leaq 0x38e2b9(%rip), %r8     # 0x565895
movl $0x83, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d75f0
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0xfd170
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/sequence_node_out_visitor.c
// Function: gt_sequence_node_out_visitor_new
GtNodeVisitor* gt_sequence_node_out_visitor_new(GtFile *outfile)
{
  GtNodeVisitor *nv =
                   gt_node_visitor_create(gt_sequence_node_out_visitor_class());
  GtSequenceNodeOutVisitor *v = sequence_node_out_visitor_cast(nv);
  v->outfile = outfile;
  v->width = 80;
  v->keep_sequence_nodes = false;
  v->node_buffer = gt_queue_new();
  return nv;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x1d6f60
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x8(%rsp)
callq 0x1d6f60
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b2350
movq %rax, (%rsp)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movq (%rsp), %rax
movq $0x50, 0x20(%rax)
movq (%rsp), %rax
movb $0x0, 0x28(%rax)
callq 0xfd150
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/set_source_visitor.c
// Function: gt_set_source_visitor_new
GtNodeVisitor *gt_set_source_visitor_new(GtStr *newsource)
{
  GtNodeVisitor *nv;
  gt_assert(newsource);
  nv = gt_node_visitor_create(gt_set_source_visitor_class());
  GtSetSourceVisitor *ssv = set_source_visitor_cast(nv);
  ssv->newsource = gt_str_ref(newsource);
  return nv;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1d7799
movq 0x464838(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33e8a1(%rip), %rsi    # 0x516013
leaq 0x38e228(%rip), %rdx    # 0x5659a1
leaq 0x38e22b(%rip), %rcx    # 0x5659ab
leaq 0x38e23e(%rip), %r8     # 0x5659c5
movl $0x24, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d779b
callq 0x1d77f0
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x8(%rsp)
callq 0x1d77f0
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b2350
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
callq 0x11e360
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/set_source_visitor.c
// Function: gt_set_source_visitor_class
const GtNodeVisitorClass *gt_set_source_visitor_class()
{
  static const GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc)
  {
    nvc = gt_node_visitor_class_new(sizeof (GtSetSourceVisitor),
                                    set_source_visitor_free,
                                    NULL,
                                    set_source_visitor_visit_feature_node,
                                    NULL,
                                    NULL,
                                    NULL);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x46b6ea(%rip)    # 0x642ee8
jne 0x1d7832
movl $0x18, %edi
leaq 0x34(%rip), %rsi        # 0x1d7840
xorl %eax, %eax
movl %eax, %r9d
leaq 0x68(%rip), %rcx        # 0x1d7880
movq %r9, %rdx
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x1b2170
movq %rax, 0x46b6b6(%rip)    # 0x642ee8
callq 0x9f280
movq 0x46b6aa(%rip), %rax    # 0x642ee8
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/set_source_visitor.c
// Function: set_source_visitor_visit_feature_node
static int set_source_visitor_visit_feature_node(GtNodeVisitor *nv,
                                                 GtFeatureNode *fn,
                                                 GT_UNUSED GtError *error)
{
  GtSetSourceVisitor *ssv;
  gt_error_check(error);
  ssv = set_source_visitor_cast(nv);

  GtFeatureNode *current;
  GtFeatureNodeIterator *iter = gt_feature_node_iterator_new(fn);
  for (current  = gt_feature_node_iterator_next(iter);
       current != NULL;
       current  = gt_feature_node_iterator_next(iter))
  {
    gt_feature_node_set_source(current, ssv->newsource);
  }
  gt_feature_node_iterator_delete(iter);

  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1d78e3
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d78ab
jmp 0x1d78e3
movq 0x4646ee(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33e757(%rip), %rsi    # 0x516013
leaq 0x377ec0(%rip), %rdx    # 0x54f783
leaq 0x38e11d(%rip), %rcx    # 0x5659e7
leaq 0x38e0f4(%rip), %r8     # 0x5659c5
movl $0x36, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d78e5
callq 0x1d77f0
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0x170b00
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x170e30
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1d7946
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x16c170
movq 0x8(%rsp), %rdi
callq 0x170e30
movq %rax, 0x10(%rsp)
jmp 0x1d791a
movq 0x8(%rsp), %rdi
callq 0x170f50
xorl %eax, %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/shredder.c
// Function: gt_shredder_new
GtShredder* gt_shredder_new(GtBioseq *bioseq, GtUword minlength,
                                       GtUword maxlength)
{
  GtShredder *shredder = gt_calloc(1, sizeof *shredder);
  gt_assert(bioseq && minlength && minlength <= maxlength);
  shredder->bioseq = bioseq;
  shredder->minlength = minlength;
  shredder->maxlength = maxlength;
  shredder->sample_probability = 1.0;
  return shredder;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movl $0x1, %edi
movl $0x38, %esi
leaq 0x38e089(%rip), %rdx    # 0x565a0d
movl $0x23, %ecx
callq 0xe83c0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1d79af
cmpq $0x0, 0x18(%rsp)
je 0x1d79af
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jbe 0x1d79e7
movq 0x4645ea(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33e653(%rip), %rsi    # 0x516013
leaq 0x38e05e(%rip), %rdx    # 0x565a25
leaq 0x38e085(%rip), %rcx    # 0x565a53
leaq 0x38e038(%rip), %r8     # 0x565a0d
movl $0x24, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d79e9
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movsd 0x33f821(%rip), %xmm0   # 0x517240
movsd %xmm0, 0x30(%rax)
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/shredder.c
// Function: gt_shredder_shred
char* gt_shredder_shred(GtShredder *shredder, GtUword *fragment_offset,
                        GtUword *fragment_length, GtStr *desc)
{
  char *frag;
  gt_assert(shredder && fragment_length);
  while ((frag = generate_fragment(shredder, fragment_offset, fragment_length,
                                   desc))) {
    if (shredder->sample_probability == 1.0 ||
        gt_rand_0_to_1() <= shredder->sample_probability) {
      return frag;
    } else gt_free(frag);
  }
  return NULL;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x1d7bc8
cmpq $0x0, 0x18(%rsp)
jne 0x1d7c00
movq 0x4643d1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33e43a(%rip), %rsi    # 0x516013
leaq 0x38debe(%rip), %rdx    # 0x565a9e
leaq 0x38ded3(%rip), %rcx    # 0x565aba
leaq 0x38de1f(%rip), %r8     # 0x565a0d
movl $0x6c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d7c02
jmp 0x1d7c04
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rcx
callq 0x1d7ca0
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x1d7c80
movq 0x28(%rsp), %rax
movsd 0x30(%rax), %xmm0
movsd 0x33f606(%rip), %xmm1   # 0x517240
ucomisd %xmm1, %xmm0
jne 0x1d7c44
jp 0x1d7c44
jmp 0x1d7c5c
callq 0xec560
movaps %xmm0, %xmm1
movq 0x28(%rsp), %rax
movsd 0x30(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x1d7c68
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x1d7c89
movq 0x8(%rsp), %rdi
leaq 0x38dd99(%rip), %rsi    # 0x565a0d
movl $0x72, %edx
callq 0xe88c0
jmp 0x1d7c04
movq $0x0, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/snp_annotator_stream.c
// Function: gt_snp_annotator_stream_class
const GtNodeStreamClass* gt_snp_annotator_stream_class(void)
{
  static const GtNodeStreamClass *nsc = NULL;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtSNPAnnotatorStream),
                                   snp_annotator_stream_free,
                                   snp_annotator_stream_next);
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x46af62(%rip)    # 0x642ef0
jne 0x1d7faf
movl $0x58, %edi
leaq 0x24(%rip), %rsi        # 0x1d7fc0
leaq 0x1ad(%rip), %rdx       # 0x1d8150
callq 0x1b1ae0
movq %rax, 0x46af41(%rip)    # 0x642ef0
callq 0x9f280
movq 0x46af35(%rip), %rax    # 0x642ef0
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/snp_annotator_stream.c
// Function: snp_annotator_stream_free
static void snp_annotator_stream_free(GtNodeStream *ns)
{
  GtUword i;
  GtSNPAnnotatorStream *sas;
  if (!ns) return;
  sas = gt_snp_annotator_stream_cast(ns);
  gt_region_mapping_delete(sas->rmap);
  while (gt_queue_size(sas->snps) > 0) {
    gt_genome_node_delete((GtGenomeNode*) gt_queue_get(sas->snps));
  }
  while (gt_queue_size(sas->outqueue) > 0) {
    gt_genome_node_delete((GtGenomeNode*) gt_queue_get(sas->outqueue));
  }
  for (i = 0; i < gt_array_size(sas->instreams); i++) {
    gt_node_stream_delete(*(GtNodeStream**) gt_array_get(sas->instreams, i));
  }
  for (i = 0; i < gt_array_size(sas->cur_gene_set); i++) {
    gt_genome_node_delete(*(GtGenomeNode**) gt_array_get(sas->cur_gene_set, i));
  }
  gt_array_delete(sas->cur_gene_set);
  gt_node_stream_delete(sas->merge_stream);
  gt_array_delete(sas->instreams);
  gt_queue_delete(sas->snps);
  gt_queue_delete(sas->outqueue);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1d7fd6
jmp 0x1d814b
callq 0x1d7f80
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x1c7bd0
movq 0x10(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0xfd4d0
cmpq $0x0, %rax
jbe 0x1d8027
movq 0x10(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0xfd3f0
movq %rax, %rdi
callq 0x173180
jmp 0x1d7ffb
jmp 0x1d8029
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xfd4d0
cmpq $0x0, %rax
jbe 0x1d8055
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xfd3f0
movq %rax, %rdi
callq 0x173180
jmp 0x1d8029
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x1d80ae
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0x1b1cb0
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x1d805e
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x1d8105
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0x173180
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x1d80b7
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81f80
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x1b1cb0
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x81f80
movq 0x10(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0xfdf10
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xfdf10
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/snp_annotator_stream.c
// Function: gt_snp_annotator_stream_new
GtNodeStream* gt_snp_annotator_stream_new(GtNodeStream *gvf_stream,
                                          GtNodeStream *gff_stream,
                                          GtTransTable *trans_table,
                                          GtRegionMapping *rmap)
{
  GtSNPAnnotatorStream *sas;
  GtNodeStream *ns;
  gt_assert(gvf_stream && gff_stream && rmap);
  ns = gt_node_stream_create(gt_snp_annotator_stream_class(), true);
  sas = gt_snp_annotator_stream_cast(ns);
  sas->instreams = gt_array_new(sizeof (GtNodeStream*));
  (void) gt_node_stream_ref(gvf_stream);
  gt_array_add(sas->instreams, gvf_stream);
  (void) gt_node_stream_ref(gff_stream);
  gt_array_add(sas->instreams, gff_stream);
  sas->cur_gene_set = gt_array_new(sizeof (GtFeatureNode*));
  sas->merge_stream = gt_merge_stream_new(sas->instreams);
  sas->rmap = gt_region_mapping_ref(rmap);
  sas->cur_gene_range.start =
    sas->cur_gene_range.end = GT_UNDEF_UWORD;
  sas->snps = gt_queue_new();
  sas->outqueue = gt_queue_new();
  sas->tt = trans_table;
  return ns;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1d8780
cmpq $0x0, 0x28(%rsp)
je 0x1d8780
cmpq $0x0, 0x18(%rsp)
jne 0x1d87b8
movq 0x463819(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33d882(%rip), %rsi    # 0x516013
leaq 0x38d387(%rip), %rdx    # 0x565b1f
leaq 0x38d3a1(%rip), %rcx    # 0x565b40
leaq 0x38d3b6(%rip), %r8     # 0x565b5c
movl $0xf6, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d87ba
callq 0x1d7f80
movq %rax, %rdi
movl $0x1, %esi
callq 0x1b1b80
movq %rax, 0x8(%rsp)
callq 0x1d7f80
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x10(%rsp)
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x30(%rsp), %rdi
callq 0x1b1c50
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
leaq 0x30(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
movq 0x28(%rsp), %rdi
callq 0x1b1c50
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
leaq 0x28(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x1aeb70
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x1c7fe0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x10(%rsp), %rax
movq $-0x1, 0x38(%rax)
movq 0x10(%rsp), %rax
movq $-0x1, 0x30(%rax)
callq 0xfd150
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x48(%rax)
callq 0xfd150
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x50(%rax)
movq 0x20(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/snp_annotator_stream.c
// Function: snp_annotator_stream_process_snp
static int snp_annotator_stream_process_snp(void **elem, void *info,
                                            GtError *err)
{
  int had_err = 0;
  GtGenomeNode *snp = *(GtGenomeNode**) elem;
  GtNodeVisitor *sav = (GtNodeVisitor*) info;
  had_err = gt_genome_node_accept(snp, sav, err);
  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movl $0x0, 0x1c(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x171f90
movl %eax, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/snp_annotator_visitor.c
// Function: gt_snp_annotator_visitor_class
const GtNodeVisitorClass* gt_snp_annotator_visitor_class()
{
  static GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc) {
    nvc = gt_node_visitor_class_new(sizeof (GtSNPAnnotatorVisitor),
                                    snp_annotator_visitor_free,
                                    NULL,
                                    snp_annotator_visitor_feature_node,
                                    NULL,
                                    NULL,
                                    NULL);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x46a28a(%rip)    # 0x642ef8
jne 0x1d8ca2
movl $0x58, %edi
leaq 0x34(%rip), %rsi        # 0x1d8cb0
xorl %eax, %eax
movl %eax, %r9d
leaq 0xa8(%rip), %rcx        # 0x1d8d30
movq %r9, %rdx
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x1b2170
movq %rax, 0x46a256(%rip)    # 0x642ef8
callq 0x9f280
movq 0x46a24a(%rip), %rax    # 0x642ef8
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/snp_annotator_visitor.c
// Function: snp_annotator_visitor_free
static void snp_annotator_visitor_free(GtNodeVisitor *nv)
{
  GtSNPAnnotatorVisitor *sav;
  if (!nv) return;
  sav = snp_annotator_visitor_cast(nv);
  gt_genome_node_delete((GtGenomeNode*) sav->gene);
  if (sav->own_tt)
    gt_trans_table_delete(sav->tt);
  gt_region_mapping_delete(sav->rmap);
  gt_hashmap_delete(sav->rnaseqs);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1d8cc3
jmp 0x1d8d1d
callq 0x1d8c60
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x173180
movq 0x8(%rsp), %rax
testb $0x1, 0x30(%rax)
je 0x1d8d01
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x1246a0
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1c7bd0
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xe1770
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/spec_results.c
// Function: gt_spec_results_new
GtSpecResults *gt_spec_results_new(void)
{
  GtSpecResults *spec_results;
  spec_results = gt_calloc(1, sizeof (GtSpecResults));
  spec_results->feature_aspects = gt_hashmap_new(GT_HASH_STRING, NULL,
                                                 (GtFree) gt_hashmap_delete);
  spec_results->meta_aspects = gt_hashmap_new(GT_HASH_STRING, NULL,
                                              (GtFree) gt_spec_aspect_delete);
  spec_results->sequence_aspects = gt_hashmap_new(GT_HASH_STRING, NULL,
                                               (GtFree) gt_spec_aspect_delete);
  spec_results->region_aspects = gt_hashmap_new(GT_HASH_STRING, NULL,
                                               (GtFree) gt_spec_aspect_delete);
  spec_results->comment_aspects = gt_hashmap_new(GT_HASH_STRING, NULL,
                                               (GtFree) gt_spec_aspect_delete);
  spec_results->warnings = gt_str_array_new();
  spec_results->has_runtime_errors = spec_results->has_failures = false;
  return spec_results;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x58, %esi
leaq 0x38b86a(%rip), %rdx    # 0x565e8c
movl $0x98, %ecx
callq 0xe83c0
movq %rax, (%rsp)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq -0xf8ed0(%rip), %rdx    # 0xe1770
callq 0xe0c40
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq 0xa1(%rip), %rdx        # 0x1da700
callq 0xe0c40
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq 0x81(%rip), %rdx        # 0x1da700
callq 0xe0c40
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq 0x61(%rip), %rdx        # 0x1da700
callq 0xe0c40
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq 0x41(%rip), %rdx        # 0x1da700
callq 0xe0c40
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
callq 0x11f5c0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x50(%rax)
movq (%rsp), %rax
movb $0x0, 0x2d(%rax)
movq (%rsp), %rax
movb $0x0, 0x2e(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/spec_results.c
// Function: gt_spec_aspect_delete
static void gt_spec_aspect_delete(GtSpecAspect *sa)
{
  if (!sa) return;
  gt_str_delete(sa->name);
  gt_hashmap_delete(sa->aspect_node_results);
  gt_free(sa);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1da70e
jmp 0x1da73c
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11f560
movq (%rsp), %rax
movq (%rax), %rdi
callq 0xe1770
movq (%rsp), %rdi
leaq 0x38b75a(%rip), %rsi    # 0x565e8c
movl $0x92, %edx
callq 0xe88c0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/spec_results.c
// Function: gt_spec_aspect_new
static GtSpecAspect* gt_spec_aspect_new(const char *name)
{
  GtSpecAspect *sa;
  gt_assert(name);

  sa = gt_calloc(1, sizeof (*sa));
  sa->name = gt_str_new_cstr(name);
  sa->last_node = NULL;
  sa->aspect_node_results= gt_hashmap_new(GT_HASH_DIRECT,
                                    (GtFree) gt_genome_node_delete,
                                    (GtFree) gt_spec_aspect_node_result_delete);

  return sa;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1daec9
movq 0x461108(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x33b171(%rip), %rsi    # 0x516013
leaq 0x379f55(%rip), %rdx    # 0x554dfe
leaq 0x38b1d7(%rip), %rcx    # 0x566087
leaq 0x38afd5(%rip), %r8     # 0x565e8c
movl $0x81, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1daecb
movl $0x1, %edi
movl $0x20, %esi
leaq 0x38afb0(%rip), %rdx    # 0x565e8c
movl $0x83, %ecx
callq 0xe83c0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
callq 0x11d510
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x10(%rax)
xorl %edi, %edi
leaq -0x67d97(%rip), %rsi    # 0x173180
leaq 0x1072(%rip), %rdx      # 0x1dbf90
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax,%rax)