// File: kaityo256[P]lj_simd/force_soa.cpp
// Function: force_avx2_swp()
void
force_avx2_swp(void) {
  const int pn = particle_number;
  const v4df vzero = _mm256_set_pd(0, 0, 0, 0);
  const v4df vcl2 = _mm256_set_pd(CL2, CL2, CL2, CL2);
  const v4df vc24 = _mm256_set_pd(24 * dt, 24 * dt, 24 * dt, 24 * dt);
  const v4df vc48 = _mm256_set_pd(48 * dt, 48 * dt, 48 * dt, 48 * dt);
  for (int i = 0; i < pn; i++) {
    const double qix = q[X][i];
    const double qiy = q[Y][i];
    const double qiz = q[Z][i];
    const int np = number_of_partners[i];
    double pfx = 0;
    double pfy = 0;
    double pfz = 0;
    const int kp = pointer[i];
    const v4df vqix = _mm256_set_pd(q[X][i], q[X][i], q[X][i], q[X][i]);
    const v4df vqiy = _mm256_set_pd(q[Y][i], q[Y][i], q[Y][i], q[Y][i]);
    const v4df vqiz = _mm256_set_pd(q[Z][i], q[Z][i], q[Z][i], q[Z][i]);
    int k = 0;
    int j_1 = sorted_list[kp + k];
    int j_2 = sorted_list[kp + k + 1];
    int j_3 = sorted_list[kp + k + 2];
    int j_4 = sorted_list[kp + k + 3];

    v4df vqjx = _mm256_set_pd(q[X][j_1], q[X][j_2], q[X][j_3], q[X][j_4]);
    v4df vqjy = _mm256_set_pd(q[Y][j_1], q[Y][j_2], q[Y][j_3], q[Y][j_4]);
    v4df vqjz = _mm256_set_pd(q[Z][j_1], q[Z][j_2], q[Z][j_3], q[Z][j_4]);

    v4df vdx = vqjx - vqix;
    v4df vdy = vqjy - vqiy;
    v4df vdz = vqjz - vqiz;
    v4df vr2 = vdx * vdx + vdy * vdy + vdz * vdz;
    v4df vr6 = vr2 * vr2 * vr2;
    v4df vdf = (vc24 * vr6 - vc48) / (vr6 * vr6 * vr2);
    v4df mask = vcl2 - vr2;
    vdf = _mm256_blendv_pd(vdf, vzero, mask);

    if (np < 4) {
      vdf =  _mm256_setzero_pd();
    }

    for (k = 4; k < (np / 4) * 4; k += 4) {
      int j_1_b = sorted_list[kp + k];
      int j_2_b = sorted_list[kp + k + 1];
      int j_3_b = sorted_list[kp + k + 2];
      int j_4_b = sorted_list[kp + k + 3];
      // We found that it was fastest to calculate only vqjx_b here.
      // If we calculate vqjy_b or vqjz_b here, it becomes very slow.
      v4df vqjx_b = _mm256_set_pd(q[X][j_1_b], q[X][j_2_b], q[X][j_3_b], q[X][j_4_b]);
      // --- 8< ---
      v4df vdfx = vdf * vdx;
      v4df vdfy = vdf * vdy;
      v4df vdfz = vdf * vdz;
      double *dfx = (double *)(&vdfx);
      double *dfy = (double *)(&vdfy);
      double *dfz = (double *)(&vdfz);

      pfx += dfx[3];
      pfy += dfy[3];
      pfz += dfz[3];

      p[X][j_1] -= dfx[3];
      p[Y][j_1] -= dfy[3];
      p[Z][j_1] -= dfz[3];

      pfx += dfx[2];
      pfy += dfy[2];
      pfz += dfz[2];
      p[X][j_2] -= dfx[2];
      p[Y][j_2] -= dfy[2];
      p[Z][j_2] -= dfz[2];

      pfx += dfx[1];
      pfy += dfy[1];
      pfz += dfz[1];
      p[X][j_3] -= dfx[1];
      p[Y][j_3] -= dfy[1];
      p[Z][j_3] -= dfz[1];

      pfx += dfx[0];
      pfy += dfy[0];
      pfz += dfz[0];
      p[X][j_4] -= dfx[0];
      p[Y][j_4] -= dfy[0];
      p[Z][j_4] -= dfz[0];

      // --- 8< ---
      v4df vqjy_b = _mm256_set_pd(q[Y][j_1_b], q[Y][j_2_b], q[Y][j_3_b], q[Y][j_4_b]);
      v4df vqjz_b = _mm256_set_pd(q[Z][j_1_b], q[Z][j_2_b], q[Z][j_3_b], q[Z][j_4_b]);

      j_1 = j_1_b;
      j_2 = j_2_b;
      j_3 = j_3_b;
      j_4 = j_4_b;

      vqjx = vqjx_b;
      vqjy = vqjy_b;
      vqjz = vqjz_b;

      vdx = vqjx - vqix;
      vdy = vqjy - vqiy;
      vdz = vqjz - vqiz;
      vr2 = vdx * vdx + vdy * vdy + vdz * vdz;
      vr6 = vr2 * vr2 * vr2;
      vdf = (vc24 * vr6 - vc48) / (vr6 * vr6 * vr2);
      mask = vcl2 - vr2;
      vdf = _mm256_blendv_pd(vdf, vzero, mask);
    }
    v4df vdfx = vdf * vdx;
    v4df vdfy = vdf * vdy;
    v4df vdfz = vdf * vdz;
    double *dfx = (double *)(&vdfx);
    double *dfy = (double *)(&vdfy);
    double *dfz = (double *)(&vdfz);

    pfx += dfx[3];
    pfy += dfy[3];
    pfz += dfz[3];

    p[X][j_1] -= dfx[3];
    p[Y][j_1] -= dfy[3];
    p[Z][j_1] -= dfz[3];

    pfx += dfx[2];
    pfy += dfy[2];
    pfz += dfz[2];
    p[X][j_2] -= dfx[2];
    p[Y][j_2] -= dfy[2];
    p[Z][j_2] -= dfz[2];

    pfx += dfx[1];
    pfy += dfy[1];
    pfz += dfz[1];
    p[X][j_3] -= dfx[1];
    p[Y][j_3] -= dfy[1];
    p[Z][j_3] -= dfz[1];

    pfx += dfx[0];
    pfy += dfy[0];
    pfz += dfz[0];
    p[X][j_4] -= dfx[0];
    p[Y][j_4] -= dfy[0];
    p[Z][j_4] -= dfz[0];



    p[X][i] += pfx;
    p[Y][i] += pfy;
    p[Z][i] += pfz;
    for (int k = (np / 4) * 4; k < np; k++) {
      const int j = sorted_list[kp + k];
      double dx = q[X][j] - qix;
      double dy = q[Y][j] - qiy;
      double dz = q[Z][j] - qiz;
      double r2 = (dx * dx + dy * dy + dz * dz);
      if (r2 > CL2) continue;
      double r6 = r2 * r2 * r2;
      double df = ((24.0 * r6 - 48.0) / (r6 * r6 * r2)) * dt;
      p[X][i] += df * dx;
      p[Y][i] += df * dy;
      p[Z][i] += df * dz;
      p[X][j] -= df * dx;
      p[Y][j] -= df * dy;
      p[Z][j] -= df * dz;
    }
  }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
andq $-0x20, %rsp
subq $0x8e0, %rsp            # imm = 0x8E0
movl 0x19f653b(%rip), %eax   # 0x19fab10
movl %eax, 0x49c(%rsp)
movq $0x0, 0x7d8(%rsp)
movq $0x0, 0x7d0(%rsp)
movq $0x0, 0x7c8(%rsp)
movq $0x0, 0x7c0(%rsp)
vmovsd 0x7c8(%rsp), %xmm1
vmovsd 0x7c0(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x7d8(%rsp), %xmm2
vmovsd 0x7d0(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x7b0(%rsp)
vmovapd %xmm0, 0x7a0(%rsp)
vmovapd 0x7a0(%rsp), %ymm0
vmovapd %ymm0, 0x460(%rsp)
movabsq $0x4022000000000000, %rax # imm = 0x4022000000000000
movq %rax, 0x798(%rsp)
movq %rax, 0x790(%rsp)
movq %rax, 0x788(%rsp)
movq %rax, 0x780(%rsp)
vmovsd 0x788(%rsp), %xmm1
vmovsd 0x780(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x798(%rsp), %xmm2
vmovsd 0x790(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x770(%rsp)
vmovapd %xmm0, 0x760(%rsp)
vmovapd 0x760(%rsp), %ymm0
vmovapd %ymm0, 0x440(%rsp)
movabsq $0x3f989374bc6a7efa, %rax # imm = 0x3F989374BC6A7EFA
movq %rax, 0x758(%rsp)
movq %rax, 0x750(%rsp)
movq %rax, 0x748(%rsp)
movq %rax, 0x740(%rsp)
vmovsd 0x748(%rsp), %xmm1
vmovsd 0x740(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x758(%rsp), %xmm2
vmovsd 0x750(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x730(%rsp)
vmovapd %xmm0, 0x720(%rsp)
vmovapd 0x720(%rsp), %ymm0
vmovapd %ymm0, 0x420(%rsp)
movabsq $0x3fa89374bc6a7efa, %rax # imm = 0x3FA89374BC6A7EFA
movq %rax, 0x718(%rsp)
movq %rax, 0x710(%rsp)
movq %rax, 0x708(%rsp)
movq %rax, 0x700(%rsp)
vmovsd 0x718(%rsp), %xmm1
vmovsd 0x710(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm1 # xmm1 = xmm0[0],xmm1[0]
vmovsd 0x708(%rsp), %xmm2
vmovsd 0x700(%rsp), %xmm0
vunpcklpd %xmm2, %xmm0, %xmm2 # xmm2 = xmm0[0],xmm2[0]
vmovaps %xmm2, %xmm0
vinsertf128 $0x1, %xmm1, %ymm0, %ymm0
vmovapd %ymm0, 0x6e0(%rsp)
vmovapd 0x6e0(%rsp), %ymm0
vmovapd %ymm0, 0x400(%rsp)
movl $0x0, 0x3fc(%rsp)
movl 0x3fc(%rsp), %eax
cmpl 0x49c(%rsp), %eax
jge 0x5f06
movslq 0x3fc(%rsp), %rcx
leaq 0x18c317(%rip), %rax    # 0x190b10
movq %rax, 0x28(%rsp)
vmovsd (%rax,%rcx,8), %xmm0
vmovsd %xmm0, 0x3f0(%rsp)
movslq 0x3fc(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vmovsd %xmm0, 0x3e8(%rsp)
movslq 0x3fc(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vmovsd %xmm0, 0x3e0(%rsp)
movslq 0x3fc(%rsp), %rdx
leaq 0x19f62d1(%rip), %rcx   # 0x19fab20
movl (%rcx,%rdx,4), %ecx
movl %ecx, 0x3dc(%rsp)
movq $0x0, 0x3d0(%rsp)
movq $0x0, 0x3c8(%rsp)
movq $0x0, 0x3c0(%rsp)
movslq 0x3fc(%rsp), %rdx
leaq 0x770a494(%rip), %rcx   # 0x770ed20
movl (%rcx,%rdx,4), %ecx
movl %ecx, 0x3bc(%rsp)
movslq 0x3fc(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm0
vmovsd %xmm0, 0x6d8(%rsp)
vmovsd %xmm0, 0x6d0(%rsp)
vmovsd %xmm0, 0x6c8(%rsp)
vmovsd %xmm0, 0x6c0(%rsp)
vmovsd 0x6c8(%rsp), %xmm1
vmovsd 0x6c0(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x6d8(%rsp), %xmm2
vmovsd 0x6d0(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x6b0(%rsp)
vmovapd %xmm0, 0x6a0(%rsp)
vmovapd 0x6a0(%rsp), %ymm0
vmovapd %ymm0, 0x380(%rsp)
movslq 0x3fc(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vmovsd %xmm0, 0x698(%rsp)
vmovsd %xmm0, 0x690(%rsp)
vmovsd %xmm0, 0x688(%rsp)
vmovsd %xmm0, 0x680(%rsp)
vmovsd 0x688(%rsp), %xmm1
vmovsd 0x680(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x698(%rsp), %xmm2
vmovsd 0x690(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x670(%rsp)
vmovapd %xmm0, 0x660(%rsp)
vmovapd 0x660(%rsp), %ymm0
vmovapd %ymm0, 0x360(%rsp)
movslq 0x3fc(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vmovsd %xmm0, 0x658(%rsp)
vmovsd %xmm0, 0x650(%rsp)
vmovsd %xmm0, 0x648(%rsp)
vmovsd %xmm0, 0x640(%rsp)
vmovsd 0x648(%rsp), %xmm1
vmovsd 0x640(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x658(%rsp), %xmm2
vmovsd 0x650(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x630(%rsp)
vmovapd %xmm0, 0x620(%rsp)
vmovapd 0x620(%rsp), %ymm0
vmovapd %ymm0, 0x340(%rsp)
movl $0x0, 0x33c(%rsp)
movl 0x3bc(%rsp), %ecx
movl 0x33c(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rdx
leaq 0x7a176da(%rip), %rcx   # 0x7a1c120
movl (%rcx,%rdx,4), %edx
movl %edx, 0x338(%rsp)
movl 0x3bc(%rsp), %edx
movl 0x33c(%rsp), %esi
addl %esi, %edx
movslq %edx, %rdx
movl 0x4(%rcx,%rdx,4), %edx
movl %edx, 0x334(%rsp)
movl 0x3bc(%rsp), %edx
movl 0x33c(%rsp), %esi
addl %esi, %edx
movslq %edx, %rdx
movl 0x8(%rcx,%rdx,4), %edx
movl %edx, 0x330(%rsp)
movl 0x3bc(%rsp), %edx
movl 0x33c(%rsp), %esi
addl %esi, %edx
movslq %edx, %rdx
movl 0xc(%rcx,%rdx,4), %ecx
movl %ecx, 0x32c(%rsp)
movslq 0x338(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm3
movslq 0x334(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm2
movslq 0x330(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm1
movslq 0x32c(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm0
vmovsd %xmm3, 0x618(%rsp)
vmovsd %xmm2, 0x610(%rsp)
vmovsd %xmm1, 0x608(%rsp)
vmovsd %xmm0, 0x600(%rsp)
vmovsd 0x608(%rsp), %xmm1
vmovsd 0x600(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x618(%rsp), %xmm2
vmovsd 0x610(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x5f0(%rsp)
vmovapd %xmm0, 0x5e0(%rsp)
vmovapd 0x5e0(%rsp), %ymm0
vmovapd %ymm0, 0x300(%rsp)
movslq 0x338(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm3
movslq 0x334(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm2
movslq 0x330(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm1
movslq 0x32c(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vmovsd %xmm3, 0x5d8(%rsp)
vmovsd %xmm2, 0x5d0(%rsp)
vmovsd %xmm1, 0x5c8(%rsp)
vmovsd %xmm0, 0x5c0(%rsp)
vmovsd 0x5c8(%rsp), %xmm1
vmovsd 0x5c0(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x5d8(%rsp), %xmm2
vmovsd 0x5d0(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x5b0(%rsp)
vmovapd %xmm0, 0x5a0(%rsp)
vmovapd 0x5a0(%rsp), %ymm0
vmovapd %ymm0, 0x2e0(%rsp)
movslq 0x338(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm3
movslq 0x334(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm2
movslq 0x330(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm1
movslq 0x32c(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vmovsd %xmm3, 0x598(%rsp)
vmovsd %xmm2, 0x590(%rsp)
vmovsd %xmm1, 0x588(%rsp)
vmovsd %xmm0, 0x580(%rsp)
vmovsd 0x588(%rsp), %xmm1
vmovsd 0x580(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x598(%rsp), %xmm2
vmovsd 0x590(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x570(%rsp)
vmovapd %xmm0, 0x560(%rsp)
vmovapd 0x560(%rsp), %ymm0
vmovapd %ymm0, 0x2c0(%rsp)
vmovapd 0x300(%rsp), %ymm0
vmovapd 0x380(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x2a0(%rsp)
vmovapd 0x2e0(%rsp), %ymm0
vmovapd 0x360(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x280(%rsp)
vmovapd 0x2c0(%rsp), %ymm0
vmovapd 0x340(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x260(%rsp)
vmovapd 0x2a0(%rsp), %ymm1
vmovapd 0x280(%rsp), %ymm0
vmulpd %ymm0, %ymm0, %ymm0
vfmadd213pd %ymm0, %ymm1, %ymm1 # ymm1 = (ymm1 * ymm1) + ymm0
vmovapd 0x260(%rsp), %ymm0
vfmadd213pd %ymm1, %ymm0, %ymm0 # ymm0 = (ymm0 * ymm0) + ymm1
vmovapd %ymm0, 0x240(%rsp)
vmovapd 0x240(%rsp), %ymm1
vmulpd %ymm1, %ymm1, %ymm0
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x220(%rsp)
vmovapd 0x420(%rsp), %ymm1
vmovapd 0x220(%rsp), %ymm0
vmovapd 0x400(%rsp), %ymm2
vpbroadcastq 0x32c1(%rip), %ymm3 # 0x8050
vpxor %ymm3, %ymm2, %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd 0x220(%rsp), %ymm1
vmulpd 0x220(%rsp), %ymm1, %ymm1
vmulpd 0x240(%rsp), %ymm1, %ymm1
vdivpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x200(%rsp)
vmovapd 0x440(%rsp), %ymm0
vsubpd 0x240(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0x1e0(%rsp)
vmovapd 0x200(%rsp), %ymm2
vmovapd 0x460(%rsp), %ymm1
vmovapd 0x1e0(%rsp), %ymm0
vmovapd %ymm2, 0x880(%rsp)
vmovapd %ymm1, 0x860(%rsp)
vmovapd %ymm0, 0x840(%rsp)
vmovapd 0x880(%rsp), %ymm0
vmovapd 0x860(%rsp), %ymm1
vmovapd 0x840(%rsp), %ymm2
vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x200(%rsp)
cmpl $0x4, 0x3dc(%rsp)
jge 0x4e64
vpxor %xmm0, %xmm0, %xmm0
vmovapd %ymm0, 0x8a0(%rsp)
vmovapd 0x8a0(%rsp), %ymm0
vmovapd %ymm0, 0x200(%rsp)
movl $0x4, 0x33c(%rsp)
movl 0x33c(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x3dc(%rsp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x24(%rsp), %eax
shll $0x2, %ecx
cmpl %ecx, %eax
jge 0x5754
movl 0x3bc(%rsp), %eax
movl 0x33c(%rsp), %ecx
addl %ecx, %eax
movslq %eax, %rcx
leaq 0x7a1726c(%rip), %rax   # 0x7a1c120
movl (%rax,%rcx,4), %ecx
movl %ecx, 0x1dc(%rsp)
movl 0x3bc(%rsp), %ecx
movl 0x33c(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movl 0x4(%rax,%rcx,4), %ecx
movl %ecx, 0x1d8(%rsp)
movl 0x3bc(%rsp), %ecx
movl 0x33c(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movl 0x8(%rax,%rcx,4), %ecx
movl %ecx, 0x1d4(%rsp)
movl 0x3bc(%rsp), %ecx
movl 0x33c(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movl 0xc(%rax,%rcx,4), %eax
movl %eax, 0x1d0(%rsp)
movslq 0x1dc(%rsp), %rcx
leaq 0x18bbe9(%rip), %rax    # 0x190b10
movq %rax, 0x10(%rsp)
vmovsd (%rax,%rcx,8), %xmm3
movslq 0x1d8(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm2
movslq 0x1d4(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm1
movslq 0x1d0(%rsp), %rcx
vmovsd (%rax,%rcx,8), %xmm0
vmovsd %xmm3, 0x558(%rsp)
vmovsd %xmm2, 0x550(%rsp)
vmovsd %xmm1, 0x548(%rsp)
vmovsd %xmm0, 0x540(%rsp)
vmovsd 0x548(%rsp), %xmm1
vmovsd 0x540(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x558(%rsp), %xmm2
vmovsd 0x550(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x530(%rsp)
vmovapd %xmm0, 0x520(%rsp)
vmovapd 0x520(%rsp), %ymm0
vmovapd %ymm0, 0x1a0(%rsp)
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x2a0(%rsp), %ymm1
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x180(%rsp)
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x280(%rsp), %ymm1
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x160(%rsp)
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x260(%rsp), %ymm1
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x140(%rsp)
leaq 0x180(%rsp), %rcx
movq %rcx, 0x138(%rsp)
leaq 0x160(%rsp), %rcx
movq %rcx, 0x130(%rsp)
leaq 0x140(%rsp), %rcx
movq %rcx, 0x128(%rsp)
movq 0x138(%rsp), %rcx
vmovsd 0x18(%rcx), %xmm1
vmovsd 0x3d0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x130(%rsp), %rcx
vmovsd 0x18(%rcx), %xmm1
vmovsd 0x3c8(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x128(%rsp), %rcx
vmovsd 0x18(%rcx), %xmm1
vmovsd 0x3c0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x138(%rsp), %rcx
vmovsd 0x18(%rcx), %xmm1
movslq 0x338(%rsp), %rdx
leaq 0xdc0a32(%rip), %rcx    # 0xdc5b10
movq %rcx, 0x18(%rsp)
vmovsd (%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, (%rcx,%rdx,8)
movq 0x130(%rsp), %rdx
vmovsd 0x18(%rdx), %xmm1
movslq 0x338(%rsp), %rdx
vmovsd 0x30d400(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x30d400(%rcx,%rdx,8)
movq 0x128(%rsp), %rdx
vmovsd 0x18(%rdx), %xmm1
movslq 0x338(%rsp), %rdx
vmovsd 0x61a800(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x61a800(%rcx,%rdx,8)
movq 0x138(%rsp), %rdx
vmovsd 0x10(%rdx), %xmm1
vmovsd 0x3d0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x130(%rsp), %rdx
vmovsd 0x10(%rdx), %xmm1
vmovsd 0x3c8(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x128(%rsp), %rdx
vmovsd 0x10(%rdx), %xmm1
vmovsd 0x3c0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x138(%rsp), %rdx
vmovsd 0x10(%rdx), %xmm1
movslq 0x334(%rsp), %rdx
vmovsd (%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, (%rcx,%rdx,8)
movq 0x130(%rsp), %rdx
vmovsd 0x10(%rdx), %xmm1
movslq 0x334(%rsp), %rdx
vmovsd 0x30d400(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x30d400(%rcx,%rdx,8)
movq 0x128(%rsp), %rdx
vmovsd 0x10(%rdx), %xmm1
movslq 0x334(%rsp), %rdx
vmovsd 0x61a800(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x61a800(%rcx,%rdx,8)
movq 0x138(%rsp), %rdx
vmovsd 0x8(%rdx), %xmm1
vmovsd 0x3d0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x130(%rsp), %rdx
vmovsd 0x8(%rdx), %xmm1
vmovsd 0x3c8(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x128(%rsp), %rdx
vmovsd 0x8(%rdx), %xmm1
vmovsd 0x3c0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x138(%rsp), %rdx
vmovsd 0x8(%rdx), %xmm1
movslq 0x330(%rsp), %rdx
vmovsd (%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, (%rcx,%rdx,8)
movq 0x130(%rsp), %rdx
vmovsd 0x8(%rdx), %xmm1
movslq 0x330(%rsp), %rdx
vmovsd 0x30d400(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x30d400(%rcx,%rdx,8)
movq 0x128(%rsp), %rdx
vmovsd 0x8(%rdx), %xmm1
movslq 0x330(%rsp), %rdx
vmovsd 0x61a800(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x61a800(%rcx,%rdx,8)
movq 0x138(%rsp), %rdx
vmovsd (%rdx), %xmm1
vmovsd 0x3d0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x130(%rsp), %rdx
vmovsd (%rdx), %xmm1
vmovsd 0x3c8(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x128(%rsp), %rdx
vmovsd (%rdx), %xmm1
vmovsd 0x3c0(%rsp), %xmm0
vaddsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x138(%rsp), %rdx
vmovsd (%rdx), %xmm1
movslq 0x32c(%rsp), %rdx
vmovsd (%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, (%rcx,%rdx,8)
movq 0x130(%rsp), %rdx
vmovsd (%rdx), %xmm1
movslq 0x32c(%rsp), %rdx
vmovsd 0x30d400(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x30d400(%rcx,%rdx,8)
movq 0x128(%rsp), %rdx
vmovsd (%rdx), %xmm1
movslq 0x32c(%rsp), %rdx
vmovsd 0x61a800(%rcx,%rdx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x61a800(%rcx,%rdx,8)
movslq 0x1dc(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm3
movslq 0x1d8(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm2
movslq 0x1d4(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm1
movslq 0x1d0(%rsp), %rcx
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vmovsd %xmm3, 0x518(%rsp)
vmovsd %xmm2, 0x510(%rsp)
vmovsd %xmm1, 0x508(%rsp)
vmovsd %xmm0, 0x500(%rsp)
vmovsd 0x508(%rsp), %xmm1
vmovsd 0x500(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x518(%rsp), %xmm2
vmovsd 0x510(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x4f0(%rsp)
vmovapd %xmm0, 0x4e0(%rsp)
vmovapd 0x4e0(%rsp), %ymm0
vmovapd %ymm0, 0x100(%rsp)
movslq 0x1dc(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm3
movslq 0x1d8(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm2
movslq 0x1d4(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm1
movslq 0x1d0(%rsp), %rcx
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vmovsd %xmm3, 0x4d8(%rsp)
vmovsd %xmm2, 0x4d0(%rsp)
vmovsd %xmm1, 0x4c8(%rsp)
vmovsd %xmm0, 0x4c0(%rsp)
vmovsd 0x4c8(%rsp), %xmm1
vmovsd 0x4c0(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0x4d8(%rsp), %xmm2
vmovsd 0x4d0(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0x4b0(%rsp)
vmovapd %xmm0, 0x4a0(%rsp)
vmovapd 0x4a0(%rsp), %ymm0
vmovapd %ymm0, 0xe0(%rsp)
movl 0x1dc(%rsp), %eax
movl %eax, 0x338(%rsp)
movl 0x1d8(%rsp), %eax
movl %eax, 0x334(%rsp)
movl 0x1d4(%rsp), %eax
movl %eax, 0x330(%rsp)
movl 0x1d0(%rsp), %eax
movl %eax, 0x32c(%rsp)
vmovapd 0x1a0(%rsp), %ymm0
vmovapd %ymm0, 0x300(%rsp)
vmovapd 0x100(%rsp), %ymm0
vmovapd %ymm0, 0x2e0(%rsp)
vmovapd 0xe0(%rsp), %ymm0
vmovapd %ymm0, 0x2c0(%rsp)
vmovapd 0x300(%rsp), %ymm0
vmovapd 0x380(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x2a0(%rsp)
vmovapd 0x2e0(%rsp), %ymm0
vmovapd 0x360(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x280(%rsp)
vmovapd 0x2c0(%rsp), %ymm0
vmovapd 0x340(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x260(%rsp)
vmovapd 0x2a0(%rsp), %ymm1
vmovapd 0x280(%rsp), %ymm0
vmulpd %ymm0, %ymm0, %ymm0
vfmadd213pd %ymm0, %ymm1, %ymm1 # ymm1 = (ymm1 * ymm1) + ymm0
vmovapd 0x260(%rsp), %ymm0
vfmadd213pd %ymm1, %ymm0, %ymm0 # ymm0 = (ymm0 * ymm0) + ymm1
vmovapd %ymm0, 0x240(%rsp)
vmovapd 0x240(%rsp), %ymm1
vmulpd %ymm1, %ymm1, %ymm0
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x220(%rsp)
vmovapd 0x420(%rsp), %ymm1
vmovapd 0x220(%rsp), %ymm0
vmovapd 0x400(%rsp), %ymm2
vpbroadcastq 0x29be(%rip), %ymm3 # 0x8050
vpxor %ymm3, %ymm2, %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd 0x220(%rsp), %ymm1
vmulpd 0x220(%rsp), %ymm1, %ymm1
vmulpd 0x240(%rsp), %ymm1, %ymm1
vdivpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x200(%rsp)
vmovapd 0x440(%rsp), %ymm0
vsubpd 0x240(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0x1e0(%rsp)
vmovapd 0x200(%rsp), %ymm2
vmovapd 0x460(%rsp), %ymm1
vmovapd 0x1e0(%rsp), %ymm0
vmovapd %ymm2, 0x820(%rsp)
vmovapd %ymm1, 0x800(%rsp)
vmovapd %ymm0, 0x7e0(%rsp)
vmovapd 0x820(%rsp), %ymm0
vmovapd 0x800(%rsp), %ymm1
vmovapd 0x7e0(%rsp), %ymm2
vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x200(%rsp)
movl 0x33c(%rsp), %eax
addl $0x4, %eax
movl %eax, 0x33c(%rsp)
jmp 0x4e6f
vmovapd 0x200(%rsp), %ymm0
vmulpd 0x2a0(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x200(%rsp), %ymm0
vmulpd 0x280(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x200(%rsp), %ymm0
vmulpd 0x260(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0x80(%rsp)
leaq 0xc0(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0xa0(%rsp), %rax
movq %rax, 0x70(%rsp)
leaq 0x80(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x78(%rsp), %rax
vmovsd 0x18(%rax), %xmm0
vaddsd 0x3d0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x70(%rsp), %rax
vmovsd 0x18(%rax), %xmm0
vaddsd 0x3c8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x68(%rsp), %rax
vmovsd 0x18(%rax), %xmm0
vaddsd 0x3c0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x78(%rsp), %rax
vmovsd 0x18(%rax), %xmm1
movslq 0x338(%rsp), %rcx
leaq 0xdc02d7(%rip), %rax    # 0xdc5b10
vmovsd (%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc02c7(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
movq 0x70(%rsp), %rax
vmovsd 0x18(%rax), %xmm1
movslq 0x338(%rsp), %rcx
leaq 0xdc02a9(%rip), %rax    # 0xdc5b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc0295(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
movq 0x68(%rsp), %rax
vmovsd 0x18(%rax), %xmm1
movslq 0x338(%rsp), %rcx
leaq 0xdc0273(%rip), %rax    # 0xdc5b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc025f(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
movq 0x78(%rsp), %rax
vmovsd 0x10(%rax), %xmm0
vaddsd 0x3d0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x70(%rsp), %rax
vmovsd 0x10(%rax), %xmm0
vaddsd 0x3c8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x68(%rsp), %rax
vmovsd 0x10(%rax), %xmm0
vaddsd 0x3c0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x78(%rsp), %rax
vmovsd 0x10(%rax), %xmm1
movslq 0x334(%rsp), %rcx
leaq 0xdc01e9(%rip), %rax    # 0xdc5b10
vmovsd (%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc01d9(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
movq 0x70(%rsp), %rax
vmovsd 0x10(%rax), %xmm1
movslq 0x334(%rsp), %rcx
leaq 0xdc01bb(%rip), %rax    # 0xdc5b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc01a7(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
movq 0x68(%rsp), %rax
vmovsd 0x10(%rax), %xmm1
movslq 0x334(%rsp), %rcx
leaq 0xdc0185(%rip), %rax    # 0xdc5b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc0171(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
movq 0x78(%rsp), %rax
vmovsd 0x8(%rax), %xmm0
vaddsd 0x3d0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x70(%rsp), %rax
vmovsd 0x8(%rax), %xmm0
vaddsd 0x3c8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x68(%rsp), %rax
vmovsd 0x8(%rax), %xmm0
vaddsd 0x3c0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x78(%rsp), %rax
vmovsd 0x8(%rax), %xmm1
movslq 0x330(%rsp), %rcx
leaq 0xdc00fb(%rip), %rax    # 0xdc5b10
vmovsd (%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc00eb(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
movq 0x70(%rsp), %rax
vmovsd 0x8(%rax), %xmm1
movslq 0x330(%rsp), %rcx
leaq 0xdc00cd(%rip), %rax    # 0xdc5b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc00b9(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
movq 0x68(%rsp), %rax
vmovsd 0x8(%rax), %xmm1
movslq 0x330(%rsp), %rcx
leaq 0xdc0097(%rip), %rax    # 0xdc5b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc0083(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
movq 0x78(%rsp), %rax
vmovsd (%rax), %xmm0
vaddsd 0x3d0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3d0(%rsp)
movq 0x70(%rsp), %rax
vmovsd (%rax), %xmm0
vaddsd 0x3c8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c8(%rsp)
movq 0x68(%rsp), %rax
vmovsd (%rax), %xmm0
vaddsd 0x3c0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x3c0(%rsp)
movq 0x78(%rsp), %rax
vmovsd (%rax), %xmm1
movslq 0x32c(%rsp), %rcx
leaq 0xdc0011(%rip), %rax    # 0xdc5b10
vmovsd (%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdc0001(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
movq 0x70(%rsp), %rax
vmovsd (%rax), %xmm1
movslq 0x32c(%rsp), %rcx
leaq 0xdbffe4(%rip), %rax    # 0xdc5b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdbffd0(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
movq 0x68(%rsp), %rax
vmovsd (%rax), %xmm1
movslq 0x32c(%rsp), %rcx
leaq 0xdbffaf(%rip), %rax    # 0xdc5b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vsubsd %xmm1, %xmm0, %xmm0
leaq 0xdbff9b(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
vmovsd 0x3d0(%rsp), %xmm0
movslq 0x3fc(%rsp), %rcx
leaq 0xdbff7a(%rip), %rax    # 0xdc5b10
vaddsd (%rax,%rcx,8), %xmm0, %xmm0
leaq 0xdbff6e(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
vmovsd 0x3c8(%rsp), %xmm0
movslq 0x3fc(%rsp), %rcx
leaq 0xdbff51(%rip), %rax    # 0xdc5b10
vaddsd 0x30d400(%rax,%rcx,8), %xmm0, %xmm0
leaq 0xdbff41(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
vmovsd 0x3c0(%rsp), %xmm0
movslq 0x3fc(%rsp), %rcx
leaq 0xdbff20(%rip), %rax    # 0xdc5b10
vaddsd 0x61a800(%rax,%rcx,8), %xmm0, %xmm0
leaq 0xdbff10(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
movl 0x3dc(%rsp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
shll $0x2, %eax
movl %eax, 0x64(%rsp)
movl 0x64(%rsp), %eax
cmpl 0x3dc(%rsp), %eax
jge 0x5eee
movl 0x3bc(%rsp), %eax
addl 0x64(%rsp), %eax
movslq %eax, %rcx
leaq 0x7a164db(%rip), %rax   # 0x7a1c120
movl (%rax,%rcx,4), %eax
movl %eax, 0x60(%rsp)
movslq 0x60(%rsp), %rcx
leaq 0x18aeb8(%rip), %rax    # 0x190b10
vmovsd (%rax,%rcx,8), %xmm0
vsubsd 0x3f0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x58(%rsp)
movslq 0x60(%rsp), %rcx
leaq 0x18ae98(%rip), %rax    # 0x190b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm0
vsubsd 0x3e8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x50(%rsp)
movslq 0x60(%rsp), %rcx
leaq 0x18ae74(%rip), %rax    # 0x190b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm0
vsubsd 0x3e0(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x48(%rsp)
vmovsd 0x58(%rsp), %xmm0
vmovsd 0x58(%rsp), %xmm2
vmovsd 0x50(%rsp), %xmm1
vmulsd 0x50(%rsp), %xmm1, %xmm1
vfmadd213sd %xmm1, %xmm0, %xmm2 # xmm2 = (xmm0 * xmm2) + xmm1
vmovsd 0x48(%rsp), %xmm1
vmovsd 0x48(%rsp), %xmm0
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, 0x40(%rsp)
vmovsd 0x40(%rsp), %xmm0
vmovsd 0x233a(%rip), %xmm1     # 0x8030
vucomisd %xmm1, %xmm0
jbe 0x5d01
jmp 0x5ede
vmovsd 0x40(%rsp), %xmm0
vmulsd 0x40(%rsp), %xmm0, %xmm0
vmulsd 0x40(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x38(%rsp)
vmovsd 0x38(%rsp), %xmm1
vmovsd 0x2319(%rip), %xmm2     # 0x8040
vmovsd 0x2319(%rip), %xmm0     # 0x8048
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd 0x38(%rsp), %xmm1
vmulsd 0x38(%rsp), %xmm1, %xmm1
vmulsd 0x40(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
vmovsd 0x22e6(%rip), %xmm1     # 0x8038
vmulsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x30(%rsp)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x58(%rsp), %xmm0
movslq 0x3fc(%rsp), %rcx
leaq 0xdbfd99(%rip), %rax    # 0xdc5b10
vmovsd (%rax,%rcx,8), %xmm2
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
leaq 0xdbfd88(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x50(%rsp), %xmm0
movslq 0x3fc(%rsp), %rcx
leaq 0xdbfd68(%rip), %rax    # 0xdc5b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm2
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
leaq 0xdbfd53(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x48(%rsp), %xmm0
movslq 0x3fc(%rsp), %rcx
leaq 0xdbfd2f(%rip), %rax    # 0xdc5b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm2
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
leaq 0xdbfd1a(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x58(%rsp), %xmm0
movslq 0x60(%rsp), %rcx
leaq 0xdbfcf9(%rip), %rax    # 0xdc5b10
vmovsd (%rax,%rcx,8), %xmm2
vmovq %xmm1, %rax
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rax
vmovq %rax, %xmm1
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
leaq 0xdbfcd1(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, (%rax,%rcx,8)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x50(%rsp), %xmm0
movslq 0x60(%rsp), %rcx
leaq 0xdbfcb4(%rip), %rax    # 0xdc5b10
vmovsd 0x30d400(%rax,%rcx,8), %xmm2
vmovq %xmm1, %rax
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rax
vmovq %rax, %xmm1
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
leaq 0xdbfc88(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x30d400(%rax,%rcx,8)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x48(%rsp), %xmm0
movslq 0x60(%rsp), %rcx
leaq 0xdbfc67(%rip), %rax    # 0xdc5b10
vmovsd 0x61a800(%rax,%rcx,8), %xmm2
vmovq %xmm1, %rax
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rax
vmovq %rax, %xmm1
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
leaq 0xdbfc3b(%rip), %rax    # 0xdc5b10
vmovsd %xmm0, 0x61a800(%rax,%rcx,8)
movl 0x64(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x64(%rsp)
jmp 0x5c1f
jmp 0x5ef0
movl 0x3fc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3fc(%rsp)
jmp 0x47d6
movq %rbp, %rsp
popq %rbp
vzeroupper
retq
nop