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

```asm
<K0>:
  endbr64
  push   %rbx
  sub    $0x10,%rsp
  movsd  %xmm0,(%rsp)
  comisd D31(%rip),%xmm0
  jae    L20
  movapd %xmm0,%xmm2
  comisd D23(%rip),%xmm0
  jb     L54
  movsd  D23(%rip),%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm2,%xmm0
  xorpd  D209(%rip),%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm3
  movapd %xmm3,%xmm4
  mulsd  D111(%rip),%xmm4
  movapd %xmm4,%xmm0
  subsd  D26(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D85(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D192(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D28(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D40(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D185(%rip),%xmm0
  movapd %xmm0,%xmm4
  mulsd  %xmm1,%xmm4
  movq   %xmm4,%rbx
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm2
  ucomisd %xmm2,%xmm0
  ja     L28
  sqrtsd %xmm2,%xmm2
  movapd %xmm2,%xmm1
L51:
  movq   %rbx,%xmm0
  divsd  %xmm1,%xmm0
  jmp    L8
L28:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm1
  jmp    L51
L54:
  movsd  (%rsp),%xmm7
  movapd %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  movapd %xmm0,%xmm5
  mulsd  D186(%rip),%xmm5
  movsd  %xmm5,(%rsp)
  divsd  D76(%rip),%xmm0
  movsd  %xmm0,0x8(%rsp)
  mulsd  D144(%rip),%xmm7
  movapd %xmm7,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm6
  movapd %xmm6,%xmm0
  mulsd  D95(%rip),%xmm0
  addsd  D233(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  addsd  D183(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  addsd  D268(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  addsd  D221(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  addsd  D158(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  addsd  D81(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  (%rsp),%xmm5
  movapd %xmm5,%xmm0
  mulsd  D173(%rip),%xmm0
  addsd  D73(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D30(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D261(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D170(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D248(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D108(%rip),%xmm0
  subsd  %xmm1,%xmm0
  jmp    L8
L20:
  pxor   %xmm0,%xmm0
L8:
  add    $0x10,%rsp
  pop    %rbx
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D31
datatype: f64[2]
name: extract_symbolic_data
arguments: data_label: D23
datatype: f64[2]
name: extract_symbolic_data
arguments: data_label: D209
datatype: f32[4]
name: extract_symbolic_data
arguments: data_label: D111
datatype: f64
name: extract_symbolic_data
arguments: data_label: D26
datatype: f64
name: extract_symbolic_data
arguments: data_label: D85
datatype: f64
name: extract_symbolic_data
arguments: data_label: D192
datatype: f64
name: extract_symbolic_data
arguments: data_label: D28
datatype: f64
name: extract_symbolic_data
arguments: data_label: D40
datatype: f64
name: extract_symbolic_data
arguments: data_label: D185
datatype: f64
name: extract_symbolic_data
arguments: data_label: D186
datatype: f32[2]
name: extract_symbolic_data
arguments: data_label: D76
datatype: f64
name: extract_symbolic_data
arguments: data_label: D144
datatype: f64
name: extract_symbolic_data
arguments: data_label: D95
datatype: f64
name: extract_symbolic_data
arguments: data_label: D233
datatype: f64
name: extract_symbolic_data
arguments: data_label: D183
datatype: f64
name: extract_symbolic_data
arguments: data_label: D268
datatype: f64
name: extract_symbolic_data
arguments: data_label: D221
datatype: f64
name: extract_symbolic_data
arguments: data_label: D158
datatype: f64
name: extract_symbolic_data
arguments: data_label: D81
datatype: f64
name: extract_symbolic_data
arguments: data_label: D173
datatype: f64
name: extract_symbolic_data
arguments: data_label: D73
datatype: f64
name: extract_symbolic_data
arguments: data_label: D30
datatype: f64
name: extract_symbolic_data
arguments: data_label: D261
datatype: f64
name: extract_symbolic_data
arguments: data_label: D170
datatype: f64
name: extract_symbolic_data
arguments: data_label: D248
datatype: f64
name: extract_symbolic_data
arguments: data_label: D108
datatype: f64

tool: {"D31": [60.0,2.0]}

tool: {"D23": [2.0,0.00053208]}

tool: {"D209": [0.0,-0.0,0.0,0.0]}

tool: D111: 0.00053208

tool: D26: 0.0025154

tool: D85: 0.00587872

tool: D192: 0.01062446

tool: D28: 0.02189568

tool: D40: 0.07832358

tool: D185: 1.25331414

tool: {"D186": [0.0,1.625]}

tool: D76: 14.0625

tool: D144: 0.5

tool: D95: 0.0045813

tool: D233: 0.0360768

tool: D183: 0.2659732

tool: D268: 1.2067492

tool: D221: 3.0899424

tool: D158: 3.5156229

tool: D81: 1

tool: D173: 7.4e-06

tool: D73: 0.0001075

tool: D30: 0.00262698

tool: D261: 0.0348859

tool: D170: 0.23069756

tool: D248: 0.4227842

tool: D108: 0.57721566

assistant: ```c
double K0(double x) {
  double x1, x2;
  double s1, s2;
  if (x >= 60.0)
    return (0.0);
  else if (x >= 2.0) {
    x1 = 2.0 / x;
    s1 = (((((0.00053208 * x1 - 0.00251540) * x1 + 0.00587872) * x1 - 0.01062446) * x1 + 0.02189568) * x1 - 0.07832358) * x1 + 1.25331414;
    return (s1 * exp(-x) / sqrt(x));
  } else {
    x1 = x * x / 4.0;
    x2 = x * x / 14.0625;
    s1 = (((((0.00000740 * x1 + 0.00010750) * x1 + 0.00262698) * x1 + 0.03488590) * x1 + 0.23069756) * x1 + 0.42278420) * x1 - 0.57721566;
    s2 = (((((0.0045813 * x2 + 0.0360768) * x2 + 0.2659732) * x2 + 1.2067492) * x2 + 3.0899424) * x2 + 3.5156229) * x2 + 1.0;
    return (-log(0.5 * x) * s2 + s1);
  }
}
```