// File: /workspace/github_c_makefile_star2_O1/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 0x1d94d5
movq (%r14), %rdi
movq %rdx, %rsi
shrq %rsi
callq 0xeffd3
movq %rax, %r15
movq 0x70(%r14), %rax
testq %rax, %rax
je 0x1d98b3
cmpq %rbx, 0x8(%rax)
jbe 0x1d98b3
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98b3
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
movq %rax, 0x8(%rsp)
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d98b8
cmpq %rbx, 0x8(%rax)
jbe 0x1d98b8
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98b8
movq %r15, 0x18(%rsp)
movq 0x88(%r14), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
movq %rax, %r15
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d98bd
cmpq %rbx, 0x8(%rax)
jbe 0x1d98bd
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98bd
movq 0x88(%r14), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
testq %r13, %r13
je 0x1d98c2
addq 0x8(%rsp), %rax
cmpq %rax, 0x8(%r13)
jbe 0x1d98c2
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d98c2
movq (%r13), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2fcc2c
testq %r12, %r12
je 0x1d98c7
addq 0x8(%rsp), %r15
cmpq %r15, 0x8(%r12)
jbe 0x1d98c7
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d98c7
movq %rbp, 0x10(%rsp)
andq $-0x2, %rax
movq (%r12), %rdi
imulq %rdx, %r15
movq %r15, %rsi
movq %rax, %rcx
callq 0x2fcd13
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d98cc
cmpq %rbx, 0x8(%rax)
jbe 0x1d98cc
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98cc
movq 0x88(%r14), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
movq %rax, %r15
movq 0x80(%r14), %rdi
callq 0x2f9d41
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
notl %ebp
movq 0x90(%r14), %rdi
callq 0x2f9d41
leal 0x1(%rax), %ecx
shll %cl, %ebp
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d98d1
cmpq %rbx, 0x8(%rax)
jbe 0x1d98d1
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98d1
movq 0x88(%r14), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
testq %r12, %r12
je 0x1d98d6
addq 0x8(%rsp), %rax
cmpq %rax, 0x8(%r12)
jbe 0x1d98d6
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d98d6
movq (%r12), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2fcc2c
movq %rax, %r12
movq 0x90(%r14), %rdi
callq 0x2f9d41
leal 0x1(%rax), %ecx
movq 0x20(%rsp), %rax
shlq %cl, %rax
testq %r13, %r13
je 0x1d98db
addq 0x8(%rsp), %r15
cmpq %r15, 0x8(%r13)
jbe 0x1d98db
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d98db
movq %rax, %rcx
notl %ebp
movslq %ebp, %rax
andq %rax, %r12
addq %r12, %rcx
movq (%r13), %rdi
imulq %rdx, %r15
movq %r15, %rsi
callq 0x2fcd13
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d98e0
cmpq %rbx, 0x8(%rax)
jbe 0x1d98e0
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98e0
movq 0x88(%r14), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
movq %rax, %r15
movq 0x90(%r14), %rdi
callq 0x2f9d41
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
movq 0x60(%r14), %rax
testq %rax, %rax
je 0x1d98e5
cmpq %rbx, 0x8(%rax)
jbe 0x1d98e5
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d98e5
movq 0x88(%r14), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
testq %r13, %r13
je 0x1d98ea
addq 0x8(%rsp), %rax
cmpq %rax, 0x8(%r13)
jbe 0x1d98ea
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d98ea
movq (%r13), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2fcc2c
testq %r12, %r12
je 0x1d98ef
addq 0x8(%rsp), %r15
cmpq %r15, 0x8(%r12)
jbe 0x1d98ef
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d98ef
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 0x2fcd13
movq 0x70(%r14), %r14
testq %r14, %r14
je 0x1d98f4
cmpq %rbx, 0x8(%r14)
jbe 0x1d98f4
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d98f4
movq (%r14), %rdi
movq %rdx, %rsi
imulq %rbx, %rsi
callq 0x2fcc2c
cmpq %rbx, 0x8(%r14)
jbe 0x1d98f9
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d98f9
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 0x2fcd13
callq 0x6ea9a
callq 0x6ea61
callq 0x6ea28
callq 0x6e9ef
callq 0x6e9b6
callq 0x6e97d
callq 0x6e944
callq 0x6e90b
callq 0x6e8d2
callq 0x6e899
callq 0x6e860
callq 0x6e827
callq 0x6e7ee
callq 0x6e7b5
callq 0x6e77c