user: Translate the below assembly code into C programming language:

```asm
<zcdf>:
  endbr64
  pxor   %xmm1,%xmm1
  movapd %xmm0,%xmm4
  ucomisd %xmm1,%xmm0
  jp     L58
  movsd  D150(%rip),%xmm5
  je     L2
L58:
  movsd  D150(%rip),%xmm2
  movapd %xmm4,%xmm3
  movapd %xmm1,%xmm5
  andpd  D121(%rip),%xmm3
  mulsd  %xmm2,%xmm3
  comisd D90(%rip),%xmm3
  jae    L2
  movsd  D54(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L9
  subsd  D86(%rip),%xmm3
  movsd  D108(%rip),%xmm0
  comisd %xmm1,%xmm4
  mulsd  %xmm3,%xmm0
  addsd  D288(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D68(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D165(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D276(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D154(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D2(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D218(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D296(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D174(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D55(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D141(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D166(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D163(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D209(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  jbe    L6
L44:
  movapd %xmm0,%xmm5
  addsd  %xmm2,%xmm5
L2:
  movapd %xmm5,%xmm0
  ret
  nop
L9:
  movapd %xmm3,%xmm5
  movsd  D146(%rip),%xmm0
  comisd %xmm1,%xmm4
  mulsd  %xmm3,%xmm5
  mulsd  %xmm5,%xmm0
  subsd  D0(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D277(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D195(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D215(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D238(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D214(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D75(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D83(%rip),%xmm0
  addsd  %xmm0,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  ja     L44
L6:
  subsd  %xmm0,%xmm2
  movapd %xmm2,%xmm5
  movapd %xmm5,%xmm0
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D150
datatype: f64
name: parse_data
arguments: data_tag: D121
datatype: qword[2]
name: parse_data
arguments: data_tag: D90
datatype: f64[2]
name: parse_data
arguments: data_tag: D54
datatype: f64
name: parse_data
arguments: data_tag: D86
datatype: f64
name: parse_data
arguments: data_tag: D108
datatype: byte[8]
name: parse_data
arguments: data_tag: D288
datatype: f64
name: parse_data
arguments: data_tag: D68
datatype: f64
name: parse_data
arguments: data_tag: D165
datatype: f64
name: parse_data
arguments: data_tag: D276
datatype: f64
name: parse_data
arguments: data_tag: D154
datatype: f64
name: parse_data
arguments: data_tag: D2
datatype: f64
name: parse_data
arguments: data_tag: D218
datatype: f64
name: parse_data
arguments: data_tag: D296
datatype: f64
name: parse_data
arguments: data_tag: D174
datatype: f64
name: parse_data
arguments: data_tag: D55
datatype: f64
name: parse_data
arguments: data_tag: D141
datatype: f64
name: parse_data
arguments: data_tag: D166
datatype: f64
name: parse_data
arguments: data_tag: D163
datatype: f64
name: parse_data
arguments: data_tag: D209
datatype: f64
name: parse_data
arguments: data_tag: D146
datatype: f64
name: parse_data
arguments: data_tag: D0
datatype: f64
name: parse_data
arguments: data_tag: D277
datatype: f64
name: parse_data
arguments: data_tag: D195
datatype: f64
name: parse_data
arguments: data_tag: D215
datatype: f64
name: parse_data
arguments: data_tag: D238
datatype: f64
name: parse_data
arguments: data_tag: D214
datatype: f64
name: parse_data
arguments: data_tag: D75
datatype: f64
name: parse_data
arguments: data_tag: D83
datatype: f64

tool: D150: 0.5

tool: {"D121": [0x7fffffffffffffff,0x0000000000000000]}

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

tool: D54: 1

tool: D86: 2

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

tool: D288: 0.00015252929

tool: D68: 1.9538132e-05

tool: D165: 0.000676904986

tool: D276: 0.001390604284

tool: D154: 0.00079462082

tool: D2: 0.002034254874

tool: D218: 0.006549791214

tool: D296: 0.010557625006

tool: D174: 0.011630447319

tool: D55: 0.009279453341

tool: D141: 0.005353579108

tool: D166: 0.002141268741

tool: D163: 0.000535310849

tool: D209: 0.999936657524

tool: D146: 0.000124818987

tool: D0: 0.001075204047

tool: D277: 0.005198775019

tool: D195: 0.019198292004

tool: D215: 0.059054035642

tool: D238: 0.151968751364

tool: D214: 0.319152932694

tool: D75: 0.5319230073

tool: D83: 0.797884560593

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