#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*/ printf(char *, char *);
int print_help(char *prog) {
  printf(
      "Usage: %s -b <number_of_bytes> [-f <framebuffer_device>]\n"
      "   -b Indicates how many bytes you'll be sending through this program\n"
      "   -f If you want to draw to a framebuffer device, specify it here\n"
      "   -e write progress to /tmp/flashplayer.event to be read by the flash "
      "player\n"
      "   -r Red color to use (0-255)\n"
      "   -g Green color to use (0-255)\n"
      "   -l bLue color to use (0-255)\n"
      "   -x X-offset percentage from center (default: -0.015)\n"
      "   -y Y-offset percentage from bottom (default: 0.60)\n"
      "   -w width percentage of screen (default: 0.8375)\n"
      "   -h height percentage of screen (default: 0.07083333)\n"
      "",
      prog);
  return 0;
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xed9(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
push   %rax
mov    %rdi,%rsi
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [586 x i8] c"Usage: %s -b <number_of_bytes> [-f <framebuffer_device>]\0A -b Indicates how many bytes you'll be sending through this program\0A -f If you want to draw to a framebuffer device, specify it here\0A -e write progress to /tmp/flashplayer.event to be read by the flash player\0A -r Red color to use (0-255)\0A -g Green color to use (0-255)\0A -l bLue color to use (0-255)\0A -x X-offset percentage from center (default: -0.015)\0A -y Y-offset percentage from bottom (default: 0.60)\0A -w width percentage of screen (default: 0.8375)\0A -h height percentage of screen (default: 0.07083333)\0A\00"
define i32 @print_help(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([586 x i8], [586 x i8]* @.str, i64 0, i64 0), i8* %3)
ret i32 0
}

LLVM IR (-O2):
@.str = [586 x i8] c"Usage: %s -b <number_of_bytes> [-f <framebuffer_device>]\0A -b Indicates how many bytes you'll be sending through this program\0A -f If you want to draw to a framebuffer device, specify it here\0A -e write progress to /tmp/flashplayer.event to be read by the flash player\0A -r Red color to use (0-255)\0A -g Green color to use (0-255)\0A -l bLue color to use (0-255)\0A -x X-offset percentage from center (default: -0.015)\0A -y Y-offset percentage from bottom (default: 0.60)\0A -w width percentage of screen (default: 0.8375)\0A -h height percentage of screen (default: 0.07083333)\0A\00"
define i32 @print_help(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([586 x i8], [586 x i8]* @.str, i64 0, i64 0), i8* %0)
ret i32 0
}