user: 请将以下的汇编代码转换成C语言代码:

```asm
<main1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x830,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movw   $0x0,-0x1826(%rbp)
  jmp    L283
L213:
  movzwl -0x1826(%rbp),%eax
  cltq
  movzwl -0x1826(%rbp),%edx
  mov    %dx,-0x810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L283:
  cmpw   $0x3ff,-0x1826(%rbp)
  jbe    L213
  movw   $0x0,-0x1826(%rbp)
  jmp    L377
L8:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1824(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1822(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1820(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x181e(%rbp)
  movzwl -0x1824(%rbp),%eax
  shl    $0x3,%eax
  mov    %ax,-0x181c(%rbp)
  movzwl -0x1822(%rbp),%eax
  add    $0x7,%eax
  mov    %ax,-0x181a(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x6,%eax
  mov    %ax,-0x1818(%rbp)
  movzwl -0x181e(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  mov    %ax,-0x1816(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x4,%eax
  mov    %ax,-0x1814(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x3,%eax
  mov    %ax,-0x1812(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x181c(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x181a(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1818(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1816(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x181c(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x181a(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1814(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1812(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L377:
  cmpw   $0x7f,-0x1826(%rbp)
  jbe    L8
  movw   $0x0,-0x1826(%rbp)
  jmp    L180
L75:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1824(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1822(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1820(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x181e(%rbp)
  movzwl -0x1824(%rbp),%eax
  shl    $0x3,%eax
  mov    %ax,-0x181c(%rbp)
  movzwl -0x1822(%rbp),%eax
  add    $0x7,%eax
  mov    %ax,-0x181a(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x6,%eax
  mov    %ax,-0x1818(%rbp)
  movzwl -0x181e(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  mov    %ax,-0x1816(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x4,%eax
  mov    %ax,-0x1814(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x3,%eax
  mov    %ax,-0x1812(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x181c(%rbp)
  jne    L33
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x181a(%rbp)
  jne    L33
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x1818(%rbp)
  jne    L33
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x1816(%rbp)
  je     L40
L33:
  mov    $0x0,%eax
  call   <abort@plt>
L40:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x181c(%rbp)
  jne    L295
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x181a(%rbp)
  jne    L295
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x1814(%rbp)
  jne    L295
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x1812(%rbp)
  je     L86
L295:
  mov    $0x0,%eax
  call   <abort@plt>
L86:
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L180:
  cmpw   $0x7f,-0x1826(%rbp)
  jbe    L75
  movw   $0x0,-0x1826(%rbp)
  jmp    L15
L173:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1824(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1822(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1820(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x181e(%rbp)
  movzwl -0x1824(%rbp),%eax
  add    $0x8,%eax
  mov    %ax,-0x181c(%rbp)
  movzwl -0x1822(%rbp),%eax
  add    $0x7,%eax
  mov    %ax,-0x181a(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x6,%eax
  mov    %ax,-0x1818(%rbp)
  movzwl -0x181e(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  mov    %ax,-0x1816(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x4,%eax
  mov    %ax,-0x1814(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x3,%eax
  mov    %ax,-0x1812(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x181c(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x181a(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1818(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1816(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x181c(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x181a(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1814(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1812(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L15:
  cmpw   $0x7f,-0x1826(%rbp)
  jbe    L173
  movw   $0x0,-0x1826(%rbp)
  jmp    L276
L39:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1824(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1822(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1820(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x181e(%rbp)
  movzwl -0x1824(%rbp),%eax
  add    $0x8,%eax
  mov    %ax,-0x181c(%rbp)
  movzwl -0x1822(%rbp),%eax
  add    $0x7,%eax
  mov    %ax,-0x181a(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x6,%eax
  mov    %ax,-0x1818(%rbp)
  movzwl -0x181e(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  mov    %ax,-0x1816(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x4,%eax
  mov    %ax,-0x1814(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x3,%eax
  mov    %ax,-0x1812(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x181c(%rbp)
  jne    L310
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x181a(%rbp)
  jne    L310
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x1818(%rbp)
  jne    L310
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x1816(%rbp)
  je     L378
L310:
  mov    $0x0,%eax
  call   <abort@plt>
L378:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x181c(%rbp)
  jne    L38
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x181a(%rbp)
  jne    L38
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x1814(%rbp)
  jne    L38
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x1812(%rbp)
  je     L326
L38:
  mov    $0x0,%eax
  call   <abort@plt>
L326:
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L276:
  cmpw   $0x7f,-0x1826(%rbp)
  jbe    L39
  movw   $0x0,-0x1826(%rbp)
  jmp    L63
L268:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1824(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1822(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1820(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x181e(%rbp)
  movzwl -0x1824(%rbp),%eax
  add    $0x8,%eax
  mov    %ax,-0x181c(%rbp)
  movzwl -0x1822(%rbp),%eax
  add    $0x7,%eax
  mov    %ax,-0x181a(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x6,%eax
  mov    %ax,-0x1818(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x5,%eax
  mov    %ax,-0x1816(%rbp)
  movzwl -0x1820(%rbp),%eax
  shl    $0x2,%eax
  mov    %ax,-0x1814(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x3,%eax
  mov    %ax,-0x1812(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x181c(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x181a(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1818(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1816(%rbp),%edx
  mov    %dx,-0x1810(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x181c(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x181a(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1814(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1812(%rbp),%edx
  mov    %dx,-0x1010(%rbp,%rax,2)
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L63:
  cmpw   $0x7f,-0x1826(%rbp)
  jbe    L268
  movw   $0x0,-0x1826(%rbp)
  jmp    L137
L274:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1824(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1822(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x1820(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x810(%rbp,%rax,2),%eax
  mov    %ax,-0x181e(%rbp)
  movzwl -0x1824(%rbp),%eax
  add    $0x8,%eax
  mov    %ax,-0x181c(%rbp)
  movzwl -0x1822(%rbp),%eax
  add    $0x7,%eax
  mov    %ax,-0x181a(%rbp)
  movzwl -0x1820(%rbp),%eax
  add    $0x6,%eax
  mov    %ax,-0x1818(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x5,%eax
  mov    %ax,-0x1816(%rbp)
  movzwl -0x1820(%rbp),%eax
  shl    $0x2,%eax
  mov    %ax,-0x1814(%rbp)
  movzwl -0x181e(%rbp),%eax
  add    $0x3,%eax
  mov    %ax,-0x1812(%rbp)
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x181c(%rbp)
  jne    L179
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x181a(%rbp)
  jne    L179
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x1818(%rbp)
  jne    L179
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1810(%rbp,%rax,2),%eax
  cmp    %ax,-0x1816(%rbp)
  je     L277
L179:
  mov    $0x0,%eax
  call   <abort@plt>
L277:
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x181c(%rbp)
  jne    L240
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x1,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x181a(%rbp)
  jne    L240
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x2,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x1814(%rbp)
  jne    L240
  movzwl -0x1826(%rbp),%eax
  shl    $0x2,%eax
  add    $0x3,%eax
  cltq
  movzwl -0x1010(%rbp,%rax,2),%eax
  cmp    %ax,-0x1812(%rbp)
  je     L211
L240:
  mov    $0x0,%eax
  call   <abort@plt>
L211:
  movzwl -0x1826(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1826(%rbp)
L137:
  cmpw   $0x7f,-0x1826(%rbp)
  jbe    L274
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L189
  call   <__stack_chk_fail@plt>
L189:
  leave
  ret
```

