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

```asm
<sb>:
  endbr64
  sub    $0x58,%rsp
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm1,%xmm0
  call   <ss@plt>
  pxor   %xmm7,%xmm7
  movsd  D189(%rip),%xmm5
  movapd %xmm0,%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm1
  ucomisd %xmm2,%xmm7
  mulsd  D82(%rip),%xmm0
  subsd  %xmm0,%xmm5
  ja     L36
  movapd %xmm2,%xmm0
  movsd  D131(%rip),%xmm4
  movsd  D171(%rip),%xmm3
  sqrtsd %xmm0,%xmm0
  mulsd  %xmm2,%xmm4
  mulsd  %xmm0,%xmm3
  subsd  D97(%rip),%xmm3
  subsd  %xmm4,%xmm3
  movsd  %xmm3,0x30(%rsp)
L45:
  mulsd  D74(%rip),%xmm0
  movsd  D211(%rip),%xmm3
  movsd  %xmm2,0x38(%rsp)
  mulsd  D128(%rip),%xmm1
  movsd  %xmm5,0x48(%rsp)
  subsd  %xmm0,%xmm3
  movsd  D92(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm3
  movsd  D32(%rip),%xmm0
  movsd  %xmm3,0x20(%rsp)
  movsd  D136(%rip),%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm3,%xmm0
  movapd %xmm0,%xmm3
  movsd  D152(%rip),%xmm0
  addsd  %xmm1,%xmm3
  movsd  D57(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D25(%rip),%xmm0
  movsd  %xmm3,0x40(%rsp)
  movsd  %xmm0,0x28(%rsp)
  movapd %xmm2,%xmm0
  call   <pow@plt>
  movsd  D55(%rip),%xmm6
  divsd  0x8(%rsp),%xmm6
  movsd  %xmm6,0x18(%rsp)
  movsd  %xmm0,0x10(%rsp)
  movapd %xmm6,%xmm0
  call   <log@plt>
  movsd  0x48(%rsp),%xmm5
  movapd %xmm5,%xmm1
  call   <pow@plt>
  movsd  0x10(%rsp),%xmm4
  pxor   %xmm5,%xmm5
  movsd  0x8(%rsp),%xmm7
  movsd  0x18(%rsp),%xmm6
  movsd  0x38(%rsp),%xmm2
  divsd  %xmm0,%xmm4
  ucomisd %xmm7,%xmm5
  movsd  0x40(%rsp),%xmm3
  movsd  %xmm4,0x10(%rsp)
  ja     L31
  sqrtsd %xmm7,%xmm7
  movsd  %xmm7,0x18(%rsp)
L48:
  movsd  D55(%rip),%xmm0
  subsd  0x8(%rsp),%xmm0
  movapd %xmm3,%xmm1
  movsd  %xmm6,0x38(%rsp)
  movsd  %xmm2,0x40(%rsp)
  call   <pow@plt>
  movsd  0x20(%rsp),%xmm1
  mulsd  0x8(%rsp),%xmm1
  movapd %xmm0,%xmm3
  movsd  0x18(%rsp),%xmm0
  movsd  0x40(%rsp),%xmm2
  mulsd  0x30(%rsp),%xmm0
  addsd  D55(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  0x10(%rsp),%xmm0
  movsd  D177(%rip),%xmm1
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm2,%xmm0
  call   <pow@plt>
  movsd  0x38(%rsp),%xmm6
  movsd  %xmm0,0x10(%rsp)
  movapd %xmm6,%xmm0
  call   <log@plt>
  movsd  0x10(%rsp),%xmm1
  pxor   %xmm7,%xmm7
  mulsd  D163(%rip),%xmm1
  movapd %xmm0,%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L51
  sqrtsd %xmm0,%xmm0
L19:
  subsd  0x28(%rsp),%xmm0
  call   <exp@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  0x8(%rsp),%xmm0
  add    $0x58,%rsp
  ret
L36:
  movapd %xmm2,%xmm0
  movsd  %xmm5,0x20(%rsp)
  movsd  %xmm1,0x18(%rsp)
  movsd  %xmm2,0x10(%rsp)
  call   <sqrt@plt>
  movsd  0x10(%rsp),%xmm2
  movsd  D131(%rip),%xmm3
  mulsd  D171(%rip),%xmm0
  mulsd  %xmm2,%xmm3
  subsd  D97(%rip),%xmm0
  subsd  %xmm3,%xmm0
  movsd  %xmm0,0x30(%rsp)
  movapd %xmm2,%xmm0
  call   <sqrt@plt>
  movsd  0x20(%rsp),%xmm5
  movsd  0x18(%rsp),%xmm1
  movsd  0x10(%rsp),%xmm2
  jmp    L45
L51:
  call   <sqrt@plt>
  jmp    L19
L31:
  movsd  0x8(%rsp),%xmm0
  movsd  %xmm3,0x48(%rsp)
  movsd  %xmm2,0x40(%rsp)
  movsd  %xmm6,0x38(%rsp)
  call   <sqrt@plt>
  movsd  0x48(%rsp),%xmm3
  movsd  0x40(%rsp),%xmm2
  movsd  0x38(%rsp),%xmm6
  movsd  %xmm0,0x18(%rsp)
  jmp    L48
```

tool_calls: name: retrieve_data
arguments: data_tag: D189
type: f64
name: retrieve_data
arguments: data_tag: D82
type: f64
name: retrieve_data
arguments: data_tag: D131
type: f64
name: retrieve_data
arguments: data_tag: D171
type: f64
name: retrieve_data
arguments: data_tag: D97
type: f64
name: retrieve_data
arguments: data_tag: D74
type: f64
name: retrieve_data
arguments: data_tag: D211
type: f64
name: retrieve_data
arguments: data_tag: D128
type: f64
name: retrieve_data
arguments: data_tag: D92
type: f64
name: retrieve_data
arguments: data_tag: D32
type: f64
name: retrieve_data
arguments: data_tag: D136
type: f64
name: retrieve_data
arguments: data_tag: D152
type: f64
name: retrieve_data
arguments: data_tag: D57
type: f64
name: retrieve_data
arguments: data_tag: D25
type: f64
name: retrieve_data
arguments: data_tag: D55
type: f64
name: retrieve_data
arguments: data_tag: D177
type: f64
name: retrieve_data
arguments: data_tag: D163
type: f64

tool: D189: 1.798

tool: D82: 0.596

tool: D131: 0.616

tool: D171: 3.669

tool: D97: 5.548

tool: D74: 16.73

tool: D211: 18.92

tool: D128: 0.142

tool: D92: 5.168

tool: D32: 6.379

tool: D136: 0.35

tool: D152: 1.638

tool: D57: 0.914

tool: D25: 3.981

tool: D55: 1

tool: D177: 0.577

tool: D163: 6.402

assistant: ```c
double sb(double xx, double Q2) {
  double s = ss(Q2);
  double s2 = s * s;
  double alfa = 0.914;
  double beta = 0.577;
  double a = 1.798 - 0.596 * s;
  double A = -5.548 + 3.669 * sqrt(s) - 0.616 * s;
  double B = 18.92 - 16.73 * sqrt(s) + 5.168 * s;
  double D = 6.379 - 0.35 * s + 0.142 * s2;
  double E = 3.981 + 1.638 * s;
  double Eprim = 6.402;
  return pow(s, alfa) / pow(log(1.0 / xx), a) * (1 + A * sqrt(xx) + B * xx) * pow(1 - xx, D) * exp(-E + sqrt(Eprim * pow(s, beta) * log(1.0 / xx)));
}
```