user: Demonstrate the C code that generates the assembly output below:

```asm
<HO_12>:
  endbr64
  sub    $0x78,%rsp
  movsd  %xmm1,0x8(%rsp)
  movsd  D36(%rip),%xmm1
  movsd  %xmm0,0x10(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm4
  movapd %xmm0,%xmm1
  movsd  D108(%rip),%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  %xmm1,%xmm0
  call   <exp@plt>
  movsd  0x10(%rsp),%xmm3
  movsd  D62(%rip),%xmm1
  movsd  %xmm0,0x68(%rsp)
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x18(%rsp)
  call   <pow@plt>
  movsd  D165(%rip),%xmm10
  movsd  %xmm0,0x10(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm10,%xmm1
  call   <pow@plt>
  movsd  D170(%rip),%xmm5
  movsd  %xmm0,0x60(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm5,%xmm1
  call   <pow@plt>
  movsd  D98(%rip),%xmm11
  movsd  %xmm0,0x58(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm11,%xmm1
  call   <pow@plt>
  movsd  D115(%rip),%xmm6
  movsd  0x18(%rsp),%xmm3
  movsd  %xmm0,0x50(%rsp)
  movapd %xmm6,%xmm1
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x20(%rsp)
  call   <pow@plt>
  movsd  D141(%rip),%xmm12
  movsd  %xmm0,0x18(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm12,%xmm1
  call   <pow@plt>
  movsd  0x20(%rsp),%xmm3
  mov    D141(%rip),%rax
  movsd  %xmm0,0x48(%rsp)
  movq   %rax,%xmm1
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x28(%rsp)
  call   <pow@plt>
  mov    D115(%rip),%rax
  movsd  %xmm0,0x20(%rsp)
  movsd  0x8(%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  0x28(%rsp),%xmm3
  mov    D98(%rip),%rax
  movsd  %xmm0,0x40(%rsp)
  movq   %rax,%xmm1
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x30(%rsp)
  call   <pow@plt>
  movsd  0x30(%rsp),%xmm3
  mov    D165(%rip),%rax
  movsd  %xmm0,0x28(%rsp)
  movq   %rax,%xmm1
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x38(%rsp)
  call   <pow@plt>
  movsd  0x38(%rsp),%xmm3
  mov    D170(%rip),%rax
  movsd  %xmm0,0x30(%rsp)
  movq   %rax,%xmm1
  movapd %xmm3,%xmm0
  call   <pow@plt>
  movsd  0x60(%rsp),%xmm2
  movsd  D92(%rip),%xmm7
  movsd  0x38(%rsp),%xmm3
  movapd %xmm0,%xmm5
  movsd  0x58(%rsp),%xmm9
  mulsd  %xmm2,%xmm7
  movsd  D193(%rip),%xmm1
  movsd  0x50(%rsp),%xmm8
  movsd  0x40(%rsp),%xmm6
  mulsd  D61(%rip),%xmm6
  mulsd  %xmm9,%xmm1
  movsd  0x8(%rsp),%xmm2
  movsd  0x68(%rsp),%xmm4
  mulsd  D185(%rip),%xmm4
  movapd %xmm7,%xmm0
  movsd  0x48(%rsp),%xmm7
  mulsd  %xmm3,%xmm0
  mulsd  D171(%rip),%xmm7
  mulsd  %xmm3,%xmm0
  addsd  %xmm1,%xmm0
  movsd  D122(%rip),%xmm1
  mulsd  %xmm8,%xmm1
  mulsd  0x18(%rsp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  0x20(%rsp),%xmm1
  mulsd  %xmm7,%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x28(%rsp),%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  movsd  D0(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  0x30(%rsp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  0x10(%rsp),%xmm1
  add    $0x78,%rsp
  mulsd  %xmm4,%xmm1
  addsd  %xmm5,%xmm0
  mulsd  %xmm1,%xmm0
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D36
data_type: byte[8]
name: unpack_data
arguments: data_label: D108
data_type: byte[8]
name: unpack_data
arguments: data_label: D62
data_type: byte[8]
name: unpack_data
arguments: data_label: D165
data_type: f64
name: unpack_data
arguments: data_label: D170
data_type: f64
name: unpack_data
arguments: data_label: D98
data_type: f64
name: unpack_data
arguments: data_label: D115
data_type: f64
name: unpack_data
arguments: data_label: D141
data_type: f64
name: unpack_data
arguments: data_label: D92
data_type: byte[8]
name: unpack_data
arguments: data_label: D193
data_type: byte[8]
name: unpack_data
arguments: data_label: D61
data_type: f64
name: unpack_data
arguments: data_label: D185
data_type: f64
name: unpack_data
arguments: data_label: D171
data_type: f64
name: unpack_data
arguments: data_label: D122
data_type: f64
name: unpack_data
arguments: data_label: D0
data_type: f64

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

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

tool: {"D62": [0x00,0x00,0x00,0x00,0x00,0x00,0x29,0xc0]}

tool: D165: 10

tool: D170: 12

tool: D98: 8

tool: D115: 4

tool: D141: 6

tool: {"D92": [0xa3,0x9c,0xd8,0x19,0xa0,0x01,0xca,0xbf]}

tool: {"D193": [0xc6,0x88,0x9c,0x11,0xe1,0x37,0x79,0x3f]}

tool: D61: 20

tool: D185: 7807.950016

tool: D171: 10.66666666

tool: D122: 2.285714286

tool: D0: 11.99999999

assistant: ```c
double HO_12(const double L, const double x) {
  double retval = 0.7807950016e4 * exp(-0.5000000000e0 * x * x * pow(L, -0.2e1)) * pow(L, -0.25e2 / 0.2e1) * (-0.2031746031e0 * pow(x, 0.10e2) * L * L + 0.6156806159e-2 * pow(x, 0.12e2) + 0.2285714286e1 * pow(x, 0.8e1) * pow(L, 0.4e1) - 0.1066666666e2 * pow(x, 0.6e1) * pow(L, 0.6e1) + 0.2000000000e2 * pow(x, 0.4e1) * pow(L, 0.8e1) - 0.1199999999e2 * x * x * pow(L, 0.10e2) + 0.1000000000e1 * pow(L, 0.12e2));
  return retval;
}
```