user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<full_usage>:
  endbr64
  sub    $0x8,%rsp
  lea    D123(%rip),%rdi
  call   <printf@plt>
  lea    D86(%rip),%rdi
  call   <printf@plt>
  lea    D50(%rip),%rdi
  call   <printf@plt>
  lea    D89(%rip),%rdi
  call   <printf@plt>
  lea    D91(%rip),%rdi
  call   <printf@plt>
  lea    D21(%rip),%rdi
  call   <printf@plt>
  lea    D110(%rip),%rdi
  call   <printf@plt>
  lea    D49(%rip),%rdi
  call   <printf@plt>
  lea    D72(%rip),%rdi
  call   <printf@plt>
  lea    D108(%rip),%rdi
  call   <printf@plt>
  lea    D117(%rip),%rdi
  call   <printf@plt>
  lea    D71(%rip),%rdi
  call   <printf@plt>
  lea    D134(%rip),%rdi
  call   <printf@plt>
  lea    D113(%rip),%rdi
  call   <printf@plt>
  lea    D67(%rip),%rdi
  call   <printf@plt>
  xor    %edi,%edi
  add    $0x8,%rsp
  jmp    1070 <exit@plt>
```

tool_calls: name: unpack_data
arguments: data_label: D123
type: string
name: unpack_data
arguments: data_label: D86
type: string
name: unpack_data
arguments: data_label: D50
type: string
name: unpack_data
arguments: data_label: D89
type: string
name: unpack_data
arguments: data_label: D91
type: string
name: unpack_data
arguments: data_label: D21
type: string
name: unpack_data
arguments: data_label: D110
type: string
name: unpack_data
arguments: data_label: D49
type: string
name: unpack_data
arguments: data_label: D72
type: string
name: unpack_data
arguments: data_label: D108
type: string
name: unpack_data
arguments: data_label: D117
type: string
name: unpack_data
arguments: data_label: D71
type: string
name: unpack_data
arguments: data_label: D134
type: string
name: unpack_data
arguments: data_label: D113
type: string
name: unpack_data
arguments: data_label: D67
type: string

tool: D123: mkpasswd [-m|-d|-b|-e] [-l saltlength] [-r rounds] [-s salt] [-p plaintext]


tool: D86:          [-R rawsalt]


tool: D50: -m Generate an MD5 password


tool: D89: -d Generate a DES password


tool: D91: -b Generate a BlowFish password


tool: D21: -e Generate an Extended DES password


tool: D110: -l Specify a length for a random MD5 or BlowFish salt


tool: D49: -r Specify a number of rounds for a BlowFish or Extended DES password


tool: D72:    BlowFish:  default 4, no more than 6 recommended


tool: D108:    Extended DES:  default 25


tool: D117: -s Specify a salt, 2 alphanumeric characters for DES, up to 16 for MD5,


tool: D71:    up to 22 for BlowFish, and 4 for Extended DES


tool: D134: -R Specify a raw salt passed directly to crypt()


tool: D113: -p Specify a plaintext password to use


tool: D67: Example: mkpasswd -m -s 3dr -p test


assistant: ```c
void full_usage(void) {
  printf("mkpasswd [-m|-d|-b|-e] [-l saltlength] [-r rounds] [-s salt] [-p plaintext]\n");
  printf("         [-R rawsalt]\n");
  printf("-m Generate an MD5 password\n");
  printf("-d Generate a DES password\n");
  printf("-b Generate a BlowFish password\n");
  printf("-e Generate an Extended DES password\n");
  printf("-l Specify a length for a random MD5 or BlowFish salt\n");
  printf("-r Specify a number of rounds for a BlowFish or Extended DES password\n");
  printf("   BlowFish:  default 4, no more than 6 recommended\n");
  printf("   Extended DES:  default 25\n");
  printf("-s Specify a salt, 2 alphanumeric characters for DES, up to 16 for MD5,\n");
  printf("   up to 22 for BlowFish, and 4 for Extended DES\n");
  printf("-R Specify a raw salt passed directly to crypt()\n");
  printf("-p Specify a plaintext password to use\n");
  printf("Example: mkpasswd -m -s 3dr -p test\n");
  exit(0);
}
```