#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*/ DisplaySyntax();
int /*<<< orphan*/ exit_wrapper(int);
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ puts(char *);
void Input_failed(int errnum, char *argument) {
  (void)puts("\n");
  if (errnum == 0xFF)
    (void)puts("Error: Incorrect number of parameters");
  else if (errnum == 0xFE)
    (void)puts("Error: Cannot import and export the same file");
  else if (errnum == 0xFD)
    (void)puts("Error: Invalid numerical value");
  else if (errnum == 0xFC)
    (void)puts("Error: The optional nohyphens flag must be 1, 2 or 3");
  else if (errnum == 0xFB)
    (void)puts("Error: The \"nosrctag\" parameter can't be used for both "
               "wildcard and single ID3 frame omission");
  else if (errnum == 0xFA)
    (void)puts("Error: The \"nosrctag\" parameter can't be used as a wildcard "
               "multiple times");
  else if (errnum == 0xF9)
    (void)puts("Error: Track name expected");
  else if (errnum == 0xF8)
    (void)puts(
        "Error: The \"nofstyle\" parameter can only be used for MIDI export");
  else if (errnum == 0xF1)
    (void)puts("Error: Subparameters were expected instead of a hyphen");
  else if (errnum == 0xF0)
    (void)puts("Error: File name expected");
  else if (errnum == 0xEF)
    (void)puts("Error: Each parameter can only be defined once");
  else if (errnum == 0xEE)
    (void)puts("Error: Invalid character in filter string");
  else if (errnum == 0xED)
    (void)puts("Error: The \"startstamp\" and \"offset\" parameters cannot be "
               "used simultaneously");
  else if (errnum == 0xEC)
    (void)puts(
        "Error: The \"quick\" parameter can only be used for MIDI import");
  else if (errnum == 0xEB)
    (void)puts("Error: The \"bpm\" parameter can only be used for UltraStar or "
               "MIDI based export");
  else if (errnum == 0xEA)
    (void)puts(
        "Error: The \"brute\" parameter can only be used for UltraStar export");
  else if (errnum == 0xE0)
    (void)puts("Error: The \"marklines\" parameter can only be used for Script "
               "export");
  else if (errnum == 0xE9)
    (void)puts(
        "Error: Vocal rhythm instrument+difficulty identifier is expected");
  else if (errnum == 0xE8)
    (void)puts("Error: The \"nolyrics\" parameter can only be specified "
               "explicitly for MIDI/KAR import");
  else if (errnum == 0xE7)
    (void)puts("Error: The \"verbose\" and \"debug\" parameters may not be "
               "used simultaneously");
  else if (errnum == 0xE6)
    (void)puts("Error: The \"quick\" parameter is only valid for MIDI, KAR or "
               "Vrhythm import/export");
  else if (errnum == 0xE5)
    (void)puts("Error: The \"srcoffset\" parameter is only valid when a source "
               "MIDI is provided");
  else if (errnum == 0xE4)
    (void)puts("Error: The \"intrack\" parameter is only valid for MIDI or KAR "
               "import");
  else if (errnum == 0xE3)
    (void)puts("Error: The \"outtrack\" parameter is only valid for MIDI or "
               "KAR export");
  else if (errnum == 0xE2)
    (void)puts(
        "Error: The \"notenames\" parameter is only valid for Vrhythm export");
  else if (errnum == 0xE1)
    (void)puts(
        "Error: The \"relative\" parameter is only valid for UltraStar export");
  else if (errnum == 0xD0)
    (void)puts("Error: The \"outtrack\" parameter may not be used for Soft "
               "Karaoke export");
  else {
    printf("Parameter %d is incorrect\n", errnum);
    if (argument != NULL)
      printf("(%s)\n", argument);
    (void)puts("");
  }
  DisplaySyntax();
  (void)puts("\nUse foflc -help for detailed help");
  exit_wrapper(1);
}


