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

```asm
<imprime_tiempos>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  mov    %edx,-0x1c(%rbp)
  mov    %rcx,-0x28(%rbp)
  mov    %r8d,-0x20(%rbp)
  mov    %r9,-0x30(%rbp)
  cmpl   $0x5,-0x14(%rbp)
  ja     L136
  mov    -0x14(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D104(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D104(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  cmpl   $0x0,-0x18(%rbp)
  je     L67
  lea    D127(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
L67:
  lea    D70(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
  cmpl   $0x0,-0x18(%rbp)
  je     L23
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
L23:
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
  cmpl   $0x0,-0x18(%rbp)
  je     L111
  lea    D146(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
L111:
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
  cmpl   $0x0,-0x18(%rbp)
  je     L70
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
L70:
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
  cmpl   $0x0,-0x18(%rbp)
  je     L79
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
L79:
  lea    D74(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L136
  cmpl   $0x0,-0x18(%rbp)
  je     L10
  lea    D126(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L62
L10:
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L62:
  nop
L136:
  movl   $0x0,-0x4(%rbp)
  jmp    L30
L82:
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x1c(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm1,%xmm2
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x28(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x1c(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movapd %xmm2,%xmm1
  mov    %edx,%esi
  movq   %rax,%xmm0
  lea    D130(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  addl   $0x1,-0x4(%rbp)
L30:
  mov    -0x4(%rbp),%eax
  cmp    -0x20(%rbp),%eax
  jle    L82
  nop
  nop
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D127
type: string
name: disassemble_data
arguments: label: D70
type: string
name: disassemble_data
arguments: label: D120
type: string
name: disassemble_data
arguments: label: D72
type: string
name: disassemble_data
arguments: label: D146
type: string
name: disassemble_data
arguments: label: D86
type: string
name: disassemble_data
arguments: label: D87
type: string
name: disassemble_data
arguments: label: D21
type: string
name: disassemble_data
arguments: label: D96
type: string
name: disassemble_data
arguments: label: D74
type: string
name: disassemble_data
arguments: label: D126
type: string
name: disassemble_data
arguments: label: D35
type: string
name: disassemble_data
arguments: label: D130
type: string

tool: D127: INSERTADO CLASICO


tool: D70: INSERTADO


tool: D120: BORRADO CLASICO


tool: D72: BORRADO


tool: D146: COPIA CLASICA


tool: D86: COPIA


tool: D87: CONCATENADO CLASICO


tool: D21: CONCATENADO


tool: D96: COMPARACION CLASICA


tool: D74: COMPARACION


tool: D126: INSERTADO CON SOBREESCRITURA CLASICA


tool: D35: INSERTADO CON SOBREESCRITURA


tool: D130: %fus	%i			%f


assistant: ```c
void imprime_tiempos(int type, int clasic, int iter, double *time, int tam_time, int *tam) {
  int i;
  switch (type) {
  case 0:
    (clasic) ? printf("INSERTADO CLASICO\n") : printf("INSERTADO\n");
    break;
  case 1:
    (clasic) ? printf("BORRADO CLASICO\n") : printf("BORRADO\n");
    break;
  case 2:
    (clasic) ? printf("COPIA CLASICA\n") : printf("COPIA\n");
    break;
  case 3:
    (clasic) ? printf("CONCATENADO CLASICO\n") : printf("CONCATENADO\n");
    break;
  case 4:
    (clasic) ? printf("COMPARACION CLASICA\n") : printf("COMPARACION\n");
    break;
  case 5:
    (clasic) ? printf("INSERTADO CON SOBREESCRITURA CLASICA\n") : printf("INSERTADO CON SOBREESCRITURA\n");
    break;
  }
  for (i = 0; i <= tam_time; i++)
    printf("%fus\t%i\t\t\t%f\n", time[i] / iter, tam[i], (time[i] / iter) / tam[i]);
}
```