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

```asm
<usage>:
  endbr64
  push   %r12
  mov    %rsi,%rdx
  mov    %rdi,%r12
  lea    D62(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x36,%edx
  mov    $0x1,%esi
  lea    D142(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x15,%edx
  mov    $0x1,%esi
  lea    D149(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x35,%edx
  mov    $0x1,%esi
  lea    D1(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x21,%edx
  mov    $0x1,%esi
  lea    D43(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x28,%edx
  mov    $0x1,%esi
  lea    D2(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x38,%edx
  mov    $0x1,%esi
  lea    D12(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x38,%edx
  mov    $0x1,%esi
  lea    D88(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x33,%edx
  mov    $0x1,%esi
  lea    D102(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x36,%edx
  mov    $0x1,%esi
  lea    D70(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x25,%edx
  mov    $0x1,%esi
  lea    D97(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x36,%edx
  mov    $0x1,%esi
  lea    D147(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x36,%edx
  mov    $0x1,%esi
  lea    D121(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x29,%edx
  mov    $0x1,%esi
  lea    D56(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x36,%edx
  mov    $0x1,%esi
  lea    D65(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x31,%edx
  mov    $0x1,%esi
  lea    D84(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  pop    %r12
  mov    $0x2e,%edx
  mov    $0x1,%esi
  lea    D28(%rip),%rdi
  jmp    1070 <fwrite@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D62
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D142
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D149
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D1
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D43
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D2
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D12
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D88
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D102
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D70
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D97
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D147
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D121
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D56
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D65
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D84
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D28
type_guessed: string

tool: D62: usage: %s [-h|-?] [-v] [-l] [-d] [-3] [-n nrruns] [-i iterations]


tool: D142:                      [-r rollout] [-a] test [test...]


tool: D149: 
	-h|-?  : this help


tool: D1: 	-v     : verbose, display actual PMC counter values


tool: D43: 	-l     : list all defined tests


tool: D2: 	-d     : dump generated code to stdout


tool: D12: 	-3     : generate code with 32-bit operands by default


tool: D88: 	-6     : generate code with 64-bit operands by default


tool: D102: 	-n runs: repeat each run <runs> times and average


tool: D70: 	-i iter: repeat the 8 instructions <iter> times in a


tool: D97: 	         loop, default is 1 million


tool: D147: 	-r loop: roll out the loops <loop> times, default: 8


tool: D121: 	-c file: load binary code from file and execute that


tool: D56: 	-a     : run all defined tests in a row


tool: D65: 	test   : test name, can be followed by .32 or .64 to


tool: D84: 	         explicitly specify the operand bitness


tool: D28: 	         use -l to get list of defined tests


assistant: ```c
void usage(FILE *outf, const char *progname) {
  fprintf(outf, "usage: %s [-h|-?] [-v] [-l] [-d] [-3] [-n nrruns] [-i iterations]\n", progname);
  fprintf(outf, "                     [-r rollout] [-a] test [test...]\n");
  fprintf(outf, "\n\t-h|-?  : this help\n");
  fprintf(outf, "\t-v     : verbose, display actual PMC counter values\n");
  fprintf(outf, "\t-l     : list all defined tests\n");
  fprintf(outf, "\t-d     : dump generated code to stdout\n");
  fprintf(outf, "\t-3     : generate code with 32-bit operands by default\n");
  fprintf(outf, "\t-6     : generate code with 64-bit operands by default\n");
  fprintf(outf, "\t-n runs: repeat each run <runs> times and average\n");
  fprintf(outf, "\t-i iter: repeat the 8 instructions <iter> times in a\n");
  fprintf(outf, "\t         loop, default is 1 million\n");
  fprintf(outf, "\t-r loop: roll out the loops <loop> times, default: 8\n");
  fprintf(outf, "\t-c file: load binary code from file and execute that\n");
  fprintf(outf, "\t-a     : run all defined tests in a row\n");
  fprintf(outf, "\ttest   : test name, can be followed by .32 or .64 to\n");
  fprintf(outf, "\t         explicitly specify the operand bitness\n");
  fprintf(outf, "\t         use -l to get list of defined tests\n");
  return;
}
```