x86 assembly (clang, -O0):
<Input_failed>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
lea    0x1559(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xff,-0x4(%rbp)
jne    1179 <Input_failed+0x39>
lea    0xe91(%rip),%rdi
call   1030 <puts@plt>
jmp    1541 <Input_failed+0x401>
cmpl   $0xfe,-0x4(%rbp)
jne    1197 <Input_failed+0x57>
lea    0xe99(%rip),%rdi
call   1030 <puts@plt>
jmp    153c <Input_failed+0x3fc>
cmpl   $0xfd,-0x4(%rbp)
jne    11b5 <Input_failed+0x75>
lea    0xea9(%rip),%rdi
call   1030 <puts@plt>
jmp    1537 <Input_failed+0x3f7>
cmpl   $0xfc,-0x4(%rbp)
jne    11d3 <Input_failed+0x93>
lea    0xeaa(%rip),%rdi
call   1030 <puts@plt>
jmp    1532 <Input_failed+0x3f2>
cmpl   $0xfb,-0x4(%rbp)
jne    11f1 <Input_failed+0xb1>
lea    0xec1(%rip),%rdi
call   1030 <puts@plt>
jmp    152d <Input_failed+0x3ed>
cmpl   $0xfa,-0x4(%rbp)
jne    120f <Input_failed+0xcf>
lea    0xf01(%rip),%rdi
call   1030 <puts@plt>
jmp    1528 <Input_failed+0x3e8>
cmpl   $0xf9,-0x4(%rbp)
jne    122d <Input_failed+0xed>
lea    0xf2e(%rip),%rdi
call   1030 <puts@plt>
jmp    1523 <Input_failed+0x3e3>
cmpl   $0xf8,-0x4(%rbp)
jne    124b <Input_failed+0x10b>
lea    0xf2b(%rip),%rdi
call   1030 <puts@plt>
jmp    151e <Input_failed+0x3de>
cmpl   $0xf1,-0x4(%rbp)
jne    1269 <Input_failed+0x129>
lea    0xf4e(%rip),%rdi
call   1030 <puts@plt>
jmp    1519 <Input_failed+0x3d9>
cmpl   $0xf0,-0x4(%rbp)
jne    1287 <Input_failed+0x147>
lea    0xf67(%rip),%rdi
call   1030 <puts@plt>
jmp    1514 <Input_failed+0x3d4>
cmpl   $0xef,-0x4(%rbp)
jne    12a5 <Input_failed+0x165>
lea    0xf63(%rip),%rdi
call   1030 <puts@plt>
jmp    150f <Input_failed+0x3cf>
cmpl   $0xee,-0x4(%rbp)
jne    12c3 <Input_failed+0x183>
lea    0xf74(%rip),%rdi
call   1030 <puts@plt>
jmp    150a <Input_failed+0x3ca>
cmpl   $0xed,-0x4(%rbp)
jne    12e1 <Input_failed+0x1a1>
lea    0xf80(%rip),%rdi
call   1030 <puts@plt>
jmp    1505 <Input_failed+0x3c5>
cmpl   $0xec,-0x4(%rbp)
jne    12ff <Input_failed+0x1bf>
lea    0xfb0(%rip),%rdi
call   1030 <puts@plt>
jmp    1500 <Input_failed+0x3c0>
cmpl   $0xeb,-0x4(%rbp)
jne    131d <Input_failed+0x1dd>
lea    0xfd0(%rip),%rdi
call   1030 <puts@plt>
jmp    14fb <Input_failed+0x3bb>
cmpl   $0xea,-0x4(%rbp)
jne    133b <Input_failed+0x1fb>
lea    0x1001(%rip),%rdi
call   1030 <puts@plt>
jmp    14f6 <Input_failed+0x3b6>
cmpl   $0xe0,-0x4(%rbp)
jne    1359 <Input_failed+0x219>
lea    0x1026(%rip),%rdi
call   1030 <puts@plt>
jmp    14f1 <Input_failed+0x3b1>
cmpl   $0xe9,-0x4(%rbp)
jne    1377 <Input_failed+0x237>
lea    0x104c(%rip),%rdi
call   1030 <puts@plt>
jmp    14ec <Input_failed+0x3ac>
cmpl   $0xe8,-0x4(%rbp)
jne    1395 <Input_failed+0x255>
lea    0x106f(%rip),%rdi
call   1030 <puts@plt>
jmp    14e7 <Input_failed+0x3a7>
cmpl   $0xe7,-0x4(%rbp)
jne    13b3 <Input_failed+0x273>
lea    0x10a6(%rip),%rdi
call   1030 <puts@plt>
jmp    14e2 <Input_failed+0x3a2>
cmpl   $0xe6,-0x4(%rbp)
jne    13d1 <Input_failed+0x291>
lea    0x10d3(%rip),%rdi
call   1030 <puts@plt>
jmp    14dd <Input_failed+0x39d>
cmpl   $0xe5,-0x4(%rbp)
jne    13ef <Input_failed+0x2af>
lea    0x1107(%rip),%rdi
call   1030 <puts@plt>
jmp    14d8 <Input_failed+0x398>
cmpl   $0xe4,-0x4(%rbp)
jne    140d <Input_failed+0x2cd>
lea    0x1137(%rip),%rdi
call   1030 <puts@plt>
jmp    14d3 <Input_failed+0x393>
cmpl   $0xe3,-0x4(%rbp)
jne    142b <Input_failed+0x2eb>
lea    0x115d(%rip),%rdi
call   1030 <puts@plt>
jmp    14ce <Input_failed+0x38e>
cmpl   $0xe2,-0x4(%rbp)
jne    1449 <Input_failed+0x309>
lea    0x1184(%rip),%rdi
call   1030 <puts@plt>
jmp    14c9 <Input_failed+0x389>
cmpl   $0xe1,-0x4(%rbp)
jne    1467 <Input_failed+0x327>
lea    0x11a8(%rip),%rdi
call   1030 <puts@plt>
jmp    14c4 <Input_failed+0x384>
cmpl   $0xd0,-0x4(%rbp)
jne    1485 <Input_failed+0x345>
lea    0x11cd(%rip),%rdi
call   1030 <puts@plt>
jmp    14bf <Input_failed+0x37f>
mov    -0x4(%rbp),%esi
lea    0x1201(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpq   $0x0,-0x10(%rbp)
je     14b3 <Input_failed+0x373>
mov    -0x10(%rbp),%rsi
lea    0x11ff(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x11f6(%rip),%rdi
call   1030 <puts@plt>
jmp    14c4 <Input_failed+0x384>
jmp    14c9 <Input_failed+0x389>
jmp    14ce <Input_failed+0x38e>
jmp    14d3 <Input_failed+0x393>
jmp    14d8 <Input_failed+0x398>
jmp    14dd <Input_failed+0x39d>
jmp    14e2 <Input_failed+0x3a2>
jmp    14e7 <Input_failed+0x3a7>
jmp    14ec <Input_failed+0x3ac>
jmp    14f1 <Input_failed+0x3b1>
jmp    14f6 <Input_failed+0x3b6>
jmp    14fb <Input_failed+0x3bb>
jmp    1500 <Input_failed+0x3c0>
jmp    1505 <Input_failed+0x3c5>
jmp    150a <Input_failed+0x3ca>
jmp    150f <Input_failed+0x3cf>
jmp    1514 <Input_failed+0x3d4>
jmp    1519 <Input_failed+0x3d9>
jmp    151e <Input_failed+0x3de>
jmp    1523 <Input_failed+0x3e3>
jmp    1528 <Input_failed+0x3e8>
jmp    152d <Input_failed+0x3ed>
jmp    1532 <Input_failed+0x3f2>
jmp    1537 <Input_failed+0x3f7>
jmp    153c <Input_failed+0x3fc>
jmp    1541 <Input_failed+0x401>
mov    $0x0,%al
call   1050 <DisplaySyntax@plt>
lea    0x1162(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%edi
call   1060 <exit_wrapper@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Input_failed>:
push   %r14
push   %rbx
push   %rax
mov    %rsi,%r14
mov    %edi,%ebx
lea    0x160f(%rip),%rdi
call   1040 <puts@plt>
lea    -0xd0(%rbx),%eax
cmp    $0x2f,%eax
ja     118c <Input_failed+0x3c>
lea    0xe89(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1581(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x15bd(%rip),%rdi
mov    %ebx,%esi
xor    %eax,%eax
call   1050 <printf@plt>
test   %r14,%r14
je     11b2 <Input_failed+0x62>
lea    0x15c3(%rip),%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
jmp    12cf <Input_failed+0x17f>
lea    0x126d(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x14f1(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x14a3(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1452(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1402(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x13a8(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x134a(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x12f3(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1292(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1245(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x11b2(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1157(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1110(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x10b9(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x1086(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x104e(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0x102b(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xfeb(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xfa1(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xf7d(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xf29(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xec2(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xe84(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xe5c(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xe25(%rip),%rdi
jmp    12ca <Input_failed+0x17a>
lea    0xdf6(%rip),%rdi
call   1040 <puts@plt>
xor    %eax,%eax
call   1060 <DisplaySyntax@plt>
lea    0x1494(%rip),%rdi
call   1040 <puts@plt>
mov    $0x1,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r14
jmp    1070 <exit_wrapper@plt>

LLVM IR (-O0):
@.str = [2 x i8] c"\0A\00"
@.str.1 = [38 x i8] c"Error: Incorrect number of parameters\00"
@.str.2 = [46 x i8] c"Error: Cannot import and export the same file\00"
@.str.3 = [31 x i8] c"Error: Invalid numerical value\00"
@.str.4 = [53 x i8] c"Error: The optional nohyphens flag must be 1, 2 or 3\00"
@.str.5 = [94 x i8] c"Error: The \22nosrctag\22 parameter can't be used for both wildcard and single ID3 frame omission\00"
@.str.6 = [75 x i8] c"Error: The \22nosrctag\22 parameter can't be used as a wildcard multiple times\00"
@.str.7 = [27 x i8] c"Error: Track name expected\00"
@.str.8 = [65 x i8] c"Error: The \22nofstyle\22 parameter can only be used for MIDI export\00"
@.str.9 = [55 x i8] c"Error: Subparameters were expected instead of a hyphen\00"
@.str.10 = [26 x i8] c"Error: File name expected\00"
@.str.11 = [47 x i8] c"Error: Each parameter can only be defined once\00"
@.str.12 = [42 x i8] c"Error: Invalid character in filter string\00"
@.str.13 = [78 x i8] c"Error: The \22startstamp\22 and \22offset\22 parameters cannot be used simultaneously\00"
@.str.14 = [62 x i8] c"Error: The \22quick\22 parameter can only be used for MIDI import\00"
@.str.15 = [79 x i8] c"Error: The \22bpm\22 parameter can only be used for UltraStar or MIDI based export\00"
@.str.16 = [67 x i8] c"Error: The \22brute\22 parameter can only be used for UltraStar export\00"
@.str.17 = [68 x i8] c"Error: The \22marklines\22 parameter can only be used for Script export\00"
@.str.18 = [65 x i8] c"Error: Vocal rhythm instrument+difficulty identifier is expected\00"
@.str.19 = [85 x i8] c"Error: The \22nolyrics\22 parameter can only be specified explicitly for MIDI/KAR import\00"
@.str.20 = [75 x i8] c"Error: The \22verbose\22 and \22debug\22 parameters may not be used simultaneously\00"
@.str.21 = [82 x i8] c"Error: The \22quick\22 parameter is only valid for MIDI, KAR or Vrhythm import/export\00"
@.str.22 = [78 x i8] c"Error: The \22srcoffset\22 parameter is only valid when a source MIDI is provided\00"
@.str.23 = [68 x i8] c"Error: The \22intrack\22 parameter is only valid for MIDI or KAR import\00"
@.str.24 = [69 x i8] c"Error: The \22outtrack\22 parameter is only valid for MIDI or KAR export\00"
@.str.25 = [66 x i8] c"Error: The \22notenames\22 parameter is only valid for Vrhythm export\00"
@.str.26 = [67 x i8] c"Error: The \22relative\22 parameter is only valid for UltraStar export\00"
@.str.27 = [72 x i8] c"Error: The \22outtrack\22 parameter may not be used for Soft Karaoke export\00"
@.str.28 = [27 x i8] c"Parameter %d is incorrect\0A\00"
@.str.29 = [6 x i8] c"(%s)\0A\00"
@.str.30 = [1 x i8] zeroinitializer
@.str.31 = [35 x i8] c"\0AUse foflc -help for detailed help\00"
define void @Input_failed(i32 %0, i8* %1) {
%3 = alloca i32
%4 = alloca i8*
store i32 %0, i32* %3
store i8* %1, i8** %4
%5 = call i32 @puts(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%6 = load i32, i32* %3
%7 = icmp eq i32 %6, 255
br i1 %7, label %8, label %10
8: ; preds = %2
%9 = call i32 @puts(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.1, i64 0, i64 0))
br label %176
10: ; preds = %2
%11 = load i32, i32* %3
%12 = icmp eq i32 %11, 254
br i1 %12, label %13, label %15
13: ; preds = %10
%14 = call i32 @puts(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.2, i64 0, i64 0))
br label %175
15: ; preds = %10
%16 = load i32, i32* %3
%17 = icmp eq i32 %16, 253
br i1 %17, label %18, label %20
18: ; preds = %15
%19 = call i32 @puts(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.3, i64 0, i64 0))
br label %174
20: ; preds = %15
%21 = load i32, i32* %3
%22 = icmp eq i32 %21, 252
br i1 %22, label %23, label %25
23: ; preds = %20
%24 = call i32 @puts(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.4, i64 0, i64 0))
br label %173
25: ; preds = %20
%26 = load i32, i32* %3
%27 = icmp eq i32 %26, 251
br i1 %27, label %28, label %30
28: ; preds = %25
%29 = call i32 @puts(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.5, i64 0, i64 0))
br label %172
30: ; preds = %25
%31 = load i32, i32* %3
%32 = icmp eq i32 %31, 250
br i1 %32, label %33, label %35
33: ; preds = %30
%34 = call i32 @puts(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.6, i64 0, i64 0))
br label %171
35: ; preds = %30
%36 = load i32, i32* %3
%37 = icmp eq i32 %36, 249
br i1 %37, label %38, label %40
38: ; preds = %35
%39 = call i32 @puts(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.7, i64 0, i64 0))
br label %170
40: ; preds = %35
%41 = load i32, i32* %3
%42 = icmp eq i32 %41, 248
br i1 %42, label %43, label %45
43: ; preds = %40
%44 = call i32 @puts(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.8, i64 0, i64 0))
br label %169
45: ; preds = %40
%46 = load i32, i32* %3
%47 = icmp eq i32 %46, 241
br i1 %47, label %48, label %50
48: ; preds = %45
%49 = call i32 @puts(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0))
br label %168
50: ; preds = %45
%51 = load i32, i32* %3
%52 = icmp eq i32 %51, 240
br i1 %52, label %53, label %55
53: ; preds = %50
%54 = call i32 @puts(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.10, i64 0, i64 0))
br label %167
55: ; preds = %50
%56 = load i32, i32* %3
%57 = icmp eq i32 %56, 239
br i1 %57, label %58, label %60
58: ; preds = %55
%59 = call i32 @puts(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.11, i64 0, i64 0))
br label %166
60: ; preds = %55
%61 = load i32, i32* %3
%62 = icmp eq i32 %61, 238
br i1 %62, label %63, label %65
63: ; preds = %60
%64 = call i32 @puts(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.12, i64 0, i64 0))
br label %165
65: ; preds = %60
%66 = load i32, i32* %3
%67 = icmp eq i32 %66, 237
br i1 %67, label %68, label %70
68: ; preds = %65
%69 = call i32 @puts(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.13, i64 0, i64 0))
br label %164
70: ; preds = %65
%71 = load i32, i32* %3
%72 = icmp eq i32 %71, 236
br i1 %72, label %73, label %75
73: ; preds = %70
%74 = call i32 @puts(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.14, i64 0, i64 0))
br label %163
75: ; preds = %70
%76 = load i32, i32* %3
%77 = icmp eq i32 %76, 235
br i1 %77, label %78, label %80
78: ; preds = %75
%79 = call i32 @puts(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.15, i64 0, i64 0))
br label %162
80: ; preds = %75
%81 = load i32, i32* %3
%82 = icmp eq i32 %81, 234
br i1 %82, label %83, label %85
83: ; preds = %80
%84 = call i32 @puts(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.16, i64 0, i64 0))
br label %161
85: ; preds = %80
%86 = load i32, i32* %3
%87 = icmp eq i32 %86, 224
br i1 %87, label %88, label %90
88: ; preds = %85
%89 = call i32 @puts(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.17, i64 0, i64 0))
br label %160
90: ; preds = %85
%91 = load i32, i32* %3
%92 = icmp eq i32 %91, 233
br i1 %92, label %93, label %95
93: ; preds = %90
%94 = call i32 @puts(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.18, i64 0, i64 0))
br label %159
95: ; preds = %90
%96 = load i32, i32* %3
%97 = icmp eq i32 %96, 232
br i1 %97, label %98, label %100
98: ; preds = %95
%99 = call i32 @puts(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.19, i64 0, i64 0))
br label %158
100: ; preds = %95
%101 = load i32, i32* %3
%102 = icmp eq i32 %101, 231
br i1 %102, label %103, label %105
103: ; preds = %100
%104 = call i32 @puts(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.20, i64 0, i64 0))
br label %157
105: ; preds = %100
%106 = load i32, i32* %3
%107 = icmp eq i32 %106, 230
br i1 %107, label %108, label %110
108: ; preds = %105
%109 = call i32 @puts(i8* getelementptr inbounds ([82 x i8], [82 x i8]* @.str.21, i64 0, i64 0))
br label %156
110: ; preds = %105
%111 = load i32, i32* %3
%112 = icmp eq i32 %111, 229
br i1 %112, label %113, label %115
113: ; preds = %110
%114 = call i32 @puts(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.22, i64 0, i64 0))
br label %155
115: ; preds = %110
%116 = load i32, i32* %3
%117 = icmp eq i32 %116, 228
br i1 %117, label %118, label %120
118: ; preds = %115
%119 = call i32 @puts(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.23, i64 0, i64 0))
br label %154
120: ; preds = %115
%121 = load i32, i32* %3
%122 = icmp eq i32 %121, 227
br i1 %122, label %123, label %125
123: ; preds = %120
%124 = call i32 @puts(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.24, i64 0, i64 0))
br label %153
125: ; preds = %120
%126 = load i32, i32* %3
%127 = icmp eq i32 %126, 226
br i1 %127, label %128, label %130
128: ; preds = %125
%129 = call i32 @puts(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.25, i64 0, i64 0))
br label %152
130: ; preds = %125
%131 = load i32, i32* %3
%132 = icmp eq i32 %131, 225
br i1 %132, label %133, label %135
133: ; preds = %130
%134 = call i32 @puts(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.26, i64 0, i64 0))
br label %151
135: ; preds = %130
%136 = load i32, i32* %3
%137 = icmp eq i32 %136, 208
br i1 %137, label %138, label %140
138: ; preds = %135
%139 = call i32 @puts(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.27, i64 0, i64 0))
br label %150
140: ; preds = %135
%141 = load i32, i32* %3
%142 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.28, i64 0, i64 0), i32 %141)
%143 = load i8*, i8** %4
%144 = icmp ne i8* %143, null
br i1 %144, label %145, label %148
145: ; preds = %140
%146 = load i8*, i8** %4
%147 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.29, i64 0, i64 0), i8* %146)
br label %148
148: ; preds = %145, %140
%149 = call i32 @puts(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.30, i64 0, i64 0))
br label %150
150: ; preds = %148, %138
br label %151
151: ; preds = %150, %133
br label %152
152: ; preds = %151, %128
br label %153
153: ; preds = %152, %123
br label %154
154: ; preds = %153, %118
br label %155
155: ; preds = %154, %113
br label %156
156: ; preds = %155, %108
br label %157
157: ; preds = %156, %103
br label %158
158: ; preds = %157, %98
br label %159
159: ; preds = %158, %93
br label %160
160: ; preds = %159, %88
br label %161
161: ; preds = %160, %83
br label %162
162: ; preds = %161, %78
br label %163
163: ; preds = %162, %73
br label %164
164: ; preds = %163, %68
br label %165
165: ; preds = %164, %63
br label %166
166: ; preds = %165, %58
br label %167
167: ; preds = %166, %53
br label %168
168: ; preds = %167, %48
br label %169
169: ; preds = %168, %43
br label %170
170: ; preds = %169, %38
br label %171
171: ; preds = %170, %33
br label %172
172: ; preds = %171, %28
br label %173
173: ; preds = %172, %23
br label %174
174: ; preds = %173, %18
br label %175
175: ; preds = %174, %13
br label %176
176: ; preds = %175, %8
%177 = call i32 (...) @DisplaySyntax()
%178 = call i32 @puts(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.31, i64 0, i64 0))
%179 = call i32 @exit_wrapper(i32 1)
ret void
}

