user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<state_machine>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x18(%rbp)
  movq   $0x0,-0x10(%rbp)
L1775:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L805
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L265
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L805:
  addq   $0x1,-0x18(%rbp)
L1698:
  mov    -0x10(%rbp),%rax
  cmp    $0x43,%al
  jbe    L936
  jmp    L1775
L936:
  mov    -0x10(%rbp),%rax
  cmp    $0x21,%al
  ja     L2118
  jmp    L1775
L2118:
  mov    -0x10(%rbp),%rax
  cmp    $0x2f,%al
  je     L747
  mov    -0x10(%rbp),%rax
  cmp    $0x27,%al
  jne    L2632
  jmp    L2202
L2632:
  mov    -0x10(%rbp),%rax
  cmp    $0x22,%al
  jne    L2610
  jmp    L1799
L2610:
  mov    -0x10(%rbp),%rax
  cmp    $0x23,%al
  jne    L206
  jmp    L2087
L206:
  mov    -0x10(%rbp),%rax
  cmp    $0x43,%al
  je     L298
  jmp    L1775
L1841:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1504
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L922
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1504:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0xa,%al
  jne    L2598
  jmp    L1775
L2598:
  mov    -0x10(%rbp),%rax
  cmp    $0x5c,%al
  je     L903
  jmp    L1841
L903:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L120
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1447
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L120:
  addq   $0x1,-0x18(%rbp)
  jmp    L1841
L747:
  nop
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2510
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1236
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2510:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x2f,%al
  jne    L1830
  jmp    L1841
L1830:
  mov    -0x10(%rbp),%rax
  cmp    $0x2a,%al
  je     L840
  jmp    L1698
L840:
  nop
L2310:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L646
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1671
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L646:
  addq   $0x1,-0x18(%rbp)
L2177:
  mov    -0x10(%rbp),%rax
  cmp    $0x2a,%al
  je     L2543
  jmp    L2310
L2543:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2044
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1601
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2044:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x2f,%al
  je     L1775
  jmp    L2177
L2202:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1721
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L583
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1721:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x27,%al
  jne    L2152
  jmp    L1775
L2152:
  mov    -0x10(%rbp),%rax
  cmp    $0x5c,%al
  je     L1466
  jmp    L2202
L1466:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1111
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L786
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1111:
  addq   $0x1,-0x18(%rbp)
  jmp    L2202
L1799:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1338
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1209
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1338:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x22,%al
  jne    L2371
  jmp    L1775
L2371:
  mov    -0x10(%rbp),%rax
  cmp    $0x5c,%al
  je     L1548
  jmp    L1799
L1548:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L368
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1969
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L368:
  addq   $0x1,-0x18(%rbp)
  jmp    L1799
L2087:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1311
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L828
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1311:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x20,%al
  jne    L567
  jmp    L2087
L567:
  mov    -0x10(%rbp),%rax
  cmp    $0x9,%al
  jne    L1715
  jmp    L2087
L1715:
  mov    -0x10(%rbp),%rax
  cmp    $0x69,%al
  je     L2492
  mov    -0x10(%rbp),%rax
  cmp    $0x64,%al
  je     L941
  mov    -0x10(%rbp),%rax
  cmp    $0x75,%al
  je     L1381
  jmp    L1698
L2492:
  nop
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1888
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L421
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1888:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x6e,%al
  je     L43
  jmp    L1698
L43:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L467
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x63,%al
  je     L1820
  jmp    L1698
L1820:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L962
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L711
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L962:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x6c,%al
  je     L2362
  jmp    L1698
L2362:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1391
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1681
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1391:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x75,%al
  je     L887
  jmp    L1698
L887:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1118
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L10
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1118:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x64,%al
  je     L577
  jmp    L1698
L577:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1001
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2348
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1001:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x65,%al
  je     L1421
  jmp    L1698
L1421:
  nop
L1910:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1188
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2341
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1188:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x20,%al
  jne    L563
  jmp    L1910
