#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*/ print_copyright();
int /*<<< orphan*/ print_version(char *);
int /*<<< orphan*/ printf(char *, char *);
scalar_t__ strlen(char *);
int /*<<< orphan*/ usage();
void print_help() {
  printf("\nTool name:\n   %s\n", "deskew");
  usage();
  printf(
      "Description:\n%s\n\n",
      "   Deskew removes squint-induced skew from ground range images.\n"
      "   The squint angle of an image along with the look angle is used\n"
      "   to determine the amount of parallelogram shift skew that has\n"
      "   been introduced in an image due to the doppler centroid selection\n"
      "   during image processing.  It then remaps the image, using a bi-\n"
      "   linear interpolation to remove this skew.");
  if (strlen(
          "   <input file>  An ASF Internal format file (.img, .ddr) that has\n"
          "        not been deskewed (check the 'deskewed:' flag in the "
          "metadata\n"
          "        file sar block)\n"
          "   <input metadata file>  The metadata file that is associated\n"
          "        with the input file."))
    printf(
        "Input:\n%s\n\n",
        "   <input file>  An ASF Internal format file (.img, .ddr) that has\n"
        "        not been deskewed (check the 'deskewed:' flag in the "
        "metadata\n"
        "        file sar block)\n"
        "   <input metadata file>  The metadata file that is associated\n"
        "        with the input file.");
  if (strlen(
          "   <output file>  An ASF Internal format file (.img, .ddr) that\n"
          "        has been deskewed.\n"
          "   <output metadata file>  The metadata file associated with the\n"
          "        output file."))
    printf("Output:\n%s\n\n",
           "   <output file>  An ASF Internal format file (.img, .ddr) that\n"
           "        has been deskewed.\n"
           "   <output metadata file>  The metadata file associated with the\n"
           "        output file.");
  if (strlen(
          "   -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."))
    printf("Options:\n%s\n\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(""))
    printf("Examples:\n%s\n\n", "");
  if (strlen(""))
    printf("Limitations:\n%s\n\n", "");
  if (strlen("   sr2gr (slant range to ground range converter), and\n"
             "   gr2sr (ground range to slant range converter)"))
    printf("See Also:\n%s\n\n",
           "   sr2gr (slant range to ground range converter), and\n"
           "   gr2sr (ground range to slant range converter)");
  printf("Contact:\n%s", "   "
                         "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("deskew");
  print_copyright();
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xea5(%rip),%rdi
lea    0xeb1(%rip),%rsi
call   1050 <printf@plt>
mov    $0x0,%al
call   1070 <usage@plt>
lea    0xea5(%rip),%rdi
lea    0xeb0(%rip),%rsi
call   1050 <printf@plt>
lea    0x101b(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     11aa <print_help+0x5a>
lea    0x1102(%rip),%rdi
lea    0xffe(%rip),%rsi
call   1050 <printf@plt>
lea    0x10fb(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     11d3 <print_help+0x83>
lea    0x1196(%rip),%rdi
lea    0x10de(%rip),%rsi
call   1050 <printf@plt>
lea    0x1190(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     11fc <print_help+0xac>
lea    0x123e(%rip),%rdi
lea    0x1173(%rip),%rsi
call   1050 <printf@plt>
lea    0xe28(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     1225 <print_help+0xd5>
lea    0x1223(%rip),%rdi
lea    0xe0b(%rip),%rsi
call   1050 <printf@plt>
lea    0xdff(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     124e <print_help+0xfe>
lea    0x1209(%rip),%rdi
lea    0xde2(%rip),%rsi
call   1050 <printf@plt>
lea    0x1208(%rip),%rdi
call   1040 <strlen@plt>
cmp    $0x0,%rax
je     1277 <print_help+0x127>
lea    0x1259(%rip),%rdi
lea    0x11eb(%rip),%rsi
call   1050 <printf@plt>
lea    0x1255(%rip),%rdi
lea    0x125a(%rip),%rsi
call   1050 <printf@plt>
lea    0xd82(%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   %rbx
lea    0xeb8(%rip),%rdi
lea    0xec4(%rip),%rbx
mov    %rbx,%rsi
call   1040 <printf@plt>
xor    %eax,%eax
call   1060 <usage@plt>
lea    0xeb5(%rip),%rdi
lea    0xec0(%rip),%rsi
call   1040 <printf@plt>
lea    0x1128(%rip),%rdi
lea    0x1024(%rip),%rsi
call   1040 <printf@plt>
lea    0x11d2(%rip),%rdi
lea    0x111a(%rip),%rsi
call   1040 <printf@plt>
lea    0x1290(%rip),%rdi
lea    0x11c5(%rip),%rsi
call   1040 <printf@plt>
lea    0x12f2(%rip),%rdi
lea    0x1284(%rip),%rsi
call   1040 <printf@plt>
lea    0x12ee(%rip),%rdi
lea    0x12f3(%rip),%rsi
call   1040 <printf@plt>
mov    %rbx,%rdi
call   1030 <print_version@plt>
xor    %eax,%eax
pop    %rbx
jmp    1050 <print_copyright@plt>

LLVM IR (-O0):
@.str = [19 x i8] c"\0ATool name:\0A %s\0A\00"
@.str.1 = [7 x i8] c"deskew\00"
@.str.2 = [18 x i8] c"Description:\0A%s\0A\0A\00"
@.str.3 = [375 x i8] c" Deskew removes squint-induced skew from ground range images.\0A The squint angle of an image along with the look angle is used\0A to determine the amount of parallelogram shift skew that has\0A been introduced in an image due to the doppler centroid selection\0A during image processing. It then remaps the image, using a bi-\0A linear interpolation to remove this skew.\00"
@.str.4 = [253 x i8] c" <input file> An ASF Internal format file (.img, .ddr) that has\0A not been deskewed (check the 'deskewed:' flag in the metadata\0A file sar block)\0A <input metadata file> The metadata file that is associated\0A with the input file.\00"
@.str.5 = [12 x i8] c"Input:\0A%s\0A\0A\00"
@.str.6 = [177 x i8] c" <output file> An ASF Internal format file (.img, .ddr) that\0A has been deskewed.\0A <output metadata file> The metadata file associated with the\0A output file.\00"
@.str.7 = [13 x i8] c"Output:\0A%s\0A\0A\00"
@.str.8 = [196 x i8] c" -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 = [103 x i8] c" sr2gr (slant range to ground range converter), and\0A gr2sr (ground range to slant range converter)\00"
@.str.14 = [15 x i8] c"See Also:\0A%s\0A\0A\00"
@.str.15 = [12 x i8] c"Contact:\0A%s\00"
@.str.16 = [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 = call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%2 = call i32 (...) @usage()
%3 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([375 x i8], [375 x i8]* @.str.3, i64 0, i64 0))
%4 = call i64 @strlen(i8* getelementptr inbounds ([253 x i8], [253 x i8]* @.str.4, i64 0, i64 0))
%5 = icmp ne i64 %4, 0
br i1 %5, label %6, label %8
6: ; preds = %0
%7 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([253 x i8], [253 x i8]* @.str.4, i64 0, i64 0))
br label %8
8: ; preds = %6, %0
%9 = call i64 @strlen(i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str.6, i64 0, i64 0))
%10 = icmp ne i64 %9, 0
br i1 %10, label %11, label %13
11: ; preds = %8
%12 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str.6, i64 0, i64 0))
br label %13
13: ; preds = %11, %8
%14 = call i64 @strlen(i8* getelementptr inbounds ([196 x i8], [196 x i8]* @.str.8, i64 0, i64 0))
%15 = icmp ne i64 %14, 0
br i1 %15, label %16, label %18
16: ; preds = %13
%17 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([196 x i8], [196 x i8]* @.str.8, i64 0, i64 0))
br label %18
18: ; preds = %16, %13
%19 = call i64 @strlen(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.10, i64 0, i64 0))
%20 = icmp ne i64 %19, 0
br i1 %20, label %21, label %23
21: ; preds = %18
%22 = call i32 @printf(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 %23
23: ; preds = %21, %18
%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 %28
26: ; preds = %23
%27 = call i32 @printf(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 %28
28: ; preds = %26, %23
%29 = call i64 @strlen(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.13, i64 0, i64 0))
%30 = icmp ne i64 %29, 0
br i1 %30, label %31, label %33
31: ; preds = %28
%32 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.13, i64 0, i64 0))
br label %33
33: ; preds = %31, %28
%34 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.16, i64 0, i64 0))
%35 = call i32 @print_version(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%36 = call i32 (...) @print_copyright()
ret void
}

