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

```asm
<printUsage>:
  endbr64
  push   %r13
  mov    %rdi,%rcx
  mov    $0x25,%edx
  mov    %rsi,%r13
  push   %r12
  mov    $0x1,%esi
  mov    %rdi,%r12
  lea    D291(%rip),%rdi
  sub    $0x8,%rsp
  call   <fwrite@plt>
  mov    %r12,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %r12,%rcx
  mov    $0x32,%edx
  mov    $0x1,%esi
  lea    D190(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x31,%edx
  mov    $0x1,%esi
  lea    D267(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x3e,%edx
  mov    $0x1,%esi
  lea    D160(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x3b,%edx
  mov    $0x1,%esi
  lea    D31(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x33,%edx
  mov    $0x1,%esi
  lea    D159(%rip),%rdi
  call   <fwrite@plt>
  test   %r13,%r13
  je     L5
  mov    %r13,%rdx
  lea    D97(%rip),%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <fprintf@plt>
L5:
  mov    %r12,%rcx
  mov    $0x16,%edx
  mov    $0x1,%esi
  lea    D221(%rip),%rdi
  lea    D162(%rip),%r13
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x1d,%edx
  mov    $0x1,%esi
  lea    D246(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x34,%edx
  mov    $0x1,%esi
  lea    D17(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %r12,%rcx
  mov    $0x15,%edx
  mov    $0x1,%esi
  lea    D318(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D45(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x22,%edx
  mov    $0x1,%esi
  lea    D297(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x10,%edx
  mov    $0x1,%esi
  lea    D22(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    %r13,%rdi
  mov    $0x10,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x9,%edx
  mov    $0x1,%esi
  lea    D169(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xe,%edx
  mov    $0x1,%esi
  lea    D58(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xc,%edx
  mov    $0x1,%esi
  lea    D140(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xc,%edx
  mov    $0x1,%esi
  lea    D74(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xa,%edx
  mov    $0x1,%esi
  lea    D182(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D20(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xf,%edx
  mov    $0x1,%esi
  lea    D191(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xc,%edx
  mov    $0x1,%esi
  lea    D170(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xd,%edx
  mov    $0x1,%esi
  lea    D155(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %r12,%rcx
  mov    $0x9,%edx
  mov    $0x1,%esi
  lea    D62(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    %r13,%rdi
  mov    $0x10,%edx
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D57(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D90(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xb,%edx
  mov    $0x1,%esi
  lea    D60(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x15,%edx
  mov    $0x1,%esi
  lea    D130(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x9,%edx
  mov    $0x1,%esi
  lea    D153(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x9,%edx
  mov    $0x1,%esi
  lea    D55(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xe,%edx
  mov    $0x1,%esi
  lea    D256(%rip),%rdi
  call   <fwrite@plt>
  add    $0x8,%rsp
  mov    %r12,%rcx
  mov    $0xc,%edx
  pop    %r12
  mov    $0x1,%esi
  lea    D204(%rip),%rdi
  pop    %r13
  jmp    1090 <fwrite@plt>
```

tool_calls: name: parse_data
arguments: data_label: D291
type_guessed: string
name: parse_data
arguments: data_label: D190
type_guessed: string
name: parse_data
arguments: data_label: D267
type_guessed: string
name: parse_data
arguments: data_label: D160
type_guessed: string
name: parse_data
arguments: data_label: D31
type_guessed: string
name: parse_data
arguments: data_label: D159
type_guessed: string
name: parse_data
arguments: data_label: D97
type_guessed: string
name: parse_data
arguments: data_label: D221
type_guessed: string
name: parse_data
arguments: data_label: D162
type_guessed: string
name: parse_data
arguments: data_label: D246
type_guessed: string
name: parse_data
arguments: data_label: D17
type_guessed: string
name: parse_data
arguments: data_label: D318
type_guessed: string
name: parse_data
arguments: data_label: D45
type_guessed: string
name: parse_data
arguments: data_label: D297
type_guessed: string
name: parse_data
arguments: data_label: D22
type_guessed: string
name: parse_data
arguments: data_label: D169
type_guessed: string
name: parse_data
arguments: data_label: D58
type_guessed: string
name: parse_data
arguments: data_label: D140
type_guessed: string
name: parse_data
arguments: data_label: D74
type_guessed: string
name: parse_data
arguments: data_label: D182
type_guessed: string
name: parse_data
arguments: data_label: D20
type_guessed: string
name: parse_data
arguments: data_label: D191
type_guessed: string
name: parse_data
arguments: data_label: D170
type_guessed: string
name: parse_data
arguments: data_label: D155
type_guessed: string
name: parse_data
arguments: data_label: D62
type_guessed: string
name: parse_data
arguments: data_label: D57
type_guessed: string
name: parse_data
arguments: data_label: D90
type_guessed: string
name: parse_data
arguments: data_label: D60
type_guessed: string
name: parse_data
arguments: data_label: D130
type_guessed: string
name: parse_data
arguments: data_label: D153
type_guessed: string
name: parse_data
arguments: data_label: D55
type_guessed: string
name: parse_data
arguments: data_label: D256
type_guessed: string
name: parse_data
arguments: data_label: D204
type_guessed: string

