user: Translate the below assembly code into C programming language:

```asm
<SMake_Usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  lea    D164(%rip),%rax
  mov    %rax,%rdi
  call   <SMake_Greet@plt>
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  add    $0x6,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D209(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <WhiteSpace@plt>
  mov    %rax,%rsi
  lea    D177(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <WhiteSpace@plt>
  mov    %rax,%rsi
  lea    D204(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D37(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D216(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D159(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D227(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D163(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D182(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D169(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D210(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D95(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D73(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D226(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x18(%rbp),%rax
  mov    %rax,%rsi
  lea    D152(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  nop
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D164
type: string
name: disassemble_data
arguments: data_label: D209
type: string
name: disassemble_data
arguments: data_label: D177
type: string
name: disassemble_data
arguments: data_label: D204
type: string
name: disassemble_data
arguments: data_label: D37
type: string
name: disassemble_data
arguments: data_label: D216
type: string
name: disassemble_data
arguments: data_label: D159
type: string
name: disassemble_data
arguments: data_label: D4
type: string
name: disassemble_data
arguments: data_label: D227
type: string
name: disassemble_data
arguments: data_label: D65
type: string
name: disassemble_data
arguments: data_label: D163
type: string
name: disassemble_data
arguments: data_label: D182
type: string
name: disassemble_data
arguments: data_label: D169
type: string
name: disassemble_data
arguments: data_label: D84
type: string
name: disassemble_data
arguments: data_label: D61
type: string
name: disassemble_data
arguments: data_label: D38
type: string
name: disassemble_data
arguments: data_label: D210
type: string
name: disassemble_data
arguments: data_label: D9
type: string
name: disassemble_data
arguments: data_label: D95
type: string
name: disassemble_data
arguments: data_label: D73
type: string
name: disassemble_data
arguments: data_label: D226
type: string
name: disassemble_data
arguments: data_label: D19
type: string
name: disassemble_data
arguments: data_label: D152
type: string

tool: D164: Simple-Make

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


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


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


tool: D37: Options are:

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

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

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

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

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

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

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

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

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

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

tool: D38:   -d                  # Virtual directory

tool: D210:   -v                  # Verbosity level

tool: D9:   -x                  # Create Makefile for CPP

tool: D95:   -h                  # Print version and usage


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

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

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

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