user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<Jac3D>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x338,%rsp
  cvttsd2si 0x8(%rdx),%ebx
  mov    %rdi,0x148(%rsp)
  cvttsd2si 0x10(%rdx),%r11d
  mov    %fs:0x28,%rax
  mov    %rax,0x328(%rsp)
  xor    %eax,%eax
  cvttsd2si (%rdx),%eax
  lea    0x1(%rbx),%ecx
  mov    %ebx,0xf4(%rsp)
  lea    0x1(%r11),%edx
  mov    %r11d,0xc4(%rsp)
  lea    0x1(%rax),%edi
  imul   %edi,%ecx
  imul   %ecx,%edx
  test   %eax,%eax
  jle    L38
  movslq %edi,%rdi
  movslq %ecx,%rcx
  lea    0x0(,%rdi,8),%r10
  lea    0x0(,%rcx,8),%rdi
  lea    0x8(%r10),%r8
  mov    %rdi,0xc8(%rsp)
  lea    (%r8,%rdi,1),%rcx
  lea    (%rdx,%rdx,1),%edi
  mov    %r10,0xf8(%rsp)
  movslq %edi,%rdi
  test   %ebx,%ebx
  jle    L38
  test   %r11d,%r11d
  jle    L38
  lea    (%rsi,%rcx,1),%r9
  sub    %r10,%rcx
  movslq %edx,%rdx
  add    %rsi,%r8
  add    %rsi,%rcx
  shl    $0x3,%rdi
  lea    0x190(%rsp),%r14
  mov    %rsi,0x128(%rsp)
  mov    %rcx,0x110(%rsp)
  movslq %eax,%rcx
  imul   %ebx,%eax
  movsd  D45(%rip),%xmm1
  mov    %rcx,0x140(%rsp)
  lea    -0x8(%r10),%rcx
  movsd  D3(%rip),%xmm3
  lea    0x310(%rsp),%rbp
  mov    %rcx,0x100(%rsp)
  lea    0x0(,%rdx,8),%rcx
  lea    0x170(%rsp),%rbx
  cltq
  mov    %r8,0x120(%rsp)
  lea    0x230(%rsp),%r12
  lea    0x1d0(%rsp),%r15
  shl    $0x3,%rax
  mov    %r9,0x118(%rsp)
  lea    0x210(%rsp),%r13
  mov    %rax,0xd0(%rsp)
  lea    0x250(%rsp),%rax
  mov    %rax,0x28(%rsp)
  lea    0x150(%rsp),%rax
  mov    %rax,0x8(%rsp)
  lea    0x1b0(%rsp),%rax
  mov    %rax,(%rsp)
  lea    0x270(%rsp),%rax
  mov    %rax,0x38(%rsp)
  lea    0x1f0(%rsp),%rax
  mov    %rax,0x10(%rsp)
  lea    0x290(%rsp),%rax
  mov    %rax,0x40(%rsp)
  lea    0x2b0(%rsp),%rax
  mov    %rax,0x48(%rsp)
  lea    0x2d0(%rsp),%rax
  mov    %rax,0x20(%rsp)
  lea    0x2f0(%rsp),%rax
  mov    %rcx,0x138(%rsp)
  mov    %rdi,0x130(%rsp)
  movq   $0x0,0x108(%rsp)
  mov    %rax,0x30(%rsp)
  mov    %r14,0x18(%rsp)
L9:
  mov    0x108(%rsp),%rdi
  mov    0x148(%rsp),%rax
  movl   $0x0,0xf0(%rsp)
  mov    0x110(%rsp),%rcx
  mov    0x118(%rsp),%rdx
  lea    (%rax,%rdi,8),%rax
  mov    0x128(%rsp),%r8
  mov    0x120(%rsp),%r9
  mov    %rax,0xe8(%rsp)
  mov    0x138(%rsp),%rax
  mov    %rcx,0xd8(%rsp)
  mov    %rax,%r11
  mov    %rax,%r10
  mov    %rax,%rdi
  add    %rcx,%rax
  mov    %rax,0xa8(%rsp)
  add    %rdx,%rdi
  add    %r9,%r10
  mov    0x130(%rsp),%rax
  mov    %rdi,0xb0(%rsp)
  add    %r8,%r11
  mov    %rax,%rdi
  mov    %rdx,0xe0(%rsp)
  add    %r8,%rdi
  mov    %r10,0xb8(%rsp)
  mov    %rdi,0xa0(%rsp)
  mov    %rax,%rdi
  add    %r9,%rdi
  mov    %rdi,0x98(%rsp)
  mov    %rax,%rdi
  add    %rcx,%rax
  add    %rdx,%rdi
  mov    %rax,0x88(%rsp)
  mov    %rdi,0x90(%rsp)
  nopl   (%rax)
