user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<dJacTx3D>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x648,%rsp
  cvttsd2si 0x8(%rcx),%r14d
  cvttsd2si (%rcx),%ebx
  mov    %rdi,0x240(%rsp)
  mov    %rsi,0x248(%rsp)
  cvttsd2si 0x10(%rcx),%r8d
  mov    %rdx,0x250(%rsp)
  lea    0x1(%rbx),%ecx
  mov    %fs:0x28,%rdx
  mov    %rdx,0x638(%rsp)
  xor    %edx,%edx
  lea    0x1(%r14),%edx
  lea    0x1(%r8),%eax
  mov    %ebx,0x22c(%rsp)
  imul   %ecx,%edx
  mov    %r14d,0x1f4(%rsp)
  mov    %r8d,0x1b4(%rsp)
  imul   %edx,%eax
  test   %ebx,%ebx
  jle    L3
  movslq %ecx,%rcx
  movslq %edx,%rdx
  lea    0x0(,%rcx,8),%r15
  lea    0x0(,%rdx,8),%r11
  lea    0x8(%r15),%r10
  mov    %r11,%rcx
  lea    (%rax,%rax,1),%edx
  mov    %r15,0x1f8(%rsp)
  mov    %r10,0x230(%rsp)
  sub    %r15,%rcx
  movslq %edx,%rdx
  mov    %r11,0x1b8(%rsp)
  test   %r14d,%r14d
  jle    L3
  test   %r8d,%r8d
  jle    L3
  cltq
  mov    %r10,0x210(%rsp)
  movsd  D42(%rip),%xmm1
  lea    0x300(%rsp),%r13
  lea    (%r10,%rax,8),%rax
  lea    0x620(%rsp),%rbp
  movq   $0x0,0x208(%rsp)
  mov    %rax,0x218(%rsp)
  lea    (%r10,%rdx,8),%rax
  lea    0x440(%rsp),%r12
  mov    %rax,0x220(%rsp)
  lea    -0x8(%r15),%rax
  lea    0x320(%rsp),%r15
  mov    %rax,0x200(%rsp)
  mov    %ebx,%eax
  lea    0x480(%rsp),%rbx
  mov    %rbx,0x20(%rsp)
  imul   %r14d,%eax
  lea    0x460(%rsp),%rbx
  mov    %rbx,0x258(%rsp)
  lea    0x380(%rsp),%rbx
  lea    0x4e0(%rsp),%r14
  mov    %rbx,0x90(%rsp)
  lea    0x2a0(%rsp),%rbx
  mov    %rbx,0x40(%rsp)
  cltq
  lea    0x560(%rsp),%rbx
  mov    %rbx,0xd8(%rsp)
  shl    $0x3,%rax
  lea    0x4c0(%rsp),%rbx
  mov    %rbx,0x38(%rsp)
  lea    0x2e0(%rsp),%rbx
  mov    %rbx,0x58(%rsp)
  lea    0x4a0(%rsp),%rbx
  mov    %rbx,0x28(%rsp)
  lea    0x2c0(%rsp),%rbx
  mov    %rbx,0x48(%rsp)
  lea    0x3a0(%rsp),%rbx
  mov    %rbx,0xa0(%rsp)
  lea    0x580(%rsp),%rbx
  mov    %rbx,0x80(%rsp)
  lea    0x540(%rsp),%rbx
  mov    %rbx,0x68(%rsp)
  lea    0x360(%rsp),%rbx
  mov    %rbx,0x18(%rsp)
  lea    0x500(%rsp),%rbx
  mov    %rbx,0x50(%rsp)
  lea    0x3c0(%rsp),%rbx
  mov    %rbx,0xb0(%rsp)
  lea    0x5a0(%rsp),%rbx
  mov    %rbx,0x88(%rsp)
  lea    0x3e0(%rsp),%rbx
  mov    %rbx,0xc0(%rsp)
  lea    0x5c0(%rsp),%rbx
  mov    %rbx,0x98(%rsp)
  lea    0x520(%rsp),%rbx
  mov    %rbx,0x60(%rsp)
  lea    0x340(%rsp),%rbx
  mov    %rbx,0x70(%rsp)
  lea    0x400(%rsp),%rbx
  mov    %rbx,0xc8(%rsp)
  lea    0x5e0(%rsp),%rbx
  mov    %rbx,0xa8(%rsp)
  lea    0x420(%rsp),%rbx
  mov    %rax,0x1c0(%rsp)
  lea    0x280(%rsp),%rax
  mov    %rbx,0xd0(%rsp)
  lea    0x600(%rsp),%rbx
  movl   $0x0,0x228(%rsp)
  mov    %rax,0x30(%rsp)
  mov    %rbx,0xb8(%rsp)
  lea    (%r11,%rsi,1),%rbx
  mov    %rbx,0x268(%rsp)
  lea    (%rcx,%rsi,1),%rbx
  sub    %r10,%rsi
  mov    %rbx,0x278(%rsp)
  lea    (%r11,%rdi,1),%rbx
  add    %rcx,%rdi
  mov    %rbx,0x260(%rsp)
  mov    %rdi,0x270(%rsp)
  mov    %rsi,0x238(%rsp)
  mov    %r14,0x78(%rsp)
  mov    %r13,%r14
  mov    %rbp,%r13
