user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x18(%rbp)
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x14(%rbp)
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x10(%rbp)
  lea    -0x24(%rbp),%rax
  mov    %rax,%rsi
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  jmp    L20
L29:
  lea    -0x20(%rbp),%rax
  mov    %rax,%rsi
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    -0x25(%rbp),%rax
  mov    %rax,%rsi
  lea    D137(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  movzbl -0x25(%rbp),%eax
  cmp    $0x43,%al
  jne    L41
  movss  -0x20(%rbp),%xmm0
  movss  -0x18(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x18(%rbp)
  jmp    L15
L41:
  movzbl -0x25(%rbp),%eax
  cmp    $0x52,%al
  jne    L65
  movss  -0x20(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  jmp    L15
L65:
  movss  -0x20(%rbp),%xmm0
  movss  -0x10(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
L15:
  movss  -0x1c(%rbp),%xmm1
  movss  D86(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x1c(%rbp)
L20:
  movss  -0x24(%rbp),%xmm0
  comiss -0x1c(%rbp),%xmm0
  ja     L29
  movss  -0x18(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  movss  -0x10(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0xc(%rbp),%eax
  movd   %eax,%xmm0
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x18(%rbp),%eax
  movd   %eax,%xmm0
  lea    D136(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x14(%rbp),%eax
  movd   %eax,%xmm0
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x10(%rbp),%eax
  movd   %eax,%xmm0
  lea    D74(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movss  -0x18(%rbp),%xmm0
  movaps %xmm0,%xmm1
  divss  -0xc(%rbp),%xmm1
  movss  D61(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movss  -0x14(%rbp),%xmm0
  movaps %xmm0,%xmm1
  divss  -0xc(%rbp),%xmm1
  movss  D61(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movss  -0x10(%rbp),%xmm0
  movaps %xmm0,%xmm1
  divss  -0xc(%rbp),%xmm1
  movss  D61(%rip),%xmm0
  mulss  %xmm0,%xmm1
  movd   %xmm1,%eax
  movd   %eax,%xmm0
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L34
  call   <__stack_chk_fail@plt>
L34:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D64
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D137
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D86
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_tag: D49
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D136
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D9
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D74
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D61
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_tag: D79
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D0
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D16
type_infered: string

tool: D64: %f

tool: D137:  %c

tool: {"D86": [0x00,0x00,0x80,0x3f]}

tool: D49: Total: %.0f cobaias


tool: D136: Total de coelhos: %.0f


tool: D9: Total de ratos: %.0f


tool: D74: Total de sapos: %.0f


tool: {"D61": [0x00,0x00,0xc8,0x42]}

tool: D79: Percentual de coelhos: %.2f %%


tool: D0: Percentual de ratos: %.2f %%


tool: D16: Percentual de sapos: %.2f %%


assistant: ```c
int main() {
  float a, b, c, e, f, d1 = 0, d2 = 0, d3 = 0;
  char d;
  scanf("%f", &a);
  for (e = 0; e < a; e++) {
    scanf("%f", &b);
    scanf(" %c", &d);
    if (d == 'C') {
      d1 += b;
    } else if (d == 'R') {
      d2 += b;
    } else
      d3 += b;
  }
  f = d1 + d2 + d3;
  printf("Total: %.0f cobaias\n", f);
  printf("Total de coelhos: %.0f\n", d1);
  printf("Total de ratos: %.0f\n", d2);
  printf("Total de sapos: %.0f\n", d3);
  printf("Percentual de coelhos: %.2f %%\n", ((d1 / f) * 100));
  printf("Percentual de ratos: %.2f %%\n", ((d2 / f) * 100));
  printf("Percentual de sapos: %.2f %%\n", ((d3 / f) * 100));
  return 0;
}
```