#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*/ stderr;
void help() {
  fprintf(
      stderr,
      "Tetrinet "
      "0.11"
      " - Text-mode tetrinet client\n"
      "\n"
      "Usage: tetrinet [OPTION]... NICK SERVER\n"
      "\n"
      "Options (see README for details):\n"
      "  -fancy       Use \"fancy\" TTY graphics.\n"
      "  -fast        Connect to the server in the tetrifast mode.\n"
      "  -log <file>  Log network traffic to the given file.\n"
      "  -noshadow    Do not make the pieces cast shadow.\n"
      "  -noslide     Do not allow pieces to \"slide\" after being dropped\n"
      "               with the spacebar.\n"
      "  -server      Start the server instead of the client.\n"
      "  -shadow      Make the pieces cast shadow. Can speed up gameplay\n"
      "               considerably, but it can be considered as cheating by\n"
      "               some people since some other tetrinet clients lack "
      "this.\n"
      "  -slide       Opposite of -noslide; allows pieces to \"slide\" after\n"
      "               being dropped.  If both -slide and -noslide are given,\n"
      "               -slide takes precedence.\n"
      "  -windows     Behave as much like the Windows version of Tetrinet as\n"
      "               possible. Implies -noslide and -noshadow.\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):
@stderr = global i32 0
@.str = [992 x i8] c"Tetrinet 0.11 - Text-mode tetrinet client\0A\0AUsage: tetrinet [OPTION]... NICK SERVER\0A\0AOptions (see README for details):\0A -fancy Use \22fancy\22 TTY graphics.\0A -fast Connect to the server in the tetrifast mode.\0A -log <file> Log network traffic to the given file.\0A -noshadow Do not make the pieces cast shadow.\0A -noslide Do not allow pieces to \22slide\22 after being dropped\0A with the spacebar.\0A -server Start the server instead of the client.\0A -shadow Make the pieces cast shadow. Can speed up gameplay\0A considerably, but it can be considered as cheating by\0A some people since some other tetrinet clients lack this.\0A -slide Opposite of -noslide; allows pieces to \22slide\22 after\0A being dropped. If both -slide and -noslide are given,\0A -slide takes precedence.\0A -windows Behave as much like the Windows version of Tetrinet as\0A possible. Implies -noslide and -noshadow.\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([992 x i8], [992 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [992 x i8] c"Tetrinet 0.11 - Text-mode tetrinet client\0A\0AUsage: tetrinet [OPTION]... NICK SERVER\0A\0AOptions (see README for details):\0A -fancy Use \22fancy\22 TTY graphics.\0A -fast Connect to the server in the tetrifast mode.\0A -log <file> Log network traffic to the given file.\0A -noshadow Do not make the pieces cast shadow.\0A -noslide Do not allow pieces to \22slide\22 after being dropped\0A with the spacebar.\0A -server Start the server instead of the client.\0A -shadow Make the pieces cast shadow. Can speed up gameplay\0A considerably, but it can be considered as cheating by\0A some people since some other tetrinet clients lack this.\0A -slide Opposite of -noslide; allows pieces to \22slide\22 after\0A being dropped. If both -slide and -noslide are given,\0A -slide takes precedence.\0A -windows Behave as much like the Windows version of Tetrinet as\0A possible. Implies -noslide and -noshadow.\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([992 x i8], [992 x i8]* @.str, i64 0, i64 0))
ret void
}