user: Demonstrate the C code that generates the assembly output below:

```asm
<_scan_link_url>:
  endbr64
  mov    %rdi,%rdx
  movzbl (%rdi),%eax
  cmp    $0x28,%al
  ja     L1872
  cmp    $0x1f,%al
  ja     L1552
  mov    $0x0,%ecx
  cmp    $0xa,%al
  jne    L911
  mov    %rdi,%rax
L2015:
  movzbl 0x1(%rax),%esi
  lea    0x1(%rax),%rax
  jmp    L555
L1552:
  cmp    $0x20,%al
  jbe    L1948
  cmp    $0x27,%al
  jbe    L1377
  movzbl 0x1(%rdi),%ecx
  cmp    $0x28,%cl
  je     L970
  cmp    $0x20,%cl
  jbe    L970
  lea    0x1(%rdi),%rsi
  mov    %rsi,%r10
  mov    $0x1,%r9d
  jmp    L848
L1948:
  lea    0x1(%rdi),%rax
  movzbl 0x1(%rdi),%esi
L555:
  movzbl %sil,%ecx
  lea    D29(%rip),%rdi
  testb  $0x8,(%rdi,%rcx,1)
  jne    L2015
  cmp    $0x29,%sil
  ja     L1640
  cmp    $0x20,%sil
  jbe    L2250
  cmp    $0x27,%sil
  jbe    L2145
  cmp    $0x28,%sil
  ja     L2250
  mov    %rax,%r10
  mov    $0x0,%r9d
  jmp    L924
L1872:
  cmp    $0x3c,%al
  ja     L470
  mov    $0x0,%ecx
  cmp    $0x29,%al
  jbe    L911
  cmp    $0x3b,%al
  jbe    L1377
  lea    0x1(%rdi),%rax
  movzbl 0x1(%rdi),%ecx
  movzbl %cl,%esi
  lea    D29(%rip),%rdi
  testb  $0x20,(%rdi,%rsi,1)
  jne    L626
  cmp    $0x27,%cl
  ja     L701
  cmp    $0xa,%cl
  je     L2250
  test   %cl,%cl
  je     L2250
  mov    %rax,%r10
  mov    $0x0,%r9d
L1634:
  lea    D29(%rip),%r8
  mov    $0x2,%r11d
L347:
  add    $0x1,%rax
  movzbl (%rax),%ecx
  movzbl %cl,%esi
  testb  $0x40,(%r8,%rsi,1)
  jne    L347
  cmp    $0x3d,%cl
  jbe    L2308
  cmp    $0x3e,%cl
  jbe    L248
L120:
  mov    %rax,%rcx
L2110:
  lea    0x1(%rcx),%rax
  movzbl 0x1(%rcx),%esi
  movzbl %sil,%edi
  cmpb   $0x0,(%r8,%rdi,1)
  js     L1213
  cmp    $0xa,%sil
  jbe    L587
  cmp    $0x3e,%sil
  jne    L347
  lea    0x2(%rcx),%rax
  movzbl 0x2(%rcx),%ecx
  movzbl %cl,%esi
  testb  $0x40,(%r8,%rsi,1)
  jne    L1976
  cmp    $0x3d,%cl
  jbe    L2138
  mov    %r11d,%r9d
  cmp    $0x3e,%cl
  jbe    L248
  mov    %rax,%r10
  jmp    L120
L470:
  cmp    $0x5c,%al
  je     L2289
L1377:
  lea    0x1(%rdx),%rax
  movzbl 0x1(%rdx),%ecx
L1589:
  cmp    $0x28,%cl
  ja     L1975
  cmp    $0x20,%cl
  jbe    L2250
  mov    $0x0,%r9d
L181:
  mov    %rax,%r10
  cmp    $0x27,%cl
  ja     L924
L2145:
  movzbl 0x1(%rax),%ecx
  lea    0x1(%rax),%rax
  jmp    L1589
L2289:
  lea    0x1(%rdi),%rax
  movzbl 0x1(%rdi),%esi
  cmp    $0x40,%sil
  jbe    L2042
  cmp    $0x60,%sil
  ja     L893
  mov    $0x0,%ecx
  cmp    $0x5a,%sil
  jbe    L911
  jmp    L2145
L1640:
  cmp    $0x3c,%sil
  ja     L1580
  cmp    $0x3b,%sil
  jbe    L2145
L626:
  lea    D29(%rip),%rdi
L1920:
  add    $0x1,%rax
  movzbl (%rax),%ecx
  movzbl %cl,%esi
  testb  $0x20,(%rdi,%rsi,1)
  jne    L1920
  cmp    $0x27,%cl
  ja     L973
  cmp    $0xa,%cl
  je     L2250
  test   %cl,%cl
  je     L2250
  mov    %rax,%r10
  mov    $0x0,%r9d
  jmp    L1634
L1580:
  cmp    $0x5c,%sil
  jne    L2145
  mov    $0x0,%r9d
  jmp    L154
L701:
  cmp    $0x29,%cl
  ja     L419
  cmp    $0x28,%cl
  jbe    L817
  mov    %rax,%r10
  mov    $0x0,%r9d
  jmp    L1634
L419:
  cmp    $0x3d,%cl
  jbe    L2145
  cmp    $0x3e,%cl
  jbe    L983
L1664:
  mov    $0x0,%r9d
  lea    D29(%rip),%rdi
  mov    $0x2,%r8d
  mov    $0x0,%r11d
  jmp    L1733
L2042:
  mov    $0x0,%ecx
  cmp    $0x20,%sil
  jbe    L911
  sub    $0x30,%esi
  cmp    $0x9,%sil
  ja     L2145
  jmp    L911
L893:
  sub    $0x7b,%esi
  mov    $0x0,%ecx
  cmp    $0x3,%sil
  ja     L911
  jmp    L2145
L408:
  mov    %rsi,%rax
L924:
  lea    0x1(%rax),%rsi
  movzbl 0x1(%rax),%ecx
L848:
  movzbl %cl,%eax
  lea    D29(%rip),%rdi
  testb  $0x10,(%rdi,%rax,1)
  jne    L408
  cmp    $0x28,%cl
  jbe    L788
  cmp    $0x29,%cl
  jbe    L1116
  lea    0x1(%rsi),%rax
  movzbl 0x1(%rsi),%ecx
  cmp    $0x40,%cl
  jbe    L453
  cmp    $0x60,%cl
  ja     L39
  cmp    $0x5a,%cl
  ja     L924
  mov    %r10,%rax
  jmp    L336
L635:
  mov    %rsi,%rax
  jmp    L924
L1754:
  mov    %rsi,%r10
  mov    %rsi,%rax
  mov    $0x2,%r9d
  jmp    L924
L788:
  mov    %r10,%rax
L336:
  cmp    $0x1,%r9d
  ja     L2138
  mov    $0x0,%ecx
  test   %r9d,%r9d
  jne    L911
L2250:
  mov    %eax,%ecx
  sub    %edx,%ecx
L911:
  mov    %ecx,%eax
  ret
L1870:
  mov    %r10,%rax
  jmp    L336
L2308:
  mov    %r10,%rax
  jmp    L336
L453:
  cmp    $0x20,%cl
  jbe    L1870
  sub    $0x30,%ecx
  cmp    $0x9,%cl
  ja     L924
  mov    %r10,%rax
  jmp    L336
L39:
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  jbe    L924
  mov    %r10,%rax
  jmp    L336
L1116:
  mov    %rsi,%rax
  jmp    L2145
L1975:
  mov    $0x0,%r9d
L652:
  cmp    $0x29,%cl
  jbe    L2250
  cmp    $0x5c,%cl
  jne    L2145
L154:
  lea    0x1(%rax),%rsi
  movzbl 0x1(%rax),%ecx
  cmp    $0x40,%cl
  ja     L1348
  cmp    $0x20,%cl
  jbe    L336
  sub    $0x30,%ecx
  cmp    $0x9,%cl
  jbe    L336
  mov    %rsi,%rax
  jmp    L2145
L1348:
  cmp    $0x60,%cl
  ja     L745
  cmp    $0x5a,%cl
  jbe    L336
  mov    %rsi,%rax
  jmp    L2145
L745:
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  ja     L336
  mov    %rsi,%rax
  jmp    L2145
L2049:
  mov    %r10,%rax
  jmp    L626
L682:
  mov    %r10,%rax
  jmp    L626
L1674:
  mov    %r10,%rax
  jmp    L626
L484:
  mov    %r10,%rax
  jmp    L626
L2024:
  mov    %r10,%rax
  jmp    L626
L43:
  mov    %rsi,%rax
  jmp    L626
L1556:
  mov    %r10,%rax
  jmp    L626
L2269:
  mov    %r10,%rax
  jmp    L626
L2171:
  mov    %rax,%rcx
  mov    %r10,%rax
  mov    %rcx,%r10
  jmp    L1634
L2085:
  mov    %rax,%rcx
  mov    %r10,%rax
  mov    %rcx,%r10
  jmp    L1634
L372:
  mov    %rsi,%rax
  jmp    L1634
L352:
  mov    %rsi,%r10
  mov    %rsi,%rax
  mov    $0x2,%r9d
  jmp    L1634
L1389:
  mov    %rsi,%r10
  mov    %rsi,%rax
  mov    $0x2,%r9d
  jmp    L1634
L321:
  mov    %rsi,%r10
  mov    %rsi,%rax
  mov    $0x2,%r9d
  jmp    L1634
L673:
  mov    %r10,%rax
  mov    $0x0,%r9d
  jmp    L1634
L1846:
  mov    %r10,%rax
  mov    $0x0,%r9d
  jmp    L1634
L44:
  mov    %r10,%rax
  mov    $0x0,%r9d
  jmp    L1634
L973:
  cmp    $0x29,%cl
  ja     L1659
  cmp    $0x28,%cl
  jbe    L1868
  mov    %rax,%r10
  mov    $0x0,%r9d
  jmp    L1634
L1659:
  cmp    $0x3d,%cl
  jbe    L2145
  mov    %rax,%rsi
  cmp    $0x3e,%cl
  ja     L1664
L1508:
  lea    0x1(%rsi),%rax
  movzbl 0x1(%rsi),%ecx
  cmp    $0x29,%cl
  je     L2138
  cmp    $0x20,%cl
  jbe    L2138
  mov    $0x2,%r9d
  cmp    $0x28,%cl
  jbe    L181
  jmp    L652
L983:
  mov    %rax,%rsi
  jmp    L1508
L1354:
  mov    %rax,%rsi
  jmp    L1508
L1399:
  cmp    $0xa,%cl
  je     L336
  test   %cl,%cl
  je     L336
  mov    %rax,%rcx
  mov    %r10,%rax
  mov    %rcx,%r10
  jmp    L1634
L1182:
  cmp    $0x5c,%cl
  ja     L2118
  cmp    $0x40,%cl
  jbe    L682
  cmp    $0x5a,%cl
  jbe    L2085
  cmp    $0x5b,%cl
  jbe    L1674
  lea    0x2(%rax),%r10
  movzbl 0x2(%rax),%eax
  cmp    $0x28,%al
  jbe    L2057
  cmp    $0x3e,%al
  ja     L305
  cmp    $0x29,%al
  jbe    L44
  cmp    $0x3d,%al
  jbe    L2269
L193:
  lea    0x1(%r10),%rax
  movzbl 0x1(%r10),%ecx
  movzbl %cl,%esi
  testb  $0x20,(%rdi,%rsi,1)
  jne    L626
  cmp    $0x27,%cl
  jbe    L1446
  cmp    $0x29,%cl
  jbe    L386
  cmp    $0x3d,%cl
  jbe    L2145
  cmp    $0x3e,%cl
  jbe    L1354
  mov    %r8d,%r9d
L1733:
  lea    0x1(%rax),%r10
  movzbl 0x1(%rax),%ecx
  cmp    $0x3e,%cl
  ja     L1182
  cmp    $0x20,%cl
  jbe    L1399
  cmp    $0x2f,%cl
  jbe    L2049
  cmp    $0x39,%cl
  jbe    L2171
  cmp    $0x3d,%cl
  ja     L193
  mov    %r10,%rax
  jmp    L626
L2118:
  cmp    $0x60,%cl
  jbe    L484
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  jbe    L2024
  mov    %rax,%rcx
  mov    %r10,%rax
  mov    %rcx,%r10
  jmp    L1634
L817:
  mov    $0x0,%r9d
L90:
  mov    %rax,%r10
  mov    $0x2,%edi
  jmp    L275
L1868:
  mov    $0x0,%r9d
  jmp    L90
L1406:
  mov    $0x2,%r9d
  jmp    L90
L1773:
  mov    %rax,%rsi
  jmp    L939
L171:
  mov    %rax,%rsi
  jmp    L939
L1423:
  mov    %rax,%rsi
  jmp    L939
L1972:
  mov    %rax,%rsi
  jmp    L939
L499:
  mov    %rax,%rsi
  jmp    L939
L2169:
  lea    -0x1(%rax),%ecx
  mov    %r10,%rax
  cmp    $0x8,%cl
  ja     L336
  mov    %rsi,%rax
  jmp    L1634
L229:
  cmp    $0x3d,%al
  ja     L805
  cmp    $0x3c,%al
  je     L635
L939:
  mov    %rsi,%rax
L275:
  lea    0x1(%rax),%rsi
  movzbl 0x1(%rax),%eax
  cmp    $0x29,%al
  ja     L229
  cmp    $0xa,%al
  jbe    L2169
  cmp    $0x20,%al
  jbe    L372
  cmp    $0x27,%al
  jbe    L939
  cmp    $0x29,%al
  je     L43
  mov    %rsi,%rax
  jmp    L1634
L805:
  cmp    $0x3e,%al
  jbe    L1917
  cmp    $0x5c,%al
  jne    L939
  jmp    L956
L1976:
  mov    %rax,%r10
  mov    %r11d,%r9d
  jmp    L347
L248:
  add    $0x1,%rax
L2138:
  mov    %eax,%ecx
  sub    %edx,%ecx
  jmp    L911
L1213:
  mov    %rax,%rcx
  jmp    L2110
L587:
  sub    $0x1,%esi
  cmp    $0x8,%sil
  jbe    L347
  mov    %r10,%rax
  jmp    L336
L1917:
  lea    0x1(%rsi),%rax
  movzbl 0x1(%rsi),%ecx
  cmp    $0x28,%cl
  je     L2138
  cmp    $0x20,%cl
  jbe    L2138
  mov    %rax,%r10
  mov    %rax,%rsi
  mov    $0x2,%r9d
  jmp    L848
L1862:
  cmp    $0xa,%cl
  je     L490
  test   %cl,%cl
  jne    L1634
L490:
  mov    %r10,%rax
  jmp    L336
L2253:
  cmp    $0x5c,%cl
  ja     L684
  cmp    $0x40,%cl
  jbe    L171
  cmp    $0x5a,%cl
  jbe    L1634
  cmp    $0x5b,%cl
  jbe    L1423
  lea    0x2(%rsi),%rax
  movzbl 0x2(%rsi),%ecx
  cmp    $0x28,%cl
  jbe    L423
  cmp    $0x3e,%cl
  ja     L688
  cmp    $0x29,%cl
  jbe    L626
  cmp    $0x3d,%cl
  jbe    L499
L619:
  lea    0x1(%rax),%rsi
  movzbl 0x1(%rax),%eax
  cmp    $0x29,%al
  jbe    L2135
  cmp    $0x3d,%al
  jbe    L1675
  cmp    $0x3e,%al
  jbe    L1917
  cmp    $0x5c,%al
  jne    L366
  mov    %rsi,%r10
  mov    %edi,%r9d
L956:
  lea    0x1(%rsi),%rax
  movzbl 0x1(%rsi),%ecx
  cmp    $0x3e,%cl
  ja     L2253
  cmp    $0x20,%cl
  jbe    L1862
  cmp    $0x2f,%cl
  jbe    L1773
  cmp    $0x39,%cl
  jbe    L1634
  cmp    $0x3d,%cl
  ja     L619
  mov    %rax,%rsi
  jmp    L939
L684:
  cmp    $0x60,%cl
  jbe    L1972
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  ja     L1634
  mov    %rax,%rsi
  jmp    L939
L2135:
  cmp    $0xa,%al
  jbe    L1600
  cmp    $0x20,%al
  jbe    L1389
  cmp    $0x27,%al
  ja     L11
  mov    %rsi,%r10
  mov    %edi,%r9d
  jmp    L939
L1600:
  sub    $0x1,%eax
  cmp    $0x8,%al
  jbe    L352
  mov    %rsi,%rax
  jmp    L2138
L11:
  cmp    $0x28,%al
  jbe    L321
  mov    %rsi,%rax
  jmp    L626
L1675:
  cmp    $0x3c,%al
  je     L1754
  mov    %rsi,%r10
  mov    %edi,%r9d
  jmp    L939
L366:
  mov    %rsi,%r10
  mov    %edi,%r9d
  jmp    L939
L423:
  cmp    $0xa,%cl
  jbe    L790
  sub    $0x21,%ecx
  cmp    $0x6,%cl
  ja     L1634
  mov    %rax,%rsi
  jmp    L939
L790:
  sub    $0x1,%ecx
  cmp    $0x8,%cl
  jbe    L1634
  mov    %r10,%rax
  jmp    L336
L688:
  cmp    $0x5c,%cl
  jne    L1474
  mov    %rax,%rsi
  jmp    L956
L1474:
  mov    %rax,%rsi
  jmp    L939
L1446:
  cmp    $0xa,%cl
  je     L2138
  test   %cl,%cl
  je     L2138
  mov    %rax,%r10
  mov    $0x2,%r9d
  jmp    L1634
L386:
  cmp    $0x28,%cl
  jbe    L1406
  mov    %rax,%r10
  mov    $0x2,%r9d
  jmp    L1634
L2057:
  cmp    $0xa,%al
  ja     L1731
  sub    $0x1,%eax
  cmp    $0x8,%al
  jbe    L673
  mov    %r10,%rax
  jmp    L2250
L1731:
  cmp    $0x20,%al
  jbe    L1846
  cmp    $0x27,%al
  jbe    L1556
  mov    %r10,%rax
  mov    $0x0,%r9d
  jmp    L90
L305:
  cmp    $0x5c,%al
  jne    L724
  mov    %r10,%rax
  mov    %r11d,%r9d
  jmp    L1733
L724:
  mov    %r10,%rax
  jmp    L626
L970:
  mov    $0x0,%ecx
  jmp    L911
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D29
data_type: string

tool: 

assistant: ```c
extern int _scan_link_url(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;
  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 8, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 72, 112, 112, 112, 112, 112, 112, 112, 64, 64, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 16, 112, 16, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 128, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
    };
    yych = *p;
    if (yych <= '(') {
      if (yych <= 0x1F) {
        if (yych == '\n')
          goto yy1104;
        goto yy1112;
      } else {
        if (yych <= ' ')
          goto yy1106;
        if (yych <= '\'')
          goto yy1108;
        goto yy1111;
      }
    } else {
      if (yych <= '<') {
        if (yych <= ')')
          goto yy1112;
        if (yych <= ';')
          goto yy1108;
        goto yy1107;
      } else {
        if (yych == '\\')
          goto yy1109;
        goto yy1108;
      }
    }
  yy1103 : { return (p - start); }
  yy1104:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1105:
    if (yybm[0 + yych] & 8) {
      goto yy1104;
    }
    if (yych <= ')') {
      if (yych <= ' ')
        goto yy1103;
      if (yych <= '\'')
        goto yy1117;
      if (yych <= '(')
        goto yy1113;
      goto yy1103;
    } else {
      if (yych <= '<') {
        if (yych <= ';')
          goto yy1117;
        goto yy1120;
      } else {
        if (yych == '\\')
          goto yy1119;
        goto yy1117;
      }
    }
  yy1106:
    yyaccept = 0;
    yych = *(marker = ++p);
    goto yy1105;
  yy1107:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 32) {
      goto yy1120;
    }
    if (yych <= '\'') {
      if (yych <= 0x00)
        goto yy1103;
      if (yych == '\n')
        goto yy1103;
      goto yy1127;
    } else {
      if (yych <= ')') {
        if (yych <= '(')
          goto yy1125;
        goto yy1127;
      } else {
        if (yych <= '=')
          goto yy1117;
        if (yych <= '>')
          goto yy1122;
        goto yy1124;
      }
    }
  yy1108:
    yyaccept = 0;
    yych = *(marker = ++p);
    goto yy1118;
  yy1109:
    ++p;
    if ((yych = *p) <= '@') {
      if (yych <= ' ')
        goto yy1110;
      if (yych <= '/')
        goto yy1117;
      if (yych >= ':')
        goto yy1117;
    } else {
      if (yych <= '`') {
        if (yych >= '[')
          goto yy1117;
      } else {
        if (yych <= 'z')
          goto yy1110;
        if (yych <= '~')
          goto yy1117;
      }
    }
  yy1110 : { return 0; }
  yy1111:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= ' ')
      goto yy1110;
    if (yych == '(')
      goto yy1110;
    goto yy1114;
  yy1112:
    yych = *++p;
    goto yy1110;
  yy1113:
    ++p;
    yych = *p;
  yy1114:
    if (yybm[0 + yych] & 16) {
      goto yy1113;
    }
    if (yych <= '(')
      goto yy1115;
    if (yych <= ')')
      goto yy1117;
    goto yy1116;
  yy1115:
    p = marker;
    if (yyaccept <= 1) {
      if (yyaccept == 0) {
        goto yy1103;
      } else {
        goto yy1110;
      }
    } else {
      goto yy1123;
    }
  yy1116:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= ' ')
        goto yy1115;
      if (yych <= '/')
        goto yy1113;
      if (yych <= '9')
        goto yy1115;
      goto yy1113;
    } else {
      if (yych <= '`') {
        if (yych <= 'Z')
          goto yy1115;
        goto yy1113;
      } else {
        if (yych <= 'z')
          goto yy1115;
        if (yych <= '~')
          goto yy1113;
        goto yy1115;
      }
    }
  yy1117:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1118:
    if (yych <= '(') {
      if (yych <= ' ')
        goto yy1103;
      if (yych <= '\'')
        goto yy1117;
      goto yy1113;
    } else {
      if (yych <= ')')
        goto yy1103;
      if (yych != '\\')
        goto yy1117;
    }
  yy1119:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= ' ')
        goto yy1115;
      if (yych <= '/')
        goto yy1117;
      if (yych <= '9')
        goto yy1115;
      goto yy1117;
    } else {
      if (yych <= '`') {
        if (yych <= 'Z')
          goto yy1115;
        goto yy1117;
      } else {
        if (yych <= 'z')
          goto yy1115;
        if (yych <= '~')
          goto yy1117;
        goto yy1115;
      }
    }
  yy1120:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1120;
    }
    if (yych <= '\'') {
      if (yych <= 0x00)
        goto yy1103;
      if (yych == '\n')
        goto yy1103;
      goto yy1127;
    } else {
      if (yych <= ')') {
        if (yych <= '(')
          goto yy1125;
        goto yy1127;
      } else {
        if (yych <= '=')
          goto yy1117;
        if (yych >= '?')
          goto yy1124;
      }
    }
  yy1122:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= ' ')
      goto yy1123;
    if (yych != ')')
      goto yy1118;
  yy1123 : { return (p - start); }
  yy1124:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= 0x00)
          goto yy1115;
        if (yych == '\n')
          goto yy1115;
        goto yy1127;
      } else {
        if (yych <= '/')
          goto yy1120;
        if (yych <= '9')
          goto yy1127;
        if (yych <= '=')
          goto yy1120;
        goto yy1137;
      }
    } else {
      if (yych <= '\\') {
        if (yych <= '@')
          goto yy1120;
        if (yych <= 'Z')
          goto yy1127;
        if (yych <= '[')
          goto yy1120;
        goto yy1138;
      } else {
        if (yych <= '`')
          goto yy1120;
        if (yych <= 'z')
          goto yy1127;
        if (yych <= '~')
          goto yy1120;
        goto yy1127;
      }
    }
  yy1125:
    ++p;
    yych = *p;
    if (yych <= ')') {
      if (yych <= '\n') {
        if (yych <= 0x00)
          goto yy1115;
        if (yych >= '\n')
          goto yy1115;
      } else {
        if (yych <= ' ')
          goto yy1127;
        if (yych <= '\'')
          goto yy1125;
        if (yych >= ')')
          goto yy1120;
      }
    } else {
      if (yych <= '=') {
        if (yych == '<')
          goto yy1113;
        goto yy1125;
      } else {
        if (yych <= '>')
          goto yy1133;
        if (yych == '\\')
          goto yy1134;
        goto yy1125;
      }
    }
  yy1127:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1127;
    }
    if (yych <= '=')
      goto yy1115;
    if (yych >= '?')
      goto yy1130;
  yy1129:
    yych = *++p;
    goto yy1123;
  yy1130:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1130;
    }
    if (yych <= '\n') {
      if (yych <= 0x00)
        goto yy1115;
      if (yych <= '\t')
        goto yy1127;
      goto yy1115;
    } else {
      if (yych != '>')
        goto yy1127;
    }
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1127;
    }
    if (yych <= '=')
      goto yy1123;
    if (yych <= '>')
      goto yy1129;
    goto yy1130;
  yy1133:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= ' ')
      goto yy1123;
    if (yych == '(')
      goto yy1123;
    goto yy1114;
  yy1134:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= 0x00)
          goto yy1115;
        if (yych == '\n')
          goto yy1115;
        goto yy1127;
      } else {
        if (yych <= '/')
          goto yy1125;
        if (yych <= '9')
          goto yy1127;
        if (yych <= '=')
          goto yy1125;
      }
    } else {
      if (yych <= '\\') {
        if (yych <= '@')
          goto yy1125;
        if (yych <= 'Z')
          goto yy1127;
        if (yych <= '[')
          goto yy1125;
        goto yy1136;
      } else {
        if (yych <= '`')
          goto yy1125;
        if (yych <= 'z')
          goto yy1127;
        if (yych <= '~')
          goto yy1125;
        goto yy1127;
      }
    }
  yy1135:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yych <= ')') {
      if (yych <= '\n') {
        if (yych <= 0x00)
          goto yy1123;
        if (yych <= '\t')
          goto yy1127;
        goto yy1123;
      } else {
        if (yych <= ' ')
          goto yy1127;
        if (yych <= '\'')
          goto yy1125;
        if (yych <= '(')
          goto yy1127;
        goto yy1120;
      }
    } else {
      if (yych <= '=') {
        if (yych == '<')
          goto yy1113;
        goto yy1125;
      } else {
        if (yych <= '>')
          goto yy1133;
        if (yych == '\\')
          goto yy1134;
        goto yy1125;
      }
    }
  yy1136:
    ++p;
    yych = *p;
    if (yych <= '(') {
      if (yych <= '\n') {
        if (yych <= 0x00)
          goto yy1115;
        if (yych <= '\t')
          goto yy1127;
        goto yy1115;
      } else {
        if (yych <= ' ')
          goto yy1127;
        if (yych <= '\'')
          goto yy1125;
        goto yy1127;
      }
    } else {
      if (yych <= '>') {
        if (yych <= ')')
          goto yy1120;
        if (yych <= '=')
          goto yy1125;
        goto yy1135;
      } else {
        if (yych == '\\')
          goto yy1134;
        goto yy1125;
      }
    }
  yy1137:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1120;
    }
    if (yych <= '\'') {
      if (yych <= 0x00)
        goto yy1123;
      if (yych == '\n')
        goto yy1123;
      goto yy1127;
    } else {
      if (yych <= ')') {
        if (yych <= '(')
          goto yy1125;
        goto yy1127;
      } else {
        if (yych <= '=')
          goto yy1117;
        if (yych <= '>')
          goto yy1122;
        goto yy1124;
      }
    }
  yy1138:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '(') {
      if (yych <= '\n') {
        if (yych <= 0x00)
          goto yy1103;
        if (yych <= '\t')
          goto yy1127;
        goto yy1103;
      } else {
        if (yych <= ' ')
          goto yy1127;
        if (yych <= '\'')
          goto yy1120;
        goto yy1125;
      }
    } else {
      if (yych <= '>') {
        if (yych <= ')')
          goto yy1127;
        if (yych <= '=')
          goto yy1120;
        goto yy1137;
      } else {
        if (yych == '\\')
          goto yy1124;
        goto yy1120;
      }
    }
  }
}
```