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

```asm
<com_parse>:
  endbr64
  mov    (%rdi),%rax
  mov    %rdi,%rsi
  movb   $0x0,D56(%rip)
  lea    D73(%rip),%r8
  test   %rax,%rax
  je     L210
  movzbl (%rax),%edx
L27:
  movsbl %dl,%ecx
  cmp    $0x20,%dl
  jg     L41
L205:
  test   %ecx,%ecx
  je     L166
  movzbl 0x1(%rax),%edx
  add    $0x1,%rax
  movsbl %dl,%ecx
  cmp    $0x20,%dl
  jle    L205
L41:
  cmp    $0x2f,%ecx
  jne    L132
  cmpb   $0x2f,0x1(%rax)
  jne    L124
  add    $0x1,%rax
  nop
L258:
  movzbl 0x1(%rax),%edx
  add    $0x1,%rax
  test   %dl,%dl
  je     L27
  cmp    $0xa,%dl
  jne    L258
  jmp    L27
  nopl   0x0(%rax,%rax,1)
L166:
  xor    %eax,%eax
  lea    D73(%rip),%r8
L210:
  mov    %rax,(%rsi)
  mov    %r8,%rax
  ret
L124:
  xor    %edx,%edx
  lea    D56(%rip),%r8
  nopl   0x0(%rax)
L230:
  cmp    $0x3ff,%edx
  jg     L96
  movslq %edx,%rdi
  add    $0x1,%rax
  add    $0x1,%edx
  mov    %cl,(%r8,%rdi,1)
  movsbl (%rax),%ecx
  cmp    $0x20,%ecx
  jg     L230
L43:
  xor    %ecx,%ecx
  cmp    $0x400,%edx
  cmove  %ecx,%edx
  movslq %edx,%rdx
  movb   $0x0,(%r8,%rdx,1)
  lea    D56(%rip),%r8
  mov    %rax,(%rsi)
  mov    %r8,%rax
  ret
  nopw   0x0(%rax,%rax,1)
L96:
  add    $0x1,%rax
  cmpb   $0x20,(%rax)
  jle    L43
  add    $0x1,%rax
  cmpb   $0x20,(%rax)
  jg     L96
  jmp    L43
L132:
  cmp    $0x22,%ecx
  jne    L124
  movsbl 0x1(%rax),%ecx
  lea    0x2(%rax),%rdx
  mov    %ecx,%eax
  cmp    $0x22,%cl
  je     L118
  test   %ecx,%ecx
  je     L118
  xor    %ecx,%ecx
  lea    D56(%rip),%r8
L164:
  cmp    $0x3ff,%ecx
  jg     L193
  movslq %ecx,%rdi
  add    $0x1,%rdx
  add    $0x1,%ecx
  mov    %al,(%r8,%rdi,1)
  movsbl -0x1(%rdx),%edi
  mov    %edi,%eax
  cmp    $0x22,%dil
  je     L77
  test   %edi,%edi
  jne    L164
L77:
  mov    %rdx,%rax
L228:
  movslq %ecx,%rcx
  movb   $0x0,(%r8,%rcx,1)
  lea    D56(%rip),%r8
  jmp    L210
L193:
  lea    0x1(%rdx),%rax
  movsbl (%rdx),%edx
  cmp    $0x22,%edx
  je     L228
L117:
  test   %edx,%edx
  je     L228
  movsbl (%rax),%edx
  add    $0x1,%rax
  cmp    $0x22,%edx
  jne    L117
  jmp    L228
L118:
  mov    %rdx,%rax
  xor    %ecx,%ecx
  lea    D56(%rip),%r8
  jmp    L228
```

tool_calls: name: unpack_data
arguments: data_tag: D73
type_guessed: string

tool: 

assistant: ```c
char *com_parse(char **data_p) {
  int c;
  int len;
  char *data;
  static char com_token[128];
  data = *data_p;
  len = 0;
  com_token[0] = 0;
  if (!data) {
    *data_p = ((void *)0);
    return "";
  }
skipwhite:
  while ((c = *data) <= ' ') {
    if (c == 0) {
      *data_p = ((void *)0);
      return "";
    }
    data++;
  }
  if (c == '/' && data[1] == '/') {
    while (*data && *data != '\n') {
      data++;
    }
    goto skipwhite;
  }
  if (c == '\"') {
    data++;
    while (1) {
      c = *data++;
      if (c == '\"' || !c) {
        com_token[len] = 0;
        *data_p = data;
        return com_token;
      }
      if (len < 1024) {
        com_token[len] = c;
        len++;
      }
    }
  }
  do {
    if (len < 1024) {
      com_token[len] = c;
      len++;
    }
    data++;
    c = *data;
  } while (c > 32);
  if (len == 1024) {
    len = 0;
  }
  com_token[len] = 0;
  *data_p = data;
  return com_token;
}
```