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

```asm
<checksum>:
  endbr64
  movzbl (%rdi),%eax
  mov    %rdi,%rsi
  mov    %eax,%edi
  add    $0x4,%dil
  je     L118
  lea    0x3(%rax),%edx
  cmp    $0x6,%dl
  jbe    L284
  cmp    $0xfb,%al
  je     L284
  cmp    $0xe,%dl
  jbe    L213
  mov    %edi,%edx
  movdqu 0x1(%rsi),%xmm0
  shr    $0x4,%dl
  cmp    $0x1,%dl
  je     L176
  movdqu 0x11(%rsi),%xmm3
  paddb  %xmm3,%xmm0
  cmp    $0x2,%dl
  je     L176
  movdqu 0x21(%rsi),%xmm4
  paddb  %xmm4,%xmm0
  cmp    $0x3,%dl
  je     L176
  movdqu 0x31(%rsi),%xmm5
  paddb  %xmm5,%xmm0
  cmp    $0x4,%dl
  je     L176
  movdqu 0x41(%rsi),%xmm6
  paddb  %xmm6,%xmm0
  cmp    $0x5,%dl
  je     L176
  movdqu 0x51(%rsi),%xmm7
  paddb  %xmm7,%xmm0
  cmp    $0x6,%dl
  je     L176
  movdqu 0x61(%rsi),%xmm7
  paddb  %xmm7,%xmm0
  cmp    $0x7,%dl
  je     L176
  movdqu 0x71(%rsi),%xmm6
  paddb  %xmm6,%xmm0
  cmp    $0x8,%dl
  je     L176
  movdqu 0x81(%rsi),%xmm5
  paddb  %xmm5,%xmm0
  cmp    $0x9,%dl
  je     L176
  movdqu 0x91(%rsi),%xmm4
  paddb  %xmm4,%xmm0
  cmp    $0xa,%dl
  je     L176
  movdqu 0xa1(%rsi),%xmm7
  paddb  %xmm7,%xmm0
  cmp    $0xb,%dl
  je     L176
  movdqu 0xb1(%rsi),%xmm6
  paddb  %xmm6,%xmm0
  cmp    $0xc,%dl
  je     L176
  movdqu 0xc1(%rsi),%xmm5
  paddb  %xmm5,%xmm0
  cmp    $0xd,%dl
  je     L176
  movdqu 0xd1(%rsi),%xmm3
  paddb  %xmm3,%xmm0
  cmp    $0xf,%dl
  jne    L176
  movdqu 0xe1(%rsi),%xmm4
  paddb  %xmm4,%xmm0
  nopw   0x0(%rax,%rax,1)
L176:
  movdqa %xmm0,%xmm1
  mov    %edi,%ecx
  psrldq $0x8,%xmm1
  and    $0xfffffff0,%ecx
  paddb  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  lea    0x1(%rcx),%r8d
  psadbw %xmm1,%xmm0
  movd   %xmm0,%edx
  add    %eax,%edx
  cmp    %cl,%dil
  je     L182
  sub    %ecx,%eax
  lea    0x4(%rax),%r9d
  add    $0x3,%eax
  cmp    $0x6,%al
  jbe    L140
L126:
  add    $0x1,%ecx
  pxor   %xmm0,%xmm0
  movzbl %cl,%ecx
  movq   (%rsi,%rcx,1),%xmm1
  movdqa %xmm1,%xmm2
  psadbw %xmm0,%xmm2
  movq   %xmm2,%rcx
  movq   %xmm2,-0x10(%rsp)
  mov    %ecx,%eax
  add    %edx,%eax
  mov    %r9d,%edx
  and    $0xfffffff8,%edx
  add    %edx,%r8d
  cmp    %r9b,%dl
  je     L15
L60:
  movzbl %r8b,%edx
  add    (%rsi,%rdx,1),%al
  lea    0x1(%r8),%edx
  cmp    %dl,%dil
  jb     L15
  movzbl %dl,%edx
  add    (%rsi,%rdx,1),%al
  lea    0x2(%r8),%edx
  cmp    %dl,%dil
  jb     L15
  movzbl %dl,%edx
  add    (%rsi,%rdx,1),%al
  lea    0x3(%r8),%edx
  cmp    %dl,%dil
  jb     L15
  movzbl %dl,%edx
  add    (%rsi,%rdx,1),%al
  lea    0x4(%r8),%edx
  cmp    %dl,%dil
  jb     L15
  movzbl %dl,%edx
  add    (%rsi,%rdx,1),%al
  lea    0x5(%r8),%edx
  cmp    %dl,%dil
  jb     L15
  movzbl %dl,%edx
  add    $0x6,%r8d
  add    (%rsi,%rdx,1),%al
  cmp    %r8b,%dil
  jb     L15
  movzbl %r8b,%r8d
  add    (%rsi,%r8,1),%al
L15:
  xor    %edi,%edi
  test   %al,%al
  sete   %dil
  jmp    1050 <assert@plt>
  nopw   0x0(%rax,%rax,1)
L284:
  mov    $0x1,%edx
  nopl   (%rax)
L79:
  movzbl %dl,%ecx
  add    $0x1,%edx
  add    (%rsi,%rcx,1),%al
  cmp    %dil,%dl
  jbe    L79
  xor    %edi,%edi
  test   %al,%al
  sete   %dil
  jmp    1050 <assert@plt>
  nopl   0x0(%rax,%rax,1)
L118:
  mov    $0xfffffffc,%eax
  xor    %edi,%edi
  test   %al,%al
  sete   %dil
  jmp    1050 <assert@plt>
L213:
  mov    %edi,%r9d
  mov    %eax,%edx
  xor    %ecx,%ecx
  mov    $0x1,%r8d
  jmp    L126
L140:
  mov    %edx,%eax
  jmp    L60
L182:
  mov    %edx,%eax
  jmp    L15
```

assistant: ```c
void checksum(unsigned char *bytevector) {
  unsigned char size = bytevector[0] + 4, sum = 0;
  for (unsigned char i = 0; i <= size; i++)
    sum += bytevector[i];
  assert(!sum);
}
```