#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 */
typedef int /*<<< orphan*/ buf;

/* Variables and functions */
int /*<<< orphan*/ STDERR_FILENO;
int /*<<< orphan*/ write(int /*<<< orphan*/, char const *, int);
int usage(void) {
  const char buf[] =
      "Usage: odhcp6c [options] <interface>\n"
      "\nFeature options:\n"
      "	-S <time>	Wait at least <time> sec for a DHCP-server (0)\n"
      "	-N <mode>	Mode for requesting addresses [try|force|none]\n"
      "	-P <length>	Request IPv6-Prefix (0 = auto)\n"
      "	-c <clientid>	Override client-ID (base-16 encoded)\n"
      "	-i <iface-id>	Use a custom interface identifier for RA handling\n"
      "	-r <options>	Options to be requested (comma-separated)\n"
      "	-s <script>	Status update script (/usr/sbin/odhcp6c-update)\n"
      "	-k		Don't send a RELEASE when stopping\n"
      "\nInvocation options:\n"
      "	-p <pidfile>	Set pidfile (/var/run/6relayd.pid)\n"
      "	-d		Daemonize\n"
      "	-e		Write logmessages to stderr\n"
      "	-h		Show this help\n\n";
  write(STDERR_FILENO, buf, sizeof(buf));
  return 1;
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x280,%rsp
lea    -0x280(%rbp),%rdi
lea    0xec7(%rip),%rsi
mov    $0x275,%edx
call   1040 <memcpy@plt>
mov    0x2e96(%rip),%rax
mov    (%rax),%edi
lea    -0x280(%rbp),%rsi
mov    $0x275,%edx
call   1030 <write@plt>
mov    $0x1,%eax
add    $0x280,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rbx
sub    $0x280,%rsp
lea    0xed1(%rip),%rsi
mov    %rsp,%rbx
mov    $0x275,%edx
mov    %rbx,%rdi
call   1040 <memcpy@plt>
mov    0x2e9a(%rip),%rax
mov    (%rax),%edi
mov    %rbx,%rsi
mov    $0x275,%edx
call   1030 <write@plt>
mov    $0x1,%eax
add    $0x280,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@__const.usage.buf = [629 x i8] c"Usage: odhcp6c [options] <interface>\0A\0AFeature options:\0A\09-S <time>\09Wait at least <time> sec for a DHCP-server (0)\0A\09-N <mode>\09Mode for requesting addresses [try|force|none]\0A\09-P <length>\09Request IPv6-Prefix (0 = auto)\0A\09-c <clientid>\09Override client-ID (base-16 encoded)\0A\09-i <iface-id>\09Use a custom interface identifier for RA handling\0A\09-r <options>\09Options to be requested (comma-separated)\0A\09-s <script>\09Status update script (/usr/sbin/odhcp6c-update)\0A\09-k\09\09Don't send a RELEASE when stopping\0A\0AInvocation options:\0A\09-p <pidfile>\09Set pidfile (/var/run/6relayd.pid)\0A\09-d\09\09Daemonize\0A\09-e\09\09Write logmessages to stderr\0A\09-h\09\09Show this help\0A\0A\00"
@STDERR_FILENO = global i32 0
define i32 @usage() {
%1 = alloca [629 x i8]
%2 = bitcast [629 x i8]* %1 to i8*
%3 = load i32, i32* @STDERR_FILENO
%4 = getelementptr inbounds [629 x i8], [629 x i8]* %1, i64 0, i64 0
%5 = call i32 @write(i32 %3, i8* %4, i32 629)
ret i32 1
}

LLVM IR (-O2):
@__const.usage.buf = [629 x i8] c"Usage: odhcp6c [options] <interface>\0A\0AFeature options:\0A\09-S <time>\09Wait at least <time> sec for a DHCP-server (0)\0A\09-N <mode>\09Mode for requesting addresses [try|force|none]\0A\09-P <length>\09Request IPv6-Prefix (0 = auto)\0A\09-c <clientid>\09Override client-ID (base-16 encoded)\0A\09-i <iface-id>\09Use a custom interface identifier for RA handling\0A\09-r <options>\09Options to be requested (comma-separated)\0A\09-s <script>\09Status update script (/usr/sbin/odhcp6c-update)\0A\09-k\09\09Don't send a RELEASE when stopping\0A\0AInvocation options:\0A\09-p <pidfile>\09Set pidfile (/var/run/6relayd.pid)\0A\09-d\09\09Daemonize\0A\09-e\09\09Write logmessages to stderr\0A\09-h\09\09Show this help\0A\0A\00"
@STDERR_FILENO = global i32 0
define i32 @usage() {
%1 = alloca [629 x i8]
%2 = getelementptr inbounds [629 x i8], [629 x i8]* %1, i64 0, i64 0
%3 = load i32, i32* @STDERR_FILENO
%4 = call i32 @write(i32 %3, i8* %2, i32 629)
ret i32 1
}