user: 下面的汇编指令对应的C源代码是什么:

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

tool_calls: name: parse_data
arguments: data_label: D18
type_infered: f64
name: parse_data
arguments: data_label: D4
type_infered: byte[8]

tool: D18: 1

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

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;
}
```