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

```asm
<get_prob>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  movsd  %xmm0,-0x28(%rbp)
  movsd  %xmm1,-0x30(%rbp)
  movsd  %xmm2,-0x38(%rbp)
  movsd  %xmm3,-0x40(%rbp)
  movsd  D118(%rip),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L1
  movsd  -0x28(%rbp),%xmm1
  movsd  D42(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D119(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x28(%rbp),%xmm2
  movsd  D116(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,-0x48(%rbp)
  mov    -0x30(%rbp),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movsd  D51(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  addsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x28(%rbp),%xmm1
  movsd  D49(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D89(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x28(%rbp),%xmm2
  movsd  D55(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x40(%rbp),%xmm1
  movsd  D19(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D5(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D5(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L29
L1:
  movsd  D25(%rip),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  D40(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x40(%rbp),%xmm1
  movsd  D19(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  -0x8(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D5(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D5(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
L29:
  pxor   %xmm0,%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L31
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
L31:
  movsd  -0x18(%rbp),%xmm0
  movsd  D5(%rip),%xmm1
  comisd %xmm1,%xmm0
  jbe    L22
  movsd  D5(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
L22:
  movsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D118
type_infered: f64
name: read_data
arguments: label: D42
type_infered: f64
name: read_data
arguments: label: D119
type_infered: f64
name: read_data
arguments: label: D116
type_infered: f64
name: read_data
arguments: label: D51
type_infered: f64
name: read_data
arguments: label: D49
type_infered: f64
name: read_data
arguments: label: D89
type_infered: f64
name: read_data
arguments: label: D55
type_infered: f64
name: read_data
arguments: label: D19
type_infered: byte[8]
name: read_data
arguments: label: D5
type_infered: f64
name: read_data
arguments: label: D25
type_infered: f64
name: read_data
arguments: label: D40
type_infered: f64

tool: D118: 0.001

tool: D42: 0.365

tool: D119: 11.2

tool: D116: 0.00706

tool: D51: 0.9

tool: D49: 0.145

tool: D89: 4.3

tool: D55: 0.00196

tool: {"D19": [0xae,0x9d,0x38,0x95,0xf8,0x5b,0xfc,0x3f]}

tool: D5: 1

tool: D25: 21

tool: D40: 7

assistant: ```c
double get_prob(double Tair, double Age, double SurfaceLiquidWater, double U10) {
  double mean_u_occurence;
  double sigma_occurence;
  double prob_occurence;
  if (1) {
    if (SurfaceLiquidWater < 0.001) {
      mean_u_occurence = 11.2 + 0.365 * Tair + 0.00706 * Tair * Tair + 0.9 * log(Age);
      sigma_occurence = 4.3 + 0.145 * Tair + 0.00196 * Tair * Tair;
      prob_occurence = 1. / (1. + exp(sqrt(3.1415927) * (mean_u_occurence - U10) / sigma_occurence));
    } else {
      mean_u_occurence = 21.;
      sigma_occurence = 7.;
      prob_occurence = 1. / (1. + exp(sqrt(3.1415927) * (mean_u_occurence - U10) / sigma_occurence));
    }
    if (prob_occurence < 0.0)
      prob_occurence = 0.0;
    if (prob_occurence > 1.0)
      prob_occurence = 1.0;
  } else
    prob_occurence = 1.;
  return prob_occurence;
}
```