user: 这段汇编代码用C语言表示是什么样的:

```asm
<main>:
  endbr64
  push   %r15
  mov    $0x20,%edi
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x38,%rsp
  call   <malloc@plt>
  mov    $0x20,%edi
  mov    %rax,%rbx
  call   <malloc@plt>
  mov    $0x20,%edi
  mov    %rax,%rbp
  call   <malloc@plt>
  mov    $0x20,%edi
  mov    %rbp,%r12
  mov    %rax,%r13
  call   <acc_malloc@plt>
  mov    $0x20,%edi
  mov    %rax,0x8(%rsp)
  call   <acc_malloc@plt>
  mov    $0x20,%edi
  mov    %rax,%r14
  call   <acc_malloc@plt>
  mov    0x8(%rsp),%rsi
  mov    %rax,%r15
  lea    0x4(%rbx),%rax
  sub    %rax,%r12
  cmp    $0x8,%r12
  jbe    L508
  movaps D1377(%rip),%xmm1
  pxor   %xmm0,%xmm0
  mov    $0x20,%edx
  mov    %rbx,%rdi
  movups %xmm1,(%rbx)
  movups %xmm0,0x0(%rbp)
  movups %xmm1,0x10(%rbx)
  movups %xmm0,0x10(%rbp)
  call   <acc_map_data@plt>
  mov    $0x20,%edx
  mov    %r14,%rsi
  mov    %rbp,%rdi
  call   <acc_map_data@plt>
  mov    $0x20,%edx
  mov    %r15,%rsi
  mov    %r13,%rdi
  call   <acc_map_data@plt>
  movups (%rbx),%xmm4
  movups %xmm4,0x0(%rbp)
  movups 0x10(%rbx),%xmm5
  movups %xmm5,0x10(%rbp)
L2451:
  movss  (%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L682
  jne    L682
L4261:
  movss  0x0(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L687
  jne    L687
L2855:
  movss  0x4(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L2007
  jne    L2007
L2167:
  movss  0x4(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L3960
  jne    L3960
L3934:
  movss  0x8(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L758
  jne    L758
L4200:
  movss  0x8(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L863
  jne    L863
L1603:
  movss  0xc(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L2913
  jne    L2913
L1242:
  movss  0xc(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L153
  jne    L153
L2496:
  movss  0x10(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L660
  jne    L660
L1525:
  movss  0x10(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L1288
  jne    L1288
L96:
  movss  0x14(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L3760
  jne    L3760
L2418:
  movss  0x14(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L3138
  jne    L3138
L2472:
  movss  0x18(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L3774
  jne    L3774
L1803:
  movss  0x18(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L427
  jne    L427
L391:
  movss  0x1c(%rbx),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L2602
  jne    L2602
L3710:
  movss  0x1c(%rbp),%xmm0
  ucomiss D1377(%rip),%xmm0
  jp     L68
  jne    L68
L1836:
  mov    $0x20,%esi
  mov    %rbx,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L842
L3234:
  mov    $0x20,%esi
  mov    %rbp,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L546
L3790:
  cmp    $0x8,%r12
  jbe    L1605
  movaps D388(%rip),%xmm4
  movaps D1363(%rip),%xmm0
  movups %xmm0,(%rbx)
  movups %xmm4,0x0(%rbp)
  movups %xmm0,0x10(%rbx)
  movups %xmm4,0x10(%rbp)
  movups (%rbx),%xmm6
  movaps %xmm4,0x20(%rsp)
  movss  D388(%rip),%xmm4
  movups %xmm6,0x0(%rbp)
  movups 0x10(%rbx),%xmm7
  movss  %xmm4,0x8(%rsp)
  movups %xmm7,0x10(%rbp)
L2920:
  movss  (%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L1286
  jne    L1286
L2273:
  movss  0x0(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L4222
  jne    L4222
L1405:
  movss  0x4(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L178
  jne    L178
L3956:
  movss  0x4(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L296
  jne    L296
L4273:
  movss  0x8(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L401
  jne    L401
L3465:
  movss  0x8(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3196
  jne    L3196
L2620:
  movss  0xc(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L1695
  jne    L1695
L1418:
  movss  0xc(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L2727
  jne    L2727
L1079:
  movss  0x10(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L92
  jne    L92
L745:
  movss  0x10(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3315
  jne    L3315
L774:
  movss  0x14(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L561
  jne    L561
L4331:
  movss  0x14(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L1623
  jne    L1623
L3460:
  movss  0x18(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L733
  jne    L733
L4379:
  movss  0x18(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3546
  jne    L3546
L4153:
  movss  0x1c(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L2149
  jne    L2149
L466:
  movss  0x1c(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L319
  jne    L319
L3405:
  mov    $0x20,%esi
  mov    %rbx,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L2698
L624:
  mov    $0x20,%esi
  mov    %rbp,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L3080
L2795:
  cmp    $0x8,%r12
  jbe    L2840
  movaps D1363(%rip),%xmm0
  movaps 0x20(%rsp),%xmm6
  movups %xmm0,(%rbx)
  movups %xmm6,0x0(%rbp)
  movups %xmm0,0x10(%rbx)
  movups %xmm6,0x10(%rbp)
  movups (%rbx),%xmm5
  movups %xmm5,0x0(%rbp)
  movups 0x10(%rbx),%xmm2
  movups %xmm2,0x10(%rbp)
L241:
  movss  (%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L2132
  jne    L2132
L4154:
  movss  0x0(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L137
  jne    L137
L3461:
  movss  0x4(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3971
  jne    L3971
L835:
  movss  0x4(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3695
  jne    L3695
L817:
  movss  0x8(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3263
  jne    L3263
L2616:
  movss  0x8(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L1763
  jne    L1763
L1069:
  movss  0xc(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L558
  jne    L558
L1114:
  movss  0xc(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3839
  jne    L3839
L2252:
  movss  0x10(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L2874
  jne    L2874
L1346:
  movss  0x10(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L937
  jne    L937
L1880:
  movss  0x14(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L2310
  jne    L2310
L3376:
  movss  0x14(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3690
  jne    L3690
L1889:
  movss  0x18(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L259
  jne    L259
L3389:
  movss  0x18(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L289
  jne    L289
L1858:
  movss  0x1c(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3485
  jne    L3485
L4302:
  movss  0x1c(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L916
  jne    L916
L4345:
  mov    $0x20,%esi
  mov    %rbx,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L3004
L3905:
  mov    $0x20,%esi
  mov    %rbp,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1821
L357:
  cmp    $0x8,%r12
  jbe    L40
  movaps D681(%rip),%xmm2
  pxor   %xmm0,%xmm0
  movups %xmm0,0x10(%rbp)
  movups %xmm2,0x10(%rbx)
  movups %xmm2,(%rbx)
  movups %xmm2,0x0(%rbp)
  movups 0x10(%rbx),%xmm6
  movaps %xmm2,0x10(%rsp)
  movups %xmm6,0x10(%rbp)
L4240:
  movss  (%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2339
  jne    L2339
L3810:
  movss  0x0(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2723
  jne    L2723
L3481:
  movss  0x4(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L728
  jne    L728
L3062:
  movss  0x4(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1440
  jne    L1440
L63:
  movss  0x8(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L3149
  jne    L3149
L1447:
  movss  0x8(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L4399
  jne    L4399
L2944:
  movss  0xc(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L3688
  jne    L3688
L4120:
  movss  0xc(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L567
  jne    L567
L1310:
  movss  0x10(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L394
  jne    L394
L2226:
  movss  0x10(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2417
  jne    L2417
L3998:
  movss  0x14(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L443
  jne    L443
L2057:
  movss  0x14(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L4125
  jne    L4125
L822:
  movss  0x18(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2856
  jne    L2856
L4387:
  movss  0x18(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L3369
  jne    L3369
L2162:
  movss  0x1c(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2879
  jne    L2879
L2445:
  movss  0x1c(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2808
  jne    L2808
L1902:
  mov    $0x20,%esi
  mov    %rbx,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1376
L767:
  mov    $0x20,%esi
  mov    %rbp,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L1689
L3742:
  cmp    $0x8,%r12
  jbe    L2618
  movaps 0x10(%rsp),%xmm5
  movaps D232(%rip),%xmm0
  movups %xmm0,0x10(%rbp)
  movups %xmm5,0x10(%rbx)
  movups %xmm5,(%rbx)
  movups %xmm5,0x0(%rbp)
  movups 0x10(%rbx),%xmm7
  movups %xmm7,0x10(%rbp)
L1331:
  movss  (%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L3611
  jne    L3611
L705:
  movss  0x0(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L3108
  jne    L3108
L3348:
  movss  0x4(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L190
  jne    L190
L2004:
  movss  0x4(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L1134
  jne    L1134
L2366:
  movss  0x8(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L2436
  jne    L2436
L2973:
  movss  0x8(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L3015
  jne    L3015
L337:
  movss  0xc(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L2218
  jne    L2218
L3482:
  movss  0xc(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L4148
  jne    L4148
L2183:
  movss  0x10(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L971
  jne    L971
L1557:
  movss  0x10(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L4091
  jne    L4091
L3013:
  movss  0x14(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L1749
  jne    L1749
L2724:
  movss  0x14(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L3647
  jne    L3647
L2280:
  movss  0x18(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L3220
  jne    L3220
L1552:
  movss  0x18(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L102
  jne    L102
L3436:
  movss  0x1c(%rbx),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L2259
  jne    L2259
L197:
  movss  0x1c(%rbp),%xmm0
  ucomiss D560(%rip),%xmm0
  jp     L253
  jne    L253
L1131:
  movaps 0x10(%rsp),%xmm3
  movups %xmm3,(%rbx)
  movups %xmm3,0x10(%rbx)
  cmp    $0x8,%r12
  jbe    L2958
  movups %xmm3,0x0(%rbp)
  movups 0x10(%rbx),%xmm4
  movups %xmm4,0x10(%rbp)
L2006:
  movss  (%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L1594
  jne    L1594
L469:
  movss  0x0(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2557
  jne    L2557
L1966:
  movss  0x4(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L3049
  jne    L3049
L373:
  movss  0x4(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2483
  jne    L2483
L1943:
  movss  0x8(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2885
  jne    L2885
L4355:
  movss  0x8(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L680
  jne    L680
L4320:
  movss  0xc(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2648
  jne    L2648
L3221:
  movss  0xc(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L3081
  jne    L3081
L1002:
  movss  0x10(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L3353
  jne    L3353
L4306:
  movss  0x10(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L821
  jne    L821
L3614:
  movss  0x14(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2157
  jne    L2157
L1426:
  movss  0x14(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2065
  jne    L2065
L3577:
  movss  0x18(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L1883
  jne    L1883
L1524:
  movss  0x18(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L2449
  jne    L2449
L2053:
  movss  0x1c(%rbx),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L882
  jne    L882
L3448:
  movss  0x1c(%rbp),%xmm0
  ucomiss D681(%rip),%xmm0
  jp     L585
  jne    L585
L3362:
  mov    $0x20,%esi
  mov    %rbx,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L2270
L2935:
  mov    $0x20,%esi
  mov    %rbp,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L3856
L3591:
  movaps D845(%rip),%xmm0
  movups %xmm0,(%rbx)
  movups %xmm0,0x10(%rbx)
  cmp    $0x8,%r12
  jbe    L1274
  movups %xmm0,0x0(%rbp)
  movups 0x10(%rbx),%xmm5
  movups %xmm5,0x10(%rbp)
L606:
  movss  (%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L3310
  jne    L3310
L740:
  movss  0x0(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1171
  jne    L1171
L463:
  movss  0x4(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L3578
  jne    L3578
L2940:
  movss  0x4(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1328
  jne    L1328
L3210:
  movss  0x8(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1564
  jne    L1564
L3515:
  movss  0x8(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1400
  jne    L1400
L574:
  movss  0xc(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2966
  jne    L2966
L1109:
  movss  0xc(%rbp),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1266
  jne    L1266
L1263:
  movss  0x10(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L2350
  jne    L2350
L3366:
  movss  0x10(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L4239
  jne    L4239
L2011:
  movss  0x14(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L675
  jne    L675
L4032:
  movss  0x14(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L3685
  jne    L3685
L2755:
  movss  0x18(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L1793
  jne    L1793
L3398:
  movss  0x18(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L1210
  jne    L1210
L449:
  movss  0x1c(%rbx),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L491
  jne    L491
L3462:
  movss  0x1c(%rbp),%xmm0
  ucomiss D1363(%rip),%xmm0
  jp     L183
  jne    L183
L2554:
  mov    $0x20,%esi
  mov    %rbx,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L2044
L2435:
  mov    $0x20,%esi
  mov    %rbp,%rdi
  call   <acc_is_present@plt>
  test   %eax,%eax
  je     L926
L338:
  movaps 0x20(%rsp),%xmm6
  xor    %eax,%eax
  movups %xmm6,(%rbx)
  movups %xmm6,0x10(%rbx)
  call   <abort@plt>
  pxor   %xmm0,%xmm0
  ucomiss 0x4(%rbx),%xmm0
  jp     L41
  jne    L41
L2518:
  ucomiss 0x8(%rbx),%xmm0
  jp     L317
  jne    L317
L2117:
  ucomiss 0xc(%rbx),%xmm0
  jp     L158
  jne    L158
L911:
  movss  0x10(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L510
  jne    L510
L4323:
  movss  0x14(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L3852
  jne    L3852
L3745:
  movss  0x18(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2572
  jne    L2572
L3272:
  movss  0x1c(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1353
  jne    L1353
L33:
  movss  0x8(%rsp),%xmm7
  ucomiss (%rbx),%xmm7
  jp     L3686
  jne    L3686
L3908:
  movss  0x8(%rsp),%xmm1
  ucomiss 0x4(%rbx),%xmm1
  jp     L4406
  jne    L4406
L1409:
  movss  0x8(%rsp),%xmm7
  ucomiss 0x8(%rbx),%xmm7
  jp     L3870
  jne    L3870
L2181:
  movss  0x8(%rsp),%xmm1
  ucomiss 0xc(%rbx),%xmm1
  jp     L62
  jne    L62
L1664:
  movss  0x10(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L312
  jne    L312
L1585:
  movss  0x14(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L2594
  jne    L2594
L1213:
  movss  0x18(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1272
  jne    L1272
L1568:
  movss  0x1c(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L245
  jne    L245
L1730:
  movaps 0x10(%rsp),%xmm4
  movaps 0x20(%rsp),%xmm7
  movups %xmm4,0x8(%rbx)
  movups (%rbx),%xmm0
  movups 0x10(%rbx),%xmm1
  addps  %xmm7,%xmm0
  addps  %xmm7,%xmm1
  ucomiss 0x8(%rsp),%xmm0
  movups %xmm0,(%rbx)
  movups %xmm1,0x10(%rbx)
  jp     L2666
  jne    L2666
L1912:
  movss  0x8(%rsp),%xmm7
  ucomiss 0x4(%rbx),%xmm7
  jp     L4329
  jne    L4329
L3617:
  movss  0x8(%rbx),%xmm0
  ucomiss D939(%rip),%xmm0
  jp     L2431
  jne    L2431
L2908:
  movss  0xc(%rbx),%xmm0
  ucomiss D939(%rip),%xmm0
  jp     L2712
  jne    L2712
L3191:
  movss  0x10(%rbx),%xmm0
  ucomiss D939(%rip),%xmm0
  jp     L2642
  jne    L2642
L46:
  movss  0x14(%rbx),%xmm0
  ucomiss D939(%rip),%xmm0
  jp     L4419
  jne    L4419
L3637:
  movss  0x18(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L1467
  jne    L1467
L4402:
  movss  0x1c(%rbx),%xmm0
  ucomiss D845(%rip),%xmm0
  jp     L339
  jne    L339
L3673:
  add    $0x38,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L682:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4261
L339:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3673
L1467:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4402
L4419:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3637
L2642:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L46
L2712:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3191
L2431:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2908
L4329:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3617
L2666:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1912
L245:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1730
L1272:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1568
L2594:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1213
L312:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1585
L62:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1664
L3870:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2181
L4406:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1409
L3686:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3908
L1353:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L33
L2572:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3272
L3852:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3745
L510:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4323
L158:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L911
L317:
  xor    %eax,%eax
  call   <abort@plt>
  pxor   %xmm0,%xmm0
  jmp    L2117
L41:
  xor    %eax,%eax
  call   <abort@plt>
  pxor   %xmm0,%xmm0
  jmp    L2518
L926:
  call   <abort@plt>
  jmp    L338
L2044:
  call   <abort@plt>
  jmp    L2435
L183:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2554
L491:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3462
L1210:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L449
L1793:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3398
L3685:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2755
L675:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4032
L4239:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2011
L2350:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3366
L1266:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1263
L2966:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1109
L1400:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L574
L1564:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3515
L1328:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3210
L3578:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2940
L1171:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L463
L3310:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L740
L3856:
  call   <abort@plt>
  jmp    L3591
L2270:
  call   <abort@plt>
  jmp    L2935
L585:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3362
L882:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3448
L2449:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2053
L1883:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1524
L2065:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3577
L2157:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1426
L821:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3614
L3353:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4306
L3081:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1002
L2648:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3221
L680:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4320
L2885:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4355
L2483:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1943
L3049:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L373
L2557:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1966
L1594:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L469
L253:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1131
L2259:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L197
L102:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3436
L3220:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1552
L3647:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2280
L1749:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2724
L4091:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3013
L971:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1557
L4148:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2183
L2218:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3482
L3015:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L337
L2436:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2973
L1134:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2366
L190:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2004
L3108:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3348
L3611:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L705
L1689:
  call   <abort@plt>
  jmp    L3742
L1376:
  call   <abort@plt>
  jmp    L767
L2808:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1902
L2879:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2445
L3369:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2162
L2856:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4387
L4125:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L822
L443:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2057
L2417:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3998
L394:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2226
L567:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1310
L3688:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4120
L4399:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2944
L3149:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1447
L1440:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L63
L728:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3062
L2723:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3481
L2339:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3810
L1821:
  call   <abort@plt>
  jmp    L357
L3004:
  call   <abort@plt>
  jmp    L3905
L916:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4345
L3485:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4302
L289:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1858
L259:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3389
L3690:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1889
L2310:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3376
L937:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1880
L2874:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1346
L3839:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2252
L558:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1114
L1763:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1069
L3263:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2616
L3695:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L817
L3971:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L835
L137:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3461
L2132:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4154
L3080:
  call   <abort@plt>
  jmp    L2795
L2698:
  call   <abort@plt>
  jmp    L624
L319:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3405
L2149:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L466
L3546:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4153
L733:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4379
L1623:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3460
L561:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4331
L3315:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L774
L92:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L745
L2727:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1079
L1695:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1418
L3196:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2620
L401:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3465
L296:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4273
L178:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3956
L4222:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1405
L1286:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2273
L546:
  call   <abort@plt>
  jmp    L3790
L842:
  call   <abort@plt>
  jmp    L3234
L68:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1836
L2602:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3710
L427:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L391
L3774:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1803
L3138:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2472
L3760:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2418
L1288:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L96
L660:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1525
L153:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2496
L2913:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1242
L863:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L1603
L758:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L4200
L3960:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L3934
L2007:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2167
L687:
  xor    %eax,%eax
  call   <abort@plt>
  jmp    L2855
L1605:
  movss  D1363(%rip),%xmm0
  movss  D388(%rip),%xmm1
  movss  %xmm0,(%rbx)
  movss  %xmm1,0x0(%rbp)
  movss  %xmm0,0x4(%rbx)
  movss  %xmm1,0x4(%rbp)
  movss  %xmm0,0x8(%rbx)
  movss  %xmm1,0x8(%rbp)
  movss  %xmm0,0xc(%rbx)
  movss  %xmm1,0xc(%rbp)
  movss  %xmm0,0x10(%rbx)
  movss  %xmm1,0x10(%rbp)
  movss  %xmm0,0x14(%rbx)
  movss  %xmm1,0x14(%rbp)
  movss  %xmm0,0x18(%rbx)
  movss  %xmm1,0x18(%rbp)
  movss  %xmm0,0x1c(%rbx)
  movss  %xmm1,0x1c(%rbp)
  movss  (%rbx),%xmm0
  movss  %xmm1,0x8(%rsp)
  movss  %xmm0,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movaps D388(%rip),%xmm7
  movss  %xmm0,0x1c(%rbp)
  movaps %xmm7,0x20(%rsp)
  jmp    L2920
L2618:
  movss  D232(%rip),%xmm0
  movaps 0x10(%rsp),%xmm6
  movabs $0x4000000040000000,%rax
  mov    %rax,0xc(%rbp)
  movss  %xmm0,0x4(%rbp)
  movss  %xmm0,0x8(%rbp)
  movss  %xmm0,0x14(%rbp)
  movss  %xmm0,0x18(%rbp)
  movss  %xmm0,0x1c(%rbp)
  movups %xmm6,0x10(%rbx)
  movups %xmm6,(%rbx)
  movl   $0x41100000,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movss  %xmm0,0x1c(%rbp)
  jmp    L1331
L2958:
  movl   $0x41100000,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movss  %xmm0,0x1c(%rbp)
  jmp    L2006
L1274:
  movl   $0x40c00000,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movss  %xmm0,0x1c(%rbp)
  jmp    L606
L508:
  movss  D1377(%rip),%xmm0
  mov    $0x20,%edx
  mov    %rbx,%rdi
  movss  %xmm0,(%rbx)
  movl   $0x0,0x0(%rbp)
  movss  %xmm0,0x4(%rbx)
  movl   $0x0,0x4(%rbp)
  movss  %xmm0,0x8(%rbx)
  movl   $0x0,0x8(%rbp)
  movss  %xmm0,0xc(%rbx)
  movl   $0x0,0xc(%rbp)
  movss  %xmm0,0x10(%rbx)
  movl   $0x0,0x10(%rbp)
  movss  %xmm0,0x14(%rbx)
  movl   $0x0,0x14(%rbp)
  movss  %xmm0,0x18(%rbx)
  movl   $0x0,0x18(%rbp)
  movss  %xmm0,0x1c(%rbx)
  movl   $0x0,0x1c(%rbp)
  call   <acc_map_data@plt>
  mov    $0x20,%edx
  mov    %r14,%rsi
  mov    %rbp,%rdi
  call   <acc_map_data@plt>
  mov    $0x20,%edx
  mov    %r15,%rsi
  mov    %r13,%rdi
  call   <acc_map_data@plt>
  movss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movss  %xmm0,0x1c(%rbp)
  jmp    L2451
L2840:
  movss  D1363(%rip),%xmm0
  movss  0x8(%rsp),%xmm3
  movss  %xmm0,(%rbx)
  movss  %xmm3,0x0(%rbp)
  movss  %xmm0,0x4(%rbx)
  movss  %xmm3,0x4(%rbp)
  movss  %xmm0,0x8(%rbx)
  movss  %xmm3,0x8(%rbp)
  movss  %xmm0,0xc(%rbx)
  movss  %xmm3,0xc(%rbp)
  movss  %xmm0,0x10(%rbx)
  movss  %xmm3,0x10(%rbp)
  movss  %xmm0,0x14(%rbx)
  movss  %xmm3,0x14(%rbp)
  movss  %xmm0,0x18(%rbx)
  movss  %xmm3,0x18(%rbp)
  movss  %xmm0,0x1c(%rbx)
  movss  %xmm3,0x1c(%rbp)
  movss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movss  %xmm0,0x1c(%rbp)
  jmp    L241
L40:
  movaps D681(%rip),%xmm2
  movq   $0x0,0xc(%rbp)
  movl   $0x0,0x4(%rbp)
  movl   $0x0,0x8(%rbp)
  movl   $0x0,0x14(%rbp)
  movl   $0x0,0x18(%rbp)
  movl   $0x0,0x1c(%rbp)
  movups %xmm2,0x10(%rbx)
  movups %xmm2,(%rbx)
  movl   $0x41100000,0x0(%rbp)
  movss  0x4(%rbx),%xmm0
  movaps %xmm2,0x10(%rsp)
  movss  %xmm0,0x4(%rbp)
  movss  0x8(%rbx),%xmm0
  movss  %xmm0,0x8(%rbp)
  movss  0xc(%rbx),%xmm0
  movss  %xmm0,0xc(%rbp)
  movss  0x10(%rbx),%xmm0
  movss  %xmm0,0x10(%rbp)
  movss  0x14(%rbx),%xmm0
  movss  %xmm0,0x14(%rbp)
  movss  0x18(%rbx),%xmm0
  movss  %xmm0,0x18(%rbp)
  movss  0x1c(%rbx),%xmm0
  movss  %xmm0,0x1c(%rbp)
  jmp    L4240
```

