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

```asm
<verify_password>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x40,%rsp
  mov    %edi,-0x34(%rbp)
  mov    %rsi,-0x40(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movw   $0xf4ff,-0x1d(%rbp)
  movb   $0x25,-0x1b(%rbp)
  movw   $0xfbff,-0x1a(%rbp)
  movb   $0x3,-0x18(%rbp)
  movw   $0xfeff,-0x17(%rbp)
  movb   $0x22,-0x15(%rbp)
  movw   $0xfeff,-0x14(%rbp)
  movb   $0x27,-0x12(%rbp)
  movw   $0xfbff,-0x11(%rbp)
  movb   $0x1,-0xf(%rbp)
  movw   $0xfeff,-0xe(%rbp)
  movb   $0x1,-0xc(%rbp)
  movw   $0xfdff,-0xb(%rbp)
  movb   $0x2d,-0x9(%rbp)
  lea    -0x1a(%rbp),%rcx
  mov    -0x34(%rbp),%eax
  mov    $0x3,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <WRITE@plt>
  lea    -0x17(%rbp),%rcx
  mov    -0x34(%rbp),%eax
  mov    $0x3,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <WRITE@plt>
  lea    -0x14(%rbp),%rcx
  mov    -0x34(%rbp),%eax
  mov    $0x3,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <WRITE@plt>
  lea    -0x11(%rbp),%rcx
  mov    -0x34(%rbp),%eax
  mov    $0x3,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <WRITE@plt>
  lea    -0xe(%rbp),%rcx
  mov    -0x34(%rbp),%eax
  mov    $0x3,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <WRITE@plt>
  mov    -0x34(%rbp),%eax
  lea    D14(%rip),%rdx
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <sockprint@plt>
  cmp    $0xffffffff,%eax
  jne    L51
  mov    $0xffffffff,%eax
  jmp    L59
L51:
  mov    -0x34(%rbp),%eax
  mov    %eax,%edi
  call   <get_string@plt>
  mov    %rax,-0x28(%rbp)
  cmpq   $0x0,-0x28(%rbp)
  jne    L41
  mov    $0xffffffff,%eax
  jmp    L59
L41:
  mov    -0x28(%rbp),%rdx
  mov    -0x40(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L69
  mov    $0x0,%eax
  jmp    L59
L69:
  mov    -0x34(%rbp),%eax
  lea    D8(%rip),%rdx
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <sockprint@plt>
  mov    $0xffffffff,%eax
L59:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L24
  call   <__stack_chk_fail@plt>
L24:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D14
type: string
name: retrieve_data
arguments: label: D8
type: string

tool: D14: Password: 

tool: D8: Invalid password

assistant: ```c
int verify_password(int client_fd, char *password) {
  char *entered;
  char dont_auth[] = {0xff, 0xf4, 0x25};
  char suppress_goahead[] = {0xff, 0xfb, 0x03};
  char dont_linemode[] = {0xff, 0xfe, 0x22};
  char dont_new_env[] = {0xff, 0xfe, 0x27};
  char will_echo[] = {0xff, 0xfb, 0x01};
  char dont_echo[] = {0xff, 0xfe, 0x01};
  char noecho[] = {0xff, 0xfd, 0x2d};
  WRITE(client_fd, suppress_goahead, sizeof suppress_goahead);
  WRITE(client_fd, dont_linemode, sizeof dont_linemode);
  WRITE(client_fd, dont_new_env, sizeof dont_new_env);
  WRITE(client_fd, will_echo, sizeof will_echo);
  WRITE(client_fd, dont_echo, sizeof dont_echo);
  if (sockprint(client_fd, "Password: ") == -1)
    return -1;
  entered = get_string(client_fd);
  if (!entered)
    return -1;
  if (strcmp(password, entered) == 0)
    return 0;
  sockprint(client_fd, "Invalid password");
  return -1;
}
```