#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*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stdout;
void help() {
  fprintf(stdout,
          "Usage:\n"
          "  Show this help: rainbow --help or -h\n"
          "  Start as daemon: rainbow -D DEV_CONFIGURATION [DEV_CONFIGURATION "
          "...]]\n"
          "  Set devices: rainbow DEV_CONFIGURATION [DEV_CONFIGURATION ...]\n"
          "\n"
          "DEV_CONFIGURATION is one of the next options:\n"
          "DEV COLOR STATUS or DEV STATUS COLOR or DEV STATUS or DEV COLOR, "
          "where:\n"
          "  DEV: 'wan' (LED of WAN port), 'lan' (LEDs of all LAN ports),\n"
          "       'wifi' (LED of WiFI), 'pwr' (LED of Power signalization)\n"
          "       or alias 'all' for all previous devices\n"
          "  COLOR: name of predefined color (red, blue, green, white, black)\n"
          "         or 3 bytes for RGB, so red is 'FF0000', green '00FF00'\n"
          "         blue '0000FF' etc.\n"
          "  STATUS: 'enable' (device is shining), 'disable' (device is off)\n"
          "          'auto' (device is operated by HW - typically flashing)\n"
          "\n"
          "DEV STATUS, where:\n"
          "  DEV: 'lan1', 'lan2', ..., 'lan5' (one of the LAN LEDs)\n"
          "  STATUS: the same meaning like above\n"
          "\n"
          "'intensity' NUMBER, where:\n"
          "  NUMBER is number from 0 to 7 that represents one of the "
          "predefined values of\n"
          "  light intensity\n"
          "\n"
          "'binmask' NUMBER, where:\n"
          "  NUMBER is number its binary representation is used as mark for "
          "status of\n"
          "  all of the LEDs. MSB is WAN LED and LSB is Power LED.\n"
          "\n"
          "'get' VALUE, where:\n"
          "  VALUE is 'intensity' (no more getters aren't available for now)\n"
          "\n"
          "Examples:\n"
          "rainbow all blue auto - reset status of all LEDs and set their "
          "color to blue\n"
          "rainbow all blue pwr red - set color of all LEDs to blue except the "
          "Power one\n"
          "rainbow all enable wan auto - all LEDs will shining except the LED "
          "of WAN port\n"
          "                              that will flashing according to "
          "traffic\n");
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<help>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [1567 x i8] c"Usage:\0A Show this help: rainbow --help or -h\0A Start as daemon: rainbow -D DEV_CONFIGURATION [DEV_CONFIGURATION ...]]\0A Set devices: rainbow DEV_CONFIGURATION [DEV_CONFIGURATION ...]\0A\0ADEV_CONFIGURATION is one of the next options:\0ADEV COLOR STATUS or DEV STATUS COLOR or DEV STATUS or DEV COLOR, where:\0A DEV: 'wan' (LED of WAN port), 'lan' (LEDs of all LAN ports),\0A 'wifi' (LED of WiFI), 'pwr' (LED of Power signalization)\0A or alias 'all' for all previous devices\0A COLOR: name of predefined color (red, blue, green, white, black)\0A or 3 bytes for RGB, so red is 'FF0000', green '00FF00'\0A blue '0000FF' etc.\0A STATUS: 'enable' (device is shining), 'disable' (device is off)\0A 'auto' (device is operated by HW - typically flashing)\0A\0ADEV STATUS, where:\0A DEV: 'lan1', 'lan2', ..., 'lan5' (one of the LAN LEDs)\0A STATUS: the same meaning like above\0A\0A'intensity' NUMBER, where:\0A NUMBER is number from 0 to 7 that represents one of the predefined values of\0A light intensity\0A\0A'binmask' NUMBER, where:\0A NUMBER is number its binary representation is used as mark for status of\0A all of the LEDs. MSB is WAN LED and LSB is Power LED.\0A\0A'get' VALUE, where:\0A VALUE is 'intensity' (no more getters aren't available for now)\0A\0AExamples:\0Arainbow all blue auto - reset status of all LEDs and set their color to blue\0Arainbow all blue pwr red - set color of all LEDs to blue except the Power one\0Arainbow all enable wan auto - all LEDs will shining except the LED of WAN port\0A that will flashing according to traffic\0A\00"
define void @help() {
%1 = load i32, i32* @stdout
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1567 x i8], [1567 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [1567 x i8] c"Usage:\0A Show this help: rainbow --help or -h\0A Start as daemon: rainbow -D DEV_CONFIGURATION [DEV_CONFIGURATION ...]]\0A Set devices: rainbow DEV_CONFIGURATION [DEV_CONFIGURATION ...]\0A\0ADEV_CONFIGURATION is one of the next options:\0ADEV COLOR STATUS or DEV STATUS COLOR or DEV STATUS or DEV COLOR, where:\0A DEV: 'wan' (LED of WAN port), 'lan' (LEDs of all LAN ports),\0A 'wifi' (LED of WiFI), 'pwr' (LED of Power signalization)\0A or alias 'all' for all previous devices\0A COLOR: name of predefined color (red, blue, green, white, black)\0A or 3 bytes for RGB, so red is 'FF0000', green '00FF00'\0A blue '0000FF' etc.\0A STATUS: 'enable' (device is shining), 'disable' (device is off)\0A 'auto' (device is operated by HW - typically flashing)\0A\0ADEV STATUS, where:\0A DEV: 'lan1', 'lan2', ..., 'lan5' (one of the LAN LEDs)\0A STATUS: the same meaning like above\0A\0A'intensity' NUMBER, where:\0A NUMBER is number from 0 to 7 that represents one of the predefined values of\0A light intensity\0A\0A'binmask' NUMBER, where:\0A NUMBER is number its binary representation is used as mark for status of\0A all of the LEDs. MSB is WAN LED and LSB is Power LED.\0A\0A'get' VALUE, where:\0A VALUE is 'intensity' (no more getters aren't available for now)\0A\0AExamples:\0Arainbow all blue auto - reset status of all LEDs and set their color to blue\0Arainbow all blue pwr red - set color of all LEDs to blue except the Power one\0Arainbow all enable wan auto - all LEDs will shining except the LED of WAN port\0A that will flashing according to traffic\0A\00"
define void @help() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1567 x i8], [1567 x i8]* @.str, i64 0, i64 0))
ret void
}