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

```asm
<HO_21>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  movsd  %xmm0,-0x18(%rbp)
  movsd  %xmm1,-0x20(%rbp)
  movsd  D182(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D321(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D241(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D124(%rip),%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,-0x30(%rbp)
  movsd  D72(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D53(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D289(%rip),%xmm1
  movapd %xmm0,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm4,-0x38(%rbp)
  movsd  D139(%rip),%xmm0
  mov    -0x20(%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  D86(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D184(%rip),%xmm1
  movapd %xmm0,%xmm5
  mulsd  %xmm1,%xmm5
  movsd  %xmm5,-0x38(%rbp)
  movsd  D194(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D150(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D175(%rip),%xmm1
  movapd %xmm0,%xmm3
  mulsd  %xmm1,%xmm3
  movsd  %xmm3,-0x38(%rbp)
  movsd  D206(%rip),%xmm0
  mov    -0x20(%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  D42(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D333(%rip),%xmm1
  movapd %xmm0,%xmm6
  mulsd  %xmm1,%xmm6
  movsd  %xmm6,-0x38(%rbp)
  movsd  D2(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D270(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D328(%rip),%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,-0x38(%rbp)
  movsd  D241(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm5
  subsd  %xmm0,%xmm5
  movsd  %xmm5,-0x30(%rbp)
  movsd  D214(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D137(%rip),%xmm1
  movapd %xmm0,%xmm3
  mulsd  %xmm1,%xmm3
  movsd  %xmm3,-0x38(%rbp)
  movsd  D86(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D76(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D287(%rip),%xmm1
  movapd %xmm0,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm4,-0x38(%rbp)
  movsd  D42(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,-0x30(%rbp)
  movsd  -0x18(%rbp),%xmm1
  movsd  D170(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm5
  mulsd  -0x18(%rbp),%xmm5
  movsd  %xmm5,-0x38(%rbp)
  movsd  D214(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  -0x18(%rbp),%xmm2
  movsd  D118(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  -0x20(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x20(%rbp),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  D233(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   D284(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x20(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  D119(%rip),%xmm1
  movapd %xmm0,%xmm7
  divsd  %xmm1,%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  -0x28(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D62(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  D335(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D182
data_type: byte[8]
name: parse_data
arguments: data_label: D321
data_type: byte[8]
name: parse_data
arguments: data_label: D241
data_type: f64
name: parse_data
arguments: data_label: D124
data_type: f64
name: parse_data
arguments: data_label: D72
data_type: f64
name: parse_data
arguments: data_label: D53
data_type: f64
name: parse_data
arguments: data_label: D289
data_type: f64
name: parse_data
arguments: data_label: D139
data_type: f64
name: parse_data
arguments: data_label: D86
data_type: f64
name: parse_data
arguments: data_label: D184
data_type: f64
name: parse_data
arguments: data_label: D194
data_type: f64
name: parse_data
arguments: data_label: D150
data_type: f64
name: parse_data
arguments: data_label: D175
data_type: f64
name: parse_data
arguments: data_label: D206
data_type: f64
name: parse_data
arguments: data_label: D42
data_type: f64
name: parse_data
arguments: data_label: D333
data_type: f64
name: parse_data
arguments: data_label: D2
data_type: f64
name: parse_data
arguments: data_label: D270
data_type: f64
name: parse_data
arguments: data_label: D328
data_type: f64
name: parse_data
arguments: data_label: D214
data_type: f64
name: parse_data
arguments: data_label: D137
data_type: f64
name: parse_data
arguments: data_label: D76
data_type: f64
name: parse_data
arguments: data_label: D287
data_type: f64
name: parse_data
arguments: data_label: D170
data_type: f64
name: parse_data
arguments: data_label: D118
data_type: f64
name: parse_data
arguments: data_label: D233
data_type: f64
name: parse_data
arguments: data_label: D284
data_type: byte[8]
name: parse_data
arguments: data_label: D119
data_type: f64
name: parse_data
arguments: data_label: D62
data_type: byte[8]
name: parse_data
arguments: data_label: D335
data_type: f64

tool: {"D182": [0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x3f]}

tool: {"D321": [0x9a,0x4a,0x25,0x2b,0x44,0xc3,0x95,0x40]}

tool: D241: 10

tool: D124: 1024

tool: D72: 20

tool: D53: 9

tool: D289: 107520

tool: D139: 18

tool: D86: 8

tool: D184: 4596480

tool: D194: 16

tool: D150: 7

tool: D175: 104186880

tool: D206: 14

tool: D42: 6

tool: D333: 1367452800

tool: D2: 12

tool: D270: 5

tool: D328: 10666131840

tool: D214: 4

tool: D137: 48886437600

tool: D76: 3

tool: D287: 125707982400

tool: D170: 164991726900

tool: D118: 91662070500

tool: D233: 13749310575

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

tool: D119: 2

tool: {"D62": [0x5f,0xfa,0x11,0x70,0x38,0x09,0xe8,0x3f]}

tool: D335: 7039647014400

assistant: ```c
double HO_21(const double a, const double x) {
  double retval = sqrt(0.1939938e7) * pow(a, 0.3e1 / 0.4e1) * x * (0.1024e4 * pow(a, 0.10e2) * pow(x, 0.20e2) - 0.107520e6 * pow(a, 0.9e1) * pow(x, 0.18e2) + 0.4596480e7 * pow(a, 0.8e1) * pow(x, 0.16e2) - 0.104186880e9 * pow(a, 0.7e1) * pow(x, 0.14e2) + 0.1367452800e10 * pow(a, 0.6e1) * pow(x, 0.12e2) - 0.10666131840e11 * pow(a, 0.5e1) * pow(x, 0.10e2) + 0.48886437600e11 * pow(a, 0.4e1) * pow(x, 0.8e1) - 0.125707982400e12 * pow(a, 0.3e1) * pow(x, 0.6e1) + 0.164991726900e12 * a * a * pow(x, 0.4e1) - 0.91662070500e11 * a * x * x + 0.13749310575e11) * exp(-a * x * x / 0.2e1) * pow(0.3141592654e1, -0.1e1 / 0.4e1) / 0.7039647014400e13;
  return retval;
}
```