user: What would the C source look like for the assembly code provided here?

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    -0x1d000(%rsp),%r11
L524:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L524
  sub    $0x9c8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1d9b8(%rsp)
  xor    %eax,%eax
  lea    0x40(%rsp),%r13
  call   <check_offloading@plt>
  xor    %eax,%eax
  call   <omp_is_initial_device@plt>
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  cltq
  mov    %rax,0x18(%rsp)
  mov    $0xffffffffffffffff,%rax
  rep stos %rax,%es:(%rdi)
  lea    0x1d0(%rsp),%rax
  lea    0x360(%rsp),%rdi
  mov    %rax,0x10(%rsp)
  mov    %rax,0x20(%rsp)
  mov    %rdi,(%rsp)
L1795:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1795
  mov    (%rsp),%rax
  lea    0x4f0(%rsp),%rdi
  movdqa D736(%rip),%xmm1
  mov    %rdi,0x8(%rsp)
  mov    %rax,0x28(%rsp)
L900:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L900
  cmpq   $0x0,0x18(%rsp)
  jne    L505
  xor    %eax,%eax
L401:
  mov    0x10(%rsp),%rcx
  mov    (%rsp),%rdi
  movdqa (%rcx,%rax,1),%xmm4
  movdqa (%rdi,%rax,1),%xmm0
  paddd  %xmm4,%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm4,0x30(%rsp)
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L401
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L403:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L302
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L302:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L403
  test   %eax,%eax
  jne    L107
L505:
  lea    D543(%rip),%rdi
  call   <puts@plt>
L1957:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L914:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L914
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1963:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1963
  cmpq   $0x0,0x18(%rsp)
  jne    L147
  mov    0x10(%rsp),%rdi
  mov    (%rsp),%r8
  xor    %eax,%eax
  mov    $0xfffffffd,%ecx
L525:
  mov    (%rdi,%rax,4),%esi
  lea    0x2(%rcx,%rax,1),%ecx
  lea    0x5(%rax),%edx
  imul   (%r8,%rax,4),%edx
  imul   %ecx,%esi
  lea    0xa(%rdx,%rsi,1),%edx
  add    %edx,0x0(%r13,%rax,4)
  add    $0x1,%rax
  cmp    $0x64,%rax
  jne    L525
  xor    %ecx,%ecx
  xor    %ebx,%ebx
  lea    D1233(%rip),%rbp
  mov    %ecx,%edi
L1966:
  lea    -0x1(%rbx),%eax
  lea    0x5(%rbx),%edx
  mov    %ebx,%esi
  imul   %ebx,%edx
  imul   %ebx,%eax
  lea    0x9(%rax,%rdx,2),%eax
  mov    0x0(%r13,%rbx,4),%edx
  lea    (%rax,%rbx,2),%ecx
  cmp    %ecx,%edx
  je     L972
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%edi
L972:
  add    $0x1,%rbx
  cmp    $0x64,%rbx
  jne    L1966
  test   %edi,%edi
  jne    L1372
L147:
  lea    D1449(%rip),%rdi
  call   <puts@plt>
L1496:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1261:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1261
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L802:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L802
  cmpq   $0x0,0x18(%rsp)
  jne    L1052
  xor    %eax,%eax
L1520:
  mov    0x10(%rsp),%rcx
  mov    (%rsp),%rdi
  movdqa (%rcx,%rax,1),%xmm5
  movdqa (%rdi,%rax,1),%xmm0
  paddd  %xmm5,%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm5,0x30(%rsp)
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1520
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1113:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1185
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1185:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1113
  test   %eax,%eax
  jne    L1146
L1052:
  lea    D646(%rip),%rdi
  call   <puts@plt>
L206:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L117:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L117
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1495:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1495
  cmpq   $0x0,0x18(%rsp)
  jne    L613
  xor    %eax,%eax
L1149:
  mov    0x10(%rsp),%rcx
  mov    (%rsp),%rdi
  movdqa (%rcx,%rax,1),%xmm6
  movdqa (%rdi,%rax,1),%xmm0
  paddd  %xmm6,%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm6,0x30(%rsp)
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1149
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1978:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1262
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1262:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1978
  test   %eax,%eax
  jne    L455
