// File: manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: cimg_library::CImg<cimg_library::CImg<unsigned char>::Tuint> cimg_library::CImg<unsigned int>::get_index<unsigned char>(cimg_library::CImg<unsigned char> const&, float, bool) const
CImg<typename CImg<t>::Tuint>
    get_index(const CImg<t>& colormap, const float dithering=1, const bool map_indexes=true) const {
      if (colormap._spectrum!=_spectrum)
        throw CImgArgumentException(_cimg_instance
                                    "index(): Instance and specified colormap (%u,%u,%u,%u,%p) "
                                    "have incompatible dimensions.",
                                    cimg_instance,
                                    colormap._width,colormap._height,colormap._depth,colormap._spectrum,colormap._data);

      typedef typename CImg<t>::Tuint tuint;
      if (is_empty()) return CImg<tuint>();
      const unsigned long
        whd = (unsigned long)_width*_height*_depth,
        pwhd = (unsigned long)colormap._width*colormap._height*colormap._depth;
      CImg<tuint> res(_width,_height,_depth,map_indexes?_spectrum:1);
      tuint *ptrd = res._data;
      if (dithering>0) { // Dithered versions.
        const float ndithering = (dithering<0?0:dithering>1?1:dithering)/16;
        Tfloat valm = 0, valM = (Tfloat)max_min(valm);
        if (valm==valM && valm>=0 && valM<=255) { valm = 0; valM = 255; }
        CImg<Tfloat> cache = get_crop(-1,0,0,0,_width,1,0,_spectrum-1);
        Tfloat *cache_current = cache.data(1,0,0,0), *cache_next = cache.data(1,1,0,0);
        const unsigned long cwhd = (unsigned long)cache._width*cache._height*cache._depth;
        switch (_spectrum) {
        case 1 : { // Optimized for scalars.
          cimg_forYZ(*this,y,z) {
            if (y<height()-2) {
              Tfloat *ptrc0 = cache_next; const T *ptrs0 = data(0,y+1,z,0);
              cimg_forX(*this,x) *(ptrc0++) = (Tfloat)*(ptrs0++);
            }
            Tfloat *ptrs0 = cache_current, *ptrsn0 = cache_next;
            cimg_forX(*this,x) {
              const Tfloat _val0 = (Tfloat)*ptrs0, val0 = _val0<valm?valm:_val0>valM?valM:_val0;
              Tfloat distmin = cimg::type<Tfloat>::max(); const t *ptrmin0 = colormap._data;
              for (const t *ptrp0 = colormap._data, *ptrp_end = ptrp0 + pwhd; ptrp0<ptrp_end; ) {
                const Tfloat pval0 = (Tfloat)*(ptrp0++) - val0, dist = pval0*pval0;
                if (dist<distmin) { ptrmin0 = ptrp0 - 1; distmin = dist; }
              }
              const Tfloat err0 = ((*(ptrs0++)=val0) - (Tfloat)*ptrmin0)*ndithering;
              *ptrs0+=7*err0; *(ptrsn0-1)+=3*err0; *(ptrsn0++)+=5*err0; *ptrsn0+=err0;
              if (map_indexes) *(ptrd++) = (tuint)*ptrmin0; else *(ptrd++) = (tuint)(ptrmin0 - colormap._data);
            }
            cimg::swap(cache_current,cache_next);
          }
        } break;
        case 2 : { // Optimized for 2d vectors.
          tuint *ptrd1 = ptrd + whd;
          cimg_forYZ(*this,y,z) {
            if (y<height()-2) {
              Tfloat *ptrc0 = cache_next, *ptrc1 = ptrc0 + cwhd;
              const T *ptrs0 = data(0,y+1,z,0), *ptrs1 = ptrs0 + whd;
              cimg_forX(*this,x) { *(ptrc0++) = (Tfloat)*(ptrs0++); *(ptrc1++) = (Tfloat)*(ptrs1++); }
            }
            Tfloat
              *ptrs0 = cache_current, *ptrs1 = ptrs0 + cwhd,
              *ptrsn0 = cache_next, *ptrsn1 = ptrsn0 + cwhd;
            cimg_forX(*this,x) {
              const Tfloat
                _val0 = (Tfloat)*ptrs0, val0 = _val0<valm?valm:_val0>valM?valM:_val0,
                _val1 = (Tfloat)*ptrs1, val1 = _val1<valm?valm:_val1>valM?valM:_val1;
              Tfloat distmin = cimg::type<Tfloat>::max(); const t *ptrmin0 = colormap._data;
              for (const t *ptrp0 = colormap._data, *ptrp1 = ptrp0 + pwhd, *ptrp_end = ptrp1; ptrp0<ptrp_end; ) {
                const Tfloat
                  pval0 = (Tfloat)*(ptrp0++) - val0, pval1 = (Tfloat)*(ptrp1++) - val1,
                  dist = pval0*pval0 + pval1*pval1;
                if (dist<distmin) { ptrmin0 = ptrp0 - 1; distmin = dist; }
              }
              const t *const ptrmin1 = ptrmin0 + pwhd;
              const Tfloat
                err0 = ((*(ptrs0++)=val0) - (Tfloat)*ptrmin0)*ndithering,
                err1 = ((*(ptrs1++)=val1) - (Tfloat)*ptrmin1)*ndithering;
              *ptrs0+=7*err0; *ptrs1+=7*err1;
              *(ptrsn0-1)+=3*err0; *(ptrsn1-1)+=3*err1;
              *(ptrsn0++)+=5*err0; *(ptrsn1++)+=5*err1;
              *ptrsn0+=err0; *ptrsn1+=err1;
              if (map_indexes) { *(ptrd++) = (tuint)*ptrmin0; *(ptrd1++) = (tuint)*ptrmin1; }
              else *(ptrd++) = (tuint)(ptrmin0 - colormap._data);
            }
            cimg::swap(cache_current,cache_next);
          }
        } break;
        case 3 : { // Optimized for 3d vectors (colors).
          tuint *ptrd1 = ptrd + whd, *ptrd2 = ptrd1 + whd;
          cimg_forYZ(*this,y,z) {
            if (y<height()-2) {
              Tfloat *ptrc0 = cache_next, *ptrc1 = ptrc0 + cwhd, *ptrc2 = ptrc1 + cwhd;
              const T *ptrs0 = data(0,y+1,z,0), *ptrs1 = ptrs0 + whd, *ptrs2 = ptrs1 + whd;
              cimg_forX(*this,x) {
                *(ptrc0++) = (Tfloat)*(ptrs0++); *(ptrc1++) = (Tfloat)*(ptrs1++); *(ptrc2++) = (Tfloat)*(ptrs2++);
              }
            }
            Tfloat
              *ptrs0 = cache_current, *ptrs1 = ptrs0 + cwhd, *ptrs2 = ptrs1 + cwhd,
              *ptrsn0 = cache_next, *ptrsn1 = ptrsn0 + cwhd, *ptrsn2 = ptrsn1 + cwhd;
            cimg_forX(*this,x) {
              const Tfloat
                _val0 = (Tfloat)*ptrs0, val0 = _val0<valm?valm:_val0>valM?valM:_val0,
                _val1 = (Tfloat)*ptrs1, val1 = _val1<valm?valm:_val1>valM?valM:_val1,
                _val2 = (Tfloat)*ptrs2, val2 = _val2<valm?valm:_val2>valM?valM:_val2;
              Tfloat distmin = cimg::type<Tfloat>::max(); const t *ptrmin0 = colormap._data;
              for (const t *ptrp0 = colormap._data, *ptrp1 = ptrp0 + pwhd, *ptrp2 = ptrp1 + pwhd,
                     *ptrp_end = ptrp1; ptrp0<ptrp_end; ) {
                const Tfloat
                  pval0 = (Tfloat)*(ptrp0++) - val0,
                  pval1 = (Tfloat)*(ptrp1++) - val1,
                  pval2 = (Tfloat)*(ptrp2++) - val2,
                  dist = pval0*pval0 + pval1*pval1 + pval2*pval2;
                if (dist<distmin) { ptrmin0 = ptrp0 - 1; distmin = dist; }
              }
              const t *const ptrmin1 = ptrmin0 + pwhd, *const ptrmin2 = ptrmin1 + pwhd;
              const Tfloat
                err0 = ((*(ptrs0++)=val0) - (Tfloat)*ptrmin0)*ndithering,
                err1 = ((*(ptrs1++)=val1) - (Tfloat)*ptrmin1)*ndithering,
                err2 = ((*(ptrs2++)=val2) - (Tfloat)*ptrmin2)*ndithering;

              *ptrs0+=7*err0; *ptrs1+=7*err1; *ptrs2+=7*err2;
              *(ptrsn0-1)+=3*err0; *(ptrsn1-1)+=3*err1; *(ptrsn2-1)+=3*err2;
              *(ptrsn0++)+=5*err0; *(ptrsn1++)+=5*err1; *(ptrsn2++)+=5*err2;
              *ptrsn0+=err0; *ptrsn1+=err1; *ptrsn2+=err2;

              if (map_indexes) {
                *(ptrd++) = (tuint)*ptrmin0; *(ptrd1++) = (tuint)*ptrmin1; *(ptrd2++) = (tuint)*ptrmin2;
              } else *(ptrd++) = (tuint)(ptrmin0 - colormap._data);
            }
            cimg::swap(cache_current,cache_next);
          }
        } break;
        default : // Generic version
          cimg_forYZ(*this,y,z) {
            if (y<height()-2) {
              Tfloat *ptrc = cache_next;
              cimg_forC(*this,c) {
                Tfloat *_ptrc = ptrc; const T *_ptrs = data(0,y+1,z,c);
                cimg_forX(*this,x) *(_ptrc++) = (Tfloat)*(_ptrs++);
                ptrc+=cwhd;
              }
            }
            Tfloat *ptrs = cache_current, *ptrsn = cache_next;
            cimg_forX(*this,x) {
              Tfloat distmin = cimg::type<Tfloat>::max(); const t *ptrmin = colormap._data;
              for (const t *ptrp = colormap._data, *ptrp_end = ptrp + pwhd; ptrp<ptrp_end; ++ptrp) {
                Tfloat dist = 0; Tfloat *_ptrs = ptrs; const t *_ptrp = ptrp;
                cimg_forC(*this,c) {
                  const Tfloat _val = *_ptrs, val = _val<valm?valm:_val>valM?valM:_val;
                  dist+=cimg::sqr((*_ptrs=val) - (Tfloat)*_ptrp); _ptrs+=cwhd; _ptrp+=pwhd;
                }
                if (dist<distmin) { ptrmin = ptrp; distmin = dist; }
              }
              const t *_ptrmin = ptrmin; Tfloat *_ptrs = ptrs++, *_ptrsn = (ptrsn++)-1;
              cimg_forC(*this,c) {
                const Tfloat err = (*(_ptrs++) - (Tfloat)*_ptrmin)*ndithering;
                *_ptrs+=7*err; *(_ptrsn++)+=3*err; *(_ptrsn++)+=5*err; *_ptrsn+=err;
                _ptrmin+=pwhd; _ptrs+=cwhd-1; _ptrsn+=cwhd-2;
              }
              if (map_indexes) {
                tuint *_ptrd = ptrd++;
                cimg_forC(*this,c) { *_ptrd = (tuint)*ptrmin; _ptrd+=whd; ptrmin+=pwhd; }
              }
              else *(ptrd++) = (tuint)(ptrmin - colormap._data);
            }
            cimg::swap(cache_current,cache_next);
          }
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x6c0, %rsp            # imm = 0x6C0
movq %rdi, 0x178(%rsp)
movb %cl, %al
movq %rdi, %rcx
movq %rcx, 0x180(%rsp)
movq %rdi, 0x6b8(%rsp)
movq %rsi, 0x6b0(%rsp)
movq %rdx, 0x6a8(%rsp)
movss %xmm0, 0x6a4(%rsp)
andb $0x1, %al
movb %al, 0x6a3(%rsp)
movq 0x6b0(%rsp), %rcx
movq %rcx, 0x188(%rsp)
movq 0x6a8(%rsp), %rax
movl 0xc(%rax), %eax
cmpl 0xc(%rcx), %eax
je 0x4f9d1
movl $0x4008, %edi           # imm = 0x4008
callq 0x5240
movq %rax, %rcx
movq 0x188(%rsp), %rax
movq %rcx, 0x148(%rsp)
movl (%rax), %ecx
movl %ecx, 0x150(%rsp)
movl 0x4(%rax), %ecx
movl %ecx, 0x154(%rsp)
movl 0x8(%rax), %ecx
movl %ecx, 0x158(%rsp)
movl 0xc(%rax), %ecx
movl %ecx, 0x15c(%rsp)
movq 0x18(%rax), %rcx
movq %rcx, 0x160(%rsp)
movb 0x10(%rax), %dl
leaq 0x990f6(%rip), %rcx     # 0xe89d2
leaq 0x7a1fe(%rip), %rax     # 0xc9ae1
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, 0x168(%rsp)
callq 0x32420
movq %rax, 0x170(%rsp)
jmp 0x4f901
movl 0x15c(%rsp), %r9d
movl 0x158(%rsp), %r8d
movl 0x154(%rsp), %ecx
movl 0x150(%rsp), %edx
movq 0x148(%rsp), %rdi
movq 0x160(%rsp), %rsi
movq 0x168(%rsp), %r10
movq 0x170(%rsp), %r11
movq 0x6a8(%rsp), %rax
movl (%rax), %ebx
movl 0x4(%rax), %ebp
movl 0x8(%rax), %r14d
movl 0xc(%rax), %r15d
movq 0x18(%rax), %r12
movq %rsp, %rax
movq %rax, 0x140(%rsp)
movq %r12, 0x38(%rax)
movl %r15d, 0x30(%rax)
movl %r14d, 0x28(%rax)
movl %ebp, 0x20(%rax)
movl %ebx, 0x18(%rax)
movq %r11, 0x10(%rax)
movq %r10, 0x8(%rax)
movq %rsi, (%rax)
leaq 0x98e71(%rip), %rsi     # 0xe87f8
xorl %eax, %eax
callq 0x12220
jmp 0x4f990
movq 0x148(%rsp), %rdi
leaq 0xb01c1(%rip), %rsi     # 0xffb60
leaq -0x3d546(%rip), %rdx    # 0x12460
callq 0x5920
movq 0x148(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x698(%rsp)
movl %eax, 0x694(%rsp)
callq 0x53a0
jmp 0x52b51
movq 0x188(%rsp), %rdi
callq 0x52e50
testb $0x1, %al
jne 0x4f9e4
jmp 0x4f9f6
movq 0x178(%rsp), %rdi
callq 0x59ef0
jmp 0x52b39
movq 0x188(%rsp), %rax
movl (%rax), %ecx
movl 0x4(%rax), %edx
imulq %rdx, %rcx
movl 0x8(%rax), %edx
imulq %rdx, %rcx
movq %rcx, 0x688(%rsp)
movq 0x6a8(%rsp), %rcx
movl (%rcx), %ecx
movq 0x6a8(%rsp), %rdx
movl 0x4(%rdx), %edx
imulq %rdx, %rcx
movq 0x6a8(%rsp), %rdx
movl 0x8(%rdx), %edx
imulq %rdx, %rcx
movq %rcx, 0x680(%rsp)
movb $0x0, 0x67f(%rsp)
movl (%rax), %ecx
movl %ecx, 0x134(%rsp)
movl 0x4(%rax), %ecx
movl %ecx, 0x138(%rsp)
movl 0x8(%rax), %eax
movl %eax, 0x13c(%rsp)
testb $0x1, 0x6a3(%rsp)
je 0x4fa89
movq 0x188(%rsp), %rax
movl 0xc(%rax), %eax
movl %eax, 0x130(%rsp)
jmp 0x4fa97
movl $0x1, %eax
movl %eax, 0x130(%rsp)
jmp 0x4fa97
movq 0x178(%rsp), %rdi
movl 0x13c(%rsp), %ecx
movl 0x138(%rsp), %edx
movl 0x134(%rsp), %esi
movl 0x130(%rsp), %r8d
callq 0x317a0
movq 0x178(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x670(%rsp)
movss 0x6a4(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jbe 0x51c54
xorps %xmm0, %xmm0
ucomiss 0x6a4(%rsp), %xmm0
jbe 0x4fb05
xorps %xmm0, %xmm0
movss %xmm0, 0x12c(%rsp)
jmp 0x4fb52
movss 0x6a4(%rsp), %xmm0
movss 0x7860a(%rip), %xmm1    # 0xc8120
ucomiss %xmm1, %xmm0
jbe 0x4fb2e
movss 0x785fd(%rip), %xmm0    # 0xc8120
movss %xmm0, 0x128(%rsp)
jmp 0x4fb40
movss 0x6a4(%rsp), %xmm0
movss %xmm0, 0x128(%rsp)
movss 0x128(%rsp), %xmm0
movss %xmm0, 0x12c(%rsp)
movq 0x188(%rsp), %rdi
movss 0x12c(%rsp), %xmm0
movss 0x785ed(%rip), %xmm1    # 0xc8158
mulss %xmm1, %xmm0
movss %xmm0, 0x66c(%rsp)
movl $0x0, 0x668(%rsp)
leaq 0x668(%rsp), %rsi
callq 0x5a450
movq %rax, 0x120(%rsp)
jmp 0x4fb9a
movq 0x120(%rsp), %rax
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x664(%rsp)
movss 0x668(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jne 0x4fc22
jp 0x4fc22
movss 0x668(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jb 0x4fc22
movss 0x78554(%rip), %xmm0    # 0xc8134
ucomiss 0x664(%rsp), %xmm0
jb 0x4fc22
xorps %xmm0, %xmm0
movss %xmm0, 0x668(%rsp)
movss 0x78536(%rip), %xmm0    # 0xc8134
movss %xmm0, 0x664(%rsp)
jmp 0x4fc22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x698(%rsp)
movl %eax, 0x694(%rsp)
jmp 0x52b2a
movq 0x188(%rsp), %rsi
movl (%rsi), %ecx
movl 0xc(%rsi), %edx
decl %edx
movq %rsp, %rax
movl %edx, 0x18(%rax)
movl %ecx, (%rax)
movl $0x0, 0x20(%rax)
movl $0x0, 0x10(%rax)
movl $0x1, 0x8(%rax)
leaq 0x620(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %r9d, %r9d
movl %r9d, %ecx
movl %r9d, %r8d
callq 0x52ef0
jmp 0x4fc6b
leaq 0x640(%rsp), %rdi
leaq 0x620(%rsp), %rsi
callq 0x5a650
jmp 0x4fc82
leaq 0x620(%rsp), %rdi
callq 0x31e50
leaq 0x640(%rsp), %rdi
movl $0x1, %esi
xorl %r8d, %r8d
movl %r8d, %edx
movl %r8d, %ecx
callq 0x5aa00
movq %rax, 0x118(%rsp)
jmp 0x4fcb4
movq 0x118(%rsp), %rax
movq %rax, 0x618(%rsp)
leaq 0x640(%rsp), %rdi
movl $0x1, %edx
xorl %r8d, %r8d
movl %edx, %esi
movl %r8d, %ecx
callq 0x5aa00
movq %rax, 0x110(%rsp)
jmp 0x4fce8
movq 0x188(%rsp), %rax
movq 0x110(%rsp), %rcx
movq %rcx, 0x610(%rsp)
movl 0x640(%rsp), %ecx
movl 0x644(%rsp), %edx
imulq %rdx, %rcx
movl 0x648(%rsp), %edx
imulq %rdx, %rcx
movq %rcx, 0x608(%rsp)
movl 0xc(%rax), %eax
movl %eax, 0x10c(%rsp)
subl $0x1, %eax
je 0x4fda9
jmp 0x4fd36
movl 0x10c(%rsp), %eax
subl $0x2, %eax
je 0x5026e
jmp 0x4fd48
movl 0x10c(%rsp), %eax
subl $0x3, %eax
je 0x50a36
jmp 0x51502
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x698(%rsp)
movl %eax, 0x694(%rsp)
leaq 0x620(%rsp), %rdi
callq 0x31e50
jmp 0x52b2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x698(%rsp)
movl %eax, 0x694(%rsp)
leaq 0x640(%rsp), %rdi
callq 0x31710
jmp 0x52b2a
movl $0x0, 0x604(%rsp)
movq 0x188(%rsp), %rcx
movl 0x604(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x50269
movl $0x0, 0x600(%rsp)
movq 0x188(%rsp), %rcx
movl 0x600(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x50251
movq 0x188(%rsp), %rdi
movl 0x600(%rsp), %eax
movl %eax, 0x108(%rsp)
callq 0x54710
movl %eax, %ecx
movl 0x108(%rsp), %eax
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x4fed7
movq 0x188(%rsp), %rdi
movq 0x610(%rsp), %rax
movq %rax, 0x5f8(%rsp)
movl 0x600(%rsp), %edx
incl %edx
movl 0x604(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, %esi
callq 0x52b60
movq %rax, 0x100(%rsp)
jmp 0x4fe5b
movq 0x100(%rsp), %rax
movq %rax, 0x5f0(%rsp)
movl $0x0, 0x5ec(%rsp)
movq 0x188(%rsp), %rcx
movl 0x5ec(%rsp), %eax
cmpl (%rcx), %eax
jge 0x4fed5
movq 0x5f0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x5f0(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x5f8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x5f8(%rsp)
movss %xmm0, (%rax)
movl 0x5ec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5ec(%rsp)
jmp 0x4fe76
jmp 0x4fed7
movq 0x618(%rsp), %rax
movq %rax, 0x5e0(%rsp)
movq 0x610(%rsp), %rax
movq %rax, 0x5d8(%rsp)
movl $0x0, 0x5d4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x5d4(%rsp), %eax
cmpl (%rcx), %eax
jge 0x50222
movq 0x5e0(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x5d0(%rsp)
movss 0x5d0(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4ff59
movss 0x668(%rsp), %xmm0
movss %xmm0, 0xfc(%rsp)
jmp 0x4ffa4
movss 0x5d0(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x4ff80
movss 0x664(%rsp), %xmm0
movss %xmm0, 0xf8(%rsp)
jmp 0x4ff92
movss 0x5d0(%rsp), %xmm0
movss %xmm0, 0xf8(%rsp)
movss 0xf8(%rsp), %xmm0
movss %xmm0, 0xfc(%rsp)
movss 0xfc(%rsp), %xmm0
movss %xmm0, 0x5cc(%rsp)
callq 0x5aa80
movss %xmm0, 0xf4(%rsp)
jmp 0x4ffc6
movss 0xf4(%rsp), %xmm0
movss %xmm0, 0x5c8(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x5c0(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x5b8(%rsp)
movq 0x5b8(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x5b0(%rsp)
movq 0x5b8(%rsp), %rax
cmpq 0x5b0(%rsp), %rax
jae 0x500ba
movq 0x5b8(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x5b8(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss 0x5cc(%rsp), %xmm0
movss %xmm0, 0x5ac(%rsp)
movss 0x5ac(%rsp), %xmm0
mulss 0x5ac(%rsp), %xmm0
movss %xmm0, 0x5a8(%rsp)
movss 0x5a8(%rsp), %xmm1
movss 0x5c8(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x500b5
movq 0x5b8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x5c0(%rsp)
movss 0x5a8(%rsp), %xmm0
movss %xmm0, 0x5c8(%rsp)
jmp 0x50018
movss 0x5cc(%rsp), %xmm0
movq 0x5e0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x5e0(%rsp)
movss %xmm0, (%rax)
movq 0x5c0(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
mulss 0x66c(%rsp), %xmm0
movss %xmm0, 0x5a4(%rsp)
movss 0x5a4(%rsp), %xmm0
movq 0x5e0(%rsp), %rax
movss (%rax), %xmm1
movss 0x7803c(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x5a4(%rsp), %xmm0
movq 0x5d8(%rsp), %rax
movss -0x4(%rax), %xmm1
movss 0x77ffe(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4(%rax)
movss 0x5a4(%rsp), %xmm0
movq 0x5d8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x5d8(%rsp)
movss (%rax), %xmm1
movss 0x77fcd(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x5a4(%rsp), %xmm0
movq 0x5d8(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
testb $0x1, 0x6a3(%rsp)
je 0x501d8
movq 0x5c0(%rsp), %rax
movzbl (%rax), %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
jmp 0x5020a
movq 0x5c0(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
jmp 0x5020c
movl 0x5d4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5d4(%rsp)
jmp 0x4ff02
leaq 0x618(%rsp), %rdi
leaq 0x610(%rsp), %rsi
callq 0x5aa90
jmp 0x50239
jmp 0x5023b
movl 0x600(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x600(%rsp)
jmp 0x4fdd7
jmp 0x50253
movl 0x604(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x604(%rsp)
jmp 0x4fdb4
jmp 0x51c42
movq 0x670(%rsp), %rax
movq 0x688(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x598(%rsp)
movl $0x0, 0x594(%rsp)
movq 0x188(%rsp), %rcx
movl 0x594(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x50a31
movl $0x0, 0x590(%rsp)
movq 0x188(%rsp), %rcx
movl 0x590(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x50a19
movq 0x188(%rsp), %rdi
movl 0x590(%rsp), %eax
movl %eax, 0xf0(%rsp)
callq 0x54710
movl %eax, %ecx
movl 0xf0(%rsp), %eax
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x50436
movq 0x188(%rsp), %rdi
movq 0x610(%rsp), %rax
movq %rax, 0x588(%rsp)
movq 0x588(%rsp), %rax
movq 0x608(%rsp), %rcx
leaq (%rax,%rcx,4), %rax
movq %rax, 0x580(%rsp)
movl 0x590(%rsp), %edx
incl %edx
movl 0x594(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, %esi
callq 0x52b60
movq %rax, 0xe8(%rsp)
jmp 0x5035b
movq 0xe8(%rsp), %rax
movq %rax, 0x578(%rsp)
movq 0x578(%rsp), %rax
movq 0x688(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x570(%rsp)
movl $0x0, 0x56c(%rsp)
movq 0x188(%rsp), %rcx
movl 0x56c(%rsp), %eax
cmpl (%rcx), %eax
jge 0x50434
movq 0x578(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x578(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x588(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x588(%rsp)
movss %xmm0, (%rax)
movq 0x570(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x570(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x580(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x580(%rsp)
movss %xmm0, (%rax)
movl 0x56c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x56c(%rsp)
jmp 0x50395
jmp 0x50436
movq 0x618(%rsp), %rax
movq %rax, 0x560(%rsp)
movq 0x560(%rsp), %rax
movq 0x608(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x558(%rsp)
movq 0x610(%rsp), %rax
movq %rax, 0x550(%rsp)
movq 0x550(%rsp), %rax
movq 0x608(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x548(%rsp)
movl $0x0, 0x544(%rsp)
movq 0x188(%rsp), %rcx
movl 0x544(%rsp), %eax
cmpl (%rcx), %eax
jge 0x509ea
movq 0x560(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x540(%rsp)
movss 0x540(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x504f6
movss 0x668(%rsp), %xmm0
movss %xmm0, 0xe4(%rsp)
jmp 0x50541
movss 0x540(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x5051d
movss 0x664(%rsp), %xmm0
movss %xmm0, 0xe0(%rsp)
jmp 0x5052f
movss 0x540(%rsp), %xmm0
movss %xmm0, 0xe0(%rsp)
movss 0xe0(%rsp), %xmm0
movss %xmm0, 0xe4(%rsp)
movss 0xe4(%rsp), %xmm0
movss %xmm0, 0x53c(%rsp)
movq 0x558(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x538(%rsp)
movss 0x538(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x50593
movss 0x668(%rsp), %xmm0
movss %xmm0, 0xdc(%rsp)
jmp 0x505de
movss 0x538(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x505ba
movss 0x664(%rsp), %xmm0
movss %xmm0, 0xd8(%rsp)
jmp 0x505cc
movss 0x538(%rsp), %xmm0
movss %xmm0, 0xd8(%rsp)
movss 0xd8(%rsp), %xmm0
movss %xmm0, 0xdc(%rsp)
movss 0xdc(%rsp), %xmm0
movss %xmm0, 0x534(%rsp)
callq 0x5aa80
movss %xmm0, 0xd4(%rsp)
jmp 0x50600
movss 0xd4(%rsp), %xmm0
movss %xmm0, 0x530(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x528(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x520(%rsp)
movq 0x520(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x518(%rsp)
movq 0x518(%rsp), %rax
movq %rax, 0x510(%rsp)
movq 0x520(%rsp), %rax
cmpq 0x510(%rsp), %rax
jae 0x50751
movq 0x520(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x520(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x53c(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x50c(%rsp)
movq 0x518(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x518(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss 0x534(%rsp), %xmm0
movss %xmm0, 0x508(%rsp)
movss 0x50c(%rsp), %xmm0
movss 0x50c(%rsp), %xmm2
movss 0x508(%rsp), %xmm1
mulss 0x508(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x504(%rsp)
movss 0x504(%rsp), %xmm1
movss 0x530(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x5074c
movq 0x520(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x528(%rsp)
movss 0x504(%rsp), %xmm0
movss %xmm0, 0x530(%rsp)
jmp 0x50662
movq 0x528(%rsp), %rax
movq 0x680(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x4f8(%rsp)
movss 0x53c(%rsp), %xmm0
movq 0x560(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x560(%rsp)
movss %xmm0, (%rax)
movq 0x528(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
movss 0x66c(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x4f4(%rsp)
movss 0x534(%rsp), %xmm0
movq 0x558(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x558(%rsp)
movss %xmm0, (%rax)
movq 0x4f8(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
mulss 0x66c(%rsp), %xmm0
movss %xmm0, 0x4f0(%rsp)
movss 0x4f4(%rsp), %xmm0
movq 0x560(%rsp), %rax
movss (%rax), %xmm1
movss 0x7793d(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x4f0(%rsp), %xmm0
movq 0x558(%rsp), %rax
movss (%rax), %xmm1
movss 0x77914(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x4f4(%rsp), %xmm0
movq 0x550(%rsp), %rax
movss -0x4(%rax), %xmm1
movss 0x778d6(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4(%rax)
movss 0x4f0(%rsp), %xmm0
movq 0x548(%rsp), %rax
movss -0x4(%rax), %xmm1
movss 0x778ab(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4(%rax)
movss 0x4f4(%rsp), %xmm0
movq 0x550(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x550(%rsp)
movss (%rax), %xmm1
movss 0x7787a(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x4f0(%rsp), %xmm0
movq 0x548(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x548(%rsp)
movss (%rax), %xmm1
movss 0x77842(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x4f4(%rsp), %xmm0
movq 0x550(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
movss 0x4f0(%rsp), %xmm0
movq 0x548(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
testb $0x1, 0x6a3(%rsp)
je 0x509a0
movq 0x528(%rsp), %rax
movzbl (%rax), %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
movq 0x4f8(%rsp), %rax
movzbl (%rax), %ecx
movq 0x598(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x598(%rsp)
movl %ecx, (%rax)
jmp 0x509d2
movq 0x528(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
jmp 0x509d4
movl 0x544(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x544(%rsp)
jmp 0x5049f
leaq 0x618(%rsp), %rdi
leaq 0x610(%rsp), %rsi
callq 0x5aa90
jmp 0x50a01
jmp 0x50a03
movl 0x590(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x590(%rsp)
jmp 0x502bb
jmp 0x50a1b
movl 0x594(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x594(%rsp)
jmp 0x50298
jmp 0x51c42
movq 0x670(%rsp), %rax
movq 0x688(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x4e8(%rsp)
movq 0x4e8(%rsp), %rax
movq 0x688(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x4e0(%rsp)
movl $0x0, 0x4dc(%rsp)
movq 0x188(%rsp), %rcx
movl 0x4dc(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x514fd
movl $0x0, 0x4d8(%rsp)
movq 0x188(%rsp), %rcx
movl 0x4d8(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x514e5
movq 0x188(%rsp), %rdi
movl 0x4d8(%rsp), %eax
movl %eax, 0xd0(%rsp)
callq 0x54710
movl %eax, %ecx
movl 0xd0(%rsp), %eax
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x50c91
movq 0x188(%rsp), %rdi
movq 0x610(%rsp), %rax
movq %rax, 0x4d0(%rsp)
movq 0x4d0(%rsp), %rax
movq 0x608(%rsp), %rcx
leaq (%rax,%rcx,4), %rax
movq %rax, 0x4c8(%rsp)
movq 0x4c8(%rsp), %rax
movq 0x608(%rsp), %rcx
leaq (%rax,%rcx,4), %rax
movq %rax, 0x4c0(%rsp)
movl 0x4d8(%rsp), %edx
incl %edx
movl 0x4dc(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, %esi
callq 0x52b60
movq %rax, 0xc8(%rsp)
jmp 0x50b5e
movq 0xc8(%rsp), %rax
movq %rax, 0x4b8(%rsp)
movq 0x4b8(%rsp), %rax
movq 0x688(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x4b0(%rsp)
movq 0x4b0(%rsp), %rax
movq 0x688(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x4a8(%rsp)
movl $0x0, 0x4a4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x4a4(%rsp), %eax
cmpl (%rcx), %eax
jge 0x50c8f
movq 0x4b8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x4b8(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x4d0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x4d0(%rsp)
movss %xmm0, (%rax)
movq 0x4b0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x4b0(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x4c8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x4c8(%rsp)
movss %xmm0, (%rax)
movq 0x4a8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x4a8(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x4c0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x4c0(%rsp)
movss %xmm0, (%rax)
movl 0x4a4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4a4(%rsp)
jmp 0x50bb7
jmp 0x50c91
movq 0x618(%rsp), %rax
movq %rax, 0x498(%rsp)
movq 0x498(%rsp), %rax
movq 0x608(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x490(%rsp)
movq 0x490(%rsp), %rax
movq 0x608(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x488(%rsp)
movq 0x610(%rsp), %rax
movq %rax, 0x480(%rsp)
movq 0x480(%rsp), %rax
movq 0x608(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x478(%rsp)
movq 0x478(%rsp), %rax
movq 0x608(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x470(%rsp)
movl $0x0, 0x46c(%rsp)
movq 0x188(%rsp), %rcx
movl 0x46c(%rsp), %eax
cmpl (%rcx), %eax
jge 0x514b6
movq 0x498(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x468(%rsp)
movss 0x468(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x50d8f
movss 0x668(%rsp), %xmm0
movss %xmm0, 0xc4(%rsp)
jmp 0x50dda
movss 0x468(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x50db6
movss 0x664(%rsp), %xmm0
movss %xmm0, 0xc0(%rsp)
jmp 0x50dc8
movss 0x468(%rsp), %xmm0
movss %xmm0, 0xc0(%rsp)
movss 0xc0(%rsp), %xmm0
movss %xmm0, 0xc4(%rsp)
movss 0xc4(%rsp), %xmm0
movss %xmm0, 0x464(%rsp)
movq 0x490(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x460(%rsp)
movss 0x460(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x50e2c
movss 0x668(%rsp), %xmm0
movss %xmm0, 0xbc(%rsp)
jmp 0x50e77
movss 0x460(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x50e53
movss 0x664(%rsp), %xmm0
movss %xmm0, 0xb8(%rsp)
jmp 0x50e65
movss 0x460(%rsp), %xmm0
movss %xmm0, 0xb8(%rsp)
movss 0xb8(%rsp), %xmm0
movss %xmm0, 0xbc(%rsp)
movss 0xbc(%rsp), %xmm0
movss %xmm0, 0x45c(%rsp)
movq 0x488(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x458(%rsp)
movss 0x458(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x50ec9
movss 0x668(%rsp), %xmm0
movss %xmm0, 0xb4(%rsp)
jmp 0x50f14
movss 0x458(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x50ef0
movss 0x664(%rsp), %xmm0
movss %xmm0, 0xb0(%rsp)
jmp 0x50f02
movss 0x458(%rsp), %xmm0
movss %xmm0, 0xb0(%rsp)
movss 0xb0(%rsp), %xmm0
movss %xmm0, 0xb4(%rsp)
movss 0xb4(%rsp), %xmm0
movss %xmm0, 0x454(%rsp)
callq 0x5aa80
movss %xmm0, 0xac(%rsp)
jmp 0x50f36
movss 0xac(%rsp), %xmm0
movss %xmm0, 0x450(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x448(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x440(%rsp)
movq 0x440(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x438(%rsp)
movq 0x438(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x430(%rsp)
movq 0x438(%rsp), %rax
movq %rax, 0x428(%rsp)
movq 0x440(%rsp), %rax
cmpq 0x428(%rsp), %rax
jae 0x510ec
movq 0x440(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x440(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x464(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x424(%rsp)
movq 0x438(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x438(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x45c(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x420(%rsp)
movq 0x430(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x430(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss 0x454(%rsp), %xmm0
movss %xmm0, 0x41c(%rsp)
movss 0x424(%rsp), %xmm1
movss 0x424(%rsp), %xmm2
movss 0x420(%rsp), %xmm0
mulss 0x420(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss 0x41c(%rsp), %xmm0
movss 0x41c(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x418(%rsp)
movss 0x418(%rsp), %xmm1
movss 0x450(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x510e7
movq 0x440(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x448(%rsp)
movss 0x418(%rsp), %xmm0
movss %xmm0, 0x450(%rsp)
jmp 0x50fb0
movq 0x448(%rsp), %rax
movq 0x680(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x410(%rsp)
movq 0x410(%rsp), %rax
movq 0x680(%rsp), %rcx
addq %rcx, %rax
movq %rax, 0x408(%rsp)
movss 0x464(%rsp), %xmm0
movq 0x498(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x498(%rsp)
movss %xmm0, (%rax)
movq 0x448(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
movss 0x66c(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x404(%rsp)
movss 0x45c(%rsp), %xmm0
movq 0x490(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x490(%rsp)
movss %xmm0, (%rax)
movq 0x410(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
movss 0x66c(%rsp), %xmm1
mulss %xmm1, %xmm0
movss %xmm0, 0x400(%rsp)
movss 0x454(%rsp), %xmm0
movq 0x488(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x488(%rsp)
movss %xmm0, (%rax)
movq 0x408(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
mulss 0x66c(%rsp), %xmm0
movss %xmm0, 0x3fc(%rsp)
movss 0x404(%rsp), %xmm0
movq 0x498(%rsp), %rax
movss (%rax), %xmm1
movss 0x76f3a(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x400(%rsp), %xmm0
movq 0x490(%rsp), %rax
movss (%rax), %xmm1
movss 0x76f11(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x3fc(%rsp), %xmm0
movq 0x488(%rsp), %rax
movss (%rax), %xmm1
movss 0x76ee8(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x404(%rsp), %xmm0
movq 0x480(%rsp), %rax
movss -0x4(%rax), %xmm1
movss 0x76eaa(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4(%rax)
movss 0x400(%rsp), %xmm0
movq 0x478(%rsp), %rax
movss -0x4(%rax), %xmm1
movss 0x76e7f(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4(%rax)
movss 0x3fc(%rsp), %xmm0
movq 0x470(%rsp), %rax
movss -0x4(%rax), %xmm1
movss 0x76e54(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x4(%rax)
movss 0x404(%rsp), %xmm0
movq 0x480(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x480(%rsp)
movss (%rax), %xmm1
movss 0x76e23(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x400(%rsp), %xmm0
movq 0x478(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x478(%rsp)
movss (%rax), %xmm1
movss 0x76deb(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x3fc(%rsp), %xmm0
movq 0x470(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x470(%rsp)
movss (%rax), %xmm1
movss 0x76db3(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x404(%rsp), %xmm0
movq 0x480(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
movss 0x400(%rsp), %xmm0
movq 0x478(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
movss 0x3fc(%rsp), %xmm0
movq 0x470(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
testb $0x1, 0x6a3(%rsp)
je 0x5146c
movq 0x448(%rsp), %rax
movzbl (%rax), %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
movq 0x410(%rsp), %rax
movzbl (%rax), %ecx
movq 0x4e8(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x4e8(%rsp)
movl %ecx, (%rax)
movq 0x408(%rsp), %rax
movzbl (%rax), %ecx
movq 0x4e0(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x4e0(%rsp)
movl %ecx, (%rax)
jmp 0x5149e
movq 0x448(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
jmp 0x514a0
movl 0x46c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x46c(%rsp)
jmp 0x50d38
leaq 0x618(%rsp), %rdi
leaq 0x610(%rsp), %rsi
callq 0x5aa90
jmp 0x514cd
jmp 0x514cf
movl 0x4d8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4d8(%rsp)
jmp 0x50aa2
jmp 0x514e7
movl 0x4dc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4dc(%rsp)
jmp 0x50a7f
jmp 0x51c42
movl $0x0, 0x3f8(%rsp)
movq 0x188(%rsp), %rcx
movl 0x3f8(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x51c40
movl $0x0, 0x3f4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x3f4(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x51c28
movq 0x188(%rsp), %rdi
movl 0x3f4(%rsp), %eax
movl %eax, 0xa8(%rsp)
callq 0x54710
movl %eax, %ecx
movl 0xa8(%rsp), %eax
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x51699
movq 0x610(%rsp), %rax
movq %rax, 0x3e8(%rsp)
movl $0x0, 0x3e4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x3e4(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x51697
movq 0x188(%rsp), %rdi
movq 0x3e8(%rsp), %rax
movq %rax, 0x3d8(%rsp)
movl 0x3f4(%rsp), %edx
incl %edx
movl 0x3f8(%rsp), %ecx
movl 0x3e4(%rsp), %r8d
xorl %esi, %esi
callq 0x52b60
movq %rax, 0xa0(%rsp)
jmp 0x515eb
movq 0xa0(%rsp), %rax
movq %rax, 0x3d0(%rsp)
movl $0x0, 0x3cc(%rsp)
movq 0x188(%rsp), %rcx
movl 0x3cc(%rsp), %eax
cmpl (%rcx), %eax
jge 0x51665
movq 0x3d0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x3d0(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x3d8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x3d8(%rsp)
movss %xmm0, (%rax)
movl 0x3cc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3cc(%rsp)
jmp 0x51606
movq 0x608(%rsp), %rax
shlq $0x2, %rax
addq 0x3e8(%rsp), %rax
movq %rax, 0x3e8(%rsp)
movl 0x3e4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3e4(%rsp)
jmp 0x51592
jmp 0x51699
movq 0x618(%rsp), %rax
movq %rax, 0x3c0(%rsp)
movq 0x610(%rsp), %rax
movq %rax, 0x3b8(%rsp)
movl $0x0, 0x3b4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x3b4(%rsp), %eax
cmpl (%rcx), %eax
jge 0x51bf9
callq 0x5aa80
movss %xmm0, 0x9c(%rsp)
jmp 0x516eb
movss 0x9c(%rsp), %xmm0
movss %xmm0, 0x3b0(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x3a8(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x3a0(%rsp)
movq 0x3a0(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x398(%rsp)
movq 0x3a0(%rsp), %rax
cmpq 0x398(%rsp), %rax
jae 0x51930
xorps %xmm0, %xmm0
movss %xmm0, 0x394(%rsp)
movq 0x3c0(%rsp), %rax
movq %rax, 0x388(%rsp)
movq 0x3a0(%rsp), %rax
movq %rax, 0x380(%rsp)
movl $0x0, 0x37c(%rsp)
movq 0x188(%rsp), %rcx
movl 0x37c(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x518dc
movq 0x388(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x378(%rsp)
movss 0x378(%rsp), %xmm1
movss 0x668(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x517e2
movss 0x668(%rsp), %xmm0
movss %xmm0, 0x98(%rsp)
jmp 0x5182d
movss 0x378(%rsp), %xmm0
ucomiss 0x664(%rsp), %xmm0
jbe 0x51809
movss 0x664(%rsp), %xmm0
movss %xmm0, 0x94(%rsp)
jmp 0x5181b
movss 0x378(%rsp), %xmm0
movss %xmm0, 0x94(%rsp)
movss 0x94(%rsp), %xmm0
movss %xmm0, 0x98(%rsp)
movss 0x98(%rsp), %xmm0
movss %xmm0, 0x374(%rsp)
movss 0x374(%rsp), %xmm0
movq 0x388(%rsp), %rax
movss %xmm0, (%rax)
movq 0x380(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
callq 0x5aad0
movss %xmm0, 0x90(%rsp)
jmp 0x51877
movss 0x90(%rsp), %xmm0
addss 0x394(%rsp), %xmm0
movss %xmm0, 0x394(%rsp)
movq 0x608(%rsp), %rax
shlq $0x2, %rax
addq 0x388(%rsp), %rax
movq %rax, 0x388(%rsp)
movq 0x680(%rsp), %rax
addq 0x380(%rsp), %rax
movq %rax, 0x380(%rsp)
movl 0x37c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x37c(%rsp)
jmp 0x5178a
movss 0x394(%rsp), %xmm1
movss 0x3b0(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x51915
movq 0x3a0(%rsp), %rax
movq %rax, 0x3a8(%rsp)
movss 0x394(%rsp), %xmm0
movss %xmm0, 0x3b0(%rsp)
jmp 0x51917
movq 0x3a0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x3a0(%rsp)
jmp 0x5173d
movq 0x3a8(%rsp), %rax
movq %rax, 0x368(%rsp)
movq 0x3c0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x3c0(%rsp)
movq %rax, 0x360(%rsp)
movq 0x3b8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x3b8(%rsp)
addq $-0x4, %rax
movq %rax, 0x358(%rsp)
movl $0x0, 0x354(%rsp)
movq 0x188(%rsp), %rcx
movl 0x354(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x51b05
movq 0x360(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x360(%rsp)
movss (%rax), %xmm0
movq 0x368(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
mulss 0x66c(%rsp), %xmm0
movss %xmm0, 0x350(%rsp)
movss 0x350(%rsp), %xmm0
movq 0x360(%rsp), %rax
movss (%rax), %xmm1
movss 0x7675a(%rip), %xmm2    # 0xc815c
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x350(%rsp), %xmm0
movq 0x358(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x358(%rsp)
movss (%rax), %xmm1
movss 0x7670e(%rip), %xmm2    # 0xc8148
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x350(%rsp), %xmm0
movq 0x358(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x358(%rsp)
movss (%rax), %xmm1
movss 0x766de(%rip), %xmm2    # 0xc8150
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss 0x350(%rsp), %xmm0
movq 0x358(%rsp), %rax
addss (%rax), %xmm0
movss %xmm0, (%rax)
movq 0x680(%rsp), %rax
addq 0x368(%rsp), %rax
movq %rax, 0x368(%rsp)
movq 0x608(%rsp), %rax
subq $0x1, %rax
shlq $0x2, %rax
addq 0x360(%rsp), %rax
movq %rax, 0x360(%rsp)
movq 0x608(%rsp), %rax
subq $0x2, %rax
shlq $0x2, %rax
addq 0x358(%rsp), %rax
movq %rax, 0x358(%rsp)
movl 0x354(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x354(%rsp)
jmp 0x5198d
testb $0x1, 0x6a3(%rsp)
je 0x51baf
movq 0x670(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x670(%rsp)
movq %rax, 0x348(%rsp)
movl $0x0, 0x344(%rsp)
movq 0x188(%rsp), %rcx
movl 0x344(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x51bad
movq 0x3a8(%rsp), %rax
movzbl (%rax), %ecx
movq 0x348(%rsp), %rax
movl %ecx, (%rax)
movq 0x688(%rsp), %rax
shlq $0x2, %rax
addq 0x348(%rsp), %rax
movq %rax, 0x348(%rsp)
movq 0x680(%rsp), %rax
addq 0x3a8(%rsp), %rax
movq %rax, 0x3a8(%rsp)
movl 0x344(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x344(%rsp)
jmp 0x51b3d
jmp 0x51be1
movq 0x3a8(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x670(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x670(%rsp)
movl %ecx, (%rax)
jmp 0x51be3
movl 0x3b4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3b4(%rsp)
jmp 0x516c4
leaq 0x618(%rsp), %rdi
leaq 0x610(%rsp), %rsi
callq 0x5aa90
jmp 0x51c10
jmp 0x51c12
movl 0x3f4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3f4(%rsp)
jmp 0x51530
jmp 0x51c2a
movl 0x3f8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3f8(%rsp)
jmp 0x5150d
jmp 0x51c42
leaq 0x640(%rsp), %rdi
callq 0x31710
jmp 0x52b09
movq 0x188(%rsp), %rax
movl 0xc(%rax), %eax
movl %eax, 0x8c(%rsp)
subl $0x1, %eax
je 0x51c94
jmp 0x51c6d
movl 0x8c(%rsp), %eax
subl $0x2, %eax
je 0x51f3d
jmp 0x51c7f
movl 0x8c(%rsp), %eax
subl $0x3, %eax
je 0x522cc
jmp 0x52756
movl $0x0, 0x340(%rsp)
movq 0x188(%rsp), %rcx
movl 0x340(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x51f38
movl $0x0, 0x33c(%rsp)
movq 0x188(%rsp), %rcx
movl 0x33c(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x51f20
movq 0x178(%rsp), %rdi
movl 0x33c(%rsp), %edx
movl 0x340(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, 0x7c(%rsp)
movl %r8d, %esi
callq 0x558e0
movq 0x188(%rsp), %rdi
movl 0x7c(%rsp), %r8d
movq %rax, 0x330(%rsp)
movl 0x33c(%rsp), %edx
movl 0x340(%rsp), %ecx
movl %r8d, %esi
callq 0x52b60
movq %rax, 0x80(%rsp)
jmp 0x51d35
movq 0x188(%rsp), %rcx
movq 0x80(%rsp), %rax
movq %rax, 0x328(%rsp)
movq 0x328(%rsp), %rax
movl (%rcx), %ecx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x320(%rsp)
movq 0x328(%rsp), %rax
cmpq 0x320(%rsp), %rax
jae 0x51f08
movq 0x328(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x328(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x31c(%rsp)
callq 0x5aa80
movss %xmm0, 0x78(%rsp)
jmp 0x51db0
movss 0x78(%rsp), %xmm0
movss %xmm0, 0x318(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x310(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x308(%rsp)
movq 0x308(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x300(%rsp)
movq 0x308(%rsp), %rax
cmpq 0x300(%rsp), %rax
jae 0x51ea1
movq 0x308(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x308(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss 0x31c(%rsp), %xmm0
movss %xmm0, 0x2fc(%rsp)
movss 0x2fc(%rsp), %xmm0
mulss 0x2fc(%rsp), %xmm0
movss %xmm0, 0x2f8(%rsp)
movss 0x2f8(%rsp), %xmm1
movss 0x318(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x51e9c
movq 0x308(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x310(%rsp)
movss 0x2f8(%rsp), %xmm0
movss %xmm0, 0x318(%rsp)
jmp 0x51dff
testb $0x1, 0x6a3(%rsp)
je 0x51ed1
movq 0x310(%rsp), %rax
movzbl (%rax), %ecx
movq 0x330(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x330(%rsp)
movl %ecx, (%rax)
jmp 0x51f03
movq 0x310(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x330(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x330(%rsp)
movl %ecx, (%rax)
jmp 0x51d66
jmp 0x51f0a
movl 0x33c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x33c(%rsp)
jmp 0x51cc2
jmp 0x51f22
movl 0x340(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x340(%rsp)
jmp 0x51c9f
jmp 0x52b07
movl $0x0, 0x2f4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x2f4(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x522c7
movl $0x0, 0x2f0(%rsp)
movq 0x188(%rsp), %rcx
movl 0x2f0(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x522af
movq 0x178(%rsp), %rdi
movl 0x2f0(%rsp), %edx
movl 0x2f4(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, 0x6c(%rsp)
movl %r8d, %esi
callq 0x558e0
movq 0x188(%rsp), %rdi
movl 0x6c(%rsp), %r8d
movq %rax, 0x2e8(%rsp)
movq 0x2e8(%rsp), %rax
movq 0x688(%rsp), %rcx
leaq (%rax,%rcx,4), %rax
movq %rax, 0x2e0(%rsp)
movl 0x2f0(%rsp), %edx
movl 0x2f4(%rsp), %ecx
movl %r8d, %esi
callq 0x52b60
movq %rax, 0x70(%rsp)
jmp 0x51ff7
movq 0x188(%rsp), %rcx
movq 0x70(%rsp), %rax
movq %rax, 0x2d8(%rsp)
movq 0x2d8(%rsp), %rax
movq 0x688(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rax
movq %rax, 0x2d0(%rsp)
movq 0x2d8(%rsp), %rax
movl (%rcx), %ecx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x2c8(%rsp)
movq 0x2d8(%rsp), %rax
cmpq 0x2c8(%rsp), %rax
jae 0x52297
movq 0x2d8(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x2d8(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x2c4(%rsp)
movq 0x2d0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x2d0(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x2c0(%rsp)
callq 0x5aa80
movss %xmm0, 0x68(%rsp)
jmp 0x520b5
movss 0x68(%rsp), %xmm0
movss %xmm0, 0x2bc(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x2b0(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x2a8(%rsp)
movq 0x2a8(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x2a0(%rsp)
movq 0x2a0(%rsp), %rax
movq %rax, 0x298(%rsp)
movq 0x2a8(%rsp), %rax
cmpq 0x298(%rsp), %rax
jae 0x52203
movq 0x2a8(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x2a8(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x2c4(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x294(%rsp)
movq 0x2a0(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x2a0(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss 0x2c0(%rsp), %xmm0
movss %xmm0, 0x290(%rsp)
movss 0x294(%rsp), %xmm0
movss 0x294(%rsp), %xmm2
movss 0x290(%rsp), %xmm1
mulss 0x290(%rsp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x28c(%rsp)
movss 0x28c(%rsp), %xmm1
movss 0x2bc(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x521fe
movq 0x2a8(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x2b0(%rsp)
movss 0x28c(%rsp), %xmm0
movss %xmm0, 0x2bc(%rsp)
jmp 0x52114
testb $0x1, 0x6a3(%rsp)
je 0x52260
movq 0x2b0(%rsp), %rax
movzbl (%rax), %ecx
movq 0x2e8(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x2e8(%rsp)
movl %ecx, (%rax)
movq 0x2b0(%rsp), %rax
movq 0x680(%rsp), %rcx
movzbl (%rax,%rcx), %ecx
movq 0x2e0(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x2e0(%rsp)
movl %ecx, (%rax)
jmp 0x52292
movq 0x2b0(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x2e8(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x2e8(%rsp)
movl %ecx, (%rax)
jmp 0x52044
jmp 0x52299
movl 0x2f0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2f0(%rsp)
jmp 0x51f6b
jmp 0x522b1
movl 0x2f4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2f4(%rsp)
jmp 0x51f48
jmp 0x52b07
movl $0x0, 0x288(%rsp)
movq 0x188(%rsp), %rcx
movl 0x288(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x52751
movl $0x0, 0x284(%rsp)
movq 0x188(%rsp), %rcx
movl 0x284(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x52739
movq 0x178(%rsp), %rdi
movl 0x284(%rsp), %edx
movl 0x288(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, 0x5c(%rsp)
movl %r8d, %esi
callq 0x558e0
movq 0x188(%rsp), %rdi
movl 0x5c(%rsp), %r8d
movq %rax, 0x278(%rsp)
movq 0x278(%rsp), %rax
movq 0x688(%rsp), %rcx
leaq (%rax,%rcx,4), %rax
movq %rax, 0x270(%rsp)
movq 0x270(%rsp), %rax
movq 0x688(%rsp), %rcx
leaq (%rax,%rcx,4), %rax
movq %rax, 0x268(%rsp)
movl 0x284(%rsp), %edx
movl 0x288(%rsp), %ecx
movl %r8d, %esi
callq 0x52b60
movq %rax, 0x60(%rsp)
jmp 0x523a2
movq 0x188(%rsp), %rcx
movq 0x60(%rsp), %rax
movq %rax, 0x260(%rsp)
movq 0x260(%rsp), %rax
movq 0x688(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rax
movq %rax, 0x258(%rsp)
movq 0x258(%rsp), %rax
movq 0x688(%rsp), %rdx
shlq $0x2, %rdx
addq %rdx, %rax
movq %rax, 0x250(%rsp)
movq 0x260(%rsp), %rax
movl (%rcx), %ecx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x248(%rsp)
movq 0x260(%rsp), %rax
cmpq 0x248(%rsp), %rax
jae 0x52721
movq 0x260(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x260(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x244(%rsp)
movq 0x258(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x258(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x240(%rsp)
movq 0x250(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x250(%rsp)
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movss %xmm0, 0x23c(%rsp)
callq 0x5aa80
movss %xmm0, 0x58(%rsp)
jmp 0x524a6
movss 0x58(%rsp), %xmm0
movss %xmm0, 0x238(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x230(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x228(%rsp)
movq 0x228(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x220(%rsp)
movq 0x220(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x218(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0x210(%rsp)
movq 0x228(%rsp), %rax
cmpq 0x210(%rsp), %rax
jae 0x52659
movq 0x228(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x228(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x244(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x20c(%rsp)
movq 0x220(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x220(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x240(%rsp), %xmm1
subss %xmm1, %xmm0
movss %xmm0, 0x208(%rsp)
movq 0x218(%rsp), %rax
movq %rax, %rcx
incq %rcx
movq %rcx, 0x218(%rsp)
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm0
subss 0x23c(%rsp), %xmm0
movss %xmm0, 0x204(%rsp)
movss 0x20c(%rsp), %xmm1
movss 0x20c(%rsp), %xmm2
movss 0x208(%rsp), %xmm0
mulss 0x208(%rsp), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss 0x204(%rsp), %xmm0
movss 0x204(%rsp), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x200(%rsp)
movss 0x200(%rsp), %xmm1
movss 0x238(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x52654
movq 0x228(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x230(%rsp)
movss 0x200(%rsp), %xmm0
movss %xmm0, 0x238(%rsp)
jmp 0x5251d
testb $0x1, 0x6a3(%rsp)
je 0x526ea
movq 0x230(%rsp), %rax
movzbl (%rax), %ecx
movq 0x278(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x278(%rsp)
movl %ecx, (%rax)
movq 0x230(%rsp), %rax
movq 0x680(%rsp), %rcx
movzbl (%rax,%rcx), %ecx
movq 0x270(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x270(%rsp)
movl %ecx, (%rax)
movq 0x230(%rsp), %rax
movq 0x680(%rsp), %rcx
shlq %rcx
movzbl (%rax,%rcx), %ecx
movq 0x268(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x268(%rsp)
movl %ecx, (%rax)
jmp 0x5271c
movq 0x230(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x278(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x278(%rsp)
movl %ecx, (%rax)
jmp 0x5240e
jmp 0x52723
movl 0x284(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x284(%rsp)
jmp 0x522fa
jmp 0x5273b
movl 0x288(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x288(%rsp)
jmp 0x522d7
jmp 0x52b07
movl $0x0, 0x1fc(%rsp)
movq 0x188(%rsp), %rcx
movl 0x1fc(%rsp), %eax
cmpl 0x8(%rcx), %eax
jge 0x52b05
movl $0x0, 0x1f8(%rsp)
movq 0x188(%rsp), %rcx
movl 0x1f8(%rsp), %eax
cmpl 0x4(%rcx), %eax
jge 0x52aed
movq 0x178(%rsp), %rdi
movl 0x1f8(%rsp), %edx
movl 0x1fc(%rsp), %ecx
xorl %r8d, %r8d
movl %r8d, 0x4c(%rsp)
movl %r8d, %esi
callq 0x558e0
movq 0x188(%rsp), %rdi
movl 0x4c(%rsp), %r8d
movq %rax, 0x1f0(%rsp)
movl 0x1f8(%rsp), %edx
movl 0x1fc(%rsp), %ecx
movl %r8d, %esi
callq 0x52b60
movq %rax, 0x50(%rsp)
jmp 0x527f4
movq 0x188(%rsp), %rcx
movq 0x50(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movq 0x1e8(%rsp), %rax
movl (%rcx), %ecx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x1e0(%rsp)
movq 0x1e8(%rsp), %rax
cmpq 0x1e0(%rsp), %rax
jae 0x52ad5
callq 0x5aa80
movss %xmm0, 0x48(%rsp)
jmp 0x52845
movss 0x48(%rsp), %xmm0
movss %xmm0, 0x1dc(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x1d0(%rsp)
movq 0x6a8(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x1c8(%rsp)
movq 0x1c8(%rsp), %rax
addq 0x680(%rsp), %rax
movq %rax, 0x1c0(%rsp)
movq 0x1c8(%rsp), %rax
cmpq 0x1c0(%rsp), %rax
jae 0x529de
xorps %xmm0, %xmm0
movss %xmm0, 0x1bc(%rsp)
movq 0x1e8(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq 0x1c8(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movl $0x0, 0x1a4(%rsp)
movq 0x188(%rsp), %rcx
movl 0x1a4(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x5298a
movq 0x1b0(%rsp), %rax
movl (%rax), %eax
cvtsi2ss %rax, %xmm0
movq 0x1a8(%rsp), %rax
movzbl (%rax), %eax
cvtsi2ss %eax, %xmm1
subss %xmm1, %xmm0
callq 0x5aad0
movss %xmm0, 0x44(%rsp)
jmp 0x52928
movss 0x44(%rsp), %xmm0
addss 0x1bc(%rsp), %xmm0
movss %xmm0, 0x1bc(%rsp)
movq 0x688(%rsp), %rax
shlq $0x2, %rax
addq 0x1b0(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq 0x680(%rsp), %rax
addq 0x1a8(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movl 0x1a4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a4(%rsp)
jmp 0x528e1
movss 0x1bc(%rsp), %xmm1
movss 0x1dc(%rsp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x529c3
movq 0x1c8(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movss 0x1bc(%rsp), %xmm0
movss %xmm0, 0x1dc(%rsp)
jmp 0x529c5
movq 0x1c8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1c8(%rsp)
jmp 0x52894
testb $0x1, 0x6a3(%rsp)
je 0x52a88
movq 0x1f0(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x1f0(%rsp)
movq %rax, 0x198(%rsp)
movl $0x0, 0x194(%rsp)
movq 0x188(%rsp), %rcx
movl 0x194(%rsp), %eax
cmpl 0xc(%rcx), %eax
jge 0x52a86
movq 0x1d0(%rsp), %rax
movzbl (%rax), %ecx
movq 0x198(%rsp), %rax
movl %ecx, (%rax)
movq 0x688(%rsp), %rax
shlq $0x2, %rax
addq 0x198(%rsp), %rax
movq %rax, 0x198(%rsp)
movq 0x680(%rsp), %rax
addq 0x1d0(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movl 0x194(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x194(%rsp)
jmp 0x52a16
jmp 0x52aba
movq 0x1d0(%rsp), %rax
movq 0x6a8(%rsp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
movq 0x1f0(%rsp), %rax
movq %rax, %rdx
addq $0x4, %rdx
movq %rdx, 0x1f0(%rsp)
movl %ecx, (%rax)
jmp 0x52abc
movq 0x1e8(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x1e8(%rsp)
jmp 0x52822
jmp 0x52ad7
movl 0x1f8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1f8(%rsp)
jmp 0x52784
jmp 0x52aef
movl 0x1fc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1fc(%rsp)
jmp 0x52761
jmp 0x52b07
jmp 0x52b09
movb $0x1, 0x67f(%rsp)
testb $0x1, 0x67f(%rsp)
jne 0x52b28
movq 0x178(%rsp), %rdi
callq 0x31e50
jmp 0x52b39
movq 0x178(%rsp), %rdi
callq 0x31e50
jmp 0x52b51
movq 0x180(%rsp), %rax
addq $0x6c0, %rsp            # imm = 0x6C0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x698(%rsp), %rdi
callq 0x5970
nop