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

```asm
<gauss_integral>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x70,%rsp
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  comisd D0(%rip),%xmm0
  jbe    L48
  movsd  D27(%rip),%xmm0
  jmp    L14
L48:
  movsd  D11(%rip),%xmm0
  comisd -0x68(%rbp),%xmm0
  jbe    L9
  pxor   %xmm0,%xmm0
  jmp    L14
L9:
  movsd  D17(%rip),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D168(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  D59(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D164(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D25(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D110(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D66(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x68(%rbp),%xmm0
  movq   D41(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x28(%rbp),%xmm1
  movsd  D27(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D27(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x68(%rbp),%xmm0
  movq   D103(%rip),%xmm1
  xorpd  %xmm0,%xmm1
  movsd  -0x68(%rbp),%xmm0
  movsd  D156(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  -0x20(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x40(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x48(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x50(%rbp),%xmm0
  movsd  -0x10(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  D27(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x68(%rbp),%xmm0
  jbe    L45
  movsd  D27(%rip),%xmm0
  subsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
L45:
  movsd  -0x58(%rbp),%xmm0
L14:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D0
type_guessed: f64[2]
name: parse_data
arguments: data_tag: D27
type_guessed: f64
name: parse_data
arguments: data_tag: D11
type_guessed: f32[2]
name: parse_data
arguments: data_tag: D17
type_guessed: f64
name: parse_data
arguments: data_tag: D168
type_guessed: byte[8]
name: parse_data
arguments: data_tag: D59
type_guessed: f64
name: parse_data
arguments: data_tag: D164
type_guessed: byte[8]
name: parse_data
arguments: data_tag: D25
type_guessed: f64
name: parse_data
arguments: data_tag: D110
type_guessed: f64
name: parse_data
arguments: data_tag: D66
type_guessed: f64
name: parse_data
arguments: data_tag: D41
type_guessed: qword
name: parse_data
arguments: data_tag: D103
type_guessed: f32[2]
name: parse_data
arguments: data_tag: D156
type_guessed: f64

tool: {"D0": [6.0,1.0]}

tool: D27: 1

tool: {"D11": [0.0,-2.375]}

tool: D17: 0.31938153

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

tool: D59: 1.781477937

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

tool: D25: 1.330274429

tool: D110: 0.2316419

tool: D66: 0.3989423

tool: D41: 9223372036854775807

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

tool: D156: 2

assistant: ```c
double gauss_integral(double z) {
  double b1;
  double b2;
  double b3;
  double b4;
  double b5;
  double p;
  double c2;
  double a;
  double t;
  double b;
  double n;
  if (z > 6.0)
    return 1.0;
  if (z < -6.0)
    return 0.0;
  b1 = 0.31938153;
  b2 = -0.356563782;
  b3 = 1.781477937;
  b4 = -1.821255978;
  b5 = 1.330274429;
  p = 0.2316419;
  c2 = 0.3989423;
  a = fabs(z);
  t = 1.0 / (1.0 + a * p);
  b = c2 * exp((-z) * (z / 2.0));
  n = ((((b5 * t + b4) * t + b3) * t + b2) * t + b1) * t;
  n = 1.0 - b * n;
  if (z < 0.0)
    n = 1.0 - n;
  return n;
}
```