user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<rotMatrixCCOVsubrtn>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  mov    %rdi,0x18(%rsp)
  mov    %rsi,%r15
  mov    %rdx,%r13
  mov    %rcx,%rbp
  mov    %r8,0x8(%rsp)
  mov    %r9,(%rsp)
  mov    0x70(%rsp),%r14
  mov    0x78(%rsp),%rbx
  mov    0x80(%rsp),%r12
  movsd  (%rsi),%xmm0
  movsd  0x8(%rsi),%xmm1
  movsd  0x10(%rsi),%xmm2
  mulsd  %xmm0,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,(%r14)
  movsd  0x18(%rsi),%xmm0
  movsd  0x20(%rsi),%xmm3
  movsd  0x28(%rsi),%xmm2
  mulsd  %xmm0,%xmm0
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%r14)
  movsd  0x30(%rsi),%xmm2
  movsd  0x38(%rsi),%xmm4
  movsd  0x40(%rsi),%xmm3
  mulsd  %xmm2,%xmm2
  mulsd  %xmm4,%xmm4
  addsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,0x10(%r14)
  movsd  (%rsi),%xmm3
  mulsd  0x18(%rsi),%xmm3
  movsd  0x8(%rsi),%xmm4
  mulsd  0x20(%rsi),%xmm4
  addsd  %xmm4,%xmm3
  movsd  0x28(%rsi),%xmm4
  mulsd  0x10(%rsi),%xmm4
  addsd  %xmm4,%xmm3
  movsd  %xmm3,0x18(%r14)
  movsd  0x18(%rsi),%xmm3
  mulsd  0x30(%rsi),%xmm3
  movsd  0x20(%rsi),%xmm4
  mulsd  0x38(%rsi),%xmm4
  addsd  %xmm4,%xmm3
  movsd  0x28(%rsi),%xmm4
  mulsd  0x40(%rsi),%xmm4
  addsd  %xmm4,%xmm3
  movsd  %xmm3,0x20(%r14)
  movsd  (%rsi),%xmm3
  mulsd  0x30(%rsi),%xmm3
  movsd  0x8(%rsi),%xmm4
  mulsd  0x38(%rsi),%xmm4
  addsd  %xmm4,%xmm3
  movsd  0x10(%rsi),%xmm4
  mulsd  0x40(%rsi),%xmm4
  addsd  %xmm4,%xmm3
  movsd  %xmm3,0x28(%r14)
  addsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm7
  movsd  %xmm0,0x10(%rsp)
  movsd  %xmm0,(%r12)
  movsd  0x28(%r14),%xmm0
  movsd  0x20(%r14),%xmm4
  movsd  0x10(%r14),%xmm3
  movsd  0x8(%r14),%xmm1
  movsd  (%r14),%xmm5
  movsd  0x18(%r14),%xmm2
  mulsd  %xmm0,%xmm0
  mulsd  %xmm4,%xmm4
  addsd  %xmm4,%xmm0
  movapd %xmm3,%xmm4
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm0
  mulsd  %xmm5,%xmm3
  subsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm5,%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm10
  movsd  %xmm0,0x20(%rsp)
  movsd  %xmm0,0x8(%r12)
  movsd  0x28(%r14),%xmm2
  movsd  0x18(%r14),%xmm6
  movsd  0x20(%r14),%xmm1
  movsd  0x8(%r14),%xmm3
  movsd  (%r14),%xmm4
  movsd  0x10(%r14),%xmm5
  movapd %xmm2,%xmm0
  mulsd  D260(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm2
  mulsd  %xmm3,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  mulsd  %xmm4,%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm5,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  mulsd  %xmm5,%xmm3
  movapd %xmm3,%xmm1
  mulsd  %xmm4,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%rsp)
  movsd  %xmm0,0x10(%r12)
  movapd %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  movapd %xmm10,%xmm1
  mulsd  D174(%rip),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%r12)
  movsd  D41(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L654
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L147
  sqrtsd %xmm0,%xmm0
L703:
  movsd  %xmm0,0x18(%r12)
  movapd %xmm0,%xmm1
  mulsd  D318(%rip),%xmm1
  movsd  0x10(%rsp),%xmm5
  comisd %xmm1,%xmm5
  ja     L206
  movsd  D174(%rip),%xmm1
  movsd  0x10(%rsp),%xmm7
  movapd %xmm7,%xmm4
  subsd  %xmm0,%xmm4
  divsd  %xmm1,%xmm4
  movsd  %xmm4,0x20(%r12)
  movapd %xmm7,%xmm2
  addsd  %xmm0,%xmm2
  divsd  %xmm1,%xmm2
  movsd  %xmm2,0x28(%r12)
  movapd %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  movapd %xmm4,%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm7,%xmm3
  subsd  %xmm3,%xmm1
  movsd  0x20(%rsp),%xmm6
  movapd %xmm6,%xmm3
  mulsd  %xmm4,%xmm3
  subsd  %xmm3,%xmm1
  movsd  0x28(%rsp),%xmm11
  addsd  %xmm11,%xmm1
  movsd  %xmm1,0x30(%r12)
  movapd %xmm2,%xmm5
  mulsd  %xmm2,%xmm5
  movapd %xmm2,%xmm3
  mulsd  %xmm5,%xmm3
  mulsd  %xmm7,%xmm5
  subsd  %xmm5,%xmm3
  mulsd  %xmm6,%xmm2
  subsd  %xmm2,%xmm3
  addsd  %xmm11,%xmm3
  movapd %xmm3,%xmm2
  movsd  %xmm3,0x38(%r12)
  movapd %xmm1,%xmm3
  addsd  %xmm2,%xmm3
  comisd D109(%rip),%xmm3
  jbe    L409
  divsd  %xmm6,%xmm11
  movsd  %xmm11,0x10(%r13)
  mov    $0x32,%eax
  movsd  D174(%rip),%xmm6
  movq   D276(%rip),%xmm5
  movsd  D176(%rip),%xmm4
L63:
  movsd  0x10(%r13),%xmm2
  movsd  %xmm2,0x30(%r12)
  movsd  (%r12),%xmm0
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm1
  movapd %xmm2,%xmm3
  addsd  %xmm2,%xmm3
  mulsd  %xmm2,%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm3,%xmm1
  addsd  0x10(%r12),%xmm1
  addsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm0
  movapd %xmm2,%xmm3
  mulsd  %xmm6,%xmm3
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  addsd  0x8(%r12),%xmm0
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x10(%r13)
  movapd %xmm1,%xmm0
  subsd  0x30(%r12),%xmm0
  andpd  %xmm5,%xmm0
  movapd %xmm1,%xmm2
  mulsd  %xmm4,%xmm2
  comisd %xmm0,%xmm2
  ja     L575
  sub    $0x1,%eax
  jne    L63
L575:
  movsd  (%r12),%xmm6
  movsd  %xmm6,0x10(%rsp)
  movapd %xmm6,%xmm0
  addsd  %xmm6,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm1,%xmm2
  mulsd  D174(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  movsd  D184(%rip),%xmm1
  mulsd  0x8(%r12),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%r12)
  comisd D109(%rip),%xmm0
  ja     L515
  movsd  0x10(%rsp),%xmm0
  subsd  0x10(%r13),%xmm0
  mulsd  D74(%rip),%xmm0
  movsd  %xmm0,0x8(%r13)
L566:
  movsd  %xmm0,0x0(%r13)
  movsd  D241(%rip),%xmm1
  mulsd  0x18(%r12),%xmm1
  comisd %xmm1,%xmm0
  ja     L522
  movsd  (%r12),%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movapd %xmm0,%xmm3
  addsd  %xmm0,%xmm3
  mulsd  %xmm0,%xmm3
  mulsd  %xmm0,%xmm3
  subsd  %xmm3,%xmm1
  addsd  0x10(%r12),%xmm1
  addsd  %xmm2,%xmm2
  movapd %xmm2,%xmm3
  mulsd  %xmm0,%xmm3
  movsd  D174(%rip),%xmm2
  movapd %xmm0,%xmm4
  mulsd  %xmm2,%xmm4
  mulsd  %xmm4,%xmm0
  subsd  %xmm0,%xmm3
  addsd  0x8(%r12),%xmm3
  movapd %xmm1,%xmm0
  divsd  %xmm3,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  (%r12),%xmm1
  movapd %xmm0,%xmm3
  mulsd  %xmm1,%xmm3
  mulsd  %xmm0,%xmm3
  movapd %xmm0,%xmm4
  addsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  subsd  %xmm4,%xmm3
  addsd  0x10(%r12),%xmm3
  addsd  %xmm1,%xmm1
  mulsd  %xmm0,%xmm1
  movapd %xmm0,%xmm4
  mulsd  %xmm2,%xmm4
  mulsd  %xmm4,%xmm0
  subsd  %xmm0,%xmm1
  addsd  0x8(%r12),%xmm1
  divsd  %xmm1,%xmm3
  movsd  %xmm3,0x0(%r13)
  movsd  (%r12),%xmm1
  movsd  0x8(%r13),%xmm3
  movapd %xmm1,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  movapd %xmm3,%xmm4
  addsd  %xmm3,%xmm4
  mulsd  %xmm3,%xmm4
  mulsd  %xmm3,%xmm4
  subsd  %xmm4,%xmm0
  addsd  0x10(%r12),%xmm0
  addsd  %xmm1,%xmm1
  mulsd  %xmm3,%xmm1
  movapd %xmm3,%xmm4
  mulsd  %xmm2,%xmm4
  mulsd  %xmm4,%xmm3
  subsd  %xmm3,%xmm1
  addsd  0x8(%r12),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%r13)
  movsd  (%r12),%xmm1
  movapd %xmm0,%xmm3
  mulsd  %xmm1,%xmm3
  mulsd  %xmm0,%xmm3
  movapd %xmm0,%xmm4
  addsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  subsd  %xmm4,%xmm3
  addsd  0x10(%r12),%xmm3
  addsd  %xmm1,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  addsd  0x8(%r12),%xmm1
  divsd  %xmm1,%xmm3
  movsd  %xmm3,0x8(%r13)
  lea    0x10(%r13),%rax
  mov    %rax,0x10(%rsp)
  mov    (%rsp),%rax
  add    $0x30,%rax
  mov    %r15,0x20(%rsp)
  mov    %rax,%r15
  jmp    L242
L654:
  sub    $0x8,%rsp
  push   %r12
  push   %rbx
  push   %r14
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r8
  mov    0x38(%rsp),%rdi
  mov    $0x0,%eax
  call   <rotMatrixCCOVsubrtnII@plt>
  add    $0x20,%rsp
