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

```asm
<Sexv_new>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x70,%rsp
  movsd  %xmm0,-0x58(%rbp)
  movsd  %xmm1,-0x60(%rbp)
  movsd  %xmm2,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mov    -0x60(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <Rgsquare@plt>
  mov    %eax,%edi
  call   <sqrt@plt>
  movsd  -0x58(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x60(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  comisd D5(%rip),%xmm0
  jbe    L24
  movsd  -0x60(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  D95(%rip),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movsd  D43(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  jmp    L39
L24:
  movsd  D16(%rip),%xmm0
L39:
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x40(%rbp),%xmm0
  movq   D60(%rip),%xmm1
  movapd %xmm0,%xmm4
  xorpd  %xmm1,%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movsd  D71(%rip),%xmm1
  movapd %xmm1,%xmm2
  divsd  -0x40(%rbp),%xmm2
  movsd  D84(%rip),%xmm1
  addsd  %xmm2,%xmm1
  movapd %xmm0,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  D27(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  D71(%rip),%xmm0
  divsd  -0x40(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mulsd  -0x70(%rbp),%xmm0
  movsd  D2(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x68(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  mov    -0x58(%rbp),%rax
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <Sexv@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  movsd  D24(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movq   %xmm0,%rax
  movsd  -0x68(%rbp),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <Sexv@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  movsd  D16(%rip),%xmm2
  subsd  %xmm2,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L13
  movsd  -0x30(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  jmp    L31
L13:
  mov    -0x48(%rbp),%rax
  movq   %rax,%xmm0
  call   <w_WR@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x10(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <Sdebye@plt>
  movsd  D16(%rip),%xmm1
  subsd  -0x10(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x30(%rbp),%xmm0
  addsd  -0x8(%rbp),%xmm0
L31:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D5
type_guessed: f64[2]
name: read_data
arguments: data_tag: D95
type_guessed: byte[8]
name: read_data
arguments: data_tag: D43
type_guessed: f64
name: read_data
arguments: data_tag: D16
type_guessed: f64
name: read_data
arguments: data_tag: D60
type_guessed: byte[8]
name: read_data
arguments: data_tag: D71
type_guessed: f64
name: read_data
arguments: data_tag: D84
type_guessed: f64
name: read_data
arguments: data_tag: D27
type_guessed: f64
name: read_data
arguments: data_tag: D2
type_guessed: f64
name: read_data
arguments: data_tag: D24
type_guessed: f64

tool: {"D5": [10.0,-0.44]}

tool: {"D95": [0x29,0x5c,0x8f,0xc2,0xf5,0x28,0xdc,0xbf]}

tool: D43: 3.06

tool: D16: 1

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

tool: D71: 7

tool: D84: 11

tool: D27: 4

tool: D2: 15

tool: D24: 1.05

assistant: ```c
double Sexv_new(double q, double L, double b) {
  const double qr = q * sqrt(Rgsquare(L, b));
  const double qr2 = qr * qr;
  const double C = (L / b > 10.0) ? 3.06 * pow(L / b, -0.44) : 1.0;
  const double t9 = C * b / L * (4.0 - exp(-qr2) * (11.0 + 7.0 / qr2) + 7.0 / qr2) / 15.0;
  const double Sexv_orig = Sexv(q, L, b);
  const double del = 1.05;
  const double qdel = (Sexv(q * del, L, b) - Sexv_orig) / (q * (del - 1.0));
  if (qdel < 0) {
    return t9 + Sexv_orig;
  } else {
    const double w = w_WR(qr);
    const double t10 = Sdebye(qr * qr) * (1.0 - w);
    return t9 + t10;
  }
}
```