FindQR

decompiled_code:
__int64 __fastcall FindQR()
{
__int64 v0; // rbx
unsigned __int8 v1; // bp
__int64 v2; // rsi
char v3; // dl
unsigned __int8 v4; // al
__int16 v5; // ax
__int64 result; // rax
__int16 v7; // dx
char *v8; // rcx
char *v9; // rax

v1 = *CBfPtr;
if ( *CBfPtr == 46 )
{
result = IncCBP();
if ( (_DWORD)result == -1 )
return result;
v4 = *CBfPtr;
v2 = (unsigned __int8)*CBfPtr;
v3 = *((_BYTE *)&ChrMsk + v2);
if ( v3 < 0 )
{
v5 = v4 - 55;
goto LABEL_11;
}
if ( (v3 & 0x40) != 0 )
{
v5 = v4 - 87;
goto LABEL_11;
}
}
else
{
v2 = v1;
v3 = *((_BYTE *)&ChrMsk + v1);
if ( v3 < 0 )
{
v5 = v1 - 55;
goto LABEL_24;
}
v4 = *CBfPtr;
if ( (v3 & 0x40) != 0 )
{
v5 = v1 - 87;
LABEL_24:
QR = (char *)&QRgstr + 24 * v5;
return 0LL;
}
}
if ( (v3 & 0x10) == 0 )
{
ErrChr(12LL, v2);
return 0xFFFFFFFFLL;
}
v5 = v4 - 48;
if ( v1 != 46 )
goto LABEL_24;
LABEL_11:
v7 = MStTop;
if ( MStTop < 0 )
{
QR = (char *)&QRgstr + 24 * (__int16)(v5 + 36);
result = 0LL;
}
else
{
if ( MStTop > 0 )
{
v8 = (char *)&MStack + 40 * MStTop;
while ( 1 )
{
v0 = *((_QWORD *)v8 + 4);
if ( v0 )
break;
v8 -= 40;
if ( !--v7 )
goto LABEL_16;
}
}
if ( v7 )
v9 = (char *)(v0 + 24LL * v5);
else
LABEL_16:
v9 = (char *)&QRgstr + 24 * (__int16)(v5 + 36);
QR = v9;
result = 0LL;
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func0()
{
__int64 v0; // rbx
unsigned __int8 v1; // bp
__int64 v2; // rsi
char v3; // dl
unsigned __int8 v4; // al
__int16 v5; // ax
__int64 result; // rax
__int16 v7; // dx
char *v8; // rcx
char *v9; // rax

v1 = *CBfPtr;
if ( *CBfPtr == 46 )
{
result = IncCBP();
if ( (_DWORD)result == -1 )
return result;
v4 = *CBfPtr;
v2 = (unsigned __int8)*CBfPtr;
v3 = *((_BYTE *)&ChrMsk + v2);
if ( v3 < 0 )
{
v5 = v4 - 55;
goto LABEL_11;
}
if ( (v3 & 0x40) != 0 )
{
v5 = v4 - 87;
goto LABEL_11;
}
}
else
{
v2 = v1;
v3 = *((_BYTE *)&ChrMsk + v1);
if ( v3 < 0 )
{
v5 = v1 - 55;
goto LABEL_24;
}
v4 = *CBfPtr;
if ( (v3 & 0x40) != 0 )
{
v5 = v1 - 87;
LABEL_24:
QR = (char *)&QRgstr + 24 * v5;
return 0LL;
}
}
if ( (v3 & 0x10) == 0 )
{
ErrChr(12LL, v2);
return 0xFFFFFFFFLL;
}
v5 = v4 - 48;
if ( v1 != 46 )
goto LABEL_24;
LABEL_11:
v7 = MStTop;
if ( MStTop < 0 )
{
QR = (char *)&QRgstr + 24 * (__int16)(v5 + 36);
result = 0LL;
}
else
{
if ( MStTop > 0 )
{
v8 = (char *)&MStack + 40 * MStTop;
while ( 1 )
{
v0 = *((_QWORD *)v8 + 4);
if ( v0 )
break;
v8 -= 40;
if ( !--v7 )
goto LABEL_16;
}
}
if ( v7 )
v9 = (char *)(v0 + 24LL * v5);
else
LABEL_16:
v9 = (char *)&QRgstr + 24 * (__int16)(v5 + 36);
QR = v9;
result = 0LL;
}
return result;
}

original_code:
DEFAULT FindQR()
{
    WORD i;
    BOOLEAN LocalQ;
    WORD QIndex;
    unsigned char QName;
    ;
    LocalQ = (*CBfPtr == '.');
    if (LocalQ) {
        if (IncCBP() == (-1)) {
     ;
     return (-1);
 }
    }
    QName = *CBfPtr;
    if ((ChrMsk[(QName)] & '\200')) {
        i = 'A' - 10;
    } else if ((ChrMsk[(QName)] & '\100')) {
 i = 'a' - 10;
    } else if ((ChrMsk[(QName)] & '\20')) {
 i = '0';
    } else {
        ErrChr(12, QName);
 ;
 return (-1);
    }
    QIndex = QName - i;
    if (LocalQ) {
        if (MStTop < 0) {
     QR = &QRgstr[QIndex+36];
 } else {
     WORD TMIndx;
     QRptr QRp;
     for (TMIndx=MStTop; TMIndx>0; TMIndx--) {
  if (MStack[TMIndx].QRgstr != (void *)0) {
      QRp = MStack[TMIndx].QRgstr;
      break;
  }
     }
     QR = (TMIndx != 0) ?
      &QRp[QIndex]:
      (QRptr) &QRgstr[QIndex+36];
 }
    } else {
        QR = &QRgstr[QIndex];
    }
    return 0;
}

canonical_original_code:
int FindQR()
{
    short i;
    int LocalQ;
    short QIndex;
    unsigned char QName;
    ;
    LocalQ = (*CBfPtr == '.');
    if (LocalQ) {
        if (IncCBP() == (-1)) {
     ;
     return (-1);
 }
    }
    QName = *CBfPtr;
    if ((ChrMsk[(QName)] & '\200')) {
        i = 'A' - 10;
    } else if ((ChrMsk[(QName)] & '\100')) {
 i = 'a' - 10;
    } else if ((ChrMsk[(QName)] & '\20')) {
 i = '0';
    } else {
        ErrChr(12, QName);
 ;
 return (-1);
    }
    QIndex = QName - i;
    if (LocalQ) {
        if (MStTop < 0) {
     QR = &QRgstr[QIndex+36];
 } else {
     short TMIndx;
     struct QReg *QRp;
     for (TMIndx=MStTop; TMIndx>0; TMIndx--) {
  if (MStack[TMIndx].QRgstr != (void *)0) {
      QRp = MStack[TMIndx].QRgstr;
      break;
  }
     }
     QR = (TMIndx != 0) ?
      &QRp[QIndex]:
      (QRptr) &QRgstr[QIndex+36];
 }
    } else {
        QR = &QRgstr[QIndex];
    }
    return 0;
}

variable_types: i short

variable_types: LocalQ int

variable_types: QIndex short

variable_types:
QName
unsigned char

variable_types: TMIndx short

variable_types: struct QReg { unsigned char *Start; unsigned char *End_P1; long Number; } *


GetAra

repo: rmblair/tecoc

decompiled_code:
__int64 GetAra()
{
__int64 v0; // rdx
__int64 result; // rax

if ( MArgmt < 0 )
{
ErrMsg(26LL);
result = 0xFFFFFFFFLL;
}
else
{
v0 = NArgmt;
if ( NArgmt < 0 )
goto LABEL_13;
if ( MArgmt > NArgmt )
{
NArgmt = MArgmt;
MArgmt = v0;
}
AraBeg = MArgmt + EBfBeg;
if ( MArgmt + EBfBeg > (unsigned __int64)(GapBeg - 1LL) )
AraBeg = MArgmt + EBfBeg + GapEnd - GapBeg + 1LL;
AraEnd = EBfBeg + NArgmt - 1LL;
if ( (unsigned __int64)(GapBeg - 1LL) < AraEnd )
AraEnd = EBfBeg + NArgmt + GapEnd - GapBeg;
if ( AraBeg > EBfEnd || EBfEnd < AraEnd )
{
LABEL_13:
ErrStr(34LL, &ErrTxt);
result = 0xFFFFFFFFLL;
}
else
{
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rdx
__int64 result; // rax

if ( MArgmt < 0 )
{
ErrMsg(26LL);
result = 0xFFFFFFFFLL;
}
else
{
v0 = NArgmt;
if ( NArgmt < 0 )
goto LABEL_13;
if ( MArgmt > NArgmt )
{
NArgmt = MArgmt;
MArgmt = v0;
}
AraBeg = MArgmt + EBfBeg;
if ( MArgmt + EBfBeg > (unsigned __int64)(GapBeg - 1LL) )
AraBeg = MArgmt + EBfBeg + GapEnd - GapBeg + 1LL;
AraEnd = EBfBeg + NArgmt - 1LL;
if ( (unsigned __int64)(GapBeg - 1LL) < AraEnd )
AraEnd = EBfBeg + NArgmt + GapEnd - GapBeg;
if ( AraBeg > EBfEnd || EBfEnd < AraEnd )
{
LABEL_13:
ErrStr(34LL, &ErrTxt);
result = 0xFFFFFFFFLL;
}
else
{
result = 0LL;
}
}
return result;
}

original_code:
DEFAULT GetAra()
{
 LONG TmpLng;
 if (MArgmt < 0) {
  ErrMsg(26);
  ;
  return (-1);
 }
 if (NArgmt < 0) {
  ErrStr(34, ErrTxt);
  ;
  return (-1);
 }
 if (MArgmt > NArgmt) {
  TmpLng = NArgmt;
  NArgmt = MArgmt;
  MArgmt = TmpLng;
 }
 AraBeg = EBfBeg + MArgmt;
 if (AraBeg > GapBeg-1) {
  AraBeg += (GapEnd-GapBeg) + 1;
 }
 AraEnd = (EBfBeg + NArgmt) - 1;
 if (AraEnd > GapBeg-1) {
  AraEnd += (GapEnd-GapBeg) + 1;
 }
 if ((AraBeg > EBfEnd) ||
     (AraEnd > EBfEnd)) {
  ErrStr(34, ErrTxt);
  ;
  return (-1);
 }
 return 0;
}

canonical_original_code:
int GetAra()
{
 long TmpLng;
 if (MArgmt < 0) {
  ErrMsg(26);
  ;
  return (-1);
 }
 if (NArgmt < 0) {
  ErrStr(34, ErrTxt);
  ;
  return (-1);
 }
 if (MArgmt > NArgmt) {
  TmpLng = NArgmt;
  NArgmt = MArgmt;
  MArgmt = TmpLng;
 }
 AraBeg = EBfBeg + MArgmt;
 if (AraBeg > GapBeg-1) {
  AraBeg += (GapEnd-GapBeg) + 1;
 }
 AraEnd = (EBfBeg + NArgmt) - 1;
 if (AraEnd > GapBeg-1) {
  AraEnd += (GapEnd-GapBeg) + 1;
 }
 if ((AraBeg > EBfEnd) ||
     (AraEnd > EBfEnd)) {
  ErrStr(34, ErrTxt);
  ;
  return (-1);
 }
 return 0;
}

variable_types: TmpLng long

return_type: int


ExeCtC

decompiled_code:
__int64 ExeCtC()
{
if ( CBfPtr < CStEnd && *(_BYTE *)(CBfPtr + 1LL) == 3 )
TAbort(0LL);
CmdMod = 0;
EStTop = EStBot;
return 0xFFFFFFFFLL;
}

canonical_decompiled_code:
__int64 func0()
{
if ( CBfPtr < CStEnd && *(_BYTE *)(CBfPtr + 1LL) == 3 )
TAbort(0LL);
CmdMod = 0;
EStTop = EStBot;
return 0xFFFFFFFFLL;
}

original_code:
DEFAULT ExeCtC()
{
 ;
 if ((CBfPtr < CStEnd) && (*(CBfPtr+1) == '\003')) {
  TAbort(0);
 }
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return (-1);
}

canonical_original_code:
int ExeCtC()
{
 ;
 if ((CBfPtr < CStEnd) && (*(CBfPtr+1) == '\003')) {
  TAbort(0);
 }
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return (-1);
}


ExeCtL

decompiled_code:
__int64 ExeCtL()
{
ZDspCh(12LL);
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
ZDspCh(12LL);
return 0LL;
}

original_code:
DEFAULT ExeCtL()
{
 ZDspCh('\014');
 return 0;
}

canonical_original_code:
int ExeCtL()
{
 ZDspCh('\014');
 return 0;
}


SinglP

decompiled_code:
__int64 SinglP()
{
__int64 result; // rax

result = WrPage(CurOut, EBfBeg, EBfEnd, FFPage);
if ( (_DWORD)result != -1 )
{
GapBeg = EBfBeg;
GapEnd = EBfEnd;
result = (unsigned int)-((unsigned int)RdPage() == -1);
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

result = WrPage(CurOut, EBfBeg, EBfEnd, FFPage);
if ( (_DWORD)result != -1 )
{
GapBeg = EBfBeg;
GapEnd = EBfEnd;
result = (unsigned int)-((unsigned int)RdPage() == -1);
}
return result;
}

original_code:
DEFAULT SinglP()
{
 ;
 if (WrPage(CurOut, EBfBeg, EBfEnd, FFPage) == (-1)) {
  ;
  return (-1);
 }
 GapBeg = EBfBeg;
 GapEnd = EBfEnd;
 if (RdPage() == (-1)) {
  ;
  return (-1);
 }
 ;
 return 0;
}

canonical_original_code:
int SinglP()
{
 ;
 if (WrPage(CurOut, EBfBeg, EBfEnd, FFPage) == (-1)) {
  ;
  return (-1);
 }
 GapBeg = EBfBeg;
 GapEnd = EBfEnd;
 if (RdPage() == (-1)) {
  ;
  return (-1);
 }
 ;
 return 0;
}


ExeEsc

decompiled_code:
__int64 ExeEsc()
{
if ( *(_BYTE *)(CBfPtr + 1LL) != 27 )
{
CmdMod = 0;
EStTop = EStBot;
return 0LL;
}
if ( !TraceM )
{
CBfPtr = CStEnd;
return 0LL;
}
ZDspCh(36LL);
CBfPtr = CStEnd;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
if ( *(_BYTE *)(CBfPtr + 1LL) != 27 )
{
CmdMod = 0;
EStTop = EStBot;
return 0LL;
}
if ( !TraceM )
{
CBfPtr = CStEnd;
return 0LL;
}
ZDspCh(36LL);
CBfPtr = CStEnd;
return 0LL;
}

original_code:
DEFAULT ExeEsc()
{
 ;
 if (*(CBfPtr+1) == '\033') {
  if (TraceM) {
   ZDspCh('$');
  }
  CBfPtr = CStEnd;
 } else {
  CmdMod = '\0';
  EStTop = EStBot;
 }
 ;
 return 0;
}

canonical_original_code:
int ExeEsc()
{
 ;
 if (*(CBfPtr+1) == '\033') {
  if (TraceM) {
   ZDspCh('$');
  }
  CBfPtr = CStEnd;
 } else {
  CmdMod = '\0';
  EStTop = EStBot;
 }
 ;
 return 0;
}


ExeX

decompiled_code:
__int64 ExeX()
{
__int64 result; // rax
_QWORD *v1; // rax
__int64 v2; // rax
__int64 v3; // rdi
__int64 v4; // rdi
int v5; // ebx

if ( EStTop == EStBot )
{
NArgmt = 1LL;
}
else
{
UMinus();
result = GetNmA();
if ( (_DWORD)result == -1 )
return result;
}
result = IncCBP();
if ( (_DWORD)result != -1 )
{
result = FindQR();
if ( (_DWORD)result != -1 )
{
if ( (CmdMod & 2) == 0 && *QR )
{
ZFree();
v1 = (_QWORD *)QR;
*(_QWORD *)(QR + 8LL) = 0LL;
*v1 = 0LL;
}
if ( (CmdMod & 8) != 0 )
{
if ( NArgmt == MArgmt )
{
LABEL_10:
CmdMod = 0;
return 0LL;
}
ZCpyBl(&ErrTxt, "m,nX", 5LL);
result = GetAra();
if ( (_DWORD)result != -1 )
{
if ( AraBeg >= GapBeg || AraEnd <= GapEnd )
{
v5 = AraEnd - AraBeg + 1;
if ( v5 <= 0 )
goto LABEL_10;
result = MakRom((unsigned int)v5);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), AraBeg, (unsigned int)v5);
*(_QWORD *)(QR + 8LL) += v5;
goto LABEL_10;
}
}
else
{
v3 = (unsigned int)(AraEnd - GapEnd + GapBeg - AraBeg);
if ( (int)v3 <= 0 )
goto LABEL_10;
result = MakRom(v3);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), AraBeg, GapBeg - AraBeg);
v4 = *(_QWORD *)(QR + 8LL) + GapBeg - AraBeg;
*(_QWORD *)(QR + 8LL) = v4;
ZCpyBl(v4, GapEnd + 1LL, AraEnd - GapEnd);
*(_QWORD *)(QR + 8LL) += AraEnd - GapEnd;
goto LABEL_10;
}
}
}
}
else
{
v2 = Ln2Chr(NArgmt);
NArgmt = v2;
if ( v2 > 0 )
{
result = MakRom((unsigned int)v2);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), GapEnd + 1LL, NArgmt);
*(_QWORD *)(QR + 8LL) += NArgmt;
goto LABEL_10;
}
}
else
{
if ( v2 >= 0 )
goto LABEL_10;
result = MakRom((unsigned int)-(int)v2);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), GapBeg + NArgmt, (unsigned int)-NArgmt);
*(_QWORD *)(QR + 8LL) -= NArgmt;
goto LABEL_10;
}
}
}
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax
_QWORD *v1; // rax
__int64 v2; // rax
__int64 v3; // rdi
__int64 v4; // rdi
int v5; // ebx

