user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xc0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0xb0(%rbp),%rax
  mov    %rax,%rsi
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    -0xb0(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  mov    %eax,-0xb4(%rbp)
  movl   $0x0,-0xbc(%rbp)
  jmp    L128
L163:
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x61,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x64,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x67,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x6a,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x6d,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x70,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x74,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x77,%al
  je     L249
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x20,%al
  jne    L204
L249:
  addl   $0x1,-0xb8(%rbp)
L204:
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x62,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x65,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x68,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x6b,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x6e,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x71,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x75,%al
  je     L54
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x78,%al
  jne    L141
L54:
  addl   $0x2,-0xb8(%rbp)
L141:
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x63,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x66,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x69,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x6c,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x6f,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x72,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x76,%al
  je     L3
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x79,%al
  jne    L126
L3:
  addl   $0x3,-0xb8(%rbp)
L126:
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x7a,%al
  je     L152
  mov    -0xbc(%rbp),%eax
  cltq
  movzbl -0xb0(%rbp,%rax,1),%eax
  cmp    $0x73,%al
  jne    L256
L152:
  addl   $0x4,-0xb8(%rbp)
L256:
  addl   $0x1,-0xbc(%rbp)
L128:
  mov    -0xbc(%rbp),%eax
  cmp    -0xb4(%rbp),%eax
  jl     L163
  mov    -0xb8(%rbp),%eax
  mov    %eax,%esi
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L252
  call   <__stack_chk_fail@plt>
L252:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D21
data_type: string
name: parse_data
arguments: data_tag: D19
data_type: string
name: parse_data
arguments: data_tag: D22
data_type: string

tool: D21: %[^
]s

tool: D19: %d

tool: D22: 



assistant: ```c
int main() {
  int i;
  char arr[160];
  scanf("%[^\n]s", arr);
  int l = strlen(arr);
  int click_counter;
  for (i = 0; i < l; i++) {
    if (arr[i] == 'a' || arr[i] == 'd' || arr[i] == 'g' || arr[i] == 'j' || arr[i] == 'm' || arr[i] == 'p' || arr[i] == 't' || arr[i] == 'w' || arr[i] == ' ')
      click_counter += 1;
    if (arr[i] == 'b' || arr[i] == 'e' || arr[i] == 'h' || arr[i] == 'k' || arr[i] == 'n' || arr[i] == 'q' || arr[i] == 'u' || arr[i] == 'x')
      click_counter += 2;
    if (arr[i] == 'c' || arr[i] == 'f' || arr[i] == 'i' || arr[i] == 'l' || arr[i] == 'o' || arr[i] == 'r' || arr[i] == 'v' || arr[i] == 'y')
      click_counter += 3;
    if (arr[i] == 'z' || arr[i] == 's')
      click_counter += 4;
  }
  printf("%d", click_counter);
  printf("\n\n\n");
  return 0;
}
```