#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 *);
void usage(char *name) {
  printf(
      "\nUsage: %s [OPTIONS]\n\nShoot a Pentax DSLR and send the picture to "
      "standard output.\n\n      --model=CAMERA_MODEL              valid "
      "values are: K20d, K10d, GX10, GX20, K-X, K200D, K-7, K-r, K-5, K-2000, "
      "K-m, K-30, K100D, K110D, K-01\n      --device=DEVICE                   "
      "valid values for Linux: sg0, sg1, ..., for Windows: C, D, E, ...\n      "
      "--timeout=SECONDS                 timeout for camera connection ( 0 "
      "means forever )\n  -w, --warnings                        warning mode "
      "on\n      --nowarnings                      warning mode off\n  -m, "
      "--exposure_mode=MODE              valid values are GREEN, P, SV, TV, "
      "AV, TAV, M and X\n      --exposure_compensation=VALUE     exposure "
      "compensation value\n      --drive_mode=DRIVE_MODE           valid "
      "values are: Single, Continuous-HI, SelfTimer-12, SelfTimer-2, Remote, "
      "Remote-3, Continuous-LO\n  -i, --iso=ISO                         single "
      "value (400) or interval (200-800)\n      --color_space=COLOR_SPACE      "
      "   valid values are: sRGB, AdobeRGB\n      --af_mode=AF_MODE            "
      "     valid values are: AF.S, AF.C, AF.A\n      "
      "--select_af_point=AF_SELECT_MODE  valid values are: Auto-5, Auto-11, "
      "Spot, Select\n      --ae_metering=AE_METERING         valid values are: "
      "Multi, Center, Spot\n      --flash_mode=FLASH_MODE           valid "
      "values are: Manual, Manual-RedEye, Slow, Slow-RedEye, TrailingCurtain, "
      "Auto, Auto-RedEye, Wireless\n      --flash_exposure_compensation=VAL "
      "flash exposure compensation value\n  -a, --aperture=APERTURE\n  -t, "
      "--shutter_speed=SHUTTER SPEED     values can be given in rational form "
      "(eg. 1/90)\n                                        or decimal form "
      "(eg. 0.8)\n  -r, --resolution=RESOLUTION           resolution in "
      "megapixels\n  -q, --quality=QUALITY                 valid values are 1, "
      "2, 3 and 4\n      --jpeg_image_tone=IMAGE_TONE      valid values are: "
      "Natural, Bright, Portrait, Landscape, Vibrant, Monochrome, Muted, "
      "ReversalFilm\n      --white_balance_mode=WB_MODE      valid values are: "
      "Auto, Daylight, Shade, Cloudy, Fluorescent_D, Fluorescent_N, "
      "Fluorescent_W, Fluorescent_L, Tungsten, Flash, Manual, CTE\n      "
      "--white_balance_adjustment=WB_ADJ valid values like: G5B2, G3A5, B5, "
      "A3, G5, M4...\n  -f, --auto_focus                      autofocus\n      "
      "--reconnect                       reconnect between shots\n      "
      "--servermode                      start in server mode and wait for "
      "commands\n  -g, --green                           green button\n  -s, "
      "--status                          print status info\n      --status_hex "
      "                     print status hex info\n      --dust_removal        "
      "            dust removal\n  -F, --frames=NUMBER                   "
      "number of frames\n  -d, --delay=SECONDS                   delay between "
      "the frames (seconds)\n      --file_format=FORMAT              valid "
      "values: PEF, DNG, JPEG\n  -o, --output_file=FILE                send "
      "output to FILE instead of stdout\n      --debug                         "
      "  turn on debug messages\n      --noshutter                       do "
      "not send shutter command, just wait for new photo, download and delete "
      "from camera\n  -v, --version                         display version "
      "information and exit\n  -h, --help                            display "
      "this help and exit\n      --pentax_debug_mode={0|1}		enable "
      "or disable camera debug mode and exit (DANGEROUS). Valid values are: 0, "
      "1\n\n",
      name);
}


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

