// File: /workspace/github_c_makefile_star2_O0/Alessandro-Barbieri[P]SpaceLib/src/LINEAR.c
// Function: dyn_eq
int   dyn_eq(MAT4 J, MAT4 Wp, MAT4 F, int var[2][6])
{
	real mat[6][7];
	real acc[6],t,arm;
	int i,j,k,it,nvar,irank,neq;
	int var_a[6],var_f[6],ivar[6],tappo;
	int var2[2][6];

	nvar=0;
	for(i=0;i<2;i++)
		for(j=0;j<6;j++)
			if (var[i][j])
				nvar++;
	if (nvar!=6)
	{
		fprintf(stderr,"Error (dyn_eq) : \a wrong number of unknown variables\n");
		return(NOTOK);
	}

	for(i=0;i<6;i++)
	{
		acc[i]=0.; mat[i][6]=0.; ivar[i]=i;
	}
	if (!var[0][X])		acc[X]=Wp[Z][Y];          /* angular acceleration */
	if (!var[0][Y])		acc[Y]=Wp[X][Z];
	if (!var[0][Z])		acc[Z]=Wp[Y][X];
	if (!var[0][3+X])		acc[3+X]=Wp[X][U];        /* accelerations */
	if (!var[0][3+Y])		acc[3+Y]=Wp[Y][U];
	if (!var[0][3+Z])		acc[3+Z]=Wp[Z][U];
	if (!var[1][X])		mat[X][6]=F[Z][Y];        /* torques */
	if (!var[1][Y])		mat[Y][6]=F[X][Z];
	if (!var[1][Z])		mat[Z][6]=F[Y][X];
	if (!var[1][3+X])		mat[3+X][6]=F[X][U];      /* forces */
	if (!var[1][3+Y])		mat[3+Y][6]=F[Y][U];
	if (!var[1][3+Z])		mat[3+Z][6]=F[Z][U];

	mat[X][X]=J[Y][Y]+J[Z][Z]; mat[Y][Y]=J[X][X]+J[Z][Z];
	mat[Z][Z]=J[X][X]+J[Y][Y];

	mat[X][Y]=mat[Y][X]= -J[X][Y];
	mat[X][Z]=mat[Z][X]= -J[X][Z];
	mat[Y][Z]=mat[Z][Y]= -J[Y][Z];

	mat[X][3+X]=0.;mat[Y][3+Y]=0.;mat[Z][3+Z]=0.;
	mat[3+X][X]=0.;mat[3+Y][Y]=0.;mat[3+Z][Z]=0.;

	mat[Y][3+Z]=mat[3+Z][Y]= -(mat[Z][3+Y]=mat[3+Y][Z]=J[X][U]);
	mat[Z][3+X]=mat[3+X][Z]= -(mat[X][3+Z]=mat[3+Z][X]=J[Y][U]);
	mat[X][3+Y]=mat[3+Y][X]= -(mat[Y][3+X]=mat[3+X][Y]=J[Z][U]);

	mat[3+X][3+X]=J[U][U]; mat[3+X][3+Y]=0.;      mat[3+X][3+Z]=0.;
	mat[3+Y][3+X]=0.     ; mat[3+Y][3+Y]=J[U][U]; mat[3+Y][3+Z]=0.;
	mat[3+Z][3+X]=0.     ; mat[3+Z][3+Y]=0.;      mat[3+Z][3+Z]=J[U][U];


	//printm67("mat",mat);

	for(j=0;j<6;j++)
	{
		var_a[j]=j; var_f[j]=j;
	}

	for(i=0;i<2;i++)
		for(j=0;j<6;j++)
			var2[i][j]=var[i][j];

	neq=0;
	for (j=0;j<6;j++)
	{
		if(var[0][j]) {
			neq++;
			//printf("j: %d neq: %d\n",j,neq);
		} else {
			for(i=j+1;i<6;i++)
			{
				if(var[0][i])
				{
					neq++;
					//printf(" swabc i:%d j:%d neq:%d\n",i,j,neq); /* debug only */
					swabc(M mat,6,7,6,i,j,var_a);
					t=acc[j]; acc[j]=acc[i]; acc[i]=t;
					it=var[0][j]; var[0][j]=var[0][i]; var[0][i]=it;
					it=var[1][j]; var[1][j]=var[1][i]; var[1][i]=it;
					//printf(" swabr \n"); /* debug only */
					swabr(M mat,6,7,7,i,j);
					k=var_f[j]; var_f[j]=var_f[i]; var_f[i]=k;
					break;
				}
			}
		}
	}

	//printf("**neq: %d\n",neq);
	tappo= -1;
	for(i=0;i<6;i++)
	{
		for(j=neq,t=0;j<6;j++)
		{
			t += mat[i][j]*acc[j];
		}
		mat[i][neq]=mat[i][6]-t;
	}
	if(neq!=0)
	{
		linear(M mat,6,7,neq,neq,1,ivar,&irank,&arm,&tappo);
		//printm67("mat--",mat);
		//printf("irank: %d",irank);
		if (irank!=neq){
			fprintf(stderr,"\a DYN_EQ: error matrix is singular!\n");
			return(-irank);
			}
	}

	for (i=0;i<neq;i++)
		acc[var_a[ivar[i]]]=mat[i][neq];

	for (i=0;i<4;i++)
	{
		Wp[i][i]=Wp[U][i]=0.;
	}
	if(var2[0][X]) Wp[Y][Z]= -(Wp[Z][Y]=acc[X]);
	if(var2[0][Y]) Wp[Z][X]= -(Wp[X][Z]=acc[Y]);
	if(var2[0][Z]) Wp[X][Y]= -(Wp[Y][X]=acc[Z]);
	if(var2[0][3+X]) Wp[X][U]=acc[3+X];
	if(var2[0][3+Y]) Wp[Y][U]=acc[3+Y];
	if(var2[0][3+Z]) Wp[Z][U]=acc[3+Z];

	skew4(Wp,J,F);

	return(OK);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x298, %rsp            # imm = 0x298
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
movq %rdx, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
movl $0x0, -0x1d4(%rbp)
movl $0x0, -0x1c4(%rbp)
cmpl $0x2, -0x1c4(%rbp)
jge 0x25d0
movl $0x0, -0x1c8(%rbp)
cmpl $0x6, -0x1c8(%rbp)
jge 0x25bd
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1c8(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x25aa
movl -0x1d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1d4(%rbp)
jmp 0x25ac
movl -0x1c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c8(%rbp)
jmp 0x2573
jmp 0x25bf
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2560
cmpl $0x6, -0x1d4(%rbp)
je 0x25fd
movq 0xfa18(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0xca16(%rip), %rsi      # 0xf000
movb $0x0, %al
callq 0x21b0
movl $0x0, -0xc(%rbp)
jmp 0x3046
movl $0x0, -0x1c4(%rbp)
cmpl $0x6, -0x1c4(%rbp)
jge 0x2665
movslq -0x1c4(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b0(%rbp,%rax,8)
movslq -0x1c4(%rbp), %rcx
leaq -0x180(%rbp), %rax
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x30(%rax)
movl -0x1c4(%rbp), %ecx
movslq -0x1c4(%rbp), %rax
movl %ecx, -0x240(%rbp,%rax,4)
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2607
movq -0x30(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x267f
movq -0x20(%rbp), %rax
movsd 0x48(%rax), %xmm0
movsd %xmm0, -0x1b0(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jne 0x269a
movq -0x20(%rbp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, -0x1a8(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x8(%rax)
jne 0x26b5
movq -0x20(%rbp), %rax
movsd 0x20(%rax), %xmm0
movsd %xmm0, -0x1a0(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0xc(%rax)
jne 0x26d0
movq -0x20(%rbp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, -0x198(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x26eb
movq -0x20(%rbp), %rax
movsd 0x38(%rax), %xmm0
movsd %xmm0, -0x190(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jne 0x2706
movq -0x20(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd %xmm0, -0x188(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x18(%rax)
jne 0x2721
movq -0x28(%rbp), %rax
movsd 0x48(%rax), %xmm0
movsd %xmm0, -0x150(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x1c(%rax)
jne 0x273c
movq -0x28(%rbp), %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, -0x118(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x20(%rax)
jne 0x2757
movq -0x28(%rbp), %rax
movsd 0x20(%rax), %xmm0
movsd %xmm0, -0xe0(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x24(%rax)
jne 0x2772
movq -0x28(%rbp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, -0xa8(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x278a
movq -0x28(%rbp), %rax
movsd 0x38(%rax), %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x0, 0x2c(%rax)
jne 0x27a2
movq -0x28(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd %xmm0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movsd 0x28(%rax), %xmm0
movq -0x18(%rbp), %rax
addsd 0x50(%rax), %xmm0
movsd %xmm0, -0x180(%rbp)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq -0x18(%rbp), %rax
addsd 0x50(%rax), %xmm0
movsd %xmm0, -0x140(%rbp)
movq -0x18(%rbp), %rax
movsd (%rax), %xmm0
movq -0x18(%rbp), %rax
addsd 0x28(%rax), %xmm0
movsd %xmm0, -0x100(%rbp)
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x148(%rbp)
movsd %xmm0, -0x178(%rbp)
movq -0x18(%rbp), %rax
movsd 0x10(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x110(%rbp)
movsd %xmm0, -0x170(%rbp)
movq -0x18(%rbp), %rax
movsd 0x30(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x108(%rbp)
movsd %xmm0, -0x138(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x168(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x128(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xe8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xd8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x98(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x18(%rbp), %rax
movsd 0x18(%rax), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd %xmm0, -0xf0(%rbp)
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd %xmm0, -0x120(%rbp)
movq -0x18(%rbp), %rax
movsd 0x38(%rax), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd %xmm0, -0x158(%rbp)
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xc8(%rbp)
movsd %xmm0, -0xf8(%rbp)
movq -0x18(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd %xmm0, -0xd0(%rbp)
movsd %xmm0, -0x130(%rbp)
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0xa0(%rbp)
movsd %xmm0, -0x160(%rbp)
movq -0x18(%rbp), %rax
movsd 0x78(%rax), %xmm0
movsd %xmm0, -0xc0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xb8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0xb0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x88(%rbp)
movq -0x18(%rbp), %rax
movsd 0x78(%rax), %xmm0
movsd %xmm0, -0x80(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x78(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x50(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
movq -0x18(%rbp), %rax
movsd 0x78(%rax), %xmm0
movsd %xmm0, -0x40(%rbp)
movl $0x0, -0x1c8(%rbp)
cmpl $0x6, -0x1c8(%rbp)
jge 0x2a29
movl -0x1c8(%rbp), %ecx
movslq -0x1c8(%rbp), %rax
movl %ecx, -0x200(%rbp,%rax,4)
movl -0x1c8(%rbp), %ecx
movslq -0x1c8(%rbp), %rax
movl %ecx, -0x220(%rbp,%rax,4)
movl -0x1c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c8(%rbp)
jmp 0x29e7
movl $0x0, -0x1c4(%rbp)
cmpl $0x2, -0x1c4(%rbp)
jge 0x2aae
movl $0x0, -0x1c8(%rbp)
cmpl $0x6, -0x1c8(%rbp)
jge 0x2a9b
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1c8(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movslq -0x1c4(%rbp), %rcx
leaq -0x280(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1c8(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x1c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c8(%rbp)
jmp 0x2a46
jmp 0x2a9d
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2a33
movl $0x0, -0x1dc(%rbp)
movl $0x0, -0x1c8(%rbp)
cmpl $0x6, -0x1c8(%rbp)
jge 0x2cdb
movq -0x30(%rbp), %rax
movslq -0x1c8(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x2af4
movl -0x1dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1dc(%rbp)
jmp 0x2cc5
movl -0x1c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
cmpl $0x6, -0x1c4(%rbp)
jge 0x2cc3
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x2cad
movl -0x1dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1dc(%rbp)
leaq -0x180(%rbp), %rdi
movl -0x1c4(%rbp), %r8d
movl -0x1c8(%rbp), %r9d
leaq -0x200(%rbp), %rax
movl $0x6, %ecx
movl $0x7, %edx
movl %ecx, %esi
movq %rax, (%rsp)
callq 0x2390
movslq -0x1c8(%rbp), %rax
movsd -0x1b0(%rbp,%rax,8), %xmm0
movsd %xmm0, -0x1b8(%rbp)
movslq -0x1c4(%rbp), %rax
movsd -0x1b0(%rbp,%rax,8), %xmm0
movslq -0x1c8(%rbp), %rax
movsd %xmm0, -0x1b0(%rbp,%rax,8)
movsd -0x1b8(%rbp), %xmm0
movslq -0x1c4(%rbp), %rax
movsd %xmm0, -0x1b0(%rbp,%rax,8)
movq -0x30(%rbp), %rax
movslq -0x1c8(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x1d0(%rbp)
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq -0x30(%rbp), %rax
movslq -0x1c8(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x1d0(%rbp), %edx
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0x30(%rbp), %rax
movslq -0x1c8(%rbp), %rcx
movl 0x18(%rax,%rcx,4), %eax
movl %eax, -0x1d0(%rbp)
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
movl 0x18(%rax,%rcx,4), %edx
movq -0x30(%rbp), %rax
movslq -0x1c8(%rbp), %rcx
movl %edx, 0x18(%rax,%rcx,4)
movl -0x1d0(%rbp), %edx
movq -0x30(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
movl %edx, 0x18(%rax,%rcx,4)
leaq -0x180(%rbp), %rdi
movl -0x1c4(%rbp), %r8d
movl -0x1c8(%rbp), %r9d
movl $0x6, %esi
movl $0x7, %ecx
movl %ecx, %edx
callq 0x2170
movslq -0x1c8(%rbp), %rax
movl -0x220(%rbp,%rax,4), %eax
movl %eax, -0x1cc(%rbp)
movslq -0x1c4(%rbp), %rax
movl -0x220(%rbp,%rax,4), %ecx
movslq -0x1c8(%rbp), %rax
movl %ecx, -0x220(%rbp,%rax,4)
movl -0x1cc(%rbp), %ecx
movslq -0x1c4(%rbp), %rax
movl %ecx, -0x220(%rbp,%rax,4)
jmp 0x2cc3
jmp 0x2caf
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2b03
jmp 0x2cc5
jmp 0x2cc7
movl -0x1c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c8(%rbp)
jmp 0x2ac2
movl $0xffffffff, -0x244(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x1c4(%rbp)
cmpl $0x6, -0x1c4(%rbp)
jge 0x2dcd
movl -0x1dc(%rbp), %eax
movl %eax, -0x1c8(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1b8(%rbp)
cmpl $0x6, -0x1c8(%rbp)
jge 0x2d76
movslq -0x1c4(%rbp), %rcx
leaq -0x180(%rbp), %rax
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movslq -0x1c8(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq -0x1c8(%rbp), %rax
movsd -0x1b0(%rbp,%rax,8), %xmm2
movsd -0x1b8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1b8(%rbp)
movl -0x1c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c8(%rbp)
jmp 0x2d13
movslq -0x1c4(%rbp), %rcx
leaq -0x180(%rbp), %rax
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movsd 0x30(%rax), %xmm0
subsd -0x1b8(%rbp), %xmm0
movslq -0x1c4(%rbp), %rcx
leaq -0x180(%rbp), %rax
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movslq -0x1dc(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2cef
cmpl $0x0, -0x1dc(%rbp)
je 0x2e6a
leaq -0x180(%rbp), %rdi
movl -0x1dc(%rbp), %ecx
movl -0x1dc(%rbp), %r8d
leaq -0x240(%rbp), %rbx
movl $0x6, %esi
movl $0x7, %edx
movl $0x1, %r9d
leaq -0x1d8(%rbp), %r11
leaq -0x1c0(%rbp), %r10
leaq -0x244(%rbp), %rax
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x21e0
movl -0x1d8(%rbp), %eax
cmpl -0x1dc(%rbp), %eax
je 0x2e68
movq 0xf1b1(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0xc1e5(%rip), %rsi      # 0xf036
movb $0x0, %al
callq 0x21b0
xorl %eax, %eax
subl -0x1d8(%rbp), %eax
movl %eax, -0xc(%rbp)
jmp 0x3046
jmp 0x2e6a
movl $0x0, -0x1c4(%rbp)
movl -0x1c4(%rbp), %eax
cmpl -0x1dc(%rbp), %eax
jge 0x2ed4
movslq -0x1c4(%rbp), %rcx
leaq -0x180(%rbp), %rax
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movslq -0x1dc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq -0x1c4(%rbp), %rax
movslq -0x240(%rbp,%rax,4), %rax
movslq -0x200(%rbp,%rax,4), %rax
movsd %xmm0, -0x1b0(%rbp,%rax,8)
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2e74
movl $0x0, -0x1c4(%rbp)
cmpl $0x4, -0x1c4(%rbp)
jge 0x2f2d
movq -0x20(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, 0x60(%rax,%rcx,8)
movq -0x20(%rbp), %rax
movslq -0x1c4(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x1c4(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x1c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c4(%rbp)
jmp 0x2ede
cmpl $0x0, -0x280(%rbp)
je 0x2f67
movsd -0x1b0(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x48(%rax)
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x30(%rax)
cmpl $0x0, -0x27c(%rbp)
je 0x2fa1
movsd -0x1a8(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x10(%rax)
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x40(%rax)
cmpl $0x0, -0x278(%rbp)
je 0x2fdb
movsd -0x1a0(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x20(%rax)
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x8(%rax)
cmpl $0x0, -0x274(%rbp)
je 0x2ff5
movsd -0x198(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x18(%rax)
cmpl $0x0, -0x270(%rbp)
je 0x300f
movsd -0x190(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x38(%rax)
cmpl $0x0, -0x26c(%rbp)
je 0x3029
movsd -0x188(%rbp), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x58(%rax)
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
movl $0x4, %ecx
callq 0x2450
movl $0x1, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x298, %rsp            # imm = 0x298
popq %rbx
popq %rbp
retq
nopw %cs:(%rax,%rax)