#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 *, char *);
int /*<<< orphan*/ print_copyright();
int /*<<< orphan*/ print_version(char *);
int /*<<< orphan*/ stderr;
scalar_t__ strlen(char *);
int /*<<< orphan*/ usage();
void print_help() {
  fprintf(stderr, "\nTool name:\n   %s\n", "meta2envi");
  usage();
  fprintf(stderr, "Description:\n%s\n\n",
          "   The meta2envi tool creates an ENVI style header file (.hdr) from "
          "an ASF\n"
          "   Internal format metadata file (.meta) so that ENVI software is "
          "able to\n"
          "   read an ASF Internal format data file (.img)");
  if (strlen("   <meta_name>  The name of the input ASF Internal format "
             "metadata data file (.meta)"))
    fprintf(stderr, "Input:\n%s\n\n",
            "   <meta_name>  The name of the input ASF Internal format "
            "metadata data file (.meta)");
  if (strlen("   <envi_name>  The name of the ENVI type output header file "
             "(.hdr)"))
    fprintf(
        stderr, "Output:\n%s\n\n",
        "   <envi_name>  The name of the ENVI type output header file (.hdr)");
  if (strlen(
          "   -log <logfile>\n"
          "        Save all tool output in <logfile>\n"
          "   -license\n"
          "        Print copyright and license for this software then exit.\n"
          "   -version\n"
          "        Print version and copyright then exit.\n"
          "   -help\n"
          "        Print this help information and then exit."))
    fprintf(stderr, "Options:\n%s\n\n",
            "   -log <logfile>\n"
            "        Save all tool output in <logfile>\n"
            "   -license\n"
            "        Print copyright and license for this software then exit.\n"
            "   -version\n"
            "        Print version and copyright then exit.\n"
            "   -help\n"
            "        Print this help information and then exit.");
  if (strlen(""))
    fprintf(stderr, "Examples:\n%s\n\n", "");
  if (strlen(""))
    fprintf(stderr, "Limitations:\n%s\n\n", "");
  if (strlen(""))
    fprintf(stderr, "See Also:\n%s\n\n", "");
  fprintf(stderr, "Contact:\n%s\n",
          "   "
          "Alaska Satellite Facility"
          "\n"
          "   "
          "Geophysical Institute"
          "\n"
          "   "
          "University of Alaska Fairbanks"
          "\n"
          "   "
          "P.O. Box 757320"
          "\n"
          "   "
          "Fairbanks, AK 99775-7320"
          "\n"
          "   "
          "http://www.asf.alaska.edu"
          "\n"
          "   "
          "uso@asf.alaska.edu"
          "\n");
  print_version("meta2envi");
  print_copyright();
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
mov    0x2e85(%rip),%rax
mov    (%rax),%edi
lea    0xe9c(%rip),%rsi
lea    0xea8(%rip),%rdx
call   1050 <fprintf@plt>
mov    $0x0,%al
call   1070 <usage@plt>
mov    0x2e62(%rip),%rax
mov    (%rax),%edi
lea    0xe96(%rip),%rsi
lea    0xea1(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xf5a(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     11c5 <print_help+0x75>
mov    0x2e30(%rip),%rax
mov    (%rax),%edi
lea    0xf90(%rip),%rsi
lea    0xf34(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xf89(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     11f7 <print_help+0xa7>
mov    0x2dfe(%rip),%rax
mov    (%rax),%edi
lea    0xfae(%rip),%rsi
lea    0xf63(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xfa8(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     1229 <print_help+0xd9>
mov    0x2dcc(%rip),%rax
mov    (%rax),%edi
lea    0x1089(%rip),%rsi
lea    0xf82(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xdfe(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     125b <print_help+0x10b>
mov    0x2d9a(%rip),%rax
mov    (%rax),%edi
lea    0x1065(%rip),%rsi
lea    0xdd8(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xdcc(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     128d <print_help+0x13d>
mov    0x2d68(%rip),%rax
mov    (%rax),%edi
lea    0x1042(%rip),%rsi
lea    0xda6(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xd9a(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     12bf <print_help+0x16f>
mov    0x2d36(%rip),%rax
mov    (%rax),%edi
lea    0x1022(%rip),%rsi
lea    0xd74(%rip),%rdx
call   1050 <fprintf@plt>
mov    0x2d1a(%rip),%rax
mov    (%rax),%edi
lea    0x1015(%rip),%rsi
lea    0x101b(%rip),%rdx
call   1050 <fprintf@plt>
lea    0xd31(%rip),%rdi
call   1030 <print_version@plt>
mov    $0x0,%al
call   1060 <print_copyright@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
push   %r14
push   %rbx
push   %rax
mov    0x2e95(%rip),%rbx
mov    (%rbx),%edi
lea    0xeac(%rip),%rsi
lea    0xeb8(%rip),%r14
mov    %r14,%rdx
call   1040 <fprintf@plt>
xor    %eax,%eax
call   1060 <usage@plt>
mov    (%rbx),%edi
lea    0xeaa(%rip),%rsi
lea    0xeb5(%rip),%rdx
call   1040 <fprintf@plt>
mov    (%rbx),%edi
lea    0xfc1(%rip),%rsi
lea    0xf65(%rip),%rdx
call   1040 <fprintf@plt>
mov    (%rbx),%edi
lea    0xffc(%rip),%rsi
lea    0xfb1(%rip),%rdx
call   1040 <fprintf@plt>
mov    (%rbx),%edi
lea    0x10f4(%rip),%rsi
lea    0xfed(%rip),%rdx
call   1040 <fprintf@plt>
mov    (%rbx),%edi
lea    0x10ed(%rip),%rsi
lea    0x10f3(%rip),%rdx
call   1040 <fprintf@plt>
mov    %r14,%rdi
call   1030 <print_version@plt>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r14
jmp    1050 <print_copyright@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [19 x i8] c"\0ATool name:\0A %s\0A\00"
@.str.1 = [10 x i8] c"meta2envi\00"
@.str.2 = [18 x i8] c"Description:\0A%s\0A\0A\00"
@.str.3 = [197 x i8] c" The meta2envi tool creates an ENVI style header file (.hdr) from an ASF\0A Internal format metadata file (.meta) so that ENVI software is able to\0A read an ASF Internal format data file (.img)\00"
@.str.4 = [85 x i8] c" <meta_name> The name of the input ASF Internal format metadata data file (.meta)\00"
@.str.5 = [12 x i8] c"Input:\0A%s\0A\0A\00"
@.str.6 = [68 x i8] c" <envi_name> The name of the ENVI type output header file (.hdr)\00"
@.str.7 = [13 x i8] c"Output:\0A%s\0A\0A\00"
@.str.8 = [256 x i8] c" -log <logfile>\0A Save all tool output in <logfile>\0A -license\0A Print copyright and license for this software then exit.\0A -version\0A Print version and copyright then exit.\0A -help\0A Print this help information and then exit.\00"
@.str.9 = [14 x i8] c"Options:\0A%s\0A\0A\00"
@.str.10 = [1 x i8] zeroinitializer
@.str.11 = [15 x i8] c"Examples:\0A%s\0A\0A\00"
@.str.12 = [18 x i8] c"Limitations:\0A%s\0A\0A\00"
@.str.13 = [15 x i8] c"See Also:\0A%s\0A\0A\00"
@.str.14 = [13 x i8] c"Contact:\0A%s\0A\00"
@.str.15 = [187 x i8] c" Alaska Satellite Facility\0A Geophysical Institute\0A University of Alaska Fairbanks\0A P.O. Box 757320\0A Fairbanks, AK 99775-7320\0A http://www.asf.alaska.edu\0A uso@asf.alaska.edu\0A\00"
define void @print_help() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 (...) @usage()
%4 = load i32, i32* @stderr
%5 = call i32 @fprintf(i32 %4, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([197 x i8], [197 x i8]* @.str.3, i64 0, i64 0))
%6 = call i64 @strlen(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.4, i64 0, i64 0))
%7 = icmp ne i64 %6, 0
br i1 %7, label %8, label %11
8: ; preds = %0
%9 = load i32, i32* @stderr
%10 = call i32 @fprintf(i32 %9, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.4, i64 0, i64 0))
br label %11
11: ; preds = %8, %0
%12 = call i64 @strlen(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.6, i64 0, i64 0))
%13 = icmp ne i64 %12, 0
br i1 %13, label %14, label %17
14: ; preds = %11
%15 = load i32, i32* @stderr
%16 = call i32 @fprintf(i32 %15, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.6, i64 0, i64 0))
br label %17
17: ; preds = %14, %11
%18 = call i64 @strlen(i8* getelementptr inbounds ([256 x i8], [256 x i8]* @.str.8, i64 0, i64 0))
%19 = icmp ne i64 %18, 0
br i1 %19, label %20, label %23
20: ; preds = %17
%21 = load i32, i32* @stderr
%22 = call i32 @fprintf(i32 %21, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([256 x i8], [256 x i8]* @.str.8, i64 0, i64 0))
br label %23
23: ; preds = %20, %17
%24 = call i64 @strlen(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
%25 = icmp ne i64 %24, 0
br i1 %25, label %26, label %29
26: ; preds = %23
%27 = load i32, i32* @stderr
%28 = call i32 @fprintf(i32 %27, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
br label %29
29: ; preds = %26, %23
%30 = call i64 @strlen(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
%31 = icmp ne i64 %30, 0
br i1 %31, label %32, label %35
32: ; preds = %29
%33 = load i32, i32* @stderr
%34 = call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
br label %35
35: ; preds = %32, %29
%36 = call i64 @strlen(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
%37 = icmp ne i64 %36, 0
br i1 %37, label %38, label %41
38: ; preds = %35
%39 = load i32, i32* @stderr
%40 = call i32 @fprintf(i32 %39, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
br label %41
41: ; preds = %38, %35
%42 = load i32, i32* @stderr
%43 = call i32 @fprintf(i32 %42, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.15, i64 0, i64 0))
%44 = call i32 @print_version(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
%45 = call i32 (...) @print_copyright()
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [19 x i8] c"\0ATool name:\0A %s\0A\00"
@.str.1 = [10 x i8] c"meta2envi\00"
@.str.2 = [18 x i8] c"Description:\0A%s\0A\0A\00"
@.str.3 = [197 x i8] c" The meta2envi tool creates an ENVI style header file (.hdr) from an ASF\0A Internal format metadata file (.meta) so that ENVI software is able to\0A read an ASF Internal format data file (.img)\00"
@.str.4 = [85 x i8] c" <meta_name> The name of the input ASF Internal format metadata data file (.meta)\00"
@.str.5 = [12 x i8] c"Input:\0A%s\0A\0A\00"
@.str.6 = [68 x i8] c" <envi_name> The name of the ENVI type output header file (.hdr)\00"
@.str.7 = [13 x i8] c"Output:\0A%s\0A\0A\00"
@.str.8 = [256 x i8] c" -log <logfile>\0A Save all tool output in <logfile>\0A -license\0A Print copyright and license for this software then exit.\0A -version\0A Print version and copyright then exit.\0A -help\0A Print this help information and then exit.\00"
@.str.9 = [14 x i8] c"Options:\0A%s\0A\0A\00"
@.str.14 = [13 x i8] c"Contact:\0A%s\0A\00"
@.str.15 = [187 x i8] c" Alaska Satellite Facility\0A Geophysical Institute\0A University of Alaska Fairbanks\0A P.O. Box 757320\0A Fairbanks, AK 99775-7320\0A http://www.asf.alaska.edu\0A uso@asf.alaska.edu\0A\00"
define void @print_help() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 (...) @usage()
%4 = load i32, i32* @stderr
%5 = tail call i32 @fprintf(i32 %4, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([197 x i8], [197 x i8]* @.str.3, i64 0, i64 0))
%6 = load i32, i32* @stderr
%7 = tail call i32 @fprintf(i32 %6, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.4, i64 0, i64 0))
%8 = load i32, i32* @stderr
%9 = tail call i32 @fprintf(i32 %8, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.6, i64 0, i64 0))
%10 = load i32, i32* @stderr
%11 = tail call i32 @fprintf(i32 %10, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([256 x i8], [256 x i8]* @.str.8, i64 0, i64 0))
%12 = load i32, i32* @stderr
%13 = tail call i32 @fprintf(i32 %12, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.15, i64 0, i64 0))
%14 = tail call i32 @print_version(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0))
%15 = tail call i32 (...) @print_copyright()
ret void
}