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

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  mov    $0xffffffe2,%edi
  call   <test1@plt>
  test   %eax,%eax
  jne    L747
L886:
  mov    $0xffffffe3,%edi
  call   <test1@plt>
  cmp    $0x1,%eax
  jne    L799
L974:
  mov    $0xffffffec,%edi
  call   <test1@plt>
  cmp    $0x1,%eax
  jne    L539
L150:
  mov    $0xffffffed,%edi
  call   <test1@plt>
  test   %eax,%eax
  jne    L763
L897:
  mov    $0x0,%edi
  call   <test2@plt>
  cmp    $0x1,%eax
  jne    L689
L154:
  mov    $0x9,%edi
  call   <test2@plt>
  cmp    $0x1,%eax
  jne    L769
L429:
  mov    $0xa,%edi
  call   <test2@plt>
  test   %eax,%eax
  jne    L901
L340:
  mov    $0xffffffff,%edi
  call   <test2@plt>
  cmp    $0x1,%eax
  jne    L838
L936:
  mov    $0xfffffff7,%edi
  call   <test2@plt>
  cmp    $0x1,%eax
  jne    L456
L188:
  mov    $0xfffffff6,%edi
  call   <test2@plt>
  test   %eax,%eax
  jne    L1063
L168:
  mov    $0xffffffe2,%edi
  call   <test3@plt>
  cmp    $0x1,%eax
  jne    L814
L312:
  mov    $0xffffffe3,%edi
  call   <test3@plt>
  test   %eax,%eax
  jne    L79
L348:
  mov    $0xffffffec,%edi
  call   <test3@plt>
  test   %eax,%eax
  jne    L59
L563:
  mov    $0xffffffed,%edi
  call   <test3@plt>
  cmp    $0x1,%eax
  jne    L584
L193:
  mov    $0x0,%edi
  call   <test4@plt>
  test   %eax,%eax
  jne    L378
L323:
  mov    $0x9,%edi
  call   <test4@plt>
  test   %eax,%eax
  jne    L175
L1160:
  mov    $0xa,%edi
  call   <test4@plt>
  cmp    $0x1,%eax
  jne    L426
L33:
  mov    $0xffffffff,%edi
  call   <test4@plt>
  test   %eax,%eax
  jne    L831
L733:
  mov    $0xfffffff7,%edi
  call   <test4@plt>
  test   %eax,%eax
  jne    L105
L781:
  mov    $0xfffffff6,%edi
  call   <test4@plt>
  cmp    $0x1,%eax
  jne    L681
L414:
  mov    $0xffffffe2,%edi
  call   <test5@plt>
  test   %eax,%eax
  jne    L753
L63:
  mov    $0xffffffe3,%edi
  call   <test5@plt>
  test   %eax,%eax
  jne    L110
L503:
  mov    $0xffffffec,%edi
  call   <test5@plt>
  test   %eax,%eax
  jne    L1026
L54:
  mov    $0xffffffed,%edi
  call   <test5@plt>
  cmp    $0x1,%eax
  jne    L236
L708:
  mov    $0x0,%edi
  call   <test6@plt>
  test   %eax,%eax
  jne    L293
L911:
  mov    $0x9,%edi
  call   <test6@plt>
  test   %eax,%eax
  jne    L786
L842:
  mov    $0xa,%edi
  call   <test6@plt>
  cmp    $0x1,%eax
  jne    L926
L599:
  mov    $0xffffffff,%edi
  call   <test6@plt>
  test   %eax,%eax
  jne    L67
L757:
  mov    $0xfffffff7,%edi
  call   <test6@plt>
  test   %eax,%eax
  jne    L1098
L853:
  mov    $0xfffffff6,%edi
  call   <test6@plt>
  test   %eax,%eax
  jne    L1073
L468:
  mov    $0xffffffe2,%edi
  call   <test7@plt>
  test   %eax,%eax
  jne    L1028