L613:
  lea    D1500(%rip),%rdi
  call   <puts@plt>
L1819:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1249:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1249
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1680:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1680
  cmpq   $0x0,0x18(%rsp)
  jne    L2072
  xor    %eax,%eax
L1722:
  mov    0x10(%rsp),%rcx
  mov    (%rsp),%rdi
  movdqa (%rcx,%rax,1),%xmm7
  movdqa (%rdi,%rax,1),%xmm0
  paddd  %xmm7,%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm7,0x30(%rsp)
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1722
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1562:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L131
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L131:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1562
  test   %eax,%eax
  jne    L158
L2072:
  lea    D772(%rip),%rdi
  call   <puts@plt>
L951:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L56:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L56
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1866:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1866
  cmpq   $0x0,0x18(%rsp)
  jne    L207
  xor    %eax,%eax
L347:
  mov    0x10(%rsp),%rcx
  mov    (%rsp),%rdi
  movdqa (%rcx,%rax,1),%xmm4
  movdqa (%rdi,%rax,1),%xmm0
  paddd  %xmm4,%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm4,0x30(%rsp)
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L347
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1067:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L702
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L702:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1067
  test   %eax,%eax
  jne    L2026
L207:
  lea    D1654(%rip),%rdi
  call   <puts@plt>
L1935:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L385:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L385
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L497:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L497
  cmpq   $0x0,0x18(%rsp)
  jne    L2136
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L215:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L215
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L150:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L979
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L979:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L150
  test   %eax,%eax
  jne    L358
L2136:
  lea    D1562(%rip),%rdi
  call   <puts@plt>
L208:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L919:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L919
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1234:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1234
  cmpq   $0x0,0x18(%rsp)
  jne    L1656
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L1688:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1688
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L237:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1559
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1559:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L237
  test   %eax,%eax
  jne    L540
L1656:
  lea    D734(%rip),%rdi
  call   <puts@plt>
L1887:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1606:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1606
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L810:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L810
  cmpq   $0x0,0x18(%rsp)
  jne    L836
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L1640:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1640
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1338:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L160
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L160:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1338
  test   %eax,%eax
  jne    L236
L836:
  lea    D1424(%rip),%rdi
  call   <puts@plt>
L1972:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L108:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L108
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1687:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1687
  cmpq   $0x0,0x18(%rsp)
  jne    L1870
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L571:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L571
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L616:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L112
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L112:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L616
  test   %eax,%eax
  jne    L1784
L1870:
  lea    D1745(%rip),%rdi
  call   <puts@plt>
L529:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L195:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L195
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1088:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1088
  cmpq   $0x0,0x18(%rsp)
  jne    L1466
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L273:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L273
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L182:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1739
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1739:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L182
  test   %eax,%eax
  jne    L664
L1466:
  lea    D967(%rip),%rdi
  call   <puts@plt>
L1224:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1381:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1381
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L495:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L495
  cmpq   $0x0,0x18(%rsp)
  jne    L1873
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L770:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L770
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L486:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1477
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1477:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L486
  test   %eax,%eax
  jne    L173
L1873:
  lea    D1572(%rip),%rdi
  call   <puts@plt>
L681:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L944:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L944
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L857:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L857
  cmpq   $0x0,0x18(%rsp)
  jne    L987
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L1951:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1951
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L119:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1127
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1127:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L119
  test   %eax,%eax
  jne    L1500
L987:
  lea    D1526(%rip),%rdi
  call   <puts@plt>
L879:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1806:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1806
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1315:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1315
  cmpq   $0x0,0x18(%rsp)
  jne    L1509
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L27:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L27
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1950:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L200
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L200:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1950
  test   %eax,%eax
  jne    L1717
L1509:
  lea    D684(%rip),%rdi
  call   <puts@plt>
L1385:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L2062:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L2062
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1221:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1221
  cmpq   $0x0,0x18(%rsp)
  jne    L98
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L2012:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L2012
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L2030:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1366
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1366:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L2030
  test   %eax,%eax
  jne    L1460
L98:
  lea    D1019(%rip),%rdi
  call   <puts@plt>
