// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_redtrans
GtUword gt_strgraph_redtrans(GtStrgraph *strgraph, bool show_progressbar)
{
  GtStrgraphLength jlen, klen, longest;
  GtStrgraphVEdgenum j, k, l;
  GtStrgraphVnum i, jdest, kdest;
  GtUword counter;
  GtUint64 progress = 0;

  gt_assert(strgraph != NULL);
  gt_assert(strgraph->state == GT_STRGRAPH_SORTED_BY_L);

  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
    GT_STRGRAPH_V_SET_MARK(strgraph, i, GT_STRGRAPH_V_VACANT);

  if (show_progressbar)
    gt_progressbar_start(&progress,
        (GtUint64)GT_STRGRAPH_NOFVERTICES(strgraph));
  for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
  {
    if (GT_STRGRAPH_V_OUTDEG(strgraph, i) > 0)
    {
      for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
      {
        GT_STRGRAPH_V_SET_MARK(strgraph, GT_STRGRAPH_EDGE_DEST(strgraph, i, j),
            GT_STRGRAPH_V_INPLAY);
      }
      GT_STRGRAPH_FIND_LONGEST_EDGE(strgraph, i, longest);
      for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
      {
        jdest = GT_STRGRAPH_EDGE_DEST(strgraph, i, j);
        jlen = GT_STRGRAPH_EDGE_LEN(strgraph, i, j);
        for (k = 0; k < GT_STRGRAPH_V_NOFEDGES(strgraph, jdest) &&
            GT_STRGRAPH_EDGE_LEN(strgraph, jdest, k) + jlen <= longest; k++)
        {
          kdest = GT_STRGRAPH_EDGE_DEST(strgraph, jdest, k);
          klen = GT_STRGRAPH_EDGE_LEN(strgraph, jdest, k);
          if (GT_STRGRAPH_V_MARK(strgraph, kdest) == GT_STRGRAPH_V_INPLAY)
          {
            for (l = 0; l < GT_STRGRAPH_V_NOFEDGES(strgraph, i); l++)
            {
              if (GT_STRGRAPH_EDGE_DEST(strgraph, i, l) == kdest &&
                  GT_STRGRAPH_EDGE_LEN(strgraph, i, l) == jlen + klen)
              {
                GT_STRGRAPH_EDGE_SET_MARK(strgraph, i, l);
              }
            }
          }
        }
      }
      for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
      {
        GT_STRGRAPH_V_SET_MARK(strgraph, GT_STRGRAPH_EDGE_DEST(strgraph, i, j),
            GT_STRGRAPH_V_VACANT);
      }
    }
    if (show_progressbar)
      progress++;
  }
  if (show_progressbar)
    gt_progressbar_stop();

  counter = gt_strgraph_reduce_marked_edges(strgraph);
  gt_log_log("transitive counter: "GT_WU"", counter);
  /* trans spm should be found twice, check number is even */
  /*gt_assert((counter & 1) == 0);*/
#ifndef NDEBUG
  gt_strgraph_check_outdegs(strgraph);
#endif
  return (counter >> 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %esi, 0xc(%rsp)
movq $0x0, 0x40(%rsp)
testq %rdi, %rdi
je 0x1d23c8
movq %rdi, %rbx
cmpl $0x2, 0x10(%rdi)
jne 0x1d23cd
cmpq $0x0, 0x80(%rbx)
je 0x1d15a0
xorl %r14d, %r14d
movq 0x58(%rbx), %rax
testq %rax, %rax
je 0x1d23aa
cmpq %r14, 0x8(%rax)
jbe 0x1d23aa
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d23aa
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
xorl %ecx, %ecx
callq 0x2f388c
incq %r14
movq 0x80(%rbx), %rsi
cmpq %rsi, %r14
jb 0x1d155a
jmp 0x1d15a2
xorl %esi, %esi
cmpb $0x0, 0xc(%rsp)
je 0x1d15ba
leaq 0x40(%rsp), %rdi
callq 0x10ba28
movq 0x80(%rbx), %rsi
testq %rsi, %rsi
je 0x1d22ac
xorl %r13d, %r13d
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d23af
cmpq %r13, 0x8(%rax)
jbe 0x1d23af
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d23af
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %rax, %rax
je 0x1d2290
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2350
leaq 0x1(%r13), %rcx
xorl %r12d, %r12d
movq %rcx, (%rsp)
cmpq %rcx, 0x8(%rax)
jbe 0x1d2350
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2350
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rcx, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2355
cmpq %r13, 0x8(%rax)
jbe 0x1d2355
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2355
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
subq %rax, %r14
cmpq %r14, %r12
jae 0x1d1788
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2364
cmpq %r13, 0x8(%rax)
jbe 0x1d2364
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2364
movq 0x58(%rbx), %rbp
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d235a
addq %r12, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d235a
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d235a
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x80(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %r14d
notl %r14d
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %r14d
movslq %r14d, %r14
andq %r15, %r14
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r14
testq %rbp, %rbp
je 0x1d235f
cmpq %r14, 0x8(%rbp)
jbe 0x1d235f
movl 0x10(%rbp), %edx
cmpq $0x41, %rdx
jae 0x1d235f
movq (%rbp), %rdi
imulq %rdx, %r14
movl $0x1, %ecx
movq %r14, %rsi
callq 0x2f388c
incq %r12
movq 0x60(%rbx), %rax
testq %rax, %rax
movq (%rsp), %rcx
jne 0x1d161a
jmp 0x1d2350
movq 0x60(%rbx), %rax
testq %rax, %rax
movq (%rsp), %rcx
je 0x1d23b9
cmpq %rcx, 0x8(%rax)
jbe 0x1d23b9
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d23b9
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rcx, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d23b4
cmpq %r13, 0x8(%rax)
jbe 0x1d23b4
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d23b4
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x90(%rbx), %rax
movq %rax, 0x28(%rsp)
cmpq %r14, %r15
je 0x1d1954
notq %r14
addq %r15, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d23a5
cmpq %r13, 0x8(%rax)
jbe 0x1d23a5
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d23a5
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d23a0
addq %r14, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d23a0
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d23a0
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rax
andq %r15, %rax
shrq %rax
cmpq 0x90(%rbx), %rax
jne 0x1d18bd
addq $-0x1, %r14
jb 0x1d1813
jmp 0x1d1954
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d23c3
cmpq %r13, 0x8(%rax)
jbe 0x1d23c3
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d23c3
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d23be
addq %r14, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d23be
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d23be
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rax
andq %r14, %rax
shrq %rax
movq %rax, 0x28(%rsp)
movq 0x60(%rbx), %rax
testq %rax, %rax
movq (%rsp), %r14
je 0x1d236e
movq $0x0, 0x18(%rsp)
cmpq %r14, 0x8(%rax)
jbe 0x1d236e
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d236e
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2369
cmpq %r13, 0x8(%rax)
jbe 0x1d2369
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2369
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
subq %rax, %r14
cmpq %r14, 0x18(%rsp)
jae 0x1d2111
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d237d
cmpq %r13, 0x8(%rax)
jbe 0x1d237d
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d237d
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d2382
addq 0x18(%rsp), %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d2382
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d2382
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x80(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
notl %ebp
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %ebp
movslq %ebp, %r12
andq %r15, %r12
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r12
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2387
cmpq %r13, 0x8(%rax)
jbe 0x1d2387
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2387
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d238c
addq 0x18(%rsp), %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d238c
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d238c
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
movq 0x60(%rbx), %rax
testq %rax, %rax
movq (%rsp), %r14
je 0x1d2323
notl %edx
addl %edx, %edx
movslq %edx, %rcx
andq %rcx, %r15
shrq %r15
movq %r15, 0x30(%rsp)
leaq 0x1(%r12), %rbp
movq $0x0, 0x10(%rsp)
movq %r12, 0x38(%rsp)
movq %rbp, 0x48(%rsp)
cmpq %rbp, 0x8(%rax)
jbe 0x1d2323
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2323
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rbp, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2328
cmpq %r12, 0x8(%rax)
jbe 0x1d2328
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2328
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r12, %rsi
callq 0x2f37dc
subq %rax, %r15
cmpq %r15, 0x10(%rsp)
jae 0x1d20fa
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2332
cmpq %r12, 0x8(%rax)
jbe 0x1d2332
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2332
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r12, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d232d
addq 0x10(%rsp), %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d232d
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d232d
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rax
andq %r15, %rax
shrq %rax
addq 0x30(%rsp), %rax
cmpq 0x28(%rsp), %rax
movq (%rsp), %r14
ja 0x1d20fa
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d233c
cmpq %r12, 0x8(%rax)
jbe 0x1d233c
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d233c
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r12, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d2337
addq 0x10(%rsp), %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d2337
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d2337
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x80(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
notl %ebp
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %ebp
movslq %ebp, %r12
movq 0x38(%rsp), %r14
andq %r15, %r12
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r12
movq %r12, 0x20(%rsp)
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d234b
cmpq %r14, 0x8(%rax)
jbe 0x1d234b
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d234b
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d2346
addq 0x10(%rsp), %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d2346
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d2346
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %ebp
movq 0x58(%rbx), %rax
testq %rax, %rax
je 0x1d2341
movq 0x20(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1d2341
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2341
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x20(%rsp), %rsi
callq 0x2f37dc
cmpl $0x1, %eax
movq (%rsp), %r14
jne 0x1d20d9
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d22f6
notl %ebp
addl %ebp, %ebp
movslq %ebp, %rcx
andq %rcx, %r15
shrq %r15
addq 0x30(%rsp), %r15
movq %r15, 0x50(%rsp)
xorl %ebp, %ebp
cmpq %r14, 0x8(%rax)
jbe 0x1d22f6
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d22f6
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
movq %rax, %r12
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d22f1
cmpq %r13, 0x8(%rax)
jbe 0x1d22f1
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d22f1
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
subq %rax, %r12
cmpq %r12, %rbp
jae 0x1d20d9
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2300
cmpq %r13, 0x8(%rax)
jbe 0x1d2300
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2300
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d22fb
addq %rbp, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d22fb
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d22fb
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r12
movq 0x80(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %r15d
notl %r15d
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %r15d
movslq %r15d, %r15
andq %r12, %r15
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r15
cmpq 0x20(%rsp), %r15
jne 0x1d20c4
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2305
cmpq %r13, 0x8(%rax)
jbe 0x1d2305
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2305
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d230a
addq %rbp, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d230a
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d230a
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r12
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rax
andq %r12, %rax
shrq %rax
cmpq 0x50(%rsp), %rax
jne 0x1d20c4
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2314
cmpq %r13, 0x8(%rax)
jbe 0x1d2314
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2314
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
movq %rax, %r12
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d230f
cmpq %r13, 0x8(%rax)
jbe 0x1d230f
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d230f
movq %r13, %rcx
movq 0x88(%rbx), %r13
movq (%rax), %rdi
movq %rdx, %rsi
movq %rcx, %r14
imulq %rcx, %rsi
callq 0x2f37dc
testq %r13, %r13
je 0x1d2319
addq %rbp, %rax
cmpq %rax, 0x8(%r13)
jbe 0x1d2319
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d2319
movq (%r13), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d231e
addq %rbp, %r12
cmpq %r12, 0x8(%r15)
jbe 0x1d231e
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d231e
orq $0x1, %rax
movq (%r15), %rdi
imulq %rdx, %r12
movq %r12, %rsi
movq %rax, %rcx
callq 0x2f388c
movq %r14, %r13
movq (%rsp), %r14
incq %rbp
movq 0x60(%rbx), %rax
testq %rax, %rax
jne 0x1d1e0e
jmp 0x1d22f6
incq 0x10(%rsp)
movq 0x60(%rbx), %rax
testq %rax, %rax
movq 0x38(%rsp), %r12
movq 0x48(%rsp), %rbp
jne 0x1d1b4c
jmp 0x1d2323
incq 0x18(%rsp)
movq 0x60(%rbx), %rax
testq %rax, %rax
jne 0x1d196e
jmp 0x1d236e
movq 0x60(%rbx), %rax
testq %rax, %rax
movq (%rsp), %rcx
je 0x1d2373
xorl %r12d, %r12d
cmpq %rcx, 0x8(%rax)
jbe 0x1d2373
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2373
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rcx, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2378
cmpq %r13, 0x8(%rax)
jbe 0x1d2378
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2378
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
subq %rax, %r14
cmpq %r14, %r12
jae 0x1d2290
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d2396
cmpq %r13, 0x8(%rax)
jbe 0x1d2396
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d2396
movq 0x58(%rbx), %rbp
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r13, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d239b
addq %r12, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d239b
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d239b
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r15
movq 0x80(%rbx), %rdi
callq 0x2f09dd
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %r14d
notl %r14d
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shll %cl, %r14d
movslq %r14d, %r14
andq %r15, %r14
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r14
testq %rbp, %rbp
je 0x1d2391
cmpq %r14, 0x8(%rbp)
jbe 0x1d2391
movl 0x10(%rbp), %edx
cmpq $0x41, %rdx
jae 0x1d2391
movq (%rbp), %rdi
imulq %rdx, %r14
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x2f388c
incq %r12
movq 0x60(%rbx), %rax
testq %rax, %rax
movq (%rsp), %rcx
jne 0x1d2125
jmp 0x1d2373
cmpb $0x0, 0xc(%rsp)
je 0x1d229c
incq 0x40(%rsp)
incq %r13
cmpq 0x80(%rbx), %r13
jb 0x1d15c6
cmpb $0x0, 0xc(%rsp)
je 0x1d22b8
callq 0x10bf8a
movq %rbx, %rdi
callq 0x1d23d2
movq %rax, %r14
leaq 0x1dd5fc(%rip), %rdi    # 0x3af8c6
movq %rax, %rsi
xorl %eax, %eax
callq 0x103d72
movq %rbx, %rdi
callq 0x1d0e7b
shrq %r14
movq %r14, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x6e09c
callq 0x6e0d5
callq 0x6e02a
callq 0x6e063
callq 0x6dff1
callq 0x6dfb8
callq 0x6df46
callq 0x6df7f
callq 0x6df0d
callq 0x6ded4
callq 0x6e2d6
callq 0x6e29d
callq 0x6e22b
callq 0x6e264
callq 0x6e1b9
callq 0x6e1f2
callq 0x6e10e
callq 0x6e147
callq 0x6e180
callq 0x6e5bb
callq 0x6e582
callq 0x6e510
callq 0x6e4d7
callq 0x6e549
callq 0x6e3f3
callq 0x6e42c
callq 0x6de9b
callq 0x6de62
callq 0x6e3ba
callq 0x6e381
callq 0x6e348
callq 0x6e30f
callq 0x6ddb7
callq 0x6de29
callq 0x6ddf0
callq 0x6dd45
callq 0x6dd7e
callq 0x6dc9a
callq 0x6e5f4
callq 0x6e465
callq 0x6e49e
callq 0x6dcd3
callq 0x6dd0c
callq 0x6e62d
callq 0x6dc61