user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main1>:
  endbr64
  push   %r14
  push   %rbx
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x418,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1408(%rsp)
  xor    %eax,%eax
L210:
  mov    %ax,0xc00(%rsp,%rax,2)
  add    $0x1,%rax
  cmp    $0x400,%rax
  jne    L210
  lea    0xc00(%rsp),%rdi
  lea    0x400(%rsp),%rsi
  mov    %rsp,%r8
  lea    0x1400(%rsp),%r10
  mov    %r8,%rcx
  mov    %rsi,%rdx
  mov    %rdi,%rax
L302:
  movzwl (%rax),%r9d
  mov    %r9w,(%rdx)
  movzwl 0x2(%rax),%r9d
  mov    %r9w,0x2(%rdx)
  movzwl 0x4(%rax),%r9d
  mov    %r9w,0x4(%rdx)
  movzwl 0x6(%rax),%r9d
  mov    %r9w,0x6(%rdx)
  movzwl 0x8(%rax),%r9d
  mov    %r9w,0x8(%rdx)
  movzwl 0xa(%rax),%r9d
  mov    %r9w,0xa(%rdx)
  movzwl 0xc(%rax),%r9d
  mov    %r9w,0xc(%rdx)
  movzwl 0xe(%rax),%r9d
  mov    %r9w,0xe(%rdx)
  movl   $0x7,(%rcx)
  add    $0x10,%rax
  add    $0x10,%rdx
  add    $0x4,%rcx
  cmp    %r10,%rax
  jne    L302
  lea    0x800(%rsi),%r9
  mov    %r8,%rbx
  mov    %rdi,%r11
  mov    %rsi,%rcx
L338:
  movzwl (%r11),%r14d
  cmp    %r14w,(%rcx)
  jne    L288
  movzwl 0x2(%r11),%r14d
  cmp    %r14w,0x2(%rcx)
  jne    L288
  movzwl 0x4(%r11),%r14d
  cmp    %r14w,0x4(%rcx)
  jne    L288
  movzwl 0x6(%r11),%r14d
  cmp    %r14w,0x6(%rcx)
  jne    L288
  movzwl 0x8(%r11),%r14d
  cmp    %r14w,0x8(%rcx)
  jne    L288
  movzwl 0xa(%r11),%r14d
  cmp    %r14w,0xa(%rcx)
  jne    L288
  movzwl 0xc(%r11),%r14d
  cmp    %r14w,0xc(%rcx)
  jne    L288
  movzwl 0xe(%r11),%eax
  cmp    %ax,0xe(%rcx)
  jne    L288
  cmpl   $0x7,(%rbx)
  jne    L288
  add    $0x10,%rcx
  add    $0x10,%r11
  add    $0x4,%rbx
  cmp    %r9,%rcx
  jne    L338
  mov    %r8,%rcx
  mov    %rsi,%rdx
  mov    %rdi,%rax
L86:
  movzwl (%rax),%r11d
  mov    %r11w,(%rdx)
  movzwl 0x2(%rax),%r11d
  mov    %r11w,0x2(%rdx)
  movzwl 0x4(%rax),%r11d
  mov    %r11w,0x4(%rdx)
  movzwl 0x6(%rax),%r11d
  mov    %r11w,0x6(%rdx)
  movl   $0xc,(%rcx)
  add    $0x8,%rax
  add    $0x8,%rdx
  add    $0x4,%rcx
  cmp    %r10,%rax
  jne    L86
  mov    %r8,%rcx
  mov    %rdi,%rdx
  mov    %rsi,%rax
L315:
  movzwl (%rdx),%r14d
  cmp    %r14w,(%rax)
  jne    L134
  movzwl 0x2(%rdx),%r14d
  cmp    %r14w,0x2(%rax)
  jne    L134
  movzwl 0x4(%rdx),%r14d
  cmp    %r14w,0x4(%rax)
  jne    L134
  movzwl 0x6(%rdx),%r14d
  cmp    %r14w,0x6(%rax)
  jne    L134
  cmpl   $0xc,(%rcx)
  jne    L134
  add    $0x8,%rax
  add    $0x8,%rdx
  add    $0x4,%rcx
  cmp    %r9,%rax
  jne    L315
  mov    %r8,%rcx
  mov    %rsi,%rdx
  mov    %rdi,%rax
