// File: kebwi[P]Trifid/src/FFT/fftlib.cpp
// Function: bfstages(double*, long, double*, long, long, long)
inline void bfstages(Float_t *ioptr, long M, Float_t *Utbl, long Ustride, long NDiffU, long StageCnt){
/***   RADIX 8 Stages	***/
unsigned long	pos;
unsigned long	posi;
unsigned long	pinc;
unsigned long	pnext;
unsigned long 	NSameU;
unsigned long 	Uinc;
unsigned long 	Uinc2;
unsigned long 	Uinc4;
unsigned long 	DiffUCnt;
unsigned long 	SameUCnt;
unsigned long 	U2toU3;

Float_t	*pstrt;
Float_t 	*p0r, *p1r, *p2r, *p3r;
Float_t 	*u0r, *u0i, *u1r, *u1i, *u2r, *u2i;

Float_t w0r, w0i, w1r, w1i, w2r, w2i, w3r, w3i;
Float_t f0r, f0i, f1r, f1i, f2r, f2i, f3r, f3i;
Float_t f4r, f4i, f5r, f5i, f6r, f6i, f7r, f7i;
Float_t t0r, t0i, t1r, t1i;
const Float_t Two = 2.0;

pinc = NDiffU * 2;		// 2 floats per complex
pnext =  pinc * 8;
pos = pinc * 4;
posi =  pos + 1;
NSameU = POW2(M) / 8 /NDiffU;	// 8 pts per butterfly
Uinc = NSameU * Ustride;
Uinc2 = Uinc * 2;
Uinc4 = Uinc * 4;
U2toU3 = (POW2(M) / 8)*Ustride;
for (; StageCnt > 0 ; StageCnt--){

	u0r = &Utbl[0];
	u0i = &Utbl[POW2(M-2)*Ustride];
	u1r = u0r;
	u1i = u0i;
	u2r = u0r;
	u2i = u0i;

	w0r =  *u0r;
	w0i =  *u0i;
	w1r =  *u1r;
	w1i =  *u1i;
	w2r =  *u2r;
	w2i =  *u2i;
	w3r =  *(u2r+U2toU3);
	w3i =  *(u2i-U2toU3);

	pstrt = ioptr;

	p0r = pstrt;
	p1r = pstrt+pinc;
	p2r = p1r+pinc;
	p3r = p2r+pinc;

			/* Butterflys		*/
			/*
			f0	-	-	t0	-	-	f0	-	-	f0
			f1	- w0-	f1	-	-	f1	-	-	f1
			f2	-	-	f2	- w1-	f2	-	-	f4
			f3	- w0-	t1	- iw1-	f3	-	-	f5

			f4	-	-	t0	-	-	f4	- w2-	t0
			f5	- w0-	f5	-	-	f5	- w3-	t1
			f6	-	-	f6	- w1-	f6	- iw2-	f6
			f7	- w0-	t1	- iw1-	f7	- iw3-	f7
			*/

	for (DiffUCnt = NDiffU; DiffUCnt > 0 ; DiffUCnt--){
		f0r = *p0r;
		f0i = *(p0r + 1);
		f1r = *p1r;
		f1i = *(p1r + 1);
		for (SameUCnt = NSameU-1; SameUCnt > 0 ; SameUCnt--){
			f2r = *p2r;
			f2i = *(p2r + 1);
			f3r = *p3r;
			f3i = *(p3r + 1);

			t0r = f0r + f1r * w0r + f1i * w0i;
			t0i = f0i - f1r * w0i + f1i * w0r;
			f1r = f0r * Two - t0r;
			f1i = f0i * Two - t0i;

			f4r = *(p0r + pos);
			f4i = *(p0r + posi);
			f5r = *(p1r + pos);
			f5i = *(p1r + posi);

			f6r = *(p2r + pos);
			f6i = *(p2r + posi);
			f7r = *(p3r + pos);
			f7i = *(p3r + posi);

			t1r = f2r - f3r * w0r - f3i * w0i;
			t1i = f2i + f3r * w0i - f3i * w0r;
			f2r = f2r * Two - t1r;
			f2i = f2i * Two - t1i;

			f0r = t0r + f2r * w1r + f2i * w1i;
			f0i = t0i - f2r * w1i + f2i * w1r;
			f2r = t0r * Two - f0r;
			f2i = t0i * Two - f0i;

			f3r = f1r + t1r * w1i - t1i * w1r;
			f3i = f1i + t1r * w1r + t1i * w1i;
			f1r = f1r * Two - f3r;
			f1i = f1i * Two - f3i;


			t0r = f4r + f5r * w0r + f5i * w0i;
			t0i = f4i - f5r * w0i + f5i * w0r;
			f5r = f4r * Two - t0r;
			f5i = f4i * Two - t0i;

			t1r = f6r - f7r * w0r - f7i * w0i;
			t1i = f6i + f7r * w0i - f7i * w0r;
			f6r = f6r * Two - t1r;
			f6i = f6i * Two - t1i;

			f4r = t0r + f6r * w1r + f6i * w1i;
			f4i = t0i - f6r * w1i + f6i * w1r;
			f6r = t0r * Two - f4r;
			f6i = t0i * Two - f4i;

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

			t0r = f0r - f4r * w2r - f4i * w2i;
			t0i = f0i + f4r * w2i - f4i * w2r;
			f0r = f0r * Two - t0r;
			f0i = f0i * Two - t0i;

			t1r = f1r - f5r * w3r - f5i * w3i;
			t1i = f1i + f5r * w3i - f5i * w3r;
			f1r = f1r * Two - t1r;
			f1i = f1i * Two - t1i;

			*(p0r + pos) = t0r;
			*(p1r + pos) = t1r;
			*(p0r + posi) = t0i;
			*(p1r + posi) = t1i;
			*p0r = f0r;
			*p1r = f1r;
			*(p0r + 1) = f0i;
			*(p1r + 1) = f1i;

			p0r += pnext;
			f0r = *p0r;
			f0i = *(p0r + 1);

			p1r += pnext;

			f1r = *p1r;
			f1i = *(p1r + 1);

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

			f5r = f3r - f7r * w3i + f7i * w3r;
			f5i = f3i - f7r * w3r - f7i * w3i;
			f7r = f3r * Two - f5r;
			f7i = f3i * Two - f5i;

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

			p2r += pnext;
			p3r += pnext;

		}
		
		f2r = *p2r;
		f2i = *(p2r + 1);
		f3r = *p3r;
		f3i = *(p3r + 1);

		t0r = f0r + f1r * w0r + f1i * w0i;
		t0i = f0i - f1r * w0i + f1i * w0r;
		f1r = f0r * Two - t0r;
		f1i = f0i * Two - t0i;

		f4r = *(p0r + pos);
		f4i = *(p0r + posi);
		f5r = *(p1r + pos);
		f5i = *(p1r + posi);

		f6r = *(p2r + pos);
		f6i = *(p2r + posi);
		f7r = *(p3r + pos);
		f7i = *(p3r + posi);

		t1r = f2r - f3r * w0r - f3i * w0i;
		t1i = f2i + f3r * w0i - f3i * w0r;
		f2r = f2r * Two - t1r;
		f2i = f2i * Two - t1i;

		f0r = t0r + f2r * w1r + f2i * w1i;
		f0i = t0i - f2r * w1i + f2i * w1r;
		f2r = t0r * Two - f0r;
		f2i = t0i * Two - f0i;

		f3r = f1r + t1r * w1i - t1i * w1r;
		f3i = f1i + t1r * w1r + t1i * w1i;
		f1r = f1r * Two - f3r;
		f1i = f1i * Two - f3i;

		if (DiffUCnt == NDiffU/2)
			Uinc4 = -Uinc4;

		u0r += Uinc4;
		u0i -= Uinc4;
		u1r += Uinc2;
		u1i -= Uinc2;
		u2r += Uinc;
		u2i -= Uinc;

		pstrt += 2;

		t0r = f4r + f5r * w0r + f5i * w0i;
		t0i = f4i - f5r * w0i + f5i * w0r;
		f5r = f4r * Two - t0r;
		f5i = f4i * Two - t0i;

		t1r = f6r - f7r * w0r - f7i * w0i;
		t1i = f6i + f7r * w0i - f7i * w0r;
		f6r = f6r * Two - t1r;
		f6i = f6i * Two - t1i;

		f4r = t0r + f6r * w1r + f6i * w1i;
		f4i = t0i - f6r * w1i + f6i * w1r;
		f6r = t0r * Two - f4r;
		f6i = t0i * Two - f4i;

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

		w0r = *u0r;
		w0i =  *u0i;
		w1r =  *u1r;
		w1i =  *u1i;

		if (DiffUCnt <= NDiffU/2)
			w0r = -w0r;

		t0r = f0r - f4r * w2r - f4i * w2i;
		t0i = f0i + f4r * w2i - f4i * w2r;
		f0r = f0r * Two - t0r;
		f0i = f0i * Two - t0i;

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

		*(p0r + pos) = t0r;
		*p2r = f4r;
		*(p0r + posi) = t0i;
		*(p2r + 1) = f4i;
		w2r =  *u2r;
		w2i =  *u2i;
		*p0r = f0r;
		*(p2r + pos) = f6r;
		*(p0r + 1) = f0i;
		*(p2r + posi) = f6i;

		p0r = pstrt;
		p2r = pstrt + pinc + pinc;	

		t1r = f1r - f5r * w3r - f5i * w3i;
		t1i = f1i + f5r * w3i - f5i * w3r;
		f1r = f1r * Two - t1r;
		f1i = f1i * Two - t1i;

		f5r = f3r - f7r * w3i + f7i * w3r;
		f5i = f3i - f7r * w3r - f7i * w3i;
		f7r = f3r * Two - f5r;
		f7i = f3i * Two - f5i;

		*(p1r + pos) = t1r;
		*p3r = f5r;
		*(p1r + posi) = t1i;
		*(p3r + 1) = f5i;
		w3r =  *(u2r+U2toU3);
		w3i =  *(u2i-U2toU3);
		*p1r = f1r;
		*(p3r + pos) = f7r;
		*(p1r + 1) = f1i;
		*(p3r + posi) = f7i;

		p1r = pstrt + pinc;
		p3r = p2r + pinc;	
	}
	NSameU /= 8;
	Uinc /= 8;
	Uinc2 /= 8;
	Uinc4 = Uinc * 4;
	NDiffU *= 8;
	pinc *= 8;
	pnext *= 8;
	pos *= 8;
	posi =  pos + 1;
}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x158, %rsp            # imm = 0x158
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movsd 0xedcd(%rip), %xmm0     # 0x4a548
movsd %xmm0, -0x1c8(%rbp)
movq -0x28(%rbp), %rax
shlq %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rcx
movl $0x1, %eax
shlq %cl, %rax
shrq $0x3, %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq -0x28(%rbp)
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
imulq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
shlq %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rcx
movl $0x1, %eax
shlq %cl, %rax
shrq $0x3, %rax
imulq -0x20(%rbp), %rax
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x30(%rbp)
jle 0x3dd02
movq -0x18(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
subq $0x2, %rcx
movl $0x1, %edx
shlq %cl, %rdx
movq %rdx, %rcx
imulq -0x20(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xc0(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0xb8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xe8(%rbp)
movq -0xc0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xf0(%rbp)
movq -0xc8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xf8(%rbp)
movq -0xd0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x100(%rbp)
movq -0xd8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x108(%rbp)
movq -0xe0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x110(%rbp)
movq -0xd8(%rbp), %rax
movq -0x88(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x118(%rbp)
movq -0xe0(%rbp), %rax
xorl %ecx, %ecx
subq -0x88(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x120(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
jbe 0x3dc85
movq -0x98(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x128(%rbp)
movq -0x98(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x130(%rbp)
movq -0xa0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x138(%rbp)
movq -0xa0(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x140(%rbp)
movq -0x58(%rbp), %rax
subq $0x1, %rax
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
jbe 0x3ca7d
movq -0xa8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x148(%rbp)
movq -0xa8(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x150(%rbp)
movq -0xb0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x158(%rbp)
movq -0xb0(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x138(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x138(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x1a8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movq -0x98(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x168(%rbp)
movq -0x98(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x170(%rbp)
movq -0xa0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x178(%rbp)
movq -0xa0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x180(%rbp)
movq -0xa8(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x188(%rbp)
movq -0xa8(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x190(%rbp)
movq -0xb0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x198(%rbp)
movq -0xb0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x158(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x160(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x158(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x160(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x1c0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x148(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x150(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x128(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x148(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x150(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x128(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x130(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x158(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x158(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x160(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0x168(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x170(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x168(%rbp), %xmm0
movsd -0x1a8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x170(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0x188(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movsd -0x190(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x188(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x190(%rbp), %xmm0
movsd -0x1c0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x170(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x178(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x180(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x178(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x180(%rbp), %xmm0
movsd -0x1a0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movsd -0x108(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x170(%rbp), %xmm0
movsd -0x110(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movsd -0x110(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x170(%rbp), %xmm0
movsd -0x108(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x1a8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x128(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0x118(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0x120(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0x118(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x1c0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0x1a8(%rbp), %xmm0
movq -0x98(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x1b8(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x1b0(%rbp), %xmm0
movq -0x98(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x1c0(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x128(%rbp), %xmm0
movq -0x98(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x138(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x130(%rbp), %xmm0
movq -0x98(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x140(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x50(%rbp), %rax
shlq $0x3, %rax
addq -0x98(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x128(%rbp)
movq -0x98(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x130(%rbp)
movq -0x50(%rbp), %rax
shlq $0x3, %rax
addq -0xa0(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x138(%rbp)
movq -0xa0(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0x110(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0x108(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0x108(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0x110(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x170(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x158(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0x118(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x160(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0x118(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0x120(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0x158(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x160(%rbp), %xmm0
movsd -0x180(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x168(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x178(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x170(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x180(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x188(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x198(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x190(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x1a0(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x50(%rbp), %rax
shlq $0x3, %rax
addq -0xa8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x50(%rbp), %rax
shlq $0x3, %rax
addq -0xb0(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x80(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x3ba01
movq -0xa8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x148(%rbp)
movq -0xa8(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x150(%rbp)
movq -0xb0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x158(%rbp)
movq -0xb0(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x138(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x138(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x140(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x1a8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movq -0x98(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x168(%rbp)
movq -0x98(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x170(%rbp)
movq -0xa0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x178(%rbp)
movq -0xa0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x180(%rbp)
movq -0xa8(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x188(%rbp)
movq -0xa8(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x190(%rbp)
movq -0xb0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x198(%rbp)
movq -0xb0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x158(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x160(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x158(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x160(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x1c0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x148(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x150(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x128(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x148(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x150(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x128(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x130(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x150(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x158(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x160(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x158(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x160(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq -0x28(%rbp), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq -0x1d0(%rbp), %rax
cmpq %rcx, %rax
jne 0x3cfff
xorl %eax, %eax
subq -0x70(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
shlq $0x3, %rax
addq -0xb8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x70(%rbp), %rdx
movq -0xc0(%rbp), %rax
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xc0(%rbp)
movq -0x68(%rbp), %rax
shlq $0x3, %rax
addq -0xc8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x68(%rbp), %rdx
movq -0xd0(%rbp), %rax
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xd0(%rbp)
movq -0x60(%rbp), %rax
shlq $0x3, %rax
addq -0xd8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x60(%rbp), %rdx
movq -0xe0(%rbp), %rax
xorl %ecx, %ecx
subq %rdx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xe0(%rbp)
movq -0x90(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x90(%rbp)
movsd -0x168(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x170(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x168(%rbp), %xmm0
movsd -0x1a8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x170(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0x188(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0xe8(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0xf0(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movsd -0x190(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0xf0(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0xe8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x188(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x190(%rbp), %xmm0
movsd -0x1c0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0x1a8(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x170(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x178(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0xf8(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x180(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1c0(%rbp), %xmm0
movsd -0x100(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x178(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x180(%rbp), %xmm0
movsd -0x1a0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x180(%rbp)
movq -0xb8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xe8(%rbp)
movq -0xc0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xf0(%rbp)
movq -0xc8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0xf8(%rbp)
movq -0xd0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x100(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x28(%rbp), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq -0x1d8(%rbp), %rax
cmpq %rcx, %rax
ja 0x3d58a
movsd -0xe8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xe8(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movsd -0x108(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x170(%rbp), %xmm0
movsd -0x110(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movsd -0x110(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x170(%rbp), %xmm0
movsd -0x108(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x128(%rbp), %xmm0
movsd -0x1a8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x128(%rbp)
movsd -0x130(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x130(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0x110(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0x108(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x168(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x188(%rbp), %xmm1
movsd -0x108(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x190(%rbp), %xmm0
movsd -0x110(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x170(%rbp)
movsd -0x148(%rbp), %xmm0
movsd -0x168(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x150(%rbp), %xmm0
movsd -0x170(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x1a8(%rbp), %xmm0
movq -0x98(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x168(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x1b0(%rbp), %xmm0
movq -0x98(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x170(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0xd8(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x108(%rbp)
movq -0xe0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x110(%rbp)
movsd -0x128(%rbp), %xmm0
movq -0x98(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x188(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x130(%rbp), %xmm0
movq -0x98(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x190(%rbp), %xmm0
movq -0xa8(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xa8(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0x118(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0x120(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x180(%rbp), %xmm0
movsd -0x118(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x138(%rbp), %xmm0
movsd -0x1b8(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x138(%rbp)
movsd -0x140(%rbp), %xmm0
movsd -0x1c0(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x140(%rbp)
movsd -0x158(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0x118(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x178(%rbp)
movsd -0x160(%rbp), %xmm0
movsd -0x198(%rbp), %xmm1
movsd -0x118(%rbp), %xmm2
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x1a0(%rbp), %xmm0
movsd -0x120(%rbp), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x180(%rbp)
movsd -0x158(%rbp), %xmm0
movsd -0x178(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movsd -0x160(%rbp), %xmm0
movsd -0x180(%rbp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
addsd %xmm0, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a0(%rbp)
movsd -0x1b8(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x178(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x1c0(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x180(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0xd8(%rbp), %rax
movq -0x88(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x118(%rbp)
movq -0xe0(%rbp), %rax
xorl %ecx, %ecx
subq -0x88(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -0x120(%rbp)
movsd -0x138(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x198(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movq -0x38(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd -0x140(%rbp), %xmm0
movq -0xa0(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x1a0(%rbp), %xmm0
movq -0xb0(%rbp), %rax
movq -0x40(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x90(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
movq -0x48(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
movq -0x78(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3b99c
movq -0x58(%rbp), %rax
shrq $0x3, %rax
movq %rax, -0x58(%rbp)
movq -0x60(%rbp), %rax
shrq $0x3, %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rax
shrq $0x3, %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
shlq $0x2, %rax
movq %rax, -0x70(%rbp)
movq -0x28(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x28(%rbp)
movq -0x48(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x48(%rbp)
movq -0x50(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
shlq $0x3, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x3b80e
addq $0x158, %rsp            # imm = 0x158
popq %rbp
retq
nopl (%rax,%rax)