L65:
  mov    0xe8(%rsp),%rax
  mov    %rbp,%rdi
  mov    %r13,%r14
  movl   $0x0,0xc0(%rsp)
  mov    %rbx,%r13
  mov    0xe0(%rsp),%r10
  mov    %r12,%rbp
  mov    %r15,%r12
  mov    %rax,0x50(%rsp)
  xor    %eax,%eax
  mov    %rdi,%r15
  mov    %rax,%rbx
  mov    0xd8(%rsp),%rax
  nop
L66:
  movsd  (%r8,%rbx,1),%xmm9
  movsd  0x8(%r8,%rbx,1),%xmm12
  mov    %r15,%rcx
  mov    %rax,0x68(%rsp)
  movsd  (%r9,%rbx,1),%xmm10
  movsd  (%rax,%rbx,1),%xmm8
  mov    %r8,0x80(%rsp)
  mov    %r13,%rsi
  movapd %xmm9,%xmm2
  movsd  -0x8(%rax,%rbx,1),%xmm5
  movsd  -0x8(%r9,%rbx,1),%xmm6
  movapd %xmm12,%xmm4
  addsd  %xmm12,%xmm2
  movapd %xmm10,%xmm0
  addsd  %xmm10,%xmm4
  movsd  -0x8(%r10,%rbx,1),%xmm7
  movsd  (%r10,%rbx,1),%xmm11
  mov    0xb8(%rsp),%rax
  mov    %r9,0x78(%rsp)
  mov    %r10,0x70(%rsp)
  addsd  %xmm2,%xmm0
  addsd  %xmm8,%xmm2
  mov    %r11,0x60(%rsp)
  addsd  %xmm11,%xmm4
  addsd  %xmm5,%xmm2
  addsd  %xmm6,%xmm0
  addsd  %xmm8,%xmm4
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm4
  movsd  %xmm2,0x290(%rsp)
  movapd %xmm9,%xmm2
  movsd  %xmm0,0x250(%rsp)
  addsd  %xmm6,%xmm2
  movsd  %xmm4,0x270(%rsp)
  movsd  (%r11,%rbx,1),%xmm4
  addsd  %xmm5,%xmm2
  unpcklpd %xmm4,%xmm9
  movaps %xmm9,0x150(%rsp)
  movsd  0x8(%r11,%rbx,1),%xmm9
  addsd  %xmm7,%xmm2
  unpcklpd %xmm9,%xmm12
  movaps %xmm12,0x170(%rsp)
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,0x2b0(%rsp)
  movapd %xmm10,%xmm2
  addsd  %xmm6,%xmm2
  addsd  %xmm7,%xmm2
  addsd  %xmm11,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,0x2d0(%rsp)
  movapd %xmm8,%xmm2
  addsd  %xmm5,%xmm2
  addsd  %xmm11,%xmm2
  addsd  %xmm7,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,0x2f0(%rsp)
  addsd  %xmm2,%xmm0
  movsd  (%rax,%rbx,1),%xmm2
  unpcklpd %xmm2,%xmm10
  movaps %xmm10,0x1b0(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm10
  mulsd  %xmm3,%xmm0
  mov    0xb0(%rsp),%rax
  unpcklpd %xmm10,%xmm6
  movaps %xmm6,0x190(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm6
  movsd  %xmm0,0x310(%rsp)
  unpcklpd %xmm6,%xmm7
  movaps %xmm7,0x210(%rsp)
  movsd  (%rax,%rbx,1),%xmm7
  mov    0xa8(%rsp),%rax
  unpcklpd %xmm7,%xmm11
  movsd  (%rax,%rbx,1),%xmm0
  movaps %xmm11,0x230(%rsp)
  movapd %xmm4,%xmm11
  addsd  %xmm10,%xmm4
  addsd  %xmm9,%xmm11
  addsd  %xmm2,%xmm9
  unpcklpd %xmm0,%xmm8
  movaps %xmm8,0x1f0(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm8
  mov    0xa0(%rsp),%rax
  addsd  %xmm7,%xmm9
  unpcklpd %xmm8,%xmm5
  addsd  %xmm8,%xmm4
  movaps %xmm5,0x1d0(%rsp)
  movapd %xmm2,%xmm5
  addsd  %xmm10,%xmm2
  addsd  %xmm11,%xmm5
  addsd  %xmm0,%xmm11
  addsd  %xmm0,%xmm9
  addsd  %xmm8,%xmm0
  addsd  %xmm6,%xmm2
  addsd  %xmm6,%xmm4
  addsd  %xmm10,%xmm5
  addsd  %xmm8,%xmm11
  addsd  %xmm7,%xmm0
  mulsd  %xmm1,%xmm9
  addsd  %xmm7,%xmm2
  mulsd  %xmm1,%xmm4
  mulsd  %xmm1,%xmm5
  addsd  %xmm6,%xmm0
  mulsd  %xmm1,%xmm11
  mulsd  %xmm1,%xmm2
  movsd  %xmm9,0x278(%rsp)
  movsd  0x8(%rax,%rbx,1),%xmm9
  movsd  %xmm4,0x2b8(%rsp)
  mulsd  %xmm1,%xmm0
  movsd  (%rax,%rbx,1),%xmm4
  mov    0x98(%rsp),%rax
  movsd  %xmm9,0x180(%rsp)
  movsd  %xmm5,0x258(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm10
  movsd  %xmm2,0x2d8(%rsp)
  movsd  (%rax,%rbx,1),%xmm2
  mov    0x90(%rsp),%rax
  movsd  %xmm11,0x298(%rsp)
  movapd %xmm4,%xmm11
  movsd  (%rax,%rbx,1),%xmm7
  movsd  -0x8(%rax,%rbx,1),%xmm6
  addsd  %xmm9,%xmm11
  movsd  %xmm0,0x2f8(%rsp)
  addsd  %xmm5,%xmm0
  addsd  %xmm2,%xmm9
  mov    0x88(%rsp),%rax
  movsd  %xmm10,0x1a0(%rsp)
  movsd  %xmm7,0x240(%rsp)
  movapd %xmm2,%xmm5
  movsd  %xmm6,0x220(%rsp)
  addsd  %xmm11,%xmm5
  mulsd  %xmm3,%xmm0
  addsd  %xmm7,%xmm9
  movsd  %xmm4,0x160(%rsp)
  addsd  %xmm10,%xmm4
  movsd  %xmm2,0x1c0(%rsp)
  addsd  %xmm10,%xmm2
  addsd  %xmm10,%xmm5
  addsd  %xmm6,%xmm2
  movsd  %xmm0,0x318(%rsp)
  movsd  (%rax,%rbx,1),%xmm0
  mulsd  %xmm1,%xmm5
  movsd  %xmm0,0x200(%rsp)
  movsd  -0x8(%rax,%rbx,1),%xmm8
  addsd  %xmm0,%xmm9
  addsd  %xmm0,%xmm11
  addsd  %xmm7,%xmm2
  mov    0x28(%rsp),%rdx
  mov    0x8(%rsp),%rdi
  addsd  %xmm8,%xmm0
  addsd  %xmm8,%xmm4
  movsd  %xmm8,0x1e0(%rsp)
  addsd  %xmm8,%xmm11
  mulsd  %xmm1,%xmm9
  movsd  %xmm5,0x260(%rsp)
  mulsd  %xmm1,%xmm2
  addsd  %xmm7,%xmm0
  addsd  %xmm6,%xmm4
  mulsd  %xmm1,%xmm11
  addsd  %xmm6,%xmm0
  mulsd  %xmm1,%xmm4
  movsd  %xmm9,0x280(%rsp)
  movsd  %xmm2,0x2e0(%rsp)
  movsd  %xmm11,0x2a0(%rsp)
  mulsd  %xmm1,%xmm0
  movsd  %xmm4,0x2c0(%rsp)
  movsd  %xmm0,0x300(%rsp)
  addsd  %xmm5,%xmm0
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,0x320(%rsp)
  call   <det3D@plt>
  mov    0x28(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r13,%rdi
  mov    (%rsp),%rsi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  movsd  0x58(%rsp),%xmm2
  mov    (%rsp),%rdi
  mov    %r15,%rcx
  xorpd  D41(%rip),%xmm2
  mov    0x28(%rsp),%rdx
  mov    0x18(%rsp),%rsi
  subsd  %xmm0,%xmm2
  movsd  %xmm2,0x58(%rsp)
  call   <det3D@plt>
  movsd  0x58(%rsp),%xmm2
  mov    0x28(%rsp),%rdx
  mov    %r15,%rcx
  mov    0x8(%rsp),%rsi
  mov    0x18(%rsp),%rdi
  subsd  %xmm0,%xmm2
  movsd  %xmm2,0x58(%rsp)
  call   <det3D@plt>
  mov    0x38(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r13,%rdi
  movsd  0x58(%rsp),%xmm2
  mov    (%rsp),%rsi
  subsd  %xmm0,%xmm2
  movsd  %xmm2,0x58(%rsp)
  call   <det3D@plt>
  mov    0x38(%rsp),%rdx
  mov    %r15,%rcx
  mov    %rbp,%rsi
  addsd  0x58(%rsp),%xmm0
  mov    (%rsp),%rdi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x38(%rsp),%rdx
  mov    %r15,%rcx
  mov    %rbp,%rdi
  movsd  0x58(%rsp),%xmm6
  mov    0x10(%rsp),%rsi
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x58(%rsp)
  call   <det3D@plt>
  mov    0x38(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r13,%rsi
  addsd  0x58(%rsp),%xmm0
  mov    0x10(%rsp),%rdi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x40(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r13,%rsi
  movsd  0x58(%rsp),%xmm7
  mov    0x8(%rsp),%rdi
  addsd  %xmm0,%xmm7
  movsd  %xmm7,0x58(%rsp)
  call   <det3D@plt>
  mov    0x40(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r13,%rdi
  addsd  0x58(%rsp),%xmm0
  mov    0x10(%rsp),%rsi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x40(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r12,%rsi
  movsd  0x58(%rsp),%xmm1
  mov    0x10(%rsp),%rdi
  addsd  %xmm0,%xmm1
  movsd  %xmm1,0x58(%rsp)
  call   <det3D@plt>
  mov    0x40(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r12,%rdi
  addsd  0x58(%rsp),%xmm0
  mov    0x8(%rsp),%rsi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  movsd  0x58(%rsp),%xmm6
  mov    0x48(%rsp),%rdx
  mov    %r15,%rcx
  mov    0x8(%rsp),%rsi
  mov    0x18(%rsp),%rdi
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x58(%rsp)
  call   <det3D@plt>
  mov    0x48(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r12,%rsi
  addsd  0x58(%rsp),%xmm0
  mov    0x8(%rsp),%rdi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x48(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r14,%rsi
  movsd  0x58(%rsp),%xmm7
  mov    %r12,%rdi
  addsd  %xmm0,%xmm7
  movsd  %xmm7,0x58(%rsp)
  call   <det3D@plt>
  mov    0x48(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r14,%rdi
  addsd  0x58(%rsp),%xmm0
  mov    0x18(%rsp),%rsi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  movsd  0x58(%rsp),%xmm1
  mov    (%rsp),%rdi
  mov    %r15,%rcx
  mov    0x20(%rsp),%rdx
  mov    0x18(%rsp),%rsi
  addsd  %xmm0,%xmm1
  movsd  %xmm1,0x58(%rsp)
  call   <det3D@plt>
  mov    0x20(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r14,%rsi
  addsd  0x58(%rsp),%xmm0
  mov    0x18(%rsp),%rdi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x20(%rsp),%rdx
  mov    %r15,%rcx
  mov    %rbp,%rsi
  movsd  0x58(%rsp),%xmm5
  mov    %r14,%rdi
  addsd  %xmm0,%xmm5
  movsd  %xmm5,0x58(%rsp)
  call   <det3D@plt>
  mov    0x20(%rsp),%rdx
  mov    %r15,%rcx
  mov    %rbp,%rdi
  addsd  0x58(%rsp),%xmm0
  mov    (%rsp),%rsi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x30(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r12,%rdi
  movsd  0x58(%rsp),%xmm6
  mov    0x10(%rsp),%rsi
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x58(%rsp)
  call   <det3D@plt>
  mov    0x30(%rsp),%rdx
  mov    %r15,%rcx
  mov    %rbp,%rsi
  addsd  0x58(%rsp),%xmm0
  mov    0x10(%rsp),%rdi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  mov    0x30(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r14,%rsi
  movsd  0x58(%rsp),%xmm7
  mov    %rbp,%rdi
  addsd  %xmm0,%xmm7
  movsd  %xmm7,0x58(%rsp)
  call   <det3D@plt>
  mov    0x30(%rsp),%rdx
  mov    %r15,%rcx
  mov    %r12,%rsi
  addsd  0x58(%rsp),%xmm0
  mov    %r14,%rdi
  movsd  %xmm0,0x58(%rsp)
  call   <det3D@plt>
  addsd  0x58(%rsp),%xmm0
  mov    0x50(%rsp),%rax
  mov    0xd0(%rsp),%rcx
  addl   $0x1,0xc0(%rsp)
  add    0xc8(%rsp),%rbx
  mov    0xc0(%rsp),%esi
  movsd  %xmm0,(%rax)
  add    %rcx,%rax
  mov    0x60(%rsp),%r11
  cmp    %esi,0xc4(%rsp)
  mov    0x70(%rsp),%r10
  mov    %rax,0x50(%rsp)
  mov    D3(%rip),%rax
  mov    0x78(%rsp),%r9
  mov    0x80(%rsp),%r8
  movq   %rax,%xmm3
  mov    D45(%rip),%rax
  movq   %rax,%xmm1
  mov    0x68(%rsp),%rax
  jne    L66
  mov    %r15,%rax
  mov    %r12,%r15
  mov    %rbp,%r12
  mov    %r13,%rbx
  mov    %rax,%rbp
  mov    0xf8(%rsp),%rax
  addl   $0x1,0xf0(%rsp)
  mov    %r14,%r13
  mov    0x100(%rsp),%rcx
  add    %rax,0xe0(%rsp)
  add    %rcx,0xe8(%rsp)
  add    %rax,%r8
  add    %rax,%r9
  mov    0xf0(%rsp),%edi
  add    %rax,0xd8(%rsp)
  add    %rax,%r11
  add    %rax,0xb8(%rsp)
  add    %rax,0xb0(%rsp)
  add    %rax,0xa8(%rsp)
  add    %rax,0xa0(%rsp)
  add    %rax,0x98(%rsp)
  add    %rax,0x90(%rsp)
  add    %rax,0x88(%rsp)
  cmp    %edi,0xf4(%rsp)
  jne    L65
  addq   $0x1,0x108(%rsp)
  mov    0x108(%rsp),%rax
  addq   $0x8,0x128(%rsp)
  addq   $0x8,0x120(%rsp)
  addq   $0x8,0x118(%rsp)
  addq   $0x8,0x110(%rsp)
  cmp    %rax,0x140(%rsp)
  jne    L9
L38:
  mov    0x328(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L31
  add    $0x338,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L31:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D45
datatype: f64
name: parse_data
arguments: data_tag: D3
datatype: f64
name: parse_data
arguments: data_tag: D41
datatype: byte[16]

tool: D45: 0.25

tool: D3: 0.5

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

assistant: ```c
void Jac3D(double *volu, const double *yc, 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 vol;
  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;
#pragma omp parallel for default(shared) private(rptr, id, i1, i2, i3, r, comp, idn, vol, yA, yB, yC, yD, yE, yF, yG, yH, yABDC, yBDHF, yABFE, yCAEG, yDCGH, yEFHG, yM)
  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;
        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;
        }
        vol = -det3D(yA, yB, yABDC, yM);
        vol += -det3D(yB, yD, yABDC, yM);
        vol += -det3D(yD, yC, yABDC, yM);
        vol += -det3D(yC, yA, yABDC, yM);
        vol += det3D(yB, yD, yBDHF, yM);
        vol += det3D(yD, yH, yBDHF, yM);
        vol += det3D(yH, yF, yBDHF, yM);
        vol += det3D(yF, yB, yBDHF, yM);
        vol += det3D(yA, yB, yABFE, yM);
        vol += det3D(yB, yF, yABFE, yM);
        vol += det3D(yF, yE, yABFE, yM);
        vol += det3D(yE, yA, yABFE, yM);
        vol += det3D(yC, yA, yCAEG, yM);
        vol += det3D(yA, yE, yCAEG, yM);
        vol += det3D(yE, yG, yCAEG, yM);
        vol += det3D(yG, yC, yCAEG, yM);
        vol += det3D(yD, yC, yDCGH, yM);
        vol += det3D(yC, yG, yDCGH, yM);
        vol += det3D(yG, yH, yDCGH, yM);
        vol += det3D(yH, yD, yDCGH, yM);
        vol += det3D(yE, yF, yEFHG, yM);
        vol += det3D(yF, yH, yEFHG, yM);
        vol += det3D(yH, yG, yEFHG, yM);
        vol += det3D(yG, yE, yEFHG, yM);
        id = i1 + m1 * (i2 + i3 * m2);
        volu[id] = vol;
      }
    }
  }
  return;
}
```