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

```asm
<vp8_sad16x16x8_c>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %esi,-0xc(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    %ecx,-0x10(%rbp)
  mov    %r8,-0x20(%rbp)
  mov    D71(%rip),%rax
  mov    (%rax),%edi
  mov    -0x10(%rbp),%ecx
  mov    -0x18(%rbp),%rdx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %edi,%r8d
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    %eax,%edx
  mov    -0x20(%rbp),%rax
  mov    %dx,(%rax)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x1(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0x2,%rdx
  mov    %ax,(%rdx)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x2(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0x4,%rdx
  mov    %ax,(%rdx)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x3(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0x6,%rdx
  mov    %ax,(%rdx)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x4(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0x8,%rdx
  mov    %ax,(%rdx)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x5(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0xa,%rdx
  mov    %ax,(%rdx)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x6(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0xc,%rdx
  mov    %ax,(%rdx)
  mov    D71(%rip),%rax
  mov    (%rax),%ecx
  mov    -0x18(%rbp),%rax
  lea    0x7(%rax),%rdi
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%esi
  mov    -0x8(%rbp),%rax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %rdi,%rdx
  mov    %rax,%rdi
  call   <vp8_sad16x16_c@plt>
  mov    -0x20(%rbp),%rdx
  add    $0xe,%rdx
  mov    %ax,(%rdx)
  nop
  leave
  ret
```

assistant: ```c
void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array) {
  sad_array[0] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 0, ref_stride, UINT_MAX);
  sad_array[1] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 1, ref_stride, UINT_MAX);
  sad_array[2] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 2, ref_stride, UINT_MAX);
  sad_array[3] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 3, ref_stride, UINT_MAX);
  sad_array[4] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 4, ref_stride, UINT_MAX);
  sad_array[5] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 5, ref_stride, UINT_MAX);
  sad_array[6] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 6, ref_stride, UINT_MAX);
  sad_array[7] = (unsigned short)vp8_sad16x16_c(src_ptr, src_stride, ref_ptr + 7, ref_stride, UINT_MAX);
}
```