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

```asm
<add_u_v_term_l_2>:
  endbr64
  push   %r15
  mov    %edi,%r11d
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %esi,%ebx
  imul   %r11d,%ebx
  sub    $0xa8,%rsp
  mov    0x130(%rsp),%rbp
  mov    0x108(%rsp),%r14
  mov    %rdx,0x20(%rsp)
  mov    %r8,%rdx
  mov    0x110(%rsp),%r15
  mov    0x118(%rsp),%r10
  mov    %rcx,0x28(%rsp)
  mov    %r9,%rcx
  mov    %rbp,0x50(%rsp)
  mov    0x138(%rsp),%rbp
  mov    0x100(%rsp),%rax
  mov    %r14,0x38(%rsp)
  mov    %rbp,0x58(%rsp)
  mov    0x140(%rsp),%rbp
  mov    %r15,0x40(%rsp)
  mov    0xe0(%rsp),%r8
  mov    %rbp,0x60(%rsp)
  mov    0x148(%rsp),%rbp
  mov    %r10,0x48(%rsp)
  mov    0xe8(%rsp),%r9
  mov    %rbp,0x68(%rsp)
  mov    0x150(%rsp),%rbp
  mov    %rax,0x30(%rsp)
  mov    0xf0(%rsp),%rdi
  mov    0xf8(%rsp),%rsi
  mov    0x120(%rsp),%r13
  mov    0x128(%rsp),%r12
  mov    %rbp,0x70(%rsp)
  mov    0x158(%rsp),%rbp
  mov    0x1b0(%rsp),%r11d
  movsd  %xmm1,0x8(%rsp)
  mov    0x178(%rsp),%r10
  mov    0x190(%rsp),%r15
  movsd  %xmm2,0x10(%rsp)
  mov    %rbp,0x78(%rsp)
  mov    0x160(%rsp),%rbp
  mov    0x198(%rsp),%r14
  movsd  %xmm3,0x18(%rsp)
  mov    %rbp,0x80(%rsp)
  mov    0x168(%rsp),%rbp
  mov    %rbp,0x88(%rsp)
  mov    0x170(%rsp),%rbp
  test   %r11d,%r11d
  jne    L17
  movsd  %xmm0,0x98(%rsp)
  sub    $0x8,%rsp
  push   %r10
  mov    %r10,0xa0(%rsp)
  push   %rbp
  push   %rbx
  call   <dmat_mul_a2@plt>
  add    $0x18,%rsp
  push   %r14
  push   %r15
  push   %rbx
  mov    0x68(%rsp),%r9
  mov    0x60(%rsp),%r8
  mov    0x58(%rsp),%rcx
  mov    0x50(%rsp),%rdx
  mov    0x40(%rsp),%rdi
  mov    0x48(%rsp),%rsi
  call   <dmat_mul_a2@plt>
  add    $0x18,%rsp
  mov    %r12,%r9
  mov    %r13,%r8
  push   %rbx
  movsd  D3(%rip),%xmm0
  mov    %r14,%rcx
  mov    %r15,%rdx
  mov    0xa0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <dmat_scale_add_1x2@plt>
  pop    %r9
  pop    %r10
  movsd  0x98(%rsp),%xmm4
L69:
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm4
  jp     L45
  jne    L45
L72:
  movsd  0x8(%rsp),%xmm5
  ucomisd %xmm1,%xmm5
  jp     L0
  jne    L0
L67:
  movsd  0x10(%rsp),%xmm6
  ucomisd %xmm1,%xmm6
  jp     L46
  jne    L46
L108:
  movsd  0x18(%rsp),%xmm7
  ucomisd %xmm1,%xmm7
  jp     L16
  jne    L16
  add    $0xa8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L17:
  movsd  %xmm0,0x98(%rsp)
  sub    $0x8,%rsp
  push   $0x0
  push   $0xffffffffffffffff
  push   %r10
  mov    %r10,0xb0(%rsp)
  push   %rbp
  push   %rbx
  call   <dmat_mul_a3@plt>
  add    $0x28,%rsp
  push   $0x0
  push   $0xffffffffffffffff
  push   %r14
  push   %r15
  push   %rbx
  mov    0x78(%rsp),%r9
  mov    0x70(%rsp),%r8
  mov    0x68(%rsp),%rcx
  mov    0x60(%rsp),%rdx
  mov    0x58(%rsp),%rsi
  mov    0x50(%rsp),%rdi
  call   <dmat_mul_a3@plt>
  add    $0x30,%rsp
  mov    %ebx,%ecx
  mov    %r13,%rdx
  mov    $0x1,%r8d
  mov    %r15,%rsi
  mov    %rbp,%rdi
  call   <dsym_add@plt>
  xor    %r8d,%r8d
  mov    %ebx,%ecx
  mov    %r12,%rdx
  mov    0x90(%rsp),%rdi
  mov    %r14,%rsi
  call   <dsym_add@plt>
  mov    $0xffffffff,%edx
  mov    %ebx,%esi
  mov    %r12,%rdi
  call   <dmat_sym@plt>
  movsd  0x98(%rsp),%xmm4
  jmp    L69
  nopl   0x0(%rax)
L45:
  sub    $0x8,%rsp
  movapd %xmm4,%xmm0
  mov    %r12,%rcx
  mov    %r13,%rdx
  push   %rbx
  mov    0x68(%rsp),%rsi
  mov    0x60(%rsp),%rdi
  mov    %rsi,%r9
  mov    %rdi,%r8
  call   <dmat_scale_add_1x2@plt>
  pop    %rdi
  pxor   %xmm1,%xmm1
  pop    %r8
  jmp    L72
  nopl   0x0(%rax,%rax,1)
L16:
  mov    0x88(%rsp),%rsi
  mov    %ebx,0xe0(%rsp)
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    0x80(%rsp),%rdi
  movsd  0x18(%rsp),%xmm0
  add    $0xa8,%rsp
  pop    %rbx
  mov    %rsi,%r9
  pop    %rbp
  mov    %rdi,%r8
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10b0 <dmat_scale_add_1x2@plt>
  nop
L46:
  sub    $0x8,%rsp
  mov    %r13,%rdx
  mov    %r12,%rcx
  push   %rbx
  mov    0x88(%rsp),%rsi
  mov    0x80(%rsp),%rdi
  movsd  0x20(%rsp),%xmm0
  mov    %rsi,%r9
  mov    %rdi,%r8
  call   <dmat_scale_add_1x2@plt>
  pop    %rax
  pxor   %xmm1,%xmm1
  pop    %rdx
  jmp    L108
  nopw   0x0(%rax,%rax,1)
L0:
  sub    $0x8,%rsp
  mov    %r12,%rcx
  mov    %r13,%rdx
  push   %rbx
  mov    0x78(%rsp),%rsi
  mov    0x70(%rsp),%rdi
  movsd  0x18(%rsp),%xmm0
  mov    %rsi,%r9
  mov    %rdi,%r8
  call   <dmat_scale_add_1x2@plt>
  pop    %rcx
  pxor   %xmm1,%xmm1
  pop    %rsi
  jmp    L67
```

