LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqid2seqnum_mapping.c
// Function: seqid_info_add
static int seqid_info_add(SeqidInfo *seqid_info, GtUword seqnum,
                          GtUword filenum, const GtRange *range,
                          GT_UNUSED const char *filename,
                          const char *seqid, GtError *err)
{
  SeqidInfoElem *seqid_info_elem_ptr, seqid_info_elem;
  gt_error_check(err);
  gt_assert(range);
  seqid_info_elem_ptr = gt_array_get_first(seqid_info);
  if (range->end == GT_UNDEF_UWORD ||
      seqid_info_elem_ptr->descrange.end == GT_UNDEF_UWORD) {
    gt_error_set(err, "input sequence(s) contain multiple sequences "
                 "with ID \"%s\" and not all of them have description ranges",
                 seqid);
    return -1;
  }
  seqid_info_elem.seqnum = seqnum;
  seqid_info_elem.filenum = filenum;
  seqid_info_elem.descrange = *range;
  gt_array_add(seqid_info, seqid_info_elem);
  return 0;
}

// Assembly:
subq $0x68, %rsp
movq 0x70(%rsp), %rax
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
movq %rdx, 0x48(%rsp)
movq %rcx, 0x40(%rsp)
movq %r8, 0x38(%rsp)
movq %r9, 0x30(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0xebe27
movq 0x70(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xebdef
jmp 0xebe27
movq 0xc81e2(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x72266(%rip), %rsi     # 0x15e066
leaq 0x72841(%rip), %rdx     # 0x15e648
leaq 0x8e655(%rip), %rcx     # 0x17a463
leaq 0x8e531(%rip), %r8      # 0x17a346
movl $0x3d, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xebe29
jmp 0xebe2b
cmpq $0x0, 0x40(%rsp)
jne 0xebe6b
movq 0xc819e(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x72222(%rip), %rsi     # 0x15e066
leaq 0x75659(%rip), %rdx     # 0x1614a4
leaq 0x8e611(%rip), %rcx     # 0x17a463
leaq 0x8e4ed(%rip), %r8      # 0x17a346
movl $0x3e, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xebe6d
movq 0x58(%rsp), %rdi
callq 0x75d00
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
je 0xebe94
movq 0x28(%rsp), %rax
cmpq $-0x1, 0x18(%rax)
jne 0xebeb6
movq 0x70(%rsp), %rdi
movq 0x30(%rsp), %rdx
leaq 0x8e5cd(%rip), %rsi     # 0x17a472
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x64(%rsp) # imm = 0xFFFFFFFF
jmp 0xebefc
movq 0x50(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq (%rax), %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x58(%rsp), %rdi
leaq 0x8(%rsp), %rsi
movl $0x20, %edx
callq 0x76220
movl $0x0, 0x64(%rsp)
movl 0x64(%rsp), %eax
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/seqid2seqnum_mapping.c
// Function: seqid_info_new
static SeqidInfo* seqid_info_new(GtUword seqnum, GtUword filenum,
                                 const GtRange *descrange)
{
  SeqidInfoElem seqid_info_elem;
  GtArray *seqid_info;
  gt_assert(descrange);
  seqid_info = gt_array_new(sizeof (SeqidInfoElem));
  seqid_info_elem.seqnum = seqnum;
  seqid_info_elem.filenum = filenum;
  seqid_info_elem.descrange = *descrange;
  gt_array_add(seqid_info, seqid_info_elem);
  return seqid_info;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0xebf63
movq 0xc80a6(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x7212a(%rip), %rsi     # 0x15e066
leaq 0x8e595(%rip), %rdx     # 0x17a4d8
leaq 0x8e598(%rip), %rcx     # 0x17a4e2
leaq 0x8e3f5(%rip), %r8      # 0x17a346
movl $0x28, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xebf65
movl $0x20, %edi
callq 0x75ab0
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x28(%rsp)
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x20, %edx
callq 0x76220
movq 0x8(%rsp), %rax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: gt_stream_evaluator_new
GtStreamEvaluator* gt_stream_evaluator_new(GtNodeStream *reference,
                                           GtNodeStream *prediction,
                                           bool nuceval, bool evalLTR,
                                           GtUword LTRdelta)
{
  GtStreamEvaluator *evaluator = gt_calloc(1, sizeof (GtStreamEvaluator));
  evaluator->reference = gt_node_stream_ref(reference);
  evaluator->prediction = gt_node_stream_ref(prediction);
  evaluator->nuceval = nuceval;
  evaluator->evalLTR = evalLTR;
  evaluator->LTRdelta = LTRdelta;
  evaluator->slots = gt_hashmap_new(GT_HASH_STRING, gt_free_func,
                                    (GtFree) slot_delete);
  evaluator->mRNA_gene_evaluator = gt_evaluator_new();
  evaluator->CDS_gene_evaluator = gt_evaluator_new();
  evaluator->mRNA_mRNA_evaluator = gt_evaluator_new();
  evaluator->CDS_mRNA_evaluator = gt_evaluator_new();
  evaluator->LTR_evaluator = gt_evaluator_new();
  evaluator->mRNA_exon_evaluators = gt_transcript_evaluators_new();
  evaluator->mRNA_exon_evaluators_collapsed = gt_transcript_evaluators_new();
  evaluator->CDS_exon_evaluators = gt_transcript_evaluators_new();
  evaluator->CDS_exon_evaluators_collapsed = gt_transcript_evaluators_new();
  return evaluator;
}

// Assembly:
subq $0x28, %rsp
movb %cl, %al
movb %dl, %cl
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
andb $0x1, %cl
movb %cl, 0x17(%rsp)
andb $0x1, %al
movb %al, 0x16(%rsp)
movq %r8, 0x8(%rsp)
movl $0x1, %edi
movl $0xd0, %esi
leaq 0x8e5b3(%rip), %rdx     # 0x17a5a8
movl $0xef, %ecx
callq 0xd5b0
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
callq 0x34650
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rdi
callq 0x34650
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movb 0x17(%rsp), %cl
movq (%rsp), %rax
andb $0x1, %cl
movb %cl, 0x10(%rax)
movb 0x16(%rsp), %cl
movq (%rsp), %rax
andb $0x1, %cl
movb %cl, 0x11(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movl $0x1, %edi
leaq -0xde441(%rip), %rsi    # 0xdc20
leaq 0xb8(%rip), %rdx        # 0xec120
callq 0x86190
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x40(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x48(%rax)
callq 0xf24b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x50(%rax)
callq 0xf24b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x58(%rax)
callq 0xf24b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x60(%rax)
callq 0xf24b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x68(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: gt_stream_evaluator_delete
void gt_stream_evaluator_delete(GtStreamEvaluator *se)
{
  if (!se) return;
  gt_node_stream_delete(se->reference);
  gt_node_stream_delete(se->prediction);
  gt_hashmap_delete(se->slots);
  gt_evaluator_delete(se->mRNA_gene_evaluator);
  gt_evaluator_delete(se->CDS_gene_evaluator);
  gt_evaluator_delete(se->mRNA_mRNA_evaluator);
  gt_evaluator_delete(se->CDS_mRNA_evaluator);
  gt_evaluator_delete(se->LTR_evaluator);
  gt_transcript_evaluators_delete(se->mRNA_exon_evaluators);
  gt_transcript_evaluators_delete(se->mRNA_exon_evaluators_collapsed);
  gt_transcript_evaluators_delete(se->CDS_exon_evaluators);
  gt_transcript_evaluators_delete(se->CDS_exon_evaluators_collapsed);
  gt_free(se);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf0161
jmp 0xf0211
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x346b0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x346b0
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x86cc0
movq (%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x48(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xf27f0
movq (%rsp), %rax
movq 0x58(%rax), %rdi
callq 0xf27f0
movq (%rsp), %rax
movq 0x60(%rax), %rdi
callq 0xf27f0
movq (%rsp), %rax
movq 0x68(%rax), %rdi
callq 0xf27f0
movq (%rsp), %rdi
leaq 0x8a3a1(%rip), %rsi     # 0x17a5a8
movl $0x666, %edx            # imm = 0x666
callq 0xdab0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: add_real_exon
static void add_real_exon(GtTranscriptExons *te, GtRange range,
                          GtFeatureNode *fn)
{
  gt_assert(te);
  gt_array_add(gt_transcript_exons_get_all(te), range);
  switch (gt_feature_node_get_transcriptfeaturetype(fn)) {
    case TRANSCRIPT_FEATURE_TYPE_UNDETERMINED:
      gt_warning("type of feature (single, initial, internal, or terminal) "
                 "given on line %u in file \"%s\" could not be determined, "
                 "because the feature has no Parent attribute. Treating it as "
                 "single.",
                 gt_genome_node_get_line_number((GtGenomeNode*) fn),
                 gt_genome_node_get_filename((GtGenomeNode*) fn));
      /*@fallthrough@*/
    case TRANSCRIPT_FEATURE_TYPE_SINGLE:
      gt_array_add(gt_transcript_exons_get_single(te), range);
      break;
    case TRANSCRIPT_FEATURE_TYPE_INITIAL:
      gt_array_add(gt_transcript_exons_get_initial(te), range);
      break;
    case TRANSCRIPT_FEATURE_TYPE_INTERNAL:
      gt_array_add(gt_transcript_exons_get_internal(te), range);
      break;
    case TRANSCRIPT_FEATURE_TYPE_TERMINAL:
      gt_array_add(gt_transcript_exons_get_terminal(te), range);
      break;
  }
}

// Assembly:
subq $0x38, %rsp
movq %rsi, 0x28(%rsp)
movq %rdx, 0x30(%rsp)
movq %rdi, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xf0278
movq 0xc3d91(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6de15(%rip), %rsi     # 0x15e066
leaq 0x73eba(%rip), %rdx     # 0x164112
leaq 0x8a6d2(%rip), %rcx     # 0x17a931
leaq 0x8a342(%rip), %r8      # 0x17a5a8
movl $0x1a1, %r9d            # imm = 0x1A1
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf027a
movq 0x20(%rsp), %rdi
callq 0xf28f0
movq %rax, %rdi
leaq 0x28(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
movq 0x18(%rsp), %rdi
callq 0x22890
movl %eax, %ecx
movq %rcx, 0x10(%rsp)
subl $0x4, %eax
ja 0xf0368
movq 0x10(%rsp), %rax
leaq 0x8a29c(%rip), %rcx     # 0x17a558
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rsp), %rdi
callq 0x25850
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
callq 0x257c0
movl 0xc(%rsp), %esi
movq %rax, %rdx
leaq 0x8a654(%rip), %rdi     # 0x17a93f
movb $0x0, %al
callq 0x1c550
movq 0x20(%rsp), %rdi
callq 0xf2940
movq %rax, %rdi
leaq 0x28(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
jmp 0xf0368
movq 0x20(%rsp), %rdi
callq 0xf2990
movq %rax, %rdi
leaq 0x28(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
jmp 0xf0368
movq 0x20(%rsp), %rdi
callq 0xf29e0
movq %rax, %rdi
leaq 0x28(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
jmp 0xf0368
movq 0x20(%rsp), %rdi
callq 0xf2a30
movq %rax, %rdi
leaq 0x28(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: add_nucleotide_exon
static void add_nucleotide_exon(GtBittab *nucleotides, GtRange range,
                                GtRange real_range, GtUword *FP)
{
  GtUword i;
  gt_assert(nucleotides);
  for (i = range.start; i <= range.end; i++) {
    if (gt_range_within(&real_range, i)) {
      gt_assert(i >= real_range.start);
      gt_bittab_set_bit(nucleotides, i - real_range.start);
    }
    else {
      gt_assert(FP);
      (*FP)++;
    }
  }
}

// Assembly:
subq $0x38, %rsp
movq %rsi, 0x28(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x20(%rsp)
movq %rdi, 0x10(%rsp)
movq %r9, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xf03d2
movq 0xc3c37(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6dcbb(%rip), %rsi     # 0x15e066
leaq 0x8a641(%rip), %rdx     # 0x17a9f3
leaq 0x8a646(%rip), %rcx     # 0x17a9ff
leaq 0x8a1e8(%rip), %r8      # 0x17a5a8
movl $0x1bf, %r9d            # imm = 0x1BF
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf03d4
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
cmpq 0x30(%rsp), %rax
ja 0xf04c2
movq (%rsp), %rsi
leaq 0x18(%rsp), %rdi
callq 0x93f50
testb $0x1, %al
jne 0xf0400
jmp 0xf045c
jmp 0xf0402
movq (%rsp), %rax
cmpq 0x18(%rsp), %rax
jae 0xf0445
movq 0xc3bc4(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6dc48(%rip), %rsi     # 0x15e066
leaq 0x8a5ee(%rip), %rdx     # 0x17aa13
leaq 0x8a5d3(%rip), %rcx     # 0x17a9ff
leaq 0x8a175(%rip), %r8      # 0x17a5a8
movl $0x1c2, %r9d            # imm = 0x1C2
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf0447
movq 0x10(%rsp), %rdi
movq (%rsp), %rsi
subq 0x18(%rsp), %rsi
callq 0x78fe0
jmp 0xf04af
jmp 0xf045e
cmpq $0x0, 0x8(%rsp)
jne 0xf049e
movq 0xc3b6b(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6dbef(%rip), %rsi     # 0x15e066
leaq 0x8a5ab(%rip), %rdx     # 0x17aa29
leaq 0x8a57a(%rip), %rcx     # 0x17a9ff
leaq 0x8a11c(%rip), %r8      # 0x17a5a8
movl $0x1c6, %r9d            # imm = 0x1C6
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf04a0
movq 0x8(%rsp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0xf04b1
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0xf03dd
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: store_predicted_exon
static void store_predicted_exon(GtTranscriptEvaluators *te, GtFeatureNode *fn)
{
  gt_assert(te && fn);
  gt_evaluator_add_predicted(gt_transcript_evaluators_get_all(te), 1);
  switch (gt_feature_node_get_transcriptfeaturetype(fn)) {
    case TRANSCRIPT_FEATURE_TYPE_UNDETERMINED:
      gt_warning("type of feature (single, initial, internal, or terminal) "
                 "given on line %u in file \"%s\" could not be determined, "
                 "because the feature has no Parent attribute. Treating it as "
                 "single.",
                 gt_genome_node_get_line_number((GtGenomeNode*) fn),
                 gt_genome_node_get_filename((GtGenomeNode*) fn));
      /*@fallthrough@*/
    case TRANSCRIPT_FEATURE_TYPE_SINGLE:
      gt_evaluator_add_predicted(gt_transcript_evaluators_get_single(te), 1);
    break;
    case TRANSCRIPT_FEATURE_TYPE_INITIAL:
      gt_evaluator_add_predicted(gt_transcript_evaluators_get_initial(te), 1);
    break;
    case TRANSCRIPT_FEATURE_TYPE_INTERNAL:
      gt_evaluator_add_predicted(gt_transcript_evaluators_get_internal(te), 1);
    break;
    case TRANSCRIPT_FEATURE_TYPE_TERMINAL:
      gt_evaluator_add_predicted(gt_transcript_evaluators_get_terminal(te), 1);
    break;
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0xf0bfe
cmpq $0x0, 0x18(%rsp)
jne 0xf0c36
movq 0xc33d3(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6d457(%rip), %rsi     # 0x15e066
leaq 0x8a187(%rip), %rdx     # 0x17ad9d
leaq 0x8a189(%rip), %rcx     # 0x17ada6
leaq 0x89984(%rip), %r8      # 0x17a5a8
movl $0x2c7, %r9d            # imm = 0x2C7
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf0c38
movq 0x20(%rsp), %rdi
callq 0xf2520
movq %rax, %rdi
movl $0x1, %esi
callq 0x1509b0
movq 0x18(%rsp), %rdi
callq 0x22890
movl %eax, %ecx
movq %rcx, 0x10(%rsp)
subl $0x4, %eax
ja 0xf0d0d
movq 0x10(%rsp), %rax
leaq 0x898f7(%rip), %rcx     # 0x17a56c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x18(%rsp), %rdi
callq 0x25850
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
callq 0x257c0
movl 0xc(%rsp), %esi
movq %rax, %rdx
leaq 0x89c9b(%rip), %rdi     # 0x17a93f
movb $0x0, %al
callq 0x1c550
movq 0x20(%rsp), %rdi
callq 0xf2570
movq %rax, %rdi
movl $0x1, %esi
callq 0x1509b0
jmp 0xf0d0d
movq 0x20(%rsp), %rdi
callq 0xf25c0
movq %rax, %rdi
movl $0x1, %esi
callq 0x1509b0
jmp 0xf0d0d
movq 0x20(%rsp), %rdi
callq 0xf2610
movq %rax, %rdi
movl $0x1, %esi
callq 0x1509b0
jmp 0xf0d0d
movq 0x20(%rsp), %rdi
callq 0xf2660
movq %rax, %rdi
movl $0x1, %esi
callq 0x1509b0
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: store_gene_feature
static int store_gene_feature(GtFeatureNode *fn, void *data,
                              GT_UNUSED GtError *err)
{
  StoreGeneFeatureInfo *info = (StoreGeneFeatureInfo*) data;
  GtRange range;
  gt_error_check(err);
  gt_assert(fn && info);
  if (gt_feature_node_has_type(fn, gt_ft_mRNA))
    gt_array_add(info->mRNAs, fn);
  else if (gt_feature_node_has_type(fn, info->feature_type)) {
    range = gt_genome_node_get_range((GtGenomeNode*) fn);
    gt_array_add(info->exons, range);
  }
  return 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xf164d
movq 0x30(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xf1615
jmp 0xf164d
movq 0xc29bc(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6ca40(%rip), %rsi     # 0x15e066
leaq 0x6d01b(%rip), %rdx     # 0x15e648
leaq 0x8973b(%rip), %rcx     # 0x17ad6f
leaq 0x88f6d(%rip), %r8      # 0x17a5a8
movl $0x27b, %r9d            # imm = 0x27B
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf164f
jmp 0xf1651
cmpq $0x0, 0x40(%rsp)
je 0xf1661
cmpq $0x0, 0x28(%rsp)
jne 0xf1699
movq 0xc2970(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6c9f4(%rip), %rsi     # 0x15e066
leaq 0x711da(%rip), %rdx     # 0x162853
leaq 0x896ef(%rip), %rcx     # 0x17ad6f
leaq 0x88f21(%rip), %r8      # 0x17a5a8
movl $0x27c, %r9d            # imm = 0x27C
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf169b
movq 0x40(%rsp), %rdi
leaq 0x705ef(%rip), %rsi     # 0x161c96
callq 0x21700
testb $0x1, %al
jne 0xf16b2
jmp 0xf16cc
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x40(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
jmp 0xf1726
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x21700
testb $0x1, %al
jne 0xf16e5
jmp 0xf1724
movq 0x40(%rsp), %rdi
callq 0x259f0
movq %rax, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x18(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
jmp 0xf1726
xorl %eax, %eax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: store_exon
static int store_exon(GtFeatureNode *fn, void *data, GT_UNUSED GtError *err)
{
  StoreExonFeatureInfo *info = (StoreExonFeatureInfo*) data;
  GtRange range;
  gt_error_check(err);
  gt_assert(fn && info);
  if (gt_feature_node_has_type(fn, info->feature_type)) {
    range = gt_genome_node_get_range((GtGenomeNode*) fn);
    gt_array_add(info->exons, range);
  }
  return 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xf179d
movq 0x30(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xf1765
jmp 0xf179d
movq 0xc286c(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6c8f0(%rip), %rsi     # 0x15e066
leaq 0x6cecb(%rip), %rdx     # 0x15e648
leaq 0x8960e(%rip), %rcx     # 0x17ad92
leaq 0x88e1d(%rip), %r8      # 0x17a5a8
movl $0x240, %r9d            # imm = 0x240
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf179f
jmp 0xf17a1
cmpq $0x0, 0x40(%rsp)
je 0xf17b1
cmpq $0x0, 0x28(%rsp)
jne 0xf17e9
movq 0xc2820(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6c8a4(%rip), %rsi     # 0x15e066
leaq 0x7108a(%rip), %rdx     # 0x162853
leaq 0x895c2(%rip), %rcx     # 0x17ad92
leaq 0x88dd1(%rip), %r8      # 0x17a5a8
movl $0x241, %r9d            # imm = 0x241
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf17eb
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x21700
testb $0x1, %al
jne 0xf1804
jmp 0xf1843
movq 0x40(%rsp), %rdi
callq 0x259f0
movq %rax, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x18(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
xorl %eax, %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: add_predicted_collapsed
static void add_predicted_collapsed(GtDlist *used_exons,
                                    GtRange *predicted_range,
                                    GtEvaluator *exon_evaluator_collapsed)
{
  GtRange *used_range;
  if (!gt_dlist_find(used_exons, predicted_range)) {
    used_range = gt_malloc(sizeof (GtRange));
    used_range->start = predicted_range->start;
    used_range->end = predicted_range->end;
    gt_dlist_add(used_exons, used_range);
    gt_evaluator_add_predicted(exon_evaluator_collapsed, 1);
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x7d8f0
cmpq $0x0, %rax
jne 0xf18d3
movl $0x10, %edi
leaq 0x88d24(%rip), %rsi     # 0x17a5a8
movl $0x2e8, %edx            # imm = 0x2E8
callq 0xd2e0
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x7dab0
movq 0x10(%rsp), %rdi
movl $0x1, %esi
callq 0x1509b0
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: mark_and_show_false_exon
static void mark_and_show_false_exon(GtFeatureNode *fn, bool exondiff)
{
  gt_feature_node_mark(fn); /* mark false exons */
  if (exondiff) {
    gt_gff3_output_leading(fn, NULL);
    printf(".\n");
  }
}

// Assembly:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x10(%rsp)
andb $0x1, %al
movb %al, 0xf(%rsp)
movq 0x10(%rsp), %rdi
callq 0x23d30
testb $0x1, 0xf(%rsp)
je 0xf1bcf
movq 0x10(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa7b50
leaq 0x7cf80(%rip), %rdi     # 0x16eb48
movb $0x0, %al
callq 0xb070
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/stream_evaluator.c
// Function: add_nucleotide_values
static void add_nucleotide_values(NucEval *nucleotides, GtBittab *real,
                                  GtBittab *pred, GtBittab *tmp,
                                  const char *level)
{
  gt_assert(nucleotides && real && pred && tmp);
  if (gt_log_enabled()) {
    gt_log_log("%s", level);
    gt_log_log("reference:");
    gt_bittab_show(real, gt_log_fp());
    gt_log_log("prediction:");
    gt_bittab_show(pred, gt_log_fp());
  }
  /* real & pred = TP */
  gt_bittab_and(tmp, real, pred);
  nucleotides->TP += gt_bittab_count_set_bits(tmp);
  /* ~real & pred = FP */;
  gt_bittab_complement(tmp, real);
  gt_bittab_and_equal(tmp, pred);
  nucleotides->FP += gt_bittab_count_set_bits(tmp);
  /* real & ~pred = FN */
  gt_bittab_complement(tmp, pred);
  gt_bittab_and_equal(tmp, real);
  nucleotides->FN += gt_bittab_count_set_bits(tmp);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xf1c1d
cmpq $0x0, 0x28(%rsp)
je 0xf1c1d
cmpq $0x0, 0x20(%rsp)
je 0xf1c1d
cmpq $0x0, 0x18(%rsp)
jne 0xf1c55
movq 0xc23b4(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6c438(%rip), %rsi     # 0x15e066
leaq 0x89236(%rip), %rdx     # 0x17ae6b
leaq 0x89252(%rip), %rcx     # 0x17ae8e
leaq 0x88965(%rip), %r8      # 0x17a5a8
movl $0x509, %r9d            # imm = 0x509
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf1c57
callq 0xc910
testb $0x1, %al
jne 0xf1c62
jmp 0xf1cc7
movq 0x10(%rsp), %rsi
leaq 0x7a23f(%rip), %rdi     # 0x16bead
movb $0x0, %al
callq 0xc930
leaq 0x89228(%rip), %rdi     # 0x17aea4
movb $0x0, %al
callq 0xc930
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
callq 0xca20
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x7a210
leaq 0x8920b(%rip), %rdi     # 0x17aeaf
movb $0x0, %al
callq 0xc930
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0xca20
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x7a210
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x79310
movq 0x18(%rsp), %rdi
callq 0x7a120
movq %rax, %rcx
movq 0x30(%rsp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x79120
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x79760
movq 0x18(%rsp), %rdi
callq 0x7a120
movq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x79120
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x79760
movq 0x18(%rsp), %rdi
callq 0x7a120
movq %rax, %rcx
movq 0x30(%rsp), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_bittabs.c
// Function: gt_transcript_bittabs_new
GtTranscriptBittabs* gt_transcript_bittabs_new(GtUword size_all,
                                               GtUword size_single,
                                               GtUword size_initial,
                                               GtUword size_internal,
                                               GtUword size_terminal)
{
  GtTranscriptBittabs *tb = gt_calloc(1, sizeof (GtTranscriptBittabs));
  if (size_all) tb->gt_bittab_all = gt_bittab_new(size_all);
  if (size_single) tb->gt_bittab_single = gt_bittab_new(size_single);
  if (size_initial) tb->gt_bittab_initial = gt_bittab_new(size_initial);
  if (size_internal) tb->gt_bittab_internal = gt_bittab_new(size_internal);
  if (size_terminal) tb->gt_bittab_terminal = gt_bittab_new(size_all);
  return tb;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movl $0x1, %edi
movl $0x28, %esi
leaq 0x89382(%rip), %rdx     # 0x17b120
movl $0x23, %ecx
callq 0xd5b0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xf1dca
movq 0x30(%rsp), %rdi
callq 0x78f00
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
cmpq $0x0, 0x28(%rsp)
je 0xf1de8
movq 0x28(%rsp), %rdi
callq 0x78f00
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
cmpq $0x0, 0x20(%rsp)
je 0xf1e06
movq 0x20(%rsp), %rdi
callq 0x78f00
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
cmpq $0x0, 0x18(%rsp)
je 0xf1e24
movq 0x18(%rsp), %rdi
callq 0x78f00
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
cmpq $0x0, 0x10(%rsp)
je 0xf1e42
movq 0x30(%rsp), %rdi
callq 0x78f00
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_bittabs.c
// Function: gt_transcript_bittabs_delete
void gt_transcript_bittabs_delete(GtTranscriptBittabs *tb)
{
  if (!tb) return;
  gt_bittab_delete(tb->gt_bittab_all);
  gt_bittab_delete(tb->gt_bittab_single);
  gt_bittab_delete(tb->gt_bittab_initial);
  gt_bittab_delete(tb->gt_bittab_internal);
  gt_bittab_delete(tb->gt_bittab_terminal);
  gt_free(tb);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf1fee
jmp 0xf2043
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x7a420
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x7a420
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x7a420
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x7a420
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x7a420
movq (%rsp), %rdi
leaq 0x890e7(%rip), %rsi     # 0x17b120
movl $0x52, %edx
callq 0xdab0
popq %rax
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_counts.c
// Function: gt_transcript_counts_delete
void gt_transcript_counts_delete(GtTranscriptCounts *tc)
{
  if (!tc) return;
  gt_array_delete(tc->exon_array_all);
  gt_array_delete(tc->exon_array_single);
  gt_array_delete(tc->exon_array_initial);
  gt_array_delete(tc->exon_array_internal);
  gt_array_delete(tc->exon_array_terminal);
  gt_free(tc);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf244e
jmp 0xf24a3
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x770a0
movq (%rsp), %rdi
leaq 0x88d53(%rip), %rsi     # 0x17b1ec
movl $0x67, %edx
callq 0xdab0
popq %rax
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_evaluators.c
// Function: gt_transcript_evaluators_new
GtTranscriptEvaluators* gt_transcript_evaluators_new(void)
{
  GtTranscriptEvaluators *te = gt_malloc(sizeof (GtTranscriptEvaluators));
  te->exon_evaluator_all = gt_evaluator_new();
  te->exon_evaluator_single = gt_evaluator_new();
  te->exon_evaluator_initial = gt_evaluator_new();
  te->exon_evaluator_internal = gt_evaluator_new();
  te->exon_evaluator_terminal = gt_evaluator_new();
  return te;
}

// Assembly:
pushq %rax
movl $0x28, %edi
leaq 0x88ea1(%rip), %rsi     # 0x17b35e
movl $0x1f, %edx
callq 0xd2e0
movq %rax, (%rsp)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
callq 0x150860
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_evaluators.c
// Function: gt_transcript_evaluators_add_actuals
void gt_transcript_evaluators_add_actuals(const GtTranscriptEvaluators
                                                                *evaluators,
                                          const GtTranscriptExons *exons)
{
  gt_assert(evaluators && exons);
  gt_evaluator_add_actual(evaluators->exon_evaluator_all,
                       gt_array_size(gt_transcript_exons_get_all(exons)));
  gt_evaluator_add_actual(evaluators->exon_evaluator_single,
                       gt_array_size(gt_transcript_exons_get_single(exons)));
  gt_evaluator_add_actual(evaluators->exon_evaluator_initial,
                       gt_array_size(gt_transcript_exons_get_initial(exons)));
  gt_evaluator_add_actual(evaluators->exon_evaluator_internal,
                       gt_array_size(gt_transcript_exons_get_internal(exons)));
  gt_evaluator_add_actual(evaluators->exon_evaluator_terminal,
                       gt_array_size(gt_transcript_exons_get_terminal(exons)));
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xf26ce
cmpq $0x0, 0x28(%rsp)
jne 0xf2706
movq 0xc1903(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6b987(%rip), %rsi     # 0x15e066
leaq 0x88d53(%rip), %rdx     # 0x17b439
leaq 0x88d60(%rip), %rcx     # 0x17b44d
leaq 0x88c6a(%rip), %r8      # 0x17b35e
movl $0x4e, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf2708
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
callq 0xf28f0
movq %rax, %rdi
callq 0x76490
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x150940
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf2940
movq %rax, %rdi
callq 0x76490
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x150940
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf2990
movq %rax, %rdi
callq 0x76490
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x150940
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf29e0
movq %rax, %rdi
callq 0x76490
movq 0x18(%rsp), %rdi
movq %rax, %rsi
callq 0x150940
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf2a30
movq %rax, %rdi
callq 0x76490
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x150940
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_evaluators.c
// Function: gt_transcript_evaluators_delete
void gt_transcript_evaluators_delete(GtTranscriptEvaluators *te)
{
  if (!te) return;
  gt_evaluator_delete(te->exon_evaluator_all);
  gt_evaluator_delete(te->exon_evaluator_single);
  gt_evaluator_delete(te->exon_evaluator_initial);
  gt_evaluator_delete(te->exon_evaluator_internal);
  gt_evaluator_delete(te->exon_evaluator_terminal);
  gt_free(te);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf27fe
jmp 0xf2853
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x151960
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x151960
movq (%rsp), %rdi
leaq 0x88b15(%rip), %rsi     # 0x17b35e
movl $0x63, %edx
callq 0xdab0
popq %rax
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_exons.c
// Function: gt_transcript_exons_new
GtTranscriptExons* gt_transcript_exons_new(void)
{
  GtTranscriptExons *te = gt_malloc(sizeof (GtTranscriptExons));
  te->exon_array_all = gt_array_new(sizeof (GtRange));
  te->exon_array_single = gt_array_new(sizeof (GtRange));
  te->exon_array_initial = gt_array_new(sizeof (GtRange));
  te->exon_array_internal = gt_array_new(sizeof (GtRange));
  te->exon_array_terminal = gt_array_new(sizeof (GtRange));
  return te;
}

// Assembly:
pushq %rax
movl $0x28, %edi
leaq 0x88c05(%rip), %rsi     # 0x17b472
movl $0x20, %edx
callq 0xd2e0
movq %rax, (%rsp)
movl $0x10, %edi
callq 0x75ab0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x75ab0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x10, %edi
callq 0x75ab0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movl $0x10, %edi
callq 0x75ab0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
movl $0x10, %edi
callq 0x75ab0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_exons.c
// Function: gt_transcript_exons_sort
void gt_transcript_exons_sort(const GtTranscriptExons *te)
{
  gt_assert(te);
  gt_ranges_sort(te->exon_array_all);
  gt_ranges_sort(te->exon_array_single);
  gt_ranges_sort(te->exon_array_initial);
  gt_ranges_sort(te->exon_array_internal);
  gt_ranges_sort(te->exon_array_terminal);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf2ac4
movq 0xc1545(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6b5c9(%rip), %rsi     # 0x15e066
leaq 0x7166e(%rip), %rdx     # 0x164112
leaq 0x88a84(%rip), %rcx     # 0x17b52f
leaq 0x889c0(%rip), %r8      # 0x17b472
movl $0x49, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf2ac6
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x954f0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x954f0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x954f0
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x954f0
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x954f0
popq %rax
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_exons.c
// Function: gt_transcript_exons_uniq_in_place_count
GtTranscriptCounts* gt_transcript_exons_uniq_in_place_count(GtTranscriptExons
                                                                         *te)
{
  GtTranscriptCounts *tc;
  GtArray *counts;
  gt_assert(te);
  tc = gt_transcript_counts_new();
  counts = gt_ranges_uniq_in_place_count(te->exon_array_all);
  gt_transcript_counts_set_all(tc, counts);
  counts = gt_ranges_uniq_in_place_count(te->exon_array_single);
  gt_transcript_counts_set_single(tc, counts);
  counts = gt_ranges_uniq_in_place_count(te->exon_array_initial);
  gt_transcript_counts_set_initial(tc, counts);
  counts = gt_ranges_uniq_in_place_count(te->exon_array_internal);
  gt_transcript_counts_set_internal(tc, counts);
  counts = gt_ranges_uniq_in_place_count(te->exon_array_terminal);
  gt_transcript_counts_set_terminal(tc, counts);
  return tc;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xf2b59
movq 0xc14b0(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6b534(%rip), %rsi     # 0x15e066
leaq 0x715d9(%rip), %rdx     # 0x164112
leaq 0x88a08(%rip), %rcx     # 0x17b548
leaq 0x8892b(%rip), %r8      # 0x17b472
movl $0x56, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf2b5b
callq 0xf2050
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq (%rax), %rdi
callq 0x95490
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf20d0
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x95490
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf2190
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x95490
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf2250
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x95490
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf2310
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x95490
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0xf23d0
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_exons.c
// Function: gt_transcript_exons_are_sorted
bool gt_transcript_exons_are_sorted(const GtTranscriptExons *te)
{
  gt_assert(te);
  if (!gt_ranges_are_sorted(te->exon_array_all)) return false;
  if (!gt_ranges_are_sorted(te->exon_array_single)) return false;
  if (!gt_ranges_are_sorted(te->exon_array_initial)) return false;
  if (!gt_ranges_are_sorted(te->exon_array_internal)) return false;
  if (!gt_ranges_are_sorted(te->exon_array_terminal)) return false;
  return true;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0xf2c59
movq 0xc13b0(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6b434(%rip), %rsi     # 0x15e066
leaq 0x714d9(%rip), %rdx     # 0x164112
leaq 0x88930(%rip), %rcx     # 0x17b570
leaq 0x8882b(%rip), %r8      # 0x17b472
movl $0x67, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf2c5b
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x95610
testb $0x1, %al
jne 0xf2c73
movb $0x0, 0x17(%rsp)
jmp 0xf2cdc
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x95610
testb $0x1, %al
jne 0xf2c8c
movb $0x0, 0x17(%rsp)
jmp 0xf2cdc
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x95610
testb $0x1, %al
jne 0xf2ca5
movb $0x0, 0x17(%rsp)
jmp 0xf2cdc
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x95610
testb $0x1, %al
jne 0xf2cbe
movb $0x0, 0x17(%rsp)
jmp 0xf2cdc
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x95610
testb $0x1, %al
jne 0xf2cd7
movb $0x0, 0x17(%rsp)
jmp 0xf2cdc
movb $0x1, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_exons.c
// Function: gt_transcript_exons_create_bittabs
GtTranscriptBittabs* gt_transcript_exons_create_bittabs(const
                                                        GtTranscriptExons *te)
{
  gt_assert(te);
  return gt_transcript_bittabs_new(gt_array_size(te->exon_array_all),
                                   gt_array_size(te->exon_array_single),
                                   gt_array_size(te->exon_array_initial),
                                   gt_array_size(te->exon_array_internal),
                                   gt_array_size(te->exon_array_terminal));
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xf2d39
movq 0xc12d0(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6b354(%rip), %rsi     # 0x15e066
leaq 0x713f9(%rip), %rdx     # 0x164112
leaq 0x8886f(%rip), %rcx     # 0x17b58f
leaq 0x8874b(%rip), %r8      # 0x17b472
movl $0x73, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf2d3b
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x76490
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x76490
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x76490
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x76490
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x76490
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rcx
movq %rax, %r8
callq 0xf1d70
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_exons.c
// Function: gt_transcript_exons_delete
void gt_transcript_exons_delete(GtTranscriptExons *te)
{
  if (!te) return;
  gt_array_delete(te->exon_array_all);
  gt_array_delete(te->exon_array_single);
  gt_array_delete(te->exon_array_initial);
  gt_array_delete(te->exon_array_internal);
  gt_array_delete(te->exon_array_terminal);
  gt_free(te);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf2dce
jmp 0xf2e23
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x770a0
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x770a0
movq (%rsp), %rdi
leaq 0x88659(%rip), %rsi     # 0x17b472
movl $0x83, %edx
callq 0xdab0
popq %rax
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_used_exons.c
// Function: gt_transcript_used_exons_new
GtTranscriptUsedExons* gt_transcript_used_exons_new(void)
{
  GtTranscriptUsedExons *tue = gt_malloc(sizeof (GtTranscriptUsedExons));
  tue->used_exons_all = gt_dlist_new((GtCompare) gt_range_compare);
  tue->used_exons_single = gt_dlist_new((GtCompare) gt_range_compare);
  tue->used_exons_initial = gt_dlist_new((GtCompare) gt_range_compare);
  tue->used_exons_internal = gt_dlist_new((GtCompare) gt_range_compare);
  tue->used_exons_terminal = gt_dlist_new((GtCompare) gt_range_compare);
  return tue;
}

// Assembly:
pushq %rax
movl $0x28, %edi
leaq 0x88775(%rip), %rsi     # 0x17b5b2
movl $0x20, %edx
callq 0xd2e0
movq %rax, (%rsp)
leaq -0x5f602(%rip), %rdi    # 0x93850
callq 0x7d760
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
leaq -0x5f618(%rip), %rdi    # 0x93850
callq 0x7d760
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
leaq -0x5f62f(%rip), %rdi    # 0x93850
callq 0x7d760
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
leaq -0x5f646(%rip), %rdi    # 0x93850
callq 0x7d760
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
leaq -0x5f65d(%rip), %rdi    # 0x93850
callq 0x7d760
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_used_exons.c
// Function: gt_transcript_used_exons_delete
void gt_transcript_used_exons_delete(GtTranscriptUsedExons *tue)
{
  if (!tue) return;
  used_gt_dlist_delete(tue->used_exons_all);
  used_gt_dlist_delete(tue->used_exons_single);
  used_gt_dlist_delete(tue->used_exons_initial);
  used_gt_dlist_delete(tue->used_exons_internal);
  used_gt_dlist_delete(tue->used_exons_terminal);
  gt_free(tue);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0xf306e
jmp 0xf30c3
movq (%rsp), %rax
movq (%rax), %rdi
callq 0xf30d0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xf30d0
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xf30d0
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xf30d0
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xf30d0
movq (%rsp), %rdi
leaq 0x884f9(%rip), %rsi     # 0x17b5b2
movl $0x59, %edx
callq 0xdab0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/transcript_used_exons.c
// Function: used_gt_dlist_delete
static void used_gt_dlist_delete(GtDlist *used_list)
{
  GtDlistelem *dlistelem;
  for (dlistelem = gt_dlist_first(used_list); dlistelem != NULL;
       dlistelem = gt_dlistelem_next(dlistelem)) {
    gt_free(gt_dlistelem_get_data(dlistelem));
  }
  gt_dlist_delete(used_list);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x7d850
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0xf311f
movq 0x8(%rsp), %rdi
callq 0x7d9e0
movq %rax, %rdi
leaq 0x884ae(%rip), %rsi     # 0x17b5b2
movl $0x4c, %edx
callq 0xdab0
movq 0x8(%rsp), %rdi
callq 0x7da30
movq %rax, 0x8(%rsp)
jmp 0xf30e8
movq 0x10(%rsp), %rdi
callq 0x7e220
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/alphabet_lua.c
// Function: gt_lua_open_alphabet
int gt_lua_open_alphabet(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  luaL_newmetatable(L, ALPHABET_METATABLE);
  /* metatable.__index = metatable */
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  /* set its _gc field */
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, alphabet_lua_delete);
  lua_settable(L, -3);
  /* register functions */
  luaL_register(L, NULL, alphabet_lib_m);
  lua_pop(L, 1);
  luaL_register(L, "gt", alphabet_lib_f);
  lua_pop(L, 1);
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xf3179
movq 0xc0e90(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6af14(%rip), %rsi     # 0x15e066
leaq 0x77ca5(%rip), %rdx     # 0x16adfe
leaq 0x88531(%rip), %rcx     # 0x17b691
leaq 0x8853f(%rip), %r8      # 0x17b6a6
movl $0x8b, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf317b
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x80c8e(%rip), %rsi     # 0x173e23
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x784cd(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x77e14(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0xc4(%rip), %rsi        # 0xf32a0
xorl %edx, %edx
callq 0x51120
movq 0x10(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x51d10
movq 0x10(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
leaq 0xc024e(%rip), %rdx     # 0x1b3450
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
leaq 0x90a55(%rip), %rsi     # 0x183c77
leaq 0xc0277(%rip), %rdx     # 0x1b34a0
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xf3285
movq 0xc0d84(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x6ae08(%rip), %rsi     # 0x15e066
leaq 0x7f9cd(%rip), %rdx     # 0x172c32
leaq 0x88425(%rip), %rcx     # 0x17b691
leaq 0x88433(%rip), %r8      # 0x17b6a6
movl $0x9c, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf3287
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)