user: 请将以下的汇编代码转换成C语言代码：

```asm
<d2S3D>:
  endbr64
  push   %r15
  push   %r14
  mov    %rcx,%r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x788,%rsp
  movsd  0x8(%r9),%xmm5
  mov    %rdx,0x1b8(%rsp)
  mov    0x7c0(%rsp),%rdx
  mov    %rdi,0x1a8(%rsp)
  mov    0x7c8(%rsp),%rcx
  movsd  (%rdx),%xmm2
  mov    %rsi,0x1b0(%rsp)
  mulsd  0x8(%rdx),%xmm2
  cvttsd2si (%rcx),%ebx
  mulsd  0x10(%rdx),%xmm2
  cvttsd2si 0x10(%rcx),%edi
  mov    %fs:0x28,%rsi
  mov    %rsi,0x778(%rsp)
  xor    %esi,%esi
  cvttsd2si 0x8(%rcx),%esi
  lea    0x1(%rbx),%ecx
  mov    %ebx,0x1dc(%rsp)
  lea    0x1(%rdi),%eax
  mov    %edi,0x194(%rsp)
  mulsd  %xmm2,%xmm5
  lea    0x1(%rsi),%edx
  mov    %esi,0x1c8(%rsp)
  imul   %ecx,%edx
  mulsd  0x10(%r9),%xmm2
  mov    %ecx,0x1cc(%rsp)
  imul   %edx,%eax
  movsd  %xmm5,(%rsp)
  test   %ebx,%ebx
  jle    L101
  movslq %ecx,%rcx
  cltq
  movsd  D301(%rip),%xmm3
  mov    %r8,%r15
  lea    0x8(,%rcx,8),%rbx
  lea    0x0(,%rax,8),%r13
  movl   $0x0,0x1d8(%rsp)
  mov    %rbx,0x1d0(%rsp)
  movslq %edx,%rbx
  mov    %rbx,0x1a0(%rsp)
  shl    $0x3,%rbx
  mov    %rbx,0x198(%rsp)
L79:
  mov    0x1c8(%rsp),%eax
  test   %eax,%eax
  jle    L3
  mov    0x1d8(%rsp),%eax
  movsd  D227(%rip),%xmm4
  movl   $0x0,0x1c0(%rsp)
  mov    %eax,0x1c4(%rsp)
  nopl   0x0(%rax)
L6:
  mov    0x194(%rsp),%edx
  test   %edx,%edx
  jle    L76
  movslq 0x1c4(%rsp),%rax
  mov    0x1d0(%rsp),%rcx
  movl   $0x0,0x190(%rsp)
  lea    0x3a0(%rsp),%rbp
  lea    0x580(%rsp),%r12
  mov    %rax,0x170(%rsp)
  shl    $0x3,%rax
  lea    (%rcx,%rax,1),%rbx
  mov    %rbx,0x168(%rsp)
  mov    0x198(%rsp),%rbx
  mov    %rbx,%rdx
  add    %rcx,%rdx
  lea    (%rdx,%rax,1),%rcx
  lea    0x8(%rbx,%rax,1),%rax
  mov    %rax,0x158(%rsp)
  lea    0x1e0(%rsp),%rax
  lea    0x760(%rsp),%rbx
  mov    %rax,0x48(%rsp)
  lea    0x200(%rsp),%rax
  mov    %rax,0x58(%rsp)
  lea    0x240(%rsp),%rax
  mov    %rax,0x78(%rsp)
  lea    0x220(%rsp),%rax
  mov    %rax,0x68(%rsp)
  lea    0x2a0(%rsp),%rax
  mov    %rax,0xa8(%rsp)
  lea    0x2c0(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  lea    0x280(%rsp),%rax
  mov    %rax,0x98(%rsp)
  lea    0x260(%rsp),%rax
  mov    %rax,0x88(%rsp)
  lea    0x2e0(%rsp),%rax
  mov    %rax,0x148(%rsp)
  lea    0x300(%rsp),%rax
  mov    %rax,0xd0(%rsp)
  lea    0x320(%rsp),%rax
  mov    %rax,0xe0(%rsp)
  lea    0x340(%rsp),%rax
  mov    %rax,0xf8(%rsp)
  lea    0x360(%rsp),%rax
  mov    %rax,0x110(%rsp)
  lea    0x380(%rsp),%rax
  mov    %rax,0x128(%rsp)
  lea    0x3c0(%rsp),%rax
  mov    %rax,0x50(%rsp)
  lea    0x3e0(%rsp),%rax
  mov    %rax,0x60(%rsp)
  lea    0x420(%rsp),%rax
  mov    %rax,0x80(%rsp)
  lea    0x400(%rsp),%rax
  mov    %rax,0x70(%rsp)
  lea    0x480(%rsp),%rax
  mov    %rax,0xb0(%rsp)
  lea    0x4a0(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  lea    0x460(%rsp),%rax
  mov    %rax,0xa0(%rsp)
  lea    0x440(%rsp),%rax
  mov    %rax,0x90(%rsp)
  lea    0x4c0(%rsp),%rax
  mov    %rax,0xc8(%rsp)
  lea    0x4e0(%rsp),%rax
  mov    %rax,0xd8(%rsp)
  lea    0x500(%rsp),%rax
  mov    %rcx,0x160(%rsp)
  mov    %rax,0xf0(%rsp)
  lea    0x520(%rsp),%rax
  movsd  D10(%rip),%xmm5
  mov    %rax,0x108(%rsp)
  lea    0x540(%rsp),%rax
  mov    %rax,0x120(%rsp)
  lea    0x560(%rsp),%rax
  mov    %rax,0x138(%rsp)
  lea    0x740(%rsp),%rax
  mov    %rax,0x140(%rsp)
  lea    0x720(%rsp),%rax
  mov    %rax,0x130(%rsp)
  lea    0x700(%rsp),%rax
  mov    %rax,0x118(%rsp)
  lea    0x6e0(%rsp),%rax
  mov    %rax,0x100(%rsp)
  lea    0x6c0(%rsp),%rax
  mov    %rax,0xe8(%rsp)
  lea    0x6a0(%rsp),%rax
  mov    %rax,0x150(%rsp)
  lea    0x680(%rsp),%rax
  mov    %rax,0x8(%rsp)
  lea    0x660(%rsp),%rax
  mov    %rax,0x30(%rsp)
  lea    0x640(%rsp),%rax
  mov    %rax,0x28(%rsp)
  lea    0x620(%rsp),%rax
  mov    %rax,0x20(%rsp)
  lea    0x600(%rsp),%rax
  mov    %rax,0x18(%rsp)
  lea    0x5e0(%rsp),%rax
  mov    %rax,0x10(%rsp)
  lea    0x5c0(%rsp),%rax
  mov    %rax,0x40(%rsp)
  lea    0x5a0(%rsp),%rax
  mov    %rax,0x38(%rsp)
  nopl   0x0(%rax)
L81:
  mov    0x170(%rsp),%rax
  mov    0x160(%rsp),%r9
  mov    %rbx,0x188(%rsp)
  mov    %r13,%rbx
  mov    0x168(%rsp),%rcx
  mov    %r14,0x180(%rsp)
  mov    %r15,%r14
  lea    0x0(,%rax,8),%rdx
  mov    0x1b0(%rsp),%rax
  mov    0x188(%rsp),%r15
  mov    %rdx,%r11
  mov    %rdx,0x178(%rsp)
  mov    %rax,%r10
  add    %rax,%r11
  add    %rax,%r9
  add    0x158(%rsp),%rax
  mov    %rax,%r8
  mov    0x1b8(%rsp),%rax
  add    %rcx,%r10
  mov    %rax,%rsi
  mov    %rax,%rdi
  add    %rcx,%rsi
  mov    0x160(%rsp),%rcx
  add    %rdx,%rdi
  add    %rax,%rcx
  add    0x158(%rsp),%rax
  mov    %rax,%rdx
  xor    %eax,%eax
L69:
  movsd  (%r11),%xmm6
  movsd  0x8(%r11),%xmm12
  add    %rbx,%r11
  mov    0x48(%rsp),%r13
  movsd  (%r10),%xmm11
  movapd %xmm12,%xmm13
  movsd  (%r9),%xmm9
  movsd  (%r8),%xmm10
  movsd  %xmm6,0x0(%r13,%rax,1)
  mov    0x58(%rsp),%r13
  addsd  %xmm6,%xmm13
  movsd  -0x8(%r10),%xmm1
  movsd  -0x8(%r9),%xmm8
  movsd  -0x8(%r8),%xmm0
  add    %rbx,%r10
  add    %rbx,%r9
  movsd  %xmm12,0x0(%r13,%rax,1)
  mov    0x78(%rsp),%r13
  addsd  %xmm11,%xmm12
  add    %rbx,%r8
  movapd %xmm13,%xmm7
  addsd  %xmm1,%xmm6
  addsd  %xmm10,%xmm13
  movsd  %xmm11,0x0(%r13,%rax,1)
  mov    0x68(%rsp),%r13
  addsd  %xmm11,%xmm7
  addsd  %xmm9,%xmm12
  movsd  %xmm1,0x0(%r13,%rax,1)
  addsd  %xmm0,%xmm6
  mov    0xa8(%rsp),%r13
  addsd  %xmm0,%xmm13
  addsd  %xmm1,%xmm7
  addsd  %xmm11,%xmm1
  movsd  %xmm8,0x0(%r13,%rax,1)
  mov    0xb8(%rsp),%r13
  addsd  %xmm10,%xmm12
  addsd  %xmm8,%xmm6
  mulsd  %xmm3,%xmm13
  movsd  %xmm9,0x0(%r13,%rax,1)
  mulsd  %xmm3,%xmm7
  mov    0x98(%rsp),%r13
  addsd  %xmm8,%xmm1
  mulsd  %xmm3,%xmm12
  movsd  %xmm10,0x0(%r13,%rax,1)
  mov    0x88(%rsp),%r13
  mulsd  %xmm3,%xmm6
  addsd  %xmm9,%xmm1
  movsd  %xmm0,0x0(%r13,%rax,1)
  mov    0x148(%rsp),%r13
  movsd  %xmm7,0x0(%r13,%rax,1)
  mov    0xd0(%rsp),%r13
  mulsd  %xmm3,%xmm1
  movsd  %xmm12,0x0(%r13,%rax,1)
  mov    0xe0(%rsp),%r13
  movsd  %xmm13,0x0(%r13,%rax,1)
  mov    0xf8(%rsp),%r13
  movsd  %xmm6,0x0(%r13,%rax,1)
  mov    0x110(%rsp),%r13
  movsd  (%rdi),%xmm6
  movsd  0x8(%rdi),%xmm12
  movsd  (%rsi),%xmm11
  add    %rbx,%rdi
  movsd  %xmm1,0x0(%r13,%rax,1)
  movapd %xmm0,%xmm1
  mov    0x128(%rsp),%r13
  addsd  %xmm10,%xmm1
  movapd %xmm12,%xmm13
  movsd  (%rdx),%xmm10
  addsd  %xmm6,%xmm13
  addsd  %xmm9,%xmm1
  movsd  (%rcx),%xmm9
  addsd  %xmm8,%xmm1
  movsd  -0x8(%rcx),%xmm8
  add    %rbx,%rcx
  movapd %xmm1,%xmm0
  movsd  -0x8(%rsi),%xmm1
  add    %rbx,%rsi
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,0x0(%r13,%rax,1)
  mov    0x50(%rsp),%r13
  addsd  %xmm7,%xmm0
  movapd %xmm13,%xmm7
  addsd  %xmm11,%xmm7
  addsd  %xmm10,%xmm13
  movsd  %xmm6,0x0(%r13,%rax,1)
  mov    0x60(%rsp),%r13
  addsd  %xmm1,%xmm6
  mulsd  %xmm4,%xmm0
  movsd  %xmm12,0x0(%r13,%rax,1)
  addsd  %xmm11,%xmm12
  addsd  %xmm1,%xmm7
  mov    0x80(%rsp),%r13
  movsd  %xmm11,0x0(%r13,%rax,1)
  mov    0x70(%rsp),%r13
  addsd  %xmm9,%xmm12
  mulsd  %xmm3,%xmm7
  movsd  %xmm1,0x0(%r13,%rax,1)
  mov    0xb0(%rsp),%r13
  addsd  %xmm11,%xmm1
  movsd  %xmm0,0x0(%rbp,%rax,1)
  movsd  -0x8(%rdx),%xmm0
  add    %rbx,%rdx
  movsd  %xmm8,0x0(%r13,%rax,1)
  mov    0xc0(%rsp),%r13
  addsd  %xmm10,%xmm12
  addsd  %xmm0,%xmm6
  addsd  %xmm0,%xmm13
  movsd  %xmm9,0x0(%r13,%rax,1)
  mov    0xa0(%rsp),%r13
  addsd  %xmm8,%xmm1
  mulsd  %xmm3,%xmm12
  movsd  %xmm10,0x0(%r13,%rax,1)
  addsd  %xmm8,%xmm6
  mulsd  %xmm3,%xmm13
  mov    0x90(%rsp),%r13
  addsd  %xmm9,%xmm1
  movsd  %xmm0,0x0(%r13,%rax,1)
  mov    0xc8(%rsp),%r13
  mulsd  %xmm3,%xmm6
  movsd  %xmm7,0x0(%r13,%rax,1)
  mov    0xd8(%rsp),%r13
  mulsd  %xmm3,%xmm1
  movsd  %xmm12,0x0(%r13,%rax,1)
  mov    0xf0(%rsp),%r13
  movsd  %xmm13,0x0(%r13,%rax,1)
  mov    0x108(%rsp),%r13
  movsd  %xmm6,0x0(%r13,%rax,1)
  mov    0x120(%rsp),%r13
  movsd  %xmm1,0x0(%r13,%rax,1)
  movapd %xmm0,%xmm1
  mov    0x138(%rsp),%r13
  addsd  %xmm10,%xmm1
  addsd  %xmm9,%xmm1
  addsd  %xmm8,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,0x0(%r13,%rax,1)
  addsd  %xmm7,%xmm0
  mulsd  %xmm4,%xmm0
  movsd  %xmm0,(%r12,%rax,1)
  add    $0x8,%rax
  cmp    $0x18,%rax
  jne    L69
  pxor   %xmm0,%xmm0
  mov    %r15,%rax
  mov    0x130(%rsp),%rdi
  mov    0x118(%rsp),%rsi
  movaps %xmm0,(%rax)
  mov    %rbx,%r13
  mov    %rax,%rbx
  mov    %r14,%r15
  movq   $0x0,0x10(%rax)
  mov    0xe8(%rsp),%rdx
  pxor   %xmm7,%xmm7
  mov    0x140(%rsp),%rax
  mov    0x100(%rsp),%rcx
  movaps %xmm0,(%rdi)
  movq   $0x0,0x10(%rdi)
  mov    0x150(%rsp),%r9
  mov    0x28(%rsp),%rdi
  movaps %xmm0,(%rax)
  mov    0x180(%rsp),%r14
  movq   $0x0,0x10(%rax)
  mov    0x8(%rsp),%rax
  movq   $0x0,0x10(%rdx)
  movaps %xmm0,(%rsi)
  movaps %xmm0,(%rdx)
  mov    0x30(%rsp),%rdx
  movq   $0x0,0x10(%rsi)
  mov    0x20(%rsp),%rsi
  movq   $0x0,0x10(%rcx)
  movaps %xmm0,(%rcx)
  movq   $0x0,0x10(%r9)
  movq   $0x0,0x10(%rax)
  movq   $0x0,0x10(%rdx)
  movq   $0x0,0x10(%rdi)
  movaps %xmm0,(%r9)
  movaps %xmm0,(%rax)
  movaps %xmm0,(%rdx)
  movaps %xmm0,(%rdi)
  movaps %xmm0,(%rsi)
  movq   $0x0,0x10(%rsi)
  movsd  (%rsp),%xmm1
  mov    0x18(%rsp),%rcx
  mov    0x10(%rsp),%r11
  comisd %xmm7,%xmm1
  mov    0x40(%rsp),%r10
  mov    0x38(%rsp),%r8
  movq   $0x0,0x10(%rcx)
  movq   $0x0,0x10(%r11)
  movq   $0x0,0x10(%r10)
  movq   $0x0,0x10(%r8)
  movaps %xmm0,(%rcx)
  movaps %xmm0,(%r11)
  movaps %xmm0,(%r10)
  movaps %xmm0,(%r8)
  jbe    L14
  movsd  %xmm2,0x180(%rsp)
  sub    $0x8,%rsp
  movsd  (%r14),%xmm0
  push   %r9
  mov    %r10,0x50(%rsp)
  push   %r10
  mov    %r8,0x50(%rsp)
  push   %r8
  mov    0xe8(%rsp),%r9
  mov    0x80(%rsp),%r8
  mov    0x70(%rsp),%rcx
  mov    0x168(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x8(%r14),%xmm0
  push   0x158(%rsp)
  push   0x28(%rsp)
  push   0x58(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xe8(%rsp),%r9
  mov    0xa0(%rsp),%r8
  mov    0x80(%rsp),%rcx
  mov    0x168(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x10(%r14),%xmm0
  push   0x158(%rsp)
  push   0x20(%rsp)
  push   0x30(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xe8(%rsp),%r9
  mov    0x90(%rsp),%r8
  mov    0xa0(%rsp),%rcx
  mov    0x168(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0x98(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x18(%r14),%xmm0
  push   0x158(%rsp)
  push   0x48(%rsp)
  push   0x28(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xe8(%rsp),%r9
  mov    0x70(%rsp),%r8
  mov    0x90(%rsp),%rcx
  mov    0x168(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x20(%r14),%xmm0
  push   0xf0(%rsp)
  push   0x28(%rsp)
  push   0x58(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xf8(%rsp),%r9
  mov    0xa0(%rsp),%r8
  mov    0x80(%rsp),%rcx
  mov    0xf0(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x28(%r14),%xmm0
  push   0xf0(%rsp)
  push   0x18(%rsp)
  push   0x30(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xf8(%rsp),%r9
  mov    0xe0(%rsp),%r8
  mov    0xa0(%rsp),%rcx
  mov    0xf0(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0x98(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x30(%r14),%xmm0
  push   0xf0(%rsp)
  push   0x38(%rsp)
  push   0x20(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xf8(%rsp),%r9
  mov    0xc0(%rsp),%r8
  mov    0xe0(%rsp),%rcx
  mov    0xf0(%rsp),%rdx
  mov    0xb8(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x38(%r14),%xmm0
  push   0xf0(%rsp)
  push   0x50(%rsp)
  push   0x40(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0xf8(%rsp),%r9
  mov    0x80(%rsp),%r8
  mov    0xc0(%rsp),%rcx
  mov    0xf0(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0xb8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x40(%r14),%xmm0
  push   0x108(%rsp)
  push   0x50(%rsp)
  push   0x50(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x110(%rsp),%r9
  mov    0x80(%rsp),%r8
  mov    0x70(%rsp),%rcx
  mov    0x100(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x48(%r14),%xmm0
  push   0x108(%rsp)
  push   0x38(%rsp)
  push   0x58(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x110(%rsp),%r9
  mov    0xc0(%rsp),%r8
  mov    0x80(%rsp),%rcx
  mov    0x100(%rsp),%rdx
  mov    0xb8(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x50(%r14),%xmm0
  push   0x108(%rsp)
  push   0x30(%rsp)
  push   0x40(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x110(%rsp),%r9
  mov    0xb0(%rsp),%r8
  mov    0xc0(%rsp),%rcx
  mov    0x100(%rsp),%rdx
  mov    0xa8(%rsp),%rsi
  mov    0xb8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x58(%r14),%xmm0
  push   0x108(%rsp)
  push   0x48(%rsp)
  push   0x38(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x110(%rsp),%r9
  mov    0x70(%rsp),%r8
  mov    0xb0(%rsp),%rcx
  mov    0x100(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0xa8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x60(%r14),%xmm0
  push   0x120(%rsp)
  push   0x48(%rsp)
  push   0x28(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x128(%rsp),%r9
  mov    0x70(%rsp),%r8
  mov    0x90(%rsp),%rcx
  mov    0x118(%rsp),%rdx
  mov    0x68(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x68(%r14),%xmm0
  push   0x120(%rsp)
  push   0x30(%rsp)
  push   0x50(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x128(%rsp),%r9
  mov    0xb0(%rsp),%r8
  mov    0x70(%rsp),%rcx
  mov    0x118(%rsp),%rdx
  mov    0xa8(%rsp),%rsi
  mov    0x68(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x70(%r14),%xmm0
  push   0x120(%rsp)
  push   0x40(%rsp)
  push   0x38(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x128(%rsp),%r9
  mov    0xd0(%rsp),%r8
  mov    0xb0(%rsp),%rcx
  mov    0x118(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0xa8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x78(%r14),%xmm0
  push   0x120(%rsp)
  push   0x20(%rsp)
  push   0x48(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x128(%rsp),%r9
  mov    0x90(%rsp),%r8
  mov    0xd0(%rsp),%rcx
  mov    0x118(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x80(%r14),%xmm0
  push   0x138(%rsp)
  push   0x20(%rsp)
  push   0x30(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x140(%rsp),%r9
  mov    0x90(%rsp),%r8
  mov    0xa0(%rsp),%rcx
  mov    0x130(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0x98(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x88(%r14),%xmm0
  push   0x138(%rsp)
  push   0x40(%rsp)
  push   0x28(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x140(%rsp),%r9
  mov    0xd0(%rsp),%r8
  mov    0x90(%rsp),%rcx
  mov    0x130(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x90(%r14),%xmm0
  push   0x138(%rsp)
  push   0x18(%rsp)
  push   0x48(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x140(%rsp),%r9
  mov    0xe0(%rsp),%r8
  mov    0xd0(%rsp),%rcx
  mov    0x130(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0x98(%r14),%xmm0
  push   0x138(%rsp)
  push   0x28(%rsp)
  push   0x20(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x140(%rsp),%r9
  mov    0xa0(%rsp),%r8
  mov    0xe0(%rsp),%rcx
  mov    0x130(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0xa0(%r14),%xmm0
  push   0x148(%rsp)
  push   0x38(%rsp)
  push   0x38(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x158(%rsp),%r9
  mov    0xc0(%rsp),%r8
  mov    0xb0(%rsp),%rcx
  mov    0x148(%rsp),%rdx
  mov    0xb8(%rsp),%rsi
  mov    0xa8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0xa8(%r14),%xmm0
  push   0x148(%rsp)
  push   0x18(%rsp)
  push   0x40(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x158(%rsp),%r9
  mov    0xe0(%rsp),%r8
  mov    0xc0(%rsp),%rcx
  mov    0x148(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0xb8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0xb0(%r14),%xmm0
  push   0x148(%rsp)
  push   0x40(%rsp)
  push   0x20(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x158(%rsp),%r9
  mov    0xd0(%rsp),%r8
  mov    0xe0(%rsp),%rcx
  mov    0x148(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  add    $0x18,%rsp
  movsd  0xb8(%r14),%xmm0
  push   0x148(%rsp)
  push   0x30(%rsp)
  push   0x48(%rsp)
  movsd  0x20(%rsp),%xmm1
  mov    0x158(%rsp),%r9
  mov    0xb0(%rsp),%r8
  mov    0xd0(%rsp),%rcx
  mov    0x148(%rsp),%rdx
  mov    0xa8(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <d2SarTriangle3D@plt>
  mov    D301(%rip),%rax
  add    $0x20,%rsp
  movsd  0x180(%rsp),%xmm2
  movq   %rax,%xmm3
  mov    D227(%rip),%rax
  movq   %rax,%xmm4
  mov    D10(%rip),%rax
  movq   %rax,%xmm5
L14:
  pxor   %xmm7,%xmm7
  comisd %xmm7,%xmm2
  jbe    L88
  mov    D92(%rip),%rax
  movsd  (%r15),%xmm0
  push   %rbx
  mov    %rbp,%rcx
  push   0x158(%rsp)
  push   0x50(%rsp)
  movq   %rax,%xmm1
  push   0x50(%rsp)
  push   %r12
  push   0xf0(%rsp)
  mov    0x90(%rsp),%r9
  mov    0x80(%rsp),%r8
  mov    0x178(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  movsd  %xmm2,0x1b0(%rsp)
  mov    0x78(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x8(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D92(%rip),%rax
  push   0x158(%rsp)
  push   0x28(%rsp)
  movq   %rax,%xmm1
  push   0x58(%rsp)
  push   %r12
  push   0xf0(%rsp)
  mov    0xb0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0x90(%rsp),%r8
  mov    0x178(%rsp),%rdx
  mov    0xa8(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x10(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D92(%rip),%rax
  push   0x158(%rsp)
  push   0x20(%rsp)
  movq   %rax,%xmm1
  push   0x30(%rsp)
  push   %r12
  push   0xf0(%rsp)
  mov    0xa0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xb0(%rsp),%r8
  mov    0x178(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  mov    0xa8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x18(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D92(%rip),%rax
  push   0x158(%rsp)
  push   0x48(%rsp)
  movq   %rax,%xmm1
  push   0x28(%rsp)
  push   %r12
  push   0xf0(%rsp)
  mov    0x80(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xa0(%rsp),%r8
  mov    0x178(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0x98(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x20(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0xf0(%rsp)
  push   0x28(%rsp)
  movq   %rax,%xmm1
  push   0x58(%rsp)
  push   %r12
  push   0x100(%rsp)
  mov    0xb0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0x90(%rsp),%r8
  mov    0x100(%rsp),%rdx
  mov    0xa8(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x28(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0xf0(%rsp)
  push   0x18(%rsp)
  movq   %rax,%xmm1
  push   0x30(%rsp)
  push   %r12
  push   0x100(%rsp)
  mov    0xf0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xb0(%rsp),%r8
  mov    0x100(%rsp),%rdx
  mov    0xe8(%rsp),%rsi
  mov    0xa8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x30(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0xf0(%rsp)
  push   0x38(%rsp)
  movq   %rax,%xmm1
  push   0x20(%rsp)
  push   %r12
  push   0x100(%rsp)
  mov    0xd0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xf0(%rsp),%r8
  mov    0x100(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0xe8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x38(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0xf0(%rsp)
  push   0x50(%rsp)
  movq   %rax,%xmm1
  push   0x40(%rsp)
  push   %r12
  push   0x100(%rsp)
  mov    0x90(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xd0(%rsp),%r8
  mov    0x100(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x40(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x108(%rsp)
  push   0x50(%rsp)
  movq   %rax,%xmm1
  push   0x50(%rsp)
  push   %r12
  push   0x118(%rsp)
  mov    0x90(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0x80(%rsp),%r8
  mov    0x110(%rsp),%rdx
  mov    0x88(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x48(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x108(%rsp)
  push   0x38(%rsp)
  movq   %rax,%xmm1
  push   0x58(%rsp)
  push   %r12
  push   0x118(%rsp)
  mov    0xd0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0x90(%rsp),%r8
  mov    0x110(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0x88(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x50(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x108(%rsp)
  push   0x30(%rsp)
  movq   %rax,%xmm1
  push   0x40(%rsp)
  push   %r12
  push   0x118(%rsp)
  mov    0xc0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xd0(%rsp),%r8
  mov    0x110(%rsp),%rdx
  mov    0xb8(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x58(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x108(%rsp)
  push   0x48(%rsp)
  movq   %rax,%xmm1
  push   0x38(%rsp)
  push   %r12
  push   0x118(%rsp)
  mov    0x80(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xc0(%rsp),%r8
  mov    0x110(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0xb8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x60(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x120(%rsp)
  push   0x48(%rsp)
  movq   %rax,%xmm1
  push   0x28(%rsp)
  push   %r12
  push   0x130(%rsp)
  mov    0x80(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xa0(%rsp),%r8
  mov    0x128(%rsp),%rdx
  mov    0x78(%rsp),%rsi
  mov    0x98(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x68(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x120(%rsp)
  push   0x30(%rsp)
  movq   %rax,%xmm1
  push   0x50(%rsp)
  push   %r12
  push   0x130(%rsp)
  mov    0xc0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0x80(%rsp),%r8
  mov    0x128(%rsp),%rdx
  mov    0xb8(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x70(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x120(%rsp)
  push   0x40(%rsp)
  movq   %rax,%xmm1
  push   0x38(%rsp)
  push   %r12
  push   0x130(%rsp)
  mov    0xe0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xc0(%rsp),%r8
  mov    0x128(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0xb8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  movsd  0x78(%r15),%xmm0
  mov    %rbp,%rcx
  push   %rbx
  mov    D320(%rip),%rax
  push   0x120(%rsp)
  push   0x20(%rsp)
  movq   %rax,%xmm1
  push   0x48(%rsp)
  push   %r12
  push   0x130(%rsp)
  mov    0xa0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xe0(%rsp),%r8
  mov    0x128(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0x80(%r15),%xmm0
  push   %rbx
  push   0x138(%rsp)
  movq   %rax,%xmm1
  push   0x20(%rsp)
  push   0x30(%rsp)
  push   %r12
  push   0x148(%rsp)
  mov    0xa0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xb0(%rsp),%r8
  mov    0x140(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  mov    0xa8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0x88(%r15),%xmm0
  push   %rbx
  push   0x138(%rsp)
  movq   %rax,%xmm1
  push   0x40(%rsp)
  push   0x28(%rsp)
  push   %r12
  push   0x148(%rsp)
  mov    0xe0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xa0(%rsp),%r8
  mov    0x140(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0x98(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0x90(%r15),%xmm0
  push   %rbx
  push   0x138(%rsp)
  movq   %rax,%xmm1
  push   0x18(%rsp)
  push   0x48(%rsp)
  push   %r12
  push   0x148(%rsp)
  mov    0xf0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xe0(%rsp),%r8
  mov    0x140(%rsp),%rdx
  mov    0xe8(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0x98(%r15),%xmm0
  push   %rbx
  push   0x138(%rsp)
  movq   %rax,%xmm1
  push   0x28(%rsp)
  push   0x20(%rsp)
  push   %r12
  push   0x148(%rsp)
  mov    0xb0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xf0(%rsp),%r8
  mov    0x140(%rsp),%rdx
  mov    0xa8(%rsp),%rsi
  mov    0xe8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0xa0(%r15),%xmm0
  push   %rbx
  push   0x148(%rsp)
  movq   %rax,%xmm1
  push   0x38(%rsp)
  push   0x38(%rsp)
  push   %r12
  push   0x160(%rsp)
  mov    0xd0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xc0(%rsp),%r8
  mov    0x158(%rsp),%rdx
  mov    0xc8(%rsp),%rsi
  mov    0xb8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0xa8(%r15),%xmm0
  push   %rbx
  push   0x148(%rsp)
  movq   %rax,%xmm1
  push   0x18(%rsp)
  push   0x40(%rsp)
  push   %r12
  push   0x160(%rsp)
  mov    0xf0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xd0(%rsp),%r8
  mov    0x158(%rsp),%rdx
  mov    0xe8(%rsp),%rsi
  mov    0xc8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0xb0(%r15),%xmm0
  push   %rbx
  push   0x148(%rsp)
  movq   %rax,%xmm1
  push   0x40(%rsp)
  push   0x20(%rsp)
  push   %r12
  push   0x160(%rsp)
  mov    0xe0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xf0(%rsp),%r8
  mov    0x158(%rsp),%rdx
  mov    0xd8(%rsp),%rsi
  mov    0xe8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  add    $0x30,%rsp
  mov    D320(%rip),%rax
  mov    %rbp,%rcx
  movsd  0xb8(%r15),%xmm0
  push   %rbx
  push   0x148(%rsp)
  movq   %rax,%xmm1
  push   0x30(%rsp)
  push   0x48(%rsp)
  push   %r12
  push   0x160(%rsp)
  mov    0xc0(%rsp),%r9
  movsd  0x1b0(%rsp),%xmm2
  mov    0xe0(%rsp),%r8
  mov    0x158(%rsp),%rdx
  mov    0xb8(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  call   <d2SvolTetra3D@plt>
  mov    D301(%rip),%rax
  add    $0x30,%rsp
  movsd  0x180(%rsp),%xmm2
  movq   %rax,%xmm3
  mov    D227(%rip),%rax
  movq   %rax,%xmm4
  mov    D10(%rip),%rax
  movq   %rax,%xmm5
L88:
  mov    0x1a8(%rsp),%rax
  mov    0x178(%rsp),%rdi
  mov    %r14,0x178(%rsp)
  mov    0x168(%rsp),%rsi
  mov    0x160(%rsp),%rcx
  mov    %rbp,0x180(%rsp)
  mov    %r12,0x188(%rsp)
  add    %rax,%rdi
  mov    0x150(%rsp),%r8
  add    %rax,%rsi
  add    %rax,%rcx
  mov    0xe8(%rsp),%r9
  add    0x158(%rsp),%rax
  mov    0x100(%rsp),%r10
  mov    0x118(%rsp),%r11
  mov    %rax,%rdx
  xor    %eax,%eax
  mov    0x130(%rsp),%rbp
  mov    0x140(%rsp),%r12
L42:
  movsd  (%r8,%rax,1),%xmm6
  movsd  (%r10,%rax,1),%xmm0
  mov    0x38(%rsp),%r14
  movsd  (%r11,%rax,1),%xmm9
  mulsd  %xmm3,%xmm6
  movsd  (%rbx,%rax,1),%xmm7
  movsd  (%r9,%rax,1),%xmm1
  mulsd  %xmm3,%xmm0
  movsd  (%r14,%rax,1),%xmm11
  mov    0x40(%rsp),%r14
  mulsd  %xmm3,%xmm9
  movsd  0x0(%rbp,%rax,1),%xmm10
  movsd  (%r12,%rax,1),%xmm8
  mulsd  %xmm5,%xmm7
  mulsd  %xmm3,%xmm1
  addsd  %xmm6,%xmm11
  movsd  %xmm6,(%r8,%rax,1)
  mulsd  %xmm3,%xmm10
  mulsd  %xmm3,%xmm8
  movsd  %xmm0,(%r10,%rax,1)
  movsd  %xmm9,(%r11,%rax,1)
  addsd  %xmm0,%xmm11
  movsd  %xmm7,(%rbx,%rax,1)
  movsd  %xmm1,(%r9,%rax,1)
  movsd  %xmm10,0x0(%rbp,%rax,1)
  addsd  %xmm9,%xmm11
  movsd  %xmm8,(%r12,%rax,1)
  addsd  %xmm7,%xmm11
  addsd  (%rdi),%xmm11
  movsd  %xmm11,(%rdi)
  movsd  (%r14,%rax,1),%xmm11
  mov    0x18(%rsp),%r14
  addsd  %xmm6,%xmm11
  addsd  %xmm1,%xmm11
  addsd  %xmm0,%xmm11
  addsd  %xmm7,%xmm11
  addsd  0x8(%rdi),%xmm11
  movsd  %xmm11,0x8(%rdi)
  movsd  (%r14,%rax,1),%xmm11
  add    %r13,%rdi
  mov    0x10(%rsp),%r14
  addsd  %xmm6,%xmm11
  addsd  (%r14,%rax,1),%xmm6
  mov    0x30(%rsp),%r14
  addsd  %xmm9,%xmm6
  addsd  %xmm1,%xmm11
  addsd  %xmm10,%xmm6
  addsd  %xmm10,%xmm11
  addsd  %xmm7,%xmm6
  addsd  -0x8(%rsi),%xmm6
  addsd  %xmm7,%xmm11
  addsd  (%rsi),%xmm11
  movsd  %xmm6,-0x8(%rsi)
  movsd  (%r14,%rax,1),%xmm6
  movsd  %xmm11,(%rsi)
  add    %r13,%rsi
  addsd  %xmm9,%xmm6
  addsd  %xmm10,%xmm6
  addsd  %xmm8,%xmm6
  addsd  %xmm7,%xmm6
  addsd  -0x8(%rcx),%xmm6
  mov    0x8(%rsp),%r14
  movsd  %xmm6,-0x8(%rcx)
  movsd  (%r14,%rax,1),%xmm6
  mov    0x28(%rsp),%r14
  addsd  %xmm1,%xmm6
  addsd  (%r14,%rax,1),%xmm1
  mov    0x20(%rsp),%r14
  addsd  %xmm0,%xmm1
  addsd  %xmm10,%xmm6
  addsd  (%r14,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm8,%xmm6
  addsd  %xmm8,%xmm1
  addsd  %xmm9,%xmm0
  addsd  %xmm7,%xmm6
  addsd  (%rcx),%xmm6
  addsd  %xmm8,%xmm0
  addsd  %xmm7,%xmm1
  movsd  %xmm6,(%rcx)
  addsd  (%rdx),%xmm1
  add    %r13,%rcx
  addsd  %xmm7,%xmm0
  addsd  -0x8(%rdx),%xmm0
  movsd  %xmm1,(%rdx)
  movsd  %xmm0,-0x8(%rdx)
  add    %r13,%rdx
  cmp    $0x18,%rax
  jne    L42
  mov    0x198(%rsp),%rdi
  addl   $0x1,0x190(%rsp)
  mov    0x1a0(%rsp),%rdx
  add    %rdi,0x168(%rsp)
  add    %rdx,0x170(%rsp)
  mov    0x178(%rsp),%r14
  add    %rdi,0x160(%rsp)
  mov    0x180(%rsp),%rbp
  add    %rdi,0x158(%rsp)
  mov    0x188(%rsp),%r12
  mov    0x190(%rsp),%eax
  cmp    %eax,0x194(%rsp)
  jne    L81
L76:
  addl   $0x1,0x1c0(%rsp)
  mov    0x1cc(%rsp),%ecx
  mov    0x1c0(%rsp),%eax
  add    %ecx,0x1c4(%rsp)
  cmp    %eax,0x1c8(%rsp)
  jne    L6
L3:
  addl   $0x1,0x1d8(%rsp)
  mov    0x1d8(%rsp),%eax
  cmp    %eax,0x1dc(%rsp)
  jne    L79
L101:
  mov    0x778(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L24
  add    $0x788,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L24:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D301
data_type: f64
name: retrieve_data
arguments: data_tag: D227
data_type: f64
name: retrieve_data
arguments: data_tag: D10
data_type: f64
name: retrieve_data
arguments: data_tag: D92
data_type: f32[2]
name: retrieve_data
arguments: data_tag: D320
data_type: f64

tool: D301: 0.25

tool: D227: 0.5

tool: D10: 0.125

tool: {"D92": [0.0,-1.875]}

tool: D320: 1

assistant: ```c
void d2S3D(double *prod, const double *yc, const double *x, const double *ARef, const double *VRef, const double *alpha, const double *h, 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 xA[3], xB[3], xC[3], xD[3], xE[3], xF[3], xG[3], xH[3], xABDC[3], xBDHF[3], xABFE[3], xCAEG[3], xDCGH[3], xEFHG[3], xM[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];
  int id, i1, i2, i3, r, comp, idn;
  const double hd = h[0] * h[1] * h[2];
  const double alphaLength = alpha[0] * hd;
  const double alphaArea = alpha[1] * hd;
  const double alphaVolume = alpha[2] * hd;
  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, 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, xA, xB, xC, xD, xE, xF, xG, xH, xABDC, xBDHF, xABFE, xCAEG, xDCGH, xEFHG, xM)
  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]);
          rptr = x + idn + comp;
          xA[r] = *rptr;
          rptr += inc_x;
          xB[r] = *rptr;
          rptr += inc_y;
          xD[r] = *rptr;
          rptr -= inc_x;
          xC[r] = *rptr;
          rptr += inc_z;
          xG[r] = *rptr;
          rptr += inc_x;
          xH[r] = *rptr;
          rptr -= inc_y;
          xF[r] = *rptr;
          rptr -= inc_x;
          xE[r] = *rptr;
          xABDC[r] = 0.25 * (xA[r] + xB[r] + xD[r] + xC[r]);
          xBDHF[r] = 0.25 * (xB[r] + xD[r] + xH[r] + xF[r]);
          xABFE[r] = 0.25 * (xA[r] + xB[r] + xF[r] + xE[r]);
          xCAEG[r] = 0.25 * (xC[r] + xA[r] + xE[r] + xG[r]);
          xDCGH[r] = 0.25 * (xD[r] + xC[r] + xG[r] + xH[r]);
          xEFHG[r] = 0.25 * (xE[r] + xF[r] + xH[r] + xG[r]);
          xM[r] = 0.5 * (xABDC[r] + xEFHG[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;
        }
        if (alphaArea > 0) {
          d2SarTriangle3D(yA, yB, yABDC, xA, xB, xABDC, ARef[0], rA, rB, rABDC, alphaArea);
          d2SarTriangle3D(yB, yD, yABDC, xB, xD, xABDC, ARef[1], rB, rD, rABDC, alphaArea);
          d2SarTriangle3D(yD, yC, yABDC, xD, xC, xABDC, ARef[2], rD, rC, rABDC, alphaArea);
          d2SarTriangle3D(yC, yA, yABDC, xC, xA, xABDC, ARef[3], rC, rA, rABDC, alphaArea);
          d2SarTriangle3D(yB, yD, yBDHF, xB, xD, xBDHF, ARef[4], rB, rD, rBDHF, alphaArea);
          d2SarTriangle3D(yD, yH, yBDHF, xD, xH, xBDHF, ARef[5], rD, rH, rBDHF, alphaArea);
          d2SarTriangle3D(yH, yF, yBDHF, xH, xF, xBDHF, ARef[6], rH, rF, rBDHF, alphaArea);
          d2SarTriangle3D(yF, yB, yBDHF, xF, xB, xBDHF, ARef[7], rF, rB, rBDHF, alphaArea);
          d2SarTriangle3D(yA, yB, yABFE, xA, xB, xABFE, ARef[8], rA, rB, rABFE, alphaArea);
          d2SarTriangle3D(yB, yF, yABFE, xB, xF, xABFE, ARef[9], rB, rF, rABFE, alphaArea);
          d2SarTriangle3D(yF, yE, yABFE, xF, xE, xABFE, ARef[10], rF, rE, rABFE, alphaArea);
          d2SarTriangle3D(yE, yA, yABFE, xE, xA, xABFE, ARef[11], rE, rA, rABFE, alphaArea);
          d2SarTriangle3D(yC, yA, yCAEG, xC, xA, xCAEG, ARef[12], rC, rA, rCAEG, alphaArea);
          d2SarTriangle3D(yA, yE, yCAEG, xA, xE, xCAEG, ARef[13], rA, rE, rCAEG, alphaArea);
          d2SarTriangle3D(yE, yG, yCAEG, xE, xG, xCAEG, ARef[14], rE, rG, rCAEG, alphaArea);
          d2SarTriangle3D(yG, yC, yCAEG, xG, xC, xCAEG, ARef[15], rG, rC, rCAEG, alphaArea);
          d2SarTriangle3D(yD, yC, yDCGH, xD, xC, xDCGH, ARef[16], rD, rC, rDCGH, alphaArea);
          d2SarTriangle3D(yC, yG, yDCGH, xC, xG, xDCGH, ARef[17], rC, rG, rDCGH, alphaArea);
          d2SarTriangle3D(yG, yH, yDCGH, xG, xH, xDCGH, ARef[18], rG, rH, rDCGH, alphaArea);
          d2SarTriangle3D(yH, yD, yDCGH, xH, xD, xDCGH, ARef[19], rH, rD, rDCGH, alphaArea);
          d2SarTriangle3D(yE, yF, yEFHG, xE, xF, xEFHG, ARef[20], rE, rF, rEFHG, alphaArea);
          d2SarTriangle3D(yF, yH, yEFHG, xF, xH, xEFHG, ARef[21], rF, rH, rEFHG, alphaArea);
          d2SarTriangle3D(yH, yG, yEFHG, xH, xG, xEFHG, ARef[22], rH, rG, rEFHG, alphaArea);
          d2SarTriangle3D(yG, yE, yEFHG, xG, xE, xEFHG, ARef[23], rG, rE, rEFHG, alphaArea);
        }
        if (alphaVolume > 0) {
          d2SvolTetra3D(yA, yB, yABDC, yM, xA, xB, xABDC, xM, VRef[0], rA, rB, rABDC, rM, -1.0, alphaVolume);
          d2SvolTetra3D(yB, yD, yABDC, yM, xB, xD, xABDC, xM, VRef[1], rB, rD, rABDC, rM, -1.0, alphaVolume);
          d2SvolTetra3D(yD, yC, yABDC, yM, xD, xC, xABDC, xM, VRef[2], rD, rC, rABDC, rM, -1.0, alphaVolume);
          d2SvolTetra3D(yC, yA, yABDC, yM, xC, xA, xABDC, xM, VRef[3], rC, rA, rABDC, rM, -1.0, alphaVolume);
          d2SvolTetra3D(yB, yD, yBDHF, yM, xB, xD, xBDHF, xM, VRef[4], rB, rD, rBDHF, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yD, yH, yBDHF, yM, xD, xH, xBDHF, xM, VRef[5], rD, rH, rBDHF, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yH, yF, yBDHF, yM, xH, xF, xBDHF, xM, VRef[6], rH, rF, rBDHF, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yF, yB, yBDHF, yM, xF, xB, xBDHF, xM, VRef[7], rF, rB, rBDHF, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yA, yB, yABFE, yM, xA, xB, xABFE, xM, VRef[8], rA, rB, rABFE, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yB, yF, yABFE, yM, xB, xF, xABFE, xM, VRef[9], rB, rF, rABFE, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yF, yE, yABFE, yM, xF, xE, xABFE, xM, VRef[10], rF, rE, rABFE, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yE, yA, yABFE, yM, xE, xA, xABFE, xM, VRef[11], rE, rA, rABFE, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yC, yA, yCAEG, yM, xC, xA, xCAEG, xM, VRef[12], rC, rA, rCAEG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yA, yE, yCAEG, yM, xA, xE, xCAEG, xM, VRef[13], rA, rE, rCAEG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yE, yG, yCAEG, yM, xE, xG, xCAEG, xM, VRef[14], rE, rG, rCAEG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yG, yC, yCAEG, yM, xG, xC, xCAEG, xM, VRef[15], rG, rC, rCAEG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yD, yC, yDCGH, yM, xD, xC, xDCGH, xM, VRef[16], rD, rC, rDCGH, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yC, yG, yDCGH, yM, xC, xG, xDCGH, xM, VRef[17], rC, rG, rDCGH, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yG, yH, yDCGH, yM, xG, xH, xDCGH, xM, VRef[18], rG, rH, rDCGH, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yH, yD, yDCGH, yM, xH, xD, xDCGH, xM, VRef[19], rH, rD, rDCGH, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yE, yF, yEFHG, yM, xE, xF, xEFHG, xM, VRef[20], rE, rF, rEFHG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yF, yH, yEFHG, yM, xF, xH, xEFHG, xM, VRef[21], rF, rH, rEFHG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yH, yG, yEFHG, yM, xH, xG, xEFHG, xM, VRef[22], rH, rG, rEFHG, rM, 1.0, alphaVolume);
          d2SvolTetra3D(yG, yE, yEFHG, yM, xG, xE, xEFHG, xM, VRef[23], rG, rE, rEFHG, rM, 1.0, alphaVolume);
        }
        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;
        }
      }
    }
  }
}
```