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

```asm
<dumb_compare>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    -0x18(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%edx
  mov    -0x20(%rbp),%rax
  movzbl (%rax),%eax
  movsbl %al,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x1,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x1,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x2,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x2,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x3,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x3,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x4,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x5,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x5,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x6,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x6,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x7,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x7,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x8,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x9,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0x9,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0xa,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0xa,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0xb,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0xb,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0xc,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0xd,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0xd,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0xe,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0xe,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0xf,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    -0x20(%rbp),%rdx
  add    $0xf,%rdx
  movzbl (%rdx),%edx
  movsbl %dl,%edx
  sub    %edx,%eax
  add    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  pop    %rbp
  ret
```

assistant: ```c
int dumb_compare(char *s1, char *s2) {
  int i, j, k, retval;
  retval = (s1[0] - s2[0]);
  retval += (s1[1] - s2[1]);
  retval += (s1[2] - s2[2]);
  retval += (s1[3] - s2[3]);
  retval += (s1[4] - s2[4]);
  retval += (s1[5] - s2[5]);
  retval += (s1[6] - s2[6]);
  retval += (s1[7] - s2[7]);
  retval += (s1[8] - s2[8]);
  retval += (s1[9] - s2[9]);
  retval += (s1[10] - s2[10]);
  retval += (s1[11] - s2[11]);
  retval += (s1[12] - s2[12]);
  retval += (s1[13] - s2[13]);
  retval += (s1[14] - s2[14]);
  retval += (s1[15] - s2[15]);
  return retval;
}
```