tool_calls: name: read_data
arguments: data_tag: D1377
type: f32[4]
name: read_data
arguments: data_tag: D388
type: f32[4]
name: read_data
arguments: data_tag: D1363
type: f32[4]
name: read_data
arguments: data_tag: D681
type: f32[4]
name: read_data
arguments: data_tag: D845
type: f32[4]
name: read_data
arguments: data_tag: D232
type: f32[4]
name: read_data
arguments: data_tag: D560
type: f32
name: read_data
arguments: data_tag: D939
type: f32

tool: {"D1377": [3.0,3.0,3.0,3.0]}

tool: {"D388": [1.0,1.0,1.0,1.0]}

tool: {"D1363": [5.0,5.0,5.0,5.0]}

tool: {"D681": [9.0,9.0,9.0,9.0]}

tool: {"D845": [6.0,6.0,6.0,6.0]}

tool: {"D232": [2.0,2.0,2.0,2.0]}

tool: D560: 7

tool: D939: 10

assistant: ```c
int main(int argc, char **argv) {
  int N = 8;
  int NDIV2 = N / 2;
  float *a, *b, *c;
  float *d_a, *d_b, *d_c;
  int i;
  a = (float *)malloc(N * sizeof(float));
  b = (float *)malloc(N * sizeof(float));
  c = (float *)malloc(N * sizeof(float));
  d_a = (float *)acc_malloc(N * sizeof(float));
  d_b = (float *)acc_malloc(N * sizeof(float));
  d_c = (float *)acc_malloc(N * sizeof(float));
  for (i = 0; i < N; i++) {
    a[i] = 3.0;
    b[i] = 0.0;
  }
  acc_map_data(a, d_a, N * sizeof(float));
  acc_map_data(b, d_b, N * sizeof(float));
  acc_map_data(c, d_c, N * sizeof(float));
#pragma acc update device(a [0:N], b [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  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();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 1.0;
  }
#pragma acc update device(a [0:N], b [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  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();
  for (i = 0; i < N; i++) {
    a[i] = 5.0;
    b[i] = 1.0;
  }
#pragma acc update device(a [0:N], b [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update host(a [0:N], b [0:N])
  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();
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
    b[i] = 0.0;
  }
#pragma acc update device(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 6.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] = 7.0;
    b[i] = 2.0;
  }
#pragma acc update device(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 7.0)
      abort();
    if (b[i] != 7.0)
      abort();
  }
  for (i = 0; i < N; i++) {
    a[i] = 9.0;
  }
#pragma acc update device(a [0:N])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < N; i++) {
    if (a[i] != 9.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] = 5.0;
  }
#pragma acc update device(a [0:N])
  for (i = 0; i < N; i++) {
    a[i] = 6.0;
  }
#pragma acc update device(a [0:NDIV2])
#pragma acc parallel present(a [0:N], b [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      b[ii] = a[ii];
  }
#pragma acc update self(a [0:N], b [0:N])
  for (i = 0; i < NDIV2; i++) {
    if (a[i] != 6.0)
      abort();
    if (b[i] != 6.0)
      abort();
  }
  for (i = NDIV2; 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();
  for (i = 0; i < N; i++) {
    a[i] = 0.0;
  }
#pragma acc update device(a [0:4])
#pragma acc parallel present(a [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      a[ii] = a[ii] + 1.0;
  }
#pragma acc update self(a [4:4])
  for (i = 0; i < NDIV2; i++) {
    if (a[i] != 0.0)
      abort();
  }
  for (i = NDIV2; i < N; i++) {
    if (a[i] != 6.0)
      abort();
  }
#pragma acc update self(a [0:4])
  for (i = 0; i < NDIV2; i++) {
    if (a[i] != 1.0)
      abort();
  }
  for (i = NDIV2; i < N; i++) {
    if (a[i] != 6.0)
      abort();
  }
  a[2] = 9;
  a[3] = 9;
  a[4] = 9;
  a[5] = 9;
#pragma acc update device(a [2:4])
#pragma acc parallel present(a [0:N])
  {
    int ii;
    for (ii = 0; ii < N; ii++)
      a[ii] = a[ii] + 1.0;
  }
#pragma acc update self(a [2:4])
  for (i = 0; i < 2; i++) {
    if (a[i] != 1.0)
      abort();
  }
  for (i = 2; i < 6; i++) {
    if (a[i] != 10.0)
      abort();
  }
  for (i = 6; i < N; i++) {
    if (a[i] != 6.0)
      abort();
  }
  return 0;
}
```