user: Please show me the C implementation that matches the assembly code listed below:

```asm
<zcdf>:
  endbr64
  pxor   %xmm1,%xmm1
  movapd %xmm0,%xmm4
  ucomisd %xmm1,%xmm0
  jp     L55
  movsd  D239(%rip),%xmm5
  je     L56
L55:
  movsd  D239(%rip),%xmm2
  movapd %xmm4,%xmm3
  movapd %xmm1,%xmm5
  andpd  D35(%rip),%xmm3
  mulsd  %xmm2,%xmm3
  comisd D219(%rip),%xmm3
  jae    L56
  movsd  D238(%rip),%xmm0
  comisd %xmm3,%xmm0
  ja     L35
  subsd  D37(%rip),%xmm3
  movsd  D176(%rip),%xmm0
  comisd %xmm1,%xmm4
  mulsd  %xmm3,%xmm0
  addsd  D150(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D92(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D65(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D283(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D277(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D282(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D166(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D151(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D258(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D164(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D252(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  subsd  D87(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D89(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  D185(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  jbe    L47
L51:
  movapd %xmm0,%xmm5
  addsd  %xmm2,%xmm5
L56:
  movapd %xmm5,%xmm0
  ret
  nop
L35:
  movapd %xmm3,%xmm5
  movsd  D78(%rip),%xmm0
  comisd %xmm1,%xmm4
  mulsd  %xmm3,%xmm5
  mulsd  %xmm5,%xmm0
  subsd  D261(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D139(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D97(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D111(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D160(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D170(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  subsd  D29(%rip),%xmm0
  mulsd  %xmm5,%xmm0
  addsd  D140(%rip),%xmm0
  addsd  %xmm0,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  ja     L51
L47:
  subsd  %xmm0,%xmm2
  movapd %xmm2,%xmm5
  movapd %xmm5,%xmm0
  ret
```

tool_calls: name: unpack_data
arguments: label: D239
type_infered: f64
name: unpack_data
arguments: label: D35
type_infered: qword[2]
name: unpack_data
arguments: label: D219
type_infered: f64[2]
name: unpack_data
arguments: label: D238
type_infered: f64
name: unpack_data
arguments: label: D37
type_infered: f64
name: unpack_data
arguments: label: D176
type_infered: byte[8]
name: unpack_data
arguments: label: D150
type_infered: f64
name: unpack_data
arguments: label: D92
type_infered: f64
name: unpack_data
arguments: label: D65
type_infered: f64
name: unpack_data
arguments: label: D283
type_infered: f64
name: unpack_data
arguments: label: D277
type_infered: f64
name: unpack_data
arguments: label: D282
type_infered: f64
name: unpack_data
arguments: label: D166
type_infered: f64
name: unpack_data
arguments: label: D151
type_infered: f64
name: unpack_data
arguments: label: D258
type_infered: f64
name: unpack_data
arguments: label: D164
type_infered: f64
name: unpack_data
arguments: label: D252
type_infered: f64
name: unpack_data
arguments: label: D87
type_infered: f64
name: unpack_data
arguments: label: D89
type_infered: f64
name: unpack_data
arguments: label: D185
type_infered: f64
name: unpack_data
arguments: label: D78
type_infered: f64
name: unpack_data
arguments: label: D261
type_infered: f64
name: unpack_data
arguments: label: D139
type_infered: f64
name: unpack_data
arguments: label: D97
type_infered: f64
name: unpack_data
arguments: label: D111
type_infered: f64
name: unpack_data
arguments: label: D160
type_infered: f64
name: unpack_data
arguments: label: D170
type_infered: f64
name: unpack_data
arguments: label: D29
type_infered: f64
name: unpack_data
arguments: label: D140
type_infered: f64

tool: D239: 0.5

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

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

tool: D238: 1

tool: D37: 2

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

tool: D150: 0.00015252929

tool: D92: 1.9538132e-05

tool: D65: 0.000676904986

tool: D283: 0.001390604284

tool: D277: 0.00079462082

tool: D282: 0.002034254874

tool: D166: 0.006549791214

tool: D151: 0.010557625006

tool: D258: 0.011630447319

tool: D164: 0.009279453341

tool: D252: 0.005353579108

tool: D87: 0.002141268741

tool: D89: 0.000535310849

tool: D185: 0.999936657524

tool: D78: 0.000124818987

tool: D261: 0.001075204047

tool: D139: 0.005198775019

tool: D97: 0.019198292004

tool: D111: 0.059054035642

tool: D160: 0.151968751364

tool: D170: 0.319152932694

tool: D29: 0.5319230073

tool: D140: 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;
}
```