if ( EStTop == EStBot )
{
NArgmt = 1LL;
}
else
{
UMinus();
result = GetNmA();
if ( (_DWORD)result == -1 )
return result;
}
result = IncCBP();
if ( (_DWORD)result != -1 )
{
result = FindQR();
if ( (_DWORD)result != -1 )
{
if ( (CmdMod & 2) == 0 && *QR )
{
ZFree();
v1 = (_QWORD *)QR;
*(_QWORD *)(QR + 8LL) = 0LL;
*v1 = 0LL;
}
if ( (CmdMod & 8) != 0 )
{
if ( NArgmt == MArgmt )
{
LABEL_10:
CmdMod = 0;
return 0LL;
}
ZCpyBl(&ErrTxt, "m,nX", 5LL);
result = GetAra();
if ( (_DWORD)result != -1 )
{
if ( AraBeg >= GapBeg || AraEnd <= GapEnd )
{
v5 = AraEnd - AraBeg + 1;
if ( v5 <= 0 )
goto LABEL_10;
result = MakRom((unsigned int)v5);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), AraBeg, (unsigned int)v5);
*(_QWORD *)(QR + 8LL) += v5;
goto LABEL_10;
}
}
else
{
v3 = (unsigned int)(AraEnd - GapEnd + GapBeg - AraBeg);
if ( (int)v3 <= 0 )
goto LABEL_10;
result = MakRom(v3);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), AraBeg, GapBeg - AraBeg);
v4 = *(_QWORD *)(QR + 8LL) + GapBeg - AraBeg;
*(_QWORD *)(QR + 8LL) = v4;
ZCpyBl(v4, GapEnd + 1LL, AraEnd - GapEnd);
*(_QWORD *)(QR + 8LL) += AraEnd - GapEnd;
goto LABEL_10;
}
}
}
}
else
{
v2 = Ln2Chr(NArgmt);
NArgmt = v2;
if ( v2 > 0 )
{
result = MakRom((unsigned int)v2);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), GapEnd + 1LL, NArgmt);
*(_QWORD *)(QR + 8LL) += NArgmt;
goto LABEL_10;
}
}
else
{
if ( v2 >= 0 )
goto LABEL_10;
result = MakRom((unsigned int)-(int)v2);
if ( (_DWORD)result != -1 )
{
ZCpyBl(*(_QWORD *)(QR + 8LL), GapBeg + NArgmt, (unsigned int)-NArgmt);
*(_QWORD *)(QR + 8LL) -= NArgmt;
goto LABEL_10;
}
}
}
}
}
return result;
}

original_code:
DEFAULT ExeX()
{
 int TmpSiz;
 ;
 if (EStTop == EStBot) {
  NArgmt = 1;
 } else {
  UMinus();
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
 }
 if (IncCBP() == (-1)) {
  ;
  return (-1);
 }
 if (FindQR() == (-1)) {
  ;
  return (-1);
 }
 if (!(CmdMod & '\2')) {
  if (QR->Start != (void *)0) {
   ZFree((voidptr)QR->Start);
   QR->Start = QR->End_P1 = (void *)0;
  }
 }
 if ((CmdMod & '\10') == '\0') {
  NArgmt = Ln2Chr(NArgmt);
  if (NArgmt > 0) {
   if (MakRom((SIZE_T)NArgmt) == (-1)) {
    ;
    return (-1);
   }
   ZCpyBl((QR->End_P1),(GapEnd+1),((SIZE_T)NArgmt));
   QR->End_P1 += NArgmt;
  } else if (NArgmt < 0) {
   if (MakRom((SIZE_T)-NArgmt) == (-1)) {
    ;
    return (-1);
   }
   ZCpyBl((QR->End_P1),(GapBeg+NArgmt),((SIZE_T)-NArgmt));
   QR->End_P1 -= NArgmt;
  }
 } else if (NArgmt != MArgmt) {
  ZCpyBl((ErrTxt),("m,nX"),(5));
  if (GetAra() == (-1)) {
   ;
   return (-1);
  }
  if ((AraBeg < GapBeg) && (AraEnd > GapEnd)) {
   TmpSiz = (GapBeg-AraBeg) + (AraEnd-GapEnd);
   if (TmpSiz > 0) {
    if (MakRom((SIZE_T)TmpSiz) == (-1)) {
     ;
     return (-1);
    }
    ZCpyBl((QR->End_P1),(AraBeg),((SIZE_T)(GapBeg - AraBeg)));
    QR->End_P1 += GapBeg-AraBeg;
    ZCpyBl((QR->End_P1),(GapEnd+1),((SIZE_T)(AraEnd - GapEnd)));
    QR->End_P1 += AraEnd-GapEnd;
   }
  } else {
   TmpSiz = (AraEnd - AraBeg) + 1;
   if (TmpSiz > 0) {
    if (MakRom((SIZE_T)TmpSiz) == (-1)) {
     ;
     return (-1);
    }
    ZCpyBl((QR->End_P1),(AraBeg),((SIZE_T)TmpSiz));
    QR->End_P1 += TmpSiz;
   }
  }
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeX()
{
 int TmpSiz;
 ;
 if (EStTop == EStBot) {
  NArgmt = 1;
 } else {
  UMinus();
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
 }
 if (IncCBP() == (-1)) {
  ;
  return (-1);
 }
 if (FindQR() == (-1)) {
  ;
  return (-1);
 }
 if (!(CmdMod & '\2')) {
  if (QR->Start != (void *)0) {
   ZFree((unsigned char *)QR->Start);
   QR->Start = QR->End_P1 = (void *)0;
  }
 }
 if ((CmdMod & '\10') == '\0') {
  NArgmt = Ln2Chr(NArgmt);
  if (NArgmt > 0) {
   if (MakRom((unsigned int)NArgmt) == (-1)) {
    ;
    return (-1);
   }
   ZCpyBl((QR->End_P1),(GapEnd+1),((unsigned int)NArgmt));
   QR->End_P1 += NArgmt;
  } else if (NArgmt < 0) {
   if (MakRom((SIZE_T)-NArgmt) == (-1)) {
    ;
    return (-1);
   }
   ZCpyBl((QR->End_P1),(GapBeg+NArgmt),((SIZE_T)-NArgmt));
   QR->End_P1 -= NArgmt;
  }
 } else if (NArgmt != MArgmt) {
  ZCpyBl((ErrTxt),("m,nX"),(5));
  if (GetAra() == (-1)) {
   ;
   return (-1);
  }
  if ((AraBeg < GapBeg) && (AraEnd > GapEnd)) {
   TmpSiz = (GapBeg-AraBeg) + (AraEnd-GapEnd);
   if (TmpSiz > 0) {
    if (MakRom((unsigned int)TmpSiz) == (-1)) {
     ;
     return (-1);
    }
    ZCpyBl((QR->End_P1),(AraBeg),((SIZE_T)(GapBeg - AraBeg)));
    QR->End_P1 += GapBeg-AraBeg;
    ZCpyBl((QR->End_P1),(GapEnd+1),((SIZE_T)(AraEnd - GapEnd)));
    QR->End_P1 += AraEnd-GapEnd;
   }
  } else {
   TmpSiz = (AraEnd - AraBeg) + 1;
   if (TmpSiz > 0) {
    if (MakRom((unsigned int)TmpSiz) == (-1)) {
     ;
     return (-1);
    }
    ZCpyBl((QR->End_P1),(AraBeg),((unsigned int)TmpSiz));
    QR->End_P1 += TmpSiz;
   }
  }
 }
 CmdMod = '\0';
 ;
 return 0;
}

variable_types: TmpSiz int


ExeA

decompiled_code:
__int64 ExeA()
{
unsigned int v0; // ebx
__int64 v2; // rax
unsigned __int8 *v3; // rax
unsigned __int8 v4; // di
int v5[3]; // [rsp+Ch] [rbp-Ch] BYREF

v0 = CmdMod & 2;
CmdMod &= 0xFDu;
if ( EStTop > EStBot )
{
UMinus();
if ( (unsigned int)GetNmA() == -1 )
return (unsigned int)-1;
if ( !v0 )
{
if ( NArgmt < 0 )
{
if ( GapBeg + NArgmt < EBfBeg )
return (unsigned int)PushEx(-1LL, 0LL);
v4 = *(_BYTE *)(GapBeg + NArgmt);
}
else
{
v3 = (unsigned __int8 *)(GapEnd + NArgmt + 1LL);
if ( (unsigned __int64)v3 > EBfEnd )
return (unsigned int)PushEx(-1LL, 0LL);
v4 = *v3;
}
return (unsigned int)PushEx(v4, 0LL);
}
if ( NArgmt <= 0 )
{
ErrMsg(10LL);
v0 = -1;
}
else
{
--NArgmt;
while ( 1 )
{
v5[0] = 0;
v0 = RdLine(v5);
if ( v0 == -1 )
break;
if ( v5[0] )
return (unsigned int)PushEx(-1LL, 0LL);
if ( *((_DWORD *)&IsEofI + CurInp) )
return (unsigned int)PushEx(0LL, 0LL);
v2 = NArgmt--;
if ( v2 <= 0 )
return (unsigned int)PushEx(-1LL, 0LL);
}
}
}
else
{
if ( *((_DWORD *)&IsEofI + CurInp) )
{
if ( v0 )
v0 = PushEx(0LL, 0LL);
return v0;
}
if ( (unsigned int)RdPage() == -1 )
return (unsigned int)-1;
if ( v0 )
return (unsigned int)PushEx(-1LL, 0LL);
}
return v0;
}

canonical_decompiled_code:
__int64 func0()
{
unsigned int v0; // ebx
__int64 v2; // rax
unsigned __int8 *v3; // rax
unsigned __int8 v4; // di
int v5[3]; // [rsp+Ch] [rbp-Ch] BYREF

v0 = CmdMod & 2;
CmdMod &= 0xFDu;
if ( EStTop > EStBot )
{
UMinus();
if ( (unsigned int)GetNmA() == -1 )
return (unsigned int)-1;
if ( !v0 )
{
if ( NArgmt < 0 )
{
if ( GapBeg + NArgmt < EBfBeg )
return (unsigned int)PushEx(-1LL, 0LL);
v4 = *(_BYTE *)(GapBeg + NArgmt);
}
else
{
v3 = (unsigned __int8 *)(GapEnd + NArgmt + 1LL);
if ( (unsigned __int64)v3 > EBfEnd )
return (unsigned int)PushEx(-1LL, 0LL);
v4 = *v3;
}
return (unsigned int)PushEx(v4, 0LL);
}
if ( NArgmt <= 0 )
{
ErrMsg(10LL);
v0 = -1;
}
else
{
--NArgmt;
while ( 1 )
{
v5[0] = 0;
v0 = RdLine(v5);
if ( v0 == -1 )
break;
if ( v5[0] )
return (unsigned int)PushEx(-1LL, 0LL);
if ( *((_DWORD *)&IsEofI + CurInp) )
return (unsigned int)PushEx(0LL, 0LL);
v2 = NArgmt--;
if ( v2 <= 0 )
return (unsigned int)PushEx(-1LL, 0LL);
}
}
}
else
{
if ( *((_DWORD *)&IsEofI + CurInp) )
{
if ( v0 )
v0 = PushEx(0LL, 0LL);
return v0;
}
if ( (unsigned int)RdPage() == -1 )
return (unsigned int)-1;
if ( v0 )
return (unsigned int)PushEx(-1LL, 0LL);
}
return v0;
}

original_code:
DEFAULT ExeA()
{
    BOOLEAN EBfFul;
    unsigned char TmpChr;
    BOOLEAN ColonMod;
    ;
    ColonMod = (CmdMod & '\2');
    CmdMod &= ~'\2';
    if (EStTop > EStBot) {
        UMinus();
 if (GetNmA() == (-1)) {
     ;
     return (-1);
 }
 if (ColonMod) {
     if (NArgmt < 1) {
         ErrMsg(10);
  ;
  return (-1);
     }
     while (NArgmt-- > 0) {
         EBfFul = 0;
  if (RdLine(&EBfFul) == (-1)) {
      ;
      return (-1);
  }
  if (EBfFul) {
      break;
  }
  if (IsEofI[CurInp]) {
      ;
      return PushEx(0L, 0);
  }
     }
     ;
     return PushEx(-1L, 0);
 }
 if (NArgmt < 0) {
     if ((GapBeg+NArgmt) < EBfBeg) {
         ;
  return PushEx(-1L, 0);
     }
     TmpChr = *(GapBeg+NArgmt);
 } else {
     if ((GapEnd+NArgmt+1) > EBfEnd) {
         ;
  return PushEx(-1L, 0);
     }
     TmpChr = *(GapEnd+NArgmt+1);
 }
 return PushEx((LONG)TmpChr, 0);
    }
    if (IsEofI[CurInp]) {
        ;
 return ((ColonMod) ? PushEx(0L,0) : 0);
    }
    if (RdPage() == (-1)) {
        ;
 return (-1);
    }
    ;
    return (ColonMod) ? PushEx(-1L, 0) : 0;
}

canonical_original_code:
int ExeA()
{
    int EBfFul;
    unsigned char TmpChr;
    int ColonMod;
    ;
    ColonMod = (CmdMod & '\2');
    CmdMod &= ~'\2';
    if (EStTop > EStBot) {
        UMinus();
 if (GetNmA() == (-1)) {
     ;
     return (-1);
 }
 if (ColonMod) {
     if (NArgmt < 1) {
         ErrMsg(10);
  ;
  return (-1);
     }
     while (NArgmt-- > 0) {
         EBfFul = 0;
  if (RdLine(&EBfFul) == (-1)) {
      ;
      return (-1);
  }
  if (EBfFul) {
      break;
  }
  if (IsEofI[CurInp]) {
      ;
      return PushEx(0L, 0);
  }
     }
     ;
     return PushEx(-1L, 0);
 }
 if (NArgmt < 0) {
     if ((GapBeg+NArgmt) < EBfBeg) {
         ;
  return PushEx(-1L, 0);
     }
     TmpChr = *(GapBeg+NArgmt);
 } else {
     if ((GapEnd+NArgmt+1) > EBfEnd) {
         ;
  return PushEx(-1L, 0);
     }
     TmpChr = *(GapEnd+NArgmt+1);
 }
 return PushEx((long)TmpChr, 0);
    }
    if (IsEofI[CurInp]) {
        ;
 return ((ColonMod) ? PushEx(0L,0) : 0);
    }
    if (RdPage() == (-1)) {
        ;
 return (-1);
    }
    ;
    return (ColonMod) ? PushEx(-1L, 0) : 0;
}

variable_types: EBfFul int

variable_types:
TmpChr
unsigned char

variable_types: ColonMod int


ExeDQu

decompiled_code:
__int64 ExeDQu()
{
__int64 result; // rax
int v1; // eax
__int64 v2; // rcx

if ( EStTop == EStBot )
{
ErrMsg(23LL);
result = 0xFFFFFFFFLL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
result = IncCBP();
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
v1 = (unsigned __int8)*CBfPtr;
if ( (*((_BYTE *)&ChrMsk + (unsigned __int8)*CBfPtr) & 0x40) != 0 )
v1 -= 32;
switch ( v1 )
{
case '<':
case 'L':
case 'S':
case 'T':
result = 0LL;
if ( NArgmt >= 0 )
goto LABEL_21;
break;
case '=':
case 'E':
case 'F':
case 'U':
result = 0LL;
if ( NArgmt )
goto LABEL_21;
break;
case '>':
case 'G':
result = 0LL;
if ( NArgmt <= 0 )
goto LABEL_21;
break;
case 'A':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0xC0) == 0 )
goto LABEL_21;
break;
case 'C':
result = *((_BYTE *)&ChrMsk + NArgmt) & 0xD0;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0xD0) != 0 )
{
result = 0LL;
}
else
{
if ( (unsigned __int8)(NArgmt - 36) > 0x3Bu )
goto LABEL_21;
v2 = 0x800000000000401LL;
if ( !_bittest64(&v2, (unsigned int)(NArgmt - 36)) )
goto LABEL_21;
}
break;
case 'D':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0x10) == 0 )
goto LABEL_21;
break;
case 'N':
result = 0LL;
if ( !NArgmt )
goto LABEL_21;
break;
case 'R':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0xD0) == 0 )
goto LABEL_21;
break;
case 'V':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0x40) == 0 )
goto LABEL_21;
break;
case 'W':
result = 0LL;
if ( *((char *)&ChrMsk + NArgmt) >= 0 )
{
LABEL_21:
result = FlowEE();
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
result = 0LL;
}
}
break;
default:
ErrMsg(11LL);
result = 0xFFFFFFFFLL;
break;
}
}
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax
int v1; // eax
__int64 v2; // rcx

