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

```asm
<reads>:
  endbr64
  test   %edi,%edi
  jle    L102
  cmp    $0x1,%esi
  jne    L163
  lea    -0x1(%rdi),%eax
  cmp    $0xe,%eax
  jbe    L112
  mov    %edi,%ecx
  pxor   %xmm2,%xmm2
  pxor   %xmm6,%xmm6
  mov    %rdx,%rax
  shr    $0x4,%ecx
  pxor   %xmm4,%xmm4
  sub    $0x1,%ecx
  shl    $0x4,%rcx
  lea    0x10(%rdx,%rcx,1),%rcx
  nopl   0x0(%rax)
L42:
  movdqu (%rax),%xmm0
  movdqa %xmm6,%xmm3
  add    $0x10,%rax
  pcmpgtb %xmm0,%xmm3
  movdqa %xmm0,%xmm1
  punpcklbw %xmm3,%xmm1
  punpckhbw %xmm3,%xmm0
  movdqa %xmm4,%xmm3
  pcmpgtw %xmm0,%xmm3
  movdqa %xmm0,%xmm5
  punpcklwd %xmm3,%xmm5
  punpckhwd %xmm3,%xmm0
  movdqa %xmm4,%xmm3
  pcmpgtw %xmm1,%xmm3
  por    %xmm5,%xmm0
  movdqa %xmm1,%xmm5
  punpcklwd %xmm3,%xmm5
  punpckhwd %xmm3,%xmm1
  por    %xmm5,%xmm1
  por    %xmm1,%xmm0
  por    %xmm0,%xmm2
  cmp    %rcx,%rax
  jne    L42
  movdqa %xmm2,%xmm0
  mov    %edi,%ecx
  psrldq $0x8,%xmm0
  and    $0xfffffff0,%ecx
  por    %xmm0,%xmm2
  movdqa %xmm2,%xmm0
  psrldq $0x4,%xmm0
  por    %xmm0,%xmm2
  movd   %xmm2,%eax
  test   $0xf,%dil
  je     L147
L185:
  movslq %ecx,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x1(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x2(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x3(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x4(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x5(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x6(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x7(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x8(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0x9(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0xa(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0xb(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0xc(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  lea    0xd(%rcx),%esi
  cmp    %esi,%edi
  jle    L89
  movslq %esi,%rsi
  add    $0xe,%ecx
  movsbl (%rdx,%rsi,1),%esi
  or     %esi,%eax
  cmp    %ecx,%edi
  jle    L89
  movslq %ecx,%rcx
  movsbl (%rdx,%rcx,1),%edx
  or     %edx,%eax
  ret
L102:
  xor    %eax,%eax
L89:
  ret
  nopl   0x0(%rax,%rax,1)
L163:
  movslq %esi,%r9
  xor    %eax,%eax
  xor    %ecx,%ecx
  nop
L121:
  movsbl (%rdx),%r8d
  add    %esi,%ecx
  add    %r9,%rdx
  or     %r8d,%eax
  cmp    %ecx,%edi
  jg     L121
  ret
L112:
  xor    %eax,%eax
  xor    %ecx,%ecx
  jmp    L185
L147:
  ret
```

assistant: ```c
int reads(int size, int stride, char *buf) {
  int i, s = 0;
  for (i = 0; i < size; i += stride) {
    s |= buf[i];
  }
  return s;
}
```