user: 下面的汇编指令对应的C源代码是什么:

```asm
<main>:
  endbr64
  push   %rbx
  movsd  D5(%rip),%xmm1
  movsd  D223(%rip),%xmm0
  call   <__builtin_mips_cabs_eq_d@plt>
  test   %eax,%eax
  jne    L866
L776:
  movsd  D161(%rip),%xmm1
  movsd  D223(%rip),%xmm0
  call   <__builtin_mips_cabs_eq_d@plt>
  cmp    $0x1,%eax
  jne    L108
L294:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test0@plt>
  test   %eax,%eax
  jne    L626
L497:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test1@plt>
  test   %eax,%eax
  jne    L754
L957:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test2@plt>
  cmp    $0x1,%eax
  jne    L8
L743:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test3@plt>
  cmp    $0x1,%eax
  jne    L820
L86:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test4@plt>
  test   %eax,%eax
  jne    L527
L524:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test5@plt>
  test   %eax,%eax
  jne    L692
L4:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test6@plt>
  cmp    $0x1,%eax
  jne    L741
L284:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test7@plt>
  cmp    $0x1,%eax
  jne    L51
L704:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test8@plt>
  test   %eax,%eax
  jne    L68
L119:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test9@plt>
  test   %eax,%eax
  jne    L386
L216:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test10@plt>
  cmp    $0x1,%eax
  jne    L522
L253:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test11@plt>
  cmp    $0x1,%eax
  jne    L548
L445:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test12@plt>
  test   %eax,%eax
  jne    L781
L718:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test13@plt>
  test   %eax,%eax
  jne    L236
L15:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test14@plt>
  cmp    $0x1,%eax
  jne    L833
L190:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test15@plt>
  cmp    $0x1,%eax
  jne    L56
L121:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test0@plt>
  test   %eax,%eax
  jne    L582
L391:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test1@plt>
  test   %eax,%eax
  jne    L219
L319:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test2@plt>
  cmp    $0x1,%eax
  jne    L279
L218:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test3@plt>
  cmp    $0x1,%eax
  jne    L591
L972:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test4@plt>
  test   %eax,%eax
  jne    L203
L118:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test5@plt>
  test   %eax,%eax
  jne    L459
L385:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test6@plt>
  cmp    $0x1,%eax
  jne    L986
L440:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test7@plt>
  cmp    $0x1,%eax
  jne    L657
L411:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test8@plt>
  test   %eax,%eax
  jne    L885
L668:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test9@plt>
  test   %eax,%eax
  jne    L132
L790:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test10@plt>
  cmp    $0x1,%eax
  jne    L797
L420:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test11@plt>
  cmp    $0x1,%eax
  jne    L308
L264:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test12@plt>
  test   %eax,%eax
  jne    L76
L783:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test13@plt>
  test   %eax,%eax
  jne    L585
L483:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test14@plt>
  cmp    $0x1,%eax
  jne    L619
L243:
  movsd  D168(%rip),%xmm0
  movapd %xmm0,%xmm1
  call   <test15@plt>
  cmp    $0x1,%eax
  jne    L458
L981:
  movsd  D176(%rip),%xmm0
  divsd  D282(%rip),%xmm0
  subsd  %xmm0,%xmm0
  movapd %xmm0,%xmm1
  movq   %xmm0,%rbx
  call   <test0@plt>
  test   %eax,%eax
  jne    L299
L7:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test1@plt>
  cmp    $0x1,%eax
  jne    L701
L860:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test2@plt>
  test   %eax,%eax
  jne    L655
L669:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test3@plt>
  cmp    $0x1,%eax
  jne    L113
L909:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test4@plt>
  test   %eax,%eax
  jne    L593
L693:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test5@plt>
  cmp    $0x1,%eax
  jne    L371
L992:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test6@plt>
  test   %eax,%eax
  jne    L335
L544:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test7@plt>
  cmp    $0x1,%eax
  jne    L211
L345:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test8@plt>
  test   %eax,%eax
  jne    L517
L114:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test9@plt>
  cmp    $0x1,%eax
  jne    L266
L98:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test10@plt>
  test   %eax,%eax
  jne    L581
L702:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test11@plt>
  cmp    $0x1,%eax
  jne    L999
L489:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test12@plt>
  test   %eax,%eax
  jne    L379
L982:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test13@plt>
  cmp    $0x1,%eax
  jne    L133
L157:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test14@plt>
  test   %eax,%eax
  jne    L851
L247:
  movq   %rbx,%xmm1
  movq   %rbx,%xmm0
  call   <test15@plt>
  cmp    $0x1,%eax
  jne    L312
L835:
  lea    D54(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%edi
  call   <exit@plt>
  mov    $0x0,%eax
  pop    %rbx
  ret
L866:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L776
L108:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L294
L626:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L497
L754:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L957
L8:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L743
L820:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L86
L527:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L524
L692:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L4
L741:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L284
L51:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L704
L68:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L119
L386:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L216
L522:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L253
L548:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L445
L781:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L718
L236:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L15
L833:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L190
L56:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L121
L582:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L391
L219:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L319
L279:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L218
L591:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L972
L203:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L118
L459:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L385
L986:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L440
L657:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L411
L885:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L668
L132:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L790
L797:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L420
L308:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L264
L76:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L783
L585:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L483
L619:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L243
L458:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L981
L299:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L7
L701:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L860
L655:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L669
L113:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L909
L593:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L693
L371:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L992
L335:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L544
L211:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L345
L517:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L114
L266:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L98
L581:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L702
L999:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L489
L379:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L982
L133:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L157
L851:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L247
L312:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L835
```

