user: What is the c source code of the assembly code below?

```asm
<kernel>:
  endbr64
  mov    %rsi,%r10
  lea    0x4(%rdi),%rax
  lea    0x84(%rsi),%r8
  mov    $0xf8,%r9d
  mov    $0x20,%r11d
  jmp    L41
  nopl   0x0(%rax,%rax,1)
L32:
  movups 0x7c(%rax),%xmm2
  movups 0x80(%rax),%xmm0
  movups 0x84(%rax),%xmm3
  movups (%rax),%xmm4
  addps  %xmm2,%xmm0
  movups 0x100(%rax),%xmm5
  movups -0x4(%rax),%xmm6
  movups 0x4(%rax),%xmm7
  movups 0xfc(%rax),%xmm2
  addps  %xmm3,%xmm0
  movups 0x104(%rax),%xmm3
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  movups %xmm0,(%r8)
  movups 0x8c(%rax),%xmm4
  movups 0x90(%rax),%xmm0
  movups 0x94(%rax),%xmm5
  movups 0x10(%rax),%xmm6
  addps  %xmm4,%xmm0
  movups 0x110(%rax),%xmm7
  movups 0xc(%rax),%xmm2
  movups 0x14(%rax),%xmm3
  movups 0x10c(%rax),%xmm4
  addps  %xmm5,%xmm0
  movups 0x114(%rax),%xmm5
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  movups %xmm0,0x10(%r8)
  movups 0x9c(%rax),%xmm6
  movups 0xa0(%rax),%xmm0
  movups 0xa4(%rax),%xmm7
  movups 0x20(%rax),%xmm2
  addps  %xmm6,%xmm0
  movups 0x120(%rax),%xmm3
  movups 0x1c(%rax),%xmm4
  movups 0x24(%rax),%xmm5
  movups 0x11c(%rax),%xmm6
  addps  %xmm7,%xmm0
  movups 0x124(%rax),%xmm7
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  movups %xmm0,0x20(%r8)
  movups 0xac(%rax),%xmm2
  movups 0xb0(%rax),%xmm0
  movups 0xb4(%rax),%xmm3
  movups 0x30(%rax),%xmm4
  addps  %xmm2,%xmm0
  movups 0x130(%rax),%xmm5
  movups 0x2c(%rax),%xmm6
  movups 0x34(%rax),%xmm7
  movups 0x12c(%rax),%xmm2
  addps  %xmm3,%xmm0
  movups 0x134(%rax),%xmm3
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  movups %xmm0,0x30(%r8)
  movups 0xbc(%rax),%xmm4
  movups 0xc0(%rax),%xmm0
  movups 0xc4(%rax),%xmm5
  movups 0x40(%rax),%xmm6
  addps  %xmm4,%xmm0
  movups 0x140(%rax),%xmm7
  movups 0x3c(%rax),%xmm2
  movups 0x44(%rax),%xmm3
  movups 0x13c(%rax),%xmm4
  addps  %xmm5,%xmm0
  movups 0x144(%rax),%xmm5
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  movups %xmm0,0x40(%r8)
  movups 0xcc(%rax),%xmm6
  movups 0xd0(%rax),%xmm0
  movups 0xd4(%rax),%xmm7
  movups 0x50(%rax),%xmm2
  addps  %xmm6,%xmm0
  movups 0x150(%rax),%xmm3
  movups 0x4c(%rax),%xmm4
  movups 0x54(%rax),%xmm5
  movups 0x14c(%rax),%xmm6
  addps  %xmm7,%xmm0
  movups 0x154(%rax),%xmm7
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  movups %xmm0,0x50(%r8)
  movups 0xdc(%rax),%xmm1
  movups 0xe0(%rax),%xmm0
  movups 0xe4(%rax),%xmm2
  movups 0x60(%rax),%xmm3
  addps  %xmm1,%xmm0
  movups 0x160(%rax),%xmm4
  movups 0x5c(%rax),%xmm5
  movups 0x64(%rax),%xmm6
  movups 0x15c(%rax),%xmm7
  movups 0x164(%rax),%xmm1
  addps  %xmm2,%xmm0
  addps  %xmm3,%xmm0
  addps  %xmm4,%xmm0
  addps  %xmm5,%xmm0
  addps  %xmm6,%xmm0
  addps  %xmm7,%xmm0
  addps  %xmm1,%xmm0
  movups %xmm0,0x60(%r8)
  movq   0xec(%rax),%xmm1
  movq   0xf0(%rax),%xmm0
  addps  %xmm1,%xmm0
  movq   0xf4(%rax),%xmm1
  addps  %xmm1,%xmm0
  movq   0x70(%rax),%xmm1
  addps  %xmm1,%xmm0
  movq   0x170(%rax),%xmm1
  addps  %xmm1,%xmm0
  movq   0x6c(%rax),%xmm1
  addps  %xmm1,%xmm0
  movq   0x74(%rax),%xmm1
  addps  %xmm1,%xmm0
  movq   0x16c(%rax),%xmm1
  addps  %xmm1,%xmm0
  movq   0x174(%rax),%xmm1
  addps  %xmm1,%xmm0
  movlps %xmm0,0x70(%r8)
L47:
  sub    $0xffffffffffffff80,%r8
  sub    $0xffffffffffffff80,%rax
  sub    $0xffffffffffffff80,%r9
  cmp    $0x3e0,%r11d
  je     L8
L41:
  mov    %r8,%rdx
  add    $0x20,%r11d
  sub    %rax,%rdx
  cmp    $0x110,%rdx
  ja     L32
  lea    -0x4(%rax),%rsi
  lea    0xfc(%rax),%rcx
  lea    -0x78(%r9),%rdx
  nop
L43:
  movss  (%rdi,%rdx,1),%xmm0
  addss  0x4(%rdi,%rdx,1),%xmm0
  add    $0x4,%rsi
  add    $0x4,%rcx
  addss  0x8(%rdi,%rdx,1),%xmm0
  addss  (%rsi),%xmm0
  addss  (%rcx),%xmm0
  addss  -0x4(%rsi),%xmm0
  addss  0x4(%rsi),%xmm0
  addss  -0x4(%rcx),%xmm0
  addss  0x4(%rcx),%xmm0
  movss  %xmm0,0x4(%r10,%rdx,1)
  add    $0x4,%rdx
  cmp    %rdx,%r9
  jne    L43
  jmp    L47
L8:
  ret
```

assistant: ```c
void kernel(float *g1, float *g2) {
  int x, y;
  for (y = 1; y < 32 - 1; ++y) {
    for (x = 1; x < 32 - 1; ++x) {
      float v = g1[((x) + (y)*32)] + g1[((x - 1) + (y)*32)] + g1[((x + 1) + (y)*32)] + g1[((x) + (y - 1) * 32)] + g1[((x) + (y + 1) * 32)] + g1[((x - 1) + (y - 1) * 32)] + g1[((x + 1) + (y - 1) * 32)] + g1[((x - 1) + (y + 1) * 32)] + g1[((x + 1) + (y + 1) * 32)];
      g2[((x) + (y)*32)] = v;
    }
  }
  return;
}
```