if ( EStTop == EStBot )
{
ErrMsg(23LL);
result = 0xFFFFFFFFLL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
result = IncCBP();
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
v1 = (unsigned __int8)*CBfPtr;
if ( (*((_BYTE *)&ChrMsk + (unsigned __int8)*CBfPtr) & 0x40) != 0 )
v1 -= 32;
switch ( v1 )
{
case '<':
case 'L':
case 'S':
case 'T':
result = 0LL;
if ( NArgmt >= 0 )
goto LABEL_21;
break;
case '=':
case 'E':
case 'F':
case 'U':
result = 0LL;
if ( NArgmt )
goto LABEL_21;
break;
case '>':
case 'G':
result = 0LL;
if ( NArgmt <= 0 )
goto LABEL_21;
break;
case 'A':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0xC0) == 0 )
goto LABEL_21;
break;
case 'C':
result = *((_BYTE *)&ChrMsk + NArgmt) & 0xD0;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0xD0) != 0 )
{
result = 0LL;
}
else
{
if ( (unsigned __int8)(NArgmt - 36) > 0x3Bu )
goto LABEL_21;
v2 = 0x800000000000401LL;
if ( !_bittest64(&v2, (unsigned int)(NArgmt - 36)) )
goto LABEL_21;
}
break;
case 'D':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0x10) == 0 )
goto LABEL_21;
break;
case 'N':
result = 0LL;
if ( !NArgmt )
goto LABEL_21;
break;
case 'R':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0xD0) == 0 )
goto LABEL_21;
break;
case 'V':
result = 0LL;
if ( (*((_BYTE *)&ChrMsk + NArgmt) & 0x40) == 0 )
goto LABEL_21;
break;
case 'W':
result = 0LL;
if ( *((char *)&ChrMsk + NArgmt) >= 0 )
{
LABEL_21:
result = FlowEE();
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
result = 0LL;
}
}
break;
default:
ErrMsg(11LL);
result = 0xFFFFFFFFLL;
break;
}
}
}
}
return result;
}

original_code:
DEFAULT ExeDQu()
{
 unsigned char RelExp;
 ;
 if (EStTop == EStBot) {
  ErrMsg(23);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 if (IncCBP() == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 RelExp = (unsigned char)NArgmt;
 switch (((ChrMsk[(*CBfPtr)] & '\100') ? (*CBfPtr)-' ' : (*CBfPtr) )) {
 case 'A':
  if ((ChrMsk[(RelExp)] & ('\200' | '\100'))) {
   ;
   return 0;
  }
  break;
 case 'C':
  if (((ChrMsk[(RelExp)] & ('\200' | '\100' | '\20')) || RelExp == '.' || RelExp == '_' || RelExp == '$')) {
   ;
   return 0;
  }
  break;
 case 'D':
  if ((ChrMsk[(RelExp)] & '\20')) {
   ;
   return 0;
  }
  break;
 case 'E':
 case 'F':
 case 'U':
 case '=':
  if (NArgmt == 0) {
   ;
   return 0;
  }
  break;
 case 'G':
 case '>':
  if (NArgmt > 0) {
   ;
   return 0;
  }
  break;
 case 'L':
 case 'S':
 case 'T':
 case '<':
  if (NArgmt < 0) {
   ;
   return 0;
  }
  break;
 case 'N':
  if (NArgmt != 0) {
   ;
   return 0;
  }
  break;
 case 'R':
  if ((ChrMsk[(RelExp)] & ('\200' | '\100' | '\20'))) {
   ;
   return 0;
  }
  break;
 case 'V':
  if ((ChrMsk[(RelExp)] & '\100')) {
   ;
   return 0;
  }
  break;
 case 'W':
  if ((ChrMsk[(RelExp)] & '\200')) {
   ;
   return 0;
  }
  break;
 default:
  ErrMsg(11);
  ;
  return (-1);
 }
 if (FlowEE() == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeDQu()
{
 unsigned char RelExp;
 ;
 if (EStTop == EStBot) {
  ErrMsg(23);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 if (IncCBP() == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 RelExp = (unsigned char)NArgmt;
 switch (((ChrMsk[(*CBfPtr)] & '\100') ? (*CBfPtr)-' ' : (*CBfPtr) )) {
 case 'A':
  if ((ChrMsk[(RelExp)] & ('\200' | '\100'))) {
   ;
   return 0;
  }
  break;
 case 'C':
  if (((ChrMsk[(RelExp)] & ('\200' | '\100' | '\20')) || RelExp == '.' || RelExp == '_' || RelExp == '$')) {
   ;
   return 0;
  }
  break;
 case 'D':
  if ((ChrMsk[(RelExp)] & '\20')) {
   ;
   return 0;
  }
  break;
 case 'E':
 case 'F':
 case 'U':
 case '=':
  if (NArgmt == 0) {
   ;
   return 0;
  }
  break;
 case 'G':
 case '>':
  if (NArgmt > 0) {
   ;
   return 0;
  }
  break;
 case 'L':
 case 'S':
 case 'T':
 case '<':
  if (NArgmt < 0) {
   ;
   return 0;
  }
  break;
 case 'N':
  if (NArgmt != 0) {
   ;
   return 0;
  }
  break;
 case 'R':
  if ((ChrMsk[(RelExp)] & ('\200' | '\100' | '\20'))) {
   ;
   return 0;
  }
  break;
 case 'V':
  if ((ChrMsk[(RelExp)] & '\100')) {
   ;
   return 0;
  }
  break;
 case 'W':
  if ((ChrMsk[(RelExp)] & '\200')) {
   ;
   return 0;
  }
  break;
 default:
  ErrMsg(11);
  ;
  return (-1);
 }
 if (FlowEE() == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 ;
 return 0;
}

variable_types:
RelExp
unsigned char


ZFrSrc

decompiled_code:
__int64 ZFrSrc()
{
__int64 v0; // rdx
unsigned __int8 v1; // al
__int64 v2; // rbx
unsigned __int64 v3; // rax
__int64 result; // rax
unsigned __int8 *v5; // rax
int v6; // eax
unsigned __int8 *v7; // rax
unsigned __int8 *v8; // rax
_BYTE *v9; // rax
unsigned __int8 *v10; // rax
unsigned __int8 *v11; // rax
unsigned __int8 *v12; // rax
_BYTE *v13; // rax
unsigned __int8 *v14; // rax
unsigned __int8 *v15; // rax
unsigned __int8 v16; // cl
char v17; // dl
__int64 v18; // rdx
__int64 v19; // rbp
__int64 v20; // rbx
_BYTE *v21; // rdx
unsigned __int64 v22; // rcx
_BYTE *v23; // rax
__int64 v24; // rbp
__int64 v25; // rbx
__int64 v26; // rax
char v27; // dl
__int64 v28; // rsi
unsigned __int8 *v29; // rdx
__int64 v30; // rbx
__int64 v31; // rax
char v32; // dl
_BYTE *v33; // rax
char v34; // cl
_BYTE *v35; // rcx
int v36[7]; // [rsp+Ch] [rbp-1Ch] BYREF

v0 = SStPtr;
v1 = *SStPtr;
if ( *SStPtr == 19 )
{
v5 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v5) & 0xD0) == 0 )
break;
EBPtr1 = ++v5;
}
while ( (unsigned __int64)v5 <= EndSAr );
}
goto LABEL_12;
}
if ( v1 > 0x13u )
{
if ( v1 == 24 )
goto LABEL_12;
goto LABEL_122;
}
if ( v1 != 5 )
{
if ( v1 == 14 )
{
v2 = ++SStPtr;
if ( v0 + 1 == SBfPtr )
{
ErrMsg(15LL);
return 0xFFFFFFFFLL;
}
v3 = EBPtr1;
if ( EBPtr1 <= EndSAr )
{
while ( 1 )
{
EBPtr2 = v3;
SStPtr = v2;
result = CMatch(v36);
if ( (_DWORD)result == -1 )
return result;
if ( v36[0] )
{
v3 = EBPtr1 + 1LL;
EBPtr1 = v3;
if ( v3 <= EndSAr )
continue;
}
break;
}
}
LABEL_12:
EBPtr2 = EBPtr1;
return 0LL;
}
LABEL_122:
if ( SMFlag )
{
v33 = (_BYTE *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *v33 == *SStPtr )
break;
EBPtr1 = ++v33;
}
while ( (unsigned __int64)v33 <= EndSAr );
}
}
else
{
v34 = *((_BYTE *)&ChrMsk + v1);
if ( v34 >= 0 )
{
if ( (v34 & 0x40) != 0 )
v1 -= 32;
}
else
{
v1 += 32;
}
v35 = (_BYTE *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *v35 == *SStPtr )
break;
if ( (unsigned __int8)*v35 == (char)v1 )
break;
EBPtr1 = ++v35;
}
while ( (unsigned __int64)v35 <= EndSAr );
}
}
goto LABEL_12;
}
++SStPtr;
if ( v0 + 1 == SBfPtr )
{
LABEL_95:
ErrMsg(4LL);
return 0xFFFFFFFFLL;
}
v6 = *(unsigned __int8 *)(v0 + 1);
if ( (*((_BYTE *)&ChrMsk + *(unsigned __int8 *)(v0 + 1)) & 0x40) != 0 )
v6 -= 32;
switch ( v6 )
{
case '<':
SStPtr = v0 + 2;
if ( SBfPtr == v0 + 2 )
goto LABEL_95;
v28 = 0LL;
while ( (*((_BYTE *)&ChrMsk + (unsigned __int8)*SStPtr) & 0x10) != 0 )
{
v28 = (unsigned __int8)*SStPtr - 48 + 8 * v28;
if ( v28 <= 127 && SBfPtr != ++SStPtr )
continue;
goto LABEL_95;
}
if ( *SStPtr != 62 )
goto LABEL_95;
v29 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *v29 == (char)v28 )
break;
EBPtr1 = ++v29;
}
while ( (unsigned __int64)v29 <= EndSAr );
}
goto LABEL_12;
case 'A':
v15 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v15) & 0xC0) != 0 )
break;
EBPtr1 = ++v15;
}
while ( (unsigned __int64)v15 <= EndSAr );
}
goto LABEL_12;
case 'B':
v14 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v14) & 0xD0) == 0 )
break;
EBPtr1 = ++v14;
}
while ( (unsigned __int64)v14 <= EndSAr );
}
goto LABEL_12;
case 'C':
v13 = (_BYTE *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
v16 = *v13 - 36;
v17 = 1;
if ( v16 <= 0x3Bu )
v17 = ((0x800000000000401uLL >> v16) ^ 1) & 1;
if ( !v17 )
break;
if ( (*((_BYTE *)&ChrMsk + (unsigned __int8)*v13) & 0xD0) != 0 )
break;
EBPtr1 = ++v13;
}
while ( (unsigned __int64)v13 <= EndSAr );
}
goto LABEL_12;
case 'D':
v12 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v12) & 0x10) != 0 )
break;
EBPtr1 = ++v12;
}
while ( (unsigned __int64)v12 <= EndSAr );
}
goto LABEL_12;
case 'G':
v18 = v0 + 2;
SStPtr = v18;
if ( SBfPtr == v18 )
goto LABEL_95;
v19 = CBfPtr;
v20 = CStEnd;
CBfPtr = v18;
CStEnd = SBfPtr;
result = FindQR();
SStPtr = CBfPtr;
SBfPtr = CStEnd;
CBfPtr = v19;
CStEnd = v20;
if ( (_DWORD)result == -1 )
return result;
v21 = (_BYTE *)EBPtr1;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
v22 = *(_QWORD *)(QR + 8LL);
do
{
v23 = (_BYTE *)*QR;
while ( v22 > (unsigned __int64)v23 )
{
if ( *v23++ == *v21 )
goto LABEL_12;
}
EBPtr1 = ++v21;
}
while ( (unsigned __int64)v21 <= EndSAr );
goto LABEL_12;
case 'L':
v11 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v11) & 0x20) != 0 )
break;
EBPtr1 = ++v11;
}
while ( (unsigned __int64)v11 <= EndSAr );
}
goto LABEL_12;
case 'M':
v24 = v0 + 2;
SStPtr = v0 + 2;
if ( SBfPtr == v0 + 2 )
goto LABEL_95;
result = ZFrSrc();
if ( (_DWORD)result == -1 )
return result;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
while ( 1 )
{
v25 = EBPtr2;
if ( EBPtr2 >= EndSAr )
break;
++EBPtr2;
SStPtr = v24;
result = CMatch(v36);
if ( (_DWORD)result == -1 )
return result;
result = (unsigned int)v36[0];
if ( !v36[0] )
{
EBPtr2 = v25;
return result;
}
}
return 0LL;
case 'R':
v10 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v10) & 0xD0) != 0 )
break;
EBPtr1 = ++v10;
}
while ( (unsigned __int64)v10 <= EndSAr );
}
goto LABEL_12;
case 'S':
v9 = (_BYTE *)EBPtr1;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
while ( *v9 != 32 && *v9 != 9 )
{
EBPtr1 = ++v9;
if ( (unsigned __int64)v9 > EndSAr )
goto LABEL_12;
}
EBPtr2 = v9;
while ( 1 )
{
v26 = EBPtr2;
if ( EBPtr2 >= EndSAr )
break;
++EBPtr2;
v27 = *(_BYTE *)(v26 + 1);
if ( v27 != 32 && v27 != 9 )
{
EBPtr2 = v26;
return 0LL;
}
}
return 0LL;
case 'V':
v8 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v8) & 0x40) != 0 )
break;
EBPtr1 = ++v8;
}
while ( (unsigned __int64)v8 <= EndSAr );
}
goto LABEL_12;
case 'W':
v7 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *((char *)&ChrMsk + *v7) < 0 )
break;
EBPtr1 = ++v7;
}
while ( (unsigned __int64)v7 <= EndSAr );
}
goto LABEL_12;
case 'X':
goto LABEL_12;
case '[':
v30 = v0 + 2;
SStPtr = v0 + 2;
if ( SBfPtr == v0 + 2 )
goto LABEL_95;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
break;
default:
goto LABEL_95;
}
while ( 1 )
{
v31 = SStPtr;
v32 = *SStPtr;
if ( *SStPtr != 93 )
break;
LABEL_107:
SStPtr = v30;
if ( ++EBPtr1 > EndSAr )
goto LABEL_12;
}
while ( 1 )
{
if ( v32 == 44 )
{
SStPtr = v31 + 1;
if ( v31 + 1 == SBfPtr )
{
LABEL_116:
ErrMsg(4LL);
return 0xFFFFFFFFLL;
}
goto LABEL_113;
}
EBPtr2 = EBPtr1;
result = CMatch(v36);
if ( (_DWORD)result == -1 )
return result;
if ( v36[0] )
break;
if ( ++SStPtr == SBfPtr )
{
ErrMsg(15LL);
return 0xFFFFFFFFLL;
}
LABEL_113:
v31 = SStPtr;
v32 = *SStPtr;
if ( *SStPtr == 93 )
goto LABEL_107;
}
while ( *SStPtr != 93 )
{
if ( ++SStPtr == SBfPtr )
goto LABEL_116;
}
EBPtr2 = EBPtr1;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rdx
unsigned __int8 v1; // al
__int64 v2; // rbx
unsigned __int64 v3; // rax
__int64 result; // rax
unsigned __int8 *v5; // rax
int v6; // eax
unsigned __int8 *v7; // rax
unsigned __int8 *v8; // rax
_BYTE *v9; // rax
unsigned __int8 *v10; // rax
unsigned __int8 *v11; // rax
unsigned __int8 *v12; // rax
_BYTE *v13; // rax
unsigned __int8 *v14; // rax
unsigned __int8 *v15; // rax
unsigned __int8 v16; // cl
char v17; // dl
__int64 v18; // rdx
__int64 v19; // rbp
__int64 v20; // rbx
_BYTE *v21; // rdx
unsigned __int64 v22; // rcx
_BYTE *v23; // rax
__int64 v24; // rbp
__int64 v25; // rbx
__int64 v26; // rax
char v27; // dl
__int64 v28; // rsi
unsigned __int8 *v29; // rdx
__int64 v30; // rbx
__int64 v31; // rax
char v32; // dl
_BYTE *v33; // rax
char v34; // cl
_BYTE *v35; // rcx
int v36[7]; // [rsp+Ch] [rbp-1Ch] BYREF

