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    D7(%rip),%rdi
  sub    $0x8,%rsp
  call   <SMake_Greet@plt>
  mov    %rbp,%rdi
  call   <strlen@plt>
  mov    %rbp,%rsi
  lea    D31(%rip),%rdi
  lea    0x6(%rax),%r12d
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r12d,%edi
  call   <WhiteSpace@plt>
  lea    D172(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %r12d,%edi
  call   <WhiteSpace@plt>
  lea    D55(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D45(%rip),%rdi
  call   <puts@plt>
  lea    D195(%rip),%rdi
  call   <puts@plt>
  lea    D159(%rip),%rdi
  call   <puts@plt>
  lea    D65(%rip),%rdi
  call   <puts@plt>
  lea    D30(%rip),%rdi
  call   <puts@plt>
  lea    D142(%rip),%rdi
  call   <puts@plt>
  lea    D213(%rip),%rdi
  call   <puts@plt>
  lea    D204(%rip),%rdi
  call   <puts@plt>
  lea    D216(%rip),%rdi
  call   <puts@plt>
  lea    D135(%rip),%rdi
  call   <puts@plt>
  lea    D136(%rip),%rdi
  call   <puts@plt>
  lea    D214(%rip),%rdi
  call   <puts@plt>
  lea    D171(%rip),%rdi
  call   <puts@plt>
  lea    D90(%rip),%rdi
  call   <puts@plt>
  lea    D71(%rip),%rdi
  call   <puts@plt>
  lea    D18(%rip),%rdi
  call   <puts@plt>
  lea    D140(%rip),%rdi
  call   <puts@plt>
  lea    D151(%rip),%rdi
  call   <puts@plt>
  add    $0x8,%rsp
  mov    %rbp,%rsi
  xor    %eax,%eax
  pop    %rbp
  lea    D192(%rip),%rdi
  pop    %r12
  jmp    10b0 <printf@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D7
type_infered: string
name: extract_symbolic_data
arguments: label: D31
type_infered: string
name: extract_symbolic_data
arguments: label: D172
type_infered: string
name: extract_symbolic_data
arguments: label: D55
type_infered: string
name: extract_symbolic_data
arguments: label: D45
type_infered: string
name: extract_symbolic_data
arguments: label: D195
type_infered: string
name: extract_symbolic_data
arguments: label: D159
type_infered: string
name: extract_symbolic_data
arguments: label: D65
type_infered: string
name: extract_symbolic_data
arguments: label: D30
type_infered: string
name: extract_symbolic_data
arguments: label: D142
type_infered: string
name: extract_symbolic_data
arguments: label: D213
type_infered: string
name: extract_symbolic_data
arguments: label: D204
type_infered: string
name: extract_symbolic_data
arguments: label: D216
type_infered: string
name: extract_symbolic_data
arguments: label: D135
type_infered: string
name: extract_symbolic_data
arguments: label: D136
type_infered: string
name: extract_symbolic_data
arguments: label: D214
type_infered: string
name: extract_symbolic_data
arguments: label: D171
type_infered: string
name: extract_symbolic_data
arguments: label: D90
type_infered: string
name: extract_symbolic_data
arguments: label: D71
type_infered: string
name: extract_symbolic_data
arguments: label: D18
type_infered: string
name: extract_symbolic_data
arguments: label: D140
type_infered: string
name: extract_symbolic_data
arguments: label: D151
type_infered: string
name: extract_symbolic_data
arguments: label: D192
type_infered: string

tool: D7: Simple-Make

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


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


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


tool: D45: Options are:

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

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

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

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

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

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

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

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

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

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

tool: D214:   -d                  # Virtual directory

tool: D171:   -v                  # Verbosity level

tool: D90:   -x                  # Create Makefile for CPP

tool: D71:   -h                  # Print version and usage


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

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

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

tool: D192: 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);
}
```