#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*/ sprintf(char *, char *, int);
const char *ErrMsg(int nErrorCode) {
  const char *p;
  static char szErrMsg[64];
  switch (nErrorCode) {
  case 0:
    p = "";
    break;
  case ((-30000) - 0):
    p = "ARRAY OVERFLOW";
    break;
  case ((-30000) - 1):
    p = "LENGTH_MISMATCH";
    break;
  case ((-30000) - 2):
    p = "Out of RAM";
    break;
  case ((-30000) - 3):
    p = "RANKING_ERR";
    break;
  case ((-30000) - 4):
    p = "ISOCOUNT_ERR";
    break;
  case ((-30000) - 5):
    p = "TAUCOUNT_ERR";
    break;
  case ((-30000) - 6):
    p = "ISOTAUCOUNT_ERR";
    break;
  case ((-30000) - 7):
    p = "MAPCOUNT_ERR";
    break;
  case ((-30000) - 8):
    p = "Time limit exceeded";
    break;
  case ((-30000) - 9):
    p = "ISO_H_ERR";
    break;
  case ((-30000) - 10):
    p = "STEREOCOUNT_ERR";
    break;
  case ((-30000) - 11):
    p = "ATOMCOUNT_ERR";
    break;
  case ((-30000) - 12):
    p = "STEREOBOND_ERR";
    break;
  case ((-30000) - 13):
    p = "User requested termination";
    break;
  case ((-30000) - 14):
    p = "REMOVE_STEREO_ERR";
    break;
  case ((-30000) - 15):
    p = "CALC_STEREO_ERR";
    break;
  case ((-30000) - 17):
    p = "STEREO_CANON_ERR";
    break;
  case ((-30000) - 16):
    p = "CANON_ERR";
    break;
  case ((-30000) - 18):
    p = "Wrong or missing chemical formula";
    break;
  case ((-30000) - 19):
    p = "UNKNOWN_ERR";
    break;
  case (-9999 + 11):
    p = "Cannot process free radical center";
    break;
  case (-9999 + 13):
    p = "Cannot process aromatic bonds";
    break;
  default:
    if (nErrorCode > ((-30000) - 19)) {
      sprintf(szErrMsg, "No description(%d)", nErrorCode);
      p = szErrMsg;
    } else {
      sprintf(szErrMsg, "UNKNOWN_ERR(%d)", ((-30000) - 19) - nErrorCode);
      p = szErrMsg;
    }
    break;
  }
  return p;
}


