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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x470,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x468(%rbp)
  movl   $0x0,-0x454(%rbp)
  jmp    L89
L48:
  mov    -0x454(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%esi
  lea    D142(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x3f0(%rbp),%rcx
  mov    -0x454(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    %rax,%rdi
  call   <gets@plt>
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x450(%rbp),%rdx
  mov    -0x454(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    %rax,%rsi
  lea    D89(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    D140(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x420(%rbp),%rdx
  mov    -0x454(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  mov    %rax,%rsi
  lea    D89(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  addl   $0x1,-0x454(%rbp)
L89:
  cmpl   $0x9,-0x454(%rbp)
  jle    L48
  lea    D41(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x454(%rbp)
  jmp    L53
L56:
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  D117(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rdx
  lea    -0x3f0(%rbp),%rsi
  mov    -0x454(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rcx
  add    %rcx,%rax
  shl    $0x2,%rax
  lea    (%rsi,%rax,1),%rcx
  mov    -0x454(%rbp),%eax
  add    $0x1,%eax
  movq   %rdx,%xmm0
  mov    %rcx,%rdx
  mov    %eax,%esi
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  movss  -0x468(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x468(%rbp)
  cmpl   $0x0,-0x454(%rbp)
  jne    L55
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  movss  D14(%rip),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x464(%rbp)
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  movss  D14(%rip),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x460(%rbp)
  movl   $0x0,-0x45c(%rbp)
  movl   $0x0,-0x458(%rbp)
  jmp    L77
L55:
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  D117(%rip),%xmm1
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd -0x464(%rbp),%xmm1
  comisd %xmm1,%xmm0
  jbe    L60
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  movss  D14(%rip),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x464(%rbp)
  mov    -0x454(%rbp),%eax
  mov    %eax,-0x45c(%rbp)
L60:
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  D117(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtss2sd -0x460(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L77
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x420(%rbp,%rax,4),%xmm1
  mov    -0x454(%rbp),%eax
  cltq
  movss  -0x450(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  movss  D14(%rip),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x460(%rbp)
  mov    -0x454(%rbp),%eax
  mov    %eax,-0x458(%rbp)
L77:
  addl   $0x1,-0x454(%rbp)
L53:
  cmpl   $0x9,-0x454(%rbp)
  jle    L56
  lea    -0x3f0(%rbp),%rcx
  mov    -0x458(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  lea    (%rcx,%rax,1),%rdx
  pxor   %xmm1,%xmm1
  cvtss2sd -0x460(%rbp),%xmm1
  lea    -0x3f0(%rbp),%rsi
  mov    -0x45c(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rcx
  add    %rcx,%rax
  shl    $0x2,%rax
  lea    (%rsi,%rax,1),%rcx
  pxor   %xmm0,%xmm0
  cvtss2sd -0x464(%rbp),%xmm0
  pxor   %xmm3,%xmm3
  cvtss2sd -0x468(%rbp),%xmm3
  movq   %xmm3,%rax
  movapd %xmm1,%xmm2
  mov    %rcx,%rsi
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  mov    $0x3,%eax
  call   <printf@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L42
  call   <__stack_chk_fail@plt>
L42:
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D142
data_type: string
name: parse_data
arguments: label: D60
data_type: string
name: parse_data
arguments: label: D89
data_type: string
name: parse_data
arguments: label: D140
data_type: string
name: parse_data
arguments: label: D41
data_type: string
name: parse_data
arguments: label: D117
data_type: f64
name: parse_data
arguments: label: D86
data_type: string
name: parse_data
arguments: label: D14
data_type: byte[4]
name: parse_data
arguments: label: D9
data_type: string

tool: D142: Vendedor #%d
Nome: 

tool: D60: Total de vendas: R$

tool: D89:  %f

tool: D140: Pencentual de comissao: 

tool: D41: 
---- VENDEDORES ----

tool: D117: 100

tool: D86: #%d. %s
Comissao a receber: R$%.2f


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

tool: D9: 
Total de todas as vendas: R$%.2f
Maior valor a ser recebido: R$%.2f, pelo vendedor %s
Menor valor a ser recebido: R$%.2f, pelo vendedor %s


assistant: ```c
void main() {
  float total[10], comissao[10], contt = 0.0, maior, menor;
  char nomes[10][100];
  int ma, me, i;
  for (i = 0; i < 10; i++) {
    printf("Vendedor #%d\n"
           "Nome: ",
           i + 1);
    gets(nomes[i]);
    printf("Total de vendas: R$");
    scanf(" %f", &total[i]);
    printf("Pencentual de comissao: ");
    scanf(" %f", &comissao[i]);
    printf("\n");
    getchar();
  }
  printf("\n---- VENDEDORES ----\n");
  for (i = 0; i < 10; i++) {
    printf("#%d. %s\n"
           "Comissao a receber: R$%.2f\n",
           i + 1, nomes[i], comissao[i] * total[i] / 100.0);
    contt += total[i];
    if (i == 0) {
      maior = comissao[i] * total[i] / 100.0;
      menor = comissao[i] * total[i] / 100.0;
      ma = 0;
      me = 0;
    } else {
      if (comissao[i] * total[i] / 100.0 > maior) {
        maior = comissao[i] * total[i] / 100.0;
        ma = i;
      }
      if (comissao[i] * total[i] / 100.0 < menor) {
        menor = comissao[i] * total[i] / 100.0;
        me = i;
      }
    }
  }
  printf("\nTotal de todas as vendas: R$%.2f\n"
         "Maior valor a ser recebido: R$%.2f, pelo vendedor %s\n"
         "Menor valor a ser recebido: R$%.2f, pelo vendedor %s\n",
         contt, maior, nomes[ma], menor, nomes[me]);
}
```