L41:
  movzwl (%rax),%r11d
  mov    %r11w,(%rdx)
  movzwl 0x2(%rax),%r11d
  mov    %r11w,0x2(%rdx)
  movzwl 0x4(%rax),%r11d
  mov    %r11w,0x4(%rdx)
  movzwl 0x6(%rax),%r11d
  mov    %r11w,0x6(%rdx)
  movzwl 0x8(%rax),%r11d
  mov    %r11w,0x8(%rdx)
  movzwl 0xa(%rax),%r11d
  mov    %r11w,0xa(%rdx)
  movzwl 0xc(%rax),%r11d
  mov    %r11w,0xc(%rdx)
  movzwl 0xe(%rax),%r11d
  mov    %r11w,0xe(%rdx)
  movzwl 0x10(%rax),%r11d
  mov    %r11w,0x10(%rdx)
  movzwl 0x12(%rax),%r11d
  mov    %r11w,0x12(%rdx)
  movzwl 0x14(%rax),%r11d
  mov    %r11w,0x14(%rdx)
  movzwl 0x16(%rax),%r11d
  mov    %r11w,0x16(%rdx)
  movzwl 0x18(%rax),%r11d
  mov    %r11w,0x18(%rdx)
  movzwl 0x1a(%rax),%r11d
  mov    %r11w,0x1a(%rdx)
  movzwl 0x1c(%rax),%r11d
  mov    %r11w,0x1c(%rdx)
  movzwl 0x1e(%rax),%r11d
  mov    %r11w,0x1e(%rdx)
  movl   $0x15,(%rcx)
  add    $0x20,%rax
  add    $0x20,%rdx
  add    $0x4,%rcx
  cmp    %r10,%rax
  jne    L41
