#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*/ cmdline_parser_print_version();
int /*<<< orphan*/ printf(char *, ...);
void cmdline_parser_print_help(void) {
  cmdline_parser_print_version();
  printf(
      "Usage: %s [OPTIONS]...\n"
      "Build generic tunnels trough HTTPS proxies using HTTP authentication\n"
      "\n"
      "Standard options:\n"
      " -i, --inetd               Run from inetd (default: off)\n"
      " -a, --standalone=INT      Run as standalone daemon on specified port\n"
      " -p, --proxy=STRING        Local proxy host:port combination\n"
      " -r, --remproxy=STRING     Remote proxy host:port combination (using 2 "
      "proxies)\n"
      " -d, --dest=STRING         Destination host:port combination\n"
      "\n"
      "Additional options for specific features:\n"
      " -F, --passfile=STRING     File with credentials for proxy "
      "authentication\n"
      " -P, --proxyauth=STRING    Proxy auth credentials user:pass "
      "combination\n"
      " -R, --remproxyauth=STRING Remote proxy auth credentials user:pass "
      "combination\n"
      " -N, --ntlm                Use NTLM based authentication\n"
      " -t, --domain=STRING       NTLM domain (default: autodetect)\n"
      " -H, --header=STRING       Add additional HTTP headers to send to "
      "proxy\n"
      "\n"
      "Miscellaneous options:\n"
      " -v, --verbose             Turn on verbosity\n"
      " -q, --quiet               Suppress messages\n"
      " -h, --help                Print help and exit\n"
      " -V, --version             Print version and exit\n",
      "proxytunnel");
  printf("\n"
         "Notice: This version is compiled without support for long options.\n"
         "This means you can only use the short (1 letter) options on the "
         "commandline.\n");
}


x86 assembly (clang, -O0):
<cmdline_parser_print_help>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1040 <cmdline_parser_print_version@plt>
lea    0xece(%rip),%rdi
lea    0x131d(%rip),%rsi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x131b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<cmdline_parser_print_help>:
push   %rax
xor    %eax,%eax
call   1050 <cmdline_parser_print_version@plt>
lea    0xec1(%rip),%rdi
lea    0x1310(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x130e(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1110 x i8] c"Usage: %s [OPTIONS]...\0ABuild generic tunnels trough HTTPS proxies using HTTP authentication\0A\0AStandard options:\0A -i, --inetd Run from inetd (default: off)\0A -a, --standalone=INT Run as standalone daemon on specified port\0A -p, --proxy=STRING Local proxy host:port combination\0A -r, --remproxy=STRING Remote proxy host:port combination (using 2 proxies)\0A -d, --dest=STRING Destination host:port combination\0A\0AAdditional options for specific features:\0A -F, --passfile=STRING File with credentials for proxy authentication\0A -P, --proxyauth=STRING Proxy auth credentials user:pass combination\0A -R, --remproxyauth=STRING Remote proxy auth credentials user:pass combination\0A -N, --ntlm Use NTLM based authentication\0A -t, --domain=STRING NTLM domain (default: autodetect)\0A -H, --header=STRING Add additional HTTP headers to send to proxy\0A\0AMiscellaneous options:\0A -v, --verbose Turn on verbosity\0A -q, --quiet Suppress messages\0A -h, --help Print help and exit\0A -V, --version Print version and exit\0A\00"
@.str.1 = [12 x i8] c"proxytunnel\00"
@.str.2 = [146 x i8] c"\0ANotice: This version is compiled without support for long options.\0AThis means you can only use the short (1 letter) options on the commandline.\0A\00"
define void @cmdline_parser_print_help() {
%1 = call i32 (...) @cmdline_parser_print_version()
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([1110 x i8], [1110 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([146 x i8], [146 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [1110 x i8] c"Usage: %s [OPTIONS]...\0ABuild generic tunnels trough HTTPS proxies using HTTP authentication\0A\0AStandard options:\0A -i, --inetd Run from inetd (default: off)\0A -a, --standalone=INT Run as standalone daemon on specified port\0A -p, --proxy=STRING Local proxy host:port combination\0A -r, --remproxy=STRING Remote proxy host:port combination (using 2 proxies)\0A -d, --dest=STRING Destination host:port combination\0A\0AAdditional options for specific features:\0A -F, --passfile=STRING File with credentials for proxy authentication\0A -P, --proxyauth=STRING Proxy auth credentials user:pass combination\0A -R, --remproxyauth=STRING Remote proxy auth credentials user:pass combination\0A -N, --ntlm Use NTLM based authentication\0A -t, --domain=STRING NTLM domain (default: autodetect)\0A -H, --header=STRING Add additional HTTP headers to send to proxy\0A\0AMiscellaneous options:\0A -v, --verbose Turn on verbosity\0A -q, --quiet Suppress messages\0A -h, --help Print help and exit\0A -V, --version Print version and exit\0A\00"
@.str.1 = [12 x i8] c"proxytunnel\00"
@str = [145 x i8] c"\0ANotice: This version is compiled without support for long options.\0AThis means you can only use the short (1 letter) options on the commandline.\00"
define void @cmdline_parser_print_help() {
%1 = tail call i32 (...) @cmdline_parser_print_version()
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([1110 x i8], [1110 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([145 x i8], [145 x i8]* @str, i64 0, i64 0))
ret void
}