user: 请将以下的汇编代码转换成C语言代码:

```asm
<Linearqueue1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D122(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D97(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D83(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D102(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D32(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L43:
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    -0x10(%rbp),%rax
  mov    %rax,%rsi
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x10(%rbp),%eax
  cmp    $0x5,%eax
  ja     L25
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D49(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D49(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    $0x0,%eax
  call   <insert1@plt>
  jmp    L85
  mov    $0x0,%eax
  call   <delete1@plt>
  mov    %eax,-0xc(%rbp)
  cmpl   $0xffffffff,-0xc(%rbp)
  je     L29
  mov    -0xc(%rbp),%eax
  mov    %eax,%esi
  lea    D56(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L29
  mov    $0x0,%eax
  call   <peek1@plt>
  mov    %eax,-0xc(%rbp)
  cmpl   $0xffffffff,-0xc(%rbp)
  je     L55
  mov    -0xc(%rbp),%eax
  mov    %eax,%esi
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L55
  mov    $0x0,%eax
  call   <display1@plt>
  jmp    L85
L25:
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L85
  nop
  jmp    L85
L29:
  nop
  jmp    L85
L55:
  nop
L85:
  mov    -0x10(%rbp),%eax
  cmp    $0x5,%eax
  jne    L43
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L115
  call   <__stack_chk_fail@plt>
L115:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D122
type_guessed: string
name: retrieve_data
arguments: label: D5
type_guessed: string
name: retrieve_data
arguments: label: D97
type_guessed: string
name: retrieve_data
arguments: label: D83
type_guessed: string
name: retrieve_data
arguments: label: D102
type_guessed: string
name: retrieve_data
arguments: label: D32
type_guessed: string
name: retrieve_data
arguments: label: D42
type_guessed: string
name: retrieve_data
arguments: label: D8
type_guessed: string
name: retrieve_data
arguments: label: D56
type_guessed: string
name: retrieve_data
arguments: label: D12
type_guessed: string
name: retrieve_data
arguments: label: D53
type_guessed: string

tool: D122: 
									*****MAIN MENU*****

tool: D5: 
									1.Insert an element

tool: D97: 
									2.Delete an element

tool: D83: 
									3.Peek

tool: D102: 
									4.Display the queue

tool: D32: 
									5.TO STOP

tool: D42: 
									Enter the option: 

tool: D8: %d

tool: D56: 
									The number deleted is : %d

tool: D12: 
									The first value in queue is : %d

tool: D53: OPTION DOESN'T EXIST TRY AGAIN

assistant: ```c
void Linearqueue1() {
  int option, val;
  printf("\n\t\t\t\t\t\t\t\t\t*****MAIN MENU*****");
  printf("\n\t\t\t\t\t\t\t\t\t1.Insert an element");
  printf("\n\t\t\t\t\t\t\t\t\t2.Delete an element");
  printf("\n\t\t\t\t\t\t\t\t\t3.Peek");
  printf("\n\t\t\t\t\t\t\t\t\t4.Display the queue");
  printf("\n\t\t\t\t\t\t\t\t\t5.TO STOP\n");
  do {
    printf("\n\t\t\t\t\t\t\t\t\tEnter the option: ");
    scanf("%d", &option);
    switch (option) {
    case 1:
      insert1();
      break;
    case 2:
      val = delete1();
      if (val != -1)
        printf("\n\t\t\t\t\t\t\t\t\tThe number deleted is : %d", val);
      break;
    case 3:
      val = peek1();
      if (val != -1)
        printf("\n\t\t\t\t\t\t\t\t\tThe first value in queue is : %d", val);
      break;
    case 4:
      display1();
      break;
    case 5:
      break;
    default:
      printf("OPTION DOESN\'T EXIST TRY AGAIN");
    }
  } while (option != 5);
}
```