user: Converte this assembly snippet into its equivalent C code:

```asm
<calcImgProjJacRT>:
  endbr64
  sub    $0xe8,%rsp
  movsd  (%rdx),%xmm8
  movsd  (%rdi),%xmm7
  movsd  0x8(%rdx),%xmm9
  movsd  D160(%rip),%xmm3
  movapd %xmm8,%xmm0
  movsd  %xmm7,0x40(%rsp)
  movsd  0x10(%rdx),%xmm7
  mulsd  %xmm8,%xmm0
  movsd  %xmm7,0x48(%rsp)
  subsd  %xmm0,%xmm3
  movapd %xmm9,%xmm0
  mulsd  %xmm9,%xmm0
  subsd  %xmm0,%xmm3
  movapd %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  subsd  %xmm0,%xmm3
  pxor   %xmm0,%xmm0
  ucomisd %xmm3,%xmm0
  ja     L4
  sqrtsd %xmm3,%xmm3
L7:
  movsd  D160(%rip),%xmm14
  movsd  0x8(%rsi),%xmm11
  movsd  0x10(%rsi),%xmm12
  movsd  0x18(%rsi),%xmm15
  divsd  %xmm3,%xmm14
  movapd %xmm11,%xmm0
  movsd  (%rsi),%xmm2
  movsd  (%r8),%xmm4
  movsd  0x8(%r8),%xmm5
  movsd  %xmm11,0x30(%rsp)
  movsd  %xmm2,0x20(%rsp)
  movsd  %xmm15,0x50(%rsp)
  mulsd  %xmm14,%xmm0
  xorpd  D149(%rip),%xmm0
  movsd  %xmm0,0xb0(%rsp)
  movapd %xmm0,%xmm13
  movapd %xmm12,%xmm0
  mulsd  %xmm14,%xmm0
  mulsd  %xmm8,%xmm13
  movapd %xmm0,%xmm7
  xorpd  D149(%rip),%xmm7
  addsd  %xmm2,%xmm13
  movsd  %xmm7,0xb8(%rsp)
  movapd %xmm7,%xmm1
  mulsd  %xmm8,%xmm1
  movapd %xmm13,%xmm10
  xorpd  D149(%rip),%xmm10
  movsd  %xmm10,0x78(%rsp)
  mulsd  %xmm4,%xmm10
  movapd %xmm1,%xmm0
  movapd %xmm15,%xmm1
  mulsd  %xmm14,%xmm1
  subsd  %xmm15,%xmm0
  xorpd  D149(%rip),%xmm1
  movapd %xmm1,%xmm7
  movapd %xmm0,%xmm6
  movsd  %xmm1,0xc0(%rsp)
  movsd  0x10(%r8),%xmm1
  mulsd  %xmm8,%xmm7
  mulsd  %xmm5,%xmm6
  addsd  %xmm12,%xmm7
  subsd  %xmm6,%xmm10
  movapd %xmm7,%xmm6
  mulsd  %xmm1,%xmm6
  subsd  %xmm6,%xmm10
  movapd %xmm3,%xmm6
  xorpd  D149(%rip),%xmm6
  movapd %xmm6,%xmm2
  movsd  0x48(%rsp),%xmm6
  movsd  %xmm10,0x88(%rsp)
  mulsd  %xmm11,%xmm2
  movsd  0x20(%rsp),%xmm10
  movapd %xmm6,%xmm11
  mulsd  %xmm8,%xmm10
  mulsd  %xmm12,%xmm11
  subsd  %xmm10,%xmm2
  movapd %xmm15,%xmm10
  movapd %xmm12,%xmm15
  mulsd  %xmm9,%xmm10
  subsd  %xmm10,%xmm2
  movsd  0x20(%rsp),%xmm10
  mulsd  %xmm9,%xmm10
  addsd  %xmm11,%xmm2
  movapd %xmm15,%xmm11
  mulsd  %xmm3,%xmm11
  movsd  %xmm2,0x8(%rsp)
  movapd %xmm2,%xmm12
  movapd %xmm15,%xmm2
  movsd  0x50(%rsp),%xmm15
  movsd  %xmm2,0x80(%rsp)
  xorpd  D149(%rip),%xmm12
  addsd  %xmm11,%xmm10
  movapd %xmm6,%xmm11
  movsd  0x30(%rsp),%xmm6
  mulsd  %xmm6,%xmm11
  addsd  %xmm11,%xmm10
  movapd %xmm15,%xmm11
  mulsd  %xmm8,%xmm11
  mulsd  %xmm3,%xmm15
  subsd  %xmm11,%xmm10
  movsd  0x48(%rsp),%xmm11
  mulsd  0x20(%rsp),%xmm11
  addsd  %xmm15,%xmm11
  movapd %xmm2,%xmm15
  movapd %xmm6,%xmm2
  movsd  0x8(%rsp),%xmm6
  mulsd  %xmm8,%xmm15
  mulsd  %xmm4,%xmm6
  mulsd  %xmm9,%xmm2
  addsd  %xmm15,%xmm11
  movq   %xmm6,%rax
  movapd %xmm5,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm2,%xmm11
  movapd %xmm6,%xmm15
  movq   %rax,%xmm6
  subsd  %xmm15,%xmm6
  movq   %xmm6,%rax
  movapd %xmm1,%xmm6
  mulsd  %xmm11,%xmm6
  movq   %rax,%xmm2
  subsd  %xmm6,%xmm2
  movapd %xmm1,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm2,0x28(%rsp)
  movsd  0x20(%rsp),%xmm2
  mulsd  %xmm2,%xmm14
  xorpd  D149(%rip),%xmm14
  mulsd  %xmm2,%xmm3
  movsd  %xmm14,0xc8(%rsp)
  mulsd  %xmm8,%xmm14
  movapd %xmm14,%xmm15
  movsd  0x30(%rsp),%xmm14
  mulsd  %xmm14,%xmm8
  subsd  %xmm14,%xmm15
  subsd  %xmm8,%xmm3
  movsd  0x80(%rsp),%xmm8
  mulsd  %xmm9,%xmm8
  subsd  %xmm8,%xmm3
  movsd  0x48(%rsp),%xmm8
  mulsd  0x50(%rsp),%xmm8
  subsd  %xmm8,%xmm3
  movapd %xmm3,%xmm14
  mulsd  %xmm4,%xmm3
  addsd  %xmm6,%xmm3
  movapd %xmm5,%xmm6
  mulsd  %xmm11,%xmm6
  subsd  %xmm6,%xmm3
  movapd %xmm0,%xmm6
  mulsd  %xmm1,%xmm6
  movapd %xmm3,%xmm2
  movapd %xmm4,%xmm3
  mulsd  %xmm15,%xmm3
  addsd  %xmm6,%xmm3
  movapd %xmm5,%xmm6
  mulsd  %xmm7,%xmm6
  subsd  %xmm6,%xmm3
  movapd %xmm5,%xmm6
  mulsd  %xmm15,%xmm6
  movsd  %xmm3,0x90(%rsp)
  movapd %xmm6,%xmm3
  movapd %xmm4,%xmm6
  mulsd  %xmm7,%xmm6
  addsd  %xmm6,%xmm3
  movapd %xmm13,%xmm6
  mulsd  %xmm1,%xmm6
  mulsd  %xmm5,%xmm13
  subsd  %xmm6,%xmm3
  movapd %xmm11,%xmm6
  xorpd  D149(%rip),%xmm6
  mulsd  %xmm4,%xmm11
  movapd %xmm6,%xmm8
  movapd %xmm1,%xmm6
  movsd  %xmm3,0x98(%rsp)
  movapd %xmm14,%xmm3
  mulsd  %xmm5,%xmm3
  mulsd  %xmm15,%xmm6
  addsd  %xmm11,%xmm3
  movapd %xmm1,%xmm11
  mulsd  %xmm12,%xmm11
  mulsd  %xmm5,%xmm12
  subsd  %xmm11,%xmm3
  movapd %xmm7,%xmm11
  xorpd  D149(%rip),%xmm11
  movsd  %xmm3,0x10(%rsp)
  movapd %xmm6,%xmm3
  movapd %xmm4,%xmm6
  addsd  %xmm13,%xmm3
  mulsd  %xmm0,%xmm6
  xorpd  D149(%rip),%xmm0
  movapd %xmm3,%xmm13
  movapd %xmm14,%xmm3
  mulsd  %xmm1,%xmm3
  subsd  %xmm6,%xmm13
  movapd %xmm10,%xmm6
  xorpd  D149(%rip),%xmm6
  mulsd  %xmm4,%xmm10
  movapd %xmm6,%xmm7
  movsd  %xmm13,0xa0(%rsp)
  movsd  0x28(%rsp),%xmm13
  addsd  %xmm12,%xmm3
  movapd %xmm3,%xmm12
  movsd  0x10(%rsp),%xmm3
  subsd  %xmm10,%xmm12
  movsd  0x20(%rdi),%xmm10
  mulsd  %xmm15,%xmm3
  movsd  %xmm10,0x68(%rsp)
  movapd %xmm13,%xmm10
  mulsd  %xmm0,%xmm10
  movapd %xmm12,%xmm6
  movsd  0x88(%rsp),%xmm12
  movsd  %xmm6,0x18(%rsp)
  mulsd  %xmm7,%xmm12
  addsd  %xmm12,%xmm10
  movapd %xmm14,%xmm12
  addsd  %xmm10,%xmm3
  movsd  0x98(%rsp),%xmm10
  mulsd  %xmm14,%xmm10
  addsd  %xmm3,%xmm10
  movsd  0xa0(%rsp),%xmm3
  mulsd  0x8(%rsp),%xmm3
  addsd  %xmm10,%xmm3
  movsd  0x78(%rsp),%xmm10
  mulsd  %xmm6,%xmm10
  movsd  0x90(%rsp),%xmm6
  movapd %xmm6,%xmm14
  mulsd  %xmm8,%xmm14
  addsd  %xmm10,%xmm3
  movapd %xmm2,%xmm10
  mulsd  %xmm11,%xmm10
  subsd  %xmm14,%xmm3
  movapd %xmm13,%xmm14
  subsd  %xmm10,%xmm3
  movsd  0x88(%rsp),%xmm10
  mulsd  %xmm8,%xmm10
  movsd  %xmm3,0xd0(%rsp)
  movsd  0x8(%rdi),%xmm3
  movsd  %xmm3,0x70(%rsp)
  movapd %xmm13,%xmm3
  movapd %xmm12,%xmm13
  mulsd  %xmm11,%xmm3
  addsd  %xmm10,%xmm3
  movsd  0x18(%rsp),%xmm10
  mulsd  %xmm15,%xmm10
  addsd  %xmm3,%xmm10
  movsd  0xa0(%rsp),%xmm3
  mulsd  %xmm12,%xmm3
  movapd %xmm6,%xmm12
  mulsd  %xmm7,%xmm12
  addsd  %xmm10,%xmm3
  movapd %xmm14,%xmm10
  mulsd  %xmm8,%xmm10
  addsd  %xmm3,%xmm12
  movapd %xmm2,%xmm3
  mulsd  %xmm0,%xmm3
  addsd  %xmm3,%xmm12
  movsd  0x98(%rsp),%xmm3
  mulsd  0x8(%rsp),%xmm3
  movsd  %xmm13,0x38(%rsp)
  movsd  0x10(%rsp),%xmm6
  movsd  %xmm2,0x60(%rsp)
  subsd  %xmm3,%xmm12
  movsd  0x78(%rsp),%xmm3
  mulsd  %xmm6,%xmm3
  subsd  %xmm3,%xmm12
  movsd  0x18(%rsp),%xmm3
  mulsd  %xmm13,%xmm3
  mulsd  %xmm6,%xmm13
  addsd  %xmm10,%xmm3
  movapd %xmm2,%xmm10
  mulsd  %xmm7,%xmm10
  addsd  %xmm10,%xmm3
  movsd  0x8(%rsp),%xmm10
  mulsd  %xmm6,%xmm10
  subsd  %xmm10,%xmm3
  addsd  0x10(%rcx),%xmm3
  movsd  D160(%rip),%xmm10
  divsd  %xmm3,%xmm10
  movapd %xmm3,%xmm6
  mulsd  %xmm3,%xmm6
  movsd  %xmm10,0x58(%rsp)
  movapd %xmm14,%xmm10
  mulsd  %xmm7,%xmm10
  mulsd  0x8(%rsp),%xmm14
  addsd  %xmm10,%xmm13
  movsd  0x18(%rsp),%xmm10
  mulsd  0x8(%rsp),%xmm10
  addsd  %xmm10,%xmm13
  movapd %xmm2,%xmm10
  mulsd  %xmm8,%xmm10
  subsd  %xmm10,%xmm13
  movapd %xmm6,%xmm10
  addsd  0x8(%rcx),%xmm13
  movsd  D160(%rip),%xmm6
  divsd  %xmm10,%xmm6
  movsd  0x38(%rsp),%xmm10
  mulsd  %xmm2,%xmm10
  movsd  0x68(%rsp),%xmm2
  mulsd  %xmm13,%xmm2
  addsd  %xmm14,%xmm10
  movsd  0x10(%rsp),%xmm14
  mulsd  %xmm8,%xmm14
  addsd  %xmm14,%xmm10
  movsd  0x18(%rsp),%xmm14
  mulsd  %xmm7,%xmm14
  subsd  %xmm14,%xmm10
  addsd  (%rcx),%xmm10
  mulsd  0x40(%rsp),%xmm10
  movsd  0x70(%rsp),%xmm14
  mulsd  %xmm3,%xmm14
  addsd  %xmm2,%xmm10
  movsd  %xmm6,0xd8(%rsp)
  addsd  %xmm14,%xmm10
  movsd  0x78(%rsp),%xmm14
  mulsd  0x28(%rsp),%xmm14
  mulsd  %xmm6,%xmm10
  movsd  0x60(%rsp),%xmm6
  mulsd  %xmm15,%xmm6
  movsd  %xmm10,0xa8(%rsp)
  movsd  0x88(%rsp),%xmm10
  mulsd  0x8(%rsp),%xmm10
  addsd  %xmm10,%xmm14
  movapd %xmm6,%xmm10
  addsd  %xmm14,%xmm10
  movsd  0x90(%rsp),%xmm14
  mulsd  0x38(%rsp),%xmm14
  addsd  %xmm10,%xmm14
  movsd  0x98(%rsp),%xmm10
  mulsd  0x10(%rsp),%xmm11
  mulsd  %xmm8,%xmm10
  addsd  %xmm14,%xmm10
  movsd  0x40(%rsp),%xmm14
  addsd  %xmm11,%xmm10
  movsd  0xa0(%rsp),%xmm11
  mulsd  %xmm7,%xmm11
  subsd  %xmm11,%xmm10
  movsd  0x18(%rsp),%xmm11
  mulsd  %xmm0,%xmm11
  movapd %xmm10,%xmm6
  movsd  0x68(%rsp),%xmm10
  subsd  %xmm11,%xmm6
  movsd  0x58(%rsp),%xmm11
  movapd %xmm6,%xmm0
  movsd  0xd0(%rsp),%xmm6
  mulsd  %xmm14,%xmm0
  mulsd  %xmm6,%xmm10
  addsd  %xmm0,%xmm10
  movsd  0x70(%rsp),%xmm0
  mulsd  %xmm12,%xmm0
  addsd  %xmm0,%xmm10
  movsd  0xa8(%rsp),%xmm0
  mulsd  %xmm12,%xmm0
  mulsd  %xmm11,%xmm10
  subsd  %xmm0,%xmm10
  movsd  %xmm10,(%r9)
  movsd  0x18(%rdi),%xmm10
  movsd  0x10(%rdi),%xmm15
  movsd  %xmm15,0x88(%rsp)
  mulsd  %xmm14,%xmm10
  mulsd  %xmm15,%xmm3
  mulsd  %xmm10,%xmm13
  movsd  %xmm10,0x78(%rsp)
  addsd  %xmm3,%xmm13
  mulsd  0xd8(%rsp),%xmm13
  movsd  0xb8(%rsp),%xmm3
  mulsd  %xmm9,%xmm3
  movapd %xmm13,%xmm2
  movapd %xmm6,%xmm13
  movsd  %xmm2,0x90(%rsp)
  mulsd  %xmm10,%xmm13
  movsd  0x20(%rsp),%xmm10
  addsd  %xmm3,%xmm10
  movapd %xmm13,%xmm0
  movapd %xmm15,%xmm13
  movsd  0x50(%rsp),%xmm15
  mulsd  %xmm12,%xmm13
  mulsd  %xmm2,%xmm12
  addsd  %xmm13,%xmm0
  mulsd  %xmm11,%xmm0
  subsd  %xmm12,%xmm0
  movsd  0xb0(%rsp),%xmm12
  mulsd  %xmm9,%xmm12
  movsd  %xmm0,0x30(%r9)
  addsd  %xmm12,%xmm15
  movsd  0xc0(%rsp),%xmm12
  mulsd  %xmm9,%xmm12
  movapd %xmm15,%xmm6
  xorpd  D149(%rip),%xmm6
  movapd %xmm6,%xmm14
  mulsd  %xmm4,%xmm6
  movapd %xmm12,%xmm11
  subsd  0x30(%rsp),%xmm11
  movapd %xmm6,%xmm3
  movapd %xmm5,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm3
  movapd %xmm1,%xmm6
  mulsd  %xmm11,%xmm6
  subsd  %xmm6,%xmm3
  movsd  0xc8(%rsp),%xmm6
  mulsd  %xmm9,%xmm6
  movapd %xmm3,%xmm2
  movsd  %xmm2,0x98(%rsp)
  movapd %xmm2,%xmm9
  movsd  0x28(%rsp),%xmm2
  mulsd  %xmm7,%xmm9
  movapd %xmm6,%xmm0
  movapd %xmm4,%xmm6
  subsd  0x80(%rsp),%xmm0
  mulsd  %xmm0,%xmm6
  movapd %xmm6,%xmm12
  movapd %xmm1,%xmm6
  mulsd  %xmm10,%xmm6
  addsd  %xmm6,%xmm12
  movapd %xmm5,%xmm6
  mulsd  %xmm11,%xmm6
  subsd  %xmm6,%xmm12
  movapd %xmm5,%xmm6
  mulsd  %xmm0,%xmm6
  movapd %xmm6,%xmm3
  movapd %xmm4,%xmm6
  mulsd  %xmm11,%xmm6
  xorpd  D149(%rip),%xmm11
  addsd  %xmm6,%xmm3
  movapd %xmm1,%xmm6
  mulsd  %xmm15,%xmm6
  mulsd  %xmm5,%xmm15
  subsd  %xmm6,%xmm3
  movapd %xmm1,%xmm6
  mulsd  %xmm0,%xmm6
  movapd %xmm6,%xmm13
  movapd %xmm4,%xmm6
  mulsd  %xmm10,%xmm6
  addsd  %xmm15,%xmm13
  xorpd  D149(%rip),%xmm10
  mulsd  %xmm10,%xmm2
  subsd  %xmm6,%xmm13
  movapd %xmm2,%xmm15
  addsd  %xmm9,%xmm15
  movsd  0x10(%rsp),%xmm9
  mulsd  %xmm0,%xmm9
  addsd  %xmm15,%xmm9
  movsd  0x38(%rsp),%xmm15
  movsd  0x8(%rsp),%xmm6
  movsd  0x28(%rsp),%xmm2
  mulsd  %xmm3,%xmm15
  mulsd  %xmm13,%xmm6
  mulsd  %xmm11,%xmm2
  addsd  %xmm9,%xmm15
  movapd %xmm6,%xmm9
  movapd %xmm8,%xmm6
  mulsd  %xmm12,%xmm6
  addsd  %xmm15,%xmm9
  movsd  0x18(%rsp),%xmm15
  mulsd  %xmm14,%xmm15
  addsd  %xmm15,%xmm9
  movsd  0x60(%rsp),%xmm15
  mulsd  %xmm11,%xmm15
  subsd  %xmm6,%xmm9
  movapd %xmm7,%xmm6
  mulsd  %xmm12,%xmm6
  mulsd  0x38(%rsp),%xmm12
  subsd  %xmm15,%xmm9
  movapd %xmm2,%xmm15
  movsd  0x98(%rsp),%xmm2
  mulsd  0x8(%rsp),%xmm2
  movsd  %xmm9,0xa0(%rsp)
  movsd  0x98(%rsp),%xmm9
  mulsd  %xmm8,%xmm9
  addsd  %xmm9,%xmm15
  movsd  0x18(%rsp),%xmm9
  mulsd  %xmm0,%xmm9
  addsd  %xmm15,%xmm9
  movsd  0x38(%rsp),%xmm15
  mulsd  %xmm13,%xmm15
  mulsd  %xmm7,%xmm13
  addsd  %xmm9,%xmm15
  movapd %xmm6,%xmm9
  movsd  0x8(%rsp),%xmm6
  mulsd  %xmm3,%xmm6
  addsd  %xmm15,%xmm9
  movsd  0x60(%rsp),%xmm15
  mulsd  %xmm8,%xmm3
  mulsd  %xmm10,%xmm15
  mulsd  0x18(%rsp),%xmm10
  addsd  %xmm15,%xmm9
  subsd  %xmm6,%xmm9
  movsd  0x10(%rsp),%xmm6
  mulsd  %xmm6,%xmm11
  movapd %xmm6,%xmm15
  mulsd  %xmm14,%xmm15
  mulsd  0x28(%rsp),%xmm14
  subsd  %xmm15,%xmm9
  movsd  0xb0(%rsp),%xmm15
  addsd  %xmm2,%xmm14
  movsd  0x60(%rsp),%xmm2
  mulsd  %xmm2,%xmm0
  addsd  %xmm14,%xmm0
  movsd  0xa0(%rsp),%xmm14
  addsd  %xmm0,%xmm12
  addsd  %xmm12,%xmm3
  addsd  %xmm11,%xmm3
  movsd  0x58(%rsp),%xmm11
  movapd %xmm3,%xmm6
  movsd  0x68(%rsp),%xmm3
  subsd  %xmm13,%xmm6
  movsd  0xa8(%rsp),%xmm13
  mulsd  %xmm14,%xmm3
  mulsd  0x78(%rsp),%xmm14
  mulsd  %xmm9,%xmm13
  movapd %xmm6,%xmm0
  subsd  %xmm10,%xmm0
  mulsd  0x40(%rsp),%xmm0
  movsd  0x70(%rsp),%xmm10
  mulsd  %xmm9,%xmm10
  addsd  %xmm0,%xmm3
  movapd %xmm14,%xmm0
  movsd  0x88(%rsp),%xmm14
  mulsd  %xmm9,%xmm14
  mulsd  0x90(%rsp),%xmm9
  addsd  %xmm10,%xmm3
  mulsd  %xmm11,%xmm3
  addsd  %xmm14,%xmm0
  mulsd  %xmm11,%xmm0
  subsd  %xmm13,%xmm3
  movsd  %xmm3,0x8(%r9)
  subsd  %xmm9,%xmm0
  movsd  0x48(%rsp),%xmm9
  mulsd  %xmm9,%xmm15
  movapd %xmm9,%xmm13
  movsd  %xmm0,0x38(%r9)
  movapd %xmm15,%xmm12
  subsd  0x80(%rsp),%xmm12
  movsd  0xb8(%rsp),%xmm15
  movq   $0x0,0x48(%r9)
  movsd  0xc8(%rsp),%xmm10
  movsd  0x30(%rsp),%xmm3
  mulsd  %xmm9,%xmm15
  movsd  0xc0(%rsp),%xmm9
  mulsd  %xmm13,%xmm10
  movapd %xmm12,%xmm0
  xorpd  D149(%rip),%xmm0
  subsd  0x50(%rsp),%xmm10
  mulsd  %xmm13,%xmm9
  movapd %xmm4,%xmm13
  addsd  0x20(%rsp),%xmm9
  movapd %xmm0,%xmm6
  mulsd  %xmm4,%xmm6
  mulsd  %xmm10,%xmm13
  addsd  %xmm15,%xmm3
  movapd %xmm4,%xmm15
  mulsd  %xmm9,%xmm15
  mulsd  %xmm3,%xmm4
  movapd %xmm6,%xmm11
  movapd %xmm5,%xmm6
  mulsd  %xmm3,%xmm6
  movapd %xmm13,%xmm14
  movapd %xmm1,%xmm13
  mulsd  %xmm3,%xmm13
  xorpd  D149(%rip),%xmm3
  subsd  %xmm6,%xmm11
  movapd %xmm1,%xmm6
  addsd  %xmm13,%xmm14
  mulsd  %xmm9,%xmm6
  movapd %xmm5,%xmm13
  mulsd  %xmm9,%xmm13
  xorpd  D149(%rip),%xmm9
  subsd  %xmm6,%xmm11
  movsd  0x28(%rsp),%xmm6
  subsd  %xmm13,%xmm14
  movapd %xmm5,%xmm13
  mulsd  %xmm10,%xmm13
  mulsd  %xmm12,%xmm5
  addsd  %xmm15,%xmm13
  movapd %xmm1,%xmm15
  mulsd  %xmm10,%xmm1
  mulsd  %xmm12,%xmm15
  movsd  0x38(%rsp),%xmm12
  addsd  %xmm5,%xmm1
  movapd %xmm6,%xmm5
  mulsd  %xmm3,%xmm5
  subsd  %xmm15,%xmm13
  movapd %xmm8,%xmm15
  mulsd  %xmm14,%xmm15
  subsd  %xmm4,%xmm1
  movapd %xmm7,%xmm4
  mulsd  %xmm11,%xmm4
  addsd  %xmm4,%xmm5
  movsd  0x10(%rsp),%xmm4
  mulsd  %xmm10,%xmm4
  addsd  %xmm5,%xmm4
  movapd %xmm12,%xmm5
  mulsd  %xmm13,%xmm5
  addsd  %xmm4,%xmm5
  movsd  0x8(%rsp),%xmm4
  mulsd  %xmm1,%xmm4
  addsd  %xmm5,%xmm4
  movsd  0x18(%rsp),%xmm5
  mulsd  %xmm0,%xmm5
  addsd  %xmm5,%xmm4
  movapd %xmm2,%xmm5
  mulsd  %xmm9,%xmm5
  subsd  %xmm15,%xmm4
  movapd %xmm8,%xmm15
  mulsd  %xmm11,%xmm15
  mulsd  0x8(%rsp),%xmm11
  subsd  %xmm5,%xmm4
  mulsd  %xmm13,%xmm8
  movapd %xmm15,%xmm5
  movapd %xmm6,%xmm15
  mulsd  %xmm9,%xmm6
  addsd  %xmm5,%xmm6
  movsd  0x18(%rsp),%xmm5
  mulsd  %xmm10,%xmm5
  addsd  %xmm6,%xmm5
  movapd %xmm12,%xmm6
  mulsd  %xmm1,%xmm6
  addsd  %xmm5,%xmm6
  movapd %xmm7,%xmm5
  mulsd  %xmm14,%xmm5
  mulsd  %xmm1,%xmm7
  movsd  0x18(%rsp),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm6,%xmm5
  movapd %xmm2,%xmm6
  mulsd  %xmm3,%xmm6
  movsd  0xa8(%rsp),%xmm3
  mulsd  %xmm10,%xmm2
  addsd  %xmm6,%xmm5
  movsd  0x8(%rsp),%xmm6
  mulsd  %xmm13,%xmm6
  subsd  %xmm6,%xmm5
  movsd  0x10(%rsp),%xmm6
  mulsd  %xmm0,%xmm6
  mulsd  %xmm15,%xmm0
  subsd  %xmm6,%xmm5
  movsd  0x68(%rsp),%xmm6
  addsd  %xmm11,%xmm0
  movsd  0x58(%rsp),%xmm11
  addsd  %xmm2,%xmm0
  movapd %xmm12,%xmm2
  movsd  0x90(%rsp),%xmm12
  mulsd  %xmm14,%xmm2
  addsd  %xmm2,%xmm0
  movsd  0x10(%rsp),%xmm2
  mulsd  %xmm9,%xmm2
  addsd  %xmm8,%xmm0
  movsd  0x88(%rsp),%xmm8
  addsd  %xmm2,%xmm0
  movsd  0x70(%rsp),%xmm2
  subsd  %xmm7,%xmm0
  movsd  0x40(%rsp),%xmm7
  subsd  %xmm1,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm4,%xmm1
  mulsd  %xmm11,%xmm6
  mulsd  %xmm7,%xmm0
  mulsd  %xmm11,%xmm7
  addsd  %xmm1,%xmm0
  movapd %xmm2,%xmm1
  mulsd  %xmm5,%xmm1
  movsd  %xmm7,0x18(%r9)
  mulsd  %xmm11,%xmm2
  addsd  %xmm1,%xmm0
  movapd %xmm3,%xmm1
  mulsd  %xmm5,%xmm1
  mulsd  %xmm11,%xmm0
  subsd  %xmm1,%xmm0
  movsd  0x78(%rsp),%xmm1
  mulsd  %xmm1,%xmm4
  movsd  %xmm0,0x10(%r9)
  mulsd  %xmm11,%xmm1
  movapd %xmm8,%xmm0
  mulsd  %xmm5,%xmm0
  mulsd  %xmm12,%xmm5
  addsd  %xmm0,%xmm4
  movapd %xmm2,%xmm0
  subsd  %xmm3,%xmm0
  mulsd  %xmm11,%xmm4
  mulsd  %xmm8,%xmm11
  subsd  %xmm5,%xmm4
  movsd  %xmm4,0x40(%r9)
  movsd  %xmm6,0x20(%r9)
  movsd  %xmm0,0x28(%r9)
  movapd %xmm11,%xmm0
  subsd  %xmm12,%xmm0
  movsd  %xmm1,0x50(%r9)
  movsd  %xmm0,0x58(%r9)
  add    $0xe8,%rsp
  ret
L4:
  movapd %xmm3,%xmm0
  mov    %r9,0x38(%rsp)
  mov    %r8,0x30(%rsp)
  mov    %rcx,0x28(%rsp)
  mov    %rsi,0x20(%rsp)
  mov    %rdi,0x18(%rsp)
  movsd  %xmm9,0x10(%rsp)
  movsd  %xmm8,0x8(%rsp)
  call   <sqrt@plt>
  mov    0x38(%rsp),%r9
  mov    0x30(%rsp),%r8
  mov    0x28(%rsp),%rcx
  mov    0x20(%rsp),%rsi
  movapd %xmm0,%xmm3
  mov    0x18(%rsp),%rdi
  movsd  0x10(%rsp),%xmm9
  movsd  0x8(%rsp),%xmm8
  jmp    L7
```