L563:
  mov    -0x10(%rbp),%rax
  cmp    $0x9,%al
  jne    L1194
  jmp    L1910
L1194:
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x22,%al
  jne    L532
  jmp    L732
L532:
  mov    -0x10(%rbp),%rax
  cmp    $0x3c,%al
  jne    L1698
  jmp    L658
L732:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2212
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2556
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2212:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0xa,%al
  jne    L71
  jmp    L1775
L71:
  mov    -0x10(%rbp),%rax
  cmp    $0x22,%al
  je     L1735
  jmp    L732
L1735:
  mov    -0x18(%rbp),%rax
  sub    -0x8(%rbp),%rax
  sub    $0x1,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  mov    $0x0,%edi
  call   <handle_include@plt>
  jmp    L1775
L658:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1936
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L565
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1936:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0xa,%al
  jne    L562
  jmp    L1775
L562:
  mov    -0x10(%rbp),%rax
  cmp    $0x3e,%al
  je     L290
  jmp    L658
L290:
  mov    -0x18(%rbp),%rax
  sub    -0x8(%rbp),%rax
  sub    $0x1,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  mov    $0x1,%edi
  call   <handle_include@plt>
  jmp    L1775
L941:
  nop
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1967
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1095
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1967:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x65,%al
  je     L1624
  jmp    L1698
L1624:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2026
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1390
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2026:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x66,%al
  je     L58
  jmp    L1698
L58:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2031
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L203
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2031:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x69,%al
  je     L152
  jmp    L1698
L152:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L173
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L863
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L173:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x6e,%al
  je     L192
  jmp    L1698
L192:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2507
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L655
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2507:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x65,%al
  je     L2479
  jmp    L1698
L1381:
  nop
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2121
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1714
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2121:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x6e,%al
  je     L731
  jmp    L1698
L731:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L202
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1429
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L202:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x64,%al
  je     L1222
  jmp    L1698
L1222:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L822
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2398
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L822:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x65,%al
  je     L2072
  jmp    L1698
L2072:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2175
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1510
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2175:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x66,%al
  je     L2567
  jmp    L1698
L2479:
  nop
  jmp    L93
L2567:
  nop
L93:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2485
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L318
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2485:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x20,%al
  jne    L642
  jmp    L93
L642:
  mov    -0x10(%rbp),%rax
  cmp    $0x9,%al
  jne    L410
  jmp    L93
L410:
  mov    -0x10(%rbp),%rax
  cmp    $0x43,%al
  je     L1351
  jmp    L1698
L1351:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1218
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1019
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1218:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x4f,%al
  je     L601
  jmp    L1698
L601:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L893
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1674
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L893:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x4e,%al
  je     L2001
  jmp    L1698
L2001:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L536
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L670
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L536:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x46,%al
  je     L1322
  jmp    L1698
L1322:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1943
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2036
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1943:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x49,%al
  je     L702
  jmp    L1698
L702:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1253
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2216
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1253:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x47,%al
  je     L1605
  jmp    L1698
L1605:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L881
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1126
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L881:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x5f,%al
  je     L538
  jmp    L1698
L538:
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
L70:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L789
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2148
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L789:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  movzbl %al,%eax
  mov    %eax,%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L70
  mov    -0x10(%rbp),%rax
  cmp    $0x5f,%al
  jne    L1698
  jmp    L70
L298:
  nop
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  cmp    %rax,-0x18(%rbp)
  jb     L2503
  mov    -0x18(%rbp),%rax
  sub    $0x2,%rax
  movzbl (%rax),%eax
  movzbl %al,%eax
  mov    %eax,%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L1775
  mov    -0x18(%rbp),%rax
  sub    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x5f,%al
  jne    L2503
  jmp    L1775
L2503:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L544
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L629
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L544:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x4f,%al
  je     L2637
  jmp    L1698
L2637:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2513
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L641
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2513:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x4e,%al
  je     L1652
  jmp    L1698
L1652:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2096
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2646
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2096:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x46,%al
  je     L2343
  jmp    L1698