L31:
  mov    0x208(%rsp),%rdi
  mov    0x250(%rsp),%rax
  pxor   %xmm2,%xmm2
  mov    0x210(%rsp),%rbx
  mov    0x238(%rsp),%r11
  lea    (%rax,%rdi,8),%rax
  mov    0x218(%rsp),%rdi
  mov    0x248(%rsp),%r10
  mov    %rbx,%rdx
  mov    %rax,0x1c8(%rsp)
  mov    0x268(%rsp),%rcx
  add    %r11,%rdx
  mov    %rdi,%rax
  mov    0x278(%rsp),%rsi
  add    %r11,%rax
  mov    %rdx,0x108(%rsp)
  mov    %rbx,%rdx
  add    %r10,%rdx
  mov    %rax,0x128(%rsp)
  mov    %rdi,%rax
  add    %r10,%rax
  mov    %rdx,0x110(%rsp)
  mov    %rbx,%rdx
  add    %rcx,%rdx
  mov    %rax,0x130(%rsp)
  mov    %rdi,%rax
  add    %rcx,%rax
  mov    %rdx,0x118(%rsp)
  mov    %rbx,%rdx
  add    %rsi,%rdx
  mov    %rax,0x138(%rsp)
  mov    %rdi,%rax
  add    %rsi,%rax
  mov    %rdx,0x120(%rsp)
  mov    %rcx,%rdx
  mov    %rsi,%rcx
  mov    0x220(%rsp),%rsi
  mov    %rax,0x140(%rsp)
  mov    %rsi,%rax
  add    %r11,%rax
  mov    0x270(%rsp),%r11
  mov    %rax,0x148(%rsp)
  mov    %rsi,%rax
  add    %r10,%rax
  mov    0x260(%rsp),%r10
  mov    %rax,0x150(%rsp)
  mov    %rsi,%rax
  add    %rdx,%rax
  mov    %rax,0x158(%rsp)
  mov    %rsi,%rax
  add    %rcx,%rax
  mov    0x240(%rsp),%rcx
  mov    %rax,0x160(%rsp)
  mov    %rcx,%rax
  sub    0x230(%rsp),%rax
  lea    (%rbx,%rax,1),%rdx
  mov    %rdx,0x168(%rsp)
  mov    %rbx,%rdx
  add    %rcx,%rbx
  mov    %rbx,0x170(%rsp)
  mov    %rdi,%rbx
  add    %rcx,%rbx
  mov    %rbx,0x178(%rsp)
  mov    %rdi,%rbx
  add    %r10,%rbx
  mov    %rbx,0x180(%rsp)
  mov    %rdi,%rbx
  add    %r11,%rbx
  mov    %rbx,0x188(%rsp)
  lea    (%rsi,%rax,1),%rbx
  add    %rdi,%rax
  mov    %rbx,0x190(%rsp)
  mov    %rsi,%rbx
  add    %rcx,%rsi
  mov    %rsi,0x198(%rsp)
  mov    %rbx,%rsi
  add    %r11,%rbx
  mov    %rbx,0x1a8(%rsp)
  add    %r10,%rsi
  lea    (%rdx,%r10,1),%rbx
  mov    %rbx,0x1d8(%rsp)
  lea    (%rdx,%r11,1),%rbx
  mov    %rsi,0x1a0(%rsp)
  movq   $0x0,0x1d0(%rsp)
  movl   $0x0,0x1f0(%rsp)
  mov    %rax,0x1e0(%rsp)
  mov    %rbx,0x1e8(%rsp)
  mov    0x258(%rsp),%rbx
  nopl   0x0(%rax)
L35:
  mov    0x1c8(%rsp),%rcx
  mov    0x1d0(%rsp),%rax
  movl   $0x0,0x1b0(%rsp)
  xor    %r10d,%r10d
  mov    0x1d8(%rsp),%r11
  mov    0x1e8(%rsp),%rdi
  mov    %r12,%rbp
  mov    %rbx,%r12
  mov    0x1e0(%rsp),%rdx
  mov    %rcx,0xe0(%rsp)
  mov    %r10,%rbx
  add    %rax,%r11
  add    %rax,%rdi
  add    %rax,%rdx
  mov    %r11,0xe8(%rsp)
  mov    %rdi,%r10
  mov    %rdx,%r11
  xchg   %ax,%ax
