user: 这段汇编代码用C语言表示是什么样的:

```asm
<one_word>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  movl   $0x0,-0xc(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x4(%rbp)
  jmp    L36
L83:
  addl   $0x1,-0xc(%rbp)
L36:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isspace@plt>
  test   %rax,%rax
  jne    L83
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x22,%al
  jne    L90
  addl   $0x1,-0xc(%rbp)
  movl   $0x0,-0x8(%rbp)
  jmp    L23
L144:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x40,%al
  jle    L75
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x5a,%al
  jg     L75
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  add    $0x20,%eax
  jmp    L148
L75:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
L148:
  mov    -0x8(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x20(%rbp),%rdx
  add    %rcx,%rdx
  mov    %al,(%rdx)
  addl   $0x1,-0x8(%rbp)
L23:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1f,%al
  jle    L146
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x22,%al
  jne    L144
L146:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x22,%al
  jne    L34
  addl   $0x1,-0xc(%rbp)
  jmp    L34
L90:
  movl   $0x0,-0x8(%rbp)
  jmp    L80
L54:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x40,%al
  jle    L21
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x5a,%al
  jg     L21
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  add    $0x20,%eax
  jmp    L52
L21:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
L52:
  mov    -0x8(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x20(%rbp),%rdx
  add    %rcx,%rdx
  mov    %al,(%rdx)
  addl   $0x1,-0x8(%rbp)
L80:
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  add    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x20,%al
  jg     L54
L34:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rdx,%rax
  movb   $0x0,(%rax)
  mov    -0x8(%rbp),%eax
  add    %eax,-0xc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    %rax,%rdi
  call   <fill_word@plt>
  test   %rax,%rax
  jne    L36
  mov    -0xc(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  leave
  ret
```

assistant: ```c
char *one_word(char *argument, char *first_arg) {
  int found, begin, look_at;
  found = begin = 0;
  do {
    for (; isspace(*(argument + begin)); begin++)
      ;
    if (*(argument + begin) == '\"') {
      begin++;
      for (look_at = 0; (*(argument + begin + look_at) >= ' ') && (*(argument + begin + look_at) != '\"'); look_at++)
        *(first_arg + look_at) = (((*(argument + begin + look_at)) >= 'A' && (*(argument + begin + look_at)) <= 'Z') ? ((*(argument + begin + look_at)) + ('a' - 'A')) : (*(argument + begin + look_at)));
      if (*(argument + begin + look_at) == '\"')
        begin++;
    } else {
      for (look_at = 0; *(argument + begin + look_at) > ' '; look_at++)
        *(first_arg + look_at) = (((*(argument + begin + look_at)) >= 'A' && (*(argument + begin + look_at)) <= 'Z') ? ((*(argument + begin + look_at)) + ('a' - 'A')) : (*(argument + begin + look_at)));
    }
    *(first_arg + look_at) = '\0';
    begin += look_at;
  } while (fill_word(first_arg));
  return (argument + begin);
}
```