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

```asm
<print_usage>:
  endbr64
  push   %rbp
  xor    %eax,%eax
  lea    D325(%rip),%rbp
  call   <print_version@plt>
  mov    %rbp,%rdi
  call   <usg@plt>
  lea    D69(%rip),%rdi
  call   <usg@plt>
  mov    %rbp,%rdi
  call   <usg@plt>
  lea    D239(%rip),%rdi
  call   <usg@plt>
  lea    D19(%rip),%rdi
  call   <usg@plt>
  lea    D211(%rip),%rdi
  call   <usg@plt>
  lea    D25(%rip),%rdi
  call   <usg@plt>
  lea    D122(%rip),%rdi
  call   <usg@plt>
  lea    D289(%rip),%rdi
  call   <usg@plt>
  lea    D281(%rip),%rdi
  call   <usg@plt>
  lea    D176(%rip),%rdi
  call   <usg@plt>
  lea    D194(%rip),%rdi
  call   <usg@plt>
  lea    D247(%rip),%rdi
  call   <usg@plt>
  lea    D208(%rip),%rdi
  call   <usg@plt>
  lea    D86(%rip),%rdi
  call   <usg@plt>
  lea    D144(%rip),%rdi
  call   <usg@plt>
  lea    D48(%rip),%rdi
  call   <usg@plt>
  lea    D270(%rip),%rdi
  call   <usg@plt>
  lea    D128(%rip),%rdi
  call   <usg@plt>
  lea    D21(%rip),%rdi
  call   <usg@plt>
  lea    D33(%rip),%rdi
  call   <usg@plt>
  lea    D196(%rip),%rdi
  call   <usg@plt>
  lea    D294(%rip),%rdi
  call   <usg@plt>
  lea    D152(%rip),%rdi
  call   <usg@plt>
  lea    D220(%rip),%rdi
  call   <usg@plt>
  lea    D230(%rip),%rdi
  call   <usg@plt>
  lea    D64(%rip),%rdi
  call   <usg@plt>
  lea    D7(%rip),%rdi
  call   <usg@plt>
  lea    D168(%rip),%rdi
  call   <usg@plt>
  lea    D52(%rip),%rdi
  call   <usg@plt>
  lea    D184(%rip),%rdi
  call   <usg@plt>
  lea    D290(%rip),%rdi
  call   <usg@plt>
  lea    D38(%rip),%rdi
  call   <usg@plt>
  lea    D285(%rip),%rdi
  call   <usg@plt>
  mov    %rbp,%rdi
  pop    %rbp
  jmp    1070 <usg@plt>
```

tool_calls: name: read_data
arguments: label: D325
type_infered: string
name: read_data
arguments: label: D69
type_infered: string
name: read_data
arguments: label: D239
type_infered: string
name: read_data
arguments: label: D19
type_infered: string
name: read_data
arguments: label: D211
type_infered: string
name: read_data
arguments: label: D25
type_infered: string
name: read_data
arguments: label: D122
type_infered: string
name: read_data
arguments: label: D289
type_infered: string
name: read_data
arguments: label: D281
type_infered: string
name: read_data
arguments: label: D176
type_infered: string
name: read_data
arguments: label: D194
type_infered: string
name: read_data
arguments: label: D247
type_infered: string
name: read_data
arguments: label: D208
type_infered: string
name: read_data
arguments: label: D86
type_infered: string
name: read_data
arguments: label: D144
type_infered: string
name: read_data
arguments: label: D48
type_infered: string
name: read_data
arguments: label: D270
type_infered: string
name: read_data
arguments: label: D128
type_infered: string
name: read_data
arguments: label: D21
type_infered: string
name: read_data
arguments: label: D33
type_infered: string
name: read_data
arguments: label: D196
type_infered: string
name: read_data
arguments: label: D294
type_infered: string
name: read_data
arguments: label: D152
type_infered: string
name: read_data
arguments: label: D220
type_infered: string
name: read_data
arguments: label: D230
type_infered: string
name: read_data
arguments: label: D64
type_infered: string
name: read_data
arguments: label: D7
type_infered: string
name: read_data
arguments: label: D168
type_infered: string
name: read_data
arguments: label: D52
type_infered: string
name: read_data
arguments: label: D184
type_infered: string
name: read_data
arguments: label: D290
type_infered: string
name: read_data
arguments: label: D38
type_infered: string
name: read_data
arguments: label: D285
type_infered: string

tool: D325: 


tool: D69: Usage: spamc [options] [-e command [args]] < message


tool: D239: Options:


tool: D19:   -d, --dest host[,host2]
                      Specify one or more hosts to connect to.
                      [default: localhost]


tool: D211:   -H , --randomize    Randomize IP addresses for the looked-up
                      hostname.


tool: D25:   -p, --port port     Specify port for connection to spamd.
                      [default: 783]


tool: D122:   -U, --socket path   Connect to spamd via UNIX domain sockets.


tool: D289:   -F, --config path   Use this configuration file.


tool: D281:   -t, --timeout timeout
                      Timeout in seconds for communications to
                      spamd. [default: 600]


tool: D176:   -n, --connect-timeout timeout
                      Timeout in seconds when opening a connection to
                      spamd. [default: 600]


tool: D194:   --filter-retries retries
                      Retry filtering this many times if the spamd
                      process fails (usually times out) [default: 1]