tool: D291: speedtest ; a CPU speed test utility


tool: D190: Copyright (C) 2013 David Harper at obliquity.com



tool: D267: This program comes with ABSOLUTELY NO WARRANTY.



tool: D160: This is free software, and you are welcome to redistribute it


tool: D31: under certain conditions.  Please refer to the GNU General


tool: D159: Public License V3 [http://www.gnu.org/licenses/].



tool: D97: An error occurred: %s



tool: D221: MANDATORY PARAMETERS:


tool: D162: 	Mode	Operation


tool: D246: -nsize		Size of data vectors


tool: D17: -niters		Number of iterations over the data vectors


tool: D318: OPTIONAL PARAMETERS:


tool: D45: -mode		Mode to test


tool: D297: -quiet		Keep output to a minimum



tool: D22: 	FLOATING POINT


tool: D169: 	  1	ADD


tool: D58: 	  2	MULTIPLY


tool: D140: 	  3	DIVIDE


tool: D74: 	  4	COSINE


tool: D182: 	  5	SQRT


tool: D20: 	  6	ATAN2


tool: D191: 	  7	Y LOG2(X)


tool: D170: 	  8	SINCOS


tool: D155: 	  9	2^X - 1


tool: D62: 	INTEGER


tool: D57: 	 11	FETCH


tool: D90: 	 12	RANDOM FETCH


tool: D60: 	 13	STORE


tool: D130: 	 14	FETCH AND STORE


tool: D153: 	 15	ADD


tool: D55: 	 16	SUM


tool: D256: 	 17	MULTIPLY


tool: D204: 	 18	DIVIDE


assistant: ```c
void printUsage(FILE *fp, char *message) {
  fprintf(fp, "speedtest ; a CPU speed test utility\n");
  fprintf(fp, "\n");
  fprintf(fp, "Copyright (C) 2013 David Harper at obliquity.com\n\n");
  fprintf(fp, "This program comes with ABSOLUTELY NO WARRANTY.\n\n");
  fprintf(fp, "This is free software, and you are welcome to redistribute it\n");
  fprintf(fp, "under certain conditions.  Please refer to the GNU General\n");
  fprintf(fp, "Public License V3 [http://www.gnu.org/licenses/].\n\n");
  if (message)
    fprintf(fp, "An error occurred: %s\n\n", message);
  fprintf(fp, "MANDATORY PARAMETERS:\n");
  fprintf(fp, "-nsize\t\tSize of data vectors\n");
  fprintf(fp, "-niters\t\tNumber of iterations over the data vectors\n");
  fprintf(fp, "\n");
  fprintf(fp, "OPTIONAL PARAMETERS:\n");
  fprintf(fp, "-mode\t\tMode to test\n");
  fprintf(fp, "-quiet\t\tKeep output to a minimum\n\n");
  fprintf(fp, "\tFLOATING POINT\n");
  fprintf(fp, "\tMode\tOperation\n");
  fprintf(fp, "\t  1\tADD\n");
  fprintf(fp, "\t  2\tMULTIPLY\n");
  fprintf(fp, "\t  3\tDIVIDE\n");
  fprintf(fp, "\t  4\tCOSINE\n");
  fprintf(fp, "\t  5\tSQRT\n");
  fprintf(fp, "\t  6\tATAN2\n");
  fprintf(fp, "\t  7\tY LOG2(X)\n");
  fprintf(fp, "\t  8\tSINCOS\n");
  fprintf(fp, "\t  9\t2^X - 1\n");
  fprintf(fp, "\n");
  fprintf(fp, "\tINTEGER\n");
  fprintf(fp, "\tMode\tOperation\n");
  fprintf(fp, "\t 11\tFETCH\n");
  fprintf(fp, "\t 12\tRANDOM FETCH\n");
  fprintf(fp, "\t 13\tSTORE\n");
  fprintf(fp, "\t 14\tFETCH AND STORE\n");
  fprintf(fp, "\t 15\tADD\n");
  fprintf(fp, "\t 16\tSUM\n");
  fprintf(fp, "\t 17\tMULTIPLY\n");
  fprintf(fp, "\t 18\tDIVIDE\n");
}
```