LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_new_from_file
GtStrgraph* gt_strgraph_new_from_file(const GtEncseq *encseq,
    GtUword fixlen, const char *indexname, const char *suffix)
{
  GtStrgraph *strgraph;
  GtFile *infp;

  gt_assert(encseq != NULL || fixlen > 0);
  gt_assert(sizeof (GtStrgraphLength) >= sizeof (GtUword) ||
     fixlen <= (GtUword)GT_STRGRAPH_LENGTH_MAX);
  gt_strgraph_show_limits_debug_log();

  strgraph = gt_calloc((size_t)1, sizeof (GtStrgraph));
  strgraph->state = GT_STRGRAPH_LOADED_FROM_FILE;
  strgraph->load_self_spm = false;
  strgraph->minmatchlen = GT_STRGRAPH_LENGTH_MAX;
  strgraph->rlt = NULL;
  strgraph->encseq = encseq;
  strgraph->fixlen = (GtStrgraphLength)fixlen;
  GT_STRGRAPH_INIT_COUNTS(strgraph);
  infp = gt_strgraph_get_file(indexname, suffix, false, false);
  gt_strgraph_load(strgraph, infp);
  gt_file_delete(infp);
  return strgraph;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x2908d0
cmpq $0x0, 0x28(%rsp)
ja 0x2908d0
movq 0x3ab701(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x28576a(%rip), %rsi    # 0x516013
leaq 0x2f19bf(%rip), %rdx    # 0x58226f
leaq 0x2f19d5(%rip), %rcx    # 0x58228c
leaq 0x2f1782(%rip), %r8     # 0x582040
movl $0x238, %r9d            # imm = 0x238
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2908d2
jmp 0x2908d4
jmp 0x2908d6
callq 0x28f630
movl $0x1, %edi
movl $0xa0, %esi
leaq 0x2f1754(%rip), %rdx    # 0x582040
movl $0x23d, %ecx            # imm = 0x23D
callq 0xe83c0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movl $0x3, 0x10(%rax)
movq 0x10(%rsp), %rax
movb $0x0, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $-0x1, 0x30(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0x30(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x2909a0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x290af0
movq 0x8(%rsp), %rdi
callq 0xde430
movq 0x10(%rsp), %rax
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_get_file
static GtFile* gt_strgraph_get_file(const char *indexname, const char *suffix,
    bool write, bool gzipped)
{
  GtFile *file;
  GtStr *filename;
  GtError *err;

  err = gt_error_new();
  filename = gt_str_new_cstr(indexname);
  gt_str_append_cstr(filename, suffix);
  if (!write && !gt_file_exists(gt_str_get(filename)))
  {
    fprintf(stderr, "file %s does not exist\n", gt_str_get(filename));
    exit(EXIT_FAILURE);
  }
  file = gt_file_open(gzipped ? GT_FILE_MODE_GZIP : GT_FILE_MODE_UNCOMPRESSED,
      gt_str_get(filename), write ? "wb" : "r", err);
  if (file == NULL)
  {
    fprintf(stderr, "%s", gt_error_get(err));
    exit(EXIT_FAILURE);
  }
  gt_str_delete(filename);
  gt_error_delete(err);
  return file;
}

// Assembly:
subq $0x48, %rsp
movb %cl, %al
movb %dl, %cl
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
andb $0x1, %cl
movb %cl, 0x37(%rsp)
andb $0x1, %al
movb %al, 0x36(%rsp)
callq 0xd88a0
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rdi
callq 0x11d510
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0x11d550
testb $0x1, 0x37(%rsp)
jne 0x290a3d
movq 0x20(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0xde820
testb $0x1, %al
jne 0x290a3d
movq 0x3ab595(%rip), %rax    # 0x63bfa0
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
callq 0x11dee0
movq 0x10(%rsp), %rdi
movq %rax, %rdx
leaq 0x2eec14(%rip), %rsi    # 0x57f640
movb $0x0, %al
callq 0x199f0
movl $0x1, %edi
callq 0x19890
movb 0x36(%rsp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rdi
callq 0x11dee0
movl 0xc(%rsp), %edi
movq %rax, %rsi
movb 0x37(%rsp), %cl
leaq 0x29b56c(%rip), %rdx    # 0x52bfda
leaq 0x296128(%rip), %rax    # 0x526b9d
testb $0x1, %cl
cmovneq %rax, %rdx
movq 0x18(%rsp), %rcx
callq 0xdd3f0
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x290aca
movq 0x3ab506(%rip), %rax    # 0x63bfa0
movq (%rax), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
callq 0xd8b20
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x30b568(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x199f0
movl $0x1, %edi
callq 0x19890
movq 0x20(%rsp), %rdi
callq 0x11f560
movq 0x18(%rsp), %rdi
callq 0xd8c80
movq 0x28(%rsp), %rax
addq $0x48, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_open_spmlist_file
int gt_strgraph_open_spmlist_file(GtStrgraph *strgraph, const char *indexname,
    const char *suffix, bool binary, GtUword bufsize, GtError *err)
{
  strgraph->binary_spmlist = binary;
  strgraph->spmfile = gt_fa_fopen_with_suffix(indexname, suffix,
      binary ? "wb" : "w", err);
  if (strgraph->spmfile == NULL)
    return -1;
  if (bufsize > 0)
  {
    strgraph->spmfile_buffer = NULL;
    (void)setvbuf(strgraph->spmfile, strgraph->spmfile_buffer, (int)_IOFBF,
        (size_t)bufsize << 20);
  }
  if (binary)
  {
    if (GT_STRGRAPH_NOFREADS(strgraph) > UINT32_MAX)
      gt_spmlist_write_header_bin64(strgraph->spmfile);
    else
      gt_spmlist_write_header_bin32(strgraph->spmfile);
  }
  return 0;
}

// Assembly:
subq $0x38, %rsp
movb %cl, %al
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
movq %r8, 0x8(%rsp)
movq %r9, (%rsp)
movb 0x17(%rsp), %cl
movq 0x28(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x29(%rax)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movb 0x17(%rsp), %cl
leaq 0x2d44ed(%rip), %rdx    # 0x565ec5
leaq 0x2951be(%rip), %rax    # 0x526b9d
testb $0x1, %cl
cmovneq %rax, %rdx
movq (%rsp), %r9
leaq 0x2f064f(%rip), %rcx    # 0x582040
movl $0x267, %r8d            # imm = 0x267
callq 0xd92c0
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x291a1e
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x291a9d
cmpq $0x0, 0x8(%rsp)
jbe 0x291a55
movq 0x28(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x8(%rsp), %rcx
shlq $0x14, %rcx
xorl %edx, %edx
callq 0x19050
testb $0x1, 0x17(%rsp)
je 0x291a95
movq 0x28(%rsp), %rax
movq 0x80(%rax), %rax
shrq %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, %rax
jbe 0x291a85
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x28ba10
jmp 0x291a93
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x28b880
jmp 0x291a95
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_spmproc_strgraph_count_and_save
void gt_spmproc_strgraph_count_and_save(GtUword suffix_readnum,
    GtUword prefix_readnum, GtUword length,
    bool suffixseq_direct, bool prefixseq_direct, void *strgraph)
{
  GtStrgraph* g;

  gt_assert(strgraph != NULL);
  g = (GtStrgraph*)strgraph;
  gt_spmproc_strgraph_count(suffix_readnum, prefix_readnum, length,
      suffixseq_direct, prefixseq_direct, strgraph);
  if (g->binary_spmlist)
  {
    if (GT_STRGRAPH_NOFREADS(g) > (GtStrgraphVnum)UINT32_MAX)
    {
      /*@ignore@*/
      gt_spmproc_show_bin64(suffix_readnum, prefix_readnum, length,
          suffixseq_direct, prefixseq_direct, g->spmfile);
      /*@end@*/
    }
    else
    {
      /*@ignore@*/
      gt_spmproc_show_bin32(suffix_readnum, prefix_readnum, length,
          suffixseq_direct, prefixseq_direct, g->spmfile);
      /*@end@*/
    }
  }
  else
  {
    GtFile *gtfile = gt_file_new_from_fileptr(g->spmfile);
    gt_spmproc_show_ascii(suffix_readnum, prefix_readnum, length,
        suffixseq_direct, prefixseq_direct, gtfile);
    gt_file_delete_without_handle(gtfile);
  }
}

// Assembly:
subq $0x38, %rsp
movb %r8b, %al
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
andb $0x1, %cl
movb %cl, 0x1f(%rsp)
andb $0x1, %al
movb %al, 0x1e(%rsp)
movq %r9, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x291b18
movq 0x3aa4b9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x284522(%rip), %rsi    # 0x516013
leaq 0x2f060c(%rip), %rdx    # 0x582104
leaq 0x2f08b8(%rip), %rcx    # 0x5823b7
leaq 0x2f053a(%rip), %r8     # 0x582040
movl $0x280, %r9d            # imm = 0x280
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x291b1a
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movb 0x1f(%rsp), %cl
movb 0x1e(%rsp), %al
movq 0x10(%rsp), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %r8d
callq 0x291410
movq 0x8(%rsp), %rax
testb $0x1, 0x29(%rax)
je 0x291bdb
movq 0x8(%rsp), %rax
movq 0x80(%rax), %rax
shrq %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, %rax
jbe 0x291ba8
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movb 0x1f(%rsp), %cl
movb 0x1e(%rsp), %al
movq 0x8(%rsp), %r8
movq 0x18(%r8), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %r8d
callq 0x28ba30
jmp 0x291bd9
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movb 0x1f(%rsp), %cl
movb 0x1e(%rsp), %al
movq 0x8(%rsp), %r8
movq 0x18(%r8), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %r8d
callq 0x28b8a0
jmp 0x291c22
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xdda20
movq %rax, (%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movb 0x1f(%rsp), %cl
movb 0x1e(%rsp), %al
movq (%rsp), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %r8d
callq 0x28c210
movq (%rsp), %rdi
callq 0xdd730
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_save_counts
int gt_strgraph_save_counts(GtStrgraph *strgraph, const char *indexname,
    const char *suffix, GT_UNUSED GtError *err)
{
  GtFile *outfp;

  gt_assert(strgraph != NULL);
  gt_assert(strgraph->state == GT_STRGRAPH_PREPARATION);
  outfp = gt_strgraph_get_file(indexname, suffix, true, false);
  gt_assert(outfp != NULL);
  GT_STRGRAPH_SERIALIZE_COUNTS(strgraph, outfp);
  gt_file_delete(outfp);
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x291c88
movq 0x3aa349(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2843b2(%rip), %rsi    # 0x516013
leaq 0x2f049c(%rip), %rdx    # 0x582104
leaq 0x2f076b(%rip), %rcx    # 0x5823da
leaq 0x2f03ca(%rip), %r8     # 0x582040
movl $0x2a3, %r9d            # imm = 0x2A3
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x291c8a
jmp 0x291c8c
movq 0x20(%rsp), %rax
cmpl $0x0, 0x10(%rax)
je 0x291ccf
movq 0x3aa302(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x28436b(%rip), %rsi    # 0x516013
leaq 0x2f0743(%rip), %rdx    # 0x5823f2
leaq 0x2f0724(%rip), %rcx    # 0x5823da
leaq 0x2f0383(%rip), %r8     # 0x582040
movl $0x2a4, %r9d            # imm = 0x2A4
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x291cd1
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x2909a0
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jne 0x291d2a
movq 0x3aa2a7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x284310(%rip), %rsi    # 0x516013
leaq 0x29f13f(%rip), %rdx    # 0x530e49
leaq 0x2f06c9(%rip), %rcx    # 0x5823da
leaq 0x2f0328(%rip), %r8     # 0x582040
movl $0x2a6, %r9d            # imm = 0x2A6
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x291d2c
movq (%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rsi
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rdx
shlq $0x0, %rdx
callq 0xde230
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rdi
movq (%rsp), %rdx
leaq -0x27df(%rip), %rsi     # 0x28f580
xorl %eax, %eax
movl %eax, %ecx
callq 0x291d80
movq (%rsp), %rdi
callq 0xde430
xorl %eax, %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_check_outdegs
static void gt_strgraph_check_outdegs(GtStrgraph *strgraph)
{
  GtStrgraphVnum i;
  GtStrgraphVEdgenum j, outdeg;
  for (i = 0UL; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
  {
    outdeg = 0;
    for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
      if (!GT_STRGRAPH_EDGE_IS_REDUCED(strgraph, i, j))
        outdeg++;
    gt_assert(outdeg == GT_STRGRAPH_V_OUTDEG(strgraph, i));
  }
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq 0x40(%rsp), %rcx
cmpq 0x80(%rcx), %rax
jae 0x2939b1
movq $0x0, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x40(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x38(%rsp), %rsi
addq $0x1, %rsi
callq 0x290730
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x290730
movq 0x18(%rsp), %rcx
movq %rax, %rdx
movq 0x20(%rsp), %rax
subq %rdx, %rcx
cmpq %rcx, %rax
jae 0x293938
movq 0x40(%rsp), %rax
movq 0x88(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x290730
movq 0x8(%rsp), %rdi
movq %rax, %rsi
addq 0x30(%rsp), %rsi
callq 0x290730
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x46ec80
movl %eax, %ecx
movq 0x10(%rsp), %rax
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
shll %ecx
movslq %ecx, %rcx
andq %rcx, %rax
shrq %rax
movq 0x40(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x29390d
movb $0x1, %al
testb $0x1, %al
jne 0x293923
jmp 0x293915
xorl %eax, %eax
testb $0x1, %al
jne 0x293923
jmp 0x293915
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
jmp 0x293925
movq 0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x30(%rsp)
jmp 0x29383b
jmp 0x29393a
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
movq 0x40(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x38(%rsp), %rsi
callq 0x290730
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
je 0x29399a
movq 0x3a8637(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2826a0(%rip), %rsi    # 0x516013
leaq 0x2ef75c(%rip), %rdx    # 0x5830d6
leaq 0x2ef781(%rip), %rcx    # 0x583102
leaq 0x2ee6b8(%rip), %r8     # 0x582040
movl $0x35e, %r9d            # imm = 0x35E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29399c
jmp 0x29399e
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x293812
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_find_only_edge
static inline GtStrgraphVEdgenum gt_strgraph_find_only_edge(
    GtStrgraph *strgraph, GtStrgraphVnum from)
{
  GtStrgraphVEdgenum j;
  gt_assert(GT_STRGRAPH_V_OUTDEG(strgraph, from) == (GtStrgraphVEdgenum)1);
  for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, from); j++)
  {
    if (!GT_STRGRAPH_EDGE_IS_REDUCED(strgraph, from, j))
      return j;
  }
  gt_assert(false); /* outdeg error */
  return 0; /* to avoid warnings */
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq 0x38(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x30(%rsp), %rsi
callq 0x290730
cmpq $0x1, %rax
je 0x2962bf
movq 0x3a5d12(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27fd7b(%rip), %rsi    # 0x516013
leaq 0x2ece7d(%rip), %rdx    # 0x58311c
leaq 0x2eceb4(%rip), %rcx    # 0x58315a
leaq 0x2ebd93(%rip), %r8     # 0x582040
movl $0x45d, %r9d            # imm = 0x45D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2962c1
movq $0x0, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x30(%rsp), %rsi
addq $0x1, %rsi
callq 0x290730
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x30(%rsp), %rsi
callq 0x290730
movq 0x18(%rsp), %rcx
movq %rax, %rdx
movq 0x20(%rsp), %rax
subq %rdx, %rcx
cmpq %rcx, %rax
jae 0x2963c5
movq 0x38(%rsp), %rax
movq 0x88(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x30(%rsp), %rsi
callq 0x290730
movq 0x8(%rsp), %rdi
movq %rax, %rsi
addq 0x28(%rsp), %rsi
callq 0x290730
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x46ec80
movl %eax, %ecx
movq 0x10(%rsp), %rax
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
subl $0x1, %ecx
shll %ecx
movslq %ecx, %rcx
andq %rcx, %rax
shrq %rax
movq 0x38(%rsp), %rcx
cmpq 0x90(%rcx), %rax
jne 0x29639c
movb $0x1, %al
testb $0x1, %al
jne 0x2963b0
jmp 0x2963a4
xorl %eax, %eax
testb $0x1, %al
jne 0x2963b0
jmp 0x2963a4
movq 0x28(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x2963ff
jmp 0x2963b2
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
jmp 0x2962ca
jmp 0x2963c7
movq 0x3a5bd2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27fc3b(%rip), %rsi    # 0x516013
leaq 0x2c2984(%rip), %rdx    # 0x558d63
leaq 0x2ecd74(%rip), %rcx    # 0x58315a
leaq 0x2ebc53(%rip), %r8     # 0x582040
movl $0x463, %r9d            # imm = 0x463
movb $0x0, %al
callq 0x199f0
callq 0x19370
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_path_info_compare
static int gt_strgraph_path_info_compare(const void *pi_a, const void *pi_b)
{
  int retv;
  const GtStrgraphPathInfo *a = pi_a, *b = pi_b;
  retv = (int)(a->dest > b->dest) -
    (int)(a->dest < b->dest);
  if (retv == 0)
    retv = (int)(a->width > b->width) - (int)(a->width < b->width);
  return retv;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq -0x8(%rsp), %rax
movq %rax, -0x20(%rsp)
movq -0x10(%rsp), %rax
movq %rax, -0x28(%rsp)
movq -0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rsp), %rcx
cmpq 0x8(%rcx), %rax
seta %al
andb $0x1, %al
movzbl %al, %eax
movq -0x20(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq -0x28(%rsp), %rdx
cmpq 0x8(%rdx), %rcx
setb %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x14(%rsp)
cmpl $0x0, -0x14(%rsp)
jne 0x29740b
movq -0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq -0x28(%rsp), %rcx
cmpq 0x18(%rcx), %rax
seta %al
andb $0x1, %al
movzbl %al, %eax
movq -0x20(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq -0x28(%rsp), %rdx
cmpq 0x18(%rdx), %rcx
setb %cl
andb $0x1, %cl
movzbl %cl, %ecx
subl %ecx, %eax
movl %eax, -0x14(%rsp)
movl -0x14(%rsp), %eax
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_show_edge_lengths_distribution
void gt_strgraph_show_edge_lengths_distribution(const GtStrgraph *strgraph,
    const char *indexname, const char *suffix)
{
  GtDiscDistri *d;
  GtStrgraphVnum i;
  GtStrgraphVEdgenum j;
  GtFile *outfp;

  gt_assert(strgraph != NULL);
  gt_assert(sizeof (GtUword) >= sizeof (GtStrgraphLength));
  d = gt_disc_distri_new();
  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
  {
    for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
    {
      gt_disc_distri_add(d,
          (GtUword)GT_STRGRAPH_EDGE_LEN(strgraph, i, j));
    }
  }
  outfp = gt_strgraph_get_file(indexname, suffix, true, false);
  gt_file_xprintf(outfp, "# length nofedges\n");
  gt_disc_distri_foreach(d,
     (GtDiscDistriIterFunc) gt_strgraph_show_disc_distri_datapoint, outfp);
  gt_disc_distri_delete(d);
  gt_file_delete(outfp);
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
cmpq $0x0, 0x60(%rsp)
jne 0x29a1e3
movq 0x3a1dee(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27be57(%rip), %rsi    # 0x516013
leaq 0x2e7f41(%rip), %rdx    # 0x582104
leaq 0x2e87e1(%rip), %rcx    # 0x5829ab
leaq 0x2e7e6f(%rip), %r8     # 0x582040
movl $0x86a, %r9d            # imm = 0x86A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29a1e5
jmp 0x29a1e7
jmp 0x29a1e9
callq 0xa5080
movq %rax, 0x48(%rsp)
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
movq 0x60(%rsp), %rcx
cmpq 0x80(%rcx), %rax
jae 0x29a311
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x60(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x40(%rsp), %rsi
addq $0x1, %rsi
callq 0x290730
movq %rax, 0x20(%rsp)
movq 0x60(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x40(%rsp), %rsi
callq 0x290730
movq 0x20(%rsp), %rcx
movq %rax, %rdx
movq 0x28(%rsp), %rax
subq %rdx, %rcx
cmpq %rcx, %rax
jae 0x29a2fc
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rax
movq 0x88(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x60(%rsp), %rax
movq 0x60(%rax), %rdi
movq 0x40(%rsp), %rsi
callq 0x290730
movq 0x8(%rsp), %rdi
movq %rax, %rsi
addq 0x38(%rsp), %rsi
callq 0x290730
movq %rax, 0x10(%rsp)
movq 0x60(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x46ec80
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdi
movl %eax, %ecx
movl $0x1, %eax
shll %cl, %eax
subl $0x1, %eax
shll %eax
cltq
andq %rax, %rsi
shrq %rsi
callq 0xa50a0
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x29a21c
jmp 0x29a2fe
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x29a1fc
movq 0x58(%rsp), %rdi
movq 0x50(%rsp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x2909a0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdi
leaq 0x2e869e(%rip), %rsi    # 0x5829d6
movb $0x0, %al
callq 0xddca0
movq 0x48(%rsp), %rdi
movq 0x30(%rsp), %rdx
leaq 0x20(%rip), %rsi        # 0x29a370
callq 0xa55e0
movq 0x48(%rsp), %rdi
callq 0xa5bf0
movq 0x30(%rsp), %rdi
callq 0xde430
addq $0x68, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_show_counts_distribution
void gt_strgraph_show_counts_distribution(const GtStrgraph *strgraph,
    const char *indexname, const char *suffix)
{
  GtDiscDistri *d;
  GtFile *outfp;
  GtStrgraphVnum i;

  gt_assert(sizeof (GtUword) >= sizeof (GtStrgraphCount));
  d = gt_disc_distri_new();
  gt_assert(strgraph != NULL &&\
            strgraph->__small_counts != NULL &&
            strgraph->__large_counts != NULL);
  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
  {
    GtStrgraphCount c;
    GT_STRGRAPH_GET_COUNT(strgraph, c, i);
    gt_disc_distri_add(d, (GtUword)c);
  }
  outfp = gt_strgraph_get_file(indexname, suffix, true, false);
  gt_file_xprintf(outfp, "# count nofvertices\n");
  gt_disc_distri_foreach(d,
     (GtDiscDistriIterFunc) gt_strgraph_show_disc_distri_datapoint, outfp);
  gt_disc_distri_delete(d);
  gt_file_delete(outfp);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
jmp 0x29a3c5
callq 0xa5080
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x29a3ef
movq 0x40(%rsp), %rax
cmpq $0x0, 0x40(%rax)
je 0x29a3ef
movq 0x40(%rsp), %rax
cmpq $0x0, 0x48(%rax)
jne 0x29a427
movq 0x3a1baa(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27bc13(%rip), %rsi    # 0x516013
leaq 0x2e7c60(%rip), %rdx    # 0x582067
leaq 0x2e85db(%rip), %rcx    # 0x5829e9
leaq 0x2e7c2b(%rip), %r8     # 0x582040
movl $0x888, %r9d            # imm = 0x888
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29a429
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x40(%rsp), %rcx
cmpq 0x80(%rcx), %rax
jae 0x29a504
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rax
movq 0x18(%rsp), %rcx
movzbl (%rax,%rcx), %eax
cmpl $0xff, %eax
jge 0x29a47b
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rax
movq 0x18(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movq %rax, 0x10(%rsp)
jmp 0x29a4e2
movq 0x40(%rsp), %rax
movq 0x48(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x28f990
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x29a4d3
movq 0x3a1afe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27bb67(%rip), %rsi    # 0x516013
leaq 0x2e7c27(%rip), %rdx    # 0x5820da
leaq 0x2e852f(%rip), %rcx    # 0x5829e9
leaq 0x2e7b7f(%rip), %r8     # 0x582040
movl $0x88c, %r9d            # imm = 0x88C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29a4d5
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xa50a0
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x29a432
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x2909a0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
leaq 0x2e84e3(%rip), %rsi    # 0x582a0e
movb $0x0, %al
callq 0xddca0
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rdx
leaq -0x1d3(%rip), %rsi      # 0x29a370
callq 0xa55e0
movq 0x28(%rsp), %rdi
callq 0xa5bf0
movq 0x20(%rsp), %rdi
callq 0xde430
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_log_space
void gt_strgraph_log_space(const GtStrgraph *strgraph)
{
  size_t space_for_edges, space_for_vertices, total_space;
  gt_assert(strgraph != NULL);
  space_for_edges = GT_STRGRAPH_SIZEOF_EDGES(strgraph);
  space_for_vertices = GT_STRGRAPH_SIZEOF_VERTICES(strgraph);
  total_space = sizeof (GtStrgraph) + space_for_edges + space_for_vertices;
  gt_strgraph_log_space_value("space graph", total_space);
  gt_strgraph_log_space_value("- edges", space_for_edges);
  gt_strgraph_log_space_value("- vertices", space_for_vertices);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x29b119
movq 0x3a0eb8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27af21(%rip), %rsi    # 0x516013
leaq 0x2e700b(%rip), %rdx    # 0x582104
leaq 0x2e79b3(%rip), %rcx    # 0x582ab3
leaq 0x2e6f39(%rip), %r8     # 0x582040
movl $0x8d0, %r9d            # imm = 0x8D0
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29b11b
movq 0x30(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x46ec80
movl %eax, 0x4(%rsp)
movq 0x30(%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x46ec80
movl 0x4(%rsp), %edi
addl %eax, %edi
addl $0x1, %edi
movq 0x30(%rsp), %rax
movq 0x98(%rax), %rsi
callq 0x29b250
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq 0x80(%rax), %rsi
addq $0x1, %rsi
movl $0x2, %edi
callq 0x29b250
addq $0x8, %rax
addq $0x8, %rax
addq $0x8, %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x68(%rax), %rdi
callq 0x46ec80
movl %eax, %edi
movq 0x30(%rsp), %rax
movq 0x80(%rax), %rsi
addq $0x1, %rsi
callq 0x29b250
movq %rax, %rcx
movq 0x8(%rsp), %rax
addq %rcx, %rax
addq $0x8, %rax
addq $0x8, %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq 0x78(%rax), %rdi
callq 0x46ec80
movl %eax, %edi
movq 0x30(%rsp), %rax
movq 0x80(%rax), %rsi
addq $0x1, %rsi
callq 0x29b250
movq %rax, %rcx
movq 0x10(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
addq $0xa0, %rax
addq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rsi
leaq 0x2e78ab(%rip), %rdi    # 0x582ac9
callq 0x29b280
movq 0x28(%rsp), %rsi
leaq 0x2e78a6(%rip), %rdi    # 0x582ad5
callq 0x29b280
movq 0x20(%rsp), %rsi
leaq 0x2e789d(%rip), %rdi    # 0x582add
callq 0x29b280
addq $0x38, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_log_space_value
static void gt_strgraph_log_space_value(const char *prefix, size_t value)
{
  char unit_prefix;
  float float_value;
  if (value < (size_t)1024) {
    gt_log_log("%s = "GT_WU" bytes", prefix, (GtUword)value);
  } else {
    if (value < (size_t)1048576) {
      unit_prefix = 'k';
      float_value = (float)value / 1024.F;
    } else if (value < (size_t)1073741824UL) {
      unit_prefix = 'M';
      float_value = (float)value / 1048576.F;
    } else {
      unit_prefix = 'G';
      float_value = (float)value / 1073741824.F;
    }
    gt_log_log("%s = "GT_WU" bytes (%.2f %cb)", prefix, (GtUword)value,
        float_value, unit_prefix);
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
cmpq $0x400, 0x28(%rsp)      # imm = 0x400
jae 0x29b2b6
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdx
leaq 0x2e8188(%rip), %rdi    # 0x583432
movb $0x0, %al
callq 0xe7740
jmp 0x29b40d
cmpq $0x100000, 0x28(%rsp)   # imm = 0x100000
jae 0x29b321
movb $0x6b, 0x27(%rsp)
movq 0x28(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x18(%rsp)
testq %rax, %rax
movss %xmm0, 0x1c(%rsp)
js 0x29b304
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x1c(%rsp)
movss 0x1c(%rsp), %xmm0
movss 0x2e6bda(%rip), %xmm1   # 0x581eec
divss %xmm1, %xmm0
movss %xmm0, 0x20(%rsp)
jmp 0x29b3e6
cmpq $0x40000000, 0x28(%rsp) # imm = 0x40000000
jae 0x29b389
movb $0x4d, 0x27(%rsp)
movq 0x28(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x10(%rsp)
testq %rax, %rax
movss %xmm0, 0x14(%rsp)
js 0x29b36f
movss 0x10(%rsp), %xmm0
movss %xmm0, 0x14(%rsp)
movss 0x14(%rsp), %xmm0
movss 0x2e6b6b(%rip), %xmm1   # 0x581ee8
divss %xmm1, %xmm0
movss %xmm0, 0x20(%rsp)
jmp 0x29b3e4
movb $0x47, 0x27(%rsp)
movq 0x28(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x8(%rsp)
testq %rax, %rax
movss %xmm0, 0xc(%rsp)
js 0x29b3cc
movss 0x8(%rsp), %xmm0
movss %xmm0, 0xc(%rsp)
movss 0xc(%rsp), %xmm0
movss 0x2e6b0a(%rip), %xmm1   # 0x581ee4
divss %xmm1, %xmm0
movss %xmm0, 0x20(%rsp)
jmp 0x29b3e6
movq 0x30(%rsp), %rsi
movq 0x28(%rsp), %rdx
movss 0x20(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movsbl 0x27(%rsp), %ecx
leaq 0x2e803b(%rip), %rdi    # 0x583441
movb $0x1, %al
callq 0xe7740
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_nofvertices_Vnum
static inline GtStrgraphVnum gt_strgraph_nofvertices_Vnum(
    const GtStrgraph *strgraph)
{
  GtStrgraphVnum i, connected_vertices;

  gt_assert(strgraph != NULL);

  connected_vertices = 0;
  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
  {
    if ((GT_STRGRAPH_V_OUTDEG(strgraph, i) > 0) ||
        (GT_STRGRAPH_V_INDEG(strgraph, i) > 0))
    {
      connected_vertices++;
    }
  }
  return connected_vertices;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x29b499
movq 0x3a0b38(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27aba1(%rip), %rsi    # 0x516013
leaq 0x2e6c8b(%rip), %rdx    # 0x582104
leaq 0x2e7fdb(%rip), %rcx    # 0x58345b
leaq 0x2e6bb9(%rip), %r8     # 0x582040
movl $0x8de, %r9d            # imm = 0x8DE
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29b49b
movq $0x0, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x80(%rcx), %rax
jae 0x29b54d
movq 0x20(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x290730
cmpq $0x0, %rax
ja 0x29b52a
movq 0x20(%rsp), %rax
movq 0x70(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
andq $0x1, %rax
cmpq $0x1, %rax
jne 0x29b509
movq 0x18(%rsp), %rax
subq $0x1, %rax
movq %rax, (%rsp)
jmp 0x29b516
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0x290730
cmpq $0x0, %rax
jbe 0x29b538
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x29b53a
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x29b4ad
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_nofreads
GtUword gt_strgraph_nofreads(const GtStrgraph *strgraph)
{
  GtStrgraphVnum i;
  GtUword connected_reads = 0;
  bool already_counted = false;

  gt_assert(strgraph != NULL);
  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
  {
    if (GT_STRGRAPH_V_IS_B(i))
      already_counted = false;
      /* if IS_E, then the read may already have been counted,
         in the case B was connected*/
    if (GT_STRGRAPH_V_OUTDEG(strgraph, i) > 0)
    {
      if (already_counted == false)
      {
        connected_reads++;
        already_counted = true;
      }
    }
  }
  return connected_reads;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq $0x0, 0x10(%rsp)
movb $0x0, 0xf(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x29b5b7
movq 0x3a0a1a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27aa83(%rip), %rsi    # 0x516013
leaq 0x2e6b6d(%rip), %rdx    # 0x582104
leaq 0x2e754a(%rip), %rcx    # 0x582ae8
leaq 0x2e6a9b(%rip), %r8     # 0x582040
movl $0x8fb, %r9d            # imm = 0x8FB
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29b5b9
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x80(%rcx), %rax
jae 0x29b637
movq 0x18(%rsp), %rax
andq $0x1, %rax
cmpq $0x1, %rax
je 0x29b5e9
movb $0x0, 0xf(%rsp)
movq 0x20(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x290730
cmpq $0x0, %rax
jbe 0x29b625
movb 0xf(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x29b623
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
movb $0x1, 0xf(%rsp)
jmp 0x29b625
jmp 0x29b627
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x29b5c2
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_nofedges_Edgenum
static inline GtStrgraphEdgenum gt_strgraph_nofedges_Edgenum(
    const GtStrgraph *strgraph)
{
  GtStrgraphVnum i;
  GtStrgraphEdgenum total_degree = 0;
  gt_assert(strgraph != NULL);
  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
    total_degree += GT_STRGRAPH_V_OUTDEG(strgraph, i);
  return total_degree;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq $0x0, (%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x29b6d1
movq 0x3a0900(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27a969(%rip), %rsi    # 0x516013
leaq 0x2e6a53(%rip), %rdx    # 0x582104
leaq 0x2e7dc0(%rip), %rcx    # 0x583478
leaq 0x2e6981(%rip), %r8     # 0x582040
movl $0x913, %r9d            # imm = 0x913
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29b6d3
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x80(%rcx), %rax
jae 0x29b71a
movq 0x10(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x290730
addq (%rsp), %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x29b6dc
movq (%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_log_stats
void gt_strgraph_log_stats(const GtStrgraph *strgraph, GtLogger *logger)
{
  GtStrgraphVnum v = 0;
  GtStrgraphEdgenum e = 0;
  float avg_deg;

  gt_assert(strgraph != NULL);

  v = gt_strgraph_nofvertices_Vnum(strgraph);
  e = gt_strgraph_nofedges_Edgenum(strgraph);

  avg_deg = (v == 0UL) ? (float)0 : (float)(e) / (float)(v);

  gt_logger_log(logger, "vertices: "FormatGtStrgraphVnum
      " (reads: "FormatGtStrgraphVnum") -- edges: "FormatGtStrgraphEdgenum" "
      "(spm: "FormatGtStrgraphEdgenum") -- e/v: %.4f", v, v >> 1, e, e >> 1,
      avg_deg);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x29b800
movq 0x3a07d1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x27a83a(%rip), %rsi    # 0x516013
leaq 0x2e6924(%rip), %rdx    # 0x582104
leaq 0x2e7329(%rip), %rcx    # 0x582b10
leaq 0x2e6852(%rip), %r8     # 0x582040
movl $0x932, %r9d            # imm = 0x932
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29b802
movq 0x40(%rsp), %rdi
callq 0x29b450
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rdi
callq 0x29b680
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x29b836
xorps %xmm0, %xmm0
movss %xmm0, 0x20(%rsp)
jmp 0x29b8d4
movq 0x28(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x18(%rsp)
testq %rax, %rax
movss %xmm0, 0x1c(%rsp)
js 0x29b874
movss 0x18(%rsp), %xmm0
movss %xmm0, 0x1c(%rsp)
movss 0x1c(%rsp), %xmm0
movss %xmm0, 0xc(%rsp)
movq 0x30(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x10(%rsp)
testq %rax, %rax
movss %xmm0, 0x14(%rsp)
js 0x29b8be
movss 0x10(%rsp), %xmm0
movss %xmm0, 0x14(%rsp)
movss 0xc(%rsp), %xmm0
movss 0x14(%rsp), %xmm1
divss %xmm1, %xmm0
movss %xmm0, 0x20(%rsp)
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x24(%rsp)
movq 0x38(%rsp), %rdi
movq 0x30(%rsp), %rdx
movq 0x30(%rsp), %rcx
shrq %rcx
movq 0x28(%rsp), %r8
movq 0x28(%rsp), %r9
shrq %r9
movss 0x24(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x2e7216(%rip), %rsi    # 0x582b26
movb $0x1, %al
callq 0xe7cd0
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_show_contigs
static void gt_strgraph_show_contigs(GtStrgraph *strgraph,
    GtUword min_path_depth, GtUword min_contig_length,
    bool showpaths, GtFile *outfp, const GtEncseq *encseq,
    bool show_progressbar, GtLogger *logger)
{
  GtStrgraphSpellData sdata;

  gt_strgraph_set_encseq(strgraph, encseq);
  sdata.cw = gt_contigs_writer_new(encseq, outfp);
  if (showpaths)
    gt_contigs_writer_enable_complete_path_output(sdata.cw);
  sdata.strgraph = strgraph;
  sdata.total_depth = 1UL;
  sdata.current_depth = 1UL;
  sdata.current_length = 0;
  sdata.contignum = 0;
  sdata.min_depth = min_path_depth;
  sdata.min_length = min_contig_length;

  gt_strgraph_traverse(strgraph, gt_strgraph_spell_vertex,
      gt_strgraph_spell_edge, &sdata, show_progressbar);

  /* show last contig */
  if (sdata.current_depth >= min_path_depth &&
      sdata.current_length >= min_contig_length)
    gt_contigs_writer_write(sdata.cw);
  else
    gt_contigs_writer_abort(sdata.cw);

  gt_log_log("traversed edges = "GT_WU"", sdata.total_depth);
  gt_log_log("numofcontigs = "GT_WU"", sdata.contignum);

  if (sdata.contignum > 0)
    gt_contigs_writer_show_stats(sdata.cw, logger);
  else
    gt_logger_log(logger, "no contigs respect the given cutoff parameters");

  gt_contigs_writer_delete(sdata.cw);
}

// Assembly:
subq $0x78, %rsp
movq 0x88(%rsp), %rax
movb 0x80(%rsp), %al
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movq %rdx, 0x60(%rsp)
andb $0x1, %cl
movb %cl, 0x5f(%rsp)
movq %r8, 0x50(%rsp)
movq %r9, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq 0x70(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x292700
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x281a00
movq %rax, 0x38(%rsp)
testb $0x1, 0x5f(%rsp)
je 0x29bc9d
movq 0x38(%rsp), %rdi
callq 0x281bd0
movq 0x70(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x1, (%rsp)
movq $0x1, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x28(%rsp)
movq 0x68(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x60(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x70(%rsp), %rdi
movb 0x47(%rsp), %al
leaq 0x2df2(%rip), %rsi      # 0x29eae0
leaq 0x2f3b(%rip), %rdx      # 0x29ec30
movq %rsp, %rcx
andb $0x1, %al
movzbl %al, %r8d
callq 0x29e7e0
movq 0x8(%rsp), %rax
cmpq 0x68(%rsp), %rax
jb 0x29bd27
movq 0x18(%rsp), %rax
cmpq 0x60(%rsp), %rax
jb 0x29bd27
movq 0x38(%rsp), %rdi
callq 0x281ed0
jmp 0x29bd31
movq 0x38(%rsp), %rdi
callq 0x281da0
movq (%rsp), %rsi
leaq 0x2e7759(%rip), %rdi    # 0x583495
movb $0x0, %al
callq 0xe7740
movq 0x28(%rsp), %rsi
leaq 0x2e775c(%rip), %rdi    # 0x5834ab
movb $0x0, %al
callq 0xe7740
cmpq $0x0, 0x28(%rsp)
jbe 0x29bd72
movq 0x38(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x282b10
jmp 0x29bd88
movq 0x88(%rsp), %rdi
leaq 0x2e4d6c(%rip), %rsi    # 0x580aed
movb $0x0, %al
callq 0xe7cd0
movq 0x38(%rsp), %rdi
callq 0x281cf0
addq $0x78, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_unit_test
int gt_strgraph_unit_test(GtError *err)
{
  int had_err = 0;

  gt_error_check(err);
  GT_STRGRAPH_UTEST(new);
  GT_STRGRAPH_UTEST(delete);
  GT_STRGRAPH_UTEST(creation);
  GT_STRGRAPH_UTEST(add_spm);
  GT_STRGRAPH_UTEST(redtrans);
  return had_err;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x29c0e1
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x29c0a9
jmp 0x29c0e1
movq 0x39fef0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x279f59(%rip), %rsi    # 0x516013
leaq 0x27a0fe(%rip), %rdx    # 0x5161bf
leaq 0x2e6ab1(%rip), %rcx    # 0x582b79
leaq 0x2e5f71(%rip), %r8     # 0x582040
movl $0xbcd, %r9d            # imm = 0xBCD
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29c0e3
cmpl $0x0, 0xc(%rsp)
jne 0x29c0f8
movq 0x10(%rsp), %rdi
callq 0x29c160
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x29c10d
movq 0x10(%rsp), %rdi
callq 0x29c240
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x29c122
movq 0x10(%rsp), %rdi
callq 0x29c2d0
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x29c137
movq 0x10(%rsp), %rdi
callq 0x29c8f0
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x29c14c
movq 0x10(%rsp), %rdi
callq 0x29d170
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_new_unit_test
static int gt_strgraph_new_unit_test(GtError *err)
{
  int had_err = 0;
  GtStrgraph *strgraph = NULL;

  gt_error_check(err);

  /* ordinary number of reads */
  strgraph = gt_strgraph_new(100UL);
  gt_ensure(strgraph != NULL);
  gt_strgraph_delete(strgraph);

  return had_err;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x0, 0xc(%rsp)
movq $0x0, (%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x29c1c9
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x29c191
jmp 0x29c1c9
movq 0x39fe08(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x279e71(%rip), %rsi    # 0x516013
leaq 0x27a016(%rip), %rdx    # 0x5161bf
leaq 0x2e74a4(%rip), %rcx    # 0x583654
leaq 0x2e5e89(%rip), %r8     # 0x582040
movl $0xb05, %r9d            # imm = 0xB05
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29c1cb
movl $0x64, %edi
callq 0x28fae0
movq %rax, (%rsp)
cmpl $0x0, 0xc(%rsp)
jne 0x29c21f
cmpq $0x0, (%rsp)
jne 0x29c21d
movq 0x10(%rsp), %rdi
leaq 0x293407(%rip), %rsi    # 0x52f5fa
leaq 0x2e5f0a(%rip), %rdx    # 0x582104
leaq 0x2e7453(%rip), %rcx    # 0x583654
leaq 0x2e5e38(%rip), %r8     # 0x582040
movl $0xb09, %r9d            # imm = 0xB09
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
jmp 0x29c21f
jmp 0x29c221
movq (%rsp), %rdi
callq 0x290110
movl 0xc(%rsp), %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_delete_unit_test
static int gt_strgraph_delete_unit_test(GT_UNUSED /* when compiled without
  assertions */ GtError *err)
{
  GtStrgraph *strgraph;

  gt_error_check(err);

  strgraph = NULL;
  gt_strgraph_delete(strgraph);

  strgraph = gt_strgraph_new(100UL);
  gt_strgraph_delete(strgraph);

  return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x29c299
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x29c261
jmp 0x29c299
movq 0x39fd38(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x279da1(%rip), %rsi    # 0x516013
leaq 0x279f46(%rip), %rdx    # 0x5161bf
leaq 0x2e73ee(%rip), %rcx    # 0x58366e
leaq 0x2e5db9(%rip), %r8     # 0x582040
movl $0xb14, %r9d            # imm = 0xB14
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29c29b
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x290110
movl $0x64, %edi
callq 0x28fae0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x290110
xorl %eax, %eax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_output_connecting_path
static void gt_strgraph_output_connecting_path(GtStrgraph *strgraph,
    GtArray *path, GtContigsWriter *cw)
{
  GtUword path_size, i;
  GtStrgraphVnumAndDepth *vd;
  path_size = gt_array_size(path);
  vd = gt_array_get(path, 0);
  gt_contigs_writer_start(cw,
      GT_STRGRAPH_V_MIRROR_SEQNUM(GT_STRGRAPH_NOFVERTICES(strgraph), vd->v));
  for (i = (GtUword)1UL; i < path_size; i++)
  {
    vd = gt_array_get(path, i);
    gt_contigs_writer_append(cw, GT_STRGRAPH_V_MIRROR_SEQNUM(
          GT_STRGRAPH_NOFVERTICES(strgraph), vd->v), (GtUword)vd->d);
  }
  gt_contigs_writer_write(cw);
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movq 0x48(%rsp), %rdi
callq 0x81370
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x80b60
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpq $0x1, %rax
jne 0x29e2e3
movq 0x28(%rsp), %rax
movq (%rax), %rax
shrq %rax
movq %rax, 0x18(%rsp)
jmp 0x29e306
movq 0x50(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
shrq %rcx
subq %rcx, %rax
subq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x2827f0
movq $0x1, 0x30(%rsp)
movq 0x30(%rsp), %rax
cmpq 0x38(%rsp), %rax
jae 0x29e3be
movq 0x48(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x80b60
movq %rax, 0x28(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
andq $0x1, %rax
cmpq $0x1, %rax
jne 0x29e370
movq 0x28(%rsp), %rax
movq (%rax), %rax
shrq %rax
movq %rax, 0x8(%rsp)
jmp 0x29e393
movq 0x50(%rsp), %rax
movq 0x80(%rax), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
shrq %rcx
subq %rcx, %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdx
callq 0x282450
movq 0x30(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x30(%rsp)
jmp 0x29e31e
movq 0x40(%rsp), %rdi
callq 0x281ed0
addq $0x58, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_dot_show_edge
static inline void gt_strgraph_dot_show_edge(GtFile *outfp,
    GtStrgraphVnum from, GtStrgraphVnum to, GtStrgraphLength length)
{
  gt_file_xprintf(outfp,
      " \""GT_WU"%c\" -> \""GT_WU"%c\" "
      "[label="FormatGtStrgraphLength"];\n",
      GT_STRGRAPH_V_READNUM(from),
      GT_STRGRAPH_V_CHAR(from),
      GT_STRGRAPH_V_READNUM(to),
      GT_STRGRAPH_V_CHAR(to),
      PRINTGtStrgraphLengthcast(length));
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rdx
shrq %rdx
movq 0x18(%rsp), %rsi
andq $0x1, %rsi
movl $0x42, %ecx
movl $0x45, %eax
cmpq $0x1, %rsi
cmovel %eax, %ecx
movq 0x10(%rsp), %r8
shrq %r8
movq 0x10(%rsp), %rsi
andq $0x1, %rsi
movl $0x42, %r9d
movl $0x45, %eax
cmpq $0x1, %rsi
cmovel %eax, %r9d
movq 0x8(%rsp), %rax
leaq 0x2e4e17(%rip), %rsi    # 0x583256
movq %rax, (%rsp)
movb $0x0, %al
callq 0xddca0
addq $0x28, %rsp
retq
nop