// File: /workspace/github_c_makefile_star2_O0/zpole[P]IICV/vl/rodrigues.c
// Function: vl_irodrigues
VL_EXPORT
void vl_irodrigues(double* om_pt, double* dom_pt, const double* R_pt)
{
  /*
                    tr R - 1          1    [ R32 - R23 ]
      th = cos^{-1} --------,  r =  ------ [ R13 - R31 ], w = th r.
                        2           2 sth  [ R12 - R21 ]

      sth = sin(th)

       dw    th*cth-sth      dw     th   [di3 dj2 - di2 dj3]
      ---- = ---------- r,  ---- = ----- [di1 dj3 - di3 dj1].
      dRii     2 sth^2      dRij   2 sth [di1 dj2 - di2 dj1]

      trace(A) < -1 only for small num. errors.
  */

#define OM(i)    om_pt[(i)]
#define DOM(i,j) dom_pt[(i)+3*(j)]
#define R(i,j)   R_pt[(i)+3*(j)]
#define W(i,j)   W_pt[(i)+3*(j)]

  const double small = 1e-6 ;

  double th = acos
    (0.5*(VL_MAX(R(0,0)+R(1,1)+R(2,2),-1.0) - 1.0)) ;

  double sth = sin(th) ;
  double cth = cos(th) ;

  if(fabs(sth) < small && cth < 0) {
    /*
      we have this singularity when the rotation  is about pi (or -pi)
      we use the fact that in this case

      hat( sqrt(1-cth) * r )^2 = W = (0.5*(R+R') - eye(3))

      which gives

      (1-cth) rx^2 = 0.5 * (W(1,1)-W(2,2)-W(3,3))
      (1-cth) ry^2 = 0.5 * (W(2,2)-W(3,3)-W(1,1))
      (1-cth) rz^2 = 0.5 * (W(3,3)-W(1,1)-W(2,2))
    */

    double W_pt [9], x, y, z ;
    W_pt[0] = 0.5*( R(0,0) + R(0,0) ) - 1.0 ;
    W_pt[1] = 0.5*( R(1,0) + R(0,1) ) ;
    W_pt[2] = 0.5*( R(2,0) + R(0,2) );

    W_pt[3] = 0.5*( R(0,1) + R(1,0) );
    W_pt[4] = 0.5*( R(1,1) + R(1,1) ) - 1.0;
    W_pt[5] = 0.5*( R(2,1) + R(1,2) );

    W_pt[6] =  0.5*( R(0,2) + R(2,0) ) ;
    W_pt[7] =  0.5*( R(1,2) + R(2,1) ) ;
    W_pt[8] =  0.5*( R(2,2) + R(2,2) ) - 1.0 ;

    /* these are only absolute values */
    x = sqrt( 0.5 * (W(0,0)-W(1,1)-W(2,2)) ) ;
    y = sqrt( 0.5 * (W(1,1)-W(2,2)-W(0,0)) ) ;
    z = sqrt( 0.5 * (W(2,2)-W(0,0)-W(1,1)) ) ;

    /* set the biggest component to + and use the element of the
    ** matrix W to determine the sign of the other components
    ** then the solution is either (x,y,z) or its opposite */
    if( x >= y && x >= z ) {
      y = (W(1,0) >=0) ? y : -y ;
      z = (W(2,0) >=0) ? z : -z ;
    } else if( y >= x && y >= z ) {
      z = (W(2,1) >=0) ? z : -z ;
      x = (W(1,0) >=0) ? x : -x ;
    } else {
      x = (W(2,0) >=0) ? x : -x ;
      y = (W(2,1) >=0) ? y : -y ;
    }

    /* we are left to chose between (x,y,z) and (-x,-y,-z)
    ** unfortunately we cannot (as the rotation is too close to pi) and
    ** we just keep what we have. */
    {
      double scale = th / sqrt( 1 - cth ) ;
      OM(0) = scale * x ;
      OM(1) = scale * y ;
      OM(2) = scale * z ;

      if( dom_pt ) {
        int k ;
        for(k=0; k<3*9; ++k)
          dom_pt [k] = VL_NAN_D ;
      }
      return ;
    }

  } else {
    double a = (fabs(sth) < small) ? 1 : th/sin(th) ;
    double b ;
    OM(0) = 0.5*a*(R(2,1) - R(1,2)) ;
    OM(1) = 0.5*a*(R(0,2) - R(2,0)) ;
    OM(2) = 0.5*a*(R(1,0) - R(0,1)) ;

    if( dom_pt ) {
      if( fabs(sth) < small ) {
        a = 0.5 ;
        b = 0 ;
      } else {
        a = th/(2*sth) ;
        b = (th*cth - sth)/(2*sth*sth)/th ;
      }

      DOM(0,0) = b*OM(0) ;
      DOM(1,0) = b*OM(1) ;
      DOM(2,0) = b*OM(2) ;

      DOM(0,1) = 0 ;
      DOM(1,1) = 0 ;
      DOM(2,1) = a ;

      DOM(0,2) = 0 ;
      DOM(1,2) = -a ;
      DOM(2,2) = 0 ;

      DOM(0,3) = 0 ;
      DOM(1,3) = 0 ;
      DOM(2,3) = -a ;

      DOM(0,4) = b*OM(0) ;
      DOM(1,4) = b*OM(1) ;
      DOM(2,4) = b*OM(2) ;

      DOM(0,5) = a ;
      DOM(1,5) = 0 ;
      DOM(2,5) = 0 ;

      DOM(0,6) = 0 ;
      DOM(1,6) = a ;
      DOM(2,6) = 0 ;

      DOM(0,7) = -a ;
      DOM(1,7) = 0 ;
      DOM(2,7) = 0 ;

      DOM(0,8) = b*OM(0) ;
      DOM(1,8) = b*OM(1) ;
      DOM(2,8) = b*OM(2) ;
    }
  }

#undef OM
#undef DOM
#undef R
#undef W
}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movq %rdi, 0x110(%rsp)
movq %rsi, 0x108(%rsp)
movq %rdx, 0x100(%rsp)
movsd 0xf3a1(%rip), %xmm0     # 0x59248
movsd %xmm0, 0xf8(%rsp)
movq 0x100(%rsp), %rax
movsd (%rax), %xmm0
movq 0x100(%rsp), %rax
addsd 0x20(%rax), %xmm0
movq 0x100(%rsp), %rax
addsd 0x40(%rax), %xmm0
movsd 0xf1ba(%rip), %xmm1     # 0x59098
ucomisd %xmm1, %xmm0
jbe 0x49f12
movq 0x100(%rsp), %rax
movsd (%rax), %xmm0
movq 0x100(%rsp), %rax
addsd 0x20(%rax), %xmm0
movq 0x100(%rsp), %rax
addsd 0x40(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
jmp 0x49f22
movsd 0xf17e(%rip), %xmm0     # 0x59098
movsd %xmm0, 0x50(%rsp)
jmp 0x49f22
movsd 0x50(%rsp), %xmm1
movsd 0xf1a8(%rip), %xmm0     # 0x590d8
subsd %xmm0, %xmm1
movsd 0xf144(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
callq 0x9520
movsd %xmm0, 0xf0(%rsp)
movsd 0xf0(%rsp), %xmm0
callq 0x99e0
movsd %xmm0, 0xe8(%rsp)
movsd 0xf0(%rsp), %xmm0
callq 0x94e0
movsd %xmm0, 0xe0(%rsp)
movsd 0xe8(%rsp), %xmm1
movaps 0xf1c4(%rip), %xmm0     # 0x59150
pand %xmm0, %xmm1
movsd 0xf2b0(%rip), %xmm0     # 0x59248
ucomisd %xmm1, %xmm0
jbe 0x4a54d
xorps %xmm0, %xmm0
ucomisd 0xe0(%rsp), %xmm0
jbe 0x4a54d
movq 0x100(%rsp), %rax
movsd (%rax), %xmm0
movq 0x100(%rsp), %rax
addsd (%rax), %xmm0
movsd 0xf0ac(%rip), %xmm1     # 0x59080
mulsd %xmm1, %xmm0
movsd 0xf0b8(%rip), %xmm1     # 0x59098
addsd %xmm1, %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0x100(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x100(%rsp), %rax
addsd 0x18(%rax), %xmm1
movsd 0xf071(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0x98(%rsp)
movq 0x100(%rsp), %rax
movsd 0x10(%rax), %xmm1
movq 0x100(%rsp), %rax
addsd 0x30(%rax), %xmm1
movsd 0xf042(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0xa0(%rsp)
movq 0x100(%rsp), %rax
movsd 0x18(%rax), %xmm1
movq 0x100(%rsp), %rax
addsd 0x8(%rax), %xmm1
movsd 0xf013(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0xa8(%rsp)
movq 0x100(%rsp), %rax
movsd 0x20(%rax), %xmm0
movq 0x100(%rsp), %rax
addsd 0x20(%rax), %xmm0
movsd 0xefe4(%rip), %xmm1     # 0x59080
mulsd %xmm1, %xmm0
movsd 0xeff0(%rip), %xmm1     # 0x59098
addsd %xmm1, %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0x100(%rsp), %rax
movsd 0x28(%rax), %xmm1
movq 0x100(%rsp), %rax
addsd 0x38(%rax), %xmm1
movsd 0xefa9(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0xb8(%rsp)
movq 0x100(%rsp), %rax
movsd 0x30(%rax), %xmm1
movq 0x100(%rsp), %rax
addsd 0x10(%rax), %xmm1
movsd 0xef7a(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0xc0(%rsp)
movq 0x100(%rsp), %rax
movsd 0x38(%rax), %xmm1
movq 0x100(%rsp), %rax
addsd 0x28(%rax), %xmm1
movsd 0xef4b(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
movsd %xmm0, 0xc8(%rsp)
movq 0x100(%rsp), %rax
movsd 0x40(%rax), %xmm0
movq 0x100(%rsp), %rax
addsd 0x40(%rax), %xmm0
movsd 0xef1c(%rip), %xmm1     # 0x59080
mulsd %xmm1, %xmm0
movsd 0xef28(%rip), %xmm1     # 0x59098
addsd %xmm1, %xmm0
movsd %xmm0, 0xd0(%rsp)
movsd 0x90(%rsp), %xmm1
subsd 0xb0(%rsp), %xmm1
subsd 0xd0(%rsp), %xmm1
movsd 0xeee0(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
callq 0x9b20
movsd %xmm0, 0x88(%rsp)
movsd 0xb0(%rsp), %xmm1
subsd 0xd0(%rsp), %xmm1
subsd 0x90(%rsp), %xmm1
movsd 0xeeab(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
callq 0x9b20
movsd %xmm0, 0x80(%rsp)
movsd 0xd0(%rsp), %xmm1
subsd 0x90(%rsp), %xmm1
subsd 0xb0(%rsp), %xmm1
movsd 0xee76(%rip), %xmm0     # 0x59080
mulsd %xmm1, %xmm0
callq 0x9b20
movsd %xmm0, 0x78(%rsp)
movsd 0x88(%rsp), %xmm0
ucomisd 0x80(%rsp), %xmm0
jb 0x4a2f2
movsd 0x88(%rsp), %xmm0
ucomisd 0x78(%rsp), %xmm0
jb 0x4a2f2
movsd 0x98(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4a269
movsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
jmp 0x4a28f
movsd 0x80(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movsd 0xa0(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4a2be
movsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
jmp 0x4a2e1
movsd 0x78(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
jmp 0x4a47d
movsd 0x80(%rsp), %xmm0
ucomisd 0x88(%rsp), %xmm0
jb 0x4a3cb
movsd 0x80(%rsp), %xmm0
ucomisd 0x78(%rsp), %xmm0
jb 0x4a3cb
movsd 0xb8(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4a33f
movsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
jmp 0x4a362
movsd 0x78(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movsd 0x98(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4a391
movsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
jmp 0x4a3b7
movsd 0x88(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x88(%rsp)
jmp 0x4a47b
movsd 0xa0(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4a3ee
movsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
jmp 0x4a414
movsd 0x88(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x88(%rsp)
movsd 0xb8(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4a446
movsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
jmp 0x4a46c
movsd 0x80(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
jmp 0x4a47d
movsd 0xf0(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0xec44(%rip), %xmm0     # 0x590d8
subsd 0xe0(%rsp), %xmm0
callq 0x9b20
movaps %xmm0, %xmm1
movsd 0x18(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x70(%rsp)
movsd 0x70(%rsp), %xmm0
mulsd 0x88(%rsp), %xmm0
movq 0x110(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0x70(%rsp), %xmm0
mulsd 0x80(%rsp), %xmm0
movq 0x110(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x70(%rsp), %xmm0
mulsd 0x78(%rsp), %xmm0
movq 0x110(%rsp), %rax
movsd %xmm0, 0x10(%rax)
cmpq $0x0, 0x108(%rsp)
je 0x4a548
movl $0x0, 0x6c(%rsp)
cmpl $0x1b, 0x6c(%rsp)
jge 0x4a546
movsd 0xfc09(%rip), %xmm0     # 0x5a130
movq 0x108(%rsp), %rax
movslq 0x6c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x6c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x6c(%rsp)
jmp 0x4a518
jmp 0x4a548
jmp 0x4a9f3
movsd 0xe8(%rsp), %xmm1
movaps 0xebf3(%rip), %xmm0     # 0x59150
pand %xmm0, %xmm1
movsd 0xecdf(%rip), %xmm0     # 0x59248
ucomisd %xmm1, %xmm0
jbe 0x4a57f
movsd 0xeb61(%rip), %xmm0     # 0x590d8
movsd %xmm0, 0x10(%rsp)
jmp 0x4a5af
movsd 0xf0(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0xf0(%rsp), %xmm0
callq 0x99e0
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0xeabd(%rip), %xmm0     # 0x59080
mulsd 0x60(%rsp), %xmm0
movq 0x100(%rsp), %rax
movsd 0x28(%rax), %xmm1
movq 0x100(%rsp), %rax
subsd 0x38(%rax), %xmm1
mulsd %xmm1, %xmm0
movq 0x110(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0xea85(%rip), %xmm0     # 0x59080
mulsd 0x60(%rsp), %xmm0
movq 0x100(%rsp), %rax
movsd 0x30(%rax), %xmm1
movq 0x100(%rsp), %rax
subsd 0x10(%rax), %xmm1
mulsd %xmm1, %xmm0
movq 0x110(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0xea4c(%rip), %xmm0     # 0x59080
mulsd 0x60(%rsp), %xmm0
movq 0x100(%rsp), %rax
movsd 0x8(%rax), %xmm1
movq 0x100(%rsp), %rax
subsd 0x18(%rax), %xmm1
mulsd %xmm1, %xmm0
movq 0x110(%rsp), %rax
movsd %xmm0, 0x10(%rax)
cmpq $0x0, 0x108(%rsp)
je 0x4a9f1
movsd 0xe8(%rsp), %xmm1
movaps 0xeacc(%rip), %xmm0     # 0x59150
pand %xmm0, %xmm1
movsd 0xebb8(%rip), %xmm0     # 0x59248
ucomisd %xmm1, %xmm0
jbe 0x4a6b2
movsd 0xe9e2(%rip), %xmm0     # 0x59080
movsd %xmm0, 0x60(%rsp)
xorps %xmm0, %xmm0
movsd %xmm0, 0x58(%rsp)
jmp 0x4a73d
movsd 0xf0(%rsp), %xmm0
movsd 0xea1d(%rip), %xmm1     # 0x590e0
mulsd 0xe8(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0xf0(%rsp), %xmm0
movsd 0xe0(%rsp), %xmm2
movsd 0xe8(%rsp), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0xe9c8(%rip), %xmm1     # 0x590e0
mulsd 0xe8(%rsp), %xmm1
mulsd 0xe8(%rsp), %xmm1
divsd %xmm1, %xmm0
divsd 0xf0(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd (%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, (%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd 0x8(%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd 0x10(%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x10(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x20(%rax)
movsd 0x60(%rsp), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x28(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x30(%rax)
movsd 0x60(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x38(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x40(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x48(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x50(%rax)
movsd 0x60(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x58(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd (%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x60(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd 0x8(%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x68(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd 0x10(%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x70(%rax)
movsd 0x60(%rsp), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x78(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x80(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x88(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x90(%rax)
movsd 0x60(%rsp), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0x98(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xa0(%rax)
movsd 0x60(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0xa8(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xb0(%rax)
movq 0x108(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0xb8(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd (%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0xc0(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd 0x8(%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0xc8(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x110(%rsp), %rax
mulsd 0x10(%rax), %xmm0
movq 0x108(%rsp), %rax
movsd %xmm0, 0xd0(%rax)
jmp 0x4a9f3
addq $0x118, %rsp            # imm = 0x118
retq
nopl (%rax,%rax)