#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 *, char const *);
void version_show_info(const char program_name[]) {
  printf(
      "\n"
      "ToACME - converts other assemblers' source codes to ACME format.\n"
      "Release "
      "0.14"
      " ("
      "19 Feb"
      " "
      "2017"
      "), Copyright (C) 1999-"
      "2017"
      " Marco Baye.\n"
      "Platform independent version."
      "\n"
      "Thanks to Stefan Hübner for fixing the AssBlaster macro conversion "
      "code.\n"
      "Thanks to Andreas Paul for helping with the Giga-Assembler mode.\n"
      "Thanks to Arndt Dettke for helping with the Hypra-Assembler mode.\n"
      "Thanks to Hoogo for helping with the Professional Assembler mode.\n"
      "\n"
      "The newest version can be found at the ACME homepage:\n"
      "http://sourceforge.net/projects/acme-crossass/"
      "\n"
      "\n"
      "ToACME comes with ABSOLUTELY NO WARRANTY; for details read the help "
      "file.\n"
      "This is free software, and you are welcome to redistribute it under\n"
      "certain conditions; as outlined in the GNU General Public License.\n"
      "\n"
      "Syntax: %s  FORMAT_ID  INPUT_FILE  OUTPUT_FILE\n"
      "\n"
      "Format ID:  source file format             quality\n"
      "--------------------------------------------------\n"
      "object      object code files                 poor\n"
      "hypra       C64: Hypra-Assembler                ok\n"
      "giga        C64: Giga-Assembler                 ok\n"
      "vis         C64: VisAss                   untested\n"
      "ab3         C64: AssBlaster 3.0 to 3.2        good\n"
      "f8ab        C64: Flash8-AssBlaster              ok\n"
      "prof        C64: Professional Assembler       poor (work in progress)\n"
      "\n",
      program_name);
}


x86 assembly (clang, -O0):
<version_show_info>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xed9(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<version_show_info>:
mov    %rdi,%rsi
lea    0xee6(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [1272 x i8] c"\0AToACME - converts other assemblers' source codes to ACME format.\0ARelease 0.14 (19 Feb 2017), Copyright (C) 1999-2017 Marco Baye.\0APlatform independent version.\0AThanks to Stefan H\C3\BCbner for fixing the AssBlaster macro conversion code.\0AThanks to Andreas Paul for helping with the Giga-Assembler mode.\0AThanks to Arndt Dettke for helping with the Hypra-Assembler mode.\0AThanks to Hoogo for helping with the Professional Assembler mode.\0A\0AThe newest version can be found at the ACME homepage:\0Ahttp://sourceforge.net/projects/acme-crossass/\0A\0AToACME comes with ABSOLUTELY NO WARRANTY; for details read the help file.\0AThis is free software, and you are welcome to redistribute it under\0Acertain conditions; as outlined in the GNU General Public License.\0A\0ASyntax: %s FORMAT_ID INPUT_FILE OUTPUT_FILE\0A\0AFormat ID: source file format quality\0A--------------------------------------------------\0Aobject object code files poor\0Ahypra C64: Hypra-Assembler ok\0Agiga C64: Giga-Assembler ok\0Avis C64: VisAss untested\0Aab3 C64: AssBlaster 3.0 to 3.2 good\0Af8ab C64: Flash8-AssBlaster ok\0Aprof C64: Professional Assembler poor (work in progress)\0A\0A\00"
define void @version_show_info(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([1272 x i8], [1272 x i8]* @.str, i64 0, i64 0), i8* %3)
ret void
}

LLVM IR (-O2):
@.str = [1272 x i8] c"\0AToACME - converts other assemblers' source codes to ACME format.\0ARelease 0.14 (19 Feb 2017), Copyright (C) 1999-2017 Marco Baye.\0APlatform independent version.\0AThanks to Stefan H\C3\BCbner for fixing the AssBlaster macro conversion code.\0AThanks to Andreas Paul for helping with the Giga-Assembler mode.\0AThanks to Arndt Dettke for helping with the Hypra-Assembler mode.\0AThanks to Hoogo for helping with the Professional Assembler mode.\0A\0AThe newest version can be found at the ACME homepage:\0Ahttp://sourceforge.net/projects/acme-crossass/\0A\0AToACME comes with ABSOLUTELY NO WARRANTY; for details read the help file.\0AThis is free software, and you are welcome to redistribute it under\0Acertain conditions; as outlined in the GNU General Public License.\0A\0ASyntax: %s FORMAT_ID INPUT_FILE OUTPUT_FILE\0A\0AFormat ID: source file format quality\0A--------------------------------------------------\0Aobject object code files poor\0Ahypra C64: Hypra-Assembler ok\0Agiga C64: Giga-Assembler ok\0Avis C64: VisAss untested\0Aab3 C64: AssBlaster 3.0 to 3.2 good\0Af8ab C64: Flash8-AssBlaster ok\0Aprof C64: Professional Assembler poor (work in progress)\0A\0A\00"
define void @version_show_info(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([1272 x i8], [1272 x i8]* @.str, i64 0, i64 0), i8* %0)
ret void
}