L2343:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L502
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2553
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L502:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x49,%al
  je     L1627
  jmp    L1698
L1627:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1962
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2413
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1962:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x47,%al
  je     L529
  jmp    L1698
L529:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1261
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L347
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1261:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  cmp    $0x5f,%al
  je     L2097
  jmp    L1698
L2097:
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
L2120:
  shrq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L351
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1286
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L351:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  movzbl %al,%eax
  mov    %eax,%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L2120
  mov    -0x10(%rbp),%rax
  cmp    $0x5f,%al
  jne    L1377
  jmp    L2120
L1377:
  mov    -0x18(%rbp),%rax
  sub    -0x8(%rbp),%rax
  sub    $0x1,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%rax
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <use_config@plt>
  jmp    L1698
L265:
  nop
  jmp    L119
L922:
  nop
  jmp    L119
L1447:
  nop
  jmp    L119
L1236:
  nop
  jmp    L119
L1671:
  nop
  jmp    L119
L1601:
  nop
  jmp    L119
L583:
  nop
  jmp    L119
L786:
  nop
  jmp    L119
L1209:
  nop
  jmp    L119
L1969:
  nop
  jmp    L119
L828:
  nop
  jmp    L119
L421:
  nop
  jmp    L119
L467:
  nop
  jmp    L119
L711:
  nop
  jmp    L119
L1681:
  nop
  jmp    L119
L10:
  nop
  jmp    L119
L2348:
  nop
  jmp    L119
L2341:
  nop
  jmp    L119
L2556:
  nop
  jmp    L119
L565:
  nop
  jmp    L119
L1095:
  nop
  jmp    L119
L1390:
  nop
  jmp    L119
L203:
  nop
  jmp    L119
L863:
  nop
  jmp    L119
L655:
  nop
  jmp    L119
L1714:
  nop
  jmp    L119
L1429:
  nop
  jmp    L119
L2398:
  nop
  jmp    L119
L1510:
  nop
  jmp    L119
L318:
  nop
  jmp    L119
L1019:
  nop
  jmp    L119
L1674:
  nop
  jmp    L119
L670:
  nop
  jmp    L119
L2036:
  nop
  jmp    L119
L2216:
  nop
  jmp    L119
L1126:
  nop
  jmp    L119
L2148:
  nop
  jmp    L119
L629:
  nop
  jmp    L119
L641:
  nop
  jmp    L119
L2646:
  nop
  jmp    L119
L2553:
  nop
  jmp    L119
L2413:
  nop
  jmp    L119
L347:
  nop
  jmp    L119
L1286:
  nop
L119:
  nop
  leave
  ret
