// File: /workspace/github_c_makefile_star2_O0/zpole[P]IICV/vl/sift.c
// Function: vl_sift_detect
VL_EXPORT
void
vl_sift_detect (VlSiftFilt * f)
{
  vl_sift_pix* dog   = f-> dog ;
  int          s_min = f-> s_min ;
  int          s_max = f-> s_max ;
  int          w     = f-> octave_width ;
  int          h     = f-> octave_height ;
  double       te    = f-> edge_thresh ;
  double       tp    = f-> peak_thresh ;

  int const    xo    = 1 ;      /* x-stride */
  int const    yo    = w ;      /* y-stride */
  int const    so    = w * h ;  /* s-stride */

  double       xper  = pow (2.0, f->o_cur) ;

  int x, y, s, i, ii, jj ;
  vl_sift_pix *pt, v ;
  VlSiftKeypoint *k ;

  /* clear current list */
  f-> nkeys = 0 ;

  /* compute difference of gaussian (DoG) */
  pt = f-> dog ;
  for (s = s_min ; s <= s_max - 1 ; ++s) {
    vl_sift_pix* src_a = vl_sift_get_octave (f, s    ) ;
    vl_sift_pix* src_b = vl_sift_get_octave (f, s + 1) ;
    vl_sift_pix* end_a = src_a + w * h ;
    while (src_a != end_a) {
      *pt++ = *src_b++ - *src_a++ ;
    }
  }

  /* -----------------------------------------------------------------
   *                                          Find local maxima of DoG
   * -------------------------------------------------------------- */

  /* start from dog [1,1,s_min+1] */
  pt  = dog + xo + yo + so ;

  for(s = s_min + 1 ; s <= s_max - 2 ; ++s) {
    for(y = 1 ; y < h - 1 ; ++y) {
      for(x = 1 ; x < w - 1 ; ++x) {
        v = *pt ;

#define CHECK_NEIGHBORS(CMP,SGN)                    \
        ( v CMP ## = SGN 0.8 * tp &&                \
          v CMP *(pt + xo) &&                       \
          v CMP *(pt - xo) &&                       \
          v CMP *(pt + so) &&                       \
          v CMP *(pt - so) &&                       \
          v CMP *(pt + yo) &&                       \
          v CMP *(pt - yo) &&                       \
                                                    \
          v CMP *(pt + yo + xo) &&                  \
          v CMP *(pt + yo - xo) &&                  \
          v CMP *(pt - yo + xo) &&                  \
          v CMP *(pt - yo - xo) &&                  \
                                                    \
          v CMP *(pt + xo      + so) &&             \
          v CMP *(pt - xo      + so) &&             \
          v CMP *(pt + yo      + so) &&             \
          v CMP *(pt - yo      + so) &&             \
          v CMP *(pt + yo + xo + so) &&             \
          v CMP *(pt + yo - xo + so) &&             \
          v CMP *(pt - yo + xo + so) &&             \
          v CMP *(pt - yo - xo + so) &&             \
                                                    \
          v CMP *(pt + xo      - so) &&             \
          v CMP *(pt - xo      - so) &&             \
          v CMP *(pt + yo      - so) &&             \
          v CMP *(pt - yo      - so) &&             \
          v CMP *(pt + yo + xo - so) &&             \
          v CMP *(pt + yo - xo - so) &&             \
          v CMP *(pt - yo + xo - so) &&             \
          v CMP *(pt - yo - xo - so) )

        if (CHECK_NEIGHBORS(>,+) ||
            CHECK_NEIGHBORS(<,-) ) {

          /* make room for more keypoints */
          if (f->nkeys >= f->keys_res) {
            f->keys_res += 500 ;
            if (f->keys) {
              f->keys = vl_realloc (f->keys,
                                    f->keys_res *
                                    sizeof(VlSiftKeypoint)) ;
            } else {
              f->keys = vl_malloc (f->keys_res *
                                   sizeof(VlSiftKeypoint)) ;
            }
          }

          k = f->keys + (f->nkeys ++) ;

          k-> ix = x ;
          k-> iy = y ;
          k-> is = s ;
        }
        pt += 1 ;
      }
      pt += 2 ;
    }
    pt += 2 * yo ;
  }

  /* -----------------------------------------------------------------
   *                                               Refine local maxima
   * -------------------------------------------------------------- */

  /* this pointer is used to write the keypoints back */
  k = f->keys ;

  for (i = 0 ; i < f->nkeys ; ++i) {

    int x = f-> keys [i] .ix ;
    int y = f-> keys [i] .iy ;
    int s = f-> keys [i]. is ;

    double Dx=0,Dy=0,Ds=0,Dxx=0,Dyy=0,Dss=0,Dxy=0,Dxs=0,Dys=0 ;
    double A [3*3], b [3] ;

    int dx = 0 ;
    int dy = 0 ;

    int iter, i, j ;

    for (iter = 0 ; iter < 5 ; ++iter) {

      x += dx ;
      y += dy ;

      pt = dog
        + xo * x
        + yo * y
        + so * (s - s_min) ;

      /** @brief Index GSS @internal */
#define at(dx,dy,ds) (*( pt + (dx)*xo + (dy)*yo + (ds)*so))

      /** @brief Index matrix A @internal */
#define Aat(i,j)     (A[(i)+(j)*3])

      /* compute the gradient */
      Dx = 0.5 * (at(+1,0,0) - at(-1,0,0)) ;
      Dy = 0.5 * (at(0,+1,0) - at(0,-1,0));
      Ds = 0.5 * (at(0,0,+1) - at(0,0,-1)) ;

      /* compute the Hessian */
      Dxx = (at(+1,0,0) + at(-1,0,0) - 2.0 * at(0,0,0)) ;
      Dyy = (at(0,+1,0) + at(0,-1,0) - 2.0 * at(0,0,0)) ;
      Dss = (at(0,0,+1) + at(0,0,-1) - 2.0 * at(0,0,0)) ;

      Dxy = 0.25 * ( at(+1,+1,0) + at(-1,-1,0) - at(-1,+1,0) - at(+1,-1,0) ) ;
      Dxs = 0.25 * ( at(+1,0,+1) + at(-1,0,-1) - at(-1,0,+1) - at(+1,0,-1) ) ;
      Dys = 0.25 * ( at(0,+1,+1) + at(0,-1,-1) - at(0,-1,+1) - at(0,+1,-1) ) ;

      /* solve linear system ....................................... */
      Aat(0,0) = Dxx ;
      Aat(1,1) = Dyy ;
      Aat(2,2) = Dss ;
      Aat(0,1) = Aat(1,0) = Dxy ;
      Aat(0,2) = Aat(2,0) = Dxs ;
      Aat(1,2) = Aat(2,1) = Dys ;

      b[0] = - Dx ;
      b[1] = - Dy ;
      b[2] = - Ds ;

      /* Gauss elimination */
      for(j = 0 ; j < 3 ; ++j) {
        double maxa    = 0 ;
        double maxabsa = 0 ;
        int    maxi    = -1 ;
        double tmp ;

        /* look for the maximally stable pivot */
        for (i = j ; i < 3 ; ++i) {
          double a    = Aat (i,j) ;
          double absa = vl_abs_d (a) ;
          if (absa > maxabsa) {
            maxa    = a ;
            maxabsa = absa ;
            maxi    = i ;
          }
        }

        /* if singular give up */
        if (maxabsa < 1e-10f) {
          b[0] = 0 ;
          b[1] = 0 ;
          b[2] = 0 ;
          break ;
        }

        i = maxi ;

        /* swap j-th row with i-th row and normalize j-th row */
        for(jj = j ; jj < 3 ; ++jj) {
          tmp = Aat(i,jj) ; Aat(i,jj) = Aat(j,jj) ; Aat(j,jj) = tmp ;
          Aat(j,jj) /= maxa ;
        }
        tmp = b[j] ; b[j] = b[i] ; b[i] = tmp ;
        b[j] /= maxa ;

        /* elimination */
        for (ii = j+1 ; ii < 3 ; ++ii) {
          double x = Aat(ii,j) ;
          for (jj = j ; jj < 3 ; ++jj) {
            Aat(ii,jj) -= x * Aat(j,jj) ;
          }
          b[ii] -= x * b[j] ;
        }
      }

      /* backward substitution */
      for (i = 2 ; i > 0 ; --i) {
        double x = b[i] ;
        for (ii = i-1 ; ii >= 0 ; --ii) {
          b[ii] -= x * Aat(ii,i) ;
        }
      }

      /* .......................................................... */
      /* If the translation of the keypoint is big, move the keypoint
       * and re-iterate the computation. Otherwise we are all set.
       */

      dx= ((b[0] >  0.6 && x < w - 2) ?  1 : 0)
        + ((b[0] < -0.6 && x > 1    ) ? -1 : 0) ;

      dy= ((b[1] >  0.6 && y < h - 2) ?  1 : 0)
        + ((b[1] < -0.6 && y > 1    ) ? -1 : 0) ;

      if (dx == 0 && dy == 0) break ;
    }

    /* check threshold and other conditions */
    {
      double val   = at(0,0,0)
        + 0.5 * (Dx * b[0] + Dy * b[1] + Ds * b[2]) ;
      double score = (Dxx+Dyy)*(Dxx+Dyy) / (Dxx*Dyy - Dxy*Dxy) ;
      double xn = x + b[0] ;
      double yn = y + b[1] ;
      double sn = s + b[2] ;

      vl_bool good =
        vl_abs_d (val)  > tp                  &&
        score           < (te+1)*(te+1)/te    &&
        score           >= 0                  &&
        vl_abs_d (b[0]) <  1.5                &&
        vl_abs_d (b[1]) <  1.5                &&
        vl_abs_d (b[2]) <  1.5                &&
        xn              >= 0                  &&
        xn              <= w - 1              &&
        yn              >= 0                  &&
        yn              <= h - 1              &&
        sn              >= s_min              &&
        sn              <= s_max ;

      if (good) {
        k-> o     = f->o_cur ;
        k-> ix    = x ;
        k-> iy    = y ;
        k-> is    = s ;
        k-> s     = sn ;
        k-> x     = xn * xper ;
        k-> y     = yn * xper ;
        k-> sigma = f->sigma0 * pow (2.0, sn/f->S) * xper ;
        ++ k ;
      }

    } /* done checking */
  } /* next keypoint to refine */

  /* update keypoint count */
  f-> nkeys = (int)(k - f->keys) ;
}