tool_calls: name: unpack_data
arguments: tag: D160
type_infered: f64
name: unpack_data
arguments: tag: D149
type_infered: f32[4]

tool: D160: 1

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

assistant: ```c
void calcImgProjJacRT(double a[5], double qr0[4], double v[3], double t[3], double M[3], double jacmRT[2][6]) {
  double t1;
  double t10;
  double t107;
  double t109;
  double t11;
  double t118;
  double t12;
  double t126;
  double t127;
  double t14;
  double t141;
  double t145;
  double t146;
  double t147;
  double t15;
  double t150;
  double t152;
  double t159;
  double t16;
  double t162;
  double t165;
  double t168;
  double t170;
  double t172;
  double t175;
  double t18;
  double t180;
  double t185;
  double t187;
  double t19;
  double t192;
  double t194;
  double t2;
  double t206;
  double t21;
  double t216;
  double t22;
  double t227;
  double t23;
  double t230;
  double t233;
  double t235;
  double t237;
  double t240;
  double t245;
  double t25;
  double t250;
  double t252;
  double t257;
  double t259;
  double t27;
  double t271;
  double t28;
  double t281;
  double t3;
  double t30;
  double t35;
  double t37;
  double t4;
  double t43;
  double t49;
  double t5;
  double t51;
  double t52;
  double t54;
  double t56;
  double t6;
  double t61;
  double t65;
  double t7;
  double t70;
  double t75;
  double t76;
  double t81;
  double t82;
  double t87;
  double t88;
  double t9;
  double t93;
  double t94;
  double t98;
  {
    t1 = a[0];
    t2 = v[0];
    t3 = t2 * t2;
    t4 = v[1];
    t5 = t4 * t4;
    t6 = v[2];
    t7 = t6 * t6;
    t9 = sqrt(1.0 - t3 - t5 - t7);
    t10 = 1 / t9;
    t11 = qr0[1];
    t12 = t11 * t10;
    t14 = qr0[0];
    t15 = -t12 * t2 + t14;
    t16 = M[0];
    t18 = qr0[2];
    t19 = t18 * t10;
    t21 = qr0[3];
    t22 = -t19 * t2 - t21;
    t23 = M[1];
    t25 = t10 * t21;
    t27 = -t25 * t2 + t18;
    t28 = M[2];
    t30 = -t15 * t16 - t22 * t23 - t27 * t28;
    t35 = -t9 * t11 - t2 * t14 - t4 * t21 + t6 * t18;
    t37 = -t35;
    t43 = t9 * t18 + t4 * t14 + t6 * t11 - t2 * t21;
    t49 = t9 * t21 + t6 * t14 + t2 * t18 - t11 * t4;
    t51 = -t37 * t16 - t43 * t23 - t49 * t28;
    t52 = -t15;
    t54 = t10 * t14;
    t56 = -t54 * t2 - t11;
    t61 = t9 * t14 - t2 * t11 - t4 * t18 - t6 * t21;
    t65 = t61 * t16 + t43 * t28 - t23 * t49;
    t70 = t56 * t16 + t22 * t28 - t23 * t27;
    t75 = t56 * t23 + t27 * t16 - t28 * t15;
    t76 = -t49;
    t81 = t61 * t23 + t49 * t16 - t37 * t28;
    t82 = -t27;
    t87 = t56 * t28 + t23 * t15 - t22 * t16;
    t88 = -t43;
    t93 = t61 * t28 + t37 * t23 - t43 * t16;
    t94 = -t22;
    t98 = a[4];
    t107 = t30 * t88 + t94 * t51 + t56 * t81 + t61 * t75 + t87 * t35 + t93 * t52 - t70 * t76 - t82 * t65;
    t109 = a[1];
    t118 = t30 * t76 + t82 * t51 + t56 * t93 + t61 * t87 + t70 * t88 + t65 * t94 - t35 * t75 - t81 * t52;
    t126 = t76 * t51 + t61 * t93 + t65 * t88 - t81 * t35 + t[2];
    t127 = 1 / t126;
    t141 = t51 * t88 + t61 * t81 + t93 * t35 - t65 * t76 + t[1];
    t145 = t126 * t126;
    t146 = 1 / t145;
    t147 = (t1 * (t35 * t51 + t61 * t65 + t81 * t76 - t93 * t88 + t[0]) + t98 * t141 + t126 * t109) * t146;
    jacmRT[0][0] = (t1 * (t30 * t35 + t52 * t51 + t56 * t65 + t61 * t70 + t76 * t75 + t81 * t82 - t88 * t87 - t93 * t94) + t98 * t107 + t109 * t118) * t127 - t118 * t147;
    t150 = t1 * a[3];
    t152 = a[2];
    t159 = (t150 * t141 + t126 * t152) * t146;
    jacmRT[1][0] = (t107 * t150 + t152 * t118) * t127 - t159 * t118;
    t162 = -t12 * t4 + t21;
    t165 = -t19 * t4 + t14;
    t168 = -t25 * t4 - t11;
    t170 = -t162 * t16 - t165 * t23 - t168 * t28;
    t172 = -t162;
    t175 = -t54 * t4 - t18;
    t180 = t175 * t16 + t165 * t28 - t168 * t23;
    t185 = t175 * t23 + t168 * t16 - t162 * t28;
    t187 = -t168;
    t192 = t175 * t28 + t162 * t23 - t165 * t16;
    t194 = -t165;
    t206 = t170 * t88 + t51 * t194 + t175 * t81 + t61 * t185 + t192 * t35 + t93 * t172 - t76 * t180 - t65 * t187;
    t216 = t170 * t76 + t51 * t187 + t93 * t175 + t61 * t192 + t180 * t88 + t65 * t194 - t185 * t35 - t81 * t172;
    jacmRT[0][1] = (t1 * (t170 * t35 + t172 * t51 + t175 * t65 + t180 * t61 + t185 * t76 + t81 * t187 - t192 * t88 - t93 * t194) + t98 * t206 + t109 * t216) * t127 - t147 * t216;
    jacmRT[1][1] = (t150 * t206 + t152 * t216) * t127 - t159 * t216;
    t227 = -t12 * t6 - t18;
    t230 = -t19 * t6 + t11;
    t233 = -t25 * t6 + t14;
    t235 = -t227 * t16 - t23 * t230 - t233 * t28;
    t237 = -t227;
    t240 = -t54 * t6 - t21;
    t245 = t240 * t16 + t230 * t28 - t233 * t23;
    t250 = t23 * t240 + t233 * t16 - t227 * t28;
    t252 = -t233;
    t257 = t240 * t28 + t227 * t23 - t230 * t16;
    t259 = -t230;
    t271 = t235 * t88 + t51 * t259 + t81 * t240 + t61 * t250 + t257 * t35 + t93 * t237 - t245 * t76 - t65 * t252;
    t281 = t235 * t76 + t51 * t252 + t240 * t93 + t61 * t257 + t245 * t88 + t259 * t65 - t250 * t35 - t81 * t237;
    jacmRT[0][2] = (t1 * (t235 * t35 + t237 * t51 + t240 * t65 + t61 * t245 + t250 * t76 + t81 * t252 - t257 * t88 - t93 * t259) + t271 * t98 + t281 * t109) * t127 - t147 * t281;
    jacmRT[1][2] = (t150 * t271 + t281 * t152) * t127 - t159 * t281;
    jacmRT[0][3] = t127 * t1;
    jacmRT[1][3] = 0.0;
    jacmRT[0][4] = t98 * t127;
    jacmRT[1][4] = t150 * t127;
    jacmRT[0][5] = t109 * t127 - t147;
    jacmRT[1][5] = t152 * t127 - t159;
    return;
  }
}
```