user: What would the C source look like for the assembly code provided here?

```asm
<rate_Hep>:
  endbr64
  push   %r15
  push   %r14
  push   %rbx
  sub    $0x20,%rsp
  movsd  %xmm0,0x8(%rsp)
  ucomisd D174(%rip),%xmm0
  jp     L56
  pxor   %xmm0,%xmm0
  jne    L56
L23:
  add    $0x20,%rsp
  pop    %rbx
  pop    %r14
  pop    %r15
  ret
L56:
  movsd  D135(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm7
  mulsd  D72(%rip),%xmm7
  movsd  %xmm7,0x10(%rsp)
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm6
  ucomisd %xmm6,%xmm0
  ja     L32
  sqrtsd %xmm6,%xmm6
  movq   %xmm6,%rbx
L4:
  movsd  D71(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm0
  mulsd  D89(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movq   %xmm0,%rbx
  movsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm4
  divsd  D120(%rip),%xmm4
  movsd  %xmm4,0x18(%rsp)
  pxor   %xmm0,%xmm0
  ucomisd %xmm4,%xmm0
  ja     L65
  sqrtsd %xmm4,%xmm4
  movsd  %xmm4,0x18(%rsp)
  movapd %xmm4,%xmm1
  addsd  D121(%rip),%xmm1
  movq   %rbx,%xmm0
  divsd  %xmm1,%xmm0
  addsd  0x10(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  movsd  D195(%rip),%xmm1
  movapd %xmm3,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  D123(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm1
  movq   %rbx,%xmm0
  mulsd  D179(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movq   %xmm0,%r14
L11:
  movsd  D150(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  D22(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  call   <exp@plt>
  movq   %xmm0,%r15
  movsd  D47(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  call   <exp@plt>
  movq   %rbx,%xmm1
  mulsd  D188(%rip),%xmm1
  movq   %r15,%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  D116(%rip),%xmm0
  movsd  D121(%rip),%xmm2
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  0x18(%rsp),%xmm2
  movq   %r14,%xmm1
  divsd  %xmm2,%xmm1
  addsd  0x10(%rsp),%xmm1
  addsd  %xmm1,%xmm0
  jmp    L23
L32:
  movsd  0x8(%rsp),%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rbx
  jmp    L4
L65:
  movsd  0x18(%rsp),%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm1
  addsd  D121(%rip),%xmm1
  movq   %rbx,%xmm6
  divsd  %xmm1,%xmm6
  addsd  0x10(%rsp),%xmm6
  movsd  %xmm6,0x10(%rsp)
  movsd  D195(%rip),%xmm1
  movsd  0x8(%rsp),%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  D123(%rip),%xmm0
  divsd  0x8(%rsp),%xmm0
  call   <exp@plt>
  movq   %rbx,%xmm6
  mulsd  D179(%rip),%xmm6
  mulsd  %xmm0,%xmm6
  movq   %xmm6,%r14
  movsd  0x18(%rsp),%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,0x18(%rsp)
  jmp    L11
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D174
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D135
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D72
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D71
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D89
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D120
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D121
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D195
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D123
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D179
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D150
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D22
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D47
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D188
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D116
type_infered: byte[8]

tool: D174: 0

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

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

tool: {"D71": [0x00,0x00,0x00,0x00,0xb6,0x45,0x23,0xc1]}

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

tool: D120: 100000

tool: D121: 1

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

tool: {"D123": [0x00,0x00,0x00,0x00,0x98,0xe8,0x1c,0xc1]}

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

tool: {"D150": [0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0xbf]}

tool: {"D22": [0x00,0x00,0x00,0x00,0xc0,0xaf,0x1c,0xc1]}

tool: {"D47": [0x00,0x00,0x00,0x00,0x00,0xf3,0xf6,0xc0]}

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

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

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);
}
```