// File: /workspace/github_c_makefile_star2_O0/ugobas[P]tnm/McLachlan_float.c
// Function: qikfit
static void qikfit(double  umat[3][3],
                   double  rm[3][3],
                   short   column)
{

   double  rot[3][3],
     turmat[3][3],
     c[3][3],
     coup[3],
     dir[3],
     step[3],
     v[3],
     rtsum,rtsump,
     //rsum,
     stp,stcoup,
     ud,tr,ta,cs,sn,ac,
     delta, //deltap,
     gfac,
     cle,clep=0.0;
   int i,j,k,l,m,
     jmax,
     ncyc,
     nsteep,
     nrem;
   
   /* Rotate repeatedly to reduce couple about initial direction to zero.
      Clear the rotation matrix
   */
   for(l=0;l<3;l++){
     for(m=0;m<3;m++)rot[l][m] = 0.0;
     rot[l][l] = 1.0;
   }
   
   /* Copy vmat[][] (sp) into umat[][] (dp)                             */
   jmax = 30;
   rtsum = umat[0][0] + umat[1][1] + umat[2][2];
   delta = 0.0;
   for(i=0;i<3;i++) step[i]=0.0;
   
   for(ncyc=0;ncyc<jmax;ncyc++){
     /* Modified CG. For first and every NSTEEP cycles, set previous
	step as zero and do an SD step
     */
     nsteep = 3;
     nrem = ncyc-nsteep*(int)(ncyc/nsteep);
     
     if(!nrem){
       for(i=0;i<3;i++) step[i]=0.0;
       clep = 1.0;
     }

     /* Couple                                                         */
     coup[0] = umat[1][2]-umat[2][1];
     coup[1] = umat[2][0]-umat[0][2];
     coup[2] = umat[0][1]-umat[1][0];
     cle = sqrt(coup[0]*coup[0] + coup[1]*coup[1] + coup[2]*coup[2]);
     
     /* Gradient vector is now -coup                                   */
     gfac = (cle/clep)*(cle/clep);
     
     /* Value of rtsum from previous step                              */
     rtsump = rtsum;
     //deltap = delta;
     clep   = cle;
     if(cle < SMALL) break;
     
     /* Step vector conjugate to  previous                             */
     stp = 0.0;
     for(i=0;i<3;i++){
       step[i]=coup[i]+step[i]*gfac;
       stp   += (step[i] * step[i]);
     }
     stp = 1.0/sqrt(stp);

     /* Normalised step                                                */
     for(i=0;i<3;i++) dir[i] = stp*step[i];
     
     /* Couple resolved along step direction                           */
     stcoup = coup[0]*dir[0] + coup[1]*dir[1] + coup[2]*dir[2];
     
     /* Component of UMAT along direction                              */
     ud = 0.0;
     for(l=0;l<3;l++)
       for(m=0;m<3;m++)
	 ud += umat[l][m]*dir[l]*dir[m];
     
      tr = umat[0][0]+umat[1][1]+umat[2][2]-ud;
      ta = sqrt(tr*tr + stcoup*stcoup);
      cs=tr/ta;
      sn=stcoup/ta;

      /* If cs<0 then posiiton is unstable, so don't stop               */
      if((cs>0.0) && (ABS(sn)<SMALSN)) break;
      
      /* Turn matrix for correcting rotation:
	 
         Symmetric part
      */
      ac = 1.0-cs;
      for(l=0;l<3;l++){
	v[l] = ac*dir[l];
	for(m=0;m<3;m++)
	  turmat[l][m] = v[l]*dir[m];
	turmat[l][l] += cs;
	v[l]=dir[l]*sn;
      }
      
      /* Asymmetric part                                                */
      turmat[0][1] -= v[2];
      turmat[1][2] -= v[0];
      turmat[2][0] -= v[1];
      turmat[1][0] += v[2];
      turmat[2][1] += v[0];
      turmat[0][2] += v[1];
      
      /* Update total rotation matrix                                   */
      for(l=0;l<3;l++){
	for(m=0;m<3;m++){
	  c[l][m] = 0.0;
	  for(k=0;k<3;k++)
	    c[l][m] += turmat[l][k]*rot[k][m];
	}
      }
      
      for(l=0;l<3;l++)
	for(m=0;m<3;m++)
	  rot[l][m] = c[l][m];

      /* Update umat tensor                                             */
      for(l=0;l<3;l++)
	for(m=0;m<3;m++){
	  c[l][m] = 0.0;
	  for(k=0;k<3;k++)
	    c[l][m] += turmat[l][k]*umat[k][m];
	}

      for(l=0;l<3;l++)
	for(m=0;m<3;m++)
	  umat[l][m] = c[l][m];

      rtsum = umat[0][0] + umat[1][1] + umat[2][2];
      delta = rtsum - rtsump;
      
      /* If no improvement in this cycle then stop                      */
      if(ABS(delta)<SMALL) break;
      
      /* Next cycle                                                     */
   }
   
   //rsum = rtsum;
   
   /* Copy rotation matrix for output                                   */
   if(column){
     for(i=0;i<3;i++)
       for(j=0;j<3;j++)
	 rm[j][i] = rot[i][j];
   }else{
     for(i=0;i<3;i++)
       for(j=0;j<3;j++)
	 rm[i][j] = rot[i][j];
   }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x230, %rsp            # imm = 0x230
movw %dx, %ax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1f0(%rbp)
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x718e7
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x718ad
movslq -0x200(%rbp), %rcx
leaq -0x60(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x71872
movslq -0x200(%rbp), %rcx
leaq -0x60(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x200(%rbp), %rcx
movsd 0x477a(%rip), %xmm0     # 0x76048
movsd %xmm0, (%rax,%rcx,8)
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x7185f
movl $0x1e, -0x208(%rbp)
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq -0x8(%rbp), %rax
addsd 0x20(%rax), %xmm0
movq -0x8(%rbp), %rax
addsd 0x40(%rax), %xmm0
movsd %xmm0, -0x188(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1d8(%rbp)
movl $0x0, -0x1f4(%rbp)
cmpl $0x3, -0x1f4(%rbp)
jge 0x71955
movslq -0x1f4(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x160(%rbp,%rax,8)
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
jmp 0x71928
movl $0x0, -0x20c(%rbp)
movl -0x20c(%rbp), %eax
cmpl -0x208(%rbp), %eax
jge 0x723b6
movl $0x3, -0x210(%rbp)
movl -0x20c(%rbp), %eax
movl %eax, -0x218(%rbp)
movl -0x210(%rbp), %ecx
movl -0x20c(%rbp), %eax
cltd
idivl -0x210(%rbp)
movl %eax, %edx
movl -0x218(%rbp), %eax
imull %edx, %ecx
subl %ecx, %eax
movl %eax, -0x214(%rbp)
cmpl $0x0, -0x214(%rbp)
jne 0x719fd
movl $0x0, -0x1f4(%rbp)
cmpl $0x3, -0x1f4(%rbp)
jge 0x719ed
movslq -0x1f4(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, -0x160(%rbp,%rax,8)
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
jmp 0x719c0
movsd 0x4653(%rip), %xmm0     # 0x76048
movsd %xmm0, -0x1f0(%rbp)
movq -0x8(%rbp), %rax
movsd 0x28(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x38(%rax), %xmm0
movsd %xmm0, -0x120(%rbp)
movq -0x8(%rbp), %rax
movsd 0x30(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x10(%rax), %xmm0
movsd %xmm0, -0x118(%rbp)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd 0x18(%rax), %xmm0
movsd %xmm0, -0x110(%rbp)
movsd -0x120(%rbp), %xmm1
movsd -0x120(%rbp), %xmm2
movsd -0x118(%rbp), %xmm0
mulsd -0x118(%rbp), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x110(%rbp), %xmm0
movsd -0x110(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x1220
movsd %xmm0, -0x1e8(%rbp)
movsd -0x1e8(%rbp), %xmm0
divsd -0x1f0(%rbp), %xmm0
movsd -0x1e8(%rbp), %xmm1
divsd -0x1f0(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x1e0(%rbp)
movsd -0x188(%rbp), %xmm0
movsd %xmm0, -0x190(%rbp)
movsd -0x1e8(%rbp), %xmm0
movsd %xmm0, -0x1f0(%rbp)
movsd 0x118e4(%rip), %xmm0    # 0x833d0
ucomisd -0x1e8(%rbp), %xmm0
jbe 0x71afb
jmp 0x723b6
xorps %xmm0, %xmm0
movsd %xmm0, -0x198(%rbp)
movl $0x0, -0x1f4(%rbp)
cmpl $0x3, -0x1f4(%rbp)
jge 0x71ba9
movslq -0x1f4(%rbp), %rax
movsd -0x120(%rbp,%rax,8), %xmm1
movslq -0x1f4(%rbp), %rax
movsd -0x160(%rbp,%rax,8), %xmm0
movsd -0x1e0(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movslq -0x1f4(%rbp), %rax
movsd %xmm0, -0x160(%rbp,%rax,8)
movslq -0x1f4(%rbp), %rax
movsd -0x160(%rbp,%rax,8), %xmm0
movslq -0x1f4(%rbp), %rax
movsd -0x160(%rbp,%rax,8), %xmm2
movsd -0x198(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
jmp 0x71b10
movsd -0x198(%rbp), %xmm0
callq 0x1220
movaps %xmm0, %xmm1
movsd 0x4487(%rip), %xmm0     # 0x76048
divsd %xmm1, %xmm0
movsd %xmm0, -0x198(%rbp)
movl $0x0, -0x1f4(%rbp)
cmpl $0x3, -0x1f4(%rbp)
jge 0x71c19
movsd -0x198(%rbp), %xmm0
movslq -0x1f4(%rbp), %rax
mulsd -0x160(%rbp,%rax,8), %xmm0
movslq -0x1f4(%rbp), %rax
movsd %xmm0, -0x140(%rbp,%rax,8)
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
jmp 0x71bd7
movsd -0x120(%rbp), %xmm1
movsd -0x140(%rbp), %xmm2
movsd -0x118(%rbp), %xmm0
mulsd -0x138(%rbp), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movsd -0x110(%rbp), %xmm0
movsd -0x130(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a0(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x71d13
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x71cfd
movq -0x8(%rbp), %rax
movslq -0x200(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq -0x200(%rbp), %rax
mulsd -0x140(%rbp,%rax,8), %xmm0
movslq -0x204(%rbp), %rax
movsd -0x140(%rbp,%rax,8), %xmm2
movsd -0x1a8(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x1a8(%rbp)
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x71c8d
jmp 0x71cff
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x71c76
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq -0x8(%rbp), %rax
addsd 0x20(%rax), %xmm0
movq -0x8(%rbp), %rax
addsd 0x40(%rax), %xmm0
subsd -0x1a8(%rbp), %xmm0
movsd %xmm0, -0x1b0(%rbp)
movsd -0x1b0(%rbp), %xmm0
movsd -0x1b0(%rbp), %xmm2
movsd -0x1a0(%rbp), %xmm1
mulsd -0x1a0(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
callq 0x1220
movsd %xmm0, -0x1b8(%rbp)
movsd -0x1b0(%rbp), %xmm0
divsd -0x1b8(%rbp), %xmm0
movsd %xmm0, -0x1c0(%rbp)
movsd -0x1a0(%rbp), %xmm0
divsd -0x1b8(%rbp), %xmm0
movsd %xmm0, -0x1c8(%rbp)
movsd -0x1c0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x71e14
xorps %xmm0, %xmm0
ucomisd -0x1c8(%rbp), %xmm0
jbe 0x71de9
movsd -0x1c8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x220(%rbp)
jmp 0x71df9
movsd -0x1c8(%rbp), %xmm0
movsd %xmm0, -0x220(%rbp)
movsd -0x220(%rbp), %xmm1
movsd 0x118bf(%rip), %xmm0    # 0x836c8
ucomisd %xmm1, %xmm0
jbe 0x71e14
jmp 0x723b6
movsd 0x422c(%rip), %xmm0     # 0x76048
subsd -0x1c0(%rbp), %xmm0
movsd %xmm0, -0x1d0(%rbp)
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x71f3a
movsd -0x1d0(%rbp), %xmm0
movslq -0x200(%rbp), %rax
mulsd -0x140(%rbp,%rax,8), %xmm0
movslq -0x200(%rbp), %rax
movsd %xmm0, -0x180(%rbp,%rax,8)
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x71ed0
movslq -0x200(%rbp), %rax
movsd -0x180(%rbp,%rax,8), %xmm0
movslq -0x204(%rbp), %rax
mulsd -0x140(%rbp,%rax,8), %xmm0
movslq -0x200(%rbp), %rcx
leaq -0xb0(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x71e75
movsd -0x1c0(%rbp), %xmm0
movslq -0x200(%rbp), %rcx
leaq -0xb0(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x200(%rbp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movslq -0x200(%rbp), %rax
movsd -0x140(%rbp,%rax,8), %xmm0
mulsd -0x1c8(%rbp), %xmm0
movslq -0x200(%rbp), %rax
movsd %xmm0, -0x180(%rbp,%rax,8)
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x71e36
movsd -0x170(%rbp), %xmm1
movsd -0xa8(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0xa8(%rbp)
movsd -0x180(%rbp), %xmm1
movsd -0x88(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x88(%rbp)
movsd -0x178(%rbp), %xmm1
movsd -0x80(%rbp), %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd -0x170(%rbp), %xmm0
addsd -0x98(%rbp), %xmm0
movsd %xmm0, -0x98(%rbp)
movsd -0x180(%rbp), %xmm0
addsd -0x78(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd -0x178(%rbp), %xmm0
addsd -0xa0(%rbp), %xmm0
movsd %xmm0, -0xa0(%rbp)
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x720e0
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x720ca
movslq -0x200(%rbp), %rcx
leaq -0x100(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, -0x1fc(%rbp)
cmpl $0x3, -0x1fc(%rbp)
jge 0x720b4
movslq -0x200(%rbp), %rcx
leaq -0xb0(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1fc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq -0x1fc(%rbp), %rcx
leaq -0x60(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movslq -0x200(%rbp), %rcx
leaq -0x100(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x1fc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1fc(%rbp)
jmp 0x72026
jmp 0x720b6
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x71feb
jmp 0x720cc
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x71fd4
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x72169
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x72156
movslq -0x200(%rbp), %rcx
leaq -0x100(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movslq -0x200(%rbp), %rcx
leaq -0x60(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x720fd
jmp 0x72158
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x720ea
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x7227f
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x72269
movslq -0x200(%rbp), %rcx
leaq -0x100(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl $0x0, -0x1fc(%rbp)
cmpl $0x3, -0x1fc(%rbp)
jge 0x72253
movslq -0x200(%rbp), %rcx
leaq -0xb0(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1fc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x8(%rbp), %rax
movslq -0x1fc(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm2
movslq -0x200(%rbp), %rcx
leaq -0x100(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl -0x1fc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1fc(%rbp)
jmp 0x721c5
jmp 0x72255
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x7218a
jmp 0x7226b
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x72173
movl $0x0, -0x200(%rbp)
cmpl $0x3, -0x200(%rbp)
jge 0x72308
movl $0x0, -0x204(%rbp)
cmpl $0x3, -0x204(%rbp)
jge 0x722f5
movslq -0x200(%rbp), %rcx
leaq -0x100(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x8(%rbp), %rax
movslq -0x200(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x204(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x7229c
jmp 0x722f7
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x72289
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq -0x8(%rbp), %rax
addsd 0x20(%rax), %xmm0
movq -0x8(%rbp), %rax
addsd 0x40(%rax), %xmm0
movsd %xmm0, -0x188(%rbp)
movsd -0x188(%rbp), %xmm0
subsd -0x190(%rbp), %xmm0
movsd %xmm0, -0x1d8(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x1d8(%rbp), %xmm0
jbe 0x72378
movsd -0x1d8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x228(%rbp)
jmp 0x72388
movsd -0x1d8(%rbp), %xmm0
movsd %xmm0, -0x228(%rbp)
movsd -0x228(%rbp), %xmm1
movsd 0x11038(%rip), %xmm0    # 0x833d0
ucomisd %xmm1, %xmm0
jbe 0x723a0
jmp 0x723b6
jmp 0x723a2
movl -0x20c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20c(%rbp)
jmp 0x7195f
cmpw $0x0, -0x12(%rbp)
je 0x7244c
movl $0x0, -0x1f4(%rbp)
cmpl $0x3, -0x1f4(%rbp)
jge 0x72447
movl $0x0, -0x1f8(%rbp)
cmpl $0x3, -0x1f8(%rbp)
jge 0x72434
movslq -0x1f4(%rbp), %rcx
leaq -0x60(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1f8(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x1f8(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1f4(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x1f8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f8(%rbp)
jmp 0x723de
jmp 0x72436
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
jmp 0x723cb
jmp 0x724d4
movl $0x0, -0x1f4(%rbp)
cmpl $0x3, -0x1f4(%rbp)
jge 0x724d2
movl $0x0, -0x1f8(%rbp)
cmpl $0x3, -0x1f8(%rbp)
jge 0x724bf
movslq -0x1f4(%rbp), %rcx
leaq -0x60(%rbp), %rax
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1f8(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rbp), %rax
movslq -0x1f4(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x1f8(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x1f8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f8(%rbp)
jmp 0x72469
jmp 0x724c1
movl -0x1f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1f4(%rbp)
jmp 0x72456
jmp 0x724d4
addq $0x230, %rsp            # imm = 0x230
popq %rbp
retq
nopl (%rax)