L34:
  mov    0x108(%rsp),%rax
  mov    %r11,0x100(%rsp)
  mov    %r12,%r8
  mov    %rbp,%rcx
  mov    %r10,0xf8(%rsp)
  movsd  (%rax,%rbx,1),%xmm12
  movsd  0x8(%rax,%rbx,1),%xmm14
  mov    0x110(%rsp),%rax
  movapd %xmm12,%xmm4
  movapd %xmm14,%xmm5
  movsd  (%rax,%rbx,1),%xmm11
  movsd  -0x8(%rax,%rbx,1),%xmm7
  addsd  %xmm14,%xmm4
  mov    0x118(%rsp),%rax
  movapd %xmm11,%xmm0
  addsd  %xmm11,%xmm5
  movsd  -0x8(%rax,%rbx,1),%xmm8
  movsd  (%rax,%rbx,1),%xmm13
  addsd  %xmm4,%xmm0
  mov    0x120(%rsp),%rax
  addsd  %xmm13,%xmm5
  movsd  (%rax,%rbx,1),%xmm10
  movsd  -0x8(%rax,%rbx,1),%xmm6
  addsd  %xmm7,%xmm0
  mov    0x128(%rsp),%rax
  addsd  %xmm10,%xmm4
  addsd  %xmm10,%xmm5
  mulsd  %xmm1,%xmm0
  addsd  %xmm6,%xmm4
  mulsd  %xmm1,%xmm5
  movsd  %xmm0,0x380(%rsp)
  mulsd  %xmm1,%xmm4
  movsd  %xmm5,0x3a0(%rsp)
  movsd  (%rax,%rbx,1),%xmm5
  movsd  %xmm4,0x3c0(%rsp)
  movapd %xmm12,%xmm4
  unpcklpd %xmm5,%xmm12
  movaps %xmm12,0x280(%rsp)
  addsd  %xmm7,%xmm4
  movsd  0x8(%rax,%rbx,1),%xmm12
  mov    0x130(%rsp),%rax
  unpcklpd %xmm12,%xmm14
  movaps %xmm14,0x2a0(%rsp)
  addsd  %xmm6,%xmm4
  addsd  %xmm8,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm4,0x3e0(%rsp)
  movapd %xmm11,%xmm4
  addsd  %xmm7,%xmm4
  addsd  %xmm8,%xmm4
  addsd  %xmm13,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm4,0x400(%rsp)
  movapd %xmm10,%xmm4
  addsd  %xmm6,%xmm4
  addsd  %xmm13,%xmm4
  addsd  %xmm8,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm4,0x420(%rsp)
  addsd  %xmm4,%xmm0
  movsd  (%rax,%rbx,1),%xmm4
  mulsd  D27(%rip),%xmm0
  unpcklpd %xmm4,%xmm11
  movaps %xmm11,0x2e0(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm11
  movsd  %xmm0,0x440(%rsp)
  unpcklpd %xmm11,%xmm7
  movaps %xmm7,0x2c0(%rsp)
  mov    0x138(%rsp),%rax
  movaps %xmm2,0x460(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm7
  movaps %xmm2,0x480(%rsp)
  movaps %xmm2,0x4a0(%rsp)
  unpcklpd %xmm7,%xmm8
  movaps %xmm2,0x4c0(%rsp)
  movaps %xmm8,0x340(%rsp)
  movsd  (%rax,%rbx,1),%xmm8
  mov    0x140(%rsp),%rax
  movaps %xmm2,0x4e0(%rsp)
  unpcklpd %xmm8,%xmm13
  movsd  (%rax,%rbx,1),%xmm0
  movaps %xmm2,0x500(%rsp)
  movaps %xmm13,0x360(%rsp)
  movapd %xmm5,%xmm13
  addsd  %xmm11,%xmm5
  addsd  %xmm12,%xmm13
  addsd  %xmm4,%xmm12
  unpcklpd %xmm0,%xmm10
  movaps %xmm2,0x520(%rsp)
  movaps %xmm10,0x320(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm10
  movaps %xmm2,0x540(%rsp)
  addsd  %xmm8,%xmm12
  unpcklpd %xmm10,%xmm6
  addsd  %xmm10,%xmm5
  movaps %xmm2,0x560(%rsp)
  movaps %xmm6,0x300(%rsp)
  movapd %xmm4,%xmm6
  addsd  %xmm11,%xmm4
  addsd  %xmm13,%xmm6
  addsd  %xmm0,%xmm13
  movaps %xmm2,0x580(%rsp)
  addsd  %xmm0,%xmm12
  addsd  %xmm10,%xmm0
  movaps %xmm2,0x5a0(%rsp)
  addsd  %xmm7,%xmm4
  addsd  %xmm7,%xmm5
  movaps %xmm2,0x5c0(%rsp)
  addsd  %xmm11,%xmm6
  addsd  %xmm10,%xmm13
  movaps %xmm2,0x5e0(%rsp)
  addsd  %xmm8,%xmm0
  mulsd  %xmm1,%xmm12
  movaps %xmm2,0x600(%rsp)
  addsd  %xmm8,%xmm4
  mulsd  %xmm1,%xmm5
  mulsd  %xmm1,%xmm6
  addsd  %xmm7,%xmm0
  mulsd  %xmm1,%xmm13
  mulsd  %xmm1,%xmm4
  movsd  %xmm12,0x3a8(%rsp)
  movsd  %xmm5,0x3e8(%rsp)
  mulsd  %xmm1,%xmm0
  movsd  %xmm6,0x388(%rsp)
  movsd  %xmm13,0x3c8(%rsp)
  movsd  %xmm4,0x408(%rsp)
  movsd  %xmm0,0x428(%rsp)
  addsd  %xmm0,%xmm6
  mulsd  D27(%rip),%xmm6
  movsd  %xmm6,0x448(%rsp)
  movaps %xmm2,0x620(%rsp)
  mov    0x148(%rsp),%rax
  movq   $0x0,0x470(%rsp)
  movsd  (%rax,%rbx,1),%xmm5
  movsd  0x8(%rax,%rbx,1),%xmm12
  movq   $0x0,0x490(%rsp)
  mov    0x150(%rsp),%rax
  movq   $0x0,0x4b0(%rsp)
  movsd  %xmm12,0x2b0(%rsp)
  movapd %xmm5,%xmm13
  movsd  (%rax,%rbx,1),%xmm4
  movsd  -0x8(%rax,%rbx,1),%xmm11
  addsd  %xmm12,%xmm13
  movsd  %xmm5,0x290(%rsp)
  mov    0x158(%rsp),%rax
  movq   $0x0,0x4d0(%rsp)
  addsd  %xmm4,%xmm12
  movapd %xmm4,%xmm6
  addsd  %xmm11,%xmm5
  movsd  %xmm4,0x2f0(%rsp)
  movsd  (%rax,%rbx,1),%xmm8
  movsd  -0x8(%rax,%rbx,1),%xmm7
  addsd  %xmm13,%xmm6
  addsd  %xmm11,%xmm4
  mov    0x160(%rsp),%rax
  movsd  %xmm11,0x2d0(%rsp)
  movsd  %xmm7,0x350(%rsp)
  addsd  %xmm8,%xmm12
  movsd  -0x8(%rax,%rbx,1),%xmm10
  movsd  (%rax,%rbx,1),%xmm0
  addsd  %xmm11,%xmm6
  addsd  %xmm7,%xmm4
  movsd  %xmm8,0x370(%rsp)
  movsd  %xmm0,0x330(%rsp)
  addsd  %xmm0,%xmm12
  addsd  %xmm0,%xmm13
  addsd  %xmm10,%xmm0
  addsd  %xmm10,%xmm5
  mulsd  %xmm1,%xmm6
  movsd  %xmm10,0x310(%rsp)
  addsd  %xmm8,%xmm4
  addsd  %xmm10,%xmm13
  mulsd  %xmm1,%xmm12
  addsd  %xmm8,%xmm0
  addsd  %xmm7,%xmm5
  mulsd  %xmm1,%xmm4
  movsd  %xmm6,0x390(%rsp)
  mulsd  %xmm1,%xmm13
  addsd  %xmm7,%xmm0
  mulsd  %xmm1,%xmm5
  movsd  %xmm12,0x3b0(%rsp)
  movsd  %xmm4,0x410(%rsp)
  mulsd  %xmm1,%xmm0
  movsd  %xmm13,0x3d0(%rsp)
  movsd  %xmm5,0x3f0(%rsp)
  movsd  %xmm0,0x430(%rsp)
  addsd  %xmm0,%xmm6
  mulsd  D27(%rip),%xmm6
  movsd  %xmm6,0x450(%rsp)
  movq   $0x0,0x4f0(%rsp)
  mov    0xe0(%rsp),%rax
  movq   $0x0,0x510(%rsp)
  movq   $0x0,0x530(%rsp)
  movsd  (%rax),%xmm3
  movq   $0x0,0x550(%rsp)
  movsd  %xmm3,(%rsp)
  movapd %xmm3,%xmm2
  xorpd  D34(%rip),%xmm2
  movq   $0x0,0x570(%rsp)
  movq   $0x0,0x590(%rsp)
  movapd %xmm2,%xmm0
  movq   $0x0,0x5b0(%rsp)
  movq   $0x0,0x5d0(%rsp)
  movq   $0x0,0x5f0(%rsp)
  movq   $0x0,0x610(%rsp)
  movq   $0x0,0x630(%rsp)
  push   %r13
  push   0xe0(%rsp)
  mov    0x30(%rsp),%r9
  mov    0xa0(%rsp),%rdx
  mov    0x50(%rsp),%rsi
  mov    0x40(%rsp),%rdi
  movsd  %xmm2,0x100(%rsp)
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  push   0xf0(%rsp)
  mov    0x58(%rsp),%r9
  mov    0x40(%rsp),%r8
  movsd  0x110(%rsp),%xmm0
  mov    0xb0(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0x60(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %r13
  push   0xe0(%rsp)
  mov    0x38(%rsp),%r9
  mov    0x48(%rsp),%r8
  movsd  0x100(%rsp),%xmm0
  mov    0xa0(%rsp),%rdx
  mov    0x58(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %r12,%r9
  mov    %rbp,%rcx
  push   0xf0(%rsp)
  mov    0x48(%rsp),%r8
  movsd  0x110(%rsp),%xmm0
  mov    0xb0(%rsp),%rdx
  mov    0x50(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %r13
  push   0x88(%rsp)
  mov    0x48(%rsp),%r9
  mov    0x30(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xb0(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0x50(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  push   0x98(%rsp)
  mov    0x38(%rsp),%rsi
  mov    0x88(%rsp),%r9
  mov    0x58(%rsp),%r8
  movsd  0x20(%rsp),%xmm0
  mov    0xc0(%rsp),%rdx
  mov    0x78(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r15,%rsi
  push   %r13
  push   0x88(%rsp)
  mov    0x60(%rsp),%r9
  mov    0x78(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xb0(%rsp),%rdx
  mov    0x28(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  mov    %r15,%rdi
  push   0x98(%rsp)
  mov    0x70(%rsp),%r8
  mov    0x40(%rsp),%r9
  movsd  0x20(%rsp),%xmm0
  mov    0xc0(%rsp),%rdx
  mov    0x60(%rsp),%rsi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %r12,%r8
  mov    %rbp,%rcx
  push   %r13
  push   0x90(%rsp)
  mov    0x30(%rsp),%r9
  movsd  0x10(%rsp),%xmm0
  mov    0xc0(%rsp),%rdx
  mov    0x50(%rsp),%rsi
  mov    0x40(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  mov    %r15,%rsi
  push   0xa0(%rsp)
  mov    0x60(%rsp),%rdi
  mov    0x70(%rsp),%r9
  mov    0x40(%rsp),%r8
  movsd  0x20(%rsp),%xmm0
  mov    0xd0(%rsp),%rdx
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r14,%rsi
  push   %r13
  mov    %r15,%rdi
  push   0x90(%rsp)
  mov    0x88(%rsp),%r9
  mov    0x60(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xc0(%rsp),%rdx
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %r12,%r9
  mov    %rbp,%rcx
  push   0xa0(%rsp)
  movsd  0x20(%rsp),%xmm0
  mov    %r14,%rdi
  mov    0x98(%rsp),%r8
  mov    0xd0(%rsp),%rdx
  mov    0x50(%rsp),%rsi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %r12,%r9
  mov    %rbp,%rcx
  push   %r13
  push   0xa0(%rsp)
  mov    0x38(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xd0(%rsp),%rdx
  mov    0x40(%rsp),%rsi
  mov    0x58(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %r12,%r8
  mov    %rbp,%rcx
  push   0xb0(%rsp)
  mov    0x50(%rsp),%rdi
  mov    %r14,%rsi
  mov    0x98(%rsp),%r9
  movsd  0x20(%rsp),%xmm0
  mov    0xe0(%rsp),%rdx
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r14,%rdi
  push   %r13
  push   0xa0(%rsp)
  mov    0x70(%rsp),%r9
  mov    0x88(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xd0(%rsp),%rdx
  mov    0x80(%rsp),%rsi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  push   0xb0(%rsp)
  mov    0x48(%rsp),%r9
  mov    0x80(%rsp),%r8
  movsd  0x20(%rsp),%xmm0
  mov    0xe0(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0x90(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %r13
  push   0xb0(%rsp)
  mov    0x38(%rsp),%r9
  mov    0x48(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xd8(%rsp),%rdx
  mov    0x58(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  push   0xc0(%rsp)
  mov    0x80(%rsp),%r9
  mov    0x48(%rsp),%r8
  movsd  0x20(%rsp),%xmm0
  mov    0xe8(%rsp),%rdx
  mov    0x90(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %r13
  push   0xb0(%rsp)
  mov    0x78(%rsp),%r9
  mov    0x70(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xd8(%rsp),%rdx
  mov    0x28(%rsp),%rsi
  mov    0x80(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  push   0xc0(%rsp)
  mov    0x78(%rsp),%rsi
  mov    0x38(%rsp),%rdi
  mov    0x58(%rsp),%r9
  mov    0x88(%rsp),%r8
  movsd  0x20(%rsp),%xmm0
  mov    0xe8(%rsp),%rdx
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  mov    %r15,%rsi
  push   %r13
  mov    %r14,%rdi
  push   0xc0(%rsp)
  mov    0x60(%rsp),%r9
  mov    0x88(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xe0(%rsp),%rdx
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  mov    %r15,%rdi
  push   0xd0(%rsp)
  mov    0x88(%rsp),%r9
  mov    0x70(%rsp),%r8
  movsd  0x20(%rsp),%xmm0
  mov    0xf0(%rsp),%rdx
  mov    0x38(%rsp),%rsi
  call   <dVTTetra3D@plt>
  add    $0x20,%rsp
  mov    %rbp,%rcx
  push   %r13
  push   0xc0(%rsp)
  mov    0x70(%rsp),%r9
  mov    0x78(%rsp),%r8
  movsd  0x10(%rsp),%xmm0
  mov    0xe0(%rsp),%rdx
  mov    0x80(%rsp),%rsi
  mov    0x28(%rsp),%rdi
  call   <dVTTetra3D@plt>
  push   %r13
  mov    %rbp,%rcx
  mov    %r14,%rsi
  push   0xd0(%rsp)
  movsd  0x20(%rsp),%xmm0
  mov    0xf0(%rsp),%rdx
  mov    0x98(%rsp),%r9
  mov    0x80(%rsp),%r8
  mov    0x90(%rsp),%rdi
  call   <dVTTetra3D@plt>
  mov    D42(%rip),%rax
  movsd  0x5c0(%rsp),%xmm0
  movapd D42(%rip),%xmm3
  mov    0x188(%rsp),%rdx
  movsd  0x5e0(%rsp),%xmm11
  movapd %xmm0,%xmm12
  movq   %rax,%xmm1
  mov    D78(%rip),%rax
  movsd  0x580(%rsp),%xmm15
  movupd (%rdx,%rbx,1),%xmm2
  movhpd 0x5a0(%rsp),%xmm12
  mulpd  %xmm3,%xmm12
  movapd %xmm11,%xmm14
  unpcklpd %xmm0,%xmm11
  movsd  0x600(%rsp),%xmm0
  mulsd  %xmm1,%xmm15
  movq   %rax,%xmm9
  movhpd 0x5a0(%rsp),%xmm14
  mov    0x108(%rsp),%rax
  movapd 0x580(%rsp),%xmm7
  mulsd  %xmm1,%xmm0
  movapd 0x5a0(%rsp),%xmm6
  movapd 0x5c0(%rsp),%xmm5
  mulpd  %xmm3,%xmm11
  movapd 0x5e0(%rsp),%xmm4
  mulpd  %xmm3,%xmm14
  mulpd  %xmm3,%xmm6
  mulpd  %xmm3,%xmm7
  unpcklpd %xmm15,%xmm15
  movsd  %xmm0,0x600(%rsp)
  mulpd  %xmm3,%xmm5
  movapd %xmm0,%xmm13
  movsd  0x620(%rsp),%xmm0
  mulpd  %xmm3,%xmm4
  unpcklpd %xmm13,%xmm13
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x620(%rsp)
  movapd %xmm0,%xmm10
  movsd  0x640(%rsp),%xmm0
  unpcklpd %xmm10,%xmm10
  mulsd  %xmm9,%xmm0
  movsd  %xmm0,0x640(%rsp)
  movapd %xmm0,%xmm8
  movsd  0x480(%rsp),%xmm0
  unpcklpd %xmm8,%xmm8
  movhpd 0x4a0(%rsp),%xmm0
  addpd  %xmm15,%xmm0
  addpd  %xmm12,%xmm0
  addpd  %xmm11,%xmm0
  addpd  %xmm8,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,(%rdx,%rbx,1)
  mov    0x190(%rsp),%rdx
  movsd  0x4c0(%rsp),%xmm0
  movhpd 0x4e0(%rsp),%xmm0
  movupd -0x8(%rdx,%rbx,1),%xmm2
  addpd  %xmm15,%xmm0
  addpd  %xmm14,%xmm0
  addpd  %xmm13,%xmm0
  addpd  %xmm8,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,-0x8(%rdx,%rbx,1)
  movupd -0x8(%rax),%xmm2
  movsd  0x540(%rsp),%xmm0
  movhpd 0x560(%rsp),%xmm0
  addpd  %xmm14,%xmm0
  addpd  %xmm13,%xmm0
  addpd  %xmm10,%xmm0
  addpd  %xmm8,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,-0x8(%rax)
  mov    0x118(%rsp),%r10
  movsd  0x500(%rsp),%xmm0
  mov    0x120(%rsp),%r11
  mov    0x198(%rsp),%rcx
  movhpd 0x520(%rsp),%xmm0
  movupd -0x8(%r10),%xmm2
  mov    0x1a0(%rsp),%rsi
  addpd  %xmm12,%xmm0
  addpd  %xmm11,%xmm0
  movsd  0x588(%rsp),%xmm11
  movaps %xmm7,0x580(%rsp)
  mulsd  %xmm1,%xmm11
  addpd  %xmm10,%xmm0
  addpd  %xmm8,%xmm0
  movsd  0x5a8(%rsp),%xmm8
  movaps %xmm6,0x5a0(%rsp)
  movsd  0x5e8(%rsp),%xmm6
  movaps %xmm4,0x5e0(%rsp)
  unpcklpd %xmm11,%xmm11
  movapd %xmm6,%xmm10
  addpd  %xmm2,%xmm0
  unpcklpd %xmm8,%xmm10
  mulpd  %xmm3,%xmm10
  movups %xmm0,-0x8(%r10)
  movupd (%r11),%xmm2
  movsd  0x5c8(%rsp),%xmm0
  movaps %xmm5,0x5c0(%rsp)
  movapd %xmm0,%xmm7
  unpcklpd %xmm0,%xmm6
  movsd  0x608(%rsp),%xmm0
  mulpd  %xmm3,%xmm6
  unpcklpd %xmm8,%xmm7
  mulsd  %xmm1,%xmm0
  mulpd  %xmm3,%xmm7
  movsd  %xmm0,0x608(%rsp)
  movapd %xmm0,%xmm8
  movsd  0x628(%rsp),%xmm0
  unpcklpd %xmm8,%xmm8
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x628(%rsp)
  movapd %xmm0,%xmm5
  movsd  0x648(%rsp),%xmm0
  unpcklpd %xmm5,%xmm5
  mulsd  %xmm9,%xmm0
  movsd  %xmm0,0x648(%rsp)
  movapd %xmm0,%xmm4
  movsd  0x488(%rsp),%xmm0
  unpcklpd %xmm4,%xmm4
  movhpd 0x4a8(%rsp),%xmm0
  addpd  %xmm11,%xmm0
  addpd  %xmm7,%xmm0
  addpd  %xmm6,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,(%r11)
  movupd -0x8(%rcx,%rbx,1),%xmm2
  movsd  0x4c8(%rsp),%xmm0
  movhpd 0x4e8(%rsp),%xmm0
  addpd  %xmm11,%xmm0
  addpd  %xmm10,%xmm0
  addpd  %xmm8,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,-0x8(%rcx,%rbx,1)
  movsd  0x548(%rsp),%xmm0
  movhpd 0x568(%rsp),%xmm0
  movupd -0x8(%rsi,%rbx,1),%xmm2
  mov    0x1a8(%rsp),%rdx
  addpd  %xmm10,%xmm0
  mov    0x1b0(%rsp),%rcx
  addpd  %xmm8,%xmm0
  addpd  %xmm5,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,-0x8(%rsi,%rbx,1)
  mov    0x1b8(%rsp),%rsi
  movsd  0x508(%rsp),%xmm0
  movhpd 0x528(%rsp),%xmm0
  addpd  %xmm7,%xmm0
  movupd -0x8(%rdx,%rbx,1),%xmm7
  addpd  %xmm6,%xmm0
  movsd  0x5f0(%rsp),%xmm6
  movapd %xmm6,%xmm10
  addpd  %xmm5,%xmm0
  addpd  %xmm4,%xmm0
  movsd  0x5b0(%rsp),%xmm4
  unpcklpd %xmm4,%xmm10
  addpd  %xmm7,%xmm0
  mulpd  %xmm3,%xmm10
  movups %xmm0,-0x8(%rdx,%rbx,1)
  movupd (%rcx,%rbx,1),%xmm2
  movsd  0x590(%rsp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x590(%rsp)
  movapd %xmm0,%xmm11
  movapd %xmm4,%xmm0
  mulsd  %xmm1,%xmm0
  unpcklpd %xmm11,%xmm11
  movsd  %xmm0,0x5b0(%rsp)
  movsd  0x5d0(%rsp),%xmm0
  movapd %xmm0,%xmm7
  movapd %xmm0,%xmm5
  unpcklpd %xmm0,%xmm6
  movsd  0x610(%rsp),%xmm0
  mulsd  %xmm1,%xmm5
  unpcklpd %xmm4,%xmm7
  mulsd  %xmm1,%xmm0
  mulpd  %xmm3,%xmm7
  mulpd  %xmm3,%xmm6
  movsd  %xmm5,0x5d0(%rsp)
  movsd  %xmm0,0x610(%rsp)
  movapd %xmm0,%xmm8
  movsd  0x630(%rsp),%xmm0
  unpcklpd %xmm8,%xmm8
  movlpd %xmm6,0x5f0(%rsp)
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x630(%rsp)
  movapd %xmm0,%xmm5
  movsd  0x650(%rsp),%xmm0
  unpcklpd %xmm5,%xmm5
  mulsd  %xmm9,%xmm0
  movsd  %xmm0,0x650(%rsp)
  movapd %xmm0,%xmm4
  movsd  0x490(%rsp),%xmm0
  unpcklpd %xmm4,%xmm4
  movhpd 0x4b0(%rsp),%xmm0
  addpd  %xmm11,%xmm0
  addpd  %xmm7,%xmm0
  addpd  %xmm6,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,(%rcx,%rbx,1)
  movupd -0x8(%rsi,%rbx,1),%xmm2
  movsd  0x4d0(%rsp),%xmm0
  movhpd 0x4f0(%rsp),%xmm0
  addpd  %xmm11,%xmm0
  addpd  %xmm10,%xmm0
  addpd  %xmm8,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm2,%xmm0
  movups %xmm0,-0x8(%rsi,%rbx,1)
  movsd  0x550(%rsp),%xmm0
  movhpd 0x570(%rsp),%xmm0
  mov    0x1c0(%rsp),%rdx
  mov    0x1c8(%rsp),%rcx
  addpd  %xmm10,%xmm0
  mov    0x1e0(%rsp),%rsi
  add    %rsi,0x100(%rsp)
  movupd -0x8(%rdx,%rbx,1),%xmm2
  mov    0x1d8(%rsp),%rsi
  addl   $0x1,0x1d0(%rsp)
  addpd  %xmm8,%xmm0
  add    %rsi,%rax
  add    %rsi,%r10
  add    %rsi,%r11
  mov    %rax,0x108(%rsp)
  addpd  %xmm5,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  movups %xmm0,-0x8(%rdx,%rbx,1)
  movsd  0x510(%rsp),%xmm0
  movhpd 0x530(%rsp),%xmm0
  addpd  %xmm7,%xmm0
  movupd -0x8(%rcx,%rbx,1),%xmm7
  movaps %xmm7,0x20(%rsp)
  addpd  %xmm6,%xmm0
  addpd  %xmm5,%xmm0
  addpd  %xmm4,%xmm0
  addpd  %xmm7,%xmm0
  movups %xmm0,-0x8(%rcx,%rbx,1)
  mov    0x1d0(%rsp),%ecx
  add    $0x20,%rsp
  add    %rsi,%rbx
  cmp    %ecx,0x1b4(%rsp)
  jne    L34
  mov    0x1f8(%rsp),%rax
  addl   $0x1,0x1f0(%rsp)
  mov    %r12,%rbx
  mov    %rbp,%r12
  mov    0x200(%rsp),%rcx
  add    %rax,0x108(%rsp)
  add    %rcx,0x1c8(%rsp)
  mov    0x1f0(%rsp),%edi
  add    %rax,0x110(%rsp)
  add    %rax,0x118(%rsp)
  add    %rax,0x120(%rsp)
  add    %rax,0x128(%rsp)
  add    %rax,0x130(%rsp)
  add    %rax,0x138(%rsp)
  add    %rax,0x140(%rsp)
  add    %rax,0x148(%rsp)
  add    %rax,0x150(%rsp)
  add    %rax,0x158(%rsp)
  add    %rax,0x160(%rsp)
  add    %rax,0x168(%rsp)
  add    %rax,0x170(%rsp)
  add    %rax,0x178(%rsp)
  add    %rax,0x180(%rsp)
  add    %rax,0x188(%rsp)
  add    %rax,0x190(%rsp)
  add    %rax,0x198(%rsp)
  add    %rax,0x1a0(%rsp)
  add    %rax,0x1a8(%rsp)
  add    %rax,0x1d0(%rsp)
  cmp    %edi,0x1f4(%rsp)
  jne    L35
  addl   $0x1,0x228(%rsp)
  mov    0x228(%rsp),%eax
  addq   $0x1,0x208(%rsp)
  addq   $0x8,0x210(%rsp)
  addq   $0x8,0x218(%rsp)
  addq   $0x8,0x220(%rsp)
  cmp    %eax,0x22c(%rsp)
  jne    L31
L3:
  mov    0x638(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L5
  add    $0x648,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L5:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D42
type: f64[2]
name: parse_data
arguments: data_tag: D27
type: f64
name: parse_data
arguments: data_tag: D34
type: f32[4]
name: parse_data
arguments: data_tag: D78
type: f64

tool: {"D42": [0.25,0.25]}

tool: D27: 0.5

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

tool: D78: 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;
        }
      }
    }
  }
}
```