user: 下面的汇编指令对应的C源代码是什么:

```asm
<help>:
  endbr64
  test   %rdi,%rdi
  je     L51
  push   %rbp
  lea    D31(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  test   %eax,%eax
  je     L63
  lea    D25(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L58
  lea    D120(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L85
  lea    D103(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L22
  lea    D29(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L117
  lea    D94(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L52
  lea    D46(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L67
  lea    D129(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L104
  lea    D115(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L57
  lea    D127(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L46
  lea    D12(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L125
  lea    D119(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L113
  pop    %rbp
  jmp    1210 <help_checkout@plt>
  nopl   0x0(%rax,%rax,1)
L63:
  pop    %rbp
  jmp    1160 <help_help@plt>
  cs nopw 0x0(%rax,%rax,1)
L58:
  pop    %rbp
  jmp    11f0 <help_prompt@plt>
  cs nopw 0x0(%rax,%rax,1)
L22:
  pop    %rbp
  jmp    1150 <help_drop@plt>
  cs nopw 0x0(%rax,%rax,1)
L51:
  xor    %eax,%eax
  jmp    11c0 <help_ls@plt>
  nopw   0x0(%rax,%rax,1)
L85:
  pop    %rbp
  jmp    1130 <help_init@plt>
  cs nopw 0x0(%rax,%rax,1)
L117:
  pop    %rbp
  jmp    11e0 <help_create_service@plt>
  cs nopw 0x0(%rax,%rax,1)
L104:
  pop    %rbp
  jmp    1180 <help_back@plt>
  cs nopw 0x0(%rax,%rax,1)
L52:
  pop    %rbp
  jmp    11b0 <help_list@plt>
  cs nopw 0x0(%rax,%rax,1)
L67:
  pop    %rbp
  jmp    1190 <help_switch@plt>
  cs nopw 0x0(%rax,%rax,1)
L57:
  pop    %rbp
  jmp    11a0 <help_book@plt>
L46:
  pop    %rbp
  jmp    1200 <help_service@plt>
L113:
  lea    D49(%rip),%rdi
  pop    %rbp
  jmp    11d0 <error_print@plt>
L125:
  pop    %rbp
  jmp    1140 <help_bill@plt>
```

tool_calls: name: read_data
arguments: label: D31
data_type: string
name: read_data
arguments: label: D25
data_type: string
name: read_data
arguments: label: D120
data_type: string
name: read_data
arguments: label: D103
data_type: string
name: read_data
arguments: label: D29
data_type: string
name: read_data
arguments: label: D94
data_type: string
name: read_data
arguments: label: D46
data_type: string
name: read_data
arguments: label: D129
data_type: string
name: read_data
arguments: label: D115
data_type: string
name: read_data
arguments: label: D127
data_type: string
name: read_data
arguments: label: D12
data_type: string
name: read_data
arguments: label: D119
data_type: string
name: read_data
arguments: label: D49
data_type: string

tool: D31: help

tool: D25: prompt

tool: D120: init

tool: D103: drop

tool: D29: create-service

tool: D94: list

tool: D46: switch

tool: D129: back

tool: D115: book

tool: D127: service

tool: D12: bill

tool: D119: checkout

tool: D49: Unknown command!

assistant: ```c
void help(char *command) {
  if (!command)
    help_ls();
  else if (!strcmp(command, "help"))
    help_help();
  else if (!strcmp(command, "prompt"))
    help_prompt();
  else if (!strcmp(command, "init"))
    help_init();
  else if (!strcmp(command, "drop"))
    help_drop();
  else if (!strcmp(command, "create-service"))
    help_create_service();
  else if (!strcmp(command, "list"))
    help_list();
  else if (!strcmp(command, "switch"))
    help_switch();
  else if (!strcmp(command, "back"))
    help_back();
  else if (!strcmp(command, "book"))
    help_book();
  else if (!strcmp(command, "service"))
    help_service();
  else if (!strcmp(command, "bill"))
    help_bill();
  else if (!strcmp(command, "checkout"))
    help_checkout();
  else
    error_print("Unknown command!");
}
```