L634:
  add    $0x38,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L147:
  call   <sqrt@plt>
  jmp    L703
L206:
  sub    $0x8,%rsp
  push   %r12
  push   %rbx
  push   %r14
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r8
  mov    %rbp,%rcx
  mov    %r13,%rdx
  mov    %r15,%rsi
  mov    0x38(%rsp),%rdi
  mov    $0x0,%eax
  call   <rotMatrixCCOVsubrtnII@plt>
  add    $0x20,%rsp
  jmp    L634
L515:
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L729
  sqrtsd %xmm0,%xmm0
L394:
  movsd  %xmm0,0x18(%r12)
  movsd  0x10(%r13),%xmm3
  movsd  0x10(%rsp),%xmm1
  subsd  %xmm3,%xmm1
  subsd  %xmm0,%xmm1
  movsd  D74(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  (%r12),%xmm0
  subsd  %xmm3,%xmm0
  addsd  0x18(%r12),%xmm0
  mulsd  %xmm2,%xmm0
  jmp    L566
L729:
  call   <sqrt@plt>
  jmp    L394
L522:
  sub    $0x8,%rsp
  push   %r12
  push   %rbx
  push   %r14
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r8
  mov    %rbp,%rcx
  mov    %r13,%rdx
  mov    %r15,%rsi
  mov    0x38(%rsp),%rdi
  mov    $0x0,%eax
  call   <rotMatrixCCOVsubrtnII@plt>
  add    $0x20,%rsp
  jmp    L634
L353:
  movsd  0x10(%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x20(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x28(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
L543:
  mov    %r15,%r13
  movsd  (%r15),%xmm0
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r15)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r15)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r15)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r15)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r15)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r15)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm0
  mulsd  0x0(%rbp),%xmm0
  movsd  0x18(%rbx),%xmm1
  mulsd  0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x20(%rbx),%xmm1
  mulsd  0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x10(%rbx),%xmm0
  mulsd  0x0(%rbp),%xmm0
  movsd  0x20(%rbx),%xmm1
  mulsd  0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x28(%rbx),%xmm1
  mulsd  0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%r15)
  mov    $0x3,%eax
L190:
  movsd  0x0(%r13),%xmm1
  andpd  D276(%rip),%xmm1
  movsd  0x8(%r13),%xmm0
  andpd  D276(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x10(%r13),%xmm0
  andpd  D276(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,(%r12)
  movsd  0x0(%r13),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  0x8(%r13),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  0x10(%r13),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x10(%r13)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r13),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r13),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r13)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r13),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r13),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  0x8(%rbx),%xmm2
  mulsd  0x0(%rbp),%xmm2
  movsd  0x18(%rbx),%xmm1
  mulsd  0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm2
  movsd  0x20(%rbx),%xmm1
  mulsd  0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm2
  movsd  %xmm2,0x8(%r13)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm3
  mulsd  0x8(%rbp),%xmm3
  addsd  %xmm3,%xmm1
  movsd  0x28(%rbx),%xmm3
  mulsd  0x10(%rbp),%xmm3
  addsd  %xmm3,%xmm1
  movsd  %xmm1,0x10(%r13)
  sub    $0x1,%eax
  jne    L190
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm5,%xmm5
  ucomisd %xmm0,%xmm5
  ja     L707
  sqrtsd %xmm0,%xmm0
L4:
  movsd  %xmm0,(%r12)
  movsd  0x0(%r13),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x0(%r13)
  movsd  0x8(%r13),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x8(%r13)
  movsd  0x10(%r13),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x10(%r13)
  subq   $0x8,0x10(%rsp)
  sub    $0x18,%r15
  cmp    (%rsp),%r15
  je     L696
