user: Converte this assembly snippet into its equivalent C code:

```asm
<interpolate_eps_derivative_order3_square>:
  endbr64
  movapd %xmm0,%xmm4
  movapd %xmm0,%xmm6
  movapd %xmm0,%xmm3
  sub    $0x10,%rsp
  movsd  D80(%rip),%xmm5
  movapd %xmm1,%xmm0
  movapd %xmm1,%xmm2
  movapd %xmm1,%xmm7
  movsd  D11(%rip),%xmm12
  movsd  D36(%rip),%xmm8
  subsd  %xmm5,%xmm6
  addsd  %xmm5,%xmm2
  movsd  D36(%rip),%xmm14
  movsd  D8(%rip),%xmm11
  subsd  %xmm12,%xmm4
  subsd  %xmm5,%xmm0
  addsd  %xmm3,%xmm5
  subsd  %xmm12,%xmm7
  mulsd  %xmm6,%xmm14
  addsd  %xmm12,%xmm3
  addsd  %xmm12,%xmm1
  mulsd  %xmm4,%xmm8
  mulsd  %xmm4,%xmm11
  movapd %xmm5,%xmm13
  mulsd  %xmm14,%xmm13
  mulsd  %xmm3,%xmm14
  movapd %xmm8,%xmm15
  movapd %xmm8,%xmm9
  mulsd  %xmm5,%xmm15
  mulsd  %xmm6,%xmm9
  movapd %xmm13,%xmm8
  movsd  %xmm13,-0x50(%rsp)
  movapd %xmm6,%xmm13
  mulsd  %xmm7,%xmm8
  movsd  %xmm14,-0x18(%rsp)
  movapd %xmm15,%xmm10
  movsd  %xmm15,-0x58(%rsp)
  movsd  %xmm9,-0x60(%rsp)
  mulsd  %xmm7,%xmm10
  mulsd  %xmm7,%xmm9
  mulsd  %xmm11,%xmm13
  mulsd  %xmm0,%xmm8
  mulsd  %xmm7,%xmm14
  mulsd  %xmm0,%xmm10
  mulsd  %xmm0,%xmm9
  movsd  %xmm13,-0x48(%rsp)
  mulsd  %xmm2,%xmm8
  mulsd  %xmm2,%xmm10
  mulsd  %xmm2,%xmm9
  addsd  %xmm10,%xmm9
  movapd %xmm11,%xmm10
  movsd  D52(%rip),%xmm11
  mulsd  %xmm6,%xmm11
  addsd  %xmm8,%xmm9
  movsd  %xmm9,(%rdi)
  movq   D10(%rip),%xmm9
  xorpd  %xmm9,%xmm10
  xorpd  %xmm9,%xmm8
  movapd %xmm10,%xmm15
  movapd %xmm11,%xmm10
  movapd %xmm13,%xmm11
  mulsd  %xmm3,%xmm15
  mulsd  %xmm3,%xmm10
  mulsd  %xmm7,%xmm11
  movsd  %xmm15,-0x40(%rsp)
  movsd  %xmm10,-0x78(%rsp)
  movapd %xmm15,%xmm10
  movsd  -0x78(%rsp),%xmm13
  movapd %xmm5,%xmm15
  mulsd  %xmm7,%xmm10
  mulsd  %xmm0,%xmm11
  mulsd  %xmm7,%xmm13
  mulsd  %xmm0,%xmm10
  mulsd  %xmm2,%xmm11
  mulsd  %xmm2,%xmm10
  subsd  %xmm10,%xmm11
  movapd %xmm13,%xmm10
  mulsd  %xmm0,%xmm10
  mulsd  %xmm2,%xmm10
  subsd  %xmm10,%xmm11
  movsd  %xmm11,0x8(%rdi)
  movsd  D87(%rip),%xmm11
  mulsd  %xmm4,%xmm11
  mulsd  %xmm11,%xmm15
  movapd %xmm11,%xmm10
  movapd %xmm15,%xmm13
  movsd  %xmm15,-0x38(%rsp)
  movapd %xmm3,%xmm15
  mulsd  %xmm7,%xmm13
  mulsd  %xmm10,%xmm15
  xorpd  %xmm9,%xmm10
  mulsd  %xmm6,%xmm10
  movsd  %xmm13,-0x30(%rsp)
  movapd %xmm13,%xmm11
  movsd  D87(%rip),%xmm13
  movsd  %xmm15,-0x70(%rsp)
  mulsd  %xmm0,%xmm11
  mulsd  %xmm5,%xmm13
  mulsd  %xmm3,%xmm13
  movapd %xmm13,%xmm15
  movsd  %xmm13,-0x28(%rsp)
  mulsd  %xmm7,%xmm15
  movsd  %xmm15,-0x20(%rsp)
  movapd %xmm15,%xmm13
  movsd  -0x70(%rsp),%xmm15
  mulsd  %xmm0,%xmm13
  mulsd  %xmm7,%xmm15
  movsd  %xmm13,-0x68(%rsp)
  movapd %xmm2,%xmm13
  mulsd  %xmm0,%xmm15
  mulsd  %xmm11,%xmm13
  mulsd  %xmm1,%xmm11
  mulsd  %xmm2,%xmm15
  addsd  %xmm15,%xmm13
  movsd  -0x68(%rsp),%xmm15
  mulsd  %xmm2,%xmm15
  addsd  %xmm15,%xmm13
  movsd  %xmm13,0x10(%rdi)
  movsd  D36(%rip),%xmm13
  mulsd  %xmm5,%xmm13
  mulsd  %xmm3,%xmm13
  movapd %xmm13,%xmm15
  movapd %xmm14,%xmm13
  mulsd  %xmm0,%xmm13
  movapd %xmm15,%xmm14
  movsd  %xmm15,-0x10(%rsp)
  movapd %xmm0,%xmm15
  mulsd  %xmm7,%xmm14
  mulsd  %xmm2,%xmm13
  subsd  %xmm13,%xmm8
  movapd %xmm14,%xmm13
  movapd %xmm10,%xmm14
  mulsd  %xmm0,%xmm13
  mulsd  %xmm7,%xmm14
  mulsd  %xmm2,%xmm13
  subsd  %xmm13,%xmm8
  movsd  %xmm8,0x18(%rdi)
  movapd %xmm5,%xmm8
  movsd  D87(%rip),%xmm12
  movsd  %xmm14,-0x8(%rsp)
  mulsd  %xmm6,%xmm12
  mulsd  %xmm12,%xmm8
  mulsd  %xmm7,%xmm8
  movsd  %xmm8,(%rsp)
  mulsd  %xmm0,%xmm8
  movapd %xmm8,%xmm10
  movapd %xmm14,%xmm8
  movsd  D116(%rip),%xmm14
  mulsd  %xmm0,%xmm8
  mulsd  %xmm1,%xmm10
  mulsd  %xmm14,%xmm4
  mulsd  %xmm1,%xmm8
  movsd  %xmm10,0x8(%rsp)
  subsd  %xmm11,%xmm8
  movapd %xmm0,%xmm11
  subsd  %xmm10,%xmm8
  movapd %xmm3,%xmm10
  mulsd  %xmm4,%xmm10
  movsd  %xmm8,0x20(%rdi)
  movapd %xmm6,%xmm8
  mulsd  %xmm14,%xmm6
  mulsd  %xmm4,%xmm8
  xorpd  %xmm9,%xmm4
  mulsd  %xmm7,%xmm10
  mulsd  %xmm5,%xmm4
  mulsd  %xmm14,%xmm5
  movapd %xmm0,%xmm14
  mulsd  %xmm3,%xmm6
  mulsd  %xmm7,%xmm8
  mulsd  %xmm10,%xmm11
  mulsd  %xmm7,%xmm4
  mulsd  %xmm3,%xmm5
  mulsd  %xmm7,%xmm6
  mulsd  %xmm12,%xmm3
  movsd  -0x8(%rsp),%xmm12
  mulsd  %xmm2,%xmm10
  movapd %xmm11,%xmm13
  movapd %xmm0,%xmm11
  mulsd  %xmm8,%xmm11
  xorpd  %xmm9,%xmm12
  xorpd  %xmm9,%xmm8
  mulsd  %xmm1,%xmm13
  mulsd  %xmm6,%xmm15
  mulsd  %xmm7,%xmm5
  mulsd  %xmm4,%xmm14
  xorpd  %xmm9,%xmm4
  mulsd  %xmm1,%xmm11
  mulsd  %xmm7,%xmm3
  movapd %xmm0,%xmm7
  mulsd  %xmm1,%xmm15
  mulsd  %xmm2,%xmm8
  mulsd  %xmm1,%xmm14
  addsd  %xmm13,%xmm11
  mulsd  %xmm2,%xmm6
  mulsd  %xmm3,%xmm7
  mulsd  %xmm2,%xmm3
  addsd  %xmm15,%xmm11
  mulsd  %xmm2,%xmm4
  subsd  %xmm13,%xmm14
  mulsd  %xmm1,%xmm10
  mulsd  %xmm1,%xmm8
  movsd  %xmm11,0x28(%rdi)
  mulsd  %xmm1,%xmm7
  movapd %xmm0,%xmm11
  mulsd  %xmm5,%xmm11
  addsd  0x8(%rsp),%xmm7
  mulsd  %xmm1,%xmm3
  mulsd  %xmm2,%xmm5
  mulsd  %xmm1,%xmm6
  subsd  %xmm10,%xmm8
  mulsd  %xmm1,%xmm4
  mulsd  %xmm1,%xmm11
  mulsd  %xmm1,%xmm5
  subsd  %xmm6,%xmm8
  movsd  -0x60(%rsp),%xmm6
  addsd  %xmm10,%xmm4
  subsd  %xmm11,%xmm14
  movsd  -0x68(%rsp),%xmm11
  xorpd  %xmm9,%xmm6
  movsd  %xmm8,0x48(%rdi)
  mulsd  %xmm1,%xmm11
  addsd  %xmm5,%xmm4
  movsd  %xmm14,0x30(%rdi)
  movsd  %xmm4,0x50(%rdi)
  movsd  -0x50(%rsp),%xmm4
  addsd  %xmm11,%xmm7
  mulsd  %xmm0,%xmm4
  movapd %xmm12,%xmm11
  movsd  -0x30(%rsp),%xmm12
  mulsd  %xmm2,%xmm11
  mulsd  %xmm2,%xmm12
  movsd  %xmm7,0x38(%rdi)
  movsd  (%rsp),%xmm7
  mulsd  %xmm2,%xmm7
  mulsd  %xmm1,%xmm11
  mulsd  %xmm1,%xmm12
  mulsd  %xmm2,%xmm4
  mulsd  %xmm1,%xmm7
  addsd  %xmm12,%xmm11
  mulsd  %xmm1,%xmm4
  addsd  %xmm7,%xmm11
  xorpd  %xmm9,%xmm7
  subsd  %xmm3,%xmm7
  movsd  -0x20(%rsp),%xmm3
  mulsd  %xmm2,%xmm3
  movsd  %xmm11,0x40(%rdi)
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm7
  movapd %xmm6,%xmm3
  movsd  -0x58(%rsp),%xmm6
  mulsd  %xmm0,%xmm3
  mulsd  %xmm0,%xmm6
  movsd  %xmm7,0x58(%rdi)
  mulsd  %xmm2,%xmm3
  movapd %xmm6,%xmm5
  movsd  -0x48(%rsp),%xmm6
  mulsd  %xmm2,%xmm5
  xorpd  %xmm9,%xmm6
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  subsd  %xmm4,%xmm3
  movsd  %xmm3,0x60(%rdi)
  movapd %xmm6,%xmm3
  movsd  -0x40(%rsp),%xmm6
  mulsd  %xmm0,%xmm3
  mulsd  %xmm0,%xmm6
  mulsd  %xmm2,%xmm3
  movapd %xmm6,%xmm5
  movsd  -0x78(%rsp),%xmm6
  mulsd  %xmm2,%xmm5
  mulsd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm5
  addsd  %xmm5,%xmm3
  movapd %xmm6,%xmm5
  movsd  -0x70(%rsp),%xmm6
  mulsd  %xmm2,%xmm5
  mulsd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm5
  addsd  %xmm5,%xmm3
  movapd %xmm6,%xmm5
  mulsd  %xmm2,%xmm5
  movsd  %xmm3,0x68(%rdi)
  movsd  -0x38(%rsp),%xmm3
  xorpd  %xmm9,%xmm3
  mulsd  %xmm0,%xmm3
  mulsd  %xmm1,%xmm5
  mulsd  %xmm2,%xmm3
  mulsd  %xmm1,%xmm3
  subsd  %xmm5,%xmm3
  movsd  -0x28(%rsp),%xmm5
  mulsd  %xmm0,%xmm5
  mulsd  %xmm2,%xmm5
  mulsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movsd  %xmm3,0x70(%rdi)
  movsd  -0x18(%rsp),%xmm3
  mulsd  %xmm0,%xmm3
  mulsd  -0x10(%rsp),%xmm0
  mulsd  %xmm2,%xmm3
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm4,%xmm3
  addsd  %xmm0,%xmm3
  movsd  %xmm3,0x78(%rdi)
  add    $0x10,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: label: D80
type_infered: f64
name: retrieve_data
arguments: label: D11
type_infered: f64
name: retrieve_data
arguments: label: D36
type_infered: f64
name: retrieve_data
arguments: label: D8
type_infered: byte[8]
name: retrieve_data
arguments: label: D52
type_infered: f64
name: retrieve_data
arguments: label: D10
type_infered: byte[8]
name: retrieve_data
arguments: label: D87
type_infered: f64
name: retrieve_data
arguments: label: D116
type_infered: f64

tool: D80: 0.447213595499958

tool: D11: 1

tool: D36: 0.390625

tool: {"D8": [0x4c,0x6e,0x1d,0xe3,0x6a,0xf3,0xeb,0xbf]}

tool: D52: 0.873464053710856

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

tool: D87: 0.873464053710855

tool: D116: 1.953125

assistant: ```c
void interpolate_eps_derivative_order3_square(double epsilon, double eta, double *out_1735109083759235119) {
  out_1735109083759235119[0] = 0.390625 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) + 0.390625 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) + 0.390625 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958);
  out_1735109083759235119[1] = -0.873464053710856 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) - 0.873464053710856 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) - 0.873464053710856 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958);
  out_1735109083759235119[2] = 0.873464053710855 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) + 0.873464053710855 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) + 0.873464053710855 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958);
  out_1735109083759235119[3] = -0.390625 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) - 0.390625 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) - 0.390625 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958);
  out_1735109083759235119[4] = -0.873464053710855 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) - 0.873464053710855 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) - 0.873464053710855 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[5] = 1.953125 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) + 1.953125 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) + 1.953125 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[6] = -1.953125 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) - 1.953125 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) - 1.953125 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[7] = 0.873464053710855 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) + 0.873464053710855 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0) + 0.873464053710855 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta - 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[8] = 0.873464053710855 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) + 0.873464053710855 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) + 0.873464053710855 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[9] = -1.953125 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) - 1.953125 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) - 1.953125 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[10] = 1.953125 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) + 1.953125 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) + 1.953125 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[11] = -0.873464053710855 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) - 0.873464053710855 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0) - 0.873464053710855 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 1.0) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[12] = -0.390625 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) - 0.390625 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) - 0.390625 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[13] = 0.873464053710856 * (epsilon - 1.0) * (epsilon - 0.447213595499958) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) + 0.873464053710856 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) + 0.873464053710856 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[14] = -0.873464053710855 * (epsilon - 1.0) * (epsilon + 0.447213595499958) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) - 0.873464053710855 * (epsilon - 1.0) * (epsilon + 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) - 0.873464053710855 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0);
  out_1735109083759235119[15] = 0.390625 * (epsilon - 0.447213595499958) * (epsilon + 0.447213595499958) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) + 0.390625 * (epsilon - 0.447213595499958) * (epsilon + 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0) + 0.390625 * (epsilon + 0.447213595499958) * (epsilon + 1.0) * (eta - 0.447213595499958) * (eta + 0.447213595499958) * (eta + 1.0);
}
```