#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 help(void) {
  (void)fprintf(
      stdout,
      "Usage: ptar [-h] [OPTION ...] c|x|t [PATH ...]\n\n"
      "     Manipulate plain text archives that are similar to traditional "
      "tar(1)\n"
      "     files but are more human-readable.\n\n"
      "Commands:\n\n"
      "     c         Create a new archive and print its contents on standard\n"
      "               output.  The files whose PATHs are listed on the "
      "command\n"
      "               line will be added to the archive.\n\n"
      "     x         Extract the contents of the archive from standard input\n"
      "               and write the contents to the file system relative to\n"
      "               the current working directory.  The files whose PATHs "
      "are\n"
      "               listed on the command line will be extracted from the\n"
      "               archive.  If no PATHs are specified, then all contents\n"
      "               will be extracted.  PATHs are treated as shell wildcard\n"
      "               patterns: '*.jpg' 'pictures/2013-*.jpg' and other such\n"
      "               patterns will match archived paths the same way these\n"
      "               patterns match paths in interactive shells.\n\n"
      "     t         List the PATHs stored in the archive from standard "
      "input.\n"
      "               This also checks whether the archive conforms to the "
      "plain\n"
      "               text archive standard (including recognized extensions) "
      "and\n"
      "               can be extracted via 'x' without parse errors.  This "
      "does\n"
      "               not check your file system's state and thus cannot\n"
      "               guarantee that extraction would succeed.  This also "
      "does\n"
      "               not verify file or metadata contents unless the archive\n"
      "               contains a recognized extension that permits such\n"
      "               verification.  Unrecognized extensions are treated\n"
      "               as errors.\n\n"
      "Options:\n\n"
      "     NOTE: Options must precede command letters.\n\n"
      "     -h, --help                   Show this help message and exit.\n"
      "     -n, --no-archive-metadata    Don't write global archive metadata "
      "when\n"
      "                                  creating an archive with the 'c'\n"
      "                                  command.  (NOTE: Archives created "
      "with\n"
      "                                  this option will lack top-level "
      "archive\n"
      "                                  metadata and thus will not be "
      "standards-\n"
      "                                  compliant.  However, you can append\n"
      "                                  such archives onto "
      "standards-compliant\n"
      "                                  archives without affecting their\n"
      "                                  compliance.  This creates a way to "
      "add\n"
      "                                  files to already-existing archives\n"
      "                                  through shell redirection.)\n"
      "     -o, --extract-to-stdout      Override default 'x' command behavior "
      "by\n"
      "                                  writing extracted regular files' "
      "contents\n"
      "                                  to standard output.  The file system "
      "is\n"
      "                                  not altered.  (This only makes sense "
      "for\n"
      "                                  the 'x' command.)\n"
      "     --paths-from-stdin           Read PATHs to be archived from "
      "standard\n"
      "                                  input, one PATH per line, after\n"
      "                                  archiving PATHs specified on the "
      "command\n"
      "                                  line.  (This only makes sense for "
      "the\n"
      "                                  'c' command.)\n"
      "     -u, --unbuffered             Disable standard output buffering.\n"
      "     -v, --verbose                Verbose output: List PATHs added or\n"
      "                                  extracted on standard error.\n\n");
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
mov    0x3ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

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

