user: What is the c source code of the assembly code below:

```asm
<rate_Hep>:
  endbr64
  pxor   %xmm5,%xmm5
  movapd %xmm0,%xmm2
  ucomisd %xmm5,%xmm0
  jp     L0
  pxor   %xmm0,%xmm0
  jne    L0
  ret
  nopl   0x0(%rax)
L0:
  push   %rbx
  movapd %xmm2,%xmm0
  sub    $0x30,%rsp
  movsd  D150(%rip),%xmm1
  movsd  %xmm2,0x8(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm2
  pxor   %xmm4,%xmm4
  mulsd  D52(%rip),%xmm0
  ucomisd %xmm2,%xmm4
  movsd  %xmm0,(%rsp)
  ja     L35
  movapd %xmm2,%xmm1
  sqrtsd %xmm1,%xmm1
L23:
  movsd  D114(%rip),%xmm0
  movsd  %xmm1,0x10(%rsp)
  movsd  %xmm2,0x8(%rsp)
  divsd  %xmm2,%xmm0
  call   <exp@plt>
  movsd  0x10(%rsp),%xmm1
  movsd  0x8(%rsp),%xmm2
  pxor   %xmm4,%xmm4
  mulsd  D41(%rip),%xmm1
  movapd %xmm2,%xmm3
  divsd  D131(%rip),%xmm3
  ucomisd %xmm3,%xmm4
  mulsd  %xmm0,%xmm1
  ja     L37
  movapd %xmm3,%xmm0
  movsd  D132(%rip),%xmm6
  movsd  %xmm2,0x18(%rsp)
  sqrtsd %xmm0,%xmm0
  movsd  %xmm6,0x10(%rsp)
  movsd  %xmm0,0x8(%rsp)
  addsd  %xmm6,%xmm0
  divsd  %xmm0,%xmm1
  movapd %xmm2,%xmm0
  addsd  (%rsp),%xmm1
  movsd  %xmm1,(%rsp)
  movsd  D87(%rip),%xmm1
  call   <pow@plt>
  movsd  0x18(%rsp),%xmm2
  movsd  %xmm0,0x20(%rsp)
  movsd  D149(%rip),%xmm0
  divsd  %xmm2,%xmm0
  call   <exp@plt>
  movsd  0x20(%rsp),%xmm1
  mulsd  D56(%rip),%xmm1
  movapd %xmm0,%xmm3
  movsd  0x18(%rsp),%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm3,%xmm0
  movq   %xmm0,%rbx
L33:
  movsd  D123(%rip),%xmm1
  movapd %xmm2,%xmm0
  movsd  %xmm2,0x18(%rsp)
  call   <pow@plt>
  movsd  0x18(%rsp),%xmm2
  movsd  %xmm0,0x28(%rsp)
  movsd  D83(%rip),%xmm0
  movsd  %xmm2,0x20(%rsp)
  divsd  %xmm2,%xmm0
  call   <exp@plt>
  movsd  0x20(%rsp),%xmm2
  movsd  %xmm0,0x18(%rsp)
  movsd  D47(%rip),%xmm0
  divsd  %xmm2,%xmm0
  call   <exp@plt>
  mulsd  D96(%rip),%xmm0
  movsd  0x28(%rsp),%xmm1
  mulsd  D112(%rip),%xmm1
  movsd  0x10(%rsp),%xmm7
  mulsd  0x18(%rsp),%xmm1
  movsd  0x8(%rsp),%xmm2
  addsd  %xmm7,%xmm2
  addsd  %xmm7,%xmm0
  mulsd  %xmm1,%xmm0
  movq   %rbx,%xmm1
  divsd  %xmm2,%xmm1
  addsd  (%rsp),%xmm1
  add    $0x30,%rsp
  pop    %rbx
  addsd  %xmm1,%xmm0
  ret
L35:
  movapd %xmm2,%xmm0
  movsd  %xmm2,0x8(%rsp)
  call   <sqrt@plt>
  movsd  0x8(%rsp),%xmm2
  movapd %xmm0,%xmm1
  jmp    L23
L37:
  movapd %xmm3,%xmm0
  movsd  %xmm3,0x20(%rsp)
  movsd  %xmm2,0x18(%rsp)
  movsd  %xmm1,0x8(%rsp)
  call   <sqrt@plt>
  movsd  D132(%rip),%xmm5
  movsd  0x8(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm2
  addsd  %xmm5,%xmm0
  movsd  %xmm5,0x10(%rsp)
  divsd  %xmm0,%xmm1
  movapd %xmm2,%xmm0
  addsd  (%rsp),%xmm1
  movsd  %xmm1,(%rsp)
  movsd  D87(%rip),%xmm1
  call   <pow@plt>
  movsd  0x18(%rsp),%xmm2
  movsd  %xmm0,0x8(%rsp)
  movsd  D149(%rip),%xmm0
  divsd  %xmm2,%xmm0
  call   <exp@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  D56(%rip),%xmm1
  movapd %xmm0,%xmm4
  movsd  0x20(%rsp),%xmm3
  movapd %xmm1,%xmm0
  mulsd  %xmm4,%xmm0
  movq   %xmm0,%rbx
  movapd %xmm3,%xmm0
  call   <sqrt@plt>
  movsd  0x18(%rsp),%xmm2
  movsd  %xmm0,0x8(%rsp)
  jmp    L33
```

