// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_traverse_from_vertex
static inline void gt_strgraph_traverse_from_vertex(GtStrgraph *strgraph,
    GtStrgraphVnum i, void(*process_start) (GtStrgraphVnum, void*),
    void(*process_edge) (GtStrgraphVnum, GtStrgraphLength, void*), void *data)
{
  GtStrgraphVEdgenum j;
  gt_assert(GT_STRGRAPH_V_OUTDEG(strgraph, i) > 0);
  for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
  {
    if (GT_STRGRAPH_EDGE_IS_REDUCED(strgraph, i, j))
      continue;
    if (GT_STRGRAPH_V_MARK(strgraph, GT_STRGRAPH_EDGE_DEST(strgraph, i, j))
        == GT_STRGRAPH_V_ELIMINATED)
      continue;
    if (process_start != NULL)
      process_start(i, data);
    gt_strgraph_traverse_simple_path(strgraph, i, j, process_edge, data);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %r8, 0x18(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x70(%rdi), %rax
testq %rax, %rax
je 0x1da795
movq %rcx, %r14
movq 0x8(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1da795
movq %rdx, %rbp
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da795
movq %rdi, %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x8(%rsp), %rsi
callq 0x2f37dc
testq %rax, %rax
je 0x1da79a
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da722
movq 0x8(%rsp), %rcx
leaq 0x1(%rcx), %r15
xorl %r12d, %r12d
movq %r14, 0x20(%rsp)
movq %rbp, 0x28(%rsp)
movq %r15, 0x30(%rsp)
cmpq %r15, 0x8(%rax)
jbe 0x1da722
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da722
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
movq %rax, %rbx
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da763
movq 0x8(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1da763
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da763
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x8(%rsp), %rsi
callq 0x2f37dc
subq %rax, %rbx
cmpq %rbx, %r12
jae 0x1da727
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da768
movq 0x8(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1da768
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da768
movq 0x88(%r13), %rbx
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x8(%rsp), %rsi
callq 0x2f37dc
testq %rbx, %rbx
je 0x1da76d
addq %r12, %rax
cmpq %rax, 0x8(%rbx)
jbe 0x1da76d
movl 0x10(%rbx), %edx
cmpq $0x41, %rdx
jae 0x1da76d
movq %r12, 0x10(%rsp)
movq (%rbx), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %rbx
movq 0x90(%r13), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rax
andq %rbx, %rax
shrq %rax
cmpq 0x90(%r13), %rax
je 0x1da708
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da772
movq 0x8(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1da772
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da772
movq 0x58(%r13), %r12
movq 0x88(%r13), %rbx
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x8(%rsp), %rsi
callq 0x2f37dc
testq %rbx, %rbx
je 0x1da77c
addq 0x10(%rsp), %rax
cmpq %rax, 0x8(%rbx)
jbe 0x1da77c
movl 0x10(%rbx), %edx
cmpq $0x41, %rdx
jae 0x1da77c
movq (%rbx), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x80(%r13), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebx
notl %ebx
movq 0x90(%r13), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %ebx
movslq %ebx, %rbx
andq %r15, %rbx
movq 0x90(%r13), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %rbx
testq %r12, %r12
je 0x1da777
cmpq %rbx, 0x8(%r12)
jbe 0x1da777
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1da777
movq (%r12), %rdi
imulq %rdx, %rbx
movq %rbx, %rsi
callq 0x2f37dc
cmpl $0x2, %eax
je 0x1da708
testq %rbp, %rbp
je 0x1da2c7
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq *%rbp
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da781
movq 0x8(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1da781
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da781
movq 0x88(%r13), %rbx
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x8(%rsp), %rsi
callq 0x2f37dc
testq %rbx, %rbx
movq 0x10(%rsp), %rcx
je 0x1da786
addq %rcx, %rax
cmpq %rax, 0x8(%rbx)
jbe 0x1da786
movl 0x10(%rbx), %edx
cmpq $0x41, %rdx
jae 0x1da786
movq (%rbx), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %rbp
movq 0x80(%r13), %rdi
callq 0x2f09dd
movl %eax, %r15d
movq 0x90(%r13), %rdi
callq 0x2f09dd
movl %eax, %ebx
movq 0x90(%r13), %rdi
callq 0x2f09dd
movq 0x70(%r13), %rsi
testq %rsi, %rsi
je 0x1da736
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %r15d, %ecx
shll %cl, %edx
notl %edx
incb %bl
movl %ebx, %ecx
shll %cl, %edx
movslq %edx, %rcx
andq %rcx, %rbp
incb %al
movl %eax, %ecx
shrq %cl, %rbp
movq 0x10(%rsp), %r15
movq 0x8(%rsp), %r12
cmpq %rbp, 0x8(%rsi)
jbe 0x1da736
movl 0x10(%rsi), %edx
cmpq $0x41, %rdx
jae 0x1da736
movq %rbp, %rbx
movq (%rsi), %rdi
movq %rdx, %rsi
imulq %rbp, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
jne 0x1da658
movq 0x70(%r13), %rax
testq %rax, %rax
je 0x1da73b
movl %ebx, %ebp
andl $0x1, %ebp
negq %rbp
orq $0x1, %rbp
addq %rbx, %rbp
cmpq %rbp, 0x8(%rax)
jbe 0x1da73b
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da73b
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbp, %rsi
callq 0x2f37dc
cmpq 0x8(%rsp), %rbx
je 0x1da658
cmpq $0x1, %rax
jne 0x1da658
movq 0x58(%r13), %rax
testq %rax, %rax
je 0x1da740
cmpq %rbx, 0x8(%rax)
jbe 0x1da740
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da740
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
cmpl $0x2, %eax
je 0x1da658
testq %r14, %r14
je 0x1da512
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da759
cmpq %r12, 0x8(%rax)
jbe 0x1da759
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da759
movq 0x88(%r13), %r14
movq (%rax), %rdi
imulq %rdx, %r12
movq %r12, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1da75e
addq %r15, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1da75e
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1da75e
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%r13), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rsi
andq %r15, %rsi
shrq %rsi
movq %rbx, %rdi
movq 0x18(%rsp), %rdx
movq 0x20(%rsp), %r14
callq *%r14
movq 0x58(%r13), %rax
testq %rax, %rax
je 0x1da745
cmpq %rbx, 0x8(%rax)
jbe 0x1da745
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da745
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
movl $0x2, %ecx
callq 0x2f388c
movq 0x58(%r13), %rax
testq %rax, %rax
je 0x1da74f
cmpq %rbp, 0x8(%rax)
jbe 0x1da74f
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da74f
movq (%rax), %rdi
imulq %rdx, %rbp
movl $0x2, %ecx
movq %rbp, %rsi
callq 0x2f388c
movq %r13, %rdi
movq %rbx, %rsi
callq 0x1d3843
movq %rax, %r15
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da74a
cmpq %rbx, 0x8(%rax)
jbe 0x1da74a
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da74a
movq 0x88(%r13), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1da754
addq %r15, %rax
cmpq %rax, 0x8(%r12)
jbe 0x1da754
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1da754
movq (%r12), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r12
movq 0x80(%r13), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
notl %ebp
movq 0x90(%r13), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %ebp
movslq %ebp, %rbp
andq %r12, %rbp
movq 0x90(%r13), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %rbp
movq 0x70(%r13), %rsi
movq %rbx, %r12
testq %rsi, %rsi
jne 0x1da3a1
jmp 0x1da736
testq %r14, %r14
movq 0x28(%rsp), %rbp
je 0x1da708
movq 0x60(%r13), %rax
testq %rax, %rax
je 0x1da790
cmpq %r12, 0x8(%rax)
jbe 0x1da790
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1da790
movq 0x88(%r13), %r14
movq (%rax), %rdi
imulq %rdx, %r12
movq %r12, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1da78b
addq %r15, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1da78b
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1da78b
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%r13), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rsi
andq %r15, %rsi
shrq %rsi
movq %rbx, %rdi
movq 0x18(%rsp), %rdx
movq 0x20(%rsp), %r14
callq *%r14
movq 0x10(%rsp), %r12
incq %r12
movq 0x60(%r13), %rax
testq %rax, %rax
movq 0x30(%rsp), %r15
jne 0x1da0a5
callq 0x72a39
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x72838
callq 0x727ff
callq 0x72754
callq 0x7271b
callq 0x726a9
callq 0x726e2
callq 0x72670
callq 0x72637
callq 0x725fe
callq 0x72a00
callq 0x729c7
callq 0x7298e
callq 0x72955
callq 0x728e3
callq 0x7291c
callq 0x728aa
callq 0x72871
callq 0x7278d
callq 0x727c6
callq 0x72aab
callq 0x72a72