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

```asm
<inverse_error_func>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movsd  %xmm0,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  D7(%rip),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D174(%rip),%xmm0
  comisd -0x28(%rbp),%xmm0
  ja     L116
  movsd  -0x28(%rbp),%xmm0
  movsd  D504(%rip),%xmm1
  comisd %xmm1,%xmm0
  jbe    L143
L116:
  lea    D430(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    D174(%rip),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  jmp    L123
L143:
  movsd  D174(%rip),%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jp     L18
  movsd  D174(%rip),%xmm0
  ucomisd -0x28(%rbp),%xmm0
  je     L35
L18:
  movsd  D504(%rip),%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jp     L9
  movsd  D504(%rip),%xmm0
  ucomisd -0x28(%rbp),%xmm0
  jne    L9
L35:
  movsd  -0x28(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    D425(%rip),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  jmp    L123
L9:
  movsd  -0x28(%rbp),%xmm0
  movsd  D174(%rip),%xmm1
  comisd %xmm1,%xmm0
  jbe    L41
  movsd  -0x8(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  comisd -0x28(%rbp),%xmm0
  jbe    L41
  movsd  -0x28(%rbp),%xmm1
  movsd  D504(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D19(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  movq   D247(%rip),%xmm0
  movq   %rax,%xmm7
  xorpd  %xmm0,%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x10(%rbp)
  movsd  D14(%rip),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D402(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D521(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D436(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  D150(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D342(%rip),%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D504(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L147
L41:
  movsd  -0x8(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm0,%xmm1
  movsd  -0x28(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jb     L52
  movsd  -0x8(%rbp),%xmm0
  comisd -0x28(%rbp),%xmm0
  jb     L52
  movsd  -0x28(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  D216(%rip),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D359(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D332(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D529(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  D48(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D48(%rip),%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D135(%rip),%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D476(%rip),%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D504(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L147
L52:
  movsd  -0x28(%rbp),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L147
  movsd  D504(%rip),%xmm0
  comisd -0x28(%rbp),%xmm0
  jbe    L147
  movsd  D504(%rip),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  D19(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rax
  movq   D247(%rip),%xmm0
  movq   %rax,%xmm3
  xorpd  %xmm0,%xmm3
  movq   %xmm3,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x10(%rbp)
  movsd  D14(%rip),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D402(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D521(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D436(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  D150(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D342(%rip),%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x10(%rbp),%xmm2
  movsd  D504(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
L147:
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <erf@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm3
  subsd  -0x28(%rbp),%xmm3
  movsd  %xmm3,-0x30(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <gp_exp@plt>
  movsd  D481(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <erf@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm4
  subsd  -0x28(%rbp),%xmm4
  movsd  %xmm4,-0x30(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <gp_exp@plt>
  movsd  D481(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <erf@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm5
  subsd  -0x28(%rbp),%xmm5
  movsd  %xmm5,-0x30(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <gp_exp@plt>
  movsd  D481(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  movq   %rax,%xmm0
  call   <erf@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm6
  subsd  -0x28(%rbp),%xmm6
  movsd  %xmm6,-0x30(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   D247(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <gp_exp@plt>
  movsd  D481(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  movsd  -0x18(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
L123:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D7
datatype: f64
name: extract_symbolic_data
arguments: label: D174
datatype: f32[2]
name: extract_symbolic_data
arguments: label: D504
datatype: f64
name: extract_symbolic_data
arguments: label: D430
datatype: string
name: extract_symbolic_data
arguments: label: D247
datatype: f32[2]
name: extract_symbolic_data
arguments: label: D425
datatype: f32[2]
name: extract_symbolic_data
arguments: label: D19
datatype: f64
name: extract_symbolic_data
arguments: label: D14
datatype: f64
name: extract_symbolic_data
arguments: label: D402
datatype: f64
name: extract_symbolic_data
arguments: label: D521
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D436
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D150
datatype: f64
name: extract_symbolic_data
arguments: label: D342
datatype: f64
name: extract_symbolic_data
arguments: label: D216
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D359
datatype: f64
name: extract_symbolic_data
arguments: label: D332
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D529
datatype: f64
name: extract_symbolic_data
arguments: label: D48
datatype: f64
name: extract_symbolic_data
arguments: label: D135
datatype: f64
name: extract_symbolic_data
arguments: label: D476
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D481
datatype: byte[8]

tool: D7: 0.7

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

tool: D504: 1

tool: D430: inverse_error_func: The value out of the range of the function

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

tool: {"D425": [0.0,0.0]}

tool: D19: 2

tool: D14: 1.641345311

tool: D402: 3.429567803

tool: {"D521": [0x8b,0xe3,0x67,0xf3,0x9d,0xff,0xf9,0xbf]}

tool: {"D436": [0x4b,0x05,0xf9,0xff,0x8f,0x88,0xff,0xbf]}

tool: D150: 1.6370678

tool: D342: 3.5438892

tool: {"D216": [0x82,0x6f,0x28,0xe9,0x52,0xfd,0xc1,0xbf]}

tool: D359: 0.914624893

tool: {"D332": [0x5b,0xe5,0xca,0x1f,0x5a,0x53,0xfa,0xbf]}

tool: D529: 0.886226899

tool: D48: 0.012229801

tool: D135: 1.442710462

tool: {"D476": [0x5c,0x99,0x4b,0x05,0x70,0xf2,0x00,0xc0]}

tool: {"D481": [0x6d,0x9b,0x42,0x50,0xd7,0x0d,0xf2,0x3f]}

assistant: ```c
double inverse_error_func(double y) {
  double x = 0.0;
  double z = 0.0;
  double y0 = 0.7;
  static const double a[4] = {0.886226899, -1.645349621, 0.914624893, -0.140543331};
  static const double b[4] = {-2.118377725, 1.442710462, -0.329097515, 0.012229801};
  static const double c[4] = {-1.970840454, -1.624906493, 3.429567803, 1.641345311};
  static const double d[2] = {3.543889200, 1.637067800};
  if ((y < -1.0) || (1.0 < y)) {
    printf("inverse_error_func: The value out of the range of the function");
    x = log(-1.0);
    return (x);
  } else if ((y == -1.0) || (1.0 == y)) {
    x = -y * log(0.0);
    return (x);
  } else if ((-1.0 < y) && (y < -y0)) {
    z = sqrt(-log((1.0 + y) / 2.0));
    x = -(((c[3] * z + c[2]) * z + c[1]) * z + c[0]) / ((d[1] * z + d[0]) * z + 1.0);
  } else {
    if ((-y0 <= y) && (y <= y0)) {
      z = y * y;
      x = y * (((a[3] * z + a[2]) * z + a[1]) * z + a[0]) / ((((b[3] * z + b[3]) * z + b[1]) * z + b[0]) * z + 1.0);
    } else if ((y0 < y) && (y < 1.0)) {
      z = sqrt(-log((1.0 - y) / 2.0));
      x = (((c[3] * z + c[2]) * z + c[1]) * z + c[0]) / ((d[1] * z + d[0]) * z + 1.0);
    }
  }
  x = x - (erf(x) - y) / (2.0 / sqrt(3.14159265358979323846) * gp_exp(-x * x));
  x = x - (erf(x) - y) / (2.0 / sqrt(3.14159265358979323846) * gp_exp(-x * x));
  x = x - (erf(x) - y) / (2.0 / sqrt(3.14159265358979323846) * gp_exp(-x * x));
  x = x - (erf(x) - y) / (2.0 / sqrt(3.14159265358979323846) * gp_exp(-x * x));
  return (x);
}
```