LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltr_cluster_stream.c
// Function: gt_ltr_cluster_stream_free
static void gt_ltr_cluster_stream_free(GtNodeStream *ns)
{
  GtUword i;
  GtLTRClusterStream *lcs = gt_ltr_cluster_stream_cast(ns);
  gt_node_visitor_delete((GtNodeVisitor*) lcs->lcv);
  gt_hashmap_delete(lcs->feat_to_encseq);
  gt_str_array_delete(lcs->feat_to_encseq_keys);
  for (i = 0; i < gt_array_size(lcs->nodes); i++)
    gt_genome_node_delete(*(GtGenomeNode**) gt_array_get(lcs->nodes, i));
  gt_array_delete(lcs->nodes);
  gt_node_stream_delete(lcs->in_stream);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
callq 0x2ff1e0
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1b29d0
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xe1770
movq 0x10(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11fd20
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x2ff2c3
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0x173180
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x2ff273
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81f80
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x1b1cb0
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltr_cluster_stream.c
// Function: gt_cluster_matches
static int gt_cluster_matches(GtClusteredSet *cs,
                              GtMatchEdgeTable *matchedgetab,
                              GtError *err)
{
  GtUword i;
  for (i = 0; i < matchedgetab->num_of_edges; i++) {
     if (gt_clustered_set_merge_clusters(cs,
              ((GtMatchEdge*)(gt_array_get(matchedgetab->edges, i)))->matchnum0,
              ((GtMatchEdge*)(gt_array_get(matchedgetab->edges, i)))->matchnum1,
              err) != 0) {
       return -1;
    }
  }
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x300999
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x80b60
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x8(%rax), %rdx
movq 0x18(%rsp), %rcx
callq 0x48bca0
cmpl $0x0, %eax
je 0x300987
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x3009a1
jmp 0x300989
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x30091c
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltr_input_check_visitor.c
// Function: gt_ltr_input_check_visitor_new
GtNodeVisitor* gt_ltr_input_check_visitor_new(void)
{
  GtNodeVisitor *nv = NULL;
  GtLTRInputCheckVisitor *lv;
  nv = gt_node_visitor_create(gt_ltr_input_check_visitor_class());
  gt_assert(nv);
  lv = gt_ltr_input_check_visitor_cast(nv);
  lv->only_ltrs = false;
  return nv;
}

// Assembly:
subq $0x18, %rsp
movq $0x0, 0x10(%rsp)
callq 0x3009b0
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x300d5f
movq 0x33b272(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2152db(%rip), %rsi    # 0x516013
leaq 0x26f891(%rip), %rdx    # 0x5705d0
leaq 0x291acf(%rip), %rcx    # 0x592815
leaq 0x291aa6(%rip), %r8     # 0x5927f3
movl $0x7f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x300d61
callq 0x3009b0
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltr_refseq_match_stream.c
// Function: gt_ltr_refseq_match_stream_class
const GtNodeStreamClass* gt_ltr_refseq_match_stream_class(void)
{
  static const GtNodeStreamClass *gsc = NULL;
  gt_class_alloc_lock_enter();
  if (!gsc) {
    gsc = gt_node_stream_class_new(sizeof (GtLTRRefseqMatchStream),
                                   gt_ltr_refseq_match_stream_free,
                                   gt_ltr_refseq_match_stream_next);
  }
  gt_class_alloc_lock_leave();
  return gsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x342242(%rip)    # 0x642fe0
jne 0x300dbf
movl $0xa8, %edi
leaq 0x24(%rip), %rsi        # 0x300dd0
leaq 0x6d(%rip), %rdx        # 0x300e20
callq 0x1b1ae0
movq %rax, 0x342221(%rip)    # 0x642fe0
callq 0x9f280
movq 0x342215(%rip), %rax    # 0x642fe0
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltr_refseq_match_stream.c
// Function: gt_ltr_refseq_match_stream_determine_strand
static GtStrand gt_ltr_refseq_match_stream_determine_strand(GtMatchDirection d,
                                                            GtFeatureNode *fn)
{
  gt_assert(fn);
  if (gt_feature_node_get_strand(fn) == GT_STRAND_REVERSE) {
    if (d == GT_MATCH_DIRECT)
      return GT_STRAND_REVERSE;
    else
      return GT_STRAND_FORWARD;
  } else {
    if (d == GT_MATCH_REVERSE)
      return GT_STRAND_REVERSE;
    else
      return GT_STRAND_FORWARD;
  }
}

// Assembly:
subq $0x18, %rsp
movl %edi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x30277d
movq 0x339854(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2138bd(%rip), %rsi    # 0x516013
leaq 0x2b0793(%rip), %rdx    # 0x5b2ef0
leaq 0x290337(%rip), %rcx    # 0x592a9b
leaq 0x2901f0(%rip), %r8     # 0x59295b
movl $0xb0, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30277f
movq 0x8(%rsp), %rdi
callq 0x16cc70
cmpl $0x1, %eax
jne 0x3027a9
cmpl $0x0, 0x10(%rsp)
jne 0x30279f
movl $0x1, 0x14(%rsp)
jmp 0x3027c2
movl $0x0, 0x14(%rsp)
jmp 0x3027c2
cmpl $0x1, 0x10(%rsp)
jne 0x3027ba
movl $0x1, 0x14(%rsp)
jmp 0x3027c2
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_file_out_stream.c
// Function: gt_ltr_visitor_class
const GtNodeVisitorClass* gt_ltr_visitor_class(void)
{
  static const GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc) {
    nvc = gt_node_visitor_class_new(sizeof (GtLTRVisitor),
                                    NULL,
                                    NULL,
                                    gt_ltr_visitor_feature_node,
                                    NULL,
                                    NULL,
                                    NULL);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x34080a(%rip)    # 0x642fe8
jne 0x30280e
movl $0x18, %edi
xorl %eax, %eax
movl %eax, %r9d
leaq 0x2f(%rip), %rcx        # 0x302820
movq %r9, %rsi
movq %r9, %rdx
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x1b2170
movq %rax, 0x3407da(%rip)    # 0x642fe8
callq 0x9f280
movq 0x3407ce(%rip), %rax    # 0x642fe8
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_file_out_stream.c
// Function: gt_ltrdigest_file_out_stream_class
const GtNodeStreamClass* gt_ltrdigest_file_out_stream_class(void)
{
  static const GtNodeStreamClass *nsc;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtLTRdigestFileOutStream),
                                   gt_ltrfileout_stream_free,
                                   gt_ltrfileout_stream_next );
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x33eda2(%rip)    # 0x642ff0
jne 0x30426f
movl $0xe0, %edi
leaq 0xa54(%rip), %rsi       # 0x304cb0
leaq -0x1543(%rip), %rdx     # 0x302d20
callq 0x1b1ae0
movq %rax, 0x33ed81(%rip)    # 0x642ff0
callq 0x9f280
movq 0x33ed75(%rip), %rax    # 0x642ff0
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_file_out_stream.c
// Function: gt_ltrelement_format_description
static int gt_ltrelement_format_description(GtLTRElement *e,
                                            unsigned int seqnamelen,
                                            char *buf, size_t buflen)
{
  int ret;
  char tmpstr[BUFSIZ];
  gt_assert(buf && e);

  (void) snprintf(tmpstr, GT_MIN(BUFSIZ, (size_t) seqnamelen+1), "%s",
                  e->seqid);
  tmpstr[seqnamelen+1] = '\0';
  gt_cstr_rep(tmpstr, ' ', '_');
  ret = snprintf(buf, buflen, "%s_"GT_WU"_"GT_WU"", tmpstr, e->leftLTR_5+1,
                 e->rightLTR_3+1);
  return ret;
}

// Assembly:
subq $0x2038, %rsp           # imm = 0x2038
movq %rdi, 0x2030(%rsp)
movl %esi, 0x202c(%rsp)
movq %rdx, 0x2020(%rsp)
movq %rcx, 0x2018(%rsp)
cmpq $0x0, 0x2020(%rsp)
je 0x3042bc
cmpq $0x0, 0x2030(%rsp)
jne 0x3042f4
movq 0x337cdd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x211d46(%rip), %rsi    # 0x516013
leaq 0x28edcd(%rip), %rdx    # 0x5930a1
leaq 0x28edcf(%rip), %rcx    # 0x5930aa
leaq 0x28e7ff(%rip), %r8     # 0x592ae1
movl $0x74, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3042f6
leaq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0x202c(%rsp), %eax
movl %eax, %ecx
addq $0x1, %rcx
movl $0x2000, %eax           # imm = 0x2000
cmpq %rcx, %rax
jae 0x304322
movl $0x2000, %eax           # imm = 0x2000
movq %rax, (%rsp)
jmp 0x304331
movl 0x202c(%rsp), %eax
addq $0x1, %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
movq 0x2030(%rsp), %rax
movq 0x58(%rax), %rcx
leaq 0x297cd4(%rip), %rdx    # 0x59c021
movb $0x0, %al
callq 0x19b90
movl 0x202c(%rsp), %eax
addl $0x1, %eax
movl %eax, %eax
movb $0x0, 0x10(%rsp,%rax)
leaq 0x10(%rsp), %rdi
movl $0x20, %esi
movl $0x5f, %edx
callq 0xa2ef0
movq 0x2020(%rsp), %rdi
movq 0x2018(%rsp), %rsi
leaq 0x10(%rsp), %rcx
movq 0x2030(%rsp), %rax
movq 0x8(%rax), %r8
addq $0x1, %r8
movq 0x2030(%rsp), %rax
movq 0x10(%rax), %r9
addq $0x1, %r9
leaq 0x28e5ff(%rip), %rdx    # 0x5929b4
movb $0x0, %al
callq 0x19b90
movl %eax, 0x2014(%rsp)
movl 0x2014(%rsp), %eax
addq $0x2038, %rsp           # imm = 0x2038
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_file_out_stream.c
// Function: gt_ltrfileout_stream_free
void gt_ltrfileout_stream_free(GtNodeStream *ns)
{
  GtLTRdigestFileOutStream *ls = gt_ltrdigest_file_out_stream_cast(ns);
  if (ls->tabout_file != NULL)
    gt_file_delete(ls->tabout_file);
  if (ls->pbsout_file != NULL)
    gt_file_delete(ls->pbsout_file);
  if (ls->pptout_file != NULL)
    gt_file_delete(ls->pptout_file);
  if (ls->ltr5out_file != NULL)
    gt_file_delete(ls->ltr5out_file);
  if (ls->ltr3out_file != NULL)
    gt_file_delete(ls->ltr3out_file);
  if (ls->elemout_file != NULL)
    gt_file_delete(ls->elemout_file);
  gt_node_visitor_delete((GtNodeVisitor*) ls->lv);
  gt_node_stream_delete(ls->in_stream);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x304240
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x304cea
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
cmpq $0x0, 0x30(%rax)
je 0x304d04
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
cmpq $0x0, 0x38(%rax)
je 0x304d1e
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
cmpq $0x0, 0x40(%rax)
je 0x304d38
movq 0x8(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
cmpq $0x0, 0x48(%rax)
je 0x304d52
movq 0x8(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
cmpq $0x0, 0x50(%rax)
je 0x304d6c
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
movq 0x58(%rax), %rdi
callq 0x1b29d0
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x1b1cb0
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_file_out_stream.c
// Function: gt_ltr_visitor_new
static GtNodeVisitor* gt_ltr_visitor_new(GtLTRElement *element)
{
  GtNodeVisitor *nv;
  GtLTRVisitor *lv;
  gt_assert(element);
  nv = gt_node_visitor_create(gt_ltr_visitor_class());
  lv = gt_ltr_visitor_cast(nv);
  lv->element = element;
  gt_assert(lv);
  return nv;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x305a29
movq 0x3365a8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x210611(%rip), %rsi    # 0x516013
leaq 0x291cd8(%rip), %rdx    # 0x5976e1
leaq 0x28d86c(%rip), %rcx    # 0x59327c
leaq 0x28d0ca(%rip), %r8     # 0x592ae1
movl $0xea, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x305a2b
callq 0x3027d0
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x8(%rsp)
callq 0x3027d0
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b2350
movq %rax, (%rsp)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
cmpq $0x0, (%rsp)
jne 0x305a9f
movq 0x336532(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x21059b(%rip), %rsi    # 0x516013
leaq 0x28d603(%rip), %rdx    # 0x593082
leaq 0x28d7f6(%rip), %rcx    # 0x59327c
leaq 0x28d054(%rip), %r8     # 0x592ae1
movl $0xee, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x305aa1
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pbs_visitor.c
// Function: gt_pbs_results_delete
static void gt_pbs_results_delete(GtPBSResults *results)
{
    GtUword i;
    if (!results) return;
    if (results->hits != NULL)
    {
      for (i=0;i<gt_array_size(results->hits);i++)
      {
        GtPBSHit *hit = *(GtPBSHit**) gt_array_get(results->hits, i);
        gt_free(hit);
      }
      gt_array_delete(results->hits);
    }
    gt_free(results);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x306a96
jmp 0x306b31
movq 0x20(%rsp), %rax
cmpq $0x0, (%rax)
je 0x306b1b
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x306b0e
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x28c7c9(%rip), %rsi    # 0x5932bd
movl $0x162, %edx            # imm = 0x162
callq 0xe88c0
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x306aaa
movq 0x20(%rsp), %rax
movq (%rax), %rdi
callq 0x81f80
movq 0x20(%rsp), %rdi
leaq 0x28c796(%rip), %rsi    # 0x5932bd
movl $0x166, %edx            # imm = 0x166
callq 0xe88c0
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pbs_visitor.c
// Function: gt_dna_scorefunc_new
static GtScoreFunction* gt_dna_scorefunc_new(GtAlphabet *a, int match,
                                             int mismatch, int insertion,
                                             int deletion)
{
  GtScoreMatrix *sm = gt_score_matrix_new(a);
  GtScoreFunction *sf = gt_score_function_new(sm, insertion, deletion);
  unsigned int m,n;

  for (m=0;m<gt_alphabet_size(a);m++)
  {
    for (n=0;n<gt_alphabet_size(a);n++)
    {
      gt_score_matrix_set_score(sm, m, n, (n==m ? match : mismatch));
    }
  }
  /* make N-N a mismatch! */
  gt_score_matrix_set_score(sm, (unsigned int) gt_alphabet_encode(a, 'n'),
                            (unsigned int) gt_alphabet_encode(a, 'n'),
                            mismatch);
  return sf;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movl %esi, 0x4c(%rsp)
movl %edx, 0x48(%rsp)
movl %ecx, 0x44(%rsp)
movl %r8d, 0x40(%rsp)
movq 0x50(%rsp), %rdi
callq 0x10eff0
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
movl 0x44(%rsp), %esi
movl 0x40(%rsp), %edx
callq 0x10ed40
movq %rax, 0x30(%rsp)
movl $0x0, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
movl %eax, 0x24(%rsp)
movq 0x50(%rsp), %rdi
callq 0x7e920
movl %eax, %ecx
movl 0x24(%rsp), %eax
cmpl %ecx, %eax
jae 0x306c37
movl $0x0, 0x28(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0x20(%rsp)
movq 0x50(%rsp), %rdi
callq 0x7e920
movl %eax, %ecx
movl 0x20(%rsp), %eax
cmpl %ecx, %eax
jae 0x306c25
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
movl 0x2c(%rsp), %eax
movl %eax, 0x18(%rsp)
movl 0x28(%rsp), %eax
movl %eax, 0x1c(%rsp)
movl 0x28(%rsp), %eax
cmpl 0x2c(%rsp), %eax
jne 0x306bfa
movl 0x4c(%rsp), %eax
movl %eax, 0xc(%rsp)
jmp 0x306c02
movl 0x48(%rsp), %eax
movl %eax, 0xc(%rsp)
movl 0x1c(%rsp), %edx
movl 0x18(%rsp), %esi
movq 0x10(%rsp), %rdi
movl 0xc(%rsp), %ecx
callq 0x10f7a0
movl 0x28(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0x306bb0
jmp 0x306c27
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x306b88
movq 0x38(%rsp), %rax
movq %rax, (%rsp)
movq 0x50(%rsp), %rdi
movl $0x6e, %esi
callq 0x7f6f0
movzbl %al, %eax
movl %eax, 0x8(%rsp)
movq 0x50(%rsp), %rdi
movl $0x6e, %esi
callq 0x7f6f0
movq (%rsp), %rdi
movl 0x8(%rsp), %esi
movzbl %al, %edx
movl 0x48(%rsp), %ecx
callq 0x10f7a0
movq 0x30(%rsp), %rax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pbs_visitor.c
// Function: gt_ulongabs
static inline GtUword gt_ulongabs(GtUword nr1, GtUword nr2)
{
  if (nr1 == nr2) return 0UL;
  if (nr1 > nr2)
    return nr1 - nr2;
  else
    return nr2 - nr1;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpq -0x18(%rsp), %rax
jne 0x3070a1
movq $0x0, -0x8(%rsp)
jmp 0x3070cd
movq -0x10(%rsp), %rax
cmpq -0x18(%rsp), %rax
jbe 0x3070be
movq -0x10(%rsp), %rax
subq -0x18(%rsp), %rax
movq %rax, -0x8(%rsp)
jmp 0x3070cd
movq -0x18(%rsp), %rax
subq -0x10(%rsp), %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pbs_visitor.c
// Function: gt_pbs_hit_new
static GtPBSHit* gt_pbs_hit_new(GtUword alilen, GtStrand strand,
                                const char *tRNA, GtUword tstart,
                                GtUword start, GtUword end,
                                GtUword offset,
                                GtUword edist, double score,
                                GtPBSResults *r)
{
  GtPBSHit *hit = gt_malloc(sizeof (GtPBSHit));
  hit->alilen  = alilen;
  hit->strand  = strand;
  hit->trna    = tRNA;
  hit->tstart  = tstart;
  hit->start   = start;
  hit->end     = end;
  hit->offset  = offset;
  hit->edist   = edist;
  hit->score   = score;
  hit->res     = r;
  return hit;
}

// Assembly:
subq $0x48, %rsp
movq 0x60(%rsp), %rax
movq 0x58(%rsp), %rax
movq 0x50(%rsp), %rax
movq %rdi, 0x40(%rsp)
movl %esi, 0x3c(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movq %r9, 0x18(%rsp)
movsd %xmm0, 0x10(%rsp)
movl $0x50, %edi
leaq 0x28c19b(%rip), %rsi    # 0x5932bd
movl $0x5a, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movl 0x3c(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x30(%rax)
movq 0x30(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x28(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x50(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x58(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movsd 0x10(%rsp), %xmm0
movq 0x8(%rsp), %rax
movsd %xmm0, 0x38(%rax)
movq 0x60(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x8(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pbs_visitor.c
// Function: gt_pbs_score_func
static double gt_pbs_score_func(GtUword edist, GtUword offset,
                                GtUword alilen, GtUword trnalen,
                                GtUword trna_offset)
{
  double penalties;
  if (edist == 0 || offset == 0)
    penalties = 1.0;
  else
    penalties = (double) edist * (double) offset;
  return ((double) alilen *
             (double) ((trnalen - trna_offset)/(double) trnalen))
          /penalties;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq %rcx, -0x20(%rsp)
movq %r8, -0x28(%rsp)
cmpq $0x0, -0x8(%rsp)
je 0x3071f9
cmpq $0x0, -0x10(%rsp)
jne 0x307209
movsd 0x21003f(%rip), %xmm0   # 0x517240
movsd %xmm0, -0x30(%rsp)
jmp 0x307254
movq -0x8(%rsp), %xmm0
movaps 0x21171a(%rip), %xmm3   # 0x518930
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x21171e(%rip), %xmm2   # 0x518940
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq -0x10(%rsp), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x30(%rsp)
movq -0x18(%rsp), %xmm0
movaps 0x2116cf(%rip), %xmm4   # 0x518930
punpckldq %xmm4, %xmm0    # xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
movapd 0x2116d3(%rip), %xmm3   # 0x518940
subpd %xmm3, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq -0x20(%rsp), %rax
movq -0x28(%rsp), %rdx
movq %rax, %rcx
subq %rdx, %rcx
movq %rcx, %xmm1
punpckldq %xmm4, %xmm1    # xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]
subpd %xmm3, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
movq %rax, %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm3, %xmm2
movaps %xmm2, %xmm3
unpckhpd %xmm2, %xmm2            # xmm2 = xmm2[1,1]
addsd %xmm3, %xmm2
divsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
divsd -0x30(%rsp), %xmm0
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pbs_visitor.c
// Function: gt_pbs_hit_get_coords
static GtRange gt_pbs_hit_get_coords(GtLTRdigestPBSVisitor *lv,
                                     const GtPBSHit *h)
{
  GtRange rng;
  gt_assert(h && h->end >= h->start);
  rng.start = h->start;
  rng.end = h->end;
  switch (h->strand)
  {
    case GT_STRAND_FORWARD:
    default:
      rng.start = lv->leftLTR_3 + 1 - lv->radius
                    + rng.start;
      rng.end = rng.start + (h->end - h->start);
      break;
    case GT_STRAND_REVERSE:
      rng.end = lv->rightLTR_5 - 1 + lv->radius - rng.start;
      rng.start = rng.end - (h->end - h->start);
      break;
  }
  gt_assert(gt_range_length(&rng) == (h->end - h->start + 1));
  return rng;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x307369
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x3073a1
movq 0x334c30(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20ec99(%rip), %rsi    # 0x516013
leaq 0x28c06d(%rip), %rdx    # 0x5933ee
leaq 0x28c07e(%rip), %rcx    # 0x593406
leaq 0x28bf2e(%rip), %r8     # 0x5932bd
movl $0x73, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3073a3
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x8(%rsp), %rax
movl 0x30(%rax), %eax
movl %eax, 0x4(%rsp)
testl %eax, %eax
je 0x3073db
jmp 0x3073d0
movl 0x4(%rsp), %eax
subl $0x1, %eax
je 0x30741f
jmp 0x3073dd
jmp 0x3073dd
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rax
addq $0x1, %rax
movq 0x10(%rsp), %rcx
movl 0x48(%rcx), %ecx
subq %rcx, %rax
addq 0x18(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rsp), %rdx
subq (%rdx), %rcx
addq %rcx, %rax
movq %rax, 0x20(%rsp)
jmp 0x30745f
movq 0x10(%rsp), %rax
movq 0x30(%rax), %rax
subq $0x1, %rax
movq 0x10(%rsp), %rcx
movl 0x48(%rcx), %ecx
addq %rcx, %rax
subq 0x18(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rsp), %rdx
subq (%rdx), %rcx
subq %rcx, %rax
movq %rax, 0x18(%rsp)
jmp 0x307461
leaq 0x18(%rsp), %rdi
callq 0x107320
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rsp), %rdx
subq (%rdx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x3074bd
movq 0x334b14(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20eb7d(%rip), %rsi    # 0x516013
leaq 0x28bf7f(%rip), %rdx    # 0x59341c
leaq 0x28bf62(%rip), %rcx    # 0x593406
leaq 0x28be12(%rip), %r8     # 0x5932bd
movl $0x83, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3074bf
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rdx
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_pdom_visitor_free
void gt_ltrdigest_pdom_visitor_free(GtNodeVisitor *nv)
{
  GtLTRdigestPdomVisitor *lv;
  GtUword i;
  if (!nv) return;
  lv = gt_ltrdigest_pdom_visitor_cast(nv);
  for (i = 0UL; i < 3UL; i++) {
    gt_str_delete(lv->fwd[i]);
    gt_str_delete(lv->rev[i]);
  }
  gt_str_delete(lv->cmdline);
  gt_str_delete(lv->tag);
  gt_cstr_array_delete(lv->args);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x3076d6
jmp 0x307763
callq 0x307770
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq $0x0, (%rsp)
cmpq $0x3, (%rsp)
jae 0x307730
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
movq 0x30(%rax,%rcx,8), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
movq 0x48(%rax,%rcx,8), %rdi
callq 0x11f560
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x3076f5
movq 0x8(%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x88(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x98(%rax), %rdi
callq 0xa3950
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_checkpipe
static int gt_ltrdigest_checkpipe(int *fdpair, GtError *err)
{
  int had_err = 0;
  if (pipe(fdpair)) {
    gt_error_set(err, "could not create pipe, please check for number of "
                      "allowed file descriptors: %s", strerror(errno));
    had_err = -1;
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movq 0x20(%rsp), %rdi
callq 0x19930
cmpl $0x0, %eax
je 0x308559
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq 0x8(%rsp), %rdi
movq %rax, %rdx
leaq 0x28b1b6(%rip), %rsi    # 0x593700
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x14(%rsp) # imm = 0xFFFFFFFF
movl 0x14(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_hmmscan_send_thread
static void* gt_ltrdigest_hmmscan_send_thread(void *data) {
  GtUword i;
  GtLTRdigestHMMscanThreadData *d = (GtLTRdigestHMMscanThreadData*) data;
  for (i = 0UL; i < 3UL; i++) {
    char buf[5];
    GT_UNUSED ssize_t written;
    (void) sprintf(buf, ">"GT_WU"%c\n", i, '+');
    written = write(d->pc[1], buf, 4 * sizeof (char));
    written = write(d->pc[1], gt_str_get(d->lv->fwd[i]),
                   (size_t) gt_str_length(d->lv->fwd[i]) * sizeof (char));
    written = write(d->pc[1], "\n", 1 * sizeof (char));
    (void) sprintf(buf, ">"GT_WU"%c\n", i, '-');
    written = write(d->pc[1], buf, 4 * sizeof (char));
    written = write(d->pc[1], gt_str_get(d->lv->rev[i]),
                   (size_t) gt_str_length(d->lv->rev[i]) * sizeof (char));
  }
  (void) close(d->pc[0]);
  (void) close(d->pc[1]);
  (void) close(d->cp[1]);
  return NULL;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
cmpq $0x3, 0x38(%rsp)
jae 0x308730
leaq 0x2b(%rsp), %rdi
movq 0x38(%rsp), %rdx
leaq 0x28b1cf(%rip), %rsi    # 0x5937a8
movl $0x2b, %ecx
movb $0x0, %al
callq 0x19100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x4(%rax), %edi
leaq 0x2b(%rsp), %rsi
movl $0x4, %edx
callq 0x19230
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x4(%rax), %eax
movl %eax, 0x4(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x30(%rax,%rcx,8), %rdi
callq 0x11dee0
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x30(%rax,%rcx,8), %rdi
callq 0x11dfa0
movl 0x4(%rsp), %edi
movq 0x8(%rsp), %rsi
movq %rax, %rdx
shlq $0x0, %rdx
callq 0x19230
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x4(%rax), %edi
leaq 0x28abff(%rip), %rsi    # 0x593273
movl $0x1, %edx
callq 0x19230
movq %rax, 0x20(%rsp)
leaq 0x2b(%rsp), %rdi
movq 0x38(%rsp), %rdx
leaq 0x28b114(%rip), %rsi    # 0x5937a8
movl $0x2d, %ecx
movb $0x0, %al
callq 0x19100
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x4(%rax), %edi
leaq 0x2b(%rsp), %rsi
movl $0x4, %edx
callq 0x19230
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x4(%rax), %eax
movl %eax, 0x14(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x48(%rax,%rcx,8), %rdi
callq 0x11dee0
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x48(%rax,%rcx,8), %rdi
callq 0x11dfa0
movl 0x14(%rsp), %edi
movq 0x18(%rsp), %rsi
movq %rax, %rdx
shlq $0x0, %rdx
callq 0x19230
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x3085bc
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x19ec0
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x4(%rax), %edi
callq 0x19ec0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %edi
callq 0x19ec0
xorl %eax, %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_hmmscan_recv_thread
static void* gt_ltrdigest_hmmscan_recv_thread(void *data) {
  GtHMMERParseStatus *pstatus;
  int rstatus;
  FILE *instream;
  GtLTRdigestHMMscanThreadData *d = (GtLTRdigestHMMscanThreadData*) data;
  instream = fdopen(d->cp[0], "r");
  pstatus = gt_hmmer_parse_status_new();
  d->had_err = gt_ltrdigest_pdom_visitor_parse_output(d->lv, pstatus,
                                                      instream, d->err);
  (void) fclose(instream);
  wait(&rstatus);
  if (WEXITSTATUS(rstatus) != 0) {
    d->had_err = -1;
    gt_error_set(d->err, "HMMER child process terminated with error");
  }
  if (!d->had_err)
    d->had_err = gt_ltrdigest_pdom_visitor_process_hits(d->lv, pstatus,
                                                        d->err);
  gt_hmmer_parse_status_delete(pstatus);
  return NULL;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %edi
leaq 0x223847(%rip), %rsi    # 0x52bfda
callq 0x197b0
movq %rax, 0x8(%rsp)
callq 0x308be0
movq %rax, 0x18(%rsp)
movq (%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
movq (%rsp), %rax
movq 0x20(%rax), %rcx
callq 0x308c40
movl %eax, %ecx
movq (%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0x8(%rsp), %rdi
callq 0x19780
leaq 0x14(%rsp), %rdi
callq 0x198c0
movl 0x14(%rsp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
cmpl $0x0, %eax
je 0x308815
movq (%rsp), %rax
movl $0xffffffff, 0x10(%rax) # imm = 0xFFFFFFFF
movq (%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x28afa2(%rip), %rsi    # 0x5937b0
movb $0x0, %al
callq 0xd88c0
movq (%rsp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x308842
movq (%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x18(%rsp), %rsi
movq (%rsp), %rax
movq 0x20(%rax), %rdx
callq 0x308d60
movl %eax, %ecx
movq (%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0x308e60
xorl %eax, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_hmmer_parse_status_new
static GtHMMERParseStatus* gt_hmmer_parse_status_new(void)
{
  GtHMMERParseStatus *s;
  s = gt_calloc((size_t) 1, sizeof (GtHMMERParseStatus));
  s->cur_model = gt_str_new();
  s->models = gt_hashmap_new(GT_HASH_STRING, gt_free_func,
                             (GtFree) gt_hmmer_model_hit_delete);
  return s;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x18, %esi
leaq 0x28a907(%rip), %rdx    # 0x5934f9
movl $0x70, %ecx
callq 0xe83c0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
movl $0x1, %edi
leaq -0x2201ec(%rip), %rsi   # 0xe8a30
leaq 0x27d(%rip), %rdx       # 0x308ea0
callq 0xe0c40
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_pdom_visitor_parse_output
static int gt_ltrdigest_pdom_visitor_parse_output(GtLTRdigestPdomVisitor *lv,
                                                  GtHMMERParseStatus *status,
                                                  FILE *instream, GtError *err)
{
  int had_err = 0;
  bool end = false;
  gt_assert(lv && instream && status);
  gt_error_check(err);
  while (!had_err && !end) {
    had_err = gt_ltrdigest_pdom_visitor_parse_query(lv, status, &end,
                                                    instream, err);
  }
  /* gt_hmmer_parse_status_show(status); */
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movb $0x0, 0x3(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x308c7d
cmpq $0x0, 0x10(%rsp)
je 0x308c7d
cmpq $0x0, 0x18(%rsp)
jne 0x308cb5
movq 0x33331c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20d385(%rip), %rsi    # 0x516013
leaq 0x28ab45(%rip), %rdx    # 0x5937da
leaq 0x28ab57(%rip), %rcx    # 0x5937f3
leaq 0x28a856(%rip), %r8     # 0x5934f9
movl $0x1f1, %r9d            # imm = 0x1F1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x308cb7
jmp 0x308cb9
cmpq $0x0, 0x8(%rsp)
je 0x308d09
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x308cd1
jmp 0x308d09
movq 0x3332c8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20d331(%rip), %rsi    # 0x516013
leaq 0x20d4d6(%rip), %rdx    # 0x5161bf
leaq 0x28ab03(%rip), %rcx    # 0x5937f3
leaq 0x28a802(%rip), %r8     # 0x5934f9
movl $0x1f2, %r9d            # imm = 0x1F2
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x308d0b
jmp 0x308d0d
xorl %eax, %eax
cmpl $0x0, 0x4(%rsp)
movb %al, 0x2(%rsp)
jne 0x308d24
movb 0x3(%rsp), %al
xorb $-0x1, %al
movb %al, 0x2(%rsp)
movb 0x2(%rsp), %al
testb $0x1, %al
jne 0x308d2e
jmp 0x308d52
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r8
leaq 0x3(%rsp), %rdx
callq 0x309030
movl %eax, 0x4(%rsp)
jmp 0x308d0d
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_pdom_visitor_process_hits
static int gt_ltrdigest_pdom_visitor_process_hits(GtLTRdigestPdomVisitor *lv,
                                                  GtHMMERParseStatus *status,
                                                  GtError *err)
{
  int had_err = 0;
  gt_assert(lv && status && status->models);
  gt_error_check(err);

  had_err = gt_hashmap_foreach(status->models,
                               gt_ltrdigest_pdom_visitor_process_hit,
                               lv, err);

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x308d97
cmpq $0x0, 0x18(%rsp)
je 0x308d97
movq 0x18(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x308dcf
movq 0x333202(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20d26b(%rip), %rsi    # 0x516013
leaq 0x28adf0(%rip), %rdx    # 0x593b9f
leaq 0x28ae08(%rip), %rcx    # 0x593bbe
leaq 0x28a73c(%rip), %r8     # 0x5934f9
movl $0x2b5, %r9d            # imm = 0x2B5
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x308dd1
jmp 0x308dd3
cmpq $0x0, 0x10(%rsp)
je 0x308e23
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x308deb
jmp 0x308e23
movq 0x3331ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20d217(%rip), %rsi    # 0x516013
leaq 0x20d3bc(%rip), %rdx    # 0x5161bf
leaq 0x28adb4(%rip), %rcx    # 0x593bbe
leaq 0x28a6e8(%rip), %r8     # 0x5934f9
movl $0x2b6, %r9d            # imm = 0x2B6
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x308e25
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x20(%rsp), %rdx
movq 0x10(%rsp), %rcx
leaq 0x1941(%rip), %rsi      # 0x30a780
callq 0xe11a0
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_hmmer_parse_status_delete
static void gt_hmmer_parse_status_delete(GtHMMERParseStatus *s)
{
  if (!s) return;
  gt_str_delete(s->cur_model);
  gt_hashmap_delete(s->models);
  gt_free(s);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x308e6e
jmp 0x308e9d
movq (%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11f560
movq (%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xe1770
movq (%rsp), %rdi
leaq 0x28a666(%rip), %rsi    # 0x5934f9
movl $0xed, %edx
callq 0xe88c0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_hmmer_model_hit_delete
static void gt_hmmer_model_hit_delete(GtHMMERModelHit *mh)
{
  GtUword i;
  if (!mh) return;
  for (i = 0; i < gt_array_size(mh->fwd_hits); i++) {
    GtHMMERSingleHit *h = *(GtHMMERSingleHit**)  gt_array_get(mh->fwd_hits, i);
    gt_str_delete(h->alignment);
    gt_str_delete(h->aastring);
    gt_array_delete(h->chains);
    gt_free(h);
  }
  gt_array_delete(mh->fwd_hits);
  for (i = 0; i < gt_array_size(mh->rev_hits); i++) {
    GtHMMERSingleHit *h = *(GtHMMERSingleHit**)  gt_array_get(mh->rev_hits, i);
    gt_str_delete(h->alignment);
    gt_str_delete(h->aastring);
    gt_array_delete(h->chains);
    gt_free(h);
  }
  gt_array_delete(mh->rev_hits);
  gt_free(mh);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x308eb6
jmp 0x30901d
movq $0x0, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
jae 0x308f50
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0x11f560
movq 0x20(%rsp), %rax
movq 0x58(%rax), %rdi
callq 0x11f560
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x81f80
movq 0x20(%rsp), %rdi
leaq 0x28a5c6(%rip), %rsi    # 0x5934f9
movl $0xd8, %edx
callq 0xe88c0
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
jmp 0x308ebf
movq 0x30(%rsp), %rax
movq (%rax), %rdi
callq 0x81f80
movq $0x0, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x308ff9
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0x11f560
movq 0x18(%rsp), %rax
movq 0x58(%rax), %rdi
callq 0x11f560
movq 0x18(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x81f80
movq 0x18(%rsp), %rdi
leaq 0x28a51d(%rip), %rsi    # 0x5934f9
movl $0xe0, %edx
callq 0xe88c0
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
jmp 0x308f66
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x81f80
movq 0x30(%rsp), %rdi
leaq 0x28a4e6(%rip), %rsi    # 0x5934f9
movl $0xe3, %edx
callq 0xe88c0
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: pdom_parser_get_next_line
static inline int pdom_parser_get_next_line(char *buf, FILE *instream,
                                            GtError *err) {
  int had_err = 0;
  char *bufp = buf;
  if (fgets(buf, GT_HMMER_BUF_LEN, instream) == NULL) {
    if (feof(instream)) {
      memset(buf, (int) '\0', (size_t) GT_HMMER_BUF_LEN);
      return 0;
    } else if (ferror(instream)) {
      gt_error_set(err, "error reading from input stream");
      return -1;
    }
  }
  while (!had_err && bufp && (buf[0] == '#' || buf[0] == '\n'))
    bufp = fgets(buf, GT_HMMER_BUF_LEN, instream);
  (void) gt_cstr_rtrim(buf, '\n');
  (void) gt_cstr_rtrim(buf, ' ');
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl $0xfa00, %esi           # imm = 0xFA00
callq 0x19b60
cmpq $0x0, %rax
jne 0x30932f
movq 0x20(%rsp), %rdi
callq 0x19b10
cmpl $0x0, %eax
je 0x3092fc
movq 0x28(%rsp), %rdi
xorl %esi, %esi
movl $0xfa00, %edx           # imm = 0xFA00
callq 0x19360
movl $0x0, 0x34(%rsp)
jmp 0x3093c4
movq 0x20(%rsp), %rdi
callq 0x19e10
cmpl $0x0, %eax
je 0x30932b
movq 0x18(%rsp), %rdi
leaq 0x28a530(%rip), %rsi    # 0x593847
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x3093c4
jmp 0x30932d
jmp 0x30932f
jmp 0x309331
xorl %eax, %eax
cmpl $0x0, 0x14(%rsp)
movb %al, 0x7(%rsp)
jne 0x309379
xorl %eax, %eax
cmpq $0x0, 0x8(%rsp)
movb %al, 0x7(%rsp)
je 0x309379
movq 0x28(%rsp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x23, %ecx
movb %al, 0x6(%rsp)
je 0x309371
movq 0x28(%rsp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
sete %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x309383
jmp 0x30939e
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl $0xfa00, %esi           # imm = 0xFA00
callq 0x19b60
movq %rax, 0x8(%rsp)
jmp 0x309331
movq 0x28(%rsp), %rdi
movl $0xa, %esi
callq 0xa30d0
movq 0x28(%rsp), %rdi
movl $0x20, %esi
callq 0xa30d0
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_pdom_visitor_parse_scores
static int gt_ltrdigest_pdom_visitor_parse_scores(GT_UNUSED
                                                  GtLTRdigestPdomVisitor *lv,
                                                  char *buf, FILE *instream,
                                                  GtError *err)
{
  int had_err = 0;
  gt_assert(lv && instream);
  gt_error_check(err);
  had_err = pdom_parser_get_next_line(buf, instream, err);
  gt_assert(had_err || buf != NULL);
  if (!had_err && strncmp("Scores", buf, (size_t) 6) != 0) {
    gt_error_set(err, "expected 'Scores' at beginning of new scores "
                      "section, '%s' read instead", buf);
    had_err = -1;
  }
  while (!had_err && strncmp("Domain annotation", buf, (size_t) 17))
    had_err = pdom_parser_get_next_line(buf, instream, err);
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x309400
cmpq $0x0, 0x10(%rsp)
jne 0x309438
movq 0x332b99(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20cc02(%rip), %rsi    # 0x516013
leaq 0x28a44f(%rip), %rdx    # 0x593867
leaq 0x28a457(%rip), %rcx    # 0x593876
leaq 0x28a0d3(%rip), %r8     # 0x5934f9
movl $0x120, %r9d            # imm = 0x120
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30943a
jmp 0x30943c
cmpq $0x0, 0x8(%rsp)
je 0x30948c
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x309454
jmp 0x30948c
movq 0x332b45(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20cbae(%rip), %rsi    # 0x516013
leaq 0x20cd53(%rip), %rdx    # 0x5161bf
leaq 0x28a403(%rip), %rcx    # 0x593876
leaq 0x28a07f(%rip), %r8     # 0x5934f9
movl $0x121, %r9d            # imm = 0x121
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30948e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x309290
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x3094ed
cmpq $0x0, 0x18(%rsp)
jne 0x3094ed
movq 0x332ae4(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20cb4d(%rip), %rsi    # 0x516013
leaq 0x28a3d0(%rip), %rdx    # 0x59389d
leaq 0x28a3a2(%rip), %rcx    # 0x593876
leaq 0x28a01e(%rip), %r8     # 0x5934f9
movl $0x123, %r9d            # imm = 0x123
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3094ef
cmpl $0x0, 0x4(%rsp)
jne 0x309531
movq 0x18(%rsp), %rsi
leaq 0x28a3b2(%rip), %rdi    # 0x5938b4
movl $0x6, %edx
callq 0x192f0
cmpl $0x0, %eax
je 0x309531
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rdx
leaq 0x28a399(%rip), %rsi    # 0x5938bb
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x4(%rsp)  # imm = 0xFFFFFFFF
jmp 0x309533
xorl %eax, %eax
cmpl $0x0, 0x4(%rsp)
movb %al, 0x3(%rsp)
jne 0x309560
movq 0x18(%rsp), %rsi
leaq 0x28a3b7(%rip), %rdi    # 0x593903
movl $0x11, %edx
callq 0x192f0
cmpl $0x0, %eax
setne %al
movb %al, 0x3(%rsp)
movb 0x3(%rsp), %al
testb $0x1, %al
jne 0x30956a
jmp 0x309584
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x309290
movl %eax, 0x4(%rsp)
jmp 0x309533
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/ltr/ltrdigest_pdom_visitor.c
// Function: gt_ltrdigest_pdom_visitor_parse_statistics
static int gt_ltrdigest_pdom_visitor_parse_statistics(
                                           GT_UNUSED GtLTRdigestPdomVisitor *lv,
                                           char *buf, FILE *instream,
                                           GtError *err)
{
  int had_err = 0;
  gt_assert(lv && instream);
  gt_error_check(err);
  while (!had_err && (buf[0] != '/' && buf[1] != '/'))
    had_err = pdom_parser_get_next_line(buf, instream, err);
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x309af0
cmpq $0x0, 0x10(%rsp)
jne 0x309b28
movq 0x3324a9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20c512(%rip), %rsi    # 0x516013
leaq 0x289d5f(%rip), %rdx    # 0x593867
leaq 0x28a065(%rip), %rcx    # 0x593b74
leaq 0x2899e3(%rip), %r8     # 0x5934f9
movl $0x111, %r9d            # imm = 0x111
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x309b2a
jmp 0x309b2c
cmpq $0x0, 0x8(%rsp)
je 0x309b7c
movq 0x8(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x309b44
jmp 0x309b7c
movq 0x332455(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x20c4be(%rip), %rsi    # 0x516013
leaq 0x20c663(%rip), %rdx    # 0x5161bf
leaq 0x28a011(%rip), %rcx    # 0x593b74
leaq 0x28998f(%rip), %r8     # 0x5934f9
movl $0x112, %r9d            # imm = 0x112
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x309b7e
jmp 0x309b80
xorl %eax, %eax
cmpl $0x0, 0x4(%rsp)
movb %al, 0x3(%rsp)
jne 0x309bbb
movq 0x18(%rsp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x2f, %ecx
movb %al, 0x2(%rsp)
je 0x309bb3
movq 0x18(%rsp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x2f, %eax
setne %al
movb %al, 0x2(%rsp)
movb 0x2(%rsp), %al
movb %al, 0x3(%rsp)
movb 0x3(%rsp), %al
testb $0x1, %al
jne 0x309bc5
jmp 0x309bdf
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x309290
movl %eax, 0x4(%rsp)
jmp 0x309b80
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)