L294:
  movzwl (%rdi),%ebx
  cmp    %bx,(%rsi)
  jne    L301
  movzwl 0x2(%rdi),%ebx
  cmp    %bx,0x2(%rsi)
  jne    L301
  movzwl 0x4(%rdi),%ebx
  cmp    %bx,0x4(%rsi)
  jne    L301
  movzwl 0x6(%rdi),%ebx
  cmp    %bx,0x6(%rsi)
  jne    L301
  movzwl 0x8(%rdi),%ebx
  cmp    %bx,0x8(%rsi)
  jne    L301
  movzwl 0xa(%rdi),%ebx
  cmp    %bx,0xa(%rsi)
  jne    L301
  movzwl 0xc(%rdi),%ecx
  cmp    %cx,0xc(%rsi)
  jne    L301
  movzwl 0xe(%rdi),%ebx
  cmp    %bx,0xe(%rsi)
  jne    L301
  movzwl 0x10(%rdi),%ecx
  cmp    %cx,0x10(%rsi)
  jne    L301
  movzwl 0x12(%rdi),%ebx
  cmp    %bx,0x12(%rsi)
  jne    L301
  movzwl 0x14(%rdi),%ecx
  cmp    %cx,0x14(%rsi)
  jne    L301
  movzwl 0x16(%rdi),%ebx
  cmp    %bx,0x16(%rsi)
  jne    L301
  movzwl 0x18(%rdi),%ecx
  cmp    %cx,0x18(%rsi)
  jne    L301
  movzwl 0x1a(%rdi),%ebx
  cmp    %bx,0x1a(%rsi)
  jne    L301
  movzwl 0x1c(%rdi),%ecx
  cmp    %cx,0x1c(%rsi)
  jne    L301
  movzwl 0x1e(%rdi),%eax
  cmp    %ax,0x1e(%rsi)
  jne    L301
  cmpl   $0x15,(%r8)
  jne    L301
  add    $0x20,%rsi
  add    $0x20,%rdi
  add    $0x4,%r8
  cmp    %r9,%rsi
  jne    L294
  mov    0x1408(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L337
  mov    $0x0,%eax
  add    $0x1418,%rsp
  pop    %rbx
  pop    %r14
  ret
L288:
  call   <abort@plt>
L134:
  call   <abort@plt>
L301:
  call   <abort@plt>
L337:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
int main1() {
  int i;
  unsigned short out[128 * 8];
  unsigned short in[128 * 8];
  unsigned int ia[128 * 2];
  for (i = 0; i < 128 * 8; i++) {
    in[i] = i;
    asm volatile("" ::: "memory");
  }
  for (i = 0; i < 128; i++) {
    out[i * 8] = in[i * 8];
    out[i * 8 + 1] = in[i * 8 + 1];
    out[i * 8 + 2] = in[i * 8 + 2];
    out[i * 8 + 3] = in[i * 8 + 3];
    out[i * 8 + 4] = in[i * 8 + 4];
    out[i * 8 + 5] = in[i * 8 + 5];
    out[i * 8 + 6] = in[i * 8 + 6];
    out[i * 8 + 7] = in[i * 8 + 7];
    ia[i] = 7;
  }
  for (i = 0; i < 128; i++) {
    if (out[i * 8] != in[i * 8] || out[i * 8 + 1] != in[i * 8 + 1] || out[i * 8 + 2] != in[i * 8 + 2] || out[i * 8 + 3] != in[i * 8 + 3] || out[i * 8 + 4] != in[i * 8 + 4] || out[i * 8 + 5] != in[i * 8 + 5] || out[i * 8 + 6] != in[i * 8 + 6] || out[i * 8 + 7] != in[i * 8 + 7] || ia[i] != 7)
      abort();
  }
  for (i = 0; i < 128 * 2; i++) {
    out[i * 4] = in[i * 4];
    out[i * 4 + 1] = in[i * 4 + 1];
    out[i * 4 + 2] = in[i * 4 + 2];
    out[i * 4 + 3] = in[i * 4 + 3];
    ia[i] = 12;
  }
  for (i = 0; i < 128 * 2; i++) {
    if (out[i * 4] != in[i * 4] || out[i * 4 + 1] != in[i * 4 + 1] || out[i * 4 + 2] != in[i * 4 + 2] || out[i * 4 + 3] != in[i * 4 + 3] || ia[i] != 12)
      abort();
  }
  for (i = 0; i < 128 / 2; i++) {
    out[i * 16] = in[i * 16];
    out[i * 16 + 1] = in[i * 16 + 1];
    out[i * 16 + 2] = in[i * 16 + 2];
    out[i * 16 + 3] = in[i * 16 + 3];
    out[i * 16 + 4] = in[i * 16 + 4];
    out[i * 16 + 5] = in[i * 16 + 5];
    out[i * 16 + 6] = in[i * 16 + 6];
    out[i * 16 + 7] = in[i * 16 + 7];
    out[i * 16 + 8] = in[i * 16 + 8];
    out[i * 16 + 9] = in[i * 16 + 9];
    out[i * 16 + 10] = in[i * 16 + 10];
    out[i * 16 + 11] = in[i * 16 + 11];
    out[i * 16 + 12] = in[i * 16 + 12];
    out[i * 16 + 13] = in[i * 16 + 13];
    out[i * 16 + 14] = in[i * 16 + 14];
    out[i * 16 + 15] = in[i * 16 + 15];
    ia[i] = 21;
  }
  for (i = 0; i < 128 / 2; i++) {
    if (out[i * 16] != in[i * 16] || out[i * 16 + 1] != in[i * 16 + 1] || out[i * 16 + 2] != in[i * 16 + 2] || out[i * 16 + 3] != in[i * 16 + 3] || out[i * 16 + 4] != in[i * 16 + 4] || out[i * 16 + 5] != in[i * 16 + 5] || out[i * 16 + 6] != in[i * 16 + 6] || out[i * 16 + 7] != in[i * 16 + 7] || out[i * 16 + 8] != in[i * 16 + 8] || out[i * 16 + 9] != in[i * 16 + 9] || out[i * 16 + 10] != in[i * 16 + 10] || out[i * 16 + 11] != in[i * 16 + 11] || out[i * 16 + 12] != in[i * 16 + 12] || out[i * 16 + 13] != in[i * 16 + 13] || out[i * 16 + 14] != in[i * 16 + 14] || out[i * 16 + 15] != in[i * 16 + 15] || ia[i] != 21)
      abort();
  }
  return 0;
}
```