// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_add_edge
static inline void gt_strgraph_add_edge(GtStrgraph *strgraph,
    GtStrgraphVnum from, GtStrgraphVnum to, GtStrgraphLength spmlen)
{
  GtStrgraphLength edgelen;
  GtStrgraphVEdgenum next_free_edge;

  gt_assert(strgraph != NULL);

  edgelen = GT_STRGRAPH_SEQLEN(strgraph, GT_STRGRAPH_V_READNUM(to)) - spmlen;

  GT_STRGRAPH_CHECK_LEN(from, to, edgelen);
  next_free_edge = GT_STRGRAPH_V_OUTDEG(strgraph, from);
  GT_STRGRAPH_EDGE_INIT(strgraph, from, next_free_edge);
  GT_STRGRAPH_EDGE_SET_DEST(strgraph, from, next_free_edge, to);
  GT_STRGRAPH_EDGE_SET_LEN(strgraph, from, next_free_edge, edgelen);
  GT_STRGRAPH_V_INC_OUTDEG(strgraph, from);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rcx, %rbp
movq %rsi, %rbx
movq %rdi, %r14
movq 0x8(%rdi), %r15
testq %r15, %r15
movq %rdx, 0x20(%rsp)
jne 0x1cfd68
movq (%r14), %rdi
movq %rdx, %rsi
shrq %rsi
callq 0xeb9d2
movq %rax, %r15
movq 0x70(%r14), %rax
testq %rax, %rax
je 0x1d0146
cmpq %rbx, 0x8(%rax)
jbe 0x1d0146
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d0146
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
movq %rax, 0x8(%rsp)
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d014b
cmpq %rbx, 0x8(%rax)
jbe 0x1d014b
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d014b
movq %r15, 0x18(%rsp)
movq 0x88(%r14), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d0150
cmpq %rbx, 0x8(%rax)
jbe 0x1d0150
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d0150
movq 0x88(%r14), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
testq %r13, %r13
je 0x1d0155
addq 0x8(%rsp), %rax
cmpq %rax, 0x8(%r13)
jbe 0x1d0155
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d0155
movq (%r13), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1d015a
addq 0x8(%rsp), %r15
cmpq %r15, 0x8(%r12)
jbe 0x1d015a
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d015a
movq %rbp, 0x10(%rsp)
andq $-0x2, %rax
movq (%r12), %rdi
imulq %rdx, %r15
movq %r15, %rsi
movq %rax, %rcx
callq 0x2f388c
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d015f
cmpq %rbx, 0x8(%rax)
jbe 0x1d015f
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d015f
movq 0x88(%r14), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x80(%r14), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
notl %ebp
movq 0x90(%r14), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %ebp
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d0164
cmpq %rbx, 0x8(%rax)
jbe 0x1d0164
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d0164
movq 0x88(%r14), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1d0169
addq 0x8(%rsp), %rax
cmpq %rax, 0x8(%r12)
jbe 0x1d0169
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d0169
movq (%r12), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r12
movq 0x90(%r14), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
movq 0x20(%rsp), %rax
shlq %cl, %rax
testq %r13, %r13
je 0x1d016e
addq 0x8(%rsp), %r15
cmpq %r15, 0x8(%r13)
jbe 0x1d016e
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d016e
movq %rax, %rcx
notl %ebp
movslq %ebp, %rax
andq %rax, %r12
addq %r12, %rcx
movq (%r13), %rdi
imulq %rdx, %r15
movq %r15, %rsi
callq 0x2f388c
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d0173
cmpq %rbx, 0x8(%rax)
jbe 0x1d0173
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d0173
movq 0x88(%r14), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%r14), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d0178
cmpq %rbx, 0x8(%rax)
jbe 0x1d0178
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d0178
movq 0x88(%r14), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
testq %r13, %r13
je 0x1d017d
addq 0x8(%rsp), %rax
cmpq %rax, 0x8(%r13)
jbe 0x1d017d
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d017d
movq (%r13), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1d0182
addq 0x8(%rsp), %r15
cmpq %r15, 0x8(%r12)
jbe 0x1d0182
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d0182
movq 0x18(%rsp), %rsi
subq 0x10(%rsp), %rsi
notl %ebp
addl %ebp, %ebp
notl %ebp
movslq %ebp, %rcx
andq %rcx, %rax
leaq (%rax,%rsi,2), %rcx
movq (%r12), %rdi
imulq %rdx, %r15
movq %r15, %rsi
callq 0x2f388c
movq 0x70(%r14), %r14
testq %r14, %r14
je 0x1d0187
cmpq %rbx, 0x8(%r14)
jbe 0x1d0187
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d0187
movq (%r14), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2f37dc
cmpq %rbx, 0x8(%r14)
jbe 0x1d018c
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d018c
incq %rax
movq (%r14), %rdi
imulq %rdx, %rbx
movq %rbx, %rsi
movq %rax, %rcx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2f388c
callq 0x6ce93
callq 0x6ce5a
callq 0x6ce21
callq 0x6cde8
callq 0x6cdaf
callq 0x6cd76
callq 0x6cd3d
callq 0x6cd04
callq 0x6cccb
callq 0x6cc92
callq 0x6cc59
callq 0x6cc20
callq 0x6cbe7
callq 0x6cbae
callq 0x6cb75