user: Please show me the C implementation that matches the assembly code listed below:

```asm
<main1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x140,%rsp
  mov    %edi,-0x104(%rbp)
  mov    %rsi,-0x110(%rbp)
  mov    %rdx,-0x118(%rbp)
  mov    %rcx,-0x120(%rbp)
  mov    %r8,-0x128(%rbp)
  mov    %r9,-0x130(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x138(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0xf4(%rbp)
  jmp    L1
L10:
  mov    -0xf4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x118(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0xf4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x110(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0xf4(%rbp),%eax
  cltq
  mov    %edx,-0xb0(%rbp,%rax,4)
  mov    -0xf4(%rbp),%eax
  cltq
  lea    (%rax,%rax,1),%rdx
  mov    -0x128(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%edx
  mov    -0xf4(%rbp),%eax
  cltq
  lea    (%rax,%rax,1),%rcx
  mov    -0x120(%rbp),%rax
  add    %rcx,%rax
  movzwl (%rax),%eax
  add    %eax,%edx
  mov    -0xf4(%rbp),%eax
  cltq
  mov    %dx,-0xf0(%rbp,%rax,2)
  mov    -0xf4(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x138(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%edx
  mov    -0xf4(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x130(%rbp),%rax
  add    %rcx,%rax
  movzbl (%rax),%eax
  add    %eax,%edx
  mov    -0xf4(%rbp),%eax
  cltq
  mov    %dl,-0x30(%rbp,%rax,1)
  addl   $0x1,-0xf4(%rbp)
L1:
  mov    -0xf4(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L10
  movl   $0x0,-0xf4(%rbp)
  jmp    L58
L36:
  mov    -0xf4(%rbp),%eax
  cltq
  mov    -0xb0(%rbp,%rax,4),%eax
  mov    -0xf4(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x118(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rdx),%ecx
  mov    -0xf4(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rsi
  mov    -0x110(%rbp),%rdx
  add    %rsi,%rdx
  mov    (%rdx),%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  jne    L20
  mov    -0xf4(%rbp),%eax
  cltq
  movzwl -0xf0(%rbp,%rax,2),%eax
  movzwl %ax,%eax
  mov    -0xf4(%rbp),%edx
  movslq %edx,%rdx
  lea    (%rdx,%rdx,1),%rcx
  mov    -0x128(%rbp),%rdx
  add    %rcx,%rdx
  movzwl (%rdx),%edx
  movzwl %dx,%ecx
  mov    -0xf4(%rbp),%edx
  movslq %edx,%rdx
  lea    (%rdx,%rdx,1),%rsi
  mov    -0x120(%rbp),%rdx
  add    %rsi,%rdx
  movzwl (%rdx),%edx
  movzwl %dx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  jne    L20
  mov    -0xf4(%rbp),%eax
  cltq
  movzbl -0x30(%rbp,%rax,1),%eax
  movzbl %al,%eax
  mov    -0xf4(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x138(%rbp),%rdx
  add    %rcx,%rdx
  movzbl (%rdx),%edx
  movzbl %dl,%ecx
  mov    -0xf4(%rbp),%edx
  movslq %edx,%rsi
  mov    -0x130(%rbp),%rdx
  add    %rsi,%rdx
  movzbl (%rdx),%edx
  movzbl %dl,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L32
L20:
  mov    $0x0,%eax
  call   <abort@plt>
L32:
  addl   $0x1,-0xf4(%rbp)
L58:
  mov    -0xf4(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L36
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L40
  call   <__stack_chk_fail@plt>
L40:
  leave
  ret
```

assistant: ```c
__attribute__((no)) int main1(int n, unsigned int *__restrict__ pic, unsigned int *__restrict__ pib, unsigned short *__restrict__ psc, unsigned short *__restrict__ psb, unsigned char *__restrict__ pcc, unsigned char *__restrict__ pcb) {
  int i;
  unsigned int ia[32];
  unsigned short sa[32];
  unsigned char ca[32];
  for (i = 0; i < n; i++) {
    ia[i] = pib[i] + pic[i];
    sa[i] = psb[i] + psc[i];
    ca[i] = pcb[i] + pcc[i];
  }
  for (i = 0; i < n; i++) {
    if (ia[i] != pib[i] + pic[i] || sa[i] != psb[i] + psc[i] || ca[i] != pcb[i] + pcc[i])
      abort();
  }
  return 0;
}
```