user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<comprobar>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    %rcx,-0x20(%rbp)
  mov    %r8,-0x28(%rbp)
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L85
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L13
L85:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L162
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  je     L13
L162:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L88
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L88
L13:
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  lea    0x1(%rax),%edx
  mov    -0x20(%rbp),%rax
  mov    %edx,(%rax)
  jmp    L77
L88:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L150
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L144
L150:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L146
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  je     L144
L146:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jne    L104
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L104
L144:
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x1(%rax),%edx
  mov    -0x18(%rbp),%rax
  mov    %edx,(%rax)
  jmp    L77
L104:
  mov    -0x8(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x10(%rbp),%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  jne    L77
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L77:
  mov    -0x18(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L154
  lea    D34(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x28(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L101
L154:
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L101
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x28(%rbp),%rax
  movl   $0x1,(%rax)
L101:
  nop
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D3
data_type: string
name: read_data
arguments: data_tag: D12
data_type: string
name: read_data
arguments: data_tag: D13
data_type: string
name: read_data
arguments: data_tag: D34
data_type: string
name: read_data
arguments: data_tag: D18
data_type: string

tool: D3: El ordenador ha ganado la ronda



tool: D12: Has ganado la ronda!



tool: D13: Has empatado...



tool: D34: Has ganado!!



tool: D18: Ha ganado la computadora...



assistant: ```c
void comprobar(int *np, int *nc, int *pl, int *c, int *p) {
  if ((*np == 0 && *nc == 1) || (*np == 1 && *nc == 2) || (*np == 2 && *nc == 0)) {
    printf("El ordenador ha ganado la ronda\n\n");
    *c = *c + 1;
  } else if ((*np == 1 && *nc == 0) || (*np == 2 && *nc == 1) || (*np == 0 && *nc == 2)) {
    printf("Has ganado la ronda!\n\n");
    *pl = *pl + 1;
  } else if (*np == *nc) {
    printf("Has empatado...\n\n");
  }
  if (*pl == 2) {
    printf("Has ganado!!\n\n");
    *p = 1;
  } else if (*c == 2) {
    printf("Ha ganado la computadora...\n\n");
    *p = 1;
  }
}
```