user: What would the C source look like for the assembly code provided here:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x190,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x90(%rbp),%rcx
  lea    -0x110(%rbp),%rdx
  lea    -0x190(%rbp),%rax
  mov    %rax,%rsi
  lea    D116(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    -0x190(%rbp),%rax
  lea    D16(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L78
  lea    -0x110(%rbp),%rax
  lea    D4(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L85
  lea    -0x90(%rbp),%rax
  lea    D7(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L116
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L116:
  lea    D62(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L85:
  lea    -0x90(%rbp),%rax
  lea    D108(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L111
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L111:
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L78:
  lea    -0x110(%rbp),%rax
  lea    D142(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L84
  lea    -0x90(%rbp),%rax
  lea    D47(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L141
  lea    D2(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L141:
  lea    D121(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L84:
  lea    -0x90(%rbp),%rax
  lea    D47(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L148
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L69
L148:
  lea    D154(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L69:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L133
  call   <__stack_chk_fail@plt>
L133:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D116
type: string
name: read_data
arguments: data_label: D16
type: string
name: read_data
arguments: data_label: D4
type: string
name: read_data
arguments: data_label: D7
type: string
name: read_data
arguments: data_label: D118
type: string
name: read_data
arguments: data_label: D62
type: string
name: read_data
arguments: data_label: D108
type: string
name: read_data
arguments: data_label: D81
type: string
name: read_data
arguments: data_label: D9
type: string
name: read_data
arguments: data_label: D142
type: string
name: read_data
arguments: data_label: D47
type: string
name: read_data
arguments: data_label: D2
type: string
name: read_data
arguments: data_label: D121
type: string
name: read_data
arguments: data_label: D131
type: string
name: read_data
arguments: data_label: D154
type: string

tool: D116: %s%s%s

tool: D16: vertebrado

tool: D4: ave

tool: D7: carnivoro

tool: D118: aguia


tool: D62: pomba


tool: D108: onivoro

tool: D81: homem


tool: D9: vaca


tool: D142: inseto

tool: D47: hematofago

tool: D2: pulga


tool: D121: lagarta


tool: D131: sanguessuga


tool: D154: minhoca


assistant: ```c
int main(void) {
  char a[128], b[128], c[128];
  scanf("%s%s%s", &a, &b, &c);
  if (strcmp(a, "vertebrado") == 0) {
    if (strcmp(b, "ave") == 0) {
      if (strcmp(c, "carnivoro") == 0) {
        printf("aguia\n");
      } else {
        printf("pomba\n");
      }
    } else {
      if (strcmp(c, "onivoro") == 0) {
        printf("homem\n");
      } else {
        printf("vaca\n");
      }
    }
  } else {
    if (strcmp(b, "inseto") == 0) {
      if (strcmp(c, "hematofago") == 0) {
        printf("pulga\n");
      } else {
        printf("lagarta\n");
      }
    } else {
      if (strcmp(c, "hematofago") == 0) {
        printf("sanguessuga\n");
      } else {
        printf("minhoca\n");
      }
    }
  }
  return 0;
}
```