L357:
  mov    $0xffffffe3,%edi
  call   <test7@plt>
  cmp    $0x1,%eax
  jne    L1138
L1171:
  mov    $0xffffffec,%edi
  call   <test7@plt>
  cmp    $0x1,%eax
  jne    L402
L521:
  mov    $0xffffffed,%edi
  call   <test7@plt>
  cmp    $0x1,%eax
  jne    L277
L846:
  mov    $0x0,%edi
  call   <test8@plt>
  cmp    $0x1,%eax
  jne    L528
L368:
  mov    $0x9,%edi
  call   <test8@plt>
  cmp    $0x1,%eax
  jne    L1048
L22:
  mov    $0xa,%edi
  call   <test8@plt>
  cmp    $0x1,%eax
  jne    L81
L274:
  mov    $0xffffffff,%edi
  call   <test8@plt>
  cmp    $0x1,%eax
  jne    L42
L670:
  mov    $0xfffffff7,%edi
  call   <test8@plt>
  cmp    $0x1,%eax
  jne    L222
L225:
  mov    $0xfffffff6,%edi
  call   <test8@plt>
  test   %eax,%eax
  jne    L1096
L797:
  mov    $0xffffffe2,%edi
  call   <test9@plt>
  cmp    $0x1,%eax
  jne    L1029
L837:
  mov    $0xffffffe3,%edi
  call   <test9@plt>
  test   %eax,%eax
  jne    L810
L410:
  mov    $0xffffffec,%edi
  call   <test9@plt>
  test   %eax,%eax
  jne    L238
L735:
  mov    $0xffffffed,%edi
  call   <test9@plt>
  test   %eax,%eax
  jne    L342
L355:
  mov    $0x0,%edi
  call   <test10@plt>
  test   %eax,%eax
  jne    L716
L339:
  mov    $0x9,%edi
  call   <test10@plt>
  test   %eax,%eax
  jne    L513
L1058:
  mov    $0xa,%edi
  call   <test10@plt>
  test   %eax,%eax
  jne    L948
L1115:
  mov    $0xffffffff,%edi
  call   <test10@plt>
  test   %eax,%eax
  jne    L955
L433:
  mov    $0xfffffff7,%edi
  call   <test10@plt>
  test   %eax,%eax
  jne    L577
L550:
  mov    $0xfffffff6,%edi
  call   <test10@plt>
  cmp    $0x1,%eax
  jne    L609
L1196:
  mov    $0xffffffe2,%edi
  call   <test11@plt>
  cmp    $0x1,%eax
  jne    L202
L11:
  mov    $0xffffffe3,%edi
  call   <test11@plt>
  cmp    $0x1,%eax
  jne    L310
L1190:
  mov    $0xffffffec,%edi
  call   <test11@plt>
  cmp    $0x1,%eax
  jne    L68
L120:
  mov    $0xffffffed,%edi
  call   <test11@plt>
  test   %eax,%eax
  jne    L1018
L1021:
  mov    $0x0,%edi
  call   <test12@plt>
  cmp    $0x1,%eax
  jne    L1052
L245:
  mov    $0x9,%edi
  call   <test12@plt>
  cmp    $0x1,%eax
  jne    L977
L194:
  mov    $0xa,%edi
  call   <test12@plt>
  test   %eax,%eax
  jne    L564
L690:
  mov    $0xffffffff,%edi
  call   <test12@plt>
  cmp    $0x1,%eax
  jne    L253
L262:
  mov    $0xfffffff7,%edi
  call   <test12@plt>
  cmp    $0x1,%eax
  jne    L728
L1057:
  mov    $0xfffffff6,%edi
  call   <test12@plt>
  cmp    $0x1,%eax
  jne    L989
L422:
  mov    $0x0,%eax
  add    $0x8,%rsp
  ret
