#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*/ exit(int);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ stdout;
void help() {
  fprintf(
      stdout,
      "\n"
      "htmlEnt2Char  --  replaces HTML entities\n"
      "   options:\n"
      "     -C <encod>   output encoding, actually supported:\n"
      "                        l1 lat1 latin1 iso-8859-1\n"
      "                        u8 utf-8 (default)\n"
      "     -o <filen>   output filename\n"
      "     -f           force: skip misspelled entities or\n"
      "                  entities not printable in given charset\n"
      "                  (see also -r or -R)\n"
      "     -r <string>  replace unrecognized/unprintable entities\n"
      "                  by <string>\n"
      "     -R <num>     replace unrecognized/unprintable entities\n"
      "                  by a character given as <num>, a Unicode code point\n"
      "                  Interpretation of <num> follows the C convention:\n"
      "                  0x.... for hexadecimal numbers\n"
      "                  0....  for octal numbers\n"
      "                  ....   for decimal numbers\n"
      "     -q           quiet: don't report errors, misspelled\n"
      "                    entities etc.\n"
      "     -h | -?      print this help and exit\n"
      "   Other arguments will be read as input filenames.\n"
      "   If no input files are given, input is read from stdin.\n"
      "   If no output file is given, the text with replacements\n"
      "   is written to stdout.\n\n");
  printf("htmlEnt2Char, Sebastian Nagel (wastl@cis.uni-muenchen.de)\n");
  exit(1);
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ea5(%rip),%rax
mov    (%rax),%edi
lea    0xebc(%rip),%rsi
call   1040 <fprintf@plt>
lea    0x1323(%rip),%rdi
call   1030 <printf@plt>
mov    $0x1,%edi
call   1050 <exit@plt>

x86 assembly (clang, -O2):
<help>:
push   %rax
mov    0x2ea8(%rip),%rax
mov    (%rax),%edi
lea    0xebf(%rip),%rsi
call   1040 <fprintf@plt>
lea    0x1326(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [1139 x i8] c"\0AhtmlEnt2Char -- replaces HTML entities\0A options:\0A -C <encod> output encoding, actually supported:\0A l1 lat1 latin1 iso-8859-1\0A u8 utf-8 (default)\0A -o <filen> output filename\0A -f force: skip misspelled entities or\0A entities not printable in given charset\0A (see also -r or -R)\0A -r <string> replace unrecognized/unprintable entities\0A by <string>\0A -R <num> replace unrecognized/unprintable entities\0A by a character given as <num>, a Unicode code point\0A Interpretation of <num> follows the C convention:\0A 0x.... for hexadecimal numbers\0A 0.... for octal numbers\0A .... for decimal numbers\0A -q quiet: don't report errors, misspelled\0A entities etc.\0A -h | -? print this help and exit\0A Other arguments will be read as input filenames.\0A If no input files are given, input is read from stdin.\0A If no output file is given, the text with replacements\0A is written to stdout.\0A\0A\00"
@.str.1 = [59 x i8] c"htmlEnt2Char, Sebastian Nagel (wastl@cis.uni-muenchen.de)\0A\00"
define void @help() {
%1 = load i32, i32* @stdout
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1139 x i8], [1139 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.1, i64 0, i64 0))
%4 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [1139 x i8] c"\0AhtmlEnt2Char -- replaces HTML entities\0A options:\0A -C <encod> output encoding, actually supported:\0A l1 lat1 latin1 iso-8859-1\0A u8 utf-8 (default)\0A -o <filen> output filename\0A -f force: skip misspelled entities or\0A entities not printable in given charset\0A (see also -r or -R)\0A -r <string> replace unrecognized/unprintable entities\0A by <string>\0A -R <num> replace unrecognized/unprintable entities\0A by a character given as <num>, a Unicode code point\0A Interpretation of <num> follows the C convention:\0A 0x.... for hexadecimal numbers\0A 0.... for octal numbers\0A .... for decimal numbers\0A -q quiet: don't report errors, misspelled\0A entities etc.\0A -h | -? print this help and exit\0A Other arguments will be read as input filenames.\0A If no input files are given, input is read from stdin.\0A If no output file is given, the text with replacements\0A is written to stdout.\0A\0A\00"
@str = [58 x i8] c"htmlEnt2Char, Sebastian Nagel (wastl@cis.uni-muenchen.de)\00"
define void @help() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1139 x i8], [1139 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str, i64 0, i64 0))
%4 = tail call i32 @exit(i32 1)
unreachable
}