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

```asm
<imgprojac_str>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x30,%rsp
  mov    %rdx,%r12
  mov    %rcx,%r13
  mov    %r8,%rbp
  mov    0x8(%r9),%rbx
  shl    $0x2,%edi
  movslq %edi,%rdi
  mov    (%r9),%rax
  lea    (%rax,%rdi,8),%r14
  movsd  (%rdx),%xmm5
  movsd  %xmm5,(%rsp)
  movsd  0x8(%rdx),%xmm4
  movsd  %xmm4,0x8(%rsp)
  movsd  0x10(%rdx),%xmm2
  movsd  %xmm2,0x10(%rsp)
  movapd %xmm5,%xmm1
  mulsd  %xmm5,%xmm1
  movsd  D0(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm4,%xmm1
  mulsd  %xmm4,%xmm1
  subsd  %xmm1,%xmm0
  movapd %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L7
  sqrtsd %xmm0,%xmm0
L9:
  movapd %xmm0,%xmm2
  xorpd  D57(%rip),%xmm2
  movsd  0x8(%r14),%xmm5
  movsd  (%r14),%xmm3
  movsd  0x18(%r14),%xmm4
  movsd  0x10(%r14),%xmm7
  movapd %xmm2,%xmm1
  mulsd  %xmm5,%xmm1
  movsd  (%rsp),%xmm13
  movapd %xmm13,%xmm6
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm1
  movsd  0x8(%rsp),%xmm9
  movapd %xmm9,%xmm6
  mulsd  %xmm4,%xmm6
  subsd  %xmm6,%xmm1
  movsd  0x10(%rsp),%xmm12
  movapd %xmm12,%xmm6
  mulsd  %xmm7,%xmm6
  addsd  %xmm6,%xmm1
  movapd %xmm1,%xmm6
  mulsd  %xmm1,%xmm6
  movsd  %xmm6,(%rsp)
  movapd %xmm3,%xmm15
  mulsd  %xmm0,%xmm15
  movapd %xmm15,%xmm6
  movapd %xmm13,%xmm8
  mulsd  %xmm5,%xmm8
  subsd  %xmm8,%xmm6
  movapd %xmm9,%xmm8
  mulsd  %xmm7,%xmm8
  subsd  %xmm8,%xmm6
  movapd %xmm12,%xmm8
  mulsd  %xmm4,%xmm8
  subsd  %xmm8,%xmm6
  movapd %xmm6,%xmm11
  mulsd  %xmm6,%xmm11
  movsd  %xmm11,0x10(%rsp)
  mulsd  %xmm4,%xmm0
  movapd %xmm12,%xmm8
  mulsd  %xmm3,%xmm8
  addsd  %xmm8,%xmm0
  movapd %xmm13,%xmm8
  mulsd  %xmm7,%xmm8
  addsd  %xmm8,%xmm0
  movapd %xmm9,%xmm8
  mulsd  %xmm5,%xmm8
  subsd  %xmm8,%xmm0
  mulsd  %xmm7,%xmm2
  mulsd  %xmm9,%xmm3
  subsd  %xmm3,%xmm2
  movapd %xmm12,%xmm3
  mulsd  %xmm5,%xmm3
  subsd  %xmm3,%xmm2
  mulsd  %xmm4,%xmm13
  addsd  %xmm13,%xmm2
  movapd %xmm2,%xmm7
  mulsd  %xmm2,%xmm7
  movsd  %xmm7,0x8(%rsp)
  movapd %xmm1,%xmm5
  mulsd  %xmm2,%xmm5
  movapd %xmm6,%xmm4
  xorpd  D57(%rip),%xmm4
  mulsd  %xmm0,%xmm4
  movapd %xmm5,%xmm3
  movsd  %xmm5,0x18(%rsp)
  addsd  %xmm5,%xmm3
  subsd  %xmm4,%xmm3
  subsd  %xmm4,%xmm3
  movsd  %xmm3,0x20(%rsp)
  movapd %xmm1,%xmm3
  xorpd  D57(%rip),%xmm3
  mulsd  %xmm0,%xmm3
  movapd %xmm6,%xmm9
  mulsd  %xmm2,%xmm9
  movsd  %xmm9,0x28(%rsp)
  addsd  %xmm9,%xmm9
  addsd  %xmm3,%xmm9
  addsd  %xmm3,%xmm9
  movsd  0x0(%r13),%xmm8
  movsd  0x8(%r13),%xmm14
  movsd  0x10(%r13),%xmm7
  movapd %xmm8,%xmm12
  mulsd  %xmm1,%xmm12
  movapd %xmm12,%xmm5
  movapd %xmm14,%xmm10
  mulsd  %xmm2,%xmm10
  addsd  %xmm10,%xmm5
  movapd %xmm7,%xmm10
  mulsd  %xmm0,%xmm10
  subsd  %xmm10,%xmm5
  movapd %xmm7,%xmm10
  mulsd  %xmm6,%xmm10
  movapd %xmm14,%xmm12
  mulsd  %xmm1,%xmm12
  subsd  %xmm12,%xmm10
  movapd %xmm8,%xmm15
  mulsd  %xmm2,%xmm15
  addsd  %xmm15,%xmm10
  movapd %xmm8,%xmm12
  mulsd  %xmm6,%xmm12
  movapd %xmm12,%xmm11
  movapd %xmm7,%xmm15
  mulsd  %xmm2,%xmm15
  subsd  %xmm15,%xmm11
  movapd %xmm14,%xmm15
  mulsd  %xmm0,%xmm15
  subsd  %xmm15,%xmm11
  mulsd  %xmm6,%xmm14
  mulsd  %xmm0,%xmm8
  addsd  %xmm14,%xmm8
  mulsd  %xmm1,%xmm7
  addsd  %xmm7,%xmm8
  movapd %xmm5,%xmm14
  mulsd  %xmm0,%xmm14
  movapd %xmm6,%xmm12
  mulsd  %xmm10,%xmm12
  movapd %xmm12,%xmm7
  subsd  %xmm14,%xmm7
  movapd %xmm2,%xmm14
  mulsd  %xmm11,%xmm14
  addsd  %xmm14,%xmm7
  movapd %xmm1,%xmm14
  mulsd  %xmm8,%xmm14
  subsd  %xmm14,%xmm7
  movapd %xmm7,%xmm13
  addsd  0x28(%r12),%xmm13
  movsd  D0(%rip),%xmm14
  movapd %xmm14,%xmm12
  divsd  %xmm13,%xmm12
  movapd %xmm2,%xmm15
  mulsd  %xmm5,%xmm15
  movapd %xmm15,%xmm7
  movapd %xmm6,%xmm15
  mulsd  %xmm8,%xmm15
  addsd  %xmm7,%xmm15
  movapd %xmm1,%xmm7
  mulsd  %xmm10,%xmm7
  addsd  %xmm15,%xmm7
  movapd %xmm0,%xmm15
  mulsd  %xmm11,%xmm15
  addsd  %xmm15,%xmm7
  addsd  0x20(%r12),%xmm7
  movapd %xmm13,%xmm15
  mulsd  %xmm13,%xmm15
  divsd  %xmm15,%xmm14
  movsd  0x10(%rbx),%xmm15
  mulsd  %xmm1,%xmm5
  mulsd  %xmm6,%xmm11
  addsd  %xmm11,%xmm5
  mulsd  %xmm0,%xmm8
  movapd %xmm8,%xmm11
  movapd %xmm5,%xmm8
  subsd  %xmm11,%xmm8
  mulsd  %xmm2,%xmm10
  subsd  %xmm10,%xmm8
  addsd  0x18(%r12),%xmm8
  mulsd  (%rbx),%xmm8
  movapd %xmm7,%xmm10
  mulsd  0x8(%rbx),%xmm10
  movapd %xmm10,%xmm5
  addsd  %xmm8,%xmm5
  movapd %xmm15,%xmm8
  mulsd  %xmm13,%xmm8
  addsd  %xmm8,%xmm5
  mulsd  %xmm14,%xmm5
  movapd %xmm0,%xmm8
  mulsd  %xmm0,%xmm8
  movsd  0x10(%rsp),%xmm11
  movapd %xmm11,%xmm10
  addsd  0x8(%rsp),%xmm10
  subsd  (%rsp),%xmm10
  subsd  %xmm8,%xmm10
  xorpd  D57(%rip),%xmm2
  mulsd  %xmm0,%xmm2
  mulsd  %xmm6,%xmm1
  movapd %xmm2,%xmm0
  addsd  %xmm2,%xmm0
  subsd  %xmm1,%xmm0
  subsd  %xmm1,%xmm0
  addsd  %xmm1,%xmm1
  addsd  %xmm2,%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm11,%xmm2
  addsd  %xmm8,%xmm2
  subsd  0x8(%rsp),%xmm2
  subsd  (%rsp),%xmm2
  mulsd  0x18(%rbx),%xmm7
  mulsd  0x20(%rbx),%xmm13
  addsd  %xmm13,%xmm7
  mulsd  %xmm14,%xmm7
  movsd  (%rsp),%xmm6
  addsd  %xmm11,%xmm6
  subsd  %xmm8,%xmm6
  subsd  0x8(%rsp),%xmm6
  mulsd  (%rbx),%xmm6
  movsd  0x20(%rsp),%xmm13
  movapd %xmm13,%xmm8
  mulsd  0x8(%rbx),%xmm8
  addsd  %xmm8,%xmm6
  mulsd  %xmm9,%xmm15
  addsd  %xmm15,%xmm6
  mulsd  %xmm12,%xmm6
  movapd %xmm9,%xmm8
  mulsd  %xmm5,%xmm8
  subsd  %xmm8,%xmm6
  movsd  %xmm6,0x0(%rbp)
  addsd  %xmm4,%xmm4
  movsd  0x18(%rsp),%xmm6
  addsd  %xmm6,%xmm4
  addsd  %xmm6,%xmm4
  mulsd  (%rbx),%xmm4
  movapd %xmm10,%xmm6
  mulsd  0x8(%rbx),%xmm6
  addsd  %xmm6,%xmm4
  movapd %xmm0,%xmm6
  mulsd  0x10(%rbx),%xmm6
  addsd  %xmm6,%xmm4
  mulsd  %xmm12,%xmm4
  movapd %xmm5,%xmm6
  mulsd  %xmm0,%xmm6
  subsd  %xmm6,%xmm4
  movsd  %xmm4,0x8(%rbp)
  addsd  %xmm3,%xmm3
  movsd  0x28(%rsp),%xmm4
  subsd  %xmm4,%xmm3
  subsd  %xmm4,%xmm3
  mulsd  (%rbx),%xmm3
  movapd %xmm1,%xmm4
  mulsd  0x8(%rbx),%xmm4
  addsd  %xmm4,%xmm3
  movapd %xmm2,%xmm4
  mulsd  0x10(%rbx),%xmm4
  addsd  %xmm4,%xmm3
  mulsd  %xmm12,%xmm3
  mulsd  %xmm2,%xmm5
  subsd  %xmm5,%xmm3
  movsd  %xmm3,0x10(%rbp)
  movapd %xmm13,%xmm3
  mulsd  0x18(%rbx),%xmm3
  movapd %xmm9,%xmm4
  mulsd  0x20(%rbx),%xmm4
  addsd  %xmm4,%xmm3
  mulsd  %xmm12,%xmm3
  mulsd  %xmm7,%xmm9
  subsd  %xmm9,%xmm3
  movsd  %xmm3,0x18(%rbp)
  mulsd  0x18(%rbx),%xmm10
  movapd %xmm0,%xmm3
  mulsd  0x20(%rbx),%xmm3
  addsd  %xmm3,%xmm10
  mulsd  %xmm12,%xmm10
  mulsd  %xmm7,%xmm0
  subsd  %xmm0,%xmm10
  movsd  %xmm10,0x20(%rbp)
  mulsd  0x18(%rbx),%xmm1
  movapd %xmm2,%xmm0
  mulsd  0x20(%rbx),%xmm0
  addsd  %xmm0,%xmm1
  mulsd  %xmm12,%xmm1
  mulsd  %xmm7,%xmm2
  subsd  %xmm2,%xmm1
  movsd  %xmm1,0x28(%rbp)
  add    $0x30,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L7:
  call   <sqrt@plt>
  jmp    L9
```

