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

```asm
<test_mod>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x250,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x2,-0x200(%rbp)
  movzbl D998(%rip),%eax
  mov    %al,-0x248(%rbp)
L1044:
  movzbl -0x248(%rbp),%eax
  movzbl %al,%eax
  mov    -0x200(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  test   %eax,%eax
  setne  %al
  mov    %al,-0x247(%rbp)
  movzbl -0x247(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x248(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x3e86(%rip)        # 5030 <a.35>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1533
  mov    %cl,(%rdx)
L1533:
  test   %al,%al
  jne    L746
  jmp    L1044
L746:
  movzbl -0x247(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L1788
  call   <abort@plt>
L1788:
  movzbl D998(%rip),%eax
  mov    %al,-0x246(%rbp)
  movzbl -0x246(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L97
  call   <abort@plt>
L97:
  movl   $0x2,-0x1fc(%rbp)
  movzbl D516(%rip),%eax
  mov    %al,-0x245(%rbp)
L619:
  movzbl -0x245(%rbp),%eax
  movsbl %al,%eax
  mov    -0x1fc(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x244(%rbp)
  movzbl -0x244(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x245(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x3df5(%rip)        # 5031 <a.34>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L536
  mov    %cl,(%rdx)
L536:
  test   %al,%al
  jne    L199
  jmp    L619
L199:
  movzbl -0x244(%rbp),%eax
  cmp    $0x1,%al
  je     L1764
  call   <abort@plt>
L1764:
  movzbl D516(%rip),%eax
  mov    %al,-0x243(%rbp)
  movzbl -0x243(%rbp),%eax
  cmp    $0x1,%al
  je     L466
  call   <abort@plt>
L466:
  movl   $0x2,-0x1f8(%rbp)
  movzbl D393(%rip),%eax
  mov    %al,-0x242(%rbp)
L141:
  movzbl -0x242(%rbp),%eax
  movsbl %al,%eax
  mov    -0x1f8(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x241(%rbp)
  movzbl -0x241(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x242(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x3d6a(%rip)        # 5032 <a.33>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1315
  mov    %cl,(%rdx)
L1315:
  test   %al,%al
  jne    L922
  jmp    L141
L922:
  movzbl -0x241(%rbp),%eax
  cmp    $0x1,%al
  je     L749
  call   <abort@plt>
L749:
  movzbl D393(%rip),%eax
  mov    %al,-0x240(%rbp)
  movzbl -0x240(%rbp),%eax
  cmp    $0x1,%al
  je     L0
  call   <abort@plt>
L0:
  movl   $0x2,-0x1f4(%rbp)
  movzbl D1012(%rip),%eax
  mov    %al,-0x23f(%rbp)
L957:
  movzbl -0x23f(%rbp),%eax
  movzbl %al,%eax
  mov    -0x1f4(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x23e(%rbp)
  movzbl -0x23e(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x23f(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x3cdf(%rip)        # 5033 <a.32>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L126
  mov    %cl,(%rdx)
L126:
  test   %al,%al
  jne    L26
  jmp    L957
L26:
  movzbl -0x23e(%rbp),%eax
  cmp    $0x1,%al
  je     L224
  call   <abort@plt>
L224:
  movzbl D1012(%rip),%eax
  mov    %al,-0x23d(%rbp)
  movzbl -0x23d(%rbp),%eax
  cmp    $0x1,%al
  je     L124
  call   <abort@plt>
L124:
  movl   $0x2,-0x1f0(%rbp)
  movzwl D992(%rip),%eax
  mov    %ax,-0x224(%rbp)
L275:
  movzwl -0x224(%rbp),%eax
  cwtl
  mov    -0x1f0(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %ax,-0x222(%rbp)
  movzwl -0x222(%rbp),%eax
  movzwl %ax,%ecx
  lea    -0x224(%rbp),%rdx
  movzwl (%rdx),%eax
  lock cmpxchg %cx,0x3c53(%rip)        # 5034 <a.31>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L423
  mov    %cx,(%rdx)
L423:
  test   %al,%al
  jne    L1309
  jmp    L275
L1309:
  movzwl -0x222(%rbp),%eax
  cmp    $0x1,%ax
  je     L1609
  call   <abort@plt>
L1609:
  movzwl D992(%rip),%eax
  mov    %ax,-0x220(%rbp)
  movzwl -0x220(%rbp),%eax
  cmp    $0x1,%ax
  je     L544
  call   <abort@plt>
L544:
  movl   $0x2,-0x1ec(%rbp)
  movzwl D403(%rip),%eax
  mov    %ax,-0x21e(%rbp)
L1557:
  movzwl -0x21e(%rbp),%eax
  movzwl %ax,%eax
  mov    -0x1ec(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %ax,-0x21c(%rbp)
  movzwl -0x21c(%rbp),%eax
  movzwl %ax,%ecx
  lea    -0x21e(%rbp),%rdx
  movzwl (%rdx),%eax
  lock cmpxchg %cx,0x3bc0(%rip)        # 5036 <a.30>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L31
  mov    %cx,(%rdx)
L31:
  test   %al,%al
  jne    L79
  jmp    L1557
L79:
  movzwl -0x21c(%rbp),%eax
  cmp    $0x1,%ax
  je     L276
  call   <abort@plt>
L276:
  movzwl D403(%rip),%eax
  mov    %ax,-0x21a(%rbp)
  movzwl -0x21a(%rbp),%eax
  cmp    $0x1,%ax
  je     L267
  call   <abort@plt>
L267:
  movl   $0x2,-0x1e8(%rbp)
  mov    D1002(%rip),%eax
  mov    %eax,-0x1e4(%rbp)
L1689:
  mov    -0x1e4(%rbp),%eax
  mov    -0x1e8(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %eax,-0x1e0(%rbp)
  mov    -0x1e0(%rbp),%eax
  mov    %eax,%ecx
  lea    -0x1e4(%rbp),%rdx
  mov    (%rdx),%eax
  lock cmpxchg %ecx,0x3b38(%rip)        # 5038 <a.29>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L122
  mov    %ecx,(%rdx)
L122:
  test   %al,%al
  jne    L1775
  jmp    L1689
L1775:
  mov    -0x1e0(%rbp),%eax
  cmp    $0x1,%eax
  je     L1438
  call   <abort@plt>
L1438:
  mov    D1002(%rip),%eax
  mov    %eax,-0x1dc(%rbp)
  mov    -0x1dc(%rbp),%eax
  cmp    $0x1,%eax
  je     L1646
  call   <abort@plt>
L1646:
  movl   $0x2,-0x1d8(%rbp)
  mov    D885(%rip),%eax
  mov    %eax,-0x1d4(%rbp)
L1758:
  mov    -0x1d4(%rbp),%eax
  mov    -0x1d8(%rbp),%edx
  mov    %edx,%ecx
  mov    $0x0,%edx
  div    %ecx
  mov    %edx,%eax
  mov    %eax,-0x1d0(%rbp)
  mov    -0x1d0(%rbp),%ecx
  lea    -0x1d4(%rbp),%rdx
  mov    (%rdx),%eax
  lock cmpxchg %ecx,0x3ab5(%rip)        # 503c <a.28>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1584
  mov    %ecx,(%rdx)
L1584:
  test   %al,%al
  jne    L78
  jmp    L1758
L78:
  mov    -0x1d0(%rbp),%eax
  cmp    $0x1,%eax
  je     L1295
  call   <abort@plt>
L1295:
  mov    D885(%rip),%eax
  mov    %eax,-0x1cc(%rbp)
  mov    -0x1cc(%rbp),%eax
  cmp    $0x1,%eax
  je     L1114
  call   <abort@plt>
L1114:
  movl   $0x2,-0x1c8(%rbp)
  mov    D928(%rip),%rax
  mov    %rax,-0x128(%rbp)
L129:
  mov    -0x128(%rbp),%rax
  mov    -0x1c8(%rbp),%edx
  movslq %edx,%rcx
  cqto
  idiv   %rcx
  mov    %rdx,%rax
  mov    %rax,-0x120(%rbp)
  mov    -0x120(%rbp),%rax
  mov    %rax,%rcx
  lea    -0x128(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x3a28(%rip)        # 5040 <a.27>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L94
  mov    %rcx,(%rdx)
L94:
  test   %al,%al
  jne    L386
  jmp    L129
L386:
  mov    -0x120(%rbp),%rax
  cmp    $0x1,%rax
  je     L813
  call   <abort@plt>
L813:
  mov    D928(%rip),%rax
  mov    %rax,-0x118(%rbp)
  mov    -0x118(%rbp),%rax
  cmp    $0x1,%rax
  je     L843
  call   <abort@plt>
L843:
  movl   $0x2,-0x1c4(%rbp)
  mov    D199(%rip),%rax
  mov    %rax,-0x110(%rbp)
L973:
  mov    -0x110(%rbp),%rax
  mov    -0x1c4(%rbp),%edx
  movslq %edx,%rcx
  mov    $0x0,%edx
  div    %rcx
  mov    %rdx,%rax
  mov    %rax,-0x108(%rbp)
  mov    -0x108(%rbp),%rcx
  lea    -0x110(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x3997(%rip)        # 5048 <a.26>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L1090
  mov    %rcx,(%rdx)
L1090:
  test   %al,%al
  jne    L836
  jmp    L973
L836:
  mov    -0x108(%rbp),%rax
  cmp    $0x1,%rax
  je     L845
  call   <abort@plt>
L845:
  mov    D199(%rip),%rax
  mov    %rax,-0x100(%rbp)
  mov    -0x100(%rbp),%rax
  cmp    $0x1,%rax
  je     L1162
  call   <abort@plt>
L1162:
  movl   $0x2,-0x1c0(%rbp)
  mov    D499(%rip),%rax
  mov    %rax,-0xf8(%rbp)
L194:
  mov    -0xf8(%rbp),%rax
  mov    -0x1c0(%rbp),%edx
  movslq %edx,%rcx
  cqto
  idiv   %rcx
  mov    %rdx,%rax
  mov    %rax,-0xf0(%rbp)
  mov    -0xf0(%rbp),%rax
  mov    %rax,%rcx
  lea    -0xf8(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x3906(%rip)        # 5050 <a.25>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L752
  mov    %rcx,(%rdx)
L752:
  test   %al,%al
  jne    L1747
  jmp    L194
L1747:
  mov    -0xf0(%rbp),%rax
  cmp    $0x1,%rax
  je     L325
  call   <abort@plt>
L325:
  mov    D499(%rip),%rax
  mov    %rax,-0xe8(%rbp)
  mov    -0xe8(%rbp),%rax
  cmp    $0x1,%rax
  je     L894
  call   <abort@plt>
L894:
  movl   $0x2,-0x1bc(%rbp)
  mov    D369(%rip),%rax
  mov    %rax,-0xe0(%rbp)
L1304:
  mov    -0xe0(%rbp),%rax
  mov    -0x1bc(%rbp),%edx
  movslq %edx,%rcx
  mov    $0x0,%edx
  div    %rcx
  mov    %rdx,%rax
  mov    %rax,-0xd8(%rbp)
  mov    -0xd8(%rbp),%rcx
  lea    -0xe0(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x3875(%rip)        # 5058 <a.24>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L606
  mov    %rcx,(%rdx)
L606:
  test   %al,%al
  jne    L1150
  jmp    L1304
L1150:
  mov    -0xd8(%rbp),%rax
  cmp    $0x1,%rax
  je     L1660
  call   <abort@plt>
L1660:
  mov    D369(%rip),%rax
  mov    %rax,-0xd0(%rbp)
  mov    -0xd0(%rbp),%rax
  cmp    $0x1,%rax
  je     L365
  call   <abort@plt>
L365:
  movl   $0x5,-0x1b8(%rbp)
  movzbl D28(%rip),%eax
  mov    %al,-0x23c(%rbp)
L1414:
  movzbl -0x23c(%rbp),%eax
  movzbl %al,%eax
  mov    -0x1b8(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  test   %eax,%eax
  setne  %al
  mov    %al,-0x23b(%rbp)
  movzbl -0x23b(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x23c(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x37e5(%rip)        # 5060 <a.23>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1798
  mov    %cl,(%rdx)
L1798:
  test   %al,%al
  jne    L954
  jmp    L1414
L954:
  movzbl -0x23b(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L631
  call   <abort@plt>
L631:
  movzbl D28(%rip),%eax
  mov    %al,-0x23a(%rbp)
  movzbl -0x23a(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L507
  call   <abort@plt>
L507:
  movl   $0x5,-0x1b4(%rbp)
  movzbl D763(%rip),%eax
  mov    %al,-0x239(%rbp)
L776:
  movzbl -0x239(%rbp),%eax
  movsbl %al,%eax
  mov    -0x1b4(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x238(%rbp)
  movzbl -0x238(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x239(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x3754(%rip)        # 5061 <a.22>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L47
  mov    %cl,(%rdx)
L47:
  test   %al,%al
  jne    L1556
  jmp    L776
L1556:
  movzbl -0x238(%rbp),%eax
  cmp    $0xfd,%al
  je     L659
  call   <abort@plt>
L659:
  movzbl D763(%rip),%eax
  mov    %al,-0x237(%rbp)
  movzbl -0x237(%rbp),%eax
  cmp    $0xfd,%al
  je     L291
  call   <abort@plt>
L291:
  movl   $0x5,-0x1b0(%rbp)
  movzbl D566(%rip),%eax
  mov    %al,-0x236(%rbp)
L1753:
  movzbl -0x236(%rbp),%eax
  movsbl %al,%eax
  mov    -0x1b0(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x235(%rbp)
  movzbl -0x235(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x236(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x36c9(%rip)        # 5062 <a.21>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1466
  mov    %cl,(%rdx)
L1466:
  test   %al,%al
  jne    L685
  jmp    L1753
L685:
  movzbl -0x235(%rbp),%eax
  cmp    $0xfd,%al
  je     L532
  call   <abort@plt>
L532:
  movzbl D566(%rip),%eax
  mov    %al,-0x234(%rbp)
  movzbl -0x234(%rbp),%eax
  cmp    $0xfd,%al
  je     L580
  call   <abort@plt>
L580:
  movl   $0x5,-0x1ac(%rbp)
  movzbl D808(%rip),%eax
  mov    %al,-0x233(%rbp)
L1171:
  movzbl -0x233(%rbp),%eax
  movzbl %al,%eax
  mov    -0x1ac(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x232(%rbp)
  movzbl -0x232(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x233(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x363e(%rip)        # 5063 <a.20>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L573
  mov    %cl,(%rdx)
L573:
  test   %al,%al
  jne    L1136
  jmp    L1171
L1136:
  movzbl -0x232(%rbp),%eax
  cmp    $0x3,%al
  je     L907
  call   <abort@plt>
L907:
  movzbl D808(%rip),%eax
  mov    %al,-0x231(%rbp)
  movzbl -0x231(%rbp),%eax
  cmp    $0x3,%al
  je     L107
  call   <abort@plt>
L107:
  movl   $0x5,-0x1a8(%rbp)
  movzwl D271(%rip),%eax
  mov    %ax,-0x218(%rbp)
L1112:
  movzwl -0x218(%rbp),%eax
  cwtl
  mov    -0x1a8(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %ax,-0x216(%rbp)
  movzwl -0x216(%rbp),%eax
  movzwl %ax,%ecx
  lea    -0x218(%rbp),%rdx
  movzwl (%rdx),%eax
  lock cmpxchg %cx,0x35b2(%rip)        # 5064 <a.19>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1055
  mov    %cx,(%rdx)
L1055:
  test   %al,%al
  jne    L717
  jmp    L1112
L717:
  movzwl -0x216(%rbp),%eax
  cmp    $0xfffd,%ax
  je     L522
  call   <abort@plt>
L522:
  movzwl D271(%rip),%eax
  mov    %ax,-0x214(%rbp)
  movzwl -0x214(%rbp),%eax
  cmp    $0xfffd,%ax
  je     L1143
  call   <abort@plt>
L1143:
  movl   $0x5,-0x1a4(%rbp)
  movzwl D737(%rip),%eax
  mov    %ax,-0x212(%rbp)
L1126:
  movzwl -0x212(%rbp),%eax
  movzwl %ax,%eax
  mov    -0x1a4(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %ax,-0x210(%rbp)
  movzwl -0x210(%rbp),%eax
  movzwl %ax,%ecx
  lea    -0x212(%rbp),%rdx
  movzwl (%rdx),%eax
  lock cmpxchg %cx,0x351f(%rip)        # 5066 <a.18>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L732
  mov    %cx,(%rdx)
L732:
  test   %al,%al
  jne    L103
  jmp    L1126
L103:
  movzwl -0x210(%rbp),%eax
  cmp    $0x3,%ax
  je     L435
  call   <abort@plt>
L435:
  movzwl D737(%rip),%eax
  mov    %ax,-0x20e(%rbp)
  movzwl -0x20e(%rbp),%eax
  cmp    $0x3,%ax
  je     L427
  call   <abort@plt>
L427:
  movl   $0x5,-0x1a0(%rbp)
  mov    D421(%rip),%eax
  mov    %eax,-0x19c(%rbp)
L1354:
  mov    -0x19c(%rbp),%eax
  mov    -0x1a0(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %eax,-0x198(%rbp)
  mov    -0x198(%rbp),%eax
  mov    %eax,%ecx
  lea    -0x19c(%rbp),%rdx
  mov    (%rdx),%eax
  lock cmpxchg %ecx,0x3497(%rip)        # 5068 <a.17>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L185
  mov    %ecx,(%rdx)
L185:
  test   %al,%al
  jne    L1169
  jmp    L1354
L1169:
  mov    -0x198(%rbp),%eax
  cmp    $0xfffffffd,%eax
  je     L1117
  call   <abort@plt>
L1117:
  mov    D421(%rip),%eax
  mov    %eax,-0x194(%rbp)
  mov    -0x194(%rbp),%eax
  cmp    $0xfffffffd,%eax
  je     L132
  call   <abort@plt>
L132:
  movl   $0x5,-0x190(%rbp)
  mov    D929(%rip),%eax
  mov    %eax,-0x18c(%rbp)
L835:
  mov    -0x18c(%rbp),%eax
  mov    -0x190(%rbp),%edx
  mov    %edx,%ecx
  mov    $0x0,%edx
  div    %ecx
  mov    %edx,%eax
  mov    %eax,-0x188(%rbp)
  mov    -0x188(%rbp),%ecx
  lea    -0x18c(%rbp),%rdx
  mov    (%rdx),%eax
  lock cmpxchg %ecx,0x3414(%rip)        # 506c <a.16>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1478
  mov    %ecx,(%rdx)
L1478:
  test   %al,%al
  jne    L1105
  jmp    L835
L1105:
  mov    -0x188(%rbp),%eax
  cmp    $0x3,%eax
  je     L1066
  call   <abort@plt>
L1066:
  mov    D929(%rip),%eax
  mov    %eax,-0x184(%rbp)
  mov    -0x184(%rbp),%eax
  cmp    $0x3,%eax
  je     L434
  call   <abort@plt>
L434:
  movl   $0x5,-0x180(%rbp)
  mov    D294(%rip),%rax
  mov    %rax,-0xc8(%rbp)
L712:
  mov    -0xc8(%rbp),%rax
  mov    -0x180(%rbp),%edx
  movslq %edx,%rcx
  cqto
  idiv   %rcx
  mov    %rdx,%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0xc0(%rbp),%rax
  mov    %rax,%rcx
  lea    -0xc8(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x3387(%rip)        # 5070 <a.15>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L611
  mov    %rcx,(%rdx)
L611:
  test   %al,%al
  jne    L948
  jmp    L712
L948:
  mov    -0xc0(%rbp),%rax
  cmp    $0xfffffffffffffffd,%rax
  je     L849
  call   <abort@plt>
L849:
  mov    D294(%rip),%rax
  mov    %rax,-0xb8(%rbp)
  mov    -0xb8(%rbp),%rax
  cmp    $0xfffffffffffffffd,%rax
  je     L736
  call   <abort@plt>
L736:
  movl   $0x5,-0x17c(%rbp)
  mov    D312(%rip),%rax
  mov    %rax,-0xb0(%rbp)
L1487:
  mov    -0xb0(%rbp),%rax
  mov    -0x17c(%rbp),%edx
  movslq %edx,%rcx
  mov    $0x0,%edx
  div    %rcx
  mov    %rdx,%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa8(%rbp),%rcx
  lea    -0xb0(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x32f6(%rip)        # 5078 <a.14>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L1102
  mov    %rcx,(%rdx)
L1102:
  test   %al,%al
  jne    L188
  jmp    L1487
L188:
  mov    -0xa8(%rbp),%rax
  cmp    $0x3,%rax
  je     L1789
  call   <abort@plt>
L1789:
  mov    D312(%rip),%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa0(%rbp),%rax
  cmp    $0x3,%rax
  je     L1666
  call   <abort@plt>
L1666:
  movl   $0x5,-0x178(%rbp)
  mov    D1008(%rip),%rax
  mov    %rax,-0x98(%rbp)
L1221:
  mov    -0x98(%rbp),%rax
  mov    -0x178(%rbp),%edx
  movslq %edx,%rcx
  cqto
  idiv   %rcx
  mov    %rdx,%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x90(%rbp),%rax
  mov    %rax,%rcx
  lea    -0x98(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x3265(%rip)        # 5080 <a.13>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L1242
  mov    %rcx,(%rdx)
L1242:
  test   %al,%al
  jne    L412
  jmp    L1221
L412:
  mov    -0x90(%rbp),%rax
  cmp    $0xfffffffffffffffd,%rax
  je     L274
  call   <abort@plt>
L274:
  mov    D1008(%rip),%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x88(%rbp),%rax
  cmp    $0xfffffffffffffffd,%rax
  je     L1635
  call   <abort@plt>
L1635:
  movl   $0x5,-0x174(%rbp)
  mov    D779(%rip),%rax
  mov    %rax,-0x80(%rbp)
L808:
  mov    -0x80(%rbp),%rax
  mov    -0x174(%rbp),%edx
  movslq %edx,%rcx
  mov    $0x0,%edx
  div    %rcx
  mov    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x78(%rbp),%rcx
  lea    -0x80(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x31e3(%rip)        # 5088 <a.12>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L431
  mov    %rcx,(%rdx)
L431:
  test   %al,%al
  jne    L410
  jmp    L808
L410:
  mov    -0x78(%rbp),%rax
  cmp    $0x3,%rax
  je     L1617
  call   <abort@plt>
L1617:
  mov    D779(%rip),%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x70(%rbp),%rax
  cmp    $0x3,%rax
  je     L851
  call   <abort@plt>
L851:
  movl   $0xfffffffe,-0x170(%rbp)
  movzbl D819(%rip),%eax
  mov    %al,-0x230(%rbp)
L1248:
  movzbl -0x230(%rbp),%eax
  movzbl %al,%eax
  mov    -0x170(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  test   %eax,%eax
  setne  %al
  mov    %al,-0x22f(%rbp)
  movzbl -0x22f(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x230(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x315c(%rip)        # 5090 <a.11>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L345
  mov    %cl,(%rdx)
L345:
  test   %al,%al
  jne    L576
  jmp    L1248
L576:
  movzbl -0x22f(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L549
  call   <abort@plt>
L549:
  movzbl D819(%rip),%eax
  mov    %al,-0x22e(%rbp)
  movzbl -0x22e(%rbp),%eax
  xor    $0x1,%eax
  test   %al,%al
  je     L1239
  call   <abort@plt>
L1239:
  movl   $0xfffffffe,-0x16c(%rbp)
  movzbl D213(%rip),%eax
  mov    %al,-0x22d(%rbp)
L1330:
  movzbl -0x22d(%rbp),%eax
  movsbl %al,%eax
  mov    -0x16c(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x22c(%rbp)
  movzbl -0x22c(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x22d(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x30cb(%rip)        # 5091 <a.10>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1552
  mov    %cl,(%rdx)
L1552:
  test   %al,%al
  jne    L1173
  jmp    L1330
L1173:
  movzbl -0x22c(%rbp),%eax
  cmp    $0xff,%al
  je     L1527
  call   <abort@plt>
L1527:
  movzbl D213(%rip),%eax
  mov    %al,-0x22b(%rbp)
  movzbl -0x22b(%rbp),%eax
  cmp    $0xff,%al
  je     L1585
  call   <abort@plt>
L1585:
  movl   $0xfffffffe,-0x168(%rbp)
  movzbl D495(%rip),%eax
  mov    %al,-0x22a(%rbp)
L1587:
  movzbl -0x22a(%rbp),%eax
  movsbl %al,%eax
  mov    -0x168(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x229(%rbp)
  movzbl -0x229(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x22a(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x3040(%rip)        # 5092 <a.9>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L589
  mov    %cl,(%rdx)
L589:
  test   %al,%al
  jne    L377
  jmp    L1587
L377:
  movzbl -0x229(%rbp),%eax
  cmp    $0xff,%al
  je     L708
  call   <abort@plt>
L708:
  movzbl D495(%rip),%eax
  mov    %al,-0x228(%rbp)
  movzbl -0x228(%rbp),%eax
  cmp    $0xff,%al
  je     L1062
  call   <abort@plt>
L1062:
  movl   $0xfffffffe,-0x164(%rbp)
  movzbl D646(%rip),%eax
  mov    %al,-0x227(%rbp)
L279:
  movzbl -0x227(%rbp),%eax
  movzbl %al,%eax
  mov    -0x164(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %al,-0x226(%rbp)
  movzbl -0x226(%rbp),%eax
  movzbl %al,%ecx
  lea    -0x227(%rbp),%rdx
  movzbl (%rdx),%eax
  lock cmpxchg %cl,0x2fb5(%rip)        # 5093 <a.8>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1604
  mov    %cl,(%rdx)
L1604:
  test   %al,%al
  jne    L1322
  jmp    L279
L1322:
  movzbl -0x226(%rbp),%eax
  cmp    $0x1,%al
  je     L1450
  call   <abort@plt>
L1450:
  movzbl D646(%rip),%eax
  mov    %al,-0x225(%rbp)
  movzbl -0x225(%rbp),%eax
  cmp    $0x1,%al
  je     L329
  call   <abort@plt>
L329:
  movl   $0xfffffffe,-0x160(%rbp)
  movzwl D334(%rip),%eax
  mov    %ax,-0x20c(%rbp)
L184:
  movzwl -0x20c(%rbp),%eax
  cwtl
  mov    -0x160(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %ax,-0x20a(%rbp)
  movzwl -0x20a(%rbp),%eax
  movzwl %ax,%ecx
  lea    -0x20c(%rbp),%rdx
  movzwl (%rdx),%eax
  lock cmpxchg %cx,0x2f29(%rip)        # 5094 <a.7>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L883
  mov    %cx,(%rdx)
L883:
  test   %al,%al
  jne    L177
  jmp    L184
L177:
  movzwl -0x20a(%rbp),%eax
  cmp    $0xffff,%ax
  je     L1074
  call   <abort@plt>
L1074:
  movzwl D334(%rip),%eax
  mov    %ax,-0x208(%rbp)
  movzwl -0x208(%rbp),%eax
  cmp    $0xffff,%ax
  je     L227
  call   <abort@plt>
L227:
  movl   $0xfffffffe,-0x15c(%rbp)
  movzwl D58(%rip),%eax
  mov    %ax,-0x206(%rbp)
L742:
  movzwl -0x206(%rbp),%eax
  movzwl %ax,%eax
  mov    -0x15c(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %ax,-0x204(%rbp)
  movzwl -0x204(%rbp),%eax
  movzwl %ax,%ecx
  lea    -0x206(%rbp),%rdx
  movzwl (%rdx),%eax
  lock cmpxchg %cx,0x2e96(%rip)        # 5096 <a.6>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L879
  mov    %cx,(%rdx)
L879:
  test   %al,%al
  jne    L1337
  jmp    L742
L1337:
  movzwl -0x204(%rbp),%eax
  cmp    $0x1,%ax
  je     L247
  call   <abort@plt>
L247:
  movzwl D58(%rip),%eax
  mov    %ax,-0x202(%rbp)
  movzwl -0x202(%rbp),%eax
  cmp    $0x1,%ax
  je     L301
  call   <abort@plt>
L301:
  movl   $0xfffffffe,-0x158(%rbp)
  mov    D85(%rip),%eax
  mov    %eax,-0x154(%rbp)
L1614:
  mov    -0x154(%rbp),%eax
  mov    -0x158(%rbp),%ecx
  cltd
  idiv   %ecx
  mov    %edx,%eax
  mov    %eax,-0x150(%rbp)
  mov    -0x150(%rbp),%eax
  mov    %eax,%ecx
  lea    -0x154(%rbp),%rdx
  mov    (%rdx),%eax
  lock cmpxchg %ecx,0x2e0e(%rip)        # 5098 <a.5>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L842
  mov    %ecx,(%rdx)
L842:
  test   %al,%al
  jne    L89
  jmp    L1614
L89:
  mov    -0x150(%rbp),%eax
  cmp    $0xffffffff,%eax
  je     L1566
  call   <abort@plt>
L1566:
  mov    D85(%rip),%eax
  mov    %eax,-0x14c(%rbp)
  mov    -0x14c(%rbp),%eax
  cmp    $0xffffffff,%eax
  je     L667
  call   <abort@plt>
L667:
  movl   $0xfffffffe,-0x148(%rbp)
  mov    D662(%rip),%eax
  mov    %eax,-0x144(%rbp)
L1662:
  mov    -0x144(%rbp),%eax
  mov    -0x148(%rbp),%edx
  mov    %edx,%ecx
  mov    $0x0,%edx
  div    %ecx
  mov    %edx,%eax
  mov    %eax,-0x140(%rbp)
  mov    -0x140(%rbp),%ecx
  lea    -0x144(%rbp),%rdx
  mov    (%rdx),%eax
  lock cmpxchg %ecx,0x2d8b(%rip)        # 509c <a.4>
  mov    %eax,%ecx
  sete   %al
  test   %al,%al
  jne    L1670
  mov    %ecx,(%rdx)
L1670:
  test   %al,%al
  jne    L1016
  jmp    L1662
L1016:
  mov    -0x140(%rbp),%eax
  cmp    $0xfffffff9,%eax
  je     L108
  call   <abort@plt>
L108:
  mov    D662(%rip),%eax
  mov    %eax,-0x13c(%rbp)
  mov    -0x13c(%rbp),%eax
  cmp    $0xfffffff9,%eax
  je     L387
  call   <abort@plt>
L387:
  movl   $0xfffffffe,-0x138(%rbp)
  mov    D493(%rip),%rax
  mov    %rax,-0x68(%rbp)
L1223:
  mov    -0x68(%rbp),%rax
  mov    -0x138(%rbp),%edx
  movslq %edx,%rcx
  cqto
  idiv   %rcx
  mov    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x60(%rbp),%rax
  mov    %rax,%rcx
  lea    -0x68(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x2d0d(%rip)        # 50a0 <a.3>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L1219
  mov    %rcx,(%rdx)
L1219:
  test   %al,%al
  jne    L809
  jmp    L1223
L809:
  mov    -0x60(%rbp),%rax
  cmp    $0xffffffffffffffff,%rax
  je     L837
  call   <abort@plt>
L837:
  mov    D493(%rip),%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x58(%rbp),%rax
  cmp    $0xffffffffffffffff,%rax
  je     L882
  call   <abort@plt>
L882:
  movl   $0xfffffffe,-0x134(%rbp)
  mov    D731(%rip),%rax
  mov    %rax,-0x50(%rbp)
L467:
  mov    -0x50(%rbp),%rax
  mov    -0x134(%rbp),%edx
  movslq %edx,%rcx
  mov    $0x0,%edx
  div    %rcx
  mov    %rdx,%rax
  mov    %rax,-0x48(%rbp)
  mov    -0x48(%rbp),%rcx
  lea    -0x50(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x2c94(%rip)        # 50a8 <a.2>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L628
  mov    %rcx,(%rdx)
L628:
  test   %al,%al
  jne    L1505
  jmp    L467
L1505:
  mov    -0x48(%rbp),%rax
  cmp    $0xfffffffffffffff9,%rax
  je     L968
  call   <abort@plt>
L968:
  mov    D731(%rip),%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x40(%rbp),%rax
  cmp    $0xfffffffffffffff9,%rax
  je     L306
  call   <abort@plt>
L306:
  movl   $0xfffffffe,-0x130(%rbp)
  mov    D273(%rip),%rax
  mov    %rax,-0x38(%rbp)
L538:
  mov    -0x38(%rbp),%rax
  mov    -0x130(%rbp),%edx
  movslq %edx,%rcx
  cqto
  idiv   %rcx
  mov    %rdx,%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x30(%rbp),%rax
  mov    %rax,%rcx
  lea    -0x38(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x2c1b(%rip)        # 50b0 <a.1>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L1429
  mov    %rcx,(%rdx)
L1429:
  test   %al,%al
  jne    L1598
  jmp    L538
L1598:
  mov    -0x30(%rbp),%rax
  cmp    $0xffffffffffffffff,%rax
  je     L1724
  call   <abort@plt>
L1724:
  mov    D273(%rip),%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x28(%rbp),%rax
  cmp    $0xffffffffffffffff,%rax
  je     L1032
  call   <abort@plt>
L1032:
  movl   $0xfffffffe,-0x12c(%rbp)
  mov    D364(%rip),%rax
  mov    %rax,-0x20(%rbp)
L643:
  mov    -0x20(%rbp),%rax
  mov    -0x12c(%rbp),%edx
  movslq %edx,%rcx
  mov    $0x0,%edx
  div    %rcx
  mov    %rdx,%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x18(%rbp),%rcx
  lea    -0x20(%rbp),%rdx
  mov    (%rdx),%rax
  lock cmpxchg %rcx,0x2ba2(%rip)        # 50b8 <a.0>
  mov    %rax,%rcx
  sete   %al
  test   %al,%al
  jne    L80
  mov    %rcx,(%rdx)
L80:
  test   %al,%al
  jne    L478
  jmp    L643
L478:
  mov    -0x18(%rbp),%rax
  cmp    $0xfffffffffffffff9,%rax
  je     L316
  call   <abort@plt>
L316:
  mov    D364(%rip),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0xfffffffffffffff9,%rax
  je     L1737
  call   <abort@plt>
L1737:
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L1571
  call   <__stack_chk_fail@plt>
L1571:
  leave
  ret
```

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);
}
```