user: What would the C source look like for the assembly code provided here?

```asm
<print_usage>:
  endbr64
  push   %rbx
  lea    D48(%rip),%rbx
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D65(%rip),%rdi
  call   <printf@plt>
  lea    D44(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D64(%rip),%rdi
  call   <printf@plt>
  lea    D91(%rip),%rdi
  call   <printf@plt>
  lea    D23(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D76(%rip),%rdi
  call   <printf@plt>
  lea    D16(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D72(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D99(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  pop    %rbx
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D48
type_infered: string
name: extract_symbolic_data
arguments: tag: D46
type_infered: string
name: extract_symbolic_data
arguments: tag: D65
type_infered: string
name: extract_symbolic_data
arguments: tag: D44
type_infered: string
name: extract_symbolic_data
arguments: tag: D64
type_infered: string
name: extract_symbolic_data
arguments: tag: D91
type_infered: string
name: extract_symbolic_data
arguments: tag: D23
type_infered: string
name: extract_symbolic_data
arguments: tag: D76
type_infered: string
name: extract_symbolic_data
arguments: tag: D16
type_infered: string
name: extract_symbolic_data
arguments: tag: D85
type_infered: string
name: extract_symbolic_data
arguments: tag: D72
type_infered: string
name: extract_symbolic_data
arguments: tag: D99
type_infered: string

tool: D48: 


tool: D46: Usage


tool: D65: 	test_run [test_case1 test_case2 test_case3 ...]


tool: D44: 	test_run [--help]


tool: D64: First usage example runs test cases test_case1 test_case2 test_case3 etc 


tool: D91: if they are specified as arguments. If NO ARGUMENTS are specified the whole


tool: D23: test suite is run.


tool: D76: The test_case arguments are short name for tests, so for example if you have


tool: D16: a test files named test_jnxbtree.c and test_jnxvector.c, you would run them


tool: D85: using the following command:


tool: D72: 	test_run btree vector


tool: D99: Second usage example prints out this help on the console.


assistant: ```c
void print_usage() {
  printf("\n");
  printf("Usage\n");
  printf("\n");
  printf("\ttest_run [test_case1 test_case2 test_case3 ...]\n");
  printf("\ttest_run [--help]\n");
  printf("\n");
  printf("First usage example runs test cases test_case1 test_case2 test_case3 etc \n");
  printf("if they are specified as arguments. If NO ARGUMENTS are specified the whole\n");
  printf("test suite is run.\n");
  printf("\n");
  printf("The test_case arguments are short name for tests, so for example if you have\n");
  printf("a test files named test_jnxbtree.c and test_jnxvector.c, you would run them\n");
  printf("using the following command:\n");
  printf("\n");
  printf("\ttest_run btree vector\n");
  printf("\n");
  printf("Second usage example prints out this help on the console.\n");
  printf("\n");
}
```