user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<prompt>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D181(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D155(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D142(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D123(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D171(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D94(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D109(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D103(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D20(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D133(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <wrterr@plt>
  mov    $0x0,%edi
  call   <__exit@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D3
data_type: string
name: disassemble_data
arguments: data_label: D181
data_type: string
name: disassemble_data
arguments: data_label: D155
data_type: string
name: disassemble_data
arguments: data_label: D142
data_type: string
name: disassemble_data
arguments: data_label: D123
data_type: string
name: disassemble_data
arguments: data_label: D38
data_type: string
name: disassemble_data
arguments: data_label: D72
data_type: string
name: disassemble_data
arguments: data_label: D171
data_type: string
name: disassemble_data
arguments: data_label: D14
data_type: string
name: disassemble_data
arguments: data_label: D94
data_type: string
name: disassemble_data
arguments: data_label: D170
data_type: string
name: disassemble_data
arguments: data_label: D109
data_type: string
name: disassemble_data
arguments: data_label: D111
data_type: string
name: disassemble_data
arguments: data_label: D22
data_type: string
name: disassemble_data
arguments: data_label: D103
data_type: string
name: disassemble_data
arguments: data_label: D20
data_type: string
name: disassemble_data
arguments: data_label: D17
data_type: string
name: disassemble_data
arguments: data_label: D133
data_type: string
name: disassemble_data
arguments: data_label: D99
data_type: string

tool: D3: usage: spitbol [options] files[.spt or .spx] [args to HOST(2)]

tool: D181: source files are concatenated, filename '-' is standard input/output

tool: D155: # is a decimal number.  Append "k" for kilobytes, "m" for megabytes.

tool: D142: options:

tool: D123: -d# #bytes max heap            -i# #bytes initial heap size & enlarge amount

tool: D38: -m# #bytes max object size     -s# #bytes stack size

tool: D72: -c compiler statistics         -x execution statistics

tool: D171: -a same as -lcx                -l normal listing

tool: D14: -p listing with wide titles    -z listing with form feeds

tool: D94: -o=file[.lst]  listing file    -h suppress version ID/date in listing

tool: D170: -g# lines per page             -t# line width in characters

tool: D109: -b suppress signon message     -e errors to list file only

tool: D111: -k run with compilation error  -n suppress execution

tool: D22: -f no case-folding             -u "string" data passed to HOST(0)

tool: D103: -y write save (.spx) file

tool: D20: -r INPUT from source file following END statement

tool: D17: -T=file  write TERMINAL output to file

tool: D133: -#=file[options]  associate file with I/O channel #

tool: D99: option defaults: -d64m -i128k -m4m -s128k -g60 -t120

assistant: ```c
void prompt() {
  wrterr("usage: spitbol [options] files[.spt or .spx] [args to HOST(2)]");
  wrterr("source files are concatenated, filename '-' is standard input/output");
  wrterr("# is a decimal number.  Append \"k\" for kilobytes, \"m\" for megabytes.");
  wrterr("options:");
  wrterr("-d# #bytes max heap            -i# #bytes initial heap size & enlarge amount");
  wrterr("-m# #bytes max object size     -s# #bytes stack size");
  wrterr("-c compiler statistics         -x execution statistics");
  wrterr("-a same as -lcx                -l normal listing");
  wrterr("-p listing with wide titles    -z listing with form feeds");
  wrterr("-o=file[.lst]  listing file    -h suppress version ID/date in listing");
  wrterr("-g# lines per page             -t# line width in characters");
  wrterr("-b suppress signon message     -e errors to list file only");
  wrterr("-k run with compilation error  -n suppress execution");
  wrterr("-f no case-folding             -u \"string\" data passed to HOST(0)");
  wrterr("-y write save (.spx) file");
  wrterr("-r INPUT from source file following END statement");
  wrterr("-T=file  write TERMINAL output to file");
  wrterr("-#=file[options]  associate file with I/O channel #");
  wrterr("option defaults: -d64m -i128k -m4m -s128k -g60 -t120");
  __exit(0);
}
```