user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %r15
  lea    D15(%rip),%r15
  push   %r14
  lea    D110(%rip),%r14
  push   %r13
  lea    D101(%rip),%r13
  push   %r12
  lea    D38(%rip),%r12
  push   %rbp
  lea    D21(%rip),%rbp
  push   %rbx
  lea    D18(%rip),%rbx
  sub    $0x68,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x58(%rsp)
  movabs $0x7d0000006978,%rax
  movq   $0x7ef4,0x48(%rsp)
  mov    %rax,0x30(%rsp)
  movabs $0x6b6c00007ef4,%rax
  mov    %rax,0x38(%rsp)
  movabs $0x7918b2d0cf48,%rax
  mov    %rax,0x40(%rsp)
  lea    0x2c(%rsp),%rax
  mov    %rax,0x8(%rsp)
  lea    0x24(%rsp),%rax
  mov    %rax,0x18(%rsp)
  lea    0x28(%rsp),%rax
  mov    %rax,0x10(%rsp)
  jmp    L43
L68:
  cmp    $0x3,%eax
  jne    L20
  mov    $0x1,%edi
  call   <exit@plt>
L20:
  mov    $0xa,%edi
  call   <putchar@plt>
L43:
  mov    %r15,%rdi
  call   <puts@plt>
  mov    %r14,%rdi
  call   <puts@plt>
  mov    %r13,%rdi
  call   <puts@plt>
  mov    %r12,%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D68(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    0x8(%rsp),%rsi
  mov    %rbx,%rdi
  call   <scanf@plt>
  mov    0x2c(%rsp),%eax
  lea    -0x1(%rax),%edx
  cmp    $0x1,%edx
  ja     L68
  lea    D64(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    0x18(%rsp),%rsi
  mov    %rbx,%rdi
  call   <scanf@plt>
  mov    0x24(%rsp),%esi
  cmp    $0x7,%esi
  jg     L17
  lea    D13(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  movslq 0x24(%rsp),%rax
  lea    D72(%rip),%rdi
  mov    0x30(%rsp,%rax,4),%esi
  xor    %eax,%eax
  call   <printf@plt>
  mov    0x2c(%rsp),%eax
L27:
  cmp    $0x2,%eax
  jne    L68
  lea    D49(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    0x10(%rsp),%rsi
  mov    %rbx,%rdi
  call   <scanf@plt>
  movslq 0x24(%rsp),%rax
  mov    0x28(%rsp),%edx
  mov    %edx,0x30(%rsp,%rax,4)
  jmp    L20
  nopl   0x0(%rax,%rax,1)
L17:
  lea    D29(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  mov    0x2c(%rsp),%eax
  jmp    L27
```

tool_calls: name: read_data
arguments: data_tag: D15
type_infered: string
name: read_data
arguments: data_tag: D110
type_infered: string
name: read_data
arguments: data_tag: D101
type_infered: string
name: read_data
arguments: data_tag: D38
type_infered: string
name: read_data
arguments: data_tag: D21
type_infered: string
name: read_data
arguments: data_tag: D18
type_infered: string
name: read_data
arguments: data_tag: D68
type_infered: string
name: read_data
arguments: data_tag: D64
type_infered: string
name: read_data
arguments: data_tag: D13
type_infered: string
name: read_data
arguments: data_tag: D72
type_infered: string
name: read_data
arguments: data_tag: D49
type_infered: string
name: read_data
arguments: data_tag: D29
type_infered: string

tool: D15: =========================================

tool: D110: =Simple Employe Salary Management System    =

tool: D101: =1.Display employee salary             =

tool: D38: =2.Modify employee salary              =

tool: D21: =3.Quit               =

tool: D18: %d

tool: D68: Please input your choose:

tool: D64: **Please input the employee number:

tool: D13: **Employee Mumber is %d.

tool: D72: The Salary is %d


tool: D49: **Please input new salary:

tool: D29: ##The error employee number!

assistant: ```c
void main() {
  int Employee[8] = {27000, 32000, 32500, 27500, 3000029000, 31000, 32500};
  int Index;
  int NewSalary;
  int Selection;
  while (1) {
    printf("=========================================\n");
    printf("=Simple Employe Salary Management System    =\n");
    printf("=1.Display employee salary             =\n");
    printf("=2.Modify employee salary              =\n");
    printf("=3.Quit               =\n");
    printf("Please input your choose:");
    scanf("%d", &Selection);
    if (Selection == 1 || Selection == 2) {
      printf("**Please input the employee number:");
      scanf("%d", &Index);
      if (Index < 8) {
        printf("**Employee Mumber is %d.", Index);
        printf("The Salary is %d\n", Employee[Index]);
      } else {
        printf("##The error employee number!\n");
        exit(1);
      }
    }
    switch (Selection) {
    case 1:
      break;
    case 2:
      printf("**Please input new salary:");
      scanf("%d", &NewSalary);
      Employee[Index] = NewSalary;
      break;
    case 3:
      exit(1);
      break;
    }
    printf("\n");
  }
}
```