L414:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L295:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L295
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L333:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L333
  cmpq   $0x0,0x18(%rsp)
  jne    L396
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L242:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L242
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L374:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L874
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L874:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L374
  test   %eax,%eax
  jne    L2134
L396:
  lea    D672(%rip),%rdi
  call   <puts@plt>
L1117:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1405:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1405
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L462:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L462
  cmpq   $0x0,0x18(%rsp)
  jne    L2014
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L541:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L541
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1396:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1465
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1465:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1396
  test   %eax,%eax
  jne    L1734
L2014:
  lea    D1582(%rip),%rdi
  call   <puts@plt>
L1533:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L796:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L796
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L359:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L359
  cmpq   $0x0,0x18(%rsp)
  jne    L892
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L1213:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1213
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L205:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L209
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L209:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L205
  test   %eax,%eax
  jne    L921
L892:
  lea    D935(%rip),%rdi
  call   <puts@plt>
L1506:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L80:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L80
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1727:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1727
  cmpq   $0x0,0x18(%rsp)
  jne    L2032
  mov    (%rsp),%rdx
  xor    %eax,%eax
L383:
  mov    0x10(%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L383
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L143:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L624
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L624:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L143
  test   %eax,%eax
  jne    L1444
L2032:
  lea    D782(%rip),%rdi
  call   <puts@plt>
L89:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L102:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L102
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1706:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1706
  cmpq   $0x0,0x18(%rsp)
  jne    L1980
  mov    (%rsp),%rdx
  xor    %eax,%eax
L511:
  mov    0x10(%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L511
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L74:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L96
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L96:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L74
  test   %eax,%eax
  jne    L819
L1980:
  lea    D234(%rip),%rdi
  call   <puts@plt>
L437:
  mov    0x8(%rsp),%rdi
  mov    $0x9c40,%edx
  mov    $0xff,%esi
  call   <memset@plt>
  lea    0xa130(%rsp),%rdi
  lea    0xa2c0(%rsp),%rdx
  xor    %ecx,%ecx
  mov    %rdi,%rsi
  mov    %rdi,%r8
L1698:
  movd   %ecx,%xmm2
  mov    %r8,%rax
  pshufd $0x0,%xmm2,%xmm0
  nop
L451:
  movaps %xmm0,(%rax)
  add    $0x10,%rax
  cmp    %rax,%rdx
  jne    L451
  add    $0x1,%ecx
  add    $0x190,%r8
  add    $0x190,%rdx
  cmp    $0x64,%ecx
  jne    L1698
  lea    0x13d70(%rsp),%rcx
  lea    0x13f00(%rsp),%rdx
  xor    %r8d,%r8d
  lea    0x1db40(%rsp),%r10
  mov    %rcx,%r9
L1683:
  movd   %r8d,%xmm3
  mov    %r9,%rax
  pshufd $0x0,%xmm3,%xmm0
  nopl   (%rax)
L659:
  movaps %xmm0,(%rax)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L659
  lea    0x190(%rax),%rdx
  add    $0x2,%r8d
  add    $0x190,%r9
  cmp    %rdx,%r10
  jne    L1683
  cmpq   $0x0,0x18(%rsp)
  mov    0x8(%rsp),%rdx
  jne    L1622
L152:
  xor    %eax,%eax
  cs nopw 0x0(%rax,%rax,1)
L1530:
  movdqa (%rsi,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  (%rdx,%rax,1),%xmm0
  movaps %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1530
  add    $0x190,%rdx
  add    $0x190,%rsi
  add    $0x190,%rcx
  cmp    %rdi,%rdx
  jne    L152
  mov    0x8(%rsp),%rax
  mov    $0xffffffff,%r15d
  xor    %ebp,%ebp
  lea    D1233(%rip),%r12
  lea    0x190(%rax),%rbx
  xor    %eax,%eax
L692:
  lea    -0x190(%rbx),%r14
  nopl   (%rax)
L570:
  mov    (%r14),%edx
  cmp    %r15d,%edx
  je     L1503
  mov    %r15d,%ecx
  mov    %ebp,%esi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1503:
  add    $0x4,%r14
  cmp    %r14,%rbx
  jne    L570
  add    $0x1,%ebp
  add    $0x190,%rbx
  add    $0x3,%r15d
  cmp    $0x64,%ebp
  jne    L692
  test   %eax,%eax
  jne    L804
L1622:
  lea    D214(%rip),%rdi
  call   <puts@plt>
L1587:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1059:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1059
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L369:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L369
  cmpq   $0x0,0x18(%rsp)
  jne    L261
  mov    (%rsp),%rdx
  xor    %eax,%eax
L1653:
  mov    0x10(%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1653
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1577:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L930
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L930:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1577
  test   %eax,%eax
  jne    L1078
L261:
  lea    D707(%rip),%rdi
  call   <puts@plt>
L482:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L41:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L41
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L2089:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L2089
  cmpq   $0x0,0x18(%rsp)
  jne    L911
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L1864:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1864
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1926:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1229
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1229:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1926
  test   %eax,%eax
  jne    L1565
L911:
  lea    D703(%rip),%rdi
  call   <puts@plt>
L1811:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1087:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1087
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L2011:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L2011
  cmpq   $0x0,0x18(%rsp)
  jne    L832
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L45:
  mov    (%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L45
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1341:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L606
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L606:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1341
  test   %eax,%eax
  jne    L393
L832:
  lea    D1118(%rip),%rdi
  call   <puts@plt>
L1044:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x10(%rsp),%rax
L1187:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1187
  mov    (%rsp),%rax
  movdqa D736(%rip),%xmm1
L1152:
  movdqa %xmm1,%xmm0
  add    $0x10,%rax
  paddd  D951(%rip),%xmm1
  pslld  $0x1,%xmm0
  movaps %xmm0,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L1152
  cmpq   $0x0,0x18(%rsp)
  jne    L1590
  mov    0x10(%rsp),%rdx
  xor    %eax,%eax
L563:
  mov    (%rsp),%rdi
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rdi,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L563
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1397:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1808
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1808:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1397
  test   %eax,%eax
  jne    L121
L1590:
  lea    D596(%rip),%rdi
  call   <puts@plt>
L409:
  mov    $0xffffffffffffffff,%rax
  mov    $0x32,%ecx
  mov    %r13,%rdi
  movdqa D736(%rip),%xmm0
  rep stos %rax,%es:(%rdi)
  mov    0x20(%rsp),%rax
L1382:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  movaps %xmm1,-0x10(%rax)
  cmp    (%rsp),%rax
  jne    L1382
  movdqa D736(%rip),%xmm0
  mov    0x28(%rsp),%rax
L187:
  movdqa %xmm0,%xmm1
  add    $0x10,%rax
  paddd  D951(%rip),%xmm0
  pslld  $0x1,%xmm1
  movaps %xmm1,-0x10(%rax)
  cmp    0x8(%rsp),%rax
  jne    L187
  cmpq   $0x0,0x18(%rsp)
  jne    L805
  mov    (%rsp),%rdx
  xor    %eax,%eax
L1328:
  mov    0x10(%rsp),%rcx
  movdqa (%rdx,%rax,1),%xmm0
  paddd  (%rcx,%rax,1),%xmm0
  paddd  0x0(%r13,%rax,1),%xmm0
  movaps %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    $0x190,%rax
  jne    L1328
  mov    $0xffffffff,%ebp
  xor    %ebx,%ebx
  lea    D1233(%rip),%r12
  xor    %eax,%eax
L1244:
  mov    0x0(%r13,%rbx,4),%edx
  mov    %ebx,%esi
  cmp    %ebp,%edx
  je     L1886
  mov    %ebp,%ecx
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x1,%eax
L1886:
  add    $0x1,%rbx
  add    $0x3,%ebp
  cmp    $0x64,%rbx
  jne    L1244
  test   %eax,%eax
  jne    L720
L805:
  lea    D33(%rip),%rdi
  call   <puts@plt>
L2083:
  mov    0x1d9b8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L348
  add    $0x1d9c8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1372:
  lea    D1743(%rip),%rdi
  call   <puts@plt>
  jmp    L1496
L107:
  lea    D677(%rip),%rdi
  call   <puts@plt>
  jmp    L1957
L720:
  lea    D1598(%rip),%rdi
  call   <puts@plt>
  jmp    L2083
L121:
  lea    D712(%rip),%rdi
  call   <puts@plt>
  jmp    L409
L393:
  lea    D1736(%rip),%rdi
  call   <puts@plt>
  jmp    L1044
L1565:
  lea    D1061(%rip),%rdi
  call   <puts@plt>
  jmp    L1811
L1078:
  lea    D376(%rip),%rdi
  call   <puts@plt>
  jmp    L482
L804:
  lea    D783(%rip),%rdi
  call   <puts@plt>
  jmp    L1587
L819:
  lea    D1377(%rip),%rdi
  call   <puts@plt>
  jmp    L437
L1444:
  lea    D209(%rip),%rdi
  call   <puts@plt>
  jmp    L89
L921:
  lea    D1135(%rip),%rdi
  call   <puts@plt>
  jmp    L1506
L1734:
  lea    D1255(%rip),%rdi
  call   <puts@plt>
  jmp    L1533
L2134:
  lea    D1335(%rip),%rdi
  call   <puts@plt>
  jmp    L1117
L1460:
  lea    D788(%rip),%rdi
  call   <puts@plt>
  jmp    L414
L1717:
  lea    D136(%rip),%rdi
  call   <puts@plt>
  jmp    L1385
L1500:
  lea    D1191(%rip),%rdi
  call   <puts@plt>
  jmp    L879
L173:
  lea    D305(%rip),%rdi
  call   <puts@plt>
  jmp    L681
L664:
  lea    D1400(%rip),%rdi
  call   <puts@plt>
  jmp    L1224
L1784:
  lea    D1525(%rip),%rdi
  call   <puts@plt>
  jmp    L529
L236:
  lea    D1520(%rip),%rdi
  call   <puts@plt>
  jmp    L1972
L540:
  lea    D1529(%rip),%rdi
  call   <puts@plt>
  jmp    L1887
L358:
  lea    D1121(%rip),%rdi
  call   <puts@plt>
  jmp    L208
L2026:
  lea    D373(%rip),%rdi
  call   <puts@plt>
  jmp    L1935
L158:
  lea    D1633(%rip),%rdi
  call   <puts@plt>
  jmp    L951
L455:
  lea    D1718(%rip),%rdi
  call   <puts@plt>
  jmp    L1819
L1146:
  lea    D1226(%rip),%rdi
  call   <puts@plt>
  jmp    L206
L348:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D736
datatype: byte[16]
name: extract_symbolic_data
arguments: data_label: D951
datatype: byte[16]
name: extract_symbolic_data
arguments: data_label: D1233
datatype: string
name: extract_symbolic_data
arguments: data_label: D543
datatype: string
name: extract_symbolic_data
arguments: data_label: D1449
datatype: string
name: extract_symbolic_data
arguments: data_label: D646
datatype: string
name: extract_symbolic_data
arguments: data_label: D1500
datatype: string
name: extract_symbolic_data
arguments: data_label: D772
datatype: string
name: extract_symbolic_data
arguments: data_label: D1654
datatype: string
name: extract_symbolic_data
arguments: data_label: D1562
datatype: string
name: extract_symbolic_data
arguments: data_label: D734
datatype: string
name: extract_symbolic_data
arguments: data_label: D1424
datatype: string
name: extract_symbolic_data
arguments: data_label: D1745
datatype: string
name: extract_symbolic_data
arguments: data_label: D967
datatype: string
name: extract_symbolic_data
arguments: data_label: D1572
datatype: string
name: extract_symbolic_data
arguments: data_label: D1526
datatype: string
name: extract_symbolic_data
arguments: data_label: D684
datatype: string
name: extract_symbolic_data
arguments: data_label: D1019
datatype: string
name: extract_symbolic_data
arguments: data_label: D672
datatype: string
name: extract_symbolic_data
arguments: data_label: D1582
datatype: string
name: extract_symbolic_data
arguments: data_label: D935
datatype: string
name: extract_symbolic_data
arguments: data_label: D782
datatype: string
name: extract_symbolic_data
arguments: data_label: D234
datatype: string
name: extract_symbolic_data
arguments: data_label: D214
datatype: string
name: extract_symbolic_data
arguments: data_label: D707
datatype: string
name: extract_symbolic_data
arguments: data_label: D703
datatype: string
name: extract_symbolic_data
arguments: data_label: D1118
datatype: string
name: extract_symbolic_data
arguments: data_label: D596
datatype: string
name: extract_symbolic_data
arguments: data_label: D33
datatype: string
name: extract_symbolic_data
arguments: data_label: D1743
datatype: string
name: extract_symbolic_data
arguments: data_label: D677
datatype: string
name: extract_symbolic_data
arguments: data_label: D1598
datatype: string
name: extract_symbolic_data
arguments: data_label: D712
datatype: string
name: extract_symbolic_data
arguments: data_label: D1736
datatype: string
name: extract_symbolic_data
arguments: data_label: D1061
datatype: string
name: extract_symbolic_data
arguments: data_label: D376
datatype: string
name: extract_symbolic_data
arguments: data_label: D783
datatype: string
name: extract_symbolic_data
arguments: data_label: D1377
datatype: string
name: extract_symbolic_data
arguments: data_label: D209
datatype: string
name: extract_symbolic_data
arguments: data_label: D1135
datatype: string
name: extract_symbolic_data
arguments: data_label: D1255
datatype: string
name: extract_symbolic_data
arguments: data_label: D1335
datatype: string
name: extract_symbolic_data
arguments: data_label: D788
datatype: string
name: extract_symbolic_data
arguments: data_label: D136
datatype: string
name: extract_symbolic_data
arguments: data_label: D1191
datatype: string
name: extract_symbolic_data
arguments: data_label: D305
datatype: string
name: extract_symbolic_data
arguments: data_label: D1400
datatype: string
name: extract_symbolic_data
arguments: data_label: D1525
datatype: string
name: extract_symbolic_data
arguments: data_label: D1520
datatype: string
name: extract_symbolic_data
arguments: data_label: D1529
datatype: string
name: extract_symbolic_data
arguments: data_label: D1121
datatype: string
name: extract_symbolic_data
arguments: data_label: D373
datatype: string
name: extract_symbolic_data
arguments: data_label: D1633
datatype: string
name: extract_symbolic_data
arguments: data_label: D1718
datatype: string
name: extract_symbolic_data
arguments: data_label: D1226
datatype: string

tool: {"D736": [0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

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

tool: D1233: Error at %d: device = %d, host = %d


tool: D543: Succeeded 2

tool: D1449: Succeeded 3

tool: D646: Succeeded 4

tool: D1500: Succeeded 5

tool: D772: Succeeded 6

tool: D1654: Succeeded 7

tool: D1562: Succeeded 8

tool: D734: Succeeded 9

tool: D1424: Succeeded 10

tool: D1745: Succeeded 13

tool: D967: Succeeded 14

tool: D1572: Succeeded 17

tool: D1526: Succeeded 18

tool: D684: Succeeded 21

tool: D1019: Succeeded 22

tool: D672: Succeeded 25

tool: D1582: Succeeded 26

tool: D935: Succeeded 27

tool: D782: Succeeded 28

tool: D234: Succeeded 31

tool: D214: Succeeded 32

tool: D707: Succeeded 33

tool: D703: Succeeded 34

tool: D1118: Succeeded 35

tool: D596: Succeeded 36

tool: D33: Succeeded 37

tool: D1743: Failed 3

tool: D677: Failed 2

tool: D1598: Failed 37

tool: D712: Failed 36

tool: D1736: Failed 35

tool: D1061: Failed 34

tool: D376: Failed 33

tool: D783: Failed 32

tool: D1377: Failed 31

tool: D209: Failed 28

tool: D1135: Failed 27

tool: D1255: Failed 26

tool: D1335: Failed 25

tool: D788: Failed 22

tool: D136: Failed 21

tool: D1191: Failed 18

tool: D305: Failed 17

tool: D1400: Failed 14

tool: D1525: Failed 13

tool: D1520: Failed 10

tool: D1529: Failed 9

tool: D1121: Failed 8

tool: D373: Failed 7

tool: D1633: Failed 6

tool: D1718: Failed 5

tool: D1226: Failed 4

assistant: ```c
int main() {
  int a[100], b[100], c[100];
  check_offloading();
  long cpuExec = 0;
  int fail, ch;
#pragma omp target map(tofrom : cpuExec)
  { cpuExec = omp_is_initial_device(); }
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 2\n");
  else
    printf("Succeeded 2\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  int q = -5;
  int p = -3;
  int r = 0;
  int l = 10;
  if (!cpuExec) {
#pragma omp target teams num_teams(1) thread_limit(1024) map(tofrom : a, r) map(to : b, c)
#pragma omp parallel
#pragma omp for simd private(q) firstprivate(p) lastprivate(r) linear(l : 2)
    for (int i = 0; i < 100; i++) {
      q = i + 5;
      p += i + 2;
      a[i] += p * b[i] + c[i] * q + l;
      r = i;
    }
    for (int i = 0; i < 100; i++) {
      int expected = (-1 + (-3 + i + 2) * i + (2 * i) * (i + 5) + 10 + (2 * i));
      if (a[i] != expected) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], expected);
        fail = 1;
      }
    }
    if (r != 100 - 1) {
      printf("Error for lastprivate: device = %d, host = %d\n", r, 100 - 1);
      fail = 1;
    }
  }
  if (fail)
    printf("Failed 3\n");
  else
    printf("Succeeded 3\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(static)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 4\n");
  else
    printf("Succeeded 4\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target teams num_teams(1) thread_limit(1024) map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(monotonic : static)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 5\n");
  else
    printf("Succeeded 5\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : static)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 6\n");
  else
    printf("Succeeded 6\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(static, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 7\n");
  else
    printf("Succeeded 7\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(monotonic : static, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 8\n");
  else
    printf("Succeeded 8\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : static, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 9\n");
  else
    printf("Succeeded 9\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(dynamic)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 10\n");
  else
    printf("Succeeded 10\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : dynamic)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 13\n");
  else
    printf("Succeeded 13\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(dynamic, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 14\n");
  else
    printf("Succeeded 14\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : dynamic, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 17\n");
  else
    printf("Succeeded 17\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(guided)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 18\n");
  else
    printf("Succeeded 18\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : guided)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 21\n");
  else
    printf("Succeeded 21\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(guided, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 22\n");
  else
    printf("Succeeded 22\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : guided, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 25\n");
  else
    printf("Succeeded 25\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(auto)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 26\n");
  else
    printf("Succeeded 26\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(monotonic : auto)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 27\n");
  else
    printf("Succeeded 27\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : auto)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 28\n");
  else
    printf("Succeeded 28\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : runtime)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 31\n");
  else
    printf("Succeeded 31\n");
  fail = 0;
  int ma[100][100], mb[100][100], mc[100][100];
  for (int i = 0; i < 100; i++)
    for (int j = 0; j < 100; j++) {
      ma[i][j] = -1;
      mb[i][j] = i;
      mc[i][j] = 2 * i;
    }
  if (!cpuExec) {
#pragma omp target map(tofrom : ma) map(to : mb, mc)
#pragma omp parallel
#pragma omp for simd collapse(2)
    for (int i = 0; i < 100; i++)
      for (int j = 0; j < 100; j++)
        ma[i][j] += mb[i][j] + mc[i][j];
    for (int i = 0; i < 100; i++)
      for (int j = 0; j < 100; j++)
        if (ma[i][j] != (-1 + i + 2 * i)) {
          printf("Error at %d: device = %d, host = %d\n", i, ma[i][j], (-1 + i + 2 * i));
          fail = 1;
        }
  }
  if (fail)
    printf("Failed 32\n");
  else
    printf("Succeeded 32\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd ordered
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 33\n");
  else
    printf("Succeeded 33\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd nowait
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 34\n");
  else
    printf("Succeeded 34\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd safelen(16)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 35\n");
  else
    printf("Succeeded 35\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd simdlen(16)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 36\n");
  else
    printf("Succeeded 36\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd aligned(a, b, c : 8)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 37\n");
  else
    printf("Succeeded 37\n");
  return 0;
}
```