#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 *);
void show_help(void) {
  printf(
      "======== mhmt help ========\n"
      "parameters:\n"
      "-mlz, -hrm, -hst, -zx7 - use MegaLZ, hrum3.5, hrust1.x or zx7 formats "
      "(default is MegaLZ)\n"
      "-g - greedy coding (default is optimal coding), not supported yet\n"
      "-d - depacking instead of packing (default is packing)\n"
      "\n"
      "-zxh - use zx-specific header for hrum or hrust. DEFAULT is NO HEADER!\n"
      "       Not applicable for MegaLZ. If -zxh is specified, -16, NO -bend "
      "and\n"
      "       NO -mlz is forced.\n"
      "\n"
      "-8, -16 - bitstream is in bytes or words in packed file.\n"
      "          Default for MegaLZ is -8, for hrum and hrust is -16.\n"
      "\n"
      "-bend - if -16 specified, this makes words big-endian. Default is "
      "little-endian.\n"
      "\n"
      "-maxwinN - maximum lookback window. N is decimal number, which can only "
      "be\n"
      "           256,512,1024,2048,4096,8192,16384,32768. Default is "
      "format-specific\n"
      "           maximum window: MegaLZ is 4352, hrum is 4096, hrust is "
      "65536,\n"
      "                           zx7 is 2176.\n"
      "           For given format, window can't be greater than default "
      "value\n"
      "\n"
      "-prebin <filename> - use specified file as prebinary for packing and "
      "depacking.\n"
      "\n"
      "usage:\n"
      "mhmt [parameter list] <input filename> [<output filename>]\n"
      "\n"
      "if no output filename given, filename is appended with \".mlz\", "
      "\".hrm\", \".hst\" or \".zx7\"\n"
      "in accordance with the format chosen; for depacking \".dpk\" is "
      "appended\n"
      "====== mhmt help end ======\n"
      "\n");
}


x86 assembly (clang, -O0):
<show_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<show_help>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1304 x i8] c"======== mhmt help ========\0Aparameters:\0A-mlz, -hrm, -hst, -zx7 - use MegaLZ, hrum3.5, hrust1.x or zx7 formats (default is MegaLZ)\0A-g - greedy coding (default is optimal coding), not supported yet\0A-d - depacking instead of packing (default is packing)\0A\0A-zxh - use zx-specific header for hrum or hrust. DEFAULT is NO HEADER!\0A Not applicable for MegaLZ. If -zxh is specified, -16, NO -bend and\0A NO -mlz is forced.\0A\0A-8, -16 - bitstream is in bytes or words in packed file.\0A Default for MegaLZ is -8, for hrum and hrust is -16.\0A\0A-bend - if -16 specified, this makes words big-endian. Default is little-endian.\0A\0A-maxwinN - maximum lookback window. N is decimal number, which can only be\0A 256,512,1024,2048,4096,8192,16384,32768. Default is format-specific\0A maximum window: MegaLZ is 4352, hrum is 4096, hrust is 65536,\0A zx7 is 2176.\0A For given format, window can't be greater than default value\0A\0A-prebin <filename> - use specified file as prebinary for packing and depacking.\0A\0Ausage:\0Amhmt [parameter list] <input filename> [<output filename>]\0A\0Aif no output filename given, filename is appended with \22.mlz\22, \22.hrm\22, \22.hst\22 or \22.zx7\22\0Ain accordance with the format chosen; for depacking \22.dpk\22 is appended\0A====== mhmt help end ======\0A\0A\00"
define void @show_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1304 x i8], [1304 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1303 x i8] c"======== mhmt help ========\0Aparameters:\0A-mlz, -hrm, -hst, -zx7 - use MegaLZ, hrum3.5, hrust1.x or zx7 formats (default is MegaLZ)\0A-g - greedy coding (default is optimal coding), not supported yet\0A-d - depacking instead of packing (default is packing)\0A\0A-zxh - use zx-specific header for hrum or hrust. DEFAULT is NO HEADER!\0A Not applicable for MegaLZ. If -zxh is specified, -16, NO -bend and\0A NO -mlz is forced.\0A\0A-8, -16 - bitstream is in bytes or words in packed file.\0A Default for MegaLZ is -8, for hrum and hrust is -16.\0A\0A-bend - if -16 specified, this makes words big-endian. Default is little-endian.\0A\0A-maxwinN - maximum lookback window. N is decimal number, which can only be\0A 256,512,1024,2048,4096,8192,16384,32768. Default is format-specific\0A maximum window: MegaLZ is 4352, hrum is 4096, hrust is 65536,\0A zx7 is 2176.\0A For given format, window can't be greater than default value\0A\0A-prebin <filename> - use specified file as prebinary for packing and depacking.\0A\0Ausage:\0Amhmt [parameter list] <input filename> [<output filename>]\0A\0Aif no output filename given, filename is appended with \22.mlz\22, \22.hrm\22, \22.hst\22 or \22.zx7\22\0Ain accordance with the format chosen; for depacking \22.dpk\22 is appended\0A====== mhmt help end ======\0A\00"
define void @show_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1303 x i8], [1303 x i8]* @str, i64 0, i64 0))
ret void
}