user: Demonstrate the C code that generates the assembly output below:

```asm
<showUsage>:
  endbr64
  push   %rbp
  lea    D94(%rip),%r9
  xor    %eax,%eax
  lea    D179(%rip),%r8
  lea    D7(%rip),%rcx
  lea    D98(%rip),%rdx
  mov    $0x1,%edi
  lea    D104(%rip),%rsi
  lea    D136(%rip),%rbp
  call   <writeVerbose@plt>
  lea    D141(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D140(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D58(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D135(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D43(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D18(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D38(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  mov    %rbp,%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D158(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D31(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D167(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  mov    %rbp,%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D73(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D61(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  lea    D130(%rip),%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  call   <writeVerbose@plt>
  mov    %rbp,%rsi
  mov    $0x1,%edi
  xor    %eax,%eax
  pop    %rbp
  jmp    1050 <writeVerbose@plt>
```

tool_calls: name: unpack_data
arguments: label: D94
type_guessed: string
name: unpack_data
arguments: label: D179
type_guessed: string
name: unpack_data
arguments: label: D7
type_guessed: string
name: unpack_data
arguments: label: D98
type_guessed: string
name: unpack_data
arguments: label: D104
type_guessed: string
name: unpack_data
arguments: label: D136
type_guessed: string
name: unpack_data
arguments: label: D141
type_guessed: string
name: unpack_data
arguments: label: D140
type_guessed: string
name: unpack_data
arguments: label: D58
type_guessed: string
name: unpack_data
arguments: label: D135
type_guessed: string
name: unpack_data
arguments: label: D43
type_guessed: string
name: unpack_data
arguments: label: D18
type_guessed: string
name: unpack_data
arguments: label: D38
type_guessed: string
name: unpack_data
arguments: label: D158
type_guessed: string
name: unpack_data
arguments: label: D31
type_guessed: string
name: unpack_data
arguments: label: D167
type_guessed: string
name: unpack_data
arguments: label: D73
type_guessed: string
name: unpack_data
arguments: label: D61
type_guessed: string
name: unpack_data
arguments: label: D130
type_guessed: string

tool: D94: Brute force module for SMTP Authentication with TLS

tool: D179: pmonkey@foofus.net

tool: D7: 2.0

tool: D98: smtp.mod

tool: D104: %s (%s) %s :: %s


tool: 

tool: D141: Available module options:

tool: D140:  EHLO:? [optional] 

tool: D58:     Specify the EHLO greeting.

tool: D135:  AUTH:? (Authentication Type (PLAIN/LOGIN/NTLM). Default: automatic)

tool: D43:     Module will query service for accepted methods via an "AUTH" request.

tool: D18:     PLAIN, LOGIN, and NTLM authentication methods are supported.

tool: D38:   DOMAIN:? [optional]

tool: D158: The DOMAIN option should supply the specified domain appropriately,

tool: D31: regardless of authentication type. The domain can also be supplied 

tool: D167: via the username field, but the format appears to differ by auth type.

tool: D73:   Usage example: 

tool: D61:     "medusa -M smtp -m AUTH:NTLM -U accounts.txt -p password"

tool: D130:     "medusa -M smtp -m EHLO:world -U accounts.txt -p password"

assistant: ```c
void showUsage() {
  writeVerbose(1, "%s (%s) %s :: %s\n", "smtp.mod", "2.0", "pmonkey@foofus.net", "Brute force module for SMTP Authentication with TLS");
  writeVerbose(1, "Available module options:");
  writeVerbose(1, " EHLO:? [optional] ");
  writeVerbose(1, "    Specify the EHLO greeting.");
  writeVerbose(1, " AUTH:? (Authentication Type (PLAIN/LOGIN/NTLM). Default: automatic)");
  writeVerbose(1, "    Module will query service for accepted methods via an \"AUTH\" request.");
  writeVerbose(1, "    PLAIN, LOGIN, and NTLM authentication methods are supported.");
  writeVerbose(1, "  DOMAIN:? [optional]");
  writeVerbose(1, "");
  writeVerbose(1, "The DOMAIN option should supply the specified domain appropriately,");
  writeVerbose(1, "regardless of authentication type. The domain can also be supplied ");
  writeVerbose(1, "via the username field, but the format appears to differ by auth type.");
  writeVerbose(1, "");
  writeVerbose(1, "  Usage example: ");
  writeVerbose(1, "    \"medusa -M smtp -m AUTH:NTLM -U accounts.txt -p password\"");
  writeVerbose(1, "    \"medusa -M smtp -m EHLO:world -U accounts.txt -p password\"");
  writeVerbose(1, "");
}
```