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

```asm
<zcdf>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movsd  %xmm0,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jp     L46
  pxor   %xmm0,%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jne    L46
  movsd  D140(%rip),%xmm0
  jmp    L49
L46:
  movsd  -0x28(%rbp),%xmm0
  movq   D305(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  D94(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  comisd D73(%rip),%xmm0
  jb     L21
  pxor   %xmm0,%xmm0
  jmp    L49
L21:
  movsd  D120(%rip),%xmm0
  comisd -0x10(%rbp),%xmm0
  jbe    L59
  movsd  -0x10(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D207(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  D16(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D329(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  D170(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D230(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  D167(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D240(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  D66(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  D326(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x10(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  jmp    L57
L59:
  movsd  -0x10(%rbp),%xmm0
  movsd  D94(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  D28(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D156(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D180(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D152(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D288(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D137(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D317(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D1(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D173(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D29(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D148(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D307(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  movsd  D116(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D199(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D301(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
L57:
  movsd  -0x28(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L42
  movsd  -0x20(%rbp),%xmm0
  movsd  D94(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D140(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L37
L42:
  movsd  -0x20(%rbp),%xmm0
  movsd  D94(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D140(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
L37:
  movsd  -0x18(%rbp),%xmm0
L49:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_tag: D140
datatype: f64
name: read_data
arguments: data_tag: D305
datatype: qword
name: read_data
arguments: data_tag: D94
datatype: f64
name: read_data
arguments: data_tag: D73
datatype: f64[2]
name: read_data
arguments: data_tag: D120
datatype: f64
name: read_data
arguments: data_tag: D207
datatype: f64
name: read_data
arguments: data_tag: D16
datatype: f64
name: read_data
arguments: data_tag: D329
datatype: f64
name: read_data
arguments: data_tag: D170
datatype: f64
name: read_data
arguments: data_tag: D230
datatype: f64
name: read_data
arguments: data_tag: D167
datatype: f64
name: read_data
arguments: data_tag: D240
datatype: f64
name: read_data
arguments: data_tag: D66
datatype: f64
name: read_data
arguments: data_tag: D326
datatype: f64
name: read_data
arguments: data_tag: D28
datatype: byte[8]
name: read_data
arguments: data_tag: D156
datatype: f64
name: read_data
arguments: data_tag: D180
datatype: f64
name: read_data
arguments: data_tag: D152
datatype: f64
name: read_data
arguments: data_tag: D288
datatype: f64
name: read_data
arguments: data_tag: D137
datatype: f64
name: read_data
arguments: data_tag: D317
datatype: f64
name: read_data
arguments: data_tag: D1
datatype: f64
name: read_data
arguments: data_tag: D173
datatype: f64
name: read_data
arguments: data_tag: D29
datatype: f64
name: read_data
arguments: data_tag: D148
datatype: f64
name: read_data
arguments: data_tag: D307
datatype: f64
name: read_data
arguments: data_tag: D116
datatype: f64
name: read_data
arguments: data_tag: D199
datatype: f64
name: read_data
arguments: data_tag: D301
datatype: f64

tool: D140: 0.5

tool: D305: 9223372036854775807

tool: D94: 2

tool: {"D73": [3.0,1.0]}

tool: D120: 1

tool: D207: 0.000124818987

tool: D16: 0.001075204047

tool: D329: 0.005198775019

tool: D170: 0.019198292004

tool: D230: 0.059054035642

tool: D167: 0.151968751364

tool: D240: 0.319152932694

tool: D66: 0.5319230073

tool: D326: 0.797884560593

tool: {"D28": [0x33,0x67,0x58,0x9a,0x1c,0xba,0x07,0xbf]}

tool: D156: 0.00015252929

tool: D180: 1.9538132e-05

tool: D152: 0.000676904986

tool: D288: 0.001390604284

tool: D137: 0.00079462082

tool: D317: 0.002034254874

tool: D1: 0.006549791214

tool: D173: 0.010557625006

tool: D29: 0.011630447319

tool: D148: 0.009279453341

tool: D307: 0.005353579108

tool: D116: 0.002141268741

tool: D199: 0.000535310849

tool: D301: 0.999936657524

assistant: ```c
double zcdf(double z) {
  double w;
  double x;
  double y;
  double result;
  if (z == 0.0)
    return 0.5;
  y = fabs(z) / 2.0;
  if (y >= 3.0)
    return 0.0;
  if (y < 1.0) {
    w = y * y;
    x = 0.000124818987;
    x = x * w - 0.001075204047;
    x = x * w + 0.005198775019;
    x = x * w - 0.019198292004;
    x = x * w + 0.059054035642;
    x = x * w - 0.151968751364;
    x = x * w + 0.319152932694;
    x = x * w - 0.531923007300;
    x = x * w + 0.797884560593;
    x = x * 2.0 * y;
  } else {
    y -= 2.0;
    x = -0.000045255659;
    x = x * y + 0.000152529290;
    x = x * y - 0.000019538132;
    x = x * y - 0.000676904986;
    x = x * y + 0.001390604284;
    x = x * y - 0.000794620820;
    x = x * y - 0.002034254874;
    x = x * y + 0.006549791214;
    x = x * y - 0.010557625006;
    x = x * y + 0.011630447319;
    x = x * y - 0.009279453341;
    x = x * y + 0.005353579108;
    x = x * y - 0.002141268741;
    x = x * y + 0.000535310849;
    x = x * y + 0.999936657524;
  }
  if (z > 0.0) {
    result = (x / 2.0) + 0.5;
  } else {
    result = (0.5 - (x / 2.0));
  }
  return result;
}
```