// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_redpbubbles
GtUword gt_strgraph_redpbubbles(GtStrgraph *strgraph,
    GtUword maxwidth, const GtUword maxdiff,
    bool show_progressbar)
{
  GtStrgraphVnum i, from, to;
  GtStrgraphVEdgenum j, from_to, p, nofpaths;
  GtStrgraphLength len;
  GtUword depth, width, counter = 0, nofpbubbles = 0;
  GtUint64 progress = 0;
  GtStrgraphPathInfo *info, *prev;

  gt_assert(strgraph != NULL);

  if (maxwidth == 0)
    maxwidth = (GtUword)(gt_strgraph_longest_read(strgraph) << 2) -
        (strgraph->minmatchlen << 1) - 1;
  gt_log_log("redpbubbles(maxwidth="GT_WU", maxdiff="GT_WU")", maxwidth,
             maxdiff);

  /* allocate info and set all marks to VACANT */
  {
    GtUword maxoutdeg = 0;
    for (i = 0; i < GT_STRGRAPH_NOFVERTICES(strgraph); i++)
    {
      GT_STRGRAPH_V_SET_MARK(strgraph, i, GT_STRGRAPH_V_VACANT);
      if (GT_STRGRAPH_V_OUTDEG(strgraph, i) > (GtStrgraphVEdgenum)maxoutdeg)
        maxoutdeg = (GtUword)GT_STRGRAPH_V_OUTDEG(strgraph, i);
    }
    gt_log_log("maxoutdeg = "GT_WU"", maxoutdeg);
    info = gt_malloc(sizeof (GtStrgraphPathInfo) * maxoutdeg);
  }

  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)
    {
      if (GT_STRGRAPH_V_IS_INTERNAL(strgraph, i))
        continue;
      nofpaths = 0;
      for (j = 0; j < GT_STRGRAPH_V_NOFEDGES(strgraph, i); j++)
      {
        if (!GT_STRGRAPH_EDGE_IS_REDUCED(strgraph, i, j))
        {
          to = GT_STRGRAPH_EDGE_DEST(strgraph, i, j);
          depth = 1UL;
          len = GT_STRGRAPH_EDGE_LEN(strgraph, i, j);
          gt_assert(sizeof (GtUword) >= sizeof (GtStrgraphLength) ||
              len <= (GtStrgraphLength)ULONG_MAX);
          width = (GtUword)len;
          while (GT_STRGRAPH_V_IS_INTERNAL(strgraph, to) && width <= maxwidth)
          {
            depth++;
            from = to;
            from_to = gt_strgraph_find_only_edge(strgraph, from);
            len = GT_STRGRAPH_EDGE_LEN(strgraph, from, from_to);
            gt_assert((sizeof (GtUword) >= sizeof (GtStrgraphLength) &&
                width <= ULONG_MAX - (GtUword)len) ||
                (GtStrgraphLength)width + len < (GtStrgraphLength)ULONG_MAX);
            width += (GtUword)len;
            to = GT_STRGRAPH_EDGE_DEST(strgraph, from, from_to);
          }
          if (width <= maxwidth && depth > 1UL)
          {
            info[nofpaths].edgenum = j;
            info[nofpaths].dest = to;
            info[nofpaths].depth = depth;
            info[nofpaths].width = width;
            nofpaths++;
          }
        }
      }
      if (nofpaths > 0)
      {
        qsort(info, (size_t)nofpaths, sizeof (*info),
            gt_strgraph_path_info_compare);
        prev = info;
        for (p = (GtStrgraphVEdgenum)1; p < nofpaths; p++)
        {
          if (info[p].dest == prev->dest &&
              (info[p].width - prev->width <= maxdiff))
          {
            nofpbubbles++;
            if (info[p].depth <= prev->depth)
            {
              from_to = info[p].edgenum;
            }
            else
            {
              from_to = prev->edgenum;
              prev = info + p;
            }
            GT_STRGRAPH_EDGE_SET_MARK(strgraph, i, from_to);
            to = GT_STRGRAPH_EDGE_DEST(strgraph, i, from_to);
            while (GT_STRGRAPH_V_IS_INTERNAL(strgraph, to))
            {
              from = to;
              from_to = gt_strgraph_find_only_edge(strgraph, from);
              GT_STRGRAPH_EDGE_SET_MARK(strgraph, from, from_to);
              to = GT_STRGRAPH_EDGE_DEST(strgraph, from, from_to);
            }
          }
          else
          {
            prev = info + p;
          }
        }
      }
    }
    if (show_progressbar)
      progress++;
  }
  counter = gt_strgraph_reduce_marked_edges(strgraph);

  if (show_progressbar)
    gt_progressbar_stop();
  gt_free(info);
  gt_log_log("p-bubbles = "GT_WU"", nofpbubbles);
  gt_log_log("removed p-bubble edges = "GT_WU"", counter);