x86 assembly (clang, -O2):
<usage>:
mov    %rdi,%rsi
lea    0xee6(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [3324 x i8] c"\0AUsage: %s [OPTIONS]\0A\0AShoot a Pentax DSLR and send the picture to standard output.\0A\0A --model=CAMERA_MODEL valid values are: K20d, K10d, GX10, GX20, K-X, K200D, K-7, K-r, K-5, K-2000, K-m, K-30, K100D, K110D, K-01\0A --device=DEVICE valid values for Linux: sg0, sg1, ..., for Windows: C, D, E, ...\0A --timeout=SECONDS timeout for camera connection ( 0 means forever )\0A -w, --warnings warning mode on\0A --nowarnings warning mode off\0A -m, --exposure_mode=MODE valid values are GREEN, P, SV, TV, AV, TAV, M and X\0A --exposure_compensation=VALUE exposure compensation value\0A --drive_mode=DRIVE_MODE valid values are: Single, Continuous-HI, SelfTimer-12, SelfTimer-2, Remote, Remote-3, Continuous-LO\0A -i, --iso=ISO single value (400) or interval (200-800)\0A --color_space=COLOR_SPACE valid values are: sRGB, AdobeRGB\0A --af_mode=AF_MODE valid values are: AF.S, AF.C, AF.A\0A --select_af_point=AF_SELECT_MODE valid values are: Auto-5, Auto-11, Spot, Select\0A --ae_metering=AE_METERING valid values are: Multi, Center, Spot\0A --flash_mode=FLASH_MODE valid values are: Manual, Manual-RedEye, Slow, Slow-RedEye, TrailingCurtain, Auto, Auto-RedEye, Wireless\0A --flash_exposure_compensation=VAL flash exposure compensation value\0A -a, --aperture=APERTURE\0A -t, --shutter_speed=SHUTTER SPEED values can be given in rational form (eg. 1/90)\0A or decimal form (eg. 0.8)\0A -r, --resolution=RESOLUTION resolution in megapixels\0A -q, --quality=QUALITY valid values are 1, 2, 3 and 4\0A --jpeg_image_tone=IMAGE_TONE valid values are: Natural, Bright, Portrait, Landscape, Vibrant, Monochrome, Muted, ReversalFilm\0A --white_balance_mode=WB_MODE valid values are: Auto, Daylight, Shade, Cloudy, Fluorescent_D, Fluorescent_N, Fluorescent_W, Fluorescent_L, Tungsten, Flash, Manual, CTE\0A --white_balance_adjustment=WB_ADJ valid values like: G5B2, G3A5, B5, A3, G5, M4...\0A -f, --auto_focus autofocus\0A --reconnect reconnect between shots\0A --servermode start in server mode and wait for commands\0A -g, --green green button\0A -s, --status print status info\0A --status_hex print status hex info\0A --dust_removal dust removal\0A -F, --frames=NUMBER number of frames\0A -d, --delay=SECONDS delay between the frames (seconds)\0A --file_format=FORMAT valid values: PEF, DNG, JPEG\0A -o, --output_file=FILE send output to FILE instead of stdout\0A --debug turn on debug messages\0A --noshutter do not send shutter command, just wait for new photo, download and delete from camera\0A -v, --version display version information and exit\0A -h, --help display this help and exit\0A --pentax_debug_mode={0|1}\09\09enable or disable camera debug mode and exit (DANGEROUS). Valid values are: 0, 1\0A\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([3324 x i8], [3324 x i8]* @.str, i64 0, i64 0), i8* %3)
ret void
}

LLVM IR (-O2):
@.str = [3324 x i8] c"\0AUsage: %s [OPTIONS]\0A\0AShoot a Pentax DSLR and send the picture to standard output.\0A\0A --model=CAMERA_MODEL valid values are: K20d, K10d, GX10, GX20, K-X, K200D, K-7, K-r, K-5, K-2000, K-m, K-30, K100D, K110D, K-01\0A --device=DEVICE valid values for Linux: sg0, sg1, ..., for Windows: C, D, E, ...\0A --timeout=SECONDS timeout for camera connection ( 0 means forever )\0A -w, --warnings warning mode on\0A --nowarnings warning mode off\0A -m, --exposure_mode=MODE valid values are GREEN, P, SV, TV, AV, TAV, M and X\0A --exposure_compensation=VALUE exposure compensation value\0A --drive_mode=DRIVE_MODE valid values are: Single, Continuous-HI, SelfTimer-12, SelfTimer-2, Remote, Remote-3, Continuous-LO\0A -i, --iso=ISO single value (400) or interval (200-800)\0A --color_space=COLOR_SPACE valid values are: sRGB, AdobeRGB\0A --af_mode=AF_MODE valid values are: AF.S, AF.C, AF.A\0A --select_af_point=AF_SELECT_MODE valid values are: Auto-5, Auto-11, Spot, Select\0A --ae_metering=AE_METERING valid values are: Multi, Center, Spot\0A --flash_mode=FLASH_MODE valid values are: Manual, Manual-RedEye, Slow, Slow-RedEye, TrailingCurtain, Auto, Auto-RedEye, Wireless\0A --flash_exposure_compensation=VAL flash exposure compensation value\0A -a, --aperture=APERTURE\0A -t, --shutter_speed=SHUTTER SPEED values can be given in rational form (eg. 1/90)\0A or decimal form (eg. 0.8)\0A -r, --resolution=RESOLUTION resolution in megapixels\0A -q, --quality=QUALITY valid values are 1, 2, 3 and 4\0A --jpeg_image_tone=IMAGE_TONE valid values are: Natural, Bright, Portrait, Landscape, Vibrant, Monochrome, Muted, ReversalFilm\0A --white_balance_mode=WB_MODE valid values are: Auto, Daylight, Shade, Cloudy, Fluorescent_D, Fluorescent_N, Fluorescent_W, Fluorescent_L, Tungsten, Flash, Manual, CTE\0A --white_balance_adjustment=WB_ADJ valid values like: G5B2, G3A5, B5, A3, G5, M4...\0A -f, --auto_focus autofocus\0A --reconnect reconnect between shots\0A --servermode start in server mode and wait for commands\0A -g, --green green button\0A -s, --status print status info\0A --status_hex print status hex info\0A --dust_removal dust removal\0A -F, --frames=NUMBER number of frames\0A -d, --delay=SECONDS delay between the frames (seconds)\0A --file_format=FORMAT valid values: PEF, DNG, JPEG\0A -o, --output_file=FILE send output to FILE instead of stdout\0A --debug turn on debug messages\0A --noshutter do not send shutter command, just wait for new photo, download and delete from camera\0A -v, --version display version information and exit\0A -h, --help display this help and exit\0A --pentax_debug_mode={0|1}\09\09enable or disable camera debug mode and exit (DANGEROUS). Valid values are: 0, 1\0A\0A\00"
define void @usage(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([3324 x i8], [3324 x i8]* @.str, i64 0, i64 0), i8* %0)
ret void
}