assistant: ```c
int main1() {
  unsigned short i;
  unsigned short out[128 * 8], out2[128 * 8], b0, b1, b2, b3, b4, a0, a1, a2, a3, b5;
  unsigned short in[128 * 8];
  for (i = 0; i < 128 * 8; i++) {
    in[i] = i;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 * 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    out[i * 4] = b0;
    out[i * 4 + 1] = b1;
    out[i * 4 + 2] = b2;
    out[i * 4 + 3] = b3;
    out2[i * 4] = b0;
    out2[i * 4 + 1] = b1;
    out2[i * 4 + 2] = b4;
    out2[i * 4 + 3] = b5;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 * 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    if (out[i * 4] != b0 || out[i * 4 + 1] != b1 || out[i * 4 + 2] != b2 || out[i * 4 + 3] != b3)
      abort();
    if (out2[i * 4] != b0 || out2[i * 4 + 1] != b1 || out2[i * 4 + 2] != b4 || out2[i * 4 + 3] != b5)
      abort();
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    out[i * 4] = b0;
    out[i * 4 + 1] = b1;
    out[i * 4 + 2] = b2;
    out[i * 4 + 3] = b3;
    out2[i * 4] = b0;
    out2[i * 4 + 1] = b1;
    out2[i * 4 + 2] = b4;
    out2[i * 4 + 3] = b5;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 * 5;
    b4 = a2 + 4;
    b5 = a3 + 3;
    if (out[i * 4] != b0 || out[i * 4 + 1] != b1 || out[i * 4 + 2] != b2 || out[i * 4 + 3] != b3)
      abort();
    if (out2[i * 4] != b0 || out2[i * 4 + 1] != b1 || out2[i * 4 + 2] != b4 || out2[i * 4 + 3] != b5)
      abort();
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 + 5;
    b4 = a2 * 4;
    b5 = a3 + 3;
    out[i * 4] = b0;
    out[i * 4 + 1] = b1;
    out[i * 4 + 2] = b2;
    out[i * 4 + 3] = b3;
    out2[i * 4] = b0;
    out2[i * 4 + 1] = b1;
    out2[i * 4 + 2] = b4;
    out2[i * 4 + 3] = b5;
  }
  for (i = 0; i < 128; i++) {
    a0 = in[i * 4];
    a1 = in[i * 4 + 1];
    a2 = in[i * 4 + 2];
    a3 = in[i * 4 + 3];
    b0 = a0 + 8;
    b1 = a1 + 7;
    b2 = a2 + 6;
    b3 = a3 + 5;
    b4 = a2 * 4;
    b5 = a3 + 3;
    if (out[i * 4] != b0 || out[i * 4 + 1] != b1 || out[i * 4 + 2] != b2 || out[i * 4 + 3] != b3)
      abort();
    if (out2[i * 4] != b0 || out2[i * 4 + 1] != b1 || out2[i * 4 + 2] != b4 || out2[i * 4 + 3] != b5)
      abort();
  }
  return 0;
}
```