user: 请从给定的汇编指令推导出C源代码:

```asm
<show_help>:
  endbr64
  sub    $0x8,%rsp
  lea    D107(%rip),%rdi
  call   <printf@plt>
  lea    D17(%rip),%rdi
  call   <printf@plt>
  lea    D154(%rip),%rdi
  call   <printf@plt>
  lea    D82(%rip),%rdi
  call   <printf@plt>
  lea    D62(%rip),%rdi
  call   <printf@plt>
  lea    D28(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D81(%rip),%rdi
  call   <printf@plt>
  lea    D50(%rip),%rdi
  call   <printf@plt>
  lea    D45(%rip),%rdi
  call   <printf@plt>
  lea    D152(%rip),%rdi
  call   <printf@plt>
  lea    D199(%rip),%rdi
  call   <printf@plt>
  lea    D24(%rip),%rdi
  call   <printf@plt>
  lea    D120(%rip),%rdi
  call   <printf@plt>
  lea    D93(%rip),%rdi
  call   <printf@plt>
  lea    D138(%rip),%rdi
  call   <printf@plt>
  lea    D18(%rip),%rdi
  call   <printf@plt>
  lea    D68(%rip),%rdi
  call   <printf@plt>
  lea    D209(%rip),%rdi
  call   <printf@plt>
  lea    D27(%rip),%rdi
  call   <printf@plt>
  lea    D123(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%edi
  call   <exit@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D107
datatype: string
name: retrieve_data
arguments: data_label: D17
datatype: string
name: retrieve_data
arguments: data_label: D154
datatype: string
name: retrieve_data
arguments: data_label: D82
datatype: string
name: retrieve_data
arguments: data_label: D62
datatype: string
name: retrieve_data
arguments: data_label: D28
datatype: string
name: retrieve_data
arguments: data_label: D85
datatype: string
name: retrieve_data
arguments: data_label: D81
datatype: string
name: retrieve_data
arguments: data_label: D50
datatype: string
name: retrieve_data
arguments: data_label: D45
datatype: string
name: retrieve_data
arguments: data_label: D152
datatype: string
name: retrieve_data
arguments: data_label: D199
datatype: string
name: retrieve_data
arguments: data_label: D24
datatype: string
name: retrieve_data
arguments: data_label: D120
datatype: string
name: retrieve_data
arguments: data_label: D93
datatype: string
name: retrieve_data
arguments: data_label: D138
datatype: string
name: retrieve_data
arguments: data_label: D18
datatype: string
name: retrieve_data
arguments: data_label: D68
datatype: string
name: retrieve_data
arguments: data_label: D209
datatype: string
name: retrieve_data
arguments: data_label: D27
datatype: string
name: retrieve_data
arguments: data_label: D123
datatype: string

tool: D107: Pressure Test [--help] [--working_set_size N] [--shared_size N] [--loop N]



tool: D17: -w   --working_set_size   to specify the size of private working set using random


tool: D154:                           single static assignment, each element is 64 bit and the total


tool: D82:                           size is woking_set_size * 64 bit



tool: D62: -wb  --working_set_bytes  to specify the size of private working set


tool: D28:                           by bytes in unit m, k, b ex. 64k for 64k working set



tool: D85: -s   --shared_size        to specify the shared space by threads visiting an uint64_t


tool: D81:                           array and the tatol size is shared_size * 8 bytes



tool: D50: -sb  --shared_bytes       to specify the shared space by threads by bytes in unit


tool: D45:                           k, m, b ex. -sb 8m for 8mb shared space



tool: D152: -wt  --workload_type      wokload type: r indicates single_static_assignment,


tool: D199:                                         s indicates stream_access_bandwidth


tool: D24: -l   --loop_num           times to visit working set and shared memory space



tool: D120: -t   --threads            running threads of micro benchmark



tool: D93: -b   --binding            binding cpu affinity with two parameters, the first one to


tool: D138:                           specify the cpuid to bind and the second is the number of threads


tool: D18:                           binding on this cpu, ex. --bind 0 2 for 2 threads are binding to


tool: D68:                           cpu 0, supporting more than one binding rules



tool: D209: -h   --help               to show this help



tool: D27: Version 1.0 by Yuxia @ 2013.07.31


tool: D123: Thanks!.


assistant: ```c
void show_help() {
  printf("Pressure Test [--help] [--working_set_size N] [--shared_size N] [--loop N]\n\n");
  printf("-w   --working_set_size   to specify the size of private working set using random\n");
  printf("                          single static assignment, each element is 64 bit and the total\n");
  printf("                          size is woking_set_size * 64 bit\n\n");
  printf("-wb  --working_set_bytes  to specify the size of private working set\n");
  printf("                          by bytes in unit m, k, b ex. 64k for 64k working set\n\n");
  printf("-s   --shared_size        to specify the shared space by threads visiting an uint64_t\n");
  printf("                          array and the tatol size is shared_size * 8 bytes\n\n");
  printf("-sb  --shared_bytes       to specify the shared space by threads by bytes in unit\n");
  printf("                          k, m, b ex. -sb 8m for 8mb shared space\n\n");
  printf("-wt  --workload_type      wokload type: r indicates single_static_assignment,\n");
  printf("                                        s indicates stream_access_bandwidth\n");
  printf("-l   --loop_num           times to visit working set and shared memory space\n\n");
  printf("-t   --threads            running threads of micro benchmark\n\n");
  printf("-b   --binding            binding cpu affinity with two parameters, the first one to\n");
  printf("                          specify the cpuid to bind and the second is the number of threads\n");
  printf("                          binding on this cpu, ex. --bind 0 2 for 2 threads are binding to\n");
  printf("                          cpu 0, supporting more than one binding rules\n\n");
  printf("-h   --help               to show this help\n\n");
  printf("Version 1.0 by Yuxia @ 2013.07.31\n");
  printf("Thanks!.\n");
  exit(0);
}
```