LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign.c
// Function: gt_diagonalbandalign_compute_generic
void gt_diagonalbandalign_compute_generic(GtLinspaceManagement *spacemanager,
                                          const GtScoreHandler *scorehandler,
                                          GtAlignment *align,
                                          const GtUchar *useq,
                                          GtUword ustart, GtUword ulen,
                                          const GtUchar *vseq,
                                          GtUword vstart, GtUword vlen,
                                          GtWord left_dist,
                                          GtWord right_dist)
{

  gt_assert(useq && vseq && align && spacemanager && scorehandler);

  /* set new bounds, if left_dist or right_dist is out of sequence */
  left_dist = GT_MAX(-(GtWord) ulen, left_dist);
  right_dist = GT_MIN((GtWord) vlen, right_dist);

  gt_alignment_set_seqs(align,useq+ustart, ulen, vseq+vstart, vlen);
  gt_calc_diagonalbandalign(spacemanager, scorehandler, align,
                            useq, ustart, ulen, vseq, vstart, vlen,
                            left_dist, right_dist);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq 0xa0(%rsp), %rax
movq 0x98(%rsp), %rax
movq 0x90(%rsp), %rax
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
cmpq $0x0, 0x48(%rsp)
je 0x14d738
cmpq $0x0, 0x80(%rsp)
je 0x14d738
cmpq $0x0, 0x50(%rsp)
je 0x14d738
cmpq $0x0, 0x60(%rsp)
je 0x14d738
cmpq $0x0, 0x58(%rsp)
jne 0x14d770
movq 0x4ee861(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3c88ca(%rip), %rsi    # 0x516013
leaq 0x3ff96d(%rip), %rdx    # 0x54d0bd
leaq 0x3ff99c(%rip), %rcx    # 0x54d0f3
leaq 0x3ff93e(%rip), %r8     # 0x54d09c
movl $0x3a9, %r9d            # imm = 0x3A9
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x14d772
xorl %eax, %eax
subq 0x38(%rsp), %rax
cmpq 0x98(%rsp), %rax
jle 0x14d791
xorl %eax, %eax
subq 0x38(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x14d79e
movq 0x98(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x90(%rsp), %rax
cmpq 0xa0(%rsp), %rax
jge 0x14d7cc
movq 0x90(%rsp), %rax
movq %rax, 0x28(%rsp)
jmp 0x14d7d9
movq 0xa0(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rsi
addq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x80(%rsp), %rcx
addq 0x88(%rsp), %rcx
movq 0x90(%rsp), %r8
callq 0x129f60
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x48(%rsp), %rcx
movq 0x40(%rsp), %r8
movq 0x38(%rsp), %r9
movq 0x80(%rsp), %r14
movq 0x88(%rsp), %rbx
movq 0x90(%rsp), %r11
movq 0x98(%rsp), %r10
movq 0xa0(%rsp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x14d890
addq $0x68, %rsp
popq %rbx
popq %r14
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign.c
// Function: gt_diagonalbandalign_compute
void gt_diagonalbandalign_compute(GtLinspaceManagement *spacemanager,
                                  GtAlignment *align,
                                  const GtUchar *useq,
                                  GtUword ustart, GtUword ulen,
                                  const GtUchar *vseq,
                                  GtUword vstart, GtUword vlen,
                                  GtWord left_dist,
                                  GtWord right_dist,
                                  GtUword matchcost,
                                  GtUword mismatchcost,
                                  GtUword gapcost)
{
  GtScoreHandler *scorehandler;
  gt_assert(spacemanager && align);

  scorehandler = gt_scorehandler_new(matchcost, mismatchcost, 0, gapcost);

  gt_diagonalbandalign_compute_generic(spacemanager, scorehandler, align,
                                       useq, ustart, ulen,
                                       vseq, vstart, vlen,
                                       left_dist, right_dist);
  gt_scorehandler_delete(scorehandler);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq 0xb0(%rsp), %rax
movq 0xa8(%rsp), %rax
movq 0xa0(%rsp), %rax
movq 0x98(%rsp), %rax
movq 0x90(%rsp), %rax
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0x14dd8d
cmpq $0x0, 0x58(%rsp)
jne 0x14ddc5
movq 0x4ee20c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3c8275(%rip), %rsi    # 0x516013
leaq 0x3ff373(%rip), %rdx    # 0x54d118
leaq 0x3ff382(%rip), %rcx    # 0x54d12e
leaq 0x3ff2e9(%rip), %r8     # 0x54d09c
movl $0x3c2, %r9d            # imm = 0x3C2
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x14ddc7
movq 0xa0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x1d0fb0
movq %rax, 0x30(%rsp)
movq 0x60(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x40(%rsp), %r9
movq 0x38(%rsp), %r14
movq 0x80(%rsp), %rbx
movq 0x88(%rsp), %r11
movq 0x90(%rsp), %r10
movq 0x98(%rsp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x14d6c0
movq 0x30(%rsp), %rdi
callq 0x1d1150
addq $0x68, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign.c
// Function: set_linear_DiagentryRtabentry
static inline void set_linear_DiagentryRtabentry(LinearAlignEdge edge,
                                              GtWord diag, GtUword colindex,
                                              GtUword rowindex,
                                              GtUword offset,
                                              GtDiagAlignentry *Diagcolumnentry,
                                              GtUword *Rtabcolumnentry,
                                              GtUword Rtabentry_from)
{
    if (diag == (GtWord)colindex - (GtWord)rowindex)
    {
      Diagcolumnentry->last_type = edge;
      Diagcolumnentry->lastcpoint = Rtabentry_from;
      Diagcolumnentry->currentrowindex = rowindex + offset;
      *Rtabcolumnentry = colindex;
    }
    else
    {
      *Rtabcolumnentry = Rtabentry_from;
    }
}

// Assembly:
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rax
movl %edi, -0x4(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movq %rcx, -0x20(%rsp)
movq %r8, -0x28(%rsp)
movq %r9, -0x30(%rsp)
movq -0x10(%rsp), %rax
movq -0x18(%rsp), %rcx
subq -0x20(%rsp), %rcx
cmpq %rcx, %rax
jne 0x151096
movl -0x4(%rsp), %ecx
movq -0x30(%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0x10(%rsp), %rcx
movq -0x30(%rsp), %rax
movq %rcx, (%rax)
movq -0x20(%rsp), %rcx
addq -0x28(%rsp), %rcx
movq -0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
jmp 0x1510a3
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign_affinegapcost.c
// Function: gt_diagonalbandalign_affinegapcost_in_square_space
GtWord gt_diagonalbandalign_affinegapcost_in_square_space(
                                                    GtLinspaceManagement *space,
                                                    GtAlignment *align,
                                                    const GtUchar *useq,
                                                    GtUword ustart,
                                                    GtUword ulen,
                                                    const GtUchar *vseq,
                                                    GtUword vstart,
                                                    GtUword vlen,
                                                    GtWord left_dist,
                                                    GtWord right_dist,
                                                    GtUword matchcost,
                                                    GtUword mismatchcost,
                                                    GtUword gap_opening,
                                                    GtUword gap_extension)
{
  GtWord distance;
  GtScoreHandler *scorehandler = gt_scorehandler_new(matchcost,mismatchcost,
                                                    gap_opening, gap_extension);

  distance = gt_diagonalbandalign_affinegapcost_in_square_space_generic(space,
                                     scorehandler, align, useq, ustart, ulen,
                                     vseq, vstart, vlen, left_dist, right_dist);
  gt_scorehandler_delete(scorehandler);

  return distance;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq 0xb8(%rsp), %rax
movq 0xb0(%rsp), %rax
movq 0xa8(%rsp), %rax
movq 0xa0(%rsp), %rax
movq 0x98(%rsp), %rax
movq 0x90(%rsp), %rax
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
movq 0xa0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0xb8(%rsp), %rcx
callq 0x1d0fb0
movq %rax, 0x28(%rsp)
movq 0x60(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x40(%rsp), %r9
movq 0x38(%rsp), %r14
movq 0x80(%rsp), %rbx
movq 0x88(%rsp), %r11
movq 0x90(%rsp), %r10
movq 0x98(%rsp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x1510b0
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rdi
callq 0x1d1150
movq 0x30(%rsp), %rax
addq $0x68, %rsp
popq %rbx
popq %r14
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign_affinegapcost.c
// Function: gt_diagonalbandalign_affinegapcost_compute
void gt_diagonalbandalign_affinegapcost_compute(GtLinspaceManagement
                                                *spacemanager,
                                                GtAlignment *align,
                                                const GtUchar *useq,
                                                GtUword ustart, GtUword ulen,
                                                const GtUchar *vseq,
                                                GtUword vstart, GtUword vlen,
                                                GtWord left_dist,
                                                GtWord right_dist,
                                                GtUword matchcost,
                                                GtUword mismatchcost,
                                                GtUword gap_opening,
                                                GtUword gap_extension)
{
  GtScoreHandler *scorehandler = gt_scorehandler_new(matchcost,
                                                     mismatchcost,
                                                     gap_opening,
                                                     gap_extension);

  gt_diagonalbandalign_affinegapcost_compute_generic(spacemanager, scorehandler,
                                                     align, useq, ustart, ulen,
                                                     vseq, vstart, vlen,
                                                     left_dist, right_dist);

  gt_scorehandler_delete(scorehandler);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq 0xb8(%rsp), %rax
movq 0xb0(%rsp), %rax
movq 0xa8(%rsp), %rax
movq 0xa0(%rsp), %rax
movq 0x98(%rsp), %rax
movq 0x90(%rsp), %rax
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rax
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movq %r9, 0x38(%rsp)
movq 0xa0(%rsp), %rdi
movq 0xa8(%rsp), %rsi
movq 0xb0(%rsp), %rdx
movq 0xb8(%rsp), %rcx
callq 0x1d0fb0
movq %rax, 0x30(%rsp)
movq 0x60(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x50(%rsp), %rcx
movq 0x48(%rsp), %r8
movq 0x40(%rsp), %r9
movq 0x38(%rsp), %r14
movq 0x80(%rsp), %rbx
movq 0x88(%rsp), %r11
movq 0x90(%rsp), %r10
movq 0x98(%rsp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x153100
movq 0x30(%rsp), %rdi
callq 0x1d1150
addq $0x68, %rsp
popq %rbx
popq %r14
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign_affinegapcost.c
// Function: set_invalid_Diagentry
static void inline  set_invalid_Diagentry(GtDiagAlignentry *node)
{
  gt_assert(node != NULL);
  node->currentrowindex = GT_UWORD_MAX;
  node->last_type = Affine_X;
  node->lastcpoint = GT_UWORD_MAX;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x159664
movq 0x4e296d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc9d6(%rip), %rsi    # 0x516013
leaq 0x3fd6f4(%rip), %rdx    # 0x556d38
leaq 0x3f40db(%rip), %rcx    # 0x54d726
leaq 0x3f3d4a(%rip), %r8     # 0x54d39c
movl $0x24d, %r9d            # imm = 0x24D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x159666
movq (%rsp), %rax
movq $-0x1, 0x8(%rax)
movq (%rsp), %rax
movl $0x3, 0x10(%rax)
movq (%rsp), %rax
movq $-0x1, (%rax)
popq %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign_affinegapcost.c
// Function: set_valid_Diagentry
static void inline set_valid_Diagentry(GtDiagAlignentry *node_to,
                                       const GtAffineAlignRtabentry *entry_from,
                                       GtWord minvalue, GtWord r_dist,
                                       GtWord i_dist, GtWord d_dist)
{
  gt_assert(node_to != NULL && entry_from != NULL);
  if (minvalue == r_dist)
  {
    node_to->last_type = entry_from->val_R.edge;
    node_to->lastcpoint = entry_from->val_R.idx;
  }
  else if (minvalue == i_dist)
  {
    node_to->last_type = entry_from->val_I.edge;
    node_to->lastcpoint = entry_from->val_I.idx;
  }
  else if (minvalue == d_dist)
  {
    node_to->last_type = entry_from->val_D.edge;
    node_to->lastcpoint = entry_from->val_D.idx;
  }

}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1596c2
cmpq $0x0, 0x28(%rsp)
jne 0x1596fa
movq 0x4e28d7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc940(%rip), %rsi    # 0x516013
leaq 0x3f4062(%rip), %rdx    # 0x54d73c
leaq 0x3f4081(%rip), %rcx    # 0x54d762
leaq 0x3f3cb4(%rip), %r8     # 0x54d39c
movl $0x258, %r9d            # imm = 0x258
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1596fc
movq 0x20(%rsp), %rax
cmpq 0x18(%rsp), %rax
jne 0x15972a
movq 0x28(%rsp), %rax
movl 0x8(%rax), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x15978a
movq 0x20(%rsp), %rax
cmpq 0x10(%rsp), %rax
jne 0x159759
movq 0x28(%rsp), %rax
movl 0x28(%rax), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x159788
movq 0x20(%rsp), %rax
cmpq 0x8(%rsp), %rax
jne 0x159786
movq 0x28(%rsp), %rax
movl 0x18(%rax), %ecx
movq 0x30(%rsp), %rax
movl %ecx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
jmp 0x159788
jmp 0x15978a
addq $0x38, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/diagonalbandalign_affinegapcost.c
// Function: set_valid_Rnode
static void inline set_valid_Rnode(GtAffineAlignRnode *node_to,
                                   GtAffineAlignRtabentry *entry_from,
                                   GtWord minvalue, GtWord r_dist,
                                   GtWord i_dist, GtWord d_dist)
{
  gt_assert(node_to != NULL && entry_from != NULL);
  if (minvalue == r_dist)
    *node_to = entry_from->val_R;
  else if (minvalue == i_dist)
     *node_to = entry_from->val_I;
  else if (minvalue == d_dist)
     *node_to = entry_from->val_D;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x159822
cmpq $0x0, 0x28(%rsp)
jne 0x15985a
movq 0x4e2777(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc7e0(%rip), %rsi    # 0x516013
leaq 0x3f3f02(%rip), %rdx    # 0x54d73c
leaq 0x3f3f47(%rip), %rcx    # 0x54d788
leaq 0x3f3b54(%rip), %r8     # 0x54d39c
movl $0x277, %r9d            # imm = 0x277
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15985c
movq 0x20(%rsp), %rax
cmpq 0x18(%rsp), %rax
jne 0x159882
movq 0x30(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x1598d2
movq 0x20(%rsp), %rax
cmpq 0x10(%rsp), %rax
jne 0x1598a9
movq 0x30(%rsp), %rax
movq 0x28(%rsp), %rcx
movq 0x20(%rcx), %rdx
movq %rdx, (%rax)
movq 0x28(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x1598d0
movq 0x20(%rsp), %rax
cmpq 0x8(%rsp), %rax
jne 0x1598ce
movq 0x30(%rsp), %rax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx), %rdx
movq %rdx, (%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x1598d0
jmp 0x1598d2
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dot_visitor.c
// Function: dv_feature_node
static int dv_feature_node(GtNodeVisitor *nv, GtFeatureNode *fn,
                            GtError *err)
{
  GT_UNUSED GtDotVisitor *dv;
  int had_err = 0;
  GtUword pid;
  gt_error_check(err);
  dv = dv_cast(nv);

  if (!(pid = (GtUword) gt_hashmap_get(dv->ids, fn))) {
    pid = dv->idctr++;
    printf("subgraph "GT_WU" {\n", pid);
    gt_hashmap_add(dv->ids, fn, (void*) pid);
  }
  had_err = gt_feature_node_traverse_children(fn, dv,
                                              dv_output_edge,
                                              true, err);
  printf("}\n");
  gt_assert(!had_err);

  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movl $0x0, 0x14(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x159a1b
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1599e3
jmp 0x159a1b
movq 0x4e25b6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc61f(%rip), %rsi    # 0x516013
leaq 0x3bc7c4(%rip), %rdx    # 0x5161bf
leaq 0x3f3dfe(%rip), %rcx    # 0x54d800
leaq 0x3f3ddc(%rip), %r8     # 0x54d7e5
movl $0x54, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x159a1d
callq 0x1598e0
movq %rax, %rdi
movq 0x30(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x28(%rsp), %rsi
callq 0xe0f20
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
jne 0x159a96
movq 0x18(%rsp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rsi
leaq 0x3f3d99(%rip), %rdi    # 0x54d810
movb $0x0, %al
callq 0x19070
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x28(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0xe0fc0
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %r8
leaq 0x104(%rip), %rdx       # 0x159bb0
movl $0x1, %ecx
callq 0x16e2f0
movl %eax, 0x14(%rsp)
leaq 0x42b1ef(%rip), %rdi    # 0x584cb0
movb $0x0, %al
callq 0x19070
cmpl $0x0, 0x14(%rsp)
je 0x159b07
movq 0x4e24ca(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc533(%rip), %rsi    # 0x516013
leaq 0x3f3120(%rip), %rdx    # 0x54cc07
leaq 0x3f3d12(%rip), %rcx    # 0x54d800
leaq 0x3f3cf0(%rip), %r8     # 0x54d7e5
movl $0x60, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x159b09
movl 0x14(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dot_visitor.c
// Function: gt_dot_visitor_new
GtNodeVisitor* gt_dot_visitor_new()
{
  GtNodeVisitor *nv = gt_node_visitor_create(gt_dot_visitor_class());
  GtDotVisitor *dv = dv_cast(nv);

  dv->ids = gt_hashmap_new(GT_HASH_DIRECT, NULL, NULL);
  dv->idctr = 1;
  printf("\ndigraph nodes {\n");

  return nv;
}

// Assembly:
subq $0x18, %rsp
callq 0x1598e0
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x10(%rsp)
callq 0x1598e0
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x18(%rax)
leaq 0x3f3c2d(%rip), %rdi    # 0x54d7c8
movb $0x0, %al
callq 0x19070
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dot_visitor.c
// Function: dv_output_edge
static int dv_output_edge(GtFeatureNode *fn, void *data,
                          GT_UNUSED GtError *err)
{
  GtFeatureNodeIterator *fni;
  GtFeatureNode *curnode = NULL;
  GtUword pid, cid;
  int had_err = 0;
  GtDotVisitor *dv = (GtDotVisitor*) data;

  if (!(pid = (GtUword) gt_hashmap_get(dv->ids, fn))) {
    pid = dv->idctr++;
    gt_hashmap_add(dv->ids, fn, (void*) pid);
  }
  printf(""GT_WU" [shape=record, label=\"{ "GT_WU" | %s | %p }\"]\n",
             pid, pid, gt_feature_node_get_type(fn), fn);

  fni = gt_feature_node_iterator_new_direct(fn);
  while ((curnode = gt_feature_node_iterator_next(fni))) {
    if (!(cid = (GtUword) gt_hashmap_get(dv->ids, curnode))) {
      cid = dv->idctr++;
      gt_hashmap_add(dv->ids, curnode, (void*) cid);
    }
    printf(""GT_WU" [shape=record, label=\"{ "GT_WU" | %s | %p }\"]\n",
             cid, cid, gt_feature_node_get_type(curnode), curnode);
    printf(""GT_WU" -> "GT_WU"\n", pid, cid);
  }
  gt_feature_node_iterator_delete(fni);

  return had_err;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq $0x0, 0x40(%rsp)
movl $0x0, 0x2c(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x60(%rsp), %rsi
callq 0xe0f20
movq %rax, 0x38(%rsp)
cmpq $0x0, %rax
jne 0x159c2d
movq 0x20(%rsp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x60(%rsp), %rsi
movq 0x38(%rsp), %rdx
callq 0xe0fc0
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rdi
callq 0x16d430
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rax, %rcx
movq 0x60(%rsp), %r8
leaq 0x3f3bbc(%rip), %rdi    # 0x54d820
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rdi
callq 0x170ce0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
callq 0x170e30
movq %rax, 0x40(%rsp)
cmpq $0x0, %rax
je 0x159d3b
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x40(%rsp), %rsi
callq 0xe0f20
movq %rax, 0x30(%rsp)
cmpq $0x0, %rax
jne 0x159ce2
movq 0x20(%rsp), %rcx
movq 0x18(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x18(%rcx)
movq %rax, 0x30(%rsp)
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x40(%rsp), %rsi
movq 0x30(%rsp), %rdx
callq 0xe0fc0
movq 0x30(%rsp), %rax
movq %rax, (%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rdi
callq 0x16d430
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rax, %rcx
movq 0x40(%rsp), %r8
leaq 0x3f3b09(%rip), %rdi    # 0x54d820
movb $0x0, %al
callq 0x19070
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x3f3b20(%rip), %rdi    # 0x54d84f
movb $0x0, %al
callq 0x19070
jmp 0x159c7a
movq 0x48(%rsp), %rdi
callq 0x170f50
movl 0x2c(%rsp), %eax
addq $0x68, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dup_feature_visitor.c
// Function: gt_dup_feature_visitor_class
const GtNodeVisitorClass* gt_dup_feature_visitor_class()
{
  static const GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc) {
    nvc = gt_node_visitor_class_new(sizeof (GtDupFeatureVisitor),
                                    dup_feature_visitor_free,
                                    NULL,
                                    dup_feature_visitor_feature_node,
                                    NULL,
                                    NULL,
                                    NULL);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x4e8f8a(%rip)    # 0x642d68
jne 0x159e12
movl $0x20, %edi
leaq 0x34(%rip), %rsi        # 0x159e20
xorl %eax, %eax
movl %eax, %r9d
leaq 0x88(%rip), %rcx        # 0x159e80
movq %r9, %rdx
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x1b2170
movq %rax, 0x4e8f56(%rip)    # 0x642d68
callq 0x9f280
movq 0x4e8f4a(%rip), %rax    # 0x642d68
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dup_feature_visitor.c
// Function: dup_feature_visitor_feature_node
static int dup_feature_visitor_feature_node(GtNodeVisitor *nv,
                                            GtFeatureNode *fn,
                                            GT_UNUSED GtError *err)
{
  GtFeatureNodeIterator *fni, *child_iterator;
  GtFeatureNode *node, *child;
  GtDupFeatureVisitor *v;
  gt_error_check(err);
  v = gt_dup_feature_visitor_cast(nv);
  fni = gt_feature_node_iterator_new(fn);
  while ((node = gt_feature_node_iterator_next(fni))) {
    child_iterator = gt_feature_node_iterator_new_direct(node);
    while ((child = gt_feature_node_iterator_next(child_iterator))) {
      if (gt_feature_node_has_type(child, v->source_type))
        gt_feature_node_add_child(node, duplicate_feature(child,v->dest_type));
    }
    gt_feature_node_iterator_delete(child_iterator);
  }
  gt_feature_node_iterator_delete(fni);
  return 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x159ee3
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x159eab
jmp 0x159ee3
movq 0x4e20ee(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc157(%rip), %rsi    # 0x516013
leaq 0x3bc2fc(%rip), %rdx    # 0x5161bf
leaq 0x3f3a24(%rip), %rcx    # 0x54d8ee
leaq 0x3f39fa(%rip), %r8     # 0x54d8cb
movl $0x50, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x159ee5
callq 0x159dd0
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
callq 0x170b00
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
callq 0x170e30
movq %rax, 0x18(%rsp)
cmpq $0x0, %rax
je 0x159f96
movq 0x18(%rsp), %rdi
callq 0x170ce0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0x170e30
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x159f87
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rsi
callq 0x16d960
testb $0x1, %al
jne 0x159f5d
jmp 0x159f85
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0x15a070
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x16d010
jmp 0x159f2f
movq 0x20(%rsp), %rdi
callq 0x170f50
jmp 0x159f0b
movq 0x28(%rsp), %rdi
callq 0x170f50
xorl %eax, %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dup_feature_visitor.c
// Function: gt_dup_feature_visitor_new
GtNodeVisitor* gt_dup_feature_visitor_new(const char *dest_type,
                                          const char *source_type)
{
  GtDupFeatureVisitor *aiv;
  GtNodeVisitor *nv;
  gt_assert(dest_type && source_type);
  nv = gt_node_visitor_create(gt_dup_feature_visitor_class());
  aiv = gt_dup_feature_visitor_cast(nv);
  aiv->dest_type = gt_cstr_dup(dest_type);
  aiv->source_type = gt_cstr_dup(source_type);
  return nv;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x159fce
cmpq $0x0, 0x18(%rsp)
jne 0x15a006
movq 0x4e1fcb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bc034(%rip), %rsi    # 0x516013
leaq 0x3f38b1(%rip), %rdx    # 0x54d897
leaq 0x3f38c3(%rip), %rcx    # 0x54d8b0
leaq 0x3f38d7(%rip), %r8     # 0x54d8cb
movl $0x75, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a008
callq 0x159dd0
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x8(%rsp)
callq 0x159dd0
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
callq 0xa2db0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x18(%rsp), %rdi
callq 0xa2db0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/dup_feature_visitor.c
// Function: duplicate_feature
static GtFeatureNode* duplicate_feature(const GtFeatureNode *fn,
                                        const char *dest_type)
{
  GtFeatureNode *dup;
  GtStrArray *attr;
  GtUword i;
  dup = (GtFeatureNode*)
        gt_feature_node_new(gt_genome_node_get_seqid((GtGenomeNode*) fn),
                            dest_type,
                            gt_genome_node_get_start((GtGenomeNode*) fn),
                            gt_genome_node_get_end((GtGenomeNode*) fn),
                            gt_feature_node_get_strand(fn));
  if (gt_feature_node_has_source(fn)) {
    GtStr *source = gt_str_new_cstr(gt_feature_node_get_source(fn));
    gt_feature_node_set_source(dup, source);
    gt_str_delete(source);
  }
  if (gt_feature_node_score_is_defined(fn))
    gt_feature_node_set_score(dup, gt_feature_node_get_score(fn));
  gt_feature_node_set_phase(dup, gt_feature_node_get_phase(fn));
  attr = gt_feature_node_get_attribute_list(fn);
  for (i = 0; i < gt_str_array_size(attr); i++) {
    const char *tag = gt_str_array_get(attr, i);
    gt_feature_node_add_attribute(dup, tag,
                                  gt_feature_node_get_attribute(fn, tag));
  }
  gt_str_array_delete(attr);
  return dup;
}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq 0x80(%rsp), %rdi
callq 0x171b70
movq %rax, 0x30(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x80(%rsp), %rdi
callq 0x171c90
movq %rax, 0x40(%rsp)
movq 0x80(%rsp), %rdi
callq 0x171d50
movq %rax, 0x48(%rsp)
movq 0x80(%rsp), %rdi
callq 0x16cc70
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x48(%rsp), %rcx
movl %eax, %r8d
callq 0x16c7e0
movq %rax, 0x70(%rsp)
movq 0x80(%rsp), %rdi
callq 0x16d480
testb $0x1, %al
jne 0x15a105
jmp 0x15a138
movq 0x80(%rsp), %rdi
callq 0x16d800
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x58(%rsp)
movq 0x70(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x16c170
movq 0x58(%rsp), %rdi
callq 0x11f560
movq 0x80(%rsp), %rdi
callq 0x16d510
testb $0x1, %al
jne 0x15a14b
jmp 0x15a16c
movq 0x70(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x80(%rsp), %rdi
callq 0x16df90
movq 0x28(%rsp), %rdi
callq 0x16d590
movq 0x70(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x80(%rsp), %rdi
callq 0x16e1c0
movq 0x20(%rsp), %rdi
movl %eax, %esi
callq 0x16c250
movq 0x80(%rsp), %rdi
callq 0x16c090
movq %rax, 0x68(%rsp)
movq $0x0, 0x60(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x68(%rsp), %rdi
callq 0x11fcc0
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
jae 0x15a227
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x11f8c0
movq %rax, 0x50(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x80(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x16c040
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x16edb0
movq 0x60(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x60(%rsp)
jmp 0x15a1aa
movq 0x68(%rsp), %rdi
callq 0x11fd20
movq 0x70(%rsp), %rax
addq $0x88, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_new
GtEditscript *gt_editscript_new(GtAlphabet *alphabet)
{
  uint32_t alphabet_size;
  GtEditscript *es;
  es = gt_calloc((size_t) 1, sizeof (*es));
  alphabet_size = gt_alphabet_size(alphabet);
  es->entry_size =
    gt_determinebitspervalue((GtUword) alphabet_size + 3);
  gt_assert(es->entry_size <= (uint8_t) (sizeof (uint8_t) * CHAR_BIT));
  es->size = 0U;
  es->space = NULL;
  es->del = (uint8_t) alphabet_size;
  es->num_elems = 0;
  return es;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x1, %edi
movl $0x18, %esi
leaq 0x3f37be(%rip), %rdx    # 0x54da18
movl $0x52, %ecx
callq 0xe83c0
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
callq 0x7e920
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
movl %eax, %edi
addq $0x3, %rdi
callq 0xec660
movb %al, %cl
movq (%rsp), %rax
movb %cl, 0x15(%rax)
movq (%rsp), %rax
movzbl 0x15(%rax), %eax
cmpl $0x8, %eax
jle 0x15a2d3
movq 0x4e1cfe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bbd67(%rip), %rsi    # 0x516013
leaq 0x3f377f(%rip), %rdx    # 0x54da32
leaq 0x3f37b2(%rip), %rcx    # 0x54da6c
leaq 0x3f3757(%rip), %r8     # 0x54da18
movl $0x56, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a2d5
movq (%rsp), %rax
movl $0x0, 0x8(%rax)
movq (%rsp), %rax
movq $0x0, (%rax)
movl 0xc(%rsp), %eax
movb %al, %cl
movq (%rsp), %rax
movb %cl, 0x14(%rax)
movq (%rsp), %rax
movl $0x0, 0xc(%rax)
movq (%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_reset
void gt_editscript_reset(GtEditscript *editscript)
{
  gt_assert(editscript);
  if (editscript->space != NULL) {
    editscript->space[0] = 0;
  }
  editscript->num_elems = 0;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x15a394
movq 0x4e1c3d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bbca6(%rip), %rsi    # 0x516013
leaq 0x3f12ea(%rip), %rdx    # 0x54b65e
leaq 0x3f3703(%rip), %rcx    # 0x54da7e
leaq 0x3f3696(%rip), %r8     # 0x54da18
movl $0x109, %r9d            # imm = 0x109
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a396
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x15a3ae
movq (%rsp), %rax
movq (%rax), %rax
movq $0x0, (%rax)
movq (%rsp), %rax
movl $0x0, 0xc(%rax)
popq %rax
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_builder_reset
void gt_editscript_builder_reset(GtEditscriptBuilder *es_builder,
                                 GtEditscript *editscript)
{
  gt_assert(es_builder);
  gt_assert(editscript);
  gt_editscript_reset(editscript);
  editscript_pos_reset(&es_builder->fillpos);
  es_builder->es = editscript;
  es_builder->last_op = 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x15a6be
movq 0x4e1913(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bb97c(%rip), %rsi    # 0x516013
leaq 0x3f379a(%rip), %rdx    # 0x54de38
leaq 0x3f379e(%rip), %rcx    # 0x54de43
leaq 0x3f336c(%rip), %r8     # 0x54da18
movl $0x34e, %r9d            # imm = 0x34E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a6c0
jmp 0x15a6c2
cmpq $0x0, 0x8(%rsp)
jne 0x15a702
movq 0x4e18cf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bb938(%rip), %rsi    # 0x516013
leaq 0x3f0f7c(%rip), %rdx    # 0x54b65e
leaq 0x3f375a(%rip), %rcx    # 0x54de43
leaq 0x3f3328(%rip), %r8     # 0x54da18
movl $0x34f, %r9d            # imm = 0x34F
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a704
movq 0x8(%rsp), %rdi
callq 0x15a350
movq 0x10(%rsp), %rdi
addq $0x8, %rdi
callq 0x15ad60
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movb $0x0, 0x10(%rax)
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_builder_add_match
void gt_editscript_builder_add_match(GtEditscriptBuilder *es_builder)
{
  gt_assert(es_builder);
  es_builder->last_op = 0;
  es_builder->es->trailing_matches++;
  gt_assert(es_builder->es->trailing_matches != 0 &&
            "trailing matches overflow");
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x15a784
movq 0x4e184d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bb8b6(%rip), %rsi    # 0x516013
leaq 0x3f36d4(%rip), %rdx    # 0x54de38
leaq 0x3f36f4(%rip), %rcx    # 0x54de5f
leaq 0x3f32a6(%rip), %r8     # 0x54da18
movl $0x358, %r9d            # imm = 0x358
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a786
movq (%rsp), %rax
movb $0x0, 0x10(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq (%rsp), %rax
movq (%rax), %rax
cmpl $0x0, 0x10(%rax)
je 0x15a7b3
movb $0x1, %al
testb $0x1, %al
jne 0x15a7eb
jmp 0x15a7b3
movq 0x4e17e6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bb84f(%rip), %rsi    # 0x516013
leaq 0x3f36ce(%rip), %rdx    # 0x54de99
leaq 0x3f368d(%rip), %rcx    # 0x54de5f
leaq 0x3f323f(%rip), %r8     # 0x54da18
movl $0x35c, %r9d            # imm = 0x35C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a7ed
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_builder_add_mismatch
void gt_editscript_builder_add_mismatch(GtEditscriptBuilder *es_builder,
                                        GtUchar c)
{
  GtEditscript *es;
  gt_assert(es_builder != NULL);
  es = es_builder->es;
  gt_assert(c <= (GtUchar) es->del || c == (GtUchar) GT_WILDCARD);
  if (c == (GtUchar) GT_WILDCARD) {
    c = (GtUchar) es->del - 1;
  }
  if (es_builder->last_op != (uint8_t) GT_EDITSCRIPT_MISDEL_SYM(es)) {
    gt_editscript_builder_start_group(es_builder,
                                      (uint8_t) GT_EDITSCRIPT_MISDEL_SYM(es));
  }
  editscript_space_add_next(es, &es_builder->fillpos, (GtBitsequence) c);
}

// Assembly:
subq $0x18, %rsp
movb %sil, %al
movq %rdi, 0x10(%rsp)
movb %al, 0xf(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x15a840
movq 0x4e1791(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bb7fa(%rip), %rsi    # 0x516013
leaq 0x3f36be(%rip), %rdx    # 0x54dede
leaq 0x3f36ca(%rip), %rcx    # 0x54def1
leaq 0x3f31ea(%rip), %r8     # 0x54da18
movl $0x36e, %r9d            # imm = 0x36E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a842
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq %rax, (%rsp)
movzbl 0xf(%rsp), %eax
movq (%rsp), %rcx
movzbl 0x14(%rcx), %ecx
cmpl %ecx, %eax
jle 0x15a8a3
movzbl 0xf(%rsp), %eax
cmpl $0xfe, %eax
je 0x15a8a3
movq 0x4e172e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3bb797(%rip), %rsi    # 0x516013
leaq 0x3f3691(%rip), %rdx    # 0x54df14
leaq 0x3f3667(%rip), %rcx    # 0x54def1
leaq 0x3f3187(%rip), %r8     # 0x54da18
movl $0x370, %r9d            # imm = 0x370
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15a8a5
movzbl 0xf(%rsp), %eax
cmpl $0xfe, %eax
jne 0x15a8c0
movq (%rsp), %rax
movzbl 0x14(%rax), %eax
subl $0x1, %eax
movb %al, 0xf(%rsp)
movq 0x10(%rsp), %rax
movzbl 0x10(%rax), %eax
movq (%rsp), %rcx
movzbl 0x14(%rcx), %ecx
addq $0x1, %rcx
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x15a8f5
movq 0x10(%rsp), %rdi
movq (%rsp), %rax
movzbl 0x14(%rax), %eax
addq $0x1, %rax
movzbl %al, %esi
callq 0x15c9f0
movq (%rsp), %rdi
movq 0x10(%rsp), %rsi
addq $0x8, %rsi
movzbl 0xf(%rsp), %eax
movl %eax, %edx
callq 0x15ca60
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: editscript_space_get_next
static inline GtBitsequence editscript_space_get_next(const GtEditscript *es,
                                                      GtEditscriptPos *pos)
{
  GtBitsequence elem = 0;
  uint32_t shift;

  if (pos->bitsleft == 0) {
    pos->cur_word++;
    pos->bitsleft = (uint32_t) GT_INTWORDSIZE;
  }
  shift = pos->bitsleft;

  elem = es->space[pos->cur_word] << (GT_INTWORDSIZE - shift);
  if (shift < es->entry_size) {
    pos->cur_word++;
    elem |= es->space[pos->cur_word] >> (GtBitsequence) shift;
    pos->bitsleft = (uint32_t) (GT_INTWORDSIZE - (es->entry_size - shift));
  }
  else {
    pos->bitsleft -= es->entry_size;
  }
  elem >>= GT_INTWORDSIZE - es->entry_size;
  return elem;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq $0x0, -0x18(%rsp)
movq -0x10(%rsp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x15adb6
movq -0x10(%rsp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x10(%rsp), %rax
movl $0x40, 0x4(%rax)
movq -0x10(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x1c(%rsp)
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq -0x10(%rsp), %rcx
movl (%rcx), %ecx
movq (%rax,%rcx,8), %rax
movl $0x40, %ecx
subl -0x1c(%rsp), %ecx
movl %ecx, %ecx
shlq %cl, %rax
movq %rax, -0x18(%rsp)
movl -0x1c(%rsp), %eax
movq -0x8(%rsp), %rcx
movzbl 0x15(%rcx), %ecx
cmpl %ecx, %eax
jae 0x15ae47
movq -0x10(%rsp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq -0x10(%rsp), %rcx
movl (%rcx), %ecx
movq (%rax,%rcx,8), %rax
movl -0x1c(%rsp), %ecx
shrq %cl, %rax
orq -0x18(%rsp), %rax
movq %rax, -0x18(%rsp)
movq -0x8(%rsp), %rax
movzbl 0x15(%rax), %eax
subl -0x1c(%rsp), %eax
movl $0x40, %ecx
subl %eax, %ecx
movq -0x10(%rsp), %rax
movl %ecx, 0x4(%rax)
jmp 0x15ae5d
movq -0x8(%rsp), %rax
movzbl 0x15(%rax), %edx
movq -0x10(%rsp), %rax
movl 0x4(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x4(%rax)
movq -0x8(%rsp), %rax
movzbl 0x15(%rax), %eax
movl $0x40, %ecx
subl %eax, %ecx
movq -0x18(%rsp), %rax
movl %ecx, %ecx
shrq %cl, %rax
movq %rax, -0x18(%rsp)
movq -0x18(%rsp), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_get_source_len
GtUword gt_editscript_get_source_len(const GtEditscript *editscript)
{
  GtEditscriptPos pos;
  GtBitsequence elem;
  GtUword length = 0;
  uint32_t served = 0;
  bool skip = false;

  gt_assert(editscript != NULL);
  editscript_pos_reset(&pos);
  if (editscript->num_elems != 0) {
    elem = editscript_space_get_next(editscript, &pos);
    served++;
    while (served < editscript->num_elems) {
      length += editscript_space_get_length(editscript, &pos, &served);
      if (elem == GT_EDITSCRIPT_INS_SYM(editscript))
        skip = true;
      else
        skip = false;

      while (served < editscript->num_elems) {
        elem = editscript_space_get_next(editscript, &pos);
        served++;
        if (elem > (GtBitsequence) editscript->del)
          break;
        if (!skip && elem <= (GtBitsequence) editscript->del)
          length++;
      }
    }
  }
  return length + editscript->trailing_matches;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq $0x0, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movb $0x0, 0x3(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x15b0cf
movq 0x4e0f02(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3baf6b(%rip), %rsi    # 0x516013
leaq 0x3f2b98(%rip), %rdx    # 0x54dc47
leaq 0x3f2a80(%rip), %rcx    # 0x54db36
leaq 0x3f295b(%rip), %r8     # 0x54da18
movl $0x18a, %r9d            # imm = 0x18A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15b0d1
leaq 0x18(%rsp), %rdi
callq 0x15ad60
movq 0x20(%rsp), %rax
cmpl $0x0, 0xc(%rax)
je 0x15b1d1
movq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x15ad80
movq %rax, 0x10(%rsp)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0xc(%rcx), %eax
jae 0x15b1cf
movq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x4(%rsp), %rdx
callq 0x15ae90
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl 0x14(%rcx), %ecx
addq $0x2, %rcx
cmpq %rcx, %rax
jne 0x15b157
movb $0x1, 0x3(%rsp)
jmp 0x15b15c
movb $0x0, 0x3(%rsp)
jmp 0x15b15e
movl 0x4(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0xc(%rcx), %eax
jae 0x15b1ca
movq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x15ad80
movq %rax, 0x10(%rsp)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl 0x14(%rcx), %ecx
cmpq %rcx, %rax
jbe 0x15b1a0
jmp 0x15b1ca
testb $0x1, 0x3(%rsp)
jne 0x15b1c8
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl 0x14(%rcx), %ecx
cmpq %rcx, %rax
ja 0x15b1c8
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x15b15e
jmp 0x15b109
jmp 0x15b1d1
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movl 0x10(%rcx), %ecx
addq %rcx, %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/editscript.c
// Function: gt_editscript_get_target_len
GtUword gt_editscript_get_target_len(const GtEditscript *editscript)
{
  GtEditscriptPos pos;
  GtBitsequence elem;
  GtUword length = 0;
  uint32_t served = 0;

  gt_assert(editscript != NULL);
  editscript_pos_reset(&pos);
  if (editscript->num_elems != 0) {
    (void) editscript_space_get_next(editscript, &pos);
    served++;
    while (served < editscript->num_elems) {
      /* add matches */
      length += editscript_space_get_length(editscript, &pos, &served);
      while (served < editscript->num_elems) {
        elem = editscript_space_get_next(editscript, &pos);
        served++;
        if (elem > (GtBitsequence) editscript->del)
          break;
        if (elem < (GtBitsequence) editscript->del)
          length++;
      }
    }
  }
  return length + editscript->trailing_matches;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq $0x0, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x15b24a
movq 0x4e0d87(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3badf0(%rip), %rsi    # 0x516013
leaq 0x3f2a1d(%rip), %rdx    # 0x54dc47
leaq 0x3f2922(%rip), %rcx    # 0x54db53
leaq 0x3f27e0(%rip), %r8     # 0x54da18
movl $0x1aa, %r9d            # imm = 0x1AA
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x15b24c
leaq 0x18(%rsp), %rdi
callq 0x15ad60
movq 0x20(%rsp), %rax
cmpl $0x0, 0xc(%rax)
je 0x15b31b
movq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x15ad80
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0xc(%rcx), %eax
jae 0x15b319
movq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x4(%rsp), %rdx
callq 0x15ae90
addq 0x8(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0x4(%rsp), %eax
movq 0x20(%rsp), %rcx
cmpl 0xc(%rcx), %eax
jae 0x15b314
movq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x15ad80
movq %rax, 0x10(%rsp)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl 0x14(%rcx), %ecx
cmpq %rcx, %rax
jbe 0x15b2f1
jmp 0x15b314
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movzbl 0x14(%rcx), %ecx
cmpq %rcx, %rax
jae 0x15b312
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x15b2af
jmp 0x15b27f
jmp 0x15b31b
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rcx
movl 0x10(%rcx), %ecx
addq %rcx, %rax
addq $0x28, %rsp
retq