// File: besm6[P]pascal-re/pascompl.cc
// Function: pasmitxt(long)
const char * pasmitxt(int64_t errNo)
{
    switch (errNo) {
    case errBooleanNeeded: return "Boolean required";
    case errIdentAlreadyDefined: return "Identifier already defined";
    case errNoIdent: return "Missing identifier";
    case errNotAType: return "Not a type";
    case errNoConstant: return "Missing constant";
    case errConstOfOtherTypeNeeded: return "Constant of other type required";
    case errTypeMustNotBeFile: return "Type must not be a file type";
    case errNotDefined: return "Unknown identifier";
    case errBadSymbol: return "Bad symbol";
    case errNeedOtherTypesOfOperands: return "Other types of operands required";
    case errNumberTooLarge: return "Number too large";
    case errNoCommaOrParenOrTooFewArgs: return "No comma or parenthesis, or too few args";
//    errWrongVarTypeBefore = 22,
    case errUsingVarAfterIndexingPackedArray: return "Using a variable after indexing packed array";
    case errNoSimpleVarForLoop: return "Undefined variable in FOR loop";
//    errTooManyArguments = 38,
//    errVarTooComplex = 48,
//    errFirstDigitInCharLiteralGreaterThan3 = 60;
    case 1: return "No comma nor semicolon";
    case 5: return "Simple type required";
    case 16: return "Label not defined in block";
    case 23: return "Type ID instead of a variable";
    case 29: return "Index out of bounds";
    case 33: return "Illegal types for assignment";
    case 37: return "Missing INPUT file in program header";
    case 44: return "Incorrect usage of a standard procedure or a function";
    case 49: return "Too many instructions in a block";
    case 50: return "Symbol table overflow";
    case 51: return "Long symbol overflow";
    case 52: return "EOF encountered";
    case 54: return "Error in pseudo-comment";
    case 55: return "More than 16 digits in a number";
    case 61: return "Empty string";
    case 62: return "Integer needed";
    case 63: return "Bad base type for set";
    case 68: return "Using a procedure in an expression";
    case 77: return "Missing OUTPUT file in program header";
    case 79: return "Unknown identifier in type definition";
    case 81: return "Procedure nesting is too deep";
    case 82: return "Previous declaration was not FORWARD";
    case 84: return "Error in declarations";
    case 85: return "Routines left undefined";
    case 86: return "Required token not found: ";
    case 88: return "Different types of case labels and expression";
    case 89: return "integer";
    case 95: return "LPAREN";
    case 96: return "LBRACK";
    case 100: return "RPAREN";
    case 101: return "RBRACK";
    case 102: return "COMMA";
    case 103: return "SEMICOLON";
    case 104: return "PERIOD";
    case 105: return "ARROW";
    case 106: return "COLON";
    case 107: return "ASSIGN";
    case 136: return "PROGRAM";
    }
    return "Dunno";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
subq $0x88, %rax
ja 0x7685
movq -0x18(%rbp), %rax
leaq 0x29d89(%rip), %rcx     # 0x310e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2aabf(%rip), %rax     # 0x31e26
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aac0(%rip), %rax     # 0x31e37
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aacb(%rip), %rax     # 0x31e52
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aace(%rip), %rax     # 0x31e65
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aac9(%rip), %rax     # 0x31e70
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aaca(%rip), %rax     # 0x31e81
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aada(%rip), %rax     # 0x31ea1
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aae7(%rip), %rax     # 0x31ebe
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aaea(%rip), %rax     # 0x31ed1
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aae5(%rip), %rax     # 0x31edc
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aaf6(%rip), %rax     # 0x31efd
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2aaf7(%rip), %rax     # 0x31f0e
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab10(%rip), %rax     # 0x31f37
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab2d(%rip), %rax     # 0x31f64
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab3c(%rip), %rax     # 0x31f83
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab43(%rip), %rax     # 0x31f9a
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab48(%rip), %rax     # 0x31faf
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab53(%rip), %rax     # 0x31fca
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab61(%rip), %rax     # 0x31fe8
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab65(%rip), %rax     # 0x31ffc
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab72(%rip), %rax     # 0x32019
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ab87(%rip), %rax     # 0x3203e
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abad(%rip), %rax     # 0x32074
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abbe(%rip), %rax     # 0x32095
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abc4(%rip), %rax     # 0x320ab
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abc9(%rip), %rax     # 0x320c0
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abc9(%rip), %rax     # 0x320d0
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abd1(%rip), %rax     # 0x320e8
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abe1(%rip), %rax     # 0x32108
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abde(%rip), %rax     # 0x32115
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abdd(%rip), %rax     # 0x32124
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abe3(%rip), %rax     # 0x3213a
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2abf6(%rip), %rax     # 0x3215d
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac0c(%rip), %rax     # 0x32183
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac22(%rip), %rax     # 0x321a9
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac30(%rip), %rax     # 0x321c7
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac45(%rip), %rax     # 0x321ec
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac4b(%rip), %rax     # 0x32202
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac53(%rip), %rax     # 0x3221a
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac5e(%rip), %rax     # 0x32235
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac7c(%rip), %rax     # 0x32263
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac74(%rip), %rax     # 0x3226b
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac6b(%rip), %rax     # 0x32272
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac62(%rip), %rax     # 0x32279
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac5c(%rip), %rax     # 0x32280
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac56(%rip), %rax     # 0x32287
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac4f(%rip), %rax     # 0x3228d
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac4c(%rip), %rax     # 0x32297
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac46(%rip), %rax     # 0x3229e
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac2c(%rip), %rax     # 0x32291
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac32(%rip), %rax     # 0x322a4
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac2c(%rip), %rax     # 0x322ab
movq %rax, -0x8(%rbp)
jmp 0x7690
leaq 0x2ac27(%rip), %rax     # 0x322b3
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)