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

```asm
<printusage_build>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D206(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D56(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D207(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D90(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D77(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D171(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D130(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D108(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D168(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D157(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D85(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D50
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D206
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D8
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D56
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D207
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D91
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D90
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D84
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D29
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D184
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D5
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D77
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D171
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D68
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D86
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D49
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D130
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D108
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D168
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D157
type_guessed: string
name: extract_symbolic_data
arguments: data_tag: D85
type_guessed: string

tool: D50: Usage : %s <options> fastafile readlength(range) outdir outprefix


tool: D206: 	ex (SE, unstranded, readlength 76 bp) : %s Hsa.GRCh37.65.gtf.fa 76 rsh human.rna.fna.SE.l76


tool: D8: 	ex (SE, forward-stranded, readlength 50-60 bp) : %s -s ssf Hsa.GRCh37.65.gtf.fa 50-60 rsh human.rna.fna.SE.l50-60.ssf


tool: D56: 	ex (PE, unstranded, readlength 101 bp, fraglength range 1-400 bp, use 4 threads) : %s --PE -p 8 Hsa.GRCh37.65.gtf.fa 101 rsh human.rna.fna.PE.l101.F1-400


tool: D207: 	ex (PE, unstranded, readlength 101 bp, fraglength range 1-500 bp, Refseq format, use 8 threads) : %s --PE -h R -p 8 -F 500 human.rna.fna 101 rsh human.rna.fna.PE.l101.F1-500


tool: D91: 	Input files


tool: D90: 	   fasta file : A transcriptome sequence library file in fasta format. The header can either be in Refseq format('>xx|xx|xx|name|xx') in which name or xx does not contain '|' letter, or in Ensembl format '>name' or '>name xx' in which name does not contain whitespace(space or tab) and xx is separated by whitespace from the name. Name must be a unique identifier of a sequence.


tool: D84: 	Options

tool: D29: 	  -P, --PE : paired-end data (default : single-end)

tool: D184: 	  -s, --strand_type <strand_type> : set strand type ('ns','ssf','ssr' for single-end, 'ns','ssfr','ssrf' for paired-end). (default: ns(unstranded))

tool: D5: 	  -p, --maxthread <num_thread>: number of threads to use simultaneously. Using multiple threads comes with a slight increase in memory usage. We recommend -p 4 for an optimal performance. (default : 1)

tool: D77: 	  -F, --maxfraglen <Max_fraglen> : Maximum fragment length. Use a number that is safely large, unless you want to apply fragment length filtering. Default 400. Not applicable for SE.

tool: D171: 	  -f, --minfraglen <Min_fraglen> : Minimum fragment length. Use a number that is safely small, unless you want to apply fragment length filtering. Default 1. Not applicable for SE

tool: D68: 	  -h, --header <E|R> : fasta header option. E : Ensembl header(default), R : RefSeq header.

tool: D86: 	  -k, --max_repeat <max_repeat> : the maximum number of alignments per read allowed. Reads exceeding this number are discarded.

tool: D49: 	  -T, --print_sfa : print out (mate1) suffix array.

tool: D130: 	  -v --verbose : make a (very) verbose output log.

tool: D108: 	  -q --no_verbose : turn-off verbosity.


tool: D168: 	Advanced Options

tool: D157: 	  -b, --binsize <binsize> : binsize for indexing transcriptome (default : 5000). This bin size can be made smaller to improve speed at the cost of more memory, or vise versa.

tool: D85: 	  -t, --taglen <taglen> : length of short sequence tags to use for constructing suffix array on a subset of substrings only. This affects only speed and memory usage. Currently, three values are supported (1,2,3). (default 2)

assistant: ```c
void printusage_build(char *program) {
  printf("Usage : %s <options> fastafile readlength(range) outdir outprefix\n", program);
  printf("\tex (SE, unstranded, readlength 76 bp) : %s Hsa.GRCh37.65.gtf.fa 76 rsh human.rna.fna.SE.l76\n", program);
  printf("\tex (SE, forward-stranded, readlength 50-60 bp) : %s -s ssf Hsa.GRCh37.65.gtf.fa 50-60 rsh human.rna.fna.SE.l50-60.ssf\n", program);
  printf("\tex (PE, unstranded, readlength 101 bp, fraglength range 1-400 bp, use 4 threads) : %s --PE -p 8 Hsa.GRCh37.65.gtf.fa 101 rsh human.rna.fna.PE.l101.F1-400\n", program);
  printf("\tex (PE, unstranded, readlength 101 bp, fraglength range 1-500 bp, Refseq format, use 8 threads) : %s --PE -h R -p 8 -F 500 human.rna.fna 101 rsh human.rna.fna.PE.l101.F1-500\n", program);
  printf("\tInput files\n\n");
  printf("\t   fasta file : A transcriptome sequence library file in fasta format. The header can either be in Refseq format('>xx|xx|xx|name|xx') in which name or xx does not contain '|' letter, or in Ensembl format '>name' or '>name xx' in which name does not contain whitespace(space or tab) and xx is separated by whitespace from the name. Name must be a unique identifier of a sequence.\n\n");
  printf("\tOptions\n");
  printf("\t  -P, --PE : paired-end data (default : single-end)\n");
  printf("\t  -s, --strand_type <strand_type> : set strand type ('ns','ssf','ssr' for single-end, 'ns','ssfr','ssrf' for paired-end). (default: ns(unstranded))\n");
  printf("\t  -p, --maxthread <num_thread>: number of threads to use simultaneously. Using multiple threads comes with a slight increase in memory usage. We recommend -p 4 for an optimal performance. (default : 1)\n");
  printf("\t  -F, --maxfraglen <Max_fraglen> : Maximum fragment length. Use a number that is safely large, unless you want to apply fragment length filtering. Default 400. Not applicable for SE.\n");
  printf("\t  -f, --minfraglen <Min_fraglen> : Minimum fragment length. Use a number that is safely small, unless you want to apply fragment length filtering. Default 1. Not applicable for SE\n");
  printf("\t  -h, --header <E|R> : fasta header option. E : Ensembl header(default), R : RefSeq header.\n");
  printf("\t  -k, --max_repeat <max_repeat> : the maximum number of alignments per read allowed. Reads exceeding this number are discarded.\n");
  printf("\t  -T, --print_sfa : print out (mate1) suffix array.\n");
  printf("\t  -v --verbose : make a (very) verbose output log.\n");
  printf("\t  -q --no_verbose : turn-off verbosity.\n\n");
  printf("\tAdvanced Options\n");
  printf("\t  -b, --binsize <binsize> : binsize for indexing transcriptome (default : 5000). This bin size can be made smaller to improve speed at the cost of more memory, or vise versa.\n");
  printf("\t  -t, --taglen <taglen> : length of short sequence tags to use for constructing suffix array on a subset of substrings only. This affects only speed and memory usage. Currently, three values are supported (1,2,3). (default 2)\n");
}
```