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

```asm
<checksumBuffer>:
  endbr64
  mov    %rdi,%rcx
  mov    %rsi,%rdx
  test   %rsi,%rsi
  je     L8
  lea    -0x1(%rsi),%rax
  cmp    $0xe,%rax
  jbe    L10
  and    $0xfffffffffffffff0,%rsi
  pxor   %xmm2,%xmm2
  pxor   %xmm10,%xmm10
  mov    %rdi,%rax
  movdqa D29(%rip),%xmm8
  add    %rdi,%rsi
  movdqa D42(%rip),%xmm13
  pxor   %xmm9,%xmm9
  movdqa D28(%rip),%xmm12
  pxor   %xmm7,%xmm7
  movdqa D30(%rip),%xmm11
  nopl   0x0(%rax)
L125:
  movdqu (%rax),%xmm1
  movdqa %xmm10,%xmm3
  movdqa %xmm8,%xmm0
  add    $0x10,%rax
  movdqa %xmm0,%xmm15
  paddq  %xmm13,%xmm8
  pcmpgtb %xmm1,%xmm3
  movdqa %xmm1,%xmm5
  paddq  %xmm12,%xmm15
  punpcklbw %xmm3,%xmm5
  punpckhbw %xmm3,%xmm1
  movdqa %xmm9,%xmm3
  pcmpgtw %xmm5,%xmm3
  movdqa %xmm5,%xmm6
  movdqa %xmm1,%xmm14
  punpcklwd %xmm3,%xmm6
  punpckhwd %xmm3,%xmm5
  movdqa %xmm9,%xmm3
  pcmpgtw %xmm1,%xmm3
  movdqa %xmm5,%xmm4
  punpcklwd %xmm3,%xmm14
  punpckhwd %xmm3,%xmm1
  movdqa %xmm7,%xmm3
  pcmpgtd %xmm5,%xmm3
  punpckldq %xmm3,%xmm4
  punpckhdq %xmm3,%xmm5
  movdqa %xmm7,%xmm3
  pxor   %xmm4,%xmm15
  pcmpgtd %xmm6,%xmm3
  movdqa %xmm0,%xmm4
  paddq  %xmm11,%xmm4
  pxor   %xmm5,%xmm4
  movdqa D80(%rip),%xmm5
  paddq  %xmm15,%xmm4
  movdqa %xmm6,%xmm15
  punpckldq %xmm3,%xmm6
  paddq  %xmm0,%xmm5
  punpckhdq %xmm3,%xmm15
  pxor   %xmm0,%xmm6
  pxor   %xmm15,%xmm5
  paddq  %xmm6,%xmm5
  movdqa %xmm7,%xmm6
  pcmpgtd %xmm14,%xmm6
  paddq  %xmm5,%xmm4
  movdqa %xmm14,%xmm5
  movdqa %xmm4,%xmm3
  movdqa D62(%rip),%xmm4
  punpckldq %xmm6,%xmm5
  paddq  %xmm0,%xmm4
  punpckhdq %xmm6,%xmm14
  pxor   %xmm5,%xmm4
  movdqa D9(%rip),%xmm5
  movdqa %xmm1,%xmm6
  paddq  %xmm0,%xmm5
  pxor   %xmm14,%xmm5
  paddq  %xmm5,%xmm4
  movdqa D24(%rip),%xmm5
  movdqa %xmm4,%xmm14
  movdqa %xmm7,%xmm4
  pcmpgtd %xmm1,%xmm4
  paddq  %xmm0,%xmm5
  paddq  D39(%rip),%xmm0
  punpckldq %xmm4,%xmm6
  punpckhdq %xmm4,%xmm1
  pxor   %xmm6,%xmm5
  pxor   %xmm1,%xmm0
  paddq  %xmm5,%xmm14
  paddq  %xmm2,%xmm0
  paddq  %xmm14,%xmm3
  movdqa %xmm3,%xmm2
  paddq  %xmm0,%xmm2
  cmp    %rsi,%rax
  jne    L125
  movdqa %xmm2,%xmm0
  mov    %rdx,%rsi
  psrldq $0x8,%xmm0
  and    $0xfffffffffffffff0,%rsi
  paddq  %xmm0,%xmm2
  add    %rsi,%rcx
  movq   %xmm2,%rax
  cmp    %rsi,%rdx
  je     L182
L147:
  movsbq (%rcx),%rdi
  lea    0x1(%rsi),%r8
  xor    %rsi,%rdi
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x1(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x2(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x2(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x3(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x3(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x4(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x4(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x5(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x5(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x6(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x6(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x7(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x7(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x8(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x8(%rcx),%rdi
  xor    %r8,%rdi
  lea    0x9(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0x9(%rcx),%rdi
  xor    %r8,%rdi
  lea    0xa(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0xa(%rcx),%rdi
  xor    %r8,%rdi
  lea    0xb(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0xb(%rcx),%rdi
  xor    %r8,%rdi
  lea    0xc(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0xc(%rcx),%rdi
  xor    %r8,%rdi
  lea    0xd(%rsi),%r8
  add    %rdi,%rax
  cmp    %r8,%rdx
  jbe    L174
  movsbq 0xd(%rcx),%rdi
  add    $0xe,%rsi
  xor    %r8,%rdi
  add    %rdi,%rax
  cmp    %rsi,%rdx
  jbe    L174
  movsbq 0xe(%rcx),%rdx
  xor    %rsi,%rdx
  add    %rdx,%rax
  ret
  nop
L8:
  xor    %eax,%eax
L174:
  ret
L10:
  xor    %esi,%esi
  xor    %eax,%eax
  jmp    L147
L182:
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D29
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D42
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D28
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D30
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D80
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D62
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D9
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D24
type: byte[16]
name: extract_symbolic_data
arguments: data_label: D39
type: byte[16]

tool: {"D29": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D42": [0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D28": [0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D30": [0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D80": [0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D62": [0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D9": [0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D24": [0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D39": [0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

assistant: ```c
size_t checksumBuffer(const char *buffer, const size_t size) {
  size_t checksum = 0;
  char *p = (char *)buffer;
  for (size_t i = 0; i < size; i++) {
    checksum += (i ^ *p);
    p++;
  }
  return checksum;
}
```