user: Translate the below assembly code into C programming language:

```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 D12(%rip),%xmm0
  ja     L2
L24:
  movsd  0x10(%rsp),%xmm0
  xorpd  D53(%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  D57(%rip),%xmm1
  movapd %xmm0,%xmm6
  movsd  0x28(%rsp),%xmm2
  divsd  %xmm3,%xmm5
  movsd  D84(%rip),%xmm0
  divsd  0x10(%rsp),%xmm0
  addsd  %xmm0,%xmm1
  mulsd  %xmm1,%xmm6
  movsd  D15(%rip),%xmm1
  subsd  %xmm6,%xmm1
  addsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm0
  mulsd  %xmm5,%xmm1
  divsd  D102(%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  D72(%rip),%xmm0
  movapd %xmm3,%xmm1
  call   <Sexv@plt>
  movsd  0x18(%rsp),%xmm5
  movsd  0x8(%rsp),%xmm1
  mulsd  D37(%rip),%xmm1
  movsd  0x30(%rsp),%xmm4
  subsd  %xmm5,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm0,%xmm1
  jbe    L21
  movsd  0x38(%rsp),%xmm0
  add    $0x48,%rsp
  addsd  %xmm5,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L21:
  movapd %xmm4,%xmm0
  call   <w_WR@plt>
  movsd  %xmm0,0x8(%rsp)
  movsd  0x10(%rsp),%xmm0
  call   <Sdebye@plt>
  movapd %xmm0,%xmm1
  movsd  D17(%rip),%xmm0
  subsd  0x8(%rsp),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  0x38(%rsp),%xmm0
  add    $0x48,%rsp
  ret
  nopl   0x0(%rax,%rax,1)
L2:
  movsd  D79(%rip),%xmm1
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm3,0x20(%rsp)
  movsd  %xmm4,0x18(%rsp)
  call   <pow@plt>
  mulsd  D69(%rip),%xmm0
  movsd  0x28(%rsp),%xmm2
  movsd  0x18(%rsp),%xmm4
  movsd  0x20(%rsp),%xmm3
  movapd %xmm0,%xmm5
  mulsd  %xmm2,%xmm5
  jmp    L24
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D12
type_infered: f64[2]
name: extract_symbolic_data
arguments: data_label: D53
type_infered: byte[16]
name: extract_symbolic_data
arguments: data_label: D57
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D84
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D15
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D102
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D72
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D37
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_label: D17
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D79
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_label: D69
type_infered: f64

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

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

tool: D57: 11

tool: D84: 7

tool: D15: 4

tool: D102: 15

tool: D72: 1.05

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

tool: D17: 1

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

tool: D69: 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;
  }
}
```