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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0x6172756f736574,%rax
  mov    %rax,-0x2c(%rbp)
  movl   $0x65706170,-0x3e(%rbp)
  movw   $0x6c,-0x3a(%rbp)
  movl   $0x72646570,-0x38(%rbp)
  movw   $0x61,-0x34(%rbp)
  movabs $0x6f74726167616c,%rax
  mov    %rax,-0x24(%rbp)
  movl   $0x636f7053,-0x32(%rbp)
  movw   $0x6b,-0x2e(%rbp)
  lea    -0x48(%rbp),%rax
  mov    %rax,%rsi
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  movl   $0x1,-0x44(%rbp)
  jmp    L373
L320:
  lea    -0x12(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rax,%rsi
  lea    D85(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    -0x12(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L176
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L176:
  lea    -0x2c(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L347
  lea    -0x3e(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L73
  lea    -0x24(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L327
L73:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L327:
  lea    -0x38(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L388
  lea    -0x32(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
L388:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L347:
  lea    -0x3e(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L110
  lea    -0x38(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L137
  lea    -0x32(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L237
L137:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L237:
  lea    -0x2c(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L99
  lea    -0x24(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
L99:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L110:
  lea    -0x38(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L234
  lea    -0x2c(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L156
  lea    -0x24(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L62
L156:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L62:
  lea    -0x3e(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L68
  lea    -0x32(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
L68:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L234:
  lea    -0x24(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L5
  lea    -0x3e(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L284
  lea    -0x32(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L143
L284:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L143:
  lea    -0x38(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L168
  lea    -0x2c(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
L168:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L5:
  lea    -0x32(%rbp),%rdx
  lea    -0x1c(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
  lea    -0x2c(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L203
  lea    -0x38(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L94
L203:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L171
L94:
  lea    -0x3e(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L63
  lea    -0x24(%rbp),%rdx
  lea    -0x12(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
L63:
  mov    -0x44(%rbp),%eax
  mov    %eax,%esi
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L171:
  addl   $0x1,-0x44(%rbp)
L373:
  mov    -0x48(%rbp),%eax
  cmp    %eax,-0x44(%rbp)
  jle    L320
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L197
  call   <__stack_chk_fail@plt>
L197:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D0
data_type: string
name: disassemble_data
arguments: data_tag: D85
data_type: string
name: disassemble_data
arguments: data_tag: D73
data_type: string
name: disassemble_data
arguments: data_tag: D43
data_type: string
name: disassemble_data
arguments: data_tag: D50
data_type: string

tool: D0: %d

tool: D85: %s%s

tool: D73: Caso #%d: De novo!


tool: D43: Caso #%d: Bazinga!


tool: D50: Caso #%d: Raj trapaceou!


assistant: ```c
int main() {
  int a, b, c;
  char aa[] = "tesoura", bb[] = "papel", cc[] = "pedra", dd[] = "lagarto", ee[] = "Spock";
  char a1[10], a2[10];
  scanf("%d", &a);
  for (b = 1; b <= a; b++) {
    scanf("%s%s", a1, a2);
    if (0 == strcmp(a1, a2))
      printf("Caso #%d: De novo!\n", b);
    else if (0 == strcmp(a1, aa)) {
      if ((0 == strcmp(a2, bb)) || (0 == strcmp(a2, dd)))
        printf("Caso #%d: Bazinga!\n", b);
      else if ((0 == strcmp(a2, cc)) || (0 == strcmp(a2, ee)))
        printf("Caso #%d: Raj trapaceou!\n", b);
    } else if (0 == strcmp(a1, bb)) {
      if ((0 == strcmp(a2, cc)) || (0 == strcmp(a2, ee)))
        printf("Caso #%d: Bazinga!\n", b);
      else if ((0 == strcmp(a2, aa)) || (0 == strcmp(a2, dd)))
        printf("Caso #%d: Raj trapaceou!\n", b);
    } else if (0 == strcmp(a1, cc)) {
      if ((0 == strcmp(a2, aa)) || (0 == strcmp(a2, dd)))
        printf("Caso #%d: Bazinga!\n", b);
      else if ((0 == strcmp(a2, bb)) || (0 == strcmp(a2, ee)))
        printf("Caso #%d: Raj trapaceou!\n", b);
    } else if (0 == strcmp(a1, dd)) {
      if ((0 == strcmp(a2, bb)) || (0 == strcmp(a2, ee)))
        printf("Caso #%d: Bazinga!\n", b);
      else if ((0 == strcmp(a2, cc)) || (0 == strcmp(a2, aa)))
        printf("Caso #%d: Raj trapaceou!\n", b);
    } else if (0 == strcmp(a1, ee)) {
      if ((0 == strcmp(a2, aa)) || (0 == strcmp(a2, cc)))
        printf("Caso #%d: Bazinga!\n", b);
      else if ((0 == strcmp(a2, bb)) || (0 == strcmp(a2, dd)))
        printf("Caso #%d: Raj trapaceou!\n", b);
    }
  }
  return 0;
}
```