LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_in_stream.c
// Function: gt_gtf_in_stream_new
GtNodeStream* gt_gtf_in_stream_new(const char *filename)
{
  GtGTFInStream *gtf_in_stream;
  GtNodeStream *ns = gt_node_stream_create(gt_gtf_in_stream_class(), false);
  gtf_in_stream = gtf_in_stream_cast(ns);
  gtf_in_stream->genome_node_buffer = gt_queue_new();
  gtf_in_stream->type_checker = gt_type_checker_builtin_new();
  gtf_in_stream->filename = filename ? gt_cstr_dup(filename) : NULL;
  return ns;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
callq 0x182010
movq %rax, %rdi
xorl %esi, %esi
callq 0x1b1b80
movq %rax, 0x10(%rsp)
callq 0x182010
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x18(%rsp)
callq 0xfd150
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x10(%rax)
movb $0x0, %al
callq 0x1f4710
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x18(%rax)
cmpq $0x0, 0x20(%rsp)
je 0x1822b1
movq 0x20(%rsp), %rdi
callq 0xa2db0
movq %rax, 0x8(%rsp)
jmp 0x1822ba
xorl %eax, %eax
movq %rax, 0x8(%rsp)
jmp 0x1822ba
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_in_stream.c
// Function: gtf_in_stream_process_file
static int gtf_in_stream_process_file(GtGTFInStream *gtf_in_stream,
                                      GtError *err)
{
  GtGTFParser *gtf_parser;
  GtStr *filenamestr;
  GtFile *fpin;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(gtf_in_stream);

  gtf_parser = gt_gtf_parser_new(gtf_in_stream->type_checker);

  /* open input file */
  if (gtf_in_stream->filename) {
    if (!(fpin = gt_file_new(gtf_in_stream->filename, "r", err)))
      had_err = -1;
  }
  else
    fpin = NULL;

  /* parse input file */
  if (!had_err) {
    filenamestr = gt_str_new_cstr(gtf_in_stream->filename
                                  ? gtf_in_stream->filename : "stdin");
    had_err = gt_gtf_parser_parse(gtf_parser, gtf_in_stream->genome_node_buffer,
                                  filenamestr, fpin, gtf_in_stream->tidy, err);
    gt_str_delete(filenamestr);
  }

  /* close input file, if necessary */
  gt_file_delete(fpin);

  /* free */
  gt_gtf_parser_delete(gtf_parser);

  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x182376
movq 0x28(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x18233e
jmp 0x182376
movq 0x4b9c5b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x393cc4(%rip), %rsi    # 0x516013
leaq 0x393e69(%rip), %rdx    # 0x5161bf
leaq 0x3d2317(%rip), %rcx    # 0x554674
leaq 0x3d22e0(%rip), %r8     # 0x554644
movl $0x30, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x182378
jmp 0x18237a
cmpq $0x0, 0x30(%rsp)
jne 0x1823ba
movq 0x4b9c17(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x393c80(%rip), %rsi    # 0x516013
leaq 0x3d22f5(%rip), %rdx    # 0x55468f
leaq 0x3d22d3(%rip), %rcx    # 0x554674
leaq 0x3d229c(%rip), %r8     # 0x554644
movl $0x31, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1823bc
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1824f0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x18240a
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x28(%rsp), %rdx
leaq 0x3a9bea(%rip), %rsi    # 0x52bfda
callq 0xdd320
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
jne 0x182408
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0x182413
movq $0x0, 0x10(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x18248e
movq 0x30(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x182435
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rax
movq %rax, (%rsp)
jmp 0x182442
leaq 0x394ade(%rip), %rax    # 0x516f1a
movq %rax, (%rsp)
jmp 0x182442
movq (%rsp), %rdi
callq 0x11d510
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rcx
movq 0x30(%rsp), %rax
movb 0x29(%rax), %al
movq 0x28(%rsp), %r9
andb $0x1, %al
movzbl %al, %r8d
callq 0x1825f0
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
callq 0x11f560
movq 0x10(%rsp), %rdi
callq 0xde430
movq 0x20(%rsp), %rdi
callq 0x1849e0
movl 0xc(%rsp), %eax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_parser.c
// Function: gt_gtf_parser_new
GtGTFParser* gt_gtf_parser_new(GtTypeChecker *type_checker)
{
  GtGTFParser *parser = gt_malloc(sizeof (GtGTFParser));
  parser->gene_id_hash = gt_hashmap_new(GT_HASH_STRING, gt_free_func,
                                        (GtFree) gt_hashmap_delete);
  parser->seqid_to_str_mapping = gt_hashmap_new(GT_HASH_STRING, NULL,
                                                (GtFree) gt_str_delete);
  parser->source_to_str_mapping = gt_hashmap_new(GT_HASH_STRING, NULL,
                                                 (GtFree) gt_str_delete);
  parser->gene_id_to_name_mapping = gt_hashmap_new(GT_HASH_STRING, gt_free_func,
                                                   gt_free_func);
  parser->transcript_id_to_name_mapping = gt_hashmap_new(GT_HASH_STRING,
                                                         gt_free_func,
                                                         gt_free_func);
  parser->region_node_builder = gt_region_node_builder_new();
  parser->type_checker = type_checker;
  return parser;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x38, %edi
leaq 0x3d21ab(%rip), %rsi    # 0x5546b0
movl $0x62, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movl $0x1, %edi
leaq -0x99af0(%rip), %rsi    # 0xe8a30
leaq -0xa0db7(%rip), %rdx    # 0xe1770
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq -0x62fe7(%rip), %rdx    # 0x11f560
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
leaq -0x63008(%rip), %rdx    # 0x11f560
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movl $0x1, %edi
leaq -0x99b55(%rip), %rdx    # 0xe8a30
movq %rdx, %rsi
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movl $0x1, %edi
leaq -0x99b75(%rip), %rdx    # 0xe8a30
movq %rdx, %rsi
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
callq 0x1ca8e0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x30(%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/gtf_parser.c
// Function: GTF_feature_type_get
static int GTF_feature_type_get(GTF_feature_type *type, char *feature_string)
{
  void *result;

  gt_assert(type && feature_string);

  result = bsearch(&feature_string,
                   GTF_feature_type_strings,
                   sizeof (GTF_feature_type_strings) /
                   sizeof (GTF_feature_type_strings[0]),
                   sizeof (char*),
                   gt_strcmpptr);

  if (result) {
    *type = (GTF_feature_type)
            ((char**) result - (char**) GTF_feature_type_strings);
    return 0;
  }
  /* else type not found */
  return -1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x18424e
cmpq $0x0, 0x10(%rsp)
jne 0x184286
movq 0x4b7d4b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x391db4(%rip), %rsi    # 0x516013
leaq 0x3d067d(%rip), %rdx    # 0x5548e3
leaq 0x3d068d(%rip), %rcx    # 0x5548fa
leaq 0x3d043c(%rip), %r8     # 0x5546b0
movl $0x4e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x184288
leaq 0x10(%rsp), %rdi
leaq 0x4b971c(%rip), %rsi    # 0x63d9b0
movl $0x4, %edx
movl $0x8, %ecx
leaq -0x64205(%rip), %r8     # 0x1200a0
callq 0x198e0
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x1842dd
movq 0x8(%rsp), %rax
leaq 0x4b96ed(%rip), %rcx    # 0x63d9b0
subq %rcx, %rax
sarq $0x3, %rax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movl $0x0, 0x24(%rsp)
jmp 0x1842e5
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_parser.c
// Function: delete_genes
static int delete_genes(GT_UNUSED void *key, void *value, GT_UNUSED void *data,
                        GT_UNUSED GtError *err)
{
  GtHashmap *transcript_id_hash = (GtHashmap*) value;
  GT_UNUSED int had_err = 0;
  gt_assert(key && value);
  had_err = gt_hashmap_foreach(transcript_id_hash, delete_mRNAs, NULL, err);
  gt_assert(!had_err);
  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x18493a
cmpq $0x0, 0x28(%rsp)
jne 0x184972
movq 0x4b765f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3916c8(%rip), %rsi    # 0x516013
leaq 0x414c9c(%rip), %rdx    # 0x5995ee
leaq 0x3d0255(%rip), %rcx    # 0x554bae
leaq 0x3cfd50(%rip), %r8     # 0x5546b0
movl $0x177, %r9d            # imm = 0x177
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x184974
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rcx
leaq 0xb1b(%rip), %rsi       # 0x1854a0
xorl %eax, %eax
movl %eax, %edx
callq 0xe11a0
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
je 0x1849d1
movq 0x4b7600(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x391669(%rip), %rsi    # 0x516013
leaq 0x3c8256(%rip), %rdx    # 0x54cc07
leaq 0x3d01f6(%rip), %rcx    # 0x554bae
leaq 0x3cfcf1(%rip), %r8     # 0x5546b0
movl $0x179, %r9d            # imm = 0x179
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1849d3
movl 0xc(%rsp), %eax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_parser.c
// Function: gt_gtf_parser_delete
void gt_gtf_parser_delete(GtGTFParser *parser)
{
  if (!parser) return;
  gt_region_node_builder_delete(parser->region_node_builder);
  gt_hashmap_delete(parser->gene_id_hash);
  gt_hashmap_delete(parser->seqid_to_str_mapping);
  gt_hashmap_delete(parser->source_to_str_mapping);
  gt_hashmap_delete(parser->transcript_id_to_name_mapping);
  gt_hashmap_delete(parser->gene_id_to_name_mapping);
  gt_free(parser);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1849ee
jmp 0x184a50
movq (%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x1ca920
movq (%rsp), %rax
movq (%rax), %rdi
callq 0xe1770
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xe1770
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xe1770
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xe1770
movq (%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xe1770
movq (%rsp), %rdi
leaq 0x3cfc6a(%rip), %rsi    # 0x5546b0
movl $0x316, %edx            # imm = 0x316
callq 0xe88c0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_parser.c
// Function: delete_mRNAs
static int delete_mRNAs(GT_UNUSED void *key, void *value,
                        GT_UNUSED void *data, GT_UNUSED GtError *err)
{
  GtArray *gt_genome_node_array = (GtArray*) value;
  GtUword i;

  gt_assert(key && value);
  for (i = 0; i < gt_array_size(gt_genome_node_array); i++) {
    GtGenomeNode *gn = *(GtGenomeNode**) gt_array_get(gt_genome_node_array, i);
    gt_genome_node_delete(gn);
  }

  return 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x1854d2
cmpq $0x0, 0x38(%rsp)
jne 0x18550a
movq 0x4b6ac7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x390b30(%rip), %rsi    # 0x516013
leaq 0x414104(%rip), %rdx    # 0x5995ee
leaq 0x3cf6ca(%rip), %rcx    # 0x554bbb
leaq 0x3cf1b8(%rip), %r8     # 0x5546b0
movl $0x113, %r9d            # imm = 0x113
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x18550c
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x185567
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x173180
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x185515
xorl %eax, %eax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: gt_gtf_visitor_class
const GtNodeVisitorClass* gt_gtf_visitor_class()
{
  static const GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc) {
    nvc = gt_node_visitor_class_new(sizeof (GtGTFVisitor),
                                    gtf_visitor_free,
                                    gtf_visitor_comment_node,
                                    gtf_visitor_feature_node,
                                    NULL,
                                    NULL,
                                    NULL);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x4bd852(%rip)    # 0x642dd0
jne 0x1855b6
movl $0x38, %edi
leaq 0x44(%rip), %rsi        # 0x1855d0
leaq 0xcd(%rip), %rdx        # 0x185660
leaq 0x176(%rip), %rcx       # 0x185710
xorl %eax, %eax
movl %eax, %r9d
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x1b2170
movq %rax, 0x4bd81a(%rip)    # 0x642dd0
callq 0x9f280
movq 0x4bd80e(%rip), %rax    # 0x642dd0
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: gtf_visitor_free
static void gtf_visitor_free(GtNodeVisitor *nv)
{
  GtGTFVisitor *gtf_visitor = gtf_visitor_cast(nv);
  gt_assert(gtf_visitor);
  gt_array_delete(gtf_visitor->exon_features);
  gt_array_delete(gtf_visitor->CDS_features);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x185570
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x185630
movq 0x4b69a1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x390a0a(%rip), %rsi    # 0x516013
leaq 0x3cf679(%rip), %rdx    # 0x554c89
leaq 0x3cf5b1(%rip), %rcx    # 0x554bc8
leaq 0x3cf5bb(%rip), %r8     # 0x554bd9
movl $0x2d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x185632
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81f80
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x81f80
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: gtf_visitor_comment_node
static int gtf_visitor_comment_node(GtNodeVisitor *nv, GtCommentNode *c,
                                    GT_UNUSED GtError *err)
{
  GtGTFVisitor *gtf_visitor;
  gt_error_check(err);
  gtf_visitor = gtf_visitor_cast(nv);
  gt_file_xprintf(gtf_visitor->outfp, "#%s\n", gt_comment_node_get_comment(c));
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1856c3
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x18568b
jmp 0x1856c3
movq 0x4b690e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x390977(%rip), %rsi    # 0x516013
leaq 0x390b1c(%rip), %rdx    # 0x5161bf
leaq 0x3cf54a(%rip), %rcx    # 0x554bf4
leaq 0x3cf528(%rip), %r8     # 0x554bd9
movl $0x36, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1856c5
callq 0x185570
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x48d8b0
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x3cedf2(%rip), %rsi    # 0x5544f3
movb $0x0, %al
callq 0xddca0
xorl %eax, %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: gtf_visitor_feature_node
static int gtf_visitor_feature_node(GtNodeVisitor *nv, GtFeatureNode *fn,
                                    GtError *err)
{
  GtGTFVisitor *gtf_visitor;
  int had_err;
  gt_error_check(err);
  gtf_visitor = gtf_visitor_cast(nv);
  had_err = gt_feature_node_traverse_children(fn, gtf_visitor,
                                              gtf_show_feature_node, false,
                                              err);
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x185773
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x18573b
jmp 0x185773
movq 0x4b685e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3908c7(%rip), %rsi    # 0x516013
leaq 0x390a6c(%rip), %rdx    # 0x5161bf
leaq 0x3cf4b3(%rip), %rcx    # 0x554c0d
leaq 0x3cf478(%rip), %r8     # 0x554bd9
movl $0x97, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x185775
callq 0x185570
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %r8
leaq 0x9e(%rip), %rdx        # 0x185840
xorl %ecx, %ecx
callq 0x16e2f0
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: gt_gtf_visitor_new
GtNodeVisitor* gt_gtf_visitor_new(GtFile *outfp)
{
  GtNodeVisitor *nv = gt_node_visitor_create(gt_gtf_visitor_class());
  GtGTFVisitor *gtf_visitor = gtf_visitor_cast(nv);
  gtf_visitor->gene_id = 0;
  gtf_visitor->exon_features = gt_array_new(sizeof (GtGenomeNode*));
  gtf_visitor->CDS_features = gt_array_new(sizeof (GtGenomeNode*));
  gtf_visitor->outfp = outfp;
  return nv;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x185570
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x8(%rsp)
callq 0x185570
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b2350
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: gtf_show_feature_node
static int gtf_show_feature_node(GtFeatureNode *fn, void *data, GtError *err)
{
  GtGTFVisitor *gtf_visitor = (GtGTFVisitor*) data;
  int had_err = 0;
  if (gt_feature_node_has_type(fn, gt_ft_gene)) {
      gtf_visitor->gene_id++;
      gtf_visitor->transcript_id = 0;
      had_err = gtf_show_transcript(fn, gtf_visitor, err);
  }
  else if (gt_feature_node_has_type(fn, gt_ft_mRNA)) {
    had_err = gtf_show_transcript(fn, gtf_visitor, err);
  }
  else if (!(gt_feature_node_has_type(fn, gt_ft_CDS) ||
             gt_feature_node_has_type(fn, gt_ft_exon))) {
      gt_warning("skipping GFF3 feature of type \"%s\" (from line %u in file "
                 "\"%s\")",
                 gt_feature_node_get_type(fn),
                 gt_genome_node_get_line_number((GtGenomeNode*) fn),
                 gt_genome_node_get_filename((GtGenomeNode*) fn));
  }
  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movq 0x30(%rsp), %rdi
leaq 0x42d2f5(%rip), %rsi    # 0x5b2b66
callq 0x16d960
testb $0x1, %al
jne 0x18587c
jmp 0x1858b7
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x185960
movl %eax, 0x14(%rsp)
jmp 0x185957
movq 0x30(%rsp), %rdi
leaq 0x3c756f(%rip), %rsi    # 0x54ce32
callq 0x16d960
testb $0x1, %al
jne 0x1858ce
jmp 0x1858e8
movq 0x30(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x185960
movl %eax, 0x14(%rsp)
jmp 0x185955
movq 0x30(%rsp), %rdi
leaq 0x3cf1c4(%rip), %rsi    # 0x554ab8
callq 0x16d960
testb $0x1, %al
jne 0x185953
movq 0x30(%rsp), %rdi
leaq 0x3e1813(%rip), %rsi    # 0x56711c
callq 0x16d960
testb $0x1, %al
jne 0x185953
movq 0x30(%rsp), %rdi
callq 0x16d430
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
callq 0x171b20
movl %eax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
callq 0x171a90
movq 0x8(%rsp), %rsi
movl 0x10(%rsp), %edx
movq %rax, %rcx
leaq 0x3cf2da(%rip), %rdi    # 0x554c26
movb $0x0, %al
callq 0x1267d0
jmp 0x185955
jmp 0x185957
movl 0x14(%rsp), %eax
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/gtf_visitor.c
// Function: save_exon_node
static int save_exon_node(GtFeatureNode *fn, void *data, GT_UNUSED GtError *err)
{
  GtGTFVisitor *gtf_visitor;
  gt_error_check(err);
  gt_assert(fn && data);
  gtf_visitor = (GtGTFVisitor*) data;
  if (gt_feature_node_has_type(fn, gt_ft_exon))
    gt_array_add(gtf_visitor->exon_features, fn);
  else if (gt_feature_node_has_type(fn, gt_ft_CDS))
    gt_array_add(gtf_visitor->CDS_features, fn);
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x185cd3
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x185c9b
jmp 0x185cd3
movq 0x4b62fe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x390367(%rip), %rsi    # 0x516013
leaq 0x39050c(%rip), %rdx    # 0x5161bf
leaq 0x3cf004(%rip), %rcx    # 0x554cbe
leaq 0x3cef18(%rip), %r8     # 0x554bd9
movl $0x3f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x185cd5
jmp 0x185cd7
cmpq $0x0, 0x20(%rsp)
je 0x185ce7
cmpq $0x0, 0x18(%rsp)
jne 0x185d1f
movq 0x4b62b2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x39031b(%rip), %rsi    # 0x516013
leaq 0x3cefce(%rip), %rdx    # 0x554ccd
leaq 0x3cefb8(%rip), %rcx    # 0x554cbe
leaq 0x3ceecc(%rip), %r8     # 0x554bd9
movl $0x40, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x185d21
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
leaq 0x3e13e5(%rip), %rsi    # 0x56711c
callq 0x16d960
testb $0x1, %al
jne 0x185d42
jmp 0x185d5c
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x20(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
jmp 0x185d8d
movq 0x20(%rsp), %rdi
leaq 0x3ced50(%rip), %rsi    # 0x554ab8
callq 0x16d960
testb $0x1, %al
jne 0x185d73
jmp 0x185d8b
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
leaq 0x20(%rsp), %rsi
movl $0x8, %edx
callq 0x81100
jmp 0x185d8d
xorl %eax, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_decoder_new
GtHcrDecoder *gt_hcr_decoder_new(const char *name, GtAlphabet *alpha,
                                 bool descs, GtTimer *timer, GtError *err)
{
  GtHcrDecoder *hcr_dec = NULL;
  int had_err = 0;

  gt_error_check(err);
  if (timer != NULL)
    gt_timer_show_progress(timer, "initialize hcr decoder", stdout);

  hcr_dec = gt_malloc(sizeof (GtHcrDecoder));
  hcr_dec->seq_dec = NULL;

  if (descs) {
    hcr_dec->encdesc = gt_encdesc_load(name, err);
    if (gt_error_is_set(err)) {
      had_err = -1;
    }
  }
  else
    hcr_dec->encdesc = NULL;

  if (!had_err) {
    hcr_dec->seq_dec = hcr_seq_decoder_new(alpha, name, err);
    if (!gt_error_is_set(err))
      return hcr_dec;
  }
  gt_hcr_decoder_delete(hcr_dec);
  return NULL;
}

// Assembly:
subq $0x48, %rsp
movb %dl, %al
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
andb $0x1, %al
movb %al, 0x2f(%rsp)
movq %rcx, 0x20(%rsp)
movq %r8, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x185e21
movq 0x18(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x185de9
jmp 0x185e21
movq 0x4b61b0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x390219(%rip), %rsi    # 0x516013
leaq 0x3903be(%rip), %rdx    # 0x5161bf
leaq 0x3ceed0(%rip), %rcx    # 0x554cd8
leaq 0x3ceedc(%rip), %r8     # 0x554ceb
movl $0x33e, %r9d            # imm = 0x33E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x185e23
cmpq $0x0, 0x20(%rsp)
je 0x185e46
movq 0x20(%rsp), %rdi
movq 0x4b6101(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x3ceebd(%rip), %rsi    # 0x554cfe
callq 0x121930
movl $0x10, %edi
leaq 0x3cee99(%rip), %rsi    # 0x554ceb
movl $0x342, %edx            # imm = 0x342
callq 0xe80f0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq $0x0, 0x8(%rax)
testb $0x1, 0x2f(%rsp)
je 0x185ea9
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x161930
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x185e9f
jmp 0x185ea7
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0x185eb5
movq 0x10(%rsp), %rax
movq $0x0, (%rax)
cmpl $0x0, 0xc(%rsp)
jne 0x185ef8
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0x185f20
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x185ef6
movq 0x10(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x185f0b
jmp 0x185ef8
movq 0x10(%rsp), %rdi
callq 0x186220
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_decoder_delete
void gt_hcr_decoder_delete(GtHcrDecoder *hcr_dec)
{
  if (hcr_dec != NULL) {
    hcr_seq_decoder_delete(hcr_dec->seq_dec);
    gt_encdesc_delete(hcr_dec->encdesc);
    gt_free(hcr_dec);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x18625a
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x1887d0
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x161bb0
movq (%rsp), %rdi
leaq 0x3cea9b(%rip), %rsi    # 0x554ceb
movl $0x53d, %edx            # imm = 0x53D
callq 0xe88c0
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_decoder_has_descs_support
bool gt_hcr_decoder_has_descs_support(const GtHcrDecoder *hcr_dec)
{
  gt_assert(hcr_dec);
  if (!hcr_dec->encdesc)
    return false;
  else
    return true;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1862a9
movq 0x4b5d28(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38fd91(%rip), %rsi    # 0x516013
leaq 0x3cea8c(%rip), %rdx    # 0x554d15
leaq 0x3cea8d(%rip), %rcx    # 0x554d1d
leaq 0x3cea54(%rip), %r8     # 0x554ceb
movl $0x359, %r9d            # imm = 0x359
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1862ab
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1862bd
movb $0x0, 0x17(%rsp)
jmp 0x1862c2
movb $0x1, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: reset_data_iterator_to_pos
static void reset_data_iterator_to_pos(HcrHuffDataIterator *data_iter,
                                       size_t pos)
{
  gt_assert(data_iter);
  gt_assert(pos < data_iter->end);
  gt_assert(data_iter->start <= pos);
  gt_fa_xmunmap(data_iter->data);
  data_iter->data = NULL;
  data_iter->pos = pos;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x186b9e
movq 0x4b5433(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38f49c(%rip), %rsi    # 0x516013
leaq 0x3ce64c(%rip), %rdx    # 0x5551ca
leaq 0x3ce781(%rip), %rcx    # 0x555306
leaq 0x3ce15f(%rip), %r8     # 0x554ceb
movl $0x299, %r9d            # imm = 0x299
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x186ba0
jmp 0x186ba2
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x186bea
movq 0x4b53e7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38f450(%rip), %rsi    # 0x516013
leaq 0x3ce757(%rip), %rdx    # 0x555321
leaq 0x3ce735(%rip), %rcx    # 0x555306
leaq 0x3ce113(%rip), %r8     # 0x554ceb
movl $0x29a, %r9d            # imm = 0x29A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x186bec
jmp 0x186bee
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
cmpq 0x8(%rsp), %rax
jbe 0x186c36
movq 0x4b539b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38f404(%rip), %rsi    # 0x516013
leaq 0x3ce720(%rip), %rdx    # 0x555336
leaq 0x3ce6e9(%rip), %rcx    # 0x555306
leaq 0x3ce0c7(%rip), %r8     # 0x554ceb
movl $0x29b, %r9d            # imm = 0x29B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x186c38
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xdb2a0
movq 0x10(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: hcr_base_qual_distr_add
static int hcr_base_qual_distr_add(GtBaseQualDistr *bqd, const GtUchar *qual,
                                   const GtUchar *seq, GtUword len)
{
  GtUword i;
  unsigned cur_char_code,
           cur_qual;

  for (i = 0; i < len; i++) {
    cur_char_code = (unsigned) gt_alphabet_encode(bqd->alpha,
                           (char) gt_alphabet_pretty_symbol(bqd->alpha,
                                                            (unsigned) seq[i]));
    cur_qual = (unsigned) qual[i];

    if (bqd->qrange_start != GT_UNDEF_UINT) {
      if (cur_qual <= bqd->qrange_start)
        cur_qual = bqd->qrange_start;
    }

    if (bqd->qrange_end != GT_UNDEF_UINT) {
      if (cur_qual >= bqd->qrange_end)
        cur_qual = bqd->qrange_end;
    }
    if (cur_char_code == GT_WILDCARD)
      bqd->distr[cur_qual][bqd->wildcard_indx]++;
    else
      bqd->distr[cur_qual][cur_char_code]++;
    if (cur_qual > bqd->max_qual)
      bqd->max_qual = cur_qual;
    if (cur_qual < bqd->min_qual)
      bqd->min_qual = cur_qual;
  }
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x18(%rsp), %rax
jae 0x187cd6
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %esi
callq 0x7f130
movq (%rsp), %rdi
movsbl %al, %esi
callq 0x7f6f0
movzbl %al, %eax
movl %eax, 0xc(%rsp)
movq 0x28(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl %eax, 0x8(%rsp)
movq 0x30(%rsp), %rax
cmpl $-0x1, 0x24(%rax)
je 0x187c16
movl 0x8(%rsp), %eax
movq 0x30(%rsp), %rcx
cmpl 0x24(%rcx), %eax
ja 0x187c14
movq 0x30(%rsp), %rax
movl 0x24(%rax), %eax
movl %eax, 0x8(%rsp)
jmp 0x187c16
movq 0x30(%rsp), %rax
cmpl $-0x1, 0x2c(%rax)
je 0x187c3d
movl 0x8(%rsp), %eax
movq 0x30(%rsp), %rcx
cmpl 0x2c(%rcx), %eax
jb 0x187c3b
movq 0x30(%rsp), %rax
movl 0x2c(%rax), %eax
movl %eax, 0x8(%rsp)
jmp 0x187c3d
cmpl $0xfe, 0xc(%rsp)
jne 0x187c6d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x8(%rsp), %ecx
movq (%rax,%rcx,8), %rax
movq 0x30(%rsp), %rcx
movl 0x20(%rcx), %ecx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
jmp 0x187c8d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x8(%rsp), %ecx
movq (%rax,%rcx,8), %rax
movl 0xc(%rsp), %ecx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
movl 0x8(%rsp), %eax
movq 0x30(%rsp), %rcx
cmpl 0x18(%rcx), %eax
jbe 0x187ca7
movl 0x8(%rsp), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x18(%rax)
movl 0x8(%rsp), %eax
movq 0x30(%rsp), %rcx
cmpl 0x1c(%rcx), %eax
jae 0x187cc1
movl 0x8(%rsp), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x1c(%rax)
jmp 0x187cc3
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x187b91
xorl %eax, %eax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: hcr_base_qual_distr_trim
static void hcr_base_qual_distr_trim(GtBaseQualDistr *bqd)
{
  if (bqd->min_qual != 0) {
    GtUint64 **distr_trimmed;
    unsigned nrows_new,
             i,
             j;

    nrows_new = bqd->max_qual - bqd->min_qual + 1;
    gt_array2dim_calloc(distr_trimmed, (GtUword) nrows_new, bqd->ncols);

    for (i = 0; i < nrows_new; i++)
      for (j = 0; j < bqd->ncols; j++)
        distr_trimmed[i][j] = bqd->distr[i + bqd->min_qual][j];
    gt_array2dim_delete(bqd->distr);
    bqd->distr = distr_trimmed;
    bqd->nrows = nrows_new;
    bqd->qual_offset = bqd->min_qual;
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpl $0x0, 0x1c(%rax)
je 0x187e8b
movq 0x20(%rsp), %rax
movl 0x18(%rax), %eax
movq 0x20(%rsp), %rcx
subl 0x1c(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
movl 0x14(%rsp), %eax
movl %eax, %edi
shlq $0x3, %rdi
leaq 0x3ccfcb(%rip), %rsi    # 0x554ceb
movl $0xa4, %edx
callq 0xe80f0
movq %rax, 0x18(%rsp)
movl 0x14(%rsp), %eax
movl %eax, %edi
movq 0x20(%rsp), %rax
movl 0x10(%rax), %eax
imulq %rax, %rdi
movl $0x8, %esi
leaq 0x3ccf9e(%rip), %rdx    # 0x554ceb
movl $0xa4, %ecx
callq 0xe83c0
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq $0x1, (%rsp)
movq (%rsp), %rax
movl 0x14(%rsp), %ecx
cmpq %rcx, %rax
jae 0x187db2
movq 0x18(%rsp), %rax
movq (%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
movq 0x20(%rsp), %rax
movl 0x10(%rax), %eax
shlq $0x3, %rax
addq %rax, %rdx
movq 0x18(%rsp), %rax
movq (%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x187d6a
movl $0x0, 0x10(%rsp)
movl 0x10(%rsp), %eax
cmpl 0x14(%rsp), %eax
jae 0x187e2d
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0x10(%rcx), %eax
jae 0x187e1e
movq 0x20(%rsp), %rax
movq (%rax), %rax
movl 0x10(%rsp), %ecx
movq 0x20(%rsp), %rdx
addl 0x1c(%rdx), %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
movl 0xc(%rsp), %ecx
movq (%rax,%rcx,8), %rdx
movq 0x18(%rsp), %rax
movl 0x10(%rsp), %ecx
movq (%rax,%rcx,8), %rax
movl 0xc(%rsp), %ecx
movq %rdx, (%rax,%rcx,8)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x187dcc
jmp 0x187e20
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x187dba
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rdi
leaq 0x3cceac(%rip), %rsi    # 0x554ceb
movl $0xa9, %edx
callq 0xe88c0
movq 0x20(%rsp), %rax
movq (%rax), %rdi
leaq 0x3cce93(%rip), %rsi    # 0x554ceb
movl $0xa9, %edx
callq 0xe88c0
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movl 0x14(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x14(%rax)
movq 0x20(%rsp), %rax
movl 0x1c(%rax), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x28(%rax)
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: hcr_base_qual_distr_delete
static void hcr_base_qual_distr_delete(GtBaseQualDistr *bqd)
{
  if (!bqd)
    return;
  gt_array2dim_delete(bqd->distr);
  gt_free(bqd);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x187f0e
jmp 0x187f56
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rdi
leaq 0x3ccdcc(%rip), %rsi    # 0x554ceb
movl $0x11b, %edx            # imm = 0x11B
callq 0xe88c0
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x3ccdb4(%rip), %rsi    # 0x554ceb
movl $0x11b, %edx            # imm = 0x11B
callq 0xe88c0
movq (%rsp), %rdi
leaq 0x3ccd9f(%rip), %rsi    # 0x554ceb
movl $0x11c, %edx            # imm = 0x11C
callq 0xe88c0
popq %rax
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_encoder_has_descs_support
bool gt_hcr_encoder_has_descs_support(const GtHcrEncoder *hcr_enc)
{
  gt_assert(hcr_enc);
  if (!hcr_enc->encdesc_encoder)
    return false;
  else
    return true;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x187fa9
movq 0x4b4028(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38e091(%rip), %rsi    # 0x516013
leaq 0x3cd001(%rip), %rdx    # 0x554f8a
leaq 0x3cd002(%rip), %rcx    # 0x554f92
leaq 0x3ccd54(%rip), %r8     # 0x554ceb
movl $0x4cb, %r9d            # imm = 0x4CB
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x187fab
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x187fbd
movb $0x0, 0x17(%rsp)
jmp 0x187fc2
movb $0x1, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_encoder_set_sampling_none
void gt_hcr_encoder_set_sampling_none(GtHcrEncoder *hcr_enc)
{
  gt_assert(hcr_enc);
  hcr_enc->page_sampling = hcr_enc->regular_sampling = false;
  if (hcr_enc->encdesc_encoder != NULL)
    gt_encdesc_encoder_set_sampling_none(hcr_enc->encdesc_encoder);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x188014
movq 0x4b3fbd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38e026(%rip), %rsi    # 0x516013
leaq 0x3ccf96(%rip), %rdx    # 0x554f8a
leaq 0x3ccfb8(%rip), %rcx    # 0x554fb3
leaq 0x3ccce9(%rip), %r8     # 0x554ceb
movl $0x4d4, %r9d            # imm = 0x4D4
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x188016
movq (%rsp), %rax
movb $0x0, 0x39(%rax)
movq (%rsp), %rax
movb $0x0, 0x38(%rax)
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x18803c
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x15efd0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_encoder_set_sampling_regular
void gt_hcr_encoder_set_sampling_regular(GtHcrEncoder *hcr_enc)
{
  gt_assert(hcr_enc);
  hcr_enc->page_sampling = false;
  hcr_enc->regular_sampling = true;
  if (hcr_enc->encdesc_encoder != NULL)
    gt_encdesc_encoder_set_sampling_regular(hcr_enc->encdesc_encoder);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x188084
movq 0x4b3f4d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38dfb6(%rip), %rsi    # 0x516013
leaq 0x3ccf26(%rip), %rdx    # 0x554f8a
leaq 0x3ccf69(%rip), %rcx    # 0x554fd4
leaq 0x3ccc79(%rip), %r8     # 0x554ceb
movl $0x4dc, %r9d            # imm = 0x4DC
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x188086
movq (%rsp), %rax
movb $0x0, 0x38(%rax)
movq (%rsp), %rax
movb $0x1, 0x39(%rax)
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x1880ac
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x15f030
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_encoder_set_sampling_page
void gt_hcr_encoder_set_sampling_page(GtHcrEncoder *hcr_enc)
{
  gt_assert(hcr_enc);
  hcr_enc->page_sampling = true;
  hcr_enc->regular_sampling = false;
  if (hcr_enc->encdesc_encoder != NULL)
    gt_encdesc_encoder_set_sampling_page(hcr_enc->encdesc_encoder);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x1880f4
movq 0x4b3edd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38df46(%rip), %rsi    # 0x516013
leaq 0x3cceb6(%rip), %rdx    # 0x554f8a
leaq 0x3ccf1d(%rip), %rcx    # 0x554ff8
leaq 0x3ccc09(%rip), %r8     # 0x554ceb
movl $0x4e5, %r9d            # imm = 0x4E5
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1880f6
movq (%rsp), %rax
movb $0x1, 0x38(%rax)
movq (%rsp), %rax
movb $0x0, 0x39(%rax)
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x18811c
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x15f090
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_encoder_set_sampling_rate
void gt_hcr_encoder_set_sampling_rate(GtHcrEncoder *hcr_enc,
                                      GtUword srate)
{
  gt_assert(hcr_enc);
  hcr_enc->sampling_rate = srate;

  if (hcr_enc->encdesc_encoder != NULL)
    gt_encdesc_encoder_set_sampling_rate(hcr_enc->encdesc_encoder, srate);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x18816e
movq 0x4b3e63(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38decc(%rip), %rsi    # 0x516013
leaq 0x3cce3c(%rip), %rdx    # 0x554f8a
leaq 0x3ccec4(%rip), %rcx    # 0x555019
leaq 0x3ccb8f(%rip), %r8     # 0x554ceb
movl $0x4ef, %r9d            # imm = 0x4EF
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x188170
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
je 0x18819b
movq 0x10(%rsp), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x15f1b0
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: gt_hcr_encoder_delete
void gt_hcr_encoder_delete(GtHcrEncoder *hcr_enc)
{
  if (!hcr_enc)
    return;
  gt_huffman_delete(hcr_enc->seq_encoder->huffman);
  gt_sampling_delete(hcr_enc->seq_encoder->sampling);
  gt_free(hcr_enc->seq_encoder->fileinfos);
  gt_free(hcr_enc->seq_encoder);
  gt_encdesc_encoder_delete(hcr_enc->encdesc_encoder);
  gt_free(hcr_enc);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x18874e
jmp 0x1887c7
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rdi
callq 0x192210
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rax), %rdi
callq 0x1d0e10
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x3cc568(%rip), %rsi    # 0x554ceb
movl $0x532, %edx            # imm = 0x532
callq 0xe88c0
movq (%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x3cc54f(%rip), %rsi    # 0x554ceb
movl $0x533, %edx            # imm = 0x533
callq 0xe88c0
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x162fd0
movq (%rsp), %rdi
leaq 0x3cc52e(%rip), %rsi    # 0x554ceb
movl $0x535, %edx            # imm = 0x535
callq 0xe88c0
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: hcr_seq_decoder_delete
static void hcr_seq_decoder_delete(GtHcrSeqDecoder *seq_dec)
{
  if (seq_dec != NULL) {
    gt_free(seq_dec->fileinfos);
    gt_huffman_decoder_delete(seq_dec->huff_dec);
    gt_huffman_delete(seq_dec->huffman);
    gt_sampling_delete(seq_dec->sampling);
    gt_rbtree_delete(seq_dec->file_info_rbt);
    gt_str_delete(seq_dec->filename);
    data_iterator_delete(seq_dec->data_iter);
    gt_array_delete(seq_dec->symbols);
    gt_free(seq_dec);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x188868
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x3cc4fd(%rip), %rsi    # 0x554ceb
movl $0x2e6, %edx            # imm = 0x2E6
callq 0xe88c0
movq (%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x192f10
movq (%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x192210
movq (%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x1d0e10
movq (%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x1b7f50
movq (%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x11f560
movq (%rsp), %rax
movq 0x48(%rax), %rdi
callq 0x18a520
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x81f80
movq (%rsp), %rdi
leaq 0x3cc48d(%rip), %rsi    # 0x554ceb
movl $0x2ee, %edx            # imm = 0x2EE
callq 0xe88c0
popq %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: hcr_read_file_info
static void hcr_read_file_info(GtHcrSeqDecoder *seq_dec, FILE *fp)
{
  GtUword i;
  GT_UNUSED size_t read,
            one = (size_t) 1;

  read = gt_xfread_one(&seq_dec->num_of_files, fp);
  gt_assert(read == one);

  seq_dec->fileinfos = gt_calloc((size_t) seq_dec->num_of_files,
                                          sizeof (*seq_dec->fileinfos));
  for (i = 0; i < seq_dec->num_of_files; i++) {
    read = gt_xfread_one(&seq_dec->fileinfos[i].readnum, fp);
    gt_assert(read == one);
    read = gt_xfread_one(&seq_dec->fileinfos[i].readlength, fp);
    gt_assert(read == one);
  }
  seq_dec->num_of_reads = seq_dec->fileinfos[seq_dec->num_of_files - 1].readnum;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq $0x1, (%rsp)
movq 0x20(%rsp), %rdi
addq $0x68, %rdi
movq 0x18(%rsp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x126c30
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq (%rsp), %rax
je 0x1888eb
movq 0x4b36e6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38d74f(%rip), %rsi    # 0x516013
leaq 0x3cc8a1(%rip), %rdx    # 0x55516c
leaq 0x3cc8ba(%rip), %rcx    # 0x55518c
leaq 0x3cc412(%rip), %r8     # 0x554ceb
movl $0x24d, %r9d            # imm = 0x24D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1888ed
movq 0x20(%rsp), %rax
movq 0x68(%rax), %rdi
movl $0x10, %esi
leaq 0x3cc3e9(%rip), %rdx    # 0x554ceb
movl $0x250, %ecx            # imm = 0x250
callq 0xe83c0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x68(%rcx), %rax
jae 0x188a31
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rax
shlq $0x4, %rax
addq %rax, %rdi
addq $0x8, %rdi
movq 0x18(%rsp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x126c30
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq (%rsp), %rax
je 0x1889a8
movq 0x4b3629(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38d692(%rip), %rsi    # 0x516013
leaq 0x3cc7e4(%rip), %rdx    # 0x55516c
leaq 0x3cc7fd(%rip), %rcx    # 0x55518c
leaq 0x3cc355(%rip), %r8     # 0x554ceb
movl $0x253, %r9d            # imm = 0x253
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1889aa
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rax
shlq $0x4, %rax
addq %rax, %rdi
movq 0x18(%rsp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x126c30
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq (%rsp), %rax
je 0x188a1a
movq 0x4b35b7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x38d620(%rip), %rsi    # 0x516013
leaq 0x3cc772(%rip), %rdx    # 0x55516c
leaq 0x3cc78b(%rip), %rcx    # 0x55518c
leaq 0x3cc2e3(%rip), %r8     # 0x554ceb
movl $0x255, %r9d            # imm = 0x255
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x188a1c
jmp 0x188a1e
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x188920
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq 0x20(%rsp), %rcx
movq 0x68(%rcx), %rcx
subq $0x1, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x60(%rax)
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/hcr.c
// Function: decoder_calc_start_of_encoded_data
static inline GtWord decoder_calc_start_of_encoded_data(FILE *fp)
{
  bool is_not_at_pageborder;
  GtUword pagesize = gt_pagesize();

  is_not_at_pageborder = (ftell(fp) % pagesize) != 0;

  if (is_not_at_pageborder)
    return (ftell(fp) / pagesize + 1) * pagesize;
  else
    return ftell(fp);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
callq 0xa2640
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x19030
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x8(%rsp)
cmpq $0x0, %rdx
setne %al
andb $0x1, %al
movb %al, 0x17(%rsp)
testb $0x1, 0x17(%rsp)
je 0x188ede
movq 0x18(%rsp), %rdi
callq 0x19030
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x8(%rsp)
addq $0x1, %rax
imulq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0x188eed
movq 0x18(%rsp), %rdi
callq 0x19030
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)