tool_calls: name: parse_data
arguments: data_label: D150
type_infered: byte[8]
name: parse_data
arguments: data_label: D52
type_infered: byte[8]
name: parse_data
arguments: data_label: D114
type_infered: f32[2]
name: parse_data
arguments: data_label: D41
type_infered: byte[8]
name: parse_data
arguments: data_label: D131
type_infered: f64
name: parse_data
arguments: data_label: D132
type_infered: f64
name: parse_data
arguments: data_label: D87
type_infered: byte[8]
name: parse_data
arguments: data_label: D149
type_infered: f32[2]
name: parse_data
arguments: data_label: D56
type_infered: byte[8]
name: parse_data
arguments: data_label: D123
type_infered: f32[2]
name: parse_data
arguments: data_label: D83
type_infered: f32[2]
name: parse_data
arguments: data_label: D47
type_infered: f32[2]
name: parse_data
arguments: data_label: D96
type_infered: byte[8]
name: parse_data
arguments: data_label: D112
type_infered: byte[8]

tool: {"D150": [0x10,0x7a,0x36,0xab,0x3e,0x57,0xd7,0x3f]}

tool: {"D52": [0x2f,0xaa,0x3a,0x65,0x25,0x30,0x93,0x3a]}

tool: {"D114": [0.0,-10.204519271850586]}

tool: {"D41": [0xeb,0x75,0x8e,0xa3,0x58,0xb3,0x82,0x3b]}

tool: D131: 100000

tool: D132: 1

tool: {"D87": [0x9c,0xc4,0x20,0xb0,0x72,0x68,0xd9,0xbf]}

tool: {"D149": [0.0,-9.806785583496094]}

tool: {"D56": [0xf4,0xd1,0x40,0xd3,0x98,0xef,0x8f,0x3c]}

tool: {"D123": [0.0,-1.9375]}

tool: {"D83": [0.0,-9.79290771484375]}

tool: {"D47": [0.0,-7.7171630859375]}

tool: {"D96": [0x33,0x33,0x33,0x33,0x33,0x33,0xd3,0x3f]}

tool: {"D112": [0x65,0x1b,0xf0,0x21,0x92,0x73,0x41,0x3d]}

assistant: ```c
double rate_Hep(t)
double t;
{
  if (t == 0.0) {
    return 0.0;
  }
  return 1.55e-26 * pow(t, .3647) + 4.95e-22 * sqrt(t) * exp(-631515.0 / t) / (1.0 + sqrt(t / 1e5)) + 5.54e-17 * pow(t, -.397) * exp(-473638.0 / t) / (1.0 + sqrt(t / 1e5)) + 1.24e-13 * pow(t, -1.5) * exp(-4.7e5 / t) * (exp(-9.4e4 / t) * .3 + 1.0);
}
```