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

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rdi,%rsi
  mov    %rdi,%rbp
  xor    %eax,%eax
  lea    D143(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <strlen@plt>
  lea    D50(%rip),%rcx
  lea    D13(%rip),%rdi
  mov    %eax,%esi
  mov    %eax,%edx
  xor    %eax,%eax
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <puts@plt>
  lea    D70(%rip),%rdi
  call   <puts@plt>
  lea    D21(%rip),%rdi
  call   <puts@plt>
  lea    D111(%rip),%rdi
  call   <puts@plt>
  lea    D58(%rip),%rdi
  call   <puts@plt>
  lea    D83(%rip),%rdi
  call   <puts@plt>
  lea    D67(%rip),%rdi
  call   <puts@plt>
  lea    D100(%rip),%rdi
  call   <puts@plt>
  lea    D110(%rip),%rdi
  call   <puts@plt>
  lea    D128(%rip),%rdi
  call   <puts@plt>
  lea    D151(%rip),%rdi
  call   <puts@plt>
  lea    D119(%rip),%rdi
  call   <puts@plt>
  lea    D122(%rip),%rdi
  pop    %rbp
  jmp    1070 <puts@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D143
data_type: string
name: extract_symbolic_data
arguments: data_tag: D50
data_type: string
name: extract_symbolic_data
arguments: data_tag: D13
data_type: string
name: extract_symbolic_data
arguments: data_tag: D118
data_type: string
name: extract_symbolic_data
arguments: data_tag: D70
data_type: string
name: extract_symbolic_data
arguments: data_tag: D21
data_type: string
name: extract_symbolic_data
arguments: data_tag: D111
data_type: string
name: extract_symbolic_data
arguments: data_tag: D58
data_type: string
name: extract_symbolic_data
arguments: data_tag: D83
data_type: string
name: extract_symbolic_data
arguments: data_tag: D67
data_type: string
name: extract_symbolic_data
arguments: data_tag: D100
data_type: string
name: extract_symbolic_data
arguments: data_tag: D110
data_type: string
name: extract_symbolic_data
arguments: data_tag: D128
data_type: string
name: extract_symbolic_data
arguments: data_tag: D151
data_type: string
name: extract_symbolic_data
arguments: data_tag: D119
data_type: string
name: extract_symbolic_data
arguments: data_tag: D122
data_type: string

tool: D143: %s: [--verbose] [--every=n] [cmd1] [...] [cmdn]


tool: D50:  

tool: D13: %*.*s

tool: D118: Drive a string of GE lights connected to an Arduino.

tool: D70: 
Command can be one of:

tool: D21: 
  bulb:  Write bulbs as per specificed colors and ranges (default)

tool: D111:   init:    Initialize the bulbs

tool: D58:   sync:    Synchornize with the arduino

tool: D83:   status:  Print a sort status message

tool: D67:   clear:   Clear the bulbs on all strings

tool: D100: 
Additional options that apply to bulb mode:

tool: D110:     [--delay=usecs]

tool: D128:     [--string=n[-m]] [--addr=n[-m]] [--bright=n[-m]]

tool: D151:     [--red=n[-m]] [--green=n[-m]] [--blue=n[-m]]

tool: D119: --every indicates how many bulbs are sent before an ack is required.  Default 24.

tool: D122:   This prevents over driving the serial line.

assistant: ```c
void usage(char *argv0) {
  printf("%s: [--verbose] [--every=n] [cmd1] [...] [cmdn]\n", argv0);
  printf("%*.*s", (int)strlen(argv0), (int)strlen(argv0), " ");
  printf("Drive a string of GE lights connected to an Arduino.\n");
  printf("\nCommand can be one of:\n");
  printf("\n  bulb:  Write bulbs as per specificed colors and ranges (default)\n");
  printf("  init:    Initialize the bulbs\n");
  printf("  sync:    Synchornize with the arduino\n");
  printf("  status:  Print a sort status message\n");
  printf("  clear:   Clear the bulbs on all strings\n");
  printf("\nAdditional options that apply to bulb mode:\n");
  printf("    [--delay=usecs]\n");
  printf("    [--string=n[-m]] [--addr=n[-m]] [--bright=n[-m]]\n");
  printf("    [--red=n[-m]] [--green=n[-m]] [--blue=n[-m]]\n");
  printf("--every indicates how many bulbs are sent before an ack is required.  Default 24.\n");
  printf("  This prevents over driving the serial line.\n");
}
```