user: 请将以下的汇编代码转换成C语言代码:

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rdi,%rbp
  lea    D63(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rsi
  lea    D110(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D13(%rip),%rdi
  call   <puts@plt>
  lea    D99(%rip),%rdi
  call   <puts@plt>
  lea    D3(%rip),%rdi
  call   <puts@plt>
  lea    D2(%rip),%rdi
  call   <puts@plt>
  lea    D131(%rip),%rdi
  call   <puts@plt>
  lea    D89(%rip),%rdi
  call   <puts@plt>
  lea    D109(%rip),%rdi
  call   <puts@plt>
  lea    D137(%rip),%rdi
  call   <puts@plt>
  lea    D119(%rip),%rdi
  call   <puts@plt>
  lea    D50(%rip),%rdi
  call   <puts@plt>
  lea    D47(%rip),%rdi
  call   <puts@plt>
  lea    D81(%rip),%rdi
  call   <puts@plt>
  lea    D96(%rip),%rdi
  call   <puts@plt>
  lea    D144(%rip),%rdi
  call   <puts@plt>
  lea    D77(%rip),%rdi
  call   <puts@plt>
  xor    %edi,%edi
  pop    %rbp
  jmp    1090 <exit@plt>
```

tool_calls: name: retrieve_data
arguments: tag: D63
type_infered: string
name: retrieve_data
arguments: tag: D110
type_infered: string
name: retrieve_data
arguments: tag: D13
type_infered: string
name: retrieve_data
arguments: tag: D99
type_infered: string
name: retrieve_data
arguments: tag: D3
type_infered: string
name: retrieve_data
arguments: tag: D2
type_infered: string
name: retrieve_data
arguments: tag: D131
type_infered: string
name: retrieve_data
arguments: tag: D89
type_infered: string
name: retrieve_data
arguments: tag: D109
type_infered: string
name: retrieve_data
arguments: tag: D137
type_infered: string
name: retrieve_data
arguments: tag: D119
type_infered: string
name: retrieve_data
arguments: tag: D50
type_infered: string
name: retrieve_data
arguments: tag: D47
type_infered: string
name: retrieve_data
arguments: tag: D81
type_infered: string
name: retrieve_data
arguments: tag: D96
type_infered: string
name: retrieve_data
arguments: tag: D144
type_infered: string
name: retrieve_data
arguments: tag: D77
type_infered: string

tool: D63: ccsrch 1.0.9 (c) 2012-2014 Adam Caudill <adam@adamcaudill.com>
             (c) 2007 Mike Beekey <zaphod2718@yahoo.com>

tool: D110: Usage: %s <options> <start path>


tool: D13:   where <options> are:

tool: D99:     -b		   Add the byte offset into the file of the number

tool: D3:     -e		   Include the Modify Access and Create times in terms 
		   of seconds since the epoch

tool: D2:     -f		   Only print the filename w/ potential PAN data

tool: D131:     -j		   Include the Modify Access and Create times in terms 
		   of normal date/time

tool: D89:     -o <filename>  Output the data to the file <filename> vs. standard out

tool: D109:     -t <1 or 2>	   Check if the pattern follows either a Track 1 
		   or 2 format

tool: D137:     -T		   Check for both Track 1 and Track 2 patterns

tool: D119:     -c		   Show a count of hits per file (only when using -o)

tool: D50:     -s		   Show live status information (only when using -o)

tool: D47:     -l N	   Limits the number of results from a single file before going
		   on to the next file.

tool: D81:     -n <list>      File extensions to exclude (i.e .dll,.exe)

tool: D96:     -m		   Mask the PAN number.

tool: D144:     -h		   Usage information


tool: D77: See https://github.com/adamcaudill/ccsrch for more information.


assistant: ```c
void usage(char *progname) {
  printf("%s\n", "ccsrch 1.0.9 (c) 2012-2014 Adam Caudill <adam@adamcaudill.com>\n             (c) 2007 Mike Beekey <zaphod2718@yahoo.com>");
  printf("Usage: %s <options> <start path>\n", progname);
  printf("  where <options> are:\n");
  printf("    -b\t\t   Add the byte offset into the file of the number\n");
  printf("    -e\t\t   Include the Modify Access and Create times in terms \n\t\t   of seconds since the epoch\n");
  printf("    -f\t\t   Only print the filename w/ potential PAN data\n");
  printf("    -j\t\t   Include the Modify Access and Create times in terms \n\t\t   of normal date/time\n");
  printf("    -o <filename>  Output the data to the file <filename> vs. standard out\n");
  printf("    -t <1 or 2>\t   Check if the pattern follows either a Track 1 \n\t\t   or 2 format\n");
  printf("    -T\t\t   Check for both Track 1 and Track 2 patterns\n");
  printf("    -c\t\t   Show a count of hits per file (only when using -o)\n");
  printf("    -s\t\t   Show live status information (only when using -o)\n");
  printf("    -l N\t   Limits the number of results from a single file before going\n\t\t   on to the next file.\n");
  printf("    -n <list>      File extensions to exclude (i.e .dll,.exe)\n");
  printf("    -m\t\t   Mask the PAN number.\n");
  printf("    -h\t\t   Usage information\n\n");
  printf("See https://github.com/adamcaudill/ccsrch for more information.\n\n");
  exit(0);
}
```