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

```asm
<rq_tokenizer_get_token>:
  endbr64
  push   %r15
  mov    %rdi,%r15
  push   %r14
  mov    %edx,%r14d
  push   %r13
  mov    %r9,%r13
  push   %r12
  mov    %rcx,%r12
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  mov    %r8,%rbx
  sub    $0x18,%rsp
  mov    (%rdi),%rax
  jmp    L162
  nopl   0x0(%rax)
L59:
  cmpb   $0x0,(%rax)
  je     L124
  add    $0x1,%rax
  mov    %rax,(%r15)
L162:
  movsbl (%rax),%esi
  mov    %rbx,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  mov    (%r15),%rax
  jne    L59
  movsbl (%rax),%esi
  test   %sil,%sil
  je     L124
  lea    -0x1(%r14),%eax
  mov    %eax,0xc(%rsp)
  test   %r13,%r13
  je     L57
  mov    %r13,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  je     L57
  mov    (%r15),%rax
  mov    0xc(%rsp),%edx
  add    $0x1,%rax
  mov    %rax,(%r15)
  test   %edx,%edx
  jle    L86
  lea    -0x2(%r14),%edx
  mov    %rbp,%rbx
  mov    $0x1,%r12d
  lea    0x1(%rbp,%rdx,1),%r14
  jmp    L190
  nopl   0x0(%rax,%rax,1)
L163:
  mov    %r13,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  jne    L46
  mov    (%r15),%rax
  movzbl (%rax),%eax
  mov    %al,(%rbx)
  mov    %r12d,%eax
  sub    %ebp,%eax
  lea    (%rax,%rbx,1),%edx
  mov    (%r15),%rax
  add    $0x1,%rbx
  add    $0x1,%rax
  mov    %rax,(%r15)
  cmp    %rbx,%r14
  je     L233
L190:
  movsbl (%rax),%esi
  test   %sil,%sil
  jne    L163
L118:
  movb   $0x0,(%rbx)
  add    $0x18,%rsp
  mov    %rbp,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   (%rax)
L57:
  mov    0xc(%rsp),%ecx
  test   %ecx,%ecx
  jle    L55
  mov    (%r15),%rax
  mov    %rbp,%r13
  xor    %r14d,%r14d
  jmp    L232
  nop
L241:
  mov    %r12,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  jne    L91
  mov    (%r15),%rax
  lea    0x1(%r14),%edx
  add    $0x1,%r13
  movzbl (%rax),%eax
  mov    %al,-0x1(%r13)
  mov    (%r15),%rax
  add    $0x1,%rax
  mov    %rax,(%r15)
  cmp    0xc(%rsp),%edx
  je     L17
  movslq %edx,%r14
L232:
  movsbl (%rax),%esi
  test   %sil,%sil
  jne    L241
  lea    -0x1(%r14),%eax
L18:
  movb   $0x0,0x0(%rbp,%r14,1)
  test   %eax,%eax
  jle    L138
  movslq %eax,%rdx
  sub    $0x1,%eax
  lea    -0x1(%rbp,%rdx,1),%r13
  lea    0x0(%rbp,%rdx,1),%r12
  sub    %rax,%r13
  jmp    L76
  nopl   (%rax)
L172:
  movb   $0x0,(%r12)
  sub    $0x1,%r12
  cmp    %r12,%r13
  je     L138
L76:
  movsbl (%r12),%esi
  mov    %rbx,%rdi
  call   <strchr@plt>
  test   %rax,%rax
  jne    L172
L138:
  add    $0x18,%rsp
  mov    %rbp,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L124:
  add    $0x18,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L91:
  addq   $0x1,(%r15)
  lea    -0x1(%r14),%eax
  jmp    L18
  nopw   0x0(%rax,%rax,1)
L17:
  mov    %r14d,%eax
  movslq 0xc(%rsp),%r14
  jmp    L18
L46:
  addq   $0x1,(%r15)
  jmp    L118
L233:
  movslq %edx,%rax
  lea    0x0(%rbp,%rax,1),%rbx
  jmp    L118
L55:
  movb   $0x0,0x0(%rbp)
  jmp    L138
L86:
  mov    %rbp,%rbx
  jmp    L118
```

assistant: ```c
const char *rq_tokenizer_get_token(const char **pptr, char *tok, int maxtoklen, const char *delims, const char *white, const char *quotes) {
  int in_quote = 0;
  while (strchr(white, **pptr))
    if (**pptr != '\0')
      (*pptr)++;
    else
      break;
  if (**pptr == '\0')
    return NULL;
  if (quotes)
    if (strchr(quotes, **pptr)) {
      (*pptr)++;
      in_quote = 1;
    }
  if (in_quote) {
    int i;
    for (i = 0; i < maxtoklen - 1; i++, (*pptr)++)
      if (**pptr == '\0')
        break;
      else if (strchr(quotes, **pptr)) {
        (*pptr)++;
        break;
      } else
        *(tok + i) = **pptr;
    *(tok + i) = '\0';
  } else {
    int i;
    for (i = 0; i < maxtoklen - 1; i++, (*pptr)++)
      if (**pptr == '\0')
        break;
      else if (strchr(delims, **pptr)) {
        (*pptr)++;
        break;
      } else
        *(tok + i) = **pptr;
    *(tok + i) = '\0';
    for (i--; i > 0; i--)
      if (strchr(white, *(tok + i)))
        *(tok + i) = '\0';
      else
        break;
  }
  return tok;
}
```