// File: /workspace/github_c_makefile_star2_O0/Alessandro-Barbieri[P]SpaceLib/src/SPACELIB.c
// Function: mtoscrew
int mtoscrew (MAT4 Q, AXIS u, real *phi, real *h, POINT P)
{
	real a,b,c,s,co,d,v,t,t1;
	int i,j;
	int x,y,z;

	a = (real) 0.5*(Q[Z][Y]-Q[Y][Z]);
	b = (real) 0.5*(Q[X][Z]-Q[Z][X]);
	c = (real) 0.5*(Q[Y][X]-Q[X][Y]);
	s = (real) sqrt(a*a+b*b+c*c);
	co = (Q[X][X]+Q[Y][Y]+Q[Z][Z]-1.)/2.;
	*phi = (real) atan2(s,co);

	co = (real) min(1.,max(-1.,co));
	v = (real) 1.-co;

	if (aabs(s)>0.1)                            /* normal case */
	{
		u[X] = a/s; u[Y] = b/s; u[Z] = c/s;
	}
	else if ((*phi!=0) && (co>0))                /* phi small */
	{
		t= ((real)1./v);
		u[X] = (real)sign(Q[Z][Y]-Q[Y][Z])* (real) sqrt(aabs((Q[X][X]-co)*t));
		u[Y] = (real)sign(Q[X][Z]-Q[Z][X])* (real) sqrt(aabs((Q[Y][Y]-co)*t));
		u[Z] = (real)sign(Q[Y][X]-Q[X][Y])* (real) sqrt(aabs((Q[Z][Z]-co)*t));
	}
	else if ((*phi!=0) && (co<0))                /* phi nearly PIG (3.14) */
	{
		t= ((real)1./v);
		u[X]=(real) sqrt(aabs((Q[X][X]-co)*t));
		u[Y]=(real) sqrt(aabs((Q[Y][Y]-co)*t));
		u[Z]=(real) sqrt(aabs((Q[Z][Z]-co)*t));
		if ((u[X]>=u[Y])&&(u[X]>=u[Z]))
			x=X;
		else if ((u[Y]>=u[X])&&(u[Y]>=u[Z]))
			x=Y;
		else
			x=Z;
		y=(x+1)%3; z=(x+2)%3;
		s=((Q[z][y]-Q[y][z])>=0 ? 1 : -1);
		u[x] *= s;
		u[y] *= (real) sign(Q[y][x]+Q[x][y])*s;
		u[z] *= (real) sign(Q[z][x]+Q[x][z])*s;
	}
	else                                        /* phi==0 */
	{
		d=(real)sqrt(Q[X][U]*Q[X][U]+Q[Y][U]*Q[Y][U]+Q[Z][U]*Q[Z][U]);
		if (d==0)
		{
			u[X] = u[Y] = u[Z]= (real) 0.;
		}
		else
		{
			u[X]=Q[X][U]/d; u[Y]=Q[Y][U]/d; u[Z]=Q[Z][U]/d;
		}
	}

	*h = u[X]*Q[X][U] + u[Y]*Q[Y][U] + u[Z]*Q[Z][U];

	P[U]= (real) 1.;
	if (v== (real) 0.)
	{
		P[X]=P[Y]=P[Z]=(real) 0.;
		if (d!=(real)0.)
			return(OK);
		else
			return(NOTOK);
	};
	t1 = (real).5/v;
	for(i=X;i<U;i++)
	{
		for(j=X,t=0;j<U;j++)
			t += -Q[j][i] * Q[j][U];
		P[i] = (t + Q[i][U])*t1;
	}
	return(OK);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rax
movsd 0x48(%rax), %xmm1
movq -0x10(%rbp), %rax
subsd 0x30(%rax), %xmm1
movsd 0x4a87(%rip), %xmm0     # 0xf080
mulsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movq -0x10(%rbp), %rax
movsd 0x10(%rax), %xmm1
movq -0x10(%rbp), %rax
subsd 0x40(%rax), %xmm1
movsd 0x4a64(%rip), %xmm0     # 0xf080
mulsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm1
movq -0x10(%rbp), %rax
subsd 0x8(%rax), %xmm1
movsd 0x4a41(%rip), %xmm0     # 0xf080
mulsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x38(%rbp), %xmm1
movsd -0x38(%rbp), %xmm2
movsd -0x40(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x48(%rbp), %xmm0
movsd -0x48(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x23f0
movsd %xmm0, -0x50(%rbp)
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
movq -0x10(%rbp), %rax
addsd 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
addsd 0x50(%rax), %xmm0
movsd 0x49be(%rip), %xmm1     # 0xf060
subsd %xmm1, %xmm0
movsd 0x4b7a(%rip), %xmm1     # 0xf228
divsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x50(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
callq 0x2290
movq -0x20(%rbp), %rax
movsd %xmm0, (%rax)
movsd 0x4992(%rip), %xmm0     # 0xf068
ucomisd -0x58(%rbp), %xmm0
jbe 0xa6ef
movsd 0x4983(%rip), %xmm0     # 0xf068
movsd %xmm0, -0x98(%rbp)
jmp 0xa6fc
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x98(%rbp), %xmm0
movsd 0x4954(%rip), %xmm1     # 0xf060
ucomisd %xmm1, %xmm0
jbe 0xa724
movsd 0x4946(%rip), %xmm0     # 0xf060
movsd %xmm0, -0xa0(%rbp)
jmp 0xa762
movsd 0x493c(%rip), %xmm0     # 0xf068
ucomisd -0x58(%rbp), %xmm0
jbe 0xa745
movsd 0x492d(%rip), %xmm0     # 0xf068
movsd %xmm0, -0xa8(%rbp)
jmp 0xa752
movsd -0x58(%rbp), %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0xa8(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x48e9(%rip), %xmm0     # 0xf060
subsd -0x58(%rbp), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd -0x50(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xa79e
movsd -0x50(%rbp), %xmm0
movsd %xmm0, -0xb0(%rbp)
jmp 0xa7c2
movsd -0x50(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xb0(%rbp)
movsd -0xb0(%rbp), %xmm0
movsd 0x4c16(%rip), %xmm1     # 0xf3e8
ucomisd %xmm1, %xmm0
jbe 0xa815
movsd -0x38(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x40(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movsd -0x48(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x10(%rax)
jmp 0xb05a
movq -0x20(%rbp), %rax
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xa82d
jp 0xa82d
jmp 0xab2b
movsd -0x58(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xab2b
movsd 0x4819(%rip), %xmm0     # 0xf060
divsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x10(%rbp), %rax
movsd 0x48(%rax), %xmm1
movq -0x10(%rbp), %rax
subsd 0x30(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xa879
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0xb4(%rbp)
jmp 0xa8a2
movq -0x10(%rbp), %rax
movsd 0x48(%rax), %xmm0
movq -0x10(%rbp), %rax
subsd 0x30(%rax), %xmm0
xorps %xmm1, %xmm1
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0xc0(%rbp)
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xa8eb
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
jmp 0xa91c
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd -0xc8(%rbp), %xmm0
callq 0x23f0
movaps %xmm0, %xmm1
movsd -0xc0(%rbp), %xmm0
mulsd %xmm1, %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x10(%rbp), %rax
movsd 0x10(%rax), %xmm1
movq -0x10(%rbp), %rax
subsd 0x40(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xa968
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0xcc(%rbp)
jmp 0xa991
movq -0x10(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
subsd 0x40(%rax), %xmm0
xorps %xmm1, %xmm1
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0xcc(%rbp)
movl -0xcc(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0xd8(%rbp)
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xa9dc
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xe0(%rbp)
jmp 0xaa0e
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xe0(%rbp)
movsd -0xe0(%rbp), %xmm0
callq 0x23f0
movaps %xmm0, %xmm1
movsd -0xd8(%rbp), %xmm0
mulsd %xmm1, %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm1
movq -0x10(%rbp), %rax
subsd 0x8(%rax), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xaa5b
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0xe4(%rbp)
jmp 0xaa84
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm0
movq -0x10(%rbp), %rax
subsd 0x8(%rax), %xmm0
xorps %xmm1, %xmm1
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0xe4(%rbp)
movl -0xe4(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0xf0(%rbp)
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xaacf
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movsd %xmm0, -0xf8(%rbp)
jmp 0xab01
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xf8(%rbp)
movsd -0xf8(%rbp), %xmm0
callq 0x23f0
movaps %xmm0, %xmm1
movsd -0xf0(%rbp), %xmm0
mulsd %xmm1, %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x10(%rax)
jmp 0xb058
movq -0x20(%rbp), %rax
movsd (%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xab43
jp 0xab43
jmp 0xaf8b
xorps %xmm0, %xmm0
ucomisd -0x58(%rbp), %xmm0
jbe 0xaf8b
movsd 0x4507(%rip), %xmm0     # 0xf060
divsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xab9a
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x100(%rbp)
jmp 0xabcb
movq -0x10(%rbp), %rax
movsd (%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x100(%rbp)
movsd -0x100(%rbp), %xmm0
callq 0x23f0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xac19
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x108(%rbp)
jmp 0xac4b
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x108(%rbp)
movsd -0x108(%rbp), %xmm0
callq 0x23f0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xac9a
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movsd %xmm0, -0x110(%rbp)
jmp 0xaccc
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
subsd -0x58(%rbp), %xmm0
mulsd -0x70(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x110(%rbp)
movsd -0x110(%rbp), %xmm0
callq 0x23f0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x10(%rax)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x8(%rax), %xmm0
jb 0xad14
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x10(%rax), %xmm0
jb 0xad14
movl $0x0, -0x84(%rbp)
jmp 0xad53
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd (%rax), %xmm0
jb 0xad47
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
ucomisd 0x10(%rax), %xmm0
jb 0xad47
movl $0x1, -0x84(%rbp)
jmp 0xad51
movl $0x2, -0x84(%rbp)
jmp 0xad53
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %edx, -0x88(%rbp)
movl -0x84(%rbp), %eax
addl $0x2, %eax
movl $0x3, %ecx
cltd
idivl %ecx
movl %edx, -0x8c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x88(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x8c(%rbp), %rcx
subsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmovael %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movslq -0x84(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x84(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq -0x10(%rbp), %rax
movslq -0x84(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x88(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xae46
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x114(%rbp)
jmp 0xae99
movq -0x10(%rbp), %rax
movslq -0x88(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x84(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x84(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x88(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0x114(%rbp)
movl -0x114(%rbp), %eax
cvtsi2sd %eax, %xmm0
mulsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movslq -0x88(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x84(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq -0x10(%rbp), %rax
movslq -0x84(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x8c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jbe 0xaf0f
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x118(%rbp)
jmp 0xaf62
movq -0x10(%rbp), %rax
movslq -0x8c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x84(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x84(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x8c(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
xorps %xmm1, %xmm1
xorl %eax, %eax
movl $0x1, %ecx
ucomisd %xmm1, %xmm0
cmoval %ecx, %eax
movl %eax, -0x118(%rbp)
movl -0x118(%rbp), %eax
cvtsi2sd %eax, %xmm0
mulsd -0x50(%rbp), %xmm0
movq -0x18(%rbp), %rax
movslq -0x8c(%rbp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
jmp 0xb056
movq -0x10(%rbp), %rax
movsd 0x18(%rax), %xmm1
movq -0x10(%rbp), %rax
movsd 0x18(%rax), %xmm2
movq -0x10(%rbp), %rax
movsd 0x38(%rax), %xmm0
movq -0x10(%rbp), %rax
mulsd 0x38(%rax), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x23f0
movsd %xmm0, -0x60(%rbp)
movsd -0x60(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb010
jp 0xb010
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x10(%rax)
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x8(%rax)
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
jmp 0xb054
movq -0x10(%rbp), %rax
movsd 0x18(%rax), %xmm0
divsd -0x60(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x10(%rbp), %rax
movsd 0x38(%rax), %xmm0
divsd -0x60(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
divsd -0x60(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, 0x10(%rax)
jmp 0xb056
jmp 0xb058
jmp 0xb05a
movq -0x18(%rbp), %rax
movsd (%rax), %xmm1
movq -0x10(%rbp), %rax
movsd 0x18(%rax), %xmm2
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
mulsd 0x38(%rax), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x30(%rbp), %rax
movsd 0x3fad(%rip), %xmm0     # 0xf060
movsd %xmm0, 0x18(%rax)
movsd -0x68(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb115
jp 0xb115
movq -0x30(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x10(%rax)
movq -0x30(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x8(%rax)
movq -0x30(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movsd -0x60(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xb0fd
jp 0xb0fd
jmp 0xb109
movl $0x1, -0x4(%rbp)
jmp 0xb1ed
movl $0x0, -0x4(%rbp)
jmp 0xb1ed
movsd 0x3f63(%rip), %xmm0     # 0xf080
divsd -0x68(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movl $0x0, -0x7c(%rbp)
cmpl $0x3, -0x7c(%rbp)
jge 0xb1e6
movl $0x0, -0x80(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x70(%rbp)
cmpl $0x3, -0x80(%rbp)
jge 0xb1ad
movq -0x10(%rbp), %rax
movslq -0x80(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x7c(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x10(%rbp), %rax
movslq -0x80(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movsd 0x18(%rax), %xmm2
movsd -0x70(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x70(%rbp)
movl -0x80(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x80(%rbp)
jmp 0xb147
movsd -0x70(%rbp), %xmm0
movq -0x10(%rbp), %rax
movslq -0x7c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
addsd 0x18(%rax), %xmm0
mulsd -0x78(%rbp), %xmm0
movq -0x30(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0xb12e
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nopl (%rax)