user: What is the c source code of the assembly code below?

```asm
<scan1tm>:
  endbr64
  push   %r14
  mov    %edx,%r14d
  push   %r13
  mov    %rsi,%r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  push   %rbx
L15:
  mov    (%r12),%rax
  lea    0x1(%rax),%rbp
  jmp    L27
  nop
L19:
  call   <isspace@plt>
  test   %eax,%eax
  jne    L194
  test   %bl,%bl
  jne    L174
L194:
  add    $0x1,%rbp
  test   %bl,%bl
  je     L36
L27:
  mov    %rbp,(%r12)
  movsbl -0x1(%rbp),%edi
  mov    %edi,%ebx
  test   %dil,%dil
  jns    L19
L236:
  mov    %bl,0x0(%r13)
  lea    0x1(%r13),%rbp
  jmp    L108
  nopw   0x0(%rax,%rax,1)
L92:
  test   %r13b,%r13b
  je     L98
L249:
  lea    0x1(%rbx),%rax
  add    $0x1,%rbp
  mov    %rax,(%r12)
  movzbl (%rbx),%eax
  mov    %al,-0x1(%rbp)
L108:
  mov    (%r12),%rbx
  movzbl (%rbx),%r13d
  test   %r13b,%r13b
  js     L249
  movsbl %r13b,%edi
  call   <isspace@plt>
  test   %eax,%eax
  je     L92
L98:
  movb   $0x0,0x0(%rbp)
  mov    $0x1,%r12d
  cmp    $0x2,%r14d
  je     L266
L212:
  pop    %rbx
  mov    %r12d,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  nopl   (%rax)
L174:
  cmp    $0x28,%bl
  je     L24
  cmp    $0x29,%bl
  jne    L253
  movb   $0x0,0x0(%r13)
  xor    %r12d,%r12d
  cmp    $0x1,%r14d
  jne    L248
L266:
  mov    $0x6,%edi
  xor    %eax,%eax
  call   <ERRMOD@plt>
L248:
  pop    %rbx
  mov    %r12d,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
  nopl   0x0(%rax)
L253:
  cmp    $0x22,%bl
  jne    L236
  movb   $0x22,0x0(%r13)
  lea    0x1(%r13),%rbp
  jmp    L234
  nopl   0x0(%rax)
L77:
  cmp    $0x5c,%al
  je     L28
L234:
  mov    (%r12),%rax
  add    $0x1,%rbp
  lea    0x1(%rax),%rdx
  mov    %rdx,(%r12)
  movzbl (%rax),%eax
  mov    %al,-0x1(%rbp)
  cmp    $0x22,%al
  jne    L77
  jmp    L98
  nopl   0x0(%rax,%rax,1)
L36:
  mov    $0x6,%edi
  xor    %eax,%eax
  call   <ERRMOD@plt>
  jmp    L15
  nopl   0x0(%rax)
L28:
  mov    (%r12),%rax
  add    $0x1,%rbp
  lea    0x1(%rax),%rdx
  mov    %rdx,(%r12)
  movzbl (%rax),%eax
  mov    %al,-0x1(%rbp)
  sub    $0x30,%eax
  cmp    $0x7,%al
  jbe    L28
  jmp    L234
  nopw   0x0(%rax,%rax,1)
L24:
  mov    $0x2028,%eax
  lea    0x2(%r13),%rbx
  mov    %ax,0x0(%r13)
L132:
  xor    %edx,%edx
  xor    %eax,%eax
  mov    %rbx,%rsi
  mov    %r12,%rdi
  call   <scan1tm>
  test   %eax,%eax
  jne    L173
  jmp    L58
  nopl   0x0(%rax,%rax,1)
L148:
  add    $0x1,%rbx
L173:
  cmpb   $0x0,(%rbx)
  jne    L148
  movb   $0x20,(%rbx)
  add    $0x1,%rbx
  jmp    L132
  nopw   0x0(%rax,%rax,1)
L58:
  lea    0x1(%rbx),%rbp
  movb   $0x29,(%rbx)
  mov    $0x1,%r12d
  movb   $0x0,0x0(%rbp)
  cmp    $0x2,%r14d
  jne    L212
  jmp    L266
```

assistant: ```c
int scan1tm(socp, dest, flg)
char **socp, *dest;
int flg;
{
  register char c;
  register int retval = 1;
  while (c = *(*socp)++, (isascii(c) && (isspace(c) || (c) == '\0')))
    if (c == '\0')
      ERRMOD(6);
  switch (c) {
  case ')':
    retval = 0;
    break;
  case '(':
    *dest++ = c;
    *dest++ = ' ';
    while (scan1tm(socp, dest, 0)) {
      {
        while (*(dest))
          (dest)++;
      };
      *dest++ = ' ';
    }
    *dest++ = ')';
    break;
  case '"':
    *dest++ = c;
    while ((c = *dest++ = *(*socp)++) != '"') {
      if (c == '\\') {
        while (c = *dest++ = *(*socp)++, (isascii(c) && (isdigit(c) && (c) < '8')))
          ;
      }
    }
    break;
  default:
    *dest++ = c;
    while (!(isascii(**socp) && (isspace(**socp) || (**socp) == '\0')))
      *dest++ = *(*socp)++;
  }
  *dest = '\0';
  if (flg == 1 && retval == 0 || flg == 2 && retval == 1)
    ERRMOD(6);
  return (retval);
}
```