LLVM IR (-O2):
@.str = [2 x i8] c"\0A\00"
@.str.1 = [38 x i8] c"Error: Incorrect number of parameters\00"
@.str.2 = [46 x i8] c"Error: Cannot import and export the same file\00"
@.str.3 = [31 x i8] c"Error: Invalid numerical value\00"
@.str.4 = [53 x i8] c"Error: The optional nohyphens flag must be 1, 2 or 3\00"
@.str.5 = [94 x i8] c"Error: The \22nosrctag\22 parameter can't be used for both wildcard and single ID3 frame omission\00"
@.str.6 = [75 x i8] c"Error: The \22nosrctag\22 parameter can't be used as a wildcard multiple times\00"
@.str.7 = [27 x i8] c"Error: Track name expected\00"
@.str.8 = [65 x i8] c"Error: The \22nofstyle\22 parameter can only be used for MIDI export\00"
@.str.9 = [55 x i8] c"Error: Subparameters were expected instead of a hyphen\00"
@.str.10 = [26 x i8] c"Error: File name expected\00"
@.str.11 = [47 x i8] c"Error: Each parameter can only be defined once\00"
@.str.12 = [42 x i8] c"Error: Invalid character in filter string\00"
@.str.13 = [78 x i8] c"Error: The \22startstamp\22 and \22offset\22 parameters cannot be used simultaneously\00"
@.str.14 = [62 x i8] c"Error: The \22quick\22 parameter can only be used for MIDI import\00"
@.str.15 = [79 x i8] c"Error: The \22bpm\22 parameter can only be used for UltraStar or MIDI based export\00"
@.str.16 = [67 x i8] c"Error: The \22brute\22 parameter can only be used for UltraStar export\00"
@.str.17 = [68 x i8] c"Error: The \22marklines\22 parameter can only be used for Script export\00"
@.str.18 = [65 x i8] c"Error: Vocal rhythm instrument+difficulty identifier is expected\00"
@.str.19 = [85 x i8] c"Error: The \22nolyrics\22 parameter can only be specified explicitly for MIDI/KAR import\00"
@.str.20 = [75 x i8] c"Error: The \22verbose\22 and \22debug\22 parameters may not be used simultaneously\00"
@.str.21 = [82 x i8] c"Error: The \22quick\22 parameter is only valid for MIDI, KAR or Vrhythm import/export\00"
@.str.22 = [78 x i8] c"Error: The \22srcoffset\22 parameter is only valid when a source MIDI is provided\00"
@.str.23 = [68 x i8] c"Error: The \22intrack\22 parameter is only valid for MIDI or KAR import\00"
@.str.24 = [69 x i8] c"Error: The \22outtrack\22 parameter is only valid for MIDI or KAR export\00"
@.str.25 = [66 x i8] c"Error: The \22notenames\22 parameter is only valid for Vrhythm export\00"
@.str.26 = [67 x i8] c"Error: The \22relative\22 parameter is only valid for UltraStar export\00"
@.str.27 = [72 x i8] c"Error: The \22outtrack\22 parameter may not be used for Soft Karaoke export\00"
@.str.28 = [27 x i8] c"Parameter %d is incorrect\0A\00"
@.str.29 = [6 x i8] c"(%s)\0A\00"
@.str.31 = [35 x i8] c"\0AUse foflc -help for detailed help\00"
define void @Input_failed(i32 %0, i8* %1) {
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
switch i32 %0, label %58 [
i32 255, label %4
i32 254, label %6
i32 253, label %8
i32 252, label %10
i32 251, label %12
i32 250, label %14
i32 249, label %16
i32 248, label %18
i32 241, label %20
i32 240, label %22
i32 239, label %24
i32 238, label %26
i32 237, label %28
i32 236, label %30
i32 235, label %32
i32 234, label %34
i32 224, label %36
i32 233, label %38
i32 232, label %40
i32 231, label %42
i32 230, label %44
i32 229, label %46
i32 228, label %48
i32 227, label %50
i32 226, label %52
i32 225, label %54
i32 208, label %56
]
4: ; preds = %2
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @.str.1, i64 0, i64 0))
br label %65
6: ; preds = %2
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.2, i64 0, i64 0))
br label %65
8: ; preds = %2
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @.str.3, i64 0, i64 0))
br label %65
10: ; preds = %2
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.4, i64 0, i64 0))
br label %65
12: ; preds = %2
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([94 x i8], [94 x i8]* @.str.5, i64 0, i64 0))
br label %65
14: ; preds = %2
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @.str.6, i64 0, i64 0))
br label %65
16: ; preds = %2
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.7, i64 0, i64 0))
br label %65
18: ; preds = %2
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @.str.8, i64 0, i64 0))
br label %65
20: ; preds = %2
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0))
br label %65
22: ; preds = %2
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.10, i64 0, i64 0))
br label %65
24: ; preds = %2
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.11, i64 0, i64 0))
br label %65
26: ; preds = %2
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.12, i64 0, i64 0))
br label %65
28: ; preds = %2
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @.str.13, i64 0, i64 0))
br label %65
30: ; preds = %2
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @.str.14, i64 0, i64 0))
br label %65
32: ; preds = %2
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @.str.15, i64 0, i64 0))
br label %65
34: ; preds = %2
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @.str.16, i64 0, i64 0))
br label %65
36: ; preds = %2
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @.str.17, i64 0, i64 0))
br label %65
38: ; preds = %2
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @.str.18, i64 0, i64 0))
br label %65
40: ; preds = %2
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([85 x i8], [85 x i8]* @.str.19, i64 0, i64 0))
br label %65
42: ; preds = %2
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @.str.20, i64 0, i64 0))
br label %65
44: ; preds = %2
%45 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([82 x i8], [82 x i8]* @.str.21, i64 0, i64 0))
br label %65
46: ; preds = %2
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @.str.22, i64 0, i64 0))
br label %65
48: ; preds = %2
%49 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @.str.23, i64 0, i64 0))
br label %65
50: ; preds = %2
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.24, i64 0, i64 0))
br label %65
52: ; preds = %2
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @.str.25, i64 0, i64 0))
br label %65
54: ; preds = %2
%55 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @.str.26, i64 0, i64 0))
br label %65
56: ; preds = %2
%57 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @.str.27, i64 0, i64 0))
br label %65
58: ; preds = %2
%59 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.28, i64 0, i64 0), i32 %0)
%60 = icmp eq i8* %1, null
br i1 %60, label %63, label %61
61: ; preds = %58
%62 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.29, i64 0, i64 0), i8* %1)
br label %63
63: ; preds = %61, %58
%64 = tail call i32 @putchar(i32 10)
br label %65
65: ; preds = %6, %10, %14, %18, %22, %26, %30, %34, %38, %42, %46, %50, %54, %63, %56, %52, %48, %44, %40, %36, %32, %28, %24, %20, %16, %12, %8, %4
%66 = tail call i32 (...) @DisplaySyntax()
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @.str.31, i64 0, i64 0))
%68 = tail call i32 @exit_wrapper(i32 1)
ret void
}