user: Converte this assembly snippet into its equivalent C code:

```asm
<cum_normal>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x70,%rsp
  movsd  %xmm0,-0x58(%rbp)
  movsd  %xmm1,-0x60(%rbp)
  movsd  %xmm2,-0x68(%rbp)
  movsd  D68(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D54(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D119(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D34(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D24(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  D81(%rip),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x68(%rbp),%xmm0
  jb     L28
  movsd  D137(%rip),%xmm0
  jmp    L21
L28:
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x60(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x58(%rbp),%xmm0
  jbe    L33
  movsd  -0x58(%rbp),%xmm0
  movq   D52(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  jmp    L13
L33:
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
L13:
  movsd  -0x10(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  D69(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D69(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x40(%rbp),%xmm1
  movsd  D125(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D97(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x8(%rbp),%xmm2
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm0,%xmm2
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm0,%xmm2
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm0,%xmm2
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D69(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x58(%rbp),%xmm0
  jbe    L16
  movsd  D69(%rip),%xmm0
  subsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
L16:
  movsd  -0x48(%rbp),%xmm0
L21:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D68
type_guessed: f64
name: unpack_data
arguments: data_label: D54
type_guessed: byte[8]
name: unpack_data
arguments: data_label: D119
type_guessed: f64
name: unpack_data
arguments: data_label: D34
type_guessed: byte[8]
name: unpack_data
arguments: data_label: D24
type_guessed: f64
name: unpack_data
arguments: data_label: D81
type_guessed: byte[8]
name: unpack_data
arguments: data_label: D137
type_guessed: f32[2]
name: unpack_data
arguments: data_label: D52
type_guessed: f32[2]
name: unpack_data
arguments: data_label: D69
type_guessed: f64
name: unpack_data
arguments: data_label: D125
type_guessed: f32[2]
name: unpack_data
arguments: data_label: D97
type_guessed: f64

tool: D68: 0.31938153

tool: {"D54": [0x5b,0x32,0xa8,0xe5,0xf0,0xd1,0xd6,0xbf]}

tool: D119: 1.781477937

tool: {"D34": [0xd0,0x78,0xf2,0x4e,0xdd,0x23,0xfd,0xbf]}

tool: D24: 1.330274429

tool: {"D81": [0x0e,0x10,0x71,0x18,0x71,0xa6,0xcd,0x3f]}

tool: {"D137": [0.0,-1.875]}

tool: {"D52": [0.0,-0.0]}

tool: D69: 1

tool: {"D125": [0.0,-1.75]}

tool: D97: 0.39894228040143

assistant: ```c
double cum_normal(double sample, double mean, double stddev) {
  double a, b, c, d, e, f, g, h, temp;
  a = 0.319381530;
  b = -0.356563782;
  c = 1.781477937;
  d = -1.821255978;
  e = 1.330274429;
  f = .2316419;
  if (stddev <= 0.0)
    return -1.0;
  sample = (sample - mean) / stddev;
  if (sample < 0.0)
    temp = -sample;
  else
    temp = sample;
  g = 1.0 / (1.0 + f * temp);
  h = 1.0 - (0.39894228040143 * exp(-0.5 * temp * temp)) * (a * g + b * g * g + c * g * g * g + d * g * g * g * g + e * g * g * g * g * g);
  if (sample < 0.0)
    h = 1.0 - h;
  return h;
}
```