user: 请从给定的汇编指令推导出C源代码:

```asm
<test_mod>:
  endbr64
  sub    $0x18,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  lea    0x5(%rsp),%rcx
  movzbl D765(%rip),%edx
  mov    %dl,0x5(%rsp)
L319:
  movzbl (%rcx),%eax
  lock cmpxchg %dl,0x2f3c(%rip)        # 40bf <a.35>
  je     L71
  mov    %al,(%rcx)
  mov    %eax,%edx
  jmp    L319
  nopl   0x0(%rax,%rax,1)
L71:
  test   %dl,%dl
  je     1080 <test_mod.cold>
  movzbl D765(%rip),%eax
  test   %al,%al
  je     1080 <test_mod.cold>
  movzbl D949(%rip),%eax
L20:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2ef6(%rip)        # 40be <a.34>
  jne    L20
  cmp    $0x1,%edx
  jne    1080 <test_mod.cold>
  movzbl D949(%rip),%eax
  cmp    $0x1,%al
  jne    1080 <test_mod.cold>
  movzbl D552(%rip),%eax
L97:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2eba(%rip)        # 40bd <a.33>
  jne    L97
  cmp    $0x1,%edx
  jne    1080 <test_mod.cold>
  movzbl D552(%rip),%eax
  cmp    $0x1,%al
  jne    1080 <test_mod.cold>
  movzbl D1039(%rip),%eax
L297:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dl,0x2e8b(%rip)        # 40bc <a.32>
  jne    L297
  test   %dl,%dl
  je     1080 <test_mod.cold>
  movzbl D1039(%rip),%eax
  cmp    $0x1,%al
  jne    1080 <test_mod.cold>
  movzwl D467(%rip),%eax
L188:
  movswl %ax,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzwl %dx,%ecx
  lock cmpxchg %cx,0x2e4e(%rip)        # 40ba <a.31>
  jne    L188
  cmp    $0x1,%edx
  jne    1080 <test_mod.cold>
  movzwl D467(%rip),%eax
  cmp    $0x1,%ax
  jne    1080 <test_mod.cold>
  movzwl D54(%rip),%eax
L342:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dx,0x2e1b(%rip)        # 40b8 <a.30>
  jne    L342
  test   %dx,%dx
  je     1080 <test_mod.cold>
  movzwl D54(%rip),%eax
  cmp    $0x1,%ax
  jne    1080 <test_mod.cold>
  mov    D424(%rip),%eax
L45:
  mov    %eax,%ecx
  shr    $0x1f,%ecx
  lea    (%rax,%rcx,1),%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2de0(%rip)        # 40b4 <a.29>
  jne    L45
  cmp    $0x1,%edx
  jne    1080 <test_mod.cold>
  mov    D424(%rip),%eax
  cmp    $0x1,%eax
  jne    1080 <test_mod.cold>
  mov    D646(%rip),%eax
L39:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %edx,0x2daf(%rip)        # 40b0 <a.28>
  jne    L39
  test   %edx,%edx
  je     1080 <test_mod.cold>
  mov    D646(%rip),%eax
  cmp    $0x1,%eax
  jne    1080 <test_mod.cold>
  mov    D494(%rip),%rax
L81:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2d6d(%rip)        # 40a8 <a.27>
  jne    L81
  cmp    $0x1,%rdx
  jne    1080 <test_mod.cold>
  mov    D494(%rip),%rax
  cmp    $0x1,%rax
  jne    1080 <test_mod.cold>
  mov    D898(%rip),%rax
L211:
  mov    %rax,%rdx
  and    $0x1,%edx
  lock cmpxchg %rdx,0x2d32(%rip)        # 40a0 <a.26>
  jne    L211
  test   %rdx,%rdx
  je     1080 <test_mod.cold>
  mov    D898(%rip),%rax
  cmp    $0x1,%rax
  jne    1080 <test_mod.cold>
  mov    D476(%rip),%rax
L62:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2ced(%rip)        # 4098 <a.25>
  jne    L62
  cmp    $0x1,%rdx
  jne    1080 <test_mod.cold>
  mov    D476(%rip),%rax
  cmp    $0x1,%rax
  jne    1080 <test_mod.cold>
  mov    D547(%rip),%rax
L282:
  mov    %rax,%rdx
  and    $0x1,%edx
  lock cmpxchg %rdx,0x2cb2(%rip)        # 4090 <a.24>
  jne    L282
  test   %rdx,%rdx
  je     1080 <test_mod.cold>
  mov    D547(%rip),%rax
  cmp    $0x1,%rax
  jne    1080 <test_mod.cold>
  lea    0x6(%rsp),%rcx
  movzbl D877(%rip),%edx
  mov    %dl,0x6(%rsp)
L387:
  movzbl (%rcx),%eax
  lock cmpxchg %dl,0x2c7a(%rip)        # 408f <a.23>
  je     L63
  mov    %al,(%rcx)
  mov    %eax,%edx
  jmp    L387
  nopl   (%rax)
L63:
  test   %dl,%dl
  je     1080 <test_mod.cold>
  movzbl D877(%rip),%eax
  test   %al,%al
  je     1080 <test_mod.cold>
  movzbl D34(%rip),%eax
L157:
  movsbq %al,%rdx
  movsbl %al,%ecx
  imul   $0x66666667,%rdx,%rdx
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sar    $0x21,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  mov    %ecx,%edx
  movzbl %cl,%ecx
  lock cmpxchg %cl,0x2c25(%rip)        # 408e <a.22>
  jne    L157
  cmp    $0xfffffffd,%edx
  jne    1080 <test_mod.cold>
  movzbl D34(%rip),%eax
  cmp    $0xfd,%al
  jne    1080 <test_mod.cold>
  movzbl D990(%rip),%eax
L333:
  movsbq %al,%rdx
  movsbl %al,%ecx
  imul   $0x66666667,%rdx,%rdx
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sar    $0x21,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  mov    %ecx,%edx
  movzbl %cl,%ecx
  lock cmpxchg %cl,0x2bd8(%rip)        # 408d <a.21>
  jne    L333
  cmp    $0xfffffffd,%edx
  jne    1080 <test_mod.cold>
  movzbl D990(%rip),%eax
  cmp    $0xfd,%al
  jne    1080 <test_mod.cold>
  mov    $0xcccccccd,%edi
  movzbl D827(%rip),%eax
L346:
  movzbl %al,%edx
  mov    %rdx,%rcx
  imul   %rdi,%rdx
  shr    $0x22,%rdx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  lock cmpxchg %cl,0x2b96(%rip)        # 408c <a.20>
  jne    L346
  cmp    $0x3,%ecx
  jne    1080 <test_mod.cold>
  movzbl D827(%rip),%eax
  cmp    $0x3,%al
  jne    1080 <test_mod.cold>
  movzwl D236(%rip),%eax
L216:
  movswq %ax,%rdx
  movswl %ax,%ecx
  imul   $0x66666667,%rdx,%rdx
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sar    $0x21,%rdx
  sub    %esi,%edx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  mov    %ecx,%edx
  movzwl %cx,%ecx
  lock cmpxchg %cx,0x2b47(%rip)        # 408a <a.19>
  jne    L216
  cmp    $0xfffffffd,%edx
  jne    1080 <test_mod.cold>
  movzwl D236(%rip),%eax
  cmp    $0xfffd,%ax
  jne    1080 <test_mod.cold>
  mov    $0xcccccccd,%edi
  movzwl D379(%rip),%eax
L256:
  movzwl %ax,%edx
  mov    %rdx,%rcx
  imul   %rdi,%rdx
  shr    $0x22,%rdx
  lea    (%rdx,%rdx,4),%esi
  sub    %esi,%ecx
  lock cmpxchg %cx,0x2b01(%rip)        # 4088 <a.18>
  jne    L256
  cmp    $0x3,%ecx
  jne    1080 <test_mod.cold>
  movzwl D379(%rip),%eax
  cmp    $0x3,%ax
  jne    1080 <test_mod.cold>
  mov    D966(%rip),%eax
L36:
  movslq %eax,%rdx
  mov    %eax,%ecx
  imul   $0x66666667,%rdx,%rdx
  sar    $0x1f,%ecx
  sar    $0x21,%rdx
  sub    %ecx,%edx
  lea    (%rdx,%rdx,4),%ecx
  mov    %eax,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2ab7(%rip)        # 4084 <a.17>
  jne    L36
  cmp    $0xfffffffd,%edx
  jne    1080 <test_mod.cold>
  mov    D966(%rip),%eax
  cmp    $0xfffffffd,%eax
  jne    1080 <test_mod.cold>
  mov    $0xcccccccd,%esi
  mov    D741(%rip),%eax
L104:
  mov    %eax,%edx
  imul   %rsi,%rdx
  shr    $0x22,%rdx
  lea    (%rdx,%rdx,4),%ecx
  mov    %eax,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2a75(%rip)        # 4080 <a.16>
  jne    L104
  cmp    $0x3,%edx
  jne    1080 <test_mod.cold>
  mov    D741(%rip),%eax
  cmp    $0x3,%eax
  jne    1080 <test_mod.cold>
  movabs $0x6666666666666667,%rsi
  mov    D601(%rip),%rcx
L374:
  mov    %rcx,%rax
  imul   %rsi
  mov    %rcx,%rax
  sar    $0x3f,%rax
  sar    %rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,4),%rax
  mov    %rcx,%rdx
  sub    %rax,%rdx
  mov    %rcx,%rax
  lock cmpxchg %rdx,0x2a19(%rip)        # 4078 <a.15>
  mov    %rax,%rcx
  jne    L374
  cmp    $0xfffffffffffffffd,%rdx
  jne    1080 <test_mod.cold>
  mov    D601(%rip),%rax
  cmp    $0xfffffffffffffffd,%rax
  jne    1080 <test_mod.cold>
  movabs $0xcccccccccccccccd,%rdi
  mov    D87(%rip),%rcx
L278:
  mov    %rcx,%rax
  mul    %rdi
  mov    %rcx,%rax
  mov    %rdx,%rsi
  and    $0xfffffffffffffffc,%rdx
  shr    $0x2,%rsi
  add    %rsi,%rdx
  mov    %rcx,%rsi
  sub    %rdx,%rsi
  lock cmpxchg %rsi,0x29ba(%rip)        # 4070 <a.14>
  mov    %rax,%rcx
  jne    L278
  cmp    $0x3,%rsi
  jne    1080 <test_mod.cold>
  mov    D87(%rip),%rax
  cmp    $0x3,%rax
  jne    1080 <test_mod.cold>
  movabs $0x6666666666666667,%rsi
  mov    D414(%rip),%rcx
L316:
  mov    %rcx,%rax
  imul   %rsi
  mov    %rcx,%rax
  sar    $0x3f,%rax
  sar    %rdx
  sub    %rax,%rdx
  lea    (%rdx,%rdx,4),%rax
  mov    %rcx,%rdx
  sub    %rax,%rdx
  mov    %rcx,%rax
  lock cmpxchg %rdx,0x2958(%rip)        # 4068 <a.13>
  mov    %rax,%rcx
  jne    L316
  cmp    $0xfffffffffffffffd,%rdx
  jne    1080 <test_mod.cold>
  mov    D414(%rip),%rax
  cmp    $0xfffffffffffffffd,%rax
  jne    1080 <test_mod.cold>
  movabs $0xcccccccccccccccd,%rdi
  mov    D582(%rip),%rcx
L1:
  mov    %rcx,%rax
  mul    %rdi
  mov    %rcx,%rax
  mov    %rdx,%rsi
  and    $0xfffffffffffffffc,%rdx
  shr    $0x2,%rsi
  add    %rsi,%rdx
  mov    %rcx,%rsi
  sub    %rdx,%rsi
  lock cmpxchg %rsi,0x28f9(%rip)        # 4060 <a.12>
  mov    %rax,%rcx
  jne    L1
  cmp    $0x3,%rsi
  jne    1080 <test_mod.cold>
  mov    D582(%rip),%rax
  cmp    $0x3,%rax
  jne    1080 <test_mod.cold>
  lea    0x7(%rsp),%rcx
  movzbl D184(%rip),%edx
  mov    %dl,0x7(%rsp)
L293:
  movzbl (%rcx),%eax
  lock cmpxchg %dl,0x28bd(%rip)        # 405f <a.11>
  je     L176
  mov    %al,(%rcx)
  mov    %eax,%edx
  jmp    L293
  nopw   0x0(%rax,%rax,1)
L176:
  test   %dl,%dl
  je     1080 <test_mod.cold>
  movzbl D184(%rip),%eax
  test   %al,%al
  je     1080 <test_mod.cold>
  movzbl D881(%rip),%eax
L208:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x2876(%rip)        # 405e <a.10>
  jne    L208
  cmp    $0xffffffff,%edx
  jne    1080 <test_mod.cold>
  movzbl D881(%rip),%eax
  cmp    $0xff,%al
  jne    1080 <test_mod.cold>
  movzbl D435(%rip),%eax
L147:
  movsbl %al,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzbl %dl,%ecx
  lock cmpxchg %cl,0x283a(%rip)        # 405d <a.9>
  jne    L147
  cmp    $0xffffffff,%edx
  jne    1080 <test_mod.cold>
  movzbl D435(%rip),%eax
  cmp    $0xff,%al
  jne    1080 <test_mod.cold>
  movzbl D923(%rip),%eax
L21:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dl,0x280b(%rip)        # 405c <a.8>
  jne    L21
  test   %dl,%dl
  je     1080 <test_mod.cold>
  movzbl D923(%rip),%eax
  cmp    $0x1,%al
  jne    1080 <test_mod.cold>
  movzwl D472(%rip),%eax
L115:
  movswl %ax,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  movzwl %dx,%ecx
  lock cmpxchg %cx,0x27ce(%rip)        # 405a <a.7>
  jne    L115
  cmp    $0xffffffff,%edx
  jne    1080 <test_mod.cold>
  movzwl D472(%rip),%eax
  cmp    $0xffff,%ax
  jne    1080 <test_mod.cold>
  movzwl D716(%rip),%eax
L161:
  mov    %eax,%edx
  and    $0x1,%edx
  lock cmpxchg %dx,0x279b(%rip)        # 4058 <a.6>
  jne    L161
  test   %dx,%dx
  je     1080 <test_mod.cold>
  movzwl D716(%rip),%eax
  cmp    $0x1,%ax
  jne    1080 <test_mod.cold>
  mov    D723(%rip),%eax
L329:
  mov    %eax,%ecx
  shr    $0x1f,%ecx
  lea    (%rax,%rcx,1),%edx
  and    $0x1,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2760(%rip)        # 4054 <a.5>
  jne    L329
  cmp    $0xffffffff,%edx
  jne    1080 <test_mod.cold>
  mov    D723(%rip),%eax
  cmp    $0xffffffff,%eax
  jne    1080 <test_mod.cold>
  mov    D945(%rip),%eax
L48:
  xor    %edx,%edx
  cmp    $0xfffffffe,%eax
  setae  %dl
  neg    %edx
  lea    (%rdx,%rdx,1),%ecx
  mov    %eax,%edx
  sub    %ecx,%edx
  lock cmpxchg %edx,0x2723(%rip)        # 4050 <a.4>
  jne    L48
  cmp    $0xfffffff9,%edx
  jne    1080 <test_mod.cold>
  mov    D945(%rip),%eax
  cmp    $0xfffffff9,%eax
  jne    1080 <test_mod.cold>
  mov    D124(%rip),%rax
L85:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x26e0(%rip)        # 4048 <a.3>
  jne    L85
  cmp    $0xffffffffffffffff,%rdx
  jne    1080 <test_mod.cold>
  mov    D124(%rip),%rax
  cmp    $0xffffffffffffffff,%rax
  jne    1080 <test_mod.cold>
  mov    D99(%rip),%rax
L177:
  xor    %edx,%edx
  cmp    $0xfffffffffffffffe,%rax
  setae  %dl
  neg    %rdx
  lea    (%rdx,%rdx,1),%rcx
  mov    %rax,%rdx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2695(%rip)        # 4040 <a.2>
  jne    L177
  cmp    $0xfffffffffffffff9,%rdx
  jne    1080 <test_mod.cold>
  mov    D99(%rip),%rax
  cmp    $0xfffffffffffffff9,%rax
  jne    1080 <test_mod.cold>
  mov    D306(%rip),%rax
L68:
  mov    %rax,%rcx
  shr    $0x3f,%rcx
  lea    (%rax,%rcx,1),%rdx
  and    $0x1,%edx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x264f(%rip)        # 4038 <a.1>
  jne    L68
  cmp    $0xffffffffffffffff,%rdx
  jne    1080 <test_mod.cold>
  mov    D306(%rip),%rax
  cmp    $0xffffffffffffffff,%rax
  jne    1080 <test_mod.cold>
  mov    D632(%rip),%rax
L226:
  xor    %edx,%edx
  cmp    $0xfffffffffffffffe,%rax
  setae  %dl
  neg    %rdx
  lea    (%rdx,%rdx,1),%rcx
  mov    %rax,%rdx
  sub    %rcx,%rdx
  lock cmpxchg %rdx,0x2604(%rip)        # 4030 <a.0>
  jne    L226
  cmp    $0xfffffffffffffff9,%rdx
  jne    1080 <test_mod.cold>
  mov    D632(%rip),%rax
  cmp    $0xfffffffffffffff9,%rax
  jne    1080 <test_mod.cold>
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L313
  add    $0x18,%rsp
  ret
L313:
  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);
}
```