user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<HO_51>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x168,%rsp
  movsd  %xmm0,0x8(%rsp)
  movsd  %xmm1,(%rsp)
  movsd  D751(%rip),%xmm1
  call   <pow@plt>
  movsd  %xmm0,0x10(%rsp)
  movsd  D754(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x18(%rsp)
  movsd  D306(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x20(%rsp)
  mov    D247(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x28(%rsp)
  movsd  D222(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x30(%rsp)
  movsd  D307(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x38(%rsp)
  movsd  D353(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x40(%rsp)
  mov    D526(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x48(%rsp)
  movsd  D458(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x50(%rsp)
  movsd  D226(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x58(%rsp)
  movsd  D159(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x60(%rsp)
  mov    D571(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x68(%rsp)
  movsd  D202(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x70(%rsp)
  movsd  D204(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x78(%rsp)
  movsd  D430(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x80(%rsp)
  mov    D665(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x88(%rsp)
  movsd  D512(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x90(%rsp)
  movsd  D451(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x98(%rsp)
  movsd  D66(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xa0(%rsp)
  mov    D708(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xa8(%rsp)
  movsd  D590(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xb0(%rsp)
  movsd  D364(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xb8(%rsp)
  movsd  D747(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xc0(%rsp)
  mov    D195(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xc8(%rsp)
  movsd  D530(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xd0(%rsp)
  movsd  D787(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xd8(%rsp)
  movsd  D776(%rip),%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xe0(%rsp)
  mov    D748(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xe8(%rsp)
  mov    D247(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xf0(%rsp)
  movsd  D482(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0xf8(%rsp)
  mov    D526(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x100(%rsp)
  mov    D87(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x108(%rsp)
  mov    D571(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x110(%rsp)
  movsd  D270(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x118(%rsp)
  mov    D665(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x120(%rsp)
  mov    D700(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r15
  mov    D708(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x128(%rsp)
  movsd  D289(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r14
  mov    D195(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x130(%rsp)
  mov    D79(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r13
  mov    D748(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x138(%rsp)
  movsd  D106(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%r12
  mov    D87(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x140(%rsp)
  mov    D502(%rip),%rax
  movq   %rax,%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbp
  mov    D700(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x148(%rsp)
  movsd  D486(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  mov    D79(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x150(%rsp)
  mov    D502(%rip),%rax
  movq   %rax,%xmm1
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  %xmm0,0x158(%rsp)
  movsd  0x8(%rsp),%xmm5
  xorpd  D190(%rip),%xmm5
  movapd %xmm5,%xmm0
  movsd  (%rsp),%xmm3
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  D536(%rip),%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm2
  movsd  0x18(%rsp),%xmm1
  mulsd  D445(%rip),%xmm1
  mulsd  0x20(%rsp),%xmm1
  movsd  0x28(%rsp),%xmm0
  mulsd  D699(%rip),%xmm0
  mulsd  0x30(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x38(%rsp),%xmm0
  mulsd  D376(%rip),%xmm0
  mulsd  0x40(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x48(%rsp),%xmm0
  mulsd  D258(%rip),%xmm0
  mulsd  0x50(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x58(%rsp),%xmm0
  mulsd  D639(%rip),%xmm0
  mulsd  0x60(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x68(%rsp),%xmm0
  mulsd  D532(%rip),%xmm0
  mulsd  0x70(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x78(%rsp),%xmm0
  mulsd  D381(%rip),%xmm0
  mulsd  0x80(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x88(%rsp),%xmm0
  mulsd  D463(%rip),%xmm0
  mulsd  0x90(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x98(%rsp),%xmm0
  mulsd  D613(%rip),%xmm0
  mulsd  0xa0(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0xa8(%rsp),%xmm0
  mulsd  D701(%rip),%xmm0
  mulsd  0xb0(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0xb8(%rsp),%xmm0
  mulsd  D213(%rip),%xmm0
  mulsd  0xc0(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0xc8(%rsp),%xmm0
  mulsd  D514(%rip),%xmm0
  mulsd  0xd0(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0xd8(%rsp),%xmm0
  mulsd  D15(%rip),%xmm0
  mulsd  0xe0(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0xe8(%rsp),%xmm0
  mulsd  D688(%rip),%xmm0
  mulsd  0xf0(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0xf8(%rsp),%xmm0
  mulsd  D467(%rip),%xmm0
  mulsd  0x100(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x108(%rsp),%xmm0
  mulsd  D103(%rip),%xmm0
  mulsd  0x110(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movsd  0x118(%rsp),%xmm0
  mulsd  D203(%rip),%xmm0
  mulsd  0x120(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movq   %r15,%xmm0
  mulsd  D513(%rip),%xmm0
  mulsd  0x128(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movq   %r14,%xmm0
  mulsd  D124(%rip),%xmm0
  mulsd  0x130(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movq   %r13,%xmm0
  mulsd  D704(%rip),%xmm0
  mulsd  0x138(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movq   %r12,%xmm0
  mulsd  D49(%rip),%xmm0
  mulsd  0x140(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movq   %rbp,%xmm0
  mulsd  D311(%rip),%xmm0
  mulsd  0x148(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  movq   %rbx,%xmm0
  mulsd  D598(%rip),%xmm0
  mulsd  0x150(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm0
  mulsd  D146(%rip),%xmm0
  mulsd  %xmm4,%xmm0
  mulsd  0x158(%rsp),%xmm0
  subsd  %xmm0,%xmm1
  mulsd  D547(%rip),%xmm4
  movapd %xmm4,%xmm0
  movsd  (%rsp),%xmm3
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm1,%xmm0
  subsd  D517(%rip),%xmm0
  movsd  0x10(%rsp),%xmm1
  mulsd  D788(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  D280(%rip),%xmm0
  divsd  D110(%rip),%xmm0
  add    $0x168,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D751
data_type: byte[8]
name: unpack_data
arguments: data_tag: D754
data_type: f64
name: unpack_data
arguments: data_tag: D306
data_type: f64
name: unpack_data
arguments: data_tag: D247
data_type: f64
name: unpack_data
arguments: data_tag: D222
data_type: f64
name: unpack_data
arguments: data_tag: D307
data_type: f64
name: unpack_data
arguments: data_tag: D353
data_type: f64
name: unpack_data
arguments: data_tag: D526
data_type: f64
name: unpack_data
arguments: data_tag: D458
data_type: f64
name: unpack_data
arguments: data_tag: D226
data_type: f64
name: unpack_data
arguments: data_tag: D159
data_type: f64
name: unpack_data
arguments: data_tag: D571
data_type: f64
name: unpack_data
arguments: data_tag: D202
data_type: f64
name: unpack_data
arguments: data_tag: D204
data_type: f64
name: unpack_data
arguments: data_tag: D430
data_type: f64
name: unpack_data
arguments: data_tag: D665
data_type: f64
name: unpack_data
arguments: data_tag: D512
data_type: f64
name: unpack_data
arguments: data_tag: D451
data_type: f64
name: unpack_data
arguments: data_tag: D66
data_type: f64
name: unpack_data
arguments: data_tag: D708
data_type: f64
name: unpack_data
arguments: data_tag: D590
data_type: f64
name: unpack_data
arguments: data_tag: D364
data_type: f64
name: unpack_data
arguments: data_tag: D747
data_type: f64
name: unpack_data
arguments: data_tag: D195
data_type: f64
name: unpack_data
arguments: data_tag: D530
data_type: f64
name: unpack_data
arguments: data_tag: D787
data_type: f64
name: unpack_data
arguments: data_tag: D776
data_type: f64
name: unpack_data
arguments: data_tag: D748
data_type: f64
name: unpack_data
arguments: data_tag: D482
data_type: f64
name: unpack_data
arguments: data_tag: D87
data_type: f64
name: unpack_data
arguments: data_tag: D270
data_type: f64
name: unpack_data
arguments: data_tag: D700
data_type: f64
name: unpack_data
arguments: data_tag: D289
data_type: f64
name: unpack_data
arguments: data_tag: D79
data_type: f64
name: unpack_data
arguments: data_tag: D106
data_type: f64
name: unpack_data
arguments: data_tag: D502
data_type: f64
name: unpack_data
arguments: data_tag: D486
data_type: f64
name: unpack_data
arguments: data_tag: D190
data_type: byte[16]
name: unpack_data
arguments: data_tag: D536
data_type: byte[8]
name: unpack_data
arguments: data_tag: D445
data_type: f64
name: unpack_data
arguments: data_tag: D699
data_type: f64
name: unpack_data
arguments: data_tag: D376
data_type: f64
name: unpack_data
arguments: data_tag: D258
data_type: f64
name: unpack_data
arguments: data_tag: D639
data_type: f64
name: unpack_data
arguments: data_tag: D532
data_type: f64
name: unpack_data
arguments: data_tag: D381
data_type: f64
name: unpack_data
arguments: data_tag: D463
data_type: f64
name: unpack_data
arguments: data_tag: D613
data_type: f64
name: unpack_data
arguments: data_tag: D701
data_type: f64
name: unpack_data
arguments: data_tag: D213
data_type: f64
name: unpack_data
arguments: data_tag: D514
data_type: f64
name: unpack_data
arguments: data_tag: D15
data_type: f64
name: unpack_data
arguments: data_tag: D688
data_type: f64
name: unpack_data
arguments: data_tag: D467
data_type: f64
name: unpack_data
arguments: data_tag: D103
data_type: f64
name: unpack_data
arguments: data_tag: D203
data_type: f64
name: unpack_data
arguments: data_tag: D513
data_type: f64
name: unpack_data
arguments: data_tag: D124
data_type: f64
name: unpack_data
arguments: data_tag: D704
data_type: f64
name: unpack_data
arguments: data_tag: D49
data_type: f64
name: unpack_data
arguments: data_tag: D311
data_type: f64
name: unpack_data
arguments: data_tag: D598
data_type: f64
name: unpack_data
arguments: data_tag: D146
data_type: f64
name: unpack_data
arguments: data_tag: D547
data_type: f64
name: unpack_data
arguments: data_tag: D517
data_type: f64
name: unpack_data
arguments: data_tag: D788
data_type: byte[8]
name: unpack_data
arguments: data_tag: D280
data_type: byte[8]
name: unpack_data
arguments: data_tag: D110
data_type: f64

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

tool: D754: 25

tool: D306: 50

tool: D247: 24

tool: D222: 48

tool: D307: 23

tool: D353: 46

tool: D526: 22

tool: D458: 44

tool: D226: 21

tool: D159: 42

tool: D571: 20

tool: D202: 40

tool: D204: 19

tool: D430: 38

tool: D665: 18

tool: D512: 36

tool: D451: 17

tool: D66: 34

tool: D708: 16

tool: D590: 32

tool: D364: 15

tool: D747: 30

tool: D195: 14

tool: D530: 28

tool: D787: 13

tool: D776: 26

tool: D748: 12

tool: D482: 11

tool: D87: 10

tool: D270: 9

tool: D700: 8

tool: D289: 7

tool: D79: 6

tool: D106: 5

tool: D502: 4

tool: D486: 3

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

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

tool: D445: 33554432

tool: D699: 21390950400

tool: D376: 6288939417600

tool: D258: 1133057251737600.0

tool: D639: 1.40215834902528e+17

tool: D532: 1.2661489891698278e+19

tool: D381: 8.65201809266049e+20

tool: D463: 4.579389576186731e+22

tool: D613: 1.9061709110877267e+24

tool: D701: 6.30095384498443e+25

tool: D213: 1.6634518150758895e+27

tool: D514: 3.515932245501312e+28

tool: D15: 5.947785381973053e+29

tool: D688: 8.029510265663621e+30

tool: D467: 8.603046713211023e+31

tool: D103: 7.255236061474629e+32

tool: D203: 4.7612486653427253e+33

tool: D513: 2.3946280052164883e+34

tool: D124: 9.046372464151179e+34

tool: D704: 2.4996555493049307e+35

tool: D49: 4.8743283211446154e+35

tool: D311: 6.383048991975091e+35

tool: D598: 5.222494629797802e+35

tool: D146: 2.3841823309946486e+35

tool: D547: 4.9670465229055185e+34

tool: D517: 2.980227913743311e+33

tool: {"D788": [0x4a,0xc4,0xb9,0x5b,0x78,0xa0,0x34,0x41]}

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

tool: D110: 1.1904744628119261e+39

assistant: ```c
double HO_51(const double a, const double x) {
  double retval = sqrt(0.1827364208709e13) * pow(a, 0.3e1 / 0.4e1) * x * (0.33554432e8 * pow(a, 0.25e2) * pow(x, 0.50e2) - 0.21390950400e11 * pow(a, 0.24e2) * pow(x, 0.48e2) + 0.6288939417600e13 * pow(a, 0.23e2) * pow(x, 0.46e2) - 0.1133057251737600e16 * pow(a, 0.22e2) * pow(x, 0.44e2) + 0.140215834902528000e18 * pow(a, 0.21e2) * pow(x, 0.42e2) - 0.12661489891698278400e20 * pow(a, 0.20e2) * pow(x, 0.40e2) + 0.865201809266049024000e21 * pow(a, 0.19e2) * pow(x, 0.38e2) - 0.45793895761867309056000e23 * pow(a, 0.18e2) * pow(x, 0.36e2) + 0.1906170911087726739456000e25 * pow(a, 0.17e2) * pow(x, 0.34e2) - 0.63009538449844300554240000e26 * pow(a, 0.16e2) * pow(x, 0.32e2) + 0.1663451815075889534631936000e28 * pow(a, 0.15e2) * pow(x, 0.30e2) - 0.35159322455013119709265920000e29 * pow(a, 0.14e2) * pow(x, 0.28e2) + 0.594778538197305275081748480000e30 * pow(a, 0.13e2) * pow(x, 0.26e2) - 0.8029510265663621213603604480000e31 * pow(a, 0.12e2) * pow(x, 0.24e2) + 0.86030467132110227288610048000000e32 * pow(a, 0.11e2) * pow(x, 0.22e2) - 0.725523606147462916800611404800000e33 * pow(a, 0.10e2) * pow(x, 0.20e2) + 0.4761248665342725391504012344000000e34 * pow(a, 0.9e1) * pow(x, 0.18e2) - 0.23946280052164883586681944436000000e35 * pow(a, 0.8e1) * pow(x, 0.16e2) + 0.90463724641511782438576234536000000e35 * pow(a, 0.7e1) * pow(x, 0.14e2) - 0.249965554930493083053960648060000000e36 * pow(a, 0.6e1) * pow(x, 0.12e2) + 0.487432832114461511955223263717000000e36 * pow(a, 0.5e1) * pow(x, 0.10e2) - 0.638304899197509122798506654867500000e36 * pow(a, 0.4e1) * pow(x, 0.8e1) + 0.522249462979780191380596353982500000e36 * pow(a, 0.3e1) * pow(x, 0.6e1) - 0.238418233099464869978098335513750000e36 * a * a * pow(x, 0.4e1) + 0.49670465229055181245437153232031250e35 * a * x * x - 0.2980227913743310874726229193921875e34) * exp(-a * x * x / 0.2e1) * pow(0.3141592654e1, -0.1e1 / 0.4e1) / 0.1190474462811926073819783048855552000000e40;
  return retval;
}
```