user: Please show me the C implementation that matches the assembly code listed below:

```asm
<copyGrid>:
  endbr64
  lea    0x6f(%rdi),%rdx
  mov    %rdi,%r11
  mov    %rsi,%rax
  sub    %rsi,%rdx
  cmp    $0xde,%rdx
  jbe    L5
  movdqu 0x10(%rdi),%xmm5
  movdqu 0x20(%rdi),%xmm4
  movdqu 0x30(%rdi),%xmm3
  movdqu 0x40(%rdi),%xmm2
  movdqu 0x50(%rdi),%xmm1
  movdqu 0x60(%rdi),%xmm0
  movdqu (%rdi),%xmm6
  movups %xmm5,0x10(%rsi)
  movups %xmm4,0x20(%rsi)
  movups %xmm6,(%rsi)
  movups %xmm3,0x30(%rsi)
  movups %xmm2,0x40(%rsi)
  movups %xmm1,0x50(%rsi)
  movups %xmm0,0x60(%rsi)
  mov    0x70(%rdi),%r10
  mov    0x78(%rdi),%r9
  mov    0x80(%rdi),%r8
  mov    0x90(%r11),%rsi
  mov    0x88(%rdi),%rdi
  mov    0x98(%r11),%rcx
  mov    0xa0(%r11),%rdx
  mov    %r10,0x70(%rax)
  mov    %r9,0x78(%rax)
  mov    %r8,0x80(%rax)
  mov    %rdi,0x88(%rax)
  mov    %rsi,0x90(%rax)
  mov    %rcx,0x98(%rax)
  mov    %rdx,0xa0(%rax)
  ret
L5:
  mov    (%rdi),%edx
  mov    %edx,(%rsi)
  mov    0x4(%rdi),%edx
  mov    %edx,0x4(%rsi)
  mov    0x8(%rdi),%edx
  mov    %edx,0x8(%rsi)
  mov    0xc(%rdi),%edx
  mov    %edx,0xc(%rsi)
  mov    0x10(%rdi),%edx
  mov    %edx,0x10(%rsi)
  mov    0x14(%rdi),%edx
  mov    %edx,0x14(%rsi)
  mov    0x18(%rdi),%edx
  mov    %edx,0x18(%rsi)
  mov    0x1c(%rdi),%edx
  mov    %edx,0x1c(%rsi)
  mov    0x20(%rdi),%edx
  mov    %edx,0x20(%rsi)
  mov    0x24(%rdi),%edx
  mov    %edx,0x24(%rsi)
  mov    0x28(%rdi),%edx
  mov    %edx,0x28(%rsi)
  mov    0x2c(%rdi),%edx
  mov    %edx,0x2c(%rsi)
  mov    0x30(%rdi),%edx
  mov    %edx,0x30(%rsi)
  mov    0x34(%rdi),%edx
  mov    %edx,0x34(%rsi)
  mov    0x38(%rdi),%edx
  mov    %edx,0x38(%rsi)
  mov    0x3c(%rdi),%edx
  mov    %edx,0x3c(%rsi)
  mov    0x40(%rdi),%edx
  mov    %edx,0x40(%rsi)
  mov    0x44(%rdi),%edx
  mov    %edx,0x44(%rsi)
  mov    0x48(%rdi),%edx
  mov    %edx,0x48(%rsi)
  mov    0x4c(%rdi),%edx
  mov    %edx,0x4c(%rsi)
  mov    0x50(%rdi),%edx
  mov    %edx,0x50(%rsi)
  mov    0x54(%rdi),%edx
  mov    %edx,0x54(%rsi)
  mov    0x58(%rdi),%edx
  mov    %edx,0x58(%rsi)
  mov    0x5c(%rdi),%edx
  mov    %edx,0x5c(%rsi)
  mov    0x60(%rdi),%edx
  mov    %edx,0x60(%rsi)
  mov    0x64(%rdi),%edx
  mov    %edx,0x64(%rsi)
  mov    0x68(%rdi),%edx
  mov    %edx,0x68(%rsi)
  mov    0x6c(%rdi),%edx
  mov    %edx,0x6c(%rsi)
  mov    0x70(%rdi),%edx
  mov    %edx,0x70(%rsi)
  mov    0x74(%rdi),%edx
  mov    %edx,0x74(%rsi)
  mov    0x78(%rdi),%edx
  mov    %edx,0x78(%rsi)
  mov    0x7c(%rdi),%edx
  mov    %edx,0x7c(%rsi)
  mov    0x80(%rdi),%edx
  mov    %edx,0x80(%rsi)
  mov    0x84(%rdi),%edx
  mov    %edx,0x84(%rsi)
  mov    0x88(%rdi),%edx
  mov    %edx,0x88(%rsi)
  mov    0x8c(%rdi),%edx
  mov    %edx,0x8c(%rsi)
  mov    0x90(%rdi),%edx
  mov    %edx,0x90(%rsi)
  mov    0x94(%rdi),%edx
  mov    %edx,0x94(%rsi)
  mov    0x98(%rdi),%edx
  mov    %edx,0x98(%rsi)
  mov    0x9c(%rdi),%edx
  mov    %edx,0x9c(%rsi)
  mov    0xa0(%rdi),%edx
  mov    %edx,0xa0(%rsi)
  mov    0xa4(%rdi),%edx
  mov    %edx,0xa4(%rsi)
  ret
```

assistant: ```c
void copyGrid(int grid[6][7], int gridDup[6][7]) {
  int i, j;
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++)
      gridDup[i][j] = grid[i][j];
}
```