LLVM IR (-O2):
@.str = [19 x i8] c"\0ATool name:\0A %s\0A\00"
@.str.1 = [7 x i8] c"deskew\00"
@.str.2 = [18 x i8] c"Description:\0A%s\0A\0A\00"
@.str.3 = [375 x i8] c" Deskew removes squint-induced skew from ground range images.\0A The squint angle of an image along with the look angle is used\0A to determine the amount of parallelogram shift skew that has\0A been introduced in an image due to the doppler centroid selection\0A during image processing. It then remaps the image, using a bi-\0A linear interpolation to remove this skew.\00"
@.str.4 = [253 x i8] c" <input file> An ASF Internal format file (.img, .ddr) that has\0A not been deskewed (check the 'deskewed:' flag in the metadata\0A file sar block)\0A <input metadata file> The metadata file that is associated\0A with the input file.\00"
@.str.5 = [12 x i8] c"Input:\0A%s\0A\0A\00"
@.str.6 = [177 x i8] c" <output file> An ASF Internal format file (.img, .ddr) that\0A has been deskewed.\0A <output metadata file> The metadata file associated with the\0A output file.\00"
@.str.7 = [13 x i8] c"Output:\0A%s\0A\0A\00"
@.str.8 = [196 x i8] c" -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.13 = [103 x i8] c" sr2gr (slant range to ground range converter), and\0A gr2sr (ground range to slant range converter)\00"
@.str.14 = [15 x i8] c"See Also:\0A%s\0A\0A\00"
@.str.15 = [12 x i8] c"Contact:\0A%s\00"
@.str.16 = [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 = tail call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%2 = tail call i32 (...) @usage()
%3 = tail call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([375 x i8], [375 x i8]* @.str.3, i64 0, i64 0))
%4 = tail call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([253 x i8], [253 x i8]* @.str.4, i64 0, i64 0))
%5 = tail call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str.6, i64 0, i64 0))
%6 = tail call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([196 x i8], [196 x i8]* @.str.8, i64 0, i64 0))
%7 = tail call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.13, i64 0, i64 0))
%8 = tail call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.16, i64 0, i64 0))
%9 = tail call i32 @print_version(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
%10 = tail call i32 (...) @print_copyright()
ret void
}