tool_calls: name: unpack_data
arguments: tag: D3
type_guessed: f64

tool: D3: 1

assistant: ```c
void add_u_v_term_l_2(int n_quad, int n_stokes, double **ax11, double **ax12, double **bx11, double **bx12, double **bx21, double **bx22, double **ay11, double **ay12, double **by11, double **by12, double **by21, double **by22, double **cy11, double **cy12, double **uy11, double **uy12, double **vy11, double **vy12, double **wy11, double **wy12, double **xy11, double **xy12, double **w111, double **w112, double **w121, double **w122, double **w211, double **w212, double **w221, double **w222, double c0, double c1, double c2, double c3, int symmetric) {
  int n_quad_v;
  n_quad_v = n_quad * n_stokes;
  if (!symmetric) {
    dmat_mul_a2(ay11, ay12, bx11, bx12, bx21, bx22, n_quad_v, w111, w112);
    dmat_mul_a2(ax11, ax12, by11, by12, by21, by22, n_quad_v, w211, w212);
    dmat_scale_add_1x2(w111, w112, w211, w212, cy11, cy12, 1., n_quad_v);
  } else {
    dmat_mul_a3(ay11, ay12, bx11, bx12, bx21, bx22, n_quad_v, w111, w112, -1., 0);
    dmat_mul_a3(ax11, ax12, by11, by12, by21, by22, n_quad_v, w211, w212, -1., 0);
    dsym_add(w111, w211, cy11, n_quad_v, 1);
    dsym_add(w112, w212, cy12, n_quad_v, 0);
    dmat_sym(cy12, n_quad_v, -1.);
  }
  if (c0 != 0.)
    dmat_scale_add_1x2(uy11, uy12, cy11, cy12, uy11, uy12, c0, n_quad_v);
  if (c1 != 0.)
    dmat_scale_add_1x2(vy11, vy12, cy11, cy12, vy11, vy12, c1, n_quad_v);
  if (c2 != 0.)
    dmat_scale_add_1x2(wy11, wy12, cy11, cy12, wy11, wy12, c2, n_quad_v);
  if (c3 != 0.)
    dmat_scale_add_1x2(xy11, xy12, cy11, cy12, xy11, xy12, c3, n_quad_v);
}
```