user: Please show me the C implementation that matches the assembly code listed below:

```asm
<debug_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D113(%rip),%rax
  mov    %rax,%rsi
  lea    D62(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D132(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D113(%rip),%rax
  mov    %rax,%rsi
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D98(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D113(%rip),%rax
  mov    %rax,%rsi
  lea    D105(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D114(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x0,%eax
  call   <list_debugs@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: label: D113
type_infered: string
name: disassemble_data
arguments: label: D62
type_infered: string
name: disassemble_data
arguments: label: D7
type_infered: string
name: disassemble_data
arguments: label: D50
type_infered: string
name: disassemble_data
arguments: label: D132
type_infered: string
name: disassemble_data
arguments: label: D44
type_infered: string
name: disassemble_data
arguments: label: D3
type_infered: string
name: disassemble_data
arguments: label: D61
type_infered: string
name: disassemble_data
arguments: label: D73
type_infered: string
name: disassemble_data
arguments: label: D98
type_infered: string
name: disassemble_data
arguments: label: D105
type_infered: string
name: disassemble_data
arguments: label: D114
type_infered: string

tool: D113: subnet-tools

tool: D62: Usage: %s -D Debugs [OPTIONS] [COMMAND] [FILES]


tool: D7: Debugs looks like : symbol1:level,symbol2:level;...

tool: D50: symbol is the  symbol to  debug, increasing level gives more info, ie :

tool: D132: level 1 : get more infos on errors (badly formatted file, bad IP etc...)

tool: D44: level 4+ : print  internal program debug info ; wont tell you anything without source code

tool: D3: level 9 : if implemented, print info for each loop of the program

tool: D61: Example 1 :

tool: D73: '%s -D memory:1,parseopts:2,trucmuche:3 simplify1 MYFILE'


tool: D98: Example 2 :

tool: D105: '%s -D loadcsv:3 sort MYFILE' will tell you every invalid line in your file.



tool: D114: Available symbols :

assistant: ```c
void debug_usage(void) {
  printf("Usage: %s -D Debugs [OPTIONS] [COMMAND] [FILES]\n", "subnet-tools");
  printf("Debugs looks like : symbol1:level,symbol2:level;...\n");
  printf("symbol is the  symbol to  debug, increasing level gives more info, ie :\n");
  printf("level 1 : get more infos on errors (badly formatted file, bad IP etc...)\n");
  printf("level 4+ : print  internal program debug info ; wont tell you anything without source code\n");
  printf("level 9 : if implemented, print info for each loop of the program\n");
  printf("Example 1 :\n");
  printf("'%s -D memory:1,parseopts:2,trucmuche:3 simplify1 MYFILE'\n", "subnet-tools");
  printf("Example 2 :\n");
  printf("'%s -D loadcsv:3 sort MYFILE' will tell you every invalid line in your file.\n\n", "subnet-tools");
  printf("Available symbols :\n");
  list_debugs();
}
```