user: Please show me the C implementation that matches the assembly code listed below:

```asm
<SMake_Usage>:
  endbr64
  push   %r12
  push   %rbp
  mov    %rdi,%rbp
  lea    D195(%rip),%rdi
  sub    $0x8,%rsp
  call   <SMake_Greet@plt>
  mov    %rbp,%rdi
  call   <strlen@plt>
  mov    %rbp,%rsi
  lea    D204(%rip),%rdi
  lea    0x6(%rax),%r12d
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r12d,%edi
  call   <WhiteSpace@plt>
  lea    D30(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r12d,%edi
  call   <WhiteSpace@plt>
  lea    D82(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D19(%rip),%rdi
  call   <puts@plt>
  lea    D118(%rip),%rdi
  call   <puts@plt>
  lea    D155(%rip),%rdi
  call   <puts@plt>
  lea    D63(%rip),%rdi
  call   <puts@plt>
  lea    D72(%rip),%rdi
  call   <puts@plt>
  lea    D80(%rip),%rdi
  call   <puts@plt>
  lea    D151(%rip),%rdi
  call   <puts@plt>
  lea    D130(%rip),%rdi
  call   <puts@plt>
  lea    D125(%rip),%rdi
  call   <puts@plt>
  lea    D143(%rip),%rdi
  call   <puts@plt>
  lea    D146(%rip),%rdi
  call   <puts@plt>
  lea    D3(%rip),%rdi
  call   <puts@plt>
  lea    D142(%rip),%rdi
  call   <puts@plt>
  lea    D191(%rip),%rdi
  call   <puts@plt>
  lea    D166(%rip),%rdi
  call   <puts@plt>
  lea    D95(%rip),%rdi
  call   <puts@plt>
  lea    D217(%rip),%rdi
  call   <puts@plt>
  lea    D26(%rip),%rdi
  call   <puts@plt>
  add    $0x8,%rsp
  mov    %rbp,%rsi
  xor    %eax,%eax
  pop    %rbp
  lea    D136(%rip),%rdi
  pop    %r12
  jmp    10b0 <printf@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D195
datatype: string
name: unpack_data
arguments: data_tag: D204
datatype: string
name: unpack_data
arguments: data_tag: D30
datatype: string
name: unpack_data
arguments: data_tag: D82
datatype: string
name: unpack_data
arguments: data_tag: D19
datatype: string
name: unpack_data
arguments: data_tag: D118
datatype: string
name: unpack_data
arguments: data_tag: D155
datatype: string
name: unpack_data
arguments: data_tag: D63
datatype: string
name: unpack_data
arguments: data_tag: D72
datatype: string
name: unpack_data
arguments: data_tag: D80
datatype: string
name: unpack_data
arguments: data_tag: D151
datatype: string
name: unpack_data
arguments: data_tag: D130
datatype: string
name: unpack_data
arguments: data_tag: D125
datatype: string
name: unpack_data
arguments: data_tag: D143
datatype: string
name: unpack_data
arguments: data_tag: D146
datatype: string
name: unpack_data
arguments: data_tag: D3
datatype: string
name: unpack_data
arguments: data_tag: D142
datatype: string
name: unpack_data
arguments: data_tag: D191
datatype: string
name: unpack_data
arguments: data_tag: D166
datatype: string
name: unpack_data
arguments: data_tag: D95
datatype: string
name: unpack_data
arguments: data_tag: D217
datatype: string
name: unpack_data
arguments: data_tag: D26
datatype: string
name: unpack_data
arguments: data_tag: D136
datatype: string

tool: D195: Simple-Make

tool: D204: Usage: %s [-f <'flags'>] [-b <path>] [-i <path>] [-c <path>]


tool: D30:  %s [-l <'libs'>] [-e <paths>] [-g <name>] [-o <path>]


tool: D82:  %s [-p <name>] [-s <path>] [-d] [-v] [-x] [-h]


tool: D19: Options are:

tool: D118:   -f <'flags'>        # Compiler flags

tool: D155:   -l <'libs'>         # Linked libraries

tool: D63:   -b <path>           # Install destination for binary

tool: D72:   -c <path>           # Specify path to config file

tool: D80:   -e <paths>          # Exclude files or directories

tool: D151:   -g <name>           # Specify the desired compiler

tool: D130:   -i <path>           # Install destination for includes

tool: D125:   -o <path>           # Object output destination

tool: D143:   -p <name>           # Program or library name

tool: D146:   -s <path>           # Path to source files

tool: D3:   -d                  # Virtual directory

tool: D142:   -v                  # Verbosity level

tool: D191:   -x                  # Create Makefile for CPP

tool: D166:   -h                  # Print version and usage


tool: D95: Hints:
1) You can exclude multiple files and directories with "|" tokenizer

tool: D217: 2) To build static/shared library use parameter: -p <name>.a/<name>.so

tool: D26: 3) You can specify the desired compiler like: -g arm-histbv320-linux-gcc

tool: D136: Example: %s -p lib.a -f '-Wall' -l '-lpthread' -e ./dir1|./file1|./file2



assistant: ```c
void SMake_Usage(const char *pName) {
  SMake_Greet("Simple-Make");
  int nLength = strlen(pName) + 6;
  printf("Usage: %s [-f <'flags'>] [-b <path>] [-i <path>] [-c <path>]\n", pName);
  printf(" %s [-l <'libs'>] [-e <paths>] [-g <name>] [-o <path>]\n", WhiteSpace(nLength));
  printf(" %s [-p <name>] [-s <path>] [-d] [-v] [-x] [-h]\n", WhiteSpace(nLength));
  printf("Options are:\n");
  printf("  -f <'flags'>        # Compiler flags\n");
  printf("  -l <'libs'>         # Linked libraries\n");
  printf("  -b <path>           # Install destination for binary\n");
  printf("  -c <path>           # Specify path to config file\n");
  printf("  -e <paths>          # Exclude files or directories\n");
  printf("  -g <name>           # Specify the desired compiler\n");
  printf("  -i <path>           # Install destination for includes\n");
  printf("  -o <path>           # Object output destination\n");
  printf("  -p <name>           # Program or library name\n");
  printf("  -s <path>           # Path to source files\n");
  printf("  -d                  # Virtual directory\n");
  printf("  -v                  # Verbosity level\n");
  printf("  -x                  # Create Makefile for CPP\n");
  printf("  -h                  # Print version and usage\n\n");
  printf("Hints:\n1) You can exclude multiple files and directories with \"|\" tokenizer\n");
  printf("2) To build static/shared library use parameter: -p <name>.a/<name>.so\n");
  printf("3) You can specify the desired compiler like: -g arm-histbv320-linux-gcc\n");
  printf("Example: %s -p lib.a -f '-Wall' -l '-lpthread' -e ./dir1|./file1|./file2\n\n", pName);
}
```