user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<kb_1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xd0,%rsp
  movsd  %xmm0,-0x88(%rbp)
  movsd  %xmm1,-0x90(%rbp)
  movsd  %xmm2,-0x98(%rbp)
  movsd  %xmm3,-0xa0(%rbp)
  movsd  %xmm4,-0xa8(%rbp)
  movsd  %xmm5,-0xb0(%rbp)
  movsd  %xmm6,-0xb8(%rbp)
  movsd  D189(%rip),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D65(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  D44(%rip),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  D98(%rip),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  D33(%rip),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D94(%rip),%xmm0
  subsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0xa8(%rbp),%xmm0
  jp     L8
  pxor   %xmm0,%xmm0
  ucomisd -0xa8(%rbp),%xmm0
  jne    L8
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
L8:
  movsd  -0x98(%rbp),%xmm1
  movsd  D51(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x88(%rbp),%xmm1
  movsd  D184(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,-0xc0(%rbp)
  movsd  -0x98(%rbp),%xmm1
  movsd  D232(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x90(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm7
  divsd  -0x48(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0xc0(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x78(%rbp),%xmm1
  movsd  D190(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D49(%rip),%xmm1
  divsd  %xmm0,%xmm1
  movsd  D161(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D50(%rip),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0xb8(%rbp),%xmm1
  movsd  D69(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,-0xc0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movsd  D142(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  D58(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  mulsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x78(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  D121(%rip),%xmm0
  mov    -0x38(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movapd %xmm0,%xmm1
  addsd  %xmm0,%xmm1
  movsd  -0xc0(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  jp     L25
  pxor   %xmm0,%xmm0
  ucomisd -0x20(%rbp),%xmm0
  je     L7
L25:
  movsd  -0xa8(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  mulsd  -0x68(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0x70(%rbp),%xmm1
  movsd  D175(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm3
  mulsd  -0x38(%rbp),%xmm3
  movsd  %xmm3,-0xc8(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movq   D8(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  D121(%rip),%xmm1
  movapd %xmm0,%xmm4
  divsd  %xmm1,%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D94(%rip),%xmm1
  subsd  %xmm0,%xmm1
  mulsd  -0xc8(%rbp),%xmm1
  movsd  -0xc0(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  jmp    L1
L7:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x80(%rbp)
L1:
  movsd  D94(%rip),%xmm1
  movsd  D94(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x50(%rbp),%xmm1
  movsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x38(%rbp),%xmm2
  movsd  -0x48(%rbp),%xmm0
  divsd  -0x98(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0x10(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0x90(%rbp),%xmm0
  movapd %xmm0,%xmm5
  divsd  -0x58(%rbp),%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movapd %xmm0,%xmm1
  movsd  -0xc0(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  mulsd  -0x58(%rbp),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm1
  movsd  D18(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movsd  D252(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  D96(%rip),%xmm1
  subsd  %xmm1,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  mulsd  -0x50(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x80(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D189
data_type: f64
name: read_data
arguments: data_label: D65
data_type: f64
name: read_data
arguments: data_label: D44
data_type: f64
name: read_data
arguments: data_label: D98
data_type: f64
name: read_data
arguments: data_label: D33
data_type: f64
name: read_data
arguments: data_label: D94
data_type: f64
name: read_data
arguments: data_label: D51
data_type: f64
name: read_data
arguments: data_label: D184
data_type: byte[8]
name: read_data
arguments: data_label: D232
data_type: f64
name: read_data
arguments: data_label: D190
data_type: f64
name: read_data
arguments: data_label: D49
data_type: f64
name: read_data
arguments: data_label: D161
data_type: f64
name: read_data
arguments: data_label: D50
data_type: f64
name: read_data
arguments: data_label: D69
data_type: byte[8]
name: read_data
arguments: data_label: D142
data_type: f64
name: read_data
arguments: data_label: D58
data_type: f64
name: read_data
arguments: data_label: D121
data_type: f64
name: read_data
arguments: data_label: D175
data_type: f64
name: read_data
arguments: data_label: D8
data_type: f32[2]
name: read_data
arguments: data_label: D18
data_type: f64
name: read_data
arguments: data_label: D252
data_type: f64
name: read_data
arguments: data_label: D96
data_type: byte[8]

tool: D189: 0.2

tool: D65: 0.05

tool: D44: 0.4

tool: D98: 0.7

tool: D33: 0.009

tool: D94: 1

tool: D51: 0.136

tool: {"D184": [0x16,0x81,0xba,0x12,0x5e,0x9f,0xec,0x3f]}

tool: D232: 0.667

tool: D190: 15.1

tool: D49: 0.264

tool: D161: 0.32

tool: D50: 101325

tool: {"D69": [0xb8,0x69,0x9e,0xe9,0x46,0xd4,0xeb,0x3e]}

tool: D142: 273.15

tool: D58: 1.81

tool: D121: 2

tool: D175: 4

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

tool: D18: 2.46

tool: D252: 0.25

tool: {"D96": [0x24,0x01,0x44,0xf2,0x07,0x03,0x00,0x40]}

assistant: ```c
double kb_1(double u_zref, double zref, double h, double lai, double fc, double tempka, double pa) {
  double c_d = 0.2;
  double c_t = 0.05;
  double k = 0.4;
  double Pr = 0.7;
  double hs = 0.009;
  double fs = 1.0 - fc;
  if (fc == 0.0)
    h = hs;
  double z0 = 0.136 * h;
  double u_h0 = u_zref * log(2.446) / log((zref - 0.667 * h) / z0);
  double ust2u_h = 0.32 - 0.264 / exp(15.1 * c_d * lai);
  double ustarh = ust2u_h * u_h0;
  double nu0 = 1.327 * pow(10, -5) * (101325.0 / pa) * pow((tempka / 273.15), 1.81);
  double nec = c_d * lai / (2.0 * pow(ust2u_h, 2));
  double re_star = hs * ustarh / nu0;
  double kb1;
  if (nec != 0.0)
    kb1 = (fc * fc) * k * c_d / (4.0 * c_t * ust2u_h * (1.0 - exp(-nec / 2.0)));
  else
    kb1 = 0.0;
  double c_t_star = pow(Pr, -2 / 3) * pow(re_star, -1 / 2);
  kb1 = kb1 + 2 * fc * fs * (k * ust2u_h * (z0 / h)) / c_t_star;
  re_star = hs * (u_zref * k / log(zref / hs)) / nu0;
  double kb1soil = pow(2.46 * (re_star), 0.25);
  kb1 = kb1 + (kb1soil - log(7.4)) * fs * fs;
  return (kb1);
}
```