user: Demonstrate the C code that generates the assembly output below:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  add    $0xffffffffffffff80,%rsp
  mov    %edi,-0x74(%rbp)
  mov    %rsi,-0x80(%rbp)
  movl   $0x8,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x20(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x18(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x10(%rbp)
  movl   $0x0,-0x6c(%rbp)
  jmp    L21
L1474:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D230(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L21:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1474
  movl   $0x0,-0x68(%rbp)
  jmp    L363
L208:
  mov    -0x68(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x68(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x68(%rbp)
L363:
  mov    -0x68(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L208
  movl   $0x0,-0x6c(%rbp)
  jmp    L832
L1284:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D230(%rip),%xmm0
  jp     L610
  ucomiss D230(%rip),%xmm0
  je     L1138
L610:
  call   <abort@plt>
L1138:
  addl   $0x1,-0x6c(%rbp)
L832:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1284
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1847
  call   <abort@plt>
L1847:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1017
  call   <abort@plt>
L1017:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1263
L270:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D513(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D537(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1263:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L270
  movl   $0x0,-0x64(%rbp)
  jmp    L714
L1737:
  mov    -0x64(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x64(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x64(%rbp)
L714:
  mov    -0x64(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1737
  movl   $0x0,-0x6c(%rbp)
  jmp    L727
L2071:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D513(%rip),%xmm0
  jp     L1432
  ucomiss D513(%rip),%xmm0
  je     L1678
L1432:
  call   <abort@plt>
L1678:
  addl   $0x1,-0x6c(%rbp)
L727:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L2071
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1534
  call   <abort@plt>
L1534:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L230
  call   <abort@plt>
L230:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1982
L1274:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D240(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1982:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1274
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_copyin@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0x6c(%rbp)
  jmp    L1332
L1241:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D128(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1332:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1241
  movl   $0x0,-0x60(%rbp)
  jmp    L887
L1974:
  mov    -0x60(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x60(%rbp)
L887:
  mov    -0x60(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1974
  movl   $0x0,-0x6c(%rbp)
  jmp    L1152
L1051:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D240(%rip),%xmm0
  jp     L1008
  ucomiss D240(%rip),%xmm0
  je     L1360
L1008:
  call   <abort@plt>
L1360:
  addl   $0x1,-0x6c(%rbp)
L1152:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1051
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L1094
  call   <abort@plt>
L1094:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1227
  call   <abort@plt>
L1227:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_delete@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1554
  call   <abort@plt>
L1554:
  movl   $0x0,-0x6c(%rbp)
  jmp    L2039
L1999:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D240(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L2039:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1999
  movl   $0x0,-0x5c(%rbp)
  jmp    L1520
L838:
  mov    -0x5c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x5c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x5c(%rbp)
L1520:
  mov    -0x5c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L838
  movl   $0x0,-0x6c(%rbp)
  jmp    L9
L1637:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D240(%rip),%xmm0
  jp     L77
  ucomiss D240(%rip),%xmm0
  je     L932
L77:
  call   <abort@plt>
L932:
  addl   $0x1,-0x6c(%rbp)
L9:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1637
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1247
  call   <abort@plt>
L1247:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L518
  call   <abort@plt>
L518:
  movl   $0x0,-0x6c(%rbp)
  jmp    L2055
L1146:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D513(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D715(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L2055:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1146
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_copyin@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0x58(%rbp)
  jmp    L1711
L126:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x58(%rbp)
L1711:
  mov    -0x58(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L126
  movl   $0x0,-0x6c(%rbp)
  jmp    L1100
L1288:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D513(%rip),%xmm0
  jp     L1379
  ucomiss D513(%rip),%xmm0
  je     L512
L1379:
  call   <abort@plt>
L512:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D715(%rip),%xmm0
  jp     L1056
  ucomiss D715(%rip),%xmm0
  je     L1430
L1056:
  call   <abort@plt>
L1430:
  addl   $0x1,-0x6c(%rbp)
L1100:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1288
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L544
  call   <abort@plt>
L544:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L1593
  call   <abort@plt>
L1593:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_delete@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1927
  call   <abort@plt>
L1927:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1710
L1596:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D230(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D859(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1710:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1596
  movl   $0x0,-0x54(%rbp)
  jmp    L2053
L948:
  mov    -0x54(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x54(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D537(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x54(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x54(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D715(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x54(%rbp)
L2053:
  mov    -0x54(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L948
  movl   $0x0,-0x6c(%rbp)
  jmp    L1768
L1771:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L421
  ucomiss D859(%rip),%xmm0
  je     L1296
L421:
  call   <abort@plt>
L1296:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D240(%rip),%xmm0
  jp     L1973
  ucomiss D240(%rip),%xmm0
  je     L1922
L1973:
  call   <abort@plt>
L1922:
  addl   $0x1,-0x6c(%rbp)
L1768:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1771
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L371
  call   <abort@plt>
L371:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1297
  call   <abort@plt>
L1297:
  movl   $0x0,-0x6c(%rbp)
  jmp    L234
L572:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D859(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D921(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L234:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L572
  movl   $0x0,-0x50(%rbp)
  jmp    L2073
L707:
  mov    -0x50(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x50(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D537(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x50(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x50(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D715(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x50(%rbp)
L2073:
  mov    -0x50(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L707
  movl   $0x0,-0x6c(%rbp)
  jmp    L1499
L1787:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D513(%rip),%xmm0
  jp     L1215
  ucomiss D513(%rip),%xmm0
  je     L1503
L1215:
  call   <abort@plt>
L1503:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D128(%rip),%xmm0
  jp     L1718
  ucomiss D128(%rip),%xmm0
  je     L316
L1718:
  call   <abort@plt>
L316:
  addl   $0x1,-0x6c(%rbp)
L1499:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1787
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L245
  call   <abort@plt>
L245:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L2019
  call   <abort@plt>
L2019:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1598
L20:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D230(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D921(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1598:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L20
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_copyin@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_copyin@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0x4c(%rbp)
  jmp    L1166
L124:
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D537(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D715(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x4c(%rbp)
L1166:
  mov    -0x4c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L124
  movl   $0x0,-0x6c(%rbp)
  jmp    L922
L753:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D230(%rip),%xmm0
  jp     L618
  ucomiss D230(%rip),%xmm0
  je     L483
L618:
  call   <abort@plt>
L483:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D921(%rip),%xmm0
  jp     L475
  ucomiss D921(%rip),%xmm0
  je     L2050
L475:
  call   <abort@plt>
L2050:
  addl   $0x1,-0x6c(%rbp)
L922:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L753
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L1696
  call   <abort@plt>
L1696:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L298
  call   <abort@plt>
L298:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_delete@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L502
  call   <abort@plt>
L502:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_delete@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L94
  call   <abort@plt>
L94:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1339
L197:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D230(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D921(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1339:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L197
  movl   $0x0,-0x48(%rbp)
  jmp    L881
L1934:
  mov    -0x48(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x48(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x10(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x48(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x48(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x48(%rbp)
L881:
  mov    -0x48(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1934
  movl   $0x0,-0x6c(%rbp)
  jmp    L1437
L1082:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D230(%rip),%xmm0
  jp     L1316
  ucomiss D230(%rip),%xmm0
  je     L1823
L1316:
  call   <abort@plt>
L1823:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D230(%rip),%xmm0
  jp     L1760
  ucomiss D230(%rip),%xmm0
  je     L291
L1760:
  call   <abort@plt>
L291:
  addl   $0x1,-0x6c(%rbp)
L1437:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1082
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1613
  call   <abort@plt>
L1613:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L581
  call   <abort@plt>
L581:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L758
  call   <abort@plt>
L758:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1899
L1119:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D859(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D133(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1899:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1119
  movl   $0x0,-0x44(%rbp)
  jmp    L375
L285:
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x10(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x44(%rbp)
L375:
  mov    -0x44(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L285
  movl   $0x0,-0x6c(%rbp)
  jmp    L1240
L1081:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L960
  ucomiss D859(%rip),%xmm0
  je     L570
L960:
  call   <abort@plt>
L570:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L1650
  ucomiss D859(%rip),%xmm0
  je     L1519
L1650:
  call   <abort@plt>
L1519:
  addl   $0x1,-0x6c(%rbp)
L1240:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1081
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L310
  call   <abort@plt>
L310:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L741
  call   <abort@plt>
L741:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L263
  call   <abort@plt>
L263:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1813
L183:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D715(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D513(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1813:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L183
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_malloc@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x10(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_map_data@plt>
  movl   $0x0,-0x40(%rbp)
  jmp    L705
L1349:
  mov    -0x40(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x40(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x10(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x40(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x40(%rbp)
L705:
  mov    -0x40(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1349
  movl   $0x0,-0x6c(%rbp)
  jmp    L374
L1770:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D715(%rip),%xmm0
  jp     L1929
  ucomiss D715(%rip),%xmm0
  je     L252
L1929:
  call   <abort@plt>
L252:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D715(%rip),%xmm0
  jp     L1807
  ucomiss D715(%rip),%xmm0
  je     L904
L1807:
  call   <abort@plt>
L904:
  addl   $0x1,-0x6c(%rbp)
L374:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1770
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L981
  call   <abort@plt>
L981:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L300
  call   <abort@plt>
L300:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L414
  call   <abort@plt>
L414:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_deviceptr@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_unmap_data@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_free@plt>
  movl   $0x0,-0x6c(%rbp)
  jmp    L177
L1956:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D859(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D133(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L177:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1956
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_malloc@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x10(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_map_data@plt>
  movl   $0x0,-0x3c(%rbp)
  jmp    L1741
L859:
  mov    -0x3c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x3c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x10(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x3c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x3c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x3c(%rbp)
L1741:
  mov    -0x3c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L859
  movl   $0x0,-0x6c(%rbp)
  jmp    L1522
L1795:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L1190
  ucomiss D859(%rip),%xmm0
  je     L1948
L1190:
  call   <abort@plt>
L1948:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L46
  ucomiss D859(%rip),%xmm0
  je     L1729
L46:
  call   <abort@plt>
L1729:
  addl   $0x1,-0x6c(%rbp)
L1522:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1795
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1197
  call   <abort@plt>
L1197:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L236
  call   <abort@plt>
L236:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L759
  call   <abort@plt>
L759:
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_unmap_data@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L768
  call   <abort@plt>
L768:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_free@plt>
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_malloc@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x10(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_map_data@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L1420
  call   <abort@plt>
L1420:
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_malloc@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x18(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_map_data@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L164
  call   <abort@plt>
L164:
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_malloc@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x20(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_map_data@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L907
  call   <abort@plt>
L907:
  movl   $0x0,-0x38(%rbp)
  jmp    L1915
L100:
  mov    -0x38(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D537(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rdx,%rax
  movss  D715(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x38(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D859(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x38(%rbp)
L1915:
  mov    -0x38(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L100
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L92
  call   <abort@plt>
L92:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L54
  call   <abort@plt>
L54:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L1483
  call   <abort@plt>
L1483:
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_deviceptr@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rcx
  mov    -0x18(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_memcpy_from_device@plt>
  movl   $0x0,-0x6c(%rbp)
  jmp    L1617
L1836:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L750
  ucomiss D859(%rip),%xmm0
  je     L1428
L750:
  call   <abort@plt>
L1428:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D859(%rip),%xmm0
  jp     L16
  ucomiss D859(%rip),%xmm0
  je     L992
L16:
  call   <abort@plt>
L992:
  addl   $0x1,-0x6c(%rbp)
L1617:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1836
  mov    -0x20(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_deviceptr@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x20(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_unmap_data@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_free@plt>
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_deviceptr@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_unmap_data@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_free@plt>
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_deviceptr@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  mov    -0x10(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_unmap_data@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_free@plt>
  movl   $0x0,-0x6c(%rbp)
  jmp    L786
L725:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D230(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D240(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L786:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L725
  mov    -0x24(%rbp),%eax
  cltq
  shl    $0x2,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_malloc@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0x34(%rbp)
  jmp    L1356
L543:
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x8(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x34(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x34(%rbp)
L1356:
  mov    -0x34(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L543
  movl   $0x0,-0x6c(%rbp)
  jmp    L1479
L873:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D230(%rip),%xmm0
  jp     L396
  ucomiss D230(%rip),%xmm0
  je     L1680
L396:
  call   <abort@plt>
L1680:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D230(%rip),%xmm0
  jp     L1253
  ucomiss D230(%rip),%xmm0
  je     L700
L1253:
  call   <abort@plt>
L700:
  addl   $0x1,-0x6c(%rbp)
L1479:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L873
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L498
  call   <abort@plt>
L498:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1944
  call   <abort@plt>
L1944:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_free@plt>
  movl   $0x0,-0x6c(%rbp)
  jmp    L442
L1639:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D240(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L442:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1639
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_copyin@plt>
  cltq
  mov    %rax,-0x8(%rbp)
  movl   $0x0,-0x6c(%rbp)
  jmp    L2033
L842:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D128(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L2033:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L842
  movl   $0x0,-0x30(%rbp)
  jmp    L1706
L1158:
  mov    -0x30(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x30(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x30(%rbp)
L1706:
  mov    -0x30(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1158
  movl   $0x0,-0x6c(%rbp)
  jmp    L1435
L1939:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D240(%rip),%xmm0
  jp     L179
  ucomiss D240(%rip),%xmm0
  je     L893
L179:
  call   <abort@plt>
L893:
  addl   $0x1,-0x6c(%rbp)
L1435:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1939
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  jne    L1797
  call   <abort@plt>
L1797:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1091
  call   <abort@plt>
L1091:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_delete@plt>
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1449
  call   <abort@plt>
L1449:
  movl   $0x0,-0x6c(%rbp)
  jmp    L1304
L1160:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D240(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L1304:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1160
  movl   $0x0,-0x2c(%rbp)
  jmp    L158
L1501:
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x2c(%rbp)
L158:
  mov    -0x2c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1501
  movl   $0x0,-0x6c(%rbp)
  jmp    L430
L593:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D240(%rip),%xmm0
  jp     L912
  ucomiss D240(%rip),%xmm0
  je     L1969
L912:
  call   <abort@plt>
L1969:
  addl   $0x1,-0x6c(%rbp)
L430:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L593
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1343
  call   <abort@plt>
L1343:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1251
  call   <abort@plt>
L1251:
  movl   $0x0,-0x6c(%rbp)
  jmp    L639
L1568:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  D513(%rip),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  D921(%rip),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x6c(%rbp)
L639:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1568
  movl   $0x0,-0x28(%rbp)
  jmp    L1393
L1485:
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x10(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x28(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x18(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x28(%rbp)
L1393:
  mov    -0x28(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1485
  movl   $0x0,-0x6c(%rbp)
  jmp    L1931
L1746:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D513(%rip),%xmm0
  jp     L1050
  ucomiss D513(%rip),%xmm0
  je     L1643
L1050:
  call   <abort@plt>
L1643:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  ucomiss D513(%rip),%xmm0
  jp     L936
  ucomiss D513(%rip),%xmm0
  je     L481
L936:
  call   <abort@plt>
L481:
  addl   $0x1,-0x6c(%rbp)
L1931:
  mov    -0x6c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L1746
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x20(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L2032
  call   <abort@plt>
L2032:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1226
  call   <abort@plt>
L1226:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L532
  call   <abort@plt>
L532:
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D230
type_guessed: f32
name: read_data
arguments: data_tag: D513
type_guessed: f32
name: read_data
arguments: data_tag: D537
type_guessed: f32
name: read_data
arguments: data_tag: D240
type_guessed: f32
name: read_data
arguments: data_tag: D128
type_guessed: f32
name: read_data
arguments: data_tag: D715
type_guessed: f32
name: read_data
arguments: data_tag: D859
type_guessed: f32
name: read_data
arguments: data_tag: D921
type_guessed: f32
name: read_data
arguments: data_tag: D133
type_guessed: f32

tool: D230: 3

tool: D513: 5

tool: D537: 1

tool: D240: 6

tool: D128: 9

tool: D715: 2

tool: D859: 4

tool: D921: 7

tool: D133: 8

assistant: ```c
int main(int argc, char **argv) {
  int N = 8;
  float *a, *b, *c, *d;
  int i;
  a = (float *)malloc(N * sizeof(float));
  b = (float *)malloc(N * sizeof(float));
  c = (float *)malloc(N * sizeof(float));
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 0.0;
  }
#pragma acc data copyin(a [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (b[i] != 3.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 1.0;
  }
#pragma acc data copyin(a [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (b[i] != 5.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
    b[i] = 0.0;
  }
  d = (float *)acc_copyin(&a[0], N * sizeof(float));
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc data present_or_copyin(a [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (b[i] != 6.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  acc_delete(&a[0], N * sizeof(float));
  if (acc_is_present(&a[0], N * sizeof(float)))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
    b[i] = 0.0;
  }
#pragma acc data copyin(a [0:N]) present_or_copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (b[i] != 6.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 2.0;
  }
  d = (float *)acc_copyin(&b[0], N * sizeof(float));
#pragma acc data copyin(a [0:N]) present_or_copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 5.0)
      abort();
    if (b[i] != 2.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  acc_delete(&b[0], N * sizeof(float));
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 4.0;
  }
#pragma acc data copy(a [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        a[ii] = a[ii] + 1;
        b[ii] = a[ii] + 2;
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 4.0)
      abort();
    if (b[i] != 6.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 4.0;
    b[i] = 7.0;
  }
#pragma acc data present_or_copy(a [0:N]) present_or_copy(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        a[ii] = a[ii] + 1;
        b[ii] = b[ii] + 2;
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 5.0)
      abort();
    if (b[i] != 9.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 7.0;
  }
  d = (float *)acc_copyin(&a[0], N * sizeof(float));
  d = (float *)acc_copyin(&b[0], N * sizeof(float));
#pragma acc data present_or_copy(a [0:N]) present_or_copy(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        a[ii] = a[ii] + 1;
        b[ii] = b[ii] + 2;
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 3.0)
      abort();
    if (b[i] != 7.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (!acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  acc_delete(&a[0], N * sizeof(float));
  if (acc_is_present(&a[0], N * sizeof(float)))
    abort();
  acc_delete(&b[0], N * sizeof(float));
  if (acc_is_present(&b[0], N * sizeof(float)))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 7.0;
  }
#pragma acc data copyin(a [0:N]) create(c [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        c[ii] = a[ii];
        b[ii] = c[ii];
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 3.0)
      abort();
    if (b[i] != 3.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&c[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 4.0;
    b[i] = 8.0;
  }
#pragma acc data copyin(a [0:N]) present_or_create(c [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        c[ii] = a[ii];
        b[ii] = c[ii];
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 4.0)
      abort();
    if (b[i] != 4.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&c[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 2.0;
    b[i] = 5.0;
  }
  d = (float *)acc_malloc(N * sizeof(float));
  acc_map_data(c, d, N * sizeof(float));
#pragma acc data copyin(a [0:N]) present_or_create(c [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        c[ii] = a[ii];
        b[ii] = c[ii];
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 2.0)
      abort();
    if (b[i] != 2.0)
      abort();
  }
  if (acc_is_present(a, (N * sizeof(float))))
    abort();
  if (acc_is_present(b, (N * sizeof(float))))
    abort();
  if (!acc_is_present(c, (N * sizeof(float))))
    abort();
  d = (float *)acc_deviceptr(c);
  acc_unmap_data(c);
  acc_free(d);
  for (i = 0; i < N; i++) {
    a[i] = 4.0;
    b[i] = 8.0;
  }
  d = (float *)acc_malloc(N * sizeof(float));
  acc_map_data(c, d, N * sizeof(float));
#pragma acc data copyin(a [0:N]) present(c [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        c[ii] = a[ii];
        b[ii] = c[ii];
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 4.0)
      abort();
    if (b[i] != 4.0)
      abort();
  }
  if (acc_is_present(a, (N * sizeof(float))))
    abort();
  if (acc_is_present(b, (N * sizeof(float))))
    abort();
  if (!acc_is_present(c, (N * sizeof(float))))
    abort();
  acc_unmap_data(c);
  if (acc_is_present(c, (N * sizeof(float))))
    abort();
  acc_free(d);
  d = (float *)acc_malloc(N * sizeof(float));
  acc_map_data(c, d, N * sizeof(float));
  if (!acc_is_present(c, (N * sizeof(float))))
    abort();
  d = (float *)acc_malloc(N * sizeof(float));
  acc_map_data(b, d, N * sizeof(float));
  if (!acc_is_present(b, (N * sizeof(float))))
    abort();
  d = (float *)acc_malloc(N * sizeof(float));
  acc_map_data(a, d, N * sizeof(float));
  if (!acc_is_present(a, (N * sizeof(float))))
    abort();
#pragma acc data present(a [0:N]) present(c [0:N]) present(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        a[ii] = 1.0;
        c[ii] = 2.0;
        b[ii] = 4.0;
      }
    }
  }
  if (!acc_is_present(a, (N * sizeof(float))))
    abort();
  if (!acc_is_present(b, (N * sizeof(float))))
    abort();
  if (!acc_is_present(c, (N * sizeof(float))))
    abort();
  d = (float *)acc_deviceptr(b);
  acc_memcpy_from_device(b, d, N * sizeof(float));
  for (i = 0; i < N; i++) {
    if (a[i] != 4.0)
      abort();
    if (b[i] != 4.0)
      abort();
  }
  d = (float *)acc_deviceptr(a);
  acc_unmap_data(a);
  acc_free(d);
  d = (float *)acc_deviceptr(b);
  acc_unmap_data(b);
  acc_free(d);
  d = (float *)acc_deviceptr(c);
  acc_unmap_data(c);
  acc_free(d);
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 6.0;
  }
  d = (float *)acc_malloc(N * sizeof(float));
#pragma acc parallel copyin(a [0:N]) deviceptr(d) copyout(b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++) {
      d[ii] = a[ii];
      b[ii] = d[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 3.0)
      abort();
    if (b[i] != 3.0)
      abort();
  }
  if (acc_is_present(a, (N * sizeof(float))))
    abort();
  if (acc_is_present(b, (N * sizeof(float))))
    abort();
  acc_free(d);
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
    b[i] = 0.0;
  }
  d = (float *)acc_copyin(&a[0], N * sizeof(float));
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc data pcopyin(a [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (b[i] != 6.0)
      abort();
  }
  if (!acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  acc_delete(&a[0], N * sizeof(float));
  if (acc_is_present(&a[0], N * sizeof(float)))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
    b[i] = 0.0;
  }
#pragma acc data copyin(a [0:N]) pcopyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++)
        b[ii] = a[ii];
    }
  }
  for (i = 0; i < N; i++) {
    if (b[i] != 6.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 7.0;
  }
#pragma acc data copyin(a [0:N]) pcreate(c [0:N]) copyout(b [0:N])
  {
#pragma acc parallel
    {
      int ii;
      for (ii = 0; ii < N; ii++) {
        c[ii] = a[ii];
        b[ii] = c[ii];
      }
    }
  }
  for (i = 0; i < N; i++) {
    if (a[i] != 5.0)
      abort();
    if (b[i] != 5.0)
      abort();
  }
  if (acc_is_present(&a[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&b[0], (N * sizeof(float))))
    abort();
  if (acc_is_present(&c[0], (N * sizeof(float))))
    abort();
  return 0;
}
```