// File: kaityo256[P]lj_simd/force_aos.cpp
// Function: force_avx2_swp()
void
force_avx2_swp(void) {
  const v4df vzero = _mm256_set1_pd(0.0);
  const v4df vcl2 = _mm256_set1_pd(CL2);
  const v4df vc24 = _mm256_set1_pd(24 * dt);
  const v4df vc48 = _mm256_set1_pd(48 * dt);
  const int pn = particle_number;
  for (int i = 0; i < pn; i++) {
    const v4df vqi = _mm256_load_pd((double *)(&q[i][X]));
    v4df vpi = _mm256_load_pd((double *)(&p[i][X]));
    const int np = number_of_partners[i];
    const int kp = pointer[i];
    int k = 0;
    // --- 8< ---
    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 vqj_1 = _mm256_load_pd((double *)(&q[j_1][X]));
    v4df vqj_2 = _mm256_load_pd((double *)(&q[j_2][X]));
    v4df vqj_3 = _mm256_load_pd((double *)(&q[j_3][X]));
    v4df vqj_4 = _mm256_load_pd((double *)(&q[j_4][X]));

    v4df vdq_1 = (vqj_1 - vqi);
    v4df vdq_2 = (vqj_2 - vqi);
    v4df vdq_3 = (vqj_3 - vqi);
    v4df vdq_4 = (vqj_4 - vqi);

    v4df tmp0 = _mm256_unpacklo_pd(vdq_1, vdq_2);
    v4df tmp1 = _mm256_unpackhi_pd(vdq_1, vdq_2);
    v4df tmp2 = _mm256_unpacklo_pd(vdq_3, vdq_4);
    v4df tmp3 = _mm256_unpackhi_pd(vdq_3, vdq_4);

    v4df vdx = _mm256_permute2f128_pd(tmp0, tmp2, 0x20);
    v4df vdy = _mm256_permute2f128_pd(tmp1, tmp3, 0x20);
    v4df vdz = _mm256_permute2f128_pd(tmp0, tmp2, 0x31);

    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();
    }

    v4df vdf_1, vdf_2, vdf_3, vdf_4;
    v4df vpj_1, vpj_2, vpj_3, vpj_4;
    for (k = 4; k < (np / 4) * 4; k += 4) {
      // --- 8< ---
      const int j_1_b = sorted_list[kp + k];
      const int j_2_b = sorted_list[kp + k + 1];
      const int j_3_b = sorted_list[kp + k + 2];
      const int j_4_b = sorted_list[kp + k + 3];
      vqj_1 = _mm256_load_pd((double *)(&q[j_1_b][X]));
      vqj_2 = _mm256_load_pd((double *)(&q[j_2_b][X]));
      vqj_3 = _mm256_load_pd((double *)(&q[j_3_b][X]));
      vqj_4 = _mm256_load_pd((double *)(&q[j_4_b][X]));
      v4df vdq_1_b = (vqj_1 - vqi);
      v4df vdq_2_b = (vqj_2 - vqi);
      v4df vdq_3_b = (vqj_3 - vqi);
      v4df vdq_4_b = (vqj_4 - vqi);
      tmp0 = _mm256_unpacklo_pd(vdq_1_b, vdq_2_b);
      tmp1 = _mm256_unpackhi_pd(vdq_1_b, vdq_2_b);
      tmp2 = _mm256_unpacklo_pd(vdq_3_b, vdq_4_b);
      tmp3 = _mm256_unpackhi_pd(vdq_3_b, vdq_4_b);
      vdx = _mm256_permute2f128_pd(tmp0, tmp2, 0x20);
      vdy = _mm256_permute2f128_pd(tmp1, tmp3, 0x20);
      vdz = _mm256_permute2f128_pd(tmp0, tmp2, 0x31);
      v4df vr2 = vdx * vdx + vdy * vdy + vdz * vdz;
      vr6 = vr2 * vr2 * vr2;

      // --- 8< ---
      vdf_1 = _mm256_permute4x64_pd(vdf, 0);
      vdf_2 = _mm256_permute4x64_pd(vdf, 85);
      vdf_3 = _mm256_permute4x64_pd(vdf, 170);
      vdf_4 = _mm256_permute4x64_pd(vdf, 255);

      vpj_1 = _mm256_load_pd((double *)(&p[j_1][X]));
      vpj_2 = _mm256_load_pd((double *)(&p[j_2][X]));
      vpj_3 = _mm256_load_pd((double *)(&p[j_3][X]));
      vpj_4 = _mm256_load_pd((double *)(&p[j_4][X]));

      vpj_1 -= vdq_1 * vdf_1;
      vpj_2 -= vdq_2 * vdf_2;
      vpj_3 -= vdq_3 * vdf_3;
      vpj_4 -= vdq_4 * vdf_4;

      vpi += vdq_1 * vdf_1;
      vpi += vdq_4 * vdf_4;
      vpi += vdq_2 * vdf_2;
      vpi += vdq_3 * vdf_3;

      _mm256_store_pd((double *)(&p[j_1][X]), vpj_1);
      _mm256_store_pd((double *)(&p[j_2][X]), vpj_2);
      _mm256_store_pd((double *)(&p[j_3][X]), vpj_3);
      _mm256_store_pd((double *)(&p[j_4][X]), vpj_4);

      // --- 8< ---
      j_1 = j_1_b;
      j_2 = j_2_b;
      j_3 = j_3_b;
      j_4 = j_4_b;
      vdq_1 = vdq_1_b;
      vdq_2 = vdq_2_b;
      vdq_3 = vdq_3_b;
      vdq_4 = vdq_4_b;
      vdf = (vc24 * vr6 - vc48) / (vr6 * vr6 * vr2);
      mask = vcl2 - vr2;
      vdf = _mm256_blendv_pd(vdf, vzero, mask);
    }
    // --- 8< ---
    vdf_1 = _mm256_permute4x64_pd(vdf, 0);
    vdf_2 = _mm256_permute4x64_pd(vdf, 85);
    vdf_3 = _mm256_permute4x64_pd(vdf, 170);
    vdf_4 = _mm256_permute4x64_pd(vdf, 255);

    vpj_1 = _mm256_load_pd((double *)(&p[j_1][X]));
    vpj_2 = _mm256_load_pd((double *)(&p[j_2][X]));
    vpj_3 = _mm256_load_pd((double *)(&p[j_3][X]));
    vpj_4 = _mm256_load_pd((double *)(&p[j_4][X]));

    vpi += vdq_1 * vdf_1;
    vpi += vdq_2 * vdf_2;
    vpi += vdq_3 * vdf_3;
    vpi += vdq_4 * vdf_4;
    vpj_1 -= vdq_1 * vdf_1;
    vpj_2 -= vdq_2 * vdf_2;
    vpj_3 -= vdq_3 * vdf_3;
    vpj_4 -= vdq_4 * vdf_4;

    _mm256_store_pd((double *)(&p[j_1][X]), vpj_1);
    _mm256_store_pd((double *)(&p[j_2][X]), vpj_2);
    _mm256_store_pd((double *)(&p[j_3][X]), vpj_3);
    _mm256_store_pd((double *)(&p[j_4][X]), vpj_4);

    _mm256_store_pd((double *)(&p[i][X]), vpi);

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

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
andq $-0x20, %rsp
subq $0xc80, %rsp            # imm = 0xC80
movq $0x0, 0x5a8(%rsp)
vmovsd 0x5a8(%rsp), %xmm0
vmovsd %xmm0, 0xb98(%rsp)
vmovsd %xmm0, 0xb90(%rsp)
vmovsd %xmm0, 0xb88(%rsp)
vmovsd %xmm0, 0xb80(%rsp)
vmovsd 0xb88(%rsp), %xmm1
vmovsd 0xb80(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0xb98(%rsp), %xmm2
vmovsd 0xb90(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0xb70(%rsp)
vmovapd %xmm0, 0xb60(%rsp)
vmovapd 0xb60(%rsp), %ymm0
vmovapd %ymm0, 0x560(%rsp)
movabsq $0x4022000000000000, %rax # imm = 0x4022000000000000
movq %rax, 0x5a0(%rsp)
vmovsd 0x5a0(%rsp), %xmm0
vmovsd %xmm0, 0xbd8(%rsp)
vmovsd %xmm0, 0xbd0(%rsp)
vmovsd %xmm0, 0xbc8(%rsp)
vmovsd %xmm0, 0xbc0(%rsp)
vmovsd 0xbc8(%rsp), %xmm1
vmovsd 0xbc0(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0xbd8(%rsp), %xmm2
vmovsd 0xbd0(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0xbb0(%rsp)
vmovapd %xmm0, 0xba0(%rsp)
vmovapd 0xba0(%rsp), %ymm0
vmovapd %ymm0, 0x540(%rsp)
movabsq $0x3f989374bc6a7efa, %rax # imm = 0x3F989374BC6A7EFA
movq %rax, 0x598(%rsp)
vmovsd 0x598(%rsp), %xmm0
vmovsd %xmm0, 0xc18(%rsp)
vmovsd %xmm0, 0xc10(%rsp)
vmovsd %xmm0, 0xc08(%rsp)
vmovsd %xmm0, 0xc00(%rsp)
vmovsd 0xc08(%rsp), %xmm1
vmovsd 0xc00(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm0 # xmm0 = xmm0[0],xmm1[0]
vmovsd 0xc18(%rsp), %xmm2
vmovsd 0xc10(%rsp), %xmm1
vunpcklpd %xmm2, %xmm1, %xmm1 # xmm1 = xmm1[0],xmm2[0]
vmovapd %xmm1, 0xbf0(%rsp)
vmovapd %xmm0, 0xbe0(%rsp)
vmovapd 0xbe0(%rsp), %ymm0
vmovapd %ymm0, 0x520(%rsp)
movabsq $0x3fa89374bc6a7efa, %rax # imm = 0x3FA89374BC6A7EFA
movq %rax, 0x590(%rsp)
vmovsd 0x590(%rsp), %xmm0
vmovsd %xmm0, 0xc68(%rsp)
vmovsd %xmm0, 0xc60(%rsp)
vmovsd %xmm0, 0xc58(%rsp)
vmovsd %xmm0, 0xc50(%rsp)
vmovsd 0xc68(%rsp), %xmm1
vmovsd 0xc60(%rsp), %xmm0
vunpcklpd %xmm1, %xmm0, %xmm1 # xmm1 = xmm0[0],xmm1[0]
vmovsd 0xc58(%rsp), %xmm2
vmovsd 0xc50(%rsp), %xmm0
vunpcklpd %xmm2, %xmm0, %xmm2 # xmm2 = xmm0[0],xmm2[0]
vmovaps %xmm2, %xmm0
vinsertf128 $0x1, %xmm1, %ymm0, %ymm0
vmovapd %ymm0, 0xc20(%rsp)
vmovapd 0xc20(%rsp), %ymm0
vmovapd %ymm0, 0x500(%rsp)
movl 0x3261984(%rip), %eax   # 0x3266b80
movl %eax, 0x4fc(%rsp)
movl $0x0, 0x4f8(%rsp)
movl 0x4f8(%rsp), %eax
cmpl 0x4fc(%rsp), %eax
jge 0x666a
movslq 0x4f8(%rsp), %rdx
shlq $0x5, %rdx
leaq 0x18d91b(%rip), %rax    # 0x192b50
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x638(%rsp)
movq 0x638(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x4c0(%rsp)
movslq 0x4f8(%rsp), %rdx
shlq $0x5, %rdx
leaq 0xdc28e5(%rip), %rcx    # 0xdc7b50
addq %rdx, %rcx
movq %rcx, 0x630(%rsp)
movq 0x630(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x4a0(%rsp)
movslq 0x4f8(%rsp), %rdx
leaq 0x32618f6(%rip), %rcx   # 0x3266b90
movl (%rcx,%rdx,4), %ecx
movl %ecx, 0x49c(%rsp)
movslq 0x4f8(%rsp), %rdx
leaq 0x8f75add(%rip), %rcx   # 0x8f7ad90
movl (%rcx,%rdx,4), %ecx
movl %ecx, 0x498(%rsp)
movl $0x0, 0x494(%rsp)
movl 0x498(%rsp), %ecx
movl 0x494(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rdx
leaq 0x90fc4ae(%rip), %rcx   # 0x9101790
movl (%rcx,%rdx,4), %edx
movl %edx, 0x490(%rsp)
movl 0x498(%rsp), %edx
movl 0x494(%rsp), %esi
addl %esi, %edx
movslq %edx, %rdx
movl 0x4(%rcx,%rdx,4), %edx
movl %edx, 0x48c(%rsp)
movl 0x498(%rsp), %edx
movl 0x494(%rsp), %esi
addl %esi, %edx
movslq %edx, %rdx
movl 0x8(%rcx,%rdx,4), %edx
movl %edx, 0x488(%rsp)
movl 0x498(%rsp), %edx
movl 0x494(%rsp), %esi
addl %esi, %edx
movslq %edx, %rdx
movl 0xc(%rcx,%rdx,4), %ecx
movl %ecx, 0x484(%rsp)
movslq 0x490(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x628(%rsp)
movq 0x628(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x460(%rsp)
movslq 0x48c(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x620(%rsp)
movq 0x620(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x440(%rsp)
movslq 0x488(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x618(%rsp)
movq 0x618(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x420(%rsp)
movslq 0x484(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x610(%rsp)
movq 0x610(%rsp), %rax
vmovapd (%rax), %ymm0
vmovapd %ymm0, 0x400(%rsp)
vmovapd 0x460(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x3e0(%rsp)
vmovapd 0x440(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x3c0(%rsp)
vmovapd 0x420(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x3a0(%rsp)
vmovapd 0x400(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x380(%rsp)
vmovapd 0x3e0(%rsp), %ymm1
vmovapd 0x3c0(%rsp), %ymm0
vmovapd %ymm1, 0x720(%rsp)
vmovapd %ymm0, 0x700(%rsp)
vmovapd 0x720(%rsp), %ymm0
vmovapd 0x700(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0x360(%rsp)
vmovapd 0x3e0(%rsp), %ymm1
vmovapd 0x3c0(%rsp), %ymm0
vmovapd %ymm1, 0x820(%rsp)
vmovapd %ymm0, 0x800(%rsp)
vmovapd 0x820(%rsp), %ymm0
vmovapd 0x800(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x340(%rsp)
vmovapd 0x3a0(%rsp), %ymm1
vmovapd 0x380(%rsp), %ymm0
vmovapd %ymm1, 0x6e0(%rsp)
vmovapd %ymm0, 0x6c0(%rsp)
vmovapd 0x6e0(%rsp), %ymm0
vmovapd 0x6c0(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0x320(%rsp)
vmovapd 0x3a0(%rsp), %ymm1
vmovapd 0x380(%rsp), %ymm0
vmovapd %ymm1, 0x7e0(%rsp)
vmovapd %ymm0, 0x7c0(%rsp)
vmovapd 0x7e0(%rsp), %ymm0
vmovapd 0x7c0(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x300(%rsp)
vmovapd 0x360(%rsp), %ymm0
vmovapd 0x320(%rsp), %ymm1
vperm2f128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovapd %ymm0, 0x2e0(%rsp)
vmovapd 0x340(%rsp), %ymm0
vmovapd 0x300(%rsp), %ymm1
vperm2f128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovapd %ymm0, 0x2c0(%rsp)
vmovapd 0x360(%rsp), %ymm0
vmovapd 0x320(%rsp), %ymm1
vperm2f128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovapd %ymm0, 0x2a0(%rsp)
vmovapd 0x2e0(%rsp), %ymm1
vmovapd 0x2c0(%rsp), %ymm0
vmulpd %ymm0, %ymm0, %ymm0
vfmadd213pd %ymm0, %ymm1, %ymm1 # ymm1 = (ymm1 * ymm1) + ymm0
vmovapd 0x2a0(%rsp), %ymm0
vfmadd213pd %ymm1, %ymm0, %ymm0 # ymm0 = (ymm0 * ymm0) + ymm1
vmovapd %ymm0, 0x280(%rsp)
vmovapd 0x280(%rsp), %ymm1
vmulpd %ymm1, %ymm1, %ymm0
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x260(%rsp)
vmovapd 0x520(%rsp), %ymm1
vmovapd 0x260(%rsp), %ymm0
vmovapd 0x500(%rsp), %ymm2
vpbroadcastq 0x49f6(%rip), %ymm3 # 0xa050
vpxor %ymm3, %ymm2, %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd 0x260(%rsp), %ymm1
vmulpd 0x260(%rsp), %ymm1, %ymm1
vmulpd 0x280(%rsp), %ymm1, %ymm1
vdivpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x240(%rsp)
vmovapd 0x540(%rsp), %ymm0
vsubpd 0x280(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0x220(%rsp)
vmovapd 0x240(%rsp), %ymm2
vmovapd 0x560(%rsp), %ymm1
vmovapd 0x220(%rsp), %ymm0
vmovapd %ymm2, 0x8e0(%rsp)
vmovapd %ymm1, 0x8c0(%rsp)
vmovapd %ymm0, 0x8a0(%rsp)
vmovapd 0x8e0(%rsp), %ymm0
vmovapd 0x8c0(%rsp), %ymm1
vmovapd 0x8a0(%rsp), %ymm2
vblendvpd %ymm2, %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x240(%rsp)
cmpl $0x4, 0x49c(%rsp)
jge 0x572f
vpxor %xmm0, %xmm0, %xmm0
vmovapd %ymm0, 0xb40(%rsp)
vmovapd 0xb40(%rsp), %ymm0
vmovapd %ymm0, 0x240(%rsp)
movl $0x4, 0x494(%rsp)
movl 0x494(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x49c(%rsp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x24(%rsp), %eax
shll $0x2, %ecx
cmpl %ecx, %eax
jge 0x5f91
movl 0x498(%rsp), %eax
movl 0x494(%rsp), %ecx
addl %ecx, %eax
movslq %eax, %rcx
leaq 0x90fc011(%rip), %rax   # 0x9101790
movl (%rax,%rcx,4), %ecx
movl %ecx, 0x11c(%rsp)
movl 0x498(%rsp), %ecx
movl 0x494(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movl 0x4(%rax,%rcx,4), %ecx
movl %ecx, 0x118(%rsp)
movl 0x498(%rsp), %ecx
movl 0x494(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movl 0x8(%rax,%rcx,4), %ecx
movl %ecx, 0x114(%rsp)
movl 0x498(%rsp), %ecx
movl 0x494(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movl 0xc(%rax,%rcx,4), %eax
movl %eax, 0x110(%rsp)
movslq 0x11c(%rsp), %rdx
shlq $0x5, %rdx
leaq 0x18d35a(%rip), %rax    # 0x192b50
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x608(%rsp)
movq 0x608(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x460(%rsp)
movslq 0x118(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x600(%rsp)
movq 0x600(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x440(%rsp)
movslq 0x114(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5f8(%rsp)
movq 0x5f8(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x420(%rsp)
movslq 0x110(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x5f0(%rsp)
movq 0x5f0(%rsp), %rax
vmovapd (%rax), %ymm0
vmovapd %ymm0, 0x400(%rsp)
vmovapd 0x460(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0xe0(%rsp)
vmovapd 0x440(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0xc0(%rsp)
vmovapd 0x420(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0xa0(%rsp)
vmovapd 0x400(%rsp), %ymm0
vmovapd 0x4c0(%rsp), %ymm1
vsubpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x80(%rsp)
vmovapd 0xe0(%rsp), %ymm1
vmovapd 0xc0(%rsp), %ymm0
vmovapd %ymm1, 0x6a0(%rsp)
vmovapd %ymm0, 0x680(%rsp)
vmovapd 0x6a0(%rsp), %ymm0
vmovapd 0x680(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0x360(%rsp)
vmovapd 0xe0(%rsp), %ymm1
vmovapd 0xc0(%rsp), %ymm0
vmovapd %ymm1, 0x7a0(%rsp)
vmovapd %ymm0, 0x780(%rsp)
vmovapd 0x7a0(%rsp), %ymm0
vmovapd 0x780(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x340(%rsp)
vmovapd 0xa0(%rsp), %ymm1
vmovapd 0x80(%rsp), %ymm0
vmovapd %ymm1, 0x660(%rsp)
vmovapd %ymm0, 0x640(%rsp)
vmovapd 0x660(%rsp), %ymm0
vmovapd 0x640(%rsp), %ymm1
vunpcklpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
vmovapd %ymm0, 0x320(%rsp)
vmovapd 0xa0(%rsp), %ymm1
vmovapd 0x80(%rsp), %ymm0
vmovapd %ymm1, 0x760(%rsp)
vmovapd %ymm0, 0x740(%rsp)
vmovapd 0x760(%rsp), %ymm0
vmovapd 0x740(%rsp), %ymm1
vunpckhpd %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
vmovapd %ymm0, 0x300(%rsp)
vmovapd 0x360(%rsp), %ymm0
vmovapd 0x320(%rsp), %ymm1
vperm2f128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovapd %ymm0, 0x2e0(%rsp)
vmovapd 0x340(%rsp), %ymm0
vmovapd 0x300(%rsp), %ymm1
vperm2f128 $0x20, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[0,1],ymm1[0,1]
vmovapd %ymm0, 0x2c0(%rsp)
vmovapd 0x360(%rsp), %ymm0
vmovapd 0x320(%rsp), %ymm1
vperm2f128 $0x31, %ymm1, %ymm0, %ymm0 # ymm0 = ymm0[2,3],ymm1[2,3]
vmovapd %ymm0, 0x2a0(%rsp)
vmovapd 0x2e0(%rsp), %ymm1
vmovapd 0x2c0(%rsp), %ymm0
vmulpd %ymm0, %ymm0, %ymm0
vfmadd213pd %ymm0, %ymm1, %ymm1 # ymm1 = (ymm1 * ymm1) + ymm0
vmovapd 0x2a0(%rsp), %ymm0
vfmadd213pd %ymm1, %ymm0, %ymm0 # ymm0 = (ymm0 * ymm0) + ymm1
vmovapd %ymm0, 0x60(%rsp)
vmovapd 0x60(%rsp), %ymm1
vmulpd %ymm1, %ymm1, %ymm0
vmulpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x260(%rsp)
vbroadcastsd 0x240(%rsp), %ymm0
vmovapd %ymm0, 0x200(%rsp)
vbroadcastsd 0x248(%rsp), %ymm0
vmovapd %ymm0, 0x1e0(%rsp)
vbroadcastsd 0x250(%rsp), %ymm0
vmovapd %ymm0, 0x1c0(%rsp)
vbroadcastsd 0x258(%rsp), %ymm0
vmovapd %ymm0, 0x1a0(%rsp)
movslq 0x490(%rsp), %rdx
shlq $0x5, %rdx
leaq 0xdc201d(%rip), %rax    # 0xdc7b50
movq %rax, 0x18(%rsp)
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5e8(%rsp)
movq 0x5e8(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x180(%rsp)
movslq 0x48c(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5e0(%rsp)
movq 0x5e0(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x160(%rsp)
movslq 0x488(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5d8(%rsp)
movq 0x5d8(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x140(%rsp)
movslq 0x484(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5d0(%rsp)
movq 0x5d0(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x120(%rsp)
vmovapd 0x3e0(%rsp), %ymm1
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x180(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x180(%rsp)
vmovapd 0x3c0(%rsp), %ymm1
vmovapd 0x1e0(%rsp), %ymm0
vmovapd 0x160(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x160(%rsp)
vmovapd 0x3a0(%rsp), %ymm1
vmovapd 0x1c0(%rsp), %ymm0
vmovapd 0x140(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x140(%rsp)
vmovapd 0x380(%rsp), %ymm1
vmovapd 0x1a0(%rsp), %ymm0
vmovapd 0x120(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x120(%rsp)
vmovapd 0x3e0(%rsp), %ymm1
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x380(%rsp), %ymm1
vmovapd 0x1a0(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x3c0(%rsp), %ymm1
vmovapd 0x1e0(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x3a0(%rsp), %ymm1
vmovapd 0x1c0(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
movslq 0x490(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
vmovapd 0x180(%rsp), %ymm0
movq %rcx, 0xb38(%rsp)
vmovapd %ymm0, 0xb00(%rsp)
vmovapd 0xb00(%rsp), %ymm0
movq 0xb38(%rsp), %rcx
vmovapd %ymm0, (%rcx)
movslq 0x48c(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
vmovapd 0x160(%rsp), %ymm0
movq %rcx, 0xaf8(%rsp)
vmovapd %ymm0, 0xac0(%rsp)
vmovapd 0xac0(%rsp), %ymm0
movq 0xaf8(%rsp), %rcx
vmovapd %ymm0, (%rcx)
movslq 0x488(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
vmovapd 0x140(%rsp), %ymm0
movq %rcx, 0xab8(%rsp)
vmovapd %ymm0, 0xa80(%rsp)
vmovapd 0xa80(%rsp), %ymm0
movq 0xab8(%rsp), %rcx
vmovapd %ymm0, (%rcx)
movslq 0x484(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
vmovapd 0x120(%rsp), %ymm0
movq %rax, 0xa78(%rsp)
vmovapd %ymm0, 0xa40(%rsp)
vmovapd 0xa40(%rsp), %ymm0
movq 0xa78(%rsp), %rax
vmovapd %ymm0, (%rax)
movl 0x11c(%rsp), %eax
movl %eax, 0x490(%rsp)
movl 0x118(%rsp), %eax
movl %eax, 0x48c(%rsp)
movl 0x114(%rsp), %eax
movl %eax, 0x488(%rsp)
movl 0x110(%rsp), %eax
movl %eax, 0x484(%rsp)
vmovapd 0xe0(%rsp), %ymm0
vmovapd %ymm0, 0x3e0(%rsp)
vmovapd 0xc0(%rsp), %ymm0
vmovapd %ymm0, 0x3c0(%rsp)
vmovapd 0xa0(%rsp), %ymm0
vmovapd %ymm0, 0x3a0(%rsp)
vmovapd 0x80(%rsp), %ymm0
vmovapd %ymm0, 0x380(%rsp)
vmovapd 0x520(%rsp), %ymm1
vmovapd 0x260(%rsp), %ymm0
vmovapd 0x500(%rsp), %ymm2
vpbroadcastq 0x417b(%rip), %ymm3 # 0xa050
vpxor %ymm3, %ymm2, %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd 0x260(%rsp), %ymm1
vmulpd 0x260(%rsp), %ymm1, %ymm1
vmulpd 0x60(%rsp), %ymm1, %ymm1
vdivpd %ymm1, %ymm0, %ymm0
vmovapd %ymm0, 0x240(%rsp)
vmovapd 0x540(%rsp), %ymm0
vsubpd 0x60(%rsp), %ymm0, %ymm0
vmovapd %ymm0, 0x220(%rsp)
vmovapd 0x240(%rsp), %ymm2
vmovapd 0x560(%rsp), %ymm1
vmovapd 0x220(%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, 0x240(%rsp)
movl 0x494(%rsp), %eax
addl $0x4, %eax
movl %eax, 0x494(%rsp)
jmp 0x573a
vbroadcastsd 0x240(%rsp), %ymm0
vmovapd %ymm0, 0x200(%rsp)
vbroadcastsd 0x248(%rsp), %ymm0
vmovapd %ymm0, 0x1e0(%rsp)
vbroadcastsd 0x250(%rsp), %ymm0
vmovapd %ymm0, 0x1c0(%rsp)
vbroadcastsd 0x258(%rsp), %ymm0
vmovapd %ymm0, 0x1a0(%rsp)
movslq 0x490(%rsp), %rdx
shlq $0x5, %rdx
leaq 0xdc1b60(%rip), %rax    # 0xdc7b50
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5c8(%rsp)
movq 0x5c8(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x180(%rsp)
movslq 0x48c(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5c0(%rsp)
movq 0x5c0(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x160(%rsp)
movslq 0x488(%rsp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, 0x5b8(%rsp)
movq 0x5b8(%rsp), %rcx
vmovapd (%rcx), %ymm0
vmovapd %ymm0, 0x140(%rsp)
movslq 0x484(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, 0x5b0(%rsp)
movq 0x5b0(%rsp), %rax
vmovapd (%rax), %ymm0
vmovapd %ymm0, 0x120(%rsp)
vmovapd 0x3e0(%rsp), %ymm1
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x3c0(%rsp), %ymm1
vmovapd 0x1e0(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x3a0(%rsp), %ymm1
vmovapd 0x1c0(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x380(%rsp), %ymm1
vmovapd 0x1a0(%rsp), %ymm0
vmovapd 0x4a0(%rsp), %ymm2
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x4a0(%rsp)
vmovapd 0x3e0(%rsp), %ymm1
vmovapd 0x200(%rsp), %ymm0
vmovapd 0x180(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x180(%rsp)
vmovapd 0x3c0(%rsp), %ymm1
vmovapd 0x1e0(%rsp), %ymm0
vmovapd 0x160(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x160(%rsp)
vmovapd 0x3a0(%rsp), %ymm1
vmovapd 0x1c0(%rsp), %ymm0
vmovapd 0x140(%rsp), %ymm2
vfnmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = -(ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x140(%rsp)
vmovapd 0x380(%rsp), %ymm1
vmovapd 0x1a0(%rsp), %ymm0
vmovapd 0x120(%rsp), %ymm2
vpbroadcastq 0x3e70(%rip), %ymm3 # 0xa050
vpxor %ymm3, %ymm1, %ymm1
vfmadd213pd %ymm2, %ymm1, %ymm0 # ymm0 = (ymm1 * ymm0) + ymm2
vmovapd %ymm0, 0x120(%rsp)
movslq 0x490(%rsp), %rcx
leaq 0xdc194f(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovapd 0x180(%rsp), %ymm0
movq %rax, 0xa38(%rsp)
vmovapd %ymm0, 0xa00(%rsp)
vmovapd 0xa00(%rsp), %ymm0
movq 0xa38(%rsp), %rax
vmovapd %ymm0, (%rax)
movslq 0x48c(%rsp), %rcx
leaq 0xdc190a(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovapd 0x160(%rsp), %ymm0
movq %rax, 0x9f8(%rsp)
vmovapd %ymm0, 0x9c0(%rsp)
vmovapd 0x9c0(%rsp), %ymm0
movq 0x9f8(%rsp), %rax
vmovapd %ymm0, (%rax)
movslq 0x488(%rsp), %rcx
leaq 0xdc18c5(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovapd 0x140(%rsp), %ymm0
movq %rax, 0x9b8(%rsp)
vmovapd %ymm0, 0x980(%rsp)
vmovapd 0x980(%rsp), %ymm0
movq 0x9b8(%rsp), %rax
vmovapd %ymm0, (%rax)
movslq 0x484(%rsp), %rcx
leaq 0xdc1880(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovapd 0x120(%rsp), %ymm0
movq %rax, 0x978(%rsp)
vmovapd %ymm0, 0x940(%rsp)
vmovapd 0x940(%rsp), %ymm0
movq 0x978(%rsp), %rax
vmovapd %ymm0, (%rax)
movslq 0x4f8(%rsp), %rcx
leaq 0xdc183b(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovapd 0x4a0(%rsp), %ymm0
movq %rax, 0x938(%rsp)
vmovapd %ymm0, 0x900(%rsp)
vmovapd 0x900(%rsp), %ymm0
movq 0x938(%rsp), %rax
vmovapd %ymm0, (%rax)
movl 0x49c(%rsp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
shll $0x2, %eax
movl %eax, 0x5c(%rsp)
movl 0x5c(%rsp), %eax
cmpl 0x49c(%rsp), %eax
jge 0x6652
movl 0x498(%rsp), %eax
addl 0x5c(%rsp), %eax
movslq %eax, %rcx
leaq 0x90fb409(%rip), %rax   # 0x9101790
movl (%rax,%rcx,4), %eax
movl %eax, 0x58(%rsp)
movslq 0x58(%rsp), %rcx
leaq 0x18c7b6(%rip), %rax    # 0x192b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd (%rax), %xmm0
movslq 0x4f8(%rsp), %rcx
leaq 0x18c79c(%rip), %rax    # 0x192b50
shlq $0x5, %rcx
addq %rcx, %rax
vsubsd (%rax), %xmm0, %xmm0
vmovsd %xmm0, 0x50(%rsp)
movslq 0x58(%rsp), %rcx
leaq 0x18c77f(%rip), %rax    # 0x192b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd 0x8(%rax), %xmm0
movslq 0x4f8(%rsp), %rcx
leaq 0x18c764(%rip), %rax    # 0x192b50
shlq $0x5, %rcx
addq %rcx, %rax
vsubsd 0x8(%rax), %xmm0, %xmm0
vmovsd %xmm0, 0x48(%rsp)
movslq 0x58(%rsp), %rcx
leaq 0x18c746(%rip), %rax    # 0x192b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd 0x10(%rax), %xmm0
movslq 0x4f8(%rsp), %rcx
leaq 0x18c72b(%rip), %rax    # 0x192b50
shlq $0x5, %rcx
addq %rcx, %rax
vsubsd 0x10(%rax), %xmm0, %xmm0
vmovsd %xmm0, 0x40(%rsp)
vmovsd 0x50(%rsp), %xmm0
vmovsd 0x50(%rsp), %xmm2
vmovsd 0x48(%rsp), %xmm1
vmulsd 0x48(%rsp), %xmm1, %xmm1
vfmadd213sd %xmm1, %xmm0, %xmm2 # xmm2 = (xmm0 * xmm2) + xmm1
vmovsd 0x40(%rsp), %xmm1
vmovsd 0x40(%rsp), %xmm0
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, 0x38(%rsp)
vmovsd 0x38(%rsp), %xmm0
vmulsd 0x38(%rsp), %xmm0, %xmm0
vmulsd 0x38(%rsp), %xmm0, %xmm0
vmovsd %xmm0, 0x30(%rsp)
vmovsd 0x30(%rsp), %xmm1
vmovsd 0x3baf(%rip), %xmm2     # 0xa040
vmovsd 0x3baf(%rip), %xmm0     # 0xa048
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd 0x30(%rsp), %xmm1
vmulsd 0x30(%rsp), %xmm1, %xmm1
vmulsd 0x38(%rsp), %xmm1, %xmm1
vdivsd %xmm1, %xmm0, %xmm0
vmovsd 0x3b7c(%rip), %xmm1     # 0xa038
vmulsd %xmm1, %xmm0, %xmm0
vmovsd %xmm0, 0x28(%rsp)
vmovsd 0x38(%rsp), %xmm0
vmovsd 0x3b5c(%rip), %xmm1     # 0xa030
vucomisd %xmm1, %xmm0
jbe 0x64e4
vpxor %xmm0, %xmm0, %xmm0
vmovsd %xmm0, 0x28(%rsp)
vmovsd 0x28(%rsp), %xmm1
vmovsd 0x50(%rsp), %xmm0
movslq 0x4f8(%rsp), %rcx
leaq 0xdc1651(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd (%rax), %xmm2
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, (%rax)
vmovsd 0x28(%rsp), %xmm1
vmovsd 0x48(%rsp), %xmm0
movslq 0x4f8(%rsp), %rcx
leaq 0xdc1622(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd 0x8(%rax), %xmm2
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, 0x8(%rax)
vmovsd 0x28(%rsp), %xmm1
vmovsd 0x40(%rsp), %xmm0
movslq 0x4f8(%rsp), %rcx
leaq 0xdc15f1(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd 0x10(%rax), %xmm2
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, 0x10(%rax)
vmovsd 0x28(%rsp), %xmm1
vmovsd 0x50(%rsp), %xmm0
movslq 0x58(%rsp), %rcx
leaq 0xdc15c3(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd (%rax), %xmm2
vmovq %xmm1, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
vmovq %rcx, %xmm1
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, (%rax)
vmovsd 0x28(%rsp), %xmm1
vmovsd 0x48(%rsp), %xmm0
movslq 0x58(%rsp), %rcx
leaq 0xdc1580(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd 0x8(%rax), %xmm2
vmovq %xmm1, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
vmovq %rcx, %xmm1
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, 0x8(%rax)
vmovsd 0x28(%rsp), %xmm1
vmovsd 0x40(%rsp), %xmm0
movslq 0x58(%rsp), %rcx
leaq 0xdc153b(%rip), %rax    # 0xdc7b50
shlq $0x5, %rcx
addq %rcx, %rax
vmovsd 0x10(%rax), %xmm2
vmovq %xmm1, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rcx
vmovq %rcx, %xmm1
vfmadd213sd %xmm2, %xmm1, %xmm0 # xmm0 = (xmm1 * xmm0) + xmm2
vmovsd %xmm0, 0x10(%rax)
movl 0x5c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5c(%rsp)
jmp 0x6361
jmp 0x6654
movl 0x4f8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4f8(%rsp)
jmp 0x520e
movq %rbp, %rsp
popq %rbp
vzeroupper
retq
nopw %cs:(%rax,%rax)