// File: /workspace/github_c_makefile_star2_O3/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
movq %rdi, %r12
movb 0xc8(%rsp), %r13b
movb 0xc0(%rsp), %bpl
movl $0x1, %eax
movq %rax, (%rsp)
movq %rax, 0x8(%rsp)
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x20(%rsp)
movq %rax, 0x38(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x60(%rsp)
movq %rax, 0x70(%rsp)
movq %rdx, 0x40(%rsp)
movb %bpl, 0x80(%rsp)
movq %rcx, 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 0x1d80cb
movl $0x8, %esi
movq %r15, %rdi
xorl %edx, %edx
callq 0x11f87a
movl $0x8, %esi
movq %r14, %rdi
xorl %edx, %edx
callq 0x11f87a
movl $0x8, %esi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x11f87a
movzbl %r13b, %r8d
leaq 0x26c9(%rip), %rsi      # 0x1da79f
leaq 0x27bd(%rip), %rdx      # 0x1da89a
movq %rsp, %r13
movq %r12, %rdi
movq %r13, %rcx
callq 0x1d9be8
movq 0x8(%r13), %rax
cmpq 0x18(%r13), %rax
jb 0x1d80fd
movq %rsp, %rdi
callq 0x1da98c
testb %bpl, %bpl
je 0x1d816f
leaq 0x10(%rsp), %r12
leaq 0x20(%rsp), %r13
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x11f87a
movl $0x8, %esi
movl $0x1, %edx
movq %r13, %rdi
movq %r15, %rcx
callq 0x11f89c
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x11f87a
movl $0x8, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %r14, %rcx
callq 0x11f89c
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x11f87a
movl $0x8, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %rbx, %rcx
callq 0x11f89c
movq (%rsp), %rsi
leaq 0x1d8551(%rip), %rdi    # 0x3b06cb
xorl %eax, %eax
callq 0x103d72
movq 0x10(%rsp), %rsi
leaq 0x1d8554(%rip), %rdi    # 0x3b06e1
xorl %eax, %eax
callq 0x103d72
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x1d81af
leaq 0x1d7188(%rip), %rsi    # 0x3af32d
movl $0xa74, %edx            # imm = 0xA74
callq 0x1045eb
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq