#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*/ _exit(int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void help() {
  fprintf(
      stderr,
      "Hello. I am a multicast re-transmitter\n"
      "I should only be used on network environments where there is no "
      "multicast\n"
      "delivery (e.g. Amazon). If multicast delivery is ever enabled, you "
      "should\n"
      "discontinue using me immedieately, or you may run into some (unknown)\n"
      "unintended consequences.\n"
      "\n"
      "You may need to run me as root, as I need to create raw sockets\n"
      "\n"
      "I require and support the following options:\n"
      "-u IP      required, unicast address (IP only)\n"
      "-m IP      required, multicast address (IP only)\n"
      "-t ip,...  required, list of the IP addresses to retransmit to\n"
      "           (this is the list of nodes)\n"
      "-f         daemonize\n"
      "-d         print debug output\n");
  _exit(1);
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1040 <fprintf@plt>
mov    $0x1,%edi
call   1030 <_exit@plt>

x86 assembly (clang, -O2):
<help>:
push   %rax
mov    0x2eb8(%rip),%rax
mov    (%rax),%edi
lea    0xecf(%rip),%rsi
call   1040 <fprintf@plt>
mov    $0x1,%edi
call   1030 <_exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [643 x i8] c"Hello. I am a multicast re-transmitter\0AI should only be used on network environments where there is no multicast\0Adelivery (e.g. Amazon). If multicast delivery is ever enabled, you should\0Adiscontinue using me immedieately, or you may run into some (unknown)\0Aunintended consequences.\0A\0AYou may need to run me as root, as I need to create raw sockets\0A\0AI require and support the following options:\0A-u IP required, unicast address (IP only)\0A-m IP required, multicast address (IP only)\0A-t ip,... required, list of the IP addresses to retransmit to\0A (this is the list of nodes)\0A-f daemonize\0A-d print debug output\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([643 x i8], [643 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @_exit(i32 1)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [643 x i8] c"Hello. I am a multicast re-transmitter\0AI should only be used on network environments where there is no multicast\0Adelivery (e.g. Amazon). If multicast delivery is ever enabled, you should\0Adiscontinue using me immedieately, or you may run into some (unknown)\0Aunintended consequences.\0A\0AYou may need to run me as root, as I need to create raw sockets\0A\0AI require and support the following options:\0A-u IP required, unicast address (IP only)\0A-m IP required, multicast address (IP only)\0A-t ip,... required, list of the IP addresses to retransmit to\0A (this is the list of nodes)\0A-f daemonize\0A-d print debug output\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([643 x i8], [643 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @_exit(i32 1)
unreachable
}