user: 请将以下的汇编代码转换成C语言代码:

```asm
<HO_18>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  movsd  %xmm0,-0x18(%rbp)
  movsd  %xmm1,-0x20(%rbp)
  movsd  D148(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D45(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D171(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D294(%rip),%xmm1
  movapd %xmm0,%xmm7
  mulsd  %xmm1,%xmm7
  movsd  %xmm7,-0x30(%rbp)
  movsd  D64(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D65(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D174(%rip),%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,-0x38(%rbp)
  movsd  D98(%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  D132(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D246(%rip),%xmm1
  movapd %xmm0,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm4,-0x38(%rbp)
  movsd  D46(%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  D44(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D239(%rip),%xmm1
  movapd %xmm0,%xmm3
  mulsd  %xmm1,%xmm3
  movsd  %xmm3,-0x38(%rbp)
  movsd  D155(%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  D186(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D305(%rip),%xmm1
  movapd %xmm0,%xmm5
  mulsd  %xmm1,%xmm5
  movsd  %xmm5,-0x38(%rbp)
  movsd  D134(%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  D252(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D302(%rip),%xmm1
  movapd %xmm0,%xmm7
  mulsd  %xmm1,%xmm7
  movsd  %xmm7,-0x38(%rbp)
  movsd  D65(%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  D276(%rip),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D20(%rip),%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  %xmm2,-0x38(%rbp)
  movsd  D44(%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  -0x18(%rbp),%xmm1
  movsd  D241(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm3
  mulsd  -0x18(%rbp),%xmm3
  movsd  %xmm3,-0x38(%rbp)
  movsd  D252(%rip),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0x38(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm1
  subsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm2
  movsd  D233(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  -0x20(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D109(%rip),%xmm1
  subsd  %xmm1,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   D227(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x20(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  D278(%rip),%xmm1
  movapd %xmm0,%xmm6
  divsd  %xmm1,%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  -0x28(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D99(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  D55(%rip),%xmm1
  divsd  %xmm1,%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: D148
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D45
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D171
datatype: f64
name: extract_symbolic_data
arguments: label: D294
datatype: f64
name: extract_symbolic_data
arguments: label: D64
datatype: f64
name: extract_symbolic_data
arguments: label: D65
datatype: f64
name: extract_symbolic_data
arguments: label: D174
datatype: f64
name: extract_symbolic_data
arguments: label: D98
datatype: f64
name: extract_symbolic_data
arguments: label: D132
datatype: f64
name: extract_symbolic_data
arguments: label: D246
datatype: f64
name: extract_symbolic_data
arguments: label: D46
datatype: f64
name: extract_symbolic_data
arguments: label: D44
datatype: f64
name: extract_symbolic_data
arguments: label: D239
datatype: f64
name: extract_symbolic_data
arguments: label: D155
datatype: f64
name: extract_symbolic_data
arguments: label: D186
datatype: f64
name: extract_symbolic_data
arguments: label: D305
datatype: f64
name: extract_symbolic_data
arguments: label: D134
datatype: f64
name: extract_symbolic_data
arguments: label: D252
datatype: f64
name: extract_symbolic_data
arguments: label: D302
datatype: f64
name: extract_symbolic_data
arguments: label: D276
datatype: f64
name: extract_symbolic_data
arguments: label: D20
datatype: f64
name: extract_symbolic_data
arguments: label: D241
datatype: f64
name: extract_symbolic_data
arguments: label: D233
datatype: f64
name: extract_symbolic_data
arguments: label: D109
datatype: f64
name: extract_symbolic_data
arguments: label: D227
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D278
datatype: f64
name: extract_symbolic_data
arguments: label: D99
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D55
datatype: f64

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

tool: {"D45": [0xea,0x04,0x23,0x5b,0xfb,0x8f,0x5b,0x40]}

tool: D171: 9

tool: D294: 512

tool: D64: 18

tool: D65: 8

tool: D174: 39168

tool: D98: 16

tool: D132: 7

tool: D246: 1175040

tool: D46: 14

tool: D44: 6

tool: D239: 17821440

tool: D155: 12

tool: D186: 5

tool: D305: 147026880

tool: D134: 10

tool: D252: 4

tool: D302: 661620960

tool: D276: 3

tool: D20: 1543782240

tool: D241: 1654052400

tool: D233: 620269650

tool: D109: 34459425

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

tool: D278: 2

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

tool: D55: 8821612800

assistant: ```c
double HO_18(const double a, const double x) {
  double retval = sqrt(0.12155e5) * pow(a, 0.1e1 / 0.4e1) * (0.512e3 * pow(a, 0.9e1) * pow(x, 0.18e2) - 0.39168e5 * pow(a, 0.8e1) * pow(x, 0.16e2) + 0.1175040e7 * pow(a, 0.7e1) * pow(x, 0.14e2) - 0.17821440e8 * pow(a, 0.6e1) * pow(x, 0.12e2) + 0.147026880e9 * pow(a, 0.5e1) * pow(x, 0.10e2) - 0.661620960e9 * pow(a, 0.4e1) * pow(x, 0.8e1) + 0.1543782240e10 * pow(a, 0.3e1) * pow(x, 0.6e1) - 0.1654052400e10 * a * a * pow(x, 0.4e1) + 0.620269650e9 * a * x * x - 0.34459425e8) * exp(-a * x * x / 0.2e1) * pow(0.3141592654e1, -0.1e1 / 0.4e1) / 0.8821612800e10;
  return retval;
}
```