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

```asm
<lud_omp>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  mov    %rdi,%r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  and    $0xffffffffffffffc0,%rsp
  sub    $0xa00,%rsp
  mov    %esi,0x128(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x9f8(%rsp)
  xor    %eax,%eax
  lea    -0x10(%rsi),%eax
  mov    %eax,0x70(%rsp)
  test   %eax,%eax
  jle    L38
  mov    %esi,%eax
  lea    0x1(%rsi),%edx
  mov    %esi,%ebx
  mov    %r15,0x120(%rsp)
  shl    $0x4,%eax
  lea    0x0(,%rbx,8),%ecx
  mov    %ebx,0xa4(%rsp)
  movslq %eax,%rdi
  sub    %ebx,%eax
  mov    %ecx,0xa0(%rsp)
  mov    %rdi,0x48(%rsp)
  lea    0x40(,%rdi,4),%rdi
  mov    %rdi,0x50(%rsp)
  movslq %esi,%rdi
  imul   $0xe,%ebx,%ecx
  mov    %edx,%esi
  shl    $0x4,%esi
  mov    %eax,0x60(%rsp)
  lea    (%rbx,%rbx,1),%eax
  mov    %esi,0x64(%rsp)
  sub    $0x10,%esi
  movslq %esi,%rdx
  mov    %esi,0xb0(%rsp)
  lea    0x0(,%rdx,4),%rsi
  mov    %eax,0x68(%rsp)
  add    %ebx,%eax
  mov    %rsi,0x40(%rsp)
  lea    0x0(,%rdi,4),%rsi
  lea    (%rbx,%rax,4),%eax
  mov    %rsi,0x100(%rsp)
  add    $0x4,%rsi
  mov    %rdi,0x58(%rsp)
  mov    %ecx,0xe0(%rsp)
  mov    %rsi,0xa8(%rsp)
  mov    %ebx,0x9c(%rsp)
  mov    %rdi,0x90(%rsp)
  movq   $0x0,0xf8(%rsp)
  mov    %eax,0x8(%rsp)
L391:
  mov    0xf8(%rsp),%r14
  mov    0x128(%rsp),%ebx
  mov    %r15,%rdi
  mov    %r14d,%edx
  mov    %ebx,%esi
  mov    %r14d,0x6c(%rsp)
  call   <lud_diagonal_omp@plt>
  mov    0x70(%rsp),%edx
  mov    %r14,%rsi
  sub    %r14d,%edx
  lea    0xf(%rdx),%eax
  cmovns %edx,%eax
  sar    $0x4,%eax
  mov    %eax,0x74(%rsp)
  imul   %eax,%eax
  mov    %eax,0x80(%rsp)
  mov    %ebx,%eax
  sub    %r14d,%eax
  cmp    $0x1f,%eax
  jle    L376
  mov    0x60(%rsp),%edi
  mov    0xa4(%rsp),%ecx
  add    $0x10,%rsi
  movl   $0x0,0x98(%rsp)
  mov    0xa0(%rsp),%r13d
  pxor   %xmm9,%xmm9
  mov    %rsi,0xe8(%rsp)
  mov    %edi,%eax
  mov    0xa8(%rsp),%r11
  add    0x120(%rsp),%r11
  movl   $0x0,0xb4(%rsp)
  add    %ecx,%eax
  mov    %r11,0xd0(%rsp)
  lea    0x5c0(%rsp),%r11
  cltq
  mov    %r11,0xd8(%rsp)
  lea    0x9c0(%rsp),%r11
  add    %r14,%rax
  mov    0x9c(%rsp),%r14d
  mov    %r11,0xc8(%rsp)
  lea    (%r15,%rax,4),%rax
  mov    %rax,0x78(%rsp)
  movslq %ecx,%rax
  add    %r14d,%edi
  lea    0x10(%r14),%r11d
  add    %rsi,%rax
  mov    0x68(%rsp),%esi
  mov    %r11d,0x2c(%rsp)
  lea    0x10(%rbx),%r11d
  lea    (%r15,%rax,4),%rax
  mov    %edi,0x84(%rsp)
  mov    %rax,0x88(%rsp)
  mov    $0x10,%eax
  add    %r13d,%esi
  sub    %ebx,%eax
  mov    %eax,%r10d
  lea    (%r14,%rax,1),%r9d
  mov    %edi,%eax
  sub    0x8(%rsp),%eax
  lea    (%rbx,%rax,1),%edx
  add    $0x10,%eax
  lea    (%rbx,%rsi,1),%edi
  lea    (%rbx,%rdx,1),%ecx
  mov    %eax,0xc(%rsp)
  lea    0x10(%rdx),%eax
  mov    %eax,0x10(%rsp)
  lea    0x10(%rcx),%eax
  lea    (%rbx,%rdi,1),%r8d
  add    $0x10,%edi
  mov    %eax,0x14(%rsp)
  mov    %ebx,%eax
  lea    0x10(%rcx,%rbx,1),%ebx
  lea    0x10(%r8,%rax,1),%eax
  mov    %ebx,0x18(%rsp)
  lea    0x0(%r13,%r10,1),%ebx
  mov    %eax,0x28(%rsp)
  lea    0x600(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  lea    0x5c4(%rsp),%rax
  mov    %ebx,0x34(%rsp)
  lea    0x10(%r13),%ebx
  mov    %edi,0x20(%rsp)
  lea    0x10(%r8),%edi
  mov    %rax,0xc0(%rsp)
  mov    %r11d,%eax
  mov    %ebx,0x30(%rsp)
  add    %r13d,%eax
  lea    0x10(%rsi),%ebx
  mov    %edi,0x24(%rsp)
  lea    (%r11,%r14,1),%edi
  mov    %ebx,0x1c(%rsp)
  mov    %edi,0x3c(%rsp)
  mov    %eax,0x38(%rsp)
L224:
  mov    0xd8(%rsp),%rax
  mov    0x120(%rsp),%rdx
  mov    0x100(%rsp),%rcx
  mov    0xc8(%rsp),%rsi
L9:
  movups 0x10(%rdx),%xmm2
  movups 0x20(%rdx),%xmm1
  add    $0x40,%rax
  movups 0x30(%rdx),%xmm0
  movups (%rdx),%xmm5
  add    %rcx,%rdx
  movaps %xmm2,-0x30(%rax)
  movaps %xmm5,-0x40(%rax)
  movaps %xmm1,-0x20(%rax)
  movaps %xmm0,-0x10(%rax)
  cmp    %rax,%rsi
  jne    L9
  mov    0x2c(%rsp),%edi
  mov    0x98(%rsp),%eax
  mov    %r9d,0x160(%rsp)
  mov    0x20(%rsp),%ebx
  addl   $0x1,0xb4(%rsp)
  add    %eax,%edi
  mov    %edi,0x110(%rsp)
  mov    0x3c(%rsp),%edi
  add    %eax,%ebx
  mov    %ebx,0x154(%rsp)
  mov    0x28(%rsp),%ebx
  add    %eax,%edi
  mov    %edi,0x12c(%rsp)
  mov    0xc(%rsp),%edi
  add    %eax,%ebx
  mov    %ebx,0x15c(%rsp)
  add    %eax,%edi
  mov    %edi,0x130(%rsp)
  mov    0x10(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x134(%rsp)
  mov    0x14(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x138(%rsp)
  mov    0x18(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x13c(%rsp)
  mov    0x34(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x148(%rsp)
  mov    0x30(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x140(%rsp)
  mov    0x38(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x14c(%rsp)
  mov    0x1c(%rsp),%edi
  add    %eax,%edi
  mov    %edi,0x150(%rsp)
  mov    0x24(%rsp),%edi
  add    %eax,%edi
  mov    0x88(%rsp),%rax
  mov    %edi,0x158(%rsp)
  mov    %rax,0x108(%rsp)
  lea    0x10(%r9),%eax
  mov    %eax,0xe4(%rsp)
  mov    0x100(%rsp),%r8
L190:
  movslq 0x160(%rsp),%rdx
  mov    %r15,0xf0(%rsp)
  mov    0xb8(%rsp),%rax
  mov    %rdx,%rsi
  lea    (%r15,%rdx,4),%rdi
  movslq 0x110(%rsp),%rdx
  lea    (%r15,%rdx,4),%r9
  movslq 0x12c(%rsp),%rdx
  lea    (%r15,%rdx,4),%r10
  movslq 0x130(%rsp),%rdx
  lea    (%r15,%rdx,4),%r11
  movslq 0x134(%rsp),%rdx
  lea    (%r15,%rdx,4),%rbx
  movslq 0x138(%rsp),%rdx
  lea    (%r15,%rdx,4),%r12
  movslq 0x13c(%rsp),%rdx
  lea    (%r15,%rdx,4),%r13
  movslq 0x148(%rsp),%rdx
  lea    (%r15,%rdx,4),%r14
  movslq 0x140(%rsp),%rdx
  lea    (%r15,%rdx,4),%rcx
  movslq 0x14c(%rsp),%rdx
  mov    %rcx,0x1b0(%rsp)
  xor    %ecx,%ecx
  lea    (%r15,%rdx,4),%rdx
  mov    %rdx,0x1a0(%rsp)
  movslq 0x150(%rsp),%rdx
  lea    (%r15,%rdx,4),%rdx
  mov    %rdx,0x190(%rsp)
  movslq 0x154(%rsp),%rdx
  lea    (%r15,%rdx,4),%rdx
  mov    %rdx,0x180(%rsp)
  movslq 0x158(%rsp),%rdx
  lea    (%r15,%rdx,4),%rdx
  mov    %rdx,0x178(%rsp)
  movslq 0x15c(%rsp),%rdx
  lea    (%r15,%rdx,4),%rdx
  mov    %rdx,0x170(%rsp)
  mov    0xe0(%rsp),%edx
  add    %esi,%edx
  movslq %edx,%rdx
  lea    (%r15,%rdx,4),%rsi
  mov    %rsi,0x168(%rsp)
  mov    0x108(%rsp),%rsi
  nop
L7:
  movss  (%rdi),%xmm0
  mulss  (%rax),%xmm0
  mov    %ecx,%edx
  add    $0x1,%ecx
  addss  %xmm9,%xmm0
  test   %edx,%edx
  je     L86
  movss  0x4(%rax),%xmm1
  mulss  (%r9),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x1,%edx
  je     L86
  movss  0x8(%rax),%xmm1
  mulss  (%r10),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x2,%edx
  je     L86
  movss  0xc(%rax),%xmm1
  mulss  (%r11),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x3,%edx
  je     L86
  movss  0x10(%rax),%xmm1
  mulss  (%rbx),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x4,%edx
  je     L86
  movss  0x14(%rax),%xmm1
  mulss  (%r12),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x5,%edx
  je     L86
  movss  0x18(%rax),%xmm1
  mulss  0x0(%r13),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x6,%edx
  je     L86
  movss  0x1c(%rax),%xmm1
  mulss  (%r14),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x7,%edx
  je     L86
  mov    0x1b0(%rsp),%r15
  movss  0x20(%rax),%xmm1
  mulss  (%r15),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x8,%edx
  je     L86
  mov    0x1a0(%rsp),%r15
  movss  0x24(%rax),%xmm1
  mulss  (%r15),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x9,%edx
  je     L86
  mov    0x190(%rsp),%r15
  movss  0x28(%rax),%xmm1
  mulss  (%r15),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xa,%edx
  je     L86
  mov    0x180(%rsp),%r15
  movss  0x2c(%rax),%xmm1
  mulss  (%r15),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xb,%edx
  je     L86
  mov    0x178(%rsp),%r15
  movss  0x30(%rax),%xmm1
  mulss  (%r15),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xc,%edx
  je     L86
  mov    0x170(%rsp),%r15
  movss  0x34(%rax),%xmm1
  mulss  (%r15),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xe,%edx
  jne    L86
  mov    0x168(%rsp),%rdx
  movss  0x38(%rax),%xmm1
  mulss  (%rdx),%xmm1
  addss  %xmm1,%xmm0
  nopl   0x0(%rax,%rax,1)
L86:
  movss  (%rsi),%xmm1
  add    $0x40,%rax
  subss  %xmm0,%xmm1
  movss  %xmm1,(%rsi)
  add    %r8,%rsi
  cmp    $0xf,%ecx
  jne    L7
  addl   $0x1,0x160(%rsp)
  mov    0xf0(%rsp),%r15
  addq   $0x4,0x108(%rsp)
  mov    0x160(%rsp),%eax
  addl   $0x1,0x110(%rsp)
  addl   $0x1,0x12c(%rsp)
  addl   $0x1,0x130(%rsp)
  addl   $0x1,0x134(%rsp)
  addl   $0x1,0x138(%rsp)
  addl   $0x1,0x13c(%rsp)
  addl   $0x1,0x148(%rsp)
  addl   $0x1,0x140(%rsp)
  addl   $0x1,0x14c(%rsp)
  addl   $0x1,0x150(%rsp)
  addl   $0x1,0x154(%rsp)
  addl   $0x1,0x158(%rsp)
  addl   $0x1,0x15c(%rsp)
  cmp    %eax,0xe4(%rsp)
  jne    L190
  mov    0x84(%rsp),%eax
  mov    %r15,0x140(%rsp)
  movl   $0x10,0x148(%rsp)
  mov    0x78(%rsp),%r14
  lea    0x1(%rax),%ebx
  lea    0x2(%rax),%edi
  mov    %eax,0x14c(%rsp)
  mov    0xa8(%rsp),%r8
  mov    %ebx,0x15c(%rsp)
  lea    0x3(%rax),%ebx
  mov    %edi,0x158(%rsp)
  lea    0x4(%rax),%edi
  mov    %ebx,0x150(%rsp)
  mov    %edi,0x154(%rsp)
L250:
  mov    0x140(%rsp),%rsi
  movslq 0x14c(%rsp),%rdx
  mov    0x120(%rsp),%rax
  movss  (%r14),%xmm0
  mov    %rdx,%rcx
  lea    (%rsi,%rdx,4),%rdi
  movslq 0x15c(%rsp),%rdx
  divss  (%rax),%xmm0
  mov    0xc0(%rsp),%rax
  movss  %xmm0,(%r14)
  lea    (%rsi,%rdx,4),%r9
  movslq 0x158(%rsp),%rdx
  lea    (%rsi,%rdx,4),%r10
  movslq 0x150(%rsp),%rdx
  lea    (%rsi,%rdx,4),%r11
  movslq 0x154(%rsp),%rdx
  lea    (%rsi,%rdx,4),%rbx
  lea    0x5(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%r12
  lea    0x6(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%r13
  lea    0x7(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%r15
  lea    0x8(%rcx),%edx
  movslq %edx,%rdx
  mov    %r15,0x1b0(%rsp)
  lea    (%rsi,%rdx,4),%rdx
  mov    %rdx,0x1a0(%rsp)
  lea    0x9(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%rdx
  mov    %rdx,0x190(%rsp)
  lea    0xa(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%rdx
  mov    %rdx,0x180(%rsp)
  lea    0xb(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%rdx
  mov    %rdx,0x178(%rsp)
  lea    0xc(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%rdx
  mov    %rdx,0x170(%rsp)
  lea    0xd(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%rdx
  mov    %rdx,0x168(%rsp)
  lea    0xe(%rcx),%edx
  movslq %edx,%rdx
  lea    (%rsi,%rdx,4),%rsi
  xor    %edx,%edx
  mov    %rsi,0x160(%rsp)
  mov    0xd0(%rsp),%rsi
  nopw   0x0(%rax,%rax,1)
L379:
  movss  (%rdi),%xmm0
  mulss  (%rax),%xmm0
  mov    %edx,%ecx
  addss  %xmm9,%xmm0
  test   %rdx,%rdx
  je     L188
  movss  (%r9),%xmm1
  mulss  0x40(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x1,%edx
  je     L188
  movss  (%r10),%xmm1
  mulss  0x80(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x2,%ecx
  je     L188
  movss  (%r11),%xmm1
  mulss  0xc0(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x3,%ecx
  je     L188
  movss  (%rbx),%xmm1
  mulss  0x100(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x4,%ecx
  je     L188
  movss  (%r12),%xmm1
  mulss  0x140(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x5,%ecx
  je     L188
  movss  0x0(%r13),%xmm1
  mulss  0x180(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x6,%ecx
  je     L188
  mov    0x1b0(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x1c0(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x7,%ecx
  je     L188
  mov    0x1a0(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x200(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x8,%ecx
  je     L188
  mov    0x190(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x240(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0x9,%ecx
  je     L188
  mov    0x180(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x280(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xa,%ecx
  je     L188
  mov    0x178(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x2c0(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xb,%ecx
  je     L188
  mov    0x170(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x300(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xc,%ecx
  je     L188
  mov    0x168(%rsp),%r15
  movss  (%r15),%xmm1
  mulss  0x340(%rax),%xmm1
  addss  %xmm1,%xmm0
  cmp    $0xe,%ecx
  jne    L188
  mov    0x160(%rsp),%rcx
  movss  (%rcx),%xmm1
  mulss  0x380(%rax),%xmm1
  addss  %xmm1,%xmm0
  nopl   0x0(%rax,%rax,1)
L188:
  movss  0x4(%r14,%rdx,4),%xmm1
  add    $0x4,%rax
  subss  %xmm0,%xmm1
  divss  (%rsi),%xmm1
  movss  %xmm1,0x4(%r14,%rdx,4)
  add    $0x1,%rdx
  add    %r8,%rsi
  cmp    $0xf,%rdx
  jne    L379
  mov    0x128(%rsp),%eax
  add    0x100(%rsp),%r14
  add    %eax,0x14c(%rsp)
  add    %eax,0x15c(%rsp)
  add    %eax,0x158(%rsp)
  add    %eax,0x150(%rsp)
  add    %eax,0x154(%rsp)
  subl   $0x1,0x148(%rsp)
  jne    L250
  mov    0x40(%rsp),%rbx
  mov    0xb0(%rsp),%edi
  add    %rbx,0x78(%rsp)
  mov    0x140(%rsp),%r15
  add    %edi,0x84(%rsp)
  mov    0x74(%rsp),%ebx
  addq   $0x40,0x88(%rsp)
  addl   $0x10,0x98(%rsp)
  cmp    %ebx,0xb4(%rsp)
  jge    L168
  mov    0xe4(%rsp),%r9d
  jmp    L224
L376:
  mov    0xf8(%rsp),%rax
  mov    0x80(%rsp),%edx
  add    $0x10,%rax
  test   %edx,%edx
  mov    %rax,0xe8(%rsp)
  jne    L275
L417:
  mov    0xe8(%rsp),%rax
  mov    0x50(%rsp),%rbx
  mov    0x48(%rsp),%rdi
  add    %rbx,0x120(%rsp)
  add    %rdi,0x90(%rsp)
  mov    0x64(%rsp),%ebx
  mov    %rax,0xf8(%rsp)
  add    %ebx,0x9c(%rsp)
  add    %ebx,0xa0(%rsp)
  mov    0xb0(%rsp),%ebx
  add    %ebx,0xa4(%rsp)
  cmp    %eax,0x70(%rsp)
  jg     L391
  mov    0x128(%rsp),%eax
  sub    $0x11,%eax
  and    $0xfffffff0,%eax
  lea    0x10(%rax),%edx
L442:
  mov    0x9f8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L71
  mov    0x128(%rsp),%esi
  lea    -0x28(%rbp),%rsp
  mov    %r15,%rdi
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  jmp    1060 <lud_diagonal_omp@plt>
L275:
  lea    0x5c0(%rsp),%rax
  pxor   %xmm9,%xmm9
  mov    %rax,0xd8(%rsp)
  lea    0x9c0(%rsp),%rax
  mov    %rax,0xc8(%rsp)
L168:
  mov    0xe8(%rsp),%rdi
  mov    0x90(%rsp),%rax
  xor    %r11d,%r11d
  lea    0x1c0(%rsp),%rbx
  sub    0x58(%rsp),%rax
  mov    0x100(%rsp),%r9
  movss  %xmm9,0x108(%rsp)
  mov    0xc8(%rsp),%r10
  lea    (%rax,%rdi,1),%r12
  lea    0x5c0(%rsp),%rdi
L225:
  mov    %r11d,%eax
  mov    0x6c(%rsp),%esi
  mov    0xd8(%rsp),%r13
  cltd
  idivl  0x74(%rsp)
  lea    0x1(%rax),%r8d
  lea    0x1(%rdx),%r14d
  shl    $0x4,%r8d
  shl    $0x4,%r14d
  add    %esi,%r8d
  add    %esi,%r14d
  mov    0xf8(%rsp),%rsi
  imul   0x128(%rsp),%r8d
  movslq %r8d,%r8
  lea    (%rsi,%r8,1),%rax
  lea    (%r15,%rax,4),%rsi
  movslq %edx,%rax
  mov    %rbx,%rdx
  shl    $0x4,%rax
  add    %r12,%rax
  lea    (%r15,%rax,4),%rcx
  mov    %r13,%rax
L441:
  movups 0x10(%rcx),%xmm5
  movups 0x20(%rcx),%xmm4
  add    $0x40,%rax
  add    $0x40,%rdx
  movups 0x30(%rcx),%xmm3
  movups (%rcx),%xmm6
  add    %r9,%rcx
  movups 0x10(%rsi),%xmm2
  movups 0x20(%rsi),%xmm1
  movups 0x30(%rsi),%xmm0
  movaps %xmm6,-0x40(%rdx)
  movaps %xmm5,-0x30(%rdx)
  movaps %xmm4,-0x20(%rdx)
  movaps %xmm3,-0x10(%rdx)
  movups (%rsi),%xmm5
  add    %r9,%rsi
  movaps %xmm2,-0x30(%rax)
  movaps %xmm5,-0x40(%rax)
  movaps %xmm1,-0x20(%rax)
  movaps %xmm0,-0x10(%rax)
  cmp    %r10,%rax
  jne    L441
  movslq %r14d,%rax
  add    %r8,%rax
  lea    (%r15,%rax,4),%rdx
L349:
  movss  0x108(%rsp),%xmm6
  mov    %r13,%rcx
  mov    %rbx,%rax
  movss  %xmm6,0x138(%rsp)
  movss  %xmm6,0x15c(%rsp)
  movss  %xmm6,0x158(%rsp)
  movss  %xmm6,0x12c(%rsp)
  movss  %xmm6,0x154(%rsp)
  movss  %xmm6,0x130(%rsp)
  movss  %xmm6,0x148(%rsp)
  movss  %xmm6,0x140(%rsp)
  movss  %xmm6,0x160(%rsp)
  movss  %xmm6,0x134(%rsp)
  movss  %xmm6,0x170(%rsp)
  movss  %xmm6,0x168(%rsp)
  movss  %xmm6,0x178(%rsp)
  movss  %xmm6,0x13c(%rsp)
  movss  %xmm6,0x150(%rsp)
  movss  %xmm6,0x14c(%rsp)
L130:
  movaps 0x20(%rax),%xmm7
  movaps 0x60(%rax),%xmm5
  add    $0x10,%rcx
  add    $0x100,%rax
  movaps -0x100(%rax),%xmm0
  movaps -0xc0(%rax),%xmm6
  movaps %xmm7,%xmm12
  movaps -0x80(%rax),%xmm2
  movaps -0x60(%rax),%xmm4
  shufps $0x88,-0xd0(%rax),%xmm12
  movaps %xmm0,%xmm15
  movaps %xmm6,%xmm13
  movaps -0x40(%rax),%xmm1
  movaps -0x20(%rax),%xmm3
  movaps %xmm2,%xmm11
  shufps $0x88,-0x70(%rax),%xmm11
  movaps %xmm4,%xmm10
  movaps %xmm12,0x1b0(%rsp)
  movaps %xmm5,%xmm12
  shufps $0x88,-0x50(%rax),%xmm10
  shufps $0xdd,-0x70(%rax),%xmm2
  shufps $0xdd,-0x90(%rax),%xmm5
  movaps %xmm5,0x1a0(%rsp)
  movaps %xmm1,%xmm9
  movaps 0x1b0(%rsp),%xmm5
  shufps $0x88,-0xf0(%rax),%xmm15
  shufps $0x88,-0x30(%rax),%xmm9
  shufps $0xdd,-0x50(%rax),%xmm4
  shufps $0xdd,-0x30(%rax),%xmm1
  shufps $0x88,-0xb0(%rax),%xmm13
  movaps %xmm13,0x190(%rsp)
  movaps %xmm15,%xmm13
  shufps $0xdd,%xmm5,%xmm15
  shufps $0x88,-0x90(%rax),%xmm12
  shufps $0x88,%xmm5,%xmm13
  movaps %xmm3,%xmm8
  shufps $0x88,-0x10(%rax),%xmm8
  movaps 0x190(%rsp),%xmm5
  movaps %xmm13,0x1b0(%rsp)
  shufps $0xdd,-0xf0(%rax),%xmm0
  movaps -0x10(%rcx),%xmm14
  shufps $0xdd,-0xd0(%rax),%xmm7
  movaps %xmm5,%xmm13
  shufps $0xdd,%xmm12,%xmm5
  movaps %xmm5,0x110(%rsp)
  movaps %xmm2,%xmm5
  shufps $0x88,%xmm12,%xmm13
  movaps %xmm11,%xmm12
  shufps $0xdd,%xmm10,%xmm11
  shufps $0x88,%xmm4,%xmm5
  shufps $0x88,%xmm10,%xmm12
  movaps %xmm9,%xmm10
  shufps $0xdd,%xmm4,%xmm2
  shufps $0xdd,%xmm8,%xmm9
  shufps $0x88,%xmm8,%xmm10
  movaps %xmm1,%xmm4
  movaps %xmm0,%xmm8
  shufps $0xdd,-0x10(%rax),%xmm3
  shufps $0xdd,-0xb0(%rax),%xmm6
  shufps $0x88,%xmm3,%xmm4
  shufps $0xdd,%xmm3,%xmm1
  shufps $0xdd,%xmm7,%xmm0
  shufps $0x88,%xmm7,%xmm8
  movaps %xmm6,%xmm7
  shufps $0x88,0x1a0(%rsp),%xmm7
  movaps 0x1b0(%rsp),%xmm3
  shufps $0xdd,0x1a0(%rsp),%xmm6
  movaps %xmm13,0x1a0(%rsp)
  shufps $0x88,%xmm13,%xmm3
  movaps 0x1b0(%rsp),%xmm13
  shufps $0xdd,0x1a0(%rsp),%xmm13
  movaps %xmm13,0x180(%rsp)
  movaps %xmm12,%xmm13
  shufps $0xdd,%xmm10,%xmm12
  shufps $0x88,%xmm10,%xmm13
  movaps %xmm8,%xmm10
  shufps $0xdd,%xmm7,%xmm8
  movaps %xmm13,0x190(%rsp)
  shufps $0x88,%xmm7,%xmm10
  movaps %xmm5,%xmm7
  shufps $0xdd,%xmm4,%xmm5
  movaps %xmm5,0x1a0(%rsp)
  movaps 0x110(%rsp),%xmm5
  shufps $0x88,%xmm4,%xmm7
  movaps %xmm15,%xmm4
  shufps $0x88,%xmm5,%xmm4
  shufps $0xdd,%xmm5,%xmm15
  movaps %xmm15,%xmm5
  movaps %xmm11,%xmm15
  shufps $0x88,%xmm9,%xmm15
  shufps $0xdd,%xmm9,%xmm11
  movaps %xmm0,%xmm9
  shufps $0xdd,%xmm6,%xmm0
  shufps $0x88,%xmm6,%xmm9
  movaps %xmm2,%xmm6
  shufps $0xdd,%xmm1,%xmm2
  movaps %xmm11,%xmm13
  movaps %xmm15,0x1b0(%rsp)
  shufps $0x88,%xmm1,%xmm6
  movaps %xmm3,%xmm1
  shufps $0x88,0x190(%rsp),%xmm1
  mulps  %xmm14,%xmm1
  movaps %xmm2,%xmm15
  movss  0x14c(%rsp),%xmm2
  shufps $0xdd,0x190(%rsp),%xmm3
  mulps  %xmm14,%xmm3
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm10,%xmm1
  shufps $0xdd,%xmm7,%xmm10
  shufps $0x88,%xmm7,%xmm1
  mulps  %xmm14,%xmm1
  mulps  %xmm14,%xmm10
  movss  %xmm2,0x14c(%rsp)
  movss  0x150(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm4,%xmm1
  shufps $0x88,0x1b0(%rsp),%xmm1
  mulps  %xmm14,%xmm1
  movss  %xmm2,0x150(%rsp)
  movss  0x13c(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm9,%xmm1
  shufps $0xdd,%xmm6,%xmm9
  shufps $0x88,%xmm6,%xmm1
  mulps  %xmm14,%xmm1
  mulps  %xmm14,%xmm9
  movss  %xmm2,0x13c(%rsp)
  movss  0x178(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps 0x180(%rsp),%xmm1
  shufps $0x88,%xmm12,%xmm1
  mulps  %xmm14,%xmm1
  movss  %xmm2,0x178(%rsp)
  movss  0x168(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm8,%xmm1
  shufps $0x88,0x1a0(%rsp),%xmm1
  mulps  %xmm14,%xmm1
  movss  %xmm2,0x168(%rsp)
  movss  0x170(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm5,%xmm1
  shufps $0xdd,%xmm13,%xmm5
  shufps $0x88,%xmm13,%xmm1
  mulps  %xmm14,%xmm1
  mulps  %xmm14,%xmm5
  movss  %xmm2,0x170(%rsp)
  movss  0x134(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm0,%xmm1
  shufps $0xdd,%xmm15,%xmm0
  shufps $0x88,%xmm15,%xmm1
  mulps  %xmm14,%xmm1
  mulps  %xmm14,%xmm0
  movss  %xmm2,0x134(%rsp)
  movss  0x160(%rsp),%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm11
  shufps $0x55,%xmm1,%xmm11
  addss  %xmm2,%xmm11
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm11,%xmm2
  addss  %xmm1,%xmm2
  movss  %xmm2,0x160(%rsp)
  movaps %xmm3,%xmm2
  movss  0x140(%rsp),%xmm1
  shufps $0xdd,0x1b0(%rsp),%xmm4
  shufps $0x55,%xmm3,%xmm2
  mulps  %xmm14,%xmm4
  shufps $0xdd,0x1a0(%rsp),%xmm8
  addss  %xmm3,%xmm1
  mulps  %xmm14,%xmm8
  addss  %xmm1,%xmm2
  movaps %xmm3,%xmm1
  unpckhps %xmm3,%xmm1
  shufps $0xff,%xmm3,%xmm3
  movaps %xmm4,%xmm7
  unpckhps %xmm4,%xmm7
  addss  %xmm2,%xmm1
  movaps %xmm3,%xmm2
  movaps %xmm1,%xmm3
  movss  0x148(%rsp),%xmm1
  addss  %xmm2,%xmm3
  movaps %xmm10,%xmm2
  addss  %xmm10,%xmm1
  shufps $0x55,%xmm10,%xmm2
  movss  %xmm3,0x140(%rsp)
  movaps %xmm10,%xmm3
  addss  %xmm1,%xmm2
  unpckhps %xmm10,%xmm3
  shufps $0xff,%xmm10,%xmm10
  movaps %xmm3,%xmm1
  addss  %xmm2,%xmm1
  movaps %xmm4,%xmm2
  shufps $0x55,%xmm4,%xmm2
  movaps %xmm1,%xmm3
  movss  0x130(%rsp),%xmm1
  addss  %xmm10,%xmm3
  addss  %xmm4,%xmm1
  shufps $0xff,%xmm4,%xmm4
  movss  %xmm3,0x148(%rsp)
  addss  %xmm1,%xmm2
  movaps %xmm7,%xmm1
  addss  %xmm2,%xmm1
  movaps %xmm9,%xmm2
  shufps $0x55,%xmm9,%xmm2
  movaps %xmm1,%xmm7
  movss  0x154(%rsp),%xmm1
  addss  %xmm4,%xmm7
  addss  %xmm9,%xmm1
  movss  %xmm7,0x130(%rsp)
  movaps %xmm9,%xmm7
  addss  %xmm1,%xmm2
  unpckhps %xmm9,%xmm7
  shufps $0xff,%xmm9,%xmm9
  movaps %xmm7,%xmm1
  addss  %xmm2,%xmm1
  movss  0x12c(%rsp),%xmm2
  movaps %xmm1,%xmm7
  movaps 0x180(%rsp),%xmm1
  addss  %xmm9,%xmm7
  shufps $0xdd,%xmm12,%xmm1
  mulps  %xmm14,%xmm1
  movss  %xmm7,0x154(%rsp)
  addss  %xmm1,%xmm2
  movaps %xmm1,%xmm3
  shufps $0x55,%xmm1,%xmm3
  addss  %xmm2,%xmm3
  movaps %xmm1,%xmm2
  unpckhps %xmm1,%xmm2
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm3,%xmm2
  addss  %xmm1,%xmm2
  movss  0x158(%rsp),%xmm1
  addss  %xmm8,%xmm1
  movss  %xmm2,0x12c(%rsp)
  movaps %xmm8,%xmm2
  shufps $0x55,%xmm8,%xmm2
  addss  %xmm1,%xmm2
  movaps %xmm8,%xmm1
  unpckhps %xmm8,%xmm1
  shufps $0xff,%xmm8,%xmm8
  addss  %xmm2,%xmm1
  movaps %xmm5,%xmm2
  shufps $0x55,%xmm5,%xmm2
  addss  %xmm8,%xmm1
  movss  %xmm1,0x158(%rsp)
  movss  0x15c(%rsp),%xmm1
  addss  %xmm5,%xmm1
  addss  %xmm1,%xmm2
  movaps %xmm5,%xmm1
  unpckhps %xmm5,%xmm1
  shufps $0xff,%xmm5,%xmm5
  addss  %xmm2,%xmm1
  movaps %xmm0,%xmm2
  shufps $0x55,%xmm0,%xmm2
  addss  %xmm5,%xmm1
  movss  %xmm1,0x15c(%rsp)
  movss  0x138(%rsp),%xmm1
  addss  %xmm0,%xmm1
  addss  %xmm1,%xmm2
  movaps %xmm0,%xmm1
  unpckhps %xmm0,%xmm1
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm2,%xmm1
  addss  %xmm0,%xmm1
  movss  %xmm1,0x138(%rsp)
  cmp    %rax,%rdi
  jne    L130
  movss  (%rdx),%xmm0
  add    $0x40,%r13
  subss  0x14c(%rsp),%xmm0
  movss  %xmm0,(%rdx)
  movss  0x4(%rdx),%xmm0
  subss  0x150(%rsp),%xmm0
  movss  %xmm0,0x4(%rdx)
  movss  0x8(%rdx),%xmm0
  subss  0x13c(%rsp),%xmm0
  movss  %xmm0,0x8(%rdx)
  movss  0xc(%rdx),%xmm0
  subss  0x178(%rsp),%xmm0
  movss  %xmm0,0xc(%rdx)
  movss  0x10(%rdx),%xmm0
  subss  0x168(%rsp),%xmm0
  movss  %xmm0,0x10(%rdx)
  movss  0x14(%rdx),%xmm0
  subss  0x170(%rsp),%xmm0
  movss  %xmm0,0x14(%rdx)
  movss  0x18(%rdx),%xmm0
  subss  0x134(%rsp),%xmm0
  movss  %xmm0,0x18(%rdx)
  movss  0x1c(%rdx),%xmm0
  subss  0x160(%rsp),%xmm0
  movss  %xmm0,0x1c(%rdx)
  movss  0x20(%rdx),%xmm0
  subss  0x140(%rsp),%xmm0
  movss  %xmm0,0x20(%rdx)
  movss  0x24(%rdx),%xmm0
  subss  0x148(%rsp),%xmm0
  movss  %xmm0,0x24(%rdx)
  movss  0x28(%rdx),%xmm0
  subss  0x130(%rsp),%xmm0
  movss  %xmm0,0x28(%rdx)
  movss  0x2c(%rdx),%xmm0
  subss  %xmm7,%xmm0
  movss  %xmm0,0x2c(%rdx)
  movss  0x30(%rdx),%xmm0
  subss  0x12c(%rsp),%xmm0
  movss  %xmm0,0x30(%rdx)
  movss  0x34(%rdx),%xmm0
  subss  0x158(%rsp),%xmm0
  movss  %xmm0,0x34(%rdx)
  movss  0x38(%rdx),%xmm0
  subss  0x15c(%rsp),%xmm0
  movss  %xmm0,0x38(%rdx)
  movss  0x3c(%rdx),%xmm0
  subss  %xmm1,%xmm0
  movss  %xmm0,0x3c(%rdx)
  add    %r9,%rdx
  cmp    %r10,%r13
  jne    L349
  add    $0x1,%r11d
  cmp    0x80(%rsp),%r11d
  jl     L225
  jmp    L417
L38:
  xor    %edx,%edx
  jmp    L442
L71:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void lud_omp(float *a, int size) {
#pragma omp_to_hclib
  {
    int offset, chunk_idx, size_inter, chunks_in_inter_row, chunks_per_inter;
    for (offset = 0; offset < size - 16; offset += 16) {
      lud_diagonal_omp(a, size, offset);
      size_inter = size - offset - 16;
      chunks_in_inter_row = size_inter / 16;
#pragma omp parallel for default(none) private(chunk_idx) firstprivate(size, a) shared(chunks_per_inter, chunks_in_inter_row, offset)
      for (chunk_idx = 0; chunk_idx < chunks_in_inter_row; chunk_idx++) {
        int i, j, k, i_global, j_global, i_here, j_here;
        float sum;
        float temp[16 * 16] __attribute__((aligned(64)));
        for (i = 0; i < 16; i++) {
#pragma omp simd
          for (j = 0; j < 16; j++) {
            temp[i * 16 + j] = a[size * (i + offset) + offset + j];
          }
        }
        i_global = offset;
        j_global = offset;
        j_global += 16 * (chunk_idx + 1);
        for (j = 0; j < 16; j++) {
          for (i = 0; i < 16; i++) {
            sum = 0.f;
            for (k = 0; k < i; k++) {
              sum += temp[16 * i + k] * a[(i_global + k) * size + (j_global + j)];
            }
            i_here = i_global + i;
            j_here = j_global + j;
            a[i_here * size + j_here] = a[i_here * size + j_here] - sum;
          }
        }
        j_global = offset;
        i_global += 16 * (chunk_idx + 1);
        for (i = 0; i < 16; i++) {
          for (j = 0; j < 16; j++) {
            sum = 0.f;
            for (k = 0; k < j; k++) {
              sum += a[(i_global + i) * size + (j_global + k)] * temp[16 * k + j];
            }
            i_here = i_global + i;
            j_here = j_global + j;
            a[size * i_here + j_here] = (a[size * i_here + j_here] - sum) / a[size * (offset + j) + offset + j];
          }
        }
      }
      chunks_per_inter = chunks_in_inter_row * chunks_in_inter_row;
#pragma omp parallel for schedule(auto) default(none) private(chunk_idx) firstprivate(size, a) shared(chunks_per_inter, chunks_in_inter_row, offset)
      for (chunk_idx = 0; chunk_idx < chunks_per_inter; chunk_idx++) {
        int i, j, k, i_global, j_global;
        float temp_top[16 * 16] __attribute__((aligned(64)));
        float temp_left[16 * 16] __attribute__((aligned(64)));
        float sum[16] __attribute__((aligned(64))) = {0.f};
        i_global = offset + 16 * (1 + chunk_idx / chunks_in_inter_row);
        j_global = offset + 16 * (1 + chunk_idx % chunks_in_inter_row);
        for (i = 0; i < 16; i++) {
#pragma omp simd
          for (j = 0; j < 16; j++) {
            temp_top[i * 16 + j] = a[size * (i + offset) + j + j_global];
            temp_left[i * 16 + j] = a[size * (i + i_global) + offset + j];
          }
        }
        for (i = 0; i < 16; i++) {
          for (k = 0; k < 16; k++) {
#pragma omp simd
            for (j = 0; j < 16; j++) {
              sum[j] += temp_left[16 * i + k] * temp_top[16 * k + j];
            }
          }
#pragma omp simd
          for (j = 0; j < 16; j++) {
            a[(i + i_global) * size + (j + j_global)] -= sum[j];
            sum[j] = 0.f;
          }
        }
      }
    }
    lud_diagonal_omp(a, size, offset);
  }
}
```