#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *);
void usage(void) {
  printf("Usage: ndsctl [options] command [arguments]\n"
         "\n"
         "options:\n"
         "  -s <path>           Path to the socket\n"
         "  -h                  Print usage\n"
         "\n"
         "commands:\n"
         "  status              View the status of nodogsplash\n"
         "  clients             Display machine-readable client list\n"
         "  json [mac|ip|token] Display client list in json format\n"
         "  stop                Stop the running nodogsplash\n"
         "  auth mac|ip|token   Authenticate user with specified mac, ip or "
         "token\n"
         "  deauth mac|ip|token Deauthenticate user with specified mac, ip or "
         "token\n"
         "  block mac           Block the given MAC address\n"
         "  unblock mac         Unblock the given MAC address\n"
         "  allow mac           Allow the given MAC address\n"
         "  unallow mac         Unallow the given MAC address\n"
         "  trust mac           Trust the given MAC address\n"
         "  untrust mac         Untrust the given MAC address\n"
         "  debuglevel n        Set debug level to n\n"
         "\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [857 x i8] c"Usage: ndsctl [options] command [arguments]\0A\0Aoptions:\0A -s <path> Path to the socket\0A -h Print usage\0A\0Acommands:\0A status View the status of nodogsplash\0A clients Display machine-readable client list\0A json [mac|ip|token] Display client list in json format\0A stop Stop the running nodogsplash\0A auth mac|ip|token Authenticate user with specified mac, ip or token\0A deauth mac|ip|token Deauthenticate user with specified mac, ip or token\0A block mac Block the given MAC address\0A unblock mac Unblock the given MAC address\0A allow mac Allow the given MAC address\0A unallow mac Unallow the given MAC address\0A trust mac Trust the given MAC address\0A untrust mac Untrust the given MAC address\0A debuglevel n Set debug level to n\0A\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([857 x i8], [857 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [856 x i8] c"Usage: ndsctl [options] command [arguments]\0A\0Aoptions:\0A -s <path> Path to the socket\0A -h Print usage\0A\0Acommands:\0A status View the status of nodogsplash\0A clients Display machine-readable client list\0A json [mac|ip|token] Display client list in json format\0A stop Stop the running nodogsplash\0A auth mac|ip|token Authenticate user with specified mac, ip or token\0A deauth mac|ip|token Deauthenticate user with specified mac, ip or token\0A block mac Block the given MAC address\0A unblock mac Unblock the given MAC address\0A allow mac Allow the given MAC address\0A unallow mac Unallow the given MAC address\0A trust mac Trust the given MAC address\0A untrust mac Untrust the given MAC address\0A debuglevel n Set debug level to n\0A\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([856 x i8], [856 x i8]* @str, i64 0, i64 0))
ret void
}