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

```asm
<test_mod>:
  endbr64
  sub    $0x18,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  movzbl D617(%rip),%eax
  mov    %al,0x5(%rsp)
L352:
  movzbl 0x5(%rsp),%edx
  mov    %edx,%eax
  lock cmpxchg %dl,0x2f54(%rip)        # 40bf <a.35>
  sete   %cl
  je     L404
  mov    %al,0x5(%rsp)
L404:
  test   %cl,%cl
  je     L352
  test   %dl,%dl
  je     L782
  movzbl D617(%rip),%eax
  test   %al,%al
  je     L12
  movzbl D1067(%rip),%eax
L110:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2f0e(%rip)        # 40be <a.34>
  jne    L110
  cmp    $0x1,%dl
  jne    L1115
  movzbl D1067(%rip),%eax
  cmp    $0x1,%al
  jne    L1113
  movzbl D715(%rip),%eax
L197:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2ed2(%rip)        # 40bd <a.33>
  jne    L197
  cmp    $0x1,%dl
  jne    L479
  movzbl D715(%rip),%eax
  cmp    $0x1,%al
  jne    L1091
  movzbl D997(%rip),%eax
L1095:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dl,0x2ea3(%rip)        # 40bc <a.32>
  jne    L1095
  test   %dl,%dl
  je     L477
  movzbl D997(%rip),%eax
  cmp    $0x1,%al
  jne    L657
  movzwl D627(%rip),%eax
L358:
  movswl %ax,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzwl %dx,%ecx
  lock cmpxchg %cx,0x2e66(%rip)        # 40ba <a.31>
  jne    L358
  cmp    $0x1,%dx
  jne    L1085
  movzwl D627(%rip),%eax
  cmp    $0x1,%ax
  jne    L665
  movzwl D319(%rip),%eax
L263:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dx,0x2e32(%rip)        # 40b8 <a.30>
  jne    L263
  test   %dx,%dx
  je     L831
  movzwl D319(%rip),%eax
  cmp    $0x1,%ax
  jne    L954
  mov    D380(%rip),%eax
L850:
  mov    %eax,%ecx
  shr    $0x1f,%ecx
  lea    (%rax,%rcx,1),%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2df7(%rip)        # 40b4 <a.29>
  jne    L850
  cmp    $0x1,%edx
  jne    L988
  mov    D380(%rip),%eax
  cmp    $0x1,%eax
  jne    L959
  mov    D924(%rip),%eax
L664:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %edx,0x2dc6(%rip)        # 40b0 <a.28>
  jne    L664
  test   %edx,%edx
  je     L596
  mov    D924(%rip),%eax
  cmp    $0x1,%eax
  jne    L580
  mov    D313(%rip),%rax
L993:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2d84(%rip)        # 40a8 <a.27>
  jne    L993
  cmp    $0x1,%rdx
  jne    L53
  mov    D313(%rip),%rax
  cmp    $0x1,%rax
  jne    L364
  mov    D112(%rip),%rax
L947:
  mov    %rax,%rdx
  and    $0x1,%edx
  lock cmpxchg %rdx,0x2d49(%rip)        # 40a0 <a.26>
  jne    L947
  test   %rdx,%rdx
  je     L1078
  mov    D112(%rip),%rax
  cmp    $0x1,%rax
  jne    L137
  mov    D845(%rip),%rax
L1011:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2d04(%rip)        # 4098 <a.25>
  jne    L1011
  cmp    $0x1,%rdx
  jne    L802
  mov    D845(%rip),%rax
  cmp    $0x1,%rax
  jne    L491
  mov    D848(%rip),%rax
L317:
  mov    %rax,%rdx
  and    $0x1,%edx
  lock cmpxchg %rdx,0x2cc9(%rip)        # 4090 <a.24>
  jne    L317
  test   %rdx,%rdx
  je     L174
  mov    D848(%rip),%rax
  cmp    $0x1,%rax
  jne    L870
  movzbl D734(%rip),%eax
  mov    %al,0x6(%rsp)
L354:
  movzbl 0x6(%rsp),%eax
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  lea    (%rdx,%rdx,4),%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  setne  %cl
  movzbl 0x6(%rsp),%eax
  lock cmpxchg %cl,0x2c77(%rip)        # 408f <a.23>
  sete   %cl
  je     L170
  mov    %al,0x6(%rsp)
L170:
  test   %cl,%cl
  je     L354
  test   %edx,%edx
  je     L791
  movzbl D734(%rip),%eax
  test   %al,%al
  je     L582
  movzbl D328(%rip),%eax
L20:
  movsbl %al,%ecx
  movsbq %al,%rdx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  mov    %ecx,%edx
  movzbl %cl,%ecx
  lock cmpxchg %cl,0x2c20(%rip)        # 408e <a.22>
  jne    L20
  cmp    $0xfd,%dl
  jne    L87
  movzbl D328(%rip),%eax
  cmp    $0xfd,%al
  jne    L509
  movzbl D133(%rip),%eax
L127:
  movsbl %al,%ecx
  movsbq %al,%rdx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  mov    %ecx,%edx
  movzbl %cl,%ecx
  lock cmpxchg %cl,0x2bd3(%rip)        # 408d <a.21>
  jne    L127
  cmp    $0xfd,%dl
  jne    L340
  movzbl D133(%rip),%eax
  cmp    $0xfd,%al
  jne    L767
  movzbl D388(%rip),%eax
L420:
  movzbl %al,%esi
  movzbl %al,%edx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  lea    (%rdx,%rdx,4),%ecx
  sub    %ecx,%esi
  lock cmpxchg %sil,0x2b92(%rip)        # 408c <a.20>
  jne    L420
  cmp    $0x3,%sil
  jne    L181
  movzbl D388(%rip),%eax
  cmp    $0x3,%al
  jne    L385
  movzwl D277(%rip),%eax
L341:
  movswl %ax,%ecx
  movswq %ax,%rdx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  mov    %ecx,%edx
  movzwl %cx,%ecx
  lock cmpxchg %cx,0x2b42(%rip)        # 408a <a.19>
  jne    L341
  cmp    $0xfffd,%dx
  jne    L690
  movzwl D277(%rip),%eax
  cmp    $0xfffd,%ax
  jne    L1044
  movzwl D429(%rip),%eax
L906:
  movzwl %ax,%esi
  movzwl %ax,%edx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  lea    (%rdx,%rdx,4),%ecx
  sub    %ecx,%esi
  lock cmpxchg %si,0x2afd(%rip)        # 4088 <a.18>
  jne    L906
  cmp    $0x3,%si
  jne    L81
  movzwl D429(%rip),%eax
  cmp    $0x3,%ax
  jne    L629
  mov    D213(%rip),%eax
L871:
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x21,%rdx
  mov    %eax,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%edx
  lea    (%rdx,%rdx,4),%ecx
  mov    %eax,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2ab2(%rip)        # 4084 <a.17>
  jne    L871
  cmp    $0xfffffffd,%edx
  jne    L880
  mov    D213(%rip),%eax
  cmp    $0xfffffffd,%eax
  jne    L861
  mov    D72(%rip),%eax
  mov    $0xcccccccd,%esi
L225:
  mov    %eax,%edx
  imul   %rsi,%rdx
  shr    $0x22,%rdx
  lea    (%rdx,%rdx,4),%ecx
  mov    %eax,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2a70(%rip)        # 4080 <a.16>
  jne    L225
  cmp    $0x3,%edx
  jne    L676
  mov    D72(%rip),%eax
  cmp    $0x3,%eax
  jne    L373
  mov    D379(%rip),%rcx
  movabs $0x6666666666666667,%rsi
L891:
  mov    %rcx,%rax
  imul   %rsi
  sar    %rdx
  mov    %rcx,%rax
  sar    $0x3f,%rax
  sub    %rax,%rdx
  lea    (%rdx,%rdx,4),%rax
  mov    %rcx,%rdx
  sub    %rax,%rdx
  mov    %rcx,%rax
  lock cmpxchg %rdx,0x2a14(%rip)        # 4078 <a.15>
  mov    %rax,%rcx
  jne    L891
  cmp    $0xfffffffffffffffd,%rdx
  jne    L484
  mov    D379(%rip),%rax
  cmp    $0xfffffffffffffffd,%rax
  jne    L838
  mov    D739(%rip),%rcx
  movabs $0xcccccccccccccccd,%rdi
L149:
  mov    %rcx,%rax
  mul    %rdi
  mov    %rdx,%rsi
  shr    $0x2,%rsi
  and    $0xfffffffffffffffc,%rdx
  add    %rsi,%rdx
  mov    %rcx,%rsi
  sub    %rdx,%rsi
  mov    %rcx,%rax
  lock cmpxchg %rsi,0x29b5(%rip)        # 4070 <a.14>
  mov    %rax,%rcx
  jne    L149
  cmp    $0x3,%rsi
  jne    L315
  mov    D739(%rip),%rax
  cmp    $0x3,%rax
  jne    L561
  mov    D756(%rip),%rcx
  movabs $0x6666666666666667,%rsi
L556:
  mov    %rcx,%rax
  imul   %rsi
  sar    %rdx
  mov    %rcx,%rax
  sar    $0x3f,%rax
  sub    %rax,%rdx
  lea    (%rdx,%rdx,4),%rax
  mov    %rcx,%rdx
  sub    %rax,%rdx
  mov    %rcx,%rax
  lock cmpxchg %rdx,0x2953(%rip)        # 4068 <a.13>
  mov    %rax,%rcx
  jne    L556
  cmp    $0xfffffffffffffffd,%rdx
  jne    L17
  mov    D756(%rip),%rax
  cmp    $0xfffffffffffffffd,%rax
  jne    L686
  mov    D182(%rip),%rcx
  movabs $0xcccccccccccccccd,%rdi
L1022:
  mov    %rcx,%rax
  mul    %rdi
  mov    %rdx,%rsi
  shr    $0x2,%rsi
  and    $0xfffffffffffffffc,%rdx
  add    %rsi,%rdx
  mov    %rcx,%rsi
  sub    %rdx,%rsi
  mov    %rcx,%rax
  lock cmpxchg %rsi,0x28f4(%rip)        # 4060 <a.12>
  mov    %rax,%rcx
  jne    L1022
  cmp    $0x3,%rsi
  jne    L997
  mov    D182(%rip),%rax
  cmp    $0x3,%rax
  jne    L546
  movzbl D86(%rip),%eax
  mov    %al,0x7(%rsp)
L203:
  movzbl 0x7(%rsp),%edx
  mov    %edx,%eax
  lock cmpxchg %dl,0x28b9(%rip)        # 405f <a.11>
  sete   %cl
  je     L141
  mov    %al,0x7(%rsp)
L141:
  test   %cl,%cl
  je     L203
  test   %dl,%dl
  je     L1036
  movzbl D86(%rip),%eax
  test   %al,%al
  je     L956
  movzbl D908(%rip),%eax
L796:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2873(%rip)        # 405e <a.10>
  jne    L796
  cmp    $0xff,%dl
  jne    L60
  movzbl D908(%rip),%eax
  cmp    $0xff,%al
  jne    L142
  movzbl D515(%rip),%eax
L732:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2837(%rip)        # 405d <a.9>
  jne    L732
  cmp    $0xff,%dl
  jne    L269
  movzbl D515(%rip),%eax
  cmp    $0xff,%al
  jne    L213
  movzbl D873(%rip),%eax
L243:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dl,0x2808(%rip)        # 405c <a.8>
  jne    L243
  test   %dl,%dl
  je     L139
  movzbl D873(%rip),%eax
  cmp    $0x1,%al
  jne    L836
  movzwl D679(%rip),%eax
L1020:
  movswl %ax,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzwl %dx,%ecx
  lock cmpxchg %cx,0x27cb(%rip)        # 405a <a.7>
  jne    L1020
  cmp    $0xffff,%dx
  jne    L145
  movzwl D679(%rip),%eax
  cmp    $0xffff,%ax
  jne    L552
  movzwl D335(%rip),%eax
L578:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dx,0x2797(%rip)        # 4058 <a.6>
  jne    L578
  test   %dx,%dx
  je     L1056
  movzwl D335(%rip),%eax
  cmp    $0x1,%ax
  jne    L303
  mov    D501(%rip),%eax
L112:
  mov    %eax,%ecx
  shr    $0x1f,%ecx
  lea    (%rax,%rcx,1),%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x275c(%rip)        # 4054 <a.5>
  jne    L112
  cmp    $0xffffffff,%edx
  jne    L821
  mov    D501(%rip),%eax
  cmp    $0xffffffff,%eax
  jne    L973
  mov    D243(%rip),%eax
L462:
  cmp    $0xfffffffe,%eax
  setae  %dl
  movzbl %dl,%edx
  neg    %edx
  lea    (%rdx,%rdx,1),%ecx
  mov    %eax,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x271e(%rip)        # 4050 <a.4>
  jne    L462
  cmp    $0xfffffff9,%edx
  jne    L339
  mov    D243(%rip),%eax
  cmp    $0xfffffff9,%eax
  jne    L727
  mov    D294(%rip),%rax
L536:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x26db(%rip)        # 4048 <a.3>
  jne    L536
  cmp    $0xffffffffffffffff,%rdx
  jne    L37
  mov    D294(%rip),%rax
  cmp    $0xffffffffffffffff,%rax
  jne    L622
  mov    D926(%rip),%rax
L713:
  cmp    $0xfffffffffffffffe,%rax
  setae  %dl
  movzbl %dl,%edx
  neg    %rdx
  lea    (%rdx,%rdx,1),%rcx
  mov    %rax,%rdx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x268f(%rip)        # 4040 <a.2>
  jne    L713
  cmp    $0xfffffffffffffff9,%rdx
  jne    L411
  mov    D926(%rip),%rax
  cmp    $0xfffffffffffffff9,%rax
  jne    L152
  mov    D969(%rip),%rax
L652:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2649(%rip)        # 4038 <a.1>
  jne    L652
  cmp    $0xffffffffffffffff,%rdx
  jne    L614
  mov    D969(%rip),%rax
  cmp    $0xffffffffffffffff,%rax
  jne    L958
  mov    D364(%rip),%rax
L948:
  cmp    $0xfffffffffffffffe,%rax
  setae  %dl
  movzbl %dl,%edx
  neg    %rdx
  lea    (%rdx,%rdx,1),%rcx
  mov    %rax,%rdx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x25fd(%rip)        # 4030 <a.0>
  jne    L948
  cmp    $0xfffffffffffffff9,%rdx
  jne    L320
  mov    D364(%rip),%rax
  cmp    $0xfffffffffffffff9,%rax
  jne    L876
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L824
  add    $0x18,%rsp
  ret
L782:
  call   <abort@plt>
L12:
  call   <abort@plt>
L1115:
  call   <abort@plt>
L1113:
  call   <abort@plt>
L479:
  call   <abort@plt>
L1091:
  call   <abort@plt>
L477:
  call   <abort@plt>
L657:
  call   <abort@plt>
L1085:
  call   <abort@plt>
L665:
  call   <abort@plt>
L831:
  call   <abort@plt>
L954:
  call   <abort@plt>
L988:
  call   <abort@plt>
L959:
  call   <abort@plt>
L596:
  call   <abort@plt>
L580:
  call   <abort@plt>
L53:
  call   <abort@plt>
L364:
  call   <abort@plt>
L1078:
  call   <abort@plt>
L137:
  call   <abort@plt>
L802:
  call   <abort@plt>
L491:
  call   <abort@plt>
L174:
  call   <abort@plt>
L870:
  call   <abort@plt>
L791:
  call   <abort@plt>
L582:
  call   <abort@plt>
L87:
  call   <abort@plt>
L509:
  call   <abort@plt>
L340:
  call   <abort@plt>
L767:
  call   <abort@plt>
L181:
  call   <abort@plt>
L385:
  call   <abort@plt>
L690:
  call   <abort@plt>
L1044:
  call   <abort@plt>
L81:
  call   <abort@plt>
L629:
  call   <abort@plt>
L880:
  call   <abort@plt>
L861:
  call   <abort@plt>
L676:
  call   <abort@plt>
L373:
  call   <abort@plt>
L484:
  call   <abort@plt>
L838:
  call   <abort@plt>
L315:
  call   <abort@plt>
L561:
  call   <abort@plt>
L17:
  call   <abort@plt>
L686:
  call   <abort@plt>
L997:
  call   <abort@plt>
L546:
  call   <abort@plt>
L1036:
  call   <abort@plt>
L956:
  call   <abort@plt>
L60:
  call   <abort@plt>
L142:
  call   <abort@plt>
L269:
  call   <abort@plt>
L213:
  call   <abort@plt>
L139:
  call   <abort@plt>
L836:
  call   <abort@plt>
L145:
  call   <abort@plt>
L552:
  call   <abort@plt>
L1056:
  call   <abort@plt>
L303:
  call   <abort@plt>
L821:
  call   <abort@plt>
L973:
  call   <abort@plt>
L339:
  call   <abort@plt>
L727:
  call   <abort@plt>
L37:
  call   <abort@plt>
L622:
  call   <abort@plt>
L411:
  call   <abort@plt>
L152:
  call   <abort@plt>
L614:
  call   <abort@plt>
L958:
  call   <abort@plt>
L320:
  call   <abort@plt>
L876:
  call   <abort@plt>
L824:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void test_mod(void) {
  do {
    do {
      static volatile _Atomic(_Bool) a = (_Bool)((1));
      if ((a %= ((2))) != (_Bool)((_Bool)((1)) % ((2))))
        abort();
      if (a != (_Bool)((_Bool)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(char) a = (char)((1));
      if ((a %= ((2))) != (char)((char)((1)) % ((2))))
        abort();
      if (a != (char)((char)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed char) a = (signed char)((1));
      if ((a %= ((2))) != (signed char)((signed char)((1)) % ((2))))
        abort();
      if (a != (signed char)((signed char)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned char) a = (unsigned char)((1));
      if ((a %= ((2))) != (unsigned char)((unsigned char)((1)) % ((2))))
        abort();
      if (a != (unsigned char)((unsigned char)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed short) a = (signed short)((1));
      if ((a %= ((2))) != (signed short)((signed short)((1)) % ((2))))
        abort();
      if (a != (signed short)((signed short)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned short) a = (unsigned short)((1));
      if ((a %= ((2))) != (unsigned short)((unsigned short)((1)) % ((2))))
        abort();
      if (a != (unsigned short)((unsigned short)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed int) a = (signed int)((1));
      if ((a %= ((2))) != (signed int)((signed int)((1)) % ((2))))
        abort();
      if (a != (signed int)((signed int)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned int) a = (unsigned int)((1));
      if ((a %= ((2))) != (unsigned int)((unsigned int)((1)) % ((2))))
        abort();
      if (a != (unsigned int)((unsigned int)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long) a = (signed long)((1));
      if ((a %= ((2))) != (signed long)((signed long)((1)) % ((2))))
        abort();
      if (a != (signed long)((signed long)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long) a = (unsigned long)((1));
      if ((a %= ((2))) != (unsigned long)((unsigned long)((1)) % ((2))))
        abort();
      if (a != (unsigned long)((unsigned long)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long long) a = (signed long long)((1));
      if ((a %= ((2))) != (signed long long)((signed long long)((1)) % ((2))))
        abort();
      if (a != (signed long long)((signed long long)((1)) % ((2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long long) a = (unsigned long long)((1));
      if ((a %= ((2))) != (unsigned long long)((unsigned long long)((1)) % ((2))))
        abort();
      if (a != (unsigned long long)((unsigned long long)((1)) % ((2))))
        abort();
    } while (0);
  } while (0);
  do {
    do {
      static volatile _Atomic(_Bool) a = (_Bool)((-3));
      if ((a %= ((5))) != (_Bool)((_Bool)((-3)) % ((5))))
        abort();
      if (a != (_Bool)((_Bool)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(char) a = (char)((-3));
      if ((a %= ((5))) != (char)((char)((-3)) % ((5))))
        abort();
      if (a != (char)((char)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed char) a = (signed char)((-3));
      if ((a %= ((5))) != (signed char)((signed char)((-3)) % ((5))))
        abort();
      if (a != (signed char)((signed char)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned char) a = (unsigned char)((-3));
      if ((a %= ((5))) != (unsigned char)((unsigned char)((-3)) % ((5))))
        abort();
      if (a != (unsigned char)((unsigned char)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed short) a = (signed short)((-3));
      if ((a %= ((5))) != (signed short)((signed short)((-3)) % ((5))))
        abort();
      if (a != (signed short)((signed short)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned short) a = (unsigned short)((-3));
      if ((a %= ((5))) != (unsigned short)((unsigned short)((-3)) % ((5))))
        abort();
      if (a != (unsigned short)((unsigned short)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed int) a = (signed int)((-3));
      if ((a %= ((5))) != (signed int)((signed int)((-3)) % ((5))))
        abort();
      if (a != (signed int)((signed int)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned int) a = (unsigned int)((-3));
      if ((a %= ((5))) != (unsigned int)((unsigned int)((-3)) % ((5))))
        abort();
      if (a != (unsigned int)((unsigned int)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long) a = (signed long)((-3));
      if ((a %= ((5))) != (signed long)((signed long)((-3)) % ((5))))
        abort();
      if (a != (signed long)((signed long)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long) a = (unsigned long)((-3));
      if ((a %= ((5))) != (unsigned long)((unsigned long)((-3)) % ((5))))
        abort();
      if (a != (unsigned long)((unsigned long)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long long) a = (signed long long)((-3));
      if ((a %= ((5))) != (signed long long)((signed long long)((-3)) % ((5))))
        abort();
      if (a != (signed long long)((signed long long)((-3)) % ((5))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long long) a = (unsigned long long)((-3));
      if ((a %= ((5))) != (unsigned long long)((unsigned long long)((-3)) % ((5))))
        abort();
      if (a != (unsigned long long)((unsigned long long)((-3)) % ((5))))
        abort();
    } while (0);
  } while (0);
  do {
    do {
      static volatile _Atomic(_Bool) a = (_Bool)((-7));
      if ((a %= ((-2))) != (_Bool)((_Bool)((-7)) % ((-2))))
        abort();
      if (a != (_Bool)((_Bool)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(char) a = (char)((-7));
      if ((a %= ((-2))) != (char)((char)((-7)) % ((-2))))
        abort();
      if (a != (char)((char)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed char) a = (signed char)((-7));
      if ((a %= ((-2))) != (signed char)((signed char)((-7)) % ((-2))))
        abort();
      if (a != (signed char)((signed char)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned char) a = (unsigned char)((-7));
      if ((a %= ((-2))) != (unsigned char)((unsigned char)((-7)) % ((-2))))
        abort();
      if (a != (unsigned char)((unsigned char)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed short) a = (signed short)((-7));
      if ((a %= ((-2))) != (signed short)((signed short)((-7)) % ((-2))))
        abort();
      if (a != (signed short)((signed short)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned short) a = (unsigned short)((-7));
      if ((a %= ((-2))) != (unsigned short)((unsigned short)((-7)) % ((-2))))
        abort();
      if (a != (unsigned short)((unsigned short)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed int) a = (signed int)((-7));
      if ((a %= ((-2))) != (signed int)((signed int)((-7)) % ((-2))))
        abort();
      if (a != (signed int)((signed int)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned int) a = (unsigned int)((-7));
      if ((a %= ((-2))) != (unsigned int)((unsigned int)((-7)) % ((-2))))
        abort();
      if (a != (unsigned int)((unsigned int)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long) a = (signed long)((-7));
      if ((a %= ((-2))) != (signed long)((signed long)((-7)) % ((-2))))
        abort();
      if (a != (signed long)((signed long)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long) a = (unsigned long)((-7));
      if ((a %= ((-2))) != (unsigned long)((unsigned long)((-7)) % ((-2))))
        abort();
      if (a != (unsigned long)((unsigned long)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(signed long long) a = (signed long long)((-7));
      if ((a %= ((-2))) != (signed long long)((signed long long)((-7)) % ((-2))))
        abort();
      if (a != (signed long long)((signed long long)((-7)) % ((-2))))
        abort();
    } while (0);
    do {
      static volatile _Atomic(unsigned long long) a = (unsigned long long)((-7));
      if ((a %= ((-2))) != (unsigned long long)((unsigned long long)((-7)) % ((-2))))
        abort();
      if (a != (unsigned long long)((unsigned long long)((-7)) % ((-2))))
        abort();
    } while (0);
  } while (0);
}
```