// Assembly:
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rdi, 0x1f0(%rsp)
movq 0x1f0(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x1e8(%rsp)
movq 0x1f0(%rsp), %rax
movl 0x34(%rax), %eax
movl %eax, 0x1e4(%rsp)
movq 0x1f0(%rsp), %rax
movl 0x38(%rax), %eax
movl %eax, 0x1e0(%rsp)
movq 0x1f0(%rsp), %rax
movl 0x58(%rax), %eax
movl %eax, 0x1dc(%rsp)
movq 0x1f0(%rsp), %rax
movl 0x5c(%rax), %eax
movl %eax, 0x1d8(%rsp)
movq 0x1f0(%rsp), %rax
movsd 0x90(%rax), %xmm0
movsd %xmm0, 0x1d0(%rsp)
movq 0x1f0(%rsp), %rax
movsd 0x88(%rax), %xmm0
movsd %xmm0, 0x1c8(%rsp)
movl $0x1, 0x1c4(%rsp)
movl 0x1dc(%rsp), %eax
movl %eax, 0x1c0(%rsp)
movl 0x1dc(%rsp), %eax
imull 0x1d8(%rsp), %eax
movl %eax, 0x1bc(%rsp)
movq 0x1f0(%rsp), %rax
cvtsi2sdl 0x3c(%rax), %xmm1
movsd 0xbcff(%rip), %xmm0     # 0x590e0
callq 0x92b0
movsd %xmm0, 0x1b0(%rsp)
movq 0x1f0(%rsp), %rax
movl $0x0, 0x80(%rax)
movq 0x1f0(%rsp), %rax
movq 0x50(%rax), %rax
movq %rax, 0x190(%rsp)
movl 0x1e4(%rsp), %eax
movl %eax, 0x1a4(%rsp)
movl 0x1a4(%rsp), %eax
movl 0x1e0(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jg 0x4d51d
movq 0x1f0(%rsp), %rdi
movl 0x1a4(%rsp), %esi
callq 0x4c860
movq %rax, 0x178(%rsp)
movq 0x1f0(%rsp), %rdi
movl 0x1a4(%rsp), %esi
addl $0x1, %esi
callq 0x4c860
movq %rax, 0x170(%rsp)
movq 0x178(%rsp), %rax
movl 0x1dc(%rsp), %ecx
imull 0x1d8(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x168(%rsp)
movq 0x178(%rsp), %rax
cmpq 0x168(%rsp), %rax
je 0x4d505
movq 0x170(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x170(%rsp)
movss (%rax), %xmm0
movq 0x178(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x178(%rsp)
subss (%rax), %xmm0
movq 0x190(%rsp), %rax
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, 0x190(%rsp)
movss %xmm0, (%rax)
jmp 0x4d4a0
jmp 0x4d507
movl 0x1a4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a4(%rsp)
jmp 0x4d423
movq 0x1e8(%rsp), %rax
addq $0x4, %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x190(%rsp)
movl 0x1e4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a4(%rsp)
movl 0x1a4(%rsp), %eax
movl 0x1e0(%rsp), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jg 0x4e161
movl $0x1, 0x1a8(%rsp)
movl 0x1a8(%rsp), %eax
movl 0x1d8(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x4e128
movl $0x1, 0x1ac(%rsp)
movl 0x1ac(%rsp), %eax
movl 0x1dc(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x4e0fe
movq 0x190(%rsp), %rax
movss (%rax), %xmm0
movss %xmm0, 0x18c(%rsp)
movss 0x18c(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0xbb15(%rip), %xmm1     # 0x59100
mulsd 0x1c8(%rsp), %xmm1
ucomisd %xmm1, %xmm0
jb 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
ucomiss 0x4(%rax), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
ucomiss -0x4(%rax), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss (%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss 0x4(%rax,%rcx,4), %xmm0
jbe 0x4da92
movss 0x18c(%rsp), %xmm0
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
ucomiss -0x4(%rax,%rcx,4), %xmm0
ja 0x4dfbe
movss 0x18c(%rsp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xc6b1(%rip), %xmm0     # 0x5a158
mulsd 0x1c8(%rsp), %xmm0
ucomisd %xmm1, %xmm0
jb 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movss 0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movss -0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss (%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss 0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movss 0x18c(%rsp), %xmm1
movq 0x190(%rsp), %rax
movslq 0x1c0(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movslq 0x1bc(%rsp), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
movss -0x4(%rax,%rcx,4), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x4e0d4
movq 0x1f0(%rsp), %rax
movl 0x80(%rax), %eax
movq 0x1f0(%rsp), %rcx
cmpl 0x84(%rcx), %eax
jl 0x4e067
movq 0x1f0(%rsp), %rax
movl 0x84(%rax), %ecx
addl $0x1f4, %ecx            # imm = 0x1F4
movl %ecx, 0x84(%rax)
movq 0x1f0(%rsp), %rax
cmpq $0x0, 0x78(%rax)
je 0x4e03e
movq 0x1f0(%rsp), %rax
movq 0x78(%rax), %rdi
movq 0x1f0(%rsp), %rax
movslq 0x84(%rax), %rsi
shlq $0x5, %rsi
callq 0x9460
movq %rax, %rcx
movq 0x1f0(%rsp), %rax
movq %rcx, 0x78(%rax)
jmp 0x4e065
movq 0x1f0(%rsp), %rax
movslq 0x84(%rax), %rdi
shlq $0x5, %rdi
callq 0x9660
movq %rax, %rcx
movq 0x1f0(%rsp), %rax
movq %rcx, 0x78(%rax)
jmp 0x4e067
movq 0x1f0(%rsp), %rax
movq 0x78(%rax), %rax
movq 0x1f0(%rsp), %rdx
movl 0x80(%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x80(%rdx)
movslq %ecx, %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x180(%rsp)
movl 0x1ac(%rsp), %ecx
movq 0x180(%rsp), %rax
movl %ecx, 0x4(%rax)
movl 0x1a8(%rsp), %ecx
movq 0x180(%rsp), %rax
movl %ecx, 0x8(%rax)
movl 0x1a4(%rsp), %ecx
movq 0x180(%rsp), %rax
movl %ecx, 0xc(%rax)
movq 0x190(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x190(%rsp)
movl 0x1ac(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1ac(%rsp)
jmp 0x4d5a8
movq 0x190(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x190(%rsp)
movl 0x1a8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a8(%rsp)
jmp 0x4d584
movl 0x1c0(%rsp), %ecx
shll %ecx
movq 0x190(%rsp), %rax
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x190(%rsp)
movl 0x1a4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a4(%rsp)
jmp 0x4d560
movq 0x1f0(%rsp), %rax
movq 0x78(%rax), %rax
movq %rax, 0x180(%rsp)
movl $0x0, 0x1a0(%rsp)
movl 0x1a0(%rsp), %eax
movq 0x1f0(%rsp), %rcx
cmpl 0x80(%rcx), %eax
jge 0x4f3f2
movq 0x1f0(%rsp), %rax
movq 0x78(%rax), %rax
movslq 0x1a0(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movl %eax, 0x164(%rsp)
movq 0x1f0(%rsp), %rax
movq 0x78(%rax), %rax
movslq 0x1a0(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, 0x160(%rsp)
movq 0x1f0(%rsp), %rax
movq 0x78(%rax), %rax
movslq 0x1a0(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
movl %eax, 0x15c(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x150(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x148(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x140(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x138(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x130(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x128(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x120(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x118(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x110(%rsp)
movl $0x0, 0x9c(%rsp)
movl $0x0, 0x98(%rsp)
movl $0x0, 0x94(%rsp)
cmpl $0x5, 0x94(%rsp)
jge 0x4efcd
movl 0x9c(%rsp), %eax
addl 0x164(%rsp), %eax
movl %eax, 0x164(%rsp)
movl 0x98(%rsp), %eax
addl 0x160(%rsp), %eax
movl %eax, 0x160(%rsp)
movq 0x1e8(%rsp), %rax
movl 0x164(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1c0(%rsp), %ecx
imull 0x160(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
movl 0x15c(%rsp), %edx
subl 0x1e4(%rsp), %edx
imull %edx, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, 0x190(%rsp)
movq 0x190(%rsp), %rax
addq $0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $-0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xacea(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0x150(%rsp)
movq 0x190(%rsp), %rax
movl 0x1c0(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
imull $0xffffffff, 0x1c0(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xac78(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0x148(%rsp)
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0xffffffff, 0x1bc(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xac06(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0x140(%rsp)
movq 0x190(%rsp), %rax
addq $0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $-0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x138(%rsp)
movq 0x190(%rsp), %rax
movl 0x1c0(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
imull $0xffffffff, 0x1c0(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x130(%rsp)
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0xffffffff, 0x1bc(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm1, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x128(%rsp)
movq 0x190(%rsp), %rax
addq $0x4, %rax
movl 0x1c0(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $-0x4, %rax
imull $0xffffffff, 0x1c0(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $-0x4, %rax
movl 0x1c0(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $0x4, %rax
imull $0xffffffff, 0x1c0(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xa94c(%rip), %xmm0     # 0x59078
mulsd %xmm1, %xmm0
movsd %xmm0, 0x120(%rsp)
movq 0x190(%rsp), %rax
addq $0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $-0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0xffffffff, 0x1bc(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $-0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
addq $0x4, %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0xffffffff, 0x1bc(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xa871(%rip), %xmm0     # 0x59078
mulsd %xmm1, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x190(%rsp), %rax
movl 0x1c0(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
imull $0xffffffff, 0x1c0(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0xffffffff, 0x1bc(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
addss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
imull $0xffffffff, 0x1c0(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movl 0x1bc(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
movq 0x190(%rsp), %rax
movl 0x1c0(%rsp), %ecx
shll $0x0, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0xffffffff, 0x1bc(%rsp), %ecx # imm = 0xFFFFFFFF
movslq %ecx, %rcx
subss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0xa79c(%rip), %xmm0     # 0x59078
mulsd %xmm1, %xmm0
movsd %xmm0, 0x110(%rsp)
movsd 0x138(%rsp), %xmm0
movsd %xmm0, 0xc0(%rsp)
movsd 0x130(%rsp), %xmm0
movsd %xmm0, 0xe0(%rsp)
movsd 0x128(%rsp), %xmm0
movsd %xmm0, 0x100(%rsp)
movsd 0x120(%rsp), %xmm0
movsd %xmm0, 0xc8(%rsp)
movsd %xmm0, 0xd8(%rsp)
movsd 0x118(%rsp), %xmm0
movsd %xmm0, 0xd0(%rsp)
movsd %xmm0, 0xf0(%rsp)
movsd 0x110(%rsp), %xmm0
movsd %xmm0, 0xe8(%rsp)
movsd %xmm0, 0xf8(%rsp)
movsd 0x150(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0xa0(%rsp)
movsd 0x148(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0xa8(%rsp)
movsd 0x140(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0xb0(%rsp)
movl $0x0, 0x8c(%rsp)
cmpl $0x3, 0x8c(%rsp)
jge 0x4eda6
xorps %xmm0, %xmm0
movsd %xmm0, 0x80(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x78(%rsp)
movl $0xffffffff, 0x74(%rsp) # imm = 0xFFFFFFFF
movl 0x8c(%rsp), %eax
movl %eax, 0x90(%rsp)
cmpl $0x3, 0x90(%rsp)
jge 0x4eab8
movl 0x90(%rsp), %eax
imull $0x3, 0x8c(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x60(%rsp), %xmm0
callq 0x4f430
movsd %xmm0, 0x58(%rsp)
movsd 0x58(%rsp), %xmm0
ucomisd 0x78(%rsp), %xmm0
jbe 0x4eaa0
movsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movl 0x90(%rsp), %eax
movl %eax, 0x74(%rsp)
jmp 0x4eaa2
movl 0x90(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x4ea2f
movsd 0xb690(%rip), %xmm0     # 0x5a150
ucomisd 0x78(%rsp), %xmm0
jbe 0x4eaf1
xorps %xmm0, %xmm0
movsd %xmm0, 0xa0(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xa8(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0xb0(%rsp)
jmp 0x4eda6
movl 0x74(%rsp), %eax
movl %eax, 0x90(%rsp)
movl 0x8c(%rsp), %eax
movl %eax, 0x198(%rsp)
cmpl $0x3, 0x198(%rsp)
jge 0x4ebdc
movl 0x90(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x68(%rsp)
movl 0x8c(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm0
movl 0x90(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd %xmm0, 0xc0(%rsp,%rax,8)
movsd 0x68(%rsp), %xmm0
movl 0x8c(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd %xmm0, 0xc0(%rsp,%rax,8)
movsd 0x80(%rsp), %xmm1
movl 0x8c(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0xc0(%rsp,%rax,8)
movl 0x198(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x198(%rsp)
jmp 0x4eb0a
movslq 0x8c(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x68(%rsp)
movslq 0x90(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm0
movslq 0x8c(%rsp), %rax
movsd %xmm0, 0xa0(%rsp,%rax,8)
movsd 0x68(%rsp), %xmm0
movslq 0x90(%rsp), %rax
movsd %xmm0, 0xa0(%rsp,%rax,8)
movsd 0x80(%rsp), %xmm1
movslq 0x8c(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0xa0(%rsp,%rax,8)
movl 0x8c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x19c(%rsp)
cmpl $0x3, 0x19c(%rsp)
jge 0x4ed8e
movl 0x19c(%rsp), %eax
imull $0x3, 0x8c(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x50(%rsp)
movl 0x8c(%rsp), %eax
movl %eax, 0x198(%rsp)
cmpl $0x3, 0x198(%rsp)
jge 0x4ed28
movsd 0x50(%rsp), %xmm0
movl 0x8c(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm2
movl 0x19c(%rsp), %eax
imull $0x3, 0x198(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xc0(%rsp,%rax,8)
movl 0x198(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x198(%rsp)
jmp 0x4eca2
movsd 0x50(%rsp), %xmm0
movslq 0x8c(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm2
movslq 0x19c(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xa0(%rsp,%rax,8)
movl 0x19c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x19c(%rsp)
jmp 0x4ec64
jmp 0x4ed90
movl 0x8c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x8c(%rsp)
jmp 0x4e9f6
movl $0x2, 0x90(%rsp)
cmpl $0x0, 0x90(%rsp)
jle 0x4ee77
movslq 0x90(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0x90(%rsp), %eax
subl $0x1, %eax
movl %eax, 0x19c(%rsp)
cmpl $0x0, 0x19c(%rsp)
jl 0x4ee5f
movsd 0x48(%rsp), %xmm0
movl 0x19c(%rsp), %eax
imull $0x3, 0x90(%rsp), %ecx
addl %ecx, %eax
cltq
movsd 0xc0(%rsp,%rax,8), %xmm2
movslq 0x19c(%rsp), %rax
movsd 0xa0(%rsp,%rax,8), %xmm1
movq %xmm0, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
movq %rcx, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0xa0(%rsp,%rax,8)
movl 0x19c(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x19c(%rsp)
jmp 0x4ede7
jmp 0x4ee61
movl 0x90(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x90(%rsp)
jmp 0x4edb1
movsd 0xa0(%rsp), %xmm0
xorl %eax, %eax
movsd 0xa1fe(%rip), %xmm1     # 0x59088
ucomisd %xmm1, %xmm0
movb %al, 0x1b(%rsp)
jbe 0x4eeae
movl 0x164(%rsp), %eax
movl 0x1dc(%rsp), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
setl %al
movb %al, 0x1b(%rsp)
movb 0x1b(%rsp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0x14(%rsp)
xorl %eax, %eax
movsd 0xa1c3(%rip), %xmm0     # 0x59090
ucomisd 0xa0(%rsp), %xmm0
movb %al, 0x1a(%rsp)
jbe 0x4eeeb
cmpl $0x1, 0x164(%rsp)
setg %al
movb %al, 0x1a(%rsp)
movl 0x14(%rsp), %eax
movb 0x1a(%rsp), %sil
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
testb $0x1, %sil
cmovnel %edx, %ecx
addl %ecx, %eax
movl %eax, 0x9c(%rsp)
movsd 0xa8(%rsp), %xmm0
xorl %eax, %eax
movsd 0xa16a(%rip), %xmm1     # 0x59088
ucomisd %xmm1, %xmm0
movb %al, 0x13(%rsp)
jbe 0x4ef42
movl 0x160(%rsp), %eax
movl 0x1d8(%rsp), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
setl %al
movb %al, 0x13(%rsp)
movb 0x13(%rsp), %dl
xorl %eax, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0xc(%rsp)
xorl %eax, %eax
movsd 0xa12f(%rip), %xmm0     # 0x59090
ucomisd 0xa8(%rsp), %xmm0
movb %al, 0x12(%rsp)
jbe 0x4ef7f
cmpl $0x1, 0x160(%rsp)
setg %al
movb %al, 0x12(%rsp)
movl 0xc(%rsp), %eax
movb 0x12(%rsp), %sil
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
testb $0x1, %sil
cmovnel %edx, %ecx
addl %ecx, %eax
movl %eax, 0x98(%rsp)
cmpl $0x0, 0x9c(%rsp)
jne 0x4efb5
cmpl $0x0, 0x98(%rsp)
jne 0x4efb5
jmp 0x4efcd
jmp 0x4efb7
movl 0x94(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x94(%rsp)
jmp 0x4e297
movq 0x190(%rsp), %rax
imull $0x0, 0x1c0(%rsp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
imull $0x0, 0x1bc(%rsp), %ecx
movslq %ecx, %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x150(%rsp), %xmm2
movsd 0xa0(%rsp), %xmm3
movsd 0x148(%rsp), %xmm0
mulsd 0xa8(%rsp), %xmm0
mulsd %xmm3, %xmm2
addsd %xmm0, %xmm2
movsd 0x140(%rsp), %xmm0
movsd 0xb0(%rsp), %xmm3
mulsd %xmm3, %xmm0
addsd %xmm2, %xmm0
movsd 0xa037(%rip), %xmm2     # 0x59080
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x138(%rsp), %xmm0
addsd 0x130(%rsp), %xmm0
movsd 0x138(%rsp), %xmm1
addsd 0x130(%rsp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x138(%rsp), %xmm1
movsd 0x130(%rsp), %xmm3
movsd 0x120(%rsp), %xmm2
mulsd 0x120(%rsp), %xmm2
movq %xmm2, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm2
mulsd %xmm3, %xmm1
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rsp)
cvtsi2sdl 0x164(%rsp), %xmm0
addsd 0xa0(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
cvtsi2sdl 0x160(%rsp), %xmm0
addsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
cvtsi2sdl 0x15c(%rsp), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x40(%rsp), %xmm0
callq 0x4f430
xorl %eax, %eax
ucomisd 0x1c8(%rsp), %xmm0
movb %al, 0xb(%rsp)
jbe 0x4f2b0
movsd 0x38(%rsp), %xmm1
movsd 0x9f96(%rip), %xmm0     # 0x590d8
addsd 0x1d0(%rsp), %xmm0
movsd 0x9f85(%rip), %xmm2     # 0x590d8
addsd 0x1d0(%rsp), %xmm2
mulsd %xmm2, %xmm0
divsd 0x1d0(%rsp), %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jbe 0x4f2b0
movsd 0x38(%rsp), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jb 0x4f2b0
movsd 0xa0(%rsp), %xmm0
callq 0x4f430
movaps %xmm0, %xmm1
xorl %eax, %eax
movsd 0x9ef3(%rip), %xmm0     # 0x590a0
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jbe 0x4f2b0
movsd 0xa8(%rsp), %xmm0
callq 0x4f430
movaps %xmm0, %xmm1
xorl %eax, %eax
movsd 0x9eca(%rip), %xmm0     # 0x590a0
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jbe 0x4f2b0
movsd 0xb0(%rsp), %xmm0
callq 0x4f430
movaps %xmm0, %xmm1
xorl %eax, %eax
movsd 0x9ea1(%rip), %xmm0     # 0x590a0
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jbe 0x4f2b0
movsd 0x30(%rsp), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jb 0x4f2b0
movsd 0x30(%rsp), %xmm1
movl 0x1dc(%rsp), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jb 0x4f2b0
movsd 0x28(%rsp), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jb 0x4f2b0
movsd 0x28(%rsp), %xmm1
movl 0x1d8(%rsp), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm0
xorl %eax, %eax
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jb 0x4f2b0
movsd 0x20(%rsp), %xmm0
cvtsi2sdl 0x1e4(%rsp), %xmm1
xorl %eax, %eax
ucomisd %xmm1, %xmm0
movb %al, 0xb(%rsp)
jb 0x4f2b0
movsd 0x20(%rsp), %xmm1
cvtsi2sdl 0x1e0(%rsp), %xmm0
ucomisd %xmm1, %xmm0
setae %al
movb %al, 0xb(%rsp)
movb 0xb(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x1c(%rsp)
cmpl $0x0, 0x1c(%rsp)
je 0x4f3da
movq 0x1f0(%rsp), %rax
movl 0x3c(%rax), %ecx
movq 0x180(%rsp), %rax
movl %ecx, (%rax)
movl 0x164(%rsp), %ecx
movq 0x180(%rsp), %rax
movl %ecx, 0x4(%rax)
movl 0x160(%rsp), %ecx
movq 0x180(%rsp), %rax
movl %ecx, 0x8(%rax)
movl 0x15c(%rsp), %ecx
movq 0x180(%rsp), %rax
movl %ecx, 0xc(%rax)
movsd 0x20(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x180(%rsp), %rax
movss %xmm0, 0x18(%rax)
movsd 0x30(%rsp), %xmm0
mulsd 0x1b0(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x180(%rsp), %rax
movss %xmm0, 0x10(%rax)
movsd 0x28(%rsp), %xmm0
mulsd 0x1b0(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x180(%rsp), %rax
movss %xmm0, 0x14(%rax)
movq 0x1f0(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm1
movq 0x1f0(%rsp), %rax
cvtsi2sdl 0x2c(%rax), %xmm0
divsd %xmm0, %xmm1
movsd 0x9d45(%rip), %xmm0     # 0x590e0
callq 0x92b0
movaps %xmm0, %xmm1
movsd (%rsp), %xmm0
mulsd %xmm1, %xmm0
mulsd 0x1b0(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x180(%rsp), %rax
movss %xmm0, 0x1c(%rax)
movq 0x180(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x180(%rsp)
jmp 0x4f3dc
movl 0x1a0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1a0(%rsp)
jmp 0x4e180
movq 0x180(%rsp), %rax
movq 0x1f0(%rsp), %rcx
movq 0x78(%rcx), %rcx
subq %rcx, %rax
sarq $0x5, %rax
movl %eax, %ecx
movq 0x1f0(%rsp), %rax
movl %ecx, 0x80(%rax)
addq $0x1f8, %rsp            # imm = 0x1F8
retq
nopw %cs:(%rax,%rax)