// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_show_contigpaths
static void gt_strgraph_show_contigpaths(GtStrgraph *strgraph,
    GtUword min_path_depth, FILE *p_file, FILE *cjl_i_file,
    FILE *cjl_o_file, FILE *ji_file, bool show_contigs_info,
    bool show_progressbar)
{
  GtStrgraphContigpathsData pdata;

  pdata.total_depth = 1UL;
  pdata.current_depth = 1UL;
  pdata.contignum = 0;
  pdata.jnum = 0;

  pdata.lastnode = 0;
  GT_INITARRAY(&pdata.contig, GtContigpathElem);
  pdata.p_file = p_file;
  pdata.show_contigs_info = show_contigs_info;
  pdata.cjl_i_file = cjl_i_file;
  pdata.cjl_o_file = cjl_o_file;
  pdata.ji_file = ji_file;
  pdata.min_depth = min_path_depth;
  pdata.nof_v = GT_STRGRAPH_NOFVERTICES(strgraph);
  pdata.strgraph = strgraph;

  /* leave space for header */
  if (show_contigs_info)
  {
    gt_xfseek(ji_file, (GtWord) sizeof (pdata.jnum), SEEK_SET);
    gt_xfseek(cjl_i_file, (GtWord) sizeof (pdata.contignum), SEEK_SET);
    gt_xfseek(cjl_o_file, (GtWord) sizeof (pdata.contignum), SEEK_SET);
  }

  gt_strgraph_traverse(strgraph, gt_strgraph_show_contigpath_vertex,
      gt_strgraph_show_contigpath_edge, &pdata, show_progressbar);

  /* show last contig path */
  if (pdata.current_depth >= pdata.min_depth)
    gt_strgraph_end_contigpath(&pdata);

  /* write header */
  if (show_contigs_info)
  {
    gt_xfseek(ji_file, 0, SEEK_SET);
    (void)gt_xfwrite(&pdata.jnum, sizeof (pdata.jnum), (size_t)1, ji_file);
    gt_xfseek(cjl_i_file, 0, SEEK_SET);
    (void)gt_xfwrite(&pdata.contignum, sizeof (pdata.contignum),
        (size_t)1, cjl_i_file);
    gt_xfseek(cjl_o_file, 0, SEEK_SET);
    (void)gt_xfwrite(&pdata.contignum, sizeof (pdata.contignum),
        (size_t)1, cjl_o_file);
  }

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

  GT_FREEARRAY(&pdata.contig, GtContigpathElem);
}

// Assembly:
subq $0xd8, %rsp
movq %rcx, (%rsp)
movq %rdx, %rax
movq (%rsp), %rdx
movq %rax, 0x8(%rsp)
movq %rsi, %rax
movq 0x8(%rsp), %rsi
movq %rax, 0x10(%rsp)
movq %rdi, %r10
movq 0x10(%rsp), %rdi
movb 0xe8(%rsp), %al
movb 0xe0(%rsp), %cl
movq %r10, 0xd0(%rsp)
movq %rdi, 0xc8(%rsp)
movq %rsi, 0xc0(%rsp)
movq %rdx, 0xb8(%rsp)
movq %r8, 0xb0(%rsp)
movq %r9, 0xa8(%rsp)
andb $0x1, %cl
movb %cl, 0xa7(%rsp)
andb $0x1, %al
movb %al, 0xa6(%rsp)
movq $0x1, 0x18(%rsp)
movq $0x1, 0x20(%rsp)
movq $0x0, 0x28(%rsp)
movq $0x0, 0x38(%rsp)
movq $0x0, 0x50(%rsp)
movq $0x0, 0x78(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x80(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x58(%rsp)
movb 0xa7(%rsp), %al
andb $0x1, %al
movb %al, 0x98(%rsp)
movq 0xb8(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0xb0(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0xa8(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0xc8(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0xd0(%rsp), %rax
movq 0x80(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x90(%rsp)
testb $0x1, 0xa7(%rsp)
je 0x29bf26
movq 0xa8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x126ca0
movq 0xb8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x126ca0
movq 0xb0(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x126ca0
movq 0xd0(%rsp), %rdi
movb 0xa6(%rsp), %al
leaq 0x3514(%rip), %rsi      # 0x29f450
leaq 0x355d(%rip), %rdx      # 0x29f4a0
leaq 0x18(%rsp), %rcx
andb $0x1, %al
movzbl %al, %r8d
callq 0x29e7e0
movq 0x20(%rsp), %rax
cmpq 0x30(%rsp), %rax
jb 0x29bf69
leaq 0x18(%rsp), %rdi
callq 0x29f820
testb $0x1, 0xa7(%rsp)
je 0x29c010
movq 0xa8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x126ca0
leaq 0x18(%rsp), %rdi
addq $0x20, %rdi
movq 0xa8(%rsp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x126d30
movq 0xb8(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x126ca0
leaq 0x18(%rsp), %rdi
addq $0x10, %rdi
movq 0xb8(%rsp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x126d30
movq 0xb0(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x126ca0
leaq 0x18(%rsp), %rdi
addq $0x10, %rdi
movq 0xb0(%rsp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x126d30
movq 0x18(%rsp), %rsi
leaq 0x2e7479(%rip), %rdi    # 0x583495
movb $0x0, %al
callq 0xe7740
movq 0x28(%rsp), %rsi
leaq 0x2e747c(%rip), %rdi    # 0x5834ab
movb $0x0, %al
callq 0xe7740
cmpq $0x0, 0x78(%rsp)
je 0x29c075
movq 0x78(%rsp), %rdi
leaq 0x2e5ff6(%rip), %rsi    # 0x582040
movl $0xa74, %edx            # imm = 0xA74
callq 0xe88c0
movq $0x0, 0x80(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x78(%rsp)
jmp 0x29c077
addq $0xd8, %rsp
retq
nop