// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/sfx-bentsedg.c
// Function: gt_sort_bentleysedgewick
static void gt_sort_bentleysedgewick(GtBentsedgresources *bsr,
                                     GtUword bucketleftidx,
                                     GtUword width,
                                     GtUword depth)
{
  bsr->mkvauxstack.nextfreeGtMKVstack = 0;
  gt_suffixsortspace_bucketrange_set(bsr->sssp,bucketleftidx,width);
  subsort_bentleysedgewick(bsr, 0, width, depth);
  while (bsr->mkvauxstack.nextfreeGtMKVstack > 0)
  {
    GtUword leftplusw, pa, pb, pc, pd, pm, bucketright,
                  cptr, temp, pivotcmpcharbychar = 0, valcmpcharbychar,
                  wtmp, subbucketleft;
    unsigned int smallermaxlcp, greatermaxlcp, smallerminlcp, greaterminlcp;
    GtSfxcmp pivotcmpbits, val;
    int retvalpivotcmpbits;
    GtUchar tmpvar;
    GtCommonunits commonunits;
    const int commonunitsequal = bsr->sfxstrategy->cmpcharbychar
                                 ? 1
                                 : GT_UNITSIN2BITENC;

    /* pop */
    bsr->mkvauxstack.nextfreeGtMKVstack--;
    subbucketleft = STACKTOP.subbucketleft;
    width = STACKTOP.width;
    depth = STACKTOP.depth;
    bucketright = width - 1;

    if (bsr->sfxstrategy->cmpcharbychar)
    {
      pm = cmpcharbychardelivermedian(bsr, subbucketleft, width, depth);
      BS_SWAPARRAY(temp, subbucketleft, 0, pm);
      CMPCHARBYCHARPTR2INT(pivotcmpcharbychar, subbucketleft,tmpvar,0);
    } else
    {
      pm = blockcmpdelivermedian(bsr,
                                 subbucketleft,
                                 width,
                                 depth,
                                 bsr->sfxstrategy->maxwidthrealmedian);
      if (width <= bsr->sfxstrategy->maxcountingsort &&
          width >= MINMEDIANOF9WIDTH)
      {
        PTR2INT(pivotcmpbits,subbucketleft,pm);
        gt_assert(width >= bsr->sfxstrategy->maxbltriesort);
        sarrcountingsort(bsr,
                         subbucketleft,
                         width,
                         &pivotcmpbits,
                         pm,
                         depth);
        /* new values for subbucketleft, bucketright, depth */
        continue;
      }
      BS_SWAPARRAY(temp, subbucketleft, 0, pm);
      PTR2INT(pivotcmpbits,subbucketleft,0UL);
    }
    bsr->counttqsort++;
    /* now pivot element is at index subbucketleft */
    /* all elements to be compared are between pb and pc */
    /* pa is the position at which the next element smaller than the
       pivot element is inserted at */
    /* pd is the position at which the next element greater than the
       pivot element is inserted at */
    pa = pb = 1UL;
    pc = pd = bucketright;
    if (bsr->sfxstrategy->cmpcharbychar)
    {
      smallerminlcp = greaterminlcp = smallermaxlcp = greatermaxlcp = 0;
      for (;;)
      {
        while (pb <= pc)
        {
          CMPCHARBYCHARPTR2INT(valcmpcharbychar,subbucketleft,tmpvar,pb);
          if (valcmpcharbychar > pivotcmpcharbychar)
          {
            break;
          }
          if (valcmpcharbychar == pivotcmpcharbychar)
          {
            BS_SWAPARRAY(temp, subbucketleft, pa, pb);
            pa++;
          }
          pb++;
        }
        while (pb <= pc)
        {
          CMPCHARBYCHARPTR2INT(valcmpcharbychar,subbucketleft,tmpvar,pc);
          if (valcmpcharbychar < pivotcmpcharbychar)
          { /* stop for elements < pivot */
            break;
          }
          if (valcmpcharbychar == pivotcmpcharbychar)
          {
            /* exchange equal element and element at index pd */
            BS_SWAPARRAY(temp, subbucketleft, pc, pd);
            pd--;
          }
          pc--;
        }
        if (pb > pc)
        { /* no elements to compare to pivot */
          break;
        }
        BS_SWAPARRAY(temp, subbucketleft, pb, pc);
        pb++;
        pc--;
      }
    } else
    {
      smallermaxlcp = greatermaxlcp = 0;
      smallerminlcp = greaterminlcp = (unsigned int) GT_UNITSIN2BITENC;
      for (;;)
      {
        /* look for elements identical or smaller than pivot from left */
        while (pb <= pc)
        {
          PTR2INT(val,subbucketleft,pb);
          Sfxdocompare(&commonunits,val,pivotcmpbits);
          if (GtSfxcmpGREATER(val,pivotcmpbits))
          { /* stop for elements val > pivot */
            GT_BSR_UPDATELCP(greaterminlcp,greatermaxlcp,commonunits.common);
            break;
          }
          if (GtSfxcmpEQUAL(val,pivotcmpbits))
          {
            /* exchange equal element and element at index pa */
            BS_SWAPARRAY(temp, subbucketleft, pa, pb);
            pa++;
          } else /* smaller */
          {
            GT_BSR_UPDATELCP(smallerminlcp,smallermaxlcp,commonunits.common);
          }
          pb++;
        }
        /* look for elements identical or greater than pivot from right */
        while (pb <= pc)
        {
          PTR2INT(val,subbucketleft,pc);
          Sfxdocompare(&commonunits,val,pivotcmpbits);
          if (GtSfxcmpSMALLER(val,pivotcmpbits))
          { /* stop for elements val < pivot */
            GT_BSR_UPDATELCP(smallerminlcp,smallermaxlcp,commonunits.common);
            break;
          }
          if (GtSfxcmpEQUAL(val,pivotcmpbits))
          {
            /* exchange equal element and element at index pa */
            BS_SWAPARRAY(temp, subbucketleft, pc, pd);
            pd--;
          } else /* greater */
          {
            GT_BSR_UPDATELCP(greaterminlcp,greatermaxlcp,commonunits.common);
          }
          pc--;
        }
        if (pb > pc)
        { /* interval is empty */
          break;
        }
        BS_SWAPARRAY(temp, subbucketleft, pb, pc);
        pb++;
        pc--;
      }
    }
    gt_assert(pb >= pa);
    wtmp = GT_MIN(pa,pb-pa);
    /* move w elements at the left to the middle */
    gt_assert(pb >= wtmp && wtmp <= pb - wtmp);
    vectorswap(bsr->sssp, subbucketleft, subbucketleft+pb-wtmp, wtmp);
    gt_assert(pd >= pc);
    gt_assert(bucketright >= pd);
    wtmp = GT_MIN(pd-pc, bucketright-pd);
    /* move w elements at the right to the middle */
    gt_assert(bucketright + 1 >= wtmp && pb + wtmp <= bucketright+1-wtmp);
    vectorswap(bsr->sssp, subbucketleft+pb, subbucketleft+bucketright+1-wtmp,
               wtmp);

    /* all elements equal to the pivot are now in the middle namely in the
       range [subbucketleft + (pb-pa) and bucketright - (pd-pc)] */
    /* hence we have to sort the elements in the intervals
       [subbucketleft..subbucketleft+(pb-pa)-1] and
       [bucketright-(pd-pc)+1..bucketright] */

    gt_assert(pb >= pa);
    if ((wtmp = pb-pa) > 0)
    {
      leftplusw = wtmp;
      if (bsr->tableoflcpvalues != NULL)
      {
        /*
          left part has suffix with lcp up to length smallermaxlcp w.r.t.
          to the pivot. This lcp belongs to a suffix on the left
          which is at a minimum distance to the pivot and thus to an
          element in the final part of the left side.
        */
        gt_lcptab_update(bsr->tableoflcpvalues,subbucketleft,leftplusw,
                         depth + smallermaxlcp);
      }
      if (wtmp > 1UL)
      {
        subsort_bentleysedgewick(bsr,
                                 subbucketleft,
                                 wtmp,
                                 depth + smallerminlcp);
      }
    } else
    {
      leftplusw = 0;
    }

    cptr = gt_suffixsortspace_get(bsr->sssp,subbucketleft,leftplusw) + depth;
    if (ISNOTEND(cptr) && (wtmp = bucketright-(pd-pb)-leftplusw) > 1UL)
    {
      subsort_bentleysedgewick(bsr,
                               subbucketleft + leftplusw,
                               wtmp,
                               depth+commonunitsequal);
    }

    gt_assert(pd >= pc);
    if ((wtmp = (GtUword) (pd-pc)) > 0)
    {
      if (bsr->tableoflcpvalues != NULL)
      {
        /*
          right part has suffix with lcp up to length largermaxlcp w.r.t.
          to the pivot. This lcp belongs to a suffix on the right
          which is at a minimum distance to the pivot and thus to an
          element in the first part of the right side.
        */
        gt_lcptab_update(bsr->tableoflcpvalues,
                         subbucketleft,bucketright - wtmp + 1,
                         depth + greatermaxlcp);
      }
      if (wtmp > 1UL)
      {
        subsort_bentleysedgewick(bsr,
                                 subbucketleft + bucketright - wtmp + 1,
                                 wtmp,
                                 depth + greaterminlcp);
      }
    }
  }
  gt_suffixsortspace_bucketrange_reset(bsr->sssp);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rcx, %r14
movq %rdx, %r15
movq %rdi, %rbx
movq $0x0, 0x30(%rdi)
movq 0x48(%rdi), %rdi
callq 0x206202
movq %rbx, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
callq 0x1eeac0
movq 0x30(%rbx), %rax
testq %rax, %rax
je 0x1ee2aa
leaq 0x50(%rsp), %r12
leaq 0x88(%rsp), %r14
movq %rbx, 0x20(%rsp)
movq 0x20(%rbx), %rdx
movq 0x40(%rbx), %rcx
movb 0x2c(%rcx), %sil
decq %rax
movq %rax, 0x30(%rbx)
leaq (%rax,%rax,2), %rax
movq (%rdx,%rax,8), %r13
movq 0x8(%rdx,%rax,8), %rbp
movq 0x10(%rdx,%rax,8), %rax
movq %rax, 0x8(%rsp)
leaq -0x1(%rbp), %rax
movq %rax, 0x80(%rsp)
movq %rbp, %r15
shrq %r15
movb %sil, 0x3f(%rsp)
cmpb $0x1, %sil
movq %rbp, 0x48(%rsp)
movq %r13, (%rsp)
jne 0x1ecde6
cmpq $0x1f, %rbp
jb 0x1ecea0
movq %r15, %r12
movq %rbp, %r15
shrq $0x3, %r15
leaq (%r15,%r15), %r9
movq %r9, 0x10(%rsp)
movq %rbx, %rdi
movq %r13, %rsi
movq %r13, %rbp
movq 0x8(%rsp), %r13
movq %r13, %rdx
xorl %ecx, %ecx
movq %r15, %r8
callq 0x1ef475
movq %rax, %r14
movq %r12, %rcx
subq %r15, %rcx
leaq (%r12,%r15), %r9
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
movq %r12, %r8
callq 0x1ef475
movq 0x80(%rsp), %r9
movq %r9, %rcx
subq 0x10(%rsp), %rcx
leaq 0x50(%rsp), %r12
movq %r9, %r8
subq %r15, %r8
movq %rax, %r15
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x1ef475
movq %rax, %r9
jmp 0x1eceb3
cmpq $0x1f, %rbp
jb 0x1ecf64
movq %r15, 0x28(%rsp)
cmpq (%rcx), %rbp
jbe 0x1ecf89
movq %rbp, %r15
shrq $0x3, %r15
leaq (%r15,%r15), %r12
movq %rbx, %rdi
movq %r13, %rsi
movq 0x8(%rsp), %rbp
movq %rbp, %rdx
xorl %ecx, %ecx
movq %r15, %r8
movq %r12, %r9
callq 0x1ef5b0
movq %rax, %r14
movq 0x28(%rsp), %r8
movq %r8, %rcx
subq %r15, %rcx
leaq (%r8,%r15), %r9
movq %rbx, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x1ef5b0
movq %rax, %r13
movq 0x80(%rsp), %r9
movq %r9, %rcx
subq %r12, %rcx
leaq 0x50(%rsp), %r12
movq %r9, %r8
subq %r15, %r8
movq %rbx, %rdi
movq (%rsp), %rsi
movq %rbp, %rdx
callq 0x1ef5b0
movq %rbx, %rdi
movq (%rsp), %rsi
movq %rbp, %rdx
movq 0x48(%rsp), %rbp
movq %r14, %rcx
movq %r13, %r8
movq (%rsp), %r13
movq %rax, %r9
callq 0x1ef5b0
movq %rax, %r15
leaq 0x88(%rsp), %r14
jmp 0x1ed321
movq 0x80(%rsp), %r9
xorl %r14d, %r14d
movq %r13, %rbp
movq 0x8(%rsp), %r13
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
movq %r14, %rcx
movq %r15, %r8
callq 0x1ef475
testq %rax, %rax
je 0x1ecf19
movq %rax, %r14
movq 0x48(%rbx), %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x206063
movq %rax, %r15
movq 0x48(%rbx), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
callq 0x206063
movq %r12, %rdi
leaq 0x50(%rsp), %r12
movq %rbp, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x2060df
movq 0x48(%rbx), %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %r15, %rcx
callq 0x2060df
movq 0x48(%rbx), %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x206063
movq %rax, %r15
addq 0x8(%rsp), %r15
cmpq 0xb0(%rbx), %r15
jae 0x1ecf50
movq (%rbx), %rdi
movl 0x18(%rbx), %edx
movq %r15, %rsi
callq 0xec1f8
cmpb $-0x3, %al
ja 0x1ecf50
movzbl %al, %r15d
jmp 0x1ecf57
addq $0x100, %r15            # imm = 0x100
leaq 0x88(%rsp), %r14
jmp 0x1ed420
movq %rbx, %rdi
movq %r13, %rsi
movq 0x8(%rsp), %rdx
xorl %ecx, %ecx
movq %r15, %r8
movq 0x80(%rsp), %r9
callq 0x1ef5b0
movq %rax, %r15
jmp 0x1ed321
xorl %r15d, %r15d
xorl %r14d, %r14d
movq 0x2d0(%rbx), %rax
movq %r14, 0x18(%rax,%r15)
movq 0x48(%rbx), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x206063
movq 0x2d0(%rbx), %rdi
movq %rax, 0x10(%rdi,%r15)
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1ecfdb
addq %r15, %rdi
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
movl 0x18(%rbx), %ecx
movq %rax, %r8
callq 0xf1097
jmp 0x1ecfec
movq $0x0, (%rdi,%r15)
movl $0x0, 0x8(%rdi,%r15)
incq %r14
addq $0x20, %r15
cmpq %r14, %rbp
jne 0x1ecf8f
movq 0x2d0(%rbx), %rcx
movq %rbp, %rax
shlq $0x5, %rax
leaq (%rcx,%rax), %r8
addq $-0x20, %r8
movq 0x28(%rsp), %r15
shlq $0x5, %r15
addq %rcx, %r15
movq %rcx, 0x40(%rsp)
cmpq %rcx, %r8
jbe 0x1ed305
movb 0x1c(%rbx), %al
movb %al, 0x78(%rsp)
movb 0x1d(%rbx), %al
movb %al, 0x30(%rsp)
movq 0x40(%rsp), %r13
movq %r15, 0x28(%rsp)
leaq 0x20(%r13), %r14
cmpq %r14, %r8
je 0x1ed2aa
movq %r8, %r12
subq %r13, %r12
sarq %r12
addq $0x10, %r12
andq $-0x20, %r12
addq %r13, %r12
movzbl 0x78(%rsp), %r15d
movzbl 0x30(%rsp), %ebp
movl %r15d, %edi
movl %ebp, %esi
leaq 0x88(%rsp), %rdx
movq %r12, %rcx
movq %r8, 0x10(%rsp)
callq 0xf1748
testl %eax, %eax
movq 0x10(%rsp), %rax
jle 0x1ed0c7
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups %xmm1, 0x10(%r12)
movups %xmm0, (%r12)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
movq %r12, 0x18(%rsp)
movl %r15d, %edi
movl %ebp, %esi
leaq 0x88(%rsp), %rdx
movq %r13, %rcx
movq %rax, %r12
movq %rax, %r8
callq 0xf1748
testl %eax, %eax
jle 0x1ed129
movups (%r13), %xmm0
movups 0x10(%r13), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%r13)
movups %xmm0, (%r13)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%r12)
movups %xmm0, (%r12)
movl %r15d, %edi
movl %ebp, %esi
leaq 0x88(%rsp), %rdx
movq 0x18(%rsp), %rbx
movq %rbx, %rcx
movq %r13, %r8
callq 0xf1748
testl %eax, %eax
jle 0x1ed180
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%r13), %xmm0
movups 0x10(%r13), %xmm1
movups %xmm1, 0x10(%rbx)
movups %xmm0, (%rbx)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%r13)
movups %xmm0, (%r13)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%r14), %xmm0
movups 0x10(%r14), %xmm1
movups %xmm1, 0x10(%rbx)
movups %xmm0, (%rbx)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%r14)
movups %xmm0, (%r14)
leaq 0x88(%rsp), %rbx
addq $0x20, %r14
movl %r15d, %edi
movl %ebp, %esi
movq %rbx, %rdx
movq %r13, %rcx
movq %r14, %r8
callq 0xf1748
testl %eax, %eax
jg 0x1ed1bc
addq $-0x20, %r12
movl %r15d, %edi
movl %ebp, %esi
movq %rbx, %rdx
movq %r12, %rcx
movq %r13, %r8
callq 0xf1748
testl %eax, %eax
jg 0x1ed1d7
cmpq %r14, %r12
jb 0x1ed238
movups (%r14), %xmm0
movups 0x10(%r14), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%r14)
movups %xmm0, (%r14)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%r12)
movups %xmm0, (%r12)
jmp 0x1ed1b4
movups (%r13), %xmm0
movups 0x10(%r13), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%r12), %xmm0
movups 0x10(%r12), %xmm1
movups %xmm1, 0x10(%r13)
movups %xmm0, (%r13)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%r12)
movups %xmm0, (%r12)
movq 0x28(%rsp), %r15
cmpq %r15, %r12
cmovbeq %r14, %r13
leaq -0x20(%r12), %rax
movq 0x10(%rsp), %r8
cmovaeq %rax, %r8
cmpq %r13, %r8
leaq 0x50(%rsp), %r12
movq 0x20(%rsp), %rbx
movq 0x48(%rsp), %rbp
ja 0x1ed040
jmp 0x1ed305
movzbl 0x78(%rsp), %edi
movzbl 0x30(%rsp), %esi
leaq 0x88(%rsp), %rdx
movq %r13, %rcx
movq %r8, %r14
callq 0xf1748
testl %eax, %eax
jle 0x1ed305
movups (%r13), %xmm0
movups 0x10(%r13), %xmm1
movaps %xmm1, 0x60(%rsp)
movaps %xmm0, 0x50(%rsp)
movups (%r14), %xmm0
movups 0x10(%r14), %xmm1
movups %xmm1, 0x10(%r13)
movups %xmm0, (%r13)
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movups %xmm1, 0x10(%r14)
movups %xmm0, (%r14)
cmpq $0x0, 0x40(%rsp)
je 0x1ee324
movq 0x18(%r15), %r15
leaq 0x88(%rsp), %r14
movq (%rsp), %r13
cmpq $0x1f, %rbp
jb 0x1ed374
movq 0x40(%rbx), %rax
cmpq 0x18(%rax), %rbp
ja 0x1ed374
movq 0x48(%rbx), %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x206063
movq %rax, 0x98(%rsp)
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1eddf8
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
movl 0x18(%rbx), %ecx
movq %r14, %rdi
movq %rax, %r8
callq 0xf1097
jmp 0x1ede0f
testq %r15, %r15
je 0x1ed3c6
movq 0x48(%rbx), %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x206063
movq %rax, %r14
movq 0x48(%rbx), %r12
movq %r12, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x206063
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x2060df
movq 0x48(%rbx), %rdi
movq %r13, %rsi
movq %r15, %rdx
movq %r14, %rcx
leaq 0x88(%rsp), %r14
callq 0x2060df
movq 0x48(%rbx), %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x206063
movq %rax, 0x98(%rsp)
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1ed401
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
movl 0x18(%rbx), %ecx
movq %r14, %rdi
movq %rax, %r8
callq 0xf1097
jmp 0x1ed418
movq $0x0, 0x88(%rsp)
movl $0x0, 0x90(%rsp)
xorl %r15d, %r15d
leaq 0x50(%rsp), %r12
incq 0x70(%rbx)
movq 0x40(%rbx), %rax
cmpb $0x0, 0x2c(%rax)
je 0x1ed678
movq %r15, 0x10(%rsp)
movl $0x1, %ebx
movl $0x1, %r13d
movq 0x80(%rsp), %rax
movq %rax, %r15
movq 0x8(%rsp), %r12
movq %rax, 0x40(%rsp)
cmpq %r15, %r13
ja 0x1ed51a
movq 0x20(%rsp), %rbp
movq 0x48(%rbp), %rdi
movq (%rsp), %rsi
movq %r13, %rdx
callq 0x206063
movq %rax, %r14
addq %r12, %r14
cmpq 0xb0(%rbp), %r14
jae 0x1ed4a1
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movl 0x18(%rax), %edx
movq %r14, %rsi
callq 0xec1f8
cmpb $-0x3, %al
ja 0x1ed4a1
movzbl %al, %r14d
jmp 0x1ed4a8
addq $0x100, %r14            # imm = 0x100
cmpq 0x10(%rsp), %r14
ja 0x1ed51a
jne 0x1ed512
cmpq %rbx, %r13
je 0x1ed50f
movq 0x20(%rsp), %r14
movq 0x48(%r14), %rdi
movq (%rsp), %rbp
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x206063
movq %rax, 0x18(%rsp)
movq 0x48(%r14), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x206063
movq %r12, %rdi
movq 0x8(%rsp), %r12
movq %rbp, %rsi
movq %rbx, %rdx
movq %rax, %rcx
callq 0x2060df
movq 0x48(%r14), %rdi
movq %rbp, %rsi
movq %r13, %rdx
movq 0x18(%rsp), %rcx
callq 0x2060df
incq %rbx
incq %r13
jmp 0x1ed457
movq %rbx, 0x30(%rsp)
cmpq %r15, %r13
seta %bpl
ja 0x1ed9f6
movq 0x20(%rsp), %rbx
movq 0x48(%rbx), %rdi
movq (%rsp), %rsi
movq %r15, %rdx
callq 0x206063
movq %rax, %r14
addq %r12, %r14
cmpq 0xb0(%rbx), %r14
jae 0x1ed568
movq (%rbx), %rdi
movl 0x18(%rbx), %edx
movq %r14, %rsi
callq 0xec1f8
cmpb $-0x3, %al
ja 0x1ed568
movzbl %al, %r14d
jmp 0x1ed56f
addq $0x100, %r14            # imm = 0x100
cmpq 0x10(%rsp), %r14
jb 0x1ed604
jne 0x1ed5ef
movq 0x40(%rsp), %rbx
cmpq %rbx, %r15
je 0x1ed5e2
movq 0x20(%rsp), %rbx
movq 0x48(%rbx), %rdi
movq (%rsp), %rbp
movq %rbp, %rsi
movq %r15, %rdx
callq 0x206063
movq %rax, %r14
movq 0x48(%rbx), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq 0x40(%rsp), %rdx
callq 0x206063
movq %r12, %rdi
movq 0x8(%rsp), %r12
movq %rbp, %rsi
movq %r15, %rdx
movq %rax, %rcx
callq 0x2060df
movq 0x48(%rbx), %rdi
movq %rbp, %rsi
movq 0x40(%rsp), %rbx
movq %rbx, %rdx
movq %r14, %rcx
callq 0x2060df
decq %rbx
movq %rbx, 0x40(%rsp)
movq 0x20(%rsp), %rbx
decq %r15
cmpq %r15, %r13
seta %bpl
jbe 0x1ed531
jmp 0x1ed9f6
testb $0x1, %bpl
jne 0x1ed9f6
cmpq %r15, %r13
je 0x1ed663
movq 0x48(%rbx), %rdi
movq (%rsp), %rbp
movq %rbp, %rsi
movq %r13, %rdx
callq 0x206063
movq %rax, %r14
movq 0x48(%rbx), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x206063
movq %r12, %rdi
movq 0x8(%rsp), %r12
movq %rbp, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x2060df
movq 0x48(%rbx), %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x2060df
incq %r13
decq %r15
movq 0x40(%rsp), %rax
movq 0x30(%rsp), %rbx
jmp 0x1ed452
movl $0x20, 0x28(%rsp)
movl $0x0, 0x78(%rsp)
movl $0x1, %eax
movq %rax, 0x30(%rsp)
movl $0x1, %r13d
movq 0x80(%rsp), %rbp
movq %rbp, %r15
movl $0x0, 0x18(%rsp)
movl $0x20, 0x10(%rsp)
cmpq %r15, %r13
ja 0x1ed834
movq %rbp, 0x40(%rsp)
movq %r15, 0xa0(%rsp)
movq 0x48(%rbx), %rdi
movq (%rsp), %rsi
movq %r13, %rdx
callq 0x206063
movq %rax, 0x60(%rsp)
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1ed703
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
movl 0x18(%rbx), %ecx
movq %r12, %rdi
movq %rax, %r8
callq 0xf1097
jmp 0x1ed714
movq $0x0, 0x50(%rsp)
movl $0x0, 0x58(%rsp)
movzbl 0x1c(%rbx), %edi
movzbl 0x1d(%rbx), %esi
leaq 0xb0(%rsp), %rdx
movq %r12, %rcx
movq %r14, %r8
callq 0xf1748
testl %eax, %eax
jg 0x1ed813
je 0x1ed75f
movl 0xb0(%rsp), %eax
movl 0x28(%rsp), %ecx
cmpl %eax, %ecx
cmovael %eax, %ecx
movl %ecx, 0x28(%rsp)
movl 0x78(%rsp), %ecx
cmpl %eax, %ecx
cmovbel %eax, %ecx
movl %ecx, 0x78(%rsp)
jmp 0x1ed805
movq %r13, %rax
movq %r12, %r13
movq %rbx, %r12
movq 0x30(%rsp), %rbx
movq %rax, %r15
cmpq %rbx, %rax
je 0x1ed7ec
movq 0x48(%r12), %rdi
movq (%rsp), %rbp
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x206063
movq %rax, 0xa8(%rsp)
movq 0x20(%rsp), %rax
movq 0x48(%rax), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x206063
movq %r12, %rdi
leaq 0x50(%rsp), %r13
movq %rbp, %rsi
movq %rbx, %rdx
movq %rax, %rcx
callq 0x2060df
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rdi
movq %rbp, %rsi
movq 0x40(%rsp), %rbp
movq 0x20(%rsp), %r12
movq %r15, %rdx
movq 0xa8(%rsp), %rcx
leaq 0x88(%rsp), %r14
callq 0x2060df
incq %rbx
movq %rbx, 0x30(%rsp)
movq %r12, %rbx
movq %r13, %r12
movq %r15, %r13
movq 0xa0(%rsp), %r15
incq %r13
cmpq %r15, %r13
jbe 0x1ed6c9
jmp 0x1ed834
movl 0xb0(%rsp), %eax
movl 0x10(%rsp), %ecx
cmpl %eax, %ecx
cmovael %eax, %ecx
movl %ecx, 0x10(%rsp)
movl 0x18(%rsp), %ecx
cmpl %eax, %ecx
cmovbel %eax, %ecx
movl %ecx, 0x18(%rsp)
cmpq %r15, %r13
seta %r14b
ja 0x1ed96f
movq 0x48(%rbx), %rdi
movq (%rsp), %rsi
movq %r15, %rdx
callq 0x206063
movq %rax, 0x60(%rsp)
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1ed87b
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
movl 0x18(%rbx), %ecx
movq %r12, %rdi
movq %rax, %r8
callq 0xf1097
jmp 0x1ed88c
movq $0x0, 0x50(%rsp)
movl $0x0, 0x58(%rsp)
movzbl 0x1c(%rbx), %edi
movzbl 0x1d(%rbx), %esi
leaq 0xb0(%rsp), %rdx
movq %r12, %rcx
leaq 0x88(%rsp), %r8
callq 0xf1748
testl %eax, %eax
js 0x1ed94e
je 0x1ed8d9
movl 0xb0(%rsp), %eax
movl 0x10(%rsp), %ecx
cmpl %eax, %ecx
cmovael %eax, %ecx
movl %ecx, 0x10(%rsp)
movl 0x18(%rsp), %ecx
cmpl %eax, %ecx
cmovbel %eax, %ecx
movl %ecx, 0x18(%rsp)
jmp 0x1ed946
cmpq %rbp, %r15
je 0x1ed943
movq 0x48(%rbx), %rdi
movq %rbp, %rbx
movq (%rsp), %rbp
movq %rbp, %rsi
movq %r15, %rdx
callq 0x206063
movq %rax, %r14
movq 0x20(%rsp), %rax
movq 0x48(%rax), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x206063
movq %r12, %rdi
leaq 0x50(%rsp), %r12
movq %rbp, %rsi
movq %r15, %rdx
movq %rax, %rcx
callq 0x2060df
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rdi
movq %rbp, %rsi
movq %rbx, %rbp
movq 0x20(%rsp), %rbx
movq %rbp, %rdx
movq %r14, %rcx
callq 0x2060df
decq %rbp
decq %r15
jmp 0x1ed834
movl 0xb0(%rsp), %eax
movl 0x28(%rsp), %ecx
cmpl %eax, %ecx
cmovael %eax, %ecx
movl %ecx, 0x28(%rsp)
movl 0x78(%rsp), %ecx
cmpl %eax, %ecx
cmovbel %eax, %ecx
movl %ecx, 0x78(%rsp)
testb $0x1, %r14b
jne 0x1eda00
cmpq %r15, %r13
je 0x1ed9e3
movq 0x48(%rbx), %rdi
movq %rbp, %rbx
movq (%rsp), %rbp
movq %rbp, %rsi
movq %r13, %rdx
callq 0x206063
movq %rax, %r14
movq 0x20(%rsp), %rax
movq 0x48(%rax), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x206063
movq %r12, %rdi
leaq 0x50(%rsp), %r12
movq %rbp, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x2060df
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rdi
movq %rbp, %rsi
movq %rbx, %rbp
movq 0x20(%rsp), %rbx
movq %r15, %rdx
movq %r14, %rcx
callq 0x2060df
incq %r13
decq %r15
leaq 0x88(%rsp), %r14
jmp 0x1ed6b3
xorl %edi, %edi
xorl %ecx, %ecx
xorl %esi, %esi
xorl %eax, %eax
jmp 0x1eda15
movq %rbp, 0x40(%rsp)
movl 0x78(%rsp), %edi
movl 0x28(%rsp), %esi
movl 0x18(%rsp), %ecx
movl 0x10(%rsp), %eax
movq 0x30(%rsp), %rbx
movq %r13, %rdx
subq %rbx, %rdx
jb 0x1ee301
movq %rdi, 0xa8(%rsp)
movq %rsi, 0xd0(%rsp)
movq %rcx, 0xc8(%rsp)
movq %rax, 0xc0(%rsp)
cmpq %rdx, %rbx
movq %rdx, 0xa0(%rsp)
cmovaeq %rdx, %rbx
movq %r13, %rax
subq %rbx, %rax
cmpq %rax, %rbx
ja 0x1ee2fc
movq (%rsp), %rbp
movq %r13, %rax
addq %rbp, %rax
movq %rax, 0x78(%rsp)
testq %rbx, %rbx
je 0x1edaed
movq 0x20(%rsp), %rax
movq 0x48(%rax), %r12
movq 0x78(%rsp), %rax
subq %rbx, %rax
movq %rax, 0x18(%rsp)
xorl %r14d, %r14d
movq %rbx, 0x30(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
callq 0x206063
movq %rax, 0x10(%rsp)
movq %r12, %rdi
movq 0x18(%rsp), %rbx
movq %rbx, %rsi
movq %r14, %rdx
callq 0x206063
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %rax, %rcx
callq 0x2060df
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
movq 0x10(%rsp), %rcx
movq 0x30(%rsp), %rbx
callq 0x2060df
incq %r14
cmpq %r14, %rbx
jne 0x1eda96
movq 0x40(%rsp), %rax
movq %rax, %rcx
subq %r15, %rcx
jb 0x1ee2f7
movq 0x80(%rsp), %rdx
subq %rax, %rdx
movq %rdx, %rax
movq 0x48(%rsp), %rdx
jb 0x1ee2f2
movq %rax, %rsi
cmpq %rax, %rcx
movq %rcx, 0x30(%rsp)
cmovbq %rcx, %rsi
movq %rdx, %rax
movq %rsi, 0x18(%rsp)
subq %rsi, %rax
jb 0x1ee2e8
movq 0x18(%rsp), %rcx
addq %r13, %rcx
cmpq %rax, %rcx
ja 0x1ee2e8
addq (%rsp), %rdx
movq %rdx, 0x48(%rsp)
cmpq $0x0, 0x18(%rsp)
movq 0x78(%rsp), %rbp
je 0x1edbcd
movq 0x20(%rsp), %rax
movq 0x48(%rax), %r12
movq 0x48(%rsp), %rax
subq 0x18(%rsp), %rax
movq %rax, 0x28(%rsp)
xorl %r14d, %r14d
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
callq 0x206063
movq %rax, 0x10(%rsp)
movq %r12, %rdi
movq 0x28(%rsp), %rbx
movq %rbx, %rsi
movq %r14, %rdx
callq 0x206063
movq %r12, %rdi
movq %rbp, %rsi
movq %r14, %rdx
movq %rax, %rcx
callq 0x2060df
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
movq 0x10(%rsp), %rcx
callq 0x2060df
incq %r14
cmpq %r14, 0x18(%rsp)
jne 0x1edb79
movq 0xa0(%rsp), %r8
testq %r8, %r8
je 0x1edc9f
movq 0x20(%rsp), %rbx
movq 0x38(%rbx), %rax
testq %rax, %rax
leaq 0x50(%rsp), %r12
leaq 0x88(%rsp), %r14
je 0x1edc73
movq 0x8(%rax), %rdx
testq %rdx, %rdx
je 0x1ee306
movq (%rsp), %rcx
addq %r8, %rcx
addq 0x20(%rax), %rcx
cmpq 0x10(%rax), %rcx
jae 0x1ee306
movq (%rax), %rsi
testq %rsi, %rsi
je 0x1edc38
movabsq $-0x8000000000000000, %rdi # imm = 0x8000000000000000
shrq %cl, %rdi
shrq $0x6, %rcx
orq %rdi, (%rsi,%rcx,8)
movq 0xa8(%rsp), %rsi
addq 0x8(%rsp), %rsi
movq %rsi, %rcx
shrq $0x20, %rcx
jne 0x1ee315
movq 0x20(%rax), %rcx
leaq (%rdx,%rcx,4), %rcx
movq (%rsp), %rdx
leaq (%rcx,%rdx,4), %rcx
movl %esi, (%rcx,%r8,4)
cmpq $0xff, %rsi
jb 0x1edc73
incq 0x18(%rax)
cmpq $0x1, %r8
je 0x1edcb4
movq 0xd0(%rsp), %rcx
addq 0x8(%rsp), %rcx
movq %rbx, %rdi
movq (%rsp), %rsi
movq %r8, %rdx
callq 0x1eeac0
movq 0xa0(%rsp), %r8
jmp 0x1edcb4
xorl %r8d, %r8d
leaq 0x50(%rsp), %r12
leaq 0x88(%rsp), %r14
movq 0x20(%rsp), %rbx
movq 0x48(%rbx), %rdi
movq (%rsp), %rsi
movq %r8, %rbp
movq %r8, %rdx
callq 0x206063
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1edd27
movq (%rbx), %rdi
movl 0x18(%rbx), %edx
movq %rax, %rsi
callq 0xec1f8
cmpb $-0x3, %al
ja 0x1edd27
addq 0x80(%rsp), %r13
movq 0x40(%rsp), %rax
addq %rbp, %rax
subq %rax, %r13
cmpq $0x2, %r13
jb 0x1edd27
addq (%rsp), %rbp
movq 0x8(%rsp), %rax
leaq 0x20(%rax), %rcx
incq %rax
cmpb $0x0, 0x3f(%rsp)
cmovneq %rax, %rcx
movq %rbx, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x1eeac0
cmpq %r15, 0x40(%rsp)
movq 0x30(%rsp), %rdx
je 0x1ee29d
movq 0x38(%rbx), %rax
testq %rax, %rax
je 0x1eddcc
movq 0x8(%rax), %r10
testq %r10, %r10
movq (%rsp), %r8
je 0x1ee310
movq 0x80(%rsp), %rcx
subq %rdx, %rcx
movq %rcx, %r9
incq %rcx
addq %r8, %rcx
addq 0x20(%rax), %rcx
cmpq 0x10(%rax), %rcx
jae 0x1ee310
movq (%rax), %rsi
testq %rsi, %rsi
je 0x1edd94
movabsq $-0x8000000000000000, %rdi # imm = 0x8000000000000000
shrq %cl, %rdi
shrq $0x6, %rcx
orq %rdi, (%rsi,%rcx,8)
movq 0xc8(%rsp), %rsi
addq 0x8(%rsp), %rsi
movq %rsi, %rcx
shrq $0x20, %rcx
jne 0x1ee31f
movq 0x20(%rax), %rcx
leaq (%r10,%rcx,4), %rcx
leaq (%rcx,%r8,4), %rcx
movl %esi, 0x4(%rcx,%r9,4)
cmpq $0xff, %rsi
jb 0x1eddcc
incq 0x18(%rax)
cmpq $0x1, %rdx
je 0x1ee29d
movq 0x48(%rsp), %rsi
subq %rdx, %rsi
movq 0x8(%rsp), %rcx
addq 0xc0(%rsp), %rcx
movq %rbx, %rdi
callq 0x1eeac0
jmp 0x1ee29d
movq $0x0, 0x88(%rsp)
movl $0x0, 0x90(%rsp)
movq 0x40(%rbx), %rax
cmpq 0x10(%rax), %rbp
jb 0x1ee31a
incq 0x88(%rbx)
movq $0x0, 0x10(%rsp)
movl $0x9, %ebp
movq $0x0, 0x18(%rsp)
xorl %r13d, %r13d
xorl %r14d, %r14d
movl $0x0, 0x28(%rsp)
movq 0x48(%rbx), %rdi
movq (%rsp), %rsi
movq %r13, %rdx
callq 0x206063
movq 0x2d8(%rbx), %rcx
movq %rax, -0x9(%rcx,%rbp)
cmpq %r13, %r15
jne 0x1ede76
movw $0x20, -0x1(%rcx,%rbp)
jmp 0x1edf4c
movq %rax, 0x60(%rsp)
addq 0x8(%rsp), %rax
cmpq 0xb0(%rbx), %rax
jae 0x1edea0
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
movl 0x18(%rbx), %ecx
movq %r12, %rdi
movq %rax, %r8
callq 0xf1097
jmp 0x1edeb1
movq $0x0, 0x50(%rsp)
movl $0x0, 0x58(%rsp)
movzbl 0x1c(%rbx), %edi
movzbl 0x1d(%rbx), %esi
leaq 0xb0(%rsp), %rdx
movq %r12, %rcx
leaq 0x88(%rsp), %r8
callq 0xf1748
movl 0xb0(%rsp), %ecx
cmpq $0x21, %rcx
jae 0x1ee2cf
movq 0x2d8(%rbx), %rdx
movb %cl, -0x1(%rdx,%rbp)
testl %eax, %eax
jle 0x1edf14
cmpl $0x20, %ecx
je 0x1ee2d4
incq 0x1c0(%rbx,%rcx,8)
cmpl %ecx, %r14d
cmovbel %ecx, %r14d
movb $0x1, (%rdx,%rbp)
incq 0x10(%rsp)
jmp 0x1edf4c
js 0x1edf25
cmpl $0x20, %ecx
jne 0x1ee2ed
movb $0x0, (%rdx,%rbp)
jmp 0x1edf4c
cmpl $0x20, %ecx
je 0x1ee30b
incq 0xc0(%rbx,%rcx,8)
movl 0x28(%rsp), %eax
cmpl %ecx, %eax
cmovbel %ecx, %eax
movl %eax, 0x28(%rsp)
movb $-0x1, (%rdx,%rbp)
incq 0x18(%rsp)
incq %r13
addq $0x10, %rbp
cmpq %r13, 0x48(%rsp)
jne 0x1ede49
movl 0x28(%rsp), %eax
movl %eax, %ebp
testl %eax, %eax
je 0x1edf89
movq 0xc0(%rbx), %rax
xorl %ecx, %ecx
addq 0xc8(%rbx,%rcx,8), %rax
movq %rax, 0xc8(%rbx,%rcx,8)
incq %rcx
cmpq %rcx, %rbp
jne 0x1edf71
movl %r14d, %r13d
testl %r14d, %r14d
movq 0x18(%rsp), %r12
je 0x1edfb7
movq 0x1c0(%rbx), %rax
xorl %ecx, %ecx
addq 0x1c8(%rbx,%rcx,8), %rax
movq %rax, 0x1c8(%rbx,%rcx,8)
incq %rcx
cmpq %rcx, %r13
jne 0x1edf9f
movq 0x2d8(%rbx), %rax
movq 0x48(%rsp), %rcx
shlq $0x4, %rcx
leaq (%rax,%rcx), %r14
addq $-0x10, %r14
cmpq %rax, %r14
jb 0x1ee06a
movq 0x48(%rsp), %r15
subq 0x10(%rsp), %r15
movzbl 0x9(%r14), %eax
testl %eax, %eax
je 0x1ee043
cmpl $0x1, %eax
je 0x1ee015
cmpl $0xff, %eax
jne 0x1ee059
movzbl 0x8(%r14), %eax
movq 0xc0(%rbx,%rax,8), %rdx
decq %rdx
movq %rdx, 0xc0(%rbx,%rax,8)
movq 0x48(%rbx), %rdi
jmp 0x1ee03a
movzbl 0x8(%r14), %eax
movq 0x1c0(%rbx,%rax,8), %rcx
leaq -0x1(%rcx), %rdx
movq %rdx, 0x1c0(%rbx,%rax,8)
movq 0x48(%rbx), %rdi
movq 0x48(%rsp), %rdx
subq %rcx, %rdx
movq (%r14), %rcx
movq (%rsp), %rsi
jmp 0x1ee054
movq 0x48(%rbx), %rdi
decq %r15
movq (%r14), %rcx
movq (%rsp), %rsi
movq %r15, %rdx
callq 0x2060df
addq $-0x10, %r14
cmpq 0x2d8(%rbx), %r14
jae 0x1edfe2
leaq 0x1(%rbp), %r14
xorl %r15d, %r15d
cmpq %rbp, %r15
jae 0x1ee07e
movq 0xc8(%rbx,%r15,8), %r12
movq 0xc0(%rbx,%r15,8), %rsi
leaq 0x1(%rsi), %rax
cmpq %r12, %rax
jae 0x1ee0aa
movq %r12, %rdx
subq %rsi, %rdx
addq (%rsp), %rsi
movq 0x8(%rsp), %rax
leaq (%rax,%r15), %rcx
movq %rbx, %rdi
callq 0x1eeac0
movq 0x38(%rbx), %rax
testq %rax, %rax
je 0x1ee13b
cmpq %r12, 0xc0(%rbx,%r15,8)
jae 0x1ee13b
movq 0x8(%rax), %rdx
testq %rdx, %rdx
je 0x1ee2c5
movq (%rsp), %rcx
addq %r12, %rcx
addq 0x20(%rax), %rcx
cmpq 0x10(%rax), %rcx
jae 0x1ee2c5
movq (%rax), %rsi
testq %rsi, %rsi
je 0x1ee100
movabsq $-0x8000000000000000, %rdi # imm = 0x8000000000000000
shrq %cl, %rdi
shrq $0x6, %rcx
orq %rdi, (%rsi,%rcx,8)
movq 0x8(%rsp), %rdi
leaq (%rdi,%r15), %rcx
movq %rcx, %rsi
shrq $0x20, %rsi
jne 0x1ee2de
leal (%rdi,%r15), %esi
movq 0x20(%rax), %rdi
leaq (%rdx,%rdi,4), %rdx
movq (%rsp), %rdi
leaq (%rdx,%rdi,4), %rdx
movl %esi, (%rdx,%r12,4)
cmpq $0xff, %rcx
jb 0x1ee13b
incq 0x18(%rax)
movq $0x0, 0xc0(%rbx,%r15,8)
incq %r15
cmpq %r15, %r14
movq 0x18(%rsp), %r12
jne 0x1ee071
movq 0x10(%rsp), %rax
addq %r12, %rax
movq 0x48(%rsp), %r14
movq %r14, %rdx
subq %rax, %rdx
cmpq $0x2, %rdx
jb 0x1ee189
addq (%rsp), %r12
movq 0x8(%rsp), %rax
leaq 0x20(%rax), %rcx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1eeac0
movq (%rsp), %rax
addq %rax, %r14
leaq 0x1(%r13), %r15
xorl %ebp, %ebp
movq 0x10(%rsp), %r12
cmpq %r13, %rbp
jae 0x1ee1a8
movq 0x1c8(%rbx,%rbp,8), %r12
movq 0x1c0(%rbx,%rbp,8), %rax
leaq 0x1(%rax), %rcx
cmpq %r12, %rcx
jae 0x1ee1d6
movq %r12, %rdx
subq %rax, %rdx
movq %r14, %rsi
subq %r12, %rsi
movq 0x8(%rsp), %rax
leaq (%rax,%rbp), %rcx
movq %rbx, %rdi
callq 0x1eeac0
movq 0x38(%rbx), %rax
testq %rax, %rax
je 0x1ee278
cmpq %r12, 0x1c0(%rbx,%rbp,8)
jae 0x1ee278
movq 0x48(%rsp), %rdx
subq %r12, %rdx
jb 0x1ee2d9
movq 0x8(%rax), %rsi
testq %rsi, %rsi
je 0x1ee2ca
movq (%rsp), %rcx
addq %rdx, %rcx
addq 0x20(%rax), %rcx
cmpq 0x10(%rax), %rcx
jae 0x1ee2ca
movq (%rax), %rdi
testq %rdi, %rdi
movq 0x8(%rsp), %r9
je 0x1ee243
movabsq $-0x8000000000000000, %r8 # imm = 0x8000000000000000
shrq %cl, %r8
shrq $0x6, %rcx
orq %r8, (%rdi,%rcx,8)
leaq (%r9,%rbp), %rcx
movq %rcx, %rdi
shrq $0x20, %rdi
jne 0x1ee2e3
leal (%r9,%rbp), %edi
movq 0x20(%rax), %r8
leaq (%rsi,%r8,4), %rsi
movq (%rsp), %r8
leaq (%rsi,%r8,4), %rsi
movl %edi, (%rsi,%rdx,4)
cmpq $0xff, %rcx
jb 0x1ee278
incq 0x18(%rax)
movq $0x0, 0x1c0(%rbx,%rbp,8)
incq %rbp
cmpq %rbp, %r15
jne 0x1ee196
leaq 0x50(%rsp), %r12
leaq 0x88(%rsp), %r14
movq 0x30(%rbx), %rax
testq %rax, %rax
jne 0x1ecd08
movq 0x48(%rbx), %rdi
callq 0x206221
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x77382
callq 0x773f0
callq 0x77267
callq 0x77312
callq 0x77427
callq 0x7734b
callq 0x773b9
callq 0x77575
callq 0x772a0
callq 0x775ae
callq 0x775e7
callq 0x77620
callq 0x77659
callq 0x774d0
callq 0x772d9
callq 0x7753e
callq 0x77499
callq 0x77460
callq 0x77507
callq 0x7722e