user: Demonstrate the C code that generates the assembly output below:

```asm
<kernel_ludcmp>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rsi,-0x28(%rsp)
  mov    %rdx,-0x18(%rsp)
  test   %edi,%edi
  jle    L133
  mov    %edi,%r11d
  mov    %rsi,%rbx
  lea    0x3e80(%rsi),%r10
  mov    %rsi,%rbp
  mov    $0xffffffff,%r15d
  mov    $0x0,%r14d
  mov    $0x0,%esi
  lea    -0x1(%rdi),%eax
  mov    %eax,-0x1c(%rsp)
  mov    %rcx,-0x10(%rsp)
  mov    %r8,-0x8(%rsp)
  jmp    L42
L14:
  movsd  (%rcx),%xmm1
  test   %r8d,%r8d
  jle    L175
  mov    %r9,%rdx
  mov    %r10,%rax
L150:
  movsd  (%rax),%xmm0
  mulsd  (%rdx),%xmm0
  subsd  %xmm0,%xmm1
  add    $0x8,%rax
  add    $0x3e80,%rdx
  cmp    %rcx,%rax
  jne    L150
L175:
  add    $0x3e88,%rdi
  add    $0x8,%rcx
  add    $0x8,%r9
  mov    %r8d,%eax
L157:
  movslq %eax,%rdx
  divsd  (%rdi),%xmm1
  movsd  %xmm1,(%r12,%rdx,8)
  lea    0x1(%rax),%r8d
  cmp    %esi,%eax
  jne    L14
L112:
  add    $0x1,%r14
  add    $0x3e80,%rbp
  add    $0x1,%r15d
  add    $0x3e80,%r10
  mov    %r13d,%esi
L42:
  cmp    %r11d,%esi
  jge    L167
  mov    %rbp,%r8
  lea    0x0(,%r14,8),%rdi
  mov    -0x1c(%rsp),%eax
  sub    %esi,%eax
  lea    0x1(%r14,%rax,1),%r9
  shl    $0x3,%r9
  mov    %r15d,%eax
  lea    0x8(%rbp,%rax,8),%rcx
L126:
  movsd  (%r8,%rdi,1),%xmm1
  test   %esi,%esi
  jle    L65
  lea    (%rdi,%rbx,1),%rdx
  mov    %rbp,%rax
L23:
  movsd  (%rax),%xmm0
  mulsd  (%rdx),%xmm0
  subsd  %xmm0,%xmm1
  add    $0x8,%rax
  add    $0x3e80,%rdx
  cmp    %rcx,%rax
  jne    L23
L65:
  movsd  %xmm1,(%r8,%rdi,1)
  add    $0x8,%rdi
  cmp    %r9,%rdi
  jne    L126
L167:
  lea    0x1(%rsi),%r13d
  cmp    %r13d,%r11d
  je     L130
  test   %r13d,%r13d
  jle    L112
  mov    %r10,%r12
  movsd  (%r10),%xmm1
  lea    0x8(%r10),%rcx
  mov    -0x28(%rsp),%rax
  lea    0x8(%rax),%r9
  mov    %rbx,%rdi
  mov    $0x0,%eax
  jmp    L157
L130:
  mov    -0x10(%rsp),%r13
  mov    -0x8(%rsp),%r12
  mov    %esi,%r9d
  mov    $0x0,%r8d
  mov    -0x18(%rsp),%r10
  jmp    L40
L9:
  mov    %rax,%r8
L40:
  movsd  (%r10,%r8,8),%xmm1
  test   %r8d,%r8d
  jle    L71
  mov    %rbx,%rdi
  lea    -0x1(%r8),%ecx
  mov    $0x0,%eax
L97:
  movsd  (%rdi,%rax,8),%xmm0
  mulsd  (%r12,%rax,8),%xmm0
  subsd  %xmm0,%xmm1
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rcx,%rdx
  jne    L97
L71:
  movsd  %xmm1,(%r12,%r8,8)
  lea    0x1(%r8),%rax
  add    $0x3e80,%rbx
  cmp    %r9,%r8
  jne    L9
  movslq %esi,%rcx
  add    $0x1,%esi
  imul   $0x3e88,%rcx,%rax
  add    -0x28(%rsp),%rax
  mov    %rax,%rdi
  mov    %rcx,%rdx
  neg    %rdx
  lea    (%rax,%rdx,8),%r8
L185:
  movsd  (%r12,%rcx,8),%xmm1
  cmp    %esi,%r11d
  jle    L22
  mov    %r8,%rdx
  movslq %esi,%rax
L76:
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  0x0(%r13,%rax,8),%xmm0
  subsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %eax,%r11d
  jg     L76
L22:
  divsd  (%rdi),%xmm1
  movsd  %xmm1,0x0(%r13,%rcx,8)
  sub    $0x1,%rcx
  sub    $0x1,%esi
  sub    $0x3e88,%rdi
  sub    $0x3e80,%r8
  test   %ecx,%ecx
  jns    L185
L133:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void kernel_ludcmp(int n, double A[2000 + 0][2000 + 0], double b[2000 + 0], double x[2000 + 0], double y[2000 + 0]) {
  int i, j, k;
  double w;
#pragma scop
  for (i = 0; i < n; i++) {
    for (j = 0; j < i; j++) {
      w = A[i][j];
      for (k = 0; k < j; k++) {
        w -= A[i][k] * A[k][j];
      }
      A[i][j] = w / A[j][j];
    }
    for (j = i; j < n; j++) {
      w = A[i][j];
      for (k = 0; k < i; k++) {
        w -= A[i][k] * A[k][j];
      }
      A[i][j] = w;
    }
  }
  for (i = 0; i < n; i++) {
    w = b[i];
    for (j = 0; j < i; j++)
      w -= A[i][j] * y[j];
    y[i] = w;
  }
  for (i = n - 1; i >= 0; i--) {
    w = y[i];
    for (j = i + 1; j < n; j++)
      w -= A[i][j] * x[j];
    x[i] = w / A[i][i];
  }
#pragma endscop
}
```