// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/match/rdj-contigs-graph.c
// Function: gt_contigs_graph_output_paths
void gt_contigs_graph_output_paths(GtContigsGraph *cg, FILE *fp)
{
  GtContigpathElem cnum;
  uint64_t unum;
  GtContigpathElem elems[2];
  GtContigsGraphSeqUnit *unit;
  gt_assert(cg != NULL);
  gt_assert(fp != NULL);
  elems[0] = 0;
  gt_log_log("nof_simple_v: "GT_WU"", cg->nof_simple_v);
  gt_log_log("nof_v: "GT_WU"", cg->nof_v);
  for (cnum = 0; cnum < (uint32_t)cg->nof_simple_v; cnum++)
  {
    if (cg->v_m[cnum].deleted || cg->v_m[cnum].optional)
      continue;
    elems[1] = cnum;
    (void)gt_xfwrite(&elems, sizeof (*elems), (size_t)2, fp);
  }
  for (cnum = (uint32_t)cg->nof_simple_v; cnum < (uint32_t)cg->nof_v; cnum++)
  {
    if (cg->v_m[cnum].deleted || cg->v_m[cnum].optional)
      continue;
    for (unum = 0; unum < cg->v_cmp[cnum - cg->nof_simple_v].deg; unum++)
    {
      unit = cg->units + cg->v_cmp[cnum - cg->nof_simple_v].ptr + unum;
      gt_assert(cg->v_d[unit->seqnum].length >= unit->offset);
      elems[0] = (unum == 0)
        ? 0
        : (uint32_t) cg->v_d[unit->seqnum].length - unit->offset;
      elems[1] = unit->revcomp
        ? (uint32_t) GT_MULT2(cg->nof_simple_v) - 1 - unit->seqnum
        : (uint32_t) unit->seqnum;
      (void)gt_xfwrite(&elems, sizeof (*elems), (size_t)2, fp);
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x176554
movq %rsi, %rbx
testq %rsi, %rsi
je 0x176582
movq %rdi, %r14
movq %rsp, %rax
andl $0x0, (%rax)
movq 0x10(%rdi), %rsi
leaq 0x1d71ab(%rip), %rdi    # 0x34d5af
xorl %r15d, %r15d
xorl %eax, %eax
callq 0x92a82
movq (%r14), %rsi
leaq 0x1d71a9(%rip), %rdi    # 0x34d5c1
xorl %eax, %eax
callq 0x92a82
pushq $0x4
popq %r12
pushq $0x2
popq %r13
movq 0x10(%r14), %rax
movl %eax, %ebp
cmpq %rbp, %r15
jae 0x176460
movq 0x38(%r14), %rax
movb (%rax,%r15), %al
movl %eax, %ecx
shrb %cl
orb %al, %cl
testb $0x1, %cl
jne 0x17645b
movl %r15d, 0x4(%rsp)
movq %rsp, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rbx, %rcx
callq 0xb302c
incq %r15
jmp 0x176427
pushq $0x2
popq %r13
movl (%r14), %ecx
cmpq %rcx, %rbp
jae 0x17650d
movq 0x38(%r14), %rcx
movb (%rcx,%rbp), %cl
movl %ecx, %edx
shrb %dl
orb %cl, %dl
testb $0x1, %dl
je 0x176487
incq %rbp
jmp 0x176464
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0x40(%r14), %rcx
movq %rbp, %rdx
subq %rax, %rdx
movq (%rcx,%rdx,8), %rcx
movzwl %cx, %edx
cmpq %rdx, %r12
jae 0x176482
shrq $0xc, %rcx
andq $-0x10, %rcx
addq 0x58(%r14), %rcx
movq 0x30(%r14), %rdx
movq (%r15,%rcx), %rdi
movq 0x8(%r15,%rcx), %rsi
shlq $0x5, %rdi
movq 0x8(%rdx,%rdi), %rdx
cmpq %rsi, %rdx
jb 0x17651c
subl %esi, %edx
testq %r15, %r15
movl $0x0, %esi
cmovel %esi, %edx
movl %edx, (%rsp)
movq (%rcx,%r15), %rcx
movl %ecx, %edx
notl %edx
leal (%rdx,%rax,2), %eax
testq %rcx, %rcx
cmovnsl %ecx, %eax
movl %eax, 0x4(%rsp)
movq %rsp, %rdi
pushq $0x4
popq %rsi
movq %r13, %rdx
movq %rbx, %rcx
callq 0xb302c
incq %r12
movq 0x10(%r14), %rax
addq $0x10, %r15
jmp 0x17648d
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x2c1a45(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x16eae6(%rip), %rsi    # 0x2e5013
leaq 0x1d7098(%rip), %rdx    # 0x34d5cc
leaq 0x1d7038(%rip), %rcx    # 0x34d573
leaq 0x1d704f(%rip), %r8     # 0x34d591
movl $0xdb, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x2c1a0d(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x16eaae(%rip), %rsi    # 0x2e5013
leaq 0x1d6ffc(%rip), %rdx    # 0x34d568
leaq 0x1d7000(%rip), %rcx    # 0x34d573
leaq 0x1d7017(%rip), %r8     # 0x34d591
movl $0xc8, %r9d
jmp 0x176548
movq 0x2c19df(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x16ea80(%rip), %rsi    # 0x2e5013
leaq 0x1a2d16(%rip), %rdx    # 0x3192b0
leaq 0x1d6fd2(%rip), %rcx    # 0x34d573
leaq 0x1d6fe9(%rip), %r8     # 0x34d591
movl $0xc9, %r9d
jmp 0x176548