user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x9000(%rsp),%r11
L917:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L917
  sub    $0xc80,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0x0,%eax
  call   <check_offloading@plt>
  movl   $0x0,-0x9c74(%rbp)
  movl   $0x1,-0x9b68(%rbp)
  movl   $0x0,-0x9b64(%rbp)
  movsd  D579(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D452(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  movl   $0x0,-0x9c70(%rbp)
  jmp    L753
L976:
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  D178(%rip),%xmm0
  movsd  %xmm0,-0x5d10(%rbp,%rax,8)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x9c70(%rbp),%xmm0
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  %xmm0,-0x3e10(%rbp,%rax,8)
  mov    -0x9c70(%rbp),%eax
  neg    %eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  %xmm0,-0x1f10(%rbp,%rax,8)
  addl   $0x1,-0x9c70(%rbp)
L753:
  cmpl   $0x3df,-0x9c70(%rbp)
  jle    L976
  lea    D308(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c6c(%rbp)
  jmp    L1556
L1247:
  mov    -0x9c6c(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c6c(%rbp)
L1556:
  cmpl   $0x3df,-0x9c6c(%rbp)
  jle    L1247
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c68(%rbp)
  jmp    L643
L489:
  movl   $0x0,-0x9c64(%rbp)
  jmp    L108
L373:
  mov    -0x9c64(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c64(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c64(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c64(%rbp)
L108:
  cmpl   $0x3df,-0x9c64(%rbp)
  jle    L373
  addl   $0x1,-0x9c68(%rbp)
L643:
  cmpl   $0x0,-0x9c68(%rbp)
  jle    L489
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1379
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1379:
  lea    D479(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c60(%rbp)
  jmp    L159
L190:
  mov    -0x9c60(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c60(%rbp)
L159:
  cmpl   $0x3df,-0x9c60(%rbp)
  jle    L190
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c5c(%rbp)
  jmp    L1154
L1139:
  movl   $0x0,-0x9c58(%rbp)
  jmp    L131
L1602:
  mov    -0x9c58(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c58(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c58(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c58(%rbp)
L131:
  cmpl   $0x3df,-0x9c58(%rbp)
  jle    L1602
  addl   $0x1,-0x9c5c(%rbp)
L1154:
  cmpl   $0x0,-0x9c5c(%rbp)
  jle    L1139
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L907
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L907:
  lea    D71(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c54(%rbp)
  jmp    L1327
L1620:
  mov    -0x9c54(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c54(%rbp)
L1327:
  cmpl   $0x3df,-0x9c54(%rbp)
  jle    L1620
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c50(%rbp)
  jmp    L289
L1452:
  movl   $0x0,-0x9c4c(%rbp)
  jmp    L448
L1593:
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c4c(%rbp)
L448:
  cmpl   $0x3df,-0x9c4c(%rbp)
  jle    L1593
  addl   $0x1,-0x9c50(%rbp)
L289:
  cmpl   $0x0,-0x9c50(%rbp)
  jle    L1452
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1306
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1306:
  lea    D302(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c48(%rbp)
  jmp    L631
L1322:
  mov    -0x9c48(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c48(%rbp)
L631:
  cmpl   $0x3df,-0x9c48(%rbp)
  jle    L1322
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c44(%rbp)
  jmp    L1531
L1614:
  movl   $0x0,-0x9c40(%rbp)
  jmp    L275
L546:
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c40(%rbp)
L275:
  cmpl   $0x3df,-0x9c40(%rbp)
  jle    L546
  addl   $0x1,-0x9c44(%rbp)
L1531:
  cmpl   $0x0,-0x9c44(%rbp)
  jle    L1614
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1608
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1608:
  lea    D562(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c3c(%rbp)
  jmp    L845
L828:
  mov    -0x9c3c(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c3c(%rbp)
L845:
  cmpl   $0x3df,-0x9c3c(%rbp)
  jle    L828
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c38(%rbp)
  jmp    L1115
L1011:
  movl   $0x0,-0x9c34(%rbp)
  jmp    L95
L1361:
  mov    -0x9c34(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c34(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c34(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c34(%rbp)
L95:
  cmpl   $0x3df,-0x9c34(%rbp)
  jle    L1361
  addl   $0x1,-0x9c38(%rbp)
L1115:
  cmpl   $0x0,-0x9c38(%rbp)
  jle    L1011
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L666
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L666:
  lea    D249(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x63,-0x9b60(%rbp)
  movl   $0x0,-0x9c30(%rbp)
  jmp    L142
L309:
  mov    -0x9c30(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c30(%rbp)
L142:
  cmpl   $0x3df,-0x9c30(%rbp)
  jle    L309
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c2c(%rbp)
  jmp    L848
L1160:
  movl   $0x0,-0x9c28(%rbp)
  jmp    L1177
L1447:
  mov    -0x9c28(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c28(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c28(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c28(%rbp)
L1177:
  cmpl   $0x3df,-0x9c28(%rbp)
  jle    L1447
  addl   $0x1,-0x9c2c(%rbp)
L848:
  cmpl   $0x0,-0x9c2c(%rbp)
  jle    L1160
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1441
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1441:
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x63,-0x9b60(%rbp)
  movl   $0x0,-0x9c24(%rbp)
  jmp    L1630
L422:
  mov    -0x9c24(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c24(%rbp)
L1630:
  cmpl   $0x3df,-0x9c24(%rbp)
  jle    L422
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c20(%rbp)
  jmp    L487
L955:
  movl   $0x0,-0x9c1c(%rbp)
  jmp    L1182
L69:
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c1c(%rbp)
L1182:
  cmpl   $0x3df,-0x9c1c(%rbp)
  jle    L69
  addl   $0x1,-0x9c20(%rbp)
L487:
  cmpl   $0x0,-0x9c20(%rbp)
  jle    L955
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L582
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L582:
  lea    D169(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c18(%rbp)
  jmp    L1460
L1500:
  mov    -0x9c18(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c18(%rbp)
L1460:
  cmpl   $0x3df,-0x9c18(%rbp)
  jle    L1500
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c14(%rbp)
  jmp    L518
L46:
  movl   $0x0,-0x9c10(%rbp)
  jmp    L286
L1270:
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c10(%rbp)
L286:
  cmpl   $0x3df,-0x9c10(%rbp)
  jle    L1270
  addl   $0x1,-0x9c14(%rbp)
L518:
  cmpl   $0x0,-0x9c14(%rbp)
  jle    L46
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1425
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1425:
  lea    D422(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c0c(%rbp)
  jmp    L941
L709:
  mov    -0x9c0c(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c0c(%rbp)
L941:
  cmpl   $0x3df,-0x9c0c(%rbp)
  jle    L709
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9c08(%rbp)
  jmp    L1288
L433:
  movl   $0x0,-0x9c04(%rbp)
  jmp    L354
L462:
  mov    -0x9c04(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c04(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c04(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c04(%rbp)
L354:
  cmpl   $0x3df,-0x9c04(%rbp)
  jle    L462
  addl   $0x1,-0x9c08(%rbp)
L1288:
  cmpl   $0x0,-0x9c08(%rbp)
  jle    L433
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1399
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1399:
  lea    D320(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9c00(%rbp)
  jmp    L313
L346:
  mov    -0x9c00(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c00(%rbp)
L313:
  cmpl   $0x3df,-0x9c00(%rbp)
  jle    L346
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9bfc(%rbp)
  jmp    L1025
L419:
  movl   $0x0,-0x9bf8(%rbp)
  jmp    L1209
L638:
  mov    -0x9bf8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bf8(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bf8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bf8(%rbp)
L1209:
  cmpl   $0x3df,-0x9bf8(%rbp)
  jle    L638
  addl   $0x1,-0x9bfc(%rbp)
L1025:
  cmpl   $0x0,-0x9bfc(%rbp)
  jle    L419
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L1012
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1012:
  lea    D355(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9bf4(%rbp)
  jmp    L889
L939:
  mov    -0x9bf4(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bf4(%rbp)
L889:
  cmpl   $0x3df,-0x9bf4(%rbp)
  jle    L939
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9bf0(%rbp)
  jmp    L714
L241:
  movl   $0x0,-0x9bec(%rbp)
  jmp    L1237
L954:
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bec(%rbp)
L1237:
  cmpl   $0x3df,-0x9bec(%rbp)
  jle    L954
  addl   $0x1,-0x9bf0(%rbp)
L714:
  cmpl   $0x0,-0x9bf0(%rbp)
  jle    L241
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L804
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L804:
  lea    D270(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9be8(%rbp)
  jmp    L347
L1050:
  mov    -0x9be8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9be8(%rbp)
L347:
  cmpl   $0x3df,-0x9be8(%rbp)
  jle    L1050
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9be4(%rbp)
  jmp    L1178
L712:
  movl   $0x0,-0x9be0(%rbp)
  jmp    L105
L1074:
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9be0(%rbp)
L105:
  cmpl   $0x3df,-0x9be0(%rbp)
  jle    L1074
  addl   $0x1,-0x9be4(%rbp)
L1178:
  cmpl   $0x0,-0x9be4(%rbp)
  jle    L712
  lea    -0x9b10(%rbp),%rax
  mov    %rax,%rdi
  call   <check_results@plt>
  mov    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x9b64(%rbp)
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b68(%rbp),%eax
  jne    L153
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L153:
  lea    D242(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9bdc(%rbp)
  jmp    L1289
L1208:
  mov    -0x9bdc(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bdc(%rbp)
L1289:
  cmpl   $0x3df,-0x9bdc(%rbp)
  jle    L1208
  movl   $0x0,-0x9bd8(%rbp)
  jmp    L106
L1163:
  mov    -0x9bd8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bd8(%rbp)
L106:
  cmpl   $0x3df,-0x9bd8(%rbp)
  jle    L1163
  movl   $0x20,-0x9b5c(%rbp)
  movl   $0x40,-0x9b58(%rbp)
  mov    -0x9b58(%rbp),%eax
  mov    %eax,-0x9b54(%rbp)
  movl   $0x0,-0x9bd4(%rbp)
  jmp    L936
L944:
  movl   $0x0,-0x9bd0(%rbp)
  jmp    L189
L1526:
  mov    -0x9bd0(%rbp),%eax
  mov    %eax,-0x9bcc(%rbp)
  jmp    L1413
L174:
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm2
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bcc(%rbp)
L1413:
  mov    -0x9bd0(%rbp),%edx
  mov    -0x9b54(%rbp),%eax
  add    %edx,%eax
  cmp    %eax,-0x9bcc(%rbp)
  jl     L174
  mov    -0x9b54(%rbp),%eax
  add    %eax,-0x9bd0(%rbp)
L189:
  cmpl   $0xff,-0x9bd0(%rbp)
  jle    L1526
  addl   $0x1,-0x9bd4(%rbp)
L936:
  cmpl   $0x0,-0x9bd4(%rbp)
  jle    L944
  movl   $0x0,-0x9bc8(%rbp)
  jmp    L345
L1129:
  mov    -0x9bc8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D178(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L270
  movsd  D178(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L149
L270:
  mov    -0x9bc8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D359(%rip),%rdx
  mov    -0x9bc8(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D478(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c74(%rbp)
L149:
  addl   $0x1,-0x9bc8(%rbp)
L345:
  cmpl   $0xff,-0x9bc8(%rbp)
  jle    L1129
  cmpl   $0x0,-0x9c74(%rbp)
  je     L1455
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L844
L1455:
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L844:
  lea    D242(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x0,-0x9bc4(%rbp)
  jmp    L1227
L745:
  mov    -0x9bc4(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bc4(%rbp)
L1227:
  cmpl   $0x3df,-0x9bc4(%rbp)
  jle    L745
  movl   $0x0,-0x9bc0(%rbp)
  jmp    L398
L229:
  mov    -0x9bc0(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bc0(%rbp)
L398:
  cmpl   $0x3df,-0x9bc0(%rbp)
  jle    L229
  movl   $0x20,-0x9b5c(%rbp)
  movl   $0x40,-0x9b58(%rbp)
  mov    -0x9b58(%rbp),%eax
  mov    %eax,-0x9b54(%rbp)
  movl   $0x0,-0x9bbc(%rbp)
  jmp    L1524
L1597:
  movl   $0x0,-0x9bb8(%rbp)
  jmp    L1342
L979:
  mov    -0x9bb8(%rbp),%edx
  mov    -0x9b54(%rbp),%eax
  add    %edx,%eax
  cmp    $0x1fd,%eax
  jg     L866
  mov    -0x9bb8(%rbp),%edx
  mov    -0x9b54(%rbp),%eax
  add    %edx,%eax
  jmp    L477
L866:
  mov    $0x200,%eax
L477:
  mov    %eax,-0x9b4c(%rbp)
  mov    -0x9bb8(%rbp),%eax
  mov    %eax,-0x9bb4(%rbp)
  jmp    L810
L186:
  mov    -0x9bb4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bb4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm2
  mov    -0x9bb4(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bb4(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bb4(%rbp)
L810:
  mov    -0x9bb4(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L186
  mov    -0x9b54(%rbp),%eax
  add    %eax,-0x9bb8(%rbp)
L1342:
  cmpl   $0x1fd,-0x9bb8(%rbp)
  jle    L979
  addl   $0x1,-0x9bbc(%rbp)
L1524:
  cmpl   $0x0,-0x9bbc(%rbp)
  jle    L1597
  movl   $0x0,-0x9bb0(%rbp)
  jmp    L817
L130:
  mov    -0x9bb0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D178(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1072
  movsd  D178(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L501
L1072:
  mov    -0x9bb0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D359(%rip),%rdx
  mov    -0x9bb0(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D478(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c74(%rbp)
L501:
  addl   $0x1,-0x9bb0(%rbp)
L817:
  cmpl   $0xff,-0x9bb0(%rbp)
  jle    L130
  cmpl   $0x0,-0x9c74(%rbp)
  je     L1498
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L129
L1498:
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L129:
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9b64(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b38(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b30(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b28(%rbp)
  movl   $0x0,-0x9bac(%rbp)
  jmp    L603
L1509:
  movl   $0x0,-0x9ba8(%rbp)
  jmp    L1271
L1408:
  mov    -0x9bac(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9ba8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9bac(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9ba8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b30(%rbp),%rax
  add    %rdx,%rax
  movsd  D178(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9bac(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9ba8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b28(%rbp),%rax
  add    %rdx,%rax
  movsd  D579(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9ba8(%rbp)
L1271:
  cmpl   $0x3df,-0x9ba8(%rbp)
  jle    L1408
  addl   $0x1,-0x9bac(%rbp)
L603:
  cmpl   $0x3df,-0x9bac(%rbp)
  jle    L1509
  movl   $0x0,-0x9ba4(%rbp)
  jmp    L1636
L967:
  movl   $0x0,-0x9ba0(%rbp)
  jmp    L352
L268:
  movl   $0x0,-0x9b9c(%rbp)
  jmp    L851
L232:
  mov    -0x9ba0(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b9c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9ba0(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b9c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x9ba0(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b9c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm2,%xmm0
  mov    -0x9ba0(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b9c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b9c(%rbp)
L851:
  cmpl   $0x3df,-0x9b9c(%rbp)
  jle    L232
  addl   $0x1,-0x9ba0(%rbp)
L352:
  cmpl   $0x3df,-0x9ba0(%rbp)
  jle    L268
  addl   $0x1,-0x9ba4(%rbp)
L1636:
  cmpl   $0x0,-0x9ba4(%rbp)
  jle    L967
  movl   $0x0,-0x9b98(%rbp)
  jmp    L28
L611:
  movl   $0x0,-0x9b94(%rbp)
  jmp    L669
L713:
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd D554(%rip),%xmm0
  jp     L886
  ucomisd D554(%rip),%xmm0
  je     L741
L886:
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    D554(%rip),%rcx
  mov    -0x9b94(%rbp),%edx
  mov    -0x9b98(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %eax,%esi
  lea    D309(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c74(%rbp)
L741:
  addl   $0x1,-0x9b94(%rbp)
L669:
  cmpl   $0x3df,-0x9b94(%rbp)
  jle    L713
  addl   $0x1,-0x9b98(%rbp)
L28:
  cmpl   $0x3df,-0x9b98(%rbp)
  jle    L611
  cmpl   $0x0,-0x9c74(%rbp)
  je     L434
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1419
L434:
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1419:
  lea    D397(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x9b64(%rbp)
  movl   $0x7c,-0x9b50(%rbp)
  mov    -0x9b50(%rbp),%eax
  imul   %eax,%eax
  imul   -0x9b50(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b20(%rbp)
  mov    -0x9b50(%rbp),%eax
  imul   %eax,%eax
  imul   -0x9b50(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b18(%rbp)
  movl   $0x0,-0x9b90(%rbp)
  jmp    L1291
L428:
  movl   $0x0,-0x9b8c(%rbp)
  jmp    L752
L1381:
  movl   $0x0,-0x9b88(%rbp)
  jmp    L491
L365:
  mov    -0x9b90(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b8c(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  D579(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b90(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b8c(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b18(%rbp),%rax
  add    %rdx,%rax
  movsd  D554(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b88(%rbp)
L491:
  mov    -0x9b88(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L365
  addl   $0x1,-0x9b8c(%rbp)
L752:
  mov    -0x9b8c(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L1381
  addl   $0x1,-0x9b90(%rbp)
L1291:
  mov    -0x9b90(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L428
  movl   $0x0,-0x9b84(%rbp)
  jmp    L1407
L645:
  movl   $0x0,-0x9b80(%rbp)
  jmp    L759
L806:
  movl   $0x0,-0x9b7c(%rbp)
  jmp    L127
L496:
  movl   $0x0,-0x9b78(%rbp)
  jmp    L315
L1347:
  mov    -0x9b80(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9b80(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9b80(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b78(%rbp)
L315:
  mov    -0x9b78(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L1347
  addl   $0x1,-0x9b7c(%rbp)
L127:
  mov    -0x9b7c(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L496
  addl   $0x1,-0x9b80(%rbp)
L759:
  mov    -0x9b80(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L806
  addl   $0x1,-0x9b84(%rbp)
L1407:
  cmpl   $0x0,-0x9b84(%rbp)
  jle    L645
  movl   $0x0,-0x9b74(%rbp)
  jmp    L965
L1055:
  movl   $0x0,-0x9b70(%rbp)
  jmp    L803
L1469:
  movl   $0x0,-0x9b6c(%rbp)
  jmp    L953
L1310:
  mov    -0x9b74(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b70(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b6c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd D359(%rip),%xmm0
  jp     L983
  ucomisd D359(%rip),%xmm0
  je     L1375
L983:
  mov    -0x9b74(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b70(%rbp),%eax
  imul   -0x9b50(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b6c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    D554(%rip),%rcx
  mov    -0x9b70(%rbp),%edx
  mov    -0x9b74(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %eax,%esi
  lea    D309(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c74(%rbp)
L1375:
  addl   $0x1,-0x9b6c(%rbp)
L953:
  mov    -0x9b6c(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L1310
  addl   $0x1,-0x9b70(%rbp)
L803:
  mov    -0x9b70(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L1469
  addl   $0x1,-0x9b74(%rbp)
L965:
  mov    -0x9b74(%rbp),%eax
  cmp    -0x9b50(%rbp),%eax
  jl     L1055
  cmpl   $0x0,-0x9c74(%rbp)
  je     L431
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1606
L431:
  lea    D492(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1606:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L1022
  call   <__stack_chk_fail@plt>
L1022:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D579
type: f64
name: unpack_data
arguments: data_tag: D452
type: f64
name: unpack_data
arguments: data_tag: D178
type: f64
name: unpack_data
arguments: data_tag: D308
type: string
name: unpack_data
arguments: data_tag: D492
type: string
name: unpack_data
arguments: data_tag: D479
type: string
name: unpack_data
arguments: data_tag: D71
type: string
name: unpack_data
arguments: data_tag: D302
type: string
name: unpack_data
arguments: data_tag: D562
type: string
name: unpack_data
arguments: data_tag: D249
type: string
name: unpack_data
arguments: data_tag: D96
type: string
name: unpack_data
arguments: data_tag: D169
type: string
name: unpack_data
arguments: data_tag: D422
type: string
name: unpack_data
arguments: data_tag: D320
type: string
name: unpack_data
arguments: data_tag: D355
type: string
name: unpack_data
arguments: data_tag: D270
type: string
name: unpack_data
arguments: data_tag: D242
type: string
name: unpack_data
arguments: data_tag: D359
type: f32[2]
name: unpack_data
arguments: data_tag: D478
type: string
name: unpack_data
arguments: data_tag: D141
type: string
name: unpack_data
arguments: data_tag: D59
type: string
name: unpack_data
arguments: data_tag: D554
type: f64
name: unpack_data
arguments: data_tag: D309
type: string
name: unpack_data
arguments: data_tag: D397
type: string

tool: D579: 2

tool: D452: 4

tool: D178: 1

tool: D308: iterations = teams

tool: D492: Succeeded

tool: D479: iterations > teams

tool: D71: iterations < teams

tool: D302: num_teams(512) dist_schedule(static,1)

tool: D562: num_teams(512) dist_schedule(static,512)

tool: D249: num_teams(512) dist_schedule(static, chunkSize)

tool: D96: num_teams(1024) dist_schedule(static, chunkSize)

tool: D169: num_teams(1024) dist_schedule(static, 1)

tool: D422: num_teams(3) dist_schedule(static, 1)

tool: D320: num_teams(3) dist_schedule(static, 3)

tool: D355: num_teams(10) dist_schedule(static, 99)

tool: D270: num_teams(256) dist_schedule(static, 992)

tool: D242: num_teams(nte) thread_limit(tl) with parallel for innermost

tool: {"D359": [0.0,2.3125]}

tool: D478: Error at A[%d], h = %lf, d = %lf


tool: D141: Failed

tool: D59: num_teams(512) collapse(2)

tool: D554: 3

tool: D309: Error at (%d,%d), h = %lf, d = %lf


tool: D397: num_teams(512) collapse(3)

assistant: ```c
int main(void) {
  check_offloading();
  double A[(992)], B[(992)], C[(992)], D[(992)], E[(992)];
  int fail = 0;
  int expected = 1;
  int success = 0;
  int chunkSize;
  double p = 2.0, q = 4.0;
  int nte, tl, blockSize;
  {
    int i;
    for (i = 0; i < (992); i++) {
      {
        C[i] = 1;
        D[i] = i;
        E[i] = -i;
      }
    }
  };
  printf("iterations = teams\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("iterations > teams\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("iterations < teams\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(512) dist_schedule(static,1)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(512) dist_schedule(static,512)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(512) dist_schedule(static, chunkSize)\n");
  chunkSize = (992) / 10;
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(1024) dist_schedule(static, chunkSize)\n");
  chunkSize = (992) / 10;
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(1024) dist_schedule(static, 1)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(3) dist_schedule(static, 1)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(3) dist_schedule(static, 3)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(10) dist_schedule(static, 99)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(256) dist_schedule(static, 992)\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  success = 0;
  for (int t = 0; t < (1); t++) {
#pragma omp target

#pragma omp teams distribute simd CLAUSES
    for (int i = 0; i < (992); i++) {
      A[i] += C[i];
    }
  }
  success += check_results(A);
  if (success == expected)
    printf("Succeeded\n");
  printf("num_teams(nte) thread_limit(tl) with parallel for innermost\n");
  success = 0;
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      B[i] = 0;
    }
  };
  nte = 32;
  tl = 64;
  blockSize = tl;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams distribute simd num_teams(nte) thread_limit(tl)
    for (int j = 0; j < 256; j += blockSize) {
      for (int i = j; i < j + blockSize; i++) {
        A[i] += B[i] + C[i];
      }
    }
  }
  for (int i = 0; i < 256; i++) {
    if (A[i] != (1)) {
      printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(2.0 + 3.0) * (1), A[i]);
      fail = 1;
    }
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  printf("num_teams(nte) thread_limit(tl) with parallel for innermost\n");
  success = 0;
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      B[i] = 0;
    }
  };
  nte = 32;
  tl = 64;
  blockSize = tl;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams distribute simd num_teams(nte) thread_limit(tl)
    for (int j = 0; j < 510; j += blockSize) {
      int ub = (j + blockSize < 510) ? (j + blockSize) : 512;
      for (int i = j; i < ub; i++) {
        A[i] += B[i] + C[i];
      }
    }
  }
  for (int i = 0; i < 256; i++) {
    if (A[i] != (1)) {
      printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(2.0 + 3.0) * (1), A[i]);
      fail = 1;
    }
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  printf("num_teams(512) collapse(2)\n");
  success = 0;
  double *S = malloc((992) * (992) * sizeof(double));
  double *T = malloc((992) * (992) * sizeof(double));
  double *U = malloc((992) * (992) * sizeof(double));
  for (int i = 0; i < (992); i++)
    for (int j = 0; j < (992); j++) {
      S[i * (992) + j] = 0.0;
      T[i * (992) + j] = 1.0;
      U[i * (992) + j] = 2.0;
    }
  for (int t = 0; t < (1); t++) {
#pragma omp target map(tofrom : S[:N * N]), map(to : T[:N * N], U[:N * N])
#pragma omp teams distribute simd num_teams(512) collapse(2)
    for (int i = 0; i < (992); i++)
      for (int j = 0; j < (992); j++)
        S[i * (992) + j] += T[i * (992) + j] + U[i * (992) + j];
  }
  for (int i = 0; i < (992); i++)
    for (int j = 0; j < (992); j++)
      if (S[i * (992) + j] != (1) * 3.0) {
        printf("Error at (%d,%d), h = %lf, d = %lf\n", i, j, (double)(1) * 3.0, S[i * (992) + j]);
        fail = 1;
      }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  printf("num_teams(512) collapse(3)\n");
  success = 0;
  int M = (992) / 8;
  double *V = malloc(M * M * M * sizeof(double));
  double *Z = malloc(M * M * M * sizeof(double));
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int k = 0; k < M; k++) {
        V[i * M * M + j * M + k] = 2.0;
        Z[i * M * M + j * M + k] = 3.0;
      }
  for (int t = 0; t < (1); t++) {
#pragma omp target map(tofrom : V[:M * M * M]), map(to : Z[:M * M * M])
#pragma omp teams distribute simd num_teams(512) collapse(3)
    for (int i = 0; i < M; i++)
      for (int j = 0; j < M; j++)
        for (int k = 0; k < M; k++)
          V[i * M * M + j * M + k] += Z[i * M * M + j * M + k];
  }
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int k = 0; k < M; k++)
        if (V[i * M * M + j * M + k] != 2.0 + (1) * 3.0) {
          printf("Error at (%d,%d), h = %lf, d = %lf\n", i, j, (double)(1) * 3.0, V[i * M * M + j * M + k]);
          fail = 1;
        }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  return 0;
}
```