tool: D247:   --filter-retry-sleep sleep
                      Sleep for this time between failed filter
                      attempts, in seconds [default: 1]


tool: D208:   --connect-retries retries
                      Try connecting to spamd tcp socket this many times
                      [default: 3]


tool: D86:   --retry-sleep sleep Sleep for this time between attempts to
                      connect to spamd, in seconds [default: 1]


tool: D144:   -s, --max-size size Specify maximum message size, in bytes.
                      [default: 500k]


tool: D48:   -u, --username username
                      User for spamd to process this message under.
                      [default: current user]


tool: D270:   -L, --learntype learntype
                      Learn message as spam, ham or forget to
                      forget or unlearn the message.


tool: D128:   -C, --reporttype reporttype
                      Report message to collaborative filtering
                      databases.  Report type should be 'report' for
                      spam or 'revoke' for ham.


tool: D21:   -B, --bsmtp         Assume input is a single BSMTP-formatted
                      message.


tool: D33:   -c, --check         Just print the summary line and set an exit
                      code.


tool: D196:   -y, --tests         Just print the names of the tests hit.


tool: D294:   -r, --full-spam     Print full report for messages identified as
                      spam.


tool: D152:   -R, --full          Print full report for all messages.


tool: D220:   --headers           Rewrite only the message headers.


tool: D230:   -E, --exitcode      Filter as normal, and set an exit code.


tool: D64:   -x, --no-safe-fallback
                      Don't fallback safely.


tool: D7:   -l, --log-to-stderr Log errors and warnings to stderr.


tool: D168:   -e, --pipe-to command [args]
                      Pipe the output to the given command instead
                      of stdout. This must be the last option.


tool: D52:   -h, --help          Print this help message and exit.


tool: D184:   -V, --version       Print spamc version and exit.


tool: D290:   -K                  Keepalive check of spamd.


tool: D38:   -z                  Compress mail message sent to spamd.


tool: D285:   -f                  (Now default, ignored.)


assistant: ```c
void print_usage(void) {
  print_version();
  usg("\n");
  usg("Usage: spamc [options] [-e command [args]] < message\n");
  usg("\n");
  usg("Options:\n");
  usg("  -d, --dest host[,host2]\n"
      "                      Specify one or more hosts to connect to.\n"
      "                      [default: localhost]\n");
  usg("  -H , --randomize    Randomize IP addresses for the looked-up\n"
      "                      hostname.\n");
  usg("  -p, --port port     Specify port for connection to spamd.\n"
      "                      [default: 783]\n");
  usg("  -U, --socket path   Connect to spamd via UNIX domain sockets.\n");
  usg("  -F, --config path   Use this configuration file.\n");
  usg("  -t, --timeout timeout\n"
      "                      Timeout in seconds for communications to\n"
      "                      spamd. [default: 600]\n");
  usg("  -n, --connect-timeout timeout\n"
      "                      Timeout in seconds when opening a connection to\n"
      "                      spamd. [default: 600]\n");
  usg("  --filter-retries retries\n"
      "                      Retry filtering this many times if the spamd\n"
      "                      process fails (usually times out) [default: 1]\n");
  usg("  --filter-retry-sleep sleep\n"
      "                      Sleep for this time between failed filter\n"
      "                      attempts, in seconds [default: 1]\n");
  usg("  --connect-retries retries\n"
      "                      Try connecting to spamd tcp socket this many times\n"
      "                      [default: 3]\n");
  usg("  --retry-sleep sleep Sleep for this time between attempts to\n"
      "                      connect to spamd, in seconds [default: 1]\n");
  usg("  -s, --max-size size Specify maximum message size, in bytes.\n"
      "                      [default: 500k]\n");
  usg("  -u, --username username\n"
      "                      User for spamd to process this message under.\n"
      "                      [default: current user]\n");
  usg("  -L, --learntype learntype\n"
      "                      Learn message as spam, ham or forget to\n"
      "                      forget or unlearn the message.\n");
  usg("  -C, --reporttype reporttype\n"
      "                      Report message to collaborative filtering\n"
      "                      databases.  Report type should be 'report' for\n"
      "                      spam or 'revoke' for ham.\n");
  usg("  -B, --bsmtp         Assume input is a single BSMTP-formatted\n"
      "                      message.\n");
  usg("  -c, --check         Just print the summary line and set an exit\n"
      "                      code.\n");
  usg("  -y, --tests         Just print the names of the tests hit.\n");
  usg("  -r, --full-spam     Print full report for messages identified as\n"
      "                      spam.\n");
  usg("  -R, --full          Print full report for all messages.\n");
  usg("  --headers           Rewrite only the message headers.\n");
  usg("  -E, --exitcode      Filter as normal, and set an exit code.\n");
  usg("  -x, --no-safe-fallback\n"
      "                      Don't fallback safely.\n");
  usg("  -l, --log-to-stderr Log errors and warnings to stderr.\n");
  usg("  -e, --pipe-to command [args]\n"
      "                      Pipe the output to the given command instead\n"
      "                      of stdout. This must be the last option.\n");
  usg("  -h, --help          Print this help message and exit.\n");
  usg("  -V, --version       Print spamc version and exit.\n");
  usg("  -K                  Keepalive check of spamd.\n");
  usg("  -z                  Compress mail message sent to spamd.\n");
  usg("  -f                  (Now default, ignored.)\n");
  usg("\n");
}
```