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

```asm
<dJacTx3D>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x548,%rsp
  cvttsd2si (%rcx),%ebx
  mov    %rdi,0x128(%rsp)
  cvttsd2si 0x8(%rcx),%edi
  cvttsd2si 0x10(%rcx),%eax
  mov    %rsi,0x130(%rsp)
  mov    %rdx,0x170(%rsp)
  lea    0x1(%rbx),%esi
  lea    0x1(%rdi),%ecx
  mov    %fs:0x28,%rdx
  mov    %rdx,0x538(%rsp)
  xor    %edx,%edx
  imul   %esi,%ecx
  mov    %eax,0x124(%rsp)
  add    $0x1,%eax
  mov    %ebx,0x164(%rsp)
  mov    %edi,0x15c(%rsp)
  mov    %esi,0x160(%rsp)
  imul   %ecx,%eax
  test   %ebx,%ebx
  jle    L7
  imul   %ebx,%edi
  movslq %esi,%rdx
  movslq %ecx,%rcx
  cltq
  shl    $0x3,%rdx
  mov    %rcx,0x138(%rsp)
  shl    $0x3,%rcx
  lea    0x0(,%rax,8),%r10
  lea    0x8(%rdx),%rsi
  mov    %rcx,0xe8(%rsp)
  sub    %rdx,%rcx
  movsd  D14(%rip),%xmm2
  movslq %edi,%rdx
  mov    %r10,%r12
  mov    %rcx,0xf0(%rsp)
  movslq %ebx,%rcx
  lea    0x0(,%rdx,8),%rbx
  mov    %rsi,0x168(%rsp)
  movsd  D27(%rip),%xmm4
  mov    %rcx,0x178(%rsp)
  mov    %rbx,0x140(%rsp)
  movq   $0x0,0x150(%rsp)
L34:
  mov    0x150(%rsp),%eax
  mov    %eax,0x158(%rsp)
  mov    0x15c(%rsp),%eax
  test   %eax,%eax
  jle    L69
  movl   $0x0,0x14c(%rsp)
  movl   $0x0,0x148(%rsp)
  nopl   0x0(%rax,%rax,1)
L93:
  mov    0x124(%rsp),%edx
  test   %edx,%edx
  jle    L70
  movslq 0x158(%rsp),%rax
  mov    0x168(%rsp),%rbx
  movl   $0x0,0x120(%rsp)
  lea    0x360(%rsp),%r14
  lea    0x460(%rsp),%r11
  lea    0x380(%rsp),%r10
  lea    (%rbx,%rax,8),%rdx
  mov    %rax,0xe0(%rsp)
  mov    0x128(%rsp),%rax
  lea    0x340(%rsp),%rbp
  mov    0x170(%rsp),%rbx
  lea    0x440(%rsp),%r13
  lea    (%rax,%rdx,1),%r15
  movslq 0x14c(%rsp),%rax
  add    0x150(%rsp),%rax
  lea    (%rbx,%rax,8),%rax
  add    0x130(%rsp),%rdx
  lea    0x520(%rsp),%rbx
  mov    %rax,0xd8(%rsp)
  lea    0x180(%rsp),%rax
  mov    %rax,0x60(%rsp)
  lea    0x1a0(%rsp),%rax
  mov    %rax,0x70(%rsp)
  lea    0x1e0(%rsp),%rax
  mov    %rax,0x38(%rsp)
  lea    0x1c0(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  lea    0x240(%rsp),%rax
  mov    %rax,0x58(%rsp)
  lea    0x260(%rsp),%rax
  mov    %rax,0x68(%rsp)
  lea    0x220(%rsp),%rax
  mov    %rax,0x50(%rsp)
  lea    0x200(%rsp),%rax
  mov    %rax,0x40(%rsp)
  lea    0x280(%rsp),%rax
  mov    %rax,0xb0(%rsp)
  lea    0x2a0(%rsp),%rax
  mov    %rax,0xc8(%rsp)
  lea    0x2c0(%rsp),%rax
  mov    %rax,0x78(%rsp)
  lea    0x2e0(%rsp),%rax
  mov    %rax,0x80(%rsp)
  lea    0x300(%rsp),%rax
  mov    %rax,0x88(%rsp)
  lea    0x320(%rsp),%rax
  mov    %rax,0x98(%rsp)
  lea    0x500(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  lea    0x4e0(%rsp),%rax
  mov    %rax,0xa8(%rsp)
  lea    0x4c0(%rsp),%rax
  mov    %rax,0xa0(%rsp)
  lea    0x4a0(%rsp),%rax
  mov    %rax,0x90(%rsp)
  lea    0x480(%rsp),%rax
  mov    %rax,0x48(%rsp)
  lea    0x420(%rsp),%rax
  mov    %rax,0x30(%rsp)
  lea    0x400(%rsp),%rax
  mov    %rax,0x28(%rsp)
  lea    0x3e0(%rsp),%rax
  mov    %rdx,0xd0(%rsp)
  mov    %rax,0x20(%rsp)
  lea    0x3c0(%rsp),%rax
  mov    %rax,0x18(%rsp)
  lea    0x3a0(%rsp),%rax
  mov    %rax,0x10(%rsp)
  mov    %r14,%rax
  mov    %r10,%r14
  mov    %r11,%r10
  mov    %rax,%r11
L47:
  mov    0xe0(%rsp),%rax
  mov    0x130(%rsp),%rdi
  mov    %r15,0x8(%rsp)
  mov    %r12,%r9
  mov    0xd0(%rsp),%rcx
  mov    %r10,%r12
  mov    0xc8(%rsp),%r15
  mov    %r13,%r10
  shl    $0x3,%rax
  mov    %r11,%r13
  mov    %r14,%r11
  mov    0xb8(%rsp),%r14
  mov    %rax,0xf8(%rsp)
  add    %rax,%rdi
  mov    %rcx,%rdx
  mov    0xe8(%rsp),%rax
  add    %rax,%rcx
  mov    0xf0(%rsp),%rax
  mov    %rcx,0xd0(%rsp)
  lea    (%rax,%rdx,1),%rsi
  xor    %eax,%eax
L68:
  movsd  0x8(%rdi),%xmm10
  movsd  (%rdi),%xmm5
  add    %r9,%rdi
  mov    0x60(%rsp),%r8
  movsd  (%rdx),%xmm11
  movapd %xmm10,%xmm12
  movsd  -0x8(%rdx),%xmm1
  movsd  (%rsi),%xmm9
  add    %r9,%rdx
  addsd  %xmm5,%xmm12
  movsd  %xmm5,(%r8,%rax,1)
  mov    0x70(%rsp),%r8
  movsd  -0x8(%rcx),%xmm7
  addsd  %xmm1,%xmm5
  movsd  -0x8(%rsi),%xmm0
  add    %r9,%rsi
  movsd  (%rcx),%xmm8
  movsd  %xmm10,(%r8,%rax,1)
  mov    0x38(%rsp),%r8
  addsd  %xmm11,%xmm10
  add    %r9,%rcx
  movapd %xmm12,%xmm6
  addsd  %xmm9,%xmm12
  movsd  %xmm1,(%r14,%rax,1)
  addsd  %xmm11,%xmm6
  movsd  %xmm11,(%r8,%rax,1)
  mov    0x58(%rsp),%r8
  addsd  %xmm0,%xmm5
  addsd  %xmm8,%xmm10
  movsd  %xmm7,(%r8,%rax,1)
  mov    0x68(%rsp),%r8
  addsd  %xmm0,%xmm12
  addsd  %xmm1,%xmm6
  addsd  %xmm11,%xmm1
  movsd  %xmm8,(%r8,%rax,1)
  mov    0x50(%rsp),%r8
  addsd  %xmm7,%xmm5
  addsd  %xmm9,%xmm10
  mulsd  %xmm2,%xmm12
  mulsd  %xmm2,%xmm6
  addsd  %xmm7,%xmm1
  movsd  %xmm9,(%r8,%rax,1)
  mov    0x40(%rsp),%r8
  mulsd  %xmm2,%xmm5
  movsd  %xmm0,(%r8,%rax,1)
  mov    0xb0(%rsp),%r8
  mulsd  %xmm2,%xmm10
  addsd  %xmm8,%xmm1
  movsd  %xmm6,(%r8,%rax,1)
  mov    0x78(%rsp),%r8
  mulsd  %xmm2,%xmm1
  movsd  %xmm12,(%r8,%rax,1)
  mov    0x80(%rsp),%r8
  movsd  %xmm10,(%r15,%rax,1)
  movsd  %xmm5,(%r8,%rax,1)
  mov    0x88(%rsp),%r8
  movsd  %xmm1,(%r8,%rax,1)
  movapd %xmm0,%xmm1
  mov    0x98(%rsp),%r8
  addsd  %xmm9,%xmm1
  addsd  %xmm8,%xmm1
  addsd  %xmm7,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  movsd  %xmm0,(%r8,%rax,1)
  addsd  %xmm6,%xmm0
  mulsd  %xmm4,%xmm0
  movsd  %xmm0,0x0(%rbp,%rax,1)
  add    $0x8,%rax
  cmp    $0x18,%rax
  jne    L68
  mov    0xc0(%rsp),%rax
  pxor   %xmm0,%xmm0
  mov    %r11,%r14
  mov    0xa8(%rsp),%rsi
  mov    0x48(%rsp),%rdx
  mov    %r13,%r11
  mov    %r10,%r13
  mov    %r12,%r10
  movaps %xmm0,(%rax)
  mov    0x8(%rsp),%r15
  mov    %r9,%r12
  mov    %r11,%r8
  mov    0xa0(%rsp),%rcx
  mov    0x90(%rsp),%rdi
  movaps %xmm0,(%rsi)
  movq   $0x0,0x10(%rax)
  mov    0x30(%rsp),%rax
  movaps %xmm0,(%rcx)
  movq   $0x0,0x10(%rsi)
  mov    0x28(%rsp),%rsi
  movq   $0x0,0x10(%rcx)
  mov    0x20(%rsp),%rcx
  movaps %xmm0,(%rdi)
  movq   $0x0,0x10(%rdi)
  mov    0x18(%rsp),%rdi
  movaps %xmm0,(%r10)
  movq   $0x0,0x10(%r10)
  movaps %xmm0,(%rdx)
  movaps %xmm0,(%rax)
  movaps %xmm0,(%rsi)
  movaps %xmm0,(%rcx)
  movq   $0x0,0x10(%rdx)
  movq   $0x0,0x10(%rax)
  movq   $0x0,0x10(%rsi)
  movq   $0x0,0x10(%rcx)
  mov    %rbp,%rcx
  movaps %xmm0,(%rbx)
  movaps %xmm0,0x0(%r13)
  movq   $0x0,0x10(%rbx)
  movq   $0x0,0x10(%r13)
  movaps %xmm0,(%rdi)
  mov    0xd8(%rsp),%r9
  mov    0x10(%rsp),%rdx
  movaps %xmm0,(%r11)
  movsd  (%r9),%xmm4
  movaps %xmm0,(%rdx)
  mov    %r14,%r9
  movq   $0x0,0x10(%r11)
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm4,%xmm3
  xorpd  D16(%rip),%xmm3
  movq   $0x0,0x10(%rdi)
  movq   $0x0,0x10(%rdx)
  movaps %xmm0,(%r14)
  movapd %xmm3,%xmm0
  movq   $0x0,0x10(%r14)
  push   %rbx
  push   %r10
  mov    0xc0(%rsp),%rdx
  mov    0x80(%rsp),%rsi
  mov    0x70(%rsp),%rdi
  movsd  %xmm3,0x118(%rsp)
  mov    %r11,0x128(%rsp)
  mov    %r10,0x110(%rsp)
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  mov    %r14,%r8
  mov    0x118(%rsp),%r10
  push   %r10
  mov    0x38(%rsp),%r9
  movsd  0x128(%rsp),%xmm0
  mov    0xd0(%rsp),%rdx
  mov    0x58(%rsp),%rsi
  mov    0x90(%rsp),%rdi
  mov    %r10,0x120(%rsp)
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %rbx
  mov    0x108(%rsp),%r10
  push   %r10
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r8
  mov    0xc0(%rsp),%rdx
  movsd  0x118(%rsp),%xmm0
  mov    0xc8(%rsp),%rsi
  mov    0x48(%rsp),%rdi
  mov    %r10,0x110(%rsp)
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    0x118(%rsp),%r10
  mov    %rbp,%rcx
  push   %r10
  mov    0x138(%rsp),%r11
  mov    0x30(%rsp),%r8
  mov    0xd0(%rsp),%rdx
  movsd  0x128(%rsp),%xmm0
  mov    0x80(%rsp),%rsi
  mov    %r11,%r9
  mov    0xd8(%rsp),%rdi
  mov    %r10,0x130(%rsp)
  mov    %r11,0x120(%rsp)
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r14,%r8
  push   %rbx
  push   0x50(%rsp)
  mov    0x28(%rsp),%r9
  movsd  0x18(%rsp),%xmm0
  mov    0xd8(%rsp),%rdx
  mov    0x48(%rsp),%rsi
  mov    0x80(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  mov    %r13,%r9
  push   0x60(%rsp)
  mov    0x38(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  mov    0xe8(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0x58(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r13,%r8
  push   %rbx
  push   0x50(%rsp)
  mov    0x38(%rsp),%r9
  movsd  0x18(%rsp),%xmm0
  mov    0xd8(%rsp),%rdx
  mov    0x60(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  mov    %r14,%r9
  push   0x60(%rsp)
  mov    0x48(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  mov    0xe8(%rsp),%rdx
  mov    0x90(%rsp),%rsi
  mov    0x70(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r14,%r9
  push   %rbx
  push   0x98(%rsp)
  mov    0x110(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0x88(%rsp),%rdx
  mov    0x80(%rsp),%rsi
  mov    0x70(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  mov    %r14,%r8
  push   0xa8(%rsp)
  mov    0x48(%rsp),%r9
  movsd  0x28(%rsp),%xmm0
  mov    0x98(%rsp),%rdx
  mov    0x70(%rsp),%rsi
  mov    0x90(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %rbx
  push   0x98(%rsp)
  mov    0x30(%rsp),%r9
  mov    0x38(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0x88(%rsp),%rdx
  mov    0x50(%rsp),%rsi
  mov    0x60(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  push   0xa8(%rsp)
  mov    0x120(%rsp),%r9
  mov    0x40(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  mov    0x98(%rsp),%rdx
  mov    0x80(%rsp),%rsi
  mov    0x60(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %rbx
  push   0xa8(%rsp)
  mov    0x110(%rsp),%r9
  mov    0x20(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0x90(%rsp),%rdx
  mov    0x70(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  push   0xb8(%rsp)
  mov    0x120(%rsp),%r11
  mov    0x40(%rsp),%r9
  movsd  0x28(%rsp),%xmm0
  mov    0x60(%rsp),%rsi
  mov    %r11,%r8
  mov    0xa0(%rsp),%rdx
  mov    0x80(%rsp),%rdi
  mov    %r11,0x128(%rsp)
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %rbx
  push   0xa8(%rsp)
  mov    0x40(%rsp),%r9
  mov    0x30(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0x90(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0x50(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  push   0xb8(%rsp)
  mov    0x30(%rsp),%r9
  mov    0x50(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  mov    0xa0(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %rbx
  push   0xb0(%rsp)
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0x98(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0x48(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  push   0xc0(%rsp)
  mov    0x50(%rsp),%r9
  mov    0x30(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  mov    0xa8(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r13,%r9
  push   %rbx
  push   0xb0(%rsp)
  mov    0x40(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0x98(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  mov    %r13,%r8
  push   0xc0(%rsp)
  mov    0x38(%rsp),%r9
  movsd  0x28(%rsp),%xmm0
  mov    0xa8(%rsp),%rdx
  mov    0x58(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %rbx
  push   0xc8(%rsp)
  mov    0x38(%rsp),%r9
  mov    0x30(%rsp),%r8
  movsd  0x18(%rsp),%xmm0
  mov    0xa8(%rsp),%rdx
  mov    0x60(%rsp),%rsi
  mov    0x50(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  mov    %r13,%r9
  push   0xd8(%rsp)
  mov    0x48(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  mov    0xb8(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0x70(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r13,%r8
  push   %rbx
  push   0xc8(%rsp)
  mov    0x40(%rsp),%r9
  movsd  0x18(%rsp),%xmm0
  mov    0xa8(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %rbx
  mov    %rbp,%rcx
  push   0xd8(%rsp)
  mov    0xb8(%rsp),%rdx
  mov    0x60(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  mov    0x40(%rsp),%r9
  mov    0x50(%rsp),%r8
  movsd  0x28(%rsp),%xmm0
  call   <dVTTetra3D@plt>
  mov    0x108(%rsp),%rdx
  mov    0x118(%rsp),%rsi
  xor    %eax,%eax
  add    0x148(%rsp),%rsi
  lea    (%rdx,%r15,1),%rdi
  mov    0x110(%rsp),%rdx
  add    $0x20,%rsp
  mov    0x108(%rsp),%r11
  mov    0x110(%rsp),%r10
  mov    0x90(%rsp),%r8
  mov    %r11,0x8(%rsp)
  mov    D27(%rip),%r11
  lea    (%rdx,%r15,1),%rcx
  mov    %rdi,%rdx
  mov    %rdi,0xf8(%rsp)
  mov    0xa0(%rsp),%r9
  mov    %r12,%rdi
  movq   %r11,%xmm4
  mov    D14(%rip),%r11
  mov    %rbp,0x100(%rsp)
  mov    0xc0(%rsp),%r12
  mov    0xa8(%rsp),%rbp
  movq   %r11,%xmm2
  mov    D1(%rip),%r11
  movq   %r11,%xmm3
L28:
  mov    0x48(%rsp),%r11
  movsd  (%r10,%rax,1),%xmm5
  movsd  (%r8,%rax,1),%xmm0
  movsd  (%r9,%rax,1),%xmm8
  movsd  (%r11,%rax,1),%xmm1
  mulsd  %xmm2,%xmm5
  movsd  (%rbx,%rax,1),%xmm6
  mulsd  %xmm2,%xmm0
  movsd  0x0(%rbp,%rax,1),%xmm9
  movsd  (%r12,%rax,1),%xmm7
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm8
  mulsd  %xmm3,%xmm6
  movsd  %xmm5,(%r10,%rax,1)
  mulsd  %xmm2,%xmm9
  movapd %xmm5,%xmm10
  mulsd  %xmm2,%xmm7
  movsd  %xmm0,(%r8,%rax,1)
  movsd  %xmm1,(%r11,%rax,1)
  mov    0x8(%rsp),%r11
  movsd  %xmm8,(%r9,%rax,1)
  addsd  (%r11,%rax,1),%xmm10
  mov    0x18(%rsp),%r11
  movsd  %xmm6,(%rbx,%rax,1)
  movsd  %xmm9,0x0(%rbp,%rax,1)
  movsd  %xmm7,(%r12,%rax,1)
  addsd  %xmm0,%xmm10
  addsd  %xmm8,%xmm10
  addsd  %xmm6,%xmm10
  addsd  (%rsi),%xmm10
  movsd  %xmm10,(%rsi)
  movsd  (%r14,%rax,1),%xmm10
  addsd  %xmm5,%xmm10
  addsd  %xmm1,%xmm10
  addsd  %xmm0,%xmm10
  addsd  %xmm6,%xmm10
  addsd  0x8(%rsi),%xmm10
  movsd  %xmm10,0x8(%rsi)
  movsd  (%r11,%rax,1),%xmm10
  add    %rdi,%rsi
  mov    0x10(%rsp),%r11
  addsd  %xmm5,%xmm10
  addsd  (%r11,%rax,1),%xmm5
  mov    0x30(%rsp),%r11
  addsd  %xmm8,%xmm5
  addsd  %xmm1,%xmm10
  addsd  %xmm9,%xmm5
  addsd  %xmm9,%xmm10
  addsd  %xmm6,%xmm5
  addsd  -0x8(%r15),%xmm5
  addsd  %xmm6,%xmm10
  addsd  (%r15),%xmm10
  movsd  %xmm5,-0x8(%r15)
  movsd  (%r11,%rax,1),%xmm5
  movsd  %xmm10,(%r15)
  add    %rdi,%r15
  addsd  %xmm8,%xmm5
  addsd  %xmm9,%xmm5
  addsd  %xmm7,%xmm5
  addsd  %xmm6,%xmm5
  addsd  -0x8(%rdx),%xmm5
  mov    0x28(%rsp),%r11
  movsd  %xmm5,-0x8(%rdx)
  movsd  0x0(%r13,%rax,1),%xmm5
  addsd  %xmm1,%xmm5
  addsd  (%r11,%rax,1),%xmm1
  mov    0x20(%rsp),%r11
  addsd  %xmm0,%xmm1
  addsd  %xmm9,%xmm5
  addsd  (%r11,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm7,%xmm5
  addsd  %xmm7,%xmm1
  addsd  %xmm8,%xmm0
  addsd  %xmm6,%xmm5
  addsd  (%rdx),%xmm5
  addsd  %xmm7,%xmm0
  addsd  %xmm6,%xmm1
  movsd  %xmm5,(%rdx)
  addsd  (%rcx),%xmm1
  add    %rdi,%rdx
  addsd  %xmm6,%xmm0
  addsd  -0x8(%rcx),%xmm0
  movsd  %xmm1,(%rcx)
  movsd  %xmm0,-0x8(%rcx)
  add    %rdi,%rcx
  cmp    $0x18,%rax
  jne    L28
  addl   $0x1,0x120(%rsp)
  mov    0x138(%rsp),%rsi
  mov    %rdi,%r12
  mov    0x140(%rsp),%rdx
  add    %rsi,0xe0(%rsp)
  add    %rdx,0xd8(%rsp)
  mov    0xf8(%rsp),%rdi
  mov    0x100(%rsp),%rbp
  mov    0x8(%rsp),%r11
  mov    0x120(%rsp),%eax
  cmp    %eax,0x124(%rsp)
  je     L70
  mov    %rdi,%r15
  jmp    L47
  nopl   (%rax)
L70:
  mov    0x160(%rsp),%edi
  addl   $0x1,0x148(%rsp)
  add    %edi,0x158(%rsp)
  mov    0x148(%rsp),%eax
  mov    0x164(%rsp),%edi
  add    %edi,0x14c(%rsp)
  cmp    %eax,0x15c(%rsp)
  jne    L93
L69:
  addq   $0x1,0x150(%rsp)
  mov    0x150(%rsp),%rax
  cmp    %rax,0x178(%rsp)
  jne    L34
L7:
  mov    0x538(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L42
  add    $0x548,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L42:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D14
datatype: f64
name: unpack_data
arguments: data_tag: D27
datatype: f64
name: unpack_data
arguments: data_tag: D16
datatype: f32[4]
name: unpack_data
arguments: data_tag: D1
datatype: f64

tool: D14: 0.25

tool: D27: 0.5

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

tool: D1: 0.125

assistant: ```c
void dJacTx3D(double *prod, const double *yc, const double *x, const double *m, int n) {
  const int m1 = m[0], m2 = m[1], m3 = m[2];
  double yA[3], yB[3], yC[3], yD[3], yE[3], yF[3], yG[3], yH[3], yABDC[3], yBDHF[3], yABFE[3], yCAEG[3], yDCGH[3], yEFHG[3], yM[3];
  double rA[3], rB[3], rC[3], rD[3], rE[3], rF[3], rG[3], rH[3], rABDC[3], rBDHF[3], rABFE[3], rCAEG[3], rDCGH[3], rEFHG[3], rM[3];
  double xp;
  int id, i1, i2, i3, r, comp, idn;
  const int nn = (m1 + 1) * (m2 + 1) * (m3 + 1);
  const int inc_x = 1;
  const int inc_y = m1 + 1;
  const int inc_z = (m1 + 1) * (m2 + 1);
  const double *rptr;
  double *wptr;
#pragma omp parallel for default(shared) private(rptr, wptr, id, i1, i2, i3, r, comp, idn, xp, yA, yB, yC, yD, yE, yF, yG, yH, yABDC, yBDHF, yABFE, yCAEG, yDCGH, yEFHG, yM, rA, rB, rC, rD, rE, rF, rG, rH, rABDC, rBDHF, rABFE, rCAEG, rDCGH, rEFHG, rM)
  for (i1 = 0; i1 < m1; i1++) {
    for (i2 = 0; i2 < m2; i2++) {
      for (i3 = 0; i3 < m3; i3++) {
        idn = i1 + i2 * inc_y + i3 * inc_z;
        id = i1 + m1 * (i2 + i3 * m2);
        comp = 0;
        for (r = 0; r < 3; r++) {
          rptr = yc + idn + comp;
          yA[r] = *rptr;
          rptr += inc_x;
          yB[r] = *rptr;
          rptr += inc_y;
          yD[r] = *rptr;
          rptr -= inc_x;
          yC[r] = *rptr;
          rptr += inc_z;
          yG[r] = *rptr;
          rptr += inc_x;
          yH[r] = *rptr;
          rptr -= inc_y;
          yF[r] = *rptr;
          rptr -= inc_x;
          yE[r] = *rptr;
          yABDC[r] = 0.25 * (yA[r] + yB[r] + yD[r] + yC[r]);
          yBDHF[r] = 0.25 * (yB[r] + yD[r] + yH[r] + yF[r]);
          yABFE[r] = 0.25 * (yA[r] + yB[r] + yF[r] + yE[r]);
          yCAEG[r] = 0.25 * (yC[r] + yA[r] + yE[r] + yG[r]);
          yDCGH[r] = 0.25 * (yD[r] + yC[r] + yG[r] + yH[r]);
          yEFHG[r] = 0.25 * (yE[r] + yF[r] + yH[r] + yG[r]);
          yM[r] = 0.5 * (yABDC[r] + yEFHG[r]);
          comp += nn;
          rA[r] = 0.0;
          rB[r] = 0.0;
          rC[r] = 0.0;
          rD[r] = 0.0;
          rE[r] = 0.0;
          rF[r] = 0.0;
          rG[r] = 0.0;
          rH[r] = 0.0;
          rABDC[r] = 0.0;
          rBDHF[r] = 0.0;
          rABFE[r] = 0.0;
          rCAEG[r] = 0.0;
          rDCGH[r] = 0.0;
          rEFHG[r] = 0.0;
          rM[r] = 0.0;
        }
        xp = x[id];
        dVTTetra3D(yA, yB, yABDC, yM, -xp, rA, rB, rABDC, rM);
        dVTTetra3D(yB, yD, yABDC, yM, -xp, rB, rD, rABDC, rM);
        dVTTetra3D(yD, yC, yABDC, yM, -xp, rD, rC, rABDC, rM);
        dVTTetra3D(yC, yA, yABDC, yM, -xp, rC, rA, rABDC, rM);
        dVTTetra3D(yB, yD, yBDHF, yM, xp, rB, rD, rBDHF, rM);
        dVTTetra3D(yD, yH, yBDHF, yM, xp, rD, rH, rBDHF, rM);
        dVTTetra3D(yH, yF, yBDHF, yM, xp, rH, rF, rBDHF, rM);
        dVTTetra3D(yF, yB, yBDHF, yM, xp, rF, rB, rBDHF, rM);
        dVTTetra3D(yA, yB, yABFE, yM, xp, rA, rB, rABFE, rM);
        dVTTetra3D(yB, yF, yABFE, yM, xp, rB, rF, rABFE, rM);
        dVTTetra3D(yF, yE, yABFE, yM, xp, rF, rE, rABFE, rM);
        dVTTetra3D(yE, yA, yABFE, yM, xp, rE, rA, rABFE, rM);
        dVTTetra3D(yC, yA, yCAEG, yM, xp, rC, rA, rCAEG, rM);
        dVTTetra3D(yA, yE, yCAEG, yM, xp, rA, rE, rCAEG, rM);
        dVTTetra3D(yE, yG, yCAEG, yM, xp, rE, rG, rCAEG, rM);
        dVTTetra3D(yG, yC, yCAEG, yM, xp, rG, rC, rCAEG, rM);
        dVTTetra3D(yD, yC, yDCGH, yM, xp, rD, rC, rDCGH, rM);
        dVTTetra3D(yC, yG, yDCGH, yM, xp, rC, rG, rDCGH, rM);
        dVTTetra3D(yG, yH, yDCGH, yM, xp, rG, rH, rDCGH, rM);
        dVTTetra3D(yH, yD, yDCGH, yM, xp, rH, rD, rDCGH, rM);
        dVTTetra3D(yE, yF, yEFHG, yM, xp, rE, rF, rEFHG, rM);
        dVTTetra3D(yF, yH, yEFHG, yM, xp, rF, rH, rEFHG, rM);
        dVTTetra3D(yH, yG, yEFHG, yM, xp, rH, rG, rEFHG, rM);
        dVTTetra3D(yG, yE, yEFHG, yM, xp, rG, rE, rEFHG, rM);
        comp = 0;
        for (r = 0; r < 3; r++) {
          rABDC[r] *= 0.25;
          rBDHF[r] *= 0.25;
          rABFE[r] *= 0.25;
          rCAEG[r] *= 0.25;
          rDCGH[r] *= 0.25;
          rEFHG[r] *= 0.25;
          rM[r] *= 0.125;
          wptr = prod + idn + comp;
#pragma omp atomic
          *wptr += rA[r] + rABDC[r] + rABFE[r] + rCAEG[r] + rM[r];
          wptr += inc_x;
#pragma omp atomic
          *wptr += rB[r] + rABDC[r] + rBDHF[r] + rABFE[r] + rM[r];
          wptr += inc_y;
#pragma omp atomic
          *wptr += rD[r] + rABDC[r] + rBDHF[r] + rDCGH[r] + rM[r];
          wptr -= inc_x;
#pragma omp atomic
          *wptr += rC[r] + rABDC[r] + rCAEG[r] + rDCGH[r] + rM[r];
          wptr += inc_z;
#pragma omp atomic
          *wptr += rG[r] + rCAEG[r] + rDCGH[r] + rEFHG[r] + rM[r];
          wptr += inc_x;
#pragma omp atomic
          *wptr += rH[r] + rBDHF[r] + rDCGH[r] + rEFHG[r] + rM[r];
          wptr -= inc_y;
#pragma omp atomic
          *wptr += rF[r] + rBDHF[r] + rABFE[r] + rEFHG[r] + rM[r];
          wptr -= inc_x;
#pragma omp atomic
          *wptr += rE[r] + rABFE[r] + rCAEG[r] + rEFHG[r] + rM[r];
          comp += nn;
        }
      }
    }
  }
}
```