LLVM IR (-O0):
@stdout = global i32 0
@.str = [3449 x i8] c"Usage: ptar [-h] [OPTION ...] c|x|t [PATH ...]\0A\0A Manipulate plain text archives that are similar to traditional tar(1)\0A files but are more human-readable.\0A\0ACommands:\0A\0A c Create a new archive and print its contents on standard\0A output. The files whose PATHs are listed on the command\0A line will be added to the archive.\0A\0A x Extract the contents of the archive from standard input\0A and write the contents to the file system relative to\0A the current working directory. The files whose PATHs are\0A listed on the command line will be extracted from the\0A archive. If no PATHs are specified, then all contents\0A will be extracted. PATHs are treated as shell wildcard\0A patterns: '*.jpg' 'pictures/2013-*.jpg' and other such\0A patterns will match archived paths the same way these\0A patterns match paths in interactive shells.\0A\0A t List the PATHs stored in the archive from standard input.\0A This also checks whether the archive conforms to the plain\0A text archive standard (including recognized extensions) and\0A can be extracted via 'x' without parse errors. This does\0A not check your file system's state and thus cannot\0A guarantee that extraction would succeed. This also does\0A not verify file or metadata contents unless the archive\0A contains a recognized extension that permits such\0A verification. Unrecognized extensions are treated\0A as errors.\0A\0AOptions:\0A\0A NOTE: Options must precede command letters.\0A\0A -h, --help Show this help message and exit.\0A -n, --no-archive-metadata Don't write global archive metadata when\0A creating an archive with the 'c'\0A command. (NOTE: Archives created with\0A this option will lack top-level archive\0A metadata and thus will not be standards-\0A compliant. However, you can append\0A such archives onto standards-compliant\0A archives without affecting their\0A compliance. This creates a way to add\0A files to already-existing archives\0A through shell redirection.)\0A -o, --extract-to-stdout Override default 'x' command behavior by\0A writing extracted regular files' contents\0A to standard output. The file system is\0A not altered. (This only makes sense for\0A the 'x' command.)\0A --paths-from-stdin Read PATHs to be archived from standard\0A input, one PATH per line, after\0A archiving PATHs specified on the command\0A line. (This only makes sense for the\0A 'c' command.)\0A -u, --unbuffered Disable standard output buffering.\0A -v, --verbose Verbose output: List PATHs added or\0A extracted on standard error.\0A\0A\00"
define void @help() {
%1 = load i32, i32* @stdout
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([3449 x i8], [3449 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [3449 x i8] c"Usage: ptar [-h] [OPTION ...] c|x|t [PATH ...]\0A\0A Manipulate plain text archives that are similar to traditional tar(1)\0A files but are more human-readable.\0A\0ACommands:\0A\0A c Create a new archive and print its contents on standard\0A output. The files whose PATHs are listed on the command\0A line will be added to the archive.\0A\0A x Extract the contents of the archive from standard input\0A and write the contents to the file system relative to\0A the current working directory. The files whose PATHs are\0A listed on the command line will be extracted from the\0A archive. If no PATHs are specified, then all contents\0A will be extracted. PATHs are treated as shell wildcard\0A patterns: '*.jpg' 'pictures/2013-*.jpg' and other such\0A patterns will match archived paths the same way these\0A patterns match paths in interactive shells.\0A\0A t List the PATHs stored in the archive from standard input.\0A This also checks whether the archive conforms to the plain\0A text archive standard (including recognized extensions) and\0A can be extracted via 'x' without parse errors. This does\0A not check your file system's state and thus cannot\0A guarantee that extraction would succeed. This also does\0A not verify file or metadata contents unless the archive\0A contains a recognized extension that permits such\0A verification. Unrecognized extensions are treated\0A as errors.\0A\0AOptions:\0A\0A NOTE: Options must precede command letters.\0A\0A -h, --help Show this help message and exit.\0A -n, --no-archive-metadata Don't write global archive metadata when\0A creating an archive with the 'c'\0A command. (NOTE: Archives created with\0A this option will lack top-level archive\0A metadata and thus will not be standards-\0A compliant. However, you can append\0A such archives onto standards-compliant\0A archives without affecting their\0A compliance. This creates a way to add\0A files to already-existing archives\0A through shell redirection.)\0A -o, --extract-to-stdout Override default 'x' command behavior by\0A writing extracted regular files' contents\0A to standard output. The file system is\0A not altered. (This only makes sense for\0A the 'x' command.)\0A --paths-from-stdin Read PATHs to be archived from standard\0A input, one PATH per line, after\0A archiving PATHs specified on the command\0A line. (This only makes sense for the\0A 'c' command.)\0A -u, --unbuffered Disable standard output buffering.\0A -v, --verbose Verbose output: List PATHs added or\0A extracted on standard error.\0A\0A\00"
define void @help() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([3449 x i8], [3449 x i8]* @.str, i64 0, i64 0))
ret void
}