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

```asm
<choice_menu>:
  endbr64
  sub    $0x18,%rsp
  lea    D104(%rip),%rdi
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  call   <printf@plt>
  lea    D53(%rip),%rdi
  call   <printf@plt>
  lea    D49(%rip),%rdi
  call   <printf@plt>
  lea    D9(%rip),%rdi
  call   <printf@plt>
  lea    D87(%rip),%rdi
  call   <printf@plt>
  lea    D100(%rip),%rdi
  call   <printf@plt>
  lea    D24(%rip),%rdi
  call   <printf@plt>
  lea    D79(%rip),%rdi
  call   <printf@plt>
  lea    D128(%rip),%rdi
  call   <printf@plt>
  lea    D155(%rip),%rdi
  call   <printf@plt>
  lea    D72(%rip),%rdi
  call   <printf@plt>
  lea    D51(%rip),%rdi
  call   <printf@plt>
  lea    D77(%rip),%rdi
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <printf@plt>
  lea    D109(%rip),%rdi
  call   <printf@plt>
  lea    0x4(%rsp),%rsi
  lea    D139(%rip),%rdi
  call   <scanf@plt>
  mov    0x4(%rsp),%eax
  mov    0x8(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L6
  add    $0x18,%rsp
  ret
L6:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D104
type_guessed: string
name: retrieve_data
arguments: data_tag: D53
type_guessed: string
name: retrieve_data
arguments: data_tag: D49
type_guessed: string
name: retrieve_data
arguments: data_tag: D9
type_guessed: string
name: retrieve_data
arguments: data_tag: D87
type_guessed: string
name: retrieve_data
arguments: data_tag: D100
type_guessed: string
name: retrieve_data
arguments: data_tag: D24
type_guessed: string
name: retrieve_data
arguments: data_tag: D79
type_guessed: string
name: retrieve_data
arguments: data_tag: D128
type_guessed: string
name: retrieve_data
arguments: data_tag: D155
type_guessed: string
name: retrieve_data
arguments: data_tag: D72
type_guessed: string
name: retrieve_data
arguments: data_tag: D51
type_guessed: string
name: retrieve_data
arguments: data_tag: D77
type_guessed: string
name: retrieve_data
arguments: data_tag: D46
type_guessed: string
name: retrieve_data
arguments: data_tag: D109
type_guessed: string
name: retrieve_data
arguments: data_tag: D139
type_guessed: string

tool: D104: 
***************************


tool: D53: 1 : Print Linklist.


tool: D49: 2 : Print Linklist reverse.


tool: D9: 3 : Add node at start.


tool: D87: 4 : Add node at end.


tool: D100: 5 : Delete node from start.


tool: D24: 6 : Delete node from end.


tool: D79: 7 : Selected delete.


tool: D128: 8 : Match password.


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


tool: D72: 10 : Check linklist length.


tool: D51: 11 : Save linklist in file.


tool: D77: 12 : Retrive linklist form file.


tool: D46: ***************************

tool: D109: 
Enter your choice : 

tool: D139: %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;
}
```