#ifndef NDEBUG
  gt_strgraph_check_outdegs(strgraph);
#endif
  return counter;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %ecx, 0x1c(%rsp)
movq %rdx, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
testq %rdi, %rdi
je 0x1d4714
movq %rdi, %rbx
testq %rsi, %rsi
jne 0x1d3a24
movq %rbx, %rdi
callq 0x1ce067
movq 0x30(%rbx), %rcx
addq %rcx, %rcx
notq %rcx
leaq (%rcx,%rax,4), %rsi
leaq 0x1dbf44(%rip), %rdi    # 0x3af96f
xorl %r14d, %r14d
movq %rsi, 0x48(%rsp)
movq 0x40(%rsp), %rdx
xorl %eax, %eax
callq 0x103d72
cmpq $0x0, 0x80(%rbx)
je 0x1d3b06
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0x58(%rbx), %rax
testq %rax, %rax
je 0x1d46f6
cmpq %r15, 0x8(%rax)
jbe 0x1d46f6
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46f6
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
xorl %ecx, %ecx
callq 0x2f388c
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d46fb
cmpq %r15, 0x8(%rax)
jbe 0x1d46fb
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46fb
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
cmpq %r14, %rax
jbe 0x1d3af6
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d470a
cmpq %r15, 0x8(%rax)
jbe 0x1d470a
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d470a
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
movq %rax, %r14
incq %r15
cmpq 0x80(%rbx), %r15
jb 0x1d3a53
leaq 0x1dbe89(%rip), %rdi    # 0x3af996
movq %r14, %rsi
xorl %eax, %eax
callq 0x103d72
shlq $0x5, %r14
leaq 0x1db80b(%rip), %rsi    # 0x3af32d
movq %r14, %rdi
movl $0x4ec, %edx            # imm = 0x4EC
callq 0x104226
movq %rax, 0x28(%rsp)
cmpb $0x0, 0x1c(%rsp)
je 0x1d3b4c
movq 0x80(%rbx), %rsi
leaq 0x50(%rsp), %rdi
callq 0x10ba28
cmpq $0x0, 0x80(%rbx)
je 0x1d45f1
movq $0x0, 0x38(%rsp)
xorl %r15d, %r15d
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d4700
cmpq %r15, 0x8(%rax)
jbe 0x1d4700
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d4700
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
testq %rax, %rax
je 0x1d45d3
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d4705
cmpq %r15, 0x8(%rax)
jbe 0x1d4705
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d4705
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
jne 0x1d3c25
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d470f
movl %r15d, %esi
andl $0x1, %esi
negq %rsi
orq $0x1, %rsi
addq %r15, %rsi
cmpq %rsi, 0x8(%rax)
jbe 0x1d470f
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d470f
movq (%rax), %rdi
imulq %rdx, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
je 0x1d45df
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46b5
leaq 0x1(%r15), %r12
movq $0x0, 0x10(%rsp)
xorl %r13d, %r13d
movq %r15, 0x8(%rsp)
movq %r12, 0x30(%rsp)
cmpq %r12, 0x8(%rax)
jbe 0x1d46b5
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46b5
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r12, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46b0
cmpq %r15, 0x8(%rax)
jbe 0x1d46b0
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46b0
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
subq %rax, %r14
cmpq %r14, %r13
jae 0x1d4130
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46bf
cmpq %r15, 0x8(%rax)
jbe 0x1d46bf
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46bf
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d46ba
addq %r13, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d46ba
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d46ba
movq (%r14), %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
cmpq 0x90(%rbx), %rax
je 0x1d411b
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46c9
cmpq %r15, 0x8(%rax)
jbe 0x1d46c9
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46c9
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d46ce
addq %r13, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d46ce
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d46ce
movq %r13, 0x20(%rsp)
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r13
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, %r14
andq %r13, %r14
movq 0x8(%rsp), %r12
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46c4
cmpq %r12, 0x8(%rax)
jbe 0x1d46c4
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46c4
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r12, %rsi
callq 0x2f37dc
testq %r15, %r15
movq 0x20(%rsp), %rcx
je 0x1d46d3
addq %rcx, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d46d3
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d46d3
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r13
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movq 0x70(%rbx), %rsi
testq %rsi, %rsi
je 0x1d4665
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %eax, %ecx
shll %cl, %edx
notl %edx
addl %edx, %edx
movslq %edx, %rax
andq %rax, %r13
shrq %r13
movl $0x1, %r15d
cmpq %r14, 0x8(%rsi)
jbe 0x1d4665
movl 0x10(%rsi), %edx
cmpq $0x41, %rdx
jae 0x1d4665
movq (%rsi), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
jne 0x1d40b6
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d466a
movl %r14d, %esi
andl $0x1, %esi
negq %rsi
orq $0x1, %rsi
addq %r14, %rsi
cmpq %rsi, 0x8(%rax)
jbe 0x1d466a
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d466a
movq (%rax), %rdi
imulq %rdx, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
jne 0x1d40b6
cmpq 0x48(%rsp), %r13
ja 0x1d40b6
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1d3843
movq %rax, %rbp
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d4679
cmpq %r14, 0x8(%rax)
jbe 0x1d4679
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d4679
movq 0x88(%rbx), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1d4674
addq %rbp, %rax
cmpq %rax, 0x8(%r12)
jbe 0x1d4674
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d4674
movq (%r12), %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
addq %rax, %r13
jae 0x1d3fee
cmpq $-0x1, %r13
je 0x1d4683
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d466f
cmpq %r14, 0x8(%rax)
jbe 0x1d466f
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d466f
movq 0x88(%rbx), %r12
movq (%rax), %rdi
imulq %rdx, %r14
movq %r14, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1d467e
addq %rbp, %rax
cmpq %rax, 0x8(%r12)
jbe 0x1d467e
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d467e
movq (%r12), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r12
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, %r14
andq %r12, %r14
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r14
movq 0x70(%rbx), %rsi
incq %r15
testq %rsi, %rsi
jne 0x1d3eb7
jmp 0x1d4665
cmpq 0x48(%rsp), %r13
setbe %al
cmpq $0x2, %r15
setae %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x1d410c
movq 0x10(%rsp), %rdx
movq %rdx, %rax
shlq $0x5, %rax
movq 0x28(%rsp), %rcx
movq 0x20(%rsp), %rsi
movq %rsi, (%rcx,%rax)
movq %r14, 0x8(%rcx,%rax)
movq %r15, 0x10(%rcx,%rax)
movq %r13, 0x18(%rcx,%rax)
movq %rsi, %r13
incq %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rsp), %r15
movq 0x30(%rsp), %r12
jmp 0x1d411b
movq 0x8(%rsp), %r15
movq 0x30(%rsp), %r12
movq 0x20(%rsp), %r13
incq %r13
movq 0x60(%rbx), %rax
testq %rax, %rax
jne 0x1d3c4c
jmp 0x1d46b5
cmpq $0x0, 0x10(%rsp)
je 0x1d45d3
movl $0x20, %edx
movq 0x28(%rsp), %r14
movq %r14, %rdi
movq 0x10(%rsp), %rsi
leaq 0x5c4(%rip), %rcx       # 0x1d4719
callq 0x17f60
movq 0x10(%rsp), %rdx
cmpq $0x1, %rdx
je 0x1d45d3
movl $0x1, %esi
movq %r14, %rax
movq %rsi, %rcx
shlq $0x5, %rcx
leaq (%r14,%rcx), %rdi
movq 0x8(%r14,%rcx), %rcx
cmpq 0x8(%rax), %rcx
jne 0x1d45c4
movq 0x18(%rdi), %rcx
subq 0x18(%rax), %rcx
cmpq 0x40(%rsp), %rcx
ja 0x1d45c4
movq %rsi, 0x20(%rsp)
movq 0x10(%rdi), %rcx
cmpq 0x10(%rax), %rcx
movq %rdi, %rcx
cmovaq %rax, %rcx
cmovbeq %rax, %rdi
movq %rdi, 0x30(%rsp)
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46ec
cmpq %r15, 0x8(%rax)
jbe 0x1d46ec
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46ec
movq (%rcx), %r12
movq 0x88(%rbx), %r13
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r15, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46e7
movq 0x8(%rsp), %rcx
cmpq %rcx, 0x8(%rax)
jbe 0x1d46e7
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46e7
movq 0x88(%rbx), %rbp
movq (%rax), %rdi
movq %rdx, %rsi
imulq 0x8(%rsp), %rsi
callq 0x2f37dc
testq %rbp, %rbp
je 0x1d46f1
addq %r12, %rax
cmpq %rax, 0x8(%rbp)
jbe 0x1d46f1
movl 0x10(%rbp), %edx
cmpq $0x41, %rdx
jae 0x1d46f1
movq (%rbp), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
testq %r13, %r13
je 0x1d46e2
addq %r12, %r14
cmpq %r14, 0x8(%r13)
jbe 0x1d46e2
movl 0x10(%r13), %edx
cmpq $0x41, %rdx
jae 0x1d46e2
orq $0x1, %rax
movq (%r13), %rdi
imulq %rdx, %r14
movq %r14, %rsi
movq %rax, %rcx
callq 0x2f388c
movq 0x60(%rbx), %rax
testq %rax, %rax
movq 0x8(%rsp), %rcx
je 0x1d46dd
cmpq %rcx, 0x8(%rax)
jbe 0x1d46dd
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46dd
movq 0x88(%rbx), %r14
movq (%rax), %rdi
movq %rdx, %rsi
imulq %rcx, %rsi
callq 0x2f37dc
testq %r14, %r14
je 0x1d46d8
addq %r12, %rax
cmpq %rax, 0x8(%r14)
jbe 0x1d46d8
movl 0x10(%r14), %edx
cmpq $0x41, %rdx
jae 0x1d46d8
movq (%r14), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r14
movq 0x80(%rbx), %rdi
callq 0x2f09dd
movl %eax, %r13d
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movl %eax, %ebp
movq 0x90(%rbx), %rdi
callq 0x2f09dd
movq 0x70(%rbx), %rsi
testq %rsi, %rsi
je 0x1d4688
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %r13d, %ecx
shll %cl, %edx
notl %edx
incb %bpl
movl %ebp, %ecx
shll %cl, %edx
incq 0x38(%rsp)
movslq %edx, %rcx
andq %rcx, %r14
incb %al
movl %eax, %ecx
shrq %cl, %r14
cmpq %r14, 0x8(%rsi)
jbe 0x1d4688
movl 0x10(%rsi), %edx
cmpq $0x41, %rdx
jae 0x1d4688
movq (%rsi), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
jne 0x1d45ab
movq 0x70(%rbx), %rax
testq %rax, %rax
je 0x1d468d
movl %r14d, %esi
andl $0x1, %esi
negq %rsi
orq $0x1, %rsi
addq %r14, %rsi
cmpq %rsi, 0x8(%rax)
jbe 0x1d468d
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d468d
movq (%rax), %rdi
imulq %rdx, %rsi
callq 0x2f37dc
cmpq $0x1, %rax
jne 0x1d45ab
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1d3843
movq %rax, %r13
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d469c
cmpq %r14, 0x8(%rax)
jbe 0x1d469c
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d469c
movq 0x88(%rbx), %r12
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
movq %rax, %rbp
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46a1
cmpq %r14, 0x8(%rax)
jbe 0x1d46a1
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46a1
movq 0x88(%rbx), %r15
movq (%rax), %rdi
movq %rdx, %rsi
imulq %r14, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d4692
addq %r13, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d4692
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d4692
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
testq %r12, %r12
je 0x1d4697
addq %r13, %rbp
cmpq %rbp, 0x8(%r12)
jbe 0x1d4697
movl 0x10(%r12), %edx
cmpq $0x41, %rdx
jae 0x1d4697
orq $0x1, %rax
movq (%r12), %rdi
imulq %rdx, %rbp
movq %rbp, %rsi
movq %rax, %rcx
callq 0x2f388c
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x1d46ab
cmpq %r14, 0x8(%rax)
jbe 0x1d46ab
movl 0x10(%rax), %edx
cmpq $0x41, %rdx
jae 0x1d46ab
movq 0x88(%rbx), %r15
movq (%rax), %rdi
imulq %rdx, %r14
movq %r14, %rsi
callq 0x2f37dc
testq %r15, %r15
je 0x1d46a6
addq %r13, %rax
cmpq %rax, 0x8(%r15)
jbe 0x1d46a6
movl 0x10(%r15), %edx
cmpq $0x41, %rdx
jae 0x1d46a6
movq (%r15), %rdi
imulq %rdx, %rax
movq %rax, %rsi
callq 0x2f37dc
movq %rax, %r12
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, %r14
andq %r12, %r14
movq 0x90(%rbx), %rdi
callq 0x2f09dd
leal 0x1(%rax), %ecx
shrq %cl, %r14
movq 0x70(%rbx), %rsi
testq %rsi, %rsi
jne 0x1d437a
jmp 0x1d4688
movq 0x28(%rsp), %r14
movq 0x8(%rsp), %r15
movq 0x10(%rsp), %rdx
movq 0x20(%rsp), %rsi
movq 0x30(%rsp), %rdi
incq %rsi
movq %rdi, %rax
cmpq %rdx, %rsi
jne 0x1d4171
cmpb $0x0, 0x1c(%rsp)
je 0x1d45df
incq 0x50(%rsp)
incq %r15
cmpq 0x80(%rbx), %r15
jb 0x1d3b66
jmp 0x1d45fa
movq $0x0, 0x38(%rsp)
movq %rbx, %rdi
callq 0x1d23d2
movq %rax, %r14
cmpb $0x0, 0x1c(%rsp)
je 0x1d4611
callq 0x10bf8a
leaq 0x1dad15(%rip), %rsi    # 0x3af32d
movq 0x28(%rsp), %rdi
movl $0x546, %edx            # imm = 0x546
callq 0x1045eb
leaq 0x1db40c(%rip), %rdi    # 0x3afa3a
movq 0x38(%rsp), %rsi
xorl %eax, %eax
callq 0x103d72
leaq 0x1db409(%rip), %rdi    # 0x3afa4a
movq %r14, %rsi
xorl %eax, %eax
callq 0x103d72
movq %rbx, %rdi
callq 0x1d0e7b
movq %r14, %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x6fb1b
callq 0x6fae2
callq 0x6f9fe
callq 0x6fa70
callq 0x6faa9
callq 0x6f9c5
callq 0x6fa37
callq 0x6f836
callq 0x6f7fd
callq 0x6f752
callq 0x6f719
callq 0x6f7c4
callq 0x6f78b
callq 0x6f6a7
callq 0x6f6e0
callq 0x6fcaa
callq 0x6fce3
callq 0x6fc38
callq 0x6fc71
callq 0x6fb8d
callq 0x6fbff
callq 0x6fbc6
callq 0x6fb54
callq 0x6f86f
callq 0x6f8a8
callq 0x6f8e1
callq 0x6f953
callq 0x6f98c
callq 0x6f91a
callq 0x6f66e
callq 0x6f635
callq 0x6fd8e
callq 0x6fd55
callq 0x6f5fc
callq 0x6fd1c
callq 0x6fdc7