// File: kebwi[P]Trifid/src/FFT/fftlib.cpp
// Function: bfR4(double*, long, long)
inline void bfR4(Float_t *ioptr, long M, long NDiffU){
/*** 1 radix 4 stage ***/
unsigned long	pos;
unsigned long	posi;
unsigned long	pinc;
unsigned long	pnext;
unsigned long	pnexti;
unsigned long 	NSameU;
unsigned long 	SameUCnt;

Float_t	*pstrt;
Float_t 	*p0r, *p1r, *p2r, *p3r;

Float_t w1r = 1.0/MYROOT2; /* cos(pi/4)	*/
Float_t f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
Float_t f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i;
Float_t t1r, t1i;
const Float_t Two = 2.0;

pinc = NDiffU * 2;		// 2 floats per complex
pnext =  pinc * 4;
pnexti =  pnext + 1;
pos = 2;
posi = pos+1;
NSameU = POW2(M) / 4 /NDiffU;	// 4 pts per butterfly
pstrt = ioptr;
p0r = pstrt;
p1r = pstrt+pinc;
p2r = p1r+pinc;
p3r = p2r+pinc;

		/* Butterflys		*/
		/*
		f0	-	-	f0	-	-	f4
		f1	-  1 -	f5	-	-	f5
		f2	-	-	f6	-  1 -	f6
		f3	-  1 -	f3	- -i -	f7
		*/
		/* Butterflys		*/
		/*
		f0	-	-	f4	-	-	f4
		f1	- -i -	t1	-	-	f5
		f2	-	-	f2	- w1 -	f6
		f3	- -i -	f7	- iw1-	f7
		*/

f0r = *p0r;
f1r = *p1r;
f2r = *p2r;
f3r = *p3r;
f0i = *(p0r + 1);
f1i = *(p1r + 1);
f2i = *(p2r + 1);
f3i = *(p3r + 1);

f5r = f0r - f1r;
f5i = f0i - f1i;
f0r = f0r + f1r;
f0i = f0i + f1i;

f6r = f2r + f3r;
f6i = f2i + f3i;
f3r = f2r - f3r;
f3i = f2i - f3i;

for (SameUCnt = NSameU-1; SameUCnt > 0 ; SameUCnt--){

	f7r = f5r - f3i;
	f7i = f5i + f3r;
	f5r = f5r + f3i;
	f5i = f5i - f3r;

	f4r = f0r + f6r;
	f4i = f0i + f6i;
	f6r = f0r - f6r;
	f6i = f0i - f6i;

	f2r = *(p2r + pos);
	f2i = *(p2r + posi);
	f1r = *(p1r + pos);
	f1i = *(p1r + posi);
	f3i = *(p3r + posi);
	f0r = *(p0r + pos);
	f3r = *(p3r + pos);
	f0i = *(p0r + posi);

	*p3r = f7r;
	*p0r = f4r;
	*(p3r + 1) = f7i;
	*(p0r + 1) = f4i;
	*p1r = f5r;
	*p2r = f6r;
	*(p1r + 1) = f5i;
	*(p2r + 1) = f6i;

	f7r = f2r - f3i;
	f7i = f2i + f3r;
	f2r = f2r + f3i;
	f2i = f2i - f3r;

	f4r = f0r + f1i;
	f4i = f0i - f1r;
	t1r = f0r - f1i;
	t1i = f0i + f1r;

	f5r = t1r - f7r * w1r + f7i * w1r;
	f5i = t1i - f7r * w1r - f7i * w1r;
	f7r = t1r * Two - f5r;
	f7i = t1i * Two - f5i;

	f6r = f4r - f2r * w1r - f2i * w1r;
	f6i = f4i + f2r * w1r - f2i * w1r;
	f4r = f4r * Two - f6r;
	f4i = f4i * Two - f6i;

	f3r = *(p3r + pnext);
	f0r = *(p0r + pnext);
	f3i = *(p3r + pnexti);
	f0i = *(p0r + pnexti);
	f2r = *(p2r + pnext);
	f2i = *(p2r + pnexti);
	f1r = *(p1r + pnext);
	f1i = *(p1r + pnexti);

	*(p2r + pos) = f6r;
	*(p1r + pos) = f5r;
	*(p2r + posi) = f6i;
	*(p1r + posi) = f5i;
	*(p3r + pos) = f7r;
	*(p0r + pos) = f4r;
	*(p3r + posi) = f7i;
	*(p0r + posi) = f4i;

	f6r = f2r + f3r;
	f6i = f2i + f3i;
	f3r = f2r - f3r;
	f3i = f2i - f3i;

	f5r = f0r - f1r;
	f5i = f0i - f1i;
	f0r = f0r + f1r;
	f0i = f0i + f1i;

	p3r += pnext;
	p0r += pnext;
	p1r += pnext;
	p2r += pnext;

}
f7r = f5r - f3i;
f7i = f5i + f3r;
f5r = f5r + f3i;
f5i = f5i - f3r;

f4r = f0r + f6r;
f4i = f0i + f6i;
f6r = f0r - f6r;
f6i = f0i - f6i;

f2r = *(p2r + pos);
f2i = *(p2r + posi);
f1r = *(p1r + pos);
f1i = *(p1r + posi);
f3i = *(p3r + posi);
f0r = *(p0r + pos);
f3r = *(p3r + pos);
f0i = *(p0r + posi);

*p3r = f7r;
*p0r = f4r;
*(p3r + 1) = f7i;
*(p0r + 1) = f4i;
*p1r = f5r;
*p2r = f6r;
*(p1r + 1) = f5i;
*(p2r + 1) = f6i;

f7r = f2r - f3i;
f7i = f2i + f3r;
f2r = f2r + f3i;
f2i = f2i - f3r;

f4r = f0r + f1i;
f4i = f0i - f1r;
t1r = f0r - f1i;
t1i = f0i + f1r;

f5r = t1r - f7r * w1r + f7i * w1r;
f5i = t1i - f7r * w1r - f7i * w1r;
f7r = t1r * Two - f5r;
f7i = t1i * Two - f5i;

f6r = f4r - f2r * w1r - f2i * w1r;
f6i = f4i + f2r * w1r - f2i * w1r;
f4r = f4r * Two - f6r;
f4i = f4i * Two - f6i;

*(p2r + pos) = f6r;
*(p1r + pos) = f5r;
*(p2r + posi) = f6i;
*(p1r + posi) = f5i;
*(p3r + pos) = f7r;
*(p0r + pos) = f4r;
*(p3r + posi) = f7i;
*(p0r + posi) = f4i;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x98, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movsd 0xe659(%rip), %xmm0     # 0x4d9c8
movsd %xmm0, -0x80(%rbp)
movsd 0xb1cc(%rip), %xmm0     # 0x4a548
movsd %xmm0, -0x118(%rbp)
movq -0x18(%rbp), %rax
shlq %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq $0x2, -0x20(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rcx
movl $0x1, %eax
shlq %cl, %rax
shrq $0x2, %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq -0x18(%rbp)
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0x60(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x88(%rbp)
movq -0x68(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x98(%rbp)
movq -0x70(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x78(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xb8(%rbp)
movq -0x60(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x68(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x70(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x78(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0x88(%rbp), %xmm0
subsd -0x98(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0x88(%rbp), %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x90(%rbp), %xmm0
addsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0xa8(%rbp), %xmm0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xb0(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xa8(%rbp), %xmm0
subsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0xb0(%rbp), %xmm0
subsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x48(%rbp), %rax
subq $0x1, %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jbe 0x3fcd6
movsd -0xd8(%rbp), %xmm0
subsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xe0(%rbp), %xmm0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0xd8(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0xe0(%rbp), %xmm0
subsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0x88(%rbp), %xmm0
addsd -0xe8(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0x90(%rbp), %xmm0
addsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x88(%rbp), %xmm0
subsd -0xe8(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movq -0x70(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x70(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x68(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x98(%rbp)
movq -0x68(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x78(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x60(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x88(%rbp)
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb8(%rbp)
movq -0x60(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0xf8(%rbp), %xmm0
movq -0x78(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0xc8(%rbp), %xmm0
movq -0x60(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x100(%rbp), %xmm0
movq -0x78(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xd0(%rbp), %xmm0
movq -0x60(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xd8(%rbp), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0xe8(%rbp), %xmm0
movq -0x70(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0xe0(%rbp), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xf0(%rbp), %xmm0
movq -0x70(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xa8(%rbp), %xmm0
subsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xb0(%rbp), %xmm0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0xa8(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0xb0(%rbp), %xmm0
subsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0x88(%rbp), %xmm0
addsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0x98(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x88(%rbp), %xmm0
subsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0x108(%rbp)
movsd -0x90(%rbp), %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x110(%rbp)
movsd -0x108(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x100(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0x110(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x100(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0x108(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0x110(%rbp), %xmm0
movsd -0xe0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xb0(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xd0(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xb0(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xd0(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xd0(%rbp)
movq -0x78(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb8(%rbp)
movq -0x60(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x88(%rbp)
movq -0x78(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x60(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x70(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x70(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x68(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x98(%rbp)
movq -0x68(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xe8(%rbp), %xmm0
movq -0x70(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xd8(%rbp), %xmm0
movq -0x68(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xf0(%rbp), %xmm0
movq -0x70(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xe0(%rbp), %xmm0
movq -0x68(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xf8(%rbp), %xmm0
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xc8(%rbp), %xmm0
movq -0x60(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x100(%rbp), %xmm0
movq -0x78(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xd0(%rbp), %xmm0
movq -0x60(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xa8(%rbp), %xmm0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xb0(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xa8(%rbp), %xmm0
subsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
movsd -0xb0(%rbp), %xmm0
subsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xc0(%rbp)
movsd -0x88(%rbp), %xmm0
subsd -0x98(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0x88(%rbp), %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x90(%rbp), %xmm0
addsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0x90(%rbp)
movq -0x38(%rbp), %rax
shlq $0x3, %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x38(%rbp), %rax
shlq $0x3, %rax
addq -0x60(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %rax
shlq $0x3, %rax
addq -0x68(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x38(%rbp), %rax
shlq $0x3, %rax
addq -0x70(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x50(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x3f570
movsd -0xd8(%rbp), %xmm0
subsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xe0(%rbp), %xmm0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0xd8(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0xe0(%rbp), %xmm0
subsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0x88(%rbp), %xmm0
addsd -0xe8(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0x90(%rbp), %xmm0
addsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x88(%rbp), %xmm0
subsd -0xe8(%rbp), %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0xf0(%rbp), %xmm0
movsd %xmm0, -0xf0(%rbp)
movq -0x70(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x70(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb0(%rbp)
movq -0x68(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x98(%rbp)
movq -0x68(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xa0(%rbp)
movq -0x78(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x60(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x88(%rbp)
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0xb8(%rbp)
movq -0x60(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd -0xf8(%rbp), %xmm0
movq -0x78(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0xc8(%rbp), %xmm0
movq -0x60(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x100(%rbp), %xmm0
movq -0x78(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xd0(%rbp), %xmm0
movq -0x60(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xd8(%rbp), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0xe8(%rbp), %xmm0
movq -0x70(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0xe0(%rbp), %xmm0
movq -0x68(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xf0(%rbp), %xmm0
movq -0x70(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0xa8(%rbp), %xmm0
subsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xb0(%rbp), %xmm0
addsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0xa8(%rbp), %xmm0
addsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0xb0(%rbp), %xmm0
subsd -0xb8(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0x88(%rbp), %xmm0
addsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0x90(%rbp), %xmm0
subsd -0x98(%rbp), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0x88(%rbp), %xmm0
subsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0x108(%rbp)
movsd -0x90(%rbp), %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x110(%rbp)
movsd -0x108(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x100(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xd8(%rbp)
movsd -0x110(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x100(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0x108(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0x110(%rbp), %xmm0
movsd -0xe0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xb0(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0xd0(%rbp), %xmm0
movsd -0xa8(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0xb0(%rbp), %xmm0
movsd -0x80(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xf0(%rbp)
movsd -0xc8(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xd0(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd -0xe8(%rbp), %xmm0
movq -0x70(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xd8(%rbp), %xmm0
movq -0x68(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xf0(%rbp), %xmm0
movq -0x70(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xe0(%rbp), %xmm0
movq -0x68(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xf8(%rbp), %xmm0
movq -0x78(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xc8(%rbp), %xmm0
movq -0x60(%rbp), %rax
movq -0x20(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x100(%rbp), %xmm0
movq -0x78(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0xd0(%rbp), %xmm0
movq -0x60(%rbp), %rax
movq -0x28(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
addq $0x98, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)