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

```asm
<main1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x560,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x1,-0x2d0(%rbp)
  movl   $0x1,-0x2cc(%rbp)
  movl   $0x0,-0x2c8(%rbp)
  movl   $0x0,-0x2c4(%rbp)
  movl   $0x1,-0x2c0(%rbp)
  movl   $0x0,-0x2bc(%rbp)
  movl   $0x1,-0x2b8(%rbp)
  movl   $0x0,-0x2b4(%rbp)
  movl   $0x1,-0x2b0(%rbp)
  movl   $0x1,-0x2ac(%rbp)
  movl   $0x0,-0x2a8(%rbp)
  movl   $0x0,-0x2a4(%rbp)
  movl   $0x1,-0x2a0(%rbp)
  movl   $0x0,-0x29c(%rbp)
  movl   $0x1,-0x298(%rbp)
  movl   $0x0,-0x294(%rbp)
  movl   $0x1,-0x290(%rbp)
  movl   $0x1,-0x28c(%rbp)
  movl   $0x0,-0x288(%rbp)
  movl   $0x0,-0x284(%rbp)
  movl   $0x1,-0x280(%rbp)
  movl   $0x0,-0x27c(%rbp)
  movl   $0x1,-0x278(%rbp)
  movl   $0x0,-0x274(%rbp)
  movl   $0x1,-0x270(%rbp)
  movl   $0x1,-0x26c(%rbp)
  movl   $0x0,-0x268(%rbp)
  movl   $0x0,-0x264(%rbp)
  movl   $0x1,-0x260(%rbp)
  movl   $0x0,-0x25c(%rbp)
  movl   $0x1,-0x258(%rbp)
  movl   $0x0,-0x254(%rbp)
  movl   $0x1,-0x250(%rbp)
  movl   $0x1,-0x24c(%rbp)
  movl   $0x0,-0x248(%rbp)
  movl   $0x0,-0x244(%rbp)
  movl   $0x1,-0x240(%rbp)
  movl   $0x0,-0x23c(%rbp)
  movl   $0x1,-0x238(%rbp)
  movl   $0x0,-0x234(%rbp)
  movl   $0x1,-0x230(%rbp)
  movl   $0x1,-0x22c(%rbp)
  movl   $0x0,-0x228(%rbp)
  movl   $0x0,-0x224(%rbp)
  movl   $0x1,-0x220(%rbp)
  movl   $0x0,-0x21c(%rbp)
  movl   $0x1,-0x218(%rbp)
  movl   $0x0,-0x214(%rbp)
  movl   $0x1,-0x210(%rbp)
  movl   $0x1,-0x20c(%rbp)
  movl   $0x0,-0x208(%rbp)
  movl   $0x0,-0x204(%rbp)
  movl   $0x1,-0x200(%rbp)
  movl   $0x0,-0x1fc(%rbp)
  movl   $0x1,-0x1f8(%rbp)
  movl   $0x0,-0x1f4(%rbp)
  movl   $0x1,-0x1f0(%rbp)
  movl   $0x1,-0x1ec(%rbp)
  movl   $0x0,-0x1e8(%rbp)
  movl   $0x0,-0x1e4(%rbp)
  movl   $0x1,-0x1e0(%rbp)
  movl   $0x0,-0x1dc(%rbp)
  movl   $0x1,-0x1d8(%rbp)
  movl   $0x0,-0x1d4(%rbp)
  movl   $0x1,-0x1d0(%rbp)
  movl   $0x1,-0x1cc(%rbp)
  movl   $0x0,-0x1c8(%rbp)
  movl   $0x0,-0x1c4(%rbp)
  movl   $0x1,-0x1c0(%rbp)
  movl   $0x0,-0x1bc(%rbp)
  movl   $0x1,-0x1b8(%rbp)
  movl   $0x0,-0x1b4(%rbp)
  movl   $0x1,-0x1b0(%rbp)
  movl   $0x1,-0x1ac(%rbp)
  movl   $0x0,-0x1a8(%rbp)
  movl   $0x0,-0x1a4(%rbp)
  movl   $0x1,-0x1a0(%rbp)
  movl   $0x0,-0x19c(%rbp)
  movl   $0x1,-0x198(%rbp)
  movl   $0x0,-0x194(%rbp)
  movl   $0x1,-0x190(%rbp)
  movl   $0x1,-0x18c(%rbp)
  movl   $0x0,-0x188(%rbp)
  movl   $0x0,-0x184(%rbp)
  movl   $0x1,-0x180(%rbp)
  movl   $0x0,-0x17c(%rbp)
  movl   $0x1,-0x178(%rbp)
  movl   $0x0,-0x174(%rbp)
  movl   $0x1,-0x170(%rbp)
  movl   $0x1,-0x16c(%rbp)
  movl   $0x0,-0x168(%rbp)
  movl   $0x0,-0x164(%rbp)
  movl   $0x1,-0x160(%rbp)
  movl   $0x0,-0x15c(%rbp)
  movl   $0x1,-0x158(%rbp)
  movl   $0x0,-0x154(%rbp)
  movl   $0x1,-0x150(%rbp)
  movl   $0x1,-0x14c(%rbp)
  movl   $0x0,-0x148(%rbp)
  movl   $0x0,-0x144(%rbp)
  movl   $0x1,-0x140(%rbp)
  movl   $0x0,-0x13c(%rbp)
  movl   $0x1,-0x138(%rbp)
  movl   $0x0,-0x134(%rbp)
  movl   $0x1,-0x130(%rbp)
  movl   $0x1,-0x12c(%rbp)
  movl   $0x0,-0x128(%rbp)
  movl   $0x0,-0x124(%rbp)
  movl   $0x1,-0x120(%rbp)
  movl   $0x0,-0x11c(%rbp)
  movl   $0x1,-0x118(%rbp)
  movl   $0x0,-0x114(%rbp)
  movl   $0x1,-0x110(%rbp)
  movl   $0x1,-0x10c(%rbp)
  movl   $0x0,-0x108(%rbp)
  movl   $0x0,-0x104(%rbp)
  movl   $0x1,-0x100(%rbp)
  movl   $0x0,-0xfc(%rbp)
  movl   $0x1,-0xf8(%rbp)
  movl   $0x0,-0xf4(%rbp)
  movl   $0x1,-0xf0(%rbp)
  movl   $0x1,-0xec(%rbp)
  movl   $0x0,-0xe8(%rbp)
  movl   $0x0,-0xe4(%rbp)
  movl   $0x1,-0xe0(%rbp)
  movl   $0x0,-0xdc(%rbp)
  movl   $0x1,-0xd8(%rbp)
  movl   $0x0,-0xd4(%rbp)
  movabs $0x1000100000101,%rax
  movabs $0x1000100000101,%rdx
  mov    %rax,-0x90(%rbp)
  mov    %rdx,-0x88(%rbp)
  mov    %rax,-0x80(%rbp)
  mov    %rdx,-0x78(%rbp)
  mov    %rax,-0x70(%rbp)
  mov    %rdx,-0x68(%rbp)
  mov    %rax,-0x60(%rbp)
  mov    %rdx,-0x58(%rbp)
  mov    %rax,-0x50(%rbp)
  mov    %rdx,-0x48(%rbp)
  mov    %rax,-0x40(%rbp)
  mov    %rdx,-0x38(%rbp)
  mov    %rax,-0x30(%rbp)
  mov    %rdx,-0x28(%rbp)
  mov    %rax,-0x20(%rbp)
  mov    %rdx,-0x18(%rbp)
  movw   $0x1,-0x4d0(%rbp)
  movw   $0x1,-0x4ce(%rbp)
  movw   $0x0,-0x4cc(%rbp)
  movw   $0x0,-0x4ca(%rbp)
  movw   $0x1,-0x4c8(%rbp)
  movw   $0x0,-0x4c6(%rbp)
  movw   $0x1,-0x4c4(%rbp)
  movw   $0x0,-0x4c2(%rbp)
  movw   $0x1,-0x4c0(%rbp)
  movw   $0x1,-0x4be(%rbp)
  movw   $0x0,-0x4bc(%rbp)
  movw   $0x0,-0x4ba(%rbp)
  movw   $0x1,-0x4b8(%rbp)
  movw   $0x0,-0x4b6(%rbp)
  movw   $0x1,-0x4b4(%rbp)
  movw   $0x0,-0x4b2(%rbp)
  movw   $0x1,-0x4b0(%rbp)
  movw   $0x1,-0x4ae(%rbp)
  movw   $0x0,-0x4ac(%rbp)
  movw   $0x0,-0x4aa(%rbp)
  movw   $0x1,-0x4a8(%rbp)
  movw   $0x0,-0x4a6(%rbp)
  movw   $0x1,-0x4a4(%rbp)
  movw   $0x0,-0x4a2(%rbp)
  movw   $0x1,-0x4a0(%rbp)
  movw   $0x1,-0x49e(%rbp)
  movw   $0x0,-0x49c(%rbp)
  movw   $0x0,-0x49a(%rbp)
  movw   $0x1,-0x498(%rbp)
  movw   $0x0,-0x496(%rbp)
  movw   $0x1,-0x494(%rbp)
  movw   $0x0,-0x492(%rbp)
  movw   $0x1,-0x490(%rbp)
  movw   $0x1,-0x48e(%rbp)
  movw   $0x0,-0x48c(%rbp)
  movw   $0x0,-0x48a(%rbp)
  movw   $0x1,-0x488(%rbp)
  movw   $0x0,-0x486(%rbp)
  movw   $0x1,-0x484(%rbp)
  movw   $0x0,-0x482(%rbp)
  movw   $0x1,-0x480(%rbp)
  movw   $0x1,-0x47e(%rbp)
  movw   $0x0,-0x47c(%rbp)
  movw   $0x0,-0x47a(%rbp)
  movw   $0x1,-0x478(%rbp)
  movw   $0x0,-0x476(%rbp)
  movw   $0x1,-0x474(%rbp)
  movw   $0x0,-0x472(%rbp)
  movw   $0x1,-0x470(%rbp)
  movw   $0x1,-0x46e(%rbp)
  movw   $0x0,-0x46c(%rbp)
  movw   $0x0,-0x46a(%rbp)
  movw   $0x1,-0x468(%rbp)
  movw   $0x0,-0x466(%rbp)
  movw   $0x1,-0x464(%rbp)
  movw   $0x0,-0x462(%rbp)
  movw   $0x1,-0x460(%rbp)
  movw   $0x1,-0x45e(%rbp)
  movw   $0x0,-0x45c(%rbp)
  movw   $0x0,-0x45a(%rbp)
  movw   $0x1,-0x458(%rbp)
  movw   $0x0,-0x456(%rbp)
  movw   $0x1,-0x454(%rbp)
  movw   $0x0,-0x452(%rbp)
  movw   $0x1,-0x450(%rbp)
  movw   $0x1,-0x44e(%rbp)
  movw   $0x0,-0x44c(%rbp)
  movw   $0x0,-0x44a(%rbp)
  movw   $0x1,-0x448(%rbp)
  movw   $0x0,-0x446(%rbp)
  movw   $0x1,-0x444(%rbp)
  movw   $0x0,-0x442(%rbp)
  movw   $0x1,-0x440(%rbp)
  movw   $0x1,-0x43e(%rbp)
  movw   $0x0,-0x43c(%rbp)
  movw   $0x0,-0x43a(%rbp)
  movw   $0x1,-0x438(%rbp)
  movw   $0x0,-0x436(%rbp)
  movw   $0x1,-0x434(%rbp)
  movw   $0x0,-0x432(%rbp)
  movw   $0x1,-0x430(%rbp)
  movw   $0x1,-0x42e(%rbp)
  movw   $0x0,-0x42c(%rbp)
  movw   $0x0,-0x42a(%rbp)
  movw   $0x1,-0x428(%rbp)
  movw   $0x0,-0x426(%rbp)
  movw   $0x1,-0x424(%rbp)
  movw   $0x0,-0x422(%rbp)
  movw   $0x1,-0x420(%rbp)
  movw   $0x1,-0x41e(%rbp)
  movw   $0x0,-0x41c(%rbp)
  movw   $0x0,-0x41a(%rbp)
  movw   $0x1,-0x418(%rbp)
  movw   $0x0,-0x416(%rbp)
  movw   $0x1,-0x414(%rbp)
  movw   $0x0,-0x412(%rbp)
  movw   $0x1,-0x410(%rbp)
  movw   $0x1,-0x40e(%rbp)
  movw   $0x0,-0x40c(%rbp)
  movw   $0x0,-0x40a(%rbp)
  movw   $0x1,-0x408(%rbp)
  movw   $0x0,-0x406(%rbp)
  movw   $0x1,-0x404(%rbp)
  movw   $0x0,-0x402(%rbp)
  movw   $0x1,-0x400(%rbp)
  movw   $0x1,-0x3fe(%rbp)
  movw   $0x0,-0x3fc(%rbp)
  movw   $0x0,-0x3fa(%rbp)
  movw   $0x1,-0x3f8(%rbp)
  movw   $0x0,-0x3f6(%rbp)
  movw   $0x1,-0x3f4(%rbp)
  movw   $0x0,-0x3f2(%rbp)
  movw   $0x1,-0x3f0(%rbp)
  movw   $0x1,-0x3ee(%rbp)
  movw   $0x0,-0x3ec(%rbp)
  movw   $0x0,-0x3ea(%rbp)
  movw   $0x1,-0x3e8(%rbp)
  movw   $0x0,-0x3e6(%rbp)
  movw   $0x1,-0x3e4(%rbp)
  movw   $0x0,-0x3e2(%rbp)
  movw   $0x1,-0x3e0(%rbp)
  movw   $0x1,-0x3de(%rbp)
  movw   $0x0,-0x3dc(%rbp)
  movw   $0x0,-0x3da(%rbp)
  movw   $0x1,-0x3d8(%rbp)
  movw   $0x0,-0x3d6(%rbp)
  movw   $0x1,-0x3d4(%rbp)
  movw   $0x0,-0x3d2(%rbp)
  movl   $0x0,-0x554(%rbp)
  jmp    L174
L81:
  mov    -0x554(%rbp),%eax
  cltq
  mov    -0x2d0(%rbp,%rax,4),%eax
  test   %eax,%eax
  je     L172
  mov    -0x554(%rbp),%eax
  cltq
  mov    -0x1d0(%rbp,%rax,4),%eax
  test   %eax,%eax
  je     L172
  mov    $0x1,%edx
  jmp    L64
L172:
  mov    $0x0,%edx
L64:
  mov    -0x554(%rbp),%eax
  cltq
  mov    %edx,-0x3d0(%rbp,%rax,4)
  addl   $0x1,-0x554(%rbp)
L174:
  cmpl   $0x3f,-0x554(%rbp)
  jle    L81
  movl   $0x0,-0x554(%rbp)
  jmp    L71
L97:
  mov    -0x554(%rbp),%eax
  cltq
  mov    -0x3d0(%rbp,%rax,4),%edx
  mov    -0x554(%rbp),%eax
  cltq
  mov    -0x2d0(%rbp,%rax,4),%eax
  cmp    %eax,%edx
  je     L123
  mov    -0x554(%rbp),%eax
  cltq
  mov    -0x1d0(%rbp,%rax,4),%eax
  test   %eax,%eax
  je     L123
  mov    $0x0,%eax
  call   <abort@plt>
L123:
  addl   $0x1,-0x554(%rbp)
L71:
  cmpl   $0x3f,-0x554(%rbp)
  jle    L97
  movl   $0x0,-0x554(%rbp)
  jmp    L181
L110:
  mov    -0x554(%rbp),%eax
  cltq
  movzbl -0x90(%rbp,%rax,1),%eax
  test   %al,%al
  je     L105
  mov    -0x554(%rbp),%eax
  cltq
  movzbl -0x50(%rbp,%rax,1),%eax
  test   %al,%al
  je     L105
  mov    $0x1,%eax
  jmp    L193
L105:
  mov    $0x0,%eax
L193:
  mov    %eax,%edx
  mov    -0x554(%rbp),%eax
  cltq
  mov    %dl,-0xd0(%rbp,%rax,1)
  addl   $0x1,-0x554(%rbp)
L181:
  cmpl   $0x3f,-0x554(%rbp)
  jle    L110
  movl   $0x0,-0x554(%rbp)
  jmp    L127
L239:
  mov    -0x554(%rbp),%eax
  cltq
  movzbl -0xd0(%rbp,%rax,1),%edx
  mov    -0x554(%rbp),%eax
  cltq
  movzbl -0x90(%rbp,%rax,1),%eax
  cmp    %al,%dl
  je     L117
  mov    -0x554(%rbp),%eax
  cltq
  movzbl -0x50(%rbp,%rax,1),%eax
  test   %al,%al
  je     L117
  mov    $0x0,%eax
  call   <abort@plt>
L117:
  addl   $0x1,-0x554(%rbp)
L127:
  cmpl   $0x3f,-0x554(%rbp)
  jle    L239
  movl   $0x0,-0x554(%rbp)
  jmp    L206
L13:
  mov    -0x554(%rbp),%eax
  cltq
  movzwl -0x4d0(%rbp,%rax,2),%eax
  test   %ax,%ax
  je     L128
  mov    -0x554(%rbp),%eax
  cltq
  movzwl -0x450(%rbp,%rax,2),%eax
  test   %ax,%ax
  je     L128
  mov    $0x1,%eax
  jmp    L237
L128:
  mov    $0x0,%eax
L237:
  mov    %eax,%edx
  mov    -0x554(%rbp),%eax
  cltq
  mov    %dx,-0x550(%rbp,%rax,2)
  addl   $0x1,-0x554(%rbp)
L206:
  cmpl   $0x3f,-0x554(%rbp)
  jle    L13
  movl   $0x0,-0x554(%rbp)
  jmp    L57
L197:
  mov    -0x554(%rbp),%eax
  cltq
  movzwl -0x550(%rbp,%rax,2),%edx
  mov    -0x554(%rbp),%eax
  cltq
  movzwl -0x4d0(%rbp,%rax,2),%eax
  cmp    %ax,%dx
  je     L124
  mov    -0x554(%rbp),%eax
  cltq
  movzwl -0x450(%rbp,%rax,2),%eax
  test   %ax,%ax
  je     L124
  mov    $0x0,%eax
  call   <abort@plt>
L124:
  addl   $0x1,-0x554(%rbp)
L57:
  cmpl   $0x3f,-0x554(%rbp)
  jle    L197
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L133
  call   <__stack_chk_fail@plt>
L133:
  leave
  ret
```

assistant: ```c
__attribute__((no)) int main1() {
  int i;
  int ia[64];
  int ib[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  int ic[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  char ca[64];
  char cb[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  char cc[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  short sa[64];
  short sb[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  short sc[64] = {1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0};
  for (i = 0; i < 64; i++) {
    ia[i] = ib[i] && ic[i];
  }
  for (i = 0; i < 64; i++) {
    if (ia[i] != ib[i] && ic[i])
      abort();
  }
  for (i = 0; i < 64; i++) {
    ca[i] = cb[i] && cc[i];
  }
  for (i = 0; i < 64; i++) {
    if (ca[i] != cb[i] && cc[i])
      abort();
  }
  for (i = 0; i < 64; i++) {
    sa[i] = sb[i] && sc[i];
  }
  for (i = 0; i < 64; i++) {
    if (sa[i] != sb[i] && sc[i])
      abort();
  }
  return 0;
}
```