v0 = SStPtr;
v1 = *SStPtr;
if ( *SStPtr == 19 )
{
v5 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v5) & 0xD0) == 0 )
break;
EBPtr1 = ++v5;
}
while ( (unsigned __int64)v5 <= EndSAr );
}
goto LABEL_12;
}
if ( v1 > 0x13u )
{
if ( v1 == 24 )
goto LABEL_12;
goto LABEL_122;
}
if ( v1 != 5 )
{
if ( v1 == 14 )
{
v2 = ++SStPtr;
if ( v0 + 1 == SBfPtr )
{
ErrMsg(15LL);
return 0xFFFFFFFFLL;
}
v3 = EBPtr1;
if ( EBPtr1 <= EndSAr )
{
while ( 1 )
{
EBPtr2 = v3;
SStPtr = v2;
result = CMatch(v36);
if ( (_DWORD)result == -1 )
return result;
if ( v36[0] )
{
v3 = EBPtr1 + 1LL;
EBPtr1 = v3;
if ( v3 <= EndSAr )
continue;
}
break;
}
}
LABEL_12:
EBPtr2 = EBPtr1;
return 0LL;
}
LABEL_122:
if ( SMFlag )
{
v33 = (_BYTE *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *v33 == *SStPtr )
break;
EBPtr1 = ++v33;
}
while ( (unsigned __int64)v33 <= EndSAr );
}
}
else
{
v34 = *((_BYTE *)&ChrMsk + v1);
if ( v34 >= 0 )
{
if ( (v34 & 0x40) != 0 )
v1 -= 32;
}
else
{
v1 += 32;
}
v35 = (_BYTE *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *v35 == *SStPtr )
break;
if ( (unsigned __int8)*v35 == (char)v1 )
break;
EBPtr1 = ++v35;
}
while ( (unsigned __int64)v35 <= EndSAr );
}
}
goto LABEL_12;
}
++SStPtr;
if ( v0 + 1 == SBfPtr )
{
LABEL_95:
ErrMsg(4LL);
return 0xFFFFFFFFLL;
}
v6 = *(unsigned __int8 *)(v0 + 1);
if ( (*((_BYTE *)&ChrMsk + *(unsigned __int8 *)(v0 + 1)) & 0x40) != 0 )
v6 -= 32;
switch ( v6 )
{
case '<':
SStPtr = v0 + 2;
if ( SBfPtr == v0 + 2 )
goto LABEL_95;
v28 = 0LL;
while ( (*((_BYTE *)&ChrMsk + (unsigned __int8)*SStPtr) & 0x10) != 0 )
{
v28 = (unsigned __int8)*SStPtr - 48 + 8 * v28;
if ( v28 <= 127 && SBfPtr != ++SStPtr )
continue;
goto LABEL_95;
}
if ( *SStPtr != 62 )
goto LABEL_95;
v29 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *v29 == (char)v28 )
break;
EBPtr1 = ++v29;
}
while ( (unsigned __int64)v29 <= EndSAr );
}
goto LABEL_12;
case 'A':
v15 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v15) & 0xC0) != 0 )
break;
EBPtr1 = ++v15;
}
while ( (unsigned __int64)v15 <= EndSAr );
}
goto LABEL_12;
case 'B':
v14 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v14) & 0xD0) == 0 )
break;
EBPtr1 = ++v14;
}
while ( (unsigned __int64)v14 <= EndSAr );
}
goto LABEL_12;
case 'C':
v13 = (_BYTE *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
v16 = *v13 - 36;
v17 = 1;
if ( v16 <= 0x3Bu )
v17 = ((0x800000000000401uLL >> v16) ^ 1) & 1;
if ( !v17 )
break;
if ( (*((_BYTE *)&ChrMsk + (unsigned __int8)*v13) & 0xD0) != 0 )
break;
EBPtr1 = ++v13;
}
while ( (unsigned __int64)v13 <= EndSAr );
}
goto LABEL_12;
case 'D':
v12 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v12) & 0x10) != 0 )
break;
EBPtr1 = ++v12;
}
while ( (unsigned __int64)v12 <= EndSAr );
}
goto LABEL_12;
case 'G':
v18 = v0 + 2;
SStPtr = v18;
if ( SBfPtr == v18 )
goto LABEL_95;
v19 = CBfPtr;
v20 = CStEnd;
CBfPtr = v18;
CStEnd = SBfPtr;
result = FindQR();
SStPtr = CBfPtr;
SBfPtr = CStEnd;
CBfPtr = v19;
CStEnd = v20;
if ( (_DWORD)result == -1 )
return result;
v21 = (_BYTE *)EBPtr1;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
v22 = *(_QWORD *)(QR + 8LL);
do
{
v23 = (_BYTE *)*QR;
while ( v22 > (unsigned __int64)v23 )
{
if ( *v23++ == *v21 )
goto LABEL_12;
}
EBPtr1 = ++v21;
}
while ( (unsigned __int64)v21 <= EndSAr );
goto LABEL_12;
case 'L':
v11 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v11) & 0x20) != 0 )
break;
EBPtr1 = ++v11;
}
while ( (unsigned __int64)v11 <= EndSAr );
}
goto LABEL_12;
case 'M':
v24 = v0 + 2;
SStPtr = v0 + 2;
if ( SBfPtr == v0 + 2 )
goto LABEL_95;
result = func0();
if ( (_DWORD)result == -1 )
return result;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
while ( 1 )
{
v25 = EBPtr2;
if ( EBPtr2 >= EndSAr )
break;
++EBPtr2;
SStPtr = v24;
result = CMatch(v36);
if ( (_DWORD)result == -1 )
return result;
result = (unsigned int)v36[0];
if ( !v36[0] )
{
EBPtr2 = v25;
return result;
}
}
return 0LL;
case 'R':
v10 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v10) & 0xD0) != 0 )
break;
EBPtr1 = ++v10;
}
while ( (unsigned __int64)v10 <= EndSAr );
}
goto LABEL_12;
case 'S':
v9 = (_BYTE *)EBPtr1;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
while ( *v9 != 32 && *v9 != 9 )
{
EBPtr1 = ++v9;
if ( (unsigned __int64)v9 > EndSAr )
goto LABEL_12;
}
EBPtr2 = v9;
while ( 1 )
{
v26 = EBPtr2;
if ( EBPtr2 >= EndSAr )
break;
++EBPtr2;
v27 = *(_BYTE *)(v26 + 1);
if ( v27 != 32 && v27 != 9 )
{
EBPtr2 = v26;
return 0LL;
}
}
return 0LL;
case 'V':
v8 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( (*((_BYTE *)&ChrMsk + *v8) & 0x40) != 0 )
break;
EBPtr1 = ++v8;
}
while ( (unsigned __int64)v8 <= EndSAr );
}
goto LABEL_12;
case 'W':
v7 = (unsigned __int8 *)EBPtr1;
if ( EBPtr1 <= EndSAr )
{
do
{
if ( *((char *)&ChrMsk + *v7) < 0 )
break;
EBPtr1 = ++v7;
}
while ( (unsigned __int64)v7 <= EndSAr );
}
goto LABEL_12;
case 'X':
goto LABEL_12;
case '[':
v30 = v0 + 2;
SStPtr = v0 + 2;
if ( SBfPtr == v0 + 2 )
goto LABEL_95;
if ( EBPtr1 > EndSAr )
goto LABEL_12;
break;
default:
goto LABEL_95;
}
while ( 1 )
{
v31 = SStPtr;
v32 = *SStPtr;
if ( *SStPtr != 93 )
break;
LABEL_107:
SStPtr = v30;
if ( ++EBPtr1 > EndSAr )
goto LABEL_12;
}
while ( 1 )
{
if ( v32 == 44 )
{
SStPtr = v31 + 1;
if ( v31 + 1 == SBfPtr )
{
LABEL_116:
ErrMsg(4LL);
return 0xFFFFFFFFLL;
}
goto LABEL_113;
}
EBPtr2 = EBPtr1;
result = CMatch(v36);
if ( (_DWORD)result == -1 )
return result;
if ( v36[0] )
break;
if ( ++SStPtr == SBfPtr )
{
ErrMsg(15LL);
return 0xFFFFFFFFLL;
}
LABEL_113:
v31 = SStPtr;
v32 = *SStPtr;
if ( *SStPtr == 93 )
goto LABEL_107;
}
while ( *SStPtr != 93 )
{
if ( ++SStPtr == SBfPtr )
goto LABEL_116;
}
EBPtr2 = EBPtr1;
return 0LL;
}

