user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<sb>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x78,%rsp
  movsd  %xmm0,-0x68(%rbp)
  movsd  %xmm1,-0x70(%rbp)
  mov    -0x70(%rbp),%rax
  movq   %rax,%xmm0
  call   <ss@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x60(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D142(%rip),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D141(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x60(%rbp),%xmm1
  movsd  D104(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D174(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x60(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  D80(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  D98(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x60(%rbp),%xmm2
  movsd  D133(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x60(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  D1(%rip),%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  D159(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x60(%rbp),%xmm2
  movsd  D4(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x60(%rbp),%xmm1
  movsd  D158(%rip),%xmm0
  movapd %xmm1,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  D175(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x58(%rbp),%xmm2
  movsd  D25(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x60(%rbp),%xmm1
  movsd  D107(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D124(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D190(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mov    -0x60(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rbx
  movsd  D198(%rip),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  movsd  -0x40(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %rbx,%xmm3
  divsd  %xmm0,%xmm3
  movsd  %xmm3,-0x78(%rbp)
  mov    -0x68(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0x38(%rbp),%xmm1
  movsd  D198(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D198(%rip),%xmm0
  movapd %xmm0,%xmm5
  subsd  -0x68(%rbp),%xmm5
  movq   %xmm5,%rax
  movsd  -0x28(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm6
  mulsd  -0x78(%rbp),%xmm6
  movsd  %xmm6,-0x78(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mov    -0x60(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm7
  mulsd  -0x18(%rbp),%xmm7
  movsd  %xmm7,-0x80(%rbp)
  movsd  D198(%rip),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  mulsd  -0x80(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm4
  subsd  -0x20(%rbp),%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D142
type: f64
name: unpack_data
arguments: data_label: D141
type: f64
name: unpack_data
arguments: data_label: D104
type: f64
name: unpack_data
arguments: data_label: D174
type: f64
name: unpack_data
arguments: data_label: D80
type: f64
name: unpack_data
arguments: data_label: D98
type: f64
name: unpack_data
arguments: data_label: D133
type: f64
name: unpack_data
arguments: data_label: D1
type: f64
name: unpack_data
arguments: data_label: D159
type: f64
name: unpack_data
arguments: data_label: D4
type: f64
name: unpack_data
arguments: data_label: D158
type: f64
name: unpack_data
arguments: data_label: D175
type: f64
name: unpack_data
arguments: data_label: D25
type: f64
name: unpack_data
arguments: data_label: D107
type: f64
name: unpack_data
arguments: data_label: D124
type: f64
name: unpack_data
arguments: data_label: D190
type: f64
name: unpack_data
arguments: data_label: D198
type: f64

tool: D142: 0.914

tool: D141: 0.577

tool: D104: 0.596

tool: D174: 1.798

tool: D80: 3.669

tool: D98: 5.548

tool: D133: 0.616

tool: D1: 16.73

tool: D159: 18.92

tool: D4: 5.168

tool: D158: 0.35

tool: D175: 6.379

tool: D25: 0.142

tool: D107: 1.638

tool: D124: 3.981

tool: D190: 6.402

tool: D198: 1

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