x86 assembly (clang, -O0):
<ErrMsg>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x4(%rbp)
mov    -0x4(%rbp),%eax
mov    %eax,-0x14(%rbp)
sub    $0xffff8abd,%eax
je     1410 <ErrMsg+0x300>
jmp    1131 <ErrMsg+0x21>
mov    -0x14(%rbp),%eax
sub    $0xffff8abe,%eax
je     1400 <ErrMsg+0x2f0>
jmp    1144 <ErrMsg+0x34>
mov    -0x14(%rbp),%eax
sub    $0xffff8abf,%eax
je     13e0 <ErrMsg+0x2d0>
jmp    1157 <ErrMsg+0x47>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac0,%eax
je     13f0 <ErrMsg+0x2e0>
jmp    116a <ErrMsg+0x5a>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac1,%eax
je     13d0 <ErrMsg+0x2c0>
jmp    117d <ErrMsg+0x6d>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac2,%eax
je     13c0 <ErrMsg+0x2b0>
jmp    1190 <ErrMsg+0x80>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac3,%eax
je     13b0 <ErrMsg+0x2a0>
jmp    11a3 <ErrMsg+0x93>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac4,%eax
je     13a0 <ErrMsg+0x290>
jmp    11b6 <ErrMsg+0xa6>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac5,%eax
je     1390 <ErrMsg+0x280>
jmp    11c9 <ErrMsg+0xb9>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac6,%eax
je     1380 <ErrMsg+0x270>
jmp    11dc <ErrMsg+0xcc>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac7,%eax
je     1370 <ErrMsg+0x260>
jmp    11ef <ErrMsg+0xdf>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac8,%eax
je     1360 <ErrMsg+0x250>
jmp    1202 <ErrMsg+0xf2>
mov    -0x14(%rbp),%eax
sub    $0xffff8ac9,%eax
je     1350 <ErrMsg+0x240>
jmp    1215 <ErrMsg+0x105>
mov    -0x14(%rbp),%eax
sub    $0xffff8aca,%eax
je     1340 <ErrMsg+0x230>
jmp    1228 <ErrMsg+0x118>
mov    -0x14(%rbp),%eax
sub    $0xffff8acb,%eax
je     1330 <ErrMsg+0x220>
jmp    123b <ErrMsg+0x12b>
mov    -0x14(%rbp),%eax
sub    $0xffff8acc,%eax
je     1320 <ErrMsg+0x210>
jmp    124e <ErrMsg+0x13e>
mov    -0x14(%rbp),%eax
sub    $0xffff8acd,%eax
je     1310 <ErrMsg+0x200>
jmp    1261 <ErrMsg+0x151>
mov    -0x14(%rbp),%eax
sub    $0xffff8ace,%eax
je     1300 <ErrMsg+0x1f0>
jmp    1274 <ErrMsg+0x164>
mov    -0x14(%rbp),%eax
sub    $0xffff8acf,%eax
je     12f0 <ErrMsg+0x1e0>
jmp    1287 <ErrMsg+0x177>
mov    -0x14(%rbp),%eax
sub    $0xffff8ad0,%eax
je     12e0 <ErrMsg+0x1d0>
jmp    129a <ErrMsg+0x18a>
mov    -0x14(%rbp),%eax
sub    $0xffffd8fc,%eax
je     1420 <ErrMsg+0x310>
jmp    12ad <ErrMsg+0x19d>
mov    -0x14(%rbp),%eax
sub    $0xffffd8fe,%eax
je     1430 <ErrMsg+0x320>
jmp    12c0 <ErrMsg+0x1b0>
mov    -0x14(%rbp),%eax
test   %eax,%eax
jne    1440 <ErrMsg+0x330>
jmp    12d0 <ErrMsg+0x1c0>
lea    0xeb3(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd19(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd18(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd18(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd13(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd0f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd0f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcfc(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcfc(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf9(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcfd(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf7(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf7(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf5(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf4(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcff(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd01(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd01(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf8(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xcf2(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd04(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd00(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
lea    0xd13(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
cmpl   $0xffff8abd,-0x4(%rbp)
jle    1473 <ErrMsg+0x363>
mov    -0x4(%rbp),%edx
lea    0x2be9(%rip),%rdi
lea    0xd0a(%rip),%rsi
call   1030 <sprintf@plt>
lea    0x2bd6(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1499 <ErrMsg+0x389>
mov    $0xffff8abd,%edx
sub    -0x4(%rbp),%edx
lea    0x2bbe(%rip),%rdi
lea    0xcf2(%rip),%rsi
call   1030 <sprintf@plt>
lea    0x2bab(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    149e <ErrMsg+0x38e>
mov    -0x10(%rbp),%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ErrMsg>:
push   %rbx
mov    %edi,%eax
cmp    $0xffffd8fb,%edi
jg     1146 <ErrMsg+0x36>
lea    0x7543(%rax),%ecx
cmp    $0x13,%ecx
ja     1254 <ErrMsg+0x144>
lea    0xecf(%rip),%rax
movslq (%rax,%rcx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x102a(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
cmp    $0xffffd8fc,%eax
je     1242 <ErrMsg+0x132>
cmp    $0xffffd8fe,%eax
je     124b <ErrMsg+0x13b>
test   %eax,%eax
jne    1254 <ErrMsg+0x144>
lea    0x106f(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xfd2(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xfb5(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xfb0(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf8d(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf6f(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf48(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf2d(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf13(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xef7(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xee1(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xec1(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xea8(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe8c(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe83(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe6a(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe55(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe41(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe28(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xe10(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf2e(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
lea    0xf48(%rip),%rbx
jmp    128d <ErrMsg+0x17d>
cmp    $0xffff8abe,%eax
jl     1270 <ErrMsg+0x160>
lea    0x2dde(%rip),%rbx
lea    0xf4f(%rip),%rsi
mov    %rbx,%rdi
mov    %eax,%edx
jmp    1288 <ErrMsg+0x178>
mov    $0xffff8abd,%edx
sub    %eax,%edx
lea    0x2dc2(%rip),%rbx
lea    0xf46(%rip),%rsi
mov    %rbx,%rdi
call   1030 <sprintf@plt>
mov    %rbx,%rax
pop    %rbx
ret

LLVM IR (-O0):
@ErrMsg.szErrMsg = internal global [64 x i8] zeroinitializer
@.str = [1 x i8] zeroinitializer
@.str.1 = [15 x i8] c"ARRAY OVERFLOW\00"
@.str.2 = [16 x i8] c"LENGTH_MISMATCH\00"
@.str.3 = [11 x i8] c"Out of RAM\00"
@.str.4 = [12 x i8] c"RANKING_ERR\00"
@.str.5 = [13 x i8] c"ISOCOUNT_ERR\00"
@.str.6 = [13 x i8] c"TAUCOUNT_ERR\00"
@.str.7 = [16 x i8] c"ISOTAUCOUNT_ERR\00"
@.str.8 = [13 x i8] c"MAPCOUNT_ERR\00"
@.str.9 = [20 x i8] c"Time limit exceeded\00"
@.str.10 = [10 x i8] c"ISO_H_ERR\00"
@.str.11 = [16 x i8] c"STEREOCOUNT_ERR\00"
@.str.12 = [14 x i8] c"ATOMCOUNT_ERR\00"
@.str.13 = [15 x i8] c"STEREOBOND_ERR\00"
@.str.14 = [27 x i8] c"User requested termination\00"
@.str.15 = [18 x i8] c"REMOVE_STEREO_ERR\00"
@.str.16 = [16 x i8] c"CALC_STEREO_ERR\00"
@.str.17 = [17 x i8] c"STEREO_CANON_ERR\00"
@.str.18 = [10 x i8] c"CANON_ERR\00"
@.str.19 = [34 x i8] c"Wrong or missing chemical formula\00"
@.str.20 = [12 x i8] c"UNKNOWN_ERR\00"
@.str.21 = [35 x i8] c"Cannot process free radical center\00"
@.str.22 = [30 x i8] c"Cannot process aromatic bonds\00"
@.str.23 = [19 x i8] c"No description(%d)\00"
@.str.24 = [16 x i8] c"UNKNOWN_ERR(%d)\00"
define i8* @ErrMsg(i32 %0) {
%2 = alloca i32
%3 = alloca i8*
store i32 %0, i32* %2
%4 = load i32, i32* %2
switch i32 %4, label %28 [
i32 0, label %5
i32 -30000, label %6
i32 -30001, label %7
i32 -30002, label %8
i32 -30003, label %9
i32 -30004, label %10
i32 -30005, label %11
i32 -30006, label %12
i32 -30007, label %13
i32 -30008, label %14
i32 -30009, label %15
i32 -30010, label %16
i32 -30011, label %17
i32 -30012, label %18
i32 -30013, label %19
i32 -30014, label %20
i32 -30015, label %21
i32 -30017, label %22
i32 -30016, label %23
i32 -30018, label %24
i32 -30019, label %25
i32 -9988, label %26
i32 -9986, label %27
]
5: ; preds = %1
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), i8** %3
br label %39
6: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.1, i64 0, i64 0), i8** %3
br label %39
7: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i8** %3
br label %39
8: ; preds = %1
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i8** %3
br label %39
9: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), i8** %3
br label %39
10: ; preds = %1
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0), i8** %3
br label %39
11: ; preds = %1
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0), i8** %3
br label %39
12: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.7, i64 0, i64 0), i8** %3
br label %39
13: ; preds = %1
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.8, i64 0, i64 0), i8** %3
br label %39
14: ; preds = %1
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.9, i64 0, i64 0), i8** %3
br label %39
15: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8** %3
br label %39
16: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), i8** %3
br label %39
17: ; preds = %1
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.12, i64 0, i64 0), i8** %3
br label %39
18: ; preds = %1
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.13, i64 0, i64 0), i8** %3
br label %39
19: ; preds = %1
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0), i8** %3
br label %39
20: ; preds = %1
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), i8** %3
br label %39
21: ; preds = %1
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i64 0, i64 0), i8** %3
br label %39
22: ; preds = %1
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.17, i64 0, i64 0), i8** %3
br label %39
23: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.18, i64 0, i64 0), i8** %3
br label %39
24: ; preds = %1
store i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.19, i64 0, i64 0), i8** %3
br label %39
25: ; preds = %1
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.20, i64 0, i64 0), i8** %3
br label %39
26: ; preds = %1
store i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.21, i64 0, i64 0), i8** %3
br label %39
27: ; preds = %1
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.22, i64 0, i64 0), i8** %3
br label %39
28: ; preds = %1
%29 = load i32, i32* %2
%30 = icmp sgt i32 %29, -30019
br i1 %30, label %31, label %34
31: ; preds = %28
%32 = load i32, i32* %2
%33 = call i32 @sprintf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i64 0, i64 0), i32 %32)
store i8* getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), i8** %3
br label %38
34: ; preds = %28
%35 = load i32, i32* %2
%36 = sub nsw i32 -30019, %35
%37 = call i32 @sprintf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0), i32 %36)
store i8* getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), i8** %3
br label %38
38: ; preds = %34, %31
br label %39
39: ; preds = %38, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5
%40 = load i8*, i8** %3
ret i8* %40
}

LLVM IR (-O2):
@ErrMsg.szErrMsg = internal global [64 x i8] zeroinitializer
@.str = [1 x i8] zeroinitializer
@.str.1 = [15 x i8] c"ARRAY OVERFLOW\00"
@.str.2 = [16 x i8] c"LENGTH_MISMATCH\00"
@.str.3 = [11 x i8] c"Out of RAM\00"
@.str.4 = [12 x i8] c"RANKING_ERR\00"
@.str.5 = [13 x i8] c"ISOCOUNT_ERR\00"
@.str.6 = [13 x i8] c"TAUCOUNT_ERR\00"
@.str.7 = [16 x i8] c"ISOTAUCOUNT_ERR\00"
@.str.8 = [13 x i8] c"MAPCOUNT_ERR\00"
@.str.9 = [20 x i8] c"Time limit exceeded\00"
@.str.10 = [10 x i8] c"ISO_H_ERR\00"
@.str.11 = [16 x i8] c"STEREOCOUNT_ERR\00"
@.str.12 = [14 x i8] c"ATOMCOUNT_ERR\00"
@.str.13 = [15 x i8] c"STEREOBOND_ERR\00"
@.str.14 = [27 x i8] c"User requested termination\00"
@.str.15 = [18 x i8] c"REMOVE_STEREO_ERR\00"
@.str.16 = [16 x i8] c"CALC_STEREO_ERR\00"
@.str.17 = [17 x i8] c"STEREO_CANON_ERR\00"
@.str.18 = [10 x i8] c"CANON_ERR\00"
@.str.19 = [34 x i8] c"Wrong or missing chemical formula\00"
@.str.20 = [12 x i8] c"UNKNOWN_ERR\00"
@.str.21 = [35 x i8] c"Cannot process free radical center\00"
@.str.22 = [30 x i8] c"Cannot process aromatic bonds\00"
@.str.23 = [19 x i8] c"No description(%d)\00"
@.str.24 = [16 x i8] c"UNKNOWN_ERR(%d)\00"
define i8* @ErrMsg(i32 %0) {
switch i32 %0, label %24 [
i32 0, label %31
i32 -30000, label %2
i32 -30001, label %3
i32 -30002, label %4
i32 -30003, label %5
i32 -30004, label %6
i32 -30005, label %7
i32 -30006, label %8
i32 -30007, label %9
i32 -30008, label %10
i32 -30009, label %11
i32 -30010, label %12
i32 -30011, label %13
i32 -30012, label %14
i32 -30013, label %15
i32 -30014, label %16
i32 -30015, label %17
i32 -30017, label %18
i32 -30016, label %19
i32 -30018, label %20
i32 -30019, label %21
i32 -9988, label %22
i32 -9986, label %23
]
2: ; preds = %1
br label %31
3: ; preds = %1
br label %31
4: ; preds = %1
br label %31
5: ; preds = %1
br label %31
6: ; preds = %1
br label %31
7: ; preds = %1
br label %31
8: ; preds = %1
br label %31
9: ; preds = %1
br label %31
10: ; preds = %1
br label %31
11: ; preds = %1
br label %31
12: ; preds = %1
br label %31
13: ; preds = %1
br label %31
14: ; preds = %1
br label %31
15: ; preds = %1
br label %31
16: ; preds = %1
br label %31
17: ; preds = %1
br label %31
18: ; preds = %1
br label %31
19: ; preds = %1
br label %31
20: ; preds = %1
br label %31
21: ; preds = %1
br label %31
22: ; preds = %1
br label %31
23: ; preds = %1
br label %31
24: ; preds = %1
%25 = icmp sgt i32 %0, -30019
br i1 %25, label %26, label %28
26: ; preds = %24
%27 = tail call i32 @sprintf(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i64 0, i64 0), i32 %0)
br label %31
28: ; preds = %24
%29 = sub nuw nsw i32 -30019, %0
%30 = tail call i32 @sprintf(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0), i32 %29)
br label %31
31: ; preds = %1, %26, %28, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2
%32 = phi i8* [ getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), %26 ], [ getelementptr inbounds ([64 x i8], [64 x i8]* @ErrMsg.szErrMsg, i64 0, i64 0), %28 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.22, i64 0, i64 0), %23 ], [ getelementptr inbounds ([35 x i8], [35 x i8]* @.str.21, i64 0, i64 0), %22 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.20, i64 0, i64 0), %21 ], [ getelementptr inbounds ([34 x i8], [34 x i8]* @.str.19, i64 0, i64 0), %20 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.18, i64 0, i64 0), %19 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str.17, i64 0, i64 0), %18 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.16, i64 0, i64 0), %17 ], [ getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), %16 ], [ getelementptr inbounds ([27 x i8], [27 x i8]* @.str.14, i64 0, i64 0), %15 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.13, i64 0, i64 0), %14 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @.str.12, i64 0, i64 0), %13 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.11, i64 0, i64 0), %12 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), %11 ], [ getelementptr inbounds ([20 x i8], [20 x i8]* @.str.9, i64 0, i64 0), %10 ], [ getelementptr inbounds ([13 x i8], [13 x i8]* @.str.8, i64 0, i64 0), %9 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.7, i64 0, i64 0), %8 ], [ getelementptr inbounds ([13 x i8], [13 x i8]* @.str.6, i64 0, i64 0), %7 ], [ getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0), %6 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), %5 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), %4 ], [ getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), %3 ], [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.1, i64 0, i64 0), %2 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), %1 ]
ret i8* %32
}