user: What is the c source code of the assembly code below?

```asm
<Sexv_new>:
  endbr64
  sub    $0x48,%rsp
  movapd %xmm1,%xmm3
  movapd %xmm2,%xmm1
  movsd  %xmm0,0x8(%rsp)
  movapd %xmm3,%xmm0
  movsd  %xmm2,0x20(%rsp)
  movsd  %xmm3,0x18(%rsp)
  call   <Rgsquare@plt>
  mov    %eax,%edi
  call   <sqrt@plt>
  movsd  0x8(%rsp),%xmm4
  movsd  0x18(%rsp),%xmm3
  movsd  0x20(%rsp),%xmm2
  mulsd  %xmm0,%xmm4
  movapd %xmm3,%xmm0
  divsd  %xmm2,%xmm0
  movapd %xmm2,%xmm5
  movapd %xmm4,%xmm6
  mulsd  %xmm4,%xmm6
  movsd  %xmm6,0x10(%rsp)
  comisd D102(%rip),%xmm0
  ja     L15
L12:
  movsd  0x10(%rsp),%xmm0
  xorpd  D104(%rip),%xmm0
  movsd  %xmm4,0x30(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm3,0x20(%rsp)
  movsd  %xmm5,0x18(%rsp)
  call   <exp@plt>
  movsd  0x20(%rsp),%xmm3
  movsd  0x18(%rsp),%xmm5
  movsd  D32(%rip),%xmm1
  movapd %xmm0,%xmm6
  movsd  0x28(%rsp),%xmm2
  divsd  %xmm3,%xmm5
  movsd  D97(%rip),%xmm0
  divsd  0x10(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  mulsd  %xmm1,%xmm6
  movsd  D73(%rip),%xmm1
  subsd  %xmm6,%xmm1
  addsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm0
  mulsd  %xmm5,%xmm1
  divsd  D20(%rip),%xmm1
  movsd  %xmm1,0x38(%rsp)
  movapd %xmm3,%xmm1
  call   <Sexv@plt>
  movsd  0x20(%rsp),%xmm3
  movsd  0x28(%rsp),%xmm2
  movsd  %xmm0,0x18(%rsp)
  movsd  0x8(%rsp),%xmm0
  mulsd  D14(%rip),%xmm0
  movapd %xmm3,%xmm1
  call   <Sexv@plt>
  movsd  0x18(%rsp),%xmm5
  movsd  0x8(%rsp),%xmm1
  mulsd  D26(%rip),%xmm1
  movsd  0x30(%rsp),%xmm4
  subsd  %xmm5,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  jbe    L5
  movsd  0x38(%rsp),%xmm0
  add    $0x48,%rsp
  addsd  %xmm5,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L5:
  movapd %xmm4,%xmm0
  call   <w_WR@plt>
  movsd  %xmm0,0x8(%rsp)
  movsd  0x10(%rsp),%xmm0
  call   <Sdebye@plt>
  movapd %xmm0,%xmm1
  movsd  D64(%rip),%xmm0
  subsd  0x8(%rsp),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  0x38(%rsp),%xmm0
  add    $0x48,%rsp
  ret
  nopl   0x0(%rax,%rax,1)
L15:
  movsd  D58(%rip),%xmm1
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm3,0x20(%rsp)
  movsd  %xmm4,0x18(%rsp)
  call   <pow@plt>
  mulsd  D38(%rip),%xmm0
  movsd  0x28(%rsp),%xmm2
  movsd  0x18(%rsp),%xmm4
  movsd  0x20(%rsp),%xmm3
  movapd %xmm0,%xmm5
  mulsd  %xmm2,%xmm5
  jmp    L12
```

tool_calls: name: parse_data
arguments: data_tag: D102
type: f64[2]
name: parse_data
arguments: data_tag: D104
type: byte[16]
name: parse_data
arguments: data_tag: D32
type: f64
name: parse_data
arguments: data_tag: D97
type: f64
name: parse_data
arguments: data_tag: D73
type: f64
name: parse_data
arguments: data_tag: D20
type: f64
name: parse_data
arguments: data_tag: D14
type: f64
name: parse_data
arguments: data_tag: D26
type: byte[8]
name: parse_data
arguments: data_tag: D64
type: f64
name: parse_data
arguments: data_tag: D58
type: byte[8]
name: parse_data
arguments: data_tag: D38
type: f64

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

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

tool: D32: 11

tool: D97: 7

tool: D73: 4

tool: D20: 15

tool: D14: 1.05

tool: {"D26": [0xa0,0x99,0x99,0x99,0x99,0x99,0xa9,0x3f]}

tool: D64: 1

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

tool: D38: 3.06

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;
  }
}
```