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

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x127000(%rsp),%r11
L139:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L139
  sub    $0x6b0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movb   $0x30,-0x1276ad(%rbp)
  movl   $0x1,-0x1276a4(%rbp)
  movl   $0x0,-0x1276a8(%rbp)
  jmp    L25
L107:
  mov    -0x1276a8(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1276a0(%rbp,%rax,4)
  addl   $0x1,-0x1276a8(%rbp)
L25:
  cmpl   $0x270f,-0x1276a8(%rbp)
  jle    L107
  jmp    L135
L2:
  lea    D178(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D166(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D129(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D102(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D151(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    -0x1276ad(%rbp),%rax
  mov    %rax,%rsi
  lea    D172(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  movzbl -0x1276ad(%rbp),%eax
  movsbl %al,%eax
  sub    $0x31,%eax
  cmp    $0x4,%eax
  ja     L135
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D96(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D96(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    -0x113e20(%rbp),%r9
  lea    -0x11da60(%rbp),%r8
  lea    -0x7ef50(%rbp),%rcx
  lea    -0xfb780(%rbp),%rdx
  lea    -0x1276a0(%rbp),%rsi
  mov    -0x1276a4(%rbp),%eax
  sub    $0x8,%rsp
  lea    -0x2720(%rbp),%rdi
  push   %rdi
  mov    %eax,%edi
  call   <alta_modifica@plt>
  add    $0x10,%rsp
  jmp    L135
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1276ac(%rbp),%rax
  mov    %rax,%rsi
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  mov    -0x1276ac(%rbp),%eax
  lea    -0x1276a0(%rbp),%rcx
  mov    $0x2710,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <existe_legajo@plt>
  cmp    $0x1,%eax
  jne    L123
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x1276ac(%rbp),%eax
  lea    -0x113e20(%rbp),%r9
  lea    -0x11da60(%rbp),%r8
  lea    -0x7ef50(%rbp),%rcx
  lea    -0xfb780(%rbp),%rdx
  lea    -0x1276a0(%rbp),%rsi
  sub    $0x8,%rsp
  lea    -0x2720(%rbp),%rdi
  push   %rdi
  mov    %eax,%edi
  call   <alta_modifica@plt>
  add    $0x10,%rsp
  jmp    L135
L123:
  mov    -0x1276ac(%rbp),%eax
  mov    %eax,%esi
  lea    D177(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L135
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x1276ac(%rbp),%rax
  mov    %rax,%rsi
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  mov    -0x1276ac(%rbp),%eax
  lea    -0x1276a0(%rbp),%rcx
  mov    $0x2710,%edx
  mov    %rcx,%rsi
  mov    %eax,%edi
  call   <existe_legajo@plt>
  cmp    $0x1,%eax
  jne    L110
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x1276ac(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1276a0(%rbp,%rax,4)
  jmp    L135
L110:
  mov    -0x1276ac(%rbp),%eax
  mov    %eax,%esi
  lea    D177(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L135
  lea    -0x113e20(%rbp),%r8
  lea    -0x11da60(%rbp),%rdi
  lea    -0x7ef50(%rbp),%rcx
  lea    -0xfb780(%rbp),%rdx
  lea    -0x1276a0(%rbp),%rax
  sub    $0x8,%rsp
  lea    -0x2720(%rbp),%rsi
  push   %rsi
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rsi
  mov    $0x2710,%edi
  call   <listar@plt>
  add    $0x10,%rsp
  jmp    L135
  lea    D103(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L135:
  movzbl -0x1276ad(%rbp),%eax
  cmp    $0x39,%al
  jne    L2
  mov    $0x63,%edx
  lea    D93(%rip),%rax
  mov    %rax,%rsi
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L71
  call   <__stack_chk_fail@plt>
L71:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D178
data_type: string
name: disassemble_data
arguments: data_tag: D166
data_type: string
name: disassemble_data
arguments: data_tag: D129
data_type: string
name: disassemble_data
arguments: data_tag: D102
data_type: string
name: disassemble_data
arguments: data_tag: D151
data_type: string
name: disassemble_data
arguments: data_tag: D172
data_type: string
name: disassemble_data
arguments: data_tag: D117
data_type: string
name: disassemble_data
arguments: data_tag: D68
data_type: string
name: disassemble_data
arguments: data_tag: D44
data_type: string
name: disassemble_data
arguments: data_tag: D177
data_type: string
name: disassemble_data
arguments: data_tag: D53
data_type: string
name: disassemble_data
arguments: data_tag: D103
data_type: string
name: disassemble_data
arguments: data_tag: D93
data_type: string
name: disassemble_data
arguments: data_tag: D14
data_type: string

tool: D178: 
1-ALTA

tool: D166: 2-EDITAR

tool: D129: 3-BAJA

tool: D102: 4-LISTAR

tool: D151: 9-SALIR

tool: D172: %c

tool: D117: 
Legajo a editar:

tool: D68: %d

tool: D44: 
Existe

tool: D177: 
El legajo %d no existe

tool: D53: 
Legajo a eliminar:

tool: D103: 
GUARDADO

tool: D93: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/josemax15/laboratorio_1_utnfra/refs/heads/master/practica_primer_examen/main.c

tool: D14: 

--PAUSE- file: %s line:%d


assistant: ```c
int main(void) {
  char pregunta = '0';
  int proximo_legajo = 1;
  int legajo[10000];
  char nombre[10000][51];
  char apellido[10000][51];
  float salario[10000];
  char fecha[10000][10];
  char sector[10000];
  int pregunta_legajo;
  int i;
  for (i = 0; i < 10000; i++) {
    legajo[i] = -1;
  }
  while (pregunta != '9') {
    printf("\n1-ALTA\n");
    printf("2-EDITAR\n");
    printf("3-BAJA\n");
    printf("4-LISTAR\n");
    printf("9-SALIR\n");
    scanf("%c", &pregunta);
    switch (pregunta) {
    case '1':
      alta_modifica(proximo_legajo, legajo, nombre, apellido, salario, fecha, sector);
      break;
    case '2':
      printf("\nLegajo a editar:");
      scanf("%d", &pregunta_legajo);
      if (existe_legajo(pregunta_legajo, legajo, 10000) == 1) {
        printf("\nExiste");
        alta_modifica(pregunta_legajo, legajo, nombre, apellido, salario, fecha, sector);
      } else {
        printf("\nEl legajo %d no existe", pregunta_legajo);
      }
      break;
    case '3':
      printf("\nLegajo a eliminar:");
      scanf("%d", &pregunta_legajo);
      if (existe_legajo(pregunta_legajo, legajo, 10000) == 1) {
        printf("\nExiste");
        legajo[pregunta_legajo] = -1;
      } else {
        printf("\nEl legajo %d no existe", pregunta_legajo);
      }
      break;
      break;
    case '4':
      listar(10000, legajo, nombre, apellido, salario, fecha, sector);
      break;
    case '5':
      printf("\nGUARDADO\n");
      break;
    }
  }
  do {
    printf("\n\n--PAUSE- file: %s line:%d\n", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/josemax15/laboratorio_1_utnfra/refs/heads/master/practica_primer_examen/main.c", 99);
    getchar();
  } while (0);
  return 0;
}
```