// File: /workspace/github_c_makefile_star2_O2/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %r9, %r15
movq %r8, %rbx
movq %rcx, %r14
pushq $0x1
popq %rax
movq %rax, (%rsp)
movq %rax, 0x8(%rsp)
andq $0x0, 0x10(%rsp)
movq %rdi, %r12
andq $0x0, 0x20(%rsp)
movb 0xc8(%rsp), %cl
andq $0x0, 0x38(%rsp)
movb 0xc0(%rsp), %bpl
andq $0x0, 0x70(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x60(%rsp)
movq %rdx, 0x40(%rsp)
movb %bpl, 0x80(%rsp)
movq %r14, 0x48(%rsp)
movq %r8, 0x50(%rsp)
movq %r9, 0x58(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x80(%rdi), %rax
movq %rax, 0x28(%rsp)
movq %rdi, 0x78(%rsp)
testb %bpl, %bpl
je 0x186256
pushq $0x8
popq %r13
movq %r15, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xb2fec
movq %r14, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xb2fec
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0xb2fec
movb 0xc8(%rsp), %cl
movzbl %cl, %r8d
leaq 0x1cdc(%rip), %rsi      # 0x187f3d
leaq 0x1e53(%rip), %rdx      # 0x1880bb
movq %rsp, %r13
movq %r12, %rdi
movq %r13, %rcx
callq 0x18798d
movq 0x8(%r13), %rax
cmpq 0x18(%r13), %rax
jb 0x186288
movq %rsp, %rdi
callq 0x188266
testb %bpl, %bpl
je 0x1862f5
leaq 0x20(%rsp), %r13
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xb2fec
pushq $0x8
popq %rbp
pushq $0x1
popq %r12
movq %r13, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0xb302c
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xb2fec
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movq %r14, %rcx
callq 0xb302c
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xb2fec
movq %r15, %rdi
movq %rbp, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0xb302c
movq (%rsp), %rsi
leaq 0x1ca813(%rip), %rdi    # 0x350b13
xorl %eax, %eax
callq 0x92a82
movq 0x10(%rsp), %rsi
leaq 0x1ca816(%rip), %rdi    # 0x350b29
xorl %eax, %eax
callq 0x92a82
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x186335
leaq 0x1c944a(%rip), %rsi    # 0x34f775
movl $0xa74, %edx            # imm = 0xA74
callq 0x936f9
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq