user: Converte this assembly snippet into its equivalent C code:

```asm
<HO_41>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x118,%rsp
  movsd  %xmm1,(%rsp)
  movsd  D486(%rip),%xmm1
  movsd  %xmm0,0x8(%rsp)
  call   <pow@plt>
  movsd  D345(%rip),%xmm15
  movq   %xmm0,%rbx
  movsd  0x8(%rsp),%xmm0
  movapd %xmm15,%xmm1
  call   <pow@plt>
  movsd  D384(%rip),%xmm1
  movsd  %xmm0,0x108(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D63(%rip),%xmm1
  movsd  %xmm0,0x10(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  D365(%rip),%xmm1
  movq   %xmm0,%r14
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D244(%rip),%xmm14
  movsd  %xmm0,0x18(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm14,%xmm1
  call   <pow@plt>
  movsd  D156(%rip),%xmm1
  movq   %xmm0,%r15
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D243(%rip),%xmm1
  movsd  %xmm0,0x20(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  D265(%rip),%xmm1
  movsd  %xmm0,0x100(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D287(%rip),%xmm13
  movsd  %xmm0,0x28(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm13,%xmm1
  call   <pow@plt>
  movsd  D548(%rip),%xmm1
  movq   %xmm0,%rbp
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D106(%rip),%xmm1
  movsd  %xmm0,0x30(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  D135(%rip),%xmm1
  movsd  %xmm0,0xf8(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D529(%rip),%xmm12
  movsd  %xmm0,0x38(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm12,%xmm1
  call   <pow@plt>
  movsd  D69(%rip),%xmm1
  movsd  %xmm0,0xf0(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D604(%rip),%xmm1
  movsd  %xmm0,0x40(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  D125(%rip),%xmm1
  movsd  %xmm0,0xe8(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D81(%rip),%xmm11
  movsd  %xmm0,0x48(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm11,%xmm1
  call   <pow@plt>
  movsd  D342(%rip),%xmm1
  movsd  %xmm0,0xe0(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D187(%rip),%xmm1
  movsd  %xmm0,0x50(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movsd  D369(%rip),%xmm1
  movsd  %xmm0,0xd8(%rsp)
  movsd  (%rsp),%xmm0
  call   <pow@plt>
  movsd  D60(%rip),%xmm10
  movsd  %xmm0,0x58(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm10,%xmm1
  call   <pow@plt>
  mov    D345(%rip),%rax
  movsd  %xmm0,0xd0(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D518(%rip),%xmm1
  movsd  %xmm0,0x60(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  mov    D244(%rip),%rax
  movsd  %xmm0,0xc8(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D96(%rip),%xmm14
  movsd  %xmm0,0x68(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm14,%xmm1
  call   <pow@plt>
  mov    D287(%rip),%rax
  movq   %xmm0,%r12
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D399(%rip),%xmm1
  movsd  %xmm0,0x70(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  mov    D529(%rip),%rax
  movsd  %xmm0,0xc0(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D476(%rip),%xmm12
  movsd  %xmm0,0x78(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm12,%xmm1
  call   <pow@plt>
  mov    D81(%rip),%rax
  movq   %xmm0,%r13
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D30(%rip),%xmm1
  movsd  %xmm0,0x80(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  mov    D60(%rip),%rax
  movsd  %xmm0,0xb8(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D132(%rip),%xmm10
  movsd  %xmm0,0x88(%rsp)
  movsd  0x8(%rsp),%xmm0
  movapd %xmm10,%xmm1
  call   <pow@plt>
  mov    D96(%rip),%rax
  movsd  %xmm0,0x90(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  D473(%rip),%xmm1
  movsd  %xmm0,0x98(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  mov    D476(%rip),%rax
  movsd  %xmm0,0xb0(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  mov    D132(%rip),%rax
  movsd  %xmm0,0xa0(%rsp)
  movsd  (%rsp),%xmm0
  movq   %rax,%xmm1
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm4
  movsd  (%rsp),%xmm5
  xorpd  D220(%rip),%xmm4
  movsd  %xmm0,0xa8(%rsp)
  movapd %xmm4,%xmm0
  mulsd  %xmm5,%xmm0
  mulsd  %xmm5,%xmm0
  mulsd  D589(%rip),%xmm0
  call   <exp@plt>
  movq   %r14,%xmm1
  movsd  0x108(%rsp),%xmm2
  movsd  0x100(%rsp),%xmm9
  mulsd  D194(%rip),%xmm2
  movsd  0xf8(%rsp),%xmm8
  mulsd  D159(%rip),%xmm1
  movsd  0xf0(%rsp),%xmm7
  mulsd  0x18(%rsp),%xmm1
  movsd  0xe8(%rsp),%xmm6
  mulsd  0x10(%rsp),%xmm2
  movsd  0xe0(%rsp),%xmm5
  mulsd  D505(%rip),%xmm9
  movsd  0xd8(%rsp),%xmm4
  mulsd  0x28(%rsp),%xmm9
  movsd  0xd0(%rsp),%xmm3
  mulsd  D556(%rip),%xmm8
  movsd  0xc8(%rsp),%xmm15
  mulsd  0x38(%rsp),%xmm8
  subsd  %xmm1,%xmm2
  movq   %r15,%xmm1
  mulsd  D249(%rip),%xmm1
  mulsd  0x20(%rsp),%xmm1
  mulsd  D316(%rip),%xmm7
  mulsd  0x40(%rsp),%xmm7
  mulsd  D149(%rip),%xmm6
  mulsd  0x48(%rsp),%xmm6
  addsd  %xmm1,%xmm2
  movq   %rbp,%xmm1
  mulsd  D119(%rip),%xmm1
  mulsd  0x30(%rsp),%xmm1
  subsd  %xmm9,%xmm2
  mulsd  D188(%rip),%xmm5
  mulsd  0x50(%rsp),%xmm5
  mulsd  D536(%rip),%xmm4
  mulsd  0x58(%rsp),%xmm4
  addsd  %xmm1,%xmm2
  mulsd  D225(%rip),%xmm3
  mulsd  0x60(%rsp),%xmm3
  mulsd  D516(%rip),%xmm15
  subsd  %xmm8,%xmm2
  mulsd  0x68(%rsp),%xmm15
  movsd  0xc0(%rsp),%xmm13
  mulsd  D112(%rip),%xmm13
  movsd  0xb8(%rsp),%xmm11
  mulsd  0x78(%rsp),%xmm13
  movsd  0xb0(%rsp),%xmm14
  mulsd  D72(%rip),%xmm11
  addsd  %xmm7,%xmm2
  mulsd  0x88(%rsp),%xmm11
  mulsd  D253(%rip),%xmm14
  mulsd  0xa0(%rsp),%xmm14
  movapd %xmm2,%xmm1
  movq   %r12,%xmm2
  subsd  %xmm6,%xmm1
  mulsd  D349(%rip),%xmm2
  mulsd  0x70(%rsp),%xmm2
  addsd  %xmm5,%xmm1
  movsd  (%rsp),%xmm5
  subsd  %xmm4,%xmm1
  addsd  %xmm3,%xmm1
  movsd  0x8(%rsp),%xmm3
  subsd  %xmm15,%xmm1
  addsd  %xmm2,%xmm1
  movq   %r13,%xmm2
  mulsd  D539(%rip),%xmm2
  mulsd  0x80(%rsp),%xmm2
  subsd  %xmm13,%xmm1
  addsd  %xmm2,%xmm1
  movsd  0x90(%rsp),%xmm2
  mulsd  D387(%rip),%xmm2
  mulsd  0x98(%rsp),%xmm2
  subsd  %xmm11,%xmm1
  addsd  %xmm2,%xmm1
  movsd  D307(%rip),%xmm2
  mulsd  %xmm3,%xmm2
  subsd  %xmm14,%xmm1
  mulsd  %xmm3,%xmm2
  mulsd  0xa8(%rsp),%xmm2
  mulsd  D440(%rip),%xmm3
  addsd  %xmm2,%xmm1
  movapd %xmm3,%xmm2
  mulsd  %xmm5,%xmm2
  mulsd  %xmm5,%xmm2
  subsd  %xmm2,%xmm1
  movq   %rbx,%xmm2
  addsd  D41(%rip),%xmm1
  mulsd  D429(%rip),%xmm2
  mulsd  %xmm5,%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  D160(%rip),%xmm0
  divsd  D393(%rip),%xmm0
  add    $0x118,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: read_data
arguments: data_label: D486
type_guessed: byte[8]
name: read_data
arguments: data_label: D345
type_guessed: f64
name: read_data
arguments: data_label: D384
type_guessed: f64
name: read_data
arguments: data_label: D63
type_guessed: f64
name: read_data
arguments: data_label: D365
type_guessed: f64
name: read_data
arguments: data_label: D244
type_guessed: f64
name: read_data
arguments: data_label: D156
type_guessed: f64
name: read_data
arguments: data_label: D243
type_guessed: f64
name: read_data
arguments: data_label: D265
type_guessed: f64
name: read_data
arguments: data_label: D287
type_guessed: f64
name: read_data
arguments: data_label: D548
type_guessed: f64
name: read_data
arguments: data_label: D106
type_guessed: f64
name: read_data
arguments: data_label: D135
type_guessed: f64
name: read_data
arguments: data_label: D529
type_guessed: f64
name: read_data
arguments: data_label: D69
type_guessed: f64
name: read_data
arguments: data_label: D604
type_guessed: f64
name: read_data
arguments: data_label: D125
type_guessed: f64
name: read_data
arguments: data_label: D81
type_guessed: f64
name: read_data
arguments: data_label: D342
type_guessed: f64
name: read_data
arguments: data_label: D187
type_guessed: f64
name: read_data
arguments: data_label: D369
type_guessed: f64
name: read_data
arguments: data_label: D60
type_guessed: f64
name: read_data
arguments: data_label: D518
type_guessed: f64
name: read_data
arguments: data_label: D96
type_guessed: f64
name: read_data
arguments: data_label: D399
type_guessed: f64
name: read_data
arguments: data_label: D476
type_guessed: f64
name: read_data
arguments: data_label: D30
type_guessed: f64
name: read_data
arguments: data_label: D132
type_guessed: f64
name: read_data
arguments: data_label: D473
type_guessed: f64
name: read_data
arguments: data_label: D220
type_guessed: byte[16]
name: read_data
arguments: data_label: D589
type_guessed: byte[8]
name: read_data
arguments: data_label: D194
type_guessed: f64
name: read_data
arguments: data_label: D159
type_guessed: f64
name: read_data
arguments: data_label: D505
type_guessed: f64
name: read_data
arguments: data_label: D556
type_guessed: f64
name: read_data
arguments: data_label: D249
type_guessed: f64
name: read_data
arguments: data_label: D316
type_guessed: f64
name: read_data
arguments: data_label: D149
type_guessed: f64
name: read_data
arguments: data_label: D119
type_guessed: f64
name: read_data
arguments: data_label: D188
type_guessed: f64
name: read_data
arguments: data_label: D536
type_guessed: f64
name: read_data
arguments: data_label: D225
type_guessed: f64
name: read_data
arguments: data_label: D516
type_guessed: f64
name: read_data
arguments: data_label: D112
type_guessed: f64
name: read_data
arguments: data_label: D72
type_guessed: f64
name: read_data
arguments: data_label: D253
type_guessed: f64
name: read_data
arguments: data_label: D349
type_guessed: f64
name: read_data
arguments: data_label: D539
type_guessed: f64
name: read_data
arguments: data_label: D387
type_guessed: f64
name: read_data
arguments: data_label: D307
type_guessed: f64
name: read_data
arguments: data_label: D440
type_guessed: f64
name: read_data
arguments: data_label: D41
type_guessed: f64
name: read_data
arguments: data_label: D429
type_guessed: byte[8]
name: read_data
arguments: data_label: D160
type_guessed: byte[8]
name: read_data
arguments: data_label: D393
type_guessed: f64

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

tool: D345: 20

tool: D384: 40

tool: D63: 19

tool: D365: 38

tool: D244: 18

tool: D156: 36

tool: D243: 17

tool: D265: 34

tool: D287: 16

tool: D548: 32

tool: D106: 15

tool: D135: 30

tool: D529: 14

tool: D69: 28

tool: D604: 13

tool: D125: 26

tool: D81: 12

tool: D342: 24

tool: D187: 11

tool: D369: 22

tool: D60: 10

tool: D518: 9

tool: D96: 8

tool: D399: 7

tool: D476: 6

tool: D30: 5

tool: D132: 4

tool: D473: 3

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

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

tool: D194: 1048576

tool: D159: 429916160

tool: D505: 8840258519040

tool: D556: 3.471569520427008e+16

tool: D249: 79641968640

tool: D316: 1.3452331891654656e+18

tool: D149: 3.90117624857985e+19

tool: D119: 657494227353600

tool: D188: 8.558205395322047e+20

tool: D536: 1.4263675658870077e+22

tool: D225: 1.8043549708470647e+23

tool: D516: 1.7223388358085619e+24

tool: D112: 6.419024353455756e+25

tool: D72: 6.258548744619362e+26

tool: D253: 1.1389638340391853e+27

tool: D349: 1.2271664205136003e+25

tool: D539: 2.4071341325459083e+26

tool: D387: 1.0756880654814528e+27

tool: D307: 6.643955698561914e+26

tool: D440: 1.7484093943583986e+26

tool: D41: 1.3113070457687988e+25

tool: {"D429": [0x4f,0xdc,0x8b,0x13,0xad,0x19,0x21,0x41]}

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

tool: D393: 2.29167516137344e+30

assistant: ```c
double HO_41(const double a, const double x) {
  double retval = sqrt(0.313983760090e12) * pow(a, 0.3e1 / 0.4e1) * x * (0.1048576e7 * pow(a, 0.20e2) * pow(x, 0.40e2) - 0.429916160e9 * pow(a, 0.19e2) * pow(x, 0.38e2) + 0.79641968640e11 * pow(a, 0.18e2) * pow(x, 0.36e2) - 0.8840258519040e13 * pow(a, 0.17e2) * pow(x, 0.34e2) + 0.657494227353600e15 * pow(a, 0.16e2) * pow(x, 0.32e2) - 0.34715695204270080e17 * pow(a, 0.15e2) * pow(x, 0.30e2) + 0.1345233189165465600e19 * pow(a, 0.14e2) * pow(x, 0.28e2) - 0.39011762485798502400e20 * pow(a, 0.13e2) * pow(x, 0.26e2) + 0.855820539532204646400e21 * pow(a, 0.12e2) * pow(x, 0.24e2) - 0.14263675658870077440000e23 * pow(a, 0.11e2) * pow(x, 0.22e2) + 0.180435497084706479616000e24 * pow(a, 0.10e2) * pow(x, 0.20e2) - 0.1722338835808561850880000e25 * pow(a, 0.9e1) * pow(x, 0.18e2) + 0.12271664205136003187520000e26 * pow(a, 0.8e1) * pow(x, 0.16e2) - 0.64190243534557555134720000e26 * pow(a, 0.7e1) * pow(x, 0.14e2) + 0.240713413254590831755200000e27 * pow(a, 0.6e1) * pow(x, 0.12e2) - 0.625854874461936162563520000e27 * pow(a, 0.5e1) * pow(x, 0.10e2) + 0.1075688065481452779406050000e28 * pow(a, 0.4e1) * pow(x, 0.8e1) - 0.1138963834039185295841700000e28 * pow(a, 0.3e1) * pow(x, 0.6e1) + 0.664395569856191422574325000e27 * a * a * pow(x, 0.4e1) - 0.174840939435839848045875000e27 * a * x * x + 0.13113070457687988603440625e26) * exp(-a * x * x / 0.2e1) * pow(0.3141592654e1, -0.1e1 / 0.4e1) / 0.2291675161373440056306892800000e31;
  return retval;
}
```