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

```asm
<main>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  lea    D86(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x0,%eax
  call   <idt_install@plt>
  lea    D158(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x0,%eax
  call   <isrs_install@plt>
  lea    D58(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x0,%eax
  call   <irq_install@plt>
  sti
  lea    D150(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x0,%eax
  call   <timer_install@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  lea    D114(%rip),%rbp
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D12(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D56(%rip),%rbx
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D152(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D28(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D71(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D74(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D9(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  lea    D142(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbp,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    %rbx,%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  mov    $0x140,%edi
  mov    $0x0,%eax
  call   <timer_wait@plt>
  lea    D81(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x0,%eax
  call   <keyboard_install@plt>
  mov    $0x0,%eax
  call   <monitor_clear@plt>
  lea    D1(%rip),%rsi
  lea    D107(%rip),%rdi
  mov    $0x0,%eax
  call   <monitor_write@plt>
  mov    $0x2710,%edi
  mov    $0x0,%eax
  call   <speaker_set@plt>
  mov    $0x7d0,%esi
  mov    $0x7d0,%edi
  mov    $0x0,%eax
  call   <beep@plt>
  mov    $0x2710,%edi
  mov    $0x0,%eax
  call   <speaker_set@plt>
  mov    $0x7d0,%esi
  mov    $0x7d0,%edi
  mov    $0x0,%eax
  call   <beep@plt>
  mov    $0x2710,%edi
  mov    $0x0,%eax
  call   <speaker_set@plt>
  mov    $0x7d0,%esi
  mov    $0x7d0,%edi
  mov    $0x0,%eax
  call   <beep@plt>
  mov    $0x2710,%edi
  mov    $0x0,%eax
  call   <speaker_set@plt>
  mov    $0x7d0,%esi
  mov    $0x7d0,%edi
  mov    $0x0,%eax
  call   <beep@plt>
  mov    $0x0,%eax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: tag: D86
type: string
name: read_data
arguments: tag: D158
type: string
name: read_data
arguments: tag: D58
type: string
name: read_data
arguments: tag: D150
type: string
name: read_data
arguments: tag: D114
type: string
name: read_data
arguments: tag: D12
type: string
name: read_data
arguments: tag: D56
type: string
name: read_data
arguments: tag: D152
type: string
name: read_data
arguments: tag: D28
type: string
name: read_data
arguments: tag: D71
type: string
name: read_data
arguments: tag: D74
type: string
name: read_data
arguments: tag: D9
type: string
name: read_data
arguments: tag: D142
type: string
name: read_data
arguments: tag: D81
type: string
name: read_data
arguments: tag: D1
type: string
name: read_data
arguments: tag: D107
type: string

tool: D86: Inicializando la IDT


tool: D158: Inicializando las ISR


tool: D58: Inicializando las IRQ


tool: D150: Inicializando el PIT


tool: D114: 			---------------------------------


tool: D12: 			|  W to Sweet                     |


tool: D56: 


tool: D152: 			|  We to Sweet                    |


tool: D28: 			|  Wel to Sweet                   |


tool: D71: 			|  Welc to Sweet                  |


tool: D74: 			|  Welco to Sweet                 |


tool: D9: 			|  Welcom to Sweet                |


tool: D142: 			|  Welcome to Sweet               |


tool: D81: Inicializando el teclado


tool: D1: user

tool: D107: %s>>>

assistant: ```c
int main() {
  monitor_clear();
  monitor_write("Inicializando la IDT\n");
  idt_install();
  monitor_write("Inicializando las ISR\n");
  isrs_install();
  monitor_write("Inicializando las IRQ\n");
  irq_install();
  asm volatile("sti");
  monitor_write("Inicializando el PIT\n");
  timer_install();
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  W to Sweet                     |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  timer_wait(320);
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  We to Sweet                    |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  timer_wait(320);
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  Wel to Sweet                   |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  timer_wait(320);
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  Welc to Sweet                  |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  timer_wait(320);
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  Welco to Sweet                 |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  timer_wait(320);
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  Welcom to Sweet                |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  timer_wait(320);
  monitor_clear();
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\t\b\b\t\t\b|  Welcome to Sweet               |\n");
  monitor_write("\t\b\b\t\t---------------------------------\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_write("\n");
  monitor_clear();
  timer_wait(320);
  monitor_write("Inicializando el teclado\n");
  keyboard_install();
  monitor_clear();
  monitor_write("%s>>>", "user");
  speaker_set(10000);
  beep(2000, 2000);
  speaker_set(10000);
  beep(2000, 2000);
  speaker_set(10000);
  beep(2000, 2000);
  speaker_set(10000);
  beep(2000, 2000);
  return 0;
}
```