#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 demo_help(void *arg) {
  { (arg); }
  fprintf(
      stdout,
      "wgraph demo version 0.1 - Copyright (c) 2012 ASMlover.\n"
      "usage : wgraph [option]\n\n"
      "General options:\n"
      "  -h|-help             display the help document of the wgraph.\n"
      "  -b|-browser          display the demo of run web browser.\n"
      "  -d|-desktop          display the demo of draw line on desktop.\n"
      "  -f|-fullwin          display the demo of full window\n"
      "  -dx|-dxwin           display the demo of DirectShow window (DX)\n"
      "  -t|-timer            display the demo of wgTimer module\n"
      "  -pe|-pehack          display the demo of wgPEHack module\n"
      "  -gt|-gditest         display the demo of GDIObject test module\n"
      "  -qtt|-qtabletest     display the demo of GDI query table testcase\n"
      "  -gtt|-gditabletest   display the demo of GDI table testcase\n"
      "  -gf|-freakout        display the demo of wgDraw module\n");
}


x86 assembly (clang, -O0):
<demo_help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ebd(%rip),%rax
mov    (%rax),%edi
lea    0xed4(%rip),%rsi
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

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

LLVM IR (-O0):
@stdout = global i32 0
@.str = [777 x i8] c"wgraph demo version 0.1 - Copyright (c) 2012 ASMlover.\0Ausage : wgraph [option]\0A\0AGeneral options:\0A -h|-help display the help document of the wgraph.\0A -b|-browser display the demo of run web browser.\0A -d|-desktop display the demo of draw line on desktop.\0A -f|-fullwin display the demo of full window\0A -dx|-dxwin display the demo of DirectShow window (DX)\0A -t|-timer display the demo of wgTimer module\0A -pe|-pehack display the demo of wgPEHack module\0A -gt|-gditest display the demo of GDIObject test module\0A -qtt|-qtabletest display the demo of GDI query table testcase\0A -gtt|-gditabletest display the demo of GDI table testcase\0A -gf|-freakout display the demo of wgDraw module\0A\00"
define void @demo_help(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = load i32, i32* @stdout
%5 = call i32 @fprintf(i32 %4, i8* getelementptr inbounds ([777 x i8], [777 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [777 x i8] c"wgraph demo version 0.1 - Copyright (c) 2012 ASMlover.\0Ausage : wgraph [option]\0A\0AGeneral options:\0A -h|-help display the help document of the wgraph.\0A -b|-browser display the demo of run web browser.\0A -d|-desktop display the demo of draw line on desktop.\0A -f|-fullwin display the demo of full window\0A -dx|-dxwin display the demo of DirectShow window (DX)\0A -t|-timer display the demo of wgTimer module\0A -pe|-pehack display the demo of wgPEHack module\0A -gt|-gditest display the demo of GDIObject test module\0A -qtt|-qtabletest display the demo of GDI query table testcase\0A -gtt|-gditabletest display the demo of GDI table testcase\0A -gf|-freakout display the demo of wgDraw module\0A\00"
define void @demo_help(i8* nocapture readnone %0) {
%2 = load i32, i32* @stdout
%3 = tail call i32 @fprintf(i32 %2, i8* getelementptr inbounds ([777 x i8], [777 x i8]* @.str, i64 0, i64 0))
ret void
}