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

```asm
<print_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D66(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D173(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D57(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D177(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D130(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D163(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D71(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D105(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D31(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D107(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D26(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D66
type_guessed: string
name: unpack_data
arguments: data_label: D173
type_guessed: string
name: unpack_data
arguments: data_label: D10
type_guessed: string
name: unpack_data
arguments: data_label: D57
type_guessed: string
name: unpack_data
arguments: data_label: D145
type_guessed: string
name: unpack_data
arguments: data_label: D177
type_guessed: string
name: unpack_data
arguments: data_label: D130
type_guessed: string
name: unpack_data
arguments: data_label: D19
type_guessed: string
name: unpack_data
arguments: data_label: D163
type_guessed: string
name: unpack_data
arguments: data_label: D71
type_guessed: string
name: unpack_data
arguments: data_label: D61
type_guessed: string
name: unpack_data
arguments: data_label: D105
type_guessed: string
name: unpack_data
arguments: data_label: D31
type_guessed: string
name: unpack_data
arguments: data_label: D131
type_guessed: string
name: unpack_data
arguments: data_label: D107
type_guessed: string
name: unpack_data
arguments: data_label: D26
type_guessed: string
name: unpack_data
arguments: data_label: D120
type_guessed: string
name: unpack_data
arguments: data_label: D17
type_guessed: string
name: unpack_data
arguments: data_label: D76
type_guessed: string

tool: D66: 
Usage: %s [-h] [-i] [-x] [-s speed]

tool: D173:  [-w rot_v] [-g gravity]


tool: D10: -h              Print this message.

tool: D57: -i              Print information about the demo.

tool: D145: -x              Enclose the particles in a box made of hexagons.

tool: D177: -s speed        Sets the number of new line segments per redraw 

tool: D130:                 interval per line. Default value: 3.

tool: D19: -w rot_v        Spins the hexagons on their centers, and the sides

tool: D163:                 of the box on their centers. Hexagons spin at the

tool: D71:                 rate rot_v degrees per redraw, and box sides spin

tool: D61:                 at -rot_v/2 degrees per redraw.

tool: D105: -g gravity      Sets the strength of the attraction of the eye to

tool: D31:                 the red particle. Actually, it's not gravity since

tool: D131:                 the attraction is proportionate to distance.

tool: D107:                 Default value: 0.002. Try large values!

tool: D26:  Executions control:  

tool: D120:     <spacebar>	step through single frames

tool: D17:     g		begin continuous frames

tool: D76:     s		stop continuous frames

assistant: ```c
void print_usage(char *program) {
  printf("\nUsage: %s [-h] [-i] [-x] [-s speed]", program);
  printf(" [-w rot_v] [-g gravity]\n\n");
  printf("-h              Print this message.\n");
  printf("-i              Print information about the demo.\n");
  printf("-x              Enclose the particles in a box made of hexagons.\n");
  printf("-s speed        Sets the number of new line segments per redraw \n");
  printf("                interval per line. Default value: 3.\n");
  printf("-w rot_v        Spins the hexagons on their centers, and the sides\n");
  printf("                of the box on their centers. Hexagons spin at the\n");
  printf("                rate rot_v degrees per redraw, and box sides spin\n");
  printf("                at -rot_v/2 degrees per redraw.\n");
  printf("-g gravity      Sets the strength of the attraction of the eye to\n");
  printf("                the red particle. Actually, it's not gravity since\n");
  printf("                the attraction is proportionate to distance.\n");
  printf("                Default value: 0.002. Try large values!\n");
  printf(" Executions control:  \n");
  printf("    <spacebar>	step through single frames\n");
  printf("    g		begin continuous frames\n");
  printf("    s		stop continuous frames\n");
}
```