L747:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L886
L799:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L974
L539:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L150
L763:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L897
L689:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L154
L769:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L429
L901:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L340
L838:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L936
L456:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L188
L1063:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L168
L814:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L312
L79:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L348
L59:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L563
L584:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L193
L378:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L323
L175:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1160
L426:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L33
L831:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L733
L105:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L781
L681:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L414
L753:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L63
L110:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L503
L1026:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L54
L236:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L708
L293:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L911
L786:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L842
L926:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L599
L67:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L757
L1098:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L853
L1073:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L468
L1028:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L357
L1138:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1171
L402:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L521
L277:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L846
L528:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L368
L1048:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L22
L81:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L274
L42:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L670
L222:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L225
L1096:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L797
L1029:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L837
L810:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L410
L238:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L735
L342:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L355
L716:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L339
L513:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1058
L948:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1115
L955:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L433
L577:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L550
L609:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1196
L202:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L11
L310:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1190
L68:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L120
L1018:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1021
L1052:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L245
L977:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L194
L564:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L690
L253:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L262
L728:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L1057
L989:
  mov    $0x0,%eax
  call   <abort@plt>
  jmp    L422
```

assistant: ```c
int main() {
  if (test1(-30) != 0)
    abort();
  if (test1(-29) != 1)
    abort();
  if (test1(-20) != 1)
    abort();
  if (test1(-19) != 0)
    abort();
  if (test2(0) != 1)
    abort();
  if (test2(9) != 1)
    abort();
  if (test2(10) != 0)
    abort();
  if (test2(-1) != 1)
    abort();
  if (test2(-9) != 1)
    abort();
  if (test2(-10) != 0)
    abort();
  if (test3(-30) != 1)
    abort();
  if (test3(-29) != 0)
    abort();
  if (test3(-20) != 0)
    abort();
  if (test3(-19) != 1)
    abort();
  if (test4(0) != 0)
    abort();
  if (test4(9) != 0)
    abort();
  if (test4(10) != 1)
    abort();
  if (test4(-1) != 0)
    abort();
  if (test4(-9) != 0)
    abort();
  if (test4(-10) != 1)
    abort();
  if (test5(-30) != 0)
    abort();
  if (test5(-29) != 0)
    abort();
  if (test5(-20) != 0)
    abort();
  if (test5(-19) != 1)
    abort();
  if (test6(0) != 0)
    abort();
  if (test6(9) != 0)
    abort();
  if (test6(10) != 1)
    abort();
  if (test6(-1) != 0)
    abort();
  if (test6(-9) != 0)
    abort();
  if (test6(-10) != 0)
    abort();
  if (test7(-30) != 0)
    abort();
  if (test7(-29) != 1)
    abort();
  if (test7(-20) != 1)
    abort();
  if (test7(-19) != 1)
    abort();
  if (test8(0) != 1)
    abort();
  if (test8(9) != 1)
    abort();
  if (test8(10) != 1)
    abort();
  if (test8(-1) != 1)
    abort();
  if (test8(-9) != 1)
    abort();
  if (test8(-10) != 0)
    abort();
  if (test9(-30) != 1)
    abort();
  if (test9(-29) != 0)
    abort();
  if (test9(-20) != 0)
    abort();
  if (test9(-19) != 0)
    abort();
  if (test10(0) != 0)
    abort();
  if (test10(9) != 0)
    abort();
  if (test10(10) != 0)
    abort();
  if (test10(-1) != 0)
    abort();
  if (test10(-9) != 0)
    abort();
  if (test10(-10) != 1)
    abort();
  if (test11(-30) != 1)
    abort();
  if (test11(-29) != 1)
    abort();
  if (test11(-20) != 1)
    abort();
  if (test11(-19) != 0)
    abort();
  if (test12(0) != 1)
    abort();
  if (test12(9) != 1)
    abort();
  if (test12(10) != 0)
    abort();
  if (test12(-1) != 1)
    abort();
  if (test12(-9) != 1)
    abort();
  if (test12(-10) != 1)
    abort();
  return 0;
}
```