#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 do_help(void) {
  printf(
      "mDaemon "
      "0.0.0.1 Alpha"
      "\n"
      "A fast daemon for Linux and FreeBSD.\n"
      "By Sargis Ananyan. RedM Inc love you and open source very much!"
      "\n"
      "Usage:\n"
      "  mdaemon -S|--start options ... -- arguments ...\n"
      "  mdaemon -K|--stop options ...\n"
      "  mdaemon -H|--help\n"
      "  mdaemon -V|--version\n"
      "\n"
      "Options (at least one of --exec|--process_cache|--user is required):\n"
      "  -x|--exec <executable>        program to start/check if it is "
      "running\n"
      "  -p|--process_cache <pid-file>       pid file to check\n"
      "  -c|--chuid <name|uid[:group|gid]>\n"
      "  		change to this user/group before starting process\n"
      "  -u|--user <username>|<uid>    stop processes owned by this user\n"
      "  -n|--name <process-name>      stop processes with this name\n"
      "  -s|--signal <signal>          signal to send (default TERM)\n"
      "  -a|--startas <pathname>       program to start (default is "
      "<executable>)\n"
      "  -N|--nicelevel <incr>         add incr to the process's nice level\n"
      "  -b|--background               force the process to detach\n"
      "  -m|--make-process_cache             create the process_cache before "
      "starting\n"
      "  -R|--retry <schedule>         check whether processes die, and retry\n"
      "  -t|--test                     test mode, don't do anything\n"
      "  -o|--oknodo                   exit status 0 (not 1) if nothing done\n"
      "  -q|--quiet                    be more quiet\n"
      "  -v|--verbose                  be more verbose\n"
      "Retry <schedule> is <item>|/<item>/... where <item> is one of\n"
      " -<signal-num>|[-]<signal-name>  send that signal\n"
      " <timeout>                       wait that many seconds\n"
      " forever                         repeat remainder forever\n"
      "or <schedule> may be just <timeout>, meaning "
      "<signal>/<timeout>/KILL/<timeout>\n"
      "\n"
      "Exit status:  0 = done      1 = nothing done (=> 0 if --oknodo)\n"
      "              3 = trouble   2 = with --retry, processes wouldn't die\n");
}


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

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

LLVM IR (-O0):
@.str = [1752 x i8] c"mDaemon 0.0.0.1 Alpha\0AA fast daemon for Linux and FreeBSD.\0ABy Sargis Ananyan. RedM Inc love you and open source very much!\0AUsage:\0A mdaemon -S|--start options ... -- arguments ...\0A mdaemon -K|--stop options ...\0A mdaemon -H|--help\0A mdaemon -V|--version\0A\0AOptions (at least one of --exec|--process_cache|--user is required):\0A -x|--exec <executable> program to start/check if it is running\0A -p|--process_cache <pid-file> pid file to check\0A -c|--chuid <name|uid[:group|gid]>\0A \09\09change to this user/group before starting process\0A -u|--user <username>|<uid> stop processes owned by this user\0A -n|--name <process-name> stop processes with this name\0A -s|--signal <signal> signal to send (default TERM)\0A -a|--startas <pathname> program to start (default is <executable>)\0A -N|--nicelevel <incr> add incr to the process's nice level\0A -b|--background force the process to detach\0A -m|--make-process_cache create the process_cache before starting\0A -R|--retry <schedule> check whether processes die, and retry\0A -t|--test test mode, don't do anything\0A -o|--oknodo exit status 0 (not 1) if nothing done\0A -q|--quiet be more quiet\0A -v|--verbose be more verbose\0ARetry <schedule> is <item>|/<item>/... where <item> is one of\0A -<signal-num>|[-]<signal-name> send that signal\0A <timeout> wait that many seconds\0A forever repeat remainder forever\0Aor <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>\0A\0AExit status: 0 = done 1 = nothing done (=> 0 if --oknodo)\0A 3 = trouble 2 = with --retry, processes wouldn't die\0A\00"
define void @do_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1752 x i8], [1752 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1751 x i8] c"mDaemon 0.0.0.1 Alpha\0AA fast daemon for Linux and FreeBSD.\0ABy Sargis Ananyan. RedM Inc love you and open source very much!\0AUsage:\0A mdaemon -S|--start options ... -- arguments ...\0A mdaemon -K|--stop options ...\0A mdaemon -H|--help\0A mdaemon -V|--version\0A\0AOptions (at least one of --exec|--process_cache|--user is required):\0A -x|--exec <executable> program to start/check if it is running\0A -p|--process_cache <pid-file> pid file to check\0A -c|--chuid <name|uid[:group|gid]>\0A \09\09change to this user/group before starting process\0A -u|--user <username>|<uid> stop processes owned by this user\0A -n|--name <process-name> stop processes with this name\0A -s|--signal <signal> signal to send (default TERM)\0A -a|--startas <pathname> program to start (default is <executable>)\0A -N|--nicelevel <incr> add incr to the process's nice level\0A -b|--background force the process to detach\0A -m|--make-process_cache create the process_cache before starting\0A -R|--retry <schedule> check whether processes die, and retry\0A -t|--test test mode, don't do anything\0A -o|--oknodo exit status 0 (not 1) if nothing done\0A -q|--quiet be more quiet\0A -v|--verbose be more verbose\0ARetry <schedule> is <item>|/<item>/... where <item> is one of\0A -<signal-num>|[-]<signal-name> send that signal\0A <timeout> wait that many seconds\0A forever repeat remainder forever\0Aor <schedule> may be just <timeout>, meaning <signal>/<timeout>/KILL/<timeout>\0A\0AExit status: 0 = done 1 = nothing done (=> 0 if --oknodo)\0A 3 = trouble 2 = with --retry, processes wouldn't die\00"
define void @do_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1751 x i8], [1751 x i8]* @str, i64 0, i64 0))
ret void
}