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

```asm
<HO_30>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xc8,%rsp
  movsd  %xmm0,0x8(%rsp)
  movsd  %xmm1,(%rsp)
  movsd  D281(%rip),%xmm1
  call   <pow@plt>
  movsd  %xmm0,0x10(%rsp)
  movsd  D158(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  D142(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x18(%rsp)
  mov    D368(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r15
  movsd  D61(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x20(%rsp)
  movsd  D371(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x28(%rsp)
  movsd  D151(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x30(%rsp)
  mov    D200(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x38(%rsp)
  movsd  D11(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x40(%rsp)
  movsd  D468(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x48(%rsp)
  movsd  D299(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x50(%rsp)
  mov    D122(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x58(%rsp)
  movsd  D414(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x60(%rsp)
  movsd  D242(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x68(%rsp)
  movsd  D472(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x70(%rsp)
  mov    D34(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x78(%rsp)
  movsd  D478(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x80(%rsp)
  movsd  D364(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x88(%rsp)
  mov    D368(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x90(%rsp)
  mov    D9(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r14
  mov    D200(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x98(%rsp)
  movsd  D292(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r13
  mov    D122(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xa0(%rsp)
  mov    D169(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r12
  mov    D34(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xa8(%rsp)
  movsd  D199(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbp
  mov    D9(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xb0(%rsp)
  mov    D169(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xb8(%rsp)
  movsd  0x8(%rsp),%xmm5
  xorpd  D248(%rip),%xmm5
  movapd %xmm5,%xmm0
  movsd  (%rsp),%xmm3
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  D224(%rip),%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm2
  movq   %rbx,%xmm1
  mulsd  D338(%rip),%xmm1
  mulsd  0x18(%rsp),%xmm1
  movq   %r15,%xmm0
  mulsd  D245(%rip),%xmm0
  mulsd  0x20(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x28(%rsp),%xmm0
  mulsd  D312(%rip),%xmm0
  mulsd  0x30(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x38(%rsp),%xmm0
  mulsd  D343(%rip),%xmm0
  mulsd  0x40(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x48(%rsp),%xmm0
  mulsd  D2(%rip),%xmm0
  mulsd  0x50(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x58(%rsp),%xmm0
  mulsd  D119(%rip),%xmm0
  mulsd  0x60(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x68(%rsp),%xmm0
  mulsd  D1(%rip),%xmm0
  mulsd  0x70(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x78(%rsp),%xmm0
  mulsd  D83(%rip),%xmm0
  mulsd  0x80(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x88(%rsp),%xmm0
  mulsd  D336(%rip),%xmm0
  mulsd  0x90(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movq   %r14,%xmm0
  mulsd  D327(%rip),%xmm0
  mulsd  0x98(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movq   %r13,%xmm0
  mulsd  D287(%rip),%xmm0
  mulsd  0xa0(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movq   %r12,%xmm0
  mulsd  D293(%rip),%xmm0
  mulsd  0xa8(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movq   %rbp,%xmm0
  mulsd  D143(%rip),%xmm0
  mulsd  0xb0(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  mulsd  D123(%rip),%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  0xb8(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  mulsd  D363(%rip),%xmm4
  movapd %xmm4,%xmm0
  movsd  (%rsp),%xmm3
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm1,%xmm0
  subsd  D108(%rip),%xmm0
  movsd  0x10(%rsp),%xmm1
  mulsd  D259(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  D51(%rip),%xmm0
  divsd  D298(%rip),%xmm0
  add    $0xc8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D281
type: byte[8]
name: parse_data
arguments: data_tag: D158
type: f64
name: parse_data
arguments: data_tag: D142
type: f64
name: parse_data
arguments: data_tag: D368
type: f64
name: parse_data
arguments: data_tag: D61
type: f64
name: parse_data
arguments: data_tag: D371
type: f64
name: parse_data
arguments: data_tag: D151
type: f64
name: parse_data
arguments: data_tag: D200
type: f64
name: parse_data
arguments: data_tag: D11
type: f64
name: parse_data
arguments: data_tag: D468
type: f64
name: parse_data
arguments: data_tag: D299
type: f64
name: parse_data
arguments: data_tag: D122
type: f64
name: parse_data
arguments: data_tag: D414
type: f64
name: parse_data
arguments: data_tag: D242
type: f64
name: parse_data
arguments: data_tag: D472
type: f64
name: parse_data
arguments: data_tag: D34
type: f64
name: parse_data
arguments: data_tag: D478
type: f64
name: parse_data
arguments: data_tag: D364
type: f64
name: parse_data
arguments: data_tag: D9
type: f64
name: parse_data
arguments: data_tag: D292
type: f64
name: parse_data
arguments: data_tag: D169
type: f64
name: parse_data
arguments: data_tag: D199
type: f64
name: parse_data
arguments: data_tag: D248
type: byte[16]
name: parse_data
arguments: data_tag: D224
type: byte[8]
name: parse_data
arguments: data_tag: D338
type: f64
name: parse_data
arguments: data_tag: D245
type: f64
name: parse_data
arguments: data_tag: D312
type: f64
name: parse_data
arguments: data_tag: D343
type: f64
name: parse_data
arguments: data_tag: D2
type: f64
name: parse_data
arguments: data_tag: D119
type: f64
name: parse_data
arguments: data_tag: D1
type: f64
name: parse_data
arguments: data_tag: D83
type: f64
name: parse_data
arguments: data_tag: D336
type: f64
name: parse_data
arguments: data_tag: D327
type: f64
name: parse_data
arguments: data_tag: D287
type: f64
name: parse_data
arguments: data_tag: D293
type: f64
name: parse_data
arguments: data_tag: D143
type: f64
name: parse_data
arguments: data_tag: D123
type: f64
name: parse_data
arguments: data_tag: D363
type: f64
name: parse_data
arguments: data_tag: D108
type: f64
name: parse_data
arguments: data_tag: D259
type: byte[8]
name: parse_data
arguments: data_tag: D51
type: byte[8]
name: parse_data
arguments: data_tag: D298
type: f64

tool: {"D281": [0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x3f]}

tool: D158: 15

tool: D142: 30

tool: D368: 14

tool: D61: 28

tool: D371: 13

tool: D151: 26

tool: D200: 12

tool: D11: 24

tool: D468: 11

tool: D299: 22

tool: D122: 10

tool: D414: 20

tool: D242: 9

tool: D472: 18

tool: D34: 8

tool: D478: 16

tool: D364: 7

tool: D9: 6

tool: D292: 5

tool: D169: 4

tool: D199: 3

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

tool: {"D224": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

tool: D338: 32768

tool: D245: 7127040

tool: D312: 673505280

tool: D343: 36481536000

tool: D2: 1258612992000

tool: D119: 29073960115200

tool: D1: 460337701824000

tool: D83: 5030833455648000.0

tool: D336: 3.773125091736e+16

tool: D327: 1.9075243519332e+17

tool: D287: 6.29483036137956e+17

tool: D293: 1.28757893755491e+18

tool: D143: 1.502175427147395e+18

tool: D123: 8.666396695081125e+17

tool: D363: 1.8570850060888125e+17

tool: D108: 6190283353629375.0

tool: {"D259": [0xbc,0x60,0xef,0x1a,0x8a,0x37,0x90,0x40]}

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

tool: D298: 1.690360041097728e+19

assistant: ```c
double HO_30(const double a, const double x) {
  double retval = sqrt(0.1077205e7) * pow(a, 0.1e1 / 0.4e1) * (0.32768e5 * pow(a, 0.15e2) * pow(x, 0.30e2) - 0.7127040e7 * pow(a, 0.14e2) * pow(x, 0.28e2) + 0.673505280e9 * pow(a, 0.13e2) * pow(x, 0.26e2) - 0.36481536000e11 * pow(a, 0.12e2) * pow(x, 0.24e2) + 0.1258612992000e13 * pow(a, 0.11e2) * pow(x, 0.22e2) - 0.29073960115200e14 * pow(a, 0.10e2) * pow(x, 0.20e2) + 0.460337701824000e15 * pow(a, 0.9e1) * pow(x, 0.18e2) - 0.5030833455648000e16 * pow(a, 0.8e1) * pow(x, 0.16e2) + 0.37731250917360000e17 * pow(a, 0.7e1) * pow(x, 0.14e2) - 0.190752435193320000e18 * pow(a, 0.6e1) * pow(x, 0.12e2) + 0.629483036137956000e18 * pow(a, 0.5e1) * pow(x, 0.10e2) - 0.1287578937554910000e19 * pow(a, 0.4e1) * pow(x, 0.8e1) + 0.1502175427147395000e19 * pow(a, 0.3e1) * pow(x, 0.6e1) - 0.866639669508112500e18 * a * a * pow(x, 0.4e1) + 0.185708500608881250e18 * a * x * x - 0.6190283353629375e16) * exp(-a * x * x / 0.2e1) * pow(0.3141592654e1, -0.1e1 / 0.4e1) / 0.16903600410977280000e20;
  return retval;
}
```