user: Demonstrate the C code that generates the assembly output below:

```asm
<main>:
  endbr64
  push   %rbp
  lea    D130(%rip),%rdi
  lea    D62(%rip),%rbp
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  call   <printf@plt>
  lea    D8(%rip),%rdi
  call   <printf@plt>
  lea    D37(%rip),%rdi
  call   <printf@plt>
  lea    D78(%rip),%rdi
  call   <printf@plt>
  lea    D43(%rip),%rdi
  call   <printf@plt>
  lea    D104(%rip),%rdi
  call   <printf@plt>
  lea    D42(%rip),%rdi
  call   <printf@plt>
  lea    D53(%rip),%rdi
  call   <printf@plt>
  lea    D3(%rip),%rdi
  call   <printf@plt>
  lea    D139(%rip),%rdi
  call   <printf@plt>
  lea    0x4(%rsp),%rsi
  lea    D57(%rip),%rdi
  call   <scanf@plt>
  mov    %rbp,%rdi
  call   <system@plt>
  cmpl   $0x7,0x4(%rsp)
  ja     L10
  mov    0x4(%rsp),%eax
  lea    D27(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  xor    %eax,%eax
  call   <euler@plt>
  nopl   0x0(%rax)
L1:
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L26
  add    $0x10,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
  xor    %eax,%eax
  call   <raices@plt>
  jmp    L1
  xor    %eax,%eax
  call   <matrices@plt>
  jmp    L1
  xor    %eax,%eax
  call   <gauss@plt>
  jmp    L1
  xor    %eax,%eax
  call   <interpolacion@plt>
  jmp    L1
  xor    %eax,%eax
  call   <minimos@plt>
  jmp    L1
  xor    %eax,%eax
  call   <integracion@plt>
  jmp    L1
L10:
  mov    %rbp,%rdi
  call   <system@plt>
  lea    D84(%rip),%rdi
  call   <printf@plt>
  jmp    L1
L26:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_tag: D130
type_infered: string
name: read_data
arguments: data_tag: D62
type_infered: string
name: read_data
arguments: data_tag: D8
type_infered: string
name: read_data
arguments: data_tag: D37
type_infered: string
name: read_data
arguments: data_tag: D78
type_infered: string
name: read_data
arguments: data_tag: D43
type_infered: string
name: read_data
arguments: data_tag: D104
type_infered: string
name: read_data
arguments: data_tag: D42
type_infered: string
name: read_data
arguments: data_tag: D53
type_infered: string
name: read_data
arguments: data_tag: D3
type_infered: string
name: read_data
arguments: data_tag: D139
type_infered: string
name: read_data
arguments: data_tag: D57
type_infered: string
name: read_data
arguments: data_tag: D84
type_infered: string

tool: D130: ESIME Zacatenco


tool: D62: cls

tool: D8: Alumno: Tovar Ochoa Kevin Ricardo


tool: D37: Profesor: Martinez Roldan Enrique


tool: D78: Materia: Analisis numerico


tool: D43: Grupo: 3AM1



tool: D104: 1.-Raices
2.-Matrices
3.-Sistemas de ecuacion


tool: D42: 4.-Interpolacion


tool: D53: 5.-Minimos Cuadrados


tool: D3: 6.-Integracions


tool: D139: 7.- EDO


tool: D57: %d

tool: D84: Opcion Invalida

assistant: ```c
int main() {
  int menu;
  printf("ESIME Zacatenco\n");
  printf("Alumno: Tovar Ochoa Kevin Ricardo\n");
  printf("Profesor: Martinez Roldan Enrique\n");
  printf("Materia: Analisis numerico\n");
  printf("Grupo: 3AM1\n\n");
  printf("1.-Raices\n2.-Matrices\n3.-Sistemas de ecuacion\n");
  printf("4.-Interpolacion\n");
  printf("5.-Minimos Cuadrados\n");
  printf("6.-Integracions\n");
  printf("7.- EDO\n");
  scanf("%d", &menu);
  system("cls");
  switch (menu) {
  case 1:
    raices();
    break;
  case 2:
    matrices();
    break;
  case 3:
    gauss();
    break;
  case 4:
    interpolacion();
    break;
  case 5:
    minimos();
    break;
  case 6:
    integracion();
    break;
  case 7:
    euler();
    break;
  default:
    system("cls");
    printf("Opcion Invalida");
  }
  return 0;
}
```