user: What would the C source look like for the assembly code provided here?

```asm
<get_token_bool>:
  endbr64
  mov    (%rdx),%eax
  mov    %esi,%r9d
  cmp    %esi,%eax
  jge    L35
  mov    %rdx,%rsi
  movslq %eax,%rdx
  movzbl (%rdi,%rdx,1),%edx
  cmp    $0xa,%dl
  je     L35
  test   %dl,%dl
  je     L35
  add    $0x1,%eax
  mov    %rcx,%r10
  cltq
  jmp    L121
  nopw   0x0(%rax,%rax,1)
L45:
  test   %dl,%dl
  je     L37
L121:
  cmp    $0x20,%dl
  je     L226
  cmp    $0x9,%dl
  jne    L200
L226:
  mov    %eax,(%rsi)
  cmp    %eax,%r9d
  jle    L35
  movzbl (%rdi,%rax,1),%edx
  add    $0x1,%rax
  cmp    $0xa,%dl
  jne    L45
L35:
  mov    $0x65,%eax
  ret
  nopl   0x0(%rax,%rax,1)
L37:
  cmp    $0xa,%dl
  je     L35
  test   %dl,%dl
  je     L35
L200:
  lea    -0x7d(%rdx),%eax
  mov    %edx,%ecx
  cmp    $0x1,%al
  setbe  %al
  and    $0xffffffbf,%ecx
  cmp    $0x3b,%cl
  sete   %cl
  or     %cl,%al
  jne    L78
  cmp    $0x2c,%dl
  je     L78
  movl   $0x0,(%r8)
  movslq (%rsi),%rax
  mov    %rax,%rdx
  add    %rdi,%rax
  add    $0x1,%edx
  cmpb   $0x5c,(%rax)
  mov    %edx,(%rsi)
  movslq (%r8),%rdx
  lea    0x1(%rdx),%ecx
  mov    %ecx,(%r8)
  movzbl (%rax),%eax
  mov    %al,(%r10,%rdx,1)
  jne    L84
  movslq (%rsi),%rdx
  lea    0x1(%rdx),%eax
  mov    %eax,(%rsi)
  movslq (%r8),%rax
  lea    0x1(%rax),%ecx
  mov    %ecx,(%r8)
  movzbl (%rdi,%rdx,1),%edx
  mov    %dl,(%r10,%rax,1)
L84:
  mov    (%rsi),%eax
  cmp    %eax,%r9d
  jle    L98
  movabs $0xffffeffffffffbfe,%r11
  push   %rbx
  jmp    L209
  nopl   0x0(%rax,%rax,1)
L151:
  bt     %rcx,%r11
  jae    L26
  add    $0x1,%eax
L155:
  mov    %eax,(%rsi)
  movslq (%r8),%rax
  lea    0x1(%rax),%ecx
  mov    %ecx,(%r8)
  movzbl (%rdx),%edx
  mov    %dl,(%r10,%rax,1)
L81:
  mov    (%rsi),%eax
  cmp    %r9d,%eax
  jge    L26
L209:
  movslq %eax,%rdx
  add    %rdi,%rdx
  movzbl (%rdx),%ecx
  cmp    $0x2c,%cl
  jbe    L151
  mov    %ecx,%ebx
  and    $0xffffffbf,%ebx
  cmp    $0x3b,%bl
  je     L26
  lea    -0x7d(%rcx),%ebx
  cmp    $0x1,%bl
  jbe    L26
  add    $0x1,%eax
  cmp    $0x5c,%cl
  jne    L155
  mov    %eax,(%rsi)
  movslq (%r8),%rax
  lea    0x1(%rax),%ecx
  mov    %ecx,(%r8)
  movzbl (%rdx),%edx
  mov    %dl,(%r10,%rax,1)
  movslq (%rsi),%rdx
  lea    0x1(%rdx),%eax
  mov    %eax,(%rsi)
  movslq (%r8),%rax
  lea    0x1(%rax),%ecx
  mov    %ecx,(%r8)
  movzbl (%rdi,%rdx,1),%edx
  mov    %dl,(%r10,%rax,1)
  jmp    L81
  nopl   0x0(%rax,%rax,1)
L78:
  mov    %dl,(%r10)
  movl   $0x1,(%r8)
  movslq (%rsi),%rax
  lea    0x1(%rax),%edx
  mov    %edx,(%rsi)
  movzbl (%rdi,%rax,1),%eax
  ret
  nopw   0x0(%rax,%rax,1)
L26:
  movslq (%r8),%rax
  movb   $0x0,(%r10,%rax,1)
  mov    $0x61,%eax
  pop    %rbx
  ret
L98:
  movslq (%r8),%rax
  movb   $0x0,(%r10,%rax,1)
  mov    $0x61,%eax
  ret
```

assistant: ```c
int get_token_bool(buffer, len, ptr, tokenbuf, tokenlen)
unsigned char *buffer, *tokenbuf;
int len, *ptr, *tokenlen;
{
  if ((*ptr >= len) || (buffer[*ptr] == '\n') || (buffer[*ptr] == '\0'))
    return 'e';
  while ((*ptr < len) && (buffer[*ptr] != '\n') && (buffer[*ptr] != '\0') && ((buffer[*ptr] == ' ') || (buffer[*ptr] == '\t')))
    (*ptr)++;
  if ((*ptr >= len) || (buffer[*ptr] == '\n') || (buffer[*ptr] == '\0'))
    return 'e';
  if ((buffer[*ptr] == ',') || (buffer[*ptr] == ';') || (buffer[*ptr] == '~') || (buffer[*ptr] == '{') || (buffer[*ptr] == '}')) {
    tokenbuf[0] = buffer[*ptr];
    *tokenlen = 1;
    return buffer[(*ptr)++];
  }
  *tokenlen = 0;
  if (buffer[*ptr] == '\\') {
    tokenbuf[(*tokenlen)++] = buffer[(*ptr)++];
    tokenbuf[(*tokenlen)++] = buffer[(*ptr)++];
  } else
    tokenbuf[(*tokenlen)++] = buffer[(*ptr)++];
  while ((*ptr < len) && (buffer[*ptr] != '\n') && (buffer[*ptr] != '\0') && (buffer[*ptr] != ',') && (buffer[*ptr] != ';') && (buffer[*ptr] != '~') && (buffer[*ptr] != '{') && (buffer[*ptr] != '}')) {
    if (buffer[*ptr] == '\\') {
      tokenbuf[(*tokenlen)++] = buffer[(*ptr)++];
      tokenbuf[(*tokenlen)++] = buffer[(*ptr)++];
    } else
      tokenbuf[(*tokenlen)++] = buffer[(*ptr)++];
  }
  tokenbuf[*tokenlen] = '\0';
  return 'a';
}
```