// File: /workspace/github_cpp_makefile_star2_O1/Sleepwalking[P]world-octave/fft.cpp
// Function: cftf161(double*, double*)
void cftf161(double *a, double *w) {
  double wn4r, wk1r, wk1i,
    x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i,
    y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i,
    y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i,
    y8r, y8i, y9r, y9i, y10r, y10i, y11r, y11i,
    y12r, y12i, y13r, y13i, y14r, y14i, y15r, y15i;

  wn4r = w[1];
  wk1r = w[2];
  wk1i = w[3];
  x0r = a[0] + a[16];
  x0i = a[1] + a[17];
  x1r = a[0] - a[16];
  x1i = a[1] - a[17];
  x2r = a[8] + a[24];
  x2i = a[9] + a[25];
  x3r = a[8] - a[24];
  x3i = a[9] - a[25];
  y0r = x0r + x2r;
  y0i = x0i + x2i;
  y4r = x0r - x2r;
  y4i = x0i - x2i;
  y8r = x1r - x3i;
  y8i = x1i + x3r;
  y12r = x1r + x3i;
  y12i = x1i - x3r;
  x0r = a[2] + a[18];
  x0i = a[3] + a[19];
  x1r = a[2] - a[18];
  x1i = a[3] - a[19];
  x2r = a[10] + a[26];
  x2i = a[11] + a[27];
  x3r = a[10] - a[26];
  x3i = a[11] - a[27];
  y1r = x0r + x2r;
  y1i = x0i + x2i;
  y5r = x0r - x2r;
  y5i = x0i - x2i;
  x0r = x1r - x3i;
  x0i = x1i + x3r;
  y9r = wk1r * x0r - wk1i * x0i;
  y9i = wk1r * x0i + wk1i * x0r;
  x0r = x1r + x3i;
  x0i = x1i - x3r;
  y13r = wk1i * x0r - wk1r * x0i;
  y13i = wk1i * x0i + wk1r * x0r;
  x0r = a[4] + a[20];
  x0i = a[5] + a[21];
  x1r = a[4] - a[20];
  x1i = a[5] - a[21];
  x2r = a[12] + a[28];
  x2i = a[13] + a[29];
  x3r = a[12] - a[28];
  x3i = a[13] - a[29];
  y2r = x0r + x2r;
  y2i = x0i + x2i;
  y6r = x0r - x2r;
  y6i = x0i - x2i;
  x0r = x1r - x3i;
  x0i = x1i + x3r;
  y10r = wn4r * (x0r - x0i);
  y10i = wn4r * (x0i + x0r);
  x0r = x1r + x3i;
  x0i = x1i - x3r;
  y14r = wn4r * (x0r + x0i);
  y14i = wn4r * (x0i - x0r);
  x0r = a[6] + a[22];
  x0i = a[7] + a[23];
  x1r = a[6] - a[22];
  x1i = a[7] - a[23];
  x2r = a[14] + a[30];
  x2i = a[15] + a[31];
  x3r = a[14] - a[30];
  x3i = a[15] - a[31];
  y3r = x0r + x2r;
  y3i = x0i + x2i;
  y7r = x0r - x2r;
  y7i = x0i - x2i;
  x0r = x1r - x3i;
  x0i = x1i + x3r;
  y11r = wk1i * x0r - wk1r * x0i;
  y11i = wk1i * x0i + wk1r * x0r;
  x0r = x1r + x3i;
  x0i = x1i - x3r;
  y15r = wk1r * x0r - wk1i * x0i;
  y15i = wk1r * x0i + wk1i * x0r;
  x0r = y12r - y14r;
  x0i = y12i - y14i;
  x1r = y12r + y14r;
  x1i = y12i + y14i;
  x2r = y13r - y15r;
  x2i = y13i - y15i;
  x3r = y13r + y15r;
  x3i = y13i + y15i;
  a[24] = x0r + x2r;
  a[25] = x0i + x2i;
  a[26] = x0r - x2r;
  a[27] = x0i - x2i;
  a[28] = x1r - x3i;
  a[29] = x1i + x3r;
  a[30] = x1r + x3i;
  a[31] = x1i - x3r;
  x0r = y8r + y10r;
  x0i = y8i + y10i;
  x1r = y8r - y10r;
  x1i = y8i - y10i;
  x2r = y9r + y11r;
  x2i = y9i + y11i;
  x3r = y9r - y11r;
  x3i = y9i - y11i;
  a[16] = x0r + x2r;
  a[17] = x0i + x2i;
  a[18] = x0r - x2r;
  a[19] = x0i - x2i;
  a[20] = x1r - x3i;
  a[21] = x1i + x3r;
  a[22] = x1r + x3i;
  a[23] = x1i - x3r;
  x0r = y5r - y7i;
  x0i = y5i + y7r;
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  x0r = y5r + y7i;
  x0i = y5i - y7r;
  x3r = wn4r * (x0r - x0i);
  x3i = wn4r * (x0i + x0r);
  x0r = y4r - y6i;
  x0i = y4i + y6r;
  x1r = y4r + y6i;
  x1i = y4i - y6r;
  a[8] = x0r + x2r;
  a[9] = x0i + x2i;
  a[10] = x0r - x2r;
  a[11] = x0i - x2i;
  a[12] = x1r - x3i;
  a[13] = x1i + x3r;
  a[14] = x1r + x3i;
  a[15] = x1i - x3r;
  x0r = y0r + y2r;
  x0i = y0i + y2i;
  x1r = y0r - y2r;
  x1i = y0i - y2i;
  x2r = y1r + y3r;
  x2i = y1i + y3i;
  x3r = y1r - y3r;
  x3i = y1i - y3i;
  a[0] = x0r + x2r;
  a[1] = x0i + x2i;
  a[2] = x0r - x2r;
  a[3] = x0i - x2i;
  a[4] = x1r - x3i;
  a[5] = x1i + x3r;
  a[6] = x1r + x3i;
  a[7] = x1i - x3r;
}

