user: 这段汇编代码用C语言表示是什么样的?

```asm
<choice_menu>:
  endbr64
  sub    $0x18,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  lea    D130(%rip),%rdi
  call   <printf@plt>
  lea    D115(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D37(%rip),%rdi
  call   <printf@plt>
  lea    D127(%rip),%rdi
  call   <printf@plt>
  lea    D4(%rip),%rdi
  call   <printf@plt>
  lea    D112(%rip),%rdi
  call   <printf@plt>
  lea    D35(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D70(%rip),%rdi
  call   <printf@plt>
  lea    D142(%rip),%rdi
  call   <printf@plt>
  lea    D53(%rip),%rdi
  call   <printf@plt>
  lea    D0(%rip),%rdi
  call   <printf@plt>
  lea    D23(%rip),%rdi
  call   <printf@plt>
  lea    D145(%rip),%rdi
  call   <printf@plt>
  lea    0x4(%rsp),%rsi
  lea    D1(%rip),%rdi
  call   <scanf@plt>
  mov    0x4(%rsp),%eax
  mov    0x8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L8
  add    $0x18,%rsp
  ret
L8:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: tag: D130
data_type: string
name: parse_data
arguments: tag: D115
data_type: string
name: parse_data
arguments: tag: D90
data_type: string
name: parse_data
arguments: tag: D37
data_type: string
name: parse_data
arguments: tag: D127
data_type: string
name: parse_data
arguments: tag: D4
data_type: string
name: parse_data
arguments: tag: D112
data_type: string
name: parse_data
arguments: tag: D35
data_type: string
name: parse_data
arguments: tag: D85
data_type: string
name: parse_data
arguments: tag: D70
data_type: string
name: parse_data
arguments: tag: D142
data_type: string
name: parse_data
arguments: tag: D53
data_type: string
name: parse_data
arguments: tag: D0
data_type: string
name: parse_data
arguments: tag: D23
data_type: string
name: parse_data
arguments: tag: D145
data_type: string
name: parse_data
arguments: tag: D1
data_type: string

tool: D130: 
***************************


tool: D115: 1 : Print Linklist.


tool: D90: 2 : Print Linklist reverse.


tool: D37: 3 : Add node at start.


tool: D127: 4 : Add node at end.


tool: D4: 5 : Delete node from start.


tool: D112: 6 : Delete node from end.


tool: D35: 7 : Selected delete.


tool: D85: 8 : Match password.


tool: D70: 9 : Add node at n number.


tool: D142: 10 : Check linklist length.


tool: D53: 11 : Save linklist in file.


tool: D0: 12 : Retrive linklist form file.


tool: D23: ***************************

tool: D145: 
Enter your choice : 

tool: D1: %d

assistant: ```c
int choice_menu() {
  int choice;
  printf("\n***************************\n");
  printf("1 : Print Linklist.\n");
  printf("2 : Print Linklist reverse.\n");
  printf("3 : Add node at start.\n");
  printf("4 : Add node at end.\n");
  printf("5 : Delete node from start.\n");
  printf("6 : Delete node from end.\n");
  printf("7 : Selected delete.\n");
  printf("8 : Match password.\n");
  printf("9 : Add node at n number.\n");
  printf("10 : Check linklist length.\n");
  printf("11 : Save linklist in file.\n");
  printf("12 : Retrive linklist form file.\n");
  printf("***************************");
  printf("\nEnter your choice : ");
  scanf("%d", &choice);
  return choice;
}
```