user: Please show me the C implementation that matches the assembly code listed below:

```asm
<progreso_altas>:
  endbr64
  push   %rbp
  xor    %eax,%eax
  lea    D42(%rip),%rbp
  call   <clrscr@plt>
  mov    $0x6,%esi
  mov    $0x19,%edi
  call   <gotoxy@plt>
  mov    $0xb,%edi
  call   <textcolor@plt>
  lea    D0(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x14,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xe,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  xor    %edi,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D53(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x18,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xe,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  xor    %edi,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D97(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x1c,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xe,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  xor    %edi,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D35(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x20,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xe,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  xor    %edi,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D3(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x24,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xe,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  xor    %edi,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D1(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x28,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  xor    %eax,%eax
  mov    %rbp,%rdi
  call   <printf@plt>
  mov    $0x9,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D39(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x2c,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x9,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D78(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x30,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x9,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D34(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x34,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x9,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x26,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D45(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x96,%edi
  call   <Sleep@plt>
  mov    $0xe,%esi
  mov    $0x38,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0x9,%edi
  call   <textcolor@plt>
  mov    $0xe,%esi
  mov    $0x25,%edi
  call   <gotoxy@plt>
  mov    $0xf,%edi
  call   <textbackground@plt>
  mov    $0x25,%esi
  lea    D48(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  xor    %edi,%edi
  call   <textbackground@plt>
  mov    $0x96,%edi
  pop    %rbp
  jmp    10f0 <Sleep@plt>
```

tool_calls: name: extract_symbolic_data
arguments: tag: D42
type_infered: string
name: extract_symbolic_data
arguments: tag: D0
type_infered: string
name: extract_symbolic_data
arguments: tag: D53
type_infered: string
name: extract_symbolic_data
arguments: tag: D97
type_infered: string
name: extract_symbolic_data
arguments: tag: D35
type_infered: string
name: extract_symbolic_data
arguments: tag: D3
type_infered: string
name: extract_symbolic_data
arguments: tag: D1
type_infered: string
name: extract_symbolic_data
arguments: tag: D39
type_infered: string
name: extract_symbolic_data
arguments: tag: D78
type_infered: string
name: extract_symbolic_data
arguments: tag: D34
type_infered: string
name: extract_symbolic_data
arguments: tag: D45
type_infered: string
name: extract_symbolic_data
arguments: tag: D48
type_infered: string

tool: D42:     

tool: D0: Guardando archivo...

tool: D53: 10%c

tool: D97: 20%c

tool: D35: 30%c

tool: D3: 40%c

tool: D1: 50%c

tool: D39: 60%c

tool: D78: 70%c

tool: D34: 80%c

tool: D45: 90%c

tool: D48: 100%c

assistant: ```c
void progreso_altas(void) {
  char x = '%';
  clrscr();
  gotoxy(25, 6);
  textcolor(11);
  printf("Guardando archivo...");
  Sleep(150);
  gotoxy(20, 14);
  textbackground(15);
  printf("    ");
  textcolor(14);
  gotoxy(38, 14);
  textbackground(0);
  printf("10%c", x);
  Sleep(150);
  gotoxy(24, 14);
  textbackground(15);
  printf("    ");
  textcolor(14);
  gotoxy(38, 14);
  textbackground(0);
  printf("20%c", x);
  Sleep(150);
  gotoxy(28, 14);
  textbackground(15);
  printf("    ");
  textcolor(14);
  gotoxy(38, 14);
  textbackground(0);
  printf("30%c", x);
  Sleep(150);
  gotoxy(32, 14);
  textbackground(15);
  printf("    ");
  textcolor(14);
  gotoxy(38, 14);
  textbackground(0);
  printf("40%c", x);
  Sleep(150);
  gotoxy(36, 14);
  textbackground(15);
  printf("    ");
  textcolor(14);
  gotoxy(38, 14);
  textbackground(0);
  printf("50%c", x);
  Sleep(150);
  gotoxy(40, 14);
  textbackground(15);
  printf("    ");
  textcolor(9);
  gotoxy(38, 14);
  textbackground(15);
  printf("60%c", x);
  Sleep(150);
  gotoxy(44, 14);
  textbackground(15);
  printf("    ");
  textcolor(9);
  gotoxy(38, 14);
  textbackground(15);
  printf("70%c", x);
  Sleep(150);
  gotoxy(48, 14);
  textbackground(15);
  printf("    ");
  textcolor(9);
  gotoxy(38, 14);
  textbackground(15);
  printf("80%c", x);
  Sleep(150);
  gotoxy(52, 14);
  textbackground(15);
  printf("    ");
  textcolor(9);
  gotoxy(38, 14);
  textbackground(15);
  printf("90%c", x);
  Sleep(150);
  gotoxy(56, 14);
  textbackground(15);
  printf("    ");
  textcolor(9);
  gotoxy(37, 14);
  textbackground(15);
  printf("100%c", x);
  textbackground(0);
  Sleep(150);
}
```