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

```asm
<CDFNormal>:
  endbr64
  push   %rbx
  movapd %xmm0,%xmm1
  pxor   %xmm3,%xmm3
  xor    %ebx,%ebx
  mulsd  %xmm0,%xmm0
  sub    $0x10,%rsp
  comisd %xmm1,%xmm3
  movsd  D43(%rip),%xmm2
  mulsd  %xmm2,%xmm0
  jbe    L0
  xorpd  D195(%rip),%xmm1
  mov    $0x1,%ebx
L0:
  movsd  D14(%rip),%xmm3
  comisd %xmm1,%xmm3
  jbe    L7
  movsd  D210(%rip),%xmm6
  movsd  D160(%rip),%xmm3
  movsd  D55(%rip),%xmm4
  movsd  D150(%rip),%xmm5
  addsd  %xmm0,%xmm6
  mulsd  %xmm0,%xmm4
  addsd  %xmm0,%xmm5
  addsd  D234(%rip),%xmm0
  divsd  %xmm6,%xmm3
  addsd  %xmm3,%xmm0
  movsd  D130(%rip),%xmm3
  divsd  %xmm0,%xmm3
  movsd  D31(%rip),%xmm0
  subsd  %xmm3,%xmm5
  divsd  %xmm5,%xmm4
  subsd  %xmm4,%xmm0
  mulsd  %xmm0,%xmm1
  subsd  %xmm1,%xmm2
  movapd %xmm2,%xmm0
L18:
  test   %ebx,%ebx
  jne    L36
  movsd  D54(%rip),%xmm1
  subsd  %xmm0,%xmm1
  movapd %xmm1,%xmm0
L36:
  add    $0x10,%rsp
  pop    %rbx
  ret
  nopw   0x0(%rax,%rax,1)
L7:
  xorpd  D195(%rip),%xmm0
  movsd  %xmm1,0x8(%rsp)
  call   <exp@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  D212(%rip),%xmm4
  movsd  D200(%rip),%xmm2
  movsd  D77(%rip),%xmm3
  addsd  %xmm1,%xmm4
  mulsd  D74(%rip),%xmm0
  addsd  %xmm1,%xmm3
  divsd  %xmm4,%xmm2
  movsd  D190(%rip),%xmm4
  addsd  %xmm1,%xmm4
  addsd  %xmm4,%xmm2
  movsd  D222(%rip),%xmm4
  divsd  %xmm2,%xmm4
  movsd  D9(%rip),%xmm2
  subsd  %xmm4,%xmm3
  divsd  %xmm3,%xmm2
  movapd %xmm1,%xmm3
  subsd  D100(%rip),%xmm3
  addsd  %xmm3,%xmm2
  movsd  D235(%rip),%xmm3
  divsd  %xmm2,%xmm3
  movsd  D22(%rip),%xmm2
  addsd  %xmm1,%xmm2
  subsd  D111(%rip),%xmm1
  addsd  %xmm2,%xmm3
  movsd  D25(%rip),%xmm2
  divsd  %xmm3,%xmm2
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  jmp    L18
```

tool_calls: name: unpack_data
arguments: data_label: D43
type_infered: byte[8]
name: unpack_data
arguments: data_label: D195
type_infered: byte[16]
name: unpack_data
arguments: data_label: D14
type_infered: f64
name: unpack_data
arguments: data_label: D210
type_infered: f64
name: unpack_data
arguments: data_label: D160
type_infered: f64
name: unpack_data
arguments: data_label: D55
type_infered: byte[8]
name: unpack_data
arguments: data_label: D150
type_infered: f64
name: unpack_data
arguments: data_label: D234
type_infered: f64
name: unpack_data
arguments: data_label: D130
type_infered: f64
name: unpack_data
arguments: data_label: D31
type_infered: byte[8]
name: unpack_data
arguments: data_label: D54
type_infered: byte[8]
name: unpack_data
arguments: data_label: D212
type_infered: f64
name: unpack_data
arguments: data_label: D200
type_infered: f64
name: unpack_data
arguments: data_label: D77
type_infered: f64
name: unpack_data
arguments: data_label: D74
type_infered: f64
name: unpack_data
arguments: data_label: D190
type_infered: f64
name: unpack_data
arguments: data_label: D222
type_infered: f64
name: unpack_data
arguments: data_label: D9
type_infered: f64
name: unpack_data
arguments: data_label: D100
type_infered: f64
name: unpack_data
arguments: data_label: D235
type_infered: f64
name: unpack_data
arguments: data_label: D22
type_infered: byte[8]
name: unpack_data
arguments: data_label: D111
type_infered: byte[8]
name: unpack_data
arguments: data_label: D25
type_infered: f64

tool: {"D43": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

tool: {"D195": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: D14: 1.28

tool: D210: 5.92885724438

tool: D160: 48.6959930692

tool: {"D55": [0x2a,0xb0,0x7b,0x97,0x04,0x98,0xd9,0x3f]}

tool: D150: 5.75885480458

tool: D234: 2.62433121679

tool: D130: 29.8213557808

tool: {"D31": [0xb9,0xe9,0xdf,0x33,0x45,0x88,0xd9,0x3f]}

tool: {"D54": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

tool: D212: 3.99019417011

tool: D200: 30.789933034

tool: D77: 4.8385912808

tool: D74: 0.398942280385

tool: D190: 0.742380924027

tool: D222: 15.1508972451

tool: D9: 5.29330324926

tool: D100: 0.151679116635

tool: D235: 1.98615381364

tool: {"D22": [0x69,0x7b,0x9c,0x45,0x6b,0x16,0x3a,0x3f]}

tool: {"D111": [0x78,0x99,0x0a,0xba,0xd3,0x6d,0x64,0x3e]}

tool: D25: 1.00000615302

assistant: ```c
double CDFNormal(double x) {
  int invers = 0;
  double p, t = 1.28, y = x * x / 2;
  if (x < 0) {
    invers = 1;
    x = -x;
  }
  if (x < t)
    p = .5 - x * (.398942280444 - .399903438504 * y / (y + 5.75885480458 - 29.8213557808 / (y + 2.62433121679 + 48.6959930692 / (y + 5.92885724438))));
  else {
    p = 0.398942280385 * exp(-y) / (x - 3.8052e-8 + 1.00000615302 / (x + 3.98064794e-4 + 1.98615381364 / (x - 0.151679116635 + 5.29330324926 / (x + 4.8385912808 - 15.1508972451 / (x + 0.742380924027 + 30.789933034 / (x + 3.99019417011))))));
  }
  return (invers ? p : 1 - p);
}
```