user: Please show me the C implementation that matches the assembly code listed below:

```asm
<_scan_link_url>:
  endbr64
  movzbl (%rdi),%ecx
  mov    %rdi,%rdx
  cmp    $0x28,%cl
  ja     L317
  cmp    $0x1f,%cl
  ja     L469
  cmp    $0xa,%cl
  je     L530
L203:
  xor    %r8d,%r8d
L1160:
  mov    %r8d,%eax
  ret
  nopl   0x0(%rax)
L317:
  cmp    $0x3c,%cl
  ja     L1245
  xor    %r8d,%r8d
  cmp    $0x29,%cl
  je     L1160
  cmp    $0x3c,%cl
  je     L1330
  movzbl 0x1(%rdx),%esi
  lea    0x1(%rdi),%rdi
  jmp    L1060
  nopl   0x0(%rax,%rax,1)
L1245:
  lea    0x1(%rdi),%rdi
  mov    %rdi,%rax
  cmp    $0x5c,%cl
  je     L173
  movzbl 0x1(%rdx),%esi
  jmp    L1060
  cs nopw 0x0(%rax,%rax,1)
L469:
  movzbl 0x1(%rdx),%r9d
  lea    0x1(%rdi),%rdi
  mov    %rdi,%rax
  mov    %r9d,%esi
  cmp    $0x20,%cl
  je     L1788
  cmp    $0x28,%cl
  je     L300
L1060:
  mov    %esi,%ecx
  mov    %rdi,%rax
  xor    %r10d,%r10d
  cmp    $0x28,%cl
  ja     L594
L648:
  cmp    $0x20,%cl
  jbe    L1430
L1833:
  mov    %rax,%rdi
  lea    D23(%rip),%rsi
  cmp    $0x28,%cl
  je     L354
L32:
  movzbl 0x1(%rax),%ecx
  xor    %r10d,%r10d
  add    $0x1,%rax
  cmp    $0x28,%cl
  jbe    L648
  nopw   0x0(%rax,%rax,1)
L594:
  cmp    $0x29,%cl
  je     L1430
L425:
  cmp    $0x5c,%cl
  jne    L32
L1302:
  movzbl 0x1(%rax),%ecx
  lea    0x1(%rax),%rsi
  cmp    $0x40,%cl
  ja     L799
  cmp    $0x20,%cl
  jbe    L567
  sub    $0x30,%ecx
  cmp    $0x9,%cl
  jbe    L567
L786:
  mov    %rsi,%rax
  jmp    L32
  nopl   0x0(%rax)
L173:
  movzbl 0x1(%rdx),%ecx
  cmp    $0x40,%cl
  ja     L322
  xor    %r8d,%r8d
  cmp    $0x20,%cl
  jbe    L1160
  sub    $0x30,%ecx
  cmp    $0x9,%cl
  ja     L32
  jmp    L1160
  cs nopw 0x0(%rax,%rax,1)
L530:
  mov    %rdi,%rax
  lea    D23(%rip),%rsi
L280:
  movzbl 0x1(%rax),%r9d
  add    $0x1,%rax
L1514:
  movzbl %r9b,%ecx
  testb  $0x8,(%rsi,%rcx,1)
  jne    L280
  cmp    $0x29,%r9b
  ja     L1525
  mov    %eax,%r8d
  sub    %edx,%r8d
  cmp    $0x20,%r9b
  jbe    L1160
  cmp    $0x27,%r9b
  jbe    L32
  cmp    $0x28,%r9b
  jne    L1430
  mov    %rax,%rdi
  xor    %r10d,%r10d
  nopl   0x0(%rax)
L354:
  movzbl 0x1(%rax),%r9d
  lea    0x1(%rax),%rcx
L1669:
  movzbl %r9b,%eax
  testb  $0x10,(%rsi,%rax,1)
  jne    L68
  cmp    $0x28,%r9b
  jbe    L152
  lea    0x1(%rcx),%rax
  cmp    $0x29,%r9b
  je     L1148
  movzbl 0x1(%rcx),%ecx
  cmp    $0x40,%cl
  ja     L1587
  cmp    $0x20,%cl
  jbe    L152
  sub    $0x30,%ecx
  cmp    $0x9,%cl
  ja     L354
  nopl   (%rax)
L152:
  mov    %rdi,%rax
L567:
  cmp    $0x2,%r10d
  je     L1430
  sub    %rdx,%rax
  xor    %r8d,%r8d
  test   %r10d,%r10d
  cmove  %eax,%r8d
  jmp    L1160
  nopl   0x0(%rax,%rax,1)
L1788:
  lea    D23(%rip),%rsi
  jmp    L1514
  nopl   0x0(%rax)
L1901:
  add    $0x1,%rax
L1430:
  mov    %eax,%r8d
  sub    %edx,%r8d
  mov    %r8d,%eax
  ret
  xchg   %ax,%ax
L1330:
  lea    0x1(%rdi),%rax
  movzbl 0x1(%rdi),%edi
  lea    D23(%rip),%rsi
  mov    %rdi,%rcx
  testb  $0x20,(%rsi,%rdi,1)
  jne    L1463
  cmp    $0x27,%dil
  ja     L1822
  test   %dil,%dil
  je     L1022
  cmp    $0xa,%dil
  je     L1022
L133:
  mov    %rax,%r8
  xor    %r10d,%r10d
  nop
L1071:
  movzbl 0x1(%rax),%edi
  add    $0x1,%rax
  testb  $0x40,(%rsi,%rdi,1)
  jne    L1071
  cmp    $0x3d,%dil
  jbe    L521
  cmp    $0x3e,%dil
  je     L1901
  xchg   %ax,%ax
L1442:
  mov    %rax,%rdi
  movzbl 0x1(%rax),%r9d
  add    $0x1,%rax
  cmpb   $0x0,(%rsi,%r9,1)
  mov    %r9,%rcx
  js     L1442
  cmp    $0xa,%r9b
  jbe    L886
  cmp    $0x3e,%r9b
  jne    L1071
  lea    0x2(%rdi),%rax
  movzbl 0x2(%rdi),%edi
  testb  $0x40,(%rsi,%rdi,1)
  jne    L922
  cmp    $0x3d,%dil
  jbe    L1430
  mov    $0x2,%r10d
  cmp    $0x3e,%dil
  je     L1901
  mov    %rax,%r8
  jmp    L1442
  nopw   0x0(%rax,%rax,1)
L1525:
  cmp    $0x3c,%r9b
  ja     L833
  jne    L32
L1463:
  movzbl 0x1(%rax),%edi
  add    $0x1,%rax
  mov    %rdi,%rcx
  testb  $0x20,(%rsi,%rdi,1)
  jne    L1463
  cmp    $0x27,%dil
  ja     L1822
  cmp    $0xa,%dil
  je     L1430
  mov    %rax,%r8
  xor    %r10d,%r10d
  test   %dil,%dil
  jne    L1071
  jmp    L1430
  nopl   0x0(%rax)
L300:
  cmp    $0x28,%r9b
  je     L203
  cmp    $0x20,%r9b
  jbe    L203
  mov    %rdi,%rcx
  mov    $0x1,%r10d
  lea    D23(%rip),%rsi
  jmp    L1669
  nopl   0x0(%rax)
L799:
  cmp    $0x60,%cl
  ja     L1000
  cmp    $0x5a,%cl
  jbe    L567
  jmp    L786
  nopl   0x0(%rax,%rax,1)
L322:
  cmp    $0x60,%cl
  ja     L1470
  cmp    $0x5a,%cl
  jbe    L203
  jmp    L32
  nop
L1000:
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  ja     L567
  jmp    L786
  nopl   0x0(%rax)
L1822:
  cmp    $0x29,%cl
  ja     L790
  cmp    $0x28,%cl
  jne    L133
L625:
  xor    %r10d,%r10d
L1383:
  mov    %rax,%r8
  jmp    L890
  nopw   0x0(%rax,%rax,1)
L923:
  cmp    $0xa,%al
  jbe    L951
  cmp    $0x20,%al
  jbe    L586
  cmp    $0x27,%al
  ja     L881
L1828:
  mov    %rdi,%rax
L890:
  lea    0x1(%rax),%rdi
  movzbl 0x1(%rax),%eax
  cmp    $0x29,%al
  jbe    L923
  cmp    $0x3d,%al
  ja     L717
  cmp    $0x3c,%al
  jne    L1828
  mov    %rdi,%rax
  mov    %r8,%rdi
  jmp    L354
  nopw   0x0(%rax,%rax,1)
L68:
  mov    %rcx,%rax
  jmp    L354
L717:
  cmp    $0x3e,%al
  je     L281
  cmp    $0x5c,%al
  jne    L1828
L1510:
  movzbl 0x1(%rdi),%ecx
  lea    0x1(%rdi),%rax
  cmp    $0x3e,%cl
  ja     L1435
L1877:
  cmp    $0x20,%cl
  jbe    L304
  cmp    $0x2f,%cl
  jbe    L1356
  cmp    $0x39,%cl
  jbe    L1071
L444:
  cmp    $0x3e,%cl
  jne    L1356
  lea    0x1(%rax),%rdi
  movzbl 0x1(%rax),%eax
  cmp    $0x29,%al
  jbe    L1608
  cmp    $0x3d,%al
  jbe    L630
  cmp    $0x3e,%al
  je     L281
  cmp    $0x5c,%al
  jne    L305
  movzbl 0x1(%rdi),%ecx
  mov    %rdi,%r8
  mov    $0x2,%r10d
  lea    0x1(%rdi),%rax
  cmp    $0x3e,%cl
  jbe    L1877
L1435:
  cmp    $0x5c,%cl
  ja     L135
  cmp    $0x40,%cl
  jbe    L1356
  cmp    $0x5a,%cl
  jbe    L1071
  cmp    $0x5b,%cl
  je     L1356
  movzbl 0x2(%rdi),%ecx
  lea    0x2(%rdi),%rax
  cmp    $0x28,%cl
  jbe    L1
  cmp    $0x3e,%cl
  ja     L240
  cmp    $0x29,%cl
  jne    L444
  jmp    L1463
  nopw   0x0(%rax,%rax,1)
L833:
  cmp    $0x5c,%r9b
  jne    L32
  xor    %r10d,%r10d
  jmp    L1302
  nopw   0x0(%rax,%rax,1)
L1470:
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  ja     L203
  jmp    L32
  nopl   0x0(%rax)
L790:
  cmp    $0x3d,%cl
  jbe    L32
  cmp    $0x3e,%cl
  je     L1168
L339:
  movzbl 0x1(%rax),%ecx
  xor    %r10d,%r10d
  lea    0x1(%rax),%r8
  cmp    $0x3e,%cl
  ja     L1668
L667:
  cmp    $0x20,%cl
  jbe    L958
  cmp    $0x2f,%cl
  jbe    L468
  cmp    $0x39,%cl
  jbe    L1086
L1794:
  cmp    $0x3e,%cl
  jne    L468
  movzbl 0x1(%r8),%edi
  lea    0x1(%r8),%rax
  testb  $0x20,(%rsi,%rdi,1)
  jne    L1463
  cmp    $0x27,%dil
  jbe    L349
  cmp    $0x29,%dil
  jbe    L453
  cmp    $0x3d,%dil
  jbe    L32
  cmp    $0x3e,%dil
  je     L1168
  movzbl 0x1(%rax),%ecx
  mov    $0x2,%r10d
  lea    0x1(%rax),%r8
  cmp    $0x3e,%cl
  jbe    L667
L1668:
  cmp    $0x5c,%cl
  ja     L1436
  cmp    $0x40,%cl
  jbe    L468
  cmp    $0x5a,%cl
  jbe    L1086
  cmp    $0x5b,%cl
  je     L468
  movzbl 0x2(%rax),%ecx
  lea    0x2(%rax),%r8
  cmp    $0x28,%cl
  jbe    L1624
  cmp    $0x3e,%cl
  ja     L894
  cmp    $0x29,%cl
  jne    L1794
L87:
  mov    %r8,%rax
  xor    %r10d,%r10d
  jmp    L1071
  cs nopw 0x0(%rax,%rax,1)
L886:
  je     L521
  test   %cl,%cl
  jne    L1071
L521:
  mov    %r8,%rax
  jmp    L567
L349:
  test   %dil,%dil
  je     L1430
  cmp    $0xa,%dil
  je     L1430
  nopl   (%rax)
L922:
  mov    %rax,%r8
  mov    $0x2,%r10d
  jmp    L1071
  cs nopw 0x0(%rax,%rax,1)
L1148:
  mov    %rcx,%rax
  jmp    L32
  nopl   0x0(%rax,%rax,1)
L1587:
  cmp    $0x60,%cl
  ja     L285
  cmp    $0x5a,%cl
  jbe    L152
  jmp    L354
  nopl   0x0(%rax,%rax,1)
L1022:
  mov    $0x1,%r8d
  jmp    L1160
L894:
  cmp    $0x5c,%cl
  jne    L468
  mov    %r8,%rax
  jmp    L339
L240:
  cmp    $0x5c,%cl
  jne    L1356
  mov    %rax,%rdi
  jmp    L1510
L285:
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  ja     L152
  jmp    L354
L1168:
  mov    %rax,%rcx
  add    $0x1,%rax
  movzbl 0x1(%rcx),%ecx
  cmp    $0x29,%cl
  je     L1430
  cmp    $0x20,%cl
  jbe    L1430
  mov    $0x2,%r10d
  cmp    $0x28,%cl
  ja     L425
  jmp    L1833
L951:
  je     L521
  test   %al,%al
  je     L521
L586:
  mov    %rdi,%rax
  jmp    L1071
L1436:
  cmp    $0x60,%cl
  jbe    L468
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  ja     L1086
L468:
  mov    %r8,%rax
  jmp    L1463
L1:
  cmp    $0xa,%cl
  jbe    L886
  cmp    $0x28,%cl
  je     L1071
  cmp    $0x20,%cl
  jbe    L1071
L1356:
  mov    %rax,%rdi
  jmp    L1828
L958:
  test   %cl,%cl
  je     L567
  cmp    $0xa,%cl
  je     L567
L1086:
  mov    %rax,%rcx
  mov    %r8,%rax
  mov    %rcx,%r8
  jmp    L1071
L305:
  mov    %rdi,%r8
  mov    $0x2,%r10d
  jmp    L1828
L881:
  cmp    $0x29,%al
  jne    L586
L466:
  mov    %rdi,%rax
  jmp    L1463
L281:
  movzbl 0x1(%rdi),%r9d
  lea    0x1(%rdi),%rax
  cmp    $0x20,%r9b
  jbe    L1430
  cmp    $0x28,%r9b
  je     L1430
  mov    %rax,%rdi
  mov    %rax,%rcx
  mov    $0x2,%r10d
  jmp    L1669
L453:
  cmp    $0x28,%dil
  jne    L922
  mov    $0x2,%r10d
  jmp    L1383
L1624:
  cmp    $0xa,%cl
  ja     L1847
  test   %cl,%cl
  je     L577
  cmp    $0xa,%cl
  jne    L87
L577:
  sub    %edx,%r8d
  jmp    L1160
L630:
  cmp    $0x3c,%al
  jne    L305
  mov    %rdi,%rax
  mov    $0x2,%r10d
  jmp    L354
L1608:
  cmp    $0xa,%al
  jbe    L726
  cmp    $0x20,%al
  jbe    L525
  cmp    $0x27,%al
  jbe    L305
  cmp    $0x28,%al
  jne    L466
L525:
  mov    %rdi,%rax
  mov    %rdi,%r8
  mov    $0x2,%r10d
  jmp    L1071
L304:
  test   %cl,%cl
  je     L521
  cmp    $0xa,%cl
  jne    L1071
  jmp    L521
L135:
  cmp    $0x60,%cl
  jbe    L1356
  sub    $0x7b,%ecx
  cmp    $0x3,%cl
  jbe    L1356
  jmp    L1071
L1847:
  cmp    $0x20,%cl
  jbe    L87
  mov    %r8,%rax
  cmp    $0x28,%cl
  jne    L1463
  jmp    L625
L726:
  je     L1692
  test   %al,%al
  jne    L525
L1692:
  mov    %rdi,%rax
  jmp    L1430
```

tool_calls: name: disassemble_data
arguments: label: D23
type_guessed: 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;
      }
    }
  }
}
```