tool_calls: name: extract_symbolic_data
arguments: label: D5
data_type: f32[2]
name: extract_symbolic_data
arguments: label: D223
data_type: f32[2]
name: extract_symbolic_data
arguments: label: D161
data_type: f32[2]
name: extract_symbolic_data
arguments: label: D168
data_type: f64
name: extract_symbolic_data
arguments: label: D176
data_type: f64
name: extract_symbolic_data
arguments: label: D282
data_type: f32[2]
name: extract_symbolic_data
arguments: label: D54
data_type: string

tool: {"D5": [0.0,-3.1875]}

tool: {"D223": [0.0,2.625]}

tool: {"D161": [0.0,-2.625]}

tool: D168: 1984

tool: D176: 1

tool: {"D282": [0.0,0.0]}

tool: D54: Test Passes


assistant: ```c
int main() {
  double a, b;
  int i;
  a = 12;
  b = -56;
  i = 0;
  if (__builtin_mips_cabs_eq_d(a, b) != i)
    abort();
  a = 12;
  b = -12;
  i = 1;
  if (__builtin_mips_cabs_eq_d(a, b) != i)
    abort();
  a = 1984.0;
  b = 1984.0;
  i = test0(a, b);
  if (i != 0)
    abort();
  i = test1(a, b);
  if (i != 0)
    abort();
  i = test2(a, b);
  if (i != 1)
    abort();
  i = test3(a, b);
  if (i != 1)
    abort();
  i = test4(a, b);
  if (i != 0)
    abort();
  i = test5(a, b);
  if (i != 0)
    abort();
  i = test6(a, b);
  if (i != 1)
    abort();
  i = test7(a, b);
  if (i != 1)
    abort();
  i = test8(a, b);
  if (i != 0)
    abort();
  i = test9(a, b);
  if (i != 0)
    abort();
  i = test10(a, b);
  if (i != 1)
    abort();
  i = test11(a, b);
  if (i != 1)
    abort();
  i = test12(a, b);
  if (i != 0)
    abort();
  i = test13(a, b);
  if (i != 0)
    abort();
  i = test14(a, b);
  if (i != 1)
    abort();
  i = test15(a, b);
  if (i != 1)
    abort();
  i = test0(b, a);
  if (i != 0)
    abort();
  i = test1(b, a);
  if (i != 0)
    abort();
  i = test2(b, a);
  if (i != 1)
    abort();
  i = test3(b, a);
  if (i != 1)
    abort();
  i = test4(b, a);
  if (i != 0)
    abort();
  i = test5(b, a);
  if (i != 0)
    abort();
  i = test6(b, a);
  if (i != 1)
    abort();
  i = test7(b, a);
  if (i != 1)
    abort();
  i = test8(b, a);
  if (i != 0)
    abort();
  i = test9(b, a);
  if (i != 0)
    abort();
  i = test10(b, a);
  if (i != 1)
    abort();
  i = test11(b, a);
  if (i != 1)
    abort();
  i = test12(b, a);
  if (i != 0)
    abort();
  i = test13(b, a);
  if (i != 0)
    abort();
  i = test14(b, a);
  if (i != 1)
    abort();
  i = test15(b, a);
  if (i != 1)
    abort();
  a = 1.0 / 0.0 - 1.0 / 0.0;
  b = 1.0 / 0.0 - 1.0 / 0.0;
  i = test0(a, b);
  if (i != 0)
    abort();
  i = test1(a, b);
  if (i != 1)
    abort();
  i = test2(a, b);
  if (i != 0)
    abort();
  i = test3(a, b);
  if (i != 1)
    abort();
  i = test4(a, b);
  if (i != 0)
    abort();
  i = test5(a, b);
  if (i != 1)
    abort();
  i = test6(a, b);
  if (i != 0)
    abort();
  i = test7(a, b);
  if (i != 1)
    abort();
  i = test8(a, b);
  if (i != 0)
    abort();
  i = test9(a, b);
  if (i != 1)
    abort();
  i = test10(a, b);
  if (i != 0)
    abort();
  i = test11(a, b);
  if (i != 1)
    abort();
  i = test12(a, b);
  if (i != 0)
    abort();
  i = test13(a, b);
  if (i != 1)
    abort();
  i = test14(a, b);
  if (i != 0)
    abort();
  i = test15(a, b);
  if (i != 1)
    abort();
  printf("Test Passes\n");
  exit(0);
}
```