tool_calls: name: read_data
arguments: data_label: D0
type_guessed: f64
name: read_data
arguments: data_label: D57
type_guessed: byte[16]

tool: D0: 1

tool: {"D57": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

assistant: ```c
void imgprojac_str(int j, int i, double *rt, double *xyz, double *jst, double **adata) {
  double *qr0, *r0 = adata[0], *a = adata[1];
  double t1, t2, t3, t5, t10, t11, t16, t17, t22, t28, t29, t32, t35, t36, t38, t39, t42, t48, t53, t58, t63, t65, t66, t78, t82, t83, t84, t92, t93, t95, t98, t99, t111, t114, t127;
  qr0 = r0 + j * 4;
  t1 = pow(rt[0], 0.2e1);
  t2 = pow(rt[1], 0.2e1);
  t3 = pow(rt[2], 0.2e1);
  t5 = sqrt(0.1e1 - t1 - t2 - t3);
  t10 = -t5 * qr0[1] - qr0[0] * rt[0] - rt[1] * qr0[3] + rt[2] * qr0[2];
  t11 = t10 * t10;
  t16 = t5 * qr0[0] - rt[0] * qr0[1] - rt[1] * qr0[2] - rt[2] * qr0[3];
  t17 = t16 * t16;
  t22 = t5 * qr0[3] + qr0[0] * rt[2] + rt[0] * qr0[2] - rt[1] * qr0[1];
  t28 = -t5 * qr0[2] - qr0[0] * rt[1] - rt[2] * qr0[1] + rt[0] * qr0[3];
  t29 = t28 * t28;
  t32 = t10 * t28;
  t35 = -t16 * t22;
  t36 = 0.2e1 * t32 + t16 * t22 - t35;
  t38 = -t10 * t22;
  t39 = t16 * t28;
  t42 = t38 + 0.2e1 * t39 - t10 * t22;
  t48 = t10 * xyz[0] + t28 * xyz[1] - t22 * xyz[2];
  t53 = t16 * xyz[2] - t10 * xyz[1] + t28 * xyz[0];
  t58 = t16 * xyz[0] - t28 * xyz[2] - t22 * xyz[1];
  t63 = t16 * xyz[1] + t22 * xyz[0] + t10 * xyz[2];
  t65 = -t48 * t22 + t16 * t53 + t58 * t28 - t63 * t10 + rt[5];
  t66 = 0.1e1 / t65;
  t78 = t48 * t28 + t16 * t63 + t53 * t10 + t58 * t22 + rt[4];
  t82 = t65 * t65;
  t83 = 0.1e1 / t82;
  t84 = (a[0] * (t48 * t10 + t16 * t58 - t63 * t22 - t53 * t28 + rt[3]) + a[1] * t78 + a[2] * t65) * t83;
  t92 = t22 * t22;
  t93 = t29 + t17 - t10 * t10 - t92;
  t95 = -t28 * t22;
  t98 = t16 * t10;
  t99 = 0.2e1 * t95 - t16 * t10 - t98;
  t111 = t95 + 0.2e1 * t98 - t28 * t22;
  t114 = t92 + t17 - t28 * t28 - t11;
  t127 = (a[3] * t78 + a[4] * t65) * t83;
  jst[0] = (a[0] * (t11 + t17 - t22 * t22 - t29) + a[1] * t36 + a[2] * t42) * t66 - t84 * t42;
  jst[1] = (a[0] * (t32 + 0.2e1 * t35 + t10 * t28) + a[1] * t93 + a[2] * t99) * t66 - t84 * t99;
  jst[2] = (a[0] * (0.2e1 * t38 - t16 * t28 - t39) + a[1] * t111 + a[2] * t114) * t66 - t84 * t114;
  jst[3] = (a[3] * t36 + a[4] * t42) * t66 - t127 * t42;
  jst[4] = (a[3] * t93 + a[4] * t99) * t66 - t127 * t99;
  jst[5] = (a[3] * t111 + a[4] * t114) * t66 - t127 * t114;
}
```