original_code:
DEFAULT ZFrSrc()
{
 char Charac;
 charptr LstBeg;
 char OtCase;
 charptr QTPtr;
 BOOLEAN SamChr;
 charptr SavEP2;
 charptr SavSSP;
 DEFAULT Status;
 charptr TCBfPt;
 charptr TCStEn;
 LONG TmpLng;
 switch (*SStPtr) {
  case '\030':
   break;
  case '\023':
   for (;EBPtr1<=EndSAr;++EBPtr1)
    if (!(ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')))
     break;
   break;
  case '\016':
   if (++SStPtr == SBfPtr)
    {
    ErrMsg(15);
    ;
    return (-1);
    }
   SavSSP = SStPtr;
   for (;EBPtr1<=EndSAr;++EBPtr1)
    {
    EBPtr2 = EBPtr1;
    SStPtr = SavSSP;
    if (CMatch(&SamChr) == (-1)) {
     ;
     return (-1);
    }
    if (!SamChr)
     break;
    }
   break;
  case '\005':
   if (++SStPtr == SBfPtr)
    {
    ErrMsg(4);
    ;
    return (-1);
    }
   switch (((ChrMsk[(*SStPtr)] & '\100') ? (*SStPtr)-' ' : (*SStPtr) )) {
   case 'A':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & ('\200' | '\100')))
      break;
    break;
   case 'B':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (!(ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')))
      break;
    break;
   case 'C':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (((ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')) || *EBPtr1 == '.' || *EBPtr1 == '_' || *EBPtr1 == '$'))
      break;
    break;
   case 'D':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\20'))
      break;
    break;
   case 'G':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    TCBfPt = CBfPtr;
    TCStEn = CStEnd;
    CBfPtr = SStPtr;
    CStEnd = SBfPtr;
    Status = FindQR();
    SStPtr = CBfPtr;
    SBfPtr = CStEnd;
    CBfPtr = TCBfPt;
    CStEnd = TCStEn;
    if (Status == (-1)) {
     ;
     return (-1);
    }
    for (;EBPtr1<=EndSAr;++EBPtr1)
     {
     QTPtr = QR->Start;
     while (QTPtr < QR->End_P1)
      if (*QTPtr++ == *EBPtr1)
       goto kludge;
     }
kludge: break;
   case 'L':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\40'))
      break;
    break;
   case 'M':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    SavSSP = SStPtr;
    if (ZFrSrc() == (-1)) {
     ;
     return (-1);
    }
    if (EBPtr1 > EndSAr)
     break;
    while (EBPtr2 < EndSAr)
     {
     SavEP2 = EBPtr2++;
     SStPtr = SavSSP;
     if (CMatch(&SamChr) == (-1)) {
      ;
      return (-1);
     }
     if (!SamChr)
      {
      EBPtr2 = SavEP2;
      break;
      }
     }
    ;
    return 0;
   case 'R':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')))
      break;
    break;
   case 'S':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((*EBPtr1 == '\040') ||
         (*EBPtr1 == '\011'))
      {
      EBPtr2 = EBPtr1;
      while (EBPtr2 < EndSAr)
          {
          ++EBPtr2;
          if ((*EBPtr2 != '\040') &&
       (*EBPtr2 != '\011'))
           {
           EBPtr2--;
           break;
           }
          }
      ;
      return 0;
      }
    break;
   case 'V':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\100'))
      break;
    break;
   case 'W':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\200'))
      break;
    break;
   case 'X':
    break;
   case '<':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    TmpLng = 0;
    while ((ChrMsk[(*SStPtr)] & '\20'))
     {
     TmpLng *= 8;
     TmpLng += *SStPtr - '0';
     if (TmpLng > 127)
      {
      ErrMsg(4);
      ;
      return (-1);
      }
     if (++SStPtr == SBfPtr)
      {
      ErrMsg(4);
      ;
      return (-1);
      }
     }
    if (*SStPtr != '>')
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    Charac = (char)TmpLng;
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (*EBPtr1 == Charac)
      break;
    break;
   case '[':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    LstBeg = SStPtr;
    for (;EBPtr1<=EndSAr;++EBPtr1)
     {
     while (*SStPtr != ']')
      if (*SStPtr == ',')
       {
       if (++SStPtr == SBfPtr)
        {
        ErrMsg(4);
        ;
        return (-1);
        }
       }
      else
       {
      EBPtr2 = EBPtr1;
      if (CMatch(&SamChr) == (-1)) {
       ;
       return (-1);
      }
      if (SamChr)
       {
       while (*SStPtr != ']')
       if (++SStPtr == SBfPtr)
        {
        ErrMsg(4);
        ;
        return (-1);
        }
       EBPtr2 = EBPtr1;
       ;
       return 0;
       }
      if (++SStPtr == SBfPtr)
       {
       ErrMsg(15);
       ;
       return (-1);
       }
      }
     SStPtr = LstBeg;
     }
    break;
   default:
    ErrMsg(4);
    ;
    return (-1);
   }
   break;
  default:
   if (SMFlag)
    {
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (*EBPtr1 == *SStPtr)
      break;
    }
   else
    {
    OtCase = ((ChrMsk[(*SStPtr)] & '\200')) ?
      ((ChrMsk[(*SStPtr)] & '\200') ? (*SStPtr)+' ' : (*SStPtr) ) :
      ((ChrMsk[(*SStPtr)] & '\100') ? (*SStPtr)-' ' : (*SStPtr) );
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((*EBPtr1 == *SStPtr) ||
         (*EBPtr1 == OtCase))
      break;
    }
 }
 EBPtr2 = EBPtr1;
 return 0;
}

canonical_original_code:
int ZFrSrc()
{
 char Charac;
 unsigned char *LstBeg;
 char OtCase;
 unsigned char *QTPtr;
 int SamChr;
 unsigned char *SavEP2;
 unsigned char *SavSSP;
 int Status;
 unsigned char *TCBfPt;
 unsigned char *TCStEn;
 long TmpLng;
 switch (*SStPtr) {
  case '\030':
   break;
  case '\023':
   for (;EBPtr1<=EndSAr;++EBPtr1)
    if (!(ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')))
     break;
   break;
  case '\016':
   if (++SStPtr == SBfPtr)
    {
    ErrMsg(15);
    ;
    return (-1);
    }
   SavSSP = SStPtr;
   for (;EBPtr1<=EndSAr;++EBPtr1)
    {
    EBPtr2 = EBPtr1;
    SStPtr = SavSSP;
    if (CMatch(&SamChr) == (-1)) {
     ;
     return (-1);
    }
    if (!SamChr)
     break;
    }
   break;
  case '\005':
   if (++SStPtr == SBfPtr)
    {
    ErrMsg(4);
    ;
    return (-1);
    }
   switch (((ChrMsk[(*SStPtr)] & '\100') ? (*SStPtr)-' ' : (*SStPtr) )) {
   case 'A':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & ('\200' | '\100')))
      break;
    break;
   case 'B':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (!(ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')))
      break;
    break;
   case 'C':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (((ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')) || *EBPtr1 == '.' || *EBPtr1 == '_' || *EBPtr1 == '$'))
      break;
    break;
   case 'D':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\20'))
      break;
    break;
   case 'G':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    TCBfPt = CBfPtr;
    TCStEn = CStEnd;
    CBfPtr = SStPtr;
    CStEnd = SBfPtr;
    Status = FindQR();
    SStPtr = CBfPtr;
    SBfPtr = CStEnd;
    CBfPtr = TCBfPt;
    CStEnd = TCStEn;
    if (Status == (-1)) {
     ;
     return (-1);
    }
    for (;EBPtr1<=EndSAr;++EBPtr1)
     {
     QTPtr = QR->Start;
     while (QTPtr < QR->End_P1)
      if (*QTPtr++ == *EBPtr1)
       goto kludge;
     }
kludge: break;
   case 'L':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\40'))
      break;
    break;
   case 'M':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    SavSSP = SStPtr;
    if (ZFrSrc() == (-1)) {
     ;
     return (-1);
    }
    if (EBPtr1 > EndSAr)
     break;
    while (EBPtr2 < EndSAr)
     {
     SavEP2 = EBPtr2++;
     SStPtr = SavSSP;
     if (CMatch(&SamChr) == (-1)) {
      ;
      return (-1);
     }
     if (!SamChr)
      {
      EBPtr2 = SavEP2;
      break;
      }
     }
    ;
    return 0;
   case 'R':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & ('\200' | '\100' | '\20')))
      break;
    break;
   case 'S':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((*EBPtr1 == '\040') ||
         (*EBPtr1 == '\011'))
      {
      EBPtr2 = EBPtr1;
      while (EBPtr2 < EndSAr)
          {
          ++EBPtr2;
          if ((*EBPtr2 != '\040') &&
       (*EBPtr2 != '\011'))
           {
           EBPtr2--;
           break;
           }
          }
      ;
      return 0;
      }
    break;
   case 'V':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\100'))
      break;
    break;
   case 'W':
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((ChrMsk[(*EBPtr1)] & '\200'))
      break;
    break;
   case 'X':
    break;
   case '<':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    TmpLng = 0;
    while ((ChrMsk[(*SStPtr)] & '\20'))
     {
     TmpLng *= 8;
     TmpLng += *SStPtr - '0';
     if (TmpLng > 127)
      {
      ErrMsg(4);
      ;
      return (-1);
      }
     if (++SStPtr == SBfPtr)
      {
      ErrMsg(4);
      ;
      return (-1);
      }
     }
    if (*SStPtr != '>')
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    Charac = (char)TmpLng;
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (*EBPtr1 == Charac)
      break;
    break;
   case '[':
    if (++SStPtr == SBfPtr)
     {
     ErrMsg(4);
     ;
     return (-1);
     }
    LstBeg = SStPtr;
    for (;EBPtr1<=EndSAr;++EBPtr1)
     {
     while (*SStPtr != ']')
      if (*SStPtr == ',')
       {
       if (++SStPtr == SBfPtr)
        {
        ErrMsg(4);
        ;
        return (-1);
        }
       }
      else
       {
      EBPtr2 = EBPtr1;
      if (CMatch(&SamChr) == (-1)) {
       ;
       return (-1);
      }
      if (SamChr)
       {
       while (*SStPtr != ']')
       if (++SStPtr == SBfPtr)
        {
        ErrMsg(4);
        ;
        return (-1);
        }
       EBPtr2 = EBPtr1;
       ;
       return 0;
       }
      if (++SStPtr == SBfPtr)
       {
       ErrMsg(15);
       ;
       return (-1);
       }
      }
     SStPtr = LstBeg;
     }
    break;
   default:
    ErrMsg(4);
    ;
    return (-1);
   }
   break;
  default:
   if (SMFlag)
    {
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if (*EBPtr1 == *SStPtr)
      break;
    }
   else
    {
    OtCase = ((ChrMsk[(*SStPtr)] & '\200')) ?
      ((ChrMsk[(*SStPtr)] & '\200') ? (*SStPtr)+' ' : (*SStPtr) ) :
      ((ChrMsk[(*SStPtr)] & '\100') ? (*SStPtr)-' ' : (*SStPtr) );
    for (;EBPtr1<=EndSAr;++EBPtr1)
     if ((*EBPtr1 == *SStPtr) ||
         (*EBPtr1 == OtCase))
      break;
    }
 }
 EBPtr2 = EBPtr1;
 return 0;
}

variable_types: Charac char

variable_types:
LstBeg
unsigned char *

variable_types: OtCase char

variable_types:
QTPtr
unsigned char *

variable_types: SamChr int

variable_types:
SavSSP
unsigned char *

variable_types: Status int

variable_types:
TCBfPt
unsigned char *

variable_types:
TCStEn
unsigned char *


MemIni

decompiled_code:
__int64 MemIni()
{
__int64 v0; // rbx
char *v1; // rax
char *v2; // rax
__int64 result; // rax

v0 = ZAlloc(4096LL);
DBfPtr = ZAlloc(24LL);
DBfBeg = DBfPtr;
if ( !DBfPtr )
{
ErrMsg(18LL);
TAbort(1LL);
}
FBfPtr = ZAlloc(64LL);
FBfBeg = FBfPtr;
if ( !FBfPtr )
{
ErrMsg(18LL);
TAbort(1LL);
}
FBfEnd = FBfBeg + 63LL;
CBfBeg = ZAlloc(20000LL);
if ( !CBfBeg )
{
ErrMsg(18LL);
TAbort(1LL);
}
CBfEnd = CBfBeg + 19999LL;
SBfPtr = ZAlloc(1000LL);
SBfBeg = SBfPtr;
if ( !SBfPtr )
{
ErrMsg(18LL);
TAbort(1LL);
}
SBfEnd = SBfBeg + 999LL;
GapBeg = ZAlloc(128000LL);
EBfBeg = GapBeg;
if ( !GapBeg )
{
ErrMsg(18LL);
TAbort(1LL);
}
GapEnd = EBfBeg + 63999LL;
EBfEnd = EBfBeg + 63999LL;
IBfEnd = EBfBeg + 127999LL;
v1 = (char *)&QRgstr;
do
{
*((_QWORD *)v1 + 1) = 0LL;
*(_QWORD *)v1 = 0LL;
*((_QWORD *)v1 + 2) = 0LL;
v1 += 24;
}
while ( v1 != (char *)&QRgstr + 1728 );
v2 = (char *)&QStack;
do
{
*((_QWORD *)v2 + 1) = 0LL;
*(_QWORD *)v2 = 0LL;
*((_QWORD *)v2 + 2) = 0LL;
v2 += 24;
}
while ( v2 != (char *)&QStack + 768 );
for ( result = 0LL; result != 32; result += 4LL )
{
*(_DWORD *)((char *)&IsEofI + result) = 0;
*(_DWORD *)((char *)&IsOpnI + result) = 0;
}
IsOpnO[0] = 0;
IsOpnO[1] = 0;
IsOpnO[2] = 0;
if ( v0 )
result = ZFree(v0);
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rbx
char *v1; // rax
char *v2; // rax
__int64 result; // rax

v0 = ZAlloc(4096LL);
DBfPtr = ZAlloc(24LL);
DBfBeg = DBfPtr;
if ( !DBfPtr )
{
ErrMsg(18LL);
TAbort(1LL);
}
FBfPtr = ZAlloc(64LL);
FBfBeg = FBfPtr;
if ( !FBfPtr )
{
ErrMsg(18LL);
TAbort(1LL);
}
FBfEnd = FBfBeg + 63LL;
CBfBeg = ZAlloc(20000LL);
if ( !CBfBeg )
{
ErrMsg(18LL);
TAbort(1LL);
}
CBfEnd = CBfBeg + 19999LL;
SBfPtr = ZAlloc(1000LL);
SBfBeg = SBfPtr;
if ( !SBfPtr )
{
ErrMsg(18LL);
TAbort(1LL);
}
SBfEnd = SBfBeg + 999LL;
GapBeg = ZAlloc(128000LL);
EBfBeg = GapBeg;
if ( !GapBeg )
{
ErrMsg(18LL);
TAbort(1LL);
}
GapEnd = EBfBeg + 63999LL;
EBfEnd = EBfBeg + 63999LL;
IBfEnd = EBfBeg + 127999LL;
v1 = (char *)&QRgstr;
do
{
*((_QWORD *)v1 + 1) = 0LL;
*(_QWORD *)v1 = 0LL;
*((_QWORD *)v1 + 2) = 0LL;
v1 += 24;
}
while ( v1 != (char *)&QRgstr + 1728 );
v2 = (char *)&QStack;
do
{
*((_QWORD *)v2 + 1) = 0LL;
*(_QWORD *)v2 = 0LL;
*((_QWORD *)v2 + 2) = 0LL;
v2 += 24;
}
while ( v2 != (char *)&QStack + 768 );
for ( result = 0LL; result != 32; result += 4LL )
{
*(_DWORD *)((char *)&IsEofI + result) = 0;
*(_DWORD *)((char *)&IsOpnI + result) = 0;
}
IsOpnO[0] = 0;
IsOpnO[1] = 0;
IsOpnO[2] = 0;
if ( v0 )
result = ZFree(v0);
return result;
}

original_code:
static void MemIni()
{
 WORD i;
 QRptr QRp;
 charptr TmpMem;
 ;
 TmpMem = (charptr)ZAlloc((SIZE_T)(4*1024));
 DBfBeg = DBfPtr = (charptr)ZAlloc((((sizeof(LONG)*8)+2)/3)+2);
 if (DBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 FBfBeg = FBfPtr = (charptr)ZAlloc((SIZE_T)64);
 if (FBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 FBfEnd = FBfBeg + 64 - 1;
 CBfBeg = (charptr)ZAlloc((SIZE_T)20000);
 if (CBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 CBfEnd = CBfBeg + 20000 - 1;
 SBfBeg = SBfPtr = (charptr)ZAlloc((SIZE_T)1000);
 if (SBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 SBfEnd = SBfBeg + 1000 - 1;
 EBfBeg = GapBeg = (charptr)ZAlloc((SIZE_T)64000L + (SIZE_T)64000L);
 if (EBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 EBfEnd = GapEnd = EBfBeg + 64000L - 1;
 IBfEnd = EBfEnd + 64000L;
 for (QRp = QRgstr, i = 0; i < 72; ++i, ++QRp) {
  QRp->Start = QRp->End_P1 = (void *)0;
  QRp->Number = 0;
 }
 for (QRp = QStack, i = 0; i < 32; ++i, ++QRp) {
  QRp->Start = QRp->End_P1 = (void *)0;
  QRp->Number = 0;
 }
 for (i = 0; i < 8; i++) {
  IsOpnI[i] = IsEofI[i] = 0;
 }
 for (i = 0; i < 3; i++) {
  IsOpnO[i] = 0;
 }
 if (TmpMem) {
  ZFree (TmpMem);
 }
 ;
}

canonical_original_code:
static void MemIni()
{
 short i;
 struct QReg *QRp;
 unsigned char *TmpMem;
 ;
 TmpMem = (unsigned char *)ZAlloc((SIZE_T)(4*1024));
 DBfBeg = DBfPtr = (unsigned char *)ZAlloc((((sizeof(LONG)*8)+2)/3)+2);
 if (DBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 FBfBeg = FBfPtr = (unsigned char *)ZAlloc((unsigned int)64);
 if (FBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 FBfEnd = FBfBeg + 64 - 1;
 CBfBeg = (unsigned char *)ZAlloc((unsigned int)20000);
 if (CBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 CBfEnd = CBfBeg + 20000 - 1;
 SBfBeg = SBfPtr = (unsigned char *)ZAlloc((unsigned int)1000);
 if (SBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 SBfEnd = SBfBeg + 1000 - 1;
 EBfBeg = GapBeg = (unsigned char *)ZAlloc((unsigned int)64000L + (unsigned int)64000L);
 if (EBfBeg == (void *)0) {
  ErrMsg(18);
  TAbort(1);
 }
 EBfEnd = GapEnd = EBfBeg + 64000L - 1;
 IBfEnd = EBfEnd + 64000L;
 for (QRp = QRgstr, i = 0; i < 72; ++i, ++QRp) {
  QRp->Start = QRp->End_P1 = (void *)0;
  QRp->Number = 0;
 }
 for (QRp = QStack, i = 0; i < 32; ++i, ++QRp) {
  QRp->Start = QRp->End_P1 = (void *)0;
  QRp->Number = 0;
 }
 for (i = 0; i < 8; i++) {
  IsOpnI[i] = IsEofI[i] = 0;
 }
 for (i = 0; i < 3; i++) {
  IsOpnO[i] = 0;
 }
 if (TmpMem) {
  ZFree (TmpMem);
 }
 ;
}

variable_types: i short

variable_types:
TmpMem
unsigned char *

return_type: void

user_defined_types: struct QReg { unsigned char *Start; unsigned char *End_P1; long Number; }


ExeP

decompiled_code:
__int64 ExeP()
{
int v0; // ebx
__int64 v1; // rax
__int64 result; // rax

v0 = *((_DWORD *)&IsEofI + CurInp);
if ( EStTop == EStBot )
{
NArgmt = 1LL;
}
else
{
result = GetNmA();
if ( (_DWORD)result == -1 )
return result;
if ( NArgmt <= 0 )
{
if ( (CmdMod & 8) == 0 )
{
ErrMsg(10LL);
return 0xFFFFFFFFLL;
}
v1 = CBfPtr;
if ( CBfPtr == CStEnd || (*(_BYTE *)(CBfPtr + 1LL) & 0xDF) != 87 )
return ExePW();
LABEL_19:
CBfPtr = v1 + 1;
return ExePW();
}
}
v1 = CBfPtr;
if ( CBfPtr != CStEnd && (*(_BYTE *)(CBfPtr + 1LL) & 0xDF) == 87 )
goto LABEL_19;
if ( (CmdMod & 8) != 0 )
return ExePW();
while ( 1 )
{
result = SinglP();
if ( (_DWORD)result == -1 )
break;
--NArgmt;
if ( NArgmt <= 0 || *((_DWORD *)&IsEofI + CurInp) )
{
if ( (CmdMod & 2) != 0 )
return PushEx(-(__int64)(v0 == 0), 0LL);
CmdMod = 0;
return 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
int v0; // ebx
__int64 v1; // rax
__int64 result; // rax

v0 = *((_DWORD *)&IsEofI + CurInp);
if ( EStTop == EStBot )
{
NArgmt = 1LL;
}
else
{
result = GetNmA();
if ( (_DWORD)result == -1 )
return result;
if ( NArgmt <= 0 )
{
if ( (CmdMod & 8) == 0 )
{
ErrMsg(10LL);
return 0xFFFFFFFFLL;
}
v1 = CBfPtr;
if ( CBfPtr == CStEnd || (*(_BYTE *)(CBfPtr + 1LL) & 0xDF) != 87 )
return ExePW();
LABEL_19:
CBfPtr = v1 + 1;
return ExePW();
}
}
v1 = CBfPtr;
if ( CBfPtr != CStEnd && (*(_BYTE *)(CBfPtr + 1LL) & 0xDF) == 87 )
goto LABEL_19;
if ( (CmdMod & 8) != 0 )
return ExePW();
while ( 1 )
{
result = SinglP();
if ( (_DWORD)result == -1 )
break;
--NArgmt;
if ( NArgmt <= 0 || *((_DWORD *)&IsEofI + CurInp) )
{
if ( (CmdMod & 2) != 0 )
return PushEx(-(__int64)(v0 == 0), 0LL);
CmdMod = 0;
return 0LL;
}
}
return result;
}

original_code:
DEFAULT ExeP()
{
 BOOLEAN SavEof;
 ;
 SavEof = IsEofI[CurInp];
 if (EStTop == EStBot) {
  NArgmt = 1;
 } else {
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
  if ((NArgmt <= 0) && ((CmdMod & '\10') == 0)) {
   ErrMsg(10);
   ;
   return (-1);
  }
 }
 if ((CBfPtr != CStEnd) &&
     ((*(CBfPtr+1) == 'W') || (*(CBfPtr+1) == 'w'))) {
  ++CBfPtr;
  ;
  return ExePW();
 }
 if (CmdMod & '\10') {
  ;
  return ExePW();
 }
 do {
  if (SinglP() == (-1)) {
   ;
   return (-1);
  }
 } while ((--NArgmt > 0) && !IsEofI[CurInp]);
 if (CmdMod & '\2') {
  ;
  return PushEx(SavEof ? 0L : -1L, 0);
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeP()
{
 int SavEof;
 ;
 SavEof = IsEofI[CurInp];
 if (EStTop == EStBot) {
  NArgmt = 1;
 } else {
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
  if ((NArgmt <= 0) && ((CmdMod & '\10') == 0)) {
   ErrMsg(10);
   ;
   return (-1);
  }
 }
 if ((CBfPtr != CStEnd) &&
     ((*(CBfPtr+1) == 'W') || (*(CBfPtr+1) == 'w'))) {
  ++CBfPtr;
  ;
  return ExePW();
 }
 if (CmdMod & '\10') {
  ;
  return ExePW();
 }
 do {
  if (SinglP() == (-1)) {
   ;
   return (-1);
  }
 } while ((--NArgmt > 0) && !IsEofI[CurInp]);
 if (CmdMod & '\2') {
  ;
  return PushEx(SavEof ? 0L : -1L, 0);
 }
 CmdMod = '\0';
 ;
 return 0;
}

variable_types: SavEof int


ExeCom

decompiled_code:
__int64 ExeCom()
{
__int64 result; // rax

if ( EStTop == EStBot )
{
ErrMsg(20LL);
result = 0xFFFFFFFFLL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
MArgmt = NArgmt;
CmdMod |= 8u;
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( EStTop == EStBot )
{
ErrMsg(20LL);
result = 0xFFFFFFFFLL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
MArgmt = NArgmt;
CmdMod |= 8u;
result = 0LL;
}
}
return result;
}

original_code:
DEFAULT ExeCom()
{
 ;
 if (EStTop == EStBot) {
  ErrMsg(20);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 MArgmt = NArgmt;
 CmdMod |= '\10';
 ;
 return 0;
}

canonical_original_code:
int ExeCom()
{
 ;
 if (EStTop == EStBot) {
  ErrMsg(20);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 MArgmt = NArgmt;
 CmdMod |= '\10';
 ;
 return 0;
}


ExeCln

decompiled_code:
__int64 ExeCln()
{
char v0; // al

v0 = CmdMod | 2;
if ( (CmdMod & 2) != 0 )
v0 = CmdMod & 0xFD | 4;
CmdMod = v0;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
char v0; // al

v0 = CmdMod | 2;
if ( (CmdMod & 2) != 0 )
v0 = CmdMod & 0xFD | 4;
CmdMod = v0;
return 0LL;
}

original_code:
DEFAULT ExeCln()
{
 ;
 if (CmdMod & '\2') {
  CmdMod &= ~'\2';
  CmdMod |= '\4';
 } else {
  CmdMod |= '\2';
 }
 ;
 return 0;
}

canonical_original_code:
int ExeCln()
{
 ;
 if (CmdMod & '\2') {
  CmdMod &= ~'\2';
  CmdMod |= '\4';
 } else {
  CmdMod |= '\2';
 }
 ;
 return 0;
}


ExeAtS

decompiled_code:
__int64 ExeAtS()
{
CmdMod |= 1u;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
CmdMod |= 1u;
return 0LL;
}

original_code:
DEFAULT ExeAtS()
{
 ;
 CmdMod |= '\1';
 ;
 return 0;
}

canonical_original_code:
int ExeAtS()
{
 ;
 CmdMod |= '\1';
 ;
 return 0;
}


ExeZ

decompiled_code:
__int64 ExeZ()
{
return PushEx(GapBeg - EBfBeg + EBfEnd - GapEnd, 0LL);
}

canonical_decompiled_code:
__int64 func0()
{
return PushEx(GapBeg - EBfBeg + EBfEnd - GapEnd, 0LL);
}

original_code:
DEFAULT ExeZ()
{
 return PushEx((LONG)((GapBeg-EBfBeg)+(EBfEnd-GapEnd)), 0);
}

canonical_original_code:
int ExeZ()
{
 return PushEx((LONG)((GapBeg-EBfBeg)+(EBfEnd-GapEnd)), 0);
}


ErrUTC

decompiled_code:
__int64 ErrUTC()
{
return ErrMsg((MStTop >= 0) + 39);
}

canonical_decompiled_code:
__int64 func5()
{
return func4((MStTop >= 0) + 39);
}

original_code:
void ErrUTC()
{
 ErrMsg((MStTop < 0) ? 39 : 40);
}


ExeEY

decompiled_code:
__int64 ExeEY()
{
unsigned int v0; // ebx

v0 = CmdMod & 2;
CmdMod &= 0xFDu;
GapBeg = EBfBeg;
GapEnd = EBfEnd;
if ( *((_DWORD *)&IsEofI + CurInp) )
{
if ( v0 )
v0 = PushEx(0LL, 0LL);
else
EStTop = EStBot;
}
else if ( (unsigned int)RdPage() == -1 )
{
v0 = -1;
}
else if ( v0 )
{
v0 = PushEx(-1LL, 0LL);
}
else
{
EStTop = EStBot;
}
return v0;
}

canonical_decompiled_code:
__int64 func0()
{
unsigned int v0; // ebx

v0 = CmdMod & 2;
CmdMod &= 0xFDu;
GapBeg = EBfBeg;
GapEnd = EBfEnd;
if ( *((_DWORD *)&IsEofI + CurInp) )
{
if ( v0 )
v0 = PushEx(0LL, 0LL);
else
EStTop = EStBot;
}
else if ( (unsigned int)RdPage() == -1 )
{
v0 = -1;
}
else if ( v0 )
{
v0 = PushEx(-1LL, 0LL);
}
else
{
EStTop = EStBot;
}
return v0;
}

original_code:
DEFAULT ExeEY()
{
 BOOLEAN ColonMod;
 ;
 ColonMod = (CmdMod & '\2');
 CmdMod &= ~'\2';
 GapBeg = EBfBeg;
 GapEnd = EBfEnd;
 if (IsEofI[CurInp]) {
  if (ColonMod) {
   ;
   return PushEx(0L, 0);
  } else {
   EStTop = EStBot;
   ;
   return 0;
  }
 }
 if (RdPage() == (-1)) {
  ;
  return (-1);
 }
 if (ColonMod) {
  ;
  return PushEx(-1L, 0);
 }
 EStTop = EStBot;
 ;
 return 0;
}

canonical_original_code:
int ExeEY()
{
 int ColonMod;
 ;
 ColonMod = (CmdMod & '\2');
 CmdMod &= ~'\2';
 GapBeg = EBfBeg;
 GapEnd = EBfEnd;
 if (IsEofI[CurInp]) {
  if (ColonMod) {
   ;
   return PushEx(0L, 0);
  } else {
   EStTop = EStBot;
   ;
   return 0;
  }
 }
 if (RdPage() == (-1)) {
  ;
  return (-1);
 }
 if (ColonMod) {
  ;
  return PushEx(-1L, 0);
 }
 EStTop = EStBot;
 ;
 return 0;
}


ExeQes

decompiled_code:
__int64 ExeQes()
{
TraceM = TraceM == 0;
CmdMod = 0;
EStTop = EStBot;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
TraceM = TraceM == 0;
CmdMod = 0;
EStTop = EStBot;
return 0LL;
}

original_code:
DEFAULT ExeQes()
{
 ;
 TraceM = !TraceM;
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return 0;
}

canonical_original_code:
int ExeQes()
{
 ;
 TraceM = !TraceM;
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return 0;
}


ExeCtV

decompiled_code:
__int64 ExeCtV()
{
__int64 result; // rax

if ( EStTop == EStBot )
{
IniSrM = 0;
CmdMod = 0;
result = 0LL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
if ( NArgmt )
{
ErrMsg(0LL);
result = 0xFFFFFFFFLL;
}
else
{
IniSrM = 1;
CmdMod = 0;
result = 0LL;
}
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( EStTop == EStBot )
{
IniSrM = 0;
CmdMod = 0;
result = 0LL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
if ( NArgmt )
{
ErrMsg(0LL);
result = 0xFFFFFFFFLL;
}
else
{
IniSrM = 1;
CmdMod = 0;
result = 0LL;
}
}
}
return result;
}

original_code:
DEFAULT ExeCtV()
{
 ;
 if (EStTop == EStBot) {
  IniSrM = 0;
 } else {
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
  if (NArgmt) {
   ErrMsg(0);
   ;
   return (-1);
  }
  IniSrM = 1;
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeCtV()
{
 ;
 if (EStTop == EStBot) {
  IniSrM = 0;
 } else {
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
  if (NArgmt) {
   ErrMsg(0);
   ;
   return (-1);
  }
  IniSrM = 1;
 }
 CmdMod = '\0';
 ;
 return 0;
}


ExeL

decompiled_code:
__int64 ExeL()
{
__int64 v0; // rax
__int64 v1; // rbx
__int64 result; // rax

if ( EStTop == EStBot )
{
NArgmt = 1LL;
}
else
{
UMinus();
result = GetNmA();
if ( (_DWORD)result == -1 )
return result;
}
v0 = Ln2Chr(NArgmt);
v1 = v0;
if ( v0 > 0 )
{
ZCpyBl(GapBeg, GapEnd + 1LL, (unsigned int)v0);
GapBeg += v1;
GapEnd += v1;
}
else if ( v0 < 0 )
{
GapBeg += v0;
GapEnd += v0;
ZCpyBl(GapEnd + 1LL, GapBeg, (unsigned int)-(int)v0);
}
CmdMod = 0;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rax
__int64 v1; // rbx
__int64 result; // rax

if ( EStTop == EStBot )
{
NArgmt = 1LL;
}
else
{
UMinus();
result = GetNmA();
if ( (_DWORD)result == -1 )
return result;
}
v0 = Ln2Chr(NArgmt);
v1 = v0;
if ( v0 > 0 )
{
ZCpyBl(GapBeg, GapEnd + 1LL, (unsigned int)v0);
GapBeg += v1;
GapEnd += v1;
}
else if ( v0 < 0 )
{
GapBeg += v0;
GapEnd += v0;
ZCpyBl(GapEnd + 1LL, GapBeg, (unsigned int)-(int)v0);
}
CmdMod = 0;
return 0LL;
}

original_code:
DEFAULT ExeL()
{
 LONG HowFar;
 ;
 if (EStTop == EStBot) {
  NArgmt = 1;
 } else {
  UMinus();
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
 }
 HowFar = Ln2Chr(NArgmt);
 if (HowFar > 0) {
  ZCpyBl((GapBeg),(GapEnd+1),((SIZE_T)HowFar));
  GapBeg += HowFar;
  GapEnd += HowFar;
 } else if (HowFar < 0) {
  GapBeg += HowFar;
  GapEnd += HowFar;
  ZCpyBl((GapEnd+1),(GapBeg),((SIZE_T)-HowFar));
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeL()
{
 long HowFar;
 ;
 if (EStTop == EStBot) {
  NArgmt = 1;
 } else {
  UMinus();
  if (GetNmA() == (-1)) {
   ;
   return (-1);
  }
 }
 HowFar = Ln2Chr(NArgmt);
 if (HowFar > 0) {
  ZCpyBl((GapBeg),(GapEnd+1),((unsigned int)HowFar));
  GapBeg += HowFar;
  GapEnd += HowFar;
 } else if (HowFar < 0) {
  GapBeg += HowFar;
  GapEnd += HowFar;
  ZCpyBl((GapEnd+1),(GapBeg),((SIZE_T)-HowFar));
 }
 CmdMod = '\0';
 ;
 return 0;
}

variable_types: HowFar long


ExeCtA

decompiled_code:
__int64 ExeCtA()
{
__int64 result; // rax

result = FindES(1LL);
if ( (_DWORD)result != -1 )
{
TypBuf(ArgPtr, CBfPtr);
CmdMod = 0;
EStTop = EStBot;
result = 0LL;
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

result = FindES(1LL);
if ( (_DWORD)result != -1 )
{
TypBuf(ArgPtr, CBfPtr);
CmdMod = 0;
EStTop = EStBot;
result = 0LL;
}
return result;
}

original_code:
DEFAULT ExeCtA()
{
 ;
 if (FindES('\001') == (-1)) {
  ;
  return (-1);
 }
 TypBuf(ArgPtr, CBfPtr);
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return 0;
}

canonical_original_code:
int ExeCtA()
{
 ;
 if (FindES('\001') == (-1)) {
  ;
  return (-1);
 }
 TypBuf(ArgPtr, CBfPtr);
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return 0;
}


ExeCrt

decompiled_code:
__int64 __fastcall ExeCrt(__int64 a1)
{
__int64 result; // rax
unsigned __int8 v2; // al
__int64 v3; // rsi

result = IncCBP();
if ( (_DWORD)result != -1 )
{
v2 = *CBfPtr;
v3 = (unsigned __int8)*CBfPtr;
if ( (*((_BYTE *)&ChrMsk + v3) & 0x40) != 0 )
v2 -= 32;
if ( (unsigned __int8)(v2 - 65) > 0x1Eu )
{
ErrChr(16LL, v3);
result = 0xFFFFFFFFLL;
}
else
{
result = (*(&FCAray_0 + v2 - 65))(a1, v3);
}
}
return result;
}

canonical_decompiled_code:
__int64 __fastcall func0(__int64 a1)
{
__int64 result; // rax
unsigned __int8 v2; // al
__int64 v3; // rsi

result = IncCBP();
if ( (_DWORD)result != -1 )
{
v2 = *CBfPtr;
v3 = (unsigned __int8)*CBfPtr;
if ( (*((_BYTE *)&ChrMsk + v3) & 0x40) != 0 )
v2 -= 32;
if ( (unsigned __int8)(v2 - 65) > 0x1Eu )
{
ErrChr(16LL, v3);
result = 0xFFFFFFFFLL;
}
else
{
result = (*(&FCAray_0 + v2 - 65))(a1, v3);
}
}
return result;
}

original_code:
DEFAULT ExeCrt()
{
 unsigned char TmpChr;
 static DEFAULT (*FCAray[])(void) = {
          ExeCtA, ZExCtB, ExeCtC,
          ExeCtD, ExeCtE, ExeNYI,
          ExeIll, ZExCtH, ExeCtI,
          ExeNul, ExeIll, ExeCtL,
          ExeNul, ExeCtN, ExeCtO,
          ExeCtP, ExeCtQ, ExeCtR,
          ExeCtS, ExeCtT, ExeCtU,
          ExeCtV, ExeCtW, ExeCtX,
          ExeCtY, ExeCtZ, ExeEsc,
          ExeIll, ExeIll, ExeCCC,
          ExeUsc
 };
 if (IncCBP() == (-1)) {
  return (-1);
 }
 TmpChr = ((ChrMsk[(*CBfPtr)] & '\100') ? (*CBfPtr)-' ' : (*CBfPtr) );
 if ((TmpChr < 'A') || (TmpChr > '_')) {
  ErrChr(16, *CBfPtr);
  return (-1);
 }
 return (*FCAray[TmpChr-'A'])();
}

canonical_original_code:
int ExeCrt()
{
 unsigned char TmpChr;
 static int (*FCAray[])() = {
          ExeCtA, ZExCtB, ExeCtC,
          ExeCtD, ExeCtE, ExeNYI,
          ExeIll, ZExCtH, ExeCtI,
          ExeNul, ExeIll, ExeCtL,
          ExeNul, ExeCtN, ExeCtO,
          ExeCtP, ExeCtQ, ExeCtR,
          ExeCtS, ExeCtT, ExeCtU,
          ExeCtV, ExeCtW, ExeCtX,
          ExeCtY, ExeCtZ, ExeEsc,
          ExeIll, ExeIll, ExeCCC,
          ExeUsc
 };
 if (IncCBP() == (-1)) {
  return (-1);
 }
 TmpChr = ((ChrMsk[(*CBfPtr)] & '\100') ? (*CBfPtr)-' ' : (*CBfPtr) );
 if ((TmpChr < 'A') || (TmpChr > '_')) {
  ErrChr(16, *CBfPtr);
  return (-1);
 }
 return (*FCAray[TmpChr-'A'])();
}

variable_types:
FCAray
int (*[])()


ExeEqu

decompiled_code:
__int64 ExeEqu()
{
__int64 result; // rax
_BYTE *v1; // rax
_BYTE *v2; // rax

if ( EStTop == EStBot )
{
ErrMsg(21LL);
return 0xFFFFFFFFLL;
}
result = GetNmA();
if ( (_DWORD)result != -1 )
{
if ( *(_BYTE *)(CBfPtr + 1LL) == 61 )
{
result = IncCBP();
if ( (_DWORD)result == -1 )
return result;
if ( *(_BYTE *)(CBfPtr + 1LL) == 61 )
{
result = IncCBP();
if ( (_DWORD)result == -1 )
return result;
MakDBf(NArgmt, 16LL);
}
else
{
MakDBf(NArgmt, 8LL);
}
}
else
{
MakDBf(NArgmt, 10LL);
}
if ( (CmdMod & 2) != 0 )
{
CmdMod &= 0xFDu;
}
else
{
v1 = (_BYTE *)DBfPtr++;
*v1 = 13;
v2 = (_BYTE *)DBfPtr++;
*v2 = 10;
}
ZDspBf(DBfBeg, DBfPtr - DBfBeg);
result = 0LL;
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax
_BYTE *v1; // rax
_BYTE *v2; // rax

if ( EStTop == EStBot )
{
ErrMsg(21LL);
return 0xFFFFFFFFLL;
}
result = GetNmA();
if ( (_DWORD)result != -1 )
{
if ( *(_BYTE *)(CBfPtr + 1LL) == 61 )
{
result = IncCBP();
if ( (_DWORD)result == -1 )
return result;
if ( *(_BYTE *)(CBfPtr + 1LL) == 61 )
{
result = IncCBP();
if ( (_DWORD)result == -1 )
return result;
MakDBf(NArgmt, 16LL);
}
else
{
MakDBf(NArgmt, 8LL);
}
}
else
{
MakDBf(NArgmt, 10LL);
}
if ( (CmdMod & 2) != 0 )
{
CmdMod &= 0xFDu;
}
else
{
v1 = (_BYTE *)DBfPtr++;
*v1 = 13;
v2 = (_BYTE *)DBfPtr++;
*v2 = 10;
}
ZDspBf(DBfBeg, DBfPtr - DBfBeg);
result = 0LL;
}
return result;
}

original_code:
DEFAULT ExeEqu()
{
 ;
 if (EStTop == EStBot) {
  ErrMsg(21);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 if (*(CBfPtr+1) != '=') {
  MakDBf(NArgmt, 10);
 } else {
  if (IncCBP() == (-1)) {
   ;
   return (-1);
  }
  if (*(CBfPtr+1) != '=') {
   MakDBf(NArgmt, 8);
  } else {
   if (IncCBP() == (-1)) {
    ;
    return (-1);
   }
   MakDBf(NArgmt, 16);
  }
 }
 if (CmdMod & '\2') {
  CmdMod &= ~'\2';
 } else {
  *DBfPtr++ = '\015';
  *DBfPtr++ = '\012';
 }
 ZDspBf(DBfBeg, DBfPtr-DBfBeg);
 ;
 return 0;
}

canonical_original_code:
int ExeEqu()
{
 ;
 if (EStTop == EStBot) {
  ErrMsg(21);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 if (*(CBfPtr+1) != '=') {
  MakDBf(NArgmt, 10);
 } else {
  if (IncCBP() == (-1)) {
   ;
   return (-1);
  }
  if (*(CBfPtr+1) != '=') {
   MakDBf(NArgmt, 8);
  } else {
   if (IncCBP() == (-1)) {
    ;
    return (-1);
   }
   MakDBf(NArgmt, 16);
  }
 }
 if (CmdMod & '\2') {
  CmdMod &= ~'\2';
 } else {
  *DBfPtr++ = '\015';
  *DBfPtr++ = '\012';
 }
 ZDspBf(DBfBeg, DBfPtr-DBfBeg);
 ;
 return 0;
}


ExeFB

decompiled_code:
__int64 ExeFB()
{
__int64 result; // rax

if ( (CmdMod & 4) != 0 )
{
ErrStr(8LL, "::FB");
result = 0xFFFFFFFFLL;
}
else
{
SrcTyp = 2;
result = Search(0LL);
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( (CmdMod & 4) != 0 )
{
ErrStr(8LL, "::FB");
result = 0xFFFFFFFFLL;
}
else
{
SrcTyp = 2;
result = Search(0LL);
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
result = 0LL;
}
}
return result;
}

original_code:
DEFAULT ExeFB()
{
 ;
 if (CmdMod & '\4') {
  ErrStr(8, "::FB");
  ;
  return (-1);
 }
 SrcTyp = 2;
 if (Search(0) == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeFB()
{
 ;
 if (CmdMod & '\4') {
  ErrStr(8, "::FB");
  ;
  return (-1);
 }
 SrcTyp = 2;
 if (Search(0) == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 ;
 return 0;
}


ExeCtQ

decompiled_code:
__int64 ExeCtQ()
{
__int64 result; // rax
__int64 v1; // rax

CmdMod = 0;
if ( EStTop == EStBot )
return PushEx(0LL, 0LL);
result = GetNmA();
if ( (_DWORD)result != -1 )
{
v1 = Ln2Chr(NArgmt);
result = PushEx(v1, 0LL);
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax
__int64 v1; // rax

CmdMod = 0;
if ( EStTop == EStBot )
return PushEx(0LL, 0LL);
result = GetNmA();
if ( (_DWORD)result != -1 )
{
v1 = Ln2Chr(NArgmt);
result = PushEx(v1, 0LL);
}
return result;
}

original_code:
DEFAULT ExeCtQ()
{
 ;
 CmdMod = '\0';
 if (EStTop == EStBot) {
  ;
  return PushEx(0L, 0);
  }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 ;
 return PushEx(Ln2Chr(NArgmt), 0);
}

canonical_original_code:
int ExeCtQ()
{
 ;
 CmdMod = '\0';
 if (EStTop == EStBot) {
  ;
  return PushEx(0L, 0);
  }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 ;
 return PushEx(Ln2Chr(NArgmt), 0);
}


ExeU

decompiled_code:
__int64 ExeU()
{
__int64 result; // rax

if ( EStTop == EStBot )
{
ErrMsg(25LL);
result = 0xFFFFFFFFLL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
result = IncCBP();
if ( (_DWORD)result != -1 )
{
result = FindQR();
if ( (_DWORD)result != -1 )
{
*(_QWORD *)(QR + 16LL) = NArgmt;
if ( (CmdMod & 8) != 0 )
{
result = PushEx(MArgmt, 0LL);
}
else
{
CmdMod = 0;
result = 0LL;
}
}
}
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( EStTop == EStBot )
{
ErrMsg(25LL);
result = 0xFFFFFFFFLL;
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
result = IncCBP();
if ( (_DWORD)result != -1 )
{
result = FindQR();
if ( (_DWORD)result != -1 )
{
*(_QWORD *)(QR + 16LL) = NArgmt;
if ( (CmdMod & 8) != 0 )
{
result = PushEx(MArgmt, 0LL);
}
else
{
CmdMod = 0;
result = 0LL;
}
}
}
}
}
return result;
}

original_code:
DEFAULT ExeU()
{
 ;
 if (EStTop == EStBot) {
  ErrMsg(25);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 if (IncCBP() == (-1)) {
  ;
  return (-1);
 }
 if (FindQR() == (-1)) {
  ;
  return (-1);
 }
 QR->Number = NArgmt;
 if (CmdMod & '\10') {
  ;
  return PushEx(MArgmt, 0);
 }
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeU()
{
 ;
 if (EStTop == EStBot) {
  ErrMsg(25);
  ;
  return (-1);
 }
 if (GetNmA() == (-1)) {
  ;
  return (-1);
 }
 if (IncCBP() == (-1)) {
  ;
  return (-1);
 }
 if (FindQR() == (-1)) {
  ;
  return (-1);
 }
 QR->Number = NArgmt;
 if (CmdMod & '\10') {
  ;
  return PushEx(MArgmt, 0);
 }
 CmdMod = '\0';
 ;
 return 0;
}


ExeRBr

decompiled_code:
__int64 ExeRBr()
{
unsigned int v0; // ebx
int v1; // ebp
__int64 v2; // r12
_QWORD *v3; // rax
__int64 v4; // rcx

v0 = CmdMod & 2;
CmdMod &= 0xFDu;
if ( (unsigned int)IncCBP() == -1 )
return (unsigned int)-1;
if ( (unsigned int)FindQR() == -1 )
return (unsigned int)-1;
if ( QStTop < 0 )
{
if ( v0 )
{
v0 = PushEx(0LL, 0LL);
}
else
{
ErrMsg(33LL);
v0 = -1;
}
}
else
{
v1 = QStTop;
v2 = QStack[3 * QStTop + 1] - QStack[3 * QStTop];
if ( LODWORD(QStack[3 * QStTop + 1]) == LODWORD(QStack[3 * QStTop]) )
{
if ( *QR )
{
ZFree();
v3 = (_QWORD *)QR;
*(_QWORD *)(QR + 8LL) = 0LL;
*v3 = 0LL;
}
}
else
{
if ( (unsigned int)MakRom((unsigned int)v2) == -1 )
return (unsigned int)-1;
ZCpyBl(*QR, QStack[3 * v1], (unsigned int)v2);
*(_QWORD *)(QR + 8LL) = *QR + (int)v2;
}
*(_QWORD *)(QR + 16LL) = QStack[3 * v1 + 2];
if ( QStack[3 * v1] )
{
ZFree();
v4 = 3LL * v1;
QStack[v4 + 1] = 0LL;
QStack[v4] = 0LL;
}
QStack[3 * v1 + 2] = 0LL;
--QStTop;
if ( v0 )
v0 = PushEx(-1LL, 0LL);
}
return v0;
}

canonical_decompiled_code:
__int64 func0()
{
unsigned int v0; // ebx
int v1; // ebp
__int64 v2; // r12
_QWORD *v3; // rax
__int64 v4; // rcx

v0 = CmdMod & 2;
CmdMod &= 0xFDu;
if ( (unsigned int)IncCBP() == -1 )
return (unsigned int)-1;
if ( (unsigned int)FindQR() == -1 )
return (unsigned int)-1;
if ( QStTop < 0 )
{
if ( v0 )
{
v0 = PushEx(0LL, 0LL);
}
else
{
ErrMsg(33LL);
v0 = -1;
}
}
else
{
v1 = QStTop;
v2 = QStack[3 * QStTop + 1] - QStack[3 * QStTop];
if ( LODWORD(QStack[3 * QStTop + 1]) == LODWORD(QStack[3 * QStTop]) )
{
if ( *QR )
{
ZFree();
v3 = (_QWORD *)QR;
*(_QWORD *)(QR + 8LL) = 0LL;
*v3 = 0LL;
}
}
else
{
if ( (unsigned int)MakRom((unsigned int)v2) == -1 )
return (unsigned int)-1;
ZCpyBl(*QR, QStack[3 * v1], (unsigned int)v2);
*(_QWORD *)(QR + 8LL) = *QR + (int)v2;
}
*(_QWORD *)(QR + 16LL) = QStack[3 * v1 + 2];
if ( QStack[3 * v1] )
{
ZFree();
v4 = 3LL * v1;
QStack[v4 + 1] = 0LL;
QStack[v4] = 0LL;
}
QStack[3 * v1 + 2] = 0LL;
--QStTop;
if ( v0 )
v0 = PushEx(-1LL, 0LL);
}
return v0;
}

original_code:
DEFAULT ExeRBr()
{
 QRptr TmpQRp;
 int TmpSiz;
 BOOLEAN ColonMod;
 ColonMod = (CmdMod & '\2');
 CmdMod &= ~'\2';
 if (IncCBP() == (-1)) {
  return (-1);
 }
 if (FindQR() == (-1)) {
  ;
  return (-1);
 }
 if (QStTop < 0) {
  if (ColonMod) {
   ;
   return PushEx(0L, 0);
  } else {
   ErrMsg(33);
   ;
   return (-1);
  }
 }
 TmpQRp = &QStack[QStTop];
 TmpSiz = TmpQRp->End_P1 - TmpQRp->Start;
 if (TmpSiz == 0) {
  if (QR->Start != (void *)0) {
   ZFree((voidptr)QR->Start);
   QR->Start = QR->End_P1 = (void *)0;
  }
 } else {
  if (MakRom((SIZE_T)TmpSiz) == (-1)) {
   ;
   return (-1);
  }
  ZCpyBl((QR->Start),(TmpQRp->Start),((SIZE_T)TmpSiz));
  QR->End_P1 = QR->Start + TmpSiz;
 }
 QR->Number = TmpQRp->Number;
 if (TmpQRp->Start != (void *)0) {
  ZFree((voidptr)TmpQRp->Start);
  TmpQRp->Start = TmpQRp->End_P1 = (void *)0;
 }
 TmpQRp->Number = 0;
 --QStTop;
 ;
 return (ColonMod) ? PushEx(-1L, 0) : 0;
}

canonical_original_code:
int ExeRBr()
{
 struct QReg *TmpQRp;
 int TmpSiz;
 int ColonMod;
 ColonMod = (CmdMod & '\2');
 CmdMod &= ~'\2';
 if (IncCBP() == (-1)) {
  return (-1);
 }
 if (FindQR() == (-1)) {
  ;
  return (-1);
 }
 if (QStTop < 0) {
  if (ColonMod) {
   ;
   return PushEx(0L, 0);
  } else {
   ErrMsg(33);
   ;
   return (-1);
  }
 }
 TmpQRp = &QStack[QStTop];
 TmpSiz = TmpQRp->End_P1 - TmpQRp->Start;
 if (TmpSiz == 0) {
  if (QR->Start != (void *)0) {
   ZFree((unsigned char *)QR->Start);
   QR->Start = QR->End_P1 = (void *)0;
  }
 } else {
  if (MakRom((unsigned int)TmpSiz) == (-1)) {
   ;
   return (-1);
  }
  ZCpyBl((QR->Start),(TmpQRp->Start),((unsigned int)TmpSiz));
  QR->End_P1 = QR->Start + TmpSiz;
 }
 QR->Number = TmpQRp->Number;
 if (TmpQRp->Start != (void *)0) {
  ZFree((unsigned char *)TmpQRp->Start);
  TmpQRp->Start = TmpQRp->End_P1 = (void *)0;
 }
 TmpQRp->Number = 0;
 --QStTop;
 ;
 return (ColonMod) ? PushEx(-1L, 0) : 0;
}

variable_types: struct QReg { unsigned char *Start; unsigned char *End_P1; long Number; } *

variable_types: TmpSiz int


ExeB

decompiled_code:
__int64 ExeB()
{
return PushEx(0LL, 0LL);
}

canonical_decompiled_code:
__int64 func0()
{
return PushEx(0LL, 0LL);
}

original_code:
DEFAULT ExeB()
{
 ;
 ;
 return PushEx(0L, 0);
}

canonical_original_code:
int ExeB()
{
 ;
 ;
 return PushEx(0L, 0);
}


ExeUnd

decompiled_code:
__int64 ExeUnd()
{
__int64 result; // rax

if ( (CmdMod & 8) != 0 )
{
ErrStr(8LL, "m,n_");
result = 0xFFFFFFFFLL;
}
else if ( (CmdMod & 4) != 0 )
{
ErrStr(8LL, "::_");
result = 0xFFFFFFFFLL;
}
else
{
SrcTyp = 6;
result = Search(0LL);
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( (CmdMod & 8) != 0 )
{
ErrStr(8LL, "m,n_");
result = 0xFFFFFFFFLL;
}
else if ( (CmdMod & 4) != 0 )
{
ErrStr(8LL, "::_");
result = 0xFFFFFFFFLL;
}
else
{
SrcTyp = 6;
result = Search(0LL);
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
result = 0LL;
}
}
return result;
}

original_code:
DEFAULT ExeUnd()
{
 ;
 if (CmdMod & '\10') {
  ErrStr(8, "m,n_");
  ;
  return (-1);
 }
 if (CmdMod & '\4') {
  ErrStr(8, "::_");
  ;
  return (-1);
 }
 SrcTyp = 6;
 if (Search(0) == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 ;
 return 0;
}


ExeCtX

decompiled_code:
__int64 ExeCtX()
{
return DoFlag(&SMFlag);
}

canonical_decompiled_code:
__int64 func0()
{
return DoFlag(&SMFlag);
}

original_code:
DEFAULT ExeCtX()
{
 ;
 ;
 return DoFlag(&SMFlag);
}

canonical_original_code:
int ExeCtX()
{
 ;
 ;
 return DoFlag(&SMFlag);
}


UMinus

decompiled_code:
__int64 UMinus()
{
int v0; // edx
__int64 result; // rax

v0 = EStTop;
result = (unsigned int)(EStBot + 1);
if ( EStTop == (_DWORD)result )
{
result = 16LL * EStTop;
if ( *(_DWORD *)((char *)&EStack + result + 8) == 1 )
{
result = 16LL * EStTop;
if ( *(_QWORD *)((char *)&EStack + result) == 45LL )
{
*((_QWORD *)&EStack + 2 * EStTop) = -1LL;
*((_DWORD *)&EStack + 4 * v0 + 2) = 0;
}
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
int v0; // edx
__int64 result; // rax

v0 = EStTop;
result = (unsigned int)(EStBot + 1);
if ( EStTop == (_DWORD)result )
{
result = 16LL * EStTop;
if ( *(_DWORD *)((char *)&EStack + result + 8) == 1 )
{
result = 16LL * EStTop;
if ( *(_QWORD *)((char *)&EStack + result) == 45LL )
{
*((_QWORD *)&EStack + 2 * EStTop) = -1LL;
*((_DWORD *)&EStack + 4 * v0 + 2) = 0;
}
}
}
return result;
}

original_code:
void UMinus()
{
 ESptr ESp;
 if (EStTop == (EStBot + 1)) {
  ESp = &(EStack[EStTop]);
  if (ESp->ElType == 1 &&
      ESp->Elemnt == '-') {
   ESp->Elemnt = -1L;
   ESp->ElType = 0;
  }
 }
}

canonical_original_code:
void UMinus()
{
 struct EStck *ESp;
 if (EStTop == (EStBot + 1)) {
  ESp = &(EStack[EStTop]);
  if (ESp->ElType == 1 &&
      ESp->Elemnt == '-') {
   ESp->Elemnt = -1L;
   ESp->ElType = 0;
  }
 }
}

variable_types: struct EStck { long Elemnt; int ElType; } *


ExeCtZ

decompiled_code:
__int64 ExeCtZ()
{
__int64 v0; // rdi
_QWORD *v1; // rax

v0 = CStEnd - CStBeg + 1LL;
v1 = &QRgstr;
do
{
v0 += v1[1] - *v1;
v1 += 3;
}
while ( v1 != (_QWORD *)(unsigned int)((_DWORD)&QRgstr + 864) );
return PushEx(v0, 0LL);
}

canonical_decompiled_code:
__int64 func0()
{
__int64 v0; // rdi
_QWORD *v1; // rax

v0 = CStEnd - CStBeg + 1LL;
v1 = &QRgstr;
do
{
v0 += v1[1] - *v1;
v1 += 3;
}
while ( v1 != (_QWORD *)(unsigned int)((_DWORD)&QRgstr + 864) );
return PushEx(v0, 0LL);
}

original_code:
DEFAULT ExeCtZ()
{
 LONG TmpLng;
 WORD TmpWrd;
 ;
 TmpLng = (CStEnd - CStBeg) + 1;
 for (TmpWrd = 0; TmpWrd < 36; ++TmpWrd) {
  TmpLng += QRgstr[TmpWrd].End_P1 - QRgstr[TmpWrd].Start;
 }
 return PushEx(TmpLng,0);
}

canonical_original_code:
int ExeCtZ()
{
 long TmpLng;
 short TmpWrd;
 ;
 TmpLng = (CStEnd - CStBeg) + 1;
 for (TmpWrd = 0; TmpWrd < 36; ++TmpWrd) {
  TmpLng += QRgstr[TmpWrd].End_P1 - QRgstr[TmpWrd].Start;
 }
 return PushEx(TmpLng,0);
}

variable_types: TmpLng long

variable_types: TmpWrd short


ExeCtI

decompiled_code:
__int64 ExeCtI()
{
__int64 result; // rax

result = FindES(27LL);
if ( (_DWORD)result != -1 )
{
result = InsStr(ArgPtr - 1LL, CBfPtr - ArgPtr + 1LL);
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
EStTop = EStBot;
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

result = FindES(27LL);
if ( (_DWORD)result != -1 )
{
result = InsStr(ArgPtr - 1LL, CBfPtr - ArgPtr + 1LL);
if ( (_DWORD)result != -1 )
{
CmdMod = 0;
EStTop = EStBot;
result = 0LL;
}
}
return result;
}

original_code:
DEFAULT ExeCtI()
{
 ;
 if (FindES('\033') == (-1)) {
  ;
  return (-1);
 }
 if (InsStr(ArgPtr-1, (CBfPtr-ArgPtr)+1) == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return 0;
}

canonical_original_code:
int ExeCtI()
{
 ;
 if (FindES('\033') == (-1)) {
  ;
  return (-1);
 }
 if (InsStr(ArgPtr-1, (CBfPtr-ArgPtr)+1) == (-1)) {
  ;
  return (-1);
 }
 CmdMod = '\0';
 EStTop = EStBot;
 ;
 return 0;
}


Replac

decompiled_code:
__int64 Replac()
{
__int64 result; // rax

result = Search(1LL);
if ( (_DWORD)result != -1 )
{
result = Matchd;
if ( Matchd )
{
GapBeg += RefLen;
result = (unsigned int)-((unsigned int)InsStr(ArgPtr, CBfPtr - ArgPtr) == -1);
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

result = Search(1LL);
if ( (_DWORD)result != -1 )
{
result = Matchd;
if ( Matchd )
{
GapBeg += RefLen;
result = (unsigned int)-((unsigned int)InsStr(ArgPtr, CBfPtr - ArgPtr) == -1);
}
}
return result;
}

original_code:
DEFAULT Replac()
{
 ;
 if (Search(1) == (-1)) {
  ;
  return (-1);
 }
 if (Matchd) {
  GapBeg += RefLen;
  if (InsStr(ArgPtr, CBfPtr-ArgPtr) == (-1)) {
   ;
   return (-1);
  }
 }
 ;
 return 0;
}

canonical_original_code:
int Replac()
{
 ;
 if (Search(1) == (-1)) {
  ;
  return (-1);
 }
 if (Matchd) {
  GapBeg += RefLen;
  if (InsStr(ArgPtr, CBfPtr-ArgPtr) == (-1)) {
   ;
   return (-1);
  }
 }
 ;
 return 0;
}


ExeM

decompiled_code:
__int64 ExeM()
{
unsigned int v0; // ebx
char v1; // bp
_QWORD *v3; // rax
_QWORD *v4; // rdx

v0 = IncCBP();
if ( v0 != -1 )
{
v1 = *CBfPtr;
v0 = FindQR();
if ( v0 != -1 )
{
v0 = 0;
if ( *QR )
{
v0 = PshMac(*QR, *(_QWORD *)(QR + 8LL));
if ( v0 != -1 )
{
if ( (CmdMod & 2) != 0 || v1 == 46 )
{
CmdMod &= 0xFDu;
}
else
{
v3 = (_QWORD *)ZAlloc(864LL);
if ( !v3 )
{
ErrMsg(18LL);
return (unsigned int)-1;
}
MStack[5 * MStTop + 4] = v3;
v4 = v3 + 108;
do
{
v3[1] = 0LL;
*v3 = 0LL;
v3[2] = 0LL;
v3 += 3;
}
while ( v4 != v3 );
}
v0 = ExeCSt();
if ( (unsigned int)PopMac() == -1 )
v0 = -1;
}
}
}
}
return v0;
}

canonical_decompiled_code:
__int64 func0()
{
unsigned int v0; // ebx
char v1; // bp
_QWORD *v3; // rax
_QWORD *v4; // rdx

v0 = IncCBP();
if ( v0 != -1 )
{
v1 = *CBfPtr;
v0 = FindQR();
if ( v0 != -1 )
{
v0 = 0;
if ( *QR )
{
v0 = PshMac(*QR, *(_QWORD *)(QR + 8LL));
if ( v0 != -1 )
{
if ( (CmdMod & 2) != 0 || v1 == 46 )
{
CmdMod &= 0xFDu;
}
else
{
v3 = (_QWORD *)ZAlloc(864LL);
if ( !v3 )
{
ErrMsg(18LL);
return (unsigned int)-1;
}
MStack[5 * MStTop + 4] = v3;
v4 = v3 + 108;
do
{
v3[1] = 0LL;
*v3 = 0LL;
v3[2] = 0LL;
v3 += 3;
}
while ( v4 != v3 );
}
v0 = ExeCSt();
if ( (unsigned int)PopMac() == -1 )
v0 = -1;
}
}
}
}
return v0;
}

original_code:
DEFAULT ExeM()
{
    DEFAULT status;
 BOOLEAN islocal;
    ;
    if (IncCBP() == (-1)) {
 ;
 return (-1);
    }
 islocal = (*CBfPtr=='.');
    if (FindQR() == (-1)) {
 ;
 return (-1);
    }
    if (QR->Start == (void *)0) {
 ;
 return 0;
    }
    if (PshMac(QR->Start, QR->End_P1) == (-1)) {
        ;
 return (-1);
    }
    if ((CmdMod & '\2') == 0&&!islocal) {
 QRptr QRp;
 WORD i;
 QRp = (QRptr)ZAlloc(36 * sizeof(struct QReg));
 if (QRp == (void *)0) {
     ErrMsg(18);
     ;
     return (-1);
 }
 MStack[MStTop].QRgstr = QRp;
 for (i = 0; i < 36; ++i, ++QRp) {
     QRp->Start = QRp->End_P1 = (void *)0;
     QRp->Number = 0;
 }
    }
    else CmdMod &= ~'\2';
    status = ExeCSt();
    if (PopMac() == (-1)) {
        ;
 return (-1);
    }
    ;
    return status;
}

canonical_original_code:
int ExeM()
{
    int status;
 int islocal;
    ;
    if (IncCBP() == (-1)) {
 ;
 return (-1);
    }
 islocal = (*CBfPtr=='.');
    if (FindQR() == (-1)) {
 ;
 return (-1);
    }
    if (QR->Start == (void *)0) {
 ;
 return 0;
    }
    if (PshMac(QR->Start, QR->End_P1) == (-1)) {
        ;
 return (-1);
    }
    if ((CmdMod & '\2') == 0&&!islocal) {
 struct QReg *QRp;
 short i;
 QRp = (struct QReg *)ZAlloc(36 * sizeof(struct QReg));
 if (QRp == (void *)0) {
     ErrMsg(18);
     ;
     return (-1);
 }
 MStack[MStTop].QRgstr = QRp;
 for (i = 0; i < 36; ++i, ++QRp) {
     QRp->Start = QRp->End_P1 = (void *)0;
     QRp->Number = 0;
 }
    }
    else CmdMod &= ~'\2';
    status = ExeCSt();
    if (PopMac() == (-1)) {
        ;
 return (-1);
    }
    ;
    return status;
}

variable_types: status int

variable_types: islocal int


ExeCtD

decompiled_code:
__int64 ExeCtD()
{
Radix = 10;
CmdMod = 0;
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
Radix = 10;
CmdMod = 0;
return 0LL;
}

original_code:
DEFAULT ExeCtD()
{
 ;
 Radix = 10;
 CmdMod = '\0';
 ;
 return 0;
}

canonical_original_code:
int ExeCtD()
{
 ;
 Radix = 10;
 CmdMod = '\0';
 ;
 return 0;
}


ExeBSl

decompiled_code:
__int64 ExeBSl()
{
unsigned int v0; // ebx
__int64 v1; // rdx
__int64 v2; // rbp
char v3; // al
int v4; // ebx
_BYTE *v5; // rax
_BYTE *v6; // rax
char v7; // si
char v8; // al
__int64 v9; // rdx
_BYTE *v10; // rax
char v11; // al
char v12; // cl

if ( EStTop == EStBot || (v0 = EStack[4 * EStTop + 2]) != 0 )
{
RefLen = 0LL;
v1 = GapEnd;
v2 = 0LL;
if ( GapEnd == EBfEnd )
{
LABEL_19:
CmdMod = 0;
return (unsigned int)PushEx(v2, 0LL);
}
v3 = *(_BYTE *)(GapEnd + 1LL);
if ( v3 == 45 )
{
RefLen = -1LL;
++GapEnd;
v5 = (_BYTE *)GapBeg++;
*v5 = *(_BYTE *)(v1 + 1);
v1 = GapEnd;
v4 = 1;
if ( GapEnd == EBfEnd )
{
LABEL_18:
v2 = -v2;
goto LABEL_19;
}
}
else
{
v4 = 0;
if ( v3 == 43 )
{
RefLen = -1LL;
++GapEnd;
v6 = (_BYTE *)GapBeg++;
*v6 = *(_BYTE *)(v1 + 1);
v1 = GapEnd;
v2 = 0LL;
if ( GapEnd == EBfEnd )
goto LABEL_19;
}
}
v2 = 0LL;
do
{
if ( !(unsigned int)IsRadx(*(unsigned __int8 *)(v1 + 1)) )
break;
--RefLen;
v9 = GapEnd++;
v10 = (_BYTE *)GapBeg++;
*v10 = *(_BYTE *)(v9 + 1);
v1 = GapEnd;
v11 = *GapEnd;
v12 = *((_BYTE *)&ChrMsk + (char)*GapEnd);
if ( (v12 & 0x10) != 0 )
{
v8 = v11 - 48;
}
else
{
v7 = v11 - 55;
v8 = v11 - 87;
if ( v12 < 0 )
v8 = v7;
}
v2 = v8 + v2 * Radix;
}
while ( GapEnd != EBfEnd );
if ( !v4 )
goto LABEL_19;
goto LABEL_18;
}
if ( (unsigned int)GetNmA() == -1 )
return (unsigned int)-1;
MakDBf(NArgmt, Radix);
if ( (unsigned int)InsStr(DBfBeg, DBfPtr - DBfBeg) == -1 )
return (unsigned int)-1;
CmdMod = 0;
EStTop = EStBot;
return v0;
}

canonical_decompiled_code:
__int64 func0()
{
unsigned int v0; // ebx
__int64 v1; // rdx
__int64 v2; // rbp
char v3; // al
int v4; // ebx
_BYTE *v5; // rax
_BYTE *v6; // rax
char v7; // si
char v8; // al
__int64 v9; // rdx
_BYTE *v10; // rax
char v11; // al
char v12; // cl

if ( EStTop == EStBot || (v0 = EStack[4 * EStTop + 2]) != 0 )
{
RefLen = 0LL;
v1 = GapEnd;
v2 = 0LL;
if ( GapEnd == EBfEnd )
{
LABEL_19:
CmdMod = 0;
return (unsigned int)PushEx(v2, 0LL);
}
v3 = *(_BYTE *)(GapEnd + 1LL);
if ( v3 == 45 )
{
RefLen = -1LL;
++GapEnd;
v5 = (_BYTE *)GapBeg++;
*v5 = *(_BYTE *)(v1 + 1);
v1 = GapEnd;
v4 = 1;
if ( GapEnd == EBfEnd )
{
LABEL_18:
v2 = -v2;
goto LABEL_19;
}
}
else
{
v4 = 0;
if ( v3 == 43 )
{
RefLen = -1LL;
++GapEnd;
v6 = (_BYTE *)GapBeg++;
*v6 = *(_BYTE *)(v1 + 1);
v1 = GapEnd;
v2 = 0LL;
if ( GapEnd == EBfEnd )
goto LABEL_19;
}
}
v2 = 0LL;
do
{
if ( !(unsigned int)IsRadx(*(unsigned __int8 *)(v1 + 1)) )
break;
--RefLen;
v9 = GapEnd++;
v10 = (_BYTE *)GapBeg++;
*v10 = *(_BYTE *)(v9 + 1);
v1 = GapEnd;
v11 = *GapEnd;
v12 = *((_BYTE *)&ChrMsk + (char)*GapEnd);
if ( (v12 & 0x10) != 0 )
{
v8 = v11 - 48;
}
else
{
v7 = v11 - 55;
v8 = v11 - 87;
if ( v12 < 0 )
v8 = v7;
}
v2 = v8 + v2 * Radix;
}
while ( GapEnd != EBfEnd );
if ( !v4 )
goto LABEL_19;
goto LABEL_18;
}
if ( (unsigned int)GetNmA() == -1 )
return (unsigned int)-1;
MakDBf(NArgmt, Radix);
if ( (unsigned int)InsStr(DBfBeg, DBfPtr - DBfBeg) == -1 )
return (unsigned int)-1;
CmdMod = 0;
EStTop = EStBot;
return v0;
}

original_code:
DEFAULT ExeBSl()
{
    ;
    if ((EStTop == EStBot) ||
 (EStack[EStTop].ElType != 0)) {
 LONG StrVal = 0;
 RefLen=0;
 if (GapEnd != EBfEnd) {
     BOOLEAN negative = 0;
     char NxtChr;
     if (*(GapEnd+1) == '-') {
  RefLen--;
  GapEnd++;
  *GapBeg++ = *GapEnd;
  negative = 1;
     } else if (*(GapEnd+1) == '+') {
  RefLen--;
  GapEnd++;
  *GapBeg++ = *GapEnd;
     }
     while ((GapEnd != EBfEnd) && (IsRadx(*(GapEnd+1)))) {
  RefLen--;
  GapEnd++;
  *GapBeg++ = *GapEnd;
  NxtChr = *GapEnd;
  if ((ChrMsk[(NxtChr)] & '\20'))
      NxtChr -= '0';
  else if ((ChrMsk[(NxtChr)] & '\200'))
      NxtChr -= '\67';
  else
      NxtChr -= '\127';
  StrVal = (StrVal * Radix) + NxtChr;
     }
     if (negative)
  StrVal = -StrVal;
 }
 CmdMod = '\0';
 return PushEx(StrVal,0);
    }
    if (GetNmA() == (-1)) {
 ;
 return (-1);
    }
    MakDBf(NArgmt, Radix);
    if (InsStr(DBfBeg, DBfPtr-DBfBeg) == (-1)) {
 ;
 return (-1);
    }
    CmdMod = '\0';
    EStTop = EStBot;
    ;
    return 0;
}

canonical_original_code:
int ExeBSl()
{
    ;
    if ((EStTop == EStBot) ||
 (EStack[EStTop].ElType != 0)) {
 long StrVal = 0;
 RefLen=0;
 if (GapEnd != EBfEnd) {
     int negative = 0;
     char NxtChr;
     if (*(GapEnd+1) == '-') {
  RefLen--;
  GapEnd++;
  *GapBeg++ = *GapEnd;
  negative = 1;
     } else if (*(GapEnd+1) == '+') {
  RefLen--;
  GapEnd++;
  *GapBeg++ = *GapEnd;
     }
     while ((GapEnd != EBfEnd) && (IsRadx(*(GapEnd+1)))) {
  RefLen--;
  GapEnd++;
  *GapBeg++ = *GapEnd;
  NxtChr = *GapEnd;
  if ((ChrMsk[(NxtChr)] & '\20'))
      NxtChr -= '0';
  else if ((ChrMsk[(NxtChr)] & '\200'))
      NxtChr -= '\67';
  else
      NxtChr -= '\127';
  StrVal = (StrVal * Radix) + NxtChr;
     }
     if (negative)
  StrVal = -StrVal;
 }
 CmdMod = '\0';
 return PushEx(StrVal,0);
    }
    if (GetNmA() == (-1)) {
 ;
 return (-1);
    }
    MakDBf(NArgmt, Radix);
    if (InsStr(DBfBeg, DBfPtr-DBfBeg) == (-1)) {
 ;
 return (-1);
    }
    CmdMod = '\0';
    EStTop = EStBot;
    ;
    return 0;
}

variable_types: StrVal long

variable_types: negative int

variable_types: NxtChr char


ExeUsc

decompiled_code:
__int64 ExeUsc()
{
return PushEx(31LL, 1LL);
}

canonical_decompiled_code:
__int64 func0()
{
return PushEx(31LL, 1LL);
}

original_code:
DEFAULT ExeUsc()
{
 ;
 ;
 return PushEx((LONG)'\037', 1);
}

canonical_original_code:
int ExeUsc()
{
 ;
 ;
 return PushEx((long)'\037', 1);
}


ExeNul

decompiled_code:
__int64 ExeNul()
{
return 0LL;
}

canonical_decompiled_code:
__int64 func0()
{
return 0LL;
}

original_code:
DEFAULT ExeNul()
{
 return 0;
}

canonical_original_code:
int ExeNul()
{
 return 0;
}


ExeIll

decompiled_code:
__int64 ExeIll()
{
ErrChr(8LL, (unsigned __int8)*CBfPtr);
return 0xFFFFFFFFLL;
}

canonical_decompiled_code:
__int64 func0()
{
ErrChr(8LL, (unsigned __int8)*CBfPtr);
return 0xFFFFFFFFLL;
}

original_code:
DEFAULT ExeIll()
{
 ErrChr(8, *CBfPtr);
 return (-1);
}

canonical_original_code:
int ExeIll()
{
 ErrChr(8, *CBfPtr);
 return (-1);
}


ExeCtE

decompiled_code:
__int64 ExeCtE()
{
__int64 result; // rax

if ( EStTop <= EStBot )
{
CmdMod = 0;
result = PushEx(FFPage, 0LL);
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
FFPage = -(__int64)(NArgmt == -1LL);
CmdMod = 0;
result = 0LL;
}
}
return result;
}

canonical_decompiled_code:
__int64 func0()
{
__int64 result; // rax

if ( EStTop <= EStBot )
{
CmdMod = 0;
result = PushEx(FFPage, 0LL);
}
else
{
result = GetNmA();
if ( (_DWORD)result != -1 )
{
FFPage = -(__int64)(NArgmt == -1LL);
CmdMod = 0;
result = 0LL;
}
}
return result;
}

original_code:
DEFAULT ExeCtE()
{
    ;
   if (EStTop > EStBot) {
 if (GetNmA() == (-1)) {
     ;
     return (-1);
 }
 FFPage = (NArgmt == -1) ? -1 : 0;
 CmdMod = '\0';
 ;
 return 0;
    }
    CmdMod = '\0';
    ;
    return PushEx(FFPage, 0);
}

canonical_original_code:
int ExeCtE()
{
    ;
   if (EStTop > EStBot) {
 if (GetNmA() == (-1)) {
     ;
     return (-1);
 }
 FFPage = (NArgmt == -1) ? -1 : 0;
 CmdMod = '\0';
 ;
 return 0;
    }
    CmdMod = '\0';
    ;
    return PushEx(FFPage, 0);
}