// Assembly:
subq $0x30, %rsp
movsd 0x80(%rdi), %xmm1
movsd (%rdi), %xmm0
movsd 0x8(%rdi), %xmm8
movapd %xmm0, %xmm6
addsd %xmm1, %xmm6
movsd 0x88(%rdi), %xmm2
movapd %xmm8, %xmm7
addsd %xmm2, %xmm7
subsd %xmm1, %xmm0
subsd %xmm2, %xmm8
movsd 0x40(%rdi), %xmm1
movsd 0xc0(%rdi), %xmm2
movapd %xmm1, %xmm3
addsd %xmm2, %xmm3
movsd 0x48(%rdi), %xmm9
movsd 0xc8(%rdi), %xmm4
movapd %xmm9, %xmm5
addsd %xmm4, %xmm5
subsd %xmm2, %xmm1
subsd %xmm4, %xmm9
movapd %xmm6, %xmm2
addsd %xmm3, %xmm2
movsd %xmm2, 0x20(%rsp)
movapd %xmm7, %xmm2
addsd %xmm5, %xmm2
movsd %xmm2, 0x28(%rsp)
subsd %xmm3, %xmm6
movsd %xmm6, (%rsp)
subsd %xmm5, %xmm7
movsd %xmm7, 0x8(%rsp)
movapd %xmm0, %xmm2
subsd %xmm9, %xmm2
movsd %xmm2, -0x20(%rsp)
movapd %xmm8, %xmm2
addsd %xmm1, %xmm2
movsd %xmm2, -0x10(%rsp)
addsd %xmm0, %xmm9
movsd %xmm9, -0x58(%rsp)
subsd %xmm1, %xmm8
movsd %xmm8, -0x40(%rsp)
movsd 0x10(%rdi), %xmm1
movsd 0x90(%rdi), %xmm2
movapd %xmm1, %xmm0
addsd %xmm2, %xmm0
movapd %xmm0, %xmm4
movsd 0x18(%rdi), %xmm0
movsd 0x98(%rdi), %xmm3
movapd %xmm0, %xmm7
addsd %xmm3, %xmm7
subsd %xmm2, %xmm1
subsd %xmm3, %xmm0
movsd 0x50(%rdi), %xmm2
movsd 0xd0(%rdi), %xmm3
movapd %xmm2, %xmm5
addsd %xmm3, %xmm5
movsd 0x58(%rdi), %xmm9
subsd %xmm3, %xmm2
movsd 0xd8(%rdi), %xmm3
movapd %xmm9, %xmm6
addsd %xmm3, %xmm6
subsd %xmm3, %xmm9
movapd %xmm4, %xmm3
addsd %xmm5, %xmm3
movsd %xmm3, 0x18(%rsp)
subsd %xmm5, %xmm4
movsd %xmm4, -0x8(%rsp)
movapd %xmm7, %xmm3
addsd %xmm6, %xmm3
movsd %xmm3, 0x10(%rsp)
subsd %xmm6, %xmm7
movsd %xmm7, -0x18(%rsp)
movapd %xmm1, %xmm14
subsd %xmm9, %xmm14
movapd %xmm0, %xmm3
addsd %xmm2, %xmm3
movsd 0x10(%rsi), %xmm5
movapd %xmm5, %xmm6
mulsd %xmm3, %xmm6
movsd 0x18(%rsi), %xmm11
mulsd %xmm11, %xmm3
movapd %xmm5, %xmm4
mulsd %xmm14, %xmm4
subsd %xmm3, %xmm4
movsd %xmm4, -0x48(%rsp)
mulsd %xmm11, %xmm14
addsd %xmm6, %xmm14
addsd %xmm1, %xmm9
subsd %xmm2, %xmm0
movapd %xmm11, %xmm1
mulsd %xmm0, %xmm1
mulsd %xmm5, %xmm0
movapd %xmm11, %xmm2
mulsd %xmm9, %xmm2
subsd %xmm0, %xmm2
movsd %xmm2, -0x70(%rsp)
mulsd %xmm5, %xmm9
addsd %xmm1, %xmm9
movsd 0x20(%rdi), %xmm0
movsd 0xa0(%rdi), %xmm1
movapd %xmm0, %xmm2
addsd %xmm1, %xmm2
movapd %xmm2, %xmm8
subsd %xmm1, %xmm0
movsd 0x28(%rdi), %xmm10
movsd 0xa8(%rdi), %xmm1
movapd %xmm10, %xmm4
addsd %xmm1, %xmm4
subsd %xmm1, %xmm10
movsd 0x60(%rdi), %xmm1
movsd 0xe0(%rdi), %xmm2
movapd %xmm1, %xmm6
addsd %xmm2, %xmm6
subsd %xmm2, %xmm1
movsd 0x68(%rdi), %xmm3
movsd 0xe8(%rdi), %xmm2
movapd %xmm3, %xmm7
addsd %xmm2, %xmm7
subsd %xmm2, %xmm3
movapd %xmm8, %xmm2
addsd %xmm6, %xmm2
movsd %xmm2, -0x28(%rsp)
subsd %xmm6, %xmm8
movsd %xmm8, -0x38(%rsp)
movapd %xmm4, %xmm2
addsd %xmm7, %xmm2
movsd %xmm2, -0x30(%rsp)
subsd %xmm7, %xmm4
movsd %xmm4, -0x50(%rsp)
movapd %xmm0, %xmm2
subsd %xmm3, %xmm2
movapd %xmm10, %xmm6
addsd %xmm1, %xmm6
movapd %xmm2, %xmm4
subsd %xmm6, %xmm4
movsd %xmm4, -0x78(%rsp)
addsd %xmm2, %xmm6
addsd %xmm0, %xmm3
subsd %xmm1, %xmm10
movapd %xmm10, %xmm4
addsd %xmm3, %xmm4
subsd %xmm3, %xmm10
movsd 0x30(%rdi), %xmm15
movsd 0xb0(%rdi), %xmm0
movapd %xmm15, %xmm12
addsd %xmm0, %xmm12
subsd %xmm0, %xmm15
movsd 0x38(%rdi), %xmm3
movsd 0xb8(%rdi), %xmm0
movapd %xmm3, %xmm7
addsd %xmm0, %xmm7
subsd %xmm0, %xmm3
movsd 0x70(%rdi), %xmm2
movsd 0xf0(%rdi), %xmm0
movapd %xmm2, %xmm8
addsd %xmm0, %xmm8
subsd %xmm0, %xmm2
movsd 0x78(%rdi), %xmm0
movsd 0xf8(%rdi), %xmm13
movapd %xmm0, %xmm1
addsd %xmm13, %xmm1
subsd %xmm13, %xmm0
movapd %xmm12, %xmm13
addsd %xmm8, %xmm12
movsd %xmm12, -0x60(%rsp)
subsd %xmm8, %xmm13
movsd %xmm13, -0x80(%rsp)
movapd %xmm7, %xmm8
addsd %xmm1, %xmm8
movsd %xmm8, -0x68(%rsp)
subsd %xmm1, %xmm7
movapd %xmm3, %xmm1
addsd %xmm2, %xmm1
movapd %xmm11, %xmm12
mulsd %xmm1, %xmm12
mulsd %xmm5, %xmm1
movapd %xmm15, %xmm13
subsd %xmm0, %xmm13
movapd %xmm11, %xmm8
mulsd %xmm13, %xmm8
subsd %xmm1, %xmm8
mulsd %xmm5, %xmm13
addsd %xmm12, %xmm13
addsd %xmm15, %xmm0
subsd %xmm2, %xmm3
movapd %xmm3, %xmm1
mulsd %xmm5, %xmm3
movapd %xmm5, %xmm15
mulsd %xmm11, %xmm1
mulsd %xmm0, %xmm15
subsd %xmm1, %xmm15
mulsd %xmm11, %xmm0
addsd %xmm0, %xmm3
movsd 0x8(%rsi), %xmm5
mulsd %xmm5, %xmm4
movsd -0x58(%rsp), %xmm1
movapd %xmm1, %xmm0
subsd %xmm4, %xmm0
addsd %xmm1, %xmm4
mulsd %xmm5, %xmm10
movsd -0x40(%rsp), %xmm2
movapd %xmm2, %xmm1
subsd %xmm10, %xmm1
addsd %xmm2, %xmm10
movsd -0x70(%rsp), %xmm11
movapd %xmm11, %xmm2
subsd %xmm15, %xmm2
addsd %xmm11, %xmm15
movapd %xmm9, %xmm11
subsd %xmm3, %xmm11
addsd %xmm9, %xmm3
movapd %xmm0, %xmm9
addsd %xmm2, %xmm9
movsd %xmm9, 0xc0(%rdi)
movapd %xmm1, %xmm9
addsd %xmm11, %xmm9
movsd %xmm9, 0xc8(%rdi)
subsd %xmm2, %xmm0
movsd %xmm0, 0xd0(%rdi)
subsd %xmm11, %xmm1
movsd %xmm1, 0xd8(%rdi)
movapd %xmm4, %xmm0
subsd %xmm3, %xmm0
movsd %xmm0, 0xe0(%rdi)
movapd %xmm10, %xmm0
addsd %xmm15, %xmm0
movsd %xmm0, 0xe8(%rdi)
addsd %xmm4, %xmm3
movsd %xmm3, 0xf0(%rdi)
subsd %xmm15, %xmm10
movsd %xmm10, 0xf8(%rdi)
movsd -0x78(%rsp), %xmm1
mulsd %xmm5, %xmm1
movsd -0x20(%rsp), %xmm9
movapd %xmm9, %xmm0
addsd %xmm1, %xmm0
subsd %xmm1, %xmm9
mulsd %xmm5, %xmm6
movsd -0x10(%rsp), %xmm2
movapd %xmm2, %xmm1
addsd %xmm6, %xmm1
subsd %xmm6, %xmm2
movapd %xmm2, %xmm6
movsd -0x48(%rsp), %xmm3
movapd %xmm3, %xmm2
addsd %xmm8, %xmm2
subsd %xmm8, %xmm3
movapd %xmm3, %xmm8
movapd %xmm14, %xmm3
addsd %xmm13, %xmm3
subsd %xmm13, %xmm14
movapd %xmm0, %xmm4
addsd %xmm2, %xmm4
movsd %xmm4, 0x80(%rdi)
movapd %xmm1, %xmm4
addsd %xmm3, %xmm4
movsd %xmm4, 0x88(%rdi)
subsd %xmm2, %xmm0
movsd %xmm0, 0x90(%rdi)
subsd %xmm3, %xmm1
movsd %xmm1, 0x98(%rdi)
movapd %xmm9, %xmm0
subsd %xmm14, %xmm0
movsd %xmm0, 0xa0(%rdi)
movapd %xmm6, %xmm0
addsd %xmm8, %xmm0
movsd %xmm0, 0xa8(%rdi)
addsd %xmm9, %xmm14
movsd %xmm14, 0xb0(%rdi)
subsd %xmm8, %xmm6
movsd %xmm6, 0xb8(%rdi)
movsd -0x8(%rsp), %xmm4
movapd %xmm4, %xmm1
subsd %xmm7, %xmm1
movsd -0x18(%rsp), %xmm3
movapd %xmm3, %xmm0
movsd -0x80(%rsp), %xmm6
addsd %xmm6, %xmm0
movapd %xmm1, %xmm2
subsd %xmm0, %xmm2
addsd %xmm1, %xmm0
addsd %xmm4, %xmm7
subsd %xmm6, %xmm3
movapd %xmm7, %xmm1
subsd %xmm3, %xmm1
addsd %xmm7, %xmm3
mulsd %xmm5, %xmm2
mulsd %xmm5, %xmm0
mulsd %xmm5, %xmm1
mulsd %xmm5, %xmm3
movapd %xmm3, %xmm7
movsd (%rsp), %xmm4
movapd %xmm4, %xmm3
movsd -0x50(%rsp), %xmm8
subsd %xmm8, %xmm3
addsd %xmm4, %xmm8
movsd 0x8(%rsp), %xmm5
movapd %xmm5, %xmm4
movsd -0x38(%rsp), %xmm6
addsd %xmm6, %xmm4
subsd %xmm6, %xmm5
movapd %xmm5, %xmm6
movapd %xmm3, %xmm5
addsd %xmm2, %xmm5
movsd %xmm5, 0x40(%rdi)
movapd %xmm4, %xmm5
addsd %xmm0, %xmm5
movsd %xmm5, 0x48(%rdi)
subsd %xmm2, %xmm3
movsd %xmm3, 0x50(%rdi)
subsd %xmm0, %xmm4
movsd %xmm4, 0x58(%rdi)
movapd %xmm8, %xmm0
subsd %xmm7, %xmm0
movsd %xmm0, 0x60(%rdi)
movapd %xmm6, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x68(%rdi)
addsd %xmm7, %xmm8
movsd %xmm8, 0x70(%rdi)
subsd %xmm1, %xmm6
movsd %xmm6, 0x78(%rdi)
movsd 0x20(%rsp), %xmm6
movapd %xmm6, %xmm0
movsd -0x28(%rsp), %xmm1
addsd %xmm1, %xmm0
subsd %xmm1, %xmm6
movsd 0x28(%rsp), %xmm5
movapd %xmm5, %xmm1
movsd -0x30(%rsp), %xmm2
addsd %xmm2, %xmm1
subsd %xmm2, %xmm5
movsd 0x18(%rsp), %xmm3
movapd %xmm3, %xmm2
movsd -0x60(%rsp), %xmm4
addsd %xmm4, %xmm2
subsd %xmm4, %xmm3
movapd %xmm3, %xmm7
movsd 0x10(%rsp), %xmm4
movapd %xmm4, %xmm3
movsd -0x68(%rsp), %xmm8
addsd %xmm8, %xmm3
subsd %xmm8, %xmm4
movapd %xmm4, %xmm8
movapd %xmm0, %xmm4
addsd %xmm2, %xmm4
movsd %xmm4, (%rdi)
movapd %xmm1, %xmm4
addsd %xmm3, %xmm4
movsd %xmm4, 0x8(%rdi)
subsd %xmm2, %xmm0
movsd %xmm0, 0x10(%rdi)
subsd %xmm3, %xmm1
movsd %xmm1, 0x18(%rdi)
movapd %xmm6, %xmm0
subsd %xmm8, %xmm0
movsd %xmm0, 0x20(%rdi)
movapd %xmm5, %xmm0
addsd %xmm7, %xmm0
movsd %xmm0, 0x28(%rdi)
addsd %xmm6, %xmm8
movsd %xmm8, 0x30(%rdi)
subsd %xmm7, %xmm5
movsd %xmm5, 0x38(%rdi)
addq $0x30, %rsp
retq