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

```asm
<main1>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x838,%rsp
  movdqa D23(%rip),%xmm0
  lea    0x1020(%rsp),%rbx
  lea    0x1820(%rsp),%rdx
  mov    %fs:0x28,%rax
  mov    %rax,0x1828(%rsp)
  xor    %eax,%eax
  mov    %rbx,%rax
  nop
L63:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddw  D57(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    %rdx,%rax
  jne    L63
  lea    0x400(%rbx),%rax
  lea    0x20(%rsp),%r12
  lea    0x820(%rsp),%rbp
  mov    %rax,0x8(%rsp)
  mov    %r12,%rdx
  mov    %rbx,%rax
  mov    %rbp,%rcx
  nopl   0x0(%rax,%rax,1)
L23:
  movdqa (%rax),%xmm1
  add    $0x40,%rdx
  add    $0x40,%rax
  add    $0x40,%rcx
  movdqa -0x30(%rax),%xmm4
  movdqa -0x20(%rax),%xmm2
  movdqa %xmm1,%xmm0
  movdqa -0x10(%rax),%xmm5
  movdqa %xmm1,%xmm3
  punpcklwd %xmm4,%xmm0
  punpckhwd %xmm4,%xmm3
  punpcklwd %xmm4,%xmm1
  movdqa %xmm0,%xmm6
  movdqa %xmm2,%xmm4
  punpcklwd %xmm3,%xmm0
  punpckhwd %xmm3,%xmm6
  punpcklwd %xmm5,%xmm4
  punpcklwd %xmm3,%xmm1
  movdqa %xmm2,%xmm3
  punpcklwd %xmm6,%xmm0
  punpckhwd %xmm6,%xmm1
  punpckhwd %xmm5,%xmm3
  movdqa %xmm4,%xmm6
  punpcklwd %xmm5,%xmm2
  punpckhwd %xmm3,%xmm6
  punpcklwd %xmm3,%xmm2
  punpcklwd %xmm3,%xmm4
  punpckhwd %xmm6,%xmm2
  movdqa %xmm1,%xmm7
  punpcklwd %xmm6,%xmm4
  punpcklwd %xmm2,%xmm7
  movdqa %xmm0,%xmm3
  movdqa %xmm1,%xmm5
  punpckhwd %xmm2,%xmm5
  punpcklwd %xmm4,%xmm3
  movdqa %xmm0,%xmm6
  movdqa %xmm7,%xmm8
  punpckhwd %xmm4,%xmm6
  movdqa %xmm3,%xmm9
  punpckhwd %xmm5,%xmm8
  punpcklwd %xmm5,%xmm7
  punpcklwd %xmm4,%xmm0
  punpcklwd %xmm2,%xmm1
  punpckhwd %xmm8,%xmm7
  punpckhwd %xmm6,%xmm9
  punpcklwd %xmm6,%xmm0
  punpcklwd %xmm5,%xmm1
  punpcklwd %xmm6,%xmm3
  movdqa D7(%rip),%xmm6
  punpcklwd %xmm8,%xmm1
  movdqa %xmm7,%xmm5
  punpcklwd %xmm9,%xmm0
  psllw  $0x3,%xmm0
  psllw  $0x2,%xmm5
  punpckhwd %xmm9,%xmm3
  paddw  D105(%rip),%xmm1
  paddw  %xmm3,%xmm6
  movdqa %xmm0,%xmm4
  paddw  %xmm7,%xmm5
  movdqa %xmm0,%xmm2
  punpcklwd %xmm6,%xmm4
  movdqa %xmm1,%xmm8
  punpckhwd %xmm6,%xmm2
  movdqa %xmm1,%xmm6
  punpcklwd %xmm5,%xmm8
  punpckhwd %xmm5,%xmm6
  movdqa %xmm4,%xmm5
  punpckhwd %xmm8,%xmm4
  paddw  D104(%rip),%xmm3
  punpcklwd %xmm8,%xmm5
  movaps %xmm4,-0x30(%rdx)
  movdqa %xmm2,%xmm4
  punpckhwd %xmm6,%xmm2
  paddw  D89(%rip),%xmm7
  movaps %xmm2,-0x10(%rdx)
  movdqa %xmm0,%xmm2
  punpckhwd %xmm3,%xmm0
  punpcklwd %xmm6,%xmm4
  punpcklwd %xmm3,%xmm2
  movdqa %xmm1,%xmm3
  movaps %xmm4,-0x20(%rdx)
  punpckhwd %xmm7,%xmm1
  punpcklwd %xmm7,%xmm3
  movdqa %xmm2,%xmm4
  movaps %xmm5,-0x40(%rdx)
  punpckhwd %xmm3,%xmm2
  punpcklwd %xmm3,%xmm4
  movaps %xmm2,-0x30(%rcx)
  movdqa %xmm0,%xmm2
  punpckhwd %xmm1,%xmm0
  punpcklwd %xmm1,%xmm2
  movaps %xmm4,-0x40(%rcx)
  movaps %xmm2,-0x20(%rcx)
  movaps %xmm0,-0x10(%rcx)
  cmp    0x8(%rsp),%rax
  jne    L23
  mov    %rbp,%r14
  mov    %r12,%r13
  mov    %rbx,%r15
  jmp    L262
  nop
L336:
  xor    %eax,%eax
  mov    %esi,0x18(%rsp)
  mov    %ecx,0x14(%rsp)
  call   <abort@plt>
  mov    0x18(%rsp),%esi
  mov    0x14(%rsp),%ecx
L24:
  cmp    %cx,(%r14)
  jne    L245
  cmp    %si,0x2(%r14)
  je     L222
L245:
  xor    %eax,%eax
  call   <abort@plt>
L84:
  add    $0x8,%r15
  add    $0x8,%r13
  add    $0x8,%r14
  cmp    0x8(%rsp),%r15
  je     L160
L262:
  movzwl 0x4(%r15),%eax
  mov    %ax,0x1c(%rsp)
  movzwl 0x6(%r15),%eax
  mov    %ax,0x1e(%rsp)
  movzwl (%r15),%eax
  lea    0x0(,%rax,8),%ecx
  movzwl 0x2(%r15),%eax
  lea    0x7(%rax),%esi
  cmp    %cx,0x0(%r13)
  jne    L336
  cmp    %si,0x2(%r13)
  jne    L336
  movzwl 0x1c(%rsp),%eax
  add    $0x6,%eax
  cmp    %ax,0x4(%r13)
  jne    L336
  movzwl 0x1e(%rsp),%eax
  lea    (%rax,%rax,4),%eax
  cmp    %ax,0x6(%r13)
  jne    L336
  jmp    L24
  cs nopw 0x0(%rax,%rax,1)
L222:
  movzwl 0x1c(%rsp),%eax
  add    $0x4,%eax
  cmp    %ax,0x4(%r14)
  jne    L245
  movzwl 0x1e(%rsp),%eax
  add    $0x3,%eax
  cmp    %ax,0x6(%r14)
  jne    L245
  jmp    L84
L160:
  mov    %rbp,%rcx
  mov    %r12,%rax
  mov    %rbx,%rdx
  nopl   0x0(%rax)
L404:
  movdqa (%rdx),%xmm1
  add    $0x40,%rax
  add    $0x40,%rdx
  add    $0x40,%rcx
  movdqa -0x30(%rdx),%xmm4
  movdqa -0x20(%rdx),%xmm3
  movdqa %xmm1,%xmm0
  movdqa -0x10(%rdx),%xmm5
  movdqa %xmm1,%xmm2
  punpcklwd %xmm4,%xmm0
  punpckhwd %xmm4,%xmm2
  punpcklwd %xmm4,%xmm1
  movdqa %xmm0,%xmm6
  movdqa %xmm3,%xmm4
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm2,%xmm6
  punpcklwd %xmm5,%xmm4
  punpcklwd %xmm2,%xmm1
  movdqa %xmm3,%xmm2
  punpcklwd %xmm6,%xmm0
  punpckhwd %xmm6,%xmm1
  punpckhwd %xmm5,%xmm2
  movdqa %xmm4,%xmm6
  punpcklwd %xmm5,%xmm3
  punpckhwd %xmm2,%xmm6
  punpcklwd %xmm2,%xmm4
  punpcklwd %xmm2,%xmm3
  punpcklwd %xmm6,%xmm4
  movdqa %xmm0,%xmm7
  punpckhwd %xmm6,%xmm3
  punpcklwd %xmm4,%xmm7
  movdqa %xmm0,%xmm6
  punpcklwd %xmm4,%xmm0
  punpckhwd %xmm4,%xmm6
  movdqa %xmm7,%xmm9
  movdqa %xmm1,%xmm2
  punpckhwd %xmm6,%xmm9
  punpcklwd %xmm6,%xmm0
  punpcklwd %xmm3,%xmm2
  punpcklwd %xmm9,%xmm0
  paddw  D57(%rip),%xmm0
  movdqa %xmm1,%xmm5
  punpckhwd %xmm3,%xmm5
  movdqa %xmm2,%xmm8
  punpcklwd %xmm3,%xmm1
  pextrw $0x0,%xmm0,%esi
  punpckhwd %xmm5,%xmm8
  punpcklwd %xmm5,%xmm1
  mov    %si,-0x40(%rax)
  pextrw $0x1,%xmm0,%esi
  punpcklwd %xmm5,%xmm2
  punpcklwd %xmm6,%xmm7
  mov    %si,-0x38(%rax)
  pextrw $0x2,%xmm0,%esi
  punpcklwd %xmm8,%xmm1
  paddw  D105(%rip),%xmm1
  mov    %si,-0x30(%rax)
  pextrw $0x3,%xmm0,%esi
  punpckhwd %xmm9,%xmm7
  movdqa D7(%rip),%xmm5
  mov    %si,-0x28(%rax)
  pextrw $0x4,%xmm0,%esi
  punpckhwd %xmm8,%xmm2
  movdqa %xmm1,%xmm3
  mov    %si,-0x20(%rax)
  pextrw $0x5,%xmm0,%esi
  paddw  %xmm7,%xmm5
  movdqa %xmm2,%xmm4
  mov    %si,-0x18(%rax)
  pextrw $0x6,%xmm0,%esi
  psllw  $0x2,%xmm4
  paddw  D104(%rip),%xmm7
  mov    %si,-0x10(%rax)
  pextrw $0x7,%xmm0,%esi
  paddw  %xmm2,%xmm4
  paddw  D89(%rip),%xmm2
  mov    %si,-0x8(%rax)
  pextrw $0x0,%xmm1,%esi
  mov    %si,-0x3e(%rax)
  pextrw $0x1,%xmm1,%esi
  punpcklwd %xmm2,%xmm3
  mov    %si,-0x36(%rax)
  pextrw $0x2,%xmm1,%esi
  mov    %si,-0x2e(%rax)
  pextrw $0x3,%xmm1,%esi
  mov    %si,-0x26(%rax)
  pextrw $0x4,%xmm1,%esi
  mov    %si,-0x1e(%rax)
  pextrw $0x5,%xmm1,%esi
  mov    %si,-0x16(%rax)
  pextrw $0x6,%xmm1,%esi
  mov    %si,-0xe(%rax)
  pextrw $0x7,%xmm1,%esi
  punpckhwd %xmm2,%xmm1
  mov    %si,-0x6(%rax)
  pextrw $0x0,%xmm5,%esi
  mov    %si,-0x3c(%rax)
  pextrw $0x1,%xmm5,%esi
  mov    %si,-0x34(%rax)
  pextrw $0x2,%xmm5,%esi
  mov    %si,-0x2c(%rax)
  pextrw $0x3,%xmm5,%esi
  mov    %si,-0x24(%rax)
  pextrw $0x4,%xmm5,%esi
  mov    %si,-0x1c(%rax)
  pextrw $0x5,%xmm5,%esi
  mov    %si,-0x14(%rax)
  pextrw $0x6,%xmm5,%esi
  mov    %si,-0xc(%rax)
  pextrw $0x7,%xmm5,%esi
  mov    %si,-0x4(%rax)
  pextrw $0x0,%xmm4,%esi
  mov    %si,-0x3a(%rax)
  pextrw $0x1,%xmm4,%esi
  mov    %si,-0x32(%rax)
  pextrw $0x2,%xmm4,%esi
  mov    %si,-0x2a(%rax)
  pextrw $0x3,%xmm4,%esi
  mov    %si,-0x22(%rax)
  pextrw $0x4,%xmm4,%esi
  mov    %si,-0x1a(%rax)
  pextrw $0x5,%xmm4,%esi
  mov    %si,-0x12(%rax)
  pextrw $0x6,%xmm4,%esi
  mov    %si,-0xa(%rax)
  pextrw $0x7,%xmm4,%esi
  movdqa %xmm0,%xmm4
  punpckhwd %xmm7,%xmm0
  punpcklwd %xmm7,%xmm4
  mov    %si,-0x2(%rax)
  movdqa %xmm4,%xmm2
  punpckhwd %xmm3,%xmm4
  punpcklwd %xmm3,%xmm2
  movaps %xmm4,-0x30(%rcx)
  movaps %xmm2,-0x40(%rcx)
  movdqa %xmm0,%xmm2
  punpckhwd %xmm1,%xmm0
  punpcklwd %xmm1,%xmm2
  movaps %xmm0,-0x10(%rcx)
  movaps %xmm2,-0x20(%rcx)
  cmp    0x8(%rsp),%rdx
  jne    L404
  mov    %rbp,%r14
  mov    %r12,%r13
  mov    %rbx,%r15
  jmp    L185
  xchg   %ax,%ax
L54:
  xor    %eax,%eax
  call   <abort@plt>
L6:
  add    $0x8,%r15
  add    $0x8,%r13
  add    $0x8,%r14
  cmp    0x8(%rsp),%r15
  je     L396
L185:
  movzwl 0x4(%r15),%eax
  mov    %ax,0x1c(%rsp)
  movzwl 0x6(%r15),%eax
  mov    %ax,0x1e(%rsp)
  movzwl (%r15),%eax
  lea    0x8(%rax),%ecx
  movzwl 0x2(%r15),%eax
  lea    0x7(%rax),%esi
  cmp    %cx,0x0(%r13)
  jne    L419
  cmp    %si,0x2(%r13)
  je     L7
L419:
  xor    %eax,%eax
  mov    %esi,0x18(%rsp)
  mov    %ecx,0x14(%rsp)
  call   <abort@plt>
  mov    0x18(%rsp),%esi
  mov    0x14(%rsp),%ecx
L4:
  cmp    %cx,(%r14)
  jne    L54
  cmp    %si,0x2(%r14)
  jne    L54
  movzwl 0x1c(%rsp),%eax
  add    $0x4,%eax
  cmp    %ax,0x4(%r14)
  jne    L54
  movzwl 0x1e(%rsp),%eax
  add    $0x3,%eax
  cmp    %ax,0x6(%r14)
  jne    L54
  jmp    L6
  xchg   %ax,%ax
L7:
  movzwl 0x1c(%rsp),%eax
  add    $0x6,%eax
  cmp    %ax,0x4(%r13)
  jne    L419
  movzwl 0x1e(%rsp),%eax
  lea    (%rax,%rax,4),%eax
  cmp    %ax,0x6(%r13)
  jne    L419
  jmp    L4
L396:
  movdqa D103(%rip),%xmm8
  mov    %r12,%rcx
  mov    %rbp,%rax
  mov    %rbx,%rdx
  movdqa D126(%rip),%xmm7
  nopw   0x0(%rax,%rax,1)
L88:
  movdqa (%rdx),%xmm10
  movdqa 0x20(%rdx),%xmm6
  add    $0x40,%rax
  add    $0x40,%rdx
  movdqa -0x30(%rdx),%xmm9
  movdqa -0x10(%rdx),%xmm5
  add    $0x40,%rcx
  movdqa %xmm10,%xmm0
  movdqa %xmm6,%xmm1
  movdqa %xmm10,%xmm12
  punpcklwd %xmm9,%xmm0
  punpcklwd %xmm5,%xmm1
  movdqa %xmm6,%xmm11
  punpckhwd %xmm5,%xmm11
  punpckhwd %xmm9,%xmm12
  movdqa %xmm0,%xmm14
  movdqa %xmm1,%xmm13
  punpckhwd %xmm12,%xmm14
  punpcklwd %xmm11,%xmm1
  punpckhwd %xmm11,%xmm13
  punpcklwd %xmm12,%xmm0
  movdqa %xmm10,%xmm4
  punpcklwd %xmm13,%xmm1
  punpcklwd %xmm14,%xmm0
  movdqa %xmm6,%xmm3
  shufps $0x88,%xmm9,%xmm4
  movdqa %xmm0,%xmm2
  punpcklwd %xmm1,%xmm0
  shufps $0x88,%xmm5,%xmm3
  paddw  %xmm8,%xmm4
  punpckhwd %xmm1,%xmm2
  movdqa %xmm0,%xmm1
  paddw  %xmm8,%xmm3
  punpckhwd %xmm2,%xmm1
  punpcklwd %xmm2,%xmm0
  punpckhwd %xmm1,%xmm0
  movdqa %xmm10,%xmm1
  paddw  %xmm7,%xmm10
  movdqa %xmm0,%xmm2
  movdqa %xmm6,%xmm0
  punpcklwd %xmm9,%xmm1
  movaps %xmm10,-0x40(%rcx)
  psllw  $0x2,%xmm2
  punpcklwd %xmm5,%xmm0
  punpcklwd %xmm12,%xmm1
  punpcklwd %xmm11,%xmm0
  pextrw $0x0,%xmm2,%esi
  paddw  %xmm7,%xmm9
  paddw  %xmm7,%xmm6
  paddw  %xmm7,%xmm5
  movaps %xmm9,-0x30(%rcx)
  punpckhwd %xmm13,%xmm0
  movaps %xmm6,-0x20(%rcx)
  punpckhwd %xmm14,%xmm1
  movaps %xmm5,-0x10(%rcx)
  movdqa %xmm1,%xmm11
  punpcklwd %xmm0,%xmm1
  mov    %si,-0x3c(%rax)
  pextrw $0x1,%xmm2,%esi
  punpckhwd %xmm0,%xmm11
  movdqa %xmm1,%xmm0
  mov    %si,-0x34(%rax)
  pextrw $0x2,%xmm2,%esi
  punpckhwd %xmm11,%xmm0
  punpcklwd %xmm11,%xmm1
  mov    %si,-0x2c(%rax)
  pextrw $0x3,%xmm2,%esi
  punpckhwd %xmm0,%xmm1
  paddw  D89(%rip),%xmm1
  mov    %si,-0x24(%rax)
  pextrw $0x4,%xmm2,%esi
  mov    %si,-0x1c(%rax)
  pextrw $0x5,%xmm2,%esi
  movdqa %xmm1,%xmm0
  pshufd $0x55,%xmm4,%xmm1
  mov    %si,-0x14(%rax)
  pextrw $0x6,%xmm2,%esi
  mov    %si,-0xc(%rax)
  pextrw $0x7,%xmm2,%esi
  mov    %si,-0x4(%rax)
  pextrw $0x0,%xmm0,%esi
  mov    %si,-0x3a(%rax)
  pextrw $0x1,%xmm0,%esi
  mov    %si,-0x32(%rax)
  pextrw $0x2,%xmm0,%esi
  movd   %xmm1,-0x38(%rax)
  movdqa %xmm4,%xmm1
  mov    %si,-0x2a(%rax)
  pextrw $0x3,%xmm0,%esi
  punpckhdq %xmm4,%xmm1
  mov    %si,-0x22(%rax)
  pextrw $0x4,%xmm0,%esi
  movd   %xmm1,-0x30(%rax)
  pshufd $0x55,%xmm3,%xmm1
  mov    %si,-0x1a(%rax)
  pextrw $0x5,%xmm0,%esi
  movd   %xmm1,-0x18(%rax)
  movdqa %xmm3,%xmm1
  mov    %si,-0x12(%rax)
  pextrw $0x6,%xmm0,%esi
  punpckhdq %xmm3,%xmm1
  movd   %xmm4,-0x40(%rax)
  pshufd $0xff,%xmm4,%xmm4
  movd   %xmm3,-0x20(%rax)
  pshufd $0xff,%xmm3,%xmm3
  mov    %si,-0xa(%rax)
  pextrw $0x7,%xmm0,%esi
  movd   %xmm4,-0x28(%rax)
  movd   %xmm1,-0x10(%rax)
  movd   %xmm3,-0x8(%rax)
  mov    %si,-0x2(%rax)
  cmp    0x8(%rsp),%rdx
  jne    L88
  jmp    L285
  nop
L318:
  lea    0x6(%r13),%eax
  cmp    %ax,0x4(%r12)
  je     L82
  nopl   0x0(%rax)
L302:
  xor    %eax,%eax
  call   <abort@plt>
L272:
  cmp    %r14w,0x0(%rbp)
  jne    L78
  cmp    %r15w,0x2(%rbp)
  je     L166
L78:
  xor    %eax,%eax
  call   <abort@plt>
L38:
  add    $0x8,%rbx
  add    $0x8,%r12
  add    $0x8,%rbp
  cmp    0x8(%rsp),%rbx
  je     L405
L285:
  movzwl 0x6(%rbx),%eax
  movzwl 0x4(%rbx),%r13d
  mov    %ax,0x14(%rsp)
  movzwl (%rbx),%eax
  lea    0x8(%rax),%r14d
  movzwl 0x2(%rbx),%eax
  lea    0x7(%rax),%r15d
  cmp    %r14w,(%r12)
  jne    L302
  cmp    %r15w,0x2(%r12)
  jne    L302
  jmp    L318
  nopl   (%rax)
L82:
  movzwl 0x14(%rsp),%eax
  add    $0x5,%eax
  cmp    %ax,0x6(%r12)
  jne    L302
  jmp    L272
  nopw   0x0(%rax,%rax,1)
L166:
  shl    $0x2,%r13d
  cmp    %r13w,0x4(%rbp)
  jne    L78
  movzwl 0x14(%rsp),%r14d
  add    $0x3,%r14d
  cmp    %r14w,0x6(%rbp)
  jne    L78
  jmp    L38
L405:
  mov    0x1828(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L294
  add    $0x1838,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L294:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: tag: D23
data_type: byte[16]
name: disassemble_data
arguments: tag: D57
data_type: byte[16]
name: disassemble_data
arguments: tag: D7
data_type: byte[16]
name: disassemble_data
arguments: tag: D105
data_type: byte[16]
name: disassemble_data
arguments: tag: D104
data_type: byte[16]
name: disassemble_data
arguments: tag: D89
data_type: byte[16]
name: disassemble_data
arguments: tag: D103
data_type: byte[16]
name: disassemble_data
arguments: tag: D126
data_type: byte[16]

tool: {"D23": [0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00]}

tool: {"D57": [0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00]}

tool: {"D7": [0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00]}

tool: {"D105": [0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00]}

tool: {"D104": [0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00]}

tool: {"D89": [0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00]}

tool: {"D103": [0x08,0x00,0x07,0x00,0x08,0x00,0x07,0x00,0x08,0x00,0x07,0x00,0x08,0x00,0x07,0x00]}

tool: {"D126": [0x08,0x00,0x07,0x00,0x06,0x00,0x05,0x00,0x08,0x00,0x07,0x00,0x06,0x00,0x05,0x00]}

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;
}
```