user: 请从给定的汇编指令推导出C源代码：

```asm
<rate_Hep>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  movsd  %xmm0,-0x8(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x8(%rbp),%xmm0
  jp     L12
  pxor   %xmm0,%xmm0
  ucomisd -0x8(%rbp),%xmm0
  jne    L12
  pxor   %xmm0,%xmm0
  jmp    L0
L12:
  movsd  D122(%rip),%xmm0
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D35(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  D23(%rip),%xmm1
  movapd %xmm0,%xmm3
  mulsd  %xmm1,%xmm3
  movsd  %xmm3,-0x18(%rbp)
  movsd  D78(%rip),%xmm0
  movapd %xmm0,%xmm4
  divsd  -0x8(%rbp),%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  D54(%rip),%xmm1
  movapd %xmm0,%xmm5
  divsd  %xmm1,%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  D47(%rip),%xmm1
  addsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movapd %xmm0,%xmm6
  addsd  -0x10(%rbp),%xmm6
  movsd  %xmm6,-0x10(%rbp)
  movsd  D67(%rip),%xmm0
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D117(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  D57(%rip),%xmm0
  movapd %xmm0,%xmm2
  divsd  -0x8(%rbp),%xmm2
  movq   %xmm2,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  D54(%rip),%xmm1
  movapd %xmm0,%xmm7
  divsd  %xmm1,%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  D47(%rip),%xmm1
  addsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  D155(%rip),%xmm0
  mov    -0x8(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D40(%rip),%xmm1
  movapd %xmm0,%xmm5
  mulsd  %xmm1,%xmm5
  movsd  %xmm5,-0x18(%rbp)
  movsd  D127(%rip),%xmm0
  movapd %xmm0,%xmm2
  divsd  -0x8(%rbp),%xmm2
  movq   %xmm2,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm3
  mulsd  -0x18(%rbp),%xmm3
  movsd  %xmm3,-0x18(%rbp)
  movsd  D88(%rip),%xmm0
  movapd %xmm0,%xmm6
  divsd  -0x8(%rbp),%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D98(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D47(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
L0:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D122
data_type: byte[8]
name: disassemble_data
arguments: data_label: D35
data_type: byte[8]
name: disassemble_data
arguments: data_label: D23
data_type: byte[8]
name: disassemble_data
arguments: data_label: D78
data_type: f32[2]
name: disassemble_data
arguments: data_label: D54
data_type: f64
name: disassemble_data
arguments: data_label: D47
data_type: f64
name: disassemble_data
arguments: data_label: D67
data_type: byte[8]
name: disassemble_data
arguments: data_label: D117
data_type: byte[8]
name: disassemble_data
arguments: data_label: D57
data_type: f32[2]
name: disassemble_data
arguments: data_label: D155
data_type: f32[2]
name: disassemble_data
arguments: data_label: D40
data_type: byte[8]
name: disassemble_data
arguments: data_label: D127
data_type: f32[2]
name: disassemble_data
arguments: data_label: D88
data_type: f32[2]
name: disassemble_data
arguments: data_label: D98
data_type: byte[8]

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

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

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

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

tool: D54: 100000

tool: D47: 1

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

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

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

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

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

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

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

tool: {"D98": [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);
}
```