L242:
  movsd  0x10(%r14),%xmm3
  movsd  0x8(%r14),%xmm4
  mov    0x10(%rsp),%rax
  movsd  (%rax),%xmm1
  movsd  0x20(%r14),%xmm2
  movapd %xmm3,%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm0
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm2
  subsd  %xmm2,%xmm0
  movsd  %xmm0,(%rbx)
  movsd  0x18(%r14),%xmm1
  movsd  0x20(%r14),%xmm2
  mulsd  0x28(%r14),%xmm2
  movapd %xmm1,%xmm3
  mulsd  0x10(%r14),%xmm3
  subsd  %xmm3,%xmm2
  mulsd  (%rax),%xmm1
  movapd %xmm2,%xmm4
  addsd  %xmm1,%xmm4
  movsd  %xmm4,0x8(%rbx)
  movsd  0x28(%r14),%xmm2
  movsd  0x18(%r14),%xmm1
  mulsd  0x20(%r14),%xmm1
  movapd %xmm2,%xmm3
  mulsd  0x8(%r14),%xmm3
  subsd  %xmm3,%xmm1
  mulsd  (%rax),%xmm2
  movapd %xmm1,%xmm3
  addsd  %xmm2,%xmm3
  movsd  %xmm3,0x10(%rbx)
  movsd  0x10(%r14),%xmm6
  movsd  (%r14),%xmm7
  movsd  (%rax),%xmm2
  movsd  0x28(%r14),%xmm5
  movapd %xmm6,%xmm1
  mulsd  %xmm7,%xmm1
  mulsd  %xmm2,%xmm7
  subsd  %xmm7,%xmm1
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm1
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm1
  mulsd  %xmm5,%xmm5
  subsd  %xmm5,%xmm1
  movsd  %xmm1,0x18(%rbx)
  movsd  0x20(%r14),%xmm1
  movapd %xmm1,%xmm2
  mulsd  (%r14),%xmm2
  mulsd  (%rax),%xmm1
  subsd  %xmm2,%xmm1
  movsd  0x18(%r14),%xmm2
  mulsd  0x28(%r14),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x20(%rbx)
  movsd  0x8(%r14),%xmm6
  movsd  (%r14),%xmm7
  movsd  (%rax),%xmm2
  movsd  0x18(%r14),%xmm5
  movapd %xmm6,%xmm1
  mulsd  %xmm7,%xmm1
  mulsd  %xmm2,%xmm7
  subsd  %xmm7,%xmm1
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm1
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm1
  mulsd  %xmm5,%xmm5
  subsd  %xmm5,%xmm1
  movsd  %xmm1,0x28(%rbx)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm4,%xmm4
  addsd  %xmm4,%xmm0
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm0
  movsd  %xmm0,(%r12)
  movsd  0x8(%rbx),%xmm1
  movsd  0x18(%rbx),%xmm3
  movsd  0x20(%rbx),%xmm2
  mulsd  %xmm1,%xmm1
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm1
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r12)
  movsd  0x10(%rbx),%xmm2
  movsd  0x20(%rbx),%xmm4
  movsd  0x28(%rbx),%xmm3
  mulsd  %xmm2,%xmm2
  mulsd  %xmm4,%xmm4
  addsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,0x10(%r12)
  comisd %xmm1,%xmm0
  jbe    L292
  comisd %xmm2,%xmm0
  jbe    L353
  movsd  (%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x10(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
  jmp    L543
L292:
  comisd %xmm2,%xmm1
  jbe    L363
  movsd  0x8(%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x18(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x20(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
  jmp    L543
L363:
  movsd  0x10(%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x20(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x28(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
  jmp    L543
L707:
  call   <sqrt@plt>
  jmp    L4
L696:
  mov    0x20(%rsp),%r15
  mov    (%rsp),%rax
  movsd  0x18(%rax),%xmm0
  mulsd  0x30(%rax),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x38(%rax),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x40(%rax),%xmm1
  addsd  %xmm0,%xmm1
  movsd  %xmm1,(%r12)
  mulsd  0x30(%rax),%xmm1
  movsd  0x18(%rax),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rax)
  movsd  (%r12),%xmm1
  mulsd  0x38(%rax),%xmm1
  movsd  0x20(%rax),%xmm2
  subsd  %xmm1,%xmm2
  movsd  %xmm2,0x20(%rax)
  movsd  (%r12),%xmm3
  mulsd  0x40(%rax),%xmm3
  movsd  0x28(%rax),%xmm1
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x28(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L152
  sqrtsd %xmm0,%xmm0
L612:
  movsd  %xmm0,(%r12)
  mov    (%rsp),%rax
  movsd  0x18(%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x18(%rax)
  movsd  0x20(%rax),%xmm3
  divsd  (%r12),%xmm3
  movsd  %xmm3,0x20(%rax)
  movsd  0x28(%rax),%xmm2
  divsd  (%r12),%xmm2
  movsd  %xmm2,0x28(%rax)
  movsd  0x40(%rax),%xmm4
  movsd  0x38(%rax),%xmm6
  movapd %xmm3,%xmm0
  mulsd  %xmm4,%xmm0
  movapd %xmm2,%xmm5
  mulsd  %xmm6,%xmm5
  subsd  %xmm5,%xmm0
  movsd  %xmm0,(%rax)
  movsd  0x30(%rax),%xmm5
  mulsd  %xmm5,%xmm2
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm2
  movsd  %xmm2,0x8(%rax)
  mulsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm3
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x10(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L329
  sqrtsd %xmm0,%xmm0
L124:
  movsd  %xmm0,(%r12)
  mov    (%rsp),%rax
  movsd  (%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  movsd  0x8(%rax),%xmm3
  divsd  (%r12),%xmm3
  movsd  %xmm3,0x8(%rax)
  movsd  0x10(%rax),%xmm2
  divsd  (%r12),%xmm2
  movsd  %xmm2,0x10(%rax)
  movapd %xmm1,%xmm0
  mulsd  (%r15),%xmm0
  mulsd  0x18(%r15),%xmm3
  addsd  %xmm3,%xmm0
  mulsd  0x30(%r15),%xmm2
  addsd  %xmm2,%xmm0
  mov    0x8(%rsp),%rdx
  movsd  %xmm0,(%rdx)
  movsd  0x8(%r15),%xmm2
  mulsd  (%rax),%xmm2
  movsd  0x20(%r15),%xmm1
  mulsd  0x8(%rax),%xmm1
  addsd  %xmm1,%xmm2
  movsd  0x38(%r15),%xmm1
  mulsd  0x10(%rax),%xmm1
  addsd  %xmm1,%xmm2
  movsd  %xmm2,0x8(%rdx)
  movsd  0x10(%r15),%xmm1
  mulsd  (%rax),%xmm1
  movsd  0x28(%r15),%xmm3
  mulsd  0x8(%rax),%xmm3
  addsd  %xmm3,%xmm1
  movsd  0x40(%r15),%xmm3
  mulsd  0x10(%rax),%xmm3
  addsd  %xmm3,%xmm1
  movsd  %xmm1,0x10(%rdx)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L689
  sqrtsd %xmm0,%xmm0
L74:
  movsd  %xmm0,(%r12)
  mov    0x8(%rsp),%rax
  movsd  (%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  movsd  0x8(%rax),%xmm5
  divsd  (%r12),%xmm5
  movsd  %xmm5,0x8(%rax)
  movsd  0x10(%rax),%xmm4
  divsd  (%r12),%xmm4
  movsd  %xmm4,0x10(%rax)
  movsd  (%r15),%xmm0
  mov    (%rsp),%rdx
  mulsd  0x18(%rdx),%xmm0
  movsd  0x18(%r15),%xmm2
  mulsd  0x20(%rdx),%xmm2
  addsd  %xmm2,%xmm0
  movsd  0x30(%r15),%xmm2
  mulsd  0x28(%rdx),%xmm2
  addsd  %xmm2,%xmm0
  movsd  %xmm0,0x18(%rax)
  movsd  0x8(%r15),%xmm3
  mulsd  0x18(%rdx),%xmm3
  movsd  0x20(%r15),%xmm2
  mulsd  0x20(%rdx),%xmm2
  addsd  %xmm2,%xmm3
  movsd  0x38(%r15),%xmm2
  mulsd  0x28(%rdx),%xmm2
  addsd  %xmm2,%xmm3
  movsd  %xmm3,0x20(%rax)
  movsd  0x10(%r15),%xmm2
  mulsd  0x18(%rdx),%xmm2
  movsd  0x28(%r15),%xmm6
  mulsd  0x20(%rdx),%xmm6
  addsd  %xmm6,%xmm2
  movsd  0x40(%r15),%xmm6
  mulsd  0x28(%rdx),%xmm6
  addsd  %xmm6,%xmm2
  movsd  %xmm2,0x28(%rax)
  mulsd  %xmm1,%xmm0
  mulsd  %xmm3,%xmm5
  addsd  %xmm5,%xmm0
  mulsd  %xmm2,%xmm4
  addsd  %xmm4,%xmm0
  movsd  %xmm0,(%r12)
  mulsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  movsd  0x18(%rax),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rax)
  movsd  (%r12),%xmm1
  mulsd  0x8(%rax),%xmm1
  movsd  0x20(%rax),%xmm2
  subsd  %xmm1,%xmm2
  movsd  %xmm2,0x20(%rax)
  movsd  (%r12),%xmm3
  mulsd  0x10(%rax),%xmm3
  movsd  0x28(%rax),%xmm1
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x28(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L136
  sqrtsd %xmm0,%xmm0
L224:
  movsd  %xmm0,(%r12)
  mov    0x8(%rsp),%rax
  movsd  0x18(%rax),%xmm3
  divsd  %xmm0,%xmm3
  movsd  %xmm3,0x18(%rax)
  movsd  0x20(%rax),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x20(%rax)
  movsd  0x28(%rax),%xmm4
  divsd  (%r12),%xmm4
  movsd  %xmm4,0x28(%rax)
  movsd  0x8(%rax),%xmm5
  movsd  0x10(%rax),%xmm2
  movapd %xmm4,%xmm0
  mulsd  %xmm5,%xmm0
  movapd %xmm1,%xmm6
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,0x30(%rax)
  movsd  (%rax),%xmm6
  mulsd  %xmm3,%xmm2
  mulsd  %xmm6,%xmm4
  subsd  %xmm4,%xmm2
  movsd  %xmm2,0x38(%rax)
  mulsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm3
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x40(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L214
  sqrtsd %xmm0,%xmm0
L541:
  movsd  %xmm0,(%r12)
  mov    0x8(%rsp),%rax
  movsd  0x30(%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x30(%rax)
  movsd  0x38(%rax),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x38(%rax)
  movsd  0x40(%rax),%xmm5
  divsd  (%r12),%xmm5
L447:
  mov    0x8(%rsp),%rax
  movsd  %xmm5,0x40(%rax)
  mov    (%rsp),%rdx
  movsd  (%rdx),%xmm1
  movsd  0x8(%rdx),%xmm4
  movsd  0x10(%rdx),%xmm3
  movsd  (%rax),%xmm8
  movsd  0x8(%rax),%xmm7
  movsd  0x10(%rax),%xmm6
  movapd %xmm1,%xmm0
  mulsd  (%r15),%xmm0
  movapd %xmm4,%xmm2
  mulsd  0x18(%r15),%xmm2
  addsd  %xmm2,%xmm0
  movapd %xmm3,%xmm2
  mulsd  0x30(%r15),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm8,%xmm0
  movapd %xmm1,%xmm2
  mulsd  0x8(%r15),%xmm2
  movapd %xmm4,%xmm9
  mulsd  0x20(%r15),%xmm9
  addsd  %xmm9,%xmm2
  movapd %xmm3,%xmm9
  mulsd  0x38(%r15),%xmm9
  addsd  %xmm9,%xmm2
  mulsd  %xmm7,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%r15),%xmm1
  mulsd  0x28(%r15),%xmm4
  addsd  %xmm4,%xmm1
  mulsd  0x40(%r15),%xmm3
  addsd  %xmm3,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  ja     L699
  mov    $0x0,%eax
L388:
  mov    (%rsp),%rdx
  movsd  0x18(%rdx),%xmm1
  movsd  0x20(%rdx),%xmm4
  movsd  0x28(%rdx),%xmm3
  mov    0x8(%rsp),%rdi
  movsd  0x18(%rdi),%xmm8
  movsd  0x20(%rdi),%xmm7
  movsd  0x28(%rdi),%xmm6
  movapd %xmm1,%xmm0
  mulsd  (%r15),%xmm0
  movapd %xmm4,%xmm2
  mulsd  0x18(%r15),%xmm2
  addsd  %xmm2,%xmm0
  movapd %xmm3,%xmm2
  mulsd  0x30(%r15),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm8,%xmm0
  movapd %xmm1,%xmm2
  mulsd  0x8(%r15),%xmm2
  movapd %xmm4,%xmm9
  mulsd  0x20(%r15),%xmm9
  addsd  %xmm9,%xmm2
  movapd %xmm3,%xmm9
  mulsd  0x38(%r15),%xmm9
  addsd  %xmm9,%xmm2
  mulsd  %xmm7,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%r15),%xmm1
  mulsd  0x28(%r15),%xmm4
  addsd  %xmm4,%xmm1
  mulsd  0x40(%r15),%xmm3
  addsd  %xmm3,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  ja     L580
  mov    (%rsp),%rdi
  movsd  0x30(%rdi),%xmm2
  movsd  0x38(%rdi),%xmm6
  movsd  0x40(%rdi),%xmm4
  mov    0x8(%rsp),%rsi
  movsd  0x30(%rsi),%xmm3
  movsd  0x38(%rsi),%xmm7
  movapd %xmm2,%xmm0
  mulsd  (%r15),%xmm0
  movapd %xmm6,%xmm1
  mulsd  0x18(%r15),%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm4,%xmm1
  mulsd  0x30(%r15),%xmm1
  addsd  %xmm1,%xmm0
  mulsd  %xmm3,%xmm0
  movapd %xmm2,%xmm1
  mulsd  0x8(%r15),%xmm1
  movapd %xmm6,%xmm8
  mulsd  0x20(%r15),%xmm8
  addsd  %xmm8,%xmm1
  movapd %xmm4,%xmm8
  mulsd  0x38(%r15),%xmm8
  addsd  %xmm8,%xmm1
  mulsd  %xmm7,%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm2,%xmm1
  mulsd  0x10(%r15),%xmm1
  mulsd  0x28(%r15),%xmm6
  addsd  %xmm6,%xmm1
  mulsd  0x40(%r15),%xmm4
  addsd  %xmm4,%xmm1
  mulsd  %xmm5,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  ja     L146
  test   %eax,%eax
  jne    L212
  mov    0x8(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    (%rsp),%rcx
  mulsd  (%rcx),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x18(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  mulsd  %xmm3,%xmm2
  addsd  %xmm2,%xmm0
  mov    0x18(%rsp),%rdi
  movsd  %xmm0,(%rdi)
  movsd  0x8(%rax),%xmm0
  mulsd  (%rcx),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x18(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x30(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%rdi)
  movsd  0x10(%rax),%xmm0
  mulsd  (%rcx),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x18(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x30(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rdi)
  movsd  (%rax),%xmm0
  mulsd  0x8(%rcx),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x20(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x38(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rdi)
  movsd  0x8(%rax),%xmm0
  mulsd  0x8(%rcx),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x20(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x38(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x20(%rdi)
  movsd  0x10(%rax),%xmm0
  mulsd  0x8(%rcx),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x20(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x38(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%rdi)
  movsd  (%rax),%xmm0
  mulsd  0x10(%rcx),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x28(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x40(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x30(%rdi)
  movsd  0x8(%rax),%xmm0
  mulsd  0x10(%rcx),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x28(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x40(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%rdi)
  movsd  0x10(%rax),%xmm0
  mulsd  0x10(%rcx),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x28(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x40(%rcx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x40(%rdi)
  jmp    L634
L152:
  call   <sqrt@plt>
  jmp    L612
L329:
  call   <sqrt@plt>
  jmp    L124
L689:
  call   <sqrt@plt>
  jmp    L74
L136:
  call   <sqrt@plt>
  jmp    L224
L214:
  call   <sqrt@plt>
  jmp    L541
L409:
  movapd %xmm1,%xmm3
  mulsd  D232(%rip),%xmm3
  mulsd  %xmm3,%xmm0
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  addsd  %xmm4,%xmm0
  movsd  0x10(%rsp),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,0x0(%r13)
  mov    $0x32,%eax
  movsd  D174(%rip),%xmm6
  movq   D276(%rip),%xmm5
  movsd  D176(%rip),%xmm4
L523:
  movsd  0x0(%r13),%xmm2
  movsd  %xmm2,0x30(%r12)
  movsd  (%r12),%xmm0
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm1
  movapd %xmm2,%xmm3
  addsd  %xmm2,%xmm3
  mulsd  %xmm2,%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm3,%xmm1
  addsd  0x10(%r12),%xmm1
  addsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm0
  movapd %xmm2,%xmm3
  mulsd  %xmm6,%xmm3
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  addsd  0x8(%r12),%xmm0
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x0(%r13)
  movapd %xmm1,%xmm0
  subsd  0x30(%r12),%xmm0
  andpd  %xmm5,%xmm0
  movapd %xmm1,%xmm2
  mulsd  %xmm4,%xmm2
  comisd %xmm0,%xmm2
  ja     L168
  sub    $0x1,%eax
  jne    L523
L168:
  movsd  (%r12),%xmm7
  movsd  %xmm7,0x10(%rsp)
  movapd %xmm7,%xmm0
  addsd  %xmm7,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm1,%xmm2
  mulsd  D174(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm7,%xmm1
  mulsd  %xmm7,%xmm1
  addsd  %xmm1,%xmm0
  movsd  D184(%rip),%xmm1
  mulsd  0x8(%r12),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%r12)
  comisd D109(%rip),%xmm0
  ja     L471
  movsd  0x10(%rsp),%xmm0
  subsd  0x0(%r13),%xmm0
  mulsd  D74(%rip),%xmm0
  movsd  %xmm0,0x8(%r13)
L318:
  movsd  %xmm0,0x10(%r13)
  movsd  D241(%rip),%xmm1
  mulsd  0x18(%r12),%xmm1
  movsd  0x0(%r13),%xmm2
  comisd %xmm1,%xmm2
  ja     L710
  movsd  (%r12),%xmm2
  movsd  0x8(%r13),%xmm4
  movapd %xmm2,%xmm1
  mulsd  %xmm4,%xmm1
  mulsd  %xmm4,%xmm1
  movapd %xmm4,%xmm3
  addsd  %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  subsd  %xmm3,%xmm1
  addsd  0x10(%r12),%xmm1
  addsd  %xmm2,%xmm2
  mulsd  %xmm4,%xmm2
  movsd  D174(%rip),%xmm3
  movapd %xmm4,%xmm5
  mulsd  %xmm3,%xmm5
  mulsd  %xmm5,%xmm4
  subsd  %xmm4,%xmm2
  addsd  0x8(%r12),%xmm2
  divsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  (%r12),%xmm2
  movapd %xmm1,%xmm4
  mulsd  %xmm2,%xmm4
  mulsd  %xmm1,%xmm4
  movapd %xmm1,%xmm5
  addsd  %xmm1,%xmm5
  mulsd  %xmm1,%xmm5
  mulsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm4
  addsd  0x10(%r12),%xmm4
  addsd  %xmm2,%xmm2
  mulsd  %xmm1,%xmm2
  movapd %xmm1,%xmm5
  mulsd  %xmm3,%xmm5
  mulsd  %xmm5,%xmm1
  subsd  %xmm1,%xmm2
  addsd  0x8(%r12),%xmm2
  divsd  %xmm2,%xmm4
  movsd  %xmm4,0x8(%r13)
  movsd  (%r12),%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movapd %xmm0,%xmm4
  addsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  subsd  %xmm4,%xmm1
  addsd  0x10(%r12),%xmm1
  addsd  %xmm2,%xmm2
  mulsd  %xmm0,%xmm2
  movapd %xmm0,%xmm4
  mulsd  %xmm3,%xmm4
  mulsd  %xmm4,%xmm0
  subsd  %xmm0,%xmm2
  addsd  0x8(%r12),%xmm2
  movapd %xmm1,%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,0x10(%r13)
  movsd  (%r12),%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  mulsd  %xmm0,%xmm2
  movapd %xmm0,%xmm4
  addsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm4
  subsd  %xmm4,%xmm2
  addsd  0x10(%r12),%xmm2
  addsd  %xmm1,%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm0,%xmm3
  subsd  %xmm3,%xmm1
  addsd  0x8(%r12),%xmm1
  divsd  %xmm1,%xmm2
  movsd  %xmm2,0x10(%r13)
  mov    %r13,0x10(%rsp)
  mov    (%rsp),%rsi
  mov    %rsi,%rax
  add    $0x30,%rsi
  mov    %rsi,0x20(%rsp)
  mov    %r15,0x28(%rsp)
  mov    %rax,%r15
  jmp    L348
L471:
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L269
  sqrtsd %xmm0,%xmm0
L338:
  movsd  %xmm0,0x18(%r12)
  movsd  0x0(%r13),%xmm3
  movsd  0x10(%rsp),%xmm1
  subsd  %xmm3,%xmm1
  addsd  %xmm0,%xmm1
  movsd  D74(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  (%r12),%xmm0
  subsd  %xmm3,%xmm0
  subsd  0x18(%r12),%xmm0
  mulsd  %xmm2,%xmm0
  jmp    L318
L269:
  call   <sqrt@plt>
  jmp    L338
L710:
  sub    $0x8,%rsp
  push   %r12
  push   %rbx
  push   %r14
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r8
  mov    %rbp,%rcx
  mov    %r13,%rdx
  mov    %r15,%rsi
  mov    0x38(%rsp),%rdi
  mov    $0x0,%eax
  call   <rotMatrixCCOVsubrtnII@plt>
  add    $0x20,%rsp
  jmp    L634
L490:
  movsd  0x10(%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x20(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x28(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
L178:
  mov    %r15,%r13
  movsd  (%r15),%xmm0
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r15)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r15)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r15)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r15)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r15)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r15)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r15),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r15),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm0
  mulsd  0x0(%rbp),%xmm0
  movsd  0x18(%rbx),%xmm1
  mulsd  0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x20(%rbx),%xmm1
  mulsd  0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x10(%rbx),%xmm0
  mulsd  0x0(%rbp),%xmm0
  movsd  0x20(%rbx),%xmm1
  mulsd  0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x28(%rbx),%xmm1
  mulsd  0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%r15)
  mov    $0x3,%eax
L633:
  movsd  0x0(%r13),%xmm1
  andpd  D276(%rip),%xmm1
  movsd  0x8(%r13),%xmm0
  andpd  D276(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x10(%r13),%xmm0
  andpd  D276(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,(%r12)
  movsd  0x0(%r13),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  0x8(%r13),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  0x10(%r13),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x10(%r13)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r13),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r13),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  0x8(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x18(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r13)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm2
  mulsd  0x8(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x28(%rbx),%xmm2
  mulsd  0x10(%rbp),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%r13)
  movsd  %xmm0,0x0(%rbp)
  movsd  0x8(%r13),%xmm2
  movsd  %xmm2,0x8(%rbp)
  movsd  0x10(%r13),%xmm1
  movsd  %xmm1,0x10(%rbp)
  mulsd  (%rbx),%xmm0
  mulsd  0x8(%rbx),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%rbx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x0(%r13)
  movsd  0x8(%rbx),%xmm2
  mulsd  0x0(%rbp),%xmm2
  movsd  0x18(%rbx),%xmm1
  mulsd  0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm2
  movsd  0x20(%rbx),%xmm1
  mulsd  0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm2
  movsd  %xmm2,0x8(%r13)
  movsd  0x10(%rbx),%xmm1
  mulsd  0x0(%rbp),%xmm1
  movsd  0x20(%rbx),%xmm3
  mulsd  0x8(%rbp),%xmm3
  addsd  %xmm3,%xmm1
  movsd  0x28(%rbx),%xmm3
  mulsd  0x10(%rbp),%xmm3
  addsd  %xmm3,%xmm1
  movsd  %xmm1,0x10(%r13)
  sub    $0x1,%eax
  jne    L633
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm7,%xmm7
  ucomisd %xmm0,%xmm7
  ja     L726
  sqrtsd %xmm0,%xmm0
L745:
  movsd  %xmm0,(%r12)
  movsd  0x0(%r13),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x0(%r13)
  movsd  0x8(%r13),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x8(%r13)
  movsd  0x10(%r13),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x10(%r13)
  addq   $0x8,0x10(%rsp)
  add    $0x18,%r15
  cmp    0x20(%rsp),%r15
  je     L255
L348:
  movsd  0x10(%r14),%xmm3
  movsd  0x8(%r14),%xmm4
  mov    0x10(%rsp),%rax
  movsd  (%rax),%xmm1
  movsd  0x20(%r14),%xmm2
  movapd %xmm3,%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm0
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm2
  subsd  %xmm2,%xmm0
  movsd  %xmm0,(%rbx)
  movsd  0x18(%r14),%xmm1
  movsd  0x20(%r14),%xmm2
  mulsd  0x28(%r14),%xmm2
  movapd %xmm1,%xmm3
  mulsd  0x10(%r14),%xmm3
  subsd  %xmm3,%xmm2
  mulsd  (%rax),%xmm1
  movapd %xmm2,%xmm4
  addsd  %xmm1,%xmm4
  movsd  %xmm4,0x8(%rbx)
  movsd  0x28(%r14),%xmm2
  movsd  0x18(%r14),%xmm1
  mulsd  0x20(%r14),%xmm1
  movapd %xmm2,%xmm3
  mulsd  0x8(%r14),%xmm3
  subsd  %xmm3,%xmm1
  mulsd  (%rax),%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%rbx)
  movsd  0x10(%r14),%xmm6
  movsd  (%r14),%xmm7
  movsd  (%rax),%xmm3
  movsd  0x28(%r14),%xmm5
  movapd %xmm6,%xmm2
  mulsd  %xmm7,%xmm2
  mulsd  %xmm3,%xmm7
  subsd  %xmm7,%xmm2
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm2
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm2
  mulsd  %xmm5,%xmm5
  subsd  %xmm5,%xmm2
  movsd  %xmm2,0x18(%rbx)
  movsd  0x20(%r14),%xmm2
  movapd %xmm2,%xmm3
  mulsd  (%r14),%xmm3
  mulsd  (%rax),%xmm2
  subsd  %xmm3,%xmm2
  movsd  0x18(%r14),%xmm3
  mulsd  0x28(%r14),%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,0x20(%rbx)
  movsd  0x8(%r14),%xmm6
  movsd  (%r14),%xmm7
  movsd  (%rax),%xmm3
  movsd  0x18(%r14),%xmm5
  movapd %xmm6,%xmm2
  mulsd  %xmm7,%xmm2
  mulsd  %xmm3,%xmm7
  subsd  %xmm7,%xmm2
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm2
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm2
  mulsd  %xmm5,%xmm5
  subsd  %xmm5,%xmm2
  movsd  %xmm2,0x28(%rbx)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm4,%xmm4
  addsd  %xmm4,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r12)
  movsd  0x8(%rbx),%xmm1
  movsd  0x18(%rbx),%xmm3
  movsd  0x20(%rbx),%xmm2
  mulsd  %xmm1,%xmm1
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm1
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,0x8(%r12)
  movsd  0x10(%rbx),%xmm2
  movsd  0x20(%rbx),%xmm4
  movsd  0x28(%rbx),%xmm3
  mulsd  %xmm2,%xmm2
  mulsd  %xmm4,%xmm4
  addsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,0x10(%r12)
  comisd %xmm1,%xmm0
  jbe    L660
  comisd %xmm2,%xmm0
  jbe    L490
  movsd  (%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x8(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x10(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
  jmp    L178
L660:
  comisd %xmm2,%xmm1
  jbe    L509
  movsd  0x8(%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x18(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x20(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
  jmp    L178
L509:
  movsd  0x10(%rbx),%xmm0
  movsd  %xmm0,(%r15)
  movsd  0x20(%rbx),%xmm0
  movsd  %xmm0,0x8(%r15)
  movsd  0x28(%rbx),%xmm0
  movsd  %xmm0,0x10(%r15)
  jmp    L178
L726:
  call   <sqrt@plt>
  jmp    L745
L255:
  mov    0x28(%rsp),%r15
  mov    (%rsp),%rax
  movsd  (%rax),%xmm0
  mulsd  0x18(%rax),%xmm0
  movsd  0x8(%rax),%xmm1
  mulsd  0x20(%rax),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x10(%rax),%xmm1
  mulsd  0x28(%rax),%xmm1
  addsd  %xmm0,%xmm1
  movsd  %xmm1,(%r12)
  mulsd  (%rax),%xmm1
  movsd  0x18(%rax),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rax)
  movsd  (%r12),%xmm1
  mulsd  0x8(%rax),%xmm1
  movsd  0x20(%rax),%xmm2
  subsd  %xmm1,%xmm2
  movsd  %xmm2,0x20(%rax)
  movsd  (%r12),%xmm3
  mulsd  0x10(%rax),%xmm3
  movsd  0x28(%rax),%xmm1
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x28(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L80
  sqrtsd %xmm0,%xmm0
L587:
  movsd  %xmm0,(%r12)
  mov    (%rsp),%rax
  movsd  0x18(%rax),%xmm3
  divsd  %xmm0,%xmm3
  movsd  %xmm3,0x18(%rax)
  movsd  0x20(%rax),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x20(%rax)
  movsd  0x28(%rax),%xmm4
  divsd  (%r12),%xmm4
  movsd  %xmm4,0x28(%rax)
  movsd  0x8(%rax),%xmm5
  movsd  0x10(%rax),%xmm2
  movapd %xmm4,%xmm0
  mulsd  %xmm5,%xmm0
  movapd %xmm1,%xmm6
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,0x30(%rax)
  movsd  (%rax),%xmm6
  mulsd  %xmm3,%xmm2
  mulsd  %xmm6,%xmm4
  subsd  %xmm4,%xmm2
  movsd  %xmm2,0x38(%rax)
  mulsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm3
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x40(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L367
  sqrtsd %xmm0,%xmm0
L330:
  movsd  %xmm0,(%r12)
  mov    (%rsp),%rax
  movsd  0x30(%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x30(%rax)
  movsd  0x38(%rax),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x38(%rax)
  movsd  0x40(%rax),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x40(%rax)
  movsd  (%r15),%xmm0
  mulsd  (%rax),%xmm0
  movsd  0x18(%r15),%xmm1
  mulsd  0x8(%rax),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%r15),%xmm1
  mulsd  0x10(%rax),%xmm1
  addsd  %xmm1,%xmm0
  mov    0x8(%rsp),%rdx
  movsd  %xmm0,(%rdx)
  movsd  0x8(%r15),%xmm2
  mulsd  (%rax),%xmm2
  movsd  0x20(%r15),%xmm1
  mulsd  0x8(%rax),%xmm1
  addsd  %xmm1,%xmm2
  movsd  0x38(%r15),%xmm1
  mulsd  0x10(%rax),%xmm1
  addsd  %xmm1,%xmm2
  movsd  %xmm2,0x8(%rdx)
  movsd  0x10(%r15),%xmm1
  mulsd  (%rax),%xmm1
  movsd  0x28(%r15),%xmm3
  mulsd  0x8(%rax),%xmm3
  addsd  %xmm3,%xmm1
  movsd  0x40(%r15),%xmm3
  mulsd  0x10(%rax),%xmm3
  addsd  %xmm3,%xmm1
  movsd  %xmm1,0x10(%rdx)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L217
  sqrtsd %xmm0,%xmm0
L337:
  movsd  %xmm0,(%r12)
  mov    0x8(%rsp),%rax
  movsd  (%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  movsd  0x8(%rax),%xmm5
  divsd  (%r12),%xmm5
  movsd  %xmm5,0x8(%rax)
  movsd  0x10(%rax),%xmm4
  divsd  (%r12),%xmm4
  movsd  %xmm4,0x10(%rax)
  movsd  (%r15),%xmm0
  mov    (%rsp),%rdi
  mulsd  0x18(%rdi),%xmm0
  movsd  0x18(%r15),%xmm2
  mulsd  0x20(%rdi),%xmm2
  addsd  %xmm2,%xmm0
  movsd  0x30(%r15),%xmm2
  mulsd  0x28(%rdi),%xmm2
  addsd  %xmm2,%xmm0
  movsd  %xmm0,0x18(%rax)
  movsd  0x8(%r15),%xmm3
  mulsd  0x18(%rdi),%xmm3
  movsd  0x20(%r15),%xmm2
  mulsd  0x20(%rdi),%xmm2
  addsd  %xmm2,%xmm3
  movsd  0x38(%r15),%xmm2
  mulsd  0x28(%rdi),%xmm2
  addsd  %xmm2,%xmm3
  movsd  %xmm3,0x20(%rax)
  movsd  0x10(%r15),%xmm2
  mulsd  0x18(%rdi),%xmm2
  movsd  0x28(%r15),%xmm6
  mulsd  0x20(%rdi),%xmm6
  addsd  %xmm6,%xmm2
  movsd  0x40(%r15),%xmm6
  mulsd  0x28(%rdi),%xmm6
  addsd  %xmm6,%xmm2
  movsd  %xmm2,0x28(%rax)
  mulsd  %xmm1,%xmm0
  mulsd  %xmm3,%xmm5
  addsd  %xmm5,%xmm0
  mulsd  %xmm2,%xmm4
  addsd  %xmm4,%xmm0
  movsd  %xmm0,(%r12)
  mulsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  movsd  0x18(%rax),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rax)
  movsd  (%r12),%xmm1
  mulsd  0x8(%rax),%xmm1
  movsd  0x20(%rax),%xmm2
  subsd  %xmm1,%xmm2
  movsd  %xmm2,0x20(%rax)
  movsd  (%r12),%xmm3
  mulsd  0x10(%rax),%xmm3
  movsd  0x28(%rax),%xmm1
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x28(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L93
  sqrtsd %xmm0,%xmm0
L727:
  movsd  %xmm0,(%r12)
  mov    0x8(%rsp),%rax
  movsd  0x18(%rax),%xmm3
  divsd  %xmm0,%xmm3
  movsd  %xmm3,0x18(%rax)
  movsd  0x20(%rax),%xmm1
  divsd  (%r12),%xmm1
  movsd  %xmm1,0x20(%rax)
  movsd  0x28(%rax),%xmm4
  divsd  (%r12),%xmm4
  movsd  %xmm4,0x28(%rax)
  movsd  0x8(%rax),%xmm5
  movsd  0x10(%rax),%xmm2
  movapd %xmm4,%xmm0
  mulsd  %xmm5,%xmm0
  movapd %xmm1,%xmm6
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,0x30(%rax)
  movsd  (%rax),%xmm6
  mulsd  %xmm3,%xmm2
  mulsd  %xmm6,%xmm4
  subsd  %xmm4,%xmm2
  movsd  %xmm2,0x38(%rax)
  mulsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm3
  subsd  %xmm3,%xmm1
  movsd  %xmm1,0x40(%rax)
  mulsd  %xmm0,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L576
  sqrtsd %xmm0,%xmm0
L496:
  movsd  %xmm0,(%r12)
  mov    0x8(%rsp),%rax
  movsd  0x30(%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,0x30(%rax)
  movsd  0x38(%rax),%xmm0
  divsd  (%r12),%xmm0
  movsd  %xmm0,0x38(%rax)
  movsd  0x40(%rax),%xmm5
  divsd  (%r12),%xmm5
  jmp    L447
L80:
  call   <sqrt@plt>
  jmp    L587
L367:
  call   <sqrt@plt>
  jmp    L330
L217:
  call   <sqrt@plt>
  jmp    L337
L93:
  call   <sqrt@plt>
  jmp    L727
L576:
  call   <sqrt@plt>
  jmp    L496
L699:
  movq   D96(%rip),%xmm0
  xorpd  %xmm0,%xmm8
  movsd  %xmm8,(%rax)
  xorpd  %xmm0,%xmm7
  movsd  %xmm7,0x8(%rax)
  xorpd  %xmm0,%xmm6
  movsd  %xmm6,0x10(%rax)
  mov    $0x1,%eax
  jmp    L388
L580:
  add    $0x1,%eax
  movq   D96(%rip),%xmm0
  xorpd  %xmm0,%xmm8
  movsd  %xmm8,0x18(%rdi)
  xorpd  %xmm0,%xmm7
  movsd  %xmm7,0x20(%rdi)
  xorpd  %xmm0,%xmm6
  movsd  %xmm6,0x28(%rdi)
  movsd  0x30(%rdx),%xmm1
  movsd  0x38(%rdx),%xmm6
  movsd  0x40(%rdx),%xmm4
  movsd  0x30(%rdi),%xmm3
  movsd  0x38(%rdi),%xmm7
  movapd %xmm1,%xmm0
  mulsd  (%r15),%xmm0
  movapd %xmm6,%xmm2
  mulsd  0x18(%r15),%xmm2
  addsd  %xmm2,%xmm0
  movapd %xmm4,%xmm2
  mulsd  0x30(%r15),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm3,%xmm0
  movapd %xmm1,%xmm2
  mulsd  0x8(%r15),%xmm2
  movapd %xmm6,%xmm8
  mulsd  0x20(%r15),%xmm8
  addsd  %xmm8,%xmm2
  movapd %xmm4,%xmm8
  mulsd  0x38(%r15),%xmm8
  addsd  %xmm8,%xmm2
  mulsd  %xmm7,%xmm2
  addsd  %xmm2,%xmm0
  mulsd  0x10(%r15),%xmm1
  mulsd  0x28(%r15),%xmm6
  addsd  %xmm6,%xmm1
  mulsd  0x40(%r15),%xmm4
  addsd  %xmm4,%xmm1
  mulsd  %xmm5,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  jbe    L212
L146:
  add    $0x1,%eax
  movq   D96(%rip),%xmm0
  xorpd  %xmm0,%xmm3
  mov    0x8(%rsp),%rdi
  movsd  %xmm3,0x30(%rdi)
  xorpd  %xmm0,%xmm7
  movsd  %xmm7,0x38(%rdi)
  xorpd  %xmm0,%xmm5
  movsd  %xmm5,0x40(%rdi)
L212:
  cmp    $0x2,%eax
  je     L150
  mov    0x8(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    (%rsp),%rsi
  mulsd  (%rsi),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x18(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  mov    0x18(%rsp),%rcx
  movsd  %xmm0,(%rcx)
  movsd  0x8(%rax),%xmm0
  mulsd  (%rsi),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x18(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%rcx)
  movsd  0x10(%rax),%xmm0
  mulsd  (%rsi),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x18(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x30(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rcx)
  movsd  (%rax),%xmm0
  mulsd  0x8(%rsi),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x20(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rcx)
  movsd  0x8(%rax),%xmm0
  mulsd  0x8(%rsi),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x20(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x20(%rcx)
  movsd  0x10(%rax),%xmm0
  mulsd  0x8(%rsi),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x20(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x38(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%rcx)
  movsd  (%rax),%xmm0
  mulsd  0x10(%rsi),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x28(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x30(%rcx)
  movsd  0x8(%rax),%xmm0
  mulsd  0x10(%rsi),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x28(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%rcx)
  movsd  0x10(%rax),%xmm0
  mulsd  0x10(%rsi),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x28(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x40(%rsi),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,0x40(%rcx)
  jmp    L634
L150:
  mov    0x8(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    (%rsp),%rsi
  mulsd  (%rsi),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x18(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x30(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  mov    0x18(%rsp),%rcx
  movsd  %xmm0,(%rcx)
  movsd  0x8(%rax),%xmm0
  mulsd  (%rsi),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x18(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x30(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%rcx)
  movsd  0x10(%rax),%xmm0
  mulsd  (%rsi),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x18(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x30(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rcx)
  movsd  (%rax),%xmm0
  mulsd  0x8(%rsi),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x20(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x38(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%rcx)
  movsd  0x8(%rax),%xmm0
  mulsd  0x8(%rsi),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x20(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x38(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x20(%rcx)
  movsd  0x10(%rax),%xmm0
  mulsd  0x8(%rsi),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x20(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x38(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%rcx)
  movsd  (%rax),%xmm0
  mulsd  0x10(%rsi),%xmm0
  movsd  0x18(%rax),%xmm1
  mulsd  0x28(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x30(%rax),%xmm1
  mulsd  0x40(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x30(%rcx)
  movsd  0x8(%rax),%xmm0
  mulsd  0x10(%rsi),%xmm0
  movsd  0x20(%rax),%xmm1
  mulsd  0x28(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x38(%rax),%xmm1
  mulsd  0x40(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%rcx)
  movsd  0x10(%rax),%xmm0
  mulsd  0x10(%rsi),%xmm0
  movsd  0x28(%rax),%xmm1
  mulsd  0x28(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x40(%rax),%xmm1
  mulsd  0x40(%rsi),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x40(%rcx)
  jmp    L634
```

tool_calls: name: disassemble_data
arguments: data_label: D260
data_type: f32[2]
name: disassemble_data
arguments: data_label: D174
data_type: f64
name: disassemble_data
arguments: data_label: D41
data_type: byte[8]
name: disassemble_data
arguments: data_label: D318
data_type: f64
name: disassemble_data
arguments: data_label: D109
data_type: f32[4]
name: disassemble_data
arguments: data_label: D276
data_type: qword[2]
name: disassemble_data
arguments: data_label: D176
data_type: byte[8]
name: disassemble_data
arguments: data_label: D184
data_type: f64
name: disassemble_data
arguments: data_label: D74
data_type: f32[2]
name: disassemble_data
arguments: data_label: D241
data_type: f64
name: disassemble_data
arguments: data_label: D232
data_type: f64
name: disassemble_data
arguments: data_label: D96
data_type: f32[2]

tool: {"D260": [0.0,-2.0]}

tool: D174: 3

tool: {"D41": [0xa0,0xc2,0xeb,0xfe,0x4b,0x48,0xb4,0x39]}

tool: D318: 10000

tool: {"D109": [0.0,0.0,0.0,-0.0]}

tool: {"D276": [0x7fffffffffffffff,0x0000000000000000]}

tool: {"D176": [0xbc,0x89,0xd8,0x97,0xb2,0xd2,0x9c,0x3c]}

tool: D184: 4

tool: {"D74": [0.0,1.75]}

tool: D241: 1000

tool: D232: 0.6666666666666667

tool: {"D96": [0.0,-0.0]}

assistant: ```c
void rotMatrixCCOVsubrtn(double *rotationMatrix, double *Spx, double *SIGMA, double *MM, double *U, double *V, double *SpxTSpx, double *invmat, double *doubleVars) {
  unsigned int i, j, threei;
  SpxTSpx[0] = Spx[0] * Spx[0] + Spx[1] * Spx[1] + Spx[2] * Spx[2];
  SpxTSpx[1] = Spx[3] * Spx[3] + Spx[4] * Spx[4] + Spx[5] * Spx[5];
  SpxTSpx[2] = Spx[6] * Spx[6] + Spx[7] * Spx[7] + Spx[8] * Spx[8];
  SpxTSpx[3] = Spx[0] * Spx[3] + Spx[1] * Spx[4] + Spx[5] * Spx[2];
  SpxTSpx[4] = Spx[3] * Spx[6] + Spx[4] * Spx[7] + Spx[5] * Spx[8];
  SpxTSpx[5] = Spx[0] * Spx[6] + Spx[1] * Spx[7] + Spx[2] * Spx[8];
  doubleVars[0] = SpxTSpx[2] + SpxTSpx[1] + SpxTSpx[0];
  doubleVars[1] = SpxTSpx[5] * SpxTSpx[5] + SpxTSpx[4] * SpxTSpx[4] - SpxTSpx[2] * SpxTSpx[1] - SpxTSpx[2] * SpxTSpx[0] + SpxTSpx[3] * SpxTSpx[3] - SpxTSpx[1] * SpxTSpx[0];
  doubleVars[2] = -2 * SpxTSpx[5] * SpxTSpx[3] * SpxTSpx[4] + SpxTSpx[5] * SpxTSpx[5] * SpxTSpx[1] + SpxTSpx[4] * SpxTSpx[4] * SpxTSpx[0] + SpxTSpx[2] * SpxTSpx[3] * SpxTSpx[3] - SpxTSpx[2] * SpxTSpx[1] * SpxTSpx[0];
  doubleVars[3] = doubleVars[0] * doubleVars[0] + 3 * doubleVars[1];
  if (doubleVars[3] < 1.0e-30) {
    rotMatrixCCOVsubrtnII(rotationMatrix, Spx, SIGMA, MM, U, V, SpxTSpx, invmat, doubleVars);
    return;
  } else {
    doubleVars[3] = sqrt(doubleVars[3]);
    if (1.0e4 * doubleVars[3] < doubleVars[0]) {
      rotMatrixCCOVsubrtnII(rotationMatrix, Spx, SIGMA, MM, U, V, SpxTSpx, invmat, doubleVars);
      return;
    } else {
      doubleVars[4] = (doubleVars[0] - doubleVars[3]) / 3.0;
      doubleVars[5] = (doubleVars[0] + doubleVars[3]) / 3.0;
      doubleVars[6] = doubleVars[4] * doubleVars[4] * doubleVars[4] - doubleVars[4] * doubleVars[4] * doubleVars[0] - doubleVars[4] * doubleVars[1] + doubleVars[2];
      doubleVars[7] = doubleVars[5] * doubleVars[5] * doubleVars[5] - doubleVars[5] * doubleVars[5] * doubleVars[0] - doubleVars[5] * doubleVars[1] + doubleVars[2];
      if ((doubleVars[6] + doubleVars[7]) > 0.0) {
        SIGMA[2] = doubleVars[2] / doubleVars[1];
        for (i = 0; i < 50; i++) {
          doubleVars[6] = SIGMA[2];
          SIGMA[2] = (doubleVars[0] * SIGMA[2] * SIGMA[2] - 2.0 * SIGMA[2] * SIGMA[2] * SIGMA[2] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[2] - 3.0 * SIGMA[2] * SIGMA[2] + doubleVars[1]);
          if (fabs(SIGMA[2] - doubleVars[6]) < SIGMA[2] * 1.0e-16) {
            break;
          }
        }
        doubleVars[3] = 2.0 * doubleVars[0] * SIGMA[2] - 3.0 * SIGMA[2] * SIGMA[2] + doubleVars[0] * doubleVars[0] + 4.0 * doubleVars[1];
        if (doubleVars[3] > 0.0) {
          doubleVars[3] = sqrt(doubleVars[3]);
          SIGMA[1] = (doubleVars[0] - SIGMA[2] - doubleVars[3]) / 2.0;
          SIGMA[0] = (doubleVars[0] - SIGMA[2] + doubleVars[3]) / 2.0;
        } else {
          SIGMA[1] = (doubleVars[0] - SIGMA[2]) / 2.0;
          SIGMA[0] = SIGMA[1];
        }
        if (1.0e3 * doubleVars[3] < SIGMA[0]) {
          rotMatrixCCOVsubrtnII(rotationMatrix, Spx, SIGMA, MM, U, V, SpxTSpx, invmat, doubleVars);
          return;
        }
        SIGMA[0] = (doubleVars[0] * SIGMA[0] * SIGMA[0] - 2.0 * SIGMA[0] * SIGMA[0] * SIGMA[0] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[0] - 3.0 * SIGMA[0] * SIGMA[0] + doubleVars[1]);
        SIGMA[0] = (doubleVars[0] * SIGMA[0] * SIGMA[0] - 2.0 * SIGMA[0] * SIGMA[0] * SIGMA[0] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[0] - 3.0 * SIGMA[0] * SIGMA[0] + doubleVars[1]);
        SIGMA[1] = (doubleVars[0] * SIGMA[1] * SIGMA[1] - 2.0 * SIGMA[1] * SIGMA[1] * SIGMA[1] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[1] - 3.0 * SIGMA[1] * SIGMA[1] + doubleVars[1]);
        SIGMA[1] = (doubleVars[0] * SIGMA[1] * SIGMA[1] - 2.0 * SIGMA[1] * SIGMA[1] * SIGMA[1] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[1] - 3.0 * SIGMA[1] * SIGMA[1] + doubleVars[1]);
        for (i = 2; i > 0; i--) {
          threei = 3 * i;
          invmat[0] = SpxTSpx[2] * SpxTSpx[1] - SpxTSpx[1] * SIGMA[i] - SIGMA[i] * SpxTSpx[2] + SIGMA[i] * SIGMA[i] - SpxTSpx[4] * SpxTSpx[4];
          invmat[1] = SpxTSpx[4] * SpxTSpx[5] - SpxTSpx[3] * SpxTSpx[2] + SpxTSpx[3] * SIGMA[i];
          invmat[2] = SpxTSpx[3] * SpxTSpx[4] - SpxTSpx[5] * SpxTSpx[1] + SpxTSpx[5] * SIGMA[i];
          invmat[3] = SpxTSpx[2] * SpxTSpx[0] - SpxTSpx[0] * SIGMA[i] - SIGMA[i] * SpxTSpx[2] + SIGMA[i] * SIGMA[i] - SpxTSpx[5] * SpxTSpx[5];
          invmat[4] = -SpxTSpx[4] * SpxTSpx[0] + SpxTSpx[4] * SIGMA[i] + SpxTSpx[3] * SpxTSpx[5];
          invmat[5] = SpxTSpx[1] * SpxTSpx[0] - SpxTSpx[0] * SIGMA[i] - SpxTSpx[1] * SIGMA[i] + SIGMA[i] * SIGMA[i] - SpxTSpx[3] * SpxTSpx[3];
          doubleVars[0] = invmat[0] * invmat[0] + invmat[1] * invmat[1] + invmat[2] * invmat[2];
          doubleVars[1] = invmat[1] * invmat[1] + invmat[3] * invmat[3] + invmat[4] * invmat[4];
          doubleVars[2] = invmat[2] * invmat[2] + invmat[4] * invmat[4] + invmat[5] * invmat[5];
          if (doubleVars[0] > doubleVars[1]) {
            if (doubleVars[0] > doubleVars[2]) {
              V[threei] = invmat[0];
              V[threei + 1] = invmat[1];
              V[threei + 2] = invmat[2];
            } else {
              V[threei] = invmat[2];
              V[threei + 1] = invmat[4];
              V[threei + 2] = invmat[5];
            }
          } else {
            if (doubleVars[1] > doubleVars[2]) {
              V[threei] = invmat[1];
              V[threei + 1] = invmat[3];
              V[threei + 2] = invmat[4];
            } else {
              V[threei] = invmat[2];
              V[threei + 1] = invmat[4];
              V[threei + 2] = invmat[5];
            }
          }
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          for (j = 0; j < 3; j++) {
            doubleVars[0] = fabs(V[threei]) + fabs(V[threei + 1]) + fabs(V[threei + 2]);
            V[threei] = V[threei] / doubleVars[0];
            V[threei + 1] = V[threei + 1] / doubleVars[0];
            V[threei + 2] = V[threei + 2] / doubleVars[0];
            MM[0] = V[threei];
            MM[1] = V[threei + 1];
            MM[2] = V[threei + 2];
            V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
            V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
            V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
            MM[0] = V[threei];
            MM[1] = V[threei + 1];
            MM[2] = V[threei + 2];
            V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
            V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
            V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          }
          doubleVars[0] = sqrt(V[threei] * V[threei] + V[threei + 1] * V[threei + 1] + V[threei + 2] * V[threei + 2]);
          V[threei] = V[threei] / doubleVars[0];
          V[threei + 1] = V[threei + 1] / doubleVars[0];
          V[threei + 2] = V[threei + 2] / doubleVars[0];
        }
        doubleVars[0] = V[3] * V[6] + V[4] * V[7] + V[5] * V[8];
        V[3] = V[3] - doubleVars[0] * V[6];
        V[4] = V[4] - doubleVars[0] * V[7];
        V[5] = V[5] - doubleVars[0] * V[8];
        doubleVars[0] = sqrt(V[3] * V[3] + V[4] * V[4] + V[5] * V[5]);
        V[3] = V[3] / doubleVars[0];
        V[4] = V[4] / doubleVars[0];
        V[5] = V[5] / doubleVars[0];
        V[0] = V[4] * V[8] - V[5] * V[7];
        V[1] = V[5] * V[6] - V[3] * V[8];
        V[2] = V[3] * V[7] - V[4] * V[6];
        doubleVars[0] = sqrt(V[0] * V[0] + V[1] * V[1] + V[2] * V[2]);
        V[0] = V[0] / doubleVars[0];
        V[1] = V[1] / doubleVars[0];
        V[2] = V[2] / doubleVars[0];
        U[0] = Spx[0] * V[0] + Spx[3] * V[1] + Spx[6] * V[2];
        U[1] = Spx[1] * V[0] + Spx[4] * V[1] + Spx[7] * V[2];
        U[2] = Spx[2] * V[0] + Spx[5] * V[1] + Spx[8] * V[2];
        doubleVars[0] = sqrt(U[0] * U[0] + U[1] * U[1] + U[2] * U[2]);
        U[0] = U[0] / doubleVars[0];
        U[1] = U[1] / doubleVars[0];
        U[2] = U[2] / doubleVars[0];
        U[3] = Spx[0] * V[3] + Spx[3] * V[4] + Spx[6] * V[5];
        U[4] = Spx[1] * V[3] + Spx[4] * V[4] + Spx[7] * V[5];
        U[5] = Spx[2] * V[3] + Spx[5] * V[4] + Spx[8] * V[5];
        doubleVars[0] = U[0] * U[3] + U[1] * U[4] + U[2] * U[5];
        U[3] = U[3] - doubleVars[0] * U[0];
        U[4] = U[4] - doubleVars[0] * U[1];
        U[5] = U[5] - doubleVars[0] * U[2];
        doubleVars[0] = sqrt(U[3] * U[3] + U[4] * U[4] + U[5] * U[5]);
        U[3] = U[3] / doubleVars[0];
        U[4] = U[4] / doubleVars[0];
        U[5] = U[5] / doubleVars[0];
        U[6] = U[1] * U[5] - U[2] * U[4];
        U[7] = U[2] * U[3] - U[0] * U[5];
        U[8] = U[0] * U[4] - U[1] * U[3];
        doubleVars[0] = sqrt(U[6] * U[6] + U[7] * U[7] + U[8] * U[8]);
        U[6] = U[6] / doubleVars[0];
        U[7] = U[7] / doubleVars[0];
        U[8] = U[8] / doubleVars[0];
      } else {
        SIGMA[0] = doubleVars[0] - (doubleVars[4] + 0.6666666666666667 * doubleVars[6] * doubleVars[3] / (doubleVars[6] - doubleVars[7]));
        for (i = 0; i < 50; i++) {
          doubleVars[6] = SIGMA[0];
          SIGMA[0] = (doubleVars[0] * SIGMA[0] * SIGMA[0] - 2.0 * SIGMA[0] * SIGMA[0] * SIGMA[0] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[0] - 3.0 * SIGMA[0] * SIGMA[0] + doubleVars[1]);
          if (fabs(SIGMA[0] - doubleVars[6]) < SIGMA[0] * 1.0e-16) {
            break;
          }
        }
        doubleVars[3] = 2.0 * doubleVars[0] * SIGMA[0] - 3.0 * SIGMA[0] * SIGMA[0] + doubleVars[0] * doubleVars[0] + 4.0 * doubleVars[1];
        if (doubleVars[3] > 0.0) {
          doubleVars[3] = sqrt(doubleVars[3]);
          SIGMA[1] = (doubleVars[0] - SIGMA[0] + doubleVars[3]) / 2.0;
          SIGMA[2] = (doubleVars[0] - SIGMA[0] - doubleVars[3]) / 2.0;
        } else {
          SIGMA[1] = (doubleVars[0] - SIGMA[0]) / 2.0;
          SIGMA[2] = SIGMA[1];
        }
        if (1.0e3 * doubleVars[3] < SIGMA[0]) {
          rotMatrixCCOVsubrtnII(rotationMatrix, Spx, SIGMA, MM, U, V, SpxTSpx, invmat, doubleVars);
          return;
        }
        SIGMA[1] = (doubleVars[0] * SIGMA[1] * SIGMA[1] - 2.0 * SIGMA[1] * SIGMA[1] * SIGMA[1] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[1] - 3.0 * SIGMA[1] * SIGMA[1] + doubleVars[1]);
        SIGMA[1] = (doubleVars[0] * SIGMA[1] * SIGMA[1] - 2.0 * SIGMA[1] * SIGMA[1] * SIGMA[1] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[1] - 3.0 * SIGMA[1] * SIGMA[1] + doubleVars[1]);
        SIGMA[2] = (doubleVars[0] * SIGMA[2] * SIGMA[2] - 2.0 * SIGMA[2] * SIGMA[2] * SIGMA[2] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[2] - 3.0 * SIGMA[2] * SIGMA[2] + doubleVars[1]);
        SIGMA[2] = (doubleVars[0] * SIGMA[2] * SIGMA[2] - 2.0 * SIGMA[2] * SIGMA[2] * SIGMA[2] + doubleVars[2]) / (2.0 * doubleVars[0] * SIGMA[2] - 3.0 * SIGMA[2] * SIGMA[2] + doubleVars[1]);
        for (i = 0; i < 2; i++) {
          threei = 3 * i;
          invmat[0] = SpxTSpx[2] * SpxTSpx[1] - SpxTSpx[1] * SIGMA[i] - SIGMA[i] * SpxTSpx[2] + SIGMA[i] * SIGMA[i] - SpxTSpx[4] * SpxTSpx[4];
          invmat[1] = SpxTSpx[4] * SpxTSpx[5] - SpxTSpx[3] * SpxTSpx[2] + SpxTSpx[3] * SIGMA[i];
          invmat[2] = SpxTSpx[3] * SpxTSpx[4] - SpxTSpx[5] * SpxTSpx[1] + SpxTSpx[5] * SIGMA[i];
          invmat[3] = SpxTSpx[2] * SpxTSpx[0] - SpxTSpx[0] * SIGMA[i] - SIGMA[i] * SpxTSpx[2] + SIGMA[i] * SIGMA[i] - SpxTSpx[5] * SpxTSpx[5];
          invmat[4] = -SpxTSpx[4] * SpxTSpx[0] + SpxTSpx[4] * SIGMA[i] + SpxTSpx[3] * SpxTSpx[5];
          invmat[5] = SpxTSpx[1] * SpxTSpx[0] - SpxTSpx[0] * SIGMA[i] - SpxTSpx[1] * SIGMA[i] + SIGMA[i] * SIGMA[i] - SpxTSpx[3] * SpxTSpx[3];
          doubleVars[0] = invmat[0] * invmat[0] + invmat[1] * invmat[1] + invmat[2] * invmat[2];
          doubleVars[1] = invmat[1] * invmat[1] + invmat[3] * invmat[3] + invmat[4] * invmat[4];
          doubleVars[2] = invmat[2] * invmat[2] + invmat[4] * invmat[4] + invmat[5] * invmat[5];
          if (doubleVars[0] > doubleVars[1]) {
            if (doubleVars[0] > doubleVars[2]) {
              V[threei] = invmat[0];
              V[threei + 1] = invmat[1];
              V[threei + 2] = invmat[2];
            } else {
              V[threei] = invmat[2];
              V[threei + 1] = invmat[4];
              V[threei + 2] = invmat[5];
            }
          } else {
            if (doubleVars[1] > doubleVars[2]) {
              V[threei] = invmat[1];
              V[threei + 1] = invmat[3];
              V[threei + 2] = invmat[4];
            } else {
              V[threei] = invmat[2];
              V[threei + 1] = invmat[4];
              V[threei + 2] = invmat[5];
            }
          }
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          MM[0] = V[threei];
          MM[1] = V[threei + 1];
          MM[2] = V[threei + 2];
          V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
          V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
          V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          for (j = 0; j < 3; j++) {
            doubleVars[0] = fabs(V[threei]) + fabs(V[threei + 1]) + fabs(V[threei + 2]);
            V[threei] = V[threei] / doubleVars[0];
            V[threei + 1] = V[threei + 1] / doubleVars[0];
            V[threei + 2] = V[threei + 2] / doubleVars[0];
            MM[0] = V[threei];
            MM[1] = V[threei + 1];
            MM[2] = V[threei + 2];
            V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
            V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
            V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
            MM[0] = V[threei];
            MM[1] = V[threei + 1];
            MM[2] = V[threei + 2];
            V[threei] = invmat[0] * MM[0] + invmat[1] * MM[1] + invmat[2] * MM[2];
            V[threei + 1] = invmat[1] * MM[0] + invmat[3] * MM[1] + invmat[4] * MM[2];
            V[threei + 2] = invmat[2] * MM[0] + invmat[4] * MM[1] + invmat[5] * MM[2];
          }
          doubleVars[0] = sqrt(V[threei] * V[threei] + V[threei + 1] * V[threei + 1] + V[threei + 2] * V[threei + 2]);
          V[threei] = V[threei] / doubleVars[0];
          V[threei + 1] = V[threei + 1] / doubleVars[0];
          V[threei + 2] = V[threei + 2] / doubleVars[0];
        }
        doubleVars[0] = V[0] * V[3] + V[1] * V[4] + V[2] * V[5];
        V[3] = V[3] - doubleVars[0] * V[0];
        V[4] = V[4] - doubleVars[0] * V[1];
        V[5] = V[5] - doubleVars[0] * V[2];
        doubleVars[0] = sqrt(V[3] * V[3] + V[4] * V[4] + V[5] * V[5]);
        V[3] = V[3] / doubleVars[0];
        V[4] = V[4] / doubleVars[0];
        V[5] = V[5] / doubleVars[0];
        V[6] = V[1] * V[5] - V[2] * V[4];
        V[7] = V[2] * V[3] - V[0] * V[5];
        V[8] = V[0] * V[4] - V[1] * V[3];
        doubleVars[0] = sqrt(V[6] * V[6] + V[7] * V[7] + V[8] * V[8]);
        V[6] = V[6] / doubleVars[0];
        V[7] = V[7] / doubleVars[0];
        V[8] = V[8] / doubleVars[0];
        U[0] = Spx[0] * V[0] + Spx[3] * V[1] + Spx[6] * V[2];
        U[1] = Spx[1] * V[0] + Spx[4] * V[1] + Spx[7] * V[2];
        U[2] = Spx[2] * V[0] + Spx[5] * V[1] + Spx[8] * V[2];
        doubleVars[0] = sqrt(U[0] * U[0] + U[1] * U[1] + U[2] * U[2]);
        U[0] = U[0] / doubleVars[0];
        U[1] = U[1] / doubleVars[0];
        U[2] = U[2] / doubleVars[0];
        U[3] = Spx[0] * V[3] + Spx[3] * V[4] + Spx[6] * V[5];
        U[4] = Spx[1] * V[3] + Spx[4] * V[4] + Spx[7] * V[5];
        U[5] = Spx[2] * V[3] + Spx[5] * V[4] + Spx[8] * V[5];
        doubleVars[0] = U[0] * U[3] + U[1] * U[4] + U[2] * U[5];
        U[3] = U[3] - doubleVars[0] * U[0];
        U[4] = U[4] - doubleVars[0] * U[1];
        U[5] = U[5] - doubleVars[0] * U[2];
        doubleVars[0] = sqrt(U[3] * U[3] + U[4] * U[4] + U[5] * U[5]);
        U[3] = U[3] / doubleVars[0];
        U[4] = U[4] / doubleVars[0];
        U[5] = U[5] / doubleVars[0];
        U[6] = U[1] * U[5] - U[2] * U[4];
        U[7] = U[2] * U[3] - U[0] * U[5];
        U[8] = U[0] * U[4] - U[1] * U[3];
        doubleVars[0] = sqrt(U[6] * U[6] + U[7] * U[7] + U[8] * U[8]);
        U[6] = U[6] / doubleVars[0];
        U[7] = U[7] / doubleVars[0];
        U[8] = U[8] / doubleVars[0];
      }
      j = 0;
      if ((Spx[0] * V[0] + Spx[3] * V[1] + Spx[6] * V[2]) * U[0] + (Spx[1] * V[0] + Spx[4] * V[1] + Spx[7] * V[2]) * U[1] + (Spx[2] * V[0] + Spx[5] * V[1] + Spx[8] * V[2]) * U[2] < 0.0) {
        j++;
        U[0] = -U[0];
        U[1] = -U[1];
        U[2] = -U[2];
      }
      if ((Spx[0] * V[3] + Spx[3] * V[4] + Spx[6] * V[5]) * U[3] + (Spx[1] * V[3] + Spx[4] * V[4] + Spx[7] * V[5]) * U[4] + (Spx[2] * V[3] + Spx[5] * V[4] + Spx[8] * V[5]) * U[5] < 0.0) {
        j++;
        U[3] = -U[3];
        U[4] = -U[4];
        U[5] = -U[5];
      }
      if ((Spx[0] * V[6] + Spx[3] * V[7] + Spx[6] * V[8]) * U[6] + (Spx[1] * V[6] + Spx[4] * V[7] + Spx[7] * V[8]) * U[7] + (Spx[2] * V[6] + Spx[5] * V[7] + Spx[8] * V[8]) * U[8] < 0.0) {
        j++;
        U[6] = -U[6];
        U[7] = -U[7];
        U[8] = -U[8];
      }
      if (j == 0) {
        rotationMatrix[0] = U[0] * V[0] + U[3] * V[3] + U[6] * V[6];
        rotationMatrix[1] = U[1] * V[0] + U[4] * V[3] + U[7] * V[6];
        rotationMatrix[2] = U[2] * V[0] + U[5] * V[3] + U[8] * V[6];
        rotationMatrix[3] = U[0] * V[1] + U[3] * V[4] + U[6] * V[7];
        rotationMatrix[4] = U[1] * V[1] + U[4] * V[4] + U[7] * V[7];
        rotationMatrix[5] = U[2] * V[1] + U[5] * V[4] + U[8] * V[7];
        rotationMatrix[6] = U[0] * V[2] + U[3] * V[5] + U[6] * V[8];
        rotationMatrix[7] = U[1] * V[2] + U[4] * V[5] + U[7] * V[8];
        rotationMatrix[8] = U[2] * V[2] + U[5] * V[5] + U[8] * V[8];
      } else if (j == 2) {
        rotationMatrix[0] = U[0] * V[0] + U[3] * V[3] + U[6] * V[6];
        rotationMatrix[1] = U[1] * V[0] + U[4] * V[3] + U[7] * V[6];
        rotationMatrix[2] = U[2] * V[0] + U[5] * V[3] + U[8] * V[6];
        rotationMatrix[3] = U[0] * V[1] + U[3] * V[4] + U[6] * V[7];
        rotationMatrix[4] = U[1] * V[1] + U[4] * V[4] + U[7] * V[7];
        rotationMatrix[5] = U[2] * V[1] + U[5] * V[4] + U[8] * V[7];
        rotationMatrix[6] = U[0] * V[2] + U[3] * V[5] + U[6] * V[8];
        rotationMatrix[7] = U[1] * V[2] + U[4] * V[5] + U[7] * V[8];
        rotationMatrix[8] = U[2] * V[2] + U[5] * V[5] + U[8] * V[8];
      } else {
        rotationMatrix[0] = U[0] * V[0] + U[3] * V[3] - U[6] * V[6];
        rotationMatrix[1] = U[1] * V[0] + U[4] * V[3] - U[7] * V[6];
        rotationMatrix[2] = U[2] * V[0] + U[5] * V[3] - U[8] * V[6];
        rotationMatrix[3] = U[0] * V[1] + U[3] * V[4] - U[6] * V[7];
        rotationMatrix[4] = U[1] * V[1] + U[4] * V[4] - U[7] * V[7];
        rotationMatrix[5] = U[2] * V[1] + U[5] * V[4] - U[8] * V[7];
        rotationMatrix[6] = U[0] * V[2] + U[3] * V[5] - U[6] * V[8];
        rotationMatrix[7] = U[1] * V[2] + U[4] * V[5] - U[7] * V[8];
        rotationMatrix[8] = U[2] * V[2] + U[5] * V[5] - U[8] * V[8];
      }
    }
  }
  return;
}
```