```

assistant: ```c
void state_machine(const char *map, const char *end) {
  const char *next = map;
  const char *map_dot;
  unsigned long __buf = 0;
  for (;;) {
  start : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
  __start:
    if (((unsigned char)__buf) > ((('/') > ((('\'') > ((('"') > ((('#') > ('C') ? ('#') : ('C'))) ? ('"') : ((('#') > ('C') ? ('#') : ('C'))))) ? ('\'') : ((('"') > ((('#') > ('C') ? ('#') : ('C'))) ? ('"') : ((('#') > ('C') ? ('#') : ('C'))))))) ? ('/') : ((('\'') > ((('"') > ((('#') > ('C') ? ('#') : ('C'))) ? ('"') : ((('#') > ('C') ? ('#') : ('C'))))) ? ('\'') : ((('"') > ((('#') > ('C') ? ('#') : ('C'))) ? ('"') : ((('#') > ('C') ? ('#') : ('C'))))))))))
      goto start;
    if (((unsigned char)__buf) < ((('/') < ((('\'') < ((('"') < ((('#') < ('C') ? ('#') : ('C'))) ? ('"') : ((('#') < ('C') ? ('#') : ('C'))))) ? ('\'') : ((('"') < ((('#') < ('C') ? ('#') : ('C'))) ? ('"') : ((('#') < ('C') ? ('#') : ('C'))))))) ? ('/') : ((('\'') < ((('"') < ((('#') < ('C') ? ('#') : ('C'))) ? ('"') : ((('#') < ('C') ? ('#') : ('C'))))) ? ('\'') : ((('"') < ((('#') < ('C') ? ('#') : ('C'))) ? ('"') : ((('#') < ('C') ? ('#') : ('C'))))))))))
      goto start;
    if (((unsigned char)__buf) == '/')
      goto slash;
    if (((unsigned char)__buf) == '\'')
      goto squote;
    if (((unsigned char)__buf) == '"')
      goto dquote;
    if (((unsigned char)__buf) == '#')
      goto pound;
    if (((unsigned char)__buf) == 'C')
      goto cee;
    goto start;
  slash_slash : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == '\n')
      goto start;
    if (((unsigned char)__buf) != '\\')
      goto slash_slash;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    goto slash_slash;
  slash : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == '/')
      goto slash_slash;
    if (((unsigned char)__buf) != '*')
      goto __start;
  slash_star_dot_star : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
  __slash_star_dot_star:
    if (((unsigned char)__buf) != '*')
      goto slash_star_dot_star;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != '/')
      goto __slash_star_dot_star;
    goto start;
  squote : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == '\'')
      goto start;
    if (((unsigned char)__buf) != '\\')
      goto squote;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    goto squote;
  dquote : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == '"')
      goto start;
    if (((unsigned char)__buf) != '\\')
      goto dquote;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    goto dquote;
  pound : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == ' ')
      goto pound;
    if (((unsigned char)__buf) == '\t')
      goto pound;
    if (((unsigned char)__buf) == 'i')
      goto pound_i;
    if (((unsigned char)__buf) == 'd')
      goto pound_d;
    if (((unsigned char)__buf) == 'u')
      goto pound_u;
    goto __start;
  pound_i : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) != 'n')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'c')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'l')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'u')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'd')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'e')
      goto __start;
    goto pound_include;
  pound_include : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == ' ')
      goto pound_include;
    if (((unsigned char)__buf) == '\t')
      goto pound_include;
    map_dot = next;
    if (((unsigned char)__buf) == '"')
      goto pound_include_dquote;
    if (((unsigned char)__buf) == '<')
      goto pound_include_langle;
    goto __start;
  pound_include_dquote : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == '\n')
      goto start;
    if (((unsigned char)__buf) != '"')
      goto pound_include_dquote;
    handle_include(0, map_dot, next - map_dot - 1);
    goto start;
  pound_include_langle : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == '\n')
      goto start;
    if (((unsigned char)__buf) != '>')
      goto pound_include_langle;
    handle_include(1, map_dot, next - map_dot - 1);
    goto start;
  pound_d : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) != 'e')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'f')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'i')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'n')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'e')
      goto __start;
    goto pound_define_undef;
  pound_u : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) != 'n')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'd')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'e')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'f')
      goto __start;
    goto pound_define_undef;
  pound_define_undef : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (((unsigned char)__buf) == ' ')
      goto pound_define_undef;
    if (((unsigned char)__buf) == '\t')
      goto pound_define_undef;
    if (((unsigned char)__buf) != 'C')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'O')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'N')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'F')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'I')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'G')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != '_')
      goto __start;
    map_dot = next;
  pound_define_undef_CONFIG_word : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (isalnum(((unsigned char)__buf)) || ((unsigned char)__buf) == '_')
      goto pound_define_undef_CONFIG_word;
    goto __start;
  cee:
    if (next >= map + 2 && (isalnum((int)next[-2]) || next[-2] == '_'))
      goto start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'O')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'N')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'F')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'I')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != 'G')
      goto __start;
    {
      (__buf >>= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if (((unsigned char)__buf) != '_')
      goto __start;
    map_dot = next;
  cee_CONFIG_word : {
    (__buf >>= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (isalnum(((unsigned char)__buf)) || ((unsigned char)__buf) == '_')
      goto cee_CONFIG_word;
    use_config(map_dot, next - map_dot - 1);
    goto __start;
  }
}
```