user: What would the C source look like for the assembly code provided here:

```asm
<fe_Sigma_at>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x48,%rsp
  mov    %rsi,%rax
  movsd  %xmm0,0x10(%rsp)
  sub    $0x1,%ecx
  mov    $0x1,%esi
  shl    %cl,%esi
  mov    %esi,0x38(%rsp)
  mov    $0x2,%r14d
  shl    %cl,%r14d
  sub    $0x1,%r14d
  test   %edx,%edx
  jle    L13
  mov    %rdi,%r12
  mov    %rax,%r13
  lea    -0x1(%rdx),%edx
  lea    0x8(%rax,%rdx,8),%r15
  pxor   %xmm4,%xmm4
  cvtsi2sd %esi,%xmm4
  movsd  %xmm4,0x30(%rsp)
  lea    -0x1(%rsi),%eax
  mov    %eax,0x3c(%rsp)
L18:
  movsd  0x30(%rsp),%xmm2
  mulsd  0x0(%r13),%xmm2
  movsd  %xmm2,0x8(%rsp)
  movapd %xmm2,%xmm0
  call   <ceil@plt>
  mov    0x38(%rsp),%esi
  mov    %eax,%edi
  call   <mini@plt>
  mov    %eax,%edi
  mov    $0x1,%esi
  call   <maxi@plt>
  mov    %eax,%ebx
  movsd  0x8(%rsp),%xmm0
  subsd  D21(%rip),%xmm0
  call   <ceil@plt>
  mov    0x3c(%rsp),%esi
  mov    %eax,%edi
  call   <mini@plt>
  mov    %eax,%edi
  mov    $0x1,%esi
  call   <maxi@plt>
  mov    %eax,%ebp
  pxor   %xmm1,%xmm1
  cvtsi2sd %ebx,%xmm1
  movsd  0x8(%rsp),%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm3
  addsd  D25(%rip),%xmm3
  movsd  %xmm3,0x18(%rsp)
  movapd %xmm3,%xmm0
  call   <hat@plt>
  call   <sq@plt>
  movapd %xmm0,%xmm4
  mulsd  0x10(%rsp),%xmm4
  movsd  %xmm4,0x20(%rsp)
  pxor   %xmm1,%xmm1
  cvtsi2sd %ebp,%xmm1
  movsd  0x8(%rsp),%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm6
  addsd  D21(%rip),%xmm6
  movsd  %xmm6,0x8(%rsp)
  movapd %xmm6,%xmm0
  call   <hat@plt>
  call   <sq@plt>
  movapd %xmm0,%xmm7
  mulsd  0x10(%rsp),%xmm7
  movsd  %xmm7,0x28(%rsp)
  movsd  0x18(%rsp),%xmm0
  call   <hat@plt>
  movsd  %xmm0,0x18(%rsp)
  movsd  0x8(%rsp),%xmm0
  call   <hat@plt>
  movapd %xmm0,%xmm1
  lea    -0x1(%rbx),%eax
  imul   %r14d,%eax
  lea    (%rax,%rbx,1),%edx
  add    %edx,%edx
  movslq %edx,%rdx
  lea    -0x10(%r12,%rdx,8),%rdx
  movsd  0x20(%rsp),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  lea    0x0(%rbp,%rbp,1),%edx
  lea    -0x1(%rdx),%ecx
  imul   %r14d,%ecx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    -0x8(%r12,%rdx,8),%rdx
  movsd  0x28(%rsp),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  lea    (%rcx,%rbx,2),%edx
  movslq %edx,%rdx
  lea    -0x10(%r12,%rdx,8),%rdx
  movsd  0x18(%rsp),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  0x10(%rsp),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  add    %ebp,%eax
  add    %eax,%eax
  cltq
  movsd  %xmm0,-0x8(%r12,%rax,8)
  add    $0x8,%r13
  cmp    %r15,%r13
  jne    L18
L13:
  add    $0x48,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: parse_data
arguments: tag: D21
data_type: f64
name: parse_data
arguments: tag: D25
data_type: byte[8]

tool: D21: 0.5

tool: {"D25": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

assistant: ```c
void fe_Sigma_at(double *S, double *y, int N, double dt, int L) {
  int n = 1 << (L - 1);
  int d = 2 * n - 1;
  int t;
  int i, j;
  double yn;
  double a, b, c;
  for (t = 0; t < N; t++) {
    yn = y[t] * (double)n;
    i = maxi(mini(((int)ceil(yn)), n), 1);
    j = maxi(mini(((int)ceil(yn - 0.5)), n - 1), 1);
    a = sq(hat(yn - i + 1)) * dt;
    b = sq(hat(yn - j + 0.5)) * dt;
    c = hat(yn - i + 1) * hat(yn - j + 0.5) * dt;
    S[(2 * i - 2) * d + 2 * i - 2] += a;
    S[(2 * j - 1) * d + 2 * j - 1] += b;
    S[(2 * i - 2) * d + 2 * j - 1] = S[(2 * j - 1) * d + 2 * i - 2] += c;
  }
}
```