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

```asm
<HO_14>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  movsd  %xmm0,-0x18(%rbp)
  movsd  %xmm1,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D221(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D106(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm6
  mulsd  -0x28(%rbp),%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D119(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D79(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm5
  mulsd  -0x28(%rbp),%xmm5
  movsd  %xmm5,-0x28(%rbp)
  movsd  D38(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D4(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D165(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D123(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm2
  subsd  %xmm0,%xmm2
  movsd  %xmm2,-0x30(%rbp)
  movsd  D11(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D124(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D29(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm2
  subsd  %xmm0,%xmm2
  movsd  %xmm2,-0x30(%rbp)
  movsd  D217(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D70(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D141(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D141(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D112(%rip),%xmm1
  movapd %xmm0,%xmm7
  mulsd  %xmm1,%xmm7
  movsd  %xmm7,-0x38(%rbp)
  movsd  D217(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,-0x30(%rbp)
  movsd  D29(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D31(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D11(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x20(%rbp),%xmm1
  movsd  D187(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm3
  mulsd  -0x20(%rbp),%xmm3
  movsd  %xmm3,-0x38(%rbp)
  movsd  D38(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm4
  subsd  %xmm0,%xmm4
  movsd  %xmm4,-0x30(%rbp)
  movsd  D165(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  addsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D221
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D106
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D119
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D79
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D38
data_type: f64
name: extract_symbolic_data
arguments: label: D4
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D165
data_type: f64
name: extract_symbolic_data
arguments: label: D123
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D11
data_type: f64
name: extract_symbolic_data
arguments: label: D124
data_type: f64
name: extract_symbolic_data
arguments: label: D29
data_type: f64
name: extract_symbolic_data
arguments: label: D217
data_type: f64
name: extract_symbolic_data
arguments: label: D70
data_type: f64
name: extract_symbolic_data
arguments: label: D141
data_type: f64
name: extract_symbolic_data
arguments: label: D112
data_type: f64
name: extract_symbolic_data
arguments: label: D31
data_type: f64
name: extract_symbolic_data
arguments: label: D187
data_type: f64

tool: {"D221": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xbf]}

tool: {"D106": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0]}

tool: {"D119": [0x9a,0x99,0x99,0x99,0xf5,0xc7,0xf8,0xc0]}

tool: {"D79": [0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0xc0]}

tool: D38: 12

tool: {"D4": [0x54,0x57,0xa4,0xef,0xe4,0x10,0xa6,0x3f]}

tool: D165: 14

tool: {"D123": [0x86,0xbf,0x69,0x8c,0xb2,0x09,0x4f,0x3f]}

tool: D11: 10

tool: D124: 0.7111111118

tool: D29: 4

tool: D217: 8

tool: D70: 5.333333339

tool: D141: 6

tool: D112: 18.66666669

tool: D31: 28.00000003

tool: D187: 14.00000002

assistant: ```c
double HO_14(const double L, const double x) {
  double retval = -0.1015033500e6 * exp(-0.5000000000e0 * x * x * pow(L, -0.2e1)) * pow(L, -0.29e2 / 0.2e1) * (0.4309764314e-1 * pow(x, 0.12e2) * L * L - 0.9472009486e-3 * pow(x, 0.14e2) - 0.7111111118e0 * pow(x, 0.10e2) * pow(L, 0.4e1) + 0.5333333339e1 * pow(x, 0.8e1) * pow(L, 0.6e1) - 0.1866666669e2 * pow(x, 0.6e1) * pow(L, 0.8e1) + 0.2800000003e2 * pow(x, 0.4e1) * pow(L, 0.10e2) - 0.1400000002e2 * x * x * pow(L, 0.12e2) + 0.1000000000e1 * pow(L, 0.14e2));
  return retval;
}
```